Не найден файл кладр altnames dbf
В данной статье я пытаюсь поставить все точки над “ i ” (по крайней мере для себя) в вопросе подключения классификатора КЛАДР к конфигурациям 1 C : Предприятие 7.7, в частности, 1 C : Бухгалтерский учет 4.5, 1С: Зарплата и кадры 3.2 и т.п.
Проблема подключения справочника КЛАДР периодически появляется на форумах в Интернете, в частности:
и др , но до сих пор дельного предложения по решению проблемы не было указано.
P . S . Проблема не возникает у тех, кто подписан на ИТС, но не все могут себе позволить подписку.
Файл kladr.dbf с адресным классификатором найден, копируется.
Файл kladr.dbf с адресным классификатором скопирован.
Файл street.dbf с классификатором улиц найден, копируется.
Файл street.dbf с классификатором улиц скопирован.
Файл socrbase.dbf с классификатором сокращений найден, копируется.
Но далее происходит следующее (пример: установка адреса для сотрудника):
Нажимаем на кнопке […] возле поля регион. Появляется форма:
Далее вводим название региона: Кемеровская обл.
Выбранный регион попадает в поле регион в форме ввода адреса.
Далее пытаемся выбрать город “Новокузнецк” в поле “Город”, нажав кнопку […]
В справочнике “Города” выбираем город “Новокузнецк”
Нажимаем кнопку [OK].
Открывается форма “Ввод адреса”, курсор перескакивает на пункт “Населенный пункт”, НО ВСЕ ПОЛЯ ОКАЗЫВАЮТСЯ ПУСТЫМИ .
Отличия заключаются в следующем:
Структура таблицы KLADR.DBF, которую “понимает” 1С 7.7 следующая:
Table Format: dBase III
Records Number: 157815
Fields Number: 5
Header Size: 193
Record Length: 72
1 NAME Character 40
2 SOCR Character 10
3 CODE Character 11
4 INDEX Character 6
5 GNINMB Character 4
Table Format: dBase III
Records Number: 166775
Fields Number: 8
Header Size: 289
Record Length: 88
1 NAME Character 40
2 SOCR Character 10
3 CODE Character 13
4 INDEX Character 6
5 GNINMB Character 4
6 UNO Character 2
7 OCATD Character 11
8 STATUS Character 1
Т.о. видно, что KLADR.DBF в версии ГНИВЦ МНС имеет поле CODE длиной 13 символов (в отличие от версии 1С – 11 символов), а также имеет поля UNO , OCADT , STATUS .
Остальные таблицы (SOCRBASE.DBF, STREET.DBF) имеют одинаковый формат.
Решение проблемы заключается в том, что необходимо в таблице KLADR.DBF в версии ГНИВЦ МНС уменьшить размер поля CODE до 11 символов. Это не приведет к потере данных в поле CODE по причине того, что все строки в поле CODE имеют последние символы 00, зато приведет к нормальной работе 1С 7.7. Следует отметить, что после таких “обрезаний” скорее всего не будет работать “родной” VIEW ’ер базы КЛАДР KLADRS. exe (да от нас этого и не требуется).
“Урезание” поля можно проделать в программе Database Desktop от Borland ’ a . Процедура описана ниже.
f. BASE.ARJ
в подкаталог C :\_ tmp _
2. Далее необходимо выполнить команды (в командном файле):
"%ProgramFiles%\WinRar\WinRar.exe" e "C:\_tmp_\BASE.ARJ" "E:\_1C_\_KLADR_"
3. В результате в подкаталоге "E:\_1C_\_KLADR_" появятся 6 файлов:
a. ALTNAMES.DBF
- содержит сведения о соответствии кодов записей со старыми и новыми наименованиями адресных объектов, а также сведения о соответствии кодов адресных объектов до и после их переподчинения
b. DOMA.DBF
содержит записи с объектами шестого уровня классификации (номера домов улиц городов и населенных пунктов)
c. FLAT.DBF
- содержит записи с объектами седьмого уровня классификации (номера квартир домов)
d. KLADR.DBF
- содержит записи с объектами первых четырех уровней классификации (регионы; районы; города, поселки городского типа, сельсоветы; сельские населенные пункты)
e. SOCRBASE.DBF
- содержит записи с краткими наименованиями типов адресных объектов
f. STREET.DBF
- содержит записи с объектами пятого уровня классификации (улицы городов и населенных пунктов)
4. Далее запускаем DataBase DeskTop и открываем в нем таблицу KLADR . dbf
"%ProgramFiles%\Common Files\Borland Shared\Database Desktop\DBD32.EXE" "E:\_1C_\_KLADR_\KLADR.DBF"
5. Появится таблица:
6. Жмем на кнопку [ Restructure ] (или выбираем пункт меню Table-> Restructure). Появится окно “Restructure”
7. Выбираем поле CODE параметр “ Size ” для этого поля меняем значение с 13 на 11. Нажимаем [Enter].
8. Нажимаем на кнопку [ Save ]. Появится окно “Restructure Warning”
9. Жмем [ OK ] и закрываем DataBase Desktop .
10. Запускаем 1С: Бухгалтерию 7.7 (Зарплату и кадры и т.п.).
12. Выбираем любого сотрудника либо создаем нового.
13. Заходим на вкладку “ Прочее ”
14. Нажимаем на кнопку рядом с полем “Адрес регистрации”.
15. В появившейся форме “Ввод адреса” выбираем вкладку “Классификаторы” и заполняем ее, как показано на рисунке (Путь: E:\_1c_\_Kladr_) :
16. Нажимаем кнопку [ Загрузить ]
18. Переходим на вкладку “Формат МНС”
19. Жмем на кнопку […] рядом с полем “Регион”
21. В окне “Регионы” выбираем “ Кемеровская обл.” [OK]
22. Жмем на кнопку […] рядом с полем “Город”
23. В окне “Города” выбираем “Новокузнецк” [ OK ]
24. Жмем на кнопку […] рядом с полем “Улица”
26. В окне “Улица” выбираем “Кирова” [ OK ]. Жмем [OK]
27. Вводим номер дома и номер квартиры. [OK]
28. Видим, что адрес благополучно появился в поле “Адрес по регистрации”
На этом подключение и проверку подключения справочника КЛАДР к конфигурации 1С :Б ухгалтерия 7.7 можно выполненной.
Далее остается проделать алгоритм с пункта 10 по 28 для всех остальных конфигураций (Зарплата и кадры, Комплексная конфигурация), установленных на компьютере.
Всё новое - это хорошо забытое старое!
Представляю оригинальную версию обработки для ввода адреса из КЛАДР в конфигурациях 8.2 (только толстый клиент) без использования типового регистра сведений «Адресный классификатор». Как многим известно, в замечательной программе «1С: Бухгалтерия 7.7» ввод адресов производится из внешних DBF-файлов, свободно скачиваемых с сайта ФНС или диска ИТС в каталог ExtDb рабочей базы. С помощью данной обработки вы сможете легко подключить и обновлять внешний КЛАДР для неограниченного количества своих баз меньше чем за одну минуту.
Предыстория
Создавая различные заказные конфигурации «с нуля» на платформе v8 я столкнулся с необходимостью подключения адресного классификатора для ввода юридического и фактического адресов фирм и контрагентов, адресов доставки и т.п. Не изобретая велосипед, я использовал регистр сведений и нужные ему процедуры подсистемы «Адресный классификатор» из типовой конфигурации, загружал файлы КЛАДР в базу и всё работало. Недостатком такой системы была очень долгая первичная загрузка и еще более длительное обновление данных в регистре сведений «Адресный классификатор», необходимость это делать отдельно в каждой рабочей базе, а также значительное увеличение объема баз и ежедневных архивов за счет данных, не являющихся учетными для предприятия. Каждый раз я с ностальгией вспоминал, что в старенькой «семёрке» достаточно было распаковать свежий архив с КЛАДР в каталог ExtDb одной базы, за пару минут проиндексировать DBF-ки, просто раскидать полученные файлы по другим базам и всё работало также быстро и надежно как теперь в «восьмёрке». Безуспешно поискав подобное типовое решение от 1С и не найдя ничего похожего здесь на Инфостарте, я принял решение изучить проблему и всё сделать самому.
Как это было
Демо-конфигурация
Для демонстрации примера подключения и правил работы с внешним адресным классификатором была создана чистая конфигурация, включающая только объекты, которые понадобятся для эффективного подключения обработки к вашей базе. Скачиваемая конфигурация абсолютно открыта, не использует защиту и внешние компоненты, полностью готова к использованию и возможной доработке.
- Создайте новый каталог, например C:\DataBase\ExtDb, и скопируйте в него файлы KLADR.DBF, STREET.DBF и DOMA.DBF, скачав их с сайта ГНИВЦ ФНС (остальные DBF-ки из архива можно удалить) или скопировав из каталога ExtDb рабочей базы «1С: Бухгалтерия 7.7».
- Создайте пустую базу на платформе 8.2 (толстый клиент) и загрузите в неё файл конфигурации KLADR.cf из данной публикации.
- Откройте новую базу в режиме «Предприятие», заполните константу «Путь к КЛАДР» каталогом п.1, нажмите внизу кнопку «Записать», при первом выборе значения константы «Типовой адрес» запустится индексация файлов КЛАДР (статус процесса в строке состояния) и откроется диалог ввода адреса.
- При заполненной константе «Путь к КЛАДР» на старте системы будет открываться уже не форма констант, а список демонстрационного справочника «Адреса», состоящего из одного реквизита неограниченной длины «Адрес». В модуле формы элемента данного справочника собраны все полезные приёмы работы с адресами формата ФНС.
- Описание прочих объектов конфигурации: общие модули «БСП» и «КЛАДР» содержат необходимые типовые процедуры и функции для обработки ввода адреса, из константы «Типовой адрес» подставляется значение при вводе нового адреса (можно ввести туда адрес до вашего города и начинать ввод сразу с улицы) и сама обработка «ВводАдреса» (проверяет и создает индексы, разбирает и собирает адрес через «9 запятых» - в общем смотрите и пользуйтесь).
- Выбираемые из списков элементы КЛАДР дополнительно подсвечиваются одним из трех цветов: черный - наименованию объекта ещё не сопоставлен код из базы (такое бывает при начале редактирования старого адреса или вводе наименования объекта вручную), синий - наименование объекта успешно идентифицировано в базе КЛАДР, красный - выбранный ранее из классификатора объект исправлен (такое бывает при ручном исправлении выбранного наименования или измении вышестоящего элемента адреса при уже выбранных нижестоящих).
Я знаю что.
Данная обработка осознанно отличается по своему поведению от типовых механизмов 7.7 и 8.2 в следующих аспектах:
- Более жёсткая работа с полем «Индекс»: заполняется только если найден в домах или улицах (нет подбора ближайшего).
- Количество индексов и размер CDX-файлов максимально сокращены (своя индексация с префиксом «8»), избыточные заменены на переборы строк с условием, что практически незаметно на современных компьютерах и серверах.
- Убран подбор городов и населенных пунктов среди всех районов выбранного региона: только прямое подчинение по структуре кодов КЛАДР (можете доработать, включая анализ и обработку поля «STATUS»).
- Рекурсия по объектам адресации разорвана и структурирована в угоду читабельности и лёгкости доработки кода.
- Версии обработки на управляемых формах нет и не планируется, клиент-сервер встанет без особых доработок.
- Файлы ALTNAMES.DBF и SOCRBASE.DBF не используются: только актуальные адреса, только DOS-кодировка КЛАДР.
- Используемые файлы KLADR.DBF, STREET.DBF и DOMA.DBF сразу открываются на чтение при открытии формы обработки (готовьте оперативную память), но ошибок блокировки при одновременном вводе адресов различными пользователями и из разных баз не выявлено.
Заключение
Данный проект безусловно будет шлифоваться и дорабатываться, поэтому прошу без лишней необходимости не клонировать данную публикацию при добавлении мелких улучшений, лучше обратитесь к автору и вышлите мне ваше видение каких-либо моментов. Я обязательно их включу в новую версию обработки и выложу для общего использования в данной публикации.
Поставили новый релиз УПП 166.2. В описании написано "Новая адресная информация заполняется по формату ФИАС (пункт 1 части 2 статьи 5 Федерального закона от 28.12.2013 № 443-ФЗ). Загрузить адресный классификатор ФИАС можно с портала 1С:ИТС, а также из файлов, распространяемых ФНС РФ." Загрузили с ИТС классификатор ФИАС, но он не загружается в УПП, УПП ищет файлы по старому формату. Что не так сделали?
Там пытается загрузить адресный классификатор КЛАДР ( формат файлов dbf) , а у ФИАС другой формат файлов!
Из формы редактирования адреса Классификатор загружается ( правда непонятно какой. загружали с ИТС в папке почему то не видит). После этого при заполнении адреса на номере дома система наглухо виснет!
Совсем разработчики плюнули на тестирование УПП перед выпуском релиза(
Сломали работу с адресным классификатором
V8 ответил
Добрый день.
Локальное исправление:
1. Заменить обработку РедактированиеКонтактнойИнформации (во вложении)
2. Внести изменения в общие модули
Общий модуль АдресныйКлассификаторСлужебный
Функция НомерДомаЧислом
Строку:
Процедура ДобавитьИнформациюОДоме
Строку:
Общий модуль РаботаСАдресами
Заменить объявление функции:
Жесть, тоже сегодня столкнулся с этим. Только устроился на новую работу, а тут такие "официальные" подставы. 2 обновления - 2 косяка. Первый это на предыдущем обновлении, когда реализации перестали проводиться из-за отслеживаемости.
(14) Если полностью очистить классификатор, а потом залить его заново, ранее заведенная в справочниках информация по адресам не очистится (не измениться)?
При попытке добавить новый адрес в справочнике "Физические лица" вываливается ошибка
: Поле объекта не обнаружено (Значение)
Если ПустаяСтрока(СтруктураЗаписи.Значение) Тогда
Это уже на замененной обработке.
А при добавлении в регистре сведений "Контактная информация" такой ошибки нет.
(13) я решил проблему изменением в пару строк. Ошибка в том, что в функцию могут передаваться выборки из разных запросов, "как раньше" и "в новом формате". Если передается выборка "как раньше", то она не содержит в себе поля "Значение", по этому и возникает ошибка.
В Функции ПолучитьПредставлениеАдреса()
Строку:
При обновлении столкнулись еще с одной ошибкой, касающейся контактной информации:
после обновления на релиз 166.2
в справочнике Клиенты на закладке контакты
идет неправильная сортировка,
раньше все заполненные элементы были вверху,
а сейчас вверху находятся пустые строки, а заполненные строи идут в середине и в конце
(15)
Внести изменение в общем модуле УправлениеКонтактнойИнформацией
Процедура ПрочитатьКонтактнуюИнформацию
Добавить строчку кода в конце процедуры:
Все сделал что указано у user1270445
Теперь вылезает ошибка такого рода
: Ошибка при вызове метода контекста (ЗаписатьJSON)
ЗаписатьJSON(ЗаписьJSON, Значение,, "АдаптацияПолейКонтактнойИнформации", УправлениеКонтактнойИнформациейСлужебный);
по причине:
Передано значение недопустимого типа
(17) причем регион, город сохраняется без проблем, а если водить номер дома и улицы, то эта ошибка вылезает, и даже если сохраняется, при попытке редактировать снова все данные слетают
(22) Сотрудники организации (выбираем сотрудника) - Более подробно о физическом лице-Адреса и телефоны- Добавить = : Поле объекта не обнаружено (Значение)
Если ПустаяСтрока(СтруктураЗаписи.Значение) Тогда
(23) все добавилось без ошибок (на серверной базе). Роль Добавление и изменение адресной информации у пользователя включена.
Установила релиз 1.3.167.1 + загрузила новый классификатор + добавила некоторым пользователям роль "Добавление и изменение адресной информации" - пользователи довольны)))
Описание:
В документе Начисление по больничному листу при повторном открытии уже введенного адреса очищаются введенные значения
Описание:
При проведении документа Реестр сведений ФСС о пособиях о нетрудоспособности возникает ошибка:
Не удалось разобрать адрес регистрации, возможно указан адрес а пределами РФ!
Описание:
В справочнике Медицинские организации после заполнения адреса не заполняется код КЛАДР
Способ исправления:
Общий модуль УправлениеКонтактнойИнформацией
Функция ПолучитьПолныйАдрес(Запись) Экспорт
Обработка РедактированиеКонтактнойИнформации
Форма ФормаЗаписиАдреса
После обновления УПП 167.2 набрав индекс, выскакивает окошко выбора улицы/населенного пункта, но сам список пуст, хотя после обновления 167.1 он был заполнен.
УПП 167.2. Может индекс в справочнике неправильно набит или не заполнен? У нас выводится по индексу в 167.2 как и в 167.1
ну молодцы. Вообще сломали все. Запилил из старой конфы обработку, вроде полет нормальный. будем посмотреть
(33) Какую обработку поставили из старой? Не находим пока в 167.2 ошибок. Не хочется чтобы после обновления рабочей сюрприз был.
(35) 167.1 уже были исправления, а 167.2 там много объектов правится и все касаются адреса. У нас 167.1, там много ошибок 166.2 исправлены. Мы, как раз, 166.2 пропустили. Сразу обновлялись на 167.1.
(37) по новым типам не уточняли, главная задача после обновления возобновить адекватный ввод адреса. Поэтому кинули костыль, в ближайшее время обновим до последнего релиза, нечего "пенсионеров" гонять.
(38) Был сбой: нельзя было добавить новый тип адресной информации. Исправляли разработчики в 167.2.
Сейчас осталась проблема по вводу физлиц, если не знаешь индекс, то при вводе адреса индекс не добавляет.
(39) Индекс добавляется когда номер дома выбирается из справочника, а не вводится вручную, как привыкли.
(40) У нас ошибка: если ввод новой контактной информации делать через зеленый плюс, система запрашивает вид контактной информации и при выборе любого вида контактной информации вываливается ошибка : Поле объекта не обнаружено (Значение)
Если ПустаяСтрока(СтруктураЗаписи.Значение) Тогда
Причем эта ошибка проявляется не у всех, у некоторых пользователях ее нет, но разницы мы найти не можем
Там изменения в нескольких модулях. Не в одном месте. Лучше переходить сразу на 167.3, там еще часть ошибок исправлена. Или ждать 168. Обещают 2.11.
Добрый день!
У меня 167.1
При добавлении новой контактной информации теперь не пишутся значения (дом, улица и т.д.) в ресурсы одноименного регистра (поле1, . поле10), соответственно в печатных формах всех документов пропали адреса, в полях форм также не выводятся, такак как представление строится запросом на основе этих значений
Подскажите, пожалуйста, это исправлено в следующих релизах?
то должно работать
Пока не проверял.
(50)Да, так работает, контактную информацию (которая вводилась после обновления) нужно будет перезаписать
(50) Поля заполняются. А почему может не заполняться "ТипДома", "ТипКорпуса", "ТипКвартиры"?
Что я не так заполняю? На экране все поля заполнены и типы тоже.
Здравствуйте!
У нас немного другая конфигурация, но ошибки такие же в программе.
Подскажите, пожалуйста, у новых сотрудников в карточке Т-2, а именно в пункте
Адресе места жительства в ячейке "почтовый индекс" пустота.
Это нормально ?
До обновления такого не было.
При редактировании Адреса админ-территориально выдает ошибку
: Тип не определен (ФормаКлиентскогоПриложения)
ТипыСвойств.Вставить("ФормаВладелец", Тип("ФормаКлиентскогоПриложения"));
Обновил до 168.1 Но ОСТАЕТСЯ ПРОБЛЕМА!
Посмотрите пожалуйста, у кого база не сильно допилена, нет ли такой проблемы:
В случае исправления адреса у физлица, который ранее был заведен по КЛАДРу, в регистре контактной информации остаются старые поля (поле1,поле2,поле3….) из КЛАДРа и добавляется новая информация в поле «Значение» и Представление.
При заполнении документа начисление по больничному при выборе сотрудника автоматически в поле «адрес по регистрации» подставляется старая информация из КЛАДР. В Случае, если сотрудник новый, и адреса ранее не было, адрес по ФИАС не не подставляется в данное поле. Так же не заполняется совсем поле «Уник. Номер по ФИАС»
Возможно, данные проблемы есть в других документах, в которые подставляются данные из этого регистра.
(57) Посмотрите ответ №50. Нужно добавить строки цикла из старого релиза. Без добавления этих строк не работает корректно. Пока это разработчиками не исправлено. Вы классификатор ФИАС загрузили?
УИН по ФИАС не проставляется в Б/Л. Без этого номера все прекрасно работает.
(58) Согласен. они исправили в 169.1 но не для адресов, а для телефонов. Кто его знает, где они там что ещё забыли сделать. стажеры какие-то кодят не тестируя. Чем дальше тем хуже
Я вот сейчас напишу как я ставлю и после этого не бывает проблем, а вы сами решайте, слушать меня или нет.
Если идет установка с диска ИТС:
на диске классификаторы лежат в виде 4 файлов:
doma.exe
kladr.exe
socrbase.exe
street.exe
Каждый файл - саморазворачивающийся архив. В каждом архиве есть dbf файлы и cdx файлы. Первая мысль, которая приходит в голову, в конфигурации описаны команды для разворачивания этих архивов (а ведь конфигурации бывают не типовые, а самописные, мало ли что там вообще сделано)? А cdx-ы (файлы индексации) сделаны так как надо нашей конфигурации? Поэтому чтобы предотвратить возможные проблемы, сразу отсекаем часть возможных проблем.
а) создаем пустую папку
б) копируем все 4 файла туда
в) сами запускаем последовательно каждый на исполнение, заодно узнаем, а не битые ли архивы (вдруг они не с диска ИТС, а просто с него скопированы когда то на жесткий диск, после этого были заражены вирусом и потом некорректно вылечены антивирусом?)
г) Удаляем все появившиеся cdx файлы и эти уже ненужные exe файлы. В общеем, у нас в каталоге останутся только dbf файлы.
doma.dbf
kladr.dbf
socrbase.dbf
street.dbf
Если идет установка из какого то иного источника (программа из налоговой и т.п.), добываем из нее такие же 4 файла и копируем их в отдельную пустую папку.
Далее определяемся с кодировкой dbf файлов. Берем Far manager, жмем на любом из этих файлов F3 (просмотр), переключаемся между кодировками Win-Dos с помощью F8 и смотрим вверху окна в какой кодировке мы видим там корректно русские слова.
Если у нас кодировка Dos - уже можно загружать в 1С.
Если у нас кодировка Win: переименовываем файлы:
doma.dbf - в domaw.dbf
kladr.dbf - в kladrw.dbf
socrbase.dbf - не переименовываем!
street.dbf - в streetw.dbf
Теперь классификаторы можно загружать.
Рассмотрим на примере конфигурации Зарплата и кадры. Жмем в любого сотрудника, щелкаем на конвертик, который отправит нас в форму, в которой мы адрес из классификатора выбираем. Жмем там кнопку Загрузка из классификатора. Пишем путь к каталогу, где лежат наши 4 файла, выбираем кодировку, которую мы выяснили. Говорим, что загружается все полностью (Адресный классификатор, Классификатор улиц, Сокращения), а так же я ставлю галочку в "очищать классификатор перед загрузкой", хоть там и написано, что "не рекомендуется". В списке регионов ставим в нужные регионы галочки и загружаем. Если идет проблема как у вас, обязательно ставим галочку "очищать классификатор перед загрузкой" это посшибает неправильные данные в справочнике kladr и загрузит их начисто корректными сведениями. Вот и все, собственно.
Есть еще нюанс для комплексной конфигурации. ПОсле загрузки классификатора нужно указать, что имеем формат классификатора 2003 года, иначе при выборе одного значения составляющей адреса станут зачищаться остальные, причем сделать это должен каждый пользователь, который работает с классификатором.
Читайте также: