Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Редактор тестовых данных #493

Merged
merged 4 commits into from
Jan 28, 2025

Conversation

d-hurricane
Copy link
Contributor

@d-hurricane d-hurricane commented Jan 24, 2025

Описание изменений

Добавлена обработка "Редактор макета с тестовыми данными", которая:

  • позволяет создавать таблицы данных в табличном документе и markdown-таблицы в текстовом документе;

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

  • Добавлены тесты

  • Изменения отражены в документации (при необходимости)

Resolve #490

Summary by CodeRabbit

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

    • Добавлен новый обработчик данных "ЮТРедакторМакетаСТестовымиДанными"
    • Реализована функциональность конвертации между табличными и текстовыми документами
    • Возможность загрузки, редактирования и сохранения документов в различных форматах
    • Введена новая форма для работы с тестовыми данными
  • Улучшения

    • Расширены возможности работы с макетами и документами
    • Добавлена поддержка markdown-преобразований
    • Обновлена документация по редактору данных для управления тестовыми данными

Copy link
Contributor

coderabbitai bot commented Jan 24, 2025

Walkthrough

Добавлен новый процессор данных "ЮТРедакторМакетаСТестовымиДанными", который предоставляет функциональность для конвертации между markdown-таблицами и табличными документами. Процессор позволяет загружать, редактировать и сохранять табличные и текстовые документы с поддержкой именованных областей данных. Изменения включают конфигурационные файлы, модуль управления, форму и подсистему для интеграции нового компонента.

Changes

Файл Изменения
Configuration.mdo Добавлен новый процессор данных в конфигурацию
ЮТРедакторМакетаСТестовымиДанными/Forms/Форма/Form.form Создана новая форма с элементами управления для редактирования документов
ЮТРедакторМакетаСТестовымиДанными/Forms/Форма/Module.bsl Добавлены методы для обработки событий формы, загрузки и сохранения документов
ЮТРедакторМакетаСТестовымиДанными/ManagerModule.bsl Реализованы функции конвертации между markdown-таблицами и табличными документами
ЮТРедакторМакетаСТестовымиДанными.mdo Создан новый класс процессора данных
ЮТПубличный.mdo Добавлен новый компонент в подсистему
documentation/docs/features/test-data/data-editor/index.md Добавлена документация для нового редактора данных

Assessment against linked issues

Objective Addressed Explanation
Разделение markdown таблиц на именованные области
Поддержка конвертации между текстовым и табличным документами
Сохранение структуры markdown-таблиц

Possibly related PRs

Poem

🐰 В мире markdown и таблиц,
Кролик-программист резвится.
Области данных - его стиль,
Конвертер - программный костыль!
Тестовым данным - зеленый свет! 🚦


Thank you for using CodeRabbit. We offer it for free to the OSS community and would appreciate your support in helping us grow. If you find it useful, would you consider giving us a shout-out on your favorite social media?

❤️ Share
🪧 Tips

Chat

There are 3 ways to chat with CodeRabbit:

  • Review comments: Directly reply to a review comment made by CodeRabbit. Example:
    • I pushed a fix in commit <commit_id>, please review it.
    • Generate unit testing code for this file.
    • Open a follow-up GitHub issue for this discussion.
  • Files and specific lines of code (under the "Files changed" tab): Tag @coderabbitai in a new review comment at the desired location with your query. Examples:
    • @coderabbitai generate unit testing code for this file.
    • @coderabbitai modularize this function.
  • PR comments: Tag @coderabbitai in a new PR comment to ask questions about the PR branch. For the best results, please provide a very specific query, as very limited context is provided in this mode. Examples:
    • @coderabbitai gather interesting stats about this repository and render them as a table. Additionally, render a pie chart showing the language distribution in the codebase.
    • @coderabbitai read src/utils.ts and generate unit testing code.
    • @coderabbitai read the files in the src/scheduler package and generate a class diagram using mermaid and a README in the markdown format.
    • @coderabbitai help me debug CodeRabbit configuration file.

