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

Обновление версии конфигурации поставщика на 3.1.9.238 #1

Closed
wants to merge 1 commit into from

Conversation

nixel2007
Copy link
Member

@nixel2007 nixel2007 commented Dec 20, 2023

Страница релиза:
https://releases.1c.ru/version_files?nick=SSL31&ver=3.1.9.238 Версии для обновления:

Summary by CodeRabbit

  • New Features

    • Enhanced search functionality with the ability to update authorization lists.
    • Asynchronous processing of digital certificates and encryption keys.
    • Improved user interface for selecting and verifying electronic certificates.
    • Optimized data loading from files with better matching status indicators.
    • Advanced contact information input now accommodates additional regional data.
  • Improvements

    • Updated cryptographic operations for better handling of digital signatures.
    • Refined logic for certificate property retrieval and management.
    • Improved error logging for translation services, now using Google Translate.
    • Enhanced data encryption and decryption processes.
  • Bug Fixes

    • Fixed issues with certificate validation and expiration date handling.
    • Resolved problems with temporary file directory assignment during report distribution.
    • Corrected a typographical error in a comment regarding the return value description.
  • Documentation

    • Updated help documentation to reflect new features related to file signing and authorization selection.
  • Refactor

    • Transitioned several procedures from synchronous to asynchronous to improve performance.
    • Revised control flow and logic for better clarity and maintainability.
  • Style

    • Standardized the naming convention for data comparison statuses.
  • Chores

    • Cleared the working directory with a new exported procedure to maintain cleanliness of the file system.
  • Tests

    • Enhanced testing procedures to accommodate the new asynchronous behavior and cryptographic enhancements.

Copy link

coderabbitai bot commented Dec 20, 2023

Walkthrough

The updates encompass a broad shift towards asynchronous operations, enhanced error handling, and the introduction of new functionalities across various modules. Changes include the addition of new procedures, modification of existing ones, and refinements in the logic for handling electronic signatures, certificate properties, and data encryption. The adjustments suggest a focus on improving performance, security, and user experience in handling digital certificates and data processing.

Changes

File Path Change Summary
src/cf/.../МашиночитаемыеДоверенности/.../ФормаВводаПолномочий/.../Module.bsl Added client-side procedure for updating the list of authorities.
src/cf/.../СертификатыКлючейЭлектроннойПодписиИШифрования/... Asynchronous behavior introduced in several forms, changes in error handling logic, and adjustments to certificate properties retrieval.
src/cf/.../ПрофилиГруппДоступа/.../ManagerModule.bsl Alterations to public entities, functions, and data structures.
src/cf/.../СостоянияОригиналовПервичныхДокументов/.../ФормаВыбораСостояния/.../Module.bsl Modified the key string literal for list item addition.
src/cf/CommonForms/.../Module.bsl Asynchronous behavior implemented in procedures, with updates to certificate property retrieval and usage.
src/cf/CommonModules/.../Module.bsl Various updates including error logging shifts, condition extensions, logic modifications, and renaming of functions.
src/cf/DataProcessors/.../ManagerModule.bsl Changes in logic flow, specifically in data comparison status handling.

🐇✨
To code in the day, to rest in the night,
We've hopped through the code, with async in sight.
Signatures and certs, now flow with such grace,
In the burrow of bytes, we've found our right place.
🌟🐾

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 X ?


Tips

Chat with CodeRabbit Bot (@coderabbitai)

  • You can reply to a review comment made by CodeRabbit.
  • You can tag CodeRabbit on specific lines of code or files in the PR by tagging @coderabbitai in a comment.
  • You can tag @coderabbitai in a PR comment and ask one-off questions about the PR and the codebase. Use quoted replies to pass the context for follow-up questions.

CodeRabbit Commands (invoked as PR comments)

  • @coderabbitai pause to pause the reviews on a PR.
  • @coderabbitai resume to resume the paused reviews.
  • @coderabbitai review to trigger a review. This is useful when automatic reviews are disabled for the repository.
  • @coderabbitai resolve resolve all the CodeRabbit review comments.
  • @coderabbitai help to get help.

Additionally, you can add @coderabbitai ignore anywhere in the PR description to prevent this PR from being reviewed.

CodeRabbit Configration File (.coderabbit.yaml)

  • You can programmatically configure CodeRabbit by adding a .coderabbit.yaml file to the root of your repository.
  • The JSON schema for the configuration file is available here.
  • 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/coderabbit-overrides.v2.json

@nixel2007
Copy link
Member Author

@coderabbitai review

1 similar comment
@nixel2007
Copy link
Member Author

@coderabbitai review

Copy link

@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.

Review Status

Actionable comments generated: 22

Configuration used: CodeRabbit UI

Commits Files that changed from the base of the PR and between 8729b68 and e146da0.
Files ignored due to filter (69)
  • description.json
  • src/cf/Catalogs/СертификатыКлючейЭлектроннойПодписиИШифрования/Forms/ВыборСертификатаДляПодписанияИлиРасшифровки/Ext/Form.xml
  • src/cf/Catalogs/СертификатыКлючейЭлектроннойПодписиИШифрования/Forms/ДобавлениеСертификатаДляШифрования/Ext/Form.xml
  • src/cf/Catalogs/СертификатыКлючейЭлектроннойПодписиИШифрования/Forms/ДобавлениеСертификатовДляШифрования/Ext/Form.xml
  • src/cf/Catalogs/СертификатыКлючейЭлектроннойПодписиИШифрования/Forms/УстановкаСертификата/Ext/Form.xml
  • src/cf/Catalogs/СертификатыКлючейЭлектроннойПодписиИШифрования/Forms/ФормаЭлемента/Ext/Form.xml
  • src/cf/CommonForms/ПоддерживаемыеКлиентскиеПриложения/Ext/Help.xml
  • src/cf/CommonForms/Сертификат/Ext/Form.xml
  • src/cf/CommonTemplates/КомпонентаСканированияДокументов_3_0_1_1021/Ext/Template.bin
  • src/cf/CommonTemplates/КомпонентаСканированияДокументов_3_0_1_1027.xml
  • src/cf/CommonTemplates/КомпонентаСканированияДокументов_3_0_1_1027/Ext/Template.bin
  • src/cf/Configuration.xml
  • src/cf/DataProcessors/Сканирование/Forms/НастройкаСканирования/Ext/Form.xml
  • src/cf/Ext/ParentConfigurations.bin
  • src/cf/InformationRegisters/ДополнительныеАдресныеСведения.xml
  • src/cf/Roles/АдминистраторСистемы/Ext/Rights.xml
  • src/cf/Roles/БазовыеПраваБСП/Ext/Rights.xml
  • src/cf/Roles/БазовыеПраваВнешнихПользователейБСП/Ext/Rights.xml
  • src/cf/Roles/ВыполнениеСинхронизацииДанных/Ext/Rights.xml
  • src/cf/Roles/ДобавлениеИзменениеАдресныхСведений/Ext/Rights.xml
  • src/cf/Roles/ДобавлениеИзменениеАктовОбУничтоженииПерсональныхДанных/Ext/Rights.xml
  • src/cf/Roles/ДобавлениеИзменениеБанков/Ext/Rights.xml
  • src/cf/Roles/ДобавлениеИзменениеВариантовОтчетов/Ext/Rights.xml
  • src/cf/Roles/ДобавлениеИзменениеВзаимодействий/Ext/Rights.xml
  • src/cf/Roles/ДобавлениеИзменениеВнешнихПользователей/Ext/Rights.xml
  • src/cf/Roles/ДобавлениеИзменениеДатЗапретаЗагрузки/Ext/Rights.xml
  • src/cf/Roles/ДобавлениеИзменениеДатЗапретаИзменения/Ext/Rights.xml
  • src/cf/Roles/ДобавлениеИзменениеДополнительныхОтчетовИОбработок/Ext/Rights.xml
  • src/cf/Roles/ДобавлениеИзменениеДополнительныхРеквизитовИСведений/Ext/Rights.xml
  • src/cf/Roles/ДобавлениеИзменениеЗаданий/Ext/Rights.xml
  • src/cf/Roles/ДобавлениеИзменениеЗаметок/Ext/Rights.xml
  • src/cf/Roles/ДобавлениеИзменениеКалендарныхГрафиков/Ext/Rights.xml
  • src/cf/Roles/ДобавлениеИзменениеЛичныхВариантовОтчетов/Ext/Rights.xml
  • src/cf/Roles/ДобавлениеИзменениеМашиночитаемыхДоверенностей/Ext/Rights.xml
  • src/cf/Roles/ДобавлениеИзменениеОтветовНаВопросыАнкет/Ext/Rights.xml
  • src/cf/Roles/ДобавлениеИзменениеПапокИФайлов/Ext/Rights.xml
  • src/cf/Roles/ДобавлениеИзменениеПапокИФайловВнешнимиПользователями/Ext/Rights.xml
  • src/cf/Roles/ДобавлениеИзменениеРассылокОтчетов/Ext/Rights.xml
  • src/cf/Roles/ДобавлениеИзменениеРолейИсполнителей/Ext/Rights.xml
  • src/cf/Roles/ДобавлениеИзменениеУчетныхЗаписейСерверовDSS/Ext/Rights.xml
  • src/cf/Roles/ДобавлениеИзменениеУчетныхЗаписейЭлектроннойПочты/Ext/Rights.xml
  • src/cf/Roles/ДобавлениеИзменениеШаблоновАнкет/Ext/Rights.xml
  • src/cf/Roles/ИзменениеВыполнениеЗадач/Ext/Rights.xml
  • src/cf/Roles/ИзменениеДополнительныхСведений/Ext/Rights.xml
  • src/cf/Roles/ИзменениеМакетовПечатныхФорм/Ext/Rights.xml
  • src/cf/Roles/ИзменениеСостоянийОригиналовПервичныхДокументов/Ext/Rights.xml
  • src/cf/Roles/ИзменениеУчастниковГруппДоступа/Ext/Rights.xml
  • src/cf/Roles/ИспользованиеОбработкиТекущиеДела/Ext/Rights.xml
  • src/cf/Roles/НастройкаИОценкаПроизводительности/Ext/Rights.xml
  • src/cf/Roles/ПолныеПрава/Ext/Rights.xml
  • src/cf/Roles/ПросмотрЖурналаРегистрации/Ext/Rights.xml
  • src/cf/Roles/ПросмотрОписанияИзмененийПрограммы/Ext/Rights.xml
  • src/cf/Roles/УдаленныйДоступOData/Ext/Rights.xml
  • src/cf/Roles/УдаленныйДоступОбменДаннымиВМоделиСервиса/Ext/Rights.xml
  • src/cf/Roles/ЧтениеАктовОбУничтоженииПерсональныхДанных/Ext/Rights.xml
  • src/cf/Roles/ЧтениеВариантовОтчетов/Ext/Rights.xml
  • src/cf/Roles/ЧтениеВнешнихПользователей/Ext/Rights.xml
  • src/cf/Roles/ЧтениеДанныхСервисаDSS/Ext/Rights.xml
  • src/cf/Roles/ЧтениеДатЗапретаЗагрузки/Ext/Rights.xml
  • src/cf/Roles/ЧтениеДатЗапретаИзменения/Ext/Rights.xml
  • src/cf/Roles/ЧтениеДополнительныхОтчетовИОбработок/Ext/Rights.xml
  • src/cf/Roles/ЧтениеДополнительныхСведений/Ext/Rights.xml
  • src/cf/Roles/ЧтениеЗаданий/Ext/Rights.xml
  • src/cf/Roles/ЧтениеЗадач/Ext/Rights.xml
  • src/cf/Roles/ЧтениеМашиночитаемыхДоверенностей/Ext/Rights.xml
  • src/cf/Roles/ЧтениеОтветовНаВопросыАнкет/Ext/Rights.xml
  • src/cf/Roles/ЧтениеРассылокОтчетов/Ext/Rights.xml
  • src/cf/Roles/ЧтениеУчетныхЗаписейЭлектроннойПочты/Ext/Rights.xml
  • src/cf/Subsystems/СтандартныеПодсистемы/Subsystems/РаботаСФайлами.xml
