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

objDocReq - несовпадение контрольной суммы

Добавлено: 09 апр 2014, 10:36
Zver
Уважаемые форумчане, продолжаем переходить на 44 ядро.

Сейчас бьёмся с несовпадением контрольной суммы F_OFP :: objDocReq.

Этот интерфейс находится в файле aDocReq.vih, у нас версия от 24 октября 2013, размер 5 677 байт.
Ресурс F_OFP.res от 07 февраля 2014, размер 10 722 Кб.

На всякий случай вот содержимое файла aDocReq.vih:

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

//------------------------------------------------------------------------------
//                                                      (c) корпорация Галактика
// Галактика 8.10 - модуль "Платежный календарь"
//  Заявки
//------------------------------------------------------------------------------

#ifndef __ADocReq_VIH__
#define __ADocReq_VIH__

// -----------------------------------------------------------------------------
#ifdef ComponentVersion
#component "F_OFP"
#end
// -----------------------------------------------------------------------------
// Заявки
#doc
Заявки.<br>
#end
Private ObjInterface objDocReq;

  //                                  ERROR
  Function GetLastError( Var _LastError: TLastError ): Boolean;
  ///////////////////// СВЯЗЬ С ФИНПЛАНИРОВАНИЕМ ///////////////////////////////
  #doc
  Просмотр бюджета по заявке.<br>
  #end
  Function DocReq_SeeBudget( bufDocReq: TDocReq): boolean;
  #doc
  Аналитика только данного документа.<br>
  #end
  Function DocReq_GetDocAnaliticByBuf(bufDocReq: TDocReq; var _contId: longint): boolean;
  #doc
  Заполнение контейнера аналитик по буферу Заявки.<br>
  #end
  Function DocReq_GetAnaliticByBuf(bufDocReq: TDocReq; var _contId: longint): boolean;

  ////////////////////// РАЗЛИЧНЫЕ НАЗВАНИЯ ////////////////////////////////////
  Function DocReq_GetPeriodName(n: word): string;
  #doc
  Название заявки для отображения в иерархии.<br>
  #end
  Function DocReq_GetName(_NoDoc: string; _DocType: word): string;
  #doc
  То же по nRec.<br>
  #end
  Function DocReq_GetNameRec(_cDocReq: comp): string;
  #doc
  Название модуля, из которого сформирована Заявка на расходование средств.<br>
  #end
  Function DocReq_GetNameRecType(_RecType: word): string;
  #doc
  Заголовок окна ред. Заявки на расходование средств.<br>
  #end
  Function DocReq_CheckTitle(_isFromOfp: boolean; _Modul: word; _DocType: word; var retTitle: string): boolean;

  /////////////////////// РАЗЛИЧНЫЕ АТРИБУТЫ ///////////////////////////////////
  #doc
  Тип заявки по умолчанию.<br>
  #end
  Function DocReq_GetDefDocType(_Direct: word): word;
  #doc
  Направление денег для заявок.<br>
  #end
  Function DocReq_GetDirect(_DocType: word): word;
  #doc
  В заявке можно указать ПС.<br>
  #end
  Function DocReq_HasPlatMean(_DocType: word): boolean;
  #doc
  Тип ПС.<br>
  #end
  Function DocReq_GetMeanType(_cRec: comp): word;
  #doc
  ПС.<br>
  #end
  Function DocReq_GetPlatMean(_DocType: word; _cRec: comp): comp;
  #doc
  Тип ПС, ПС и тип документа для ФОБ, сформированного на основании заявки.<br>
  #end
  Function DocReq_GetPSbyDocReq(_cRec: comp; var _MeanType: word; var _cPlatMean: comp; var _TiDkGal: word): boolean;
  #doc
  Можно ли формировать ФО по заявке.<br>
  #end
  Function DocReq_CanMakeFO(bufDocReq: TDocReq; _NeedMessage: word): boolean;

  ///////////////////// СОЗДАНИЕ И УДАЛЕНИЕ ////////////////////////////////////
  #doc
  Обновление SoprHoz (для ТФО - разноски по статьям бюджета).<br>
  #end
  Function DocReq_MakeSoprHoz(bufDocReq: TDocReq): boolean;
  #doc
  Сразу после добавления любой записи.<br>
  #end
  Function DocReq_AfterInsert(bufDocReq: TDocReq): boolean;
  #doc
  Заполение буфера.<br>
  #end
  Procedure DocReq_Fill(var bufDocReq: TDocReq; _DocType, _Modul: word);
  #doc
  можно ли создавать заявку (с сообщением или без)
  #end
  Function DocReq_CanSetDefault(_OfpDocType: word; _NeedMessage: boolean): boolean;
  #doc
  можно ли редактировать заявку (с сообщением или без).<br>
  #end
  Function DocReq_CanEdit(bufDocReq: TDocReq; _CheckStatus, _NeedMessage: boolean): boolean;
  #doc
  Можно ли удалять заявку (с сообщением или без).<br>
  #end
  Function DocReq_CheckDelete(bufDocReq: TDocReq; _NeedMessage: boolean): boolean;
  #doc
  Удаление ук.заявки (c сообщением).<br>
  #end
  Function DocReq_Delete_Eval_01( _cDocReq: comp; _isMessage: word): boolean;
  #doc
  Удаление ук.заявки (без сообщения).<br>
  #end
  Function DocReq_Delete(_cDocReq: comp): boolean;
  #doc
  Удаление всех заявок по ДО (без сообщения).<br>
  #end
  Function DocReq_DeleteByBase(_cBase: comp): boolean;

  //////////////////////// РАЗЛИЧНЫЕ ОПЕРАЦИИ //////////////////////////////////
  #doc
  проверка превышает ли сумма заявки расчетную сумму.<br>
  #end
  Function DocReq_CheckSumReq(bufDocReq: TDocReq; var _ReqSumma: double) : boolean;
  #doc
  Количество ФО, которые будут сформированы по такой заявке.<br>
  #end
  Function DocReq_PeriodNumFO(_dBegPlat, _dEndPlat: date; _wPeriod: word; _DaysOffset: word): longint;
  #doc
  Формирование ФО по Периодической заявке.<br>
  #end
  Function DocReq_PeriodMakeFO(_cDocReq: comp; _rMaket: TMaketAktOfp): boolean;
  #doc
  Формирование ФО (настройка, что делать с существующими ФО).<br>
  #end
  Function DocReq_MakeFO(_cDocReq: comp; _rMaket: TMaketAktOfp): boolean;
  #doc
  Изменение статуса.<br>
  #end
  Function DocReq_SetStatus(_cDocReq: comp; _New_Status: word; _New_cNote: comp; _comment: string[80] = ''): boolean;
  #doc
  Изменение приоритета.<br>
  #end
  Function DocReq_SetPrior(_cDocReq: comp; _NewPrior: word): boolean;
  #doc
  Перенос планируемой даты оплаты.<br>
  #end
  Function RecChangeDatePlat(_cDocReq : comp; dateBeg, dateEnd : date): boolean;
  #doc
  Освобождение ссылок на объекты, провоцирующие циклические зависимости объектов.<br>
  #end
  Function FreeCrossVipRef : boolean;