Note: Be mindful of the bot's finite context window. It's strongly recommended to break down tasks such as reading entire modules into smaller chunks. For a focused discussion, use review comments to chat about specific files and their changes, instead of using the PR comments.

CodeRabbit Commands (Invoked using PR comments)

  • @coderabbitai pause to pause the reviews on a PR.
  • @coderabbitai resume to resume the paused reviews.
  • @coderabbitai review to trigger an incremental review. This is useful when automatic reviews are disabled for the repository.
  • @coderabbitai full review to do a full review from scratch and review all the files again.
  • @coderabbitai summary to regenerate the summary of the PR.
  • @coderabbitai generate docstrings to generate docstrings for this PR. (Beta)
  • @coderabbitai resolve resolve all the CodeRabbit review comments.
  • @coderabbitai configuration to show the current CodeRabbit configuration for the repository.
  • @coderabbitai help to get help.

Other keywords and placeholders

  • Add @coderabbitai ignore anywhere in the PR description to prevent this PR from being reviewed.
  • Add @coderabbitai summary to generate the high-level summary at a specific location in the PR description.
  • Add @coderabbitai anywhere in the PR title to generate the title automatically.

CodeRabbit Configuration File (.coderabbit.yaml)

  • You can programmatically configure CodeRabbit by adding a .coderabbit.yaml file to the root of your repository.
  • Please see the configuration documentation for more information.
  • If your editor has YAML language server enabled, you can add the path at the top of this file to enable auto-completion and validation: # yaml-language-server: $schema=https://coderabbit.ai/integrations/schema.v2.json

Documentation and Community

  • Visit our Documentation for detailed information on how to use CodeRabbit.
  • Join our Discord Community to get help, request features, and share feedback.
  • Follow us on X/Twitter for updates and announcements.

Copy link
Contributor

@coderabbitai coderabbitai bot left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Actionable comments posted: 0

🧹 Nitpick comments (15)
exts/yaxunit/src/DataProcessors/ЮТРедакторМакетаСТестовымиДанными/Forms/Форма/Module.bsl (6)

48-52: Загрузка табличного документа
Метод просто вызывает начало чтения файла. Кажется, что обработка ошибок (нет файла, неверный формат) будет происходить далее. Для повышения надёжности можно добавить дополнительную проверку/логирование перед вызовом.


55-59: Сохранение текстового документа
Аналогично загрузке, метод вызывает начало записи файла. Логика проста и понятна. Если нужно обрабатывать отсутствие прав на запись или другие нюансы, возможно стоит добавить обработку исключений.


62-66: Загрузка текстового документа
Механизм схож с загрузкой табличного документа. Возможно, следует унифицировать код, если требуется общее логирование или общая предварительная валидация.


144-152: Продолжение чтения табличного документа
Удаление файла из временного хранилища (УдалитьИзВременногоХранилища) важно для очистки. Потенциально стоит логировать сбои или успех операции.


188-196: Продолжение записи текстового документа
Прямой вызов клиентской процедуры записи. Код лаконичен. Возможно, стоит уточнить, что делать, если пользователь отменил диалог или ввёл некорректное имя файла.


228-236: Продолжение чтения текстового документа
Однострочная проверка при ВыбранныеФайлы = Неопределено. Код в порядке. Можно переиспользовать единый метод по аналогии с табличным форматом.

exts/yaxunit/src/DataProcessors/ЮТРедакторМакетаСТестовымиДанными/ManagerModule.bsl (5)

14-39: Функция КонвертироватьВТабличныйДокумент
Обработка списков областей, вывод через макет-разделитель и настройка ширины по содержимому. Архитектура продуманная. Рекомендуется предусмотреть реакцию на некорректную структуру markdown (например, пустой входной документ).


82-145: Парсинг markdown в коллекцию таблиц
Здесь реализованы правила: #Область, #КонецОбласти, а также игнорирование разделителя заголовка таблицы. Логика понятна, но при сложных вариациях markdown (много пустых строк, неправильная разметка) могут быть случаи падений. При желании можно улучшить обработку исключительных ситуаций.


173-186: Максимальная длина текста в колонке
Идёт перебор строк и вычисление максимальной длины. Аналогичное замечание об учёте Unicode длины (например, двойная ширина символов). Если уверены, что символы будут стандартные, текущая логика ок.


217-252: Преобразование области табличного макета в текст
Логика собирает колонки, заголовки и строит markdown-таблицу. Хорошо, что используется выделение #Область / #КонецОбласти. Рекомендуется добавить проверку на пустые данные, если нужно избежать появления пустых таблиц.


284-297: РассчитатьШиринуКолонок
Определение ширины колонок исходя из заголовков и данных. Логика аналогична предыдущим процедурам. Можно лишь дополнительно проверить тип значений, если вдруг попадаются не-строки.

exts/yaxunit/src/DataProcessors/ЮТРедакторМакетаСТестовымиДанными/Forms/Форма/Form.form (4)

213-316: Небольшое уточнение имени группы.

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


318-447: Рассмотрите переименование «Форма группа1» во что-то более осмысленное.

Название «Форма группа1» (строки 455-456) неочевидно и не несет полезного смысла. Переименование на что-то вроде «ГруппаТабличногоРедактора» или аналогичное может упростить ориентирование в форме.


603-609: Проверьте логику обработчиков событий.

Обработчики ПриОткрытии (OnOpen) и ПриСозданииНаСервере (OnCreateAtServer) могут влиять на начальную инициализацию данных формы. Убедитесь, что в модуле формы корректно задаются значения полей и статус редактирования. При необходимости могу помочь, если требуется дополнительная логика.


652-668: Рассмотрите использование более подходящего типа для текстового документа.

Сейчас атрибут МакетТекстовогоДокумента (строки 652-668) имеет тип String. Если предполагается работа с большим объемом текста или специальными конструкциями, возможно, стоит задействовать тип TextDocument или аналогичные объекты 1С для более удобной работы.

📜 Review details

Configuration used: CodeRabbit UI
Review profile: CHILL
Plan: Pro

📥 Commits

Reviewing files that changed from the base of the PR and between 79e543a and d79a17e.

📒 Files selected for processing (6)
  • exts/yaxunit/src/Configuration/Configuration.mdo (1 hunks)
  • exts/yaxunit/src/DataProcessors/ЮТРедакторМакетаСТестовымиДанными/Forms/Форма/Form.form (1 hunks)
  • exts/yaxunit/src/DataProcessors/ЮТРедакторМакетаСТестовымиДанными/Forms/Форма/Module.bsl (1 hunks)
  • exts/yaxunit/src/DataProcessors/ЮТРедакторМакетаСТестовымиДанными/ManagerModule.bsl (1 hunks)
  • exts/yaxunit/src/DataProcessors/ЮТРедакторМакетаСТестовымиДанными/ЮТРедакторМакетаСТестовымиДанными.mdo (1 hunks)
  • exts/yaxunit/src/Subsystems/ЮТПубличный/ЮТПубличный.mdo (1 hunks)
✅ Files skipped from review due to trivial changes (1)
  • exts/yaxunit/src/DataProcessors/ЮТРедакторМакетаСТестовымиДанными/ЮТРедакторМакетаСТестовымиДанными.mdo
⏰ Context from checks skipped due to timeout of 90000ms (1)
  • GitHub Check: Конвертация исходников / Конвертация
🔇 Additional comments (29)
exts/yaxunit/src/Subsystems/ЮТПубличный/ЮТПубличный.mdo (1)

56-56: Добавление нового контента в подсистему
Изменение корректное и отражает появление нового обработчика данных. Никаких проблем не выявлено.

exts/yaxunit/src/DataProcessors/ЮТРедакторМакетаСТестовымиДанными/Forms/Форма/Module.bsl (14)

3-8: Инициализация состояния формы на сервере
Логика установки переменной РедактированиеТабличногоДокумента = Истина выглядит корректно и обеспечивает стартовое состояние. Следует убедиться, что начальное значение понятным образом обрабатывается в форме (например, в «ПриОткрытии»).


11-15: Активация визуальных элементов при открытии формы
Вызов НастроитьЭлементыФормы гарантирует корректную инициализацию элементов интерфейса. Код выглядит логичным.


22-33: Переход в режим редактирования табличного документа
Метод вызывает серверную конвертацию и меняет флаг редактирования. При этом выставляется СохраняемыеВНастройкахДанныеМодифицированы = Истина, что важно для последующего сохранения. Всё выглядит корректно.


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


73-89: Адаптация визуальных элементов
Метод «НастроитьЭлементыФормы» гибко переключает вкладки в зависимости от активности редактирования. Код читабелен и корректно отражает логику интерфейса.


92-98: Серверная конвертация в табличный документ
Обращение к модулю обработок для конвертации. Нет явной обработки ошибок на случай некорректных данных, однако, возможно, это решается уровнем выше.


100-106: Серверная конвертация в текстовый документ
Аналогичная структура. При необходимости добавить логирование на случай сбоев в ходе конвертации. Иначе выглядит последовательно.


110-128: Инициирование чтения табличного документа (диалог выбора файла)
На клиенте формируются фильтры для различных форматов. Подход универсален. При расширении списка форматов не забудьте добавить новые расширения.


131-141: Обработка выбранного файла для табличного документа
Логика с вызовом НачатьПомещениеФайла и переходом на сервер – разумный подход. Нет явного контроля пустого массива файлов (кроме проверки на Неопределено). Код в порядке.


155-166: Серверное чтение табличного документа
Применяется временный файл, затем чтение в макет. Логика выглядит правильно. В случае нестандартного формата/ошибок чтения можно добавить расширенную диагностику.


175-185: Инициирование записи текстового документа
Подобный механизм выбора файла «Сохранить как». Логика единообразна с остальными операциями.


199-206: Запись на клиенте
Запись текста в файл реализована упрощённо, без дополнительных проверок доступности пути, однако для внутренних нужд может быть достаточно. Код понятен.


215-225: Начало чтения текстового документа
Идентично чтению табличного: выбор файла, фильтр на *.txt. Поведение ожидаемо и соответствует требуемому формату.


239-246: Чтение текстового документа на клиенте
Простая реализация с использованием ЧтениеТекста. Нет валидации файла, однако для демонстрационной логики текущий подход подходит.

exts/yaxunit/src/DataProcessors/ЮТРедакторМакетаСТестовымиДанными/ManagerModule.bsl (9)

50-76: Функция КонвертироватьВТекстовыйДокумент
Корректно обрабатывает вариант без областей, а также вариант с областями. Код структурирован и легко расширяется. При необходимости можно добавить логику разбора более экзотических таблиц.


147-153: Макет-разделитель таблиц
Создаётся пустая таблица. Никаких проблем нет, так как она всего лишь вставляет визуальный разделитель.


156-171: Изменение ширины по содержимому
Определяются минимальная и максимальная ширина. Код кажется корректным. Можно уточнить, не нужно ли применять локализацию или учитывать не-ASCII символы, но в целом логика достаточна.


188-215: Вывод макета области в итоговый документ
Код аккуратно объединяет содержимое и настраивает вывод отформатированных областей. Хорошее решение для сохранения форматирования.


254-282: Преобразование области в ТаблицуЗначений
Последовательно считываются заголовки (первая строка) и данные (начиная со второй). Стандартная реализация для 1С. Кажется надёжной.


299-314: ВывестиИменаКолонокВТекстовыйДокумент
Формирование строки заголовка с вертикальными разделителями «|». Очевидный подход. Всё хорошо.


316-330: ВывестиРазделительШапкиВТекстовыйДокумент
Формирование строки символов «-» для отделения шапки. Функция выглядит простой и понятной.


332-347: ВывестиЗначенияКолонокВТекстовыйДокумент
Печать данных по формату, дополнение строк до нужной ширины. Код последователен с предыдущими методами.


349-360: Функция ДополнитьСтроку
Стандартная реализация. Пользовательский символ тоже поддерживается, что гибко. Нет замечаний.

exts/yaxunit/src/Configuration/Configuration.mdo (1)

