Страница 1 из 1

таблицы разных компонент

Добавлено: 02 окт 2015, 14:46
Masygreen
Итак .. мозг пломался
1) Есть докомпилированный словарь

Код: Выделить всё

#component "WFlow"
2) Есть функционал, там тоже своя докомпиляция

Код: Выделить всё

 #component "Fun_Message"    
собираюсь в функционале 2 использовать таблицы 1.. получаю еррор
Ошибка: Таблица WORDERSP не принадлежит компилируемому компоненту "FUN_MESSAGE", объектный враппер не найден (стр. 23, поз. 13)

как лечить ?

Re: таблицы разных компонент

Добавлено: 03 окт 2015, 08:50
LaaLaa
Автору таблиц WFlow.wOrderSP и Fun_Message.uMessType предлагаю пересоздать эти таблицы без Componet

Re: таблицы разных компонент

Добавлено: 03 окт 2015, 08:53
LaaLaa
Вместо

Код: Выделить всё

Create Table WFlow.wOrderSP "w Регламент (SP)"
Using "wOrderSP.dat"
#ifdef ComponentVersion
Component WFlow
#end
with table_code = 31751
With Replace
With TableOptions noProtect, header
(
  cwOrder : comp       "Ссылка wOrder"
, wNum    : word       "Номер"
, cNote   : comp       "Ссылка KatNotes"
, wTerm   : word       "0-об.;1-терм." 
, CountWDay : integer  "Дни раб."
, CountKDay : integer  "Дни контр."
, cAttrName : comp    "Ссылка на вн. атрибут"
, Prim  : string[200]   "Примечание"
)
With Index
(
IN01 = cwOrder
,IN02 = cwOrder + wTerm + cNote
,IN03 = cwOrder + cNote
,IN04 = cwOrder + wNum
,IN05 = cwOrder + cNote
);   

Create Table Fun_Message.uMessType "u Типы сообщений"
Using "uMsType.dat"
#ifdef ComponentVersion
Component Fun_Message
#end
with table_code = 31650
With Replace
With TableOptions noProtect, header
(
wCode: word            "Код" //типы событий уникальный код
, wUseParams: word     "0-нет/1-да, параметры"//const (mc_mesParams*) наличие дополнительных параметров
, Name: String[80]     "Наименование"
, inShow: string[80]   "Интерфейс просмотра"
, inParam: string[80]  "Интерфейс параметров"
, inPrint: string[80]  "Интерфейс печати"
)
With Index
(
IN01 = wCode
);
сделать

Код: Выделить всё

Create Table WFlow.wOrderSP "w Регламент (SP)"
Using "wOrderSP.dat"
with table_code = 31751
With Replace
With TableOptions noProtect, header
(
  cwOrder : comp       "Ссылка wOrder"
, wNum    : word       "Номер"
, cNote   : comp       "Ссылка KatNotes"
, wTerm   : word       "0-об.;1-терм." 
, CountWDay : integer  "Дни раб."
, CountKDay : integer  "Дни контр."
, cAttrName : comp    "Ссылка на вн. атрибут"
, Prim  : string[200]   "Примечание"
)
With Index
(
IN01 = cwOrder
,IN02 = cwOrder + wTerm + cNote
,IN03 = cwOrder + cNote
,IN04 = cwOrder + wNum
,IN05 = cwOrder + cNote
);   

Create Table Fun_Message.uMessType "u Типы сообщений"
Using "uMsType.dat"
with table_code = 31650
With Replace
With TableOptions noProtect, header
(
wCode: word            "Код" //типы событий уникальный код
, wUseParams: word     "0-нет/1-да, параметры"//const (mc_mesParams*) наличие дополнительных параметров
, Name: String[80]     "Наименование"
, inShow: string[80]   "Интерфейс просмотра"
, inParam: string[80]  "Интерфейс параметров"
, inPrint: string[80]  "Интерфейс печати"
)
With Index
(
IN01 = wCode
);

Re: таблицы разных компонент

Добавлено: 03 окт 2015, 08:57
LaaLaa
Если внимательно посмотреть на словарь Галактики, то вы не найдете нигде активации макроопределения #define ComponentVersion для таблиц словаря. От идеи делать изоляцию таблиц и компонентные врапперы таблиц на практике отказались.

PS: Имею в виду отказ от компонент только на уровне словаря. На уровне объектов VIP –кода компонентность нужно сохранить.

Re: таблицы разных компонент

Добавлено: 03 окт 2015, 19:56
Masygreen
ага.. спасибо ПИР )
очень давно взял где-то этот шаблон из исходников, типа ориентировался на отцов - основателей. Он и прижился т.к. проблем с ним не было..