Начало периода

Язык запросов

Синтаксис и применение Начало периода в платформе 1С:Предприятие. Описание и примеры кода.

Полное описание, параметры и ограничения

Начало периода

Начало периода (необязательный)
Тип параметра: Дата, МоментВремени, Граница.
Указывается начало периода расчета итогов. Значение начала периода по умолчанию включается в период расчета итогов. Для исключения значения из периода его следует задавать объектом Граница с исключением граничного значения.
Если параметр не задан, итоги рассчитываются с самой первой записи.
Если начало периода не совпадает с первой границей периодичности, то в результат запроса могут попасть записи с датой, совпадающей с началом периода, указанного в параметрах виртуальной таблицы.
Например: Если задана периодичность "Год", а начало периода установлено "03.01.2018", то если в 2018 году были движения по регистру, все данные в результате запроса будут указаны с периодом "03.01.2018".

Методическая информация

Практические примеры

Сравнить остатки и движения по дням

Границы периода и артикул заданы параметрами; разворот День делает доступным поле Период.

Где и как запускать

Учебная база: создайте серверный общий модуль УчебныеЗадачи (флаг Сервер). Код без директив вставьте в тело процедуры ВыполнитьПример() Экспорт. Вызовите её из серверного обработчика команды учебной обработки. Не запускайте в рабочей базе.

Подготовка

  1. В отдельной учебной конфигурации создайте документ УчебноеДвижение с разрешённым проведением и автонумерацией. Реквизиты: Артикул (Строка 20), Количество (Число 15.3), Приход (Булево), Комментарий (Строка 100).

  2. Создайте регистр накопления УчебныеОстатки, вид Остатки. Измерение Артикул (Строка 20), ресурс Количество (Число 15.3), реквизит Комментарий (Строка 100). Регистратор — УчебноеДвижение; включите регистр в движения документа.

  3. В отдельной учебной конфигурации создайте общий реквизит УчебныйИсточник типа Строка 20. Разделение данных — Не использовать. В составе явно включите только учебный объект этого урока; использование — Использовать.

  4. Если общий реквизит не выведен на форму, его пустое строковое значение допустимо. Запрос всё равно покажет именованную колонку УчебныйИсточник. Это не разделитель данных и не механизм ограничения доступа.

  5. Общий реквизит УчебныйИсточник включите в состав именно регистра УчебныеОстатки. Виртуальные таблицы итогов этого урока его не используют: обычный неразделяющий реквизит там не является измерением.

  6. В модуль объекта документа вставьте отдельный обработчик проведения ниже. Обновите только учебную базу.

  7. Вручную проведите два учебных документа: 01.10.2026 12:00:00, Артикул КНИГА, Количество 10, Приход Истина, Комментарий Поступление; 02.10.2026 12:00:00, тот же артикул, Количество 3, Приход Ложь, Комментарий Продажа. Других движений КНИГА в этом учебном регистре не должно быть.

  8. Основной код запроса запускайте в отдельной серверной процедуре учебной обработки, не внутри проведения. Запрос ничего не пишет и не перепроводит.

Запрос = Новый Запрос;
Запрос.Текст = "ВЫБРАТЬ
| Данные.Период, Данные.Артикул, Данные.КоличествоНачальныйОстаток,
| Данные.КоличествоКонечныйОстаток, Данные.КоличествоОборот, Данные.КоличествоПриход,
| Данные.КоличествоРасход
|ИЗ РегистрНакопления.УчебныеОстатки.ОстаткиИОбороты(&Начало, &Конец, День, Движения, Артикул = &Артикул) КАК Данные";
Запрос.УстановитьПараметр("Начало", Дата(2026, 1, 1));
Запрос.УстановитьПараметр("Конец", Дата(2026, 10, 2, 23, 59, 59));
Запрос.УстановитьПараметр("Артикул", "КНИГА");
Результат = Запрос.Выполнить();
Выборка = Результат.Выбрать();
Пока Выборка.Следующий() Цикл
    Для Каждого Колонка Из Результат.Колонки Цикл
        Сообщить(Колонка.Имя + ": " + Строка(Выборка[Колонка.Имя]));
    КонецЦикла;
КонецЦикла;
Проведение учебного движения

Документы → УчебноеДвижение → Модуль объекта

Выполняется только при ручном проведении подготовленных учебных документов.

Процедура ОбработкаПроведения(Отказ, РежимПроведения)
    Движения.УчебныеОстатки.Записывать = Истина;
    Запись = Движения.УчебныеОстатки.Добавить();
    Запись.Период = Дата;
    Запись.Активность = Истина;
    Запись.Артикул = Артикул;
    Запись.Количество = Количество;
    Запись.Комментарий = Комментарий;
    Запись.УчебныйИсточник = "Урок";
    Если Приход Тогда
        Запись.ВидДвижения = ВидДвиженияНакопления.Приход;
    Иначе
        Запись.ВидДвижения = ВидДвиженияНакопления.Расход;
    КонецЕсли;
КонецПроцедуры

Разбор по шагам

  1. Параметры Начало и Конец задают расчётный интервал; Условие по артикулу применяется до расчёта итогов.

  2. Периодичность День даёт одну строку на день с движениями. Метод Движения не добавляет пустые граничные периоды.

  3. КоличествоОборот равно приходу минус расход. Начальный и конечный остатки показывают состояние до и после движений дня.

Как проверить результат

  1. 01.10: начальный остаток 0, приход 10, расход 0, конечный остаток 10.

  2. 02.10: начальный остаток 10, приход 0, расход 3, конечный остаток 7.

Ожидаемый результат

Показаны два дня с реальными движениями учебного регистра.

На что обратить внимание

  1. Ресурсы Приход и Расход доступны здесь потому, что регистр имеет вид Остатки.

  2. Период не переносите в условие виртуальной таблицы: границы задаются её параметрами.

Пример не запускался в вашей базе. Перед применением проверьте его в указанном учебном контексте.

Не хотите разбираться сами?

Адаптируем это решение под вашу базу. Оценка бесплатно.

Оставить задачу

1С, 1С:Предприятие — товарные знаки ООО «1С». Сайт не является официальным представительством фирмы «1С» и не аффилирован с ней.