Files selected for processing (57)
  • src/cf/Catalogs/МашиночитаемыеДоверенности/Forms/ФормаВводаПолномочий/Ext/Form/Module.bsl (2 hunks)
  • src/cf/Catalogs/МашиночитаемыеДоверенности/Forms/ФормаСписка/Ext/Form/Module.bsl (1 hunks)
  • src/cf/Catalogs/ПрофилиГруппДоступа/Ext/ManagerModule.bsl (14 hunks)
  • src/cf/Catalogs/СертификатыКлючейЭлектроннойПодписиИШифрования/Ext/ManagerModule.bsl (6 hunks)
  • src/cf/Catalogs/СертификатыКлючейЭлектроннойПодписиИШифрования/Forms/ВыборСертификатаДляПодписанияИлиРасшифровки/Ext/Form/Module.bsl (1 hunks)
  • src/cf/Catalogs/СертификатыКлючейЭлектроннойПодписиИШифрования/Forms/ДобавлениеСертификатаДляШифрования/Ext/Form/Module.bsl (1 hunks)
  • src/cf/Catalogs/СертификатыКлючейЭлектроннойПодписиИШифрования/Forms/ДобавлениеСертификатовДляШифрования/Ext/Form/Module.bsl (1 hunks)
  • src/cf/Catalogs/СертификатыКлючейЭлектроннойПодписиИШифрования/Forms/ПодписаниеДанных/Ext/Form/Module.bsl (1 hunks)
  • src/cf/Catalogs/СертификатыКлючейЭлектроннойПодписиИШифрования/Forms/ПодписаниеДанных/Ext/Help/ru.html (2 hunks)
  • src/cf/Catalogs/СертификатыКлючейЭлектроннойПодписиИШифрования/Forms/ПроверкаСертификата/Ext/Form/Module.bsl (8 hunks)
  • src/cf/Catalogs/СертификатыКлючейЭлектроннойПодписиИШифрования/Forms/ФормаЭлемента/Ext/Form/Module.bsl (1 hunks)
  • src/cf/Catalogs/СертификатыКлючейЭлектроннойПодписиИШифрования/Forms/ШифрованиеДанных/Ext/Form/Module.bsl (1 hunks)
  • src/cf/Catalogs/СостоянияОригиналовПервичныхДокументов/Forms/ФормаВыбораСостояния/Ext/Form/Module.bsl (1 hunks)
  • src/cf/Catalogs/Файлы/Forms/Файлы/Ext/Help/ru.html (1 hunks)
  • src/cf/CommonForms/ДобавлениеЭлектроннойПодписиИзФайла/Ext/Form/Module.bsl (3 hunks)
  • src/cf/CommonForms/НастройкиЭлектроннойПодписиИШифрования/Ext/Help/ru.html (2 hunks)
  • src/cf/CommonForms/ПоддерживаемыеКлиентскиеПриложения/Ext/Help/ru.html (1 hunks)
  • src/cf/CommonForms/Сертификат/Ext/Form/Module.bsl (4 hunks)
  • src/cf/CommonForms/ЭлектроннаяПодпись/Ext/Form/Module.bsl (2 hunks)
  • src/cf/CommonModules/GoogleПереводчик/Ext/Module.bsl (1 hunks)
  • src/cf/CommonModules/ВерсионированиеОбъектов/Ext/Module.bsl (1 hunks)
  • src/cf/CommonModules/ВзаимодействияВызовСервера/Ext/Module.bsl (1 hunks)
  • src/cf/CommonModules/ЗагрузкаДанныхИзФайлаКлиентСервер/Ext/Module.bsl (1 hunks)
  • src/cf/CommonModules/ОбновлениеИнформационнойБазыБСП/Ext/Module.bsl (1 hunks)
  • src/cf/CommonModules/ОбщегоНазначенияКлиентСервер/Ext/Module.bsl (1 hunks)
  • src/cf/CommonModules/ОбщегоНазначенияСлужебныйКлиент/Ext/Module.bsl (3 hunks)
  • src/cf/CommonModules/ОтчетОДвиженияхДокументаСлужебныйКлиент/Ext/Module.bsl (2 hunks)
  • src/cf/CommonModules/РаботаСФайламиКлиент/Ext/Module.bsl (2 hunks)
  • src/cf/CommonModules/РаботаСФайламиСлужебныйВызовСервера/Ext/Module.bsl (3 hunks)
  • src/cf/CommonModules/РаботаСФайламиСлужебныйКлиент/Ext/Module.bsl (4 hunks)
  • src/cf/CommonModules/РассылкаОтчетов/Ext/Module.bsl (3 hunks)
  • src/cf/CommonModules/УправлениеДоступомСлужебный/Ext/Module.bsl (21 hunks)
  • src/cf/CommonModules/УправлениеДоступомСлужебныйПовтИсп/Ext/Module.bsl (5 hunks)
  • src/cf/CommonModules/УправлениеКонтактнойИнформацией/Ext/Module.bsl (2 hunks)
  • src/cf/CommonModules/УправлениеПечатью/Ext/Module.bsl (3 hunks)
  • src/cf/CommonModules/УправлениеПечатьюКлиент/Ext/Module.bsl (2 hunks)
  • src/cf/CommonModules/УчетОригиналовПервичныхДокументов/Ext/Module.bsl (1 hunks)
  • src/cf/CommonModules/УчетОригиналовПервичныхДокументовВызовСервера/Ext/Module.bsl (1 hunks)
  • src/cf/CommonModules/ЭлектроннаяПодпись/Ext/Module.bsl (6 hunks)
  • src/cf/CommonModules/ЭлектроннаяПодписьКлиент/Ext/Module.bsl (2 hunks)
  • src/cf/CommonModules/ЭлектроннаяПодписьКлиентСерверЛокализация/Ext/Module.bsl (5 hunks)
  • src/cf/CommonModules/ЭлектроннаяПодписьСлужебный/Ext/Module.bsl (19 hunks)
  • src/cf/CommonModules/ЭлектроннаяПодписьСлужебныйВызовСервера/Ext/Module.bsl (2 hunks)
  • src/cf/CommonModules/ЭлектроннаяПодписьСлужебныйКлиент/Ext/Module.bsl (22 hunks)
  • src/cf/CommonModules/ЭлектроннаяПодписьСлужебныйКлиентСервер/Ext/Module.bsl (12 hunks)
  • src/cf/DataProcessors/ЗагрузкаДанныхИзФайла/Ext/ManagerModule.bsl (2 hunks)
  • src/cf/DataProcessors/ЗагрузкаДанныхИзФайла/Forms/ЗагрузкаДанныхИзФайла/Ext/Form/Module.bsl (9 hunks)
  • src/cf/DataProcessors/ЗаявлениеНаВыпускНовогоКвалифицированногоСертификата/Ext/ManagerModule.bsl (4 hunks)
  • src/cf/DataProcessors/ЗаявлениеНаВыпускНовогоКвалифицированногоСертификата/Forms/Форма/Ext/Form/Module.bsl (1 hunks)
  • src/cf/DataProcessors/РаботаСФайлами/Forms/ПрисоединенныеФайлы/Ext/Help/ru.html (1 hunks)
  • src/cf/DataProcessors/РасширенныйВводКонтактнойИнформации/Ext/ManagerModule.bsl (1 hunks)
  • src/cf/DataProcessors/Сканирование/Forms/НастройкаСканирования/Ext/Form/Module.bsl (2 hunks)
  • src/cf/DataProcessors/Сканирование/Forms/РезультатСканирования/Ext/Form/Module.bsl (1 hunks)
  • src/cf/InformationRegisters/НастройкиПравОбъектов/Ext/ManagerModule.bsl (8 hunks)
  • src/cf/InformationRegisters/НастройкиСинхронизацииФайлов/Forms/ФормаЗаписи/Ext/Form/Module.bsl (1 hunks)
  • src/cf/InformationRegisters/ПользовательскиеМакетыПечати/Forms/РедактированиеМакета/Ext/Form/Module.bsl (2 hunks)
  • src/cf/Reports/УниверсальныйОтчет/Ext/ManagerModule.bsl (6 hunks)
Files not processed due to max files limit (1)
  • src/cf/Reports/УниверсальныйОтчет/Ext/ObjectModule.bsl
Files skipped from review due to trivial changes (5)
  • src/cf/Catalogs/СертификатыКлючейЭлектроннойПодписиИШифрования/Forms/ШифрованиеДанных/Ext/Form/Module.bsl
  • src/cf/Catalogs/СостоянияОригиналовПервичныхДокументов/Forms/ФормаВыбораСостояния/Ext/Form/Module.bsl
  • src/cf/CommonModules/ОбновлениеИнформационнойБазыБСП/Ext/Module.bsl
  • src/cf/CommonModules/УчетОригиналовПервичныхДокументовВызовСервера/Ext/Module.bsl
  • src/cf/InformationRegisters/ПользовательскиеМакетыПечати/Forms/РедактированиеМакета/Ext/Form/Module.bsl
Additional comments: 180
src/cf/Catalogs/МашиночитаемыеДоверенности/Forms/ФормаВводаПолномочий/Ext/Form/Module.bsl (1)
  • 315-321: > Note: This review was outside the patches, and no patch overlapping with it was found. Original lines [573-576]

The modification of СертификатОкончаниеВыбора to an asynchronous procedure is correct. The use of Ждать to wait for the certificate properties ensures that the UI thread is not blocked. However, ensure that the ЭлектроннаяПодписьСлужебныйКлиент.СвойстваСертификата method is designed to be called asynchronously and that the Сертификат variable is handled correctly after the await.

src/cf/Catalogs/МашиночитаемыеДоверенности/Forms/ФормаСписка/Ext/Form/Module.bsl (1)
  • 573-576: The conversion of СертификатОкончаниеВыбора to an asynchronous procedure is appropriate for operations that may take time, such as retrieving certificate properties. Ensure that all calls to this procedure have been updated to handle the asynchronous nature, and that the Сертификат and СертификатПредставителя variables are correctly assigned after the asynchronous call.
src/cf/Catalogs/ПрофилиГруппДоступа/Ext/ManagerModule.bsl (11)
  • 1485-1493: The addition of the ХешСумма parameter and the new lists and mapping structure ВсеРоли align with the changes described in the summary. Ensure that these new data structures are populated and used as intended throughout the system.

  • 1505-1507: The logic for populating ОбщиеПрава, ДополнительныеРолиАдминистратора, and ВсеРоли based on role names appears to be correct. Ensure that the role names used here are consistent with the rest of the system.

  • 1946-1946: The introduction of the ПроверенныеПоставляемыеПрофилиСеанса function with the ХешСумма parameter is consistent with the summary. Verify that the ХешСумма is being calculated and used correctly within the function.

  • 1981-1985: The creation of new mappings and lists for profile descriptions aligns with the refactoring efforts described in the summary. Ensure that these new structures are used correctly in the subsequent logic.

  • 2010-2014: The setting of profile properties such as "Родитель", "Идентификатор", and "Наименование" appears to be correct. Ensure that these properties are consistent with the system's data model.

  • 2023-2023: The addition of profiles to СписокПрофилей and the subsequent error handling logic seem to be correct. Ensure that the error messages are informative and that the name mappings are accurate.

  • 2118-2180: The implementation of version description and hashing logic in ОписаниеВерсии and ХешСумма is consistent with the changes described in the summary. Verify that the versioning and hashing are implemented correctly and used consistently across the system.

  • 2234-2246: > Note: This review was outside the patches, so it was mapped to the patch with the greatest overlap. Original lines [2205-2243]

The logic for assigning profile purposes and types in СписокНазначений and СвойстваПрофиля appears to be correct. Ensure that the types and assignments are consistent with the system's data model.

  • 2291-2295: The creation and sorting of the role list in СписокРолей and its storage in СвойстваПрофиля seem to be implemented correctly. Ensure that the roles are sorted and stored in a manner consistent with the system's requirements.

  • 2367-2367: The assignment of access types to profiles using СвойстваПрофиля and ВидыДоступа is consistent with the system's functionality. Ensure that the access types are assigned correctly and that the data structure used is appropriate.

  • 2480-2482: The addition of fixed structures to the list of access values in ЗначенияДоступа appears to be correct. Ensure that these structures are used appropriately within the system and that the error handling is robust.

src/cf/Catalogs/СертификатыКлючейЭлектроннойПодписиИШифрования/Ext/ManagerModule.bsl (7)
  • 109-112: The addition of the condition СертификатыКлючейЭлектроннойПодписиИШифрования.ДействителенДо > &ТекущаяДата in the SQL query ensures that only certificates that are still valid (not expired) are considered. This seems like a logical and necessary check when dealing with certificate validity in the context of an information system.

  • 128-129: The parameter ТекущаяДата is set using ТекущаяДатаСеанса(), which is the standard way to get the current session date in 1C:Enterprise language. This parameter is then used in the SQL query condition added in the previous hunk, which is a correct implementation.

  • 142-142: The function call has been updated from ProcessRequestsAndNotifyCertificates to ProcessRequestsNotifyAndValidityPeriodCertificates. This change in the function name suggests that the function now also handles the validity period of certificates, which aligns with the changes seen in the SQL query conditions. It is important to ensure that this renamed function is implemented elsewhere in the codebase and that all references to it have been updated accordingly.

  • 155-155: The renaming of the function ProcessRequestsAndNotifyCertificates to ProcessRequestsNotifyAndValidityPeriodCertificates is consistent with the previous hunk. This renaming reflects the new functionality of handling the validity period of certificates, which is a logical change given the context of the updates.

  • 181-181: The introduction of the WriteObject flag is a good practice for controlling the conditional writing of an object. It is used to determine whether the certificate object needs to be written back to the database after processing, which is a common pattern in batch processing scenarios.

  • 212-212: The condition СертификатОбъект.УдалитьПользовательОповещенОСрокеДействия = Ложь followed by setting ЗаписатьОбъект = Истина indicates that if the user has been notified about the certificate's expiration, the certificate object should be updated. This is a sensible addition to ensure that the state of the certificate is correctly maintained.

  • 253-257: The use of the WriteObject flag to conditionally write the certificate object to the database is correctly implemented. The object is only written if the flag is set to Истина (true), otherwise, the processing of the certificate is marked as complete without writing. This ensures that unnecessary writes are avoided, which is a good practice for performance.

src/cf/Catalogs/СертификатыКлючейЭлектроннойПодписиИШифрования/Forms/ДобавлениеСертификатовДляШифрования/Ext/Form/Module.bsl (1)
  • 406-406: The modification to use Ждать before ЭлектроннаяПодписьСлужебныйКлиент.СвойстваСертификата aligns with the PR's objective to update asynchronous programming patterns. Verify that all calling code has been adapted to handle the new asynchronous call, including proper await patterns and exception handling where necessary.
src/cf/Catalogs/СертификатыКлючейЭлектроннойПодписиИШифрования/Forms/ПодписаниеДанных/Ext/Form/Module.bsl (1)
  • 684-701: It's important to verify that the server-side logic correctly handles the case when a certificate or private key is expired. The client-side error handling seems to be in place, but ensure that the server-side also has appropriate checks and that any error messages are properly propagated to the client.
src/cf/Catalogs/СертификатыКлючейЭлектроннойПодписиИШифрования/Forms/ПроверкаСертификата/Ext/Form/Module.bsl (8)
  • 911-911: The procedure ПроверитьНаСторонеКлиентаПослеСозданияМенеджераКриптографии has been correctly updated to an asynchronous version. Ensure that all calls to this procedure are updated to handle the asynchronous nature.

  • 934-934: The use of Ждать before ДополнительнаяПроверкаНаВозможностьПодписания is correct for asynchronous calls. Verify that the calling code is adapted to handle the asynchronous operation and that the error handling is robust.

  • 950-950: The procedure ПроверитьНаСторонеКлиентаВМоделиСервиса has been correctly updated to an asynchronous version. Ensure that all calls to this procedure are updated to handle the asynchronous nature.

  • 969-969: The use of Ждать before ДополнительнаяПроверкаНаВозможностьПодписания is correct for asynchronous calls. Verify that the calling code is adapted to handle the asynchronous operation and that the error handling is robust.

  • 1402-1402: The procedure ПроверитьНаСторонеКлиентаОблачнаяПодпись has been correctly updated to an asynchronous version. Ensure that all calls to this procedure are updated to handle the asynchronous nature.

  • 1423-1423: The use of Ждать before ДополнительнаяПроверкаНаВозможностьПодписания is correct for asynchronous calls. Verify that the calling code is adapted to handle the asynchronous operation and that the error handling is robust.

  • 2231-2231: The function ДополнительнаяПроверкаНаВозможностьПодписания has been changed to an asynchronous function. Ensure that all calls to this function are updated to handle the asynchronous nature and that the error handling is robust.

  • 2256-2256: The return statement for the asynchronous function ДополнительнаяПроверкаНаВозможностьПодписания is correctly implemented. Ensure that the calling code correctly handles the returned error description.

src/cf/Catalogs/Файлы/Forms/Файлы/Ext/Help/ru.html (6)
  • 2-2: The introduction of the term "приложении" (application) instead of "программе" (program) at line 2 is a semantic change that should be verified for accuracy. Ensure that this change is consistent with the terminology used throughout the application's documentation and user interface.

  • 6-6: The change at line 6, which mentions the use of specific applications for file handling on the device, should be checked for consistency with the actual functionality provided by the application. Confirm that the application indeed allows for such interactions with files using external applications.

  • 8-8: The update at line 8, which describes the color-coding of files based on their editing status, is a useful addition for user clarity. Ensure that the application's user interface reflects these color codes accurately.

  • 33-33: At line 33, the instructions for attaching a file from the device include specifying the file path and using an "Open" button. Verify that the interface provides this button and that the instructions are clear and accurate for the user.

  • 47-47: The addition at line 47 regarding the availability of the "Scan from scanner" option should be checked for accuracy. Confirm that the application supports this feature and that the instructions are clear for users with connected scanners.

  • 96-96: The explanation of electronic signature and encryption commands at line 96 is crucial for users. Ensure that the commands listed are available in the application and that the help text accurately describes their effects.

src/cf/CommonForms/ДобавлениеЭлектроннойПодписиИзФайла/Ext/Form/Module.bsl (3)
  • 359-366: The conversion of ВыбратьФайлПослеПолученияКонтейнераПодписи to an asynchronous procedure and the use of Ждать to call ЭлектроннаяПодписьСлужебныйКлиент.ПараметрыПодписиКриптографии are correct. Ensure that all calls to this procedure are updated to handle the asynchronous nature.

  • 435-440: The conversion of ВыбратьФайлПослеВыгрузкиСертификата to an asynchronous procedure and the use of Ждать to call ЭлектроннаяПодписьСлужебныйКлиент.СвойстваСертификата are correct. Ensure that all calls to this procedure are updated to handle the asynchronous nature.

  • 547-553: The server-side function ДобавитьСтрокуНаСервере correctly calls ЭлектроннаяПодписьСлужебный.ПараметрыПодписиКриптографии synchronously, which is appropriate for server-side code.

