Разный остаток на конец периода Виртуальных Таблиц Остатки и ОстаткиИОбороты регистра ТоварыНаСкладах
Доброго времени суток, уважаемые.
УТ 11.2. Переписанная-перекопанная, но в регистр ТоварыНаСкладах все пишется только штатными документами.
1С:Предприятие 8.3.8.1933.
Режим: Серверный (сжатие: усиленное)
Столкнулся с непонятными для меня результатами запроса к регистру ТоварыНаСкладах.
Параметры одинаковые, но остаток на конец периода разный. В случае запроса ВТ ОстаткиИОбороты на 1 меньше. Подозреваю, что проблема в документе "Оприходование излишков товаров", но куда конкретно копать - идей нет, вроде все прозрачно. Прошу помощи.
Более того, смущает отсутствующая ссылка на регистратор в результате работы запроса к ВТ ОстаткиИОбороты. Тестирование и исправление запускалось, ошибок не находит. Прикрепляю скриншоты с параметрами и результатами работы.
Всем добра.
УТ 11.2. Переписанная-перекопанная, но в регистр ТоварыНаСкладах все пишется только штатными документами.
1С:Предприятие 8.3.8.1933.
Режим: Серверный (сжатие: усиленное)
Столкнулся с непонятными для меня результатами запроса к регистру ТоварыНаСкладах.
Параметры одинаковые, но остаток на конец периода разный. В случае запроса ВТ ОстаткиИОбороты на 1 меньше. Подозреваю, что проблема в документе "Оприходование излишков товаров", но куда конкретно копать - идей нет, вроде все прозрачно. Прошу помощи.
Более того, смущает отсутствующая ссылка на регистратор в результате работы запроса к ВТ ОстаткиИОбороты. Тестирование и исправление запускалось, ошибок не находит. Прикрепляю скриншоты с параметрами и результатами работы.
Подробнее |
---|
1. Текст запроса к ВТ Остатки:
ВЫБРАТЬ
ТоварыНаСкладахОстатки.Номенклатура.Ссылка КАК НоменклатураСсылка,
ТоварыНаСкладахОстатки.ВНаличииОстаток КАК ВНаличииОстаток
ИЗ
РегистрНакопления.ТоварыНаСкладах.Остатки(КОНЕЦПЕРИОДА(&Дата, ДЕНЬ), ) КАК ТоварыНаСкладахОстатки
ГДЕ
ТоварыНаСкладахОстатки.Номенклатура.Ссылка = &ПараметрНоменклатура
И ТоварыНаСкладахОстатки.Склад.Ссылка = &ПараметрСклад
ПоказатьПараметры: &Дата = 31.01.2017 23:59:59 &ПараметрНоменклатура = "Печерский заварной..." &ПараметрСклад = "11..." 2 Текст запроса к ВТ ВЫБРАТЬ
ТоварыНаСкладахОстаткиИОбороты.ВНаличииНачальныйОстаток КАК ВНаличииНачальныйОстаток,
ТоварыНаСкладахОстаткиИОбороты.ВНаличииПриход КАК ВНаличииПриход,
ТоварыНаСкладахОстаткиИОбороты.ВНаличииРасход КАК ВНаличииРасход,
ТоварыНаСкладахОстаткиИОбороты.ВНаличииОборот КАК ВНаличииОборот,
ТоварыНаСкладахОстаткиИОбороты.ВНаличииКонечныйОстаток КАК ВНаличииКонечныйОстаток,
ТоварыНаСкладахОстаткиИОбороты.Регистратор.Ссылка КАК РегистраторСсылка,
ТоварыНаСкладахОстаткиИОбороты.Регистратор.Дата КАК РегистраторДата
ИЗ
РегистрНакопления.ТоварыНаСкладах.ОстаткиИОбороты(НАЧАЛОПЕРИОДА(&ПараметрДатаСтарт, ДЕНЬ),
КОНЕЦПЕРИОДА(&ПараметрДатаКон, ДЕНЬ),
Регистратор, ДвиженияИГраницыПериода, ) КАК ТоварыНаСкладахОстаткиИОбороты
ГДЕ
ТоварыНаСкладахОстаткиИОбороты.Номенклатура.Ссылка = &ПараметрНоменклатура
И ТоварыНаСкладахОстаткиИОбороты.Склад.Ссылка = &ПараметрСклад
УПОРЯДОЧИТЬ ПО
РегистраторДата ПоказатьПараметры: &ПараметрДатаСтарт = 31.01.2017 00:00:00 &ПараметрДатаКон = 31.01.2017 23:59:59 &ПараметрНоменклатура = "Печерский заварной..." &ПараметрСклад = "11..." |
Всем добра.
Прикрепленные файлы:
По теме из базы знаний
Найденные решения
(7) это почему он включит документы с временем 00.00.00 ? По вашей логике тогда он должен был включить документы 23.59.59 если мы так передадим дату 23.59.59 , вообще в данном случае я дату передаю через параметр запроса и для этого дела используется объект Граница
ДатаОстатков = новый Граница (КонецДня(КонецПериода), видГраницы.включая)
(6) да и по первому пункту должно быть стыдно - это же азы программирования в 1с которые нужно знать
ДатаОстатков = новый Граница (КонецДня(КонецПериода), видГраницы.включая)
(6) да и по первому пункту должно быть стыдно - это же азы программирования в 1с которые нужно знать
1) Действительно, если в запросе к таблице "Остатки" задаем дату выражением КОНЕЦПЕРИОДА(&ДатаКон, ДЕНЬ), то оно вернет время 23.59.59. А запрос возьмет данные "к этому времени", т.е. не включая секунду. Как предложение писать так:
2) При обращении к регистру допустили классическую детскую ошибку: условия отбора нужно указывать не через "ГДЕ", а в параметрах таблицы:
3) ТоварыНаСкладахОстаткиИОбороты.Номенклатура - это ссылка и добавлять к нему ".Ссылка" не нужно.
РегистрНакопления.ХХХХ.Остатки(ДОБАВИТЬКДАТЕ(КОНЕЦПЕРИОДА(&ДатаКон, ДЕНЬ), СЕКУНДА, 1), )
2) При обращении к регистру допустили классическую детскую ошибку: условия отбора нужно указывать не через "ГДЕ", а в параметрах таблицы:
РегистрНакопления.ТоварыНаСкладах.ОстаткиИОбороты(НАЧАЛОПЕРИОДА(&ПараметрДатаСтарт, ДЕНЬ), КОНЕЦПЕРИОДА(&ПараметрДатаКон, ДЕНЬ),
Регистратор, ДвиженияИГраницыПериода, Номенклатура = &ПараметрНоменклатура
И Склад = &ПараметрСклад)
3) ТоварыНаСкладахОстаткиИОбороты.Номенклатура - это ссылка и добавлять к нему ".Ссылка" не нужно.
Остальные ответы
Подписаться на ответы
Инфостарт бот
Сортировка:
Древо развёрнутое
Свернуть все
1) Действительно, если в запросе к таблице "Остатки" задаем дату выражением КОНЕЦПЕРИОДА(&ДатаКон, ДЕНЬ), то оно вернет время 23.59.59. А запрос возьмет данные "к этому времени", т.е. не включая секунду. Как предложение писать так:
2) При обращении к регистру допустили классическую детскую ошибку: условия отбора нужно указывать не через "ГДЕ", а в параметрах таблицы:
3) ТоварыНаСкладахОстаткиИОбороты.Номенклатура - это ссылка и добавлять к нему ".Ссылка" не нужно.
РегистрНакопления.ХХХХ.Остатки(ДОБАВИТЬКДАТЕ(КОНЕЦПЕРИОДА(&ДатаКон, ДЕНЬ), СЕКУНДА, 1), )
2) При обращении к регистру допустили классическую детскую ошибку: условия отбора нужно указывать не через "ГДЕ", а в параметрах таблицы:
РегистрНакопления.ТоварыНаСкладах.ОстаткиИОбороты(НАЧАЛОПЕРИОДА(&ПараметрДатаСтарт, ДЕНЬ), КОНЕЦПЕРИОДА(&ПараметрДатаКон, ДЕНЬ),
Регистратор, ДвиженияИГраницыПериода, Номенклатура = &ПараметрНоменклатура
И Склад = &ПараметрСклад)
3) ТоварыНаСкладахОстаткиИОбороты.Номенклатура - это ссылка и добавлять к нему ".Ссылка" не нужно.
(7) это почему он включит документы с временем 00.00.00 ? По вашей логике тогда он должен был включить документы 23.59.59 если мы так передадим дату 23.59.59 , вообще в данном случае я дату передаю через параметр запроса и для этого дела используется объект Граница
ДатаОстатков = новый Граница (КонецДня(КонецПериода), видГраницы.включая)
(6) да и по первому пункту должно быть стыдно - это же азы программирования в 1с которые нужно знать
ДатаОстатков = новый Граница (КонецДня(КонецПериода), видГраницы.включая)
(6) да и по первому пункту должно быть стыдно - это же азы программирования в 1с которые нужно знать
Для получения уведомлений об ответах подключите телеграм бот:
Инфостарт бот