KLADR: Ввод адреса по классификатору адресов КЛАДР (ExtDb для 8.2)

19.06.15

Разработка - Универсальные функции

Всё новое - это хорошо забытое старое!
Представляю оригинальную версию обработки для ввода адреса из КЛАДР в конфигурациях 8.2 (только толстый клиент) без использования типового регистра сведений «Адресный классификатор». Как многим известно, в замечательной программе «1С: Бухгалтерия 7.7» ввод адресов производится из внешних DBF-файлов, свободно скачиваемых с сайта ФНС или диска ИТС в каталог ExtDb рабочей базы. С помощью данной обработки вы сможете легко подключить и обновлять внешний КЛАДР для неограниченного количества своих баз меньше чем за одну минуту.

Скачать исходный код

Наименование Файл Версия Размер
Демо-конфигурация
.cf 36,06Kb
116
.cf 36,06Kb 116 Скачать

Предыстория

Создавая различные заказные конфигурации «с нуля» на платформе v8 я столкнулся с необходимостью подключения адресного классификатора для ввода юридического и фактического адресов фирм и контрагентов, адресов доставки и т.п. Не изобретая велосипед, я использовал регистр сведений и нужные ему процедуры подсистемы «Адресный классификатор» из типовой конфигурации, загружал файлы КЛАДР в базу и всё работало. Недостатком такой системы была очень долгая первичная загрузка и еще более длительное обновление данных в регистре сведений «Адресный классификатор», необходимость это делать отдельно в каждой рабочей базе, а также значительное увеличение объема баз и ежедневных архивов за счет данных, не являющихся учетными для предприятия. Каждый раз я с ностальгией вспоминал, что в старенькой «семёрке» достаточно было распаковать свежий архив с КЛАДР в каталог ExtDb одной базы, за пару минут проиндексировать DBF-ки, просто раскидать полученные файлы по другим базам и всё работало также быстро и надежно как теперь в «восьмёрке». Безуспешно поискав подобное типовое решение от 1С и не найдя ничего похожего здесь на Инфостарте, я принял решение изучить проблему и всё сделать самому.

Как это было

Для начала была скачана последняя версия КЛАДР и вся техническая документация по нему со страницы ФГУП ГНИВЦ ФНС России (в дальнейшем обновления базы данных классификатора можно тоже качать отсюда). Документация была изучена, DBF-файлы визуально пощупаны с помощью программы winDBFview (в частности с помощью встроенной функции работы с КЛАДР). Далее были изучены схемы организации ввода адреса в типовых «1С: Бухгалтерии 7.7 ред. 4.5» и «Библиотеке стандартных подсистем ред. 2.1». Огромную благодарность выражаю авторам обработки альтернативного ввода адреса для 7.7: //infostart.ru/public/61447/ и //infostart.ru/public/82114/ (некоторые идеи были взяты для каркаса моей разработки). В итоге собрав всё лучшее и отбросив наиболее непонятное была создана предлагаемая вашему вниманию обработка под 8.2.

Демо-конфигурация

Для демонстрации примера подключения и правил работы с внешним адресным классификатором была создана чистая конфигурация, включающая только объекты, которые понадобятся для эффективного подключения обработки к вашей базе. Скачиваемая конфигурация абсолютно открыта, не использует защиту и внешние компоненты, полностью готова к использованию и возможной доработке.

  1. Создайте новый каталог, например C:\DataBase\ExtDb, и скопируйте в него файлы KLADR.DBF, STREET.DBF и DOMA.DBF, скачав их с сайта ГНИВЦ ФНС (остальные DBF-ки из архива можно удалить) или скопировав из каталога ExtDb рабочей базы «1С: Бухгалтерия 7.7».
  2. Создайте пустую базу на платформе 8.2 (толстый клиент) и загрузите в неё файл конфигурации KLADR.cf из данной публикации.
  3. Откройте новую базу в режиме «Предприятие», заполните константу «Путь к КЛАДР» каталогом п.1, нажмите внизу кнопку «Записать», при первом выборе значения константы «Типовой адрес» запустится индексация файлов КЛАДР (статус процесса в строке состояния) и откроется диалог ввода адреса.
  4. При заполненной константе «Путь к КЛАДР» на старте системы будет открываться уже не форма констант, а список демонстрационного справочника «Адреса», состоящего из одного реквизита неограниченной длины «Адрес». В модуле формы элемента данного справочника собраны все полезные приёмы работы с адресами формата ФНС.
  5. Описание прочих объектов конфигурации: общие модули «БСП» и «КЛАДР» содержат необходимые типовые процедуры и функции для обработки ввода адреса, из константы «Типовой адрес» подставляется значение при вводе нового адреса (можно ввести туда адрес до вашего города и начинать ввод сразу с улицы) и сама обработка «ВводАдреса» (проверяет и создает индексы, разбирает и собирает адрес через «9 запятых» - в общем смотрите и пользуйтесь).
  6. Выбираемые из списков элементы КЛАДР дополнительно подсвечиваются одним из трех цветов: черный - наименованию объекта ещё не сопоставлен код из базы (такое бывает при начале редактирования старого адреса или вводе наименования объекта вручную), синий - наименование объекта успешно идентифицировано в базе КЛАДР, красный - выбранный ранее из классификатора объект исправлен (такое бывает при ручном исправлении выбранного наименования или измении вышестоящего элемента адреса при уже выбранных нижестоящих).  

