1с скд заголовок отчета программно
Хитрости компоновки данных: программное формирование заголовков отчета и колонок без использования макетов.
Очень часто необходимо программно сформировать заголовок отчета, например добавить туда наименование валюты, в которой формируется отчет. Можно использовать макеты, но во многих случаях это не оправданно.
Молочников Олег Spb. 2012.
Хитрости компоновки данных: программное формирование заголовков отчета и колонок без использования макетов.
Очень часто необходимо программно сформировать заголовок отчета, например добавить туда наименование валюты, в которой формируется отчет. Можно использовать макеты, но во многих случаях это не оправданно.
Что-б заголовок выводился, убедитесь, что в схеме компоновки данных есть соответствующие настройки (текст заголовка может быть любым):
Сформировать программно заголовок отчета нам поможет следующий код:
Настройки = КомпоновщикНастроек . Настройки ;
ЗаголовокНастроек = Настройки . ПараметрыВывода . НайтиЗначениеПараметра (Новый ПараметрКомпоновкиДанных ( "Title" ));
ЗаголовокНастроек . Значение = "Сравнение остатков по взаиморасчетам в базе " + СокрНаимБазы1 + " и " + СокрНаимБазы2 ;
Для формирования заголовков колонок используем заголовки из схемы в качестве шаблонов (“_1” и “_2” будут позже заменены на сокращенные наименования баз данных в примере ниже):
Тогда формирование имен колонок в любых выбранных пользователем полях можно сформировать простейшим кодом:
Для Каждого ВыбранноеПоле из Настройки . Выбор . Элементы Цикл
ДоступноеПоле = Настройки . ПользовательскиеПоля . ДоступныеПоляЗначений . НайтиПоле ( ВыбранноеПоле . Поле );
ТекстЗаголовка = ДоступноеПоле . Заголовок ;
ТекстЗаголовка = СтрЗаменить ( ТекстЗаголовка , "_1" , СокрНаимБазы1 );
ВыбранноеПоле . Заголовок = СтрЗаменить ( ТекстЗаголовка , "_2" , СокрНаимБазы2 );
КонецЦикла;
Готовый отчет будет выглядеть так:
Иногда бывают ситуации, когда нужно программно сформировать заголовок поля в СКД, например когда в заголовок поля нужно вывести наименование валюты, а рисовать дополнительный макет так не хочется. В статье приведен способ, с помощью которого можно быстро программно сформировать заголовок поля при наименьших трудозатратах. Статья будет полезна людям, которые только начинают изучать СКД.
Пример приведем на отчете для УТ 11, в котором выводится вид цены, номенклатура и цена номенклатуры. Вид цены пользователь должен обязательно задать, а заголовок именно для цены нужно сформировать в соответствии с валютой вида цены, которую выбрал пользователь.
Пример запроса приводить не стану. Приведу код, который был написан в модуле отчета, а именно код функции ПриКомпоновкеРезультата.
Процедура ПриКомпоновкеРезультата ( ДокументРезультат , ДанныеРасшифровки , СтандартнаяОбработка )
// Получаем основную валюту вида цены
ПараметрВидЦены = ПолучитьЗначениеПараметра ( "ВидЦены" );
ВалютаВидыЦены = ПараметрВидЦены. ВалютаЦены ;
// Програмная установка заголовка нужных полей СКД
ПолеЦена = СхемаКомпоновкиДанных.НаборыДанных.НаборДанных1.Поля.Найти ( "Цена" );
Если ПолеЦена <> Неопределено Тогда
ПолеЦена.Заголовок = "Цена, " + Строка ( ВалютаВидыЦены ) + "" ;
КонецЕсли;
// Програмный вывод СКД
НастройкиОтчета = КомпоновщикНастроек . ПолучитьНастройки ();
КомпоновщикМакета = Новый КомпоновщикМакетаКомпоновкиДанных ;
МакетКомпоновки = КомпоновщикМакета . Выполнить ( СхемаКомпоновкиДанных , НастройкиОтчета , ДанныеРасшифровки );
//Создадим и инициализируем процессор компоновки
ПроцессорКомпоновки = Новый ПроцессорКомпоновкиДанных ;
ПроцессорКомпоновки . Инициализировать ( МакетКомпоновки , , ДанныеРасшифровки , Истина);
//Создадим и инициализируем процессор вывода результата
ПроцессорВывода = Новый ПроцессорВыводаРезультатаКомпоновкиДанныхВТабличныйДокумент ;
ПроцессорВывода.УстановитьДокумент ( ДокументРезультат );
//Обозначим начало вывода
ПроцессорВывода . НачатьВывод ();
ТаблицаЗафиксирована = Ложь;
ДокументРезультат.ФиксацияСверху = 0 ;
//Основной цикл вывода отчета
Пока Истина Цикл
//Получим следующий элемент результата компоновки
ЭлементРезультата = ПроцессорКомпоновки . Следующий ();
Если ЭлементРезультата = Неопределено Тогда
//Следующий элемент не получен - заканчиваем цикл вывода
Иначе
// Зафиксируем шапку
Если Не ТаблицаЗафиксирована
И ЭлементРезультата.ЗначенияПараметров.Количество () > 0
И ТипЗнч ( КомпоновщикНастроек.Настройки.Структура [ 0 ]) <> Тип ( "ДиаграммаКомпоновкиДанных" ) Тогда
ТаблицаЗафиксирована = Истина;
ДокументРезультат . ФиксацияСверху = ДокументРезультат.ВысотаТаблицы ;
//Элемент получен - выведем его при помощи процессора вывода
ПроцессорВывода.ВывестиЭлемент ( ЭлементРезультата );
КонецЕсли;
КонецЦикла;
Функция ПолучитьЗначениеПараметра ( ИмяПараметра )
ПараметрДанных = КомпоновщикНастроек.Настройки.ПараметрыДанных.Элементы.Найти ( ИмяПараметра );
Если ПараметрДанных <> Неопределено Тогда
ПараметрПользовательскойНастройки = КомпоновщикНастроек.ПользовательскиеНастройки.Элементы.Найти ( ПараметрДанных.ИдентификаторПользовательскойНастройки );
Если ПараметрПользовательскойНастройки <> Неопределено Тогда
Возврат ПараметрПользовательскойНастройки.Значение ;
Иначе
Возврат ПараметрДанных.Значение ;
КонецЕсли;
КонецЕсли;
Сначала мы получаем вид цены из параметром, которые задал пользователь, а далее из вид цены можно получить сам вид цены.
Далее в наборе данных НаборДанных1 (здесь может быть имя вашего набора) ищем необходимое поле и устанавливаем необходимый заголовок. Последующие действия – стандартный программный вывод СКД отчета.
Как видим СКД предоставляет большой и гибкий набор инструментов, которые позволяют разработчику создавать красивые отчеты легко и быстро.
Иногда в качестве заголовка отчета требуется задать что-нибудь сложное, вроде:
«Отчет за период с» + ДатаНачала + » по» + ДатаКонца
Задать его таким образом в настройках не получится. Придется сделать это программно следующим образом:
Код 1C v 8.х
also
Похожие FAQ
17 правил для составления оптимального ЗАПРОСа к данным базы 1С 44
Для формирования и выполнения запросов к таблицам базы данных в платформе 1С используется специальный объект языка программирования Запрос . Создается этот объект вызовом конструкции Новый Запрос . Запрос удобно использовать, когда требуется получ 1C медленно работает по сети с базой на SQL Server 20
Данное обстоятельство может быть обусловлено многими причинами. Одна из них - неоптимальная настройка MS SQL . Перечислим неоптимальности в настройке: 1) Неправильно указанный сетевой протокол, используемый для взаимодействия 1С с SQL Server. П 1C: Enterprise Development Tools 50
И вот случилось долгожданное: Вышел 1C: Enterprise Development Tools - это среда для разработки конфигурации в IDE Eclipse. С сайта 1С: « 1C:Enterprise Development Tools » – это инструмент нового поколения для разработчиков бизнес-приложений систем Google maps, поиск оптимального маршрута 5
В данном посте хочу коснуться основных аспектов построения оптимального маршрута с использованием API Google maps. Исходные данные для построения маршрута: * Географические координаты объектов, которые хранятся в базе; * Координаты начальной и коне Microsoft SQL Server Native Client Добавление значения в столбец "datetime" привело к переполнению 2
При формировании отчета на СКД получили ошибку: Microsoft SQL Server Native Client 11.0: Добавление значения в столбец "datetime" привело к переполнению Подробнее текст такой: . по причине: Ошибка компоновки данных по причине: Ошибка получени Посмотреть все результаты поиска похожих
Иногда в качестве заголовка отчета требуется задать что-нибудь сложное, вроде:
«Отчет за период с» + ДатаНачала + » по» + ДатаКонца
Задать его таким образом в настройках не получится. Придется сделать это программно следующим образом:
Код 1C v 8.х
also
Похожие FAQ
17 правил для составления оптимального ЗАПРОСа к данным базы 1С 44
Для формирования и выполнения запросов к таблицам базы данных в платформе 1С используется специальный объект языка программирования Запрос . Создается этот объект вызовом конструкции Новый Запрос . Запрос удобно использовать, когда требуется получ 1C медленно работает по сети с базой на SQL Server 20
Данное обстоятельство может быть обусловлено многими причинами. Одна из них - неоптимальная настройка MS SQL . Перечислим неоптимальности в настройке: 1) Неправильно указанный сетевой протокол, используемый для взаимодействия 1С с SQL Server. П Google maps, поиск оптимального маршрута 5
В данном посте хочу коснуться основных аспектов построения оптимального маршрута с использованием API Google maps. Исходные данные для построения маршрута: * Географические координаты объектов, которые хранятся в базе; * Координаты начальной и коне Microsoft SQL Server Native Client Добавление значения в столбец "datetime" привело к переполнению 2
При формировании отчета на СКД получили ошибку: Microsoft SQL Server Native Client 11.0: Добавление значения в столбец "datetime" привело к переполнению Подробнее текст такой: . по причине: Ошибка компоновки данных по причине: Ошибка получени Автоматическое резервное копирование 1С:Предприятия в облако с помощью ПО Effector Saver 3
Всем известно, для большей гарантии восстановления важных данных, необходимо копировать архивы в несколько мест хранения. Отдельный диск может помочь в случае порчи основного, но в случае если устройство будет потеряно или украдено, он будет так же Посмотреть все результаты поиска похожих
Иногда в качестве заголовка отчета требуется задать что-нибудь сложное, вроде:
«Отчет за период с» + ДатаНачала + » по» + ДатаКонца
Задать его таким образом в настройках не получится. Придется сделать это программно следующим образом:
Код 1C v 8.х
also
Похожие FAQ
17 правил для составления оптимального ЗАПРОСа к данным базы 1С 44
Для формирования и выполнения запросов к таблицам базы данных в платформе 1С используется специальный объект языка программирования Запрос . Создается этот объект вызовом конструкции Новый Запрос . Запрос удобно использовать, когда требуется получ 1C медленно работает по сети с базой на SQL Server 20
Данное обстоятельство может быть обусловлено многими причинами. Одна из них - неоптимальная настройка MS SQL . Перечислим неоптимальности в настройке: 1) Неправильно указанный сетевой протокол, используемый для взаимодействия 1С с SQL Server. П Cклонения по падежам 6
НаКлиенте Процедура Команда1(Команда) ФИО = " Иванов Иван Иванович" ; Падеж = 2; Пол = 1; Результат = СклонениеФИО(ФИО, Падеж, пол); Сообщить(Результат); КонецПроцедуры НаСервере Функция СклонениеФИО(ФИО, Падеж, пол) Результат = " " ; Google maps, поиск оптимального маршрута 5
В данном посте хочу коснуться основных аспектов построения оптимального маршрута с использованием API Google maps. Исходные данные для построения маршрута: * Географические координаты объектов, которые хранятся в базе; * Координаты начальной и коне Автоматизация обмена данных используя обработку "Универсальный обмен данными в формате XML" 10
Автоматизация обмена между базами используя обработку " Универсальный обмен данными в формате XML" В основу данной публикации положены найденные мною материалы по cозданию обмена между двумя базами с использованием обработки " Универсальный обме Посмотреть все результаты поиска похожих
Читайте также: