Skip to content

v0.5.0

Latest

Choose a tag to compare

@Macegor Macegor released this 30 Sep 09:22
881ae5d

✨ Новые возможности

Обмен конфигурацией и расширениями через файлы CF/CFE

Выгрузка конфигурации или расширения в файл и загрузка из файла — пункты
контекстного меню корневого узла, CLI-команды и MCP-инструменты. Выгрузка идёт
через промежуточный файл и переносится на целевой путь только при успешном
завершении: при сбое прежний бэкап остаётся неповреждённым. Загрузка не применяет
изменения к базе данных автоматически — это отдельный шаг, потому что
/LoadCfg конфигурацию БД не обновляет.

Выгрузка и загрузка всех расширений базы одной операцией

Список расширений берётся из самой базы, дальше идёт цикл по именам. Флагом
сделать это нельзя: у /DumpCfg и /LoadCfg ключа -AllExtensions не
существует, платформа принимает его молча и выполняет операцию над основной
конфигурацией — то есть рапортует об успехе и отдаёт файл с не теми данными.

Политики отказа различаются намеренно. Выгрузка продолжается после сбоя одного
расширения: базу она не трогает, а остальные бэкапы ценны. Загрузка
останавливается на первом отказе и сообщает, что состояние базы стало
неопределённым.

Выбор форм у всех видов метаданных

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

Канон порядка элементов при вставке

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

🐛 Исправления

  • Пароль информационной базы и хранилища больше не попадает в журнал. Он
    писался открытым текстом при каждом запуске по трём каналам — запуск базы из
    навигатора, операции с хранилищем конфигурации и профиль анализатора. Один из
    каналов проверка не видела вовсе: конфигуратор принимает пароль слитно с
    ключом, одним аргументом. Хранение секретов было корректным, утечка была именно
    в журнале.
  • Инструменты работы с формами объектов правили XML объекта-владельца вместо
    самой формы.
    validate_form выдавал лавину ложных ошибок, потому что
    разбирал как форму XML справочника; edit_form писал правку формы поверх этого
    XML; compile_form падал. Те же команды в контекстном меню брали то же
    неверное поле.
  • Отсутствующее свойство дописывалось мимо порядка, который пишет платформа.
    У корня конфигурации было хуже: выбор любой из восьми дополнительных форм на
    выгрузке формата 2.20 не работал вовсе — редактор отказывал, потому что тега в
    файле нет.
  • Уникальность идентификаторов формы проверялась неверно. Прежняя проверка
    пропускала дубли, на которых платформа отказывается читать форму: у реквизитов,
    команд и таблиц независимые нумерации, а проверка считала их вместе.
  • Графическая схема бизнес-процесса генерировалась с корневым элементом
    <Flowchart> вместо <GraphicalSchema> и в неверном пространстве имён.
  • Кодировка в декларации генерируемых файлов писалась строчными (utf-8 вместо
    UTF-8).
  • Состав свойств типизированного поля определяется парой «вид объекта-владельца ×
    роль поля». Прежнее правило удаляло у ссылочных полей типозависимые свойства,
    которые платформа выгружает у поля любого типа.
  • Запись файлов выгрузки стала атомарной: обрыв процесса на середине больше не
    оставляет обрезанный XML, из-за которого нечитаемой становится вся
    конфигурация.
  • Пустое значение свойства пишется самозакрытым тегом, как платформа. Сброс уже
    пустого свойства больше не порождает изменение файла.
  • Ссылочный тип записывается префиксом cfg:; set_type принимает тип в той
    форме, в какой он записан в выгрузке.
  • validate_form перестал объявлять платформенную выгрузку невалидной.
  • Состав допустимых дочерних элементов дополнен у десяти видов: валидация выдавала
    1996 ложных ошибок на типовой конфигурации, теперь ни одной.
  • Простановка признака «только чтение» больше не отбирает фокус у активного
    редактора и не применяется повторно к уже обработанному документу.
  • Отказы команд работы с формами попадают в журнал «1С Редактор», а не только во
    всплывающее сообщение, и текст больше не путает стадию сбоя.

🔧 Прочее

  • Гейт покрытия перестал считать неизмеренное покрытым: записей о ветвлениях не
    было ни одной, и проверка ветвей была фикцией. Теперь прогон дробится на
    порции в отдельных процессах.
  • Тесты больше не пишут в каталог эталонных выгрузок: испорченный тестом файл
    терялся безвозвратно.
  • Раннер тестов сообщает, сколько тестов отобрал фильтр, — частичный прогон
    больше не выглядит как полный.

Полный список изменений: v0.4.3...v0.5.0