#0
by Humandra
Подскажите, кто-то сравнивал ПредопределенноеЗначение("Перечисление.Значение") с просто Перечисление.Значение? С учетом того, что Перечисление - это просто таблица в базе данных, обращаться к его значениям явно надо с осторожностью. В описании метода ПредопределенноеЗначение сказано, что полученное значение кэшируется. Т.е. по идее не должно быть обращений к базе данных? А при Перечисление.Значение? Не кешируется? Или тоже кэшируется?
#3
by Buster007
вообще-то это сделалось для того, чтобы не писать свои собственные процедуры, которые получают значения перечисления, справочников и т.д. на клиенте.
#5
by Buster007
вернее, не писать серверные функции для получения значений, которые нужны нам на клиенте)
#7
by mirosh
"С учетом того, что Перечисление - это просто таблица в базе данных, обращаться к его значениям явно надо с осторожностью. " Ужас, целая таблица в базе данных).
#9
by vmv
+ ага и Вообще-то в контесте 8.2 и УФ метод ПредопределенноеЗначение("Перечисление.Значение") вызванный из клиентского метода делает обращение к серверу, т.е. "портит" клиентский метод, дергая сервак. Когда мне в модуле формы необходимо получать, не вызывая сервер, какие-то ссылочные значения(перечисления, группы справочника и т.д.), то я поступаю так 1. в метод ПриСозданииНаСервере вставляю служебный серверный метод модуля формы СерверИнициализацияТаблицыСсылочныхТипов 2. На форме создаю реквизит типа ТаблицаЗначений с двумя колонками "Ключ" и "Значение" 3. В теле СерверИнициализацияТаблицыСсылочныхТипов произвожу инициализацию всех необходимых мне в модуле форме ссылочных типов 4. Пишу еще один метод КлиентПолучитьСсылкуПоКлючу После этого я могу 1. получать в чистом клиентском методе ссылочные типы не дерагая сервер 2. в любой момент В ОДНОМ МЕСТЕ могу расширить необходимые мне значения ссылок Кто поступает по другому - тот тупой и жадный 1С-к)
#10
by Humandra
Вот пока 1С-ники будут иронизировать над тем, что, к примеру, неявно в цикле будет на каждое обращение запрос к БД лезть, 1С и будет работать только на 10 пользователей. С обычными запросами, даже повторно выполняемыми с теми же параметрами, запрос на сервер все равно уходит. Ну, конечно кэш самой СУБД немного поможет тут, но не более. С перечислениями пока непонятно. Меня интересует не с точки зрения обращения клиента к серверу, а с точки зрения обращения сервера приложений к серверу СУБД.
#11
by Humandra
Ладно, пошла бороть лень и писать тестовый пример, раз никто до меня не интересовался :) О результатах сообщу :)
#12
by vmv
метод ПредопределенноеЗначение(...) производит обращение к СУБД, посему должен быть использован только тогда когда это обращение нужно всего раз. во всех остальных случаях на клиенте должна сущность, которая хранит необходимые для клиента ссыылки и клинет может их получить без обращения к СУБД.
#13
by vmv
довесок значения перечесления невозможно модифицировать штатными средства платформы с уровня приложения, посему страх автора "Перечисление.Значение ...обращаться к его значениям явно надо с осторожностью" скорее вызван молодой луной и магнитной бурей
#16
by vmv
и варвда один, ну все-таки один, а так при создании на сервере все в одном флаконе затулил в таблицу формы и не паришься. тем более что писать конструкции ПредпорпделенноеЗначение("Спрвачник.МаиТаври.ГруппаМае") муторно и нудно мне приятнее писать ПолучитьСсылкуПоКлючу("ГруппаМае") и плевать на периименование объектов или реквизитов, все что нужно поправить - все в одном месте, а не расбросано черти где
#17
by Humandra
Вы не поняли. С осторожностью - не потому что не доверяю полученному результату. А потому что от запроса к СУБД, выполняемого на каждую итерацию из нескольких тысяч и десятков тысяч, если не миллионов, явно серверу СУБД не получшеет. И я хотела убедиться, что этих миллионов запросов - нет. Теперь докладываю. Действительно, 1С кэширует запросы к перечислениям. Сделала такую тестовую процедуру: После первого обращения к перечислению, даже при повторном вызове метода, обращение идет только к таблице Справочника. Перечисление не перезачитывается, и это прекрасно.
#18
by Humandra
Меня просто смутило, почему в типовых часто пишут ПредопределенноеЗначение("Перечисление.Значение") ... в общем модуле. Похоже, что прав , и это только для того, чтобы использовать этот метод и на сервере, и на клиенте.
Тэги: 1С 8
Ответить:
Комментарии доступны только авторизированным пользователям
Похожие вопросы 1С
- РАРУС vs ФОРЕС vs AXELOT vs ITOB
- OLE vs xml vs text vs другое
- v7: SAS vs SATA vs SSD Что выбрать?
- 8.2 Не работает ПредопределенноеЗначение на Postgres 8.3 (1С 8.2.10.77)
- Измерение VS Ресурс VS реквизит в регистре сведений
- Ошибка SQL Fld11475 ... значение не может принимать значение Null
- MySql vs Firebird vs PostgreSQL
- Jdeveloper vs Eclipse vs NetBeans
- SERVER 2008R2 vs 2012R2 vs 2016
В этой группе 1С
- 1С КПП в платежном поручении задолбало в конец...)))
- Что значит красная точка в реализации тиу
- Как передать параметр в виртуальную таблицу?
- Никто не сталкивался: подвисает 1С при печати если не задан принтер по умолчанию
- v8 БГУ Заполнение формы 0503737 за 1 кв. 2012 г.
- Драйвер для эмуляции COM порта через USB
- СКД: Выражение представления
- v7: Исправление счет-фактура выданного прочерки в значениях.
- Как убрать остатки на начало периода?
- УТ 11 Печать счета из заказа клиента
- Размер таблиц в файловой базе
- Блокировка соединений с информационной базой - нет завершения сеанса админа
- Как узнать время простоя в 1С ?
- (ЗУП 2.5.45.2) Начисляется оклад во время отпуска по уходу за ребенком
- v7: Комплексная не формирует проводки по дополнительному начислению.
- Значение элемента справочника в условии запроса в СКД
- Регистр Продажи себестоимость УПП
- 8.2.15.301 Клиент-сервер. Ошибка формата потока.
- (ЗУП 2.5.45.2) Расчетный листок из начисления зп - не вся начисления
- БП. Не заполняются счета учета расчетов с контрагентами.