Ядро и формы обработки 1С

Последние изменения: 18.01.2021

Ядро 

Ядро обработки представляет собой программный интерфейс для взаимодействия между товарно-учетными системами на базе 1С и программами «Магазин 15»/ «Склад 15» на платформе Mobile SMARTS. 

Ядро полностью отвязано (абстрагировано, независимо) от конкретной конфигурации 1С. Для интеграции с конкретной конфигурацией предназначена отдельно поставляемая интеграционная обработка, содержащая в себе запросы для выгрузки справочников и обработчики загрузки документов из Mobile SMARTS в 1С.

Предполагается, что вносить изменения в ядро могут ТОЛЬКО разработчики «Клеверенс». Для интеграции ядра с конфигурацией 1С нужно вносить изменения в интеграционную обработку. Поэтому всегда используется одна и та же версия ядра, а разница лишь в интеграционных обработках и настройках Mobile SMARTS. Аналогично у платформы и конфигураций «1С: Предприятия» — платформа 1С предоставляет интерфейс для разработки конфигураций и закрыта от изменений разработчиками.

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

  • Глобальное ядро (контекст). Это модуль обработки, реквизиты и табличные части обработки. Здесь хранится основная часть ядра – механизмы работы с базой Mobile SMARTS, механизмы работы с настройками, универсальные и вспомогательные механизмы работы с данными. При работе в онлайн-режиме здесь же (в реквизитах) хранятся текущие настройки системы. 
  • Локальное ядро (контекст). Специально созданная форма обработки, в которой хранится мини-копия ядра – экспортные методы и функции, отвечающие ТОЛЬКО за работу с компонентой (обращение к методам COM-объекта Mobile SMARTS). 

Для каждого из контекстов существует кэш — структуры данных, которые при запуске ядро получает из баз 1С и Mobile SMARTS, необходимые для дальнейшей работы ядра. 

Локальное ядро необходимо только в случаях, когда сервер Mobile SMARTS (COM-компонента) установлен на локальной машине (там же, откуда запускается 1С). В иных случаях (файловая база 1С, сервер Mobile SMARTS установлен на сервере 1С) — используется глобальное ядро.

Техническая реализация данного механизма проста — в реквизитах объекта и в КАЖДОЙ форме создаются обязательные реквизиты «ЯдроОбщее» и «ЯдроКомпоненты» произвольного типа. Данные реквизиты содержат «транзитные» ссылки на используемый контекст. 

  • Реквизит «ЯдроОбщее» всегда содержит в себе значение «ОбработкаОбъект» для доступа к глобальному контексту. 
  • Реквизит «ЯдроКомпоненты» содержит в себе либо значение «ОбработкаОбъект» (в случае, если компонента установлена на сервере 1С), либо ссылку на форму с мини-копией ядра (в случае использования клиент-серверного варианта работы и компоненты, установленной на локальной машине).

Для исключения «перекрестного» обращения к контекстам в связи с идентичными именами реквизитов, содержащих в себе ссылки на контексты, жестко регламентируется обращение к ним:

  • Из модуля объекта обращение к ядру производится только через предикат «ЭтотОбъект.»: «ЭтотОбъект.ЯдроОбщее» или «ЭтотОбъект.ЯдроКомпоненты».
  • Из всех остальных модулей форм обращение производится только через предикат «ЭтаФорма.»: «ЭтаФорма.ЯдроОбщее» или «ЭтаФорма.ЯдроКомпоненты».

Процедуры и функции мини-ядра клиентского контекста полностью идентичны аналогичным процедурам и функциям серверного контекста (можно их просто копипастить). Разница будет только в их вызове, например «ЭтотОбъект.ЯдроОбщее.ПолучитьНастройку(ИмяНастройки)» или «ЭтаФорма.ЯдроКомпоненты.СохранитьДокументНаСервереSMARTS()».

Все процессы передачи данных между глобальным контекстом и остальными субъектами (формами и даже локальным контекстом, вне зависимости от месторасположения последнего) производятся строго через механизм временного хранилища 1С. 

