oscript-library / storagereader

Библиотека для oscript - реализация объекта для чтения информации о захваченных объектах хранилища

Geek Repo:Geek Repo

Github PK Tool:Github PK Tool

storagereader

Данная библиотека - Реализация объекта для чтения информации о захваченных объектах хранилища.

Позволяет читать таблицу захваченных объектов в хранилище. Хранилище должно быть доступно локально или по сети! Под капотом работает библиотека с утилитой чтения файловых баз данных tool1cd от awa

Установка

Локальная установка

Скачиваем пакет из релизов этого репо и устанавливаем через opm

opm install -f .\storagereader-1.0.0.ospx

Установка из хаба

opm install storagereader

Подключение

#Использовать storagereader

Описание и методы

После подключения библиотеки доступно создание объекта ЧтениеХранилища. Затем нужно вызвать метод объекта ЧтениеХранилища - ПрочитатьХранилище().

ЧтениеХранилища = Новый ЧтениеХранилища(Хранилище, ВыгрузкаКонфигурации);
ЧтениеХранилища.ПрочитатьХранилище();

Создавать объект можно со следующими параметрами:

  • Хранилище - тут нужно указать каталог хранилища 1С
  • ВыгрузкаКонфигурации - тут можно указать каталог выгрузки конфигурации в исходный код

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

Если вызвать метод объекта ЧтениеХранилища ТаблицаЗахватов() вернется эта таблица значений.

ТаблицаЗахватов = ЧтениеХранилища.ТаблицаЗахватов();

Колонки у этой таблицы значений следующие:

  • Метаданные - Строка - описание объекта метаданных
  • Пользователь - Строка - Пользователь, как он задан в хранилище
  • ДатаЗахвата - Дата - Дата захвата объекта

Если не передавать второй параметр при создании ЧтениеХранилища, метаданные вернутся в следующем виде (примерно так они выглядят в БД хранилища):

  • Конфигурация.СуперФорма - общая форма с именем СуперФорма
  • Конфигурация - корень конфигурации
  • Конфигурация.Справочник1.ФормаЭлемента - форма справочника Справочник1
  • Конфигурация.Справочник1 - сам справочник Справочник1

Немного непривычно, поэтому специально для того, чтобы было более похоже на данные выгрузки в исходный код, я добавил обработку параметра ВыгрузкаКонфигурации, если он заполнен - метаданные берутся оттуда и выглядят так:

  • CommonForm.СуперФорма - общая форма с именем СуперФорма
  • Configuration.ТестоваяКонфигурация - корень конфигурации
  • Catalog.Справочник1.Form.ФормаЭлемента - форма справочника Справочник1
  • Catalog.Справочник1;Администратор - сам справочник Справочник1

Единственная сложность - каталог с исходниками должен быть актуальным, так как если в хранилище добавили новый объект, идентификаторов которого нет в каталоге с исходниками, метаданные этого объекта будут пустыми. Так как скрипты с использованием этой библиотеки крутятся на сервере, на котором выгружаются исходники, каталоги с исходниками у меня всегда актуальны.

Также у ЧтениеХранилища есть метод КореньЗахвачен(), который возвращает структуру с информацией о захвате корня хранилища.

ДанныеОЗахватеКорня = ЧтениеХранилища.КореньЗахвачен();

Поля у этой структуры следующие:

  • Захвачен - Булево
  • Длительность - Число - Количество секунд, прошедшее с момента захвата в хранилище корня
  • Пользователь - Строка - Пользователь, как он задан в хранилище

Примеры

#Использовать storagereader

ЧтениеХранилища = Новый ЧтениеХранилища(ПутьКХранилищу);
ЧтениеХранилища.ПрочитатьХранилище();
ТаблицаЗахватов = ЧтениеХрана.ТаблицаЗахватов();
ЗаписатьТаблицуНаДиск(ТаблицаЗахватов, ИмяФайла);

ДанныеОЗахватеКорня = ЧтениеХранилища.КореньЗахвачен();
Если ДанныеОЗахватеКорня.Захвачен И ДанныеОЗахватеКорня.Длительность > 7200 Тогда
	ТекстСообщения = СтрШаблон("Корень захвачен %1 часов назад пользователем %2", 
								Окр(ДанныеОЗахватеКорня.Длительность / 3600), 
								ДанныеОЗахватеКорня.Пользователь);
    ОтправитьУведомлениеТелеграмОДолгомЗахватеКорня(ТекстСообщения);

КонецЕсли;

Также смотрите код в каталоге example и tests

About

Библиотека для oscript - реализация объекта для чтения информации о захваченных объектах хранилища


Languages

Language:1C Enterprise 100.0%