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

Нравится

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

"Алла Савельева" написал: выполнялся либо автоматически

Можно поковыряться в ConfigurationGrid, метод onUpdateItem. Вызывается при каждом изменении яйчеек ряда. Но там гемор, ибо функция вызывается по 3-4 раза + надо брать из item.changedValues нужную колонку, смотреть не изменена ли она, накладывать кучу фильтров + сложно будет изменить запись вручную(при каждом изменении выбранного поля будет создавать новый элемент) и т.п.

"Алла Савельева" написал:либо по нажатию на некоторую кнопку на клавиатуре, например, на Enter

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

Добрый день, Алла!

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

Илья)

Такая возможность просто необходима для максимального использования возможностей bpm'online и, думаю, что не только в нашей компании.

Данила,

спасибо, что поделились своими наработками - будем пробовать!:wink:

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

Коллеги, добрый день.

Возникла задача: при публикации сообщения в Ленту в карточке обращения, выполнять определенные действия.

Делаю бизнес-процесс, у которого в качестве входного элемента - сигнал, который срабатывает на добавление записи в объект "Сообщение\комментарий". Далее, как я понимаю, мне надо указать Id_Схемы, в которой было опубликовано сообщение (у меня это id раздела Обращение). Указываю Id_Схемы в фильтре входного элемента. Процесс не срабатывает.
Может кто-нибудь подскажет что я делаю не так? Как отловить только нужные мне сообщения?

P.S.: если указываю этот же Id_Схемы при вставке комментария в ленту из процесса (через элемент добавления данных -> в поле Схема указываю Id_Схемы), все отлично отрабатывает

Нравится

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

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

Нужно указывать не Id схемы, а UId.
UId можно получить следующим запросом:

select distinct UID from SysSchema
where Name = 'Case' /*Указываем название схемы*/
and ExtendParent = 0 /*Указываем, что нужна незамещенная схема*/

В разных конфигурациях Id схемы будет разным, но UId будет совпадать.

Также обращаю внимание, что если сообщение является комментарием, тогда у него будет заполнено поле ParentId, а поле EntitySchemaUId останется пустым.

"Демьяник Алексей" написал:Нужно указывать не Id схемы, а UId.

Доброе утро. Спасибо, указала UId вместо Id_Схемы и получилось отловить комментарий, который был опубликован в обращении!

Но теперь возник другой вопрос - а как мне узнать в каком именно обращении было опубликовано сообщение?
Пробовала элементом "чтение данных" прочитать сообщение в ленте и у него поле "Экземпляр объекта" и потом найти обращение, у которого Id = экземпляр_объекта (который я получила при чтении данных). Но что-то не срабатывает.

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

Скриншоты чтений данных предоставьте, пожалуйста.

"Демьяник Алексей" написал:Скриншоты чтений данных предоставьте, пожалуйста.

Добрый день. Скриншот прикрепила.

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

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

Если сообщение является комментарием, тогда необходимо дополнительно прочитать значение поля "Родительское сообщение". Сообщение является комментарием, если:

  1. У сообщения не заполнено поле "Экземпляр объекта"
  2. У сообщения заполнено поле "Родительское сообщение"

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

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

"Демьяник Алексей" написал:Также, такой процесс будет запускаться при добавлении сообщения в любом разделе системы (зависит от настроек стартового сигнала).

Стартовый сигнал срабатывает именно на добавление сообщения в ленте в разделе обращения (проверяла много раз, писала в разных карточках различных разделов сообщения в ленту, срабатывает процесс именно на сообщении, которое было написано в обращении).

"Демьяник Алексей" написал:Такая реализация будет работать, если было добавлено обычное сообщение, которое не является комментарием другого сообщения.

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

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

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

Уважаемые пользователи портала хочу узнать Ваше мнение относительно процедуры обновления клиентов bpm'online on-demand.

Только мне одной не нравится тот факт, что сайт обновляют 'втихую'.

