Вопрос

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

После переустановки ОС на 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 начиная с одного из её обновлений около года назад.

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

Доброго времени суток, коллеги.
Есть перечень Сервисов, упакованных в Сервисные договора. Создаём Инцидент, выбираем Контрагента - автоматически подставляется соответствующий основной Сервисный договор. Далее выбираем Сервис из списка доступных согласно Пакета сервисов в данном Сервисном договоре. И вот тут мне нужно автоматически выставить нужный Тип инцидента. Условно говоря, в моём бизнес-процессе Тип инцидента - это группировка Сервисов по сути: IT, организационное, техническое и т.п. Соответственно, по Типу инцидент пойдёт в решение в разные подразделения.
Подскажите, пожалуйста, где нужно поковыряться для реализации? Начну с того, что в справочнике Сервисов добавлю выбор Типа инцидента, которому этот Сервис соответствует. Далее надо в окне редактирования Инцидента при смене Сервиса подставлять Тип инцидента. Как это сделать?

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

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

Это можно сделать либо в скрипте карточки в обработчике dlDataOnDatasetDataChange, либо в скрипте датасета на SelfOnDatasetDataChange.

Итак.
В Сервисы через штатный механизм добавил справочник Типов инцидента. Заполнил справочник.
В sq_Incident добавил поле ServiceIncidentTypeID из уже подцепленной tbl_ITService.IncidentTypeID
Прописал это поле в ds_Incident
Теперь в скрипт. Пошел по первому пути.
function dlDataOnDatasetDataChange(DataField) {
    DataChange(DataField);
    SmartLookupOnDataChange(DataField);
}
Проваливаюсь в DataChange, нахожу там обработку изменения ITServiceID
    if (Name == 'ITServiceID') {
       // получаем ID типа инцидента по сервису
        var iIncidentTypeID = Dataset.Values('ServiceIncidentTypeID');
        // меняем тип инцидента
        Dataset.Values('IncidentTypeID') =iIncidentTypeID;
        ProcessChangeITServiceID(Dataset);
        return;
    }
Не падает, но при изменении Сервиса контрол Тип инцидента оказывается пустым. На каком шаге мог ошибиться?

Попробуйте отладиться, чтобы на каждом шаге видеть значения переменных. Вообще, для получения значения tbl_ITService.IncidentTypeID проще было бы не добавлять поле в sq и ds инцидента, а воспользоваться функцией GetDatasetFieldValueByID('ds_ITService', ITServiceID, 'IncidentTypeID');

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

Добрый день.

Во вложенном файле карта заказа, как она должна выглядеть по заданию. Подсветка групп (в окне слева - "напитки", "чипсы") нарисована в графическом редакторе. Сейчас этого нет, в этом и заключается задание. Список групп может быть длинным. Клиенты могут сами начать заказ снизу или из середины. Идти по группам по порядку не получается. Иногда операторы упускают какие-то группы, и продажи теряются. Надо подкрасить группы, по которым прошлись при набивании заказа. У Вас  это стандартная конфигурация - группы и записи, входящие в группу. Я подумал, что может быть что-то похожее (по событиям в окне с записями группы меняется вид записей в окне групп) уже есть. Если это так, не могли бы Вы дать мне ссылку?

Прикрепленные файлы
order_card.png230.66 КБ

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

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

Дерево групп — это обычный DataTreeGrid со своей логикой, реализованной в скрипте scr_Groups окна wnd_Groups. Окраску можно сделать в обработчике функции grdDataOnGetRowDrawInfo, передав изнутри значение в параметр Color. Сейчас там только выбирается иконка папки. Как работают со цветом, видно в скрипте scr_TasksGridArea реестра задач.

То есть Вам будет нужно либо модифицировать scr_Groups, либо создать своё окно, унаследованное от него, и в его скрипте сделать нужную логику в grdDataOnGetRowDrawInfo (не забыв вызвать базовую). И в окне для групп использовать его.

PS: Йог жив, перс-абр, Чудо!surprise

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

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

Есть два поля "Категории", "Суб-категории". Оба типа LookupControl и оба wnd_MultiSelectData.
После выбора значений "Категории", фильтрую значения поля "Суб-категории", так, чтобы запрос возвращал только те Суб-категории, для которых выбранные категории являются родительскими.
Если после того как выбраны суб-категории, удалить одно из значений категории, и снова открыть суб-категории, фильтр работает, но остаются прежние выбранные значения(в TargetDataset).

Вопрос: Как удалить значения из TargetDataset (в MultiSelectData) ?

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

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

Видимо, нужно делать что-то похожее на логику страницы wnd_ReportCurrentSituation и такой же wnd_ReportFinanceResult. Там тоже два мультилукапа и фильтрация значений одного по другому.

Зверев Александр,
Я не нашла ни wnd_ReportCurrentSituation,  ни wnd_ReportFinanceResult. Версия Terrasoft 3.2.0.90
Есть какие-то другие примеры? Или, если Вам не сложно, можете отправить фрагмент кода ?

У Вас очень старая версия, многое из более новых может не работать. Вот схемы карточки и скрипта. Если не получится загрузить в систему, смотрите скрипт в блокноте.

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

Мне нужно раскрасить ячейки разным цветом. Последняя колонка во вложенном файле 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)

 

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