Форумы » Вопросы и ответы по интеграции »
"Плохой тип переменной" при загрузке площадок
Добавил(а) Михайлов Михаил около 5 лет назад
Попытался обыскать форум, видел, сообщения про плохой тип, но стало так тяжело пытаться понять в чем типовая причина "типа"
Поэтому решил спросить отдельно, что бы потом все могли легко найти.
Обработке обмена нажимаю "Выборочно загрузить площадки ..." (загрузить все площадки работает)
Получаю:
Запрос GetBusinessEntityByGuid [ fe1992cd-218a-11e2-a69b-b499babae7ea ] Отправляем запрос b81b2bda-ca88-4732-8f5a-405e07155660 Загрузка XML-файла: C:\1c\ОП_2018 Школы\Extforms\Vetis\logs\b81b2bda-ca88-4732-8f5a-405e07155660_result.xml Меркурий_ГлобальныйМодуль::ЗагрузитьПлощадкиТЗ(Справочник ХС= 1 ) : Плохой тип переменной guid = activityLocation.selectSingleNode("ent:enterprise").selectSingleNode("bs:guid").text; {C:\1c\ОП_2018 Школы\extForms\Vetis\Меркурий_ГлобальныйМодуль.ert(3216) } Меркурий_ГлобальныйМодуль::ЗагрузитьПлощадкиТЗ(Справочник ХС= 1 ) : Плохой тип переменной guid = activityLocation.selectSingleNode("ent:enterprise").selectSingleNode("bs:guid").text; {C:\1c\ОП_2018 Школы\extForms\Vetis\Меркурий_ГлобальныйМодуль.ert(3216) }
Ответы (8)
RE: "Плохой тип переменной" при загрузке площадок - Добавил(а) Pentyukhov Sergey около 5 лет назад
Странно, у меня все отработало.
RE: "Плохой тип переменной" при загрузке площадок - Добавил(а) Михайлов Михаил около 5 лет назад
У меня тоже раньше прекрасно работало, но потом что-то сломалось, не пойму где.
И еще при создании площадок тоже стало срабатывать
Запрос CreateEnterprise [ 1324(2419)дс ] Отправляем запрос 6f9b6d9f-cdfe-4c63-b5d0-128631d10dd9 Ответ: [b4f4a4c5-52d7-4524-86c0-56248d60b7b5] [ACCEPTED] Отправляем запрос результата [b4f4a4c5-52d7-4524-86c0-56248d60b7b5] Загрузка XML-файла: E:\1C_bases\ОП_2019_2 Сады\ExtForms\Vetis\logs\b4f4a4c5-52d7-4524-86c0-56248d60b7b5_result.xml enterprise=objDom.selectSingleNode("//merc:enterprise") ; {E:\1C_BASES\ОП_2019_2 САДЫ\EXTFORMS\VETIS\ВСД_СОЗДАТЬПЛОЩАДКУ.ERT(255)}: Плохой тип переменной
Может причина та же?
RE: "Плохой тип переменной" при загрузке площадок - Добавил(а) Михайлов Михаил около 5 лет назад
Пока занимаюсь разбирательством, вот нарыл:
Мне из меркурия приходит файл то ли с пустыми площадками, не пойму.
В общем много секций "<ent:enterprise/>" без данных.
обработка пытается из таких секций получить значения тегов "bs:guid", но так как их нет, получает ошибку !!!!
костыль конечно понятно как сделать, не ясно почему секции пустые отдает меркурий.
Может конечно это связанно с удаление площадок.
+-<ent:activityLocation> <ent:enterprise/> </ent:activityLocation>+ +-<ent:activityLocation> <ent:enterprise/> </ent:activityLocation>+ *-<ent:activityLocation> -<ent:enterprise> <bs:uuid>0bf1501c-df93-43c5-9206-6a4535b8a0b8</bs:uuid> <bs:guid>eb09911a-a9b8-4b7a-88d3-1d20b0c17048</bs:guid> </ent:enterprise> </ent:activityLocation>*
RE: "Плохой тип переменной" при загрузке площадок - Добавил(а) Михайлов Михаил около 5 лет назад
Михайлов Михаил писал(а):
У меня тоже раньше прекрасно работало, но потом что-то сломалось, не пойму где.
И еще при создании площадок тоже стало срабатывать[...]
Может причина та же?
Тут нашел другую причину (разработчик посмотри):
Обработка "ВСД_СОздатьПлощадку.ert"
Процедура "ПолучитьОтветПлощадка"
Результат = ГМ.ПолучитьРезультатСервер( applicationID ); Сообщить("Загрузка XML-файла: "+ГМ.Компонента.LogFilename); objDom=СоздатьОбъект("MSXML2.DOMDocument"); objDom.load(ГМ.Компонента.LogFilename); Если ГМ.НайтиОшибки()>0 Тогда Возврат; КонецЕсли; enterprise=objDom.selectSingleNode("//merc:enterprise") ; guid = enterprise.selectSingleNode("bs:guid").text; uuid = enterprise.selectSingleNode("bs:uuid").text; name = enterprise.selectSingleNode("ent:name").text; active = enterprise.selectSingleNode("bs:active").text;
Результат не подвергается сомнению.
То есть ожидается, что меркурий сразу даст ответ и ответ можно разбирать на теги (//merc:enterprise, bs:guid" итд)
Но вот мне меркурий отвечает не моментально и сначала приходит ответ "IN_PROCESS" то есть в очереди или как-то так.
Соответственно когда мне сказали "ждите" я пытаюсь найти в ответе инфу(//merc:enterprise, bs:guid" итд), ну и ясно её там нет.
В других подобных местах посмотрел, взял алгоритм ожидания:
Результат = ГМ.ПолучитьРезультатСервер( applicationID ); Сообщить("Результат = "+Результат); Для А=1 По 10 Цикл Если (Результат="IN_PROCESS") Тогда Результат = ГМ.ПолучитьРезультатСервер( applicationID ); КонецЕсли; КонецЦикла; Сообщить("Загрузка XML-файла: "+ГМ.Компонента.LogFilename); objDom=СоздатьОбъект("MSXML2.DOMDocument"); objDom.load(ГМ.Компонента.LogFilename); Если ГМ.НайтиОшибки()>0 Тогда Возврат; КонецЕсли; enterprise=objDom.selectSingleNode("//merc:enterprise") ; guid = enterprise.selectSingleNode("bs:guid").text; uuid = enterprise.selectSingleNode("bs:uuid").text; name = enterprise.selectSingleNode("ent:name").text; active = enterprise.selectSingleNode("bs:active").text;
Таким образом удалось дождаться ответа и сделать все работоспособно.
RE: "Плохой тип переменной" при загрузке площадок - Добавил(а) кб99 Синявский Филипп около 5 лет назад
Добрый день.
Такую проблему пока не встречал - наверно ни у кого нет так много площадок.
Хорошо, добавлю.
RE: "Плохой тип переменной" при загрузке площадок - Добавил(а) Михайлов Михаил около 5 лет назад
Почему много.
Я вроде создаю одну площадку. И потом наверное занятость меркурия не связана с количеством моих площадок?
Это кстати у меня давно началось.
RE: "Плохой тип переменной" при загрузке площадок - Добавил(а) Михайлов Михаил около 5 лет назад
Филипп, если можно еще посмотрите "Меркурий_ГлобальныйМодуль:ЗагрузитьПлощадкиТЗ" - с чего вся тема началась.
Я же там костыль поставил: (Если ПустоеЗначение(activityLocation.selectSingleNode("ent:enterprise") ...........)
Для i1 = 0 По activityLocationList.length - 1 Цикл activityLocation=activityLocationList.item(i1); Если ПустоеЗначение(activityLocation.selectSingleNode("ent:enterprise").text)=1 Тогда Продолжить; КонецЕсли; guid = activityLocation.selectSingleNode("ent:enterprise").selectSingleNode("bs:guid").text; ЗагрузитьПлощадкуПоGuidТЗ(guid, ХС, тзПлощадки); КонецЦикла;
Мне меркурий некоторые секции "ent:enterprise" присылает пустые.
А то мне придется каждый раз ГМ менять.
Заранее СПС.
RE: "Плохой тип переменной" при загрузке площадок - Добавил(а) кб99 Синявский Филипп около 5 лет назад
это я пытаюсь шутить :)
Да, тестовый сервер отвечает мгновенно, а рабочий иногда задумывается...
поправил.