src/cf/CommonForms/НастройкиЭлектроннойПодписиИШифрования/Ext/Help/ru.html (3)
  • 5-5: The update in terminology from "программе" to "приложении" and "компьютере" to "устройстве" is consistent with modern usage and device diversity.

  • 8-8: The addition of the component ExtraCryptoAPI for automatic detection of the application for certificate work is a useful update for users. Ensure that the instructions for installation are clear and accessible.

  • 16-17: The addition of new sections "Машиночитаемые доверенности (единый формат)" and "Легенда" suggests new features or legal requirements have been incorporated. Verify that these sections are properly linked and contain relevant information.

src/cf/CommonForms/ПоддерживаемыеКлиентскиеПриложения/Ext/Help/ru.html (1)
  • 3-11: The detailed information about the compatibility of external components with various operating systems, browsers, and architectures is valuable for users to understand the application's requirements.
src/cf/CommonForms/Сертификат/Ext/Form/Module.bsl (6)
  • 52-53: The addition of ДополнительныеСвойстваСертификата function call is noted. Ensure that the implementation of this function properly handles the retrieval of additional certificate properties and that these properties are used consistently throughout the application.

  • 61-63: The assignment of ДатаОкончания and ДатаОкончанияЗакрытогоКлюча from СвойстваСертификата and the subsequent visibility setting for the UI element Элементы.ДатаОкончанияЗакрытогоКлюча.Видимость are correctly implemented. Ensure that the visibility logic is consistent with the application's UI requirements.

  • 71-71: The visibility of the ГруппаЛицензияКриптоПро UI element is now controlled by the СодержитВстроеннуюЛицензиюКриптоПро property. Verify that this property is correctly determined and reflects the actual state of the CryptoPro license.

  • 94-95: The retrieval of certificate properties within the certificate chain processing loop has been updated. Confirm that the СвойстваСертификата function correctly handles the properties of each certificate in the chain and that the UI element Представление is assigned appropriately.

  • 394-400: The addition of conditional logic to add properties ДатаНачалаЗакрытогоКлюча and ДатаОкончанияЗакрытогоКлюча based on their availability is noted. Ensure that these properties are correctly populated and that the ДобавитьСвойство procedure is capable of handling these new fields.

  • 543-545: The use of asynchronous operations with Ждать to retrieve certificate properties is correctly implemented. Confirm that the ЭлектроннаяПодписьСлужебныйКлиент.СвойстваСертификата function supports asynchronous calls and that the Представление property is correctly assigned to the UI element.

src/cf/CommonForms/ЭлектроннаяПодпись/Ext/Form/Module.bsl (2)
  • 248-250: The changes to use asynchronous operations with Ждать for initializing the cryptographic certificate and retrieving its properties are correctly implemented. Confirm that the ЭлектроннаяПодписьСлужебныйКлиент.СвойстваСертификата function supports asynchronous calls and that the КомуВыдан property is correctly assigned.

  • 264-266: Similar to the previous comment, the use of asynchronous operations with Ждать for initializing the cryptographic certificate and retrieving its properties is correctly implemented. Confirm that the ЭлектроннаяПодписьСлужебныйКлиент.СвойстваСертификата function supports asynchronous calls and that the КомуВыдан property is correctly assigned.

src/cf/CommonModules/GoogleПереводчик/Ext/Module.bsl (1)
  • 187-187: The logging of translation errors has been updated to use Google Translate as the service. Confirm that this change is consistent with the application's requirements and that the Перечисления.СервисыПереводаТекста.GoogleПереводчик enumeration value is correctly used throughout the application.
src/cf/CommonModules/ОбщегоНазначенияКлиентСервер/Ext/Module.bsl (1)
  • 2564-2564: Verify the necessity and correctness of the application version check (СравнитьВерсии). If this version-specific logic is required, ensure that the version number "8.3.24.1305" is the correct threshold for the changes being made.
src/cf/CommonModules/ОбщегоНазначенияСлужебныйКлиент/Ext/Module.bsl (3)
  • 909-918: The new conditional block correctly handles the case when Контекст.ПредложитьУстановить is false by assigning an error message and executing a notification function. Ensure that СтроковыеФункцииКлиентСервер.ПодставитьПараметрыВСтроку and ВыполнитьОбработкуОповещения are properly handling the error scenario.

  • 1195-1198: The addition of a version check and asynchronous pause based on the application version is a good practice for ensuring compatibility with different versions. However, ensure that the version "8.3.24.0" is the correct threshold for introducing the pause and that the ПаузаАсинх function is available in the context where it's used.

  • 1231-1240: The conditional block added here is similar to the one in hunk 1, handling the case when Контекст.ПредложитьУстановить is false. It's important to ensure that the error handling is consistent across different parts of the code and that the РезультатПодключенияКомпоненты function is correctly implemented to handle this scenario.

src/cf/CommonModules/ОтчетОДвиженияхДокументаСлужебныйКлиент/Ext/Module.bsl (2)
  • 119-132: The introduction of ИдСуществующейПользовательскойНастройки and the loop to find an existing user setting by comparing ЛевоеЗначение with НовоеПоле seems correct. However, ensure that the identifier ИдСуществующейПользовательскойНастройки is used appropriately downstream, as it is set within a conditional block and may not be set if the condition is not met.

  • 162-173: The logic to update an existing user setting's filter properties based on ИдСуществующейПользовательскойНастройки is clear. However, consider the implications of modifying shared settings concurrently, which could lead to data races. If this code is executed in a multi-user environment, ensure proper synchronization mechanisms are in place.

src/cf/CommonModules/РаботаСФайламиКлиент/Ext/Module.bsl (1)
  • 812-817: The changes to the ДоступнаКомандаСканировать function introduce conditional initialization of the scanner component based on its availability. This is a logical improvement, as it avoids unnecessary operations when the scanner is not available. Ensure that the callback ДоступнаКомандаСканироватьЗавершение is properly handling the result of the initialization.
src/cf/CommonModules/РаботаСФайламиСлужебныйВызовСервера/Ext/Module.bsl (2)
  • 3225-3225: The updated comment clarifies the purpose of the ИмяЛогФайла field. This change improves the readability and understanding of the code.

  • 3277-3279: A new exported procedure ОчиститьРабочийКаталог has been added. Ensure that there is sufficient documentation for this procedure and that its impact on existing functionality has been considered.

src/cf/CommonModules/РаботаСФайламиСлужебныйКлиент/Ext/Module.bsl (4)
  • 4656-4660: The new condition РабочийКаталогДоступен is used to check the availability of a working directory before proceeding. Ensure that the function РабочийКаталогДоступен is thoroughly tested to handle all edge cases, especially since file system operations can be prone to errors due to permissions, network issues, etc.

  • 10671-10673: The function ПолучитьУстройства correctly returns the result of ПодключенныеУстройства. Ensure that the called function handles all possible exceptions and edge cases since it interacts with external modules.

  • 11039-11043: The device retrieval logic in ПодключенныеУстройства splits the devices string into an array. Ensure that the delimiter used (Символы.ПС) is consistent with the format provided by the ПолучитьУстройства method of the external module.

  • 11045-11045: The error handling in ПодключенныеУстройства creates a new array in case of an exception. This is a good fallback, but ensure that the error message and logging are clear and provide enough information for troubleshooting.

src/cf/CommonModules/РассылкаОтчетов/Ext/Module.bsl (3)
  • 719-719: The change to ПараметрыДоставки.КаталогВременныхФайлов now appends a server path separator to the temporary file directory. Ensure that the НомерСеансаИнформационнойБазы() function and ПолучитьРазделительПутиСервера() method return values that correctly form a valid path on the server.

  • 2768-2768: The modification to СтрокаФайл.Настройки.ПолноеИмяКаталога includes appending a server path separator. Verify that the ПолучитьРазделительПутиСервера() method is consistent across the application and that it correctly handles path concatenation on the server's operating system.

  • 4734-4739: The logging level has been changed from УровеньЖурналаРегистрации.Предупреждение to УровеньЖурналаРегистрации.Информация, and a setting is being saved to disable the log hint after it's been logged once. Confirm that this change in logging behavior is intentional and that the setting ЗаписыватьВЖурналПодсказкуУскоренияРассылкиОтчетов is appropriately documented and understood by the users or administrators.

src/cf/CommonModules/УправлениеДоступомСлужебный/Ext/Module.bsl (5)
  • 3897-3904: > Note: This review was outside the patches, and no patch overlapping with it was found. Original lines [34-45]

The addition of ХешСуммы in the function ОписаниеСвойствВидовДоступаСеанса seems correctly initialized and used in subsequent function calls. Ensure that the changes in the handling of ХешСуммы are consistent with the rest of the codebase where this function is used.

  • 3897-3904: > Note: This review was outside the patches, and no patch overlapping with it was found. Original lines [70-74]

The initialization of ХешСумма to an empty string in ОписаниеВозможныхПравСеансаДляНастройкиПравОбъектов may be intentional, but it's worth double-checking the logic to ensure it aligns with the intended behavior of the function and the handling of hash sums in the system.

  • 3897-3904: > Note: This review was outside the patches, and no patch overlapping with it was found. Original lines [100-104]

The initialization of ХешСумма to an empty string in ОписаниеПоставляемыхПрофилейСеанса should be verified for correctness, as it may affect the function's outcome if the hash sum is a critical part of the logic.

  • 3897-3904: > Note: This review was outside the patches, and no patch overlapping with it was found. Original lines [123-127]

The pattern of initializing ХешСумма to an empty string is also present in ОписаниеСтандартныхРолейРасширенийСеанса. It's important to verify that this is the intended behavior across all similar functions.

  • 3897-3904: > Note: This review was outside the patches, and no patch overlapping with it was found. Original lines [158-161]

In ИдентификаторыРолейСеанса, ensure that the Список.ВыгрузитьЗначения() method returns the expected data type and values for the hash sum calculation to be correct.

src/cf/CommonModules/УправлениеКонтактнойИнформацией/Ext/Module.bsl (1)
  • 4785-4787: The change ensures that МногострочныйРежим is only set to Истина for input fields (ПолеВвода). This is a good practice to avoid applying properties to incompatible control types. Ensure that all control types that require МногострочныйРежим are covered by this condition.
