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

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

Нравится

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

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

Дмитрий, документы отображаются. хотелось бы видеть там и заявку. Пример Рис.1. мы видим историю Контрагента без заявок, затем переходим к продажам Контрагента Рис.2., открываем вкладку заявки, заявки имеются. В итоге в Истории их нет.как их туда подтянуть?

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

Прикрепляю инструкцию по добавлению «Конфигурационной единицы» на деталь «История» менеджера деталей раздела «Контрагенты». Выполнив действия по аналогии Вы сможете реализовать добавление информации о заявке на деталь «История». Перед внесением изменений в конфигурацию настоятельно рекомендуем создать резервную копию базы данных.

Спасибо за инструкцию. будем пробовать.

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

Добрый день!

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

У нас возникла необходимость в таблицу Контакты добавить несколько полей, НО чтобы их могли редактировать все пользователи.

Т.е. на эти новые поля права для всех, а на все остальные - по-умолчанию.

Подскажите, пожалуйста, как лучше это реализовать?

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

Нравится

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

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

Добрый день!

Для настройки прав доступа к колонкам, Вам необходимо перейти в Админитсрирование: Доступ к объектам, найти объект "Контакт", и включить для него администрирование по колонкам. После чего найти необходимую Вам колонку и добавить для нее пользователей и уровни доступа для этих пользователей, как показано на скриншоте.

Александр, спасибо за ответ, но у меня не Online, у меня нет "Доступ к объектам".

Алексей, настроить права доступа таким образом невозможно, так как иерархически доступ к объекту "Контакт" находится выше чем к полю.

Понятно, спасибо!

Я сделал следующим образом:

  • добавил еще одну таблицу, в которой хранятся те самые несколько полей, которые должны быть общими для всех, связанными с таблицей контактов по ID контакта,
  • при открытии карточки контакта идет считывание в поля (поля обычные, не data),
  • при сохранении проверяется нет ли уже записи для этого контакта, и либо Edit(), либо Append()

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

Можете прокомментировать такое решение?
Спасибо!

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

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

Показать все комментарии
дата меньше
Фильтры
Разработка

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

Задача была разделить продажи на созданные меньше, чем 2,5месяца назад, от 3,5 до 2,5, от 4,5 до 3,5, и те которые созданы больше чем 4,5 месяца назад.

Нравится

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

Мой совет создать в sq_Opportunity дополнительную колонку, которая будет считать кол-во дней со дня создания.
Так необходимо в sq_Opportunity создать "Колонку с текстом SQL" и написать туда

DATEDIFF(day, tbl_Opportunity.CreatedOn, GETDATE())

Добавить ее в датасет (целое число) и вот вы можете построить фильтр по дням с создания продажи.
С месяцами думаю тоже можно, но надо возиться.

Для месяцев, в колонку с текстом SQL надо написать

DATEDIFF(month, tbl_Opportunity.CreatedOn, GETDATE())
+
(DATEDIFF(day, tbl_Opportunity.CreatedOn, 
    DateAdd(  mm,
         DATEDIFF(month, GETDATE(), tbl_Opportunity.CreatedOn),
         GETDATE()
    )
)/1.0)
/
Day(
  DateAdd( day,
   -Day(DateAdd(month, 1, tbl_Opportunity.CreatedOn)), 
   DateAdd(month, 1, tbl_Opportunity.CreatedOn)
   )
)

И уже надо добавить в датасет колонку дробного типа.

пробую сделать первый вариант. Колонку с запросом назвала NumberDayCreated
После добавления в ds , в фильтрах появилось Количество дней от создания , но при попытке применить этот фильтр пишет "невозможно открыть ds_Opportunity. Invalid column name NumberDayCreated"

У меня такой проблемы не возникало на 3.4.0.130
Попробуйте поставить свойство колонке "Всегда выбирать в запросе", может поможет.
А какая у вас версия?

версия 3.3.2.287, я пробовала устанавливать галочку, но от этого ничего не изменилось

