Ответственному
Технические вопросы
5.x

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

Хочу добавить функцию "Напоминание" на карточку раздела "проблема". Добавила и опубликовала следующие новые поля на объект и карточку раздела.
1. Справочник "Ответственный"
2. Логическое поле "Ответственному"
3. Время/ Дата "Время напоминаний"

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

Предупреждение
Невозможно произвести вставку/обновление данных в таблице "Reminding" из-за нарушения целостности данных
The transaction ended in the trigger. The batch has been aborted.

В чем проблема? Не смогли бы подсказать?

С Уважением,
Гюнель

Нравится

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

Gunel, помимо добавления полей скриптовую логику прописывали?
Вложите, пожалуйста, редактируемые схемы.

Скорее всего вы не заполнили колонку/колонки типа "Справочник".
Напишите код который создает Entity "Reminding".

Показать все комментарии
LookupDataControl
Бренды
Технические вопросы
Разработка

Есть форма с множеством полей. Одно из них - "Бренд" - реализовано через LookupDataControl. При выборе Бренда открывается стандартное окно wnd_SelectData. Всё хорошо)
Однако, если попытаться отредактировать текущую запись Бренда, то открывается стандартное окно с двумя полями: Название и Описание, хотя я добавил кучу полей в карточку редактирования Бренда.
Возможно, это связано с тем, что в справочнике Брендов не указано "Окно редактирования". Но указать я его не могу, т.к. это системный справочник!
В-общем, где и что надо прописать, чтобы при редактировании Бренда открывалось нужное окно редактирования?

Нравится

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

запросом напрямую в бд. У Вас какая СУБД?
Если скул, то запрос такой:

update tbl_Dictionary set EditWindowUSI='wnd_XXXEdit'--ЮСИ Вашего окна
where id='{ид справочника Бренды}'

Аналогично прописывается и грид, если надо.
список всех полей (и записей) таблицы Справочники можно посмотреть "стандартно":smile:

select * from tbl_Dictionary

Понятия не имею какая СУБД. Есть только Terrasoft Press и Terrasoft Press Администратор.
Как работать с БД, не записывая запросы в скриптах?

"Ольга Прилипко" написал:

запросом напрямую в бд. У Вас какая СУБД?

Если скул, то запрос такой:

UPDATE tbl_Dictionary SET EditWindowUSI='wnd_XXXEdit'--ЮСИ Вашего окна

WHERE id='{ид справочника Бренды}'


Сработало!

Показать все комментарии
if
insert
select
добавить
дубли
Технические вопросы
5.x

Подскажите пожалуйста. Вопрос у меня по работе с БД.
Необходимо осуществить добавления в БД не повторяющихся данных из файла. Как получить данные из файла и добавить я разобрался. Добавление делаю с помощью insert:

if (????????){
var insert = new Insert(UserConnection)
  .Into("ConfItemsCode")
  .Set("Name", Column.Const(str));
  insert.Execute();
}

Но передо добавлением в БД мне надо проверить есть ли в этой таблице уже такая запись. Делаю это так:
var select = new Select(UserConnection)
  .Column("Name")
  .From("ConfItemsCode")
  .Where("Name").IsEqual(str); // пробовал и IsLike

str - это переменная типа string - данный из файла.
Вопрос: Как мне узнать есть ли в select какие -либо записи. Пробовал RowCount, HasCondition. Подскажите как это сделать правильно. Желательно получить int или bool для того чтобы проверить а только потом добавлять.

Нравится

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

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

Проще всего воспользоваться EnitySchemaQuery классом:

string Str = "test";
 
 
var manager = UserConnection.EntitySchemaManager;
var query = new EntitySchemaQuery(manager, "Account");
var currentAccountId = query.AddColumn(query.RootSchema.PrimaryColumn.Name);
var accountPhone = query.AddColumn("Name").Name;
query.Filters.Add(query.CreateFilterWithParameters(FilterComparisonType.Equal, "Name", Str));
var queryResult = query.GetEntityCollection(UserConnection);
if (queryResult.Count == 0) 
{
       var insert = new Insert(UserConnection)
  .Into("ConfItemsCode")
  .Set("Name", Column.Const(str));
  insert.Execute();
}

