Имя: Пароль:
1C
1С v8
"выдернуть" регион и город из адреса
0 Hostess_
of_Love
 
15.08.11
13:54
как проще можно выдернуть регион и город в отдельные переменные из юр.адреса контрагента?
1 Grusswelle
 
15.08.11
13:55
Запросом.
2 famnam
 
15.08.11
13:55
РС.КонтактнаяИнформация
3 Масянька
 
15.08.11
13:56
(0) В общих модулях ищи нечто - Обработка адреса. Там заморочено, но разобраться можно.
4 Hostess_
of_Love
 
15.08.11
14:26
//Функция раскладывает строку с данными об адресе (в формате 9 запятых) на элементы структуры
Функция РазложитьАдрес(Знач СтрокаАдрес) Экспорт

а если в строке меньше запятых?
5 новичекВ1С
 
15.08.11
14:27
ФИТУ хоть?:)
6 Hostess_
of_Love
 
15.08.11
14:28
технарь
7 Hostess_
of_Love
 
15.08.11
15:06
и тишина
8 Rie
 
15.08.11
15:07
(4) А тогда что является городом?
9 almar
 
15.08.11
15:13
(4) если в сторе меньше, чем 9 запятых, то нужно выдать сообщение об ошибке в формате адреса
10 Hostess_
of_Love
 
15.08.11
15:16
9 запятых предполают, что заполнены все поля (Страна, Индекс,Регион, Район, Город, НаселенныйПункт, Улица, Дом, Корпус, Квартира). на практике же получается, что некоторые поля не заполняются (например, НаселенныйПункт, Корпус, Квартира) потому что их просто напросто нет. так же не всегда стоит страна
11 almar
 
15.08.11
15:18
(10) если нет какого-то элемента, то просто две запятых ставятся подряд например ,190000,Москва,,,Кремль,,,,
12 Rie
 
15.08.11
15:19
(10) Поле может и не заполнено. Но запятая-то - должна стоять?
А если запятых нет - то понять, какое поле отсутствует - нетривиальная задача. Хорошо, если страна. А если город?
13 Hostess_
of_Love
 
15.08.11
15:20
в представлении нету лишних запятых
14 Rie
 
15.08.11
15:22
(13) Тогда разве что изобретать искусственный интеллект...
Москва - это город или регион?
15 wertyu
 
15.08.11
15:23
(14) регион конечно, как и Питер
16 wertyu
 
15.08.11
15:24
+(15) просто там названо непривильно, регион = субъект федерации
17 wertyu
 
15.08.11
15:24
неправильно*
18 wertyu
 
15.08.11
15:28
как вариант можно полностью заполнить адресный классификатор и искать если заполнены поля "КодГородаВКоде" и "КодНаселенногоПунктаВКоде" (второе если нужны и посёлки и т.п.) плюс Москва и Питер дополнительно
19 wertyu
 
15.08.11
15:29
+(18) ну, а найденные проверять на вхождение в строку адреса
20 Hostess_
of_Love
 
15.08.11
15:30
попробовала использовать РазложитьАдрес() и получила город и номер дома.
21 almar
 
15.08.11
15:30
(13) в 8-ке контактная информация хранится в регистре сведений, в реквизитах Поле1...Поле10. Зачем тебе вообще "формат 9 запятых"?
22 famnam
 
15.08.11
15:31
(21) +1. Смотри (2)
23 Tirael
 
15.08.11
15:32
(0) И не надо никаких запятых

НаборЗаписей = РегистрыСведений.КонтактнаяИнформация.СоздатьНаборЗаписей();
НаборЗаписей.Отбор.Объект.Установить(СсылкаНаОбъект.Организация);
НаборЗаписей.Отбор.Тип.Установить(Перечисления.ТипыКонтактнойИнформации.Адрес);
НаборЗаписей.Отбор.Вид.Установить(Справочники.ВидыКонтактнойИнформации.ЮрАдресОрганизации);
НаборЗаписей.Прочитать();
   МассивПолей = НаборЗаписей[0];
   Регион  = МассивПолей.Поле2;
   Район   = МассивПолей.Поле3;
   Город   = МассивПолей.Поле4;
   НаселенныйПункт = МассивПолей.Поле5;
   Улица   = МассивПолей.Поле6;
   Дом     = МассивПолей.Поле7;
   Корпус  = МассивПолей.Поле8;
   Квартира= МассивПолей.Поле9;
   Индекс  = МассивПолей.Поле1;
24 wertyu
 
15.08.11
15:34
ЗЫ. всё, что я написал для произвольного адреса, если адрес в формате, то конечно лучше из поля взять )))
25 Tirael
 
15.08.11
15:37
(24) судя по (10) какой-то порядок в адресах все-таки есть ))
26 famnam
 
15.08.11
15:37
9 запятых тоже формат)
27 Hostess_
of_Love
 
15.08.11
15:39
сейчас с набором записей попробую
28 wertyu
 
15.08.11
15:42
(25) очень часто заполняют представление, Москву и Питер всё равно надо проверять дополнительно они в Поле2, а остальные города в Поле4
29 Hostess_
of_Love
 
15.08.11
15:42
{ВнешняяОбработка.КоммерческоеПредложение.МодульОбъекта(40)}: Индекс находится за границами массива
   МассивПолей = НаборЗаписей[0];
30 Tirael
 
15.08.11
15:45
(29) Смотри значения отбора - почему он у тебя пустой
31 famnam
 
15.08.11
15:53
(29) добавь проверку Если НаборЗаписей.Количество()>0 Тогда
32 Hostess_
of_Love
 
15.08.11
15:57
исправила уже. просто отбор по виду неправильно написала.

Tirael, спасибо)
Закон Брукера: Даже маленькая практика стоит большой теории.