Y de nuevo Hola!
Вопрос возможно банальный. И требует понимание такого явления, как TerraSoft.
Есть карточка редактирования, на ней есть поле - Источник продаж.
"Его нужно поменять у имеющейся записи". После выбора нужного источника (двойной клик, либо кнопка OK) выбрасывается исключение:
Класс исключения EOleExeption
Сообщение об ошибке: Неопознанная ошибка
После повторного нажатия окно закрывается, но результат нулевый, то что должно произойти по логике не происходит.
Нравится
Откуда происходит вызов окна выбора источника? Где это прописывается в окне редактирования карточки?
это значит, что вам нужно включить дебаггер и посмотреть что и где не срабатывает.
F5 в скрипте, верно?
Если да, то в коде прописываю, но после запуска клиента, и вызова соответствующего кода, ничего не происходит.
Буду рад за маленькую инструкцию и по этому вопросу.
Yegor, по отладке ознакомьтесь с статьями:
1. http://www.community.terrasoft.ru/forum/topic/7007#comment-29952
2. http://www.community.terrasoft.ru/blogs/7804
C Debagger'ом разобрался. Спасибо.
На поверхность всплыл факт, не отработки метода Dataset.Append() ( Вечная проблема =) ).
Причина пока не ясна, Dataset, настроен соответствующим образом http://www.community.terrasoft.ru/forum/topic/10595, как описывал Дмитрий.
Первое что пришло в голову - это пересоздать Dataset =)
Галки все стоят (кроме "Справочник"). Так же указано "Первичное поле для отображения", и ключевое поле. Вроде бы ничего не забыл...
Код:
try { if (Dataset('StatusID') == osDone || Dataset('StatusID') == osCanceled || Dataset('StatusID') == osExport) { var ds = Services.GetNewItemByUSI('ds_SourcesWereChanged'); ds.Open(); ds.Append(); ds('OrderID') = Dataset('ID'); ds('NumberOrder') = Dataset('NumberOrder'); ds('OldSourceID') = Dataset('SourceID'); ds('SourceID') = DataField.Value; ds.Post(); ds.Close(); } } catch (e) { MessageBox(e); }
При мониторинге через debugger после ds.Append(); ловит [object Error].
Если нужен Append() - Open() делать не нужно. Хотя это вряд ли причина проблемы - но все же избавитесь от "лишнего" SELECT в БД.
"Олейник Дмитрий" написал:Если нужен Append() - Open() делать не нужно. Хотя это вряд ли причина проблемы - но все же избавитесь от "лишнего" SELECT в БД.
Уяснил.
Проблему нашёл. Благодарю за поддержку!
Причина - неопытные кривые руки, не дают сделать по нормальному связку tbl + sq + ds =(
Прогнал через TerraSoft Administrator без отслеживания исключений, интерпретатор подсказал ошибку.
Думаю всё должно быть ОК. Сейчас буду проверять таблицу, что записал туда.
Дмитрий - спасибо за помощь!