HTTPS
ssl
Технические вопросы
5.x

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

Возникли проблемы с настройкой порта 443 в IIS7.
Создал и привязал к приложению самоподписанный сертификат, следуя этой инструкции.

Подключиться к приложению удается только лишь из IIS, по нажатии "Обзор: 443(https)"

Подключение через браузер (GC, IE) самостоятельно не удаётся как на самом сервере, так и по сети.

В чем может быть проблема?

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

Нравится

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

Здравствуйте.
Попробуйте настроить сертификат для конкретного браузера, в частности Chrome. Наберите в Google запрос "настройка сертификата для chrome" и перейдите по первой ссылке.

Александр, спасибо, но не думаю, что это поможет. ИЕ ведь тоже не грузит сайт.

Есть ли другие сайты на IIS, кроме BPMonline by Resco? Какой обозреватель открывается при "Подключиться к приложению удается только лишь из IIS"? Открывается ли сайт?

На IIS только BPMonline CRM, для которого мы и пытаемся настроить защищенный порт. Для того, чтобы к системе был доступ с портативных устройств с установленным А Mobile CRM by Resco...

Я где-то не прав?

Открывается по умолчанию ИЕ.

Очень нужна помощь по данному вопросу! Прошу кого-нибудь откликнуться.

Здравствуйте.
Предоставьте, пожалуйста, файлы конфигурации IIS: administration.config, applicationHost.config, путь по умолчанию: C:\Windows\System32\inetsrv\config.
Также стоит проверить блокировку порта брэндмауэром.

Отключение брандмауэра не помогло.
Файлы прикладываю1.rar

Судя по конфигурационным файлам IIS настроено вроде бы правильно. Можете ли Вы предоставить параметры удалённого доступа к машине, где у Вас развёрнут IIS? Если "да", тогда отправьте их на поддержку (support@terrasoft.ru) указав в теме письма номер обращения - 0139442.

Можно по Ammyy Admin

В режиме удалённого доступа вопрос решили. Нужно было в линке в начале указать "https", порт 443 указывать можно, но не обязательно.

Попробовали подключиться через Android - выдаёт ошибку 401 - не авторизован. Пароль/логин вводим правильно.

В чем может быть проблема?

А лицензия на Mobile есть?

"Зверев Александр" написал:

А лицензия на Mobile есть?

Да, конечно.

Здравствуйте.
Прошу Вас отправить на support@terrasoft.ru линк и параметры учётной записи для проверки, а также источник, с которого Вы получили мобильное приложение.

"Котенко Александр" написал:

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

Прошу Вас отправить на support@terrasoft.ru линк и параметры учётной записи для проверки, а также источник, с которого Вы получили мобильное приложение.

С уважением, Котенко Александр.

Спасибо, отправил.

Здравствуйте.
Работа с BPMonline by Resco возможна начиная с версии 5.4.0.383 и продукт должен быть BPMonline CRM. У Вас же версия 5.4.0.317. Свяжитесь, пожалуйста, с менеджером, который ответственный по Вашей компании для обсуждения обновления.

Александр, большое спасибо.

А как проходит процесс обновления?

Показать все комментарии
SysModuleUid
Технические вопросы
5.x

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

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

SysModuleId = new Guid("xxxxxxxxxxx");
var aspPage = Page.AspPage as Terrasoft.UI.Core.Page;
if (aspPage.UseProfile && !aspPage.IsPostBack) {
var args = new ProfileKeyEventArgs();
args.Key = Page.Schema.UId.ToString();
aspPage.InitializeProfile(args);
}
return true;

Где я могу достать SysModuleId?

Заранее спосиба,
С уважением,
Гюнель Рустамова

Нравится

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

Здравствуйте, Гюнель!

Его можно получить из базы данных следующим запросом:

select Id from SysModule where 
SysPageSchemaId = 
(select SysSchemaId Id from SysSchemaInSolution
WHERE Name = 'AccountsModulePage') -- подставить название своего раздела
Показать все комментарии
1с импорт v7.7
Технические вопросы
5.x

Пытаюсь синхронизировать 1С и BPM
Использую вот такой код:

Type v7Type = Type.GetTypeFromProgID("V77.Application", true);
            dynamic v7 = Activator.CreateInstance(v7Type);
         
            object[] arg = new object[3];
            arg[0] = v7Type.InvokeMember("RmTrade", BindingFlags.Public | BindingFlags.InvokeMethod | BindingFlags.Static, null, v7, null);
            arg[1] = "/d\\\\ITL.LOCAL\\files\\1Cbases\\itl-db-test\\" + " /nАдминистратор";
            arg[2] = "NO_SPLASH_SHOW";
            v7Type.InvokeMember("Initialize", BindingFlags.GetProperty, null, v7, arg);

            arg = new object[1];
            arg[0] = @"Справочник.ПТО";
            object sprNomen = v7Type.InvokeMember("CreateObject", BindingFlags.GetProperty, null, v7, arg);
