Регистр остатков: разный результат запроса, почему?

1. iott 18.01.18 21:02 Сейчас в теме
Потерял много времени. Перечитал много статей, но так и не понял в чем причина.
Есть два запроса, которые выполняются в консоли запросов. Параметры запросов одинаковые.
Запрос №1 выдает больше результатов.

Запрос №1
ВЫБРАТЬ РАЗРЕШЕННЫЕ
	ТоварыОрганизацийОстатки.АналитикаУчетаНоменклатуры.Номенклатура КАК Номенклатура,
	ТоварыОрганизацийОстатки.КоличествоОстаток КАК Количество
ИЗ
	РегистрНакопления.ТоварыОрганизаций.Остатки(&Дата2, АналитикаУчетаНоменклатуры.Склад = &Склад) КАК ТоварыОрганизацийОстатки
ГДЕ
	ТоварыОрганизацийОстатки.КоличествоОстаток < 0
Показать


Запрос №2
ВЫБРАТЬ РАЗРЕШЕННЫЕ
	ТоварыОрганизацийОстаткиИОбороты.АналитикаУчетаНоменклатуры.Номенклатура,
	ТоварыОрганизацийОстаткиИОбороты.КоличествоКонечныйОстаток
ИЗ
	РегистрНакопления.ТоварыОрганизаций.ОстаткиИОбороты(&Дата1, &Дата2, , , АналитикаУчетаНоменклатуры.Склад = &Склад) КАК ТоварыОрганизацийОстаткиИОбороты
ГДЕ
	ТоварыОрганизацийОстаткиИОбороты.КоличествоКонечныйОстаток < 0
Показать


У кого какие мысли?
По теме из базы знаний
Найденные решения
4. PerlAmutor 129 18.01.18 21:41 Сейчас в теме
(1)
Перечитал много статей


Это читал (из гугла)?


Запомнить просто

Остатки НА дату (не включая)
Обороты ПО дату (включая)
Остатки и Обороты ПО дату (включая)



Для остатков используй
Запрос.УстановитьПараметр("Дата2", Новый Граница(Дата,ВидГраницы.Включая) );


Если кому интересно, то статья есть на ИТС: https://its.1c.ru/db/pubqlang#content:97:hdoc :

"Язык запросов «1С:Предприятия 8» -> Глава 3. Решение прикладных задач -> Бухгалтерский учет -> Регистры бухгалтерии"

там 3 раздела:
"Получение остатков", "Получение оборотов" и "Получение остатков и оборотов":

"Получение остатков"
Период – имеет тип Дата, МоментВремени или Граница. Момент времени, на который нужно посчитать остатки. Если параметр не задан, то будут получены актуальные остатки, включающие движения последнего проведенного документа;


"Получение остатков и оборотов"
- НачалоПериода, КонецПериода – имеет тип Дата, МоментВремени или Граница. Период времени, за который будут получены остатки и обороты. Если параметры не заданы, то будут получены все итоги по регистру;
user712426; eeeio; PEHATA; iott; +4 Ответить
10. spacecraft 18.01.18 22:31 Сейчас в теме
(7) почему сразу никак? Это от консоли зависит. Даже стандартная консоль запросов от 1С это позволяет.
Только с Граница нужно быть осторожней. Не везде она принимается вместо даты.
Прикрепленные файлы:
PEHATA; iott; +2 Ответить
Остальные ответы
Подписаться на ответы Инфостарт бот Сортировка: Древо развёрнутое
Свернуть все
2. spacecraft 18.01.18 21:26 Сейчас в теме
(1) Дата2 это последняя секунда дня? Проверить документы на эту секунду. Они есть. Причем расходные документы.
ОстаткиИОбороты - включая границу (эту самую последнюю секунду дня), Остатки - не включая.
3. iott 18.01.18 21:36 Сейчас в теме
(2) Олег, спасибо что отозвался...
Дата2 - это 30.11.2017 23:59:59
Если открыть форму регистра "ТоварыОрганизации", то по записям можно увидеть, что на дату "30.11.2017 23:59:59" есть только приходные документы.

Не пронял про "включая границу"
Т.е. в запросе №1 Дата2 нужно указать "30.11.2017.23.59.58" ?
5. spacecraft 18.01.18 21:47 Сейчас в теме
(3) для виртуальной таблицы остатки записи которые попадают на указанную секунду не включаются. Чтобы они включались, нужно добавить секунду.
rusness; iott; +2 Ответить
4. PerlAmutor 129 18.01.18 21:41 Сейчас в теме
(1)
Перечитал много статей


Это читал (из гугла)?


Запомнить просто

Остатки НА дату (не включая)
Обороты ПО дату (включая)
Остатки и Обороты ПО дату (включая)



Для остатков используй
Запрос.УстановитьПараметр("Дата2", Новый Граница(Дата,ВидГраницы.Включая) );


Если кому интересно, то статья есть на ИТС: https://its.1c.ru/db/pubqlang#content:97:hdoc :

"Язык запросов «1С:Предприятия 8» -> Глава 3. Решение прикладных задач -> Бухгалтерский учет -> Регистры бухгалтерии"

там 3 раздела:
"Получение остатков", "Получение оборотов" и "Получение остатков и оборотов":

"Получение остатков"
Период – имеет тип Дата, МоментВремени или Граница. Момент времени, на который нужно посчитать остатки. Если параметр не задан, то будут получены актуальные остатки, включающие движения последнего проведенного документа;


"Получение остатков и оборотов"
- НачалоПериода, КонецПериода – имеет тип Дата, МоментВремени или Граница. Период времени, за который будут получены остатки и обороты. Если параметры не заданы, то будут получены все итоги по регистру;
user712426; eeeio; PEHATA; iott; +4 Ответить
6. iott 18.01.18 21:58 Сейчас в теме
(4) огромное спасибо, просветил....
(5) Олег, огромное спасибо....
7. iott 18.01.18 22:00 Сейчас в теме
(4) про Границы.....получается ВидГраниц можно указать только в модуле, в консоле запросов ни как
8. PerlAmutor 129 18.01.18 22:01 Сейчас в теме
(7) Никак. Многие программисты сталкивающиеся с СКД испытывают по этому поводу конфуз.
9. iott 18.01.18 22:02 Сейчас в теме
10. spacecraft 18.01.18 22:31 Сейчас в теме
(7) почему сразу никак? Это от консоли зависит. Даже стандартная консоль запросов от 1С это позволяет.
Только с Граница нужно быть осторожней. Не везде она принимается вместо даты.
Прикрепленные файлы:
PEHATA; iott; +2 Ответить
11. iott 18.01.18 23:31 Сейчас в теме
Оставьте свое сообщение

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