Инструменты Расширенной версии
10 консолидированных инструментов Расширенной версии с параметром action и поддержкой расширений .cfe.
10 консолидированных инструментов, доступных по подписке
В Расширенной версии возможности Открытой объединены в консолидированные инструменты с параметром action (code_read, code_search, code_execute, system). К ним добавлены шесть новых инструментов (code_analyze, code_generate, memory, templates, form_edit и tj_analyze) и новые действия в уже существующих инструментах.
Отдельно от консолидированных инструментов сохранены два инструмента Открытой версии, analyze_subsystems и reload_dump. Они остались самостоятельными под своими именами из Открытой версии, чтобы при переходе на Расширенную клиенту AI не пришлось переучиваться.
Без действующей подписки сервер регистрирует шесть инструментов уровня Открытой версии: code_read, code_search, code_execute, system, analyze_subsystems и reload_dump. Эти возможности бесплатны в Открытой версии, поэтому отсутствующая или истёкшая подписка их не забирает. Остальные шесть, code_analyze, code_generate, memory, templates, form_edit и tj_analyze, требуют действующей подписки уровня Расширенной: пока подписки нет или она истекла, в списке инструментов их нет. Если подписки нет уже на старте, сервер их вовсе не регистрирует, а если она перестала действовать на работающем сервере, он убирает их из списка. После восстановления подписки они появляются снова.
Пометка «по подписке» выше относится к этим шести инструментам, а также к отдельным действиям уровня Расширенной внутри code_read, code_search, code_execute и system: сами эти инструменты регистрируются и без подписки, а часть их действий подписки требует. Пометка «Открытая» у действия означает, что в этом бинаре действие работает без подписки, а не что такой же ответ даёт бесплатный бинарь Открытой версии. Исключение одно: у действия form_structure само действие остаётся общедоступным, а подписки требует его ветвь разбора обычной формы.
code_read
Расширенная
Чтение кода и метаданных 1С
Объединяет инструменты чтения метаданных и кода Открытой версии (get_metadata_tree, get_object_structure, get_form_structure, get_configuration_info) в один инструмент с параметром action и добавляет чтение исходного кода модулей.
Действия:
action: "metadata_tree"Открытая - дерево объектов конфигурации по категориямaction: "object_structure"Открытая - реквизиты, табличные части, измерения, ресурсы и типы полей объектаaction: "form_structure"Открытая - элементы, команды и обработчики формы. Обычная форма (Form.bin) читается из выгрузки и отвечает сform_type: "ordinary", управляемая (Form.xml) сform_type: "managed". Управляемая форма читается без подписки. Обычную форму (Form.bin) разбирают только бинари Расширенной и Профессиональной версий, и для этого нужна действующая подписка уровня Расширенной; без неё ответ приходит отказом с признаком ошибки. В Открытой версииget_form_structureчитает управляемые формы изForm.xml. У элемента обычной формы полеtypeнесёт идентификатор класса, имя класса возвращается вtype_name, а русское имя, которое видно в Конфигураторе, вderived_type_name(v2.40.1)action: "form_view"Расширенная и Профессиональная - схема обычной или управляемой формы в HTML или SVG. Для обычной формы (Form.bin) элементы размещаются по их рамкам; управляемая форма (Form.xml) показывается приблизительно в стиле «Такси», это не снимок экрана из платформы.action: "form_query"Расширенная - статический текст запроса каждого динамического списка формы, под именем того реквизита, которому список принадлежит. Единственный способ получить сам текст:form_structureперечисляет динамические списки, но текста не даёт. Обязательныobject_typeиobject_name; у общей формы вид объекта задаётся какОбщаяФорма/CommonForm, а именем объекта служит имя самой формы; безform_nameвозвращаются списки всех форм объекта. У каждого списка один из пяти статусов:executable(платформа выполняет показанный текст),overridden_in_bsl(текст запроса присваивает модуль формы, поэтому записанный в файле текст платформой не выполняется),not_used(произвольный запрос выключен, платформа строит запрос сама по основной таблице),auto(произвольный запрос выключен и текст не записан),not_checked(ответа нет, а не отсутствие переопределения). Требует--dump(v2.34.0)action: "config_info"Открытая - имя, версия, поставщик, режим совместимости конфигурацииaction: "module_code"Расширенная - исходный код модуля объекта, формы, общего модуля или расширенияaction: "context"Расширенная - сжатые метаданные объекта с кэшированием: связанные объекты, регистры, модули, подписки на событияaction: "resolve"Расширенная - резолв имени или GUID объекта в его модули (doc_id) и формы по индексу выгрузки, мост к действиюmodule_code. Параметрkind:name(по умолчанию) илиguid. Требует--dumpaction: "get_xsd_schema"Расширенная - структурная XSD-схема типа объекта, выведенная из вашей выгрузки (честная граница: это не авторитетная XSD 1С, а структура по образцам дампа). Требует--dump(v2.18.0)action: "verify_xml"Расширенная - структурная проверка XML против схемы, выведенной из выгрузки: состав, вложенность, обязательность и типы листьев. Не заменяет авторитетную XSD-валидацию 1С. Требует--dump(v2.18.0)action: "dossier"Профессиональная - агрегированное досье объекта одним вызовом: структура + где используется + движения по регистрам + связанные объекты (см. карточку dossier)action: "report_structure"Профессиональная - структура схемы компоновки данных (СКД) отчёта из выгрузки: наборы данных, параметры, наблюдаемые поля (см. карточку report_structure) (v2.25.0)action: "report_search"Профессиональная - поиск по схемам компоновки данных всех отчётов выгрузки (см. карточку report_search) (v2.25.0)
form_view
Действие form_view требует выгрузку, заданную через --dump; файл рисунка сохраняется в каталоге артефактов сервера, а не в выгрузке. Обязательны object_type и object_name; для формы объекта задайте form_name, а для общей формы (CommonForm) по умолчанию используется её имя. Параметр base выбирает зарегистрированную базу, если их несколько. Поддерживаются обычные формы объектов, общие формы, формы хранилища настроек и формы критериев отбора.
Параметр format: html (по умолчанию), svg или outline. Формат outline возвращает перечень элементов без рисунка и файла. Для управляемой формы width ограничивает естественную ширину рисунка: по умолчанию 1280 пикселей, 0 снимает ограничение. show_hidden: true включает скрытые элементы; без него показываются видимые элементы.
Для выбора страницы задайте page: имя, номер с нуля или #номер. Без параметра для обычной формы показывается первая страница, а для управляемой - форма при открытии; в группе страниц без закладок по умолчанию выбирается первая видимая страница. Значение page: "*" просит показать страницы вместе: за один ответ рисуется не более 100 страниц, а заметка перечисляет те, что не вошли в рисунок. Скрытые страницы учитываются только при show_hidden: true. Если после отбора не осталось страниц для рисунка, показывается форма при открытии.
Параметр open_in_browser по умолчанию равен false; при true сервер открывает сохранённый файл программой, связанной с его форматом. Включайте его только после просьбы пользователя открыть файл.
code_search
Расширенная
Поиск по коду и справочнику 1С
Объединяет поиск по коду модулей (search_code) и справочник по синтаксису 1С (bsl_syntax_help) в один инструмент с параметром action.
Действия:
action: "text"Открытая - полнотекстовый поиск по коду модулей: режимыsmart(BM25, по умолчанию),regex,exact. Векторные режимыmode: "semantic"иmode: "hybrid"доступны в Профессиональной редакции при запуске с--enable-semanticaction: "syntax_help"Расширенная - справка по функциям и типам платформы из файлов синтакс-помощника (.hbk); поиск понимает русскую морфологию: запрос «работа с датами» находит раздел «Работа с датами и временем»action: "syntax_ref"Расширенная - статический справочник по языку запросов, функциям компоновки данных (СКД) и спецификаторам форматной строки. Работает офлайн, без выгрузки конфигурации и без живой базы. Параметрquery(обязательный): имя конструкции, напримерПОДСТРОКА. Необязательныйdomainсужает область справочника:query(язык запросов),scd(компоновка данных),format(форматная строка) (v2.25.0)action: "semantic"Профессиональная (устарело) - векторный поиск по смыслу. Канонический способ задаётся черезaction: "text"сmode: "semantic"(см. карточку semantic search)
code_execute
Расширенная
Выполнение кода и запросов 1С
Объединяет выполнение запросов (execute_query) и проверку их синтаксиса (validate_query) в один инструмент с параметром action и добавляет выполнение произвольного кода BSL.
Внимание: действие
codeможет изменять данные в базе 1С (инструмент помечен как не доступный только для чтения).
Действия:
action: "query"Открытая - выполнить запросВЫБРАТЬ/SELECTк данным 1С (безопасно для рабочих баз)action: "validate"Открытая - проверка синтаксиса запроса без выполненияaction: "code"Расширенная - выполнить произвольный код BSL в контексте базы 1С (может изменять данные). Для базы, подключённой с флагом--read-only, это действие закрыто (v2.35.0)
system
Расширенная
Системные операции 1С
Объединяет чтение журнала регистрации (get_event_log) и список подключённых баз в один инструмент с параметром action и добавляет управление кэшем расширений.
Действия:
action: "event_log"Открытая - чтение журнала регистрации 1С с фильтрами по дате, уровню важности, пользователю и событию. Требует у пользователя 1С, под которым работает сервер, право «Администрирование»: без него расширение отвечает HTTP 403 и не возвращает ни одной записи. Параметрeventэто массив имён событий, где имя технический идентификатор вроде_$Session$_.Start, а не то, что написано в колонке «Событие» окна журнала регистрации. Пустой список и имя неизвестного события отклоняются с объяснением, а не принимаются молча. Полеtotalсчитает отданные записи, а не все подходящие. На базах, работающих через опрос, отбор, который применить нельзя, тоже отклоняется, а не отбрасывается молча. Ветка расширения, читающаяevent, появилась в 0.7.7, и оговорка в ответе снимается уже на ней: отбор по событию работает начиная с 0.7.7. Это описание поведения v2.38.0: тогда сервер требовал не ниже 0.8.0 и на 0.7.7 при старте писал ошибку о старом расширении, но продолжал работу. В текущей поставке v2.43.1 используются расширения 0.10.1; обновление выполняется по быстрому старту с сохранением данных.action: "list_bases"Открытая - список подключённых баз 1С и их статусaction: "refresh_extensions"Расширенная - принудительно обновить кэш расширений конфигурации (.cfe)
code_analyze
Расширенная
Анализ и проверка кода
Действия:
action: "explain"- глубокий статический анализ кода BSL с 6 анализаторами: сложность, ошибки, стиль, производительность, безопасность, совместимостьaction: "check"- проверка кода BSL на типичные ошибки и антипаттерныaction: "compatibility"- анализ совместимости с версиями платформы 1С, breaking changes, матрица совместимости
Параметр dump_path читает только действие compatibility, которое определяет версию платформы из ConfigDumpInfo.xml. С версии v2.30.0 остальные действия его отклоняют с сообщением «Параметр dump_path не применяется к действию ...: анализ выполняется по выгрузке зарегистрированной базы. Выберите базу параметром base.» Прежде параметр принимался и молча отбрасывался, то есть анализ всё равно шёл по выгрузке зарегистрированной базы, а вызывающая сторона считала, что сузила область поиска. В Профессиональной версии у инструмента десять действий, и отклоняют параметр девять из них, в Расширенной действий три, и отклоняют его два. Пустая строка и null проходят по-прежнему, потому что это не запрос другой области.
В Профессиональной редакции к инструменту добавляются действия dependency_graph, call_hierarchy, arch_boundary, find_modules, graph_query, goto_definition и find_references (см. раздел Профессиональной).
code_generate
Расширенная
Генерация и оптимизация кода
Действия:
action: "query"- генерация запросов 1С по текстовому описанию с учетом структуры конфигурацииaction: "print_form"- генерация кода печатных форм: шапка, табличная часть, итогиaction: "async_convert"- преобразование синхронных вызовов BSL в асинхронныеaction: "optimize_query"- статический анализ запросов на 15 антипаттернов производительности
memory
Расширенная
Долговременная память по базе
Заметки, решения и договорённости, привязанные к конкретной базе 1С. AI-ассистент сам сохраняет важный контекст и поднимает его в следующих сессиях, не теряя нить работы по проекту.
Действия:
action: "remember"- сохранить заметку, привязанную к текущей базеaction: "recall"- найти ранее сохранённые заметки по запросуaction: "forget"- удалить заметку
recall находит заметку, если слово запроса входит в её ключ, текст или метки как часть слова, без учёта регистра: «товар» найдёт «Товары», а «деплоить» не найдёт «деплой». Выше стоят заметки, где совпало больше разных слов. В Профессиональной редакции, запущенной с --enable-semantic, в ответ попадают и заметки, близкие к запросу по TF-IDF с синонимами 1С, и тогда порядок смешивает обе оценки.
templates
Расширенная
Библиотека шаблонов кода и запросов
Курируемая библиотека переиспользуемых фрагментов BSL и запросов 1С, общая для всех баз. Вы пополняете её проверенными решениями, а AI-ассистент подбирает подходящий шаблон по описанию задачи.
Действия:
action: "add"- добавить шаблон в библиотекуaction: "list"- список доступных шаблоновaction: "get"- получить шаблон по идентификаторуaction: "search"- найти шаблон по описанию задачиaction: "remove"- удалить шаблон
search находит шаблон, если слово запроса входит в его имя, описание или тело как часть слова, без учёта регистра. Выше стоят шаблоны, где совпало больше разных слов. В Профессиональной редакции, запущенной с --enable-semantic, в ответ попадают и шаблоны, близкие к запросу по TF-IDF с синонимами 1С, и тогда порядок смешивает обе оценки.
form_edit
Расширенная
Создание и изменение обычных форм
Правит обычную форму (Form.bin) прямо в каталоге выгрузки. Управляемые формы хранятся в Form.xml, и этот инструмент их не трогает.
Правка применяется на месте: исходный файл сохраняется рядом под именем со временем правки, а его путь возвращается в поле backup_path. Запись идёт через временный файл, поэтому оборванный вызов оставляет либо старый файл, либо новый, но не половину. Чтобы посмотреть результат без записи, передайте dry_run: true. Текущую структуру формы смотрите через code_read с action: "form_structure".
Действия:
action: "create_form"- создать форму копией существующей. Первую форму объекта создать нельзя: копировать нечегоaction: "rename_element"- переименовать элемент и ссылки видаЭлементыФормы.Имяв модуле формы. Голые упоминания имени не переписываются: в обычной форме голое имя адресует реквизит формы, а не элементaction: "move_element"- передвинуть элемент и изменить его размер. Рамка задаётся в единицах самой формы, у вложенного элемента отсчёт идёт от контейнераaction: "delete_element"- удалить элемент вместе с вложенными. Модуль не переписывается: код, который обращался к удалённому элементу, остаётся как былaction: "duplicate_element"- добавить элемент копией существующего. Копия ложится ровно на исходный и её нужно подвинуть, а обработчики событий у них общиеaction: "add_element"- добавить элемент класса, которого в форме ещё нет, взяв запись из другой формы той же выгрузки. Вместе с элементом приезжают надпись донора и имена его обработчиков
Обязательные параметры для всех действий: object_type, object_name, form_name.
После правки конфигурацию нужно загрузить в базу самостоятельно, Конфигуратором или через /LoadConfigFromFiles. Пакетная загрузка не проверяет содержимое формы, поэтому убедитесь, что форма открывается в Конфигураторе.
Требует: --dump и действующую подписку уровня Расширенной (v2.40.1)
tj_analyze
Расширенная
Технологический журнал 1С
Разбирает технологический журнал 1С и сводит его по событиям: сколько файлов найдено и прочитано, время первой и последней из записей, у которых оно есть, сколько записей у каждого события (в ответе до 50 самых частых), на какие обращения к СУБД ушло больше всего времени, какие были блокировки и исключения. Инструмент только читает: журнал он не включает, logcfg.xml не пишет и других файлов не создаёт.
Каталог журнала передаётся параметром dir в каждом вызове и открывается на той машине, где работает сервер MCP-1C. В каталоге читаются подкаталоги процессов вида <процесс>_<pid> (например, rphost_1234) и в них файлы ГГММДДЧЧ.log. Записи каталога с другими именами не читаются, и ответ называет их число. Ссылки, которые ведут за пределы dir или имеют абсолютную цель (в том числе junction), и файлы с несколькими именами тоже не читаются: они попадают в список отказов files.refusals с причиной. В ответе этот список показывает первые 50 отказов, а об остальных сказано числом в записке. Параметр base к этому инструменту не применяется, вызов с ним отклоняется.
Инструмент читает оба формата записи журнала, обычный и JSON. В обычном формате доля секунды в метке времени с платформы 8.3.3 пишется шестью знаками, а до неё четырьмя. Длительность в записях из 4 знаков инструмент читает в сотнях микросекунд: единицу он выбирает по доле самой записи, длительность пересчитывает в микросекунды и говорит об этом запиской. Опирается это чтение на две вещи. По списку изменений платформы 8.3.3 до неё свойство Duration содержало длительность в сотнях микросекунд, и поле длительности в строке инструмент читает в тех же единицах. А в опубликованном отрывке такого журнала при этом чтении две записи начинаются ровно через 100 микросекунд после конца записи перед ними, при чтении в микросекундах так не выходит ни у одной. Руководства администратора 8.3.22 и 8.3.24 дают длительность в микросекундах для строки с 6 знаками доли, а пример к этому тексту в них записан с 4 знаками. Разбор записей из 4 знаков проверен на составленных записях и на нескольких опубликованных строках таких журналов, целых журналов этого формата в проверке не было. Формат каждого файла инструмент определяет сам по первым байтам, а в поле dialects называет, какие форматы прочитал. Время записей журнала и границы окна, заданные без часового пояса, читаются в часовом поясе машины, где работает сервер MCP-1C.
Метка времени записи это конец её интервала, длительность отсчитывается от неё назад: по документации платформы строка события пишется при его завершении, кроме события EXCPCNTX. Окно since и until и время первой и последней записи в ответе считаются по этой метке.
Действия:
action: "parse"- свод по всему каталогу: сколько найдено подкаталогов процессов и файлов и сколько прочитано, в каких форматах, время первой и последней из записей, у которых оно есть, сколько записей каждого события (показываются 50 самых частых) и разделы по длительности, блокировкам и исключениям. Какие разделы считать, задаёт параметрclassesсо значениямиperf,lockиerror, по умолчанию считаются все триaction: "perf"- свод по длительности обращений к СУБД и запросов SDBL, события DB2, DBMSSQL, DBORACLE, DBPOSTGRS, DBV8DBEng и SDBL. Параметрmin_duration_usзадаёт нижнюю границу длительности записи в микросекундах. Запросы, которые различаются только литералами, попадают в разные группыaction: "locks"- свод по событиям блокировок TDEADLOCK, TLOCK, TLOCKLITE и TTIMEOUTaction: "errors"- свод по исключениям, события EXCP, EXCPCNTX и QERRaction: "suggest_logcfg"- текстlogcfg.xml, которым журнал включается, и место, куда этот файл кладут (см. ниже)
Ответы perf, locks и errors содержат ту же сводку по файлам и событиям, что и parse, но считают только свой раздел.
В каждом разделе записи собраны в группы по событию и значению одного свойства записи: у perf это первое из Sql, Sdbl, MName и Func, у lock первое из Regions, Locks и WaitConnections, у error первое из Exception, Descr и Txt. У группы есть число записей, суммарная, наибольшая и средняя длительность в микросекундах (total_us, max_us, avg_us), время первой и последней записи, имена процессов и образец, то есть свойства самой долгой записи группы, той, от которой взят max_us. Если свойств у этой записи нет, образца у группы нет. В образце ничего не маскируется. Группы идут по убыванию суммарной длительности, а параметр top задаёт, сколько их показать в каждом разделе: по умолчанию 20, не больше 200. Длинные значения обрезаются до 400 знаков, и каждое обрезанное значение помечено. Запись, у которой метка времени читается как нулевой момент, 0001-01-01T00:00:00 UTC, ответ считает записью без времени: первой или последней записью окна и группы она не бывает. Если времени нет ни у одной записи окна, полей first_record и last_record в ответе нет, а у группы, где времени нет ни у одной записи, нет first и last. Сколько записей без времени попало в окно, называет записка, когда такие записи есть.
Параметры читающих действий: dir (обязательный), since и until (окно по времени записи в виде YYYY-MM-DD, YYYY-MM-DDTHH:MM:SS или RFC3339; граница until входит в окно, а дата без времени читается как начало дня), top. Параметр classes читает только parse, а min_duration_us только perf. Параметр, которого выбранное действие не читает, не отбрасывается молча: вызов с ним отклоняется.
Как включить журнал
suggest_logcfg ничего не пишет на диск и каталог dir не читает. Оно возвращает текст logcfg.xml в поле logcfg, а положить файл на сервер 1С должен администратор. Здесь dir это каталог, куда платформа будет писать журнал: он подставляется в атрибут location. Если dir не передан, в тексте стоит каталог-заглушка C:\1c_logs\tj, и ответ просит подставить свой путь.
В тексте один журнал с событиями из трёх списков выше и всеми свойствами записей. Для событий СУБД и SDBL в тексте стоит порог длительности value="30000". По документации платформы единица свойства duration в фильтре 100 мкс, без оговорок по событиям (руководство администратора 8.3.27, раздел 6.14.6.5), поэтому этот порог равен 3 с. События блокировок и исключений попадают в журнал без порога.
- Вызовите
suggest_logcfgс каталогом, куда писать журнал:{"action": "suggest_logcfg", "dir": "C:\\tj"}. - Сохраните текст из поля
logcfgв файлlogcfg.xmlв каталогеconfсервера 1С. Если в пути есть символы вне ASCII, сохраните файл в UTF-8, ответ об этом напомнит. - Когда в каталоге появятся записи, передайте тот же
dirдействиямparse,perf,locksиerrors.
Проверено на 32-битной платформе 8.3.27.2130 под Windows: каталог conf там C:\Program Files (x86)\1cv8\conf, а положенный или заменённый logcfg.xml платформа подхватила без перезапуска сервера 1С и сама создала каталог из location.
Что ответ говорит о пропусках
У каждого счётчика ответа, который считает непрочитанные, пропущенные или отброшенные файлы и записи, есть записка в поле notes, когда он не ноль. Записки называют числа: например, сколько файлов не разбиралось, сколько прочитано не до конца из-за ошибки чтения, сколько оказалось пустыми, сколько записей прочитано и сколько из них попало в окно since и until, сколько записей не разобралось и сколько записей длиннее 8 МиБ отброшено целиком. Имена файлов в успешном ответе есть только в списке отказов files.refusals. Записка есть и о группах, не вошедших в top, и об обрезанных значениях. Отдельно ответ считает записи обычного формата с долей секунды из 4 знаков (four_digit_fraction_records), записи обычного формата с долей не из 4 и не из 6 знаков (odd_fraction_records: единица длительности у них не установлена, и длительность прочитана в микросекундах без пересчёта) и файлы, где записи с долей из 4 знаков стоят рядом с записями с другой долей (mixed_fraction_files). Запись с длительностью вне допустимого диапазона, отрицательной или больше того, что сервер может представить, идёт в счётчик duration_overflows, её длительность считается нулевой, и записка называет число таких записей.
Отказ с признаком ошибки приходит, когда разбирать нечего: каталог dir не передан, не существует, не каталог или не читается; в нём нет ни одного подкаталога вида <процесс>_<pid>; не прочитано ни одной записи, а файлы или подкаталоги процессов при этом отклонены, прочитаны не до конца или не дали ни одной записи. В последнем случае отказ называет с причинами первые 10 из них, не считая вторых имён уже открытых файлов, а остальные только числом. Пустой каталог, подкаталоги процессов без файлов журнала и журнал из одних пустых файлов отказом не считаются: ответ приходит с запиской. Ответ больше 1 МиБ не обрезается, а отклоняется с советом уменьшить top или сузить окно. Вызов, прерванный отменой или по таймауту, тоже получает отказ, а не частичный свод.
Требует: действующую подписку уровня Расширенной (v2.41.0). Выгрузка конфигурации инструменту не нужна.
analyze_subsystems
Открытая
Анализ топологии подсистем
Анализ распределения объектов конфигурации 1С по подсистемам. Помогает при аудите архитектуры: найти неучтённые объекты, понять к каким подсистемам относится объект, выявить дублирование между ветвями дерева подсистем. Вид анализа задаётся параметром action:
orphans: объекты вне подсистем. В разбор берётся весь набор видов верхнего уровня, пригодных для состава подсистемы, и прикладные (справочники, документы, регистры, отчёты, обработки, планы, бизнес-процессы, задачи, перечисления), и служебные (константы, общие модули, общие формы, команды, роли, HTTP и web сервисы, пакеты XDTO, регламентные задания, подписки на события и другие). Не берутся сам контейнер, то есть подсистемы, и языки: язык в состав подсистемы не входит.containing: список подсистем, содержащих указанный объект.intersections: объекты, входящие сразу в несколько подсистем.
Параметры:
action(обязательный): вид анализа,orphans,containingилиintersectionsobject(дляaction: "containing"): имя объекта, полное (Документ.РеализацияТоваровУслуг) или короткое (РеализацияТоваровУслуг). При коротком неоднозначном имени возвращаются все совпаденияobject_type(необязательный): уточнение вида метаданных при неоднозначном коротком имени,Справочник,Документ,РегистрСведенийи т.п. или английский эквивалент (Catalog,Document,InformationRegister)cross_branch_only(необязательный, дляaction: "intersections"): приtrueостаются только объекты, входящие в подсистемы из разных корневых веток дерева
В Расширенной и Профессиональной версиях дерево подсистем берётся из выгрузки конфигурации, когда выгрузка у базы готова. База без выгрузки обслуживается через живой запрос к базе, тем же путём, что и в Открытой версии.
reload_dump
Открытая
Перечитать выгрузку конфигурации
Перечитывает локальную выгрузку конфигурации (DumpConfigToFiles) без перезапуска сервера. Вызывается после того, как выгрузка сделана заново. В Расширенной и Профессиональной версиях то же перечитывание умеет делать периодический цикл за флагом --local-dump-resync-interval. Сам инструмент 1С не запускает и выгрузку не создаёт: он только перечитывает то, что уже лежит на диске.
В отличие от Открытой версии, где база одна и параметров у инструмента нет, в Расширенной он принимает необязательный параметр base.
Параметры:
base(необязательный): имя базы, выгрузку которой нужно перечитать. Без него перечитывается одна база, та, что по умолчанию, а не все подключённые. За один вызов перечитывается ровно одна база. Список имён и отметку базы по умолчанию даётsystemсaction: "list_bases". Базу, которую перечитать нельзя, ответ называет по имени вместе с причиной, а не пропускает молча.
Что устаревает без вызова. Если задан --local-dump-resync-interval, то же перечитывание выполняет и периодический цикл:
- Модуль, добавленный или переименованный после запуска сервера, не находится ни в одном режиме
code_searchсaction: "text". - Изменения внутри уже существующего модуля (добавлена процедура, переписано тело) не видит режим
smart: он отвечает по тексту, снятому при построении индекса. Удалённый модульsmartвсё ещё считает в общем числе совпадений. code_readсaction: "module_code"иaction: "resolve"ищут модуль по списку из индекса, поэтому новый модуль они тоже не найдут до перечитывания. Текст уже существующего модуля они читают с диска, и он всегда свежий.
Кому вызов не нужен: режимы regex и exact перечитывают файлы на каждом запросе, поэтому по изменённым и по удалённым модулям отвечают верно и без него. analyze_subsystems и code_read с action: "form_structure" или action: "object_structure" открывают каталог выгрузки заново на каждом вызове и всегда актуальны.
Чего вызов не обновляет: векторный индекс режимов semantic и hybrid строится один раз при запуске сервера, перечитывание выгрузки его не пересобирает.
После перечитывания, которое нашло изменения на диске, векторная половина отвечает осторожнее. Границы строк у её кусков посчитаны до перечитывания, поэтому попадание отдаётся только там, где исходный текст по-прежнему объявляет ту же процедуру на той строке, с которой кусок начинается; кусок без имени, то есть код вне процедур и функций, не отдаётся вовсе. Режим hybrid при этом не замолкает: его половина BM25 не затронута, и он съезжает к своим текстовым результатам. Перечитывание, которое изменений не нашло, ничего не помечает и поведение не меняет. Полностью выдача восстанавливается после перезапуска сервера.
Сверка идёт только по файлам .bsl (относительный путь, время изменения, размер). Правка, не затронувшая ни одного .bsl (например, только состав формы или только XML), сигнатуру не меняет: перестроение не выполняется и об этом сообщается явно. Потери здесь нет, такие данные читаются из каталога напрямую и уже актуальны.
Вызывать его перед каждым чтением выгрузки не нужно.
Инструмент зарегистрирован всегда, в том числе без подписки, потому что он бесплатен в Открытой версии. Если база запущена без --dump, вызов не молчит: он отвечает, что для этой базы каталог выгрузки не задан и перечитывать нечего.
Расширения .cfe
Расширенная
Поиск и чтение кода расширений
Расширенная версия автоматически обнаруживает установленные расширения конфигурации (.cfe) и включает их модули в code_search и code_read. Результаты расширений помечаются префиксом [Расш].
При работе через транспорт опроса (polling) расширения .cfe также подхватываются автоматически для баз, которые отдают их список; базы без такой возможности работают как раньше, без расширений (v2.22.0).
Бюджет загрузки .cfe в polling-режиме настраивается флагом --polling-extension-timeout (по умолчанию 60с). Он отделён от --poll-timeout, поэтому крупный набор расширений не обрывается преждевременно (v2.23.0).
Ограничение (платформа 8.3.27, режим опроса): чтение исходного текста модулей расширения в реальном времени в режиме опроса на 8.3.27 недоступно и выполняется по выгрузке конфигурации. Запустите сервер с флагом --dump и читайте модуль расширения через extension_module. Остальные возможности анализа расширений в режиме опроса доступны в полном объёме (v2.29.0).