Какая функция в ЗУП 3.0 раскладывает адрес в структуру

1. N2 3 05.05.16 17:53 Сейчас в теме
Добрый вечер!
А не подскажите, какая функция в ЗУП 3.0 раскладывает адрес в структуру? Наверное надо дополнить, есть справочник контактной информации, из него хочется получить адрес по прописке и разложить его по стране, региону, улице, дому, квартире.
По теме из базы знаний
Ответы
Подписаться на ответы Инфостарт бот Сортировка: Древо развёрнутое
Свернуть все
2. sssss_aaaaa_2011 05.05.16 18:32 Сейчас в теме
(1)а на чем основана уверенность в наличии такой функции?
5. kot30688 3 06.05.16 05:17 Сейчас в теме
(1) N2, В карточке сотрудника показывается представление адреса из соответствующего регистра, оно формируется при открытии формы. А вообще, в чем задача? Менеджер (или кто-то там) записывает адрес строкой, а он потом разбивается. Если информационно, то можно что-то придумать как сказал Chameleon1980, если по этим данным потом нужно отчет смострячить, то, ИМХО, надо делать как в типовых - вызывается форма, где в соответствующих полях пользователь выбирает город, район, улицу и прочее из КЛАДР, все что получилось собираем в строку, полученные данные пишем в регистр. Если рассматривать первый вариант, то пользователи могут такое напечатать, что потом замучаешься разбирать что они вообще хотели написать.
3. N2 3 05.05.16 21:57 Сейчас в теме
На предыдущем опыте и на том, что ЗУПа, если в личных данных сотрудников жамкнуть по адресам, она их раскидывает по полям. Вроде бы уже нашел, но как-то оно странно работает, завтра разберусь, напишу детально.
4. Chameleon1980 06.05.16 00:17 Сейчас в теме
можно предположить, что полный адрес записан, допустим, с каким-то разделителем

этот разделитель можно заменить на перенос строки
и получая строку текста по номеру можно создать структуру (соответствие)
6. Chameleon1980 06.05.16 09:31 Сейчас в теме
Вот, что на скорую руку нашел.
Может пригодится.

УправлениеКонтактнойИнформацией.КонтактнаяИнформацияОбъекта(ОбъектДляПолучения,ВидИнформации);


накидал обработку с таким текстом:

&НаСервереБезКонтекста
Функция ПолучитьИнформациюНаСервере(ОбъектДляПолучения,ВидИнформации)
	
	Информация=УправлениеКонтактнойИнформацией.КонтактнаяИнформацияОбъекта(ОбъектДляПолучения,ВидИнформации);
	Возврат Информация;
	
КонецФункции

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


обработка в прикрепленном файле.
Прикрепленные файлы:
КонтактнаяИнофрмацияЗУП_3.epf
DoctorRoot; SmArtist; kaps22; +3 Ответить
7. Chameleon1980 06.05.16 09:34 Сейчас в теме
да..
если присмотреться к этому общему модулю, то можно найти типа такого, например:

ЗначенияКонтактнойИнформацииОбъекта

// Получить значения определенного типа контактной информации у объекта.
//
// Параметры
// Ссылка - ЛюбаяСсылка - ссылка на объект-владелец контактной информации (организация, контрагент, партнер и т.д.)
// ТипКонтактнойИнформации - ПеречислениеСсылка.ТипыКонтактнойИнформации
//
// Возвращаемое значение:
// ТаблицаЗначений - колонки
// * Значение - строка - строковое представление значения
// * Вид - строка - представление вида контактной информации
//
8. r.moschenskiy 23 06.05.16 09:38 Сейчас в теме
УправлениеКонтактнойИнформациейСлужебный.РазложитьАдресВСтруктуру(СтрокаАдрес)
10. Chameleon1980 06.05.16 12:02 Сейчас в теме
(8) r.moschenskiy, ну я и намекаю на то, чтобы присмотреться к этому и сопутствующим модулям.
и там поискать все интересное для автора.
9. N2 3 06.05.16 10:55 Сейчас в теме
Коллеги, спасибо за такие полные ответы и желание помочь, буду разбираться
11. Chameleon1980 06.05.16 12:06 Сейчас в теме
вот вам подобие

