Подскажите как удалить ошибочно созданный объект в разделе конфигурация? В каких таблицах хранятся объекты, страницы и бизнес-процессы? Если можно - дайте шаблон sql запроса на удаление. Спасибо!

Нравится

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

Для BPMonline Service Desk. Подскажите, как технически реализуется возможность сортировки и прав доступа новых обращений в зависимости от сервиса/подсервиса для конечного исполнителья. Т.е. чтобы ряд групп исполнителей мог видеть обращения исключительно указанной для нее специфики. Если возможно в качестве детальной инструкции. Спасибо!

Нравится

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

Добрый день.

В свойствах объекта ServiceRequest укажите значение колонки Группа и опубликуйте объект.

Таким образом, группа пользователей, назначенная ответственной по инциденту/запросу на обслуживание получит права на запись.

Не совсем то, что я хотел. Допустим, что есть 10 предоставляемых видов сервисов. 2 из них делает одна группа, 2 из них другая, 2 из них третья и так далее. В разделе обращений каждая из групп может видеть только обращения предназначенные именно им(зависимость от выбранного типа сервиса при создании обращения для конкретной группы). Может быть создать несколько папок до раздела обращений и на них дать права? Тем не менее как нацелить на них необходимые сервисы? Пожалуйста, подскажите.

Если вопрос удобства, то корректнее всего было бы создать динамические группы с фильтрами по сервисам, выбранным в инциденте/запросе на обслуживание.
Если вопрос безопасности, то необходимо дописывать логику на сохранении записи. В объекте ServiceRequest, в процессе, на событии ServiceRequestInserted в задании-сценарии ServiceRequestInsertedScriptTask дописать insert, наподобие уже существующего:

var portalUsersSysAdminUnitUId = new Guid("f858d1b9-334b-e111-b408-00155d054c02");
Guid recordUId = Entity.PrimaryColumnValue;
int defPosition = 0;
var defaultSourceUId = new Guid("f41e0268-e324-4228-9e9e-5cb7cc906398");
var nowParameter = new QueryParameter("now", DateTime.Now, "DateTime");
var currentUserContactIdParameter = new QueryParameter("currentUserId", UserConnection.CurrentUser.ContactId);		
for (int operation = 0; operation <= 2; operation++) {
	var insertRight = new Insert(UserConnection)
		.Into("SysServiceRequestRight")
			.Set("CreatedOn", nowParameter)
			.Set("CreatedById", currentUserContactIdParameter)
			.Set("ModifiedOn", nowParameter)
			.Set("ModifiedById", currentUserContactIdParameter)				
			.Set("RecordId", Column.Parameter(recordUId))
			.Set("SysAdminUnitId", Column.Parameter(portalUsersSysAdminUnitUId))
			.Set("Operation", Column.Parameter(operation))
			.Set("RightLevel", Column.Parameter(true))
			.Set("Position", Column.Parameter(defPosition))
			.Set("SourceId", Column.Parameter(defaultSourceUId))
		as Insert;
	insertRight.Execute();
}

Только вместо portalUsersSysAdminUnitUId использовать идентификатор конкретной группы, который будет присваиваться переменной в зависимости от предоставляемого сервиса.

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

