Расширение для создания собственных подсистем БСП

Публикация № 1322665 20.11.20

Разработка - БСП (Библиотека стандартных подсистем)

Подключаемые подсистемы своя подсистема БСП Обновление версии ИБ Описание изменений системы описание расширение в расширении

В этой статье поделюсь некоторыми изысканиями о внутреннем устройстве стандартной подсистемы "Обновление версии ИБ" и расскажу, как разработать свою подсистему, в которой будет работать отчёт с описанием изменений.

Стандартная подсистема "Обновление версии ИБ"

Вы наверняка видели подобный отчёт, который появляется в типовых конфигурациях после каждого обновления релиза.

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

Что потребуется сделать, чтобы подключить свою подсистему?

Настроить общие модули

  • Создать общий модуль, аналог ОбновлениеИнформационнойБазы (можно скопировать его из демо БСП как основу)
  • Переписать под себя процедуру ПриДобавленииПодсистемы()
  • Добавить имя модуля в массив в процедуре ПодсистемыКонфигурацииПереопределяемый.ПриДобавленииПодсистем().

После этого БСП уже будет знать о вашей подсистеме.

Некоторые нюансы

Версионирование подсистемы необходимо вести по общим стандартам 1С: четыре числа, разделенные точками.

Обработчики обновления. В процедуре ПриДобавленииОбработчиковОбновления() можно прописывать обработчики для своей подсистемы по общим правилам. Правда, для их запуска просто обновления и запуска ИБ теперь будет недостаточно, придётся запустить режим 1С: Предприятие с ключом ЗапуститьОбновлениеИнформационнойБазы. По умолчанию, при увеличении версии, обработчики обновления запускаются только для основной конфигурации.

Подключить описание изменений

В общем модуле ОбновлениеИнформационнойБазыХхх есть обработчик ПриПодготовкеМакетаОписанияОбновлений(), который предназначен для доопределения макета с описанием изменений для новых версий (да, я капитан очевидность :)). Однако, примеров его реализации вы не найдёте ни в демо БСП, ни в каком-либо типовом решении.

За примером обратимся к алгоритму формирования макета для основной конфигурации. Главная часть процедуры лежит в общей форме ОписаниеИзмененийПрограммы, в процедуре ПриСозданииНаСервере(). В качестве вспомогательных процедур и функций используются, в основном, методы общего модуля ОбновлениеИнформационнойБазыСлужебный. Если взять нужный кусок кода и немного допилить под себя, то получится примерно следующее (сопутствующие процедуры и функции см. в ОбновлениеИнформационнойБазыСлужебный, их также частично подгоняем под нашу подсистему, чтобы не трогать объекты поставщика):

 
 Реализация обработчика формирования макета описания изменений

Но и этого будет недостаточно. Чтобы система поняла, что отчёт выводить нужно, требуется установить в Истина флаг ПоказатьОписаниеИзмененийСистемы в структуре параметров, которая заполняется в процедуре ОбщегоНазначенияПереопределяемый.ПриДобавленииПараметровРаботыКлиентаПриЗапуске(), выглядеть это будет примерно так:

 
 Определение необходимости выводить макет с описанием изменений

Расширение "Подключаемые подсистемы"

Описание

Наименование: "Подключаемые подсистемы"

Формат поставки: файл расширения (*.cfe)

Разработано на платформе: 8.3.15.2107

Режим совместимости по умолчанию: 8.3.14

 

Расширение "Подключаемые подсистемы" предназначено для использования в качестве "каркаса" при разработке собственных подсистем. Поддерживается следующий функционал стандартных подсистем:

  • Версионирование подсистемы
  • Использование обработчиков обновления при переходе на новую версию (требуется запуск с ключом ЗапуститьОбновлениеИнформационнойБазы)
  • Вывод отчёта с описанием изменений для новых версий

