Имя: Пароль:
1C
1С v8
Выполнение запроса
☑
0 Pusto32
 
05.11.26
✎
06:22
ДатаЗапроса = КонецДня(Объект.ДатаНач);
    Пока ДатаЗапроса < КонецДня(Объект.ДатаКон)+1 Цикл
        
        Сообщить("Формируем запрос ...");
        
        ТЗТабл = Новый ТаблицаЗначений;
        ТЗТабл.Очистить();
        
        Запрос = Новый Запрос;
        Запрос.Текст =
        
         "ВЫБРАТЬ
         |    ВзаиморасчетыСКонтрагентамиТорг.Период,
         |    ВзаиморасчетыСКонтрагентамиТорг.Регистратор КАК Док,
         |    ВзаиморасчетыСКонтрагентамиТорг.Организация КАК Филиал,
         |    ВзаиморасчетыСКонтрагентамиТорг.Контрагент,
         |    ВзаиморасчетыСКонтрагентамиТорг.ДоговорКонтрагента,
         |    ВзаиморасчетыСКонтрагентамиТорг.Поставщик КАК Бренд,
         |    ВзаиморасчетыСКонтрагентамиТорг.Сумма
         |ИЗ
         |    РегистрНакопления.ВзаиморасчетыСКонтрагентамиТорг КАК ВзаиморасчетыСКонтрагентамиТорг
         |ГДЕ
         |    ВзаиморасчетыСКонтрагентамиТорг.Организация В(&СписокКомпаний)
         |    И ВзаиморасчетыСКонтрагентамиТорг.Контрагент В(&СписокКлиентов)
         //|    И ВзаиморасчетыСКонтрагентамиТорг.Период = &ДатаЗапроса
         |
         |СГРУППИРОВАТЬ ПО
         |    ВзаиморасчетыСКонтрагентамиТорг.Регистратор,
         |    ВзаиморасчетыСКонтрагентамиТорг.ДоговорКонтрагента,
         |    ВзаиморасчетыСКонтрагентамиТорг.Контрагент,
         |    ВзаиморасчетыСКонтрагентамиТорг.Поставщик,
         |    ВзаиморасчетыСКонтрагентамиТорг.Организация,
         |    ВзаиморасчетыСКонтрагентамиТорг.Период,
         |    ВзаиморасчетыСКонтрагентамиТорг.Сумма";
        
        ТЗТабл = Запрос.Выполнить().Выгрузить();
        
        ДатаЗапроса = КонецДня(ДатаЗапроса+1);
    КонецЦикла;


Через отладчик выдает "{(1)}: Ошибка при вызове метода контекста (Выполнить)"

Причем на форме СписокКомпаний и СписокКлиентов заполнены.

Переде запуском Запроса проверяю.
    Сообщить("Начало ...");
    Сообщить("Список филиалов - " + СписокКомпаний.Количество());
    Сообщить("Список клиентов - " + СписокКлиентов.Количество());

Результат:

Список филиалов - 1
Список клиентов 1414.

В консоли запроса все работает. В параметрах задал Список филиалов и в список клиентов внес одного клиента из списка.

Почему в консоли работает а так нет?
1 Asmody
 
05.11.26
✎
07:05
(0) он тебе заранее намекает, что за запрос в цикле тебя уволят
2 Гипервизор
 
05.11.26
✎
07:11
(0) Потому что в консоли "в параметрах задал". А в коде установку параметров запроса не вижу.
3 Pusto32
 
05.11.26
✎
07:33
(2) Спасибо
4 Pusto32
 
05.11.26
✎
07:47
Как мне в запросе указать условие для ВзаиморасчетыСКонтрагентамиТорг по Регистратору на вид документа?
5 Pusto32
 
05.11.26
✎
07:48
Не хочется результат отбора перебирать на нужный вид документа
6 Мультук
 
гуру
05.11.26
✎
08:04
(5)

1) В школьных букварях сейчас SQL совсем не проходят?
2) На эти вопросы вполне отвечают, как google, так и любой ИИ.
Даже бесплатный

Пример:
Google:
1с запрос отбор по типу документа

3)
Моя ты радость (с)


     |СГРУППИРОВАТЬ ПО
         |    ВзаиморасчетыСКонтрагентамиТорг.Регистратор,
         |    ВзаиморасчетыСКонтрагентамиТорг.ДоговорКонтрагента,
         |    ВзаиморасчетыСКонтрагентамиТорг.Контрагент,
         |    ВзаиморасчетыСКонтрагентамиТорг.Поставщик,
         |    ВзаиморасчетыСКонтрагентамиТорг.Организация,
         |    ВзаиморасчетыСКонтрагентамиТорг.Период,
         |    ВзаиморасчетыСКонтрагентамиТорг.Сумма";
7 spiller26
 
05.11.26
✎
08:36
Это что за запрос? Что в итоге хотите получить? Что за реализация через цикл?
Компьютеры — это как велосипед. Только для нашего сознания. Стив Джобс