Через служебный вход: какие вызовы БСП проверить перед обновлением 1С

28.10.26

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

Выписала из выгрузки УТ 11.5 договор БСП 3.1.11.202: 10 003 экспортных метода, из них программный интерфейс 2 839, устаревших 236. Сама УТ вызывает служебный интерфейс БСП 727 раз, устаревший 3 068. В контрольном расширении с 17 рискованными вызовами проверка модулей платформы 8.3.27 нашла 3, инструмент 17 из 17 и 14 из 14 вслепую. Инструмент с 78 тестами и список устаревших методов (замены извлечены у 172 из 236) прилагаются.

Файлы

ВНИМАНИЕ: Файлы из Базы знаний - это исходный код разработки. Это примеры решения задач, шаблоны, заготовки, "строительные материалы" для учетной системы. Файлы ориентированы на специалистов 1С, которые могут разобраться в коде и оптимизировать программу для запуска в базе данных. Гарантии работоспособности нет. Возврата нет. Технической поддержки нет.

Наименование Скачано Купить файл
bsp_contract.py: договор релиза БСП по выгрузке, проверка доработки по договору и сравнение релизов (78 тестов)
.zip 26,57Kb
0 5 000 руб. Купить
Материалы к статье: устаревшие методы БСП 3.1.11.202 (замены у 172 из 236), отчёты прогонов, чек-лист перед обновлением и расширенная PDF-версия статьи
.zip 535,85Kb
0 2 500 руб. Купить

Подписка PRO — скачивайте любые файлы со скидкой до 85% из Базы знаний

Оформите подписку на компанию для решения рабочих задач

Оформить подписку и скачать решение со скидкой

Вы можете заказать платную доработку или адаптацию этой разработки под вашу конфигурацию на «Бирже заказов».

  • 0% комиссии — оплата напрямую исполнителю;
  • Исполнители любого масштаба — от отдельных специалистов до команд под проект;
  • Прямой обмен контактами между заказчиком и исполнителем;
  • Безопасная сделка — при необходимости;
  • Рейтинги, кейсы и прозрачная система откликов.
Разработка 1С
О чём это (в трёх тезисах)
1.БСП 3.1.11.202 в УТ 11.5 экспортирует 10 003 метода. Из них 2 839 отнесены к действующему программному интерфейсу, 6 928 — к служебным областям, 236 — к устаревшим.
2.Собственный код УТ 11.5 вызывает служебный интерфейс БСП 727 раз, а устаревшие методы 3 068 раз, из них 2 053 вызова приходятся на один метод.
3.В контрольном расширении с 17 рискованными вызовами проверка модулей платформы нашла 3: вызовы несуществующих и неэкспортного метода. Неверное число аргументов, служебные и устаревшие вызовы и перехваты методов БСП она не показала. Инструмент нашёл 17 из 17, а на слепом наборе 14 из 14.
Протокол проверки
Что проверялосьИнструмент bsp_contract.py: договор релиза БСП по выгрузке (contract), проверка доработки по договору (check), сравнение двух договоров (diff). Проверки модулей и конфигурации платформы на том же расширении.
Где и когда27.10.2026, Windows 11 Pro, Intel Core i5-2400, 7,9 ГБ ОЗУ, SATA SSD; 1С:Предприятие 8.3.27.2130 x86; выгрузка УТ 11.5.22.77 с БСП 3.1.11.202 и копия её демобазы; Python 3.12.10.
КакДоговор построен по выгрузке, 10 методов сопоставлены с текстом модулей агентом. check на всём коде УТ 11.5, не относящемся к БСП, 20 находок разобраны агентом Haiku по текстам модулей, пять повторно проверены ведущим агентом. Контрольное расширение BspDirty (17 дефектов и ловушки, список записан до прогона) загружено в копию демобазы и проверено платформой. Слепой набор BspBlind на 14 дефектов собран отдельно, список запечатан до прогона. Синтетический релиз: копия БСП с пятью правками, записанными заранее.
РезультатПлатформа нашла 3 из 17, инструмент 17 из 17 и 14 из 14 вслепую, ни одна ловушка не сработала. diff нашёл все 5 правок синтетического релиза.
 
