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

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

При ведении учета нередко возникает ситуация, когда из-за некорректных действий пользователей или сбоев алгоритмов учета данные за прошлый период оказываются безнадежно испорчены. Самым надежным выходом в таких случаях является развертывание архивной копии базы (бэкапа) на дату до возникновения проблем. Однако сразу возникает сложная задача: за время работы предприятия в текущей («сломанной») базе уже успели набить свежие документы, которые нельзя терять. Проанализируем ситуацию и подробно разберем, какими инструментами можно перенести новые документы и сопутствующие справочники обратно в восстановленную копию.

Основной инструмент: обработка «ВыгрузкаЗагрузкаXML»

Для прямого переноса объектов между одинаковыми конфигурациями штатным и наиболее быстрым средством выступает специализированная внешняя обработка ВыгрузкаЗагрузкаXML.epf. Эту обработку можно найти на диске информационно-технологического сопровождения (ИТС) в разделе методической поддержки разработчиков конфигураций.

Главный принцип работы этой обработки — выгрузка структуры метаданных и значений реквизитов объекта «как есть» в файл XML с сохранением внутренних уникальных идентификаторов платформы (GUID). При последующей загрузке в базу-приемник объекты встают на свои места, не создавая дублей справочников, если они уже существовали до момента разделения баз.

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

Понятие выгрузки «по ссылкам» и связанных данных

Один из ключевых вопросов при настройке выгрузки: что означает опция выгрузки связанных объектов по ссылкам? Разберем это подробнее.

Когда выгружается документ (например, РеализацияТоваровУслуг или ПоступлениеТоваровУслуг), он ссылается на множество элементов справочников: контрагентов, договоры, склады, организации, единицы измерения, номенклатуру, а также строки табличных частей. Если выгрузить только сам документ без связанных объектов, в базе-приемнике реквизиты документа окажутся пустыми или будут содержать «битые» ссылки с текстом «Объект не найден».

Опция выгрузки по ссылкам указывает обработке: обойти все реквизиты выгружаемого документа и автоматически выгрузить в XML-файл все сопутствующие элементы справочников, которые в нем задействованы. Если пользователи успели завести нового поставщика, создать новый договор или добавить новые карточки товаров — они успешно переедут в приемник вместе с документом.

Ограничения и технические риски обработки «ВыгрузкаЗагрузкаXML»

При использовании данной обработки необходимо учитывать критические нюансы платформы 1С:

  1. Идентичность конфигураций: Структура метаданных в архивной копии и текущей базе обязана совпадать вплоть до каждого реквизита. Если после даты бэкапа проводились доработки конфигуратора или обновления релиза, загрузка прервется критической системной ошибкой несоответствия типов.
  2. Перезапись по GUID: Поиск существующих объектов идет строго по уникальному идентификатору. Если элемент справочника (например, реквизиты существующего контрагента или договор) был отредактирован с ошибками в сломанной базе, при выгрузке по ссылке он перезапишет правильную версию объекта в восстановленной копии.
  3. Проблема движений регистров: По умолчанию обработка выгружает не только сам документ, но и все сформированные им движения по регистрам накопления и сведений. Если загрузить документ вместе с готовыми движениями, типовой программный модуль проведения документа в базе-приемнике не отработает. Данные просто «лягут» в таблицы регистров, что может скрыть ошибки партионного учета или привести к отрицательным остаткам.

Особенности учета в «1С:Управление торговлей 10.3» после переноса

В конфигурациях с классическим партионным учетом, таких как Управление торговлей 10.3, перенос документов задним числом требует обязательных регламентных процедур. Разберем по шагам, что необходимо выполнить:

  1. Загрузка без проведения или перепроведение: Рекомендуется загружать документы без сохранения движений, либо после загрузки выполнить их полное перепроведение по хронологии.
  2. Восстановление партионного учета: В УТ 10.3 при пакетной записи документов сбивается граница последовательности партий. Необходимо зайти в интерфейс «Полный» или «Заведующий учетом», открыть обработку Проведение по партиям и восстановить границу последовательности с 1 февраля. Без этого расчет себестоимости списания в регистре ПартииТоваровНаСкладах будет некорректным.
  3. Восстановление последовательности расчетов: Обязательно запустите регламентную процедуру восстановления взаиморасчетов, иначе зачет авансов и состояние долгов по регистрам ВзаиморасчетыСКонтрагентами и РасчетыПоПриобретениюВЗаимныхРасчетах разойдутся.
  4. Проверка автонумерации: Обратите внимание на номера перенесенных документов. Если в базе используются периодические нумераторы или префиксы узлов/организаций, убедитесь, что при создании последующих документов система не выдает ошибку «Номер не уникален».

Альтернативный вариант: подключение резервной копии как узла РИБ

Рассмотрим альтернативное решение, предложенное в обсуждении: использование механизма распределенных информационных баз (РИБ).

Если восстановить базу из бэкапа и настроить между ней и текущей рабочей базой планы обмена РИБ (сделав восстановленную базу подчиненным узлом), платформа позволит выполнить штатную синхронизацию изменений. Преимущество метода — отсутствие необходимости в сторонних внешних файлах и встроенный контроль ссылочной целостности. Однако данный способ значительно сложнее в администрировании: требуется идеальное совпадение версий конфигурации, ручная регистрация изменений нужных документов на узле обмена и последующее отвязывание подчиненной базы от главного узла командой отмены главного узла в плане обмена.

Рекомендуемый регламент действий

Чтобы избежать повторной порчи базы, выполним перенос по строгому безопасному сценарию:

  1. Развернем архивную копию строго в отдельной изолированной базе (на тестовом сервере или локально), не трогая пока текущую рабочую базу.
  2. Сверим номер релиза конфигурации в обеих базах через меню «Справка — О программе». Если релизы отличаются, обновим архивную базу до версии рабочей.
  3. Откроем в рабочей базе обработку ВыгрузкаЗагрузкаXML.epf. В дереве метаданных выберем только документы, созданные после 1 февраля. Настроим отбор по периоду. Отключим флаги выгрузки служебных регистров и констант. Включим опцию выгрузки объектов по ссылкам.
  4. Выгрузим данные в файл на диск.
  5. Откроем обработку в тестовой (восстановленной) базе и выполним загрузку сформированного XML-файла.
  6. Запустим обработку «Групповое перепроведение документов» для вновь загруженных документов.
  7. Запустим обработку «Проведение по партиям» с 1 февраля для актуализации себестоимости.
  8. Сформируем контрольные отчеты («Ведомость по товарам на складах», «Ведомость по партиям товаров», «Ведомость по взаиморасчетам с контрагентами») и сопоставим остатки.
  9. После успешной проверки переименуем протестированную базу в основную рабочую и предоставим к ней доступ пользователям.
← На главную