1С:Предприятие
:: 1С:Предприятие 8 общая
|
|
| ||
John83 23.04.20 - 12:02 | УТ 11.4
Нужно адрес разобрать на город, индекс, улица и т.д. Как такое можно сделать на СКД? | ||
VladZ 1 - 23.04.20 - 12:25 | (0)
1. Получаешь данные 2. Выгружаешь в ТЗ. 3. Корректируешь данные как тебе нужно. 4. Выводишь в СКД. | ||
Chameleon1980 2 - 23.04.20 - 13:39 | функцию ом | ||
John83 3 - 23.04.20 - 13:46 | (2) функцию чего? | ||
John83 4 - 23.04.20 - 13:47 | ааа.. общего модуля
Вот и след. вопрос.
Как разобрать адрес?
Пробую РаботаСАдресами.СведенияОбАдресе, но почему-то не разбирает. | ||
John83 6 - 23.04.20 - 13:50 | (5) можешь кодом поделиться? | ||
John83 9 - 23.04.20 - 14:01 | (8) то ли лыжи не едут, то ли я очень умный..
ни одного адреса не разобрал, хотя большинство адресов введено правильно, т.е. в карточке контрагента адрес открывается разбитый на составляющие. Адрес беру отсюда ВЫБРАТЬ ПартнерыКонтактнаяИнформация.Представление КАК Представление, ПартнерыКонтактнаяИнформация.Ссылка КАК Ссылка ИЗ Справочник.Партнеры.КонтактнаяИнформация КАК ПартнерыКонтактнаяИнформация | ||
John83 11 - 23.04.20 - 14:07 | |||
John83 12 - 23.04.20 - 17:43 | в вычисляемые поля можно только функции общего модуля запихнуть?
Хочу из модуля отчета, но не находит. | ||
John83 13 - 24.04.20 - 17:56 | а чего сообщения почистили?
Там же все по теме было. | ||
John83 14 - 24.04.20 - 17:58 | что в итоге сделал В вычисляемые поля добавил Расш1_РаботаСАдресами.ПолучитьЧастьАдреса( Значение, "Индекс") А в расширении сделал такую функцию Функция ПолучитьЧастьАдреса(Значение, Часть) Экспорт Если ЗначениеЗаполнено(Значение) Тогда Попытка ЧтениеJSON = Новый ЧтениеJSON; ЧтениеJSON.УстановитьСтроку(Значение); Данные = ПрочитатьJSON(ЧтениеJSON, Ложь); ЧтениеJSON.Закрыть(); Если Данные.addressType = "Административно-территориальный" Тогда Если Часть = "Улица" Тогда Улица = ?(СтрДлина(Данные.streettype) > СтрДлина(Данные.street), Данные.streettype, Данные.street); Если НЕ ЗначениеЗаполнено(Улица) Тогда Улица = РаботаСАдресами.СведенияОбАдресе(Значение).Улица; КонецЕсли; Возврат Улица; ИначеЕсли Часть = "Индекс" Тогда Индекс = Данные.ZIPcode; Если НЕ ЗначениеЗаполнено(Индекс) Тогда Индекс = РаботаСАдресами.СведенияОбАдресе(Значение).Индекс; КонецЕсли; Возврат Индекс; ИначеЕсли Часть = "Регион" Тогда Регион = Данные.area; Если НЕ ЗначениеЗаполнено(Регион) Тогда Регион = РаботаСАдресами.СведенияОбАдресе(Значение).Регион; КонецЕсли; Возврат Регион; ИначеЕсли Часть = "НаселенныйПункт" Тогда НаселенныйПункт = ?(Данные.city <> "", Данные.city, Данные.locality); Если НЕ ЗначениеЗаполнено(НаселенныйПункт) Тогда НаселенныйПункт = РаботаСАдресами.СведенияОбАдресе(Значение).НаселенныйПункт; КонецЕсли; Возврат НаселенныйПункт; ИначеЕсли Часть = "Дом" Тогда Дом = Данные.houseNumber; Если НЕ ЗначениеЗаполнено(Дом) Тогда Дом = РаботаСАдресами.СведенияОбАдресе(Значение).Здание.Номер; КонецЕсли; Возврат Дом; ИначеЕсли Часть = "Корпус" Тогда Корпус = ?(Данные.buildings.Количество(), Данные.buildings[0].number, ""); Если НЕ ЗначениеЗаполнено(Корпус) Тогда Корпуса = РаботаСАдресами.СведенияОбАдресе(Значение).Корпуса; Корпус = ?(Корпуса.Количество(), Корпуса[0].Номер, ""); КонецЕсли; Возврат Корпус; ИначеЕсли Часть = "Помещение" Тогда Помещение = ?(Данные.apartments.Количество(), Данные.apartments[0].number, ""); Если НЕ ЗначениеЗаполнено(Помещение) Тогда Помещения = РаботаСАдресами.СведенияОбАдресе(Значение).Помещения; Помещение = ?(Помещения.Количество(), Помещения[0].Номер, ""); КонецЕсли; Возврат Помещение; КонецЕсли; КонецЕсли; Исключение Возврат РаботаСАдресами.СведенияОбАдресе(Значение)[Часть]; КонецПопытки; КонецЕсли; Возврат ""; КонецФункции |
|
Список тем форума
|