Адаптеры - реализация и применение шаблонов проектирования в 1С

19.06.20

Разработка - Инструментарий разработчика

Шаблоны проектирования "Стратегия" и "Адаптер", разделение кода на интерфейс и реализацию, изменение поведения на стадии выполнения, инкапсуляция алгоритмов, код функциональными блоками, точка написания тестов.

Файлы

ВНИМАНИЕ: Файлы из Базы знаний - это исходный код разработки. Это примеры решения задач, шаблоны, заготовки, "строительные материалы" для учетной системы. Файлы ориентированы на специалистов 1С, которые могут разобраться в коде и оптимизировать программу для запуска в базе данных. Гарантии работоспособности нет. Возврата нет. Технической поддержки нет.

Наименование Скачано Купить файл
adapters-0.1.4.24.zip
.zip 910,94Kb ver:0.1.4.24
1 2 500 руб. Купить

Подписка PRO — скачивайте любые файлы со скидкой до 85% из Базы знаний

Оформите подписку на компанию для решения рабочих задач

Оформить подписку и скачать решение со скидкой

Вы можете заказать платную доработку или адаптацию этой разработки под вашу конфигурацию на «Бирже заказов».

  • 0% комиссии — оплата напрямую исполнителю;
  • Исполнители любого масштаба — от отдельных специалистов до команд под проект;
  • Прямой обмен контактами между заказчиком и исполнителем;
  • Безопасная сделка — при необходимости;
  • Рейтинги, кейсы и прозрачная система откликов.

Зачем это надо.

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

Немного теории.

Выдержки из Вики

Шаблоны проектирования - повторяемая архитектурная конструкция, представляющая собой решение проблемы проектирования в рамках некоторого часто возникающего контекста

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

Адаптер - структурный шаблон проектирования, предназначенный для организации использования функций объекта, недоступного для модификации, через специально созданный интерфейс. Другими словами — это структурный паттерн проектирования, который позволяет объектам с несовместимыми интерфейсами работать вместе.

Идея расширения.

Создаем управление выбора обработки реализации алгоритма (адаптера) в зависимости от функционального блока и контекста выполнения. 

Схема выполнения:

Схема расширения Адаптеры

Что дает применение.

В режиме клиента

  • Простую взаимозаменяемость алгоритмов в рамках функционального блока
  • Модульность системы

В режиме разработки

Как следствие разделения разработки на создание интерфейса и самой реализации

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

Техническая реализация.

Расширение для 1С версии >= 8.3.9, не требует изменений в конфигурации. Реализациями алгоритмов (адаптерами) могут быть как встроенные, так и внешние обработки.

Проект на Gitlab

Храним функциональные блоки как виды адаптеров, контексты выполнения как регионы использования. На основании переданных вида и региона возвращаем назначенную обработку реализации алгоритма, при отсутствии настройки для вида+региона возвращаем обработку реализации алгоритма по-умолчанию.

Приложена тестовая база с реализацией загрузки данных из разнородных источников для контрагентов

 
 Интерфейс расширения:

Создание адаптеров.

В обработках адаптеров требуется реализация общего интерфейса, реализованного в обработке расширения "ом_АдаптерШаблон"

 
 Общий интерфейс адаптеров

Управление адаптерами.

Кроме программного интерфейса есть общая обработка "ОМ. Управление адаптерами", позволяющая назначать активные адаптеры для регионов использования, изменять состав зарегистрированных адаптеров:

 
 Скриншот с тестового примера

 

В архиве сборка расширения и каркасный пример загрузки разнородных файлов для контрагентов.

Вступайте в нашу телеграмм-группу Инфостарт

Шаблоны проектирования Стратегия Адаптер

См. также

Инструментарий разработчика Роли и права Запросы СКД Программист Руководитель проекта 1С:Предприятие 8 Платные (руб)

Инструменты для разработчиков 1С 8.3: Infostart Toolkit. Автоматизация и ускорение разработки на управляемых формах. Легкость работы с 1С.

16500 руб.

02.09.2020    267168    1488    421    

1177

Инструментарий разработчика Чистка данных Свертка базы Инструменты администратора БД Системный администратор Программист Руководитель проекта 1С:Предприятие 8 1С:ERP Управление предприятием 2 1С:Бухгалтерия 3.0 1С:Управление торговлей 11 1С:Комплексная автоматизация 2.х 1С:Управление нашей фирмой 3.0 Россия Платные (руб)

Инструмент представляет собой обработку для проведения свёртки или обрезки баз данных. Работает на ЛЮБЫХ конфигурациях (УТ, БП, ERP, УНФ, КА и т.д.). Поддерживаются серверные и файловые базы, управляемые и обычные формы, интерфейс 8.5. Может выполнять свертку одновременно в несколько потоков, а также без непосредственного участия пользователя. Решение в Реестре отечественного ПО.

24900 руб.

20.08.2024    74489    377    170    

322

Инструментарий разработчика Нейросети Платные (руб)

Первые попытки разработки на 1С с использованием больших языковых моделей (LLM) могут разочаровать. LLMки сильно галлюцинируют, потому что не знают устройства конфигураций 1С, не знают нюансов синтаксиса. Но если дать им подсказки с помощью MCP, то результат получается кардинально лучше. Далее в публикации: MCP для поиска по метаданным 1С, справке синтакс-помощника и проверки синтаксиса.

15250 руб.

25.08.2025    62847    130    36    

136

Пакетная печать Печатные формы Инструментарий разработчика Программист 1С:Предприятие 8 Платные (руб)

Расширение для создания и редактирования печатных форм в системе 1С:Предприятие 8.3. Благодаря конструктору можно значительно снизить затраты времени на разработку печатных форм, повысить качество и прозрачность разработки, а также навести порядок в многообразии корпоративных печатных форм. Обновление версии от 21.04.26

