Имя: Пароль:
1C
 
Как запретить проведения документа при этом надо записать документ 1С 8.2!
,
0 meniki
 
11.06.19
13:48
Как запретить проведения документа при этом надо записать документ 1С 8.2!
1 hhhh
 
11.06.19
13:49
(0) РежимЗаписиДокумента.Запись
2 ejikbeznojek
 
11.06.19
13:50
Может в перед записью?

если режимзаписи=режимзаписидокумента.проведение тогда
//Какой-то код


режимзаписи=режимзаписидокумента.запись;
конецесли
3 meniki
 
11.06.19
13:53
(1) Не понял
4 Cyberhawk
 
11.06.19
13:54
Кому?
5 1С junior
 
11.06.19
13:54
(3) РежимЗаписиДокумента (DocumentWriteMode)
Запись (Write)
Описание:

В этом случае будут сохранены изменения, внесенные в документ, и движения.
6 ejikbeznojek
 
11.06.19
13:58
(5) Ну если документ ранее каким-то образом был проведён, то проводки уже есть.
И если ты запишешь в режиме записи, то проводки останутся.

А если документ не был ранее проведён, то новых проводок не появится.

Для теста просто напиши в передзаписью
режимзаписи=режимзаписидокумента.запись;
и посмотри что получится.
7 KILL_
OFF_COBECTb
 
11.06.19
14:03
(6)
"Ну если документ ранее каким-то образом был проведён, то проводки уже есть.
И если ты запишешь в режиме записи, то проводки останутся.

А если документ не был ранее проведён, то новых проводок не появится."

а разве тс не это нужно?
8 meniki
 
11.06.19
14:12
(6) Написал в передзаписью теперь обработкаПроведения не работает, просто записывает
9 hhhh
 
11.06.19
14:15
(8) ну, ты это и хотел. Обработка проведения - это и есть проведение документа. Ты и задал вопрос: как запретить проведение документа.
10 meniki
 
11.06.19
14:15
Процедура ПередЗаписью(Отказ, РежимЗаписи, РежимПроведения)
РежимЗаписи = РежимЗаписиДокумента.Запись;


Процедура ОбработкаПроведения(Отказ, РежимПроведения)
Для Каждого стр из Товары Цикл
    Если НЕ ЗначениеЗаполнено(стр.КодТНВЭД) Тогда
        Сообщить("Не заполнен КодТНВЭД!" + "Номер строки" + стр.НомерСтроки);
        отказ=истина;
      КонецЕсли;
КонецЦикла;
        
Если Отказ Тогда
    Возврат;
КонецЕсли;
11 meniki
 
11.06.19
14:16
(9) Понял!
Процедура ПередЗаписью(Отказ, РежимЗаписи, РежимПроведения)
Для Каждого стр из Товары Цикл
    Если НЕ ЗначениеЗаполнено(стр.КодТНВЭД) Тогда
        Сообщить("Не заполнен КодТНВЭД!" + "Номер строки" + стр.НомерСтроки);
        РежимЗаписи = РежимЗаписиДокумента.Запись;
      КонецЕсли;
КонецЦикла;

Вот так должно быть
12 meniki
 
11.06.19
14:17
?
13 ejikbeznojek
 
11.06.19
14:18
(12) Так попробуй.
Если результат будет тот, что ты хотел, значит вот так.
Если нет, значит что-то не то)
Чтобы обнаруживать ошибки, программист должен иметь ум, которому доставляет удовольствие находить изъяны там, где, казалось, царят красота и совершенство. Фредерик Брукс-младший