Всем добрый день.

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

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

Я удалила из карточки несколько пользовательских полей, которые там уже не нужны, но это не повлияло на особенности работы. Пробовала в Администраторе установить большие размеры для карточки, но в начале просто отражается большая карточка, а поля прорисовываются все равно позже, а карточка дрожит.
Видела вот этот старый пост на форуме https://community.terrasoft.ru/forum/topic/1439, из него следует, что в моей версии программы такого быть уже не должно.
Более того проблема не исчезала даже при установке другой сборки Террасофта.
В коде wnd_OpportunityEditScript функция GetNewItemByUSI не используется, хотя мы переходили из версии в версию, и могли перетянуть ее в нашу версию. Может быть в каком-то другом связанном скрипте эта функция и есть.

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

Нравится

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

Такое может быть, если в зависимости от типа те или иные компоненты делаются видимыми и скрытыми. Если проблема в этом, в коде скрипта карточки должна быть функция, которая это делает.
Примерно такая:

function ShowEditControlsDueToOpportunityType(OpportunityTypeID) {
	Self.BeginUpdate();
	...
	edtField1.IsVisible = (OpportunityTypeID == opType1);
	...	
	Self.EndUpdate();
}

Название и код у вас будут отличаться, но суть та же. В зависимости от типа определяется видимость.
Так вот, BeginUpdate и EndUpdate в начале и конце отключают мигание. Если в вашей функции их нет - надо добавить.

Если подобной функции нет - проблема в чём-то другом.

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

Что интересно : вот если я подвину дрожащее окно, оно дрожать перестает. А потом , не заполняя ничего в этом окне Продажи, перейду, например в отладчик и тут же обратно, то оно снова дрожит!
Если его опять подвинуть, то перестает, и так до бесконечности.
При обычном переходе в другую программу создается какая-то активность, подскакивает нагрузка и фактически система висит до того момента, как окно будет подвинуто.
Или еще можно по реестру клацнуть, тогда дрожание прекращается тоже.
Может дело и не пользовательских полях совсем ?

Добрый день!

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

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