Дмитрий, спасибо. Все получилось

Показать все комментарии
Word
Выгрузка изображения
файлы
Технические вопросы
Разработка

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

Нравится

2 комментария
Word
отчет
поле Описание
Технические вопросы
Разработка

Подскажите есть ли возможность выгрузить в ворд форматированный текст из Документа из поля "Описание"?

Нравится

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

В базовой версии экспорт детали описание в MS Word не предусмотрен.
Вы можете воспользоваться стандартным буфером обмена операционной системы, Word поддерживает вставку с форматированием. Настроить параметры вставки Вы можете вызвав окно настроек Файл->Параметры->Дополнительно->Вырезание, копирование и вставка.

Ринат, посмотрите тему http://www.community.terrasoft.ua/forum/topic/7981

значит только копипаст..
спасибо за ответ!

Ринат, по ссылке выше - описана реализация нужного Вам функционала. (не только копи-паст)

Показать все комментарии
Word
итоги
коммерческое предложение
КП
общий итог
Технические вопросы
Разработка

uslugi.pngТребуется помощь в формировании коммерческого предложения в word.
А именно: Имеется таблица услуг (А1). Последнее поле таблицы А1 отображает итоговую сумму услуг с помощью записи #А1.Цена.Сумма>. Это в принципе уже реализовано и работает. Но необходимо это поле суммы вставить в промежуточную таблицу (А2), где будет несколько таких сумм и в конце по ним считается итоговая сумма.
Если вписать в таблицу А2 просто #А1.Цена.Сумма>, то ничего хорошего не получается

Пример, таблиц прикреплен.

Как можно реализовать подобное?

Нравится

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

Прошу по возможности поподробнее описать реализацию.

Интересно, это мне так везет или у Вас что-то с настройками доступа? Я не вижу Ваших скриншотов и при переходе на картинку uslugi.png у меня пишет "У Вас нет доступа к этой странице."...
Могу задать лишь наводящий вопрос (хотя без скриншотов только в общих чертах представила Вашу проблему..:sad:): итоговая сумма у Вас в ворде считается или тоже в запросе, на основе которого Вы строите отчет?

аналогично, не вижу скрин-шотов.

У меня тоже не открываются вложенные картинки.. не знаю почему.

Итоговая сумма должна считаться в запросе да. Т.е. сначала считается сумма по А1 услугам.. а в А2 считается сумма уже по всему проекту на основе суммы А1.

Может лучше в Excel попробовать?)

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

а отчет ФастРепорт?)

и еще -- в самом запросе у Вас суммы правильные получаются? т.е. у Вас не получается запрос построить или начинаются "чудеса" уже в самом Ворде?

В Word'e писали макрос, который необходимо было запускать для пересчета сумм и других вычисляемых полей

"Ольга Прилипко" написал:

а отчет ФастРепорт?)

и еще -- в самом запросе у Вас суммы правильные получаются? т.е. у Вас не получается запрос построить или начинаются "чудеса" уже в самом Ворде?


Запрос самый обыкновенный. И с помощью него нельзя отдельно сумму вывести по записи <#А1.Цена.Сумма>.
Может есть подробный мануал по созданию запросов в администраторе? Попробую создать свой.

"Султанов Ринат" написал:Запрос самый обыкновенный. И с помощью него нельзя отдельно сумму вывести по записи <#А1.Цена.Сумма>.

да, я с таким не сталкивалась... сумма по сумме...
для меня вообще Ворд -- это для договоров, актов, каких-то документов, т.е. максимум, что туда "из необычного" вставляла (кроме значений полей) -- это сумма прописью... Поэтому даже не знаю, возможно ли такое. Может, кто-то сталкивался и посоветует:smile:
знаю, что в фастрепорте можно что-то похожее сделать, даже на комюнити уже писала (здесь).
"Султанов Ринат" написал:В Word'e писали макрос, который необходимо было запускать для пересчета сумм и других вычисляемых полей

Или попробуйте воспользоваться советом Владимира Соколова, насчет макросов.

Спасибо за ответы.. попробую реализовать задуманное, отпишусь о результатах.

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

