Имя: Пароль:
1C
 
Можно ли в файловой однопользовательской базе данных использовать УФ и переменные сервера?
,
0 Гений 1С
 
гуру
13.05.21
08:49
Хочу хранить на сервере COM-объект, чтобы постоянно его не создавать.
Если база однопользовательская файловая, понятно что клиент = сервер.
Можно как-то обойти логику УФ?
1 sikuda
 
13.05.21
08:58
Этот человек очень полезен - он поднимает нам настроение!
2 ДенисЧ
 
13.05.21
08:59
На сервере - нельзя
3 Garykom
 
гуру
13.05.21
09:01
(0) тонкий (или веб) клиент, файловый вариант же
через веб сервер
4 Провинциальный 1сник
 
13.05.21
09:06
Когда-то изучал тему хранения ком-соединения на сервере между вызовами. Реальных способов два - или "сериализация несереализуемого", или функция в модуле с повторным возвращением значений.
Первый способ, когда несериализуемый ком-объект помещается в структуру, и она уже сериализуется и хранится на сервере в параметрах сеанса. Работает только в случае существования одного рабочего процесса на сервере, при перезапуске рабочего процесса сериализованный ком-объект ожидаемо превращается в тыкву, это надо проверять и пересоздавать соединение.
Второй способ действует максимум 20 минут, это время жизни повторно возвращаемых значений, и это не настраивается. И та же проблема с единственностью рабочего процесса - если их несколько или они перезапускаются, то последующие будут выполнять функцию заново.
5 Garykom
 
гуру
13.05.21
09:09
(4) Все намного проще
Длительные фоновые задания
Но слипа в 1С нет, поэтому нужна ВК или еще какой изврат
И для файловой не подходит ибо там логика фоновых не такая как в серверной
Короче фоновое создается с ком-объектом и висит в спячке/ожидании, периодически каким то образом общаясь с другими модулями 1С
6 ДенисЧ
 
13.05.21
09:10
(4) "Второй способ действует максимум 20 минут"
20 минут - это в старой доброй тёпловой и ламповой 8.2...
7 Garykom
 
гуру
13.05.21
09:15
(0) Вынеси COM-объект наружу из 1С во внешний http-сеервис и юзай
И да устанавливать и запускать/стопать этот сервис можно прямо из 1С
8 Провинциальный 1сник
 
13.05.21
09:15
(5) Но в этом случае мы имеем фиксированную задержку при обращении к ком-объекту, связанную с периодом отработки в фоновом. Это нежелательно. Хочется реактивности взаимодействия, без лишних задержек..
9 Garykom
 
гуру
13.05.21
09:16
(8) см (7)
10 Провинциальный 1сник
 
13.05.21
09:19
(9) Это потребует влезания в код конфигурации, к которой мы хотим подключаться, что часто нежелательно или невозможно
11 Garykom
 
гуру
13.05.21
09:21
(10) В смысле?
12 Провинциальный 1сник
 
13.05.21
09:21
(11) Ну веб-сервис же надо поднимать в той базе, к которой мы хотим подключаться?
13 Kassern
 
13.05.21
09:25
(12) веб сервис можно вообще хоть на питоне поднять, а 1ской тупо к нему долбиться и получать данные.
14 Провинциальный 1сник
 
13.05.21
09:33
(13) А, ну так то конечно можно. Создать дополнительного внешнего агента, хранящего ком-объект и взаимодействующего с ним по запросам от другой базы. Но это лишние сложности, несущие лишние проблемы.
15 Garykom
 
гуру
13.05.21
09:36
(14) Ну да сложности но зато "постоянно его не создавать"
16 Гений 1С
 
гуру
13.05.21
11:01
как вариант запускать базу в толстом клиенте, но открывать управляемые формы, когда нужно. В толстом же можно открывать УФ?
17 polosov
 
13.05.21
11:07
(0) ВК на С# же!
18 mikecool
 
13.05.21
11:11
(16) разрешаю! но как - догадайся сам ))
19 Garykom
 
гуру
13.05.21
11:13
(16) не взлетит, типовые УФ в толстом глючат
20 Гений 1С
 
