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

База знаний Одина — Одинэсника Форумы ODIN — Форум по 1С Предприятию Как выполнить корректное открытие формы документа в 1С?

Просмотр 1 ветки ответов
  • Автор
    Сообщения
    • #32003
      Телеграм группа https://t.me/odineskiOdineski
      Участник

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

        Процедура ОткрытьФормуДокумента(Документ, Данные)
        ФормаДокумента = ОткрытьФорму(«Документ.» + Документ + «.Форма.Объект»); ФормаДокумента.ЗаполнитьДанные(Данные);
        ФормаДокумента.Открыть();КонецПроцедуры
        Вот тут тоже подправь чтоб срабатывал

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

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

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

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

      Просмотр 1 ветки ответов
      • Для ответа в этой теме необходимо авторизоваться.
      База знаний 1С