Почему не заполняется контактная информация контрагента в БП 3.0 и как это исправить?

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

В практике работы с конфигурацией 1С:Бухгалтерия предприятия 3.0 (БП 3.0) нередко встречается ситуация, когда поля ввода адресной и контактной информации в карточке контрагента начинают отображаться некорректно. Данные либо не отображаются вовсе, либо их невозможно отредактировать. При этом при попытке открыть почтовый или юридический адрес система выдает критическую ошибку: Значение не является значением объектного типа (Вид) в общем модуле УправлениеКонтактнойИнформациейКлиент.

Разберем подробно причины этого поведения и пошагово рассмотрим способы восстановления работоспособности базы данных.

Анализ симптомов и поиск причины

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

  1. Разрушение иерархии: Если зайти в справочник «Виды контактной информации», можно увидеть «кашу» — все элементы (адреса, телефоны, email) выстроены одним списком, а группы (например, «Контактная информация справочника Контрагенты») исчезли или превратились в обычные элементы.
  2. Потеря предопределенности: Система перестает воспринимать элементы справочника как системные (предопределенные). Из-за этого программные модули не могут найти нужный Вид информации по его внутреннему идентификатору.
  3. Ошибка в коде: В модуле УправлениеКонтактнойИнформациейКлиент на строке 107 (или аналогичной в разных релизах) происходит обращение к свойству ДанныеСтроки.Вид. Если связь между данными в таблице и метаданными разорвана, ДанныеСтроки не содержат ожидаемого объекта, что приводит к аварийному завершению работы.

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

Способ 1: Сброс настроек и проверка кэша

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

  1. Очистка кэша: Удалим базу из списка и добавим её заново, либо вручную очистим папки Local и Roaming в профиле пользователя.
  2. Сброс настроек формы: Зайдем в карточку контрагента под пользователем с полными правами. Выберем Еще — Изменить форму, затем в открывшемся окне нажмем Еще — Установить стандартные настройки.
  3. Проверка под другим пользователем: Если под новым пользователем проблема сохраняется, значит, дело в данных самой информационной базы.

Способ 2: Восстановление предопределенных элементов программно

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

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


// Инициализация восстановления предопределенных элементов
Справочники.ВидыКонтактнойИнформации.УстановитьПредопределенныеЭлементы();
ИнформационнаяБаза.ОбновитьПредопределенныеДанные();

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

Способ 3: Использование встроенных процедур обновления БСП

Конфигурация БП 3.0 построена на базе Библиотеки стандартных подсистем (БСП), которая содержит механизмы регенерации контактной информации. Проанализируем ситуацию: возможно, после обновления или сбоя не отработали фоновые процедуры.

  1. Запустим 1С в режиме «Предприятие» с параметром командной строки /C СтартОбновленияИнформационнойБазы.
  2. В некоторых случаях помогает запуск обработки ОбновлениеИнформационнойБазы через «Функции для технического специалиста». Найдем в списке процедур те, что связаны с контактной информацией, и запустим их выполнение вручную.

Способ 4: Ручное исправление иерархии через «Групповое изменение реквизитов»

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

  1. В настройках обработки обязательно установим флажок «Показывать служебные реквизиты».
  2. Выберем объект — Виды контактной информации.
  3. Для элементов, которые должны относиться к контрагентам, найдем реквизит Родитель и укажем соответствующую группу (например, «Контактная информация справочника Контрагенты»).
  4. Если сама группа потеряла признак «Это группа», это исправить сложнее — потребуется программная обработка, так как этот реквизит недоступен для редактирования в стандартном интерфейсе.

Пример программного исправления признака группы:


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

Способ 5: Тестирование и исправление (ТИИ) с созданием объектов

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

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

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

Особенности перехода с версии 2.0

Если проблема возникла сразу после перехода с 1С:Бухгалтерии 2.0 на 3.0, проанализируем процесс конвертации. В старой версии адресная информация хранилась в виде строк, а в новой — в специализированных хранилищах и табличных частях. Если этап конвертации данных не завершился успешно, справочник видов контактной информации останется пустым или заполненным частично.

В этом случае рекомендуется выполнить выгрузку справочника ВидыКонтактнойИнформации из пустой типовой базы того же релиза с помощью обработки «Выгрузка и загрузка данных XML» и загрузить его в проблемную базу. При загрузке система сопоставит элементы по GUID, и иерархия будет восстановлена.

Важно: Перед любыми манипуляциями с данными справочников обязательно создавайте резервную копию информационной базы!

← На главную