Список выбора для поля параметра СКД

1. login1020 134 28.01.19 10:25 Сейчас в теме
Есть отчет софрмированный стандартным конструктором скд, нет ни собственных форм, ни ручного сбора отчета в модуле объекта, всё через конструктор.
Как в параметры, выведенные на форму, засунуть список разрешенных элементов, не создавая собственную форму и не передавая в ручную список значений в поле на форме?
Элементы, которые нужно разрешить для выбора - не предопределенные.
Есть такая возможность?

Думаю копать в эту сторону, но с этими параметрами не работал.
Прикрепленные файлы:
По теме из базы знаний
Найденные решения
8. dhurricane 28.01.19 11:21 Сейчас в теме
(3) Коли используется внешний подключаемый отчет, можно попробовать поступить следующим образом.

1) Указать при регистрации внешней обработки, что требуется настройка формы:
Функция СведенияОВнешнейОбработке() Экспорт
   ...
   ПараметрыРегистрации.ОпределитьНастройкиФормы = Истина;
   ...
КонецФункции

2) Добавить в модуль объекта отчета процедуру настройки формы, где обозначить, что требуется определить параметры выбора:
Процедура ОпределитьНастройкиФормы(Форма, КлючВарианта, Настройки) Экспорт
	Настройки.События.ПриОпределенииПараметровВыбора = Истина;
КонецПроцедуры

3) Добавить в модуль объекта отчета обработчик определения параметров выбора, где реализовать свой алгоритм формирования списка выбора:
Процедура ПриОпределенииПараметровВыбора(Форма, СвойстваНастройки) Экспорт
	Если СвойстваНастройки.ОписаниеТипов.СодержитТип(Тип("СправочникСсылка.МойСправочник")) Тогда
		СвойстваНастройки.ОграничиватьВыборУказаннымиЗначениями = Истина;
		СвойстваНастройки.ЗначенияДляВыбора.Очистить();
		СвойстваНастройки.ЗначенияДляВыбора.Добавить(Значение1);
		СвойстваНастройки.ЗначенияДляВыбора.Добавить(Значение2);
		СвойстваНастройки.ЗначенияДляВыбора.Добавить(Значение3);
	КонецЕсли;
КонецПроцедуры
Показать

Подробнее можете почитать на ИТС
Borey; eeeio; Xershi; trntv; login1020; ixijixi; +6 Ответить
13. login1020 134 28.01.19 11:59 Сейчас в теме
(8) Спасибо, только списком ограничить не получилось, ограничил сразу итоговый запрос на вывод

Процедура ПриОпределенииПараметровВыбора(Форма, СвойстваНастройки) Экспорт
	
	Если СвойстваНастройки.ОписаниеТипов.СодержитТип(Тип("СправочникСсылка.СтруктураПредприятия")) Тогда
		
		СписокДоступных = Новый Массив;
		СписокДоступных.Добавить(Справочники.СтруктураПредприятия.НайтиПоНаименованию("Пример1",Истина));
		СписокДоступных.Добавить(Справочники.СтруктураПредприятия.НайтиПоНаименованию("Пример2",Истина));

		Текст = 
		 "ВЫБРАТЬ РАЗРЕШЕННЫЕ
		 |	СтруктураПредприятия.Ссылка КАК Ссылка
		 |ИЗ
		 |	Справочник.СтруктураПредприятия КАК СтруктураПредприятия
		 |ГДЕ
		 |	СтруктураПредприятия.Ссылка В(&СписокДоступных)
		 |
		 |УПОРЯДОЧИТЬ ПО
		 |	СтруктураПредприятия.Наименование";
		
		СвойстваНастройки.ЗапросЗначенийВыбора.Текст = Текст;
		
		СвойстваНастройки.ЗапросЗначенийВыбора.Параметры.Вставить("СписокДоступных",СписокДоступных);
		
	КонецЕсли;
	
КонецПроцедуры
Показать
Остальные ответы
Подписаться на ответы Инфостарт бот Сортировка: Древо развёрнутое
Свернуть все
2. dhurricane 28.01.19 10:41 Сейчас в теме
(1) А что из себя представляет этот список для выбора? Это отобранные по значению определенного реквизиты элементы справочника? Или список получается более сложным способом?
Какая конфигурация при этом используется? Отчет встроен в конфигурацию, подключаемый внешний отчет или же просто открывается через "Файл / Открыть..."?
3. login1020 134 28.01.19 10:48 Сейчас в теме
(2) ЕРП 2.4.. упр формы соответственно
Внешний подключаемый отчет

Можно было бы ограничиться свойством "выбор групп и элементов - группы", но У справочника - иерархия элементов.

Этот список состоит из нескольких элементов (2-3 элемента), отобрать их кроме как по коду или наименованию не получится

