Контекстный отчет (СКД) на базе БСП

1. user659168_xec8787 3 21.10.19 12:47 Сейчас в теме
Есть внешний контекстный отчет на СКД, использующий библиотеку БСП.
По кнопке из списка/документа открывается форма отчета и он формируется - тут норм.
В модуле отчета написал передачу параметров - список ссылок на документы (одного типа):
Процедура ПриСозданииНаСервере(Форма, Отказ, СтандартнаяОбработка) Экспорт
	ОбъектыНазначения = ОбщегоНазначенияКлиентСервер.СвойствоСтруктуры(Форма.Параметры, "ОбъектыНазначения");
	Если ОбъектыНазначения <> Неопределено Тогда
		Форма.ФормаПараметры.Отбор.Вставить("Ссылка", ОбъектыНазначения);
	КонецЕсли;
КонецПроцедуры

В выходных полях отчета, поле "Ссылка" - отсутствует.
Задача - в сформированном отчете дать возможность пользователям делать отбор по ссылке.
Может кто сталкивался?
В первом куске запроса сделал необязательный отбор:
ВЫБРАТЬ
	ЗаказНаПроизводствоТовары.Номенклатура КАК Номенклатура,
	ЗаказНаПроизводствоТовары.Размер КАК Размер,
	ЗаказНаПроизводствоТовары.Количество КАК Количество,
	ЗаказНаПроизводствоТовары.Ссылка КАК Ссылка
ПОМЕСТИТЬ ДанныеТабличнойЧасти
ИЗ
	Документ.ЗаказНаПроизводство.Товары КАК ЗаказНаПроизводствоТовары
ГДЕ
	ЗаказНаПроизводствоТовары.Номенклатура.ТипНоменклатуры = ЗНАЧЕНИЕ(Перечисление.ТипыНоменклатуры.ЮвелирноеИзделие)
{ГДЕ
	(ЗаказНаПроизводствоТовары.Ссылка.ДокументОснование.Организация В (&Организации), ЗаказНаПроизводствоТовары.Ссылка В (&Ссылка))}
Показать

В настройках отчета появляется параметр "Ссылка", но его настройка не отрабатывает никак.
По теме из базы знаний
Ответы
Подписаться на ответы Инфостарт бот Сортировка: Древо развёрнутое
Свернуть все
2. dhurricane 21.10.19 12:50 Сейчас в теме
(1) Попробуйте вписать не в параметры, а в отборы:
{ГДЕ
    ЗаказНаПроизводствоТовары.Ссылка.ДокументОснование.Организация В (&Организации),
    ЗаказНаПроизводствоТовары.Ссылка.* КАК Ссылка}

Для Ваших целей можно даже без использования символов ".*"
3. user659168_xec8787 3 21.10.19 13:33 Сейчас в теме
(2)
Попробуйте вписать не в параметры, а в отборы:

в выходных полях, поле "Ссылка" - отсутствует, т.е. отборы по этому полю не сделать.
Приведенных кусок запроса - это самое начало, откуда цепляется прочее ...
4. dhurricane 21.10.19 13:49 Сейчас в теме
(3) Я понимаю, что это самое начало. И указанная мною конструкция обязательно должна была привести к появлению поля "Ссылка" в наборе данных. Проверьте, пожалуйста, еще раз. И если ссылку не обнаружите, пришлите запрос полностью.
5. user659168_xec8787 3 21.10.19 14:38 Сейчас в теме
(4) Да, извините, поторопился. Не указывал псевдоним этого поля "КАК Ссылка", как указал, "Ссылка". в отборе появилась, но не заработала (( Т.е. СКД вообще не "чувствительна" к этому отбору ((
6. dhurricane 21.10.19 14:55 Сейчас в теме
(5) Подскажите, а сам отбор то был установлен? Видите ли Вы отбор по ссылке в настройках, или в самом табличном документе есть указание, что отбор установлен?
7. user659168_xec8787 3 21.10.19 15:42 Сейчас в теме
(6) Отбор устанавливаю программно, как описано в методике БСП. И тот отбор работает:
Ссылка В списке "Заказ на производство АЮ-00000378...; Заказ на производство АЮ-00000379..."

При этом, в настройках этот отбор - отсутствует.
"В ручную" добавляю отбор по полю "Ссылка".
Происходит - задублирование отборов, т.е. первоначальный отбор дублируется:
"Ссылка В списке ""Заказ на производство АЮ-00000378...; Заказ на производство АЮ-00000379..."" И
Ссылка В списке ""Заказ на производство АЮ-00000378...; Заказ на производство АЮ-00000379..."""

Как-то так.
8. dhurricane 21.10.19 15:46 Сейчас в теме
(7) Ну это хороший признак. Скорее всего отбор по ссылке попадает куда-нибудь в фиксированные настройки. На всякий случай попрошу убедиться, что данные фильтруются неправильно. Быть может Вы неверно интерпретировали результат.

Если таки отбор не применяется, попробуйте проверить конечный текст запроса, который формирует СКД.
9. user1049275 16.03.20 16:24 Сейчас в теме
Может кому поможет. Не претендует на грамотность и изящность, но отрабатывает как раз то, что нужно, как я понял. Как то так

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

КонецПроцедуры

Процедура ПослеЗаполненияПанелиБыстрыхНастроек(Форма, ПараметрыОбновления) Экспорт
	
	ОбъектыНазначения = ОбщегоНазначенияКлиентСервер.СвойствоСтруктуры(Форма.Параметры, "ОбъектыНазначения");
	Если ОбъектыНазначения <> Неопределено Тогда				 
		СписокЗначенийОтбора = Новый СписокЗначений;
		СписокЗначенийОтбора.ЗагрузитьЗначения(ОбъектыНазначения);
		
		ОтборНастройки = КомпоновщикНастроек.Настройки.Отбор;
			
		ОбщегоНазначенияКлиентСервер.УстановитьЭлементОтбора(ОтборНастройки, 
					"Ссылка",
		                        СписокЗначенийОтбора,
					ВидСравненияКомпоновкиДанных.ВСписке,,
					Истина,
					РежимОтображенияЭлементаНастройкиКомпоновкиДанных.БыстрыйДоступ);
			
		ЭлементыОтбораНастройки = ОтборНастройки.Элементы;
			
		Для Каждого ЭлементОтбора Из ЭлементыОтбораНастройки Цикл
			Если ЭлементОтбора.ЛевоеЗначение = Новый ПолеКомпоновкиДанных("Ссылка") Тогда
				ИдентификаторПользовательскойНастройки = ЭлементОтбора.ИдентификаторПользовательскойНастройки;
				Прервать;
			КонецЕсли;
		КонецЦикла;
			
		ПользовательскиеНастройкиФорма = Форма.Отчет.КомпоновщикНастроек.ПользовательскиеНастройки;
			
		ЭлементОтбораПользовательскиеНастройки = ПользовательскиеНастройкиФорма.Элементы.Найти(ИдентификаторПользовательскойНастройки);
		ЗаполнитьЗначенияСвойств(ЭлементОтбораПользовательскиеНастройки, ЭлементОтбора);
	КонецЕсли;
	
КонецПроцедуры
Показать
10. user596590_pavel.kuznecov 46 09.11.20 16:51 Сейчас в теме
Может кому пригодится, взято из БСП Демо:
// Настройки общей формы отчета подсистемы "Варианты отчетов".
//
// Параметры:
//   Форма - УправляемаяФорма, Неопределено - Форма отчета или форма настроек отчета.
//       Неопределено когда вызов без контекста.
//   КлючВарианта - Строка, Неопределено - Имя предопределенного
//       или уникальный идентификатор пользовательского варианта отчета.
//       Неопределено когда вызов без контекста.
//   Настройки - Структура - см. возвращаемое значение
//       ОтчетыКлиентСервер.ПолучитьНастройкиОтчетаПоУмолчанию().
//
Процедура ОпределитьНастройкиФормы(Форма, КлючВарианта, Настройки) Экспорт
	Настройки.ФормироватьСразу = Истина;
	Настройки.РазрешеноИзменятьВарианты = Ложь;
	Настройки.События.ПриСозданииНаСервере = Истина;
КонецПроцедуры

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

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