СтрЗаменить


СтрокаАдреса=Новый ТекстовыйДокумент;

ИнформацияПоСтрокам=СтрЗаменить(Информация,", ",Символы.ПС);

тут так-же строку по номеру получаем и пихаем в нужный элемент структуры

старо как мир :)
12. N2 3 06.05.16 12:51 Сейчас в теме
Небольшой отчет:
Функция раскладывает строку с данными об адресе (в формате 9 запятых) на элементы структуры.
УправлениеКонтактнойИнформациейСлужебный.РазложитьАдресВСтруктуру(СтрокаАдрес)

В ЗУПе 3.0 (3.0.25.93), в Справочник.ФизическиеЛица.КонтактнаяИнформация.
Поле представление выглядит так (скрин с демо базы). Причем в некоторых представлениях нет страны. Можно конечно первое значение проверять на строку и если это будет число, то тогда сдвигать парсинг на одну запятую. Потом получается формат 5 или 6 запятых. Ещё небольшой минус метода, что остаются "квартиры", "дома" и т.п.


Я пока сделал так:
Использую УправлениеКонтактнойИнформациейСлужебный.КонтактнаяИнформацияИзXML(Выборка.ЗначенияПолей,ОжидаемыйВид),
где "Выборка.ЗначенияПолей" это "ЗначенияПолей" со скрина, а "ОжидаемыйВид = Перечисления.ТипыКонтактнойИнформации.Адрес".
Полученный результат этой функции допиливаю функциями "УправлениеКонтактнойИнформациейСлужебный.ПочтовыйИндексАдреса, ПредставлениеНаселенногоПункта, ПредставлениеУлицы и т.п.

Сейчас буду пробовать: "УправлениеКонтактнойИнформацией.КонтактнаяИнформацияОбъекта(ОбъектДляПолучения,ВидИнформации)"

(11) Хочется максимально использовать возможности самой ЗУП, хотя сейчас уже понимаю, что проще написать всё своё.
Прикрепленные файлы:
13. Spektr 1001 22.02.17 08:18 Сейчас в теме
Адрес введен по классификатору.
Подскажите, как в ЗУП 3.1 разложить адрес в структуру:Индекс; Регион; Район; Город; НаселенныйПункт; Улица; Дом; Корпус; Квартира.
СтруктураАдреса = РегламентированнаяОтчетностьКлиентСервер.РазложитьАдрес(Выборка.ЮрАдресОрганизации);
СтруктураАдреса = УправлениеКонтактнойИнформациейСлужебный.РазложитьАдресВСтруктуру(Выборка.ЮрАдресОрганизации);

