Программное заполнение доступных значений для полей и параметров СКД

01.07.25

Разработка - СКД

Описан способ заполнения списка доступных значений для полей наборов данных и параметров в схеме компоновки данных для любых конфигураций (с использованием БСП или без).

Описание 

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

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

Но мы ограничены тем, что можем задавать только статические данные - предопределенные элементы справочников, фиксированные значения примитивных типов и т.д. А что если мы хотим заполнить этот список доступных значений своим алгоритмом? 

 

Решение

Буду краток:

// Модуль объекта отчета

Процедура ИнициализироватьСКД()
	
	// Доступные значения параметра
	ПараметрПериод = СхемаКомпоновкиДанных.Параметры.Найти("Период");
	
	ДоступныеЗначенияПериода = Новый СписокЗначений;
	
	Период = КонецМесяца(НачалоГода(ТекущаяДатаСеанса())) + 1;
	
	Для а = 1 По 12 Цикл
		Представление = Формат(Период - 1, "ДФ='MMMM yyyy'"); // Январь 2025
		ДоступныеЗначенияПериода.Добавить(Период, Представление);
		Период = ДобавитьМесяц(Период, 1);
	КонецЦикла;
	
	ПараметрПериод.УстановитьДоступныеЗначения(ДоступныеЗначенияПериода);
	
	// Доступные значения поля
	ОсновнойНаборДанных = СхемаКомпоновкиДанных.НаборыДанных.Найти("ОсновнойНаборДанных");
	ПолеОрганизация = ОсновнойНаборДанных.Поля.Найти("Организация");

	ДоступныеЗначенияОрганизации = Новый СписокЗначений;
	
	Выборка = Справочники._ДемоОрганизации.Выбрать();
	Выборка.Следующий();
	ДоступныеЗначенияОрганизации.Добавить(Выборка.Ссылка);

	ПолеОрганизация.УстановитьДоступныеЗначения(ДоступныеЗначенияОрганизации);
	
КонецПроцедуры

ИнициализироватьСКД();

В область инициализации модуля объекта отчета добавляем код, который по сути переопределит схему компоновки данных до того как будет инициализирован компоновщик настроек, открыта форма отчета и т.д. В результате мы получим ограниченный список выбора для полей и параметров во всех формах отчета: непосредственно в форме отчета, форме настроек, форме редактирования варианта отчета.

 

Результат

 

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

Вы можете заказать платную адаптацию этой статьи под ваши задачи на «Бирже заказов».

  • 0% комиссии — оплата напрямую исполнителю;
  • Исполнители любого масштаба — от отдельных специалистов до команд под проект;
  • Прямой обмен контактами между заказчиком и исполнителем;
  • Безопасная сделка — при необходимости;
  • Рейтинги, кейсы и прозрачная система откликов.

См. также

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

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

16500 руб.

02.09.2020    262964    1465    421    

1174

СКД Программист 1С:Предприятие 8 Бесплатно (free)

Как решить проблему с отборами по полям СКД, когда с одинаковым отбором Отчет показывает одно, а Консоль запросов другое.

16.06.2026    1908    sapervodichka    46    

44

Инструментарий разработчика СКД Программист 1С 8.3 Бесплатно (free)

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

29.01.2026    7286    378    shapa_pro    27    

69

СКД Программист 1С:Предприятие 8 Бесплатно (free)

Статья написана по результатам проведенного внутреннего обучающего вебинара для разработчиков ГК «СофтБаланс». Если осилить 25 000 знаков - задача для вас непосильная, где-то на бескрайних просторах интернета видео есть (или будет). Но здесь информация точнее. Разберем, чем запрос для СКД принципиально отличается от обычного запроса и как модифицируется в зависимости от настроек. Изучим «базовый рецепт» написания запроса для СКД, сформируем чек-лист. Полезно будет всем – от стажеров до тех. лидов. Всем, кто не снимает галку «автозаполнение» и пишет запросы для отчетов в консоли запросов – читать (вдумчиво) обязательно.