Считаю, что как минимум, если в компании есть человек, который ответственный за работу bpm'online, нужно:
1) согласовывать с ним и уведомлять о планировании обновления;
2) после обновления присылать письмо, что обновление прошло успешно.

Нравится

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

Мне всегда звонят и согласовывают время обновления. Возможно что-то пошло не так в Вашем конкретном случае.

Полностью поддерживаю вопрос

Когда-то были планы о предоставлении песочницы для каждого обновления.
Потом регулярность обновлений достигла почти раз в месяц.
Почти с каждым обновлением происходят какие-то накладки (в стандартной или доработанной функциональности) - иногда приходится искать самим, что изменилось, иногда даже с помощью поддержки. Но в любом случае 1-2 дня частичной неработоспособности.

Пока выглядит так, что для сайтов с доработанной функциональностью надежнее использовать On-site и не столь частые обновления.

"Мамедов Фариз Эльдарович" написал:

Мне всегда звонят и согласовывают время обновления. Возможно что-то пошло не так в Вашем конкретном случае.

Звонят в том случае, если Вы партнер или по дополнительной договоренности.

Но подобные вещи должны быть по умолчанию.

"Владимир Соколов" написал:Пока выглядит так, что для сайтов с доработанной функциональностью надежнее использовать On-demand и не столь частые обновления.

У меня такое же мнение насчет обновлений.

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

простите, имел в виду, что надежнее on-site

"Владимир Соколов" написал:простите, имел в виду, что надежнее on-site

100% и с разработкой проще

Алла, перед обновлением авторизованное лицо по каждому из клиентов/сайтов в обязательном порядке информируется не менее чем за 1 рабочий день. Способ коммуникации чаще всего email, поскольку далеко не всегда удается дозвониться авторизованному лицу. Да и прозвонить авторизованное лицо от каждого клиента, как Вы понимаете, очень длительная процедура.
Письмо содержит информацию об изменениях новой версии и уведомление об обновлении в ближайшее технологическое окно.

Единственная причина, по который Вы можете быть не проинформированы - это не являетесь авторизованным лицом (либо не сообщили, что стали им).
Мы контролируем актуальность авторизованных лиц и если они изменяются внутри компании клиента, просим своевременно нас информировать. Таким образом, исключаются ситуации, когда клиент не проинформирован и это выглядит как "сайт обновляют 'втихую'".

Что касается информирования по факту обновления, это задача уже в проработке.
А именно, прорабатываем уведомление непосредственно в интерфейсе, что позволит сразу после входа на сайт пользователям получать информацию об обновлении приложения.

Наташа,

спасибо за обратную связь.

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

Случайно получилось так что был запущен рекурсивный БП, и теперь в журнале висит 100 копий процесса в стадии "Выполняется".
Через множественный выбор и "Остановить выполнение" - приложение просто виснет.
Перезапуск пула и сайта в IIS - тоже

Как быть ?

Нравится

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

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

Можно экспортировать схему БП из конфигурации (т.е. сделать копию), после этого удалить схему БП из конфигурации - записи из журнала также будут удалены.

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

Существует ли возможность передавать с сигналом параметры, которые у последнего будут собственно входящими, как Id записи в сигналах на изменение и т.д. ?

Нравится

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

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

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

Альтернативный вариант - использование элемента "Задание-сценарий", который запустит другой процесс, передав в него нужные параметры. Подобная тема обсуждалась здесь.

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

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

Являюсь новичком на форуме, хотя уже достаточно перелопатил по теме SVN, но так и не понял.

Возможно ли загрузить каким-то средствами и зафиксировать уже имеющийся код(из пакета Custom) в хранилище SVN?
С новыми пакетами проблем нет. При попытке зафиксировать пакет Custom всплывает такое сообщение.

"Пользовательский пакет не может быть зафиксирован в хранилище".

Насколько я понимаю логику, этот пакет(Custom) вообще нельзя фиксировать в хранилище.
Но не буду забегать вперед.

Подскажите, пожалуйста, кто что знает по данной теме.

