Как перенести документы из УТ 10.3 в УТ 11.4 и почему этого нет в стандартной поставке

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

Переход с устаревшей конфигурации «Управление торговлей», редакция 10.3 на современную «Управление торговлей», редакция 11.4 — это масштабный проект. Часто пользователи и руководство компании требуют перенести из старой базы не только справочники и остатки, но и всю историю документов за последние несколько лет. При попытке сделать это стандартными средствами разработчики сталкиваются с серьезными трудностями.

В этой статье мы подробно разберем, почему фирма «1С» не создала типового механизма для переноса документов, с какими архитектурными препятствиями вы столкнетесь и как решить эту задачу с помощью программных инструментов и конфигурации «Конвертация данных 2.1».

Почему стандартный «Помощник перехода» переносит только остатки?

При запуске стандартного помощника перехода из дистрибутива УТ 11.4 (использующего обработку Выгрузка данных.epf для УТ 10.3) вы быстро обнаружите, что программа предлагает перенести только нормативно-справочную информацию (НСИ) и остатки на определенную дату. Попытка перенести документы «как есть» через этот интерфейс не предусмотрена. Это обусловлено кардинальными различиями в архитектуре двух конфигураций:

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

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

Решение проблемы с помощью «Конвертации данных 2.1»

Для создания собственных правил обмена нам понадобится специализированная конфигурация «Конвертация данных», редакция 2.1 (КД 2.1). Обратите внимание, что для обмена между УТ 10.3 и УТ 11.4 используется именно редакция 2.1, а не 3.0, поскольку УТ 10.3 построена на старой архитектуре без использования встроенной библиотеки стандартных подсистем (БСП) последних версий, на которых базируется формат EnterpriseData.

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

Шаг 1. Выгрузка структуры метаданных обеих конфигураций

Для начала работы в КД 2.1 необходимо получить xml-файлы описания метаданных обеих баз. Для этого используем внешние обработки выгрузки структуры:

Запускаем обработки в соответствующих информационных базах, сохраняем файлы структуры и загружаем их в КД 2.1 через меню «Загрузка структуры конфигурации».

Шаг 2. Создание правил конвертации объектов (ПКО)

Проанализируем сопоставление основных документов. Создаем новые ПКО в КД 2.1. Рассмотрим на примере документа «Реализация товаров и услуг»:

При настройке Правил конвертации свойств (ПКС) мы столкнемся с необходимостью заполнения обязательных реквизитов УТ 11.4, которых не было в УТ 10.3. Например, реквизит ХозяйственнаяОперация. В УТ 10.3 вид операции определялся структурой документа или перечислением, а в УТ 11 это строгое системное перечисление. Нам необходимо прописать обработчик события «Перед выгрузкой» для данного ПКС:


// В обработчике ПКС ХозяйственнаяОперация "Перед выгрузкой"
Значение = "РеализацияКлиенту";

Шаг 3. Решение проблемы «Партнер — Контрагент»

При переносе контрагентов в документах реализации или поступления крайне важно правильно заполнить реквизиты Партнер (управленческий) и Контрагент (юридический). Если справочники ранее уже переносились стандартной обработкой, необходимо настроить поиск по Уникальному Идентификатору (GUID) или по ИНН/КПП.

Проанализируем пример создания связи при переносе документа. Нам потребуется передавать партнера, связанного с контрагентом. Для этого в ПКО документа в обработчике события При загрузке или непосредственно в правилах конвертации свойств контрагента можно прописать программный поиск партнера, если он не был перенесен явно:


// Пример алгоритма в обработчике ПКО "РеализацияТоваровУслуг" -> "При загрузке"
Если ЗначениеЗаполнено(Объект.Контрагент) Тогда
    // Пытаемся найти партнера, привязанного к этому контрагенту в УТ 11.4
    Запрос = Новый Запрос;
    Запрос.Текст = 
        "ВЫБРАТЬ РАЗРЕШЕННЫЕ
        |	ПартнерыИКонтрагенты.Партнер КАК Партнер
        |ИЗ
        |	РегистрСведений.ПартнерыИКонтрагенты КАК ПартнерыИКонтрагенты
        |ГДЕ
        |	ПартнерыИКонтрагенты.Контрагент = &Контрагент";
    
    Запрос.УстановитьПараметр("Контрагент", Объект.Contragent); // Имя переменной или реквизита
    РезультатЗапроса = Запрос.Выполнить();
    Если Не РезультатЗапроса.Пустой() Тогда
        Выборка = РезультатЗапроса.Выбрать();
        Выборка.Следующий();
        Объект.Партнер = Выборка.Партнер;
    Иначе
        // Если партнер не найден, устанавливаем предопределенного "Розничный покупатель" или создаем нового
        Объект.Партнер = Справочники.Партнеры.ШаблонПартнера; 
    КонецЕсли;
