Здравствуйте! Коллеги подскажите. Сделал веб сервис

 

namespace Terrasoft.Configuration.Statements 
{
    using System;
    using Terrasoft.Core;
    using System.ServiceModel;
    using Terrasoft.Web.Common;
    using System.ServiceModel.Web;
    using Terrasoft.Core.Entities;
    using System.ServiceModel.Activation;

    [ServiceContract]
    [AspNetCompatibilityRequirements(RequirementsMode = AspNetCompatibilityRequirementsMode.Required)]
    public class UsrStatements : BaseService
    {
        
        [OperationContract]
        [WebInvoke(Method = "GET", RequestFormat = WebMessageFormat.Json, BodyStyle = WebMessageBodyStyle.Wrapped,
        ResponseFormat = WebMessageFormat.Json)]
        public string GetContactList()
        {
            var esq = new EntitySchemaQuery(UserConnection.EntitySchemaManager, "Contact");
            var colName = esq.AddColumn("Id");
            var contacts = esq.GetEntityCollection(UserConnection);
            if(contacts.Count > 0)
            {
                var result = contacts[0].GetColumnValue(colName.Id).ToString();
                return result;
            }
        }
    }
}

При вызове воращает ошибку 404. Вызываю так https://testcrm.com/0/rest/UsrStatements/GetContactList

Авторизовываюсь Supervisor-ом

Версия 7,13

Нравится

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

А компилируется без ошибок?

 

Добрый день. Да. Но в конфигураторе стоит галочка заблокирован

Нурлан,
А генерация исходного кода прошла успешно?
Можете уточнить по галочке - как именно отображается?

Добрый день. Вопрос решен. Ошибка была в браузере. Браузер не показывал некоторые ошибки и соостветвенно публикация не происходило. Спасибо всем.

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

Доброго времени суток! Подскажите как получить Id и другие поля из выбранного каточки физ.лица в детали с полями?

Нравится

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

Нурлан, здравствуйте!
Можете детализировать Вашу бизнес-задачу?
Из описанного вопроса не совсем понятно что необходимо сделать.

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

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

Нравится

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

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

 

Подскажите, а какая бизнес цель в реализации этой задачи?

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

Ivan Kuchma,

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

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

P.S Начало проблемы обсуждалось тут 

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

Доброго времени суток коллеги. Имею проблему, в вкладке  "ЗАНЯТОСТЬ И ДОХОДЫ"

есть деталь, поля которые должны быть обязательно заполнены "Банк где открыт счет ИНПС", то есть у них стоит признак isRequired.

Но проблема, когда сотрудники не переходят в эту колонку "ЗАНЯТОСТЬ И ДОХОДЫ", а заполняют "ОСНОВНАЯ ИНФОРМАЦИЯ" и сохраняют заявку. А она сохраняется, то есть если не нажимать на вторую колонку не срабатывает обязательность полей. Подскажите пожалуйста,  как мне добавить проверку чтобы при открытии страницы срабатывала все обязательные поля. 

 

Версия 7.13 

 

 

Нравится

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

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

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

Ivan Kuchma,

Проверил, валидация поля не стояла через БД(извиняюсь за дизинформацию) Там стоит только функция required вроде этого: 

 

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

Обязательность полей, как уже упоминалось, можно реализовать базовыми средствами приложения при помощи бизнес правил, либо установкой признака "Обязательно для заполнения"(isRequired) на уровне объекта. 

Либо при помощи разработки. Статьи по разработке есть в академии.

Также аналогичные вопросы рассматривали на Community, вот несколько похожих:

https://community.terrasoft.ru/questions/dobavlenie-validacii-k-polyu-d…

https://community.terrasoft.ru/questions/validaciya-poley-detali

https://community.terrasoft.ru/questions/validaciya-na-grid-detali

 

Ivan Kuchma, Проблема в том, что эти методы уже реализованы в самой детали, у меня ситуация когда страницу открываешь, то группы то что я выделил в скриншоте выше не прогружаются и соответственно не работает валидация на детали. Мне нужно чтобы при открытии страницы все группы то есть: 

