Вопрос

Мне нужно раскрасить ячейки разным цветом. Последняя колонка во вложенном файле cellDraw. У меня такое получилось в окне заказа (см. второе вложение).

function dgOfferingOrderOnGetCellDrawInfo(DataGrid, Column, Color) {   
    if(dgvOfferingOrder.Items(Column).DataFieldName == "OutOfTerms"  && dgvOfferingOrder.Items(Column).DataField.IsEnabled == true) {       
       var DataFieldValue = dgvOfferingOrder.Items(Column).DataField.Value;
       if (DataFieldValue == 1)
         Color.Value = clRed;
       if (DataFieldValue == 2)
         Color.Value = clGreen; 
       if (DataFieldValue == 3)
         Color.Value = clYellow; 
    }
    if(dgvOfferingOrder.Items(Column).DataFieldName == "RecomendedQuantity"  && dgvOfferingOrder.Items(Column).DataField.IsEnabled == true) {
                       Color.Value = clSkyBlue;
    }
}

В разделе контрагентов попробовал сделать по подобию. Событие  OnGetCellDrawInfo там есть. Но ничего не происходит. Думал, что-то неправильно в условиях. Но проверил точкоц останова, программа туда даже не попадает:

function grdDataOnGetCellDrawInfo(DataGrid, Column, Color) {
      debugger; // ???????????????????????????????????
  if(System.GetLocalComputerName() == 'PEUWUD14431') {
           debugger;
    if(gvAll.Items(Column).DataFieldName == "Category"  && gvAll.Items(Column).DataField.IsEnabled == true) {       
       var DataFieldValue = gvAll.Items(Column).DataField.Value;
       if (DataFieldValue == 'I')
         Color.Value = clRed;
       if (DataFieldValue == 'II')
         Color.Value = clGreen; 
       if (DataFieldValue == 'III')
         Color.Value = clYellow; 
       if (DataFieldValue == 'IV')
         Color.Value = clBlue; 
    }

  }
}

Буду признателен, если поможете советом.

 

С уважением,

Владлен Зенюков

Прикрепленные файлы
cellDraw.png332.87 КБ
workingcells.png189.05 КБ

У меня такой же вопрос

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

Возможно, в свойствах грида просто не включены в дизайнере HasCustomDraw и HasCustomCellDraw. Сравните с тем, что в гриде на той странице, где работает.

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

Версия ТС - 3.4.0.191

Здравствуйте! 
Подскажите пожалуйста, мне нужно реализовать отправку почты из террасофта. Для работы с текстом письма использую компонент RichDataControl. Проблема в том, что я не могу корректно преобразовать его в html (нужно сохранить форматирование). Может быть есть готовые решения или хотя бы наброски? Без разницы на js или sql.
Нужно все провернуть без использования MS Outlook и (желательно) без ms word на компьютере. Изучала https://community.terrasoft.ua/questions/pole-opisanie-na-e-mail и https://community.terrasoft.ua/questions/rtf-v-html, вопрос решить не смогла :( Также находила сырую процедуру для такой конвертации на ms sql, пробовала дорабатывать, но оформление текста по большей части все равно теряется, предполагаю чтобы прописать туда все возможные варианты - понадобится много времени (могу ошибаться, сильно далеко не копала).
Заранее спасибо!

У меня такой же вопрос

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

В последних версиях ядра 3.4.1 добавили поддержку выгрузки детали описания в HTML. Для этого нужны новые файлы и добавление параметра в настройках RunSettings.xml. После этого в JS-коде содержимое в HTML получают так:

var HTMLTemplateBegin = '<html lang="ru" encoding="UTF-8"?><head><title data-cke-title=""></title> '+
	'<meta http-equiv="Content-Type" content="text/html; charset=UTF-8"/>' +
	'<meta http-equiv="Content-Style-Type" content="text/css"/></head>' +
	'<body contenteditable="true" class="cke_editable cke_editable_themed cke_contents_ltr cke_show_borders" spellcheck="true"><div>';
var HTMLTemplateEnd = '</div></body></html>';
Body = HTMLTemplateBegin + edtDescription.GetHTMLBody() + HTMLTemplateEnd;
Body = Body.replace(/[\n\r]/g, '');// удаление _x000D_ в MS Office - http://stackoverflow.com/questions/36167807/access-newline-becoming-x000d

 

 

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

