8.х Как в запрос скд передать параметр - список значений

Тема в разделе "Отчеты и обработки для "1С:Предприятие 8"", создана пользователем desintegrer, 26 сен 2013.

  1. TopicStarter Overlay
    desintegrer
    Offline

    desintegrer Опытный в 1С

    Регистрация:
    11 май 2011
    Сообщения:
    377
    Симпатии:
    0
    Баллы:
    26
    Здравствуйте.

    Подскажите , не получается разобраться :

    есть отчетн на скд

    когда в условии запроса
    где
    отбор = значение - эта ситуация понятна

    а когда в запросе отбор по нескольким значениям то как это можно сделать


    Код:
    ГДЕ
    РеализацияТоваровУслугТовары.Номенклатура.ВидПродукции В (&ВидПродукции)

    т.е. есть табличная часть документа из которой в цикле выбираются виды продукции по которым делается запрос

    затем эти виды передаются в парметрСКД и формируется отчет.

    Код:
    ПараметрВидПродукции = Новый ПараметрКомпоновкиДанных("ВидПродукции");
    
    СписокЗначенийВидПродукции = Новый СписокЗначений;
    Для Каждого Стр Из СсылкаНаОбъект.Товары Цикл
    
    СписокЗначенийВидПродукции.Добавить(Стр.Номенклатура.ВидПродукции);
    
    КонецЦикла;
    
    ЗначениеПараметраВидПродукции = КомпоновщикНастроек.Настройки.ПараметрыДанных.НайтиЗначениеПараметра(ПараметрВидПродукции);
    
    
    УказанВидПродукции = Стр.Номенклатура.ВидПродукции;
    Если  Не ЗначениеЗаполнено(УказанВидПродукции)  Тогда
    //*******************************************************************
    Иначе
    //ЗначениеПараметраВидПродукции.Значение = Стр.Номенклатура.ВидПродукции;
    ЗначениеПараметраВидПродукции.Значение = СписокЗначенийВидПродукции;
    КонецЕсли;
    
    ЗначениеПараметраВидПродукции.Использование = Истина;
    
  2. Yuriy_Alexandrovich
    Offline

    Yuriy_Alexandrovich Профессионал в 1С Команда форума

    Регистрация:
    15 сен 2011
    Сообщения:
    1.275
    Симпатии:
    76
    Баллы:
    54
    В параметрах есть возможность, поставить галку "Доступен список" и заполнить "Значение", и донастроить доступность

    это если речь о СКД созданным не программно
  3. shurikvz
    Offline

    shurikvz Модераторы Команда форума Модератор

    Регистрация:
    1 окт 2009
    Сообщения:
    8.410
    Симпатии:
    316
    Баллы:
    104
    Чет вообще все слабо понял.

    1) А где в коде устанавливается вид сравнения?
    2) "УказанВидПродукции = Стр.Номенклатура.ВидПродукции;" - ну работать то я думаю будет. 1С такая 1С. Только как-то криво это на мой взгляд: использование локальной переменной цикла за пределами цикла.
    3) А зачем в скд передавать список видов продукции? (насколько понимаю они берутся из ТЧ СсылкаНаОбъект, так почему бы в запрос не передать саму ссылку на объект, и в самом запросе не сделать выборку из ТЧ?)
  4. nbIpKuH_BaH9I
    Offline

    nbIpKuH_BaH9I Модераторы Команда форума Модератор

    Регистрация:
    16 сен 2009
    Сообщения:
    6.990
    Симпатии:
    399
    Баллы:
    104
    По всем пунктам полностью поддерживаю предыдущего оратора. Плюс добавлю от себя. В запросе можно сделать практически все. Хоть в 1С и урезан язык запросов, все равно этого хватает. Короче, переписывайте сам запрос. И не будете париться с параметрами и нелепыми циклами.

Поделиться этой страницей