src/cf/CommonModules/УправлениеПечатью/Ext/Module.bsl (2)
  • 2122-2122: The addition of the "ВыполнятьВФоновомЗадании" parameter to the list of parameters is noted. Ensure that all relevant parts of the application that use this list are updated to handle the new parameter appropriately.

  • 3817-3820: The logic to set a default value for "ВыполнятьВФоновомЗадании" if it is undefined appears correct, using a case-insensitive comparison to determine the default. Ensure that the function ИнформационнаяБазаФайловая() is defined and behaves as expected in the context of this module.

src/cf/CommonModules/УправлениеПечатьюКлиент/Ext/Module.bsl (2)
  • 36-43: The logic to determine whether to execute the print command in the background seems correct. It checks if ПараметрыПечати is a structure and contains the property ВыполнятьВФоновомЗадании. If these conditions are met, it calls the new procedure ВыполнитьКомандуПечатиВФоне. Ensure that the property ВыполнятьВФоновомЗадании is properly documented and that its usage here is consistent with its intended purpose.

  • 1083-1098: The new procedure ВыполнитьКомандуПечатиВФоне correctly initiates a long-running operation to generate print forms and handles the operation asynchronously. However, ensure that there is proper error handling on the server-side operation НачатьФормированиеПечатныхФорм. Also, verify that the callback ОткрытьФормуПечатьДокументов is correctly implemented to handle the results of the long operation and that ПараметрыОжидания is set up correctly to manage the client's expectations during the wait.

src/cf/CommonModules/УчетОригиналовПервичныхДокументов/Ext/Module.bsl (1)
  • 839-849: The logic within the УстановитьНовоеСостояниеОригиналаДокумента function has been altered. Ensure that the changes in the logic correctly handle the new state of the document's original and that the conditions for setting the Изменено flag are correct. Also, verify that the РегистрыСведений.СостоянияОригиналовПервичныхДокументов.ЗаписатьОбщееСостояниеОригиналаДокумента method is called with the correct parameters and that it behaves as expected when the document state is updated.
src/cf/CommonModules/ЭлектроннаяПодпись/Ext/Module.bsl (5)
  • 808-816: Ensure that the function СвойстваСертификата is properly defined and that the properties being assigned to СертификатОбъект are valid and expected. If СвойстваСертификата is a new addition, verify that it is being used correctly in all places where СертификатКриптографии is handled.

  • 842-849: The conditional logic to check for the "Наименование" property before setting it using СвойстваСертификата seems appropriate. Verify that the СвойстваСертификата function is being used consistently and that the "Наименование" property is correctly handled in all relevant parts of the code.

  • 1160-1192: The СвойстваСертификата function definition appears to handle different input types for the Сертификат parameter and returns a structured set of properties. Ensure that the returned structure matches the expected properties and that the function is robust against invalid input types.

  • 1311-1311: The assignment using ЭлектроннаяПодписьСлужебный.ПараметрыПодписиКриптографии appears correct. Verify that the function is defined as expected and that the parameters passed to it are being handled properly in the function's implementation.

  • 1881-1886: The conditional check to ensure РезультатСтруктура is not undefined before calling ЗаполнитьЗначенияСвойств is good practice. Verify that the ЗаполнитьЗначенияСвойств function is consistently used and that the СвойстваПодписи structure is correctly populated in all instances.

src/cf/CommonModules/ЭлектроннаяПодписьКлиент/Ext/Module.bsl (2)
  • 1131-1133: The comments have been updated to reflect the structure returned by the СвойстваСертификата function. Ensure that the actual implementation in the code matches these comments, especially the new fields mentioned.

  • 1198-1198: The function СвойстваСертификата now includes an additional, undefined parameter in its call to ЭлектроннаяПодписьСлужебныйКлиент.СвойстваСертификата. Confirm that this change is intentional and that all calls to this function have been updated accordingly. Additionally, ensure that the documentation is updated to reflect this change.

src/cf/CommonModules/ЭлектроннаяПодписьКлиентСерверЛокализация/Ext/Module.bsl (5)
  • 11-24: The updated logic in ПриПолученииПредставленияСертификата now handles a case where Сертификат is a structure. Ensure that all calling code is aware of this new expected structure and that it is constructed correctly before being passed to this procedure.

  • 205-217: The function АдресСпискаОтзываВнутренний now retrieves additional certificate properties instead of just the identifier. Confirm that the new ДополнительныеСвойстваСертификата structure contains all necessary information and is used correctly in all places where ИдентификаторКлючаУдостоверяющегоЦентра was previously used.

  • 514-520: The addition of СвойстваСертификата to the context structure in КонтекстПроверкиУдостоверяющегоЦентраСертификата suggests that there is a new dependency on certificate properties within the verification context. Ensure that this new context property is populated and utilized correctly wherever this context is used.

  • 574-580: The function РезультатПроверкиУдостоверяющегоЦентраСертификата now includes logic related to ЭтоОбезличенныйСертификат. Verify that the implementation of this logic correctly identifies anonymized certificates and that the rest of the verification process accounts for this new type of certificate.

  • 649-667: The changes in РезультатПроверкиУдостоверяющегоЦентраСертификата introduce additional handling for anonymized certificates. Ensure that the conditions for these certificates are correctly implemented and that they are consistent with the intended business logic, especially regarding the state of the certificate and its issuing authority.

src/cf/CommonModules/ЭлектроннаяПодписьСлужебный/Ext/Module.bsl (18)
  • 134-149: The introduction of СвойстваСертификата and its usage in error handling for certificate expiration (ОшибкаПросрочки) seems correct. Ensure that the СвойстваСертификата is properly populated and that the error handling logic for certificate expiration is consistent with the rest of the application.

  • 517-517: The addition of the СвойстваСертификата parameter to the РезультатПроверкиУдостоверяющегоЦентраСертификата function requires verification to ensure that all calls to this function have been updated accordingly.

Verification successful

The previous script failed because the file type bsl is not recognized by ripgrep. I will adjust the script to search for the .bsl files explicitly.


The search results indicate that the function РезультатПроверкиУдостоверяющегоЦентраСертификата is used in various places within the codebase. To ensure that the new parameter СвойстваСертификата is being passed correctly, I will generate a script to extract the specific lines of code where the function is called. This will allow us to analyze if the new parameter is being used consistently.


The output indicates that the function РезультатПроверкиУдостоверяющегоЦентраСертификата is called with different numbers of parameters in various places. To determine whether this is due to function overloading or an inconsistency, I will generate a script to check if there are multiple definitions of the function with different parameter lists.


The verification process has confirmed that the function РезультатПроверкиУдостоверяющегоЦентраСертификата is overloaded with different parameter lists. Therefore, the presence of calls to this function without the СвойстваСертификата parameter is consistent with the overloaded definitions and does not indicate an issue.

Scripts Executed

The following scripts were executed for the analysis:


Script:

#!/bin/bash
# Search for the function usage across the codebase to verify the parameter addition.
rg --type bsl "РезультатПроверкиУдостоверяющегоЦентраСертификата"

Length of output: 439



Script:

#!/bin/bash
# Search for the function usage across the codebase without specifying the file type.
rg "РезультатПроверкиУдостоверяющегоЦентраСертификата" -g "*.bsl"

Length of output: 5628



Script:

#!/bin/bash
# Extract the lines of code where the function is called to analyze the usage of the new parameter.
rg "РезультатПроверкиУдостоверяющегоЦентраСертификата\(" -g "*.bsl" -C 3

Length of output: 11222



Script:

#!/bin/bash
# Check for multiple definitions of the function with different parameter lists.
rg "Функция РезультатПроверкиУдостоверяющегоЦентраСертификата" -g "*.bsl" -C 1

Length of output: 1502

* 550-555: The conditional logic for assigning `СвойстваСертификата` within the `РезультатПроверкиУдостоверяющегоЦентраСертификата` function appears to be correctly implemented, ensuring that the properties are either computed or passed as a parameter.
  • 967-972: The version number "3.1.6.20" set in the handler configuration may need to be updated to match the new supplier configuration version "3.1.9.238" as mentioned in the PR title. Please verify that this version number is correct and intended.

  • 1017-1040: The handler properties are updated with a new version "3.1.9.234" and additional configuration settings. Ensure that the version number is correct and that the new properties align with the intended functionality of the handler.

Verification successful

The previous script failed because ripgrep does not recognize the file type bsl. To correct this, I will generate a new script that searches for the version string "3.1.9.234" without specifying a file type.


The search for the version "3.1.9.234" within the codebase returned a single occurrence, which is located in the file src/cf/CommonModules/ЭлектроннаяПодписьСлужебный/Ext/Module.bsl. This confirms that the version update to "3.1.9.234" is indeed present in the code and is applied to the handler as intended in the pull request.

Scripts Executed

The following scripts were executed for the analysis:


Script:

#!/bin/bash
# Check if the version "3.1.9.234" is consistent with the intended update and used correctly.
rg --type bsl "3.1.9.234"

Length of output: 53



Script:

#!/bin/bash
# Search for the version "3.1.9.234" in all files, as the file type 'bsl' is not recognized by ripgrep.
rg "3.1.9.234"

Length of output: 112

* 1363-1377: The new function `ПараметрыПодписиКриптографии` is added for handling cryptographic signature parameters. Confirm that the implementation is secure and that it adheres to best practices for cryptographic operations.
  • 1464-1464: The usage of the ПараметрыПодписиКриптографии function to set the ТипПодписи property is correct. Ensure that the property is used consistently throughout the application.

  • 1952-1952: The addition of the ДействителенДо property to СвойстваСертификата is noted. Verify that this new property is used correctly in the context of certificate validation and expiration checks.

Verification successful

The search results indicate that the property ДействителенДо is widely used throughout the codebase, particularly in modules related to certificate handling and validation. The property appears in various contexts, such as sorting, comparison, and conditional checks, which suggests that it is an established part of the system's logic for managing certificate expiration.

Given the extensive use of ДействителенДо across different modules and forms, and considering that the addition of this property in the ЭлектроннаяПодписьСлужебный module is consistent with its usage elsewhere, it can be inferred that the new property is used correctly in the context of certificate validation and expiration checks.

Scripts Executed

The following scripts were executed for the analysis:


Script:

#!/bin/bash
# Search for the usage of the new property "ДействителенДо" to ensure it's handled correctly.
rg --type bsl "ДействителенДо"