ругается на строку edtDescription.GetHTMLBody() и в коде, и в форме для конвертации на кнопку "Конвертировать". Пишет что объект не поддерживает свойство или метод. В окне Save As - строка с выбором HTML не появилась

 

Значит, в Вашей версии ещё не было поддержки. Она появилась только в 3.4.1.

а как-нибудь возможно именно этот метод внедрить в нашу версию? Либо другие варианты решения... Где-то на форуме читала про htmlbody..

Нет, нужно обновляться. Либо сами чисто программно формируйте нужный HTML, а шаблоны верстайте отдельно.

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

Подскажите пожалуйста, что нужно для обновления? Переход платный? Также заинтересовал вопрос - https://community.terrasoft.ru/questions/svaz-s-microsoft-office-2013. В 3.4.1 поддерживается 64х битный офис. Там про бинарники тоже писали, но ссылки на них нет (отправляли на почту задавшему вопрос) 

Лучше использовать 32-битный. А по поводу обновления, для этого нужны новые файлы, сменить значение версии в базе и, если потребуется, что-то может быть нужно исправить в конфигурации (ту же поддержку новых Office). Для этого будет нужен пакет поддержки, свяжитесь с менеджером.

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

Спасибо!

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

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

Как добавить новое поле в справочник, который не имеет окна редактирования?

Добавила в tbl, sq и ds. В справочнике этого поля не видно.

У меня такой же вопрос

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

Марина, добрый день.

В датасете поставьте у своего поля галочку Поле для отображения и Вы увидите его в гриде.

С редактированием сложнее. Создайте новое окно, унаследуйте его от wnd_SingleFieldEdit, в dlData нового окна впишите свой датасет и добавьте свое поле в окне. Затем выберите новое окно в настройке справочников в качестве окна редактирования. Enjoy.

Марина, добрый день.

В датасете поставьте у своего поля галочку Поле для отображения и Вы увидите его в гриде.

С редактированием сложнее. Создайте новое окно, унаследуйте его от wnd_SingleFieldEdit, в dlData нового окна впишите свой датасет и добавьте свое поле в окне. Затем выберите новое окно в настройке справочников в качестве окна редактирования. Enjoy.

Здравствуйте Александр. Спасибо!

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

Добрый день!

Решил настроить встроенный WebServices, все сделал по руководству от террасофт версия 3.4

Удаленный комп по http://имя_сервера:порт/soap/IServer все прекрсно видит. А создаешь новое соединение через WebServices указываю Server URL http://имя_сервера:порт/soap/IServer затем кликаю выбрать конфигурацию и не выпадает ничего. Если руками пропишу название конфигурации то тогда выдает ошибку: error opening configuration. разрушительный сбой

Подскажите что я делаю не так?

У меня такой же вопрос

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

Возможно, на уровне firewall на одном и на другом компьютере разрешили браузер, но не разрешили Terrasoft. Попробуйте также запустить Fiddler и посмотреть, какие запросы уходят на сервер и какие ответы.

Вообще, механизм веб-сервисов 3.Х используют очень редко. Возможно, в современных ОС что-то и не сработает. Если есть возможность, лучше работать на удалённом компьютере по RDP.

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

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

Имеется TerrasoftCRM 3.3.2.245. Я правильно понимаю, что компонент FastReportPreviewer предназначен для вывода отчета FastReport в окно? Есть какие-нибудь примеры работы с ним?

У меня такой же вопрос

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

Стандартные FR-отчёты показываются в окне wnd_BaseFastReportPreview, там используется этот компонент. А функции открытия этого окна с загрузкой в него нужного отчёта и выбранных записей раздела можно увидеть в scr_ReportUtils.

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

Добрый день!

Подскажите, как решить данный вопрос:

Есть деталь, сформированная на объекте на базе VIEW. Этот VIEW берет данные из другой системы, следовательно, не имеет Id в формате GUID. Для соответствия форматов, подставляется некий Id, но он повторяется для всех записей. 
В таком виде всё работает отлично.

Но теперь необходимо получать записи, которые пользователь выделил в этой детали. И использование grdData.SelectedIDs не годится. Можно ли каким-то другим способом получить выделенные записи (или вытащить не Id, а значения других колонок)?

У меня такой же вопрос

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

