Перейти к основному содержимому

Адаптер (Adapter)

Теория

Адаптер - преобразует интерфейс класса к другому интерфейсу, на который рассчитан клиент. Адаптер обеспечивает совместную работу классов, невозможную в обычных условиях из-за несовместимости интерфейса.

В 1С адаптер можно реализовать разными способами в зависимости от сложности:

  • Простой адаптер - это просто функция, которая преобразует один интерфейс в другой.
  • Адаптер как отдельный модуль - содержит функции преобразования данных из одной подсистемы в формат другой.
  • Адаптер как обработка - позволяет гибко настраивать преобразования через внешние запросы. В эти запросы можно гибко передавать параметры, определяющие необходимые преобразования данных.

БСП

Примеры

Код

Допустим, у нас есть общий модуль для работы с новым фискальным устройством:

// ОбщийМодуль.НоваяМодельФР

Функция ПодключитьФР(Модель, Порт, Скорость) Экспорт
Функция ОткрытьЧек(ФР, Параметры) Экспорт
Функция ПробитьПозицию(ФР, Товар, Цена) Экспорт
// + другие специфичные методы работы конкретной модели ФР

A в конфигурации используется собственная подсистема для фискальных устройств:

// ОбщийМодуль.РаботаСФискальнымУстройством

Функция Подключить(ФискальноеУстройство) Экспорт
Функция ОткрытьЧек(ФискальноеУстройство, Параметры) Экспорт
Функция ПробитьПозицию(ФискальноеУстройство, Товар, Цена) Экспорт
// Универсальный интерфейс для всех ФУ

Чтобы интегрировать стороннюю библиотеку ФР, можно написать адаптер:

// ОбщийМодуль.РаботаСВнешнимФискальнымУстройством
Функция Подключить(ФискальноеУстройство) Экспорт

Возврат НоваяМодельФР.ПодключитьФР(ФискальноеУстройство.Модель, ФискальноеУстройство.Порт,
ФискальноеУстройство.Скорость);

КонецФункции

// Аналогично для других методов