новое событие
Информационный поток
Задания вакансии материалы разработки сообщения форума
Форум

Как вывести штрихкоды из РегистраСведений.ШтрихкодыНоменклатуры в печать?

    • #1
    • 23.01.2019 12:29
    0
    Здравствуйте уважаемые программисты 1С. Я пока недавно начал изучание программирования 1С, поэтому возможно мой вопрос покажется Вам очень банальным. Но прошу помочь мне вывести во внешнюю печатную форму штрихкоды номенклатуры указанных в документах из РегистраСведений.ШтрихкодыНоменклатуры
    • #2
    • 23.01.2019 12:30
    0
    Для наглядности добавлю код. Конфигурация базы: УТ 11.4.

    Функция СведенияОВнешнейОбработке () экспорт
    ПараметрыРегистрации = Новый Структура;
    МассивНазначений = Новый Массив;
    МассивНазначений.Добавить("Документ.ЗаказКлиента"); 
    ПараметрыРегистрации.Вставить("Вид", "ПечатнаяФорма"); 
    ПараметрыРегистрации.Вставить("Назначение", МассивНазначений);   
    ПараметрыРегистрации.Вставить("Наименование", "Распечатка Чека"); ПараметрыРегистрации.Вставить("БезопасныйРежим", ИСТИНА);
    ПараметрыРегистрации.Вставить("Версия", "1.0"); 
    ТаблицаКоманд = ПолучитьТаблицуКоманд();
    ДобавитьКоманду(ТаблицаКоманд, "Распечатка Чека (1.0)", "ПечатьЗаказ", "ВызовСерверногоМетода", Истина, "ПечатьMXL");
    ПараметрыРегистрации.Вставить("Команды", ТаблицаКоманд);
    Возврат ПараметрыРегистрации;
    КонецФункции
    
    
    Функция ПолучитьТаблицуКоманд()
    Команды = Новый ТаблицаЗначений;
    Команды.Колонки.Добавить("Представление", Новый ОписаниеТипов("Строка"));
    Команды.Колонки.Добавить("Идентификатор", Новый ОписаниеТипов("Строка")); //имя макета печ.формы
    Команды.Колонки.Добавить("Использование", Новый ОписаниеТипов("Строка")); //ВызовСерверногоМетода
    Команды.Колонки.Добавить("ПоказыватьОповещение", Новый ОписаниеТипов("Булево"));
    Команды.Колонки.Добавить("Модификатор", Новый ОписаниеТипов("Строка"));
    Возврат Команды;
    КонецФункции
    
    
    Процедура ДобавитьКоманду(ТаблицаКоманд, Представление, Идентификатор, Использование, ПоказыватьОповещение = Ложь, Модификатор = "")
    НоваяКоманда = ТаблицаКоманд.Добавить();
    НоваяКоманда.Представление = Представление; 
    НоваяКоманда.Идентификатор = Идентификатор;
    НоваяКоманда.Использование = Использование;
    НоваяКоманда.ПоказыватьОповещение = ПоказыватьОповещение;
    НоваяКоманда.Модификатор = Модификатор;
    КонецПроцедуры
    
    
    Процедура Печать(МассивОбъектов, КоллекцияПечатныхФорм, ОбъектыПечати, ПараметрыВывода) Экспорт
    
    
    УправлениеПечатью.ВывестиТабличныйДокументВКоллекцию(КоллекцияПечатныхФорм, "ПечатьЗаказ", "Печать Заказа", СформироватьПечатнуюФорму(МассивОбъектов[0], ОбъектыПечати));
    
    
    КонецПроцедуры // Печать()           
    
    
    //Данные выводимой информации
    Функция СформироватьПечатнуюФорму(СсылкаНаДокумент, ОбъектыПечати)
    ТабличныйДокумент = Новый ТабличныйДокумент;
    ТабличныйДокумент.ИмяПараметровПечати = "ПечатьЗаказ";
    МакетОбработки = ПолучитьМакет("МакетПечатиЗаказа");
    
    
    //шапка   
    ОбластьШапка = МакетОбработки.ПолучитьОбласть("Шапка");
    ОбластьШапка.Параметры.НомерЗаказа = СсылкаНаДокумент.Номер;
    ОбластьШапка.Параметры.ДатаЗаказа = Формат (СсылкаНаДокумент.Дата,"Л=az_AZ; ДФ=dd.MM.yyyy; ДЛФ=D");
    //ОбластьШапка.Параметры.Контрагент = СсылкаНаДокумент.Контрагент;
    //ОбластьШапка.Параметры.АдресДоставки = СсылкаНаДокумент.АдресДоставки;
    ТабличныйДокумент.Вывести(ОбластьШапка);
    
    
    //оглавление 
    ОбластьОглавление = МакетОбработки.ПолучитьОбласть("Оглавление");
    ТабличныйДокумент.Вывести(ОбластьОглавление);
    
    
    //строка ТЧ
    ОбластьСтроки = МакетОбработки.ПолучитьОбласть("СтрокаТЧ");
    для каждого ТекущаяСтрока из СсылкаНаДокумент.Товары цикл
    ОбластьСтроки.Параметры.Товар = ТекущаяСтрока.Номенклатура;
    ОбластьСтроки.Параметры.Номер = ТекущаяСтрока.НомерСтроки;
    ОбластьСтроки.Параметры.ЦенаБезСкидки = Формат(ТекущаяСтрока.Цена,"Л=az_AZ; ЧФ='Ч azn'");
    ОбластьСтроки.Параметры.Количество = ТекущаяСтрока.Количество;
    //ОбластьСтроки.Параметры.СуммаНДС = ТекущаяСтрока.СтавкаНДС;
    //ОбластьСтроки.Параметры.СуммаНДС = Формат(Окр(ТекущаяСтрока.Цена - (ТекущаяСтрока.Цена * 18 / 100),2),"Л=az_AZ; ЧФ='Ч azn'");
    //ОбластьСтроки.Параметры.Сумма = ТекущаяСтрока.Сумма;
        
    //Если ТекущаяСтрока.ПроцентРучнойСкидки > 0 тогда
    //ОбластьСтроки.Параметры.СуммаБезСкидки = ОбластьСтроки.Параметры.Сумма + ОбластьСтроки.Параметры.Скидка;  
    //ИначеЕсли ТекущаяСтрока.ПроцентАвтоматическойСкидки > 0 тогда
    //ОбластьСтроки.Параметры.СуммаБезСкидки = ОбластьСтроки.Параметры.Сумма - ОбластьСтроки.Параметры.Скидка; 
    //Иначе ОбластьСтроки.Параметры.СуммаБезСкидки = ОбластьСтроки.Параметры.Сумма; 
    //КонецЕсли;
    
    
    //ОбластьСтроки.Параметры.Артикул = ТекущаяСтрока.Номенклатура.Артикул;
    
    
    //Если ТекущаяСтрока.ПроцентРучнойСкидки тогда ОбластьСтроки.Параметры.Скидка = Формат (ТекущаяСтрока.ПроцентРучнойСкидки, "ЧФ='Ч %'");
    //ИначеЕсли  ТекущаяСтрока.ПроцентАвтоматическойСкидки тогда ОбластьСтроки.Параметры.Скидка = ТекущаяСтрока.ПроцентАвтоматическойСкидки; 
    //Иначе ОбластьСтроки.Параметры.Скидка = "0%" КонецЕсли;
    
    
    ////ОбластьСтроки.Параметры.СуммаНДС = Формат(Окр(ТекущаяСтрока.Цена * 18 / 100,2),"Л=az_AZ; ЧФ='Ч azn'");
    //Если ТекущаяСтрока.ПроцентРучнойСкидки > 0 тогда
    //ОбластьСтроки.Параметры.СуммаБезСкидки = ТекущаяСтрока.Сумма + (Окр(ТекущаяСтрока.Цена * ТекущаяСтрока.ПроцентРучнойСкидки / 100,2) * ТекущаяСтрока.Количество); 
    //ИначеЕсли ТекущаяСтрока.ПроцентАвтоматическойСкидки > 0 тогда
    //ОбластьСтроки.Параметры.СуммаБезСкидки = ТекущаяСтрока.Сумма + (Окр(ТекущаяСтрока.Цена * ТекущаяСтрока.ПроцентАвтоматическойСкидки / 100,2) * ТекущаяСтрока.Количество);
    //Иначе ОбластьСтроки.Параметры.СуммаБезСкидки = "0 AZN";
    //КонецЕсли;
    
    
    //Если ТекущаяСтрока.ПроцентРучнойСкидки > 0 тогда
    //ОбластьСтроки.Параметры.ЦенаСкидки = (Окр(ТекущаяСтрока.Цена * ТекущаяСтрока.ПроцентРучнойСкидки / 100,2) * ТекущаяСтрока.Количество);  
    //ИначеЕсли ТекущаяСтрока.ПроцентАвтоматическойСкидки > 0 тогда
    //ОбластьСтроки.Параметры.ЦенаСкидки = ОбластьСтроки.Параметры.ЦенаСкидки = (Окр(ТекущаяСтрока.Цена * ТекущаяСтрока.ПроцентАвтоматическойСкидки / 100,2) * ТекущаяСтрока.Количество);  
    //Иначе ОбластьСтроки.Параметры.ЦенаСкидки = "0 AZN";
    //КонецЕсли;
    
    
    ТабличныйДокумент.Вывести(ОбластьСтроки);
    КонецЦикла;
    
    
    //подвал
    ОбластьПодвал = МакетОбработки.ПолучитьОбласть("Подвал");
    //ОбластьПодвал.Параметры.КоличествоИтог = СсылкаНаДокумент.Товары.Итог("Количество");
    ОбластьПодвал.Параметры.СуммаИтог = СсылкаНаДокумент.Товары.Итог("Сумма");
    ОбластьПодвал.Параметры.СуммаНДС = СсылкаНаДокумент.Товары.Итог("СуммаНДС");
    //Если СсылкаНаДокумент.Товары.Итог("СуммаРучнойСкидки") тогда 
    //ОбластьПодвал.Параметры.СкидкаИтог = СсылкаНаДокумент.Товары.Итог("СуммаРучнойСкидки");
    //ИначеЕсли СсылкаНаДокумент.Товары.Итог("ПроцентАвтоматическойСкидки")тогда
    //ОбластьПодвал.Параметры.СкидкаИтог = СсылкаНаДокумент.Товары.Итог("ПроцентАвтоматическойСкидки"); 
    //Иначе ОбластьПодвал.Параметры.СкидкаИтог = "0%" КонецЕсли;  
    
    
    ОбластьПодвал.Параметры.СуммаПрописью = ЧислоПрописью(СсылкаНаДокумент.Товары.Итог("Сумма"),"Л=az_AZ; ДП=истина","manat, qəpik, qəpik, м, qəpik, qəpik, qəpik, ж" );
    
    
    ТабличныйДокумент.Вывести(ОбластьПодвал);
    
    //параметры страницы
    ТабличныйДокумент.АвтоМасштаб = истина;
    ТабличныйДокумент.ОриентацияСтраницы=ОриентацияСтраницы.Портрет;
    ТабличныйДокумент.ПолеСлева=0;
    ТабличныйДокумент.ПолеСправа=0;
    ТабличныйДокумент.ПолеСверху=0;
    ТабличныйДокумент.ПолеСнизу=0;
    ТабличныйДокумент.ВерхнийКолонтитул.Выводить=ложь;
    ТабличныйДокумент.НижнийКолонтитул.Выводить=ложь;         
    Возврат ТабличныйДокумент;
    КонецФункции
    • #3
    • 23.01.2019 20:08
    0
    посмотрите работу с запросами, обычно все данные ими вытаскиваются (гугл в помощь1!) :)
    • #4
    • 25.01.2019 11:28
    0
    OiSorry
    посмотрите работу с запросами, обычно все данные ими вытаскиваются (гугл в помощь1!) :)


    Я уже сделал =)) Задал вопрос и пока дожидался ответа сделал =))
Для участия в обсуждении Вам необходимо авторизоваться либо   зарегистрироваться