Имя: Пароль:
1C
1С v8
ПередЗаписью на клиенте
0 Бюро пиявок
 
18.06.14
00:18
На форме есть кнопка, к ней обработчик действия - команда формы "ЗаписатьДокумент". Хочу спросить у пользователя подтверждение, если он проводит документ. Но ничего не надо спрашивать, если документ просто записывается.

Сначала у меня просто было сделано вот так:
//&НаКлиенте
//Процедура ЗаписатьДокумент(Команда)
//    Записать();
//КонецПроцедуры


&НаКлиенте
Процедура ПередЗаписью(Отказ, ПараметрыЗаписи)
    Если ПараметрыЗаписи.РежимЗаписиДокумента = РежимЗаписиДокумента.Проведение Тогда
        Отказ = ОбщийМодульКлиент.ПолучитьПодтверждение();
    КонецЕсли;
КонецПроцедуры

Но при нажатии кнопки "Записать" я все-таки проваливался в обработчик условия. Посмотрел - ну, да, в параметрах записи у меня режим записи документа стоит Проведение.

Тогда попробовал так:

&НаКлиенте
Процедура ЗаписатьДокумент(Команда)
    ПараметрыЗаписи = Новый Структура;
    ПараметрыЗаписи.Вставить("РежимЗаписи", РежимЗаписиДокумента.Запись);
    Записать(ПараметрыЗаписи);
КонецПроцедуры


В процедуре ПередЗаписью ставлю точку останова, смотрю стек вызовов.     
Документ.Потребность.Форма.ФормаДокумента.Форма.ПередЗаписью(Отказ = Ложь, ПараметрыЗаписи = Структура)    38    Тонкий клиент:Федоров (администратор) (56)
Документ.Потребность.Форма.ФормаДокумента.Форма.ЗаписатьДокумент(Команда = КомандаФормы)    384    Тонкий клиент:Федоров (администратор)

Т.е. ничего между не вклинилось. ЗаписатьДокумент, потом сразу попадаем в ПередЗаписью.

Проблема моя в том, что все равно в процедуре ПередЗаписью режим записи стоит Проведение. Смотрю синтакс-помощник, вроде бы, ничего не написано про то, почему тут вдруг у меня от платформы прилетел режим Проведение и при этом мой режим (Запись) проигнорирован.

Посему два вопроса:
1. Откуда этот режим "Проведение" взялся?
2. Как мне различить все-таки команды записать и провести.
1 GROOVY
 
18.06.14
00:20
>>Т.е. ничего между не вклинилось

А что должно было "вклинится"?
2 Бюро пиявок
 
18.06.14
00:22
(1) Ну, мало ли что. Я стек вызовов проверил. А вот почему все-таки параметр прилетел именно такой, я не знаю. Кстати, там у меня выше ошибка. Вот так у меня там: Если ПараметрыЗаписи.РежимЗаписи = РежимЗаписиДокумента.Проведение.
3 Бюро пиявок
 
18.06.14
00:28
Да ладно бы он еще просто прилетел. Я бы это еще пережил как-то. Так он ведь так прилетел, что я его и изменить-то не могу.  Извне процедуры ПередЗаписью я его изменить попробовал - ну, на команду обработчик повесил, кинул в ПередЗаписью свой параметр. А он туда не дошел. А внутри процедуры ПередЗаписью я уже не могу различить, нажата была кнопка Ок или Записать. Режим-то записи документа мне уже подсунули.