Суть статьи

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

Ключевые идеи
  • Область модуля, в которой лежит метод БСП, и есть его статус: ПрограммныйИнтерфейс, СлужебныйПрограммныйИнтерфейс или СлужебныеПроцедурыИФункции. Устаревшие методы лежат во вложенной области УстаревшиеПроцедурыИФункции внутри программного интерфейса.
  • Даже код самой УТ 11.5 вызывает 352 разных служебных метода БСП и 60 устаревших.
  • /CheckModules -ExtendedModulesCheck нашла вызовы несуществующих и неэкспортного метода, но пропустила вызов с лишним аргументом и вызовы без обязательных.
  • Перехват метода БСП &ИзменениеИКонтроль инструмент сверяет с текущим телом оригинала и показывает, если копия разошлась.
  • В архиве инструмента три команды, README и 78 тестов; в архиве к статье список 236 устаревших методов БСП 3.1.11.202, с извлечёнными заменами у 172, отчёты всех прогонов, чек-лист и расширенная PDF-версия статьи.
Главная мысль

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

Для кого: разработчики 1С, которые дорабатывают типовые конфигурации на БСП или продают расширения к ним и обновляют их вслед за релизами типовой.

Доработка типовой или расширение на продажу вызывает методы БСП. После обновления типовой часть таких вызовов перестаёт работать: метод удалили, он ушёл в служебные, у него появился обязательный параметр, а перехваченное тело изменилось. Я выписала из выгрузки УТ 11.5 «договор» БСП 3.1.11.202, то есть какие методы она объявляет программным интерфейсом, какие служебными и какие устаревшими, и проверила по нему доработки: собственный код УТ, контрольное расширение с заложенными дефектами, слепой набор и синтетический новый релиз. Через проверки платформы прогнала контрольное расширение BspDirty.

Стенд

Условие Значение
Платформа 1С:Предприятие 8.3.27.2130 x86, пакетный Конфигуратор, файловая копия демобазы УТ 11.5.22.77
Выгрузка УТ 11.5.22.77: 12 290 модулей, из них 2 128 относятся к БСП
БСП 3.1.11.202 (Описание.Версия в модуле ОбновлениеИнформационнойБазыБСП)
Доработки контрольное расширение BspDirty (17 дефектов, 7 ловушек), слепой набор BspBlind (14 дефектов, 4 ловушки), 21 каталог наших комплектов с исходниками BSL
Инструмент bsp_contract.py, Python 3.12.10, только стандартная библиотека
Компьютер Windows 11 Pro, Intel Core i5-2400, 7,9 ГБ ОЗУ, SATA SSD

Второго релиза БСП на стенде нет. Поэтому сравнение релизов я проверяла на синтетическом: копии БСП с пятью правками, которые обычно приносит обновление. Это оговорено в каждом месте, где речь о сравнении.

Как БСП объявляет свой интерфейс

Сначала я проверила по текстам модулей, как устроена разметка. В общих модулях БСП три верхние области:

Область В скольких модулях Что значит
ПрограммныйИнтерфейс 297 методы для вызова из конфигурации и доработок
СлужебныйПрограммныйИнтерфейс 238 методы для вызова из других подсистем БСП
СлужебныеПроцедурыИФункции 391 внутренняя реализация модуля, в том числе экспортные методы

Экспортных методов вне этих областей нет. Устаревшие методы лежат во вложенной области УстаревшиеПроцедурыИФункции внутри программного интерфейса. У 211 из них стоит и область, и слово «Устарела.» в комментарии, у 24 только область, у одного только комментарий. Замену словами «Следует использовать ...» указали у 172 устаревших методов из 236, у остальных 64 формулировка другая или замены нет.

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

