Представляет собой простое решение на базе УПП 1.3, как создать внешнюю обработку по отбору нужных данных по комплектующим большого промышленного предприятия с целью вывода на печать унифицированной формы ТОРГ-11 "Товарный ярлык".
Помимо иллюстрации начинающим программистам технологии создания подобных обработок печати с предварительным отбором поднимается дискуссия по предметной области учета: о практической целесообразности ведения учета с помощью документации ТОРГ-11 на крупном промышленном предприятии и возможных путях решения проблемы.
Хотя УПП 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; ТабДок.Вывести(СекцияНоменклатура); КонецЦикла; // Подвал = Макет.ПолучитьОбласть("Подвал"); Итого = Макет.ПолучитьОбласть("Итого"); КолВсего = Товар.Итог("Количество"); Итого.Параметры.Всего = КолВсего; ТабДок.Вывести(Итого); Подвал.Параметры.Количество = ""+ЧислоПрописью(КолВсего); ТабДок.Вывести(Подвал); КонецПроцедуры
В заключение, алгоритмы функционирования вышеуказанной печатной формы "Торг11" для УПП 1.3 оказались полностью функциональны для Управление торговлей 10.3 (проверял на релизе УТ 10.3.30), т.к. механизмы УПП 1.3 и УТ 10.3 по данному участку оказались схожи.
Надеюсь, кому-то данный материал будет полезен.