Вход | Регистрация
 
1С:Предприятие :: 1С:Предприятие 8 общая

Куда сохранить общую переменную с внешним подключением для доступа с разных модулей?

Куда сохранить общую переменную с внешним подключением для доступа с разных модулей?
Я
   pvase
 
01.10.21 - 10:24
Задача такая: Создать подключение к базе данных один раз за сеанс и потом его использовать в разных модулях на сервере. База отдельная, база может быть как MS SQL, так и PostgreSQL. Подскажите как такое можно реализовать?
Зачем это надо? Каждый раз создавать подключение - очень много времени занимает.
   ДенисЧ
 
1 - 01.10.21 - 10:25
Никак.
   ДенисЧ
 
2 - 01.10.21 - 10:26
Максимум - модуль с переиспользованием значений и проверкой/переподключением.
   pvase
 
3 - 01.10.21 - 10:26
Только внешний источник?
   pvase
 
4 - 01.10.21 - 10:27
Я про тот, что в метаданных определяется.
   ДенисЧ
 
5 - 01.10.21 - 10:27
(3) Так он тоже не очень-то сохранит подключения.
Представь себе кластер из N серверов, между которыми будет бегать твой сеанс...
   Guk
 
6 - 01.10.21 - 10:27
(0) если у тебя какое-то сом-соединение, то его можно хранить во временном хранилище. только живет оно там не долго...
   TormozIT
 
7 - 01.10.21 - 10:28
> Каждый раз создавать подключение - очень много времени занимает
Пробуй указать все параметры подключения явно
- порт
- протокол
Часто при установке соединения происходит перебор всех возможных значений.
   Василий Алибабаевич
 
8 - 01.10.21 - 10:29
(0) Сохрани в глобальную переменную на клиенте. Как в БПО.
   Ненавижу 1С
 
9 - 01.10.21 - 10:31
(8) точно, но клиент находится ХЗ где от той базы
   Василий Алибабаевич
 
10 - 01.10.21 - 10:31
+ (8) 
Врезка в модуль управляемого приложения из БПО
"
Перем глПодключаемоеОборудование Экспорт;// для кэширования на клиенте

"

внутри глПодключаемоеОборудование могут быть и натив и КОМ подключения. И вполне себе доступны из любой клиентской части.
   Василий Алибабаевич
 
11 - 01.10.21 - 10:33
(9) но клиент находится ХЗ где от той базы. И что?
   Garykom
 
12 - 01.10.21 - 10:34
(0) только выносом наружу из 1С
   Garykom
 
13 - 01.10.21 - 10:34
(12)+ особенность работы сервера 1С
   Guk
 
14 - 01.10.21 - 10:34
(10) теперь попробуй достать эту переменную из серверного модуля...
   Guk
 
15 - 01.10.21 - 10:35
+(14) о чем пишет автор...
   ДенисЧ
 
16 - 01.10.21 - 10:36
О! Нужно написать микросервис (обязательно на GO), который будет хранить подключение.
   Garykom
 
17 - 01.10.21 - 10:37
(16) это один из вариантов
лично я его применяю ибо он очень удобный, простой и шустрый
   Guk
 
18 - 01.10.21 - 10:37
короче, в (6) вариант абсолютно рабочий, у меня так нативная компонента для весов сидит и доступна из любых модулей программы, но её дергать не реже чем раз в 20 мин надо, иначе сдохнет...
   Garykom
 
19 - 01.10.21 - 10:39
(18) решение очень стремное и сильно ограниченное
в случае кластера из нескольких серверов 1С или файловой упс
   Мультук
 
20 - 01.10.21 - 10:43
(0) Главное, чтобы несколько пользователей/фоновых и т.п. одновременно не начали общаться через это подключение
Как бы ему не поплохело от этого
   Guk
 
21 - 01.10.21 - 10:44
(20) что мешает хранить адрес подключения в параметрах сеанса? тогда такой проблемы не будет...
   Garykom
 
22 - 01.10.21 - 10:46
(21) очередь как реализуешь?
   Guk
 
23 - 01.10.21 - 10:47
(22) очередь из чего?...
   Ненавижу 1С
 
24 - 01.10.21 - 10:53
(11) и доступа с клиента нет
   Garykom
 
25 - 01.10.21 - 10:53
(23) для чего
для того "чтобы несколько пользователей/фоновых и т.п. одновременно" одно подключение юзали
а очередь это дело разруливает
   Garykom
 
26 - 01.10.21 - 10:54
(25)+ в больших языках это называется пул соединений (1-много)
и пул клиентов может этот пул легко использовать не заботясь поднято ли и занято ли, просто время ответа меняется
   Guk
 
27 - 01.10.21 - 10:58
(25) автор пишет:
"Создать подключение к базе данных один раз за сеанс и потом его использовать"

и где здесь про то, что это соединение одновременно должны пользовать несколько пользователей?...
   Garykom
 
28 - 01.10.21 - 11:02
(27) Хороший программист думает наперед и предвидит затыки
   Guk
 
29 - 01.10.21 - 11:03
(28) ааа...
   Garykom
 
30 - 01.10.21 - 11:03
(28)+ а плохому это не надо
ему надо взять "готовый модуль" написанный хорошим и тупо его юзать
ну или слегка подучиться чтобы стать программистом получше
 
 
   Guk
 
31 - 01.10.21 - 11:09
(30) если хороший программист, в твоем понимании, это тот, кто делает задачу не соответствующую поставленной задаче, то по-моему это не хороший программист, а чудак какой-то, который попусту тратит время и деньги клиента/работодателя...
   pechkin
 
32 - 01.10.21 - 11:14
(31) думаешь ему начальник такую задачу поставил?
   Garykom
 
33 - 01.10.21 - 11:14
(31) а вот где надо остановиться в делании задачи это уже искусство с кучей опыта
говнокод тяп ляп и ХХП вполне допустимы на разовой задаче или для MVP
если же долгоиграющий прод с вероятным превращением в легаси то решение задачи на низком уровне означает что некто уже навострил лыжи и после него хоть потоп
   Garykom
 
34 - 01.10.21 - 11:15
(33) *низком уровне = хреновом
   Garykom
 
35 - 01.10.21 - 11:16
(33)+ хотя на практике часто "давай быстрей-быстрей" и заставляют говнокодить а потом удивляются техдолгу


Список тем форума
 
ВНИМАНИЕ! Если вы потеряли окно ввода сообщения, нажмите Ctrl-F5 или Ctrl-R или кнопку "Обновить" в браузере.