Можно ли из скрипта или правила динамически менять названия полей?

Например, называлось моё поле Цена, стало называться Стоимость. Я имею ввиду стандартными средствами, без html хаков?

Нравится

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

Добрый день, да можно, для этого при добавлении поля необходимо реализовать метод, который будет возвращать имя вашей колонки. И свойство Caption забиндить на него, или на какой-то атрибут (смысл тот же)

{

                "operation": "merge",

                "name": "Owner",

                "values": {

                    "caption": {

                        "bindTo": "getDetailCaption"

                    },

                    "layout": {

                        "colSpan": 12,

                        "rowSpan": 1,

                        "column": 12,

                        "row": 1

                    }

                }

            }

getDetailCaption: function() {

                var caption = this.get("Resources.Strings.GantDetailCaption");

                return caption;

            },

Добрый день, да можно, для этого при добавлении поля необходимо реализовать метод, который будет возвращать имя вашей колонки. И свойство Caption забиндить на него, или на какой-то атрибут (смысл тот же)

{

                "operation": "merge",

                "name": "Owner",

                "values": {

                    "caption": {

                        "bindTo": "getDetailCaption"

                    },

                    "layout": {

                        "colSpan": 12,

                        "rowSpan": 1,

                        "column": 12,

                        "row": 1

                    }

                }

            }

getDetailCaption: function() {

                var caption = this.get("Resources.Strings.GantDetailCaption");

                return caption;

            },

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

Хочу дополнительно по определенным сложным условиям фильтровать Результат в активности.

Единственным способом мне видится lookupListConfig filters. 

Вопрос - как корректно вызвать родительские фильтры, чтобы не копипастить их в свой код?

Нравится

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

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

Не так давно уже обсуждали подобную тему здесь.

Если бы родительские фильтры были вынесены в отдельный метод, тогда можно было бы просто Ваш метод унаследовать от родительского и в нём вызвать callParent.

Но так как, к сожалению, это не так, Вам прийдется дублировать родительские фильтры в своем коде sad

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

Не так давно уже обсуждали подобную тему здесь.

Если бы родительские фильтры были вынесены в отдельный метод, тогда можно было бы просто Ваш метод унаследовать от родительского и в нём вызвать callParent.

Но так как, к сожалению, это не так, Вам прийдется дублировать родительские фильтры в своем коде sad

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

Добрый день, коллеги!

Возникла такая потребность, есть к примеру деталь (detail), при нажатии на плюс появляется список страниц раздела, как сделать так чтоб при нажатии на страницу раздела не переходило туда, а брало от-туда пустые поля с датой, текстом, поиском и т.д.?

Пример работы должен получится как в Employees -> Communication options.

 

 

Нравится

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

Логика детали средств связи контакта с многоуровневым меню кнопки [+] реализована в схеме страницы ContactCommunicationDetailV2 и в схеме модели BaseCommunicationViewModel.

Есть ли возможность это сделать без программирования? Мне как новичку сложно там разобраться, а именно разобраться где начало. 

Без программирования можно создавать только обычные детали в мастере разделов. Более сложное делается кодом.

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

После компиляции вывалилось сообщение о неуспешном завершении, после этого в колонке текст последней ошибки объекта всплыло сообщение The statement terminated. The maximum recursion 100 has been exhausted before statement completion. что это значит и как ее исправить? объект не открывается, метаданные тоже

Нравится

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

Очень похоже на зацикливание в иерархии наследования, если сгенерировать исходные коды и компилировать все не помогает, то попытайтесь экспортировать последние измененные схемы в файл, удалить их и перекомпилировать (Режим компилировать все)

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

Уточните, какие изменения вносились с Вашей стороны в конфигурацию?

У Вас on-site или on-demand?

Очень похоже на зацикливание в иерархии наследования, если сгенерировать исходные коды и компилировать все не помогает, то попытайтесь экспортировать последние измененные схемы в файл, удалить их и перекомпилировать (Режим компилировать все)

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

Григорий Чех,

Спасибо, разобрались! Каким-то образом в созданном нами объекте вместо "базового" родительским был указан сам новосозданный объект. Т.е. он ссылался сам на себя.

Геннадий Кутуков,

Ну чтото такое я и подозревал в общем хорошо что все наладилось :)

Григорий Чех,

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

Подскажите пожалуйста, как удалить последние изменения в схемах?

Алла Савельева пишет:

Уточните, какие изменения вносились с Вашей стороны в конфигурацию?

