8.х Помогите разобраться с задачей по бизнес процессам

Тема в разделе "Конфигурирование на платформе "1С:Предприятие 8"", создана пользователем skv_79, 4 сен 2016.

  1. TopicStarter Overlay
    skv_79
    Offline

    skv_79 Опытный в 1С

    Регистрация:
    10 июл 2013
    Сообщения:
    204
    Симпатии:
    3
    Баллы:
    29
    Добрый день!
    Решаю задачу по бизнес процессу. Вот ошибка:
    {БизнесПроцесс.БизнесПроцесс1.Форма.ФормаБизнесПроцесса.Форма(3)}: Ошибка при вызове метода контекста (РеквизитФормыВЗначение)
    БП = РеквизитФормыВЗначение("Объект");
    по причине:
    Операция не может быть выполнена из-за несоответствия версии или отсутствия записи базы данных (возможно, запись была изменена или удалена)!

    Модуль формы:
    Код:
    &НаСервере
    Процедура ОбновитьДанныеНаФорме()
        БП = РеквизитФормыВЗначение("Объект");
        Карта = БП.ПолучитьКартуМаршрута();
        Элементы.ЗадачиСписок.Обновить();
    КонецПроцедуры
    
    &НаСервере
    Процедура ПриСозданииНаСервере(Отказ, СтандартнаяОбработка)
        ОбновитьДанныеНаФорме();
        ЗадачиСписок.Параметры.УстановитьЗначениеПараметра("БизнесПроцесс", Объект.Ссылка);
    КонецПроцедуры
    
    
    &НаСервере
    Процедура ПослеЗаписиНаСервере(ТекущийОбъект, ПараметрыЗаписи)
        ОбновитьДанныеНаФорме();
        ЗадачиСписок.Параметры.УстановитьЗначениеПараметра("БизнесПроцесс", Объект.Ссылка);
    КонецПроцедуры
    
    &НаКлиенте
    Процедура ОбработкаОповещения(ИмяСобытия, Параметр, Источник)
        Если ИмяСобытия = "ВыполненаЗадача" И Параметр = Объект.Ссылка Тогда
            ОбновитьДанныеНаФорме();
        КонецЕсли;
    КонецПроцедуры
    Модуль задачи:
    Код:
    &НаКлиенте
    Процедура ПослеЗаписи(ПараметрыЗаписи)
        Оповестить("ВыполненаЗадача", Объект.БизнесПроцесс);
    КонецПроцедуры
    Соответственно на форме БП при выполнении первой и второй из трех задач все отлично отрабатывает, а при выполнении третей, последней задачи возникает эта ошибка. Сижу понять не могу с чем она связана.

    Вот картинка: [​IMG]
    --- Объединение сообщений, 4 сен 2016 ---
    Понял, почему-то в последнем шаге при выполнении задачи в модуле формы БП отсутствует в реквизите формы "Объект" свойство "ЭтотОбъект". Наверно, поэтому не получается его получить... Кто знает почему система ведет себя так?
    Последнее редактирование: 4 сен 2016
  2. TopicStarter Overlay
    skv_79
    Offline

    skv_79 Опытный в 1С

    Регистрация:
    10 июл 2013
    Сообщения:
    204
    Симпатии:
    3
    Баллы:
    29
    Решил, переписав процедуру:
    Процедура ОбновитьДанныеНаФорме()
    Если НЕ Параметры.Ключ.Пустая() Тогда
    БП = Объект.Ссылка.ПолучитьОбъект();
    Иначе
    БП = РеквизитФормыВЗначение("Объект");
    КонецЕсли;
    Карта = БП.ПолучитьКартуМаршрута();
    Элементы.ЗадачиСписок.Обновить();
    КонецПроцедуры

    Хотелось бы знать почему так ведет себя система?
    Последнее редактирование: 4 сен 2016
  3. 1с-ник
    Offline

    1с-ник Профессионал в 1С

    Регистрация:
    5 окт 2014
    Сообщения:
    303
    Симпатии:
    49
    Баллы:
    54
    Ну, судя по всему, в первом случае Вы пытаетесь преобразовать реквизит формы в объект прикладного типа тогда, когда он ещё не записан.
  4. TopicStarter Overlay
    skv_79
    Offline

    skv_79 Опытный в 1С

    Регистрация:
    10 июл 2013
    Сообщения:
    204
    Симпатии:
    3
    Баллы:
    29
    А в последнем, когда я не могу этот Обьект получить из реквизита формы?

Поделиться этой страницей