Эти функции с представлением адреса правильно работают только если присутствует в адресе все поля (9 полей) структуры.
Надо из контактной информации получить адрес и разложить его по Индекс; Регион; Район; Город; НаселенныйПункт; Улица; Дом; Корпус; Квартира.
Есть пример посмотреть? Обработка, отчет или печатная форма?
14. Kesak 14 15.03.17 16:28 Сейчас в теме
Общий модуль УправлениеКонтактнойИнформацией функция:
// Преобразует данные нового формата XML контактной информации в структуру старого формата.
//
// Параметры:
//   Данные                  - Строка - XML контактной информации или пары ключ-значение.
//   ВидКонтактнойИнформации - СправочникСсылка.ВидыКонтактнойИнформации, Структура - параметры контактной информации. 
//
// Возвращаемое значение:
//   Структура - набор пар ключ-значение. Состав свойств для адреса:
//        ** Страна           - Строка - текстовое представление страны.
//        ** КодСтраны        - Строка - код страны по ОКСМ.
//        ** Индекс           - Строка - почтовый индекс (только для адресов РФ).
//        ** Регион           - Строка - текстовое представление региона РФ (только для адресов РФ).
//        ** КодРегиона       - Строка - код региона РФ (только для адресов РФ).
//        ** РегионСокращение - Строка - сокращение региона (если СтарыйСоставПолей = Ложь).
//        ** Район            - Строка - текстовое представление района (только для адресов РФ).
//        ** РайонСокращение  - Строка - сокращение района (если СтарыйСоставПолей = Ложь).
//        ** Город            - Строка - текстовое представление города (только для адресов РФ).
//        ** ГородСокращение  - Строка - сокращение города (только для адресов РФ).
//        ** НаселенныйПункт  - Строка - текстовое представление населенного пункта (только для адресов РФ).
//        ** НаселенныйПунктСокращение - Строка - сокращение населенного пункта (если СтарыйСоставПолей = Ложь).
//        ** Улица            - Строка - текстовое представление улицы (только для адресов РФ).
//        ** УлицаСокращение  - Строка - сокращение улицы (если СтарыйСоставПолей = Ложь).
//        ** ТипДома          - Строка - см. ТипыОбъектовАдресацииАдресаРФ().
//        ** Дом              - Строка - текстовое представление дома (только для адресов РФ).
//        ** ТипКорпуса       - Строка - см. ТипыОбъектовАдресацииАдресаРФ().
//        ** Корпус           - Строка - текстовое представление корпуса (только для адресов РФ).
//        ** ТипКвартиры      - Строка - см. ТипыОбъектовАдресацииАдресаРФ().
//        ** Квартира         - Строка - текстовое представление квартиры (только для адресов РФ).
//       Состав свойств для телефона:
//        ** КодСтраны        - Строка - код страны. Например, +7.
//        ** КодГорода        - Строка - код города. Например, 495.
//        ** НомерТелефона    - Строка - номер телефона.
//        ** Добавочный       - Строка - добавочный номер телефона.
//
Функция ПредыдущаяСтруктураКонтактнойИнформацииXML(Знач Данные, Знач ВидКонтактнойИнформации = Неопределено) Экспорт
Показать


"Строка - XML контактной информации или пары ключ-значение." храниться в реквизите ЗначенияПолей, соответственно ВидКонтактнойИнформации в реквизите Вид табличной части КонтактнаяИнформация.
user1439785; Serg2000mr; evg_m; +3 Ответить
15. evg_m 9 03.04.17 21:24 Сейчас в теме
(14)Огромнейшее вам спасибо за доп информацию - ""Строка - XML контактной информации или пары ключ-значение." храниться в реквизите ЗначенияПолей". А то я и так и сяк и никак функции вроде бы стандартные и не работают. Указывала таб часть, а надо было таб часть/ЗначениеПолей и вуаля!
16. user592534_cool.storozhev 17.04.17 12:13 Сейчас в теме
Можно использовать функцию из общего модуля:

УправлениеКонтактнойИнформациейБП.АдресСтруктурой(Ссылка, ВидКонтактнойИнформации, Период, НаименованиеВключаетСокращение);

Описание:
Возвращает адрес в виде структуры полей. Если адрес нужного вида не задан, то будет возвращена структура с пустыми полями.

Параметры:
Ссылка - СправочникСсылка - Ссылка на объект, который содержит контактную информацию.
ВидКонтактнойИнформации - СправочникСсылка.ВидыКонтактнойИнформации - Вид контактной информации, структуру которого нужно получить.
НаименованиеВключаетСокращение - Булево - признак включение в наименования элемента адреса его сокращенного представления

Возвращаемое значение:
Структура - Структура со значениями полей адреса.
17. ivanchai 28.07.18 21:40 Сейчас в теме
СтруктураКладр = РаботаСАдресами.АдресВФорматеКЛАДР(СтрокаФактАдресXML);
18. abc222 23.12.18 18:36 Сейчас в теме
КонтИнфОрг = УправлениеКонтактнойИнформацией.КонтактнаяИнформацияОбъекта(Док.Организация, справочники.ВидыКонтактнойИнформации.ЮрАдресОрганизации, , ложь);
СтруАдреса = УправлениеКонтактнойИнформациейСлужебный.СтрокаJSONВСтруктуру(КонтИнфОрг[0].Значение);
19. mp40 10 07.11.19 14:13 Сейчас в теме
В БП есть функция УправлениеКонтактнойИнформацией.КонтактнаяИнформацияПоПредставлению("Адрес строкой", Вид). Может и в ЗУП есть такое. Сразу преобразует строку адреса в строку JSON.
20. Maddy18 44 28.02.20 15:30 Сейчас в теме
Вот кусок рабочего кода на релизе Зарплата и управление персоналом, редакция 3.1 (3.1.12.144)

