проекты деталь файлы
Скрипты
Разработка

Добрый день!

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

Есть код:

var FileName = System.CreateObject('TSObjectLibrary.Value');
var FileNames = System.CreateObject('TSObjectLibrary.StringsList');

if ((System.PromptForFileNames(FileNames,
           "Файлы Excel" + ' (*.xls;*.xlsx;*.xlsm;*xltx)|*.xls;*.xlsx;*.xlsm;*xltx|',''))) {
        var NameValues = FileNames;
    }

при вызове функции System.PromptForFileNames возникает ошибка "недопустимое число аргументов или присвоение значения свойства"

немного отредактированный код работает

var FileName = System.CreateObject('TSObjectLibrary.Value');
var FileNames = System.CreateObject('TSObjectLibrary.StringsList');

if ((System.PromptForFileName(FileName,
        "Файлы Excel" + ' (*.xls;*.xlsx;*.xlsm;*xltx)|*.xls;*.xlsx;*.xlsm;*xltx|',
                       
        '','Выберите файл', 'C:\\backup', false)))  {
 
        var NameValues = FileName;
}

с чем это может быть связано?

Нравится

1 комментарий
Технические вопросы
Разработка

А что, в версии 3.0.2.244 метод DisableEvents у DataGrid не поддерживается?
Вот такая строка выдает ошибку "Объект не поддерживает это свойство или метод":

wndFindService.Window.ComponentsByName('grdData').DisableEvents();

Нравится

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

Это метод датасета:

wndFindService.Window.ComponentsByName('dlData').DisableEvents();

т.е. если пользователь делает двойной клик по DataGrid, то вызывается метод датасета? а какой?

При двойном клике на DataGrid вызывается обработчик grdDataOnDblClick. Туда можно дописать проверку состояния какого-нибудь флага и выход из функции.

Обычно DisableEvents вызывается именно у Dataset, чтобы избежать зацикливания при вычислении одного поля по другому.

обработчик я уже написал, но SDK как бы намекает...

Да, действительно есть такой метод у DataGrid. В 3.4.0 точно есть, проверил. Если 3.0.2.244 его нет, то его в тот момент ещё не добавили.

Показать все комментарии
crm
миграция
Интеграция и импорт данных
Разработка

Здравствуйте!
Хочу представить Вашему вниманию сервис для автоматической миграции данных, Data2CRM, который позволяет переносить данные с SuiteCRM, SugarCRM, vTiger на BPMonline. Пока сервис находиться в бета-тестирование, Вы можете перенести данные на BPMonline абсолютно бесплатно.
Для более подробней информации, перейдите по этой ссылке: http://www.data2crm.com/migration/supported-crm/bpm-online

С уважением,
Марьяна!

Нравится

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

А может, стоит сделать и миграцию данных с BPMOnline на BPMOnline разных версий?

Так судя по сайту, можно все эти в любых комбинациях. А вот поддерживаемые версии (3.X, 5.X, 7.X) хорошо бы уточнить.

Судя по всему, с 3.х не мигрировать данные в 7.х

Показать все комментарии
Статистика запуска отчетов
Отчёты
Разработка

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

Нравится

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

Найдите скрипт scr_BaseFastReportPreview
В нем найдите функцию PrepareReport(AWindow)
В ней уже можно дописать функционал добавления записи, ну что-то типа такого:

function PrepareReport(AWindow) {
	CheckAttribute(AWindow, 'Report');
	frpMain.Report = GetAttribute(AWindow, 'Report');
 
	var ReportHistory = Services.GetNewItemByUSI('ds_ReportHistory'); //выбираем датасет куда хотим записать факт вызова отчета
	ReportHistory.Append();
	ReportHistory.('ContactID') = Connector.CurrentUser.ContactID; //Id текущего пользователя, т.е. тот кто вызвал отчет
	ReportHistory('ReportID') = frpMain.Report.ID; //записывает id отчета
	ReportHistory('Date') = new Date(); //дата
	ReportHistory.Post();
	...
}
Показать все комментарии

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

Нравится

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

Здравствуйте, Татьяна!

В Terrasoft есть возможность реализовать отчеты трёх типов:
1) Word
2) Excel
3) FastReport

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

Приятного дня!

При создании отчета FastReport возникает следующая ошибка.

Здравствуйте, Татьяна!

Эта не ошибка FastReport, а ошибка SQL.

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

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

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

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

"Жаворонкова Татьяна Сергеевна" написал:где в FastReport можно передать определенный параметр, который позволит выбирать данные по определенному скажем выходу

Татьяна, детализируйте, пожалуйста, задачу.

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

Создайте фильтр в запросе (sq) и оставьте его включенным.
Таким образом отчет будет строиться по определенному выходу.

Пример можно посмотреть в sq_ReportInvoiceTasks (включен фильтр, который накладывает условие по конечному состоянию задачи).

Спасибо. Нашла дополнительно такую инструкцию. возможно у неё есть 1я часть. не совсем понятно как создавались-настраивались TSDataset в данном примере. В моем случае приходят не все данные в отчет и складывается впечатление, что мои TSDataset's теряют связь мд собой по пути где-то.

