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% прибыли. так стоит ли заморачиваться на мелочах? | |
| Интернет-форум Краснодарского края и Краснодара |