Как вывести список на печать с учетом установленных отборов? Этот код аналог функции Вывести список - вывод списка элементов справочника или списка документов:
Код 1C v 8.х Процедура ДействияФормыПечать(Кнопка)
Список = ЭтаФорма. ТабличноеПолеДокументов;
ТабДок = Новый ТабличныйДокумент;
ТабДок. АвтоМасштаб = Истина ;
ТабДок. ТолькоПросмотр = Ложь ;
ТабДок. ОтображатьСетку = Ложь ;
Макет = Документы. Заказ. ПолучитьМакет( "МакетСписок" ) ;
ОбластьШапка = Макет. ПолучитьОбласть( "Шапка" ) ;
ОбластьСтрока = Макет. ПолучитьОбласть( "Строка" ) ;
ТабДок. Вывести( ОбластьШапка) ;
Построитель = Новый ПостроительОтчета;
Построитель. ИсточникДанных = Новый ОписаниеИсточникаДанных( Список) ;
Выборка = Построитель. Результат. Выбрать( ) ;
Пока Выборка. Следующий( ) Цикл
ОбработкаПрерыванияПользователя( ) ;
ОбластьСтрока. Параметры. Заполнить( Выборка) ;
ТабДок. Вывести( ОбластьСтрока) ;
КонецЦикла ;
ТабДок. Показать( ) ;
КонецПроцедуры
Категория:
Список Справочника, Документов, Регистров Отображение PDF файлов в 1С используя ActiveX Adobe PDF Reader Часто при разработке какого-либо функционала в 1С мы делаем прикрепление файлов pdf.
Итак, Первым делом идет Выбор файла, далее нужно быстро просмотреть приложенный файл.
Для решения используются следующие варианты:
файл Выбирается по кнопке Выбор файла и помещается в Реквизит с типом Хранилище Значений
Код 1C v 8.х Процедура КнопкаВыбратьСканНажатие(Элемент)
Диалог = Новый ДиалогВыбораФайла( РежимДиалогаВыбораФайла. Открытие) ;
Диалог. Заголовок = "Выберите файл" ;
Диалог. ПолноеИмяФайла = "" ;
Фильтр = "Все файлы (*.*)|*.*" ;
Диалог. Фильтр = Фильтр;
Если Диалог. Выбрать( ) Тогда
Попытка
ПутьКВнешнемуФайлу = Диалог. ПолноеИмяФайла;
СканФайл = Новый ХранилищеЗначения( Новый ДвоичныеДанные( ПутьКВнешнемуФайлу) ) ;
СканНазвание = СтрЗаменить( Диалог. ПолноеИмяФайла, Диалог. Каталог, "" ) ;
Исключение
СканНазвание = "ОШИБКА!" ;
Сообщить( ОписаниеОшибки( ) ) ;
КонецПопытки ;
КонецЕсли ;
КонецПроцедуры
Для открытия используем:
1. Открытие файла в программе Adobe Acrobat Reader
для этого используйте код:
Код 1C v 8.х Процедура ОсновныеДействияФормыПечатьСканВорд(Кнопка)
ИмяМакета = СканФайл;
Если Прав( СканНазвание, 3 ) = "doc" или Прав( СканНазвание, 3 ) = "docx" Тогда
Состояние( "Идет печать в Word" ) ;
УниверсальныеМеханизмы. НапечататьВнешнююФорму( Ссылка, ИмяМакета) ;
Иначе
ИмяКаталога = КаталогВременныхФайлов( ) ;
ИмяФайла = "vrem" + Формат( ТекущаяДата( ) , "ДФ=yyyyMMddhhmmss" ) + СокрЛП( Прав( СканНазвание, 5 ) ) ;
ИмяФайла = РаботаСФайлами. ПолучитьИмяФайла( ИмяКаталога, ИмяФайла) ;
ДвоичныеДанные = ИмяМакета. Получить( ) ;
Если ДвоичныеДанные = Неопределено Тогда
Предупреждение( "Не могу открыть файл, прикрепите новый внешний файл!" ) ;
Иначе
ДвоичныеДанные. Записать( ИмяФайла) ;
ЗапуститьПриложение( ИмяФайла) ;
КонецЕсли ;
КонецЕсли ;
КонецПроцедуры
2. Добавляем на форму элемент ActiveX Adobe PDF Reader
для этого используйте код:
Код 1C v 8.х Процедура ОсновныеДействияФормыПечатьСканВорд(Кнопка)
ИмяМакета = СканФайл;
Если Прав( СканНазвание, 3 ) = "doc" или Прав( СканНазвание, 3 ) = "docx" Тогда
Состояние( "Идет печать в Word" ) ;
УниверсальныеМеханизмы. НапечататьВнешнююФорму( Ссылка, ИмяМакета) ;
Иначе
ИмяКаталога = КаталогВременныхФайлов( ) ;
ИмяФайла = "vrem" + Формат( ТекущаяДата( ) , "ДФ=yyyyMMddhhmmss" ) + СокрЛП( Прав( СканНазвание, 5 ) ) ;
ИмяФайла = РаботаСФайлами. ПолучитьИмяФайла( ИмяКаталога, ИмяФайла) ;
ДвоичныеДанные = ИмяМакета. Получить( ) ;
Если ДвоичныеДанные = Неопределено Тогда
Предупреждение( "Не могу открыть файл, прикрепите новый внешний файл!" ) ;
Иначе
ДвоичныеДанные. Записать( ИмяФайла) ;
ЭлементыФормы. PDFСканДоговор. LoadFile( ИмяФайла) ;
КонецЕсли ;
КонецЕсли ;
КонецПроцедуры
Вот так это выглядит:
Категория:
OLE, ActiveX Печатная форма с использованием СКД Создаем макет СКД, там произвольно или с какими-нибудь условиями выбираем в наборе данных поля табличной части, ставим условие на документ владелец, и задаем оформление. В форме документа добавляем кнопку печать, прописываем в параметрах наш документ и оп-ля - печатная форма готова
Код 1C v 8.х Процедура ОсновныеДействияФормыПечать(Кнопка)
Если Ссылка = Документы. РасчетЗаказа. ПустаяСсылка( ) тогда
Предупреждение( "Документ не записан" ) ;
Возврат ;
Иначе
Схема = ПолучитьМакет( "Макет1" ) ;
Настройки = Схема. НастройкиПоУмолчанию;
КомпоновщикНастроек = Новый КомпоновщикНастроекКомпоновкиДанных( ) ;
КомпоновщикНастроек. ЗагрузитьНастройки( Настройки) ;
ПараметрДок = Новый ПараметрКомпоновкиДанных( "документ" ) ;
ЗначениеПараметраДок = КомпоновщикНастроек. Настройки. ПараметрыДанных. НайтиЗначениеПараметра( ПараметрДок) ;
ЗначениеПараметраДок. Значение = Ссылка;
ЗначениеПараметраДок. Использование = Истина ;
Настройки = КомпоновщикНастроек. Настройки;
КомпоновщикМакета = Новый КомпоновщикМакетаКомпоновкиДанных;
МакетКомпоновки = КомпоновщикМакета. Выполнить( Схема, Настройки) ;
ПроцессорКомпоновкиДанных = Новый ПроцессорКомпоновкиДанных;
ПроцессорКомпоновкиДанных. Инициализировать( МакетКомпоновки) ;
ДокументРезультат = Новый ТабличныйДокумент;
ПроцессорВывода = Новый ПроцессорВыводаРезультатаКомпоновкиДанныхВТабличныйДокумент;
ПроцессорВывода. УстановитьДокумент( ДокументРезультат) ;
ПроцессорВывода. Вывести( ПроцессорКомпоновкиДанных) ;
ДокументРезультат. ОтображатьЗаголовки = Ложь ;
ДокументРезультат. ОтображатьСетку = Ложь ;
ДокументРезультат. АвтоМасштаб = Истина ;
ДокументРезультат. Показать( ) ;
КонецЕсли ;
КонецПроцедуры
Автор:
sanja Категория:
Схема Компоновки Данных