Прошу помочь разобраться. Хотелось бы при программном создании физлица в справочнике физлиц заполнить программно данные его адреса в формате ФИАС. Даже не представляю, как это сделать. Релиз 1С.Документооборот КОРП (2.1.25.5).
---
А почему
```1c
    Справочники.ВидыКонтактнойИнформации.ТелефонКонтрагента
```
?

Должно быть
```1c
    Справочники.ВидыКонтактнойИнформации.ТелефонМобильныйФизическиеЛица
```
---
а где программа должна взять данные его адреса?
---
Сейчас пока данные адреса содержатся в обычном текстовом файле (просто строка, через запятую). Потом планируется будет xml.
---
Вот статья о том, как строку в код фиас раскладывают. https://habr.com/ru/company/hflabs/blog/333736/
---
Допустим я разложил строку в формат ФИАС. В самой конфигурации, где это хранится, куда мне записывать строку фиас?
---
Курите модули РаботаСАдресами и УправлениеКонтактнойИнформацией. Сохраняется обычно в ТЧ Контактная информация справочника.
Я бы на вашем месте руками записал адрес у физлица и запросом к этой ТЧ посмотрел в каком виде там все хранится.
---
Например см. УправлениеКонтактнойИнформацией.КонтактнаяИнформацияПоПредставлению() - из строки во внутренний JSON преобразует, а потом УправлениеКонтактнойИнформацией.ДобавитьКонтактнуюИнформацию() - добавляет контактную информацию из JSON объекту
---
Ок. Спасибо!
---
УправлениеКонтактнойИнформацией

Немного разобрался, но не совсем. Получилось программно добавить контактный телефон физлица. Однако после открытия формы этого физлица, поле с номером телефона пусто!

Смотрю в отладчике:

При открытии вызывается метод УправлениеКонтактнойИнформацией.ПриЧтенииНаСервере(ЭтаФорма, ТекущийОбъект) и далее ПриЧтенииНаСервере(Форма, Объект, ИмяЭлементаДляРазмещения = "ГруппаКонтактнаяИнформация").

Находясь в теле ПриЧтенииНаСервере смотрю Объект.КонтактнаяИнформация и Форма.Объект.КонтактнаяИнформация. Там всё заполнено, то есть контакты существуют.

В самом начале ПриЧтенииНаСервере идет такой код:

```1c
    СписокРеквизитовФормы = Форма.ПолучитьРеквизиты();

    ПервыйЗапуск = Истина;
    Для Каждого Реквизит Из СписокРеквизитовФормы Цикл
    Если Реквизит.Имя = "ПараметрыКонтактнойИнформации" И ТипЗнч(Форма.ПараметрыКонтактнойИнформации) = Тип("Структура") Тогда
    ПервыйЗапуск = Ложь;
    Прервать;
    КонецЕсли;
    КонецЦикла;

    Если ПервыйЗапуск Тогда
    Возврат;
    КонецЕсли;

    Параметры = ПараметрыКонтактнойИнформацииФормы(Форма.ПараметрыКонтактнойИнформации, ИмяЭлементаДляРазмещения);
```

СписокРеквизитовФормы почему-то не содержит контактной информации -- "ПараметрыКонтактнойИнформации". Поэтому происходит выход из процедуры. И наверное поэтому параметры формы не заполняются при её открытии.

Не понимаю, как открыть форму с заполненными полями контактов?
---
А у справочника вызываются при создании формы методы из этих общих модулей?
Например вот ЗУП 3.1, там все реквизиты работы с контактной информацией создаются программно в ПриСозданииНаСервере():

```1c
    // СтандартныеПодсистемы.КонтактнаяИнформация
    ДополнительныеПараметры = УправлениеКонтактнойИнформацией.ПараметрыКонтактнойИнформации();
    ДополнительныеПараметры.ИмяЭлементаДляРазмещения = "ГруппаКонтактнаяИнформация";
    ДополнительныеПараметры.ПоложениеЗаголовкаКИ = ПоложениеЗаголовкаЭлементаФормы.Лево;

    УправлениеКонтактнойИнформацией.ПриСозданииНаСервере(ЭтотОбъект, ФизическоеЛицо, ДополнительныеПараметры);
    УправлениеКонтактнойИнформациейЗарплатаКадры.ПриСозданииНаСервере(ЭтотОбъект);
    // Конец СтандартныеПодсистемы.КонтактнаяИнформация
```

Единственное, что есть на форме, это Группа с именем ГруппаКонтактнаяИнформация
---
с адресом два поля - Представление и XML - чтобы отображалось - нужно оба поля заполнить. Возможно и с телефоном также.
---
Представление заполнено. См. скрин.
---
давно тоже загружала контактные данные, в частности адреса... там какая-то особенность есть...
ХML правильно заполнен? Если открыть, нажав на три точки - там все корректно отображается? Важно правильно заполнить - чтобы соответствовало структуре.
Заполните руками кому-нибудь телефон/адрес и посмотрите как программа заполнит эти поля/реквизиты.
---
Не знаю. Может я что-то сделал не так или недоделал, когда создавал новый элемент справочника физлиц. Посмотрите. Как я уже писал выше, потом при открытии формы, контакты можно найти в Объект.КонтактнаяИнформация и Форма.Объект.КонтактнаяИнформация. И там вроде всё корректно (в xml и json строках). Однако в самой форме данных нет, то есть поля формы пустые.

