Имя: Пароль:
1C
1С v8
Ошибка при сохранении документа
0 bamond
 
20.08.13
12:13
День добрый. Подскажите пожалуйста почему возникает ошибка:

&НаКлиенте
Процедура ОтменитьСогласование(Команда)
    
    Если НЕ Объект.СсылкаНаБизнесПроцесс.Пустая() тогда
    
    
    СтопСогласование();
    Предупреждение("Согласование остановлено, откройте документ повторно.");
  
   Объект.ПроверкаСтартаБП=Ложь;
   ЭтаФорма.Записать();
   ЭтаФорма.Закрыть();
  
Иначе
   Сообщить("Бизнес-Процесс не запущен!");
   КонецЕсли;
КонецПроцедуры


&НаСервере
Процедура СтопСогласование();
    

    Запрос = Новый Запрос;
    Запрос.Текст =
        "ВЫБРАТЬ
        |    ЗадачаИсполнителя.Дата,
        |    ЗадачаИсполнителя.Ссылка,
        |    ЗадачаИсполнителя.БизнесПроцесс,
        |    ЗадачаИсполнителя.ТочкаМаршрута,
        |    ЗадачаИсполнителя.БизнесПроцесс.Ссылка
        |ИЗ
        |    Задача.ЗадачаИсполнителя КАК ЗадачаИсполнителя
        |ГДЕ
        |   ЗадачаИсполнителя.БизнесПроцесс.Ссылка = &Ссылка";
        
    Ссылка = Объект.СсылкаНаБизнесПроцесс;
    
    Запрос.УстановитьПараметр("Ссылка", Ссылка);

    Результат = Запрос.Выполнить();

Результат = Запрос.Выполнить();
Выборка = Результат.Выгрузить();

    Для каждого СтрокаЗапроса из Выборка Цикл
        ОбъектЗадача = СтрокаЗапроса.Ссылка.ПолучитьОбъект();
         ОбъектЗадача.ВыполнитьЗадачу();
    
    //Если необходимо то Завершим и Бизнес Процесс
    Если НЕ СтрокаЗапроса.Ссылка.БизнесПроцесс.Завершен Тогда
    БизнесПроцесс = СтрокаЗапроса.Ссылка.БизнесПроцесс.ПолучитьОбъект();
    БизнесПроцесс.Завершен = Истина;
    БизнесПроцесс.Записать();
    КонецЕсли;
    
КонецЦикла;


КонецПроцедуры



Ситуация такая:
Запускаем бизнес процесс... после этого жмем ОтменитьСогласование , и после первого нажатия возникает ошибка


{Документ.ЗаявкаНаПлатеж.Форма.ФормаДокумента.Форма(621)}: Ошибка при вызове метода контекста (Записать)
   ЭтаФорма.Записать();
по причине:
Данные были изменены или удалены другим пользователем



и БИЗНЕС ПРОЦЕСС - ЗАВЕРШАЕТСЯ , а задача ( точка маршрута ) не завершается... висит...
И после повторного открытия документа , завершается задача по бизнес процессу и всё отрабатывает без этой ошибки ( текст ошибки выше ).

Задача в том что бы по нажатию кнопки отменить согласование.
Объект.ПроверкаСтартаБП=Ложь;   - устанавливает признак по которому в форме документа отображаются\скрываются различные поля.
1 bamond
 
20.08.13
12:16
Уточнение:  после повторного открытия документа и нажатия на кнопку ОтменитьСогласование отрабатывает уже без ошибки.
2 Euguln
 
20.08.13
12:17
Даже сообщение об ошибке как бы намекает, куда копать.
Перечитай форму перед записью, ты же этот объект уже записал.
3 bamond
 
20.08.13
12:22
&НаКлиенте
Процедура ПередЗаписью(Отказ, ПараметрыЗаписи)
    ОбновитьОтображениеДанных()
КонецПроцедуры


Так? Не работает =(
4 Шапокляк
 
20.08.13
12:31
(3) ЗначениеВДанныеФормы()?
Чтобы обнаруживать ошибки, программист должен иметь ум, которому доставляет удовольствие находить изъяны там, где, казалось, царят красота и совершенство. Фредерик Брукс-младший