|
Функция СтрокаСоединенияИнформационнойБазы() | ☑ | ||
---|---|---|---|---|
0
rowvg
16.06.23
✎
14:31
|
Функция СтрокаСоединенияИнформационнойБазы() возвращает разные значения имени сервера в зависимости от того в каком контексте выполняется, клиентском или серверном, с полным доменным именем или просто локальное имя компьютера в домене.
Как - то это можно исправить? |
|||
1
Aleksey
16.06.23
✎
14:43
|
а надо это исправлять?
|
|||
2
Мультук
16.06.23
✎
14:44
|
(0)
Создать/открыть общий модуль с флагами "Сервер", "ВызовСервера" и добавить Функция ИстинноВернаяСтрокаСоединенияИнформационнойБазы() Экспорт Возврат СтрокаСоединенияИнформационнойБазы(); КонецФункции |
|||
3
rowvg
16.06.23
✎
14:45
|
Надо, в противном случае мы имеем дело с недетерминированным результатом работы функции
|
|||
4
rowvg
16.06.23
✎
14:47
|
(2) Сейчас так и сделано, но если код выполняется в фоновом потоке, то результат один, а если не в фоновом - то другой
|
|||
5
lodger
16.06.23
✎
14:52
|
(4) сейчас ты ввел 3й уровень.
так где какой? наклиенте насервере насервере (в фоновом потоке) |
|||
6
rowvg
16.06.23
✎
15:07
|
(5) в фоновом
в заголовке я неправильно написал, прошу прощения |
|||
7
Галахад
16.06.23
✎
15:17
|
Не зависит случайно от пользователя под которым служба запущена?
|
|||
8
lodger
16.06.23
✎
15:18
|
можно
а) написать функцию, которая откусывает доменные и днс префиксы\суффиксы после СтрокаСоединенияИнформационнойБазы б) прописать на клиенте полный путь к серверу ... ещё идеи? (7) в общем то да, строка соединения зависит от того как она прописана, даже если ты фоновое задание. |
|||
9
Fedor-1971
16.06.23
✎
15:21
|
(0) По факту, тебе возвращают актуальное имя сервера, если вдруг захочешь запустить 1С прямо в полученной локации (по умолчанию, для соединения используется текущий пользователь)
Так, то SRV может иметь несколько адресов через запятую Вот кусок справки: Для клиент-серверного варианта определены параметры: Srvr — имя сервера «1С:Предприятия» в формате: [<протокол>://]<адрес>[:<порт>], где: <протокол> – не обязателен, поддерживается только протокол TCP, <адрес> – имя сервера или IP-адрес сервера в форматах IPv4 или IPv6, <порт> – не обязателен, порт главного менеджера кластера, по умолчанию равен 1541. Например: server – указано имя сервера, остальные параметры используются по умолчанию; tcp://server:1641 – указан протокол, имя сервера и порт; 127.0.0.1:1541 – указан IP-адрес сервера (в формате IPv4) и порт; [fe10::c47b:90b7:fa32:a2fa%12] – указан IP-адрес сервера (в формате IPv6), при этом протокол и порт принимают значения по умолчанию. Для обеспечения бесперебойной работы клиентских приложений возможно указание нескольких адресов кластера. Для этого: Значением параметра Srvr может быть список адресов кластера через запятую. |
Форум | Правила | Описание | Объявления | Секции | Поиск | Книга знаний | Вики-миста |