Как определить делается ли отмена проведения документа через кнопку или програмно

1. E_Johnny 28.01.16 11:12 Сейчас в теме
Надо определить событие проведения, отмены проведения или пометки удаления документа. Т.е. действие производилось нажатием кнопки или через программный код (обработку).
Ответы
Подписаться на ответы Инфостарт бот Сортировка: Древо развёрнутое
Свернуть все
2. alljoke 28.01.16 11:22 Сейчас в теме
Нажатие кнопки в форме документа или форме списка?
5. E_Johnny 28.01.16 11:33 Сейчас в теме
(2) alljoke, это не важно
важно другое - сделано ли это кликом мышки или через программный код
3. Akuji 22 28.01.16 11:28 Сейчас в теме
Через спец реквизит допустим "обработка"... Если проведение выполняется обработкой то при выполнении записать "Истина" иначе "ложь".
4. E_Johnny 28.01.16 11:29 Сейчас в теме
есть документ. у него существует несколько связанных документов
при отмене проведения одного из связанных документов, остальные также должны распровестись
но возникает цикличность:
у док1 есть ссылки на док2 и док3, соответственно у док 2 есть ссылки на док1 и док3 и т.д.

при отмене проведения док1 запускается событие по отмене проведения остальных документов
и начинается цикл: док2 пытаеся распровести док1 и док3
док1 пытается распровести док2 и док3
док2 пытаеся распровести док1 и док3
док1 пытается распровести док2 и док3
док2 пытаеся распровести док1 и док3
док1 пытается распровести док2 и док3
док2 пытаеся распровести док1 и док3
13. Allexe8.1 28.01.16 11:51 Сейчас в теме
(4) E_Johnny,
запускается событие по отмене проведения остальных документов
Можно массив уже распроведенных документов - передавать через ДополнительныеСвойства. Т.е. док при распроведении добавляет свою ссылку в массив, массив передает в доп. свойства следующего документа.
Хотя, странно, что событие не видит, что эти документы уже не проведены.

Плюс, имхо, нужно наоборот, из программного кода - передавать признак (в те же дополнительныеСвойства) - что документ распроводится программно.
starjevschik; +1 Ответить
6. Akuji 22 28.01.16 11:34 Сейчас в теме
поставь условие: если документ уже распроведен то ничего делать не нужно.
7. E_Johnny 28.01.16 11:36 Сейчас в теме
в том то и дело что он не распроводится
8. alljoke 28.01.16 11:36 Сейчас в теме
Когда делается кликом мыши - значит нажат Элемент на форме. Проверять его (Элемент формы) на заполненность.
9. Akuji 22 28.01.16 11:41 Сейчас в теме
сначала сам себя распроведи, потом по ссылке второй и третий (они то же сначала сами себя распроводят - раз команда пришла. А потом проверяют остальные по ссылке распроведены ли)
10. E_Johnny 28.01.16 11:41 Сейчас в теме
Интересует есть ли команда на подобии ОбменДанными.Загрузка, но для определения дейсвие было очуществлено через клик пользователя или через программный код.
11. spacecraft 28.01.16 11:45 Сейчас в теме
(10) E_Johnny, из модуля формы можно передавать параметр в обработку проведения. И уже там анализировать есть этот параметр или нет. Если нет, тогда программный вызов.
12. E_Johnny 28.01.16 11:48 Сейчас в теме
Какой параметр можно передать в подписку на событие с событием "ОбработкаУдаленияПроведения"? посоветуйте
spacecraft
14. spacecraft 28.01.16 12:05 Сейчас в теме
(12) E_Johnny, обычные формы?
Модуль формы:
Процедура ПередЗаписью(Отказ, РежимЗаписи, РежимПроведения)
	ДополнительныеСвойства.Вставить("РучноеПроведение");
КонецПроцедуры

Модуль объекта:
Процедура ОбработкаПроведения(Отказ, РежимПроведения)
	Если ДополнительныеСвойства.Свойство("РучноеПроведение") Тогда
		// Пользователь нажал провести.
	КонецЕсли;
КонецПроцедуры

В подписку передается объект вместе с ДополнительныеСвойства. Можете там анализировать.
15. Boneman 301 28.01.16 18:00 Сейчас в теме
я бы добавил в модуль объекта экспортную переменную,
Перем ИнтерактивнаяРабота Экспорт;

//....
// код модуля

//и гдето в конце 
ИнтерактивнаяРабота = Ложь;


А в модуле формы, при открытии
ЭтотОбъект.ИнтерактивнаяРабота = Истина;


Соответсвенно, если объект открыт пользователем, то логично что и кнопки из формы нажимаются. Переменная переназначается в истину
А программно, объект создается, переменная всегда инициализируется в Ложь
16. user595755_fomins.ostava 12.01.21 12:08 Сейчас в теме
(15)
А как установить для объекта переменную в истину, если нажатие на кнопку производится из
формы списка документов?
17. SlavaKron 12.01.21 12:15 Сейчас в теме
(16) Более менее универсально выглядит такая конструкция, при условии, что в коде программного изменения объекта не вызывается метод ПроверитьЗаполнение:
Процедура ОбработкаПроверкиЗаполнения(Отказ, ПроверяемыеРеквизиты)
	
	ДополнительныеСвойства.Вставить("ЭтоИнтерактивноеИзменение", Истина);
	
КонецПроцедуры

Пардон, это актуально только для проведения.
18. user595755_fomins.ostava 13.01.21 12:13 Сейчас в теме
Все верно, при отмене проведения событие "ОбработкаПроверкиЗаполнения" не работает.
Оставьте свое сообщение

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