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