Зачем в ProductEntryUtils.RecalculateAmountByProducts повторно брать цену из продукта, если в "Продукте заказа" (например) уже установлена цена продукта в сделке?
В итоге цена, установленная менеджером / прайс-листом затирается.
Если объяснения нет, то прошу считать это багом и внести на исправление в ближайшее время.

P.S.: Спасибо, что сделали метод GetProductFinanceSelect виртуальным. Хоть как-то можно подкорректировать данную логику.

Нравится

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

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

В других схемах не видно упоминаний этой функции. Вы сами написали код, который её запускает?

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

Коллеги, здравствуйте! Нужна помощь.

В bpm'sales enterprise есть функционал работы со счетами. при добавлении в счет новых продуктов, открывается отдельная страница с удобным поиском.
 

Мы добавили кастомную сущность - Коммерческое предложение. В нем так же надо реализовать добавление товаров. Подскажите, можно ли использовать функционал реализованный в Счетах и как это сделать.

Пока реализовали через lookup-поле и выбор продукта в модальном окне. Но это не так удобно, как в случае со счетами.

Нравится

1 комментарий
Лучший ответ

Переносили весь функционал при разработке проекта и скажем так: геморой тот ещё. Причем это было до того, как террасофт переделал этот функционал под BaseSchemaModule. Я так глянул - разницы +/- никакой, наибольшая проблема - миллиард esq запросов с кучей столбцов. На вскидку - неделька переноса и отладки. Может быть 2, как пойдёт)

Переносили весь функционал при разработке проекта и скажем так: геморой тот ещё. Причем это было до того, как террасофт переделал этот функционал под BaseSchemaModule. Я так глянул - разницы +/- никакой, наибольшая проблема - миллиард esq запросов с кучей столбцов. На вскидку - неделька переноса и отладки. Может быть 2, как пойдёт)

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

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

Нравится

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

Добрый день, Роман!

Интересующий Вас функционал Вы можете реализовать по аналогии с базовыми разделами продукта Real Estate, такими как Объекты и Листинги, просмотрев объекты "Listing" или "Property", а также схемы "GalleryDetail", "ListingGalleryDetail", "PropertyGalleryDetail".

Также, мы можем рассмотреть возможность такой реализации в базовой функциональности продукта, если Вы опишите видение ценности такой детали для бизнеса, в чем ее ценность и принципиальное отличие от детали "Файлы и ссылки"?

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

Коллеги, здравствуйтей!

Возник вопрос по созданию древовидного выбора категории в объекте "продукты".
К примеру категория: "БАРНЫЕ АКСЕССУАРЫ И ТОВАРЫ ДЛЯ СЕРВИРОВКИ"  и подкатегория: "Зубочистки", только после чего выбирается тип "Зубочистки с логотипом", "Зубочистки без логотипа" итд.

Возможно ли это реализовать?

Нравится

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

Добрый день, Роман!

На сколько понял Вы хотите использовать две категории для одного и того же продукта. Для этого достаточно создать через мастер раздела еще одно справочное поле в карточке продукта на основании справочника "Категории продукта" (назвать, например, его "Категория 2"). После чего перейти к настройке каталога продукта, где верхнеуровневым сделать, например "Категория", потом "Категория 2", и после "Тип". Таким образом у Вас в каталоге будет отрабатывать фильтрация по двум категориям (хоть это и разные поля продукта по сути).

Если не совсем корректно интерпретировал Ваш запрос, то просьба более детально описать свой кейс.

Адасюк Валерий Викторович, не совсем верно. Я бы хотел реализовать в продуктах три справочника (дерево), на основе которых в правильной последовательности можно выбрать продукт. То есть изначально выбрать категорию, далее тип, а после этого только вид продукта. 

В таком случае начало аналогичное: через действие "Настроить каталог продуктов" настраиваем категорию и тип, а далее через действие "Настроить типы и фильтры продуктов" добавляем еще фильтрацию по полю продукта, выбрав поле "Вид" предварительно создав его (так как в базовой конфигурации такого поля нет). Таким образом получаем следующее.

 

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

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

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

Добрый день, Коллеги!
Возникла проблема с сортировкой записей в печатной форме.

