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

Как передать значение реквизита с типом СписокЗначений в параметр запроса

Автор Zz89, 01 мая 2015, 10:50

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

Zz89

Помогите!Нет совсем опыта в 1С программировании, только начинаю и пока путаюсь.
На форме разместил реквизит с именем Отдел и типом СписокЗначений, тип значения СправочникСсылка.Отделы.
Как передать выбранные значения реквизита в Запрос:
Запрос = Новый Запрос;
    Запрос.Текст =
     "
     |         ВЫБРАТЬ
     |             dbo_federal_packets.id_otdel как  id_otdel,
     |            dbo_federal_packets.id_operator КАК id_operator,
      |            КОЛИЧЕСТВО(dbo_federal_packets.id_key) КАК id_key
     |         ИЗ
     |            ВнешнийИсточникДанных.Проба.Таблица.dbo_Federal_Packets КАК dbo_federal_packets
     |         ГДЕ
     |            НАЧАЛОПЕРИОДА(dbo_federal_packets.date_, ДЕНЬ) МЕЖДУ &ДатаНачала и &ДатаОкончания   
     |            И dbo_federal_packets.type_ = 2
     |            И dbo_federal_packets.id_otdel IN(&otdel)
     |    СГРУППИРОВАТЬ ПО
     |     id_otdel , id_operator
     |    ИТОГИ
     |      КОЛИЧЕСТВО(id_key)
     |ПО
     | Общие,
     | id_otdel";

Т.е я так понимаю нужно значения реквизита поместить в массив, но как их получить?!




Дмитрий@

Массив = Новый массив;
Для каждого Элемент Из СписокЗначений Цикл
    Массив.Добавить(Элемент.Значение);
КонецЦикла;

cska-fanat-kz

СписокЗначений (ValueList)
ВыгрузитьЗначения (UnloadValues)
Синтаксис:

ВыгрузитьЗначения()
Возвращаемое значение:

Тип: Массив.

Описание:

Создает массив и копирует в него значения элементов списка значений.

Доступность:

Тонкий клиент, веб-клиент, сервер, толстый клиент, внешнее соединение.
Пример:

МассивЭлементов = СписокТиповЦен.ВыгрузитьЗначения();

Получил помощь - скажи СПАСИБО.
Разобрался сам - расскажи другим.

Zz89

Спасибо за ответы, список значений я получаю:
МассивОтделы = Новый Массив;
МассивОтделы = Отдел.ВыгрузитьЗначения();

Извините, я не правильно сформировал свой вопрос. У реквизита формы Отдел с типом СписокЗначений тип значений ]СправочникСсылка.Отделы[/b]. Мне нужно в параметр вставить реквизит справочника Отделы НомерОтдела, в со[bответствии с СпискомЗначений реквизита формы Отдел. Подскажите как это сделать? 

cska-fanat-kz

Цитата: Zz89 от 05 мая 2015, 08:27
Спасибо за ответы, список значений я получаю:
МассивОтделы = Новый Массив;
МассивОтделы = Отдел.ВыгрузитьЗначения();

Извините, я не правильно сформировал свой вопрос. У реквизита формы Отдел с типом СписокЗначений тип значений ]СправочникСсылка.Отделы[/b]. Мне нужно в параметр вставить реквизит справочника Отделы НомерОтдела, в со[bответствии с СпискомЗначений реквизита формы Отдел. Подскажите как это сделать? 

Ну тогда как Дмитрий@ написал. С небольшой поправкой... Угадайте какой ;)
Получил помощь - скажи СПАСИБО.
Разобрался сам - расскажи другим.

Zz89

Спасибо большое получилось, наверно правда как-то каряво :D

         МассивОтделы = Новый Массив;
    МассивОтделы = Отдел.ВыгрузитьЗначения();
    МассивНомераОтделов = Новый Массив;
    Для каждого ОтделСсылка Из МассивОтделы Цикл
       МассивНомераОтделов.Добавить(ОтделСсылка.ИДСкат);
    КонецЦикла;
   
    Макет = Отчеты.ОтчетПоОператорам3.ПолучитьМакет("Макет");
    Запрос = Новый Запрос;
    Запрос.Текст =
     "
     |         ВЫБРАТЬ
     |             dbo_federal_packets.id_otdel как  id_otdel,
     |            dbo_federal_packets.id_operator КАК id_operator,
      |            КОЛИЧЕСТВО(dbo_federal_packets.id_key) КАК id_key
     |         ИЗ
     |            ВнешнийИсточникДанных.Проба.Таблица.dbo_Federal_Packets КАК dbo_federal_packets
     |         ГДЕ
     |            НАЧАЛОПЕРИОДА(dbo_federal_packets.date_, ДЕНЬ) МЕЖДУ &ДатаНачала и &ДатаОкончания   
     |            И dbo_federal_packets.type_ = 2
     |            И dbo_federal_packets.id_otdel IN(&otdel)
     |    СГРУППИРОВАТЬ ПО
     |     id_otdel , id_operator
     |    ИТОГИ
     |      КОЛИЧЕСТВО(id_key)
     |ПО
     | Общие,
     | id_otdel";

    
     Запрос.УстановитьПараметр("ДатаНачала",ДатаНачала);
     Запрос.УстановитьПараметр("ДатаОкончания",ДатаОкончания);
     Запрос.УстановитьПараметр("otdel",МассивНомераОтделов);

cska-fanat-kz

МассивНомеровОтделов = Новый массив;
Для каждого Элемент Из СписокЗначений Цикл
    МассивНомеровОтделов.Добавить(Элемент.Значение.ИДСкат);
КонецЦикла;
Получил помощь - скажи СПАСИБО.
Разобрался сам - расскажи другим.

Теги:

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

Рейтинг@Mail.ru

Поиск