Есть внешний контекстный отчет на СКД, использующий библиотеку БСП.
По кнопке из списка/документа открывается форма отчета и он формируется - тут норм.
В модуле отчета написал передачу параметров - список ссылок на документы (одного типа):
В выходных полях отчета, поле "Ссылка" - отсутствует.
Задача - в сформированном отчете дать возможность пользователям делать отбор по ссылке.
Может кто сталкивался?
В первом куске запроса сделал необязательный отбор:
В настройках отчета появляется параметр "Ссылка", но его настройка не отрабатывает никак.
По кнопке из списка/документа открывается форма отчета и он формируется - тут норм.
В модуле отчета написал передачу параметров - список ссылок на документы (одного типа):
Процедура ПриСозданииНаСервере(Форма, Отказ, СтандартнаяОбработка) Экспорт
ОбъектыНазначения = ОбщегоНазначенияКлиентСервер.СвойствоСтруктуры(Форма.Параметры, "ОбъектыНазначения");
Если ОбъектыНазначения <> Неопределено Тогда
Форма.ФормаПараметры.Отбор.Вставить("Ссылка", ОбъектыНазначения);
КонецЕсли;
КонецПроцедуры
В выходных полях отчета, поле "Ссылка" - отсутствует.
Задача - в сформированном отчете дать возможность пользователям делать отбор по ссылке.
Может кто сталкивался?
В первом куске запроса сделал необязательный отбор:
ВЫБРАТЬ
ЗаказНаПроизводствоТовары.Номенклатура КАК Номенклатура,
ЗаказНаПроизводствоТовары.Размер КАК Размер,
ЗаказНаПроизводствоТовары.Количество КАК Количество,
ЗаказНаПроизводствоТовары.Ссылка КАК Ссылка
ПОМЕСТИТЬ ДанныеТабличнойЧасти
ИЗ
Документ.ЗаказНаПроизводство.Товары КАК ЗаказНаПроизводствоТовары
ГДЕ
ЗаказНаПроизводствоТовары.Номенклатура.ТипНоменклатуры = ЗНАЧЕНИЕ(Перечисление.ТипыНоменклатуры.ЮвелирноеИзделие)
{ГДЕ
(ЗаказНаПроизводствоТовары.Ссылка.ДокументОснование.Организация В (&Организации), ЗаказНаПроизводствоТовары.Ссылка В (&Ссылка))}
ПоказатьВ настройках отчета появляется параметр "Ссылка", но его настройка не отрабатывает никак.
По теме из базы знаний
- Универсальный конструктор отчетов СКД (управляемые формы, тонкий клиент)
- История формирования отчетов (расширение для типовых конфигураций)
- Добавление отчетов в типовые конфигурации 1С
- Как указать время в периоде типового отчета (СтандартныйПериод, СКД) в системах класса WMS, MES, SCADA, АСУ ТП на 1С, построить отчет за период с временем?
- Пользовательские настройки отчетов 1С. Часть 1. Простые и расширенные настройки
Ответы
Подписаться на ответы
Инфостарт бот
Сортировка:
Древо развёрнутое
Свернуть все
(6) Отбор устанавливаю программно, как описано в методике БСП. И тот отбор работает:
При этом, в настройках этот отбор - отсутствует.
"В ручную" добавляю отбор по полю "Ссылка".
Происходит - задублирование отборов, т.е. первоначальный отбор дублируется:
Как-то так.
Ссылка В списке "Заказ на производство АЮ-00000378...; Заказ на производство АЮ-00000379..."
При этом, в настройках этот отбор - отсутствует.
"В ручную" добавляю отбор по полю "Ссылка".
Происходит - задублирование отборов, т.е. первоначальный отбор дублируется:
"Ссылка В списке ""Заказ на производство АЮ-00000378...; Заказ на производство АЮ-00000379..."" И
Ссылка В списке ""Заказ на производство АЮ-00000378...; Заказ на производство АЮ-00000379..."""
Как-то так.
(7) Ну это хороший признак. Скорее всего отбор по ссылке попадает куда-нибудь в фиксированные настройки. На всякий случай попрошу убедиться, что данные фильтруются неправильно. Быть может Вы неверно интерпретировали результат.
Если таки отбор не применяется, попробуйте проверить конечный текст запроса, который формирует СКД.
Если таки отбор не применяется, попробуйте проверить конечный текст запроса, который формирует СКД.
Может кому поможет. Не претендует на грамотность и изящность, но отрабатывает как раз то, что нужно, как я понял. Как то так
Процедура ОпределитьНастройкиФормы(Форма, КлючВарианта, Настройки) Экспорт
Настройки.ФормироватьСразу = Истина;
Настройки.События.ПослеЗаполненияПанелиБыстрыхНастроек = Истина;
КонецПроцедуры
Процедура ПослеЗаполненияПанелиБыстрыхНастроек(Форма, ПараметрыОбновления) Экспорт
ОбъектыНазначения = ОбщегоНазначенияКлиентСервер.СвойствоСтруктуры(Форма.Параметры, "ОбъектыНазначения");
Если ОбъектыНазначения <> Неопределено Тогда
СписокЗначенийОтбора = Новый СписокЗначений;
СписокЗначенийОтбора.ЗагрузитьЗначения(ОбъектыНазначения);
ОтборНастройки = КомпоновщикНастроек.Настройки.Отбор;
ОбщегоНазначенияКлиентСервер.УстановитьЭлементОтбора(ОтборНастройки,
"Ссылка",
СписокЗначенийОтбора,
ВидСравненияКомпоновкиДанных.ВСписке,,
Истина,
РежимОтображенияЭлементаНастройкиКомпоновкиДанных.БыстрыйДоступ);
ЭлементыОтбораНастройки = ОтборНастройки.Элементы;
Для Каждого ЭлементОтбора Из ЭлементыОтбораНастройки Цикл
Если ЭлементОтбора.ЛевоеЗначение = Новый ПолеКомпоновкиДанных("Ссылка") Тогда
ИдентификаторПользовательскойНастройки = ЭлементОтбора.ИдентификаторПользовательскойНастройки;
Прервать;
КонецЕсли;
КонецЦикла;
ПользовательскиеНастройкиФорма = Форма.Отчет.КомпоновщикНастроек.ПользовательскиеНастройки;
ЭлементОтбораПользовательскиеНастройки = ПользовательскиеНастройкиФорма.Элементы.Найти(ИдентификаторПользовательскойНастройки);
ЗаполнитьЗначенияСвойств(ЭлементОтбораПользовательскиеНастройки, ЭлементОтбора);
КонецЕсли;
КонецПроцедуры
Показать
Может кому пригодится, взято из БСП Демо:
// Настройки общей формы отчета подсистемы "Варианты отчетов".
//
// Параметры:
// Форма - УправляемаяФорма, Неопределено - Форма отчета или форма настроек отчета.
// Неопределено когда вызов без контекста.
// КлючВарианта - Строка, Неопределено - Имя предопределенного
// или уникальный идентификатор пользовательского варианта отчета.
// Неопределено когда вызов без контекста.
// Настройки - Структура - см. возвращаемое значение
// ОтчетыКлиентСервер.ПолучитьНастройкиОтчетаПоУмолчанию().
//
Процедура ОпределитьНастройкиФормы(Форма, КлючВарианта, Настройки) Экспорт
Настройки.ФормироватьСразу = Истина;
Настройки.РазрешеноИзменятьВарианты = Ложь;
Настройки.События.ПриСозданииНаСервере = Истина;
КонецПроцедуры
// Вызывается в обработчике одноименного события формы отчета после выполнения кода формы.
// См. также УправляемаяФорма.ПриСозданииНаСервере в синтакс-помощнике.
//
// Параметры:
// Форма - УправляемаяФорма - Форма отчета.
// Отказ - Булево - Передается из параметров обработчика "как есть".
// СтандартнаяОбработка - Булево - Передается из параметров обработчика "как есть".
//
Процедура ПриСозданииНаСервере(Форма, Отказ, СтандартнаяОбработка) Экспорт
ОбъектыНазначения = ОбщегоНазначенияКлиентСервер.СвойствоСтруктуры(Форма.Параметры, "ОбъектыНазначения");
Если ОбъектыНазначения <> Неопределено Тогда
Форма.ФормаПараметры.Отбор.Вставить("Ссылка", ОбъектыНазначения);
КонецЕсли;
КонецПроцедуры
Показать
Для получения уведомлений об ответах подключите телеграм бот:
Инфостарт бот