![]() |
|
Как правильно ПолучитьОбъект() ? ↓ (Волшебник 07.10.2025 13:35) | ☑ | ||
---|---|---|---|---|
0
program345
07.10.25
✎
07:10
|
доброго времени суток!
Запросом получаю незакрытые заказы, потом по позициям делаю отмены строк (по условию). У меня получается в цикле ДокОбъект = Выборка.Ссылка.ПолучитьОбъект(); Насколько критично получение объекта для производительности, если я не изменяю данный объект(когда условие не выполнилось)? |
|||
1
Chameleon1980
07.10.25
✎
07:39
|
получай объект только когда нужно
|
|||
2
Мультук
гуру
07.10.25
✎
07:39
|
(0)
Куча вопросов 1) Почему не используется типовой механизм закрытия ? В УТ/ЕРП он есть (на форме заказа гиперссылка "Закрыть") 2) Почему заранее, в запросе, нельзя вычислить, нужно что-то делать со строками в заказе или нет 3) Допустим - критично. И что вы будете делать ? |
|||
3
dubraver
07.10.25
✎
08:17
|
1. Запросом нужно отбирать только те документы, которые будешь изменять.
2. "Насколько критично получение объекта для производительности" - ПолучитьОбъект() делает запрос к БД и вытягивает все реквизиты объекта. Если у тебя миллионы документов, то лишние дергать из БД не нужно. Отбирай незакрытые заказы за период. |
|||
4
Eiffil123
07.10.25
✎
08:19
|
(0) если нет проблем со временем работы механизма - то не критично. Странный вопрос конечно
|
|||
5
Chameleon1980
07.10.25
✎
08:22
|
если автор хочет узнать много ли ресурсов тратится на получитьобъект - ответ - относительно да
|
|||
6
program345
07.10.25
✎
08:27
|
(2)
2) в запросе написал, тестирую. 3) я бы обошел ТЧ в цикле, и если хоть в одной строчке условие выполнилось, устанавливал бы переменную Модифицированность = Истина; Дальше условие Если Модифицированность Тогда ДокОбъект = Выборка.Ссылка.ПолучитьОбъект(); КонецЕсли; как то так. |
|||
7
Eiffil123
07.10.25
✎
08:40
|
(5) качественная оценка, не влияющая ни на что
(6) звучит логично |
|||
8
dubraver
07.10.25
✎
08:45
|
(6) "я бы обошел ТЧ в цикле" - если будешь через ссылку из документа получать реквизит, то получишь неявный запрос к БД.
Толку от такой оптимизации не будет. Будет куча лишних запросов к БД. Еще раз, напиши запрос который сразу вернет только те заказы, которые нужно модифицировать. |
|||
9
Eiffil123
07.10.25
✎
08:46
|
(8) ну может он ТЧ запросом получил отдельным
|
|||
10
dubraver
07.10.25
✎
08:49
|
(9) Запрос не возвращает ТЧ. Почитай документацию.
|
|||
11
Chameleon1980
07.10.25
✎
08:54
|
(7) отличная оценка
|
|||
12
Мультук
гуру
07.10.25
✎
09:19
|
(10)
Гм-хм. Как это не возвращает ? А это что ? Программный код, который перебирает данные шапки, а потом данные таб.частей показать ? ВЫБРАТЬ ЧекККМ.Ссылка КАК Ссылка, ЧекККМ.БезналичнаяОплата.( ВидОплаты КАК ВидОплаты, НомерСертификата КАК ПодарочныйСертификат, СуммаПогашенияСертификата КАК СуммаВВалютеСертификата, СуммаПогашенияСертификата КАК Сумма ) КАК ПодарочныеСертификаты ИЗ Документ.ЧекККМ КАК ЧекККМ ГДЕ ЧекККМ.Проведен = ИСТИНА И ЧекККМ.Дата МЕЖДУ &Дата1 И &Дата2 И ЧекККМ.Архивный = Истина |
|||
13
dubraver
07.10.25
✎
09:24
|
(12) ТЧ- это табличная часть прикладных объектов. Запрос не возвращает часть объекта. Не путайте выборку и часть объекта.
|
|||
14
Мультук
гуру
07.10.25
✎
09:28
|
(13)
А можно простой пример, когда данные тзТовары = ПолучитьЗапросом(ссылка); будут отличаться от ссылка.ПолучитьОбъект().Товары ? |
|||
15
Волшебник
07.10.25
✎
09:31
|
(14) У них даже методы разные:
|
|||
16
dubraver
07.10.25
✎
09:33
|
(14) ТЗТовары - ТаблицаЗначений
ссылка.ПолучитьОбъект().Товары - ТабличнаяЧасть. Это разные типы значений. Вы троллите? |
|||
17
Мультук
гуру
07.10.25
✎
09:36
|
(15)
P.S. а) Я серьезно. Я изо всех сил не вижу разницы в данных. И думаю, Мультук, может ты чего-то очевидного не понимаешь ? б) Ужас какой. А так ? Теперь вроде как с типами всё хорошо. тзТовары = ПолучитьЗапросом(ссылка); будут отличаться от тзТовары =ссылка.ПолучитьОбъект().Товары.Выгрузить() ? |
|||
18
Волшебник
07.10.25
✎
09:38
|
(17) Ну данные одни и те же, конечно. Но в общем случае это разные объекты, потому что типы разные.
|
|||
19
dubraver
07.10.25
✎
09:42
|
(17)
"Я изо всех сил не вижу разницы в данных." - ну лбом давится зачем, все вам понятно. ссылка.ПолучитьОбъект().Товары.Выгрузить() - вытянешь из базы весь объект и создашь переменную с ТЗ Товары. тзТовары = ПолучитьЗапросом(ссылка); - получишь только те данные, с которыми необходимо работать, не вытягивая лишние поля объекта. |
|||
20
PR
07.10.25
✎
09:50
|
Как ни ветка от ТС, так прогрессирующий тупизм какой-то
Притом, что сам ТС в (6) пишет, как нужно делать Нахрена ветка, фиг пойми |
|||
21
PR
07.10.25
✎
09:51
|
(17) Для тебя вообще что ли нет разницы, получить копию данных из объекта или объект для редактирования?
Так-то ТС про изменение данных, если че |
|||
22
Eiffil123
07.10.25
✎
09:57
|
(13) какая же софистика вместо реального обсуждения вопроса
|
|||
23
Мультук
гуру
07.10.25
✎
10:02
|
(21)
Для меня есть. А вот для ТС-а ? Откуда он берёт ТЧ, если ДокОбъект получает несколько позже ? (6) 3) я бы обошел ТЧ в цикле, и если хоть в одной строчке условие выполнилось, устанавливал бы переменную Модифицированность = Истина; Дальше условие Если Модифицированность Тогда ДокОбъект = Выборка.Ссылка.ПолучитьОбъект(); КонецЕсли; |
|||
24
dubraver
07.10.25
✎
10:06
|
(22) а какие ваши реальные предложения ТСу ? Я бы начал с прокачки базы у ментора.
|
|||
25
PR
07.10.25
✎
10:14
|
(23) Это другой вопрос, насколько он грамотно получает данные для анализа
Если тупо получает ТЧ, которую потом анализирует, то в принципе можно и не париться с анализом, нужно ли менять объект, просто всегда получать объект, в случае необходимости менять А вот если там какой-нибудь запрос, получающий сразу все необходимые данные, тогда другое дело |
|||
26
PR
07.10.25
✎
10:18
|
(24) И нахрен ментору нужно туловище из (0)?
Понаслушаются всяких западных волшебных словечек, ходят потом, бряцают ими к месте и не к месту, вместо того, чтобы матчасть учить |
|||
27
Eiffil123
07.10.25
✎
10:19
|
(24) в 4 ответил. пусть не занимается преждевременной оптимизацией
|
|||
28
Eiffil123
07.10.25
✎
10:21
|
(26) ментор - это инфоцыганин, но с более благозвучным названием?
|
|||
29
PR
07.10.25
✎
10:23
|
(28) Ментор — это человек, который помогает тебе принять правильное решение, наставник
|
|||
30
Eiffil123
07.10.25
✎
10:27
|
(29) и как мы раньше кодили без этого. жуть просто
|
|||
31
PR
07.10.25
✎
10:28
|
(30) Мы никогда не кодили без этого, у всех были свои наставники в свое время, у многих они и сейчас есть
|
|||
32
dubraver
07.10.25
✎
10:32
|
(26) Ментор - в моем понимании это челик (коллега, начальник, платный чел) который будет тебя херачить головой об клавиатуру, за то что ты базу не усваиваешь и не впитываешь знания на рабочих задачах. Когда превратишься в собачку павлова и реакция будет соответствующая, значит все в порядке, отложилось в подкорку.
|
|||
33
PR
07.10.25
✎
11:03
|
(32) К чему вот эта отсебятина?
Ментор — это более опытный наставник, который помогает тебе в сложных вопросах Будет ли он в процессе помощи херачить тебя мордой об клаву — это вы сами разберетесь |
|||
34
PR
07.10.25
✎
11:05
|
Миста — классический ментор
Многих в процессе помощи херачат об клаву, кстати |
|||
35
Eiffil123
07.10.25
✎
11:14
|
(34) просто херачат. без помощи и смс
|
|||
36
ldo6
07.10.25
✎
11:18
|
Менторы на Мисте есть? Почем час работы?
|
|||
37
ldo6
07.10.25
✎
11:24
|
(0) ВыбратьПоССылкам надо использовать.
|
|||
38
PR
07.10.25
✎
11:41
|
(35) Кому-то не в коня корм, да
Таким кажется, что их просто херачат |
|||
39
H A D G E H O G s
07.10.25
✎
12:32
|
(37) слышал звон...
|
|||
40
ldo6
07.10.25
✎
12:51
|
(39) Ты гуру ментор?
|
Форум | Правила | Описание | Объявления | Секции | Поиск | Книга знаний | Вики-миста |