171-171: Добавление нового dataProcessor
Запись «ЮТРедакторМакетаСТестовымиДанными» корректно отображает появление нового функционала. Расширяет список обработчиков без конфликта с остальными.

exts/yaxunit/src/DataProcessors/ЮТРедакторМакетаСТестовымиДанными/Forms/Форма/Form.form (4)

1-2: Файл формы успешно добавлен.

Нет явных проблем с заголовками XML и кодировкой.


3-32: Корректная группировка элементов для страницы табличного документа.

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


46-69: Убедитесь в корректности режима редактирования.

В атрибуте <editMode>Enter</editMode> и в параметре <edit>true</edit> может потребоваться дополнительная проверка поведения на уровне модуля формы. Рекомендуется убедиться, что при переходе по ячейкам таблицы режим редактирования активируется должным образом.


732-790: Убедитесь в корректном связывании команды с обработчиком для текстовых документов.

Команда ЗагрузитьТекстовыйДокумент (строки 732-790) требует соответствующего обработчика в модуле формы. Проверьте, что метод ЗагрузитьТекстовыйДокумент определен и корректно обрабатывает логику импорта файла.

Copy link
Contributor

@coderabbitai coderabbitai bot left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Actionable comments posted: 0

🧹 Nitpick comments (3)
exts/yaxunit/src/DataProcessors/ЮТРедакторМакетаСТестовымиДанными/ManagerModule.bsl (3)

20-20: Опечатка в названии функции "МакетРазелителяТаблиц"
Рекомендуется переименовать функцию для устранения опечатки в слове «Разделителя».

-Функция МакетРазелителяТаблиц()
+Функция МакетРазделителяТаблиц()

180-180: Исправить орфографическую ошибку в названии функции
В русском языке правильное написание: «Длина».

-Функция МаксимальнаяДлиннаТекстаВКолонке(Документ, НомерКолонки)
+Функция МаксимальнаяДлинаТекстаВКолонке(Документ, НомерКолонки)

162-176: Объединение логики изменения ширины колонок
Сейчас минимальная и максимальная ширина задаются в процедуре ИзменитьШиринуПоСодержимому, а в другом месте (строка 294 и далее) есть дополнительная процедура расчёта ширины колонок. Рекомендуется унифицировать или объединить логику, чтобы избежать дублирования кода и обеспечить единообразие отображения.

📜 Review details

Configuration used: CodeRabbit UI
Review profile: CHILL
Plan: Pro

📥 Commits

Reviewing files that changed from the base of the PR and between d79a17e and 1c7dcf9.

📒 Files selected for processing (1)
  • exts/yaxunit/src/DataProcessors/ЮТРедакторМакетаСТестовымиДанными/ManagerModule.bsl (1 hunks)
⏰ Context from checks skipped due to timeout of 90000ms (1)
  • GitHub Check: Конвертация исходников / Конвертация
🔇 Additional comments (4)
exts/yaxunit/src/DataProcessors/ЮТРедакторМакетаСТестовымиДанными/ManagerModule.bsl (4)

116-116: Проверить корректность проверки разделителя
Условие СтрРазделить(ТекущаяСтрока, " -|", Ложь).Количество() = 0 может пропустить строки, которые не соответствуют реальному разделителю. Убедитесь, что это не приведёт к некорректному разбору таблицы.


153-153: Использование функции с опечаткой в имени
Название функции дублирует опечатку, из-за чего возникает несоответствие между назначением и именем. Следует применять единообразное именование (см. предыдущий комментарий).


204-204: Внимание к отключённой проверке шрифта
Присутствует комментарий //@skip-check new-font. Убедитесь, что отключение проверки шрифта действительно необходимо и не создаёт потенциальных проблем с отображением.


298-303: Проверка корректности длины при заполнении колонок
Здесь идёт вычисление максимальной ширины на основе заголовка и значений. Если в процессе вывода в текст будут добавляться дополнительные символы (пробелы, разделители и т.п.), стоит убедиться, что расчёты ширины корректно учитывают такие нюансы.

@alkoleft
Copy link
Member

@d-hurricane А можешь сделать небольшое описание инструмента в документации, например тут ./documentation/docs/features/test-data создать файл с описанием. Кратко возможности + скрин.

@d-hurricane
Copy link
Contributor Author

@alkoleft , без проблем, на неделе сделаю.

Copy link
Contributor

@github-actions github-actions bot left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

SonarQube Quality Gate failed! failed

bug 1 Bugs
vulnerability 0 Vulnerabilities
code_smell 9 Code Smells

No data Coverage
duplication_lt_3 0.00% Duplication


#Область КонвертацияВТабличныйДокумент

Функция КоллекцияТаблицИзТекста(Текст)
Copy link
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

🔗Уменьшите когнитивную сложность "КоллекцияТаблицИзТекста" с 26 до 15

CODE_SMELL Codesmell  CRITICAL Critical

brainoverload parameters   👤 @d-hurricane6227  Why is this an issue?

КонецЕсли;

Если СтрНачинаетсяС(ТекущаяСтрока, "|") И СтрЗаканчиваетсяНа(ТекущаяСтрока, "|") Тогда
ТекущаяСтрока = Сред(ТекущаяСтрока, 2, СтрДлина(ТекущаяСтрока) - 2);
Copy link
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

🔗Создайте константу с понятным названием, присвойте ей значение "2" и используйте эту константу вместо магического числа.

CODE_SMELL Codesmell  MINOR Minor

badpractice parameters   👤 @d-hurricane6227  Why is this an issue?

КонецЕсли;

Если СтрНачинаетсяС(ТекущаяСтрока, "|") И СтрЗаканчиваетсяНа(ТекущаяСтрока, "|") Тогда
ТекущаяСтрока = Сред(ТекущаяСтрока, 2, СтрДлина(ТекущаяСтрока) - 2);
Copy link
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

🔗Создайте константу с понятным названием, присвойте ей значение "2" и используйте эту константу вместо магического числа.

CODE_SMELL Codesmell  MINOR Minor

badpractice parameters   👤 @d-hurricane6227  Why is this an issue?

Если СтрНачинаетсяС(ТекущаяСтрока, "#Область ") Тогда

Если МакетОбласти = Неопределено Тогда
ИмяОбластиМакета = Сред(ТекущаяСтрока, 10);
Copy link
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

🔗Создайте константу с понятным названием, присвойте ей значение "10" и используйте эту константу вместо магического числа.

CODE_SMELL Codesmell  MINOR Minor

badpractice parameters   👤 @d-hurricane6227  Why is this an issue?

СписокОбластей.Добавить(МакетОбласти, ИмяОбластиМакета);
КонецЕсли;

Возврат СписокОбластей
Copy link
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

🔗Пропущена точка с запятой в конце выражения

CODE_SMELL Codesmell  MINOR Minor

standard badpractice   👤 @d-hurricane6227  Why is this an issue?


КонецФункции

Функция МакетРазелителяТаблиц()
Copy link
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

🔗Возможная опечатка в "Разелителя"

CODE_SMELL Codesmell  INFO Info

badpractice parameters   👤 @d-hurricane6227  Why is this an issue?

КонецВывода = Документ.ВысотаТаблицы;

ОбластьШапки = Документ.Область(НачалоВывода, , НачалоВывода);
ОбластьШапки.Шрифт = Новый Шрифт(ОбластьШапки.Шрифт, , , Истина); //@skip-check new-font
Copy link
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

🔗Замените конструктор Шрифт на получение элемента стиля

BUG Bug  MINOR Minor

standard badpractice   👤 @d-hurricane6227  Why is this an issue?


Если Не ПустаяСтрока(ИмяОбласти) Тогда

ОбластьМакета = Документ.Область(НачалоВывода, , КонецВывода, );
Copy link
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

🔗Не используйте запятые для параметров по умолчанию в конце вызова метода.

CODE_SMELL Codesmell  MAJOR Major

standard badpractice   👤 @d-hurricane6227  Why is this an issue?

