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

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

Как?
user1296291; +1 Ответить
По теме из базы знаний
Найденные решения
4. DJDUH 17 11.07.19 16:35 Сейчас в теме
(1) передЗаписью
ЭтоНовый()
! в
ДополнительныеСвойства 
передать признак и в обработке проведения смотерть на него и принимать решение!
3sf; shalupov61; __MaxImuS__; request4t; +4 Ответить
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) передЗаписью
ЭтоНовый()
! в
ДополнительныеСвойства 
передать признак и в обработке проведения смотерть на него и принимать решение!
3sf; shalupov61; __MaxImuS__; request4t; +4 Ответить
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)
Вроде новый документ, первый раз проводится - но проверка не проканает.

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

Руководитель направления 1С
Москва
зарплата от 350 000 руб.
Полный день

1С Программист
Москва
зарплата от 180 000 руб.
Полный день

Программист 1С
Москва
зарплата от 180 000 руб. до 220 000 руб.
Полный день

Аналитик 1С / Бизнес-аналитик
Нижний Новгород
зарплата от 100 000 руб. до 250 000 руб.
Временный (на проект)