Где находится форма заполнения адреса в 1С:Бухгалтерия 3.0 и как с ней правильно работать?

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

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

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

Где находится форма ввода адреса в метаданных?

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

  1. Обработка.ВводКонтактнойИнформации — стандартный механизм, который используется для работы с простыми типами контактной информации (телефоны, email, Skype и т.д.). В ней также присутствует форма ВводАдреса, но она постепенно уступает место более продвинутым механизмам.
  2. Обработка.РасширенныйВводКонтактнойИнформации — современный и наиболее важный объект подсистемы. Именно в этой обработке находится основная рабочая форма ВводАдреса. Она полностью адаптирована под актуальные требования законодательства РФ, включая работу с Государственным адресным реестром (ГАР) и классификатором ФИАС.

Если вам необходимо быстро найти форму визуально в конфигураторе, откройте ветку Обработки -> РасширенныйВводКонтактнойИнформации -> Формы -> ВводАдреса. Именно её вы видите на экране при редактировании адресов контрагентов, физических лиц или организаций.

Эволюция механизмов ввода адреса в БСП

Для понимания того, почему архитектура выглядит именно так, давайте проанализируем историческую цепочку развития подсистемы «Контактная информация»:

Как адресные данные хранятся внутри системы

Проанализируем структуру хранения данных. Современная платформа 1С:Предприятие не сохраняет адреса обычными текстовыми строками в таблицах базы данных. Текстовое представление формируется динамически или дублируется для быстрого вывода в отчеты, в то время как основная информация хранится в строго структурированном виде:

Как правильно открывать форму ввода адреса программно

В среде профессиональной разработки 1С считается грубейшей ошибкой открывать форму ввода адреса напрямую через стандартный метод:


// ТАК ДЕЛАТЬ НЕ РЕКОМЕНДУЕТСЯ!
ОткрытьФорму("Обработка.РасширенныйВводКонтактнойИнформации.Форма.ВводАдреса", Параметры);

Поскольку состав полей формы, доступные страны, требования к проверке ФИАС и маски ввода зависят от конкретного вида контактной информации (например, юридический адрес отличается по логике работы от адреса доставки), форму необходимо открывать строго через специализированный программный интерфейс БСП.

Выясним, как сделать это правильно с помощью общего модуля УправлениеКонтактнойИнформациейКлиент и его метода ОткрытьФормуКонтактнойИнформации. Разберем пример реализации по шагам.

Шаг 1. Подготовка и вызов формы на клиенте:


&НаКлиенте
Процедура ИзменитьАдресКонтрагента(Команда)
    
    // Получаем параметры для открытия формы ввода адреса на сервере
    ПараметрыФормы = ПолучитьПараметрыАдреснойФормы();
    
    // Настраиваем оповещение, которое сработает после закрытия формы ввода адреса
    ОписаниеОповещения = Новый ОписаниеОповещения("ПослеРедактированияАдреса", ЭтотОбъект);
    
    // Открываем форму через специализированный метод БСП
    УправлениеКонтактнойИнформациейКлиент.ОткрытьФормуКонтактнойИнформации(ПараметрыФормы, ОписаниеОповещения);
    
КонецПроцедуры

Шаг 2. Формирование параметров на сервере:


&НаСервере
Функция ПолучитьПараметрыАдреснойФормы()
    
    // Определяем вид контактной информации (например, фактический адрес контрагента)
    ВидКонтактнойИнформации = Справочники.ВидыКонтактнойИнформации.ФактАдресКонтрагента;
    
    // Получаем текущее сериализованное XML/JSON значение адреса из реквизита формы/объекта
    ТекущееЗначениеАдреса = Объект.ФактическийАдресЗначение; 
    
    // Формируем структуру параметров с помощью стандартной функции БСП
    ПараметрыФормы = УправлениеКонтактнойИнформацией.ПараметрыФормыКонтактнойИнформации(
        ВидКонтактнойИнформации, 
        ТекущееЗначениеАдреса
    );
    
    // При необходимости можно переопределить доступность редактирования
    ПараметрыФормы.Вставить("ТолькоПросмотр", Ложь);
    
    Возврат ПараметрыФормы;
    
КонецФункции

Шаг 3. Обработка результата закрытия формы:


&НаКлиенте
Процедура ПослеРедактированияАдреса(Результат, ДополнительныеПараметры) Экспорт
    
    // Если пользователь нажал "ОК" и сохранил изменения
    Если Результат <> Неопределено Тогда
        
        // Записываем полученное сериализованное значение во внутренний реквизит
        Объект.ФактическийАдресЗначение = Результат.Значение;
        
        // Записываем красивое текстовое представление для отображения на форме
        Объект.ФактическийАдресПредставление = Результат.Представление;
        
        // Устанавливаем признак изменения данных формы
        ЭтаФорма.Модифицированность = Истина;
        
    КонецЕсли;
    
КонецПроцедуры

Интеграция с веб-сервисами и адресным классификатором

Рассмотрим еще одну важную особенность формы РасширенныйВводКонтактнойИнформации. Данная форма умеет работать в двух режимах взаимодействия с адресными базами:

  1. Офлайн-режим: Поиск улиц, домов и индексов осуществляется по локально загруженному в базу данных классификатору ФИАС/ГАР. Это требует регулярного скачивания многогигабайтных файлов обновлений администратором системы.
  2. Онлайн-режим: Если в информационной базе подключена Интернет-поддержка пользователей (сервис «1С:Контрагент»), форма автоматически отправляет веб-запросы к облачному классификатору фирмы «1С». Это гарантирует всегда актуальные данные без необходимости локального хранения тяжелых баз данных ФИАС на сервере.

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

← На главную