Добрый день!

Подскажите, можно ли поменять режим отрисовок окон в terrasoft xrm 3.х? Чтобы не было долгой и плавной отрисовки, а как то быстро карточка с кучей правил прорисовалась (в каком-то фоновом режиме)?

Нравится

6 комментариев
Лучший ответ

Зверев Александр,

А лучше уже сразу обновиться на bpm'online crm 7.14.3 wink

Доброе утро.

Можно попробовать реализовать прориcовку окна таким образом:

System.BeginProcessing();
try {
	Window.Prepare();
} finally {
	System.EndProcessing();
}
EditWindow.Show();

 

Между версиями 3.3.2  и 3.4.0 поменяли движок отрисовки, стало быстрее.

Если у Вас 3.3.2 и меньше, стоит обновиться, лучше сразу на 3.4.1.

Зверев Александр,

А лучше уже сразу обновиться на bpm'online crm 7.14.3 wink

Алла Савельева,

Лучше то оно может и лучше, но не для того кто будет делать такой переход

Да, в отличие от перехода с 3.3.2 на 3.4.1, где нужны только новые лицензии и пару правок, переход на 7.Х является небольшим проектом, требующим исследований, что в 3.Х реально используется, адаптации скриптов перехода и иногда даже добавления в 7.Х новых полей для невмещающихся данных. То есть оно лучше, но дольше и дороже.

Спасибо!

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

Привет. 

TS 3.x

Есть документ Excel(.xls) открытый вот так:

var Excel = new ActiveXObject('Excel.Application');
Excel.Workbooks.Open(filePath);

У кого есть опыт работы, подскажите как:

1. Добавить пустой рядок в качестве 1-го(подвинув остальные вниз).

2. Заполнить ячейки этого рядка(припустим первых 10), интересует именно доступ.

3. Настроить ширину колонок.



*VS Debugger виснет при попытке взглянуть в объект.

**Нормальной документации не нашел, если у кого-то завалялась - буду благодарен

Нравится

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

Проще всего в Excel запустить запись макроса, проделать всё вышеупомянутое, а потом изучать сгенерированный код на VBA и переводить его на синтаксис JS.

Потыкал и нашел.

 

try {
        var excel = new ActiveXObject('Excel.Application');
        var workBooks = excel.Workbooks.Open(TempFileName.Value);
        var excelSheet = workBooks.Worksheets(1);
        excelSheet.Activate();
        excelSheet.Range('A1:K1').Insert(-4121);
        excelSheet.Range('A1').Formula = 'Ячейка А1';
        excelSheet.Range('B1').Formula = 'Ячейка А2 ';
    //  ......
        excelSheet.Range('K1').Formula = 'Ячейка К1';
        excelSheet.Columns('A:K').AutoFit();
        workBooks.Save();
 
    }
    finally {
        excelSheet = System.EmptyValue;
        workBooks = System.EmptyValue;
        excel.Quit();
        excel = System.EmptyValue;
        CollectGarbage();
    }
    

1.Добавление пустого рядка было сделано через Insert со смещением вниз.

2. Заполнение через метод Formula об. Range

3. Использовал AutoFit так как изменять значения Width или ColumnWidth не давало(read-only).

*Ещё обратите внимание на блок finally при таких действиях процесс excel.exe который был создан убивается.

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

Здравствуйте.

TS XRM 3.X 

Существует ли возможность поправить _DateTimeOperatorTypeEnum и логику работы соответственно? 

Нравится

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

Если это перечисление задано в ядре 3.Х, то нет, без исходников его не изменить. Менять можно только перечисления, созданные в виде enm-сервисов в конфигурации, например, годы.

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

Добрый день!



Данные:

клиент версии 3.3.2.275

база ms sql 2005



Задачи

1. Удалить все письма (всех пользователей) из БД.

2. Удалить логи.

3. Уменьшить размер БД другими способами – если есть какой-то способ (кроме шринка).