проинициализировались и срабатывала валидация полей. 

 

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

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

Добрый вечер.

Установлена библиотека Aspose.Word. При ее использовании для конвертации Печатных форм из word в pdf исчезают картинки. Кто-нибудь сталкивался с таким? Есть идеи, в чем может быть проблема?

Нравится

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

Добрый день, Наталия!

 

Подскажите, пожалуйста, Вы используете маркетплейс дополнение https://marketplace.terrasoft.ru/app/asposepdf-connector-creatio для формирования печатных форм в формате PDF?

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

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

 

Прошу подсказать, есть ли техническая возможность распределить роль серверов с приложением на пользовательский сегмент и обработку процессов на отдельные сервера, наподобие решений, где Web-Server и App-Server - это отдельные сервера.

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

 

Если это возможно, прошу рассказать, как это реализовать

Спасибо!

Нравится

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

Павел, здравствуйте!

Выполнение фоновых процессов можно вынести в RabbitMQ (7.17.0 и выше), в таком случае не придётся увеличивать maxthreadcount и, как следствие, нагрузка на приложение снизится.

Инструкция:
1. Развернуть сервер RabbitMQ версии 3.8.0 или выше на своем сервере:
Для режима разработки: В docker (сразу с vhost): 
docker run -d --name some-rabbit -e RABBITMQ_DEFAULT_VHOST=VirtualHostName -p 15672:15672 -p 5672:5672 rabbitmq:3-management

2. Создать виртуальный хост:  https://www.rabbitmq.com/vhosts.html
Например, так:
curl -u guest:guest -X PUT http://host:15672/api/vhosts/VirtualHostName

3. Настроить ConnectionStrings.config
<add name="messageBroker" connectionString="amqp://guest:guest@host:5672/VirtualHostName" />, где VirtualHostName - название virtual host, созданного в п.2.

4. Изменить настройки в /Terrasoft.WebApp/Web.config (net framework), Terrasoft.WebHost.dll.config (net core)

 

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

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

Добрый день! Пытаюсь реализовать маску ввода телефона при помощи jQuery и InputMask, т.к. MultiMaskEdit некорректно отрабатывает на смартфонах Android. Подключил клиентские модули с кодом библиотек. Вне Creatio данные библиотеки проверены и работают. В Creatio же получаю следующую ошибку: Uncaught TypeError: $(...).inputmask is not a function

Использую следующий код:

define("HbkNewTrustNumberPage", ["HbkjQuery","HbkInputMask"], function() {
	$(document).ready(function() {
		$("#HbkNewTrustNumberPageHbkNewTrustNumberTextEdit-el").inputmask("+\\9\\96 999999999");
	});
	return {
		entitySchemaName: "",
		attributes: {},
		modules: /**SCHEMA_MODULES*/{}/**SCHEMA_MODULES*/,
		details: /**SCHEMA_DETAILS*/{}/**SCHEMA_DETAILS*/,
		businessRules: /**SCHEMA_BUSINESS_RULES*/{}/**SCHEMA_BUSINESS_RULES*/

 

Нравится

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

Здраствуйте, рекомендую для реализации валидации поля воспользоваться инструкцией по ссылке:https://academy.terrasoft.ru/docs/developer/interface_elements/page/pol…

Алёна Доля,

Добрый день! Валидация и маска ввода, это немного разные вещи. Меня интересует конкретно маска ввода.

Шарафутдинов Фаиль Русланович,

Здраствуйте, в таком случае реализацию рекомендую рассмотреть через DOMNodeInserted.
Добавить метод, в котором будет указываться маска для поля, и добавить его вызов в Init, например:
    setPhoneMask: function(that) {
                            $(document).bind("DOMNodeInserted", function(e) {
                        if ( $("#HbkNewTrustNumberPageHbkNewTrustNumberTextEdit-el")) {
                        $("#HbkNewTrustNumberPageHbkNewTrustNumberTextEdit-el").on("focus", function() {
                        $("#HbkNewTrustNumberPageHbkNewTrustNumberTextEdit-el").mask("+7(999)999-99-99", { autoclear: false, placeholder: "_" });
                          });
                        $(document).unbind("DOMNodeInserted");                      
                        }
                    });
                },

 

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

Добрый день! Подскажите, пожалуйста, реализовали маску ввода номера телефона. На ПК все отображается корректно, а через браузер на Android маска отрабатывает некорректно, например

ПК: +996 999999999

Android: +996 999999999_________

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

Использовали следующий код:

define("ScNewTrustNumberPage", ["MultiMaskEdit"], function() {
	return {
		entitySchemaName: "",
		modules: /**SCHEMA_MODULES*/{}/**SCHEMA_MODULES*/,
		details: /**SCHEMA_DETAILS*/{}/**SCHEMA_DETAILS*/,
		businessRules: /**SCHEMA_BUSINESS_RULES*/{}/**SCHEMA_BUSINESS_RULES*/,
		methods: 
		{
			getPhoneMask: function() {
				return {
					formats: ["+996 000000000"]
				}
			}
		},
		dataModels: /**SCHEMA_DATA_MODELS*/{}/**SCHEMA_DATA_MODELS*/,
		diff: /**SCHEMA_DIFF*/[
			{
				"operation" : "merge",
				"name" : "ScNewTrustNumber",
				"values" : {
					"controlConfig" : {
						"className": "Terrasoft.MultiMaskEdit",
							"mask": {
								"bindTo": "getPhoneMask"
							},
						"maskConfig": {
							"definitions": {
								"0": {
									"re": "[0-9]"
								}
							}
						}
					}
				}
			},
			]/**SCHEMA_DIFF*/
	};
});

 

Нравится

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

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

Алёна Доля,

Добрый день!

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

Шарафутдинов Фаиль Русланович,

Для реализации следуйте решению, которое обсудили с вами в обсуждении по ссылке: 

https://community.terrasoft.ru/questions/maska-vvoda-jquery-inputmask#c…
А именно реализовать маску с помощью jQuery.

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

Добрый день!
Потребовалось отловить запрос через fiddler который уходит с серверной стороны сайта.
Что пробовал
Базовые настройки в гайдах фидлера которые пробовали:
1) прописать в Terrasoft.WebApp\Web.config прокси
2) прописать в machine.config прокси
3) прописать через cmd netsh winhttp set proxy 127.0.0.1:8888)
Текст прокси
<system.net>
   <defaultProxy enabled = "true" useDefaultCredentials = "true">
     <proxy autoDetect="false" bypassonlocal="false" proxyaddress="http://127.0.0.1:8888" usesystemdefault="false" />
   </defaultProxy>
</system.net>

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

Нравится

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

Сергей, здраствуйте!
Вам может помочь в решении статья  по работе с fiddler.

Тут на видео пример https://www.youtube.com/watch?v=gnCKXw5gnzI

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

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

Добавил в блок тем консультации новый раздел " Финансовые показатели": 

Пакет устанавливается без ошибок, но данные не появляются, я так думаю я делаю не правильную привязку данных попробовал через утилиту, которая предлагает в MarketPlace, тоже не помогло. Привязку делаю следующим образом: 

Это блок темы консультации.

Затем я делаю привязку данных в самом теме консультации:

Но данные не переносятся. Что я делаю не так подтолкните пожалуйста. 

Нравится

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

Добрый день.

 

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

 

1. Сгенерируйте исходные коды для измененных и скомпилируйте всю конфигурацию. Перелогиньтесь в срм, проверьте появились ли нужные элементы в карточке, если нет, тогда перейдите к п.2.

 

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

 

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

Алла Савельева,

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

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

 

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

Олег Нефедьев, Логи сохранились, я чекнул логи, уставка проходит успешно он сохраняет все делати, но не привязывает кнопки и не обновляет процессы  тех кнопках, которые уже были. 

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

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