Имя: Пароль:
1C
1С v8
Как при записи документа отличить интерактивную запись от групповой.
0 amakarov
 
14.12.16
19:59
Здравствуйте, товарищи. Есть задача менять в документах ответственного, для этого создана подписка на событие ПриЗаписиДокумента и все вроде как работает. Но ответственного нужно менять только тогда, когда происходит интерактивная запись, а если запись происходит групповой обработкой или через проведение документов, то ответственный изменяться не должен. Можно добавить в допсвойства документов флаг, но это надо лезть в модуль каждого документа, а надо бы как-нибудь глобально и красиво решить эту задачу. В 7.7 был признак групповойконтекст или как-то так назывался, есть ли что нибудь подобное в 8.2.
Спасибо.
1 Cyberhawk
 
14.12.16
20:02
ДополнительныеСвойства
2 mistеr
 
14.12.16
21:37
(0) А если пользователь выбрал в списке штук 10 и провел?
3 Garykom
 
гуру
14.12.16
21:43
(0) "глобально и красиво" можно "решить эту задачу" записывая всех ответственных, точнее кто вносил изменения в документу и когда.

А кого там назначить из полного списка и в каком виде интерактивном или групповом это уже на ваше усмотрение ))
4 trooba
 
14.12.16
21:47
(1) +1
5 RomanYS
 
15.12.16
00:17
Есть событие ОбработкаПроверкиЗаполнения, но вызываться будет только при (интерактивном) проведении
6 amakarov
 
15.12.16
10:12
(1) ДополнительныеСвойства не подходят - это надо лезть в модуль формы каждого документа и прописывать флаг в приоткрытии или где-то там, чтоб словить интерактивное открытие.
7 amakarov
 
15.12.16
10:17
(2) Это будет считаться групповой обработкой и ответственный меняться не будет, тем более, множественный выбор в списке в нашей конфе нигде не разрешен.
8 amakarov
 
15.12.16
10:22
(5) Тут опять получается надо добавлять доп. свойство и прописывать в каждом документе в каждом модуле.
Вопрос даже не в ответственном, а в возможности в событии при записи понять как записывается документ пользователь открыл форму и нажал записать или ОК, или с помощью метода ОбъектДокумент.записать().
9 aleks_default
 
15.12.16
10:22
(5) С чего бы это?
(6) Нафига лезть в модуль каждого документа? Не проще ли устанавливать признак как раз при групповом проведении, а все остальное считать интерактивным?
10 Cyberhawk
 
15.12.16
10:35
(6) "надо лезть в модуль формы каждого документа" // Если тямы не хватает внедриться в общий модуль, вызываемый из каждой формы - тогда да...
11 amakarov
 
15.12.16
18:41
(10) У нас нет такой процедуры, которая вызывалась бы из каждой формы при открытии или при закрытии. Вопрос немного в другом, можно ли понять в событии при записи как записывается документ из формы или через метод ОбъектДокумент.Записать()?
12 Mankubus
 
15.12.16
18:57
(11) нельзя. используй доп.свойства
13 RomanYS
 
15.12.16
18:59
(8) (9)
Зачем допсвойство? Подписка и меняй прямо в ней.

"Описание:

Вызывается расширением формы при необходимости проверки заполнения реквизитов при записи или при проведении документа в форме, а также при выполнении метода ПроверитьЗаполнение.
Если для документа при конфигурировании свойство Проведение установлено в Разрешить, то вызывается только при проведении.
Если документ не проводится (установлено Запретить), то вызывается при записи.
Позволяет разработчику конфигурации самостоятельно реализовать проверку заполнения в обработчике события. При этом в обработчике можно полностью отказаться от системной обработки (очистив список проверяемых реквизитов), отказаться от проверки системой части реквизитов (выполнив проверку отдельных реквизитов особенным образом и исключив эти реквизиты из списка), а также добавить для проверки другие реквизиты, проверка которых не была указана.
"
14 amakarov
 
20.12.16
02:04
(13) Спасибо. Этот совет очень помог. Все работает как надо в подписке проверка заполнения. Все красиво и всего несколько строчек кода.