Добрый день!
УНФ 1.4.5.25.
Создаю заказ-наряд добавляю вручную работы, потом перехожу в раздел "материалы" и пытаюсь с помощью сканера-штрих-кода добавить товар в табличную часть, а он добавляется в табличную часть "товары".
Как ни пытался не выходит добавить с помощью сканера товар в "материалы".
Подскажите так и должно быть или это можно как то исправить?
УНФ 1.4.5.25.
Создаю заказ-наряд добавляю вручную работы, потом перехожу в раздел "материалы" и пытаюсь с помощью сканера-штрих-кода добавить товар в табличную часть, а он добавляется в табличную часть "товары".
Как ни пытался не выходит добавить с помощью сканера товар в "материалы".
Подскажите так и должно быть или это можно как то исправить?
По теме из базы знаний
Ответы
Подписаться на ответы
Инфостарт бот
Сортировка:
Древо развёрнутое
Свернуть все
(1) chum, В модуле формы ищешь код "Запасы.Добавить()" - он в единственном месте в процедуре ЗаполнитьПоДаннымШтрихкодов
Перед добавлением добавляешь проверку - какая закладка сейчас активна:
Код обработки сканера штрихкода разбросан по нескольким процедурам. Если штрихкод пришел со сканера то вызывается обработчик ОбработкаОповещения (ИмяСобытия = "ScanData"), а если на форме по нажатию кнопки, то процедура ПоискПоШтрихкоду. Далее обрабатываются аналогично на клиенте и на сервере. Достаточно 1 раз разобраться - во всех документах обработка штрихкодов идентичная.
Перед добавлением добавляешь проверку - какая закладка сейчас активна:
Если Элементы.ЗНСтраницы.ТекущаяСтраница = Элементы.ЗНГруппаРаботы Тогда
НоваяСтрока = Объект.Материалы.Добавить();
// заполнение реквизитов материалов
ИначеЕсли Элементы.ЗНСтраницы.ТекущаяСтраница = Элементы.ЗНГруппаТовары Тогда
НоваяСтрока = НоваяСтрока = Объект.Запасы.Добавить();
// заполнение реквизитов Товаров
Иначе
// другие закладки
КонецЕсли;
ПоказатьКод обработки сканера штрихкода разбросан по нескольким процедурам. Если штрихкод пришел со сканера то вызывается обработчик ОбработкаОповещения (ИмяСобытия = "ScanData"), а если на форме по нажатию кнопки, то процедура ПоискПоШтрихкоду. Далее обрабатываются аналогично на клиенте и на сервере. Достаточно 1 раз разобраться - во всех документах обработка штрихкодов идентичная.
Хм. думаю в обработке внешнего события жёстко прописана табличная часть в которую добавляется найденная номенклатура. Можно сделать динамику проверяя активную страницу и добавлять тогда в соответствующую табличную часть.
Процедура ВнешнееСобытие(Источник, Событие, Данные)
Если Не ВводДоступен() Тогда
Возврат;
КонецЕсли;
Если глТорговоеОборудование <> Неопределено Тогда
Если Событие = "BarCodeValue" Тогда
Если ЭтаФорма.ЭлементыФормы.ОсновнаяПанель.ТекущаяСтраница.Имя = "Товары" Тогда
ТабличнаяЧасть = "Товары";
ИначеЕсли ЭтаФорма.ЭлементыФормы.ОсновнаяПанель.ТекущаяСтраница.Имя = "Тара" Тогда
ТабличнаяЧасть = "ВозвратнаяТара";
Иначе
ТабличнаяЧасть = "";
КонецЕсли;
ПоказатьВот пример кода в модуле формы документа. Отрабатывается внешнее событие BarCodeValue(сканирование) потом проверяется какая сейчас текущая страница Товары или Тара. Вам нужно сделать примерно так же.
Аналогично в документе СборкаЗапасов (Производство)
заменить на
Функция ЗаполнитьПоДаннымШтрихкодов(ДанныеШтрикодов)
...
МассивСтрокТЧ = Объект.Запасы.НайтиСтроки(Новый Структура("Номенклатура,Характеристика...;
Если МассивСтрокТЧ.Количество() = 0 Тогда
НоваяСтрока = Объект.Запасы.Добавить();
заменить на
...
Если Элементы.Страницы.ТекущаяСтраница = Элементы.Страницы.ТЧПродукция Тогда
МассивСтрокТЧ = Объект.Продукция.НайтиСтроки(Новый Структура("Номенклатура,Характеристика...;
Если МассивСтрокТЧ.Количество() = 0 Тогда
НоваяСтрока = Объект.Продукция.Добавить();
...
ИначеЕсли Элементы.Страницы.ТекущаяСтраница = Элементы.Страницы.ТЧЗапасы Тогда
МассивСтрокТЧ = Объект.Запасы.НайтиСтроки(Новый Структура("Номенклатура,Характеристика...;
Если МассивСтрокТЧ.Количество() = 0 Тогда
НоваяСтрока = Объект.Запасы.Добавить();
...
КонецЕсли;
Показать
Для получения уведомлений об ответах подключите телеграм бот:
Инфостарт бот