Виктория, присутствует ограничение на фильтрацию по колонке с текстом Sql, поэтому у Вас возникает ошибка. Но обойти ограничение Вы можете таким образом:
http://www.community.terrasoft.ru/blogs/4397

Да, Наталья, так помогло!

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

Приветствую, коллеги:)
Один простой(может и не очень вопрос).
В DataGrid выведено для показа единственное вычисляемое поле, которое в свою очередь собирается из отдельных полей датасета, ну например:
Dataset('CalcField') = Dataset(Name) + ' получил следующий бонус: ' + Dataset(Bonus);
Соответственно колонки Name и Bonus - значения из таблицы.

Вопрос:
Могу ли я раскрасить это поле не целиком на событии OnGetRowDrawInfo, а отдельно в этом поле для Dataset(Name) присвоить скажем зеленый цвет, для Dataset('Bonus') присвоить красный.
Чтобы получилось так что в одном выводимом вычисляемом поле использовались бы разные цвета?

Нравится

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

Половину ячейки в гриде одним цветом, половину другим вы точно не сделаете.
Делайте два поля и красьте каждую ячейку отдельно если версия TS 3.2 и выше

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

Половину ячейки в гриде одним цветом, половину другим вы точно не сделаете.

Делайте два поля и красьте каждую ячейку отдельно если версия TS 3.2 и выше


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

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

"Александр Кудряшов" написал:Половину ячейки в гриде одним цветом, половину другим вы точно не сделаете.

Конкретизирую - раздельной окраски насколько мне известно нет.
Нижайший поклон и прошу покорнейше простить что ответил не то. Мне стыдно

"Александр Кудряшов" написал:Могу ли я раскрасить это поле не целиком на событии OnGetRowDrawInfo, а отдельно в этом поле для Dataset(Name) присвоить скажем зеленый цвет, для Dataset('Bonus') присвоить красный.

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

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

Могу ли я раскрасить это поле не целиком на событии OnGetRowDrawInfo, а отдельно в этом поле для Dataset(Name) присвоить скажем зеленый цвет, для Dataset('Bonus') присвоить красный.

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


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

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

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

Нравится

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

Описание сохраняет ядро... 2-мя способами:

1. при нажатии на кнопку "сохранить"
2. при закрытии датасета с описанием

Пользователь Б не видит описания если пользователь А нажал на дискетку?

пс: http://www.community.terrasoft.ru/forum/topic/6790

Спасибо за помощь

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

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

Нравится

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

У Вас нет в конфигурации таблицы tbl_Contact?
Это очень плохо. Сама по себе она "пропасть" не могла - её удалил пользователь с правами администрирования системы. Лучше всего - загрузить сервис из бекапа базы. Если бекапа нет - открываете таблицу в Management Studio, смотрите название и типы колонок - и создаете новый сервис tbl_Contact с аналогичной структурой (как в бд). Не забудьте также добавить внешние ключи в сервис таблицы.

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

Добрый день! Я новичок, очень нужна помощь.

Ситуация такая:
Создал свое окно для выбора дополнительных параметров отчета Excel. Его открытие происходит в разделе Контакты (wnd_ContactsWorkspace), нажатием Отчеты->"Мой отчет". Как передать Фильтры примененные к Контактам в открытое окно или как их получить из этого окна, для того что бы передать их в запрос допустим sq_Contact.

Нравится

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

Судя по функции

function ProcessPrepareWordReport(ReportID, QueryID, WorkspaceWindow, IsPreview, RecordIDs) {
    var QueryDataset = GetSingleItemByCode('ds_Query', 'ReportUtils');
    ApplyDatasetIDFilter(QueryDataset, QueryID, true);
    QueryDataset.Open();
	PrepareWordReport(ReportID, QueryDataset, WorkspaceWindow, IsPreview, RecordIDs);
	QueryDataset.Close();
}

вам нужно по кнопке в вашем окне вызывать эту функцию, и в параметр RecordIDs - передать IDшники отфильтрованного источника данных.