Порядок внедрения

  1. Установить расширение "Подключаемые подсистемы"
  2. Создать базовые объекты для новой подсистемы. Здесь возможны три варианта действий:
    1. Использовать готовый шаблон из комплекта поставки. Для этого достаточно установить второе расширение "Новая подсистема" и поменять на своё название "новая подсистема" в модулях;
    2. Создать расширение самостоятельно. В новом расширении следует предусмотреть следующие объекты:
      1. Общий модуль - аналог ОбновлениеИнформационнойБазы. Первично код можно скопировать из общего модуля пп_ОбновлениеИнформационнойБазы "Подключаемых подсистем";
      2. Заимствуем из основной конфигурации процедуры ОбщегоНазначенияПереопределяемый.ПриДобавленииПараметровРаботыКлиентаПриЗапуске() и ПодсистемыКонфигурацииПереопределяемый.ПриДобавленииПодсисте() и реализуем их содержание, руководствуясь примером;
      3. Общий макет - аналог ОписаниеИзмененийПодсистемы. Требуется, если описание будет поддерживаться в отдельном макете. Если же описания всех ваших подсистем будет содержаться в одном общем макете пп_ОписаниеИзмененийПодсистемы, тогда для каждой их них в параметре ПрефиксИменОбластейМакета (см. следующий пункт) нужно указать персональные префиксы, которыми будут отличаться имена областей "ШапкаРР_ПП_ВВ_СС" и "ВерсияРР_ПП_ВВ_СС" в макете описания. 
    3. Реализовать всё в одном расширении. Тогда в расширении "Подключаемые подсистемы" добавляем все объекты, перечисленные в предыдущем пункте, либо путем сравнения/объединения добавляем их из шаблона "Новая подсистема".
  3. Заполнить описание своей подсистемы в функциях Версия() и ПараметрыПодсистемы(). Пример реализации:
 
 Пример реализации функции, возвращающих описание подсистемы

Описание параметров можно посмотреть в комментарии к функции.

В ходе эксплуатации

При выпуске каждой новой версии подсистемы, которую вы поддерживается, следует внести следующие изменения в общие объекты:

  • Поменять номер версии в функции Версия() общего модуля ОбновлениеИнформационнойБазыХхх;
  • Добавить новые области "ШапкаРР_ПП_ВВ_СС" и "ВерсияРР_ПП_ВВ_СС" (или с префиксами "префШапкаРР_ПП_ВВ_СС" и "префВерсияРР_ПП_ВВ_СС") и заполнить их;
  • При необходимости, добавить описание обработчиков обновления в процедуре ПриДобавленииОбработчиковОбновления().

Скачать файлы

Наименование Файл Версия Размер
Расширение "Подключаемые подсистемы" для 8.3.15 и выше

.cfe 31,26Kb
11
.cfe 1.0.1.3 31,26Kb 11 Скачать
Расширение-шаблон для новой подсистемы

.cfe 13,56Kb
9
.cfe 1.0.0.1 13,56Kb 9 Скачать

Специальные предложения

Комментарии
В избранное Подписаться на ответы Сортировка: Древо развёрнутое
Свернуть все
1. dhurricane 21.11.20 13:29 Сейчас в теме
Чтобы обновление стартовала при запуске приложения без указания ключа "ЗапуститьОбновлениеИнформационнойБазы", можно поступить так:

1. Добавить в модуль своей подсистемы (ОбновлениеИнформационнойБазыХХХ) экспортный метод:
// Проверить необходимость обновления информационной базы при смене версии подсистемы.
//
Функция НеобходимоОбновлениеИнформационнойБазы() Экспорт
	
	ОписаниеПодсистемы = Новый Структура;
	ОписаниеПодсистемы.Вставить("Имя");
	ОписаниеПодсистемы.Вставить("Версия");
	ОписаниеПодсистемы.Вставить("ИдентификаторИнтернетПоддержки");
	ОписаниеПодсистемы.Вставить("ТребуемыеПодсистемы", Новый Массив);
	ОписаниеПодсистемы.Вставить("РежимВыполненияОтложенныхОбработчиков");
	
	ПриДобавленииПодсистемы(ОписаниеПодсистемы);
	
	Если ОбновлениеИнформационнойБазыСлужебный.НеобходимоВыполнитьОбновление(
			ОписаниеПодсистемы.Версия, ОбновлениеИнформационнойБазыСлужебный.ВерсияИБ(ОписаниеПодсистемы.Имя)) Тогда
		Возврат Истина;
	КонецЕсли;
	
	Возврат Ложь;
	
