Имя: Пароль:
1C
1С v8
КорректировкаДолга в УТ10.3
🠗 (mehfk 14.07.2017 10:25)
,
0 Dirk Diggler
 
12.07.17
15:11
Создал подписку на событие ОбработкаПроведения, написал кой-чаво. Не работает. Сбацал там тестовый запрос - оказывается, он не видит движений собственно источника событий. Как так-то? ДвиженияПоРегистрам() вызываются раньше обработчика подписки, почему не видно данных?



Запрос.Текст =
        "ВЫБРАТЬ
        |    ЗаказПокупателя.Ссылка,
        |    РасчетыСКонтрагентамиОстаткиИОбороты.Регистратор,
        |    РасчетыСКонтрагентамиОстаткиИОбороты.Сделка,
        |    РасчетыСКонтрагентамиОстаткиИОбороты.СуммаУпрПриход,
        |    РасчетыСКонтрагентамиОстаткиИОбороты.СуммаУпрРасход
        |ИЗ
        |    Документ.ЗаказПокупателя КАК ЗаказПокупателя
        |        ЛЕВОЕ СОЕДИНЕНИЕ РегистрНакопления.РасчетыСКонтрагентами.ОстаткиИОбороты(, , Регистратор, , ) КАК РасчетыСКонтрагентамиОстаткиИОбороты
        |        ПО (РасчетыСКонтрагентамиОстаткиИОбороты.Сделка = ЗаказПокупателя.Ссылка)
        |            И (РасчетыСКонтрагентамиОстаткиИОбороты.ДоговорКонтрагента = ЗаказПокупателя.ДоговорКонтрагента)
        |ГДЕ
        |    ЗаказПокупателя.Ссылка = &Заказ";
1 lodger
 
12.07.17
15:28
ОбработкаПроведения еще не скинула данные в БД, а ты запросом шарашишь по данным БД.
2 mehfk
 
12.07.17
15:28
Потому что движения еще не записаны.
3 lodger
 
12.07.17
15:29
ну и собсно, заголовок не правильный.
4 Dirk Diggler
 
12.07.17
16:01
(1) (2) Так. И чо делать? Нужно обработать то, что в базе оказывается после проведения.
5 John83
 
12.07.17
16:02
(4) запиши движения, да обрабатывай
6 Dirk Diggler
 
12.07.17
16:07
(5) а ДвиженияПоРегистрам() не записывает движения разве?
7 Михаил Козлов
 
12.07.17
16:19
(6) ДвиженияПоРегистрам(), если не ошибаюсь, формирует коллекцию движения, а запись в БД происходит по окончании проведения.
8 Dirk Diggler
 
12.07.17
17:29
(7) у меня модифицированная УТ, и я чо скажу. Что в куче подписок вроде работают запросы к БД.
Это раз. Далее, я прошел вглубь процедуры, и там в конце ВыполнитьРасход() ВыполнитьПриход() присутствуют. Они же пишут в БД?
А если нет, то что-то я тогда очкую записывать движения, как в (5) предлагается.
Чо делать-то?
9 Dirk Diggler
 
13.07.17
10:29
ап
10 lodger
 
13.07.17
10:31
(9) хочешь финт ушами?
держи:
1) получаешь таблицу движений по нужному регистру, выгружаешь в ТЗ.
2) запихиваешь это ТЗ в запрос и суммируешь с данными по БД.
3) ???
4) Профит!
11 Dirk Diggler
 
13.07.17
10:33
(10) Хорошо.
Но тогда у меня вопрос. Почему работают другие подписки? Где закономерность? А то вдруг я так сделаю, допустим, но после обновления платформы или конфы у меня движения станут доступны в запросе и так, и они будут задваиваться.
12 mehfk
 
13.07.17
12:21
(11) Потому что другие делал не ты.
13 Dirk Diggler
 
13.07.17
17:29
(12) Ох едрить какой ответ ))) Может кроме этого есть какие-то технические причины? )
14 Dirk Diggler
 
14.07.17
08:53
UP. Как понять, почему одни подписки вытягивают данные источника события из базы, а другие нет?
15 FIXXXL
 
14.07.17
09:44
(14) прям свежие вытягивают или ранее проведенные?
16 Dirk Diggler
 
14.07.17
09:55
(15) Свежие. Я вот думаю, может тут эттто. Режим проведения does matter?
17 Dirk Diggler
 
14.07.17
10:15
up
18 Dirk Diggler
 
14.07.17
16:23
up
Требовать и эффективности, и гибкости от одной и той же программы — все равно, что искать очаровательную и скромную жену... по-видимому, нам следует остановиться на чем-то одном из двух. Фредерик Брукс-младший