проблемка ртфки
Модераторы: m0p3e, edward_K, Модераторы
проблемка ртфки
обновии 9ку, пришлось компилить заново наши ресурсники, вот в одном документе встретилась ошибка
ошибка загрузки обьекта из ресурсного файла (iExtAttr)/
Прототип менялся, мелоч одно поле добавилось а так все тоже.PRBDOC
В чем может быть дело кто подскажет?
ошибка загрузки обьекта из ресурсного файла (iExtAttr)/
Прототип менялся, мелоч одно поле добавилось а так все тоже.PRBDOC
В чем может быть дело кто подскажет?
ВБР РУЛИТ)))ИС3
-
- Заслуженный деятель интернет-сообщества
- Сообщения: 5188
- Зарегистрирован: 29 мар 2005, 17:49
- Откуда: SPB galaxy spb
Re: проблемка ртфки
ну либо ComponentVersion не указан был при сборке, либо ExtAttr.Vih не подключили(но тогда бы вообще не собралось),
Это в галке сообщение или при компиляции? Vip_res.log смотрите во втором случае.
Это в галке сообщение или при компиляции? Vip_res.log смотрите во втором случае.
Re: проблемка ртфки
!#statusline "statgal"
!===================='СБОРКА VIP-ИНТЕРФЕЙСОВ'========================
#define ComponentVersion
//function wGetTune(string): word; external 'G_Tune.dll';
#include ExtAttr.Vih
//#make "DOVERRUS_RTF_2011_DOVER.rtf"
//#make "DOVERRUS_RTF_2013_DOVER.rtf"
#make "PRBDOC_1010_1_RTF_1_SA_PRBDOC.rtf"
!===================='СБОРКА VIP-ИНТЕРФЕЙСОВ'========================
#define ComponentVersion
//function wGetTune(string): word; external 'G_Tune.dll';
#include ExtAttr.Vih
//#make "DOVERRUS_RTF_2011_DOVER.rtf"
//#make "DOVERRUS_RTF_2013_DOVER.rtf"
#make "PRBDOC_1010_1_RTF_1_SA_PRBDOC.rtf"
Последний раз редактировалось Mekhtiev 22 янв 2016, 18:09, всего редактировалось 1 раз.
ВБР РУЛИТ)))ИС3
Re: проблемка ртфки
ComponentVersion - указан
Последний раз редактировалось Mekhtiev 22 янв 2016, 18:27, всего редактировалось 1 раз.
ВБР РУЛИТ)))ИС3
Re: проблемка ртфки
кстати, штук 5 rtf нормально отработали, а потом столкнулся с проблемкой, решил работающий другой документ изменить, изменил, пересобрал и получил такую же ошибку((((
ВБР РУЛИТ)))ИС3
Re: проблемка ртфки
Общался с Техподдержкой Галактики (Роман ), прототип говорят поменялся отредактируй в соответствии с прототипом, PRBDOC от 8ки галактики изменился на 1 поле, добавилось.-"nRecHeadOrg", говорю давайте посмотрим на ртфку, а в ответ услышал что это за отельную плату, под статью разработка новых форм подпадает ...
ВБР РУЛИТ)))ИС3
-
- Заслуженный деятель интернет-сообщества
- Сообщения: 5188
- Зарегистрирован: 29 мар 2005, 17:49
- Откуда: SPB galaxy spb
Re: проблемка ртфки
Похоже у вас старый ExtAttr.Vih. Новый следует искать в каталоге Frm
Текст сообщения точный? Что то я его в профиль не узнаю. Лучше копировать его по Ctrl+Ins
ExtAttr.Vih обязателен в проекте? Без него не собирается?
Вот от 14.08.2015
Текст сообщения точный? Что то я его в профиль не узнаю. Лучше копировать его по Ctrl+Ins
ExtAttr.Vih обязателен в проекте? Без него не собирается?
Вот от 14.08.2015
Код: Выделить всё
//------------------------------------------------------------------------------
// (c) корпорация Галактика
// Версия : 8.10
// Назначение : Функции для работы с внешними атрибутами документов
//------------------------------------------------------------------------------
//////////////////////// ВНЕШНИЕ АТРИБУТЫ ///////////////////////////
// для получения значения внешнего атрибута можно использовать Паскалевские функции
// xTxoGetExtAttr, где x = {s -string,do -double, d -date, t -time},
// не забывая заключать их в скобки InitServTXO/DoneServTXO
#ifndef _ExtAttr_Func
#define _ExtAttr_Func
#ifdef ComponentVersion
#component "C_ExtClass"
#end
//**************************************************************
#doc
Функции для работы с внешними атрибутами документов<br>
</brief>
Параметры:<br>
<ul>
<li> _wTable - co-код Таблицы
<li> _Name - наименование атрибута
<li> _cAttrNam - код атрибута
<li> _cRec - ссылка на запись в таблице
<li> _AttrType - Тип значения атрибута
</ul>
Доступны типы:<br>
<ul>
<li> cgAttrType_Str = 0; // 0 - STRING
<li> cgAttrType_Dbl = 1; // 1 - DOUBLE
<li> cgAttrType_Date = 2; // 2 - DATE
<li> cgAttrType_Time = 3; // 3 - TIME
<li> cgAttrType_Memo = 4; // 4 - MEMO
<li> cgAttrType_Comp = 5; // 5 - COMP
</ul>
#end
ObjInterface objExtAttr;
!------------------------------------------------------------------------------
#doc
Набор функций для создания атрибута, получения ID, показа ошибки.<br>
Возвращает ссылку на внешний атрибут если существует, если не найден - создает.<br>
Для comp-атрибутов использовать CreateAttrComp, иначе значение comp-атрибута не будет видно по Alt+A.
#end
Function CreateAttr ( _wTable : word; _Name : string; _Type : word ) : comp ;
#doc
Возвращает ID (NRec) атрибута по коду таблицы и наименованию. 0 - не найден
#end
Function AttrID ( _wTable : word; _Name : string ) : comp ;
#doc
Возвращает тип атрибута по коду таблицы и наименованию. 13 - не найден
#end
Function AttrType ( _wTable : word; _Name : string ) : word ;
#doc
Возвращает наименование атрибута по его ID (NRec)
#end
Function AttrName(_cRec: comp): string;
#doc
Возвращает true, если у записи с номером _cRec таблицы с кодом _wTable
существует значение внешнего атрибута с именем _Name.
#end
function ValueExists(_wTable : word; _cRec: comp; _Name: string): boolean;
#doc
Возвращает true, если у записи с номером _cRec таблицы с кодом _wTable
существует значение внешнего атрибута с номером _cAttrNam.
#end
function ValueExistsID(_wTable : word; _cRec: comp; _cAttrNam: comp): boolean;
#doc
Удалить значение внешнего атрибута с именем _Name у записи с номером _cRec таблицы с кодом _wTable
#end
function DeleteValue(_wTable : word; _cRec: comp; _Name: string): integer;
#doc
Удалить значение внешнего атрибута с номером _cAttrNam у записи с номером _cRec таблицы с кодом _wTable.
#end
function DeleteValueID(_wTable : word; _cRec: comp; _cAttrNam: comp): integer;
#doc
Установить требование автоматического выдачи сообщения при ошибке; Возвращает предыдущее значение.
#end
Function SetNeedMessage ( _NeedMessage : boolean ) : boolean;
#doc
Выдать сообщение об ошибке
#end
Procedure ShowError (_err : word);
#doc
получить номер последней ошибки
#end
Function LastError : word ;
#doc
Создает внешний атрибут с типом Comp. Если существует - возвращает ссылку.<br>
параметры:<br>
</brief>
*** _SysNumKau - системный номер аналитики. Доступны константы<br>
cgKatKau_Table = 0; // системные <br>
cgKatKau_User = 1; // пользовательские <br>
cgKatKau_System = 100; // системные каталоги не являющиеся аналитикой (любая таблица Галактики) <br>
*** _KodKau - код аналитики для _SysNumKau=0 или 1. Или код таблицы для _SysNumKau=100 <br>
#end
Function CreateAttrComp ( _wTable : word; _Name : string; _Type : word; _SysNumKau : word; _KodKau : word) : comp;
#doc
Возвращает код КАУ(или код таблицы) по ID атрибута
#end
Function AttrCompKodKau ( _cAttrNam: comp) : word;
#doc
Возвращает системный номер КАУ по ID атрибута
#end
Function AttrCompSysNumKau ( _cAttrNam: comp) : word;
!------------------------------------------------------------------------------
#doc
Набор функций для извлечения содержания внешних атрибутов для различных типов<br>
</brief>
Функции возвращают значение внешнего атрибута по коду таблицы, имени атрибута и nRec-ку записи
для разных типов атрибута.<br>
sGetAttr - возвращает строку для всех типов, преобразовав тип в строку<br>
#end
function sGetAttr (_wTable : word; _cRec : comp; _Name : string) : string;
function doGetAttr(_wTable : word; _cRec : comp; _Name : string) : double;
function dGetAttr (_wTable : word; _cRec : comp; _Name : string) : date;
function tGetAttr (_wTable : word; _cRec : comp; _Name : string) : time;
function mGetAttr (_wTable : word; _cRec : comp; _Name : string) : string; // извлечь из мемо-поля строку
function coGetAttr(_wTable : word; _cRec : comp; _Name : string) : comp;
#doc
Функции возвращают значение внешнего атрибута по коду таблицы, коду атрибута и nRec-ку записи
для разных типов атрибута.<br>
sGetAttrID - возвращает строку для всех типов, преобразовав тип в строку<br>
#end
function sGetAttrID (_wTable : word; _cRec : comp; _cAttrNam : comp) : string;
function doGetAttrID(_wTable : word; _cRec : comp; _cAttrNam : comp) : double;
function dGetAttrID (_wTable : word; _cRec : comp; _cAttrNam : comp) : date;
function tGetAttrID (_wTable : word; _cRec : comp; _cAttrNam : comp) : time;
function mGetAttrID (_wTable : word; _cRec : comp; _cAttrNam : comp) : string; // извлечь из мемо-поля строку
function coGetAttrID(_wTable : word; _cRec : comp; _cAttrNam : comp) : comp;
!------------------------------------------------------------------------------
#doc
Набор функций для установки содержания внешних атрибутов для различных типов
</brief>
Функции устанавливает значение внешнего атрибута по коду таблицы, имени атрибута и nRec-ку записи
для разных типов атрибута.<br>
!!! Если атрибут не найден, то он создается !!!<br>
Возвращает true - успешно, false - ошибка<br>
#end
function sSetAttr (_wTable : word; _cRec : comp; _Name : string; _Val : string) : boolean;
function doSetAttr(_wTable : word; _cRec : comp; _Name : string; _Val : double) : boolean;
function dSetAttr (_wTable : word; _cRec : comp; _Name : string; _Val : date) : boolean;
function tSetAttr (_wTable : word; _cRec : comp; _Name : string; _Val : time) : boolean;
function mSetAttr (_wTable : word; _cRec : comp; _Name : string; _Val : string) : boolean; // записать в мемо-поле строку
function coSetAttr(_wTable : word; _cRec : comp; _Name : string; _Val : comp; _ValStr : string) : boolean;
#doc
Функции устанавливает значение внешнего атрибута по коду таблицы, ID атрибута и nRec-ку записи
для разных типов атрибута. Возвращает true - успешно, false - ошибка
#end
function sSetAttrID (_wTable : word; _cRec : comp; _cAttrNam : comp; _Val : string) : boolean;
function doSetAttrID(_wTable : word; _cRec : comp; _cAttrNam : comp; _Val : double) : boolean;
function dSetAttrID (_wTable : word; _cRec : comp; _cAttrNam : comp; _Val : date) : boolean;
function tSetAttrID (_wTable : word; _cRec : comp; _cAttrNam : comp; _Val : time) : boolean;
function mSetAttrID (_wTable : word; _cRec : comp; _cAttrNam : comp; _Val : string) : boolean; // записать в мемо-поле строку
function coSetAttrID(_wTable : word; _cRec : comp; _cAttrNam : comp; _Val : comp; _ValStr : string) : boolean;
//------------------------------------------------------------------------------
// Набор функций для удаления, перемещения и копирования атрибутов
#doc
копирование атрибутов
#end
Function CopyAllAttr ( _wTableFrom: word; _cRecFrom: comp; _cRecTo: comp ) : boolean;
#doc
копирование атрибутов, возможно для разных таблиц. Если атрибут для цели в AttrNam не существует, то он создается.
#end
Function CopyAllAttrEx ( _wTableFrom: word; _cRecFrom: comp; _wTableTo: word; _cRecTo: comp ) : boolean;
#doc
удаление всех значений внеш.атрибутов (при удалении записи в таблице)
#end
function DeleteAllAttr (_wTable: word; _cRec: comp) : boolean;
#doc
перенос от старой записи к новой (откуда-куда)
#end
function MoveAllAttr (_wTable: word; _cRecFrom: comp; _cRecTo : comp): boolean;
#doc
просмотр/редактирование значения внешнего атрибута в интерфейсе
#end
function Pick (_CanEdit: boolean; _wTable: word; _cRec: comp): boolean;
#doc
Модификация названия внешнего атрибута (для _isCreateAttr=True: если не найден - создаст)
#end
function ReNameAttr (_wTable : word; _Name : string; _Type : word; _SysNumKau : word; _KodKau : word; _NameNew : string; _isCreateAttr : boolean) : comp ;
#doc
удаление внеш.атрибута по его имени и типу
#end
function DeleteAttr (_wTable: word; _Name : string; _Type : word) : boolean;
#doc
Копирование значения всех помеченных атрибутов в указанную запись.
</brief>
Значения атрибутов помечаются интерфейсом PickAttrVal и сбрасываются в маркер. Пустые значения не копируются.
#end
Function CopyAttrPick ( _wTable: word; _cRecFrom: comp; _cRecTo: comp ) : boolean;
#doc
Копировать значение атрибута по его наименованию.
#end
Function CopyAttrName ( _wTable: word; _cRecFrom: comp; _cRecTo: comp; _Name : string ) : boolean;
#doc
Копировать значение атрибута по его ID.
#end
Function CopyAttrID ( _wTable: word; _cRecFrom: comp; _cRecTo: comp; _cAttrNam : comp ) : boolean;
End;
ObjInterface objExtAttrEx;
#doc
Возвращает строковое представление значения внешнего атрибута по имени _Name у записи с номером _cRec таблицы с кодом _wTable
#end
function GetAttrValueStr (_wTable : word; _cRec : comp; _Name : string) : string;
#doc
Возвращает строковое представление значения внешнего атрибута с номером _cAttrNam у записи с номером _cRec таблицы с кодом _wTable
#end
function GetAttrValueStrID(_wTable : word; _cRec : comp; _cAttrNam : comp ) : string;
end;
ObjInterface objExtAttrEx2;
#doc
Возвращает код таблицы атрибута по его ID (NRec)
#end
function AttrTable(_cRec: comp): word;
end;
VipInterface iExtAttr implements objExtAttr, objExtAttrEx, objExtAttrEx2
licensed (FREE)
;
#end
Re: проблемка ртфки
Код: Выделить всё
.linkform ’PRBDOC_1010_1_RTF_1_MMV_1’ prototype is ’PRBDOC’
.NameInList ’(СК) Разрешение на отгрузку 2015’
.group ’Продажа’
.var
INN_KPP_Post, INN_KPP_Pol : String
NRecBD: comp;
strDover: String;
strDriverName: String;
strTransType: String;
strTransAttr: String;
strkom: String;
ExtAttr: iExtAttr;
strSklad: String;
DateTo: Date;
strDogovor: String;
.endvar
.CREATE VIEW TTN As
from Ttndoc
where comp(NRecBD)=ttndoc.cDoc
order by ATL_LASTDATE, ATL_LASTTIME
;
.CREATE VIEW PODR As
from BaseDoc, KatPodr
Where ((
KatPodr.nRec /== BaseDoc.cParty
)) and NRecBD = baseDoc.NRec
;
.CREATE VIEW DOG As
from BaseDoc, Dogovor
Where ((
Dogovor.nRec /== BaseDoc.cDogovor
)) and NRecBD = baseDoc.NRec
;
.FIELDS
sGetTune(’USER.FIO’) nomer ddoc strSklad pname //1
post //2
// strDogovor
.ENDFIELDS
.{?Internal;(wCountry<=1)
.fields
sGetTune(’KatOrg.FldView.UNN’) //3
INN_KPP_Post //4
.endfields
.}
.FIELDS
//bpost rspost mfobik mpost rspost2 mfobik
// mpost2
//adpost telpost
Pol //5
.ENDFIELDS
.{?Internal;(wCountry<=1)
.fields
sGetTune(’KatOrg.FldView.UNN’) //7
INN_KPP_Pol //8
.endfields
.}
.FIELDS
//bpost rspost mfobik mpost rspost2 mfobik
// mpost2
//adpost telpost
Pol //5
Adpol //6
.ENDFIELDS
.{?Internal;(wCountry<=1)
.fields
sGetTune(’KatOrg.FldView.UNN’) //7
INN_KPP_Pol //8
.endfields
.}
.FIELDS
grpost //11
.ENDFIELDS
.FIELDS
’Земцовой Л.Ю.’
strDriverName
strDover
strTransType
strTransAttr
strkom
.ENDFIELDS
.begin
DateTo := Add_Day(StrToDate(String(ddoc),’DD/MM/YYYY’), Integer(kDay));
NRecBD := BaseDocNrec;
strDriverName := ’---’;
strDover := ’---’;
strTransType := ’---’;
strSklad := ’---’;
if PODR.getfirst BaseDoc = tsok {
strkom := ExtAttr.sGetAttr(coBaseDoc, PODR.BaseDoc.nrec, ’Комментарий’ );
strTransAttr := ExtAttr.sGetAttr(coBaseDoc, PODR.BaseDoc.nrec, ’Рынок сбыта - Условия поставки’ );
}
if PODR.getfirst KatPodr = tsok {
strSklad := PODR.KatPodr.Name
}
//strDogovor := ’---’;
//If DOG.getfirst Dogovor = tsok {
// strDogovor := ’Договор(спец.) № ’ + DOG.Dogovor.NODOC + ’ от ’ + DOG.Dogovor.DDOC;
//}
If TTN.getlast Ttndoc =tsok
{
strDriverName := ExtAttr.sGetAttr(coTTNDOC, TTN.ttndoc.nrec, ’Водители’ );
strDover := TTN.ttndoc.spunrdop;
strTransType := ExtAttr.sGetAttr(coTTNDOC, TTN.ttndoc.nrec, ’СПОСОБ ТРАНСПОРТИРОВКИ’ );
}
end.
.FIELDS
//strDogovor //12
//’Сухоруков В.С.’
//strDriverName
//strDover
//strTransType
//TTNpunkt_Name // место погрузки
//bpol rspol mfobik mpol rspol2 mfobik mpol2 adpol
//telpol pname
np
barkod
mc
ed
DoubleToStr(Double(kol), ’66666666666^88’)
DoubleToStr(Double(cena), ’66666666666^88’)
DoubleToStr(Double(summa), ’ 66666666666 ^88’)
i1 i2
.ENDFIELDS
.{
^
РАЗРЕШЕНИЕ № ^ от ^
на отпуск готовой продукции
^
^
.begin
INN_KPP_Post := ’’;
if ((innpost <> ’’) or (KODPLATNDS_post <> ’’))
INN_KPP_Post := innpost + ’ / ’ + KODPLATNDS_post
INN_KPP_Pol := ’’;
if ((innpol <> ’’) or (KODPLATNDS_pol <> ’’))
INN_KPP_Pol := innpol + ’ / ’ + KODPLATNDS_pol
end.
ПОСТАВЩИК : ^
.{?Internal;(wCountry<=1)
@@@ / КПП : ^
.}
.{ CheckEnter IsBaseFin
.}
ПОКУПАТЕЛЬ : ^
.{?Internal;(wCountry<=1)
@@@ / КПП : ^
.}
ПЛАТЕЛЬЩИК : ^ ^
.{?Internal;(wCountry<=1)
@@@ / КПП : ^
.}
ГРУЗООТПРАВИТЕЛЬ : ^
Разрешение: ^
Через кого: ^
Доверенность №: ^
Способ транспортировки: ^
Базис отгрузки: ^
Место погрузки (станция): ШАХ-ТАУ КАРЬЕР
Комментарий: ^
.{ CheckEnter IsExClass
.}
.{ CheckEnter IsGroup
.}
№
п/п Номенклату-рный номер Наименование, сорт, размер Единица
измерения Количество Цена Сумма
.{
^ ^ ^ ^ ^ ^ ^
.}
^ &’&&&&&&&&&&&&&&&.&&
.{?Internal;(SumSkidPos>0)
.FIELDS SumSkidPos (i2-SumSkidPos) .ENDFIELDS
Сумма скидок к позициям &’&&&&&&&&&&&&&&&.&&
Итого с учетом скидок к позициям &’&&&&&&&&&&&&&&&.&&
.}
.{?Internal;(op1<>’’)
.FIELDS Ltrim(op1,’ ’) op2 .ENDFIELDS
^ &’&&&&&&&&&&&&&&&.&&
.}
.{?Internal;(d2>0)
.FIELDS (d1 + ’ ’ + StringNLZR(if(d3=’ %’,d2,SkRub),0,3) + ’ %’) if(d3=’ %’,SkRub,d2) .ENDFIELDS
^ &’&&&&&&&&&&&&&&&.&&
.}
.FIELDS k1 sdoc .ENDFIELDS
Итого к оплате &’&&&&&&&&&&&&&&&&.&& ^
в том числе:
.{?Internal;((n2>0)or(c2>0)or(p2>0))
.}
.{?Internal;(n2>0)
.FIELDS n1 n2r .ENDFIELDS
^ &’&&&&&&&&&&&&&&&.&&
.}
.{?Internal;(c2>0)
.FIELDS c1 c2 .ENDFIELDS
^ &’&&&&&&&&&&&&&&&.&&
.}
.{?Internal;(p2>0)
.FIELDS p1 p2 .ENDFIELDS
^ &’&&&&&&&&&&&&&&&.&&
.}
.FIELDS
k3 // прописью
k4 k5
//kDay
Add_Day(StrToDate(String(ddoc),’DD/MM/YYYY’), Integer(kDay))
//TaraVoz
//Director
’Нач. бюро реализации’
’ Земцова Л.Ю.’
GetSurnameWithInitials(sGetTune(’MAINBUH’))
FIOman
page_symb
.ENDFIELDS
Сумма прописью: ^
^ ^
Разрешение действительно до ^
^ ___________________ ^
Гл.(старший) бухгалтер__________________ ^
Начальник цеха ________________________
Исполнитель __________________________ ^
.if Delimiter
.end
^
.}
.endform
ВБР РУЛИТ)))ИС3
-
- Заслуженный деятель интернет-сообщества
- Сообщения: 5188
- Зарегистрирован: 29 мар 2005, 17:49
- Откуда: SPB galaxy spb
Re: проблемка ртфки
Ну если без него собралось - то спрашивается, а зачем тогда использовать . Ресы не забывайте чистить перед сборкой на новом exe, а также atlantis.res и так далее - у меня это чиститься в батнике всегда - меньше проблем потом. Если же без vih никак, то следите за их актуальностью.
И собирать нужно всегда на том же exe, куда будете подключать, а если еще используете ВА в конфигураторе, то и на той же базе(ну или Attrnam подгрузить с рабочей). Результат есть?
И собирать нужно всегда на том же exe, куда будете подключать, а если еще используете ВА в конфигураторе, то и на той же базе(ну или Attrnam подгрузить с рабочей). Результат есть?
Re: проблемка ртфки
ExtAttrClass.vih
KatOrgAttr.vih
ExtAttr.vih
ExtClass.vih
KatOrgAttr.var
вот вообще перечень ТП*шники говорят обновить надо...
Результата пока нет
KatOrgAttr.vih
ExtAttr.vih
ExtClass.vih
KatOrgAttr.var
вот вообще перечень ТП*шники говорят обновить надо...
Результата пока нет
ВБР РУЛИТ)))ИС3
Re: проблемка ртфки
рес новый создал,алталнтис_рес почистил, заново скомпилировал ..фокус не удался
ВБР РУЛИТ)))ИС3
Re: проблемка ртфки
кстати вторым сообщением пишет что ссылка не была инициализирована
ВБР РУЛИТ)))ИС3