Для Каждого Колонка Из ТаблицаДанных.Колонки Цикл

ТекущаяСтрока = ТекущаяСтрока
+ ДополнитьСтроку("", Колонка.Ширина + 2, "-")
Copy link
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

🔗Создайте константу с понятным названием, присвойте ей значение "2" и используйте эту константу вместо магического числа.

CODE_SMELL Codesmell  MINOR Minor

badpractice parameters   👤 @d-hurricane6227  Why is this an issue?

ДлинаСтроки = СтрДлина(ИсходнаяСтрока);
ДополнениеСтроки = "";

Для Счетчик = 1 По (ОжидаемаяДлина - ДлинаСтроки) Цикл
Copy link
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

🔗Удалите неиспользуемую переменную Счетчик

CODE_SMELL Codesmell  MAJOR Major

badpractice brainoverload unused   👤 @d-hurricane6227  Why is this an issue?

@d-hurricane
Copy link
Contributor Author

@alkoleft , к сожалению не смог запустить docusaurus для проекта, поэтому подготовил простую страничку с описанием инструмента, не глядя при этом, как она получится в контексте всей документации.

Copy link
Contributor

@coderabbitai coderabbitai bot left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Actionable comments posted: 0

🧹 Nitpick comments (3)
documentation/docs/features/test-data/data-editor/index.md (3)

13-29: Исправьте отступы в списках.

Согласно правилам оформления markdown, вложенные списки должны иметь отступ в 2 пробела вместо 4.

Примените следующие изменения:

 Для табличного документа это:
 - Удобное редактирование данных сразу в виде таблицы:
-    - добавление и удаление строк и колонок в два клика мыши;
-    - быстрое позиционирование на нужных ячейках для ввода данных;
-    - установка ширины колонок под содержимое таблицы, наглядное разбиение макета на области.
+  - добавление и удаление строк и колонок в два клика мыши;
+  - быстрое позиционирование на нужных ячейках для ввода данных;
+  - установка ширины колонок под содержимое таблицы, наглядное разбиение макета на области.
 - Однако:
-    - при использовании git такой макет будет храниться либо в фиде "скобко-файла", либо в xml-формате
-    - для работы с макетами в EDT и вовсе отсутствует какой-либо инструмент для сравнения-объединения
-    - бонусом добавляются ошибки и зависания самой EDT при работе с табличным документом.
+  - при использовании git такой макет будет храниться либо в фиде "скобко-файла", либо в xml-формате
+  - для работы с макетами в EDT и вовсе отсутствует какой-либо инструмент для сравнения-объединения
+  - бонусом добавляются ошибки и зависания самой EDT при работе с табличным документом.
🧰 Tools
🪛 markdownlint-cli2 (0.17.2)

15-15: Unordered list indentation
Expected: 2; Actual: 4

(MD007, ul-indent)


16-16: Unordered list indentation
Expected: 2; Actual: 4

(MD007, ul-indent)


17-17: Unordered list indentation
Expected: 2; Actual: 4

(MD007, ul-indent)


19-19: Unordered list indentation
Expected: 2; Actual: 4

(MD007, ul-indent)


21-21: Unordered list indentation
Expected: 2; Actual: 4

(MD007, ul-indent)


23-23: Unordered list indentation
Expected: 2; Actual: 4

(MD007, ul-indent)


28-28: Unordered list indentation
Expected: 2; Actual: 4

(MD007, ul-indent)


29-29: Unordered list indentation
Expected: 2; Actual: 4

(MD007, ul-indent)


34-45: Рекомендуется усилить предупреждение о многострочном тексте.

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

-:::tip
+:::warning
 Отсутствует дружественный к пользователю контроль ошибок ввода данных.
 Например, неподдерживаемый ввод многострочного текста молча приведет к разрушению структуры markdown-таблицы.
 :::

Также исправьте отступы в списке возможностей:

 - Конвертация содержимого табличного документа в markdown-таблицы и обратно, при этом:
