1 июля 2014 года вступил в силу Федеральный закон от 28.12.2013 № 443-ФЗ, обязавший использовать Федеральную информационную адресную систему (далее ФИАС) в качестве единой базы адресов для всех государственных и муниципальных организаций.
Основными плюсами ФИАС являются попытки стандартизации адресов и наличие стабильного ключа (ИД) для каждого дома.
Зачем в конфигурациях 1С 7.7 может понадобиться перейти с КЛАДР на ФИАС? Причины могут быть следующие:
Кроме того, из-за перехода всех федеральных служб, министерств и проч. на ФИАС (для ФНС переход до января 2018 года - письмо ФНС от 26.06.2017 N ЗН-4-22/12120@) в перспективе могут возникнуть требования использовать ФИАС при общении с ними (отчетность и т.д.).
Системные требования:
Для работы разработки "ФИАС для 7.7" необходимо:
Для работы опционального класса "МенеджерГеоКарт" необходимо:
Перейти к использованию ФИАС в 1С 7.7 - это ПРОСТО:
Данный продукт "ФИАС для 7.7" поможет Вам перейти к использованию ФИАС в своей конфигурации 1С 7.7 в кратчайшие сроки:
- Встраивается практически в любую конфигурацию 1С 7.7 за несколько минут, особенно в те конфигурации, где для ведения адресов используется типовой интерфейс по работе с КЛАДР (для типовых конфигураций "Бухгалтерия 4.5" и "Торговля и склад 9.2" есть подробная инструкция).
- Интерфейс пользователя, похожий на типовой интерфейс по работе с КЛАДР, только намного удобнее (см. рис. 1).

Рис. 1 Основное окно ввода адреса по ФИАС
- Специальная универсальная обработка по анализу существующей адресной информации и преобразования ее к ФИАС (см. рис.2).

Рис. 2 Обработка анализа и преобразования к ФИАС
Особенности интерфейса:
Особый уклон данной разработки направлен на удобство ввода адреса пользователем. Ввод адреса заточен на использовании клавиатуры без использования мыши - это позволяет вводить адрес максимально быстро (см. рис. 3):
- ввод региона по коду - значительно ускоряет выбор региона;
- ввод по строке - после ввода нескольких символов и нажатии клавиши Enter или F2 - осуществляется поиск возможных вариантов:
- если вариант только 1 - значение сразу подставляется в поле ввода и пользователь переходит к вводу следующего поля;
- если вариантов несколько - выводиться список возможны вариантов для выбора пользователем;
- вызов по клавише F4 отдельных форм выбора адресообразующих объектов (АО);
- для каждого АО на форме есть цветовая индикация, позволяющая пользователю сразу определять соответствие введенной информации по ФИАС:
- - пустой АО;
- - АО найден в БД ФИАС;
- - АО НЕ найден в БД ФИАС;
- - АО ДОМ выбран из собственной базы домов (СБД - пояснение ниже);

