Две реальные собственные записи различаются временем: 09:00 и ровно 10:00. Сравниваются границы одного и того же момента.
Где и как запускать
Сервер собственной учебной обработки / обычная форма, толстый клиент.
Подготовка
Только собственная учебная база. Создайте документ УчебныйРегистраторГраницы без реквизитов и без обработчиков проведения. Создайте регистр накопления УчебныеКнигиГраницы вида Остатки, измерение КодКниги Строка 40, ресурс Количество Число 12.0. Единственный регистратор — этот собственный документ.
В движениях документа разрешите регистр УчебныеКнигиГраницы. Основной блок — тело серверной процедуры / кнопки обычной формы в толстом клиенте. Дополнительная функция находится отдельно в том же модуле.
Ручной запуск ЗАПИШЕТ собственный новый учебный документ и две его записи: приход 3 в 09:00, приход 5 в 10:00. Для каждого запуска создаётся отдельный ключ UUID; прежние собственные и рабочие записи не заменяются.
Колонки результата метода менеджера Остатки запрашиваются по именам измерения и ресурса: КодКниги, Количество. Это не запрос к виртуальной таблице с именем колонки КоличествоОстаток.
КодКниги = СоздатьСвоиДвиженияГраницы();
Отбор = Новый Структура("КодКниги", КодКниги);
Момент = Дата(2026, 1, 11, 10, 0, 0);
ДоМомента = Новый Граница(Момент, ВидГраницы.Исключая);
СМоментом = Новый Граница(Момент, ВидГраницы.Включая);
До = РегистрыНакопления.УчебныеКнигиГраницы.Остатки(ДоМомента, Отбор, "КодКниги", "Количество");
После = РегистрыНакопления.УчебныеКнигиГраницы.Остатки(СМоментом, Отбор, "КодКниги", "Количество");
Сообщить("Исключая движение в 10:00: " + Строка(До.Итог("Количество")));
Сообщить("Включая движение в 10:00: " + Строка(После.Итог("Количество")));Тот же модуль: создать только свои движения под новым ключом
Функция СоздатьСвоиДвиженияГраницы()
КодКниги = Строка(Новый УникальныйИдентификатор);
Документ = Документы.УчебныйРегистраторГраницы.СоздатьДокумент();
Документ.Дата = Дата(2026, 1, 11, 9, 0, 0);
Документ.Записать();
Набор = РегистрыНакопления.УчебныеКнигиГраницы.СоздатьНаборЗаписей();
Набор.Отбор.Регистратор.Установить(Документ.Ссылка);
Для Номер = 0 По 1 Цикл
Движение = Набор.Добавить();
Движение.Активность = Истина;
Движение.Период = Дата(2026, 1, 11, 9 + Номер, 0, 0);
Движение.ВидДвижения = ВидДвиженияНакопления.Приход;
Движение.КодКниги = КодКниги;
Движение.Количество = 3 + Номер * 2;
КонецЦикла;
Набор.Записать();
Возврат КодКниги;
КонецФункцииРазбор по шагам
Подготовьте собственные документ и регистр.
Создайте две записи функцией и ограничьте чтение их новым ключом.
Сравните Исключая и Включая для ровно 10:00.
Как проверить результат
Для данных опыта ожидается 3 до граничного движения и 8 с ним. Исключая не означает вычитать секунду: меняется вид границы, а момент остаётся тем же.
В Остатки передаётся настоящий Граница. У обычной Дата в этом методе есть отдельное правило получения остатка на начало дня; поэтому она не подставляется вместо границы.
BSL, запись документа и регистра при сборке HTML не выполнялись.
Ожидаемый результат
Есть полный источник двух собственных движений и наблюдаемая разница границ.
На что обратить внимание
Не запускайте подготовку в рабочей конфигурации и не заменяйте собственный регистр реальными остатками.
Пример не запускался в вашей базе. Перед применением проверьте его в указанном учебном контексте.