Скрипты
Разработка

Вопрос по заведению детали «Продукты».

Задача – создать раздел «Заявки» с деталью «Продукты».
Я создал с помощью матера раздел «Заявки» (Enquiry). В режиме администратора этом разделе добавил деталь «Продукты» скопировав tbl, ds, и sq из аналогичного раздела в Счетах и добавив страницу во фрейм Details в wnd_EnquiryWorkspace. Соответственно заменил все поля и связи с Invoice на Enquiry. В итоге почти все заработало. В деталях появилась вкладка «Продукты». Можно делать подбор продукта. Добавленные продукты сохраняются в базе данных, НО – в поле EnquiryID (аналог InvoiceID) записывается NULL. Поэтому при обновлении детали «Продукты» список продуктов заказа не отображается.

Вопрос – какой механизм отвечает за запись значений датасета в базу данных при добавлении продукта? Что это за функция и в каком скрипте она содержится? Можете привести пример?

Нравится

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

Вам необходимо проинициализировать деталь. Можете сделать по аналогии с теми же Счетами. В скрипте workspace-а, в функции RefreshDetails есть условие pcDetails.ActivePage.Name == pgOfferingsDetail.Name, при выполнении которого выполняется RefreshCommonDetail.

Вопрос не с обновлением гида “Детали”. Функция обновления работает. Привожу ее ниже
[javascript]
function RefreshDetails() {
if (!scr_BaseWorkspace.RefreshDetails()) {
return;
}
if (pcDetails.ActivePage.Name == pgGroupsDetail.Name) {
RefreshEnquiryGroupsDetail();
}

else if (pcDetails.ActivePage.Name == pgAccessDetail.Name) {
RefreshAccessDetail(BaseWorkspace, wndAccessDetail, 'tbl_EnquiryRight');
}
else if (pcDetails.ActivePage.Name == pgOfferingsDetail.Name) {

RefreshCommonDetail(BaseWorkspace, wndOfferingsDetail,
'EnquiryID', 'ID', 'ds_OfferingInEnquiry');
}

}
[/javascript]

Дело в том что в базу данных не записывается EnquiryID. Т.е. записи о выбранных продуктах есть, а связи с конкретным заказом нет. Если в поле EnquiryID прописать нужный GUID вручную, то все нормально отображается. Нужно чтобы при выборе продукта в базу данных записывался GUID, т.е. идентификатор конкретного заказа. Как это сделать?

В таком случае, можете использовать Self.Attributes('ParentRecordID') в качестве значения по умолчанию для поля EnquiryID при создании новой записи на детали.

Получилось. Была ошибка в запросе, неправильно указана таблица. Спасибо за помощь.

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