Как исправить ошибку «Не найдено ПКО с именем Справочник_Валюты» при выгрузке из БП 3.0 в КА 2

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

При переходе с конфигурации 1С:Бухгалтерия предприятия 3.0 на 1С:Комплексная автоматизация 2 (или ERP 2) пользователи часто сталкиваются с критической ошибкой на этапе выгрузки данных. Текст ошибки: «Не найдено ПКО с именем Справочник_Валюты». Эта проблема возникает даже при использовании типовых обработок перехода, идущих в составе свежих релизов программ.

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

Почему возникает ошибка: анализ причин

Разберем ситуацию глубже. Основная причина кроется в эволюции формата обмена EnterpriseData (ED). Фирма «1С» в последних релизах БП 3.0 планомерно удаляет поддержку устаревших версий формата (1.0, 1.1, 1.2, 1.4) для оптимизации конфигурации. В то же время внешние обработки «Выгрузка данных из БП 3.0.epf», которые входят в состав дистрибутивов КА 2 или ERP, зачастую продолжают обращаться к старым версиям формата, в частности к версии 1.3.

Когда обработка пытается инициализировать правила конвертации объектов (ПКО), она ищет их в менеджере обмена, соответствующем версии 1.3. Поскольку в новых релизах БП 3.0 метаданные этих форматов (XDTO-пакеты) отсутствуют, система не может сопоставить объекты, и первым же «камнем преткновения» становится справочник валют.

Способ 1: Восстановление XDTO-пакетов в конфигурации

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

Рассмотрим пошагово, как это сделать:

  1. Развернем из резервной копии или дистрибутива старый релиз Бухгалтерии предприятия (например, версию 3.0.48 или 3.0.50), где данные пакеты еще присутствовали.
  2. В конфигураторе старой базы перейдем в ветку Общие -> XDTO-пакеты.
  3. Найдем и выгрузим в файлы (через контекстное меню «Сохранить в файл») следующие пакеты:
    • EnterpriseData_1_0_4
    • EnterpriseData_1_0_beta
    • EnterpriseData_1_1_4
  4. В рабочей базе БП 3.0 включим возможность изменения конфигурации (если она закрыта на замок).
  5. Загрузим сохраненные пакеты в ветку XDTO-пакеты.
  6. Обновим конфигурацию базы данных.

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

Способ 2: Модификация кода внешней обработки выгрузки

Если вы не хотите менять конфигурацию БП 3.0, можно пойти путем исправления самой обработки Выгрузка данных из БП 3.0.epf. Проблема заключается в том, что по умолчанию она пытается использовать старый менеджер обмена. Выясним, как перенаправить ее на актуальные механизмы.

Откроем обработку в конфигураторе и перейдем в модуль формы. Найдем процедуру ПриСозданииНаСервере. Нам необходимо изменить логику выбора версии формата и схемы. Рассмотрим пример кода, который нужно внедрить:


Если ДоступныеВерсииФормата.Получить("1.3") <> Неопределено Тогда
    Объект.XMLСхема = "http://v8.1c.ru/edi/edi_stnd/EnterpriseData/1.3";
    Объект.ВерсияФормата = "1.3";
КонецЕсли;

Если ДоступныеВерсииФормата.Получить("1.4") <> Неопределено Тогда
    Объект.XMLСхема = "http://v8.1c.ru/edi/edi_stnd/EnterpriseData/1.4";
    Объект.ВерсияФормата = "1.4";
КонецЕсли;

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

КомпонентыОбмена.МенеджерОбмена = МенеджерОбменаЧерезУниверсальныйФормат;

Нам необходимо принудительно указать использование менеджера версии 1.3 (или выше, в зависимости от доступных модулей в вашей БП):

КомпонентыОбмена.МенеджерОбмена = МенеджерОбменаЧерезУниверсальныйФормат13;

После этих правок обработка станет использовать правильный программный интерфейс, существующий в текущем релизе БП 3.0.

Способ 3: Исправление ошибок в правилах обмена (Статьи ДДС)

Даже если вы запустите выгрузку, вы можете столкнуться с тем, что некоторые данные переносятся некорректно. Например, часто возникают проблемы со справочником Статьи движения денежных средств, если в нем используются группы. Выясним, как это исправить в модуле МенеджерОбменаЧерезУниверсальныйФормат (внутри обработки или конфигурации).

Найдем процедуру ДобавитьПКО_Справочник_СтатьиДДС и добавим в нее правила для обработки иерархии:


Процедура ДобавитьПКО_Справочник_СтатьиДДС(ПравилаКонвертации)
    ПравилоКонвертации = ОбменДаннымиXDTOСервер.ИнициализироватьПравилоКонвертацииОбъекта(ПравилаКонвертации);
    ПравилоКонвертации.ИмяПКО = "Справочник_СтатьиДДС";
    ПравилоКонвертации.ОбъектДанных = Метаданные.Справочники.СтатьиДвиженияДенежныхСредств;
    ПравилоКонвертации.ОбъектФормата = "Справочник.СтатьиДДС";
    
    // Добавляем обработку родителя (группы)
    НоваяСтрока = ПравилоКонвертации.Свойства.Добавить();
    НоваяСтрока.СвойствоКонфигурации = "Родитель";
    НоваяСтрока.СвойствоФормата = "Группа";
    НоваяСтрока.ИспользуетсяАлгоритмКонвертации = Истина;
    НоваяСтрока.ПравилоКонвертацииСвойства = "Справочник_СтатьиДДС_Группа";
    
    ПравилоКонвертации.ПоляПоиска.Добавить("Код,Наименование,ЭтоГруппа");
КонецПроцедуры

Дополнительные рекомендации и «подводные камни»

Проанализировав опыт специалистов, можно выделить еще несколько важных моментов при таком переходе:

  1. Проверка функциональных опций: В базе-источнике (БП 3.0) обязательно должна быть включена опция «Синхронизация данных» (Администрирование -> Синхронизация данных). Если она выключена, механизмы EnterpriseData могут инициализироваться не полностью, что приведет к ошибкам ПКО.
  2. Версия платформы: Рекомендуется использовать версию платформы 1С не ниже 8.3.12, так как в более ранних версиях работа с большими XDTO-пакетами была нестабильной.
  3. Ошибки в кассовых ордерах: Будьте готовы к тому, что в типовых правилах выгрузки «Приходного кассового ордера» может содержаться синтаксическая ошибка в запросе (часто связана с полем СтатьяДвиженияДенежныхСредств). Если выгрузка прерывается на этом документе, придется отлаживать текст запроса в ПКО документа.
  4. Единицы измерения: Часто после выгрузки в документах КА 2 не подставляются единицы измерения. Это происходит из-за различий в хранении упаковок и единиц хранения между БП и КА. После загрузки рекомендуется воспользоваться групповой обработкой справочников и документов для заполнения этих реквизитов.

Подводя итог, можно сказать, что переход с БП 3.0 на КА 2.4/2.5 — задача нетривиальная. Если стандартный помощник выдает ошибку ПКО, самым быстрым решением является временное добавление старых XDTO-пакетов в конфигурацию БП для выполнения разовой выгрузки. Если же перенос данных планируется выполнять регулярно, необходимо адаптировать внешнюю обработку выгрузки под формат EnterpriseData версии 1.5 или 1.6, которые являются актуальными для современных релизов 1С.

← На главную