Спасибо разобрался уже.

Показать все комментарии
быстрый фильтр
дробное число
фильтр
Фильтры
Разработка

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

Возникла следующая проблема - при использовании быстрого фильтра по дробному числу в поле ввода значения некоторые пользователи не могут ввести число, больше 8-ми символов, хотя размер числа установлен 15 и точность 4, а некоторые могут. А в фильтрах Workspace-а уже все пользователи могут ввести только 11 символов.

Может кто сталкивался с данной проблемой?
Заранее спасибо.

Нравится

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

Какая используется версия бинарников?

Александр, добрый день.
Там, где работает, бинарники 3.3.2.210
А где нет - 3.3.2.43

Как я понимаю, всё дело в этом?

Денис,

да, исправления были внесены в новую версию бинарных файлов.

Вам необходимо обновить бинарные файлы.

По запросу в техническую поддержку (support@terrasoft.ru) мы можем предоставить Вам самую актуальную версию (на данный момент - 3.3.2.311).

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

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

Тестирую 3.5.1
Хочу отобразить на карточке Контрагент данные Контактов:
Добавляю в карточке Контрагент Невизуальные - DataSetLink - ds_Contact. Переименовываю в dlContacts.
На карточку Контрагент добавляю DataGrid - DafaGridView - Колонки.
В DataGrid для DatasetLink выбираю dlContacts, для ActiveView - DafaGridView. Для колонок выбираю названия полей.

Запускаю клиент - данные в гриде Контакты не отображаются.
Делаю тоже самое для версии 3.3.2 - данные Контактов отображаются.

См. скриншоты.

Что не хватает в версии 3.5.1?

Нравится

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

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

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

Сложно предварительно сказать в чем проблема. Можете отследить запросы с помощью профайлера: который идут соответственно на 3.3.2 и на 3.5. Тогда думаю станет понятно чего не хватает для отрисовки грида. В плане добавления колонок глобально ничего не менялось в 3.5

Профайлер показывает в 3.3.2: Есть Select tbl_Contact
В 3.5.1 этого селекта нет.
Дебаггер проходит идеинтичные пути в 3.3.2 и 3.5.1.
Какие настройки в конфигураторе нужно ещё проверить?

Такое ощущение, что в реализации на 3.5.1 датасет контактов не открывается. Попробуйте открывать принудительно.

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

Такое ощущение, что в реализации на 3.5.1 датасет контактов не открывается. Попробуйте открывать принудительно.


В каком сервисе на каком событии?
Просто на onShow карточки Аккаунт будет неправильно: Выводит все Контакты, а не связанные с Контрагентом...

function wnd_BaseDBEditOnShow(Window) {
	var DataSet = dlContact.Dataset;
	DataSet.Open();
}

Наверное есть какие-то системные настройки, какие делают это автоматически (Выводят данные детали). Или всегда где-то для этого нужно прописывать Код?

Разумеется нужно добавить фильтр на датасет контактов по контрагенту, а затем открыть его, вручную. Делается это на DatasetAfterOpen основного датасета. И тоже самое делать на AfterPostitionChange

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

Есть задача сохранить некие значения в базу данных из отчета. Эти данные вводятся пользователем в диалоговом окне, которое создается в FastReport-е и отображаются в memo-полях отчета. Можно как-то эти значения сохранить в БД средствами FastReport-а, например при нажатии кнопки Ок в этом же диалоговом окне?
версия 3.0
SQL 2008

Нравится

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

Добрый день.

Если у Вас есть собственное пользовательское окно фильтрации отчета, то почему бы не рассчитывать и сохранять в БД необходимые данные, например, при нажатии на "ОК"?

Добрый день.
А я так и сделал.
А средствами FastReport-а можно это сделать?

FastReport - это средство вывода информации.
Прошу уточнить, какой в этом смысл?
Насколько я знаю, такой возможности нету.

Ну так в нем же есть возможность создавать компоненты ADO, значит потенциально можно выполнить INSERT или UPDATE.

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

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