Как выполнить свертку (обрезание) базы 1С:УНФ и правильно перенести остатки на новый период?

Программист 1С v8.3 (Обычные формы) 1С:Управление нашей фирмой Управленческий учет Торговля и дистрибуция
← На главную

С течением времени любая информационная база 1С:Управление нашей фирмой (УНФ) неизбежно увеличивается в объеме. Это приводит к замедлению формирования отчетов, росту времени на создание резервных копий и общую деградацию производительности системы. Оптимальным решением в такой ситуации является свертка информационной базы — процедура удаления неактуальных документов за прошлые периоды с сохранением актуальных остатков на определенную дату (дату свертки).

В этой статье мы подробно разберем, как подготовиться к свертке, какие инструменты использовать и на что обратить внимание, чтобы не «сломать» учетную логику программы, особенно в части заказов и резервов.

Зачем нужна свертка и какие задачи она решает

Рассмотрим основные цели, которые мы преследуем при обрезании базы:

Анализ идеологии УНФ: главная сложность — Заказы

Прежде чем приступать к техническим действиям, проанализируем специфику 1С:УНФ. В отличие от простой торговой системы, УНФ активно использует механизм двойного измерения в регистрах накопления. Речь идет о заказах покупателей и заказах на производство.

Выясним причину, почему это важно: практически все остатки в УНФ хранятся в разрезе документов-оснований. Если на дату свертки у вас есть незакрытый ЗаказПокупателя, по которому товар уже зарезервирован, но еще не отгружен, простого переноса остатка товара на склад будет недостаточно. Программа должна «понимать», что этот товар закреплен за конкретным заказом. Если мы удалим старые заказы, но оставим остатки товаров, мы получим разрыв в регистрах Запасы и ЗаказыПокупателей, что приведет к невозможности корректного расчета себестоимости при будущей отгрузке.

Способ 1: Использование штатной обработки свертки

Для старых версий конфигураций (таких как УНФ 1.3 на платформе 8.2) штатного встроенного помощника может не быть. В этом случае мы рекомендуем обратиться к универсальной обработке СверткаИнформационнойБазы.epf, которую можно найти на диске ИТС (Информационно-технологическое сопровождение).

Разберем по шагам алгоритм работы с этой обработкой:

  1. Создание копии: Всегда выполняйте свертку в копии базы. Никогда не делайте это на «живой» системе без предварительной проверки.
  2. Настройка даты: Устанавливаем дату свертки (например, 31 декабря 23:59:59).
  3. Формирование остатков: Обработка анализирует регистры накопления (такие как Запасы, РасчетыСКонтрагентами, ДенежныеСредства) и создает документы ВводНачальныхОстатков или Операция.
  4. Пометка на удаление: После успешного создания остатков обработка помечает старые документы на удаление.

Важный момент: стандартная обработка часто требует доработки под специфические регистры сведений УНФ, которые не связаны напрямую с регистраторами. Проанализируем ситуацию: если в базе есть сложные графики платежей или серийные номера, проверьте, перенеслись ли они в новые документы ввода остатков.

Способ 2: Метод переноса в «чистую» базу (рекомендуемый)

Этот метод считается наиболее надежным, так как он гарантирует отсутствие «хвостов» в базе данных. Посмотрим, как реализовать этот процесс:

Шаг 1. Перенос справочников. Используем обработку ВыгрузкаЗагрузкаДанныхXML.epf. Переносим основные справочники: Номенклатура, Контрагенты, Спецификации, Договоры. Это позволит сохранить внутренние идентификаторы (GUID), что важно для будущих синхронизаций.

Шаг 2. Получение остатков. В старой базе формируем отчеты Остатки запасов, Задолженность контрагентов по срокам долга и Остатки денежных средств на дату свертки. Сохраняем эти данные в формат Excel.

Шаг 3. Загрузка остатков. В новой, пустой базе используем стандартную обработку Загрузка данных из табличного документа. Мы создаем новые документы ВводНачальныхОстатков, сопоставляя колонки из Excel с реквизитами табличных частей документов 1С.

Пример программного формирования документа ввода остатков (условно):


НовыйДокумент = Документы.ВводНачальныхОстатков.СоздатьДокумент();
НовыйДокумент.Дата = ДатаСвертки;
НовыйДокумент.Организация = Справочники.Организации.НайтиПоНаименованию("Наша Фирма");

Для Каждого СтрокаИзExcel Из ТаблицаДанных Цикл
    НоваяСтрока = НовыйДокумент.Запасы.Добавить();
    НоваяСтрока.Номенклатура = Справочники.Номенклатура.НайтиПоКоду(СтрокаИзExcel.Код);
    НоваяСтрока.Количество = СтрокаИзExcel.Количество;
    НоваяСтрока.Сумма = СтрокаИзExcel.Сумма;
КонецЦикла;

НовыйДокумент.Записать(РежимЗаписиДокумента.Проведение);

Техническая очистка для баз на PostgreSQL

Если ваша база работает под управлением PostgreSQL (как указано в примере автора вопроса — версия 9.0.3), простого удаления документов недостаточно для уменьшения физического размера файла базы данных. Рассмотрим подробнее необходимые действия:

После удаления помеченных объектов база данных на уровне файловой системы все еще будет занимать прежний объем. Чтобы высвободить место, необходимо выполнить регламентные операции на сервере БД:

Рекомендации по контролю остатков

После проведения свертки крайне важно убедиться, что «цифры сошлись». Проанализируем, какие отчеты нужно сравнить в старой и новой базах:

  1. Оборотно-сальдовая ведомость (управленческая): итоговые суммы по счетам учета должны совпадать до копейки.
  2. Ведомость по запасам: сверяем количество и себестоимость в разрезе складов и номенклатурных позиций.
  3. Взаиморасчеты: проверяем сальдо по каждому контрагенту и договору.

Важное предостережение: Если вы решили оставить «незакрытые» заказы покупателей прошлых лет, их придется перенести как документы (вместе с цепочкой связанных документов) или отразить их остатки в специализированных разделах ввода остатков, иначе контроль остатков при отгрузке в новом периоде будет выдавать ошибки о нехватке зарезервированного товара.

Таким образом, свертка УНФ — это не только технический запуск обработки, но и глубокий аудит текущего состояния учета. Выбор метода (штатная обработка или перенос в новую базу) зависит от чистоты ваших данных и необходимости сохранения истории справочников.

← На главную