#showInputBox
7.11
sales_enterprise

В комментариях к некоторым постам упоминается, что Terrasoft.showInputBox может быть многострочный, но на практике это не работает.

Делаю так:

Terrasoft.showInputBox("Список рекомендаций", function() {}, ["ok"], null, {
name : {
	dataValueType: Terrasoft.DataValueType.TEXT,
	value: text,
	values: {
		layout: {
			rowSpan: 3
		},
		contentType: Terrasoft.ContentType.LONG_TEXT
	}
}
},
{
	defaultButton: 0
});

Получаю однострочное поле (input type="text"), в консоли ошибок нет.

Я что-то делаю не так?

Нравится

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

Оно крайне забавно съезжает в процессе заполнения текстом :DDD

 

Terrasoft.showInputBox("Список рекомендаций", function() {}, ["ok"], null, {
name : {
	dataValueType: Terrasoft.DataValueType.TEXT,
	value: "",
	customConfig: {
        className: "Terrasoft.MemoEdit"
    }
  }
},
{
	defaultButton: 0
});

 

Исправляюсь. Там оказывается есть параметр высоты.

Terrasoft.showInputBox("Список рекомендаций", function() {}, ["ok"], null, {
	name : {
		dataValueType: Terrasoft.DataValueType.TEXT,
		value: "",
		customConfig: {
			className: "Terrasoft.MemoEdit",
			height: "150px"
		}
	}
},
{
	defaultButton: 0
});

 

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

Ну раз пошла такая пьянка, какие там еще параметры есть? :)

Алексей-Карягин пишет:

какие там еще параметры есть

конкретно под  MemoEdit? поиск по all-combined выдал:

memo: {
	dataValueType: Terrasoft.DataValueType.TEXT,
	value: a,
	customConfig: {
		className: "Terrasoft.MemoEdit",
		height: "235px",
		readonly: !0,
		markerValue: "validationMessage"
	}
}

Можно тут глянуть что ещё можно добавить из свойств (placeholder и width точно работают). Ну и я так понимаю аналогично с др. контролами.

Показать все комментарии
ответственный
права доступа
Контрагент
7.12
sales_enterprise

Добрый день. Нужно решение такой задачи.

"Каждый ответственный видит только своих контрагентов"

Подскажите пожалуйста как её организовать?

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

Спасибо

Нравится

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

Здравствуйте, Григорий!

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

"своих контрагентов" - это тех, которых он создал? Или тех,  в которых он ответственный?



Первый вариант решается, как описал Андрей.

Второй вариант решается бизнес-процессом

Показать все комментарии
печатная форма
Нумерация строк
табличная часть
7.12
sales_enterprise

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

Формируем печатную формы сметы. Отображаем в смете продукты. При выводе на печать строки с продуктами в смете нужно пронумеровать.

Подскажите кто как решает вопрос нумерации строк в табличной части при ее выводе на печать?

Добавлять на деталь порядковый номер уж как то совсем костыль)). 

Спасибо!

Нравится

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

В печатных формах MS Word порядковый номер строки в таблице можно сделать средствами самого ворда:

https://support.office.com/ru-ru/article/Нумерация-ячеек-в-таблице-в-wo…

 Достаточно сделать для строки с продуктом в шаблоне и дальше оно само.

 

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

На стороне bpm'online такой возможности нет (зафиксировали пожелание).

Как вариант Вы можете настроить нумерацию прям в шаблоне Word. Алгоритм следующий:

- настраиваете табличную часть;

- в колонке ставите курсор и выбираете режим "Numbering" - http://prntscr.com/jmeujc. В результате должен появиться номер.

- проверяете, что нумерация работает - http://prntscr.com/jmeuoo и http://prntscr.com/jmew6d (необходимо курсор поставиь за пределы таблицы и нажать Enter);

- сохраняете шаблон.

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

Дмитрий, спасибо! Будем пробовать).

 

Борис Леонов, Борис, спасибо!  ))

 

Борис Леонов,

Борис Леонов,

Борис Леонов,

Борис Леонов пишет:

В печатных формах MS Word порядковый номер строки в таблице можно сделать средствами самого ворда:

https://support.office.com/ru-ru/article/Нумерация-ячеек-в-таблице-в-wo…

 Достаточно сделать для строки с продуктом в шаблоне и дальше оно само.

Борис Леонов,

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

Добрый день!

Счета выставляются от двух компаний, одна на ОСНО, вторая - УСН.

Для первой нужно указывать НДС в счетах, для второй - нет.