Здравствуйте, Татьяна.

Вы можете посмотреть примеры датасетов в Terrasoft Administrator в модуле Invoices, подраздел Reports, например, Invoice with NDS.

Эти отчеты входят в базовую поставку.

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

Здравствуйте, Татьяна.

Вам необходимо использовать элемент GroupHeader, где в качестве свойства Condition указать колонку с рубрикой.

Пример есть в этой теме:
http://www.community.terrasoft.ua/forum/topic/8512

Также можете посмотреть пример реализации в базовом отчете Accounts by Territory.

Андрей,Спасибо большое. у меня имеется ещё один вопрос. На рисунке на том месте где должно быть описание к выходу информации нет (помечено галочкой).Появляется некрасивое пустое место.Как сделать так, чтобы в случае отсутствия информации колоночки просто шли дальше, без пробелов?

этот вопрос снялся. спасибо

Здравствуйте, Татьяна.

Возможно, Вам поможет свойство HideZeros объекта "Текст":

http://www.fast-report.com/documentation/UserManFrNET-ru/index.html?hid…

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

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

Как в таблице счетов сделать "вычисляемое" поле "Общий вес продуктов", чтобы это поле можно было выбирать в построителе запросов для формирования Word отчета?

Сложности: часть счетов приходит из процедур загрузки сторонних систем (Бух, ERP). То есть просто в карточку редактирования или датасет повесить onDataChange не получится!

Придумал триггеры After Insert, Update, Delete, но мне кажется должно быть что-то красивее...

Нравится

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

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

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

"Maxim Gritsenko" написал:

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


Ну я надеялся что тут много умных людей и кто-то может посоветовать решение а-ля Террасофт :-)
Потому что триггеры нагружают сервер, а отчетом пользуются может раз в неделю и красивее было б запросить эту сумму прям в отчете, чем при каждом запросе к продуктам пересчитывать данные!!!

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

"Maxim Gritsenko" написал:Если данные не нужны все время и актуализировать их необходимо только для аналитики время от времени, то можно рассмотреть вариант с запуском действия перед построением отчета.

Во-первых да. Можно сделать действие, которое сначала собирает нужную аналитику, а затем формирует отчет. Но тут есть элемент ухода от "коробочного" отчета, формируемого через запрос... лишний код...
Во-вторых вариант такой - просто сделать View со всеми нужными данными для отчета, зарегистрировать ее как таблицу в TS (технологии описаны тут на форуме давным давно) и далее пользуемся стандартным построителем запросов (таблица=наша вьюшка) и стандартными средствами отчета на основе запроса. Я бы так и сделал:smile:

"Maxim Gritsenko" написал:вариант с запуском действия перед построением отчета.

вариант неплохой, но для реализации лучше думаю

"Александр Кудряшов" написал: просто сделать View

.

Спасибо всем за ответы!

Показать все комментарии
Передача параметра
Отчёты
Разработка

Доброго времени суток!
Интересует вопрос, как добавить дополнительное поле в окно фильтрации в fastreport и реализовать распечатку сообщения из этого поля в отчете? И реализуемо ли это вообще?

Нравится

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

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

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

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

Что Вы подразумеваете под распечаткой сообщения из этого поля?

Требуется именно, взять значение поля из карточки фильтрации и распечатать его в отчете.
Это возможно сделать?

Посмотрите прикрепленный файл (взято из этого блога)
sozdat_svoe_okno_filtracii_dlya_otcheta_2.doc

Илья, подробный пример есть в файле, который предоставил Александр.

Спасибо!
Еще такой вопрос:
как в этом же окошке использовать стандартные фильтры для отчета?

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

Ага, а есть пример реализации такого окна?

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

Там нет стандартного фильтра.
Требуется добавить именно стандартный фильтр для отчета.
Который формируется в конструкторе отчетов.

Илья, здравствуйте.

Опишу еще раз.

Есть стандартное окно фильтрации. Вы можете добавить в него дополнительные условия фильтрации в самом отчете:

[URL=http://fastpic.ru/][IMG]http://i66.fastpic.ru/big/2014/0715/35/5d69282b…]

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

Показать все комментарии
Окно редактирования.
Скрипты
Разработка

Добрый день

Господа, никак не могу разобраться с окнами редактирования.

Существуют сервисы в системе, на основании которых надо сделать интерфейс.
С GridArea всё хорошо, но при клике на запись, или нажатии на кнопку Изменить, выбрасывается исключение. Создавал из "Настроек справочников" через добавление существующего dataset, и с нуля создавал оба окна (наследуя от базовых разумеется)

Подскажите пожалуйста, о этапах создания таких окон. Видимо что то делаю я не правильно.

Буду очень благодарен за помощь, и разъяснение этого вопроса.

С уважением
Литвяков Егор

Нравится

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

Yegor, предлагаю ознакомиться с особенностью создания окон в этой статье .
А именно, изучите [Создание окна реестра раздела] и [Создание карточки редактирования].

Если создаете окно реестра и окно редактирования для справочника, необходимо:
1. В справочнике указать "Окно редактирования" и "Окно реестра".
2. В скрипте окна реестра на OnPrepare прописать заполнение атрибута 'EditWindowUSI':

function Initialize(Window) {
	SetAttribute(Window, 'EditWindowUSI', 'wnd_TaskPriorityEdit');
}
 
function wnd_BaseGridAreaOnPrepare(Window) {
	Initialize(Window);
        scr_BaseGridArea.wnd_BaseGridAreaOnPrepare(Window);
}

Где 'wnd_TaskPriorityEdit' - название окна редактирования

Благодарю, буду пробовать.

Наталия, действую в соответствии руководства, но при изменении имеющейся записи в БД (двойной клик или кнопка Изменить) выбрасывается исключение 80020102.
Возможно что то не корректно указано в настройках сервисов?
Какие настройки (обязательные) должны быть установлены у сопутствующих сервисов?

Yegor, выгрузите и вложите сервисы окон.
Так быстрее удастся разобраться в причине ошибки.

servises.7z
Возможно что то необходимое не было указано в tbl, sq и ds?
Я предположил что проблема может быть связана с отсутствием FK в таблице, но суть не в этом оказалась.

Yegor, протестировала сервисы. Так как Вы не вложили tbl, sq и ds, в сервисах окна связала dlData с ds_AccountAddress.
В результате, изменение записи из реестра окна wnd_ClientsDiscountCardsGridArea ошибок не вызвало и отрабатывает корректно.
Проверьте:
1. Заполнены ли свойства [Ключевое поле] и [Первичное поле для отображения] в датасете.
2. Заполнено ли свойство [Первичное поле для отображения] в таблице.

Если не удастся устранить ошибку, вложите полный набор сервисов.

Наталия, внёс указанные Вами замечания, и взял на заметку, но результат остаётся прежним.

Во вложении все участвующие сервисы.

files.7z

Сервисы скачала, после тестирования напишу Вам результат.

Причина ошибки заключается в том, что Вы не добавили в sq фильтр ID.
Для устранения ошибки Вам необходимо:
1. В sq_ClientCartMain добавить параметр

/system/files/parameter.png

2. Затем добавить фильтр сравнения

/system/files/filter_0.png

Наталия, спасибо огромное. Очень помогло.
Разобрался.

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

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

Нравится

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

Добрый день!

Быстрый фильтр убрать нет возможности, поскольку он реализован в ядре системы, однако можно в Dataset'е убрать у всех отображаемых колонок свойство "Filtering Field", тогда быстрый фильтр не будет отображаться.

http://i64.fastpic.ru/big/2014/0707/1c/44874179e71178c11cd089bd57b95e1c.png

Доброе утро, Андрей.
Картинка у меня не отображается. Что это за свойство? Оно есть в моей версии?

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

Это свойство каждого поля в датасете.

Можете просмотреть картинку по ссылке:
http://i64.fastpic.ru/big/2014/0707/1c/44874179e71178c11cd089bd57b95e1c…

Да, это свойство должно быть в Вашей версии.

Админы заблокировали этот сайт, так что картинку всё равно не могу посмотреть :lol:
Ну это то свойство, которое по русски называется "поле для поиска"? Если да, то я убирал там все галки, всё равно быстрый фильтр присутствует.

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

Прошу прощения, я ошибся.

В Вашей версии данный параметр отсутствует.

Он называется "Поле для фильтрации" в более поздних версиях продукта.

[URL=http://piccy.info/view3/6671797/3792362f3261aed9262e02dcc4b03614/orig/]…]

Если для Вас критично реализовать отключение возможности использовать "Быстрый фильтр", прошу рассмотреть возможность перехода на более новую версию.
Для этого необходимо сделать запрос на адрес support@terrasoft.ru для того, чтобы мы могли идентифицировать Вас как клиента Terrasoft.

Значит нельзя... спасибо...

Показать все комментарии
Установка и Администрирование
Разработка

Использую Систему Террасофт 3, как промежуточную систему для интеграции данных из 1Сv7.7 в BPMOnline 5.4

В Инструменты -> Интеграции создала подключение к 1С, указала там путь к конфигурации на своем локальном компьютере.
1Ска развернута на другом компьютере, но конфигурация там прописана та, что хранится у меня.

При попытке оттестировать соединение выдается ошибка, скрин приложила.

В чем проблема?

Нравится

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

Антонина, добрый день!
Не установлен клиент 1С на том ПК, скрин с которого вы приложили.

В смысле мне необходимо у себя на локальной машине и базу развернуть?
У меня возникла проблема версий ОС и базы, поэтому было сделано именно так, как сделано:smile:

Антонина, данная ошибка говорит о том, что COM объект 1С не был найден в реестре (т.е он не зарегистрирован). Вам необходимо проверить, что на Вашей локальной машине установлена клиентская часть 1С.

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