Добрый день, была добавлена новый объект "Трудозатраты", он выведен на форму обращения следующим образом.Изображение удалено.

поле "Описание выполненных работ" это строка неограниченной длины оно многострочное.

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

Как сделать его больше в высоту, поскольку описание может быть хоть на две страницы, а смотреть его в этой строчке неудобно.

Нравится

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

Если деталь 'Трудозатраты' редактируемая, то используя стандартную функциональность никак.

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

Если деталь 'Трудозатраты' редактируемая, то используя стандартную функциональность никак.

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

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

Не могу никак разгадать загадку: сделала новую деталь в разделе , в том числе окно добавления данных в деталь с необходимыми для этого tbl, sq и ds , и тд..
Подключила деталь, отражается правильно, при переключении в главном реестре обновляются данные детали, записи на деталь добавляются и удаляются. Но если попробовать отредактировать , то открывается окно заполненное другими данными (!). Определила что это - первая запись при выборке в sq.
Вопрос, который из этого следует понятен: как так получается и как это побороть?

Нравится

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

Здравствуйте, возможно предположу если Вы применяете наложение фильтра

ApplyDatasetFilter(LookupDataset, '..', ..,..);

то попробуйте его отключать перед выборкой

как-то так

if (LookupDataset.State != dstInactive) {
LookupDataset.Close();
}
try{
EnableDatasetFilters(LookupDataset, false);
ApplyDatasetFilter(LookupDataset, '..', ..,..);
LookupDataset.Open(); ...

Возможно ...!

Здравствуйте, Виктория!

Создавая новую деталь, воспользуйтесь темой на нашем форуме, http://www.community.terrasoft.ru/developer/faq/1904
возможно Вы где-то допустили ошибку.

ошибка нашлась в виде отсутствующего фильтра сравнения в sq по ID записи. Спасибо

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

Добрый день.

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

На сейчас получилось добавить саму деталь в раздел (в wnd_AccountsWorkspace). Я прописала обновление детали в scr_AccountsWorkspace. Для этого фукнция RefreshDetails() изменена, добавлены строки

        if (pcDetails.ActivePage.Name == pgObjectDetail.Name) {
                RefreshObjectDetail();
        } else

и созданы 2 новых функции

1)

function InitializeObjectDetail() {
        var DetailWindow = wndObjectDetail.Window;
        AccountsWorkspace.ObjectWindow = DetailWindow;
        SetAttribute(DetailWindow, 'ParentItemFieldName', 'object_clientID');
        DetailWindow.Prepare();        
        AccountsWorkspace.ObjectDataset =
                DetailWindow.ComponentsByName('dlData').Dataset;
}

2)

function RefreshObjectDetail() {
   if (AccountsWorkspace.InitializeObjectFlag != true) {
                InitializeObjectDetail();                          
                AccountsWorkspace.InitializeObjectFlag = true;
        }
        var AccountID = BaseWorkspace.GridDataset.ValAsGUID('ID');
        if (AccountID == AccountsWorkspace.ObjectOldAccountID) {
                return;
        } else {
                AccountsWorkspace.ObjectOldAccountID = AccountID;  
        }
        SetAttribute(AccountsWorkspace.ObjectWindow, 'ParentItemID',
                AccountID);
        RefreshDetailData(BaseWorkspace.GridDataset, 'ID',
          AccountsWorkspace.ObjectDataset, 'object_clientID');
}      

Теперь при открытии детали возникает ошибка в функции:

function CheckAssigned(Object, ObjectName) {
        if (!Assigned(Object)) {
                var ErrorMgs = FormatStr(ObjectNotAssignedError, ObjectName);
                throw ErrorMgs;
        }
}

и появляется сообщение "OLE 80020101".
После этого деталь все же открывается, но пустая.
Если добавить в детали новый Объект, то он создается нормально, и после сохранения отражаются все Объекты, которые хранятся в системе, не зависимо от того, относятся ли они к данному контргагенту или нет.
Что еще я не учла при создании детали?
Какие изменения внести, чтобы деталь открывалась правильно?

Нравится

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

Виктория, вероятно, Вы не создали параметр и фильтр сравнения под названием object_clientID в запросе выбора данных детали.

У меня есть ds_ObjectInAccount на основе sq_ObjectInAccount (поля Object и ObjectID). В этом запросе создан параметр AccountID, который сравнивается с полем object_clientID таблицы Object.
Надо переименовать этот параметр в object_clientID ?

Попробовала переименовать, но результат от этого никак не изменился. Ошибка получается на той же самой итерации.

Проверьте чтобы и параметр, и фильтр в sq_ObjectInAccount назывались object_clientID, поскольку Вы вызываете фильтр под таким названием:

RefreshDetailData(BaseWorkspace.GridDataset, 'ID', 
          AccountsWorkspace.ObjectDataset, 'object_clientID');

Да, я так и изменяла. Но это не помогает.
Может, надо где-то еще прописать обращение к указанному датасету ds_ObjectInAccount и запросу ?

Ой, как оказалось - я не там создавала этот самый параметр!!!
Надо было не создавать отдельный ds_ObjectInAccount и sq_ObjectInAccount, а написать этот параметр в существующем sq_Object, который создавался во время создания раздела!
Теперь все работает правильно.

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