End;

VipInterface iDocReq implements objDocReq
  Licensed(Free);
// -----------------------------------------------------------------------------
#end //__ADocReq_VIH__

Re: objDocReq - несовпадение контрольной суммы

Добавлено: 09 апр 2014, 11:52
Den
Вообще то этот vih вроде не менялся. У меня такой же как Вашего размера

и выдает контрольные суммы
F_OFP::iDocReq;75216496;-2014988777;

Re: objDocReq - несовпадение контрольной суммы

Добавлено: 09 апр 2014, 13:18
Алексей
у вас не совпадение контрольной суммы каких-то ваших доработок? Просто пересоберите. Файл не менялся. Не забываем про ComponentVersion

Re: objDocReq - несовпадение контрольной суммы

Добавлено: 10 апр 2014, 15:56
Zver
Всё проверил, но всё равно несовпадение контрольной суммы.

Как можно посмотреть контрольную сумму интерфейса?

Re: objDocReq - несовпадение контрольной суммы

Добавлено: 10 апр 2014, 16:06
Den
Compilers.CSVlogFile
и собрав проект получите файл с таким данными на эту тему.

Но вообще чудес не бывает - проверьте все подключенные ресы при сборке , компонентные принадлежности, vih-и
может еще какая то левая реализация iDocReq откуда то хавается при компиляции. хотя вряд ли.

а еще можно попробовать( и так правильнее по фэншую..)
вместо

Var
piDocReq : iDocReq;
;

попробовать переменную типа ссылки на саму эту декларацию obj-интерфейс (objDocReq а не на iDocReq)