Просто пользователю вываливается для выбора целый список, нужно его ограничить 2-3 элементами.
4. dhurricane 28.01.19 10:53 Сейчас в теме
(3) А как Вы их в коде выбирать будете?
5. login1020 134 28.01.19 11:04 Сейчас в теме
(4) в коде у меня
В Иерархии (&Параметр)
6. dhurricane 28.01.19 11:10 Сейчас в теме
(5) Т.е. по Родителю никак не отобрать? Только "В иерархии"?
7. login1020 134 28.01.19 11:14 Сейчас в теме
(6) Да, вот как раз 3 элемента из списка мне и надо вытащить на форму в качестве доступных для выбора, а не весь список элементов из справочника.
8. dhurricane 28.01.19 11:21 Сейчас в теме
(3) Коли используется внешний подключаемый отчет, можно попробовать поступить следующим образом.

1) Указать при регистрации внешней обработки, что требуется настройка формы:
Функция СведенияОВнешнейОбработке() Экспорт
   ...
   ПараметрыРегистрации.ОпределитьНастройкиФормы = Истина;
   ...
КонецФункции

2) Добавить в модуль объекта отчета процедуру настройки формы, где обозначить, что требуется определить параметры выбора:
Процедура ОпределитьНастройкиФормы(Форма, КлючВарианта, Настройки) Экспорт
	Настройки.События.ПриОпределенииПараметровВыбора = Истина;
КонецПроцедуры

3) Добавить в модуль объекта отчета обработчик определения параметров выбора, где реализовать свой алгоритм формирования списка выбора:
Процедура ПриОпределенииПараметровВыбора(Форма, СвойстваНастройки) Экспорт
	Если СвойстваНастройки.ОписаниеТипов.СодержитТип(Тип("СправочникСсылка.МойСправочник")) Тогда
		СвойстваНастройки.ОграничиватьВыборУказаннымиЗначениями = Истина;
		СвойстваНастройки.ЗначенияДляВыбора.Очистить();
		СвойстваНастройки.ЗначенияДляВыбора.Добавить(Значение1);
		СвойстваНастройки.ЗначенияДляВыбора.Добавить(Значение2);
		СвойстваНастройки.ЗначенияДляВыбора.Добавить(Значение3);
	КонецЕсли;
КонецПроцедуры
Показать

Подробнее можете почитать на ИТС
Borey; eeeio; Xershi; trntv; login1020; ixijixi; +6 Ответить
13. login1020 134 28.01.19 11:59 Сейчас в теме
(8) Спасибо, только списком ограничить не получилось, ограничил сразу итоговый запрос на вывод

Процедура ПриОпределенииПараметровВыбора(Форма, СвойстваНастройки) Экспорт
	
	Если СвойстваНастройки.ОписаниеТипов.СодержитТип(Тип("СправочникСсылка.СтруктураПредприятия")) Тогда
		
		СписокДоступных = Новый Массив;
		СписокДоступных.Добавить(Справочники.СтруктураПредприятия.НайтиПоНаименованию("Пример1",Истина));
		СписокДоступных.Добавить(Справочники.СтруктураПредприятия.НайтиПоНаименованию("Пример2",Истина));

		Текст = 
		 "ВЫБРАТЬ РАЗРЕШЕННЫЕ
		 |	СтруктураПредприятия.Ссылка КАК Ссылка
		 |ИЗ
		 |	Справочник.СтруктураПредприятия КАК СтруктураПредприятия
		 |ГДЕ
		 |	СтруктураПредприятия.Ссылка В(&СписокДоступных)
		 |
		 |УПОРЯДОЧИТЬ ПО
		 |	СтруктураПредприятия.Наименование";
		
		СвойстваНастройки.ЗапросЗначенийВыбора.Текст = Текст;
		
		СвойстваНастройки.ЗапросЗначенийВыбора.Параметры.Вставить("СписокДоступных",СписокДоступных);
		
	КонецЕсли;
	