-    - сохраняется разбиение данных по областям макета;
-    - выравнивается ширина колонок по содержимому для обоих типов макета;
+  - сохраняется разбиение данных по областям макета;
+  - выравнивается ширина колонок по содержимому для обоих типов макета;
🧰 Tools
🪛 markdownlint-cli2 (0.17.2)

39-39: Unordered list indentation
Expected: 2; Actual: 4

(MD007, ul-indent)


40-40: Unordered list indentation
Expected: 2; Actual: 4

(MD007, ul-indent)


61-62: Исправьте опечатку в слове "документ".

-1. переключается режим на текстовый докуемент для конвертации данных;
+1. переключается режим на текстовый документ для конвертации данных;
📜 Review details

Configuration used: CodeRabbit UI
Review profile: CHILL
Plan: Pro

📥 Commits

Reviewing files that changed from the base of the PR and between 1c7dcf9 and b5c14e9.

⛔ Files ignored due to path filters (2)
  • documentation/docs/features/test-data/data-editor/edit-mxl.png is excluded by !**/*.png
  • documentation/docs/features/test-data/data-editor/edit-txt.png is excluded by !**/*.png
📒 Files selected for processing (1)
  • documentation/docs/features/test-data/data-editor/index.md (1 hunks)
🧰 Additional context used
🪛 markdownlint-cli2 (0.17.2)
documentation/docs/features/test-data/data-editor/index.md

15-15: Unordered list indentation
Expected: 2; Actual: 4

(MD007, ul-indent)


16-16: Unordered list indentation
Expected: 2; Actual: 4

(MD007, ul-indent)


17-17: Unordered list indentation
Expected: 2; Actual: 4

(MD007, ul-indent)


19-19: Unordered list indentation
Expected: 2; Actual: 4

(MD007, ul-indent)


21-21: Unordered list indentation
Expected: 2; Actual: 4

(MD007, ul-indent)


23-23: Unordered list indentation
Expected: 2; Actual: 4

(MD007, ul-indent)


28-28: Unordered list indentation
Expected: 2; Actual: 4

(MD007, ul-indent)


29-29: Unordered list indentation
Expected: 2; Actual: 4

(MD007, ul-indent)


39-39: Unordered list indentation
Expected: 2; Actual: 4

(MD007, ul-indent)


40-40: Unordered list indentation
Expected: 2; Actual: 4

(MD007, ul-indent)

🔇 Additional comments (3)
documentation/docs/features/test-data/data-editor/index.md (3)

1-6: Корректное оформление заголовка и метаданных!

Структура и теги соответствуют стандартам документации.


7-32: Отличное описание предпосылок и сравнение форматов!

Подробно и понятно описаны преимущества и недостатки каждого формата хранения данных.

🧰 Tools
🪛 markdownlint-cli2 (0.17.2)

15-15: Unordered list indentation
Expected: 2; Actual: 4

(MD007, ul-indent)


16-16: Unordered list indentation
Expected: 2; Actual: 4

(MD007, ul-indent)


17-17: Unordered list indentation
Expected: 2; Actual: 4

(MD007, ul-indent)


19-19: Unordered list indentation
Expected: 2; Actual: 4

(MD007, ul-indent)


21-21: Unordered list indentation
Expected: 2; Actual: 4

(MD007, ul-indent)


23-23: Unordered list indentation
Expected: 2; Actual: 4

(MD007, ul-indent)


28-28: Unordered list indentation
Expected: 2; Actual: 4

(MD007, ul-indent)


29-29: Unordered list indentation
Expected: 2; Actual: 4

(MD007, ul-indent)


47-65: Отличное описание интерфейса и сценария работы!

Раздел содержит все необходимые элементы:

  • Скриншоты для наглядности
  • Четкие инструкции по использованию
  • Важные примечания о конвертации данных

@alkoleft
Copy link
Member

@alkoleft , к сожалению не смог запустить docusaurus для проекта, поэтому подготовил простую страничку с описанием инструмента, не глядя при этом, как она получится в контексте всей документации.

Есть одна проблема с ней, надо будет поправить.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

Successfully merging this pull request may close these issues.

[NEW] Разделение markdown таблиц на именованные области данных
2 participants