Восстановил из *.bak-файла базу данных. Развернул на другой машине - все работает, кроме разделов Контакты и Контрагенты. При попытке сохранить dataset вылетает обшибка 'list index out of bounds (0)'

Продукт Terrasoft Sales, версия 3.4.0.53
База данных бекапилась на MS SQL 2005. Восстанавливали и на 2005 и на 2008 - результат одинаковый.
Все остальное работает. Ошибка выскакивает в момент сохранения в скрипте:

function SaveChanges(BaseDBEdit, Window) {
        var AddNewRecordOnPage = (BaseDBEdit.Dataset.State == dstInsert);
        Window.Attributes('IsAppend') = (BaseDBEdit.Dataset.State == dstInsert);
        Window.Attributes('RecordID') = BaseDBEdit.RecordID;
        var PostResult = BaseDBEdit.Dataset.Post();
        Window.Attributes('AddNewRecordOnPage') =
                (AddNewRecordOnPage && PostResult > 0);
        var Result = ((PostResult == 1) || (BaseDBEdit.RecordAlreadySaved));
        return Result;
}

на строке var PostResult = BaseDBEdit.Dataset.Post();выкидывает сразу в исключение
catch (e) {
                System.MessageDialog(e.message, mdtError, mdbOK, 0);
                Result = false;
        }

        return Result;

функции SaveChangesWithCheck(Window, BaseDBEdit, DoNotSendNotify).
Каким образом это можно исправить?

Нравится

2 комментария

Проблему решил сам, хватило лишь выполнить запрос

sp_change_users_login 'auto_fix', 'fkeys'

возможно кому-то поможет

Либо может еще отработать скрипт:
sp_change_users_login 'Update_one', 'fkeys', 'fkeys'

Арсений Белецкий
Техническая поддержка Terrasoft

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