Форум 1С
Программистам, бухгалтерам, администраторам, пользователям
Задай вопрос - получи решение проблемы
15 дек 2024, 20:50

Передача параметра в отчёт СКД в ERP

Автор illyaromanenko, 16 апр 2024, 11:45

0 Пользователей и 1 гость просматривают эту тему.

illyaromanenko

Добрый день. Хочу передать параметр  МассивЗначений или СписокЗначений в СКД. Вот текст процедуры ПриКомпановкеРезультата

Процедура ПриКомпоновкеРезультата(ДокументРезультат, ДанныеРасшифровки, СтандартнаяОбработка)
   
    СтандартнаяОбработка = Ложь;
     Настройки = КомпоновщикНастроек.ПолучитьНастройки();
     ПараметрыДанных = Настройки.ПараметрыДанных;
   
   
   
    ТабЗнач = Новый ТаблицаЗначений;
    МассивЛишнихЗаказов = ВернутьМассивЗаказовВРаботе();
    СписокЗначенийЗаказов = Новый СписокЗначений;
    СписокЗначенийЗаказов.ЗагрузитьЗначения(МассивЛишнихЗаказов);

   
    ПараметрСКД = КомпоновщикНастроек.Настройки.ПараметрыДанных.НайтиЗначениеПараметра("МассивЛишнихЗаказов");
    ПараметрСКД.Значение = СписокЗначенийЗаказов;
    ПараметрСКД.Использование = Истина;
   
   
   
   
    КомпоновщикМакета = Новый КомпоновщикМакетаКомпоновкиДанных;
    МакетКомпоновки = КомпоновщикМакета.Выполнить(СхемаКомпоновкиДанных, Настройки, ДанныеРасшифровки, , , Ложь);
    ПроцессорКомпоновки = Новый ПроцессорКомпоновкиДанных;
    ПроцессорКомпоновки.Инициализировать(МакетКомпоновки,, ДанныеРасшифровки, Истина);
    ПроцессорВывода = Новый ПроцессорВыводаРезультатаКомпоновкиДанныхВТабличныйДокумент;
    ПроцессорВывода.УстановитьДокумент(ДокументРезультат);
    ПроцессорВывода.Вывести(ПроцессорКомпоновки);   
   
КонецПроцедуры



Вот текст запроса В Наборе данных в СКД:
ВЫБРАТЬ
    ЗаказПоставщикуТовары.Ссылка КАК Ссылка,
    ЗаказПоставщикуТовары.Номенклатура КАК Номенклатура,
    ЗаказПоставщикуТовары.Характеристика КАК Характеристика,
    ЗаказПоставщикуТовары.Упаковка КАК Упаковка,
    ЗаказПоставщикуТовары.ВидЦеныПоставщика КАК ВидЦеныПоставщика,
    ЗаказПоставщикуТовары.НомерСтроки КАК НомерСтроки
ПОМЕСТИТЬ ВТ_ЗаказыПоставщикам
ИЗ
    Документ.ЗаказПоставщику.Товары КАК ЗаказПоставщикуТовары
ГДЕ
    ЗаказПоставщикуТовары.Ссылка.Проведен
    И ЗаказПоставщикуТовары.НоменклатураПартнера = ЗНАЧЕНИЕ(Справочник.НоменклатураКонтрагентов.ПустаяСсылка)
    И ЗаказПоставщикуТовары.Ссылка.Статус <> ЗНАЧЕНИЕ(Перечисление.СтатусыЗаказовПоставщикам.Закрыт)
    И НЕ ЗаказПоставщикуТовары.Отменено
;

////////////////////////////////////////////////////////////////////////////////
ВЫБРАТЬ
    ВТ_ЗаказыПоставщикам.НомерСтроки КАК НомерСтроки,
    ВТ_ЗаказыПоставщикам.Номенклатура КАК Номенклатура,
    ВТ_ЗаказыПоставщикам.Ссылка КАК Ссылка,
    ВТ_ЗаказыПоставщикам.Характеристика КАК Характеристика,
    ВТ_ЗаказыПоставщикам.Упаковка КАК Упаковка,
    ВТ_ЗаказыПоставщикам.ВидЦеныПоставщика КАК ВидЦеныПоставщика
ПОМЕСТИТЬ ВТ_ТоварыИзЗаказа
ИЗ
    ВТ_ЗаказыПоставщикам КАК ВТ_ЗаказыПоставщикам
        ЛЕВОЕ СОЕДИНЕНИЕ Документ.ПриобретениеТоваровУслуг КАК ПриобретениеТоваровУслуг
        ПО ВТ_ЗаказыПоставщикам.Ссылка = ПриобретениеТоваровУслуг.ЗаказПоставщику.Ссылка
ГДЕ
    ПриобретениеТоваровУслуг.Ссылка ЕСТЬ NULL
    И (НЕ (ВТ_ЗаказыПоставщикам.Ссылка В (&МассивЛишнихЗаказов)))
;

