wnd_BaseFastReportPreview
Разрушительный сбой
Отчёты
Разработка

Всем доброго времени суток, необходима помощь по решению проблемы с wnd_BaseFastReportPreview. Суть следующая:

Разработал скрипт по экспорту отчета в FastReport по нажатию на кнопку. На моей базе все отлично, на компьютере клиента после 2-3х вызовов функции вываливается ошибка "Разрушительный сбой". Нашел проблемную строку:

var ReportPreviewer = Services.GetNewItemByUSI('wnd_BaseFastReportPreview');

Дело наверняка в ней, т.к. закомментировав весь код функции кроме этой строчки я получаю ту же самую ошибку (и наоборот - 'спрятав' все кроме её и производных от неё я получаю log-и и могу дальше работать в программе). Права у клиента полные, кэш приложения пуст, пройтись debugger-ом вряд ли получится возможным.

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

Нравится

1 комментарий
Деталь
массовое добавление записей
Скрипты
Разработка

Добрый день.
У меня в разделе Операции есть созданная деталь PaymentInCashflowDetail, которая позволяет добавлять записи для связи с новым разделом Payment. Есть карточка добавления на деталь новой записи. В ней всего три поля - собственно Операция, запись раздела Payment, и тип их отношения (выбор из справочника). Все хорошо работает.
Проблема в рутине заполнения. Потому что например надо пройтись по деталям 40 операций и внести туда однотипную связь. А потом пройтись по еще 30 и добавить еще одну однотипную связь. И так далее.

Поэтому вопрос как изменить стандартно работающую деталь таким образом, чтобы при выборе в реестре нескольких Операций после добавления записи на деталь она добавлялась для всех выбранных операций?

P.S. В коробочной версии нет ни одной детали , которая бы работала таким образом.
Когда-то , используя материалы форума (никак не могу найти ту тему), я вносила изменения в стандартную деталь Доступ, и поэтому при выборе нескольких записей в реестре, указанный доступ раздается сразу на все выбранные записи. Возможно дело в специфике детали Доступ, но аналогичным образом изменить мою созданную деталь не получается.

Нравится

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

Здравствуйте, Виктория!

Уточните, пожалуйста, какую версию продукта Вы используете? Если разговор идет о версии выше 3.4.0.x то данный функционал присутствует в базовой логике. Например можно добавлять по нескольким записям пользователей на деталь "Доступ". Соответственно, реализацию можно посмотреть в базовой конфигурации. Если же версия клиента, ниже 3.4, то там навряд ли получится реализовать такую вещь, так частично данный функционал используется в ядре.

версия 3.3.2.
И даже в ней я делала добавление на детали Доступ сразу по нескольким записям. Но так же не получается сделать здесь

А чем не устраивает тупо в лоб действовать?
1) Добавить на гриде детали кнопку "Добавить для выделенных" (можно даже объединить ее с кнопкой "Добавить", ну как "Удалить" и "Удалить все")
2) Считать с главного реестра id выделенных записей и записать их в массив IDs
3) На кнопку "Добавить для выделенных" поставить логику запуска окна карточки добавления на деталь, добавив параметр IDs
4) Переопределить логику кнопки OK (если параметр пуст или нет такого, то действуй как обычная кнопка ОК, если что-то есть то пройтись по всем id и добавить)

Это решение чуть отличается от изначального, но может ускорить процесс заполнения.
Поэтому пробую.
Сделала новую кнопку, описала что будет происходить по ее нажатию

function btnAddOnDetailOnClick(Control) {
 
	 var ArrayIDs = GetArrayByCollection(grdData.SelectedIDs);
 var Attributes = GetNewDictionary();
 	AddRequiredValuesToDictionary(Attributes, GUID_NULL, true, BaseGridArea);
	for (i = 0; i < ArrayIDs.length; i++) {
	var SourceRecordID = ArrayIDs[i];
	Attributes('SourceRecordID') = SourceRecordID;
 
	   }
 	var DefaultValues = GetNewDictionary();
  	ShowEditWindowEx('wnd_PaymentInCashflowEdit',Attributes, DefaultValues);
}

Видимо уже что-то неверно , потому что окно открывается, но оно не активно, и возникает сообщение "Ошибка копирования записи. Оригинальное сообщение об ошибке: запись удалена".

Здравствуйте, Виктория!
Неправильно передаете аттрибуты. У Вас в итоге получается, что в Attributes('SourceRecordID') будет ID последней выделенной записи.
Лучше сделать так, например:

var SelectedIDs = new ActiveXObject('TSObjectLibrary.StringsList');
SelectedIDs.AssignObject(grdData.SelectedIDs);
Attributes('SelectedIDs') = SelectedIDs;