Re: objDocReq - несовпадение контрольной суммы

Добавлено: 10 апр 2014, 16:22
Zver
Создал новую переменную:

piDocReq_Obj: objDocReq new.

При обращении с ней появляется другая ошибка:

Возникло необработанное исключение
ExObjIfcNoInit (ExRef)
ссылка не была инициализирована

Что это может значить?

Re: objDocReq - несовпадение контрольной суммы

Добавлено: 10 апр 2014, 16:46
Den
а так ?

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

#component "F_OFP"

interface myofp;
!#include aDocReq.var
 create view
 ;

 var
   l1 : objDocReq;


  HandleEvent
   cminit:{ 
            var li1: longint;

             if LoadVipRef(l1,'iDocReq')=true Message('true');
            li1:=IfcCheckSum(l1);
            Message('li1='+li1);
          }
  end;
end.

Re: objDocReq - несовпадение контрольной суммы

Добавлено: 10 апр 2014, 17:11
Zver
Попробовал найти интерфейс F_OFP::iDocReq через Сервис/Утилиты/Запуск внешнего интерфейса.

В рабочей базе, которая на 41 ядре, такой интерфейс есть в ресурсе F_OFP::IDOCREQ (F_OFP.res).

В тестовой базе, обновлённой до 44 ядра, такого интерфейса нет.

Re: objDocReq - несовпадение контрольной суммы

Добавлено: 10 апр 2014, 17:16
Zver
Можно ли как-то убедиться, что в ресурсном файле F_OFP.res от 07 февраля 2014, размером 10 722 Кб
этот интерфейс присутствует?

Re: objDocReq - несовпадение контрольной суммы

Добавлено: 10 апр 2014, 18:40
edward_K
проще всего посмотреть в консоле управления с доплицензией - там у вас должен быть не только репозитарий, а еще папок 10.
А галке не верите?
Проверьте в Конфигуратор-Параметры-Vip-VisibleAllInterface. Если в On то запуску внешнего интерфейса можно верить. На ходу не передергивается - нужно перезаходить. Наивный вопрос - а в отчете о рабочей станции F_Ofp есть?
У меня вроде такой же (F_OFP 8.10.88.0) и в "запуске..." есть ваш фейс.
Использование в виде l1 : objDocReq; вроде как не есть хорошо, и к нему нужно еще делать loadinterface или GetVipRef. Лучше так делать если возможно использование интерфейсов с одинаковым описанием объекта через одну переменную(или фейсов на базе одного класса - как вам будет понятней).

Re: objDocReq - несовпадение контрольной суммы

Добавлено: 10 апр 2014, 19:17
Zver
Эдвард,

1) Проверил по репозитарию - F_OFP подключен.
2) VisibleAllInterface включен
3) В объектах по Саппорту посмотрю позже, у меня долго переходит на систему GalNet

Re: objDocReq - несовпадение контрольной суммы

Добавлено: 11 апр 2014, 10:51
Zver
В саппорте в репозитарии выбрал систему GalNet.

В объектах нашел объект F_OFP::iDocReq. Но в списке интерфейсов в Галактике не вижу этот объект.
Другие объекты из F_OFP в Галактике есть, например F_OFP::IDOCREQPR (F_OFP.res).

Что можно сделать. VisibleAllInterface включен.

Re: objDocReq - несовпадение контрольной суммы

Добавлено: 11 апр 2014, 11:06
edward_K
что то мне кажется у вас троблы с правами на рес - он в отчете о рабочей станции то есть?
Параметры нужно проверять в галке - убедитесь еще раз.

Re: objDocReq - несовпадение контрольной суммы

Добавлено: 11 апр 2014, 11:50
Den
посмотрел в F_OFP 8.10.87.0
есть F_OFP::IDOCREQ тама...

перескачайте F_OFP c фтп и посмотрите, с по ссылке
http://tyumbit.ru/gal_forum/viewtopic.php?f=8&t=8900
найдется ли в новом ресурсе у Вас

Re: objDocReq - несовпадение контрольной суммы

Добавлено: 11 апр 2014, 12:30
Zver
Ура! Разобрались.

Итак, в системе Саппорт/Репозитарий/Системы в настройках системы GalNet был прописан локальный путь на каталог exe.
После того как прописали сетевой путь проблема ушла.

Всем большое спасибо за помощь.

P.S.
Готовимся к переходу на 9.1