и т.д.

В visual studio код работает на ура, а в bpm ошибки

Вроде подключил все библиотеки, которые подключены в visual studio.

Нравится

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

"Сазанов Александр Владимирович" написал:Вроде подключил все библиотеки, которые подключены в visual studio.

Александр, для того, чтобы подключить в конфигурацию сторонние библиотеки, нужно http://www.community.terrasoft.ru/developer/article/6591

У Вас нет доступа к этой странице.

Александр, инструкция во вложении.

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

Думаю на странице ttp://ru.wikipedia.org/wiki/BPMN должна быть ссылка на платформу BPMonline, использующую нотацию BPMN.

Нравится

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

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

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

Спасибо за предложение! Действительно, платформа BPMonline использует нотацию BPMN для моделирования бизнес-процессов. И было бы хорошо связать BPMonline и BPMN в Википедии. Для этого, мы сделали ссылку на страницу, посвященную BPMN со страницы BPMonline CRM (http://ru.wikipedia.org/wiki/BPMonline).

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

Если в русской вики появится аналог страницы Comparison of Business Process Modeling Notation tools, ссылка там будет вполне уместна.

Показать все комментарии
событие
страница
Технические вопросы
5.x

Подскажите как по нажатию на кнопку открыть определенную страницу?

Нравится

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

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

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

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

В этой теме описан пример реализации нужного Вам функционала (открыть карточку по нажатия на кнопку).

Все спасибо, получилось.

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

Здравствуйте! Необходимо понять принцип использование своих классов. Создал в конфигурации файл с исходным кодом (назвал данный файл к примеру GetTextSourceCode):

using System;
using System.Collections.Generic;
using System.Linq;
using System.Web;
using System.Text;
using System.IO;


        public class MessageBoxMy {
                private string txt;
               
                MessageBoxMy(string text) {
                        this.txt = text;
                }
                public string  ShowMessage() {
                        return txt;
                }
        }

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

Нравится

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

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

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

Обращаться к классу можно следующей конструкцией:

return Terrasoft.Configuration.<имя_класса>.<имя_метода>(<параметры>);

Спасибо, попробую:smile:

"Alimova Anna" написал:

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

Обращаться к классу можно следующей конструкцией:

return Terrasoft.Configuration.<имя_класса>.<имя_метода>(<параметры>);

Данный метод не сработал. Не находит мой класс:
"The type or namespace name 'MessageBoxMy' does not exist in the namespace 'Terrasoft.Configuration' (are you missing an assembly reference?)"
Configuration находится в Terrasoft.Core.Configuration. Но и это тоже не работает, выдает ту же ошибку

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

Возможно, вы не сохранили схему исходного кода GetTextSourceCode или не опубликовывали ее? Это необходимо сделать, чтобы созданный вами класс был скомпилирован, после чего он будет "виден" для других элементов конфигурации.
Также, мне кажется, имеет смысл объявить конструктор класса MessageBoxMy как public...

Документация по разработке в BPMonline находится здесь - http://www.terrasoft.ru/bpmonlinesdk/

Не получается. Создаю исходный код с классом . добавляю нужные ссылки, создаю класс, опубликовываю. Далее генерирую исходный код для данного элемента(правой кнопкой по элементу->исходный код->сгенерировать для выделенных элементов) . Затем создаю событие от нажатия на кнопку, и в этом событие в скрипте пытаюсь обратиться к классу "Terrasoft.Configuration.Название класса .Название метода(параметры)". Но при этом выдает ошибку что такого типа не существует. Может метод зависит от версии приложения? У меня BPMonline Версия 5.4.0.591 On-Demand

Александр,

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

Я повторила ваш пример - создала файл с исходным кодом для класса MessageBoxMy (но с конструктором public), скомпилировала, затем в обработчик кнопки добавила код:

MessageBoxMy mb = new MessageBoxMy("Text");
Page.Label1.Caption = mb.ShowMessage();

Все получилось. Спасибо

Показать все комментарии
новый объект
Технические вопросы
5.x

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

Хочу создать новый объект на тестовой среде, но не открывается структура объекта. (Temp. File bo.png) Версия 5.4.0.591

C уважением,
Гюнель Рустамова

Нравится

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

Здравствуйте, Гюнель!

Вероятнее всего, вами изменен базовый объект BaseObject в конфигурации. Рекомендуется загрузить объект заново из коробочной конфигурации.

Показать все комментарии
новое
Технические вопросы
5.x

Добавила на тестовой среде новое "рабочие места" и "раздел" (Версия 5.4.0.591)(AttachFile:рабочие места.jpg). Но почему-то, они не отображаются. А в демо-версии наоборот. Все мною созданные разделы без проблем отображаются. Не смогли бы, подсказать, в чем причина?

Заранее Спосиба.
С уважением,
Гюнель Рустамова

Нравится

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

Здравствуйте Гюнель. Сталкивался с подобной проблемой. Я устранил ее с помощью очистки кеша редис сервера

Для очистки кеша, используйте команду flushall:

1. cmd
2. telnet ipRedisServer portRedisServer
3. flushall
4. quit

Здравствуйте, Гюнель!

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

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

К сожалению, у меня ничего не получилась. После очистки кеша редис сервера ничего не изменилось. Права доступа на основной объект раздела не настроены. Как быть?

Заранее Спосиба.
С уважением,
Гюнель

Гюнель, попробуйте установить для объект раздела признак "администрируется по операциям" и перезайти в систему.

Кроме того, прошу уточнить, какое сообщение было получено в консоли после очистки redis? Если возможно - скриншот окна консоли.

1. попробуйте установить для объект раздела признак "администрируется по операциям" и перезайти в систему.
- Cделала, но ничего не поменялась.

2. какое сообщение было получено в консоли после очистки redis? Если возможно - скриншот окна консоли.
- Высылаю скриншот.

Заранее Спосиба.
С уважением,
Гюнель

"существующий раздел" отображается на разделе, а новый раздел нет.

Заранее Спосиба.
С уважением,
Гюнель

Здравствуйте, Гюнель!

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

Показать все комментарии
Технические вопросы
5.x

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

Нравится

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

1) уточните пожалуйста, правильно ли я понимаю, что мы говорим о пользовательском поле типа "справочник" , если же это текстовое поле, то пользователь имеет свойство ошибаться и написать одно и тоже слово можно по разному.
2) так же, укажите СУБД, версию Terrasoft.

