Имя: Пароль:
1C
1С v8
Передача значений в любой модуль
0 grasshoper
 
08.10.24
17:47
Добрый вечер. Какие есть варианты передачи значения между разными модулями? Необходимо в одном модуле сохранить в некий буфер значение и прочитать его в другом модуле в рамках текущего сеанса. Передать значение нужно из процедуры тонкого клиента в процедуру сервера.

P.S. Добавление параметра в процедуру, новую константу, параметр сеанса не предлагать. Процедура очень глубоко вложенная.
1 grasshoper
 
08.10.24
17:49
Глобальные переменные тоже не предлагать
2 asady
 
08.10.24
17:50
(0) честный знак расковырял видимо...
3 grasshoper
 
08.10.24
17:50
(2) ЭДО
4 grasshoper
 
08.10.24
17:51
Пробовал ХранилищеОбщихНастроек, в тонком не завелось.
5 asady
 
08.10.24
18:01
(0) вариантов много
навскидку
1) значения в двоичные данные - адрес временного хранилища передаем.
2) значения в двоичные данные в хранилище значения регистра сведений - ключ записи передаем.
3) данные в запрос - передаем менеджер временных таблиц
4) запись во внешний источник данных - да хоть файл на сервере или покруче брокер сообщений заюзать
наверное еще можно придумать ... если еще подумать
6 PR
 
08.10.24
18:03
Почему не параметр сеанса?
7 PR
 
08.10.24
18:04
(5) Куда ты что собрался передавать?
8 ass1c
 
08.10.24
18:08
При наличии БСП
ОбщегоНазначения.ЗаписатьДанныеВБезопасноеХранилище
ОбщегоНазначения.ПрочитатьДанныеИзБезопасногоХранилища
ОбщегоНазначения.УдалитьДанныеИзБезопасногоХранилища
9 Волшебник
 
08.10.24
18:10
Регистр сведений
10 PR
 
08.10.24
18:10
(8) Причем здесь вообще безопасное хранилище?
Это всего-лишь регистр сведений, где хранятся всякие пароли в хранилище данных
11 ass1c
 
08.10.24
18:14
(10) - разве этим функционалом нельзя решить проблему описанную в (0)? Как один из неуказанных вариантов, для расширения кругозора автора. Ясен хер это не лучшее решение. Но имеет место быть.
"где хранятся всякие пароли в хранилище данных" - насколько я вижу там хранят не только пароли, а что угодно.
12 ejikbeznojek
 
08.10.24
18:16
Общий  модуль повторного использования?
По идее при вызове что-то записать, оно вызовет что-то прочитать с установкой значения переменной

А при следующих вызовах что-то прочитать возьмется из Кеша.



Перем ВремЗначение

Процедура Чтотозаписать(какое-то значение)
ВремЗначение = какое-то значение
Чтотопрочитать()


Функция чтотопрочитать()

Возврат ВремЗначение
13 PR
 
08.10.24
18:18
(11) Можно
Через курсы валют тоже можно, например
При этом еще момент, что сохранять что-то в хранилище значения, если это, например, ссылка на документ или число или дата и т. п. — избыточно и медленно
14 ass1c
 
08.10.24
18:29
(13). Да, я знаю. Недавно реализовывал один сложный алгоритм и через фейковую валюту в регистре сведений "КурсыВалют" хранил дату в периоде. Удобно было её потом получать в любом месте где захочу.
(12) да не плохо. "3.1. Для кеширования долго-вычисляемых и часто-используемых значений в процедурах и функциях рекомендуется применять модули с повторным использованием возвращаемых значений."
15 Волшебник
 
08.10.24
22:46
Вот вам идеи:
1. ХранилищеОбщихНастроек: Можно попробовать использовать общий механизм настройки, хотя иногда он может не работать должным образом в тонком клиенте.
2. Временные файлы: Сохранение данных во временные файлы на сервере. Этот способ может потребовать дополнительных проверок безопасности и синхронизации.
3. Регистр сведений: Использовать регистр сведений для временного хранения данных. Это позволит вам легко сохранить и затем извлечь данные.
4. Двоичные данные: Преобразование данных в двоичный формат и их временное хранение, например, в адресе временного хранилища.
5. Общий модуль: Импорт данных в общий модуль повторного использования, который будет вызывать другие модули для работы с данными.
6. Общее безопасное хранилище: Используйте ОбщегоНазначения.ЗаписатьДанныеВБезопасноеХранилище, если у вас внедрена библиотека стандартных подсистем (БСП).
16 grasshoper
 
09.10.24
16:15
По итогу сделал с использованием ХранилищеОбщихНастроек завернутый в процедуру общего серверного модуля с вызовом сервера. Всем спасибо за идеи.
17 H A D G E H O G s
 
09.10.24
20:09
(14) Классный ник!
18 Ненавижу 1С
 
гуру
09.10.24
20:12
Это вам к гению. Он выкладывал передачу параметров через справочник
19 DrZombi
 
гуру
10.10.24
06:16
(0) Писать лень.
Но вот вам ваш механизм передачи данных.
Просто и примитивен. (Чистить его только не забывайте)

https://infostart.ru/1c/tools/1718882/

Смотри на раздел:
2) - "Общие настройки формы (ГГЕ)" - Представляет из себя регистр сведений "Общие настройки формы (ГГЕ)", записи которого содержит список настроек от различных форм. Позволяет только посмотреть общий список и удалить лишние записи настройки. Добавление новых записей организуется "Разработчиком своих обработок" (программистом) и вручную не добавляются.