Имя: Пароль:
1C
1С v8
подписка на обработку проведения документа
0 1c_July
 
29.12.16
10:29
Здравствуйте!
Подскажите, пожалуйста, для обработчика подписки на события ОбработкаПроведения - в нем как-то можно определить, событие сработало при интерактивном проведении пользователем или прогаммном?
И если были ошибки и проведение не состоится - подписка сработает и в параметре обработчика отказ будет истина или просто не сработает?
1 shuhard
 
29.12.16
10:31
(0) если передать дополнительныепараметры, то можно
2 1c_July
 
29.12.16
10:35
(1) а в этот обработчик можно добавлять свои параметры?
автоматом подставляется (Источник, Отказ, РежимПроведения)
3 Cool_Profi
 
29.12.16
10:37
(2) ДокументОбъект.<Имя документа>.ДополнительныеСвойства (DocumentObject.<Имя документа>.AdditionalProperties)
ДокументОбъект.<Имя документа> (DocumentObject.<Имя документа>)
ДополнительныеСвойства (AdditionalProperties)
Использование:

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

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

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

Сервер, толстый клиент, внешнее соединение.
4 1c_July
 
29.12.16
10:42
(3) чтобы в свойства записать, придется вносить изменения в документе (в смысле в конфигурации), а подписку хотелось как раз чтобы его не трогать..
5 Cool_Profi
 
29.12.16
10:43
(4) нет ножек - нет мультиков
6 1c_July
 
29.12.16
10:48
(3) а если все-таки использовать, что-то не соображу, в какой момент приткнуться, если надо чтобы и если из формы документа ручками сделают "провести" и из формы списка.. В обеих? &НаКлиенте ПередЗаписью?
7 Cool_Profi
 
29.12.16
10:50
(6) А в модуле объекта ПередЗаписью добавить не судьба?
8 1c_July
 
29.12.16
10:51
И можете сказать - срабатывает подписка, если к концу обработчика проведения исключений не было, но Отказ=истина?
9 1c_July
 
29.12.16
10:52
(7) на сервере? в этом момент разве есть признак интерактивно вызвано или нет?
10 Allexe
 
29.12.16
10:55
(8) Если обработкаПроведения не выполнилась подписка не сработает. Возьми протести делов-то. Напиши в обработке проведения отказ = истина и проверь.
11 Allexe
 
29.12.16
10:56
(9) В (6) ты все правильно написал. Из формы передзаписью смотри если режим записи проведение, то значит из формы проводят.
12 1c_July
 
29.12.16
11:00
(10) ну это попробую, конечно, но вдруг кто просто уже знает :)

Может и зря смотрю в сторону подписок, в моем случае действие имеет смысл после успешного интерактивного проведения документа.
Чтобы предложить пользователю ввести некоторые связанные с документом данные и записать их в свой регистр. Если не введет - проведение не нужно запрещать (по регистру будет видно, что не ввел, запишу строки с недозаполненными данными).
Другой вариант - добавить или колонку в табличную часть документа, или отдельную табличную часть. Почему не хочется колонку - дополнительные данные будут нужны примерно для 1 строки из нескольких десятков. В отдельную ТЧ если вынести эти особенные строки - надо как-то отслеживать каждый чих в основной ТЧ и в зависимости от этого - обновлять эту доп.ТЧ.. все как-то не очень..
13 Allexe
 
29.12.16
11:03
(12) Может лучше использовать в Форме ПослеЗаписи. Вам же надо это только для интерактивного проведения? Про регистр хорошая идея.
14 1c_July
 
29.12.16
11:03
+ (12) а с подпиской что еще хорошо - вынести все свои доделки в доп.обработку, и из нее вызывать команды только. В случае изменений реже потребуется конфу менять.
15 Allexe
 
29.12.16
11:05
(14) Вам надо чтобы событие вызавалось именно после проведения? Тогда подписку. Если только при проведении из формы, тогда в форме лучше обрабатывать.
16 1c_July
 
29.12.16
11:21
(15) да, когда уже все проверки прошли и уже точно документ провелся и записан (самое главное что записан - если еще после этого полезут менять ТЧ, значит будет или снова проведение или отмена его). На событие записи не подходит - если после каждой строчки будут сохранять, доставуче будет слишком вылезать мое дозаполнение.
Для случая какого-нибудь массового программного проведения - отдельно будет инструмент для такого же массового дозаполнения данных по нескольким документам сразу (ну и для тех, которые поленятся при проведении заполнить).

С дополнительными свойствами + После записи в форме наверное подойдет вариант. Спасибо за подсказки.

А в обработке события подписки есть параметр Отказ - это можно даже когда все проверилось, записалось по обычным регистрам - в подписке еще что-нибудь проверить и присвоить Отказ=истина и тогда все проведение откатится?
17 YFedor
 
29.12.16
11:26
(0) Стандартный вопрос: зачем?
18 1c_July
 
29.12.16
11:30
(17) см.(12), (15)
19 Allexe
 
29.12.16
11:44
(16) Откатится если Отказ поставить в подписке
http://xn----1-bedvffifm4g.xn--p1ai/articles/подписки-на-события/
20 1c_July
 
29.12.16
11:54
(19) спасибо!
Глупец, лишенный способности посмеяться над собой вместе с другими, не сможет долго выносить программирование. Фредерик Брукс-младший