Имя: Пароль:
1C
1С v8
Перед записью и кнопки
,
0 kintevy
 
29.09.22
10:14
Есть написанная в расширении процедура передзаписьюперед, в ней 2 диалоговых вопроса , после второго вопроса "сохранить документ?" да - нет; ответ да, нажатие кнопки провести и закрыть, должно проводить и закрывать, но программа только проводить, но закрывать не закрывает. закрывает только после второго нажатия на кнопку. почему так происходит?
1 AlvlSpb
 
29.09.22
10:22
(0) "ответ да, нажатие кнопки провести и закрыть"© Сильно сомневаюсь. Если бы было так, то бесконечно вызывалась бы процедура ПередЗаписью, т.к. кнопка Записать и Закрыть однозначно обращается к этой процедуре. Разбирайся что реально происходит у тебя в коде
2 kintevy
 
29.09.22
10:25
(1) процедура после расширения
Если ПараметрыЗаписи.РежимЗаписи = ПредопределенноеЗначение("РежимЗаписиДокумента.Проведение") Тогда
        КлючеваяОперация = "ПроведениеОтчетПроизводстваЗаСмену";
        ОценкаПроизводительностиКлиент.НачатьЗамерВремени(Истина, КлючеваяОперация);
    КонецЕсли;
3 kintevy
 
29.09.22
10:25
а в диалоговом окне после ответа да снова вызывается процедура записать()
4 AlvlSpb
 
29.09.22
10:29
(3) Покажи описание оповещения, что делается по ДА. А в (2) это вообще к записи никакого отношения
5 kintevy
 
29.09.22
10:40
(4) записать(параметрызаписи);
6 Ryzeman
 
29.09.22
10:41
(5) и где метод Закрыть?...
7 kintevy
 
29.09.22
10:42
(6) если писать метод закрыть, то по нажатию кнопки "записать" он тоже будет закрывать, пользователю может нужно остаться на форме после обычной записи
8 Ryzeman
 
29.09.22
10:44
(7) >> но программа только проводить, но закрывать не закрывает. закрывает только после второго нажатия на кнопку. почему так происходит?

Тебе что надо и что ты от нас хочешь?...
9 kintevy
 
29.09.22
10:48
(8) мне нужно чтобы стандартные кнопки работали так же как и до моих изменений провести и закрыть - проводит и закрывает(на данный момент он только проводит но не закрывает), а если добавлять метод закрыть, то кнопка "записать" тоже закрывает форму, так быть не должно
получается так что процедура передзаписью перекрывает функции кнопок, вот я и спрашиваю как сделать так, чтобы кнопки выполняли свои функции
10 Ryzeman
 
29.09.22
10:59
(9) Тогда делай это через типовые параметры, а не ПередЗаписью. Пример описания из УТ:

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



Если тебе интересно - посмотри что в этой процедуре происходит. Тогда поймёшь что ты поломал и почему у тебя не работает :)
11 kintevy
 
29.09.22
11:41
(10) а можно чуть-чуть побольше подробностей, я в 1с ученик пока что
12 rudnitskij
 
29.09.22
22:52
(0) Такие вещи не надо делать "перед записью", а лучше вынести на отдельную кнопку. Дольше над отладчиком будете сидеть пытаясь понять что там у вас происходит
Компьютеры — это как велосипед. Только для нашего сознания. Стив Джобс