Как перенести документы из 1С:Управление торговлей 11.0 в 11.3?

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

Рассмотрим типовую и сложную ситуацию: рабочая база конфигурации 1С:Управление торговлей долгое время обновлялась с редакции 11.0 до 11.3. За время подготовки и обновления пользователи продолжали оформлять первичные документы в старой рабочей базе 11.0. В результате возникла необходимость перенести так называемую «дельту» накопленных документов (несколько сотен или тысяч штук) в обновленную базу 11.3.

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

Причины архитектурных сложностей между версиями 11.0 и 11.3

Между редакциями 11.0 и 11.3 разработчики фирмы «1С» кардинально изменили внутреннюю архитектуру программы:

  1. Партионный учет и расчет себестоимости: В версии 11.0 применялся старый механизм (регистры ПартииТоваровНаСкладах), а в 11.3 работает партионный учет версии 2.2 с интервальными регистрами и фоновым расчетом себестоимости.
  2. Механизм взаиморасчетов: В версии 11.3 реализована архитектура онлайн-взаиморасчетов с обязательным формированием ключей аналитики по партнерам, договорам и расчетным документам.
  3. Служебные реквизиты: В табличных частях документов появились скрытые служебные реквизиты (ключи строк, ключи аналитики номенклатуры, статусы согласования). Без их корректного заполнения типовые модули проведения не могут сформировать записи в регистрах.
  4. Ограничения механизма обновления: Попытка накатить файл .cf сразу из 11.3 на 11.0 блокируется Библиотекой стандартных подсистем (БСП) с ошибкой вида Недопустимая попытка обновления с версии 11.0, поскольку обработчики обновления должны отрабатывать последовательно в режиме «1С:Предприятие».

Способ 1. Обновление копии базы по цепочке релизов и штатный перенос XML

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

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

  1. Создание копии базы 11.0: Берем исходную базу 11.0 с актуальными созданными документами.
  2. Последовательное обновление по цепочке: Обновляем конфигурацию по контрольным релизам. Прямой переход невозможен, поэтому обновление выполняется в несколько шагов («прыжков»). Например, рабочий маршрут перехода:
    11.0.8.8 → промежуточные релизы ветки 11.1 → 11.2.2.94 → 11.2.2.119 → 11.2.3.95 → 11.3.3.163.
  3. Выполнение отложенных обработчиков: На каждом ключевом релизе обязательно запускаем базу в режиме «1С:Предприятие» под учетной записью с административными правами. Дожидаемся 100% выполнения всех регламентных процедур в обработке «Результаты обновления программы».
  4. Выгрузка документов через штатную обработку: Когда копия доведена до того же точного релиза, что и целевая рабочая база 11.3, открываем внешнюю или встроенную обработку ВыгрузкаЗагрузкаДанныхXML:
    - Выбираем период, за который создавались новые документы.
    - Отмечаем нужные виды документов (например, РеализацияТоваровУслуг, ПоступлениеТоваровУслуг, ПриходныйКассовыйОрдер).
    - Формируем XML-файл.
  5. Загрузка данных в рабочую базу 11.3: В целевой рабочей базе открываем ту же обработку ВыгрузкаЗагрузкаДанныхXML и загружаем сформированный файл. Так как справочники синхронизируются по уникальным идентификаторам (UUID), дубли не возникнут, а документы лягут на свои места.

Способ 2. Загрузка через COM-соединение с программным проведением

Если цепочка обновлений базы занимает слишком много времени, можно использовать перенос через COM-соединение с программным заполнением и проведением на стороне 11.3.

Рассмотрим логику работы такой обработки:

  1. Подключаемся из базы-приемника (11.3) к базе-источнику (11.0) через COM-объект V83.COMConnector.
  2. Выбираем выборкой документы за нужный период.
  3. В базе 11.3 создаем новый документ соответствующего типа через метод СоздатьДокумент().
  4. Обязательно вызываем метод ОбработкаЗаполнения() для первичной инициализации обязательных реквизитов конфигурации 11.3.
  5. Заполняем шапку и строки табличной части данными из базы 11.0.
  6. Для корректного пересчета служебных ключей и налогов вызываем штатные процедуры пересчета из модуля менеджера или формы документа.
  7. Записываем объект в режиме проведения:

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

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

Способ 3. Использование формата EnterpriseData

Если в обеих конфигурациях присутствует подсистема обмена через универсальный формат данных (EnterpriseData):

  1. Настраиваем синхронизацию данных через универсальный формат без подключения к другой программе (выгрузка в файл).
  2. На стороне 11.0 выгружаем данные по составу плана обмена с фильтром по дате.
  3. На стороне 11.3 загружаем полученный файл обмена через форму синхронизации данных. При загрузке типовые алгоритмы БСП самостоятельно трансформируют данные в структуры реквизитов 11.3.

Обязательные действия после переноса данных

После того как документы перенесены в рабочую базу 11.3 любым из способов, выполним следующие контрольные шаги:

  1. Проверка статусов документов: Если в базе 11.3 включена функциональная опция использования статусов (заказов, накладных), убедимся, что загруженные документы имеют статус «Реализовано» или «К отгрузке», иначе движения по регистрам остатков могут не зафиксироваться.
  2. Проверка договоров и соглашений: В 11.3 изменились правила ведения договоров при онлайн-расчетах. Проверим, корректно ли привязались типовые/индивидуальные соглашения и договоры с контрагентами.
  3. Закрытие месяца: Перейдем в раздел Финансовый результат и контроллинг → Закрытие месяца и выполним регламентные процедуры за весь период перенесенных документов (актуализация движений по взаиморасчетам, расчет партий и себестоимости).
← На главную