Cтолкнулся с одной проблемой. Пытаюсь в скрипте присвоить компоненте DatasetLink новый ADO датасет, но при открытии нового датасета SQLText изменяется на SQLText старого датасета.
Нарпимер, допустим, у нас есть два ADO dataset: ads_Dataset1 и ads_Dataset2. DatasetLink-у присвоен ads_Dataset1. Я в скрипте меняю датасет DatasetLinka на ads_Dataset2:

//...  
var new_dataset = Services.GetNewItemByUSI('ads_Dataset2');
dlData.Dataset = new_dataset;
//...

Тогда при выполнении метода dlData.Dataset.Open() у меня dlData.Dataset.SQLText заменяется на старый dts_Dataset1.SQLText.

Нравится

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

Добрый день.

К сожалению, не получается воспроизвести описанную Вами проблему. Сообщите, пожалуйста, полную версию бинарных файлов, которые Вы используете. Пытался воспроизводить на 3.3.1.67 и на 3.1.1.58.

Олег Лабьяк,
разработчик,
3-я линия Службы поддержки Terrasoft.

Я работаю с версии 3.1.1.53

Райвис,
воспроизвести проблему всё-таки не получается. Выкладываю примеры сервисов, на которых воспроизвожу проблему. Проверьте, пожалуйста, возможно, я что-то делаю не так, как реализовано у Вас. Для проверки после загрузки сервисов необходимо отредактировать строки соединения в ADODataset'ах и вставить код из функции Main присоединённого скрипта в какой-либо из уже существующих скриптов окна редактирования (я вставлял в конец функции btnOKOnClick скрипта scr_AccountEdit). После этого запустить Terrasoft CRM, вызвать карточку редактирования и нажать в ней кнопку "OK".

Олег Лабьяк,
разработчик,
3-я линия Службы поддержки Terrasoft.

Олег, спасибо за участие в решении моей проблемы. Ваш пример такой же, как и мой. Я нашел причину проблемы. Проблема была в том, что функция SortADODatasetByViewColumns использует глобальный объект, который в себе сохраняет текст SQL. Потому именяя датасет даталинка и исполняя метод Open, текст SQL датасета менялся обратно на старый.

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