1.3.1.2.1. Дочерние устройства

Если у главного устройства могут быть дочерние устройства, нужно

  1. Создать класс, унаследованный от класса TChildDeviceInterface

  2. Сгенерировать идентификатора типа дочернего устройства.

    Например, в Delphi нажать комбинацию клавиш Ctrl-Shift-G.

  3. В классе главного устройство перекрыть метод ChildClassByModuleInterface

  4. Из перекрытого метода нужно вернуть нужный класс дочернего устройства в зависимости от идентификатора типа дочернего устройства, переданного в метод

  5. В карточке редактирования программного модуля дочернего устройства в поле Интерфейс нужно указать созданный идентификатор типа дочернего устройства.

    А в разделе Подключающие модули той же карточки указать программный модуль главного устройства.

Пример. 

interface
type
  TFiscalMainDeviceInterface = class(TssSomeMainDeviceInterface)

    // Некоторый код пропущен

  protected
    function ChildClassByModuleInterface(ModuleInterface: TModuleInterface): TChildDeviceInterfaceClass; override;

    // Некоторый код пропущен

  end;

implementation

function TFiscalMainDeviceInterface.ChildClassByModuleInterface(ModuleInterface: TModuleInterface): TChildDeviceInterfaceClass;
const
  MODULE_INTERFACE_CHILD: TGUID = '4E22E5C2-F4FE-4706-95D7-1E1872450D77';
begin
  if SameGUID(ModuleInterface, CHILD_DEVICE_ChildFiscal_ModuleInterface) then
    Result := TChildFiscalDeviceInterface
  else
    Result := inherited;
end;