Имя: Пароль:
1C
1С v8
Отделить проведение от отмены проведения в подписке "ПередЗаписью" регистра
,
0 Cyberhawk
 
27.09.12
12:22
Друзья, создал подписку "ПередЗаписью" на регистр сведений (подчиненный регистратору). Как в этой подписке отделить проведение от отмены проведения?
Пока сделал так:

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

Оно работает: при отмене проведения никаких проверок (то что там в многоточии) не выполняется, что и требуется. Но нутро подсказывает, что че-то не то (не к тому признаку привязался).
Кто как у себя делает? Есть другие решения?
1 pessok
 
27.09.12
12:28
эммм... может это все же надо в подписку перед записью ДОКУМЕНТА?
2 Spieluhr
 
27.09.12
12:28
Источник.Проведен
3 pessok
 
27.09.12
12:29
(2) источник.проведен и режимзаписидокумента никак не связаны между собой
4 Cyberhawk
 
27.09.12
12:30
Нет, вы что: давать записать косячный документ никаких препятствий быть не должно. Представьте, что в нем 1000 строк, а человеку бежать надо.
Если же вы предлагаете внедриться в обработку проведения (что уже ближе к истине), то в данном случае мимо: документов-регистраторов много, не хочется в каждом портить модуль.
5 pessok
 
27.09.12
12:31
тогда никак
6 Cyberhawk
 
27.09.12
12:31
(4) было для (1)
(2) в обоих случаях Источник.Проведен = Истина
7 DrShad
 
27.09.12
12:32
(1) +100500  там есть РежимЗаписи
8 Cyberhawk
 
27.09.12
12:34
(7) безусловно, но тема топика - про подписку на событие регистра. Правильно ли Я понимаю, что вы придерживаетесь мнения, что в подписке на событие регистра отделять проведение и отмену проведения методологически неверно?
9 pessok
 
27.09.12
12:34
(8) не то, что неверно. невозможно
10 Cyberhawk
 
27.09.12
12:35
(9) смотрите в (0) абзац после кода: "Оно работает".
11 DrShad
 
27.09.12
12:35
(9) +1
12 DrShad
 
27.09.12
12:36
(10) мТаблицаДвижений есть не везде
13 pessok
 
27.09.12
12:37
(10) в коде написана не проверка на проведение/отмену проведения, на на записи регистра, что во многих случаях не одно и тоже
14 Spieluhr
 
27.09.12
12:38
а Источник.Количество() и при отмене проведения больше нуля?
15 Cyberhawk
 
27.09.12
12:41
(14) Бинго! При проведении - больше нуля, при отмене - ноль.
(12) в (14) могут быть какие-то подводные камни, как вы указали про мТаблицуДвижений?
16 Spieluhr
 
27.09.12
12:46
(15) например документ при проведении не формирует движений по Вашему регистру.
или всегда при проведении формирует?
17 DrShad
 
27.09.12
12:47
(15) а при перепроведении?
18 Cyberhawk
 
27.09.12
12:51
(17) при перепроведении подписка вызывается дважды: сначала как для отмены проведения, а затем как для проведения. Отрабатывает корректно.
19 Cyberhawk
 
27.09.12
12:52
(16) пусть не формирует - тогда мне код в подписке и не понадобится.
20 DrShad
 
27.09.12
13:03
я бы все таки перед записью документа РежимЗаписи запихнул в доп свойства и уже в подписке сравнивал именно Режим - так на мое имхо кошернее
21 Cyberhawk
 
27.09.12
13:09
(20) круто, благодарю!
22 DrShad
 
27.09.12
13:11
(21) это стеб? или действительно благодарность?
23 Spieluhr
 
27.09.12
13:18
(20) Вроде в ПередЗаписью для регистра передается ссылка на регистратор, а доп.свойства доступны в объекте.
могу ошибаться
24 Cyberhawk
 
27.09.12
13:25
(22) никакого стеба. Проверил только что по-быстрому: запихнул режим проведения из события ПередЗаписью() модуля документа в константу, а затем попробовал константу получить в подписке - работает.
(20), (22) что именно вы имеете в виду под доп. свойствами? Одноименный реквизит-структуру у объекта-документа? Да, по ссылке они недоступны, и в подписку передается ссылка