Параметры открытия формы выбора отборов и параметров СКД ("связи параметров выбора" списочных значений СКД)

17.10.22

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

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

Файлы

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

Наименование Скачано Купить файл
Параметры открытия формы выбора отборов и параметров СКД ("связи параметров выбора" списочных значений СКД):
.erf 10,14Kb
12 2 500 руб. Купить

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

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

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

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

  1. Программно установить действия на события НачалоВыбора и ОбработкаВыбора элементов формы параметров СКД.
  2. Программно прочитать и установить значения параметров компоновки данных.

Опишем действия подробнее:

1. Программно установить действия на события НачалоВыбора и ОбработкаВыбора элементов формы параметров СКД.

На этом этапе сталкиваемся с проблемой отсутствия в конфигураторе элементов формы (они создаются при открытии формы согласно настройкам компоновки). Нам необходимо найти соответствующие элементы и установить им действия на события.

	ЭлментПодразделение = ПолучитьЭлементПоЗаголовку("Подразделение");
	Если ЭлментПодразделение <> Неопределено тогда
		ЭлментПодразделение.ИсторияВыбораПриВводе = ИсторияВыбораПриВводе.НеИспользовать;
		ЭлментПодразделение.УстановитьДействие("НачалоВыбора", "ПодразделениеНачалоВыбора");
		ЭлментПодразделение.УстановитьДействие("ОбработкаВыбора", "ПодразделениеОбработкаВыбора");
	КонецЕсли;
	
	ЭлментОрганизация = ПолучитьЭлементПоЗаголовку("Организация");
	Если ЭлментОрганизация <> Неопределено тогда
		ЭлментОрганизация.ИсторияВыбораПриВводе = ИсторияВыбораПриВводе.НеИспользовать;
		ЭлментОрганизация.УстановитьДействие("ПриИзменении", "ОрганизацияПриИзменении");
	КонецЕсли;
&НаСервере
Функция ПолучитьЭлементПоЗаголовку(Заголовок)
	
    ВозвращаемыйЭлемент = Неопределено;
	Для Каждого ЭлментФормы из Элементы цикл
		Если ТипЗнч(ЭлментФормы) = Тип("ПолеФормы") тогда
			Если ЭлментФормы.Заголовок = Заголовок тогда
				ВозвращаемыйЭлемент = ЭлментФормы;
			КОнецЕсли;
		КОнецЕсли;
	КонецЦикла;
	
	Возврат ВозвращаемыйЭлемент;
	
КонецФункции

2. Программно прочитать и установить значения параметров компоновки данных.

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

&НаКлиенте
Процедура ПодразделениеОбработкаВыбора(Элемент, ВыбранноеЗначение, СтандартнаяОбработка)
	
	Подразделения = Новый СписокЗначений;
	Для Каждого Подразделение из ВыбранноеЗначение цикл
		Если Подразделения.НайтиПоЗначению(Подразделение) = Неопределено тогда
			Подразделения.Добавить(Подразделение);
		КонецЕсли;
	КонецЦикла;
	
	Организации = Новый СписокЗначений;
	Для Каждого Подразделение из ВыбранноеЗначение цикл
		Организация = РеквизитПоСсылке(Подразделение, "Организация");
		Если Организации.НайтиПоЗначению(Организация) = Неопределено тогда
			Организации.Добавить(Организация);
		КонецЕсли;
	КонецЦикла;
	
	УстановитьПараметраКомпоновки("Организация", Организации);
	УстановитьПараметраКомпоновки("Подразделение", Подразделения);
	
КонецПроцедуры

При этом мы не только установили значение параметра "Подразделение", но и реализовали автоматическое заполнение связанного параметра "Организации". 

Для корректного заполнения параметров СКД и отображения изменений на форме необходимо провести следующие действия:

  • Получить НастройкиКомпановщика - метод "Отчет.КомпоновщикНастроек.ПолучитьНастройки()"
  • внести изменения в параметры данных (Расположен на вкладке "Параметры" в СКД) и в Отборы (Расположены на вкладке "Настройки" в СКД)
  • Загрузить НастройкиКомпановщика - метод "Отчет.КомпоновщикНастроек.ЗагрузитьНастройки(НастройкиКомпановщика)"
  • Перегенерировать элементы формы - метод "ЭтаФорма.СоздатьЭлементыФормыПользовательскихНастроек()"
  • Установить установить действия на события НачалоВыбора и ОбработкаВыбора элементов формы параметров СКД. (Элементы формы создаются по новой)
&НаСервере
Процедура УстановитьПараметраКомпоновки(ИмяПараметра, Значение) Экспорт
	
	ПараметрКД = Новый ПараметрКомпоновкиДанных(ИмяПараметра);
	ОтборКД = Новый ПолеКомпоновкиДанных(ИмяПараметра);
	
	НастройкиКомпановщика = Отчет.КомпоновщикНастроек.ПолучитьНастройки();
	
	Для Каждого Поле Из НастройкиКомпановщика.ПараметрыДанных.Элементы Цикл
		Если Поле.Параметр = ПараметрКД Тогда
			Поле.Значение = Значение;
		КонецЕсли;
	КонецЦикла;
	
	Для Каждого Отбор Из НастройкиКомпановщика.Отбор.Элементы Цикл
		Если Отбор.ЛевоеЗначение = ОтборКД Тогда
			Отбор.ВидСравнения = ВидСравненияКомпоновкиДанных.ВСписке;
			Отбор.Использование = Истина;
			Отбор.ПравоеЗначение = Значение;
		КонецЕсли;
	КонецЦикла;
	
	Отчет.КомпоновщикНастроек.ЗагрузитьНастройки(НастройкиКомпановщика);
	ЭтаФорма.СоздатьЭлементыФормыПользовательскихНастроек(,РежимОтображенияНастроекКомпоновкиДанных.БыстрыйДоступ);
	УстановитьДействиеНаОтборы();
	
КонецПроцедуры

Пример Отчета работает на любой конфигурации, где есть справочники подразделения и организации. В примере справочник называется "ПодразделенияОрганизаций", если в вашей конфигурации он называется иначе, то необходимо переименовать его в запросе СКД, в методах "СформироватьСписокПодразделений" и "ПодразделениеНачалоВыбора" в модуле формы. Отчет тестировался на платформе 1С:Предприятие 8.3 (8.3.17.1851) конфигурации Зарплата и кадры государственного учреждения, редакция 3.1 (3.1.22.86)

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

Параметры открытия формы выбора отборов и параметров СКД связи

См. также

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

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

16500 руб.

02.09.2020    245781    1350    419    

1128

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

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

29.01.2026    4947    279    shapa_pro    25    

66

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

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

29.10.2025    15555    ovetgana    112    

105

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

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

01.07.2025    9114    krasnoshchekovpavel    5    

66

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

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

10.04.2025    8300    Neti    0    

41

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

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

27.02.2025    15474    ovetgana    50    

93

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

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

24.12.2024    13059    Akcium    17    

46

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

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

20.08.2024    9505    AlexeyPROSTO_1C    1    

32
Для отправки сообщения требуется регистрация/авторизация