У меня мысль сделать в "Реквизиты плательщика" у Контрагента флажок "Плательщик НДС" и на него завязываться в дальнейшем, но это надо логику добавления счетов переделывать, макросы для печатной формы дописывать для формирования строки "Включая НДС"/"Без налога" и тд...

Может есть способ проще?

Нравится

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

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

Владимир Соколов,

не могли бы вы чуть более подробно описать идею с VIEW?

Видимо, речь о том, что создать в базе View, где средствами SQL вычислить нужные значения. Затем создать в конфигурации схему, привязанную вместо таблицы к этому View. Названия колонок и их типы нужно будет вручную задать аналогично. И с этой схемой работать в печатных формах как с обычной таблицей.

 

Примерно так (постарался вырезать лишнюю информацию, относящуюся к проекту, но не проверял на работоспособность.



Единственное, что в СНГ немного по другой методике НДС считается (у нас он считается как % от суммы всех продуктов, а в СНГ, насколько я знаю, как сумма НДС всех продуктов)



CREATE VIEW [dbo].[UsrInvoiceTax]

AS

SELECT MIN(p.Id) As Id

    ,i.CreatedOn

    ,i.CreatedById

    ,i.ModifiedOn

    ,i.ModifiedById

    ,p.InvoiceId As UsrInvoiceId

    ,p.[TaxId] As UsrTaxId

      ,p.[DiscountTax] As UsrDiscountTax

        ,CAST ( SUM((Quantity*PrimaryPrice) - PrimaryDiscountAmount) AS DECIMAL(18,2)) As UsrTotalPrimaryAmount

        , CAST (SUM((Quantity*PrimaryPrice*i.CurrencyRate) - PrimaryDiscountAmount*i.CurrencyRate)AS DECIMAL(18,2)) As UsrTotalAmount

        ,t.Name As UsrTaxName

        ,ROUND((SUM(Quantity*PrimaryPrice- PrimaryDiscountAmount))*p.DiscountTax/100,2) As UsrTotalTaxPrimaryAmount

        ,CAST (ROUND((SUM((Quantity*PrimaryPrice-PrimaryDiscountAmount)*i.UsrCurrencyRate ))*p.DiscountTax/100,2)AS DECIMAL(18,2)) As UsrTotalTaxAmount

FROM [dbo].[InvoiceProduct] p

LEFT OUTER JOIN [dbo].[Tax] t ON t.Id=p.TaxId

LEFT OUTER JOIN [dbo].[Invoice] i ON i.Id=p.InvoiceId

GROUP BY      i.CreatedById

    ,i.ModifiedOn

    ,i.ModifiedById, i.CreatedOn,p.InvoiceId, p.TaxId

     ,p.DiscountTax

    ,t.Name

GO

Коллеги,

создал View

CREATE VIEW dbo.VwZLInvoice
AS
SELECT 
	i.Id,
	i.Number,
	i.StartDate,
	IIF(SUM(CASE WHEN ZLVATPayer = 1 THEN p.TaxAmount ELSE 0 END) <> 0, 'В том числе НДС:', 'Без налога (НДС):') VATSumCaption,
	SUM(CASE WHEN ZLVATPayer = 1 THEN p.TaxAmount ELSE 0 END) ZLInvoiceVATSum
FROM dbo.Invoice i
LEFT JOIN  dbo.InvoiceProduct p
	ON i.Id = p.InvoiceId
LEFT JOIN dbo.AccountBillingInfo abi
	ON i.SupplierBillingInfoId = abi.Id
GROUP BY
	i.Id,
	i.Number,
	i.StartDate

далее создал объект с такими же колонками, как у View, а как мне теперь сделать что бы колонки этого объекта стали доступны для добавления при редактировании печатной формы для раздела Счета?

Владимир Соколов,

я же правильно понимаю, что вьюшка вашего варианта попадет в колонки печатной формы как "Название объекта (по колонке Счет)"?

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

Возможен вариант создания View - копии объекта с дополнительными вычисляемыми колонками. Это классная техника, но она годится только для таких задач, как подготовка данных для экспорта, ибо для использования в печатных формах придется замещать родителя и, скорее всего, создавать триггеры для добавления/удаления/обновления.

Пока мне видится более приемлемым традиционный вариант с добавлением нужных полей в объект и логикой в карточках объектов, продолжаю исследования :)

 

 

Борис Леонов пишет:

я же правильно понимаю, что вьюшка вашего варианта попадет в колонки печатной формы как "Название объекта (по колонке Счет)"?

Не совсем. Эта VIEW попадает в печатную форму как отдельный объект. Полная аналогия с объектом "Продукт в счете" 



