К статье
Практический материал

Справочники и Данные · 10 мин

Как в 1С получить код региона

Как в 1С получить код региона: из адресного классификатора, справочника контрагентов, программно на встроенном языке. Примеры кода, ошибки и проверка результата.

Код региона в 1С требуется в самых разных задачах: при заполнении адресов контрагентов, формировании печатных форм, выгрузке данных в ЕГАИС и другие госсистемы, настройке обменов между базами. В зависимости от конфигурации и режима работы код можно получить визуально через интерфейс, из адресного классификатора (ФИАС/ГАР) или программно на встроенном языке.

Универсального «одного места», где лежит код региона, не существует: в типовых конфигурациях на БСП (УТ, ERP, Бухгалтерия, ЗУП) адреса хранятся через подсистему контактной информации, а код региона извлекается из адресного классификатора. В самописных и старых конфигурациях вместо этого может использоваться справочник «Регионы» или «Адресный классификатор» собственного формата.

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

Что такое код региона и где он используется в 1С

Код региона — это числовой идентификатор субъекта РФ (например, 77 — Москва, 50 — Московская область, 78 — Санкт-Петербург). В 1С он нужен при заполнении регламентированной отчётности, электронных документов (ЭДО, УПД), выгрузках в ФНС, ЕГАИС, «Меркурий», при печати конвертов и почтовых бланков, а также при синхронизации адресов между базами.

Важно понимать: в современных типовых конфигурациях адрес хранится не набором отдельных полей «регион», «город», «улица», а единой структурой в формате XML или JSON внутри табличной части «КонтактнаяИнформация» объекта. Код региона в этой структуре — отдельный атрибут, который система заполняет автоматически при выборе адреса из классификатора.

Как посмотреть код региона в интерфейсе без программирования

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

Второй путь — открыть сам адресный классификатор. В типовых конфигурациях на БСП он находится в разделе «Администрирование» → «Обслуживание» → «Адресный классификатор» (в некоторых конфигурациях — через «НСИ и администрирование»). В форме можно выбрать регион и увидеть его код, а также проверить, загружены ли данные по конкретному субъекту.

В конфигурациях со справочником «Регионы» (например, в некоторых отраслевых решениях) достаточно открыть справочник через «Все функции» → «Справочники» и найти нужный регион — код будет в одноимённом реквизите.

Как посмотреть код региона в карточке контрагента
  1. 1
    Откройте справочник «Контрагенты» и нужную карточку
  2. 2
    Щёлкните по полю юридического или фактического адреса
  3. 3
    В форме адреса найдите поле региона — код отображается рядом с наименованием или в дополнительных сведениях
  4. 4
    Если поле адреса серое и содержит произвольный текст — адрес введён вручную, код не определён

Как получить код региона программно в типовых конфигурациях (БСП)

В конфигурациях на библиотеке стандартных подсистем за работу с адресами отвечает общий модуль «РаботаСАдресами». Типовая задача — получить код региона из контактной информации объекта (контрагента, организации, физлица). Контактная информация хранится в табличной части, значение адреса — в поле «Значение» в формате JSON (в новых версиях) или XML.

Пример получения кода региона из адреса контрагента:

// Получаем строки контактной информации с адресом

Для Каждого СтрокаКИ Из Контрагент.КонтактнаяИнформация Цикл

Если СтрокаКИ.Тип = Перечисления.ТипыКонтактнойИнформации.Адрес Тогда

// Значение адреса в формате JSON

СведенияОбАдресе = РаботаСАдресами.СведенияОбАдресе(СтрокаКИ.Значение);

КодРегиона = СведенияОбАдресе.КодРегиона; // например, "77"

НаименованиеРегиона = СведенияОбАдресе.Регион;

КонецЕсли;

КонецЦикла;

Обратный вариант — получить код по наименованию региона через классификатор:

Сведения = РаботаСАдресами.СведенияОРегионе("Московская область");

Если Сведения <> Неопределено Тогда

КодРегиона = Сведения.КодСубъектаРФ; // 50

КонецЕсли;

Имена функций могут отличаться в зависимости от версии БСП: в одних релизах используется «СведенияОбАдресе», в других — «СведенияОбАдресеРФ» или работа через «АдресныйКлассификатор». Точный состав функций смотрите в общем модуле «РаботаСАдресами» вашей конфигурации через конфигуратор.

Как извлечь код региона из XML/JSON адреса вручную

Если по каким-то причинам штатные функции недоступны (например, внешняя обработка без доступа к модулю), код региона можно разобрать напрямую из строки значения адреса. В формате JSON код региона лежит в поле «regionCode» (или «code» внутри структуры региона), в XML — в атрибуте «Регион» элемента адреса либо в дополнительных элементах.

ЧтениеJSON = Новый ЧтениеJSON;

ЧтениеJSON.УстановитьСтроку(СтрокаКИ.Значение);

ДанныеАдреса = ПрочитатьJSON(ЧтениеJSON, Истина);

ЧтениеJSON.Закрыть();

КодРегиона = ДанныеАдреса["regionCode"]; // если поле присутствует

Такой разбор хрупкий: структура JSON зависит от версии формата контактной информации, и при обновлении платформы или БСП поля могут переименоваться. Поэтому ручной разбор стоит использовать только как временное решение, а в продуктивном коде — штатные функции БСП.

