Как программно Установить значения Параметров для отчета СКД? Например у отчет есть следующие параметры:
Программно их задать можно следующим образом:
Код 1C v 8.х //Последовательно, начиная с 0 задаем значения параметров: ( НачПериода это 0 элемент, КонПериода - 1, ВыбНалог =2 )
КомпоновщикНастроек.Настройки.ПараметрыДанных.Элементы[0].Значение = НачПериода;
КомпоновщикНастроек.Настройки.ПараметрыДанных.Элементы[1].Значение = КонПериода;
КомпоновщикНастроек.Настройки.ПараметрыДанных.Элементы[2].Значение = ВыбНалог;
Есть параметр, предопределенное при открытии отчета каждый раз. Как его правильно указать в СКД?
Можно делать так:
Код 1C v 8.х Процедура ПриОткрытии()
//........................
ПараметрДанных= КомпоновщикНастроек.Настройки.ПараметрыДанных.Элементы.Найти("Товар");
ПараметрДанных.Значение = Справочники.Номенклатура.НайтиПоНаименованию("Гвозди");
ПараметрДанных.Использование=Истина;
//...........................................
КонецПроцедуры
или
Код 1C v 8.х //Пропишем ТОЧКИ МАРШРУТА
СписТочек = Новый СписокЗначений;
СписТочек.Добавить(БизнесПроцессы.м_Документооборот.ТочкиМаршрута.ОПФПД);
СписТочек.Добавить(БизнесПроцессы.м_Документооборот.ТочкиМаршрута.ОСФПД);
ПараметрСКД = КомпоновщикНастроек.Настройки.ПараметрыДанных.Элементы.Найти("ТочкаМаршрута");
ПараметрСКД.Значение = СписТочек;
ПараметрСКД.Использование = ИСТИНА;
Для УП
Код 1C v 8.2 УП &НаСервере
Процедура ПриСозданииНаСервере(Отказ, СтандартнаяОбработка)
УстановитьПривилегированныйРежим(Истина);
СтандартнаяОбработка = Ложь; // если не отключить стандартную обработку, то настройки затрутся
ДатаОтчета = ТекушаяДата();
3начениеПараметра = Отчет.КомпоновщикНастроек.Настройки.ПараметрыДанных.Найти3начениеПараметра(Новый ПараметрКомпоновкиДанных("ДатаНач"));
Если НЕ ЗначениеПараметра = Неопределено Тогда
ЗначениеПараметра.Использование = Истина;
ЗначениеПараметра.Значение = КонецДня(ДатаОтчета) - (7 * 86400);
КонецЕсли;
3начениеПараметра = Отчет.КомпоновщикНастроек.Настройки.ПараметрыДанных.Найти3начениеПараметра(Новый ПараметрКомпоновкиДанных("Свойство1"));
Если НЕ ЗначениеПараметра = Неопределено Тогда
ЗначениеПараметра.Использование = Истина;
3начениеПараметра = Справочники.3наченияСвойствОбъектов.НайтиПоКоду("000000004");
КонецЕсли;
КонецПроцедуры
Категория:
Схема Компоновки Данных Функция ПредставлениеПериода() аналог 7-ной функции ПериодСтр() Функция позволяет формировать описание периода, заданного датами начала и окончания на одном из языков, поддерживаемых платформой. Например, в результате выполнения следующего кода:
Код 1C v 8.2 УП ТекДата = ТекущаяДата();
НачПериода = НачалоМесяца(ТекДата);
КонПериода = КонецМесяца(ТекДата);
Сообщение = Новый СообщениеПользователю;
Сообщение.Текст = ПредставлениеПериода(НачПериода, КонПериода, "L=en_US");
// или
Сообщение.Текст = ПредставлениеПериода(НачПериода, КонПериода, "L=ru_RU");
Сообщение.Сообщить();
будет получено представление периода на английском или русском языках!
Функция глобального контекста
ПредставлениеПериода() позволяет получить строковое представление периода, заданного датами начала и окончания.
Например:
Код 1C v 8.х ПредставлениеПериода('20050101000000', '20050101235959') // 1 января 2005 г.
ПредставлениеПериода('20050101000000', '20050131235959') // Январь 2005 г.
ПредставлениеПериода('20050101000000', '20050228235959') // Январь 2005 г. - Февраль 2005 г.
Кроме стандартных периодов эта функция позволяет получать представления так называемых финансовых периодов: первых девяти месяцев года и первого полугодия. Для этого используется форматная строка с указанием признака ФП:
Код 1C v 8.х ПредставлениеПериода('20050101000000', '20050630235959', "ФП = Истина") // 1 полугодие 2005 г.
ПредставлениеПериода('20050101000000', '20050930235959', "ФП = Истина") // 9 месяцев 2005 г.
Кроме этого форматная строка позволяет получать представление периода на языке, отличном от используемого по-умолчанию:
Код 1C v 8.х ПредставлениеПериода('20050101000000', '20050331235959', "L = en_US") // 1 quarter of 2005 - Английский
ПредставлениеПериода('20050101000000', '20050331235959', "L = bg_BG") // 1-во тримесечие на 2005 г. - Болгарский
ПредставлениеПериода('20050101000000', '20050331235959', "L = de_DE") // 1. Quartal 2005 - Немецкий
Категория:
Работа с Датами (Временем) Экспорт печатных форм и любых данных из 1С в BMP, JPEG, PCX, PDF, PNG и TIFF. Оптимальным решением является установка
Bullzip PDF Printer . После установки в системе появляется виртуальный принтер, с помощью которого можно "печатать" в файл pdf из любого приложения. Программа бесплатная, работает в терминале и имеет поддержку русского языка.
После установки, можно печатать напрямую используя код:
Код 1C v 8.х
//Таб - ТабличныйДокумент
//ИмяФайла – путь для сохранения файла PDF (например «D:\Torg12.pdf»)
Процедура СоздатьФайлПДФ(Таб, ИмяФайла)
Попытка
ПДФПринтер = Новый ComObject(«Bullzip.PDFPrinterSettings»);
ПДФПринтер.SetValue(«output», ИмяФайла);
ПДФПринтер.SetValue(«ShowSaveAS», «never»);
ПДФПринтер.SetValue(«ShowProgress», «no»);
ПДФПринтер.SetValue(«ShowProgressFinished», «no»);
ПДФПринтер.SetValue(«ShowSettings», «never»);
ПДФПринтер.SetValue(«ShowPDF», «no»);
ПДФПринтер.SetValue(«ConfirmOverwrite»,»no»);
ПДФПринтер.WriteSettings();
Таб.Автомасштаб = Истина;
Таб.ИмяПринтера = «Bullzip PDF Printer»;Таб.Напечатать(Истина);
PDFФайл = Новый Файл(ИмяФайла);
Пока НЕ PDFФайл.Существует() Цикл
ОбработкаПрерыванияПользователя();
КонецЦикла;
Исключение
Сообщить(ОписаниеОшибки());
Сообщить(«Скорее всего необходимо установить или переустановить «»Bullzip PDF Printer»);
КонецПопытки;
//устанавливаем принтер по умолчанию
Таб.ИмяПринтера = ПолучитьПринтерПоУмолчанию();
КонецПроцедуры
Здесь функция
ПолучитьПринтерПоУмолчанию() нужна для того чтобы вернуть печатной форме принтер по умолчанию, т.к. если напечатать без предварительного просмотра то печать пойдет на виртуальный PDF принтер BullzipPDFPrinter.
Код 1C v 8.х //получаем принтер по умолчанию
Функция ПолучитьПринтерПоУмолчанию()
Скрипт = Новый ComObject(«MSScriptControl.ScriptControl»);
Скрипт.Language = «vbscript»;
Скрипт.AddCode(»
|Function GetDefaultPrinter()
|GetDefaultPrinter=vbNullString
|Set objWMIService=GetObject(«»winmgmts:»" _
|& «»{impersonationLevel=impersonate}!\\.\root\cimv2″»)
|Set colInstalledPrinters=objWMIService.ExecQuery _
|(«»S_elect * from Win32_Printer»")
|For Each objPrinter in colInstalledPrinters
|If objPrinter.Attributes and 4 Then
|GetDefaultPrinter=objPrinter.Name
|Exit For
|End If
|Next
|End Function»);
Возврат СокрЛП(Скрипт.run(«GetDefaultPrinter»));
КонецФункции
Печать в PDF используя bioPDF Категория:
Администрирование