Идёт активная доработка УТ 11.4 под свои нужды через расширение конфигурации.
часто нужно обратиться к реквизиту объекта через току, но на клиенте этот реквизит не доступен. Приходится писать функцию из одной строки на сервере для получения нужного реквизита. Так получается много функций которые, по сути, практически ничего не делают и только засоряют код.

Как это делать "правильно"? Через функцию расположенную в этом модуле или есть стандартный механизм более удобный?

Я создал общий модуль, где у меня разные функции нужные мне и туда добавил 2 для решения этого вопроса.

Для получения реквизита конкретного объекта:

```1c
    // Возвращает значение реквизита переданного объекта базы
    //
    // Параметры:
    // ОбъектБазы - Ссылка - ссылка на объект
    // Реквизит - Строка - название реквизита значение которого нужно получить
    //
    Функция ПолучитьЗначениеРеквизитаНаСервере(ОбъектБазы, Реквизит) Экспорт
    Возврат ОбъектБазы[Реквизит];
    КонецФункции
```

для получения ссылки на перечисление или поиска функцией "Найти":

```1c
    // Возвращает значение реквизита переданного объекта базы СТРОКОЙ
    //
    // Параметры:
    // ВыполняемоеВыражениеСтрокой - Строка - ссылка на объект или выражение которое нужно выполнить на сервере строкой
    //
    Функция ВыполнитьВыражениеИзСтрокиНаСервере(ВыполняемоеВыражениеСтрокой) Экспорт
    РезультатВыполнения = ";
    Выполнить("РезультатВыполнения = " + ВыполняемоеВыражениеСтрокой);
    Возврат РезультатВыполнения;
    КонецФункции
```

Прошу совета, как делать правильно или как это решаете Вы?
---
Да нахрена дополнительные функции? ОбщегоНазначенияУТВызовСервера.ЗначениеРеквизитаОбъекта и прочая можно применять сразу на клиенте. Возьмите в моду изучать матчасть и читать, что пишут.
---
&НаКлиенте
....
....
А = ПРЕДОПРЕДЕЛЕННОЕЗНАЧЕНИЕ("Перечисление.ХЗЧ.Абырвалг");
---
Подавляющая часть велосипедов изобретена и создана. Называется Библиотека Стандартных Подсистем
---
ОбщегоНазначения.ЗначениеРеквизитаОбъекта() посмотри.
---
https://its.1c.ru/db/v8std#content:496:hdoc
---
правильно это делать запросом как в ОбщегоНазначения. чтобы РЛС лягалось в том числе.
саму объектную модель 1С обсуждать нет смысла.
---
В Управлении торговлей 11 есть модули типа ОбщегоНазначенияУТ (ОбщегоНазначенияУТВызовСервера и т.п.). В них смотрите эти функции ЗначениеРеквизитаОбъекта.

То, что вы сделали, выкиньте из конфы.
---
Спасибо за подсказки.
Я так понял, что без создания дополнительной функции с параметром &НаСервере не обойтись.
---
можно сохранять реквизиты элементов справочников в мхл файлы и сохранить эти файлы на клиенте.
потом читаем файл, ищем реквизит - главное, что все на клиенте чо.
---
шта????
---
сервер не нагружен - профит.
---
может в DBF еще на клиенте сохранять, чтобы сервер разгрузить?
---
в 7.7. так и есть, причем все работает как часики - 8-ка сырая просто еще.
---
наркотики у вас сырые
---
Да нахрена дополнительные функции? ОбщегоНазначенияУТВызовСервера.ЗначениеРеквизитаОбъекта и прочая можно применять сразу на клиенте. Возьмите в моду изучать матчасть и читать, что пишут.
---
автор не хочет вызов сервера, я предлагаю рабочее решение только с использованием клиента.
пишут тут всякое не вникая в задачу, еще бы вк преложили - ересь!
---
а как же на клиент данные попадут, если автор пытается реквизит получить из другого объекта, который на сервере существует только???
не порите чушь.предлагать хранить данные в файлах на клиенте - за такое бан нужен
---
ну как всегда - художника обидеть может каждый.
---
Ну капец, как он много нагрузит вызовами, что аж грузанёт, не встанет. А вглянитесь в ПолучитьЗначениеРеквизитаНаСервере у автора.
---
Да. Дуплите однократно копию базы с сервера через торрент каждому клиенту. и пилите свой механизм синхронизации у всех сразу с клиента на клиент. серверную копию обновлять раз в неделю/месяц ночью в выходные. сервер будет почти не нагружен в итоге. профит
---
1С блокчейн наверняка будет в 8.4, а то я не представляю что можно будет писать в блогах разработчиков если не будет.
планировщики, чатики - кому это сейчас интересно
---
Это то, что я хотел. Получать реквизиты без создания дополнительных функций.
Остаётся вопрос с получением ссылок на значение перечислений и поиска объектов "Найти".
---
&НаКлиенте
....
....
А = ПРЕДОПРЕДЕЛЕННОЕЗНАЧЕНИЕ("Перечисление.ХЗЧ.Абырвалг");
---
Это хорошо.
---
Зачем так сильно нервничать?
Во первых - как ты себе представляешь изучить такой объем данных, без 10-20 летнего стажа?
Во вторых - нет смысла использовать функции БСП или конфигурации, если это отдельная разработка (расширение, обработка и т.д.), т.к. может не подходить для другой конфигурации. Поэтому лучше всегда использовать язык программирования, а не цепляться за БСП, которая потом ещё и свяжет тебе руки.
Как по мне, так лучше не терять время на изучение матчасти, а просто использовать чистый язык программирования...
---
Что ж, заседание кружка "Велик и К" считаю закрытым