|
Когда формируются проводки в Авансовом отчёте в конфигурации Комплексная автоматизация 1.1 |
☑ |
0
Elkin-Palkin
20.04.18
✎
14:42
|
Хочу отловить момент, когда формируются проводки в документе Авансовый отчёт. Конфигурация Комплексная автоматизация 1.1.101.1 практически типовая.
С точки зрения моих знаний проводки могут формироваться:
а) в модуле документа, процедура ОбработкаПроведения()
б) в подписке на событие ОбработкаПроведения
Установил в самом конце в процедуре ОбработкаПроведения() точку останова. Смотрю Движения.Хозрасчетный.Количество(). Равно 0. Проводок не вижу.
Перебрал подписки на события, где источником является документ АвансовыйОтчет и событие "ОбработкаПроведения". Таковых нашёл три.
В каждом из трёх обработчиков этого события поставил точку останова. Заходит отладчик, останавливается - т.е. я правильно идентифицировал их. Но если хочу посмотреть количество проводок с помощью Источник.Движения.Хозрасчетный.Количество(), то получаю 0. Однако документ проводки даёт! Подскажите где рыть?
|
|
1
shuhard
20.04.18
✎
14:44
|
(0) используй точку останова в модуле Рг Хозрасчетный
|
|
2
Вафель
20.04.18
✎
14:46
|
там может отложенные движения какие
|
|
3
Elkin-Palkin
20.04.18
✎
14:50
|
(1) В модуле набора записей регистра бухгалтерии Хозрасчетный в данной конфигурации есть только одна процедура - ПередЗаписью()
В ней в начала есть кусок
Если Количество()>0 Тогда
Иначе Возврат;
Конец
Так вот это самое Количество() таки равно 0. Поэтому там ничего не делается и происходит "Возврат".
|
|
4
Elkin-Palkin
20.04.18
✎
14:51
|
(2) Так проводки в документе я вижу сразу же, моментально, после нажатия на кнопку "ОК".
|
|
5
shuhard
20.04.18
✎
15:45
|
(3) там два обращения, при втором будет не 0
|
|
6
Elkin-Palkin
23.04.18
✎
06:41
|
(5) Поставил точку останова в самом начале процедуры ПередЗаписью() модуля набора записей регистра бухгалтерии Хозрасчетный. Нажал "ОК" в Авансовом отчёте. Остановка на точке произошла только один раз. Второй раз в эту процедуру программа не заходила. Поэтому ответ не понял.
|
|
7
drei
23.04.18
✎
06:46
|
Включи замер производительности.
|
|
8
Elkin-Palkin
23.04.18
✎
07:39
|
(7) Зачем? Что я там увижу в контексте своего вопроса?
Ну включу, а дальше что мне делать, чтобы увидеть момент формирования проводок?
|
|
9
shuhard
23.04.18
✎
07:39
|
(6) брехня
|
|
10
Сти
23.04.18
✎
08:25
|
(0) Знания надо периодически пополнять!
3) Проводки могут формироваться где угодно, даже если не вызывается обработка проведения. Хоть из внешней обработки. Хотя это и неприлично как-то.
В данном случае проводки формируются в коде, вызываемом из обработки проведения и время от времени записываются в недрах общих модулей. Например, при отражении в авансовом отчете поступления товаров на склад они формируются в УправлениеЗапасамиПартионныйУчет.СформироватьПроводкиВсеВидыУчета(). Глянь в конец модуля, там что-то типа
Для Каждого ТекущееДвижение Из Движения Цикл
Если ТекущееДвижение.Значение.Модифицированность() Тогда
ТекущееДвижение.Значение.Записать(Ложь);
КонецЕсли;
КонецЦИкла;
Поставь точку останова на этом деле, посмотри на движения, удивись )
По взаиморасчетам то же самое, да и по всему остальному.
|
|