← На главную
Рассмотрим типовую и сложную ситуацию: рабочая база конфигурации 1С:Управление торговлей долгое время обновлялась с редакции 11.0 до 11.3. За время подготовки и обновления пользователи продолжали оформлять первичные документы в старой рабочей базе 11.0. В результате возникла необходимость перенести так называемую «дельту» накопленных документов (несколько сотен или тысяч штук) в обновленную базу 11.3.
Попытка перенести данные с помощью простых правил конвертации («Конвертация данных 2.0») обычно заканчивается неудачей: документы либо не проводятся, либо формируют пустые движения по регистрам. Проанализируем, почему так происходит, и разберем надежные методы решения этой задачи.
Причины архитектурных сложностей между версиями 11.0 и 11.3
Между редакциями 11.0 и 11.3 разработчики фирмы «1С» кардинально изменили внутреннюю архитектуру программы:
- Партионный учет и расчет себестоимости: В версии 11.0 применялся старый механизм (регистры
ПартииТоваровНаСкладах), а в 11.3 работает партионный учет версии 2.2 с интервальными регистрами и фоновым расчетом себестоимости.
- Механизм взаиморасчетов: В версии 11.3 реализована архитектура онлайн-взаиморасчетов с обязательным формированием ключей аналитики по партнерам, договорам и расчетным документам.
- Служебные реквизиты: В табличных частях документов появились скрытые служебные реквизиты (ключи строк, ключи аналитики номенклатуры, статусы согласования). Без их корректного заполнения типовые модули проведения не могут сформировать записи в регистрах.
- Ограничения механизма обновления: Попытка накатить файл
.cf сразу из 11.3 на 11.0 блокируется Библиотекой стандартных подсистем (БСП) с ошибкой вида Недопустимая попытка обновления с версии 11.0, поскольку обработчики обновления должны отрабатывать последовательно в режиме «1С:Предприятие».
Способ 1. Обновление копии базы по цепочке релизов и штатный перенос XML
Это самый надежный и наименее трудоемкий способ, который гарантирует корректность структуры данных и исключает необходимость ручного написания сложных правил конвертации.
Разберем по шагам порядок действий:
- Создание копии базы 11.0: Берем исходную базу 11.0 с актуальными созданными документами.
- Последовательное обновление по цепочке: Обновляем конфигурацию по контрольным релизам. Прямой переход невозможен, поэтому обновление выполняется в несколько шагов («прыжков»). Например, рабочий маршрут перехода:
11.0.8.8 → промежуточные релизы ветки 11.1 → 11.2.2.94 → 11.2.2.119 → 11.2.3.95 → 11.3.3.163.
- Выполнение отложенных обработчиков: На каждом ключевом релизе обязательно запускаем базу в режиме «1С:Предприятие» под учетной записью с административными правами. Дожидаемся 100% выполнения всех регламентных процедур в обработке «Результаты обновления программы».
- Выгрузка документов через штатную обработку: Когда копия доведена до того же точного релиза, что и целевая рабочая база 11.3, открываем внешнюю или встроенную обработку
ВыгрузкаЗагрузкаДанныхXML:
- Выбираем период, за который создавались новые документы.
- Отмечаем нужные виды документов (например, РеализацияТоваровУслуг, ПоступлениеТоваровУслуг, ПриходныйКассовыйОрдер).
- Формируем XML-файл.
- Загрузка данных в рабочую базу 11.3: В целевой рабочей базе открываем ту же обработку
ВыгрузкаЗагрузкаДанныхXML и загружаем сформированный файл. Так как справочники синхронизируются по уникальным идентификаторам (UUID), дубли не возникнут, а документы лягут на свои места.
Способ 2. Загрузка через COM-соединение с программным проведением
Если цепочка обновлений базы занимает слишком много времени, можно использовать перенос через COM-соединение с программным заполнением и проведением на стороне 11.3.
Рассмотрим логику работы такой обработки:
- Подключаемся из базы-приемника (11.3) к базе-источнику (11.0) через COM-объект
V83.COMConnector.
- Выбираем выборкой документы за нужный период.
- В базе 11.3 создаем новый документ соответствующего типа через метод
СоздатьДокумент().
- Обязательно вызываем метод
ОбработкаЗаполнения() для первичной инициализации обязательных реквизитов конфигурации 11.3.
- Заполняем шапку и строки табличной части данными из базы 11.0.
- Для корректного пересчета служебных ключей и налогов вызываем штатные процедуры пересчета из модуля менеджера или формы документа.
- Записываем объект в режиме проведения:
ДокументОбъект.Записать(РежимЗаписиДокумента.Проведение);
Такой подход заставляет саму конфигурацию 11.3 рассчитать все необходимые ключи аналитики, регистры онлайн-взаиморасчетов и движений по складам.
Способ 3. Использование формата EnterpriseData
Если в обеих конфигурациях присутствует подсистема обмена через универсальный формат данных (EnterpriseData):
- Настраиваем синхронизацию данных через универсальный формат без подключения к другой программе (выгрузка в файл).
- На стороне 11.0 выгружаем данные по составу плана обмена с фильтром по дате.
- На стороне 11.3 загружаем полученный файл обмена через форму синхронизации данных. При загрузке типовые алгоритмы БСП самостоятельно трансформируют данные в структуры реквизитов 11.3.
Обязательные действия после переноса данных
После того как документы перенесены в рабочую базу 11.3 любым из способов, выполним следующие контрольные шаги:
- Проверка статусов документов: Если в базе 11.3 включена функциональная опция использования статусов (заказов, накладных), убедимся, что загруженные документы имеют статус «Реализовано» или «К отгрузке», иначе движения по регистрам остатков могут не зафиксироваться.
- Проверка договоров и соглашений: В 11.3 изменились правила ведения договоров при онлайн-расчетах. Проверим, корректно ли привязались типовые/индивидуальные соглашения и договоры с контрагентами.
- Закрытие месяца: Перейдем в раздел Финансовый результат и контроллинг → Закрытие месяца и выполним регламентные процедуры за весь период перенесенных документов (актуализация движений по взаиморасчетам, расчет партий и себестоимости).