Форум 1С
Программистам, бухгалтерам, администраторам, пользователям
Задай вопрос - получи решение проблемы
24 ноя 2024, 11:13

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

Автор Murad Novruzov, 23 янв 2019, 11:50

0 Пользователей и 1 гость просматривают эту тему.

Murad Novruzov

   
Здравствуйте уважаемые программисты 1С. Я в этом деле новичок, поэтому возможно мой вопрос покажется Вам очень банальным. Но прошу помочь мне вывести во внешнюю печатную форму штрихкоды номенклатуры указанных в документах из РегистраСведений.ШтрихкодыНоменклатуры

А вот и код для наглядности

Функция СведенияОВнешнейОбработке () экспорт
ПараметрыРегистрации = Новый Структура;
МассивНазначений = Новый Массив;
МассивНазначений.Добавить("Документ.ЗаказКлиента");
ПараметрыРегистрации.Вставить("Вид", "ПечатнаяФорма");
ПараметрыРегистрации.Вставить("Назначение", МассивНазначений);   
ПараметрыРегистрации.Вставить("Наименование", "Распечатка Чека"); ПараметрыРегистрации.Вставить("БезопасныйРежим", ИСТИНА);
ПараметрыРегистрации.Вставить("Версия", "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;
ТабличныйДокумент.ВерхнийКолонтитул.Выводить=ложь;
ТабличныйДокумент.НижнийКолонтитул.Выводить=ложь;         
Возврат ТабличныйДокумент;
КонецФункции

Теги:

Похожие темы (5)

Рейтинг@Mail.ru

Поиск