КонецФункции
Показать

2. Расширить типовой метод "НеобходимоОбновлениеИнформационнойБазы" общего модуля "ОбновлениеИнформационнойБазыСлужебныйПовтИсп" следующим образом:
&Вместо("НеобходимоОбновлениеИнформационнойБазы")
Функция Расш1_НеобходимоОбновлениеИнформационнойБазы() Экспорт
	
	Возврат ОбновлениеИнформационнойБазыХХХ.НеобходимоОбновлениеИнформационнойБазы()
		Или ПродолжитьВызов();
	
КонецФункции
VKislitsin; alevnev; stas_ganiev; JohnyDeath; Cmapnep; +5 Ответить
2. sytkosa 119 21.11.20 18:48 Сейчас в теме
((0) Без кода из комментарии (0) картинка не полная. Автор выпустите обновление
stas_ganiev; Cmapnep; +2 Ответить
3. stas_ganiev 1522 23.11.20 01:11 Сейчас в теме
(1)
(2)
Спасибо за совет! Коррективы внесу в ближайшее время, вместе с выходом следующей версии ))
4. sergvagner2018 02.12.20 15:44 Сейчас в теме
(0) Полезно. Положил в избранное
Оставьте свое сообщение

См. также

Markdown-editor в 1С (с сохранением в HTML) Промо

Универсальные обработки Прочие инструменты разработчика v8::УФ 1cv8.cf Абонемент ($m)

В этой обработке вы пишете свой текст, используя синтаксис Markdown, а на выходе получаете чистый HTML-код, избавленный от JS-библиотеки, которая его сформировала. Совместим с Webkit и IE.

1 стартмани

04.07.2019    12242    18    riposte    6    

Конструктор запросов для пользователей

Универсальные обработки Прочие инструменты разработчика v8 v8::УФ v8::Запросы v8::СКД 1cv8.cf Россия Абонемент ($m)

Конструктор запросов на языке 1С 8.3 (УФ) совместно с СКД, ориентированный для пользователей и бизнес аналитиков BI систем, доступный и понятный, результатом является текст запроса.  

10 стартмани

19.10.2021    438    2    serovmsk    0    

Интеграция с Веб сервисом ГИИС ДМДК

БСП (Библиотека стандартных подсистем) WEB v8 Ювелирная промышленность и торговля Россия Абонемент ($m)

Пример интеграции с Веб сервисом Государственной интегрированной информационной системе в сфере контроля за оборотом драгоценных металлов, драгоценных камней и изделий из них на всех этапах этого оборота (ГИИС ДМДК) на базе демонстрационной базы БСП 3.15.

3 стартмани

27.09.2021    686    10    Scorpion1_77    10    

Табличная часть как поле ввода

Практика программирования Прочие инструменты разработчика v8 Абонемент ($m)

Табличная часть как поле ввода с программным добавлением строк.

1 стартмани

20.09.2021    2694    4    harchenko_pavel    87    

FormCodeGenerator Программная доработка форм. Часть 2 (Режим работы "Режим сравнения форм") на примере ERP 2.5 Промо

Практика программирования Адаптация типовых решений Прочие инструменты разработчика v8 1cv8.cf Абонемент ($m)

Данная публикация является продолжением описания функционирования обработки "FormCodeGenerator " в режиме сравнения форм и генерирования кода на основании сравнения. Подходит для перевода уже доработанных форм с интерактивной доработки на программную. Данный режим работы обработки снизит издержки при дальнейших обновлениях конфигураций.

5 стартмани

