При помощи

this.getHistoryStateInfo();

Возможно получить объект который описывает в каком "режиме отображения" (Combined/Combined+Grid/Separated) и "операционном режиме" (add/edit) открыта текущая карточка.
Но есть одно обстоятельство которое заставляет задуматься:
свойство "operation" вышеописанного объекта содержит немного непредсказуемые значения:
//document.CasePageScope = this (схемы CasePage)

т.е. при непосредственно "Добавить обращение", по какой-то причине опускается operation, хотя прочая логика добавления новой записи в схеме идентична логике с прямым указанием операции в URL

Такое же поведение свойственно и при открытии карточки при помощи openCardInChain

Вопрос: Можно сделать допущение что если

this.getHistoryStateInfo().operation === "" || this.getHistoryStateInfo().operation === "add"

Это однозначно "Добавление новой записи" ?
Или может случиться и так что this.getHistoryStateInfo().operation будет содержать пустую строку ("") и в режиме редактирования, и в каком ни будь еще режиме (если они есть) ?

Нравится

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

"Севостьянов Илья Сергеевич" написал:Или может случиться и так что this.getHistoryStateInfo().operation будет содержать пустую строку

Скорее всего будет при режиме копирования записи. Обычно в строке ничего нет, если открывается запись, которой ещё нет в бд. А зачем так всё усложнять? Можно же взять

this.isAddMode()/this.isCopyMode()/this.isEditMode()

Спасибо, я про эти методы не знал.
https://academy.terrasoft.ru/jscoresdk/#!/api
В SDK о них ни слова, впрочем как обычно.

"Севостьянов Илья Сергеевич" написал:
https://academy.terrasoft.ru/jscoresdk/#!/api

В SDK о них ни слова, впрочем как обычно.

Здравствуйте.
Там о них и не может ничего быть. :)
По ссылке выше опубликована справка по API ядра.
Методы

this.isAddMode()/this.isCopyMode()/this.isEditMode()

объявлены в схеме BasePageV2, которая размещена в пакете NUI, который относится к конфигурации, а не ядру.
К сожалению, на текущий момент справка по API конфигурации не опубликована из-за определенных технических проблем. Однако, она планируется к публикации в ближайшее время.

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

Добрый день,
Подскажите как сделать следующие
По молчанию если мы нажмем на поле Name, мы получим
1
Необходимо по нажатию на контрол сделать так
2
т.е выделить текст в контроле
Бинарные файлы Terrasoft 3.3.2.277

Нравится

1 комментарий

Добрый день!

Реализовано на уровне ядра :smile: В 3.4)

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

Задача:
Есть датает который возращает ID задач (ds_TaskToClose), в которых необходимо поменять Статус = Закрыто, Результат задачи = Выполнено. При этом есть механизмы, которые должны сработать после записи в Dataset Задач. Еще одна мотивация менять поля через Датасет - то что задачи созданы по БП.

//-----------------------------------------------------------------------------
// scr_CloseTask
//-----------------------------------------------------------------------------
function Main()
{

var TaskToClose = Services.GetNewItemByUSI('ds_TaskToClose');
var TaskDataset = Services.GetNewItemByUSI('ds_Task')

TaskToClose.Open();
        while (!TaskToClose.IsEOF) {
                ApplyDatasetFilter(TaskDataset,'ID',TaskToClose('ID'),true);
                TaskDataset.Open();
                TaskDataset.Edit();
                TaskDataset('StatusID') = '{F598ECDB-4EEF-4FA8-9E69-A36B053501E5}' // Closed
                TaskDataset('ResultID') = '{FC3E0665-C980-4E6E-8941-FAF4294C653F}' // Perfomed
                TaskDataset.Post();
                TaskDataset.Close();
                TaskToClose.GotoNext();
        }
TaskToClose.Close();   
}

Мой код привел к следующему
Если Заглавие задачи (Tilte) обязательное поле для заполнения в сервисе таблицы получаем ошибку, того что пишем Null в поле Tilte на строке TaskDataset.Post();, если сделать поле Title не обязательным для заполнения в сервисе таблицы, и запустить скрипт получим пустые задачи, так как во все поля кроме StatusID,ResultID, и ID, запишется NULL.

Просьба помочь решить задачу.

Нравится

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

Из Администратора по F9 лучше не вызывать скрипты, обновляющие данные.
Посмотрите тут (обсуждалось подобное)
http://www.community.terrasoft.ua/forum/topic/2893

Валерий, спасибо огромное, это оно!

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

Подскажите.
Создал через визард новый раздел Magazine.
Добавляю в реестр запись. все ОК.
Но если хочу ее отредактировать, ошибки.
Собственно вопрос, какой стандартный текст скрипта для обычного Edit окна.

В разделе одно посылание на справочник, несколько дат и булевских ячеек.

Напишите плиз.

Нравится

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

Вадим Валерьевич, здравствуйте.

Уточните какого рода ошибки возникают (текст сообщения об ошибке), а также какую версию Terrasoft Вы используете?
Так же не могли бы Вы выгрузить сервисы созданного раздела и прикрепить их к сообщению для дальнейшего анализа.

Terrasoft 3.3.2.196
Ошибка OLE Error 80020102
magazine.rar

Здравствуйте Вадим Валерьевич,

большое спасибо за сервисы.
Для воспроизведения ошибки необходимо еще уточнить Вашу версию базы данных.
Для этого откройте Terrasoft Administrator, и кликните правой кнопкой по названию конфигурации, выберите меню "Свойства".
В поле "Версия" указано версия используемой БД.

1

Здравствуйте, Вадим!

В ходе удаленного подключения, было установлено, что причина сбоя - некорректная связь с таблицей Типов, внешний ключ которой был удален с таблицы tbl_Magazine.

Проблема решена удалением связи между таблицами.

Так точно, все ОК.
Спасибо!!!

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

После создания окна, на него помещается компонент "Edit". Сохраняем окно. Добавляем обработчик события "OnChange". Сохраняем окно - Ошибка:
"'{3C@D66AA-8C10-42D4-83C1-6747548DA4E1}' is not valid GUID value
Член группы не найден.". При добавлении других обработчиков данного компонента тажа ситуация!!!

Версия билда 3.2.1.4.

Нравится

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

Правится перезапуском TSAdmin :)
Возникает периодически.

Добрый день, Руслан!
Указанную ошибку на версии 3.2.1.4 X25 MSSQL Rus воспроизвести не удалось.
Если ошибка устойчиво воспроизводится, укажите полную версию продукта, СУБД, ОС, скриншот и текст ошибки, и отправьте все это в службу поддержки.
Возможно, для исправления этой ошибки поможет переустановка продукта (точнее, перерегистрация библиотек). Для этого можно переименовать папку, в которой установлено приложение, и запустить TSCRM.EXE.

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