Нравится

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

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

Пакет Custom не предназначен для работы с SVN. Перенесите доработки в свой пакет, затем уже выполняйте фиксацию в хранилище.

Илья, спасибо за ответ.

Продолжу вопрос :smile:

На данный момент (досталось в наследство) в пакете "Custom" находится около 400 элементов и разнести их по отдельным пакетам будет делом всей моей жизни. Есть идея, что эти элементы можно скопировать в новый пакет, который уже будет синхронизирован с SVN. Но есть один момент.

Была найдена информация про пакет Custom.

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

Как вы думаете можно ли скопировать элементы в новый пакет, который уже будет синхронизирован с SVN? Может есть ещё варианты?

Ох, как я вас понимаю...
А особенно если с "выездом" в отдельные пакеты паралельно вам надо будет разрабатывать в своих пакетах расширяя то что в Custom это боль.
Предлагаю грязный трюк:
Создаете пустой пакет между Custom и редакционнымSoftKey_RUS
Потом прям на уровне бд в SysSchema - все схемы которые дочерние для Custom, апдейтите для них колонку SysPackageId на значение нового созданного вами пакета.
В теории - всё...
Дальше фиксируете его в SVN ну и собственно сможете вклинить любые ваши пакеты доработок между ним и Custom-ом если надо будет что-то расширять.

Отпишитесь пожалуйста - вышел каменный цветок или нет.
По идее все делается за 15 мин :)

Илья, спасибо за совет. Грязный трюк сработал и конфа компилировалась удачно.
Единственно, что пришлось исправить ещё кое-какие зависимости пакета(внешние сборки, sql-сценарии, данные). Скрипт выглядит примерно так.

update SysSchema set SysPackageId = '42C32F84-0E99-4A7B-8CEF-0A2BD30CF8F7' -- newPackage
where SysPackageId = 'AC5A5588-77FF-4CD0-B5D6-9561546E3D22' -- Custom
 
update SysPackageSchemaData set SysPackageId = '42C32F84-0E99-4A7B-8CEF-0A2BD30CF8F7' -- newPackage
where SysPackageId = 'AC5A5588-77FF-4CD0-B5D6-9561546E3D22' -- Custom
 
update SysPackageReferenceAssembly set SysPackageId = '42C32F84-0E99-4A7B-8CEF-0A2BD30CF8F7' -- newPackage
where SysPackageId = 'AC5A5588-77FF-4CD0-B5D6-9561546E3D22' -- Custom
 
update SysPackageSqlScript set SysPackageId = '42C32F84-0E99-4A7B-8CEF-0A2BD30CF8F7' -- newPackage
where SysPackageId = 'AC5A5588-77FF-4CD0-B5D6-9561546E3D22' -- Custom

Отразится ли это на последующей работе конфигурации неизвестно, буду тестировать.

Ну да я как-то забыл про "Данные" и "Скрипты" но вы по аналогии сделали все верно.
Последствий быть не должно...
Фактически вы можете произвести по базе поиск ID-ника пакета Custom и собственно посмотреть где он там еще задействован, но скорее всего со схемами и модулями он уже никак связан не будет.
Нет связи - нет проблем... остальные Id и UId остались без изменений.

Теперь вы можете при необходимости спокойно расширять/замещать логику и объекты объявленные ранее в Custom и размещать это в обособленных пакетах между Custom и пакетов в который переехали.

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

И таким образом "дело всей вашей жизни", окажется делом нескольких недель или максимум месяцев, и у Вас останется еще целая жизнь на разработку нового функционала :)
Приятной работы.

Илья, благодарю за помощь!

Надеюсь новый функционал уже не за горами!:smile:

"Шумков Виталий" написал:Отразится ли это на последующей работе конфигурации неизвестно, буду тестировать.


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

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

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

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

Нравится

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

А зачем прерывать? Просто не давать сохранить, если при определенном статусе не проходит валидация.

Илья, здравствуйте!

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

