Как правильно внедрить подсистему Контактная информация БСП и устранить типичные ошибки

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

Внедрение подсистемы Контактная информация (КИ) из состава Библиотеки стандартных подсистем (БСП) — задача стандартная, но часто сопряженная с неочевидными трудностями. Даже при строгом следовании инструкциям на ИТС программисты сталкиваются с тем, что список видов контактной информации остается пустым, типы данных ограничиваются только «Адресом», а при обновлении информационной базы возникают ошибки метаданных. В этой статье мы подробно разберем, как избежать этих ловушек, правильно настроить подсистемы и подготовить служебные макеты для корректной работы БСП.

Анализ настроек командного интерфейса подсистем

Одной из первых и самых неочевидных проблем является некорректная настройка свойств самих подсистем БСП в дереве метаданных. Рассмотрим ситуацию: вы добавили все необходимые объекты, но программный код БСП упорно «не видит» установленную подсистему. Проанализируем причину. Для точного определения состава и проверки версии используемой библиотеки удобно использовать обработку для получения информации о версиях БСП.

В БСП часто используется функция ОбщегоНазначения.ПодсистемаСуществует(). Эта функция проверяет наличие подсистемы в конфигурации. Однако существует важный технический нюанс: для корневой подсистемы СтандартныеПодсистемы и всех ее подчиненных узлов нельзя устанавливать свойство «Включать в командный интерфейс». Если этот флаг установлен, логика определения установленных модулей может дать сбой, и функция вернет Ложь.

Проверим настройки в вашем конфигураторе:

  1. Перейдем в дерево конфигурации.
  2. Найдем ветку Подсистемы -> СтандартныеПодсистемы.
  3. Убедимся, что для нее и для КонтактнаяИнформация свойство «Включать в командный интерфейс» выключено.

Регистрация владельца контактной информации

Чтобы ваш справочник (например, Справочник.Контрагенты) начал полноценно работать с механизмом КИ, простого включения его в ОпределяемыеТипы.ВладелецКонтактнойИнформации недостаточно. Выясним, почему список видов КИ в режиме «1С:Предприятие» может оставаться пустым.

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

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


Процедура ПриОпределенииВидовКонтактнойИнформации(ВидыКИ) Экспорт
    
    НоваяСтрока = ВидыКИ.Добавить();
    НоваяСтрока.ИмяМетаданных = "Справочник.Контрагенты";
    НоваяСтрока.Наименование = НСтр("ru = 'Контактная информация контрагентов'");
    // Указываются и другие параметры согласно документации вашей версии БСП
    
КонецПроцедуры

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

Решение проблемы с ограничением типов: почему доступен только Адрес

Часто возникает вопрос: почему при попытке создать новый вид контактной информации система предлагает выбрать только тип Адрес? Проанализируем ситуацию. Это происходит по одной из двух причин:

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

Исправление ошибки Область не найдена в макете ОписаниеИзмененийСистемы

При первом запуске системы после внедрения БСП или при обновлении версии часто возникает ошибка: «Область не найдена». Эта ошибка напрямую связана с механизмом вывода окна «Что нового?». Подсистема «Обновление информационной базы» ищет в общем макете ОписаниеИзмененийСистемы специальные именованные области.

Рассмотрим структуру этого макета. Важно помнить следующее:

Пример правильного именования областей в макете:

  1. Выделите строку и через контекстное меню (или Ctrl+Shift+N) назначьте ей имя, например, Шапка3_1_2_15.
  2. Ниже выделите область для текста изменений и назовите ее Версия3_1_2_15.

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

Работа с формой объекта и инициализация данных

Чтобы данные контактной информации не только хранились в базе, но и корректно отображались на форме, разберем необходимые программные вызовы в модуле формы вашего справочника. Простого копирования элементов формы из демо-базы недостаточно. Для быстрого поиска готовых шаблонов кода и примеров вызова различных функций библиотеки можно использовать справочник по методам БСП с примерами использования.

В обработчике ПриЧтенииНаСервере обязательно должен присутствовать вызов программного интерфейса БСП. Посмотрим на пример:


&НаСервере
Процедура ПриЧтенииНаСервере(ТекущийОбъект)
    // СтандартныеПодсистемы.КонтактнаяИнформация
    УправлениеКонтактнойИнформацией.ПриЧтенииНаСервере(ЭтотОбъект, ТекущийОбъект);
    // Конец СтандартныеПодсистемы.КонтактнаяИнформация
КонецПроцедуры

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

Инструменты диагностики: Отчет ПроверкаВнедренияБСП

Если после всех манипуляций подсистема работает нестабильно, воспользуемся мощным инструментом отладки, который поставляется в составе дистрибутива БСП. Это внешний отчет ПроверкаВнедренияБСП.erf.

Запустим этот отчет в режиме «1С:Предприятие» и выберем проверку подсистемы Контактная информация. Отчет проанализирует:

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

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

← На главную