Для каждого Строка из Результат Цикл

//ОбработкаПрерыванияПользователя();
ОбъектДляПолучения = Строка.Ссылка;
ВидИнформации = Строка.Вид;

Информация=УправлениеКонтактнойИнформацией.КонтактнаяИнформацияОбъекта(ОбъектДляПолучения,ВидИнформации,,ЛОЖЬ);

яАдрес = УправлениеКонтактнойИнформациейСлужебный.JSONВКонтактнуюИнформациюПоПолям(Информация[0].Значение, Перечисления.ТипыКонтактнойИнформации.Адрес);

Строка.Индекс =яАдрес["ZIPcode"];
Строка.Область =яАдрес["area"];
Строка.Город =яАдрес["city"];
Строка.НаселенныеПункт =яАдрес["cityDistrict"];
Строка.Район = "";

Строка.Улица = яАдрес["street" ]+" "+яАдрес["streetType" ];
Строка.НомерДома = яАдрес["houseNumber" ];

Строка.Корпус ="";
Строка.Строение ="";
Для каждого стр из яАдрес.buildings цикл
Если стр.type = "Корпус" тогда
Строка.Корпус = стр.number;
ИначеЕсли яАдрес.buildings[0].type = "Строение" тогда
Строка.Строение = стр.number;
Конецесли;
Конеццикла;

Строка.Квартира = яАдрес["apartments"][0]["number"];

а=2;


КонецЦикла;
Прикрепленные файлы:
КонтактнаяИнофрмацияЗУП_3_3.1.12.144).epf
21. Maddy18 44 28.02.20 15:31 Сейчас в теме
(20) Вот запрос к коду

ВЫБРАТЬ
ФизическиеЛицаКонтактнаяИнформация.Ссылка КАК Ссылка,
ФизическиеЛицаКонтактнаяИнформация.Ссылка.Фамилия КАК Фамилия,
ФизическиеЛицаКонтактнаяИнформация.Ссылка.Имя КАК Имя,
ФизическиеЛицаКонтактнаяИнформация.Ссылка.Отчество КАК Отчество,
ФизическиеЛицаКонтактнаяИнформация.Значение КАК Значение,
ФизическиеЛицаКонтактнаяИнформация.ЗначенияПолей КАК ЗначенияПолей,
ФизическиеЛицаКонтактнаяИнформация.Страна КАК Страна,
ФизическиеЛицаКонтактнаяИнформация.Регион КАК Регион,
" " КАК Индекс,
"643" КАК кодСтраны,
" " КАК Область,
" " КАК Район,
" " КАК Город,
" " КАК НаселенныеПункт,
" " КАК Улица,
" " КАК НомерДома,
" " КАК Корпус,
" " КАК Строение,
" " КАК Квартира,
ФизическиеЛицаКонтактнаяИнформация.Город КАК Город2,
ФизическиеЛицаКонтактнаяИнформация.Вид КАК Вид,
ФизическиеЛицаКонтактнаяИнформация.Представление КАК Представление
ИЗ
Справочник.ФизическиеЛица.КонтактнаяИнформация КАК ФизическиеЛицаКонтактнаяИнформация
ГДЕ
ФизическиеЛицаКонтактнаяИнформация.Тип = &Тип
И ФизическиеЛицаКонтактнаяИнформация.Вид = &Вид
И ФизическиеЛицаКонтактнаяИнформация.Ссылка = &Ссылка
Оставьте свое сообщение

Для получения уведомлений об ответах подключите телеграм бот:
Инфостарт бот