Я знаю что...

Данная обработка осознанно отличается по своему поведению от типовых механизмов 7.7 и 8.2 в следующих аспектах:

  1. Более жёсткая работа с полем «Индекс»: заполняется только если найден в домах или улицах (нет подбора ближайшего).
  2. Количество индексов и размер CDX-файлов максимально сокращены (своя индексация с префиксом «8»), избыточные заменены на переборы строк с условием, что практически незаметно на современных компьютерах и серверах.
  3. Убран подбор городов и населенных пунктов среди всех районов выбранного региона: только прямое подчинение по структуре кодов КЛАДР (можете доработать, включая анализ и обработку поля «STATUS»).
  4. Рекурсия по объектам адресации разорвана и структурирована в угоду читабельности и лёгкости доработки кода.
  5. Версии обработки на управляемых формах нет и не планируется, клиент-сервер встанет без особых доработок.
  6. Файлы ALTNAMES.DBF и SOCRBASE.DBF не используются: только актуальные адреса, только DOS-кодировка КЛАДР.
  7. Используемые файлы KLADR.DBF, STREET.DBF и DOMA.DBF сразу открываются на чтение при открытии формы обработки (готовьте оперативную память), но ошибок блокировки при одновременном вводе адресов различными пользователями и из разных баз не выявлено.

Заключение

Данный проект безусловно будет шлифоваться и дорабатываться, поэтому прошу без лишней необходимости не клонировать данную публикацию при добавлении мелких улучшений, лучше обратитесь к автору и вышлите мне ваше видение каких-либо моментов. Я обязательно их включу в новую версию обработки и выложу для общего использования в данной публикации.

См. также

Вставляем картинку из буфера обмена (платформа 1С 8.3.24)

Универсальные функции Платформа 1С v8.3 Конфигурации 1cv8 Абонемент ($m)

Задача: вставить картинку из буфера обмена на форму средствами платформы 1С.

1 стартмани

18.03.2024    2867    2    John_d    11    

56

GUID в 1С 8.3 - как с ними быть

Универсальные функции Платформа 1С v8.3 Конфигурации 1cv8 Бесплатно (free)

Пришлось помучиться с GUID-ами немного, решил поделиться опытом, мало ли кому пригодится.

12.02.2024    4997    atdonya    22    

51

Переоткрытие внешних обработок

Универсальные функции Платформа 1С v8.3 Бесплатно (free)

На заключительных этапах, когда идет отладка или доработка интерфейса, необходимо много раз переоткрыть внешний объект. Вот один из способов автоматизации этого.

30.11.2023    4091    ke.92@mail.ru    16    

62

Валидация JSON через XDTO (включая массивы)

WEB-интеграция Универсальные функции Механизмы платформы 1С Платформа 1С v8.3 Конфигурации 1cv8 Бесплатно (free)

При работе с интеграциями рано или поздно придется столкнуться с получением JSON файлов. И, конечно же, жизнь заставит проверять файлы перед тем, как записывать данные в БД.

28.08.2023    9332    YA_418728146    6    

143

Печать непроведенных документов для УТ, КА, ERP. Настройка печати по пользователям, документам и печатным формам

Пакетная печать Печатные формы Адаптация типовых решений Универсальные функции Платформа 1С v8.3 1С:ERP Управление предприятием 2 1С:Управление торговлей 11 1С:Комплексная автоматизация 2.х Россия Абонемент ($m)

Расширение для программ 1С:Управление торговлей, 1С:Комплексная автоматизация, 1С:ERP, которое позволяет распечатывать печатные формы для непроведенных документов. Можно настроить, каким пользователям, какие конкретные формы документов разрешено печатать без проведения документа.

2 стартмани

22.08.2023    2197    24    progmaster    7    

3

Расширение: Быстрые отборы через буфер [Alt+C] Копировать список, [Alt+V] Вставить список, [Ctrl+C] Копировать из файлов

Инструментарий разработчика Универсальные функции Платформа 1С v8.3 Конфигурации 1cv8 1С:Розница 2 1С:ERP Управление предприятием 2 1С:Бухгалтерия 3.0 1С:Управление торговлей 11 1С:Комплексная автоматизация 2.х 1С:Зарплата и Управление Персоналом 3.x Абонемент ($m)

