СКДБилдер: упрощаем программное создание СКД

29.01.26

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

В этой статье представлен СКДБилдер — общий модуль-обёртка над объектной моделью СКД, который сокращает код в 3-4 раза и делает его читаемым.

Бесплатные

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

Узнавайте о новых бесплатных решениях в нашей телеграм-группе Инфостарт БЕСПЛАТНО

Наименование Скачано Бесплатно
СКДБилдер: упрощаем программное создание СКД
.bsl 60,16Kb
50 Скачать бесплатно

Введение

Схема компоновки данных (СКД) — мощный инструмент для создания отчетов в 1С, но её программное формирование требует значительных усилий. Чтобы создать простейший отчет с группировкой и парой полей, приходится писать десятки строк кода, помнить иерархию объектов и порядок инициализации.

 

Проблема

Стандартный подход к созданию СКД

 
Типичный код для программного создания СКД выглядит так:

 

Проблемы такого подхода:

  • Много шаблонного кода

  • Легко ошибиться в иерархии объектов

  • Сложно читать и поддерживать

  • Нужно каждый раз вспоминать синтаксис


Решение: СКДБилдер

СКДБилдер — это общий модуль с набором процедур-обёрток, которые инкапсулируют рутинные операции. Схема передаётся первым параметром в каждый метод.

 
Тот же код с СКДБилдером:

Результат: 6 строк вместо 30+.


Реализация

Структура общего модуля

Общий модуль СКДБилдер (Сервер, Вызов сервера) содержит следующие группы методов:

  1. Инициализация: НоваяСхема()ПолучитьНастройки()

  2. Наборы данных: УстановитьЗапрос()ДобавитьПолеНабора()

  3. Ресурсы: ДобавитьРесурс()ДобавитьРесурсы()

  4. Параметры: ДобавитьПараметр()ДобавитьПараметрыПериода()

  5. Структура: ДобавитьГруппировку()ДобавитьДетальныеЗаписи()

  6. Поля и отборы: ДобавитьПоле()ДобавитьОтбор()ДобавитьСортировку()

  7. Вывод: СформироватьТабличныйДокумент()СформироватьТаблицуЗначений()

 
Пример кода модуля (фрагмент):

 

Примеры использования

 

 
Пример 1: Простой отчёт по продажам 
 
Пример 2: Отчёт с вложенными группировками
 
Пример 3: Быстрый вывод в консоль запросов

 

Схема = СКДБилдер.НоваяСхема();
СКДБилдер.УстановитьЗапрос(Схема, "Данные", ТекстЗапроса);
СКДБилдер.ДобавитьДетальныеЗаписи(Схема);
СКДБилдер.ДобавитьАвтоПоле(Схема);

ТаблицаРезультат = СКДБилдер.СформироватьТаблицуЗначений(Схема);

 

 

Преимущества

  1. Сокращение кода — в 3-4 раза меньше строк

  2. Читаемость — структура отчёта видна сразу

  3. Простота поддержки — легко добавить поле или группировку

  4. Снижение порога входа — не нужно помнить всю иерархию объектов СКД

  5. Универсальность — один общий модуль, работает в любой конфигурации


Ограничения

  • Не покрывает 100% возможностей СКД (сложные условия, вычисляемые поля)

  • Для специфических сценариев всё равно придётся обращаться к объектной модели напрямую

  • Требует понимания базовых принципов СКД


Заключение

СКДБилдер — это не замена объектной модели СКД, а удобная обёртка для типовых задач. Он особенно полезен при:

  • Создании динамических отчётов

  • Разработке печатных форм с группировками

  • Быстром прототипировании в консоли запросов

  • Обучении джунов работе с СКД

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

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

общий модуль

См. также

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

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

24900 руб.

20.08.2024    57687    310    154    

282

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

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

16500 руб.

02.09.2020    240662    1313    419    

1112

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

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

15250 руб.

25.08.2025    36781    77    19    

89

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

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

22570 руб.

06.10.2023    34019    88    35    

111

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

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

17000 руб.

10.11.2023    23091    84    42    

98

Инструментарий разработчика Программист 1С:Предприятие 8 Платные (руб)

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

9500 руб.

17.05.2024    47847    165    63    

202

Разработка Инструментарий разработчика Работа с интерфейсом Адаптация типовых решений Нейросети 1C:Бухгалтерия 1C:ERP 1С:ЗУП 1С:КА 1С:УНФ 1С:УТ 1С:Розница 1С:ДО 1С:ERP Управление предприятием 2 Платные (руб)

Разработка "Дизайнер форм 1С" реализована в виде расширения 1С и является универсальным инструментом для разработки прототипа форм с целью демонстраций, технических заданий и т.д. Без участия разработчика с возможностью экспорта в файл внешней обработки и генерации формы используя искусственный интеллект.

36600 руб.

28.08.2025    5258    2    2    

5
Комментарии
Подписаться на ответы Инфостарт бот Сортировка: Древо развёрнутое
Свернуть все
1. GarriSoft 308 29.01.26 10:20 Сейчас в теме
Коллега, выглядит реально круто!
Скачал, обязательно попробую.
Спасибо!
shapa_pro; +1 Ответить
2. dsdred 4192 29.01.26 10:21 Сейчас в теме
Попробую на своих примерах. Отпишусь.
shapa_pro; +1 Ответить
3. tormozit 7332 29.01.26 10:49 Сейчас в теме
Имя модуля лучше сменить на "ПостроительСхемы" или "ПостроительСКД".
obemgyorik; alexandr_yang; Dach; shapa_pro; +4 Ответить
4. shapa_pro 29.01.26 10:56 Сейчас в теме
(3) Можно и поменять! Но есть ПостроительОтчета и думаю будет неудобно искать по контекстной подсказке, поэтому что-то рандомно-уникальное.
5. alexandr_yang 29.01.26 11:47 Сейчас в теме
Общий модуль можно заменить на обработку и сделать флюент-интерфейс. Это позволит не передавать в каждый метод схему.

Результат = Обработки.СКДБилдер.НоваяСхема()
    .УстановитьЗапрос("Данные", ТекстЗапроса)
    .ДобавитьДетальныеЗаписи()
    .ДобавитьАвтоПоле()
    .СформироватьТаблицуЗначений();
pavlov_dv; +1 Ответить
6. shapa_pro 29.01.26 11:56 Сейчас в теме
(5) А ты абсолютно прав и наработки уже есть, это следующая итерация, если мне не станет лень))
пока накидываем примеры для тестов
Прикрепленные файлы:
7. Dach 390 29.01.26 11:57 Сейчас в теме
(0) Модуль полезный, за выкладку на гитхаб - отдельный плюс. Название тоже предлагаю сменить, например "МастерКомпоновки" или "МастерСКД" или "МастерНадСКД" (в духе Игры Престолов)
shapa_pro; +1 Ответить
9. ixijixi 2097 29.01.26 12:07 Сейчас в теме
(7) Предлагаю ПовелительОтчетов!
0x00; shapa_pro; rpgshnik; +3 Ответить
8. SerVer1C 1005 29.01.26 12:01 Сейчас в теме
Отлично!
Побольше бы подобных публикаций на портале!
Для отправки сообщения требуется регистрация/авторизация