Суть:
Согласно тех.заданию в статусных моделях зачастую, условия строятся таким образом:
При переходе со статуса A на статус B:
Должны выполняться некоторые условия, заполненность полей, принадлежность пользователя осуществляющего переход к функц.роли и т.д.
Т.е. все эти проверки должны производиться до того как стадия будет изменена и в случае несоответствия условиям - переход осуществляться не должен, возможно даже выполнятся какая-то дополнительная логика, открыть lookup для выбора незаполненных полей, показать некое информационное сообщение, редиректнуть на карточку и т.д.
Ну и само собой есть логика которую необходимо выполнять уже после перехода, с эти проблем нет - вешаемся на изменение колонки.

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

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

"Демьяник Алексей" написал:задать процесс на событие "Перед сохранением записи".

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

В бизнес-процессе "Перед сохранением записи" у меня нет никакой информации с какого на какой статус переходят, что сводит на нет смысл его внедрения.
PS: почему для БП из списка событий объекта открывается какой-то отдельный мастер БП

Вроде по функционалу то же самое, но главный вопрос - "зачем?".
Далее не ясно какие входящие параметры вызова такого процесса.

Боже... что это вообще за редактор Бизнес-процессов такой, как там работать в принципе не ясно.
А можно как-то перейти в типовой интерфейс редактора ? я в упор не пойму как мне у элемента "Читать данные" просто произвести настройку откуда и какие колонки...
Жесть.

"Севостьянов Илья Сергеевич" написал:"Читать данные" просто произвести настройку откуда и какие колонки

А в событийном БП:
https://academy.terrasoft.ua/documents/technic-sdk/7-4-1/sobytiya-obekta
и нельзя использовать обычные элементы процессов. По сути там можно только использовать события и скрип-таски. Грубо говоря c# код. И используется там старый редактор БП. И перейти на новый редактор тоже нет возможности.
В будущем и вовсе планируется уход от событийных БП.
Для понимания как и что пишут в них, можете почитать базовые событийные БП базовых объектов в базовых пакетах.

Что касается вашего вопроса про переход со стадии на стадию:
Посмотрите в объект Activity в пакете Base, метод SetRemindDatesOnSaving
Там в момент сохранения как раз читают как старое значение колонки:

var oldStartDate = Entity.GetTypedOldColumnValue<DateTime>("StartDate");

Так и новое:

var newStartDate = Entity.GetTypedColumnValue<DateTime>("StartDate");

И дальше строят логику на основании того что изменилось ;)

"Максим Шевченко" написал:и нельзя использовать обычные элементы процессов.

Т.е. "Читать данные" и прочие типовые элементы - использовать просто нельзя в этих БП?

"Севостьянов Илья Сергеевич" написал:Т.е. "Читать данные" и прочие типовые элементы - использовать просто нельзя в этих БП?

Нельзя.

Так... хорошо.
Значит внедрить свою логику "честно" на смену статусов:
В JavaScript схемах - нельзя, так как логика будет не честной в случае если статус будет меняться например бизнес-процессом, или ESQ-запросом из другой карточки и т.д.
Событийные бизнес-процессы - не имеют возможности работы с типовыми элементами БП, там только суровые C# скрипты.
(А кстати вызвать подпроцесс (созданный в нормальном редакторе) с параметрами, может так?)
Обычные БП которые например вешаются на событие смены значения в колонке со статусом - абсолютно лишены возможности получить предшествующий статус, т.к. срабатывают после изменения.
(Как грязный трюк - реализовывать скрытое поле которое будет содержать предыдущий статус)

Как-то все прям сурово... учитывая сколько бизнес логики обычно приходится на смену статусов всяких бизнес-сущностей

"Севостьянов Илья Сергеевич" написал:в случае если статус будет меняться например бизнес-процессом, или ESQ-запросом из другой карточки и т.д.

А как пользователь должен реагировать на такие случаи?