КонецПроцедуры
Показать
14. dhurricane 28.01.19 12:01 Сейчас в теме
(13) Пожалуйста. Мне просто неизвестны были Ваши исходные данные, поэтому привел пример, как короче.
36. Xershi 1496 04.11.20 19:30 Сейчас в теме
(13) сделал умнее:
// Вызывается в форме отчета перед выводом настройки.
//
// Параметры:
//   Форма - УправляемаяФорма, Неопределено - Форма отчета.
//   СвойстваНастройки - Структура - Описание настройки отчета, которая будет выведена в форме отчета.
//       * ОписаниеТипов - ОписаниеТипов - Тип настройки.
//       * ЗначенияДляВыбора - СписокЗначений - Объекты, которые будут предложены пользователю в списке
//			 выбора. Дополняет список объектов, уже выбранных пользователем ранее.
//       * ЗапросЗначенийВыбора - Запрос - Возвращает объекты, которыми необходимо дополнить ЗначенияДляВыбора.
//           Первой колонкой (с 0м индексом) должен выбираться объект,
//           который следует добавить в ЗначенияДляВыбора.Значение.
//           Для отключения автозаполнения
//           в свойство ЗапросЗначенийВыбора.Текст следует записать пустую строку.
//       * ОграничиватьВыборУказаннымиЗначениями - Булево - Когда Истина, то выбор пользователя будет
//           ограничен значениями, указанными в ЗначенияДляВыбора (его конечным состоянием).
//
// См. также:
//   ОтчетыПереопределяемый.ПриОпределенииПараметровВыбора().
//
Процедура ПриОпределенииПараметровВыбора(Форма, СвойстваНастройки) Экспорт
	
	Если ТипЗнч(СвойстваНастройки.ЭлементКД) = Тип("ЗначениеПараметраНастроекКомпоновкиДанных") Тогда
		
		Если СвойстваНастройки.ЭлементКД.Параметр = Новый ПараметрКомпоновкиДанных("Параметр1") Тогда
			
			СписокПараметр1( = ПолучитьСписокПараметр1();
			
			СвойстваНастройки.ЗначенияДляВыбора = СписокПараметр1;
			
		ИначеЕсли СвойстваНастройки.ЭлементКД.Параметр = Новый ПараметрКомпоновкиДанных("Параметр2") Тогда
			
			СписокПараметр2= ПолучитьСписокПараметр2();
			
			СвойстваНастройки.ЗначенияДляВыбора = СписокПараметр2;
			
		КонецЕсли;
		
	КонецЕсли;

КонецПроцедуры
Показать
15. login1020 134 28.01.19 12:04 Сейчас в теме
(8) Не сильно много на ИТС написано про
ОпределитьНастройкиФормы
.
У Вас есть ссылка на более подробное описани переопределений событий формы при настройке, очень полезная вещь, особенно когда не хочется собирать собственную форму, для подобных ограничений.
16. dhurricane 28.01.19 12:08 Сейчас в теме
(15) К сожалению, нет. Сам обычно смотрю ИТС, комментарии к процедурам на ИТС и в переопределяемых модулях, а также демо-базу БСП.
login1020; +1 Ответить
35. Xershi 1496 04.11.20 18:02 Сейчас в теме
(15) открыл типовую и там в комментариях все расписано.
29. пользователь 28.01.19 16:45
Сообщение было скрыто модератором.
...
9. пользователь 28.01.19 11:24
Сообщение было скрыто модератором.
...
10. пользователь 28.01.19 11:33
Сообщение было скрыто модератором.
...
11. пользователь 28.01.19 11:52
Сообщение было скрыто модератором.
...
12. пользователь 28.01.19 11:56
Сообщение было скрыто модератором.
...
17. пользователь 28.01.19 12:20
Сообщение было скрыто модератором.
...
18. пользователь 28.01.19 12:31
Сообщение было скрыто модератором.
...
19. пользователь 28.01.19 13:30
Сообщение было скрыто модератором.
...
20. meriferi 28.01.19 13:31 Сейчас в теме
В условиях в иерархии, на вкладке параметры установить значение
21. login1020 134 28.01.19 13:32 Сейчас в теме
(20) Значения справочника созданы пользователем, не предопределенные.
22. meriferi 28.01.19 13:34 Сейчас в теме
(21) тогда, помещай его в произвольные отчеты и на форму выносить параметры
23. login1020 134 28.01.19 13:38 Сейчас в теме
на форму и так вынесены параметры в быстрый доступ, вопрос был как ограничить список доступных значений в этих параметрах не создавая доп форм,и не собирая макет вручную.
24. пользователь 28.01.19 14:57
Сообщение было скрыто модератором.
...
25. пользователь 28.01.19 15:03
Сообщение было скрыто модератором.
...
26. пользователь 28.01.19 15:10
Сообщение было скрыто модератором.
...
27. пользователь 28.01.19 15:10
Сообщение было скрыто модератором.
...
28. пользователь 28.01.19 15:15
Сообщение было скрыто модератором.
...
28. пользователь 28.01.19 15:15
Сообщение было скрыто модератором.
...
30. пользователь 28.01.19 18:28
Сообщение было скрыто модератором.
...
31. пользователь 28.01.19 18:52
Сообщение было скрыто модератором.
...
32. пользователь 29.01.19 00:15
Сообщение было скрыто модератором.
...
33. пользователь 29.01.19 01:39
Сообщение было скрыто модератором.
...
34. пользователь 29.01.19 02:10
Сообщение было скрыто модератором.
...
Оставьте свое сообщение

Для получения уведомлений об ответах подключите телеграм бот:
Инфостарт бот