Почему в УПП после обновления не выбирается адрес и не заполняется код ФИАС в документах?

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

После перехода на новые релизы УПП многие пользователи сталкиваются с тем, что механизм работы с адресным классификатором перестал функционировать корректно. Основная причина кроется в переходе 1С на использование государственного адресного реестра и формате обмена данными JSON. Разберем, как восстановить работоспособность системы и обеспечить корректное заполнение данных для регламентированной отчетности.

Шаг 1: Первичная диагностика и обновление классификатора

Прежде чем переходить к изменению кода, необходимо убедиться, что классификатор загружен правильно. Важно помнить: стандартная интернет-поддержка не всегда корректно очищает «мусор» от старого КЛАДРа.

  1. Очистите существующий адресный классификатор через соответствующую обработку.
  2. Скачайте актуальный файл ФИАС/ГАР с портала 1С в формате XML.
  3. Выполните полную загрузку классификатора в базу данных.

Если после этого при попытке редактирования контактной информации в карточке сотрудника или контрагента адрес все еще требует ручного ввода с самого начала, значит, проблема в несоответствии структуры данных JSON и старых полей поле1, поле2, ..., хранящихся в регистре КонтактнаяИнформация.

Шаг 2: Исправление кода для документов (на примере Начисления по больничному)

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

В модуле формы документа НачислениеПоБольничномуЛисту в методе АдресРегистрацииВФормеНачалоВыбора необходимо заменить логику вызова. Вместо прямого получения кода КЛАДР, мы будем использовать функционал нового общего модуля.

Замените текущий код на следующий блок:


ТекстОшибки = Неопределено;
КодыАдреса = ПрямыеВыплатыПособийСоциальногоСтрахования.КодыАдреса(СтруктураАдреса.JSON, ТекстОшибки);
ЭлементыФормы.АдресРегистрацииКодПоКЛАДР.Значение = КодыАдреса.ИдентификаторОбъектаФИАС;

Шаг 3: Создание общего модуля для интеграции

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

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


#Область СлужебныеПроцедурыИФункции
#Область Адреса
Функция КодыАдреса(Адрес, ТекстОшибки = Неопределено) Экспорт
    Результат = Новый Структура("КодКЛАДР, ИдентификаторОбъектаФИАС");
    Попытка
        КодыАдреса = АдресныйКлассификатор.КодыАдреса(Адрес);
        Результат.КодКЛАДР = Формат(КодыАдреса.КодКЛАДР, "ЧГ=0");
        Если ЗначениеЗаполнено(КодыАдреса.ИдентификаторДома) Тогда
            Результат.ИдентификаторОбъектаФИАС = Строка(КодыАдреса.ИдентификаторДома);
        Иначе
            Результат.ИдентификаторОбъектаФИАС = Строка(КодыАдреса.Идентификатор);
        КонецЕсли;
    Исключение
        ТекстОшибки = СтрШаблон(
        НСтр("ru = 'При вызове функции ""%1"" с параметром ""%2"" возникла ошибка ""%3"". 
        |Подробности: |%4.'"),
        "АдресныйКлассификатор.КодыАдреса",
        Адрес,
        КраткоеПредставлениеОшибки(ИнформацияОбОшибке()),
        ПодробноеПредставлениеОшибки(ИнформацияОбОшибке()));
        Возврат Неопределено;
    КонецПопытки;
    Возврат Результат;
КонецФункции
#КонецОбласти
#КонецОбласти

Шаг 4: Настройка обработки редактирования контактной информации

Чтобы изменения корректно сохранялись в структуре данных, необходимо доработать модуль обработки РедактированиеКонтактнойИнформации. В методе РедактироватьМодальноЭлементАдресаРазделенногоЗапятыми после строки, где присваивается строковое представление адреса, добавьте принудительную вставку JSON-структуры:


Элемент.Значение = СтрАдрес;
Элемент.Вставить("JSON", ЭтотОбъект.Значение);

Важное примечание: После внесения данных исправлений, старые записи в регистре контактной информации, заведенные по КЛАДРу, могут требовать ручного перевыбора в карточках контрагентов. Это необходимо, чтобы система смогла сформировать корректную JSON-структуру, которую ожидает новый алгоритм. Если адрес был введен верно, но «не подцепляется» в больничный лист, используйте кнопку выбора адреса еще раз — это обновит данные объекта ФИАС в вашей базе.

Таким образом, мы переводим работу документов с устаревшего принципа поиска по полям КЛАДР на использование уникальных идентификаторов ФИАС, что исключает ошибки при обмене с ФСС и обеспечивает корректное заполнение отчетов.

← На главную