У Вас on-site или on-demand?

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

Подскажите пожалуйста, как удалить последние изменения в схемах?

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

В конфигурации нет механизма, который сможет (как Ctrl+Z) отменить или удалить последние изменения в схемах. 

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

Решил подключить Visual Studio,  для более удобной разработки.

После измены параметров:

fileDesignMode enabled="true" />
...
<add key="UseStaticFileContent" value="false" />

зашел компилировать - пишет что не найдено родителя у (Внимание!) схемы - это исходный код!

В системе уже есть несколько пакетов с доработками, все делал по https://academy.terrasoft.ru/documents/technic-sdk/7-12/nastroyka-visual-studio-dlya-razrabotki-v-faylovoy-sisteme

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

Нравится

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

 

Вот текст ошибки:

Зависимость 'UsrSyncInvoicesService' пакета 'Sync1C' не найдена. Путь поиска: C:\inetpub\wwwroot\Terrasoft.WebApp\Terrasoft.Configuration\Pkg\Sync1C\Schemas\UsrSyncInvoicesService\UsrSyncInvoicesService.cs

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

Ефанов Иван Александрович,

так не дает скомпилировать! я же писал об этом

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

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

Она на месте, с ней все в порядке, используется в БП, компиляция без настроек проходит успешно

Может, при компиляции из локальных файлов пытается брать из другого места, где нужной схемы нет?

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

Есть БП, в нем есть скрипт. в скрипте выполняется некий код, который использует сервис ReportService. Там берется Connection. Если запускать БП вручную - все работает. Если по плану - выбивает ошибку.

Вопрос: Как в БП передать Get("UserConnection"); в userConnection сервиса ReportService? Есть ряд других сервисов, возможно туда тоже нужно будет это передать....

Нравится

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

Почему вы решили что UserConnection не передается?

Вы от какого пользователя запускаете БП по расписанию? Есть ли у єтого ползователя права для рабьоты с  ReportService?

Добавить комментарий

Григорий Чех,

Автозапуск от пользователя что и обычный запуск, вот ошибка:

System.ServiceModel.ServiceActivationException: Set AspNetCompatibilityEnabled true

   в Terrasoft.Web.Common.BaseService.get_UserConnection()

   в Terrasoft.Configuration.ReportService.ReportService.GenerateDevExpressReport(String entitySchemaUId, String reportSchemaId, String recordId, String reportParameters)

   в Terrasoft.Configuration.ReportService.ReportHelper.CreateReport(String entitySchemaUId, String reportSchemaUId, String templateId, String recordId, String reportParameters, Boolean convertInPDF)

   в Terrasoft.Configuration.ReportService.ReportService.CreateReport(String entitySchemaUId, String reportSchemaUId, String templateId, String recordId, String reportParameters, Boolean convertInPDF)

   в Terrasoft.Core.Process.UsrAutoSendNightReportMethodsWrapper.ScriptTask1Execute(ProcessExecutingContext context)

   в Terrasoft.Core.Process.ProcessFlowElement.Execute(ProcessExecutingContext context)

Функциональность сервиса ReportService была разработана под вызов с веба, а не с сервера. Ряд его логики может не работать при вызове с серверной стороны. С GenerateMSWordReport будет аналогично.

Те определять UserConnectionнужно как для сервиса

userConnection = HttpContext.Current.Session["UserConnection"]

Те определять UserConnectionнужно как для сервиса

userConnection = HttpContext.Current.Session["UserConnection"]

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

Дмитрий Степанов,

тоже делал так, но там нужно было несколько функций тока, а тут хз что нужно будет...

Добрый день!

У меня данная проблема отпала при передаче параметра "UserConnection" конструктору ReportService.

var reportService = new Terrasoft.Configuration.ReportService.ReportService(UserConnection);

 

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

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

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

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

Нравится

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

Надо было искать не в QuickFilterModuleV2, а в CustomFilterViewModelV2.

Список колонок получает функция:

