Внедрение «Библиотеки стандартных подсистем»

При работе с конфигурациями, созданными «с нуля», часто возникает необходимость внедрение «Библиотеки стандартных подсистем», либо полностью, либо частично. Рассмотрим, как это сделать, на примере задачи интеграции подсистемы «Работа с файлами» из «Библиотеки стандартных подсистем», для возможности сохранения файлов, для документа «Заказ».

Версия платформы 8.3.16.1224, версия БСП 3.1.2.352. В качестве приемника, выступит демонстрационная конфигурация «Управляемое приложение» (1.0.30.5, файловый вариант). Скачать демонстрационную базу и «Библиотеку стандартных подсистем» можно по адресу https://releases.1c.ru (при условии наличия доступа к сайту).

1. Разворачиваем демонстрационную базу данных «Управляемое приложение».

Рекомендую скачать файл dt и выполнить его загрузку через конфигуратор.

2. Скачиваем и устанавливаем дистрибутив «Библиотеки стандартных подсистем».

При установке, запоминаем куда она выполняется, по умолчанию это пользовательский каталог «AppData». Для быстрого перехода, в проводнике можно использовать короткую запись %AppData% и нажать Enter.

3. Запускаем базу приемник в пользовательском режиме, открываем внешнюю обработку «ПервоеВнедрениеБСП.epf», выбираем подсистему «Работа с файлами» и сохраняем настройку.

Обработка находится в папке, куда была установлена «БСП», подкаталог «ExtFiles». По умолчанию, включены обязательные к переносу подсистемы «Базовая функциональность», «Обновление версии ИБ» и «Пользователи».
НастройкаДляКонфигуратора

4. В конфигураторе базы приемника, выполнить «Конфигурация — Сравнить, объединить с конфигурацией из файла…» и выбрать файл «1Cv8.cf» находящийся в каталоге установки «БСП».

Появится окно с вопрос о постановке на поддержку, выбираем «Да».
ПоставитьНаПоддержку

5. Загружаем ранее сохранённые настройки из п.3.

ЗагрузитьНастройкиСравнения

6. Делаем настройку объединения, с учетом возникших отличий.

Универсальное решение, при внедрении в другую конфигурацию, это установить фильтр «Показывать измененные» и анализировать отличия.

В «Модуле приложения», отключить объединение для раздела определения переменных, так как есть переменные модуля. Для процедуры «ПриНачалеРаботыСистемы» отключить объединение и вручную перенеси код из файла.
МодульПриложения

Включить объединение режима совместимости, с настройкой «Взять из файла».
Цитата из описания конфигурации:
«При этом свойство конфигурации «Режим совместимости» должно быть установлено в «Не использовать» при разработке на версии 8.3.14 или в «Версия 8.3.14» при разработке на более старших версиях.»
РежимСовместимости

Для остальных отличий, использовался режим «Взять из файла», так как они оказались не существенными.

Выполняем объединение, если появится окно «Неразрешимые ссылки», нажимаем «Продолжить» и в следующем окне «Настройка правил поддержки», оставляем опции по умолчанию.
НастройкаПравилПоддержки

7. Проверяем, что в свойствах конфигурации задано имя и номер версии.

Номер версии, должен установлен, согласно шаблону {Р|РР}.{П|ПП}.{З|ЗЗ}.{С|СС}, например, 1.0.1.1, более подробное описание «Нумерация редакций и версий». В случае демонстрационной базы данных, имя и версия конфигурации заданы верно.

8. Копируем общий модуль «ОбновлениеИнформационнойБазыБСП».

Копируем общий модуль «ОбновлениеИнформационнойБазыБСП» и переименовываем в «ОбновлениеИнформационнойБазыДемо».
В скопированном модуле, в процедуре «ПриДобавленииПодсистемы» меняем заполнение описания, на свои данные из п.7, в остальных процедурах комментируем содержание. В дальнейшем, модуль будет вызываться, при обновлении основной конфигурации.
ОбщийМодульОбновления

9. Редактируем общий модуль «ПодсистемыКонфигурацииПереопределяемый».

С помощью команды «Конфигурация – Поддержка – Настройка поддержки…», устанавливаем правило «Объект поставщика редактируется с сохранением поддержки» для общего модуля «ПодсистемыКонфигурацииПереопределяемый» и в процедуре «ПриДобавленииПодсистем» добавляем строку с нашим модулем из п.8.
ПриДобавленииПодсистем

10. Добавляем роли и запускаем пользовательский режим.

Демонстрационная база данных уже содержит пользователей, использовался «Администратор», но со своим набором ролей. В конфигураторе, с помощью команды «Администрирование – Пользователи», добавляем роли «Администратор системы» и «Полные права».
ДобавлениеРолей

После первого запуска, произойдет обновление системы.

11. Закрываем конфигуратор и в пользовательском режиме, повторно открываем внешнюю обработку «ПервоеВнедрениеБСП.epf» и выполняем удаление не используемого кода.

УдалениеКода

12. Проверяем и исправляем конфигурацию с помощью внешнего отчета «ПроверкаВнедренияБСП.erf».

Отчет находится в папке, куда была установлена «БСП», подкаталог «ExtFiles». Универсальное решение, это проанализировать колонку «Подробное описание ошибки» и выполнить исправление.

Внедрение «Библиотеки стандартных подсистем» выполнено, можно переходить к настройке подсистемы «Работа с файлами», которое подробно описано в разделе «3.49. Работа с файлами».

