Имя: Пароль:
1C
 
УТ 11.4 Получить город из адреса
0 hawk1
 
08.09.21
21:50
Как получить город из адреса организации и контрагента?
1 mikecool
 
08.09.21
21:53
город - хранится в отдельном поле КИ
2 d4rkmesa
 
08.09.21
22:46
(0) Что-то вроде:


// Функция - Город адреса контактной информации
//
// Параметры:
//  Адрес     -      Адрес в формате JSON
//
// Возвращаемое значение:
//   - наименование города в удобочитаемом формате, к примеру, г. Ростов-на-Дону
//
Функция ГородАдресаКонтактнойИнформации(Знач Адрес)
    
    Если ТипЗнч(Адрес) = Тип("Строка") Тогда                  
        Если ПустаяСтрока(Адрес) Тогда
            Возврат "";
        КонецЕсли;
    
        Если УправлениеКонтактнойИнформациейКлиентСервер.ЭтоКонтактнаяИнформацияВXML(Адрес) Тогда
            Адрес = УправлениеКонтактнойИнформацией.КонтактнаяИнформацияВJSON(Адрес, Перечисления.ТипыКонтактнойИнформации.Адрес);
        КонецЕсли;
        
        Адрес = УправлениеКонтактнойИнформациейСлужебный.JSONВКонтактнуюИнформациюПоПолям(Адрес, Перечисления.ТипыКонтактнойИнформации.Адрес);
        
    ИначеЕсли ТипЗнч(Адрес) <> Тип("Структура") Тогда
        
        ВызватьИсключение НСтр("ru = 'Невозможно определить город, ожидается адрес.'");
        
    КонецЕсли;
    
    Регион = СокрЛП(Адрес.Area + " " + Адрес.AreaType);
    
    Если РаботаСАдресами.ЭтоГородФедеральногоЗначения(Регион) Тогда
        Возврат СокрЛП(Адрес.AreaType + ". " + Адрес.Area);
    КонецЕсли;
    
    Если ЗначениеЗаполнено(Адрес.City) Тогда
        Город = СокрЛП(Адрес.CityType + ". " + Адрес.City);
    ИначеЕсли ЗначениеЗаполнено(Адрес.Locality) Тогда    //если не указан город, выводим населенный пункт в формате: Ростовская область, Азовский р-н, пос. Овощной
        Город = Регион;    
        Если ЗначениеЗаполнено(Адрес.District) Тогда
            Город = Город + ", " + Адрес.District + ?(ЗначениеЗаполнено(Адрес.DistrictType), " " + Адрес.DistrictType, "");
        КонецЕсли;
        Город = Город + ", " + ?(ЗначениеЗаполнено(Адрес.LocalityType), Адрес.LocalityType + ". ", "") + Адрес.Locality;
    КонецЕсли;
    
    Возврат Город;
    
КонецФункции
3 hawk1
 
10.09.21
15:48
(2) А если строка адреса не в JSOM&
4 Быдло замкадное
 
10.09.21
15:54
(1) тогда это гадание на кофейной гуще.
5 Быдло замкадное
 
10.09.21
15:54
(4) это к (3)
6 PLUT
 
10.09.21
15:58
(0) Помогите пожалуйста !!!( с меня подарок)) Пять способов получения Хлорида Цинка???

1) принять в дар
2) найти
3) купить
4) украсть
5) взять фамилию Цинк и завести сына Хлорида

Где мой подарок ?

можно адрес скормить дадате и она город вернет с большой вероятностью :)
7 Kassern
 
10.09.21
16:25
(3) если у вас тупо строка с адресом при чем без какой то явной последовательности, то тут лишь скармливать адрес внешним сервисам, к примеру яндексу и молиться, чтобы он понял по адресу, что это такое и выдал вам город.
8 ssh2006
 
10.09.21
17:50
(3) делал такое через запросы к сервису dadata
9 Vovik
 
10.09.21
22:08
Как вариант. для извращенцев. Разбить адрес на слова по пробелу и искать в списке городов.
10 d4rkmesa
 
11.09.21
10:57
(3) Там работает для адресов XML и JSON. Конечно, если это устаревший формат с запятыми и пробелами, то это наверное не подойдет (хотя в БСП, возможно, найдется функция преобразования).
Есть два вида языков, одни постоянно ругают, а вторыми никто не пользуется.