Обработка загружает товары через драйвер Штрих-принт. Версия драйвера на скриншоте. В качестве кода товара в весах используется код элемента меню. Для упрощения PLU совпадает с кодом.
Код формы обработки:
Перем DRV Экспорт;
Процедура КнопкаВыполнитьНажатие(Кнопка)
Если Не Подключить() Тогда
Возврат;
КонецЕсли;
Для Каждого СтрокаТовар Из ТаблицаТоваров Цикл
DRV.PLUNumber = СтрокаТовар.Код;
DRV.Price = СтрокаТовар.Цена;
DRV.ItemCode = СтрокаТовар.Код;
DRV.NameFirst = СтрокаТовар.Наименование;
DRV.NameSecond = "";
DRV.MessageNumber = 0;
DRV.ShelfLife = 0;
DRV.Tare = 0;
DRV.GroupCode = "28";
DRV.GoodsType = 0;
DRV.SetPLUDataEx();
Если Ошибка() Тогда
Возврат;
КонецЕсли;
КонецЦикла;
Если Ошибка() Тогда
Возврат;
Иначе
Сообщить("Товары загружены");
КонецЕсли;
КонецПроцедуры
Функция Подключить() Экспорт
ЗагрузитьВнешнююКомпоненту("DrvLP.dll");
DRV = Новый("AddIn.DrvLP");
DRV.LDNumber = ЛогическийНомер;
DRV.SetActiveLD();
DRV.Connect();
Возврат Не Ошибка();
КонецФункции
Процедура ЗаполнитьТоварыНажатие(Элемент)
ТаблицаТоваров.Очистить();
Запрос = Новый Запрос;
Запрос.Текст =
"ВЫБРАТЬ
| ЦеныСрезПоследних.Товар.Код КАК Код,
| ЦеныСрезПоследних.Товар.Наименование КАК Наименование,
| ЦеныСрезПоследних.Цена КАК Цена
|ИЗ
| РегистрСведений.Цены.СрезПоследних КАК ЦеныСрезПоследних
|ГДЕ
| ЦеныСрезПоследних.ТипЦен = &ТипЦен
|
|УПОРЯДОЧИТЬ ПО
| Наименование";
Запрос.УстановитьПараметр("ТипЦен", ТипЦен);
РезультатЗапроса = Запрос.Выполнить();
ВыборкаДетальныеЗаписи = РезультатЗапроса.Выбрать();
Пока ВыборкаДетальныеЗаписи.Следующий() Цикл
НоваяСтрока = ТаблицаТоваров.Добавить();
ЗаполнитьЗначенияСвойств(НоваяСтрока, ВыборкаДетальныеЗаписи);
КонецЦикла;
КонецПроцедуры
Функция Ошибка() Экспорт
ResultCode = DRV.ResultCode;
ResultDescription = DRV.ResultCodeDescription;
Если ResultCode = 0 Тогда
Возврат Ложь;
Иначе
Возврат Истина;
КонецЕсли;
КонецФункции
Процедура ПриОткрытии()
НоваяСтрока = ТаблицаТоваров.Добавить();
НоваяСтрока.Код = 3000;
НоваяСтрока.Наименование = "Тестовый товар";
НоваяСтрока.Цена = 123;
КонецПроцедуры
Процедура СчитатьИзВесовНажатие(Элемент)
Подключить();
ТаблицаТоваров.Очистить();
Для ТекНомер = 1 По 3000 Цикл
DRV.PLUNumber = ТекНомер;
DRV.GetPLUDataEx();
НоваяСтрока = ТаблицаТоваров.Добавить();
НоваяСтрока.Код = DRV.PLUNumber;
НоваяСтрока.Цена = DRV.Price;
НоваяСтрока.Наименование = DRV.NameFirst;
КонецЦикла;
КонецПроцедуры
Тестировалось с Трактиръ: Nano (1.0.12.7), платформа 1с 8.3.13.1513.