Типичный сценарий вызова этого метода - загрузка в базу DT и тем самым смена состава пользователей. Следующее подключение ИР адаптера к базе выдает ожидаемую ошибку аутентификации. Пользователь соглашается обновить имя пользователя. Адаптер вызывает ОбновитьПараметрыИнформационнойБазы(). Но иногда почему то пользователь не обновляется хоть 10 повторяй. При этом перезапуск Турбоконфа всегда решает проблему. Через некоторое время попытка повторить операцию тоже может быть успешной.
Такое ощущение, что где то кэшируется результат этого обновления параметров базы и новые параметры хотя и извлекаются из окна, но не попадают в свойство , не смотря на
Ссылка скрыта
#1, 11 ноября 2024 17:36
Опять такое случилось. Сам открыл и закрыл окно "О программе", не закрывая конфигуратор. После этого и метод ОбновитьПараметрыИнформационнойБазы() сработал. Явно проблема внутри него.
tormozit изменил статус на Открыто
#2, 20 декабря 2024 08:48
Вероятно родственная проблема https://turboconf.ru/Tasks/9929
tormozit изменил статус на Открыто
#3, ред. 20 декабря 2024 09:03
Описываю надежное воспроизведение.
Взять пустую базу с пользователем "1". Войти под ним в конфигуратор. Подключить адаптер.
Сменить имя пользователя на "2". Перезапустить конфигуратор. Подключить адаптер.
Он сообщит что пароль не подходит и вызовет функцию ОбновитьПараметрыИнформационнойБазы() и получит старое имя пользователя "1" и снова предложит ввести пароль. Можно повторять хоть 10 раз этот цикл.
Затем нажать "Отмена" в вопросе. Снова подключить адаптер. Теперь уже вызов функции ОбновитьПараметрыИнформационнойБазы() вернет правильное имя пользователя "2".
Вероятно это вызвано тем, что ты не обновляешь объект Конфигуратор.ПараметрыИнформационнойБазы в существующих экземплярах скрипта. Пока скрипт живет, в нем остается снимок старого состояния параметров базы. Функция ОбновитьПараметрыИнформационнойБазы() должна обновлять все объекты Конфигуратор.ПараметрыИнформационнойБазы.
Ссылка скрыта
#4, ред. 13 января 2025 16:42
Проблема актуальна. Опять 5 раз подряд прошел через сценарий (3). Надежно получаю не обновление имени пользователя. Видимо придется писать свой аналог метода Турбоконфа.
#5, 13 января 2025 22:17
(3) tormozit, не знаю, реально ли обновить ExternalContextData в OneScript, т.к. это передается при инициализации скрипта. Нужно спрашивать у разработчиков 1Script.
#6, 13 января 2025 22:26
Проверил, кстати свойства Конфигуратор.ПараметрыИнформационнойБазы.Пользователь доступны для записи.
Конфигуратор.ПараметрыИнформационнойБазы.Пользователь = "111";
Как минимум их можно обновить в скрипте после вызова ОбновитьПараметрыИнформационнойБазы, если я буду возвращать структуру после вызова функции.
#7, 13 января 2025 22:33
(6) bolsun, да, для меня такого решения будет достаточно
#8, ред. 13 января 2025 23:55
6.3.9145.3319
https://disk.yandex.ru/d/ay0Wg6IBTsxSxg
ТурбоКонф.ОбновитьПараметрыИнформационнойБазы() теперь возвращает структуру ПараметрыИнформационнойБазы или Неопределено, если обновить ну удалось.
#9, 14 января 2025 02:08
В общем по результатам обсуждения это решение самое простое. Поэтому будем использовать его.
#10, 16 января 2025 14:51
Это решение помогло?
#11, 16 января 2025 20:05
(8) bolsun, теперь вызов этого метода в конце своего выполнения выбрасывает исключение
#12, ред. 16 января 2025 22:58
(11) tormozit, странно это. Почему в контексте пропал Конфигуратор.
В этой версии другой метод ПолучитьПараметрыИнформационнойБазы(), возвращает параметры ИБ из О программе
https://disk.yandex.ru/d/ay0Wg6IBTsxSxg
#13, 16 января 2025 23:40
(12) bolsun, метод ПолучитьПараметрыИнформационнойБазы() выдает правильный результат. А ОбновитьПараметрыИнформационнойБазы продолжает выбрасывать то странное исключение.
#14, 16 января 2025 23:43
(13) tormozit, ОбновитьПараметрыИнформационнойБазы не нужно использовать, он не будет работать, т.к. из скрипта невозможно обновить глобальные переменные без костылей.
#15, 16 января 2025 23:51
tormozit изменил статус на Закрыто