Ну во первых у него должны отрисоваться изменения как минимум :)
Но я говорю в общем про бизнес логику смены статуса.
При смене из статуса A на статус B
необходимо в поле X поместить значение Z + R, создать активность такую-то и установить ответвенного на такого-то если то или это и т.д.
Если это все реализовывать на уровне JS кода клиентской схемы (Это можно).
Но работать сие будет только если Статус/Стадия меняются из карточки непосредственно.
Если по условиям например другой задачи в другой карточки, другого объекта необходимо при смене его статуса, так же менять статус объекта связанного например справочным полем. То JS логика смены стадии там должна быть и тут продублирована (причем со всеми причудами контекста, которого тут не будет), да и в конце концов может статься и так что стадия вообще будет меняться ESQ запросом или бизнес-процессом.

А реакции пользователя можно придумать какие угодно.

"Севостьянов Илья Сергеевич" написал:При смене из статуса A на статус B
необходимо в поле X поместить значение Z + R, создать активность такую-то и установить ответвенного на такого-то если то или это и т.д.

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

"Владимир Соколов" написал:С другой стороны, для статусов мы всегда делаем деталь Status history

Ну т.е. вы самостоятельно заботитесь о сохранении хронологии, а стало быть и описываете бизнес-логику которая эту хронологию контролирует и ведет,
Так же вы имеете в таком случае весьма витьеватые БП в которых вам надо будет получать данные из связанной детали.
Вообщем "полный оверхед" как говорится :)
Когда изначально сама архитектура и идеология статуса/стадии сущности просто обязывает имплементацию предоставлять событийные средства реагирования на "до" и "после", в том числе обеспечивающая предоставление значения стадии сменяемой и стадии целевой в событийные обработчики, будь то callback события в JS или Бизнес процес запущенный по сигналу.
Даже мастер кейсов сделали - прям "годный"...
Но для разработчиков опять "костыли"... как говаривает небезызвестный Umputun: "как будто писали чужие для хищников..."

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