Описание:
В разделе Заказ была добавлена Custom деталь с редактируемым реестром. На эту делать с помощью функционала импорта загружаем продукты из excel файла.
Во время импорта была реализована генерация порядкового номера продукта в соответствии с порядком записей в файле (Скриншот: "Порядок продуктов на детали с сортировкой по колонке порядковый номер".
Далее уже используем сортировку по колонке "Номер продукта" на детали для приемлемого вида.
Однако регистрация записей в базе происходит в произвольном порядке, и при печати файла продукты, в скачанном docx файле, не отсортированы (Скриншот: Порядок продуктов в распечатанном docx файле).

Вопрос: Как именно можно реализовать сортировку продуктов в распечатанном файле при его генерации по колонке "Номер продукта" детали, содержащей актуальную нумерацию? Возможно есть какой-то стандартный функционал сортировки при настройке печатной формы?

Заранее спасибо за помощь, Коллеги!

Нравится

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

Здравствуйте,
Есть справочник «Печатные формы», там открываете вашу печатную форму. Там есть закладка «Табличные части», табличные части можно изменить, и нужному полю, установить нужную сортировку. См скр:

Максим, огромное спасибо! Глупая невнимательность

Добрый день!

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

Руслан, например, можно формировать Excel-отчёт и затем уже в Excel сортировать так, как нужно.

Как вариант, да. Но если это, допустим, коммерческое предложение, которое формируется в PDF?

Тогда либо сделать несколько копий отчёта с сортировкой по разным колонкам, либо переделывать механизм формирования отчёта. К тому же, это тема о старой версии системы, сейчас в PDF можно выводить только отчёты на движке FastReport.

Хорошо, отбросим формат вывода, интересует момент "переделать механизм формирования". На стороне клиента, вроде как, удалось получить сортируемые колонки, не понятно теперь куда их передать.

Нельзя просто так отбросить формат вывода, отчёты Word и PDF генерируются принципиально различно.

 

Если речь о Word, нужно смотреть ReportService, там направления определяют в коде функции GetAdditionalMacrosesData.

Почему же принципиально? Я как раз использую ReportService в котором с помощью флага задается формат формирования отчета (WORD или PDF), т.е. не надо писать дополнительный код, просто true/false. Печатная форма разрабатывалась еще на версии 7.14.х. Новую версию построителя отчетов еще не пробовал, вы наверно его имеете ввиду упоминая принципиальные отличия.

Спасибо за подсказку с функцией GetAdditionalMacrosesData. Глянул на нее, все методы приватные, видимо нужно будет дублировать класс ReportService с переопределением методов. Может как нибудь, но пока руки не поднимаются.

 

Руслан Хасанов пишет:
Почему же принципиально? Я как раз использую ReportService в котором с помощью флага задается формат формирования отчета (WORD или PDF), т.е. не надо писать дополнительный код, просто true/false.

Руслан, в более новых версиях вывод Word-отчёта в PDF отключили. На днях обсуждали. Тем, кто уже у себя использовали, пока оставили.

Руслан Хасанов пишет:
Спасибо за подсказку с функцией GetAdditionalMacrosesData. Глянул на нее, все методы приватные, видимо нужно будет дублировать класс ReportService с переопределением методов. Может как нибудь, но пока руки не поднимаются.

Либо же подойти с другой стороны и модифицировать саму информацию в базе о табличной части отчёта. Она хранится в таблице SysModuleReportTable в текстовом поле MacrosList структурами вроде:

  {
    "caption": "Активность.Фактическое завершение",
    "metaPath": "6d33ae9b-e8b1-46d0-bd42-b8a8ca3d4f6b.f944fa96-ddd0-4cb5-ab5b-19c08048beed",
    "metaPathCaption": "Активность.Фактическое завершение",
    "aggregationType": "",
    "subFilters": null,
    "dataValueType": "DateTime",
    "sort": "Descending"
  },

Модифицировали, выгрузили и вернули прежнее значение. Маловероятно, что будут несколько пользователь грузить одновременно. Хотя, может помешать кеширование в ESQ, нужно пробовать.

Зверев Александр,

Зверев Александр пишет:
Модифицировали, выгрузили и вернули прежнее значение. Маловероятно, что будут несколько пользователь грузить одновременно. Хотя, может помешать кеширование в ESQ, нужно пробовать.

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

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

Такой подход неудобен тем, что если надо внести корректировку в печатную форму, то это придется делать на всех формах и чем их больше, тем сложнее поддерживать. Поэтому решил переопределить логику ReportService, но столкнулся с проблемой - при запуске проекта в Visual Studio команда (оригинал инструкции из коробки, т.е. я ни чего еще не менял): 

var reportGenerator = ClassFactory.Get<IReportGenerator>("Word"); 

выбрасывается исключение:

Error creating an instance of the "Terrasoft.Configuration.IReportGenerator" class

Потыкался и обнаружил что инструкция: 

ClassFactory.Get<Terrasoft.Configuration.ReportService.ReportHelper>();

в Visual Studio выполняется без ошибок.

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

Руслан, видимо, разница в том, что в во втором случае создают класс по названию, а в первом — по интерфейсу IReportGenerator и параметру. Может, такой способ при запуске не из системы не подходит?

 

Класс отчёта Word задан в схеме WordReportGenerator:

#region Class: WordReportGenerator
/// <summary>
/// Provides report generating functionality.
/// </summary>
[DefaultBinding(typeof(IReportGenerator), Name = "Word")]
public class WordReportGenerator : IReportGenerator
{

Видны те самые интерфейс, от которого наследуется класс, и параметр Word, который у Вас передаётся в ClassFactory.

 

Может, для целей отладки из Studio, создавать класс по полному названию, а уже потом, когда готовую логику будете размещать в схеме, напишете ClassFactory.Get<IReportGenerator>("Word"). Судя по схеме PdfAsyncReportGenerator, где использован именно этот вариант, он сам по себе допустим.

Спасибо, Александр, за помощь. Попробую пойти предложенным вами способом.

Удалось выполнить кастомную сортировку продукта в печатной форме, которая установлена у детали "продукт в продаже". Если деталь еще не загружена используется сортировка установленная в настройках отчета. Если у детали стоит сортировка и поле по которому выполнена сортировки имеется в печатной форме, то в печатной форме сортировка соответствует сортировке у детали. Спасибо, Александр, за оказанную помощь. 

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

Всем привет!
В продолжение поста публикую наш план выпуска новых продуктов на первый квартал 2017 года
• SMS Connector – Массовые, триггерные и служебные (транзакционные) SMS
• External File Storage – Хранение файлов в облаке
• Exchange Rates – Обновление курсов валют
• Process Scheduler – Планировщик бизнес-процессов
• JIRA Connector – Коннектор для интеграции с JIRA
• Virtual Cashbox – Виртуальная касса для работы с процессингом покупок
• Questionnaire – Модуль анкетирования
• Pulse Notifications – Настройка отчетов и уведомлений без использования процессов

SMS Connector for bpm'online – февраль 2017

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

Массовые и триггерные рассылки

  • Добавление сегментированной аудитории
  • Использование шаблонов рассылок и макросов
  • Использование короткого номера/текстового номера отправителя
  • Отложенный запуск рассылки
  • Статистика доставки
  • Широкий набор условий для старта триггерной рассылки
  • Возможность использовать SMS-рассылки, как часть сложной маркетинговой кампании
  • Учет часовых поясов

Транзакционные сообщения

  • Отправка из любого процесса в системе
  • Специальный элемент в конструкторе процессов
  • Отправка моментальных сообщений через отдельную очередь
  • Использование шаблонов сообщений

External File Storage for bpm'online – февраль 2017

Хранение файлов в облаке на одном из доступных сервисов: Box, Dropbox, Google Drive, OneDrive.
Возможности:

  • Сохранение файлов в структурированное облачное хранилище
  • Расшаривание файлов внешним пользователям из CRM
  • Хранение части вложений в базе, части - в облаке в соответствии с политикой хранения в компании. Миграция файлов в обоих направлениях
  • Возможность добавлять файлы в CRM из облака и из локальной синхронизированной папки

Exchange Rates for bpm'online – Q1 2017

Продукт предоставляет возможность актуализации курсов валют с сайтов.
Поддерживаемые сервисы:

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

Process Scheduler for bpm'online – Q1 2017

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

  • Выбор времени и дня, периодичности запуска, бизнес-процессов
  • Обработка одновременных запусков процессов
  • Обработка ошибок запуска процессов
  • Установку, настройка, изменение и удаление заданий Quartz для процессов из интерфейса
  • Просмотр состояний заданий, времени следующего запуска
  • Просмотр и анализ запуска системных процессов

JIRA Connector for bpm'online – Q1 2017

JIRA Connector позволяет организовать работу команды, использующей продукт JIRA. Команда продолжает работать в JIRA по удобной для нее схеме оперативной работы (например, спринты в SCRUM), при этом Project Manager получает всю статистику в CRM. Также в CRM осуществляется планирование ресурсов, формируется аналитика по проекту, осуществляется расчет процента участия в проекте и премиальной части.
Синхронизация с JIRA дает возможность руководителем портфеля проектов рассчитывать финансовые показатели проекта, маржинальность, связывать проекты с продажами и управлять ресурсами в портфеле проектов.
JIRA Connector содержит следующий функционал:

  • Планирование ресурсов из CRM
  • Отображение в проектах задач и багов из JIRA
  • Группировка по версиям, ответственным
  • Заполнение детали ресурсов с группировкой
  • Учет статусов задач в JIRA
  • Отдельный процесс синхронизации справочников и epic из JIRA. Возможность ручного и автоматического запуска интеграции

Virtual Cashbox for bpm'online – февраль 2017

Virtual Cashbox – это веб-приложение для визуализации, тестирования и настройки одновременного процессинга акций, а также сложных маркетинговых кампаний с использованием бонусно-накопительной системы скидок, купонов и подарочных карт. Продукт может быть адаптирован под любую клиентскую программу лояльности.
Веб-приложение позволяет наглядно тестировать действие всех акций без использования кассового аппарата или написания запросов к API. Виртуальная касса – это незаменимый инструмент для маркетингового отдела, сотрудники которого разрабатывают маркетинговые кампании. С помощью этого инструмента маркетологи могут:

  • Проводить тестирование и проверять вживую работу кампаний и акций
  • Тестировать сочетания скидок, бонусов и правил начисления баллов
  • Проверять максимальную скидку
  • Анализировать приоритетность и последовательность акций
  • Проводить публичные презентации и демонстраций

Questionnaire for bpm'online – Q1 2017

Модуль анкетирования с применением различных видов вопросов, условных переходов и заполнения объектов на основе ответов актуализации курсов валют с сайтов.
Решение включает разделы анкет и вопросов, возможность настройки скриптов прохождения анкет (условных переходов). Для каждого вопроса возможно выбрать один из доступных типов ответов: текст, число, логическое (да/нет), выбор, множественный выбор.
Возможно настраивать правила по заполнению данных в карточке клиента в зависимости от ответов на вопросы. В профиле каждого клиента сохраняется история прохождения анкет и ответов на вопросы, а также хранится ссылка на следующую анкеты в соответствии с выстроенным порядком.
Встроенное API для использования анкетирования внешними системами, сайтами, мобильными приложениями и контакт-центрами.

Pulse Notifications for bpm’online – Q1 2017

позволяет через специальный справочник настроить уведомления на группу пользователей или функциональную роль при попадании записей в определённую динамическую группу. При этом уведомление сразу содержит весь реестр записей.
Таким образом руководители легко смогут самостоятельно настраивать отслеживание параметров системы:

  • Появление оплат на определенную сумму
  • Продажи, находящиеся в воронке на определенной стадии больше определенного времени
  • Новые продажи, где маржинальность меньше Х
  • Выставленные за день счета (реестр)
  • Оплаченные счета за период
  • Неоплаченные плановые счета больше заданной суммы
  • и так далее

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

Как вы видите, в первом квартале мы планируем выпустить огромное количество отдельных модулей, есть примерно в 3 раза больше идей для выпуска во втором квартале, но мы их пока прорабатываем (и принимаем заявки от вас!).
Также, во втором квартале мы планируем выпуск суперкрутого вертикального решения пока под рабочим названием Project X, но о нем я сделаю отдельный анонс.
В комментариях принимаются голоса за любые приоритеты, конкретные фичи и «более лучшие» названия для новых продуктов:wink: в комментарии или мне на почту – svistunov@samarasoft.ru
Спасибо, что дочитали!

Нравится

Поделиться

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

"Евгений Горбулин" написал:PT JIRA Connector

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

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

Всем привет!
Публикую наш план обновления продуктов на первый-второй квартал 2017 года: 1C Connector, Docs, Bail, SQL Executor.

1C Connector 2.0 for bpm’online

Наш самый ожидаемый релиз весны. Мы полностью переходим на использование протокола OData (для 1С 8.3+). Это позволит увеличить стабильность подключение, значительно сократит количество обращений к сервисам 1С и ускорит синхронизацию в 12 раз* (!). Также появится расширенная работа с регистрами, настройка сложных фильтров-отсечений для синхронизации, настройка синхронизации с несколькими базами в интерфейсе.
*: на объемах остатков по номенклатуре от 10 000 позиций

Docs 2.0 on bpm’online (including File X и Task Control)

Весенний релиз Docs будет включать 3 основных изменения:

  • В связи с выходом платформы bpm’online studio, Docs становится действительно вертикальным решением, не будет требовать установки смежного продукта, что положительно скажется на цене для конечного пользователя
  • Визуальный конструктор согласований (по примеру конструктора кампаний в Marketing) будет позволять настраивать сложные маршруты в несколько кликов мыши
  • Расширенная поддержка согласований – возможность проставления ЭЦП и использование механизма lazy approval

Также будет добавлено много точечных нововведений, таких как поддержка мобильной версии, новые возможности десктопного клиента Informer for Windows, поддержка мини-карточек, поддержка часовых поясов, обновление алгоритма контекстного поиска, виджеты времени в активностях, расширенная работа с календарями и нумераторами и многое другое.

Bail for bpm’online

Будет поддержка текущих релизов платформы, поддержка финансовых продуктов, а также возможность установки на bpm’online studio.

SQL Executor for bpm’online

Как и обещал, добавим выгрузку в csv, хранение истории запросов и поддержку обновленной платформы 7.10 сразу после выхода.

В комментариях принимаются голоса за любые приоритеты, конкретные фичи, также можете писать мне на почту по любому вопросу –

 

Нравится

Поделиться

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

Александр,

а есть ли уже обновление для PT SQL Executor?

Александр,

а есть ли уже обновление для PT SQL Executor?

"Алла Савельева" написал:а есть ли уже обновление для PT SQL Executor?

Алла, с поддержкой 7.10 да. Новый функционал релизим на следующей неделе, я отпишусь дополнительно в этой ветке
P.S.: всегда свежие дистрибутивы здесь - ftp://ftp.samarasoft.ru/_products/sql_executor/

Круто! Буду ждать.

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

Удачи во всех начинаниях и сил завершить начатое до конца!

Алла, огромное спасибо за лестные отзывы!
Новый дистрибутив SQL Executor Доступен на ftp.
В него вошли следущие обновления:

  1. Render acceleration - ускорение отображения результатов запроса
  2. Results view limitation - вывод части данных при больших запросах
  3. CSV export - возможность выгрузки результатов запрос
  4. Show query time online - отображение времени выполнения запроса во время исполнения
  5. English localization

Александр,
а что находится в пакете Manifest.gz?

Алла, это метаданные о пакете, эти данные генерирует WorkspaceConsole при выгрузке.
Можно не ставить:smile:

Добрый день!

Подскажите, дополнение https://marketplace.terrasoft.ru/app/sql-executor-creatio работает с базой Postgre?

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

Добрый день!
Террасофт 3.3.2.252
У некоторых пользователей в реестре продуктов не отображаются некоторые продукты. (в настройках доступа к группам таблицам права у этих пользователей на чтение продуктов имеются) и какие-то продукты в реестре отображаются. Соответственно те продукты, которые не отображаются в реестре продуктов отсутствуют и в деталях договоров (строки есть,даже суммы есть, а названий продуктов нет)
В чем может быть сбой? Как то возможно отредактировать права доступа на отдельные продукты?

Нравится

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

Олеся, Вам необходимо раздать права доступа на существующие продукты (те, которые не отображаются у пользователей). Права на существующие записи распределяются через деталь [Доступ].
Т.е. Вам необходимо:
1. Под пользователем с правами администратора авторизоваться в Terrasoft.
2. Перейти в раздел [Продукты]. Через деталь [Доступ] изменить уровень прав для пользователей на требуемые продукты.

Если таких записей много, обратите внимание на скрипты: 1 и 2

Спасибо!

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

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

Нравится

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

значит вы в поле, к которому привязываетесь, пытаетесь выставить не то значение - проверьте настройки поля справочника (этого поля - "Продукт в продаже" в вашем датасете) - "Колонка" должна содержать поле с ИД в формате "уникальный идентификатор"

Анастасия, проиллюстрируйте скриншотами свойства добавленного Вами справочного поля в датасете.

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

Анастасия, проиллюстрируйте скриншотами свойства добавленного Вами справочного поля в датасете.


Прикрепляю скиншоты таблицы, запроса, датасета и ошибки, которая возникает в клиенте при попытке открытия справочника для выбора значения.

Скриншоты так себе, но понятно, что вроде бы все в порядке с привязкой.
А у вас не выскакивает(выскакивало) предупреждение, что в датасете ds_OfferingInOpportunity не определено поле для поиска? Попробуйте зайти в ds_OfferingInOpportunity и поставить полю OfferingName свойство поле для поиска.

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

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

Подскажите плиз!
Наша компания предоставляет услуги телефонно-справочной службы (принцип подписки на длительное время), а также 5 печатных изданий. Поставлена задача отобрать предприятия не стоящие на телефонной справке на сегодняшний день, а также предприятия стоявшие когда либо, но отказавшиеся от этой услуги.
Заранее спасибо!

Нравится

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

Добрый день.

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

Если будут вопросы - задавайте.

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