Здравствуйте. Зарегистрировал демо-версию приложения. Перешёл по ссылке в письме на свою страницу и вот что увидел. Только начинаю разбираться в приложении, потому не понимаю что пошло не так.
В указанный период мы вносили ряд инфраструктурных изменений, которые могли влиять на взаимодействие между приложением и службой redis-а, следовательно временно спровоцировать ошибку.
Приносим извинения за доставленные неудобства.
В случае, если у Вас возникнут вопросы, пожалуйста, обратитесь в службу поддержки support@terrasoft.ru
Здравствуйте. Подскажите в чем может быть проблема: при входе в TS появляется ошибка (скрин в приложении) "Ошибка открытия конфигурации. TCP Provider: Этот хост неизвестен.". Хотя при входе в другие базы той же версии все нормально.
Это значит, что пытаетесь подключиться на сервер, которого не существует. Или он выключен, или в настройках подключения Terrasoft неправильно указан адрес.
Такая ошибка говорит о невозможности подключиться к указанному серверу и базе на нём. Может, дело в самом сервере или в firewall. Если дело в конкретной базе, то если развернуть там же её копию, то подключится ли к ней?
В общем проблема была в том что лицензии конкурентные и был настроен сервер сессий. Через менеджер лицензий, попал в настройки сервера сессий и выбрал "Использовать текущее соединение."
Вы можете реализовать данный функционал следующим образом:
1) добавить поле логическое поле «Обработано» на деталь «Участники активности»;
2) заместить схему «EmailItemSchema» и переопределить метод «setIsNeedProcessFalse», в котором вызывать установку признака true в созданное поле «Обработано» для записи, у которой в поле ActivityParticipant указан контакт текущего пользователя;
3) заместить схему «CommunicationPanelEmailSchema» и переопределить метод «addFilters» где реализовать фильтрацию на основании значения поля «Обработано» детали «Участники активности».
Добрый день, подскажите как поставить фильтр на открывающееся окно выбора основного контакта для контрагента? Нашел что подключается для этого островка ContactProfileSchema но как туда прокинуть фильтр не смог разобраться
var arrServices = GetSimpleSQLResult(sSQL);
тогда arrServices - одномерный массив, с длиной запрашиваемых столбцов.
а если sSQL возвращает несколько строк, можно объявить двумерный массив, где количвство столбцов = количеству запрашиваемых столбцов, а количвство строк = количество возвращаемых строк
Конечно, теоретически это сделать возможно, но при условии, что Вы модифицируете функцию GetSimpleSQLResult(sSQL) таким образом, что возвращаемый результат будет записан в двумерный массив.
т.е. такой встроенной функции нет ?
Есть ли в террасофт понятие resultSet ?
например:
set rs = ExecuteQuery("select столбец from таблица where условие")
Do While Not rs.EOF -- т.е пока не дошли до последней строки запроса(включительно), EOF-end of file
Функции GetSimpleSQLResult в коробочной версии нет, это какая-то доработка.
Обычно в таком цикле перебирают Dataset с несколькими строками результатов, примерно так:
function GetAllRecordFieldsValues(Dataset, FieldNames, Result){
var Result =new Array();
var i;
var ResultItem;while(!Dataset.IsEOF){
Result[Result.length]=new Array();
ResultItem = Result[Result.length-1];for(i=0;i<FieldNames.length;i++){
ResultItem[FieldNames[i]]= Dataset.Values(FieldNames[i]);}
Dataset.GotoNext();}return Result;}
Это стандартная функция из scr_DB.
Она возвращает массив массивов.
Здравствуйте Александр.
Спасибо за пример, я попробовала.
И если я Вас правильно поняля, для этого надо было создать tbl_таблицу, sq_запрос, ds_датасет, что я и сделала.
Но ведь, при решении какой-то задачи может возникнуть необходимость пройтись по различным запросам, которые не имеет смысла хранить в системе как таблицу.
Любые таблицы базы данных лучше создавать в системе как сервис tbl. А sq — это запрос, графическое представление sql-кода, которое может быть построен и по существующим таблицам. В принципе, если сильно нужно, то и sq, и ds по ней можно создать чисто программно, не в дизайнере. Примеры низкоуровневой работы с этими объектами — в том же scr_DB.
Добрый день. Как можно стандартными средствами реализовать вывод html блока на странице редактирования карточки. В HTML блок будет подгружаться исходные данные HTML письма присланное на почту.
В разделе "активности" сделал что бы для разного типа записей открывались разные страницы. На странице редактирования которая осталась деталь работает нормально.
А вот на новой странице имеет вот такой вид:
При попытке настроить колонки в консоль вываливается вот такая ошибка и страница зависает.
Данная ошибка связана с тем, что для данной детали еще нет настроек колонок (в таблице SysProfileData нет записи по данной детали расположенной на новой карточке) и она пытается подгрузить настройки из tiledConfig схемы детали.
Для исправления необходимо настроить колонки. Запись в таблице появится и tiledConfig не будет отрабатывать.
Документация: Для замещающей клиентской схемы необходимо установить в качестве родительского объекта схему SectionActionsDashboard пакета ActionsDashboard. В качестве заголовка также можно указать значение SectionActionsDashboard.
При замещены данной схемы выбираю Родительский объект "BaseActionDashboard" пакета ActionDashboard. Согласно название модуля будет BaseActionsDashboard, а нужно что бы было SectionActionDashboard. При изменении названия модуля на SectionActionDashboard остается название BaseActionDashboard.
На больших проектах, по разработке на платформе Terrasoft, ощущается острая необходимость документации кода. На сегодняшний день есть множество frameworks для автоматической генерации документов на основе markdown или wiki.
В связи с чем хотелось бы поднять обсуждение - найти оптимальное решение для документации кода конфигурации. Дабы не теряться в понятиях предлагаю начать с документации клиентской части.
Может кто-то использует нечто подобное, подскажите best-practice, поделитесь как вы решаете эту проблему.
Для генерации документации, клиентской части ядра, платформы, используется JSDuck. Можно сформировать для каждого сайта нечто а-ля https://academy.terrasoft.ru/jscoresdk/ Но как-бы заставить jsduck собирать информацию ещё и про схемы конфигурации... Или же проще использовать другой framework для этой задачи...
JSDuck является оптимальным решением и позволяет генерировать действительно удобную и полезную документацию. Приложения, созданные на ExtJS, поддерживают автоматическое создание документации, так как генератор изначально создавался для Sencha и позволяет распознавать синтаксис ExtJS.
Запуск генератора осуществляется из командной строки:
$ jsduck
При этом, вся конфигурация должна быть описана по умолчанию в файле jsduck.json, находящемся в этой же директории.
Можно все параметры конфигурации описывать в командной строке, не используя файл конфигурации. Например
$ jsduck path/to/src --output docs
Но я не рекомендую этого делать, если у вас очень много параметров конфигурации. Это очень не удобно и не наглядно.
Также можно указать другой путь к файлу конфигурации, если в этом есть необходимость. Например
$ jsduck --config=mypath/to/myconfig.json
Справку по всем параметрам командной строки можно посмотреть командой
$ jsduck --help
Все параметры могут быть использованы как из командной строки, так и в файле конфигурации.
Краткое описание параметров:
title — титульный заголовок на странице документации.
warnings — позволяет управлять потоком предупреждений, которые пишутся в консоль, если документированный код не соответствует самому коду. В приведенном примере с помощью опции "-all" игнорируются все предупреждения, возникающие в фреймворке extjs.
output — директория сгенерированной документации.
В последней секции "--" перечисляются директории с исходниками, из которых должна быть сгенерированна документация.
Я читал документацию по JSDuck. И формировал документацию для ядра Terrasoft BPMonline.
Но как это поможет сгенерировать документацию для модулей конфигурации? Возможно ли настроить JSDuck так, чтобы можно было сгенерировать документацию по всем клиентским файлам конфигурации. Если у вас это удавалось - будет здорово, если вы со всеми поделитесь инструкцией и конфигами.
"Возможно ли настроить JSDuck так, чтобы можно было сгенерировать документацию по всем клиентским файлам конфигурации" - да, возможно. Если Вы читали документацию по JSDuck и формировали документацию для ядра Terrasoft BPMonline, ты Вы, безусловно, в курсе, что путь к исходным файлам, для которых необходимо сформировать документацию, указывается в файле конфигурации, примерно вот так:
"--": [
"path/to/extjs/src",
"path/to/my/app"
]
Готовой инструкции о том, как сформировать документацию для клиентских схем конфигурации у нас, к сожалению, нет. Процесс формирования документации довольно трудоемкий, для этого необходимо править комментарии в клиентских схемах конфигурации, для того чтобы парсер JSDuck мог работать корректно.
Привожу в качестве примера наш конфигурационный файл:
{
"--title": "bpm'online NUI Docs",
"--warnings": ["-link", "-nodoc(,)", "-inheritdoc", "-type_syntax"],
"--output": "..\\Documentation",
"--footer": "Terrasoft 2002-2016 Все права защищены",
"--tags": ".\\meta-tags.rb",
"--": [
"C:\\Projects\\NuewUnitTests\\Terrasoft.Nui\\ConfigurationJS"
]
}
Создание пользовательских тегов описано в документации JSDuck.
Добрый день! У меня наконец получилось извлечь боле менее вразумительную документацию с помощью JSDuck. Прошлый раз утилита постоянно обрывалась по ошибке. Я считал, что это из-за нестандартной структуры клиентских модулей. Нестандартных для классов ExtJS.
Но правильно настроив конфиг и используя правильные комментарии удалось сгенерировать кое-что полезное. Спасибо.
А как быть с серверным кодом? Может подскажите оптимальный инструмент для документации по серверному коду?
Добрый день!
К сожалению, на данный момент у нас нет опробованного оптимального инструмента для генерации документации по серверному коду Конфигурации Приложения. Идет анализ и тестирование подходящего инструмента. Рекомендую обратить внимание на следующие подходы к созданию документации и используемые при этом инструменты, описанные в статьях https://habrahabr.ru/post/102177/
и https://habrahabr.ru/post/252101/