Без него не обойтись, если решать задачу в общем случае, когда на разные продукты в счете может применяться своя ставка НДС

Добавить комментарий

Владимир Соколов пишет:

да, именно это я и подразумевал, не совсем ясно выразился 

Показать все комментарии
установка
ошибка
sales_enterprise

При запуске приложения всплывает такая ошибка. Собственно, как это фиксить? (установка была выполнена согласно туториалу по установке приложения on-site)Изображение удалено.

Нравится

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

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

Судя по ошибке проблема с redis, либо указаны некорректно параметры подключения, либо нет доступа к нему.

Рекомендую обратиться в тех. поддержку Террасофт - support@terrasoft.ru

 

Показать все комментарии
бизнес-процесс
7.11
sales_enterprise

Можно ли как-то продолжить двигаться по процессу после ошибки? В автоматическом или ручном режимах (в журнале процессов)?

Например, не сохранились данные в элементе "добавить данные", допустим, это не критично, можно ли продолжить процесс?

Нравится

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

Добрый день, Алексей!



В момент возникновения ошибки экземпляр процесса фиксирует текущее состояние.



Если устранить источник проблемы и повторно выполнить элемент с ошибкой в журнале процессов - БП продолжит выполнение.



Если ошибка возникает на уровне БД (блокировка транзакции, дедлок) возможен риск потери служебных данных. В таком случае продолжить экземпляр процесса не представляется возможным.



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

Показать все комментарии
7.11
sales_enterprise
День добрый!
Подскажите, пожалуйста, способ которым можно получить пароль пользователя.
Именно ту строку, которую вводит пользователь при входе в систему, а не хэш.

 

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

Нравится

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

Здравствуйте, Юрий!

Получить не хэшированный пароль нельзя.

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

Добавить комментарий

Shevchenko Andrey,

Спасибо

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

Коллеги, интересует можно ли ограничить доступ к bpm только по внутренней сети и вывести field sales в открытый доступ?

 

Нравится

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

Если приложение не будет доступно по внешнему адресу, мобильное приложение не сможет синхронизироваться с БД.

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

Добрый день!

Есть БП с текстовым параметром (TextResult), целочисленным параметром (IntResult), идентификатор (AccountId). В БП я задаю им определенные значения, явно отличные от пустой строки, нуля и пустого Guid. После выполнения БП я хочу получить результирующее значение любого параметра.

Пробовал как указано на академии Get запрос делать прямо в строке браузера http://localhost:8082/0/ServiceModel/ProcessEngineService.svc/TestProce…

ответ: http://schemas.microsoft.com/2003/10/Serialization/">null     ---- null, вместо текста который должен был быть результатом.

на запрос http://localhost:8082/0/ServiceModel/ProcessEngineService.svc/TestProce…получаю ответ http://schemas.microsoft.com/2003/10/Serialization/">0   ---- опять ноль, хотя указывал разные целые числа

ну и для Guid ответ http://schemas.microsoft.com/2003/10/Serialization/">"00000000-0000-0000-0000-000000000000"  --- снова ноль.

НО входящие значения параметров БП применяются и всё отлично.

Что за ньюанс такой, кто ведает прошу поделиться знаниями.

Может "Параметр процесса, который хранит результат выполнения процесса" (взято из академии) как-то нужно пометить в БП?

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

 

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

 

Нравится

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

Добрый день, 

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

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

Tsopa,

Все верно спасибо.

Tsopa,

а что делать если процесс не компилируется (7.15.3) и в процессе не используется элемент задание-сценарий?

Сейчас используют интерпретируемые процессы, компилируемые остались только старые. А в интерпретируемых возврат значения не предусмотрен. Для обмена информацией либо писать в какую-то таблицу, а потом извне читать по OData, либо вызывать в самом БП веб-сервис системы, с которой идёт интеграция.

Показать все комментарии
Бизнес-процессы
7.11
sales_enterprise

Всем привет, подскажите как сделать цикл в бизнес процессе?

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

Нравится

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

Ну, не знаю что конкретно Вы хотите сделать, но можно создать булевое поле, Читать количество записей, где это поле = false, если такие записи найдены, то выполняете свою логику и ставите в это поле true. Опять идет читка данных из лидов, если опять найдены такие лиды где false - отрабатывает та же логика. Если записей не найдено. завершаете процесс. Надеюсь чем-то помог.

 

Можно сделать блок БП «скрипт» и в С#-коде написать GetEntityCollection, а затем по результату foreach-циклом, как в примере №4 тут.

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

Товарищи спасибо

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