После обновления конфигурации 1С:Зарплата и управление персоналом 3.1 (релизы ветки 3.1.27.х) многие пользователи столкнулись с критической ошибкой, которая блокирует работу с ключевыми справочниками. Ошибка проявляется при попытке открыть карточку Организации, Сотрудника или Физического лица. Программа выдает сообщение: {ОбщийМодуль.УправлениеКонтактнойИнформациейКлиентСервер.Модуль(417)}: Итератор для значения не определен.
В этой статье мы подробно разберем причины возникновения этой ситуации и рассмотрим пошаговые алгоритмы её исправления.
Проанализируем техническую сторону проблемы. Ошибка возникает в общем модуле УправлениеКонтактнойИнформациейКлиентСервер. При открытии формы справочника система обращается к механизму работы с контактной информацией (адреса, телефоны, email). Программа пытается сформировать список команд (кнопок) для каждого вида контактной информации (ВКИ).
Рассмотрим проблемный участок кода:
Для Каждого КомандаТипа Из КомандыТипа Цикл
// Логика формирования кнопок на форме
КонецЦикла;
Если у конкретного элемента в справочнике ВидыКонтактнойИнформации не указан Тип (например, «Адрес», «Телефон» или «Электронная почта»), переменная КомандыТипа инициализируется как Неопределено. В языке 1С цикл Для каждого не может работать с коллекцией, которая имеет значение Неопределено, что и приводит к аварийному завершению работы формы.
Как правило, «битые» элементы появляются в результате некорректного обновления метаданных. Наиболее часто виновниками становятся элементы:
Рассмотрим самый простой и быстрый способ, который подходит, если проблемных элементов немного. Нам необходимо принудительно проставить правильный тип для пустых реквизитов.
Адрес).После выполнения этих действий попробуем снова открыть карточку организации или сотрудника. Если ошибка сохраняется, значит, в справочнике остался еще один элемент с незаполненным типом.
В ситуациях, когда элементов много или стандартная форма вида контактной информации не позволяет внести изменения, воспользуемся универсальным инструментом ГрупповоеИзменениеРеквизитов. Рассмотрим этот процесс по шагам:
Виды контактной информации.Тип Равно [Пустая ссылка].Адрес).Проанализируем ситуацию, если ошибка возникает именно при работе с 1С-Отчетностью. Иногда «фантомные» виды контактной информации создаются подсистемой обмена. В этом случае полезно проверить группу Контактная информация справочника "Организации". Если вы обнаружили там дубли или элементы без типа, которые невозможно отредактировать, их можно попробовать пометить на удаление и удалить через «Удаление помеченных объектов», предварительно убедившись, что они не используются в реальных данных (адресах).
Выясним, как избежать подобных проблем в будущем. Данная ошибка признана разработчиками 1С и для многих релизов уже выпущены соответствующие патчи (исправления).
Рекомендуем выполнить следующие действия:
Резюме: Основная причина сбоя — незаполненный реквизит Тип в справочнике ВидыКонтактнойИнформации. Исправление этого реквизита любым доступным способом (вручную или групповой обработкой) полностью устраняет ошибку и восстанавливает работоспособность форм 1С:ЗУП.