21.12.2020    9533    27    huxuxuya    11    

Система управления IT проектами (встроенный редактор кода, контроль версий, заметки и др.) (поддерживается: Python)

Управление проектом Автоматизация ИТ-компании Прочие инструменты разработчика v8 ИТ-компания Абонемент ($m)

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

1 стартмани

17.09.2021    751    0    Nabi    0    

Чтение CSV файла с многострочным текстом

Прочие инструменты разработчика Практика программирования v8 1cv8.cf Россия Абонемент ($m)

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

1 стартмани

14.09.2021    602    0    milolan    2    

Выгрузка измененных внешних обработок (за день)

Универсальные обработки Git (GitHub, GitLab, BitBucket) Прочие инструменты разработчика v8 8.3.14 1cv8.cf УТ10 УПП1 Абонемент ($m)

Выгрузка новых и измененных внешних обработок и отчетов за любой выбранный день: только одного или нескольких видов; разные папки или в все в одну; с добавлением кода в название файла или нет; только новые и измененные за один день или все. Полезна для версионирования.

1 стартмани

11.08.2021    1087    3    Serg O.    3    

Работа с релизами 1С и договорами ИТС Промо

WEB БСП (Библиотека стандартных подсистем) v8 1cv8.cf Абонемент ($m)

Работа с релизами 1С и партнерским кабинетом.

2 стартмани

15.08.2019    20904    61    RocKeR_13    37    

Универсальная отладка внешней обработки заполнения (типовые механизмы, без внешних файлов, расширений или вызова внешних файлов)

Обработка документов Практика программирования Прочие инструменты разработчика v8 ERP2 УУ Абонемент ($m)

Универсальная отладка внешней обработки заполнения табличной части документа (типовые механизмы, без внешних файлов, расширений или вызова внешних файлов). В обработке продемонстрирован универсальный подход, который позволяет делать отладку любой обработки заполнения табличной части документа. В обработке можно и нужно использовать типовой код формы документа с небольшими изменениями (для возможности отладки кода обработки).

1 стартмани

10.08.2021    1439    4    pvlunegov    0    

Разбор сайтов с применением Chrome devtools. Примеры от kuzkov.info

Практика программирования WEB Прочие инструменты разработчика v8 1cv8.cf Абонемент ($m)

Пример обработки-шаблона для веб-разбора сайтов с применением chrome devtools через веб-гнезда. Рассмотрение практического случая веб-разбора данных сайта с цитатами Пушкина. Плюсы применения обозревателя для веб-разбора перед получением и разбором голой строки html, полученной get запросом.

1 стартмани

06.08.2021    1686    1    Steelvan    6    

Обмен по правилам Конвертации данных 2.1 для ERP, КА, УТ 11, БП 3, ЗУП 3

БСП (Библиотека стандартных подсистем) Перенос данных из 1C8 в 1C8 v8 ERP2 БП3.0 УТ11 КА2 ЗУП3.x Абонемент ($m)

Расширение добавляет возможность без снятия с "замка" обмениваться с любыми конфигурациями 1С по правилам конвертации данных 2.1.

5 стартмани

02.07.2021    2734    18    EvgeTrofi    14    

Настройка прав пользователей. БСП. Профиль доступа. Три клика. Промо

Информационная безопасность Сервисные утилиты БСП (Библиотека стандартных подсистем) v8 Розница УНФ БП3.0 УТ11 ЗУП3.x Абонемент ($m)

Простое и наглядное формирование профиля доступа с расширенными правами "EXPERT". Сопоставление ролей профилей конфигурации. Просмотр прав ролей. Управляемое приложение.

1 стартмани

06.03.2013    144776    1729    StepByStep    87    

Расширение, реализующее загрузку адресного классификатора с сайта fias.nalog.ru.

Классификаторы БСП (Библиотека стандартных подсистем) v8 1cv8.cf Абонемент ($m)

Расширение, модифицирующее в основном общий модуль АдресныйКлассификаторСлужебный, позволяющее получать и обрабатывать файлы ФИАС.

