8.х Штрихкод в печатной форме WMS.

Тема в разделе "Отчеты и обработки для "1С:Предприятие 8"", создана пользователем Aydar1944, 14 мар 2017.

  1. TopicStarter Overlay
    Aydar1944
    Offline

    Aydar1944

    Регистрация:
    3 мар 2017
    Сообщения:
    14
    Симпатии:
    0
    Баллы:
    1
    Всем привет. Никогда не вставлял штрихкод в печатную форму, как это делается, для этого надо отдельную область сделать?

    Код:
    Функция СведенияОВнешнейОбработке()Экспорт
       
        ПараметрыРегистрации = Новый Структура;
        МассивНазначений = Новый Массив;
        МассивНазначений.Добавить("Документ.усПриемка"); //Указываем документ к которому делаем внешнюю печ. форму
        ПараметрыРегистрации.Вставить("Вид", "ПечатнаяФорма"); //может быть - ПечатнаяФорма, ЗаполнениеОбъекта, ДополнительныйОтчет, СозданиеСвязанныхОбъектов...
        ПараметрыРегистрации.Вставить("Назначение", МассивНазначений);
        ПараметрыРегистрации.Вставить("Наименование", "Печать этикеток"); //имя под которым обработка будет зарегестрирована в справочнике внешних обработок
        ПараметрыРегистрации.Вставить("БезопасныйРежим", Ложь);
        ПараметрыРегистрации.Вставить("Версия", "1.0");
        ПараметрыРегистрации.Вставить("Информация", "Печать этикеток1");
        ТаблицаКоманд = ПолучитьТаблицуКоманд();
        ДобавитьКоманду(ТаблицаКоманд, "ПечатнаяФорма", "Печать этикеток12", "ВызовСерверногоМетода", Истина, "ПечатьMXL");
        ПараметрыРегистрации.Вставить("Команды", ТаблицаКоманд);
        Возврат ПараметрыРегистрации;
    
    КонецФункции // СведенияОВнешнейОбработке()
    
    Функция ПолучитьТаблицуКоманд()
       
        Команды = Новый ТаблицаЗначений;
        Команды.Колонки.Добавить("Представление", Новый ОписаниеТипов("Строка"));//как будет выглядеть описание печ.формы для пользователя
        Команды.Колонки.Добавить("Идентификатор", Новый ОписаниеТипов("Строка")); //имя макета печ.формы
        Команды.Колонки.Добавить("Использование", Новый ОписаниеТипов("Строка")); //ВызовСерверногоМетода
        Команды.Колонки.Добавить("ПоказыватьОповещение", Новый ОписаниеТипов("Булево"));
        Команды.Колонки.Добавить("Модификатор", Новый ОписаниеТипов("Строка"));
        Возврат Команды;
       
    КонецФункции
    
    Процедура ДобавитьКоманду(ТаблицаКоманд, Представление, Идентификатор, Использование, ПоказыватьОповещение = Ложь, Модификатор = "")
    
        НоваяКоманда = ТаблицаКоманд.Добавить();
        НоваяКоманда.Представление = Представление;
        НоваяКоманда.Идентификатор = Идентификатор;
        НоваяКоманда.Использование = Использование;
        НоваяКоманда.ПоказыватьОповещение = ПоказыватьОповещение;
        НоваяКоманда.Модификатор = Модификатор;
    
    КонецПроцедуры
    
    
    
    Функция СформироватьПечатнуюФорму(МассивОбъектов, ОбъектыПечати)
       
        ТабличныйДокумент = Новый ТабличныйДокумент;
        ТабличныйДокумент.ИмяПараметровПечати = "ПАРАМЕТРЫ_ПЕЧАТЬ";
        ДанныеДляПечати = ПолучитьДанныеДляПечатнойФормы(МассивОбъектов);
        ЗаполнитьТабличныйДокумент(ТабличныйДокумент, ДанныеДляПечати, ОбъектыПечати);
       
        Возврат ТабличныйДокумент;
       
    КонецФункции
    
    #Область ПрограммныйИнтерфейс
    Процедура Печать(МассивОбъектов, КоллекцияПечатныхФорм, ОбъектыПечати, ПараметрыВывода) Экспорт
    
        УправлениеПечатью.ВывестиТабличныйДокументВКоллекцию(КоллекцияПечатныхФорм, "Печать этикеток12", "ПечатнаяФорма", СформироватьПечатнуюФорму(МассивОбъектов[0], ОбъектыПечати));
    
    КонецПроцедуры // Печать()
    #КонецОбласти
    
    
    
    Функция ПолучитьДанныеДляПечатнойФормы(МассивОбъектов)Экспорт
       
        Запрос = Новый Запрос;
        Запрос.Текст =
        "ВЫБРАТЬ
        |    усСтрокаПриемки.Номенклатура.Наименование КАК Наименование,
        |    усСтрокаПриемки.Номенклатура.Артикул КАК Артикул,
        |    усСтрокаПриемки.Количество,
        |    усПриемка.НомерКИС,
        |    усПриемка.ДатаКИС КАК ДатаПриемки,
        |    усПриемка.Контрагент,
        |    усПриемка.Ссылка
        |ИЗ
        |    Документ.усПриемка КАК усПриемка
        |        ЛЕВОЕ СОЕДИНЕНИЕ Документ.усСтрокаПриемки КАК усСтрокаПриемки
        |        ПО усПриемка.Ссылка = усСтрокаПриемки.Владелец
        |ГДЕ
        |    усПриемка.Ссылка = &Ссылка";
       
        Запрос.УстановитьПараметр("ссылка", МассивОбъектов);
       
        ПакетРезультатовЗапроса = Запрос.ВыполнитьПакет();
        СтруктураДанныхДляПечати = Новый Структура;
        СтруктураДанныхДляПечати.Вставить("РезультатПоЗаголовку",     ПакетРезультатовЗапроса[0]);
        Возврат СтруктураДанныхДляПечати;
       
    КонецФункции // ()
    
    Процедура ЗаполнитьТабличныйДокумент(ТабличныйДокумент, ДанныеДляПечати, ОбъектыПечати) Экспорт
       
        ВыборкаДанныеПечати = ДанныеДляПечати.РезультатПоЗаголовку.Выбрать();
        МакетОбработки = ПолучитьМакет("Макет");
       
        //заполняем шапку
        ОбластьШапка = МакетОбработки.ПолучитьОбласть("Шапка");
       
        Пока ВыборкаДанныеПечати.Следующий() Цикл
            ТабличныйДокумент.ВывестиГоризонтальныйРазделительСтраниц();
            НомерСтрокиНачало = ТабличныйДокумент.ВысотаТаблицы + 1;
           
            ОбластьШапка.Параметры.Наименование = ВыборкаДанныеПечати.Наименование;
            ОбластьШапка.Параметры.КодSAP = ВыборкаДанныеПечати.Артикул;   
            ОбластьШапка.Параметры.Количество = ВыборкаДанныеПечати.Количество;       
            ОбластьШапка.Параметры.Контрагент = ВыборкаДанныеПечати.Контрагент;
            ОбластьШапка.Параметры.ДатаПриемки = ВыборкаДанныеПечати.ДатаПриемки;
            ОбластьШапка.Параметры.ДатаПриемки = Формат(ВыборкаДанныеПечати.ДатаПриемки, "ДФ=dd.MM.yyyy");
            ОбластьШапка.Параметры.НомерКИС = ВыборкаДанныеПечати.НомерКИС;
           
            ТабличныйДокумент.Вывести(ОбластьШапка);
           
        КонецЦикла;
       
        УправлениеПечатью.ЗадатьОбластьПечатиДокумента(ТабличныйДокумент, НомерСтрокиНачало, ОбъектыПечати, ВыборкаДанныеПечати.Ссылка);
       
        ТабличныйДокумент.АвтоМасштаб = Истина;
       
    КонецПроцедуры
    
    
  2. TopicStarter Overlay
    Aydar1944
    Offline

    Aydar1944

    Регистрация:
    3 мар 2017
    Сообщения:
    14
    Симпатии:
    0
    Баллы:
    1
    Ни кто не знает?:(
  3. alexburn
    Offline

    alexburn Модераторы Команда форума Модератор

    Регистрация:
    5 янв 2009
    Сообщения:
    15.150
    Симпатии:
    556
    Баллы:
    204
    Нужно в макете добавить элемент управления - Печать штрихкодов, гуглится на раз :)
  4. TopicStarter Overlay
    Aydar1944
    Offline

    Aydar1944

    Регистрация:
    3 мар 2017
    Сообщения:
    14
    Симпатии:
    0
    Баллы:
    1
    Это я сделал, я не совсем понимаю, как в коде это прописать.
  5. alexburn
    Offline

    alexburn Модераторы Команда форума Модератор

    Регистрация:
    5 янв 2009
    Сообщения:
    15.150
    Симпатии:
    556
    Баллы:
    204
    Что-то типа такого:
    Область.Рисунки.Штрихкод.Объект.ТекстКода = Штрихкод;

Поделиться этой страницей