Андрей, вы правы, но это не объясняет почему "Ошибка копирования записи. Оригинальное сообщение об ошибке: запись удалена". Строчка AddRequiredValuesToDictionary(Attributes, GUID_NULL, true, BaseGridArea); не нужна, как раз из-за нее, наверное, эта ошибка.

Виктория, вопрос уже к вам, где вы поставили кнопку, на гриде раздела или в детали?
Я считаю ее правильно все таки на разместить на детали.
Чтобы взять и передать все id в окно wnd_PaymentInCashflowEdit используйте такой скрипт (надеюсь, что разъяснять что есть что не надо)

var MainWindow = Connector.Attributes('MainWindow');
var WorkspaceWindow = MainWindow.ComponentsByName('wndWorkspace').Window;
var wndGridData = WorkspaceWindow.ComponentsByName('wndGridData').Window;
var grdDataAccount = wndGridData.ComponentsByName('grdData');
var SelectedIDs = grdDataAccount.SelectedIDs.CommaText.split(',');
var Attributes = GetNewDictionary();
Attributes('NotifyObject') = Self;
Attributes('SelectedIDs') = SelectedIDs;   
var DefaultValues = GetNewDictionary();
ShowEditWindowEx('wnd_PaymentInCashflowEdit',Attributes, DefaultValues);

В wnd_PaymentInCashflowEdit допишите на кнопку ОК скрипт (точнее немного переделать)

if (Self.Attributes('SelectedIDs') == null) {
	//Нет такого атрибута, значит действует как обычная кнопка ОК
	//Сюда вписать то, что было на этой кнопке, скорее всего просто scr_BaseDBEdit.btnOKOnClick(Control);
} else {
	//здесь добавляем ко всем выделенным записям
	//можно через Append-Post, можно через Insert Query, можете придумать еще какой-то способ
	//пример с Append-Post
	var Dataset = dlData.Dataset;
	var PaymentDataset = Services.GetNewItemByUSI('ds_AccountIndustry') //замените на свой датасет детали
	for (var i = 0; i < Self.Attributes('SelectedIDs').length; i++) {
		//по одной добавляем записи
		PaymentDataset.Append();			
                //тут пройдем по всем полям на окне
		for(var j = 0; j < Self.ComponentCount; ++j) {
			var Field = Self.Components(j);
			if (Field.DataFieldName) {
				PaymentDataset(Field.DataFieldName) = Dataset(Field.DataFieldName);
			}
		}
		PaymentDataset('AccountID') = Self.Attributes('SelectedIDs')[i]; //AccountID - замените на свое поле
		PaymentDataset.Post();
	}
        //закрываем окно
	PaymentDataset = null;
	Self.Close();
        //обновляем датасет на детали
	var NotifyObject = Self.Attributes('NotifyObject');
	var DetailDataset = NotifyObject.ComponentsByName('dlData').Dataset;
	DetailDataset.Close();
	DetailDataset.Open();
}

Продвигаюсь к цели. Исправила здесь.

function btnAddOnDetailOnClick(Control) {
 
	 var ArrayIDs = GetArrayByCollection(grdData.SelectedIDs);
 var Attributes = GetNewDictionary();
 
 
 var SelectedIDs = new ActiveXObject('TSObjectLibrary.StringsList');
SelectedIDs.AssignObject(grdData.SelectedIDs);
Attributes('SelectedIDs') = SelectedIDs;
 
 		var DefaultValues = GetNewDictionary();
  	ShowEditWindowEx('wnd_PaymentInCashflowEdit',Attributes, DefaultValues);
}

Создала специальный InsertQuery. Теперь пишу код для кнопки ОК.

var InsertObject = {};
 
function btnOKOnClick(Control) {
	var Dataset = dlData.Dataset;
 
		 var Attributes = GetNewDictionary();
		Attributes = Self.Attributes('SelectedIDs');
 
if 	(!IsEmptyValue(Attributes)) {
		for (i = 0; i < Attributes.length; i++) {
 
           var PaymentID = Dataset.Values('PaymentID');
	       var PrincipleID = Dataset.Values('PrincipleID');
	       var ContactID = Connector.CurrentUser.ContactID;
           var CashflowID = Attributes[i];
 
           	if (!Assigned(InsertObject.iq_Insert)) {
		     InsertObject.iq_Insert = Services.GetNewItemByUSI('iq_InsertPaymentInCashflow');
	               }
	var IQ = InsertObject.iq_Insert;
	IQ.ColumnsValues('ID').Value = Connector.GenGUID();
	IQ.ColumnsValues('PaymentID').Value = PaymentID;
    IQ.ColumnsValues('PrincipleID').Value = PrincipleID;
    IQ.ColumnsValues('CashflowID').Value = CashflowID;
      IQ.ColumnsValues('ModifiedByID').Value = ContactID;
    IQ.Execute();
}  
 
 
}   else {
 scr_BaseDBEdit.btnOKOnClick(Control);
 }
		    }
 

