Y de nuevo Hola!

Вопрос возможно банальный. И требует понимание такого явления, как TerraSoft.
Есть карточка редактирования, на ней есть поле - Источник продаж.
"Его нужно поменять у имеющейся записи". После выбора нужного источника (двойной клик, либо кнопка OK) выбрасывается исключение:
Класс исключения EOleExeption
Сообщение об ошибке: Неопознанная ошибка
После повторного нажатия окно закрывается, но результат нулевый, то что должно произойти по логике не происходит.

Нравится

10 комментариев

Откуда происходит вызов окна выбора источника? Где это прописывается в окне редактирования карточки?

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

F5 в скрипте, верно?
Если да, то в коде прописываю, но после запуска клиента, и вызова соответствующего кода, ничего не происходит.
Буду рад за маленькую инструкцию и по этому вопросу.

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 без отслеживания исключений, интерпретатор подсказал ошибку.
Думаю всё должно быть ОК. Сейчас буду проверять таблицу, что записал туда.
Дмитрий - спасибо за помощь!

Не за что. Обращайтесь.

Показать все комментарии