Часто при работе в программе 1С:Управление нашей фирмой (УНФ) начинающие пользователи сталкиваются с неприятной ситуацией: при попытке изменить данные своей компании или переключить тип организации с индивидуального предпринимателя (ИП) на юридическое лицо система выдает критическую ошибку. Программа блокирует открытие карточки организации, и работа останавливается.
В этой статье мы подробно разберем, почему возникает ошибка Недопустимое значение параметра (параметр номер '2') при вызове метода ЗначениеВРеквизитФормы, и изучим пошаговый алгоритм её исправления без привлечения программистов.
Давайте проанализируем текст ошибки, который выдает система:
{Справочник.Организации.Форма.ФормаЭлемента.Форма(2576)}: Ошибка при вызове метода контекста (ЗначениеВРеквизитФормы) ЗначениеВРеквизитФормы(ФизЛицо.ПолучитьОбъект, "ФизическоеЛицо"); по причине: Недопустимое значение параметра (параметр номер '2')
Для понимания ситуации нам нужно заглянуть «под капот» управляемых форм 1С. Метод ЗначениеВРеквизитФормы предназначен для того, чтобы взять данные из объекта базы данных (который хранится на сервере) и отобразить их в поле на экране (в реквизите формы).
Параметр № 2 в данном методе — это строковое имя реквизита формы, в который должны быть помещены данные. В нашем случае это "ФизическоеЛицо". Ошибка «Недопустимое значение» означает, что в текущий момент система «не видит» на форме реквизита с таким именем.
Почему реквизит исчезает? В 1С:УНФ форма организации является динамической. Состав полей на экране напрямую зависит от того, какой ТипОрганизации выбран:
ФизическоеЛицо является обязательным, так как ИП — это человек.Конфликт возникает, когда в базе данных значение в поле ФизЛицо уже записано (например, от предыдущей настройки ИП), а тип организации программно сменился на Юрлицо (например, при автозаполнении по ИНН через сервис «1С:Контрагент»). При открытии карточки программный код видит данные в базе, пытается «затолкнуть» их в поле на форме, но поля для Юрлица уже не существует. Происходит программный сбой.
Так как мы не можем открыть саму карточку организации из-за ошибки, нам необходимо изменить данные «извне», не заходя в саму форму элемента. Для этого мы воспользуемся стандартным мощным инструментом — обработкой «Групповое изменение реквизитов». Рассмотрим пошагово, как это сделать.
Шаг 1. Поиск обработки
В зависимости от версии интерфейса и настроек прав доступа, путь может различаться. Рассмотрим универсальный способ:
Групповое изменение реквизитов.Шаг 2. Настройка отбора
Проанализируем ситуацию: нам нужно изменить не все организации в базе, а только одну конкретную, которая выдает ошибку. Если мы не настроим отбор, программа может стереть данные у всех компаний, что недопустимо.
Организации (Справочник «Организации»).Ссылка.Равно, а в значении выберем нашу проблемную организацию.Шаг 3. Очистка конфликтного поля
Физическое лицо. Будьте внимательны: в разных версиях конфигурации он может называться Физ. лицо или Индивидуальный предприниматель.После завершения операции попробуем снова открыть карточку организации. Ошибка должна исчезнуть, так как код ЗначениеВРеквизитФормы больше не будет пытаться передать пустое значение в несуществующий реквизит формы.
Как мы видели из обсуждения на форуме, аналогичная проблема может возникнуть и при попытке открыть карточку сотрудника. Выясним причину: в 1С объект Сотрудник всегда жестко связан с объектом Физическое лицо.
Если связь нарушена (например, физическое лицо было помечено на удаление или возникли ошибки при обмене данными), форма сотрудника при открытии не может найти данные для заполнения соответствующих полей на экране. Логика исправления здесь точно такая же:
Сотрудники.Ссылка Равно «Иванов Иван Иванович»).Физическое лицо и попробуем либо очистить его, либо (что более правильно для сотрудника) заново выбрать правильное физическое лицо из списка.Рассмотрим ситуации, когда очистка реквизита не помогла или поле недоступно для изменения. В этом случае проанализируем состояние базы данных с помощью встроенных утилит.
В некоторых случаях мы можем отредактировать данные напрямую в списке, не заходя в «большую» форму элемента, которая ломается.
Физическое лицо, позволила зайти внутрь и корректно всё настроить вручную.Если ошибка сохраняется, возможно, в базе данных появились «битые ссылки» (объекты с пометкой <Объект не найден>). Проанализируем состояние базы через Конфигуратор:
Этот процесс может занять длительное время, но он часто решает проблемы, которые не поддаются обычному редактированию через интерфейс.
Иногда ошибка является «фантомной». Это случается, когда структура формы изменилась, но ваш компьютер «запомнил» старый вид формы и пытается к нему обратиться. Попробуем очистить кэш:
Помните: если вы принудительно очищаете поле Физическое лицо в карточке организации, которая фактически является ИП, вы временно теряете связь с паспортными данными и ФИО этого предпринимателя. После того как вы восстановите доступ к форме организации, обязательно:
Мы надеемся, что этот разбор помог вам разобраться в причинах программного сбоя и успешно вернуть систему в рабочее состояние. Главное правило при подобных ошибках — не пытаться «пробить стену», а использовать инструменты массового изменения данных, которые работают в обход интерфейсных ограничений.