Guid groupId;
Guid subserviceId = Entity.SubserviceId;
switch (subserviceId.ToString()) {
	case "d79f2070-f36b-1410-f18a-0050ba5d6c38": //если такой-то подсервис
	groupId = new Guid("f15d4059-e23e-4ed9-9041-88a12736c031"); //то, даем права такой-то группе
	break;
	case "jf75j070-f36b-1410-f18a-hr7dj45d6c38": //а если такой-то подсервис
	groupId = new Guid("r45d4059-e23e-4ed9-9041-88a12736c741"); //то, даем права другой группе
	break;
	default: //условие по умолчанию
	groupId = new Guid("6e0a1b5e-7738-4a9c-9d2d-995f62e51e26"); //даем права группе такой-то
	break;
}
var defaultSource = new Guid("f41e0268-e324-4228-9e9e-5cb7cc906398");
var now = new QueryParameter("now", DateTime.Now, "DateTime");
var currentUserContactId = new QueryParameter("currentUserId", UserConnection.CurrentUser.ContactId);		
for (int operation = 0; operation <= 2; operation++) {
	var insertRight1 = new Insert(UserConnection)
		.Into("SysServiceRequestRight")
			.Set("CreatedOn", now)
			.Set("CreatedById", currentUserContactId)
			.Set("ModifiedOn", now)
			.Set("ModifiedById", currentUserContactId)				
			.Set("RecordId", Column.Parameter(Entity.PrimaryColumnValue))
			.Set("SysAdminUnitId", Column.Parameter(groupId))
			.Set("Operation", Column.Parameter(operation))
			.Set("RightLevel", Column.Parameter(true))
			.Set("Position", Column.Parameter(0))
			.Set("SourceId", Column.Parameter(defaultSource))
		as Insert;
	insertRight1.Execute();
}
Показать все комментарии

Вопрос следующий:Пользователь, под которым заходишь в систему, имеет связь с Контактом 1:1, Контакт имеет связь с Контрагентом 1:1. Как сделать, чтобы пользователь мог работать только с определённой группой Контрагентов (например видеть в поле справочника)

Нравится

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

Ольга, добрый день!

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

Если же необходимо, чтобы конкретные контрагенты отображались только в окне справочника, а в реестре - все, то это можно осуществить при помощи конфигурационной доработки. Если Вас интересует последний вариант, пожалуйста, сообщите дополнительно.

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

Добрый день!

Может кто-то сталкивался с проблемой работы пользователей с процессами в разных часовых поясах?
(Не хочется изобретать велосипед)

Например, есть представительство на Дальнем востоке. Запускают процесс, доходит до шага, который должен выполниться у сотрудника в Москве. В параметр ExecuteDate шага записывается местное время пользователя, например, 14:00.

Приходит сотрудник, под которым должен выполниться шаг в Москве в 9 утра (в ДВ уже вечер и ...все ушли домой - тогда проблем нет :) ...на самом деле, время работы перекрывается), но шаг "висит" в ожидании, пока в Москве не наступит 14:00.
Вопрос: где формируется время выполнения шага при его создании? Каким образом сделать так, чтобы время выполнения шага не на клиенте бралось, а с сервера?
Естественно, формат поля в БД Террасофта не предполагает хранение часовых поясов... видимо при разработке функционала не учитывали, что в РФ немного больше, чем 1 часовой пояс...

Спасибо!

Нравится

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

В принципе, быстрый путь - понятен:
В скрипте в том месте, где происходит переназначение "Ответственного" за шаг (OwnerID) выполнить вычисление часового пояса текущего пользователя и часового пояса того, на кого переводим шаг, вычислить разницу и добавить к ExecuteDate.

Тут возникает еще одна проблема: как получать часовой пояс пользователей?
Для вычисления пояса текущего пользователя наверное есть какие-то функции для получения инфы из ОС. Но тогда вычислить часовой пояс юзера, на которого переводим процесс - не получится.
Значит нужно хранить его в БД (не уверен если в коробочной версии это делается и в какой таблице - tbl_Contact или tbl_AdminUnit... теоретически лучше tbl_Contact - мало ли, нужно запланировать звонок клиенту из Мск на Дальний Восток...)

Как заполнять значение часового пояса в таблице?
То, что оно будет меняться - нет сомнений. Например, пользователь залогинился в систему не на своем компе, а используя rdp... сбилось время на компе польззователя... он приехал в представительство в другом регионе и т.п. В общем, получил доступ к системе в которой ОС не в том часовом поясе, который записан в БД. Т.е. выполнять апдейт часового пояса при необходимости, нужно каждый раз при логине пользователя в систему... (Естественно, что случай, когда юзер меняет часовой пояс на компе, прямо во время сеанса работы, можно считать невероятным, и не наворачивать дополнительно функционал)

При таком подходе в общем то должно работать.

