|
Обмен БП - Рарус Автосервис - Падает в ошибку при запуске в ком для передаче синхронизацие | ☑ | ||
---|---|---|---|---|
0
aptomilov
28.12.23
✎
13:27
|
Привет форумчане!
С новым наступающим ! Который день бьюсь вы выгрузкой в сторону Автосервиса от Рарус. Ошибка которую выдает БП 3 на последней платформе (совместимость 8,3,21) ///////////////////////////////////////////// Ошибка при вызове метода контекста (ВерсияБиблиотеки) {ОбщийМодуль.ОбменДаннымиСервер.Модуль(8784)}:ВерсияБСППоВнешнемуСоединению = ВнешнееСоединение.СтандартныеПодсистемыСервер.ВерсияБиблиотеки(); {ОбщийМодуль.ОбменДаннымиСервер.Модуль(9475)}:ВыполнитьДействиеОбменаДляУзлаИнформационнойБазыПоВнешнемуСоединению(Отказ, {Обработка.ВыполнениеОбменаДанными.МодульМенеджера(41)}:ОбменДаннымиСервер.ВыполнитьОбменДаннымиДляУзлаИнформационнойБазы( {(1)}:Обработки.ВыполнениеОбменаДанными.ВыполнитьЗапускОбменаДанными(Параметры[0],Параметры[1]) {ОбщийМодуль.ОбщегоНазначения.Модуль(5998)}:Выполнить ИмяМетода + "(" + ПараметрыСтрока + ")"; {ОбщийМодуль.ДлительныеОперации.Модуль(1681)}:ОбщегоНазначения.ВыполнитьМетодКонфигурации(ИмяПроцедуры, ПараметрыВызова); {ОбщийМодуль.ДлительныеОперации.Модуль(1658)}:ВызватьПроцедуру(ВсеПараметры.ИмяПроцедуры, ВсеПараметры.ПараметрыПроцедуры, ПараметрыВыполнения); [ОшибкаВоВремяВыполненияВстроенногоЯзыка] по причине: Произошла исключительная ситуация (1C:Enterprise 8.3.22.2239): {ОбщийМодуль.СтандартныеПодсистемыПовтИсп.Модуль(46)}: Метод объекта не обнаружен (ПриДобавленииПодсистемы) [ОшибкаИспользованияВстроенногоЯзыка] ///////////////////////////////////////////////////// Исполнение происходит на стороне Автосервиса в режиме ком соединения а конкретно вот эта процедура ЧУТЬ НИЖЕ УКАЗАЛ НА КАКОЙ СТРОКЕ СОБСТВЕННО ВОПРОС ПОЧЕМУ аВТОСЕРВИС ЗАПУСКАЕТСЯ В ОБЫЧНОМ РЕЖИМЕ НОРМАЛЬНО А В РЕЖИМЕ КОМ НЕ ПРОХОДИТ ТУЖЕ САМУЮ ПРОЦЕДУРУ Функция ОписанияПодсистем() Экспорт МодулиПодсистем = Новый Массив; МодулиПодсистем.Добавить("ОбновлениеИнформационнойБазыБСП"); ИнтеграцияПодсистемБСП.ПриДобавленииПодсистем(МодулиПодсистем); ПодсистемыКонфигурацииПереопределяемый.ПриДобавленииПодсистем(МодулиПодсистем); ОписаниеКонфигурацииНайдено = Ложь; ОписанияПодсистем = Новый Структура; ОписанияПодсистем.Вставить("Порядок", Новый Массив); ОписанияПодсистем.Вставить("ПоИменам", Новый Соответствие); ВсеТребуемыеПодсистемы = Новый Соответствие; Для Каждого ИмяМодуля Из МодулиПодсистем Цикл //Если ИмяМодуля <> "ас_ОбновлениеИнформационнойБазы" и ИмяМодуля <> "ОбновлениеИнформационнойБазыБСП" тогда //// ИмяМодуля= "ЛицензированиеСлужебный" // продолжить ; //КонецЕсли; Описание = НовоеОписаниеПодсистемы(); Модуль = ОбщегоНазначения.ОбщийМодуль(ИмяМодуля); Модуль.ПриДобавленииПодсистемы(Описание); // ПАДАЕТ НА ВОТ ЭТОЙ СТРОКЕ КАК БУДТО СВОИ ЖЕ ПОДИСТЕМЫ И ЗАБЫЛ Если ОписанияПодсистем.ПоИменам.Получить(Описание.Имя) <> Неопределено Тогда ТекстОшибки = СтроковыеФункцииКлиентСервер.ПодставитьПараметрыВСтроку( НСтр("ru = 'Ошибка при подготовке описаний подсистем: |в описании подсистемы (см. процедуру %1.%2) |указано имя подсистемы ""%2"", которое уже зарегистрировано ранее.'"), ИмяМодуля, "ПриДобавленииПодсистемы", Описание.Имя); ВызватьИсключение ТекстОшибки; КонецЕсли; Если Описание.Имя = Метаданные.Имя Тогда ОписаниеКонфигурацииНайдено = Истина; Описание.Вставить("ЭтоКонфигурация", Истина); Иначе Описание.Вставить("ЭтоКонфигурация", Ложь); КонецЕсли; Описание.Вставить("ОсновнойСерверныйМодуль", ИмяМодуля); ОписанияПодсистем.ПоИменам.Вставить(Описание.Имя, Описание); // Настройка порядка подсистем с учетом порядка добавления основных модулей. ОписанияПодсистем.Порядок.Добавить(Описание.Имя); // Сборка всех требуемых подсистем. Для каждого ТребуемаяПодсистема Из Описание.ТребуемыеПодсистемы Цикл Если ВсеТребуемыеПодсистемы.Получить(ТребуемаяПодсистема) = Неопределено Тогда ВсеТребуемыеПодсистемы.Вставить(ТребуемаяПодсистема, Новый Массив); КонецЕсли; ВсеТребуемыеПодсистемы[ТребуемаяПодсистема].Добавить(Описание.Имя); КонецЦикла; КонецЦикла; // Проверка описания основной конфигурации. Если ОписаниеКонфигурацииНайдено Тогда Описание = ОписанияПодсистем.ПоИменам[Метаданные.Имя]; Если Описание.Версия <> Метаданные.Версия Тогда ТекстОшибки = СтроковыеФункцииКлиентСервер.ПодставитьПараметрыВСтроку( НСтр("ru = 'Ошибка при подготовке описаний подсистем: |версия ""%2"" конфигурации ""%1"" (см. процедуру %3.%4) |не совпадает с версией конфигурации в метаданных ""%5"".'"), Описание.Имя, Описание.Версия, Описание.ОсновнойСерверныйМодуль, "ПриДобавленииПодсистемы", Метаданные.Версия); ВызватьИсключение ТекстОшибки; КонецЕсли; Иначе ТекстОшибки = СтроковыеФункцииКлиентСервер.ПодставитьПараметрыВСтроку( НСтр("ru = 'Ошибка при подготовке описаний подсистем: |в общих модулях, указанных в процедуре %1, |не существует описание подсистемы, совпадающей с именем конфигурации ""%2"".'"), "ПодсистемыКонфигурацииПереопределяемый.ПриДобавленииПодсистемы", Метаданные.Имя); ВызватьИсключение ТекстОшибки; КонецЕсли; // Проверка наличия всех требуемых подсистем. Для каждого КлючИЗначение Из ВсеТребуемыеПодсистемы Цикл Если ОписанияПодсистем.ПоИменам.Получить(КлючИЗначение.Ключ) = Неопределено Тогда ЗависимыеПодсистемы = ""; Для Каждого ЗависимаяПодсистема Из КлючИЗначение.Значение Цикл ЗависимыеПодсистемы = Символы.ПС + ЗависимаяПодсистема; КонецЦикла; ТекстОшибки = СтроковыеФункцииКлиентСервер.ПодставитьПараметрыВСтроку( НСтр("ru = 'Ошибка при подготовке описаний подсистем: |не существует подсистема ""%1"" требуемая для подсистем: %2.'"), КлючИЗначение.Ключ, ЗависимыеПодсистемы); ВызватьИсключение ТекстОшибки; КонецЕсли; КонецЦикла; // Настройка порядка подсистем с учетом зависимостей. Для Каждого КлючИЗначение Из ОписанияПодсистем.ПоИменам Цикл Имя = КлючИЗначение.Ключ; Порядок = ОписанияПодсистем.Порядок.Найти(Имя); Для каждого ТребуемаяПодсистема Из КлючИЗначение.Значение.ТребуемыеПодсистемы Цикл ПорядокТребуемойПодсистемы = ОписанияПодсистем.Порядок.Найти(ТребуемаяПодсистема); Если Порядок < ПорядокТребуемойПодсистемы Тогда Взаимозависимость = ОписанияПодсистем.ПоИменам[ТребуемаяПодсистема ].ТребуемыеПодсистемы.Найти(Имя) <> Неопределено; Если Взаимозависимость Тогда НовыйПорядок = ПорядокТребуемойПодсистемы; Иначе НовыйПорядок = ПорядокТребуемойПодсистемы + 1; КонецЕсли; Если Порядок <> НовыйПорядок Тогда ОписанияПодсистем.Порядок.Вставить(НовыйПорядок, Имя); ОписанияПодсистем.Порядок.Удалить(Порядок); Порядок = НовыйПорядок - 1; КонецЕсли; КонецЕсли; КонецЦикла; КонецЦикла; // Смещение описания конфигурации в конец массива. Индекс = ОписанияПодсистем.Порядок.Найти(Метаданные.Имя); Если ОписанияПодсистем.Порядок.Количество() > Индекс + 1 Тогда ОписанияПодсистем.Порядок.Удалить(Индекс); ОписанияПодсистем.Порядок.Добавить(Метаданные.Имя); КонецЕсли; Для Каждого КлючИЗначение Из ОписанияПодсистем.ПоИменам Цикл КлючИЗначение.Значение.ТребуемыеПодсистемы = Новый ФиксированныйМассив(КлючИЗначение.Значение.ТребуемыеПодсистемы); ОписанияПодсистем.ПоИменам[КлючИЗначение.Ключ] = Новый ФиксированнаяСтруктура(КлючИЗначение.Значение); КонецЦикла; Возврат ОбщегоНазначения.ФиксированныеДанные(ОписанияПодсистем); КонецФункции |
|||
1
Лефмихалыч
28.12.23
✎
17:11
|
потому, что нет галочки "Внешнее соединение" у модуля, в котором лежит ПриДобавленииПодсистемы()
Или директивами эта функция исключена из контекста внешнего соединения |
|||
2
aptomilov
29.12.23
✎
07:54
|
(1)
Хорошее предположение спасибо но вот проблема на копии это отрабатывало а сейчас при любых танцах с бубнами не хочет нифига |
|||
3
aptomilov
29.12.23
✎
07:57
|
(1)
попробую сунуть через попытку пусть 2-3 отвалится просто да и все |
|||
4
Масянька
29.12.23
✎
08:13
|
(3) Послушай Михалыча.
У нас старючая УПП. При попытке записи через com падала ошибка (похожая). Помогло: флажок у модуля "Внешнее соединение" + директива #Если Не ВнешнееСоединение Тогда |
Форум | Правила | Описание | Объявления | Секции | Поиск | Книга знаний | Вики-миста |