Страница 1 из 1
					
				Про InitServKau и 7.12
				Добавлено: 26 сен 2005, 11:39
				 Nick
				Добрый день!
 Вот перекомпилирую свои отчеты под 7.12.  Есть у меня один ARD-отчет, где вытаскивается много атрибутов и классификаторов - и делал я это в 7.11 с помощью команд doTXOGetExtAttr и TXOGetExClassName1. Чтобы эти команды нормально отрабатывали в начале отчета я включал сервер ТХО:
.Begin
  InitServKau()
End.
 а в завершении отчета выключал этот сервер:
.Begin
  DoneServKau()
End.
 Все работало отлично. В 7.12 в отчете все атрибуты вытаскиваются нулями, а классификаторы - пустыми значениями - т.е. не пашет отчет. Простая перекомпиляция ничего не дала. Но я заметил, что если открыть окно собственных платежных поручений из ФРО и запустить мой ADR - то все нормально работает, даже со старыми ресурсниками отчета для 7.11. 
 Насколько я знаю, открыв окно платежек - я запускаю этот сервер ТХО - и поэтому все пашет. Но я ведь его из отчета тоже запускал... но ничего не работало. В чем может быть причина - подскажите пожалуйста. 
 Хотя у меня есть отчет - присоединенная форма, где таким же образом вытаскиваю атрибуты - там все пашет без вопросов - просто перекомпилировал его под 7.12 и все.
 Лицензия только на компилятор форм - может в этом причина?
			 
			
					
				
				Добавлено: 26 сен 2005, 12:01
				 Max_Fin
				Вообще-то для TXO
Код: Выделить всё
function  InitServTXO        (Word)                   : Boolean; external 'G_TXO.Dll';
procedure DoneServTXO                                          ; external 'G_TXO.Dll';
 
			 
			
					
				
				Добавлено: 26 сен 2005, 12:58
				 Nick
				Max_Fin - спасибо, я был не прав...
а InitServKau - это тогда что-то типа контура аналитического учета для работы с проводками - чтоб аналитику таскать?
			 
			
					
				
				Добавлено: 26 сен 2005, 13:00
				 Алексей
				Хм. у меня в версии 5.85 
для инициализации:
  if (not InitServKAU) {message('Ошибка обработчика КАУ');abort; exit;}
для закрытия:
  DoneServKau;
И работает.  Это обработчик КАУ, что бы доставать наименование аналитики, либо код аналитики... 
странно, про 7.12 пока не могу сказать, ещё не перешли.
			 
			
					
				
				Добавлено: 26 сен 2005, 15:55
				 Screw
				Процедурные скобки вида InitXXXX-DoneXXXX мы будем заменять захватами прикладных контекстов. Вот пример такого захвата. Этот include предлагается включать в свои исходнити вместо InitServKau, DoneServKau:
(servkau.vih)
//------------------------------------------------------------------------------
//                                                      (c) Корпорация ГАЛАКТИКА
//------------------------------------------------------------------------------
// Система       : ГАЛАКТИКА
// Проект        : Бухгалтерский контур
// Версия        : 5.85.02
// Назначение    : Захват контеста Обработки аналитки
//                 (заменяет "процедурные" скобки InitServKau и DoneServKau)
// Ответсвенный  : Герман Юрий Эдуардович (Gera)
//------------------------------------------------------------------------------
//------------------------------------------------------------------------------
//
//  Для того, чтобы работали функции обработки аналитики, такие, например как:
//    GetAnyKau, GivenAnName, GetAnalitikName и т.д., необходимо выполнять т.н.
//    инициализацию (захват) контекста с именем 'ServKau'.
//  При этом произойдет инициализация внутренних структур Галактики,
//    обеспечивающая верную работу вышеуказанных функций. Если не выполнить
//    инициализацию контекста, данные функции будут возвращать пустой результат
//    при любом наборе входных параметров
//  Освобождение контекста произойдет автоматически после выгрузки последнего
//    интерфейса, который этот контекст захватывал.
//
//  Для захвата контекста достаточно подключить данный vih - файл в свой
//    интерфейс.
//
//  Пример.        ...
//                 #include Contexts.vih      // Обработка контекстов
//                 ...
//                 Interface ...
//                 ...
//                 #include ServKau.vih       // Захват контекста 'ServKau'
//                 ...
//
//------------------------------------------------------------------------------
//  Примечание:
//  В релизах 5.85.02, 7.11.01 (а также в более ранних) инициализация контекста
//    производилась с помощью вызова InitServKau, освобождение с помощью
//    вызова DoneServKau. В новых релизах версий 5.8x и 7.1x эти функции
//    будут оставлены для совместимости прикладного кода, НО их использование
//    НЕ рекомендуется.
//  В следующих версиях (8.0, ...) функции InitServKau и DoneServKau будут
//    недоступны для использования.
//------------------------------------------------------------------------------
//------------------------------------------------------------------------------
// Подключать данный .vih можно ТОЛЬКО ПОСЛЕ описания Interface
//------------------------------------------------------------------------------
var ServKau_Session : IContextSession;
HandleEvent
  //----------------------------------------------------------------------------
  // Если захват контекста произойдет два раза - ничего страшного не будет
  // точнее второй раз он просто не захватится...
  //----------------------------------------------------------------------------
  cmInit : {
    ProcessCommand(cmGetKau);
  }
  cmOnVipLoad : {
    ProcessCommand(cmGetKau);
  }
  // Вроде такая команда нигде не используется
  cmGetKau : {
    var CL : ContextList;
    CL.Add(ServKau_Session, 'ServKau');
  }
  cmDone : {
    ProcessCommand(cmKau5);
  }
  cmOnVipUnload : {
    ProcessCommand(cmKau5);
  }
  cmKau5 : {
    FreeVipInterface(ServKau_Session);
  }
end;
Кому интересно, могу выслать более подробную информацию о механизме контекстов. Присылайте запросы на 
vitaly.korzyuk@galaktika.by