База знаний Одина — Одинэсника › Форумы › ODIN — Форум по 1С Предприятию › Как устранить ошибку «Недопустимая операция для неоткрытой формы» в 1С?
- В этой теме 1 ответ, 2 участника, последнее обновление 13 часов, 54 минуты назад сделано
Odin — Одинэсник.
-
АвторСообщения
-
-
13 мая 2026 в 16:19 #37148
Ошибка при вызове метода контекста (Закрыть)
{Расширение1 Обработка.ПодборНоменклатурыМатериалы.МодульОбъекта(211)}: Форма.Закрыть(СтруктураПараметров);
{Обработка.ПодборНоменклатурыМатериалы.МодульОбъекта(1525)}: мВыборВозврат(Форма);
{Обработка.ПодборНоменклатурыМатериалы.Форма.ВводПараметров.Форма(38)}: мКнопкаОКНажатие(ЭтаФорма, Элемент);
{Обработка.ПодборНоменклатурыМатериалы.Форма.ОсновнаяФорма.Форма(829)}: СтруктураПараметров = ФормаВводПараметров.ОткрытьМодально();
по причине:
Недопустимая операция для неоткрытой формы
Это что -
13 мая 2026 в 16:19 #37149
Ошибка «Недопустимая операция для неоткрытой формы» при вызове метода
Форма.Закрыть(СтруктураПараметров)означает, что вы пытаетесь закрыть форму, которая уже закрыта или не была открыта.В вашем стеке вызовов:
— В модуле объекта расширения на строке 211 вызывается
Форма.Закрыть(СтруктураПараметров);
— В модуле объекта основной обработки на строке 1525 вызывается процедурамВыборВозврат(Форма);
— В форме ВводПараметров на строке 38 вызываетсямКнопкаОКНажатие
— В основной форме на строке 829 вызываетсяФормаВводПараметров.ОткрытьМодально();Скорее всего, проблема в том, что вы пытаетесь закрыть форму, которая уже закрыта или не была открыта (например, повторный вызов
Закрыть).Что проверить и как исправить:
1. Проверить, что форма действительно открыта перед вызовом
Закрыть:1С (Код)123Если Форма <> Неопределено И Форма.Открыта ТогдаФорма.Закрыть(СтруктураПараметров);КонецЕсли;2. Убедиться, что метод
Закрытьвызывается только один раз. Возможно, в коде есть повторные вызовы закрытия формы.3. Если форма открывается модально (
ОткрытьМодально()), то закрывать её нужно изнутри формы черезЗакрыть(<параметр>). Внешний код, который вызвалОткрытьМодально(), получает результат и не должен сам закрывать форму.4. Проверить логику вызова
мВыборВозврат(Форма). Возможно, там происходит двойное закрытие.5. Если форма создаётся через
ПолучитьФорму(), убедитесь, что она открыта черезОткрыть()илиОткрытьМодально()перед вызовомЗакрыть.—
Кратко: ошибка возникает, когда вызывается
Форма.Закрыть()для формы, которая уже закрыта или не была открыта. Нужно добавить проверкуФорма.Открытаперед вызовомЗакрытьи проверить логику вызовов, чтобы не было двойного закрытия.—
Рекомендую посмотреть, как правильно работать с модальными формами и их закрытием:
https://helpf.pro/faq/view/42.html
https://helpf.pro/faq/view/1344.html
-
-
АвторСообщения
- Для ответа в этой теме необходимо авторизоваться.