Копирует в буфер значения из списков, из ячеек отчетов, таблиц, настроек списков, других отборов и вставляет в выбранную настройку отбора. Работает с Объект не найден. Работает как в одной так и между разными базами 1С. Использует комбинации [Alt+C] Копировать список, [Alt+V] Вставить список. Также для копирования данных используется стандартная [Ctrl+C] (например из открытого xls, mxl, doc и т.п. файла скопировать список наименований)

1 стартмани

13.10.2022    16330    142    sapervodichka    112    

130

Система контроля ведения учета [БСП]

Универсальные функции Механизмы типовых конфигураций БСП (Библиотека стандартных подсистем) Платформа 1С v8.3 Конфигурации 1cv8 Бесплатно (free)

В данном материале рассмотрим типовой алгоритм подсистемы контроля учета БСП в конфигурациях на примерах.

18.07.2022    7345    quazare    8    

110
Комментарии
Подписаться на ответы Инфостарт бот Сортировка: Древо развёрнутое
Свернуть все
1. madonov 190 06.06.13 10:20 Сейчас в теме
Вот так, с помощью нехитрых приспособлений буханку белого (или черного) хлеба можно превратить в троллейбус... но зачем?

Плюс за усердие)
+
2. Хряк 144 06.06.13 19:08 Сейчас в теме
Браво! Очень полезная весчь! Спасибо.
+
3. kapustinag 07.06.13 09:05 Сейчас в теме
Сложные чувства...
С одной стороны - да, базы и бэкапы распухают из-за КЛАДР; да, надо периодически подгружать новый КЛАДР.
С другой стороны - ради внешнего КЛАДР включили возможность изменения конфигурации, и платим за это каждый раз увеличением трудоемкости обновления. Кроме того, дополнительный сетевой ресурс с этим внешним КЛАДРом - туда надо давать права, обслуживать.
В-общем, за все нужно платить. Так как дисковое пространство постоянно дешевеет, то для многих ответ все-таки будет - не трогать типовой КЛАДР. Ну а в самописных или сильно измененных конфигурациях - хорошее решение, согласен.
+
4. Chastiser 45 07.06.13 10:00 Сейчас в теме
(3) kapustinag, данное решение действительно больше для самописных (обидно когда КЛАДР занимает в базе столько же места, сколько учетные данные солидной торгово-производственной компании за 5 лет). Но поскольку вход и выход для внешнего КЛАДРа это всего лишь одна строчка кода с передачей (можно во внешнюю обработку) заполняемого элемента формы, то изменения типовых не такие уж и критические для дальнейшего обновления.
+
5. nistelrock 13.12.13 23:07 Сейчас в теме
Может кому пригодится, вот тут можно подписаться на обновления КЛАДР
xpym-xpym; +1
6. hibico 267 15.01.14 13:36 Сейчас в теме
(+) за решение.
Жаль, что поздно увидел публикацию.
Сам прикручивал Классификатор по принципу Типовых на регистре.
Был шокирован, когда после загрузки Классификатора объем базы вырос почти на 1.5 гига при объеме DBF-ов в 300 метров.
Посмотрел демку. В моем случае переделка будет достаточно трудоемка. Но в будущем может пригодиться.
+
7. zzz_natali 61 02.02.14 19:05 Сейчас в теме
Совершенно несъедобный подход. Зачем править типовую конфу? Если на то пошло, то идти по пути некой базы(внешней обработки)-сателлита, которая могла бы вводить адрес со всеми существующими штатными вкусностями: на лету фильтровать и предлагать вводить наименования по первым буквам и копировать в буфер обмена, из которого уже можно копировать в рабочую базу, не трогая регистр сведений адресный классификатор
+
8. CrazyIgi 9 25.03.14 08:14 Сейчас в теме
Идея интересная, взял на вооружение.
Планируется ли реализация на управлямых формах?
+
9. Chastiser 45 25.03.14 08:51 Сейчас в теме
(8) Спасибо. На управляемых формах делать пока нет надобности. Тут показан только сам подход, а оформление каждый сам доработает под себя при желании.
+
10. CeHbKA 301 24.09.15 12:09 Сейчас в теме
Спасибо Вам большое
+
11. AleksLeo 02.08.16 11:04 Сейчас в теме
Все Ок! Но есть проблема. При наборе по буквам не высвечивается список выбора и затирается сразу первая набранная буква. Что это?
+
12. user819046 28.08.17 11:45 Сейчас в теме
А можно сразу использовать dadata.ru. Поддерживается и КЛАДР и ФИАС (очень поможет при переходе, когда в 2018 году КЛАДР перестанет поддерживаться). Есть 10 000 бесплатных запросов в сутки.
+
Внимание! Тема сдана в архив