Имя: Пароль:
1C
 
УТ 11 не хватает остатков по организации. Не работает запрос.
0 evorle145
 
24.05.21
15:01
Господа, я встрял.

Пишу такой проверочный запрос:
Запрос1.Текст =
        "ВЫБРАТЬ
        |    Остатки.Организация КАК Организация,
        |    Остатки.АналитикаУчетаНоменклатуры КАК АналитикаУчетаНоменклатуры,
        |    Остатки.ВидЗапасов КАК ВидЗапасов,
        |    Остатки.НомерГТД КАК НомерГТД,
        |    Остатки.КоличествоОстаток КАК КоличествоОстаток
        |ИЗ
        |    РегистрНакопления.ТоварыОрганизаций.Остатки(&Граница20210531, АналитикаУчетаНоменклатуры В (&АналитикаУчетаНоменклатуры)) КАК Остатки";

где АналитикаУчетаНоменклатуры - это тестируемый массив (состоит из 3 элементов) и все отлично, остатки показывает правильные по всем 3-ем элементам, все хорошо.

Но если этот запрос написать так:
"ВЫБРАТЬ
        |        Остатки.Организация КАК Организация,
        |        Остатки.АналитикаУчетаНоменклатуры КАК АналитикаУчетаНоменклатуры,
        |        Остатки.ВидЗапасов КАК ВидЗапасов,
        |        Остатки.НомерГТД КАК НомерГТД,
        |        Остатки.КоличествоОстаток КАК КоличествоОстаток
        |    ИЗ
        |        РегистрНакопления.ТоварыОрганизаций.Остатки(&Граница20210531,
        |                (АналитикаУчетаНоменклатуры  ) В
        |                    (ВЫБРАТЬ
        |                        ВТОтборы.АналитикаУчетаНоменклатуры
        |                    ИЗ
        |                        ВТОтборыОстатковОрганизаций КАК ВТОтборы)) КАК Остатки";

где в таблице ВТОтборыОстатковОрганизаций  100% есть эти 3 элемента (отладчик их показывает, то происходит чудо: остатки по 2-ум позициям становятся равны 0, а по 3-ей позиции остаток верный...

Как такое может быть?
1 polosov
 
24.05.21
15:09
(0) Граница20210531 точно правильно задано?
2 evorle145
 
24.05.21
15:13
(1) Граница20210531 - в обоих случаях задана одинаково. Запрос взят и упрощен из запроса от разработчика. Там этот параметр имеет значение Неопределено.
3 evorle145
 
24.05.21
15:16
Переписал запрос так:

"ВЫБРАТЬ
        |    Остатки.Организация КАК Организация,
        |    Остатки.АналитикаУчетаНоменклатуры КАК АналитикаУчетаНоменклатуры,
        |    Остатки.ВидЗапасов КАК ВидЗапасов,
        |    Остатки.НомерГТД КАК НомерГТД,
        |    Остатки.КоличествоОстаток КАК КоличествоОстаток
        |ИЗ
        |    РегистрНакопления.ТоварыОрганизаций.Остатки(&Граница20210531, ) КАК Остатки
        |        ВНУТРЕННЕЕ СОЕДИНЕНИЕ (ВЫБРАТЬ
        |            ВТОтборыОстатковОрганизаций.АналитикаУчетаНоменклатуры КАК АналитикаУчетаНоменклатуры
        |        ИЗ
        |            ВТОтборыОстатковОрганизаций КАК ВТОтборыОстатковОрганизаций) КАК ВложенныйЗапрос
        |        ПО Остатки.АналитикаУчетаНоменклатуры = ВложенныйЗапрос.АналитикаУчетаНоменклатуры";


в итоге опять 1 элементу верный остаток, по другим 0. Может пересчет /реструктуризацию сделать?
4 Dmitrii
 
гуру
24.05.21
15:20
Вероятнее всего, утверждение "в таблице ВТОтборыОстатковОрганизаций  100% есть эти 3 элемента" неверно.

Соедини эти два запроса полным соединением и увидишь разницу.
5 evorle145
 
24.05.21
15:24
(4) реально... не понял как так... смотрю..
6 evorle145
 
24.05.21
15:34
так. Когда я в отладчике открываю элемент, то он имеет
ВерсияДанных    "AAAAAAADUF4="
Когда я через запрос открываю элемент, то имеет
ВерсияДанных    "AAAAAAACpnc="

то есть все реквизиты этого элемента совпадают, кроме версии данных. В справочнике я вижу только один элемент.. Но в запросе как будто два разных
7 evorle145
 
24.05.21
16:19
все разобрался. Ключ аналитики был пустой в документе, в момент проведения его 1с создавала в транзакции, и я его видел и думал, что это тот же ключ, а на самом деле это не он.
8 evorle145
 
24.05.21
16:29
то есть в момент проведения создавался ключ аналитики, и по нему шел отбор в регистрах. Разумеется движения прихода были на других ключах. То есть просто в доработанном документе был утрачен этот реквизит. Созданный но не записанный в базу данных ключ аналитики ничем не отличался от правильного (на котором остатки висят) кроме версииДанных, поэтому я полдня и не мог понять в чем дело))
Компьютер — устройство, разработанное для ускорения и автоматизации человеческих ошибок.