Перепроведение всех документов в 1С 8.3: подготовка, запуск, проверка результата
Содержание
Перепровести базу 1С проще всего штатной обработкой: в 1С:Бухгалтерии 3.0 это раздел Операции → «Проведение документов», где задаётся период и запускается групповое перепроведение. Для конфигураций без такой обработки используют внешнюю обработку
со скриптом, который проводит документы по порядку дат. Перед любым из способов нужна резервная копия: перепроведение переписывает движения всех документов за период, и откатить его кнопкой нельзя.
Выбор способа зависит от задачи. Перепровести один месяц после исправления остатков — штатная обработка, 10–30 минут. Перепровести несколько лет после смены учётной политики — ночной запуск на копии базы, проверка и только потом перенос в рабочую.
Зачем и когда перепроводят документы
Перепроведение — это повторный запуск алгоритма проведения для уже проведённых документов. Каждый документ заново формирует проводки и движения по регистрам с учётом текущих данных базы.
Типичные причины:
- 📅 документы вводили задним числом, и списание по ФИФО или средней посчитано по неверным остаткам;
- ⚙️ изменили учётную политику или настройки параметров учёта за прошлый период;
- 🔄 загрузили данные обменом, и часть документов пришла без движений;
- 🛠 после исправления справочников (счёт учёта номенклатуры, вид операции) нужно обновить проводки;
- 📉 закрытие месяца сообщает, что последовательность документов нарушена и требуется перепроведение.
Если проблема в одном-двух документах, перепроводить всю базу не нужно. Откройте документ, нажмите «Провести» — и проверьте проводки. Массовое перепроведение оправдано, когда ошибка затрагивает цепочку: себестоимость, остатки, взаиморасчёты.
Подготовка базы перед перепроведением
Подготовка занимает больше времени, чем сам запуск, но именно она отделяет спокойное перепроведение от восстановления базы ночью.
Резервная копия
Перед перепроведением обязательно сделайте резервную копию базы : после него старые движения документов не сохраняются.
| Вариант базы | Как сделать копию |
|---|---|
| Файловая | Выгрузить .dt через Конфигуратор (Администрирование → Выгрузить информационную базу) или скопировать папку с файлом 1Cv8.1CD, когда все пользователи вышли |
| Клиент-серверная | Полная резервная копия средствами СУБД (MS SQL, PostgreSQL); выгрузка .dt — как дополнительная |
Выгрузка .dt на большой базе идёт долго и блокирует работу. Для серверной базы копия средствами СУБД быстрее и надёжнее.
Снимок «до»: что сохранить для сравнения
Сформируйте и сохраните в файл отчёты за весь период перепроведения:
- Оборотно-сальдовую ведомость по всем счетам.
- ОСВ по счетам 41, 10, 43 с развёрнутым субконто по номенклатуре — здесь чаще всего меняется себестоимость.
- ОСВ по 60 и 62 — расчёты с контрагентами.
- Регламентированную отчётность, уже сданную за этот период (декларации по НДС и налогу на прибыль).
После перепроведения те же отчёты сравнивают с сохранёнными. Без снимка «до» вы не узнаете, что изменилось и почему.
Даты запрета изменения и закрытые периоды
Если в базе включены даты запрета изменения, документы раньше этой даты не перепроведутся — программа выдаст ошибку о запрете. Настройка находится в разделе Администрирование (в БП 3.0 — в настройках проведения документов).
Решите заранее, нужно ли трогать закрытые периоды. Перепроведение квартала, за который уже сдана отчётность, может изменить налоговую базу. Тогда придётся подавать уточнённые декларации.
Штатные способы перепровести документы в 1С
Групповое перепроведение в 1С:Бухгалтерии 3.0
- Откройте раздел
Операции→ «Проведение документов». - Укажите период: начало — дата, с которой появилась ошибка, конец — текущая дата или конец нужного месяца.
- Нажмите «Провести».
- Дождитесь окончания. Документы, которые не провелись, программа покажет списком с причинами.
Обработка проводит документы в хронологическом порядке. Регламентные операции закрытия месяца (амортизация, списание расходов, закрытие счетов 20, 25, 26) после перепроведения нужно выполнить заново — через Операции → «Закрытие месяца», месяц за месяцем, от раннего к позднему.
В помощнике «Закрытие месяца» БП 3.0 есть пункт перепроведения документов за месяц. Если программа сама его предлагает, удобнее перепроводить отсюда: обработка сразу продолжит закрытие.
Если обработки в меню нет
В других конфигурациях команда группового проведения может называться иначе или лежать в другом разделе. Найдите её через «Все функции»:
- Включите команду: главное меню (≡) →
Сервис→Параметры→ флажок «Отображать команду “Все функции”». - Откройте «Все функции» → ветку «Обработки».
- Найдите в списке обработку, в названии которой есть слово «проведение».
В ЗУП 3.1 и УТ 11 массовое перепроведение всей базы делают реже: там документы связаны расчётами и резервами, и массовый перезапуск требует понимания, как устроена конфигурация. Если штатной обработки нет, используйте внешнюю из следующего раздела — только на копии базы.
Внешняя обработка и скрипт перепроведения
Когда штатного инструмента нет или нужно перепровести только определённые виды документов, пишут внешнюю обработку. Она собирает все проведённые документы за период, сортирует их по дате и проводит по одному.
Создайте в Конфигураторе внешнюю обработку (Файл → Новый → «Внешняя обработка»), добавьте на форму два поля дат и кнопку. В модуле формы:
&НаСервереБезКонтекста
Процедура ПерепровестиНаСервере(НачалоПериода, КонецПериода)
Список = Новый ТаблицаЗначений;
Список.Колонки.Добавить("Дата");
Список.Колонки.Добавить("Ссылка");
Для Каждого МетаДок Из Метаданные.Документы Цикл
Если МетаДок.Проведение <> Метаданные.СвойстваОбъектов.Проведение.Разрешить Тогда
Продолжить;
КонецЕсли;
Запрос = Новый Запрос;
Запрос.Текст = СтрШаблон(
"ВЫБРАТЬ Д.Ссылка КАК Ссылка, Д.Дата КАК Дата
|ИЗ Документ.%1 КАК Д
|ГДЕ Д.Проведен И Д.Дата МЕЖДУ &Начало И &Конец", МетаДок.Имя);
Запрос.УстановитьПараметр("Начало", НачалоДня(НачалоПериода));
Запрос.УстановитьПараметр("Конец", КонецДня(КонецПериода));
Выборка = Запрос.Выполнить().Выбрать();
Пока Выборка.Следующий() Цикл
ЗаполнитьЗначенияСвойств(Список.Добавить(), Выборка);
КонецЦикла;
КонецЦикла;
Список.Сортировать("Дата");
Для Каждого Строка Из Список Цикл
Попытка
Объект = Строка.Ссылка.ПолучитьОбъект();
Объект.Записать(РежимЗаписиДокумента.Проведение);
Исключение
ЗаписьЖурналаРегистрации("Перепроведение",
УровеньЖурналаРегистрации.Ошибка, , Строка.Ссылка, ОписаниеОшибки());
КонецПопытки;
КонецЦикла;
КонецПроцедуры
Что важно в этом скрипте:
- ✅ берутся только документы с флажком «Проведен» — черновики и помеченные на удаление не трогаются;
- ✅ ошибка одного документа не останавливает обработку, а пишется в журнал регистрации;
- ⚠️ сортировка идёт по дате с точностью до секунды; документы с одинаковым временем проведутся в произвольном порядке. Для большинства задач это не критично, но для складского учёта со списанием в одну секунду проверьте результат;
- ⚠️ скрипт проводит всё подряд, включая регламентные документы закрытия месяца. В БП их лучше исключить из списка по имени вида документа и выполнить заново через помощник.
Внешняя обработка вызывает те же процедуры проведения, что и кнопка «Провести». Но она не знает о логике помощников конфигурации. Запускайте её сначала на копии базы.
Для ограничения видами документов добавьте перед запросом проверку Если СписокВидов.Найти(МетаДок.Имя) = Неопределено Тогда Продолжить; КонецЕсли;, где СписокВидов — массив нужных имён.
Перепроведение в файловой и клиент-серверной базе
Сам алгоритм одинаков, различаются скорость, блокировки и нагрузка на оборудование.
| Параметр | Файловая база | Клиент-серверная база |
|---|---|---|
| Где выполняется проведение | На компьютере, где открыта база (или на сервере публикации) | В рабочих процессах сервера 1С |
| Работа других пользователей | Сильно замедляется, возможны ошибки блокировки | Возможна, но документы периода будут блокироваться |
| Скорость | Ограничена диском, где лежит 1Cv8.1CD | Зависит от СУБД, памяти и дисков сервера |
| Типичная проблема | Сетевой диск и антивирус, проверяющий файл базы | Рост журнала транзакций СУБД, нехватка места |
Файловая база
- Запускайте перепроведение на компьютере, где физически лежит база, а не по сети — разница в скорости бывает в разы.
- Попросите пользователей выйти. Монопольный режим для проведения не нужен, но одновременная работа даёт конфликты блокировок и замедляет всех.
- Добавьте папку базы в исключения антивируса на время работ.
Клиент-серверная база
- Запускайте во внерабочее время. Проведение одного документа — это транзакция, и пока она идёт, пересекающиеся данные заблокированы для других.
- На MS SQL с полной моделью восстановления журнал транзакций за ночь может вырасти на десятки гигабайт. Проверьте свободное место на диске с журналом заранее.
- Длительную операцию удобнее запускать в фоновом задании, чтобы закрытие клиента не прерывало работу.
Если перепроведение «зависло», не завершайте рабочий процесс сервера 1С без необходимости: оборвутся сеансы всех пользователей этой базы, а текущая транзакция откатится. Сначала посмотрите в консоли кластера, какой сеанс выполняет операцию и сколько он уже работает.
Проверка результата и ошибки после перепроведения
После завершения сравните отчёты с сохранёнными. Совпадение ОСВ по счетам, где ничего не должно было измениться (51, 68, 69, 70), подтверждает, что процесс прошёл без потерь. Изменения по 41, 10, 43, 90 — ожидаемы, если причиной была себестоимость.
Затем разберите документы, которые не провелись. Их список выдаёт штатная обработка; для внешнего скрипта откройте журнал регистрации (Администрирование → «Обслуживание» → «Журнал регистрации») с отбором по событию «Перепроведение».
Если после перепроведения отчёты всё равно показывают странные остатки, запустите пересчёт итогов: «Все функции» → «Стандартные» → «Управление итогами». Это безопасная операция, она не меняет движения документов, а только пересчитывает накопленные итоги регистров.
Если перепроведение не исправило учёт
Бывает, что документы проведены без ошибок, а остатки по-прежнему не сходятся. Вероятные причины и проверка:
- Ошибка в самих данных, а не в движениях. Неверная цена в поступлении или не тот счёт учёта перепроведением не исправятся — исправьте документ и проведите его.
- Не выполнено закрытие месяца после перепроведения. Себестоимость продаж в БП 3.0 окончательно считается регламентной операцией, а не документом реализации.
- Повреждение базы. Если при проведении появляются системные ошибки платформы, нужен Конфигуратор →
Администрирование→ «Тестирование и исправление». Эта операция требует монопольного доступа: все пользователи должны выйти. Запускайте её только после резервной копии. - Ручные операции. Операции, введённые вручную, перепроведение не пересчитывает: в них то, что ввёл бухгалтер. Проверьте их отдельно по журналу операций.
Если хотите посмотреть, что изменилось в конкретном документе, восстановите резервную копию «до» в отдельную базу и сравните проводки документа в двух базах. Это быстрее, чем гадать по итоговым отчётам.
Как реже перепроводить базу и ускорить процесс
Массовое перепроведение — признак того, что учёт ведётся с разрывами. Несколько привычек сокращают потребность в нём:
- 📌 Даты запрета изменения. Установите дату запрета на конец последнего закрытого периода — ввод задним числом станет невозможен без осознанного решения.
- 📌 Ввод в хронологии. Поступления — раньше реализаций. Если документ пришёл с опозданием, ставьте ему корректное время дня, чтобы он встал перед расходом.
- 📌 Ежемесячное закрытие. Закрывайте каждый месяц, не накапливайте квартал. Перепроведение одного месяца идёт минуты, года — часы.
- 📌 Регулярное обслуживание. Для серверной базы — плановое обновление статистики и обслуживание индексов в СУБД. Для файловой — периодическое тестирование и исправление по регламенту.
- 📌 Перепроведение по частям. Большой период перепроводите по месяцам: ошибку в марте исправите до того, как она испортит апрель–декабрь.
Ускоряет процесс и железо: SSD под базу или под файлы СУБД сокращает время проведения заметнее, чем добавление памяти.