Length of output: 159



Script:

#!/bin/bash
# Search for the usage of the new property "ДействителенДо" across all files without specifying file type.
rg "ДействителенДо"

Length of output: 14187

* 2844-2847: The assignment of `Наименование` from `СвойстваСертификата` appears to be correct. Ensure that the `Наименование` property is used consistently with the updated certificate properties.
  • 3273-3283: The logic for setting СрокДействияПоследнейМеткиВремени based on the certificate's validity (ДействителенДо) and handling certificate expiration errors is noted. Verify that this logic is consistent with the application's requirements for certificate expiration handling.
Verification successful

The previous script did not execute as expected due to an unrecognized file type. I will generate a new script without the --type flag to search for the string "ДействителенДо" in the codebase.


The search results indicate that the handling of certificate expiration, as denoted by the property "ДействителенДо", is a common pattern used consistently across various modules in the codebase. The specific logic in the snippet provided aligns with this pattern, suggesting that it is consistent with the application's requirements for certificate expiration handling.

Scripts Executed

The following scripts were executed for the analysis:


Script:

#!/bin/bash
# Search for the handling of certificate expiration to ensure consistency.
rg --type bsl "ДействителенДо"

Length of output: 159



Script:

#!/bin/bash
# Search for the handling of certificate expiration to ensure consistency.
rg "ДействителенДо"

Length of output: 14187

* 4080-4080: The error handling for the `C14N` method in the cryptographic component is consistent with the pattern observed in other parts of the code. Ensure that this error handling approach is standardized across the application.
  • 4144-4144: The error handling for the C14N_body method in the cryptographic component follows the established pattern. Confirm that this error handling is appropriate for the context in which it is used.

  • 4164-4164: The error handling for the TransformSMEV method in the cryptographic component is consistent with the pattern observed in other parts of the code. Ensure that this error handling approach is standardized across the application.

  • 4187-4187: The error handling for the Hash method in the cryptographic component follows the established pattern. Confirm that this error handling is appropriate for the context in which it is used.

  • 4214-4214: The error handling for the Sign method in the cryptographic component is consistent with the pattern observed in other parts of the code. Ensure that this error handling approach is standardized across the application.

  • 4239-4239: The error handling for the VerifySign method in the cryptographic component follows the established pattern. Confirm that this error handling is appropriate for the context in which it is used.

  • 4270-4270: The error handling for the CMSSign method in the cryptographic component is consistent with the pattern observed in other parts of the code. Ensure that this error handling approach is standardized across the application.

  • 4292-4292: The error handling for the CMSVerifySign method in the cryptographic component follows the established pattern. Confirm that this error handling is appropriate for the context in which it is used.

src/cf/CommonModules/ЭлектроннаяПодписьСлужебныйВызовСервера/Ext/Module.bsl (2)
  • 432-435: The changes made to the handling of binary certificate data seem to be an optimization to avoid calling СертификатКриптографии.Выгрузить() multiple times by storing the result in ДвоичныеДанныеСертификата. This is a good practice as it reduces the number of calls to potentially expensive operations. Ensure that the ДвоичныеДанныеСертификата variable is used consistently throughout the module for similar operations.

  • 978-979: The refactoring to use СвойстваСертификата for obtaining the certificate presentation instead of directly calling ЭлектроннаяПодпись.ПредставлениеСертификата(СертификатКриптографии) is a good practice as it centralizes the retrieval of certificate properties. However, ensure that СвойстваСертификата is properly initialized before this change and that all its usages reflect the new structure.

src/cf/CommonModules/ЭлектроннаяПодписьСлужебныйКлиент/Ext/Module.bsl (22)
  • 329-343: The addition of the asynchronous function СвойстваСертификата is correctly implemented with proper handling of different certificate types and appropriate usage of Ждать for asynchronous calls.

  • 1642-1642: The change to use Ждать СвойстваСертификата(Сертификат) aligns with the PR's objective to enhance asynchronous operations and is correctly implemented.

  • 1662-1667: The assignment of СвойстваПодписи.Сертификат and the subsequent logic are correctly implemented with no issues detected.

  • 1830-1830: The insertion of СвойстваСертификата into Контекст is consistent with the asynchronous pattern used in the module and is correctly implemented.

  • 2129-2147: The changes in the ПроверитьСертификатНаКлиентеПослеПроверки procedure, including the use of Ждать for the СвойстваСертификата call, are correctly implemented and align with the asynchronous programming model.

  • 2155-2160: The changes in the ДополнительнаяПроверкаСертификата procedure, including the use of Ждать for the РезультатПроверкиУдостоверяющегоЦентраСертификата call, are correctly implemented and align with the asynchronous programming model.

  • 2209-2209: The conversion of the РезультатПроверкиУдостоверяющегоЦентраСертификата function to an asynchronous function is correctly implemented and aligns with the PR's objectives.

  • 5115-5117: The logic in the ВыполнитьНаСторонеПослеВыгрузкиСертификата procedure correctly updates the context with the certificate properties using the new asynchronous pattern.

  • 6299-6303: The logic in the УсовершенствоватьНаСторонеПослеПолученияКонтейнераПодписи procedure correctly uses Ждать to obtain the signature parameters asynchronously.

  • 6414-6418: The logic in the ВыполнитьПослеПолученияКонтейнераУсовершенствованнойПодписи procedure correctly uses Ждать to obtain the signature parameters asynchronously.

  • 7240-7240: The error handling logic correctly uses Ждать to retrieve errors from asynchronous operations, which is consistent with the asynchronous programming model.

  • 7271-7271: The error handling logic correctly uses Ждать to retrieve errors from asynchronous operations, which is consistent with the asynchronous programming model.

  • 7405-7405: The error handling logic correctly uses Ждать to retrieve errors from asynchronous operations, which is consistent with the asynchronous programming model.

  • 7442-7442: The error handling logic correctly uses Ждать to retrieve errors from asynchronous operations, which is consistent with the asynchronous programming model.

  • 7509-7509: The error handling logic correctly uses Ждать to retrieve errors from asynchronous operations, which is consistent with the asynchronous programming model.

  • 7531-7531: The error handling logic correctly uses Ждать to retrieve errors from asynchronous operations, which is consistent with the asynchronous programming model.

  • 7546-7569: The error handling logic in the ПослеВыполненияПолучитьОшибку and related procedures is consistent with the asynchronous error handling pattern used throughout the module.

  • 7917-7917: The logic in the ВыполнитьНаСторонеПослеВыгрузкиСертификатаВМоделиСервиса procedure is consistent with the asynchronous programming model, although the full logic is not visible.

  • 7933-7933: The logic in the ВыполнитьНаСторонеПослеВыгрузкиСертификатаВМоделиСервиса procedure is consistent with the asynchronous programming model, although the full logic is not visible.

  • 10717-10717: The logic in the ПараметрыПодписиКриптографии function correctly uses Ждать to obtain the signature parameters asynchronously.

  • 10797-10797: The logic in the ПараметрыПодписиКриптографии function correctly uses Ждать to obtain the signature parameters asynchronously.

  • 10891-10924: The internal ПараметрыПодписиКриптографии function is correctly implemented with the use of Ждать to obtain certificate properties asynchronously, and it is properly designated for internal use only.

src/cf/CommonModules/ЭлектроннаяПодписьСлужебныйКлиентСервер/Ext/Module.bsl (9)
  • 2455-2472: The function ПредставлениеСертификата handles different types of certificate data correctly. It's good to see that it delegates to another module for obtaining the certificate representation and has a fallback for empty results.

  • 2538-2573: The function СвойстваСертификата is well-structured and handles the conditional logic for additional certificate properties effectively. The use of Мин function to determine the ДействителенДо property is a good practice to ensure the earliest date is used.

  • 2602-2607: The conditional formatting of the certificate's validity date in the table is correctly implemented. It ensures that the appropriate message is displayed based on whether the certificate's validity matches the private key's expiration.

  • 3173-3173: The formatting of the ДействителенДо property for display is consistent with the rest of the module's approach to handling dates.

  • 3681-3691: The function ДополнительныеСвойстваСертификата is set up with a clear structure and default values for additional certificate properties. This is a good practice for initializing structures to avoid null reference errors.

  • 3711-3711: The error handling in the certificate data analysis is clear and informative, providing a specific message when the data does not represent a certificate.

  • 3736-3737: The error handling for certificate data analysis is consistent and provides a clear message when an error in the certificate data is detected.

  • 3746-3778: The functions for analyzing certificate data, such as ЗаполнитьПериодДействияЗакрытогоКлюча and ЗаполнитьИдентификаторКлючаУдостоверяющегоЦентра, are well-structured and include appropriate error handling. The use of hex strings for identifying specific certificate extensions is a common practice in certificate parsing.

  • 4491-4491: The procedure ПриОшибкеСтруктурыДанных correctly sets flags to indicate an error in the data structure, which is a good practice for error signaling in complex data parsing operations.

src/cf/DataProcessors/ЗагрузкаДанныхИзФайла/Ext/ManagerModule.bsl (2)
  • 344-344: The change from "СтатусНесопоставлен" to "СтатусНеСопоставлен" aligns with the PR objectives and the AI-generated summary, which indicates an update to data comparison statuses.

  • 482-482: The renaming of the status constant here is consistent with the changes in the first hunk and the overall objectives of the PR.

src/cf/DataProcessors/ЗагрузкаДанныхИзФайла/Forms/ЗагрузкаДанныхИзФайла/Ext/Form/Module.bsl (9)
  • 272-272: The change from "СтатусНесопоставлен" to "СтатусНеСопоставлен" is consistent with the PR's objective to update data comparison statuses. Ensure that all references to the old status are updated across the codebase to maintain consistency.
Verification successful

The shell script executed to search for occurrences of 'СтатусНесопоставлен' did not produce any output. This suggests that there are no instances of the old status in the codebase, which aligns with the changes made in the pull request.

Scripts Executed

The following scripts were executed for the analysis:


Script:

#!/bin/bash
# Search for the old status usage to ensure it's been fully replaced.
rg --type bsl 'СтатусНесопоставлен'

Length of output: 199



Script:

#!/bin/bash
# Search for the old status usage to ensure it's been fully replaced, without specifying file type.
rg 'СтатусНесопоставлен'

Length of output: 160