Договор БСП 3.1.11.202

Команда contract собирает из выгрузки договор релиза: для каждого общего модуля БСП его экспортные методы с видом, параметрами (сколько всего, сколько обязательных), областью, отметкой «устарел», заменой из комментария и контрольной суммой тела. Тела методов в договор не попадают.

Bash UTF-8
1
python bsp_contract.py contract <выгрузка> --out contract.json

contract на выгрузке УТ 11.5: сводка договора БСП 3.1.11.202
contract на выгрузке УТ 11.5: сводка договора БСП 3.1.11.202

Что в договоре Сколько
Общих модулей БСП 551
Экспортных методов 10 003
из них программный интерфейс 2 839
служебный программный интерфейс 2 817
экспортные в служебных процедурах 4 111
устаревших 236, с указанной заменой 172

Агент сопоставил десять методов разных видов с текстом модулей: вид, параметры, область и замена совпали у всех десяти. Договор на всю УТ 11.5 строится за 9–29 с в зависимости от того, прогрет ли диск.

УТ 11.5 о самой себе

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

Bash UTF-8
1
python bsp_contract.py check <выгрузка доработки> --contract contract.json --out report
Правило Что ищет
C1 вызов служебного интерфейса БСП: метод из СлужебныйПрограммныйИнтерфейс, экспортный метод из служебных процедур или неэкспортный метод
C2 вызов устаревшего метода и замена, если она указана
C3 вызов метода, которого в этом релизе БСП нет, и перехват такого метода
C4 аргументов меньше обязательных или больше, чем параметров
C5 перехват метода БСП расширением; для &ИзменениеИКонтроль сверка копии с текущим телом оригинала

Первым делом я прогнала check на самой УТ 11.5: 10 162 модуля не из БСП, 80 495 вызовов модулей БСП.

Находка Сколько вызовов Разных методов Файлов
C1 служебный интерфейс 727 352 230
C2 устаревшие методы 3 068 60 900
C3, C4, C5 0 – –

Из 3 068 устаревших вызовов 2 053 приходятся на ОбщегоНазначенияКлиентСервер.СообщитьПользователю. Для 2 645 вызовов замена в комментарии указана.

Двадцать находок по разным методам (12 из C1, 8 из C2) разобрал субагент с цитатами из кода, пять из них повторно проверил ведущий агент. По этим разборам все двадцать признаны настоящими; независимой человеческой проверки выборки не было. Первый прогон дал 4 ложные находки C4: в коде УТ обязательный аргумент пропускается запятой, вида ЕстьРеквизитОбъекта(, Метаданные...). Решение считать такой пропуск допустимым основано на наличии вызовов в типовой УТ; отдельного прогона компиляции контрольного вызова не было. Правило исправлено с учётом этой оговорки.

Прогон занимает 215 с на свободной машине и до 444 с, когда параллельно работают другие программы. Наши собственные доработки с исходниками BSL (21 каталог) находок не дали. Зато на них нашлась ложная C3: в «Нано-УТ» есть свой модуль ОтчетыСервер, имя которого совпадает с модулем БСП. Теперь в конфигурации без БСП одноимённый модуль считается своим.

Контрольное расширение: что видит платформа

Расширение BspDirty я собрала на выгрузке УТ 11.5 и записала список заложенного до первого прогона. В нём 17 рискованных вызовов и перехватов, а также ловушки: вызов в комментарии, вызов в строке, правильные вызовы программного интерфейса, пропуск аргумента запятой, локальная переменная с именем модуля БСП, свой модуль с тем же именем метода и обращение через поле структуры.

Расширение загружено в копию демобазы УТ 11.5 и применено (/LoadConfigFromFiles -Extension, /UpdateDBCfg -Extension, оба кода 0). Затем /CheckModules со всеми контекстами и -ExtendedModulesCheck и /CheckConfig с полным набором ключей, обе с -Extension BspDirty.

