|
Почему в типовых при проведении практикуется принудительная запись регистров | ☑ | ||
---|---|---|---|---|
0
asady
13.02.12
✎
14:23
|
Сразу уточню для некоторых регистров.
С одной стороны понятно - легче потом код писать - тупо запросом вытянул сразу результат с учетом движений и всего делов. Но с другой стороны это заставляет нас записывать пустые наборы записей, а потом уже заполнять и записывать реальные наборы про оптимизацию записи этих регистров можно забыть :(( |
|||
1
DrShad
13.02.12
✎
14:26
|
что значит принудительная запись?
|
|||
2
asady
13.02.12
✎
14:37
|
(1) НЗ.Записать()
|
|||
3
Naumov
13.02.12
✎
14:39
|
Результат промежуточной обработки может понадобится в дальнейшем алогритме
|
|||
4
vde69
13.02.12
✎
14:41
|
в последних версия порядок записи регистров определяется на уровне платформы, этим все и объясняется. (сделано это для исключения дедлогов)
если не делать обнуление регистров, то где-то в середине проведения будет логически не понятно что еще лежит в регистрах а что нет. |
|||
5
Defender aka LINN
13.02.12
✎
14:43
|
(0) "это заставляет нас записывать пустые наборы записей, а потом уже заполнять и записывать реальные наборы" О_О
|
|||
6
asady
13.02.12
✎
14:44
|
(3) почему его не хранить во временных таблицах??
(4) вот именно - ведь если не записывать регистры принудительно, то и до окончания транзакции об этом заботиться и не надо. |
|||
7
asady
13.02.12
✎
14:44
|
(5) что не так?
|
|||
8
vde69
13.02.12
✎
14:46
|
(6) такой код
// в регистре лежит "1" рег1.записать() // записываем "2" рег.прочитать() // тут можно получить и "1" и "2" |
|||
9
ИС-2
naïve
13.02.12
✎
14:48
|
В УТ движение по регистру ПартииТоваровНаСкладах идут через регистр списанные товары.
В РАУЗе движения в рег. бух идут через учетЗатрат |
|||
10
Maxus43
13.02.12
✎
14:48
|
например чтоб в подписках не потереть уже сделанные движения - записывается принудительно... да много причин может быть
|
|||
11
Defender aka LINN
13.02.12
✎
14:49
|
(7) А что мешает сразу записать набор с нужными движениями?
|
|||
12
hhhh
13.02.12
✎
14:51
|
(7) там есть засада, при перепроведении, если поменяли дату документа на большую, а движения не чистить, они попадают в остатки. Потому что получается, они были раньше, чем момент документа.
|
|||
13
asady
13.02.12
✎
14:53
|
(11) а ты попробуй - убери в типовых УдалитьДвиженияРегистратор() в процедуре проведения
и сразу почувствуешь ответ на свой вопрос |
|||
14
asady
13.02.12
✎
14:54
|
(12) с этим согласен - но это как раз обходится - тупо проверяем дату - если изменилась в большую сторону то так и быть очистим движения...
|
|||
15
asady
13.02.12
✎
14:55
|
(10) подписки на события это другая песня - там всё понятно.
|
|||
16
hhhh
13.02.12
✎
14:56
|
(14) ну в БП 2.0 так и делается.
|
|||
17
asady
13.02.12
✎
14:57
|
(8) почему не делать так:
// в регистре лежит "1" ВремТабл.записать() // записываем "2" рег.прочитать() ВремТабл.Прочитать() // тут можно получить и "1" и "2" |
|||
18
vde69
13.02.12
✎
15:01
|
(17) хз, делать можно по всякому....
лично я-бы вообще в модуле проведения запретил оператор записи регистров, а делал-бы автоматом перед фиксацией транзакции |
|||
19
Sammo
13.02.12
✎
15:06
|
Возможно еще в связи со схемой работы с ОбменДанными.Загрузка = Истина.
В этом случае нет возможности записывать с режимом записи документа Проведение. А значит в случае необходимости нужно записывать документ, а затем отдельно вызвать запись движений регистров |
|||
20
asady
13.02.12
✎
15:13
|
(19) при Записи объекта с ОбменДанными.Загрузка = Истина
вообще движения не при чем. - они остаются без изменений и уже на совести программиста лежит обработка движений (очистка и/или перепроведение) |
Форум | Правила | Описание | Объявления | Секции | Поиск | Книга знаний | Вики-миста |