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

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

Украинский 1С форум: всё про 1С 8.3, 1С 8.2, 1С 8.1, 1С 8.0, 1С 7.7 _ Программирование в 1С Предприятие 7.7 _ Как не сохранять новый документ?

Автор: Sede 24.11.15, 11:28

Всем доброго дня.
Есть документ который необходимо сохранять только при условии полного заполнения обязательных полей(реквизитов).
В моем случае выполняется проверка на предмет заполнения полей и соответственно кнопки "ОК" и "Записать" меняются на Доступные/Не доступные.

Но есть одна проблема - и эта проблема в кнопке "Закрыть" в заголовке окна. Если закрывать новый документ таким образом запрашивается сохранение документа - жмем "Да" и документ создается с не заполненными обязательными реквизитами. (процедура ПриЗаписи() - проверяет поля - выдает ошибку - но документ всеравно создается)

Какие будут советы? Заранее спасибо.

п.с. //Я пока вижу один вариант - создать обработку - визуальную копию документа. Заполнил все в обработке - создался документ - иначе просто закроется обработка. Но этот вариант очень не хочется использовать

Автор: Sharzem 24.11.15, 11:47

В модуле формы документа Вы сделали следующее:

Повешали на форму, например: Функцию ДоступностьРеквизитов()

Функция ДоступностьРеквизитов()
     Форма.кнЗаписать.Доступность(ВашРеквизит.Выбран());
     Форма.кнПровести.Доступность(ВашРеквизит.Выбран());
КонецФункции


Но забыли:

Процедура ПриЗаписи()
    Если ВашРеквизит.Выбран() = 1 Тогда
          Предупреждение("Отменено не заполднено поле: ВашеПоле")
          СтатусВозврата(0);
          Возврат;
     КонецЕсли;
КонецПроцедуры

Автор: Sede 24.11.15, 11:51

Цитата(Sharzem @ 24.11.15, 11:47) *
В модуле формы документа Вы сделали следующее:

Повешали на форму, например: Функцию ДоступностьРеквизитов()
Функция ДоступностьРеквизитов()
     Форма.кнЗаписать.Доступность(ВашРеквизит.Выбран());
     Форма.кнПровести.Доступность(ВашРеквизит.Выбран());
КонецФункции


Но забыли:

Процедура ПриЗаписи()
    Если ВашРеквизит.Выбран() = 1 Тогда
          Предупреждение("Отменено не заполднено поле: ВашеПоле")
          СтатусВозврата(0);
          Возврат;
     КонецЕсли;
КонецПроцедуры


спасибо то что надо. icon_beer17.gif

Автор: Sharzem 24.11.15, 11:55

Цитата(Sede @ 24.11.15, 12:28) *
создать обработку - визуальную копию документа


Если Вы правите конфигурацию и Вам религия не запрещает этого делать, то не нужно. А вот если вносить правки в конфигурацию очень не желательно - то это единственный варриант. В предыдущих темах, Вы уже поднимали вопрос о ВыполнитьПроцедуру() документа, с помощью Формекса. При создании такой обработки, нужно будет не только предусматривать создание документов, но и дальнейшую правку с перепроведением или перезаписыванием, поскольку на глобальном уровне из Конфигуратора или еще из какого-то места нужно будет запрещать всем пользователям как создание, так и редактирование.

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