Версия для печати темы (https://pro1c.org.ua/index.php?s=d9865dc02aa5c4289a04843b414ca456&showtopic=27774)

Нажмите сюда для просмотра этой темы в обычном формате

Украинский 1С форум: всё про 1С 8.3, 1С 8.2, 1С 8.1, 1С 8.0, 1С 7.7 _ Программирование обычных форм 1С 8.2 и не интерфейсной логики _ Отказ от записи в Форме

Автор: Михрутка 28.01.16, 16:52

1с 8.2. УТП 1.2.
Создаю документ из некой формы:

док = Документы.ПеремещениеТоваров.СоздатьДокумент();
    док.ВидОперации = Перечисления.ВидыОперацийПеремещениеТоваров.ТоварыПродукцияПоОрдерам;
    док.ПолучитьФорму().Открыть();

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


Если пользователь выбирает "да", то все-равно возникает стандартное окно, что объесть изменен и т.д. и т.п. Как сделать, чтобы его не было?

Автор: DrLivsi 28.01.16, 17:00

Михрутка @ Сегодня, 17:52 *,

Если Товары.Количество() = 0 Тогда
        Ответ = Вопрос("В документе нет товаров. Закрыть документ без записи? 'Да'-документ будет закрыт, 'Нет' - продолжить редактирование",РежимДиалогаВопрос.ДаНет);
        Если Ответ = КодВозвратаДиалога.Да Тогда
            ЭтаФорма.Модифицированность() = Ложь;
            ЭтаФорма.Закрыть();
        Иначе
            Отказ = Истина;
        КонецЕсли;
    КонецЕсли;


Автор: Михрутка 28.01.16, 17:04

Цитата(DrLivsi @ 28.01.16, 17:00) *
ЭтаФорма.Модифицированность() = Ложь;

Так не работает. Вопрос не возникает, верно, но объект записывается в БД, а мне нужно, чтобы форма закрывалась и объект не записывался.
P.s.
Наверно это я забыл написать в вопросе...

Сделал вот так:
Если Товары.Количество() = 0 Тогда
        Ответ = Вопрос("В документе нет товаров. Закрыть документ без записи? 'Да'-документ будет закрыт, 'Нет' - продолжить редактирование",РежимДиалогаВопрос.ДаНет);
        Если Ответ = КодВозвратаДиалога.Да Тогда
            ЭтаФорма.Модифицированность() = Ложь;
            ЭтаФорма.Закрыть();
            Отказ = Истина;
        Иначе
            Отказ = Истина;
        КонецЕсли;
    КонецЕсли;

Работает. Но выглядит, как-то криво, как по мне(((

Автор: mac84 29.01.16, 9:17

Михрутка @ Вчера, 18:04 *,
СтандартнаяОбработка = Ложь;

Украинский 1С форум: всё про 1С 8.3, 1С 8.2, 1С 8.1, 1С 8.0, 1С 7.7
https://pro1c.org.ua