Имя: Пароль:
1C
 
Запрос по остаткам регистра накопления остатков
0 23th
 
10.03.16
08:49
Я делаю запрос по остаткам на начало дня. т.е. время например 09.02.2016 00:00:00. У меня есть какой то остаток. Соответственно этому остатку я вывожу этот регистр в ноль. Т.е. документ делает движения по регистру и обнуляет его на это время.
Затем делаю еще один запрос на эту же дату: 09.02.2016 00:00:00 У меня следующий запрос должен выдать нулевой остаток, но он выдает остаток как бы на начало этой даты 09.02.2016 00:00:00, т.е. еще не обнуленный. и соответственно следующий документ опять его "обнуляет" и в итоге получается отрицательный остаток по регистру.
Как мне сделать нормальный запрос по остаткам. т.е. без запроса на регистр ОстаткиИОбороты, где есть НачалоПериода и КонецПериода?
Не хочу при запросе добавлять 1 секунду.
1 LordCMEPTb
 
10.03.16
08:54
А если параметром передать не дату, а границу с включением даты?
2 Serg_1960
 
10.03.16
09:10
Если и границу начал дня, то исключая. А ещё лучше - исключая момент времени документа, "обнуляющего" остатки.
3 Лефмихалыч
 
10.03.16
09:37
(0) границу юзай

РегистрНакопленияМенеджер.<Имя регистра накопления> (AccumulationRegisterManager.<Имя регистра накопления>)
Остатки (Balance)
Синтаксис:

Остатки(<МоментВремени>, <Отбор>, <Измерения>, <Ресурсы>)
Параметры:

<МоментВремени> (необязательный)

Тип: Дата; МоментВремени; Граница.
Момент времени, на который необходимо получить остатки. Если параметр не указан, то будут получены текущие остатки (на максимальную дату движений регистра). Если в качестве параметра передана Дата, то остатки будут получены на начало дня, если МоментВремени - то в остатках не будут учтены движения регистра, произошедшие в тот же момент времени.
4 Лефмихалыч
 
10.03.16
09:38
остатки получаются на границу "Исключая", а обороты - почему-то на границу "Включая". Х.з. почему так, но это так и было всегда
5 23th
 
10.03.16
10:53
так это как в запросе писать? Границу?
6 patria0muerte
 
10.03.16
10:56
(6) Так в запрос ее передавай как параметр &Период, вместо даты..
7 Лефмихалыч
 
10.03.16
10:58
что мешает нажать ctrl+f1 и почитать?

Граница.По умолчанию
Граница (Boundary)
На основании значения и вида
Синтаксис:

Новый Граница(<Значение>, <ВидГраницы>)
Параметры:

<Значение> (обязательный)

Тип: Произвольный.
Значение границы.
<ВидГраницы> (необязательный)

Тип: ВидГраницы.
Включение/исключение граничного значения.
Если параметр не задан, используется вариант границы с включением граничного значения.
Описание:

Создает новую границу с заданными характеристиками.
Также может быть создан с использованием функциональной формы оператора Новый.
Важно! Конструктор в тонком и веб-клиентах не доступен.
Пример:

Параметры = Новый Массив(2);
Параметры[0] = Дата;
Параметры[1] = ВидГраницы.Включая;
Граница = Новый(Тип("Граница"),Параметры);
Запрос.УстановитьПараметр("КонГраница", Граница);
8 23th
 
10.03.16
11:05
Запрос = Новый Запрос;
Запрос.Текст =
"ВЫБРАТЬ
|    ВзаиморасчетыСРаботникамиОрганизацийОстатки.Физлицо,
|    ВзаиморасчетыСРаботникамиОрганизацийОстатки.СуммаВзаиморасчетовОстаток
|ИЗ
|    РегистрНакопления.ВзаиморасчетыСРаботникамиОрганизаций.Остатки(&Дата, Физлицо = &Физик) КАК ВзаиморасчетыСРаботникамиОрганизацийОстатки";
Запрос.УстановитьПараметр("Физик", СсылкаДок.ФизЛицо);
Запрос.УстановитьПараметр("Дата", ???)
9 ptiz
 
10.03.16
11:22
(0) "Не хочу при запросе добавлять 1 секунду" - а зря, это самый простой способ получить остатки на конец предыдущей секунды.
10 Лефмихалыч
 
10.03.16
11:25
(9) это способ получить остатки на начало следующей секунды, а не на конец предыдущей.