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

Нравится

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

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

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

Подобная тема уже обсуждалась на нашем форуме. Ознакомитесь, пожалуйста, со следующим постом

Спасибо!

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

Здравствуйте, уважаемые.
Возник вопрос(на ровном месте), вернее даже два:
1. Есть сервис добавления пользовательских полей, в нем есть карточка раздела Продукты, Продукты в документе, Продукты в счете и Продукты в задаче. Вопрос - где в разделе "Задачи" есть деталь "Продукты"? И где там вообще детали?
2. Основная деталь для нас "Продукты в договоре". Эта карточка не доступна для настройки пользовательских полей. Вопрос - почему?
Я умею добавлять поля в карточки через TSAdmin, но в данном случае я просто не знаю - куда копать, где найти карточку нужного мне окна, через которое добавляются продукты в договор.

Версия XRM + Service Desk 3.3.2.120.

Спасибо за любую подсказку.

Нравится

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

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

"Жигулев Алексей" написал:1. Есть сервис добавления пользовательских полей, в нем есть карточка раздела Продукты, Продукты в документе, Продукты в счете и Продукты в задаче. Вопрос - где в разделе "Задачи" есть деталь "Продукты"? И где там вообще детали?

Детали обычно находятся снизу, под основным реестром:

"Жигулев Алексей" написал:Основная деталь для нас "Продукты в договоре". Эта карточка не доступна для настройки пользовательских полей. Вопрос - почему?

Попробуйте добавить сервис Пользовательский полей для "Продукта в договоре", взяв за основу "Продукт в задаче" (т.е. создайте сервис и пропишите нужные поля по аналогии):

Алексей, карточка продуктов с деталей называется wnd_OfferingDetailEdit. Но она одна на все разделы. Поэтому, если Вам надо добавить что-то только для раздела Договоры - либо дописывайте логику в скрипт карточки, либо последуйте совету Ольги и добавляйте userfields для детали Продукт в договоре (см здесь Contracts\Details\Offerings\ и для примера здесь Documents\Details\Offerings\UserFields\uf_OfferingInDocument)

Окно любой детали можно просмотреть в свойстве Window элемента WindowContainer для детали в сервисе раздела:

И вопрос к Террасофту)
почему UF не добавлены в договоры?

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

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

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

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

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

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

Здравствуйте.
Я связал типы договоров с вновь созданым сервисом пользовательских полей для "Продукты в договоре", но возникает еще вопрос - как должно заполняться поле типа договора в tbl_OfferingInContract ? В сервисах-то я его прописал везде, а вот заполнения не происходит автоматом. Значит где-то код в скрипте каком-то надо указывать еще?

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

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

<...LEFT OUTER JOIN
	"TS"."tbl_ContractType" "tbl_ContractType" ON "tbl_ContractType"."ID" = "tbl_OfferingInContract"."ContractTypeID">


Так вот "tbl_OfferingInContract"."ContractTypeID" - null. Поэтому и связки никакой не происходит.

Алексей, а Вы для своих полей добавили в карточке настройки этих самых полей, для каких типов они будут отображены?

Здравствуйте.
Я содал доп. поле для всех типов договоров. Т.е. в карточке настройки пользовательских полей все типы из ContractType присутствуют. Но потом, по идее, при добавлении продукта в деталь Продукты тип договора должен как-то прописаться в таблицу tbl_OfferingInContract, но его там нет.

Нет, он там не должен прописываться. А зачем? В таблице tbl_OfferingInContract есть ссылка на договор (ContractID), в котором в свою очередь указан тип (tbl_Contract.TypeID). Вернее даже не сам тип, а ссылка на справочник типов (tbl_ContractType).

Нет необходимости дублировать одни и те же данные.

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

мануал? :mad:

страница? :cry:

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

Надо бы наверно добавить поле ContractTypeID (со связью) в таблицу tbl_OfferingInContract, селект и датасет. А потом в uf_OfferingInContract в свойствах сервисов в поля "Поле типа таблицы" поставить ContractTypeID.
ContractTypeID можно по идее заменить на любое другое поле справочника (чтобы работало аналогично ТИПУ)

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

Думал, что действительно придется выкладывать сервисы и "картинки", но обошлось.
Сравнил два скрипта и внес необходимые правки в код одного из них. Какие и куда - не скажу. Потому что про скрипты я спрашивал, но никто не подсказал. :cry:

Спасибо всем Дмитриям и Ольге!!! Пока все работает, как хотелось :smile:

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

Приведу алгоритм реализации на примере добавления поля "Привел" в карточку [Контакт].

Последовательность действий:
1. Перейти в раздел [Инструменты] – [Справочники].

2. Открыть вкладку «Действия» и вызвать действие «Открыть мастер создания колонки»
с1

3. В окне мастера создания колонки выбрать объект «Контакт»:
с2

4. Заполнить свойства добавляемого поля таким образом:
с3
Сохранить изменения.

5. По результату публикации объекта [Контакт] отобразится страница карточки контакта.

6. Выполнить публикацию страницы карточки контакта:
с4

