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

Публикация № 1743142 17.10.22

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

Скачать файлы

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

.erf 10,14Kb
4
.erf 10,14Kb 4 Скачать

Специальные предложения

Оставьте свое сообщение

См. также

Заполнение параметра/отбора во всех отчетах списком товаров из документа

Универсальные обработки Учет ТМЦ Ценообразование, анализ цен СКД Платформа 1С v8.3 1С:ERP Управление предприятием 2 1С:Управление торговлей 11 1С:Комплексная автоматизация 2.х Абонемент ($m)

Добавление кнопки на форму общего отчет для заполнения параметра/отбора номенклатуры товарами из любого документа для любого отчета использующего общую форму отчёта

1 стартмани

23.08.2022    2611    1    user1209971    0    

2

Поиск заказов по массиву номенклатуры

СКД Платформа 1С v8.3 Система компоновки данных 1С:Комплексная автоматизация 2.х Россия Управленческий учет Абонемент ($m)

Отчет показывает все заказы, в которые входят только заданный в параметрах массив номенклатуры.

1 стартмани

14.06.2022    3176    2    Dunga    4    

0

Отчет с выводом заголовка на СКД

СКД Платформа 1С v8.3 Система компоновки данных Платформа 1C v8.2 Конфигурации 1cv8 Управленческий учет Абонемент ($m)

Отчёты "Ведомость товаров на складах" демонстрируют два способах вывода заголовка на СКД. Эти отчеты тестировались на конфигурации Управление торговым предприятием для Казахстана, редакции 2.0.19.2. Могут работать на любой конфигурации, если имеются регистры накопления «ТоварыНаСкладах» и «РеализованныеТовары».

2 стартмани

07.04.2021    5656    7    softmaker    0    

1

СКД: красивые надписи в заголовках колонок

СКД Платформа 1С v8.3 Система компоновки данных 1С:Управление производственным предприятием Россия Абонемент ($m)

Необходимо немного исправить вывод надписей в заголовках колонок, сделать более читаемый вариант. Как это сделать?

2 стартмани

27.02.2020    17215    10    wowik    36    

66

Отчет на СКД с выводом остатков по всем датам периода для УТ 10.3 (обычные формы)

СКД Система компоновки данных 1С:Управление торговлей 10 Россия Управленческий учет Абонемент ($m)

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

1 стартмани

23.12.2019    9402    8    jump0    0    

1

Программное добавление параметров редактирования СКД

СКД Платформа 1С v8.3 Система компоновки данных Конфигурации 1cv8 Абонемент ($m)

В данной публикации приводится пример программного добавления параметров редактирования для поля выборки в СКД.

1 стартмани

25.11.2019    14733    4    Isonic    8    

32

Расчет сложных итогов СКД

СКД Платформа 1С v8.3 Система компоновки данных Конфигурации 1cv8 Абонемент ($m)

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

1 стартмани

05.08.2019    71380    55    masterkio    28    

169

Иерархическая нумерация в отчете СКД с помощью макета поля

СКД Платформа 1С v8.3 Система компоновки данных Конфигурации 1cv8 Абонемент ($m)

Представляю Вашему вниманию вариант решения задачи нумерации строк иерархического отчета на СКД.

1 стартмани

28.06.2019    17928    19    Isonic    15    

27

Поле "Отбор" в управляемой форме используя СКД

СКД Управляемые формы Система компоновки данных Конфигурации 1cv8 Абонемент ($m)

Пример, который осуществляет отбор ссылок при помощи СКД, макет компоновки создается программно.

1 стартмани

17.05.2019    26121    22    artms    4    

18

Отладка сложных отчетов на СКД

СКД Платформа 1С v8.3 Система компоновки данных Конфигурации 1cv8 Россия Абонемент ($m)

Расширение для отладки сложных отчетов на СКД (в т.ч. для собираемых программно "на лету") и быстрого перехода к отладке таких отчетов в консоли запросов и отчетов на СКД.

1 стартмани

28.12.2018    50767    181    maxx    65    

185

Отчет для демонстрации работы с программной расшифровкой СКД

СКД Система компоновки данных Конфигурации 1cv8 Россия Абонемент ($m)

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

1 стартмани

08.11.2018    13486    20    budidich    1    

13

И снова группировка столбцов в СКД

СКД Платформа 1С v8.3 Система компоновки данных 1С:Управление торговлей 11 Россия Абонемент ($m)

В публикации описано создание отчета "Остатки по складам" с группировкой по строкам и столбцам.

1 стартмани

23.10.2018    25323    2    vasilievil    9    

8

Получение родителей верхних уровней отчетом на СКД

СКД Платформа 1С v8.3 Система компоновки данных 1С:Бухгалтерия 3.0 1С:Управление торговлей 11 Россия Абонемент ($m)

Выводит данные по группам верхних уровней по иерархии номенклатуры. Можно выбрать число верхних групп.

1 стартмани

05.10.2018    13767    23    3s7    2    

11

Параметризованные заголовки полей СКД

СКД Платформа 1С v8.3 Система компоновки данных Конфигурации 1cv8 Абонемент ($m)

Доработанный шаблон типового отчета, который это позволяет менять заголовки полей в зависимости от значений параметров.

2 стартмани

21.09.2018    16323    4    echo77    3    

27

Преобразование отбора компоновки данных к линейному условию для запроса

СКД Бухгалтерский учет 1С:Бухгалтерия 3.0 Россия Бухгалтерский учет Абонемент ($m)

Описание механизма преобразования интерактивного отбора компоновки данных в условие для использования в запросе, данный механизм можно использовать в конфигурации Бухгалтерия предприятия 3.0 и везде в управляемых приложениях, где используется регистр бухгалтерии "Хозрасчетный", также можно адаптировать к любому источнику данных

10 стартмани

10.09.2018    9217    3    scarabey2006    4    

2

Вывод результата отчета СКД в разные табличные документы

СКД Система компоновки данных Конфигурации 1cv8 Россия Абонемент ($m)

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

1 стартмани

21.08.2018    24436    23    Dipod    4    

20

Универсальный конструктор отчетов СКД (управляемые формы, тонкий клиент)

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

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

3 стартмани

20.11.2017    37614    421    Boneman    30    

115

Расшифровка табличного документа, сформированного СКД

СКД Система компоновки данных Конфигурации 1cv8 Россия Абонемент ($m)

Функция делает постобработку табличного документа, чтобы можно было открыть поля ссылочного типа, не имея данных расшифровки (например, после сохранения в mxl)

2 стартмани

29.06.2017    23055    10    SITR-utyos    11    

42

Отчет-календарь СКД

Банковские операции СКД Платформа 1С v8.3 Бухгалтерский учет Конфигурации 1cv8 Бухгалтерский учет Абонемент ($m)

Хотите повысить наглядность отчетов и выходных форм? Достаточно совместить их с календарем ) Это довольно легко реализовать при помощи СКД.

1 стартмани

01.06.2017    39167    70    kiberiq    13    

96

Расстояние между населенными пунктами в виде таблицы лесенкой

СКД Система компоновки данных Конфигурации 1cv8 Абонемент ($m)

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

5 стартмани

05.05.2017    8574    1    user745658    2    

3

Произвольная иерархия в СКД (системе компоновки данных)

СКД Система компоновки данных Конфигурации 1cv8 Абонемент ($m)

Как сгруппировать данные из таблицы значений по любой выдуманной иерархии в СКД (системе компоновки данных)

1 стартмани

06.12.2016    9604    25    338050247    2    

4