|
зачем используют шапку документа? |
☑ |
0
hatsher
16.03.12
✎
11:44
|
Любая типовая процедура печати документа:
ЗапросШапка = Новый Запрос;
ЗапросШапка.УстановитьПараметр("ТекущийДокумент", ЭтотОбъект.Ссылка);
ЗапросШапка.Текст =
"ВЫБРАТЬ
| Номер,
| Дата,
| ДоговорКонтрагента,
| ДоговорКонтрагента.РасчетыВУсловныхЕдиницах КАК РасчетыВУсловныхЕдиницах,
| Контрагент КАК Получатель,
| Организация КАК Поставщик,
| Организация,
| СуммаДокумента,
| ВалютаДокумента,
| УчитыватьНДС,
| СуммаВключаетНДС
|ИЗ
| Документ.РеализацияТоваровУслуг КАК РеализацияТоваровУслуг
|
|ГДЕ
| РеализацияТоваровУслуг.Ссылка = &ТекущийДокумент";
Шапка = ЗапросШапка.Выполнить().Выбрать();
Шапка.Следующий();
А потом далее по тексту подставляется шапка.Получатель, шапка.Дата и пр. Зачем нужно так делать, почему не использовать просто организация, дата и пр ? ведь значения реквизитов Ссылка и Объект в этих процедурах всегда совпадают(незаписанный док нельзя вывести на печать)? Зачем нужно получать шапку, состоящую из значений реквизитов документа?
|
|
1
Господин ПЖ
16.03.12
✎
11:45
|
это меьше напрягает базу и сводит к 0 шанс получить рассогласованные данные
|
|
2
hatsher
16.03.12
✎
11:49
|
(1) забавно. если бы можно было печатать модифицированные документы, то рассогласование данных было бы как раз в этом случае. А новые документы не печатались бы вообще. А напрягать базу - не думаю, что будет хоть какая-нибудь разница в проиводительности
|
|
3
Ненавижу 1С
гуру
16.03.12
✎
11:50
|
(0) это кажется что совпадают, другой юзер смело может уже что-то изменить, пока вы чай пили с открытым документом
|
|
4
France
16.03.12
✎
11:52
|
(2) и зря не думаешь. в случае запроса одно обращение к базе.. если использовать реквизиты прямо - обращения равны количеству реквизитов.. глянь в скл версии в профайлер..
|
|
5
Ненавижу 1С
гуру
16.03.12
✎
11:54
|
(4) даже к реквизитам объекта? ))
|
|
6
Kashemir
16.03.12
✎
11:55
|
(5) С объектом то все понятно, очевидно (4) имел ввиду обращение по ссылке.
|
|
7
НЕА123
16.03.12
✎
12:38
|
(0)
при создании объекта нет данных. (кроме ссылки).
если надо при создании объекта существующего его печатать, то только запросом к базе.
непонятно, когда это нужно по-жизни...
перестраховка, скорее, но нормально..
|
|
8
okmail
16.03.12
✎
12:52
|
Немного не так. При обращении напрямую к реквизитам объекта в кэш читается весь объект целиком, вместе со всеми табличными частями.
При выборке данных запросом такой проблемы нет.
Все дело в производительности и попытке ускорить проведение документа, чтобы избежать длительных блокировок данных (проведение осуществляется в транзакции и на время проведения блокируются нужные данные).
|
|
9
okmail
16.03.12
✎
12:53
|
(5) Если к реквизитам объекта то да, идет обращение к базе. Если к реквизитам формы, то обращения к базе не будет.
|
|
10
Господин ПЖ
16.03.12
✎
15:42
|
печатать с реквизитов формы - такое кодируют по накурке обычно...
|
|
Требовать и эффективности, и гибкости от одной и той же программы — все равно, что искать очаровательную и скромную жену... по-видимому, нам следует остановиться на чем-то одном из двух. Фредерик Брукс-младший