Разный остаток на конец периода Виртуальных Таблиц Остатки и ОстаткиИОбороты регистра ТоварыНаСкладах

1. svezr 5 27.02.17 10:51 Сейчас в теме
Доброго времени суток, уважаемые.
УТ 11.2. Переписанная-перекопанная, но в регистр ТоварыНаСкладах все пишется только штатными документами.
1С:Предприятие 8.3.8.1933.
Режим: Серверный (сжатие: усиленное)

Столкнулся с непонятными для меня результатами запроса к регистру ТоварыНаСкладах.
Параметры одинаковые, но остаток на конец периода разный. В случае запроса ВТ ОстаткиИОбороты на 1 меньше. Подозреваю, что проблема в документе "Оприходование излишков товаров", но куда конкретно копать - идей нет, вроде все прозрачно. Прошу помощи.

Более того, смущает отсутствующая ссылка на регистратор в результате работы запроса к ВТ ОстаткиИОбороты. Тестирование и исправление запускалось, ошибок не находит. Прикрепляю скриншоты с параметрами и результатами работы.
Подробнее

Всем добра.
Прикрепленные файлы:
По теме из базы знаний
Найденные решения
9. vadim1011985 100 28.02.17 10:55 Сейчас в теме
(7) это почему он включит документы с временем 00.00.00 ? По вашей логике тогда он должен был включить документы 23.59.59 если мы так передадим дату 23.59.59 , вообще в данном случае я дату передаю через параметр запроса и для этого дела используется объект Граница
ДатаОстатков = новый Граница (КонецДня(КонецПериода), видГраницы.включая)

(6) да и по первому пункту должно быть стыдно - это же азы программирования в 1с которые нужно знать
alex-l19041; svezr; +2 Ответить
3. Turn123 18 27.02.17 12:37 Сейчас в теме
(1) При обращение к вирт. таблицы остатки, конечная дата не включается в расчет остатков.

то есть остатки получаются без учета последний даты (грубо говоря 23:59:59)
4. Dnki 4 27.02.17 22:35 Сейчас в теме
1) Действительно, если в запросе к таблице "Остатки" задаем дату выражением КОНЕЦПЕРИОДА(&ДатаКон, ДЕНЬ), то оно вернет время 23.59.59. А запрос возьмет данные "к этому времени", т.е. не включая секунду. Как предложение писать так:
РегистрНакопления.ХХХХ.Остатки(ДОБАВИТЬКДАТЕ(КОНЕЦПЕРИОДА(&ДатаКон, ДЕНЬ), СЕКУНДА, 1), )


2) При обращении к регистру допустили классическую детскую ошибку: условия отбора нужно указывать не через "ГДЕ", а в параметрах таблицы:
РегистрНакопления.ТоварыНаСкладах.ОстаткиИОбороты(НАЧАЛОПЕРИОДА(&ПараметрДатаСтарт, ДЕНЬ), КОНЕЦПЕРИОДА(&ПараметрДатаКон, ДЕНЬ), 
                                                                                                        Регистратор, ДвиженияИГраницыПериода, Номенклатура = &ПараметрНоменклатура
    И Склад = &ПараметрСклад)



3) ТоварыНаСкладахОстаткиИОбороты.Номенклатура - это ссылка и добавлять к нему ".Ссылка" не нужно.
Остальные ответы
Подписаться на ответы Инфостарт бот Сортировка: Древо развёрнутое
Свернуть все
2. alex-l19041 8 27.02.17 12:33 Сейчас в теме
(1) измените время возврата поставщику на 23:59:58
3. Turn123 18 27.02.17 12:37 Сейчас в теме
(1) При обращение к вирт. таблицы остатки, конечная дата не включается в расчет остатков.

то есть остатки получаются без учета последний даты (грубо говоря 23:59:59)
4. Dnki 4 27.02.17 22:35 Сейчас в теме
1) Действительно, если в запросе к таблице "Остатки" задаем дату выражением КОНЕЦПЕРИОДА(&ДатаКон, ДЕНЬ), то оно вернет время 23.59.59. А запрос возьмет данные "к этому времени", т.е. не включая секунду. Как предложение писать так:
РегистрНакопления.ХХХХ.Остатки(ДОБАВИТЬКДАТЕ(КОНЕЦПЕРИОДА(&ДатаКон, ДЕНЬ), СЕКУНДА, 1), )


2) При обращении к регистру допустили классическую детскую ошибку: условия отбора нужно указывать не через "ГДЕ", а в параметрах таблицы:
РегистрНакопления.ТоварыНаСкладах.ОстаткиИОбороты(НАЧАЛОПЕРИОДА(&ПараметрДатаСтарт, ДЕНЬ), КОНЕЦПЕРИОДА(&ПараметрДатаКон, ДЕНЬ), 
                                                                                                        Регистратор, ДвиженияИГраницыПериода, Номенклатура = &ПараметрНоменклатура
    И Склад = &ПараметрСклад)



3) ТоварыНаСкладахОстаткиИОбороты.Номенклатура - это ссылка и добавлять к нему ".Ссылка" не нужно.
6. svezr 5 28.02.17 09:06 Сейчас в теме
(4) Спасибо за ответ. По поводу 2 пункта - проглядел, накидал на автомате, стыдно).
7. ZergKRSK 129 28.02.17 10:39 Сейчас в теме
(6) я бы НЕ прибавлял секунду т.к. получится время 00:00:00 следующих суток м если в это время есть документы - они также попадут в остатки что искривляет истинное состояние.
8. svezr 5 28.02.17 10:46 Сейчас в теме
(7)
Но ведь если использовать ВТ РегистрНакопления.ТоварыНаСкладах.Остатки, то об этом можно не беспокоиться?
9. vadim1011985 100 28.02.17 10:55 Сейчас в теме
(7) это почему он включит документы с временем 00.00.00 ? По вашей логике тогда он должен был включить документы 23.59.59 если мы так передадим дату 23.59.59 , вообще в данном случае я дату передаю через параметр запроса и для этого дела используется объект Граница
ДатаОстатков = новый Граница (КонецДня(КонецПериода), видГраницы.включая)

(6) да и по первому пункту должно быть стыдно - это же азы программирования в 1с которые нужно знать
alex-l19041; svezr; +2 Ответить
10. svezr 5 28.02.17 11:02 Сейчас в теме
(9)
Все когда-то начинают свой путь. Азы еще усваиваются.

Спасибо вам за ответ.

Наверное, использование объекта Граница будет логичней.
5. ZergKRSK 129 28.02.17 07:35 Сейчас в теме
Чтобы Остатки видели 23:59:59 надо использовать Границу.
Оставьте свое сообщение

Для получения уведомлений об ответах подключите телеграм бот:
Инфостарт бот