"Sergey Karpenko" написал:

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

2) так же, укажите СУБД, версию Terrasoft.

Нет, поле текстовое. На данном этапе мне интересен сам механизм создания подобного функционала. Буду очень признателен за помощь!
MSSQl, версия BPM 5.3.0.332

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

string Address = Page.AddressEdit.Value.ToString(); 

Проверку, совпадает ли введенное пользователем значение с какой-либо записью БД можно выполнить через EntitySchemaQuery (EntitySchemaQuery – класс, с помощью которого осуществляется создание запросов в базу данных).
Подробное описание работы с данным классом Вы можете посмотреть в темах http://www.community.terrasoft.ru/blogs/8977
http://www.community.terrasoft.ru/blogs/8557

Столкнулся с проблемой. Не работает сценарий.

1. Расположил на странице кнопку.

2. Перешел на событие (CheckButtonClick)

3. Создал в процессе начальное событие (сообщение) и задание-сценарий

4. Код сценария:

string name = "111";
Page.BaseMessagePanel.Clear();
Page.BaseMessagePanel.AddMessage(Warning, name.ToString(), MessageType.Warning);
return true;

В чем может быть ошибка?

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

Всем спасибо! Разобрался.

Вот что получилось в итоге:

string name1 = Page.NameEdit.Value.ToString();
string text = "Книга с таким названием уже существует";
 
var manager = Page.Schema.SchemaManagerProvider.GetManager("EntitySchemaManager") as EntitySchemaManager;
var esq = new EntitySchemaQuery(manager, "Book");
esq.AddColumn("Name");
var filter = esq.CreateFilterWithParameters(FilterComparisonType.Equal, "Name", name1);
esq.Filters.Add(filter);
 
var q = esq.GetEntityCollection(UserConnection);
 
if(q.Count > 0){
Page.BaseMessagePanel.Clear();
Page.BaseMessagePanel.AddMessage(Warning, text.ToString(), MessageType.Warning);}
return true;

EntitySchemaManager. Я так понял, это какая-то промежуточная таблица, создаваемая на лету?

Буда рад замечаниям по улучшению кода.

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

"Бондарь Наталия" написал:

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

Понятно, спасибо!

А как получить список значений (полученных совпадений), которые, как я понимаю, должны содержаться в переменной q?

Я бы заменила

