Как исправить ошибку «Недопустимое значение параметра» при переносе данных из регистра сведений в документ?

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

При настройке обмена данными между конфигурациями с использованием Конвертации данных 2.0 часто возникают ситуации, когда источником данных выступает Регистр сведений, а приемником — ссылочный объект, например, Документ. Одной из наиболее частых проблем является критическая ошибка при загрузке: Недопустимое значение параметра (параметр номер '1') в процессе работы метода ПолучитьСсылку.

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

Понимание причины ошибки

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

В момент попытки преобразования этого значения в тип УникальныйИдентификатор происходит исключение, которое и приводит к остановке загрузки данных. Чтобы решить эту задачу, нам необходимо изменить логику поиска объекта при загрузке.

Решение: отключение поиска по УИД

Самый эффективный способ устранить проблему — отказаться от автоматического поиска по GUID для тех объектов, которые не являются ссылочными в источнике. Выполним следующие шаги:

  1. Откройте обработку Конвертация данных.
  2. Перейдите в список Правила конвертации объектов (ПКО).
  3. Найдите правило, которое отвечает за выгрузку записи вашего регистра в документ.
  4. В настройках этого ПКО найдите флажок Искать по уникальному идентификатору.
  5. Снимите этот флажок.

После отключения данной настройки система перестанет пытаться передавать GUID в пакет обмена и не будет вызывать методы, ожидающие этот идентификатор. Это позволит избежать ошибки Недопустимое значение параметра.

Настройка поиска по ключевым полям

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

  1. На вкладке Правила конвертации свойств для вашего ПКО выберите те реквизиты, которые однозначно идентифицируют запись в регистре.
  2. Установите для выбранных свойств признак Поиск.
  3. Например, если ваша запись определяется комбинацией ОбъектРемонта, ВидРемонтныхРабот и Период, отметьте их как ключевые поля.

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

Работа с табличными частями через «ВходящиеДанные»

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


// Создаем структуру для передачи данных в приемник
ВходящиеДанные = Новый Структура("ОбъектыЭкспертизы");
ВходящиеДанные.ОбъектыЭкспертизы = Новый ТаблицаЗначений;
ВходящиеДанные.ОбъектыЭкспертизы.Колонки.Добавить("ДатаСледующейЭкспертизы");
ВходящиеДанные.ОбъектыЭкспертизы.Колонки.Добавить("Объект");

// Заполняем таблицу данными из запроса
Запрос = Новый Запрос;
Запрос.Текст = "ВЫБРАТЬ ОбъектРемонта КАК Объект ИЗ РегистрСведений.торо_ЗавершенныеРемонтныеРаботы ...";
РезультатЗапроса = Запрос.Выполнить();
Выборка = РезультатЗапроса.Выбрать();

Пока Выборка.Следующий() Цикл
    СтрокаТЧ = ВходящиеДанные.ОбъектыЭкспертизы.Добавить();
    СтрокаТЧ.Объект = Выборка.Объект;
    СтрокаТЧ.ДатаСледующейЭкспертизы = ТекущаяДата();
КонецЦикла;

Убедитесь, что в ПКО установлена галочка Получать из входящих данных. Это позволит Конвертации данных использовать вашу таблицу значений для автоматического заполнения табличной части документа при создании или обновлении объекта.

Советы по отладке

Если после отключения поиска по УникальномуИдентификатору ошибки продолжаются, проанализируйте следующее:

Следуя этим рекомендациям, вы сможете успешно перенести любые нессылочные данные, включая записи регистров, в документы без системных ошибок, связанных с идентификацией объектов.

← На главную