Рис. 3 Пример средней скорости ввода адреса
Географические координаты АО:
Еще со времен КЛАДРа у многих (в т.ч. у автора данной разработки) была идея привязать географические координаты домов к классификатору адресов - однако для КЛАДРа это выливалось в некоторое количество проблем и ньюансов (в частности отсутствие БД домов). ФИАС имеет в своем составе стабильный ключ (ИД) для каждого дома - воспользоваться этим для хранения географических координат было очень заманчиво. Разработка "ФИАС для 7.7" опционально работает совместно в классом 1С++ "МенеджерГеоКарт" (данный класс находиться в начале своего развития, как пример для ознакомления с API Яндекс-карт (согласно Пользовательскому соглашению), предоставляется бесплатно и никак не влияет на ценообразование разработки "ФИАС для 7.7") - при наличии данного класса в форме выбора появляется возможность (см. рис. 4):
- геокодировать адрес (геокодирование может проходить в фоне, т.е. после окончания ввода адреса) - будут геокодированы все НЕгеокодированые АО (от региона до дома), при этом установка координаты у АО будет происходить только в случае отличия от координаты АО более высокого уровня - данный метод с большой долей вероятности гарантирует корректную установку географических координат;
- показать адрес на карте;
- установить координаты адреса на карте
Рис. 4 Пример работы с картами Яндекс (3 Mb)
Все координаты после геокодирования или ручной установки на карте - сохраняются в БД Координат - отдельный файл GeoCoord.DBF, который находится (при отсутствии создается) в каталоге БД ФИАС. Естественно, каждая координата должна соответствовать конкретному ИД АО БД ФИАС и вот тут возникает одна проблема - на текущий момент времени в БД ФИАС есть не все реально существующие дома - о решении которой рассказывается ниже.
Ввод новых домов в БД ФИАС:
В БД ФИАС отсутствует достаточно много из реально существующих домов. Ситуация меняется к лучшему и отсутствующие дома постепенно добавляются, однако, по мнению автора, этот процесс может затянуться надолго.
В разработке "ФИАС для 7.7" данная проблема решена следующим образом: если пользователь не находит в БД ФИАС необходимый ему номер дома, он может добавить этот дом (см. рис. 5) в отдельную Собственную базу домов (СБД) - отдельные файлы own_H[номер региона].DBF, которые находятся (при отсутствии создаются) в каталоге БД ФИАС. В СБД такие дома хранятся с временными ИД. Другими словами, СБД - это временное расширение БД домов ФИАС, хранящееся в отдельных файлах и, соответственно, не зависящее от обновлений БД ФИАС.
Рис. 5 Пример ввода нового дома в СБД (1,5 Мб)
Основная задача домов в СБД - дождаться появления таких домов в БД ФИАС - при регламентной операции обновления БД ФИАС такие дома в СБД помечаются как архивные.
Подмена представлений видов объектов уровней "Дом", "Корпус", "Строение", "Квартира":
С версии 1.0.0.4 существует возможность подменить существующие представления видов объектов для уровней "Дом", "Корпус", "Строение", "Квартира". Если по простому, то можно самим определять как будет выглядеть представление "д. 13, кор. 2 лит. Т, комн. 2" или "дом 13, корпус 2, литер Т, комната 2". Данная настройка реализована, поскольку на текущий момент времени нет регламентированных правил по строковым представлениям таких видов объектов в строке адреса. Поэтому пользователям "ФИАС для 7.7" представлена возможность настроить эти представления под свои требования в форме настроек (см. рис.6)

