При обновлении конфигурации «Бухгалтерия предприятия 3.0» до актуальных релизов (начиная с 3.0.155.23 и выше) специалисты часто сталкиваются с неприятной ситуацией в «Конвертации данных 2.1». После загрузки обновленной структуры метаданных правила обмена начинают подсвечивать объекты красным цветом, а при попытке выгрузки или загрузки данных возникает ошибка: Тип не определен (СправочникСсылка.НазначенияИспользования). В этой статье мы подробно разберем, почему это происходит и как корректно «вылечить» правила обмена.
Прежде чем приступать к исправлению, проанализируем ситуацию. Исчезновение справочника НазначенияИспользования не является случайным сбоем. Это плановое изменение архитектуры 1С, связанное с вступлением в силу новых федеральных стандартов бухгалтерского учета (ФСБУ 6/2020 и 5/2019). В последних версиях программы учет малоценного оборудования и инвентаря был значительно упрощен, и необходимость в отдельном справочнике для хранения параметров использования отпала. Теперь эти данные интегрированы в справочник Номенклатура или обрабатываются иными механизмами учета затрат.
Когда мы загружаем новую структуру XML в базу КД 2.1, программа видит, что в целевой конфигурации физически больше нет такого объекта. Однако старые Правила конвертации объектов (ПКО) и Правила конвертации свойств (ПКС) все еще хранят ссылки на этот идентификатор. Это и приводит к возникновению «битых» ссылок.
Рассмотрим наиболее правильный, с точки зрения целостности базы КД, метод — удаление объектов через интерфейс программы. Пошагово выполним следующие действия:
ПКС (правила конвертации свойств).СправочникСсылка.НазначенияИспользования. Обычно это реквизиты в документах передачи материалов в эксплуатацию или справочнике номенклатуры.НазначенияИспользования, мы сможем пометить на удаление само ПКО (Правило конвертации объекта).Операции — Удаление помеченных объектов и завершим процедуру.Если правил очень много и ручная очистка в интерфейсе занимает слишком много времени, разберем более быстрый способ — редактирование самого файла правил обмена (XML). Посмотрим, как это сделать правильно:
xml.НазначенияИспользования.<Правило> или <Свойство>, который его содержит. Если вы просто удалите текст внутри тега, файл может стать невалидным.Иногда даже после удаления ПКО и ПКС ошибка сохраняется. Проанализируем ситуацию глубже. В КД 2.1 ссылки на удаленные типы метаданных могут скрываться в местах, которые не видны при обычном просмотре списка правил:
1. Настройки поиска объектов
Если в каком-то ПКО была установлена галочка «Искать объект по полю», и это поле имело тип Назначение использования, КД будет выдавать ошибку. Проверьте вкладку «Настройки поиска» в правилах конвертации смежных объектов.
2. Глобальные и локальные алгоритмы
Часто разработчики пишут программный код в обработчиках событий. Проверим такие обработчики как ПередВыгрузкой, ПриЗагрузке или ПоляПоиска. Обычный поиск по объектам метаданных их не затронет. Рекомендуем запустить глобальный поиск по текстам всех обработчиков в базе КД по ключевому слову НазначенияИспользования.
Пример кода, который может вызывать ошибку, если он остался в обработчике ПередВыгрузкой:
// Опасный код, ссылающийся на удаленный объект
Если ТипЗнч(Источник.Владелец) = Тип("СправочникСсылка.НазначенияИспользования") Тогда
// Какая-то логика
КонецЕсли;
Такой код нужно либо закомментировать, либо переписать с учетом новой логики учета в БП 3.0.
3. Параметры обмена
Проверим вкладку «Параметры» в настройках правил обмена. Если там определен параметр с типом СправочникСсылка.НазначенияИспользования, он также будет подсвечен красным и заблокирует нормальную работу обмена.
Разберем, что делать с данными, которые раньше передавались через этот справочник. Поскольку в целевой базе (БП 3.0.155+) этого объекта нет, нам нужно перенаправить потоки информации:
ПКС (правиле конвертации свойства) теперь следует использовать программную обработку для поиска подходящей Номенклатуры.Важный момент по очистке кэша:
Иногда после загрузки исправленных правил 1С продолжает «ругаться» на старую ошибку. Это происходит из-за кэширования правил в регистрах сведений. Обязательно проверьте регистр Настройки обмена данными или Правила для обмена данными в целевой базе Бухгалтерии. Убедитесь, что версия правил обновилась, и при необходимости очистите записи регистра перед повторной загрузкой.
Для массовой замены битых ссылок внутри самой базы КД 2.1 (если вы решили не править XML вручную) крайне эффективно использовать обработку «Поиск и замена значений». Это позволит быстро заменить ссылки на удаленный объект на «Пустую ссылку» соответствующего типа или на другой объект-заменитель, что разблокирует возможность штатного удаления записей через интерфейс.