```1c
    newФЛ = Справочники.ФизическиеЛица.СоздатьЭлемент();
    newФЛ.Наименование = s_FIO;
    newФЛ.ГруппаДоступа = Cправочники.ГруппыДоступаФизическихЛиц.НайтиПоНаименованию("Контрагенты");
    newФЛ.Записать(); //записываем сейчас, чтобы получить Ссылку

    ////////////////////////////////////////
    //START работа с контактной информацией
    ////////////////////////////////////////

    //добавление телефона в контакты
    ТелефонСтруктура = Новый Структура;
    ТелефонСтруктура.Вставить("Представление", "+7 (123) 456-78-95");
    ТелефонСтруктура.Вставить("Комментарий", "тестовый номер 2");
    ТелефонСтруктура.Вставить("КодСтраны", "7");
    ТелефонСтруктура.Вставить("КодГорода", "123");
    ТелефонСтруктура.Вставить("НомерТелефона", "456-78-95");

    ТелефонXML = УправлениеКонтактнойИнформацией.КонтактнаяИнформацияВXML(ТелефонСтруктура,", Перечисления.ТипыКонтактнойИнформации.Телефон);
    ТелефонJSON = УправлениеКонтактнойИнформацией.КонтактнаяИнформацияВJSON(ТелефонXML);

    УправлениеКонтактнойИнформацией.ДобавитьКонтактнуюИнформацию(newФЛ.Ссылка, ТелефонJSON, Справочники.ВидыКонтактнойИнформации.ТелефонКонтрагента, ТекущаяДата(), Ложь);
```
---
А почему
```1c
    Справочники.ВидыКонтактнойИнформации.ТелефонКонтрагента
```
?

Должно быть
```1c
    Справочники.ВидыКонтактнойИнформации.ТелефонМобильныйФизическиеЛица
```
---
Справочники.ВидыКонтактнойИнформации.ТелефонМобильныйФизическиеЛица
Спасибо за подсказку. Только в 1С.Документооборот КОРП чуть по другому называется реквизит. Нужно:

```1c
    Справочники.ВидыКонтактнойИнформации.МобильныйТелефонФизическогоЛица
```

Теперь работает ))
---
Отлично) Только совсем маленькое замечание по коду для оптимизации, ДобавитьКонтактнуюИнформацию в качестве первого параметра может принимать как ссылку, так и объект, я бы передавал туда объект newФЛ, а после этого уже newФЛ.Записать(); иначе получается запись объекта 2 раза происходит)
---
Правильно понимаю, что достаточно передать в качестве параметра newФЛ и тогда уже не надо вообще строки newФЛ.Записать(). Вроде бы ДобавитьКонтактнуюИнформацию содержит внутри запись объекта. Так?
---
Нет, там в описании метода сказано:
Если передан объект, то контактная
// информация будет добавлена без записи. Для сохранения изменений объект
// необходимо будет записать отдельно.
---
Ах, да. Увидел. Спасибо!
---
Еще такой вопрос. Если добавлять подобным способом сведения об адресе, то оказывается, что он будет введен в свободной форме. Его нельзя будет проверить по кнопке "Проверить заполнение". А нужно, чтобы осуществлялась проверка на соответствие адреса формату ФИАС. Как быть в этом случае?
---
У меня работает например так.
Адрес вот в таком формате:
РОССИЯ, 334038, Иркутская обл, Иркутский муниципальный район, Молодежный п, Ангарская ул, дом 15, квартира 2

```1c
    АдресJSON = УправлениеКонтактнойИнформацией.КонтактнаяИнформацияПоПредставлению(Адрес, Справочники.ВидыКонтактнойИнформации.АдресПоПропискеФизическиеЛица);
    УправлениеКонтактнойИнформацией.ДобавитьКонтактнуюИнформацию(ФЛ, АдресJSON, Справочники.ВидыКонтактнойИнформации.АдресПоПропискеФизическиеЛица, ТекущаяДата(), Истина);
```
---
В том и дело, что у Вас показан пример ввода адреса в свободной форме, а не в фиксированном формате ФИАС.

В Вашем примере адрес будет введен в общее поле. При нажатии на кнопку "Проверить заполнение" будет информационное окно о невозможности провести проверку. Это говорит о том, что предложенным способом адрес введен не корректно, согласно ФИАС. См. скрин 1.

Корректный же адрес будет отображаться в форме по другому (все данные адреса -- город, улица, дом и т.д. будут в отдельных полях). И такой адрес пройдет проверку. См. скрин 2.

Видите разницу?

Мне как раз то и нужно сделать по второму варианту, т.е. ввести корректный адрес.
---
Хм, забавно, действительно, я проверял не на самой свежей ЗУП, там все работало, а на актуальной не хочет
---
Если есть подписка ИТС и подключен веб-сервис проверки адресов, можно попробовать поработать через Обработки.РасширенныйВводКонтактнойИнформации.СписокАвтоподбораНаселенногоПункта()

Для адреса выше он возвращает 2 варианта(муниципальный и административный). Муниципальный после этого проверку почему-то не проходит, а административный вроде работает нормально, но для адреса
194292, Санкт-Петербург г, 1-й Верхний пер, дом 10 например там несколько десятков вариантов подходящих.

Правда, судя по всему, наиболее подходящий всегда идет первым.