Заложено Сколько Нашла платформа Нашёл инструмент
Вызов служебного метода (C1) 2 0 2
Вызов неэкспортного метода (C1) 1 1, «Возможно ошибочный метод» 1
Вызов устаревшего метода (C2) 3 0 3
Вызов несуществующего метода (C3) 2 2, «Возможно ошибочный метод» 2
Перехват несуществующего метода (C3) 1 0 1
Лишний аргумент, нет обязательных (C4) 3 0 3
Перехваты методов БСП, одна копия тела разошлась (C5) 5 0 5
Всего 17 3 17

check на расширении BspDirty: 17 находок, код возврата 2
check на расширении BspDirty: 17 находок, код возврата 2

Проверка модулей платформы по BspDirty: три сообщения «Возможно ошибочный метод», код 101
Проверка модулей платформы по BspDirty: три сообщения «Возможно ошибочный метод», код 101

Проверка платформы выдала три диагностических сообщения о вызовах несуществующих и неэкспортного метода. Исполнение этих вызовов в данном опыте не проверялось. Вызов ОбщегоНазначения.ЭтоДокумент(Неопределено, 2) с лишним аргументом и вызовы без обязательных аргументов прошли без сообщений. Служебные и устаревшие вызовы платформа не отличает от остальных по построению: для компилятора это обычные экспортные методы. Ловушки не вызвали ни сообщений платформы, ни находок инструмента.

Перехват несуществующего метода и разошедшуюся копию тела в 27.1 на «Нано-УТ» находила команда /CheckCanApplyConfigurationExtensions. На копии демобазы УТ 11.5 она отвечала «Ошибка формата потока» даже на базе без расширений, с ключом -Extension, без него и с -AllExtensions. Поэтому в таблице её нет.

Слепой набор

Второй набор, BspBlind, собирал отдельный субагент: 14 дефектов по правилам C1–C5 и ловушки, причём формы вызовов он придумывал сам, не читая инструмент. Список он записал в запечатанный файл до прогона. Инструмент нашёл 14 из 14, ловушки не сработали.

Синтетический релиз

Чтобы проверить сравнение релизов, я сделала копию БСП и записала заранее пять правок, какие приносит обновление: удалён метод программного интерфейса, метод перенесён в служебный, добавлен обязательный параметр, метод помечен устаревшим, изменено тело метода, который перехватывает BspDirty. Версию в копии сменила на 3.1.12.1.

Bash UTF-8
1
python bsp_contract.py diff contract.json contract-new.json

diff договоров: удалённый метод, смена интерфейса, новый обязательный параметр, устаревший метод, изменённые тела
diff договоров: удалённый метод, смена интерфейса, новый обязательный параметр, устаревший метод, изменённые тела

diff нашёл все пять правок за 0,6 с. Изменённых тел он показал два: второе – метод с номером версии БСП, который я поменяла вместе с релизом.

Проверка BspDirty против нового договора добавила по одной находке в C2, C3 и C4, перехват D5a теперь указывает на служебный метод, а у копии &ИзменениеИКонтроль, которая раньше совпадала с оригиналом, появилась отметка «тело не совпадает». Ошибок стало 10 вместо 7.

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

Пределы

  • Второго настоящего релиза БСП на стенде нет: diff и проверка доработки против нового релиза испытаны на синтетическом релизе с пятью правками.
  • Вызовы через Выполнить и ОбщегоНазначения.ОбщийМодуль("...") инструмент не видит.
  • Договор охватывает общие модули БСП. Справочники, регистры и формы БСП в нём не описаны.
  • У 64 устаревших методов замена записана в другой форме, и инструмент показывает их без замены.
  • Пропуск обязательного аргумента запятой инструмент считает допустимым, потому что так написан работающий код УТ. Отдельно компиляцией контрольного вызова это не проверялось.
  • Разбор агентами охватил 20 из 3 795 находок по УТ; это не независимая человеческая приёмка.