По первой задаче - В тестовой базе скл запросом удалили данные в таблицах dbo.tbl_MailMessage, dbo.tbl_MailMessageLog, dbo.tbl_MailMessageRight – но на сколько это правильно вопрос…

По второй задаче - если поступить также скл запросом - вопрос какие таблицы чистить?





Есть варианты правильного решения указанных задач (может штатные средства террасофт)?

Нравится

5 комментариев
Лучший ответ

Насколько я помню, то готовых утилит для очистки писем и логов в 3-ке не было. Решение только написание своих скриптов.

Чтобы понять в какой таблице хранятся логи, запустите sql-профайлер, перейдите на вкладку с логами в 3-ке и посмотрите в sql-профайлере, в какую таблицу пойдет запрос.

Ещё для уменьшения размера БД можно очистить таблицу процессов и их элементов (если процессы использовались).

Также можно посмотреть, что содержится в таблице История и удалить лишнее.

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

Насколько я помню, то готовых утилит для очистки писем и логов в 3-ке не было. Решение только написание своих скриптов.

Чтобы понять в какой таблице хранятся логи, запустите sql-профайлер, перейдите на вкладку с логами в 3-ке и посмотрите в sql-профайлере, в какую таблицу пойдет запрос.

Ещё для уменьшения размера БД можно очистить таблицу процессов и их элементов (если процессы использовались).

Также можно посмотреть, что содержится в таблице История и удалить лишнее.

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

При удалении записей таблицу прав отдельно чистить не нужно, там каскадная связь и записи о правах удалятся вслед за записями основной таблицы сами.

Логи в других разделах устроены аналогично, плюс tbl_DatabaseLog для записей самого раздела логов.

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

Вообще, для быстрого поиска, куда делось место, можно воспользоваться стандартным отчётом «Disk Usage by Top Tables» в Management Studio:

 

Алла Савельева 

 Спасибо,   sql-профайлер посмотрю 

Зверев Александр пишет:

При удалении записей таблицу прав отдельно чистить не нужно, там каскадная связь и записи о правах удалятся вслед за записями основной таблицы сами.

Т.е.  если SQL запросом удаляю только dbo.tbl_MailMessage,  то dbo.tbl_MailMessageRight очистится сама?

Не понимаю как это работает... на уровне запуска клиента под супервизором запускается какой-то скрипт?



«Disk Usage by Top Tables»  так и нашел dbo.tbl_MailMessage

В TSAdmin у связи в таблице прав стоит галка «каскадная связь». На уровне базы удаление в связанных таблицах работает при помощи триггера tr_tbl_MailMessage_ID и аналогичных для каждого раздела.

Зверев Александр,

Ясно , спасибо

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

Здравствуйте.

Всем кто работал с 3x

TS 3.4.0.130 || Outlook 2010

Есть blob поле в котором хранится текст формата rtf.

Дано его текстовое представление(в прикрепленном файле). 

Сейчас используется только обычный текст который оборачивается в html(или без этого) и передается с помощью базового функционала в Outlook.

Как можно перегнать данный rtf в html, со стилями редактирования, а не только текстом?

Идеи, предложения?

Прикрепленные файлы

Нравится

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

В последней сборке 3.4.1.191 добавили возможность конвертации детали «Описание» в HTML. Нужно обновляться, а потом внести правки в RunSettings.xml. Дописать там параметры EnableExportRichDataToHTML="True" InlineImageInHTML="True" в тег SystemSettings. После этого при сохранении в файл этой детали кроме RTF и RVF появится третий формат HTML.

Также в этой версии конвертировать RTF-поля можно будет в скрипте, см. пример тут.

Зверев Александр,

Спасибо

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

Здравствуйте!

Версия ТС 3.4.1.191.

Есть карточка с множеством полей, вертикальная полоса прокрутки.

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

Пробовала BeginUpdate/EndUpdate в разных вариациях, сброс в начало карточки при отображении группы убрать не смогла. 

Нужна либо блокировка на перемотку, либо получить текущее положение в карточке и после отображения/скрытия группы прокрутить в то же место скриптом, или другие варианты.



