11 июн. 2018 г.

Печать в несколько колонок

&НаСервере Функция ПечатьКолонкамиНаСервере() Обработка = РеквизитФормыВЗначение("Объект"); Макет = Обработка.ПолучитьМакет("Шаблон_480х166_Товары"); Область = Макет.ПолучитьОбласть("Область|Область1"); табДок = Новый ТабличныйДокумент; КоличествоКолонок = 1; Для Каждого Эл Из Объект.Товары Цикл Область.Параметры.Код = Эл.Номенклатура.Артикул; Область.Параметры.Наименование = Эл.Номенклатура.НаименованиеПолное; Если КоличествоКолонок = 1 Или КоличествоКолонок = 5 Тогда //печать в 4 колонки табДок.Вывести(Область); КоличествоКолонок = 1; Иначе табДок.Присоединить(Область); КонецЕсли; КоличествоКолонок = КоличествоКолонок + 1; КонецЦикла; Возврат табДок; КонецФункции

СКД из ТаблицыЗначений \ ВнешниеИсточники

Процедура ПриКомпоновкеРезультата(ДокументРезультат, ДанныеРасшифровки, СтандартнаяОбработка) СтандартнаяОбработка = Ложь; // Подготавливаем таблицу значений ДоходДоллар = ДоходДолларПолучить(); РасходГривна = РасходГривнаПолучить(); РасходДоллар = РасходДолларПолучить(); РасходыПроизводство = РасходыПроизводствоПолучить(); ТаблицаРезультат = Новый ТаблицаЗначений; ТаблицаРезультат.Колонки.Добавить("ДоходДоллар"); ТаблицаРезультат.Колонки.Добавить("РасходГривна"); ТаблицаРезультат.Колонки.Добавить("РасходДоллар"); ТаблицаРезультат.Колонки.Добавить("РасходыПроизводство"); новстр = ТаблицаРезультат.Добавить(); новстр.ДоходДоллар = 10; новстр.РасходГривна = 13; новстр.РасходДоллар = 111; новстр.РасходыПроизводство = 8; новстр.ДоходДоллар = ДоходДоллар; новстр.РасходГривна = РасходГривна; новстр.РасходДоллар = РасходДоллар; новстр.РасходыПроизводство = РасходыПроизводство; //Получаем схему из макета СхемаКомпоновкиДанных = ПолучитьМакет("ОсновнаяСхемаКомпоновкиДанных"); //Из схемы возьмем настройки по умолчанию Настройки = СхемаКомпоновкиДанных.НастройкиПоУмолчанию; //Помещаем в переменную данные о расшифровке данных ДанныеРасшифровки = Новый ДанныеРасшифровкиКомпоновкиДанных; //Формируем макет, с помощью компоновщика макета КомпоновщикМакета = Новый КомпоновщикМакетаКомпоновкиДанных; //Передаем в макет компоновки схему, настройки и данные расшифровки МакетКомпоновки = КомпоновщикМакета.Выполнить(СхемаКомпоновкиДанных, Настройки, ДанныеРасшифровки); //Выполним компоновку с помощью процессора компоновки ПроцессорКомпоновкиДанных = Новый ПроцессорКомпоновкиДанных; ПроцессорКомпоновкиДанных.Инициализировать(МакетКомпоновки, Новый Структура("ТаблицаРезультат", ТаблицаРезультат), ДанныеРасшифровки); //Очищаем поле табличного документа ДокументРезультат.Очистить(); //Выводим результат в табличный документ ПроцессорВывода = Новый ПроцессорВыводаРезультатаКомпоновкиДанныхВТабличныйДокумент; ПроцессорВывода.УстановитьДокумент(ДокументРезультат); ПроцессорВывода.Вывести(ПроцессорКомпоновкиДанных); КонецПроцедуры



Получить последнюю запись в итогах СКД (ресурсы)


ВычислитьВыражение("Долг", , , "Последняя")


результат


Конвертировать PDF в Image в 1С

Для того, чтобы преобразовать pdf файл, который возвращает веб сервис, в файл изображения и последующее вставки в табличный документ нужно для начала установить программу, так называемую ImageMagick с установленной галкой 


