Получение реквизита объекта на клиенте. Как правильно?

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

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

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

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

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


Прошу совета, как делать правильно или как это решаете Вы?
По теме из базы знаний
Найденные решения
10. Поручик 4674 09.01.20 14:26 Сейчас в теме
(8) Да нахрена дополнительные функции? ОбщегоНазначенияУТВызовСервера.ЗначениеРеквизитаОбъекта и прочая можно применять сразу на клиенте. Возьмите в моду изучать матчасть и читать, что пишут.
lostcay; Somebody1; nano1c; user1817996; user1744698; romanbatler; debuger; Никулин Леонид; Night_Trap; RedIn; Alex_Iz; Xershi; OksanaM; myoker; hunter39; freeek; alex-l19041; HAMAZ; Геннадьевич; user1274438; +20 2 Ответить
21. user1274438 09.01.20 14:38 Сейчас в теме
(20)
&НаКлиенте
....
....
А = ПРЕДОПРЕДЕЛЕННОЕЗНАЧЕНИЕ("Перечисление.ХЗЧ.Абырвалг");
lostcay; RedIn; Alex_Iz; freeek; HAMAZ; Поручик; Геннадьевич; +7 Ответить
Остальные ответы
Подписаться на ответы Инфостарт бот Сортировка: Древо развёрнутое
Свернуть все
7. HAMAZ 7 09.01.20 14:15 Сейчас в теме
(1) Подавляющая часть велосипедов изобретена и создана. Называется Библиотека Стандартных Подсистем
2. mrChOP93 96 09.01.20 13:47 Сейчас в теме
ОбщегоНазначения.ЗначениеРеквизитаОбъекта() посмотри.
Veric; user1093435; alex-l19041; +3 Ответить
4. VmvLer 09.01.20 13:52 Сейчас в теме
правильно это делать запросом как в ОбщегоНазначения. чтобы РЛС лягалось в том числе.
саму объектную модель 1С обсуждать нет смысла.
5. Поручик 4674 09.01.20 14:00 Сейчас в теме
В Управлении торговлей 11 есть модули типа ОбщегоНазначенияУТ (ОбщегоНазначенияУТВызовСервера и т.п.). В них смотрите эти функции ЗначениеРеквизитаОбъекта.

То, что вы сделали, выкиньте из конфы.
6. Геннадьевич 18 09.01.20 14:14 Сейчас в теме
Спасибо за подсказки.
Я так понял, что без создания дополнительной функции с параметром &НаСервере не обойтись.
8. VmvLer 09.01.20 14:20 Сейчас в теме
(6) можно сохранять реквизиты элементов справочников в мхл файлы и сохранить эти файлы на клиенте.
потом читаем файл, ищем реквизит - главное, что все на клиенте чо.
broiderys; +1 Ответить
9. HAMAZ 7 09.01.20 14:24 Сейчас в теме
11. VmvLer 09.01.20 14:26 Сейчас в теме
(9) сервер не нагружен - профит.
13. HAMAZ 7 09.01.20 14:29 Сейчас в теме
(11) может в DBF еще на клиенте сохранять, чтобы сервер разгрузить?
doronin70; mrChOP93; +2 Ответить
14. VmvLer 09.01.20 14:32 Сейчас в теме
(13) в 7.7. так и есть, причем все работает как часики - 8-ка сырая просто еще.
16. HAMAZ 7 09.01.20 14:32 Сейчас в теме
(14)наркотики у вас сырые
mrChOP93; +1 Ответить
10. Поручик 4674 09.01.20 14:26 Сейчас в теме
(8) Да нахрена дополнительные функции? ОбщегоНазначенияУТВызовСервера.ЗначениеРеквизитаОбъекта и прочая можно применять сразу на клиенте. Возьмите в моду изучать матчасть и читать, что пишут.
lostcay; Somebody1; nano1c; user1817996; user1744698; romanbatler; debuger; Никулин Леонид; Night_Trap; RedIn; Alex_Iz; Xershi; OksanaM; myoker; hunter39; freeek; alex-l19041; HAMAZ; Геннадьевич; user1274438; +20 2 Ответить
12. VmvLer 09.01.20 14:29 Сейчас в теме
(10) автор не хочет вызов сервера, я предлагаю рабочее решение только с использованием клиента.
пишут тут всякое не вникая в задачу, еще бы вк преложили - ересь!
15. HAMAZ 7 09.01.20 14:32 Сейчас в теме
(12) а как же на клиент данные попадут, если автор пытается реквизит получить из другого объекта, который на сервере существует только???
не порите чушь.предлагать хранить данные в файлах на клиенте - за такое бан нужен
mrChOP93; Поручик; +2 Ответить
18. VmvLer 09.01.20 14:33 Сейчас в теме
(15) ну как всегда - художника обидеть может каждый.
17. Поручик 4674 09.01.20 14:32 Сейчас в теме
(12) Ну капец, как он много нагрузит вызовами, что аж грузанёт, не встанет. А вглянитесь в ПолучитьЗначениеРеквизитаНаСервере у автора.
19. user1274438 09.01.20 14:36 Сейчас в теме
(12) Да. Дуплите однократно копию базы с сервера через торрент каждому клиенту. и пилите свой механизм синхронизации у всех сразу с клиента на клиент. серверную копию обновлять раз в неделю/месяц ночью в выходные. сервер будет почти не нагружен в итоге. профит
22. VmvLer 09.01.20 14:39 Сейчас в теме
(19) 1С блокчейн наверняка будет в 8.4, а то я не представляю что можно будет писать в блогах разработчиков если не будет.
планировщики, чатики - кому это сейчас интересно
20. Геннадьевич 18 09.01.20 14:36 Сейчас в теме
(10)
Это то, что я хотел. Получать реквизиты без создания дополнительных функций.
Остаётся вопрос с получением ссылок на значение перечислений и поиска объектов "Найти".
21. user1274438 09.01.20 14:38 Сейчас в теме
(20)
&НаКлиенте
....
....
А = ПРЕДОПРЕДЕЛЕННОЕЗНАЧЕНИЕ("Перечисление.ХЗЧ.Абырвалг");
lostcay; RedIn; Alex_Iz; freeek; HAMAZ; Поручик; Геннадьевич; +7 Ответить
23. Геннадьевич 18 09.01.20 14:40 Сейчас в теме
25. GanjaGod 07.09.21 09:16 Сейчас в теме
(10) Зачем так сильно нервничать?
Во первых - как ты себе представляешь изучить такой объем данных, без 10-20 летнего стажа?
Во вторых - нет смысла использовать функции БСП или конфигурации, если это отдельная разработка (расширение, обработка и т.д.), т.к. может не подходить для другой конфигурации. Поэтому лучше всегда использовать язык программирования, а не цепляться за БСП, которая потом ещё и свяжет тебе руки.
Как по мне, так лучше не терять время на изучение матчасти, а просто использовать чистый язык программирования...
Kuzya_brаtsk; +1 Ответить
24. VmvLer 09.01.20 14:42 Сейчас в теме
Что ж, заседание кружка "Велик и К" считаю закрытым
Оставьте свое сообщение

Для получения уведомлений об ответах подключите телеграм бот:
Инфостарт бот