- 01
- 02
- 03
- 04
- 05
- 06
- 07
- 08
- 09
- 10
- 11
- 12
- 13
- 14
- 15
- 16
- 17
- 18
- 19
- 20
- 21
Запрос1 = Новый Запрос;
	Запрос1.Текст = "ВЫБРАТЬ
	|	Номенклатура.ЕдиницаИзмерения
	|ИЗ
	|	Справочник.Номенклатура КАК Номенклатура
	|ГДЕ
	|	Номенклатура.Ссылка = &ном";
	
	
	Запрос1.УстановитьПараметр("Ном", ЭлементыФормы.Товары.ТекущаяСтрока.Номенклатура);
	
	
	
	Результат1 = Запрос1.Выполнить();
	Выборка1 = Результат1.Выбрать();
	
	Пока Выборка1.Следующий() Цикл
		ед = выборка1.единицаизмерения;
	КонецЦикла;			
	
	ЭлементыФормы.Товары.ТекущаяСтрока.ЕдИзм= ед;
                                 
        
            "Простой" способ  подставить единицу измерения в табличную часть))
        
        
...
ед = выборка1.единицаизмерения.ссылка;
...
И всё это положить в "ПриВыводеСтроки".
Сравните, что будет в скуле, когда напишите так:
У вас еще и блокировка ляжет на объект....
А при такой реализации произойдет грязное чтение, которому пофиг на блокировку. Да и по скорости большой разницы не будет
Эдак, давайте, налепим сюда ещё проверку на количество выборки, на существование колонки "ЕдИзм" и прочего говна. А что, по скорости большой разницы не будет.
Кстати, что выдаст этот код, если номенклатура окажется пустой ссылкой?
В общем, не стоит мудрить, когда это того не стоит. В 90% случаев, через жопу получается только хуже.
ТекущаяСтрока.Номенклатура.ЕдиницаИзмере ния - это запрос к БД с получением объекта в память, со всеми его реквизитами.
То, как сделано - получение только ссылки.
Более короткий код не всегда эффективнее. Кто сомневается - пузырьковая сортировка против например Quicksort Чарльза Хоара.
А тянуть единственный мне нужный реквизит запросом - имеет смысл. Потому что платформа-то потянет все реквизиты.
В итоге проиграем 10 нс, а выиграем 1 мс и трафик и нагрузку на скуль.
А сеть, насколько я знаю, самый медленный элемент в цепи HDD/Память/Процессор/Сеть
Один пакет на 10 байт и один пакет на килобайт будут идти примерно одинаково. В общем-то, даже два-три пакета подряд будут идти чуть-чуть дольше, чем только один первый.
З.Ы. Но если эта ваша платформа вытягивает поля по одному, а не пачкой - тогда да, запрос всего объекта будет лагать как говно.
никак
Единственное, что нужно было сделать - вызвать стандартную функцию БСП ЗначениеРеквизитаОбъекта, а не лепить свою.