При переносе данных между идентичными конфигурациями 1С:Розница 3.0 (или 1С:УНФ) стандартным инструментом администратора является внешняя обработка ВыгрузкаЗагрузкаДанныхXML83.epf. Однако при работе в среде новой технологической платформы 1С:Предприятие 8.5 разработчики сталкиваются с непредвиденной блокировкой: при попытке открытия или запуска выгрузки программа выдает отказ со ссылкой на несовместимый режим совместимости конфигурации, даже если в свойствах метаданных установлен параметр Не использовать.
Проанализируем ситуацию, выясним глубинную причину такого поведения платформы и подробно рассмотрим варианты решения задачи переноса справочника номенклатуры.
На первый взгляд кажется, что дело в параметрах самой конфигурации, и изменение свойства Режим совместимости в дереве метаданных решит проблему. На практике переключение этого параметра между Не использовать и предыдущими версиями не дает результата. Ошибка кроется не в базе данных, а в коде самой внешней обработки ВыгрузкаЗагрузкаДанныхXML83.epf.
Рассмотрим подробнее логику валидации окружения внутри обработки:
СистемнаяИнформация.ВерсияПриложения для считывания текущего релиза платформы.8.3).8.3. Когда обработка запускается на платформе 8.5, встроенное условие интерпретирует старшую мажорную цифру 8.5 как неподдерживаемую среду или как несоответствие режима совместимости, после чего прерывает выполнение и выбрасывает исключение.Если для решения задачи требуется использовать именно выгрузку по прямому формату XML с сохранением уникальных идентификаторов (GUID), снимем ограничение в коде обработки. Разберем по шагам, как это сделать:
ВыгрузкаЗагрузкаДанныхXML83.epf через Конфигуратор как внешний файл.ПриОткрытии или ПриСозданииНаСервере).8.5.Посмотрим на пример адаптации условия в коде модуля:
// Отключаем строгую блокировку по номеру релиза платформы
// Старый вариант проверки вызывал исключение при ВерсияПриложения вида 8.5.*
Если Лев(СистемнаяИнформация.ВерсияПриложения, 3) <> "8.3" И Лев(СистемнаяИнформация.ВерсияПриложения, 3) <> "8.5" Тогда
ВызватьИсключение "Обработка предназначена для работы на платформе 8.3 и выше.";
КонецЕсли;
Если конфигурация Розница 3.0 не использует специфичный функционал, доступный исключительно в ветке 8.5, самым быстрым способом будет временное использование платформы 8.3:
8.3.24 или 8.3.25).ВыгрузкаЗагрузкаДанныхXML83.epf без внесения правок в код.8.5.При выгрузке только одного справочника Номенклатура через XML часто возникает проблема повреждения ссылочной целостности. Конфигурация Розница 3.0 построена на едином ядре с УНФ, где карточка номенклатуры тесно связана со множеством сопутствующих структур данных.
Если выгрузить исключительно справочник Справочник.Номенклатура, в чистой базе-приемнике поля единиц измерения, категорий и ставок НДС окажутся пустыми или будут содержать битые ссылки Объект не найден. Чтобы перенос прошел корректно, обязательно включим в состав выгрузки зависимые метаданные:
КатегорииНоменклатуры, ЕдиницыИзмерения, ХарактеристикиНоменклатуры, СерииНоменклатуры, УпаковкиЕдиницыИзмерения.ШтрихкодыНоменклатуры, ЦеныНоменклатуры, СчетаУчетаНоменклатуры.Если нет необходимости переносить внутренние идентификаторы GUID всех записей или исправлять внешнюю обработку, воспользуемся штатными типовыми механизмами:
Номенклатура доступна штатная загрузка из табличного документа (Excel или CSV). Этот способ удобен тем, что алгоритм при импорте автоматически создает сопутствующие единицы измерения и штрихкоды по правилам конфигурации.