Проверка на Новый документ в ОбработкаПроведения()

1. request4t 11.07.19 16:24 Сейчас в теме
Управляемое приложение. Нужно при проведении проверять новый это док или нет.

Как?
user1296291; +1 Ответить
По теме из базы знаний
Найденные решения
4. DJDUH 17 11.07.19 16:35 Сейчас в теме
(1) передЗаписью
ЭтоНовый()
! в
ДополнительныеСвойства 
передать признак и в обработке проведения смотерть на него и принимать решение!
Sana555; 3sf; shalupov61; __MaxImuS__; request4t; +5 Ответить
7. lefthander 11.07.19 16:48 Сейчас в теме
(4)
передать признак и в обработке проведения смотерть на него и принимать решение!


Вот так
Код
Процедура ПередЗаписью(Отказ, РежимЗаписи, РежимПроведения)

   ДополнительныеСвойства.Вставить("ЭтоНовый",    ЭтоНовый());
   ДополнительныеСвойства.Вставить("РежимЗаписи", РежимЗаписи);

//что то ваше
КонецПроцедуры
Показать полностью
3sf; shalupov61; smartcoder; +3 Ответить
Остальные ответы
Подписаться на ответы Сортировка: Древо развёрнутое
Свернуть все
2. lefthander 11.07.19 16:27 Сейчас в теме
(1)Вы не поверите ЭтоНовый()
3. request4t 11.07.19 16:32 Сейчас в теме
(2) не верю. не работает. значение = Ложь.
4. DJDUH 17 11.07.19 16:35 Сейчас в теме
(1) передЗаписью
ЭтоНовый()
! в
ДополнительныеСвойства 
передать признак и в обработке проведения смотерть на него и принимать решение!
Sana555; 3sf; shalupov61; __MaxImuS__; request4t; +5 Ответить
6. lefthander 11.07.19 16:45 Сейчас в теме
(4)СП иногда читайте ПередЗаписью() в модуле формы или модуль объекта?


ДокументОбъект.<Имя документа> (DocumentObject.<Имя документа>)
ЭтоНовый (IsNew)
Синтаксис:

ЭтоНовый()
Возвращаемое значение:

Тип: Булево.
Истина - изменяется еще ни разу не записанный документ; Ложь - документ уже записан.
Описание:

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

Доступность:

Сервер, толстый клиент, внешнее соединение, мобильное приложение(сервер).
Пример:

Если РасходнаяНакладная.ЭтоНовый() Тогда
РасходнаяНакладная.Записать();
КонецЕсли;
8. DJDUH 17 11.07.19 16:54 Сейчас в теме
(6) Я иногда читаю, но предпочитаю проверять на практике, чего и вам советую.
А слать меня читать СП - думаю лишнее, сначала проверьте, а затем что-то доказывайте!
shalupov61; +1 Ответить
7. lefthander 11.07.19 16:48 Сейчас в теме
(4)
передать признак и в обработке проведения смотерть на него и принимать решение!


Вот так
Код
Процедура ПередЗаписью(Отказ, РежимЗаписи, РежимПроведения)

   ДополнительныеСвойства.Вставить("ЭтоНовый",    ЭтоНовый());
   ДополнительныеСвойства.Вставить("РежимЗаписи", РежимЗаписи);

//что то ваше
КонецПроцедуры
Показать полностью
3sf; shalupov61; smartcoder; +3 Ответить
9. DJDUH 17 11.07.19 16:55 Сейчас в теме
(7) Типа того, а "РежимЗаписи" думаю лишний.
25. Finbaev 16.06.22 21:12 Сейчас в теме
(1) В типовых конфигурация необходимо добавить документ в подписку на событие ПередЗаписьюДокументаДляУдаленияДвижений.

В подписке устанавливается в Дополнительные свойства значения ЭтоНовый и ДатаДокументаСдвинутаВперед.
5. Mikhail.Burayev 11.07.19 16:44 Сейчас в теме
В управляемых формах

Если Объект.Ссылка.Пустая() Тогда
     //Это новый документ
КонецЕсли;
user745653; +1 Ответить
10. request4t 11.07.19 16:56 Сейчас в теме
я же написал в вопросе: проверка нужна в Обработке Проведения()
11. lefthander 11.07.19 17:01 Сейчас в теме
(10)Ну и проверяйте в обработке проведения Дополнительные свойства Если новый док ЭтоНовый() будет в Истине, иначе Ложь.
12. DJDUH 17 11.07.19 17:03 Сейчас в теме
(11) Специально для Вас сер

док = Документы.РеализацияТоваровУслуг.СоздатьДокумент();
Док.Дата  = ТекущаяДата();
Док.УстановитьНовыйНомер();
док.Записать(РежимЗаписиДокумента.Проведение);

