Разработка современной конфигурации на платформе 1С:Предприятие 8.3 с нуля — это задача, требующая не столько творческого полета фантазии в кодировании базовых механизмов, сколько строгого соблюдения технологических стандартов. Фирма «1С» предлагает для этих целей мощнейший каркас — Библиотеку стандартных подсистем (БСП). БСП берет на себя рутинные задачи: управление пользователями, ведение истории изменений (версионирование), работу с присоединенными файлами, отправку почты, администрирование и многое другое.
Однако начинающие разработчики часто сталкиваются с проблемой: по БСП нет классических учебников со сквозным примером разработки «от и до», похожих на популярные книги М. Г. Радченко или Е. Хрусталевой. Выясним, почему так сложилось, как правильно подойти к изучению библиотеки стандартных подсистем и какие инструменты помогут быстро освоить эту технологию.
Основная причина отсутствия печатных изданий со сквозными примерами — высокая скорость изменения библиотеки. БСП непрерывно развивается вслед за развитием платформы «1С:Предприятие». В каждой новой версии появляются новые механизмы (например, использование системы серверных оповещений, новые методы работы с фоновыми заданиями), а старые объявляются устаревшими (deprecated) или удаляются. Книга, напечатанная в типографии, устарела бы еще на этапе предпечатной подготовки.
БСП — это не статичная библиотека функций, а динамично развивающееся ядро семейства типовых решений. Поэтому главным и самым актуальным источником информации всегда остается электронная документация на портале 1С:ИТС.
Для успешного старта нам понадобятся три главных инструмента, которые рекомендуют опытные разработчики:
Проанализируем важную особенность БСП, о которой предупреждают практикующие разработчики. БСП не обладает абсолютной обратной совместимостью между мажорными релизами. Разработчики библиотеки могут переписать логику работы или полностью перекроить состав модулей в угоду оптимизации и новым возможностям платформы.
Поэтому при проектировании собственной конфигурации с нуля важно придерживаться следующих правил:
Переопределяемый).Рассмотрим, как правильно начать создание собственной «самописки» с использованием БСП:
Прежде чем переносить объекты в свою новую конфигурацию, определитесь, какие именно функции вам нужны. БСП состоит из множества подсистем, но далеко не все они обязательны. Обязательными (базовыми) являются лишь несколько подсистем, без которых библиотека в принципе не запустится (например, БазоваяФункциональность, ОбновлениеИнформационнойБазы, Пользователи). Остальные подсистемы (такие как Печать, Свойства, Файлы, АдресныйКлассификатор) вы можете подключать выборочно, по мере необходимости.
Для первого слияния крайне рекомендуется использовать специализированный инструмент, поставляемый вместе с библиотекой, — обработку ПервоеВнедрениеБСП.epf (ее можно найти в каталоге шаблонов установленной БСП). Эта обработка помогает автоматически составить список необходимых подсистем, проверяет их взаимные зависимости и значительно облегчает процесс первого объединения конфигураций в конфигураторе, автоматически расставляя нужные «галочки» у объектов метаданных.
После объединения конфигураций ваша база не заработает сразу. Архитектура БСП построена на жестких «контрактах». Вам необходимо зайти в общие переопределяемые модули вашей конфигурации и прописать в них базовые настройки.
Например, в модуле ОбновлениеИнформационнойБазыПереопределяемый необходимо указать имя вашей конфигурации и версию, чтобы запустился механизм начального заполнения данных. Проанализируем пример кода, который требуется настроить в этом модуле:
Процедура ПриДобавленииПодсистем(ОписаниеПодсистем) Экспорт
// Описание самой конфигурации
Сведения = ОписаниеПодсистем.Добавить();
Сведения.Имя = "МояСамописнаяКонфигурация";
Сведения.Версия = "1.0.0.1";
КонецПроцедуры
Также вам потребуется внедрить стандартные вызовы БСП в формы ваших справочников и документов. Например, для работы механизма блокировки редактирования реквизитов формы, в процедуре ПриСозданииНаСервере модуля формы вашего документа необходимо вызвать соответствующее API БСП:
&НаСервере
Процедура ПриСозданииНаСервере(Отказ, СтандартнаяОбработка)
// Стандартный вызов БСП для настройки прав и блокировки реквизитов
Если ОбщегоНазначения.ПодсистемаСуществует("СтандартныеПодсистемы.НастройкаПорядкаОкругления") Тогда
// Здесь может быть вызов специфичного API подсистемы
КонецЕсли;
// Подключение механизма версионирования или дополнительных реквизитов
// через вызов переопределяемых модулей БСП
КонецПроцедуры
Огромная ценность БСП для разработчика «самописок» заключается в наличии сотен готовых, высокооптимизированных функций общего назначения. Проанализируем самые популярные общие модули, методы которых стоит изучить в первую очередь:
ОбщегоНазначения и ОбщегоНазначенияКлиентСервер. Содержат удобные инструменты для работы со структурами, массивами, проверками типов и реквизитов объектов. Например, вместо написания громоздких запросов для проверки наличия реквизита у ссылки, можно использовать лаконичную функцию ОбщегоНазначения.ЗначениеРеквизитаОбъекта().ДлительныеОперации. Позволяет легко переводить любые тяжелые расчеты (например, проведение сложных документов или формирование тяжелых отчетов) в фоновый режим, предоставляя пользователю красивый индикатор загрузки и не блокируя интерфейс программы.СтроковыеФункцииКлиентСервер. Содержит массу полезных методов для разбора строк, замены подстрок, склонения и форматирования текстов.Перед тем как начать писать собственный алгоритм для рутинной задачи, обязательно загляните в глобальный поиск по конфигурации демо-базы БСП или изучите экспортные методы общих модулей общего назначения. С высокой долей вероятности безопасное, быстрое и протестированное решение уже написано за вас разработчиками фирмы «1С».
Поскольку классических книг по БСП нет, а самостоятельное изучение по демо-базе требует высокой концентрации и опыта, хорошей альтернативой могут стать специализированные курсы от учебных центров «1С»:
Подводя итог, можно сказать: БСП — это мощный стандарт индустрии разработки на платформе «1С». Освоение этого инструмента откроет перед вами двери к созданию по-настоящему профессиональных решений, которые будут легко обновляться, поддерживать расширения и соответствовать всем стандартам качества фирмы «1С».