13. Устанавливаем значение констант подсистемы «Работа с файлами».

В состав конфигурации приемника, в подсистему «Предприятие», добавлена общая форма «НастройкиРаботыСФайлами». Которая скопирована из обработки «ПанельАдминистрированияБСП», входящей в состав конфигурации «Библиотека стандартных подсистем». При первом открытии общей формы, вышла ошибка, о том, что не найден общий модуль:
НастройкиПрограммыПереопределяемый

Анализ общего модуля «НастройкиПрограммыПереопределяемый» из «Библиотеки стандартных подсистем», показал, что он пуст и предназначен для внесения изменения в форму «НастройкиРаботыСФайлами», без снятия формы с поддержки. В нашем случае, вызов можно закомментировать.
КомментируемВызов

При открытии общей формы «НастройкиРаботыСФайлами» из раздела «Предприятие», показываются текущие настройки подсистемы, которые можно изменить.
НастройкаПодсистемы

14. Настраиваем присоединение файлов к объектам конфигурации.

Был выбран вариант, с использованием, имеющегося справочника «Файлы», так как нет необходимости настраивать логику RLS.

Устанавливаем правило «Объект поставщика редактируется с сохранением поддержки» для определяемого типа «ВладелецФайлов», включаем «Составной тип данных» и добавляем документ «Заказ».
ВладелецФайлов

Повторяем для определяемого типа «ВладелецПрисоединенныхФайлов».

Добавляем две подписки на события «ПереопределитьПолучаемуюФормуПрисоединенногоФайла» и «УстановитьПометкуУдаленияПрисоединенныхФайловДокументов».
ДвеПодпискиНаСобытия

Настройка подписки «ПереопределитьПолучаемуюФормуПрисоединенногоФайла»:
ПереопределитьПолучаемую

Настройка подписки «УстановитьПометкуУдаленияПрисоединенныхФайловДокументов»:
УстановитьПометку

15. Дорабатываем форму документа «Заказ».

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

В процедуру «ПриСозданииНаСервере» модуля формы документа, добавляем код:

// СтандартныеПодсистемы.РаботаСФайлами
ПараметрыГиперссылки = РаботаСФайлами.ГиперссылкаФайлов();
ПараметрыГиперссылки.Размещение = "КоманднаяПанель";
РаботаСФайлами.ПриСозданииНаСервере(ЭтотОбъект, ПараметрыГиперссылки);
// Конец СтандартныеПодсистемы.РаботаСФайлами

В процедуру «ПриОткрытии» модуля формы документа, добавляем код:

// СтандартныеПодсистемы.РаботаСФайлами
РаботаСФайламиКлиент.ПриОткрытии(ЭтотОбъект, Отказ);
// Конец СтандартныеПодсистемы.РаботаСФайлами

Если процедура «ОбработкаОповещения» модуля формы документа, в вашем случае отсутствует, ее необходимо добавить и внести код:

// СтандартныеПодсистемы.РаботаСФайлами
РаботаСФайламиКлиент.ОбработкаОповещения(ЭтотОбъект, ИмяСобытия);
// Конец СтандартныеПодсистемы.РаботаСФайлами

В модуль формы документы, добавляем процедуры:

// СтандартныеПодсистемы.РаботаСФайлами
&НаКлиенте
Процедура Подключаемый_ПолеПредпросмотраНажатие(Элемент, СтандартнаяОбработка)
    РаботаСФайламиКлиент.ПолеПредпросмотраНажатие(ЭтотОбъект, Элемент, СтандартнаяОбработка);
КонецПроцедуры
&НаКлиенте
Процедура Подключаемый_ПолеПредпросмотраПеретаскивание(Элемент, ПараметрыПеретаскивания, СтандартнаяОбработка)
    РаботаСФайламиКлиент.ПолеПредпросмотраПеретаскивание(ЭтотОбъект, Элемент,
                ПараметрыПеретаскивания, СтандартнаяОбработка);
КонецПроцедуры
&НаКлиенте
Процедура Подключаемый_ПолеПредпросмотраПроверкаПеретаскивания(Элемент, ПараметрыПеретаскивания, СтандартнаяОбработка)
    РаботаСФайламиКлиент.ПолеПредпросмотраПроверкаПеретаскивания(ЭтотОбъект, Элемент,
                ПараметрыПеретаскивания, СтандартнаяОбработка);
КонецПроцедуры
// Конец СтандартныеПодсистемы.РаботаСФайлами

// СтандартныеПодсистемы.РаботаСФайлами
&НаКлиенте
Процедура Подключаемый_КомандаПанелиПрисоединенныхФайлов(Команда)
    РаботаСФайламиКлиент.КомандаУправленияПрисоединеннымиФайлами(ЭтотОбъект, Команда);
КонецПроцедуры
// Конец СтандартныеПодсистемы.РаботаСФайлами

Запускаем пользовательский режим и проверяем работу подсистемы.
РезультатВнедрения

По примеру, вы сможете выполнить, внедрение «Библиотеки стандартных подсистем», как частично по подсистемам, так полностью. Вся необходимая информация содержится на ИТС: https://its.1c.ru/db/bsp312doc В качестве примера внедрения, смотрите как сделано в демонстрационной базе «Библиотеки стандартных подсистем».

Добавить комментарий

Ваш адрес email не будет опубликован. Обязательные поля помечены *