Программное заполнение адреса контактной информации контрагента в Бухгалтерии 3
Задачи пользователя - Мастера заполнения
Файлы
ВНИМАНИЕ: Файлы из Базы знаний - это исходный код разработки. Это примеры решения задач, шаблоны, заготовки, "строительные материалы" для учетной системы. Файлы ориентированы на специалистов 1С, которые могут разобраться в коде и оптимизировать программу для запуска в базе данных. Гарантии работоспособности нет. Возврата нет. Технической поддержки нет.
Подписка PRO — скачивайте любые файлы со скидкой до 85% из Базы знаний
Оформите подписку на компанию для решения рабочих задач
Оформить подписку и скачать решение со скидкойВы можете заказать платную доработку или адаптацию этой разработки под вашу конфигурацию на «Бирже заказов».
- 0% комиссии — оплата напрямую исполнителю;
- Исполнители любого масштаба — от отдельных специалистов до команд под проект;
- Прямой обмен контактами между заказчиком и исполнителем;
- Безопасная сделка — при необходимости;
- Рейтинги, кейсы и прозрачная система откликов.
Добрый день, была задача сделать заполнение данных адреса в Бухгалтерии 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];
ДанныеФормыЮрАдрес.Значение = Значение;
ДанныеФормыЮрАдрес.Представление = АдресПредставление;
УправлениеФормой(ЭтотОбъект);
Пример возможного варианта реализации в обработке
Вступайте в нашу телеграмм-группу Инфостарт