Загрузка адресов по коду КЛАДРа

Внимание! Тема закрыта. Добавлять сообщения в закрытую тему запрещено.
1. micha26 07.10.15 14:52 Сейчас в теме
Здравствуйте уважаемые.
Вопрос такой возник - загружаю контрагентов из excel, в том же файле будет код КЛАДРа (для каждого контрагента). Так вот есть идеи, как можно при загрузке в 1С УТ 10.3 записать адрес для контрагента не как представление (иностранный адрес)?
По теме из базы знаний
Ответы
Подписаться на ответы Инфостарт бот Сортировка: Древо развёрнутое
Свернуть все
2. SGordon1 08.10.15 10:02 Сейчас в теме
Поточнее проблему проясните.. В Торговле контактная информация хранится в регистре сведений, там можно хранить и адрес за пределами РФ , чисто в виде представления без разбиения по Полям КЛАДР.
3. micha26 12.10.15 09:22 Сейчас в теме
Ок, есть самописка на 1С 7.7. Из нее перенес номенклатуру, теперь хочу перенести контрагентов (их очень много) :-) В принципе сам перенос проблем не составит, но в данной самописке есть справочник адрес в котором собственно забиты адреса контрагентов. Если загружать адреса через обработку загрузки из excel то адреса запишутся как представление (иностранный адрес). Есть возможность вытащить из самописки код КЛАДРа - и в связи с этим у меня появилась мысль, есть ли возможность по этому коду КЛАДР сопоставить адреса в УТ?
7. Shaddie 12.10.15 14:45 Сейчас в теме
(3) micha26, Проверьте возможно у вас адреса в исходной базе и так в нужном формате (должно быть что то типа ",634034,,,Томск,,ул. Белинского,53,,") тогда можно будет просто перенести адрес как вы хотите, если же он хранится уже в виде "634034, г. Томск, ул. Белинского, д. 53" тогда уже все сложнее.

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

ПредставлениеАдреса - строка типа ",634034,,,Томск,,ул. Белинского,53,,"
СсылкаНаКонтрагента - ссылка на контрагента
9. micha26 13.10.15 09:08 Сейчас в теме
(7) Shaddie, да вот к сожалению адреса записаны как попало. Попробую разобраться с записями в семерке.
19. micha26 22.10.15 16:41 Сейчас в теме
(7) Shaddie, а где можно выяснить формат выгрузки - какие данные за какими идут скажем так.
4. SGordon1 12.10.15 11:38 Сейчас в теме
Если в самописке сможете расставить запятые как положено в кладр ( по полям) - то конечно можно....
5. micha26 12.10.15 13:42 Сейчас в теме
(4) SGordon1, наверное не догоняю что-то код вытащенный из самописки (не моя если что) - 35 000 002 000 0149 0006 (для примера).
8. Cooler 22 12.10.15 15:31 Сейчас в теме
(5) micha26,
35 000 002 000 0149 0006 (для примера)
Надо прежде всего разобраться с длиной кода. Проблема в том, что тут 19 знаков, в то же время в файле KLADR.DBF он 13-значный, а в STREET.DBF - 17-значный. Если окажется, что последние 2 знака - номер дома, то с этим можно работать.

Регион определяется по первым двум знакам, для поиска в KLADR.DBF надо добавить 11 нулей: "3500000000000" - запись "Вологодская область" Дальше надо смотреть район, город или населенный пункт. Так, нули после "35" говорят о том, что района нет, а это город областного подчинения. "Хвост" кода каждый раз отбрасываем и дополняем нулями, получаем "3500000200000" - "Череповец г". В других случаях может быть еще населенный пункт, но тут можно переходить сразу к поиску улицы в STREET.DBF: "35000002000014900" - "Первомайская ул".

Скачайте себе файлы КЛАДРа, откройте их в любом DBF-редакторе - там несложно разобраться.
6. Зеленоград 12.10.15 14:25 Сейчас в теме
Мало групп цифр, но первый уровень - код региона, 35 - Вологодская область.

Что про КЛАДР знаешь?

Первые 2 разряда:


