Помогите пожалуйста

В разделе "Контрагенты", перестала открывается страница "Клиенты".

При попытке войти в карточку записи типа "Клиент" или при открытии мастера разделов по странице "Клиенты". Страница зависает и выводится ошибка:

ViewGeneratorV2.js?hash=348b01047b31481ca08cae6d1c7bf538:1681 Uncaught TypeError: viewModel.getColumnByName is not a function
    at i.findViewModelColumn (ViewGeneratorV2.js?hash=348b01047b31481ca08cae6d1c7bf538:1681)
    at i.generateControlLabel (ViewGeneratorV2.js?hash=348b01047b31481ca08cae6d1c7bf538:1599)
    at i.generateModelItemLabel (ViewGeneratorV2.js?hash=348b01047b31481ca08cae6d1c7bf538:1451)
    at i.generateModelItem (ViewGeneratorV2.js?hash=348b01047b31481ca08cae6d1c7bf538:1470)
    at i.generateStandardItem (ViewGeneratorV2.js?hash=348b01047b31481ca08cae6d1c7bf538:574)
    at i.generateItem (ViewGeneratorV2.js?hash=348b01047b31481ca08cae6d1c7bf538:461)
    at i.generateGridLayoutItem (ViewGeneratorV2.js?hash=348b01047b31481ca08cae6d1c7bf538:697)
    at i.<anonymous> (ViewGeneratorV2.js?hash=348b01047b31481ca08cae6d1c7bf538:672)
    at Object.Terrasoft.utils.array.each (all-combined.js:262)
    at i.generateGridLayout (ViewGeneratorV2.js?hash=348b01047b31481ca08cae6d1c7bf538:668)

 

Перегенерация и перекомпиляция непомогает.

Версия системы не обновлялась в последнее время

Нравится

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

зачистку redis с остановкой и повторным запуском application pool делали?

Максим Цынгаев,

Нет, это не дает никакого результата

Роман, судя по callstack'у ошибка либо в клиентской схеме этой страницы, либо же некорректна замещена ViewModel. Тут нужна отладка, рекомендуем обратиться в официальную поддержку support@terrasoft.ru с указанием проблемного сайта.

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

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

Кастомизировал стандартный механизм связей, добавив справочное поле "Дебитор"

https://community.terrasoft.ru/questions/dobavlenie-svoego-pola-v-statn…

Вроде все работает:

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

Собственно искал соответсвующие методы  в обьектах:

EntityConnectionLinksUtilities  и ActivityMiniPage

