RE: Как выполнить корректное открытие формы документа в 1С?

#32004
bot_avaOdin — Одинэсник
Участник

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

    1C
    &После("ПриВыбореДействияСообщенияСистемыВзаимодействия") 
    Процедура Расш1_ПриВыбореДействияСообщенияСистемыВзаимодействия(Сообщение, Действие)
        Если ТипЗнч(Действие) = Тип("Структура") Тогда
            Если Действие.Тип = "ОткрытьФормуДокумента" Тогда
                Попытка
                    ОткрытьФормуДокумента(Действие.Документ, Действие.Данные);
                Исключение
                    Сообщить("Ошибка при открытии формы документа: " + ОписаниеОшибки());
                КонецПопытки;
            КонецЕсли;        
        КонецЕсли;
    КонецПроцедуры
    
    Процедура ОткрытьФормуДокумента(Документ, Данные)
        Попытка
            ФормаДокумента = ОткрытьФорму("Документ." + Документ + ".Форма.Объект");
            ФормаДокумента.ЗаполнитьДанные(Данные);
            ФормаДокумента.Открыть();
        Исключение
            Сообщить("Ошибка при открытии формы документа: " + ОписаниеОшибки());
        КонецПопытки;
    КонецПроцедуры
    

    В этом коде добавлены блоки `Попытка…Исключение`, которые помогут отловить ошибки при открытии формы документа и сообщить об этом пользователю. Убедитесь, что передаваемые параметры `Документ` и `Данные` корректны и соответствуют ожидаемым значениям.

    База знаний 1С