Как исправить ошибку «Город может быть не указан только в регионе - городе федерального значения» в 1С:ЗУП?

Программист 1С v8.3 (Управляемые формы) 1С:Зарплата и Управление Персоналом
← На главную

При работе в конфигурации 1С:Зарплата и управление персоналом 3.1 (ЗУП) пользователи часто сталкиваются с неприятной ситуацией: при вводе или редактировании адреса сотрудника в таких городах, как Севастополь, Санкт-Петербург или Москва, программа выдает ошибку: «Город может быть не указан только в регионе - городе федерального значения». Несмотря на то что регион выбран верно, система блокирует запись данных, помечая поля красным цветом.

Эта проблема стала массовой после недавних обновлений релизов и перехода на новый формат адресного классификатора ГАР (Государственный адресный реестр). В этой статье мы подробно разберем причины возникновения этой коллизии и рассмотрим несколько способов ее решения — от простых пользовательских настроек до внесения правок в программный код.

Разберем причину возникновения ошибки

Для начала проанализируем ситуацию: почему программа «забывает», что Москва или Севастополь являются городами федерального значения? В типовых конфигурациях 1С логика проверки адреса опирается на сопоставление выбранного региона со списком предопределенных значений. Основная проблема кроется в строгом соответствии написания типа объекта.

В коде Библиотеки стандартных подсистем (БСП), которая отвечает за работу с контактной информацией, зашит алгоритм поиска типа города. Если в классификаторе город записан как г. Севастополь (с точкой), а программный алгоритм ожидает г Севастополь (без точки), функция проверки ЭтоГородФедеральногоЗначения возвращает Ложь. В результате система решает, что перед ней обычный субъект РФ, где поле «Город» или «Населенный пункт» является обязательным к заполнению, и выдает ошибку.

Способ 1: Редактирование записей в регистре «Адресные объекты»

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

  1. Перейдем в функции для технического специалиста (или воспользуемся поиском по ссылке) и найдем регистр сведений Адресные объекты.
  2. Выполним поиск по наименованию проблемного региона (например, «Севастополь» или «Санкт-Петербург»).
  3. Обратим внимание на поле Тип объекта. Если в нем указано г. (с точкой), программа может работать некорректно.
  4. Нам нужно изменить это значение на г (без точки).
  5. После внесения изменений необходимо вернуться в карточку сотрудника и заново выбрать адрес из классификатора.

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

Способ 2: Внесение изменений в программный код (для разработчиков)

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

Рассмотрим подробнее, где именно происходят проверки. Основная логика сосредоточена в общем модуле РаботаСАдресами. Нам необходимо найти процедуру НазванияГородовФедеральногоЗначения. Посмотрим на пример кода, который исправляет ситуацию:


// В общем модуле РаботаСАдресами находим наполнение списка городов
// Добавляем поддержку написания типа города с точкой

Для Каждого Город Из СписокГородов Цикл
    // Стандартные варианты
    Результат.Вставить(УправлениеКонтактнойИнформациейКлиентСервер.СоединитьНаименованиеИТипАдресногоОбъекта(Город, "Г", ИСТИНА), Истина);
    Результат.Вставить(УправлениеКонтактнойИнформациейКлиентСервер.СоединитьНаименованиеИТипАдресногоОбъекта("ГОРОД", Город, ИСТИНА), Истина);

    // Добавляем наш вариант с точкой для обхода ошибки ГАР
    Результат.Вставить(УправлениеКонтактнойИнформациейКлиентСервер.СоединитьНаименованиеИТипАдресногоОбъекта(Город, "Г.", ИСТИНА), Истина);
КонецЦикла;

После внесения этих правок функция ЭтоГородФедеральногоЗначения(Регион) начнет корректно идентифицировать субъекты федерации, даже если в классификаторе они записаны в формате г. Москва.

Способ 3: Перезагрузка классификатора и использование муниципального деления

Иногда ошибка возникает из-за некорректно загруженных данных через веб-сервис 1С. Разберем альтернативный вариант обновления адресных сведений:

  1. Полностью очистите адресный классификатор по проблемному региону (раздел Администрирование — Интернет-поддержка и сервисы — Адресный классификатор — Очистить адресные сведения).
  2. Скачайте файлы классификатора в формате ГАР с сайта ИТС или портала 1С.
  3. Загрузите сведения из файлов, выбрав нужный регион (например, 92 для Севастополя или 78 для Санкт-Петербурга).
  4. При вводе адреса в карточке сотрудника попробуйте переключить вид отображения с «Административно-территориального» на «Муниципальное деление». В муниципальном делении цепочки проверок БСП работают иначе, и это часто помогает избежать блокирующей ошибки.

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

После применения одного из решений выполните следующие действия, чтобы убедиться в исправлении проблемы:

Откройте карточку сотрудника и перейдите в раздел Личные данные. Попробуйте нажать на ссылку с адресом. Если адрес подсвечен красным, нажмите кнопку «Еще» — «Перевыбрать из классификатора». Если после выбора региона Севастополь Г или Санкт-Петербург Г поле «Город» остается пустым, но кнопка «ОК» активна и адрес сохраняется без ошибок — поздравляем, задача решена!

Почему это важно исправить оперативно?

Проанализируем последствия игнорирования данной ошибки. Некорректно заполненный адрес в 1С:ЗУП ведет к следующим проблемам:

В большинстве случаев проблема решается либо установкой официального патча от 1С (ищите патчи с кодом EF_... по ключевому слову «адрес»), либо ручной корректировкой регистра, как мы описали выше. Выясним причину один раз и настроим систему так, чтобы она работала стабильно вне зависимости от изменений в сокращениях ФНС.

← На главную