А чтобы уж наверняка, без всяких "исключений" - нужно конечно "поломать" еще функционал, который "забирает" свои шаги на выполнение: привести все к времени сервера - установку даты выполнения и сбор шагов для выполнения.

Добрый день.

Если у Вас установлены системные настройки UseServerTimeZone в true, а в ServerTimeZone установлен какой либо часовой пояс, то время в БД будет храниться именно в данном часовом поясе (т.е. для всей системы, для всех пользователей). Далее, в карточке контакта есть поле "Часовой пояс", каждый сотрудник может установить свой часовой пояс.

Дмитрий, добрый день!

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

Сейчас все еще раз перепроверил, вроде работает.

Добрый день.

Ок, но если что (появятся вопросы и пр.) - обращайтесь.

Добрый день!

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

Пользователь из Екатеринбурга создает карточку контакта, заполняет дату выдачи паспорта 23.07.2013
Потом эту карточку открывает пользователь из Москвы... видит 22.07.2013
Распечатывает детализацию, и эта дата у него 22.07.2013 22:00 (разница между часовыми поясами 4 часа)

Что делать с этим? (Вариант переписывать обработчики всех форм и пр. не предлагать :))

Логика следующая:

если установлена сис. настройка "Использовать часовой пояс сервера"(UseServerTimeZone) - время хранится в БД на сервере в том часовом поясе, который указан в настройке ServerTimeZone.

Соответственно два варианта:

либо убрать настройку UseServerTimeZone, либо проверить, чтобы у всех контактов пользователей поля "Часовой пояс" были заполнены корректно.

Спасибо, Дмитрий,

Снял галочку "Использовать часовой пояс сервера". Посмотрим, что теперь получится.
Настройки часовых зон у пользователей были выполнены правильно.

Итак, вернемся к первоначальному вопросу:

Подскажите пожалуйста, как сделать НАСТРОЙКАМИ, так, чтобы пользователи из разных часовых поясов могли НОРМАЛЬНО работать в Террасофте?

А именно:
1) Нужно чтобы шаг, запущенный под пользователем в Хабаровске в 17 часов, выполнялся у пользователя в Москве в 10 часов а не в 17
2) Нужно чтобы если пользователь в Хабаровске проставляет значение даты в карточке 23.07.2013 оно же отображалось и у пользователя в Москве, а не 22.07.2013
3) Чтобы в журнале изменений запись о "Вставке" была раньше, чем запись об апдейтах и желательно, с достоверным таймстемпом :)

Манипуляции с галочкой привели к тому, что п.3 не выполняется... я еще не смотрел почему, но вставка выполняется с добавлением часового пояса (следовательно, с неправильным таймстемпом)
Апдейты вроде с правильным временем.

Спасибо!

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

По поводу журнала изменений - это вы сейчас о колонке CreatedOn (Создано)? Т.к. данная колонка всегда заполняется временем сервера - проверьте это на уровне БД.
Далее, попробуйте вытащить в реестр именно её.

Бог с ней, с датой создания... но все-таки мне непонятно, почему происходит следующее:

Пользователь в Хабаровске в поле с типом Дата/Время, например, дата выдачи паспорта (Тип Даты/Времени такой же) указывает дату (руками, ни о каких там таймстемпах речи не идет):
01.03.2013

Пользователь в Москве открывает карточку и видит: 28.02.2013. В БД хранится значение 2013-02-28 13:00:00.000

И что делать то? Дата выдачи паспорта у человека 01.03.2013, независимо от того, где его выдали - в Хабаровске или в Калининграде...

В настройках выставлено:
У пользователя из Хабаровска UTC + 11
У пользователя в Москве UTC + 4
Часовой пояс сервера UTC + 4
Галочка Использовать зону сервера сброшена.

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

Добрый день.

Попробуйте либо отключить USe Server Time Zone, либо сбросить поле "Часовой пояс" для всех контактов пользователей.
Тогда время будет сохранятся в базу так, как указано руками.

Либо второй вариант, для таких полей, где применения логики изменения даты/времени в зависимости от часовых поясов не требуется, изменить тип поля на MaskDataControl, настроить маску в виде даты:
xx.xx.xxxx и использовать его, вместо контрола DateTimeDataControl.

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