КонецЕсли;

Шаг 4. Перенос табличных частей и заполнение соглашений

В документах продажи УТ 11.4 обязательным реквизитом является Соглашение. В УТ 10.3 его аналога не было. Нам необходимо принудительно создавать или подбирать типовое соглашение при загрузке документов. Без этого перенесенный документ просто не проведется.

Рассмотрим, как это реализовать в ПКС для реквизита Соглашение:


// В обработчике ПКС "Соглашение" -> "Перед выгрузкой"
// Ищем или подставляем действующее индивидуальное/типовое соглашение
// Для примера выгрузим фиксированное значение или настроим алгоритм поиска по Контрагенту
ВыгрузитьОбъект = Невостребовано;

Для надежности проще написать программный подбор соглашения на стороне приемника (в обработчике ПКО документа При загрузке):


// Поиск подходящего соглашения в УТ 11.4
Если Не ЗначениеЗаполнено(Объект.Соглашение) Тогда
    Запрос = Новый Запрос;
    Запрос.Текст = 
        "ВЫБРАТЬ ПЕРВЫЕ 1
        |	СоглашенияСКлиентами.Ссылка КАК Ссылка
        |ИЗ
        |	Справочник.СоглашенияСКлиентами КАК СоглашенияСКлиентами
        |ГДЕ
        |	СоглашенияСКлиентами.Партнер = &Партнер
        |	И СоглашенияСКлиентами.ПометкаУдаления = ЛОЖЬ";
    
    Запрос.УстановитьПараметр("Партнер", Объект.Партнер);
    Результат = Запрос.Выполнить();
    Если Не Результат.Пустой() Тогда
        Выборка = Результат.Выбрать();
        Выборка.Следующий();
        Объект.Соглашение = Выборка.Ссылка;
    Иначе
        // Если индивидуального нет, берем любое предопределенное типовое
        Объект.Соглашение = Справочники.СоглашенияСКлиентами.ПолучитьИндивидуальноеСоглашениеПоУмолчанию(); // Пример функции
    КонецЕсли;
КонецЕсли;

Альтернативное решение: использование коммерческих правил обмена

Разработка собственных правил обмена «с нуля» для десятков типов документов (Заказы, Реализации, Поступления, Платежные поручения, Счета-фактуры) — это огромный труд, требующий сотен часов работы программиста высокой квалификации. Вам придется столкнуться с рекурсивными ссылками, выгрузкой единиц измерения (которые в УТ 11 хранятся по-другому), сопоставлением складов, видов цен и т.д.

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

Рекомендуемая стратегия успешного перехода

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

  1. Наведите порядок в старой базе УТ 10.3. Перед переносом обязательно запустите обработку «Проведение по партиям», закройте кассовые смены, исправьте все отрицательные остатки на складах и устраните дубли контрагентов и номенклатуры. Отрицательные остатки при переносе превратятся в некорректные документы проведения в УТ 11.
  2. Ограничьте период переноса документов. Переносите документы только за текущий незакрытый отчетный период (например, с начала текущего года). Историю за прошлые 5 лет оставьте в старой базе. Базу УТ 10.3 переведите в режим «Только чтение» и сохраните в качестве архива для построения исторических отчетов.
  3. Тестовый перенос. Сделайте копию базы УТ 11.4, выполните перенос документов и попробуйте провести их цепочкой. Проанализируйте возникающие ошибки проведения (нехватка остатков, незаполненные обязательные реквизиты, ошибки во взаиморасчетах) и скорректируйте правила обмена.
  4. Сверка отчетов. После успешного проведения всех документов в тестовой базе УТ 11 обязательно сформируйте отчеты «Ведомость по денежным средствам», «Ведомость по товарам на складах» и «Оборотно-сальдовая ведомость» (если есть интеграция с бухгалтерией) в обеих базах за перенесенный период. Данные должны сходиться до копейки.

Соблюдение этих правил и грамотное использование программных возможностей КД 2.1 позволит вам успешно решить задачу по переносу документов и обеспечить плавный переход сотрудников в новую современную систему учета.

← На главную