Подбор товара в РМК по номенклатуре и марке УТ 11.5
Хотел автоматом добавлять в Чек РМК товар и марку, используя такой вызов:
ФормаДляОбработки.ПоискПоШтрихкодуЗавершение( Новый Структура("Количество, Штрихкод, Цена", СтрокаТЧ.Количество, КонтрольнаяМарка, СтрокаТЧ.Цена), Неопределено);
Но у клиента возникла проблема — некоторые товары хранятся без штрих-кода и возникает окно привязки товара к штрих-коду. При этом товар даже определяется по марке, но у пользователя запрашивается уточнение.
Клиент не хочет привязывать штрих-код к номенклатуре, т.к. один и тот же товар может быть на разных карточка, потому что товар приходит от разных производителей.
Решено передавать в поиск по штрих-коду еще и номенклатуру, но приходится называть ее особым образом, иначе 1С считает, что если встретилось поле Номенклатура, обработка штрих-кодов завершена. Кто так пишет?!
ФормаДляОбработки.ПоискПоШтрихкодуЗавершение( Новый Структура("Количество, Штрихкод, Цена, НоменклатураДляУточнения", СтрокаТЧ.Количество, КонтрольнаяМарка, СтрокаТЧ.Цена, СтрокаТЧ.Номенклатура) , Неопределено);
Обработка штрих-кода осуществляется в процедуре: ШтрихкодированиеОбщегоНазначенияИС.ОбработатьВводШтрихкода.
Заполнение таблицы связывающей коды маркировки и товары осуществляется в процедуре: ШтрихкодированиеОбщегоНазначенияИС.ЗаполнитьДанныеКодовМаркировкиВходящимиДанными
Делаю расширение для модуля ШтрихкодированиеОбщегоНазначенияИС:
&Вместо("ЗаполнитьДанныеКодовМаркировкиВходящимиДанными") Процедура бс_ЗаполнитьДанныеКодовМаркировкиВходящимиДанными(ДанныеПоШтрихкодам, СписокДанныхШтрихкода, ПараметрыСканирования) ПродолжитьВызов(ДанныеПоШтрихкодам, СписокДанныхШтрихкода, ПараметрыСканирования); ДанныеКодовМаркировки = ДанныеПоШтрихкодам.ДанныеКодовМаркировки; Для Каждого ДанныеШтрихкода Из СписокДанныхШтрихкода Цикл //Номенклатура использовать нельзя, уже зарезервирована Если НЕ ДанныеШтрихкода.Свойство("НоменклатураДляУточнения") Тогда Продолжить; КонецЕсли; ИскСтрока = ДанныеКодовМаркировки.Найти(СокрЛП(ДанныеШтрихкода.Штрихкод), "Штрихкод"); //Осипов Если ИскСтрока <> Неопределено Тогда ИскСтрока.Номенклатура = ДанныеШтрихкода.НоменклатураДляУточнения; КонецЕсли; КонецЦикла; КонецПроцедуры
И все работает!
Еще раз могу констатировать что типовые конфигурации от 1С — это сложный черный ящик с запутанными и непрозрачными связями. Естественно, такой лапшевидный код сложно документировать и повторно использовать. Приходится подлазить в непонятных и не совсем очевидных местах.
По сути, типовые 1С пишутся только под те задачи, которые могут увидеть методисты 1С. Никто не задумывается о тех, кто будет дорабатывать и автоматизировать некоторые ручные процессы в типовых. Интерфейсы для автоматизации и повторного использования кода не делаются.
Казалось бы простой вопрос — «добавь в чек товар с определенной маркой«. Но у 1С для этого нет программного интерфейса. Блеск и нищета типовых!
Среда: УТ 11.5.19.74 Объем: 1 час.
Свежие комментарии