Дает открыть окно, заполнить значения.
Но по нажатию кнопки просто ничего не происходит и даже окно не закрывается.

Виктория, очевидно, Вы не добавили функцию закрытия окна после выполнения InsertQuery.
Во-первых, нужно закрывать окно после выхода из цикла. Во-вторых, не уверен, что Self.Attributes('SelectedIDs'); в Вашем случае корректно обрабатывается. попробуйте так:

var InsertObject = {};
 
function btnOKOnClick(Control) {
    var Dataset = dlData.Dataset;
 
    var SelectedIDs = Window.Attributes('SelectedIDs');
    if ((IsEmptyValue(SelectedIDs)) || (SelectedIDs.Count == 0)) {
        scr_BaseDBEdit.btnOKOnClick(Control);
    }
    else {
        for (i = 0; i < SelectedIDs.Count; i++) {
            var PaymentID = Dataset.Values('PaymentID');
            var PrincipleID = Dataset.Values('PrincipleID');
            var ContactID = Connector.CurrentUser.ContactID;
            var CashflowID = SelectedIDs.Items(i);
 
            if (!Assigned(InsertObject.iq_Insert)) {
                InsertObject.iq_Insert = Services.GetNewItemByUSI('iq_InsertPaymentInCashflow');
            }
            var IQ = InsertObject.iq_Insert;
            IQ.ColumnsValues('ID').Value = Connector.GenGUID();
            IQ.ColumnsValues('PaymentID').Value = PaymentID;
            IQ.ColumnsValues('PrincipleID').Value = PrincipleID;
            IQ.ColumnsValues('CashflowID').Value = CashflowID;
            IQ.ColumnsValues('ModifiedByID').Value = ContactID;
            IQ.Execute();
        }
        Self.Close();
    }
}

Поменяла все же
var SelectedIDs = Window.Attributes('SelectedIDs'); на
var SelectedIDs =Self.Attributes('SelectedIDs');

И так теперь все работает! Спасибо всем, кто помогал.

Показать все комментарии
Скрипты
Разработка

Здравствуйте.
Добавляю в базу MySQL данные из Террасофт (3.3.2) с помощью ADO сервисов:
ADOCommand:

INSERT INTO post (ID, post)
VALUES (NULL,  'Краткое описание);

Данные добавляются, но возникает проблема с кодировкой, текст добавляется крякообразный (см скриншот).
Также, если отображаем данные в гриде из MySQL, то также текст отображается с проблемами в кодировке (см. скриншот).
MySQL кодировка сервера UTF8, кодировка столбцов таблиц MySQL utf8_general_ci.

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

Нравится

1 комментарий
Скрипты
Разработка

Добрый день,
как можно "поймать" событие закрытия окна, т.е. можно закрыть через крестик, можно через кнопку "Cancel" или "Ok", или клавишой "Esc". Как можно узнать каким именно образом оно было закрыто?

Нравится

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

Спасибо за Ваше обращение. Мы зарегистрировали его в Службе технической поддержки и назначили специалиста, который сможет Вас компетентно проконсультировать по данному вопросу

По сути способа два - это "ОК", т.е. запись изменений в БД, и остальное - отмена записи в БД.
Для "ОК" есть свое событие - btnOkOnClick(Control), либо OnDatasetBefore(After)Post. Для всего остального - OnCloseQuery(Window).

Спасибо за ответ, но это не совсем то, что нужно. Событие OnCloseQuery(Window) срабатывает и на кнопках Ок и Cancel. Мне же нужно знать что окно именно закрыто кнопкой Cancel, крестиком или клавишой Esc, и если это так, делать какие-то действия.

Здравствуйте, Денис!

Можно на событии OnPrepare окна установить какую-то глобальную переменную в False, в btnOKOnClick установить ее в True, в OnCloseQuery проверить, если False – значит крестиком, Cancel или Esc.

Показать все комментарии
EnableDatasetFields
LookupDataset
Скрипты
Разработка

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

Возник вопрос почему в такой конструции

                Dataset.Close();
                EnableDatasetFields(Dataset, true, ['MyField1', 'MyField2', 'MyField3',]);
                Dataset.Open();
                Dataset('MyField1') = 1;

ПОСЛЕДНЯЯ СТРОЧКА периодически вызывает ошибку "поле не активно"?
Может быть потому, что использую датасет из лукап-поля?

Нравится

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

Ммм... ну вообще было бы неплохо для присвоения значения поля сделать Dataset.Edit() :smile:

А вообще я бы не стал морочить себе голову такой конструкцией - либо по id выбранной записи из нового экземпляра датасета выбирал что надо, либо поставил бы для этих полей always select в запросе и не мучался включая их...

"Александр Кудряшов" написал:сделать Dataset.Edit()

Александр, спасибо! Респект!
"Александр Кудряшов" написал:always select

вполне неплохой вариант :smile:

Показать все комментарии
ошибка
Технические вопросы
Разработка

Периодически выскакивает неведомая ошибка без каких либо опознавательных знаков. Затем происходит вылет из программы.

Нравится

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

Здравствуйте, Татьяна!

Если ошибка возникает только у Вас, необходимо в первую очередь очистить кеш приложения.
Он находится по пути %appdata%\Terrasoft\версия\Cache.
После удаления содержимого папки необходимо перезайти в Terrasoft и проверить актуальность ошибки.

Возможен вариант, что ошибка "закешировалась" в профиль Вашего пользователя.
В этом случае необходимо будет очистить профиль:
- удалить содержимое папки %appdata%\Terrasoft\версия\Profile - удалятся все сохраненные профили пользователей на данном ПК
либо
- выполнить запрос к базе в случае хранения профиля в базе данных (MSSQL):

delete from tbl_ProfileData where UserID in (select Id from tbl_AdminUnit where Name = 'Татьяна') --введите имя пользователя, у которого возникает ошибка

Если это не поможет исправить проблему, необходимо:
- загрузить и установить отладчик скриптов:
http://www.microsoft.com/en-us/download/details.aspx?id=22185
- активировать в реестре режим отладки:
HKEY_CURRENT_USER\Software\Microsoft\Windows Script\Settings
Установить значение 1 параметра JITDebug, перезайти в Terrasoft и воспроизвести ошибку.

Показать все комментарии
Скрипты
Разработка

Добрый день

Подскажите как можно создать примерно такой запрос
и затем выводить результат в Excel

select ac.name , count(op.programid), count( distinct (contactid))

from tbl_Opportunity op, tbl_account ac
where op.createdon >'09.10.2014'
and op.stateid='4660F3C8-F340-4BC4-864A-67237D6023F2'
and op.accountckpid=ac.id
group by ac.name

в сервисе sq_SelectQuery не нашел альтернативу DISTINCT
в сервисе cq_CustomQuery не нашел как затем связать с dataset

Нравится

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

В SQ можно добавить custom SQL column.

таким образом? рисунок экрана в файле

а каким образом тогда передать параметры запроса,
период дат?

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

спасибо с колонками разобрался.

Показать все комментарии
GetLookupDatasetFieldValue
Фильтры
Разработка

Здравствуйте!
В функции GetLookupDatasetFieldValue (scr_DB) стоило бы прописать отключение фильтра, строку
ApplySelectQueryFilter(SelectQuery, 'ID', IDValue, false);
перед выходом из функции, поскольку это сказывается при повторном поиске для поля, которое передается первым параметром.

Нравится

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

А в чем проблема? Этот фильтр включать всегда ведь нужно, а значения параметра (IDValue) может быть разным.

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

Владимир, уточните, пожалуйста, версию бинарников, и поподробнее как воспроизвести (какая карточка, какое поле).

Здравствуйте Дмитрий!
Мне нужно анализировать входящие звонки. В карточке входящего звонка есть флажок "Запрос с сайта" (WebReq) и поле LookupDataControl ContactID - ID абонента. Нужно, чтобы для абонента был обязательным адрес E-Mail (Communication4), если включен флажок "Запрос с сайта". Я это реализовал в карточке звонка. Предусмотрел обработчик события dlDataOnDatasetBeforePost:

if (Dataset.ValAsBool('WebReq')) {
var EMail = GetLookupDatasetFieldValue(Dataset.DataFields('ContactID'), 'Communication4');
if (IsEmptyValue(EMail)) {
ShowErrorDialog('Не указан E-Mail абонента');
DoPost.Value = false;
IncommingCallsEdit.Result = DoPost.Value;
}
}

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

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

Спасибо, передадим информацию в департамент разработки.

Показать все комментарии
Технические вопросы
Разработка

При попытке зайти в свойства какого либо элемента в отчете возникает ошибка. Если создать новый отчет то в нем просто не показывается панель свойств у объектов.
Текст ошибки -

ОБЩАЯ ИНФОРМАЦИЯ

Дата/Время: 06.10.2014 15:28:14
Local Date/Time: 06.10.2014 15:28:14
Local Time Zone: FLE Standard Time
Computer Name: CARTMAN
Имя пользователя: ercartman
Операционная система: Windows 7 Professional, Build: 7601, 'Service Pack 1'
Системный язык: Русский (Россия)
Процессор: Intel, Intel(R) Core(TM)2 Duo CPU     T8100  @ 2.10GHz, MMX
Видеосистема: 1280x800 pixels, 32 bpp
Время работы системы: 0 дней 06:15:28.0572
Время работы программы: 0 дней 05:50:39.0761
Исполняемый файл: C:\Program Files\Terrasoft\Bin\TSAdmin.exe
Версия: 3.4.1.76
Класс исключения: EAccessViolation
Сообщение об ошибке: Access violation at address 5039840F in module 'vcl160.bpl'. Read of address 00000006

MICROSOFT JSCRIPT ERROR INFO

Source: Microsoft JScript runtime error
Description: Unknown error
Exception Text:
Exception Code: -1


CALL STACK

OLEDBAccess.OLEDBAccess.TOLEDBConnection.OLEDBError ()
OLEDBAccess.OLEDBAccess.TOLEDBConnection.Check ()
OLEDBAccess.OLEDBAccess.TOLEDBCommand.Check ()
OLEDBAccess.OLEDBAccess.OpenOrExec ()
OLEDBAccess.OLEDBAccess.DoExecute ()
OLEDBAccess.OLEDBAccess.TOLEDBCommand.Execute ()
DBAccess.DBAccess.TCustomDASQL.InternalExecute ()
MSAccess.MSAccess.TMSSQL.InternalExecute ()
MSAccess.MSAccess.TMSSQL.Execute ()
DBAccess.DBAccess.TCustomDASQL.Execute ()
TSDBExecutor.TSDBExecutor.TDBExecutor.ExecuteQueryWithCheckConnection ()
TSMSSQLExecutor.TSMSSQLExecutor.TMSSQLExecutor.ExecuteSQL ()
TSDBExecutor.TSDBExecutor.TDBExecutor.ExecuteCompetitiveSQL ()
TSDBEngine.TSDBEngine.TDBEngine.ExecuteQuery ()
TSDBEngine.TSDBEngine.TDBEngine.ExecuteDelete ()
TSDeleteQuery.TSDeleteQuery.TDeleteQuery.Execute ()
TSConnector.TSConnector.TConnector.DeleteCompetitiveSession ()
TSConnector.TSConnector.TConnector.StopCompetitiveSession ()
TSDBExecutor.TSDBExecutor.TDBExecutor.RestoreConnection ()
TSDBExecutor.TSDBExecutor.TDBExecutor.ExecuteQueryWithCheckConnection ()
TSMSSQLExecutor.TSMSSQLExecutor.TMSSQLExecutor.InternalGetDatasetBySQLText ()
TSDBDataset.TSDBDataset.TDBDataset.OpenCurrentPageDataset ()
TSDBDataset.TSDBDataset.TDBDataset.InternalOpen ()
TSDataset.TSDataset.TTSDataset.Open ()
TSSelectQuery.TSSelectQuery.TSelectQuery.Open ()
TSServices.TSServices.TServices.GetItemLockInformationFromDatabaseByID ()
TSServices.TSServices.TServices.GetItemRecordByUSICode ()
TSServices.TSServices.TServices.GetRequiredItemRecordByUSICode ()
TSObjectLibraryCommon.TSObjectLibraryCommon.GetSingleServiceByUSI ()
TSLog.TSLog.TLog.CreateInsertQuery ()
TSLog.TSLog.TLog.Get_InsertQuery ()
TSLog.TSLog.TLog.WriteToSystemLog ()
TSExceptionForm.TSExceptionForm.TfrmException.ShowException ()
TSExceptionForm.TSExceptionForm.TfrmException.ExceptionHandler ()
Vcl.Forms.TApplication.HandleException ()
System.Classes.TDataModule.WriteHeight ()

ACTIVE CONTROLS

ScrollBox (TfrxScrollBox)
ScrollBoxPanel (TPanel)
BackPanel (TPanel)
sbReportDesigner (TTSCScrollBox)
frmReportDesigner (TTSCLayout)
lcMain (TTSCLayout)
frmFastReportDesigner (TfrmFastReportDesigner)
(TTSCTabSheet)
pcDesigners (TTSCPageControl)
frmDesigners (TfrmDesigners)
pnlMain (TTSCPanel)
frmDesigners (TTSCLayout)
lcMain (TTSCLayout)
frmMain (TfrmMain)

ЗАГРУЖЕННЫЕ МОДУЛИ

C:\PROGRA~1\COMMON~1\MICROS~1\OFFICE14\Cultures\office.odf (14.0.7013.1000)
C:\PROGRA~1\MICROS~2\Office14\1049\GrooveIntlResource.dll (14.0.7007.1000)
C:\PROGRA~1\MICROS~2\Office14\GROOVEEX.DLL (14.0.7011.1000)
C:\PROGRA~1\TERRAS~1\Bin\TSDESI~1.DLL (3.4.1.76)
C:\PROGRA~1\TERRAS~1\Bin\TSDESI~2.DLL (3.4.1.76)
C:\PROGRA~1\TERRAS~1\Bin\TSMSSQ~1.DLL (3.4.1.76)
C:\PROGRA~1\TERRAS~1\Bin\TSOBJE~1.DLL (3.4.1.76)
C:\PROGRA~1\TERRAS~1\Bin\TSWIND~1.DLL (3.4.1.76)
C:\Program Files\Common Files\System\Ole DB\MSDATL3.dll (6.1.7600.16385)
C:\Program Files\Common Files\System\Ole DB\oledb32.dll (6.1.7601.17514)
C:\Program Files\Common Files\System\Ole DB\OLEDB32R.DLL (6.1.7600.16385)
C:\Program Files\Common Files\System\Ole DB\sqloledb.dll (6.1.7601.17514)
C:\Program Files\Common Files\System\Ole DB\SQLOLEDB.RLL (6.1.7600.16385)
C:\Program Files\Terrasoft\Bin\7z.dll (9.20.0.0)
C:\Program Files\Terrasoft\Bin\adortl160.bpl (16.0.4429.46931)
C:\Program Files\Terrasoft\Bin\dbrtl160.bpl (16.0.4429.46931)
C:\Program Files\Terrasoft\Bin\iconv.dll (1.9.0.0)
C:\Program Files\Terrasoft\Bin\libxml2.dll (Нет информации о версии)
C:\Program Files\Terrasoft\Bin\pcre.dll (6.7.0.0)
C:\Program Files\Terrasoft\Bin\rtl160.bpl (16.0.4429.46931)
C:\Program Files\Terrasoft\Bin\Terrasoft.bpl (3.4.1.76)
C:\Program Files\Terrasoft\Bin\TSAdmin.exe (3.4.1.76)
C:\Program Files\Terrasoft\Bin\TSComponents.bpl (3.4.1.76)
C:\Program Files\Terrasoft\Bin\TSComponentsExtra.bpl (3.4.1.76)
C:\Program Files\Terrasoft\Bin\TSCoreComponents.bpl (3.4.1.76)
C:\Program Files\Terrasoft\Bin\TSDesignerCore.bpl (3.4.1.76)
C:\Program Files\Terrasoft\Bin\TSDesktop.bpl (3.4.1.76)
C:\Program Files\Terrasoft\Bin\TSObject.bpl (3.4.1.76)
C:\Program Files\Terrasoft\Bin\vcl160.bpl (16.0.4429.46931)
C:\Program Files\Terrasoft\Bin\vcldb160.bpl (16.0.4429.46931)
C:\Program Files\Terrasoft\Bin\vclimg160.bpl (16.0.4429.46931)
C:\Program Files\Terrasoft\Bin\VclSmp160.bpl (16.0.4429.46931)
C:\Program Files\Terrasoft\Bin\vclx160.bpl (16.0.4429.46931)
C:\Program Files\Terrasoft\Bin\xmlrtl160.bpl (16.0.4429.46931)
C:\Program Files\Terrasoft\Bin\zlib1.dll (1.2.2.0)
C:\Windows\AppPatch\AcLayers.DLL (6.1.7601.17974)
C:\Windows\system32\advapi32.dll (6.1.7601.18247)
C:\Windows\system32\apphelp.dll (6.1.7601.17514)
C:\Windows\system32\bcrypt.dll (6.1.7600.16385)
C:\Windows\system32\bcryptprimitives.dll (6.1.7600.16385)
C:\Windows\system32\BROWCLI.DLL (6.1.7601.17887)
C:\Windows\system32\CFGMGR32.dll (6.1.7601.17514)
C:\Windows\system32\CLBCatQ.DLL (2001.12.8530.16385)
C:\Windows\system32\comdlg32.dll (6.1.7601.17514)
C:\Windows\system32\credssp.dll (6.1.7601.17514)
C:\Windows\system32\CRYPT32.dll (6.1.7601.18277)
C:\Windows\system32\CRYPTBASE.dll (6.1.7600.16385)
C:\Windows\system32\cryptdll.dll (6.1.7600.16385)
C:\Windows\system32\CRYPTSP.dll (6.1.7600.16385)
C:\Windows\system32\CSCAPI.dll (6.1.7601.17514)
C:\Windows\System32\CSCDLL.dll (6.1.7601.17514)
C:\Windows\System32\cscui.dll (6.1.7601.17514)
C:\Windows\system32\dbghelp.dll (6.1.7601.17514)
C:\Windows\system32\DBNETLIB.DLL (6.1.7600.16385)
C:\Windows\system32\DEVOBJ.dll (6.1.7600.16385)
C:\Windows\system32\DNSAPI.dll (6.1.7601.17570)
C:\Windows\system32\DUI70.dll (6.1.7600.16385)
C:\Windows\system32\DUser.dll (6.1.7600.16385)
C:\Windows\system32\dwmapi.dll (6.1.7600.16385)
C:\Windows\system32\EhStorShell.dll (6.1.7600.16385)
C:\Windows\system32\explorerframe.dll (6.1.7601.17514)
C:\Windows\System32\fwpuclnt.dll (6.1.7601.18283)
C:\Windows\system32\GDI32.dll (6.1.7601.18275)
C:\Windows\system32\HHCtrl.OCX (6.1.7600.16385)
C:\Windows\system32\IMAGEHLP.DLL (6.1.7601.18288)
C:\Windows\system32\IMM32.DLL (6.1.7601.17514)
C:\Windows\system32\IPHLPAPI.DLL (6.1.7601.17514)
C:\Windows\system32\kernel32.dll (6.1.7601.18409)
C:\Windows\system32\KERNELBASE.dll (6.1.7601.18229)
C:\Windows\system32\LPK.dll (6.1.7601.18177)
C:\Windows\system32\mpr.dll (6.1.7600.16385)
C:\Windows\system32\MSASN1.dll (6.1.7601.17514)
C:\Windows\system32\mscms.dll (6.1.7601.17514)
C:\Windows\system32\MSCTF.dll (6.1.7600.16385)
C:\Windows\system32\MSDART.DLL (6.1.7600.16385)
C:\Windows\system32\Msftedit.DLL (5.41.21.2510)
C:\Windows\system32\msimg32.dll (6.1.7600.16385)
C:\Windows\system32\msv1_0.DLL (6.1.7601.17514)
C:\Windows\system32\msvcrt.dll (7.0.7601.17744)
C:\Windows\system32\mswsock.dll (6.1.7601.18254)
C:\Windows\System32\msxml6.dll (6.30.7601.17988)
C:\Windows\system32\napinsp.dll (6.1.7600.16385)
C:\Windows\system32\ncrypt.dll (6.1.7601.18270)
C:\Windows\system32\netapi32.dll (6.1.7601.17887)
C:\Windows\system32\netutils.dll (6.1.7601.17514)
C:\Windows\system32\NLAapi.dll (6.1.7601.17964)
C:\Windows\system32\NSI.dll (6.1.7600.16385)
C:\Windows\SYSTEM32\ntdll.dll (6.1.7601.18247)
C:\Windows\system32\ntdsapi.dll (6.1.7600.16385)
C:\Windows\system32\ntmarta.dll (6.1.7600.16385)
C:\Windows\system32\ntshrui.dll (6.1.7601.17755)
C:\Windows\system32\odbc32.dll (6.1.7601.17514)
C:\Windows\system32\odbcint.dll (6.1.7600.16385)
C:\Windows\system32\ole32.dll (6.1.7601.17514)
C:\Windows\system32\oleacc.dll (7.0.0.0)
C:\Windows\system32\oleaut32.dll (6.1.7601.17676)
C:\Windows\system32\oledlg.dll (6.1.7600.16385)
C:\Windows\system32\olepro32.dll (6.1.7601.17514)
C:\Windows\system32\pnrpnsp.dll (6.1.7600.16385)
C:\Windows\system32\profapi.dll (6.1.7600.16385)
C:\Windows\system32\propsys.dll (7.0.7601.17514)
C:\Windows\system32\PSAPI.dll (6.1.7600.16385)
C:\Windows\system32\rasadhlp.dll (6.1.7600.16385)
C:\Windows\system32\RPCRT4.dll (6.1.7601.18205)
C:\Windows\system32\RpcRtRemote.dll (6.1.7601.17514)
C:\Windows\system32\rsaenh.dll (6.1.7600.16385)
C:\Windows\system32\schannel.DLL (6.1.7601.18270)
C:\Windows\SYSTEM32\sechost.dll (6.1.7600.16385)
C:\Windows\system32\secur32.dll (6.1.7601.18270)
C:\Windows\system32\security.dll (6.1.7600.16385)
C:\Windows\system32\SETUPAPI.dll (6.1.7601.17514)
C:\Windows\system32\SHELL32.dll (6.1.7601.18222)
C:\Windows\system32\SHFolder.dll (6.1.7600.16385)
C:\Windows\system32\SHLWAPI.dll (6.1.7601.17514)
C:\Windows\system32\slc.dll (6.1.7600.16385)
C:\Windows\system32\spool\DRIVERS\W32X86\3\E_FMAIHJE.DLL (0.3.1.54)
C:\Windows\system32\spool\DRIVERS\W32X86\3\E_FUICHJE.DLL (0.3.52.73)
C:\Windows\system32\srvcli.dll (6.1.7601.17514)
C:\Windows\system32\SSPICLI.DLL (6.1.7601.18270)
C:\Windows\system32\SXS.DLL (6.1.7601.17514)
C:\Windows\system32\USER32.dll (6.1.7601.17514)
C:\Windows\system32\USERENV.dll (6.1.7601.17514)
C:\Windows\system32\USP10.dll (1.626.7601.18009)
C:\Windows\system32\uxtheme.dll (6.1.7600.16385)
C:\Windows\system32\version.dll (6.1.7600.16385)
C:\Windows\system32\WindowsCodecs.dll (6.2.9200.16809)
C:\Windows\system32\winmm.dll (6.1.7601.17514)
C:\Windows\system32\WINNSI.DLL (6.1.7600.16385)
C:\Windows\System32\winrnr.dll (6.1.7600.16385)
C:\Windows\system32\winspool.drv (6.1.7601.17514)
C:\Windows\system32\WINSTA.dll (6.1.7601.17514)
C:\Windows\system32\wkscli.dll (6.1.7601.17514)
C:\Windows\system32\WLDAP32.dll (6.1.7601.17514)
C:\Windows\system32\WS2_32.dll (6.1.7601.17514)
C:\Windows\System32\wship6.dll (6.1.7600.16385)
C:\Windows\System32\wshtcpip.dll (6.1.7600.16385)
C:\Windows\system32\wsnmp32.dll (6.1.7601.17514)
C:\Windows\system32\wsock32.dll (6.1.7600.16385)
C:\Windows\system32\wtsapi32.dll (6.1.7601.17514)
C:\Windows\WinSxS\x86_microsoft.vc90.atl_1fc8b3b9a1e18e3b_9.0.30729.4974_none_51cdc180bbe4500f\ATL90.DLL (9.0.30729.4974)
C:\Windows\WinSxS\x86_microsoft.vc90.crt_1fc8b3b9a1e18e3b_9.0.30729.4974_none_50940634bcb759cb\MSVCP90.dll (9.0.30729.4974)
C:\Windows\WinSxS\x86_microsoft.vc90.crt_1fc8b3b9a1e18e3b_9.0.30729.4974_none_50940634bcb759cb\MSVCR90.dll (9.0.30729.4974)
C:\Windows\WinSxS\x86_microsoft.windows.common-controls_6595b64144ccf1df_5.82.7601.18201_none_ec80f00e8593ece5\comctl32.dll (5.82.7601.18201)
C:\Windows\WinSxS\x86_microsoft.windows.common-controls_6595b64144ccf1df_6.0.7601.17514_none_41e6975e2bd6f2b2\comctl32.DLL (6.10.7601.17514)
C:\Windows\WinSxS\x86_microsoft.windows.gdiplus_6595b64144ccf1df_1.1.7601.18120_none_72d2e82386681b36\gdiplus.dll (6.1.7601.18120)

Нравится

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

Константин, выполните перерегистрацию библиотек. Я бы Вам порекомендовала обновить бинарные файлы до одной из последних версий, так как 3.4.1.76 достаточно устаревшая.
Получить новую сборку Вы можете по запросу в службе технической поддержки.

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

Будут еще какие то предложения?

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

Что касается предложений по устранению ошибки, протестируйте, будет ли возникать ошибка на другой машине.

Показать все комментарии
Infinity
Terrasoft
звонки
Технические вопросы
Разработка

Добрый день.

Столкнулась со странной проблемой: заказала лиц. Terrasoft Call Centre, в разделе "Контрагенты" появилась соотв-но деталь "Звонки".
При попытке открыть деталь "Звонки" возникает ошибка (на скриншоте), система висит. Помогает только перезагрузка.

В разделе "Контакты" такой проблемы не возникает.

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

Заранее спасибо.

Версия Террасофт СРМ 3.4.1.170

Нравится

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

Всё оказалось довольно просто.
Не было указано окно грида звонков для контрагента.

Вероятно, эта проблема актуальна для некоторых бинарных файлов.

Здравствуйте, Надежда!

Действительно, это ошибка говорит, что для детали "Звонки" в разделе "Контрагенты" не указано окно грида звонков.

Для исправления необходимо открыть сервис wnd_AccountsWorkspace, найти визуальный компонент детали wndCallsDetail и установить свойство Window для него = wnd_CallGridArea.

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