7. В блоке «Структура» необходимо найти компонент DataSource, раскрыть его и сфокусироваться на объекте «Колонки». Вызвать команду «Добавить» - «Колонку»:
с5

8. Добавить созданную колонку «Привел»:
с6

9. "Перетянуть" добавленную колонку в рабочую область карточки редактирования. Расположить ее в необходимом блоке карточки редактирования.

10. Опубликовать страницу карточки контакта.

11. Проверить работу функционала.

Нравится

Поделиться

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

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

Судя по всему раздел "Проекты" не такой простой как кажется. Мне нужно добавить поля в карточку редактирования, но при добавления поля у меня уже возникла ошибка. Может я что-то не учла, в этом разделе, подскажите пожалуйста.
Значит мне нужно создать такие поля как:
1. Инициатор проекта (Справочник) ProjectProponent
2. Куратор проекта (Справочник) CuratorProject
3. Номер проекта (Number) NumberProject
4. Руководитель проекта (Справочник) ProjectManager
5. Исполнитель (Справочник) PerformerFIO
6. Версия плана проекта (Number) Version
7. Отдел (Справочник) Section
8. Департамент (Справочник) Department

Начала с простого, создания поля NumberProject.
1 Шаг. В tbl_Project, добавила Поле: Название NumberProject, Тип данных: Целое число
2 Шаг. В sq_Project, добавила Основную колонку "General Column" Поле tbl_Project.NumberProject AS NumberProject. Union All, добавила Основную колонку "General Column" Поле tbl_Project2.NumberProject AS NumberProject.
3 Шаг. ds_Project, добавила Целочисленное поле, Колонка: NumberProject, Заголовок NumberProject
4 Шаг. wnd_ProjectEdit, добавила поле IntegerDataControl, в свойствах DataFieldName -NumberProject

Но при проверке, возникает ошибка "Ошибка выполнения метода 'wnd_ProjectEditOnPrepare'. Dataset not in edit or insert mode"

В коде

// wnd_ProjectEditScript

var ProjectEdit = new Object();

function Initialize(Window) {
        ProjectEdit.EnableChangeName = true;
        var Dataset = dlData.Dataset;
        var HasChilds = Dataset.ValAsBool('HasChilds');
        ProjectEdit.LockedByID = Dataset.Values('LockedByID');
        ProjectEdit.LockedState = GetProjectLockedState(ProjectEdit.LockedByID);
        var IsNewRecord = (Dataset.State == dstInsert);
        ProjectEdit.IsNewRecord = IsNewRecord;
        if (HasChilds || IsNewRecord) {
                Dataset.DisableEvents();                                                
                Dataset.Values('CalcActualValues') = true;
                Dataset.EnableEvents();
        }
        var ExecutorTeamRoleID = Dataset.Values('ExecutorTeamRoleID');
        if (IsEmptyValue(ExecutorTeamRoleID)) {
                Dataset.DisableEvents();
                Dataset.Values('ExecutorCalcActualManHour') = true; //Тут возникает ошибка
                Dataset.EnableEvents();

Спасибо заранее, за помощь!

Нравится

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

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

"Гакало Игорь Александрович" написал:

Добрый день!

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

Спасибо попробую.

Здравствуйте!
Возник немного другой вопрос, но в разделе "Проекта". Вот необходимо в реестре проектов, отобразить в цветом решении состояния проекта. Но надо, чтобы отображалась цветовое решение, только в "Проектах", а не в "Работах" и в "Стадиях".
Так как поля одинаковые в "Работах" и в "Стадиях", накладывая условия на параметры, например на поле "Состояние", накладывается условия и на "Работу" и на "Стадию". А мне необходимо, чтобы условия накладывались только на "Проект".
Вот пример в коде:

if (Dataset ('ResourcesExpended') <= Dataset('Budget')){
	Color.Value = clRed;     
	TextColor.Value=clBlack; 
	}

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

Добрый день!
Вам необходимо отталкиваться от значения ParentID в датасете проектов. Если оно равно NULL, то запись корневая, то есть является проектом.

"Гакало Игорь Александрович" написал:

Добрый день!

Вам необходимо отталкиваться от значения ParentID в датасете проектов. Если оно равно NULL, то запись корневая, то есть является проектом.


Спасибо, помогло:)

Здравствуйте, уважаемые коллеги!

Возник еще один вопрос по разделу "Проекты". Возникла необходимость создать поле (тип поля справочник) в разделе "Проекты", но поле необходимо создать, только для карточки редактирования "Работа Проект". Но при создания поля создаётся и в карточках редактирования "Проект" и "Стадию". Я попыталась это решить с помощью запроса (sq_Project) в Администраторе, но ничего не вышло. Может вы меня наведете на путь истинный:)

Благодарю заранее!

Добрый день!

Воспользуйтесь базовым функционалом пользовательских полей.

Файл - Настройки - Пользовательские поля. Добавьте поле в таблицу "Проект", затем укажите типы для проекта.

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

Добрый день!

Валентина, необходимо, чтобы для выбранных типов было значение по умолчанию для одной записи. У Вас для всех трех установлено "Нет".

Здравствуйте!
У меня возник вопрос в следствии работы с вычисляемыми полями.
В карточке редактирования "Прокты" в закладке финансы. Я создала два поля "Плановый доход" и "Процент планового дохода". Поле "Плановый доход" расчитывается так как нужно и сохраняет значение после того как расчет был совершен. А вот поле "Процент планового дохода" расчитывается так как нужно, но результат после расчета в самой карточке редактирования не сохраняет, после того как закрывается карточка "Проект". Что я уже только не делала. Подскажите пожалуйста в чем может быть причина.
Опишу подробно как я создала это поле.

В ds_Project добавила "Вычисляемое поле" - EstimatedYieldPercent.
В wnd_ProjectEdit добавила NumericEdit - edtEstimatedYieldPercent (Свойства - IsReadOnly - True)
В скрипте ds_ProjectScript

	function CalculateFinanceFields(Dataset) {
........
Dataset.Values('EstimatedYieldPercent') = GetPercentDeviation(EstimatedYield, EstimatedBudget);
.....
if (EstimatedYield !=0) {       //new
		Dataset.Values('EstimatedYieldPercent') =
			100 * EstimatedYield / EstimatedBudget;
	} else {
		Dataset.Values('EstimatedYieldPercent') = 0;
	}
}
function ds_ProjectOnDatasetCalcFields(Dataset) {
...
DataFields('EstimatedYieldPercent').IsEnabled ||
...

В wnd_ProjectGridAreaScript

function CheckProjectRequiredDataFieldsAreEnabled(Dataset) {
....
DataFields('EstimatedYieldPercent').IsEnabled; // new
...
}

В wnd_ProjectEditScript

function ClearFinanceControls() {
	edtEstimatedYieldPercent.Value = 0;
}
function FillFinanceControls(Dataset) {
	edtEstimatedYieldPercent.Value = Dataset.ValAsFloat('EstimatedYieldPercent'); 
}

Добрый день!

Данные и не должны сохраняться.

Для решения попробуйте проводить расчет при открытии карточки (к примеру, на событии OnPrepare или OnShow) либо создайте полноценное поле.

Я решила, может у нас в системе были внесены доработки по сохранению значений расчитываемых в закладке "Финансы". И решила предварительно посмотреть в демо версии. И там тоже сохраняются данные, которые были расчитаны. Как и у нас.
Может я не правильно выразилась. Мне необходимо новое поле "Процент планового дохода" EstimatedYieldPercent чтобы себя вело как и другие поля, которые расчитывают процент. Кодово я изменила все в точности как созданы другие поля отражающие процент, в карточке редактирования "Проект" в закладке "Финансы". Что может повлиять на то что значение не сохраняется?

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

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

Как данное окно называется в Администраторе?
Дело в том, что в этот грид хочу добавить еще одно поле "Номер объекта" (для поиска), но не знаю названия.
Terrasoft Real Estate 3.2.0.43

________________
abs.com.kz
Агентство недвижимости АБС Ройял Эстэйт

Нравится

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

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

Это стандартное окно выбора. Чтобы добавить в данное окно поле, Вам необходимо найти датасет сущности "Объект" и установить для нужного поля опцию "Поле для отображения".

Вам нужно в датасете "Объект" поставить галочку "Поле для поиска" напротив поля, которое хотите добавить и оно должно там появиться

Тахир, посмотрела, "Объекты" - это ds_Opportunity, т.е. Вам для нужного поля необходимо установить опцию:
Поле для отображения - если хотите видеть в реестре колонку.
Поле для поиска - выполнять поиск по данному полю в окне выбора.

Спасибо, помогло.
______________
www.abs.com.kz
Агентство недвижимости АБС Royal Estate

Татьяна, помог Ваш первый ответ, и ответ Ольги.
______________
www.abs.com.kz
Агентство недвижимости АБС Royal Estate

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

Добрый вечер.

При добавлении полей в таблицу tbl_Opportunity, в определенный момент начала возникать такая ошибка:
unsuccessful metadata update. Скрин приложен к письму.

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

Версия Sales Firebird 3.3.1

Подскажите, как решить?

Нравится

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

Добавлю.

Пробовал:
Перезапускал Firebird
Перезапускал Windows
Удалил все временные файлы.

Результат прежний.

Здравствуйте!
Для оперативного решения проблемы предлагаю передать бекап Вашей базы данных в службу поддержки (support@tscrm.com).

Алексей, какая у Вас версия Firebird? Та что идет с инсталяцией или своя?

Добрый день.

Версия Firebird та что идет с инсталляцией.

Проблему похоже удалось решить.

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

Спасибо.

Была та же проблема, сначала помогала перезагрузка сервера и клиента.А потом не в какую...

Удалось локализовать проблему.
Она возникает в случае изменения типа поля или его размерности в Администраторе...
Для исправления ошибки и успешного добавления поля необходимо удалить это поле через СУБД IB Expert и повторно сохранить весь сервис в Администраторе.

---
Конфигурация:
TSCRM 3.3.1.59
Firebird 2.0 (v.2.0.3.12981)

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