гуру
13.05.21
11:14
(19) тогда наверное нужно какое-то асинхронное выполнение, чтобы выполнение шло на клиенте, а когда нужен сервер, дергался сервер
21 Василий Алибабаевич
 
13.05.21
11:29
(16) "запускать базу в толстом клиенте, но открывать управляемые формы, когда нужно."
Это примерно как гланды нетрадиционным способом. Можно конечно, но есть вероятность получить канделябром от благодарных зрителей.
Почему бы не работать штатными средствами? Типа мы легких путей не ищем?
22 Гений 1С
 
гуру
13.05.21
11:35
(21) Гении легких путей не ищут
23 Василий Алибабаевич
 
13.05.21
11:37
(22) Ага. Понятно. Удачи. Кактуса повыше. Стены покрепче...
24 Гений 1С
 
гуру
13.05.21
11:51
(23) вообще это рассматривается в контексте темы:
25 Гений 1С
 
гуру
13.05.21
11:51
26 pechkin
 
13.05.21
11:52
так можно же в толстом клиенте уф запускать. там же нет передачи мутабельных
27 pechkin
 
13.05.21
11:52
не путать с толстым клиентом и открытием форм уф
28 Гений 1С
 
гуру
13.05.21
12:04
(26) я хочу использовать УФ а не ОФ
29 pechkin
 
13.05.21
12:05
(28) ну я про это и говорю
30 Garykom
 
гуру
13.05.21
12:09
(29) Так уже написал в (19) если типовые УФ формы если открывать в толстом то они глючат
Ибо проги когда их писали и тестеры проверяли только в тонком клиенте
Столкнулся впервые на Рознице с этим
31 pechkin
 
13.05.21
12:11
(30) какие типовые? там же на обработках все будет
32 Гений 1С
 
гуру
13.05.21
12:17
(31) а глюки там конфо-зависимые или платформо-зависимые?
33 pechkin
 
13.05.21
12:18
(32) конфо
34 Гений 1С
 
гуру
13.05.21
12:19
(33) погоди, а как обратиться к переменной модуля приложения в толстом клиенте из УФ, чего-то не пойму
35 Гений 1С
 
гуру
13.05.21
12:21
Хотя стоп, бесполезно, в 1С:Деньги у обычного пользователя нет прав на запуск в Толстом клиенте.
36 pechkin
 
13.05.21
12:23
(34)  в толстом клиенте уф нет разделения клиент-сервер.  на клиенте доступно ВСЕ
37 Гений 1С
 
гуру
13.05.21
12:23
(36) меня больше интересует на сервере в толстом клиенте. там доступны переменные модуля?
38 pechkin
 
13.05.21
12:23
правильно говорить "толстый клиент управляемое приложение"
39 pechkin
 
13.05.21
12:24
(37) в толстом клиенте не нужен сервер
40 Гений 1С
 
гуру
13.05.21
12:26
ух ты, прикольно. Поставил точку в &НаСервере ПриСозданииНаСервере в форме документа Расход.

ПараметрыПриложения    из модуля приложения - в толстом клиенте доступна переменная, в тонком нет.
Жаль, что нет прав на толстого клиента.
41 Гений 1С
 
гуру
13.05.21
12:28
Хотя нет, там можно дать права на толстого. Отлично, все супер.
42 Ненавижу 1С
 
гуру
14.05.21
09:59
(0) Попробовать использовать модуль с повторным использованием, установить ему время жизни - на время сеанса
43 Провинциальный 1сник
 
14.05.21
10:27
(42) "установить ему время жизни - на время сеанса"
Это не работает. Время жизни повторных значений максимум 20 минут, а по факту может быть меньше, если 1с посчитает что маловато свободной памяти.
44 Гений 1С
 
гуру
14.05.21
10:30
(42) я уже нашел решение, спасибо. решение: запуск толстого клиента.
К тому же в повторных значениях подозреваю можно возвращать только сериализируемые значения, а не COM-объекты
45 pechkin
 
14.05.21
11:08
откуда у него модули