Просьба отладкой стать в процедуре ОбработкаПроведения() и при помощи [Shift+F9] вычислить
ЭтоНовый()


и результат скрином.
13. request4t 11.07.19 17:04 Сейчас в теме
(11) вас мое сообщение не касается) вы по сути ответили. спасибо) сейчас попробую.
14. lefthander 11.07.19 17:10 Сейчас в теме
(13)Что бы было понятно про дополнительные свойства скрин с кусочком кода
ДополнительныеСвойства не надо никак объявлять это свойство документа В ПередЗаписью вставили, в обработке проведения проверили.

ДокументОбъект.<Имя документа> (DocumentObject.<Имя документа>)
ДополнительныеСвойства (AdditionalProperties)
Использование:

Только чтение.
Описание:

Тип: Структура.
Может использоваться в тех случаях, когда необходимо хранить некоторые значения, связанные с объектом, на время выполнения некоторых операций, без изменения объекта. Например, при обработке событий в подписке на события.

Доступность:

Сервер, толстый клиент, внешнее соединение, мобильное приложение(сервер).
Прикрепленные файлы:
15. Boneman 298 11.07.19 17:11 Сейчас в теме
(10) В обработке проведения, априори не может быть нового документа. Туда попадает когда документ уже записан в базу данных, имеет ссылку и уже технически не является новым.
Признак передать можно, проверив перед записью и передав через доп свойства, но это имеет свои баги,
например записать документ - открыть закрыть форму, и потом провести. Вроде новый документ, первый раз проводится - но проверка не проканает.
Тут либо задачу надо пересмотреть, либо какой-то более материальный признак проверять..(например сверять дату документа с текущей датой). Либо понимать, и принимать, несовершенство данной проверки.
shalupov61; +1 Ответить
16. lefthander 11.07.19 17:16 Сейчас в теме
(15)
В обработке проведения, априори не может быть нового документа. Туда попадает когда документ уже записан в базу данных, имеет ссылку и уже технически не является новым.


Ошибаетесь уважаемый.
Вот создан новый документ провожу, остановка на обработке проведения. ЭтоНовый в истине ;)
Прикрепленные файлы:
17. Boneman 298 11.07.19 17:24 Сейчас в теме
(16) В чем я ошибаюсь?
Если бы это было не так, то для чего весь сыр бор с доп свойствами ? Проверили бы на ЭтоНовый() прямо в обработке проведения и делу конец.
18. lefthander 11.07.19 17:28 Сейчас в теме
(17)
Проверили бы на ЭтоНовый() прямо в обработке проведения и делу конец.

В задании надо проверку сделать в обработке проведения и сделать это можно передав эту информацию через дополнительные
свойства.
20. Boneman 298 11.07.19 17:32 Сейчас в теме
(18)
В задании надо проверку сделать в обработке проведения и сделать это можно передав эту информацию через дополнительные
свойства.

Я прочитал топик, и понимаю задание. Поэтому и дополнил ваши ,безусловно верные ответы, дополнительной информацией, чтобы ТС потом не удивлялся, что в каких то случаях - у него это срабатывать не будет.
24. lefthander 11.07.19 17:43 Сейчас в теме
(20)Да, конечно, здесь Вы абсолютно правы. Если что то не сработает, то должно подвигнуть ТС для более глубокого изучения УФ. ;)
ЗЫ по скринам видно что код типовой, именно так поступает сама 1С.
19. Boneman 298 11.07.19 17:29 Сейчас в теме
(16) у тебя на скрине ЭтоНовый - это ключ переданной структуры, которая была передана из процедуры "передЗаписью".
А сама функция ЭтоНовый() всегда в обработке проведения будет давать Ложь, как раз по причине того, что документ сначала записывается, а потом проводится.
21. lefthander 11.07.19 17:33 Сейчас в теме
(19)Так именно это и надо - в обработке проведения выяснить новый документ или нет. При проведении уже записанного документа этот ключ будет всегда в ложь, и только при первой записи в истине.

Управляемое приложение. Нужно при проведении проверять новый это док или нет.
22. herfis 498 11.07.19 17:39 Сейчас в теме
(21) Boneman указывает на возможный ньюанс в трактовке фразы "проведение нового документа". Если трактовать его как "первое проведение документа", то все варианты описанный подход не покрывает.
23. SlavaKron 11.07.19 17:40 Сейчас в теме
(15)
Вроде новый документ, первый раз проводится - но проверка не проканает.

Как вариант, перед записью смотреть на свойство Проведен:
ДополнительныеСвойства.Вставить("ПроведениеНепроведенного", Не Проведен И РежимЗаписи = РежимЗаписиДокумента.Проведение);
Оставьте свое сообщение

Для получения уведомлений об ответах подключите телеграм бот:
Инфостарт бот