Почему при получении остатков или оборотов на дату, попадают не все движения (документы)?
Для этого, при указании конечной даты, нужно указать не просто Дату, а Границу!
Например, если нужно получить на конец дня, то указывайте так:
1 2 |
ГраницаКонДня = Новый Граница(КонецДня(Дата), ВидГраницы.Включая); Запрос.УстановитьПараметр("КонГраница", ГраницаКонДня ); |
Если вы, хотите получить остатки до определенного документа или после, то используйте:
Пример получения остатков на дату документа, но до его движений:
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 |
Запрос = Новый Запрос; Запрос.Текст = "ВЫБРАТЬ | РасчётыССотрудникамиПредприятияОстатки.РаботникПредприятия, | РасчётыССотрудникамиПредприятияОстатки.СуммаВзаиморасчетовОстаток |ИЗ | РегистрНакопления.РасчётыССотрудникамиПредприятия.Остатки(&МоментВрм, РаботникПредприятия = &Сотрудник) КАК РасчётыССотрудникамиПредприятияОстатки"; МоментВрм = Документы.НачислениеЗарплатыРаботникамОрганизаций.НайтиПоНомеру("00345","31.12.2016 23:59:59"); Запрос.УстановитьПараметр("МоментВрм", Новый Граница(МоментВрм.МоментВремени(), ВидГраницы.Включая)); Запрос.УстановитьПараметр("Сотрудник", Справочники.Сотрудники.НайтиПоКоду("878")); ВывестиРезультат(Запрос.Выполнить()); |
Пример получения остатков на дату документа, включая его движения:
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 |
Запрос = Новый Запрос; Запрос.Текст = "ВЫБРАТЬ | РасчётыССотрудникамиПредприятияОстатки.РаботникПредприятия, | РасчётыССотрудникамиПредприятияОстатки.СуммаВзаиморасчетовОстаток |ИЗ | РегистрНакопления.РасчётыССотрудникамиПредприятия.Остатки(&МоментВрм, РаботникПредприятия = & Сотрудник) КАК РасчётыССотрудникамиПредприятияОстатки"; МоментВрм = Документы.НачислениеЗарплатыРаботникамОрганизаций.НайтиПоНомеру("00345","31.12.2016 23:59:59"); Запрос.УстановитьПараметр("МоментВрм", Новый Граница(МоментВрм.МоментВремени(), ВидГраницы.Исключая)); // Или так: Запрос.УстановитьПараметр("МоментВрм", МоментВрм.МоментВремени()); Запрос.УстановитьПараметр("Сотрудник", Справочники.Сотрудники.НайтиПоКоду("878")); ВывестиРезультат(Запрос.Выполнить()); |