////////////////////////////////////////////////////////////////////////////////
ВЫБРАТЬ
    ВТ_ТоварыИзЗаказа.Номенклатура КАК Номенклатура,
    ВТ_ТоварыИзЗаказа.НомерСтроки КАК НомерСтрокиВЗаказе,
    ВТ_ТоварыИзЗаказа.Ссылка КАК ЗаказПоставщику,
    ВТ_ТоварыИзЗаказа.Ссылка.Партнер КАК Поставщик,
    СУММА(1) КАК КоличествоНоменклатурыПоставщика,
    ВЫБОР
        КОГДА НоменклатураКонтрагентов.Ссылка ЕСТЬ NULL
            ТОГДА ИСТИНА
        ИНАЧЕ ЛОЖЬ
    КОНЕЦ КАК НетНоменклатурыПоставщика
ПОМЕСТИТЬ ВТ_Результат
ИЗ
    ВТ_ТоварыИзЗаказа КАК ВТ_ТоварыИзЗаказа
        ЛЕВОЕ СОЕДИНЕНИЕ Справочник.НоменклатураКонтрагентов КАК НоменклатураКонтрагентов
        ПО ВТ_ТоварыИзЗаказа.Номенклатура = НоменклатураКонтрагентов.Номенклатура
            И ВТ_ТоварыИзЗаказа.Ссылка.Партнер = НоменклатураКонтрагентов.Владелец
ГДЕ
    НоменклатураКонтрагентов.ПометкаУдаления = ЛОЖЬ

СГРУППИРОВАТЬ ПО
    ВТ_ТоварыИзЗаказа.Номенклатура,
    ВТ_ТоварыИзЗаказа.НомерСтроки,
    ВТ_ТоварыИзЗаказа.Ссылка,
    ВТ_ТоварыИзЗаказа.Ссылка.Партнер,
    ВЫБОР
        КОГДА НоменклатураКонтрагентов.Ссылка ЕСТЬ NULL
            ТОГДА ИСТИНА
        ИНАЧЕ ЛОЖЬ
    КОНЕЦ
;

////////////////////////////////////////////////////////////////////////////////
ВЫБРАТЬ
    ВТ_Результат.Номенклатура КАК Номенклатура,
    ВТ_Результат.НомерСтрокиВЗаказе КАК НомерСтрокиВЗаказе,
    ВТ_Результат.ЗаказПоставщику КАК ЗаказПоставщику,
    ВТ_Результат.Поставщик КАК Поставщик,
    ВЫБОР
        КОГДА ВТ_Результат.КоличествоНоменклатурыПоставщика = 1
                И ВТ_Результат.НетНоменклатурыПоставщика = ИСТИНА
            ТОГДА "Отсутствует соответствующая позиция"
        КОГДА ВТ_Результат.КоличествоНоменклатурыПоставщика = 1
                И ВТ_Результат.НетНоменклатурыПоставщика = ЛОЖЬ
            ТОГДА "Несоответствие единиц измерения"
        КОГДА ВТ_Результат.КоличествоНоменклатурыПоставщика > 1
            ТОГДА "Количество соответсвующих позиций больше одного"
    КОНЕЦ КАК ВидОшибки,
    ВЫБОР
        КОГДА ВТ_Результат.КоличествоНоменклатурыПоставщика = 1
                И ВТ_Результат.НетНоменклатурыПоставщика = ИСТИНА
            ТОГДА "Заведите в справочнике Номенклатура Контрагентов соответсвующую карточку номенклатуры"
        КОГДА ВТ_Результат.КоличествоНоменклатурыПоставщика = 1
                И ВТ_Результат.НетНоменклатурыПоставщика = ЛОЖЬ
            ТОГДА "Перепроведите документ. Если поле осталось не заполненым: а) в справочнике Номенклатура Контрагентов нет позиции с соответсвующей единицей измерения; б) в справочнике Номенклатура Контрагентов в соответсвующей позиции вместо базовой единицы измерения установлена упаковка"
        КОГДА ВТ_Результат.КоличествоНоменклатурыПоставщика > 1
            ТОГДА "Пометьте на удаление лишнюю позицию в справочнике Номенклатура Контрагентов. Перепроведите документ. Если поле осталось не заполненым: а) в справочнике Номенклатура Контрагентов нет позиции с соответсвующей единицей измерения; б) в справочнике Номенклатура Контрагентов в соответсвующей позиции вместо базовой единицы измерения установлена упаковка;"
    КОНЕЦ КАК ИсправлениеОшибки
ИЗ
    ВТ_Результат КАК ВТ_Результат
{ГДЕ
    (ВТ_Результат.ЗаказПоставщику.Дата МЕЖДУ &ДатаНачала И &ДатаОкончания)}

УПОРЯДОЧИТЬ ПО
    ВТ_Результат.ЗаказПоставщику.Дата,
    НомерСтрокиВЗаказе
Выдаёт ошибку: несоответствие типов параметра "1". В чём может быть ошибка. Пробовал передавать и массив и списокЗначений. Ошибка одна и та же.

LexaK

illyaromanenko, у меня в примере/шабблоне так задаются Параметры
НастройкиОтчета.ПараметрыДанных.УстановитьЗначениеПараметра("Дата1", Дата1);
НастройкиОтчета.ПараметрыДанных.УстановитьЗначениеПараметра("Дата2", КонецДня(Дата2));
если помогло нажмите: Спасибо!

Теги:

Похожие темы (5)

Рейтинг@Mail.ru

Поиск