новое событие
Информационный поток
Задания вакансии материалы разработки сообщения форума

Специализированная конфигурация "Автоапдейтер"

  • Добавить свою публикацию
  • для этого требуется регистрация

Данная конфигурация предназначена для логирования и автоматического внесения изменений в другие конфигурация 1С 8.Х. Краткое описание ее работы выглядит следующим образом:

  • Выгружаем все модули из логируемой кофигурации (Конфигуратор - Конфигурация - Выгрузить файлы конфигурации).
  • В автоапдейтер загуржаем метаданные логируемой конфигурации.
  • Делаем сценарии изменения, которые содержат действия над отдельными/всеми модулями логируемой конфигурации.
  • Выполняем нужный сценарий.
  • Загружаем измененные модули логируемой конфигурации обратно (Конфигуратор - Конфигурация - Загрузить файлы конфигурации).

Структура конфигурации автоапдейтера следующая:

  • Основной элемент - справочник конфигураций.
  • Справочник метаданных,в котором хранятся метаданные конфигурации-владельца (подчинен справочнику конфигураций)
  • Справочник сценариев (подчинен справочнику конфигураций)
  • Справочник действий, который связан со сценарием через регистр сведений "НаборДействийСценария".

Элемент справочника действий содержит специальное выражение, описывающее действие над выбранным модулем - вставка процедуры/ функции, вставка фрагментов кода и т.д. В элементе формы сценария мы отмечаем объекты метаданных над которыми нужно производить действия сценария За выполнение самих действий отвечает обработка "ВыполненеСценария"

Остановимся на каждом пункте более подробно.

Для логируемой конфигурации в справочнике конфигураций автоапдейтера заводится новый элемент (Справочники - Конфигурации - "Добавить"); Указываются реквизиты логируемой базы и производится загрузка ее метаданных. В случае изменения структуры логируемой базы, конфигурацию можно загрузить повторно (обновить). Также нужно указать каталог, куда предварительно были выгружены модули логируемой конфигурации.

 

Форма элемента справочника конфигураций

После чего можно заводить сценарий изменения. Сценарий в данном контексте - это некая группа обощенных действий. Можно в одном сценарии прописать несколько действий над модулями, можно в разных сценариях прописать по одному действию. Особого значения это не имеет и остается на усмотрение пользователя. Для начала откроем форму списка сценариев выбранной конфигурации(в списке конфигураций нажмем кнопку "Сценарии").

 

Форма списка справочника конфигураций

После добавления / изменения откроется элемент справочника сценариев.

 

Форма элемента справочника сценариев

В левом окне - список элементов метаданных, похожий на обычный список конфигурации в конфигураторе. В правом верхнем углу добавляются действия. Правое нижнее окно - текст действия в режиме просмотра. Для добавления действия откроем форму списка действий (Справочники - действия).

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

Процедура ОбработкаВнешнегоСобытия(Источник, Событие, Данные)
	... <стандарные действия> ...
	ВызовНашегоОбработчика(Источник, Событие, Данные);
КонецПроцедуры

Чтобы сделать это автоматически в автоапдейтере, действию присвоим следующий текст:

Если ЕстьСекцияТекста(Перечисления.ВидыСекцийТекста.Процедура,"ОбработкаВнешнегоСобытия") Тогда
	ДобавитьТекстВнутрьСекцииМодуля(Перечисления.ВидыСекцийТекста.Процедура,"ОбработкаВнешнегоСобытия",Перечисления.ВидыМестВставок.Конец,
	";
	|
	|ВызовНашегоОбработчика(Источник, Событие, Данные);
	|"
КонецЕсли;

Функция ЕстьСекцияТекста и Процедура ДобавитьТекстВнутрьСекцииМодуля являются скриптами, используемыми для обработки текстов модуля. Они описаны в модуле обработки "ВыполнениеСценария". После добавления действия напротив каждого элемента метаданных конфигурации появляется пустой флажок. Для тех объектов метаданных, над которыми производится требуемое действие включается отметка. Возможна групповая отметка всех форм, модулей. Или использование запроса, по результатам которого ставятся отметки.

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

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

//Функция проверяет наличие заданной процедуры/функции в обрабатываемом модуле.
// Возвращает истину если секция есть.
// ВидСекцииТекста - возможные значения :
// Перечисления.ВидыСекцийТекста.Процедура, Перечисления.ВидыСекцийТекста.Функция
// ШаблонИмени - Имя процедуры/функции обрабатываемого модуля
Функция ЕстьСекцияТекста(ВидСекцииТекста,ШаблонИмени)


//Процедура добавляет код внутрь нужной секции
// ВидСекцииТекста - возможные значения :
// Перечисления.ВидыСекцийТекста.Процедура, Перечисления.ВидыСекцийТекста.Функция
// ШаблонИмени - Имя процедуры/функции обрабатываемого модуля
// ВидМестаСекции - возможные значения :
// Перечисления.ВидыМестВставок.Начало, Перечисления.ВидыМестВставок.Конец
// ТекстВставки - код, вставляемый в модуль
// СтрокОтМеста - количество строк от начала/конца модуля
// (зависит от параметра ВидМестаСекции), где вставляется ТекстВставки
Процедура ДобавитьТекстВнутрьСекцииМодуля(
					ВидСекцииТекста,
					ШаблонИмени,
					ВидМестаСекции,
					ТекстВставки,
					СтрокОтМеста = 0)

//Добавляет процедуру или функцию в модуль
// ТекстВставки - код процедуры или функции, вставляемый в модуль
Процедура ДобавитьСекциюМодуля(ТекстВставки)

//Процедура удаляет выбранную процедуру/функцию
// ВидСекцииТекста - возможные значения :
// Перечисления.ВидыСекцийТекста.Процедура, Перечисления.ВидыСекцийТекста.Функция
// ШаблонИмени - Имя процедуры/функции обрабатываемого модуля
Процедура УдалитьСекциюМодуля(ВидСекцииТекста,ШаблонИмени)

//Возвращает полный текст модуля
Функция ПолучитьТекстМодуля()

//Полностью заменяет текст модуля на ТекстЗамены
Процедура ЗаменитьТекстМодуля(ТекстЗамены)

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

 

Файл с конфигурацией .cf (128 кб)
 
0
Читайте также
Торговля комиссионнными товарами и УСН (УПП 8.1)
Операции, выполняемые при комиссионной торговле УСН (УПП 8.1)
Обновить конфигурацию 1с
Обновить конфигурацию 1С 8.2 возможно несколькими способами
1С помощь и настройка 1с 7.7
Получение метаданных в программе 1С 7.7 происходит через объект "Метаданные"
Разработки
Парсер Яндекс маркета и Торг.Мейл.ру
Загрузка данных по товарам с помощью сервисов Яндекс маркета и Торг.Мейл.ру
Обработка заполнение табличных частей документа. Написана для конфигурации УТ 11.0.6.9. Загружает информацию из файла Excel печа
Для конфигурации УТ 11.0.6.9 написана обработка для заполнения документа из файла Excel
Групповое обновление конфигураций
Групповое обновление конфигураций 1С7.7
Еще от автора
≡ к списку статей