Ничего не мешает сделать во view уникальный Id на основе значения других колонок.

select  cast(HashBytes('MD5', 'hello'+'world') as uniqueidentifier)

 

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

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

При определенном действии(отправка визы для заявки), надо открыть для редактирования конкретное поле всех поручителей(Физ. лица), находящихся в данной заявке. 
Это поле по умолчанию "только для чтения".
Т.е. пользователь должен открыть карточку Физ.лица и редактировать конкретное поле.

Поэтому, в событии OnPrepare(Window) Физ.лица
пишу: 

При "некотором условии"
{
    var ContactDataset = dlContact.Dataset;
    ContactDataset.DataFields('поле').IsReadOnly = false;
}

Но, чтобы получить это "условиие", я пробегаю по всем поручителям заявки, оттуда открываю датасет Физ.лица
while (!warrantorsDataset.IsEOF)
{
    var ContactDataset = GetSingleItemByCode('ds_Contact');
    ContactDataset.Close();
    ApplyDatasetFilter(ContactDataset, 'ID',warrantorsDataFields.ItemsByName('ContactID').Value, true);
    ContactDataset.Open();
    И здесь надо добавить какое-то свойство(Property) на ContactDataset, или глобальную переменную, чтобы она существовала также в скрипте "Физ. лиц"
}

Как можно добавить Property или глобальную переменную ?
Спасибо.

 

У меня такой же вопрос

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

Обычно для глобальных переменных используют Connector.Attributes('какой-то текст'). Например, см., как в конфигурации заполняют и считывают Connector.Attributes('MainWindow').

Но сам подход решения изначального вопроса довольно странный. Зачем перебирать в цикле и кучу раз закрывать, фильтровать и открывать датасет, если можно создать сервис sq, который получает на вход параметры и одним SQL-запросом получает нужный результат. Или даже без sq, а просто в скрипте при помощи Connector.DBEngine.ExecuteCustomSQL запускать кусок SQL-кода или вызов хранимки и получать ответ.

 

Конечно Вы правы, Александр.
Датасет открываю в надежде добавить какое-то свойство для конкретного физ лица.
Но так не получилось.

А что можно в скрипте при помощи Connector.DBEngine.ExecuteCustomSQL запускать кусок SQL-кода, и получить несколько строк ответа ?

Для нескольких строк можно работать с помощью sq и ds, созданных специально под Ваш запрос.

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

Добрый день!

После недавнего обновления Win10 (KB4056892), в Terrasoft 3.4.0.130 перестал отображаться пользователь в верхней части окна, отсутствуют напоминания и при переходе во вкладку Сделки появляется ошибка(та, что на скриншоте). Возможно кто-то сталкивался? Если обновление удалить все работает.

У меня такой же вопрос

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

Этот сбой возникает на Windows 10 после прихода обновления KB4074588, которое ломает в Terrasoft пользовательские настройки. А этот раздел одну из них при открытии проверяет, как и механизм напоминаний.

Для восстановления нормальной работы нужно либо удалить из Windows это обновление KB4074588, либо запускать Terrasoft к компьютеров не под Windows 10. В руководстве администратора Terrasoft 3.4.0 указаны как поддерживаемые Windows XP, Windows Server 2003, Windows Vista, Windows Server 2008 и Windows 7.

Для быстрого перехода на другой компьютер достаточно просто целиком скопировать папку Terrasoft, а затем запустить в окне логина нажать лупу и так же настроить доступ в базу. Первый запуск TSClient.exe на новом месте нужно произвести под администратором Windows, нажав правую кнопку мыши на файле.

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

Большое спасибо

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

Добрый день!

В один прекрасный день перестал запускаться Terrasoft версия 3.3.2.102. Т.е. при запуске TSClient.exe ничего не происходило, что от обычного пользователя, что от имени администратора. Решил я его переустановить. В итоге установщик доходит до регистрации файлов и выскакивает ошибка Runtime error 216 at 40005CDE(установщик запускался от имени администратора).

ОС Windows 10 1709 сборка 16299.125

В журнале появилась ошибка :