Что проверить у себя

  1. Выгрузите типовую того релиза, на который переходите: 1cv8.exe DESIGNER /F <база> /DumpConfigToFiles <каталог>. Постройте договор: python bsp_contract.py contract <каталог> --out new.json.
  2. Проверьте доработку по новому договору: python bsp_contract.py check <выгрузка расширения или каталог модулей> --contract new.json. Находки C3 и C4 проверьте по исходникам и исправьте подтверждённые ошибки до обновления: при выполнении таких вызовов возможен сбой.
  3. Если есть договор текущего релиза, сравните: python bsp_contract.py diff old.json new.json. Удалённые методы и новые обязательные параметры совпадут с находками C3 и C4.
  4. Пройдите C5: перехваты методов БСП, особенно &ИзменениеИКонтроль с отметкой «тело не совпадает».
  5. Вызовы C1 и C2 переведите на программный интерфейс и указанные замены, когда будет время: они работают сейчас, но гарантий на следующие релизы у них нет.
  6. После загрузки расширения в обновлённую базу запустите /CheckModules -ExtendedModulesCheck -Extension <имя> и /CheckCanApplyConfigurationExtensions -Extension <имя>.

Файлы к статье

Инструмент bsp-compat-27-3-tool.zip. Проверка доработки перед обновлением БСП: contract строит договор из вашей выгрузки с БСП (проверено на 3.1.11.202; для других релизов нужно сверить состав подсистемы и разметку областей), check проверяет по нему расширение, внешние обработки или всю конфигурацию, diff сравнивает два релиза и перечисляет удалённые методы, смену интерфейса, новые параметры, устаревшие методы и изменённые тела. Отчёт выходит в Markdown и JSON, а ненулевой код возврата при ошибках позволяет поставить проверку в сборку перед обновлением. Внутри README и 78 тестов, платформа 1С для работы не нужна. Распаковывайте Проводником Windows, 7-Zip или Python: unzip из Git Bash портит кириллические имена файлов. Тесты из чистой распаковки:

Bash UTF-8
1
python -I -m unittest discover -s tests

Архив к статье bsp-compat-27-3-companion.zip. Сводка договора БСП 3.1.11.202 и список её 236 устаревших методов, с извлечёнными заменами у 172; отчёты проверки УТ 11.5, BspDirty, слепого набора и проверки против синтетического релиза; таблица «платформа против инструмента»; чек-лист подготовки доработки к обновлению; команды и скрипты стенда; расширенная PDF-версия статьи с полными таблицами.

Итог

БСП сама говорит, на какие методы можно опираться: программный интерфейс лежит в своей области модуля, а служебный и устаревший отделены. По этой разметке договор релиза строится из выгрузки за полминуты, и по нему видно, где доработка рискует при обновлении. Даже код самой УТ 11.5 вызывает служебный интерфейс БСП 727 раз, а устаревший 3 068.

Проверка модулей платформы нашла в контрольном расширении 3 риска из 17, только вызовы того, чего нет или что не экспортировано. Инструмент нашёл 17 из 17 и 14 из 14 на слепом наборе, а сравнение договоров нашло все пять правок синтетического релиза. Порядок перед обновлением: договор нового релиза, проверка доработки, сравнение с текущим релизом, затем загрузка в базу и проверки платформы.

Выводы относятся к одному релизу БСП 3.1.11.202 в УТ 11.5.22.77, синтетическому второму релизу и платформе 8.3.27.2130.

 
Нинель Адольевна Щербакова
Нинель Адольевна Щербакова (Ninel_S)
Архитектор • SRE & DevOps инженер • HighLoad 1С
Автор технических публикаций на Infostart. Разработчик NOPik, SRE-Suite-for-1C и мультиагентных ассистентов для экосистемы 1С:Предприятие.

Вступайте в нашу телеграмм-группу Инфостарт

1С:Предприятие БСП Обновление конфигурации Расширения конфигурации УТ 11 Проверка кода

