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

Нравится

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

Дмитрий, здравствуйте.

Такая ошибка может возникать в случае, когда некорректно заполнены параметры WorkspaceConsole. Необходимо проверить параметры подключения в секциях <db> и <connectionString>  в файле \Terrasoft.WebApp\DesktopBin\WorkspaceConsole\Terrasoft.Tools.WorkspaceConsole.exe.config. Необходимые параметры подключения можно найти в файле ConnectionStrings.config

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

Подскажите как создать модальное окно с двумя полями типа "Дата", пробовал делать по шаблону во вложении получаю ошибку:

ConfigurationBootstrap.js:21948 Uncaught TypeError: Cannot read property 'entitySchemaName' of undefined

    at i. (ConfigurationBootstrap.js:21948)

    at all-combined.js:477

    at Object.execCb (require.js:1693)

    at Module.check (require.js:881)

    at Module. (require.js:1136)

    at require.js:134

    at require.js:1186

    at each (require.js:59)

    at Module.emit (require.js:1185)

    at Module.check (require.js:936)

(anonymous) @ ConfigurationBootstrap.js:21948

(anonymous) @ all-combined.js:477

execCb @ require.js:1693

check @ require.js:881

(anonymous) @ require.js:1136

(anonymous) @ require.js:134

(anonymous) @ require.js:1186

each @ require.js:59

emit @ require.js:1185

check @ require.js:936

enable @ require.js:1173

init @ require.js:786

callGetModule @ require.js:1200

completeLoad @ require.js:1608

onScriptLoad @ require.js:1714

core.js:579 user: Supervisor/7f3b869f-34f3-4f20-ab4d-7480a5fdf647

 file: http://localhost:82/0/Nui/ViewModule.aspx

 line: 3

 column: 1

 message: Uncaught SyntaxError: Unexpected token < 

 date: Thu Sep 07 2017 13:02:25 GMT+0300 (RTZ 2 (зима))

 stack: SyntaxError: Unexpected token <

writeErrorMessage @ core.js:579

(anonymous) @ core.js:740

execCb @ require.js:1693

check @ require.js:881

enable @ require.js:1173

init @ require.js:786

(anonymous) @ require.js:1457

setTimeout (async)

(anonymous) @ require.js:1812

localRequire @ require.js:1446

errorHandler @ core.js:716

