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

17.10.22

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

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

Файлы

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

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

Подписка 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    236896    1287    419    

1104

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

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

29.10.2025    12670    ovetgana    112    

101

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

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

01.07.2025    7721    krasnoshchekovpavel    5    

64

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

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

10.04.2025    7128    Neti    0    

38

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

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

27.02.2025    14766    ovetgana    50    

92

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

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

24.12.2024    12366    Akcium    17    

46

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

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

15.05.2024    22214    implecs    9    

52

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

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

3 стартмани

05.02.2024    12850    80    obmailok    21    

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