Как быстро программно сформировать заголовки полей СКД

06.03.13

Разработка - Инструментарий разработчика

Иногда бывают ситуации, когда нужно программно сформировать заголовок поля в СКД, например когда в заголовок поля нужно вывести наименование валюты, а рисовать дополнительный макет так не хочется. В статье приведен способ, с помощью которого можно быстро программно сформировать заголовок поля при наименьших трудозатратах. Статья будет полезна людям, которые только начинают изучать СКД.

Файлы

ВНИМАНИЕ: Файлы из Базы знаний - это исходный код разработки. Это примеры решения задач, шаблоны, заготовки, "строительные материалы" для учетной системы. Файлы ориентированы на специалистов 1С, которые могут разобраться в коде и оптимизировать программу для запуска в базе данных. Гарантии работоспособности нет. Возврата нет. Технической поддержки нет.

Наименование Скачано Купить файл
Файлы.zip
.zip 4,67Kb
31 1 850 руб. Купить

Подписка PRO — скачивайте любые файлы со скидкой до 85% из Базы знаний

Оформите подписку на компанию для решения рабочих задач

Оформить подписку и скачать решение со скидкой

Пример приведем на отчете для УТ 11, в котором выводится вид цены, номенклатура и цена номенклатуры. Вид цены пользователь должен обязательно задать, а заголовок именно для цены нужно сформировать в соответствии с валютой вида цены, которую выбрал пользователь.

Отчет из измененным заголовком поля СКД

Пример запроса приводить не стану. Приведу код, который был написан в модуле отчета, а именно код функции ПриКомпоновкеРезультата.

Процедура ПриКомпоновкеРезультата(ДокументРезультат, ДанныеРасшифровки, СтандартнаяОбработка)

  СтандартнаяОбработка = Ложь;

  // Получаем основную валюту вида цены
 ПараметрВидЦены = ПолучитьЗначениеПараметра("ВидЦены");
 ВалютаВидыЦены = ПараметрВидЦены.ВалютаЦены;

 // Програмная установка заголовка нужных полей СКД
 ПолеЦена = СхемаКомпоновкиДанных.НаборыДанных.НаборДанных1.Поля.Найти("Цена");
 Если ПолеЦена <> Неопределено Тогда
   ПолеЦена.Заголовок = "Цена, " + Строка(ВалютаВидыЦены) + "";
 КонецЕсли;


 // Програмный вывод СКД
 НастройкиОтчета = КомпоновщикНастроек.ПолучитьНастройки();

 КомпоновщикМакета = Новый КомпоновщикМакетаКомпоновкиДанных;
 МакетКомпоновки = КомпоновщикМакета.Выполнить(СхемаКомпоновкиДанных, НастройкиОтчета, ДанныеРасшифровки);

 //Создадим и инициализируем процессор компоновки
 ПроцессорКомпоновки = Новый ПроцессорКомпоновкиДанных;
 ПроцессорКомпоновки.Инициализировать(МакетКомпоновки, , ДанныеРасшифровки, Истина);

 

 //Создадим и инициализируем процессор вывода результата 
 ПроцессорВывода = Новый ПроцессорВыводаРезультатаКомпоновкиДанныхВТабличныйДокумент;
 ПроцессорВывода.УстановитьДокумент(ДокументРезультат);

 

 //Обозначим начало вывода
 ПроцессорВывода.НачатьВывод();
 ТаблицаЗафиксирована = Ложь;

 

 ДокументРезультат.ФиксацияСверху = 0;
 //Основной цикл вывода отчета
 Пока Истина Цикл
  //Получим следующий элемент результата компоновки
  ЭлементРезультата = ПроцессорКомпоновки.Следующий();

    Если ЭлементРезультата = Неопределено Тогда

      //Следующий элемент не получен - заканчиваем цикл вывода

      Прервать;

    Иначе
      // Зафиксируем шапку
      Если Не ТаблицаЗафиксирована
              И ЭлементРезультата.ЗначенияПараметров.Количество() > 0
              И ТипЗнч(КомпоновщикНастроек.Настройки.Структура[0]) <> Тип("ДиаграммаКомпоновкиДанных") Тогда

       ТаблицаЗафиксирована = Истина;
       ДокументРезультат.ФиксацияСверху = ДокументРезультат.ВысотаТаблицы;

      КонецЕсли;

      //Элемент получен - выведем его при помощи процессора вывода
      ПроцессорВывода.ВывестиЭлемент(ЭлементРезультата);
    КонецЕсли;
 КонецЦикла;

 ПроцессорВывода.ЗакончитьВывод();

 

КонецПроцедуры

 

Функция ПолучитьЗначениеПараметра(ИмяПараметра)

  ПараметрДанных = КомпоновщикНастроек.Настройки.ПараметрыДанных.Элементы.Найти(ИмяПараметра);
   Если ПараметрДанных <> Неопределено Тогда
     ПараметрПользовательскойНастройки = КомпоновщикНастроек.ПользовательскиеНастройки.Элементы.Найти(ПараметрДанных.ИдентификаторПользовательскойНастройки);
     Если ПараметрПользовательскойНастройки <> Неопределено Тогда
       Возврат ПараметрПользовательскойНастройки.Значение;
     Иначе
       Возврат ПараметрДанных.Значение;
     КонецЕсли;
   КонецЕсли;

  Возврат Неопределено;

КонецФункции

Сначала мы получаем вид цены из параметром, которые задал пользователь, а далее из вид цены можно получить сам вид цены.

