В процессе работы с типовой конфигурацией «1С:Бухгалтерия предприятия 3.0» (БП 3) пользователи и администраторы иногда сталкиваются с ситуацией, когда в карточке контрагента или организации внезапно исчезают поля для ввода юридического и фактического адресов. При этом в справочнике Виды контактной информации нужные элементы могут отсутствовать в интерфейсе, хотя в Конфигураторе они помечены как предопределенные. В этой статье мы подробно разберем причины возникновения такой ошибки и рассмотрим пошаговые методы восстановления корректной работы программы.
Для начала проанализируем, как устроена подсистема работы с адресами в современных конфигурациях на базе Библиотеки стандартных подсистем (БСП). В БП 3 адреса, телефоны и электронная почта не являются обычными реквизитами справочника Контрагенты. Они хранятся в табличных частях или специальных регистрах, а их состав определяется содержимым справочника Виды контактной информации.
Рассмотрим важный нюанс: предопределенные элементы в 1С существуют в двух ипостасях — как объект метаданных в дереве конфигурации и как конкретная запись в таблице базы данных. Связующим звеном между ними является уникальный идентификатор (UUID) и внутреннее имя. Если эта связь разрывается, система перестает понимать, что конкретная запись в справочнике является тем самым системным "Юридическим адресом", который зашит в алгоритмы программы. В результате поля на формах перестают отображаться, так как программный код не находит нужный идентификатор вида контактной информации.
Выясним основную причину, по которой предопределенные адреса могут "исчезнуть". Чаще всего это происходит в распределенных базах (РИБ) или при активном обмене данными с другими конфигурациями (например, Управление торговлей или ЗУП). Разберем ситуацию подробнее:
Как показывает практика, поиск дублей часто выявляет наличие нескольких записей "Юридический адрес", ни одна из которых не распознается системой как системная. У таких объектов в списке обычно отсутствует характерная точка на иконке, символизирующая предопределенность.
Рассмотрим первый и самый простой способ исправления ситуации, который помог пользователю в обсуждении на форуме. Нам необходимо найти лишние записи и "склеить" их с правильными предопределенными элементами.
Выполним следующие шаги:
Виды контактной информации.Если визуально в справочнике Виды контактной информации элементов все равно нет, или они ведут себя некорректно, проанализируем возможности программного восстановления. В БСП существует специальная процедура, которая принудительно обновляет состав справочника согласно метаданным конфигурации.
Для этого можно воспользоваться внешней консолью кода или создать небольшую обработку. Посмотрим на пример кода, который инициирует обновление:
// Вызов процедуры обновления состава видов контактной информации
УправлениеКонтактнойИнформацией.ОбновитьСоставВидовКонтактнойИнформации();
// В некоторых случаях полезно вызвать обновление описания справочников
Справочники.ВидыКонтактнойИнформации.СоздатьПредопределенныеДанные();
Эта команда заставляет систему заново сопоставить объекты в базе данных с тем, что описано в Конфигураторе. Если какой-то предопределенный элемент был случайно удален или "отвязался", 1С попытается создать его заново или восстановить связь.
Разберем ситуацию, когда проблема кроется в нарушении логической целостности базы данных. Если предопределенные элементы видны в Конфигураторе, но отсутствуют в Предприятии, необходимо выполнить Тестирование и исправление (ТиИ).
При запуске ТиИ в режиме Конфигуратора важно установить следующие флаги:
Особое внимание уделим пункту "Исправление по замене ссылок на предопределенные элементы". В современных версиях платформы 8.3 это позволяет восстановить связь UUID базы с именами предопределенных в метаданных.
Проанализируем еще одну возможную причину — настройки интерфейса и функциональные опции. Иногда поля адресов скрываются из-за того, что в системе изменены настройки учета. Посмотрим на структуру справочника Виды контактной информации. Он имеет иерархическую структуру: виды адресов сгруппированы по владельцам (Контрагенты, Организации, Физические лица).
Если сама родительская группа (например, "Контактная информация справочника 'Контрагенты'") была помечена на удаление, перемещена или ее уникальный идентификатор изменился при обмене, то все вложенные элементы (Юр. адрес, Фактический адрес) перестают отображаться в формах, так как система ищет их именно внутри конкретной группы.
Убедимся в следующем:
Чтобы избежать повторения данной проблемы в будущем, рекомендуем придерживаться следующих правил при работе с обменами:
Виды контактной информации сопоставляется не только по наименованию, но и по внутреннему идентификатору (UUID).Таким образом, мы выяснили, что восстановление юридического адреса в БП 3 сводится к восстановлению целостности предопределенных данных. Чаще всего проблема решается либо удалением дублей, возникших из-за обмена, либо принудительным обновлением метаданных через программный вызов функций БСП.