function getSimpleFilterColumnList(filters, list) {
	list.clear();
	var columnList = {};
	var columnNames = [];
	var columns = this.entitySchema.columns;
	Terrasoft.each(columns, function(column) {
if (column.dataValueType !== Terrasoft.DataValueType.GUID &amp;&amp;
	column.dataValueType !== Terrasoft.DataValueType.TIME &amp;&amp;
	column.dataValueType !== Terrasoft.DataValueType.BLOB &amp;&amp;
	column.dataValueType !== Terrasoft.DataValueType.IMAGELOOKUP &amp;&amp;
	column.usageType !== ConfigurationEnums.EntitySchemaColumnUsageType.None) {
	if (this.isColumnDeprecated(column)) {
return;
	}
	columnNames.push({
name: column.name,
caption: column.caption
	});
}
	}, this);
	var sortedColumnNames = columnNames.sort(function(a, b) {
if (a.caption === b.caption) {
	return 0;
} else {
	return a.caption &gt; b.caption ? 1 : -1;
}
	});
	Terrasoft.each(sortedColumnNames, function(item) {
var column = columns[item.name];
columnList[column.name] = {
	value: column.name,
	displayValue: column.caption,
	dataValueType: column.dataValueType,
	referenceSchemaName: column.referenceSchemaName
};
	});
	list.loadAll(columnList);
}

 

Я попробовал переопределить этот модуль, просто сделать пустым выпадающий список. Этот модуль в версии 7.13 нельзя заместить обычным способом, я использовал материал . Раскройте пожалуйста подробнее как удалось переопределить эту функцию?

Так это тема 2018 года, тогда в 7.11 ещё было можно.

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

Здравствуйте! Была ли у кого-нибудь такая ситуация, когда на детали сортируешь по определённому полю, и происходит не просто сортировка, а изменяется количество записей, т.е. например до того как отсортировать записи на реестре детали, их было 8, а после - 12?

Нравится

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

Старнное какоето поведение, может вы просто поиск не нажимали или не все записи подгружались сразу, проверьте внимательно

Старнное какоето поведение, может вы просто поиск не нажимали или не все записи подгружались сразу, проверьте внимательно

О, тоже не раз замечал клиент такое. В реестре видит одно количество записей, а в Summaries - другое. И только refresh помогает

Если в Summaries  больше то можно думать в сторону фильтрации и о каком реестре речь о Lookup справочнике или реестре раздела? 

В первом случае можно думать о фильтрации во втром права и тд. А свалов не было в консоли броузера?

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

Если же воспроизводится постоянно, нужно в профайлере смотреть SQL-запросы: может, какое-то хитрое условие фильтрации для этой группы в разделе или условия привязки детали к такому приводят.

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

 

 

Григорий Чех,

В консоли ничего не валится, и я дождался загрузки данных после нажатия "показать ещё". Речь идёт о реестре детали "Пакет документов".

На первом скрине при фильтрации по колонке "Документ", есть 2 записи "Договор аренды" у заявителя, всё хорошо.

https://yadi.sk/i/vH19rH6KcGSXOQ

но потом при фильтрации по колонке "Роль", этих записей у заявителя нет, вот может кто-то объяснит что это?

https://yadi.sk/i/AZFQEA194gzTKQ

Смотрите SQL-запросы при открытии детали.

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

При звонке из задачи нажимаю ПОЗВОНИТЬ. Звоню, звонок сохраняется, но к задаче не привязывается (не появляется на вкладке Звонки и SQL запросом видно, что ActivityId = NULL).

При этом на сервере разработки ОК, на проде - не работает привязка. 

Чего не хватает7

Нравится

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

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

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

У меня 7.11.2 

Если дело не в доработках на тесте, попробуйте обновиться.

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

Добрый день!

Подскажите, можно ли как-то принудительно завершить подпроцесс, не дожидаясь его выполнения? Не отменить, а именно завершить.

 

Нравится

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

На маркет плєйсе есть решение для массового закрытия БП по одному можно зайти в журнал БР выбрать нужный экземпляр и завершить!

На маркет плєйсе есть решение для массового закрытия БП по одному можно зайти в журнал БР выбрать нужный экземпляр и завершить!

Можно в процессе добавить элемент-сигнал и от него стрелку прямо к элементу-окончанию. И если где-то отправить нужный сигнал, процесс завершится.

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

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

Решение из маркет плейса не подходит по причине того что версия приложения 7.11.1, а дополнение должно работать на версии не ниже 7.11.3

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

А по поводу версий, Вы можете обновиться с 7.11.1 на 7.11.3, между минорными версиями не должно быть особо тяжело.

Шувалов Николай Юрьевич,

Да проверьте свою гипотезу. Зайдите в журнал процессов (на страничке дизайнера вверху) Найдите ваш экземпляр и попробуйте завершить подпроцессы или повторно запустить (подтолкнуть) на выполнение какого то из блоков БП

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

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