Также подскажите пожалуйста, можно ли сделать прокрутку в карточке с помощью колесика мыши?

Нравится

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

Отрисовка может быть реализована на уровне ядра. Просмотрите в дизайнере карточки все события, к которым можно привязаться, но не факт, что нужное будет.

Может, есть смысл пересмотреть дизайн карточки, чтобы не было прокрутки: растянуть её до размеров экрана, разнеся поля в несколько колонок, либо же разнести поля по смыслу на разные вкладки в карточке.

Зверев Александр,

перемотка в начало происходит уже после 

frmData.EndUpdate(), который я так понимаю перерисовывает карточку. Подходящих событий не нашла. Свойства из разряда Scrolls, ScrollTo, ScrollBy система не распознает, scrollTop, scrollHeight и pageYOffset месседж выдает пустыми, либо неверно их использую. Полей много, вынуждена расположить по высоте карточке. 

Значит, меняйте расположение полей или делайте со вкладками.

Зверев Александр,

пришлось делать через блокировку, а не отображение/скрытие. Спасибо за ответ!

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

Господа, подскажите, где бы подробно почитать про интеграцию Террасофт 3.3.2 с Астерикс?

Нравится

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

Подозреваю, что нигде, поскольку такой интеграции не было. Были отдельные коннекторы к Oktell, Infinity, Cisco и универсальный Terrasoft Call Centre, совместимый с TAPI-драйверами. Были сторонние разработки интеграции с Asterisk, но неизвестно, завершены ли в итоге.

Зверев Александр,

Спасибо.

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

Доброго времени суток, коллеги.

ТеррасофтCRM 3.3.2.245.

Возможно ли в DataGrid-е запретить отображение панели итогов? В противном случае при выборке в SelectQuery из табличной функции и включенных итогах в гриде выдается ошибка: "Функции SUM необходимо 1 аргументов". Я пока программно устанавливаю свойство IsSummaryVisible грида в false, но может есть более цивильный способ?

Нравится

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

Включение и отключение строки итогов в реестре сделано на уровне ядра, из конфигурации (в скрипте или в дизайнере страницы) на это свойство можно влиять только через IsSummaryVisible. Вероятно, у Вас итоги не работают именно из-за вызываемой функции вместо колонок в SelectQuery, ведь для неё SUM не имеет смысла.

Спасибо, понятно.

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



Доброго времени суток, коллеги.

Имеется TerrasoftCRM 3.3.2.245. Нужно реализовать выборку данных, которую нельзя сделать посредством SelectQuery с передачей параметров в запрос и расчетом итоговой строки.

Почему нельзя использовать SelectQuery? В конструкторе запроса нельзя join-ить с подзапросом и нельзя join-ить более, чем по одному полю.

Вопрос 1: как реализовать расчет итоговой строки? DataGrid умеет считать итоги только в виде суммы, среднего, максимума и минимума колонки переданного набора данных. Я могу записать произвольное значение в область итогов DataGrid? Если не могу, то строку итогов мне придется считать в запросе и потом ее объединять с результатом запроса.

Вопрос 2: как можно получить данные в виде таблицы в обход SelectQuery?

  1. ExecuteCustomSQL - отпадает, так как не может вернуть таблицу (или я чего-то не знаю).
  2. Вызов хранимой процедуры в CustomSql колонке SelectQuery. Вариант в принципе годный. Есть некоторые проблемы с передачей параметров для Include фильтра, но решаемые.
  3. CustomQuery. Непонятный мне зверь. Может ли возвращать таблицу? Можно ли менять текст запроса в runtime или только хардкодить в Администраторе? В конфигурации я примеров использования не нашел, на этом форуме тоже (киньте ссылку, если не жалко).
  4. ADODataset. На первый взгляд тоже годный вариант, но есть свои "но". Хотелось бы, чтобы запрос выполнялся от имени текущего пользователя, со всеми его ограничениями доступа. В случае доменной аутентификации это решаемо, а как быть, если используется аутентификация СУБД? Я вряд ли смогу где-нибудь достать пароль текущего пользователя, могу только показать диалог с запросом пароля и сохранить его в базе.