Код региона в старых и нетиповых конфигурациях

В конфигурациях без БСП (например, «1С:Торговля и склад 7.7», старые самописные решения) код региона обычно хранится в собственном справочнике — «Регионы», «Адресный классификатор» или «Субъекты РФ». Программно значение получают обычным поиском по наименованию или коду:

Регион = Справочники.Регионы.НайтиПоНаименованию("Московская обл");

Если Не Регион.Пустая() Тогда

КодРегиона = Регион.КодРегиона; // имя реквизита зависит от конфигурации

КонецЕсли;

Здесь главный риск — рассинхронизация: собственный справочник регионов не обновляется автоматически, и после переименований субъектов или объединения регионов коды могут устареть. Перед использованием в отчётности сверьте значения с актуальным классификатором ФНС.

Проверка результата и типичные ошибки

После получения кода убедитесь, что он соответствует ожиданиям. Код региона РФ — число от 1 до 99 (для новых субъектов выделены отдельные диапазоны). Если функция вернула пустую строку, «0» или Неопределено — почти всегда причина в одном из трёх: классификатор не загружен, адрес введён вручную без классификатора, либо используется функция не той версии БСП.

Контрольные точки

Как проверить результат

Значение кода
Норма

Число от 1 до 99, соответствует региону адреса

Тревожный признак

Пустая строка, 0 или Неопределено

Источник адреса
Норма

Адрес выбран из классификатора (поле не серое)

Тревожный признак

Адрес введён произвольным текстом

Работа функции БСП
Норма

СведенияОбАдресе возвращает заполненную структуру

Тревожный признак

Ошибка «Метод не обнаружен» — неверное имя функции для версии БСП

Типичные ошибки
01
Поиск кода по наименованию с точным совпадением строки — «Московская обл» и «Московская область» дают разный результат; используйте классификатор, а не сравнение строк
02
Использование кода из устаревшего собственного справочника в отчётности — ФНС отклоняет файл из-за несуществующего кода
03
Разбор XML адреса вручную без учёта версии формата — после обновления БСП обработка перестаёт работать
04
Ожидание кода у адреса, введённого свободным текстом — такие адреса код региона не содержат

Когда загружать или обновлять адресный классификатор

Если код региона не определяется, первое действие — проверить состояние классификатора. Откройте «Администрирование» → «Адресный классификатор» и посмотрите список загруженных регионов. Для регионов, по которым данные отсутствуют, выполните загрузку с сайта обновлений 1С или из файлов ФИАС/ГАР.

Обновлять классификатор имеет смысл регулярно, особенно перед сдачей отчётности и при массовом вводе новых адресов: состав улиц, ОКТМО и коды налоговых инспекций меняются, а устаревшие данные приводят к расхождениям при выгрузке.

Маршрут решения

Как выбрать способ получения кода

Конфигурация типовая на БСП (УТ 11, ERP, БП 3.0, ЗУП 3)Используйте модуль РаботаСАдресами и функцию СведенияОбАдресе
Нужно просто посмотреть код один разОткройте адрес в карточке контрагента или форму адресного классификатора
Конфигурация старая или самописнаяИщите собственный справочник регионов и сверяйте коды с актуальным классификатором
Код возвращается пустымПроверьте загрузку классификатора для этого региона и способ ввода адреса
Итог

Что важно запомнить

В типовых 1С код региона берётся из адресного классификатора: визуально — через форму адреса, программно — через модуль РаботаСАдресами. Пустой код почти всегда означает незагруженный классификатор или адрес, введённый вручную.

Часто задаваемые вопросы

Почему функция СведенияОбАдресе возвращает пустой код региона?

Чаще всего адресный классификатор не загружен для этого региона либо адрес введён свободным текстом без привязки к классификатору. Проверьте раздел «Адресный классификатор» в администрировании и способ ввода адреса в карточке объекта.

Можно ли получить код региона запросом напрямую из таблицы контактной информации?

Запрос вернёт только сериализованное значение адреса (JSON/XML), код придётся извлекать средствами платформы после выборки. Декларативно вытащить код региона одним запросом нельзя — используйте функции БСП над полученным значением.

Чем код региона отличается от ОКТМО и кода ИФНС?

Код региона идентифицирует субъект РФ (два знака), ОКТМО — муниципальное образование (8 или 11 знаков), код ИФНС — конкретную налоговую инспекцию (4 знака). Все три значения определяются по адресу через адресный классификатор, но используются в разных формах отчётности.

Код региона в адресе отличается от кода в КЛАДР — где ошибка?

Если база долго не обновлялась, возможны расхождения между старым КЛАДР и актуальным ГАР/ФИАС, особенно после объединения или переименования регионов. Ориентируйтесь на данные актуального классификатора ФНС и обновите его в базе.

Как получить код региона по адресу, введённому вручную произвольной строкой?

Надёжного способа нет: произвольный текст не связан с классификатором. Практичное решение — перевести адрес в классификаторный формат (переуказать его через форму адреса с подбором из ФИАС), после чего код определится автоматически.

Работает ли РаботаСАдресами на клиенте в тонком клиенте?

Часть функций модуля доступна только на сервере, поскольку обращается к данным классификатора в базе. Вызывайте получение сведений об адресе в серверной процедуре, а на клиент возвращайте готовый результат.