29.10.2025    21079    ovetgana    112    

115

СКД Программист Стажер 1С:Предприятие 8 Россия Бесплатно (free)

Несколько способов управления формами выбора параметров и отборов СКД.

10.04.2025    11685    Neti    0    

42

СКД Программист 1С:Предприятие 8 Бесплатно (free)

Хорошая отчетная форма - сродни искусству. Есть какое-то невероятное эстетическое удовольствие в том, чтобы разобраться в логике учета и анализируемых показателях, спроектировать архитектуру хранения данных так, чтобы оптимально собрать эти показатели вместе с аналитическими разрезами в запросе, а затем настроить отображение так, чтобы, глядя на результат, сразу было понятно, что это за отчет и какие задачи он призван решать. Система компоновки данных - это моя первая, главная и, наверное, единственная "рабочая" любовь. Ее я использую везде, где только можно и где нельзя тоже. Хочу поделиться с вами некоторыми практическими приемами в работе с отчетами на СКД, которые, надеюсь, будут полезны.

27.02.2025    17222    ovetgana    50    

93

СКД Программист 1С:Предприятие 8 Бесплатно (free)

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

24.12.2024    14968    Akcium    17    

47

СКД Механизмы типовых конфигураций Запросы Программист 1С:Предприятие 8 1С:Зарплата и кадры государственного учреждения 3 1С:Зарплата и Управление Персоналом 3.x Россия Бесплатно (free)

Работая с типовыми отчетами в конфигурациях «Зарплата и управление персоналом, редакция 3», «Зарплата и кадры государственного учреждения, редакция 3» и подобных, в схемах компоновки данных можно встретить конструкции запросов, которые обращаются к некоторым виртуальным таблицам.

20.08.2024    12136    AlexeyPROSTO_1C    1    

32
Комментарии
Подписаться на ответы Инфостарт бот Сортировка: Древо развёрнутое
Свернуть все
1. nvv1970 04.07.25 08:50 Сейчас в теме
А вот для ДС такой код может вызвать ошибку на свежих платформах.
А может и не вызвать.
С полями там магия.
2. Dimonis 07.07.25 11:03 Сейчас в теме
Сначала небольшое вступление, затем вопрос : стояла задача, в одной конфигурации (ERP) сформировать отчет на СКД по данным из другой конфигурации (полностью самописанная, назовем для примера ККУ), в обоих конфигурациях есть справочник "Номенклатура"; в отчете ERP нужен отбор по справочнику "Номенклатура" ККУ (и по другим справочникам ККУ, которых в ERP нет), соответственно по HTTP-сервису "тянул" в ERP "Дерево" строк из справочника Номенклатура из ККУ, и другие "Деревья" других иерархических справочников ККУ. Заполнить предопределенные параметры в ERP-шном отчете данными "Деревьев" я не смог. Теперь вопрос : в СКД в режиме "Предприятия" вообще можно заполнить предопределенные параметры СКД наборами иерархических строк (например Вашей обработкой) ?
3. krasnoshchekovpavel 265 07.07.25 11:22 Сейчас в теме
(2) Т.к. "доступные значения" полей и параметров СКД это просто список значений, то нельзя передать туда данные об иерархии. Только плоский список
4. grrus 15.12.25 19:20 Сейчас в теме
Всё как бы хорошо, но после изменения СхемаКомпоновкиДанных как её использовать на форме?
5. grrus 15.12.25 19:47 Сейчас в теме
а можете предоставить внешний отчет чтобы проверить? Чтобы проверить на вычисляемых полях такую реализацию?
6. xaozai 04.05.26 20:26 Сейчас в теме
Это работает сразу после открытия отчета.
Но если сформировать отчет, снова открыть настройки, попытаться изменить список в параметре, то там не будет ничего, кроме того, что было выбрано ранее.
Можно как-то сделать, чтобы оно там не пропадало?
7. xaozai 04.05.26 21:04 Сейчас в теме
Для отправки сообщения требуется регистрация/авторизация