Основные объекты:
- Справочник TAG (далее тэг) необходим для определения иерархической структуры тэгов, к которым привязан определенный элемент контента.
- Справочник Content (далее контент) – подчинен справочнику TAG. Связь многие ко многим.
- Основной рабочей областью является обработка "Форма контента". Отображает дерево тэгов и соответственно связанные с конкретно выделенным тэгом контент. При создании нового - контент изначально привязывается к выделенному тэгу. Далее в форме элемента контента можно подбором подобрать необходимые тэги.
- При активизации определенного тэга в списке контента остаются только связанные с ним тэги.
- При записи контента в список его тэгов прописывается вся иерархия выше выбранного тэга. Поэтому «спускаясь» вниз по дереву тэгов поиск контента будет уточняться (т.е. обработка отображает для более верхнего уровня весь контент подчиненных тэгов).
- В обработке есть поле поиска контента – позволяет искать по совпадению текста в регистре CopyContent (хранит доп. информацию контента), с учетом установленного отбора по иерархии тэгов.
- Справочник тэгов подчинен справочнику пользователи.
Основная интеграционная база для применения подсистемы управления контентом.
За основу взята разработка //infostart.ru/1c/tools/1883337/. Основой документ данной разработки «Действие в системе» теперь привязан к контенту, связь один к одному. К документу можно призывать файлы.
Мобильное приложение с автономным режимом работы.
Мобильное приложение полностью повторяет функционал разработки //infostart.ru/1c/tools/1883337/ + подсистемы работы с контентом. Функционал документа «Действие в системе» требует наличие постоянного соединения (принцип работы описан в вышеуказанной публикации). Документ "Действие в системе" привязан к одному контенту. К документу можно прикладывать файлы
Обмен:
МП содержит в себе модуль обмена данными построенный на базе плана обмена + пары дополнительных регистров для хранения изменений и запросов доп. данных из источника. Обмен происходит в формате JSON.
Принцип обмена следующий:
- Инициатором обмена всегда является МП. Сначала производится загрузка данных, затем выгрузка данных в интеграционную базу.
- Удаление объектов производится в основной базе, стандартным способом, сначала производится пометка на удаление, затем удаление. При этом регистрируется запись на удаление в регистре сведений УдалениеОбъектов, и запись в плане обмена об удалении. Удаление на стороне мобильного приложения происходит в момент выполнения обмена, если записываемый объект имеет соответствующий тип. При этом стираются все записи из связанных регистров сведений по данному объекту.
- Обмен выполняется до тех пор, пока полностью не будут получены все ссылочные поля загружаемого объекта (во избежание зацикливания есть константа регулирующая количество итераций обмена).
Пример, в регистрации плана обмена есть контент, подчиненный тэгу, который не помечен для обмена. При первой итерации обмена будет загружен контент, при отправке квитанции о получении так же будет передан список идентификаторов для повторного обмена. То же самое произойдет и на стороне основной базы в процессе выгрузки данных из МП. - Для транспорта сообщения используется Web-сервис TagServise. Для него используется отдельная аутентификация (без пароля), первоначальная авторизация производится на базе сервисов базовой разработки. На вход получается имя пользователя ИБ, которое указывается в узле плана обмена. Содержит два основных метода (получение/отправка пакета) и один дополнительный для получения объектов по битым ссылкам.
- При записи элементов в мобильном приложении есть возможность формировать пакет обмена только с выбранным элементом и отправлять его (по умолчанию возможность не используется). Для транспорта в данном методе используется отдельные http-сервисы Tags и Content. На стороне основной базы так же производится поиск битых ссылок после разбора сообщения обмена и в ответной квитанции указывается список объектов для повторной отправки из МП. Данный список регистрируется в доп. регистре сведений «Запросы дополнительных данных» в МП, и при следующем полноценном обмене данные из этого регистра будут помечены к отправке в плане обмена. Схема обмена иерархического справочника при пометке только элемента нижнего уровня и отсутствии элементов-родителей (см. последний скриншот).
- Префиксация созданных объектов производится автоматически при записи новых объектов в основной базе и в МП. Объекты, созданные в МП получают префикс текущего узла обмена из константы. Объекты, созданные в основной базе, получают префикс из идентификатора текущего пользователя (2 символа).
- Идентификация объектов справочников выполняется по UID.
Тестировалось на 8.3.22.1923 (использует возможности 21 платформы)
Application для windows TAG_reader (любителям Evernote и Tomboy посвящается). Полностью повторяет описанный выше функционал для 1с. Можем заводить тэги, описывать контент, хранить файлы в привязке к контенту. Работа ведется в рамках одного окна, редактор текста на базе старой версии библиотеки Scentilla (еще когда она была на базе .NEt), аля Notepad++. По клику в диспетчере - файлы открываются так, как бы это сделал explorer. Быстрый поиск и отрисовка (используются кэши). Данные хранятся в формате SQLite 3. Есть возможность смены баз данных через окно приложения.
Обмен с интеграционной базой на 1с
- Загрузка через обработку "ЗагрузкаКонтента" (присутствует в расширении). Транспорт по средствам SQLite ODBC Driver (http://www.ch-werner.de/sqliteodbc/).
- Обмен на базе XSD-схемы. На стороне интеграционной базы модуль обмена на базе БСП. Формат КД 3 (с небольшими доработками общих модулей, т.к. .Net не сильно любит кириллицу). Модуль обмена может как читать файлы, так и передавать пакет через Web-сервис. На данный момент не поддерживается выгрузка файлов. Инициатором обмена является модуль обмена .Net.
З.Ы. скриншоты приложения прилагаю.
upd 27.10.2023
Основная база - модули БСП обновлены
Обмен с мобильными (расширение) - добавлен модуль обмена базой TAG (//infostart.ru/1c/tools/1964665/)
Мобильное приложение исправление ошибок
upd 04.02.2024
Исправление ошибок,
добавлена регистрация объектов связанных планов обмена по пользователям
Проверена работа мобильного приложения через ssl (самоподписанный сертификат в тонком и на android). Публичный сертификат надо добавлять в хранилище сертификатов 1с на android устройстве.
upd 10.03.2024
Расширение "Обмен с мобильными", добавлена связка с расширением "Скиллы".