Имя: Пароль:
1C
1C 7.7
v7: Загрузка XML - CODEBASE ERROR
0 sdemon72
 
11.04.14
19:57
Платформа: 1c77 7.70.0.27
Конфигурация ТиС 7.70.911
Версия ИБ - SQL
Загрузка из XML посредством обработки V77Imp.ert (слегка пиленной) из комплекта "Конвертация Данных".
Для работы с XML в обработке используется компонента v7plus.dll, объект "AddIn.XMLParser"

При загрузке случайным образом возникает следующая проблема - появляется окно с заголовком "CODEBASE ERROR" и сообщением:

Error #: -210
Unrecognized Field Name
N5

И единственной кнопкой "ОК".

Пока висит окно - висят все сеансы текущей базы данных.
Отладчиком перехватить ошибку не удается - нет признаков исполняющегося сеанса (не активны кнопки "остановить" и т.п.)

После закрытия окна загрузка продолжается как ни в чем не бывало, можно приостановить отладчиком, все сеансы оживают.

Как эту гадость победить? Очень достало - обмен выполняется регулярно и манагеры вижат как сучки.
1 mehfk
 
11.04.14
20:14
"Отладчиком перехватить ошибку не удается - нет признаков исполняющегося сеанса (не активны кнопки "остановить" и т.п.)"
Бери отладчик третьего уровня, если ничто другое не помогает.
2 Torquader
 
11.04.14
21:29
Если SQL, то можно смотреть, что в данный момент делает SQL-сервер.
3 sdemon72
 
21.04.14
16:12
Кажется, выловил где выскакивает егор - это метод "Выполнить" следующего запроса:

    ТекстЗапроса = "
    |УзелИБ             = Справочник.СоответствиеОбъектовИнформационныхБаз.УзелИнформационнойБазы;
    |ИдВнутренний     = Справочник.СоответствиеОбъектовИнформационныхБаз.УникальныйИдентификаторВнутреннейИБ;
    |ИдВнешний         = Справочник.СоответствиеОбъектовИнформационныхБаз.УникальныйИдентификаторВнешнейИБ;
    |ТипВнутренний     = Справочник.СоответствиеОбъектовИнформационныхБаз.ТипВнутреннейИБ;
    |ТипВнешний         = Справочник.СоответствиеОбъектовИнформационныхБаз.ТипВнешнейИБ;
    |Условие(УзелИБ = КодУзлаОбменаОтКого);
    |Условие(ИдВнешний = ТекИдВнешний);
    |Условие(ТипВнутренний = ТекТипВнутренний);
    |Условие(ТипВнешний = ТекТипВнешний);
    |Без Итогов;";

И что тут может быть не так?
4 sdemon72
 
21.04.14
16:15
Точнее даже вот этот запрос:

    ТекстЗапроса = "
    |УзелИБ             = Справочник.СоответствиеОбъектовИнформационныхБаз.УзелИнформационнойБазы;
    |ИдВнутренний     = Справочник.СоответствиеОбъектовИнформационныхБаз.УникальныйИдентификаторВнутреннейИБ;
    |ИдВнешний         = Справочник.СоответствиеОбъектовИнформационныхБаз.УникальныйИдентификаторВнешнейИБ;
    |ТипВнутренний     = Справочник.СоответствиеОбъектовИнформационныхБаз.ТипВнутреннейИБ;
    |ТипВнешний         = Справочник.СоответствиеОбъектовИнформационныхБаз.ТипВнешнейИБ;
    |ЭлементСоответствия     = Справочник.СоответствиеОбъектовИнформационныхБаз.ТекущийЭлемент;
    |Условие(УзелИБ = КодУзлаОбменаОтКого);
    |Условие(ИдВнешний = ТекИдВнешний);
    |Условие(ТипВнутренний = ТекТипВнутренний);
    |Условие(ТипВнешний = ТекТипВнешний);
    |Без Итогов;";
5 Torquader
 
21.04.14
16:18
(4) Так отдельно его прогони и посмотри, что происходит.
6 Ёпрст
 
гуру
21.04.14
16:28
(0) ищи в каком справочнике у тебя имя поле не такое, как описано в словаре.
7 Ёпрст
 
гуру
21.04.14
16:29
*имя полЯ..
8 sdemon72
 
21.04.14
17:03
(5) В том то и дело, что ошибка нерегулярная - специально не вызовешь. На этот запрос решил грешить потому что дважды отладчиком на нем остановилось при следующих действиях:
1. Увидел "Егора Кодебасова"
2. Запустил отладчик, открыл модуль обработки, нажал "Остановить"
3. Закрыл "Егора Кодебасова" - выскочило на строке с оператором "Выполнить"

Делаю в отладчике в просмотре значений "Запрос.Выполнить(ТекстЗапроса)" - возвращает 1 и все как бе пучком
9 sdemon72
 
21.04.14
17:04
(6) В файле словаря вообще строка "N5" не найдена
10 Torquader
 
21.04.14
17:05
(9) Там N5 и не может быть.
11 Torquader
 
21.04.14
17:06
Скорей всего, создаётся временный файл, но или места мало или что-то ещё с ним происходит. Если файл dbf, то можно предположить, что иногда его размер оказывается больше, чем может быть.
12 sdemon72
 
21.04.14
17:25
Буду пробовать наверное менять вышеуказанный запрос на прямой к qsl. Мало места - да, вполне может быть - база не маленькая
Компьютер — устройство, разработанное для ускорения и автоматизации человеческих ошибок.