Всем привет. Сам начинающий пользователь и сразу же вопрос просьба. Проверьте плз скрипт.
Во вложении результат и сам запрос sumpotipu2.zip

Нравится

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

Добрый день, чтобы проверить отчет недостаточно файла repx. нужно дополнительно выгрузить файл с данными.
Еще один способ выгрузить весь отчет:
- В приложении BPMonline перейти в раздел [Конфигурация].
- Найти схему отчета и выгрузить ее используя действие "Экспорт в файл".

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

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

Нравится

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

Добрый день.
В карточке продажи есть предустановленные в базовой версии печатные формы "Коммерческое предложение" и "Досье продажи". Что бы добраться до них, необходимо открыть продажу на просмотр и воспользоваться элементом Действия:

Настройка печатных форм есть в руководстве по настройке, можете обратиться в поддержку, Вам предоставят документ.

Максим, огромное спасибо.

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

1. Регистрация печатной формы:

1. Перейдите в раздел [Справочники].
2. Откройте для редактирования справочник [Печатные формы].
3. В меню [Добавить] выберите команду [MS Word]
4. Введите название формы.
5. Выберите раздел, в действиях которого должна быть доступна печатная форма. Например, чтобы добавить печатную форму договора, укажите раздел [Документы].
6. Установите признаки [Отображать в разделе] и/или [Отображать в карточке].
7. Сохраните карточку печатной формы.

Более детальную информацию можно найти в справке в разделе НАСТРОЙКА СИСТЕМЫ-->настройка печатных форм MS Word

Юрий, спасибо!

Common ->>> Printables
в разделе который у вас на скрине, название Printables.
Вот пишу и уже уверен что Вы нашли))
на русском: Общие --> Печатные формы

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

Здравствуйте уважаемые коллеги, скажите пожалуйста как в боковую панель добавить новый раздел
допустим "Турист" создать для него карточку которую в дальнейшем можно будет заполнить и реализовать к ней печатную форму. И где можно отредактировать или создать новую печатную форму?
Заранее спасибо.
С Уважением Юрий.

Нравится

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

Есть текстовое поле, в нем URL, хочу кнопку, чтобы этот url открыть в новом окне браузера.

Нравится

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

Александр, никогда такого не реализовывал, но по идее на Init'e нужно прописать клиентскую js-функцию клика на кнопку:

что-то вроде

button1.Attributes.Add("onclick", "window.open('help.htm', '', '', 'height=200,width=400'");
// or whatever
//button1.Attributes.Add("onclick", "anyJavaScriptFunction");

Примеры добавления js-функций можно поискать в конфигурации.

весело :smile:
хотя казалось бы что уж проще.....

Решил пойти другим путем, но почему не срабатывает.
На карточке редактирования сделал надпись URLLinkLabel рядом с полем, но код

Page.URLLinkLabel.Caption = "<center><a href=\"http://yandex.ru/\"">Zzz...</a></center>"";

То есть идей ни у кого нет....прискорбно.....

Если код

Page.URLLinkLabel.Caption = "<center><a href=\"http://yandex.ru/\"">Zzz...</a></center>"";

Событие Init, я писал в первом посте :)

Не срабатывает, хотя проверю еще раз....

Здравствуйте, Александр!

Попробуйте либо после базового события Init, либо после базового PageLoadComplete.

тоже дома не сидится по выходным? :biggrin: сейчас попробую, только сервера переставлю на положенное место

Вопрос вот в чем: если я открываю процесс своей карточки редактирования, то у меня там нет ничего...ни init, ни pageloadcomplete, а есть они если открыть родительский процесс. Если я изменю родительский процесс, то есть процесс Базовой страницы редактирования, от которой унаследована моя страница, то эти изменения будут для всех страниц редактирования, которые я унаследую потом от базовой?

Да, так делать не стоит.

