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

Программирование на Атлантисе (VIP, FCOM, ARD), FastReport

Модераторы: m0p3e, edward_K, Модераторы

Zver
Местный житель
Сообщения: 204
Зарегистрирован: 13 ноя 2012, 12:47
Откуда: СПб
Контактная информация:

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

Сообщение 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__
Программист-самоучка
Den
Местный житель
Сообщения: 1844
Зарегистрирован: 29 мар 2005, 17:49
Откуда: Ярославская область ОАО "Часовой завод Чайка" г. Углич
Контактная информация:

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

Сообщение Den »

Вообще то этот vih вроде не менялся. У меня такой же как Вашего размера

и выдает контрольные суммы
F_OFP::iDocReq;75216496;-2014988777;
Алексей
Местный житель
Сообщения: 2896
Зарегистрирован: 24 июн 2005, 12:12
Откуда: Иркутская область

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

Сообщение Алексей »

у вас не совпадение контрольной суммы каких-то ваших доработок? Просто пересоберите. Файл не менялся. Не забываем про ComponentVersion
Zver
Местный житель
Сообщения: 204
Зарегистрирован: 13 ноя 2012, 12:47
Откуда: СПб
Контактная информация:

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

Сообщение Zver »

Всё проверил, но всё равно несовпадение контрольной суммы.

Как можно посмотреть контрольную сумму интерфейса?
Программист-самоучка
Den
Местный житель
Сообщения: 1844
Зарегистрирован: 29 мар 2005, 17:49
Откуда: Ярославская область ОАО "Часовой завод Чайка" г. Углич
Контактная информация:

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

Сообщение Den »

Compilers.CSVlogFile
и собрав проект получите файл с таким данными на эту тему.

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

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

Var
piDocReq : iDocReq;
;

попробовать переменную типа ссылки на саму эту декларацию obj-интерфейс (objDocReq а не на iDocReq)
Zver
Местный житель
Сообщения: 204
Зарегистрирован: 13 ноя 2012, 12:47
Откуда: СПб
Контактная информация:

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

Сообщение Zver »

Создал новую переменную:

piDocReq_Obj: objDocReq new.

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

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

Что это может значить?
Программист-самоучка
Den
Местный житель
Сообщения: 1844
Зарегистрирован: 29 мар 2005, 17:49
Откуда: Ярославская область ОАО "Часовой завод Чайка" г. Углич
Контактная информация:

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

Сообщение 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.
Zver
Местный житель
Сообщения: 204
Зарегистрирован: 13 ноя 2012, 12:47
Откуда: СПб
Контактная информация:

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

Сообщение Zver »

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

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

В тестовой базе, обновлённой до 44 ядра, такого интерфейса нет.
Программист-самоучка
Zver
Местный житель
Сообщения: 204
Зарегистрирован: 13 ноя 2012, 12:47
Откуда: СПб
Контактная информация:

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

Сообщение Zver »

Можно ли как-то убедиться, что в ресурсном файле F_OFP.res от 07 февраля 2014, размером 10 722 Кб
этот интерфейс присутствует?
Программист-самоучка
edward_K
Заслуженный деятель интернет-сообщества
Сообщения: 5188
Зарегистрирован: 29 мар 2005, 17:49
Откуда: SPB galaxy spb

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

Сообщение edward_K »

проще всего посмотреть в консоле управления с доплицензией - там у вас должен быть не только репозитарий, а еще папок 10.
А галке не верите?
Проверьте в Конфигуратор-Параметры-Vip-VisibleAllInterface. Если в On то запуску внешнего интерфейса можно верить. На ходу не передергивается - нужно перезаходить. Наивный вопрос - а в отчете о рабочей станции F_Ofp есть?
У меня вроде такой же (F_OFP 8.10.88.0) и в "запуске..." есть ваш фейс.
Использование в виде l1 : objDocReq; вроде как не есть хорошо, и к нему нужно еще делать loadinterface или GetVipRef. Лучше так делать если возможно использование интерфейсов с одинаковым описанием объекта через одну переменную(или фейсов на базе одного класса - как вам будет понятней).
Zver
Местный житель
Сообщения: 204
Зарегистрирован: 13 ноя 2012, 12:47
Откуда: СПб
Контактная информация:

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

Сообщение Zver »

Эдвард,

1) Проверил по репозитарию - F_OFP подключен.
2) VisibleAllInterface включен
3) В объектах по Саппорту посмотрю позже, у меня долго переходит на систему GalNet
Программист-самоучка
Zver
Местный житель
Сообщения: 204
Зарегистрирован: 13 ноя 2012, 12:47
Откуда: СПб
Контактная информация:

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

Сообщение Zver »

В саппорте в репозитарии выбрал систему GalNet.

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

Что можно сделать. VisibleAllInterface включен.
Программист-самоучка
edward_K
Заслуженный деятель интернет-сообщества
Сообщения: 5188
Зарегистрирован: 29 мар 2005, 17:49
Откуда: SPB galaxy spb

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

Сообщение edward_K »

что то мне кажется у вас троблы с правами на рес - он в отчете о рабочей станции то есть?
Параметры нужно проверять в галке - убедитесь еще раз.
Den
Местный житель
Сообщения: 1844
Зарегистрирован: 29 мар 2005, 17:49
Откуда: Ярославская область ОАО "Часовой завод Чайка" г. Углич
Контактная информация:

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

Сообщение Den »

посмотрел в F_OFP 8.10.87.0
есть F_OFP::IDOCREQ тама...

перескачайте F_OFP c фтп и посмотрите, с по ссылке
http://tyumbit.ru/gal_forum/viewtopic.php?f=8&t=8900
найдется ли в новом ресурсе у Вас
Zver
Местный житель
Сообщения: 204
Зарегистрирован: 13 ноя 2012, 12:47
Откуда: СПб
Контактная информация:

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

Сообщение Zver »

Ура! Разобрались.

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

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

P.S.
Готовимся к переходу на 9.1
Программист-самоучка
Ответить