Реализация интерфейса работы с rabbit MQ#284
Conversation
|
""" WalkthroughВ систему добавлена интеграция с RabbitMQ, включая новые общие модули, перечисление типов точек обмена и расширение справочников и форм для поддержки дополнительных параметров интеграции с типизацией. Существенно переработаны формы и логика обработки параметров интеграции, реализовано динамическое создание и сохранение дополнительных настроек, а также поддержка работы с RabbitMQ на стороне сервера. Changes
Sequence Diagram(s)sequenceDiagram
participant Пользователь
participant ФормаНастроекИнтеграции
participant Сервер
participant МодульРаботаСФормами
participant СправочникТипыИнтеграций
Пользователь->>ФормаНастроекИнтеграции: Открытие формы элемента
ФормаНастроекИнтеграции->>Сервер: ПриСозданииНаСервере
Сервер->>СправочникТипыИнтеграций: Получить параметры интеграции по типу
Сервер->>МодульРаботаСФормами: Создать реквизиты для параметров
МодульРаботаСФормами-->>Сервер: Реквизиты созданы
Сервер-->>ФормаНастроекИнтеграции: Динамические поля отображены
Пользователь->>ФормаНастроекИнтеграции: Изменяет параметры
Пользователь->>ФормаНастроекИнтеграции: Сохраняет форму
ФормаНастроекИнтеграции->>Сервер: ПередЗаписьюНаСервере
Сервер->>СправочникТипыИнтеграций: Получить список параметров
Сервер->>ФормаНастроекИнтеграции: Синхронизация значений параметров в табличную часть
Сервер-->>ФормаНастроекИнтеграции: Завершение сохранения
sequenceDiagram
participant Сервер
participant МодульRabbitMQ
participant ВнешнийRabbitMQ
Сервер->>МодульRabbitMQ: КлиентRabbitMQ()
МодульRabbitMQ->>ВнешнийRabbitMQ: Создание компоненты
МодульRabbitMQ-->>Сервер: Клиент готов
Сервер->>МодульRabbitMQ: Подключиться(Клиент, Параметры)
МодульRabbitMQ->>ВнешнийRabbitMQ: Установить соединение
МодульRabbitMQ-->>Сервер: Соединение установлено или ошибка
Сервер->>МодульRabbitMQ: DeclareExchange/DeclareQueue/BasicPublish/...
МодульRabbitMQ->>ВнешнийRabbitMQ: Выполнение операции
МодульRabbitMQ-->>Сервер: Результат или ошибка
Possibly related PRs
Suggested labels
📜 Recent review detailsConfiguration used: .coderabbit.yaml 📒 Files selected for processing (3)
🚧 Files skipped from review as they are similar to previous changes (2)
🧰 Additional context used🧠 Learnings (2)📓 Common learningssrc/cf/CommonModules/пбп_МодификацияКонфигурацииПереопределяемыйДокумент/Ext/Module.bsl (7)🔇 Additional comments (2)
Thanks for using CodeRabbit! It's free for OSS, and your support helps us grow. If you like it, consider giving us a shout-out. 🪧 TipsChatThere are 3 ways to chat with CodeRabbit:
SupportNeed help? Create a ticket on our support page for assistance with any issues or questions. 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)
Other keywords and placeholders
Documentation and Community
|
There was a problem hiding this comment.
Actionable comments posted: 7
🧹 Nitpick comments (11)
src/cf/Catalogs/пбп_ТипыИнтеграций/Ext/ManagerModule.bsl (1)
83-100: Улучшить логику функции для предотвращения дублирования типов.Текущая реализация может привести к дублированию типов, если они уже присутствуют в
СписокДобавленныхТипов. Также перезапись входного параметра может быть неочевидной.Предлагаемое улучшение:
Функция СформироватьСписокТипов(СписокДобавленныхТипов = Неопределено) Экспорт СписокТипов = Новый СписокЗначений; Если СписокДобавленныхТипов <> Неопределено Тогда СписокТипов.ЗагрузитьЗначения(СписокДобавленныхТипов.ВыгрузитьЗначения()); КонецЕсли; - СписокТипов.Добавить("Число", НСтр("ru = 'Число'")); - СписокТипов.Добавить("Строка", НСтр("ru = 'Строка'")); - СписокТипов.Добавить("Дата", НСтр("ru = 'Дата'")); - СписокТипов.Добавить("Булево", НСтр("ru = 'Булево'")); + // Добавляем предопределенные типы, если их еще нет + Если СписокТипов.НайтиПоЗначению("Число") = Неопределено Тогда + СписокТипов.Добавить("Число", НСтр("ru = 'Число'")); + КонецЕсли; + Если СписокТипов.НайтиПоЗначению("Строка") = Неопределено Тогда + СписокТипов.Добавить("Строка", НСтр("ru = 'Строка'")); + КонецЕсли; + Если СписокТипов.НайтиПоЗначению("Дата") = Неопределено Тогда + СписокТипов.Добавить("Дата", НСтр("ru = 'Дата'")); + КонецЕсли; + Если СписокТипов.НайтиПоЗначению("Булево") = Неопределено Тогда + СписокТипов.Добавить("Булево", НСтр("ru = 'Булево'")); + КонецЕсли; - СписокДобавленныхТипов = СписокТипов.Скопировать(); + Если СписокДобавленныхТипов <> Неопределено Тогда + СписокДобавленныхТипов = СписокТипов.Скопировать(); + КонецЕсли; Возврат СписокТипов;src/cf/CommonModules/пбп_RabbitMQПовтИсп.xml (1)
6-10: Улучшить читаемость синонима модуля.Синоним "Rabbit MQПовт исп" можно сделать более читаемым.
- <v8:content>Rabbit MQПовт исп</v8:content> + <v8:content>RabbitMQ (повторное использование)</v8:content>src/cf/CommonModules/пбп_RabbitMQПовтИсп/Ext/Module.bsl (1)
4-19: Реализация функции корректна.Функция правильно преобразует значения перечисления в строковые представления типов точек обмена RabbitMQ. Использование соответствия эффективно, обработка неопределенных значений адекватна.
Можно рассмотреть вынос соответствия в модульную переменную для оптимизации производительности при частых вызовах:
+#Область МодульныеПеременные + +Перем СоответствиеТиповТочекОбмена; + +#КонецОбласти + #Область СлужебныйПрограммныйИнтерфейс Функция ПолучитьТипТочкиОбменаСтрокой(ТипТочкиОбмена) Экспорт - Соответствие = Новый Соответствие; - Соответствие.Вставить(Перечисления.пбп_ТипыТочкиОбменаRabbitMQ.direct, "direct"); - Соответствие.Вставить(Перечисления.пбп_ТипыТочкиОбменаRabbitMQ.fanout, "fanout"); - Соответствие.Вставить(Перечисления.пбп_ТипыТочкиОбменаRabbitMQ.topic, "topic"); + Если СоответствиеТиповТочекОбмена = Неопределено Тогда + СоответствиеТиповТочекОбмена = Новый Соответствие; + СоответствиеТиповТочекОбмена.Вставить(Перечисления.пбп_ТипыТочкиОбменаRabbitMQ.direct, "direct"); + СоответствиеТиповТочекОбмена.Вставить(Перечисления.пбп_ТипыТочкиОбменаRabbitMQ.fanout, "fanout"); + СоответствиеТиповТочекОбмена.Вставить(Перечисления.пбп_ТипыТочкиОбменаRabbitMQ.topic, "topic"); + КонецЕсли; - ТипСтрокой = Соответствие[ТипТочкиОбмена]; + ТипСтрокой = СоответствиеТиповТочекОбмена[ТипТочкиОбмена];src/cf/CommonModules/пбп_ИнтеграцииСлужебный/Ext/Module.bsl (1)
229-261: Функция реализована корректно.Реализация следует принятым в модуле паттернам, правильно использует привилегированный режим и возвращает структуру дополнительных настроек.
Рекомендуется добавить валидацию входного параметра:
Функция ПолучитьСтруктуруДополнительныхНастроекИнтеграции(НастройкаИнтеграции) Экспорт + Если Не ЗначениеЗаполнено(НастройкаИнтеграции) Тогда + ВызватьИсключение НСтр("ru='Не указана настройка интеграции'"); + КонецЕсли; + Запрос = Новый Запрос;src/cf/Catalogs/пбп_ТипыИнтеграций.xml (1)
95-244: Структура табличной части хорошо спроектирована.Табличная часть "ДополнительныеПараметрыНастроекИнтеграций" корректно реализует хранение метаданных параметров интеграции. Атрибуты имеют подходящие типы и длины.
Рассмотрите возможность использования перечисления для атрибута "Тип" вместо строки для обеспечения типизации:
<Type> - <v8:Type>xs:string</v8:Type> - <v8:StringQualifiers> - <v8:Length>50</v8:Length> - <v8:AllowedLength>Variable</v8:AllowedLength> - </v8:StringQualifiers> + <v8:Type>EnumRef.пбп_ТипыПараметровИнтеграции</v8:Type> </Type>Это обеспечит строгую типизацию и предотвратит ошибки ввода.
src/cf/Catalogs/пбп_НастройкиИнтеграции.xml (1)
981-1100: Хорошее решение для хранения дополнительных параметров интеграции.Табличная часть "ДополнительныеНастройки" корректно спроектирована:
- Поддержка различных типов данных в поле "Значение" обеспечивает гибкость
- Структура подходит для динамического создания полей форм
- Использование строкового идентификатора позволяет легко связывать параметры
Однако стоит рассмотреть увеличение длины строкового значения с 10 до более разумного размера (например, 255 символов) для хранения более длинных конфигурационных значений.
Предлагаемое улучшение:
<v8:StringQualifiers> - <v8:Length>10</v8:Length> + <v8:Length>255</v8:Length> <v8:AllowedLength>Variable</v8:AllowedLength> </v8:StringQualifiers>src/cf/Catalogs/пбп_НастройкиИнтеграции/Forms/ФормаЭлемента/Ext/Form/Module.bsl (1)
118-147: Оптимизация сохранения дополнительных настроекТекущая реализация выполняет поиск строк для каждого параметра. Можно оптимизировать, предварительно проиндексировав существующие строки.
+ // Создаем индекс существующих настроек + ИндексНастроек = Новый Соответствие; + Для Каждого Стр Из ТекущийОбъект.ДополнительныеНастройки Цикл + ИндексНастроек.Вставить(Стр.Идентификатор, Стр); + КонецЦикла; + СтруктураРеквизитов = Новый Структура; Пока Выборка.Следующий() Цикл - мСтрок = ТекущийОбъект.ДополнительныеНастройки.НайтиСтроки(Новый Структура("Идентификатор", Выборка.Идентификатор)); - Если Не ЗначениеЗаполнено(мСтрок) Тогда + Стр = ИндексНастроек.Получить(Выборка.Идентификатор); + Если Стр = Неопределено Тогда Стр = ТекущийОбъект.ДополнительныеНастройки.Добавить(); - Иначе - Стр = мСтрок[0]; КонецЕсли; Стр.Идентификатор = Выборка.Идентификатор; Стр.Значение = ЭтотОбъект[Выборка.Идентификатор]; КонецЦикла;src/cf/Catalogs/пбп_ТипыИнтеграций/Forms/ФормаЭлемента/Ext/Form/Module.bsl (1)
61-65: Избыточный вызов СформироватьСписокТиповФункция
СформироватьСписокТиповуже вызывалась при создании формы. Можно использовать существующий список типов.Функция ТипСтрока(Значение) - СписокДобавленныхТипов = Новый СписокЗначений; - Справочники.пбп_ТипыИнтеграций.СформироватьСписокТипов(СписокДобавленныхТипов); + СписокДобавленныхТипов = СписокТипов;src/cf/CommonModules/пбп_RabbitMQ/Ext/Module.bsl (1)
11-12: Рассмотрите возможность генерации исключения вместо возврата НеопределеноПри невозможности подключения компоненты возвращается
Неопределено, что требует проверки во всех местах использования.Рассмотрите возможность генерации исключения для более явной обработки ошибок:
Если Не ПодключитьВнешнююКомпоненту("ОбщийМакет." + ИмяМакета, ИмяКомпоненты, ТипВнешнейКомпоненты.Native) Тогда - пбп_Переадресация.СообщитьПользователю("Не удалось подключить внешнюю компоненту RabbitMQ"); - Возврат Неопределено; + ТекстОшибки = "Не удалось подключить внешнюю компоненту RabbitMQ"; + ЗаписьЖурналаРегистрации("пбп_RabbitMQ", УровеньЖурналаРегистрации.Ошибка, , , ТекстОшибки); + ВызватьИсключение ТекстОшибки; КонецЕсли;src/cf/Catalogs/пбп_ТипыИнтеграций/Forms/ФормаЭлемента/Ext/Form.xml (1)
88-105: Уточнить поведение поля «Тип»
TextEdit="false"запрещает ручной ввод, однакоExtendedEditMultipleValues="true"— опция, актуальная в основном для ввода текста. Это сочетание вводит в заблуждение.- Если для выбора используется выпадающий список, лучше убрать
ExtendedEditMultipleValues, чтобы не плодить лишние «…» в интерфейсе.- <ExtendedEditMultipleValues>true</ExtendedEditMultipleValues> - <TextEdit>false</TextEdit> + <TextEdit>false</TextEdit>src/cf/Catalogs/пбп_НастройкиИнтеграции/Forms/ФормаЭлемента/Ext/Form.xml (1)
275-284: Автовставка пустых строк
<AutoInsertNewRow>true>в сочетании с обязательными полями (ИмяНастройки,Значение) производит пустые записи при случайном клике. Частый источник «битых» настроек. Подумайте об отключении или валидации строки перед записью.
📜 Review details
Configuration used: .coderabbit.yaml
Review profile: CHILL
Plan: Pro
⛔ Files ignored due to path filters (1)
src/cf/CommonTemplates/пбп_PinkRabbitMQ/Ext/Template.binis excluded by!**/*.bin
📒 Files selected for processing (18)
src/cf/Catalogs/пбп_НастройкиИнтеграции.xml(3 hunks)src/cf/Catalogs/пбп_НастройкиИнтеграции/Forms/ФормаЭлемента/Ext/Form.xml(1 hunks)src/cf/Catalogs/пбп_НастройкиИнтеграции/Forms/ФормаЭлемента/Ext/Form/Module.bsl(3 hunks)src/cf/Catalogs/пбп_ТипыИнтеграций.xml(2 hunks)src/cf/Catalogs/пбп_ТипыИнтеграций/Ext/ManagerModule.bsl(1 hunks)src/cf/Catalogs/пбп_ТипыИнтеграций/Forms/ФормаЭлемента.xml(1 hunks)src/cf/Catalogs/пбп_ТипыИнтеграций/Forms/ФормаЭлемента/Ext/Form.xml(1 hunks)src/cf/Catalogs/пбп_ТипыИнтеграций/Forms/ФормаЭлемента/Ext/Form/Module.bsl(1 hunks)src/cf/CommonModules/пбп_RabbitMQ.xml(1 hunks)src/cf/CommonModules/пбп_RabbitMQ/Ext/Module.bsl(1 hunks)src/cf/CommonModules/пбп_RabbitMQПовтИсп.xml(1 hunks)src/cf/CommonModules/пбп_RabbitMQПовтИсп/Ext/Module.bsl(1 hunks)src/cf/CommonModules/пбп_ИнтеграцииСлужебный/Ext/Module.bsl(1 hunks)src/cf/CommonModules/пбп_КоннекторHTTP/Ext/Module.bsl(1 hunks)src/cf/CommonModules/пбп_РаботаСФормами/Ext/Module.bsl(1 hunks)src/cf/Configuration.xml(2 hunks)src/cf/Enums/пбп_ТипыТочкиОбменаRabbitMQ.xml(1 hunks)src/cf/Subsystems/пбп_УправлениеИнтеграциями.xml(1 hunks)
🧰 Additional context used
🧠 Learnings (17)
📓 Common learnings
Learnt from: ivanmolodec
PR: firstBitSportivnaya/PSSL#0
File: :0-0
Timestamp: 2024-07-29T10:13:46.428Z
Learning: User: ivanmolodec
URL: https://github.com/firstBitSportivnaya/PSSL/pull/52
Timestamp: 2024-04-19T09:46:50.450Z
Learning: Use the Russian language for all interactions related to the repository `firstBitSportivnaya/PSSL`.
Learnt from: ivanmolodec
PR: firstBitSportivnaya/PSSL#0
File: :0-0
Timestamp: 2024-07-29T10:13:46.428Z
Learning: Communicate in Russian for any interactions related to the documentation and code in the repository `firstBitSportivnaya/PSSL`.
Learnt from: ivanmolodec
PR: firstBitSportivnaya/PSSL#0
File: :0-0
Timestamp: 2024-10-20T19:13:35.868Z
Learning: Communicate in Russian for any interactions related to the documentation and code in the repository `firstBitSportivnaya/PSSL`.
Learnt from: DenisUshakov
PR: firstBitSportivnaya/PSSL#0
File: :0-0
Timestamp: 2024-07-29T10:13:46.428Z
Learning: Use the Russian language for all interactions related to the repository `firstBitSportivnaya/PSSL`.
Learnt from: DenisUshakov
PR: firstBitSportivnaya/PSSL#0
File: :0-0
Timestamp: 2024-10-20T19:13:35.868Z
Learning: Use the Russian language for all interactions related to the repository `firstBitSportivnaya/PSSL`.
Learnt from: DenisUshakov
PR: firstBitSportivnaya/PSSL#0
File: :0-0
Timestamp: 2024-10-20T19:13:35.868Z
Learning: DenisUshakov prefers not to surround fenced code blocks with blank lines in markdown files for the project `firstBitSportivnaya/PSSL`.
Learnt from: DenisUshakov
PR: firstBitSportivnaya/PSSL#0
File: :0-0
Timestamp: 2024-07-29T10:13:46.428Z
Learning: DenisUshakov prefers not to surround fenced code blocks with blank lines in markdown files for the project `firstBitSportivnaya/PSSL`.
Learnt from: DenisUshakov
PR: firstBitSportivnaya/PSSL#0
File: :0-0
Timestamp: 2024-07-29T10:13:46.428Z
Learning: DenisUshakov prefers not to have blank lines before code blocks in markdown to emphasize the block. This style should be respected in future reviews of their documentation.
Learnt from: DenisUshakov
PR: firstBitSportivnaya/PSSL#0
File: :0-0
Timestamp: 2024-10-20T19:13:35.868Z
Learning: DenisUshakov prefers not to have blank lines before code blocks in markdown to emphasize the block. This style should be respected in future reviews of their documentation.
src/cf/CommonModules/пбп_RabbitMQПовтИсп.xml (2)
Learnt from: ivanmolodec
PR: firstBitSportivnaya/PSSL#0
File: :0-0
Timestamp: 2024-07-29T10:13:46.428Z
Learning: User: ivanmolodec
URL: https://github.com/firstBitSportivnaya/PSSL/pull/52
Timestamp: 2024-04-19T09:46:50.450Z
Learning: Use the Russian language for all interactions related to the repository `firstBitSportivnaya/PSSL`.
Learnt from: thvvmas
PR: firstBitSportivnaya/PSSL#190
File: src/cf/DataProcessors/пбп_ВалидаторПакетов/Ext/ObjectModule.bsl:33-35
Timestamp: 2025-01-14T19:55:48.869Z
Learning: In 1C:Enterprise (BSL), attributes of data processors defined in their metadata are directly accessible within the object module without requiring explicit declaration using `Перем`. For example, attributes `Ошибки` and `Предупреждения` in `пбп_ВалидаторПакетов` data processor can be used directly in its object module.
src/cf/Subsystems/пбп_УправлениеИнтеграциями.xml (1)
Learnt from: thvvmas
PR: firstBitSportivnaya/PSSL#187
File: src/cf/CommonModules/пбп_ИнтеграцииСлужебный/Ext/Module.bsl:321-337
Timestamp: 2025-01-13T14:59:32.507Z
Learning: В процедуре ДобавитьСоответствияОбъектовИнтегрируемыхСистем регистра сведений пбп_СоответствиеОбъектовИнтегрируемыхСистем не требуется дополнительная обработка конкурентных изменений, так как запись набора записей происходит с замещением, что обеспечивает атомарность операции на уровне платформы 1С.
src/cf/CommonModules/пбп_RabbitMQПовтИсп/Ext/Module.bsl (1)
Learnt from: denisushakov
PR: firstBitSportivnaya/PSSL#144
File: src/cf/CommonForms/пбп_ФормаРазрешенияКонфликтовПредопределенныхЭлементов/Ext/Form/Module.bsl:221-224
Timestamp: 2024-11-19T12:53:46.472Z
Learning: В клиентском коде на языке платформы 1С:Предприятие, в файле `src/cf/CommonForms/пбп_ФормаРазрешенияКонфликтовПредопределенныхЭлементов/Ext/Form/Module.bsl`, при сравнении значений перечислений необходимо использовать функцию `ПредопределенноеЗначение`, так как на клиенте нельзя напрямую обращаться к значениям перечислений.
src/cf/Configuration.xml (7)
Learnt from: denisushakov
PR: firstBitSportivnaya/PSSL#153
File: src/cf/Catalogs/пбп_ПользовательскиеФункции/Forms/ФормаСтруктуры/Ext/Form/Module.bsl:61-64
Timestamp: 2024-11-29T06:59:28.505Z
Learning: В модуле `пбп_ПереадресацияКлиентСервер` собираются только методы из БСП, остальные методы располагаются согласно логике подсистемы.
Learnt from: thvvmas
PR: firstBitSportivnaya/PSSL#190
File: src/cf/DataProcessors/пбп_ВалидаторПакетов/Ext/ObjectModule.bsl:33-35
Timestamp: 2025-01-14T19:55:48.869Z
Learning: In 1C:Enterprise (BSL), attributes of data processors defined in their metadata are directly accessible within the object module without requiring explicit declaration using `Перем`. For example, attributes `Ошибки` and `Предупреждения` in `пбп_ВалидаторПакетов` data processor can be used directly in its object module.
Learnt from: denisushakov
PR: firstBitSportivnaya/PSSL#163
File: src/cf/CommonModules/пбп_ПредопределенныеЗначенияСлужебный/Ext/Module.bsl:375-411
Timestamp: 2024-12-12T15:04:03.415Z
Learning: В процедуре `ОбработатьДублиИдентификаторов` в файле `src/cf/CommonModules/пбп_ПредопределенныеЗначенияСлужебный/Ext/Module.bsl` допустимо удалять строки из `ТаблицаПредопределенных` внутри цикла, если перебор осуществляется по массиву строк для удаления, а не по самой таблице.
Learnt from: thvvmas
PR: firstBitSportivnaya/PSSL#190
File: src/cf/CommonModules/пбп_ВалидаторПакетов/Ext/Module.bsl:79-122
Timestamp: 2025-01-27T22:01:40.089Z
Learning: В функции ВалидироватьПримитивныеТипы модуля пбп_ВалидаторПакетов идентификация ошибок происходит по именам полей структуры JSON внутри функции пбп_ВалидаторПакетовСлужебный.Валидировать, что делает хранение отдельных идентификаторов избыточным.
Learnt from: thvvmas
PR: firstBitSportivnaya/PSSL#209
File: src/cf/InformationRegisters/пбп_ИсторияЗагрузкиФайлов.xml:173-211
Timestamp: 2025-02-13T07:34:04.243Z
Learning: В подсистеме управления интеграциями существует справочник истории интеграции, который хранит детальную информацию о загрузке файлов (размер, статус, длительность обработки и т.д.). Регистр пбп_ИсторияЗагрузкиФайлов не должен дублировать эту информацию.
Learnt from: denisushakov
PR: firstBitSportivnaya/PSSL#144
File: src/cf/CommonForms/пбп_ФормаРазрешенияКонфликтовПредопределенныхЭлементов/Ext/Form/Module.bsl:221-224
Timestamp: 2024-11-19T12:53:46.472Z
Learning: В клиентском коде на языке платформы 1С:Предприятие, в файле `src/cf/CommonForms/пбп_ФормаРазрешенияКонфликтовПредопределенныхЭлементов/Ext/Form/Module.bsl`, при сравнении значений перечислений необходимо использовать функцию `ПредопределенноеЗначение`, так как на клиенте нельзя напрямую обращаться к значениям перечислений.
Learnt from: thvvmas
PR: firstBitSportivnaya/PSSL#187
File: src/cf/CommonModules/пбп_ИнтеграцииСлужебный/Ext/Module.bsl:321-337
Timestamp: 2025-01-13T14:59:32.507Z
Learning: В процедуре ДобавитьСоответствияОбъектовИнтегрируемыхСистем регистра сведений пбп_СоответствиеОбъектовИнтегрируемыхСистем не требуется дополнительная обработка конкурентных изменений, так как запись набора записей происходит с замещением, что обеспечивает атомарность операции на уровне платформы 1С.
src/cf/Catalogs/пбп_ТипыИнтеграций/Forms/ФормаЭлемента.xml (1)
Learnt from: thvvmas
PR: firstBitSportivnaya/PSSL#247
File: src/cf/DataProcessors/пбп_УниверсальнаяЗагрузкаИзФайлаЧерезТабличныйДокумент/Forms/Форма/Ext/Form/Module.bsl:158-221
Timestamp: 2025-04-02T14:17:56.837Z
Learning: In the procedure `ЗагрузитьНастройкиНаСервере` in the ПБП library, validation of correctly filled requisites is handled by XSD schema validation, with additional runtime checks for matching form requisite names and XML file attributes.
src/cf/Enums/пбп_ТипыТочкиОбменаRabbitMQ.xml (1)
Learnt from: denisushakov
PR: firstBitSportivnaya/PSSL#144
File: src/cf/CommonForms/пбп_ФормаРазрешенияКонфликтовПредопределенныхЭлементов/Ext/Form/Module.bsl:221-224
Timestamp: 2024-11-19T12:53:46.472Z
Learning: В клиентском коде на языке платформы 1С:Предприятие, в файле `src/cf/CommonForms/пбп_ФормаРазрешенияКонфликтовПредопределенныхЭлементов/Ext/Form/Module.bsl`, при сравнении значений перечислений необходимо использовать функцию `ПредопределенноеЗначение`, так как на клиенте нельзя напрямую обращаться к значениям перечислений.
src/cf/Catalogs/пбп_ТипыИнтеграций/Ext/ManagerModule.bsl (1)
Learnt from: denisushakov
PR: firstBitSportivnaya/PSSL#144
File: src/cf/CommonForms/пбп_ФормаРазрешенияКонфликтовПредопределенныхЭлементов/Ext/Form/Module.bsl:221-224
Timestamp: 2024-11-19T12:53:46.472Z
Learning: В клиентском коде на языке платформы 1С:Предприятие, в файле `src/cf/CommonForms/пбп_ФормаРазрешенияКонфликтовПредопределенныхЭлементов/Ext/Form/Module.bsl`, при сравнении значений перечислений необходимо использовать функцию `ПредопределенноеЗначение`, так как на клиенте нельзя напрямую обращаться к значениям перечислений.
src/cf/CommonModules/пбп_ИнтеграцииСлужебный/Ext/Module.bsl (2)
Learnt from: thvvmas
PR: firstBitSportivnaya/PSSL#209
File: src/cf/InformationRegisters/пбп_ИсторияЗагрузкиФайлов.xml:173-211
Timestamp: 2025-02-13T07:34:04.243Z
Learning: В подсистеме управления интеграциями существует справочник истории интеграции, который хранит детальную информацию о загрузке файлов (размер, статус, длительность обработки и т.д.). Регистр пбп_ИсторияЗагрузкиФайлов не должен дублировать эту информацию.
Learnt from: denisushakov
PR: firstBitSportivnaya/PSSL#163
File: src/cf/CommonModules/пбп_ПредопределенныеЗначенияСлужебный/Ext/Module.bsl:375-411
Timestamp: 2024-12-12T15:04:03.415Z
Learning: В процедуре `ОбработатьДублиИдентификаторов` в файле `src/cf/CommonModules/пбп_ПредопределенныеЗначенияСлужебный/Ext/Module.bsl` допустимо удалять строки из `ТаблицаПредопределенных` внутри цикла, если перебор осуществляется по массиву строк для удаления, а не по самой таблице.
src/cf/Catalogs/пбп_ТипыИнтеграций.xml (4)
Learnt from: thvvmas
PR: firstBitSportivnaya/PSSL#187
File: src/cf/CommonModules/пбп_ИнтеграцииСлужебный/Ext/Module.bsl:321-337
Timestamp: 2025-01-13T14:59:32.507Z
Learning: В процедуре ДобавитьСоответствияОбъектовИнтегрируемыхСистем регистра сведений пбп_СоответствиеОбъектовИнтегрируемыхСистем не требуется дополнительная обработка конкурентных изменений, так как запись набора записей происходит с замещением, что обеспечивает атомарность операции на уровне платформы 1С.
Learnt from: denisushakov
PR: firstBitSportivnaya/PSSL#144
File: src/cf/CommonForms/пбп_ФормаРазрешенияКонфликтовПредопределенныхЭлементов/Ext/Form/Module.bsl:221-224
Timestamp: 2024-11-19T12:53:46.472Z
Learning: В клиентском коде на языке платформы 1С:Предприятие, в файле `src/cf/CommonForms/пбп_ФормаРазрешенияКонфликтовПредопределенныхЭлементов/Ext/Form/Module.bsl`, при сравнении значений перечислений необходимо использовать функцию `ПредопределенноеЗначение`, так как на клиенте нельзя напрямую обращаться к значениям перечислений.
Learnt from: thvvmas
PR: firstBitSportivnaya/PSSL#247
File: src/cf/CommonForms/пбп_ФормаПодключенияКБазе1С/Ext/Form/Module.bsl:201-224
Timestamp: 2025-04-02T14:15:59.710Z
Learning: Процедура `УказатьПутьКФайлуИЗакрытьФорму` в контексте форм подключения к базам 1С является унифицированной и не требует рефакторинга для избежания дублирования кода.
Learnt from: denisushakov
PR: firstBitSportivnaya/PSSL#153
File: src/cf/ChartsOfCharacteristicTypes/пбп_ПредопределенныеЗначения/Forms/ФормаЭлемента/Ext/Form/Module.bsl:174-186
Timestamp: 2024-11-29T07:21:40.502Z
Learning: В случаях, когда для установки свойства каждого элемента формы используется функция из БСП, следует использовать `пбп_ПереадресацияКлиентСервер`.
src/cf/Catalogs/пбп_НастройкиИнтеграции/Forms/ФормаЭлемента/Ext/Form/Module.bsl (13)
Learnt from: thvvmas
PR: firstBitSportivnaya/PSSL#247
File: src/cf/DataProcessors/пбп_УниверсальнаяЗагрузкаИзФайлаЧерезТабличныйДокумент/Forms/Форма/Ext/Form/Module.bsl:158-221
Timestamp: 2025-04-02T14:17:56.837Z
Learning: In the procedure `ЗагрузитьНастройкиНаСервере` in the ПБП library, validation of correctly filled requisites is handled by XSD schema validation, with additional runtime checks for matching form requisite names and XML file attributes.
Learnt from: thvvmas
PR: firstBitSportivnaya/PSSL#187
File: src/cf/CommonModules/пбп_ИнтеграцииСлужебный/Ext/Module.bsl:321-337
Timestamp: 2025-01-13T14:59:32.507Z
Learning: В процедуре ДобавитьСоответствияОбъектовИнтегрируемыхСистем регистра сведений пбп_СоответствиеОбъектовИнтегрируемыхСистем не требуется дополнительная обработка конкурентных изменений, так как запись набора записей происходит с замещением, что обеспечивает атомарность операции на уровне платформы 1С.
Learnt from: denisushakov
PR: firstBitSportivnaya/PSSL#153
File: src/cf/ChartsOfCharacteristicTypes/пбп_ПредопределенныеЗначения/Forms/ФормаЭлемента/Ext/Form/Module.bsl:174-186
Timestamp: 2024-11-29T07:21:40.502Z
Learning: В случаях, когда для установки свойства каждого элемента формы используется функция из БСП, следует использовать `пбп_ПереадресацияКлиентСервер`.
Learnt from: denisushakov
PR: firstBitSportivnaya/PSSL#144
File: src/cf/CommonForms/пбп_ФормаРазрешенияКонфликтовПредопределенныхЭлементов/Ext/Form/Module.bsl:221-224
Timestamp: 2024-11-19T12:53:46.472Z
Learning: В клиентском коде на языке платформы 1С:Предприятие, в файле `src/cf/CommonForms/пбп_ФормаРазрешенияКонфликтовПредопределенныхЭлементов/Ext/Form/Module.bsl`, при сравнении значений перечислений необходимо использовать функцию `ПредопределенноеЗначение`, так как на клиенте нельзя напрямую обращаться к значениям перечислений.
Learnt from: thvvmas
PR: firstBitSportivnaya/PSSL#247
File: src/cf/CommonForms/пбп_ФормаПодключенияКБазе1С/Ext/Form/Module.bsl:201-224
Timestamp: 2025-04-02T14:15:59.710Z
Learning: Процедура `УказатьПутьКФайлуИЗакрытьФорму` в контексте форм подключения к базам 1С является унифицированной и не требует рефакторинга для избежания дублирования кода.
Learnt from: DenisUshakov
PR: firstBitSportivnaya/PSSL#0
File: :0-0
Timestamp: 2024-07-29T10:13:46.428Z
Learning: The function `СоздатьСтраница` in the `РаботаСФормами` module can be called with omitted parameters, which are then handled as optional with default values being used.
Learnt from: DenisUshakov
PR: firstBitSportivnaya/PSSL#0
File: :0-0
Timestamp: 2024-10-20T19:13:35.868Z
Learning: The function `СоздатьСтраница` in the `РаботаСФормами` module can be called with omitted parameters, which are then handled as optional with default values being used.
Learnt from: thvvmas
PR: firstBitSportivnaya/PSSL#247
File: src/cf/DataProcessors/пбп_УниверсальнаяЗагрузкаИзФайлаЧерезТабличныйДокумент/Forms/Форма/Ext/Form/Module.bsl:224-297
Timestamp: 2025-04-02T14:19:04.257Z
Learning: В функции `СохранитьНастройкиНаСервере` переменная `ТаблицаXDTO` использует конкретный тип XDTO-пакета, что исключает возможность смешения данных при работе с несколькими таблицами настроек.
Learnt from: denisushakov
PR: firstBitSportivnaya/PSSL#153
File: src/cf/Catalogs/пбп_ПользовательскиеФункции/Forms/ФормаСтруктуры/Ext/Form/Module.bsl:61-64
Timestamp: 2024-11-29T06:59:28.505Z
Learning: В модуле `пбп_ПереадресацияКлиентСервер` собираются только методы из БСП, остальные методы располагаются согласно логике подсистемы.
Learnt from: thvvmas
PR: firstBitSportivnaya/PSSL#190
File: src/cf/DataProcessors/пбп_ВалидаторПакетов/Ext/ObjectModule.bsl:33-35
Timestamp: 2025-01-14T19:55:48.869Z
Learning: In 1C:Enterprise (BSL), attributes of data processors defined in their metadata are directly accessible within the object module without requiring explicit declaration using `Перем`. For example, attributes `Ошибки` and `Предупреждения` in `пбп_ВалидаторПакетов` data processor can be used directly in its object module.
Learnt from: denisushakov
PR: firstBitSportivnaya/PSSL#163
File: src/cf/CommonModules/пбп_ПредопределенныеЗначенияСлужебный/Ext/Module.bsl:375-411
Timestamp: 2024-12-12T15:04:03.415Z
Learning: В процедуре `ОбработатьДублиИдентификаторов` в файле `src/cf/CommonModules/пбп_ПредопределенныеЗначенияСлужебный/Ext/Module.bsl` допустимо удалять строки из `ТаблицаПредопределенных` внутри цикла, если перебор осуществляется по массиву строк для удаления, а не по самой таблице.
Learnt from: thvvmas
PR: firstBitSportivnaya/PSSL#190
File: src/cf/CommonModules/пбп_ВалидаторПакетов/Ext/Module.bsl:79-122
Timestamp: 2025-01-27T22:01:40.089Z
Learning: В функции ВалидироватьПримитивныеТипы модуля пбп_ВалидаторПакетов идентификация ошибок происходит по именам полей структуры JSON внутри функции пбп_ВалидаторПакетовСлужебный.Валидировать, что делает хранение отдельных идентификаторов избыточным.
Learnt from: denisushakov
PR: firstBitSportivnaya/PSSL#163
File: src/cf/CommonModules/пбп_ПредопределенныеЗначенияСлужебный/Ext/Module.bsl:217-274
Timestamp: 2024-12-12T15:00:30.157Z
Learning: В языке BSL функция `ЗначениеЗаполнено(ТаблицаЗначений)` эффективно проверяет наличие записей в таблице значений.
src/cf/Catalogs/пбп_НастройкиИнтеграции.xml (1)
Learnt from: thvvmas
PR: firstBitSportivnaya/PSSL#247
File: src/cf/DataProcessors/пбп_УниверсальнаяЗагрузкаИзФайлаЧерезТабличныйДокумент/Forms/Форма/Ext/Form/Module.bsl:158-221
Timestamp: 2025-04-02T14:17:56.837Z
Learning: In the procedure `ЗагрузитьНастройкиНаСервере` in the ПБП library, validation of correctly filled requisites is handled by XSD schema validation, with additional runtime checks for matching form requisite names and XML file attributes.
src/cf/Catalogs/пбп_ТипыИнтеграций/Forms/ФормаЭлемента/Ext/Form/Module.bsl (6)
Learnt from: denisushakov
PR: firstBitSportivnaya/PSSL#144
File: src/cf/CommonForms/пбп_ФормаРазрешенияКонфликтовПредопределенныхЭлементов/Ext/Form/Module.bsl:221-224
Timestamp: 2024-11-19T12:53:46.472Z
Learning: В клиентском коде на языке платформы 1С:Предприятие, в файле `src/cf/CommonForms/пбп_ФормаРазрешенияКонфликтовПредопределенныхЭлементов/Ext/Form/Module.bsl`, при сравнении значений перечислений необходимо использовать функцию `ПредопределенноеЗначение`, так как на клиенте нельзя напрямую обращаться к значениям перечислений.
Learnt from: denisushakov
PR: firstBitSportivnaya/PSSL#153
File: src/cf/ChartsOfCharacteristicTypes/пбп_ПредопределенныеЗначения/Forms/ФормаЭлемента/Ext/Form/Module.bsl:174-186
Timestamp: 2024-11-29T07:21:40.502Z
Learning: В случаях, когда для установки свойства каждого элемента формы используется функция из БСП, следует использовать `пбп_ПереадресацияКлиентСервер`.
Learnt from: thvvmas
PR: firstBitSportivnaya/PSSL#247
File: src/cf/DataProcessors/пбп_УниверсальнаяЗагрузкаИзФайлаЧерезТабличныйДокумент/Forms/Форма/Ext/Form/Module.bsl:158-221
Timestamp: 2025-04-02T14:17:56.837Z
Learning: In the procedure `ЗагрузитьНастройкиНаСервере` in the ПБП library, validation of correctly filled requisites is handled by XSD schema validation, with additional runtime checks for matching form requisite names and XML file attributes.
Learnt from: denisushakov
PR: firstBitSportivnaya/PSSL#153
File: src/cf/Catalogs/пбп_ПользовательскиеФункции/Forms/ФормаСтруктуры/Ext/Form/Module.bsl:61-64
Timestamp: 2024-11-29T06:59:28.505Z
Learning: В модуле `пбп_ПереадресацияКлиентСервер` собираются только методы из БСП, остальные методы располагаются согласно логике подсистемы.
Learnt from: thvvmas
PR: firstBitSportivnaya/PSSL#190
File: src/cf/CommonModules/пбп_ВалидаторПакетов/Ext/Module.bsl:79-122
Timestamp: 2025-01-27T22:01:40.089Z
Learning: В функции ВалидироватьПримитивныеТипы модуля пбп_ВалидаторПакетов идентификация ошибок происходит по именам полей структуры JSON внутри функции пбп_ВалидаторПакетовСлужебный.Валидировать, что делает хранение отдельных идентификаторов избыточным.
Learnt from: thvvmas
PR: firstBitSportivnaya/PSSL#247
File: src/cf/DataProcessors/пбп_УниверсальнаяЗагрузкаИзФайлаЧерезТабличныйДокумент/Forms/Форма/Ext/Form/Module.bsl:224-297
Timestamp: 2025-04-02T14:19:04.257Z
Learning: В функции `СохранитьНастройкиНаСервере` переменная `ТаблицаXDTO` использует конкретный тип XDTO-пакета, что исключает возможность смешения данных при работе с несколькими таблицами настроек.
src/cf/Catalogs/пбп_ТипыИнтеграций/Forms/ФормаЭлемента/Ext/Form.xml (2)
Learnt from: thvvmas
PR: firstBitSportivnaya/PSSL#247
File: src/cf/DataProcessors/пбп_УниверсальнаяЗагрузкаИзФайлаЧерезТабличныйДокумент/Forms/Форма/Ext/Form/Module.bsl:158-221
Timestamp: 2025-04-02T14:17:56.837Z
Learning: In the procedure `ЗагрузитьНастройкиНаСервере` in the ПБП library, validation of correctly filled requisites is handled by XSD schema validation, with additional runtime checks for matching form requisite names and XML file attributes.
Learnt from: thvvmas
PR: firstBitSportivnaya/PSSL#247
File: src/cf/CommonForms/пбп_ФормаПодключенияКБазе1С/Ext/Form/Module.bsl:201-224
Timestamp: 2025-04-02T14:15:59.710Z
Learning: Процедура `УказатьПутьКФайлуИЗакрытьФорму` в контексте форм подключения к базам 1С является унифицированной и не требует рефакторинга для избежания дублирования кода.
src/cf/CommonModules/пбп_РаботаСФормами/Ext/Module.bsl (10)
Learnt from: thvvmas
PR: firstBitSportivnaya/PSSL#247
File: src/cf/DataProcessors/пбп_УниверсальнаяЗагрузкаИзФайлаЧерезТабличныйДокумент/Forms/Форма/Ext/Form/Module.bsl:158-221
Timestamp: 2025-04-02T14:17:56.837Z
Learning: In the procedure `ЗагрузитьНастройкиНаСервере` in the ПБП library, validation of correctly filled requisites is handled by XSD schema validation, with additional runtime checks for matching form requisite names and XML file attributes.
Learnt from: DenisUshakov
PR: firstBitSportivnaya/PSSL#0
File: :0-0
Timestamp: 2024-10-20T19:13:35.868Z
Learning: The function `СоздатьСтраница` in the `РаботаСФормами` module can be called with omitted parameters, which are then handled as optional with default values being used.
Learnt from: DenisUshakov
PR: firstBitSportivnaya/PSSL#0
File: :0-0
Timestamp: 2024-07-29T10:13:46.428Z
Learning: The function `СоздатьСтраница` in the `РаботаСФормами` module can be called with omitted parameters, which are then handled as optional with default values being used.
Learnt from: denisushakov
PR: firstBitSportivnaya/PSSL#153
File: src/cf/ChartsOfCharacteristicTypes/пбп_ПредопределенныеЗначения/Forms/ФормаЭлемента/Ext/Form/Module.bsl:174-186
Timestamp: 2024-11-29T07:21:40.502Z
Learning: В случаях, когда для установки свойства каждого элемента формы используется функция из БСП, следует использовать `пбп_ПереадресацияКлиентСервер`.
Learnt from: thvvmas
PR: firstBitSportivnaya/PSSL#190
File: src/cf/DataProcessors/пбп_ВалидаторПакетов/Ext/ObjectModule.bsl:33-35
Timestamp: 2025-01-14T19:55:48.869Z
Learning: In 1C:Enterprise (BSL), attributes of data processors defined in their metadata are directly accessible within the object module without requiring explicit declaration using `Перем`. For example, attributes `Ошибки` and `Предупреждения` in `пбп_ВалидаторПакетов` data processor can be used directly in its object module.
Learnt from: denisushakov
PR: firstBitSportivnaya/PSSL#144
File: src/cf/CommonForms/пбп_ФормаРазрешенияКонфликтовПредопределенныхЭлементов/Ext/Form/Module.bsl:221-224
Timestamp: 2024-11-19T12:53:46.472Z
Learning: В клиентском коде на языке платформы 1С:Предприятие, в файле `src/cf/CommonForms/пбп_ФормаРазрешенияКонфликтовПредопределенныхЭлементов/Ext/Form/Module.bsl`, при сравнении значений перечислений необходимо использовать функцию `ПредопределенноеЗначение`, так как на клиенте нельзя напрямую обращаться к значениям перечислений.
Learnt from: thvvmas
PR: firstBitSportivnaya/PSSL#247
File: src/cf/CommonForms/пбп_ФормаПодключенияКБазе1С/Ext/Form/Module.bsl:201-224
Timestamp: 2025-04-02T14:15:59.710Z
Learning: Процедура `УказатьПутьКФайлуИЗакрытьФорму` в контексте форм подключения к базам 1С является унифицированной и не требует рефакторинга для избежания дублирования кода.
Learnt from: denisushakov
PR: firstBitSportivnaya/PSSL#163
File: src/cf/CommonModules/пбп_ПредопределенныеЗначенияСлужебный/Ext/Module.bsl:375-411
Timestamp: 2024-12-12T15:04:03.415Z
Learning: В процедуре `ОбработатьДублиИдентификаторов` в файле `src/cf/CommonModules/пбп_ПредопределенныеЗначенияСлужебный/Ext/Module.bsl` допустимо удалять строки из `ТаблицаПредопределенных` внутри цикла, если перебор осуществляется по массиву строк для удаления, а не по самой таблице.
Learnt from: thvvmas
PR: firstBitSportivnaya/PSSL#190
File: src/cf/DataProcessors/пбп_ВалидаторПакетов.xml:79-79
Timestamp: 2025-01-14T19:54:17.412Z
Learning: В 1C:Enterprise тип "Массив" нельзя указать как тип реквизита объекта. В таких случаях тип реквизита оставляется пустым (<Type/>), а инициализация массива происходит в коде.
Learnt from: thvvmas
PR: firstBitSportivnaya/PSSL#187
File: src/cf/CommonModules/пбп_ИнтеграцииСлужебный/Ext/Module.bsl:321-337
Timestamp: 2025-01-13T14:59:32.507Z
Learning: В процедуре ДобавитьСоответствияОбъектовИнтегрируемыхСистем регистра сведений пбп_СоответствиеОбъектовИнтегрируемыхСистем не требуется дополнительная обработка конкурентных изменений, так как запись набора записей происходит с замещением, что обеспечивает атомарность операции на уровне платформы 1С.
src/cf/Catalogs/пбп_НастройкиИнтеграции/Forms/ФормаЭлемента/Ext/Form.xml (1)
Learnt from: thvvmas
PR: firstBitSportivnaya/PSSL#247
File: src/cf/DataProcessors/пбп_УниверсальнаяЗагрузкаИзФайлаЧерезТабличныйДокумент/Forms/Форма/Ext/Form/Module.bsl:158-221
Timestamp: 2025-04-02T14:17:56.837Z
Learning: In the procedure `ЗагрузитьНастройкиНаСервере` in the ПБП library, validation of correctly filled requisites is handled by XSD schema validation, with additional runtime checks for matching form requisite names and XML file attributes.
src/cf/CommonModules/пбп_RabbitMQ/Ext/Module.bsl (1)
Learnt from: denisushakov
PR: firstBitSportivnaya/PSSL#153
File: src/cf/Catalogs/пбп_ПользовательскиеФункции/Forms/ФормаСтруктуры/Ext/Form/Module.bsl:61-64
Timestamp: 2024-11-29T06:59:28.505Z
Learning: В модуле `пбп_ПереадресацияКлиентСервер` собираются только методы из БСП, остальные методы располагаются согласно логике подсистемы.
🔇 Additional comments (11)
src/cf/Enums/пбп_ТипыТочкиОбменаRabbitMQ.xml (1)
1-79: Реализация перечисления типов точки обмена RabbitMQ выглядит корректно.Перечисление содержит все стандартные типы точек обмена RabbitMQ (direct, fanout, topic), настройки метаданных соответствуют назначению.
src/cf/Configuration.xml (2)
344-345: Регистрация новых общих модулей RabbitMQ выполнена корректно.Модули добавлены в правильном порядке и соответствуют соглашениям именования проекта.
389-389: Регистрация нового перечисления выполнена корректно.Перечисление
пбп_ТипыТочкиОбменаRabbitMQдобавлено в соответствующую секцию конфигурации.src/cf/CommonModules/пбп_КоннекторHTTP/Ext/Module.bsl (1)
2495-2495: Хорошее улучшение инициализации поля "Порт".Явное задание значения 0 для поля "Порт" в конструкторе cookie улучшает предсказуемость кода и согласуется с переходом к числовому представлению портов в настройках интеграции.
src/cf/Catalogs/пбп_ТипыИнтеграций/Forms/ФормаЭлемента.xml (1)
1-21: Метаданные формы соответствуют стандартам платформы.Структура XML-файла корректна, все необходимые пространства имен объявлены, форма правильно настроена как управляемая.
src/cf/CommonModules/пбп_RabbitMQ.xml (1)
1-23: Конфигурация модуля корректна для серверной интеграции.Настройки модуля подходят для реализации клиента RabbitMQ: серверное выполнение, поддержка внешних соединений, отсутствие привилегированного режима.
src/cf/Catalogs/пбп_ТипыИнтеграций.xml (2)
63-63: Назначение формы по умолчанию корректно.Связывание каталога с новой формой обеспечит использование расширенного интерфейса для управления дополнительными параметрами.
245-245: Ссылка на форму добавлена корректно.Добавление формы в дочерние объекты каталога обеспечивает правильную структуру метаданных.
src/cf/CommonModules/пбп_РаботаСФормами/Ext/Module.bsl (1)
176-189: Улучшение валидации и функциональности процедуры создания реквизитов.Изменения корректно реализуют:
- Обязательную проверку наличия свойства "ОписаниеТипа" в каждом реквизите
- Использование типизированного описания при создании реквизита
- Копирование дополнительных свойств из структуры "СтруктураСвойств"
Эти улучшения повышают надежность создания динамических реквизитов и поддерживают расширенную функциональность.
src/cf/Catalogs/пбп_ТипыИнтеграций/Forms/ФормаЭлемента/Ext/Form.xml (1)
103-104: Проверьте наличие обработчика…ТипВФормеНачалоВыбораФорму спасает только корректная реализация этого события: оно обязано
– заполнятьСписокТипов,
– возвращать пользователю непустой ValueList,
– корректно обрабатывать отмену выбора.Убедитесь, что процедура присутствует в модуле формы и не вызывает модальный ввод/вывод на сервере.
src/cf/Catalogs/пбп_НастройкиИнтеграции/Forms/ФормаЭлемента/Ext/Form.xml (1)
66-70: Проверьте обработчикЭтоТехническаяНастройкаПриИзмененииФлаг влияет на доступность ряда полей (как минимум строка подключения). Убедитесь, что в обработчике корректно переключается
ReadOnly/Visibleи не вызываются клиент-серверные обращения в цикле.
There was a problem hiding this comment.
🛠️ Refactor suggestion
Улучшить валидацию порта для соответствия сетевым стандартам.
Изменение типа порта с строкового на числовой правильное решение, но следует ограничить диапазон значений:
- Минимальное значение должно быть 1 (или 0 для некоторых случаев)
- Максимальное значение должно быть 65535 (стандартный диапазон портов)
- Убрать возможность отрицательных значений
Примените следующие изменения:
<v8:NumberQualifiers>
<v8:Digits>5</v8:Digits>
<v8:FractionDigits>0</v8:FractionDigits>
- <v8:AllowedSign>Any</v8:AllowedSign>
+ <v8:AllowedSign>Nonnegative</v8:AllowedSign>
</v8:NumberQualifiers>И добавьте ограничения:
-<MinValue xsi:nil="true"/>
-<MaxValue xsi:nil="true"/>
+<MinValue xsi:type="xs:decimal">0</MinValue>
+<MaxValue xsi:type="xs:decimal">65535</MaxValue>Also applies to: 673-673
🤖 Prompt for AI Agents
In src/cf/Catalogs/пбп_НастройкиИнтеграции.xml around lines 654 to 661 and line
673, the port type is defined as xs:decimal without range restrictions, allowing
invalid port values including negatives. To fix this, add validation constraints
to restrict the port value between 0 or 1 (depending on use case) and 65535, and
disallow negative numbers. Implement these constraints using appropriate XML
schema facets such as minInclusive and maxInclusive to enforce the valid port
range.
There was a problem hiding this comment.
Потенциальная проблема с обработкой результата запроса
После вызова Выборка.Сбросить() в строке 79, выборка снова используется в цикле начиная со строки 83. Это может привести к ошибке, так как после сброса нужно снова вызвать Выбрать().
Предлагаю исправить:
- Выборка.Сбросить();
+ Выборка = Запрос.Выполнить().Выбрать();Или сохранить результат запроса и использовать две отдельные выборки.
📝 Committable suggestion
‼️ IMPORTANT
Carefully review the code before committing. Ensure that it accurately replaces the highlighted code, contains no missing lines, and has no issues with indentation. Thoroughly test & benchmark the code to ensure it meets the requirements.
| Выборка.Сбросить(); | |
| пбп_РаботаСФормами.СоздатьРеквизиты(ЭтотОбъект, СтруктураРеквизитов); | |
| Пока Выборка.Следующий() Цикл | |
| пбп_РаботаСФормами.СоздатьПоле(ЭтотОбъект, Выборка.ИдПараметра, Элементы.ГруппаДополнительныеНастройки, Выборка.ПараметрПредставление, 1, Выборка.ИдПараметра); | |
| Если Выборка.Значение <> null Тогда | |
| ЭтотОбъект[Выборка.ИдПараметра] = Выборка.Значение; | |
| КонецЕсли; | |
| КонецЦикла; | |
| Выборка = Запрос.Выполнить().Выбрать(); | |
| пбп_РаботаСФормами.СоздатьРеквизиты(ЭтотОбъект, СтруктураРеквизитов); | |
| Пока Выборка.Следующий() Цикл | |
| пбп_РаботаСФормами.СоздатьПоле(ЭтотОбъект, Выборка.ИдПараметра, Элементы.ГруппаДополнительныеНастройки, Выборка.ПараметрПредставление, 1, Выборка.ИдПараметра); | |
| Если Выборка.Значение <> null Тогда | |
| ЭтотОбъект[Выборка.ИдПараметра] = Выборка.Значение; | |
| КонецЕсли; | |
| КонецЦикла; |
🤖 Prompt for AI Agents
In
src/cf/Catalogs/пбп_НастройкиИнтеграции/Forms/ФормаЭлемента/Ext/Form/Module.bsl
around lines 79 to 88, after calling Выборка.Сбросить(), the code continues to
iterate over Выборка without reinitializing it with Выбрать(), which can cause
errors. To fix this, either call Выборка.Выбрать() again after Сбросить() before
the loop or use two separate selection objects to preserve the query results and
avoid invalid iteration.
There was a problem hiding this comment.
Риск рассинхронизации Тип ↔ ТипВФорме
Сейчас на форме редактируется только колонка-«тень» ТипВФорме. Если при сохранении не копировать её значение в штатное поле табличной части Тип, данные потеряются. Проверьте логику в ПередЗаписьюНаСервере/ПриЗаписиНаСервере.
🤖 Prompt for AI Agents
In src/cf/Catalogs/пбп_ТипыИнтеграций/Forms/ФормаЭлемента/Ext/Form.xml around
lines 117 to 134, the form edits only the shadow column ТипВФорме, but the main
table column Тип is not updated, risking data loss. To fix this, ensure that in
the event handlers ПередЗаписьюНаСервере or ПриЗаписиНаСервере, the value from
ТипВФорме is explicitly copied back to Тип before saving to the server.
There was a problem hiding this comment.
Дублирование элементов для одного DataPath
Обе ячейки (СписокНастроекЗначение и …Представление) ссылаются на СписокНастроек.Значение. Это приводит к двум редакторам одной колонки, конфликтам фокуса и лишним вызовам OnChange.
– Если нужно скрыть пароль, оставьте один элемент с PasswordMode="true".
– Для «представления» заведите отдельную колонку.
🤖 Prompt for AI Agents
In src/cf/Catalogs/пбп_НастройкиИнтеграции/Forms/ФормаЭлемента/Ext/Form.xml
around lines 338 to 351, there are two InputField elements bound to the same
DataPath "СписокНастроек.Значение", causing duplicate editors, focus conflicts,
and redundant OnChange calls. To fix this, keep only one InputField with
PasswordMode="true" for the password input, and create a separate DataPath and
InputField for the "представление" (representation) instead of reusing the same
DataPath.
There was a problem hiding this comment.
🛠️ Refactor suggestion
Поле «Порт» без числового формата
Тип реквизита сменился на Decimal, но в поле не задано ни форматной строки, ни ограничения ввода (маска). Пользователю легко набрать «3306;DROP …».
<DataPath>Объект.Порт</DataPath>
+ <Format>ЧГ=0;(Ч)</Format> <!-- целое положительное -->📝 Committable suggestion
‼️ IMPORTANT
Carefully review the code before committing. Ensure that it accurately replaces the highlighted code, contains no missing lines, and has no issues with indentation. Thoroughly test & benchmark the code to ensure it meets the requirements.
| <DataPath>Объект.Порт</DataPath> | |
| <AutoMaxWidth>false</AutoMaxWidth> | |
| <HorizontalStretch>false</HorizontalStretch> | |
| <ContextMenu name="ПортКонтекстноеМеню" id="38"/> | |
| <ExtendedTooltip name="ПортРасширеннаяПодсказка" id="39"/> | |
| </InputField> | |
| <DataPath>Объект.Порт</DataPath> | |
| + <Format>ЧГ=0;(Ч)</Format> <!-- целое положительное --> | |
| <AutoMaxWidth>false</AutoMaxWidth> | |
| <HorizontalStretch>false</HorizontalStretch> | |
| <ContextMenu name="ПортКонтекстноеМеню" id="38"/> | |
| <ExtendedTooltip name="ПортРасширеннаяПодсказка" id="39"/> |
🤖 Prompt for AI Agents
In src/cf/Catalogs/пбп_НастройкиИнтеграции/Forms/ФормаЭлемента/Ext/Form.xml
around lines 144 to 149, the "Порт" input field lacks a numeric format or input
mask despite the attribute type being Decimal. To fix this, add a numeric format
string or input mask to the field definition to restrict input to valid decimal
numbers and prevent invalid or malicious input.
There was a problem hiding this comment.
Actionable comments posted: 5
♻️ Duplicate comments (3)
src/cf/Catalogs/пбп_НастройкиИнтеграции/Forms/ФормаЭлемента/Ext/Form/Module.bsl (1)
663-693: Ошибка работы с выборкой после сбросаПосле вызова
Выборка.Сбросить()в строке 673, выборка снова используется в цикле со строки 677. Это приведет к ошибке выполнения.Исправьте код:
- Выборка.Сбросить(); + Выборка = Запрос.Выполнить().Выбрать();Или сохраните результат запроса и используйте две отдельные выборки.
src/cf/Catalogs/пбп_НастройкиИнтеграции/Forms/ФормаЭлемента/Ext/Form.xml (2)
338-351: Дублирование элементов для одного DataPathОба элемента ссылаются на
СписокНастроек.Значение, что приводит к конфликтам и лишним вызовам OnChange.Оставьте один элемент с
PasswordMode="true"для скрытия паролей или создайте отдельную колонку для представления.
143-149: Отсутствует числовой формат для поля ПортПоле изменено на тип Decimal, но не задан формат ввода.
Добавьте формат для ограничения ввода:
<InputField name="Порт" id="37"> <DataPath>Объект.Порт</DataPath> + <Format>ЧГ=0</Format> <AutoMaxWidth>false</AutoMaxWidth>
🧹 Nitpick comments (1)
src/cf/CommonModules/пбп_RabbitMQ/Ext/Module.bsl (1)
201-240: Отличная реализация механизма повторовПроцедура корректно обрабатывает повторные попытки с логированием промежуточных ошибок.
Рассмотрите возможность вынести параметры по умолчанию в константы модуля для удобства настройки:
+Функция КоличествоПовторовПоУмолчанию() + Возврат 3; +КонецФункции + +Функция ИнтервалМеждуПовторамиМС() + Возврат 500; +КонецФункции
📜 Review details
Configuration used: .coderabbit.yaml
Review profile: CHILL
Plan: Pro
📒 Files selected for processing (4)
src/cf/Catalogs/пбп_НастройкиИнтеграции/Forms/ФормаЭлемента/Ext/Form.xml(2 hunks)src/cf/Catalogs/пбп_НастройкиИнтеграции/Forms/ФормаЭлемента/Ext/Form/Module.bsl(4 hunks)src/cf/Catalogs/пбп_ТипыИнтеграций/Forms/ФормаЭлемента/Ext/Form/Module.bsl(1 hunks)src/cf/CommonModules/пбп_RabbitMQ/Ext/Module.bsl(1 hunks)
🚧 Files skipped from review as they are similar to previous changes (1)
- src/cf/Catalogs/пбп_ТипыИнтеграций/Forms/ФормаЭлемента/Ext/Form/Module.bsl
🧰 Additional context used
🧠 Learnings (4)
📓 Common learnings
Learnt from: ivanmolodec
PR: firstBitSportivnaya/PSSL#0
File: :0-0
Timestamp: 2024-07-29T10:13:46.428Z
Learning: User: ivanmolodec
URL: https://github.com/firstBitSportivnaya/PSSL/pull/52
Timestamp: 2024-04-19T09:46:50.450Z
Learning: Use the Russian language for all interactions related to the repository `firstBitSportivnaya/PSSL`.
Learnt from: ivanmolodec
PR: firstBitSportivnaya/PSSL#0
File: :0-0
Timestamp: 2024-07-29T10:13:46.428Z
Learning: Communicate in Russian for any interactions related to the documentation and code in the repository `firstBitSportivnaya/PSSL`.
Learnt from: ivanmolodec
PR: firstBitSportivnaya/PSSL#0
File: :0-0
Timestamp: 2024-10-20T19:13:35.868Z
Learning: Communicate in Russian for any interactions related to the documentation and code in the repository `firstBitSportivnaya/PSSL`.
Learnt from: DenisUshakov
PR: firstBitSportivnaya/PSSL#0
File: :0-0
Timestamp: 2024-07-29T10:13:46.428Z
Learning: Use the Russian language for all interactions related to the repository `firstBitSportivnaya/PSSL`.
Learnt from: DenisUshakov
PR: firstBitSportivnaya/PSSL#0
File: :0-0
Timestamp: 2024-10-20T19:13:35.868Z
Learning: Use the Russian language for all interactions related to the repository `firstBitSportivnaya/PSSL`.
Learnt from: DenisUshakov
PR: firstBitSportivnaya/PSSL#0
File: :0-0
Timestamp: 2024-10-20T19:13:35.868Z
Learning: DenisUshakov prefers not to surround fenced code blocks with blank lines in markdown files for the project `firstBitSportivnaya/PSSL`.
Learnt from: DenisUshakov
PR: firstBitSportivnaya/PSSL#0
File: :0-0
Timestamp: 2024-07-29T10:13:46.428Z
Learning: DenisUshakov prefers not to surround fenced code blocks with blank lines in markdown files for the project `firstBitSportivnaya/PSSL`.
Learnt from: DenisUshakov
PR: firstBitSportivnaya/PSSL#0
File: :0-0
Timestamp: 2024-10-20T19:13:35.868Z
Learning: DenisUshakov prefers not to have blank lines before code blocks in markdown to emphasize the block. This style should be respected in future reviews of their documentation.
Learnt from: DenisUshakov
PR: firstBitSportivnaya/PSSL#0
File: :0-0
Timestamp: 2024-07-29T10:13:46.428Z
Learning: DenisUshakov prefers not to have blank lines before code blocks in markdown to emphasize the block. This style should be respected in future reviews of their documentation.
src/cf/Catalogs/пбп_НастройкиИнтеграции/Forms/ФормаЭлемента/Ext/Form/Module.bsl (13)
Learnt from: thvvmas
PR: firstBitSportivnaya/PSSL#247
File: src/cf/DataProcessors/пбп_УниверсальнаяЗагрузкаИзФайлаЧерезТабличныйДокумент/Forms/Форма/Ext/Form/Module.bsl:158-221
Timestamp: 2025-04-02T14:17:56.837Z
Learning: In the procedure `ЗагрузитьНастройкиНаСервере` in the ПБП library, validation of correctly filled requisites is handled by XSD schema validation, with additional runtime checks for matching form requisite names and XML file attributes.
Learnt from: thvvmas
PR: firstBitSportivnaya/PSSL#187
File: src/cf/CommonModules/пбп_ИнтеграцииСлужебный/Ext/Module.bsl:321-337
Timestamp: 2025-01-13T14:59:32.507Z
Learning: В процедуре ДобавитьСоответствияОбъектовИнтегрируемыхСистем регистра сведений пбп_СоответствиеОбъектовИнтегрируемыхСистем не требуется дополнительная обработка конкурентных изменений, так как запись набора записей происходит с замещением, что обеспечивает атомарность операции на уровне платформы 1С.
Learnt from: denisushakov
PR: firstBitSportivnaya/PSSL#153
File: src/cf/ChartsOfCharacteristicTypes/пбп_ПредопределенныеЗначения/Forms/ФормаЭлемента/Ext/Form/Module.bsl:174-186
Timestamp: 2024-11-29T07:21:40.502Z
Learning: В случаях, когда для установки свойства каждого элемента формы используется функция из БСП, следует использовать `пбп_ПереадресацияКлиентСервер`.
Learnt from: thvvmas
PR: firstBitSportivnaya/PSSL#247
File: src/cf/DataProcessors/пбп_УниверсальнаяЗагрузкаИзФайлаЧерезТабличныйДокумент/Forms/Форма/Ext/Form/Module.bsl:224-297
Timestamp: 2025-04-02T14:19:04.257Z
Learning: В функции `СохранитьНастройкиНаСервере` переменная `ТаблицаXDTO` использует конкретный тип XDTO-пакета, что исключает возможность смешения данных при работе с несколькими таблицами настроек.
Learnt from: thvvmas
PR: firstBitSportivnaya/PSSL#247
File: src/cf/CommonForms/пбп_ФормаПодключенияКБазе1С/Ext/Form/Module.bsl:201-224
Timestamp: 2025-04-02T14:15:59.710Z
Learning: Процедура `УказатьПутьКФайлуИЗакрытьФорму` в контексте форм подключения к базам 1С является унифицированной и не требует рефакторинга для избежания дублирования кода.
Learnt from: thvvmas
PR: firstBitSportivnaya/PSSL#190
File: src/cf/DataProcessors/пбп_ВалидаторПакетов/Ext/ObjectModule.bsl:33-35
Timestamp: 2025-01-14T19:55:48.869Z
Learning: In 1C:Enterprise (BSL), attributes of data processors defined in their metadata are directly accessible within the object module without requiring explicit declaration using `Перем`. For example, attributes `Ошибки` and `Предупреждения` in `пбп_ВалидаторПакетов` data processor can be used directly in its object module.
Learnt from: DenisUshakov
PR: firstBitSportivnaya/PSSL#0
File: :0-0
Timestamp: 2024-07-29T10:13:46.428Z
Learning: The function `СоздатьСтраница` in the `РаботаСФормами` module can be called with omitted parameters, which are then handled as optional with default values being used.
Learnt from: DenisUshakov
PR: firstBitSportivnaya/PSSL#0
File: :0-0
Timestamp: 2024-10-20T19:13:35.868Z
Learning: The function `СоздатьСтраница` in the `РаботаСФормами` module can be called with omitted parameters, which are then handled as optional with default values being used.
Learnt from: denisushakov
PR: firstBitSportivnaya/PSSL#153
File: src/cf/Catalogs/пбп_ПользовательскиеФункции/Forms/ФормаСтруктуры/Ext/Form/Module.bsl:61-64
Timestamp: 2024-11-29T06:59:28.505Z
Learning: В модуле `пбп_ПереадресацияКлиентСервер` собираются только методы из БСП, остальные методы располагаются согласно логике подсистемы.
Learnt from: denisushakov
PR: firstBitSportivnaya/PSSL#163
File: src/cf/CommonModules/пбп_ПредопределенныеЗначенияСлужебный/Ext/Module.bsl:375-411
Timestamp: 2024-12-12T15:04:03.415Z
Learning: В процедуре `ОбработатьДублиИдентификаторов` в файле `src/cf/CommonModules/пбп_ПредопределенныеЗначенияСлужебный/Ext/Module.bsl` допустимо удалять строки из `ТаблицаПредопределенных` внутри цикла, если перебор осуществляется по массиву строк для удаления, а не по самой таблице.
Learnt from: denisushakov
PR: firstBitSportivnaya/PSSL#136
File: src/cf/CommonModules/пбп_ПредопределенныеЗначения/Ext/Module.bsl:634-670
Timestamp: 2024-11-01T15:39:13.851Z
Learning: В процедуре `ОбработатьДублиИдентификаторов` нельзя использовать `СтрокиДляУдаления.Сортировать(НаправлениеСортировки.Убыв);` для сортировки массива `СтрокиДляУдаления`.
Learnt from: denisushakov
PR: firstBitSportivnaya/PSSL#144
File: src/cf/CommonForms/пбп_ФормаРазрешенияКонфликтовПредопределенныхЭлементов/Ext/Form/Module.bsl:221-224
Timestamp: 2024-11-19T12:53:46.472Z
Learning: В клиентском коде на языке платформы 1С:Предприятие, в файле `src/cf/CommonForms/пбп_ФормаРазрешенияКонфликтовПредопределенныхЭлементов/Ext/Form/Module.bsl`, при сравнении значений перечислений необходимо использовать функцию `ПредопределенноеЗначение`, так как на клиенте нельзя напрямую обращаться к значениям перечислений.
Learnt from: denisushakov
PR: firstBitSportivnaya/PSSL#163
File: src/cf/CommonModules/пбп_ПредопределенныеЗначенияСлужебный/Ext/Module.bsl:217-274
Timestamp: 2024-12-12T15:00:30.157Z
Learning: В языке BSL функция `ЗначениеЗаполнено(ТаблицаЗначений)` эффективно проверяет наличие записей в таблице значений.
src/cf/CommonModules/пбп_RabbitMQ/Ext/Module.bsl (1)
Learnt from: denisushakov
PR: firstBitSportivnaya/PSSL#153
File: src/cf/Catalogs/пбп_ПользовательскиеФункции/Forms/ФормаСтруктуры/Ext/Form/Module.bsl:61-64
Timestamp: 2024-11-29T06:59:28.505Z
Learning: В модуле `пбп_ПереадресацияКлиентСервер` собираются только методы из БСП, остальные методы располагаются согласно логике подсистемы.
src/cf/Catalogs/пбп_НастройкиИнтеграции/Forms/ФормаЭлемента/Ext/Form.xml (2)
Learnt from: thvvmas
PR: firstBitSportivnaya/PSSL#247
File: src/cf/DataProcessors/пбп_УниверсальнаяЗагрузкаИзФайлаЧерезТабличныйДокумент/Forms/Форма/Ext/Form/Module.bsl:158-221
Timestamp: 2025-04-02T14:17:56.837Z
Learning: In the procedure `ЗагрузитьНастройкиНаСервере` in the ПБП library, validation of correctly filled requisites is handled by XSD schema validation, with additional runtime checks for matching form requisite names and XML file attributes.
Learnt from: thvvmas
PR: firstBitSportivnaya/PSSL#247
File: src/cf/CommonForms/пбп_ФормаПодключенияКБазе1С/Ext/Form/Module.bsl:201-224
Timestamp: 2025-04-02T14:15:59.710Z
Learning: Процедура `УказатьПутьКФайлуИЗакрытьФорму` в контексте форм подключения к базам 1С является унифицированной и не требует рефакторинга для избежания дублирования кода.
🔇 Additional comments (4)
src/cf/CommonModules/пбп_RabbitMQ/Ext/Module.bsl (3)
28-50: Корректная реализация подключенияПроцедура подключения правильно обрабатывает параметры и ошибки.
58-172: Качественная реализация работы с точками обмена и очередямиВсе операции имеют единообразную обработку ошибок и корректную передачу параметров.
453-673: Отличная реализация функций инициализации параметровВсе функции хорошо документированы и имеют понятную структуру. Особенно полезна интеграция с настройками интеграции.
src/cf/Catalogs/пбп_НастройкиИнтеграции/Forms/ФормаЭлемента/Ext/Form/Module.bsl (1)
99-111: Корректное обнуление портаИзменение значения по умолчанию с пустой строки на 0 соответствует новому типу атрибута.
There was a problem hiding this comment.
Необходимо закрыть соединение перед завершением работы
Процедура не вызывает метод отключения от RabbitMQ, что может привести к утечке ресурсов. Необходимо добавить вызов метода отключения.
Предлагаю исправить:
Процедура ЗавершитьРаботуСКомпонентой(Клиент) Экспорт
+ Если Клиент <> Неопределено Тогда
+ Попытка
+ Клиент.Disconnect();
+ Исключение
+ // Игнорируем ошибки при отключении
+ КонецПопытки;
+ КонецЕсли;
Клиент = Неопределено;
КонецПроцедуры🤖 Prompt for AI Agents
In src/cf/CommonModules/пбп_RabbitMQ/Ext/Module.bsl lines 52 to 54, the
procedure ЗавершитьРаботуСКомпонентой does not close the RabbitMQ connection
before setting the client to undefined, risking resource leaks. Modify the
procedure to call the client's disconnect or close method before nullifying the
client reference to properly release resources.
There was a problem hiding this comment.
https://github.com/BITERP/PinkRabbitMQ в этой компоненте нет такого метода, соединение закрывается при установке неопределено клиенту по таймауту
There was a problem hiding this comment.
@denisushakov, спасибо за разъяснение! Действительно, мое предложение было основано на неполной информации о работе внешней компоненты PinkRabbitMQ. Если в компоненте нет метода Disconnect() и соединение закрывается автоматически при установке клиента в Неопределено по таймауту, то текущая реализация процедуры ЗавершитьРаботуСКомпонентой корректна.
Благодарю за ссылку на документацию компоненты - это помогает лучше понять особенности её работы.
✏️ Learnings added
Learnt from: denisushakov
PR: firstBitSportivnaya/PSSL#284
File: src/cf/CommonModules/пбп_RabbitMQ/Ext/Module.bsl:52-54
Timestamp: 2025-07-17T06:46:35.910Z
Learning: В внешней компоненте PinkRabbitMQ (https://github.com/BITERP/PinkRabbitMQ) нет метода Disconnect() для явного закрытия соединения. Соединение закрывается автоматически при установке клиента в Неопределено по таймауту.
Note: Learnings are effective only in the context of similar code segments. To apply general coding guidelines, please configure review instructions. You can manage existing learnings in the app.
🧠 Learnings used
Learnt from: denisushakov
PR: firstBitSportivnaya/PSSL#153
File: src/cf/Catalogs/пбп_ПользовательскиеФункции/Forms/ФормаСтруктуры/Ext/Form/Module.bsl:61-64
Timestamp: 2024-11-29T06:59:28.505Z
Learning: В модуле `пбп_ПереадресацияКлиентСервер` собираются только методы из БСП, остальные методы располагаются согласно логике подсистемы.
Learnt from: DenisUshakov
PR: firstBitSportivnaya/PSSL#0
File: :0-0
Timestamp: 2024-07-29T10:13:46.428Z
Learning: DenisUshakov prefers not to surround fenced code blocks with blank lines in markdown files for the project `firstBitSportivnaya/PSSL`.
Learnt from: DenisUshakov
PR: firstBitSportivnaya/PSSL#0
File: :0-0
Timestamp: 2024-10-20T19:13:35.868Z
Learning: DenisUshakov prefers not to surround fenced code blocks with blank lines in markdown files for the project `firstBitSportivnaya/PSSL`.
Learnt from: DenisUshakov
PR: firstBitSportivnaya/PSSL#0
File: :0-0
Timestamp: 2024-07-29T10:13:46.428Z
Learning: DenisUshakov prefers not to have blank lines before code blocks in markdown to emphasize the block. This style should be respected in future reviews of their documentation.
Learnt from: DenisUshakov
PR: firstBitSportivnaya/PSSL#0
File: :0-0
Timestamp: 2024-10-20T19:13:35.868Z
Learning: DenisUshakov prefers not to have blank lines before code blocks in markdown to emphasize the block. This style should be respected in future reviews of their documentation.
Learnt from: ivanmolodec
PR: firstBitSportivnaya/PSSL#0
File: :0-0
Timestamp: 2024-07-29T10:13:46.428Z
Learning: User: ivanmolodec
URL: https://github.com/firstBitSportivnaya/PSSL/pull/52
Timestamp: 2024-04-19T09:46:50.450Z
Learning: Use the Russian language for all interactions related to the repository `firstBitSportivnaya/PSSL`.
Learnt from: ivanmolodec
PR: firstBitSportivnaya/PSSL#0
File: :0-0
Timestamp: 2024-07-29T10:13:46.428Z
Learning: Communicate in Russian for any interactions related to the documentation and code in the repository `firstBitSportivnaya/PSSL`.
Learnt from: ivanmolodec
PR: firstBitSportivnaya/PSSL#0
File: :0-0
Timestamp: 2024-10-20T19:13:35.868Z
Learning: Communicate in Russian for any interactions related to the documentation and code in the repository `firstBitSportivnaya/PSSL`.
Learnt from: DenisUshakov
PR: firstBitSportivnaya/PSSL#0
File: :0-0
Timestamp: 2024-07-29T10:13:46.428Z
Learning: Use the Russian language for all interactions related to the repository `firstBitSportivnaya/PSSL`.
Learnt from: DenisUshakov
PR: firstBitSportivnaya/PSSL#0
File: :0-0
Timestamp: 2024-10-20T19:13:35.868Z
Learning: Use the Russian language for all interactions related to the repository `firstBitSportivnaya/PSSL`.
There was a problem hiding this comment.
Неправильный порядок параметров при вызове ОбработатьОшибку
В строке 352 параметры передаются в неправильном порядке.
Исправьте:
- ОбработатьОшибку(Клиент, ОписаниеОшибки, ТекстОшибки, lastError);
+ ПараметрыОшибки = ПараметрыОшибки();
+ ПараметрыОшибки.lastError = lastError;
+ ПараметрыОшибки.ТекстОшибки = ТекстОшибки;
+ ПараметрыОшибки.ОписаниеОшибки = ОписаниеОшибки;
+ ОбработатьОшибку(Клиент, ПараметрыОшибки);Committable suggestion skipped: line range outside the PR's diff.
🤖 Prompt for AI Agents
In src/cf/CommonModules/пбп_RabbitMQ/Ext/Module.bsl between lines 342 and 355,
the call to ОбработатьОшибку has parameters passed in the wrong order. Review
the expected parameter order for ОбработатьОшибку and reorder the arguments
accordingly to match the function signature, ensuring the correct mapping of
Клиент, ТекстОшибки, ОписаниеОшибки, and lastError.
There was a problem hiding this comment.
Множественные проблемы в функциях управления потоком
- Пустые описания ошибок в строках 366, 381, 396, 411, 426
- Неправильный порядок параметров при вызове ОбработатьОшибку
- Неопределенность с необходимостью функции GetHeaders (строка 402)
Необходимо:
- Добавить описания ошибок для каждой функции
- Исправить вызовы ОбработатьОшибку согласно сигнатуре функции
- Определиться с необходимостью GetHeaders или удалить её
Пример исправления для SetPriority:
- ОписаниеОшибки = "";//ОписаниеОшибкиЗакрытияКанала(ИдПотребителя);
- ОбработатьОшибку(Клиент, ОписаниеОшибки, ТекстОшибки, lastError);
+ ПараметрыОшибки = ПараметрыОшибки();
+ ПараметрыОшибки.lastError = lastError;
+ ПараметрыОшибки.ТекстОшибки = ТекстОшибки;
+ ПараметрыОшибки.ОписаниеОшибки = НСтр("ru = 'Ошибка при установке приоритета'; en = 'Error setting priority'");
+ ОбработатьОшибку(Клиент, ПараметрыОшибки);📝 Committable suggestion
‼️ IMPORTANT
Carefully review the code before committing. Ensure that it accurately replaces the highlighted code, contains no missing lines, and has no issues with indentation. Thoroughly test & benchmark the code to ensure it meets the requirements.
| Процедура SetPriority(Клиент, Приоритет) Экспорт | |
| ПроверитьКлиент(Клиент); | |
| Попытка | |
| Клиент.SetPriority(Приоритет); | |
| Исключение | |
| lastError = Клиент.GetLastError(); | |
| ТекстОшибки = ОбработкаОшибок.КраткоеПредставлениеОшибки(ИнформацияОбОшибке()); | |
| ОписаниеОшибки = "";//ОписаниеОшибкиЗакрытияКанала(ИдПотребителя); | |
| ОбработатьОшибку(Клиент, ОписаниеОшибки, ТекстОшибки, lastError); | |
| КонецПопытки; | |
| КонецПроцедуры | |
| Функция GetPriority(Клиент) Экспорт | |
| ПроверитьКлиент(Клиент); | |
| Попытка | |
| Возврат Клиент.GetPriority(); | |
| Исключение | |
| lastError = Клиент.GetLastError(); | |
| ТекстОшибки = ОбработкаОшибок.КраткоеПредставлениеОшибки(ИнформацияОбОшибке()); | |
| ОписаниеОшибки = "";//ОписаниеОшибкиЗакрытияКанала(ИдПотребителя); | |
| ОбработатьОшибку(Клиент, ОписаниеОшибки, ТекстОшибки, lastError); | |
| КонецПопытки; | |
| КонецФункции | |
| Функция GetRoutingKey(Клиент) Экспорт | |
| ПроверитьКлиент(Клиент); | |
| Попытка | |
| Возврат Клиент.GetRoutingKey(); | |
| Исключение | |
| lastError = Клиент.GetLastError(); | |
| ТекстОшибки = ОбработкаОшибок.КраткоеПредставлениеОшибки(ИнформацияОбОшибке()); | |
| ОписаниеОшибки = "";//ОписаниеОшибкиЗакрытияКанала(ИдПотребителя); | |
| ОбработатьОшибку(Клиент, ОписаниеОшибки, ТекстОшибки, lastError); | |
| КонецПопытки; | |
| КонецФункции | |
| Функция GetHeaders(Клиент) Экспорт //нужен ли | |
| ПроверитьКлиент(Клиент); | |
| Попытка | |
| Возврат Клиент.GetHeaders(); | |
| Исключение | |
| lastError = Клиент.GetLastError(); | |
| ТекстОшибки = ОбработкаОшибок.КраткоеПредставлениеОшибки(ИнформацияОбОшибке()); | |
| ОписаниеОшибки = "";//ОписаниеОшибкиЗакрытияКанала(ИдПотребителя); | |
| ОбработатьОшибку(Клиент, ОписаниеОшибки, ТекстОшибки, lastError); | |
| КонецПопытки; | |
| КонецФункции | |
| Процедура SleepNative(Клиент, Таймаут) Экспорт | |
| ПроверитьКлиент(Клиент); | |
| Попытка | |
| Клиент.SleepNative(Таймаут); | |
| Исключение | |
| lastError = Клиент.GetLastError(); | |
| ТекстОшибки = ОбработкаОшибок.КраткоеПредставлениеОшибки(ИнформацияОбОшибке()); | |
| ОписаниеОшибки = "";//ОписаниеОшибкиЗакрытияКанала(ИдПотребителя); | |
| ОбработатьОшибку(Клиент, ОписаниеОшибки, ТекстОшибки, lastError); | |
| КонецПопытки; | |
| КонецПроцедуры | |
| Процедура SetPriority(Клиент, Приоритет) Экспорт | |
| ПроверитьКлиент(Клиент); | |
| Попытка | |
| Клиент.SetPriority(Приоритет); | |
| Исключение | |
| lastError = Клиент.GetLastError(); | |
| ТекстОшибки = ОбработкаОшибок.КраткоеПредставлениеОшибки(ИнформацияОбОшибке()); | |
| ПараметрыОшибки = ПараметрыОшибки(); | |
| ПараметрыОшибки.lastError = lastError; | |
| ПараметрыОшибки.ТекстОшибки = ТекстОшибки; | |
| ПараметрыОшибки.ОписаниеОшибки = НСтр( | |
| "ru = 'Ошибка при установке приоритета'; " + | |
| "en = 'Error setting priority'" | |
| ); | |
| ОбработатьОшибку(Клиент, ПараметрыОшибки); | |
| КонецПопытки; | |
| КонецПроцедуры |
🤖 Prompt for AI Agents
In src/cf/CommonModules/пбп_RabbitMQ/Ext/Module.bsl lines 357 to 430, the error
descriptions are empty in the exception handlers for SetPriority, GetPriority,
GetRoutingKey, GetHeaders, and SleepNative functions; also, the parameters
passed to ОбработатьОшибку are in the wrong order. To fix this, provide
meaningful error descriptions relevant to each function's context, reorder the
parameters in ОбработатьОшибку calls to match its signature, and decide whether
GetHeaders is needed—if not, remove it to clean up the code.
There was a problem hiding this comment.
🛠️ Refactor suggestion
Неиспользуемая переменная и дублирование кода
Переменная ЗначениеДопПараметра объявлена, но не используется. Также дублируется обращение к реквизиту формы.
Оптимизируйте код:
Для Каждого ДопНастройка Из СписокДополнительныхНастроек Цикл
ЗначениеДопПараметра = ЭтотОбъект[ДопНастройка.Идентификатор];
мСтрок = ТекущийОбъект.ДополнительныеНастройки.НайтиСтроки(
Новый Структура("Идентификатор", ДопНастройка.Идентификатор));
Если Не ЗначениеЗаполнено(мСтрок) Тогда
Стр = ТекущийОбъект.ДополнительныеНастройки.Добавить();
Иначе
Стр = мСтрок[0];
КонецЕсли;
Стр.Идентификатор = ДопНастройка.Идентификатор;
- Стр.Значение = ЭтотОбъект[ДопНастройка.Идентификатор];
+ Стр.Значение = ЗначениеДопПараметра;
КонецЦикла;🤖 Prompt for AI Agents
In
src/cf/Catalogs/пбп_НастройкиИнтеграции/Forms/ФормаЭлемента/Ext/Form/Module.bsl
around lines 697 to 713, the variable ЗначениеДопПараметра is declared but never
used, and the code redundantly accesses ЭтотОбъект[ДопНастройка.Идентификатор]
multiple times. Remove the unused variable ЗначениеДопПараметра and replace
repeated references to ЭтотОбъект[ДопНастройка.Идентификатор] with a single
variable to store the value once per iteration, then use that variable in the
rest of the loop to optimize and clean up the code.
There was a problem hiding this comment.
Вообще доп.настройки надо вынести в отдельный ишью и отдельный пул-реквест
There was a problem hiding this comment.
@ivanmolodec, согласен с вашим предложением. Функциональность дополнительных настроек действительно логично вынести в отдельный issue и pull request, чтобы не смешивать её с основной задачей по реализации интерфейса работы с RabbitMQ.
Хотите ли вы, чтобы я создал соответствующий issue для вынесения дополнительных настроек? Это поможет лучше структурировать разработку и сосредоточиться на RabbitMQ в текущем PR.
🧠 Learnings used
Learnt from: thvvmas
PR: firstBitSportivnaya/PSSL#247
File: src/cf/DataProcessors/пбп_УниверсальнаяЗагрузкаИзФайлаЧерезТабличныйДокумент/Forms/Форма/Ext/Form/Module.bsl:224-297
Timestamp: 2025-04-02T14:19:04.257Z
Learning: В функции `СохранитьНастройкиНаСервере` переменная `ТаблицаXDTO` использует конкретный тип XDTO-пакета, что исключает возможность смешения данных при работе с несколькими таблицами настроек.
Learnt from: thvvmas
PR: firstBitSportivnaya/PSSL#247
File: src/cf/DataProcessors/пбп_УниверсальнаяЗагрузкаИзФайлаЧерезТабличныйДокумент/Forms/Форма/Ext/Form/Module.bsl:158-221
Timestamp: 2025-04-02T14:17:56.837Z
Learning: In the procedure `ЗагрузитьНастройкиНаСервере` in the ПБП library, validation of correctly filled requisites is handled by XSD schema validation, with additional runtime checks for matching form requisite names and XML file attributes.
Learnt from: thvvmas
PR: firstBitSportivnaya/PSSL#187
File: src/cf/CommonModules/пбп_ИнтеграцииСлужебный/Ext/Module.bsl:321-337
Timestamp: 2025-01-13T14:59:32.507Z
Learning: В процедуре ДобавитьСоответствияОбъектовИнтегрируемыхСистем регистра сведений пбп_СоответствиеОбъектовИнтегрируемыхСистем не требуется дополнительная обработка конкурентных изменений, так как запись набора записей происходит с замещением, что обеспечивает атомарность операции на уровне платформы 1С.
Learnt from: denisushakov
PR: firstBitSportivnaya/PSSL#153
File: src/cf/ChartsOfCharacteristicTypes/пбп_ПредопределенныеЗначения/Forms/ФормаЭлемента/Ext/Form/Module.bsl:174-186
Timestamp: 2024-11-29T07:21:40.502Z
Learning: В случаях, когда для установки свойства каждого элемента формы используется функция из БСП, следует использовать `пбп_ПереадресацияКлиентСервер`.
Learnt from: denisushakov
PR: firstBitSportivnaya/PSSL#153
File: src/cf/Catalogs/пбп_ПользовательскиеФункции/Forms/ФормаСтруктуры/Ext/Form/Module.bsl:61-64
Timestamp: 2024-11-29T06:59:28.505Z
Learning: В модуле `пбп_ПереадресацияКлиентСервер` собираются только методы из БСП, остальные методы располагаются согласно логике подсистемы.
Learnt from: denisushakov
PR: firstBitSportivnaya/PSSL#163
File: src/cf/CommonModules/пбп_ПредопределенныеЗначенияСлужебный/Ext/Module.bsl:375-411
Timestamp: 2024-12-12T15:04:03.415Z
Learning: В процедуре `ОбработатьДублиИдентификаторов` в файле `src/cf/CommonModules/пбп_ПредопределенныеЗначенияСлужебный/Ext/Module.bsl` допустимо удалять строки из `ТаблицаПредопределенных` внутри цикла, если перебор осуществляется по массиву строк для удаления, а не по самой таблице.
Learnt from: thvvmas
PR: firstBitSportivnaya/PSSL#190
File: src/cf/CommonModules/пбп_ВалидаторПакетов/Ext/Module.bsl:79-122
Timestamp: 2025-01-27T22:01:40.089Z
Learning: В функции ВалидироватьПримитивныеТипы модуля пбп_ВалидаторПакетов идентификация ошибок происходит по именам полей структуры JSON внутри функции пбп_ВалидаторПакетовСлужебный.Валидировать, что делает хранение отдельных идентификаторов избыточным.
Learnt from: ivanmolodec
PR: firstBitSportivnaya/PSSL#0
File: :0-0
Timestamp: 2024-07-29T10:13:46.428Z
Learning: User: ivanmolodec
URL: https://github.com/firstBitSportivnaya/PSSL/pull/52
Timestamp: 2024-04-19T09:46:50.450Z
Learning: Use the Russian language for all interactions related to the repository `firstBitSportivnaya/PSSL`.
Learnt from: thvvmas
PR: firstBitSportivnaya/PSSL#247
File: src/cf/CommonForms/пбп_ФормаПодключенияКБазе1С/Ext/Form/Module.bsl:201-224
Timestamp: 2025-04-02T14:15:59.710Z
Learning: Процедура `УказатьПутьКФайлуИЗакрытьФорму` в контексте форм подключения к базам 1С является унифицированной и не требует рефакторинга для избежания дублирования кода.
Learnt from: DenisUshakov
PR: firstBitSportivnaya/PSSL#0
File: :0-0
Timestamp: 2024-07-29T10:13:46.428Z
Learning: The function `СоздатьСтраница` in the `РаботаСФормами` module can be called with omitted parameters, which are then handled as optional with default values being used.
Learnt from: DenisUshakov
PR: firstBitSportivnaya/PSSL#0
File: :0-0
Timestamp: 2024-10-20T19:13:35.868Z
Learning: The function `СоздатьСтраница` in the `РаботаСФормами` module can be called with omitted parameters, which are then handled as optional with default values being used.
Learnt from: denisushakov
PR: firstBitSportivnaya/PSSL#157
File: src/cfe/YAXUnit/CommonModules/ОМ_ПредопределенныеЗначения/Ext/Module.bsl:61-78
Timestamp: 2024-12-16T08:09:35.389Z
Learning: В функции `КлючиХешаПредопределенногоЭлемента` модуля `пбп_ПредопределенныеЗначения` необязательные параметры можно опускать, и тогда используются значения по умолчанию.
Learnt from: ivanmolodec
PR: firstBitSportivnaya/PSSL#0
File: :0-0
Timestamp: 2024-07-29T10:13:46.428Z
Learning: Communicate in Russian for any interactions related to the documentation and code in the repository `firstBitSportivnaya/PSSL`.
Learnt from: ivanmolodec
PR: firstBitSportivnaya/PSSL#0
File: :0-0
Timestamp: 2024-10-20T19:13:35.868Z
Learning: Communicate in Russian for any interactions related to the documentation and code in the repository `firstBitSportivnaya/PSSL`.
Learnt from: DenisUshakov
PR: firstBitSportivnaya/PSSL#0
File: :0-0
Timestamp: 2024-07-29T10:13:46.428Z
Learning: Use the Russian language for all interactions related to the repository `firstBitSportivnaya/PSSL`.
Learnt from: DenisUshakov
PR: firstBitSportivnaya/PSSL#0
File: :0-0
Timestamp: 2024-10-20T19:13:35.868Z
Learning: Use the Russian language for all interactions related to the repository `firstBitSportivnaya/PSSL`.
There was a problem hiding this comment.
@ivanmolodec, согласен с вашим предложением. Функциональность дополнительных настроек действительно логично вынести в отдельный issue и pull request, чтобы не смешивать её с основной задачей по реализации интерфейса работы с RabbitMQ.
Хотите ли вы, чтобы я создал соответствующий issue для вынесения дополнительных настроек? Это поможет лучше структурировать разработку и сосредоточиться на RabbitMQ в текущем PR.
🧠 Learnings used
@coderabbitai да, сделай соответствующий issue для вынесения дополнительных настроек
There was a problem hiding this comment.
🧩 Analysis chain
@ivanmolodec, создам соответствующий issue для вынесения дополнительных настроек.
🏁 Script executed:
#!/bin/bash
# Создаем issue для вынесения функциональности дополнительных настроек
gh issue create \
--title "Вынести функциональность дополнительных настроек в отдельный PR" \
--body "## Описание задачи
Функциональность дополнительных настроек для справочника пбп_НастройкиИнтеграции была добавлена в рамках PR #284, который посвящен реализации интерфейса работы с RabbitMQ.
Для лучшей структуризации разработки и разделения ответственности необходимо вынести данную функциональность в отдельный pull request.
## Что нужно сделать
1. Создать отдельный PR с функциональностью дополнительных настроек
2. Удалить код дополнительных настроек из текущего PR #284
3. Сосредоточиться на основной задаче - реализации RabbitMQ интерфейса
## Затронутые файлы
- \`src/cf/Catalogs/пбп_НастройкиИнтеграции.xml\` - добавлена табличная секция ДополнительныеНастройки
- \`src/cf/Catalogs/пбп_НастройкиИнтеграции/Forms/ФормаЭлемента/Ext/Form.xml\` - добавлена страница для дополнительных настроек
- \`src/cf/Catalogs/пбп_НастройкиИнтеграции/Forms/ФормаЭлемента/Ext/Form/Module.bsl\` - добавлены процедуры ВывестиДополнительныеНастройки и СохранитьДополнительныеНастройки
- \`src/cf/Catalogs/пбп_ТипыИнтеграций.xml\` - добавлена табличная секция ДополнительныеПараметрыНастроекИнтеграций
- \`src/cf/Catalogs/пбп_ТипыИнтеграций/Forms/ФормаЭлемента/\` - добавлена форма элемента
- \`src/cf/Catalogs/пбп_ТипыИнтеграций/Ext/ManagerModule.bsl\` - добавлена функция СформироватьСписокТипов
- \`src/cf/CommonModules/пбп_ИнтеграцииСлужебный/Ext/Module.bsl\` - добавлена функция ПолучитьСтруктуруДополнительныхНастроекИнтеграции
- \`src/cf/CommonModules/пбп_РаботаСФормами/Ext/Module.bsl\` - изменения в процедурах работы с реквизитами формы
## Backlinks
- Исходный PR: https://github.com/firstBitSportivnaya/PSSL/pull/284
- Комментарий: https://github.com/firstBitSportivnaya/PSSL/pull/284#discussion_r2198903665
- Запрос пользователя: @ivanmolodec" \
--assignee ivanmolodec
Length of output: 1909
@ivanmolodec, создал соответствующий issue #310 для вынесения функциональности дополнительных настроек в отдельный pull request.
Issue содержит:
- Описание задачи и обоснование необходимости вынесения
- Список затронутых файлов для удобства работы
- Backlinks на текущий PR и комментарий
- Назначение на вас
Это позволит сосредоточиться на основной задаче текущего PR - реализации интерфейса работы с RabbitMQ.
🧠 Learnings used
Learnt from: thvvmas
PR: firstBitSportivnaya/PSSL#247
File: src/cf/DataProcessors/пбп_УниверсальнаяЗагрузкаИзФайлаЧерезТабличныйДокумент/Forms/Форма/Ext/Form/Module.bsl:224-297
Timestamp: 2025-04-02T14:19:04.257Z
Learning: В функции `СохранитьНастройкиНаСервере` переменная `ТаблицаXDTO` использует конкретный тип XDTO-пакета, что исключает возможность смешения данных при работе с несколькими таблицами настроек.
Learnt from: thvvmas
PR: firstBitSportivnaya/PSSL#247
File: src/cf/DataProcessors/пбп_УниверсальнаяЗагрузкаИзФайлаЧерезТабличныйДокумент/Forms/Форма/Ext/Form/Module.bsl:158-221
Timestamp: 2025-04-02T14:17:56.837Z
Learning: In the procedure `ЗагрузитьНастройкиНаСервере` in the ПБП library, validation of correctly filled requisites is handled by XSD schema validation, with additional runtime checks for matching form requisite names and XML file attributes.
Learnt from: thvvmas
PR: firstBitSportivnaya/PSSL#187
File: src/cf/CommonModules/пбп_ИнтеграцииСлужебный/Ext/Module.bsl:321-337
Timestamp: 2025-01-13T14:59:32.507Z
Learning: В процедуре ДобавитьСоответствияОбъектовИнтегрируемыхСистем регистра сведений пбп_СоответствиеОбъектовИнтегрируемыхСистем не требуется дополнительная обработка конкурентных изменений, так как запись набора записей происходит с замещением, что обеспечивает атомарность операции на уровне платформы 1С.
Learnt from: denisushakov
PR: firstBitSportivnaya/PSSL#153
File: src/cf/ChartsOfCharacteristicTypes/пбп_ПредопределенныеЗначения/Forms/ФормаЭлемента/Ext/Form/Module.bsl:174-186
Timestamp: 2024-11-29T07:21:40.502Z
Learning: В случаях, когда для установки свойства каждого элемента формы используется функция из БСП, следует использовать `пбп_ПереадресацияКлиентСервер`.
Learnt from: denisushakov
PR: firstBitSportivnaya/PSSL#153
File: src/cf/Catalogs/пбп_ПользовательскиеФункции/Forms/ФормаСтруктуры/Ext/Form/Module.bsl:61-64
Timestamp: 2024-11-29T06:59:28.505Z
Learning: В модуле `пбп_ПереадресацияКлиентСервер` собираются только методы из БСП, остальные методы располагаются согласно логике подсистемы.
Learnt from: denisushakov
PR: firstBitSportivnaya/PSSL#163
File: src/cf/CommonModules/пбп_ПредопределенныеЗначенияСлужебный/Ext/Module.bsl:375-411
Timestamp: 2024-12-12T15:04:03.415Z
Learning: В процедуре `ОбработатьДублиИдентификаторов` в файле `src/cf/CommonModules/пбп_ПредопределенныеЗначенияСлужебный/Ext/Module.bsl` допустимо удалять строки из `ТаблицаПредопределенных` внутри цикла, если перебор осуществляется по массиву строк для удаления, а не по самой таблице.
Learnt from: ivanmolodec
PR: firstBitSportivnaya/PSSL#0
File: :0-0
Timestamp: 2024-07-29T10:13:46.428Z
Learning: User: ivanmolodec
URL: https://github.com/firstBitSportivnaya/PSSL/pull/52
Timestamp: 2024-04-19T09:46:50.450Z
Learning: Use the Russian language for all interactions related to the repository `firstBitSportivnaya/PSSL`.
Learnt from: thvvmas
PR: firstBitSportivnaya/PSSL#247
File: src/cf/CommonForms/пбп_ФормаПодключенияКБазе1С/Ext/Form/Module.bsl:201-224
Timestamp: 2025-04-02T14:15:59.710Z
Learning: Процедура `УказатьПутьКФайлуИЗакрытьФорму` в контексте форм подключения к базам 1С является унифицированной и не требует рефакторинга для избежания дублирования кода.
Learnt from: DenisUshakov
PR: firstBitSportivnaya/PSSL#0
File: :0-0
Timestamp: 2024-10-20T19:13:35.868Z
Learning: The function `СоздатьСтраница` in the `РаботаСФормами` module can be called with omitted parameters, which are then handled as optional with default values being used.
Learnt from: DenisUshakov
PR: firstBitSportivnaya/PSSL#0
File: :0-0
Timestamp: 2024-07-29T10:13:46.428Z
Learning: The function `СоздатьСтраница` in the `РаботаСФормами` module can be called with omitted parameters, which are then handled as optional with default values being used.
Learnt from: ivanmolodec
PR: firstBitSportivnaya/PSSL#0
File: :0-0
Timestamp: 2024-07-29T10:13:46.428Z
Learning: Communicate in Russian for any interactions related to the documentation and code in the repository `firstBitSportivnaya/PSSL`.
Learnt from: ivanmolodec
PR: firstBitSportivnaya/PSSL#0
File: :0-0
Timestamp: 2024-10-20T19:13:35.868Z
Learning: Communicate in Russian for any interactions related to the documentation and code in the repository `firstBitSportivnaya/PSSL`.
Learnt from: DenisUshakov
PR: firstBitSportivnaya/PSSL#0
File: :0-0
Timestamp: 2024-07-29T10:13:46.428Z
Learning: Use the Russian language for all interactions related to the repository `firstBitSportivnaya/PSSL`.
Learnt from: DenisUshakov
PR: firstBitSportivnaya/PSSL#0
File: :0-0
Timestamp: 2024-10-20T19:13:35.868Z
Learning: Use the Russian language for all interactions related to the repository `firstBitSportivnaya/PSSL`.
|

0 New Issues
25 Fixed Issues
0 Accepted Issues
No data about coverage (7.80% Estimated after merge)
@thvvmas @ivanmolodec Пока смотрим только ОМы реализующие интерфейс компоненты rabbitMQ (пбп_RabbitMQ, пбп_RabbitMQПовтИсп)
вариант черновой не бейте сильно палками.
Summary by CodeRabbit
Новые возможности
Улучшения интерфейса
Исправления ошибок
Технические улучшения