22570 руб.

06.10.2023    39948    112    54    

126

Инструментарий разработчика Разработка Администрирование веб-серверов Системный администратор Программист Бизнес-аналитик Руководитель проекта 1С 8.3 Платные (руб)

Analyzer 1C сводит выгрузку 1С — основную конфигурацию и все расширения — в единый граф знаний. Любой запрос по связям за доли секунды, с пометками «Доб.» / «Заимств.» / «Переопределено». Новое в 2.0 — обновление поставки: сравнение и объединение версий деревом «как в Конфигураторе» с выгрузкой плана решений; поиск конфликтов из-за перехватов расширений и висячих ссылок; загрузка из бинарных .cf/.cfe; циклические зависимости. Плюс анализ влияния, запросы BSL, роли и RLS, граф вызовов. Минута на развёртывание через Docker без необходимости подключения к Интернет. Любая 1С:Предприятие 8.3+.

14000 руб.

17.04.2026    8437    36    45    

51

Инструменты администратора БД Инструментарий разработчика Роли и права Программист 1С:Предприятие 8 1C:Бухгалтерия Россия Платные (руб)

Расширение позволяет без изменения кода конфигурации выполнять проверки при вводе данных, скрывать от пользователя недоступные ему данные, выполнять код в обработчиках. Не изменяет данные конфигурации, легко устанавливается практически на любую конфигурацию на управляемых формах.

17000 руб.

10.11.2023    26295    98    46    

104

Мастера заполнения Поиск данных Инструментарий разработчика Подбор и обработка объектов 1С 8.3 1С 8.5 Платные (руб)

Infostart MagicInput улучшает подбор в полях ввода 1С: ищет по любой части названия и по нескольким ключевым фрагментам, распознаёт ввод в другой раскладке и показывает иконки/статусы объектов прямо в списке. Поддерживает вставку навигационной ссылки/представления документа для автоподбора; для разработчиков доступны поиск по GUID и полному имени предопределённого. Работает в управляемых формах и подключается в большинстве конфигураций 1С 8.3/8.5.

6000 руб.

25.02.2026    4710    16    1    

20

Информационная безопасность Инструменты администратора БД Инструментарий разработчика Учет документов Системный администратор Программист Бизнес-аналитик Бухгалтер Пользователь Руководитель проекта 1С 8.3 1С 8.5 Розничная и сетевая торговля (FMCG) Платные (руб)

Контроль ввода данных в 1С: проверка заполнения реквизитов, обязательные поля, контроль перед записью и проведением, запрет проведения документа. Позволяет настраивать любые проверки данных в 1С 8.3/8.5 от обязательных полей до сложных условий – без открытия конфигуратора и написания кода. Готовое расширение, которое подключается и работает сразу.

6000 руб.

15.04.2026    2500    6    0    

21
Комментарии
Подписаться на ответы Инфостарт бот Сортировка: Древо развёрнутое
Свернуть все
1. alex_4x 88 19.06.20 10:56 Сейчас в теме
Стыд мне и позор, но я ничего не понял.

В статье в Вики всё понятно. И пример понятный.
Но я не понимаю какое отношение это имеет к 1С.
Объектная модель в 1С есть. То есть объект у нас документ или справочник или обработка. Экспортные функции и процедуры, которые написаны в модуле - ну как бы методы. В чем суть приведенного примера на 1С непонятно.
Прикрепленные файлы:
2. shmalevoz 315 19.06.20 13:17 Сейчас в теме
(1) Дело в том, что во многих организациях на проектах любой степени сложности наблюдается явление когда продукт рассматривается только в разрезе решения бизнес-задач. Стремление к качеству даже если и есть, но нет системного подхода как заставить разработчиков делать хорошо. И как следствие бывает, что модификация крайне затруднена, повторное использование сделанного в других проектах невозможна, пишем заново, ... А эти затраты можно было бы не нести, будь нормальное разделение функционала.
Применение же шаблонов проектирования в разработке дает на выходе намного более качественные вещи, естественным образом заставляет разработчиков делить функционал на отдельные блоки. На выходе простые интерфейсы, простые, легкомодифициуемые куски функционала, расположенные отдельно. Нет каши, есть возможность выбора алгоритма реализации, повторное использование функционала в других проектах. При этом принципы эти понятны, доступны, широко освещены.
А расширение это просто готовая схема управления выбора алгоритма (обработки). В помощь так сказать при использовании шаблонов проектирования. Шаблон Стратегия как раз это и подразумевает. А конечные обработки становятся Адаптерами, поскольку (в пределах своих видов) реализуют один функционал (интерфейс), но различными способами.
13jaguar; +1 Ответить
3. sh_oleg 26.03.21 13:40 Сейчас в теме
(1)
Адаптеры (временами в паре с Мостами (Bridge)) в 1С вполне применимы и полезны. Есть реальные кейсы, которые были решены с использованием этих паттернов.

К примеру, на одном из моих проектов, нужно было реализовать обмен заказами поставщиков по АПИ самих поставщиков (само собой у каждого поставщика свой АПИ). Здесь как раз были использованы Bridge+Adapter. В результате задача подключения каждого нового АПИ поставщика - сводится к 4-6 часам разработки (в зависимости от сложности самого АПИ).

Или, реализация отправки уведомлений с выбором типа и оператора (вайбер, телеграм, смс).

Или, чтоб далеко не ходить, в типовых конфигурациях есть общ. модуль АдминистрированиеКластераКлиентСервер, в котором применяется этот паттерн.

Список можно продолжать...
Для отправки сообщения требуется регистрация/авторизация