Добрый день, была задача сделать заполнение данных адреса в Бухгалтерии 3. Не нашел готовую информацию в гугле, потратил время на поиск решения, выложу здесь.
Проверено на базах, версиях БСП:
Бухгалтерия 3.0.130.22, версия БСП 3.1.7.294
УНФ 1.6.27.295, версия БСП 3.1.7.110
При добавлении Контактной информации для корректной записи необходимо ее дополнительно конвертировать в XML-представление.
Добавляем строку адреса контрагента:
ВидКИ = Справочники.ВидыКонтактнойИнформации.ЮрАдресКонтрагента;
СтрокаАдрес = КонтрагентОбъект.КонтактнаяИнформация.Добавить();
СтрокаАдрес.Вид = ВидКИ;
СтрокаАдрес.Тип = ТипКИ;
Получаем стандартную структуру адреса и определяем ее тип
АдресСтруктура = УправлениеКонтактнойИнформацией.ОписаниеНовойКонтактнойИнформации(Перечисления.ТипыКонтактнойИнформации.Адрес); // Новый адрес
АдресСтруктура.AddressType = РаботаСАдресамиКлиентСервер.МуниципальныйАдрес();
АдресСтруктура.type = "Адрес";
Заполняем данные адреса (тип и номер помещения в отдельной структуре)
АдресСтруктура.ZIPcode = Индекс;
АдресСтруктура.country = Страна;
АдресСтруктура.countryCode = СтранаКод;
АдресСтруктура.areaType = РегионТип;
АдресСтруктура.area = Регион;
АдресСтруктура.cityType = ГородТип;
АдресСтруктура.city = Город;
АдресСтруктура.streetType = УлицаТип;
АдресСтруктура.street = Улица;
АдресСтруктура.houseType = ДомТип;
АдресСтруктура.houseNumber = Дом;
АдресСтруктура.apartments.Добавить(Новый Структура("type,number","Офис",Помещение));
По данным адреса можно сформировать его представление стандартной функцией
АдресПредставление = РаботаСАдресамиКлиентСервер.ПредставлениеАдреса(АдресСтруктура, Ложь);
АдресСтруктура.value = АдресПредставление;
Формируем и заполняем XML-представление
Значение = УправлениеКонтактнойИнформациейСлужебный.СтруктураВСтрокуJSON(АдресСтруктура);
ЗначенияПолей = УправлениеКонтактнойИнформациейЛокализация.КонтактнаяИнформацияИзJSONВXML(АдресСтруктура, ТипКИ);
СтрокаАдрес.Значение = Значение;
СтрокаАдрес.ЗначенияПолей = ЗначенияПолей;
Записываем объект
КонтрагентОбъект.Записать();
Для обновления информации в открытой форме объекта в бухгалтерии 3 нужно обновить данные на форме
КонтактнаяИнформацияПолеЮрАдресКонтрагента = АдресПредставление; // ДанныеЗаполнения.АдресПредставление;
ДанныеФормыЮрАдрес = КонтактнаяИнформацияОписаниеДополнительныхРеквизитов.НайтиСтроки(Новый Структура("Вид",ВидКИ))[0];
ДанныеФормыЮрАдрес.Значение = Значение;
ДанныеФормыЮрАдрес.Представление = АдресПредставление;
УправлениеФормой(ЭтотОбъект);
Пример возможного варианта реализации в обработке