PS:
Для обработки смены статуса в обычном БП есть 2 большие проблемы:
1) В случае если валидация не пройдена - вам потребуется делать откат. Т.е. роизойдет аш 2 сохранения в БД вместо того чтобы при потенциально правильной архитектуре - не сохранять вовсе.
2) Откат это тоже изменение стадии - т.е. бизнес процесс становится рекурсивным, в случае невалидного состояния - вызывается 2 раза как минимум, вместо того чтобы не вызываться вовсе, в случае невалидности (например проверяемой обособленным БП).
Почему: потому что на старте БП, на сигнале вы никак не сможете провести проверку на предмет рекурсивной сработки по откату - только в теле БП.
3) Пользователь открывший карточку сущности стадия которой поменялась - ни сном ни духом... вот это прям совсем трабла, даже не костыльнуть никак (ну только если вебсокеты крутить с событиями в C#, и повсеместной подпиской в JS на перерендер).

Вообщем оверхед просто сумашедший...

Илья, здравствуйте!

Зафиксировали ваше пожелание по настройке валидации при изменении стадии/состояния записи через DCM.

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

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

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

Отнаследовался от BasePage контроллера и представления.

Ext.define("MobileEmptyPage.View", {
        extend: "Terrasoft.view.BasePage",
        xtype: "mobileemptypageview",

        config: {

                id: "MobileEmptyPage",

                scrollable: "vertical",

                navigationPanel: {
                        menuButton: true,
                        showMenuOnSwipe: true
                },

                pageType: Terrasoft.PageTypes.Custom,
                pageId: "MobileEmptyPage",
                menuList: true,
                items: [
                        {
                                xtype: "container",
                                cls: "x-login-form",
                                id: "LoginPageForm",
                                items: [
                                        {
                                                id: "LoginPage_logoImage",
                                                xtype: "image",
                                                cls: "x-settings-logo"
                                        }
                                ]
                        }
                ]
        }
});

и контроллер
Ext.define("MobileEmptyPage.Controller", {
        extend: "Terrasoft.controller.BasePage",       
        config: {
                pageId: null,
                refs: {
                        view: "#MobileEmptyPage"
                }
        },

        launch: function() {
                this.callParent(arguments);
        },

        pageLoadComplete: function() {
        },
       
        pageUnloadComplete: function() {}
});

вызов данной страницы происходит кодом
var pageData = {
                        controllerName: "MobileEmptyPage.Controller",
                        pageSchemaName: "MobileEmptyPage.View",
                        viewXType: "mobileemptypageview"
                };
                var pageName = "MobileEmptyPage";
                Terrasoft.PageCache.addItem(pageName, pageData);
                var pageConfig = {
                        pageSchemaName: pageName
                };
                var mainPageController = Terrasoft.util.getMainController();
                setTimeout(function () {
                        Terrasoft.Router.route("record", mainPageController, [pageConfig]);
                }.bind(this), 1000);

Переход на страницу переходит чудесно! НО потом страница блокируется индикатором загрузки и невозможно его убрать!
Пробовал и Terrasoft.Mask.hide(); и вызывал метод view.setMasked(false);
Подскажите, как завершить процесс загрузки страницы?

Нравится

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

Павел, по-моему дело не в маске, а в том, что "предположительно" есть свал в пользовательском коде. Отладчиком проходились? Можно ли весь код посмотреть?

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

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

Доброго времени суток!
Существует ли возможность с помощью esq запроса добавить данные в таблицу?
Например, создать активность с типом E-mail.
Если да, то каким образом это можно реализовать при использовании задания сценария?

Нравится

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

Добрый день!

Подскажите, пожалуйста, как переносить между приложениями

  1. настройки колонок реестра у разделов, справочников, деталей
  2. сами справочники. Объект переносится решением, но сам справочник нет

также возникла проблема с настройкой колонок справочника в рамках одного приложения:

  1. пользователь1 настроил колонки кастомного справочника
  2. нажал на кнопку "Сохранить для всех пользователей"
  3. Пользователь2 очистил кеш и перезашел в систему.
  4. Настройка пользователя1 у него не отобразилась.

почему настройки первого пользователя не отобразились у второго?

Используем BPM'Online 7.10.0.1742

Нравится

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

"Zaitova Liubov" написал:настройки колонок реестра у разделов, справочников, деталей

переносом данных таблицы SysProfileData
"Zaitova Liubov" написал:сами справочники. Объект переносится решением, но сам справочник нет

переносом данных таблицы Lookup

"Zaitova Liubov" написал:почему настройки первого пользователя не отобразились у второго?

Вероятно потому что у пользователя2 была своя настройка колонок, если под пользователем есть собственная запись по данному реестру в SysProfileData, настройки сис.админа (настройки для всех) игнорируются

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

"Максим Шевченко" написал:
Zaitova Liubov пишет:

настройки колонок реестра у разделов, справочников, деталей

переносом данных таблицы SysProfileData

Zaitova Liubov пишет:

сами справочники. Объект переносится решением, но сам справочник нет

переносом данных таблицы Lookup

Zaitova Liubov пишет:

почему настройки первого пользователя не отобразились у второго?

Вероятно потому что у пользователя2 была своя настройка колонок, если под пользователем есть собственная запись по данному реестру в SysProfileData, настройки сис.админа (настройки для всех) игнорируются


Спасибо!

"Максим Шевченко" написал:
Zaitova Liubov пишет:

настройки колонок реестра у разделов, справочников, деталей

переносом данных таблицы SysProfileData

Zaitova Liubov пишет:

сами справочники. Объект переносится решением, но сам справочник нет

переносом данных таблицы Lookup

Zaitova Liubov пишет:

почему настройки первого пользователя не отобразились у второго?

Вероятно потому что у пользователя2 была своя настройка колонок, если под пользователем есть собственная запись по данному реестру в SysProfileData, настройки сис.админа (настройки для всех) игнорируются


Спасибо!

"Севостьянов Илья Сергеевич" написал:

вот тут

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


спасибо!

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