К списку форумов К списку тем
Регистрация    Правила    Главная форума    Поиск   
Имя: Пароль:
Рекомендовать в новости

Подписка на событие. На какое событие прикрутить?

Гость
0 - 26.10.2012 - 13:31
Бухгалтерия предприятия КОРП, редакция 2.0

Есть документ "Регламентная операция" в свойстве "Проведение" установлено значение "Запретить". Т.е. документ не проводится. Но при нажатии кнопки ОК вызывается процедура, которая делает движения. Так вот мне хочется прикрутить подписку на событие, чтоб после создания движений (псевдо проведения) вызывалась некая обработка.
Думал в сторону события "ПриЗаписи". Но косяк весь в том, что по нажатию кнопки ОК этот документ записывается 4 раза, соответственно и моя подписка срабатывает 4 раза, что не есть гуд.

Собственно вопрос: Как и куда мне прилепить эту подписку? Совсем не портя типовые модули!!!



Гость
1 - 26.10.2012 - 13:42
Событие определяют инициируемые действия.
Что сделать хочешь?
Если модифицируешь данные самого объекта - в ПередЗаписью.
ЗЫ но, в любом случае, обработать один раз несмотря на повторную запись довольно просто...
Гость
2 - 26.10.2012 - 13:53
Обработка в подписки делает дополнительные движения по регистрам, сам документ не модифицирует.
Перед записью не канает, т.к. неизвестно еще нормально ли прошло "псевдо проведение". Вот при записи - нормально в принципе. Но нужно чтоб вызвалась при ПОСЛЕДНЕЙ записи. т.к. только после нее можно быть уверенным, что документ "провелся" успешно.
Гость
3 - 26.10.2012 - 13:56
2-Сли то > вызвалась при ПОСЛЕДНЕЙ записи - это гораздо сложнеее :)
дополнительные движения делаются по тем же регистрам, в которых и так движения уже есть?
Гость
4 - 26.10.2012 - 14:01
Да, в том числе и по ним. НО, может быть ситуация (правда маловероятная), когда в эти регистры типовой механизм ничего не запишет, а вот моей обработке необходимо сделать движения.

Вообще это операция списание расходов будущих периодов, если это поможет
Гость
5 - 26.10.2012 - 14:19
Запись в этом виде операции всегда вызывается 4 раза?
Гость
6 - 26.10.2012 - 14:36
Да, всегда. Хоть это и не совсем красиво, но можно и в эту сторону подумать.
Гость
7 - 26.10.2012 - 14:58
Вообще документ "чудесный"

Записать();

ВыявлениеУчетныхОшибок(СтруктураШапкиДокумента, Отказ, Заголовок);
Если Отказ Тогда
Возврат Истина;
КонецЕсли;

Если ЭтоНовый() Тогда
Записать();
КонецЕсли;

Интересно в каких случаях может отработать этот кусок?

Если ЭтоНовый() Тогда
Записать();
КонецЕсли;
Гость
8 - 26.10.2012 - 15:02
6-Сли то > совсем не красиво, но на ДополнительныеСвойства можно построить счетчик итераций который увеличивать/анализировать в своей подписке.
Гость
9 - 26.10.2012 - 15:15
делать свою проводку в ней счётчик.
если конечно он всегда 4 раза вызывается
потом её искать
Гость
10 - 26.10.2012 - 15:22
Вообще не понимаю я такие документы, которые не проводятся, но делают движения и в качестве регистратора себя указывают. В чем логика?

По поводу счетчика - блин, совсем не красиво. При обновлении конфы вдруг 1Сники "оптимизируют" этот говнокод и будет он вызываться не 4, а 3 раза. И усе, приехали.
Гость
11 - 26.10.2012 - 15:25
может там на 4 раз какие-то проводки добавляются? смотреть если они есть значит можно своё делать
Гость
12 - 26.10.2012 - 15:28
10-Сли то > а есть причины, по которым следует делать это при последней, а не при первой записи?
Гость
13 - 26.10.2012 - 15:45
кроме записи документа производится
- запись набора в регистр бухгалтерии (всегда)
- запись в РС (если кол строк расчета >0)
- запись в регистры ИП/УСН (в случае необходимости)
===
Может имеет смысл перехватить запись/передзаписью регистра бухгалтерии?
14 - 28.10.2012 - 02:17
м-да...
вот уж воистину говнокод
Гость
15 - 28.10.2012 - 09:06
(14) а что не говнокод? тут смотришь на своё годовой давности и иногда думаешь как оно вобще работало.
а если франч так вобще в соответствии с известной формулой 20% кода приносит 80% прибыли. так стоит ли заморачиваться на мелочах?


К списку вопросов






Copyright ©, Все права защищены