Просто добавьте сперва событийный подпроцесс, в него добавьте стартовый элемент с типом сообщение, в свойстве сообщение - пропишите Init. Далее - реализуйте свою логику, и в самом конце генерирующий сигнал с типом сообщение, сообщение также Init, но галочку "отправить" в родительский процесс ставьте. Если в родительский не отправите, то это будет переопределение события, и, скорее всего, карточка не запуститься :)

Мммммм, понял, попробую...

Сделал вот так, в скрипте одна срочка

Page.URLLinkLabel.Caption = "<center><b><a href=\"" + Page.LotURLTextEdit.Value + ""\"" target=\""_blank\"">>>>></a></b></center>"";

Поместите все эти элементы в событийный продпроцесс:

гм.....заработало, только я, наверное как не так значение поля достаю по всей видимости.
Так как вместо ссылки, вроде http://yandex.ru, которое и написано в поле, подставляет туда ссылку НА САМУ КАРТОЧКУ ЭТОЙ ЗАПИСИ.....
на скриншоте видно, слева поле с URLом, справа ссылка в виде >>>>>, курсор мыши как раз на ней и внизу показывается адрес куда она ведет........

URL Link

Значение поля достаю так:

Page.LotURLTextEdit.Value

Короче, проблема в том, что я никак не могу достать значение колонки LotURL
Пробовал через поле редактирования, не получается, так как если брать Page.LotURLtextEdit.Value то получается какой то бред, а если добавить .ToString(), то вообще пустая строка.....

Если пойти через DataSource, все еще хуже: просто падает:

Exception Message: Object reference not set to an instance of an object.
на вызове
Page.DataSource.ActiveRow.GetTypedColumnValue("LotURL")

Вот такая диагностика....

Проблема в ActiveRow.....
То ли в данный момент ее ещё нет, то ли текущая строка по другому называется....

Так оно и есть, как показала диагностика

DataSource.ActiveRowPrimaryColumnValue

на данном этапе весь из себя нулевой, то есть и ActiveRow пуст напрочь, почему оно и падает.

Все верно, на Init'e DataSource не заполнен еще.

Попробуйте сделать тоже самое, но в скрипте после базового PageLoadComplete:

PageLoadComplete > BasePageLoadComplete > Script.

А на какое сообщение вешаться?

PageLoadComplete

При попытке добавить сообщение PageLoadComplete ругается что такой идентификатор уже существует....

Сделал скрипт
PageLoadComplete -->> MyScript -->> PageLoadComplete в родительский процесс
НО! DataSource.ActiveRowPrimaryColumnValue все равно пустое!!!
Не понимаю куда повесить скрипт....

После BasePageLoadComplete пробовали?

PageLoadComplete -->> PageLoadComplete в родительский процесс -->> MyScript

Да, все точно так, просто сначала не понял, все заработало, спасибо.
Я просто сначала не понял, что надо сразу после перехвата PageLoadComplete пнуть родительский процесс, а потом уже после того как все отработает творить свои гнусности :smile:

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

Здравствуйте, и вновь работая в Bpm online 7 я наткнулся на проблему!
Подскажите пожалуйста как в дизайнере страницы в группу элементов добавить новые колонки.
При попытке добавления поля либо улетают куда то вниз, либо обходят группу элементов стороной)
ну, а если уж и получилось добавить поле то после сохранения оно просто отображается как самостоятельный объект)Как с этим бороться?)

Нравится

12 комментариев
var leftPanel = this.schema.leftPanel;
			for (var i = 0; i < leftPanel.length; i++){
				if (leftPanel[i].name == 'client') {
					leftPanel[i].items.push({
						type: Terrasoft.ViewModelSchemaItem.ATTRIBUTE,
						name: 'AccountPaymentCondition',
						columnPath: 'AccountPaymentCondition',
						dataValueType: Terrasoft.DataValueType.LOOKUP,
						visible: true,
						advancedVisible: true,
						rules: [
							{
								ruleType: BusinessRuleModule.enums.RuleType.FILTRATION,
								autocomplete: true,
								baseAttributePatch: 'Supplier',
								comparisonType: Terrasoft.ComparisonType.EQUAL,
								type: BusinessRuleModule.enums.ValueType.ATTRIBUTE,
								attribute: 'Supplier'
							},
							{
								ruleType: BusinessRuleModule.enums.RuleType.FILTRATION,
								autocomplete: true,
								baseAttributePatch: 'Account',
								comparisonType: Terrasoft.ComparisonType.EQUAL,
								type: BusinessRuleModule.enums.ValueType.ATTRIBUTE,
								attribute: 'Account'
							}
						]
					});
					continue;
				}
			}

