Граница последовательности, перепроведение и ФИФО: как 1С держит порядок документов
Содержание
Последовательность документов в 1С — объект метаданных, который следит, в каком хронологическом порядке проведены документы, и хранит «границу»: момент времени, до которого учёт гарантированно корректен. Её не включают галочкой в пользовательском режиме. Её создают в Конфигураторе (ветка Документы → Последовательности), а бухгалтер сталкивается с ней через учётную политику ФИФО, закрытие месяца
и групповое перепроведение.
Типичная боль выглядит так. В марте задним числом добавили поступление за январь, и себестоимость всех продаж после него уже неверна. Последовательность нужна, чтобы программа это заметила и подсказала, с какого документа всё перепровести. Если граница стоит раньше конца месяца, закрывать его рано.
Как работает последовательность документов: суть без теории
Представьте ленту из документов, разложенных по дате и времени. Где-то на ленте стоит флажок — граница. Всё, что слева от флажка, проведено в правильном порядке. Всё, что справа, — «под вопросом».
Граница сдвигается в двух направлениях:
- ⬅️ Назад — автоматически. Если провести, изменить или отменить проведение документа с датой раньше границы, платформа переносит границу на этот документ.
- ➡️ Вперёд — только по команде. Её двигает обработка восстановления последовательности: она перепроводит документы по порядку и ставит границу на последний обработанный.
Пример с числами. Граница стоит на 31 января. 15 марта бухгалтер вводит поступление от 10 января на 200 единиц товара по 50 ₽. Граница сразу откатывается на 10 января. Все реализации с 11 января по 15 марта списали себестоимость по старым остаткам, и пока их не перепровести, цифры в отчётах неверны.
Последовательность сама ничего не пересчитывает. Она только сигналит: «после этой точки порядок нарушен». Пересчёт — это всегда перепроведение.
Что такое «момент времени»
Порядок документов определяет не только дата, но и время и ссылка документа. Два документа от 10.01 с временем 09:00 и 14:30 стоят на ленте в этом порядке. Если время совпадает до секунды, платформа сортирует их по ссылке, то есть фактически в непредсказуемом для пользователя порядке.
Виды последовательностей и чем они отличаются от нумерации
Чаще всего путают два объекта из одной ветки Конфигуратора.
| Объект | Что делает | Где влияет |
|---|---|---|
| Нумератор | Выдаёт сквозные номера документам разных видов | Номер документа, уникальность |
| Последовательность | Контролирует хронологию проведения | Себестоимость, остатки, взаиморасчёты |
Если вы ищете, как сделать сплошную нумерацию счетов-фактур или реализаций, — это нумератор, а не последовательность. Сбой нумерации не влияет на правильность проводок. Сбой последовательности — влияет.
Сами последовательности различают по двум признакам.
По наличию измерений:
- 📌 Без измерений — одна граница на всю базу. Любой документ задним числом откатывает её для всех организаций.
- 📌 С измерениями — отдельная граница по каждому значению. Например, измерение «Организация»: правка документа ООО «Альфа» не трогает границу ООО «Бета». В базе на несколько юрлиц это сильно сокращает объём перепроведения.
По учётной задаче:
- 📦 партионный учёт и списание себестоимости (ФИФО, ЛИФО в старых конфигурациях);
- 🤝 взаиморасчёты, где важен порядок зачёта авансов и оплат;
- 🧾 НДС: распределение входного налога и регистрация счетов-фактур после отгрузки;
- 🏭 производство: выпуск продукции раньше списания материалов даст ошибку себестоимости.
В разных конфигурациях этих последовательностей разное количество. В старых типовых (Бухгалтерия 2.0, УПП) их было несколько, и пользователь видел их по отдельности в обработке восстановления. В современных конфигурациях механизм в основном скрыт.
Как настроить последовательность документов в Конфигураторе
Это работа программиста или администратора. В типовой конфигурации без доработок создавать новую последовательность не нужно. Шаги ниже — для своих доработок и нетиповых баз.
Перед изменением конфигурации сделайте резервную копию базы и проверьте, разрешено ли вам снимать конфигурацию с поддержки или работать через расширение.
Шаг 1. Создайте объект
- Откройте Конфигуратор, затем
Конфигурация → Открыть конфигурацию. - Раскройте ветку
Документы, внутри неё —Последовательности. - Добавьте новый элемент. Задайте имя латиницей или кириллицей без пробелов, например
ПартионныйУчет, и понятный синоним.
Шаг 2. Укажите входящие документы
В свойствах последовательности есть список документов, которые в неё входят. Добавьте туда те виды, порядок которых влияет на результат: поступления, реализации, перемещения, списания, возвраты.
Не добавляйте всё подряд. Каждый лишний вид документа удлиняет восстановление: при откате границы его тоже придётся перепроводить.
Шаг 3. Укажите регистры, влияющие на последовательность
Отдельно задаётся список регистров движений. Если любой документ, даже не входящий в последовательность, запишет движения в такой регистр задним числом, граница откатится. Обычно сюда включают регистр остатков партий или взаиморасчётов, на котором строится расчёт.
Шаг 4. Добавьте измерения (по необходимости)
Если в базе несколько организаций или складов с независимым учётом, создайте измерение, например Организация. Для каждого входящего документа задайте соответствие: какой реквизит документа заполняет это измерение. Без соответствия документ попадёт в последовательность с пустым значением измерения.
Шаг 5. Выберите режим перемещения границы
Свойство «Перемещение границы при проведении» имеет два значения:
| Значение | Поведение | Когда выбирать |
|---|---|---|
| Перемещать | Платформа сама откатывает границу при проведении задним числом | Почти всегда, это и есть смысл механизма |
| Не перемещать | Граница двигается только из кода | Когда контроль реализован программно в модулях документов |
Шаг 6. Обновите конфигурацию и задайте границу
Сохраните изменения и обновите конфигурацию базы данных (F7). Новая последовательность создаётся с пустой границей, то есть все документы считаются «под вопросом». Чтобы начать контроль с нуля, перепроведите документы за нужный период в хронологическом порядке и установите границу программно методом УстановитьГраницу() менеджера последовательности или своей обработкой восстановления.
Обновление конфигурации базы данных требует монопольного доступа. Предупредите пользователей и делайте это вне рабочего времени.
Где последовательность видит бухгалтер в типовых конфигурациях
В пользовательском режиме слова «последовательность» может вообще не быть. Механизм проявляется косвенно.
| Конфигурация | Как проявляется | Что делать пользователю |
|---|---|---|
| Бухгалтерия 3.0 | При способе оценки МПЗ «По ФИФО» закрытие месяца проверяет, не было ли документов задним числом | Выполнить предложенное перепроведение в обработке «Закрытие месяца» |
| Бухгалтерия 2.0, УПП | Отдельная обработка восстановления последовательностей, граница видна по каждой из них | Восстановить последовательность до конца периода перед закрытием |
| УТ 11, ERP | Себестоимость считает регламентная операция расчёта себестоимости, изменения задним числом фиксируются как задания к закрытию месяца | Повторно выполнить расчёт себестоимости за затронутые месяцы |
Способ оценки МПЗ в Бухгалтерии 3.0 задают в учётной политике: Главное → Настройки → Учетная политика. При способе «По средней» себестоимость корректируется регламентной операцией в конце месяца, поэтому порядок документов внутри месяца критичен меньше. При ФИФО он критичен: какая партия списана первой, определяет сумму.
Последовательность документов и закрытие месяца
Закрытие месяца опирается на то, что движения за месяц собраны в правильном порядке. Если граница последовательности стоит раньше конца закрываемого месяца, итог будет неверным.
Что ломается на практике:
- 💸 себестоимость продаж — списали не ту партию;
- 📉 отрицательные остатки, которых на самом деле не было: реализацию провели раньше поступления в тот же день;
- 🧮 финансовый результат и налог на прибыль — следствие неверной себестоимости;
- 🧾 распределение НДС и книги покупок, если входной налог зависел от последующих отгрузок.
Правильный порядок действий в конце периода:
- Убедитесь, что все первичные документы за месяц внесены.
- Восстановите последовательность или выполните перепроведение, которое предлагает закрытие месяца.
- Запустите закрытие месяца.
- Проверьте результат по оборотно-сальдовой ведомости по счетам товаров и материалов: нет ли отрицательных остатков и «хвостов» по количеству.
- Установите дату запрета изменения данных, чтобы документы задним числом не откатили границу снова.
Дату запрета в Бухгалтерии 3.0 задают в разделе Администрирование → Проведение документов. Это главная защита от того, что закрытый квартал снова «поплывёт» через полгода.
Как контролировать и восстанавливать последовательность
Восстановление вручную
Суть любого восстановления одна: перепровести документы от границы до нужной даты строго по возрастанию даты и времени. В типовых конфигурациях для этого есть обработка группового перепроведения документов. В Бухгалтерии 3.0 её проще всего найти через поиск по меню или через Все функции → Обработки, если раздел «Все функции» включён в настройках.
Порядок работы:
- Сделайте резервную копию базы: перепроведение меняет движения тысяч документов.
- Попросите пользователей не вводить документы в восстанавливаемом периоде.
- Задайте период: начало — дата самого раннего изменённого документа, конец — текущая дата или конец закрываемого месяца.
- Запустите перепроведение и дождитесь окончания. Ошибки проведения выводятся списком — их нужно разобрать, иначе дальше документы будут списаны по неверным остаткам.
- Заново выполните закрытие месяца за каждый затронутый период.
Если перепроведение остановилось на документе с ошибкой (например, не хватило остатка), не пропускайте его. Все документы после него зависят от этого остатка.
Ночное восстановление в нетиповых базах
В крупных базах с большим документооборотом перепроведение за квартал может идти часами. В доработанных конфигурациях это решают регламентным заданием: ночью оно проверяет границу и, если она отстала, перепроводит документы до текущей даты.
Что важно в таком задании:
- ⏰ запуск в окно без пользователей, иначе блокировки и конфликты с текущей работой;
- 📝 журнал: какие документы не провелись и почему;
- 🔔 уведомление ответственному, если граница отстаёт больше чем на N дней;
- 🧩 обработка по измерениям: восстанавливать только ту организацию, у которой граница сдвинулась.
Как узнать, где стоит граница
Программно границу получают методом ПолучитьГраницу() менеджера последовательности, в запросе — через таблицу границ последовательности. Удобно вывести её в отчёт или на рабочий стол бухгалтера: «граница ПартионныйУчет по ООО Альфа: 10.01, 09:00:00». Одна строка заменяет догадки о том, можно ли уже закрывать месяц.
Ошибки, из-за которых порядок документов нарушается
Одинаковое время у документов одного дня. Поступление и реализация от 10 января, обе в 00:00:00. Если реализация окажется на ленте первой, товара «не хватит», а при разрешённых отрицательных остатках себестоимость спишется неверно. Решение — время поступления раньше времени отгрузки, хотя бы на секунду.
Правка документа, когда нужен корректировочный. Изменить сумму реализации прошлого квартала проще, чем оформить корректировку. Но правка откатывает границу на квартал назад. Корректировочный документ текущей датой границу не трогает.
Отрицательные остатки разрешены «временно». С выключенным контролем документы проводятся в любом порядке, а ошибка всплывает только при закрытии месяца. Чем дольше контроль выключен, тем дороже потом разбор.
Перепроведение не с той даты. Начали с первого числа текущего месяца, а изменённый документ был в прошлом. Начало периода — дата самого раннего изменения, а не удобная круглая дата.
Неполные измерения в нетиповой последовательности. У нового вида документа не задано соответствие для измерения «Организация». Документ попадает в последовательность с пустой организацией, и граница по нужной организации не откатывается. Ошибка тихая и находится только сверкой остатков.
Обмен данными задним числом. Документы, пришедшие из торговой базы через обмен, загружаются с исходными датами. Если обмен запаздывает на неделю, граница каждый раз откатывается на неделю. Наладьте обмен до закрытия месяца, а не после.