Но че-то не нашел(  Может кто сталкивался?

 

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

Нравится

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

Здравствуйте, Роман!

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

1. Необходимо узнать Uid колонки «ActivityConnection» (колонка привязка активностей) в объекте «Activity» (для дальнейших действий). Узнать можно через метаданные (Рис. 2). Uid является уникальным.

 

Рис. 1

2. Далее необходимо добавить запись в таблицу «EntityConnection» с помощью команды INSERT INTO, где SysEntitySchemaUId = '2bbd4d7c-2727-47d6-bde1-311fdbbbb97e' (это ID схемы активностей) и ColumnUId = Uid колонки, который я описал во 1 пункте (например, '2bbd4d7c-2727-47d6-bde1-311fdbbbb97e').

 

Пример SQL запроса:

Insert into EntityConnection (SysEntitySchemaUId, ColumnUId)&nbsp;values ('C449D832-A4CC-4B01-B9D5-8A12C42A9F89',&nbsp;'2bbd4d7c-2727-47d6-bde1-311fdbbbb97e')

 

3. Затем заместить схему «EmailPageV2» и вставить метод «setAdditionalDefValues» (Рис. 2).

 

 

Рис. 2

 

setAdditionalDefValues:&nbsp;function(openCardConfig, next) {

&nbsp;&nbsp;&nbsp;&nbsp;openCardConfig.defaultValues.push({

&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;name:&nbsp;"ActivityConnection",

&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;value:&nbsp;this.get("Id")

&nbsp;&nbsp;&nbsp;&nbsp;});

&nbsp;&nbsp;&nbsp;&nbsp;next();

}

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

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

 

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

 

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

 

Нравится

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

Насколько я помню вам в таблицу EntityConnection. Там находятся связи между объектом-колонкой. Остаётся удалить ненужные

Варфоломеев Данила, а как можно удалить если объект в предустановленном пакете? 

Смолина Екатерина Михайловна,

удалить строки из таблицы БД... вот только тут надо определить, какие именно строки надо удалять

Максим Цынгаев пишет:

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

записи в таблице EntityConnection имеют id 49BAB763-74C9-4AE7-9EEA-499D6C2F815A и F41CCA80-B81A-46F6-B120-0C03D50FFCC7 для "Документа" и "Заказа" соответственно.

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

Добрый день.

Столкнулись со следующей проблемой:

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

Проблема в том, когда заявка создается от пользователя с ролью "Все пользователи портала" (т.е. от пользователя с очень ограниченными правами), то и Бизнес процесс запускается под этим пользователем. И процесс перестает работать на шаге создания активности:

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



После того как скачали текст ошибки и изучил исходники - выяснилось, что портальному пользователю не хватает прав на объект ActivityParticipantRole. После того как были выданы права на этот объект, появилась ошибка, что прав не хватает уже на объект "ActivityParticipant". Дальше права не стали выдавать (т.к. есть опасения что придется выдавать очень много).

Пока мы видим 3 решения этой проблемы: 

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

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

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





Собственно вопросы:

1) Есть ли еще какие нибудь варианты решения и как "правильно" решить данную проблему?

2) Можно ли запускать процесс от конкретного пользователя?

 

Нравится

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

По пунктам:

а) Действительно рабочий, но куча проблем оттестировать этот момент.

б) Я бы переделал весь процесс и выборки/изменения/удаления делал через C# скрипт, пользуясь UserConnection.AppConnection.SystemUserConnection

в) скорее всего запускать так нельзя, только выполнять отдельные элементы под "видом" супервизора (см. пункт б)

Добрый день. Вот тоже столкнулся с проблемой. Что за пункт 6? 

Что то сайт совсем поломался, процитировать не могу.



По поводу "Я бы переделал весь процесс и выборки/изменения/удаления делал через C# скрипт, пользуясь UserConnection.AppConnection.SystemUserConnection" - наш процесс не маленький, по этому такая переделка будет очень трудоемкой, возможно даже более трудоемкой чем выдача прав.



Придумали еще 1 вариант, это запускать процессы по новым заявкам по таймеру (например раз в 1, 5 или 10 минут получать все заявки по которым еще не запущен процесс и запускать)

Габбазов Искандер Рустемович,

А как вы считываете, что по данному обращению был запущен именно тот процесс который активность создаёт? 

Евгений. В журнале процессов это все можно увидеть

Габбазов Искандер Рустемович,

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

А, вопрос про то запущен процесс уже или нет? Так можно поле флаг создать. Например когда процесс по заявке стартует, сразу заполняем это поле флаг. А для запуска ищем все заявки у которых этот флаг не отмечен.

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

Всем привет, нет физического доступа к серверу с MSsql.

Можно ли просматривать таблицы, через "Управление Конфигурацией" ?

 

Нравится

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

Это оно?

Втупляет не подецки, так и должно быть?

Добрый день.

Для выполнения произвольных запросов можете воспользоваться продуктом "SQL Executor for bpm’online".

https://marketplace.terrasoft.ru/app/pt-sql-executor-bpmonline

"Втупляет" на каком моменте?

Если при выполнении запросов, то наверное это вопрос к запросу.

Толмачев Дмитрий Юрьевич,

 

select * from SysEntitySchemaReference - 30-40сек

Добрый день!