а так же Ghostscript.

Так автор программы назвал ImageMagick и далее по тексту автор назвал.

Далее строка переобразование имеет вид 

ЗапуститьПриложение("C:\Program Files\ImageMagick-7.0.7-Q16\convert.exe "+ПутьКФайлуНаДискеПДФ+" " + ПутьКФайлуНаДискеИзображение);

Есть еще момент, перед вставкой в табличный документ 1с нужно сделать паузу 

ЗадержкаВСекундах = 2; Shell = Новый COMОбъект("WScript.Shell"); Shell.Run("ping 127.0.0.1 -n "+ЗадержкаВСекундах+"",0,1); Макет = ПолучитьОбщийМакет("нп_Этикетка_7х5_10х5");

для того, что бы 1с смогла успешно успеть отобразить в табличном документе полученое после переобразования изображение.

&НаКлиенте Процедура ПриОткрытии(Отказ) //пдф ПутьКФайлуНаДискеПДФ = ЗагрузитьПоУРЛ_ТТН(АдресСтраницы); Если ЗначениеЗаполнено(ПутьКФайлуНаДискеПДФ) Тогда //изображение ПутьКФайлуНаДискеИзображение = ПереобразоватьПДФ_в_Изображение(ПутьКФайлуНаДискеПДФ); ЗаполнитьТабличныйДокумент(ПутьКФайлуНаДискеИзображение); //очистка УдалитьФайлы(ПутьКФайлуНаДискеПДФ); Если ЗначениеЗаполнено(ПутьКФайлуНаДискеИзображение) Тогда УдалитьФайлы(ПутьКФайлуНаДискеИзображение); КонецЕсли; КонецЕсли; КонецПроцедуры &НаСервере Функция ПереобразоватьПДФ_в_Изображение(ПутьКФайлуНаДискеПДФ) Попытка Гсч = Новый ГенераторСлучайныхЧисел(); ПутьКФайлуНаДискеИзображение = КаталогВременныхФайлов() +Строка(Формат(Гсч.СлучайноеЧисло(),"ЧГ=0" ))+".JPG"; ЗапуститьПриложение("C:\Program Files\ImageMagick-7.0.7-Q16\convert.exe "+ПутьКФайлуНаДискеПДФ+" " + ПутьКФайлуНаДискеИзображение); Возврат ПутьКФайлуНаДискеИзображение; Исключение УдалитьФайлы(ПутьКФайлуНаДискеИзображение); Сообщить(ОписаниеОшибки()); Возврат ""; КонецПопытки; КонецФункции &НаСервере Функция ЗагрузитьПоУРЛ_ТТН(УРЛ_ТТН) Попытка Гсч = Новый ГенераторСлучайныхЧисел(); ПутьКФайлуНаДиске = КаталогВременныхФайлов() +Строка(Формат(Гсч.СлучайноеЧисло(),"ЧГ=0" ))+".pdf"; КопироватьФайл(УРЛ_ТТН, ПутьКФайлуНаДиске); Возврат ПутьКФайлуНаДиске; Исключение УдалитьФайлы(ПутьКФайлуНаДиске); Сообщить(ОписаниеОшибки()); Возврат ""; КонецПопытки; КонецФункции &НаСервере Процедура ЗаполнитьТабличныйДокумент(ПутьКФайлуНаДиске) ТабДок = ТТН; ТабДок.Очистить(); ЗадержкаВСекундах = 2; Shell = Новый COMОбъект("WScript.Shell"); Shell.Run("ping 127.0.0.1 -n "+ЗадержкаВСекундах+"",0,1); Макет = ПолучитьОбщийМакет("нп_Этикетка_7х5_10х5"); ОбластьРисунок = Макет.ПолучитьОбласть("Рисунок"); Картинка = Новый Картинка(ПутьКФайлуНаДиске); ОбластьРисунок.Рисунки.D1.Картинка = Картинка; ТабДок.Вывести(ОбластьРисунок); КонецПроцедуры
 

CopyPaste Copyright © 2017 - |- Шаблон создан O Pregador - |- Отредактирован myr4ik07