var manager = Page.Schema.SchemaManagerProvider.GetManager("EntitySchemaManager") as EntitySchemaManager;

на

var manager = UserConnection.EntitySchemaManager;

"Салихов А" написал:А как получить список значений (полученных совпадений), которые, как я понимаю, должны содержаться в переменной q?

q это коллекция Entity. Вы можете пробегаться по ней с помощью foreach и с каждой книгой что-то делать.

"Раловец Ольга" написал:q это коллекция Entity. Вы можете пробегаться по ней с помощью foreach и с каждой книгой что-то делать.

Однако на такой код

if(q.Count > 0){
 
	string books;
	foreach(string book in q)
	{
		books = books + book;
	}

компилятор выдаёт ошибку:

"Раловец Ольга" написал:Я бы заменила
var manager = Page.Schema.SchemaManagerProvider.GetManager("EntitySchemaManager") as EntitySchemaManager;

на
var manager = UserConnection.EntitySchemaManager;

Спасибо. Я эту реализацию нашёл на странице исходного кода)

Ну конечно, Ваш book типа Entity, а не string. Если хотите название, то так:

if(q.Count > 0){
 
        string books;
        foreach(Book book in q)
        {
                books = books + book.Name;
        }

"Раловец Ольга" написал:Ну конечно, Ваш book типа Entity, а не string. Если хотите название, то так:

Не распознается такой тип, насколько я понимаю...

Попробуйте Terrasoft.Configuration.Book

Ольга, большое Вам спасибо, все получилось!

string name1 = Page.NameEdit.Value.ToString();
string text = "Книги с таким названием уже существуют: ";
 
var manager = UserConnection.EntitySchemaManager;
var esq = new EntitySchemaQuery(manager, "Book");
esq.AddColumn("Name");
esq.AddColumn("Author");
var filter = esq.CreateFilterWithParameters(FilterComparisonType.Equal, "Name", name1);
esq.Filters.Add(filter);
 
var q = esq.GetEntityCollection(UserConnection);
 
if(q.Count > 0){
 
	var b = new System.Text.StringBuilder();
	foreach(Terrasoft.Configuration.Book book in q)
	{
		b.Append(book.Name + " (" + book.Author + ");  ");
	}
	string books = b.ToString();
 
Page.BaseMessagePanel.Clear();
Page.BaseMessagePanel.AddMessage(Warning, text+books, MessageType.Warning);}
return true;

Всегда пожалуйста :)
По поводу того, что лучше использовать в Вашей ситуации строку или стрингбилдер
http://habrahabr.ru/post/166701/

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

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

в системе предусмотрен справочник Типы контрагентов, в котором подразумевается указание отношений с контрагентами: Заказчик, подрядчик, агент, конкурент и т.д.. В нашем бизнесе, нет такого четкого деления - один контрагент может быть для нас одновременно клиентом по одному типу продукта, поставщиком по другому и партнером по третьему. Как лучше в таком случае категорировать контрагентов, ведь одному контрагенту можно присвоить только один тип?

Нравится

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

Значит, надо делать деталь "Типы" в разделе контрагентов. С существующим полем в карточке можно синхронизировать подобно тому, как это с адресами и средствами связи.

то есть типы типов контрагентов?

Типы в контрагенте. С полями AccountId, AcountTypeId и (если надо) IsPrimary.

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

Нигде не описано. Её нет. Самому создать деталь.

вероятно вам поможет вот это
http://www.community.terrasoft.ru/forum/topic/8811

Вероятно, не поможет, там для 3.x.

Здравствуйте, Владислав.
Думаю, что Ваш вопрос затрагивает не просто «типизацию», а «типизацию по..»
Важно не просто присвоить тип Контрагенту, а ещё и детализировать, к какому виду сотрудничества принадлежит именно этот тип.
Вообщем-то можно реализовать несколькими способами на Ваше усмотрение.
Как один из вариантов: В уже существующем справочнике: «Типы» добавить значение «Смешанный». Это будет означать, что данный контрагент помимо «Заказчика» является ещё и подрядчиком, например.
Далее, просто надо понять, где Вы фиксируете типы продуктов по этому контрагенту (например, в продажах, счетах или проектах)
Создать соответствующий механизм отображения в разделе КОНТРАГЕНТЫ. Например, создать деталь «Детализация» и там отображать. Как вариант можно создать закладку в карточке записи.
Примерно будет выглядеть так:
ООО «Полянка», тип «Смешанный»
Детализация
Тип продукта – тип контрагента:
ПК – клиент
ПО – поставщик(разработчик)
Антивирусы – партнер
В Отчеты подтягивается на УРА!!!

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