* 283-283: The conditional logic for status assignment based on error description presence is clear and follows the intended logic changes.
  • 491-491: The filter setup for non-matched data rows is consistent with the changes made in other parts of the code.

  • 528-528: The logic to assign the comparison result based on the length of the error description is consistent and clear.

  • 538-538: The status assignment for non-ambiguous cases is handled correctly, ensuring that the status is set to non-matched when it is not ambiguous.

  • 579-579: The filter and count for non-matched rows are set up correctly, and the calculation for the number of ambiguous rows is logical.

  • 1191-1193: The check to determine if all rows are matched by looking for non-matched and ambiguous statuses is implemented correctly.

  • 1853-1853: The assignment of the comparison result based on the completion of all required columns is consistent with the intended logic changes.

  • 2693-2693: The reset of the comparison object and related attributes for each row in the table is consistent with the intended logic changes.

src/cf/DataProcessors/ЗаявлениеНаВыпускНовогоКвалифицированногоСертификата/Ext/ManagerModule.bsl (4)
  • 63-63: The change correctly sets the visibility of the element to true when the condition is met, aligning with the control flow changes mentioned in the summary.

  • 1215-1215: The property Наименование is now being assigned from СвойстваСертификата.Представление. Confirm that СвойстваСертификата has the expected structure and values to prevent any assignment issues.

  • 1494-1494: The introduction of a new parameter ЗаписатьОбъект in the exported procedure ОбработатьДанныеДляПереходаНаНовуюВерсию requires verification that all calls to this procedure have been updated accordingly.

  • 1532-1532: The assignment ЗаписатьОбъект = Истина; at the end of the procedure suggests that the object should be written. Ensure that this flag is handled correctly wherever the procedure is called.

src/cf/DataProcessors/ЗаявлениеНаВыпускНовогоКвалифицированногоСертификата/Forms/Форма/Ext/Form/Module.bsl (1)
  • 1403-1405: The change from direct certificate representation to accessing certificate properties through a new method seems correct. Ensure that the new method СвойстваСертификата is properly tested, especially in cases where ТекущийОбъект.ДанныеСертификата.Получить() might return null or invalid data, which could lead to a runtime error when trying to access .Представление.
src/cf/DataProcessors/РаботаСФайлами/Forms/ПрисоединенныеФайлы/Ext/Help/ru.html (7)
  • 2-3: The terminology change from "программа" to "приложение" is consistent with modern usage and is a good update for clarity.

  • 7-7: Ensure that the description provided next to the file name is clear and informative for the user.

  • 27-27: Verify that the link provided for the scanning window opens the correct help page and that the instructions are clear for the user.

  • 31-31: The information about file storage in a special directory and separate folders for each application object should be clear and accurate. Confirm that this reflects the actual implementation.

  • 54-54: Ensure that the description of the "Edit" command and the file capture process in the application is clear and corresponds to the actual functionality.

  • 83-83: Confirm that the instructions for signing files and the process of selecting a signature certificate are clear to the user and that the link to choose a certificate is functioning correctly.

  • 98-98: The description of service files and their visibility only to users with full rights should be clear. Confirm that this accurately reflects the application's permissions model.

src/cf/DataProcessors/Сканирование/Forms/НастройкаСканирования/Ext/Form/Module.bsl (2)
  • 127-141: The removal of the procedure ИмяУстройстваНачалоВыбораЗавершение could potentially lead to issues if it is referenced elsewhere. Verify that this procedure is not called from any other part of the codebase.

  • 383-384: The procedure ОКЗавершение appears to be unchanged semantically. It's good practice to ensure that the saving of settings is handled correctly and that any potential exceptions are managed.

src/cf/InformationRegisters/НастройкиПравОбъектов/Ext/ManagerModule.bsl (7)
  • 19-23: The initialization of НовоеЗначение as an empty string and its subsequent use as an additional parameter in the call to ПроверенныеВозможныеПраваСеанса is a significant change. Ensure that the new logic correctly handles the empty string and that the called function is designed to accept and process this new parameter appropriately.

  • 799-799: The addition of the ХешСумма parameter to the function ПроверенныеВозможныеПраваСеанса requires verification that all calls to this function have been updated accordingly. Also, ensure that the function's logic correctly utilizes this new parameter.

  • 811-814: The introduction of new data structures such as СвойстваВладельцев, ТипыВладельцев, ОтдельныеТаблицы, and ИерархическиеТаблицы suggests a significant change in how rights and their properties are managed. Ensure that these structures are correctly populated and used throughout the module, and that any dependent logic is updated to reflect these changes.

  • 854-857: The logic within ПроверенныеВозможныеПраваСеанса now conditionally retrieves or initializes ПраваВладельца. Ensure that this conditional logic is correct and that the ПраваВладельца structure is properly initialized in all cases to prevent runtime errors.

  • 974-976: The function СвойстваВозможногоПрава is now being called with an ИндексПрава parameter. Verify that the logic inside this function correctly handles the index and that the index is being used appropriately throughout the module.

  • 985-991: The addition of version information management with ОписаниеВерсии and related logic is a significant change. Ensure that the versioning logic is consistent and that the version information is correctly generated and used where necessary.

  • 1097-1097: The function СвойстваВозможногоПрава has been modified to include an ИндексПрава parameter. Ensure that the index is correctly used within the function and that any logic depending on the order of rights is updated to accommodate this change.

src/cf/InformationRegisters/НастройкиСинхронизацииФайлов/Forms/ФормаЗаписи/Ext/Form/Module.bsl (1)
  • 60-62: The change from ЗначениеРеквизитаОбъекта to ЗначенияРеквизитовОбъекта indicates a shift from retrieving a single property value to multiple values. Ensure that the rest of the code correctly handles the returned structure, especially since СвойстваВладельца.ЗначениеПустойСсылки is used later, which implies that the new method returns a structure with named properties.
src/cf/Reports/УниверсальныйОтчет/Ext/ManagerModule.bsl (5)
  • 66-66: The function signature for ФиксированныеПараметры has been updated to include a new parameter Контекст. Ensure that all calls to this function have been updated to pass the new parameter where required.

  • 78-78: The new parameter Контекст is being used correctly in the function call.

  • 113-113: The procedure signature for УстановитьФиксированныйПараметр has been updated to include a new optional parameter Контекст. Ensure that all calls to this procedure have been updated to pass the new parameter where required.

  • 159-159: The new parameter Контекст is being used correctly in the function call.

  • 1317-1340: The function signature for МетаданныеИсточникаДанных has been updated to include a new parameter Контекст, and error handling logic has been added. The error handling includes user notifications and logging, which is a good practice for debugging and user experience.

ПредставлениеУровня = УправлениеКонтактнойИнформациейКлиентСервер.СоединитьНаименованиеИТипАдресногоОбъекта(НаименованиеУровня,
ОбъектАдреса[ИмяПоля + "Type"], ЭтоУровеньРегиона);
КонецЕсли;

Copy link

Choose a reason for hiding this comment

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

The assignment to ПредставлениеУровня outside the conditional block seems redundant and could potentially overwrite the value set inside the conditional block. Please verify if this line is necessary or if it should be removed to prevent logical errors.

- ПредставлениеУровня = УправлениеКонтактнойИнформациейКлиентСервер.СоединитьНаименованиеИТипАдресногоОбъекта(НаименованиеУровня, 
-   ОбъектАдреса[ИмяПоля + "Type"], СтрСравнить(ИмяПоля, "area") = 0);

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.

Suggested change

@@ -790,7 +790,7 @@

КонецПроцедуры

// Проверяет, ограничения клиента для работы со сканером.
// Проверяет ограничения клиента для работы со сканером.
Copy link

Choose a reason for hiding this comment

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

The comment block appears to be describing a function that checks client restrictions for scanner operation, but the actual function definition is not present in this hunk. Ensure that the function ДоступнаКомандаСканировать is correctly defined and follows this comment block.

Comment on lines +344 to 351
Асинх Процедура ДалееПослеВыгрузкиСертификата(ВыгруженныеДанные, СертификатКриптографии) Экспорт

ПоказатьСтраницуУточнениеСвойствСертификата(ЭтотОбъект,
СертификатКриптографии,
ВыгруженныеДанные,
ЭлектроннаяПодписьКлиент.СвойстваСертификата(СертификатКриптографии));
Ждать ЭлектроннаяПодписьСлужебныйКлиент.СвойстваСертификата(СертификатКриптографии));

КонецПроцедуры
Copy link

Choose a reason for hiding this comment

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

The change to an asynchronous procedure with the Асинх keyword and the use of Ждать before the method call ЭлектроннаяПодписьСлужебныйКлиент.СвойстваСертификата is consistent with the shift towards asynchronous programming. Ensure that all dependent code and event handlers are updated to handle the asynchronous nature of this procedure, including proper error handling and user feedback mechanisms.

Comment on lines +1969 to +1971
СозданныйЭлемент = ?(Не СтрокаКИ.ЭтоИсторическаяКонтактнаяИнформация,
СозданныеЭлементы.Получить(СтрокаКИ.Вид), Неопределено);

Copy link

Choose a reason for hiding this comment

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

The assignment to СозданныйЭлемент is done twice, which may be redundant. If the condition on line 1969 evaluates to false, the subsequent assignment on line 1971 will overwrite the Неопределено value. Consider removing the second assignment if it's not necessary.

- СозданныйЭлемент = СозданныеЭлементы.Получить(СтрокаКИ.Вид);

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.

Suggested change
СозданныйЭлемент = ?(Не СтрокаКИ.ЭтоИсторическаяКонтактнаяИнформация,
СозданныеЭлементы.Получить(СтрокаКИ.Вид), Неопределено);
СозданныйЭлемент = ?(Не СтрокаКИ.ЭтоИсторическаяКонтактнаяИнформация,
СозданныеЭлементы.Получить(СтрокаКИ.Вид), Неопределено);

