Границы периода и артикул заданы параметрами; разворот День делает доступным поле Период.
Где и как запускать
Учебная база: создайте серверный общий модуль УчебныеЗадачи (флаг Сервер). Код без директив вставьте в тело процедуры ВыполнитьПример() Экспорт. Вызовите её из серверного обработчика команды учебной обработки. Не запускайте в рабочей базе.
Подготовка
В отдельной учебной конфигурации создайте документ УчебноеДвижение с разрешённым проведением и автонумерацией. Реквизиты: Артикул (Строка 20), Количество (Число 15.3), Приход (Булево), Комментарий (Строка 100).
Создайте регистр накопления УчебныеОстатки, вид Остатки. Измерение Артикул (Строка 20), ресурс Количество (Число 15.3), реквизит Комментарий (Строка 100). Регистратор — УчебноеДвижение; включите регистр в движения документа.
В отдельной учебной конфигурации создайте общий реквизит УчебныйИсточник типа Строка 20. Разделение данных — Не использовать. В составе явно включите только учебный объект этого урока; использование — Использовать.
Если общий реквизит не выведен на форму, его пустое строковое значение допустимо. Запрос всё равно покажет именованную колонку УчебныйИсточник. Это не разделитель данных и не механизм ограничения доступа.
Общий реквизит УчебныйИсточник включите в состав именно регистра УчебныеОстатки. Виртуальные таблицы итогов этого урока его не используют: обычный неразделяющий реквизит там не является измерением.
В модуль объекта документа вставьте отдельный обработчик проведения ниже. Обновите только учебную базу.
Вручную проведите два учебных документа: 01.10.2026 12:00:00, Артикул КНИГА, Количество 10, Приход Истина, Комментарий Поступление; 02.10.2026 12:00:00, тот же артикул, Количество 3, Приход Ложь, Комментарий Продажа. Других движений КНИГА в этом учебном регистре не должно быть.
Основной код запроса запускайте в отдельной серверной процедуре учебной обработки, не внутри проведения. Запрос ничего не пишет и не перепроводит.
Запрос = Новый Запрос;
Запрос.Текст = "ВЫБРАТЬ
| Данные.Период, Данные.Артикул, Данные.КоличествоНачальныйОстаток,
| Данные.КоличествоКонечныйОстаток, Данные.КоличествоОборот, Данные.КоличествоПриход,
| Данные.КоличествоРасход
|ИЗ РегистрНакопления.УчебныеОстатки.ОстаткиИОбороты(&Начало, &Конец, День, Движения, Артикул = &Артикул) КАК Данные";
Запрос.УстановитьПараметр("Начало", Дата(2026, 1, 1));
Запрос.УстановитьПараметр("Конец", Дата(2026, 10, 2, 23, 59, 59));
Запрос.УстановитьПараметр("Артикул", "КНИГА");
Результат = Запрос.Выполнить();
Выборка = Результат.Выбрать();
Пока Выборка.Следующий() Цикл
Для Каждого Колонка Из Результат.Колонки Цикл
Сообщить(Колонка.Имя + ": " + Строка(Выборка[Колонка.Имя]));
КонецЦикла;
КонецЦикла;Проведение учебного движения
Документы → УчебноеДвижение → Модуль объекта
Выполняется только при ручном проведении подготовленных учебных документов.
Процедура ОбработкаПроведения(Отказ, РежимПроведения)
Движения.УчебныеОстатки.Записывать = Истина;
Запись = Движения.УчебныеОстатки.Добавить();
Запись.Период = Дата;
Запись.Активность = Истина;
Запись.Артикул = Артикул;
Запись.Количество = Количество;
Запись.Комментарий = Комментарий;
Запись.УчебныйИсточник = "Урок";
Если Приход Тогда
Запись.ВидДвижения = ВидДвиженияНакопления.Приход;
Иначе
Запись.ВидДвижения = ВидДвиженияНакопления.Расход;
КонецЕсли;
КонецПроцедурыРазбор по шагам
Параметры Начало и Конец задают расчётный интервал; Условие по артикулу применяется до расчёта итогов.
Периодичность День даёт одну строку на день с движениями. Метод Движения не добавляет пустые граничные периоды.
КоличествоОборот равно приходу минус расход. Начальный и конечный остатки показывают состояние до и после движений дня.
Как проверить результат
01.10: начальный остаток 0, приход 10, расход 0, конечный остаток 10.
02.10: начальный остаток 10, приход 0, расход 3, конечный остаток 7.
Ожидаемый результат
Показаны два дня с реальными движениями учебного регистра.
На что обратить внимание
Ресурсы Приход и Расход доступны здесь потому, что регистр имеет вид Остатки.
Период не переносите в условие виртуальной таблицы: границы задаются её параметрами.
Пример не запускался в вашей базе. Перед применением проверьте его в указанном учебном контексте.