Единственный способ - использовать SQL Executor. Указанная таблица хранит все связи объектов, в связи с чем данный запрос может выполняться достаточно долго. По вопросу быстродействия лучше обратиться к разработчикам решения - support@samarasoft.com

Последовский Роман,

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

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

Товарищи подскажите, как добавить(можно ли) в showInformationDialog,  поле для комментария

 

 

Нравится

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

Вильшанский Дмитрий,

Спасибо за ссылку

Сделал, пока так 

 	//Код всплывающего окна
			    var customCommentPopUp = '&lt;div id="popUpWindow" class="ts-messagebox-box ts-messagebox-border-style-blue ts-messagebox-center-position" style="height: 250px;"&gt;&lt;div id="t-comp0-caption" class="ts-messagebox-caption"&gt;Оставьте комментарий&lt;/div&gt;&lt;textarea id="commentTextArea"  style="width: 100%;height: 100px;" placeholder="Ваш комментарий"&gt;&lt;/textarea&gt;&lt;span id="customCommentBtnOk" class="t-btn-wrapper t-btn-text t-btn-style-blue" style="margin-top:15px" tabindex="1" data-item-marker="ОК"&gt;ОК&lt;/span&gt;&lt;span id="customCommentBtnNo" class="t-btn-wrapper t-btn-text t-btn-style-default " style="margin-top:15px" tabindex="1" data-item-marker="Нет"&gt;Нет&lt;/span&gt;&lt;/div&gt;';
	            $('body').append(customCommentPopUp);//Добавляем элемент на страницу
 
 
	             //Обработка нажания на кнопку (Да)
	             $('#customCommentBtnOk').click(function(){
 
 
	                  var comment = $('#commentTextArea').val();//Получаем комментарий
	               	  console.log("comment:"+comment);
 
                      if(comment!=''){
                        $('#popUpWindow').remove();//Закрываем окно
                      }else{
                      	$('#commentTextArea').css('background-color', '#FFF9C4');//Пользователь не ввел данные и пытается сохранить
 
                      }
                  });
 
                   //Обработка нажания на кнопку (Нет)
                   $('#customCommentBtnNo').click(function(){
                       $('#popUpWindow').remove();//Закрываем окно
                   });

 

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

Добрый день! Пытаюсь получить через DataService web service  список аккаунтов.

1. Первым делом авторизуюсь:

Post http://mydomain/ServiceModel/AuthService.svc/Login (Try to auth)
Postfield: '{"UserName":"xxx","UserPassword":"yyy"}'
Total time: 0.047, connect time: 0.016, size: 84
Recieved cookie: BPMLOADER: r1jyukv11qu21m3pmdbzkpci
Recieved cookie: .ASPXAUTH: 8F7AF926D3E294AF47CF293C6EB584CA15B7D613356C67C11C5CE6809EB5999A4ACE2B8AB25264A0AF059DAA10CCD0D6B5401AADC3A8B3362AA50D127A34BD1BFA95162304FD73720563C83BA6B808957C49B408C77B0B8911E1098B5A2AC2115EAB24D3F4BDA3F6A196F3578B58397142A26D3BD53EE5641D35C684D45F9236CB991D31033746E3D4656214E35160339050BD4E2DB42DDE1E72F46AD358DBB4974C90DBEC4772244B6BA86FAE3D917E6EB97D286B1F593F4C6FAB494DA19E2F13B7B3F8AE4063CB3880896D8E2E06A914409A866C2B5564F1630622C370335968FA761BC23DCFC13EC09B1EB97DD9A9C07AA921C1DC2C2CD99F7C8E32B9946A04E59C4A40B0311723A53C4D6427A4DE67152F471F69FE0F4B22D3ADAABE812240D404A05B2FEC57014C73FFB4A5A5CE43625D2348579FC792F05343C3AFA7191205CDE70636CB995A65CC1294E11C94922A74576D34E8A0E952FB4947C1102036331298
Recieved cookie: BPMCSRF: NNvOddpIAkRg61RqcS3a6.
Recieved cookie: UserName: xxx
 