Порядок инициализации контекстов:

  1. При запуске системы из модуля объекта инициализируется глобальный контекст «ЭтотОбъект.ЯдроОбщее = ЭтотОбъект»

  2. Считывается настройка «Место установки сервера SMARTS».

    Если место установки компоненты – на сервере, тогда инициализируется локальный контекст «ЭтотОбъект.ЯдроКомпоненты = ЭтотОбъект».

    Если место установки компоненты – на клиенте, тогда локальный контекст не инициализируется, и будет инициализирован только при открытии главной формы обработки.

  3. Если локальный контекст инициализирован – в кэш глобального контекста считываются все настройки из базы Mobile SMARTS («ЯдроОбщее.Настройки = ЯдроКомпоненты.ИнициализироватьНастройки»).

  4. В случае работы в онлайн-режиме инициализация на этом заканчивается, ибо онлайн-режим может работать только в случае, когда компонента установлена на сервере (либо использование файлового варианта). В противном случае, при батч-режиме или при режиме автообмена  – инициализация продолжается.

  5. При открытии главной формы обработки мы повторно инициализируем глобальный контекст, но уже применительно к реквизитам формы – «ЭтаФорма.ЯдроОбщее = ЭтотОбъект».

  6. Считывается настройка «Место установки сервера Mobile SMARTS».

    Если место установки компоненты – на сервере, тогда инициализируется локальный контекст «ЭтаФорма.ЯдроКомпоненты = ЭтотОбъект».

    Если место установки компоненты – на клиенте, тогда локальный контекст инициализируется как «ЭтаФорма.ЯдроКомпоненты = ПолучитьФорму(«ФормаЛокальногоКонтекста»)».

Реквизиты форм «ЯдроОбщее» и «ЯдроКомпоненты» являются наследуемыми, и должны всегда передаваться в подчиненную форму при ее открытии (например, при открытии формы обмена документами из главной формы обработки).

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

Формы

Формы не являются непосредственной частью ядра. Они являются пользовательским интерфейсом для использования 3 главных функций ядра: работа с настройками, обмен справочниками, обмен документами.

Формы делятся на:

  • ключевые формы — главная форма, форма обмена документами, форма списка отборов справочников, локальный контекст
  • формы списков (для различных таблиц, т.е. сериализуемых настроек) — узлы, бп, отборы документов, глобальные параметры, произвольные коды, произвольные отборы документов. Содержимое этих форм хранится в настройках базы MS, далее, при старте обработке, помещается в кэш и хранится там до завершения работы обработки. Эти формы доступны только для просмотра (за исключением формы списка отборов справочников) + опционально можно экспортировать/импортировать содержимое список во внешние файлы.
  • формы настроек (формы карточек) — узла, бп, отбора справочников, отбора документов, правила выгрузки полей, правила загрузки полей, правила выгрузки ТЧ, правила загрузки ТЧ, связи выгрузки ТЧ, произвольный код, произвольный отбор документов). При открытии в данные формы передаётся содержимое текущей строки того списка, из которого она была открыта. Форма позволяет редактировать данные и сохранять их.
  • формы просмотра (ReadOnly) — документа MS и шапки/строки документа MS
  • служебные формы — выбор строки из таблицы, загрузки новых ШК, настройки подключения, выбор документа для загрузки в 1С, выбор пользователя или группы, редактирования текста запроса

Формы обработки НЕ ДОЛЖНЫ содержать никаких методов работы с объектными данными 1С или Mobile SMARTS. Вся работа с данными 1С происходит в глобальной обработке, а с данными Mobile SMARTS – в локальной обработке. Все промежуточные методы подготовки, обработки и прочего с полученными данными – находятся только в глобальной обработке.


Была ли статья полезна?
Спасибо за ваш отзыв!
Отзыв
Заполните, пожалуйста, данную форму, что конкретно вы не нашли, оставьте свои комментарии о работе сайта / полезности / сложности с навигацией
0/500