3 стартмани

22.06.2021    1283    1    RomanCrow13    1    

Шаблон внешней обработки для ввода на основании

БСП (Библиотека стандартных подсистем) Практика программирования v8 1cv8.cf Абонемент ($m)

Данная обработка может являться шаблоном для организации  собственного "ввода на основании".

2 стартмани

07.06.2021    1280    6    Hitcher    0    

Просмотр и редактирование условного оформления открытой формы на БСП

Универсальные обработки БСП (Библиотека стандартных подсистем) v8 1cv8.cf Абонемент ($m)

Иногда требуется посмотреть, какое оформление и по какому условию установлено в открытой форме. Данная обработка через подключенную команду заполнения позволяет посмотреть или изменить текущее условное оформление открытой формы, при условии, что для нее предусмотрены подключаемые команды.

1 стартмани

03.06.2021    1675    6    Foster13    3    

Шаблоны кода (управляемые формы)

Практика программирования Прочие инструменты разработчика v8 v8::УФ 1cv8.cf Абонемент ($m)

Шаблоны кода на управляемых формах.

2 стартмани

22.05.2021    3726    7    Rustig    19    

Рассылка по ошибкам журнала регистрации

Журнал регистрации Email БСП (Библиотека стандартных подсистем) v8 1cv8.cf Абонемент ($m)

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

1 стартмани

26.04.2021    1901    6    wonderboy    0    

Отладка внешних печатных форм, когда не открывается даже временный файл

Универсальные печатные формы Прочие инструменты разработчика v8 1cv8.cf Абонемент ($m)

Отладка с помощью формы обработки, на форме добавляем реквизит Документ, для которого предназначена внешняя обработка. Затем командой вызываем нужный обработчик и отлаживаем в свое удовольствие. Написали и открываем как обычную внешнюю обработку, ставим точку остановки и жмем кнопку команды.

2 стартмани

20.04.2021    2084    5    Miracle180882    0    

Однопальцевое преобразование "одинэсного" запроса в запрос на SQL

Производительность и оптимизация (HighLoad) Прочие инструменты разработчика v8 v8::Запросы 1cv8.cf Абонемент ($m)

Обработка предназначена для преобразования "одинэсных" запросов в запросы на SQL средствами встроенного языка. Разработка не претендует на то, чтобы на 100% повторить то, что разработчики видят при трассировке запросов в инструментах вроде Profiler. Но во многих случаях результат преобразования можно будет без дополнительной ручной обработки выполнить, например, в Managment studio. Актуальные ограничения и проблемы преобразователя описаны в статье. Работает с версией платформы не ниже 8.3.10.

2 стартмани

17.04.2021    3251    8    kser87    12    

Свойства общих модулей

Практика программирования Прочие инструменты разработчика v8 v8::УФ v8::СКД 1cv8.cf Абонемент ($m)

Надоело каждый раз искать, какие общие модули глобальные? какие повторно используемые? хочется взглянуть на все контексты выполнения?

1 стартмани

14.04.2021    2435    4    kuzyara    5    

Управление получателями рассылок отчетов

Email БСП (Библиотека стандартных подсистем) v8 БП3.0 ЗУП3.x Россия Абонемент ($m)

Обработка для быстрого и удобного управления списком получателей рассылок отчетов.

1 стартмани

19.03.2021    1880    6    Rackhanot    2    

DT2CF - Экстрактор конфигурации из дампа информационной базы

Сервисные утилиты Прочие инструменты разработчика v8 Абонемент ($m)

Инструмент для извлечения файла конфигурации из файла резервной копии информационной базы (без использования платформы).

10 стартмани

21.12.2020    4017    6    SerVer1C    5    

FormCodeGenerator Программная доработка форм. Часть 1 (Режим работы "Палитра")

Практика программирования Прочие инструменты разработчика v8 1cv8.cf Абонемент ($m)