Ольга, спасибо за код, но мне кажется что в дизайнере процессов не зря есть раздел Группа элементов и она как минимум должна работать)), и да, мне кажется что данный код должен размещаться в базовом объекте, а его редактирование запрещено))
Если я не прав укажите пожалуйста куда разместить данный код!
С уважением Беляев Юрий.

Не совсем понимаю, при чем тут дизайнер процессов, но вот что я имела ввиду:
У меня есть страница редактирования договора, в ней есть группа Клиент, в нее я добавляю поле. Для этого я создаю новую схему через меню кнопки добавить пункт "Замещающую клиентсткий модуль". Чтобы не удалились уже существующие элементы в схеме, а только добавились новые, я использую метод push. Ниже полный код моей замещающей схемы:

define('ContractPage', ['ext-base', 'terrasoft', 'sandbox', 'Document',
	'DocumentModule', 'ContractPageStructure', 'ContractPageResources', 'ConfigurationEnums',
	'BusinessRuleModule', 'BaseFiltersGenerateModule', 'MoneyModule', 'ConfigurationConstants'],
	function(Ext, Terrasoft, sandbox, Document, DocumentModule, structure, resources, ConfigurationEnums,
	         BusinessRuleModule, BaseFiltersGenerateModule, MoneyModule, ConfigurationConstants) {
		structure.userCode = function() {
			var leftPanel = this.schema.leftPanel;
			for (var i = 0; i < leftPanel.length; i++){
				if (leftPanel[i].name == 'client') {
					leftPanel[i].items.push({
						type: Terrasoft.ViewModelSchemaItem.ATTRIBUTE,
						name: 'AccountPaymentCondition',
						columnPath: 'AccountPaymentCondition',
						dataValueType: Terrasoft.DataValueType.LOOKUP,
						visible: true,
						advancedVisible: true,
						rules: [
							{
								ruleType: BusinessRuleModule.enums.RuleType.FILTRATION,
								autocomplete: true,
								baseAttributePatch: 'Supplier',
								comparisonType: Terrasoft.ComparisonType.EQUAL,
								type: BusinessRuleModule.enums.ValueType.ATTRIBUTE,
								attribute: 'Supplier'
							},
							{
								ruleType: BusinessRuleModule.enums.RuleType.FILTRATION,
								autocomplete: true,
								baseAttributePatch: 'Account',
								comparisonType: Terrasoft.ComparisonType.EQUAL,
								type: BusinessRuleModule.enums.ValueType.ATTRIBUTE,
								attribute: 'Account'
							}
						]
					});
					continue;
				}
			}
			leftPanel.push({
				type: Terrasoft.ViewModelSchemaItem.GROUP,
				name: 'paymentsumm',
				caption: resources.localizableStrings.PaymentSummGroupCaption,
				visible: true,
				collapsed: false,
				wrapContainerClass: 'control-group-container',
				items: [
					{
						type: Terrasoft.core.enums.ViewModelSchemaItem.ATTRIBUTE,
						name: 'PaymentDate',
						columnPath: 'PaymentDate',
						dataValueType: Terrasoft.DataValueType.DATE,
						visible: true
					},
					{
						type: Terrasoft.core.enums.ViewModelSchemaItem.ATTRIBUTE,
						name: 'PaymentAmount',
						columnPath: 'PaymentAmount',
						dataValueType: Terrasoft.DataValueType.FLOAT,
						visible: true,
						advancedVisible: true
					},
					{
						type: Terrasoft.core.enums.ViewModelSchemaItem.ATTRIBUTE,
						name: 'PrimaryPaymentAmount',
						columnPath: 'PrimaryPaymentAmount',
						dataValueType: Terrasoft.DataValueType.FLOAT,
						visible: true,
						customConfig: {
							enabled: false
						},
						dependencies: ['CurrencyRate', 'PaymentAmount'],
						methodName: 'RecalcPaymentAmount'
					}
				]
			})
 
			this.methods.RecalcPaymentAmount = function() {
				MoneyModule.RecalcBaseValue.call(this, 'CurrencyRate', 'PaymentAmount', 'PrimaryPaymentAmount');
			};
		};
 
		return structure;
	});