См. также

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

Синтакс-помощник БСП - cправочник по библиотекам стандартных подсистем и электронных документов. В состав справочника входит описание экспортных процедур и функций, размещенных в областях кода ПрограммныйИнтерфейс БСП и БЭД.

3254 руб.

21.11.2024    14603    51    30    

59

Нейросети Обновление 1С Бесплатно (free)

Когда доработанную 1С не обновляли годами, начинать приходится не с переноса кода, а с разбора того, что вообще накопилось в базе. Там могут быть десятки обработок, расширения, правки типовых объектов, а документации либо нет, либо она давно не актуальна. На примере реального обновления разбираем, как кодовые агенты, MCP-серверы и языковые модели помогают навести порядок в доработках, собрать план миграции, понять, где при переносе будут проблемы, и автоматизировать часть исправлений.

05.06.2026    9437    wonderboy    6    

30

БСП (Библиотека стандартных подсистем) Разработчик 1С 8.3 1С:Библиотека стандартных подсистем Бесплатно (free)

Каждый раз, когда разработчик 1С пишет очередной цикл для свертки массива или использует конструкцию Попытка / Исключение для проверки наличия реквизита, где-то грустит один архитектор фирмы «1С». Мы привыкли изобретать велосипеды там, где в Библиотеке стандартных подсистем (БСП) уже давно лежат готовые, оптимизированные и протестированные на тысячах баз решения. Ниже — практическая подборка из 8 методов актуальных релизов БСП (3.X), которые сделают ваш код чище, быстрее и профессиональнее. Разберем на примерах «Было / Стало».

04.06.2026    13932    Kaliostr0    21    

36

Адаптация типовых решений БСП (Библиотека стандартных подсистем) Кадровый учет ЭДО и ОФД 1C:Бухгалтерия 1С:Зарплата и кадры 7.7 1C:ERP 1С:ЗУП 1С:УТ 1С:ДО Платные (руб)

Наше расширение 1С Госключ обеспечивает интеграцию любой конфигурации 1С на базе БСП с мобильным приложением «Госключ», позволяя сотрудникам подписывать кадровые документы (КЭДО) и документы материальной ответственности (МОЛ, ПБ) усиленной электронной подписью прямо со смартфона. Решение автоматизирует формирование и отправку документов на подпись, отслеживает статусы подписания и хранит подписанные файлы непосредственно в базе 1С

25000 руб.

06.03.2026    2758    4    0    

5

БСП (Библиотека стандартных подсистем) Универсальные функции Разработчик 1С 8.3 1С:Библиотека стандартных подсистем Бесплатно (free)

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

06.02.2026    25265    manul1c    7    

29

EDT Обновление 1С Разработчик Бесплатно (free)

На примере рассмотрим одну из стратегий обновления проекта на новый релиз поставщика через 1С:EDT.

19.01.2026    9589    eakomarov    12    

26

БСП (Библиотека стандартных подсистем) Разработчик 1С:Предприятие 8 1С:Библиотека стандартных подсистем Бесплатно (free)

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

16.09.2025    9921    _seerco2002    0    

36

DevOps и автоматизация разработки Обновление 1С Системный администратор Разработчик 1С:Предприятие 8 1С:ERP Управление предприятием 2 1С:Управление холдингом Абонемент ($m)

Продолжаем делиться опытом ICL SOFT – в этой статье рассказываем о сложном обновлении сильно доработанной конфигурации "1С:ERP Управление холдингом с версии 3.1.8.15" до актуальной версии редакции 3.2. Публикации о сложных обновлениях, которые можно найти в открытых источниках, содержат мало подробной информации об использованных инструментах и решениях. Часто в них отсутствует информация о том, что находится под капотом этих решений. Будем рады, если наша статья окажется полезной

1 стартмани

01.07.2025    8005    vladimir_iclsoft    1    

25
Для отправки сообщения требуется регистрация/авторизация