Предисловие:
Хотя УПП 1.3 не является моей специализацией, помогал знакомому программисту FoxPro стать 1С-ником, благо у него "под боком" хорошая материально-техническая база в виде очень крупного предприятия и стабильно работающего УПП. Возникла задача автоматизировать процессы, относящиеся больше к собственной автоматизации, а также складские процессы. Одной из задач стала разработка печатной формы товарного ярлыка (ТОРГ-11).
Внешний вид обработки печати товарного ярлыка ТОРГ-11 для УПП 1.3 (и УТ 10.3) с выводом ВПФ в табличное поле (извиняюсь с ноубука скриншот).
Вначале что удалось найти из теории: ТОРГ-11 «Товарный ярлык»
Постановление Госкомстата РФ от 25.12.1998 г. N 132
Применяется для учета товарно-материальных ценностей в местах хранения товара. Товарный ярлык заполняется в одном экземпляре материально ответственным лицом на каждое наименование с проставлением порядкового номера ярлыка. Товарный ярлык хранится вместе с товарно-материальными ценностями по месту их нахождения.
Данные товарного ярлыка применяются для заполнения инвентаризационной описи товарно-материальных ценностей.
В процессе обсуждения методов решения задачи пришли к тому, что работник склада будет заполнять табличную часть данной внешней обработки по группам номенклатуры либо единичными элементами, все минимальные характеристики для наглядности будут выводиться в обязательные поля (код, актикул, единица измерения для отчетов, код ОКЕИ, и количество по умолчанию единица). Дополнительные оставим до выяснения ситуации. Дальше срабатывает обычная процедура печати.
Хотел бы поднять вопрос о целесообразности и практическом применении данной печатной формы ТОРГ-11 для ведения учета. В законодательстве описано очень скудно и к тому же создалось впечатление, что данная ВПФ только для швейной и трикотажной промышленности.
С удовольствием послушаем всех разбирающихся в методологии по данному направлению производственного учета деталей и комплектующих на большом производстве.
В заключении, проверил функционирование данной формы и она вез всяких ошибок запустилась и успешно работала (включая отбор и сохранение настроек на Управление торговлей 10.3.30 и выше - УПП в этих механизмах родственную УТ 10.3 специфику не использовали.
Остались вопросы: все-таки для товарных ярлыков необходима хоть какая-то сквозная нумерация и есть какие-то мысли автоматизировать все это документами наподобие выставления счетов клиентам в УТ 10.3, БП 3.0, УПП 1.3: бумага печатается и(или) отсылается по электронной почте, документ ни к чему не обязывающий, но его "копия" с номером-датой остается в виде документа в базе и в случае его оплаты является началом цепочки действий по взаиморасчетам. Что-то подобное хотели применить и к учету по данной технологии.
По технологии реализации: данная форма достаточно примитивна:
- Простое заполнение запросом табличной части внешней обработки по номенклатуре с использованием конструкции "В ИЕРАРХИИ" по каталогу комплектующих;
Процедура КоманднаяПанель1КнЗаполнитьПоКаталогу(Кнопка)
Запрос = Новый Запрос;
Запрос.Текст =
"ВЫБРАТЬ
| Номенклатура.Ссылка КАК Номенклатура,
| 1 КАК Количество
|ИЗ
| Справочник.Номенклатура КАК Номенклатура
|ГДЕ
| Номенклатура.Ссылка В ИЕРАРХИИ(&Каталог)
| И (НЕ Номенклатура.ПометкаУдаления)
| И (НЕ Номенклатура.ЭтоГруппа)
|
|УПОРЯДОЧИТЬ ПО
| Номенклатура.Наименование";
Запрос.УстановитьПараметр("Каталог", Каталог);
Товар.Загрузить(Запрос.Выполнить().Выгрузить());
КонецПроцедуры
- Использование события "ПриВыводеСтроки(Элемент, ОформлениеСтроки, ДанныеСтроки)" обычной (толстой) формы для прорисовки реквизитов номенклатуры (можно было получить и в запросе):
Процедура ТабличноеПоле1ПриВыводеСтроки(Элемент, ОформлениеСтроки, ДанныеСтроки)
Ном = ДанныеСтроки.Номенклатура;
Если Не ЗначениеЗаполнено(Ном) Тогда
ДанныеСтроки.Код = "";
ДанныеСтроки.ЕдиницаДляОтчетов = "";
ДанныеСтроки.КодПоОКЕИ = "";
ДанныеСтроки.Артикул = "";
Возврат;
КонецЕсли;
ДанныеСтроки.Код = Ном.Код;
ДанныеСтроки.ЕдиницаДляОтчетов = Ном.ЕдиницаДляОтчетов;
Если ЗначениеЗаполнено(Ном.ЕдиницаДляОтчетов) Тогда
ЕдКл = Ном.ЕдиницаДляОтчетов.ЕдиницаПоКлассификатору;
Если ЗначениеЗаполнено(ЕдКл) Тогда
ДанныеСтроки.КодПоОКЕИ = ЕдКл.Код;
КонецЕсли;
Иначе
ДанныеСтроки.КодПоОКЕИ = "";
КонецЕсли;
ДанныеСтроки.Артикул = Ном.Артикул;
//ДанныеСтроки.Количество = Ном. ;
//ДанныеСтроки. = Ном. ;
//ДанныеСтроки. = Ном. ;
//ДанныеСтроки. = Ном. ;
//ДанныеСтроки. = Ном. ;
//ДанныеСтроки. = Ном. ;
//ДанныеСтроки. = Ном. ;
//ДанныеСтроки. = Ном. ;
//ДанныеСтроки. = Ном. ;
//ДанныеСтроки. = Ном. ;
//ДанныеСтроки. = Ном. ;
КонецПроцедуры
- сохранение настроек (протестил на УПП 1.3), сохранялась табличная часть промежуточного отбора;
Настройки сохранения данных пользователя.
- Иллюстрация вывода в табличного документа в табличное поле обычной формы:
Процедура КнопкаСформироватьНажатие(Кнопка)
ТабПол = ЭлементыФормы.ТабличноеПоле1;
ТабДок = ЭлементыФормы.ПолеТабличногоДокумента1;
ТабДок.Очистить();
ТабДок.АвтоМасштаб = Ложь; // чтоб было 100%
ТабДок.ОриентацияСтраницы = ОриентацияСтраницы.Ландшафт;
ТабДок.РазмерСтраницы = "A4";
Кол = Товар.Количество();
Если Кол = 0 Тогда
Сообщить("Нечего печатать");
Возврат;
КОнецЕсли;
Макет = ПолучитьМакет("МакетТоварныйЯрлык"); // Наименование макета
СекцияШапка = Макет.ПолучитьОбласть("Шапка");
СекцияШапка.Параметры.Организация = Организация;
СекцияШапка.Параметры.Подразделение = ЭлементыФормы.Подразделение.Значение;
СекцияШапка.Параметры.НомерДокумента = ЭлементыФормы.НомерДокумента.Значение;
СекцияШапка.Параметры.ДатаСоставления = ЭлементыФормы.ДатаСоставления.Значение;
ТабДок.Вывести(СекцияШапка);
СекцияНоменклатура = Макет.ПолучитьОбласть("Номенклатура");
Для каждого СтрТаб Из Товар Цикл
ЗаполнитьЗначенияСвойств(СекцияНоменклатура.Параметры, СтрТаб);
СекцияНоменклатура.параметры.ПП = Товар.Индекс(СтрТаб) + 1;
ТабДок.Вывести(СекцияНоменклатура);
КонецЦикла;
//
Подвал = Макет.ПолучитьОбласть("Подвал");
Итого = Макет.ПолучитьОбласть("Итого");
КолВсего = Товар.Итог("Количество");
Итого.Параметры.Всего = КолВсего;
ТабДок.Вывести(Итого);
Подвал.Параметры.Количество = ""+ЧислоПрописью(КолВсего);
ТабДок.Вывести(Подвал);
КонецПроцедуры
Надеюсь, кому-то данный материал будет полезен.