Как исправить ошибку «Сведения о виде контактной информации повреждены» при создании контрагента в 1С:Бухгалтерия 3.0?

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

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

Причины возникновения ошибки

Проанализируем механику работы подсистемы контактной информации Библиотеки стандартных подсистем (БСП). При сохранении карточки контрагента выполняется валидация и сериализация данных контактной информации в XML/JSON с помощью процедур общего модуля УправлениеКонтактнойИнформациейСлужебный (в частности, метода КонтактнаяИнформацияИзXML). Если в справочнике ВидыКонтактнойИнформации присутствует элемент, у которого реквизит Тип не заполнен или ссылается на пустое значение перечисления ТипыКонтактнойИнформации, программа прерывает запись и генерирует исключение.

К такому состоянию базы данных обычно приводят следующие события:

  1. Некорректная синхронизация данных: при обмене между 1С:Управление торговлей (УТ), 1С:УНФ или другими внешними базами правила конвертации данных создали новый элемент справочника видов контактной информации без корректного заполнения реквизита Тип.
  2. Сбои при обновлении конфигурации: не завершились регламентные или отложенные процедуры обновления информационной базы при переходе на новые версии БСП.
  3. Дублирование элементов: появление дублей стандартных предопределенных видов контактной информации с нарушенной структурой.

Способ 1. Поиск поврежденного элемента и исправление через групповое изменение реквизитов

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

Шаг 1. Локализуем поврежденный элемент в справочнике:

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

Шаг 2. Заполним реквизит через стандартную обработку:

  1. Откроем раздел «Администрирование» → «Обслуживание» → «Корректировка данных» → «Групповое изменение реквизитов».
  2. В поле «Выбирать элементы» укажем справочник Виды контактной информации.
  3. Нажмем кнопку «Дополнительные параметры» и обязательно установим флаг «Разработчикам: Показывать служебные реквизиты» (без этого реквизит Тип может быть скрыт в списке доступных полей).
  4. По ссылке «Все элементы» настроим отбор: добавим условие Тип Не заполнено (или укажем конкретный найденный элемент по ссылке/наименованию).
  5. В списке реквизитов найдем поле Тип, установим напротив него флаг и выберем значение Адрес электронной почты (для телефонных номеров — Телефон, для адресов — Адрес).
  6. Нажмем кнопку «Изменить реквизиты».

Способ 2. Программное исправление через внешнюю обработку или консоль кода

Если у вас есть права администратора и доступ к внешней обработке или консоли кода, исправить некорректный вид контактной информации можно программно в режиме ОбменДанными.Загрузка = Истина. Это позволяет обойти интерфейсные проверки и запрет на изменение служебных полей.

Посмотрим на пример программного кода для исправления вида контактной информации:


СсылкаНаВидКИ = Справочники.ВидыКонтактнойИнформации.НайтиПоНаименованию("Электронная почта");

Если ЗначениеЗаполнено(СсылкаНаВидКИ) Тогда
    ОбъектВида = СсылкаНаВидКИ.ПолучитьОбъект();
    ОбъектВида.ОбменДанными.Загрузка = Истина;
    ОбъектВида.Тип = Перечисления.ТипыКонтактнойИнформации.АдресЭлектроннойПочты;
    ОбъектВида.Записать();
    Сообщить("Реквизит 'Тип' успешно заполнен для вида: " + ОбъектВида.Наименование);
КонецЕсли;

Способ 3. Поиск и удаление дубликатов

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

  1. Перейдем в раздел «Администрирование» → «Обслуживание» → «Корректировка данных» → «Поиск и удаление дублей».
  2. Выберем область поиска: Виды контактной информации.
  3. Выполним поиск по совпадению наименования.
  4. В найденной группе выберем в качестве оригинала корректный типовой элемент с заполненным типом (обозначается значком предопределенного элемента).
  5. Нажмем кнопку «Удалить дубли». Программа автоматически заменит ссылки на поврежденный элемент во всех записанных объектах и удалит некорректную запись.

Профилактика повторного появления ошибки

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

  1. Проверка обработчиков обновления: перейдем в «Администрирование» → «Обслуживание» → «Результаты обновления программы» и убедимся, что все регламентные процедуры завершены без ошибок.
  2. Корректировка правил обмена: если используется синхронизация (КД 2.0 / КД 3.0 / EnterpriseData), настроим правила конвертации справочника ВидыКонтактнойИнформации, сопоставив реквизит Тип либо отключив создание новых видов КИ при загрузке.
← На главную