|
Как получить структуру адреса? | ☑ | ||
---|---|---|---|---|
0
extrim-style
26.12.12
✎
15:29
|
Использую подсистему КонтактнаяИнформация из БСП. Подскажите, как программно получить структуру адреса из строки ЮридическийАдрес? ОбщаяФорма.ВводАдреса открывается модально, экспортных функций не нашел.
|
|||
1
extrim-style
26.12.12
✎
15:45
|
Неужели нет готовой функции?
|
|||
2
kumena
26.12.12
✎
15:47
|
штатно никак, надо же с кладром состыковывать.
|
|||
3
extrim-style
26.12.12
✎
15:54
|
(2) спасибо. Очень странно звучит - т.к. нужно состыковывать с кладром, поэтому нет штатных средств).
|
|||
4
kumena
26.12.12
✎
15:57
|
(3) если я правильно понял то надо из строки адреса понять поля в которые попадет адрес. таких типовых задач нет, есть только обратные, поэтому и нет такой функции.
я такое делал, давно. пришлось повозиться поскольку не все так просто и однозначно. |
|||
5
extrim-style
26.12.12
✎
16:05
|
(4) я заметил, что не всё так просто. Подстава от 1С...
|
|||
6
extrim-style
26.12.12
✎
16:07
|
(4) так 1ска как раз и восстанавливает адрес из строки в форме ВводАдреса.
|
|||
7
kumena
26.12.12
✎
16:45
|
(6) так она восстанавливает не из строки, а из полей регистра.
"Подстава от 1С..." - думаю что 1с тут ни при чем. |
|||
8
extrim-style
27.12.12
✎
08:42
|
(7) восстанавливает из строки, связывая с регистром
|
|||
9
extrim-style
27.12.12
✎
08:45
|
// Получить значение определенного вида контактной информации у объекта.
// // Параметры // Ссылка - ЛюбаяСсылка - ссылка на объект-владелец контактной информации (организация, контрагент, партнер и т.д.) // ВидКонтактнойИнформации - СправочникСсылка.ВидыКонтактнойИнформации // // Возвращаемое значение: // Строка - строковое представление значения. // Функция ПолучитьКонтактнуюИнформацияОбъекта(Ссылка, ВидКонтактнойИнформации) Экспорт |
|||
10
extrim-style
27.12.12
✎
11:09
|
Вроде разобрался. Как-то так:
Запрос = Новый Запрос; Запрос.Текст = "ВЫБРАТЬ | КонтрагентыКонтактнаяИнформация.ЗначенияПолей |ИЗ | Справочник.Контрагенты.КонтактнаяИнформация КАК КонтрагентыКонтактнаяИнформация |ГДЕ | КонтрагентыКонтактнаяИнформация.Ссылка = &Спр | И КонтрагентыКонтактнаяИнформация.Вид = ЗНАЧЕНИЕ(Справочник.ВидыКонтактнойИнформации.ЮрАдресКонтрагента)"; Запрос.УстановитьПараметр("Спр", Спр); Результат = Запрос.Выполнить(); ВыборкаДетальныеЗаписи = Результат.Выбрать(); Структура = УправлениеКонтактнойИнформацией.ПолучитьПустуюСтруктуруАдреса(); Структура.Вставить("КодРегиона",""); Структура.Вставить("КодСтраны",""); Структура.Вставить("Страна",""); Структура.Вставить("ТипДома",""); Структура.Вставить("ТипКорпуса",""); Структура.Вставить("ТипКвартиры",""); Пока ВыборкаДетальныеЗаписи.Следующий() Цикл ЗначенияПолей = ВыборкаДетальныеЗаписи.ЗначенияПолей; КонецЦикла; Для каждого Эл из Структура Цикл Структура.Вставить(Эл.Ключ, УправлениеКонтактнойИнформацией.ПолучитьЗначениеПоляАдреса(ВыборкаДетальныеЗаписи.ЗначенияПолей, Ключ)); КонецЦикла; Только нужно еще в ЗначенияПолей поменять местами КодРегиона и Регион, а то он Регион неправильно ищет. Вобщем у меня задача немного другого рода, а это по сабжу. |
Форум | Правила | Описание | Объявления | Секции | Поиск | Книга знаний | Вики-миста |