Рис. 6 Форма настроке "ФИАС для 7.7"
Более того, пользователь может завести отсутствующие в ФИАС виды объекта. К примеру, на рис.6 для "Вида квартир" определили новый вид объекта "Кабинет" (который часто требуют указывать контрагенты в своих адресах, поскольку в ЕГРЮЛ указан именно "Кабинет").
Однако, в связи в появившейся возможностью изменять представления, возникает закономерный вопрос - как быть с уже пробитыми и сохраненными в 1С адресами? Ведь изменения в настройках повлияют только на вновь создаваемые или редактируемые адреса. Для отражения данных изменений хорошо подходит специальная универсальная обработка по анализу существующей адресной информации и преобразования ее к ФИАС (см. рис.2). После изменения настроек по наименованиям видов объектов, достаточно запустить эту обработку, выбрать необходимые реквизиты для анализа, заполнить список адресов в табличной части и по отмеченным адресам нажать кнопку "Обновить наименования" - обработка заполнит представления данных адресов и если они отличаются от текущих - покажет эти новые представления в колонке "Адрес сопоставленный". Далее останется только нажать кнопку "Записать", чтобы зафиксировать новые представления адресов в 1С.
Хранение адреса в 1С 7.7:
Хранение адреса ФИАС в БД 1С 7.7 возможно 3 способами:
- Адресная строка в формате КЛАДР (9 запятых) - самый простой способ, почти не требующий изменений в конфигурации 1С 7.7, однако при таком хранении адреса при каждом доступе к адресу (поиске данного адреса в БД ФИАС) будет происходить поиск по строке каждого АО. При массовой обработке адресов (например для расчета доставки и т.д.) это может негативно сказаться на времени обработки.
- Адресная строка в формате КЛАДР (9 запятых) храниться вместе с ИДФИАС (строка, содержащая в себе данные для быстрого поиска адреса в БД ФИАС). Здесь необходимо обратить внимание на длину строки реквизита адреса - при короткой длине (до 130-150 символов) - ИДФИАС (до 75 символов) может просто не поместиться в сохраняемой строке - в этом случае при сохранении ИДФИАС будет отброшен.Кроме того, если где то в отчетах конфигурации используется вывод адреса в явном виде (без глПредставлениеАдреса) - адрес будет отображаться совместно с ИДФИАС.
- Адресная строка в формате КЛАДР (9 запятых) и ИДФИАС в отдельных реквизитах. Это наиболее предпочтительный способ (т.к. лишен минусов из 1 и 2) - в этом случае для каждого реквизита адреса в конфигурацию необходимо добавить еще один реквизит, к примеру [ИмяРеквизитаАдреса]_ИДФИАС (строка(75)).
Обновление БД ФИАС:
Обновлять БД ФИАС очень просто - достаточно скопировать новые файлы (с заменой старых) в каталог БД ФИАС. При первом обращении к новой БД произойдет автоматическое определение новых файлов БД ФИАС и запустится регламентное задание по обновлению БД ФИАС:
- реиндексация обновленных файлов;
- проверка домов в СБД, при появлении такого дома в БД ФИАС:
- дом в СБД помечается как архивный (все последующие обращения к архивному дому СБД будут автоматически переадресовываться на дом БД ФИАС);
- координата архивного дома СБД копируется дому БД ФИАС;
Попытки прочих пользователей в это время использовать БД ФИАС закончатся сообщением немного подождать, пока идет обновление БД.
Практические советы:
- При наличии нескольких БД 1С 7.7 использовать для них ОДИН каталог БД ФИАС, это позволит:
- использование общей СБД;
- использование общей БД Координат;
- минимизировать временные затраты на обновление;
- минимизировать дисковые затраты (полная БД ФИАС занимает от 30Gb);
- Если каталогов БД ФИАС несколько (например физически разделенные филиалы) - можно использовать ИМПОРТ координат, для этого необходимо положить файл GeoCoord.DBF из одного каталога БД ФИАС в папку \IMPORT другого каталога БД ФИАС. При первом обращении к БД ФИАС, новые координаты будут импортированы. Данный механизм для обмена координат довольно просто автоматизировать по расписанию.
- Использовать отдельный реквизит для ИДФИАС - это более практичный вариант.
Описание настроек класса 1С++ "ФИАС":
Основные настройки класса хранятся в файле ФИАС.ini, расположенном в каталоге хранения файлов класса:
- ИспользоватьФИАС - определяет использование класса при вводе адреса: при 1 - ввод по ФИАС, при 0 - ввод по КЛАДРу при наличии стандартных обработок (по умолчанию 1);
- КаталогФИАС - путь к каталогу БД ФИАС (по умолчанию [КаталогИБ]\ExtDb\FIAS);
- КаталогИмпорта - путь к каталогу импорта географических координат (по умолчанию [КаталогФИАС]\IMPORT);
- СохранятьВСтрокеАдресаИдентификаторФИАС - определяет возможность хранения ИДФИАС в реквизите адреса (по умолчанию 0);
- ГеокодироватьАдресныеОбъектыВФоне - при подключенном классе "МенеджерГеоКарт" при работе с адресами (ввод или поиск) происходит геокодирование всех АО (по умолчанию 1);
- КоличествоПоследнихВведенныхАдресовВИстории - определяет количество введенных пользователем адресов в истории - по отдельной кнопке можно вставлять адрес из истории в форму ввода адреса (по умолчанию 20);
- ПоказыватьНастройки - определяет видимость пункта меню "Настройки "ФИАС для 7.7"" в форме ввода адреса (по умолчанию 1);
- НаборПравДляНастроек - определяет фильтр по набору прав пользователя для видимости настроек (по умолчанию Администратор);
- ВыводитьРОССИЯ - определяет вывод страны РОССИЯ в адресе (по умолчанию 0);
- ПредставлениеКОРПУС - определяет строковое представление Корпуса в адресе (по умолчанию кор.)
Описание методов и свойств класса 1С++ "ФИАС":
Класс 1С++ "ФИАС" предоставляет удобные и простые в использовании программные функции для поиска/ввода адреса:
- ВвестиАдрес(Адрес = "",ИДФИАС = "") - открытие модального окна формы ввода адреса (возвращает статус результата выполнения функции);
- Адрес - строка адреса для ввода/редактирования, если параметр ИДФИАС пустой (и в адресе нет ИДФИАС) - произойдет парсинг строки адреса и последовательный поиск по каждому АО в БД ФИАС;
- ИДФИАС - строка, содержащая в себе данные для быстрого поиска адреса в БД ФИАС.
- НайтиАдрес(Адрес = "",ИДФИАС = "", ФормироватьРезультат = 1) - поиск адреса в БД ФИАС без открытия формы ввода адреса (возвращает статус результата выполнения функции).
Результат применения функций отражается на свойстве класса Результат:
- Результат - структура данных результата выполнения функций ВвестиАдрес и НайтиАдрес:
- Статус - признак результата поиска/ввода адреса:
0 - в форме ввода адреса нажата кнопка "Отмена";
1 - адрес найден/введен в соответствии с ФИАС;
2 - адрес найден/введен, но есть АО, не найденные в БД ФИАС;
3 - адрес был очищен
-
Адрес - структура данных, описывающая совокупность АО из которых состоит адрес
- Индекс
- POSTALCODE - почтовый индекс, итоговый для адреса
- LEVEL - уровень АО, из которого взят индекс (ручное изменение индекса = "РУЧ")
- ПРЕДСТАВЛЕНИЕ - пользовательское представление АО
- Регион - структура данных, описывающая АО "Регион"
- AOGUID - ИД АО
- PARENTGUID - ИД родительского АО
- OFFNAME - официальное наименование АО
- SHORTNAME - краткое наименование типа АО
- POSTALCODE - почтовый индекс
- REGIONCODE - код региона
- COORD - структура данных, описывающая географическую координату
- Представление - представление, полученное при геокодировании от поставщика информации
- Долгота
- Широта
- Поставщик - поставщик информации геокодирования (0-вручную с карты; 1-яндекс;)
- ПРЕДСТАВЛЕНИЕ - пользовательское представление АО
- АО - структура данных, описывающая АО "Автономный округ" (идентична структуре данных, описывающей АО "Регион")
- Район - структура данных, описывающая АО "Район" (идентична структуре данных, описывающей АО "Регион")
- Город - структура данных, описывающая АО "Город" (идентична структуре данных, описывающей АО "Регион")
- ВнутригородскаяТерритория - структура данных, описывающая АО "Внутригородская территория" (идентична структуре данных, описывающей АО "Регион")
- НаселенныйПункт - структура данных, описывающая АО "Населенный пункт" (идентична структуре данных, описывающей АО "Регион")
- Улица - структура данных, описывающая АО "Улица" (идентична структуре данных, описывающей АО "Регион")
- ДопТерритория - структура данных, описывающая АО "ДопТерритория" (идентична структуре данных, описывающей АО "Регион")
- ПодчДопТерритория - структура данных, описывающая АО "ПодчДопТерритория" (идентична структуре данных, описывающей АО "Регион")
- Дом - структура данных, описывающая АО "Дом"
- HOUSEGUID - ИД дома
- AOGUID - ИД родительского АО дома
- HOUSENUM - номер дома
- ESTSTATUS - тип дома
- BUILDNUM - номер корпуса
- STRUCNUM - номер сооружения
- STRSTATUS - тип сооружения
- POSTALCODE - почтовый индекс
- OWN - признак вручную введенного дома (0 - дом из БД ФИАС, 1 - из СБД)
- COORD - структура данных, описывающая географическую координату
- Представление
- Долгота
- Широта
- Поставщик
- ПРЕДСТАВЛЕНИЕ - пользовательское представление АО
- Квартира - структура данных, описывающая АО "Квартира"
- NUM - номер квартиры
- STATUS - тип квартиры
- ПРЕДСТАВЛЕНИЕ - пользовательское представление АО
- Представление - пользовательское представление адреса
- ПредставлениеМНС - представление адреса в формате КЛАДР (9 запятых)
- ИДФИАС - строка, содержащая в себе данные для быстрого поиска адреса в БД ФИАС
- Геокодирован - признак наличия в текущем адресе географической координаты у АО "Дом"
Пример программного кода на 1С 7.7 с использованием класса 1С++ "ФИАС"
Простейший пример по выводу контрагентов, у которых почтовые адреса еще не геокодированы:
ФИАС = СоздатьОбъект("ФИАС");
СпрКл = СоздатьОбъект("Справочник.Контрагенты");
СпрКл.ВыбратьЭлементы();
Пока СпрКл.ПолучитьЭлемент() = 1 Цикл
Статус = ФИАС.НайтиАдрес(СпрКл.ПочтовыйАдресКл,СпрКл.ПочтовыйАдресКл_ИДФИАС);
Если Статус = 1 Тогда
Если ФИАС.Результат.Геокодирован = 0 Тогда
Сообщить("По клиенту " + СокрЛП(СпрКл.Наименование) + " почтовый адрес " +
СокрЛП(ФИАС.Результат.Представление) + " НЕ ГЕОКОДИРОВАН!");
КонецЕсли;
КонецЕсли;
КонецЦикла;
Техническая информация:
- Работа в БД ФИАС осуществляется в формате DBF. К сожалению, ФНС прекратила выкладывать на своем сайте БД ФИАС в формате DBF, поэтому скачивать базы теперь необходимо с сайта компании HFLabs. Доступ к базам можно запросить по ссылке.
После скачивания есть нюанс, если необходимо работать с домами 50 региона:
1. Надо почистить файлы HOUSE50.DBFи HOUSE5001.DBF от старых записей. Лучше всего это делать с помощью бесплатной программы DBFshow http://jobtools.ru/dbfshow/. Удалять надо неактуальные записи, по условию ENDDATE <> '06.06.2079'. "ФИАС для 7.7" все равно работает только с актуальными записями домов.
2. Далее сжимаем файл либо интерактивно (есть особенность - на ssd у меня нормально сжимает, на hdd - DBFshow на больших файлах падает), либо через командную строку "DBFShow.exe ИмяФайла.dbf /PACK" (работает нормально в том числе на hdd).
3. Далее склеиваем файлы: DBFShow.exe ПУТЬ\HOUSE5001.dbf /INSERT ПУТЬ\HOUSE50.dbf
В результате будет готов файл HOUSE50.dbf с актуальными данными, который уже можно использовать в проекте "ФИАС для 7.7".
- Доступ к БД ФИАС из 1С 7.7 осуществляется через Microsoft Visual FoxPro OLEDB Provider (VFP). Положив установщик в каталог БД ФИАС, можно добиться автоматизированной установки провайдера на компьютер пользователя (установка выполняется в "тихом" режиме, лог установки сохраниться в отдельной папке \LOG каталога БД ФИАС). Таким образом, нет необходимости бегать и устанавливать данный провайдер на компьютерах пользователей (все установиться само при наличии соответствующих прав доступа у пользователя в Windows).
- Построение индексов в БД ФИАС осуществляется через VFP. Это важно, так как построенные через стандартный в 1С 7.7 объект xBase индексы не используются в запросах VFP, а танцы с бубном описанные в Корректировка заголовка DBF-файла, сформированного в 1С, для его связи с индексным файлом ни к чему хорошему не приводят (что видно из комментариев). Построенные VFP индексы работают быстро и без нареканий (т.к. они для него "родные").
1.0.0.7 от 2020.10.16
-
внесены изменения для корректной работы с новыми версиями БД ФИАС;
-
изменена длина адресного объекта "Квартира"" на форме ввода адреса, при необходимости следует увеличить длину реквизитов для хранения адреса;
1.0.0.6 от 2019.03.11
-
адресный объект ""Планировочная структура"" (ЭПС) вынесен в отдельное поле ввода, т.к. начали появлятся адреса, где ЭПС подчинен непосредственно адресному объекту ""Населенный пункт"", соотв. ранее невозможно было ввести такие адреса;
-
при выборе адресного объекта в отдельном окне выводится список ВСЕХ подчиненных ему адресных объектов - это позволит быстрее вводить адрес (например, при выборе района выведется список всех районов, городов, нас.пунктов и т.д. подчиненных непосредственно выбранному ранее региону);
1.0.0.5 от 2018.06.03
-
возможность выбирать при вводе адреса вид адресного объекта "Планировочная структура" (объединяется на уровне адресного объекта "Населенный пункт");
-
возможность ввода адреса вручную (в этом случае адрес никак с ФИАС не связан) - доступно через меню "Ввести адрес вручную";
1.0.0.4 от 2018.01.25
- заполнение видов домов/строений/квартир из соответствующих файлов БД ФИАС;
- возможность задавать в настройках свои представления видов объектов (дом, строение, кабинет и т.д.);
- возможность задавать в настройках свое представление Корпуса;
- новый параметр "Всегда выводить РОССИЯ в адресе";
- иногда при добавлении новой координаты выдается сообщение о необходимости реиндексации GeoCoord.DBF - в этом случае добавлен автоматический запрос на реиндексацию (происходит при следующем создании объекта класса "ФИАС");
- настройки вынесены в отдельную форму, в параметрах можно ограничить видимость этого пункта на уровне набора прав;
- в меню добавлен пункт ""О программе"", из которого можно перейти на страницу Инфостарта для проверки новой версии
1.0.0.3 от 2017.11.14
- первый релиз, опубликованный на Инфостарте
Техническая поддержка
В случае возникновения ошибок рекомендуем ознакомиться с описанием и документацией программы. Если не нашли решения своей проблемы в документации или решение не помогает - тогда создайте обращение по инструкции ниже:
2
Заполнить данные
Контакты, номер заказа, подробное описание вопроса
Напишите порядок ваших действий с программой, приложите видео/скриншоты/отчеты об ошибке
Точную конфигурацию 1С, версии платформы, инструмента, СУБД
3
Дождаться ответа
Время ответа до 24 часов в рабочее время
Внимание! Техническая поддержка предоставляется исключительно в рамках переписки по обращению. В некоторых случаях для диагностики ошибок и/или вопросов, связанных с особенностями использования продукта в информационных базах покупателя, может потребоваться дополнительная платная диагностика с организацией удаленного доступа к информационной базе. Стоимость уточняется индивидуально.