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

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

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

Нравится

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

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

Вопрос не с обновлением гида “Детали”. Функция обновления работает. Привожу ее ниже

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');
 }
 
}

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

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

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

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