Имя: Пароль:
1C
1C 7.7
v7: Условие список счетов в запросе
0 Slypower
 
14.02.19
11:51
Добрый день. Есть такой запрос

"//{{ЗАПРОС(Сформировать)
    |Период с (НачМесяца(ДатаДок)) по (КонМесяца(ДатаДок));
    |Сумма = Операция.Сумма;
    |Количество = Операция.Количество;
    |Счет = Операция.Счет;
    |КорСчет = Операция.КорСчет;
    |Материалы = Операция.Субконто.Материалы;
    |Подразделения2009 = Операция.Субконто.Подразделения2009;
    |Сотрудники = Операция.Субконто.Сотрудники;
    |ОсновныеСредства = Операция.Субконто.ОсновныеСредства;
    |КорСубконто = Операция.КорСубконто.ЭлементЗатрат;
    |Функция СуммаКО = КО(Сумма);
    |Функция КоличествоКО = КО(Количество);
    |Группировка Материалы;
    |Группировка Подразделения2009;
    |Группировка Сотрудники;
    |Группировка ОсновныеСредства;
    |Условие (Счет = Счет_10);
    |Условие (КорСубконто в СписокЭлЗатрат);
    |Условие (КорСчет  в СписокКорСчетов); //ХЗ
    |"//}}ЗАПРОС


В запрос передаю СписокКорСчетов - список счетов. Если в списке один счет, то запрос отрабатывает корректно. Если 2 и более, то пустой результат. Подскажите, как передать список счетов?
1 ZDenis
 
14.02.19
11:57
(0) СписокКорСчетов - это СписокЗначений?
2 Slypower
 
14.02.19
11:59
(1) да, список значений.
3 ZDenis
 
14.02.19
12:29
(2) А как он заполняется можно посмотреть?
4 Birmingem
 
14.02.19
12:36
Возможно в СписокЭлЗатрат нет элементов, которые относятся к другим кор.счетам из СписокКорСчетов.
5 Дмитрий
 
14.02.19
13:02
(4) или у этих корсчетов нет того корсубконто, по которому отбор
6 Slypower
 
14.02.19
13:21
СписокКорСчетов.ДобавитьЗначение(СчетПоКоду("23.1.1",ПланыСчетов.Новый));
СписокКорСчетов.ДобавитьЗначение(СчетПоКоду("23.1.2",ПланыСчетов.Новый));
СписокКорСчетов.ДобавитьЗначение(СчетПоКоду("44.2",ПланыСчетов.Новый));
(4), нет, есть там
7 ZDenis
 
14.02.19
13:29
(6) Точно знаешь, что по какому-то "Новому" плану счетов движения проходят? По идее все должно работать
8 Slypower
 
14.02.19
13:34
(7) точно знаю. Проверенно.
" Если в списке один счет, то запрос отрабатывает корректно. Если 2 и более, то пустой результат"
9 Slypower
 
14.02.19
14:15
Такое условие отработало:

Счет_44 = СчетПоКоду("44.2",ПланыСчетов.Новый);
Счет_232 = СчетПоКоду("23.1.2",ПланыСчетов.Новый);
Счет_231 = СчетПоКоду("23.1.1",ПланыСчетов.Новый);

|Условие ((КорСчет = Счет_44) или (КорСчет = Счет_231) или (КорСчет = Счет_232));
10 Slypower
 
14.02.19
14:21
Осталось понять, почему список в запросе не отрабатывает
11 Ёпрст
 
14.02.19
14:23
СписокКорСчетов- просто переменная модуля, или реквизит формы ?
12 Slypower
 
14.02.19
14:24
(11) Просто переменная модуля
СписокКорСчетов = СоздатьОбъект("СписокЗначений");
13 Ёпрст
 
14.02.19
14:25
база дбф, скуль ?
14 Ёпрст
 
14.02.19
14:26
Ну и можно еще не в, а список.Принадлежит = 1..
15 Slypower
 
14.02.19
14:27
(13) скуль
16 Slypower
 
14.02.19
14:30
(14) не отработало, пустой результат
|Условие (СписокКорСчетов.Принадлежит(КорСчет) = 1);
17 ZDenis
 
14.02.19
14:33
(16) может у тебя где-то перетирается "СписокКорСчетов" после заполнения и до запроса?
18 Slypower
 
14.02.19
14:37
(17) )))))нет, ни в глобальном модуле, ни в модуле формы больше нигде не встречается.
19 Ёпрст
 
14.02.19
14:59
(15) ну, пробуй
Запрос.ВключитьSQL(0)
или 1..не помню. Будет работать, но скорость упадёт
20 Slypower
 
14.02.19
15:02
(19) Скорость Запроса в разы упала, но результат тот же, пусто((((
На текущий день решение из (9) мне подходит, но если начнут добавлять счета, проще в список запихнуть, чем текст запроса увеличивать. Проще, в смысле, читабельнее
Я не хочу быть самым богатым человеком на кладбище. Засыпать с чувством, что за день я сделал какую-нибудь потрясающую вещь — вот что меня интересует. Стив Джобс