core.js:579 user: Supervisor/7f3b869f-34f3-4f20-ab4d-7480a5fdf647

 file: http://localhost:82/0/configuration/04a28bb938a0652641f26936a1b20234/Co…

 line: 21948

 column: 57

 message: Uncaught TypeError: Cannot read property 'entitySchemaName' of undefined 

 date: Thu Sep 07 2017 13:02:25 GMT+0300 (RTZ 2 (зима))

 stack: TypeError: Cannot read property 'entitySchemaName' of undefined

    at i. (http://localhost:82/0/configuration/04a28bb938a0652641f26936a1b20234/Co…)

    at http://localhost:82/core/9081d8eb154840ddc3ec408c11264ff4/combined/all-…

    at Object.execCb (http://localhost:82/core/c3a883e5c39cffb863b2f781f396c705/requirejs/req…)

    at Module.check (http://localhost:82/core/c3a883e5c39cffb863b2f781f396c705/requirejs/req…)

    at Module. (http://localhost:82/core/c3a883e5c39cffb863b2f781f396c705/requirejs/req…)

    at http://localhost:82/core/c3a883e5c39cffb863b2f781f396c705/requirejs/req…

    at http://localhost:82/core/c3a883e5c39cffb863b2f781f396c705/requirejs/req…

    at each (http://localhost:82/core/c3a883e5c39cffb863b2f781f396c705/requirejs/req…)

    at Module.emit (http://localhost:82/core/c3a883e5c39cffb863b2f781f396c705/requirejs/req…)

    at Module.check (http://localhost:82/core/c3a883e5c39cffb863b2f781f396c705/requirejs/req…)

writeErrorMessage @ core.js:579

(anonymous) @ core.js:740

execCb @ require.js:1693

check @ require.js:881

enable @ require.js:1173

init @ require.js:786

(anonymous) @ require.js:1457

setTimeout (async)

(anonymous) @ require.js:1812

localRequire @ require.js:1446

errorHandler @ core.js:716

Прикрепленные файлы

Нравится

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

Есть пользовательские пакет, в котором ведется разработка.

Добавил в него зависимости от всех пакетов системы.

Фиксация в хранилище прошла успешно.

Но при обновлении пакета из хранилища появляется ошибка: 

 

Значение аргумента "version" не может быть пустым

Проверил в таблице SysPackage

Есть только 5 пакетов, в которых не заполнено поле версия

Custom
WebitelUpdate
WebitelCallCdr
WebitelCC
WebitelCallManager





 

Нравится

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

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

У пользовательского пакета должна быть зависимость только от одного пакета (верхнего по иерархии). Остальные зависимости нужно удалить.

 

Возникла такая же ошибка, причина как оказалось в том, что пакет зависел от загруженного из markerplace пакета, в котором тоже не установлена версия пакета. Установите приложение, от которого зависит ваш пакет.

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

Нужно скрыть кнопку Добавить в окне выбора определенного справочника. Прошу помочь как это сделать.

Нравится

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

Добрый день. Рекомендуем реализовать данный кейс немного иначе, а именно - раздать на объект справочника необходимые права доступа. 

Кот Владимир Владимирович пишет:

Рекомендуем реализовать данный кейс немного иначе, а именно

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

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

Коллеги, всем добрый день!

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

На стороне redis, насколько я понимаю, нужно включить в redis.conf настройку requirepass, а как реализовать это на стороне нашего приложения? В ТП ответили так: "поскольку это стороннее ПО, с данным вопросом обратитесь к поставщику продукта redis. Мы предоставляем поддержку продукта bpm'online."

Нравится

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

попробуйте по аналогии с ConnectionString из StackExchange

<add name="redis" connectionString="name=user;password=123;host=localhost;db=1;port=6379;maxReadPoolSize=25;maxWritePoolSize=25" />

в любом случае дайте знать получилось или нет :)

Севостьянов Илья Сергеевич,

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

Илья, моему коллеге удалось найти ответ на данный вопрос:

<add name="redis" connectionString="host=password@127.0.0.1;db=1;port=6379;maxReadPoolSize=25;maxWritePoolSize=25" />

ответ был найден здесь: https://stackoverflow.com/questions/8862552/authenticated-servicestack-…

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

Нужно сделать фильтрацию фильтра.

В выделенную часть нужно вывести только сотрудников, как это реализовать. 

Заранее благодарен.

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

Нравится

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

никак, для этого используйте возможности расширенной фильтрации

Или вооружиться напильником и сломать пару модулей (гуглите "simpleFilter" по конфигурации + можно в quickFilter ещё заглянуть). Ну это прям если совсем надо.

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

Коллеги, доброго дня!

Вопрос касательно адаптивности.

На экранах с небольшим разрешением (к примеру, ноутбуках) при уменьшении размера окна браузера происходит нагромождение элементов друг на друга.

Каким образом можно избежать подобной ситуации?

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

Нравится

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

Здравствуйте, Эрнст

 

Обращаю Ваше внимание на то, что в документации по ссылке https://academy.terrasoft.ru/documents/service-enterprise/7-10/sistemny… сказано о минимальных системных требованиях к клиентскому ПК, а именно о "Минимальное разрешение монитора" - которое должно быть не менее 1280х768.

Если разрешение меньше то скорее всего проблема именно в этом.

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

Столкнулись с проблемой правильного хранения файлов в bpm. Например в контрагенте в файлах и примечаниях хранится очень много документов, но нет возможности распределить их по папкам (выводятся списком). Есть ли такая возможность создания папок и подпапок в файлах и примечаниях?

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

Нравится

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

1) Нет. И прилепить туда папки очень сложно, но можно попробовать доработать деталь, навесив функционал тегов(как в контрагентах). В итоге файлы помечаем тегами и сортируем как надо

2) Правильно. Письмо - это активность, активность - объект в системе, под каждый большой объект есть таблица [Название_объекта]File. И если надо перекинуть файл из письма в заказ, надо по сути перекопировать запись из ActivityFile в OrderFile, чего стандартными средствами не сделаешь.

Варфоломеев Данила,

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

Чакур Александр Леонидович,

Не реализовывал. Вроде как надо добавить таблицу AccountFileTag (к примеру, для файлов в контрагентах), а далее смотреть в конфигурации как  в эту таблицу заносятся записи и по ней фильтруется реестр. Плюс надо будет кнопку с тэгом добавить в tools детали. Ну и ещё наверное кучу всего... Я бы покопался, да времени нет)

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

Как программно задать необходимое значение в поле справочника(список).

Например, при количестве продаж больше 10 нужно устновить значение в поле справочника Приоритет активности - Высокий.

Я так предполагаю необходимо иметь дело с GUID, но код типа

this.set("MyFieldDictionary", "{GUID}") приводит к результату отображения в html undefined.

Нравится

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

Вам нужно использовать метод loadLookupDisplayValue, например:

 

this.loadLookupDisplayValue("Type", constants.ContractType.Standard);

 

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

Вы получите объект... вот именно объект аналогичной структуры туда и надо сетапить.

как правило требуется объект минимум с 2-мя полями

{
   displayValue: "Текст который будет демонстрировать в поле",
   value: "уникальный идентификатор значения"
}

 

Севостьянов Илья Сергеевич,

 Если поступить таким образом, атрибут типа справочник получит реальное значение из справочника со всеми подключаемыми полями или только только две строки в качестве значения?



Т.е. например:

this.set("Country", {value: "a570b005-e8bb-df11-b00f-001d60e938c6", displayValue: "РОССИЯ"});

У атрибута Country добавлены дополнительные поля из таблицы Country, например ["Capital"].



Если вызвать this.get("Country).Capital, будет ли получено значение "Москва"?

Если так не получится, можно получить Id страны, а затем отдельным запросом к таблице стран получить значение интересующего поля в этой записи. Как работать с ESQ из JS-кода, есть в этой и соседних статьях.

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

По инструкции на академии добавил правило поиска дублей в контрагенте по полю ИНН.

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

Код процедуры поиска:

IF NOT OBJECT_ID('[dbo].[tsp_FindAccountDuplicateByInn]') IS NULL

BEGIN

    DROP PROCEDURE [dbo].[tsp_FindAccountDuplicateByInn];

END;

GO

CREATE PROCEDURE [dbo].[tsp_FindAccountDuplicateByInn] (

    @parsedConfig CreatingObjectInfo READONLY,

    @sysAdminUnit UNIQUEIDENTIFIER,

    @ruleId UNIQUEIDENTIFIER

)

AS

BEGIN

    DECLARE @parsedConfigRowsCount INT = (SELECT COUNT(*) FROM @parsedConfig);

    CREATE TABLE #searchAccount (

        [SxINN] INT,

        [SortDate] DATETIME

    );

    IF @parsedConfigRowsCount = 0

    BEGIN

        INSERT INTO #searchAccount ([SxInn], [SortDate])

        SELECT

            [SxInn],

            MAX([ModifiedOn])

        FROM [Account]

         GROUP BY [SxInn]

         HAVING COUNT(*) > 1;

    END;

    

     INSERT INTO [AccountDuplicateSearchResult] ([AccountId], [GroupId], [RuleId], [SysAdminUnitId])

    SELECT

         [vr].[Id],

         DENSE_RANK() OVER (ORDER BY [vr].[SortDate] DESC, [vr].[SxInn]),

         @ruleId RuleId,

         @sysAdminUnit

    FROM (

         SELECT

             [v].[Id],

             [v].[SxInn],

             [r].[SortDate]

         FROM [Account] [v], #searchAccount r

         WHERE [v].[SxInn] = [r].[SxInn]

         GROUP BY [v].[SxInn], [r].[SortDate], [v].[Id]

    ) [vr];

END;

GO

Нравится

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

Здравствуйте, Иван!

Реализовать поиск дублей при сохранении достаточно не просто. Но если вкратце:

1. Заместить метод getDataForFindDuplicatesService в DuplicatesSearchUtilitiesV2

2. Унаследоваться от класса SingleRequest из SearchDuplicatesService и добавить своё свойство.

3. Создать свой SingleRequesListener чтобы заменить вызов SingleRequest на свой класс

4. Унаследоваться от DeduplicationProcessing и изменить методы AddElementsToRow и GetPreparedXml из SearchDuplicatesService

5. В хранимкке tsp_FindDuplicate нужно изменить под себя CreatingObjectInfo

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