Имя: Пароль:
1C
1С v8
Помогите с кодом
0 Автосервис
 
07.04.16
19:46
Добрый день.
Управляемые формы. Нужно перед записью сотрудника проверить, есть ли в базе элемент с таким же наименованием и спросить у пользователя, продолжить запись или нет. Вот наработка кода:

&НаКлиенте
Процедура ПередЗаписью(Отказ, ПараметрыЗаписи)
    Если ЕстьДубль() Тогда
        Режим = РежимДиалогаВопрос.ДаНет;
        Оповещение = Новый ОписаниеОповещения("ВозвратитьОтвет", ЭтаФорма, Параметры);
        ПоказатьВопрос(Оповещение, "В базе уже существует сотрудник с наименованием: " + Объект.Наименование + ". Все равно записать?", Режим, 0);    
    КонецЕсли;    
КонецПроцедуры

&НаКлиенте
Процедура ВозвратитьОтвет(Результат, Параметры) Экспорт
    Если Результат = КодВозвратаДиалога.Нет Тогда
        Возврат;
    КонецЕсли;
КонецПроцедуры

Есстественно это не работает, т.к. система не останавливается, ожидая ответ пользователя, и записывает элемент сразу же. Помогите советом.
1 mingw
 
07.04.16
19:56
отказ=истина
потом при ВозвратитьОтвет запись если Истина, еще флаг передавай чтобы закрывало форму
и при вопросе не забыть форму родительскую заблокировать
2 Автосервис
 
07.04.16
19:59
(1) А когда я буду записывать элемент в функции ВозвратитьОтвет, он не зайдет снова в процедуру ПриЗаписи и не отменит запись?)
3 Автосервис
 
07.04.16
20:07
Нашел ответ на http://its.1c.ru/docs/v8nonmodal/#25
Легких способов не существует. Вопрос можно считать зарытым :)
4 RomanYS
 
07.04.16
21:02
для таких задач есть событие ОбработкаПроверкиЗаполнения