Данная публикация является описанием функционирования обработки "FormCodeGenerator " в режиме генерирования кода "на лету", без особых заморочек, данный режим идеально подходит для того что бы запустить, потыкать и забыть :)

1 стартмани

14.12.2020    6047    76    huxuxuya    9    

Работа с сериализатором XDTO

Прочие инструменты разработчика Обмен через XML v8 v8::УФ 1cv8.cf Абонемент ($m)

Отладочное расширение для просмотра объектов, преобразованных в XML, с помощью сериализатора XDTO, а также для выгрузки в xml.

1 стартмани

06.12.2020    3002    1    simon_sidoruk    5    

Быстрый отбор по первой букве в любом списке

Практика программирования Работа с интерфейсом БСП (Библиотека стандартных подсистем) v8 Розница УНФ БГУ ERP2 ЗКГУ3.0 БП3.0 УТ11 КА2 ЗУП3.x Абонемент ($m)

Универсальное расширение, позволяющее моментально включить отбор в любом динамическом списке по первой букве наименования.

2 стартмани

15.11.2020    4280    7    the1    20    

Управление регламентными заданиями. Простое включение и отключение (все конфигурации на базе БСП)

Универсальные обработки БСП (Библиотека стандартных подсистем) v8 1cv8.cf Россия Абонемент ($m)

Внешняя обработка "Управление регламентными заданиями" для любых конфигураций на базе БСП позволяет включать и отключать регламентные задания простым способом.

1 стартмани

12.11.2020    3036    10    demaxim    4    

БСП - рабочие примеры асинхронного запуска функций и процедур

Практика программирования БСП (Библиотека стандартных подсистем) Прочие инструменты разработчика v8 1cv8.cf Абонемент ($m)

В данной публикации я привожу рабочие примеры асинхронного использования функций и процедур конфигурации на БСП

2 стартмани

02.11.2020    7434    21    quazare    2    

Шаблон ВПФ (внешней печатной формы) для вывода в Word

БСП (Библиотека стандартных подсистем) Универсальные печатные формы v8 1cv8.cf Абонемент ($m)

Шаблон для разработки ВПФ для БСП версии 3.1. Основные возможности: 1. Описание требуемых для вывода данных при помощи СКД. 2. Вывод в документ средствами БСП (не используется COM-соединение с word) 3. Реализована форма для тестирования без подключения обработки к БСП и без помещения документа-макета в обработку.

1 стартмани

10.10.2020    4234    12    Gladkov_Anton    4    

Предварительный просмотр PDF с помощью PDF.js на WebKit

БСП (Библиотека стандартных подсистем) Практика программирования v8 v8::УФ 1cv8.cf Абонемент ($m)

Один из вариантов отображение pdf файла в поле формы вида "ПолеHTMLДокумента".

1 стартмани

25.09.2020    7722    32    samvani    15    

Генератор внешних печатных форм

Инструментарий разработчика БСП (Библиотека стандартных подсистем) Консоль запросов Прочие инструменты разработчика Универсальные печатные формы v8 1cv8.cf Абонемент ($m)

Генератор печатных форм - инструмент для создания внешних печатных форм в режиме предприятия с минимальным написанием кода

3 стартмани

18.09.2020    5956    18    andy_zhav    7    

Отладка расчета себестоимости в ERP - просмотр изменений временных таблиц

Практика программирования Прочие инструменты разработчика Закрытие периода v8::БУ ERP2 БУ Абонемент ($m)

Как уследить за изменениями в сотне временных таблиц на различных этапах выполнения расчета себестоимости. Тестировалось на 1С:ERP Агропромышленный комплекс 2 (2.4.12.75)

1 стартмани

09.09.2020    6857    15    doom2good    2    

Визуальный html WYSIWYG редактор без сторонних библиотек на управляемых формах

Прочие инструменты разработчика Работа с интерфейсом v8 v8::УФ 1cv8.cf Абонемент ($m)

Простой и удобный html редактор без сторонних библиотек.

1 стартмани

31.08.2020    7625    11    ivanov660    12