Имя: Пароль:
1C
 
Как правильно ПолучитьОбъект() ?
↓ (Волшебник 07.10.2025 13:35)
program345, ldo6, Kigo_Kigo, Dен, agres, pasha_d, navigator, slad, Guk, kubik_live, reloc, Prog_man, AlexKimp, andryscha1c, X Leshiy, dmt, Builder, Федя Тяпкин, Silgis, Terrixus, Мультук, Garykom, Crusher, Timon1405, H A D G E H O G s, Irbis, DimVad, aka MIK, Chameleon1980, Сергиус, KJlag, rbcvg, Tarlich, Ватт, Хряк, craxx, RVN, ndrv, lEvGl, Волшебник, reg0303, YaFedor, dubraver, PR, vladko, Fedor-1971, Климов Сергей, Skylark, Anton1307, trdm, Sanchez_22, Largo, Wern, maxab72, hikkeu, Ivanich, formista2000, Eiffil123, ptiz, eddy_n, Sabron, denk32, BOOL, Михаил_, JeHer, fyn, Trinitron, crotnn, tir654, mikecool, alexxx961503, kupec, Homer, kostik79, Вадим33, Gun47, Alex33, trad, Hawk_1c, RomanYS, zippygrill, Илья1С, ads55, Asmody, comp2006, spiller26, avkynev, vicof, arsik, zak555, saaken, DemonShinji2, Умный Слоненок, Кир Пластелинин, takefive, Kobol, Галахад, phabeZ, JohnGilbert, DimR_71, InosDev, Eugene555, vv2304, Ботаник Гарден Меран, eRik, Bad_Aleks, МаленькийВопросик, nick86, laeg, paramedic, okmail, elka302, Бычье сердце, alexela, evorle145, Ageres, b_ru, Gattuso, Lite777888, Zapal, Vstur, Раб 1С, obs191, Ненавижу 1С, DiMel_77, s_newbi, vis, Олдж, Затейник, MM, Джордж1, KuznecovvIvan, Saval1986, p-soft, shuhard, U4Me2, toypaul, yanikolay, Чужой, АгентБезопаснойНацио, программистище, ReaLg, maxar, dergreche, kkkanjji, Amra, Mankubus, Lama12, Amfiaray, ИУБиПовиц, e053nk, Caesar, ADirks, K1RSAN, Гипервизор
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) Ты гуру ментор?
Проблемы невозможно решaть нa том же уровне компетентности, нa котором они возникaют. Альберт Эйнштейн