Получить реквизит элемента справочника по ссылке #709814


#0 by neetro
Тестовая конфигурация с нуля. Справочник "Номенклатура" содержит реквизит Цена (Число 15,2). Есть документ "Ввод остатков". В табличной части все банально, Номенклатура, Цена, Количество, Сумма. Пытаюсь в табличную часть документа подставить цену из реквизита Цена, не могу добраться до нее. В модуле формы документа использую событие ОбработкаВыбора. Вот код &НаКлиенте ВыбранноеЗначение.Цена = недопустимый реквизит, хотя ВыбранноеЗначение Тип СправочникСсылк.Номенклатура и значение есть в "Вычислить выражение"
#1 by х86
получай цену на сервере
#2 by Жан Пердежон
чтобы получить цену надо слазить в базу, а базы на клиенте нет
#3 by Господин ПЖ
клиент про реквизиты реквизитов не в курсе...
#4 by neetro
не дает создать обработчик на сервере (только без контекста) Заработало )) Спасибо!
#5 by neetro
, я уловил уже. Спасибо!
#6 by neetro
Или есть способ оптимальнеекрасивее? В одну процедуруфункцию?
#7 by Господин ПЖ
весь объект то читать зачем?
#8 by neetro
Какой? Цена? Цена это реквизит числовой
#9 by Господин ПЖ
и ради одной цифры ты еретично читаешь весь объект...
#10 by neetro
а как мне еще цифру получить как не через ссылку на объект?
#11 by Господин ПЖ
богоподобным запросом
#12 by Господин ПЖ
тфу, богоугодным
#13 by neetro
Запрос для того чтобы прочитать одну цифру оптимальнее?! О_о
#14 by kosts
Как думаешь, что делает система, когда просишь её получить цену в ВыбранноеЗначение.Цена?
#15 by Ndochp
А вот правда, чем лучше. Запрос (внутри) создастся и так и так, отбор будет одинаковый, на равенство ссылке. На клиент уйдет все равно только одна цифра. Дельта получается на объем передачи лишних реквизитов между СУБД и сервером. Там должны быть такие копейки, что меньше ошибки измерения.
#16 by fisher
В общем случае - да. При обращении через точку идет тот же самый запрос, только на все поля объекта, а не на одно. Зато выполняется кэширование объекта. При повторном обращении через точку к этому же объекту запроса уже не будет.
#17 by neetro
наверное не В а ИЗ ВыбранноеЗначение.Цена Хочешь сказать запрос и делает? Только по всему объекту?
#18 by Господин ПЖ
>Как думаешь, что делает система она убьет очередного котенка
#19 by AAlexandra
Посмотри, как в типовых обрабатывается изменение цены/количества/товара в ТЧ документа. Со всякими кэшированиями, чтобы по каждому чиху в базу не лазить, как в .
#20 by neetro
ок, я примерно понял
#21 by fisher
Далеко не всегда копейки. Объект может быть "тяжелым" - с большими табличными частями и хранилищами значений. А тянуться он будет весь, хотя нужен только один реквизит.
#22 by Господин ПЖ
>При повторном обращении через точку к этому же объекту запроса уже не будет скуль тоже данные кэшировать умеет
#23 by neetro
нету типовой у меня.... Тем более подозреваю там цены вообще по нормальному - регистр сведений
#24 by neetro
Попробую переделать на запрос. Спасибо всем за направление вектора моих мыслей в правильную сторону ))
#25 by Ndochp
О, точно. Правильно запросом, потому, что кэширование жрет ресурсов. Главное ведь проверял же недавно. (правда в толстом клиенте, и получение всего объекта. Идет в 5-10 раз быстрее, чем чтение одного поля через точку)
#26 by neetro
так получается же кеширование жрет ресурсы а кешируется после Запроса?
#27 by Ndochp
результат запроса в кеш не складывается, просто кладется в память. А получение реквизита ссылки через точку приводит к помещению данных объекта в хитросделанный кеш.
#28 by neetro
Ок
#29 by AAlexandra
ну.. типовую найти при желании - не проблема, было бы это желание. А вопрос в подходе. В типовой данные из ТЧ кэшируются в переменную, при изменении, например, количества, кратность упаковки берется не из объекта через точку, а из таблицы кэшированных значений. И только если там нет - лезем на сервер. Ну а так - дело ваше, конечно..
#30 by fisher
Ну, непосредственно по сабжевому моменту (выбор новой номенклатуры из списка), механизм кэширования значений в типовых ничем не поможет. И к этому механизму, если честно, у меня серьезные претензии. Какого хрена весь клиентский кэш постоянно гоняется на сервер??
#31 by fisher
По сабжу можно хитрее извратиться, через альтернативную форму выбора. Цену получать еще в динамическом списке формы, и возвращать её в документ при выборе вместе с номенклатурой.
#32 by neetro
Переделал &НаКлиенте Так?
#33 by neetro
я не очень силен в 8ке. Вот разбираюсь
#34 by neetro
понял. Спасибо!
#35 by neetro
в типовую я полезу когда буду делать "по правильному" с нормальными ценами (в регистре) и тп. Сейчас простой вопрос, зачем городить огород. Два ответа и все стало понятно.
#36 by neetro
Запрос то правильно сделал? (работает, но мало ли)
#37 by neetro
понял идею, интересно.
Тэги: 1С 8
Ответить:
Комментарии доступны только авторизированным пользователям

В этой группе 1С