Есть ли еще какие-либо варианты получения табличных данных?

Нравится

8 комментариев
Лучший ответ

Зверев Александр,

Так в 3-ке, насколько помню, можно и представление реализовать нужное со всем набором колонок.

Думаю, что в данном случае (имею ввиду, приджойнить таблицу по нескольким колонкам), это самый оптимальный вариант.

Хотя SelectQuery в конфигурации все же прийдется реализовать.

Но этот вариант не подойдет, если нужно в режиме ран тайм, что-то изменить.

Можно реализовать весь свой запрос в хранимой функции, а затем её вызвать при помощи нескольких CustomSql-колонок в SelectQuery. Так можно будет передать параметры и получить результат в табличной форме.

Зверев Александр,

Так в 3-ке, насколько помню, можно и представление реализовать нужное со всем набором колонок.

Думаю, что в данном случае (имею ввиду, приджойнить таблицу по нескольким колонкам), это самый оптимальный вариант.

Хотя SelectQuery в конфигурации все же прийдется реализовать.

Но этот вариант не подойдет, если нужно в режиме ран тайм, что-то изменить.

Да, с представлением тоже можно. Но тогда нужно будет не только SelectQuery, но и сервис таблицы с таким же названием и набором полей задизайнить, а потом при его сохранении сказать «нет» на вопрос об изменении в БД.

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

Тогда используйте мой вариант из ссылки выше.

Благодарю за помощь. Реализовал через табличную функцию.

Riptor пишет:

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

Почему не подойдет?

В сервисе SelectQuery Вы можете настроить нужные фильтры, но не включать их в дизайнере, а включать потом программно, тогда, когда нужно. 

Алла, видимо, речь о том, что если внутри view вся логика сделана не select, а кодом или вызовом функции с параметрами, пробросить внутрь условия фильтра, наложенные на view снаружи, нетривиально.

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

Добрый вечер!

После переустановки ОС на Win 10, в CRM не работает часть функционала.

1. Не отображаются данные пользователя в верхнем, левом углу системы.

Изображение удалено.

2. При нажатии правой кнопкой мыши по любому проекту, список предлагаемых опций урезанный.

Изображение удалено.

3. При использовании функции «Глобальный поиск», нет возможности перейти ни к одному из найденных пунктов. Система выдает предупреждение.

Изображение удалено.

 

4. При попытке открыть меню Файл-Настройки-Системные настройки, CRM выдает ошибку .

Изображение удалено.

 

Прочитала на community (https://community.terrasoft.ru/questions/obnovlenia-win10-i-terrasoft-34) , что в версии 3.3.4 можно удалить обновление KB4074588, но к сожалению, такой технической возможности у нас в компании нет. Подскажите, пожалуйста, как можно решить эти проблемы? Спасибо!

Нравится

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

Под Windows 10 не работают полноценно ни 3.3.2, ни 3.4.0. Нужно обновляться с 3.3.2 на 3.4.1: скачивать новые файлы программы, менять номер версии в базе в tbl_DatabaseInfo и покупать заново лицензии. Либо же продолжать использовать предыдущие версии Windows.

И, заодно, если у кого-то 3.3.1, там обновление, помимо упомянутого, требует дополнительных шагов.

Зверев Александр, Александр, спасибо за ответ! К сожалению, обновиться до версии 3.4.1 нет возможности, по политике компании.

Всё дело в том, что на первых ПК с обновленной ОС, CRM работал корректно, как и на Win 7.

Но на ПК, которые ставим сейчас, CRM работает не корректно. Сравнили версии ОС, они разные. Обратились сейчас в наш тех.отдел. Чтобы они попытались понять в чем разница, между версиями на ОС Win 10. Ждем от них ответа.

Так в том и дело, что Win10 перестала нормально работать с 3.3.2 и 3.4.0 начиная с одного из её обновлений около года назад.

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