Добрый день, Коллеги !!!
У меня возник вопрос, как добавить фильтр с подзапросом в DataSource или как загрузить в DataSource EntitySchemaQuery или отобразить вместимое EntitySchemaQuery на гриде. Так как метод CreateFilter() в DataSource отсуствует.
Пример запроса

SELECT ID FROM TABLE WHERE ID IN (SELECT ID FROM TABLE2 WHER FIELD=1);

Нравится

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

Здравствуйте, Сергей!

Пример создания подобного фильтра для Datasource ниже:

var dataSource = Page.DataSource;
var structure = dataSource.CurrentStructure;
var filtersName = "SubselectFilters";
var filters = dataSource.FindFiltersGroupByName(filtersName);
if (filters != null) {
	structure.Filters.Remove(filters);
}
filters.Add(structure.CreateIsNotNullFilter(dataSource.Schema, "[Activity:Id:Id].Id"));
structure.Filters.Add(filters);

при необходимости можете использовать механизм вложенных фильтров.

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

А подскажите как реализовать примерно такой запрос?

SELECT
	[Account].[Id]
FROM
	[dbo].[Account]
	INNER JOIN [dbo].[AccountAddressCLADR] ON ([Account].[Id] = [AccountAddressCLADR].[AccountId])
  --INNER JOIN [dbo].[Address] ON ([Address].[Id] = [AccountAddressCLADR].[AddressId])
WHERE
	[AccountAddressCLADR].[AddressString] LIKE N'%' + N'Кобрин' + N'%'
UNION
SELECT
	[Account].[Id], Account.Name
FROM
	[dbo].[Account]
	INNER JOIN [dbo].[Contact] ON ([Account].[Id] = [Contact].[AccountId])
	INNER JOIN [dbo].[ContactAddressCLADR] ON ([Contact].[Id] = [ContactAddressCLADR].[ContactId])
  INNER JOIN [dbo].[Address] ON ([Address].[Id] = [ContactAddressCLADR].[AddressId])
WHERE
	[Address].[AddressString] LIKE N'%' + N'Кобрин' + N'%'

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

В данном случае я рекомендую использовать запросы в БД при помощи DBExecutor, для того, чтобы выбрать необходимые идентификаторы, а затем передавать их в фильтр. Пример:

var sel = new Select(Page.UserConnection)
	.Column("Account", "Id")
	.Column("Account", "Name")
	.Column("AccountCommunication", "Number")
	.Column("CommunicationType", "Name").As("CommunicationTypeName")
	.From("Account")
	.Join(JoinType.Inner, "AccountCommunication").As("AccountCommunicationSearch")
		.On("Account", "Id").IsEqual("AccountCommunicationSearch", "AccountId")
	.Join(JoinType.Inner, "CommunicationType")
		.On("CommunicationType", "Id").IsEqual("AccountCommunicationSearch", "CommunicationTypeId")
	.Join(JoinType.Inner, "AccountCommunication").As("AccountCommunication")
		.On("Account", "Id").IsEqual("AccountCommunication", "AccountId")
	.Where("CommunicationType", "Id").In(_communicationTypeUidQP)
	.And("CommunicationType", "Id").IsEqual("AccountCommunication", "CommunicationTypeId")
	.And("AccountCommunicationSearch", "SearchNumber").IsLike(Column.Parameter(_searchNumber))
	.OrderByAsc("Account", "Name").OrderByAsc("CommunicationType", "Name") as Select;
using (DBExecutor dbExecutor = _userConnection.EnsureDBConnection()) {
	using (IDataReader dataReader = sel.ExecuteReader(dbExecutor)) {
		while (dataReader.Read()) {
			var id = new Guid(dataReader["Id"].ToString());
			var number = dataReader["Number"].ToString();
			if (!_accountDictionary.ContainsKey(id)) {
				_accountDictionary.Add(id, dataReader["Name"].ToString());
				_communicationInfo.Add(id, new Dictionary<string, string>());
			}
			if (!_communicationInfo[id].ContainsKey(number)) {
				_communicationInfo[id].Add(number, dataReader["CommunicationTypeName"].ToString());
			}
		}
	}
}
Показать все комментарии
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

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

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

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