Далее в наборе данных НаборДанных1 (здесь может быть имя вашего набора) ищем необходимое поле и устанавливаем необходимый заголовок. Последующие действия – стандартный программный вывод СКД отчета.
Как видим СКД предоставляет большой и гибкий набор инструментов, которые позволяют разработчику создавать красивые отчеты легко и быстро.

Статья также размещена на сайте avtomat.biz

Вступайте в нашу телеграмм-группу Инфостарт

См. также

Инструментарий разработчика Роли и права Запросы СКД Программист Руководитель проекта 1С v8.3 Управляемые формы Запросы Система компоновки данных Платные (руб)

Инструменты для разработчиков 1С 8.3: Infostart Toolkit. Автоматизация и ускорение разработки на управляемых формах. Легкость работы с 1С.

15500 руб.

02.09.2020    211802    1156    413    

1047

Инструментарий разработчика Чистка данных Свертка базы Инструменты администратора БД Системный администратор Программист Руководитель проекта 1С v8.3 1С:ERP Управление предприятием 2 1С:Бухгалтерия 3.0 1С:Управление торговлей 11 1С:Комплексная автоматизация 2.х 1С:Управление нашей фирмой 3.0 Россия Платные (руб)

Инструмент представляет собой обработку для проведения свёртки или обрезки баз данных. Работает на ЛЮБЫХ конфигурациях (УТ, БП, ERP, УНФ, КА и т.д.). Поддерживаются серверные и файловые базы, управляемые и обычные формы. Может выполнять свертку одновременно в несколько потоков. А так же автоматически, без непосредственного участия пользователя. Решение в Реестре отечественного ПО

8400 руб.

20.08.2024    39877    219    113    

207

Инструменты администратора БД Инструментарий разработчика Роли и права Программист 1С v8.3 1C:Бухгалтерия Россия Платные (руб)

Расширение позволяет без изменения кода конфигурации выполнять проверки при вводе данных, скрывать от пользователя недоступные ему данные, выполнять код в обработчиках. Не изменяет данные конфигурации, легко устанавливается практически на любую конфигурацию на управляемых формах.

16000 руб.

10.11.2023    18653    78    39    

92

Инструментарий разработчика Программист 1С v8.3 Платные (руб)

Инструмент для написания и отладки кода в режиме «1С:Предприятие». Представляет собой консоль кода с возможностью пошаговой отладки, просмотра значений переменных любых типов, использования процедур и функций, просмотра стека вызовов, вычисления произвольных выражений на встроенном языке в контексте точки останова, синтаксического контроля и остановки по ошибке. В консоли используется удобный редактор кода с подсветкой, контекстной подсказкой, возможностью вызова конструкторов запроса и форматной строки.

9500 руб.

17.05.2024    37295    135    55    

176

Пакетная печать Печатные формы Инструментарий разработчика Программист 1С v8.3 Запросы 1С:Зарплата и кадры бюджетного учреждения 1С:ERP Управление предприятием 2 1С:Управление торговлей 11 Платные (руб)

Расширение для создания и редактирования печатных форм в системе 1С:Предприятие 8.3. Благодаря конструктору можно значительно снизить затраты времени на разработку печатных форм, повысить качество и прозрачность разработки, а также навести порядок в многообразии корпоративных печатных форм.

22200 руб.

06.10.2023    26265    65    30    

96

Инструментарий разработчика Нейросети Платные (руб)

Первые попытки разработки на 1С с использованием больших языковых моделей (LLM) могут разочаровать. LLMки сильно галлюцинируют, потому что не знают устройства конфигураций 1С, не знают нюансов синтаксиса. Но если дать им подсказки с помощью MCP, то результат получается кардинально лучше.<br/> Далее в публикации:<br/> MCP для поиска по метаданым 1С, справке синтакс-помошника и проверки синтаксиса.

9900 руб.

25.08.2025    3253    6    9    

14

Инструментарий разработчика 1С v8.3 1C:Бухгалтерия 1С:ERP Управление предприятием 2 Платные (руб)

Разработка Конструктор автоматизированных рабочих мест "Конструктор АРМ" реализована в виде расширения и является универсальным инструментом для создания АРМ любой сложности в пользовательском режиме.

3600 руб.

27.12.2024    3611    7    0    

12
Комментарии
Подписаться на ответы Инфостарт бот Сортировка: Древо развёрнутое
Свернуть все
1. GreenFox 08.03.13 13:41 Сейчас в теме
Статья скорее для ленивых, которые не удосужились прочитать это раньше из литературы, например, той же Хрусталевой "Создание сложных отчетов...".
2. akomar 458 08.03.13 13:49 Сейчас в теме
(1) В преамбуле так и написано «для тех кто начинает изучать СКД».
3. margo_m09 28.03.13 07:09 Сейчас в теме
хорошая идея, сразу понравилась обработка, даже если и есть какие недочеты пока при использовании, не заметили))))
4. program_km 3 28.03.13 07:29 Сейчас в теме
Создать группировку с детальными записями назначить имя к примеру шапка отключить в ней поля "Авто", убрать оформление в макете добавить в макет и установить любой заголовок и оформить как вам угодно
5. EvgeTrofi 129 07.08.23 08:10 Сейчас в теме
Пытаюсь из динамического списка получить заголовки полей. Но там почему то пусто. Как заголовки программно получить? Не сталкивались?
Прикрепленные файлы:
Для отправки сообщения требуется регистрация/авторизация