Comment on lines +2564 to +2579
Если СравнитьВерсии(СистемнаяИнформация.ВерсияПриложения, "8.3.24.1305") >= 0 Тогда
Если СертификатыУдостоверяющихЦентров = Неопределено Тогда
СертификатыУдостоверяющихЦентров = Новый СертификатыУдостоверяющихЦентровОС();
#Если Сервер Или ТолстыйКлиентОбычноеПриложение Или ВнешнееСоединение Тогда
ЭтоОСWindows = ОбщегоНазначения.ЭтоWindowsСервер();
ЭтоОСLinux = ОбщегоНазначения.ЭтоLinuxСервер();
#Иначе
ЭтоОСWindows = ОбщегоНазначенияКлиент.ЭтоWindowsКлиент();
ЭтоОСLinux = ОбщегоНазначенияКлиент.ЭтоLinuxКлиент();
#КонецЕсли
Если ЭтоОСWindows Тогда
СертификатыУдостоверяющихЦентров = Новый СертификатыУдостоверяющихЦентровWindows();
ИначеЕсли ЭтоОСLinux Тогда
СертификатыУдостоверяющихЦентров = Новый СертификатыУдостоверяющихЦентровLinux();
Иначе
СертификатыУдостоверяющихЦентров = Новый СертификатыУдостоверяющихЦентровОС();
КонецЕсли;
Copy link

Choose a reason for hiding this comment

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

The logic for instantiating different certificate classes based on the OS type appears to be correct. However, consider the following points:

  • Ensure that the СертификатыУдостоверяющихЦентровWindows and СертификатыУдостоверяющихЦентровLinux classes are fully implemented and tested on their respective platforms.
  • Verify that the СертификатыУдостоверяющихЦентровОС class is a suitable default for operating systems other than Windows and Linux.
  • The use of preprocessor directives (#Если, #Иначе, #КонецЕсли) increases code complexity. If this pattern is common in the codebase, it's acceptable, but if not, consider refactoring to a more maintainable approach.
  • The check for the application version (СравнитьВерсии) is tightly coupled with the logic for certificate instantiation. Ensure that this coupling is intentional and documented.

Comment on lines +1689 to +1690
Функция НовыеПараметрыПодписиКриптографии() Экспорт

Copy link

Choose a reason for hiding this comment

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

The function НовыеПараметрыПодписиКриптографии appears to be incomplete, as it only initializes a structure without populating it with any data. Please ensure that the implementation is finished or mark it as a work in progress if it's not ready for production.

Comment on lines +1709 to +1717
// Структура - параметры подписи криптографии:
// * ТипПодписи - ПеречислениеСсылка.ТипыПодписиКриптографии
// * СрокДействияПоследнейМеткиВремени - Дата, Неопределено - заполняется только с помощью менеджера криптографии.
// * ДатаПодписиИзМетки - Дата, Неопределено - самый ранний штамп времени.
// * НеподтвержденнаяДатаПодписи - Дата - неподтвержденная дата подписи.
// - Неопределено - неподтвержденная дата подписи отсутствует в данных подписи.
// * ДатаПоследнейМеткиВремени - Дата - дата последней метки времени.
// * Сертификат - СертификатКриптографии - сертификат подписанта.
// * ОписаниеСертификата - см. ЭлектроннаяПодписьКлиент.СвойстваСертификата.
Copy link

Choose a reason for hiding this comment

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

The variable ДатаПодписиИзМетки is initialized but not used within the visible scope of the hunk. If it's not used later in the function, consider removing it to avoid confusion and maintain clean code.

Comment on lines 686 to 701
Если СертификатДействителенДо < ОбщегоНазначенияКлиент.ДатаСеанса() Тогда
Контекст.ОшибкаНаКлиенте.Вставить("ОписаниеОшибки",
НСтр("ru = 'У выбранного сертификата истек срок действия.
|Выберите другой сертификат.'"));

ДополнительныеСвойстваСертификата = ЭлектроннаяПодписьСлужебныйКлиентСервер.ДополнительныеСвойстваСертификата(СертификатАдрес);
Если ЗначениеЗаполнено(ДополнительныеСвойстваСертификата.ДатаОкончанияЗакрытогоКлюча)
И ДополнительныеСвойстваСертификата.ДатаОкончанияЗакрытогоКлюча < ОбщегоНазначенияКлиент.ДатаСеанса() Тогда
Контекст.ОшибкаНаКлиенте.Вставить("ОписаниеОшибки",
НСтр("ru = 'У выбранного сертификата истек срок действия закрытого ключа.
|Выберите другой сертификат.'"));
Иначе
Контекст.ОшибкаНаКлиенте.Вставить("ОписаниеОшибки",
НСтр("ru = 'У выбранного сертификата истек срок действия.
|Выберите другой сертификат.'"));
КонецЕсли;
ОбработатьОшибку(Контекст.Оповещение, Контекст.ОшибкаНаКлиенте, Контекст.ОшибкаНаСервере);
Возврат;
КонецЕсли;
Copy link

Choose a reason for hiding this comment

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

The updated error handling logic now checks both the certificate and the private key associated with it for expiration. If either is expired, an appropriate error message is displayed to the user. Ensure that the error messages are consistent with the rest of the application and that they are localized correctly for the end-user.

- НСтр("ru = 'У выбранного сертификата истек срок действия закрытого ключа.
+ НСтр("ru = 'Срок действия закрытого ключа выбранного сертификата истек.

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.

Suggested change
Если СертификатДействителенДо < ОбщегоНазначенияКлиент.ДатаСеанса() Тогда
Контекст.ОшибкаНаКлиенте.Вставить("ОписаниеОшибки",
НСтр("ru = 'У выбранного сертификата истек срок действия.
|Выберите другой сертификат.'"));
ДополнительныеСвойстваСертификата = ЭлектроннаяПодписьСлужебныйКлиентСервер.ДополнительныеСвойстваСертификата(СертификатАдрес);
Если ЗначениеЗаполнено(ДополнительныеСвойстваСертификата.ДатаОкончанияЗакрытогоКлюча)
И ДополнительныеСвойстваСертификата.ДатаОкончанияЗакрытогоКлюча < ОбщегоНазначенияКлиент.ДатаСеанса() Тогда
Контекст.ОшибкаНаКлиенте.Вставить("ОписаниеОшибки",
НСтр("ru = 'У выбранного сертификата истек срок действия закрытого ключа.
|Выберите другой сертификат.'"));
Иначе
Контекст.ОшибкаНаКлиенте.Вставить("ОписаниеОшибки",
НСтр("ru = 'У выбранного сертификата истек срок действия.
|Выберите другой сертификат.'"));
КонецЕсли;
ОбработатьОшибку(Контекст.Оповещение, Контекст.ОшибкаНаКлиенте, Контекст.ОшибкаНаСервере);
Возврат;
КонецЕсли;
Если СертификатДействителенДо < ОбщегоНазначенияКлиент.ДатаСеанса() Тогда
ДополнительныеСвойстваСертификата = ЭлектроннаяПодписьСлужебныйКлиентСервер.ДополнительныеСвойстваСертификата(СертификатАдрес);
Если ЗначениеЗаполнено(ДополнительныеСвойстваСертификата.ДатаОкончанияЗакрытогоКлюча)
И ДополнительныеСвойстваСертификата.ДатаОкончанияЗакрытогоКлюча < ОбщегоНазначенияКлиент.ДатаСеанса() Тогда
Контекст.ОшибкаНаКлиенте.Вставить("ОписаниеОшибки",
НСтр("ru = 'Срок действия закрытого ключа выбранного сертификата истек.
|Выберите другой сертификат.'"));
Иначе
Контекст.ОшибкаНаКлиенте.Вставить("ОписаниеОшибки",
НСтр("ru = 'У выбранного сертификата истек срок действия.
|Выберите другой сертификат.'"));
КонецЕсли;
ОбработатьОшибку(Контекст.Оповещение, Контекст.ОшибкаНаКлиенте, Контекст.ОшибкаНаСервере);
Возврат;
КонецЕсли;

Comment on lines 458 to 464
Возврат;
КонецЕсли;
ПодключаемыйМодуль = РезультатПроверкиИнициализации.ПодключаемыйМодуль;
РаботаСФайламиСлужебныйКлиент.ВключитьЛогированиеКомпоненты(ПодключаемыйМодуль);
РаботаСФайламиСлужебныйКлиент.ВключитьЛогированиеКомпоненты(ПодключаемыйМодуль, Истина);

ПараметрыОткрытия.ТекущийШаг = 2;

Copy link

Choose a reason for hiding this comment

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

💡 NOTE
Codebase verification is a beta feature.

The search results indicate that the method ВключитьЛогированиеКомпоненты is called in multiple places within the codebase. Specifically, it is found in:

  • src/cf/DataProcessors/Сканирование/Forms/РезультатСканирования/Ext/Form/Module.bsl with the new boolean parameter Истина.
  • Two occurrences in src/cf/CommonModules/РаботаСФайламиКлиент/Ext/Module.bsl without the boolean parameter.
  • The method definition in src/cf/CommonModules/РаботаСФайламиСлужебныйКлиент/Ext/Module.bsl which shows that the second parameter has a default value (Перезапуск = Ложь).

Given that the method definition includes a default value for the second parameter, it is not strictly necessary to update all calls to include the new parameter, as they will work with the default value if the second argument is omitted. However, it is still a good practice to review these calls to ensure that the intended behavior is achieved, especially if the default behavior has changed or if explicitness is desired for clarity.

  • Calls to ВключитьЛогированиеКомпоненты in src/cf/CommonModules/РаботаСФайламиКлиент/Ext/Module.bsl should be reviewed to determine if the new boolean parameter Истина should be passed explicitly.
Analysis chain

The addition of the Истина parameter to the ВключитьЛогированиеКомпоненты method call at line 461 is noted. Ensure that all other calls to this method across the codebase, if any, are updated accordingly to include this new parameter. This is important to maintain consistency and avoid runtime errors due to method signature mismatches.


The previous script failed because the file type 'bsl' is not recognized by ripgrep. I will adjust the script to search without specifying a file type.

Scripts Executed

The following scripts were executed for the analysis:


Script:

#!/bin/bash
# Search for other occurrences of the method call to ensure they are updated.
rg --type bsl "ВключитьЛогированиеКомпоненты\("

Length of output: 77



Script:

#!/bin/bash
# Search for other occurrences of the method call to ensure they are updated.
rg "ВключитьЛогированиеКомпоненты\("

Length of output: 841

Comment on lines +113 to +114
НовоеЗначение = "";
ПроверенныеПоставляемыеПрофилиСеанса(СвойстваСеанса, НовоеЗначение);
Copy link

Choose a reason for hiding this comment

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

Consider starting the transaction before calling ПроверенныеПоставляемыеПрофилиСеанса to ensure that any changes made by the function are included within the transaction scope.

@nixel2007 nixel2007 closed this Dec 20, 2023
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
1 participant