Reply:
{"Code":0,"Message":"","Exception":null,"PasswordChangeUrl":null,"RedirectUrl":null}

Все ок, авторизация проходит без ошибок. В куках возвращаются нужные токены и ошибок нет.

 

2. Далее пробую запросить данные:

Post http://mydomain/json/reply/SelectQuery (Try to get data)
Postfield: '{"RootSchemaName":"Contact"}'
Use cookie: BPMLOADER=r1jyukv11qu21m3pmdbzkpci; .ASPXAUTH=8F7AF926D3E294AF47CF293C6EB584CA15B7D613356C67C11C5CE6809EB5999A4ACE2B8AB25264A0AF059DAA10CCD0D6B5401AADC3A8B3362AA50D127A34BD1BFA95162304FD73720563C83BA6B808957C49B408C77B0B8911E1098B5A2AC2115EAB24D3F4BDA3F6A196F3578B58397142A26D3BD53EE5641D35C684D45F9236CB991D31033746E3D4656214E35160339050BD4E2DB42DDE1E72F46AD358DBB4974C90DBEC4772244B6BA86FAE3D917E6EB97D286B1F593F4C6FAB494DA19E2F13B7B3F8AE4063CB3880896D8E2E06A914409A866C2B5564F1630622C370335968FA761BC23DCFC13EC09B1EB97DD9A9C07AA921C1DC2C2CD99F7C8E32B9946A04E59C4A40B0311723A53C4D6427A4DE67152F471F69FE0F4B22D3ADAABE812240D404A05B2FEC57014C73FFB4A5A5CE43625D2348579FC792F05343C3AFA7191205CDE70636CB995A65CC1294E11C94922A74576D34E8A0E952FB4947C1102036331298; BPMCSRF=NNvOddpIAkRg61RqcS3a6.; UserName=XXX; BPMSESSIONID=5k0j1gso45wpxqbm5ajckuob
Total time: 0.031, connect time: 0.015, size: 1222
 
Reply:
 
Array
(
    [http/1.1] => 403 Forbidden
    [content-type:] => text/html
    [server:] => Microsoft-IIS/8.5
    [x-powered-by:] => ASP.NET
    [x-frame-options:] => SAMEORIGIN
    [date:] => Fri, 08 Dec 2017 14:34:17 GMT
    [connection:] => keep-alive
    [content-length:] => 1222
)
 
Ошибка сервера
403 - запрещено. Доступ запрещен.
Предоставленные учетные данные не дают права на просмотр этого каталога или страницы.
 

В чем проблема, что не так?

Нравится

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

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

а сайт точно работает под http, а не под https? попробуйте добавить в куки "secure; HttpOnly;"

Или просто попробовать подключиться по http и по https.

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

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

Нравится

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

Добрый день

Вопрос не понятен. Какая синхронность вам нужна?

Артем Гура,

 esq.getEntityCollection

Ответ - синхронно сделать не получится/ну либо получится, но тогда у пользователя будет виснуть браузер в ожидании ответа сервера (см xmlhttprequest).

Если нужно вручную вызывать нужные функции последовательно - Terrasoft.chain в помощь.

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

Добрый день!

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

Вопрос - есть ли возможность выгружать настроенные фильтры во всех  дашбордах в отдельный файл?

Нравится

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

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

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

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

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

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

Добрый день! 

Установил дополнение, но оно не работает, требует регистрации деталей в справочнике. Что нужно сделать? Спасибо!

Нравится

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

Здравствуйте! Извините за задержку с ответом. С утра вам ответят мои коллеги

Добрый день! На нашем сайте есть инструкция, в которой подробно расписаны использование и настройка Change log for bpm'online (https://samarasoft.com/changelog/). 

Могли бы вы подробно расписать в чем именно проблема, и по возможности приложить скриншоты?

 

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