Вход | Регистрация

1С:Предприятие ::

Метки: 

разное поведение запроса в консоли и в обработке

Я
   vde69
 
16.10.17 - 11:21
ОБЫЧНЫЕ формы, есть простая процедура (см ниже) выдает задвоеный результат, ровно в 2 раза больше чем надо...

запрос скопированный в консоль запросов возвращает валидный результат (правильный). Кеш чистил, бух итоги пересчитывал... Если обработку сохранить во внешнюю то то же имеем задвоенный результат.

Куда копать?



//!

Процедура мЗаполнить(мТД)
    
    
    // получим данные

    Для Каждого мНастройки из НастрокаДокументов Цикл

        мДокументы = РегистрыСведений.АвтоматическиеДокументы.ПолучитьДокументыПериода(
                                        Перечисления.ВидыАвтоматическихДокументов.СверткаОператоров, 
                                        мНастройки.ПериодАвтоматизацииНач, 
                                        мНастройки.ПериодАвтоматизацииКон);
        
        Запрос = Новый Запрос(
        "ВЫБРАТЬ
        |    ВложенныйЗапрос.Счет,
        |    ВложенныйЗапрос.КонтрагентД.ГоловнойКонтрагент КАК КонтрагентГО,
        |    ВложенныйЗапрос.КонтрагентД.ОсновнойДоговорКонтрагента КАК ДоговорГО,
        |    ВложенныйЗапрос.КонтрагентД КАК КонтрагентО,
        |    ВложенныйЗапрос.ДоговорД КАК ДоговорО,
        |    ВложенныйЗапрос.Валюта,
        |    ВложенныйЗапрос.Сумма,
        |    ВложенныйЗапрос.ВалютнаяСумма,
        |    ИСТИНА КАК Пометка
        |ИЗ
        |    (ВЫБРАТЬ
        |        ТиповойОстаткиИОбороты.Счет КАК Счет,
        |        ТиповойОстаткиИОбороты.Субконто1 КАК КонтрагентД,
        |        ТиповойОстаткиИОбороты.Субконто2 КАК ДоговорД,
        |        ТиповойОстаткиИОбороты.Валюта КАК Валюта,
        |        СУММА(ТиповойОстаткиИОбороты.СуммаКонечныйРазвернутыйОстатокКт) КАК Сумма,
        |        СУММА(ТиповойОстаткиИОбороты.ВалютнаяСуммаКонечныйРазвернутыйОстатокКт) КАК ВалютнаяСумма
        |    ИЗ
        |        РегистрБухгалтерии.Типовой.ОстаткиИОбороты(
        |                ,
        |                &Дата,
        |                Регистратор,
        |                ДвиженияИГраницыПериода,
        |                Счет = &Счет,
        |                ,
        |                Субконто1.ЮрФизЛицо = ЗНАЧЕНИЕ(Перечисление.ЮрФизЛицо.Оператор)
        |                    И НЕ Субконто1.ГоловнойКонтрагент.Ссылка ЕСТЬ NULL
        |                    И Организация = &Организация) КАК ТиповойОстаткиИОбороты
        |    ГДЕ
        |        НЕ ТиповойОстаткиИОбороты.Регистратор В (&Документы)
        |    
        |    СГРУППИРОВАТЬ ПО
        |        ТиповойОстаткиИОбороты.Счет,
        |        ТиповойОстаткиИОбороты.Субконто1,
        |        ТиповойОстаткиИОбороты.Субконто2,
        |        ТиповойОстаткиИОбороты.Валюта) КАК ВложенныйЗапрос
        |ГДЕ
        |    НЕ(ВложенныйЗапрос.Сумма < 0
        |                ИЛИ ВложенныйЗапрос.ВалютнаяСумма < 0
        |                ИЛИ ВложенныйЗапрос.Сумма = 0
        |                    И ВложенныйЗапрос.ВалютнаяСумма = 0)");
        
        Запрос.УстановитьПараметр("Организация", Организация);
        Запрос.УстановитьПараметр("Счет", мНастройки.Счет);
        Запрос.УстановитьПараметр("Дата", КонецДня(мНастройки.ПериодАвтоматизацииКон));
        Запрос.УстановитьПараметр("Документы", мДокументы);
        
        Выборка = Запрос.Выполнить().Выбрать();
        Пока Выборка.Следующий() Цикл 
            НоваяСтрока = мТД.Добавить();
            ЗаполнитьЗначенияСвойств(НоваяСтрока, Выборка);
            ПроверкаСтроки(НоваяСтрока);
        КонецЦикла;
    КонецЦикла;
    
КонецПроцедуры
 
 
   Ёпрст
 
1 - 16.10.17 - 11:28
счет в иерархии ?

А так, параметры сымотри
   DrShad
 
2 - 16.10.17 - 11:30
а вообще запрос странный, зачем ОстаткиИОбороты да еще и периодичность Регистратор?
   vde69
 
Модератор
3 - 16.10.17 - 11:31
(1) параметры идентичные акромя одного
в обработке "Документы" - пустой массив, в консоле - неопределено

счет не содержит суб счетов
   DrShad
 
4 - 16.10.17 - 11:32
сорри  не заметил условия
   vde69
 
Модератор
5 - 16.10.17 - 11:32
(2) мне нужно исключить обороты по регламентным документам, тут или делать два запроса и потом вычитать, или так...
   Ёпрст
 
6 - 16.10.17 - 11:32
(3) а чего регистратор унутрь вт не положишь ?
И зачем обороты с начала ведения базы ?
   DrShad
 
7 - 16.10.17 - 11:35
ПроверкаСтроки(НоваяСтрока)

а тут что?
   vde69
 
8 - 16.10.17 - 11:35
(6) это не начало ведения учета, это ежемесячная обработка которая сворачивает дебиторку операторов на головного оператора и на его основной договор.
   vde69
 
9 - 16.10.17 - 11:36
(7) это не в счет, я смотрел результат запроса - задваивает еще до цикла
   DrShad
 
10 - 16.10.17 - 11:37
ну хоть скрины кинь, а то не верим
 
 Рекламное место пустует
   vde69
 
11 - 16.10.17 - 11:46
короче дело в параметре "Документы"

в консоле запросов:
 если этот параметр ставлю неопределено - результат верный
 если тип массив (пустой) - результат задвоен

кто может объяснить такое поведение?
   Ёпрст
 
12 - 16.10.17 - 11:52
(8) у тя же нет начальной даты.
Обороты и итоги будут с начала всех времён до конечной даты
   vvp91
 
13 - 16.10.17 - 11:53
(11) В выборке присутствуют записи без регистратора, т.е. такие записи, в которых регистратор равен Неопределено.

Условие <НЕ Регистратор В (Неопределено)> выкинет такие записи.

Условие <НЕ Регистратор В (&ПустойМассив)> такие записи оставит.
   vde69
 
14 - 16.10.17 - 12:00
(13) действительно !!! буду копать в эту сторону
   vde69
 
15 - 16.10.17 - 12:02
добавил метод дополнения "Движения" вроде теперь похоже на правду стало


Список тем форума
Рекламное место пустует Рекламное место пустует
ВНИМАНИЕ! Если вы потеряли окно ввода сообщения, нажмите Ctrl-F5 или Ctrl-R или кнопку "Обновить" в браузере.
Тема не обновлялась длительное время, и была помечена как архивная. Добавление сообщений невозможно.
Но вы можете создать новую ветку и вам обязательно ответят!
Каждый час на Волшебном форуме бывает более 2000 человек.
Рекламное место пустует