Как правильно разделить одну базу данных 1С на две по годам?

Системный администратор 1С v8.3 (Управляемые формы) IT и автоматизация бизнеса
← На главную

В практике администрирования и поддержки решений на платформе 1С часто возникает задача разделения единой информационной базы на несколько частей. Обычно это связано с ростом объема данных, замедлением работы системы или необходимостью передать архивную часть учета в другое подразделение. В нашей статье мы подробно разберем, как разделить базу данных объемом около 600 МБ (в формате .dt) на два периода: 2014–2017 гг. и 2017–2019 гг.

Для базы такого небольшого объема сложные схемы с программированием или привлечением дорогостоящих специалистов избыточны. Мы проанализируем три основных метода решения этой задачи, детально разберем пошаговый алгоритм для каждого из них, а также ответим на сложный методологический вопрос о «переходящих» документах и проводках.

Важнейший этап: Подготовка и резервное копирование

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

  1. Запустим исходную базу данных в режиме Конфигуратор.
  2. Создадим резервную копию через меню Администрирование — Выгрузить информационную базу.... Сохраним полученный файл .dt в надежное место.
  3. Для выполнения работ создадим две независимые рабочие копии базы назовем их База_Архив (2014–2017) и База_Новая (2017–2019). Оригинальную базу оставим нетронутой.
  4. В обеих копиях выполним регламентные операции: закроем все месяцы, проведем актуализацию расчетов и пересчет итогов.

Теперь рассмотрим методы разделения баз данных.

---

Метод 1. Свертка и очистка копий (Рекомендуемый метод)

Этот метод является наиболее методологически верным, поскольку он гарантирует сохранность бухгалтерских и управленческих остатков в новой базе на начало нового периода, а также сохраняет неизменной историю в архивной базе.

Шаг 1. Настройка Базы_Новой (период 2017–2019 гг.)

Мы не можем просто удалить документы прошлых лет (2014–2016 гг.) из этой базы. Если мы это сделаем, то на 1 января 2017 года у нас будут нулевые остатки на банковских счетах, пустые склады и отсутствие взаиморасчетов с контрагентами. Нам необходимо выполнить процедуру свертки.

Разберем процесс свертки по шагам:

  1. Запустим Базу_Новую в режиме предприятия под пользователем с полными правами.
  2. Перейдем в раздел Администрирование — Обслуживание — Свертка информационной базы (в зависимости от конфигурации путь может быть: НСИ и администрирование — Сервис — Свертка информационной базы).
  3. Укажем дату свертки — 31.12.2016. Это значит, что все остатки сформируются ровно на 01.01.2017.
  4. На этапе настройки выберем рекомендуемые параметры для регистров сведений и накопления. Программа автоматически создаст документы Ввод остатков по всем разделам учета.
  5. Запустим процесс свертки. В нашей небольшой базе (600 МБ) этот процесс займет не более 15–20 минут.
  6. После успешного завершения свертки программа пометит старые документы (за 2014–2016 гг.) на удаление.
  7. Перейдем в раздел Администрирование — Удаление помеченных объектов. Выберем автоматический режим и удалим все старые документы.
  8. Откроем базу в режиме Конфигуратор, перейдем в Администрирование — Тестирование и исправление, установим флажок Сжатие таблиц информационной базы и запустим процесс. Это физически освободит место на диске и ускорит работу новой базы.

Шаг 2. Настройка Базы_Архива (период 2014–2017 гг.)

В архивной базе остатки на конец периода рассчитывать не нужно — она должна остаться простым историческим хранилищем. Наша задача здесь — просто удалить все документы, которые были созданы после 31.12.2017.

Выполним это по шагам:

  1. Запустим Базу_Архив в режиме предприятия.
  2. Воспользуемся стандартным инструментом Групповое изменение реквизитов (раздел Администрирование — Обслуживание — Корректировка данных).
  3. В поле «Выбирать элементы» укажем все виды документов. Настроим отбор: Дата — Больше или равно — 01.01.2018 00:00:00.
  4. Внизу окна обработки перейдем в Дополнительные параметры и установим флажок Показывать служебные реквизиты.
  5. Найдем реквизит ПометкаУдаления и установим его в значение Да. Нажмем кнопку Изменить реквизиты. Все документы за период 2018–2019 гг. получат пометку на удаление.
  6. Если вы хотите автоматизировать этот процесс или у вас возникли сложности с групповой обработкой, можно воспользоваться простым программным кодом в обработке. Рассмотрим пример кода для пометки на удаление документов определенного типа за нужный период:

Выборка = Документы.РеализацияТоваровУслуг.Выбрать(Дата("20180101000000"), Дата("20191231235959"));
Пока Выборка.Следующий() Цикл
    ОбъектДок = Выборка.ПолучитьОбъект();
    Если Не ОбъектДок.ПометкаУдаления Тогда
        ОбъектДок.УстановитьПометкуУдаления(Истина);
    КонецЕсли;
КонецЦикла;
  1. После пометки документов перейдем в стандартный интерфейс Удаление помеченных объектов и удалим ненужные документы за 2018–2019 гг.
  2. Дополнительно очистим справочники. Для этого воспользуемся обработкой поиска неиспользуемых элементов справочников (удалим контрагентов, номенклатуру и договоры, по которым в архивной базе больше нет движений).
  3. Завершим процедуру запуском Тестирования и исправления со сжатием таблиц в Конфигураторе.

---

Метод 2. Использование универсальной обработки выгрузки/загрузки XML

Если конфигурации абсолютно идентичны по структуре метаданных (то есть обе базы обновлены до одного релиза), мы можем применить встроенный механизм обмена XML-данными. Нам не нужно писать сложные правила в «Конвертации данных».

Рассмотрим порядок действий:

  1. Скачаем с портала ИТС стандартную обработку ВыгрузкаЗагрузкаДанныхXML.epf для вашей версии платформы.
  2. Создадим абсолютно чистую базу данных (с пустой конфигурацией той же версии, что и исходная).
  3. В исходной базе запустим обработку ВыгрузкаЗагрузкаДанныхXML.epf через Файл — Открыть.
  4. На вкладке Выгрузка выберем период (например, с 01.01.2014 по 31.12.2017). Отметим галочками документы и справочники, которые требуется перенести.
  5. Важно: Установим флажок Выгружать объекты по ссылкам. Это предотвратит появление «битых ссылок» (объектов вида <Объект не найден>), так как программа автоматически подтянет все справочники и связанные документы, на которые ссылаются выгружаемые данные.
  6. Выгрузим данные в файл.
  7. Запустим пустую базу-приемник, откроем эту же обработку и на вкладке Загрузка выберем полученный файл. Все данные за указанный период перенесутся без потери связей.

---

Метод 3. Создание РИБ с отбором по периоду

В ходе обсуждения участники упоминали создание Распределенной информационной базы (РИБ) с последующей отвязкой узлов. Проанализируем этот метод подробнее.

В типовых конфигурациях 1С (Бухгалтерия, ERP, Управление торговлей) стандартный механизм создания РИБ поддерживает фильтрацию данных только в разрезе Организаций или Подразделений/Складов. Фильтрация «из коробки» по периодам (годам) в стандартных планах обмена не предусмотрена.

Для реализации этого метода системному администратору или программисту пришлось бы заходить в Конфигуратор, изменять правила регистрации объектов в плане обмена и писать код для фильтрации по дате документа. Учитывая небольшой размер базы (600 МБ), данный метод является избыточно сложным, трудоемким и не рекомендуется к использованию.

---

Разбор сложного нюанса: Переходящие документы и проводки

Проанализируем важный вопрос: «А если дата документа попадает в первый период (2014–2017), а его движение во второй (2017–2019), в какую базу его закидывать?»

В платформе 1С документ и его движения (проводки по бухгалтерскому учету или записи в регистрах накопления) всегда жестко связаны одной и той же датой. Ситуация, когда сам документ проведен 31 декабря 2016 года, а его проводки записаны 1 января 2017 года, технически невозможна.

Однако часто возникает логическая связь документов (так называемые «переходящие цепочки»). Например, накладная на отгрузку товаров выписана в декабре 2016 года, а оплата по ней пришла в январе 2017 года. Как с этим работать при разделении баз?

---

Итоговые рекомендации по выбору метода

Выяснив все технические детали, мы рекомендуем использовать следующий алгоритм действий:

  1. Для получения Базы_Новой (2017–2019 гг.) используйте только Метод 1 (Свертка информационной базы) на дату 31.12.2016. Это гарантирует корректный ввод начальных остатков и позволит сразу начать вести полноценный учет с нового года.
  2. Для получения Базы_Архива (2014–2017 гг.) используйте копию исходной базы, в которой с помощью групповой обработки пометьте на удаление и сотрите все документы, датированные 01.01.2018 и позже.

Этот подход убережет вас от ошибок ссылочной целостности, сэкономит время и не потребует написания сложного программного кода.

← На главную