01 Республика Адыгея
02 Республика Башкортостан
03 Республика Бурятия
04 Республика Алтай
05 Республика Дагестан
06 Республика Ингушетия
07 Кабардино-Балкарская Республика
08 Республика Калмыкия
09 Карачаево-Черкесская Республика
10 Республика Карелия
11 Республика Коми
12 Республика Марий Эл
13 Республика Мордовия
14 Республика Саха (Якутия)
15 Республика Северная Осетия
16 Республика Татарстан
17 Республика Тыва (Тува)
18 Удмуртская Республика
19 Республика Хакасия
20 Чеченская Республика
21 Чувашская Республика
22 Алтайский край
23 Краснодарский край
24 Красноярский край
25 Приморский край
26 Ставропольский край
27 Хабаровский край
28 Амурская область
29 Архангельская область
30 Астраханская область
31 Белгородская область
32 Брянская область
33 Владимирская область
34 Волгоградская область
35 Вологодская область
36 Воронежская область
37 Ивановская область
38 Иркутская область
39 Калининградская область
40 Калужская область
41 Камчатская область
42 Кемеровская область
43 Кировская область
44 Костромская область
45 Курганская область
46 Курская область
47 Ленинградская область
48 Липецкая область
49 Магаданская область
50 Московская область
51 Мурманская область
52 Нижегородская область
53 Новгородская область
54 Новосибирская область
55 Омская область
56 Оренбургская область
57 Орловская область
58 Пензенская область
59 Пермский край
60 Псковская область
61 Ростовская область
62 Рязанская область
63 Самарская область
64 Саратовская область
65 Сахалинская область
66 Свердловская область
67 Смоленская область
68 Тамбовская область
69 Тверская область
70 Томская область
71 Тульская область
72 Тюменская область
73 Ульяновская область
74 Челябинская область
75 Читинская область
76 Ярославская область
77 г. Москва
78 г. Санкт-Петербург
79 Еврейская автономная область
80 Агинский Бурятский автономный округ
81 Пермский край
82 Автономная Республика Крым
83 Ненецкий автономный округ
84 Таймырский автономный округ
85 Иркутская область
86 Ханты-Мансийский автономный округ
87 Чукотский автономный округ
88 Эвенкийский автономный округ
89 Ямало-Ненецкий автономный округ
92 Севастополь
94 Территории за пределами РФ (Байконур, Антарктика)
10. micha26 16.10.15 10:40 Сейчас в теме
Здравствуйте уважаемые, снова.
ПО новой вытащил из старой семерки excel c контрагентом и кодом 15 знаков (350000020000050), вот думаю что дальше с этим делать )))) Есть ли возможность по этому коду занести адреса в УТ 10.3? Как я представляю при загрузке раскладывать код и...вот дальше пока мысль не идет.
11. micha26 20.10.15 15:01 Сейчас в теме
12. Cooler 22 20.10.15 18:25 Сейчас в теме
(11) micha26,
Мыслей ни у кого нет?
Бесплатные - кончились.
13. micha26 21.10.15 14:05 Сейчас в теме
(12) Cooler, да без проблем - а платные?
14. SGordon1 22.10.15 15:26 Сейчас в теме
В самописке кладр адрес представлен только 19 значным кодом и из него что то хочется вытащить? Какой то мазохисткий подход , по моему....
15. SGordon1 22.10.15 15:27 Сейчас в теме
Может там имеются готовые функции по преобразованию в обычную строку с разделителями? Как то ведь адреса эти используют ....
16. micha26 22.10.15 15:59 Сейчас в теме
(15) SGordon1, да садо-мазо попахивает ))) Хочетцо вытащить индекс, область, город, улицу, дом... нет не имеется.
17. micha26 22.10.15 16:01 Сейчас в теме
(15) SGordon1, а если их получится преобразовать в строку с разделителем - тогда как рекомендовал Shaddie, так я понимаю?
18. SGordon1 22.10.15 16:32 Сейчас в теме
20. Shaddie 26.10.15 21:38 Сейчас в теме
Если есть 19 значный код, то это код с точностью до дома:
СС РРР ГГГ ППП УУУУ ДДДД, где
СС – код субъекта Российской Федерации (региона), коды регионов представлены в Приложении 2 к Описанию классификатора адресов Российской Федерации (КЛАДР);
РРР – код района;
ГГГ – код города;
ППП – код населенного пункта;
УУУУ – код улицы (если адрес не содержит наименования улицы, т.е. дома привязаны непосредственно к городу или населенному пункту, то код улицы будет содержать нули – 0000);
ДДДД – порядковый номер позиции классификатора с обозначениями домов.

Формат нужной строки:
"," + СокрЛП(Индекс) + "," + СокрЛП(Регион) + "," + СокрЛП(Район) + "," + СокрЛП(Город) + "," + СокрЛП(НасПункт)
+ "," + СокрЛП(Улица) + "," + СокрЛП(Дом) + "," + СокрЛП(Корпус) + "," + СокрЛП(Квартира)

Ищем в файле Kladr.dbf в колонке "CODE": СС + "00000000000" - получим Регион (из колонки "NAME")

Если РРР = "000", то Район = "" иначе
Ищем в файле Kladr.dbf в колонке "CODE": СС + РРР + "00000000" - получим Район (из колонки "NAME")

Если ГГГ = "000", то Город = "" иначе
Ищем в файле Kladr.dbf в колонке "CODE": СС + РРР + ГГГ + "00000" - получим Город (из колонки "NAME")

Если ППП = "000", то НасПункт = "" иначе
Ищем в файле Kladr.dbf в колонке "CODE": СС + РРР + ГГГ + ППП + "00" - получим НасПункт (из колонки "NAME")

Если УУУУ = "0000", то Улица = "" Дом = "" иначе
Ищем в файле street.dbf в колонке "CODE": СС + РРР + ГГГ + ППП + УУУУ + "00" - получим Улица (из колонки "NAME")

Ищем в файле doma.dbf в колонке "CODE": СС + РРР + ГГГ + ППП + УУУУ + ДДДД - получим строку с перечислением номеров домов через запятую (из колонки "NAME"), если повезет там будет 1 значение :)

Индекс берем из колонки "INDEX" - сначала когда определяем Город, потом когда определяем НасПункт, потом когда определяем Улица, потом когда определяем Дом (то есть берем самое последнее значение).

Корпус и Квартира равны "" (в данном случае информации по ним нет)
Squisher; Зеленоград; micha26; comptr; Cooler; +5 Ответить
21. Cooler 22 26.10.15 22:39 Сейчас в теме
(20) Shaddie, мои поздравления - вы предельно подробно разложили процесс "сборки" адреса по коду. Я в (8) только указал в общих чертах направление, по которому надо двигаться, а вы проделали практически всю работу, которая требуется автору, осталось только написать несложный код по этому алгоритму.

Картину маслом портит разве что некоторые сомнения в способности автора довести дело до конца... и пятнадцатизначный пример кода в (10).
22. micha26 27.10.15 08:41 Сейчас в теме
Shaddie - весьма благодарен за объяснение, более-менее на свои места все встало.
(21) Cooler, при всем уважении - свои сомнения при себе держите, или вы сразу суперкрутым 1С-ником родились? Или во всех возможных областях вы великий спец? Вряд ли.
Оставьте свое сообщение

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