Имя сбойного приложения: regsvr32.exe, версия: 10.0.16299.15, метка времени: 0x43953aae
Имя сбойного модуля: rtl70.bpl, версия: 7.0.8.1, метка времени: 0x2a425e19
Код исключения: 0xc0000005
Смещение ошибки: 0x00005cde
Идентификатор сбойного процесса: 0x1fdc
Время запуска сбойного приложения: 0x01d3af8901dc89a3
Путь сбойного приложения: C:\WINDOWS\SysWOW64\regsvr32.exe
Путь сбойного модуля: C:\Program Files (x86)\Terrasoft\Bin\rtl70.bpl
Идентификатор отчета: 32e0ab5e-79e8-4098-a84a-74946647ac6a
 

У меня такой же вопрос

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

Вопрос обсуждался тут

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

Спасибо. Вопрос решен =)

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

После переустановки Win7 на Win10 Террасофт просто отказывается запускаться. На 7 работает прекрасно. Если ли возможность обновить клиент на машинах с 10? На форуме полазил, но явного ответа что-то не увидел. Ткните плз...

 

У меня такой же вопрос

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

Перед новым годом Microsoft что-то поменяли в обновлении Windows 10 и старые сборки 3.3.1 и 3.3.2 перестали работать. Помогает обновление файлов Terrasoft до последних 3.3.1.186 и 3.3.2.313.

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

+ в карму и большое спасибо 

Добрый день!

Дистрибутивы английской и русской сборок  можно скачать по этой ссылке.

Для обновления с 3.3.2.245 на 3.3.2.313 Вам нужно заменить все содержимое папок [Bin], [Res], [Settings] (на всех пк, где используется система, если их несколько).

Добрый день, Валерий!

Спасибо за пакет обновления. Поставил, проверил. Работает.

А есть ли смысл обновлять до версии 3.4?

Добрый день!

Всегда рады помочь!

Что касается обновления, то данная процедура требует перезаказа лицензий, что обозначает, что на Вашем Customer ID необходимо наличие данных лицензий (3.4.0). Данную возможность Вам нужно предварительно обсудить с менеджером, ответственным по Вашей компании. Для решения данного вопроса рекомендуем обратится на электронный адрес технической поддержки support@bpmonline.com с указанием актуальных контактных данных для инициализации Вашей компании (или можно просто свой CID) и ответственный менеджер свяжется с Вами для обсуждения данного вопроса. Также, вполне вероятно, Вас может заинтересовать переход на версию 7.Х, которая в своем арсенале имеет огромный ряд преимуществ по сравнению с 3.Х. Более подробно узнать о возможностях системы Вы можете на нашем сайте https://www.terrasoft.ru/crm-products, а также подробно ознакомиться с функциональностью на академии https://academy.terrasoft.ru

Адасюк Валерий Викторович,

Добрый день, Валерий!

Такой вопрос - можно ли получить полноценный установщик для версии 3.3.2.313? просто если вдруг компьютер сломается, и будет принято решение его заменить на новый с ОС Windows 10, то нужен будет полноценный установщик, так как версия 3.3.2.245 после последних обновлений не только не запускается, но и не устанавливается корректно.

Добрый день.

Для 313 есть либо этот архив, либо установщик для продукта XRM. В принципе, разница только в названии ярлыков и бекапе пустой базы, которая идёт в комплекте. Если брать Вашу существующую базу, то с ней тоже заработает.

Установщик для CRM есть для предыдущей 312. Думаю, он тоже подойдёт.

Обратите внимание, при установке и при первом запуске нужно запускать под администратором Windows (правой кнопкой на exe-файле). Возможно, таким образом и из Вашего старого дистрибутива установится.

По поводу обновления до 3.4. Всё, что написал Валерий верно, но лучше будет не на 3.4.0, а на 3.4.1. Под Windows 10 после обновления KB4074588 даже в последней 3.3.2.313 могут наблюдаться сбои, которых в 3.4.1 не будет.

Так что, если есть возможность, лучше не использовать Terrasoft 3.3.2 под Windows 10, либо удалять это обновление.

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

Добрый день, Александр!

Спасибо большое за помощь. 

Похожая проблема с 3.3.1.185 и Windows 10 1809. Можно получить бинарники версии 3.3.1.186 (или какие там последние в версии 3.3.1)? KB4074588 отменить возможности нет.

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

Чёт мне не охота новые лицензии покупать. Совсем. Дайте 3.3.1.186 последний убедиться самому.

Для получения дистрибутива обратитесь в службу поддержки.

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