Как вставить в фильтр СКД список значений?
Имеется отчет на СКД. В нем есть поле номенклатура. В Номенклатуре есть стандартный для базы (Ут 11.1) реквизит Артикул - обычная строка. Нужно чтобы пользователь мог снять отчет по заданному списку артикулов. Добавил в Отбор: Номенклатура.Артикул, В списке. При открытии отчета, захожу в настройки, расширенные. Там Открываю значение, нажимаю Вставить из буфера обмена и ошибка - Значение не является значением объектного типа (ПолноеИмя). Причем не важно, что в буфере из Экселя данные или прочто цифра 1. Подскажите куда копать или какой то альтернативны вариант.
По теме из базы знаний
- Универсальные функции ЗУП 3.1 / ЗКГУ 3.1, которые помогут в разработке
- Вывод дерева в табличный документ СКД
- Умная маршрутизация: о сложностях интеграции с 1С (часть 2)
- Расширение: Быстрые отборы через буфер [Alt+C] Копировать список, [Alt+V] Вставить список, [Ctrl+C] Копировать из файлов
- Переход на Clickhouse для анализа метрик
Ответы
Подписаться на ответы
Инфостарт бот
Сортировка:
Древо развёрнутое
Свернуть все
1) А если отбор делать не через точку?
2) Попробовать вынести отбор в параметр с галкой "доступен список значений"
2) Попробовать вынести отбор в параметр с галкой "доступен список значений"
полное имя это строка неограниченной длины по таким отбор невозможен следует выбирать артикул а не всю таблицу номенклатура с ее полями - копай в этом направлении
Добрый день. Сделайте через набор данных ОБЪЕКТ, а не через набор данных ЗАПРОС. Через набор данных объект - там сможете сформировать свой запрос, установить свои отборы в запросе и вернуть СКД свою таблицу.
Процедура ПолучитьВнешниеИсточникиДанных(ВнешниеНаборыДанных)
ПолучитьТаблицу(ВнешниеНаборыДанных);
КонецПроцедуры
Процедура ПолучитьТаблицу(ВнешниеНаборыДанных)
Перем ТекстЗапроса;
Перем ТаблицаРезультат;
Если ЗначениеЗаполнено(КомпоновщикНастроек.Настройки.ПараметрыДанных.Элементы.Найти("НачалоПериода").Значение) Тогда
НачалоПериода = КомпоновщикНастроек.Настройки.ПараметрыДанных.Элементы.Найти("НачалоПериода").Значение;
Иначе
НачалоПериода = НачалоМесяца(ТекущаяДата());
КонецЕсли;
Если ЗначениеЗаполнено(КомпоновщикНастроек.Настройки.ПараметрыДанных.Элементы.Найти("КонецПериода").Значение) Тогда
КонецПериода = КомпоновщикНастроек.Настройки.ПараметрыДанных.Элементы.Найти("КонецПериода").Значение;
Иначе
КонецПериода = НачалоМесяца(ТекущаяДата());
КонецЕсли;
Запрос = Новый Запрос;
// -----------------------------------------------------
ТаблицаРезультат = НеОпределено;
// -----------------------------------------------------
ТекстЗапроса = "ВЫБРАТЬ и т.д."
Запрос = Новый Запрос;
Запрос.Текст = ТекстЗапроса;
Запрос.УстановитьПараметр("НачПериода", НачалоПериода);
Запрос.УстановитьПараметр("КонПериода", КонецПериода);
Запрос.УстановитьПараметр("МОЙСПИСОКЗНАЧЕНИЙ", СписокЗначений);
ТаблицаРезультат = Запрос.Выполнить().Выгрузить();
ВнешниеНаборыДанных.Вставить("МойНаборДанных", ТаблицаРезультат);
КонецПроцедуры
Показать
Ну и
Процедура ПриКомпоновкеРезультата(ДокументРезультат, ДанныеРасшифровки, СтандартнаяОбработка) Экспорт
ВнешниеНаборыДанных = Новый Структура;
ПолучитьВнешниеИсточникиДанных(ВнешниеНаборыДанных);
СтандартнаяОбработка = ложь;
КомпоновщикМакета = Новый КомпоновщикМакетаКомпоновкиДанных;
Настройки = КомпоновщикНастроек.Настройки;
ДанныеРасшифровки = Новый ДанныеРасшифровкиКомпоновкиДанных;
МакетКомпоновки = КомпоновщикМакета.Выполнить(СхемаКомпоновкиДанных, Настройки,ДанныеРасшифровки);
ПроцессорКомпоновкиДанных = Новый ПроцессорКомпоновкиДанных;
ПроцессорКомпоновкиДанных.Инициализировать(МакетКомпоновки,ВнешниеНаборыДанных,ДанныеРасшифровки);
ПроцессорВывода = Новый ПроцессорВыводаРезультатаКомпоновкиДанныхВТабличныйДокумент;
ПроцессорВывода.УстановитьДокумент(ДокументРезультат);
ПроцессорВывода.Вывести(ПроцессорКомпоновкиДанных);
КонецПроцедуры
Показать
Внимание! Тема сдана в архив
Для получения уведомлений об ответах подключите телеграм бот:
Инфостарт бот