Ольга, прошу прощение, это моя ошибка! я написал в дизайнере процессов, а на самом деле имел виду
Дизайнер страницы в Bpm online 7), но не чего страшного код мне тоже пригодится)

Кстати да! Присоединяюсь к вопросу! Имею у себя аналогичную проблему! Поля "прыгают" по странице как хотят.

Тема попала не в тот раздел. Это 2-ой Террасофт, а нужно BPMonline. Как и соседняя тема этого же автора.

Оо, вчера был случай)), после добавления Группы элементов "Налоги" мне добавило около 200 групп)) Одна в одной) типа: Налоги -->Налоги-->Налоги .... Налоги N-количество)

"Наталия П." написал:Кстати да! Присоединяюсь к вопросу! Имею у себя аналогичную проблему! Поля "прыгают" по странице как хотят.

Наталья, пожалуйста, продемонстрируйте скрин-шотами.

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

создаю новую группу

Начинаю туда добавлять поля :

Передвигаю поле внутрь группы :
Потом добавляю следующее поле :
И вот уже предыдущее поле "вылетело" из группы :

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

Ну и вот еще пример... Вот как выглядит страница в режиме Page Designer :

И вот она же в режиме Edit :

Причем сколько раз я зайду в режим Page Designer, столько раз у меня будет дублироваться строка. Могу показать и с 10-ю строками....

Причем это поле - родное для системы, не мною созданное....

Спасибо за подробную инструкцию, передал в отдел разработки для анализа.

Здравствуйте, столкнулся с той же проблемой и нашел решение!)
Дело в том что при установке на более старые версии windows 2003 server и тд, (не выше Windows 2008 r2) web компоненты находящиеся в iis неполные! все что нужно сделать это запустить web установщик iis и установить все что касается iss and Asp! так как 7 версия работает в новом интерфейсе и компонентов для ее запуска не хватает она не выполняет свои функции на полную и из-за этого часто не работаю БП и групповые элементы ну и еще всякая мелочь) Так что не нужно обращаться к силам зла) танцевать с бубнами а просто почитайте тех документацию по установке Bpm 7) там подробно описано какие компоненты iss нужны для Bpm! если что то не понятно обращайтесь опишу процесс установки по подробней)

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

Здравствуйте, помогите пожалуйста решить задачу.
Мне нужно отредактировать базовую карточку контрагента.
Мои действия:
Я создал заменяющую карточку для контр агента где указал в родительскую страницу контрагент.
В замещающей карточки отредактировал так как мне нужно было, изменил название полей и добавил новые, также описал скрипт по сокрытию полей в зависимости от типа контрагента, и вот уже добавлял поля в новом интерфейсе и при тестировании увидел что скрипт не выполняется.
Скажите пожалуйста, можно ли объединить базовую и замещающую карточки между собой что бы в новом интерфейсе работал скрипт или нужно это делать каким то иным способом??
Если нужна какая либо доп. информация, пишите, предоставлю все необходимое!
Заранее огромное спасибо.

Нравится

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

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

Объединять карточки не нужно, по умолчанию система будет использовать замещающую карточку (+ логика из её родительской карточки).
Если скрипт не отрабатывает, скорее всего Вы допустили в нем ошибку.
Можете предоставить листинг?

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

Опять тема сохранена не в том разделе. :)
По своему опыту могу сказать, что менять в Setting-ах внешний вид карточек для BPM7 нет смысла. Они все равно будут выглядеть так, как и были сформированны ранее. Изменения делаются только через Page Designer на самой странице.

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