Проблема с COM 1C, начиная с версий БСП 3.0.3
Приветствую! проблема: в любых версиях БСП, начиная с 3.0.3 был изменён контекст исполнения кода таких общих модулей, как "АдминистрированиеКластераCOM" и др.: контекст исполнения кода теперь только "Сервер" и "Внешнее соединение", а ранее был ещё и "Клиент".
И теперь у нас перестала работать, например типовая обработка из БСП "Блокировка работы пользователей": бьётся ошибка "-2147221005(0x800401F3): Недопустимая строка с указанием класса". Платформа, всё у нас прежнее, ничего не менялось кроме версии БСП. Любые Конфигурации с более ранними версиями БСП работают, по-прежнему, без каких-либо ошибок с COM 1С.
Версия платформы у нас 8.3.18.1363, MS SQL 2017.
Кто-нибудь может подсказать решение??
И теперь у нас перестала работать, например типовая обработка из БСП "Блокировка работы пользователей": бьётся ошибка "-2147221005(0x800401F3): Недопустимая строка с указанием класса". Платформа, всё у нас прежнее, ничего не менялось кроме версии БСП. Любые Конфигурации с более ранними версиями БСП работают, по-прежнему, без каких-либо ошибок с COM 1С.
Версия платформы у нас 8.3.18.1363, MS SQL 2017.
Кто-нибудь может подсказать решение??
По теме из базы знаний
Найденные решения
Остальные ответы
Подписаться на ответы
Инфостарт бот
Сортировка:
Древо развёрнутое
Свернуть все
(2) Те общие модули, которые работают с COM 1с теперь имеют контекст исполнения кода только "Сервер", а раньше был "КлиентСервер". И вот поэтому теперь у нас эта проблема! Ранее мы когда-то много работали при переносах данных с COM, и всегда у нас были аналогичные ошибки , если мы пытались создавать COM 1c на Сервере ( НаКлиенте всё работало всегда отлично
(6) Ошибку рождает модуль "АдминистрированиеКластераCOM": там есть вот такая функция:
Ошибка возникает на строке:
// Создает COM-объект V8*.ComConnector.
//
// Возвращаемое значение:
// COMОбъект.
//
Функция COMСоединитель()
Если БезопасныйРежим() <> Ложь Тогда
ВызватьИсключение НСтр("ru = 'Администрирование кластера невозможно в безопасном режиме'");
КонецЕсли;
Если ОбщегоНазначения.РазделениеВключено() Тогда
ВызватьИсключение НСтр("ru = 'В модели сервиса недопустимо выполнение прикладной информационной базой функций администрирования кластера'");
КонецЕсли;
Возврат Новый COMОбъект(ОбщегоНазначенияКлиентСервер.ИмяCOMСоединителя());
КонецФункции
ПоказатьОшибка возникает на строке:
Возврат Новый COMОбъект(ОбщегоНазначенияКлиентСервер.ИмяCOMСоединителя());
(7) Имя соединителя какое? Точно на сервере актуальная DLL зарегана? Раньше может у вас и с клиента работало, потому что админы на своих клиентских машинах регали актуальную DLL вместе с установкой платформы. А на сервере не было необходимости, "потому что все работало".
(10) Именно из той же платформы? Может там какая старая осталась, просто ей никто не пользовался... Мы вот тоже COM не пользуемся, и админы не регают DLL при смене платформы на серваках. Но вот тут нарисовали сервисную базу, которая по ночам запускает пакетные обновления на боевых базах - и пришлось регать DLL на сервере для управления тем же кластером.
Предполагаю, что в вашем случае то же самое - вам COM на сервере просто не нужен был, и он потерял актуальность. А блокировку пользователей осуществляли с клиентских машин техподдержки, где DLL актуальная. Ну и при смене БСП нарвались на то, что надо поддерживать актуальность и на нсервере.
Предполагаю, что в вашем случае то же самое - вам COM на сервере просто не нужен был, и он потерял актуальность. А блокировку пользователей осуществляли с клиентских машин техподдержки, где DLL актуальная. Ну и при смене БСП нарвались на то, что надо поддерживать актуальность и на нсервере.
Для получения уведомлений об ответах подключите телеграм бот:
Инфостарт бот