diff --git a/SSL/src/BusinessProcesses/Задание/Forms/ДействиеВыполнить/Module.bsl b/SSL/src/BusinessProcesses/Задание/Forms/ДействиеВыполнить/Module.bsl index a5e956538..feb942418 100644 --- a/SSL/src/BusinessProcesses/Задание/Forms/ДействиеВыполнить/Module.bsl +++ b/SSL/src/BusinessProcesses/Задание/Forms/ДействиеВыполнить/Module.bsl @@ -1,5 +1,5 @@ /////////////////////////////////////////////////////////////////////////////////////////////////////// -// Copyright (c) 2024, ООО 1С-Софт +// Copyright (c) 2025, ООО 1С-Софт // Все права защищены. Эта программа и сопроводительные материалы предоставляются // в соответствии с условиями лицензии Attribution 4.0 International (CC BY 4.0) // Текст лицензии доступен по ссылке: diff --git a/SSL/src/BusinessProcesses/Задание/Forms/ДействиеПроверить/Module.bsl b/SSL/src/BusinessProcesses/Задание/Forms/ДействиеПроверить/Module.bsl index 26a2a15b9..92cd1ffd4 100644 --- a/SSL/src/BusinessProcesses/Задание/Forms/ДействиеПроверить/Module.bsl +++ b/SSL/src/BusinessProcesses/Задание/Forms/ДействиеПроверить/Module.bsl @@ -1,5 +1,5 @@ /////////////////////////////////////////////////////////////////////////////////////////////////////// -// Copyright (c) 2024, ООО 1С-Софт +// Copyright (c) 2025, ООО 1С-Софт // Все права защищены. Эта программа и сопроводительные материалы предоставляются // в соответствии с условиями лицензии Attribution 4.0 International (CC BY 4.0) // Текст лицензии доступен по ссылке: diff --git a/SSL/src/BusinessProcesses/Задание/Forms/ФормаБизнесПроцесса/Module.bsl b/SSL/src/BusinessProcesses/Задание/Forms/ФормаБизнесПроцесса/Module.bsl index 58a821464..71286bc6b 100644 --- a/SSL/src/BusinessProcesses/Задание/Forms/ФормаБизнесПроцесса/Module.bsl +++ b/SSL/src/BusinessProcesses/Задание/Forms/ФормаБизнесПроцесса/Module.bsl @@ -1,5 +1,5 @@ /////////////////////////////////////////////////////////////////////////////////////////////////////// -// Copyright (c) 2024, ООО 1С-Софт +// Copyright (c) 2025, ООО 1С-Софт // Все права защищены. Эта программа и сопроводительные материалы предоставляются // в соответствии с условиями лицензии Attribution 4.0 International (CC BY 4.0) // Текст лицензии доступен по ссылке: diff --git a/SSL/src/BusinessProcesses/Задание/Forms/ФормаСписка/Module.bsl b/SSL/src/BusinessProcesses/Задание/Forms/ФормаСписка/Module.bsl index a41a5ddb0..183f7b8a8 100644 --- a/SSL/src/BusinessProcesses/Задание/Forms/ФормаСписка/Module.bsl +++ b/SSL/src/BusinessProcesses/Задание/Forms/ФормаСписка/Module.bsl @@ -1,5 +1,5 @@ /////////////////////////////////////////////////////////////////////////////////////////////////////// -// Copyright (c) 2024, ООО 1С-Софт +// Copyright (c) 2025, ООО 1С-Софт // Все права защищены. Эта программа и сопроводительные материалы предоставляются // в соответствии с условиями лицензии Attribution 4.0 International (CC BY 4.0) // Текст лицензии доступен по ссылке: diff --git a/SSL/src/BusinessProcesses/Задание/ManagerModule.bsl b/SSL/src/BusinessProcesses/Задание/ManagerModule.bsl index 5e2a18e37..bd0e2f978 100644 --- a/SSL/src/BusinessProcesses/Задание/ManagerModule.bsl +++ b/SSL/src/BusinessProcesses/Задание/ManagerModule.bsl @@ -1,5 +1,5 @@ /////////////////////////////////////////////////////////////////////////////////////////////////////// -// Copyright (c) 2024, ООО 1С-Софт +// Copyright (c) 2025, ООО 1С-Софт // Все права защищены. Эта программа и сопроводительные материалы предоставляются // в соответствии с условиями лицензии Attribution 4.0 International (CC BY 4.0) // Текст лицензии доступен по ссылке: diff --git a/SSL/src/BusinessProcesses/Задание/ObjectModule.bsl b/SSL/src/BusinessProcesses/Задание/ObjectModule.bsl index c415754dc..9df3ed6c6 100644 --- a/SSL/src/BusinessProcesses/Задание/ObjectModule.bsl +++ b/SSL/src/BusinessProcesses/Задание/ObjectModule.bsl @@ -1,5 +1,5 @@ /////////////////////////////////////////////////////////////////////////////////////////////////////// -// Copyright (c) 2024, ООО 1С-Софт +// Copyright (c) 2025, ООО 1С-Софт // Все права защищены. Эта программа и сопроводительные материалы предоставляются // в соответствии с условиями лицензии Attribution 4.0 International (CC BY 4.0) // Текст лицензии доступен по ссылке: diff --git a/SSL/src/Catalogs/Валюты/Forms/ПараметрыПрописиВалюты_en/Module.bsl b/SSL/src/Catalogs/Валюты/Forms/ПараметрыПрописиВалюты_en/Module.bsl index 9c30f8bb5..1dd1e8774 100644 --- a/SSL/src/Catalogs/Валюты/Forms/ПараметрыПрописиВалюты_en/Module.bsl +++ b/SSL/src/Catalogs/Валюты/Forms/ПараметрыПрописиВалюты_en/Module.bsl @@ -1,5 +1,5 @@ /////////////////////////////////////////////////////////////////////////////////////////////////////// -// Copyright (c) 2024, ООО 1С-Софт +// Copyright (c) 2025, ООО 1С-Софт // Все права защищены. Эта программа и сопроводительные материалы предоставляются // в соответствии с условиями лицензии Attribution 4.0 International (CC BY 4.0) // Текст лицензии доступен по ссылке: diff --git a/SSL/src/Catalogs/Валюты/Forms/ПараметрыПрописиВалютыНаДругихЯзыках/Module.bsl b/SSL/src/Catalogs/Валюты/Forms/ПараметрыПрописиВалютыНаДругихЯзыках/Module.bsl index 599d5f3b5..81738ef6c 100644 --- a/SSL/src/Catalogs/Валюты/Forms/ПараметрыПрописиВалютыНаДругихЯзыках/Module.bsl +++ b/SSL/src/Catalogs/Валюты/Forms/ПараметрыПрописиВалютыНаДругихЯзыках/Module.bsl @@ -1,5 +1,5 @@ /////////////////////////////////////////////////////////////////////////////////////////////////////// -// Copyright (c) 2024, ООО 1С-Софт +// Copyright (c) 2025, ООО 1С-Софт // Все права защищены. Эта программа и сопроводительные материалы предоставляются // в соответствии с условиями лицензии Attribution 4.0 International (CC BY 4.0) // Текст лицензии доступен по ссылке: diff --git a/SSL/src/Catalogs/Валюты/Forms/ФормаСписка/Module.bsl b/SSL/src/Catalogs/Валюты/Forms/ФормаСписка/Module.bsl index 47f7f7bbb..97cc799c6 100644 --- a/SSL/src/Catalogs/Валюты/Forms/ФормаСписка/Module.bsl +++ b/SSL/src/Catalogs/Валюты/Forms/ФормаСписка/Module.bsl @@ -1,5 +1,5 @@ /////////////////////////////////////////////////////////////////////////////////////////////////////// -// Copyright (c) 2024, ООО 1С-Софт +// Copyright (c) 2025, ООО 1С-Софт // Все права защищены. Эта программа и сопроводительные материалы предоставляются // в соответствии с условиями лицензии Attribution 4.0 International (CC BY 4.0) // Текст лицензии доступен по ссылке: diff --git a/SSL/src/Catalogs/Валюты/Forms/ФормаЭлемента/Module.bsl b/SSL/src/Catalogs/Валюты/Forms/ФормаЭлемента/Module.bsl index 654de5606..4d90a7490 100644 --- a/SSL/src/Catalogs/Валюты/Forms/ФормаЭлемента/Module.bsl +++ b/SSL/src/Catalogs/Валюты/Forms/ФормаЭлемента/Module.bsl @@ -1,5 +1,5 @@ /////////////////////////////////////////////////////////////////////////////////////////////////////// -// Copyright (c) 2024, ООО 1С-Софт +// Copyright (c) 2025, ООО 1С-Софт // Все права защищены. Эта программа и сопроводительные материалы предоставляются // в соответствии с условиями лицензии Attribution 4.0 International (CC BY 4.0) // Текст лицензии доступен по ссылке: diff --git a/SSL/src/Catalogs/Валюты/ManagerModule.bsl b/SSL/src/Catalogs/Валюты/ManagerModule.bsl index 00d6e2ffc..3d93afca3 100644 --- a/SSL/src/Catalogs/Валюты/ManagerModule.bsl +++ b/SSL/src/Catalogs/Валюты/ManagerModule.bsl @@ -1,5 +1,5 @@ /////////////////////////////////////////////////////////////////////////////////////////////////////// -// Copyright (c) 2024, ООО 1С-Софт +// Copyright (c) 2025, ООО 1С-Софт // Все права защищены. Эта программа и сопроводительные материалы предоставляются // в соответствии с условиями лицензии Attribution 4.0 International (CC BY 4.0) // Текст лицензии доступен по ссылке: diff --git a/SSL/src/Catalogs/Валюты/ObjectModule.bsl b/SSL/src/Catalogs/Валюты/ObjectModule.bsl index abd299ba2..86614f769 100644 --- a/SSL/src/Catalogs/Валюты/ObjectModule.bsl +++ b/SSL/src/Catalogs/Валюты/ObjectModule.bsl @@ -1,5 +1,5 @@ /////////////////////////////////////////////////////////////////////////////////////////////////////// -// Copyright (c) 2024, ООО 1С-Софт +// Copyright (c) 2025, ООО 1С-Софт // Все права защищены. Эта программа и сопроводительные материалы предоставляются // в соответствии с условиями лицензии Attribution 4.0 International (CC BY 4.0) // Текст лицензии доступен по ссылке: diff --git a/SSL/src/Catalogs/ВариантыОтветовАнкет/Forms/ФормаСписка/Module.bsl b/SSL/src/Catalogs/ВариантыОтветовАнкет/Forms/ФормаСписка/Module.bsl index 7736c40aa..ab82a1eed 100644 --- a/SSL/src/Catalogs/ВариантыОтветовАнкет/Forms/ФормаСписка/Module.bsl +++ b/SSL/src/Catalogs/ВариантыОтветовАнкет/Forms/ФормаСписка/Module.bsl @@ -1,5 +1,5 @@ /////////////////////////////////////////////////////////////////////////////////////////////////////// -// Copyright (c) 2024, ООО 1С-Софт +// Copyright (c) 2025, ООО 1С-Софт // Все права защищены. Эта программа и сопроводительные материалы предоставляются // в соответствии с условиями лицензии Attribution 4.0 International (CC BY 4.0) // Текст лицензии доступен по ссылке: diff --git a/SSL/src/Catalogs/ВариантыОтветовАнкет/Forms/ФормаЭлемента/Module.bsl b/SSL/src/Catalogs/ВариантыОтветовАнкет/Forms/ФормаЭлемента/Module.bsl index 51c294fe4..a70f32925 100644 --- a/SSL/src/Catalogs/ВариантыОтветовАнкет/Forms/ФормаЭлемента/Module.bsl +++ b/SSL/src/Catalogs/ВариантыОтветовАнкет/Forms/ФормаЭлемента/Module.bsl @@ -1,5 +1,5 @@ /////////////////////////////////////////////////////////////////////////////////////////////////////// -// Copyright (c) 2024, ООО 1С-Софт +// Copyright (c) 2025, ООО 1С-Софт // Все права защищены. Эта программа и сопроводительные материалы предоставляются // в соответствии с условиями лицензии Attribution 4.0 International (CC BY 4.0) // Текст лицензии доступен по ссылке: diff --git a/SSL/src/Catalogs/ВариантыОтветовАнкет/ManagerModule.bsl b/SSL/src/Catalogs/ВариантыОтветовАнкет/ManagerModule.bsl index 0a5e6e03e..721529520 100644 --- a/SSL/src/Catalogs/ВариантыОтветовАнкет/ManagerModule.bsl +++ b/SSL/src/Catalogs/ВариантыОтветовАнкет/ManagerModule.bsl @@ -1,5 +1,5 @@ /////////////////////////////////////////////////////////////////////////////////////////////////////// -// Copyright (c) 2024, ООО 1С-Софт +// Copyright (c) 2025, ООО 1С-Софт // Все права защищены. Эта программа и сопроводительные материалы предоставляются // в соответствии с условиями лицензии Attribution 4.0 International (CC BY 4.0) // Текст лицензии доступен по ссылке: diff --git a/SSL/src/Catalogs/ВариантыОтчетов/Commands/Изменить/CommandModule.bsl b/SSL/src/Catalogs/ВариантыОтчетов/Commands/Изменить/CommandModule.bsl index aaab79e94..5be75cd11 100644 --- a/SSL/src/Catalogs/ВариантыОтчетов/Commands/Изменить/CommandModule.bsl +++ b/SSL/src/Catalogs/ВариантыОтчетов/Commands/Изменить/CommandModule.bsl @@ -1,5 +1,5 @@ /////////////////////////////////////////////////////////////////////////////////////////////////////// -// Copyright (c) 2024, ООО 1С-Софт +// Copyright (c) 2025, ООО 1С-Софт // Все права защищены. Эта программа и сопроводительные материалы предоставляются // в соответствии с условиями лицензии Attribution 4.0 International (CC BY 4.0) // Текст лицензии доступен по ссылке: diff --git a/SSL/src/Catalogs/ВариантыОтчетов/Commands/Открыть/CommandModule.bsl b/SSL/src/Catalogs/ВариантыОтчетов/Commands/Открыть/CommandModule.bsl index 3559f368c..708c7638a 100644 --- a/SSL/src/Catalogs/ВариантыОтчетов/Commands/Открыть/CommandModule.bsl +++ b/SSL/src/Catalogs/ВариантыОтчетов/Commands/Открыть/CommandModule.bsl @@ -1,5 +1,5 @@ /////////////////////////////////////////////////////////////////////////////////////////////////////// -// Copyright (c) 2024, ООО 1С-Софт +// Copyright (c) 2025, ООО 1С-Софт // Все права защищены. Эта программа и сопроводительные материалы предоставляются // в соответствии с условиями лицензии Attribution 4.0 International (CC BY 4.0) // Текст лицензии доступен по ссылке: diff --git a/SSL/src/Catalogs/ВариантыОтчетов/Commands/РазместитьВРазделах/CommandModule.bsl b/SSL/src/Catalogs/ВариантыОтчетов/Commands/РазместитьВРазделах/CommandModule.bsl index a0fcfcf90..f9d2e9b43 100644 --- a/SSL/src/Catalogs/ВариантыОтчетов/Commands/РазместитьВРазделах/CommandModule.bsl +++ b/SSL/src/Catalogs/ВариантыОтчетов/Commands/РазместитьВРазделах/CommandModule.bsl @@ -1,5 +1,5 @@ /////////////////////////////////////////////////////////////////////////////////////////////////////// -// Copyright (c) 2024, ООО 1С-Софт +// Copyright (c) 2025, ООО 1С-Софт // Все права защищены. Эта программа и сопроводительные материалы предоставляются // в соответствии с условиями лицензии Attribution 4.0 International (CC BY 4.0) // Текст лицензии доступен по ссылке: diff --git a/SSL/src/Catalogs/ВариантыОтчетов/Commands/СброситьНастройкиПользователей/CommandModule.bsl b/SSL/src/Catalogs/ВариантыОтчетов/Commands/СброситьНастройкиПользователей/CommandModule.bsl index fabeeed51..e43e366bc 100644 --- a/SSL/src/Catalogs/ВариантыОтчетов/Commands/СброситьНастройкиПользователей/CommandModule.bsl +++ b/SSL/src/Catalogs/ВариантыОтчетов/Commands/СброситьНастройкиПользователей/CommandModule.bsl @@ -1,5 +1,5 @@ /////////////////////////////////////////////////////////////////////////////////////////////////////// -// Copyright (c) 2024, ООО 1С-Софт +// Copyright (c) 2025, ООО 1С-Софт // Все права защищены. Эта программа и сопроводительные материалы предоставляются // в соответствии с условиями лицензии Attribution 4.0 International (CC BY 4.0) // Текст лицензии доступен по ссылке: diff --git a/SSL/src/Catalogs/ВариантыОтчетов/Commands/СброситьНастройкиРазмещения/CommandModule.bsl b/SSL/src/Catalogs/ВариантыОтчетов/Commands/СброситьНастройкиРазмещения/CommandModule.bsl index 98de7da32..ec634e4c7 100644 --- a/SSL/src/Catalogs/ВариантыОтчетов/Commands/СброситьНастройкиРазмещения/CommandModule.bsl +++ b/SSL/src/Catalogs/ВариантыОтчетов/Commands/СброситьНастройкиРазмещения/CommandModule.bsl @@ -1,5 +1,5 @@ /////////////////////////////////////////////////////////////////////////////////////////////////////// -// Copyright (c) 2024, ООО 1С-Софт +// Copyright (c) 2025, ООО 1С-Софт // Все права защищены. Эта программа и сопроводительные материалы предоставляются // в соответствии с условиями лицензии Attribution 4.0 International (CC BY 4.0) // Текст лицензии доступен по ссылке: diff --git a/SSL/src/Catalogs/ВариантыОтчетов/Forms/РазмещениеВРазделах/Module.bsl b/SSL/src/Catalogs/ВариантыОтчетов/Forms/РазмещениеВРазделах/Module.bsl index 88692ee5e..241549b5b 100644 --- a/SSL/src/Catalogs/ВариантыОтчетов/Forms/РазмещениеВРазделах/Module.bsl +++ b/SSL/src/Catalogs/ВариантыОтчетов/Forms/РазмещениеВРазделах/Module.bsl @@ -1,5 +1,5 @@ /////////////////////////////////////////////////////////////////////////////////////////////////////// -// Copyright (c) 2024, ООО 1С-Софт +// Copyright (c) 2025, ООО 1С-Софт // Все права защищены. Эта программа и сопроводительные материалы предоставляются // в соответствии с условиями лицензии Attribution 4.0 International (CC BY 4.0) // Текст лицензии доступен по ссылке: diff --git a/SSL/src/Catalogs/ВариантыОтчетов/Forms/СбросНастроекРазмещения/Module.bsl b/SSL/src/Catalogs/ВариантыОтчетов/Forms/СбросНастроекРазмещения/Module.bsl index 95d4fc2a6..1788c41af 100644 --- a/SSL/src/Catalogs/ВариантыОтчетов/Forms/СбросНастроекРазмещения/Module.bsl +++ b/SSL/src/Catalogs/ВариантыОтчетов/Forms/СбросНастроекРазмещения/Module.bsl @@ -1,5 +1,5 @@ /////////////////////////////////////////////////////////////////////////////////////////////////////// -// Copyright (c) 2024, ООО 1С-Софт +// Copyright (c) 2025, ООО 1С-Софт // Все права защищены. Эта программа и сопроводительные материалы предоставляются // в соответствии с условиями лицензии Attribution 4.0 International (CC BY 4.0) // Текст лицензии доступен по ссылке: diff --git a/SSL/src/Catalogs/ВариантыОтчетов/Forms/СбросПользовательскихНастроек/Module.bsl b/SSL/src/Catalogs/ВариантыОтчетов/Forms/СбросПользовательскихНастроек/Module.bsl index e27a06d84..607586ece 100644 --- a/SSL/src/Catalogs/ВариантыОтчетов/Forms/СбросПользовательскихНастроек/Module.bsl +++ b/SSL/src/Catalogs/ВариантыОтчетов/Forms/СбросПользовательскихНастроек/Module.bsl @@ -1,5 +1,5 @@ /////////////////////////////////////////////////////////////////////////////////////////////////////// -// Copyright (c) 2024, ООО 1С-Софт +// Copyright (c) 2025, ООО 1С-Софт // Все права защищены. Эта программа и сопроводительные материалы предоставляются // в соответствии с условиями лицензии Attribution 4.0 International (CC BY 4.0) // Текст лицензии доступен по ссылке: diff --git a/SSL/src/Catalogs/ВариантыОтчетов/Forms/ФормаСписка/Module.bsl b/SSL/src/Catalogs/ВариантыОтчетов/Forms/ФормаСписка/Module.bsl index c45fb3ef5..ef39f830c 100644 --- a/SSL/src/Catalogs/ВариантыОтчетов/Forms/ФормаСписка/Module.bsl +++ b/SSL/src/Catalogs/ВариантыОтчетов/Forms/ФормаСписка/Module.bsl @@ -1,5 +1,5 @@ /////////////////////////////////////////////////////////////////////////////////////////////////////// -// Copyright (c) 2024, ООО 1С-Софт +// Copyright (c) 2025, ООО 1С-Софт // Все права защищены. Эта программа и сопроводительные материалы предоставляются // в соответствии с условиями лицензии Attribution 4.0 International (CC BY 4.0) // Текст лицензии доступен по ссылке: diff --git a/SSL/src/Catalogs/ВариантыОтчетов/Forms/ФормаЭлемента/Module.bsl b/SSL/src/Catalogs/ВариантыОтчетов/Forms/ФормаЭлемента/Module.bsl index e54bafb2c..6917e7a4b 100644 --- a/SSL/src/Catalogs/ВариантыОтчетов/Forms/ФормаЭлемента/Module.bsl +++ b/SSL/src/Catalogs/ВариантыОтчетов/Forms/ФормаЭлемента/Module.bsl @@ -1,5 +1,5 @@ /////////////////////////////////////////////////////////////////////////////////////////////////////// -// Copyright (c) 2024, ООО 1С-Софт +// Copyright (c) 2025, ООО 1С-Софт // Все права защищены. Эта программа и сопроводительные материалы предоставляются // в соответствии с условиями лицензии Attribution 4.0 International (CC BY 4.0) // Текст лицензии доступен по ссылке: diff --git a/SSL/src/Catalogs/ВариантыОтчетов/ManagerModule.bsl b/SSL/src/Catalogs/ВариантыОтчетов/ManagerModule.bsl index 519dc66e9..b3d7c78a3 100644 --- a/SSL/src/Catalogs/ВариантыОтчетов/ManagerModule.bsl +++ b/SSL/src/Catalogs/ВариантыОтчетов/ManagerModule.bsl @@ -1,5 +1,5 @@ /////////////////////////////////////////////////////////////////////////////////////////////////////// -// Copyright (c) 2024, ООО 1С-Софт +// Copyright (c) 2025, ООО 1С-Софт // Все права защищены. Эта программа и сопроводительные материалы предоставляются // в соответствии с условиями лицензии Attribution 4.0 International (CC BY 4.0) // Текст лицензии доступен по ссылке: diff --git a/SSL/src/Catalogs/ВариантыОтчетов/ObjectModule.bsl b/SSL/src/Catalogs/ВариантыОтчетов/ObjectModule.bsl index f5ede178b..3bc1d31a1 100644 --- a/SSL/src/Catalogs/ВариантыОтчетов/ObjectModule.bsl +++ b/SSL/src/Catalogs/ВариантыОтчетов/ObjectModule.bsl @@ -1,5 +1,5 @@ /////////////////////////////////////////////////////////////////////////////////////////////////////// -// Copyright (c) 2024, ООО 1С-Софт +// Copyright (c) 2025, ООО 1С-Софт // Все права защищены. Эта программа и сопроводительные материалы предоставляются // в соответствии с условиями лицензии Attribution 4.0 International (CC BY 4.0) // Текст лицензии доступен по ссылке: diff --git a/SSL/src/Catalogs/ВерсииРасширений/Forms/ФормаСписка/Module.bsl b/SSL/src/Catalogs/ВерсииРасширений/Forms/ФормаСписка/Module.bsl index 55fdb4ad5..a4420ec05 100644 --- a/SSL/src/Catalogs/ВерсииРасширений/Forms/ФормаСписка/Module.bsl +++ b/SSL/src/Catalogs/ВерсииРасширений/Forms/ФормаСписка/Module.bsl @@ -1,5 +1,5 @@ /////////////////////////////////////////////////////////////////////////////////////////////////////// -// Copyright (c) 2024, ООО 1С-Софт +// Copyright (c) 2025, ООО 1С-Софт // Все права защищены. Эта программа и сопроводительные материалы предоставляются // в соответствии с условиями лицензии Attribution 4.0 International (CC BY 4.0) // Текст лицензии доступен по ссылке: diff --git a/SSL/src/Catalogs/ВерсииРасширений/Forms/ФормаЭлемента/Module.bsl b/SSL/src/Catalogs/ВерсииРасширений/Forms/ФормаЭлемента/Module.bsl index 55fdb4ad5..a4420ec05 100644 --- a/SSL/src/Catalogs/ВерсииРасширений/Forms/ФормаЭлемента/Module.bsl +++ b/SSL/src/Catalogs/ВерсииРасширений/Forms/ФормаЭлемента/Module.bsl @@ -1,5 +1,5 @@ /////////////////////////////////////////////////////////////////////////////////////////////////////// -// Copyright (c) 2024, ООО 1С-Софт +// Copyright (c) 2025, ООО 1С-Софт // Все права защищены. Эта программа и сопроводительные материалы предоставляются // в соответствии с условиями лицензии Attribution 4.0 International (CC BY 4.0) // Текст лицензии доступен по ссылке: diff --git a/SSL/src/Catalogs/ВерсииРасширений/ManagerModule.bsl b/SSL/src/Catalogs/ВерсииРасширений/ManagerModule.bsl index ead4817d6..cd6923459 100644 --- a/SSL/src/Catalogs/ВерсииРасширений/ManagerModule.bsl +++ b/SSL/src/Catalogs/ВерсииРасширений/ManagerModule.bsl @@ -1,5 +1,5 @@ /////////////////////////////////////////////////////////////////////////////////////////////////////// -// Copyright (c) 2024, ООО 1С-Софт +// Copyright (c) 2025, ООО 1С-Софт // Все права защищены. Эта программа и сопроводительные материалы предоставляются // в соответствии с условиями лицензии Attribution 4.0 International (CC BY 4.0) // Текст лицензии доступен по ссылке: diff --git a/SSL/src/Catalogs/ВерсииРасширений/ObjectModule.bsl b/SSL/src/Catalogs/ВерсииРасширений/ObjectModule.bsl index b6edacfb4..f319063cc 100644 --- a/SSL/src/Catalogs/ВерсииРасширений/ObjectModule.bsl +++ b/SSL/src/Catalogs/ВерсииРасширений/ObjectModule.bsl @@ -1,5 +1,5 @@ /////////////////////////////////////////////////////////////////////////////////////////////////////// -// Copyright (c) 2024, ООО 1С-Софт +// Copyright (c) 2025, ООО 1С-Софт // Все права защищены. Эта программа и сопроводительные материалы предоставляются // в соответствии с условиями лицензии Attribution 4.0 International (CC BY 4.0) // Текст лицензии доступен по ссылке: diff --git a/SSL/src/Catalogs/ВерсииФайлов/Forms/ВерсииФайла/Form.form b/SSL/src/Catalogs/ВерсииФайлов/Forms/ВерсииФайла/Form.form index d40e8f3d8..27f553ef9 100644 --- a/SSL/src/Catalogs/ВерсииФайлов/Forms/ВерсииФайла/Form.form +++ b/SSL/src/Catalogs/ВерсииФайлов/Forms/ВерсииФайла/Form.form @@ -1,5 +1,5 @@ - + Список 2 @@ -19,6 +19,66 @@ false None Copy + + СписокНомерКартинкиЭтоАрхив + 127 + + <key>ru</key> + <value>В архиве</value> + + true + true + + true + + + Список.НомерКартинкиЭтоАрхив + + None + + ru + Файл перенесен в архив + + + СписокНомерКартинкиЭтоАрхивРасширеннаяПодсказка + 129 + Label + true + true + + Left + + + + СписокНомерКартинкиЭтоАрхивКонтекстноеМеню + 128 + true + + PictureField + true + Enter + true + + CommonPicture.ФайловыйАрхив + + Left + true + + 2 + true + true + true + true + + CommonPicture.ФайловыйАрхив + + + + 1 + + AsFileRef + + ГруппаВертикально 114 @@ -1198,6 +1258,9 @@ Список.НомерВерсии + + Список.НомерКартинкиЭтоАрхив + Список.ПолноеНаименование @@ -1243,7 +1306,8 @@ ИНАЧЕ ЛОЖЬ КОНЕЦ КАК ЭтоТекущая, ВерсииФайловПереопределяемый.Расширение КАК Расширение, - ВерсииФайловПереопределяемый.НомерВерсии КАК НомерВерсии + ВерсииФайловПереопределяемый.НомерВерсии КАК НомерВерсии, + 0 КАК НомерКартинкиЭтоАрхив ИЗ Справочник.ВерсииФайлов КАК ВерсииФайловПереопределяемый ГДЕ @@ -1254,6 +1318,170 @@ true true true + + ПутьКФайлу + ПутьКФайлу + + + Наименование + Наименование + + + ДатаМодификацииУниверсальная + ДатаМодификацииУниверсальная + + + Том + Том + + + ДатаМодификацииФайла + ДатаМодификацииФайла + + + СтатусИзвлеченияТекста + СтатусИзвлеченияТекста + + + ФайлХранилище + ФайлХранилище + + + ТекстХранилище + ТекстХранилище + + + Размер + Размер + + + ТипХраненияФайла + ТипХраненияФайла + + + ДатаПереносаВАрхив + ДатаПереносаВАрхив + + + ПометкаУдаления + ПометкаУдаления + + + УсловноПеренесенВАрхив + УсловноПеренесенВАрхив + + + УдалитьЭлектронныеПодписи + УдалитьЭлектронныеПодписи + + + Предопределенный + Предопределенный + + + Ссылка + Ссылка + + + ИмяПредопределенныхДанных + ИмяПредопределенныхДанных + + + Код + Код + + + Комментарий + Комментарий + + + Автор + Автор + + + ДатаСоздания + ДатаСоздания + + + ПолноеНаименование + ПолноеНаименование + + <localValue> + <content> + <key>ru</key> + <value>Полное наименование</value> + </content> + </localValue> + + + + РодительскаяВерсия + РодительскаяВерсия + + + ИндексКартинки + ИндексКартинки + + <localValue> + <content> + <key>ru</key> + <value>Индекс картинки</value> + </content> + </localValue> + + + + Владелец + Владелец + + + ЭтоТекущая + ЭтоТекущая + + <localValue> + <content> + <key>ru</key> + <value>Это текущая</value> + </content> + </localValue> + + + + НомерВерсии + НомерВерсии + + + Расширение + Расширение + + + НомерКартинкиЭтоАрхив + НомерКартинкиЭтоАрхив + + <localValue> + <content> + <key>ru</key> + <value>Номер картинки это архив</value> + </content> + </localValue> + + + + Владелец + + <localValue> + <content> + <key>ru</key> + <value>Владелец</value> + </content> + </localValue> + + + CatalogRef.Файлы + + + true + diff --git a/SSL/src/Catalogs/ВерсииФайлов/Forms/ВерсииФайла/Module.bsl b/SSL/src/Catalogs/ВерсииФайлов/Forms/ВерсииФайла/Module.bsl index 3d3195688..14c69aa4e 100644 --- a/SSL/src/Catalogs/ВерсииФайлов/Forms/ВерсииФайла/Module.bsl +++ b/SSL/src/Catalogs/ВерсииФайлов/Forms/ВерсииФайла/Module.bsl @@ -1,5 +1,5 @@ /////////////////////////////////////////////////////////////////////////////////////////////////////// -// Copyright (c) 2024, ООО 1С-Софт +// Copyright (c) 2025, ООО 1С-Софт // Все права защищены. Эта программа и сопроводительные материалы предоставляются // в соответствии с условиями лицензии Attribution 4.0 International (CC BY 4.0) // Текст лицензии доступен по ссылке: @@ -39,7 +39,9 @@ Элементы.СписокКомментарий.Видимость = Ложь; КонецЕсли; - + + РаботаСФайловымАрхивомСервер.ВидимостьПоляСписокНомерКартинкиЭтоАрхив(Элементы.СписокНомерКартинкиЭтоАрхив); + КонецПроцедуры #КонецОбласти @@ -78,7 +80,8 @@ Если ИмяСобытия = "Запись_Файл" И (Параметр.Событие = "ЗаконченоРедактирование" - Или Параметр.Событие = "ВерсияСохранена") Тогда + Или Параметр.Событие = "ВерсияСохранена" + Или Параметр.Событие = "ФайлыИзмененыПриРаботеСАрхивом") Тогда Элементы.Список.Обновить(); КонецЕсли; @@ -89,13 +92,8 @@ Процедура СписокВыбор(Элемент, ВыбраннаяСтрока, Поле, СтандартнаяОбработка) СтандартнаяОбработка = Ложь; - ТекущиеДанные = Элементы.Список.ТекущиеДанные; - Если ТекущиеДанные = Неопределено Тогда - Возврат; - КонецЕсли; - ДанныеФайла = РаботаСФайламиСлужебныйВызовСервера.ДанныеФайлаДляОткрытия(ТекущиеДанные.Владелец, ТекущиеДанные.Ссылка, УникальныйИдентификатор); - РаботаСФайламиСлужебныйКлиент.ОткрытьВерсиюФайла(Неопределено, ДанныеФайла, УникальныйИдентификатор); + ОткрытьВерсиюФайла(); КонецПроцедуры @@ -182,13 +180,7 @@ &НаКлиенте Процедура ОткрытьВерсию(Команда) - ТекущиеДанные = Элементы.Список.ТекущиеДанные; - Если ТекущиеДанные = Неопределено Тогда - Возврат; - КонецЕсли; - - ДанныеФайла = РаботаСФайламиСлужебныйВызовСервера.ДанныеФайлаДляОткрытия(ТекущиеДанные.Владелец, ТекущиеДанные.Ссылка ,УникальныйИдентификатор); - РаботаСФайламиСлужебныйКлиент.ОткрытьВерсиюФайла(Неопределено, ДанныеФайла, УникальныйИдентификатор); + ОткрытьВерсиюФайла(); КонецПроцедуры @@ -200,8 +192,16 @@ Возврат; КонецЕсли; - ДанныеФайла = РаботаСФайламиСлужебныйВызовСервера.ДанныеФайлаДляСохранения(ТекущиеДанные.Владелец, ТекущиеДанные.Ссылка , УникальныйИдентификатор); - РаботаСФайламиСлужебныйКлиент.СохранитьКак(Неопределено, ДанныеФайла, УникальныйИдентификатор); + ПараметрыПолученияФайла = РаботаСФайламиКлиент.ПараметрыАсинхронногоПолученияФайла("СохранитьКак", "РаботаСФайламиСлужебный.ДанныеФайлаДляСохраненияАсинхронный"); + ПараметрыПолученияФайла.ПрисоединенныйФайл = ТекущиеДанные.Владелец; + ПараметрыПолученияФайла.ВерсияСсылка = ТекущиеДанные.Ссылка; + ПараметрыПолученияФайла.ФормаВладелец = ЭтотОбъект; + ПараметрыПолученияФайла.ПроверятьНаличиеФайлаВАрхиве = Ложь; + ПараметрыПолученияФайла.ФайлВАрхиве = ТекущиеДанные.НомерКартинкиЭтоАрхив = 0; + + ПараметрыПолученияФайла.ПараметрыДействия.УникальныйИдентификатор = УникальныйИдентификатор; + + РаботаСФайламиКлиент.СохранитьФайлКак(ПараметрыПолученияФайла); КонецПроцедуры @@ -325,7 +325,12 @@ | ИНАЧЕ ЛОЖЬ | КОНЕЦ КАК ЭтоТекущая, | ВерсииФайлов.Расширение КАК Расширение, - | ВерсииФайлов.НомерВерсии КАК НомерВерсии + | ВерсииФайлов.НомерВерсии КАК НомерВерсии, + | ВЫБОР + | КОГДА ВерсииФайлов.ДатаПереносаВАрхив = ДАТАВРЕМЯ(1, 1, 1) + | ТОГДА -1 + | ИНАЧЕ 0 + | КОНЕЦ КАК НомерКартинкиЭтоАрхив |ИЗ | &ИмяСправочника КАК ВерсииФайлов |ГДЕ @@ -341,4 +346,25 @@ КонецПроцедуры +&НаКлиенте +Процедура ОткрытьВерсиюФайла() + + ТекущиеДанные = Элементы.Список.ТекущиеДанные; + Если ТекущиеДанные = Неопределено Тогда + Возврат; + КонецЕсли; + + ПараметрыПолученияФайла = РаботаСФайламиКлиент.ПараметрыАсинхронногоПолученияФайла("ОткрытьВерсиюФайла"); + ПараметрыПолученияФайла.ПрисоединенныйФайл = ТекущиеДанные.Владелец; + ПараметрыПолученияФайла.ВерсияСсылка = ТекущиеДанные.Ссылка; + ПараметрыПолученияФайла.ФормаВладелец = ЭтотОбъект; + ПараметрыПолученияФайла.ПроверятьНаличиеФайлаВАрхиве = Ложь; + ПараметрыПолученияФайла.ФайлВАрхиве = ТекущиеДанные.НомерКартинкиЭтоАрхив = 0; + + ПараметрыПолученияФайла.ПараметрыДействия.УникальныйИдентификатор = УникальныйИдентификатор; + + РаботаСФайламиКлиент.ОткрытьФайл(ПараметрыПолученияФайла); + +КонецПроцедуры + #КонецОбласти diff --git a/SSL/src/Catalogs/ВерсииФайлов/Forms/ФормаВыбора/Module.bsl b/SSL/src/Catalogs/ВерсииФайлов/Forms/ФормаВыбора/Module.bsl index 84d16931b..df998c720 100644 --- a/SSL/src/Catalogs/ВерсииФайлов/Forms/ФормаВыбора/Module.bsl +++ b/SSL/src/Catalogs/ВерсииФайлов/Forms/ФормаВыбора/Module.bsl @@ -1,5 +1,5 @@ /////////////////////////////////////////////////////////////////////////////////////////////////////// -// Copyright (c) 2024, ООО 1С-Софт +// Copyright (c) 2025, ООО 1С-Софт // Все права защищены. Эта программа и сопроводительные материалы предоставляются // в соответствии с условиями лицензии Attribution 4.0 International (CC BY 4.0) // Текст лицензии доступен по ссылке: diff --git a/SSL/src/Catalogs/ВерсииФайлов/Forms/ФормаСписка/Module.bsl b/SSL/src/Catalogs/ВерсииФайлов/Forms/ФормаСписка/Module.bsl index df8e3ec80..62d07587d 100644 --- a/SSL/src/Catalogs/ВерсииФайлов/Forms/ФормаСписка/Module.bsl +++ b/SSL/src/Catalogs/ВерсииФайлов/Forms/ФормаСписка/Module.bsl @@ -1,5 +1,5 @@ /////////////////////////////////////////////////////////////////////////////////////////////////////// -// Copyright (c) 2024, ООО 1С-Софт +// Copyright (c) 2025, ООО 1С-Софт // Все права защищены. Эта программа и сопроводительные материалы предоставляются // в соответствии с условиями лицензии Attribution 4.0 International (CC BY 4.0) // Текст лицензии доступен по ссылке: diff --git a/SSL/src/Catalogs/ВерсииФайлов/ManagerModule.bsl b/SSL/src/Catalogs/ВерсииФайлов/ManagerModule.bsl index 260d5c429..fbf800efa 100644 --- a/SSL/src/Catalogs/ВерсииФайлов/ManagerModule.bsl +++ b/SSL/src/Catalogs/ВерсииФайлов/ManagerModule.bsl @@ -1,5 +1,5 @@ /////////////////////////////////////////////////////////////////////////////////////////////////////// -// Copyright (c) 2024, ООО 1С-Софт +// Copyright (c) 2025, ООО 1С-Софт // Все права защищены. Эта программа и сопроводительные материалы предоставляются // в соответствии с условиями лицензии Attribution 4.0 International (CC BY 4.0) // Текст лицензии доступен по ссылке: @@ -81,7 +81,7 @@ ПараметрыВыборки = Параметры.ПараметрыВыборки; ПараметрыВыборки.ПолныеИменаОбъектов = Метаданные.Справочники.ВерсииФайлов.ПолноеИмя(); ПараметрыВыборки.СпособВыборки = ОбновлениеИнформационнойБазы.СпособВыборкиСсылки(); - + ТекстЗапроса = "ВЫБРАТЬ ПЕРВЫЕ 1000 | ВерсииФайлов.Ссылка КАК Ссылка, diff --git a/SSL/src/Catalogs/ВерсииФайлов/ObjectModule.bsl b/SSL/src/Catalogs/ВерсииФайлов/ObjectModule.bsl index bf065278d..fc34c14b9 100644 --- a/SSL/src/Catalogs/ВерсииФайлов/ObjectModule.bsl +++ b/SSL/src/Catalogs/ВерсииФайлов/ObjectModule.bsl @@ -1,5 +1,5 @@ /////////////////////////////////////////////////////////////////////////////////////////////////////// -// Copyright (c) 2024, ООО 1С-Софт +// Copyright (c) 2025, ООО 1С-Софт // Все права защищены. Эта программа и сопроводительные материалы предоставляются // в соответствии с условиями лицензии Attribution 4.0 International (CC BY 4.0) // Текст лицензии доступен по ссылке: diff --git a/SSL/src/Catalogs/ВерсииФайлов/ВерсииФайлов.mdo b/SSL/src/Catalogs/ВерсииФайлов/ВерсииФайлов.mdo index 0f2e3c8f6..7030079f0 100644 --- a/SSL/src/Catalogs/ВерсииФайлов/ВерсииФайлов.mdo +++ b/SSL/src/Catalogs/ВерсииФайлов/ВерсииФайлов.mdo @@ -483,6 +483,39 @@ Use + + ДатаПереносаВАрхив + + ru + Дата переноса в архив + + + Date + + Date + + + + + + Use + Use + + + УсловноПеренесенВАрхив + + ru + Условно перенесен в архив + + + Boolean + + + + + Use + Use + diff --git a/SSL/src/Catalogs/ВидыКонтактнойИнформации/Forms/ИсправлениеВидовКонтактнойИнформации/Module.bsl b/SSL/src/Catalogs/ВидыКонтактнойИнформации/Forms/ИсправлениеВидовКонтактнойИнформации/Module.bsl index cf9e9d6a9..1ae9184eb 100644 --- a/SSL/src/Catalogs/ВидыКонтактнойИнформации/Forms/ИсправлениеВидовКонтактнойИнформации/Module.bsl +++ b/SSL/src/Catalogs/ВидыКонтактнойИнформации/Forms/ИсправлениеВидовКонтактнойИнформации/Module.bsl @@ -1,5 +1,5 @@ /////////////////////////////////////////////////////////////////////////////////////////////////////// -// Copyright (c) 2024, ООО 1С-Софт +// Copyright (c) 2025, ООО 1С-Софт // Все права защищены. Эта программа и сопроводительные материалы предоставляются // в соответствии с условиями лицензии Attribution 4.0 International (CC BY 4.0) // Текст лицензии доступен по ссылке: diff --git a/SSL/src/Catalogs/ВидыКонтактнойИнформации/Forms/ФормаВыбора/Module.bsl b/SSL/src/Catalogs/ВидыКонтактнойИнформации/Forms/ФормаВыбора/Module.bsl index c6ed8dff3..33f9aa93c 100644 --- a/SSL/src/Catalogs/ВидыКонтактнойИнформации/Forms/ФормаВыбора/Module.bsl +++ b/SSL/src/Catalogs/ВидыКонтактнойИнформации/Forms/ФормаВыбора/Module.bsl @@ -1,5 +1,5 @@ /////////////////////////////////////////////////////////////////////////////////////////////////////// -// Copyright (c) 2024, ООО 1С-Софт +// Copyright (c) 2025, ООО 1С-Софт // Все права защищены. Эта программа и сопроводительные материалы предоставляются // в соответствии с условиями лицензии Attribution 4.0 International (CC BY 4.0) // Текст лицензии доступен по ссылке: diff --git a/SSL/src/Catalogs/ВидыКонтактнойИнформации/Forms/ФормаВыбораГруппы/Module.bsl b/SSL/src/Catalogs/ВидыКонтактнойИнформации/Forms/ФормаВыбораГруппы/Module.bsl index 74890310f..ccdaa5c67 100644 --- a/SSL/src/Catalogs/ВидыКонтактнойИнформации/Forms/ФормаВыбораГруппы/Module.bsl +++ b/SSL/src/Catalogs/ВидыКонтактнойИнформации/Forms/ФормаВыбораГруппы/Module.bsl @@ -1,5 +1,5 @@ /////////////////////////////////////////////////////////////////////////////////////////////////////// -// Copyright (c) 2024, ООО 1С-Софт +// Copyright (c) 2025, ООО 1С-Софт // Все права защищены. Эта программа и сопроводительные материалы предоставляются // в соответствии с условиями лицензии Attribution 4.0 International (CC BY 4.0) // Текст лицензии доступен по ссылке: diff --git a/SSL/src/Catalogs/ВидыКонтактнойИнформации/Forms/ФормаСписка/Module.bsl b/SSL/src/Catalogs/ВидыКонтактнойИнформации/Forms/ФормаСписка/Module.bsl index 8e5bb2c3b..c2d8c2eca 100644 --- a/SSL/src/Catalogs/ВидыКонтактнойИнформации/Forms/ФормаСписка/Module.bsl +++ b/SSL/src/Catalogs/ВидыКонтактнойИнформации/Forms/ФормаСписка/Module.bsl @@ -1,5 +1,5 @@ /////////////////////////////////////////////////////////////////////////////////////////////////////// -// Copyright (c) 2024, ООО 1С-Софт +// Copyright (c) 2025, ООО 1С-Софт // Все права защищены. Эта программа и сопроводительные материалы предоставляются // в соответствии с условиями лицензии Attribution 4.0 International (CC BY 4.0) // Текст лицензии доступен по ссылке: diff --git a/SSL/src/Catalogs/ВидыКонтактнойИнформации/Forms/ФормаЭлемента/Module.bsl b/SSL/src/Catalogs/ВидыКонтактнойИнформации/Forms/ФормаЭлемента/Module.bsl index c67e3219a..bae6f7415 100644 --- a/SSL/src/Catalogs/ВидыКонтактнойИнформации/Forms/ФормаЭлемента/Module.bsl +++ b/SSL/src/Catalogs/ВидыКонтактнойИнформации/Forms/ФормаЭлемента/Module.bsl @@ -1,5 +1,5 @@ /////////////////////////////////////////////////////////////////////////////////////////////////////// -// Copyright (c) 2024, ООО 1С-Софт +// Copyright (c) 2025, ООО 1С-Софт // Все права защищены. Эта программа и сопроводительные материалы предоставляются // в соответствии с условиями лицензии Attribution 4.0 International (CC BY 4.0) // Текст лицензии доступен по ссылке: diff --git a/SSL/src/Catalogs/ВидыКонтактнойИнформации/ManagerModule.bsl b/SSL/src/Catalogs/ВидыКонтактнойИнформации/ManagerModule.bsl index 2e0ee071a..4c0fd6e48 100644 --- a/SSL/src/Catalogs/ВидыКонтактнойИнформации/ManagerModule.bsl +++ b/SSL/src/Catalogs/ВидыКонтактнойИнформации/ManagerModule.bsl @@ -1,5 +1,5 @@ /////////////////////////////////////////////////////////////////////////////////////////////////////// -// Copyright (c) 2024, ООО 1С-Софт +// Copyright (c) 2025, ООО 1С-Софт // Все права защищены. Эта программа и сопроводительные материалы предоставляются // в соответствии с условиями лицензии Attribution 4.0 International (CC BY 4.0) // Текст лицензии доступен по ссылке: diff --git a/SSL/src/Catalogs/ВидыКонтактнойИнформации/ObjectModule.bsl b/SSL/src/Catalogs/ВидыКонтактнойИнформации/ObjectModule.bsl index da634f06b..a8f2aca64 100644 --- a/SSL/src/Catalogs/ВидыКонтактнойИнформации/ObjectModule.bsl +++ b/SSL/src/Catalogs/ВидыКонтактнойИнформации/ObjectModule.bsl @@ -1,5 +1,5 @@ /////////////////////////////////////////////////////////////////////////////////////////////////////// -// Copyright (c) 2024, ООО 1С-Софт +// Copyright (c) 2025, ООО 1С-Софт // Все права защищены. Эта программа и сопроводительные материалы предоставляются // в соответствии с условиями лицензии Attribution 4.0 International (CC BY 4.0) // Текст лицензии доступен по ссылке: diff --git a/SSL/src/Catalogs/ВидыПроверок/Forms/ФормаЭлемента/Module.bsl b/SSL/src/Catalogs/ВидыПроверок/Forms/ФормаЭлемента/Module.bsl index f6585602d..23f2233f3 100644 --- a/SSL/src/Catalogs/ВидыПроверок/Forms/ФормаЭлемента/Module.bsl +++ b/SSL/src/Catalogs/ВидыПроверок/Forms/ФормаЭлемента/Module.bsl @@ -1,5 +1,5 @@ /////////////////////////////////////////////////////////////////////////////////////////////////////// -// Copyright (c) 2024, ООО 1С-Софт +// Copyright (c) 2025, ООО 1С-Софт // Все права защищены. Эта программа и сопроводительные материалы предоставляются // в соответствии с условиями лицензии Attribution 4.0 International (CC BY 4.0) // Текст лицензии доступен по ссылке: diff --git a/SSL/src/Catalogs/ВидыПроверок/ManagerModule.bsl b/SSL/src/Catalogs/ВидыПроверок/ManagerModule.bsl index aa1f03c7e..2e9682219 100644 --- a/SSL/src/Catalogs/ВидыПроверок/ManagerModule.bsl +++ b/SSL/src/Catalogs/ВидыПроверок/ManagerModule.bsl @@ -1,5 +1,5 @@ /////////////////////////////////////////////////////////////////////////////////////////////////////// -// Copyright (c) 2024, ООО 1С-Софт +// Copyright (c) 2025, ООО 1С-Софт // Все права защищены. Эта программа и сопроводительные материалы предоставляются // в соответствии с условиями лицензии Attribution 4.0 International (CC BY 4.0) // Текст лицензии доступен по ссылке: diff --git a/SSL/src/Catalogs/ВнешниеКомпоненты/Forms/ОбновлениеКомпонентСПортала1СИТС/Module.bsl b/SSL/src/Catalogs/ВнешниеКомпоненты/Forms/ОбновлениеКомпонентСПортала1СИТС/Module.bsl index 18265178d..58099e3e3 100644 --- a/SSL/src/Catalogs/ВнешниеКомпоненты/Forms/ОбновлениеКомпонентСПортала1СИТС/Module.bsl +++ b/SSL/src/Catalogs/ВнешниеКомпоненты/Forms/ОбновлениеКомпонентСПортала1СИТС/Module.bsl @@ -1,5 +1,5 @@ /////////////////////////////////////////////////////////////////////////////////////////////////////// -// Copyright (c) 2024, ООО 1С-Софт +// Copyright (c) 2025, ООО 1С-Софт // Все права защищены. Эта программа и сопроводительные материалы предоставляются // в соответствии с условиями лицензии Attribution 4.0 International (CC BY 4.0) // Текст лицензии доступен по ссылке: diff --git a/SSL/src/Catalogs/ВнешниеКомпоненты/Forms/ПоискКомпонентыНаПортале1СИТС/Module.bsl b/SSL/src/Catalogs/ВнешниеКомпоненты/Forms/ПоискКомпонентыНаПортале1СИТС/Module.bsl index d33ea0c38..58be08ed9 100644 --- a/SSL/src/Catalogs/ВнешниеКомпоненты/Forms/ПоискКомпонентыНаПортале1СИТС/Module.bsl +++ b/SSL/src/Catalogs/ВнешниеКомпоненты/Forms/ПоискКомпонентыНаПортале1СИТС/Module.bsl @@ -1,5 +1,5 @@ /////////////////////////////////////////////////////////////////////////////////////////////////////// -// Copyright (c) 2024, ООО 1С-Софт +// Copyright (c) 2025, ООО 1С-Софт // Все права защищены. Эта программа и сопроводительные материалы предоставляются // в соответствии с условиями лицензии Attribution 4.0 International (CC BY 4.0) // Текст лицензии доступен по ссылке: diff --git a/SSL/src/Catalogs/ВнешниеКомпоненты/Forms/ФормаСписка/Module.bsl b/SSL/src/Catalogs/ВнешниеКомпоненты/Forms/ФормаСписка/Module.bsl index 5a63ecd1e..37d5af4a5 100644 --- a/SSL/src/Catalogs/ВнешниеКомпоненты/Forms/ФормаСписка/Module.bsl +++ b/SSL/src/Catalogs/ВнешниеКомпоненты/Forms/ФормаСписка/Module.bsl @@ -1,5 +1,5 @@ /////////////////////////////////////////////////////////////////////////////////////////////////////// -// Copyright (c) 2024, ООО 1С-Софт +// Copyright (c) 2025, ООО 1С-Софт // Все права защищены. Эта программа и сопроводительные материалы предоставляются // в соответствии с условиями лицензии Attribution 4.0 International (CC BY 4.0) // Текст лицензии доступен по ссылке: diff --git a/SSL/src/Catalogs/ВнешниеКомпоненты/Forms/ФормаЭлемента/Module.bsl b/SSL/src/Catalogs/ВнешниеКомпоненты/Forms/ФормаЭлемента/Module.bsl index 431cb40d9..a6bfcfe7d 100644 --- a/SSL/src/Catalogs/ВнешниеКомпоненты/Forms/ФормаЭлемента/Module.bsl +++ b/SSL/src/Catalogs/ВнешниеКомпоненты/Forms/ФормаЭлемента/Module.bsl @@ -1,5 +1,5 @@ /////////////////////////////////////////////////////////////////////////////////////////////////////// -// Copyright (c) 2024, ООО 1С-Софт +// Copyright (c) 2025, ООО 1С-Софт // Все права защищены. Эта программа и сопроводительные материалы предоставляются // в соответствии с условиями лицензии Attribution 4.0 International (CC BY 4.0) // Текст лицензии доступен по ссылке: diff --git a/SSL/src/Catalogs/ВнешниеКомпоненты/ManagerModule.bsl b/SSL/src/Catalogs/ВнешниеКомпоненты/ManagerModule.bsl index 873344536..25b1cfb7a 100644 --- a/SSL/src/Catalogs/ВнешниеКомпоненты/ManagerModule.bsl +++ b/SSL/src/Catalogs/ВнешниеКомпоненты/ManagerModule.bsl @@ -1,5 +1,5 @@ /////////////////////////////////////////////////////////////////////////////////////////////////////// -// Copyright (c) 2024, ООО 1С-Софт +// Copyright (c) 2025, ООО 1С-Софт // Все права защищены. Эта программа и сопроводительные материалы предоставляются // в соответствии с условиями лицензии Attribution 4.0 International (CC BY 4.0) // Текст лицензии доступен по ссылке: diff --git a/SSL/src/Catalogs/ВнешниеКомпоненты/ObjectModule.bsl b/SSL/src/Catalogs/ВнешниеКомпоненты/ObjectModule.bsl index 4ea73e41f..3c066cf7d 100644 --- a/SSL/src/Catalogs/ВнешниеКомпоненты/ObjectModule.bsl +++ b/SSL/src/Catalogs/ВнешниеКомпоненты/ObjectModule.bsl @@ -1,5 +1,5 @@ /////////////////////////////////////////////////////////////////////////////////////////////////////// -// Copyright (c) 2024, ООО 1С-Софт +// Copyright (c) 2025, ООО 1С-Софт // Все права защищены. Эта программа и сопроводительные материалы предоставляются // в соответствии с условиями лицензии Attribution 4.0 International (CC BY 4.0) // Текст лицензии доступен по ссылке: diff --git a/SSL/src/Catalogs/ВнешниеПользователи/Commands/ВнешнийДоступ/CommandModule.bsl b/SSL/src/Catalogs/ВнешниеПользователи/Commands/ВнешнийДоступ/CommandModule.bsl index e30735b78..d5c1ce9aa 100644 --- a/SSL/src/Catalogs/ВнешниеПользователи/Commands/ВнешнийДоступ/CommandModule.bsl +++ b/SSL/src/Catalogs/ВнешниеПользователи/Commands/ВнешнийДоступ/CommandModule.bsl @@ -1,5 +1,5 @@ /////////////////////////////////////////////////////////////////////////////////////////////////////// -// Copyright (c) 2024, ООО 1С-Софт +// Copyright (c) 2025, ООО 1С-Софт // Все права защищены. Эта программа и сопроводительные материалы предоставляются // в соответствии с условиями лицензии Attribution 4.0 International (CC BY 4.0) // Текст лицензии доступен по ссылке: diff --git a/SSL/src/Catalogs/ВнешниеПользователи/Forms/ФормаСписка/Module.bsl b/SSL/src/Catalogs/ВнешниеПользователи/Forms/ФормаСписка/Module.bsl index c7340bc51..1b9d4b5d4 100644 --- a/SSL/src/Catalogs/ВнешниеПользователи/Forms/ФормаСписка/Module.bsl +++ b/SSL/src/Catalogs/ВнешниеПользователи/Forms/ФормаСписка/Module.bsl @@ -1,5 +1,5 @@ /////////////////////////////////////////////////////////////////////////////////////////////////////// -// Copyright (c) 2024, ООО 1С-Софт +// Copyright (c) 2025, ООО 1С-Софт // Все права защищены. Эта программа и сопроводительные материалы предоставляются // в соответствии с условиями лицензии Attribution 4.0 International (CC BY 4.0) // Текст лицензии доступен по ссылке: diff --git a/SSL/src/Catalogs/ВнешниеПользователи/Forms/ФормаЭлемента/Module.bsl b/SSL/src/Catalogs/ВнешниеПользователи/Forms/ФормаЭлемента/Module.bsl index 200e65aa1..2d6d6cf03 100644 --- a/SSL/src/Catalogs/ВнешниеПользователи/Forms/ФормаЭлемента/Module.bsl +++ b/SSL/src/Catalogs/ВнешниеПользователи/Forms/ФормаЭлемента/Module.bsl @@ -1,5 +1,5 @@ /////////////////////////////////////////////////////////////////////////////////////////////////////// -// Copyright (c) 2024, ООО 1С-Софт +// Copyright (c) 2025, ООО 1С-Софт // Все права защищены. Эта программа и сопроводительные материалы предоставляются // в соответствии с условиями лицензии Attribution 4.0 International (CC BY 4.0) // Текст лицензии доступен по ссылке: diff --git a/SSL/src/Catalogs/ВнешниеПользователи/ManagerModule.bsl b/SSL/src/Catalogs/ВнешниеПользователи/ManagerModule.bsl index 455fdef1f..eaac4866e 100644 --- a/SSL/src/Catalogs/ВнешниеПользователи/ManagerModule.bsl +++ b/SSL/src/Catalogs/ВнешниеПользователи/ManagerModule.bsl @@ -1,5 +1,5 @@ /////////////////////////////////////////////////////////////////////////////////////////////////////// -// Copyright (c) 2024, ООО 1С-Софт +// Copyright (c) 2025, ООО 1С-Софт // Все права защищены. Эта программа и сопроводительные материалы предоставляются // в соответствии с условиями лицензии Attribution 4.0 International (CC BY 4.0) // Текст лицензии доступен по ссылке: diff --git a/SSL/src/Catalogs/ВнешниеПользователи/ObjectModule.bsl b/SSL/src/Catalogs/ВнешниеПользователи/ObjectModule.bsl index 924cd56c5..938fd3a90 100644 --- a/SSL/src/Catalogs/ВнешниеПользователи/ObjectModule.bsl +++ b/SSL/src/Catalogs/ВнешниеПользователи/ObjectModule.bsl @@ -1,5 +1,5 @@ /////////////////////////////////////////////////////////////////////////////////////////////////////// -// Copyright (c) 2024, ООО 1С-Софт +// Copyright (c) 2025, ООО 1С-Софт // Все права защищены. Эта программа и сопроводительные материалы предоставляются // в соответствии с условиями лицензии Attribution 4.0 International (CC BY 4.0) // Текст лицензии доступен по ссылке: diff --git a/SSL/src/Catalogs/ВопросыШаблонаАнкеты/ManagerModule.bsl b/SSL/src/Catalogs/ВопросыШаблонаАнкеты/ManagerModule.bsl index 738548bd0..41acaf400 100644 --- a/SSL/src/Catalogs/ВопросыШаблонаАнкеты/ManagerModule.bsl +++ b/SSL/src/Catalogs/ВопросыШаблонаАнкеты/ManagerModule.bsl @@ -1,5 +1,5 @@ /////////////////////////////////////////////////////////////////////////////////////////////////////// -// Copyright (c) 2024, ООО 1С-Софт +// Copyright (c) 2025, ООО 1С-Софт // Все права защищены. Эта программа и сопроводительные материалы предоставляются // в соответствии с условиями лицензии Attribution 4.0 International (CC BY 4.0) // Текст лицензии доступен по ссылке: diff --git a/SSL/src/Catalogs/ВопросыШаблонаАнкеты/ObjectModule.bsl b/SSL/src/Catalogs/ВопросыШаблонаАнкеты/ObjectModule.bsl index 4babd95b0..07508cde8 100644 --- a/SSL/src/Catalogs/ВопросыШаблонаАнкеты/ObjectModule.bsl +++ b/SSL/src/Catalogs/ВопросыШаблонаАнкеты/ObjectModule.bsl @@ -1,5 +1,5 @@ /////////////////////////////////////////////////////////////////////////////////////////////////////// -// Copyright (c) 2024, ООО 1С-Софт +// Copyright (c) 2025, ООО 1С-Софт // Все права защищены. Эта программа и сопроводительные материалы предоставляются // в соответствии с условиями лицензии Attribution 4.0 International (CC BY 4.0) // Текст лицензии доступен по ссылке: diff --git a/SSL/src/Catalogs/ВстречаПрисоединенныеФайлы/ManagerModule.bsl b/SSL/src/Catalogs/ВстречаПрисоединенныеФайлы/ManagerModule.bsl index d3e48151e..ccf8b6be2 100644 --- a/SSL/src/Catalogs/ВстречаПрисоединенныеФайлы/ManagerModule.bsl +++ b/SSL/src/Catalogs/ВстречаПрисоединенныеФайлы/ManagerModule.bsl @@ -1,5 +1,5 @@ /////////////////////////////////////////////////////////////////////////////////////////////////////// -// Copyright (c) 2024, ООО 1С-Софт +// Copyright (c) 2025, ООО 1С-Софт // Все права защищены. Эта программа и сопроводительные материалы предоставляются // в соответствии с условиями лицензии Attribution 4.0 International (CC BY 4.0) // Текст лицензии доступен по ссылке: diff --git a/SSL/src/Catalogs/ГруппыВнешнихПользователей/Commands/ГруппыВнешнегоПользователя/CommandModule.bsl b/SSL/src/Catalogs/ГруппыВнешнихПользователей/Commands/ГруппыВнешнегоПользователя/CommandModule.bsl index e6880f4f7..572e09be1 100644 --- a/SSL/src/Catalogs/ГруппыВнешнихПользователей/Commands/ГруппыВнешнегоПользователя/CommandModule.bsl +++ b/SSL/src/Catalogs/ГруппыВнешнихПользователей/Commands/ГруппыВнешнегоПользователя/CommandModule.bsl @@ -1,5 +1,5 @@ /////////////////////////////////////////////////////////////////////////////////////////////////////// -// Copyright (c) 2024, ООО 1С-Софт +// Copyright (c) 2025, ООО 1С-Софт // Все права защищены. Эта программа и сопроводительные материалы предоставляются // в соответствии с условиями лицензии Attribution 4.0 International (CC BY 4.0) // Текст лицензии доступен по ссылке: diff --git a/SSL/src/Catalogs/ГруппыВнешнихПользователей/Forms/ФормаСписка/Module.bsl b/SSL/src/Catalogs/ГруппыВнешнихПользователей/Forms/ФормаСписка/Module.bsl index ae5d84ae2..c1957450b 100644 --- a/SSL/src/Catalogs/ГруппыВнешнихПользователей/Forms/ФормаСписка/Module.bsl +++ b/SSL/src/Catalogs/ГруппыВнешнихПользователей/Forms/ФормаСписка/Module.bsl @@ -1,5 +1,5 @@ /////////////////////////////////////////////////////////////////////////////////////////////////////// -// Copyright (c) 2024, ООО 1С-Софт +// Copyright (c) 2025, ООО 1С-Софт // Все права защищены. Эта программа и сопроводительные материалы предоставляются // в соответствии с условиями лицензии Attribution 4.0 International (CC BY 4.0) // Текст лицензии доступен по ссылке: diff --git a/SSL/src/Catalogs/ГруппыВнешнихПользователей/Forms/ФормаЭлемента/Module.bsl b/SSL/src/Catalogs/ГруппыВнешнихПользователей/Forms/ФормаЭлемента/Module.bsl index 5ea0e7c92..023a7a003 100644 --- a/SSL/src/Catalogs/ГруппыВнешнихПользователей/Forms/ФормаЭлемента/Module.bsl +++ b/SSL/src/Catalogs/ГруппыВнешнихПользователей/Forms/ФормаЭлемента/Module.bsl @@ -1,5 +1,5 @@ /////////////////////////////////////////////////////////////////////////////////////////////////////// -// Copyright (c) 2024, ООО 1С-Софт +// Copyright (c) 2025, ООО 1С-Софт // Все права защищены. Эта программа и сопроводительные материалы предоставляются // в соответствии с условиями лицензии Attribution 4.0 International (CC BY 4.0) // Текст лицензии доступен по ссылке: diff --git a/SSL/src/Catalogs/ГруппыВнешнихПользователей/ManagerModule.bsl b/SSL/src/Catalogs/ГруппыВнешнихПользователей/ManagerModule.bsl index 61bb02e23..2752214d8 100644 --- a/SSL/src/Catalogs/ГруппыВнешнихПользователей/ManagerModule.bsl +++ b/SSL/src/Catalogs/ГруппыВнешнихПользователей/ManagerModule.bsl @@ -1,5 +1,5 @@ /////////////////////////////////////////////////////////////////////////////////////////////////////// -// Copyright (c) 2024, ООО 1С-Софт +// Copyright (c) 2025, ООО 1С-Софт // Все права защищены. Эта программа и сопроводительные материалы предоставляются // в соответствии с условиями лицензии Attribution 4.0 International (CC BY 4.0) // Текст лицензии доступен по ссылке: diff --git a/SSL/src/Catalogs/ГруппыВнешнихПользователей/ObjectModule.bsl b/SSL/src/Catalogs/ГруппыВнешнихПользователей/ObjectModule.bsl index 8ebbc7e87..4c1d523c2 100644 --- a/SSL/src/Catalogs/ГруппыВнешнихПользователей/ObjectModule.bsl +++ b/SSL/src/Catalogs/ГруппыВнешнихПользователей/ObjectModule.bsl @@ -1,5 +1,5 @@ /////////////////////////////////////////////////////////////////////////////////////////////////////// -// Copyright (c) 2024, ООО 1С-Софт +// Copyright (c) 2025, ООО 1С-Софт // Все права защищены. Эта программа и сопроводительные материалы предоставляются // в соответствии с условиями лицензии Attribution 4.0 International (CC BY 4.0) // Текст лицензии доступен по ссылке: diff --git a/SSL/src/Catalogs/ГруппыДоступа/Forms/ВыборПоОтветственному/Module.bsl b/SSL/src/Catalogs/ГруппыДоступа/Forms/ВыборПоОтветственному/Module.bsl index 120e2cde6..d2fcd3c00 100644 --- a/SSL/src/Catalogs/ГруппыДоступа/Forms/ВыборПоОтветственному/Module.bsl +++ b/SSL/src/Catalogs/ГруппыДоступа/Forms/ВыборПоОтветственному/Module.bsl @@ -1,5 +1,5 @@ /////////////////////////////////////////////////////////////////////////////////////////////////////// -// Copyright (c) 2024, ООО 1С-Софт +// Copyright (c) 2025, ООО 1С-Софт // Все права защищены. Эта программа и сопроводительные материалы предоставляются // в соответствии с условиями лицензии Attribution 4.0 International (CC BY 4.0) // Текст лицензии доступен по ссылке: diff --git a/SSL/src/Catalogs/ГруппыДоступа/Forms/ФормаВыбораГруппы/Module.bsl b/SSL/src/Catalogs/ГруппыДоступа/Forms/ФормаВыбораГруппы/Module.bsl index 828c3a1c6..9c9cf207a 100644 --- a/SSL/src/Catalogs/ГруппыДоступа/Forms/ФормаВыбораГруппы/Module.bsl +++ b/SSL/src/Catalogs/ГруппыДоступа/Forms/ФормаВыбораГруппы/Module.bsl @@ -1,5 +1,5 @@ /////////////////////////////////////////////////////////////////////////////////////////////////////// -// Copyright (c) 2024, ООО 1С-Софт +// Copyright (c) 2025, ООО 1С-Софт // Все права защищены. Эта программа и сопроводительные материалы предоставляются // в соответствии с условиями лицензии Attribution 4.0 International (CC BY 4.0) // Текст лицензии доступен по ссылке: diff --git a/SSL/src/Catalogs/ГруппыДоступа/Forms/ФормаГруппы/Module.bsl b/SSL/src/Catalogs/ГруппыДоступа/Forms/ФормаГруппы/Module.bsl index 95206b772..334cc83c8 100644 --- a/SSL/src/Catalogs/ГруппыДоступа/Forms/ФормаГруппы/Module.bsl +++ b/SSL/src/Catalogs/ГруппыДоступа/Forms/ФормаГруппы/Module.bsl @@ -1,5 +1,5 @@ /////////////////////////////////////////////////////////////////////////////////////////////////////// -// Copyright (c) 2024, ООО 1С-Софт +// Copyright (c) 2025, ООО 1С-Софт // Все права защищены. Эта программа и сопроводительные материалы предоставляются // в соответствии с условиями лицензии Attribution 4.0 International (CC BY 4.0) // Текст лицензии доступен по ссылке: diff --git a/SSL/src/Catalogs/ГруппыДоступа/Forms/ФормаСписка/Module.bsl b/SSL/src/Catalogs/ГруппыДоступа/Forms/ФормаСписка/Module.bsl index 73f7dfc2d..2b45b6965 100644 --- a/SSL/src/Catalogs/ГруппыДоступа/Forms/ФормаСписка/Module.bsl +++ b/SSL/src/Catalogs/ГруппыДоступа/Forms/ФормаСписка/Module.bsl @@ -1,5 +1,5 @@ /////////////////////////////////////////////////////////////////////////////////////////////////////// -// Copyright (c) 2024, ООО 1С-Софт +// Copyright (c) 2025, ООО 1С-Софт // Все права защищены. Эта программа и сопроводительные материалы предоставляются // в соответствии с условиями лицензии Attribution 4.0 International (CC BY 4.0) // Текст лицензии доступен по ссылке: diff --git a/SSL/src/Catalogs/ГруппыДоступа/Forms/ФормаЭлемента/Module.bsl b/SSL/src/Catalogs/ГруппыДоступа/Forms/ФормаЭлемента/Module.bsl index 6add4ecb6..c873fde30 100644 --- a/SSL/src/Catalogs/ГруппыДоступа/Forms/ФормаЭлемента/Module.bsl +++ b/SSL/src/Catalogs/ГруппыДоступа/Forms/ФормаЭлемента/Module.bsl @@ -1,5 +1,5 @@ /////////////////////////////////////////////////////////////////////////////////////////////////////// -// Copyright (c) 2024, ООО 1С-Софт +// Copyright (c) 2025, ООО 1С-Софт // Все права защищены. Эта программа и сопроводительные материалы предоставляются // в соответствии с условиями лицензии Attribution 4.0 International (CC BY 4.0) // Текст лицензии доступен по ссылке: diff --git a/SSL/src/Catalogs/ГруппыДоступа/ManagerModule.bsl b/SSL/src/Catalogs/ГруппыДоступа/ManagerModule.bsl index 2ffb21eb4..409b499be 100644 --- a/SSL/src/Catalogs/ГруппыДоступа/ManagerModule.bsl +++ b/SSL/src/Catalogs/ГруппыДоступа/ManagerModule.bsl @@ -1,5 +1,5 @@ /////////////////////////////////////////////////////////////////////////////////////////////////////// -// Copyright (c) 2024, ООО 1С-Софт +// Copyright (c) 2025, ООО 1С-Софт // Все права защищены. Эта программа и сопроводительные материалы предоставляются // в соответствии с условиями лицензии Attribution 4.0 International (CC BY 4.0) // Текст лицензии доступен по ссылке: @@ -1104,6 +1104,10 @@ // Процедура ЗарегистрироватьИзменениеРазрешенныхЗначений(Объект, СтарыеЗначения) Экспорт + Если УправлениеДоступомСлужебный.ОтключеноОграничениеНаУровнеЗаписей() Тогда + Возврат; + КонецЕсли; + Если ТипЗнч(Объект) = Тип("Структура") Тогда Источник = Новый Массив; ПредставлениеИсточника = Неопределено; diff --git a/SSL/src/Catalogs/ГруппыДоступа/ObjectModule.bsl b/SSL/src/Catalogs/ГруппыДоступа/ObjectModule.bsl index 5b3fca36a..5c4265c21 100644 --- a/SSL/src/Catalogs/ГруппыДоступа/ObjectModule.bsl +++ b/SSL/src/Catalogs/ГруппыДоступа/ObjectModule.bsl @@ -1,5 +1,5 @@ /////////////////////////////////////////////////////////////////////////////////////////////////////// -// Copyright (c) 2024, ООО 1С-Софт +// Copyright (c) 2025, ООО 1С-Софт // Все права защищены. Эта программа и сопроводительные материалы предоставляются // в соответствии с условиями лицензии Attribution 4.0 International (CC BY 4.0) // Текст лицензии доступен по ссылке: diff --git a/SSL/src/Catalogs/ГруппыИсполнителейЗадач/ManagerModule.bsl b/SSL/src/Catalogs/ГруппыИсполнителейЗадач/ManagerModule.bsl index 0a377d5a4..c7ae1840c 100644 --- a/SSL/src/Catalogs/ГруппыИсполнителейЗадач/ManagerModule.bsl +++ b/SSL/src/Catalogs/ГруппыИсполнителейЗадач/ManagerModule.bsl @@ -1,5 +1,5 @@ /////////////////////////////////////////////////////////////////////////////////////////////////////// -// Copyright (c) 2024, ООО 1С-Софт +// Copyright (c) 2025, ООО 1С-Софт // Все права защищены. Эта программа и сопроводительные материалы предоставляются // в соответствии с условиями лицензии Attribution 4.0 International (CC BY 4.0) // Текст лицензии доступен по ссылке: diff --git a/SSL/src/Catalogs/ГруппыИсполнителейЗадач/ObjectModule.bsl b/SSL/src/Catalogs/ГруппыИсполнителейЗадач/ObjectModule.bsl index 6a0a72dc1..243311846 100644 --- a/SSL/src/Catalogs/ГруппыИсполнителейЗадач/ObjectModule.bsl +++ b/SSL/src/Catalogs/ГруппыИсполнителейЗадач/ObjectModule.bsl @@ -1,5 +1,5 @@ /////////////////////////////////////////////////////////////////////////////////////////////////////// -// Copyright (c) 2024, ООО 1С-Софт +// Copyright (c) 2025, ООО 1С-Софт // Все права защищены. Эта программа и сопроводительные материалы предоставляются // в соответствии с условиями лицензии Attribution 4.0 International (CC BY 4.0) // Текст лицензии доступен по ссылке: diff --git a/SSL/src/Catalogs/ГруппыПользователей/Commands/ГруппыПользователя/CommandModule.bsl b/SSL/src/Catalogs/ГруппыПользователей/Commands/ГруппыПользователя/CommandModule.bsl index e6880f4f7..572e09be1 100644 --- a/SSL/src/Catalogs/ГруппыПользователей/Commands/ГруппыПользователя/CommandModule.bsl +++ b/SSL/src/Catalogs/ГруппыПользователей/Commands/ГруппыПользователя/CommandModule.bsl @@ -1,5 +1,5 @@ /////////////////////////////////////////////////////////////////////////////////////////////////////// -// Copyright (c) 2024, ООО 1С-Софт +// Copyright (c) 2025, ООО 1С-Софт // Все права защищены. Эта программа и сопроводительные материалы предоставляются // в соответствии с условиями лицензии Attribution 4.0 International (CC BY 4.0) // Текст лицензии доступен по ссылке: diff --git a/SSL/src/Catalogs/ГруппыПользователей/Forms/ФормаСписка/Module.bsl b/SSL/src/Catalogs/ГруппыПользователей/Forms/ФормаСписка/Module.bsl index 5abf2313d..b44532d16 100644 --- a/SSL/src/Catalogs/ГруппыПользователей/Forms/ФормаСписка/Module.bsl +++ b/SSL/src/Catalogs/ГруппыПользователей/Forms/ФормаСписка/Module.bsl @@ -1,5 +1,5 @@ /////////////////////////////////////////////////////////////////////////////////////////////////////// -// Copyright (c) 2024, ООО 1С-Софт +// Copyright (c) 2025, ООО 1С-Софт // Все права защищены. Эта программа и сопроводительные материалы предоставляются // в соответствии с условиями лицензии Attribution 4.0 International (CC BY 4.0) // Текст лицензии доступен по ссылке: diff --git a/SSL/src/Catalogs/ГруппыПользователей/Forms/ФормаЭлемента/Module.bsl b/SSL/src/Catalogs/ГруппыПользователей/Forms/ФормаЭлемента/Module.bsl index da19af6ca..cad3df2c5 100644 --- a/SSL/src/Catalogs/ГруппыПользователей/Forms/ФормаЭлемента/Module.bsl +++ b/SSL/src/Catalogs/ГруппыПользователей/Forms/ФормаЭлемента/Module.bsl @@ -1,5 +1,5 @@ /////////////////////////////////////////////////////////////////////////////////////////////////////// -// Copyright (c) 2024, ООО 1С-Софт +// Copyright (c) 2025, ООО 1С-Софт // Все права защищены. Эта программа и сопроводительные материалы предоставляются // в соответствии с условиями лицензии Attribution 4.0 International (CC BY 4.0) // Текст лицензии доступен по ссылке: diff --git a/SSL/src/Catalogs/ГруппыПользователей/ManagerModule.bsl b/SSL/src/Catalogs/ГруппыПользователей/ManagerModule.bsl index 0018e79d2..67e81444f 100644 --- a/SSL/src/Catalogs/ГруппыПользователей/ManagerModule.bsl +++ b/SSL/src/Catalogs/ГруппыПользователей/ManagerModule.bsl @@ -1,5 +1,5 @@ /////////////////////////////////////////////////////////////////////////////////////////////////////// -// Copyright (c) 2024, ООО 1С-Софт +// Copyright (c) 2025, ООО 1С-Софт // Все права защищены. Эта программа и сопроводительные материалы предоставляются // в соответствии с условиями лицензии Attribution 4.0 International (CC BY 4.0) // Текст лицензии доступен по ссылке: diff --git a/SSL/src/Catalogs/ГруппыПользователей/ObjectModule.bsl b/SSL/src/Catalogs/ГруппыПользователей/ObjectModule.bsl index 553b72c61..7ebe609db 100644 --- a/SSL/src/Catalogs/ГруппыПользователей/ObjectModule.bsl +++ b/SSL/src/Catalogs/ГруппыПользователей/ObjectModule.bsl @@ -1,5 +1,5 @@ /////////////////////////////////////////////////////////////////////////////////////////////////////// -// Copyright (c) 2024, ООО 1С-Софт +// Copyright (c) 2025, ООО 1С-Софт // Все права защищены. Эта программа и сопроводительные материалы предоставляются // в соответствии с условиями лицензии Attribution 4.0 International (CC BY 4.0) // Текст лицензии доступен по ссылке: diff --git a/SSL/src/Catalogs/ДополнительныеОтчетыИОбработки/Forms/БыстрыйДоступКДополнительнымОтчетамИОбработкам/Module.bsl b/SSL/src/Catalogs/ДополнительныеОтчетыИОбработки/Forms/БыстрыйДоступКДополнительнымОтчетамИОбработкам/Module.bsl index 79bec615e..ed07529fd 100644 --- a/SSL/src/Catalogs/ДополнительныеОтчетыИОбработки/Forms/БыстрыйДоступКДополнительнымОтчетамИОбработкам/Module.bsl +++ b/SSL/src/Catalogs/ДополнительныеОтчетыИОбработки/Forms/БыстрыйДоступКДополнительнымОтчетамИОбработкам/Module.bsl @@ -1,5 +1,5 @@ /////////////////////////////////////////////////////////////////////////////////////////////////////// -// Copyright (c) 2024, ООО 1С-Софт +// Copyright (c) 2025, ООО 1С-Софт // Все права защищены. Эта программа и сопроводительные материалы предоставляются // в соответствии с условиями лицензии Attribution 4.0 International (CC BY 4.0) // Текст лицензии доступен по ссылке: diff --git a/SSL/src/Catalogs/ДополнительныеОтчетыИОбработки/Forms/ПроверкаДополнительныхОтчетовИОбработок/Module.bsl b/SSL/src/Catalogs/ДополнительныеОтчетыИОбработки/Forms/ПроверкаДополнительныхОтчетовИОбработок/Module.bsl index 704b0e6c1..d4849e89c 100644 --- a/SSL/src/Catalogs/ДополнительныеОтчетыИОбработки/Forms/ПроверкаДополнительныхОтчетовИОбработок/Module.bsl +++ b/SSL/src/Catalogs/ДополнительныеОтчетыИОбработки/Forms/ПроверкаДополнительныхОтчетовИОбработок/Module.bsl @@ -1,5 +1,5 @@ /////////////////////////////////////////////////////////////////////////////////////////////////////// -// Copyright (c) 2024, ООО 1С-Софт +// Copyright (c) 2025, ООО 1С-Софт // Все права защищены. Эта программа и сопроводительные материалы предоставляются // в соответствии с условиями лицензии Attribution 4.0 International (CC BY 4.0) // Текст лицензии доступен по ссылке: diff --git a/SSL/src/Catalogs/ДополнительныеОтчетыИОбработки/Forms/РазмещениеВРазделах/Module.bsl b/SSL/src/Catalogs/ДополнительныеОтчетыИОбработки/Forms/РазмещениеВРазделах/Module.bsl index 3a7962598..1997fb5ad 100644 --- a/SSL/src/Catalogs/ДополнительныеОтчетыИОбработки/Forms/РазмещениеВРазделах/Module.bsl +++ b/SSL/src/Catalogs/ДополнительныеОтчетыИОбработки/Forms/РазмещениеВРазделах/Module.bsl @@ -1,5 +1,5 @@ /////////////////////////////////////////////////////////////////////////////////////////////////////// -// Copyright (c) 2024, ООО 1С-Софт +// Copyright (c) 2025, ООО 1С-Софт // Все права защищены. Эта программа и сопроводительные материалы предоставляются // в соответствии с условиями лицензии Attribution 4.0 International (CC BY 4.0) // Текст лицензии доступен по ссылке: diff --git a/SSL/src/Catalogs/ДополнительныеОтчетыИОбработки/Forms/ФормаСписка/Module.bsl b/SSL/src/Catalogs/ДополнительныеОтчетыИОбработки/Forms/ФормаСписка/Module.bsl index 897bf01a9..4e12d5894 100644 --- a/SSL/src/Catalogs/ДополнительныеОтчетыИОбработки/Forms/ФормаСписка/Module.bsl +++ b/SSL/src/Catalogs/ДополнительныеОтчетыИОбработки/Forms/ФормаСписка/Module.bsl @@ -1,5 +1,5 @@ /////////////////////////////////////////////////////////////////////////////////////////////////////// -// Copyright (c) 2024, ООО 1С-Софт +// Copyright (c) 2025, ООО 1С-Софт // Все права защищены. Эта программа и сопроводительные материалы предоставляются // в соответствии с условиями лицензии Attribution 4.0 International (CC BY 4.0) // Текст лицензии доступен по ссылке: diff --git a/SSL/src/Catalogs/ДополнительныеОтчетыИОбработки/Forms/ФормаЭлемента/Module.bsl b/SSL/src/Catalogs/ДополнительныеОтчетыИОбработки/Forms/ФормаЭлемента/Module.bsl index 9a6d1388c..73b141fb6 100644 --- a/SSL/src/Catalogs/ДополнительныеОтчетыИОбработки/Forms/ФормаЭлемента/Module.bsl +++ b/SSL/src/Catalogs/ДополнительныеОтчетыИОбработки/Forms/ФормаЭлемента/Module.bsl @@ -1,5 +1,5 @@ /////////////////////////////////////////////////////////////////////////////////////////////////////// -// Copyright (c) 2024, ООО 1С-Софт +// Copyright (c) 2025, ООО 1С-Софт // Все права защищены. Эта программа и сопроводительные материалы предоставляются // в соответствии с условиями лицензии Attribution 4.0 International (CC BY 4.0) // Текст лицензии доступен по ссылке: diff --git a/SSL/src/Catalogs/ДополнительныеОтчетыИОбработки/ManagerModule.bsl b/SSL/src/Catalogs/ДополнительныеОтчетыИОбработки/ManagerModule.bsl index 02ef0f898..90583c46c 100644 --- a/SSL/src/Catalogs/ДополнительныеОтчетыИОбработки/ManagerModule.bsl +++ b/SSL/src/Catalogs/ДополнительныеОтчетыИОбработки/ManagerModule.bsl @@ -1,5 +1,5 @@ /////////////////////////////////////////////////////////////////////////////////////////////////////// -// Copyright (c) 2024, ООО 1С-Софт +// Copyright (c) 2025, ООО 1С-Софт // Все права защищены. Эта программа и сопроводительные материалы предоставляются // в соответствии с условиями лицензии Attribution 4.0 International (CC BY 4.0) // Текст лицензии доступен по ссылке: diff --git a/SSL/src/Catalogs/ДополнительныеОтчетыИОбработки/ObjectModule.bsl b/SSL/src/Catalogs/ДополнительныеОтчетыИОбработки/ObjectModule.bsl index 8cdc283d6..921d4f101 100644 --- a/SSL/src/Catalogs/ДополнительныеОтчетыИОбработки/ObjectModule.bsl +++ b/SSL/src/Catalogs/ДополнительныеОтчетыИОбработки/ObjectModule.bsl @@ -1,5 +1,5 @@ /////////////////////////////////////////////////////////////////////////////////////////////////////// -// Copyright (c) 2024, ООО 1С-Софт +// Copyright (c) 2025, ООО 1С-Софт // Все права защищены. Эта программа и сопроводительные материалы предоставляются // в соответствии с условиями лицензии Attribution 4.0 International (CC BY 4.0) // Текст лицензии доступен по ссылке: diff --git a/SSL/src/Catalogs/ЗакладкиВзаимодействий/Forms/ФормаСписка/Module.bsl b/SSL/src/Catalogs/ЗакладкиВзаимодействий/Forms/ФормаСписка/Module.bsl index 88dddade0..c7212ba8c 100644 --- a/SSL/src/Catalogs/ЗакладкиВзаимодействий/Forms/ФормаСписка/Module.bsl +++ b/SSL/src/Catalogs/ЗакладкиВзаимодействий/Forms/ФормаСписка/Module.bsl @@ -1,5 +1,5 @@ /////////////////////////////////////////////////////////////////////////////////////////////////////// -// Copyright (c) 2024, ООО 1С-Софт +// Copyright (c) 2025, ООО 1С-Софт // Все права защищены. Эта программа и сопроводительные материалы предоставляются // в соответствии с условиями лицензии Attribution 4.0 International (CC BY 4.0) // Текст лицензии доступен по ссылке: diff --git a/SSL/src/Catalogs/ЗакладкиВзаимодействий/Forms/ФормаЭлемента/Module.bsl b/SSL/src/Catalogs/ЗакладкиВзаимодействий/Forms/ФормаЭлемента/Module.bsl index b47adf6a0..6b11c719b 100644 --- a/SSL/src/Catalogs/ЗакладкиВзаимодействий/Forms/ФормаЭлемента/Module.bsl +++ b/SSL/src/Catalogs/ЗакладкиВзаимодействий/Forms/ФормаЭлемента/Module.bsl @@ -1,5 +1,5 @@ /////////////////////////////////////////////////////////////////////////////////////////////////////// -// Copyright (c) 2024, ООО 1С-Софт +// Copyright (c) 2025, ООО 1С-Софт // Все права защищены. Эта программа и сопроводительные материалы предоставляются // в соответствии с условиями лицензии Attribution 4.0 International (CC BY 4.0) // Текст лицензии доступен по ссылке: diff --git a/SSL/src/Catalogs/ЗакладкиВзаимодействий/ManagerModule.bsl b/SSL/src/Catalogs/ЗакладкиВзаимодействий/ManagerModule.bsl index 07d6da6a9..1dcd22320 100644 --- a/SSL/src/Catalogs/ЗакладкиВзаимодействий/ManagerModule.bsl +++ b/SSL/src/Catalogs/ЗакладкиВзаимодействий/ManagerModule.bsl @@ -1,5 +1,5 @@ /////////////////////////////////////////////////////////////////////////////////////////////////////// -// Copyright (c) 2024, ООО 1С-Софт +// Copyright (c) 2025, ООО 1С-Софт // Все права защищены. Эта программа и сопроводительные материалы предоставляются // в соответствии с условиями лицензии Attribution 4.0 International (CC BY 4.0) // Текст лицензии доступен по ссылке: diff --git a/SSL/src/Catalogs/Заметки/Commands/ВсеЗаметки/CommandModule.bsl b/SSL/src/Catalogs/Заметки/Commands/ВсеЗаметки/CommandModule.bsl index 292ecfe7e..03dd6951d 100644 --- a/SSL/src/Catalogs/Заметки/Commands/ВсеЗаметки/CommandModule.bsl +++ b/SSL/src/Catalogs/Заметки/Commands/ВсеЗаметки/CommandModule.bsl @@ -1,5 +1,5 @@ /////////////////////////////////////////////////////////////////////////////////////////////////////// -// Copyright (c) 2024, ООО 1С-Софт +// Copyright (c) 2025, ООО 1С-Софт // Все права защищены. Эта программа и сопроводительные материалы предоставляются // в соответствии с условиями лицензии Attribution 4.0 International (CC BY 4.0) // Текст лицензии доступен по ссылке: diff --git a/SSL/src/Catalogs/Заметки/Forms/ВсеЗаметки/Module.bsl b/SSL/src/Catalogs/Заметки/Forms/ВсеЗаметки/Module.bsl index f4683e56f..b2930ae35 100644 --- a/SSL/src/Catalogs/Заметки/Forms/ВсеЗаметки/Module.bsl +++ b/SSL/src/Catalogs/Заметки/Forms/ВсеЗаметки/Module.bsl @@ -1,5 +1,5 @@ /////////////////////////////////////////////////////////////////////////////////////////////////////// -// Copyright (c) 2024, ООО 1С-Софт +// Copyright (c) 2025, ООО 1С-Софт // Все права защищены. Эта программа и сопроводительные материалы предоставляются // в соответствии с условиями лицензии Attribution 4.0 International (CC BY 4.0) // Текст лицензии доступен по ссылке: diff --git a/SSL/src/Catalogs/Заметки/Forms/ЗаметкиПоПредмету/Module.bsl b/SSL/src/Catalogs/Заметки/Forms/ЗаметкиПоПредмету/Module.bsl index b9c61f90f..5dff5257f 100644 --- a/SSL/src/Catalogs/Заметки/Forms/ЗаметкиПоПредмету/Module.bsl +++ b/SSL/src/Catalogs/Заметки/Forms/ЗаметкиПоПредмету/Module.bsl @@ -1,5 +1,5 @@ /////////////////////////////////////////////////////////////////////////////////////////////////////// -// Copyright (c) 2024, ООО 1С-Софт +// Copyright (c) 2025, ООО 1С-Софт // Все права защищены. Эта программа и сопроводительные материалы предоставляются // в соответствии с условиями лицензии Attribution 4.0 International (CC BY 4.0) // Текст лицензии доступен по ссылке: diff --git a/SSL/src/Catalogs/Заметки/Forms/МоиЗаметки/Module.bsl b/SSL/src/Catalogs/Заметки/Forms/МоиЗаметки/Module.bsl index e8f13c218..7b36af526 100644 --- a/SSL/src/Catalogs/Заметки/Forms/МоиЗаметки/Module.bsl +++ b/SSL/src/Catalogs/Заметки/Forms/МоиЗаметки/Module.bsl @@ -1,5 +1,5 @@ /////////////////////////////////////////////////////////////////////////////////////////////////////// -// Copyright (c) 2024, ООО 1С-Софт +// Copyright (c) 2025, ООО 1С-Софт // Все права защищены. Эта программа и сопроводительные материалы предоставляются // в соответствии с условиями лицензии Attribution 4.0 International (CC BY 4.0) // Текст лицензии доступен по ссылке: @@ -10,7 +10,12 @@ &НаСервере Процедура ПриСозданииНаСервере(Отказ, СтандартнаяОбработка) - + + Если ОбщегоНазначения.РазделениеВключено() И Не ОбщегоНазначения.ДоступноИспользованиеРазделенныхДанных() Тогда + Отказ = Истина; + Возврат; + КонецЕсли; + УстановитьУсловноеОформление(); Список.Параметры.УстановитьЗначениеПараметра("Пользователь", Пользователи.ТекущийПользователь()); diff --git a/SSL/src/Catalogs/Заметки/Forms/ФормаГруппы/Module.bsl b/SSL/src/Catalogs/Заметки/Forms/ФормаГруппы/Module.bsl index 4d4642e72..27fc02b8e 100644 --- a/SSL/src/Catalogs/Заметки/Forms/ФормаГруппы/Module.bsl +++ b/SSL/src/Catalogs/Заметки/Forms/ФормаГруппы/Module.bsl @@ -1,5 +1,5 @@ /////////////////////////////////////////////////////////////////////////////////////////////////////// -// Copyright (c) 2024, ООО 1С-Софт +// Copyright (c) 2025, ООО 1С-Софт // Все права защищены. Эта программа и сопроводительные материалы предоставляются // в соответствии с условиями лицензии Attribution 4.0 International (CC BY 4.0) // Текст лицензии доступен по ссылке: diff --git a/SSL/src/Catalogs/Заметки/Forms/ФормаЭлемента/Module.bsl b/SSL/src/Catalogs/Заметки/Forms/ФормаЭлемента/Module.bsl index bc944862d..8721f6026 100644 --- a/SSL/src/Catalogs/Заметки/Forms/ФормаЭлемента/Module.bsl +++ b/SSL/src/Catalogs/Заметки/Forms/ФормаЭлемента/Module.bsl @@ -1,5 +1,5 @@ /////////////////////////////////////////////////////////////////////////////////////////////////////// -// Copyright (c) 2024, ООО 1С-Софт +// Copyright (c) 2025, ООО 1С-Софт // Все права защищены. Эта программа и сопроводительные материалы предоставляются // в соответствии с условиями лицензии Attribution 4.0 International (CC BY 4.0) // Текст лицензии доступен по ссылке: diff --git a/SSL/src/Catalogs/Заметки/ManagerModule.bsl b/SSL/src/Catalogs/Заметки/ManagerModule.bsl index ec13e5f5d..c2804c835 100644 --- a/SSL/src/Catalogs/Заметки/ManagerModule.bsl +++ b/SSL/src/Catalogs/Заметки/ManagerModule.bsl @@ -1,5 +1,5 @@ /////////////////////////////////////////////////////////////////////////////////////////////////////// -// Copyright (c) 2024, ООО 1С-Софт +// Copyright (c) 2025, ООО 1С-Софт // Все права защищены. Эта программа и сопроводительные материалы предоставляются // в соответствии с условиями лицензии Attribution 4.0 International (CC BY 4.0) // Текст лицензии доступен по ссылке: diff --git a/SSL/src/Catalogs/Заметки/ObjectModule.bsl b/SSL/src/Catalogs/Заметки/ObjectModule.bsl index 12850a466..8ee49af56 100644 --- a/SSL/src/Catalogs/Заметки/ObjectModule.bsl +++ b/SSL/src/Catalogs/Заметки/ObjectModule.bsl @@ -1,5 +1,5 @@ /////////////////////////////////////////////////////////////////////////////////////////////////////// -// Copyright (c) 2024, ООО 1С-Софт +// Copyright (c) 2025, ООО 1С-Софт // Все права защищены. Эта программа и сопроводительные материалы предоставляются // в соответствии с условиями лицензии Attribution 4.0 International (CC BY 4.0) // Текст лицензии доступен по ссылке: diff --git a/SSL/src/Catalogs/ЗапланированноеВзаимодействиеПрисоединенныеФайлы/ManagerModule.bsl b/SSL/src/Catalogs/ЗапланированноеВзаимодействиеПрисоединенныеФайлы/ManagerModule.bsl index d3e48151e..ccf8b6be2 100644 --- a/SSL/src/Catalogs/ЗапланированноеВзаимодействиеПрисоединенныеФайлы/ManagerModule.bsl +++ b/SSL/src/Catalogs/ЗапланированноеВзаимодействиеПрисоединенныеФайлы/ManagerModule.bsl @@ -1,5 +1,5 @@ /////////////////////////////////////////////////////////////////////////////////////////////////////// -// Copyright (c) 2024, ООО 1С-Софт +// Copyright (c) 2025, ООО 1С-Софт // Все права защищены. Эта программа и сопроводительные материалы предоставляются // в соответствии с условиями лицензии Attribution 4.0 International (CC BY 4.0) // Текст лицензии доступен по ссылке: diff --git a/SSL/src/Catalogs/ЗначенияСвойствОбъектов/Forms/ФормаГруппы/Module.bsl b/SSL/src/Catalogs/ЗначенияСвойствОбъектов/Forms/ФормаГруппы/Module.bsl index 3fcbb33ef..2b2ccecac 100644 --- a/SSL/src/Catalogs/ЗначенияСвойствОбъектов/Forms/ФормаГруппы/Module.bsl +++ b/SSL/src/Catalogs/ЗначенияСвойствОбъектов/Forms/ФормаГруппы/Module.bsl @@ -1,5 +1,5 @@ /////////////////////////////////////////////////////////////////////////////////////////////////////// -// Copyright (c) 2024, ООО 1С-Софт +// Copyright (c) 2025, ООО 1С-Софт // Все права защищены. Эта программа и сопроводительные материалы предоставляются // в соответствии с условиями лицензии Attribution 4.0 International (CC BY 4.0) // Текст лицензии доступен по ссылке: diff --git a/SSL/src/Catalogs/ЗначенияСвойствОбъектов/Forms/ФормаСписка/Module.bsl b/SSL/src/Catalogs/ЗначенияСвойствОбъектов/Forms/ФормаСписка/Module.bsl index 701e85848..175b68f1f 100644 --- a/SSL/src/Catalogs/ЗначенияСвойствОбъектов/Forms/ФормаСписка/Module.bsl +++ b/SSL/src/Catalogs/ЗначенияСвойствОбъектов/Forms/ФормаСписка/Module.bsl @@ -1,5 +1,5 @@ /////////////////////////////////////////////////////////////////////////////////////////////////////// -// Copyright (c) 2024, ООО 1С-Софт +// Copyright (c) 2025, ООО 1С-Софт // Все права защищены. Эта программа и сопроводительные материалы предоставляются // в соответствии с условиями лицензии Attribution 4.0 International (CC BY 4.0) // Текст лицензии доступен по ссылке: diff --git a/SSL/src/Catalogs/ЗначенияСвойствОбъектов/Forms/ФормаЭлемента/Module.bsl b/SSL/src/Catalogs/ЗначенияСвойствОбъектов/Forms/ФормаЭлемента/Module.bsl index c8d09667f..87763e6a3 100644 --- a/SSL/src/Catalogs/ЗначенияСвойствОбъектов/Forms/ФормаЭлемента/Module.bsl +++ b/SSL/src/Catalogs/ЗначенияСвойствОбъектов/Forms/ФормаЭлемента/Module.bsl @@ -1,5 +1,5 @@ /////////////////////////////////////////////////////////////////////////////////////////////////////// -// Copyright (c) 2024, ООО 1С-Софт +// Copyright (c) 2025, ООО 1С-Софт // Все права защищены. Эта программа и сопроводительные материалы предоставляются // в соответствии с условиями лицензии Attribution 4.0 International (CC BY 4.0) // Текст лицензии доступен по ссылке: diff --git a/SSL/src/Catalogs/ЗначенияСвойствОбъектов/ManagerModule.bsl b/SSL/src/Catalogs/ЗначенияСвойствОбъектов/ManagerModule.bsl index 112947ab1..2edb5f368 100644 --- a/SSL/src/Catalogs/ЗначенияСвойствОбъектов/ManagerModule.bsl +++ b/SSL/src/Catalogs/ЗначенияСвойствОбъектов/ManagerModule.bsl @@ -1,5 +1,5 @@ /////////////////////////////////////////////////////////////////////////////////////////////////////// -// Copyright (c) 2024, ООО 1С-Софт +// Copyright (c) 2025, ООО 1С-Софт // Все права защищены. Эта программа и сопроводительные материалы предоставляются // в соответствии с условиями лицензии Attribution 4.0 International (CC BY 4.0) // Текст лицензии доступен по ссылке: diff --git a/SSL/src/Catalogs/ЗначенияСвойствОбъектов/ObjectModule.bsl b/SSL/src/Catalogs/ЗначенияСвойствОбъектов/ObjectModule.bsl index 5762e68d0..59af0fd9c 100644 --- a/SSL/src/Catalogs/ЗначенияСвойствОбъектов/ObjectModule.bsl +++ b/SSL/src/Catalogs/ЗначенияСвойствОбъектов/ObjectModule.bsl @@ -1,5 +1,5 @@ /////////////////////////////////////////////////////////////////////////////////////////////////////// -// Copyright (c) 2024, ООО 1С-Софт +// Copyright (c) 2025, ООО 1С-Софт // Все права защищены. Эта программа и сопроводительные материалы предоставляются // в соответствии с условиями лицензии Attribution 4.0 International (CC BY 4.0) // Текст лицензии доступен по ссылке: diff --git a/SSL/src/Catalogs/ЗначенияСвойствОбъектовИерархия/Forms/ФормаСписка/Module.bsl b/SSL/src/Catalogs/ЗначенияСвойствОбъектовИерархия/Forms/ФормаСписка/Module.bsl index c5307c550..66139afc5 100644 --- a/SSL/src/Catalogs/ЗначенияСвойствОбъектовИерархия/Forms/ФормаСписка/Module.bsl +++ b/SSL/src/Catalogs/ЗначенияСвойствОбъектовИерархия/Forms/ФормаСписка/Module.bsl @@ -1,5 +1,5 @@ /////////////////////////////////////////////////////////////////////////////////////////////////////// -// Copyright (c) 2024, ООО 1С-Софт +// Copyright (c) 2025, ООО 1С-Софт // Все права защищены. Эта программа и сопроводительные материалы предоставляются // в соответствии с условиями лицензии Attribution 4.0 International (CC BY 4.0) // Текст лицензии доступен по ссылке: diff --git a/SSL/src/Catalogs/ЗначенияСвойствОбъектовИерархия/Forms/ФормаЭлемента/Module.bsl b/SSL/src/Catalogs/ЗначенияСвойствОбъектовИерархия/Forms/ФормаЭлемента/Module.bsl index ebee8db0a..9b98793a3 100644 --- a/SSL/src/Catalogs/ЗначенияСвойствОбъектовИерархия/Forms/ФормаЭлемента/Module.bsl +++ b/SSL/src/Catalogs/ЗначенияСвойствОбъектовИерархия/Forms/ФормаЭлемента/Module.bsl @@ -1,5 +1,5 @@ /////////////////////////////////////////////////////////////////////////////////////////////////////// -// Copyright (c) 2024, ООО 1С-Софт +// Copyright (c) 2025, ООО 1С-Софт // Все права защищены. Эта программа и сопроводительные материалы предоставляются // в соответствии с условиями лицензии Attribution 4.0 International (CC BY 4.0) // Текст лицензии доступен по ссылке: diff --git a/SSL/src/Catalogs/ЗначенияСвойствОбъектовИерархия/ManagerModule.bsl b/SSL/src/Catalogs/ЗначенияСвойствОбъектовИерархия/ManagerModule.bsl index 5ca0ac031..a756acb43 100644 --- a/SSL/src/Catalogs/ЗначенияСвойствОбъектовИерархия/ManagerModule.bsl +++ b/SSL/src/Catalogs/ЗначенияСвойствОбъектовИерархия/ManagerModule.bsl @@ -1,5 +1,5 @@ /////////////////////////////////////////////////////////////////////////////////////////////////////// -// Copyright (c) 2024, ООО 1С-Софт +// Copyright (c) 2025, ООО 1С-Софт // Все права защищены. Эта программа и сопроводительные материалы предоставляются // в соответствии с условиями лицензии Attribution 4.0 International (CC BY 4.0) // Текст лицензии доступен по ссылке: diff --git a/SSL/src/Catalogs/ЗначенияСвойствОбъектовИерархия/ObjectModule.bsl b/SSL/src/Catalogs/ЗначенияСвойствОбъектовИерархия/ObjectModule.bsl index 5762e68d0..59af0fd9c 100644 --- a/SSL/src/Catalogs/ЗначенияСвойствОбъектовИерархия/ObjectModule.bsl +++ b/SSL/src/Catalogs/ЗначенияСвойствОбъектовИерархия/ObjectModule.bsl @@ -1,5 +1,5 @@ /////////////////////////////////////////////////////////////////////////////////////////////////////// -// Copyright (c) 2024, ООО 1С-Софт +// Copyright (c) 2025, ООО 1С-Софт // Все права защищены. Эта программа и сопроводительные материалы предоставляются // в соответствии с условиями лицензии Attribution 4.0 International (CC BY 4.0) // Текст лицензии доступен по ссылке: diff --git a/SSL/src/Catalogs/ИдентификаторыОбъектовМетаданных/Forms/ФормаСписка/Module.bsl b/SSL/src/Catalogs/ИдентификаторыОбъектовМетаданных/Forms/ФормаСписка/Module.bsl index c85a7959a..e5f861ac9 100644 --- a/SSL/src/Catalogs/ИдентификаторыОбъектовМетаданных/Forms/ФормаСписка/Module.bsl +++ b/SSL/src/Catalogs/ИдентификаторыОбъектовМетаданных/Forms/ФормаСписка/Module.bsl @@ -1,5 +1,5 @@ /////////////////////////////////////////////////////////////////////////////////////////////////////// -// Copyright (c) 2024, ООО 1С-Софт +// Copyright (c) 2025, ООО 1С-Софт // Все права защищены. Эта программа и сопроводительные материалы предоставляются // в соответствии с условиями лицензии Attribution 4.0 International (CC BY 4.0) // Текст лицензии доступен по ссылке: diff --git a/SSL/src/Catalogs/ИдентификаторыОбъектовМетаданных/Forms/ФормаЭлемента/Module.bsl b/SSL/src/Catalogs/ИдентификаторыОбъектовМетаданных/Forms/ФормаЭлемента/Module.bsl index 520c02550..af557f398 100644 --- a/SSL/src/Catalogs/ИдентификаторыОбъектовМетаданных/Forms/ФормаЭлемента/Module.bsl +++ b/SSL/src/Catalogs/ИдентификаторыОбъектовМетаданных/Forms/ФормаЭлемента/Module.bsl @@ -1,5 +1,5 @@ /////////////////////////////////////////////////////////////////////////////////////////////////////// -// Copyright (c) 2024, ООО 1С-Софт +// Copyright (c) 2025, ООО 1С-Софт // Все права защищены. Эта программа и сопроводительные материалы предоставляются // в соответствии с условиями лицензии Attribution 4.0 International (CC BY 4.0) // Текст лицензии доступен по ссылке: diff --git a/SSL/src/Catalogs/ИдентификаторыОбъектовМетаданных/ManagerModule.bsl b/SSL/src/Catalogs/ИдентификаторыОбъектовМетаданных/ManagerModule.bsl index 1ed817402..44f81c803 100644 --- a/SSL/src/Catalogs/ИдентификаторыОбъектовМетаданных/ManagerModule.bsl +++ b/SSL/src/Catalogs/ИдентификаторыОбъектовМетаданных/ManagerModule.bsl @@ -1,5 +1,5 @@ /////////////////////////////////////////////////////////////////////////////////////////////////////// -// Copyright (c) 2024, ООО 1С-Софт +// Copyright (c) 2025, ООО 1С-Софт // Все права защищены. Эта программа и сопроводительные материалы предоставляются // в соответствии с условиями лицензии Attribution 4.0 International (CC BY 4.0) // Текст лицензии доступен по ссылке: diff --git a/SSL/src/Catalogs/ИдентификаторыОбъектовМетаданных/ObjectModule.bsl b/SSL/src/Catalogs/ИдентификаторыОбъектовМетаданных/ObjectModule.bsl index e899d26e9..ca36b13a0 100644 --- a/SSL/src/Catalogs/ИдентификаторыОбъектовМетаданных/ObjectModule.bsl +++ b/SSL/src/Catalogs/ИдентификаторыОбъектовМетаданных/ObjectModule.bsl @@ -1,5 +1,5 @@ /////////////////////////////////////////////////////////////////////////////////////////////////////// -// Copyright (c) 2024, ООО 1С-Софт +// Copyright (c) 2025, ООО 1С-Софт // Все права защищены. Эта программа и сопроводительные материалы предоставляются // в соответствии с условиями лицензии Attribution 4.0 International (CC BY 4.0) // Текст лицензии доступен по ссылке: diff --git a/SSL/src/Catalogs/ИдентификаторыОбъектовМетаданных/ИдентификаторыОбъектовМетаданных.mdo b/SSL/src/Catalogs/ИдентификаторыОбъектовМетаданных/ИдентификаторыОбъектовМетаданных.mdo index aa5d6229f..2689b2e22 100644 --- a/SSL/src/Catalogs/ИдентификаторыОбъектовМетаданных/ИдентификаторыОбъектовМетаданных.mdo +++ b/SSL/src/Catalogs/ИдентификаторыОбъектовМетаданных/ИдентификаторыОбъектовМетаданных.mdo @@ -1289,6 +1289,12 @@ + + РегистрСведенийЗаявленияНаВыпускСертификата + + + + DontAutoUpdate InDialog diff --git a/SSL/src/Catalogs/ИдентификаторыОбъектовРасширений/Forms/ФормаСписка/Module.bsl b/SSL/src/Catalogs/ИдентификаторыОбъектовРасширений/Forms/ФормаСписка/Module.bsl index c85a7959a..e5f861ac9 100644 --- a/SSL/src/Catalogs/ИдентификаторыОбъектовРасширений/Forms/ФормаСписка/Module.bsl +++ b/SSL/src/Catalogs/ИдентификаторыОбъектовРасширений/Forms/ФормаСписка/Module.bsl @@ -1,5 +1,5 @@ /////////////////////////////////////////////////////////////////////////////////////////////////////// -// Copyright (c) 2024, ООО 1С-Софт +// Copyright (c) 2025, ООО 1С-Софт // Все права защищены. Эта программа и сопроводительные материалы предоставляются // в соответствии с условиями лицензии Attribution 4.0 International (CC BY 4.0) // Текст лицензии доступен по ссылке: diff --git a/SSL/src/Catalogs/ИдентификаторыОбъектовРасширений/Forms/ФормаЭлемента/Module.bsl b/SSL/src/Catalogs/ИдентификаторыОбъектовРасширений/Forms/ФормаЭлемента/Module.bsl index 520c02550..af557f398 100644 --- a/SSL/src/Catalogs/ИдентификаторыОбъектовРасширений/Forms/ФормаЭлемента/Module.bsl +++ b/SSL/src/Catalogs/ИдентификаторыОбъектовРасширений/Forms/ФормаЭлемента/Module.bsl @@ -1,5 +1,5 @@ /////////////////////////////////////////////////////////////////////////////////////////////////////// -// Copyright (c) 2024, ООО 1С-Софт +// Copyright (c) 2025, ООО 1С-Софт // Все права защищены. Эта программа и сопроводительные материалы предоставляются // в соответствии с условиями лицензии Attribution 4.0 International (CC BY 4.0) // Текст лицензии доступен по ссылке: diff --git a/SSL/src/Catalogs/ИдентификаторыОбъектовРасширений/ManagerModule.bsl b/SSL/src/Catalogs/ИдентификаторыОбъектовРасширений/ManagerModule.bsl index 1b71fa1e2..ac618bf74 100644 --- a/SSL/src/Catalogs/ИдентификаторыОбъектовРасширений/ManagerModule.bsl +++ b/SSL/src/Catalogs/ИдентификаторыОбъектовРасширений/ManagerModule.bsl @@ -1,5 +1,5 @@ /////////////////////////////////////////////////////////////////////////////////////////////////////// -// Copyright (c) 2024, ООО 1С-Софт +// Copyright (c) 2025, ООО 1С-Софт // Все права защищены. Эта программа и сопроводительные материалы предоставляются // в соответствии с условиями лицензии Attribution 4.0 International (CC BY 4.0) // Текст лицензии доступен по ссылке: diff --git a/SSL/src/Catalogs/ИдентификаторыОбъектовРасширений/ObjectModule.bsl b/SSL/src/Catalogs/ИдентификаторыОбъектовРасширений/ObjectModule.bsl index e899d26e9..ca36b13a0 100644 --- a/SSL/src/Catalogs/ИдентификаторыОбъектовРасширений/ObjectModule.bsl +++ b/SSL/src/Catalogs/ИдентификаторыОбъектовРасширений/ObjectModule.bsl @@ -1,5 +1,5 @@ /////////////////////////////////////////////////////////////////////////////////////////////////////// -// Copyright (c) 2024, ООО 1С-Софт +// Copyright (c) 2025, ООО 1С-Софт // Все права защищены. Эта программа и сопроводительные материалы предоставляются // в соответствии с условиями лицензии Attribution 4.0 International (CC BY 4.0) // Текст лицензии доступен по ссылке: diff --git a/SSL/src/Catalogs/Календари/Forms/РасписаниеРаботы/Module.bsl b/SSL/src/Catalogs/Календари/Forms/РасписаниеРаботы/Module.bsl index 273d6d5da..b63f38a5d 100644 --- a/SSL/src/Catalogs/Календари/Forms/РасписаниеРаботы/Module.bsl +++ b/SSL/src/Catalogs/Календари/Forms/РасписаниеРаботы/Module.bsl @@ -1,5 +1,5 @@ /////////////////////////////////////////////////////////////////////////////////////////////////////// -// Copyright (c) 2024, ООО 1С-Софт +// Copyright (c) 2025, ООО 1С-Софт // Все права защищены. Эта программа и сопроводительные материалы предоставляются // в соответствии с условиями лицензии Attribution 4.0 International (CC BY 4.0) // Текст лицензии доступен по ссылке: diff --git a/SSL/src/Catalogs/Календари/Forms/ФормаСписка/Module.bsl b/SSL/src/Catalogs/Календари/Forms/ФормаСписка/Module.bsl index e54e881a1..4623e19dd 100644 --- a/SSL/src/Catalogs/Календари/Forms/ФормаСписка/Module.bsl +++ b/SSL/src/Catalogs/Календари/Forms/ФормаСписка/Module.bsl @@ -1,5 +1,5 @@ /////////////////////////////////////////////////////////////////////////////////////////////////////// -// Copyright (c) 2024, ООО 1С-Софт +// Copyright (c) 2025, ООО 1С-Софт // Все права защищены. Эта программа и сопроводительные материалы предоставляются // в соответствии с условиями лицензии Attribution 4.0 International (CC BY 4.0) // Текст лицензии доступен по ссылке: diff --git a/SSL/src/Catalogs/Календари/Forms/ФормаЭлемента/Module.bsl b/SSL/src/Catalogs/Календари/Forms/ФормаЭлемента/Module.bsl index a6b1bf3a6..cf260d140 100644 --- a/SSL/src/Catalogs/Календари/Forms/ФормаЭлемента/Module.bsl +++ b/SSL/src/Catalogs/Календари/Forms/ФормаЭлемента/Module.bsl @@ -1,5 +1,5 @@ /////////////////////////////////////////////////////////////////////////////////////////////////////// -// Copyright (c) 2024, ООО 1С-Софт +// Copyright (c) 2025, ООО 1С-Софт // Все права защищены. Эта программа и сопроводительные материалы предоставляются // в соответствии с условиями лицензии Attribution 4.0 International (CC BY 4.0) // Текст лицензии доступен по ссылке: diff --git a/SSL/src/Catalogs/Календари/ManagerModule.bsl b/SSL/src/Catalogs/Календари/ManagerModule.bsl index 8d3e8e965..c423a4eea 100644 --- a/SSL/src/Catalogs/Календари/ManagerModule.bsl +++ b/SSL/src/Catalogs/Календари/ManagerModule.bsl @@ -1,5 +1,5 @@ /////////////////////////////////////////////////////////////////////////////////////////////////////// -// Copyright (c) 2024, ООО 1С-Софт +// Copyright (c) 2025, ООО 1С-Софт // Все права защищены. Эта программа и сопроводительные материалы предоставляются // в соответствии с условиями лицензии Attribution 4.0 International (CC BY 4.0) // Текст лицензии доступен по ссылке: diff --git a/SSL/src/Catalogs/Календари/ObjectModule.bsl b/SSL/src/Catalogs/Календари/ObjectModule.bsl index 2748716a5..9800ebf7a 100644 --- a/SSL/src/Catalogs/Календари/ObjectModule.bsl +++ b/SSL/src/Catalogs/Календари/ObjectModule.bsl @@ -1,5 +1,5 @@ /////////////////////////////////////////////////////////////////////////////////////////////////////// -// Copyright (c) 2024, ООО 1С-Софт +// Copyright (c) 2025, ООО 1С-Софт // Все права защищены. Эта программа и сопроводительные материалы предоставляются // в соответствии с условиями лицензии Attribution 4.0 International (CC BY 4.0) // Текст лицензии доступен по ссылке: diff --git a/SSL/src/Catalogs/КлассификаторБанков/Forms/ФормаВыбора/Module.bsl b/SSL/src/Catalogs/КлассификаторБанков/Forms/ФормаВыбора/Module.bsl index 8f8688878..bcf3f5af8 100644 --- a/SSL/src/Catalogs/КлассификаторБанков/Forms/ФормаВыбора/Module.bsl +++ b/SSL/src/Catalogs/КлассификаторБанков/Forms/ФормаВыбора/Module.bsl @@ -1,5 +1,5 @@ /////////////////////////////////////////////////////////////////////////////////////////////////////// -// Copyright (c) 2024, ООО 1С-Софт +// Copyright (c) 2025, ООО 1С-Софт // Все права защищены. Эта программа и сопроводительные материалы предоставляются // в соответствии с условиями лицензии Attribution 4.0 International (CC BY 4.0) // Текст лицензии доступен по ссылке: diff --git a/SSL/src/Catalogs/КлассификаторБанков/Forms/ФормаСписка/Module.bsl b/SSL/src/Catalogs/КлассификаторБанков/Forms/ФормаСписка/Module.bsl index f09b2edd6..f427fb8b2 100644 --- a/SSL/src/Catalogs/КлассификаторБанков/Forms/ФормаСписка/Module.bsl +++ b/SSL/src/Catalogs/КлассификаторБанков/Forms/ФормаСписка/Module.bsl @@ -1,5 +1,5 @@ /////////////////////////////////////////////////////////////////////////////////////////////////////// -// Copyright (c) 2024, ООО 1С-Софт +// Copyright (c) 2025, ООО 1С-Софт // Все права защищены. Эта программа и сопроводительные материалы предоставляются // в соответствии с условиями лицензии Attribution 4.0 International (CC BY 4.0) // Текст лицензии доступен по ссылке: diff --git a/SSL/src/Catalogs/КлассификаторБанков/Forms/ФормаЭлемента/Module.bsl b/SSL/src/Catalogs/КлассификаторБанков/Forms/ФормаЭлемента/Module.bsl index 384669e8f..e92532634 100644 --- a/SSL/src/Catalogs/КлассификаторБанков/Forms/ФормаЭлемента/Module.bsl +++ b/SSL/src/Catalogs/КлассификаторБанков/Forms/ФормаЭлемента/Module.bsl @@ -1,5 +1,5 @@ /////////////////////////////////////////////////////////////////////////////////////////////////////// -// Copyright (c) 2024, ООО 1С-Софт +// Copyright (c) 2025, ООО 1С-Софт // Все права защищены. Эта программа и сопроводительные материалы предоставляются // в соответствии с условиями лицензии Attribution 4.0 International (CC BY 4.0) // Текст лицензии доступен по ссылке: diff --git a/SSL/src/Catalogs/КлассификаторБанков/ManagerModule.bsl b/SSL/src/Catalogs/КлассификаторБанков/ManagerModule.bsl index bb3ade81b..91569b084 100644 --- a/SSL/src/Catalogs/КлассификаторБанков/ManagerModule.bsl +++ b/SSL/src/Catalogs/КлассификаторБанков/ManagerModule.bsl @@ -1,5 +1,5 @@ /////////////////////////////////////////////////////////////////////////////////////////////////////// -// Copyright (c) 2024, ООО 1С-Софт +// Copyright (c) 2025, ООО 1С-Софт // Все права защищены. Эта программа и сопроводительные материалы предоставляются // в соответствии с условиями лицензии Attribution 4.0 International (CC BY 4.0) // Текст лицензии доступен по ссылке: diff --git a/SSL/src/Catalogs/КлючевыеОперации/Forms/ФормаВыбора/Module.bsl b/SSL/src/Catalogs/КлючевыеОперации/Forms/ФормаВыбора/Module.bsl index 247ed35a8..0d3e8f50e 100644 --- a/SSL/src/Catalogs/КлючевыеОперации/Forms/ФормаВыбора/Module.bsl +++ b/SSL/src/Catalogs/КлючевыеОперации/Forms/ФормаВыбора/Module.bsl @@ -1,5 +1,5 @@ /////////////////////////////////////////////////////////////////////////////////////////////////////// -// Copyright (c) 2024, ООО 1С-Софт +// Copyright (c) 2025, ООО 1С-Софт // Все права защищены. Эта программа и сопроводительные материалы предоставляются // в соответствии с условиями лицензии Attribution 4.0 International (CC BY 4.0) // Текст лицензии доступен по ссылке: diff --git a/SSL/src/Catalogs/КлючевыеОперации/Forms/ФормаСписка/Module.bsl b/SSL/src/Catalogs/КлючевыеОперации/Forms/ФормаСписка/Module.bsl index fc4a28dd4..199298f56 100644 --- a/SSL/src/Catalogs/КлючевыеОперации/Forms/ФормаСписка/Module.bsl +++ b/SSL/src/Catalogs/КлючевыеОперации/Forms/ФормаСписка/Module.bsl @@ -1,5 +1,5 @@ /////////////////////////////////////////////////////////////////////////////////////////////////////// -// Copyright (c) 2024, ООО 1С-Софт +// Copyright (c) 2025, ООО 1С-Софт // Все права защищены. Эта программа и сопроводительные материалы предоставляются // в соответствии с условиями лицензии Attribution 4.0 International (CC BY 4.0) // Текст лицензии доступен по ссылке: diff --git a/SSL/src/Catalogs/КлючевыеОперации/Forms/ФормаЭлемента/Module.bsl b/SSL/src/Catalogs/КлючевыеОперации/Forms/ФормаЭлемента/Module.bsl index 07dbbd17e..ba65a03ec 100644 --- a/SSL/src/Catalogs/КлючевыеОперации/Forms/ФормаЭлемента/Module.bsl +++ b/SSL/src/Catalogs/КлючевыеОперации/Forms/ФормаЭлемента/Module.bsl @@ -1,5 +1,5 @@ /////////////////////////////////////////////////////////////////////////////////////////////////////// -// Copyright (c) 2024, ООО 1С-Софт +// Copyright (c) 2025, ООО 1С-Софт // Все права защищены. Эта программа и сопроводительные материалы предоставляются // в соответствии с условиями лицензии Attribution 4.0 International (CC BY 4.0) // Текст лицензии доступен по ссылке: diff --git a/SSL/src/Catalogs/КлючевыеОперации/ObjectModule.bsl b/SSL/src/Catalogs/КлючевыеОперации/ObjectModule.bsl index 770b1724c..919adbdbd 100644 --- a/SSL/src/Catalogs/КлючевыеОперации/ObjectModule.bsl +++ b/SSL/src/Catalogs/КлючевыеОперации/ObjectModule.bsl @@ -1,5 +1,5 @@ /////////////////////////////////////////////////////////////////////////////////////////////////////// -// Copyright (c) 2024, ООО 1С-Софт +// Copyright (c) 2025, ООО 1С-Софт // Все права защищены. Эта программа и сопроводительные материалы предоставляются // в соответствии с условиями лицензии Attribution 4.0 International (CC BY 4.0) // Текст лицензии доступен по ссылке: diff --git a/SSL/src/Catalogs/КлючиДоступа/Forms/ФормаСписка/Module.bsl b/SSL/src/Catalogs/КлючиДоступа/Forms/ФормаСписка/Module.bsl index 1cff45e55..c27763883 100644 --- a/SSL/src/Catalogs/КлючиДоступа/Forms/ФормаСписка/Module.bsl +++ b/SSL/src/Catalogs/КлючиДоступа/Forms/ФормаСписка/Module.bsl @@ -1,5 +1,5 @@ /////////////////////////////////////////////////////////////////////////////////////////////////////// -// Copyright (c) 2024, ООО 1С-Софт +// Copyright (c) 2025, ООО 1С-Софт // Все права защищены. Эта программа и сопроводительные материалы предоставляются // в соответствии с условиями лицензии Attribution 4.0 International (CC BY 4.0) // Текст лицензии доступен по ссылке: diff --git a/SSL/src/Catalogs/КлючиДоступа/Forms/ФормаЭлемента/Module.bsl b/SSL/src/Catalogs/КлючиДоступа/Forms/ФормаЭлемента/Module.bsl index c0c7d8926..4aea159a6 100644 --- a/SSL/src/Catalogs/КлючиДоступа/Forms/ФормаЭлемента/Module.bsl +++ b/SSL/src/Catalogs/КлючиДоступа/Forms/ФормаЭлемента/Module.bsl @@ -1,5 +1,5 @@ /////////////////////////////////////////////////////////////////////////////////////////////////////// -// Copyright (c) 2024, ООО 1С-Софт +// Copyright (c) 2025, ООО 1С-Софт // Все права защищены. Эта программа и сопроводительные материалы предоставляются // в соответствии с условиями лицензии Attribution 4.0 International (CC BY 4.0) // Текст лицензии доступен по ссылке: diff --git a/SSL/src/Catalogs/МакетыПечатныхФорм/Forms/НастройкиМакета/Module.bsl b/SSL/src/Catalogs/МакетыПечатныхФорм/Forms/НастройкиМакета/Module.bsl index 4a4799507..5bfb8a792 100644 --- a/SSL/src/Catalogs/МакетыПечатныхФорм/Forms/НастройкиМакета/Module.bsl +++ b/SSL/src/Catalogs/МакетыПечатныхФорм/Forms/НастройкиМакета/Module.bsl @@ -1,5 +1,5 @@ /////////////////////////////////////////////////////////////////////////////////////////////////////// -// Copyright (c) 2024, ООО 1С-Софт +// Copyright (c) 2025, ООО 1С-Софт // Все права защищены. Эта программа и сопроводительные материалы предоставляются // в соответствии с условиями лицензии Attribution 4.0 International (CC BY 4.0) // Текст лицензии доступен по ссылке: diff --git a/SSL/src/Catalogs/МакетыПечатныхФорм/Forms/УсловияВидимостиВПодменюПечать/Module.bsl b/SSL/src/Catalogs/МакетыПечатныхФорм/Forms/УсловияВидимостиВПодменюПечать/Module.bsl index b53ba4780..8e8ab2507 100644 --- a/SSL/src/Catalogs/МакетыПечатныхФорм/Forms/УсловияВидимостиВПодменюПечать/Module.bsl +++ b/SSL/src/Catalogs/МакетыПечатныхФорм/Forms/УсловияВидимостиВПодменюПечать/Module.bsl @@ -1,5 +1,5 @@ /////////////////////////////////////////////////////////////////////////////////////////////////////// -// Copyright (c) 2024, ООО 1С-Софт +// Copyright (c) 2025, ООО 1С-Софт // Все права защищены. Эта программа и сопроводительные материалы предоставляются // в соответствии с условиями лицензии Attribution 4.0 International (CC BY 4.0) // Текст лицензии доступен по ссылке: diff --git a/SSL/src/Catalogs/МакетыПечатныхФорм/ManagerModule.bsl b/SSL/src/Catalogs/МакетыПечатныхФорм/ManagerModule.bsl index b7b05380d..4c43e80a5 100644 --- a/SSL/src/Catalogs/МакетыПечатныхФорм/ManagerModule.bsl +++ b/SSL/src/Catalogs/МакетыПечатныхФорм/ManagerModule.bsl @@ -1,5 +1,5 @@ /////////////////////////////////////////////////////////////////////////////////////////////////////// -// Copyright (c) 2024, ООО 1С-Софт +// Copyright (c) 2025, ООО 1С-Софт // Все права защищены. Эта программа и сопроводительные материалы предоставляются // в соответствии с условиями лицензии Attribution 4.0 International (CC BY 4.0) // Текст лицензии доступен по ссылке: @@ -100,9 +100,7 @@ Выборка = Запрос.Выполнить().Выбрать(); Пока Выборка.Следующий() Цикл - Если Выборка.Макет.Получить() <> Неопределено Тогда - Результат.Добавить(Выборка.КодЯзыка); - КонецЕсли; + Результат.Добавить(Выборка.КодЯзыка); КонецЦикла; Возврат Результат; @@ -470,7 +468,10 @@ Если КодЯзыка = Неопределено Или КодЯзыка = ОбщегоНазначения.КодОсновногоЯзыка() Тогда Объект.УстановитьПометкуУдаления(Истина); Иначе - ОбщегоНазначения.УстановитьЗначениеРеквизита(Объект, "Макет", Новый ХранилищеЗначения(Неопределено), КодЯзыка); + СтрокиМакета = Объект.Представления.НайтиСтроки(Новый Структура("КодЯзыка", КодЯзыка)); + Для Каждого СтрокаМакета Из СтрокиМакета Цикл + Объект.Представления.Удалить(СтрокаМакета); + КонецЦикла; КонецЕсли; Блокировка = Новый БлокировкаДанных; diff --git a/SSL/src/Catalogs/МакетыПечатныхФорм/ObjectModule.bsl b/SSL/src/Catalogs/МакетыПечатныхФорм/ObjectModule.bsl index abcb23a1c..472ac1574 100644 --- a/SSL/src/Catalogs/МакетыПечатныхФорм/ObjectModule.bsl +++ b/SSL/src/Catalogs/МакетыПечатныхФорм/ObjectModule.bsl @@ -1,5 +1,5 @@ /////////////////////////////////////////////////////////////////////////////////////////////////////// -// Copyright (c) 2024, ООО 1С-Софт +// Copyright (c) 2025, ООО 1С-Софт // Все права защищены. Эта программа и сопроводительные материалы предоставляются // в соответствии с условиями лицензии Attribution 4.0 International (CC BY 4.0) // Текст лицензии доступен по ссылке: diff --git a/SSL/src/Catalogs/МашиночитаемыеДоверенности/Commands/Отменить/CommandModule.bsl b/SSL/src/Catalogs/МашиночитаемыеДоверенности/Commands/Отменить/CommandModule.bsl index cbc861b8c..44dd9cf0d 100644 --- a/SSL/src/Catalogs/МашиночитаемыеДоверенности/Commands/Отменить/CommandModule.bsl +++ b/SSL/src/Catalogs/МашиночитаемыеДоверенности/Commands/Отменить/CommandModule.bsl @@ -1,5 +1,5 @@ /////////////////////////////////////////////////////////////////////////////////////////////////////// -// Copyright (c) 2024, ООО 1С-Софт +// Copyright (c) 2025, ООО 1С-Софт // Все права защищены. Эта программа и сопроводительные материалы предоставляются // в соответствии с условиями лицензии Attribution 4.0 International (CC BY 4.0) // Текст лицензии доступен по ссылке: diff --git a/SSL/src/Catalogs/МашиночитаемыеДоверенности/Forms/ВыборЗначенияОграничения/Module.bsl b/SSL/src/Catalogs/МашиночитаемыеДоверенности/Forms/ВыборЗначенияОграничения/Module.bsl index 7a0be85b4..6384821c0 100644 --- a/SSL/src/Catalogs/МашиночитаемыеДоверенности/Forms/ВыборЗначенияОграничения/Module.bsl +++ b/SSL/src/Catalogs/МашиночитаемыеДоверенности/Forms/ВыборЗначенияОграничения/Module.bsl @@ -1,5 +1,5 @@ /////////////////////////////////////////////////////////////////////////////////////////////////////// -// Copyright (c) 2024, ООО 1С-Софт +// Copyright (c) 2025, ООО 1С-Софт // Все права защищены. Эта программа и сопроводительные материалы предоставляются // в соответствии с условиями лицензии Attribution 4.0 International (CC BY 4.0) // Текст лицензии доступен по ссылке: diff --git a/SSL/src/Catalogs/МашиночитаемыеДоверенности/Forms/ВыборОграниченийПолномочий/Module.bsl b/SSL/src/Catalogs/МашиночитаемыеДоверенности/Forms/ВыборОграниченийПолномочий/Module.bsl index 77d4732c8..e582f72d4 100644 --- a/SSL/src/Catalogs/МашиночитаемыеДоверенности/Forms/ВыборОграниченийПолномочий/Module.bsl +++ b/SSL/src/Catalogs/МашиночитаемыеДоверенности/Forms/ВыборОграниченийПолномочий/Module.bsl @@ -1,5 +1,5 @@ /////////////////////////////////////////////////////////////////////////////////////////////////////// -// Copyright (c) 2024, ООО 1С-Софт +// Copyright (c) 2025, ООО 1С-Софт // Все права защищены. Эта программа и сопроводительные материалы предоставляются // в соответствии с условиями лицензии Attribution 4.0 International (CC BY 4.0) // Текст лицензии доступен по ссылке: diff --git a/SSL/src/Catalogs/МашиночитаемыеДоверенности/Forms/Квитанции/Module.bsl b/SSL/src/Catalogs/МашиночитаемыеДоверенности/Forms/Квитанции/Module.bsl index b5a85c87e..772eaf698 100644 --- a/SSL/src/Catalogs/МашиночитаемыеДоверенности/Forms/Квитанции/Module.bsl +++ b/SSL/src/Catalogs/МашиночитаемыеДоверенности/Forms/Квитанции/Module.bsl @@ -1,5 +1,5 @@ /////////////////////////////////////////////////////////////////////////////////////////////////////// -// Copyright (c) 2024, ООО 1С-Софт +// Copyright (c) 2025, ООО 1С-Софт // Все права защищены. Эта программа и сопроводительные материалы предоставляются // в соответствии с условиями лицензии Attribution 4.0 International (CC BY 4.0) // Текст лицензии доступен по ссылке: diff --git a/SSL/src/Catalogs/МашиночитаемыеДоверенности/Forms/НастройкиПолномочий/Module.bsl b/SSL/src/Catalogs/МашиночитаемыеДоверенности/Forms/НастройкиПолномочий/Module.bsl index 139bc30fa..da15625e3 100644 --- a/SSL/src/Catalogs/МашиночитаемыеДоверенности/Forms/НастройкиПолномочий/Module.bsl +++ b/SSL/src/Catalogs/МашиночитаемыеДоверенности/Forms/НастройкиПолномочий/Module.bsl @@ -1,5 +1,5 @@ /////////////////////////////////////////////////////////////////////////////////////////////////////// -// Copyright (c) 2024, ООО 1С-Софт +// Copyright (c) 2025, ООО 1С-Софт // Все права защищены. Эта программа и сопроводительные материалы предоставляются // в соответствии с условиями лицензии Attribution 4.0 International (CC BY 4.0) // Текст лицензии доступен по ссылке: diff --git a/SSL/src/Catalogs/МашиночитаемыеДоверенности/Forms/ОтменаДоверенности/Module.bsl b/SSL/src/Catalogs/МашиночитаемыеДоверенности/Forms/ОтменаДоверенности/Module.bsl index 996558ff3..fc45ef2d4 100644 --- a/SSL/src/Catalogs/МашиночитаемыеДоверенности/Forms/ОтменаДоверенности/Module.bsl +++ b/SSL/src/Catalogs/МашиночитаемыеДоверенности/Forms/ОтменаДоверенности/Module.bsl @@ -1,5 +1,5 @@ /////////////////////////////////////////////////////////////////////////////////////////////////////// -// Copyright (c) 2024, ООО 1С-Софт +// Copyright (c) 2025, ООО 1С-Софт // Все права защищены. Эта программа и сопроводительные материалы предоставляются // в соответствии с условиями лицензии Attribution 4.0 International (CC BY 4.0) // Текст лицензии доступен по ссылке: diff --git a/SSL/src/Catalogs/МашиночитаемыеДоверенности/Forms/СведенияОФизическомЛице/Module.bsl b/SSL/src/Catalogs/МашиночитаемыеДоверенности/Forms/СведенияОФизическомЛице/Module.bsl index b37925267..9b342bce3 100644 --- a/SSL/src/Catalogs/МашиночитаемыеДоверенности/Forms/СведенияОФизическомЛице/Module.bsl +++ b/SSL/src/Catalogs/МашиночитаемыеДоверенности/Forms/СведенияОФизическомЛице/Module.bsl @@ -1,5 +1,5 @@ /////////////////////////////////////////////////////////////////////////////////////////////////////// -// Copyright (c) 2024, ООО 1С-Софт +// Copyright (c) 2025, ООО 1С-Софт // Все права защищены. Эта программа и сопроводительные материалы предоставляются // в соответствии с условиями лицензии Attribution 4.0 International (CC BY 4.0) // Текст лицензии доступен по ссылке: diff --git a/SSL/src/Catalogs/МашиночитаемыеДоверенности/Forms/СведенияОбОрганизации/Module.bsl b/SSL/src/Catalogs/МашиночитаемыеДоверенности/Forms/СведенияОбОрганизации/Module.bsl index 0172aaa09..160e51b0d 100644 --- a/SSL/src/Catalogs/МашиночитаемыеДоверенности/Forms/СведенияОбОрганизации/Module.bsl +++ b/SSL/src/Catalogs/МашиночитаемыеДоверенности/Forms/СведенияОбОрганизации/Module.bsl @@ -1,5 +1,5 @@ /////////////////////////////////////////////////////////////////////////////////////////////////////// -// Copyright (c) 2024, ООО 1С-Софт +// Copyright (c) 2025, ООО 1С-Софт // Все права защищены. Эта программа и сопроводительные материалы предоставляются // в соответствии с условиями лицензии Attribution 4.0 International (CC BY 4.0) // Текст лицензии доступен по ссылке: diff --git a/SSL/src/Catalogs/МашиночитаемыеДоверенности/Forms/ФормаВводаНалоговыхОрганов/Module.bsl b/SSL/src/Catalogs/МашиночитаемыеДоверенности/Forms/ФормаВводаНалоговыхОрганов/Module.bsl index c7a190a68..087d1431d 100644 --- a/SSL/src/Catalogs/МашиночитаемыеДоверенности/Forms/ФормаВводаНалоговыхОрганов/Module.bsl +++ b/SSL/src/Catalogs/МашиночитаемыеДоверенности/Forms/ФормаВводаНалоговыхОрганов/Module.bsl @@ -1,5 +1,5 @@ /////////////////////////////////////////////////////////////////////////////////////////////////////// -// Copyright (c) 2024, ООО 1С-Софт +// Copyright (c) 2025, ООО 1С-Софт // Все права защищены. Эта программа и сопроводительные материалы предоставляются // в соответствии с условиями лицензии Attribution 4.0 International (CC BY 4.0) // Текст лицензии доступен по ссылке: diff --git a/SSL/src/Catalogs/МашиночитаемыеДоверенности/Forms/ФормаВводаПолномочий/Module.bsl b/SSL/src/Catalogs/МашиночитаемыеДоверенности/Forms/ФормаВводаПолномочий/Module.bsl index e4552f450..052181f74 100644 --- a/SSL/src/Catalogs/МашиночитаемыеДоверенности/Forms/ФормаВводаПолномочий/Module.bsl +++ b/SSL/src/Catalogs/МашиночитаемыеДоверенности/Forms/ФормаВводаПолномочий/Module.bsl @@ -1,10 +1,11 @@ /////////////////////////////////////////////////////////////////////////////////////////////////////// -// Copyright (c) 2024, ООО 1С-Софт +// Copyright (c) 2025, ООО 1С-Софт // Все права защищены. Эта программа и сопроводительные материалы предоставляются // в соответствии с условиями лицензии Attribution 4.0 International (CC BY 4.0) // Текст лицензии доступен по ссылке: // https://creativecommons.org/licenses/by/4.0/legalcode /////////////////////////////////////////////////////////////////////////////////////////////////////// + #Область ОбработчикиСобытийФормы &НаСервере diff --git a/SSL/src/Catalogs/МашиночитаемыеДоверенности/Forms/ФормаПолученияДоверенностиИзРеестра/Module.bsl b/SSL/src/Catalogs/МашиночитаемыеДоверенности/Forms/ФормаПолученияДоверенностиИзРеестра/Module.bsl index b6de2617b..349eaa966 100644 --- a/SSL/src/Catalogs/МашиночитаемыеДоверенности/Forms/ФормаПолученияДоверенностиИзРеестра/Module.bsl +++ b/SSL/src/Catalogs/МашиночитаемыеДоверенности/Forms/ФормаПолученияДоверенностиИзРеестра/Module.bsl @@ -1,5 +1,5 @@ /////////////////////////////////////////////////////////////////////////////////////////////////////// -// Copyright (c) 2024, ООО 1С-Софт +// Copyright (c) 2025, ООО 1С-Софт // Все права защищены. Эта программа и сопроводительные материалы предоставляются // в соответствии с условиями лицензии Attribution 4.0 International (CC BY 4.0) // Текст лицензии доступен по ссылке: diff --git a/SSL/src/Catalogs/МашиночитаемыеДоверенности/Forms/ФормаСписка/Form.form b/SSL/src/Catalogs/МашиночитаемыеДоверенности/Forms/ФормаСписка/Form.form index e334d0a42..444e32bd4 100644 --- a/SSL/src/Catalogs/МашиночитаемыеДоверенности/Forms/ФормаСписка/Form.form +++ b/SSL/src/Catalogs/МашиночитаемыеДоверенности/Forms/ФормаСписка/Form.form @@ -3614,6 +3614,19 @@ true + + ЕстьПравоИзменения + 19 + + Boolean + + + true + + + true + + ЗагрузитьИзФайла diff --git a/SSL/src/Catalogs/МашиночитаемыеДоверенности/Forms/ФормаСписка/Module.bsl b/SSL/src/Catalogs/МашиночитаемыеДоверенности/Forms/ФормаСписка/Module.bsl index 9b8c467b8..e7437c59a 100644 --- a/SSL/src/Catalogs/МашиночитаемыеДоверенности/Forms/ФормаСписка/Module.bsl +++ b/SSL/src/Catalogs/МашиночитаемыеДоверенности/Forms/ФормаСписка/Module.bsl @@ -1,5 +1,5 @@ /////////////////////////////////////////////////////////////////////////////////////////////////////// -// Copyright (c) 2024, ООО 1С-Софт +// Copyright (c) 2025, ООО 1С-Софт // Все права защищены. Эта программа и сопроводительные материалы предоставляются // в соответствии с условиями лицензии Attribution 4.0 International (CC BY 4.0) // Текст лицензии доступен по ссылке: @@ -73,7 +73,9 @@ Элементы.СписокЗагрузитьИзФайла.Видимость = ЕстьПравоДобавления; Элементы.СписокЗагрузитьИзРеестраФНС.Видимость = ЕстьПравоДобавления; - Элементы.СписокПолучитьСтатус.Видимость = ПравоДоступа("Изменение", Метаданные.Справочники.МашиночитаемыеДоверенности); + + ЕстьПравоИзменения = ПравоДоступа("Изменение", Метаданные.Справочники.МашиночитаемыеДоверенности); + Элементы.СписокПолучитьСтатус.Видимость = ЕстьПравоИзменения; Настройки = МашиночитаемыеДоверенностиФНССлужебный.НастройкиПодсистемы(); @@ -422,8 +424,13 @@ &НаКлиенте Процедура ВыгрузитьВФайл(Команда) - МашиночитаемыеДоверенностиФНССлужебныйКлиент.ВыгрузитьДоверенностиВФайлы(Элементы.Список.ВыделенныеСтроки); -КонецПроцедуры + + ПроверятьДоступностьПерсональныхДанных = Не ПользователиКлиент.ЭтоПолноправныйПользователь() + И Не ЕстьПравоИзменения; + МашиночитаемыеДоверенностиФНССлужебныйКлиент.ВыгрузитьДоверенностиВФайлы(Элементы.Список.ВыделенныеСтроки, + ПроверятьДоступностьПерсональныхДанных); + +КонецПроцедуры &НаКлиенте Процедура ЗагрузитьИзФайла(Команда) diff --git a/SSL/src/Catalogs/МашиночитаемыеДоверенности/Forms/ФормаЭлемента/Form.form b/SSL/src/Catalogs/МашиночитаемыеДоверенности/Forms/ФормаЭлемента/Form.form index 6ba1d0f71..a82bdaf9d 100644 --- a/SSL/src/Catalogs/МашиночитаемыеДоверенности/Forms/ФормаЭлемента/Form.form +++ b/SSL/src/Catalogs/МашиночитаемыеДоверенности/Forms/ФормаЭлемента/Form.form @@ -6092,6 +6092,47 @@ <textSize>Normal</textSize> </extInfo> </items> + <items xsi:type="form:FormField"> + <name>Ответственный</name> + <id>1235</id> + <visible>true</visible> + <enabled>true</enabled> + <userVisible> + <common>true</common> + </userVisible> + <dataPath xsi:type="form:DataPath"> + <segments>Объект.Ответственный</segments> + </dataPath> + <extendedTooltip> + <name>ОтветственныйРасширеннаяПодсказка</name> + <id>1237</id> + <type>Label</type> + <autoMaxWidth>true</autoMaxWidth> + <autoMaxHeight>true</autoMaxHeight> + <extInfo xsi:type="form:LabelDecorationExtInfo"> + <horizontalAlign>Left</horizontalAlign> + </extInfo> + </extendedTooltip> + <contextMenu> + <name>ОтветственныйКонтекстноеМеню</name> + <id>1236</id> + <autoFill>true</autoFill> + </contextMenu> + <type>InputField</type> + <editMode>Enter</editMode> + <showInHeader>true</showInHeader> + <headerHorizontalAlign>Left</headerHorizontalAlign> + <showInFooter>true</showInFooter> + <extInfo xsi:type="form:InputFieldExtInfo"> + <autoMaxWidth>true</autoMaxWidth> + <autoMaxHeight>true</autoMaxHeight> + <wrap>true</wrap> + <chooseType>true</chooseType> + <typeDomainEnabled>true</typeDomainEnabled> + <textEdit>true</textEdit> + <textSize>Normal</textSize> + </extInfo> + </items> <items xsi:type="form:FormGroup"> <name>ГруппаОтладка</name> <id>362</id> diff --git a/SSL/src/Catalogs/МашиночитаемыеДоверенности/Forms/ФормаЭлемента/Module.bsl b/SSL/src/Catalogs/МашиночитаемыеДоверенности/Forms/ФормаЭлемента/Module.bsl index 7fbc2f5bc..5c0f76309 100644 --- a/SSL/src/Catalogs/МашиночитаемыеДоверенности/Forms/ФормаЭлемента/Module.bsl +++ b/SSL/src/Catalogs/МашиночитаемыеДоверенности/Forms/ФормаЭлемента/Module.bsl @@ -1,5 +1,5 @@ /////////////////////////////////////////////////////////////////////////////////////////////////////// -// Copyright (c) 2024, ООО 1С-Софт +// Copyright (c) 2025, ООО 1С-Софт // Все права защищены. Эта программа и сопроводительные материалы предоставляются // в соответствии с условиями лицензии Attribution 4.0 International (CC BY 4.0) // Текст лицензии доступен по ссылке: @@ -21,6 +21,7 @@ ТребуетсяОбновлениеДекораций = Истина; ЕстьПравоРедактировать = ПравоДоступа("Изменение", Метаданные.Справочники.МашиночитаемыеДоверенности); + ТекущийПользователь = Пользователи.ТекущийПользователь(); Если Параметры.Ключ.Пустая() Тогда @@ -42,7 +43,8 @@ ОбновитьОбъект(ТекущийОбъект); КонецЕсли; - Объект.Ответственный = Пользователи.ТекущийПользователь(); + Объект.Ответственный = ТекущийПользователь; + Элементы.Ответственный.Видимость = Ложь; Если ЗначениеЗаполнено(Параметры.Полномочия) Тогда ЗаполнитьПолномочияПоКодам(Параметры.Полномочия); @@ -59,7 +61,9 @@ КонецЕсли; КонецЕсли; - ПоказыватьПерсональныеДанные = ПоказыватьПерсональныеДанные(); + ПоказыватьПерсональныеДанные = Пользователи.ЭтоПолноправныйПользователь() + Или ПравоДоступа("Изменение", Метаданные.Справочники.МашиночитаемыеДоверенности) + Или Справочники.МашиночитаемыеДоверенности.ПоказыватьПерсональныеДанные(Объект, ТекущийПользователь); ПостроитьЦепочкуПередоверия(); ОтобразитьДанныеПервоначальнойДоверенности(); @@ -427,7 +431,7 @@ ПараметрыФормы = МашиночитаемыеДоверенностиФНССлужебныйКлиент.ПараметрыФормыВводаРеквизитов(ДоверительПервоначальнойДоверенности, ДоверительПервоначальнойДоверенностиРеквизиты, Истина, Назначение); - ПараметрыФормы.ПоказыватьПерсональныеДанные = ПоказыватьПерсональныеДанные Или Не ТолькоПросмотр; + ПараметрыФормы.ПоказыватьПерсональныеДанные = ПоказыватьПерсональныеДанные; МашиночитаемыеДоверенностиФНССлужебныйКлиент.ОткрытьФормуВводаРеквизитов(ЭтотОбъект, ПараметрыФормы); @@ -779,7 +783,7 @@ Возврат; КонецЕсли; - МашиночитаемыеДоверенностиФНССлужебныйКлиент.ВыгрузитьДоверенностьВФайл(Объект.Ссылка); + МашиночитаемыеДоверенностиФНССлужебныйКлиент.ВыгрузитьДоверенностьВФайл(Объект.Ссылка, Не ПоказыватьПерсональныеДанные); КонецПроцедуры @@ -947,29 +951,6 @@ КонецПроцедуры - -&НаСервере -Функция ПоказыватьПерсональныеДанные() - - ТекущийПользователь = Пользователи.ТекущийПользователь(); - Если Объект.Ответственный = ТекущийПользователь Тогда - Возврат Истина; - КонецЕсли; - - ФизическоеЛицо = ОбщегоНазначения.ЗначениеРеквизитаОбъекта(ТекущийПользователь, "ФизическоеЛицо"); - Если ЗначениеЗаполнено(ФизическоеЛицо) Тогда - Если Объект.Доверители.НайтиСтроки(Новый Структура("Доверитель", ФизическоеЛицо)).Количество() > 0 Тогда - Возврат Истина; - КонецЕсли; - Если Объект.Представители.НайтиСтроки(Новый Структура("Представитель", ФизическоеЛицо)).Количество() > 0 Тогда - Возврат Истина; - КонецЕсли; - КонецЕсли; - - Возврат Ложь; - -КонецФункции - &НаКлиенте Процедура ПослеОтветаНаВопросОДобавленииПолномочий(Результат, Контекст) Экспорт @@ -2539,7 +2520,7 @@ ЭтотОбъект[ИмяЭлементаОрганизация + "Реквизиты"], РеквизитыНедоступныДляРедактирования, Назначение); ПараметрыФормы.Поле = Поле; - ПараметрыФормы.ПоказыватьПерсональныеДанные = ПоказыватьПерсональныеДанные Или Не ТолькоПросмотр; + ПараметрыФормы.ПоказыватьПерсональныеДанные = ПоказыватьПерсональныеДанные; МашиночитаемыеДоверенностиФНССлужебныйКлиент.ОткрытьФормуВводаРеквизитов( ЭтотОбъект, ПараметрыФормы, ОписаниеОповещения); @@ -2739,7 +2720,7 @@ ТолькоОсновные = Подписана Или ВнешнийСтатус(ЭтотОбъект) Или ОжидаетсяПодписание; Возврат МашиночитаемыеДоверенностиФНССлужебный.ЗаголовокДекорации(Назначение, Реквизиты, ИмяЭлементаОрганизация, - ТолькоОсновные, ТолькоОбязательные, ПоказыватьПерсональныеДанные Или Не ТолькоПросмотр); + ТолькоОсновные, ТолькоОбязательные, ПоказыватьПерсональныеДанные); КонецФункции @@ -2752,7 +2733,7 @@ Возврат МашиночитаемыеДоверенностиФНССлужебный.ЗаголовокДекорацииДляТаблицы(Назначение, Реквизиты, ИмяЭлементаОрганизация, Подписана Или ОжидаетсяПодписание Или ВнешнийСтатус(ЭтотОбъект), ТолькоОбязательные, - ПоказыватьПерсональныеДанные Или Не ТолькоПросмотр); + ПоказыватьПерсональныеДанные); КонецФункции @@ -3638,7 +3619,8 @@ КонецЕсли; ОтобразитьОписаниеСостояния(Форма, ДанныеСостояния); - + Иначе + ОтобразитьОписаниеСостояния(Форма, Неопределено); КонецЕсли; КонецПроцедуры @@ -3855,6 +3837,11 @@ НСтр("ru='<span style=""color: %1"">Требуется регистрация в реестре ФНС</span>'"), "ПоясняющийТекст")); Возврат; КонецЕсли; + + Если ДанныеСостояния = Неопределено Тогда + Элементы.ОписаниеСостояния.Видимость = Ложь; + Возврат; + КонецЕсли; Если ДанныеСостояния.ОтображатьСтатусВДокументе И Объект.РегистрироватьВРеестре И Объект.ДляНалоговыхОрганов Тогда Если ЗначениеЗаполнено(ДанныеСостояния.ХронологическиеДанные) Тогда diff --git a/SSL/src/Catalogs/МашиночитаемыеДоверенности/ManagerModule.bsl b/SSL/src/Catalogs/МашиночитаемыеДоверенности/ManagerModule.bsl index 7d0ca3687..45d820dd4 100644 --- a/SSL/src/Catalogs/МашиночитаемыеДоверенности/ManagerModule.bsl +++ b/SSL/src/Catalogs/МашиночитаемыеДоверенности/ManagerModule.bsl @@ -1,5 +1,5 @@ /////////////////////////////////////////////////////////////////////////////////////////////////////// -// Copyright (c) 2024, ООО 1С-Софт +// Copyright (c) 2025, ООО 1С-Софт // Все права защищены. Эта программа и сопроводительные материалы предоставляются // в соответствии с условиями лицензии Attribution 4.0 International (CC BY 4.0) // Текст лицензии доступен по ссылке: @@ -939,15 +939,18 @@ КонецФункции -Функция ФайлыДоверенностей(Доверенности, ДляНалоговыхОрганов) Экспорт - - ФайлыДоверенностей = ОбщегоНазначения.ЗначениеРеквизитаОбъектов(Доверенности, "ФайлДоверенности"); +Функция ФайлыДоверенностей(Доверенности, ДляНалоговыхОрганов, ПроверятьДоступностьПерсональныхДанных = Ложь) Экспорт + ФайлыДоверенностей = ОбщегоНазначения.ЗначенияРеквизитовОбъектов(Доверенности, "ФайлДоверенности, Ответственный, Доверители, Представители"); + Если ПроверятьДоступностьПерсональныхДанных Тогда + ТекущийПользователь = Пользователи.ТекущийПользователь(); + ФизическоеЛицо = ОбщегоНазначения.ЗначениеРеквизитаОбъекта(ТекущийПользователь, "ФизическоеЛицо"); + КонецЕсли; ОписанияФайловДоверенностей = Новый Соответствие; Для Каждого Доверенность Из Доверенности Цикл ФайлыДоверенности = Новый Массив; - ФайлДоверенности = ФайлыДоверенностей[Доверенность]; + ФайлДоверенности = ФайлыДоверенностей[Доверенность].ФайлДоверенности; Если ФайлДоверенности.Пустая() Тогда ФайлыДоверенностей[Доверенность] = ФайлыДоверенности; @@ -955,6 +958,21 @@ Продолжить; КонецЕсли; + Если ПроверятьДоступностьПерсональныхДанных Тогда + ПоказыватьПерсональныеДанные = ПоказыватьПерсональныеДанные(ФайлыДоверенностей[Доверенность], ТекущийПользователь, ФизическоеЛицо); + Если Не ПоказыватьПерсональныеДанные Тогда + ОписаниеФайла = ОписаниеФайла(); + ОписаниеФайла.ОписаниеОшибки = СтроковыеФункцииКлиентСервер.ПодставитьПараметрыВСтроку( + НСтр("ru = 'Для получения файла доверенности %1 обратитесь к ответственному: %2.'"), + Доверенность, + ФайлыДоверенностей[Доверенность].Ответственный); + ФайлыДоверенности.Добавить(ОписаниеФайла); + ФайлыДоверенностей[Доверенность] = ФайлыДоверенности; + ОписанияФайловДоверенностей.Вставить(Доверенность, ФайлыДоверенности); + Продолжить; + КонецЕсли; + КонецЕсли; + ДанныеФайла = РаботаСФайлами.ДанныеФайла(ФайлДоверенности); ДвоичныеДанные = ПолучитьИзВременногоХранилища(ДанныеФайла.СсылкаНаДвоичныеДанныеФайла); ДоверенностьXML = ПолучитьСтрокуИзДвоичныхДанных(ДвоичныеДанные); @@ -1044,11 +1062,17 @@ ТабличныйДокумент = Новый ТабличныйДокумент; ТабличныйДокумент.КлючПараметровПечати = "МашиночитаемыеДоверенности_Доверенность"; Макет = УправлениеПечатью.МакетПечатнойФормы("Справочник.МашиночитаемыеДоверенности.ПФ_MXL_Доверенность", КодЯзыка); + ФайлыДоверенностей = ОбщегоНазначения.ЗначенияРеквизитовОбъектов(Доверенности, "ФайлДоверенности, Ответственный, Доверители, Представители"); - ФайлыДоверенностей = ОбщегоНазначения.ЗначениеРеквизитаОбъектов(Доверенности, "ФайлДоверенности"); + ПроверятьДоступностьПерсональныхДанных = Не Пользователи.ЭтоПолноправныйПользователь() + И Не ПравоДоступа("Изменение", Метаданные.Справочники.МашиночитаемыеДоверенности); + Если ПроверятьДоступностьПерсональныхДанных Тогда + ТекущийПользователь = Пользователи.ТекущийПользователь(); + ФизическоеЛицо = ОбщегоНазначения.ЗначениеРеквизитаОбъекта(ТекущийПользователь, "ФизическоеЛицо"); + КонецЕсли; Для Каждого Ссылка Из Доверенности Цикл - ФайлДоверенности = ФайлыДоверенностей[Ссылка]; + ФайлДоверенности = ФайлыДоверенностей[Ссылка].ФайлДоверенности; Если ФайлДоверенности.Пустая() Тогда ОбщегоНазначения.СообщитьПользователю(НСтр("ru = 'Печатная форма недоступна, потому что не заполнены все обязательные реквизиты доверенности.'"), Ссылка); Продолжить; @@ -1060,10 +1084,13 @@ Доверенность = ДоверенностьXDTO(ДоверенностьXML); + ПоказыватьПерсональныеДанные = Не ПроверятьДоступностьПерсональныхДанных + Или ПоказыватьПерсональныеДанные(ФайлыДоверенностей[Ссылка], ТекущийПользователь, ФизическоеЛицо); + Если Доверенность.Документ.Передов = Неопределено Тогда - ВывестиДоверенность(ТабличныйДокумент, Макет, Доверенность.Документ.Довер); + ВывестиДоверенность(ТабличныйДокумент, Макет, Доверенность.Документ.Довер, ПоказыватьПерсональныеДанные); Иначе - ВывестиПередоверие(ТабличныйДокумент, Макет, Доверенность.Документ.Передов); + ВывестиПередоверие(ТабличныйДокумент, Макет, Доверенность.Документ.Передов, ПоказыватьПерсональныеДанные); КонецЕсли; Штампы = ЭлектроннаяПодпись.ШтампыВизуализацииЭлектронныхПодписей(ФайлДоверенности); @@ -1078,6 +1105,29 @@ КонецФункции +Функция ПоказыватьПерсональныеДанные(РеквизитыДоверенности, ТекущийПользователь, ФизическоеЛицо = Неопределено) Экспорт + + Если РеквизитыДоверенности.Ответственный = ТекущийПользователь Тогда + Возврат Истина; + КонецЕсли; + + Если ФизическоеЛицо = Неопределено Тогда + ФизическоеЛицо = ОбщегоНазначения.ЗначениеРеквизитаОбъекта(ТекущийПользователь, "ФизическоеЛицо"); + КонецЕсли; + + Если ЗначениеЗаполнено(ФизическоеЛицо) Тогда + Если РеквизитыДоверенности.Доверители.НайтиСтроки(Новый Структура("Доверитель", ФизическоеЛицо)).Количество() > 0 Тогда + Возврат Истина; + КонецЕсли; + Если РеквизитыДоверенности.Представители.НайтиСтроки(Новый Структура("Представитель", ФизическоеЛицо)).Количество() > 0 Тогда + Возврат Истина; + КонецЕсли; + КонецЕсли; + + Возврат Ложь; + +КонецФункции + Функция ДоверенностьXDTO(Знач ДоверенностьXML) Экспорт ДоверенностьXML = СтрЗаменить(ДоверенностьXML, """" + ЦелевоеПространствоИмен() + """", @@ -1155,13 +1205,13 @@ КонецФункции -Функция РеквизитыДолжностногоЛица(СведенияОДолжностномЛице, ДляПечатнойФормы = Истина) +Функция РеквизитыДолжностногоЛица(СведенияОДолжностномЛице, ДляПечатнойФормы, ПоказыватьПерсональныеДанные = Истина) ИНН = СведенияОДолжностномЛице.ИННФЛ; СНИЛС = СведенияОДолжностномЛице.СНИЛС; Должность = СведенияОДолжностномЛице.Должность; СведенияОФизическомЛице = СведенияОДолжностномЛице.СведФЛ; - РеквизитыФизическогоЛица = РеквизитыФизическогоЛица(СведенияОФизическомЛице); + РеквизитыФизическогоЛица = РеквизитыФизическогоЛица(СведенияОФизическомЛице, ПоказыватьПерсональныеДанные); Параметры = Новый Структура; Параметры.Вставить("ИНН", ИНН); @@ -1175,6 +1225,8 @@ Параметры.Вставить(Реквизит.Ключ, Реквизит.Значение); КонецЦикла; + ОчиститьПерсональныеДанные(Параметры, ПоказыватьПерсональныеДанные); + Если ДляПечатнойФормы Тогда Для Каждого Параметр Из Параметры Цикл Если Не ЗначениеЗаполнено(Параметр.Значение) Тогда @@ -1187,11 +1239,59 @@ КонецФункции -Функция РеквизитыФизическогоЛицаДоверителя(СведенияОФизическомЛицеДоверителе) +Функция ПерсональныеДанные() + + ПерсональныеДанные = Новый Массив; + ПерсональныеДанные.Добавить("ДатаРождения"); + ПерсональныеДанные.Добавить("МестоРождения"); + ПерсональныеДанные.Добавить("АдресРегистрации"); + ПерсональныеДанные.Добавить("ДокументНомер"); + ПерсональныеДанные.Добавить("ДокументКемВыдан"); + ПерсональныеДанные.Добавить("ДокументДатаВыдачи"); + ПерсональныеДанные.Добавить("ДокументКодПодразделения"); + ПерсональныеДанные.Добавить("ДокументСрокДействия"); + ПерсональныеДанные.Добавить("СтраховойНомерПФР"); + ПерсональныеДанные.Добавить("ИНН"); + ПерсональныеДанные.Добавить("ИННФЛ"); + ПерсональныеДанные.Добавить("НомерЗаписиЕдиногоРегистраНаселения"); + ПерсональныеДанные.Добавить("СНИЛС"); + ПерсональныеДанные.Добавить("ЭлектроннаяПочта"); + ПерсональныеДанные.Добавить("Телефон"); + ПерсональныеДанные.Добавить("КонтактныйТелефон"); + ПерсональныеДанные.Добавить("Пол"); + ПерсональныеДанные.Добавить("ПризнакНаличияГражданства"); + ПерсональныеДанные.Добавить("ДокументУдостоверяющийЛичность"); + + Возврат ПерсональныеДанные; + +КонецФункции + +Процедура ОчиститьПерсональныеДанные(Параметры, ПоказыватьПерсональныеДанные) + + Если ПоказыватьПерсональныеДанные Тогда + Возврат; + КонецЕсли; + + ПерсональныеДанные = ПерсональныеДанные(); + Для Каждого Параметр Из Параметры Цикл + Если Не ЗначениеЗаполнено(Параметры[Параметр.Ключ]) Тогда + Продолжить; + ИначеЕсли ПерсональныеДанные.Найти(Параметр.Ключ) <> Неопределено Тогда + Параметры[Параметр.Ключ] = СтрокаЗаменыПерсональныхДанных(); + КонецЕсли; + КонецЦикла; + +КонецПроцедуры + +Функция СтрокаЗаменыПерсональныхДанных() + Возврат НСтр("ru = '***'"); +КонецФункции + +Функция РеквизитыФизическогоЛицаДоверителя(СведенияОФизическомЛицеДоверителе, ПоказыватьПерсональныеДанные = Истина) ИНН = СведенияОФизическомЛицеДоверителе.ИННФЛ; СНИЛС = СведенияОФизическомЛицеДоверителе.СНИЛС; - РеквизитыФизическогоЛица = РеквизитыФизическогоЛица(СведенияОФизическомЛицеДоверителе.СведФЛ); + РеквизитыФизическогоЛица = РеквизитыФизическогоЛица(СведенияОФизическомЛицеДоверителе.СведФЛ, ПоказыватьПерсональныеДанные); Параметры = Новый Структура; Параметры.Вставить("ИНН", ИНН); @@ -1200,12 +1300,14 @@ Для Каждого Реквизит Из РеквизитыФизическогоЛица Цикл Параметры.Вставить(Реквизит.Ключ, Реквизит.Значение); КонецЦикла; - + + ОчиститьПерсональныеДанные(Параметры, ПоказыватьПерсональныеДанные); + Возврат Параметры; КонецФункции -Функция РеквизитыФизическогоЛица(СведенияОФизическомЛице) +Функция РеквизитыФизическогоЛица(СведенияОФизическомЛице, ПоказыватьПерсональныеДанные = Истина) Пол = СведенияОФизическомЛице.Пол; ПризнакНаличияГражданства = СведенияОФизическомЛице.ПрГражд; @@ -1218,7 +1320,6 @@ КонтактныйТелефон = СведенияОФизическомЛице.КонтактТлф; КонтактныйТелефонЗначение = КонтактнаяИнформацияПоПредставлению(КонтактныйТелефон, "Телефон"); - АдресЭлектроннойПочты = СведенияОФизическомЛице.АдрЭлПочт; АдресЭлектроннойПочтыЗначение = КонтактнаяИнформацияПоПредставлению(АдресЭлектроннойПочты, "АдресЭлектроннойПочты"); @@ -1241,6 +1342,7 @@ ДокументУдостоверяющийЛичность = ""; Если СведенияОДокументеУдостоверяющемЛичность <> Неопределено Тогда + КодВидаДокумента = СведенияОДокументеУдостоверяющемЛичность.КодВидДок; СерияИНомерДокумента = СведенияОДокументеУдостоверяющемЛичность.СерНомДок; ДатаВыдачиДокумента = Дата(СведенияОДокументеУдостоверяющемЛичность.ДатаДок); @@ -1248,24 +1350,28 @@ КодПодразделенияОрганаВыдавшегоДокумент = СведенияОДокументеУдостоверяющемЛичность.КодВыдДок; ДатаИстеченияСрокаДействияДокумента = ?(СведенияОДокументеУдостоверяющемЛичность.expDate = Неопределено, '00010101', Дата(СведенияОДокументеУдостоверяющемЛичность.expDate)); - - РеквизитыДокумента = Новый Массив; - РеквизитыДокумента.Добавить(НаименованиеДокумента(КодВидаДокумента)); - РеквизитыДокумента.Добавить(СерияИНомерДокумента); - РеквизитыДокумента.Добавить(СтроковыеФункцииКлиентСервер.ПодставитьПараметрыВСтроку( - НСтр("ru = 'выдан %1'"), Формат(Дата(ДатаВыдачиДокумента), "ДЛФ=D;"))); - Если ЗначениеЗаполнено(НаименованиеОрганаВыдавшегоДокумент) Тогда - РеквизитыДокумента.Добавить(НаименованиеОрганаВыдавшегоДокумент); - КонецЕсли; - Если ЗначениеЗаполнено(КодПодразделенияОрганаВыдавшегоДокумент) Тогда - РеквизитыДокумента.Добавить("(" + КодПодразделенияОрганаВыдавшегоДокумент + ")"); - КонецЕсли; - Если ЗначениеЗаполнено(ДатаИстеченияСрокаДействияДокумента) Тогда + Если ПоказыватьПерсональныеДанные Тогда + РеквизитыДокумента = Новый Массив; + РеквизитыДокумента.Добавить(НаименованиеДокумента(КодВидаДокумента)); + РеквизитыДокумента.Добавить(СерияИНомерДокумента); РеквизитыДокумента.Добавить(СтроковыеФункцииКлиентСервер.ПодставитьПараметрыВСтроку( + НСтр("ru = 'выдан %1'"), Формат(Дата(ДатаВыдачиДокумента), "ДЛФ=D;"))); + Если ЗначениеЗаполнено(НаименованиеОрганаВыдавшегоДокумент) Тогда + РеквизитыДокумента.Добавить(НаименованиеОрганаВыдавшегоДокумент); + КонецЕсли; + Если ЗначениеЗаполнено(КодПодразделенияОрганаВыдавшегоДокумент) Тогда + РеквизитыДокумента.Добавить("(" + КодПодразделенияОрганаВыдавшегоДокумент + ")"); + КонецЕсли; + Если ЗначениеЗаполнено(ДатаИстеченияСрокаДействияДокумента) Тогда + РеквизитыДокумента.Добавить(СтроковыеФункцииКлиентСервер.ПодставитьПараметрыВСтроку( НСтр("ru = 'действителен до %1'"), Формат(Дата(ДатаИстеченияСрокаДействияДокумента), "ДЛФ=D;"))); + КонецЕсли; + + ДокументУдостоверяющийЛичность = СтрСоединить(РеквизитыДокумента, " "); + Иначе + ДокументУдостоверяющийЛичность = СтрокаЗаменыПерсональныхДанных(); КонецЕсли; - - ДокументУдостоверяющийЛичность = СтрСоединить(РеквизитыДокумента, " "); + КонецЕсли; АдресРегистрации = ""; @@ -1310,14 +1416,14 @@ КонецФункции -Функция РеквизитыИндивидуальногоПредпринимателя(СведенияОбИндивидуальномПредпринимателе) +Функция РеквизитыИндивидуальногоПредпринимателя(СведенияОбИндивидуальномПредпринимателе, ПоказыватьПерсональныеДанные = Истина) ОГРНИП = СведенияОбИндивидуальномПредпринимателе.ОГРНИП; ИНН = СведенияОбИндивидуальномПредпринимателе.ИННФЛ; СНИЛС = СведенияОбИндивидуальномПредпринимателе.СНИЛС; СведенияОФизическомЛице = СведенияОбИндивидуальномПредпринимателе.СведФЛ; - РеквизитыФизическогоЛица = РеквизитыФизическогоЛица(СведенияОФизическомЛице); + РеквизитыФизическогоЛица = РеквизитыФизическогоЛица(СведенияОФизическомЛице, ПоказыватьПерсональныеДанные); Параметры = Новый Структура; Параметры.Вставить("ОГРН", ОГРНИП); @@ -1331,6 +1437,8 @@ Параметры.Вставить(Реквизит.Ключ, Реквизит.Значение); КонецЦикла; + ОчиститьПерсональныеДанные(Параметры, ПоказыватьПерсональныеДанные); + НаименованиеПолное = СтроковыеФункцииКлиентСервер.ПодставитьПараметрыВСтроку(НСтр("ru = 'ИП %1'"), Параметры.ФИО); Параметры.Вставить("НаименованиеПолное", НаименованиеПолное); @@ -1873,6 +1981,170 @@ КонецПроцедуры +Функция РеквизитыДоверенностиИзФайла(ЗагруженныйФайл) Экспорт + + Результат = ФайлыДоверенностейИПодписей(ОбщегоНазначенияКлиентСервер.ЗначениеВМассиве(ЗагруженныйФайл)); + + ФайлыДоверенностей = Результат.ФайлыДоверенностей; + + Если ФайлыДоверенностей.Количество() = 0 Тогда + ТекстОшибки = НСтр("ru = 'Не удалось прочитать доверенность - неверный формат. + |Ожидался файл доверенности в формате 003.'"); + Возврат ТекстОшибки; + КонецЕсли; + + ТекстОшибки = ""; + Для Каждого Элемент Из ФайлыДоверенностей Цикл + + ЗагруженныйФайл = Элемент.Ключ; + ИмяФайла = ЗагруженныйФайл.ИмяФайла; + АдресФайла = ЗагруженныйФайл.Хранение; + + ДвоичныеДанные = ПолучитьИзВременногоХранилища(АдресФайла); + ДоверенностьXML = ПолучитьСтрокуИзДвоичныхДанных(ДвоичныеДанные); + + Попытка + ОписаниеДоверенности = ДоверенностьXDTO(ДоверенностьXML); + Исключение + ИнформацияОбОшибке = ИнформацияОбОшибке(); + ТекстОшибки = СтроковыеФункцииКлиентСервер.ПодставитьПараметрыВСтроку( + НСтр("ru = 'Не удалось прочитать файл %1 по причине: + |%2'"), + ИмяФайла, + ОбработкаОшибок.КраткоеПредставлениеОшибки(ИнформацияОбОшибке)); + + ЗаписьЖурналаРегистрации(МашиночитаемыеДоверенностиФНССлужебный.ИмяСобытияЖурналаРегистрации(), + УровеньЖурналаРегистрации.Ошибка, , , ТекстОшибки); + Продолжить; + КонецПопытки; + + Если ОписаниеДоверенности.Документ.Передов = Неопределено Тогда + ЕдиныйРегистрационныйНомер = ОписаниеДоверенности.Документ.Довер.СвДов.НомДовер; + Иначе + ЕдиныйРегистрационныйНомер = ОписаниеДоверенности.Документ.Передов.СвПереДовер.НомДовер; + КонецЕсли; + + //@skip-check query-in-loop - штучные запросы в количестве загружаемых доверенностей + Доверенность = НайтиДоверенность(ЕдиныйРегистрационныйНомер); + + Если ЗначениеЗаполнено(Доверенность) Тогда + Объект = Доверенность.ПолучитьОбъект(); + Иначе + Объект = Справочники.МашиночитаемыеДоверенности.СоздатьЭлемент(); + ЭтоПередоверие = ОписаниеДоверенности.Документ.Довер = Неопределено; + Если ЭтоПередоверие Тогда + //@skip-check query-in-loop - штучные запросы в количестве загружаемых доверенностей + ЗаполнитьПередовериеИзОбъектаXDTO(Объект, ОписаниеДоверенности); + Иначе + ЗаполнитьДоверенность(Объект, ОписаниеДоверенности); + КонецЕсли; + КонецЕсли; + + Результат = Новый Структура; + Результат.Вставить("Ссылка", ?(ЗначениеЗаполнено(Доверенность), Доверенность, Неопределено)); + Результат.Вставить("Наименование", ?(ЗначениеЗаполнено(Доверенность), Объект.Наименование, АвтоНаименование(Объект))); + Результат.Вставить("ДатаВыдачи", Объект.ДатаВыдачи); + Результат.Вставить("ДатаОкончания", Объект.ДатаОкончания); + Результат.Вставить("НомерДоверенности", Объект.НомерДоверенности); + Результат.Вставить("Полномочия", Объект.Полномочия.Выгрузить().Скопировать(,"Код, Мнемокод, Наименование")); + + МассивДоверителей = Новый Массив; + Доверители = Объект.Доверители.Выгрузить(); + + Найдено = Доверители.НайтиСтроки(Новый Структура("ИдентификаторРодителя", + Новый УникальныйИдентификатор("00000000-0000-0000-0000-000000000000"))); + + Для Каждого СтрокаОрганизация Из Найдено Цикл + + РеквизитыОрганизации = СтрокаОрганизация.ДоверительРеквизиты.Получить(); + + Если РеквизитыОрганизации.ЭтоФизическоеЛицо Тогда + МассивДоверителей.Добавить(Новый Структура("Организация, ОрганизацияПредставитель, ФизическоеЛицо", + Неопределено, Неопределено, РеквизитыОрганизации)); + Иначе + + НайденоПредставителиОрганизации = Доверители.НайтиСтроки(Новый Структура("ИдентификаторРодителя", + СтрокаОрганизация.Идентификатор)); + + Если НайденоПредставителиОрганизации.Количество() = 0 Тогда + МассивДоверителей.Добавить( + Новый Структура("Организация, ОрганизацияПредставитель, ФизическоеЛицо", + РеквизитыОрганизации, Неопределено, Неопределено)); + Иначе + Для Каждого СтрокаПредставительОрганизации Из НайденоПредставителиОрганизации Цикл + РеквизитыПредставителяОрганизации = СтрокаПредставительОрганизации.ДоверительРеквизиты.Получить(); + + Если РеквизитыПредставителяОрганизации.ЭтоФизическоеЛицо Тогда + МассивДоверителей.Добавить( + Новый Структура("Организация, ОрганизацияПредставитель, ФизическоеЛицо", + РеквизитыОрганизации, Неопределено, РеквизитыПредставителяОрганизации)); + Иначе + НайденоФизическиеЛица = Доверители.НайтиСтроки(Новый Структура("ИдентификаторРодителя", + СтрокаПредставительОрганизации.Идентификатор)); + Если НайденоФизическиеЛица.Количество() = 0 Тогда + МассивДоверителей.Добавить( + Новый Структура("Организация, ОрганизацияПредставитель, ФизическоеЛицо", + РеквизитыОрганизации, РеквизитыПредставителяОрганизации, Неопределено)); + + Иначе + Для Каждого СтрокаФизическоеЛицо Из НайденоФизическиеЛица Цикл + РеквизитыФизическогоЛица = СтрокаФизическоеЛицо.ДоверительРеквизиты.Получить(); + МассивДоверителей.Добавить( + Новый Структура("Организация, ОрганизацияПредставитель, ФизическоеЛицо", + РеквизитыОрганизации, РеквизитыПредставителяОрганизации, + РеквизитыФизическогоЛица)); + КонецЦикла; + КонецЕсли; + КонецЕсли; + + КонецЦикла; + КонецЕсли; + КонецЕсли; + + КонецЦикла; + + Результат.Вставить("Доверители", МассивДоверителей); + + МассивПредставителей = Новый Массив; + Представители = Объект.Представители.Выгрузить(); + + Найдено = Представители.НайтиСтроки(Новый Структура("ИдентификаторРодителя", + Новый УникальныйИдентификатор("00000000-0000-0000-0000-000000000000"))); + + Для Каждого СтрокаОрганизация Из Найдено Цикл + + РеквизитыОрганизации = СтрокаОрганизация.ПредставительРеквизиты.Получить(); + + Если РеквизитыОрганизации.ЭтоФизическоеЛицо Тогда + МассивПредставителей.Добавить(Новый Структура("Организация, ФизическоеЛицо", Неопределено, + РеквизитыОрганизации)); + Иначе + + НайденоФизическиеЛица = Представители.НайтиСтроки(Новый Структура("ИдентификаторРодителя", + СтрокаОрганизация.Идентификатор)); + Если НайденоФизическиеЛица.Количество() = 0 Тогда + МассивПредставителей.Добавить(Новый Структура("Организация, ФизическоеЛицо", РеквизитыОрганизации, + Неопределено)); + Иначе + Для Каждого СтрокаФизическоеЛицо Из НайденоФизическиеЛица Цикл + РеквизитыФизическогоЛица = СтрокаФизическоеЛицо.ПредставительРеквизиты.Получить(); + МассивПредставителей.Добавить(Новый Структура("Организация, ФизическоеЛицо", + РеквизитыОрганизации, РеквизитыФизическогоЛица)); + КонецЦикла; + КонецЕсли; + КонецЕсли; + + КонецЦикла; + + Результат.Вставить("Представители", МассивПредставителей); + + Возврат Результат; + + КонецЦикла; + + Возврат ТекстОшибки; + +КонецФункции Функция СвойстваДоверенностейИзФайлов(ЗагруженныеФайлы, УникальныйИдентификатор) Экспорт @@ -1931,7 +2203,6 @@ НСтр("ru = '%1 - %2 (будет загружена)'"), АвтоНаименование(Объект), ЕдиныйРегистрационныйНомер); - МассивПредставителей = Новый Массив; Представители = Объект.Представители.Выгрузить(); Найдено = Представители.НайтиСтроки(Новый Структура("ИдентификаторРодителя", @@ -2531,7 +2802,7 @@ Функция ДобавитьИндивидуальногоПредпринимателяДоверителя(Объект, СвязаннаяОрганизация, СведенияОбИндивидуальномПредпринимателе) - Параметры = РеквизитыИндивидуальногоПредпринимателя(СведенияОбИндивидуальномПредпринимателе); + Параметры = РеквизитыИндивидуальногоПредпринимателя(СведенияОбИндивидуальномПредпринимателе, Истина); РеквизитыУчастника = МашиночитаемыеДоверенностиФНССлужебныйКлиентСервер.РеквизитыУчастника( ТипЭлементаОрганизация(), Неопределено, ВидУчастникаИндивидуальныйПредприниматель(), Ложь); @@ -2565,7 +2836,7 @@ Функция ДобавитьИндивидуальногоПредпринимателяПредставителя(Объект, СведенияОбИндивидуальномПредпринимателе) - Параметры = РеквизитыИндивидуальногоПредпринимателя(СведенияОбИндивидуальномПредпринимателе); + Параметры = РеквизитыИндивидуальногоПредпринимателя(СведенияОбИндивидуальномПредпринимателе, Истина); РеквизитыУчастника = МашиночитаемыеДоверенностиФНССлужебныйКлиентСервер.РеквизитыУчастника( ТипЭлементаОрганизация(), Неопределено, ВидУчастникаИндивидуальныйПредприниматель(), Ложь); @@ -2765,7 +3036,7 @@ Функция КонтактнаяИнформацияПоПредставлению(Представление, ТипКонтактнойИнформации) - Если ОбщегоНазначения.ПодсистемаСуществует("СтандартныеПодсистемы.КонтактнаяИнформация") Тогда + Если ОбщегоНазначения.ПодсистемаСуществует("СтандартныеПодсистемы.КонтактнаяИнформация") И ЗначениеЗаполнено(Представление) Тогда МодульУправлениеКонтактнойИнформацией = ОбщегоНазначения.ОбщийМодуль("УправлениеКонтактнойИнформацией"); ОжидаемыйВид = МодульУправлениеКонтактнойИнформацией.ТипКонтактнойИнформацииПоНаименованию(ТипКонтактнойИнформации); Возврат МодульУправлениеКонтактнойИнформацией.КонтактнаяИнформацияПоПредставлению(Представление, ОжидаемыйВид); @@ -3302,7 +3573,7 @@ КонецПроцедуры -Процедура ВывестиДоверенность(ТабличныйДокумент, Макет, Доверенность) +Процедура ВывестиДоверенность(ТабличныйДокумент, Макет, Доверенность, ПоказыватьПерсональныеДанные) СведенияОДоверенности = Доверенность.СвДов; ЕдиныйРегистрационныйНомер = СведенияОДоверенности.НомДовер; @@ -3339,7 +3610,7 @@ ВывестиОбласть(ТабличныйДокумент, Макет, "ШапкаДоверенности", РеквизитыШапки); ВывестиОбласть(ТабличныйДокумент, Макет, "ШапкаДоверителей", РеквизитыШапки); - ВывестиСведенияОДоверителях(ТабличныйДокумент, Макет, Доверенность.СвДоверит); + ВывестиСведенияОДоверителях(ТабличныйДокумент, Макет, Доверенность.СвДоверит, ПоказыватьПерсональныеДанные); ВывестиОтступ(ТабличныйДокумент, Макет); ВывестиОбласть(ТабличныйДокумент, Макет, "ШапкаПредставителей", РеквизитыШапки); @@ -3357,12 +3628,12 @@ ВывестиОбласть(ТабличныйДокумент, Макет, "СведенияОбОрганизации", Параметры); ИначеЕсли ТипПредставителя = "2" Тогда СведенияОбИндивидуальномПредпринимателе = Представитель.СведИП; - Параметры = РеквизитыИндивидуальногоПредпринимателя(СведенияОбИндивидуальномПредпринимателе); + Параметры = РеквизитыИндивидуальногоПредпринимателя(СведенияОбИндивидуальномПредпринимателе, ПоказыватьПерсональныеДанные); ВывестиОбласть(ТабличныйДокумент, Макет, "ЗаголовокСведенийОбИндивидуальномПредпринимателеУровень1"); ВывестиОбласть(ТабличныйДокумент, Макет, "СведенияОбИндивидуальномПредпринимателе", Параметры); ИначеЕсли ТипПредставителя = "3" Тогда СведенияОФизическомЛице = Представитель.СведФизЛ; - Параметры = РеквизитыДолжностногоЛица(СведенияОФизическомЛице); + Параметры = РеквизитыДолжностногоЛица(СведенияОФизическомЛице, Истина, ПоказыватьПерсональныеДанные); ВывестиОбласть(ТабличныйДокумент, Макет, "ЗаголовокФизическогоЛицаПредставителя", Параметры); ВывестиОбласть(ТабличныйДокумент, Макет, "СведенияОФизлице", Параметры); ИначеЕсли ТипПредставителя = "4" Тогда @@ -3461,17 +3732,12 @@ КонецПроцедуры -Процедура ВывестиСведенияОДоверителях(ТабличныйДокумент, Макет, СведенияОДоверителях, ДляПередоверия = Ложь) +Процедура ВывестиСведенияОДоверителях(ТабличныйДокумент, Макет, СведенияОДоверителях, ПоказыватьПерсональныеДанные) Для Каждого СведенияОДоверителе Из СведенияОДоверителях Цикл ТипДоверителя = СведенияОДоверителе.ТипДоверит; - - Если ДляПередоверия Тогда - Доверитель = СведенияОДоверителе.ДоверитПерв; - Иначе - Доверитель = СведенияОДоверителе.Доверит; - КонецЕсли; + Доверитель = СведенияОДоверителе.Доверит; ВывестиОтступ(ТабличныйДокумент, Макет); @@ -3500,20 +3766,20 @@ ВывестиОбласть(ТабличныйДокумент, Макет, "СведенияОбОрганизации", Параметры); Для Каждого СведенияОДолжностномЛице Из СведенияОДолжностныхЛицах Цикл - Параметры = РеквизитыДолжностногоЛица(СведенияОДолжностномЛице); + Параметры = РеквизитыДолжностногоЛица(СведенияОДолжностномЛице, Истина, ПоказыватьПерсональныеДанные); ВывестиОбласть(ТабличныйДокумент, Макет, "ЗаголовокЛицаДоверителяУровень3"); ВывестиОбласть(ТабличныйДокумент, Макет, "СведенияОФизлице", Параметры); КонецЦикла; КонецЕсли; Если СведенияОЕдиноличномИсполнительномОрганеИндивидуальномПредпринимателе <> Неопределено Тогда - Параметры = РеквизитыИндивидуальногоПредпринимателя(СведенияОЕдиноличномИсполнительномОрганеИндивидуальномПредпринимателе); + Параметры = РеквизитыИндивидуальногоПредпринимателя(СведенияОЕдиноличномИсполнительномОрганеИндивидуальномПредпринимателе, ПоказыватьПерсональныеДанные); ВывестиОбласть(ТабличныйДокумент, Макет, "ЗаголовокСведенийОбИндивидуальномПредпринимателеУровень2"); ВывестиОбласть(ТабличныйДокумент, Макет, "СведенияОбИндивидуальномПредпринимателе", Параметры); КонецЕсли; Если СведенияОЛицахДействующихОтИмениЮридическогоЛицаДоверителя <> Неопределено Тогда - Параметры = РеквизитыДолжностногоЛица(СведенияОЛицахДействующихОтИмениЮридическогоЛицаДоверителя); + Параметры = РеквизитыДолжностногоЛица(СведенияОЛицахДействующихОтИмениЮридическогоЛицаДоверителя, Истина, ПоказыватьПерсональныеДанные); ВывестиОбласть(ТабличныйДокумент, Макет, "ЗаголовокЛицаДоверителяУровень2"); ВывестиОбласть(ТабличныйДокумент, Макет, "СведенияОФизлице", Параметры); КонецЕсли; @@ -3531,7 +3797,7 @@ ВывестиОбласть(ТабличныйДокумент, Макет, "СведенияОбИностраннойОрганизации", Параметры); Для Каждого СведенияОРуководителеИностранногоЮридическогоЛица Из СведенияОРуководителяхИностранногоЮридическогоЛица Цикл - Параметры = РеквизитыДолжностногоЛица(СведенияОРуководителеИностранногоЮридическогоЛица); + Параметры = РеквизитыДолжностногоЛица(СведенияОРуководителеИностранногоЮридическогоЛица, Истина, ПоказыватьПерсональныеДанные); ВывестиОбласть(ТабличныйДокумент, Макет, "ЗаголовокЛицаДоверителяУровень2"); ВывестиОбласть(ТабличныйДокумент, Макет, "СведенияОФизлице", Параметры); КонецЦикла; @@ -3539,14 +3805,14 @@ ИначеЕсли ТипДоверителя = "3" Тогда СведенияОбИндивидуальномПредпринимателе = Доверитель.ИПДовер; - Параметры = РеквизитыИндивидуальногоПредпринимателя(СведенияОбИндивидуальномПредпринимателе); + Параметры = РеквизитыИндивидуальногоПредпринимателя(СведенияОбИндивидуальномПредпринимателе, ПоказыватьПерсональныеДанные); ВывестиОбласть(ТабличныйДокумент, Макет, "ЗаголовокСведенийОбИндивидуальномПредпринимателеУровень1"); ВывестиОбласть(ТабличныйДокумент, Макет, "СведенияОбИндивидуальномПредпринимателе", Параметры); ИначеЕсли ТипДоверителя = "4" Тогда СведенияОФизическомЛицеДоверителе = Доверитель.ФЛДовер; - Параметры = РеквизитыФизическогоЛицаДоверителя(СведенияОФизическомЛицеДоверителе); + Параметры = РеквизитыФизическогоЛицаДоверителя(СведенияОФизическомЛицеДоверителе, ПоказыватьПерсональныеДанные); ВывестиОбласть(ТабличныйДокумент, Макет, "ЗаголовокЛицаДоверителяУровень1"); ВывестиОбласть(ТабличныйДокумент, Макет, "СведенияОФизлице", Параметры); @@ -3555,7 +3821,7 @@ КонецЦикла; КонецПроцедуры -Процедура ВывестиПередоверие(ТабличныйДокумент, Макет, Передоверие) +Процедура ВывестиПередоверие(ТабличныйДокумент, Макет, Передоверие, ПоказыватьПерсональныеДанные) СведенияОПервоначальнойДоверенности = Передоверие.СвПервДовер; СведенияОДоверенностиОснованииПередоверия = Передоверие.СвПередов; @@ -3639,14 +3905,14 @@ ИначеЕсли ТипДоверителя = "3" Тогда СведенияОбИндивидуальномПредпринимателе = Доверитель.ИПДовер; - Параметры = РеквизитыИндивидуальногоПредпринимателя(СведенияОбИндивидуальномПредпринимателе); + Параметры = РеквизитыИндивидуальногоПредпринимателя(СведенияОбИндивидуальномПредпринимателе, ПоказыватьПерсональныеДанные); ВывестиОбласть(ТабличныйДокумент, Макет, "ЗаголовокСведенийОбИндивидуальномПредпринимателеВладельцеПолномочий"); ВывестиОбласть(ТабличныйДокумент, Макет, "СведенияОбИндивидуальномПредпринимателе", Параметры); ИначеЕсли ТипДоверителя = "4" Тогда СведенияОФизическомЛицеДоверителе = Доверитель.ФЛДовер; - Параметры = РеквизитыФизическогоЛицаДоверителя(СведенияОФизическомЛицеДоверителе); + Параметры = РеквизитыФизическогоЛицаДоверителя(СведенияОФизическомЛицеДоверителе, ПоказыватьПерсональныеДанные); ВывестиОбласть(ТабличныйДокумент, Макет, "ЗаголовокСведенийОФизическомЛицеВладельцеПолномочий"); ВывестиОбласть(ТабличныйДокумент, Макет, "СведенияОФизлице", Параметры); @@ -3684,7 +3950,7 @@ ВывестиОбласть(ТабличныйДокумент, Макет, "СведенияОбОрганизации", Параметры); Для Каждого СведенияОДолжностномЛице Из СведенияОДолжностныхЛицах Цикл - Параметры = РеквизитыДолжностногоЛица(СведенияОДолжностномЛице); + Параметры = РеквизитыДолжностногоЛица(СведенияОДолжностномЛице, Истина, ПоказыватьПерсональныеДанные); Параметры.Вставить("ПредставлениеДоверенности", ПредставлениеДоверенностиОснования); ВывестиОбласть(ТабличныйДокумент, Макет, "ЗаголовокЛицаДоверителяУровень3"); ВывестиОбласть(ТабличныйДокумент, Макет, "СведенияОФизлицеПоДоверенности", Параметры); @@ -3692,14 +3958,14 @@ КонецЕсли; Если СведенияОЕдиноличномИсполнительномОрганеИндивидуальномПредпринимателе <> Неопределено Тогда - Параметры = РеквизитыИндивидуальногоПредпринимателя(СведенияОЕдиноличномИсполнительномОрганеИндивидуальномПредпринимателе); + Параметры = РеквизитыИндивидуальногоПредпринимателя(СведенияОЕдиноличномИсполнительномОрганеИндивидуальномПредпринимателе, ПоказыватьПерсональныеДанные); Параметры.Вставить("ПредставлениеДоверенности", ПредставлениеДоверенностиОснования); ВывестиОбласть(ТабличныйДокумент, Макет, "ЗаголовокСведенийОбИндивидуальномПредпринимателеУровень2"); ВывестиОбласть(ТабличныйДокумент, Макет, "СведенияОбИндивидуальномПредпринимателеПоДоверенности", Параметры); КонецЕсли; Если СведенияОЛицахДействующихОтИмениЮридическогоЛицаДоверителя <> Неопределено Тогда - Параметры = РеквизитыДолжностногоЛица(СведенияОЛицахДействующихОтИмениЮридическогоЛицаДоверителя); + Параметры = РеквизитыДолжностногоЛица(СведенияОЛицахДействующихОтИмениЮридическогоЛицаДоверителя, Истина, ПоказыватьПерсональныеДанные); Параметры.Вставить("ПредставлениеДоверенности", ПредставлениеДоверенностиОснования); ВывестиОбласть(ТабличныйДокумент, Макет, "ЗаголовокЛицаДоверителяУровень2"); ВывестиОбласть(ТабличныйДокумент, Макет, "СведенияОФизлицеПоДоверенности", Параметры); @@ -3718,7 +3984,7 @@ ВывестиОбласть(ТабличныйДокумент, Макет, "СведенияОбИностраннойОрганизации", Параметры); Для Каждого СведенияОРуководителеИностранногоЮридическогоЛица Из СведенияОРуководителяхИностранногоЮридическогоЛица Цикл - Параметры = РеквизитыДолжностногоЛица(СведенияОРуководителеИностранногоЮридическогоЛица); + Параметры = РеквизитыДолжностногоЛица(СведенияОРуководителеИностранногоЮридическогоЛица, Истина, ПоказыватьПерсональныеДанные); Параметры.Вставить("ПредставлениеДоверенности", ПредставлениеДоверенностиОснования); ВывестиОбласть(ТабличныйДокумент, Макет, "ЗаголовокЛицаДоверителяУровень2"); ВывестиОбласть(ТабличныйДокумент, Макет, "СведенияОФизлицеПоДоверенности", Параметры); @@ -3727,7 +3993,7 @@ ИначеЕсли ТипЛицаПередавшегоПолномочия = "2" Тогда СведенияОбИндивидуальномПредпринимателе = ЛицоПередавшееПолномочия.ИППерПолн; - Параметры = РеквизитыИндивидуальногоПредпринимателя(СведенияОбИндивидуальномПредпринимателе); + Параметры = РеквизитыИндивидуальногоПредпринимателя(СведенияОбИндивидуальномПредпринимателе, ПоказыватьПерсональныеДанные); Параметры.Вставить("ПредставлениеДоверенности", ПредставлениеДоверенностиОснования); ВывестиОбласть(ТабличныйДокумент, Макет, "ЗаголовокСведенийОбИндивидуальномПредпринимателеПередавшемПолномочияУровень1"); ВывестиОбласть(ТабличныйДокумент, Макет, "СведенияОбИндивидуальномПредпринимателеПоДоверенности", Параметры); @@ -3735,7 +4001,7 @@ ИначеЕсли ТипЛицаПередавшегоПолномочия = "3" Тогда СведенияОФизическомЛицеДоверителе = ЛицоПередавшееПолномочия.ФЛПерПолн; - Параметры = РеквизитыФизическогоЛицаДоверителя(СведенияОФизическомЛицеДоверителе); + Параметры = РеквизитыФизическогоЛицаДоверителя(СведенияОФизическомЛицеДоверителе, ПоказыватьПерсональныеДанные); Параметры.Вставить("ПредставлениеДоверенности", ПредставлениеДоверенностиОснования); ВывестиОбласть(ТабличныйДокумент, Макет, "ЗаголовокЛицаПередавшегоПолномочия"); ВывестиОбласть(ТабличныйДокумент, Макет, "СведенияОФизлицеПоДоверенности", Параметры); @@ -3750,7 +4016,7 @@ ВывестиОбласть(ТабличныйДокумент, Макет, "ЗаголовокСведенийОбОрганизацииПередавшейПолномочия"); ВывестиОбласть(ТабличныйДокумент, Макет, "СведенияОбОрганизации", Параметры); - Параметры = РеквизитыДолжностногоЛица(СведенияОДолжностномЛице); + Параметры = РеквизитыДолжностногоЛица(СведенияОДолжностномЛице, Истина, ПоказыватьПерсональныеДанные); Параметры.Вставить("ПредставлениеДоверенности", ПредставлениеДоверенностиОснования); ВывестиОбласть(ТабличныйДокумент, Макет, "ЗаголовокЛицаДоверителяУровень2"); ВывестиОбласть(ТабличныйДокумент, Макет, "СведенияОФизлицеПоДоверенности", Параметры); @@ -3775,12 +4041,12 @@ ВывестиОбласть(ТабличныйДокумент, Макет, "СведенияОбОрганизации", Параметры); ИначеЕсли ТипПредставителя = "2" Тогда СведенияОбИндивидуальномПредпринимателе = Представитель.СведИП; - Параметры = РеквизитыИндивидуальногоПредпринимателя(СведенияОбИндивидуальномПредпринимателе); + Параметры = РеквизитыИндивидуальногоПредпринимателя(СведенияОбИндивидуальномПредпринимателе, ПоказыватьПерсональныеДанные); ВывестиОбласть(ТабличныйДокумент, Макет, "ЗаголовокСведенийОбИндивидуальномПредпринимателеУровень1"); ВывестиОбласть(ТабличныйДокумент, Макет, "СведенияОбИндивидуальномПредпринимателе", Параметры); ИначеЕсли ТипПредставителя = "3" Тогда СведенияОФизическомЛице = Представитель.СведФизЛ; - Параметры = РеквизитыДолжностногоЛица(СведенияОФизическомЛице); + Параметры = РеквизитыДолжностногоЛица(СведенияОФизическомЛице, Истина, ПоказыватьПерсональныеДанные); ВывестиОбласть(ТабличныйДокумент, Макет, "ЗаголовокФизическогоЛицаПредставителя", Параметры); ВывестиОбласть(ТабличныйДокумент, Макет, "СведенияОФизлице", Параметры); ИначеЕсли ТипПредставителя = "4" Тогда diff --git a/SSL/src/Catalogs/МашиночитаемыеДоверенности/ObjectModule.bsl b/SSL/src/Catalogs/МашиночитаемыеДоверенности/ObjectModule.bsl index 8381502e8..2a22195b3 100644 --- a/SSL/src/Catalogs/МашиночитаемыеДоверенности/ObjectModule.bsl +++ b/SSL/src/Catalogs/МашиночитаемыеДоверенности/ObjectModule.bsl @@ -1,5 +1,5 @@ /////////////////////////////////////////////////////////////////////////////////////////////////////// -// Copyright (c) 2024, ООО 1С-Софт +// Copyright (c) 2025, ООО 1С-Софт // Все права защищены. Эта программа и сопроводительные материалы предоставляются // в соответствии с условиями лицензии Attribution 4.0 International (CC BY 4.0) // Текст лицензии доступен по ссылке: diff --git a/SSL/src/Catalogs/МашиночитаемыеДоверенностиПрисоединенныеФайлы/ManagerModule.bsl b/SSL/src/Catalogs/МашиночитаемыеДоверенностиПрисоединенныеФайлы/ManagerModule.bsl index d3e48151e..ccf8b6be2 100644 --- a/SSL/src/Catalogs/МашиночитаемыеДоверенностиПрисоединенныеФайлы/ManagerModule.bsl +++ b/SSL/src/Catalogs/МашиночитаемыеДоверенностиПрисоединенныеФайлы/ManagerModule.bsl @@ -1,5 +1,5 @@ /////////////////////////////////////////////////////////////////////////////////////////////////////// -// Copyright (c) 2024, ООО 1С-Софт +// Copyright (c) 2025, ООО 1С-Софт // Все права защищены. Эта программа и сопроводительные материалы предоставляются // в соответствии с условиями лицензии Attribution 4.0 International (CC BY 4.0) // Текст лицензии доступен по ссылке: diff --git a/SSL/src/Catalogs/НаборыГруппДоступа/Forms/ФормаСписка/Module.bsl b/SSL/src/Catalogs/НаборыГруппДоступа/Forms/ФормаСписка/Module.bsl index 59e9c9a2a..f05910129 100644 --- a/SSL/src/Catalogs/НаборыГруппДоступа/Forms/ФормаСписка/Module.bsl +++ b/SSL/src/Catalogs/НаборыГруппДоступа/Forms/ФормаСписка/Module.bsl @@ -1,5 +1,5 @@ /////////////////////////////////////////////////////////////////////////////////////////////////////// -// Copyright (c) 2024, ООО 1С-Софт +// Copyright (c) 2025, ООО 1С-Софт // Все права защищены. Эта программа и сопроводительные материалы предоставляются // в соответствии с условиями лицензии Attribution 4.0 International (CC BY 4.0) // Текст лицензии доступен по ссылке: diff --git a/SSL/src/Catalogs/НаборыГруппДоступа/Forms/ФормаЭлемента/Module.bsl b/SSL/src/Catalogs/НаборыГруппДоступа/Forms/ФормаЭлемента/Module.bsl index afc309fdc..27d129189 100644 --- a/SSL/src/Catalogs/НаборыГруппДоступа/Forms/ФормаЭлемента/Module.bsl +++ b/SSL/src/Catalogs/НаборыГруппДоступа/Forms/ФормаЭлемента/Module.bsl @@ -1,5 +1,5 @@ /////////////////////////////////////////////////////////////////////////////////////////////////////// -// Copyright (c) 2024, ООО 1С-Софт +// Copyright (c) 2025, ООО 1С-Софт // Все права защищены. Эта программа и сопроводительные материалы предоставляются // в соответствии с условиями лицензии Attribution 4.0 International (CC BY 4.0) // Текст лицензии доступен по ссылке: diff --git a/SSL/src/Catalogs/НаборыДополнительныхРеквизитовИСведений/Commands/ДополнительныеРеквизиты/CommandModule.bsl b/SSL/src/Catalogs/НаборыДополнительныхРеквизитовИСведений/Commands/ДополнительныеРеквизиты/CommandModule.bsl index 20b34648d..e9965ff60 100644 --- a/SSL/src/Catalogs/НаборыДополнительныхРеквизитовИСведений/Commands/ДополнительныеРеквизиты/CommandModule.bsl +++ b/SSL/src/Catalogs/НаборыДополнительныхРеквизитовИСведений/Commands/ДополнительныеРеквизиты/CommandModule.bsl @@ -1,5 +1,5 @@ /////////////////////////////////////////////////////////////////////////////////////////////////////// -// Copyright (c) 2024, ООО 1С-Софт +// Copyright (c) 2025, ООО 1С-Софт // Все права защищены. Эта программа и сопроводительные материалы предоставляются // в соответствии с условиями лицензии Attribution 4.0 International (CC BY 4.0) // Текст лицензии доступен по ссылке: diff --git a/SSL/src/Catalogs/НаборыДополнительныхРеквизитовИСведений/Commands/ДополнительныеСведения/CommandModule.bsl b/SSL/src/Catalogs/НаборыДополнительныхРеквизитовИСведений/Commands/ДополнительныеСведения/CommandModule.bsl index 5000d1eb6..5e5adc0a2 100644 --- a/SSL/src/Catalogs/НаборыДополнительныхРеквизитовИСведений/Commands/ДополнительныеСведения/CommandModule.bsl +++ b/SSL/src/Catalogs/НаборыДополнительныхРеквизитовИСведений/Commands/ДополнительныеСведения/CommandModule.bsl @@ -1,5 +1,5 @@ /////////////////////////////////////////////////////////////////////////////////////////////////////// -// Copyright (c) 2024, ООО 1С-Софт +// Copyright (c) 2025, ООО 1С-Софт // Все права защищены. Эта программа и сопроводительные материалы предоставляются // в соответствии с условиями лицензии Attribution 4.0 International (CC BY 4.0) // Текст лицензии доступен по ссылке: diff --git a/SSL/src/Catalogs/НаборыДополнительныхРеквизитовИСведений/Commands/Метки/CommandModule.bsl b/SSL/src/Catalogs/НаборыДополнительныхРеквизитовИСведений/Commands/Метки/CommandModule.bsl index 15a8b0522..a4632d192 100644 --- a/SSL/src/Catalogs/НаборыДополнительныхРеквизитовИСведений/Commands/Метки/CommandModule.bsl +++ b/SSL/src/Catalogs/НаборыДополнительныхРеквизитовИСведений/Commands/Метки/CommandModule.bsl @@ -1,5 +1,5 @@ /////////////////////////////////////////////////////////////////////////////////////////////////////// -// Copyright (c) 2024, ООО 1С-Софт +// Copyright (c) 2025, ООО 1С-Софт // Все права защищены. Эта программа и сопроводительные материалы предоставляются // в соответствии с условиями лицензии Attribution 4.0 International (CC BY 4.0) // Текст лицензии доступен по ссылке: diff --git a/SSL/src/Catalogs/НаборыДополнительныхРеквизитовИСведений/Forms/ФормаГруппы/Module.bsl b/SSL/src/Catalogs/НаборыДополнительныхРеквизитовИСведений/Forms/ФормаГруппы/Module.bsl index e0ea694d4..6df267ad1 100644 --- a/SSL/src/Catalogs/НаборыДополнительныхРеквизитовИСведений/Forms/ФормаГруппы/Module.bsl +++ b/SSL/src/Catalogs/НаборыДополнительныхРеквизитовИСведений/Forms/ФормаГруппы/Module.bsl @@ -1,5 +1,5 @@ /////////////////////////////////////////////////////////////////////////////////////////////////////// -// Copyright (c) 2024, ООО 1С-Софт +// Copyright (c) 2025, ООО 1С-Софт // Все права защищены. Эта программа и сопроводительные материалы предоставляются // в соответствии с условиями лицензии Attribution 4.0 International (CC BY 4.0) // Текст лицензии доступен по ссылке: diff --git a/SSL/src/Catalogs/НаборыДополнительныхРеквизитовИСведений/Forms/ФормаСписка/Module.bsl b/SSL/src/Catalogs/НаборыДополнительныхРеквизитовИСведений/Forms/ФормаСписка/Module.bsl index 49d7804b7..7eb086d44 100644 --- a/SSL/src/Catalogs/НаборыДополнительныхРеквизитовИСведений/Forms/ФормаСписка/Module.bsl +++ b/SSL/src/Catalogs/НаборыДополнительныхРеквизитовИСведений/Forms/ФормаСписка/Module.bsl @@ -1,5 +1,5 @@ /////////////////////////////////////////////////////////////////////////////////////////////////////// -// Copyright (c) 2024, ООО 1С-Софт +// Copyright (c) 2025, ООО 1С-Софт // Все права защищены. Эта программа и сопроводительные материалы предоставляются // в соответствии с условиями лицензии Attribution 4.0 International (CC BY 4.0) // Текст лицензии доступен по ссылке: diff --git a/SSL/src/Catalogs/НаборыДополнительныхРеквизитовИСведений/Forms/ФормаЭлемента/Module.bsl b/SSL/src/Catalogs/НаборыДополнительныхРеквизитовИСведений/Forms/ФормаЭлемента/Module.bsl index d8287302e..600f3caae 100644 --- a/SSL/src/Catalogs/НаборыДополнительныхРеквизитовИСведений/Forms/ФормаЭлемента/Module.bsl +++ b/SSL/src/Catalogs/НаборыДополнительныхРеквизитовИСведений/Forms/ФормаЭлемента/Module.bsl @@ -1,5 +1,5 @@ /////////////////////////////////////////////////////////////////////////////////////////////////////// -// Copyright (c) 2024, ООО 1С-Софт +// Copyright (c) 2025, ООО 1С-Софт // Все права защищены. Эта программа и сопроводительные материалы предоставляются // в соответствии с условиями лицензии Attribution 4.0 International (CC BY 4.0) // Текст лицензии доступен по ссылке: diff --git a/SSL/src/Catalogs/НаборыДополнительныхРеквизитовИСведений/ManagerModule.bsl b/SSL/src/Catalogs/НаборыДополнительныхРеквизитовИСведений/ManagerModule.bsl index 4f31d702c..78608a3a1 100644 --- a/SSL/src/Catalogs/НаборыДополнительныхРеквизитовИСведений/ManagerModule.bsl +++ b/SSL/src/Catalogs/НаборыДополнительныхРеквизитовИСведений/ManagerModule.bsl @@ -1,5 +1,5 @@ /////////////////////////////////////////////////////////////////////////////////////////////////////// -// Copyright (c) 2024, ООО 1С-Софт +// Copyright (c) 2025, ООО 1С-Софт // Все права защищены. Эта программа и сопроводительные материалы предоставляются // в соответствии с условиями лицензии Attribution 4.0 International (CC BY 4.0) // Текст лицензии доступен по ссылке: diff --git a/SSL/src/Catalogs/НаборыДополнительныхРеквизитовИСведений/ObjectModule.bsl b/SSL/src/Catalogs/НаборыДополнительныхРеквизитовИСведений/ObjectModule.bsl index 30f578b92..d5218c355 100644 --- a/SSL/src/Catalogs/НаборыДополнительныхРеквизитовИСведений/ObjectModule.bsl +++ b/SSL/src/Catalogs/НаборыДополнительныхРеквизитовИСведений/ObjectModule.bsl @@ -1,5 +1,5 @@ /////////////////////////////////////////////////////////////////////////////////////////////////////// -// Copyright (c) 2024, ООО 1С-Софт +// Copyright (c) 2025, ООО 1С-Софт // Все права защищены. Эта программа и сопроводительные материалы предоставляются // в соответствии с условиями лицензии Attribution 4.0 International (CC BY 4.0) // Текст лицензии доступен по ссылке: diff --git a/SSL/src/Catalogs/НастройкиАвторизацииИнтернетСервисов/Forms/ПомощникРегистрацииПриложения/Form.form b/SSL/src/Catalogs/НастройкиАвторизацииИнтернетСервисов/Forms/ПомощникРегистрацииПриложения/Form.form new file mode 100644 index 000000000..b00a77bb6 --- /dev/null +++ b/SSL/src/Catalogs/НастройкиАвторизацииИнтернетСервисов/Forms/ПомощникРегистрацииПриложения/Form.form @@ -0,0 +1,810 @@ +<?xml version="1.0" encoding="UTF-8"?> +<form:Form xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns:core="http://g5.1c.ru/v8/dt/mcore" xmlns:form="http://g5.1c.ru/v8/dt/form"> + <items xsi:type="form:FormGroup"> + <name>Основное</name> + <id>30</id> + <items xsi:type="form:FormGroup"> + <name>Страницы</name> + <id>36</id> + <items xsi:type="form:FormGroup"> + <name>СтраницаПочтовыйСервис</name> + <id>38</id> + <items xsi:type="form:FormField"> + <name>ПочтовыйСервис</name> + <id>45</id> + <title> + <key>ru</key> + <value>Почтовый сервис</value> + + true + true + + true + + + ПочтовыйСервис + + Top + + OnChange + ПочтовыйСервисПриИзменении + + + ПочтовыйСервисРасширеннаяПодсказка + 47 + Label + true + true + + Left + + + + ПочтовыйСервисКонтекстноеМеню + 46 + true + + InputField + Enter + true + Left + true + + true + true + true + true + true + true + true + true + + + ru + Яндекс + + + yandex.ru + + + + + ru + Mail.ru + + + mail.ru + + + + + ru + Gmail.com + + + gmail.com + + + + + ru + Outlook.com + + + office365.com + + + Normal + + + true + true + + true + + + <key>ru</key> + <value>Почтовый сервис</value> + + + СтраницаПочтовыйСервисРасширеннаяПодсказка + 39 + Label + true + true + + Left + + + Page + + Vertical + auto + false + + + + СтраницаРегистрацияПриложения + 40 + + ПочтовыйСервисРегистрацияПриложения + 48 + + <key>ru</key> + <value>Почтовый сервис</value> + + true + true + + true + + + ПочтовыйСервис + + Top + + OnChange + ПочтовыйСервисПриИзменении + + + ПочтовыйСервисРегистрацияПриложенияРасширеннаяПодсказка + 50 + Label + true + true + + Left + + + + ПочтовыйСервисРегистрацияПриложенияКонтекстноеМеню + 49 + true + + InputField + Enter + true + Left + true + + true + true + true + true + true + true + true + true + + + ru + Яндекс + + + yandex.ru + + + + + ru + Mail.ru + + + mail.ru + + + + + ru + Gmail.com + + + gmail.com + + + + + ru + Outlook.com + + + office365.com + + + Normal + + + + ГруппаРегистрацияПриложения + 1 + + ПояснениеПоАдресуПеренаправления + 6 + + <key>ru</key> + <value> +Из настроек регистрации приложения заполните следующие поля: +</value> + + true + true + + true + + + ПояснениеПоАдресуПеренаправленияРасширеннаяПодсказка + 8 + Label + true + true + + Left + + + + ПояснениеПоАдресуПеренаправленияКонтекстноеМеню + 7 + true + + true + Label + 50 + + Left + + + + АдресПеренаправления + 9 + + <key>ru</key> + <value>Адрес перенаправления (redirect_uri)</value> + + true + true + + true + + + АдресПеренаправления + + Top + + АдресПеренаправленияРасширеннаяПодсказка + 11 + Label + true + true + + Left + + + + АдресПеренаправленияКонтекстноеМеню + 10 + true + + InputField + true + Enter + true + Left + true + + true + true + true + true + true + true + true + Normal + + + + ПояснениеПоИдентификаторуПриложения + 12 + true + true + + true + + + ПояснениеПоИдентификаторуПриложенияРасширеннаяПодсказка + 14 + Label + true + true + + Left + + + + ПояснениеПоИдентификаторуПриложенияКонтекстноеМеню + 13 + true + + true + Label + 50 + + Left + + + + ИдентификаторПриложения + 15 + + <key>ru</key> + <value>Идентификатор приложения (client_id)</value> + + true + true + + true + + + ИдентификаторПриложения + + Top + + ИдентификаторПриложенияРасширеннаяПодсказка + 17 + Label + true + true + + Left + + + + ИдентификаторПриложенияКонтекстноеМеню + 16 + true + + InputField + true + Enter + true + Left + true + + true + true + true + true + true + true + true + Normal + + + + ПояснениеПоПаролюПриложения + 18 + true + true + + true + + + ПояснениеПоПаролюПриложенияРасширеннаяПодсказка + 20 + Label + true + true + + Left + + + + ПояснениеПоПаролюПриложенияКонтекстноеМеню + 19 + true + + true + Label + 50 + + Left + + + + ПарольПриложения + 21 + + <key>ru</key> + <value>Пароль приложения (client_secret)</value> + + true + true + + true + + + ПарольПриложения + + Top + + ПарольПриложенияРасширеннаяПодсказка + 23 + Label + true + true + + Left + + + + ПарольПриложенияКонтекстноеМеню + 22 + true + + InputField + true + Enter + true + Left + true + + true + true + true + true + true + true + true + Normal + + + + ДополнительноеПояснение + 24 + + <key>ru</key> + <value>У некоторых сервисов новое зарегистрированное приложение становится доступным не сразу. Рекомендуется после регистрации подождать несколько минут, прежде чем продолжить настройку.</value> + + true + true + + true + + + ДополнительноеПояснениеРасширеннаяПодсказка + 26 + Label + true + true + + Left + + + + ДополнительноеПояснениеКонтекстноеМеню + 25 + true + + Label + 50 + + Left + + + true + true + + true + + + <key>ru</key> + <value>Регистрация приложения</value> + + + ГруппаРегистрацияПриложенияРасширеннаяПодсказка + 2 + Label + true + true + + Left + + + UsualGroup + + Vertical + Auto + WeakSeparation + true + true + Auto + Auto + + + true + true + + true + + + <key>ru</key> + <value>Регистрация приложения</value> + + + СтраницаРегистрацияПриложенияРасширеннаяПодсказка + 41 + Label + true + true + + Left + + + Page + + Vertical + auto + false + + + true + true + + true + + + <key>ru</key> + <value>Страницы</value> + + + СтраницыРасширеннаяПодсказка + 37 + Label + true + true + + Left + + + Pages + + Auto + + + + ГруппаКоманднаяПанель + 34 + + Зарегистрировать + 32 + + <key>ru</key> + <value>Зарегистрировать</value> + + true + true + + true + + + ЗарегистрироватьРасширеннаяПодсказка + 33 + Label + true + true + + Left + + + Form.Command.Зарегистрировать + Auto + true + true + true + UserCmds + Auto + + + Справка + 51 + true + true + + true + + + СправкаРасширеннаяПодсказка + 52 + Label + true + true + + Left + + + Form.StandardCommand.Help + Normal + Auto + true + true + UserCmds + Auto + + true + true + + true + + + <key>ru</key> + <value>Командная панель</value> + + + ГруппаКоманднаяПанельРасширеннаяПодсказка + 35 + Label + true + true + + Left + + + CommandBar + + Right + + + true + true + + true + + + <key>ru</key> + <value>Основное</value> + + + ОсновноеРасширеннаяПодсказка + 31 + Label + true + true + + Left + + + UsualGroup + + Vertical + Auto + true + true + Auto + Auto + + + + ФормаКоманднаяПанель + -1 + Left + + LockOwner + true + true + true + Vertical + true + true + true + auto + true + + АдресПеренаправления + + <key>ru</key> + <value>Адрес перенаправления</value> + + 1 + + String + + + + true + + + true + + + + ИдентификаторПриложения + + <key>ru</key> + <value>Идентификатор приложения</value> + + 2 + + String + + + + true + + + true + + + + ПарольПриложения + + <key>ru</key> + <value>Ключ доступа приложения</value> + + 3 + + String + + + + true + + + true + + + + ПочтовыйСервис + + <key>ru</key> + <value>Почтовый сервис</value> + + 4 + + String + + + + true + + + true + + ShowError + + + НастройкиПочтовогоСервиса + 5 + + + true + + + true + + + + Зарегистрировать + + <key>ru</key> + <value>Зарегистрировать</value> + + 1 + + ru + Зарегистрировать + + + true + + + + Зарегистрировать + + + Auto + Auto + + + + + + diff --git a/SSL/src/Catalogs/НастройкиАвторизацииИнтернетСервисов/Forms/ПомощникРегистрацииПриложения/Help/ru.html b/SSL/src/Catalogs/НастройкиАвторизацииИнтернетСервисов/Forms/ПомощникРегистрацииПриложения/Help/ru.html new file mode 100644 index 000000000..71ea2fad8 --- /dev/null +++ b/SSL/src/Catalogs/НастройкиАвторизацииИнтернетСервисов/Forms/ПомощникРегистрацииПриложения/Help/ru.html @@ -0,0 +1,21 @@ + +

Предназначен для регистрации приложения для авторизации по протоколу OAuth 2.0.

+

Почтовый сервис

+

Из выпадающего списка необходимо выбрать нужный почтовый сервис для авторизации, например, Яндекс. Также для выбора в приложении доступны почтовые сервисы Mail.ru, Gmail.com, Outlook.com. 

+

См. также:

+ \ No newline at end of file diff --git a/SSL/src/Catalogs/НастройкиАвторизацииИнтернетСервисов/Forms/ПомощникРегистрацииПриложения/Module.bsl b/SSL/src/Catalogs/НастройкиАвторизацииИнтернетСервисов/Forms/ПомощникРегистрацииПриложения/Module.bsl new file mode 100644 index 000000000..50487f38e --- /dev/null +++ b/SSL/src/Catalogs/НастройкиАвторизацииИнтернетСервисов/Forms/ПомощникРегистрацииПриложения/Module.bsl @@ -0,0 +1,165 @@ +/////////////////////////////////////////////////////////////////////////////////////////////////////// +// Copyright (c) 2025, ООО 1С-Софт +// Все права защищены. Эта программа и сопроводительные материалы предоставляются +// в соответствии с условиями лицензии Attribution 4.0 International (CC BY 4.0) +// Текст лицензии доступен по ссылке: +// https://creativecommons.org/licenses/by/4.0/legalcode +/////////////////////////////////////////////////////////////////////////////////////////////////////// + +#Область ОбработчикиСобытийЭлементовШапкиФормы + +&НаКлиенте +Процедура ПочтовыйСервисПриИзменении(Элемент) + + Если Не ЗначениеЗаполнено(ПочтовыйСервис) Тогда + Элементы.Страницы.ТекущаяСтраница = Элементы.СтраницаПочтовыйСервис; + Возврат; + КонецЕсли; + + Элементы.Страницы.ТекущаяСтраница = Элементы.СтраницаРегистрацияПриложения; + + ЗаполнитьНастройкиПочтовогоСервиса(); + ЗаполнитьПоясненияРегистрацииПриложения(); + +КонецПроцедуры + +#КонецОбласти + +#Область ОбработчикиКомандФормы + +&НаКлиенте +Процедура Зарегистрировать(Команда) + + Если Не ПроверитьЗаполнение() Тогда + Возврат; + КонецЕсли; + + Отказ = Ложь; + ПроверитьЗаполнениеРеквизитовРегистрацииПриложения(Отказ); + + Если Отказ Тогда + Возврат; + КонецЕсли; + + ЗаписатьНастройкиАвторизации(); + Закрыть(); + + ПоказатьОповещениеПользователя(, , НСтр("ru = 'Приложение зарегистрировано.'"), БиблиотекаКартинок.ДиалогИнформация); + +КонецПроцедуры + +#КонецОбласти + +#Область СлужебныеПроцедурыИФункции + +&НаСервере +Процедура ЗаполнитьНастройкиПочтовогоСервиса() + + УстановитьПривилегированныйРежим(Истина); + НастройкиПодключения = Справочники.УчетныеЗаписиЭлектроннойПочты.НастройкиПодключенияПоАдресуЭлектроннойПочты(ПочтовыйСервис, , Истина); + УстановитьПривилегированныйРежим(Ложь); + + НастройкиПочтовогоСервиса = НастройкиПодключения.НастройкиАвторизации; + +КонецПроцедуры + +&НаКлиенте +Процедура ЗаполнитьПоясненияРегистрацииПриложения() + + Если Не ЗначениеЗаполнено(НастройкиПочтовогоСервиса) Тогда + Возврат; + КонецЕсли; + + АдресПеренаправления = АдресПеренаправленияКодаАвторизации(НастройкиПочтовогоСервиса); + + Если Не ЗначениеЗаполнено(НастройкиПочтовогоСервиса.ПояснениеПоАдресуПеренаправления) + И Не ЗначениеЗаполнено(НастройкиПочтовогоСервиса.ПояснениеПоИдентификаторуПриложения) + И Не ЗначениеЗаполнено(НастройкиПочтовогоСервиса.ПояснениеПоПаролюПриложения) Тогда + Возврат; + КонецЕсли; + + ПояснениеПоАдресуПеренаправления = НастройкиПочтовогоСервиса.ПояснениеПоАдресуПеренаправления; + ПояснениеПоИдентификаторуПриложения = НастройкиПочтовогоСервиса.ПояснениеПоИдентификаторуПриложения; + ПояснениеПоПаролюПриложения = НастройкиПочтовогоСервиса.ПояснениеПоПаролюПриложения; + ДополнительноеПояснение = НастройкиПочтовогоСервиса.ДополнительноеПояснение; + + ПсевдонимАдресаПеренаправления = НастройкиПочтовогоСервиса.ПсевдонимАдресаПеренаправления; + ПсевдонимИдентификатораПриложения = НастройкиПочтовогоСервиса.ПсевдонимИдентификатораПриложения; + ПсевдонимПароляПриложения = НастройкиПочтовогоСервиса.ПсевдонимПароляПриложения; + + Элементы.ПояснениеПоАдресуПеренаправления.Заголовок = ПояснениеПоАдресуПеренаправления; + Элементы.ПояснениеПоИдентификаторуПриложения.Заголовок = ПояснениеПоИдентификаторуПриложения; + Элементы.ПояснениеПоПаролюПриложения.Заголовок = ПояснениеПоПаролюПриложения; + Элементы.ДополнительноеПояснение.Заголовок = ДополнительноеПояснение; + + Элементы.АдресПеренаправления.Заголовок = ПсевдонимАдресаПеренаправления; + Элементы.ИдентификаторПриложения.Заголовок = ПсевдонимИдентификатораПриложения; + Элементы.ПарольПриложения.Заголовок = ПсевдонимПароляПриложения; + + Элементы.ПояснениеПоПаролюПриложения.Видимость = НастройкиПочтовогоСервиса.ИспользоватьПарольПриложения; + Элементы.ПарольПриложения.Видимость = НастройкиПочтовогоСервиса.ИспользоватьПарольПриложения; + + Элементы.ПояснениеПоАдресуПеренаправления.Видимость = ЗначениеЗаполнено(ПояснениеПоАдресуПеренаправления); + Элементы.ПояснениеПоИдентификаторуПриложения.Видимость = ЗначениеЗаполнено(ПояснениеПоИдентификаторуПриложения); + Элементы.ПояснениеПоПаролюПриложения.Видимость = ЗначениеЗаполнено(ПояснениеПоПаролюПриложения); + + Элементы.АдресПеренаправления.Видимость = ЗначениеЗаполнено(ПсевдонимАдресаПеренаправления); + +КонецПроцедуры + +&НаСервереБезКонтекста +Функция АдресПеренаправленияКодаАвторизации(Знач НастройкиПочтовогоСервиса) + + АдресПеренаправленияКодаАвторизации = ""; + + Если РаботаСПочтовымиСообщениямиСлужебный.ОткрытаяАвторизацияПочтовогоСервисаОпубликована() Тогда + АдресПеренаправленияКодаАвторизации = РаботаСПочтовымиСообщениямиСлужебный.АдресОткрытойАвторизацииПочтовогоСервиса(); + Иначе + АдресПеренаправленияКодаАвторизации = НастройкиПочтовогоСервиса.АдресПеренаправления; + КонецЕсли; + + Если Не ЗначениеЗаполнено(АдресПеренаправленияКодаАвторизации) Тогда + АдресПеренаправленияКодаАвторизации = НастройкиПочтовогоСервиса.АдресПеренаправленияПоУмолчанию; + КонецЕсли; + + Возврат АдресПеренаправленияКодаАвторизации; + +КонецФункции + +&НаКлиенте +Процедура ПроверитьЗаполнениеРеквизитовРегистрацииПриложения(Отказ) + + ОчиститьСообщения(); + + ПроверитьЗаполнениеРеквизита(Элементы.АдресПеренаправления, Отказ); + ПроверитьЗаполнениеРеквизита(Элементы.ИдентификаторПриложения, Отказ); + ПроверитьЗаполнениеРеквизита(Элементы.ПарольПриложения, Отказ); + +КонецПроцедуры + +&НаКлиенте +Процедура ПроверитьЗаполнениеРеквизита(Элемент, Отказ) + + ИмяРеквизита = Элемент.Имя; + + Если Элемент.Видимость И Не ЗначениеЗаполнено(ЭтотОбъект[ИмяРеквизита]) Тогда + ТекстСообщения = СтроковыеФункцииКлиентСервер.ПодставитьПараметрыВСтроку(НСтр("ru = 'Введите %1'"), Элемент.Заголовок); + ОбщегоНазначенияКлиент.СообщитьПользователю(ТекстСообщения, , ИмяРеквизита, , Отказ); + КонецЕсли; + +КонецПроцедуры + +&НаСервере +Процедура ЗаписатьНастройкиАвторизации() + + НастройкиАвторизации = НастройкиПочтовогоСервиса; + НастройкиАвторизации.ПарольПриложения = ПарольПриложения; + НастройкиАвторизации.ИдентификаторПриложения = ИдентификаторПриложения; + НастройкиАвторизации.АдресПеренаправления = АдресПеренаправления; + + УстановитьПривилегированныйРежим(Истина); + Справочники.НастройкиАвторизацииИнтернетСервисов.ЗаписатьНастройкиАвторизации(НастройкиАвторизации); + +КонецПроцедуры + +#КонецОбласти diff --git a/SSL/src/Catalogs/НастройкиАвторизацииИнтернетСервисов/Forms/ФормаЭлемента/Form.form b/SSL/src/Catalogs/НастройкиАвторизацииИнтернетСервисов/Forms/ФормаЭлемента/Form.form index bb161cae0..39e1b9e3c 100644 --- a/SSL/src/Catalogs/НастройкиАвторизацииИнтернетСервисов/Forms/ФормаЭлемента/Form.form +++ b/SSL/src/Catalogs/НастройкиАвторизацииИнтернетСервисов/Forms/ФормаЭлемента/Form.form @@ -665,7 +665,14 @@ - + + + 0 + FormNavigationPanelGoTo + 0 + + + diff --git a/SSL/src/Catalogs/НастройкиАвторизацииИнтернетСервисов/Forms/ФормаЭлемента/Module.bsl b/SSL/src/Catalogs/НастройкиАвторизацииИнтернетСервисов/Forms/ФормаЭлемента/Module.bsl index b9e391f21..85ace959b 100644 --- a/SSL/src/Catalogs/НастройкиАвторизацииИнтернетСервисов/Forms/ФормаЭлемента/Module.bsl +++ b/SSL/src/Catalogs/НастройкиАвторизацииИнтернетСервисов/Forms/ФормаЭлемента/Module.bsl @@ -1,5 +1,5 @@ /////////////////////////////////////////////////////////////////////////////////////////////////////// -// Copyright (c) 2024, ООО 1С-Софт +// Copyright (c) 2025, ООО 1С-Софт // Все права защищены. Эта программа и сопроводительные материалы предоставляются // в соответствии с условиями лицензии Attribution 4.0 International (CC BY 4.0) // Текст лицензии доступен по ссылке: diff --git a/SSL/src/Catalogs/НастройкиАвторизацииИнтернетСервисов/Help/ru.html b/SSL/src/Catalogs/НастройкиАвторизацииИнтернетСервисов/Help/ru.html new file mode 100644 index 000000000..057a93d4e --- /dev/null +++ b/SSL/src/Catalogs/НастройкиАвторизацииИнтернетСервисов/Help/ru.html @@ -0,0 +1,26 @@ + +

Предназначен для настройки приложений для работы по протоколу OAuth 2.0.

+

См. также:

+ \ No newline at end of file diff --git a/SSL/src/Catalogs/НастройкиАвторизацииИнтернетСервисов/ManagerModule.bsl b/SSL/src/Catalogs/НастройкиАвторизацииИнтернетСервисов/ManagerModule.bsl index f18b48a42..c98229a43 100644 --- a/SSL/src/Catalogs/НастройкиАвторизацииИнтернетСервисов/ManagerModule.bsl +++ b/SSL/src/Catalogs/НастройкиАвторизацииИнтернетСервисов/ManagerModule.bsl @@ -1,5 +1,5 @@ /////////////////////////////////////////////////////////////////////////////////////////////////////// -// Copyright (c) 2024, ООО 1С-Софт +// Copyright (c) 2025, ООО 1С-Софт // Все права защищены. Эта программа и сопроводительные материалы предоставляются // в соответствии с условиями лицензии Attribution 4.0 International (CC BY 4.0) // Текст лицензии доступен по ссылке: @@ -10,6 +10,20 @@ #Область СлужебныеПроцедурыИФункции +Процедура ОбработкаПолученияФормы(ВидФормы, Параметры, ВыбраннаяФорма, ДополнительнаяИнформация, СтандартнаяОбработка) + + Если ВидФормы = "ФормаОбъекта" + И Не Параметры.Свойство("Ключ") // АПК:1415 Динамический состав свойств. + И Не Параметры.Свойство("ЗначениеКопирования") // АПК:1415 Динамический состав свойств. + И ПравоДоступа("Редактирование", Метаданные.Справочники.НастройкиАвторизацииИнтернетСервисов) Тогда + + ВыбраннаяФорма = "ПомощникРегистрацииПриложения"; + СтандартнаяОбработка = Ложь; + + КонецЕсли; + +КонецПроцедуры + // Возвращаемое значение: // Структура: // * Ссылка - СправочникСсылка.НастройкиАвторизацииИнтернетСервисов @@ -62,6 +76,7 @@ НастройкиАвторизации.Вставить("ПсевдонимИдентификатораПриложения", ""); НастройкиАвторизации.Вставить("ПсевдонимПароляПриложения", ""); НастройкиАвторизации.Вставить("АдресПеренаправленияПоУмолчанию", ""); + НастройкиАвторизации.Вставить("ПодсказкаВводаПароля", ""); ТекстЗапроса = "ВЫБРАТЬ @@ -181,7 +196,7 @@ ДобавитьРазрешениеДляИнтернетРесурса(Разрешения, Выборка.АдресАвторизации); ДобавитьРазрешениеДляИнтернетРесурса(Разрешения, Выборка.АдресПолученияКлюча); ДобавитьРазрешениеДляИнтернетРесурса(Разрешения, Выборка.АдресРегистрацииУстройства); - + Результат.Вставить(Выборка.Ссылка, Разрешения); КонецЦикла; diff --git a/SSL/src/Catalogs/НастройкиАвторизацииИнтернетСервисов/ObjectModule.bsl b/SSL/src/Catalogs/НастройкиАвторизацииИнтернетСервисов/ObjectModule.bsl index f07dd0673..0ee22d1a1 100644 --- a/SSL/src/Catalogs/НастройкиАвторизацииИнтернетСервисов/ObjectModule.bsl +++ b/SSL/src/Catalogs/НастройкиАвторизацииИнтернетСервисов/ObjectModule.bsl @@ -1,5 +1,5 @@ /////////////////////////////////////////////////////////////////////////////////////////////////////// -// Copyright (c) 2024, ООО 1С-Софт +// Copyright (c) 2025, ООО 1С-Софт // Все права защищены. Эта программа и сопроводительные материалы предоставляются // в соответствии с условиями лицензии Attribution 4.0 International (CC BY 4.0) // Текст лицензии доступен по ссылке: diff --git a/SSL/src/Catalogs/НастройкиАвторизацииИнтернетСервисов/НастройкиАвторизацииИнтернетСервисов.mdo b/SSL/src/Catalogs/НастройкиАвторизацииИнтернетСервисов/НастройкиАвторизацииИнтернетСервисов.mdo index a5b30e7bb..512676a6c 100644 --- a/SSL/src/Catalogs/НастройкиАвторизацииИнтернетСервисов/НастройкиАвторизацииИнтернетСервисов.mdo +++ b/SSL/src/Catalogs/НастройкиАвторизацииИнтернетСервисов/НастройкиАвторизацииИнтернетСервисов.mdo @@ -95,11 +95,16 @@ Use + + + ru + + Managed Use ru - Настройки авторизации Интернет-сервиса + Настройка авторизации Интернет-сервисов 2 true @@ -377,4 +382,18 @@ PersonalComputer MobileDevice + + ПомощникРегистрацииПриложения + + ru + Помощник регистрации приложения + + + + ru + + + PersonalComputer + MobileDevice + diff --git a/SSL/src/Catalogs/НастройкиОтправкиВГосключ/Commands/НастройкиОтправкиВГосключ/CommandModule.bsl b/SSL/src/Catalogs/НастройкиОтправкиВГосключ/Commands/НастройкиОтправкиВГосключ/CommandModule.bsl new file mode 100644 index 000000000..410b7b789 --- /dev/null +++ b/SSL/src/Catalogs/НастройкиОтправкиВГосключ/Commands/НастройкиОтправкиВГосключ/CommandModule.bsl @@ -0,0 +1,16 @@ +/////////////////////////////////////////////////////////////////////////////////////////////////////// +// Copyright (c) 2025, ООО 1С-Софт +// Все права защищены. Эта программа и сопроводительные материалы предоставляются +// в соответствии с условиями лицензии Attribution 4.0 International (CC BY 4.0) +// Текст лицензии доступен по ссылке: +// https://creativecommons.org/licenses/by/4.0/legalcode +/////////////////////////////////////////////////////////////////////////////////////////////////////// + +#Область ОбработчикиСобытий + +&НаКлиенте +Процедура ОбработкаКоманды(ПараметрКоманды, ПараметрыВыполненияКоманды) + ОткрытьФорму("Справочник.НастройкиОтправкиВГосключ.ФормаСписка",, ПараметрыВыполненияКоманды.Источник, ПараметрыВыполненияКоманды.Уникальность, ПараметрыВыполненияКоманды.Окно, ПараметрыВыполненияКоманды.НавигационнаяСсылка); +КонецПроцедуры + +#КонецОбласти \ No newline at end of file diff --git a/SSL/src/Catalogs/НастройкиОтправкиВГосключ/Forms/ФормаСписка/Attributes/Список/ExtInfo/ListSettings.dcss b/SSL/src/Catalogs/НастройкиОтправкиВГосключ/Forms/ФормаСписка/Attributes/Список/ExtInfo/ListSettings.dcss new file mode 100644 index 000000000..57a872c96 --- /dev/null +++ b/SSL/src/Catalogs/НастройкиОтправкиВГосключ/Forms/ФормаСписка/Attributes/Список/ExtInfo/ListSettings.dcss @@ -0,0 +1,17 @@ + + + + Normal + dfcece9d-5077-440b-b6b3-45a5cb4538eb + + + Normal + 88619765-ccb3-46c6-ac52-38e9c992ebd4 + + + Normal + b75fecce-942b-4aed-abc9-e6a02e460fb3 + + Normal + 911b6018-f537-43e8-a417-da56b22f9aec + diff --git a/SSL/src/Catalogs/НастройкиОтправкиВГосключ/Forms/ФормаСписка/Form.form b/SSL/src/Catalogs/НастройкиОтправкиВГосключ/Forms/ФормаСписка/Form.form new file mode 100644 index 000000000..a0a5c4d20 --- /dev/null +++ b/SSL/src/Catalogs/НастройкиОтправкиВГосключ/Forms/ФормаСписка/Form.form @@ -0,0 +1,428 @@ + + + + СписокКомпоновщикНастроекПользовательскиеНастройки + 1 + true + true + + true + + + <key>ru</key> + <value>User settings group</value> + + false + + СписокКомпоновщикНастроекПользовательскиеНастройкиРасширеннаяПодсказка + 2 + Label + true + true + + Left + + + UsualGroup + + Vertical + Auto + WeakSeparation + true + true + Auto + Auto + + + + Список + 3 + true + true + + true + + + Список + + true + None + + Ссылка + 28 + true + true + + true + + + Список.Ref + + + СсылкаРасширеннаяПодсказка + 30 + Label + true + true + + Left + + + + СсылкаКонтекстноеМеню + 29 + true + + InputField + Enter + true + Left + true + + true + true + true + true + true + true + Normal + + + + СрокДействия + 19 + true + true + + true + + + Список.СрокДействия + + + СрокДействияРасширеннаяПодсказка + 21 + Label + true + true + + Left + + + + СрокДействияКонтекстноеМеню + 20 + true + + InputField + Enter + true + Left + true + + true + true + true + true + true + true + Normal + + + + Организация + 25 + true + true + + true + + + Список.Организация + + + ОрганизацияРасширеннаяПодсказка + 27 + Label + true + true + + Left + + + + ОрганизацияКонтекстноеМеню + 26 + true + + InputField + Enter + true + Left + true + + true + true + true + true + true + true + Normal + + + + Ответственный + 22 + true + true + + true + + + Список.Ответственный + + + ОтветственныйРасширеннаяПодсказка + 24 + Label + true + true + + Left + + + + ОтветственныйКонтекстноеМеню + 23 + true + + InputField + Enter + true + Left + true + + true + true + true + true + true + true + Normal + + + + Комментарий + 31 + true + true + + true + + + Список.Комментарий + + + КомментарийРасширеннаяПодсказка + 33 + Label + true + true + + Left + + + + КомментарийКонтекстноеМеню + 32 + true + + InputField + Enter + true + Left + true + + true + true + true + true + true + true + Normal + + + None + + СписокКоманднаяПанель + 5 + Left + + + СписокСтрокаПоиска + 7 + + СписокСтрокаПоискаРасширеннаяПодсказка + 9 + Label + true + true + + Left + + + + СписокСтрокаПоискаКонтекстноеМеню + 8 + true + + Список + + true + + + + СписокСостояниеПросмотра + 10 + + СписокСостояниеПросмотраРасширеннаяПодсказка + 12 + Label + true + true + + Left + + + + СписокСостояниеПросмотраКонтекстноеМеню + 11 + true + + ViewStatusAddition + Список + + true + + + + СписокУправлениеПоиском + 13 + + СписокУправлениеПоискомРасширеннаяПодсказка + 15 + Label + true + true + + Left + + + + СписокУправлениеПоискомКонтекстноеМеню + 14 + true + + SearchControlAddition + Список + + true + + + + СписокРасширеннаяПодсказка + 6 + Label + true + true + + Left + + + + СписокКонтекстноеМеню + 4 + true + + true + true + true + true + true + MultiRow +
true
+ 1 + 1 + AutoUse + AutoUse + true + true + Auto + Auto + ExpandTopLevel + true + true + true + AsFileRef + + Список.DefaultPicture + + true + + 60 + + 0001-01-01T00:00:00 + 0001-01-01T00:00:00 + + + true + true + СписокКомпоновщикНастроекПользовательскиеНастройки + +
+ + ФормаКоманднаяПанель + -1 + Left + true + + DontBlock + true + true + true + Vertical + true + true + true + auto + true + + Список + 1 + + DynamicList + + + true + + + true + + + Список.Ref + +
true
+ + Catalog.НастройкиОтправкиВГосключ + true + true + true + true + +
+ + + + + +
diff --git a/SSL/src/Catalogs/НастройкиОтправкиВГосключ/Forms/ФормаЭлемента/Form.form b/SSL/src/Catalogs/НастройкиОтправкиВГосключ/Forms/ФормаЭлемента/Form.form new file mode 100644 index 000000000..0a7002ee1 --- /dev/null +++ b/SSL/src/Catalogs/НастройкиОтправкиВГосключ/Forms/ФормаЭлемента/Form.form @@ -0,0 +1,1317 @@ + + + + ДекорацияАвторизация + 88 + true + + true + + + ДекорацияАвторизацияРасширеннаяПодсказка + 90 + Label + true + true + + Left + + + + ДекорацияАвторизацияКонтекстноеМеню + 89 + true + + Label + true + true + + Left + + Style.ToolTipBackColor + + + + + ГруппаСтраницы + 78 + + СтраницаДанные + 80 + + ГруппаОрганизация + 84 + + Организация + 4 + true + true + + true + + + Объект.Организация + + + OnChange + ОрганизацияПриИзменении + + + ОрганизацияРасширеннаяПодсказка + 6 + Label + true + true + + Left + + + + ОрганизацияКонтекстноеМеню + 5 + true + + InputField + Auto + true + Left + true + + true + true + true + true + true + true + true + Normal + + + true + true + + true + + + <key>ru</key> + <value>Организация</value> + + + ГруппаОрганизацияРасширеннаяПодсказка + 85 + Label + true + true + + Left + + + UsualGroup + + Vertical + Auto + WeakSeparation + true + Auto + + + + ГруппаРеквизитыОрганизации + 47 + + НаименованиеОрганизации + 7 + true + true + + true + + + Объект.НаименованиеОрганизации + + + НаименованиеОрганизацииРасширеннаяПодсказка + 9 + Label + true + true + + Left + + + + НаименованиеОрганизацииКонтекстноеМеню + 8 + true + + InputField + Auto + true + Left + true + + true + true + true + true + true + true + true + Normal + + + + ИНН + 10 + true + true + + true + + + Объект.ИНН + + + ИННРасширеннаяПодсказка + 12 + Label + true + true + + Left + + + + ИННКонтекстноеМеню + 11 + true + + InputField + Auto + true + Left + true + + 12 + true + true + true + true + true + true + Normal + + + + ОГРН + 52 + true + true + + true + + + Объект.ОГРН + + + ОГРНРасширеннаяПодсказка + 54 + Label + true + true + + Left + + + + ОГРНКонтекстноеМеню + 53 + true + + InputField + Enter + true + Left + true + + 15 + true + true + true + true + true + true + Normal + + + + КодОКАТО + 16 + + <key>ru</key> + <value>Код ОКАТО</value> + + true + true + + true + + + Объект.КодОКАТО + + + КодОКАТОРасширеннаяПодсказка + 18 + + <key>ru</key> + <value>Код ОКАТО местоположения пользователя (можно передавать код ОКАТО региона, если невозможно определить точнее) +</value> + + Label + true + true + + Left + + + + КодОКАТОКонтекстноеМеню + 17 + true + + InputField + Auto + true + Left + true + + true + true + true + true + true + true + true + true + Normal + + + true + + true + + + <key>ru</key> + <value>Реквизиты организации</value> + + + ГруппаРеквизитыОрганизацииРасширеннаяПодсказка + 48 + Label + true + true + + Left + + + UsualGroup + + HorizontalIfPossible + Auto + WeakSeparation + true + Auto + + + + ГруппаСертификат + 76 + + Сертификат + 68 + true + true + + true + + + Объект.Сертификат + + Button + + СертификатРасширеннаяПодсказка + 70 + + <key>ru</key> + <value>Для подписания запросов на отправку документов в Госключ требуется обезличенный сертификат организации. Если он не установлен на сервере, запросы необходимо будет подписывать на клиенте.</value> + + Label + true + true + + Left + + + + СертификатКонтекстноеМеню + 69 + true + + InputField + Enter + true + Left + true + + true + true + true + true + true + true + true + Normal + + + + ПарольСертификата + 71 + + <key>ru</key> + <value>Пароль</value> + + true + true + + true + + + ПарольСертификата + + + ru + Пароль закрытого ключа сертификата указывается для автоматического подписания запросов в Госключ на сервере/в файловой базе. + + Button + + OnChange + ПарольСертификатаПриИзменении + + + ПарольСертификатаРасширеннаяПодсказка + 73 + Label + true + true + + Left + + + + ПарольСертификатаКонтекстноеМеню + 72 + true + + InputField + Enter + true + Left + true + + + EditTextChange + ПарольСертификатаИзменениеТекстаРедактирования + + + StartChoice + ПарольСертификатаНачалоВыбора + + true + true + true + true + true + true + + CommonPicture.ВводимыеСимволыВидны + + true + true + true + Normal + + + true + true + + true + + + <key>ru</key> + <value>Сертификат для подписания запросов в Госключ</value> + + + ГруппаСертификатРасширеннаяПодсказка + 77 + Label + true + true + + Left + + + UsualGroup + + Vertical + Auto + WeakSeparation + true + auto + Auto + + + + ГруппаКлючДоступа + 55 + + КлючДоступа + 62 + + <key>ru</key> + <value>Ключ доступа</value> + + true + true + + true + + + КлючДоступа + + Button + + OnChange + КлючДоступаПриИзменении + + + КлючДоступаРасширеннаяПодсказка + 64 + + <key>ru</key> + <value><bgcolor #ffffe1><font Segoe UI><fontsize 9>Ключ доступа, полученный сотрудником на портале Госуслуг. Подробнее см. инструкцию по интеграции с Госключом по API </></><font Segoe UI><fontsize 9><link https://partners.gosuslugi.ru/catalog/goskey>https://partners.gosuslugi.ru/catalog/goskey</></></></> +</value> + + true + Label + true + true + + Left + + + + КлючДоступаКонтекстноеМеню + 63 + true + + InputField + Enter + true + Left + true + + + EditTextChange + КлючДоступаИзменениеТекстаРедактирования + + + StartChoice + КлючДоступаНачалоВыбора + + true + true + true + true + true + true + + CommonPicture.ВводимыеСимволыВидны + + true + true + true + Normal + + + + СрокДействия + 49 + true + true + + true + + + Объект.СрокДействия + + + OnChange + СрокДействияПриИзменении + + + СрокДействияРасширеннаяПодсказка + 51 + Label + true + true + + Left + + + + СрокДействияКонтекстноеМеню + 50 + true + + InputField + Enter + true + Left + true + + true + true + true + true + true + true + true + Normal + + + + АдресСервиса + 22 + true + true + + + Объект.АдресСервиса + + + АдресСервисаРасширеннаяПодсказка + 24 + Label + true + true + + Left + + + + АдресСервисаКонтекстноеМеню + 23 + true + + InputField + Auto + true + Left + true + + true + true + true + true + true + true + true + Normal + + + + АдресЕСИА + 25 + true + true + + + Объект.АдресЕСИА + + + АдресЕСИАРасширеннаяПодсказка + 27 + Label + true + true + + Left + + + + АдресЕСИАКонтекстноеМеню + 26 + true + + InputField + Auto + true + Left + true + + true + true + true + true + true + true + true + Normal + + + true + true + + true + + + <key>ru</key> + <value>Ключ доступа</value> + + + ГруппаКлючДоступаРасширеннаяПодсказка + 56 + Label + true + true + + Left + + + UsualGroup + + Vertical + Auto + WeakSeparation + true + auto + Auto + Auto + + + + ГруппаПодвал + 86 + + Ответственный + 59 + true + true + + true + + + Объект.Ответственный + + + OnChange + ОтветственныйПриИзменении + + + ОтветственныйРасширеннаяПодсказка + 61 + Label + true + true + + Left + + + + ОтветственныйКонтекстноеМеню + 60 + true + + InputField + Enter + true + Left + true + + true + true + true + true + true + true + true + Normal + + + + Наименование + 1 + + <key>ru</key> + <value>Наименование</value> + + true + true + + true + + + Объект.Description + + + OnChange + НаименованиеПриИзменении + + + НаименованиеРасширеннаяПодсказка + 3 + Label + true + true + + Left + + + + НаименованиеКонтекстноеМеню + 2 + true + + InputField + Auto + true + Left + true + + true + true + true + true + true + true + Normal + + + + Комментарий + 65 + true + true + + true + + + Объект.Комментарий + + + КомментарийРасширеннаяПодсказка + 67 + Label + true + true + + Left + + + + КомментарийКонтекстноеМеню + 66 + true + + InputField + Enter + true + Left + true + + true + true + true + true + true + true + Normal + + + true + true + + true + + + <key>ru</key> + <value>Подвал</value> + + + ГруппаПодвалРасширеннаяПодсказка + 87 + Label + true + true + + Left + + + UsualGroup + + Vertical + Auto + WeakSeparation + true + true + Auto + Auto + + + true + true + + true + + + <key>ru</key> + <value>Ключ доступа</value> + + + СтраницаДанныеРасширеннаяПодсказка + 81 + Label + true + true + + Left + + + Page + + Vertical + auto + false + + + + СтраницаПользователи + 82 + + Пользователи + 28 + + <key>ru</key> + <value>Пользователи, имеющие право на отправку документов в Госключ с этим ключом доступа</value> + + true + true + + true + + + Объект.Пользователи + + Top + + ПользователиПользователь + 44 + true + true + + true + + + Объект.Пользователи.Пользователь + + + ПользователиПользовательРасширеннаяПодсказка + 46 + Label + true + true + + Left + + + + ПользователиПользовательКонтекстноеМеню + 45 + true + + InputField + Auto + Left + true + + true + true + true + true + true + true + true + Normal + + + + ПользователиКоманднаяПанель + 30 + Left + true + + + BeforeAddRow + ПользователиПередНачаломДобавления + + + ПользователиСтрокаПоиска + 32 + + ПользователиСтрокаПоискаРасширеннаяПодсказка + 34 + Label + true + true + + Left + + + + ПользователиСтрокаПоискаКонтекстноеМеню + 33 + true + + Пользователи + + true + + + + ПользователиСостояниеПросмотра + 35 + + ПользователиСостояниеПросмотраРасширеннаяПодсказка + 37 + Label + true + true + + Left + + + + ПользователиСостояниеПросмотраКонтекстноеМеню + 36 + true + + ViewStatusAddition + Пользователи + + true + + + + ПользователиУправлениеПоиском + 38 + + ПользователиУправлениеПоискомРасширеннаяПодсказка + 40 + Label + true + true + + Left + + + + ПользователиУправлениеПоискомКонтекстноеМеню + 39 + true + + SearchControlAddition + Пользователи + + true + + + + ПользователиРасширеннаяПодсказка + 31 + Label + true + true + + Left + + + + ПользователиКонтекстноеМеню + 29 + true + + true + true + true + true + true + MultiRow + 1 + 1 + AutoUse + AutoUse + true + true + false + true + Auto + Auto + true + true + true + true + AsFileRef + true + + + true + true + + true + + + <key>ru</key> + <value>Пользователи</value> + + + СтраницаПользователиРасширеннаяПодсказка + 83 + Label + true + true + + Left + + + Page + + Vertical + auto + false + + + true + true + + true + + + <key>ru</key> + <value>Страницы</value> + + + ГруппаСтраницыРасширеннаяПодсказка + 79 + Label + true + true + + Left + + + Pages + + Auto + Auto + + + + ФормаКоманднаяПанель + -1 + + ФормаАвторизоваться + 74 + + <key>ru</key> + <value>Авторизоваться в ЕСИА</value> + + true + + true + + + ФормаАвторизоватьсяРасширеннаяПодсказка + 75 + Label + true + true + + Left + + + Form.Command.Авторизоваться + Normal + Auto + true + true + UserCmds + Auto + + Left + true + + + OnCreateAtServer + ПриСозданииНаСервере + + LockOwner + true + true + true + Vertical + true + true + true + auto + true + + Объект + 1 + + CatalogObject.НастройкиОтправкиВГосключ + + + true + + + true + +
true
+ true +
+ + КлючДоступа + + <key>ru</key> + <value>Ключ доступа</value> + + 2 + + String + + + + true + + + true + + true + + + КлючДоступаИзменен + 3 + + Boolean + + + true + + + true + + + + ИспользуетсяАвтонаименование + 4 + + Boolean + + + true + + + true + + + + ПарольСертификата + + <key>ru</key> + <value>Пароль</value> + + 5 + + String + + + + true + + + true + + true + + + ПарольСертификатаИзменен + 6 + + Boolean + + + true + + + true + + + + Авторизоваться + + <key>ru</key> + <value>Авторизоваться в ЕСИА</value> + + 1 + + ru + Авторизоваться + + + true + + + + Авторизоваться + + + Auto + Auto + + + + + + + + AfterWrite + ПослеЗаписи + + + AfterWriteAtServer + ПослеЗаписиНаСервере + + + OnReadAtServer + ПриЧтенииНаСервере + + + BeforeWrite + ПередЗаписью + + + OnWriteAtServer + ПриЗаписиНаСервере + + +
diff --git a/SSL/src/Catalogs/НастройкиОтправкиВГосключ/Forms/ФормаЭлемента/Help/ru.html b/SSL/src/Catalogs/НастройкиОтправкиВГосключ/Forms/ФормаЭлемента/Help/ru.html new file mode 100644 index 000000000..880541725 --- /dev/null +++ b/SSL/src/Catalogs/НастройкиОтправкиВГосключ/Forms/ФормаЭлемента/Help/ru.html @@ -0,0 +1,46 @@ + + +

Предназначен для создания или редактирования настройки отправки документов в мобильное приложение Госключ.

+ + +

Ключ доступа

+ +

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

+ + +
  • Организация - выбирается организация, от имени которой будут отправляться документы;
  • + +
  • Сертификат для подписания запросов в Госключ - обезличенный сертификат организации, используемый для аутентификации и подписания запросов к сервису Госключ;
  • + +
  • Пароль - пароль от закрытого ключа сертификата (указывается для автоматического подписания запросов в Госключ на сервере/в файловой базе). С помощью соответствующей кнопки можно отобразить пароль ;
  • + +
  • Ключ доступа - уникальный идентификатор ключа доступа, полученный сотрудником на портале Госуслуг. С помощью соответствующей кнопки можно отобразить ключ доступа ;
  • + +
  • Срок действия - дата окончания действия ключа доступа;
  • + +
  • Ответственный - сотрудник, ответственный за настройку ключа доступа (устанавливается автоматически при добавлении настройки);
  • + +
  • Наименование - автоматически формируется на основе выбранных значений Организация, Ответственный и Срок действия (при необходимости можно отредактировать вручную);
  • + +
  • Комментарий - дополнительная информация или примечания к настройке.
  • +

Пользователи

+ +

На вкладке добавляются сотрудники, которые имеют право отправлять документы на подписание в Госключ с использованием данного ключа доступа:

+ + +
  • Кнопка Добавить - открывает список пользователей;
  • + +
  • Строка Поиск (Ctrl+F) - позволяет быстро найти пользователя в списке;
  • + +
  • Кнопка Еще - вызывает дополнительные действия (удалить, изменить и др.).
  • +

Сохранение настройки

+ +
  • После заполнения всех полей нажмите кнопку Записать и закрыть для сохранения настройки отправки в Госключ.
  • +

Дополнительные возможности

+ +
  • При необходимости можно скопировать существующую настройку через меню Еще в списке справочника и отредактировать полученную копию.
  • + +
  • При изменении значений полей Организация, Ответственный или Срок действия наименование переформируется автоматически.
  • +

См. также: 

+ \ No newline at end of file diff --git a/SSL/src/Catalogs/НастройкиОтправкиВГосключ/Forms/ФормаЭлемента/Module.bsl b/SSL/src/Catalogs/НастройкиОтправкиВГосключ/Forms/ФормаЭлемента/Module.bsl new file mode 100644 index 000000000..5e3fbe522 --- /dev/null +++ b/SSL/src/Catalogs/НастройкиОтправкиВГосключ/Forms/ФормаЭлемента/Module.bsl @@ -0,0 +1,386 @@ +/////////////////////////////////////////////////////////////////////////////////////////////////////// +// Copyright (c) 2025, ООО 1С-Софт +// Все права защищены. Эта программа и сопроводительные материалы предоставляются +// в соответствии с условиями лицензии Attribution 4.0 International (CC BY 4.0) +// Текст лицензии доступен по ссылке: +// https://creativecommons.org/licenses/by/4.0/legalcode +/////////////////////////////////////////////////////////////////////////////////////////////////////// + +#Область ОбработчикиСобытийФормы + +&НаСервере +Процедура ПриСозданииНаСервере(Отказ, СтандартнаяОбработка) + + ОрганизацияИспользуется = ЭлектроннаяПодпись.ОбщиеНастройки().ОрганизацияИспользуется; + Элементы.Организация.Видимость = ОрганизацияИспользуется; + Элементы.ГруппаРеквизитыОрганизации.Видимость = Не ОрганизацияИспользуется; + ИспользуетсяАвтоНаименование = ИспользуетсяАвтоНаименование(Объект); + + Если Параметры.Ключ.Пустая() Тогда + Объект.Ответственный = Пользователи.ТекущийПользователь(); + КонецЕсли; + + Элементы.Ответственный.ТолькоПросмотр = Не Пользователи.ЭтоПолноправныйПользователь(); + +КонецПроцедуры + +&НаСервере +Процедура ПриЧтенииНаСервере(ТекущийОбъект) + + // СтандартныеПодсистемы.УправлениеДоступом + Если ОбщегоНазначения.ПодсистемаСуществует("СтандартныеПодсистемы.УправлениеДоступом") Тогда + МодульУправлениеДоступом = ОбщегоНазначения.ОбщийМодуль("УправлениеДоступом"); + МодульУправлениеДоступом.ПриЧтенииНаСервере(ЭтотОбъект, ТекущийОбъект); + КонецЕсли; + // Конец СтандартныеПодсистемы.УправлениеДоступом + + Если Не Объект.Ссылка.Пустая() Тогда + + УстановитьПривилегированныйРежим(Истина); + КлючДоступаУстановлен = ЗначениеЗаполнено(ОбщегоНазначения.ПрочитатьДанныеИзБезопасногоХранилища(Объект.Ссылка, + "КлючДоступа")); + ПарольСертификатаУстановлен = ЗначениеЗаполнено(ОбщегоНазначения.ПрочитатьДанныеИзБезопасногоХранилища( + Объект.Ссылка, "ПарольСертификата")); + УстановитьПривилегированныйРежим(Ложь); + + КлючДоступа = ?(КлючДоступаУстановлен, УникальныйИдентификатор, ""); + ПарольСертификата = ?(ПарольСертификатаУстановлен, УникальныйИдентификатор, ""); + КлючДоступаИзменен = Ложь; + ПарольСертификатаИзменен = Ложь; + + ОформитьПолеПароля(Элементы.КлючДоступа); + ОформитьПолеПароля(Элементы.ПарольСертификата); + + Если КлючДоступаУстановлен Тогда + УстановитьВидимостьДекорации(КлючДоступаУстановлен); + КонецЕсли; + + КонецЕсли; + +КонецПроцедуры + +&НаСервере +Процедура ПриЗаписиНаСервере(Отказ, ТекущийОбъект, ПараметрыЗаписи) + + Если КлючДоступаИзменен Тогда + + УстановитьПривилегированныйРежим(Истина); + ОбщегоНазначения.ЗаписатьДанныеВБезопасноеХранилище(ТекущийОбъект.Ссылка, КлючДоступа, "КлючДоступа"); + ОбщегоНазначения.УдалитьДанныеИзБезопасногоХранилища(ТекущийОбъект.Ссылка, "ПараметрыАвторизацииВГосключе"); + УстановитьПривилегированныйРежим(Ложь); + КлючДоступаИзменен = Ложь; + + КонецЕсли; + + Если ПарольСертификатаИзменен Тогда + ЗаписатьПарольСертификата(ТекущийОбъект.Ссылка, ПарольСертификата); + ПарольСертификатаИзменен = Ложь; + КонецЕсли; + +КонецПроцедуры + +&НаКлиенте +Процедура ПередЗаписью(Отказ, ПараметрыЗаписи) + + Если ИспользуетсяАвтонаименование Или Не ЗначениеЗаполнено(Объект.Наименование) Тогда + УстановитьАвтоНаименование(); + КонецЕсли; + +КонецПроцедуры + +&НаСервере +Процедура ПослеЗаписиНаСервере(ТекущийОбъект, ПараметрыЗаписи) + + // СтандартныеПодсистемы.УправлениеДоступом + Если ОбщегоНазначения.ПодсистемаСуществует("СтандартныеПодсистемы.УправлениеДоступом") Тогда + МодульУправлениеДоступом = ОбщегоНазначения.ОбщийМодуль("УправлениеДоступом"); + МодульУправлениеДоступом.ПослеЗаписиНаСервере(ЭтотОбъект, ТекущийОбъект, ПараметрыЗаписи); + КонецЕсли; + // Конец СтандартныеПодсистемы.УправлениеДоступом + + УстановитьВидимостьДекорации(); + +КонецПроцедуры + +&НаКлиенте +Процедура ПослеЗаписи(ПараметрыЗаписи) + + Оповестить("Запись_НастройкиОтправкиВГосключ", Новый Структура, Объект.Ссылка); + +КонецПроцедуры + +#КонецОбласти + +#Область ОбработчикиСобытийЭлементовШапкиФормы + +&НаКлиенте +Процедура ОрганизацияПриИзменении(Элемент) + УстановитьАвтоНаименование() +КонецПроцедуры + +&НаКлиенте +Процедура СрокДействияПриИзменении(Элемент) + УстановитьАвтоНаименование() +КонецПроцедуры + +&НаКлиенте +Процедура ОтветственныйПриИзменении(Элемент) + УстановитьАвтоНаименование() +КонецПроцедуры + +&НаКлиенте +Процедура НаименованиеПриИзменении(Элемент) + ИспользуетсяАвтоНаименование = Ложь; +КонецПроцедуры + +&НаКлиенте +Процедура ПарольСертификатаИзменениеТекстаРедактирования(Элемент, Текст, СтандартнаяОбработка) + + ИзменениеТекстаРедактирования(Элемент); + +КонецПроцедуры + +&НаКлиенте +Процедура КлючДоступаИзменениеТекстаРедактирования(Элемент, Текст, СтандартнаяОбработка) + + ИзменениеТекстаРедактирования(Элемент); + +КонецПроцедуры + +&НаКлиенте +Процедура ПарольСертификатаНачалоВыбора(Элемент, ДанныеВыбора, ВыборДобавлением, СтандартнаяОбработка) + НачалоВыбора(Элемент, ПарольСертификата, СтандартнаяОбработка); +КонецПроцедуры + +&НаКлиенте +Процедура КлючДоступаНачалоВыбора(Элемент, ДанныеВыбора, ВыборДобавлением, СтандартнаяОбработка) + НачалоВыбора(Элемент, КлючДоступа, СтандартнаяОбработка); +КонецПроцедуры + +#КонецОбласти + +#Область ОбработчикиСобытийЭлементовТаблицыФормыПользователи + +&НаКлиенте +Процедура ПользователиПередНачаломДобавления(Элемент, Отказ, Копирование, Родитель, ЭтоГруппа, Параметр) + + Отказ = Истина; + ПараметрыПодбора = Новый Структура; + ПараметрыПодбора.Вставить("РежимВыбора", Истина); + ПараметрыПодбора.Вставить("ЗакрыватьПриВыборе", Ложь); + ПараметрыПодбора.Вставить("МножественныйВыбор", Истина); + ПараметрыПодбора.Вставить("РасширенныйПодбор", Истина); + ПараметрыПодбора.Вставить("СкрытьПользователейБезПользователяИБ", Истина); + + Выбранные = Новый Массив; + Для Каждого Строка Из Объект.Пользователи Цикл + Выбранные.Добавить(Строка.Пользователь); + КонецЦикла; + + ПараметрыПодбора.Вставить("ВыбранныеПользователи", Выбранные); + ПараметрыПодбора.Вставить("ЗаголовокФормыПодбора", + НСтр("ru = 'Выберите пользователей, которые могут отправлять документы с использованием настройки'")); + ПараметрыПодбора.Вставить("ЗаголовокКнопкиЗавершенияПодбора", НСтр("ru = 'Выбрать'")); + + Обработчик = Новый ОписаниеОповещения("ДобавитьПользователей", ЭтотОбъект); + + ОткрытьФорму("Справочник.Пользователи.ФормаВыбора", ПараметрыПодбора,,,,, Обработчик); + +КонецПроцедуры + +#КонецОбласти + + +#Область ОбработчикиКомандФормы + +&НаКлиенте +Процедура Авторизоваться(Команда) + + Если Модифицированность Тогда + ЗаписатьНастройку(); + КонецЕсли; + + ПараметрыПодписания = СервисМобильнойПодписиКлиентСервер.ПараметрыПодписания(); + ПараметрыПодписания.ВидМобильнойПодписи = ПредопределенноеЗначение("Перечисление.ВидыМобильныхПодписей.ГосключУКЭП"); + ПараметрыПодписания.НастройкаОтправки = Объект.Ссылка; + НастройкаОтправки = СервисМобильнойПодписиСлужебныйВызовСервера.НастройкаОтправки(ПараметрыПодписания, Истина); + Если ТипЗнч(НастройкаОтправки) = Тип("Строка") Тогда + ОбщегоНазначенияКлиент.СообщитьПользователю(НастройкаОтправки); + Возврат; + КонецЕсли; + Если Не НастройкаОтправки.ПараметрыАвторизацииВГосключеУстановлены + И (Не НастройкаОтправки.РазрешеноПодписаниеНаСервере + Или Не НастройкаОтправки.ПарольСертификатаУстановлен) Тогда + + Если Не ЗначениеЗаполнено(НастройкаОтправки.Ключ) Тогда + ОбщегоНазначенияКлиент.СообщитьПользователю(НСтр("ru='Не указан ключ доступа'")); + Возврат; + КонецЕсли; + + СервисМобильнойПодписиСлужебныйКлиент.ПодписатьТокенДоступа( + Новый ОписаниеОповещения("ПослеПодписанияКлючаАвторизации", ЭтотОбъект), НастройкаОтправки); + Возврат; + КонецЕсли; + + Результат = АвторизоватьсяНаСервере(); + ОбработкаРезультатаАвторизации(Результат); + +КонецПроцедуры + +#КонецОбласти + +#Область СлужебныеПроцедурыИФункции + +&НаКлиенте +Процедура ДобавитьПользователей(Результат, ДополнительныеПараметры) Экспорт + + Если Результат = Неопределено Тогда + Возврат; + КонецЕсли; + + Объект.Пользователи.Очистить(); + Для Каждого Пользователь Из Результат Цикл + НоваяСтрока = Объект.Пользователи.Добавить(); + НоваяСтрока.Пользователь = Пользователь; + КонецЦикла; + +КонецПроцедуры + +&НаКлиенте +Процедура ПослеПодписанияКлючаАвторизации(Результат, ДополнительныеПараметры) Экспорт + + Если Результат.Отказ = Истина Или Не Результат.Успех Тогда + Возврат; + КонецЕсли; + + СвойстваПодписи = Результат.СвойстваПодписи; + Если ЭтоАдресВременногоХранилища(СвойстваПодписи) Тогда + СвойстваПодписи = ПолучитьИзВременногоХранилища(СвойстваПодписи); + КонецЕсли; + + Результат = АвторизоватьсяНаСервере(СвойстваПодписи.Подпись); + ОбработкаРезультатаАвторизации(Результат); +КонецПроцедуры + +&НаКлиенте +Процедура ОбработкаРезультатаАвторизации(Результат) + + Если Не ЗначениеЗаполнено(Результат.Ошибка) Тогда + ПоказатьПредупреждение(, НСтр("ru = 'Успешная авторизация.'")); + Иначе + СервисМобильнойПодписиСлужебныйКлиент.ОткрытьФормуРасширенногоПредставленияОшибки( + Результат.Ошибка.ЗаголовокОшибки, Результат.Ошибка, ЭтотОбъект); + КонецЕсли; + +КонецПроцедуры + +&НаКлиенте +Процедура ИзменениеТекстаРедактирования(Элемент) + + Элементы[Элемент.Имя].КнопкаВыбора = Истина; + +КонецПроцедуры + +&НаСервере +Процедура ОформитьПолеПароля(Элемент) + + Элемент.РежимПароля = Истина; + Элемент.КартинкаКнопкиВыбора = БиблиотекаКартинок.ВводимыеСимволыВидны; + Элемент.КнопкаВыбора = Ложь; + +КонецПроцедуры + +&НаКлиенте +Процедура НачалоВыбора(Элемент, Реквизит, СтандартнаяОбработка) + + СтандартнаяОбработка = Ложь; + Реквизит = Элемент.ТекстРедактирования; + Элемент.РежимПароля = Не Элемент.РежимПароля; + Если Элемент.РежимПароля Тогда + Элемент.КартинкаКнопкиВыбора = БиблиотекаКартинок.ВводимыеСимволыВидны; + Иначе + Элемент.КартинкаКнопкиВыбора = БиблиотекаКартинок.ВводимыеСимволыСкрыты; + КонецЕсли; + +КонецПроцедуры + +&НаСервереБезКонтекста +Функция ИспользуетсяАвтоНаименование(Объект) + + Если Не ЗначениеЗаполнено(Объект.Наименование) Тогда + Возврат Истина; + КонецЕсли; + + Возврат Объект.Наименование = Справочники.НастройкиОтправкиВГосключ.АвтоНаименование(Объект); + +КонецФункции + +&НаСервере +Процедура УстановитьАвтоНаименование() + ПараметрыНаименования = Новый Структура("Организация, НаименованиеОрганизации, ИНН, Ответственный, СрокДействия"); + ЗаполнитьЗначенияСвойств(ПараметрыНаименования, Объект); + Объект.Наименование = Справочники.НастройкиОтправкиВГосключ.АвтоНаименование(ПараметрыНаименования); +КонецПроцедуры + +&НаСервереБезКонтекста +Процедура ЗаписатьПарольСертификата(Ссылка, ПарольСертификата) + УстановитьПривилегированныйРежим(Истина); + ОбщегоНазначения.ЗаписатьДанныеВБезопасноеХранилище(Ссылка, ПарольСертификата, "ПарольСертификата"); + УстановитьПривилегированныйРежим(Ложь); +КонецПроцедуры + +&НаСервере +Функция АвторизоватьсяНаСервере(Подпись = Неопределено) + + Результат = СервисМобильнойПодписиСлужебный.АвторизоватьсяВГосключе(Объект.Ссылка, "", Подпись); + УстановитьВидимостьДекорации(Истина); + + Возврат Результат; + +КонецФункции + +&НаСервере +Процедура УстановитьВидимостьДекорации(КлючДоступаУстановлен = Неопределено) + + УстановитьПривилегированныйРежим(Истина); + ПараметрыАвторизацииВГосключе = ОбщегоНазначения.ПрочитатьДанныеИзБезопасногоХранилища(Объект.Ссылка, "ПараметрыАвторизацииВГосключе"); + Если КлючДоступаУстановлен = Неопределено Тогда + КлючДоступаУстановлен = ЗначениеЗаполнено(ОбщегоНазначения.ПрочитатьДанныеИзБезопасногоХранилища(Объект.Ссылка, + "КлючДоступа")); + КонецЕсли; + УстановитьПривилегированныйРежим(Ложь); + + Если ЗначениеЗаполнено(ПараметрыАвторизацииВГосключе) И ЗначениеЗаполнено(ПараметрыАвторизацииВГосключе.РезультатАвторизации.ДействуетДо) Тогда + Элементы.ДекорацияАвторизация.Видимость = Истина; + Если ПараметрыАвторизацииВГосключе.РезультатАвторизации.ДействуетДо <= ТекущаяУниверсальнаяДата() Тогда + ЗаголовокАвторизации = НСтр("ru='Токен доступа ЕСИА просрочен.'"); + Иначе + ЗаголовокАвторизации = СтроковыеФункцииКлиентСервер.ПодставитьПараметрыВСтроку( + НСтр("ru='Токен доступа ЕСИА действует до %1'"), + ПараметрыАвторизацииВГосключе.РезультатАвторизации.ДействуетДо + (ТекущаяДатаСеанса() - ТекущаяУниверсальнаяДата())); + КонецЕсли; + Элементы.ДекорацияАвторизация.Заголовок = ЗаголовокАвторизации; + Иначе + Элементы.ДекорацияАвторизация.Видимость = Ложь; + КонецЕсли; + + Элементы.ФормаАвторизоваться.Видимость = КлючДоступаУстановлен; + +КонецПроцедуры + +&НаКлиенте +Процедура ПарольСертификатаПриИзменении(Элемент) + ПарольСертификатаИзменен = Истина; +КонецПроцедуры + +&НаКлиенте +Процедура КлючДоступаПриИзменении(Элемент) + КлючДоступаИзменен = Истина; +КонецПроцедуры + +&НаСервере +Процедура ЗаписатьНастройку() + Записать(); +КонецПроцедуры + +#КонецОбласти \ No newline at end of file diff --git a/SSL/src/Catalogs/НастройкиОтправкиВГосключ/Help/ru.html b/SSL/src/Catalogs/НастройкиОтправкиВГосключ/Help/ru.html new file mode 100644 index 000000000..ebd272cfc --- /dev/null +++ b/SSL/src/Catalogs/НастройкиОтправкиВГосключ/Help/ru.html @@ -0,0 +1,32 @@ + + +
Предназначен для настройки доступа сотрудников организаций для отправки документов на подписание в мобильное приложение Госключ (Госуслуги).
+

+ + +

В списке выводится:

+ + +
  • Наименование – автоматически формируется на основе выбранных значений полей;
  • + +
  • Срок действия - период, в течение которого действителен ключ доступа, полученный сотрудником на портале Госуслуг;
  • + +
  • Организация - организация, от имени которой отправляются документы;
  • + +
  • Ответственный - сотрудник, ответственный за настройку ключа доступа (устанавливается автоматически при добавлении настройки).
  • +

Создание настройки отправки

+ +
  • Нажмите кнопку Создать и заполните необходимые поля.
  • +
  • Выделите нужную строку, нажмите кнопку Скопировать (или используйте соответствующую команду контекстного меню по правой кнопке мыши). Это позволит создать новую настройку на основе существующей.
  • +

Поиск и фильтрация

+ +
  • Используйте строку Поиск (Ctrl+F) или Расширенный поиск  для быстрого поиска по наименованию или организации.
  • + +
  • Кнопка Еще открывает дополнительные действия: изменение, удаление или настройку фильтров.
  • +

Редактирование и просмотр

+ +
  • С помощью команды Изменить контекстного меню (правая кнопка мыши) или меню Еще можно открыть данные настройки для редактирования или просмотра.
  • + +
  • Для выбора настройки выделите нужную строку и дважды щелкните мышью.

См. также: 

+ \ No newline at end of file diff --git a/SSL/src/Catalogs/НастройкиОтправкиВГосключ/ManagerModule.bsl b/SSL/src/Catalogs/НастройкиОтправкиВГосключ/ManagerModule.bsl new file mode 100644 index 000000000..9e0a66248 --- /dev/null +++ b/SSL/src/Catalogs/НастройкиОтправкиВГосключ/ManagerModule.bsl @@ -0,0 +1,82 @@ +/////////////////////////////////////////////////////////////////////////////////////////////////////// +// Copyright (c) 2025, ООО 1С-Софт +// Все права защищены. Эта программа и сопроводительные материалы предоставляются +// в соответствии с условиями лицензии Attribution 4.0 International (CC BY 4.0) +// Текст лицензии доступен по ссылке: +// https://creativecommons.org/licenses/by/4.0/legalcode +/////////////////////////////////////////////////////////////////////////////////////////////////////// + +#Если Сервер Или ТолстыйКлиентОбычноеПриложение Или ВнешнееСоединение Тогда + +#Область ПрограммныйИнтерфейс + +#Область ДляВызоваИзДругихПодсистем + +// СтандартныеПодсистемы.УправлениеДоступом + +// Параметры: +// Ограничение - см. УправлениеДоступомПереопределяемый.ПриЗаполненииОграниченияДоступа.Ограничение. +// +Процедура ПриЗаполненииОграниченияДоступа(Ограничение) Экспорт + + Ограничение.Текст = + "РазрешитьЧтение + |ГДЕ + | ЭтоАвторизованныйПользователь(Ответственный) ИЛИ ЭтоАвторизованныйПользователь(Пользователи.Пользователь) + |; + |РазрешитьИзменениеЕслиРазрешеноЧтение + |ГДЕ + | ЭтоАвторизованныйПользователь(Ответственный)"; + +КонецПроцедуры + +// Конец СтандартныеПодсистемы.УправлениеДоступом + +#КонецОбласти + +#КонецОбласти + +#Область СлужебныеПроцедурыИФункции + +// Формирует наименование настройки отправки в Госключ. +// +// Параметры: +// Объект - СправочникОбъект.НастройкиОтправкиВГосключ +// - Структура: +// * НаименованиеОрганизации - Строка +// * Организация - ОпределяемыйТип.Организация +// * ИНН - Строка +// * Ответственный - СправочникСсылка.Пользователи +// * СрокДействия - Дата +// +// Возвращаемое значение: +// Строка +// +Функция АвтоНаименование(Объект) Экспорт + + Наименование = Новый Массив; + + Если ЗначениеЗаполнено(Объект.НаименованиеОрганизации) Тогда + Организация = СокрЛП(Объект.НаименованиеОрганизации); + ИначеЕсли ЗначениеЗаполнено(Объект.Организация) Тогда + Организация = СокрЛП(Объект.Организация); + Иначе + Организация = Объект.ИНН; + КонецЕсли; + + Наименование.Добавить(Лев(Организация, 100)); + + Если ЗначениеЗаполнено(Объект.Ответственный) Тогда + Наименование.Добавить(Объект.Ответственный); + КонецЕсли; + + Наименование.Добавить(СтроковыеФункцииКлиентСервер.ПодставитьПараметрыВСтроку(НСтр("ru='до %1'"), + Формат(Объект.СрокДействия, "ДЛФ=D"))); + Наименование = Лев(СтрСоединить(Наименование, ", "), 150); + Возврат Наименование; + +КонецФункции + +#КонецОбласти + +#КонецЕсли diff --git a/SSL/src/Catalogs/НастройкиОтправкиВГосключ/ObjectModule.bsl b/SSL/src/Catalogs/НастройкиОтправкиВГосключ/ObjectModule.bsl new file mode 100644 index 000000000..ab5086229 --- /dev/null +++ b/SSL/src/Catalogs/НастройкиОтправкиВГосключ/ObjectModule.bsl @@ -0,0 +1,54 @@ +/////////////////////////////////////////////////////////////////////////////////////////////////////// +// Copyright (c) 2025, ООО 1С-Софт +// Все права защищены. Эта программа и сопроводительные материалы предоставляются +// в соответствии с условиями лицензии Attribution 4.0 International (CC BY 4.0) +// Текст лицензии доступен по ссылке: +// https://creativecommons.org/licenses/by/4.0/legalcode +/////////////////////////////////////////////////////////////////////////////////////////////////////// + +#Если Сервер Или ТолстыйКлиентОбычноеПриложение Или ВнешнееСоединение Тогда + +#Область ОписаниеПеременных + +// Значения объекта до записи для использования в обработчике события ПриЗаписи. +Перем СтарыйСертификат; + +#КонецОбласти + +#Область ОбработчикиСобытий + +Процедура ПередЗаписью(Отказ) + + Если ОбменДанными.Загрузка Тогда + Возврат; + КонецЕсли; + + Если Не ЗначениеЗаполнено(Наименование) Тогда + Наименование = Справочники.НастройкиОтправкиВГосключ.АвтоНаименование(ЭтотОбъект); + КонецЕсли; + + Если Не ЭтоНовый() Тогда + СтарыйСертификат = ОбщегоНазначения.ЗначениеРеквизитаОбъекта(Ссылка, "Сертификат"); + КонецЕсли; + +КонецПроцедуры + +Процедура ПриЗаписи(Отказ) + + Если ОбменДанными.Загрузка Тогда + Возврат; + КонецЕсли; + + Если ПометкаУдаления Или ЗначениеЗаполнено(СтарыйСертификат) И Сертификат <> СтарыйСертификат Тогда + УстановитьПривилегированныйРежим(Истина); + ОбщегоНазначения.УдалитьДанныеИзБезопасногоХранилища(Ссылка, "ПараметрыАвторизацииВГосключе"); + УстановитьПривилегированныйРежим(Ложь); + КонецЕсли; + +КонецПроцедуры + +#КонецОбласти + +#Иначе +ВызватьИсключение НСтр("ru = 'Недопустимый вызов объекта на клиенте.'"); +#КонецЕсли diff --git a/SSL/src/Catalogs/НастройкиОтправкиВГосключ/НастройкиОтправкиВГосключ.mdo b/SSL/src/Catalogs/НастройкиОтправкиВГосключ/НастройкиОтправкиВГосключ.mdo new file mode 100644 index 000000000..5a1fa4ecb --- /dev/null +++ b/SSL/src/Catalogs/НастройкиОтправкиВГосключ/НастройкиОтправкиВГосключ.mdo @@ -0,0 +1,370 @@ + + + + + + + + + + НастройкиОтправкиВГосключ + + ru + Настройки отправки в Госключ + + true + Catalog.НастройкиОтправкиВГосключ.StandardAttribute.Description + DontUse + + Use + PredefinedDataName + + Use + + + + + Use + Predefined + + Use + + + + + Use + Ref + + Use + + + + + Use + DeletionMark + + Use + + + + + Use + IsFolder + + Use + + + + + Use + Owner + true + + ShowError + Use + + + + + Use + Parent + true + + Use + + + + + Use + Description + + ShowError + Use + + + + + Use + Code + + Use + + + + Use + + + ru + + + Managed + Use + + ru + Настройка отправки в Госключ + + 2 + true + 150 + String + Variable + AsDescription + InDialog + BothWays + Catalog.НастройкиОтправкиВГосключ.Form.ФормаЭлемента + Catalog.НастройкиОтправкиВГосключ.Form.ФормаСписка + + СрокДействия + + ru + Срок действия + + + Date + + Date + + + + + ShowError + + Use + Use + + + Организация + + ru + Организация + + + DefinedType.Организация + + + + + Use + Use + + + НаименованиеОрганизации + + ru + Наименование организации + + + String + + 250 + + + + + + Use + Use + + + ИНН + + ru + ИНН + + + String + + 12 + + + + + + Use + Use + + + ОГРН + + ru + ОГРН + + + String + + 15 + + + + + + Use + Use + + + КодОКАТО + + ru + Код ОКАТО + + + String + + 10 + + + + + + Use + Use + + + АдресСервиса + + ru + Адрес сервиса + + + String + + 100 + + + + + + Use + Use + + + АдресЕСИА + + ru + Адрес ЕСИА + + + String + + 100 + + + + + + Use + Use + + + Ответственный + + ru + Ответственный + + + CatalogRef.Пользователи + + + + ShowError + + Use + Use + + + Комментарий + + ru + Комментарий + + + String + + + + + + Use + Use + + + Сертификат + + ru + Сертификат + + + CatalogRef.СертификатыКлючейЭлектроннойПодписиИШифрования + + + + + Use + Use + + + + + + + Пользователи + + ru + Пользователи + + + Use + LineNumber + + Use + + + + + Пользователь + + ru + Пользователь + + + CatalogRef.Пользователи + + + + Use + Use + + + + ФормаЭлемента + + ru + Форма элемента + + + + ru + + + PersonalComputer + MobileDevice + + + ФормаСписка + + ru + Форма списка + + PersonalComputer + MobileDevice + + + НастройкиОтправкиВГосключ + + ru + Настройки отправки в Госключ + + FormCommandBarImportant + Auto + + diff --git a/SSL/src/Catalogs/НастройкиТранспортаСообщенийОбмена/Forms/НастройкаПодключенияКСервису/Module.bsl b/SSL/src/Catalogs/НастройкиТранспортаСообщенийОбмена/Forms/НастройкаПодключенияКСервису/Module.bsl index ee480e991..fd12eaa0b 100644 --- a/SSL/src/Catalogs/НастройкиТранспортаСообщенийОбмена/Forms/НастройкаПодключенияКСервису/Module.bsl +++ b/SSL/src/Catalogs/НастройкиТранспортаСообщенийОбмена/Forms/НастройкаПодключенияКСервису/Module.bsl @@ -1,5 +1,5 @@ /////////////////////////////////////////////////////////////////////////////////////////////////////// -// Copyright (c) 2024, ООО 1С-Софт +// Copyright (c) 2025, ООО 1С-Софт // Все права защищены. Эта программа и сопроводительные материалы предоставляются // в соответствии с условиями лицензии Attribution 4.0 International (CC BY 4.0) // Текст лицензии доступен по ссылке: @@ -52,7 +52,7 @@ Если ЗначениеЗаполнено(НастройкиТранспорта.Пароль) Тогда Пароль = ОбщегоНазначения.ПрочитатьДанныеИзБезопасногоХранилища(НастройкиТранспорта.Пароль); - + Иначе НастройкиТранспорта.Пароль = Строка(Новый УникальныйИдентификатор); diff --git a/SSL/src/Catalogs/НастройкиТранспортаСообщенийОбмена/Forms/ПанельНастроекТранспорта/Form.form b/SSL/src/Catalogs/НастройкиТранспортаСообщенийОбмена/Forms/ПанельНастроекТранспорта/Form.form index 78d8e6b18..3eb2961f8 100644 --- a/SSL/src/Catalogs/НастройкиТранспортаСообщенийОбмена/Forms/ПанельНастроекТранспорта/Form.form +++ b/SSL/src/Catalogs/НастройкиТранспортаСообщенийОбмена/Forms/ПанельНастроекТранспорта/Form.form @@ -544,11 +544,11 @@ ГруппаНастройкаНеЗавершена 3 - КартинкаНастройкаНеЗаервшена + КартинкаНастройкаНеЗавершена 5 <key>ru</key> - <value>Картинка настройка не заервшена</value> + <value>Картинка настройка не завершена</value> true true @@ -556,7 +556,7 @@ true - КартинкаНастройкаНеЗаервшенаРасширеннаяПодсказка + КартинкаНастройкаНеЗавершенаРасширеннаяПодсказка 7 Label true @@ -566,7 +566,7 @@
- КартинкаНастройкаНеЗаервшенаКонтекстноеМеню + КартинкаНастройкаНеЗавершенаКонтекстноеМеню 6 true @@ -583,7 +583,7 @@ - НадписьНастройкаНеЗаервшена + НадписьНастройкаНеЗавершена 8 <key>ru</key> @@ -595,7 +595,7 @@ <common>true</common> </userVisible> <extendedTooltip> - <name>НадписьНастройкаНеЗаервшенаРасширеннаяПодсказка</name> + <name>НадписьНастройкаНеЗавершенаРасширеннаяПодсказка</name> <id>10</id> <type>Label</type> <autoMaxWidth>true</autoMaxWidth> @@ -605,7 +605,7 @@ </extInfo> </extendedTooltip> <contextMenu> - <name>НадписьНастройкаНеЗаервшенаКонтекстноеМеню</name> + <name>НадписьНастройкаНеЗавершенаКонтекстноеМеню</name> <id>9</id> <autoFill>true</autoFill> </contextMenu> @@ -700,6 +700,10 @@ <id>-1</id> <horizontalAlign>Left</horizontalAlign> </autoCommandBar> + <handlers> + <event>NotificationProcessing</event> + <name>ОбработкаОповещения</name> + </handlers> <handlers> <event>OnCreateAtServer</event> <name>ПриСозданииНаСервере</name> @@ -871,6 +875,19 @@ <common>true</common> </edit> </columns> + <columns> + <name>ОбязательныеРеквизитыНастройкиЗаполнены</name> + <id>10</id> + <valueType> + <types>Boolean</types> + </valueType> + <view> + <common>true</common> + </view> + <edit> + <common>true</common> + </edit> + </columns> </attributes> <attributes> <name>Корреспондент</name> diff --git a/SSL/src/Catalogs/НастройкиТранспортаСообщенийОбмена/Forms/ПанельНастроекТранспорта/Module.bsl b/SSL/src/Catalogs/НастройкиТранспортаСообщенийОбмена/Forms/ПанельНастроекТранспорта/Module.bsl index 0ce3e405a..6d456d509 100644 --- a/SSL/src/Catalogs/НастройкиТранспортаСообщенийОбмена/Forms/ПанельНастроекТранспорта/Module.bsl +++ b/SSL/src/Catalogs/НастройкиТранспортаСообщенийОбмена/Forms/ПанельНастроекТранспорта/Module.bsl @@ -1,5 +1,5 @@ /////////////////////////////////////////////////////////////////////////////////////////////////////// -// Copyright (c) 2024, ООО 1С-Софт +// Copyright (c) 2025, ООО 1С-Софт // Все права защищены. Эта программа и сопроводительные материалы предоставляются // в соответствии с условиями лицензии Attribution 4.0 International (CC BY 4.0) // Текст лицензии доступен по ссылке: @@ -26,6 +26,24 @@ КонецПроцедуры +&НаКлиенте +Процедура ОбработкаОповещения(ИмяСобытия, Параметр, Источник) + + Если ИмяСобытия = "ИзмененыНастройкиТранспорта" Тогда + Отбор = Новый Структура("ИдентификаторТранспорта", Параметр.ИдентификаторТранспорта); + РезультатПоиска = ТипыТранспорта.НайтиСтроки(Отбор); + + Если РезультатПоиска.Количество() = 0 Тогда + Возврат; + КонецЕсли; + + Строка = РезультатПоиска[0]; + + Строка.ОбязательныеРеквизитыНастройкиЗаполнены = Параметр.ОбязательныеРеквизитыНастройкиЗаполнены; + КонецЕсли; + +КонецПроцедуры + #КонецОбласти #Область ОбработчикиСобытийЭлементовШапкиФормы @@ -66,7 +84,7 @@ Если Не ТекущиеДанные.ЕстьНастройки Тогда - Текст = НСтр("ru = 'Невозможно установить ненастроенный тип транспорта используемым по умолчанию.'", + Текст = НСтр("ru = 'Невозможно установить тип транспорта, который не настроен используемым по умолчанию.'", ОбщегоНазначенияКлиент.КодОсновногоЯзыка()); ОбщегоНазначенияКлиент.СообщитьПользователю(Текст); @@ -190,6 +208,13 @@ Строка = РезультатПоиска[0]; Строка.НастройкаПоУмолчанию = Выборка.НастройкаПоУмолчанию; Строка.ЕстьНастройки = НЕ Выборка.Настройки.Пустой(); + Если Строка.ЕстьНастройки Тогда + Строка.ОбязательныеРеквизитыНастройкиЗаполнены = ТранспортСообщенийОбмена.ЗаполненыОбязательныеРеквизитыНастройкиТранспорта(Выборка.Настройки, Выборка.ИдентификаторТранспорта); + ИначеЕсли Строка.НастройкаПоУмолчанию Тогда + Строка.ОбязательныеРеквизитыНастройкиЗаполнены = Истина; + Иначе + Строка.ОбязательныеРеквизитыНастройкиЗаполнены = Ложь; + КонецЕсли; Если Выборка.НастройкаПоУмолчанию Тогда Строка.КартинкаФлаг = БиблиотекаКартинок.ТранспортПоУмолчанию; @@ -221,17 +246,35 @@ Процедура УстановитьУсловноеОформление() УсловноеОформление.Элементы.Очистить(); - + Элемент = УсловноеОформление.Элементы.Добавить(); - + ПолеЭлемента = Элемент.Поля.Элементы.Добавить(); ПолеЭлемента.Поле = Новый ПолеКомпоновкиДанных("ТипыТранспортаПсевдоним"); - - ОтборЭлемента = Элемент.Отбор.Элементы.Добавить(Тип("ЭлементОтбораКомпоновкиДанных")); + + ГруппаОтбора = Элемент.Отбор.Элементы.Добавить(Тип("ГруппаЭлементовОтбораКомпоновкиДанных")); + ГруппаОтбора.ТипГруппы = ТипГруппыЭлементовОтбораКомпоновкиДанных.ГруппаИли; + ГруппаОтбора.Использование = Истина; + + ГруппаОтбора2 = ГруппаОтбора.Элементы.Добавить(Тип("ГруппаЭлементовОтбораКомпоновкиДанных")); + ГруппаОтбора2.ТипГруппы = ТипГруппыЭлементовОтбораКомпоновкиДанных.ГруппаИ; + ГруппаОтбора2.Использование = Истина; + + ОтборЭлемента = ГруппаОтбора2.Элементы.Добавить(Тип("ЭлементОтбораКомпоновкиДанных")); + ОтборЭлемента.ЛевоеЗначение = Новый ПолеКомпоновкиДанных("ТипыТранспорта.ОбязательныеРеквизитыНастройкиЗаполнены"); + ОтборЭлемента.ВидСравнения = ВидСравненияКомпоновкиДанных.Равно; + ОтборЭлемента.ПравоеЗначение = Истина; + + ОтборЭлемента = ГруппаОтбора2.Элементы.Добавить(Тип("ЭлементОтбораКомпоновкиДанных")); ОтборЭлемента.ЛевоеЗначение = Новый ПолеКомпоновкиДанных("ТипыТранспорта.ЕстьНастройки"); ОтборЭлемента.ВидСравнения = ВидСравненияКомпоновкиДанных.Равно; ОтборЭлемента.ПравоеЗначение = Истина; - + + ОтборЭлемента = ГруппаОтбора.Элементы.Добавить(Тип("ЭлементОтбораКомпоновкиДанных")); + ОтборЭлемента.ЛевоеЗначение = Новый ПолеКомпоновкиДанных("ТипыТранспорта.НастройкаПоУмолчанию"); + ОтборЭлемента.ВидСравнения = ВидСравненияКомпоновкиДанных.Равно; + ОтборЭлемента.ПравоеЗначение = Истина; + Элемент.Оформление.УстановитьЗначениеПараметра("Шрифт", Новый Шрифт(,,Истина)); КонецПроцедуры @@ -243,13 +286,17 @@ Возврат; КонецЕсли; - ТранспортСообщенийОбменаВызовСервера.СохранитьНастройкиТранспорта( + ОбязательныеРеквизитыНастройкиЗаполнены = Истина; + + ТранспортСообщенийОбменаВызовСервера.ОбработатьИзменениеНастроекТранспорта( ДополнительныеПараметры.Корреспондент, ДополнительныеПараметры.ИдентификаторТранспорта, - Результат); + Результат, + ОбязательныеРеквизитыНастройкиЗаполнены); ТекущиеДанные = Элементы.ТипыТранспорта.ТекущиеДанные; ТекущиеДанные.ЕстьНастройки = Истина; + ТекущиеДанные.ОбязательныеРеквизитыНастройкиЗаполнены = ОбязательныеРеквизитыНастройкиЗаполнены; КонецПроцедуры diff --git a/SSL/src/Catalogs/НастройкиТранспортаСообщенийОбмена/Forms/ФормаСписка/Module.bsl b/SSL/src/Catalogs/НастройкиТранспортаСообщенийОбмена/Forms/ФормаСписка/Module.bsl index a1c48bd85..bd35d3209 100644 --- a/SSL/src/Catalogs/НастройкиТранспортаСообщенийОбмена/Forms/ФормаСписка/Module.bsl +++ b/SSL/src/Catalogs/НастройкиТранспортаСообщенийОбмена/Forms/ФормаСписка/Module.bsl @@ -1,5 +1,5 @@ /////////////////////////////////////////////////////////////////////////////////////////////////////// -// Copyright (c) 2024, ООО 1С-Софт +// Copyright (c) 2025, ООО 1С-Софт // Все права защищены. Эта программа и сопроводительные материалы предоставляются // в соответствии с условиями лицензии Attribution 4.0 International (CC BY 4.0) // Текст лицензии доступен по ссылке: @@ -44,16 +44,22 @@ &НаКлиенте Процедура СохранитьНастройкиТранспорта(Результат, ДополнительныеПараметры) Экспорт - + Если Результат = Неопределено Тогда Возврат; КонецЕсли; + + ОбязательныеРеквизитыНастройкиЗаполнены = Истина; - ТранспортСообщенийОбменаВызовСервера.СохранитьНастройкиТранспорта( + ТранспортСообщенийОбменаВызовСервера.ОбработатьИзменениеНастроекТранспорта( ДополнительныеПараметры.Корреспондент, ДополнительныеПараметры.ИдентификаторТранспорта, - Результат); - + Результат, + ОбязательныеРеквизитыНастройкиЗаполнены); + + ПараметрыОповещения = Новый Структура("ОбязательныеРеквизитыНастройкиЗаполнены, ИдентификаторТранспорта", ОбязательныеРеквизитыНастройкиЗаполнены, ДополнительныеПараметры.ИдентификаторТранспорта); + Оповестить("ИзмененыНастройкиТранспорта", ПараметрыОповещения); + КонецПроцедуры #КонецОбласти \ No newline at end of file diff --git a/SSL/src/Catalogs/НастройкиТранспортаСообщенийОбмена/Forms/ФормаЭлемента/Module.bsl b/SSL/src/Catalogs/НастройкиТранспортаСообщенийОбмена/Forms/ФормаЭлемента/Module.bsl index df25f693d..dbe8719b5 100644 --- a/SSL/src/Catalogs/НастройкиТранспортаСообщенийОбмена/Forms/ФормаЭлемента/Module.bsl +++ b/SSL/src/Catalogs/НастройкиТранспортаСообщенийОбмена/Forms/ФормаЭлемента/Module.bsl @@ -1,5 +1,5 @@ /////////////////////////////////////////////////////////////////////////////////////////////////////// -// Copyright (c) 2024, ООО 1С-Софт +// Copyright (c) 2025, ООО 1С-Софт // Все права защищены. Эта программа и сопроводительные материалы предоставляются // в соответствии с условиями лицензии Attribution 4.0 International (CC BY 4.0) // Текст лицензии доступен по ссылке: diff --git a/SSL/src/Catalogs/НастройкиТранспортаСообщенийОбмена/Help/ru.html b/SSL/src/Catalogs/НастройкиТранспортаСообщенийОбмена/Help/ru.html new file mode 100644 index 000000000..f8310b302 --- /dev/null +++ b/SSL/src/Catalogs/НастройкиТранспортаСообщенийОбмена/Help/ru.html @@ -0,0 +1,6 @@ +<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.0 Transitional//EN"><html><head><link rel="stylesheet" type="text/css" href="v8help://service_book/service_style"></link></head><body> +<div> +<h1 style="font-size: 17.920000076293945px;">Настройки транспорта сообщений обмена</h1></div> +<div><br></div>Универсальный справочник, который предназначен для хранения настроек транспорта синхронизации данных. + +<div>Под "транспортом синхронизации" подразумевается способ, которым будет передано сообщение обмена от источника в приемник, например, общий каталог, COM-соединение или ВЕБ-сервис (WS).</div></body></html> \ No newline at end of file diff --git a/SSL/src/Catalogs/НастройкиТранспортаСообщенийОбмена/ManagerModule.bsl b/SSL/src/Catalogs/НастройкиТранспортаСообщенийОбмена/ManagerModule.bsl index c14b189d6..48b2249b3 100644 --- a/SSL/src/Catalogs/НастройкиТранспортаСообщенийОбмена/ManagerModule.bsl +++ b/SSL/src/Catalogs/НастройкиТранспортаСообщенийОбмена/ManagerModule.bsl @@ -1,5 +1,5 @@ /////////////////////////////////////////////////////////////////////////////////////////////////////// -// Copyright (c) 2024, ООО 1С-Софт +// Copyright (c) 2025, ООО 1С-Софт // Все права защищены. Эта программа и сопроводительные материалы предоставляются // в соответствии с условиями лицензии Attribution 4.0 International (CC BY 4.0) // Текст лицензии доступен по ссылке: @@ -355,7 +355,7 @@ Если ОбщегоНазначения.РазделениеВключено() И ОбщегоНазначения.ДоступноИспользованиеРазделенныхДанных() Тогда - ПеренестиНастройкиТранспортаМенеджераСервсиа(); + ПеренестиНастройкиТранспортаМенеджераСервиса(); КонецЕсли; @@ -654,7 +654,7 @@ КонецФункции -Процедура ПеренестиНастройкиТранспортаМенеджераСервсиа() +Процедура ПеренестиНастройкиТранспортаМенеджераСервиса() Запрос = Новый Запрос; Запрос.Текст = diff --git a/SSL/src/Catalogs/НастройкиТранспортаСообщенийОбмена/ObjectModule.bsl b/SSL/src/Catalogs/НастройкиТранспортаСообщенийОбмена/ObjectModule.bsl index 1b9834642..869d5f125 100644 --- a/SSL/src/Catalogs/НастройкиТранспортаСообщенийОбмена/ObjectModule.bsl +++ b/SSL/src/Catalogs/НастройкиТранспортаСообщенийОбмена/ObjectModule.bsl @@ -1,5 +1,5 @@ /////////////////////////////////////////////////////////////////////////////////////////////////////// -// Copyright (c) 2024, ООО 1С-Софт +// Copyright (c) 2025, ООО 1С-Софт // Все права защищены. Эта программа и сопроводительные материалы предоставляются // в соответствии с условиями лицензии Attribution 4.0 International (CC BY 4.0) // Текст лицензии доступен по ссылке: @@ -23,5 +23,6 @@ #КонецОбласти -#КонецЕсли - +#Иначе + ВызватьИсключение НСтр("ru = 'Недопустимый вызов объекта на клиенте.'"); +#КонецЕсли \ No newline at end of file diff --git a/SSL/src/Catalogs/НастройкиТранспортаСообщенийОбмена/НастройкиТранспортаСообщенийОбмена.mdo b/SSL/src/Catalogs/НастройкиТранспортаСообщенийОбмена/НастройкиТранспортаСообщенийОбмена.mdo index 8fa719d66..ce5ec75b6 100644 --- a/SSL/src/Catalogs/НастройкиТранспортаСообщенийОбмена/НастройкиТранспортаСообщенийОбмена.mdo +++ b/SSL/src/Catalogs/НастройкиТранспортаСообщенийОбмена/НастройкиТранспортаСообщенийОбмена.mdo @@ -92,6 +92,12 @@ <maxValue xsi:type="core:UndefinedValue"/> </standardAttributes> <createOnInput>Use</createOnInput> + <includeHelpInContents>true</includeHelpInContents> + <help> + <pages> + <lang>ru</lang> + </pages> + </help> <dataLockFields>Catalog.НастройкиТранспортаСообщенийОбмена.Attribute.Корреспондент</dataLockFields> <dataLockFields>Catalog.НастройкиТранспортаСообщенийОбмена.Attribute.ИдентификаторТранспорта</dataLockFields> <dataLockControlMode>Managed</dataLockControlMode> diff --git a/SSL/src/Catalogs/ОбщиеВнешниеКомпоненты/ManagerModule.bsl b/SSL/src/Catalogs/ОбщиеВнешниеКомпоненты/ManagerModule.bsl index 9e22711c1..4bd627500 100644 --- a/SSL/src/Catalogs/ОбщиеВнешниеКомпоненты/ManagerModule.bsl +++ b/SSL/src/Catalogs/ОбщиеВнешниеКомпоненты/ManagerModule.bsl @@ -1,5 +1,5 @@ /////////////////////////////////////////////////////////////////////////////////////////////////////// -// Copyright (c) 2024, ООО 1С-Софт +// Copyright (c) 2025, ООО 1С-Софт // Все права защищены. Эта программа и сопроводительные материалы предоставляются // в соответствии с условиями лицензии Attribution 4.0 International (CC BY 4.0) // Текст лицензии доступен по ссылке: diff --git a/SSL/src/Catalogs/ОбщиеНастройкиАвторизацииИнтернетСервисов/Forms/ФормаЭлемента/Form.form b/SSL/src/Catalogs/ОбщиеНастройкиАвторизацииИнтернетСервисов/Forms/ФормаЭлемента/Form.form new file mode 100644 index 000000000..1c45f29af --- /dev/null +++ b/SSL/src/Catalogs/ОбщиеНастройкиАвторизацииИнтернетСервисов/Forms/ФормаЭлемента/Form.form @@ -0,0 +1,692 @@ +<?xml version="1.0" encoding="UTF-8"?> +<form:Form xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns:core="http://g5.1c.ru/v8/dt/mcore" xmlns:form="http://g5.1c.ru/v8/dt/form"> + <items xsi:type="form:FormField"> + <name>ВладелецДанных</name> + <id>25</id> + <title> + <key>ru</key> + <value>Владелец данных</value> + + true + true + + true + + + Объект.ВладелецДанных + + Button + + ВладелецДанныхРасширеннаяПодсказка + 27 + Label + true + true + + Left + + + + ВладелецДанныхКонтекстноеМеню + 26 + true + + InputField + Enter + true + Left + true + + true + true + true + true + true + true + Normal + + + + ИмяИнтернетСервиса + 22 + true + true + + true + + + Объект.ИмяИнтернетСервиса + + Button + + ИмяИнтернетСервисаРасширеннаяПодсказка + 24 + Label + true + true + + Left + + + + ИмяИнтернетСервисаКонтекстноеМеню + 23 + true + + InputField + Enter + true + Left + true + + true + true + true + true + true + true + Normal + + + + АдресАвторизации + 4 + true + true + + true + + + Объект.АдресАвторизации + + Button + + АдресАвторизацииРасширеннаяПодсказка + 6 + Label + true + true + + Left + + + + АдресАвторизацииКонтекстноеМеню + 5 + true + + InputField + Auto + true + Left + true + + true + true + true + true + true + true + Normal + + + + АдресПеренаправления + 28 + true + true + + true + + + Объект.АдресПеренаправления + + Button + + АдресПеренаправленияРасширеннаяПодсказка + 30 + Label + true + true + + Left + + + + АдресПеренаправленияКонтекстноеМеню + 29 + true + + InputField + Enter + true + Left + true + + true + true + true + true + true + true + Normal + + + + АдресРегистрацииУстройства + 49 + true + true + + true + + + Объект.АдресРегистрацииУстройства + + + АдресРегистрацииУстройстваРасширеннаяПодсказка + 51 + Label + true + true + + Left + + + + АдресРегистрацииУстройстваКонтекстноеМеню + 50 + true + + InputField + Enter + true + Left + true + + true + true + true + true + true + true + Normal + + + + АдресПеренаправленияВебКлиент + 46 + true + true + + true + + + Объект.АдресПеренаправленияВебКлиент + + + АдресПеренаправленияВебКлиентРасширеннаяПодсказка + 48 + Label + true + true + + Left + + + + АдресПеренаправленияВебКлиентКонтекстноеМеню + 47 + true + + InputField + Enter + true + Left + true + + true + true + true + true + true + true + Normal + + + + АдресПолученияКлюча + 7 + true + true + + true + + + Объект.АдресПолученияКлюча + + Button + + АдресПолученияКлючаРасширеннаяПодсказка + 9 + Label + true + true + + Left + + + + АдресПолученияКлючаКонтекстноеМеню + 8 + true + + InputField + Auto + true + Left + true + + true + true + true + true + true + true + Normal + + + + ЗапрашиваемыеРазрешения + 34 + true + true + + true + + + Объект.ЗапрашиваемыеРазрешения + + Button + + ЗапрашиваемыеРазрешенияРасширеннаяПодсказка + 36 + Label + true + true + + Left + + + + ЗапрашиваемыеРазрешенияКонтекстноеМеню + 35 + true + + InputField + Enter + true + Left + true + + true + true + true + true + true + true + Normal + + + + ИдентификаторПриложения + 16 + true + true + + true + + + Объект.ИдентификаторПриложения + + Button + + ИдентификаторПриложенияРасширеннаяПодсказка + 18 + Label + true + true + + Left + + + + ИдентификаторПриложенияКонтекстноеМеню + 17 + true + + InputField + Enter + true + Left + true + + true + true + true + true + true + true + Normal + + + + ПарольПриложения + 19 + + <key>ru</key> + <value>Пароль приложения</value> + + true + true + + true + + + ПарольПриложения + + + ru + Секретный ключ доступа этого приложения к данным на сервере + + Button + + ПарольПриложенияРасширеннаяПодсказка + 21 + Label + true + true + + Left + + + + ПарольПриложенияКонтекстноеМеню + 20 + true + + InputField + Enter + true + Left + true + + + EditTextChange + ПарольПриложенияИзменениеТекстаРедактирования + + + StartChoice + ПарольПриложенияНачалоВыбора + + true + true + true + true + true + + CommonPicture.ВводимыеСимволыВидны + + true + true + true + Normal + + + + ДополнительныеПараметрыАвторизации + 37 + true + true + + true + + + Объект.ДополнительныеПараметрыАвторизации + + Button + + ДополнительныеПараметрыАвторизацииРасширеннаяПодсказка + 39 + Label + true + true + + Left + + + + ДополнительныеПараметрыАвторизацииКонтекстноеМеню + 38 + true + + InputField + Enter + true + Left + true + + true + true + true + true + true + true + Normal + + + + ДополнительныеПараметрыПолученияТокена + 40 + true + true + + true + + + Объект.ДополнительныеПараметрыПолученияТокена + + Button + + ДополнительныеПараметрыПолученияТокенаРасширеннаяПодсказка + 42 + Label + true + true + + Left + + + + ДополнительныеПараметрыПолученияТокенаКонтекстноеМеню + 41 + true + + InputField + Enter + true + Left + true + + true + true + true + true + true + true + Normal + + + + ИспользоватьКлючПроверкиПодлинностиPKCE + 31 + true + true + + true + + + Объект.ИспользоватьКлючПроверкиПодлинностиPKCE + + Right + Button + + ИспользоватьКлючПроверкиПодлинностиPKCEРасширеннаяПодсказка + 33 + Label + true + true + + Left + + + + ИспользоватьКлючПроверкиПодлинностиPKCEКонтекстноеМеню + 32 + true + + CheckBoxField + Enter + true + Left + true + + + + ИспользоватьПарольПриложения + 43 + true + true + + true + + + Объект.ИспользоватьПарольПриложения + + Right + Button + + ИспользоватьПарольПриложенияРасширеннаяПодсказка + 45 + Label + true + true + + Left + + + + ИспользоватьПарольПриложенияКонтекстноеМеню + 44 + true + + CheckBoxField + Enter + true + Left + true + + + + ФормаКоманднаяПанель + -1 + Left + true + + + OnCreateAtServer + ПриСозданииНаСервере + + LockOwner + Use + true + true + true + Vertical + true + true + true + auto + true + + Объект + 1 + + CatalogObject.ОбщиеНастройкиАвторизацииИнтернетСервисов + + + true + + + true + +
true
+ true +
+ + ПарольПриложения + + <key>ru</key> + <value>Пароль приложения</value> + + 4 + + String + + + + true + + + true + + + ПарольПриложения + + true + + + ПарольИзменен + 5 + + Boolean + + + true + + + true + + + + + + 0 + FormNavigationPanelGoTo + 0 + + + + + + + + OnReadAtServer + ПриЧтенииНаСервере + + + OnWriteAtServer + ПриЗаписиНаСервере + + +
diff --git a/SSL/src/Catalogs/ОбщиеНастройкиАвторизацииИнтернетСервисов/Forms/ФормаЭлемента/Module.bsl b/SSL/src/Catalogs/ОбщиеНастройкиАвторизацииИнтернетСервисов/Forms/ФормаЭлемента/Module.bsl new file mode 100644 index 000000000..f7ffc6405 --- /dev/null +++ b/SSL/src/Catalogs/ОбщиеНастройкиАвторизацииИнтернетСервисов/Forms/ФормаЭлемента/Module.bsl @@ -0,0 +1,69 @@ +/////////////////////////////////////////////////////////////////////////////////////////////////////// +// Copyright (c) 2025, ООО 1С-Софт +// Все права защищены. Эта программа и сопроводительные материалы предоставляются +// в соответствии с условиями лицензии Attribution 4.0 International (CC BY 4.0) +// Текст лицензии доступен по ссылке: +// https://creativecommons.org/licenses/by/4.0/legalcode +/////////////////////////////////////////////////////////////////////////////////////////////////////// + +#Область ОбработчикиСобытийФормы + +&НаСервере +Процедура ПриСозданииНаСервере(Отказ, СтандартнаяОбработка) + + Если Не Пользователи.ЭтоПолноправныйПользователь(, Истина) Тогда + ВызватьИсключение(НСтр("ru = 'Недостаточно прав для выполнения операции.'"), КатегорияОшибки.НарушениеПравДоступа); + КонецЕсли; + +КонецПроцедуры + +&НаСервере +Процедура ПриЧтенииНаСервере(ТекущийОбъект) + + Если Не Объект.Ссылка.Пустая() Тогда + + УстановитьПривилегированныйРежим(Истина); + ПарольУстановлен = ОбщегоНазначения.ПрочитатьДанныеИзБезопасногоХранилища(Объект.Ссылка) <> ""; + УстановитьПривилегированныйРежим(Ложь); + + ПарольПриложения = ?(ПарольУстановлен, УникальныйИдентификатор, ""); + ПарольИзменен = Ложь; + + РаботаСПочтовымиСообщениямиСлужебный.ОформитьПолеПароля(Элементы.ПарольПриложения); + + КонецЕсли; + +КонецПроцедуры + +&НаСервере +Процедура ПриЗаписиНаСервере(Отказ, ТекущийОбъект, ПараметрыЗаписи) + + Если Не ПарольИзменен Тогда + + УстановитьПривилегированныйРежим(Истина); + ОбщегоНазначения.ЗаписатьДанныеВБезопасноеХранилище(ТекущийОбъект.Ссылка, ПарольПриложения, "ПарольПриложения"); + УстановитьПривилегированныйРежим(Ложь); + + КонецЕсли; + +КонецПроцедуры + +&НаКлиенте +Процедура ПарольПриложенияИзменениеТекстаРедактирования(Элемент, Текст, СтандартнаяОбработка) + + Элементы.ПарольПриложения.КнопкаВыбора = Истина; + +КонецПроцедуры + +#КонецОбласти + +#Область ОбработчикиСобытийЭлементовШапкиФормы + +&НаКлиенте +Процедура ПарольПриложенияНачалоВыбора(Элемент, ДанныеВыбора, СтандартнаяОбработка) + + РаботаСПочтовымиСообщениямиКлиент.ПолеПароляНачалоВыбора(Элемент, ПарольПриложения, СтандартнаяОбработка); + +КонецПроцедуры + +#КонецОбласти diff --git a/SSL/src/Catalogs/ОбщиеНастройкиАвторизацииИнтернетСервисов/ManagerModule.bsl b/SSL/src/Catalogs/ОбщиеНастройкиАвторизацииИнтернетСервисов/ManagerModule.bsl new file mode 100644 index 000000000..697e98d70 --- /dev/null +++ b/SSL/src/Catalogs/ОбщиеНастройкиАвторизацииИнтернетСервисов/ManagerModule.bsl @@ -0,0 +1,111 @@ +/////////////////////////////////////////////////////////////////////////////////////////////////////// +// Copyright (c) 2025, ООО 1С-Софт +// Все права защищены. Эта программа и сопроводительные материалы предоставляются +// в соответствии с условиями лицензии Attribution 4.0 International (CC BY 4.0) +// Текст лицензии доступен по ссылке: +// https://creativecommons.org/licenses/by/4.0/legalcode +/////////////////////////////////////////////////////////////////////////////////////////////////////// + +#Если Сервер Или ТолстыйКлиентОбычноеПриложение Или ВнешнееСоединение Тогда + +#Область СлужебныеПроцедурыИФункции + +// Возвращаемое значение: +// Структура: +// * Ссылка - СправочникСсылка.ОбщиеНастройкиАвторизацииИнтернетСервисов +// * ИмяИнтернетСервиса - Строка +// * ВладелецДанных - Строка +// * АдресАвторизации - Строка +// * АдресРегистрацииУстройства - Строка +// * АдресПолученияКлюча - Строка +// * АдресПеренаправления - Строка +// * ЗапрашиваемыеРазрешения - Строка +// * ИспользоватьКлючПроверкиПодлинностиPKCE - Булево +// * ИдентификаторПриложения - Строка +// * ИспользоватьПарольПриложения - Булево +// * ПарольПриложения - Строка +// * ДополнительныеПараметрыАвторизации - Строка +// * ДополнительныеПараметрыПолученияТокена - Строка +// * ПояснениеПоАдресуПеренаправления - Строка +// * ПояснениеПоИдентификаторуПриложения - Строка +// * ПояснениеПоПаролюПриложения - Строка +// * ДополнительноеПояснение - Строка +// * ПсевдонимАдресаПеренаправления - Строка +// * ПсевдонимИдентификатораПриложения - Строка +// * ПсевдонимПароляПриложения - Строка +// * АдресПеренаправленияПоУмолчанию - Строка +// * АдресПеренаправленияВебКлиент - Строка +// +Функция НастройкиАвторизацииИнтернетСервиса(ИмяИнтернетСервиса, ВладелецДанных) Экспорт + + НастройкиАвторизации = Новый Структура; + НастройкиАвторизации.Вставить("Ссылка"); + НастройкиАвторизации.Вставить("ИмяИнтернетСервиса"); + НастройкиАвторизации.Вставить("ВладелецДанных"); + НастройкиАвторизации.Вставить("АдресАвторизации"); + НастройкиАвторизации.Вставить("АдресРегистрацииУстройства"); + НастройкиАвторизации.Вставить("АдресПолученияКлюча"); + НастройкиАвторизации.Вставить("АдресПеренаправления"); + НастройкиАвторизации.Вставить("АдресПеренаправленияВебКлиент"); + НастройкиАвторизации.Вставить("ЗапрашиваемыеРазрешения"); + НастройкиАвторизации.Вставить("ИспользоватьКлючПроверкиПодлинностиPKCE"); + НастройкиАвторизации.Вставить("ИдентификаторПриложения"); + НастройкиАвторизации.Вставить("ИспользоватьПарольПриложения"); + НастройкиАвторизации.Вставить("ПарольПриложения"); + НастройкиАвторизации.Вставить("ДополнительныеПараметрыАвторизации"); + НастройкиАвторизации.Вставить("ДополнительныеПараметрыПолученияТокена"); + НастройкиАвторизации.Вставить("ПояснениеПоАдресуПеренаправления", ""); + НастройкиАвторизации.Вставить("ПояснениеПоИдентификаторуПриложения", ""); + НастройкиАвторизации.Вставить("ПояснениеПоПаролюПриложения", ""); + НастройкиАвторизации.Вставить("ДополнительноеПояснение", ""); + НастройкиАвторизации.Вставить("ПсевдонимАдресаПеренаправления", ""); + НастройкиАвторизации.Вставить("ПсевдонимИдентификатораПриложения", ""); + НастройкиАвторизации.Вставить("ПсевдонимПароляПриложения", ""); + НастройкиАвторизации.Вставить("АдресПеренаправленияПоУмолчанию", ""); + НастройкиАвторизации.Вставить("ПодсказкаВводаПароля", ""); + + ТекстЗапроса = + "ВЫБРАТЬ + | ОбщиеНастройкиАвторизацииИнтернетСервисов.Ссылка КАК Ссылка, + | ОбщиеНастройкиАвторизацииИнтернетСервисов.АдресАвторизации КАК АдресАвторизации, + | ОбщиеНастройкиАвторизацииИнтернетСервисов.АдресПолученияКлюча КАК АдресПолученияКлюча, + | ОбщиеНастройкиАвторизацииИнтернетСервисов.АдресРегистрацииУстройства КАК АдресРегистрацииУстройства, + | ОбщиеНастройкиАвторизацииИнтернетСервисов.АдресПеренаправления КАК АдресПеренаправления, + | ОбщиеНастройкиАвторизацииИнтернетСервисов.АдресПеренаправленияВебКлиент КАК АдресПеренаправленияВебКлиент, + | ОбщиеНастройкиАвторизацииИнтернетСервисов.ИспользоватьКлючПроверкиПодлинностиPKCE КАК ИспользоватьКлючПроверкиПодлинностиPKCE, + | ОбщиеНастройкиАвторизацииИнтернетСервисов.ИдентификаторПриложения КАК ИдентификаторПриложения, + | ОбщиеНастройкиАвторизацииИнтернетСервисов.ЗапрашиваемыеРазрешения КАК ЗапрашиваемыеРазрешения, + | ОбщиеНастройкиАвторизацииИнтернетСервисов.ИспользоватьПарольПриложения КАК ИспользоватьПарольПриложения, + | ОбщиеНастройкиАвторизацииИнтернетСервисов.ДополнительныеПараметрыАвторизации КАК ДополнительныеПараметрыАвторизации, + | ОбщиеНастройкиАвторизацииИнтернетСервисов.ДополнительныеПараметрыПолученияТокена КАК ДополнительныеПараметрыПолученияТокена, + | ОбщиеНастройкиАвторизацииИнтернетСервисов.ИмяИнтернетСервиса КАК ИмяИнтернетСервиса, + | ОбщиеНастройкиАвторизацииИнтернетСервисов.ВладелецДанных КАК ВладелецДанных + |ИЗ + | Справочник.ОбщиеНастройкиАвторизацииИнтернетСервисов КАК ОбщиеНастройкиАвторизацииИнтернетСервисов + |ГДЕ + | ОбщиеНастройкиАвторизацииИнтернетСервисов.ВладелецДанных = &ВладелецДанных + | И ОбщиеНастройкиАвторизацииИнтернетСервисов.ИмяИнтернетСервиса = &ИмяИнтернетСервиса + | И НЕ ОбщиеНастройкиАвторизацииИнтернетСервисов.ПометкаУдаления"; + + Запрос = Новый Запрос(ТекстЗапроса); + Запрос.УстановитьПараметр("ВладелецДанных", ВладелецДанных); + Запрос.УстановитьПараметр("ИмяИнтернетСервиса", ИмяИнтернетСервиса); + + ВыборкаДетальныеЗаписи = Запрос.Выполнить().Выбрать(); + + Если ВыборкаДетальныеЗаписи.Следующий() Тогда + + ЗаполнитьЗначенияСвойств(НастройкиАвторизации, ВыборкаДетальныеЗаписи); + + НастройкиАвторизации.ПарольПриложения = ОбщегоНазначения.ПрочитатьДанныеИзБезопасногоХранилища( + ВыборкаДетальныеЗаписи.Ссылка, "ПарольПриложения"); + + КонецЕсли; + + Возврат НастройкиАвторизации; + +КонецФункции + +#КонецОбласти + +#КонецЕсли \ No newline at end of file diff --git a/SSL/src/Catalogs/ОбщиеНастройкиАвторизацииИнтернетСервисов/ObjectModule.bsl b/SSL/src/Catalogs/ОбщиеНастройкиАвторизацииИнтернетСервисов/ObjectModule.bsl new file mode 100644 index 000000000..0ee22d1a1 --- /dev/null +++ b/SSL/src/Catalogs/ОбщиеНастройкиАвторизацииИнтернетСервисов/ObjectModule.bsl @@ -0,0 +1,27 @@ +/////////////////////////////////////////////////////////////////////////////////////////////////////// +// Copyright (c) 2025, ООО 1С-Софт +// Все права защищены. Эта программа и сопроводительные материалы предоставляются +// в соответствии с условиями лицензии Attribution 4.0 International (CC BY 4.0) +// Текст лицензии доступен по ссылке: +// https://creativecommons.org/licenses/by/4.0/legalcode +/////////////////////////////////////////////////////////////////////////////////////////////////////// + +#Если Сервер Или ТолстыйКлиентОбычноеПриложение Или ВнешнееСоединение Тогда + +#Область ОбработчикиСобытий + +Процедура ПередЗаписью(Отказ) + + Если ОбменДанными.Загрузка Тогда + Возврат; + КонецЕсли; + + Наименование = ВладелецДанных + " / " + ИмяИнтернетСервиса; + +КонецПроцедуры + +#КонецОбласти + +#Иначе +ВызватьИсключение НСтр("ru = 'Недопустимый вызов объекта на клиенте.'"); +#КонецЕсли \ No newline at end of file diff --git a/SSL/src/Catalogs/ОбщиеНастройкиАвторизацииИнтернетСервисов/ОбщиеНастройкиАвторизацииИнтернетСервисов.mdo b/SSL/src/Catalogs/ОбщиеНастройкиАвторизацииИнтернетСервисов/ОбщиеНастройкиАвторизацииИнтернетСервисов.mdo new file mode 100644 index 000000000..f46e4e9cc --- /dev/null +++ b/SSL/src/Catalogs/ОбщиеНастройкиАвторизацииИнтернетСервисов/ОбщиеНастройкиАвторизацииИнтернетСервисов.mdo @@ -0,0 +1,376 @@ + + + + + + + + + + ОбщиеНастройкиАвторизацииИнтернетСервисов + + ru + Общие настройки авторизации Интернет-сервисов + + true + Catalog.ОбщиеНастройкиАвторизацииИнтернетСервисов.StandardAttribute.Description + DontUse + + Use + PredefinedDataName + + Use + + + + + Use + Predefined + + Use + + + + + Use + Ref + + Use + + + + + Use + DeletionMark + + Use + + + + + Use + IsFolder + + Use + + + + + Use + Owner + true + + ShowError + Use + + + + + Use + Parent + true + + Use + + + + + Use + Description + + Use + + + + + Use + Code + + Use + + + + Use + Managed + Use + + ru + Общая настройка авторизации Интернет-сервисов + + 2 + true + 50 + String + Variable + AsDescription + InDialog + BothWays + Catalog.ОбщиеНастройкиАвторизацииИнтернетСервисов.Form.ФормаЭлемента + + ВладелецДанных + + ru + Владелец данных + + + String + + 200 + + + + ru + Имя домена-владельца данных. По этому имени определяется возможность использования аутентификации по протоколу OAuth. Например, mycompany.zzz. + + + + + Use + Use + + + АдресАвторизации + + ru + Адрес авторизации + + + String + + + + ru + Адрес для интерактивной авторизации пользователя + + + + + Use + Use + + + АдресПолученияКлюча + + ru + Адрес получения ключа + + + String + + + + ru + Адрес для получения и обновления токенов + + + + + Use + Use + + + ИмяИнтернетСервиса + + ru + Имя интернет сервиса + + + String + + 200 + + + + ru + Доменное имя сервера, на котором хранятся данные. Например, outlook.com. + + + + + Use + Use + + + ИдентификаторПриложения + + ru + Идентификатор приложения + + + String + + + + ru + Идентификатор этого приложения на сервере с данными + + + + + Use + Use + + + АдресПеренаправления + + ru + Адрес перенаправления + + + String + + + + ru + Адрес перенаправления пользователя после авторизации + + + + + Use + Use + + + ИспользоватьКлючПроверкиПодлинностиPKCE + + ru + Использовать ключ проверки подлинности (PKCE) + + + Boolean + + + ru + Установите этот флажок, если в запросах авторизации и обмена кода авторизации на токен доступа на сервере авторизации поддерживается защита с помощью ключа проверки подлинности "Proof Key for Code Exchange (PKCE)" + + + + + Use + Use + + + ЗапрашиваемыеРазрешения + + ru + Запрашиваемые разрешения + + + String + + + + ru + Идентификаторы разрешений, разделенные пробелом. + + + + + Use + Use + + + ИспользоватьПарольПриложения + + ru + Использовать пароль приложения + + + Boolean + + + ru + Установите этот флажок, если для получения токенов требуется передавать в запросах пароль приложения (client_secret) + + + + + Use + Use + + + ДополнительныеПараметрыАвторизации + + ru + Дополнительные параметры авторизации + + + String + + + + ru + Дополнительные параметры, которые необходимо передать в запросе авторизации. Указываются в формате Параметр=Значение, разделитель - пробел. + + + + + Use + Use + + + ДополнительныеПараметрыПолученияТокена + + ru + Дополнительные параметры получения токена + + + String + + + + ru + Дополнительные параметры, которые необходимо передать в запросе обмена кода авторизации на токен доступа. Указываются в формате Параметр=Значение, разделитель - пробел. + + + + + Use + Use + + + АдресПеренаправленияВебКлиент + + ru + Адрес перенаправления (Веб-клиент) + + + String + + + + ru + Адрес перенаправления пользователя после авторизации (при работе в веб-клиенте) + + + + + Use + Use + + + АдресРегистрацииУстройства + + ru + Адрес регистрации устройства + + + String + + + + + + Use + Use + + + ФормаЭлемента + + ru + Форма элемента + + PersonalComputer + MobileDevice + + diff --git a/SSL/src/Catalogs/ПапкиФайлов/Forms/ФормаВыбора/Module.bsl b/SSL/src/Catalogs/ПапкиФайлов/Forms/ФормаВыбора/Module.bsl index 603eb48d1..fb4981952 100644 --- a/SSL/src/Catalogs/ПапкиФайлов/Forms/ФормаВыбора/Module.bsl +++ b/SSL/src/Catalogs/ПапкиФайлов/Forms/ФормаВыбора/Module.bsl @@ -1,5 +1,5 @@ /////////////////////////////////////////////////////////////////////////////////////////////////////// -// Copyright (c) 2024, ООО 1С-Софт +// Copyright (c) 2025, ООО 1С-Софт // Все права защищены. Эта программа и сопроводительные материалы предоставляются // в соответствии с условиями лицензии Attribution 4.0 International (CC BY 4.0) // Текст лицензии доступен по ссылке: diff --git a/SSL/src/Catalogs/ПапкиФайлов/Forms/ФормаЭлемента/Module.bsl b/SSL/src/Catalogs/ПапкиФайлов/Forms/ФормаЭлемента/Module.bsl index 7a6f30d4e..ccde2facc 100644 --- a/SSL/src/Catalogs/ПапкиФайлов/Forms/ФормаЭлемента/Module.bsl +++ b/SSL/src/Catalogs/ПапкиФайлов/Forms/ФормаЭлемента/Module.bsl @@ -1,5 +1,5 @@ /////////////////////////////////////////////////////////////////////////////////////////////////////// -// Copyright (c) 2024, ООО 1С-Софт +// Copyright (c) 2025, ООО 1С-Софт // Все права защищены. Эта программа и сопроводительные материалы предоставляются // в соответствии с условиями лицензии Attribution 4.0 International (CC BY 4.0) // Текст лицензии доступен по ссылке: diff --git a/SSL/src/Catalogs/ПапкиФайлов/ManagerModule.bsl b/SSL/src/Catalogs/ПапкиФайлов/ManagerModule.bsl index 4e0192b46..b09686474 100644 --- a/SSL/src/Catalogs/ПапкиФайлов/ManagerModule.bsl +++ b/SSL/src/Catalogs/ПапкиФайлов/ManagerModule.bsl @@ -1,5 +1,5 @@ /////////////////////////////////////////////////////////////////////////////////////////////////////// -// Copyright (c) 2024, ООО 1С-Софт +// Copyright (c) 2025, ООО 1С-Софт // Все права защищены. Эта программа и сопроводительные материалы предоставляются // в соответствии с условиями лицензии Attribution 4.0 International (CC BY 4.0) // Текст лицензии доступен по ссылке: diff --git a/SSL/src/Catalogs/ПапкиФайлов/ObjectModule.bsl b/SSL/src/Catalogs/ПапкиФайлов/ObjectModule.bsl index 01c105252..8dd4820ed 100644 --- a/SSL/src/Catalogs/ПапкиФайлов/ObjectModule.bsl +++ b/SSL/src/Catalogs/ПапкиФайлов/ObjectModule.bsl @@ -1,5 +1,5 @@ /////////////////////////////////////////////////////////////////////////////////////////////////////// -// Copyright (c) 2024, ООО 1С-Софт +// Copyright (c) 2025, ООО 1С-Софт // Все права защищены. Эта программа и сопроводительные материалы предоставляются // в соответствии с условиями лицензии Attribution 4.0 International (CC BY 4.0) // Текст лицензии доступен по ссылке: diff --git a/SSL/src/Catalogs/ПапкиЭлектронныхПисем/Forms/ФормаВыбора/Module.bsl b/SSL/src/Catalogs/ПапкиЭлектронныхПисем/Forms/ФормаВыбора/Module.bsl index 74031ef27..7bc2db910 100644 --- a/SSL/src/Catalogs/ПапкиЭлектронныхПисем/Forms/ФормаВыбора/Module.bsl +++ b/SSL/src/Catalogs/ПапкиЭлектронныхПисем/Forms/ФормаВыбора/Module.bsl @@ -1,5 +1,5 @@ /////////////////////////////////////////////////////////////////////////////////////////////////////// -// Copyright (c) 2024, ООО 1С-Софт +// Copyright (c) 2025, ООО 1С-Софт // Все права защищены. Эта программа и сопроводительные материалы предоставляются // в соответствии с условиями лицензии Attribution 4.0 International (CC BY 4.0) // Текст лицензии доступен по ссылке: diff --git a/SSL/src/Catalogs/ПапкиЭлектронныхПисем/Forms/ФормаСписка/Module.bsl b/SSL/src/Catalogs/ПапкиЭлектронныхПисем/Forms/ФормаСписка/Module.bsl index 8f2aa11fb..7c9802a36 100644 --- a/SSL/src/Catalogs/ПапкиЭлектронныхПисем/Forms/ФормаСписка/Module.bsl +++ b/SSL/src/Catalogs/ПапкиЭлектронныхПисем/Forms/ФормаСписка/Module.bsl @@ -1,5 +1,5 @@ /////////////////////////////////////////////////////////////////////////////////////////////////////// -// Copyright (c) 2024, ООО 1С-Софт +// Copyright (c) 2025, ООО 1С-Софт // Все права защищены. Эта программа и сопроводительные материалы предоставляются // в соответствии с условиями лицензии Attribution 4.0 International (CC BY 4.0) // Текст лицензии доступен по ссылке: diff --git a/SSL/src/Catalogs/ПапкиЭлектронныхПисем/Forms/ФормаЭлемента/Module.bsl b/SSL/src/Catalogs/ПапкиЭлектронныхПисем/Forms/ФормаЭлемента/Module.bsl index 86ede6e07..ee7cb286c 100644 --- a/SSL/src/Catalogs/ПапкиЭлектронныхПисем/Forms/ФормаЭлемента/Module.bsl +++ b/SSL/src/Catalogs/ПапкиЭлектронныхПисем/Forms/ФормаЭлемента/Module.bsl @@ -1,5 +1,5 @@ /////////////////////////////////////////////////////////////////////////////////////////////////////// -// Copyright (c) 2024, ООО 1С-Софт +// Copyright (c) 2025, ООО 1С-Софт // Все права защищены. Эта программа и сопроводительные материалы предоставляются // в соответствии с условиями лицензии Attribution 4.0 International (CC BY 4.0) // Текст лицензии доступен по ссылке: diff --git a/SSL/src/Catalogs/ПапкиЭлектронныхПисем/ManagerModule.bsl b/SSL/src/Catalogs/ПапкиЭлектронныхПисем/ManagerModule.bsl index c045bd26c..1d5da738a 100644 --- a/SSL/src/Catalogs/ПапкиЭлектронныхПисем/ManagerModule.bsl +++ b/SSL/src/Catalogs/ПапкиЭлектронныхПисем/ManagerModule.bsl @@ -1,5 +1,5 @@ /////////////////////////////////////////////////////////////////////////////////////////////////////// -// Copyright (c) 2024, ООО 1С-Софт +// Copyright (c) 2025, ООО 1С-Софт // Все права защищены. Эта программа и сопроводительные материалы предоставляются // в соответствии с условиями лицензии Attribution 4.0 International (CC BY 4.0) // Текст лицензии доступен по ссылке: diff --git a/SSL/src/Catalogs/ПапкиЭлектронныхПисем/ObjectModule.bsl b/SSL/src/Catalogs/ПапкиЭлектронныхПисем/ObjectModule.bsl index 63f8507a3..4fc9c8157 100644 --- a/SSL/src/Catalogs/ПапкиЭлектронныхПисем/ObjectModule.bsl +++ b/SSL/src/Catalogs/ПапкиЭлектронныхПисем/ObjectModule.bsl @@ -1,5 +1,5 @@ /////////////////////////////////////////////////////////////////////////////////////////////////////// -// Copyright (c) 2024, ООО 1С-Софт +// Copyright (c) 2025, ООО 1С-Софт // Все права защищены. Эта программа и сопроводительные материалы предоставляются // в соответствии с условиями лицензии Attribution 4.0 International (CC BY 4.0) // Текст лицензии доступен по ссылке: diff --git a/SSL/src/Catalogs/ПодписантыСервисаМобильнойПодписи/Commands/ПодписантыСервисаМобильнойПодписи/CommandModule.bsl b/SSL/src/Catalogs/ПодписантыСервисаМобильнойПодписи/Commands/ПодписантыСервисаМобильнойПодписи/CommandModule.bsl new file mode 100644 index 000000000..d285917ef --- /dev/null +++ b/SSL/src/Catalogs/ПодписантыСервисаМобильнойПодписи/Commands/ПодписантыСервисаМобильнойПодписи/CommandModule.bsl @@ -0,0 +1,17 @@ +/////////////////////////////////////////////////////////////////////////////////////////////////////// +// Copyright (c) 2025, ООО 1С-Софт +// Все права защищены. Эта программа и сопроводительные материалы предоставляются +// в соответствии с условиями лицензии Attribution 4.0 International (CC BY 4.0) +// Текст лицензии доступен по ссылке: +// https://creativecommons.org/licenses/by/4.0/legalcode +/////////////////////////////////////////////////////////////////////////////////////////////////////// + +#Область ОбработчикиСобытий + +&НаКлиенте +Процедура ОбработкаКоманды(ПараметрКоманды, ПараметрыВыполненияКоманды) + ПараметрыФормы = Новый Структура("", ); + ОткрытьФорму("Справочник.ПодписантыСервисаМобильнойПодписи.ФормаСписка", ПараметрыФормы, ПараметрыВыполненияКоманды.Источник, ПараметрыВыполненияКоманды.Уникальность, ПараметрыВыполненияКоманды.Окно, ПараметрыВыполненияКоманды.НавигационнаяСсылка); +КонецПроцедуры + +#КонецОбласти \ No newline at end of file diff --git a/SSL/src/Catalogs/ПодписантыСервисаМобильнойПодписи/Forms/ДобавлениеПодписанта/Form.form b/SSL/src/Catalogs/ПодписантыСервисаМобильнойПодписи/Forms/ДобавлениеПодписанта/Form.form index e09606c1f..0ad20f2ac 100644 --- a/SSL/src/Catalogs/ПодписантыСервисаМобильнойПодписи/Forms/ДобавлениеПодписанта/Form.form +++ b/SSL/src/Catalogs/ПодписантыСервисаМобильнойПодписи/Forms/ДобавлениеПодписанта/Form.form @@ -1,55 +1,5 @@ - - Организация - 9 - - <key>ru</key> - <value>Организация</value> - - true - true - - true - - - Организация - - - OnChange - ОрганизацияПриИзменении - - - ОрганизацияРасширеннаяПодсказка - 11 - Label - true - true - - Left - - - - ОрганизацияКонтекстноеМеню - 10 - true - - InputField - Enter - true - Left - true - - true - true - true - true - true - true - true - Normal - - ВидПодписанта 6 @@ -94,10 +44,10 @@ ru - Юридическое лицо + Руководитель организации - - ЮридическоеЛицо + + Enum.ВидыПодписантовМобильногоСервиса.EnumValue.РуководительЮЛ @@ -105,31 +55,196 @@ ru Индивидуальный предприниматель - - ИндивидуальныйПредприниматель + + Enum.ВидыПодписантовМобильногоСервиса.EnumValue.ИндивидуальныйПредприниматель + + + + + ru + Физическое лицо + + + Enum.ВидыПодписантовМобильногоСервиса.EnumValue.ФизическоеЛицо Vertical - - НомерТелефона - 30 - - <key>ru</key> - <value>Номер телефона</value> - + + ГруппаСервис + 54 + + ГруппаГосключ + 62 + + ГосключУКЭП + 56 + + <key>ru</key> + <value>Госключ УКЭП</value> + + true + true + + true + + + ГосключУКЭП + + Right + + OnChange + УКЭППриИзменении + + + ГосключУКЭПРасширеннаяПодсказка + 58 + Label + true + true + + Left + + + + ГосключУКЭПКонтекстноеМеню + 57 + true + + CheckBoxField + Enter + true + Left + true + + + + ГосключУНЭП + 59 + + <key>ru</key> + <value>Госключ УНЭП</value> + + true + true + + true + + + ГосключУНЭП + + Right + + OnChange + УНЭППриИзменении + + + ГосключУНЭПРасширеннаяПодсказка + 61 + Label + true + true + + Left + + + + ГосключУНЭПКонтекстноеМеню + 60 + true + + CheckBoxField + Enter + true + Left + true + + + true + true + + true + + + <key>ru</key> + <value>Госключ</value> + + + ГруппаГосключРасширеннаяПодсказка + 63 + Label + true + true + + Left + + + UsualGroup + + HorizontalIfPossible + Auto + WeakSeparation + true + true + Auto + Auto + + + + МояПодпись + 51 + + <key>ru</key> + <value>Моя подпись (ФНС)</value> + + true + true + + true + + + МояПодпись + + Right + + OnChange + МояПодписьПриИзменении + + + МояПодписьРасширеннаяПодсказка + 53 + Label + true + true + + Left + + + + МояПодписьКонтекстноеМеню + 52 + true + + CheckBoxField + Enter + true + Left + true + + true true true - - НомерТелефона - + + <key>ru</key> + <value>Сервис</value> + - НомерТелефонаРасширеннаяПодсказка - 32 + ГруппаСервисРасширеннаяПодсказка + 55 Label true true @@ -137,40 +252,23 @@ Left - - НомерТелефонаКонтекстноеМеню - 31 - true - - InputField - true - Enter - true - Left - true - - 16 - true - true - true - +7(999)999-99-99 - true - true - true - true - Normal - - ru - +7(999)999-99-99 - + UsualGroup + + HorizontalIfPossible + Auto + WeakSeparation + true + true + Auto + Auto - ГруппаОрганизация - 36 + ГруппаДанныеОрганизации + 75 - НаименованиеОрганизации - 42 + Организация + 9 <key>ru</key> <value>Организация</value> @@ -181,11 +279,15 @@ <common>true</common> </userVisible> <dataPath xsi:type="form:DataPath"> - <segments>НаименованиеОрганизации</segments> + <segments>Организация</segments> </dataPath> + <handlers> + <event>OnChange</event> + <name>ОрганизацияПриИзменении</name> + </handlers> <extendedTooltip> - <name>НаименованиеОрганизацииРасширеннаяПодсказка</name> - <id>44</id> + <name>ОрганизацияРасширеннаяПодсказка</name> + <id>11</id> <type>Label</type> <autoMaxWidth>true</autoMaxWidth> <autoMaxHeight>true</autoMaxHeight> @@ -194,149 +296,8 @@ </extInfo> </extendedTooltip> <contextMenu> - <name>НаименованиеОрганизацииКонтекстноеМеню</name> - <id>43</id> - <autoFill>true</autoFill> - </contextMenu> - <type>InputField</type> - <editMode>Enter</editMode> - <showInHeader>true</showInHeader> - <headerHorizontalAlign>Left</headerHorizontalAlign> - <showInFooter>true</showInFooter> - <extInfo xsi:type="form:InputFieldExtInfo"> - <autoMaxWidth>true</autoMaxWidth> - <autoMaxHeight>true</autoMaxHeight> - <wrap>true</wrap> - <chooseType>true</chooseType> - <typeDomainEnabled>true</typeDomainEnabled> - <textEdit>true</textEdit> - <textSize>Normal</textSize> - </extInfo> - </items> - <items xsi:type="form:FormField"> - <name>ИНН</name> - <id>12</id> - <title> - <key>ru</key> - <value>ИНН</value> - - true - true - - true - - - ИНН - - - ИННРасширеннаяПодсказка - 14 - Label - true - true - - Left - - - - ИННКонтекстноеМеню - 13 - true - - InputField - true - Enter - true - Left - true - - true - true - true - true - true - true - true - true - Normal - - - - ОГРН - 45 - - <key>ru</key> - <value>ОГРН</value> - - true - true - - true - - - ОГРН - - - ОГРНРасширеннаяПодсказка - 47 - Label - true - true - - Left - - - - ОГРНКонтекстноеМеню - 46 - true - - InputField - true - Enter - true - Left - true - - true - true - true - true - true - true - true - true - Normal - - - - Должность - 15 - - <key>ru</key> - <value>Должность</value> - - true - true - - true - - - Должность - - - ДолжностьРасширеннаяПодсказка - 17 - Label - true - true - - Left - - - - ДолжностьКонтекстноеМеню - 16 + ОрганизацияКонтекстноеМеню + 10 true InputField @@ -355,6 +316,277 @@ Normal + + ГруппаОрганизация + 36 + + НаименованиеОрганизации + 42 + + <key>ru</key> + <value>Наименование</value> + + true + true + + true + + + НаименованиеОрганизации + + + НаименованиеОрганизацииРасширеннаяПодсказка + 44 + Label + true + true + + Left + + + + НаименованиеОрганизацииКонтекстноеМеню + 43 + true + + InputField + Enter + true + Left + true + + true + true + true + true + true + true + Normal + + + + ИНН + 12 + + <key>ru</key> + <value>ИНН</value> + + true + true + + true + + + ИНН + + + OnChange + ИННПриИзменении + + + ИННРасширеннаяПодсказка + 14 + Label + true + true + + Left + + + + ИННКонтекстноеМеню + 13 + true + + InputField + true + Enter + true + Left + true + + true + true + true + true + true + true + true + true + Normal + + + + ОГРН + 45 + + <key>ru</key> + <value>ОГРН</value> + + true + true + + true + + + ОГРН + + + ОГРНРасширеннаяПодсказка + 47 + Label + true + true + + Left + + + + ОГРНКонтекстноеМеню + 46 + true + + InputField + true + Enter + true + Left + true + + true + true + true + true + true + true + true + true + Normal + + + + НомерЗаписиОбАккредитации + 72 + + <key>ru</key> + <value>Номер записи в реестре аккредитации</value> + + true + true + + true + + + НомерЗаписиОбАккредитации + + + НомерЗаписиОбАккредитацииРасширеннаяПодсказка + 74 + Label + true + true + + Left + + + + НомерЗаписиОбАккредитацииКонтекстноеМеню + 73 + true + + InputField + true + Enter + true + Left + true + + true + true + true + true + true + true + true + true + Normal + + + + Должность + 15 + + <key>ru</key> + <value>Должность</value> + + true + true + + true + + + Должность + + + ДолжностьРасширеннаяПодсказка + 17 + Label + true + true + + Left + + + + ДолжностьКонтекстноеМеню + 16 + true + + InputField + Enter + true + Left + true + + true + true + true + true + true + true + true + Normal + + + true + true + + true + + + <key>ru</key> + <value>Организация</value> + + + ГруппаОрганизацияРасширеннаяПодсказка + 37 + Label + true + true + + Left + + + UsualGroup + + Vertical + Auto + WeakSeparation + true + Auto + Auto + + true true @@ -362,11 +594,11 @@ <key>ru</key> - <value>Организация</value> + <value>Данные организации</value> - ГруппаОрганизацияРасширеннаяПодсказка - 37 + ГруппаДанныеОрганизацииРасширеннаяПодсказка + 76 Label true true @@ -380,7 +612,6 @@ Auto WeakSeparation true - true Auto Auto @@ -438,6 +669,59 @@ Normal + + НомерТелефона + 30 + + <key>ru</key> + <value>Номер телефона</value> + + true + true + + true + + + НомерТелефона + + + НомерТелефонаРасширеннаяПодсказка + 32 + Label + true + true + + Left + + + + НомерТелефонаКонтекстноеМеню + 31 + true + + InputField + true + Enter + true + Left + true + + 16 + true + true + true + +7(999)999-99-99 + true + true + true + true + Normal + + ru + +7(999)999-99-99 + + + ИННФЛ 33 @@ -486,6 +770,58 @@ Normal + + СНИЛС + 64 + + <key>ru</key> + <value>СНИЛС</value> + + true + true + + true + + + СНИЛС + + + СНИЛСРасширеннаяПодсказка + 66 + Label + true + true + + Left + + + + СНИЛСКонтекстноеМеню + 65 + true + + InputField + true + Enter + true + Left + true + + true + true + true + 999-999-999 99 + true + true + true + true + Normal + + ru + 999-999-999 99 + + + Фамилия 21 @@ -649,7 +985,6 @@ Auto WeakSeparation true - true Auto Auto @@ -691,6 +1026,10 @@ Right + + NotificationProcessing + ОбработкаОповещения + OnCreateAtServer ПриСозданииНаСервере @@ -879,8 +1218,7 @@ 2 - String - + EnumRef.ВидыПодписантовМобильногоСервиса true @@ -927,6 +1265,136 @@ true + + МояПодпись + + <key>ru</key> + <value>Моя подпись (ФНС)</value> + + 3 + + Boolean + + + true + + + true + + + + ГосключУНЭП + + <key>ru</key> + <value>Госключ УНЭП</value> + + 15 + + Boolean + + + true + + + true + + + + ГосключУКЭП + + <key>ru</key> + <value>Госключ УКЭП</value> + + 16 + + Boolean + + + true + + + true + + + + СНИЛС + + <key>ru</key> + <value>СНИЛС</value> + + 17 + + String + + 14 + + + + true + + + true + + + + НомерЗаписиОбАккредитации + + <key>ru</key> + <value>Номер записи в реестре аккредитации</value> + + 19 + + String + + 15 + + + + true + + + true + + + + ИспользоватьГосключ + 4 + + Boolean + + + true + + + true + + + + ИспользоватьСервисМобильнойПодписи + 18 + + Boolean + + + true + + + true + + + + ОрганизацияИспользуется + 20 + + Boolean + + + true + + + true + + Добавить @@ -945,6 +1413,41 @@ <currentRowUse>Auto</currentRowUse> <selectedRowsUse>Auto</selectedRowsUse> </formCommands> + <parameters> + <name>ИННФЛ</name> + <valueType> + <types>String</types> + <stringQualifiers/> + </valueType> + </parameters> + <parameters> + <name>ИНН</name> + <valueType> + <types>String</types> + <stringQualifiers/> + </valueType> + </parameters> + <parameters> + <name>НомерТелефона</name> + <valueType> + <types>String</types> + <stringQualifiers/> + </valueType> + </parameters> + <parameters> + <name>СНИЛС</name> + <valueType> + <types>String</types> + <stringQualifiers/> + </valueType> + </parameters> + <parameters> + <name>ОГРН</name> + <valueType> + <types>String</types> + <stringQualifiers/> + </valueType> + </parameters> <commandInterface> <navigationPanel/> <commandBar/> diff --git a/SSL/src/Catalogs/ПодписантыСервисаМобильнойПодписи/Forms/ДобавлениеПодписанта/Help/ru.html b/SSL/src/Catalogs/ПодписантыСервисаМобильнойПодписи/Forms/ДобавлениеПодписанта/Help/ru.html new file mode 100644 index 000000000..982014a90 --- /dev/null +++ b/SSL/src/Catalogs/ПодписантыСервисаМобильнойПодписи/Forms/ДобавлениеПодписанта/Help/ru.html @@ -0,0 +1,137 @@ +<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.0 Transitional//EN"><html><head><meta http-equiv="Content-Type" content="text/html; charset=utf-8"></meta><link rel="stylesheet" type="text/css" href="v8help://service_book/service_style"></link></head><body> +<p>Предназначен для добавления нового подписанта - получателя + документов на подписание в мобильном приложении. В зависимости от + выбранного вида подписанта состав полей формы изменяется. + </p> + + +<h3>Виды подписантов</h3> + + +<p>С помощью переключателя можно выбрать доступные виды подписантов:</p> + + +<ul><li> + <strong>Руководитель организации</strong> - лицо, имеющее право + действовать от имени организации; + </li> + +<li> + <strong>Индивидуальный предприниматель</strong> - физическое лицо, + зарегистрированное в качестве ИП; + </li> + +<li> + <strong>Физическое лицо</strong> - гражданин (физическое лицо без + статуса ИП). + </li> + </ul><p>Набор отображаемых полей зависит от выбранного вида подписанта.</p> + + +<h3>Реквизиты руководителя организации</h3> + + +<ul><li> + <strong>ИНН</strong> – идентификационный номер налогоплательщика + организации; + </li> + +<li> + <strong>ОГРН</strong> – основной государственный регистрационный номер + организации; + </li> + +<li><strong>Должность</strong> – должность руководителя в организации;</li> + +<li> + <strong>Организация</strong> – наименование организации (выбирается из + справочника или вводится вручную); + </li> + +<li> + <strong>Физическое лицо</strong> – данные руководителя как физического + лица (выбираются из справочника физических лиц); + </li> + +<li> + <strong>СНИЛС</strong> – страховой номер индивидуального лицевого счета + руководителя; + </li> + +<li> + <strong>Фамилия, Имя, Отчество</strong> – персональные данные + руководителя. + </li> + </ul><h3>Реквизиты индивидуального предпринимателя</h3> + +<ul><li> + <strong>ОГРН</strong> – основной государственный регистрационный номер + ИП (ОГРНИП); + </li> + +<li> + <strong>Организация</strong> – наименование (может быть представлено как + ФИО ИП); + </li> + +<li> + <strong>Физическое лицо</strong> – данные ИП как физического лица; + </li> + +<li> + <strong>ИНН физ. лица</strong> – идентификационный номер + налогоплательщика физического лица; + </li> + +<li><strong>СНИЛС</strong> – страховой номер ИП;</li> + +<li> + <strong>Фамилия, Имя, Отчество</strong> – персональные данные ИП. + </li> + </ul><h3>Реквизиты физического лица</h3> + + +<p> + При выборе вида подписанта <strong>Физическое лицо</strong> становятся + доступны следующие опции: + </p> + +<ul><li> + <strong>Госключ УКЭП</strong> – усиленная квалифицированная электронная + подпись в приложении Госключ; + </li> + +<li> + <strong>Госключ УНЭП</strong> – усиленная неквалифицированная + электронная подпись в приложении Госключ. + </li> + </ul><p>В карточке физического лица заполняются следующие реквизиты:</p> + +<ul><li> + <strong>Физическое лицо</strong> – выбор из справочника физических лиц + или создание нового; + </li> + +<li> + <strong>ИНН физ. лица</strong> – идентификационный номер + налогоплательщика физического лица; + </li> + +<li> + <strong>СНИЛС</strong> – страховой номер индивидуального лицевого счета + (обязателен для идентификации в Госключ); + </li> + +<li> + <strong>Фамилия, Имя, Отчество</strong> – персональные данные + физического лица. + </li> + </ul><h3>Сохранение подписанта</h3> + + +<ul><li> + После заполнения всех обязательных полей нажмите кнопку + <strong>Записать и закрыть</strong> для сохранения подписанта в + справочнике. + </li> + </ul></body></html> \ No newline at end of file diff --git a/SSL/src/Catalogs/ПодписантыСервисаМобильнойПодписи/Forms/ДобавлениеПодписанта/Module.bsl b/SSL/src/Catalogs/ПодписантыСервисаМобильнойПодписи/Forms/ДобавлениеПодписанта/Module.bsl index b4a524954..ca2ada0a6 100644 --- a/SSL/src/Catalogs/ПодписантыСервисаМобильнойПодписи/Forms/ДобавлениеПодписанта/Module.bsl +++ b/SSL/src/Catalogs/ПодписантыСервисаМобильнойПодписи/Forms/ДобавлениеПодписанта/Module.bsl @@ -1,5 +1,5 @@ /////////////////////////////////////////////////////////////////////////////////////////////////////// -// Copyright (c) 2024, ООО 1С-Софт +// Copyright (c) 2025, ООО 1С-Софт // Все права защищены. Эта программа и сопроводительные материалы предоставляются // в соответствии с условиями лицензии Attribution 4.0 International (CC BY 4.0) // Текст лицензии доступен по ссылке: @@ -10,7 +10,11 @@ &НаСервере Процедура ПриСозданииНаСервере(Отказ, СтандартнаяОбработка) - + + ОбщиеНастройки = ЭлектроннаяПодпись.ОбщиеНастройки(); + ОрганизацияИспользуется = ОбщиеНастройки.ОрганизацияИспользуется; + Элементы.ФизическоеЛицо.Видимость = ОбщиеНастройки.ФизическоеЛицоИспользуется; + ПараметрыПодписанта = СервисМобильнойПодписиКлиентСервер.ПараметрыПодписанта(); ЗаполнитьЗначенияСвойств(ПараметрыПодписанта, Параметры); ЗаполнитьЗначенияСвойств(ЭтотОбъект, ПараметрыПодписанта); @@ -18,21 +22,30 @@ ИННФЛ = СервисМобильнойПодписиКлиентСервер.ТолькоЦифры(ПараметрыПодписанта.ИННФЛ); ИНН = СервисМобильнойПодписиКлиентСервер.ТолькоЦифры(ПараметрыПодписанта.ИНН); Если ЗначениеЗаполнено(ПараметрыПодписанта.НомерТелефона) Тогда - НомерТелефона = Прав(СервисМобильнойПодписиКлиентСервер.ТолькоЦифры(ПараметрыПодписанта.НомерТелефона), 10); + НомерТелефона = СервисМобильнойПодписиКлиентСервер.ТолькоЦифры(ПараметрыПодписанта.НомерТелефона); КонецЕсли; - Если ЗначениеЗаполнено(ИННФЛ) И Не ЗначениеЗаполнено(ИНН) Тогда - ВидПодписанта = "ИндивидуальныйПредприниматель" - Иначе - ВидПодписанта = "ЮридическоеЛицо" + Если Не ЗначениеЗаполнено(ВидПодписанта) Тогда + Если ЗначениеЗаполнено(Параметры.ИННФЛ) И Не ЗначениеЗаполнено(Параметры.ИНН) Тогда + Если Не ИспользоватьГосключ Или ЗначениеЗаполнено(Параметры.ОГРН) Тогда + ВидПодписанта = Перечисления.ВидыПодписантовМобильногоСервиса.ИндивидуальныйПредприниматель; + Иначе + ВидПодписанта = Перечисления.ВидыПодписантовМобильногоСервиса.ФизическоеЛицо; + КонецЕсли; + Иначе + ВидПодписанта = Перечисления.ВидыПодписантовМобильногоСервиса.РуководительЮЛ; + КонецЕсли; КонецЕсли; - Элементы.Организация.Видимость = ЭлектроннаяПодпись.ОбщиеНастройки().ОрганизацияИспользуется; - Элементы.НаименованиеОрганизации.Видимость = Не Элементы.Организация.Видимость; - Элементы.ФизическоеЛицо.Видимость = ЭлектроннаяПодпись.ОбщиеНастройки().ФизическоеЛицоИспользуется; - - УстановитьВидимостьИДоступность(ЭтотОбъект); - + ПриИзмененииНастроек(); + +КонецПроцедуры + +&НаКлиенте +Процедура ОбработкаОповещения(ИмяСобытия, Параметр, Источник) + Если ИмяСобытия = "Запись_НаборКонстант" И (Источник = "ИспользоватьГосключ" Или Источник = "ИспользоватьСервисМобильнойПодписи") Тогда + ПриИзмененииНастроек(); + КонецЕсли; КонецПроцедуры #КонецОбласти @@ -42,16 +55,13 @@ &НаКлиенте Процедура ВидПодписантаПриИзменении(Элемент) - Если ВидПодписанта <> "ЮридическоеЛицо" Тогда - ИНН = ""; - Должность = ""; - НаименованиеОрганизации = ""; - ОГРН = ""; + Если ВидПодписанта = ПредопределенноеЗначение("Перечисление.ВидыПодписантовМобильногоСервиса.ФизическоеЛицо") Тогда + СервисМобильнойПодписи = Ложь; Иначе - ИННФЛ = ""; + ГосключУНЭП = Ложь; КонецЕсли; - УстановитьВидимостьИДоступность(ЭтотОбъект); + ПриИзмененииНастроек(); КонецПроцедуры @@ -78,13 +88,13 @@ Если ЗначениеЗаполнено(Организация) Тогда - РеквизитыОрганизации = РеквизитыОрганизации(Организация); + РеквизитыОрганизации = СервисМобильнойПодписиКлиентСервер.РеквизитыОрганизации(Организация); ЗаполненныеРеквизиты = ЗаполнитьРеквизитыОрганизации(РеквизитыОрганизации); ЗаполнитьЗначенияСвойств(РеквизитыОрганизации, ЗаполненныеРеквизиты); ИННИП = Неопределено; Если СтрДлина(РеквизитыОрганизации.ИНН) = 12 Тогда - ВидПодписанта = "ИндивидуальныйПредприниматель"; + ВидПодписанта = ПредопределенноеЗначение("Перечисление.ВидыПодписантовМобильногоСервиса.ИндивидуальныйПредприниматель"); ИННИП = РеквизитыОрганизации.ИНН; РеквизитыОрганизации.ИНН = ""; КонецЕсли; @@ -102,14 +112,34 @@ Должность = ""; КонецЕсли; Иначе - РеквизитыОрганизации = РеквизитыОрганизации(); + РеквизитыОрганизации = СервисМобильнойПодписиКлиентСервер.РеквизитыОрганизации(); КонецЕсли; - ЗаполнитьЗначенияСвойств(ЭтотОбъект, РеквизитыОрганизации); + ЗаполнитьЗначенияСвойств(ЭтотОбъект, РеквизитыОрганизации); УстановитьВидимостьИДоступность(ЭтотОбъект); КонецПроцедуры +&НаКлиенте +Процедура МояПодписьПриИзменении(Элемент) + УстановитьВидимостьИДоступность(ЭтотОбъект); +КонецПроцедуры + +&НаКлиенте +Процедура УНЭППриИзменении(Элемент) + УстановитьВидимостьИДоступность(ЭтотОбъект); +КонецПроцедуры + +&НаКлиенте +Процедура УКЭППриИзменении(Элемент) + УстановитьВидимостьИДоступность(ЭтотОбъект); +КонецПроцедуры + +&НаКлиенте +Процедура ИННПриИзменении(Элемент) + УстановитьВидимостьИДоступность(ЭтотОбъект); +КонецПроцедуры + #КонецОбласти #Область ОбработчикиКомандФормы @@ -128,20 +158,55 @@ Возврат; КонецПопытки; - Подписант = ДобавитьПодписанта(ПараметрыПодписанта); + Результат = ДобавитьПодписанта(ПараметрыПодписанта); - Если ЗначениеЗаполнено(Подписант) Тогда - ОповеститьОЗаписиНового(Подписант); - Оповестить("Запись_ПодписантыСервисаМобильнойПодписи", Новый Структура("ЭтоНовый", Истина), Подписант); - Закрыть(Подписант); + ОповеститьОЗаписиНового(Результат.Ссылка); + Оповестить("Запись_ПодписантыСервисаМобильнойПодписи", Новый Структура("ЭтоНовый", Результат.ЭтоНовый), Результат.Ссылка); + + Если Не Результат.ЭтоНовый Тогда + Если Результат.ОбновленыДанные Тогда + ТекстОповещения = НСтр("ru = 'Обновлены данные подписанта'"); + Иначе + ТекстОповещения = НСтр("ru = 'Подписант с такими данными уже есть в справочнике'"); + КонецЕсли; + ПоказатьОповещениеПользователя(ТекстОповещения, ПолучитьНавигационнуюСсылку(Результат.Ссылка), Строка( + Результат.Ссылка), БиблиотекаКартинок.ДиалогИнформация); КонецЕсли; + Закрыть(Результат.Ссылка); + КонецПроцедуры #КонецОбласти #Область СлужебныеПроцедурыИФункции +&НаСервере +Процедура ПриИзмененииНастроек() + + ИспользоватьГосключ = ПолучитьФункциональнуюОпцию("ИспользоватьГосключ"); + ИспользоватьСервисМобильнойПодписи = ПолучитьФункциональнуюОпцию("ИспользоватьСервисМобильнойПодписи"); + + ВидПодписантаФизическоеЛицо = Перечисления.ВидыПодписантовМобильногоСервиса.ФизическоеЛицо; + Элемент = Элементы.ВидПодписанта.СписокВыбора.НайтиПоЗначению(ВидПодписантаФизическоеЛицо); + + Если Не ИспользоватьГосключ Тогда + Если ВидПодписанта = ВидПодписантаФизическоеЛицо Тогда + ВидПодписанта = Перечисления.ВидыПодписантовМобильногоСервиса.РуководительЮЛ; + КонецЕсли; + Если Элемент <> Неопределено Тогда + Элементы.ВидПодписанта.СписокВыбора.Удалить(Элемент); + КонецЕсли; + ИначеЕсли Элемент = Неопределено Тогда + Элементы.ВидПодписанта.СписокВыбора.Добавить(ВидПодписантаФизическоеЛицо, НСтр("ru = 'Физическое лицо'")); + КонецЕсли; + + МояПодпись = ИспользоватьСервисМобильнойПодписи И Не ИспользоватьГосключ; + ГосключУКЭП = ИспользоватьГосключ И Не ИспользоватьСервисМобильнойПодписи И ВидПодписанта <> ВидПодписантаФизическоеЛицо; + УстановитьВидимостьИДоступность(ЭтотОбъект); + +КонецПроцедуры + &НаСервереБезКонтекста Процедура ПроверитьПараметрыПодписанта(ПараметрыПодписанта) СервисМобильнойПодписиСлужебный.ПроверкаПараметровПодписанта(ПараметрыПодписанта); @@ -152,17 +217,6 @@ Возврат СервисМобильнойПодписиСлужебный.ДобавитьПодписантаВСправочник(ПараметрыПодписанта); КонецФункции -&НаКлиентеНаСервереБезКонтекста -Функция РеквизитыОрганизации(Организация = Неопределено) - РеквизитыОрганизации = Новый Структура; - РеквизитыОрганизации.Вставить("Организация", Организация); - РеквизитыОрганизации.Вставить("НаименованиеОрганизации"); - РеквизитыОрганизации.Вставить("ИНН"); - РеквизитыОрганизации.Вставить("ОГРН"); - РеквизитыОрганизации.Вставить("ФизическиеЛица"); - Возврат РеквизитыОрганизации; -КонецФункции - &НаКлиентеНаСервереБезКонтекста Функция РеквизитыФизическогоЛица(ФизическоеЛицо = Неопределено) РеквизитыФизическогоЛица = Новый Структура; @@ -173,16 +227,36 @@ РеквизитыФизическогоЛица.Вставить("Отчество"); РеквизитыФизическогоЛица.Вставить("Должность"); РеквизитыФизическогоЛица.Вставить("Телефон"); + РеквизитыФизическогоЛица.Вставить("СНИЛС"); Возврат РеквизитыФизическогоЛица; КонецФункции &НаКлиентеНаСервереБезКонтекста Процедура УстановитьВидимостьИДоступность(Форма) - ЭтоЮрЛицо = Форма.ВидПодписанта = "ЮридическоеЛицо"; + ЭтоЮрЛицо = Форма.ВидПодписанта = ПредопределенноеЗначение("Перечисление.ВидыПодписантовМобильногоСервиса.РуководительЮЛ"); + ЭтоФизЛицо = Форма.ВидПодписанта = ПредопределенноеЗначение("Перечисление.ВидыПодписантовМобильногоСервиса.ФизическоеЛицо"); - Форма.Элементы.ГруппаОрганизация.Видимость = ЭтоЮрЛицо; - Форма.Элементы.ИННФЛ.Видимость = Не ЭтоЮрЛицо; + Форма.Элементы.ГруппаГосключ.Видимость = Форма.ИспользоватьГосключ; + Форма.Элементы.ГосключУКЭП.Видимость = ЭтоФизЛицо Или Форма.ИспользоватьСервисМобильнойПодписи; + Форма.Элементы.ГосключУНЭП.Видимость = ЭтоФизЛицо; + Форма.Элементы.МояПодпись.Видимость = Форма.ИспользоватьГосключ И Форма.ИспользоватьСервисМобильнойПодписи И Не ЭтоФизЛицо; + + ИностраннаяОрганизация = СтрНачинаетсяС(Форма.ИНН, "9909"); + + Форма.Элементы.ИННФЛ.Видимость = Не ЭтоЮрЛицо Или ИностраннаяОрганизация; + Форма.Элементы.ИНН.Видимость = ЭтоЮрЛицо; + Форма.Элементы.НомерТелефона.Видимость = Форма.МояПодпись; + Форма.Элементы.СНИЛС.Видимость = ЭтоФизЛицо Или Форма.ГосключУКЭП; + + Форма.Элементы.ГруппаОрганизация.Видимость = Не ЭтоФизЛицо; + Форма.Элементы.НаименованиеОрганизации.Видимость = ЭтоЮрЛицо; + Форма.Элементы.Организация.Видимость = Не ЭтоФизЛицо И Форма.ОрганизацияИспользуется; + Форма.Элементы.ИНН.Видимость = ЭтоЮрЛицо; + Форма.Элементы.Должность.Видимость = ЭтоЮрЛицо; + + Форма.Элементы.НомерЗаписиОбАккредитации.Видимость = ИностраннаяОрганизация; + Форма.Элементы.ОГРН.Видимость = Не ИностраннаяОрганизация; КонецПроцедуры @@ -247,5 +321,4 @@ Возврат Параметры; КонецФункции - #КонецОбласти diff --git a/SSL/src/Catalogs/ПодписантыСервисаМобильнойПодписи/Forms/ОтправитьНаПодписание/Form.form b/SSL/src/Catalogs/ПодписантыСервисаМобильнойПодписи/Forms/ОтправитьНаПодписание/Form.form index 85a5df33f..0174e9d23 100644 --- a/SSL/src/Catalogs/ПодписантыСервисаМобильнойПодписи/Forms/ОтправитьНаПодписание/Form.form +++ b/SSL/src/Catalogs/ПодписантыСервисаМобильнойПодписи/Forms/ОтправитьНаПодписание/Form.form @@ -70,7 +70,6 @@ <extInfo xsi:type="form:UsualGroupExtInfo"> <group>Vertical</group> <showLeftMargin>true</showLeftMargin> - <united>true</united> <currentRowUse>Auto</currentRowUse> </extInfo> </items> @@ -92,6 +91,7 @@ <dataPath xsi:type="form:DataPath"> <segments>ТипПодписи</segments> </dataPath> + <skipOnInput>true</skipOnInput> <toolTipRepresentation>Button</toolTipRepresentation> <extendedTooltip> <name>ТипПодписиРасширеннаяПодсказка</name> @@ -151,7 +151,6 @@ <group>HorizontalIfPossible</group> <representation>WeakSeparation</representation> <showLeftMargin>true</showLeftMargin> - <united>true</united> <throughAlign>Auto</throughAlign> <currentRowUse>Auto</currentRowUse> </extInfo> @@ -215,6 +214,102 @@ <textSize>Normal</textSize> </extInfo> </items> + <items xsi:type="form:FormField"> + <name>ВидМобильнойПодписи</name> + <id>34</id> + <title> + <key>ru</key> + <value>Отправить в</value> + + true + + true + + + ВидМобильнойПодписи + + + OnChange + ВидПодписиПриИзменении + + + ВидМобильнойПодписиРасширеннаяПодсказка + 36 + Label + true + true + + Left + + + + ВидМобильнойПодписиКонтекстноеМеню + 35 + true + + InputField + Enter + true + Left + true + + true + true + true + true + true + true + true + true + Normal + + + + НастройкаОтправки + 37 + + <key>ru</key> + <value>Настройка</value> + + true + + true + + + НастройкаОтправки + + + НастройкаОтправкиРасширеннаяПодсказка + 39 + Label + true + true + + Left + + + + НастройкаОтправкиКонтекстноеМеню + 38 + true + + InputField + Enter + true + Left + true + + true + true + true + true + true + true + true + true + Normal + + true true @@ -236,11 +331,10 @@ UsualGroup - HorizontalIfPossible + Vertical Auto WeakSeparation true - true Auto Auto @@ -363,7 +457,6 @@ Auto WeakSeparation true - true Auto Auto @@ -519,6 +612,10 @@ Right + + NotificationProcessing + ОбработкаОповещения + OnOpen ПриОткрытии @@ -717,6 +814,65 @@ true + + ВидМобильнойПодписи + + <key>ru</key> + <value>Вид мобильной подписи</value> + + 6 + + EnumRef.ВидыМобильныхПодписей + + + true + + + true + + + + НастройкаОтправки + + <key>ru</key> + <value>Настройка отправки</value> + + 7 + + CatalogRef.НастройкиОтправкиВГосключ + + + true + + + true + + + + ПараметрыОтправителя + 23 + + + true + + + true + + + + ПроверятьСертификат + 8 + + String + + + + true + + + true + + Отправить diff --git a/SSL/src/Catalogs/ПодписантыСервисаМобильнойПодписи/Forms/ОтправитьНаПодписание/Help/ru.html b/SSL/src/Catalogs/ПодписантыСервисаМобильнойПодписи/Forms/ОтправитьНаПодписание/Help/ru.html index 687e497c4..2ea276fac 100644 --- a/SSL/src/Catalogs/ПодписантыСервисаМобильнойПодписи/Forms/ОтправитьНаПодписание/Help/ru.html +++ b/SSL/src/Catalogs/ПодписантыСервисаМобильнойПодписи/Forms/ОтправитьНаПодписание/Help/ru.html @@ -1,11 +1,26 @@ <!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.0 Transitional//EN"><html><head><meta http-equiv="Content-Type" content="text/html; charset=utf-8"></meta><link rel="stylesheet" type="text/css" href="v8help://service_book/service_style"></link></head><body> -<p>Предназначена для передачи документов в сервис мобильной подписи ФНС. </p> -<ul><li style="font-weight: normal;">С помощью ссылки в верхней части окна можно просмотреть объект, который будет подписан. Ссылка принимает значение наименования объекта.</li> -<li style="font-weight: bold;">Тип подписи <span style="font-weight: normal;">заполняется автоматически. </span><span style="font-weight: normal;">Квалифицированная базовая подпись (</span><b>CAdES-BES</b><span style="font-weight: normal;">) - действительна до окончания срока действия сертификата подписанта (обычно в течение 1 года). Подпись с меткой доверенного времени (</span><b>CAdES-T</b><span style="font-weight: normal;">) - действует после окончания срока действия сертификата подписанта. Архивная подпись (</span><b>CAdES-A</b><span style="font-weight: normal;">)  - содержит полный набор доказательств подлинности, в том числе цепочку сертификатов, и автоматически продлевается, в данный момент не поддерживается сервисом. </span></li> -<li style="font-weight: normal;">Выберите <a href="Catalog.ПодписантыСервисаМобильнойПодписи.Form.ФормаСписка/Help">Подписанта</a>. </li> -<li style="font-weight: bold;"><span style="font-weight: normal;">Также файл можно подписать с помощью </span><a href="Catalog.МашиночитаемыеДоверенности/Help" style="font-weight: normal;">МЧД</a><span style="font-weight: normal;">, для этого включите флажок <img src="StdPicture.AppearanceCheckBox"></img></span>По доверенности<span style="font-weight: normal;"> и выберите соответствующую доверенность из списка.</span></li> -<li style="font-weight: normal;">В некоторых случаях можно ввести <strong>Комментарий к подписи</strong> - дополнительную информацию о подписи. </li> -<li><span style="font-weight: normal;">Для выполнения подписи нажмите </span><b>Отправить</b>. </li> -<li style="font-weight: normal;">Документы будут направлены в сервис для последующего подписания через мобильное приложение. </li> -<li style="font-weight: normal;">После отправки документов подписанту появится уведомление о том, что документы отправлены. Для их подписания нужно воспользоваться приложением "Моя подпись" от ФНС.</li> -<li style="font-weight: bold;"><span style="font-weight: normal;">Созданная электронная подпись загружается в приложение регламентным заданием и хранится в приложении. Подписанный объект становится недоступным для редактирования и отображается в списках со значком </span><img src="CommonPicture.ПодписанЭП" style="font-weight: normal;"></img><span style="font-weight: normal;">. </span></li></ul></body></html> \ No newline at end of file +<p>Предназначена для передачи документов в сервис мобильной подписи ФНС или в Госключ.</p> + +<ul><li>С помощью ссылки в верхней части окна можно просмотреть объект, который будет подписан. Ссылка принимает значение наименования объекта.</li> + +<li><strong>Тип подписи</strong> заполняется автоматически. +<ul><li><strong>Квалифицированная базовая подпись (CAdES-BES)</strong> - действительна до окончания срока действия сертификата подписанта (обычно в течение 1 года).</li> +<li><strong>Подпись с меткой доверенного времени (CAdES-T)</strong> - действует после окончания срока действия сертификата подписанта.</li> +<li><strong>Архивная подпись (CAdES-A)</strong> - содержит полный набор доказательств подлинности, в том числе цепочку сертификатов, и автоматически продлевается. В данный момент не поддерживается сервисом.</li> +</ul></li> + +<li>Выберите <a href="Catalog.ПодписантыСервисаМобильнойПодписи.Form.ФормаСписка/Help">Подписанта</a>.</li> + +<li>Также файл можно подписать с помощью <a href="Catalog.МашиночитаемыеДоверенности/Help">МЧД</a>, для этого включите флажок <img src="StdPicture.AppearanceCheckBox"></img><strong>По доверенности</strong> и выберите соответствующую доверенность из списка.</li> + +<li>В некоторых случаях можно ввести <strong>Комментарий к подписи</strong> - дополнительную информацию о подписи.</li> + +<li>Для выполнения подписи нажмите <strong>Отправить</strong>.</li> +</ul><h3>Особенности работы с Госключ</h3> +<ul><li>Госключ создает подпись с меткой времени, поэтому выбор типа подписи не имеет значения, в случае, если доступен только Госключ.</li> +<li>Если в настройках приложения выбран тип <strong>Архивная подпись (CAdES-A)</strong>, при отправке будет выдана ошибка.</li> +</ul><h3>Результат отправки</h3> +<ul><li>Документы будут направлены в сервис для последующего подписания через мобильное приложение.</li> +<li>После отправки документов подписанту появится уведомление о том, что документы отправлены. Для их подписания нужно воспользоваться приложением "Моя подпись" от ФНС или приложением "Госключ".</li> +<li>Созданная электронная подпись загружается в приложение регламентным заданием и хранится в приложении. Подписанный объект становится недоступным для редактирования и отображается в списках со значком <img src="CommonPicture.ПодписанЭП"></img>.</li> +</ul></body></html> \ No newline at end of file diff --git a/SSL/src/Catalogs/ПодписантыСервисаМобильнойПодписи/Forms/ОтправитьНаПодписание/Module.bsl b/SSL/src/Catalogs/ПодписантыСервисаМобильнойПодписи/Forms/ОтправитьНаПодписание/Module.bsl index 642c555c7..d10b973b0 100644 --- a/SSL/src/Catalogs/ПодписантыСервисаМобильнойПодписи/Forms/ОтправитьНаПодписание/Module.bsl +++ b/SSL/src/Catalogs/ПодписантыСервисаМобильнойПодписи/Forms/ОтправитьНаПодписание/Module.bsl @@ -1,5 +1,5 @@ /////////////////////////////////////////////////////////////////////////////////////////////////////// -// Copyright (c) 2024, ООО 1С-Софт +// Copyright (c) 2025, ООО 1С-Софт // Все права защищены. Эта программа и сопроводительные материалы предоставляются // в соответствии с условиями лицензии Attribution 4.0 International (CC BY 4.0) // Текст лицензии доступен по ссылке: @@ -24,6 +24,8 @@ НовыйПараметрТипПодписи.Вставить("Доступность", Ложь); НовыйПараметрТипПодписи.Вставить("ВыборДоверенности", Ложь); НовыйПараметрТипПодписи.Вставить("ПакетнаяОтправкаНаПодписание", Неопределено); + НовыйПараметрТипПодписи.Вставить("ПроверятьСертификат", + ЭлектроннаяПодписьСлужебныйКлиентСервер.ПроверятьКвалифицированные()); Если ТипЗнч(Параметры.ПараметрыПодписи) = Тип("Структура") Тогда ЗаполнитьЗначенияСвойств(НовыйПараметрТипПодписи, Параметры.ПараметрыПодписи); @@ -79,6 +81,13 @@ КонецПроцедуры +&НаКлиенте +Процедура ОбработкаОповещения(ИмяСобытия, Параметр, Источник) + Если ВРег(ИмяСобытия) = ВРег("Запись_ПодписантыСервисаМобильнойПодписи") И Подписант = Источник Тогда + ПодписантПриИзмененииНаСервере(); + КонецЕсли; +КонецПроцедуры + #КонецОбласти #Область ОбработчикиСобытийЭлементовШапкиФормы @@ -94,14 +103,14 @@ &НаКлиенте Процедура ПодписантОткрытие(Элемент, СтандартнаяОбработка) - СервисМобильнойПодписиКлиент.ПодписантПриОткрытии(ЭтотОбъект, Элемент, СтандартнаяОбработка); + СервисМобильнойПодписиСлужебныйКлиент.ПодписантПриОткрытии(ЭтотОбъект, Элемент, СтандартнаяОбработка); КонецПроцедуры &НаКлиенте Процедура ПодписантСоздание(Элемент, СтандартнаяОбработка) - СервисМобильнойПодписиКлиент.ПодписантПриСоздании(ЭтотОбъект, Элемент, СтандартнаяОбработка); + СервисМобильнойПодписиСлужебныйКлиент.ПодписантПриСоздании(ЭтотОбъект, Элемент, СтандартнаяОбработка); КонецПроцедуры @@ -123,6 +132,7 @@ Процедура ПодписантПриИзменении(Элемент) СохранитьНастройкуПодписантаПослеПодписания = Истина; + ПодписантПриИзмененииНаСервере(); // СтандартныеПодсистемы.МашиночитаемыеДоверенности Если Элементы.ГруппаДоверенность.Видимость Тогда @@ -132,6 +142,11 @@ КонецПроцедуры +&НаКлиенте +Процедура ВидПодписиПриИзменении(Элемент) + ЗаполнитьНастройкуОтправки(); +КонецПроцедуры + #КонецОбласти #Область ОбработчикиКомандФормы @@ -159,6 +174,16 @@ #Область СлужебныеПроцедурыИФункции +&НаСервере +Процедура ПодписантПриИзмененииНаСервере() + СервисМобильнойПодписиСлужебный.ПодписантПриИзмененииНаСервере(ЭтотОбъект); +КонецПроцедуры + +&НаСервере +Процедура ЗаполнитьНастройкуОтправки() + СервисМобильнойПодписиСлужебный.ЗаполнитьНастройкуОтправки(ЭтотОбъект); +КонецПроцедуры + &НаКлиенте Функция ЗаполнениеПроверено() Отказ = Ложь; @@ -182,6 +207,8 @@ &НаСервере Процедура УстановитьТипПодписи(Знач ПараметрТипПодписи) + ПроверятьСертификат = ПараметрТипПодписи.ПроверятьСертификат; + Если ПараметрТипПодписи.ТипыПодписи.Количество() = 0 Тогда СписокТипов = Новый СписокЗначений; @@ -335,12 +362,15 @@ Если ПеременныеОчищены() Тогда Возврат; КонецЕсли; + + ЗаголовокОшибки = НСтр("ru='Не удалось отправить данные в сервис мобильной подписи'"); Если РезультатПослеОбработки.Свойство("ОписаниеОшибки") Тогда - ОбработатьОшибку(Контекст.Оповещение, НоваяОшибка(НСтр("ru='Не удалось отправить данные в сервис мобильной подписи'"), РезультатПослеОбработки.ОписаниеОшибки), Новый Структура); + ОбработатьОшибку(Контекст.Оповещение, НовоеОписаниеОшибки(ЗаголовокОшибки, + РезультатПослеОбработки.ОписаниеОшибки), Новый Структура); Возврат; КонецЕсли; - + Контекст.Вставить("ИдентификаторФормы", УникальныйИдентификатор); Если ТипЗнч(ФормаОбъекта) = Тип("ФормаКлиентскогоПриложения") Тогда Контекст.ИдентификаторФормы = ФормаОбъекта.УникальныйИдентификатор; @@ -349,16 +379,18 @@ КонецЕсли; ПараметрыВыполнения = Новый Структура; - ПараметрыВыполнения.Вставить("ОписаниеДанных", ОписаниеДанных); - ПараметрыВыполнения.Вставить("Форма", ЭтотОбъект); - ПараметрыВыполнения.Вставить("ИдентификаторФормы", Контекст.ИдентификаторФормы); - ПараметрыВыполнения.Вставить("ТребуетсяПроверка", Истина); + Если ЗначениеЗаполнено(Подписант) Тогда ОписаниеДанных.Вставить("ВыбранныйПодписант", СервисМобильнойПодписиСлужебныйВызовСервера.ПараметрыПодписанта(Подписант)); Иначе ОписаниеДанных.Вставить("ВыбранныйПодписант", ПараметрыПодписанта); КонецЕсли; + + ПараметрыВыполнения.Вставить("ОписаниеДанных", ОписаниеДанных); + ПараметрыВыполнения.Вставить("Форма", ЭтотОбъект); + ПараметрыВыполнения.Вставить("ИдентификаторФормы", Контекст.ИдентификаторФормы); + ПараметрыВыполнения.Вставить("ТребуетсяПроверка", Истина); ПараметрыВыполнения.Вставить("ПолноеПредставлениеДанных", ЭлектроннаяПодписьСлужебныйКлиент.ПолноеПредставлениеДанных(ЭтотОбъект)); @@ -366,53 +398,46 @@ Контекст.Вставить("ПараметрыВыполнения", ПараметрыВыполнения); - НаборДанных = Новый Массив; + ПараметрыПодписания = СервисМобильнойПодписиКлиентСервер.ПараметрыПодписания(); + ПараметрыПодписания.ТипПодписи = ОписаниеДанных.ТипПодписи; + ПараметрыПодписания.Доверенность = ОписаниеДанных.ВыбраннаяДоверенность; + ПараметрыПодписания.ИдентификаторФормы = УникальныйИдентификатор; + ПараметрыПодписания.Комментарий = Комментарий; + ПараметрыПодписания.ПакетнаяОтправкаНаПодписание = ПакетнаяОтправка; + ПараметрыПодписания.ВидМобильнойПодписи = ВидМобильнойПодписи; + ПараметрыПодписания.НастройкаОтправки = НастройкаОтправки; + + СервисМобильнойПодписиСлужебныйКлиент.ОтправитьНаПодписаниеВСервис(Новый ОписаниеОповещения("ОтправитьИОбработатьРезультат", ЭтотОбъект, Контекст), + Контекст, ПараметрыПодписания); + +КонецПроцедуры + +&НаКлиенте +Процедура ОтправитьИОбработатьРезультат(Результат, Контекст) Экспорт + Успех = Истина; - Индекс = -1; - Для Каждого Элемент Из ОписаниеДанных.НаборДанных Цикл - Индекс = Индекс +1; - - Если ТипЗнч(Элемент.Данные) <> Тип("Строка") И ТипЗнч(Элемент.Данные) <> Тип("ДвоичныеДанные") Тогда - Контекст.ПараметрыВыполнения.ОписаниеДанных.Вставить("ТекущийЭлементНабораДанных", Контекст.Элемент); - ОбработатьОшибку(Контекст.Оповещение, - НоваяОшибка(НСтр("ru='Не удалось получить данные'"), - СтроковыеФункцииКлиентСервер.ПодставитьПараметрыВСтроку( - НСтр("ru='Не поддерживается отправка в сервис данных с типом %1'"), ТипЗнч(Элемент.Данные)))); - Возврат; - КонецЕсли; - - Структура = Новый Структура; - Структура.Вставить("Данные", Элемент.Данные); - - Если Элемент.Свойство("Объект") Тогда - Структура.Вставить("Объект", Элемент.Объект); - КонецЕсли; - Если Элемент.Свойство("ВерсияОбъекта") Тогда - Структура.Вставить("ВерсияОбъекта", Элемент.ВерсияОбъекта); - КонецЕсли; - Структура.Вставить("Представление", Элемент.Представление.Представление); - - НаборДанных.Добавить(Структура); - КонецЦикла; - - Результат = ОтправитьНаПодписаниеНаСервере(НаборДанных, ОписаниеДанных.Подписант, ОписаниеДанных.ТипПодписи, ОписаниеДанных.ВыбраннаяДоверенность); - Если ТипЗнч(Результат) = Тип("Структура") Тогда - НаборДанных = Результат.НаборДанных; + Если Результат.Свойство("НаборДанных") Тогда + НаборДанных = Результат.НаборДанных; + Иначе + Успех = Ложь; + КонецЕсли; Иначе НаборДанных = Результат; КонецЕсли; - Индекс = 0; - Для Каждого Элемент Из НаборДанных Цикл - Если Элемент.Свойство("ИдентификаторДокумента") Тогда - ОписаниеДанных.НаборДанных[Индекс].Вставить("ИдентификаторДокумента", Элемент.ИдентификаторДокумента); - Иначе - Успех = Ложь; - КонецЕсли; - Индекс = Индекс + 1; - КонецЦикла; + Если Успех Тогда + Индекс = 0; + Для Каждого Элемент Из НаборДанных Цикл + Если Элемент.Свойство("ИдентификаторДокумента") Тогда + ОписаниеДанных.НаборДанных[Индекс].Вставить("ИдентификаторДокумента", Элемент.ИдентификаторДокумента); + Иначе + Успех = Ложь; + КонецЕсли; + Индекс = Индекс + 1; + КонецЦикла; + КонецЕсли; ОписаниеДанных.Вставить("Успех", Успех); @@ -429,29 +454,19 @@ КонецЕсли; // Конец СтандартныеПодсистемы.МашиночитаемыеДоверенности - Если ТипЗнч(Результат) = Тип("Структура") Тогда - ОбработатьОшибку(Контекст.Оповещение, Результат); + Если ТипЗнч(Результат) = Тип("Структура") И Результат.Свойство("Ошибка") Тогда + Если ТипЗнч(Результат.Ошибка) = Тип("Структура") Тогда + ОбработатьОшибку(Контекст.Оповещение, Результат.Ошибка); + Иначе + ОбработатьОшибку(Контекст.Оповещение, НовоеОписаниеОшибки(НСтр("ru='Не удалось отправить данные в сервис мобильной подписи'"), + Результат.Ошибка)); + КонецЕсли; Возврат; КонецЕсли; ВыполнитьОбработкуОповещения(Контекст.Оповещение, Истина); - КонецПроцедуры -&НаСервере -Функция ОтправитьНаПодписаниеНаСервере(Знач НаборДанных, Знач Подписант, Знач ТипПодписи, Знач Доверенность) - - ПараметрыПодписания = Новый Структура; - ПараметрыПодписания.Вставить("ТипПодписи", ТипПодписи); - ПараметрыПодписания.Вставить("Доверенность", Доверенность); - ПараметрыПодписания.Вставить("ИдентификаторФормы", УникальныйИдентификатор); - ПараметрыПодписания.Вставить("Комментарий", Комментарий); - ПараметрыПодписания.Вставить("ПакетнаяОтправкаНаПодписание", ПакетнаяОтправка); - - Возврат СервисМобильнойПодписиСлужебный.ОтправитьНаПодписание(НаборДанных, Подписант, ПараметрыПодписания); - -КонецФункции - // Продолжение процедуры Подписать. &НаКлиенте Процедура ПодписатьЗавершение(Результат, Контекст) Экспорт @@ -464,7 +479,6 @@ КонецПроцедуры - &НаКлиенте Процедура ОбработатьОшибку(Оповещение, Ошибка, ДополнительныеДанные = Неопределено, ПоказыватьОшибку = Истина) @@ -621,15 +635,10 @@ КонецПроцедуры &НаКлиентеНаСервереБезКонтекста -Функция НоваяОшибка(ЗаголовокОшибки, ТекстОшибки) +Функция НовоеОписаниеОшибки(ЗаголовокОшибки, ТекстОшибки) - Результат = Новый Структура; - Результат.Вставить("ЗаголовокОшибки", ЗаголовокОшибки); - Результат.Вставить("ТекстОшибки", ТекстОшибки); - Результат.Вставить("ДополнительныеФайлы", Новый Массив); - Результат.Вставить("ИдентификаторЗапроса"); - - Возврат Результат; + Возврат СервисМобильнойПодписиКлиентСервер.НовоеОписаниеОшибки(ЗаголовокОшибки, ТекстОшибки); КонецФункции + #КонецОбласти diff --git a/SSL/src/Catalogs/ПодписантыСервисаМобильнойПодписи/Forms/ПолучениеПодписей/Form.form b/SSL/src/Catalogs/ПодписантыСервисаМобильнойПодписи/Forms/ПолучениеПодписей/Form.form index 67599aa7d..f1a696c09 100644 --- a/SSL/src/Catalogs/ПодписантыСервисаМобильнойПодписи/Forms/ПолучениеПодписей/Form.form +++ b/SSL/src/Catalogs/ПодписантыСервисаМобильнойПодписи/Forms/ПолучениеПодписей/Form.form @@ -264,6 +264,10 @@ <event>NotificationProcessing</event> <name>ОбработкаОповещения</name> </handlers> + <handlers> + <event>OnOpen</event> + <name>ПриОткрытии</name> + </handlers> <handlers> <event>OnCreateAtServer</event> <name>ПриСозданииНаСервере</name> @@ -391,6 +395,10 @@ <name>Подписант</name> <valueType/> </parameters> + <parameters> + <name>НастройкаОтправки</name> + <valueType/> + </parameters> <commandInterface> <navigationPanel/> <commandBar/> diff --git a/SSL/src/Catalogs/ПодписантыСервисаМобильнойПодписи/Forms/ПолучениеПодписей/Module.bsl b/SSL/src/Catalogs/ПодписантыСервисаМобильнойПодписи/Forms/ПолучениеПодписей/Module.bsl index ffc01df83..4c6323c90 100644 --- a/SSL/src/Catalogs/ПодписантыСервисаМобильнойПодписи/Forms/ПолучениеПодписей/Module.bsl +++ b/SSL/src/Catalogs/ПодписантыСервисаМобильнойПодписи/Forms/ПолучениеПодписей/Module.bsl @@ -1,5 +1,5 @@ /////////////////////////////////////////////////////////////////////////////////////////////////////// -// Copyright (c) 2024, ООО 1С-Софт +// Copyright (c) 2025, ООО 1С-Софт // Все права защищены. Эта программа и сопроводительные материалы предоставляются // в соответствии с условиями лицензии Attribution 4.0 International (CC BY 4.0) // Текст лицензии доступен по ссылке: @@ -24,17 +24,34 @@ Иначе Подписант = Параметры.Подписант; КонецЕсли; - Элементы.НадписьОтправлено.Заголовок = СтроковыеФункции.ФорматированнаяСтрока( - НСтр("ru='Документы отправлены подписанту <b>%1</b> в мобильное приложение <b>Моя подпись</b> от ФНС. + + Если Параметры.НастройкаОтправки.Госключ Тогда + Элементы.НадписьОтправлено.Заголовок = СтроковыеФункции.ФорматированнаяСтрока( + НСтр("ru='Документы отправлены подписанту <b>%1</b> в мобильное приложение <b>Госключ</b>. | |• Зайдите в приложение и подпишите документы. | |• После подписания нажмите кнопку <b>Документы подписаны</b>.'"), Подписант); + Иначе + Элементы.НадписьОтправлено.Заголовок = СтроковыеФункции.ФорматированнаяСтрока( + НСтр("ru='Документы отправлены подписанту <b>%1</b> в мобильное приложение <b>Моя подпись</b> (ФНС). + | + |• Зайдите в приложение и подпишите документы. + | + |• После подписания нажмите кнопку <b>Документы подписаны</b>.'"), + Подписант); + КонецЕсли; + КонецЕсли; КонецПроцедуры +&НаКлиенте +Процедура ПриОткрытии(Отказ) + ПодключитьОбработчикОжидания("ПолучениеРезультатов", 1, Истина); +КонецПроцедуры + &НаКлиенте Процедура ОбработкаОповещения(ИмяСобытия, Параметр, Источник) @@ -100,7 +117,7 @@ ПолучитьРезультатыИзСервисаМобильнойПодписи(); Если ЗначениеЗаполнено(Ошибка) Тогда - СервисМобильнойПодписиКлиент.ОткрытьФормуРасширенногоПредставленияОшибки( + СервисМобильнойПодписиСлужебныйКлиент.ОткрытьФормуРасширенногоПредставленияОшибки( НСтр("ru='Не удалось получить результат подписания'"), Ошибка, ЭтотОбъект, Новый ОписаниеОповещения("ПослеЗакрытияФормыОшибки", ЭтотОбъект)); Возврат; diff --git a/SSL/src/Catalogs/ПодписантыСервисаМобильнойПодписи/Forms/ФормаСписка/Form.form b/SSL/src/Catalogs/ПодписантыСервисаМобильнойПодписи/Forms/ФормаСписка/Form.form index 20574d5b7..e99630e7e 100644 --- a/SSL/src/Catalogs/ПодписантыСервисаМобильнойПодписи/Forms/ФормаСписка/Form.form +++ b/SSL/src/Catalogs/ПодписантыСервисаМобильнойПодписи/Forms/ФормаСписка/Form.form @@ -16,7 +16,7 @@ <common>true</common> </userVisible> <dataPath xsi:type="form:DataPath"> - <segments>Организация</segments> + <segments>ОрганизацияОтбор</segments> </dataPath> <handlers> <event>OnChange</event> @@ -54,7 +54,7 @@ </extInfo> </items> <items xsi:type="form:FormField"> - <name>ФизическоеЛицо</name> + <name>ФизическоеЛицоОтбор</name> <id>42</id> <title> <key>ru</key> @@ -66,14 +66,14 @@ <common>true</common> </userVisible> <dataPath xsi:type="form:DataPath"> - <segments>ФизическоеЛицо</segments> + <segments>ФизическоеЛицоОтбор</segments> </dataPath> <handlers> <event>OnChange</event> <name>ФизическоеЛицоПриИзменении</name> </handlers> <extendedTooltip> - <name>ФизическоеЛицоРасширеннаяПодсказка</name> + <name>ФизическоеЛицоОтборРасширеннаяПодсказка</name> <id>44</id> <type>Label</type> <autoMaxWidth>true</autoMaxWidth> @@ -83,7 +83,7 @@ </extInfo> </extendedTooltip> <contextMenu> - <name>ФизическоеЛицоКонтекстноеМеню</name> + <name>ФизическоеЛицоОтборКонтекстноеМеню</name> <id>43</id> <autoFill>true</autoFill> </contextMenu> @@ -391,114 +391,6 @@ <autoMaxHeight>true</autoMaxHeight> </extInfo> </items> - <items xsi:type="form:FormField"> - <name>Фамилия</name> - <id>19</id> - <visible>true</visible> - <enabled>true</enabled> - <userVisible> - <common>true</common> - </userVisible> - <dataPath xsi:type="form:DataPath"> - <segments>Список.Фамилия</segments> - </dataPath> - <extendedTooltip> - <name>ФамилияРасширеннаяПодсказка</name> - <id>21</id> - <type>Label</type> - <autoMaxWidth>true</autoMaxWidth> - <autoMaxHeight>true</autoMaxHeight> - <extInfo xsi:type="form:LabelDecorationExtInfo"> - <horizontalAlign>Left</horizontalAlign> - </extInfo> - </extendedTooltip> - <contextMenu> - <name>ФамилияКонтекстноеМеню</name> - <id>20</id> - <autoFill>true</autoFill> - </contextMenu> - <type>LabelField</type> - <editMode>Enter</editMode> - <showInHeader>true</showInHeader> - <headerHorizontalAlign>Left</headerHorizontalAlign> - <showInFooter>true</showInFooter> - <extInfo xsi:type="form:LabelFieldExtInfo"> - <autoMaxWidth>true</autoMaxWidth> - <autoMaxHeight>true</autoMaxHeight> - </extInfo> - </items> - <items xsi:type="form:FormField"> - <name>Имя</name> - <id>28</id> - <visible>true</visible> - <enabled>true</enabled> - <userVisible> - <common>true</common> - </userVisible> - <dataPath xsi:type="form:DataPath"> - <segments>Список.Имя</segments> - </dataPath> - <extendedTooltip> - <name>ИмяРасширеннаяПодсказка</name> - <id>30</id> - <type>Label</type> - <autoMaxWidth>true</autoMaxWidth> - <autoMaxHeight>true</autoMaxHeight> - <extInfo xsi:type="form:LabelDecorationExtInfo"> - <horizontalAlign>Left</horizontalAlign> - </extInfo> - </extendedTooltip> - <contextMenu> - <name>ИмяКонтекстноеМеню</name> - <id>29</id> - <autoFill>true</autoFill> - </contextMenu> - <type>LabelField</type> - <editMode>Enter</editMode> - <showInHeader>true</showInHeader> - <headerHorizontalAlign>Left</headerHorizontalAlign> - <showInFooter>true</showInFooter> - <extInfo xsi:type="form:LabelFieldExtInfo"> - <autoMaxWidth>true</autoMaxWidth> - <autoMaxHeight>true</autoMaxHeight> - </extInfo> - </items> - <items xsi:type="form:FormField"> - <name>Отчество</name> - <id>31</id> - <visible>true</visible> - <enabled>true</enabled> - <userVisible> - <common>true</common> - </userVisible> - <dataPath xsi:type="form:DataPath"> - <segments>Список.Отчество</segments> - </dataPath> - <extendedTooltip> - <name>ОтчествоРасширеннаяПодсказка</name> - <id>33</id> - <type>Label</type> - <autoMaxWidth>true</autoMaxWidth> - <autoMaxHeight>true</autoMaxHeight> - <extInfo xsi:type="form:LabelDecorationExtInfo"> - <horizontalAlign>Left</horizontalAlign> - </extInfo> - </extendedTooltip> - <contextMenu> - <name>ОтчествоКонтекстноеМеню</name> - <id>32</id> - <autoFill>true</autoFill> - </contextMenu> - <type>LabelField</type> - <editMode>Enter</editMode> - <showInHeader>true</showInHeader> - <headerHorizontalAlign>Left</headerHorizontalAlign> - <showInFooter>true</showInFooter> - <extInfo xsi:type="form:LabelFieldExtInfo"> - <autoMaxWidth>true</autoMaxWidth> - <autoMaxHeight>true</autoMaxHeight> - </extInfo> - </items> <items xsi:type="form:FormField"> <name>Организация</name> <id>34</id> @@ -721,10 +613,10 @@ </extInfo> </attributes> <attributes> - <name>Организация</name> + <name>ОрганизацияОтбор</name> <title> <key>ru</key> - <value>Организация</value> + <value>Организация отбор</value> 2 @@ -738,10 +630,10 @@ - ФизическоеЛицо + ФизическоеЛицоОтбор <key>ru</key> - <value>Физическое лицо</value> + <value>Физическое лицо отбор</value> 3 diff --git a/SSL/src/Catalogs/ПодписантыСервисаМобильнойПодписи/Forms/ФормаСписка/Help/ru.html b/SSL/src/Catalogs/ПодписантыСервисаМобильнойПодписи/Forms/ФормаСписка/Help/ru.html index 0c0f5db72..d42532233 100644 --- a/SSL/src/Catalogs/ПодписантыСервисаМобильнойПодписи/Forms/ФормаСписка/Help/ru.html +++ b/SSL/src/Catalogs/ПодписантыСервисаМобильнойПодписи/Forms/ФормаСписка/Help/ru.html @@ -1,12 +1,25 @@ -

Предназначена для управления списком подписантов.

-

С помощью кнопки Создать можно добавить нового подписанта - юридическое лицо или индивидуального предпринимателя.

+

Предназначен для управления списком подписантов в сервисе мобильной подписи ФНС или в Госключе.

+ +

Сервис мобильной подписи ФНС

+

С помощью кнопки Создать можно добавить нового подписанта - юридическое лицо или индивидуального предпринимателя.

Заполните все необходимые данные:

  • для юридического лица - номер телефона, ИНН, ОГРН.
  • -
  • для индивидуального предпринимателя  - номер телефона, ИНН физического лица.

Для упрощения поиска в списке формы можно также добавить дополнительные данные, которые являются необязательными (Организация/Физическое лицо).

-

С помощью кнопки Выбрать выберите нужного подписанта из списка. 

-

При просмотре подписанта информация о телефоне подписанта доступна только пользователю, который добавил подписанта. 

-

Важно: как только данные подписанта будут переданы в сервис, все основные поля в справочнике станут недоступны для редактирования. Если обнаружится ошибка в контактных данных (например, в номере телефона или ИНН), придется создавать новую запись подписанта. 

-

См. также: 

+
  • для индивидуального предпринимателя - номер телефона, ИНН физического лица.
  • +

    Для упрощения поиска в списке формы можно также добавить дополнительные данные, которые являются необязательными (Организация/Физическое лицо).

    +

    С помощью кнопки Выбрать выберите нужного подписанта из списка.

    +

    При просмотре подписанта информация о телефоне подписанта доступна только пользователю, который добавил подписанта.

    +

    Важно: как только данные подписанта будут переданы в сервис, все основные поля в справочнике станут недоступны для редактирования. Если обнаружится ошибка в контактных данных (например, в номере телефона или ИНН), придется создавать новую запись подписанта.

    + +

    Госключ

    +

    С помощью кнопки Создать можно добавить нового подписанта - руководитель организации, индивидуальный предприниматель или физическое лицо.

    +

    Заполните все необходимые данные:

    +
    • для руководителя организации - ИНН, ОГРН, СНИЛС.
    • +
    • для индивидуального предпринимателя - ОГРН, ИНН физ. лица, СНИЛС.
    • +
    • для физического лица - ИНН физ. лица, СНИЛС.
    • +

    Для упрощения поиска в списке формы можно также добавить дополнительные данные, которые являются необязательными (Организация/Физическое лицо).

    + +

    См. также:

    \ No newline at end of file +
  • Настройки электронной подписи и шифрования.
  • + \ No newline at end of file diff --git a/SSL/src/Catalogs/ПодписантыСервисаМобильнойПодписи/Forms/ФормаСписка/Module.bsl b/SSL/src/Catalogs/ПодписантыСервисаМобильнойПодписи/Forms/ФормаСписка/Module.bsl index 83e643ce7..16d9a9bc1 100644 --- a/SSL/src/Catalogs/ПодписантыСервисаМобильнойПодписи/Forms/ФормаСписка/Module.bsl +++ b/SSL/src/Catalogs/ПодписантыСервисаМобильнойПодписи/Forms/ФормаСписка/Module.bsl @@ -1,5 +1,5 @@ /////////////////////////////////////////////////////////////////////////////////////////////////////// -// Copyright (c) 2024, ООО 1С-Софт +// Copyright (c) 2025, ООО 1С-Софт // Все права защищены. Эта программа и сопроводительные материалы предоставляются // в соответствии с условиями лицензии Attribution 4.0 International (CC BY 4.0) // Текст лицензии доступен по ссылке: @@ -11,18 +11,21 @@ &НаСервере Процедура ПриСозданииНаСервере(Отказ, СтандартнаяОбработка) + ОбщиеНастройки = ЭлектроннаяПодпись.ОбщиеНастройки(); Элементы.Список.РежимВыбора = Параметры.РежимВыбора; - + Элементы.Организация.Видимость = ОбщиеНастройки.ОрганизацияИспользуется; + Элементы.ФизическоеЛицоОтбор.Видимость = ОбщиеНастройки.ФизическоеЛицоИспользуется; + Если ЗначениеЗаполнено(Параметры.Организация) Тогда - Организация = Параметры.Организация; + ОрганизацияОтбор = Параметры.Организация; Элементы.ОрганизацияОтбор.ТолькоПросмотр = Истина; ОбщегоНазначенияКлиентСервер.УстановитьЭлементОтбораДинамическогоСписка( Список, "Организация", Параметры.Организация); КонецЕсли; Если ЗначениеЗаполнено(Параметры.ФизическоеЛицо) Тогда - ФизическоеЛицо = Параметры.ФизическоеЛицо; - Элементы.ФизическоеЛицо.ТолькоПросмотр = Истина; + ФизическоеЛицоОтбор = Параметры.ФизическоеЛицо; + Элементы.ФизическоеЛицоОтбор.ТолькоПросмотр = Истина; ОбщегоНазначенияКлиентСервер.УстановитьЭлементОтбораДинамическогоСписка( Список, "ФизическоеЛицо", Параметры.ФизическоеЛицо); КонецЕсли; @@ -34,7 +37,7 @@ Если ВРег(ИмяСобытия) = ВРег("Запись_ПодписантыСервисаМобильнойПодписи") Тогда Элементы.Список.Обновить(); - Если ЗначениеЗаполнено(Параметр) И Параметр.ЭтоНовый Тогда + Если ЗначениеЗаполнено(Параметр) Тогда Элементы.Список.ТекущаяСтрока = Источник; КонецЕсли; КонецЕсли; @@ -52,7 +55,7 @@ Если Не Копирование Тогда ПараметрыПодписанта = СервисМобильнойПодписиКлиентСервер.ПараметрыПодписанта(); - ПараметрыПодписанта.Организация = Организация; + ПараметрыПодписанта.Организация = ОрганизацияОтбор; СервисМобильнойПодписиКлиент.ДобавитьПодписанта(ПараметрыПодписанта, ЭтотОбъект); КонецЕсли; @@ -62,13 +65,13 @@ &НаКлиенте Процедура ОрганизацияОтборПриИзменении(Элемент) ОбщегоНазначенияКлиентСервер.УстановитьЭлементОтбораДинамическогоСписка( - Список, "Организация", Организация,,,ЗначениеЗаполнено(Организация)); + Список, "Организация", ОрганизацияОтбор,,,ЗначениеЗаполнено(ОрганизацияОтбор)); КонецПроцедуры &НаКлиенте Процедура ФизическоеЛицоПриИзменении(Элемент) ОбщегоНазначенияКлиентСервер.УстановитьЭлементОтбораДинамическогоСписка( - Список, "ФизическоеЛицо", ФизическоеЛицо,,,ЗначениеЗаполнено(ФизическоеЛицо)); + Список, "ФизическоеЛицо", ФизическоеЛицоОтбор,,,ЗначениеЗаполнено(ФизическоеЛицоОтбор)); КонецПроцедуры #КонецОбласти diff --git a/SSL/src/Catalogs/ПодписантыСервисаМобильнойПодписи/Forms/ФормаЭлемента/Form.form b/SSL/src/Catalogs/ПодписантыСервисаМобильнойПодписи/Forms/ФормаЭлемента/Form.form index 59e920966..2a5773a0c 100644 --- a/SSL/src/Catalogs/ПодписантыСервисаМобильнойПодписи/Forms/ФормаЭлемента/Form.form +++ b/SSL/src/Catalogs/ПодписантыСервисаМобильнойПодписи/Forms/ФормаЭлемента/Form.form @@ -7,7 +7,6 @@ ru Была отправка в сервис 1С:Мобильная подпись - true true true @@ -28,7 +27,6 @@ true Label - true true Left @@ -45,18 +43,14 @@ 70 ВидПодписанта - 65 - - <key>ru</key> - <value>Вид подписанта</value> - + 104 true true true - ВидПодписанта + Объект.ВидПодписанта None @@ -65,7 +59,7 @@ ВидПодписантаРасширеннаяПодсказка - 67 + 106 Label true true @@ -75,7 +69,7 @@ ВидПодписантаКонтекстноеМеню - 66 + 105 true RadioButtonField @@ -87,10 +81,10 @@ ru - Юридическое лицо + Руководитель организации - - ЮридическоеЛицо + + Enum.ВидыПодписантовМобильногоСервиса.EnumValue.РуководительЮЛ @@ -98,13 +92,205 @@ ru Индивидуальный предприниматель - - ИндивидуальныйПредприниматель + + Enum.ВидыПодписантовМобильногоСервиса.EnumValue.ИндивидуальныйПредприниматель + + + + + ru + Физическое лицо + + + Enum.ВидыПодписантовМобильногоСервиса.EnumValue.ФизическоеЛицо Vertical + + ГруппаСервис + 90 + + МояПодпись + 84 + true + true + + true + + + Объект.МояПодпись + + Right + Button + + OnChange + СервисМобильнойПодписиПриИзменении + + + МояПодписьРасширеннаяПодсказка + 86 + Label + true + true + + Left + + + + МояПодписьКонтекстноеМеню + 85 + true + + CheckBoxField + Enter + true + Left + true + + + + ГруппаГосключ + 107 + + ГосключУКЭП + 98 + true + true + + true + + + Объект.ГосключУКЭП + + Right + Button + + OnChange + УКЭППриИзменении + + + ГосключУКЭПРасширеннаяПодсказка + 100 + Label + true + true + + Left + + + + ГосключУКЭПКонтекстноеМеню + 99 + true + + CheckBoxField + Enter + true + Left + true + + + + ГосключУНЭП + 95 + true + true + + true + + + Объект.ГосключУНЭП + + Right + Button + + OnChange + УНЭППриИзменении + + + ГосключУНЭПРасширеннаяПодсказка + 97 + Label + true + true + + Left + + + + ГосключУНЭПКонтекстноеМеню + 96 + true + + CheckBoxField + Enter + true + Left + true + + + true + true + + true + + + <key>ru</key> + <value>Госключ</value> + + + ГруппаГосключРасширеннаяПодсказка + 108 + Label + true + true + + Left + + + UsualGroup + + HorizontalIfPossible + Auto + WeakSeparation + true + true + Auto + Auto + + + true + true + + true + + + <key>ru</key> + <value>Сервис</value> + + + ГруппаСервисРасширеннаяПодсказка + 91 + Label + true + true + + Left + + + UsualGroup + + HorizontalIfPossible + Auto + WeakSeparation + true + true + Auto + Auto + + ГруппаФизЛицо 31 @@ -205,6 +391,50 @@ Normal + + СНИЛС + 92 + true + true + + true + + + Объект.СНИЛС + + + СНИЛСРасширеннаяПодсказка + 94 + Label + true + true + + Left + + + + СНИЛСКонтекстноеМеню + 93 + true + + InputField + true + Enter + true + Left + true + + 15 + true + true + true + true + true + true + true + Normal + + Фамилия 16 @@ -381,6 +611,10 @@ Объект.ИНН + + OnChange + ИННПриИзменении + ИННРасширеннаяПодсказка 6 @@ -441,12 +675,55 @@ true InputField + true Enter true Left true 15 + true + true + true + true + true + true + true + Normal + + + + НомерЗаписиОбАккредитации + 101 + true + true + + true + + + Объект.НомерЗаписиОбАккредитации + + + НомерЗаписиОбАккредитацииРасширеннаяПодсказка + 103 + Label + true + true + + Left + + + + НомерЗаписиОбАккредитацииКонтекстноеМеню + 102 + true + + InputField + Enter + true + Left + true + true true true @@ -477,11 +754,10 @@ UsualGroup - HorizontalIfPossible + Vertical Auto WeakSeparation true - true Auto Auto @@ -594,7 +870,6 @@ Auto WeakSeparation true - true Auto Auto @@ -692,6 +967,10 @@ Left true + + BeforeAddRow + ПользователиПередНачаломДобавления + ПользователиСтрокаПоиска 47 @@ -1039,6 +1318,10 @@ Left true + + NotificationProcessing + ОбработкаОповещения + OnOpen ПриОткрытии @@ -1105,25 +1388,7 @@
    - ВидПодписанта - - <key>ru</key> - <value>Вид подписанта</value> - - 4 - - String - - - - true - - - true - - - - ЕстьОтправленныеДокументы + ЕстьОтправленныеДокументыВСервис 5 Boolean @@ -1135,11 +1400,74 @@ true + + ИспользоватьГосключ + 4 + + Boolean + + + true + + + true + + + + ИспользоватьСервисМобильнойПодписи + 6 + + Boolean + + + true + + + true + + + + ЕстьОтправленныеДокументыВГосуслуги + 7 + + Boolean + + + true + + + true + + + + ЕстьПраваНаПросмотр + 8 + + Boolean + + + true + + + true + + - + + + 0 + FormNavigationPanelGoTo + 0 + + + + + AfterWrite + ПослеЗаписи + AfterWriteAtServer ПослеЗаписиНаСервере diff --git a/SSL/src/Catalogs/ПодписантыСервисаМобильнойПодписи/Forms/ФормаЭлемента/Help/ru.html b/SSL/src/Catalogs/ПодписантыСервисаМобильнойПодписи/Forms/ФормаЭлемента/Help/ru.html new file mode 100644 index 000000000..ba774803d --- /dev/null +++ b/SSL/src/Catalogs/ПодписантыСервисаМобильнойПодписи/Forms/ФормаЭлемента/Help/ru.html @@ -0,0 +1,69 @@ + + +

    Предназначена для управления списком подписантов в сервисе мобильной подписи ФНС или в Госключе.

    +

      Сервис мобильной подписи ФНС

      +

      Доступны виды подписантов: руководитель организации или индивидуальный предприниматель.

      + +

      Заполнение данных для ФНС

      +
      • для руководителя организации: +
        • Номер телефона – обязательное поле;
        • +
        • Фамилия, Имя, Отчество руководителя (необязательные).
        • +
        • ИНН организации;
        • +
        • ОГРН;
        • +
        • Наименование организации (необязательное);
        • +
        • Должность (необязательное);
        • +
        • Представление;
        • +
      • +
      • для индивидуального предпринимателя: +
        • Номер телефона – обязательное поле;
        • +
        • ИНН физического лица;
        • +
        • Фамилия, Имя, Отчество;
        • +
        • Представление.

      Особенности отправки в ФНС

      +
      • При отправке в сервис мобильной подписи ФНС доступен выбор типа подписи.
      • +
      • Подпись с меткой времени добавляется сервисом мобильной подписи с помощью сервиса DSS.
      • +

      Госключ

      + +

      Создание подписанта для Госключ

      +

      Доступны виды подписантов: руководитель организации, индивидуальный предприниматель или физическое лицо.

      +

      Если включена опция Госключ, в форме появляются флажки Госключ УКЭП и Госключ УНЭП.

      + +

      Заполнение данных для Госключ

      +
      • для руководителя организации: +
        • ИНН физ. лица – обязательное поле;
        • +
        • СНИЛС – обязательное поле;
        • +
        • Фамилия, Имя, Отчество руководителя (необязательные).
        • +
        • ИНН организации;
        • +
        • ОГРН;
        • +
        • Наименование организации (необязательное);
        • +
        • Должность (необязательное);
        • +
        • Представление;
      • +
      • для индивидуального предпринимателя: +
        • ИНН физического лица – обязательное поле;
        • +
        • СНИЛС – обязательное поле;
        • +
        • Фамилия, Имя, Отчество;
        • +
        • Представление.
      • +
      • для физического лица: +
        • ИНН физического лица – обязательное поле;
        • +
        • СНИЛС – обязательное поле;
        • +
        • Фамилия, Имя, Отчество;
        • +
        • Представление.
      • +

      Особенности работы с Госключ

      +
      • Госключ создает подпись с меткой времени, поэтому выбор типа подписи (УКЭП/УНЭП) не влияет на наличие метки времени.
      • +
      • Если в настройках приложения выбран или передан по API тип Архивная подпись (CAdES-A), при отправке будет выдана ошибка.
      • +
      • При отправке в Госключ тип подписи определяется автоматически.
      • +

      Дополнительно

      +

      +
      • Используют – список пользователей, которые могут использовать данного подписанта, с кнопками Добавить, Поиск (Ctrl+F) и меню Еще.
      • +
      • Добавил – пользователь, создавший запись подписанта.
      • +
      • Физическое лицо – выбор из справочника физических лиц.
      • +
      • Организация – выбор из справочника организаций.

      +
      • Признак Была отправка в сервис 1С:Мобильная подпись или Госключ отображается, если документы уже отправлялись данному подписанту. В этом случае обязательные поля доступны только для просмотра.

        Отправленные на подпись документы

        +
        • Список ранее отправленных документов с колонками: Дата отправки, Наименование документа, Статус.
        • Актуальные статусы документов в Сервисе мобильной подписи или Госключе.
        • +
        • Кнопка Обновить статусы позволяет получить свежую информацию.
        • +

        Управление формой

        +
        • Кнопка Записать и закрыть – сохраняет изменения и закрывает форму.
        • +
        • Кнопка Записать – сохраняет изменения без закрытия формы.
        • +
        • Меню Еще – дополнительные команды для работы с подписантом.

          См. также:

          + \ No newline at end of file diff --git a/SSL/src/Catalogs/ПодписантыСервисаМобильнойПодписи/Forms/ФормаЭлемента/Module.bsl b/SSL/src/Catalogs/ПодписантыСервисаМобильнойПодписи/Forms/ФормаЭлемента/Module.bsl index 619451164..2d46f3f58 100644 --- a/SSL/src/Catalogs/ПодписантыСервисаМобильнойПодписи/Forms/ФормаЭлемента/Module.bsl +++ b/SSL/src/Catalogs/ПодписантыСервисаМобильнойПодписи/Forms/ФормаЭлемента/Module.bsl @@ -1,5 +1,5 @@ /////////////////////////////////////////////////////////////////////////////////////////////////////// -// Copyright (c) 2024, ООО 1С-Софт +// Copyright (c) 2025, ООО 1С-Софт // Все права защищены. Эта программа и сопроводительные материалы предоставляются // в соответствии с условиями лицензии Attribution 4.0 International (CC BY 4.0) // Текст лицензии доступен по ссылке: @@ -10,24 +10,28 @@ &НаСервере Процедура ПриСозданииНаСервере(Отказ, СтандартнаяОбработка) - + НомерТелефона = Прав(Объект.НомерТелефона, 10); ИспользуетсяАвтоНаименование = ИспользуетсяАвтоНаименование(Объект); + ЕстьПраваНаПросмотр = Пользователи.ЭтоПолноправныйПользователь() Или Пользователи.ТекущийПользователь() = Объект.Добавил; - Если ЗначениеЗаполнено(Объект.ИНН) Тогда - ВидПодписанта = "ЮридическоеЛицо"; - Иначе - ВидПодписанта = "ИндивидуальныйПредприниматель"; + Если ЗначениеЗаполнено(Параметры.Ключ) Тогда + ПроверитьОтправленныеДокументы(); + Элементы.ДекорацияБылиОтправки.Видимость = Объект.ОтправленВСервис Или ЕстьОтправленныеДокументыВСервис Или ЕстьОтправленныеДокументыВГосуслуги; + Если Не ЕстьОтправленныеДокументыВСервис И Не ЕстьОтправленныеДокументыВГосуслуги Тогда + Элементы.ДекорацияБылиОтправки.Заголовок = НСтр("ru = 'Была отправка в сервис 1С:Мобильная подпись.'"); + ИначеЕсли ЕстьОтправленныеДокументыВСервис И ЕстьОтправленныеДокументыВГосуслуги Тогда + Элементы.ДекорацияБылиОтправки.Заголовок = НСтр("ru = 'Была отправка документов в мобильные приложения ""Моя подпись"" и ""Госключ"".'"); + ИначеЕсли ЕстьОтправленныеДокументыВГосуслуги Тогда + Элементы.ДекорацияБылиОтправки.Заголовок = НСтр("ru = 'Была отправка документов в мобильное приложение ""Госключ"".'"); + Иначе + Элементы.ДекорацияБылиОтправки.Заголовок = НСтр("ru = 'Была отправка документов в мобильное приложение ""Моя подпись"".'"); + КонецЕсли; + Элементы.Организация.Видимость = ЭлектроннаяПодпись.ОбщиеНастройки().ОрганизацияИспользуется; + Элементы.ФизическоеЛицо.Видимость = ЭлектроннаяПодпись.ОбщиеНастройки().ФизическоеЛицоИспользуется; КонецЕсли; - Если ЗначениеЗаполнено(Параметры.Ключ) Тогда - ЕстьОтправленныеДокументы = Объект.ОтправленВСервис Или ЕстьОтправленныеДокументы(); - Элементы.ДекорацияБылиОтправки.Видимость = ЕстьОтправленныеДокументы; - Элементы.Организация.Видимость = ЭлектроннаяПодпись.ОбщиеНастройки().ОрганизацияИспользуется; - Элементы.ФизическоеЛицо.Видимость = ЭлектроннаяПодпись.ОбщиеНастройки().ОрганизацияИспользуется; - Элементы.НомерТелефона.Видимость = Пользователи.ТекущийПользователь() = Объект.Добавил; - УстановитьВидимостьИДоступность(ЭтотОбъект); - КонецЕсли; + ПриИзмененииНастроек(); КонецПроцедуры @@ -46,7 +50,8 @@ &НаКлиенте Процедура ПередЗаписью(Отказ, ПараметрыЗаписи) - Если ВидПодписанта = "ЮридическоеЛицо" И Не ЗначениеЗаполнено(Объект.ИНН) Тогда + Если Объект.ВидПодписанта = ПредопределенноеЗначение("Перечисление.ВидыПодписантовМобильногоСервиса.РуководительЮЛ") + И Не ЗначениеЗаполнено(Объект.ИНН) Тогда ОбщегоНазначенияКлиент.СообщитьПользователю(НСтр("ru = 'Не заполнен ИНН юридического лица.'"),,"Объект.ИНН",,Отказ); КонецЕсли; @@ -65,13 +70,16 @@ НомерТелефона = Прав(Объект.НомерТелефона, 10); Объект.ИНН = ПараметрыПодписанта.ИНН; Объект.ИННФЛ = ПараметрыПодписанта.ИННФЛ; + Объект.СНИЛС = ПараметрыПодписанта.СНИЛС; Если ИспользуетсяАвтонаименование Или Не ЗначениеЗаполнено(Объект.Наименование) Тогда Объект.Наименование = АвтоНаименование(ПараметрыПодписанта); КонецЕсли; + Если Не ЗначениеЗаполнено(Объект.ИНН) И ЗначениеЗаполнено(Объект.ОГРН) Тогда ОГРН = ""; КонецЕсли; + КонецПроцедуры &НаСервере @@ -98,6 +106,18 @@ КонецПроцедуры +&НаКлиенте +Процедура ПослеЗаписи(ПараметрыЗаписи) + Оповестить("Запись_ПодписантыСервисаМобильнойПодписи", Новый Структура("ЭтоНовый", Ложь), Объект.Ссылка); +КонецПроцедуры + +&НаКлиенте +Процедура ОбработкаОповещения(ИмяСобытия, Параметр, Источник) + Если ИмяСобытия = "Запись_НаборКонстант" И (Источник = "ИспользоватьГосключ" Или Источник = "ИспользоватьСервисМобильнойПодписи") Тогда + ПриИзмененииНастроек(); + КонецЕсли; +КонецПроцедуры + #КонецОбласти #Область ОбработчикиСобытийЭлементовШапкиФормы @@ -111,21 +131,112 @@ &НаКлиенте Процедура ВидПодписантаПриИзменении(Элемент) - Если ВидПодписанта <> "ЮридическоеЛицо" Тогда - Объект.ИНН = ""; - Объект.Должность = ""; - Объект.НаименованиеОрганизации = ""; + + Если Объект.ВидПодписанта = ПредопределенноеЗначение("Перечисление.ВидыПодписантовМобильногоСервиса.ФизическоеЛицо") Тогда + Объект.МояПодпись = Ложь; + Иначе + Объект.ГосключУНЭП = Ложь; + КонецЕсли; + + ПриИзмененииНастроек(); +КонецПроцедуры + +&НаКлиенте +Процедура СервисМобильнойПодписиПриИзменении(Элемент) + УстановитьВидимостьИДоступность(ЭтотОбъект); +КонецПроцедуры + +&НаКлиенте +Процедура УКЭППриИзменении(Элемент) + УстановитьВидимостьИДоступность(ЭтотОбъект); +КонецПроцедуры + +&НаКлиенте +Процедура УНЭППриИзменении(Элемент) + УстановитьВидимостьИДоступность(ЭтотОбъект); +КонецПроцедуры + +&НаКлиенте +Процедура ИННПриИзменении(Элемент) + ИностраннаяОрганизация = СтрНачинаетсяС(Объект.ИНН, "9909"); + Если ИностраннаяОрганизация Тогда Объект.ОГРН = ""; Иначе - Объект.ИННФЛ = ""; + Объект.НомерЗаписиОбАккредитации = ""; КонецЕсли; - УстановитьВидимостьИДоступность(ЭтотОбъект); КонецПроцедуры #КонецОбласти +#Область ОбработчикиСобытийЭлементовТаблицыФормыПользователи +&НаКлиенте +Процедура ПользователиПередНачаломДобавления(Элемент, Отказ, Копирование, Родитель, ЭтоГруппа, Параметр) + + Отказ = Истина; + ПараметрыПодбора = Новый Структура; + ПараметрыПодбора.Вставить("РежимВыбора", Истина); + ПараметрыПодбора.Вставить("ЗакрыватьПриВыборе", Ложь); + ПараметрыПодбора.Вставить("МножественныйВыбор", Истина); + ПараметрыПодбора.Вставить("РасширенныйПодбор", Истина); + ПараметрыПодбора.Вставить("СкрытьПользователейБезПользователяИБ", Истина); + + Выбранные = Новый Массив; + Для Каждого Строка Из Объект.Пользователи Цикл + Выбранные.Добавить(Строка.Пользователь); + КонецЦикла; + + ПараметрыПодбора.Вставить("ВыбранныеПользователи", Выбранные); + ПараметрыПодбора.Вставить("ЗаголовокФормыПодбора", + НСтр("ru = 'Выберите пользователей, которые могут отправлять документы подписанту'")); + ПараметрыПодбора.Вставить("ЗаголовокКнопкиЗавершенияПодбора", НСтр("ru = 'Выбрать'")); + + Обработчик = Новый ОписаниеОповещения("ДобавитьПользователей", ЭтотОбъект); + + ОткрытьФорму("Справочник.Пользователи.ФормаВыбора", ПараметрыПодбора,,,,, Обработчик); + +КонецПроцедуры + +#КонецОбласти + + #Область СлужебныеПроцедурыИФункции +&НаКлиенте +Процедура ДобавитьПользователей(Результат, ДополнительныеПараметры) Экспорт + + Если Результат = Неопределено Тогда + Возврат; + КонецЕсли; + + Объект.Пользователи.Очистить(); + Для Каждого Пользователь Из Результат Цикл + НоваяСтрока = Объект.Пользователи.Добавить(); + НоваяСтрока.Пользователь = Пользователь; + КонецЦикла; + +КонецПроцедуры + +&НаСервере +Процедура ПриИзмененииНастроек() + + ИспользоватьГосключ = ПолучитьФункциональнуюОпцию("ИспользоватьГосключ"); + ИспользоватьСервисМобильнойПодписи = ПолучитьФункциональнуюОпцию("ИспользоватьСервисМобильнойПодписи"); + + ВидПодписантаФизическоеЛицо = Перечисления.ВидыПодписантовМобильногоСервиса.ФизическоеЛицо; + Элемент = Элементы.ВидПодписанта.СписокВыбора.НайтиПоЗначению(ВидПодписантаФизическоеЛицо); + + Если Не ИспользоватьГосключ Тогда + Если Объект.ВидПодписанта <> ВидПодписантаФизическоеЛицо И Элемент <> Неопределено Тогда + Элементы.ВидПодписанта.СписокВыбора.Удалить(Элемент); + КонецЕсли; + ИначеЕсли Элемент = Неопределено Тогда + Элементы.ВидПодписанта.СписокВыбора.Добавить(ВидПодписантаФизическоеЛицо, НСтр("ru = 'Физическое лицо'")); + КонецЕсли; + + УстановитьВидимостьИДоступность(ЭтотОбъект); + +КонецПроцедуры + &НаКлиенте Процедура ОбработчикОжиданияДобавитьПодписанта() @@ -141,22 +252,38 @@ Элементы = Форма.Элементы; Объект = Форма.Объект; - Если Не Форма.ТолькоПросмотр И Форма.ЕстьОтправленныеДокументы Тогда + Если Не Форма.ТолькоПросмотр И (Форма.ЕстьОтправленныеДокументыВСервис Или Форма.ЕстьОтправленныеДокументыВГосуслуги Или Форма.Объект.ОтправленВСервис) Тогда Элементы.ВидПодписанта.ТолькоПросмотр = Истина; - Элементы.ОГРН.ТолькоПросмотр = Истина; - Элементы.ИНН.ТолькоПросмотр = Истина; - Элементы.ИННФЛ.ТолькоПросмотр = Истина; - Элементы.НомерТелефона.ТолькоПросмотр = Истина; + Элементы.ОГРН.ТолькоПросмотр = Форма.ЕстьОтправленныеДокументыВСервис Или Форма.Объект.ОтправленВСервис; + Элементы.ИНН.ТолькоПросмотр = Форма.ЕстьОтправленныеДокументыВСервис Или Форма.Объект.ОтправленВСервис; + Элементы.ИННФЛ.ТолькоПросмотр = Форма.ЕстьОтправленныеДокументыВСервис Или Форма.Объект.ОтправленВСервис; + Элементы.НомерТелефона.ТолькоПросмотр = Форма.ЕстьОтправленныеДокументыВСервис Или Форма.Объект.ОтправленВСервис; + Элементы.СНИЛС.ТолькоПросмотр = Форма.ЕстьОтправленныеДокументыВГосуслуги; КонецЕсли; - ЭтоЮрЛицо = Форма.ВидПодписанта = "ЮридическоеЛицо"; + ЭтоЮрЛицо = Форма.Объект.ВидПодписанта = ПредопределенноеЗначение("Перечисление.ВидыПодписантовМобильногоСервиса.РуководительЮЛ"); + ЭтоФизЛицо = Форма.Объект.ВидПодписанта = ПредопределенноеЗначение("Перечисление.ВидыПодписантовМобильногоСервиса.ФизическоеЛицо"); + + Форма.Элементы.ГруппаГосключ.Видимость = Форма.ИспользоватьГосключ; + Форма.Элементы.ГосключУКЭП.Видимость = ЭтоФизЛицо Или Форма.ИспользоватьСервисМобильнойПодписи; + Форма.Элементы.ГосключУНЭП.Видимость = ЭтоФизЛицо; + Форма.Элементы.МояПодпись.Видимость = Форма.ИспользоватьГосключ И Форма.ИспользоватьСервисМобильнойПодписи И Не ЭтоФизЛицо; Элементы.ВидПодписанта.Видимость = Не Элементы.ВидПодписанта.ТолькоПросмотр; Элементы.ГруппаОрганизация.Видимость = ЭтоЮрЛицо; - Элементы.ИННФЛ.Видимость = Не ЭтоЮрЛицо; - Элементы.НаименованиеОрганизации.Видимость = Не ЗначениеЗаполнено(Объект.Организация) - Или ЗначениеЗаполнено(Объект.НаименованиеОрганизации); + ИностраннаяОрганизация = СтрНачинаетсяС(Объект.ИНН, "9909"); + + Элементы.ИННФЛ.Видимость = Форма.ЕстьПраваНаПросмотр + И (Не ЭтоЮрЛицо И Объект.МояПодпись Или ЗначениеЗаполнено(Объект.ИННФЛ) Или ИностраннаяОрганизация); + Элементы.СНИЛС.Видимость = Форма.ЕстьПраваНаПросмотр И (ЭтоФизЛицо Или Объект.ГосключУКЭП Или ЗначениеЗаполнено(Объект.СНИЛС)); + Элементы.НомерТелефона.Видимость = Форма.ЕстьПраваНаПросмотр И (Объект.МояПодпись Или ЗначениеЗаполнено(Объект.НомерТелефона)); + + Элементы.НаименованиеОрганизации.Видимость = ЭтоЮрЛицо И (Не ЗначениеЗаполнено(Объект.Организация) + Или ЗначениеЗаполнено(Объект.НаименованиеОрганизации)); + + Форма.Элементы.НомерЗаписиОбАккредитации.Видимость = ИностраннаяОрганизация; + Форма.Элементы.ОГРН.Видимость = Не ИностраннаяОрганизация; КонецПроцедуры @@ -167,7 +294,7 @@ Возврат Истина; КонецЕсли; - Возврат Объект.Наименование = Справочники.ПодписантыСервисаМобильнойПодписи.АвтоНаименование(Объект); + Возврат Объект.Наименование = Справочники.ПодписантыСервисаМобильнойПодписи.АвтоНаименование(Объект); КонецФункции @@ -182,22 +309,38 @@ КонецФункции &НаСервере -Функция ЕстьОтправленныеДокументы() +Процедура ПроверитьОтправленныеДокументы() Запрос = Новый Запрос; Запрос.Текст = "ВЫБРАТЬ ПЕРВЫЕ 1 - | СервисМобильнойПодписиСтатусы.ИдентификаторДокумента КАК ИдентификаторДокумента + | СервисМобильнойПодписиСтатусы.ИдентификаторДокумента КАК ИдентификаторДокумента, + | СервисМобильнойПодписиСтатусы.НастройкаОтправкиВГосключ КАК НастройкаОтправкиВГосключ |ИЗ | РегистрСведений.СервисМобильнойПодписиСтатусы КАК СервисМобильнойПодписиСтатусы |ГДЕ - | СервисМобильнойПодписиСтатусы.Подписант = &Подписант"; + | СервисМобильнойПодписиСтатусы.Подписант = &Подписант + | И СервисМобильнойПодписиСтатусы.НастройкаОтправкиВГосключ = ЗНАЧЕНИЕ(Справочник.НастройкиОтправкиВГосключ.ПустаяСсылка) + | + |ОБЪЕДИНИТЬ ВСЕ + | + |ВЫБРАТЬ ПЕРВЫЕ 1 + | СервисМобильнойПодписиСтатусы.ИдентификаторДокумента, + | СервисМобильнойПодписиСтатусы.НастройкаОтправкиВГосключ + |ИЗ + | РегистрСведений.СервисМобильнойПодписиСтатусы КАК СервисМобильнойПодписиСтатусы + |ГДЕ + | СервисМобильнойПодписиСтатусы.Подписант = &Подписант + | И СервисМобильнойПодписиСтатусы.НастройкаОтправкиВГосключ <> ЗНАЧЕНИЕ(Справочник.НастройкиОтправкиВГосключ.ПустаяСсылка)"; Запрос.УстановитьПараметр("Подписант", Объект.Ссылка); УстановитьПривилегированныйРежим(Истина); - РезультатЗапроса = Запрос.Выполнить(); - Возврат Не РезультатЗапроса.Пустой(); + Выборка = Запрос.Выполнить().Выбрать(); + Пока Выборка.Следующий() Цикл + ЕстьОтправленныеДокументыВСервис = Не ЗначениеЗаполнено(Выборка.НастройкаОтправкиВГосключ); + ЕстьОтправленныеДокументыВГосуслуги = ЗначениеЗаполнено(Выборка.НастройкаОтправкиВГосключ); + КонецЦикла; -КонецФункции +КонецПроцедуры #КонецОбласти diff --git a/SSL/src/Catalogs/ПодписантыСервисаМобильнойПодписи/ManagerModule.bsl b/SSL/src/Catalogs/ПодписантыСервисаМобильнойПодписи/ManagerModule.bsl index 981ba418a..6601cdc89 100644 --- a/SSL/src/Catalogs/ПодписантыСервисаМобильнойПодписи/ManagerModule.bsl +++ b/SSL/src/Catalogs/ПодписантыСервисаМобильнойПодписи/ManagerModule.bsl @@ -1,5 +1,5 @@ /////////////////////////////////////////////////////////////////////////////////////////////////////// -// Copyright (c) 2024, ООО 1С-Софт +// Copyright (c) 2025, ООО 1С-Софт // Все права защищены. Эта программа и сопроводительные материалы предоставляются // в соответствии с условиями лицензии Attribution 4.0 International (CC BY 4.0) // Текст лицензии доступен по ссылке: @@ -22,7 +22,7 @@ Ограничение.Текст = "РазрешитьЧтение |ГДЕ - | ЗначениеРазрешено(Организация, ПустаяСсылка КАК Истина) ИЛИ ЭтоАвторизованныйПользователь(Добавил) ИЛИ ЭтоАвторизованныйПользователь(Пользователи.Пользователь) + | ЭтоАвторизованныйПользователь(Добавил) ИЛИ ЭтоАвторизованныйПользователь(Пользователи.Пользователь) |; |РазрешитьИзменениеЕслиРазрешеноЧтение |ГДЕ @@ -38,6 +38,85 @@ #Область СлужебныеПроцедурыИФункции +//////////////////////////////////////////////////////////////////////////////// +// Обработчики обновления. + +// Регистрирует на плане обмена ОбновлениеИнформационнойБазы объекты, +// в которых необходимо заполнить реквизиты. +// +Процедура ЗарегистрироватьДанныеКОбработкеДляПереходаНаНовуюВерсию(Параметры) Экспорт + + Запрос = Новый Запрос; + Запрос.Текст = "ВЫБРАТЬ + | ПодписантыСервисаМобильнойПодписи.Ссылка + |ИЗ + | Справочник.ПодписантыСервисаМобильнойПодписи КАК ПодписантыСервисаМобильнойПодписи + |ГДЕ + | ПодписантыСервисаМобильнойПодписи.ВидПодписанта = &ПустаяСсылка"; + + Запрос.УстановитьПараметр("ПустаяСсылка", Перечисления.ВидыПодписантовМобильногоСервиса.ПустаяСсылка()); + Результат = Запрос.Выполнить(); + ОбновлениеИнформационнойБазы.ОтметитьКОбработке(Параметры, Результат); + +КонецПроцедуры + +// Заполняет реквизиты. +Процедура ОбработатьДанныеДляПереходаНаНовуюВерсию(Параметры) Экспорт + + ОбъектовОбработано = 0; + ПроблемныхОбъектов = 0; + + Выборка = ОбновлениеИнформационнойБазы.ВыбратьСсылкиДляОбработки(Параметры.Очередь, + "Справочник.ПодписантыСервисаМобильнойПодписи"); + + Пока Выборка.Следующий() Цикл + Блокировка = Новый БлокировкаДанных; + ЭлементБлокировки = Блокировка.Добавить("Справочник.ПодписантыСервисаМобильнойПодписи"); + ЭлементБлокировки.УстановитьЗначение("Ссылка", Выборка.Ссылка); + + НачатьТранзакцию(); + Попытка + Блокировка.Заблокировать(); + + Объект = Выборка.Ссылка.ПолучитьОбъект(); + + Объект.МояПодпись = Истина; + + Если ЗначениеЗаполнено(Объект.ИНН) Тогда + Объект.ВидПодписанта = Перечисления.ВидыПодписантовМобильногоСервиса.РуководительЮЛ; + Иначе + Объект.ВидПодписанта = Перечисления.ВидыПодписантовМобильногоСервиса.ИндивидуальныйПредприниматель; + КонецЕсли; + + ОбновлениеИнформационнойБазы.ЗаписатьДанные(Объект); + + ОбъектовОбработано = ОбъектовОбработано + 1; + ЗафиксироватьТранзакцию(); + Исключение + ОтменитьТранзакцию(); + ПроблемныхОбъектов = ПроблемныхОбъектов + 1; + ВызватьИсключение; + КонецПопытки; + + КонецЦикла; + + Параметры.ОбработкаЗавершена = ОбновлениеИнформационнойБазы.ОбработкаДанныхЗавершена(Параметры.Очередь, "Справочник.ПодписантыСервисаМобильнойПодписи"); + + Если ОбъектовОбработано = 0 И ПроблемныхОбъектов <> 0 Тогда + ТекстСообщения = СтроковыеФункцииКлиентСервер.ПодставитьПараметрыВСтроку( + НСтр("ru = 'Не удалось обработать некоторых подписантов сервиса мобильной подписи (пропущены): %1'"), + ПроблемныхОбъектов); + ВызватьИсключение ТекстСообщения; + Иначе + ЗаписьЖурналаРегистрации(ОбновлениеИнформационнойБазы.СобытиеЖурналаРегистрации(), + УровеньЖурналаРегистрации.Информация, Метаданные.Справочники.ПодписантыСервисаМобильнойПодписи,, + СтроковыеФункцииКлиентСервер.ПодставитьПараметрыВСтроку( + НСтр("ru = 'Обработана очередная порция подписантов сервиса мобильной подписи: %1'"), + ОбъектовОбработано)); + КонецЕсли; + +КонецПроцедуры + Функция АвтоНаименование(Объект) Экспорт Наименование = Новый Массив; @@ -74,8 +153,9 @@ Если ЗначениеЗаполнено(Объект.Должность) Тогда Наименование.Добавить(Объект.Должность); КонецЕсли; - - Наименование.Добавить("*" + Прав(Объект.НомерТелефона, 4)); + Если ЗначениеЗаполнено(Объект.НомерТелефона) Тогда + Наименование.Добавить("*" + Прав(Объект.НомерТелефона, 4)); + КонецЕсли; Наименование = Лев(СтрСоединить(Наименование, ", "), 150); Возврат Наименование; diff --git a/SSL/src/Catalogs/ПодписантыСервисаМобильнойПодписи/ObjectModule.bsl b/SSL/src/Catalogs/ПодписантыСервисаМобильнойПодписи/ObjectModule.bsl index db2630503..8510c30ff 100644 --- a/SSL/src/Catalogs/ПодписантыСервисаМобильнойПодписи/ObjectModule.bsl +++ b/SSL/src/Catalogs/ПодписантыСервисаМобильнойПодписи/ObjectModule.bsl @@ -1,5 +1,5 @@ /////////////////////////////////////////////////////////////////////////////////////////////////////// -// Copyright (c) 2024, ООО 1С-Софт +// Copyright (c) 2025, ООО 1С-Софт // Все права защищены. Эта программа и сопроводительные материалы предоставляются // в соответствии с условиями лицензии Attribution 4.0 International (CC BY 4.0) // Текст лицензии доступен по ссылке: diff --git a/SSL/src/Catalogs/ПодписантыСервисаМобильнойПодписи/ПодписантыСервисаМобильнойПодписи.mdo b/SSL/src/Catalogs/ПодписантыСервисаМобильнойПодписи/ПодписантыСервисаМобильнойПодписи.mdo index a9bba312f..ebd858825 100644 --- a/SSL/src/Catalogs/ПодписантыСервисаМобильнойПодписи/ПодписантыСервисаМобильнойПодписи.mdo +++ b/SSL/src/Catalogs/ПодписантыСервисаМобильнойПодписи/ПодписантыСервисаМобильнойПодписи.mdo @@ -10,7 +10,7 @@ ПодписантыСервисаМобильнойПодписи ru - Подписанты сервиса мобильной подписи + Подписанты true Catalog.ПодписантыСервисаМобильнойПодписи.StandardAttribute.Description @@ -96,8 +96,12 @@ Use ru - Подписант сервиса мобильной подписи + Подписант + + ru + Подписанты - лица, у которых установлено мобильное приложение Госключ или Моя подпись (ФНС), и которым могут быть отправлены документы для подписания в мобильном приложении. + 2 true 150 @@ -127,7 +131,6 @@ - ShowError Use @@ -175,6 +178,65 @@ Use Use + + СНИЛС + + ru + СНИЛС + + + String + + 14 + + + + ru + Страховой номер индивидуального лицевого счёта + + 999-999-999 99 + + + + Use + Use + + + ОГРН + + ru + ОГРН + + + String + + 15 + + + + + + Use + Use + + + НомерЗаписиОбАккредитации + + ru + Номер записи об аккредитации + + + String + + 11 + + + + + + Use + Use + Фамилия @@ -283,24 +345,6 @@ Use Use - - ОГРН - - ru - ОГРН - - - String - - 15 - - - - - - Use - Use - Организация @@ -366,13 +410,86 @@ ru - Пользователь, который добавил сертификат в справочник. + Пользователь, который добавил подписанта в справочник. Use + + МояПодпись + + ru + Моя подпись (ФНС) + + + Boolean + + + ru + Приложение «Моя подпись» позволяет получить сертификат усиленной квалифицированной электронной подписи в удостоверяющем центре ФНС России. + + + + + Use + Use + + + ГосключУНЭП + + ru + Госключ УНЭП + + + Boolean + + + ru + Чтобы подписывать документы с помощью усиленной неквалифицированной электронной подписи (УНЭП), нужно получить сертификат. Его можно бесплатно оформить в приложении «Госключ». Это могут сделать граждане РФ и иностранные граждане. + + + + + Use + Use + + + ГосключУКЭП + + ru + Госключ УКЭП + + + Boolean + + + ru + Чтобы подписывать документы с помощью усиленной квалифицированной электронной подписи (УКЭП), нужно получить сертификат в приложении «Госключ». Понадобится дополнительное подтверждение личности. + + + + + Use + Use + + + ВидПодписанта + + ru + Вид подписанта + + + EnumRef.ВидыПодписантовМобильногоСервиса + + + + ShowError + + Use + Use + @@ -426,6 +543,11 @@ ru Форма элемента + + + ru + + PersonalComputer MobileDevice @@ -435,6 +557,11 @@ ru Добавление подписанта + + + ru + + PersonalComputer MobileDevice @@ -461,4 +588,13 @@ PersonalComputer MobileDevice + + ПодписантыСервисаМобильнойПодписи + + ru + Подписанты + + FormCommandBarImportant + Auto + diff --git a/SSL/src/Catalogs/Пользователи/Commands/ПользователиИнформационнойБазы/CommandModule.bsl b/SSL/src/Catalogs/Пользователи/Commands/ПользователиИнформационнойБазы/CommandModule.bsl index 8a58c62e8..a27f549a9 100644 --- a/SSL/src/Catalogs/Пользователи/Commands/ПользователиИнформационнойБазы/CommandModule.bsl +++ b/SSL/src/Catalogs/Пользователи/Commands/ПользователиИнформационнойБазы/CommandModule.bsl @@ -1,5 +1,5 @@ /////////////////////////////////////////////////////////////////////////////////////////////////////// -// Copyright (c) 2024, ООО 1С-Софт +// Copyright (c) 2025, ООО 1С-Софт // Все права защищены. Эта программа и сопроводительные материалы предоставляются // в соответствии с условиями лицензии Attribution 4.0 International (CC BY 4.0) // Текст лицензии доступен по ссылке: diff --git a/SSL/src/Catalogs/Пользователи/Forms/ВводПароля/Module.bsl b/SSL/src/Catalogs/Пользователи/Forms/ВводПароля/Module.bsl index 3b5f51d73..a4c0029f0 100644 --- a/SSL/src/Catalogs/Пользователи/Forms/ВводПароля/Module.bsl +++ b/SSL/src/Catalogs/Пользователи/Forms/ВводПароля/Module.bsl @@ -1,5 +1,5 @@ /////////////////////////////////////////////////////////////////////////////////////////////////////// -// Copyright (c) 2024, ООО 1С-Софт +// Copyright (c) 2025, ООО 1С-Софт // Все права защищены. Эта программа и сопроводительные материалы предоставляются // в соответствии с условиями лицензии Attribution 4.0 International (CC BY 4.0) // Текст лицензии доступен по ссылке: diff --git a/SSL/src/Catalogs/Пользователи/Forms/ВыборПользователяОперационнойСистемы/Module.bsl b/SSL/src/Catalogs/Пользователи/Forms/ВыборПользователяОперационнойСистемы/Module.bsl index 6981cbfe9..8b9b24fdc 100644 --- a/SSL/src/Catalogs/Пользователи/Forms/ВыборПользователяОперационнойСистемы/Module.bsl +++ b/SSL/src/Catalogs/Пользователи/Forms/ВыборПользователяОперационнойСистемы/Module.bsl @@ -1,5 +1,5 @@ /////////////////////////////////////////////////////////////////////////////////////////////////////// -// Copyright (c) 2024, ООО 1С-Софт +// Copyright (c) 2025, ООО 1С-Софт // Все права защищены. Эта программа и сопроводительные материалы предоставляются // в соответствии с условиями лицензии Attribution 4.0 International (CC BY 4.0) // Текст лицензии доступен по ссылке: diff --git a/SSL/src/Catalogs/Пользователи/Forms/ОграничениеНаВходВПрограмму/Module.bsl b/SSL/src/Catalogs/Пользователи/Forms/ОграничениеНаВходВПрограмму/Module.bsl index 65758f6a8..4b81e2eac 100644 --- a/SSL/src/Catalogs/Пользователи/Forms/ОграничениеНаВходВПрограмму/Module.bsl +++ b/SSL/src/Catalogs/Пользователи/Forms/ОграничениеНаВходВПрограмму/Module.bsl @@ -1,5 +1,5 @@ /////////////////////////////////////////////////////////////////////////////////////////////////////// -// Copyright (c) 2024, ООО 1С-Софт +// Copyright (c) 2025, ООО 1С-Софт // Все права защищены. Эта программа и сопроводительные материалы предоставляются // в соответствии с условиями лицензии Attribution 4.0 International (CC BY 4.0) // Текст лицензии доступен по ссылке: diff --git a/SSL/src/Catalogs/Пользователи/Forms/ПользователиИнформационнойБазы/Module.bsl b/SSL/src/Catalogs/Пользователи/Forms/ПользователиИнформационнойБазы/Module.bsl index 133dff688..613a12cd2 100644 --- a/SSL/src/Catalogs/Пользователи/Forms/ПользователиИнформационнойБазы/Module.bsl +++ b/SSL/src/Catalogs/Пользователи/Forms/ПользователиИнформационнойБазы/Module.bsl @@ -1,5 +1,5 @@ /////////////////////////////////////////////////////////////////////////////////////////////////////// -// Copyright (c) 2024, ООО 1С-Софт +// Copyright (c) 2025, ООО 1С-Софт // Все права защищены. Эта программа и сопроводительные материалы предоставляются // в соответствии с условиями лицензии Attribution 4.0 International (CC BY 4.0) // Текст лицензии доступен по ссылке: diff --git a/SSL/src/Catalogs/Пользователи/Forms/СменаПочты/Module.bsl b/SSL/src/Catalogs/Пользователи/Forms/СменаПочты/Module.bsl index 2141dfbb1..94c9c3f34 100644 --- a/SSL/src/Catalogs/Пользователи/Forms/СменаПочты/Module.bsl +++ b/SSL/src/Catalogs/Пользователи/Forms/СменаПочты/Module.bsl @@ -1,5 +1,5 @@ /////////////////////////////////////////////////////////////////////////////////////////////////////// -// Copyright (c) 2024, ООО 1С-Софт +// Copyright (c) 2025, ООО 1С-Софт // Все права защищены. Эта программа и сопроводительные материалы предоставляются // в соответствии с условиями лицензии Attribution 4.0 International (CC BY 4.0) // Текст лицензии доступен по ссылке: diff --git a/SSL/src/Catalogs/Пользователи/Forms/ФормаСписка/Module.bsl b/SSL/src/Catalogs/Пользователи/Forms/ФормаСписка/Module.bsl index 7fc2ad9a1..110d5e3ff 100644 --- a/SSL/src/Catalogs/Пользователи/Forms/ФормаСписка/Module.bsl +++ b/SSL/src/Catalogs/Пользователи/Forms/ФормаСписка/Module.bsl @@ -1,5 +1,5 @@ /////////////////////////////////////////////////////////////////////////////////////////////////////// -// Copyright (c) 2024, ООО 1С-Софт +// Copyright (c) 2025, ООО 1С-Софт // Все права защищены. Эта программа и сопроводительные материалы предоставляются // в соответствии с условиями лицензии Attribution 4.0 International (CC BY 4.0) // Текст лицензии доступен по ссылке: diff --git a/SSL/src/Catalogs/Пользователи/Forms/ФормаЭлемента/Module.bsl b/SSL/src/Catalogs/Пользователи/Forms/ФормаЭлемента/Module.bsl index 49916d50d..01f065f54 100644 --- a/SSL/src/Catalogs/Пользователи/Forms/ФормаЭлемента/Module.bsl +++ b/SSL/src/Catalogs/Пользователи/Forms/ФормаЭлемента/Module.bsl @@ -1,5 +1,5 @@ /////////////////////////////////////////////////////////////////////////////////////////////////////// -// Copyright (c) 2024, ООО 1С-Софт +// Copyright (c) 2025, ООО 1С-Софт // Все права защищены. Эта программа и сопроводительные материалы предоставляются // в соответствии с условиями лицензии Attribution 4.0 International (CC BY 4.0) // Текст лицензии доступен по ссылке: diff --git a/SSL/src/Catalogs/Пользователи/ManagerModule.bsl b/SSL/src/Catalogs/Пользователи/ManagerModule.bsl index b94a65e40..4096d0dc3 100644 --- a/SSL/src/Catalogs/Пользователи/ManagerModule.bsl +++ b/SSL/src/Catalogs/Пользователи/ManagerModule.bsl @@ -1,5 +1,5 @@ /////////////////////////////////////////////////////////////////////////////////////////////////////// -// Copyright (c) 2024, ООО 1С-Софт +// Copyright (c) 2025, ООО 1С-Софт // Все права защищены. Эта программа и сопроводительные материалы предоставляются // в соответствии с условиями лицензии Attribution 4.0 International (CC BY 4.0) // Текст лицензии доступен по ссылке: diff --git a/SSL/src/Catalogs/Пользователи/ObjectModule.bsl b/SSL/src/Catalogs/Пользователи/ObjectModule.bsl index 1bb16cbec..dbbe4a884 100644 --- a/SSL/src/Catalogs/Пользователи/ObjectModule.bsl +++ b/SSL/src/Catalogs/Пользователи/ObjectModule.bsl @@ -1,5 +1,5 @@ /////////////////////////////////////////////////////////////////////////////////////////////////////// -// Copyright (c) 2024, ООО 1С-Софт +// Copyright (c) 2025, ООО 1С-Софт // Все права защищены. Эта программа и сопроводительные материалы предоставляются // в соответствии с условиями лицензии Attribution 4.0 International (CC BY 4.0) // Текст лицензии доступен по ссылке: diff --git a/SSL/src/Catalogs/ПользовательскиеНастройкиОтчетов/ManagerModule.bsl b/SSL/src/Catalogs/ПользовательскиеНастройкиОтчетов/ManagerModule.bsl index 0bd6e9d0d..9deaaa8f1 100644 --- a/SSL/src/Catalogs/ПользовательскиеНастройкиОтчетов/ManagerModule.bsl +++ b/SSL/src/Catalogs/ПользовательскиеНастройкиОтчетов/ManagerModule.bsl @@ -1,5 +1,5 @@ /////////////////////////////////////////////////////////////////////////////////////////////////////// -// Copyright (c) 2024, ООО 1С-Софт +// Copyright (c) 2025, ООО 1С-Софт // Все права защищены. Эта программа и сопроводительные материалы предоставляются // в соответствии с условиями лицензии Attribution 4.0 International (CC BY 4.0) // Текст лицензии доступен по ссылке: diff --git a/SSL/src/Catalogs/ПравилаОбработкиЭлектроннойПочты/Forms/ПрименениеПравил/Module.bsl b/SSL/src/Catalogs/ПравилаОбработкиЭлектроннойПочты/Forms/ПрименениеПравил/Module.bsl index 57951f3d1..6e612320d 100644 --- a/SSL/src/Catalogs/ПравилаОбработкиЭлектроннойПочты/Forms/ПрименениеПравил/Module.bsl +++ b/SSL/src/Catalogs/ПравилаОбработкиЭлектроннойПочты/Forms/ПрименениеПравил/Module.bsl @@ -1,5 +1,5 @@ /////////////////////////////////////////////////////////////////////////////////////////////////////// -// Copyright (c) 2024, ООО 1С-Софт +// Copyright (c) 2025, ООО 1С-Софт // Все права защищены. Эта программа и сопроводительные материалы предоставляются // в соответствии с условиями лицензии Attribution 4.0 International (CC BY 4.0) // Текст лицензии доступен по ссылке: diff --git a/SSL/src/Catalogs/ПравилаОбработкиЭлектроннойПочты/Forms/ФормаСписка/Module.bsl b/SSL/src/Catalogs/ПравилаОбработкиЭлектроннойПочты/Forms/ФормаСписка/Module.bsl index d63a57d59..7d851f940 100644 --- a/SSL/src/Catalogs/ПравилаОбработкиЭлектроннойПочты/Forms/ФормаСписка/Module.bsl +++ b/SSL/src/Catalogs/ПравилаОбработкиЭлектроннойПочты/Forms/ФормаСписка/Module.bsl @@ -1,5 +1,5 @@ /////////////////////////////////////////////////////////////////////////////////////////////////////// -// Copyright (c) 2024, ООО 1С-Софт +// Copyright (c) 2025, ООО 1С-Софт // Все права защищены. Эта программа и сопроводительные материалы предоставляются // в соответствии с условиями лицензии Attribution 4.0 International (CC BY 4.0) // Текст лицензии доступен по ссылке: diff --git a/SSL/src/Catalogs/ПравилаОбработкиЭлектроннойПочты/Forms/ФормаЭлемента/Module.bsl b/SSL/src/Catalogs/ПравилаОбработкиЭлектроннойПочты/Forms/ФормаЭлемента/Module.bsl index 67b202e6d..ba2ff2fe8 100644 --- a/SSL/src/Catalogs/ПравилаОбработкиЭлектроннойПочты/Forms/ФормаЭлемента/Module.bsl +++ b/SSL/src/Catalogs/ПравилаОбработкиЭлектроннойПочты/Forms/ФормаЭлемента/Module.bsl @@ -1,5 +1,5 @@ /////////////////////////////////////////////////////////////////////////////////////////////////////// -// Copyright (c) 2024, ООО 1С-Софт +// Copyright (c) 2025, ООО 1С-Софт // Все права защищены. Эта программа и сопроводительные материалы предоставляются // в соответствии с условиями лицензии Attribution 4.0 International (CC BY 4.0) // Текст лицензии доступен по ссылке: diff --git a/SSL/src/Catalogs/ПравилаОбработкиЭлектроннойПочты/ManagerModule.bsl b/SSL/src/Catalogs/ПравилаОбработкиЭлектроннойПочты/ManagerModule.bsl index 2366a42da..d6227d7bd 100644 --- a/SSL/src/Catalogs/ПравилаОбработкиЭлектроннойПочты/ManagerModule.bsl +++ b/SSL/src/Catalogs/ПравилаОбработкиЭлектроннойПочты/ManagerModule.bsl @@ -1,5 +1,5 @@ /////////////////////////////////////////////////////////////////////////////////////////////////////// -// Copyright (c) 2024, ООО 1С-Софт +// Copyright (c) 2025, ООО 1С-Софт // Все права защищены. Эта программа и сопроводительные материалы предоставляются // в соответствии с условиями лицензии Attribution 4.0 International (CC BY 4.0) // Текст лицензии доступен по ссылке: diff --git a/SSL/src/Catalogs/ПравилаОбработкиЭлектроннойПочты/ObjectModule.bsl b/SSL/src/Catalogs/ПравилаОбработкиЭлектроннойПочты/ObjectModule.bsl index ea93cfac4..14210cd08 100644 --- a/SSL/src/Catalogs/ПравилаОбработкиЭлектроннойПочты/ObjectModule.bsl +++ b/SSL/src/Catalogs/ПравилаОбработкиЭлектроннойПочты/ObjectModule.bsl @@ -1,5 +1,5 @@ /////////////////////////////////////////////////////////////////////////////////////////////////////// -// Copyright (c) 2024, ООО 1С-Софт +// Copyright (c) 2025, ООО 1С-Софт // Все права защищены. Эта программа и сопроводительные материалы предоставляются // в соответствии с условиями лицензии Attribution 4.0 International (CC BY 4.0) // Текст лицензии доступен по ссылке: diff --git a/SSL/src/Catalogs/ПравилаПроверкиУчета/Forms/ФормаСписка/Module.bsl b/SSL/src/Catalogs/ПравилаПроверкиУчета/Forms/ФормаСписка/Module.bsl index 4ab5bf9b9..5c9454851 100644 --- a/SSL/src/Catalogs/ПравилаПроверкиУчета/Forms/ФормаСписка/Module.bsl +++ b/SSL/src/Catalogs/ПравилаПроверкиУчета/Forms/ФормаСписка/Module.bsl @@ -1,5 +1,5 @@ /////////////////////////////////////////////////////////////////////////////////////////////////////// -// Copyright (c) 2024, ООО 1С-Софт +// Copyright (c) 2025, ООО 1С-Софт // Все права защищены. Эта программа и сопроводительные материалы предоставляются // в соответствии с условиями лицензии Attribution 4.0 International (CC BY 4.0) // Текст лицензии доступен по ссылке: diff --git a/SSL/src/Catalogs/ПравилаПроверкиУчета/Forms/ФормаЭлемента/Module.bsl b/SSL/src/Catalogs/ПравилаПроверкиУчета/Forms/ФормаЭлемента/Module.bsl index 3a22c7a3d..48fa0d5ed 100644 --- a/SSL/src/Catalogs/ПравилаПроверкиУчета/Forms/ФормаЭлемента/Module.bsl +++ b/SSL/src/Catalogs/ПравилаПроверкиУчета/Forms/ФормаЭлемента/Module.bsl @@ -1,5 +1,5 @@ /////////////////////////////////////////////////////////////////////////////////////////////////////// -// Copyright (c) 2024, ООО 1С-Софт +// Copyright (c) 2025, ООО 1С-Софт // Все права защищены. Эта программа и сопроводительные материалы предоставляются // в соответствии с условиями лицензии Attribution 4.0 International (CC BY 4.0) // Текст лицензии доступен по ссылке: diff --git a/SSL/src/Catalogs/ПравилаПроверкиУчета/ManagerModule.bsl b/SSL/src/Catalogs/ПравилаПроверкиУчета/ManagerModule.bsl index 04bba4d6b..753f93ca7 100644 --- a/SSL/src/Catalogs/ПравилаПроверкиУчета/ManagerModule.bsl +++ b/SSL/src/Catalogs/ПравилаПроверкиУчета/ManagerModule.bsl @@ -1,5 +1,5 @@ /////////////////////////////////////////////////////////////////////////////////////////////////////// -// Copyright (c) 2024, ООО 1С-Софт +// Copyright (c) 2025, ООО 1С-Софт // Все права защищены. Эта программа и сопроводительные материалы предоставляются // в соответствии с условиями лицензии Attribution 4.0 International (CC BY 4.0) // Текст лицензии доступен по ссылке: diff --git a/SSL/src/Catalogs/ПравилаПроверкиУчета/ObjectModule.bsl b/SSL/src/Catalogs/ПравилаПроверкиУчета/ObjectModule.bsl index 1465eca13..e53222161 100644 --- a/SSL/src/Catalogs/ПравилаПроверкиУчета/ObjectModule.bsl +++ b/SSL/src/Catalogs/ПравилаПроверкиУчета/ObjectModule.bsl @@ -1,5 +1,5 @@ /////////////////////////////////////////////////////////////////////////////////////////////////////// -// Copyright (c) 2024, ООО 1С-Софт +// Copyright (c) 2025, ООО 1С-Софт // Все права защищены. Эта программа и сопроводительные материалы предоставляются // в соответствии с условиями лицензии Attribution 4.0 International (CC BY 4.0) // Текст лицензии доступен по ссылке: diff --git a/SSL/src/Catalogs/ПредопределенныеВариантыОтчетов/ManagerModule.bsl b/SSL/src/Catalogs/ПредопределенныеВариантыОтчетов/ManagerModule.bsl index dd0ba1514..56f0f9d7d 100644 --- a/SSL/src/Catalogs/ПредопределенныеВариантыОтчетов/ManagerModule.bsl +++ b/SSL/src/Catalogs/ПредопределенныеВариантыОтчетов/ManagerModule.bsl @@ -1,5 +1,5 @@ /////////////////////////////////////////////////////////////////////////////////////////////////////// -// Copyright (c) 2024, ООО 1С-Софт +// Copyright (c) 2025, ООО 1С-Софт // Все права защищены. Эта программа и сопроводительные материалы предоставляются // в соответствии с условиями лицензии Attribution 4.0 International (CC BY 4.0) // Текст лицензии доступен по ссылке: diff --git a/SSL/src/Catalogs/ПредопределенныеВариантыОтчетов/ObjectModule.bsl b/SSL/src/Catalogs/ПредопределенныеВариантыОтчетов/ObjectModule.bsl index 81b526702..d6620e015 100644 --- a/SSL/src/Catalogs/ПредопределенныеВариантыОтчетов/ObjectModule.bsl +++ b/SSL/src/Catalogs/ПредопределенныеВариантыОтчетов/ObjectModule.bsl @@ -1,5 +1,5 @@ /////////////////////////////////////////////////////////////////////////////////////////////////////// -// Copyright (c) 2024, ООО 1С-Софт +// Copyright (c) 2025, ООО 1С-Софт // Все права защищены. Эта программа и сопроводительные материалы предоставляются // в соответствии с условиями лицензии Attribution 4.0 International (CC BY 4.0) // Текст лицензии доступен по ссылке: diff --git a/SSL/src/Catalogs/ПредопределенныеВариантыОтчетовРасширений/ManagerModule.bsl b/SSL/src/Catalogs/ПредопределенныеВариантыОтчетовРасширений/ManagerModule.bsl index dd0ba1514..56f0f9d7d 100644 --- a/SSL/src/Catalogs/ПредопределенныеВариантыОтчетовРасширений/ManagerModule.bsl +++ b/SSL/src/Catalogs/ПредопределенныеВариантыОтчетовРасширений/ManagerModule.bsl @@ -1,5 +1,5 @@ /////////////////////////////////////////////////////////////////////////////////////////////////////// -// Copyright (c) 2024, ООО 1С-Софт +// Copyright (c) 2025, ООО 1С-Софт // Все права защищены. Эта программа и сопроводительные материалы предоставляются // в соответствии с условиями лицензии Attribution 4.0 International (CC BY 4.0) // Текст лицензии доступен по ссылке: diff --git a/SSL/src/Catalogs/ПредопределенныеВариантыОтчетовРасширений/ObjectModule.bsl b/SSL/src/Catalogs/ПредопределенныеВариантыОтчетовРасширений/ObjectModule.bsl index 730efc3e3..69d845f02 100644 --- a/SSL/src/Catalogs/ПредопределенныеВариантыОтчетовРасширений/ObjectModule.bsl +++ b/SSL/src/Catalogs/ПредопределенныеВариантыОтчетовРасширений/ObjectModule.bsl @@ -1,5 +1,5 @@ /////////////////////////////////////////////////////////////////////////////////////////////////////// -// Copyright (c) 2024, ООО 1С-Софт +// Copyright (c) 2025, ООО 1С-Софт // Все права защищены. Эта программа и сопроводительные материалы предоставляются // в соответствии с условиями лицензии Attribution 4.0 International (CC BY 4.0) // Текст лицензии доступен по ссылке: diff --git a/SSL/src/Catalogs/ПрограммыЭлектроннойПодписиИШифрования/Forms/ОшибкаОбращенияКПрограмме/Module.bsl b/SSL/src/Catalogs/ПрограммыЭлектроннойПодписиИШифрования/Forms/ОшибкаОбращенияКПрограмме/Module.bsl index ccd5cdddb..4dd5bddbc 100644 --- a/SSL/src/Catalogs/ПрограммыЭлектроннойПодписиИШифрования/Forms/ОшибкаОбращенияКПрограмме/Module.bsl +++ b/SSL/src/Catalogs/ПрограммыЭлектроннойПодписиИШифрования/Forms/ОшибкаОбращенияКПрограмме/Module.bsl @@ -1,5 +1,5 @@ /////////////////////////////////////////////////////////////////////////////////////////////////////// -// Copyright (c) 2024, ООО 1С-Софт +// Copyright (c) 2025, ООО 1С-Софт // Все права защищены. Эта программа и сопроводительные материалы предоставляются // в соответствии с условиями лицензии Attribution 4.0 International (CC BY 4.0) // Текст лицензии доступен по ссылке: diff --git a/SSL/src/Catalogs/ПрограммыЭлектроннойПодписиИШифрования/Forms/ПриложениеОпределенноеАвтоматически/Module.bsl b/SSL/src/Catalogs/ПрограммыЭлектроннойПодписиИШифрования/Forms/ПриложениеОпределенноеАвтоматически/Module.bsl index b0decc4b7..5ce81e83d 100644 --- a/SSL/src/Catalogs/ПрограммыЭлектроннойПодписиИШифрования/Forms/ПриложениеОпределенноеАвтоматически/Module.bsl +++ b/SSL/src/Catalogs/ПрограммыЭлектроннойПодписиИШифрования/Forms/ПриложениеОпределенноеАвтоматически/Module.bsl @@ -1,5 +1,5 @@ /////////////////////////////////////////////////////////////////////////////////////////////////////// -// Copyright (c) 2024, ООО 1С-Софт +// Copyright (c) 2025, ООО 1С-Софт // Все права защищены. Эта программа и сопроводительные материалы предоставляются // в соответствии с условиями лицензии Attribution 4.0 International (CC BY 4.0) // Текст лицензии доступен по ссылке: diff --git a/SSL/src/Catalogs/ПрограммыЭлектроннойПодписиИШифрования/Forms/Токен/Module.bsl b/SSL/src/Catalogs/ПрограммыЭлектроннойПодписиИШифрования/Forms/Токен/Module.bsl index b973e6242..95dd6b0f1 100644 --- a/SSL/src/Catalogs/ПрограммыЭлектроннойПодписиИШифрования/Forms/Токен/Module.bsl +++ b/SSL/src/Catalogs/ПрограммыЭлектроннойПодписиИШифрования/Forms/Токен/Module.bsl @@ -1,5 +1,5 @@ /////////////////////////////////////////////////////////////////////////////////////////////////////// -// Copyright (c) 2024, ООО 1С-Софт +// Copyright (c) 2025, ООО 1С-Софт // Все права защищены. Эта программа и сопроводительные материалы предоставляются // в соответствии с условиями лицензии Attribution 4.0 International (CC BY 4.0) // Текст лицензии доступен по ссылке: @@ -30,7 +30,7 @@ &НаКлиенте Процедура ПриОткрытии(Отказ) - ПодключитьОбработчикОжидания("ЗаполнитьСписокСертификатов", 0.1, Истина); + ПодключитьОбработчикОжидания("ЗаполнитьСписокСертификатовОбработчикОжидания", 0.1, Истина); КонецПроцедуры #КонецОбласти @@ -38,7 +38,14 @@ #Область СлужебныеПроцедурыИФункции &НаКлиенте -Асинх Процедура ЗаполнитьСписокСертификатов() +Процедура ЗаполнитьСписокСертификатовОбработчикОжидания() + ЗаполнитьСписокСертификатов(Ложь); +КонецПроцедуры + +&НаКлиенте +Процедура ЗаполнитьСписокСертификатов(Обновить) + + Сертификаты.Очистить(); Токен = Новый Структура; Токен.Вставить("Слот"); @@ -47,19 +54,20 @@ ЗаполнитьЗначенияСвойств(Токен, ЭтотОбъект); Элементы.ГруппаОбновлениеСертификатов.Видимость = Истина; - Результат = Ждать ЭлектроннаяПодписьКлиентЛокализация.СертификатыНаТокене(Токен, Неопределено, Истина); + ЭлектроннаяПодписьКлиентЛокализация.ПриПолученииСертификатовНаТокене(Новый ОписаниеОповещения("ПослеПолученияСертификатовНаТокене", ЭтотОбъект), + Токен, Истина, Неопределено, Обновить); - ТекстОшибки = ""; - Если Результат.ПроверкаВыполнена Тогда - Ошибки = Новый Массив; - ЗаполнитьСписокСертификатовНаСервере(Результат.Сертификаты, Ошибки); - Если Ошибки.Количество() > 0 Тогда - ТекстОшибки = СтрСоединить(Ошибки, Символы.ПС); - КонецЕсли; - Иначе - ТекстОшибки = Результат.Ошибка; +КонецПроцедуры + +&НаКлиенте +Процедура ПослеПолученияСертификатовНаТокене(МассивСертификатов, Контекст) Экспорт + + Ошибки = Новый Массив; + ЗаполнитьСписокСертификатовНаСервере(МассивСертификатов, Ошибки); + Если Ошибки.Количество() > 0 Тогда + ТекстОшибки = СтрСоединить(Ошибки, Символы.ПС); КонецЕсли; - + Если ЗначениеЗаполнено(ТекстОшибки) Тогда ПараметрыФормы = Новый Структура; ПараметрыФормы.Вставить("ЗаголовокПредупреждения", НСтр("ru = 'Не удалось прочитать сертификаты на токене'")); @@ -69,12 +77,12 @@ КонецЕсли; Элементы.ГруппаОбновлениеСертификатов.Видимость = Ложь; - + КонецПроцедуры &НаКлиенте Процедура Обновить(Команда) - ЗаполнитьСписокСертификатов() + ЗаполнитьСписокСертификатов(Истина); КонецПроцедуры &НаСервере @@ -82,19 +90,24 @@ Для Каждого Сертификат Из СертификатыСтрокой Цикл - Сертификат = СтрЗаменить(Сертификат, "-----BEGIN CERTIFICATE-----", ""); - Сертификат = СтрЗаменить(Сертификат, "-----END CERTIFICATE-----", ""); - Сертификат = СтрЗаменить(Сертификат, Символы.ПС, ""); - - Попытка - ДанныеСертификата = Base64Значение(Сертификат); - Исключение - Ошибки.Добавить(ОбработкаОшибок.КраткоеПредставлениеОшибки(ИнформацияОбОшибке())); - Продолжить; - КонецПопытки; - - Если ТипЗнч(ДанныеСертификата) <> Тип("ДвоичныеДанные") Тогда - Продолжить; + Если ТипЗнч(Сертификат) = Тип("Строка") Тогда + + Сертификат = СтрЗаменить(Сертификат, "-----BEGIN CERTIFICATE-----", ""); + Сертификат = СтрЗаменить(Сертификат, "-----END CERTIFICATE-----", ""); + Сертификат = СтрЗаменить(Сертификат, Символы.ПС, ""); + + Попытка + ДанныеСертификата = Base64Значение(Сертификат); + Исключение + Ошибки.Добавить(ОбработкаОшибок.КраткоеПредставлениеОшибки(ИнформацияОбОшибке())); + Продолжить; + КонецПопытки; + + Если ТипЗнч(ДанныеСертификата) <> Тип("ДвоичныеДанные") Тогда + Продолжить; + КонецЕсли; + Иначе + ДанныеСертификата = Сертификат; КонецЕсли; Попытка @@ -129,7 +142,6 @@ ЭлектроннаяПодписьКлиент.ОткрытьСертификат(СсылкаНаСертификат); КонецЕсли; - КонецПроцедуры &НаСервереБезКонтекста diff --git a/SSL/src/Catalogs/ПрограммыЭлектроннойПодписиИШифрования/Forms/ФормаЭлемента/Module.bsl b/SSL/src/Catalogs/ПрограммыЭлектроннойПодписиИШифрования/Forms/ФормаЭлемента/Module.bsl index 4f61ddfd7..c63bd7bfe 100644 --- a/SSL/src/Catalogs/ПрограммыЭлектроннойПодписиИШифрования/Forms/ФормаЭлемента/Module.bsl +++ b/SSL/src/Catalogs/ПрограммыЭлектроннойПодписиИШифрования/Forms/ФормаЭлемента/Module.bsl @@ -1,5 +1,5 @@ /////////////////////////////////////////////////////////////////////////////////////////////////////// -// Copyright (c) 2024, ООО 1С-Софт +// Copyright (c) 2025, ООО 1С-Софт // Все права защищены. Эта программа и сопроводительные материалы предоставляются // в соответствии с условиями лицензии Attribution 4.0 International (CC BY 4.0) // Текст лицензии доступен по ссылке: diff --git a/SSL/src/Catalogs/ПрограммыЭлектроннойПодписиИШифрования/ManagerModule.bsl b/SSL/src/Catalogs/ПрограммыЭлектроннойПодписиИШифрования/ManagerModule.bsl index 0ecb37ad7..55c6c20a5 100644 --- a/SSL/src/Catalogs/ПрограммыЭлектроннойПодписиИШифрования/ManagerModule.bsl +++ b/SSL/src/Catalogs/ПрограммыЭлектроннойПодписиИШифрования/ManagerModule.bsl @@ -1,5 +1,5 @@ /////////////////////////////////////////////////////////////////////////////////////////////////////// -// Copyright (c) 2024, ООО 1С-Софт +// Copyright (c) 2025, ООО 1С-Софт // Все права защищены. Эта программа и сопроводительные материалы предоставляются // в соответствии с условиями лицензии Attribution 4.0 International (CC BY 4.0) // Текст лицензии доступен по ссылке: diff --git a/SSL/src/Catalogs/ПрограммыЭлектроннойПодписиИШифрования/ObjectModule.bsl b/SSL/src/Catalogs/ПрограммыЭлектроннойПодписиИШифрования/ObjectModule.bsl index 212150e5c..b077694e5 100644 --- a/SSL/src/Catalogs/ПрограммыЭлектроннойПодписиИШифрования/ObjectModule.bsl +++ b/SSL/src/Catalogs/ПрограммыЭлектроннойПодписиИШифрования/ObjectModule.bsl @@ -1,5 +1,5 @@ /////////////////////////////////////////////////////////////////////////////////////////////////////// -// Copyright (c) 2024, ООО 1С-Софт +// Copyright (c) 2025, ООО 1С-Софт // Все права защищены. Эта программа и сопроводительные материалы предоставляются // в соответствии с условиями лицензии Attribution 4.0 International (CC BY 4.0) // Текст лицензии доступен по ссылке: diff --git a/SSL/src/Catalogs/ПроизводственныеКалендари/Forms/ФормаСписка/Module.bsl b/SSL/src/Catalogs/ПроизводственныеКалендари/Forms/ФормаСписка/Module.bsl index 38af17047..6f2f0232d 100644 --- a/SSL/src/Catalogs/ПроизводственныеКалендари/Forms/ФормаСписка/Module.bsl +++ b/SSL/src/Catalogs/ПроизводственныеКалендари/Forms/ФормаСписка/Module.bsl @@ -1,5 +1,5 @@ /////////////////////////////////////////////////////////////////////////////////////////////////////// -// Copyright (c) 2024, ООО 1С-Софт +// Copyright (c) 2025, ООО 1С-Софт // Все права защищены. Эта программа и сопроводительные материалы предоставляются // в соответствии с условиями лицензии Attribution 4.0 International (CC BY 4.0) // Текст лицензии доступен по ссылке: diff --git a/SSL/src/Catalogs/ПроизводственныеКалендари/Forms/ФормаЭлемента/Module.bsl b/SSL/src/Catalogs/ПроизводственныеКалендари/Forms/ФормаЭлемента/Module.bsl index cdad6b98a..b141f6947 100644 --- a/SSL/src/Catalogs/ПроизводственныеКалендари/Forms/ФормаЭлемента/Module.bsl +++ b/SSL/src/Catalogs/ПроизводственныеКалендари/Forms/ФормаЭлемента/Module.bsl @@ -1,5 +1,5 @@ /////////////////////////////////////////////////////////////////////////////////////////////////////// -// Copyright (c) 2024, ООО 1С-Софт +// Copyright (c) 2025, ООО 1С-Софт // Все права защищены. Эта программа и сопроводительные материалы предоставляются // в соответствии с условиями лицензии Attribution 4.0 International (CC BY 4.0) // Текст лицензии доступен по ссылке: diff --git a/SSL/src/Catalogs/ПроизводственныеКалендари/ManagerModule.bsl b/SSL/src/Catalogs/ПроизводственныеКалендари/ManagerModule.bsl index 595fc0951..24e137cee 100644 --- a/SSL/src/Catalogs/ПроизводственныеКалендари/ManagerModule.bsl +++ b/SSL/src/Catalogs/ПроизводственныеКалендари/ManagerModule.bsl @@ -1,5 +1,5 @@ /////////////////////////////////////////////////////////////////////////////////////////////////////// -// Copyright (c) 2024, ООО 1С-Софт +// Copyright (c) 2025, ООО 1С-Софт // Все права защищены. Эта программа и сопроводительные материалы предоставляются // в соответствии с условиями лицензии Attribution 4.0 International (CC BY 4.0) // Текст лицензии доступен по ссылке: diff --git a/SSL/src/Catalogs/ПроизводственныеКалендари/ObjectModule.bsl b/SSL/src/Catalogs/ПроизводственныеКалендари/ObjectModule.bsl index db87989ba..2d9b8cb4e 100644 --- a/SSL/src/Catalogs/ПроизводственныеКалендари/ObjectModule.bsl +++ b/SSL/src/Catalogs/ПроизводственныеКалендари/ObjectModule.bsl @@ -1,5 +1,5 @@ /////////////////////////////////////////////////////////////////////////////////////////////////////// -// Copyright (c) 2024, ООО 1С-Софт +// Copyright (c) 2025, ООО 1С-Софт // Все права защищены. Эта программа и сопроводительные материалы предоставляются // в соответствии с условиями лицензии Attribution 4.0 International (CC BY 4.0) // Текст лицензии доступен по ссылке: diff --git a/SSL/src/Catalogs/ПрофилиГруппДоступа/Commands/ГруппыДоступа/CommandModule.bsl b/SSL/src/Catalogs/ПрофилиГруппДоступа/Commands/ГруппыДоступа/CommandModule.bsl index 9a6438497..308dd564b 100644 --- a/SSL/src/Catalogs/ПрофилиГруппДоступа/Commands/ГруппыДоступа/CommandModule.bsl +++ b/SSL/src/Catalogs/ПрофилиГруппДоступа/Commands/ГруппыДоступа/CommandModule.bsl @@ -1,5 +1,5 @@ /////////////////////////////////////////////////////////////////////////////////////////////////////// -// Copyright (c) 2024, ООО 1С-Софт +// Copyright (c) 2025, ООО 1С-Софт // Все права защищены. Эта программа и сопроводительные материалы предоставляются // в соответствии с условиями лицензии Attribution 4.0 International (CC BY 4.0) // Текст лицензии доступен по ссылке: diff --git a/SSL/src/Catalogs/ПрофилиГруппДоступа/Forms/ФормаВыбораГруппы/Module.bsl b/SSL/src/Catalogs/ПрофилиГруппДоступа/Forms/ФормаВыбораГруппы/Module.bsl index 828c3a1c6..9c9cf207a 100644 --- a/SSL/src/Catalogs/ПрофилиГруппДоступа/Forms/ФормаВыбораГруппы/Module.bsl +++ b/SSL/src/Catalogs/ПрофилиГруппДоступа/Forms/ФормаВыбораГруппы/Module.bsl @@ -1,5 +1,5 @@ /////////////////////////////////////////////////////////////////////////////////////////////////////// -// Copyright (c) 2024, ООО 1С-Софт +// Copyright (c) 2025, ООО 1С-Софт // Все права защищены. Эта программа и сопроводительные материалы предоставляются // в соответствии с условиями лицензии Attribution 4.0 International (CC BY 4.0) // Текст лицензии доступен по ссылке: diff --git a/SSL/src/Catalogs/ПрофилиГруппДоступа/Forms/ФормаГруппы/Module.bsl b/SSL/src/Catalogs/ПрофилиГруппДоступа/Forms/ФормаГруппы/Module.bsl index 48cf23821..75aa80a6c 100644 --- a/SSL/src/Catalogs/ПрофилиГруппДоступа/Forms/ФормаГруппы/Module.bsl +++ b/SSL/src/Catalogs/ПрофилиГруппДоступа/Forms/ФормаГруппы/Module.bsl @@ -1,5 +1,5 @@ /////////////////////////////////////////////////////////////////////////////////////////////////////// -// Copyright (c) 2024, ООО 1С-Софт +// Copyright (c) 2025, ООО 1С-Софт // Все права защищены. Эта программа и сопроводительные материалы предоставляются // в соответствии с условиями лицензии Attribution 4.0 International (CC BY 4.0) // Текст лицензии доступен по ссылке: diff --git a/SSL/src/Catalogs/ПрофилиГруппДоступа/Forms/ФормаСписка/Module.bsl b/SSL/src/Catalogs/ПрофилиГруппДоступа/Forms/ФормаСписка/Module.bsl index c59115f1e..6e2e6e69b 100644 --- a/SSL/src/Catalogs/ПрофилиГруппДоступа/Forms/ФормаСписка/Module.bsl +++ b/SSL/src/Catalogs/ПрофилиГруппДоступа/Forms/ФормаСписка/Module.bsl @@ -1,5 +1,5 @@ /////////////////////////////////////////////////////////////////////////////////////////////////////// -// Copyright (c) 2024, ООО 1С-Софт +// Copyright (c) 2025, ООО 1С-Софт // Все права защищены. Эта программа и сопроводительные материалы предоставляются // в соответствии с условиями лицензии Attribution 4.0 International (CC BY 4.0) // Текст лицензии доступен по ссылке: diff --git a/SSL/src/Catalogs/ПрофилиГруппДоступа/Forms/ФормаЭлемента/Module.bsl b/SSL/src/Catalogs/ПрофилиГруппДоступа/Forms/ФормаЭлемента/Module.bsl index 088e76f73..d4dca4778 100644 --- a/SSL/src/Catalogs/ПрофилиГруппДоступа/Forms/ФормаЭлемента/Module.bsl +++ b/SSL/src/Catalogs/ПрофилиГруппДоступа/Forms/ФормаЭлемента/Module.bsl @@ -1,5 +1,5 @@ /////////////////////////////////////////////////////////////////////////////////////////////////////// -// Copyright (c) 2024, ООО 1С-Софт +// Copyright (c) 2025, ООО 1С-Софт // Все права защищены. Эта программа и сопроводительные материалы предоставляются // в соответствии с условиями лицензии Attribution 4.0 International (CC BY 4.0) // Текст лицензии доступен по ссылке: diff --git a/SSL/src/Catalogs/ПрофилиГруппДоступа/ManagerModule.bsl b/SSL/src/Catalogs/ПрофилиГруппДоступа/ManagerModule.bsl index 7de5c76c8..cfdc356a1 100644 --- a/SSL/src/Catalogs/ПрофилиГруппДоступа/ManagerModule.bsl +++ b/SSL/src/Catalogs/ПрофилиГруппДоступа/ManagerModule.bsl @@ -1,5 +1,5 @@ /////////////////////////////////////////////////////////////////////////////////////////////////////// -// Copyright (c) 2024, ООО 1С-Софт +// Copyright (c) 2025, ООО 1С-Софт // Все права защищены. Эта программа и сопроводительные материалы предоставляются // в соответствии с условиями лицензии Attribution 4.0 International (CC BY 4.0) // Текст лицензии доступен по ссылке: @@ -2292,6 +2292,10 @@ ПодготовитьВидыДоступаПоставляемогоПрофиля(СвойстваПрофиля, ОписаниеПрофиля, НазначениеПрофиля, СвойстваВидовДоступа, ЗаголовокОшибки); ПодготовитьЗначенияДоступаПоставляемогоПрофиля(СвойстваПрофиля, ОписаниеПрофиля, СвойстваВидовДоступа, ЗаголовокОшибки); + Если УправлениеДоступомСлужебный.ОтключеноОграничениеНаУровнеЗаписей() Тогда + СвойстваПрофиля.ВидыДоступа = Новый ФиксированноеСоответствие(Новый Соответствие); + СвойстваПрофиля.ЗначенияДоступа = Новый ФиксированныйМассив(Новый Массив); + КонецЕсли; КонецЦикла; Для Каждого ОписаниеПрофиля Из ОписанияПрофилей Цикл @@ -2601,6 +2605,7 @@ КонецЕсли; ВидыДоступа.Вставить(ИмяВидаДоступа, УточнениеВидаДоступа); КонецЦикла; + СвойстваПрофиля.Вставить("ВидыДоступа", Новый ФиксированноеСоответствие(ВидыДоступа)); КонецПроцедуры diff --git a/SSL/src/Catalogs/ПрофилиГруппДоступа/ObjectModule.bsl b/SSL/src/Catalogs/ПрофилиГруппДоступа/ObjectModule.bsl index 7d7e0df88..05459aa01 100644 --- a/SSL/src/Catalogs/ПрофилиГруппДоступа/ObjectModule.bsl +++ b/SSL/src/Catalogs/ПрофилиГруппДоступа/ObjectModule.bsl @@ -1,5 +1,5 @@ /////////////////////////////////////////////////////////////////////////////////////////////////////// -// Copyright (c) 2024, ООО 1С-Софт +// Copyright (c) 2025, ООО 1С-Софт // Все права защищены. Эта программа и сопроводительные материалы предоставляются // в соответствии с условиями лицензии Attribution 4.0 International (CC BY 4.0) // Текст лицензии доступен по ссылке: diff --git a/SSL/src/Catalogs/ПрофилиКлючевыхОпераций/Forms/ФормаЭлемента/Module.bsl b/SSL/src/Catalogs/ПрофилиКлючевыхОпераций/Forms/ФормаЭлемента/Module.bsl index 567877577..3702ac70d 100644 --- a/SSL/src/Catalogs/ПрофилиКлючевыхОпераций/Forms/ФормаЭлемента/Module.bsl +++ b/SSL/src/Catalogs/ПрофилиКлючевыхОпераций/Forms/ФормаЭлемента/Module.bsl @@ -1,5 +1,5 @@ /////////////////////////////////////////////////////////////////////////////////////////////////////// -// Copyright (c) 2024, ООО 1С-Софт +// Copyright (c) 2025, ООО 1С-Софт // Все права защищены. Эта программа и сопроводительные материалы предоставляются // в соответствии с условиями лицензии Attribution 4.0 International (CC BY 4.0) // Текст лицензии доступен по ссылке: diff --git a/SSL/src/Catalogs/РассылкиОтчетов/Commands/ВыполнитьСейчас/CommandModule.bsl b/SSL/src/Catalogs/РассылкиОтчетов/Commands/ВыполнитьСейчас/CommandModule.bsl index 65d9ddf23..937bd12a3 100644 --- a/SSL/src/Catalogs/РассылкиОтчетов/Commands/ВыполнитьСейчас/CommandModule.bsl +++ b/SSL/src/Catalogs/РассылкиОтчетов/Commands/ВыполнитьСейчас/CommandModule.bsl @@ -1,5 +1,5 @@ /////////////////////////////////////////////////////////////////////////////////////////////////////// -// Copyright (c) 2024, ООО 1С-Софт +// Copyright (c) 2025, ООО 1С-Софт // Все права защищены. Эта программа и сопроводительные материалы предоставляются // в соответствии с условиями лицензии Attribution 4.0 International (CC BY 4.0) // Текст лицензии доступен по ссылке: diff --git a/SSL/src/Catalogs/РассылкиОтчетов/Commands/СобытияРассылки/CommandModule.bsl b/SSL/src/Catalogs/РассылкиОтчетов/Commands/СобытияРассылки/CommandModule.bsl index 47ce26b77..3be528171 100644 --- a/SSL/src/Catalogs/РассылкиОтчетов/Commands/СобытияРассылки/CommandModule.bsl +++ b/SSL/src/Catalogs/РассылкиОтчетов/Commands/СобытияРассылки/CommandModule.bsl @@ -1,5 +1,5 @@ /////////////////////////////////////////////////////////////////////////////////////////////////////// -// Copyright (c) 2024, ООО 1С-Софт +// Copyright (c) 2025, ООО 1С-Софт // Все права защищены. Эта программа и сопроводительные материалы предоставляются // в соответствии с условиями лицензии Attribution 4.0 International (CC BY 4.0) // Текст лицензии доступен по ссылке: diff --git a/SSL/src/Catalogs/РассылкиОтчетов/Forms/SMSРассылкаПаролей/Module.bsl b/SSL/src/Catalogs/РассылкиОтчетов/Forms/SMSРассылкаПаролей/Module.bsl index 87011d889..a8afd4835 100644 --- a/SSL/src/Catalogs/РассылкиОтчетов/Forms/SMSРассылкаПаролей/Module.bsl +++ b/SSL/src/Catalogs/РассылкиОтчетов/Forms/SMSРассылкаПаролей/Module.bsl @@ -1,5 +1,5 @@ /////////////////////////////////////////////////////////////////////////////////////////////////////// -// Copyright (c) 2024, ООО 1С-Софт +// Copyright (c) 2025, ООО 1С-Софт // Все права защищены. Эта программа и сопроводительные материалы предоставляются // в соответствии с условиями лицензии Attribution 4.0 International (CC BY 4.0) // Текст лицензии доступен по ссылке: diff --git a/SSL/src/Catalogs/РассылкиОтчетов/Forms/ПараметрыFTP/Module.bsl b/SSL/src/Catalogs/РассылкиОтчетов/Forms/ПараметрыFTP/Module.bsl index 36ad05581..198f8c233 100644 --- a/SSL/src/Catalogs/РассылкиОтчетов/Forms/ПараметрыFTP/Module.bsl +++ b/SSL/src/Catalogs/РассылкиОтчетов/Forms/ПараметрыFTP/Module.bsl @@ -1,5 +1,5 @@ /////////////////////////////////////////////////////////////////////////////////////////////////////// -// Copyright (c) 2024, ООО 1С-Софт +// Copyright (c) 2025, ООО 1С-Софт // Все права защищены. Эта программа и сопроводительные материалы предоставляются // в соответствии с условиями лицензии Attribution 4.0 International (CC BY 4.0) // Текст лицензии доступен по ссылке: diff --git a/SSL/src/Catalogs/РассылкиОтчетов/Forms/ПаролиШифрование/Module.bsl b/SSL/src/Catalogs/РассылкиОтчетов/Forms/ПаролиШифрование/Module.bsl index b07050da3..49e80a663 100644 --- a/SSL/src/Catalogs/РассылкиОтчетов/Forms/ПаролиШифрование/Module.bsl +++ b/SSL/src/Catalogs/РассылкиОтчетов/Forms/ПаролиШифрование/Module.bsl @@ -1,5 +1,5 @@ /////////////////////////////////////////////////////////////////////////////////////////////////////// -// Copyright (c) 2024, ООО 1С-Софт +// Copyright (c) 2025, ООО 1С-Софт // Все права защищены. Эта программа и сопроводительные материалы предоставляются // в соответствии с условиями лицензии Attribution 4.0 International (CC BY 4.0) // Текст лицензии доступен по ссылке: diff --git a/SSL/src/Catalogs/РассылкиОтчетов/Forms/ПовторнаяРассылкаОтчетов/Module.bsl b/SSL/src/Catalogs/РассылкиОтчетов/Forms/ПовторнаяРассылкаОтчетов/Module.bsl index 6d4a03a93..eed335e59 100644 --- a/SSL/src/Catalogs/РассылкиОтчетов/Forms/ПовторнаяРассылкаОтчетов/Module.bsl +++ b/SSL/src/Catalogs/РассылкиОтчетов/Forms/ПовторнаяРассылкаОтчетов/Module.bsl @@ -1,5 +1,5 @@ /////////////////////////////////////////////////////////////////////////////////////////////////////// -// Copyright (c) 2024, ООО 1С-Софт +// Copyright (c) 2025, ООО 1С-Софт // Все права защищены. Эта программа и сопроводительные материалы предоставляются // в соответствии с условиями лицензии Attribution 4.0 International (CC BY 4.0) // Текст лицензии доступен по ссылке: diff --git a/SSL/src/Catalogs/РассылкиОтчетов/Forms/ПолучателиРассылки/Module.bsl b/SSL/src/Catalogs/РассылкиОтчетов/Forms/ПолучателиРассылки/Module.bsl index 9b61563f2..96f813ab9 100644 --- a/SSL/src/Catalogs/РассылкиОтчетов/Forms/ПолучателиРассылки/Module.bsl +++ b/SSL/src/Catalogs/РассылкиОтчетов/Forms/ПолучателиРассылки/Module.bsl @@ -1,5 +1,5 @@ /////////////////////////////////////////////////////////////////////////////////////////////////////// -// Copyright (c) 2024, ООО 1С-Софт +// Copyright (c) 2025, ООО 1С-Софт // Все права защищены. Эта программа и сопроводительные материалы предоставляются // в соответствии с условиями лицензии Attribution 4.0 International (CC BY 4.0) // Текст лицензии доступен по ссылке: diff --git a/SSL/src/Catalogs/РассылкиОтчетов/Forms/ПредварительныйПросмотрПисьма/Module.bsl b/SSL/src/Catalogs/РассылкиОтчетов/Forms/ПредварительныйПросмотрПисьма/Module.bsl index 1f63a9dbf..bf2484787 100644 --- a/SSL/src/Catalogs/РассылкиОтчетов/Forms/ПредварительныйПросмотрПисьма/Module.bsl +++ b/SSL/src/Catalogs/РассылкиОтчетов/Forms/ПредварительныйПросмотрПисьма/Module.bsl @@ -1,5 +1,5 @@ /////////////////////////////////////////////////////////////////////////////////////////////////////// -// Copyright (c) 2024, ООО 1С-Софт +// Copyright (c) 2025, ООО 1С-Софт // Все права защищены. Эта программа и сопроводительные материалы предоставляются // в соответствии с условиями лицензии Attribution 4.0 International (CC BY 4.0) // Текст лицензии доступен по ссылке: diff --git a/SSL/src/Catalogs/РассылкиОтчетов/Forms/Предупреждение/Module.bsl b/SSL/src/Catalogs/РассылкиОтчетов/Forms/Предупреждение/Module.bsl index 84a303eec..bb4296053 100644 --- a/SSL/src/Catalogs/РассылкиОтчетов/Forms/Предупреждение/Module.bsl +++ b/SSL/src/Catalogs/РассылкиОтчетов/Forms/Предупреждение/Module.bsl @@ -1,5 +1,5 @@ /////////////////////////////////////////////////////////////////////////////////////////////////////// -// Copyright (c) 2024, ООО 1С-Софт +// Copyright (c) 2025, ООО 1С-Софт // Все права защищены. Эта программа и сопроводительные материалы предоставляются // в соответствии с условиями лицензии Attribution 4.0 International (CC BY 4.0) // Текст лицензии доступен по ссылке: diff --git a/SSL/src/Catalogs/РассылкиОтчетов/Forms/ФормаВыбораГруппы/Module.bsl b/SSL/src/Catalogs/РассылкиОтчетов/Forms/ФормаВыбораГруппы/Module.bsl index 9fdeeb794..2004a40c2 100644 --- a/SSL/src/Catalogs/РассылкиОтчетов/Forms/ФормаВыбораГруппы/Module.bsl +++ b/SSL/src/Catalogs/РассылкиОтчетов/Forms/ФормаВыбораГруппы/Module.bsl @@ -1,5 +1,5 @@ /////////////////////////////////////////////////////////////////////////////////////////////////////// -// Copyright (c) 2024, ООО 1С-Софт +// Copyright (c) 2025, ООО 1С-Софт // Все права защищены. Эта программа и сопроводительные материалы предоставляются // в соответствии с условиями лицензии Attribution 4.0 International (CC BY 4.0) // Текст лицензии доступен по ссылке: diff --git a/SSL/src/Catalogs/РассылкиОтчетов/Forms/ФормаГруппы/Module.bsl b/SSL/src/Catalogs/РассылкиОтчетов/Forms/ФормаГруппы/Module.bsl index 0a0f583a3..16a978f65 100644 --- a/SSL/src/Catalogs/РассылкиОтчетов/Forms/ФормаГруппы/Module.bsl +++ b/SSL/src/Catalogs/РассылкиОтчетов/Forms/ФормаГруппы/Module.bsl @@ -1,5 +1,5 @@ /////////////////////////////////////////////////////////////////////////////////////////////////////// -// Copyright (c) 2024, ООО 1С-Софт +// Copyright (c) 2025, ООО 1С-Софт // Все права защищены. Эта программа и сопроводительные материалы предоставляются // в соответствии с условиями лицензии Attribution 4.0 International (CC BY 4.0) // Текст лицензии доступен по ссылке: diff --git a/SSL/src/Catalogs/РассылкиОтчетов/Forms/ФормаСписка/Module.bsl b/SSL/src/Catalogs/РассылкиОтчетов/Forms/ФормаСписка/Module.bsl index 5ce871327..96c290fd6 100644 --- a/SSL/src/Catalogs/РассылкиОтчетов/Forms/ФормаСписка/Module.bsl +++ b/SSL/src/Catalogs/РассылкиОтчетов/Forms/ФормаСписка/Module.bsl @@ -1,5 +1,5 @@ /////////////////////////////////////////////////////////////////////////////////////////////////////// -// Copyright (c) 2024, ООО 1С-Софт +// Copyright (c) 2025, ООО 1С-Софт // Все права защищены. Эта программа и сопроводительные материалы предоставляются // в соответствии с условиями лицензии Attribution 4.0 International (CC BY 4.0) // Текст лицензии доступен по ссылке: diff --git a/SSL/src/Catalogs/РассылкиОтчетов/Forms/ФормаЭлемента/Module.bsl b/SSL/src/Catalogs/РассылкиОтчетов/Forms/ФормаЭлемента/Module.bsl index a5e75f487..c525e1da3 100644 --- a/SSL/src/Catalogs/РассылкиОтчетов/Forms/ФормаЭлемента/Module.bsl +++ b/SSL/src/Catalogs/РассылкиОтчетов/Forms/ФормаЭлемента/Module.bsl @@ -1,5 +1,5 @@ /////////////////////////////////////////////////////////////////////////////////////////////////////// -// Copyright (c) 2024, ООО 1С-Софт +// Copyright (c) 2025, ООО 1С-Софт // Все права защищены. Эта программа и сопроводительные материалы предоставляются // в соответствии с условиями лицензии Attribution 4.0 International (CC BY 4.0) // Текст лицензии доступен по ссылке: diff --git a/SSL/src/Catalogs/РассылкиОтчетов/ManagerModule.bsl b/SSL/src/Catalogs/РассылкиОтчетов/ManagerModule.bsl index 812ad5537..f1036e4b1 100644 --- a/SSL/src/Catalogs/РассылкиОтчетов/ManagerModule.bsl +++ b/SSL/src/Catalogs/РассылкиОтчетов/ManagerModule.bsl @@ -1,5 +1,5 @@ /////////////////////////////////////////////////////////////////////////////////////////////////////// -// Copyright (c) 2024, ООО 1С-Софт +// Copyright (c) 2025, ООО 1С-Софт // Все права защищены. Эта программа и сопроводительные материалы предоставляются // в соответствии с условиями лицензии Attribution 4.0 International (CC BY 4.0) // Текст лицензии доступен по ссылке: diff --git a/SSL/src/Catalogs/РассылкиОтчетов/ObjectModule.bsl b/SSL/src/Catalogs/РассылкиОтчетов/ObjectModule.bsl index a5091705e..ca30a3306 100644 --- a/SSL/src/Catalogs/РассылкиОтчетов/ObjectModule.bsl +++ b/SSL/src/Catalogs/РассылкиОтчетов/ObjectModule.bsl @@ -1,5 +1,5 @@ /////////////////////////////////////////////////////////////////////////////////////////////////////// -// Copyright (c) 2024, ООО 1С-Софт +// Copyright (c) 2025, ООО 1С-Софт // Все права защищены. Эта программа и сопроводительные материалы предоставляются // в соответствии с условиями лицензии Attribution 4.0 International (CC BY 4.0) // Текст лицензии доступен по ссылке: diff --git a/SSL/src/Catalogs/РолиИсполнителей/Forms/ФормаВыбора/Module.bsl b/SSL/src/Catalogs/РолиИсполнителей/Forms/ФормаВыбора/Module.bsl index d3535059d..8bdbc736a 100644 --- a/SSL/src/Catalogs/РолиИсполнителей/Forms/ФормаВыбора/Module.bsl +++ b/SSL/src/Catalogs/РолиИсполнителей/Forms/ФормаВыбора/Module.bsl @@ -1,5 +1,5 @@ /////////////////////////////////////////////////////////////////////////////////////////////////////// -// Copyright (c) 2024, ООО 1С-Софт +// Copyright (c) 2025, ООО 1С-Софт // Все права защищены. Эта программа и сопроводительные материалы предоставляются // в соответствии с условиями лицензии Attribution 4.0 International (CC BY 4.0) // Текст лицензии доступен по ссылке: diff --git a/SSL/src/Catalogs/РолиИсполнителей/Forms/ФормаСписка/Module.bsl b/SSL/src/Catalogs/РолиИсполнителей/Forms/ФормаСписка/Module.bsl index a35dc8210..7ae9c4f45 100644 --- a/SSL/src/Catalogs/РолиИсполнителей/Forms/ФормаСписка/Module.bsl +++ b/SSL/src/Catalogs/РолиИсполнителей/Forms/ФормаСписка/Module.bsl @@ -1,5 +1,5 @@ /////////////////////////////////////////////////////////////////////////////////////////////////////// -// Copyright (c) 2024, ООО 1С-Софт +// Copyright (c) 2025, ООО 1С-Софт // Все права защищены. Эта программа и сопроводительные материалы предоставляются // в соответствии с условиями лицензии Attribution 4.0 International (CC BY 4.0) // Текст лицензии доступен по ссылке: diff --git a/SSL/src/Catalogs/РолиИсполнителей/Forms/ФормаЭлемента/Module.bsl b/SSL/src/Catalogs/РолиИсполнителей/Forms/ФормаЭлемента/Module.bsl index ffd511e6c..36dc83830 100644 --- a/SSL/src/Catalogs/РолиИсполнителей/Forms/ФормаЭлемента/Module.bsl +++ b/SSL/src/Catalogs/РолиИсполнителей/Forms/ФормаЭлемента/Module.bsl @@ -1,5 +1,5 @@ /////////////////////////////////////////////////////////////////////////////////////////////////////// -// Copyright (c) 2024, ООО 1С-Софт +// Copyright (c) 2025, ООО 1С-Софт // Все права защищены. Эта программа и сопроводительные материалы предоставляются // в соответствии с условиями лицензии Attribution 4.0 International (CC BY 4.0) // Текст лицензии доступен по ссылке: diff --git a/SSL/src/Catalogs/РолиИсполнителей/ManagerModule.bsl b/SSL/src/Catalogs/РолиИсполнителей/ManagerModule.bsl index 3ff9cf45f..8f3054438 100644 --- a/SSL/src/Catalogs/РолиИсполнителей/ManagerModule.bsl +++ b/SSL/src/Catalogs/РолиИсполнителей/ManagerModule.bsl @@ -1,5 +1,5 @@ /////////////////////////////////////////////////////////////////////////////////////////////////////// -// Copyright (c) 2024, ООО 1С-Софт +// Copyright (c) 2025, ООО 1С-Софт // Все права защищены. Эта программа и сопроводительные материалы предоставляются // в соответствии с условиями лицензии Attribution 4.0 International (CC BY 4.0) // Текст лицензии доступен по ссылке: diff --git a/SSL/src/Catalogs/РолиИсполнителей/ObjectModule.bsl b/SSL/src/Catalogs/РолиИсполнителей/ObjectModule.bsl index 0b9ef4561..8dd3c4653 100644 --- a/SSL/src/Catalogs/РолиИсполнителей/ObjectModule.bsl +++ b/SSL/src/Catalogs/РолиИсполнителей/ObjectModule.bsl @@ -1,5 +1,5 @@ /////////////////////////////////////////////////////////////////////////////////////////////////////// -// Copyright (c) 2024, ООО 1С-Софт +// Copyright (c) 2025, ООО 1С-Софт // Все права защищены. Эта программа и сопроводительные материалы предоставляются // в соответствии с условиями лицензии Attribution 4.0 International (CC BY 4.0) // Текст лицензии доступен по ссылке: diff --git a/SSL/src/Catalogs/СеансыОбменовДанными/Commands/СеансыОбменовДанными/CommandModule.bsl b/SSL/src/Catalogs/СеансыОбменовДанными/Commands/СеансыОбменовДанными/CommandModule.bsl index 8b65ccb21..783334be6 100644 --- a/SSL/src/Catalogs/СеансыОбменовДанными/Commands/СеансыОбменовДанными/CommandModule.bsl +++ b/SSL/src/Catalogs/СеансыОбменовДанными/Commands/СеансыОбменовДанными/CommandModule.bsl @@ -1,5 +1,5 @@ /////////////////////////////////////////////////////////////////////////////////////////////////////// -// Copyright (c) 2024, ООО 1С-Софт +// Copyright (c) 2025, ООО 1С-Софт // Все права защищены. Эта программа и сопроводительные материалы предоставляются // в соответствии с условиями лицензии Attribution 4.0 International (CC BY 4.0) // Текст лицензии доступен по ссылке: diff --git a/SSL/src/Catalogs/СеансыОбменовДанными/Forms/ФормаЭлемента/Module.bsl b/SSL/src/Catalogs/СеансыОбменовДанными/Forms/ФормаЭлемента/Module.bsl index 003d8d123..261989187 100644 --- a/SSL/src/Catalogs/СеансыОбменовДанными/Forms/ФормаЭлемента/Module.bsl +++ b/SSL/src/Catalogs/СеансыОбменовДанными/Forms/ФормаЭлемента/Module.bsl @@ -1,5 +1,5 @@ /////////////////////////////////////////////////////////////////////////////////////////////////////// -// Copyright (c) 2024, ООО 1С-Софт +// Copyright (c) 2025, ООО 1С-Софт // Все права защищены. Эта программа и сопроводительные материалы предоставляются // в соответствии с условиями лицензии Attribution 4.0 International (CC BY 4.0) // Текст лицензии доступен по ссылке: diff --git a/SSL/src/Catalogs/СеансыОбменовДанными/Help/ru.html b/SSL/src/Catalogs/СеансыОбменовДанными/Help/ru.html index b86b4cef6..0f61ef65b 100644 --- a/SSL/src/Catalogs/СеансыОбменовДанными/Help/ru.html +++ b/SSL/src/Catalogs/СеансыОбменовДанными/Help/ru.html @@ -1,4 +1,4 @@ - +

          Предназначен для фиксации информации о выполненной операции обмена (отправке или получении данных) через универсальный EnterpriseData.

          diff --git a/SSL/src/Catalogs/СертификатыКлючейЭлектроннойПодписиИШифрования/Forms/ВыборСертификатаДляПодписанияИлиРасшифровки/Form.form b/SSL/src/Catalogs/СертификатыКлючейЭлектроннойПодписиИШифрования/Forms/ВыборСертификатаДляПодписанияИлиРасшифровки/Form.form index 3deee8c95..4d44a1ade 100644 --- a/SSL/src/Catalogs/СертификатыКлючейЭлектроннойПодписиИШифрования/Forms/ВыборСертификатаДляПодписанияИлиРасшифровки/Form.form +++ b/SSL/src/Catalogs/СертификатыКлючейЭлектроннойПодписиИШифрования/Forms/ВыборСертификатаДляПодписанияИлиРасшифровки/Form.form @@ -1748,6 +1748,7 @@ ГруппаВводитьПарольВПрограммеЭлектроннойПодписи 856 + High СертификатВводитьПарольВПрограммеЭлектроннойПодписи 528 @@ -3122,6 +3123,20 @@ true + + ТекстПредупрежденияПриОткрытии + 35 + + String + + + + true + + + true + + Далее diff --git a/SSL/src/Catalogs/СертификатыКлючейЭлектроннойПодписиИШифрования/Forms/ВыборСертификатаДляПодписанияИлиРасшифровки/Module.bsl b/SSL/src/Catalogs/СертификатыКлючейЭлектроннойПодписиИШифрования/Forms/ВыборСертификатаДляПодписанияИлиРасшифровки/Module.bsl index 3932a542e..add41d71f 100644 --- a/SSL/src/Catalogs/СертификатыКлючейЭлектроннойПодписиИШифрования/Forms/ВыборСертификатаДляПодписанияИлиРасшифровки/Module.bsl +++ b/SSL/src/Catalogs/СертификатыКлючейЭлектроннойПодписиИШифрования/Forms/ВыборСертификатаДляПодписанияИлиРасшифровки/Module.bsl @@ -1,5 +1,5 @@ /////////////////////////////////////////////////////////////////////////////////////////////////////// -// Copyright (c) 2024, ООО 1С-Софт +// Copyright (c) 2025, ООО 1С-Софт // Все права защищены. Эта программа и сопроводительные материалы предоставляются // в соответствии с условиями лицензии Attribution 4.0 International (CC BY 4.0) // Текст лицензии доступен по ссылке: @@ -93,15 +93,30 @@ Иначе Заголовок = НСтр("ru = 'Добавление сертификата для подписания данных'"); КонецЕсли; + + ИспользуютсяСертификатыНаСервере = ЭлектроннаяПодпись.СоздаватьЭлектронныеПодписиНаСервере() + И ВыполнятьНаСервере <> Ложь Или ЕстьОблачнаяПодпись; - Если ЭлектроннаяПодпись.СоздаватьЭлектронныеПодписиНаСервере() И ВыполнятьНаСервере <> Ложь Или ЕстьОблачнаяПодпись Тогда - Если ВыполнятьНаСервере = Истина Тогда - Элементы.ГруппаСертификаты.Заголовок = НСтр("ru = 'Личные сертификаты на сервере'"); + Если ОбщегоНазначения.ЭтоМобильныйКлиент() Тогда + Если ИспользуютсяСертификатыНаСервере Тогда + Если ВыполнятьНаСервере = Истина Тогда + Элементы.ГруппаСертификаты.Заголовок = НСтр("ru = 'Личные сертификаты на сервере'"); + Иначе + Элементы.ГруппаСертификаты.Заголовок = НСтр("ru = 'Личные сертификаты на устройстве и сервере'"); + КонецЕсли; Иначе - Элементы.ГруппаСертификаты.Заголовок = НСтр("ru = 'Личные сертификаты на компьютере и сервере'"); + Элементы.ГруппаСертификаты.Заголовок = НСтр("ru = 'Личные сертификаты на устройстве'"); + КонецЕсли; + Иначе + Если ИспользуютсяСертификатыНаСервере Тогда + Если ВыполнятьНаСервере = Истина Тогда + Элементы.ГруппаСертификаты.Заголовок = НСтр("ru = 'Личные сертификаты на сервере'"); + Иначе + Элементы.ГруппаСертификаты.Заголовок = НСтр("ru = 'Личные сертификаты на компьютере и сервере'"); + КонецЕсли; КонецЕсли; КонецЕсли; - + АдресСертификата = Параметры.АдресСертификата; Если ЭтоАдресВременногоХранилища(АдресСертификата) Тогда Элементы.Назад.Видимость = Ложь; @@ -149,8 +164,19 @@ Если ВнутренниеДанные = Неопределено Тогда Отказ = Истина; + Возврат; КонецЕсли; + Если Сертификаты.Количество() = 0 + И Не Элементы.ГруппаСертификатыНедоступныНаКлиенте.Видимость + И Не Элементы.ГруппаСертификатыНедоступныНаСервере.Видимость + И Не Элементы.ГруппаАвторизацииОблачнойПодписи.Видимость Тогда + ТекстПредупрежденияПриОткрытии = ?(ДобавлениеВСписок, + НСтр("ru = 'Нет доступных сертификатов для добавления. Возможно, отсутствуют права на добавление сертификатов, обратитесь к администратору.'"), + НСтр("ru = 'Нет доступных сертификатов для выбора. Возможно, отсутствуют права на добавление сертификатов, обратитесь к администратору.'")); + Отказ = Истина; + КонецЕсли; + КонецПроцедуры &НаКлиенте @@ -799,6 +825,7 @@ ДополнительныеПараметры = Новый Структура; ДополнительныеПараметры.Вставить("ОтборПоОрганизации", ОтборПоОрганизации); ДополнительныеПараметры.Вставить("ВыполнятьНаСервере", ВыполнятьНаСервере); + ДополнительныеПараметры.Вставить("ДоступныТолькоСКлючом", Не ПоказыватьВсе); ЭлектроннаяПодписьСлужебный.ОбновитьСписокСертификатов(Сертификаты, СвойстваСертификатовНаКлиенте, ДобавлениеВСписок, Истина, ОшибкаПолученияСертификатовНаСервере, ПоказыватьВсе, ДополнительныеПараметры); @@ -810,6 +837,12 @@ КонецЕсли; + Если ЕстьПравоНаДобавлениеВСправочник Тогда + Сертификаты.Сортировать("ЭтоЗаявление Возр, Представление Возр"); + Иначе + Сертификаты.Сортировать("ЕстьВСправочнике Убыв, ЭтоЗаявление Возр, Представление Возр"); + КонецЕсли; + Если ЗначениеЗаполнено(ОтпечатокВыбранногоСертификата) И (Элементы.Сертификаты.ТекущаяСтрока = Неопределено Или Сертификаты.НайтиПоИдентификатору(Элементы.Сертификаты.ТекущаяСтрока) = Неопределено @@ -822,8 +855,12 @@ КонецЕсли; КонецЕсли; - Элементы.ГруппаСертификатыНедоступныНаКлиенте.Видимость = - ЗначениеЗаполнено(ОшибкаПолученияСертификатовНаКлиенте); + Если ОбщегоНазначения.ЭтоМобильныйКлиент() Тогда + Элементы.ГруппаСертификатыНедоступныНаКлиенте.Видимость = Ложь; + Иначе + Элементы.ГруппаСертификатыНедоступныНаКлиенте.Видимость = + ЗначениеЗаполнено(ОшибкаПолученияСертификатовНаКлиенте); + КонецЕсли; Элементы.ГруппаСертификатыНедоступныНаСервере.Видимость = ЗначениеЗаполнено(ОшибкаПолученияСертификатовНаСервере); @@ -891,7 +928,7 @@ Если Не ЕстьПравоНаДобавлениеВСправочник И Не ТекущиеДанные.ЕстьВСправочнике Тогда Результат.ОбновитьСписокСертификатов = Истина; Результат.ОписаниеОшибки = - НСтр("ru = 'Недостаточно прав на использование сертификата, отсутствующего в справочнике.'"); + НСтр("ru = 'Отсутствуют права на добавление сертификатов в справочник. Обратитесь к администратору.'"); ВыполнитьОбработкуОповещения(Оповещение, Результат); Возврат; КонецЕсли; @@ -1077,7 +1114,10 @@ КонецЕсли; КонецЕсли; КонецЕсли; - + +#Если МобильноеПриложениеКлиент ИЛИ МобильныйКлиент Тогда + Элементы.СертификатВводитьПарольВПрограммеЭлектроннойПодписи.Видимость = Ложь; +#Иначе Если СертификатПараметрыРеквизитов.Свойство("ВводитьПарольВПрограммеЭлектроннойПодписи") Тогда Если Не СертификатПараметрыРеквизитов.ВводитьПарольВПрограммеЭлектроннойПодписи.Видимость Тогда Элементы.СертификатВводитьПарольВПрограммеЭлектроннойПодписи.Видимость = Ложь; @@ -1085,6 +1125,7 @@ Элементы.СертификатВводитьПарольВПрограммеЭлектроннойПодписи.ТолькоПросмотр = Истина; КонецЕсли; КонецЕсли; +#КонецЕсли СертификатПользователь = ПользователиКлиент.ТекущийПользователь(); Если Не ЭтоПолноправныйПользователь Тогда @@ -1162,8 +1203,8 @@ &НаСервере Процедура УстановитьВидимостьКомандДобавленияСертификатов() - Если Не ПравоДоступа("Добавление", Метаданные.Справочники.СертификатыКлючейЭлектроннойПодписиИШифрования) - Или Не Параметры.ОтображатьКомандыДобавления Тогда + Если Не ЭлектроннаяПодписьСлужебный.ЕстьПравоНаДобавлениеСертификатовВСправочник() + Или Не Параметры.ОтображатьКомандыДобавления Или ОбщегоНазначения.ЭтоМобильныйКлиент() Тогда Элементы.ДобавитьДляПодписанияИШифрованияИзФайлов.Видимость = Ложь; Элементы.ДобавитьЗаявлениеНаВыпускСертификата.Видимость = Ложь; diff --git a/SSL/src/Catalogs/СертификатыКлючейЭлектроннойПодписиИШифрования/Forms/ДобавлениеСертификата/Module.bsl b/SSL/src/Catalogs/СертификатыКлючейЭлектроннойПодписиИШифрования/Forms/ДобавлениеСертификата/Module.bsl index a12359caa..e236320b8 100644 --- a/SSL/src/Catalogs/СертификатыКлючейЭлектроннойПодписиИШифрования/Forms/ДобавлениеСертификата/Module.bsl +++ b/SSL/src/Catalogs/СертификатыКлючейЭлектроннойПодписиИШифрования/Forms/ДобавлениеСертификата/Module.bsl @@ -1,5 +1,5 @@ /////////////////////////////////////////////////////////////////////////////////////////////////////// -// Copyright (c) 2024, ООО 1С-Софт +// Copyright (c) 2025, ООО 1С-Софт // Все права защищены. Эта программа и сопроводительные материалы предоставляются // в соответствии с условиями лицензии Attribution 4.0 International (CC BY 4.0) // Текст лицензии доступен по ссылке: diff --git a/SSL/src/Catalogs/СертификатыКлючейЭлектроннойПодписиИШифрования/Forms/ДобавлениеСертификатаДляШифрования/Form.form b/SSL/src/Catalogs/СертификатыКлючейЭлектроннойПодписиИШифрования/Forms/ДобавлениеСертификатаДляШифрования/Form.form index 70cbb0b70..1b7b09775 100644 --- a/SSL/src/Catalogs/СертификатыКлючейЭлектроннойПодписиИШифрования/Forms/ДобавлениеСертификатаДляШифрования/Form.form +++ b/SSL/src/Catalogs/СертификатыКлючейЭлектроннойПодписиИШифрования/Forms/ДобавлениеСертификатаДляШифрования/Form.form @@ -2166,6 +2166,20 @@ <common>true</common> </edit> </attributes> + <attributes> + <name>ТекстПредупрежденияПриОткрытии</name> + <id>15</id> + <valueType> + <types>String</types> + <stringQualifiers/> + </valueType> + <view> + <common>true</common> + </view> + <edit> + <common>true</common> + </edit> + </attributes> <formCommands> <name>Далее</name> <title> diff --git a/SSL/src/Catalogs/СертификатыКлючейЭлектроннойПодписиИШифрования/Forms/ДобавлениеСертификатаДляШифрования/Module.bsl b/SSL/src/Catalogs/СертификатыКлючейЭлектроннойПодписиИШифрования/Forms/ДобавлениеСертификатаДляШифрования/Module.bsl index 3bed63592..de27da0a6 100644 --- a/SSL/src/Catalogs/СертификатыКлючейЭлектроннойПодписиИШифрования/Forms/ДобавлениеСертификатаДляШифрования/Module.bsl +++ b/SSL/src/Catalogs/СертификатыКлючейЭлектроннойПодписиИШифрования/Forms/ДобавлениеСертификатаДляШифрования/Module.bsl @@ -1,5 +1,5 @@ /////////////////////////////////////////////////////////////////////////////////////////////////////// -// Copyright (c) 2024, ООО 1С-Софт +// Copyright (c) 2025, ООО 1С-Софт // Все права защищены. Эта программа и сопроводительные материалы предоставляются // в соответствии с условиями лицензии Attribution 4.0 International (CC BY 4.0) // Текст лицензии доступен по ссылке: @@ -13,8 +13,7 @@ ЭлектроннаяПодписьСлужебный.УстановитьВидимостьСсылкиНаИнструкциюПоРаботеСПрограммами(Элементы.Инструкция); - ЕстьПравоНаДобавлениеВСправочник = ПравоДоступа("Добавление", - Метаданные.Справочники.СертификатыКлючейЭлектроннойПодписиИШифрования); + ЕстьПравоНаДобавлениеВСправочник = ЭлектроннаяПодписьСлужебный.ЕстьПравоНаДобавлениеСертификатовВСправочник(); УсловноеОформление.Элементы.Очистить(); Если Не ЕстьПравоНаДобавлениеВСправочник Тогда @@ -51,10 +50,12 @@ Возврат; КонецЕсли; + СвойстваСертификата = ЭлектроннаяПодпись.СвойстваСертификата(СертификатКриптографии); + ПоказатьСтраницуУточнениеСвойствСертификата(ЭтотОбъект, СертификатКриптографии, СертификатКриптографии.Выгрузить(), - ЭлектроннаяПодпись.СвойстваСертификата(СертификатКриптографии)); + СвойстваСертификата); Элементы.Назад.Видимость = Ложь; Иначе @@ -95,6 +96,14 @@ Возврат; КонецЕсли; + Если Сертификаты.Количество() = 0 + И Не Элементы.ГруппаСертификатыНедоступныНаКлиенте.Видимость + И Не Элементы.ГруппаСертификатыНедоступныНаСервере.Видимость Тогда + ТекстПредупрежденияПриОткрытии = + НСтр("ru = 'Нет доступных сертификатов для добавления. Возможно, отсутствуют права на добавление сертификатов, обратитесь к администратору.'"); + Отказ = Истина; + КонецЕсли; + КонецПроцедуры &НаКлиенте @@ -251,7 +260,7 @@ КонецЕсли; Если Не ЕстьПравоНаДобавлениеВСправочник И Не ТекущиеДанные.ЕстьВСправочнике Тогда - ВызватьИсключение(НСтр("ru = 'Недостаточно прав на использование сертификата.'"), + ВызватьИсключение(НСтр("ru = 'Отсутствуют права на добавление сертификатов в справочник. Обратитесь к администратору.'"), КатегорияОшибки.НарушениеПравДоступа); КонецЕсли; @@ -541,6 +550,12 @@ ЭлектроннаяПодписьСлужебный.ОбновитьСписокСертификатов(Сертификаты, СвойстваСертификатовНаКлиенте, Истина, Ложь, ОшибкаПолученияСертификатовНаСервере, ПоказыватьВсе); + Если ЕстьПравоНаДобавлениеВСправочник Тогда + Сертификаты.Сортировать("ЭтоЗаявление Возр, Представление Возр"); + Иначе + Сертификаты.Сортировать("ЕстьВСправочнике Убыв, ЭтоЗаявление Возр, Представление Возр"); + КонецЕсли; + Если ЗначениеЗаполнено(ОтпечатокВыбранногоСертификата) И ( Элементы.Сертификаты.ТекущаяСтрока = Неопределено Или Сертификаты.НайтиПоИдентификатору(Элементы.Сертификаты.ТекущаяСтрока) = Неопределено diff --git a/SSL/src/Catalogs/СертификатыКлючейЭлектроннойПодписиИШифрования/Forms/ДобавлениеСертификатовДляШифрования/Form.form b/SSL/src/Catalogs/СертификатыКлючейЭлектроннойПодписиИШифрования/Forms/ДобавлениеСертификатовДляШифрования/Form.form index 5ea4f4f02..36cf9d491 100644 --- a/SSL/src/Catalogs/СертификатыКлючейЭлектроннойПодписиИШифрования/Forms/ДобавлениеСертификатовДляШифрования/Form.form +++ b/SSL/src/Catalogs/СертификатыКлючейЭлектроннойПодписиИШифрования/Forms/ДобавлениеСертификатовДляШифрования/Form.form @@ -1175,6 +1175,19 @@ <common>true</common> </edit> </columns> + <columns> + <name>УжеДобавлен</name> + <id>1</id> + <valueType> + <types>Boolean</types> + </valueType> + <view> + <common>true</common> + </view> + <edit> + <common>true</common> + </edit> + </columns> </attributes> <attributes> <name>СертификатОписаниеДанных</name> diff --git a/SSL/src/Catalogs/СертификатыКлючейЭлектроннойПодписиИШифрования/Forms/ДобавлениеСертификатовДляШифрования/Module.bsl b/SSL/src/Catalogs/СертификатыКлючейЭлектроннойПодписиИШифрования/Forms/ДобавлениеСертификатовДляШифрования/Module.bsl index 47d6abb19..b21051af0 100644 --- a/SSL/src/Catalogs/СертификатыКлючейЭлектроннойПодписиИШифрования/Forms/ДобавлениеСертификатовДляШифрования/Module.bsl +++ b/SSL/src/Catalogs/СертификатыКлючейЭлектроннойПодписиИШифрования/Forms/ДобавлениеСертификатовДляШифрования/Module.bsl @@ -1,5 +1,5 @@ /////////////////////////////////////////////////////////////////////////////////////////////////////// -// Copyright (c) 2024, ООО 1С-Софт +// Copyright (c) 2025, ООО 1С-Софт // Все права защищены. Эта программа и сопроводительные материалы предоставляются // в соответствии с условиями лицензии Attribution 4.0 International (CC BY 4.0) // Текст лицензии доступен по ссылке: @@ -233,6 +233,8 @@ Запрос = Новый Запрос; Запрос.УстановитьПараметр("Отпечатки", Сертификаты.Выгрузить(, "Отпечаток")); + УстановитьПривилегированныйРежим(Истина); + Запрос.Текст = "ВЫБРАТЬ | Отпечатки.Отпечаток @@ -253,6 +255,8 @@ Выборка = Запрос.Выполнить().Выбрать(); + УстановитьПривилегированныйРежим(Ложь); + Пока Выборка.Следующий() Цикл СтрокаСертификата = Сертификаты.НайтиСтроки(Новый Структура("Отпечаток", Выборка.Отпечаток)); @@ -261,7 +265,18 @@ Если Элементы.СертификатыФизическоеЛицо.Видимость Тогда ТекущаяСтрока.ФизическоеЛицо = Выборка.ФизическоеЛицо; КонецЕсли; - ТекущаяСтрока.Сертификат = Выборка.Ссылка; + + Если ОбщегоНазначения.ПодсистемаСуществует("СтандартныеПодсистемы.УправлениеДоступом") Тогда + МодульУправлениеДоступом = ОбщегоНазначения.ОбщийМодуль("УправлениеДоступом"); + ЧтениеРазрешено = МодульУправлениеДоступом.ЧтениеРазрешено(Выборка.Ссылка); + Иначе + ЧтениеРазрешено = ПравоДоступа("Чтение", Выборка.Ссылка.Метаданные()); + КонецЕсли; + Если ЧтениеРазрешено Тогда // Защита от ошибки в данных (дубли сертификатов). + ТекущаяСтрока.Сертификат = Выборка.Ссылка; + КонецЕсли; + + ТекущаяСтрока.УжеДобавлен = Истина; КонецЦикла; @@ -359,6 +374,8 @@ Иначе Продолжить; КонецЕсли; + ИначеЕсли ТекущаяСтрока.УжеДобавлен Тогда + Продолжить; КонецЕсли; ПараметрыСертификата.Вставить("Наименование", ТекущаяСтрока.Представление); diff --git a/SSL/src/Catalogs/СертификатыКлючейЭлектроннойПодписиИШифрования/Forms/ОповещениеОбОкончанииСрокаДействия/Module.bsl b/SSL/src/Catalogs/СертификатыКлючейЭлектроннойПодписиИШифрования/Forms/ОповещениеОбОкончанииСрокаДействия/Module.bsl index 164c994d2..50ce5eba6 100644 --- a/SSL/src/Catalogs/СертификатыКлючейЭлектроннойПодписиИШифрования/Forms/ОповещениеОбОкончанииСрокаДействия/Module.bsl +++ b/SSL/src/Catalogs/СертификатыКлючейЭлектроннойПодписиИШифрования/Forms/ОповещениеОбОкончанииСрокаДействия/Module.bsl @@ -1,5 +1,5 @@ /////////////////////////////////////////////////////////////////////////////////////////////////////// -// Copyright (c) 2024, ООО 1С-Софт +// Copyright (c) 2025, ООО 1С-Софт // Все права защищены. Эта программа и сопроводительные материалы предоставляются // в соответствии с условиями лицензии Attribution 4.0 International (CC BY 4.0) // Текст лицензии доступен по ссылке: diff --git a/SSL/src/Catalogs/СертификатыКлючейЭлектроннойПодписиИШифрования/Forms/ПередачаПараметров/Module.bsl b/SSL/src/Catalogs/СертификатыКлючейЭлектроннойПодписиИШифрования/Forms/ПередачаПараметров/Module.bsl index 977df3086..8bddce989 100644 --- a/SSL/src/Catalogs/СертификатыКлючейЭлектроннойПодписиИШифрования/Forms/ПередачаПараметров/Module.bsl +++ b/SSL/src/Catalogs/СертификатыКлючейЭлектроннойПодписиИШифрования/Forms/ПередачаПараметров/Module.bsl @@ -1,5 +1,5 @@ /////////////////////////////////////////////////////////////////////////////////////////////////////// -// Copyright (c) 2024, ООО 1С-Софт +// Copyright (c) 2025, ООО 1С-Софт // Все права защищены. Эта программа и сопроводительные материалы предоставляются // в соответствии с условиями лицензии Attribution 4.0 International (CC BY 4.0) // Текст лицензии доступен по ссылке: @@ -97,7 +97,13 @@ &НаКлиенте Процедура ОткрытьНовуюФормуПродолжение(Результат, Контекст) Экспорт - Если Контекст.Форма.Открыта() Тогда + Форма = Контекст.Форма; + Если Форма.Открыта() Тогда + Возврат; + ИначеЕсли Контекст.Форма.ИмяФормы = + "Справочник.СертификатыКлючейЭлектроннойПодписиИШифрования.Форма.ВыборСертификатаДляПодписанияИлиРасшифровки" + И Не ПустаяСтрока(Форма.ТекстПредупрежденияПриОткрытии) Тогда + ПоказатьПредупреждение(, Форма.ТекстПредупрежденияПриОткрытии); Возврат; КонецЕсли; diff --git a/SSL/src/Catalogs/СертификатыКлючейЭлектроннойПодписиИШифрования/Forms/ПодборСертификатовДляШифрования/Module.bsl b/SSL/src/Catalogs/СертификатыКлючейЭлектроннойПодписиИШифрования/Forms/ПодборСертификатовДляШифрования/Module.bsl index fa740d3b6..2d521840d 100644 --- a/SSL/src/Catalogs/СертификатыКлючейЭлектроннойПодписиИШифрования/Forms/ПодборСертификатовДляШифрования/Module.bsl +++ b/SSL/src/Catalogs/СертификатыКлючейЭлектроннойПодписиИШифрования/Forms/ПодборСертификатовДляШифрования/Module.bsl @@ -1,5 +1,5 @@ /////////////////////////////////////////////////////////////////////////////////////////////////////// -// Copyright (c) 2024, ООО 1С-Софт +// Copyright (c) 2025, ООО 1С-Софт // Все права защищены. Эта программа и сопроводительные материалы предоставляются // в соответствии с условиями лицензии Attribution 4.0 International (CC BY 4.0) // Текст лицензии доступен по ссылке: @@ -11,6 +11,9 @@ &НаСервере Процедура ПриСозданииНаСервере(Отказ, СтандартнаяОбработка) + ЕстьПравоНаДобавлениеВСправочник = ПравоДоступа("Добавление", + Метаданные.Справочники.СертификатыКлючейЭлектроннойПодписиИШифрования); + ЭлектроннаяПодписьСлужебный.УстановитьУсловноеОформлениеСпискаСертификатов(Список); Параметры.Отбор.Свойство("Организация", Организация); @@ -37,6 +40,10 @@ ГруппаПользователейПриИзмененииНаСервере(); + Если Не ЕстьПравоНаДобавлениеВСправочник Тогда + Элементы.ФормаПодменюДобавить.Видимость = Ложь; + КонецЕсли; + // СтандартныеПодсистемы.ПодключаемыеКоманды Если ОбщегоНазначения.ПодсистемаСуществует("СтандартныеПодсистемы.ПодключаемыеКоманды") Тогда МодульПодключаемыеКоманды = ОбщегоНазначения.ОбщийМодуль("ПодключаемыеКоманды"); diff --git a/SSL/src/Catalogs/СертификатыКлючейЭлектроннойПодписиИШифрования/Forms/ПодписаниеДанных/Form.form b/SSL/src/Catalogs/СертификатыКлючейЭлектроннойПодписиИШифрования/Forms/ПодписаниеДанных/Form.form index 24f25a54e..728f4fb0a 100644 --- a/SSL/src/Catalogs/СертификатыКлючейЭлектроннойПодписиИШифрования/Forms/ПодписаниеДанных/Form.form +++ b/SSL/src/Catalogs/СертификатыКлючейЭлектроннойПодписиИШифрования/Forms/ПодписаниеДанных/Form.form @@ -96,6 +96,7 @@ <dataPath xsi:type="form:DataPath"> <segments>ТипПодписи</segments> </dataPath> + <skipOnInput>true</skipOnInput> <toolTipRepresentation>Button</toolTipRepresentation> <extendedTooltip> <name>ТипПодписиРасширеннаяПодсказка</name> @@ -227,6 +228,7 @@ <items xsi:type="form:FormGroup"> <name>ГруппаПоля</name> <id>433</id> + <displayImportance>High</displayImportance> <items xsi:type="form:FormField"> <name>Сертификат</name> <id>313</id> @@ -600,7 +602,7 @@ </extendedTooltip> <type>UsualGroup</type> <extInfo xsi:type="form:UsualGroupExtInfo"> - <group>AlwaysHorizontal</group> + <group>HorizontalIfPossible</group> <showLeftMargin>true</showLeftMargin> <united>true</united> <throughAlign>Auto</throughAlign> @@ -794,6 +796,7 @@ <type>UsualGroup</type> <extInfo xsi:type="form:UsualGroupExtInfo"> <group>Vertical</group> + <behavior>Auto</behavior> <showLeftMargin>true</showLeftMargin> <united>true</united> <throughAlign>Auto</throughAlign> @@ -883,10 +886,6 @@ <extendedTooltip> <name>ПодписантРасширеннаяПодсказка</name> <id>535</id> - <title> - <key>ru</key> - <value>Документы будут отправлены в сервис мобильной подписи</value> - Label true @@ -923,6 +922,104 @@ Normal + + ВидМобильнойПодписи + 538 + + <key>ru</key> + <value>Отправить в</value> + + true + + true + + + ВидМобильнойПодписи + + + OnChange + ВидПодписиПриИзменении + + + ВидМобильнойПодписиРасширеннаяПодсказка + 540 + Label + true + true + + Left + + + + ВидМобильнойПодписиКонтекстноеМеню + 539 + true + + InputField + Enter + true + Left + true + + true + true + true + true + true + true + true + Normal + + + + НастройкаОтправки + 541 + + <key>ru</key> + <value>Настройка отправки</value> + + true + + true + + + НастройкаОтправки + + + OnChange + НастройкаОтправкиПриИзменении + + + НастройкаОтправкиРасширеннаяПодсказка + 543 + Label + true + true + + Left + + + + НастройкаОтправкиКонтекстноеМеню + 542 + true + + InputField + Enter + true + Left + true + + true + true + true + true + false + true + true + Normal + + ПакетнаяОтправка 530 @@ -2156,6 +2253,49 @@ true + + ВидМобильнойПодписи + + <key>ru</key> + <value>Вид мобильной подписи</value> + + 38 + + + true + + + true + + + + НастройкаОтправки + + <key>ru</key> + <value>Настройка отправки</value> + + 39 + + CatalogRef + + + true + + + true + + + + ПараметрыОтправителя + 40 + + + true + + + true + + Подписать diff --git a/SSL/src/Catalogs/СертификатыКлючейЭлектроннойПодписиИШифрования/Forms/ПодписаниеДанных/Help/ru.html b/SSL/src/Catalogs/СертификатыКлючейЭлектроннойПодписиИШифрования/Forms/ПодписаниеДанных/Help/ru.html index 6455d5c60..a8e3a9973 100644 --- a/SSL/src/Catalogs/СертификатыКлючейЭлектроннойПодписиИШифрования/Forms/ПодписаниеДанных/Help/ru.html +++ b/SSL/src/Catalogs/СертификатыКлючейЭлектроннойПодписиИШифрования/Forms/ПодписаниеДанных/Help/ru.html @@ -1,44 +1,40 @@ <!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.0 Transitional//EN"><html><head><meta content="text/html;charset=utf-8" http-equiv="content-type"></meta><link rel="stylesheet" type="text/css" href="v8help://service_book/service_style"></link><meta name="GENERATOR" content="MSHTML 9.00.8112.16421"></meta></head><body> <p>Предназначена для подписания файлов, электронных документов и других данных.</p> -<p>Электронная подпись - реквизит электронного документа, с помощью которого можно удостовериться в неизменности электронного документа с момента его подписи. Контроль неизменности электронного документа осуществляется в результате проверки соответствия электронной подписи и документа, а также проверки действительности сертификата. Контроль неизменности электронного документа можно выполнить в любой момент времени. </p> +<p>Электронная подпись - реквизит электронного документа, с помощью которого можно удостовериться в неизменности электронного документа с момента его подписи. Контроль неизменности электронного документа осуществляется в результате проверки соответствия электронной подписи и документа, а также проверки действительности сертификата. Контроль неизменности электронного документа можно выполнить в любой момент времени.</p> <p>С помощью ссылки в верхней части окна можно просмотреть объект, который будет подписан. Ссылка принимает значение наименования объекта. Подписывать данные могут разные пользователи, при этом для каждого будет создана своя подпись.</p> + <h3>Подписание данных в этом приложении</h3> -<ul><li>С помощью переключателя выберите режим <b>В этом приложении</b>. </li> -<li>Выберите <b>Тип подписи</b>. Квалифицированная базовая подпись (<b>CAdES-BES</b>) - действительна до окончания срока действия сертификата подписанта (обычно в течение 1 года). Подпись с меткой доверенного времени (<b>CAdES-T</b>) - действует после окончания срока действия сертификата подписанта. Архивная подпись (<b>CAdES-A</b>)  - содержит полный набор доказательств подлинности, в том числе цепочку сертификатов, и автоматически продлевается. </li> -<li>Если <strong>Сертификат</strong> не выбран - выберите его из списка. Если при следующем открытии сертификат будет среди установленных на компьютере, повторный выбор не потребуется. -</li> -<li>При выборе из выпадающего списка будут показаны только сертификаты, у которых поле <strong>Пользователи</strong> не заполнено или совпадает с текущим пользователем сеанса, а поле <strong>Приложение</strong> заполнено. Если при открытии окна <strong>Подписание</strong> был указан отбор по организации, то в выпадающем списке не будет сертификатов, у которых поле <strong>Организация</strong> не совпадает с организацией, указанной в отборе. Если при открытии окна <strong>Подписание</strong> был указан конкретный список сертификатов, то будет показан только этот список. -</li> -<li>При выборе из списка личных сертификатов (установленных на компьютере и на сервере) путем нажатия <strong>Показать все</strong>, показываются все сертификаты без учета полей <strong>Пользователь</strong> и <strong>Приложение</strong>. Если при открытии окна <strong>Подписание</strong> был указан отбор по организации, то в списке не будет сертификатов, у которых поле <strong>Организация</strong> не совпадает с организацией, указанной в отборе. Но будут показаны все сертификаты, которых еще нет в списке (то есть те, которые есть только в хранилище сертификатов операционный системы компьютера или сервера). -</li> -<li>Введите <strong>Пароль</strong> к закрытому ключу (указанный при установке или создании сертификата) или <b>Пин-код</b>, если местом хранения сертификата является сервис - DSS. - - -</li> -<li>Включите флажок <strong>Запомнить пароль</strong>, для того чтобы не вводить пароль (пин-код -для сервиса DSS) в следующий раз. -</li> -<li>Также файл можно подписать с помощью <a href="Catalog.МашиночитаемыеДоверенности/Help">МЧД</a>, для этого включите флажок <img src="StdPicture.AppearanceCheckBox"></img><strong>По доверенности</strong> и выберите соответствующую доверенность из списка. </li> -<li>В некоторых случаях можно ввести <strong>Комментарий к подписи</strong> - дополнительную информацию о подписи. -</li> -<li>Для выполнения подписи нажмите <strong>Подписать</strong>. -</li> -<li>Данные будут подписаны с использованием указанного сертификата. -</li> +<ul><li>С помощью переключателя выберите режим <b>В этом приложении</b>.</li> +<li>Выберите <b>Тип подписи</b>. +<ul><li><b>Квалифицированная базовая подпись (CAdES-BES)</b> - действительна до окончания срока действия сертификата подписанта (обычно в течение 1 года).</li> +<li><b>Подпись с меткой доверенного времени (CAdES-T)</b> - действует после окончания срока действия сертификата подписанта.</li> +<li><b>Архивная подпись (CAdES-A)</b> - содержит полный набор доказательств подлинности, в том числе цепочку сертификатов, и автоматически продлевается.</li> +</ul></li> +<li>Если <strong>Сертификат</strong> не выбран - выберите его из списка. Если при следующем открытии сертификат будет среди установленных на компьютере, повторный выбор не потребуется.</li> +<li>При выборе из выпадающего списка будут показаны только сертификаты, у которых поле <strong>Пользователи</strong> не заполнено или совпадает с текущим пользователем сеанса, а поле <strong>Приложение</strong> заполнено. Если при открытии окна <strong>Подписание</strong> был указан отбор по организации, то в выпадающем списке не будет сертификатов, у которых поле <strong>Организация</strong> не совпадает с организацией, указанной в отборе. Если при открытии окна <strong>Подписание</strong> был указан конкретный список сертификатов, то будет показан только этот список.</li> +<li>При выборе из списка личных сертификатов (установленных на компьютере и на сервере) путем нажатия <strong>Показать все</strong>, показываются все сертификаты без учета полей <strong>Пользователь</strong> и <strong>Приложение</strong>. Если при открытии окна <strong>Подписание</strong> был указан отбор по организации, то в списке не будет сертификатов, у которых поле <strong>Организация</strong> не совпадает с организацией, указанной в отборе. Но будут показаны все сертификаты, которых еще нет в списке (то есть те, которые есть только в хранилище сертификатов операционной системы компьютера или сервера).</li> +<li>Введите <strong>Пароль</strong> к закрытому ключу (указанный при установке или создании сертификата) или <b>Пин-код</b>, если местом хранения сертификата является сервис DSS.</li> +<li>Включите флажок <strong>Запомнить пароль</strong>, для того чтобы не вводить пароль (пин-код для сервиса DSS) в следующий раз.</li> +<li>Также файл можно подписать с указанием <a href="Catalog.МашиночитаемыеДоверенности/Help">МЧД</a>, для этого включите флажок <img src="StdPicture.AppearanceCheckBox"></img><strong>По доверенности</strong> и выберите соответствующую доверенность из списка.</li> +<li>В некоторых случаях можно ввести <strong>Комментарий к подписи</strong> - дополнительную информацию о подписи.</li> +<li>Для выполнения подписи нажмите <strong>Подписать</strong>.</li> +<li>Данные будут подписаны с использованием указанного сертификата.</li> <li>Созданная электронная подпись хранится в приложении. Подписанный объект становится недоступным для редактирования и отображается в списках со значком <img src="CommonPicture.ПодписанЭП"></img>.</li> -<ul type="disc"></ul></ul><h3></h3> -<h3 style="font-size: 13.4399995803833px;">Подписание данных в мобильном приложении</h3> -<h3> -<ul style="font-size: 11.199999809265137px;"><li style="font-weight: normal;">С помощью переключателя выберите режим <b>В мобильном приложении "Моя подпись" от ФНС</b>. Режим <b>В мобильном приложении "Моя подпись" от ФНС </b>предназначен для подписания документов непосредственно в мобильном приложении. </li> -<li>Тип подписи <span style="font-weight: normal;">заполняется автоматически.  </span></li> -<li style="font-weight: normal;">Выберите <a href="Catalog.ПодписантыСервисаМобильнойПодписи.Form.ФормаСписка/Help">Подписанта</a>. </li> -<li><span style="font-weight: normal;">Также файл можно подписать с помощью </span><a href="Catalog.МашиночитаемыеДоверенности/Help" style="font-weight: normal;">МЧД</a><span style="font-weight: normal;">, для этого включите флажок <img src="StdPicture.AppearanceCheckBox"></img></span>По доверенности<span style="font-weight: normal;"> и выберите соответствующую доверенность из списка.</span></li> -<li style="font-weight: normal;">В некоторых случаях можно ввести <strong>Комментарий к подписи</strong> - дополнительную информацию о подписи. </li> -<li style="font-weight: normal;">Для выполнения подписи нажмите <strong>Подписать</strong>. </li> -<li style="font-weight: normal;">Документы будут направлены в систему для последующего подписания через мобильное приложение. </li> -<li style="font-weight: normal;">После отправки документов подписанту появится уведомление о том, что документы отправлены. Для их подписания нужно воспользоваться приложением "Моя подпись" от ФНС.</li> -<li><span style="font-weight: normal;">После подписания документов следует нажать кнопку</span> Документы подписаны<span style="font-weight: normal;">, для того чтобы запустить процесс получения подписи из сервиса. </span><span style="font-weight: normal;">Важно учитывать, что при отмене операции или закрытия окна запрос на подписание будет автоматически аннулирован. </span></li> -<li style="font-weight: normal;">Созданная электронная подпись хранится в приложении. Подписанный объект становится недоступным для редактирования и отображается в списках со значком <img src="CommonPicture.ПодписанЭП"></img>. </li></ul></h3> -<h3>См. также:</h3> -<ul><li><a href="CommonForm.НастройкиЭлектроннойПодписиИШифрования/Help">Настройки электронной подписи и шифрования</a>.</li></ul></body></html> \ No newline at end of file +</ul><h3 style="font-size: 13.4399995803833px;">Подписание данных в мобильном приложении "Моя подпись" от ФНС или "Госключ"</h3> +<ul><li>С помощью переключателя выберите режим <b>В мобильном приложении "Моя подпись" от ФНС или Госключ</b>. Режим предназначен для подписания документов непосредственно в мобильном приложении.</li> +<li><b>Тип подписи</b> заполняется автоматически.</li> +<li>Выберите <a href="Catalog.ПодписантыСервисаМобильнойПодписи.Form.ФормаСписка/Help">Подписанта</a>.</li> +<li>В зависимости от настроек подписанта, будет автоматически подобран сервис, в который выполняется отправка документов - "Моя подпись" от ФНС или "Госключ".</li> +<li>В случае, если документы отправляются в "Госключ" - автоматически подбирается доступная отправителю <b>Настройка отправки в Госключ</b>. </li> +<li>Также файл можно подписать с указанием <a href="Catalog.МашиночитаемыеДоверенности/Help">МЧД</a>, для этого включите флажок <img src="StdPicture.AppearanceCheckBox"></img><strong>По доверенности</strong> и выберите соответствующую доверенность из списка.</li> +<li>В некоторых случаях можно ввести <strong>Комментарий к подписи</strong> - дополнительную информацию о подписи.</li> +<li>Для выполнения подписи нажмите <strong>Подписать</strong>.</li> +<li>Документы будут направлены в систему для последующего подписания через мобильное приложение.</li> +<li>После отправки документов подписанту появится уведомление о том, что документы отправлены. Для их подписания нужно воспользоваться приложением "Моя подпись" от ФНС.</li> +<li>После подписания документов следует нажать кнопку <b>Документы подписаны</b>, для того чтобы запустить процесс получения подписи из сервиса. Важно учитывать, что при отмене операции или закрытии окна запрос на подписание будет автоматически аннулирован.</li> +<li>Созданная электронная подпись хранится в приложении. Подписанный объект становится недоступным для редактирования и отображается в списках со значком <img src="CommonPicture.ПодписанЭП"></img>.</li></ul><ul></ul><h3>Особенности работы с Госключ</h3> +<ul><li>Госключ создает подпись с меткой времени, поэтому выбор типа подписи не имеет значения, в случае если доступен только Госключ.</li> +<li>Если в настройках приложения выбран или передан по API тип <b>Архивная подпись (CAdES-A)</b>, при отправке будет выдана ошибка.</li> +</ul><h3>См. также:</h3> +<ul><li><a href="CommonForm.НастройкиЭлектроннойПодписиИШифрования/Help">Настройки электронной подписи и шифрования</a>.</li> +</ul></body></html> \ No newline at end of file diff --git a/SSL/src/Catalogs/СертификатыКлючейЭлектроннойПодписиИШифрования/Forms/ПодписаниеДанных/Module.bsl b/SSL/src/Catalogs/СертификатыКлючейЭлектроннойПодписиИШифрования/Forms/ПодписаниеДанных/Module.bsl index 0e14ec1fa..f3651e24c 100644 --- a/SSL/src/Catalogs/СертификатыКлючейЭлектроннойПодписиИШифрования/Forms/ПодписаниеДанных/Module.bsl +++ b/SSL/src/Catalogs/СертификатыКлючейЭлектроннойПодписиИШифрования/Forms/ПодписаниеДанных/Module.bsl @@ -1,5 +1,5 @@ /////////////////////////////////////////////////////////////////////////////////////////////////////// -// Copyright (c) 2024, ООО 1С-Софт +// Copyright (c) 2025, ООО 1С-Софт // Все права защищены. Эта программа и сопроводительные материалы предоставляются // в соответствии с условиями лицензии Attribution 4.0 International (CC BY 4.0) // Текст лицензии доступен по ссылке: @@ -30,6 +30,7 @@ НовыйПараметрТипПодписи.Вставить("ВыборДоверенности", Ложь); НовыйПараметрТипПодписи.Вставить("РазрешитьОтправкуНаПодписание", Ложь); НовыйПараметрТипПодписи.Вставить("ПакетнаяОтправкаНаПодписание", Неопределено); + НовыйПараметрТипПодписи.Вставить("Отправитель"); НовыйПараметрТипПодписи.Вставить("ПроверятьСертификат", ЭлектроннаяПодписьСлужебныйКлиентСервер.ПроверятьКвалифицированные()); Если Не ТипЗнч(Параметры.ТипПодписи) = Тип("Структура") Тогда @@ -180,6 +181,12 @@ Параметр.ОписаниеДанных, Параметр.Данные, Истина); КонецЕсли; + + // СтандартныеПодсистемы.СервисМобильнойПодписи + Если ВРег(ИмяСобытия) = ВРег("Запись_ПодписантыСервисаМобильнойПодписи") И Подписант = Источник Тогда + ПодписантПриИзмененииНаСервере(); + КонецЕсли; + // Конец СтандартныеПодсистемы.СервисМобильнойПодписи КонецПроцедуры @@ -283,7 +290,7 @@ ПараметрыФормы.Вставить("ВыбранныйСертификат", Сертификат); ПараметрыФормы.Вставить("ДляШифрованияИРасшифровки", Ложь); ПараметрыФормы.Вставить("ВернутьПароль", Истина); - Если ТипЗнч(ОтборСертификатов) = Тип("Структура") И ОтборСертификатов.Свойство("Организация") Тогда + Если ТипЗнч(ОтборСертификатов) <> Тип("СписокЗначений") Тогда ПараметрыФормы.Вставить("ОтборПоОрганизации", ОтборСертификатов); КонецЕсли; ПараметрыФормы.Вставить("ВыполнятьНаСервере", ВыполнятьНаСервере); @@ -413,42 +420,21 @@ &НаКлиенте Процедура ПодписантОткрытие(Элемент, СтандартнаяОбработка) - СтандартнаяОбработка = Ложь; - // СтандартныеПодсистемы.СервисМобильнойПодписи - Если Не ОбщегоНазначенияКлиент.ПодсистемаСуществует("СтандартныеПодсистемы.СервисМобильнойПодписи") Тогда - Возврат; - КонецЕсли; - МодульСервисМобильнойПодписиКлиент = ОбщегоНазначенияКлиент.ОбщийМодуль("СервисМобильнойПодписиКлиент"); - МодульСервисМобильнойПодписиКлиент.ПодписантПриОткрытии(ЭтотОбъект, Элемент, СтандартнаяОбработка); - // Конец СтандартныеПодсистемы.СервисМобильнойПодписи + ЭлектроннаяПодписьКлиентЛокализация.ПодписантПриОткрытии(ЭтотОбъект, Элемент, СтандартнаяОбработка); КонецПроцедуры &НаКлиенте Процедура ПодписантСоздание(Элемент, СтандартнаяОбработка) - СтандартнаяОбработка = Ложь; - // СтандартныеПодсистемы.СервисМобильнойПодписи - Если Не ОбщегоНазначенияКлиент.ПодсистемаСуществует("СтандартныеПодсистемы.СервисМобильнойПодписи") Тогда - Возврат; - КонецЕсли; - МодульСервисМобильнойПодписиКлиент = ОбщегоНазначенияКлиент.ОбщийМодуль("СервисМобильнойПодписиКлиент"); - МодульСервисМобильнойПодписиКлиент.ПодписантПриОткрытии(ЭтотОбъект, Элемент, СтандартнаяОбработка); - // Конец СтандартныеПодсистемы.СервисМобильнойПодписи + ЭлектроннаяПодписьКлиентЛокализация.ПодписантПриОткрытии(ЭтотОбъект, Элемент, СтандартнаяОбработка); КонецПроцедуры &НаКлиенте Процедура ПодписантОчистка(Элемент, СтандартнаяОбработка) - СтандартнаяОбработка = Ложь; - // СтандартныеПодсистемы.СервисМобильнойПодписи - Если Не ОбщегоНазначенияКлиент.ПодсистемаСуществует("СтандартныеПодсистемы.СервисМобильнойПодписи") Тогда - Возврат; - КонецЕсли; - МодульСервисМобильнойПодписиКлиент = ОбщегоНазначенияКлиент.ОбщийМодуль("СервисМобильнойПодписиКлиент"); - МодульСервисМобильнойПодписиКлиент.ПодписантПриОчистке(ЭтотОбъект, Элемент, СтандартнаяОбработка); - // Конец СтандартныеПодсистемы.СервисМобильнойПодписи + ЭлектроннаяПодписьКлиентЛокализация.ПодписантПриОчистке(ЭтотОбъект, Элемент, СтандартнаяОбработка); КонецПроцедуры @@ -457,12 +443,25 @@ СохранитьНастройкуПодписантаПослеПодписания = Истина; + // СтандартныеПодсистемы.СервисМобильнойПодписи + ПодписантПриИзмененииНаСервере(); + // Конец СтандартныеПодсистемы.СервисМобильнойПодписи + // СтандартныеПодсистемы.МашиночитаемыеДоверенности Если Элементы.ГруппаДоверенность.Видимость Тогда ПодобратьДоверенностьПоСертификату(); КонецЕсли; // Конец СтандартныеПодсистемы.МашиночитаемыеДоверенности + +КонецПроцедуры +&НаКлиенте +Процедура ВидПодписиПриИзменении(Элемент) + + СохранитьНастройкуПодписантаПослеПодписания = Истина; + // СтандартныеПодсистемы.СервисМобильнойПодписи + ЗаполнитьНастройкуОтправки(); + // Конец СтандартныеПодсистемы.СервисМобильнойПодписи КонецПроцедуры &НаКлиенте @@ -472,6 +471,13 @@ КонецПроцедуры +&НаКлиенте +Процедура НастройкаОтправкиПриИзменении(Элемент) + + СохранитьНастройкуПодписантаПослеПодписания = Истина; + +КонецПроцедуры + #КонецОбласти #Область ОбработчикиКомандФормы @@ -618,6 +624,7 @@ Элементы.ПакетнаяОтправка.Видимость = ПараметрТипПодписи.ПакетнаяОтправкаНаПодписание = Неопределено; ПакетнаяОтправка = ПараметрТипПодписи.ПакетнаяОтправкаНаПодписание; + ПараметрыОтправителя = ПараметрТипПодписи.Отправитель; Если Элементы.ТипПодписи.Видимость Тогда СписокТипов = Новый СписокЗначений; @@ -1090,12 +1097,21 @@ Контекст.Вставить("СертификатВерен", Ложь); Контекст.Вставить("ТребуетсяПроверка", Результат.ТребуетсяПроверка); + Если Результат.ТребуетсяПроверка = Истина Тогда + ПодписаниеРазрешено = ОбщегоНазначенияКлиент.ХранилищеОбщихНастроекЗагрузить( + Сертификат, "РазрешитьПодписаниеСертификатомТребующимПроверки", Ложь); + Если ПодписаниеРазрешено Тогда + ПодписатьДанныеПослеПредупрежденияПодписьНеверна(Новый Структура("Значение", "РазрешитьПодписание"), + Новый Структура("Контекст", Контекст)); + Возврат; + КонецЕсли; + КонецЕсли; + Оповещение = Новый ОписаниеОповещения("ПодписатьДанныеПослеПредупрежденияПодписьНеверна", ЭтотОбъект, Новый Структура("Контекст, РезультатПроверкиСертификата", Контекст, Результат)); ПараметрыВопроса = СтандартныеПодсистемыКлиент.ПараметрыВопросаПользователю(); ПараметрыВопроса.Картинка = БиблиотекаКартинок.ДиалогВосклицание; - ПараметрыВопроса.ПредлагатьБольшеНеЗадаватьЭтотВопрос = Ложь; Кнопки = Новый СписокЗначений; Кнопки.Добавить("ОтменитьПодписание", НСтр("ru = 'Отменить подписание'")); @@ -1103,6 +1119,8 @@ Кнопки.Добавить("ПоказатьОшибку", НСтр("ru = 'Подробности...'")); Если Результат.ТребуетсяПроверка = Истина Тогда + + ПараметрыВопроса.ПредлагатьБольшеНеЗадаватьЭтотВопрос = Истина; ПараметрыВопроса.Заголовок = НСтр("ru = 'Подпись будет не проверена'"); ТекстОшибки = СтроковыеФункцииКлиентСервер.ПодставитьПараметрыВСтроку( НСтр("ru = 'Сертификат не прошел проверку. Подпись, установленная таким сертификатом, будет требовать проверки. @@ -1110,6 +1128,7 @@ |%1'"), ЭлектроннаяПодписьСлужебныйКлиентСервер.ОбщееОписаниеОшибки( Результат.ОписаниеОшибкиНаКлиенте, Результат.ОписаниеОшибкиНаСервере, Неопределено)); Иначе + ПараметрыВопроса.ПредлагатьБольшеНеЗадаватьЭтотВопрос = Ложь; ПараметрыВопроса.Заголовок = НСтр("ru = 'Подпись будет неверна'"); ТекстОшибки = СтроковыеФункцииКлиентСервер.ПодставитьПараметрыВСтроку( НСтр("ru = 'Сертификат не прошел проверку. Подпись, установленная таким сертификатом, будет неверна. @@ -1117,7 +1136,6 @@ |%1'"), ЭлектроннаяПодписьСлужебныйКлиентСервер.ОбщееОписаниеОшибки( Результат.ОписаниеОшибкиНаКлиенте, Результат.ОписаниеОшибкиНаСервере, Неопределено)); КонецЕсли; - СтандартныеПодсистемыКлиент.ПоказатьВопросПользователю(Оповещение, ТекстОшибки, Кнопки, ПараметрыВопроса); Возврат; @@ -1149,6 +1167,11 @@ Возврат; КонецЕсли; + + Если Результат.Свойство("БольшеНеЗадаватьЭтотВопрос") И Результат.БольшеНеЗадаватьЭтотВопрос Тогда + ОбщегоНазначенияКлиент.ХранилищеОбщихНастроекСохранить( + Сертификат, "РазрешитьПодписаниеСертификатомТребующимПроверки", Истина); + КонецЕсли; ВыбранныйСертификат = Новый Структура; ВыбранныйСертификат.Вставить("Ссылка", Сертификат); @@ -1362,6 +1385,12 @@ Если СохранитьНастройкуПодписантаПослеПодписания Тогда НастройкиДляСохранения.Добавить(Новый Структура("Объект, Настройка, Значение", ПользователиКлиент.ТекущийПользователь(), "ПодписаниеДанных_ПодписантПоУмолчанию", НастройкаПодписант)); + + // СтандартныеПодсистемы.СервисМобильнойПодписи + Если ТипПодписанта <> "ПодписатьСертификатом" И ЗначениеЗаполнено(Подписант) Тогда + ДобавитьНастройкуПодписанта(НастройкиДляСохранения, НастройкаПодписант); + КонецЕсли; + // Конец СтандартныеПодсистемы.СервисМобильнойПодписи КонецЕсли; Если НастройкиДляСохранения.Количество() > 0 Тогда @@ -1453,6 +1482,8 @@ ОписаниеДанных.Вставить("ВыбранныйСертификат", Неопределено); ОписаниеДанных.Вставить("ВыбраннаяДоверенность", МашиночитаемаяДоверенность); + ОписаниеДанных.Вставить("ВидМобильнойПодписи", ВидМобильнойПодписи); + ОписаниеДанных.Вставить("НастройкаОтправки", НастройкаОтправки); Если ЗначениеЗаполнено(Подписант) Тогда МодульСервисМобильнойПодписиСлужебныйВызовСервера = ОбщегоНазначенияКлиент.ОбщийМодуль( @@ -1497,7 +1528,6 @@ Контекст.ИдентификаторФормы = ФормаОбъекта; КонецЕсли; - Контекст.Вставить("Подписант", Подписант); ПараметрыВыполнения = Новый Структура; ПараметрыВыполнения.Вставить("ОписаниеДанных", ОписаниеДанных); ПараметрыВыполнения.Вставить("Форма", ЭтотОбъект); @@ -1511,16 +1541,20 @@ Контекст.Вставить("ПараметрыВыполнения", ПараметрыВыполнения); ОписаниеОповещения = Новый ОписаниеОповещения("ПослеПодписанияДанныхВСервисе", ЭтотОбъект, Контекст); + МодульСервисМобильнойПодписиКлиентСервер = ОбщегоНазначенияКлиент.ОбщийМодуль("СервисМобильнойПодписиКлиентСервер"); - ПараметрыПодписания = Новый Структура; - ПараметрыПодписания.Вставить("ТипПодписи", ТипПодписи); + ПараметрыПодписания = МодульСервисМобильнойПодписиКлиентСервер.ПараметрыПодписания(); + ПараметрыПодписания.ТипПодписи = ТипПодписи; + ПараметрыПодписания.ПакетнаяОтправкаНаПодписание = ПакетнаяОтправка; + ПараметрыПодписания.ВидМобильнойПодписи = ВидМобильнойПодписи; + ПараметрыПодписания.НастройкаОтправки = НастройкаОтправки; + ПараметрыПодписания.Комментарий = Комментарий; Если ПоДоверенности И ЗначениеЗаполнено(МашиночитаемаяДоверенность) Тогда - ПараметрыПодписания.Вставить("Доверенность", МашиночитаемаяДоверенность); + ПараметрыПодписания.Доверенность = МашиночитаемаяДоверенность; КонецЕсли; - ПараметрыПодписания.Вставить("ПакетнаяОтправкаНаПодписание", ПакетнаяОтправка); - - МодульСервисМобильнойПодписиКлиент = ОбщегоНазначенияКлиент.ОбщийМодуль("СервисМобильнойПодписиКлиент"); - МодульСервисМобильнойПодписиКлиент.ПодписатьДанныеВСервисе(ОписаниеОповещения, Контекст, ПараметрыПодписания); + + МодульСервисМобильнойПодписиСлужебныйКлиент = ОбщегоНазначенияКлиент.ОбщийМодуль("СервисМобильнойПодписиСлужебныйКлиент"); + МодульСервисМобильнойПодписиСлужебныйКлиент.ПодписатьДанныеВСервисе(ОписаниеОповещения, Контекст, ПараметрыПодписания); КонецПроцедуры @@ -1554,6 +1588,30 @@ КонецПроцедуры +&НаСервере +Процедура ПодписантПриИзмененииНаСервере() + + МодульСервисМобильнойПодписиСлужебный = ОбщегоНазначения.ОбщийМодуль("СервисМобильнойПодписиСлужебный"); + МодульСервисМобильнойПодписиСлужебный.ПодписантПриИзмененииНаСервере(ЭтотОбъект); + +КонецПроцедуры + +&НаСервере +Процедура ЗаполнитьНастройкуОтправки() + + МодульСервисМобильнойПодписиСлужебный = ОбщегоНазначения.ОбщийМодуль("СервисМобильнойПодписиСлужебный"); + МодульСервисМобильнойПодписиСлужебный.ЗаполнитьНастройкуОтправки(ЭтотОбъект); + +КонецПроцедуры + +&НаСервере +Процедура ДобавитьНастройкуПодписанта(НастройкиДляСохранения, НастройкаПодписант) + Если ОбщегоНазначения.ПодсистемаСуществует("СтандартныеПодсистемы.СервисМобильнойПодписи") Тогда + МодульСервисМобильнойПодписиСлужебный = ОбщегоНазначения.ОбщийМодуль("СервисМобильнойПодписиСлужебный"); + МодульСервисМобильнойПодписиСлужебный.ДобавитьНастройкуПодписанта(ЭтотОбъект, НастройкиДляСохранения, НастройкаПодписант); + КонецЕсли; +КонецПроцедуры + // Конец СтандартныеПодсистемы.СервисМобильнойПодписи // СтандартныеПодсистемы.ЭлектроннаяПодписьСервисаDSS diff --git a/SSL/src/Catalogs/СертификатыКлючейЭлектроннойПодписиИШифрования/Forms/ПроверкаСертификата/Module.bsl b/SSL/src/Catalogs/СертификатыКлючейЭлектроннойПодписиИШифрования/Forms/ПроверкаСертификата/Module.bsl index f1803f836..baff9f820 100644 --- a/SSL/src/Catalogs/СертификатыКлючейЭлектроннойПодписиИШифрования/Forms/ПроверкаСертификата/Module.bsl +++ b/SSL/src/Catalogs/СертификатыКлючейЭлектроннойПодписиИШифрования/Forms/ПроверкаСертификата/Module.bsl @@ -1,5 +1,5 @@ /////////////////////////////////////////////////////////////////////////////////////////////////////// -// Copyright (c) 2024, ООО 1С-Софт +// Copyright (c) 2025, ООО 1С-Софт // Все права защищены. Эта программа и сопроводительные материалы предоставляются // в соответствии с условиями лицензии Attribution 4.0 International (CC BY 4.0) // Текст лицензии доступен по ссылке: @@ -360,10 +360,6 @@ &НаКлиенте Процедура Проверить(Команда) - ПроверкиУспешны = Истина; - Элементы.ГруппаСтраницы.Видимость = Истина; - Элементы.ФормаПроверить.Доступность = Ложь; - Элементы.ГруппаСтраницы.ТекущаяСтраница = Элементы.СтраницаВыполняетсяПроверка; ПроверитьСертификат(Новый ОписаниеОповещения("ПроверитьЗавершение", ЭтотОбъект)); КонецПроцедуры @@ -387,6 +383,12 @@ #Область СлужебныеПроцедурыИФункции +&НаКлиенте +Процедура ВидимостьПриОкончанииПроверки() + Элементы.ФормаПроверить.Доступность = Истина; + ВидимостьСтраниц(ЭтотОбъект); +КонецПроцедуры + &НаКлиентеНаСервереБезКонтекста Функция ИменаГруппПоНазваниямПроверок(ЭлементыФормы) @@ -455,10 +457,8 @@ // Продолжение процедуры Проверить. &НаКлиенте Процедура ПроверитьЗавершение(Неопределен, Контекст) Экспорт - - Элементы.ФормаПроверить.Доступность = Истина; - ВидимостьСтраниц(ЭтотОбъект); + ВидимостьПриОкончанииПроверки(); Если СертификатыМетокВремени.Количество() = 0 Тогда Элементы.ДекорацияСертификатМеткиВремени.Видимость = Ложь; @@ -551,6 +551,7 @@ КонецЕсли; Контекст = Новый Структура("Оповещение", Оповещение); + ПроверитьСертификат(Новый ОписаниеОповещения( "ПродолжитьОткрытиеПослеПроверкиСертификата", ЭтотОбъект, Контекст)); @@ -573,6 +574,8 @@ Возврат; КонецЕсли; + ВидимостьПриОкончанииПроверки(); + Если Не Открыта() И Не (КлиентскиеПараметры.Свойство("НеПоказыватьРезультаты") И КлиентскиеПараметры.НеПоказыватьРезультаты) Тогда @@ -614,6 +617,11 @@ СертификатыМетокВремени.Очистить(); Элементы.ДекорацияСертификатМеткиВремени.Видимость = Ложь; + ПроверкиУспешны = Истина; + Элементы.ГруппаСтраницы.Видимость = Истина; + Элементы.ФормаПроверить.Доступность = Ложь; + Элементы.ГруппаСтраницы.ТекущаяСтраница = Элементы.СтраницаВыполняетсяПроверка; + // Очистка предыдущих результатов проверки. Если СтандартныеПроверки Тогда @@ -949,7 +957,7 @@ // Продолжение процедуры ПроверитьНаСторонеКлиента. &НаКлиенте -Асинх Процедура ПроверитьНаСторонеКлиентаПослеСозданияЛюбогоМенеджераКриптографии(Результат, Контекст) Экспорт +Процедура ПроверитьНаСторонеКлиентаПослеСозданияЛюбогоМенеджераКриптографии(Результат, Контекст) Экспорт Если ТипЗнч(Результат) = Тип("МенеджерКриптографии") Тогда ДополнительныеПараметрыПроверок = ЭлектроннаяПодписьСлужебныйКлиент.ДополнительныеПараметрыПроверкиСертификата(); @@ -961,24 +969,42 @@ Контекст.СертификатКриптографии, Результат,,ДополнительныеПараметрыПроверок); Возврат; КонецЕсли; - - Токен = Ждать ЭлектроннаяПодписьСлужебныйКлиент.ПолучитьТокенПоСертификату(Контекст.СертификатКриптографии); - - Если Токен = Неопределено Тогда - ПроверитьНаСторонеКлиентаПослеПроверкиСертификата(Результат, Контекст); + + СтандартнаяОбработка = Истина; + ЭлектроннаяПодписьКлиентЛокализация.ПриПолученииТокенаПоСертификату( + Новый ОписаниеОповещения("ПослеПолученияТокенаПоСертификату", ЭтотОбъект, + Новый Структура("Контекст, Результат", Контекст, Результат)), + Контекст.СертификатКриптографии, СтандартнаяОбработка, Истина, Истина); + + Если Не СтандартнаяОбработка Тогда Возврат; КонецЕсли; + ПроверитьНаСторонеКлиентаПослеПроверкиСертификата(Результат, Контекст); + +КонецПроцедуры + +// Продолжение процедуры ПроверитьНаСторонеКлиента. +&НаКлиенте +Асинх Процедура ПослеПолученияТокенаПоСертификату(Токен, ДополнительныеПараметры) Экспорт + + Если Не ЗначениеЗаполнено(Токен) Тогда + ПроверитьНаСторонеКлиентаПослеПроверкиСертификата(ДополнительныеПараметры.Результат, ДополнительныеПараметры.Контекст); + Возврат; + КонецЕсли; + + Контекст = ДополнительныеПараметры.Контекст; + Контекст.Вставить("МенеджерКриптографии", Неопределено); Токен.Вставить("Пароль", СвойстваПароля.Значение); Контекст.Вставить("Токен", Токен); - - Если Результат = Истина Тогда + + Если ДополнительныеПараметры.Результат = Истина Тогда ОписаниеОшибкиНаКлиенте = ""; - ИначеЕсли ТипЗнч(Результат) = Тип("Структура") Тогда - ОписаниеОшибкиНаКлиенте = Результат.ОписаниеОшибкиНаКлиенте; + ИначеЕсли ТипЗнч(ДополнительныеПараметры.Результат) = Тип("Структура") Тогда + ОписаниеОшибкиНаКлиенте = ДополнительныеПараметры.Результат.ОписаниеОшибкиНаКлиенте; Иначе - ОписаниеОшибкиНаКлиенте = Результат; + ОписаниеОшибкиНаКлиенте = ДополнительныеПараметры.Результат; КонецЕсли; УстановитьЭлемент(ЭтотОбъект, "ДанныеСертификата", Ложь, @@ -994,25 +1020,60 @@ Если Не ЗначениеЗаполнено(ОписаниеОшибки) Тогда ПараметрыПодписи = ЭлектроннаяПодписьСлужебныйКлиент.ПараметрыПодписиНаТокене(Токен, Контекст.СертификатКриптографии, ПредопределенноеЗначение("Перечисление.ТипыПодписиКриптографии.БазоваяCAdESBES")); - ДанныеПодписи = Ждать ЭлектроннаяПодписьСлужебныйКлиент.ПодписьНаТокене(ПараметрыПодписи, Контекст.ДанныеСертификата); - Если ТипЗнч(ДанныеПодписи) = Тип("Строка") Тогда - ОписаниеОшибки = ДанныеПодписи; - Иначе - Если ЗначениеЗаполнено(ТипПодписи) И ТипПодписи <> ПредопределенноеЗначение( - "Перечисление.ТипыПодписиКриптографии.БазоваяCAdESBES") И ТипПодписи <> ПредопределенноеЗначение( - "Перечисление.ТипыПодписиКриптографии.ОбычнаяCMS") Тогда - ПараметрыПодписи.ТипПодписи = ТипПодписи; - ДанныеПодписи = Ждать ЭлектроннаяПодписьСлужебныйКлиент.ПодписьНаТокене(ПараметрыПодписи, Контекст.ДанныеСертификата); - Если ТипЗнч(ДанныеПодписи) = Тип("Строка") Тогда - ОписаниеОшибки = ДанныеПодписи; - КонецЕсли; - КонецЕсли; + + СтандартнаяОбработка = Истина; + ОповещениеПослеОперацииНаТокене = Новый ОписаниеОповещения("ПослеПодписанияНаТокене", ЭтотОбъект, Контекст); + ЭлектроннаяПодписьКлиентЛокализация.ПриПодписанииНаТокене(ОповещениеПослеОперацииНаТокене, ПараметрыПодписи, + Контекст.ДанныеСертификата, СтандартнаяОбработка); + Если Не СтандартнаяОбработка Тогда + Возврат; + КонецЕсли; + + УстановитьЭлемент(ЭтотОбъект, "Подписание", Ложь, НСтр("ru = 'Не найдена процедура подписания для токена.'"), Истина, ОбъединятьРезультаты); + Иначе + УстановитьЭлемент(ЭтотОбъект, "Подписание", Ложь, ОписаниеОшибки, Истина, ОбъединятьРезультаты); + КонецЕсли; + + ПослеПроверкиПодписиНаТокене(Неопределено, Контекст); + +КонецПроцедуры + +// Продолжение процедуры ПроверитьНаСторонеКлиента. +&НаКлиенте +Асинх Процедура ПослеПодписанияНаТокене(ДанныеПодписи, Контекст) Экспорт + + Если ТипЗнч(ДанныеПодписи) <> Тип("Строка") И ЗначениеЗаполнено(ТипПодписи) И ТипПодписи <> ПредопределенноеЗначение( + "Перечисление.ТипыПодписиКриптографии.БазоваяCAdESBES") И ТипПодписи <> ПредопределенноеЗначение( + "Перечисление.ТипыПодписиКриптографии.ОбычнаяCMS") Тогда + ПараметрыПодписи = ЭлектроннаяПодписьСлужебныйКлиент.ПараметрыПодписиНаТокене(Контекст.Токен, + Контекст.СертификатКриптографии, ТипПодписи); + + СтандартнаяОбработка = Истина; + ОповещениеПослеОперацииНаТокене = Новый ОписаниеОповещения("ПослеПодписанияНаТокенеСТипомПодписи", ЭтотОбъект, + Контекст); + ЭлектроннаяПодписьКлиентЛокализация.ПриПодписанииНаТокене(ОповещениеПослеОперацииНаТокене, ПараметрыПодписи, + Контекст.ДанныеСертификата, СтандартнаяОбработка); + Если Не СтандартнаяОбработка Тогда + Возврат; КонецЕсли; КонецЕсли; - УстановитьЭлемент(ЭтотОбъект, "Подписание", Ложь, ОписаниеОшибки, Истина, ОбъединятьРезультаты); + ПослеПодписанияНаТокенеСТипомПодписи(ДанныеПодписи, Контекст); + +КонецПроцедуры + +// Продолжение процедуры ПроверитьНаСторонеКлиента. +&НаКлиенте +Асинх Процедура ПослеПодписанияНаТокенеСТипомПодписи(ДанныеПодписи, Контекст) Экспорт + + ОписаниеОшибки = ""; + + Если ТипЗнч(ДанныеПодписи) = Тип("Строка") Тогда + ОписаниеОшибки = ДанныеПодписи; + КонецЕсли; Если ТипЗнч(ДанныеПодписи) = Тип("ДвоичныеДанные") Тогда + ПарольПринят = Истина; ПараметрыПроверкиПодписи = Новый Структура; ПараметрыПроверкиПодписи.Вставить("Подпись", ДанныеПодписи); ПараметрыПроверкиПодписи.Вставить("АлгоритмПодписи", Контекст.АлгоритмПодписи); @@ -1026,6 +1087,8 @@ ПослеПроверкиПодписиНаТокене(Неопределено, Контекст); КонецЕсли; + УстановитьЭлемент(ЭтотОбъект, "Подписание", Ложь, ОписаниеОшибки, Истина, ОбъединятьРезультаты); + КонецПроцедуры // Продолжение процедуры ПроверитьНаСторонеКлиента. @@ -1033,7 +1096,7 @@ Асинх Процедура ПослеПроверкиПодписиНаТокене(Результат, Контекст) Экспорт Если Результат <> Неопределено Тогда - Если Не Результат.ПодписьВерна Тогда + Если Результат.ПодписьВерна <> Истина Тогда ОписаниеОшибки = ?(ЗначениеЗаполнено(Результат.ОшибкаМатематическойПроверкиПодписи), Результат.ОшибкаМатематическойПроверкиПодписи, Результат.ОшибкаПроверкиДополнительныхАтрибутов); УстановитьЭлемент(ЭтотОбъект, "ПроверкаПодписи", Ложь, ОписаниеОшибки, Истина, ОбъединятьРезультаты); @@ -1041,33 +1104,67 @@ УстановитьЭлемент(ЭтотОбъект, "ПроверкаПодписи", Ложь, "", Ложь, ОбъединятьРезультаты); КонецЕсли; КонецЕсли; - + ПараметрыШифрования = ЭлектроннаяПодписьСлужебныйКлиент.ПараметрыШифрованияНаТокене(Контекст.Токен, Контекст.СертификатКриптографии); - ЗашифрованныеДанные = Ждать ЭлектроннаяПодписьКлиентЛокализация.ШифрованиеНаТокене(ПараметрыШифрования, Контекст.ДанныеСертификата); + СтандартнаяОбработка = Истина; + ОповещениеПослеОперацииНаТокене = Новый ОписаниеОповещения("ПослеШифрованияНаТокене", ЭтотОбъект, Контекст); + ЭлектроннаяПодписьКлиентЛокализация.ПриШифрованииНаТокене(ОповещениеПослеОперацииНаТокене, + ПараметрыШифрования, Контекст.ДанныеСертификата, СтандартнаяОбработка); + Если Не СтандартнаяОбработка Тогда + Возврат; + КонецЕсли; + + ВыполнитьОбработкуОповещения(ОповещениеПослеОперацииНаТокене, НСтр("ru = 'Не найдена процедура шифрования для токена.'")); + +КонецПроцедуры + +// Продолжение процедуры ПроверитьНаСторонеКлиента. +&НаКлиенте +Процедура ПослеШифрованияНаТокене(ЗашифрованныеДанные, Контекст) Экспорт + Если ТипЗнч(ЗашифрованныеДанные) = Тип("Строка") Тогда УстановитьЭлемент(ЭтотОбъект, "Шифрование", Ложь, ЗашифрованныеДанные, Истина, ОбъединятьРезультаты); + ПроверитьНаСторонеКлиентаДополнительныеПроверки(Контекст); Иначе Если ТипЗнч(ЗашифрованныеДанные) <> Тип("ДвоичныеДанные") Тогда УстановитьЭлемент(ЭтотОбъект, "Шифрование", Ложь, НСтр( "ru = 'Не удалось зашифровать данные средствами токена.'"), Истина, ОбъединятьРезультаты); + ПроверитьНаСторонеКлиентаДополнительныеПроверки(Контекст); Иначе УстановитьЭлемент(ЭтотОбъект, "Шифрование", Ложь, "", Ложь, ОбъединятьРезультаты); - ПараметрыРасшифровки = ЭлектроннаяПодписьСлужебныйКлиент.ПараметрыРасшифровкиНаТокене(Контекст.Токен, - Контекст.СертификатКриптографии); - РасшифрованныеДанные = Ждать ЭлектроннаяПодписьКлиентЛокализация.РасшифровкаНаТокене(ПараметрыРасшифровки, ЗашифрованныеДанные); - Если ТипЗнч(РасшифрованныеДанные) = Тип("Строка") Тогда - УстановитьЭлемент(ЭтотОбъект, "Расшифровка", Ложь, РасшифрованныеДанные, Истина, ОбъединятьРезультаты); - Иначе - УстановитьЭлемент(ЭтотОбъект, "Расшифровка", Ложь, "", Ложь, ОбъединятьРезультаты); + ПараметрыРасшифровки = ЭлектроннаяПодписьСлужебныйКлиент.ПараметрыРасшифровкиНаТокене(Контекст.Токен, + Контекст.СертификатКриптографии); + ОповещениеПослеОперацииНаТокене = Новый ОписаниеОповещения("ПослеРасшифровкиНаТокене", + ЭтотОбъект, Контекст); + СтандартнаяОбработка = Истина; + ЭлектроннаяПодписьКлиентЛокализация.ПриРасшифровкеНаТокене(ОповещениеПослеОперацииНаТокене, + ПараметрыРасшифровки, ЗашифрованныеДанные, СтандартнаяОбработка); + Если Не СтандартнаяОбработка Тогда + Возврат; КонецЕсли; + + ВыполнитьОбработкуОповещения(ОповещениеПослеОперацииНаТокене, + НСтр("ru = 'Не найдена процедура расшифровки для токена.'")); + КонецЕсли; КонецЕсли; - ПроверитьНаСторонеКлиентаДополнительныеПроверки(Контекст); +КонецПроцедуры + +// Продолжение процедуры ПроверитьНаСторонеКлиента. +&НаКлиенте +Процедура ПослеРасшифровкиНаТокене(РасшифрованныеДанные, Контекст) Экспорт + Если ТипЗнч(РасшифрованныеДанные) = Тип("Строка") Тогда + УстановитьЭлемент(ЭтотОбъект, "Расшифровка", Ложь, РасшифрованныеДанные, Истина, ОбъединятьРезультаты); + + Иначе + УстановитьЭлемент(ЭтотОбъект, "Расшифровка", Ложь, "", Ложь, ОбъединятьРезультаты); + КонецЕсли; + ПроверитьНаСторонеКлиентаДополнительныеПроверки(Контекст); КонецПроцедуры // Продолжение процедуры ПроверитьНаСторонеКлиента. diff --git a/SSL/src/Catalogs/СертификатыКлючейЭлектроннойПодписиИШифрования/Forms/ПросмотрДанных/Module.bsl b/SSL/src/Catalogs/СертификатыКлючейЭлектроннойПодписиИШифрования/Forms/ПросмотрДанных/Module.bsl index 29d1cbd5a..708519b34 100644 --- a/SSL/src/Catalogs/СертификатыКлючейЭлектроннойПодписиИШифрования/Forms/ПросмотрДанных/Module.bsl +++ b/SSL/src/Catalogs/СертификатыКлючейЭлектроннойПодписиИШифрования/Forms/ПросмотрДанных/Module.bsl @@ -1,5 +1,5 @@ /////////////////////////////////////////////////////////////////////////////////////////////////////// -// Copyright (c) 2024, ООО 1С-Софт +// Copyright (c) 2025, ООО 1С-Софт // Все права защищены. Эта программа и сопроводительные материалы предоставляются // в соответствии с условиями лицензии Attribution 4.0 International (CC BY 4.0) // Текст лицензии доступен по ссылке: diff --git a/SSL/src/Catalogs/СертификатыКлючейЭлектроннойПодписиИШифрования/Forms/РасшифровкаДанных/Form.form b/SSL/src/Catalogs/СертификатыКлючейЭлектроннойПодписиИШифрования/Forms/РасшифровкаДанных/Form.form index bea941fa3..bfbf5b2ff 100644 --- a/SSL/src/Catalogs/СертификатыКлючейЭлектроннойПодписиИШифрования/Forms/РасшифровкаДанных/Form.form +++ b/SSL/src/Catalogs/СертификатыКлючейЭлектроннойПодписиИШифрования/Forms/РасшифровкаДанных/Form.form @@ -292,7 +292,7 @@ </extendedTooltip> <type>UsualGroup</type> <extInfo xsi:type="form:UsualGroupExtInfo"> - <group>AlwaysHorizontal</group> + <group>HorizontalIfPossible</group> <showLeftMargin>true</showLeftMargin> <united>true</united> <throughAlign>Auto</throughAlign> diff --git a/SSL/src/Catalogs/СертификатыКлючейЭлектроннойПодписиИШифрования/Forms/РасшифровкаДанных/Module.bsl b/SSL/src/Catalogs/СертификатыКлючейЭлектроннойПодписиИШифрования/Forms/РасшифровкаДанных/Module.bsl index dc26ae506..c843ea2b0 100644 --- a/SSL/src/Catalogs/СертификатыКлючейЭлектроннойПодписиИШифрования/Forms/РасшифровкаДанных/Module.bsl +++ b/SSL/src/Catalogs/СертификатыКлючейЭлектроннойПодписиИШифрования/Forms/РасшифровкаДанных/Module.bsl @@ -1,5 +1,5 @@ /////////////////////////////////////////////////////////////////////////////////////////////////////// -// Copyright (c) 2024, ООО 1С-Софт +// Copyright (c) 2025, ООО 1С-Софт // Все права защищены. Эта программа и сопроводительные материалы предоставляются // в соответствии с условиями лицензии Attribution 4.0 International (CC BY 4.0) // Текст лицензии доступен по ссылке: diff --git a/SSL/src/Catalogs/СертификатыКлючейЭлектроннойПодписиИШифрования/Forms/РедактироватьИмяИОтчество/Module.bsl b/SSL/src/Catalogs/СертификатыКлючейЭлектроннойПодписиИШифрования/Forms/РедактироватьИмяИОтчество/Module.bsl index 37d5e9331..704a0c9db 100644 --- a/SSL/src/Catalogs/СертификатыКлючейЭлектроннойПодписиИШифрования/Forms/РедактироватьИмяИОтчество/Module.bsl +++ b/SSL/src/Catalogs/СертификатыКлючейЭлектроннойПодписиИШифрования/Forms/РедактироватьИмяИОтчество/Module.bsl @@ -1,5 +1,5 @@ /////////////////////////////////////////////////////////////////////////////////////////////////////// -// Copyright (c) 2024, ООО 1С-Софт +// Copyright (c) 2025, ООО 1С-Софт // Все права защищены. Эта программа и сопроводительные материалы предоставляются // в соответствии с условиями лицензии Attribution 4.0 International (CC BY 4.0) // Текст лицензии доступен по ссылке: diff --git a/SSL/src/Catalogs/СертификатыКлючейЭлектроннойПодписиИШифрования/Forms/СписокПользователей/Form.form b/SSL/src/Catalogs/СертификатыКлючейЭлектроннойПодписиИШифрования/Forms/СписокПользователей/Form.form index 28c3807ec..9a2236487 100644 --- a/SSL/src/Catalogs/СертификатыКлючейЭлектроннойПодписиИШифрования/Forms/СписокПользователей/Form.form +++ b/SSL/src/Catalogs/СертификатыКлючейЭлектроннойПодписиИШифрования/Forms/СписокПользователей/Form.form @@ -205,7 +205,6 @@ </contextMenu> <type>CheckBoxField</type> <editMode>Auto</editMode> - <showInHeader>true</showInHeader> <headerHorizontalAlign>Left</headerHorizontalAlign> <showInFooter>true</showInFooter> <extInfo xsi:type="form:CheckBoxFieldExtInfo"/> @@ -256,6 +255,51 @@ <textSize>Normal</textSize> </extInfo> </items> + <items xsi:type="form:FormField"> + <name>ТаблицаПользователейБезИспользованияКлюча</name> + <id>73</id> + <title> + <key>ru</key> + <value>Без использования ключа</value> + + true + true + + true + + + ТаблицаПользователей.БезИспользованияКлюча + + + ru + Разрешить пользователю применять сертификат при выполнении операций, не требующих использования ключа электронной подписи. Например, выбирать сертификат для шифрования. + + + OnChange + ТаблицаПользователейБезИспользованияКлючаПриИзменении + + + ТаблицаПользователейБезИспользованияКлючаРасширеннаяПодсказка + 75 + Label + true + true + + Left + + + + ТаблицаПользователейБезИспользованияКлючаКонтекстноеМеню + 74 + true + + CheckBoxField + Auto + true + Left + true + + ТаблицаПользователейКоманднаяПанель 9 @@ -438,6 +482,7 @@ true true MultiRow +
          true
          1 1 AutoUse @@ -548,6 +593,47 @@ Normal
          + + ВыбранныеПользователиБезИспользованияКлюча + 70 + + <key>ru</key> + <value>Без использования ключа</value> + + true + true + + true + + + ВыбранныеПользователи.БезИспользованияКлюча + + + ru + Разрешить пользователю применять сертификат при выполнении операций, не требующих использования ключа электронной подписи. Например, выбирать сертификат для шифрования. + + + ВыбранныеПользователиБезИспользованияКлючаРасширеннаяПодсказка + 72 + Label + true + true + + Left + + + + ВыбранныеПользователиБезИспользованияКлючаКонтекстноеМеню + 71 + true + + CheckBoxField + Auto + true + Left + true + + ВыбранныеПользователиКоманднаяПанель 52 @@ -650,6 +736,7 @@ true true MultiRow +
          true
          1 1 AutoUse @@ -820,6 +907,32 @@ UserCmds Auto + + Справка + 76 + true + true + + true + + + СправкаРасширеннаяПодсказка + 77 + Label + true + true + + Left + + + Form.StandardCommand.Help + Normal + Auto + true + true + UserCmds + Auto + true true @@ -925,6 +1038,23 @@ true + + БезИспользованияКлюча + + <key>ru</key> + <value>Без использования ключа</value> + + 4 + + Boolean + + + true + + + true + + СпособВыбора @@ -1003,6 +1133,23 @@ true + + БезИспользованияКлюча + + <key>ru</key> + <value>Без использования ключа</value> + + 1 + + Boolean + + + true + + + true + + ВладелецСертификата diff --git a/SSL/src/Catalogs/СертификатыКлючейЭлектроннойПодписиИШифрования/Forms/СписокПользователей/Help/ru.html b/SSL/src/Catalogs/СертификатыКлючейЭлектроннойПодписиИШифрования/Forms/СписокПользователей/Help/ru.html new file mode 100644 index 000000000..30f466b65 --- /dev/null +++ b/SSL/src/Catalogs/СертификатыКлючейЭлектроннойПодписиИШифрования/Forms/СписокПользователей/Help/ru.html @@ -0,0 +1,5 @@ + +

          Предназначена для настройки прав доступа к сертификату.

          +
          • Только я – при выборе сертификат будет доступен только текущему пользователю;
          • +
          • Указанные пользователи – при выборе появляется возможность настроить использование сертификата для нескольких пользователей в таблице.
          • +
            • Без использования ключа позволяет разрешить применение сертификата для операций, не требующих ключа (например, шифрования), но запрещает его использование в операциях, где ключ необходим (например, при подписании или расшифровке).
          \ No newline at end of file diff --git a/SSL/src/Catalogs/СертификатыКлючейЭлектроннойПодписиИШифрования/Forms/СписокПользователей/Module.bsl b/SSL/src/Catalogs/СертификатыКлючейЭлектроннойПодписиИШифрования/Forms/СписокПользователей/Module.bsl index 65dea44e6..a897691ba 100644 --- a/SSL/src/Catalogs/СертификатыКлючейЭлектроннойПодписиИШифрования/Forms/СписокПользователей/Module.bsl +++ b/SSL/src/Catalogs/СертификатыКлючейЭлектроннойПодписиИШифрования/Forms/СписокПользователей/Module.bsl @@ -1,5 +1,5 @@ /////////////////////////////////////////////////////////////////////////////////////////////////////// -// Copyright (c) 2024, ООО 1С-Софт +// Copyright (c) 2025, ООО 1С-Софт // Все права защищены. Эта программа и сопроводительные материалы предоставляются // в соответствии с условиями лицензии Attribution 4.0 International (CC BY 4.0) // Текст лицензии доступен по ссылке: @@ -46,6 +46,25 @@ #КонецОбласти +#Область ОбработчикиСобытийЭлементовТаблицыФормыТаблицаПользователей + +&НаКлиенте +Процедура ТаблицаПользователейБезИспользованияКлючаПриИзменении(Элемент) + + ТекущиеДанные = Элементы.ТаблицаПользователей.ТекущиеДанные; + Если ТекущиеДанные = Неопределено Тогда + Возврат; + КонецЕсли; + + Если ТекущиеДанные.Пометка = Ложь Тогда + ТекущиеДанные.БезИспользованияКлюча = Не ТекущиеДанные.БезИспользованияКлюча; + ПоказатьПредупреждение(, НСтр("ru = 'Необходимо сначала выбрать пользователя.'")); + КонецЕсли; + +КонецПроцедуры + +#КонецОбласти + #Область ОбработчикиСобытийЭлементовТаблицыФормыВыбранныеПользователи &НаКлиенте @@ -93,20 +112,23 @@ Если Элементы.ТаблицаПользователей.Видимость Тогда Для Каждого СтрокаПользователя Из ТаблицаПользователей Цикл Если СтрокаПользователя.Пометка Тогда - Результат.Пользователи.Добавить(СтрокаПользователя.Пользователь); + ДанныеПользователя = Новый Структура("Пользователь, БезИспользованияКлюча"); + ЗаполнитьЗначенияСвойств(ДанныеПользователя, СтрокаПользователя); + Результат.Пользователи.Добавить(ДанныеПользователя); КонецЕсли; КонецЦикла; Иначе Для Каждого СтрокаПользователя Из ВыбранныеПользователи Цикл - Результат.Пользователи.Добавить(СтрокаПользователя.Пользователь); + ДанныеПользователя = Новый Структура("Пользователь, БезИспользованияКлюча"); + ЗаполнитьЗначенияСвойств(ДанныеПользователя, СтрокаПользователя); + Результат.Пользователи.Добавить(ДанныеПользователя); КонецЦикла; КонецЕсли; Иначе - Результат.Пользователь = ПользователиКлиент.ТекущийПользователь(); + Результат.Пользователь = ПользователиКлиент.ТекущийПользователь(); КонецЕсли; Если Результат.Пользователи.Количество() = 1 Тогда - Результат.Пользователь = Результат.Пользователи[0]; - Результат.Пользователи.Очистить(); + Результат.Пользователь = Результат.Пользователи[0].Пользователь; КонецЕсли; КонецЕсли; @@ -206,12 +228,15 @@ МассивПользователей = Новый Массив; Если ПользователиСертификата <> Неопределено Тогда МассивПользователей = ПользователиСертификата; + ИначеЕсли ЗначениеЗаполнено(ВладелецСертификата) И СпособВыбора = "СписокПользователей" Тогда + ПараметрыДобавления = Новый Структура("Пользователь, БезИспользованияКлюча", ВладелецСертификата, Ложь); + МассивПользователей.Добавить(ПараметрыДобавления); КонецЕсли; - Если ЗначениеЗаполнено(ВладелецСертификата) - И СпособВыбора = "СписокПользователей" Тогда - МассивПользователей.Добавить(ВладелецСертификата); - КонецЕсли; + ПараметрПользователи = Новый Массив; + Для Каждого ДанныеПользователя Из МассивПользователей Цикл + ПараметрПользователи.Добавить(ДанныеПользователя.Пользователь); + КонецЦикла; ТекстЗапроса = "ВЫБРАТЬ РАЗРЕШЕННЫЕ @@ -240,18 +265,20 @@ | Пользователи.Наименование"; Запрос = Новый Запрос(ТекстЗапроса); - Запрос.УстановитьПараметр("Пользователи", МассивПользователей); + Запрос.УстановитьПараметр("Пользователи", ПараметрПользователи); Запрос.УстановитьПараметр("ТекущийПользователь", Пользователи.АвторизованныйПользователь()); Запрос.УстановитьПараметр("ПустойИдентификаторПользователяИБ", Новый УникальныйИдентификатор("00000000-0000-0000-0000-000000000000")); Запрос.УстановитьПараметр("ВладелецСертификата", ВладелецСертификата); Результат = Запрос.Выполнить().Выгрузить(); + ВыбранныеПользователи.Очистить(); + Если Результат.Количество() > 30 Тогда ВыбранныеПользователи.Очистить(); - Для Каждого Пользователь Из МассивПользователей Цикл + Для Каждого ДанныеПользователя Из МассивПользователей Цикл НоваяСтрока = ВыбранныеПользователи.Добавить(); - НоваяСтрока.Пользователь = Пользователь; - Если Пользователь = ВладелецСертификата Тогда + ЗаполнитьЗначенияСвойств(НоваяСтрока, ДанныеПользователя); + Если ДанныеПользователя.Пользователь = ВладелецСертификата Тогда НоваяСтрока.Основной = Истина; КонецЕсли; КонецЦикла; @@ -259,6 +286,14 @@ Элементы.ВыбранныеПользователи.Видимость = Истина; Иначе ТаблицаПользователей.Загрузить(Результат); + Для Каждого ДанныеПользователя Из МассивПользователей Цикл + ПараметрыПоиска = Новый Структура; + ПараметрыПоиска.Вставить("Пользователь", ДанныеПользователя.Пользователь); + СтрокаТаблицы = ТаблицаПользователей.НайтиСтроки(ПараметрыПоиска); + Если СтрокаТаблицы.Количество() > 0 Тогда + СтрокаТаблицы[0].БезИспользованияКлюча = ДанныеПользователя.БезИспользованияКлюча; + КонецЕсли; + КонецЦикла; Элементы.ТаблицаПользователей.Видимость = Истина; Элементы.ВыбранныеПользователи.Видимость = Ложь; КонецЕсли; diff --git a/SSL/src/Catalogs/СертификатыКлючейЭлектроннойПодписиИШифрования/Forms/УстановкаСертификата/Module.bsl b/SSL/src/Catalogs/СертификатыКлючейЭлектроннойПодписиИШифрования/Forms/УстановкаСертификата/Module.bsl index e59a44595..0dc9acbe7 100644 --- a/SSL/src/Catalogs/СертификатыКлючейЭлектроннойПодписиИШифрования/Forms/УстановкаСертификата/Module.bsl +++ b/SSL/src/Catalogs/СертификатыКлючейЭлектроннойПодписиИШифрования/Forms/УстановкаСертификата/Module.bsl @@ -1,5 +1,5 @@ /////////////////////////////////////////////////////////////////////////////////////////////////////// -// Copyright (c) 2024, ООО 1С-Софт +// Copyright (c) 2025, ООО 1С-Софт // Все права защищены. Эта программа и сопроводительные материалы предоставляются // в соответствии с условиями лицензии Attribution 4.0 International (CC BY 4.0) // Текст лицензии доступен по ссылке: diff --git a/SSL/src/Catalogs/СертификатыКлючейЭлектроннойПодписиИШифрования/Forms/ФормаВыбора/Module.bsl b/SSL/src/Catalogs/СертификатыКлючейЭлектроннойПодписиИШифрования/Forms/ФормаВыбора/Module.bsl index d0668532d..e6b303868 100644 --- a/SSL/src/Catalogs/СертификатыКлючейЭлектроннойПодписиИШифрования/Forms/ФормаВыбора/Module.bsl +++ b/SSL/src/Catalogs/СертификатыКлючейЭлектроннойПодписиИШифрования/Forms/ФормаВыбора/Module.bsl @@ -1,5 +1,5 @@ /////////////////////////////////////////////////////////////////////////////////////////////////////// -// Copyright (c) 2024, ООО 1С-Софт +// Copyright (c) 2025, ООО 1С-Софт // Все права защищены. Эта программа и сопроводительные материалы предоставляются // в соответствии с условиями лицензии Attribution 4.0 International (CC BY 4.0) // Текст лицензии доступен по ссылке: diff --git a/SSL/src/Catalogs/СертификатыКлючейЭлектроннойПодписиИШифрования/Forms/ФормаЭлемента/Form.form b/SSL/src/Catalogs/СертификатыКлючейЭлектроннойПодписиИШифрования/Forms/ФормаЭлемента/Form.form index 65b201209..c5a700802 100644 --- a/SSL/src/Catalogs/СертификатыКлючейЭлектроннойПодписиИШифрования/Forms/ФормаЭлемента/Form.form +++ b/SSL/src/Catalogs/СертификатыКлючейЭлектроннойПодписиИШифрования/Forms/ФормаЭлемента/Form.form @@ -3,6 +3,7 @@ ШапкаГруппа 325 + Usual ПредупреждениеГруппа 310 @@ -1929,6 +1930,37 @@ Auto InAdditionalSubmenu + + ФормаОчиститьПерсональныеНастройки + 334 + + <key>ru</key> + <value>Очистить персональные настройки</value> + + true + + true + + + ФормаОчиститьПерсональныеНастройкиРасширеннаяПодсказка + 335 + Label + true + true + + Left + + + Form.Command.ОчиститьПерсональныеНастройки + Normal + Auto + true + true + UserCmds + Balloon + Auto + InAdditionalSubmenu + ФормаПоказатьЗаявлениеПоКоторомуБылПолученСертификат 265 @@ -2545,6 +2577,28 @@ Auto Auto
          + + ОчиститьПерсональныеНастройки + + <key>ru</key> + <value>Очистить персональные настройки</value> + + 12 + + ru + Очищает персональные настройки сертификата: подписание непроверенным сертификатом, доверенность, выбранную для подписания. + + + true + + + + ОчиститьПерсональныеНастройки + + + Auto + Auto + @@ -2560,6 +2614,10 @@ AfterWrite ПослеЗаписи
          + + AfterWriteAtServer + ПослеЗаписиНаСервере + OnReadAtServer ПриЧтенииНаСервере diff --git a/SSL/src/Catalogs/СертификатыКлючейЭлектроннойПодписиИШифрования/Forms/ФормаЭлемента/Module.bsl b/SSL/src/Catalogs/СертификатыКлючейЭлектроннойПодписиИШифрования/Forms/ФормаЭлемента/Module.bsl index 9f58ca423..9e0eb94e3 100644 --- a/SSL/src/Catalogs/СертификатыКлючейЭлектроннойПодписиИШифрования/Forms/ФормаЭлемента/Module.bsl +++ b/SSL/src/Catalogs/СертификатыКлючейЭлектроннойПодписиИШифрования/Forms/ФормаЭлемента/Module.bsl @@ -1,5 +1,5 @@ /////////////////////////////////////////////////////////////////////////////////////////////////////// -// Copyright (c) 2024, ООО 1С-Софт +// Copyright (c) 2025, ООО 1С-Софт // Все права защищены. Эта программа и сопроводительные материалы предоставляются // в соответствии с условиями лицензии Attribution 4.0 International (CC BY 4.0) // Текст лицензии доступен по ссылке: @@ -37,9 +37,9 @@ Если Не ОткрытьЗаявление Тогда ВыпущенныеСертификаты = ОбработкаЗаявлениеНаВыпускНовогоКвалифицированногоСертификата.ВыпущенныеСертификаты(Объект.Ссылка); КонецЕсли; - Если Не ПравоДоступа("Добавление", Метаданные.Справочники.СертификатыКлючейЭлектроннойПодписиИШифрования) Тогда - ОбщегоНазначенияКлиентСервер.УстановитьСвойствоЭлементаФормы(Элементы, - "ФормаПеревыпуститьСертификат", "Видимость", Ложь); + Если Не ЭлектроннаяПодписьСлужебный.ЕстьПравоНаДобавлениеСертификатовВСправочник() Тогда + ОбщегоНазначенияКлиентСервер.УстановитьСвойствоЭлементаФормы(Элементы, + "ФормаПеревыпуститьСертификат", "Видимость", Ложь); КонецЕсли; Иначе ОбщегоНазначенияКлиентСервер.УстановитьСвойствоЭлементаФормы(Элементы, @@ -98,6 +98,13 @@ &НаСервере Процедура ПриЧтенииНаСервере(ТекущийОбъект) + // СтандартныеПодсистемы.УправлениеДоступом + Если ОбщегоНазначения.ПодсистемаСуществует("СтандартныеПодсистемы.УправлениеДоступом") Тогда + МодульУправлениеДоступом = ОбщегоНазначения.ОбщийМодуль("УправлениеДоступом"); + МодульУправлениеДоступом.ПриЧтенииНаСервере(ЭтотОбъект, ТекущийОбъект); + КонецЕсли; + // Конец СтандартныеПодсистемы.УправлениеДоступом + // СтандартныеПодсистемы.ПодключаемыеКоманды Если ОбщегоНазначения.ПодсистемаСуществует("СтандартныеПодсистемы.ПодключаемыеКоманды") Тогда МодульПодключаемыеКомандыКлиентСервер = ОбщегоНазначения.ОбщийМодуль("ПодключаемыеКомандыКлиентСервер"); @@ -109,6 +116,9 @@ ПриСозданииНаСервереПриЧтенииНаСервере(); КонецЕсли; + Элементы.ФормаОчиститьПерсональныеНастройки.Видимость = ПравоДоступа("СохранениеДанныхПользователя", + Метаданные); + КонецПроцедуры &НаКлиенте @@ -137,6 +147,18 @@ КонецПроцедуры +&НаСервере +Процедура ПослеЗаписиНаСервере(ТекущийОбъект, ПараметрыЗаписи) + + // СтандартныеПодсистемы.УправлениеДоступом + Если ОбщегоНазначения.ПодсистемаСуществует("СтандартныеПодсистемы.УправлениеДоступом") Тогда + МодульУправлениеДоступом = ОбщегоНазначения.ОбщийМодуль("УправлениеДоступом"); + МодульУправлениеДоступом.ПослеЗаписиНаСервере(ЭтотОбъект, ТекущийОбъект, ПараметрыЗаписи); + КонецЕсли; + // Конец СтандартныеПодсистемы.УправлениеДоступом + +КонецПроцедуры + &НаКлиенте Процедура ОбработкаОповещения(ИмяСобытия, Параметр, Источник) @@ -467,6 +489,15 @@ КонецПроцедуры // Конец СтандартныеПодсистемы.ПодключаемыеКоманды +&НаКлиенте +Процедура ОчиститьПерсональныеНастройки(Команда) + + ОбщегоНазначенияКлиент.ХранилищеОбщихНастроекУдалить(Объект.Ссылка, Неопределено, + ИмяПользователя()); + ПодписаниеРазрешено = Ложь; + +КонецПроцедуры + #КонецОбласти #Область СлужебныеПроцедурыИФункции @@ -776,7 +807,10 @@ Если РезультатВыбора <> Неопределено И ТипЗнч(РезультатВыбора) = Тип("Структура") Тогда Объект.Пользователи.Очистить(); Объект.Пользователь = РезультатВыбора.Пользователь; - ОбщегоНазначенияКлиентСервер.ДополнитьТаблицуИзМассива(Объект.Пользователи, РезультатВыбора.Пользователи, "Пользователь"); + Для Каждого ДанныеПользователя Из РезультатВыбора.Пользователи Цикл + НоваяСтрока = Объект.Пользователи.Добавить(); + ЗаполнитьЗначенияСвойств(НоваяСтрока, ДанныеПользователя); + КонецЦикла; ОформитьСписокПользователей(); Модифицированность = Истина; КонецЕсли; @@ -852,8 +886,10 @@ МассивПользователей = Новый Массив; Для Каждого СтрокаТаблицы Из Объект.Пользователи Цикл - МассивПользователей.Добавить(СтрокаТаблицы.Пользователь); - КонецЦикла; + ДанныеПользователя = Новый Структура("Пользователь, БезИспользованияКлюча"); + ЗаполнитьЗначенияСвойств(ДанныеПользователя, СтрокаТаблицы); + МассивПользователей.Добавить(ДанныеПользователя); + КонецЦикла; ОповещениеЗавершения = Новый ОписаниеОповещения("СписокПользователейЗавершение", ЭтотОбъект); diff --git a/SSL/src/Catalogs/СертификатыКлючейЭлектроннойПодписиИШифрования/Forms/ШифрованиеДанных/Module.bsl b/SSL/src/Catalogs/СертификатыКлючейЭлектроннойПодписиИШифрования/Forms/ШифрованиеДанных/Module.bsl index ef6904c7a..7cf35f98d 100644 --- a/SSL/src/Catalogs/СертификатыКлючейЭлектроннойПодписиИШифрования/Forms/ШифрованиеДанных/Module.bsl +++ b/SSL/src/Catalogs/СертификатыКлючейЭлектроннойПодписиИШифрования/Forms/ШифрованиеДанных/Module.bsl @@ -1,5 +1,5 @@ /////////////////////////////////////////////////////////////////////////////////////////////////////// -// Copyright (c) 2024, ООО 1С-Софт +// Copyright (c) 2025, ООО 1С-Софт // Все права защищены. Эта программа и сопроводительные материалы предоставляются // в соответствии с условиями лицензии Attribution 4.0 International (CC BY 4.0) // Текст лицензии доступен по ссылке: @@ -400,7 +400,7 @@ Запрос.УстановитьПараметр("Ссылки", Ссылки); Запрос.УстановитьПараметр("Отпечатки", Отпечатки); Запрос.Текст = - "ВЫБРАТЬ + "ВЫБРАТЬ РАЗРЕШЕННЫЕ | Сертификаты.Ссылка КАК Ссылка, | Сертификаты.Отпечаток КАК Отпечаток, | Сертификаты.Наименование КАК Представление, @@ -722,13 +722,16 @@ // Продолжение процедуры СоздатьМенеджерКриптографии. &НаКлиенте -Асинх Процедура ЗаполнитьПрограммуШифрованияПослеЦикла(Контекст) +Процедура ЗаполнитьПрограммуШифрованияПослеЦикла(Контекст) Если ЗначениеЗаполнено(Сертификат) И Не ЗначениеЗаполнено(СертификатПрограмма) И Не ЗначениеЗаполнено(ПрограммаАвто) Тогда - Токен = Ждать ЭлектроннаяПодписьСлужебныйКлиент.ПолучитьТокенПоСертификату(Контекст.СертификатШифрования); - Если Токен <> Неопределено Тогда - ПрограммаАвто = Токен; + СтандартнаяОбработка = Истина; + ЭлектроннаяПодписьКлиентЛокализация.ПриПолученииТокенаПоСертификату( + Новый ОписаниеОповещения("ЗаполнитьПрограммуШифрованияПослеПолученияТокенаПоСертификату", ЭтотОбъект, Контекст), + Контекст.СертификатШифрования, СтандартнаяОбработка, Истина); + Если Не СтандартнаяОбработка Тогда + Возврат; КонецЕсли; КонецЕсли; @@ -738,6 +741,17 @@ КонецПроцедуры +// Продолжение процедуры СоздатьМенеджерКриптографии. +&НаКлиенте +Процедура ЗаполнитьПрограммуШифрованияПослеПолученияТокенаПоСертификату(Токен, Контекст) Экспорт + Если ЗначениеЗаполнено(Токен) Тогда + ПрограммаАвто = Токен; + КонецЕсли; + Если Контекст.Оповещение <> Неопределено Тогда + ВыполнитьОбработкуОповещения(Контекст.Оповещение); + КонецЕсли; +КонецПроцедуры + &НаКлиенте Процедура ПродолжитьОткрытие(Оповещение, ОбщиеВнутренниеДанные, КлиентскиеПараметры) Экспорт @@ -1084,7 +1098,7 @@ Запрос = Новый Запрос; Запрос.УстановитьПараметр("Ссылки", Ссылки); Запрос.Текст = - "ВЫБРАТЬ + "ВЫБРАТЬ РАЗРЕШЕННЫЕ | Сертификаты.Ссылка КАК Ссылка, | Сертификаты.Наименование КАК Наименование, | Сертификаты.Программа, diff --git a/SSL/src/Catalogs/СертификатыКлючейЭлектроннойПодписиИШифрования/ManagerModule.bsl b/SSL/src/Catalogs/СертификатыКлючейЭлектроннойПодписиИШифрования/ManagerModule.bsl index 5f09d181d..40f481459 100644 --- a/SSL/src/Catalogs/СертификатыКлючейЭлектроннойПодписиИШифрования/ManagerModule.bsl +++ b/SSL/src/Catalogs/СертификатыКлючейЭлектроннойПодписиИШифрования/ManagerModule.bsl @@ -1,5 +1,5 @@ /////////////////////////////////////////////////////////////////////////////////////////////////////// -// Copyright (c) 2024, ООО 1С-Софт +// Copyright (c) 2025, ООО 1С-Софт // Все права защищены. Эта программа и сопроводительные материалы предоставляются // в соответствии с условиями лицензии Attribution 4.0 International (CC BY 4.0) // Текст лицензии доступен по ссылке: @@ -97,6 +97,24 @@ // Конец СтандартныеПодсистемы.ВариантыОтчетов +// СтандартныеПодсистемы.УправлениеДоступом + +// Параметры: +// Ограничение - см. УправлениеДоступомПереопределяемый.ПриЗаполненииОграниченияДоступа.Ограничение. +// +Процедура ПриЗаполненииОграниченияДоступа(Ограничение) Экспорт + + Ограничение.Текст = + "РазрешитьЧтениеИзменение + |ГДЕ + | ЗначениеРазрешено(Организация, ПустаяСсылка КАК Истина) + | И (ЗначениеРазрешено(Пользователь, ПустаяСсылка КАК Истина) + | ИЛИ ЗначениеРазрешено(Пользователи.Пользователь, ПустаяСсылка КАК Истина))"; + +КонецПроцедуры + +// Конец СтандартныеПодсистемы.УправлениеДоступом + #КонецОбласти #КонецОбласти diff --git a/SSL/src/Catalogs/СертификатыКлючейЭлектроннойПодписиИШифрования/ObjectModule.bsl b/SSL/src/Catalogs/СертификатыКлючейЭлектроннойПодписиИШифрования/ObjectModule.bsl index 33ec73049..b09ffeae9 100644 --- a/SSL/src/Catalogs/СертификатыКлючейЭлектроннойПодписиИШифрования/ObjectModule.bsl +++ b/SSL/src/Catalogs/СертификатыКлючейЭлектроннойПодписиИШифрования/ObjectModule.bsl @@ -1,5 +1,5 @@ /////////////////////////////////////////////////////////////////////////////////////////////////////// -// Copyright (c) 2024, ООО 1С-Софт +// Copyright (c) 2025, ООО 1С-Софт // Все права защищены. Эта программа и сопроводительные материалы предоставляются // в соответствии с условиями лицензии Attribution 4.0 International (CC BY 4.0) // Текст лицензии доступен по ссылке: diff --git a/SSL/src/Catalogs/СертификатыКлючейЭлектроннойПодписиИШифрования/СертификатыКлючейЭлектроннойПодписиИШифрования.mdo b/SSL/src/Catalogs/СертификатыКлючейЭлектроннойПодписиИШифрования/СертификатыКлючейЭлектроннойПодписиИШифрования.mdo index ee2b635c7..a4fb6ef36 100644 --- a/SSL/src/Catalogs/СертификатыКлючейЭлектроннойПодписиИШифрования/СертификатыКлючейЭлектроннойПодписиИШифрования.mdo +++ b/SSL/src/Catalogs/СертификатыКлючейЭлектроннойПодписиИШифрования/СертификатыКлючейЭлектроннойПодписиИШифрования.mdo @@ -636,6 +636,24 @@ Index Use + + БезИспользованияКлюча + + ru + Без использования ключа + + + Boolean + + + ru + Разрешить пользователю применять сертификат при выполнении операций, не требующих использования ключа электронной подписи. Например, выбирать сертификат для шифрования. + + + + Use + Use + ФормаЭлемента @@ -814,6 +832,11 @@ ru Список пользователей + + + ru + + PersonalComputer MobileDevice diff --git a/SSL/src/Catalogs/СообщениеSMSПрисоединенныеФайлы/ManagerModule.bsl b/SSL/src/Catalogs/СообщениеSMSПрисоединенныеФайлы/ManagerModule.bsl index d3e48151e..ccf8b6be2 100644 --- a/SSL/src/Catalogs/СообщениеSMSПрисоединенныеФайлы/ManagerModule.bsl +++ b/SSL/src/Catalogs/СообщениеSMSПрисоединенныеФайлы/ManagerModule.bsl @@ -1,5 +1,5 @@ /////////////////////////////////////////////////////////////////////////////////////////////////////// -// Copyright (c) 2024, ООО 1С-Софт +// Copyright (c) 2025, ООО 1С-Софт // Все права защищены. Эта программа и сопроводительные материалы предоставляются // в соответствии с условиями лицензии Attribution 4.0 International (CC BY 4.0) // Текст лицензии доступен по ссылке: diff --git a/SSL/src/Catalogs/СостоянияОригиналовПервичныхДокументов/Forms/ФормаВыбораСостояния/Module.bsl b/SSL/src/Catalogs/СостоянияОригиналовПервичныхДокументов/Forms/ФормаВыбораСостояния/Module.bsl index 6327ca29e..a9d89aa06 100644 --- a/SSL/src/Catalogs/СостоянияОригиналовПервичныхДокументов/Forms/ФормаВыбораСостояния/Module.bsl +++ b/SSL/src/Catalogs/СостоянияОригиналовПервичныхДокументов/Forms/ФормаВыбораСостояния/Module.bsl @@ -1,5 +1,5 @@ /////////////////////////////////////////////////////////////////////////////////////////////////////// -// Copyright (c) 2024, ООО 1С-Софт +// Copyright (c) 2025, ООО 1С-Софт // Все права защищены. Эта программа и сопроводительные материалы предоставляются // в соответствии с условиями лицензии Attribution 4.0 International (CC BY 4.0) // Текст лицензии доступен по ссылке: diff --git a/SSL/src/Catalogs/СостоянияОригиналовПервичныхДокументов/Forms/ФормаСписка/Module.bsl b/SSL/src/Catalogs/СостоянияОригиналовПервичныхДокументов/Forms/ФормаСписка/Module.bsl index 7d27ba044..a62fd75c8 100644 --- a/SSL/src/Catalogs/СостоянияОригиналовПервичныхДокументов/Forms/ФормаСписка/Module.bsl +++ b/SSL/src/Catalogs/СостоянияОригиналовПервичныхДокументов/Forms/ФормаСписка/Module.bsl @@ -1,5 +1,5 @@ /////////////////////////////////////////////////////////////////////////////////////////////////////// -// Copyright (c) 2024, ООО 1С-Софт +// Copyright (c) 2025, ООО 1С-Софт // Все права защищены. Эта программа и сопроводительные материалы предоставляются // в соответствии с условиями лицензии Attribution 4.0 International (CC BY 4.0) // Текст лицензии доступен по ссылке: diff --git a/SSL/src/Catalogs/СостоянияОригиналовПервичныхДокументов/Forms/ФормаЭлемента/Module.bsl b/SSL/src/Catalogs/СостоянияОригиналовПервичныхДокументов/Forms/ФормаЭлемента/Module.bsl index 174c6fe9a..bd70a0905 100644 --- a/SSL/src/Catalogs/СостоянияОригиналовПервичныхДокументов/Forms/ФормаЭлемента/Module.bsl +++ b/SSL/src/Catalogs/СостоянияОригиналовПервичныхДокументов/Forms/ФормаЭлемента/Module.bsl @@ -1,5 +1,5 @@ /////////////////////////////////////////////////////////////////////////////////////////////////////// -// Copyright (c) 2024, ООО 1С-Софт +// Copyright (c) 2025, ООО 1С-Софт // Все права защищены. Эта программа и сопроводительные материалы предоставляются // в соответствии с условиями лицензии Attribution 4.0 International (CC BY 4.0) // Текст лицензии доступен по ссылке: diff --git a/SSL/src/Catalogs/СостоянияОригиналовПервичныхДокументов/ManagerModule.bsl b/SSL/src/Catalogs/СостоянияОригиналовПервичныхДокументов/ManagerModule.bsl index 048cb3581..ba40e8bbb 100644 --- a/SSL/src/Catalogs/СостоянияОригиналовПервичныхДокументов/ManagerModule.bsl +++ b/SSL/src/Catalogs/СостоянияОригиналовПервичныхДокументов/ManagerModule.bsl @@ -1,5 +1,5 @@ /////////////////////////////////////////////////////////////////////////////////////////////////////// -// Copyright (c) 2024, ООО 1С-Софт +// Copyright (c) 2025, ООО 1С-Софт // Все права защищены. Эта программа и сопроводительные материалы предоставляются // в соответствии с условиями лицензии Attribution 4.0 International (CC BY 4.0) // Текст лицензии доступен по ссылке: diff --git a/SSL/src/Catalogs/СтраныМира/Forms/Классификатор/Module.bsl b/SSL/src/Catalogs/СтраныМира/Forms/Классификатор/Module.bsl index c1fab412a..7c244df15 100644 --- a/SSL/src/Catalogs/СтраныМира/Forms/Классификатор/Module.bsl +++ b/SSL/src/Catalogs/СтраныМира/Forms/Классификатор/Module.bsl @@ -1,5 +1,5 @@ /////////////////////////////////////////////////////////////////////////////////////////////////////// -// Copyright (c) 2024, ООО 1С-Софт +// Copyright (c) 2025, ООО 1С-Софт // Все права защищены. Эта программа и сопроводительные материалы предоставляются // в соответствии с условиями лицензии Attribution 4.0 International (CC BY 4.0) // Текст лицензии доступен по ссылке: diff --git a/SSL/src/Catalogs/СтраныМира/Forms/ФормаСписка/Module.bsl b/SSL/src/Catalogs/СтраныМира/Forms/ФормаСписка/Module.bsl index 50e78355f..63113c80f 100644 --- a/SSL/src/Catalogs/СтраныМира/Forms/ФормаСписка/Module.bsl +++ b/SSL/src/Catalogs/СтраныМира/Forms/ФормаСписка/Module.bsl @@ -1,5 +1,5 @@ /////////////////////////////////////////////////////////////////////////////////////////////////////// -// Copyright (c) 2024, ООО 1С-Софт +// Copyright (c) 2025, ООО 1С-Софт // Все права защищены. Эта программа и сопроводительные материалы предоставляются // в соответствии с условиями лицензии Attribution 4.0 International (CC BY 4.0) // Текст лицензии доступен по ссылке: diff --git a/SSL/src/Catalogs/СтраныМира/Forms/ФормаЭлемента/Module.bsl b/SSL/src/Catalogs/СтраныМира/Forms/ФормаЭлемента/Module.bsl index b8e626580..7f89fc832 100644 --- a/SSL/src/Catalogs/СтраныМира/Forms/ФормаЭлемента/Module.bsl +++ b/SSL/src/Catalogs/СтраныМира/Forms/ФормаЭлемента/Module.bsl @@ -1,5 +1,5 @@ /////////////////////////////////////////////////////////////////////////////////////////////////////// -// Copyright (c) 2024, ООО 1С-Софт +// Copyright (c) 2025, ООО 1С-Софт // Все права защищены. Эта программа и сопроводительные материалы предоставляются // в соответствии с условиями лицензии Attribution 4.0 International (CC BY 4.0) // Текст лицензии доступен по ссылке: diff --git a/SSL/src/Catalogs/СтраныМира/ManagerModule.bsl b/SSL/src/Catalogs/СтраныМира/ManagerModule.bsl index bbb203c38..73b8b5360 100644 --- a/SSL/src/Catalogs/СтраныМира/ManagerModule.bsl +++ b/SSL/src/Catalogs/СтраныМира/ManagerModule.bsl @@ -1,5 +1,5 @@ /////////////////////////////////////////////////////////////////////////////////////////////////////// -// Copyright (c) 2024, ООО 1С-Софт +// Copyright (c) 2025, ООО 1С-Софт // Все права защищены. Эта программа и сопроводительные материалы предоставляются // в соответствии с условиями лицензии Attribution 4.0 International (CC BY 4.0) // Текст лицензии доступен по ссылке: diff --git a/SSL/src/Catalogs/СтраныМира/ObjectModule.bsl b/SSL/src/Catalogs/СтраныМира/ObjectModule.bsl index 4d6dfe67d..5520d45b3 100644 --- a/SSL/src/Catalogs/СтраныМира/ObjectModule.bsl +++ b/SSL/src/Catalogs/СтраныМира/ObjectModule.bsl @@ -1,5 +1,5 @@ /////////////////////////////////////////////////////////////////////////////////////////////////////// -// Copyright (c) 2024, ООО 1С-Софт +// Copyright (c) 2025, ООО 1С-Софт // Все права защищены. Эта программа и сопроводительные материалы предоставляются // в соответствии с условиями лицензии Attribution 4.0 International (CC BY 4.0) // Текст лицензии доступен по ссылке: diff --git a/SSL/src/Catalogs/СтраныМира/Templates/Классификатор/Template.txt b/SSL/src/Catalogs/СтраныМира/Templates/Классификатор/Template.txt index 507ce17a2..bdd5102c3 100644 --- a/SSL/src/Catalogs/СтраныМира/Templates/Классификатор/Template.txt +++ b/SSL/src/Catalogs/СтраныМира/Templates/Классификатор/Template.txt @@ -458,7 +458,7 @@ Hungary - ВЕНЕСУЭЛА БОЛИВАРИАНСКАЯ РЕСПУБЛИКА + ВЕНЕСУЭЛА, БОЛИВАРИАНСКАЯ РЕСПУБЛИКА VE VEN 862 @@ -872,7 +872,7 @@ IS ISL 352 - Республика Исландия + false false Iceland @@ -1518,7 +1518,7 @@ Nigeria - НИДЕРЛАНДЫ + НИДЕРЛАНДЫ, КОРОЛЕВСТВО NL NLD 528 @@ -2048,11 +2048,11 @@ Slovenia - СОЕДИНЕННОЕ КОРОЛЕВСТВО + СОЕДИНЕННОЕ КОРОЛЕВСТВО ВЕЛИКОБРИТАНИИ И СЕВЕРНОЙ ИРЛАНДИИ GB GBR 826 - Соединенное Королевство Великобритании и Северной Ирландии + false false The United Kingdom Of Great Britain And Northern Ireland @@ -2498,7 +2498,7 @@ Equatorial Guinea - ЭЛАНДСКИЕ ОСТРОВА + АЛАНДСКИЕ ОСТРОВА АХ ALA 248 diff --git a/SSL/src/Catalogs/СтроковыеКонтактыВзаимодействий/ManagerModule.bsl b/SSL/src/Catalogs/СтроковыеКонтактыВзаимодействий/ManagerModule.bsl index 219f5d1fb..990b03003 100644 --- a/SSL/src/Catalogs/СтроковыеКонтактыВзаимодействий/ManagerModule.bsl +++ b/SSL/src/Catalogs/СтроковыеКонтактыВзаимодействий/ManagerModule.bsl @@ -1,5 +1,5 @@ /////////////////////////////////////////////////////////////////////////////////////////////////////// -// Copyright (c) 2024, ООО 1С-Софт +// Copyright (c) 2025, ООО 1С-Софт // Все права защищены. Эта программа и сопроводительные материалы предоставляются // в соответствии с условиями лицензии Attribution 4.0 International (CC BY 4.0) // Текст лицензии доступен по ссылке: diff --git a/SSL/src/Catalogs/СценарииОбменовДанными/Forms/ВыборУзлаПланаОбмена/Module.bsl b/SSL/src/Catalogs/СценарииОбменовДанными/Forms/ВыборУзлаПланаОбмена/Module.bsl index c48a117a5..6ebc32dc3 100644 --- a/SSL/src/Catalogs/СценарииОбменовДанными/Forms/ВыборУзлаПланаОбмена/Module.bsl +++ b/SSL/src/Catalogs/СценарииОбменовДанными/Forms/ВыборУзлаПланаОбмена/Module.bsl @@ -1,5 +1,5 @@ /////////////////////////////////////////////////////////////////////////////////////////////////////// -// Copyright (c) 2024, ООО 1С-Софт +// Copyright (c) 2025, ООО 1С-Софт // Все права защищены. Эта программа и сопроводительные материалы предоставляются // в соответствии с условиями лицензии Attribution 4.0 International (CC BY 4.0) // Текст лицензии доступен по ссылке: diff --git a/SSL/src/Catalogs/СценарииОбменовДанными/Forms/НастройкаРасписанияОбменовДанными/Module.bsl b/SSL/src/Catalogs/СценарииОбменовДанными/Forms/НастройкаРасписанияОбменовДанными/Module.bsl index 6a5476a50..f88a204cf 100644 --- a/SSL/src/Catalogs/СценарииОбменовДанными/Forms/НастройкаРасписанияОбменовДанными/Module.bsl +++ b/SSL/src/Catalogs/СценарииОбменовДанными/Forms/НастройкаРасписанияОбменовДанными/Module.bsl @@ -1,5 +1,5 @@ /////////////////////////////////////////////////////////////////////////////////////////////////////// -// Copyright (c) 2024, ООО 1С-Софт +// Copyright (c) 2025, ООО 1С-Софт // Все права защищены. Эта программа и сопроводительные материалы предоставляются // в соответствии с условиями лицензии Attribution 4.0 International (CC BY 4.0) // Текст лицензии доступен по ссылке: diff --git a/SSL/src/Catalogs/СценарииОбменовДанными/Forms/ФормаСписка/Module.bsl b/SSL/src/Catalogs/СценарииОбменовДанными/Forms/ФормаСписка/Module.bsl index 59378f580..fcb851f57 100644 --- a/SSL/src/Catalogs/СценарииОбменовДанными/Forms/ФормаСписка/Module.bsl +++ b/SSL/src/Catalogs/СценарииОбменовДанными/Forms/ФормаСписка/Module.bsl @@ -1,5 +1,5 @@ /////////////////////////////////////////////////////////////////////////////////////////////////////// -// Copyright (c) 2024, ООО 1С-Софт +// Copyright (c) 2025, ООО 1С-Софт // Все права защищены. Эта программа и сопроводительные материалы предоставляются // в соответствии с условиями лицензии Attribution 4.0 International (CC BY 4.0) // Текст лицензии доступен по ссылке: diff --git a/SSL/src/Catalogs/СценарииОбменовДанными/Forms/ФормаЭлемента/Help/ru.html b/SSL/src/Catalogs/СценарииОбменовДанными/Forms/ФормаЭлемента/Help/ru.html index 5831363c4..b13f772e6 100644 --- a/SSL/src/Catalogs/СценарииОбменовДанными/Forms/ФормаЭлемента/Help/ru.html +++ b/SSL/src/Catalogs/СценарииОбменовДанными/Forms/ФормаЭлемента/Help/ru.html @@ -1,13 +1,19 @@ -

          Основное назначение сценария - это выполнение синхронизации данных автоматически по заданному расписанию. Сценарий необходим для задания расписания и порядка отправки и получения данных.

          +

          ъОсновное назначение сценария - это выполнение синхронизации данных автоматически по заданному расписанию. Сценарий необходим для задания расписания и порядка отправки и получения данных.

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

          Настройка сценария синхронизации

          -
          • Введите Наименование сценария. Необходимо указать наименования баз данных, участвующих в синхронизации, редакцию программы, для того чтобы все пользователи могли понять назначение данного сценария. -
          • Настройте расписание выполнения сценария синхронизации данных. -
            • Включите флажок Автоматически по расписанию. После этого становится доступной для выбора ссылка (По умолчанию равна Расписание не задано). Нажмите ссылку для того чтобы задать расписание. После подтверждения расписания ссылка показывает составленное расписание.
          • Выберите информационные базы, для которых будет выполняться сценарий синхронизации данных (как правило, сценарий настраивается для обмена с одной информационной базой и включает отправку и получение данных). Для каждой информационной базы выберите способ подключения и выполняемое действие (отправка или получение). Нажмите Добавить, заполните соответствующие колонки: -
            • Информационная база -  Выберите тип данных. Затем из предложенного списка нужного типа выберите информационную базу; -
            • Подключение - выберите способ подключения из списка (зависит от свойств выбранной информационной базы); -
            • Выполняемое действие - с помощью кнопки Выберите Получение или Отправка данных;
          • Напишите Комментарий - краткое описание сценария.

          Выполнение сценария

          -
          • Нажмите  Выполнить сценарий. Будет предпринята попытка синхронизации данных. Перечисленные в сценарии действия будут выполняться последовательно. После того как синхронизация данных проведена, неудачные получения или отправки данных отмечаются значком  в колонке Информационная база.

          См. также:

          +
          • Введите Наименование сценария. Необходимо указать наименования приложений, участвующих в синхронизации, редакцию приложения, для того чтобы все пользователи могли понять назначение данного сценария. +
          • +
          • Настройте расписание выполнения сценария синхронизации данных. +
            • Включите флажок Автоматически по расписанию. После этого становится доступной для выбора ссылка (По умолчанию равна Расписание не задано). Нажмите ссылку для того чтобы задать расписание. После подтверждения расписания ссылка показывает составленное расписание.
          • +
          • Выберите приложения, для которых будет выполняться сценарий синхронизации данных (как правило, сценарий настраивается для обмена с одним приложением и включает отправку и получение данных). Для каждого приложения выберите способ подключения и выполняемое действие (отправка или получение). Нажмите Добавить, заполните соответствующие колонки: +
            • Приложение -  Выберите тип данных. Затем из предложенного списка нужного типа выберите приложение; +
            • +
            • Подключение - выберите способ подключения из списка (зависит от свойств выбранного приложения); +
            • +
            • Выполняемое действие - с помощью кнопки Выберите Получение или Отправка данных;
          • +
          • Напишите Комментарий - краткое описание сценария.

          Выполнение сценария

          +
          • Нажмите  Выполнить сценарий. Будет предпринята попытка синхронизации данных. Перечисленные в сценарии действия будут выполняться последовательно. После того как синхронизация данных проведена, неудачные получения или отправки данных отмечаются значком  в колонке Приложение.

          См. также:

          \ No newline at end of file + +
        • Работа с формами.
        • \ No newline at end of file diff --git a/SSL/src/Catalogs/СценарииОбменовДанными/Forms/ФормаЭлемента/Module.bsl b/SSL/src/Catalogs/СценарииОбменовДанными/Forms/ФормаЭлемента/Module.bsl index a5ecfd341..8f56d96b1 100644 --- a/SSL/src/Catalogs/СценарииОбменовДанными/Forms/ФормаЭлемента/Module.bsl +++ b/SSL/src/Catalogs/СценарииОбменовДанными/Forms/ФормаЭлемента/Module.bsl @@ -1,5 +1,5 @@ /////////////////////////////////////////////////////////////////////////////////////////////////////// -// Copyright (c) 2024, ООО 1С-Софт +// Copyright (c) 2025, ООО 1С-Софт // Все права защищены. Эта программа и сопроводительные материалы предоставляются // в соответствии с условиями лицензии Attribution 4.0 International (CC BY 4.0) // Текст лицензии доступен по ссылке: diff --git a/SSL/src/Catalogs/СценарииОбменовДанными/ManagerModule.bsl b/SSL/src/Catalogs/СценарииОбменовДанными/ManagerModule.bsl index bd49c0a9c..c60019f1f 100644 --- a/SSL/src/Catalogs/СценарииОбменовДанными/ManagerModule.bsl +++ b/SSL/src/Catalogs/СценарииОбменовДанными/ManagerModule.bsl @@ -1,5 +1,5 @@ /////////////////////////////////////////////////////////////////////////////////////////////////////// -// Copyright (c) 2024, ООО 1С-Софт +// Copyright (c) 2025, ООО 1С-Софт // Все права защищены. Эта программа и сопроводительные материалы предоставляются // в соответствии с условиями лицензии Attribution 4.0 International (CC BY 4.0) // Текст лицензии доступен по ссылке: @@ -114,7 +114,7 @@ // НастройкаВыполненияОбмена - Структура - структура настроек выполнения обмена // // Возвращаемое значение: -// РасписаниеРегламентногоЗадания - Получить расписание выполнения обмена данными +// РасписаниеРегламентногоЗадания - получить расписание выполнения обмена данными // Функция ПолучитьРасписаниеВыполненияОбменаДанными(НастройкаВыполненияОбмена) Экспорт diff --git a/SSL/src/Catalogs/СценарииОбменовДанными/ObjectModule.bsl b/SSL/src/Catalogs/СценарииОбменовДанными/ObjectModule.bsl index 1d32814c9..23c2fb3ed 100644 --- a/SSL/src/Catalogs/СценарииОбменовДанными/ObjectModule.bsl +++ b/SSL/src/Catalogs/СценарииОбменовДанными/ObjectModule.bsl @@ -1,5 +1,5 @@ /////////////////////////////////////////////////////////////////////////////////////////////////////// -// Copyright (c) 2024, ООО 1С-Софт +// Copyright (c) 2025, ООО 1С-Софт // Все права защищены. Эта программа и сопроводительные материалы предоставляются // в соответствии с условиями лицензии Attribution 4.0 International (CC BY 4.0) // Текст лицензии доступен по ссылке: diff --git a/SSL/src/Catalogs/ТелефонныйЗвонокПрисоединенныеФайлы/ManagerModule.bsl b/SSL/src/Catalogs/ТелефонныйЗвонокПрисоединенныеФайлы/ManagerModule.bsl index d3e48151e..ccf8b6be2 100644 --- a/SSL/src/Catalogs/ТелефонныйЗвонокПрисоединенныеФайлы/ManagerModule.bsl +++ b/SSL/src/Catalogs/ТелефонныйЗвонокПрисоединенныеФайлы/ManagerModule.bsl @@ -1,5 +1,5 @@ /////////////////////////////////////////////////////////////////////////////////////////////////////// -// Copyright (c) 2024, ООО 1С-Софт +// Copyright (c) 2025, ООО 1С-Софт // Все права защищены. Эта программа и сопроводительные материалы предоставляются // в соответствии с условиями лицензии Attribution 4.0 International (CC BY 4.0) // Текст лицензии доступен по ссылке: diff --git a/SSL/src/Catalogs/ТомаХраненияФайлов/Commands/ТомаАрхивногоХранения/CommandModule.bsl b/SSL/src/Catalogs/ТомаХраненияФайлов/Commands/ТомаАрхивногоХранения/CommandModule.bsl new file mode 100644 index 000000000..1d6317d0b --- /dev/null +++ b/SSL/src/Catalogs/ТомаХраненияФайлов/Commands/ТомаАрхивногоХранения/CommandModule.bsl @@ -0,0 +1,30 @@ +/////////////////////////////////////////////////////////////////////////////////////////////////////// +// Copyright (c) 2025, ООО 1С-Софт +// Все права защищены. Эта программа и сопроводительные материалы предоставляются +// в соответствии с условиями лицензии Attribution 4.0 International (CC BY 4.0) +// Текст лицензии доступен по ссылке: +// https://creativecommons.org/licenses/by/4.0/legalcode +/////////////////////////////////////////////////////////////////////////////////////////////////////// + +#Область ОбработчикиСобытий + +&НаКлиенте +Процедура ОбработкаКоманды(ПараметрКоманды, ПараметрыВыполненияКоманды) + + ЗначениеДляОтбора = ОбщегоНазначенияКлиент.ПредопределенныйЭлемент("Перечисление.ВидыХраненияФайлов.АрхивноеХранение"); + + Отбор = Новый Структура("ВидТомаХраненияФайлов", ЗначениеДляОтбора); + + ПараметрыФормы = Новый Структура; + ПараметрыФормы.Вставить("Отбор", Отбор); + ПараметрыФормы.Вставить("ЗначениеОтбораПоВидуТомаХраненияФайлов", ЗначениеДляОтбора); + + ОткрытьФорму("Справочник.ТомаХраненияФайлов.ФормаСписка", + ПараметрыФормы, + ПараметрыВыполненияКоманды.Источник, + ПараметрыВыполненияКоманды.Уникальность, + ПараметрыВыполненияКоманды.Окно); + +КонецПроцедуры + +#КонецОбласти \ No newline at end of file diff --git a/SSL/src/Catalogs/ТомаХраненияФайлов/Forms/УдалениеЛишнихФайловИзТома/Module.bsl b/SSL/src/Catalogs/ТомаХраненияФайлов/Forms/УдалениеЛишнихФайловИзТома/Module.bsl index 25ae76b99..dcf1d1db1 100644 --- a/SSL/src/Catalogs/ТомаХраненияФайлов/Forms/УдалениеЛишнихФайловИзТома/Module.bsl +++ b/SSL/src/Catalogs/ТомаХраненияФайлов/Forms/УдалениеЛишнихФайловИзТома/Module.bsl @@ -1,5 +1,5 @@ /////////////////////////////////////////////////////////////////////////////////////////////////////// -// Copyright (c) 2024, ООО 1С-Софт +// Copyright (c) 2025, ООО 1С-Софт // Все права защищены. Эта программа и сопроводительные материалы предоставляются // в соответствии с условиями лицензии Attribution 4.0 International (CC BY 4.0) // Текст лицензии доступен по ссылке: diff --git a/SSL/src/Catalogs/ТомаХраненияФайлов/Forms/ФормаСписка/Form.form b/SSL/src/Catalogs/ТомаХраненияФайлов/Forms/ФормаСписка/Form.form index a9e8af30b..b7983b3f2 100644 --- a/SSL/src/Catalogs/ТомаХраненияФайлов/Forms/ФормаСписка/Form.form +++ b/SSL/src/Catalogs/ТомаХраненияФайлов/Forms/ФормаСписка/Form.form @@ -1,5 +1,9 @@ + + <key>ru</key> + <value>Тома хранения файлов</value> + ГруппаПользовательскихНастроек 62 @@ -177,6 +181,71 @@ Form + + ГруппаУправлениеХранилищамиДвоичныхДанных + 84 + + КнопкаУправлениеХранилищамиДвоичныхДанных + 86 + + <key>ru</key> + <value>Управление хранилищами двоичных данных</value> + + true + true + + true + + + КнопкаУправлениеХранилищамиДвоичныхДанныхРасширеннаяПодсказка + 87 + Label + true + true + + Left + + + Hyperlink + Form.Command.НастроитьХранилищаДвоичныхДанных + Normal + Auto + true + true + Right + UserCmds + Auto + + true + true + + true + + + <key>ru</key> + <value>Управление хранилищами двоичных данных</value> + + Right + + ГруппаУправлениеХранилищамиДвоичныхДанныхРасширеннаяПодсказка + 85 + Label + true + true + + Left + + + UsualGroup + + AlwaysHorizontal + WeakSeparation + true + true + Auto + Auto + + Список 1 @@ -558,6 +627,42 @@ true + + СписокВидТомаХраненияФайлов + 81 + true + true + + true + + + Список.ВидТомаХраненияФайлов + + + СписокВидТомаХраненияФайловРасширеннаяПодсказка + 83 + Label + true + true + + Left + + + + СписокВидТомаХраненияФайловКонтекстноеМеню + 82 + true + + LabelField + Enter + true + Left + true + + true + true + + None СписокКоманднаяПанель @@ -735,7 +840,6 @@ SetDeletionMark DontBlock true - true true Vertical true @@ -778,6 +882,19 @@ true + + ОбрабатываемыйВидТомаХраненияФайлов + 2 + + EnumRef.ВидыХраненияФайлов + + + true + + + true + + УстановкаПометкиУдаления @@ -844,6 +961,34 @@ <currentRowUse>Auto</currentRowUse> <selectedRowsUse>Auto</selectedRowsUse> </formCommands> + <formCommands> + <name>НастроитьХранилищаДвоичныхДанных</name> + <title> + <key>ru</key> + <value>Настроить хранилища двоичных данных</value> + + 4 + + ru + Настроить хранилища двоичных данных + + + true + + + + НастроитьХранилищаДвоичныхДанных + + + Auto + Auto + + + ЗначениеОтбораПоВидуТомаХраненияФайлов + + EnumRef.ВидыХраненияФайлов + + diff --git a/SSL/src/Catalogs/ТомаХраненияФайлов/Forms/ФормаСписка/Module.bsl b/SSL/src/Catalogs/ТомаХраненияФайлов/Forms/ФормаСписка/Module.bsl index e2b0b8b5b..1d19632e2 100644 --- a/SSL/src/Catalogs/ТомаХраненияФайлов/Forms/ФормаСписка/Module.bsl +++ b/SSL/src/Catalogs/ТомаХраненияФайлов/Forms/ФормаСписка/Module.bsl @@ -1,5 +1,5 @@ /////////////////////////////////////////////////////////////////////////////////////////////////////// -// Copyright (c) 2024, ООО 1С-Софт +// Copyright (c) 2025, ООО 1С-Софт // Все права защищены. Эта программа и сопроводительные материалы предоставляются // в соответствии с условиями лицензии Attribution 4.0 International (CC BY 4.0) // Текст лицензии доступен по ссылке: @@ -25,7 +25,23 @@ Элементы.ПроверитьЦелостность.Видимость = Не ОбщегоНазначения.ПодсистемаСуществует("СтандартныеПодсистемы.ПодключаемыеКоманды") Или Не ОбщегоНазначения.ПодсистемаСуществует("СтандартныеПодсистемы.ВариантыОтчетов") Или Не ОбщегоНазначения.ДоступноИспользованиеРазделенныхДанных(); + + ОбрабатываемыйВидТомаХраненияФайлов = Параметры.ЗначениеОтбораПоВидуТомаХраненияФайлов; + Если Не ЗначениеЗаполнено(ОбрабатываемыйВидТомаХраненияФайлов) Тогда + ОбрабатываемыйВидТомаХраненияФайлов = Перечисления.ВидыХраненияФайлов.ОперационноеХранение; + Параметры.Отбор.Вставить("ВидТомаХраненияФайлов", ОбрабатываемыйВидТомаХраненияФайлов); + КонецЕсли; + + Элементы.ПеренестиВсеФайлыВТома.Видимость = ОбрабатываемыйВидТомаХраненияФайлов = Перечисления.ВидыХраненияФайлов.ОперационноеХранение; + + Элементы.СписокВидТомаХраненияФайлов.Видимость = Не ЗначениеЗаполнено(ОбрабатываемыйВидТомаХраненияФайлов); + Элементы.ГруппаУправлениеХранилищамиДвоичныхДанных.Видимость = РаботаСФайловымАрхивомСервер.ДоступныХранилищаДвоичныхДанных(); + + Если РаботаСФайловымАрхивомСервер.ИспользоватьФайловыйАрхив() Тогда + Заголовок = СтроковыеФункцииКлиентСервер.ПодставитьПараметрыВСтроку("%1 (%2)", Заголовок, ОбрабатываемыйВидТомаХраненияФайлов); + КонецЕсли + КонецПроцедуры #КонецОбласти @@ -74,6 +90,10 @@ Возврат; КонецЕсли; + Если Не ДоступнаПроверкаЦелостностиТома(ТекущиеДанные.Ссылка) Тогда + Возврат; + КонецЕсли; + ПараметрыОтчета = Новый Структура(); ПараметрыОтчета.Вставить("СформироватьПриОткрытии", Истина); ПараметрыОтчета.Вставить("Отбор", Новый Структура("Том", ТекущиеДанные.Ссылка)); @@ -86,6 +106,13 @@ &НаКлиенте Процедура Подключаемый_ВыполнитьКоманду(Команда) Если ОбщегоНазначенияКлиент.ПодсистемаСуществует("СтандартныеПодсистемы.ПодключаемыеКоманды") Тогда + Если Команда.Имя = "ПодменюОтчетыОбычное__ПроверкаЦелостностиТома" Тогда + ТекущиеДанные = Элементы.Список.ТекущиеДанные; + Если ТекущиеДанные <> Неопределено И Не ДоступнаПроверкаЦелостностиТома(ТекущиеДанные.Ссылка) Тогда + Возврат; + КонецЕсли; + КонецЕсли; + МодульПодключаемыеКомандыКлиент = ОбщегоНазначенияКлиент.ОбщийМодуль("ПодключаемыеКомандыКлиент"); МодульПодключаемыеКомандыКлиент.НачатьВыполнениеКоманды(ЭтотОбъект, Команда, Элементы.Список); КонецЕсли; @@ -114,6 +141,13 @@ // Конец СтандартныеПодсистемы.ПодключаемыеКоманды +&НаКлиенте +Процедура НастроитьХранилищаДвоичныхДанных(Команда) + + ОткрытьФорму("Обработка.УправлениеХранилищемДвоичныхДанных.Форма.СписокХранилищ", , ЭтотОбъект,,,,,РежимОткрытияОкнаФормы.БлокироватьВесьИнтерфейс); + +КонецПроцедуры + #КонецОбласти #Область СлужебныеПроцедурыИФункции @@ -225,4 +259,24 @@ КонецПроцедуры +&НаСервереБезКонтекста +Функция ЭтоТомХраненияНаДисках(Знач ТомХраненияСсылка) + + Возврат Справочники.ТомаХраненияФайлов.ЭтоТомХраненияНаДисках(ТомХраненияСсылка); + +КонецФункции + +&НаКлиенте +Функция ДоступнаПроверкаЦелостностиТома(ТомХраненияФайлаСсылка) + + Результат = ЭтоТомХраненияНаДисках(ТомХраненияФайлаСсылка); + + Если Не Результат Тогда + ПоказатьПредупреждение(,НСтр("ru = 'Проверка целостности предусмотрена только для томов со способом хранения ""В сетевых каталогах""'")); + КонецЕсли; + + Возврат Результат; + +КонецФункции + #КонецОбласти \ No newline at end of file diff --git a/SSL/src/Catalogs/ТомаХраненияФайлов/Forms/ФормаЭлемента/Form.form b/SSL/src/Catalogs/ТомаХраненияФайлов/Forms/ФормаЭлемента/Form.form index d77857d13..fd7eec3c5 100644 --- a/SSL/src/Catalogs/ТомаХраненияФайлов/Forms/ФормаЭлемента/Form.form +++ b/SSL/src/Catalogs/ТомаХраненияФайлов/Forms/ФормаЭлемента/Form.form @@ -120,6 +120,142 @@ СвойстваГлавное 44 + + ГруппаСпособХраненияФайлов + 52 + + СпособХраненияФайлов + 54 + true + true + + true + + + Объект.СпособХраненияФайлов + + Top + + OnChange + СпособХраненияФайловПриИзменении + + + СпособХраненияФайловРасширеннаяПодсказка + 56 + Label + true + true + + Left + + + + СпособХраненияФайловКонтекстноеМеню + 55 + true + + InputField + Show + + ru + Меняя способ хранения файлов тома, вы потеряете возможность доступа к уже созданным на этом томе файлам + + true + Enter + true + Left + true + + true + true + true + true + true + true + true + Normal + + + + ИмяХранилищаДвоичныхДанных + 57 + true + true + + true + + + Объект.ИмяХранилищаДвоичныхДанных + + Top + + ИмяХранилищаДвоичныхДанныхРасширеннаяПодсказка + 59 + Label + true + true + + Left + + + + ИмяХранилищаДвоичныхДанныхКонтекстноеМеню + 58 + true + + InputField + Show + + ru + Меняя имя внешного хранилища двоичных данных тома, вы потеряете возможность доступа к уже созданным на этом томе файлам + + true + Enter + true + Left + true + + true + true + true + true + false + true + true + true + Normal + + + true + true + + true + + + <key>ru</key> + <value>Способ хранения файлов</value> + + + ГруппаСпособХраненияФайловРасширеннаяПодсказка + 53 + Label + true + true + + Left + + + UsualGroup + + AlwaysHorizontal + Auto + WeakSeparation + true + true + Auto + Auto + + ГруппаПути 11 @@ -854,7 +990,12 @@ Auto - + + + 0 + + + @@ -862,6 +1003,10 @@ AfterWrite ПослеЗаписи
          + + AfterWriteAtServer + ПослеЗаписиНаСервере + OnReadAtServer ПриЧтенииНаСервере diff --git a/SSL/src/Catalogs/ТомаХраненияФайлов/Forms/ФормаЭлемента/Help/ru.html b/SSL/src/Catalogs/ТомаХраненияФайлов/Forms/ФормаЭлемента/Help/ru.html index ebfa7eebd..33039fb2b 100644 --- a/SSL/src/Catalogs/ТомаХраненияФайлов/Forms/ФормаЭлемента/Help/ru.html +++ b/SSL/src/Catalogs/ТомаХраненияФайлов/Forms/ФормаЭлемента/Help/ru.html @@ -14,7 +14,8 @@
        • Текущий размер, МБ - проставляется приложением автоматически по мере наполнения тома, показывает, насколько том заполнен;
        • -
        • На вкладке Комментарий напишите подробную информацию о томе.
        • Особенности заполнения поля Полный путь для Linux

          +
        • На вкладке Комментарий напишите подробную информацию о томе.
        • Поле Имя хранилища двоичных данных доступно при выборе способа хранения файлов Во внешнем хранилище двоичных данных (по протоколу S3). Необходимо выбрать S3-хранилище из списка настроенных внешних хранилищ двоичных данных.
          +

          Особенности заполнения поля Полный путь для Linux

          Поля Полный путь для сервера 1С:Предприятия под управлением Microsoft Windows и Полный пусть для сервера 1С:Предприятия под управлением Linux должны ссылаться на одну и ту же физическую сетевую папку. Нужно заполнять в том случае, если в кластере есть сервера как под управлением Microsoft Windows, так и Linux.
          • Если сервер 1С:Предприятия работает под Linux, то путь к тому хранения файлов можно указать только локальный, например /home/path. Для того чтобы использовать UNC путь, нужно сделать на него ссылку. Для этого под правами администратора сделайте следующее:
            • выполните команду вида mkdir folder, где вместо "folder" напишите имя своего каталога. Например, в каталоге /home выполните команду mkdir shared - будет создан каталог shared с полным путем /home/shared.
            • diff --git a/SSL/src/Catalogs/ТомаХраненияФайлов/Forms/ФормаЭлемента/Module.bsl b/SSL/src/Catalogs/ТомаХраненияФайлов/Forms/ФормаЭлемента/Module.bsl index 6522d62d4..46690ee1b 100644 --- a/SSL/src/Catalogs/ТомаХраненияФайлов/Forms/ФормаЭлемента/Module.bsl +++ b/SSL/src/Catalogs/ТомаХраненияФайлов/Forms/ФормаЭлемента/Module.bsl @@ -1,5 +1,5 @@ /////////////////////////////////////////////////////////////////////////////////////////////////////// -// Copyright (c) 2024, ООО 1С-Софт +// Copyright (c) 2025, ООО 1С-Софт // Все права защищены. Эта программа и сопроводительные материалы предоставляются // в соответствии с условиями лицензии Attribution 4.0 International (CC BY 4.0) // Текст лицензии доступен по ссылке: @@ -32,6 +32,10 @@ Если Объект.Ссылка.Пустая() Тогда Объект.ПорядокЗаполнения = НайтиМаксимальныйПорядок() + 1; + + ОтображениеПредупреждения = ОтображениеПредупрежденияПриРедактировании.НеОтображать; + Элементы.СпособХраненияФайлов.ОтображениеПредупрежденияПриРедактировании = ОтображениеПредупреждения; + Элементы.ИмяХранилищаДвоичныхДанных.ОтображениеПредупрежденияПриРедактировании = ОтображениеПредупреждения; Иначе Элементы.ПолныйПутьLinux.ОтображениеПредупрежденияПриРедактировании @@ -68,7 +72,13 @@ // Конец СтандартныеПодсистемы.ПодключаемыеКоманды Элементы.ФормаПроверитьЦелостностьТома.Видимость = Не ОбщегоНазначения.ПодсистемаСуществует("СтандартныеПодсистемы.ПодключаемыеКоманды") + Или Не ОбщегоНазначения.ПодсистемаСуществует("СтандартныеПодсистемы.ВариантыОтчетов") Или Не ОбщегоНазначения.ДоступноИспользованиеРазделенныхДанных(); + + РаботаСФайловымАрхивомСервер.СпособХраненияФайловЗаполнитьСписокВыбора(Элементы.СпособХраненияФайлов.СписокВыбора, Объект.ВидТомаХраненияФайлов); + ЗаполнитьСписокВыбораИменХранилищДвоичныхДанных(Элементы.ИмяХранилищаДвоичныхДанных.СписокВыбора); + ОбновитьВидимостьНаСервере(); + ОбновитьЗаголовокФормы(); КонецПроцедуры @@ -128,6 +138,13 @@ КонецПроцедуры +&НаСервере +Процедура ПослеЗаписиНаСервере(ТекущийОбъект, ПараметрыЗаписи) + + ОбновитьЗаголовокФормы(); + +КонецПроцедуры + &НаСервере Процедура ОбработкаПроверкиЗаполненияНаСервере(Отказ, ПроверяемыеРеквизиты) @@ -196,6 +213,13 @@ КонецПроцедуры +&НаКлиенте +Процедура СпособХраненияФайловПриИзменении(Элемент) + + ВидимостьРеквизитовОтСпособаХраненияФайлов = ПолучитьВидимостьРеквизитовОтСпособаХраненияФайлов(Объект.СпособХраненияФайлов); + РаботаСФайловымАрхивомКлиентСервер.ОбновитьВидимостьРеквизитовТомаХраненияФайлов(ЭтотОбъект, ВидимостьРеквизитовОтСпособаХраненияФайлов); + +КонецПроцедуры #КонецОбласти #Область ОбработчикиКомандФормы @@ -209,7 +233,12 @@ &НаКлиенте Процедура ПроверитьЦелостностьТома(Команда) - + + Если Не ЭтоТомХраненияНаДисках(Объект.Ссылка) Тогда + ПоказатьПредупреждение(,НСтр("ru = 'Проверка целостности предусмотрена только для томов со способом хранения ""В сетевых каталогах""'")); + Возврат; + КонецЕсли; + Если Не ПроверитьЗаполнение() Тогда Возврат; КонецЕсли; @@ -227,6 +256,12 @@ &НаКлиенте Процедура УдалитьЛишниеФайлы(Команда) + + Если Не ЭтоТомХраненияНаДисках(Объект.Ссылка) Тогда + ПоказатьПредупреждение(,НСтр("ru = 'Удаление лишних файлов предусмотрено только для томов со способом хранения ""В сетевых каталогах""'")); + Возврат; + КонецЕсли; + ПараметрыОткрытия = Новый Структура("ТомХраненияФайлов", Объект.Ссылка); ОткрытьФорму("Справочник.ТомаХраненияФайлов.Форма.УдалениеЛишнихФайловИзТома", ПараметрыОткрытия, ЭтотОбъект); КонецПроцедуры @@ -297,14 +332,18 @@ // Находит максимальный порядок среди томов. &НаСервере Функция НайтиМаксимальныйПорядок() - + Запрос = Новый Запрос; Запрос.Текст = "ВЫБРАТЬ | МАКСИМУМ(Тома.ПорядокЗаполнения) КАК МаксимальныйНомер |ИЗ - | Справочник.ТомаХраненияФайлов КАК Тома"; - + | Справочник.ТомаХраненияФайлов КАК Тома + |ГДЕ + | Тома.ВидТомаХраненияФайлов = &ВидТомаХраненияФайлов"; + + Запрос.УстановитьПараметр("ВидТомаХраненияФайлов", Объект.ВидТомаХраненияФайлов); + Выборка = Запрос.Выполнить().Выбрать(); Если Выборка.Следующий() Тогда Если Выборка.МаксимальныйНомер = Null Тогда @@ -313,9 +352,9 @@ Возврат Число(Выборка.МаксимальныйНомер); КонецЕсли; КонецЕсли; - + Возврат 0; - + КонецФункции &НаКлиенте @@ -381,4 +420,70 @@ Записать(); КонецПроцедуры +&НаСервере +Процедура ОбновитьВидимостьНаСервере() + + ВидимостьГруппыСпособХраненияФайлов = РаботаСФайловымАрхивомСервер.ДоступныХранилищаДвоичныхДанных(); + + Элементы.ГруппаСпособХраненияФайлов.Видимость = ВидимостьГруппыСпособХраненияФайлов; + + Если ВидимостьГруппыСпособХраненияФайлов Тогда + + ВидимостьРеквизитовОтСпособаХраненияФайлов = ПолучитьВидимостьРеквизитовОтСпособаХраненияФайлов(Объект.СпособХраненияФайлов); + + РаботаСФайловымАрхивомКлиентСервер.ОбновитьВидимостьРеквизитовТомаХраненияФайлов(ЭтотОбъект, ВидимостьРеквизитовОтСпособаХраненияФайлов); + + КонецЕсли; + +КонецПроцедуры + +&НаСервереБезКонтекста +Функция ПолучитьВидимостьРеквизитовОтСпособаХраненияФайлов(Знач СпособХраненияФайлов) + + ВидимостьКаталогов = СпособХраненияФайлов = Перечисления.СпособыХраненияФайлов.ВСетевыхКаталогах; + ВидимостьИмениХранилища = Не ВидимостьКаталогов И СпособХраненияФайлов = Перечисления.СпособыХраненияФайлов.ВоВнешнемХранилищеПоПротоколуS3; + + Результат = РаботаСФайловымАрхивомКлиентСервер.ПараметрыВидимостиРеквизитовОтСпособаХраненияФайлов(); + Результат.ВидимостьГруппаПути = ВидимостьКаталогов; + Результат.ВидимостьИмяХранилищаДвоичныхДанных = ВидимостьИмениХранилища; + + Возврат Результат; + +КонецФункции + +&НаСервереБезКонтекста +Процедура ЗаполнитьСписокВыбораИменХранилищДвоичныхДанных(СписокВыбора) + + Для Каждого МенеджерВнешнегоХДД Из ВнешниеХранилищаДвоичныхДанных Цикл + СписокВыбора.Добавить(МенеджерВнешнегоХДД.Имя); + КонецЦикла; + +КонецПроцедуры + +&НаСервереБезКонтекста +Функция ЭтоТомХраненияНаДисках(Знач ТомХраненияСсылка) + + Возврат Справочники.ТомаХраненияФайлов.ЭтоТомХраненияНаДисках(ТомХраненияСсылка); + +КонецФункции + +&НаСервере +Процедура ОбновитьЗаголовокФормы() + + Если Не ЗначениеЗаполнено(Объект.Ссылка) Тогда + Если РаботаСФайловымАрхивомСервер.ИспользоватьФайловыйАрхив() Тогда + АвтоЗаголовок = Ложь; + ПредставлениеОбъекта = Объект.Ссылка.Метаданные().ПредставлениеОбъекта; + + Заголовок = НСтр(СтроковыеФункцииКлиентСервер.ПодставитьПараметрыВСтроку("ru = '%1 (%2) (Создание)'", ПредставлениеОбъекта, Объект.ВидТомаХраненияФайлов)); + КонецЕсли; + ИначеЕсли Не АвтоЗаголовок Тогда + + Заголовок = ""; + АвтоЗаголовок = Истина; + + КонецЕсли; + +КонецПроцедуры + #КонецОбласти diff --git a/SSL/src/Catalogs/ТомаХраненияФайлов/ManagerModule.bsl b/SSL/src/Catalogs/ТомаХраненияФайлов/ManagerModule.bsl index a25bc3bad..4eb329046 100644 --- a/SSL/src/Catalogs/ТомаХраненияФайлов/ManagerModule.bsl +++ b/SSL/src/Catalogs/ТомаХраненияФайлов/ManagerModule.bsl @@ -1,5 +1,5 @@ /////////////////////////////////////////////////////////////////////////////////////////////////////// -// Copyright (c) 2024, ООО 1С-Софт +// Copyright (c) 2025, ООО 1С-Софт // Все права защищены. Эта программа и сопроводительные материалы предоставляются // в соответствии с условиями лицензии Attribution 4.0 International (CC BY 4.0) // Текст лицензии доступен по ссылке: @@ -66,53 +66,72 @@ // // Параметры: // Запросы - Массив +// ВидТомаХраненияФайлов - ПеречислениеСсылка.ВидыХраненияФайлов, Неопределено - значение по умолчанию - Неопределено. // -Процедура ДобавитьЗапросыНаИспользованиеВнешнихРесурсовВсехТомов(Запросы) Экспорт +Процедура ДобавитьЗапросыНаИспользованиеВнешнихРесурсовВсехТомов(Запросы, Знач ВидТомаХраненияФайлов = Неопределено) Экспорт Если ОбщегоНазначения.РазделениеВключено() И ОбщегоНазначения.ДоступноИспользованиеРазделенныхДанных() Тогда Возврат; КонецЕсли; + Если ВидТомаХраненияФайлов = Неопределено Тогда + ВидТомаХраненияФайлов = Перечисления.ВидыХраненияФайлов.ОперационноеХранение; + КонецЕсли; + Запрос = Новый Запрос; Запрос.Текст = "ВЫБРАТЬ | ТомаХраненияФайлов.Ссылка КАК Ссылка, - | ТомаХраненияФайлов.ПолныйПутьLinux, - | ТомаХраненияФайлов.ПолныйПутьWindows, + | ТомаХраненияФайлов.ПолныйПутьLinux КАК ПолныйПутьLinux, + | ТомаХраненияФайлов.ПолныйПутьWindows КАК ПолныйПутьWindows, | ТомаХраненияФайлов.ПометкаУдаления КАК ПометкаУдаления |ИЗ | Справочник.ТомаХраненияФайлов КАК ТомаХраненияФайлов |ГДЕ - | ТомаХраненияФайлов.ПометкаУдаления = ЛОЖЬ"; - + | ТомаХраненияФайлов.ПометкаУдаления = ЛОЖЬ + | И ТомаХраненияФайлов.ВидТомаХраненияФайлов = &ВидТомаХраненияФайлов + | И ТомаХраненияФайлов.СпособХраненияФайлов = ЗНАЧЕНИЕ(Перечисление.СпособыХраненияФайлов.ВСетевыхКаталогах)"; + + Запрос.УстановитьПараметр("ВидТомаХраненияФайлов", ВидТомаХраненияФайлов); + Выборка = Запрос.Выполнить().Выбрать(); - + Пока Выборка.Следующий() Цикл Запросы.Добавить(ЗапросНаИспользованиеВнешнихРесурсовДляТома( Выборка.Ссылка, Выборка.ПолныйПутьWindows, Выборка.ПолныйПутьLinux)); КонецЦикла; - + КонецПроцедуры // Только для внутреннего использования. -// +// // Параметры: // Запросы - Массив +// ВидТомаХраненияФайлов - ПеречислениеСсылка.ВидыХраненияФайлов, Неопределено - значение по умолчанию - Неопределено. // -Процедура ДобавитьЗапросыНаОтменуИспользованияВнешнихРесурсовВсехТомов(Запросы) Экспорт - +Процедура ДобавитьЗапросыНаОтменуИспользованияВнешнихРесурсовВсехТомов(Запросы, Знач ВидТомаХраненияФайлов = Неопределено) Экспорт + Если ОбщегоНазначения.ПодсистемаСуществует("СтандартныеПодсистемы.ПрофилиБезопасности") Тогда МодульРаботаВБезопасномРежиме = ОбщегоНазначения.ОбщийМодуль("РаботаВБезопасномРежиме"); - + + Если ВидТомаХраненияФайлов = Неопределено Тогда + ВидТомаХраненияФайлов = Перечисления.ВидыХраненияФайлов.ОперационноеХранение; + КонецЕсли; + Запрос = Новый Запрос; Запрос.Текст = "ВЫБРАТЬ | ТомаХраненияФайлов.Ссылка КАК Ссылка, - | ТомаХраненияФайлов.ПолныйПутьLinux, - | ТомаХраненияФайлов.ПолныйПутьWindows, + | ТомаХраненияФайлов.ПолныйПутьLinux КАК ПолныйПутьLinux, + | ТомаХраненияФайлов.ПолныйПутьWindows КАК ПолныйПутьWindows, | ТомаХраненияФайлов.ПометкаУдаления КАК ПометкаУдаления |ИЗ - | Справочник.ТомаХраненияФайлов КАК ТомаХраненияФайлов"; + | Справочник.ТомаХраненияФайлов КАК ТомаХраненияФайлов + |ГДЕ + | ТомаХраненияФайлов.ВидТомаХраненияФайлов = &ВидТомаХраненияФайлов + | И ТомаХраненияФайлов.СпособХраненияФайлов = ЗНАЧЕНИЕ(Перечисление.СпособыХраненияФайлов.ВСетевыхКаталогах)"; + + Запрос.УстановитьПараметр("ВидТомаХраненияФайлов", ВидТомаХраненияФайлов); Выборка = Запрос.Выполнить().Выбрать(); @@ -147,6 +166,85 @@ КонецФункции +// Проверяет, что том хранения использует способ хранения - "ВСетевыхКаталогах". +// +// Параметры: +// ТомХраненияСсылка - СправочникСсылка.ТомаХраненияФайлов +// +// Возвращаемое значение: +// Булево +// +Функция ЭтоТомХраненияНаДисках(ТомХраненияСсылка) Экспорт + + СпособХраненияФайлов = ОбщегоНазначения.ЗначениеРеквизитаОбъекта(ТомХраненияСсылка, "СпособХраненияФайлов"); + + Возврат СпособХраненияФайлов = Перечисления.СпособыХраненияФайлов.ВСетевыхКаталогах; + +КонецФункции + +#Область ОбработчикиОбновления + +// Обработчик обновления на новую версию: +// - заполняет реквизиты "ВидТомаХраненияФайлов" и "СпособХраненияФайлов" в справочнике "Тома хранения файлов". +// +Процедура ОбработатьДанныеДляПереходаНаНовуюВерсию() Экспорт + + Запрос = Новый Запрос; + Запрос.Текст = + "ВЫБРАТЬ + | ТомаХраненияФайлов.Ссылка КАК Ссылка + |ИЗ + | Справочник.ТомаХраненияФайлов КАК ТомаХраненияФайлов + |ГДЕ + | ТомаХраненияФайлов.СпособХраненияФайлов = ЗНАЧЕНИЕ(Перечисление.СпособыХраненияФайлов.ПустаяСсылка)"; + + ТомаХраненияФайлов = Запрос.Выполнить().Выбрать(); + + Пока ТомаХраненияФайлов.Следующий() Цикл + + Блокировка = Новый БлокировкаДанных; + ЭлементБлокировки = Блокировка.Добавить("Справочник.ТомаХраненияФайлов"); + ЭлементБлокировки.УстановитьЗначение("Ссылка", ТомаХраненияФайлов.Ссылка); + + ПредставлениеСсылки = Строка(ТомаХраненияФайлов.Ссылка); + + НачатьТранзакцию(); + Попытка + Блокировка.Заблокировать(); + СправочникОбъект = ТомаХраненияФайлов.Ссылка.ПолучитьОбъект(); + + Если СправочникОбъект = Неопределено Тогда + ЗафиксироватьТранзакцию(); + Продолжить; + КонецЕсли; + + СправочникОбъект.ВидТомаХраненияФайлов = Перечисления.ВидыХраненияФайлов.ОперационноеХранение; + СправочникОбъект.СпособХраненияФайлов = Перечисления.СпособыХраненияФайлов.ВСетевыхКаталогах; + + ОбновлениеИнформационнойБазы.ЗаписатьДанные(СправочникОбъект); + ЗафиксироватьТранзакцию(); + + Исключение + ОтменитьТранзакцию(); + + ОбновлениеИнформационнойБазы.ЗаписатьОшибкуВЖурналРегистрации(ТомаХраненияФайлов.Ссылка, + ПредставлениеСсылки, ИнформацияОбОшибке()); + + ВызватьИсключение; + КонецПопытки; + КонецЦикла; + +КонецПроцедуры + +#КонецОбласти + +// См. СтандартныеПодсистемыСервер.ПриОпределенииМетодовРазрешенныхДляВызоваКакПроизвольныйКод +Процедура ПриОпределенииМетодовРазрешенныхДляВызоваКакПроизвольныйКод(Методы) Экспорт + + Методы.Вставить("ОбработатьДанныеДляПереходаНаНовуюВерсию"); + +КонецПроцедуры + #КонецОбласти #КонецЕсли diff --git a/SSL/src/Catalogs/ТомаХраненияФайлов/ObjectModule.bsl b/SSL/src/Catalogs/ТомаХраненияФайлов/ObjectModule.bsl index c7fcbff32..ef9c5d7d3 100644 --- a/SSL/src/Catalogs/ТомаХраненияФайлов/ObjectModule.bsl +++ b/SSL/src/Catalogs/ТомаХраненияФайлов/ObjectModule.bsl @@ -1,5 +1,5 @@ /////////////////////////////////////////////////////////////////////////////////////////////////////// -// Copyright (c) 2024, ООО 1С-Софт +// Copyright (c) 2025, ООО 1С-Софт // Все права защищены. Эта программа и сопроводительные материалы предоставляются // в соответствии с условиями лицензии Attribution 4.0 International (CC BY 4.0) // Текст лицензии доступен по ссылке: @@ -10,6 +10,18 @@ #Область ОбработчикиСобытий +Процедура ОбработкаЗаполнения(ДанныеЗаполнения, ТекстЗаполнения, СтандартнаяОбработка) + + Если ТипЗнч(ДанныеЗаполнения) = Тип("Структура") Тогда + Если Не ДанныеЗаполнения.Свойство("ВидТомаХраненияФайлов") Тогда + ВидТомаХраненияФайлов = Перечисления.ВидыХраненияФайлов.ОперационноеХранение; + КонецЕсли; + КонецЕсли; + + СпособХраненияФайлов = Перечисления.СпособыХраненияФайлов.ВСетевыхКаталогах; + +КонецПроцедуры + Процедура ОбработкаПроверкиЗаполнения(Отказ, ПроверяемыеРеквизиты) Если ОбщегоНазначения.ПодсистемаСуществует("СтандартныеПодсистемы.ПрофилиБезопасности") Тогда @@ -20,13 +32,41 @@ Иначе ИспользуютсяПрофилиБезопасности = Ложь; КонецЕсли; - + Если Не ДополнительныеСвойства.Свойство("ПропуститьОсновнуюПроверкуЗаполнения") Тогда - - Если Не НомерПорядкаУникален(ПорядокЗаполнения, Ссылка) Тогда + + Если Не ЗначениеЗаполнено(ВидТомаХраненияФайлов) Тогда + ТекстОшибки = НСтр("ru = 'Не заполнен вид тома хранения файлов'"); + ОбщегоНазначения.СообщитьПользователю(ТекстОшибки, , "ВидТомаХраненияФайлов", "Объект", Отказ); + Возврат + КонецЕсли; + + Если Не ЗначениеЗаполнено(СпособХраненияФайлов) Тогда + ТекстОшибки = НСтр("ru = 'Не заполнен способ хранения файлов'"); + ОбщегоНазначения.СообщитьПользователю(ТекстОшибки, , "СпособХраненияФайлов", "Объект", Отказ); + Возврат; + КонецЕсли; + + Если СпособХраненияФайлов = Перечисления.СпособыХраненияФайлов.ВоВнешнемХранилищеПоПротоколуS3 + И ПустаяСтрока(ИмяХранилищаДвоичныхДанных) Тогда + ТекстОшибки = НСтр("ru = 'Не заполнено имя хранилища двоичных данных'"); + ОбщегоНазначения.СообщитьПользователю(ТекстОшибки, , "ИмяХранилищаДвоичныхДанных", "Объект", Отказ); + Возврат; + КонецЕсли; + + Если Не НомерПорядкаУникален(ПорядокЗаполнения, Ссылка, ВидТомаХраненияФайлов) Тогда ТекстОшибки = НСтр("ru = 'Порядок заполнения не уникален - в системе уже есть том с таким порядком'"); ОбщегоНазначения.СообщитьПользователю(ТекстОшибки, , "ПорядокЗаполнения", "Объект", Отказ); КонецЕсли; + + Если Не ПроверитьУникальностьТомаХраненияРазмещенногоВХранилищеДвоичныхДанных(Ссылка, ВидТомаХраненияФайлов, СпособХраненияФайлов) Тогда + + // АПК:1297-выкл Локализация строки выполняется в коде ниже. + ТекстОшибки = ТекстОшибкиНеуникальностиТомаХранилищаДвоичныхДанных(); + // АПК:1297-вкл + + ОбщегоНазначения.СообщитьПользователю(НСтр(ТекстОшибки), , "СпособХраненияФайлов", "Объект", Отказ); + КонецЕсли; Если МаксимальныйРазмер <> 0 Тогда ТекущийРазмерВБайтах = 0; @@ -40,79 +80,111 @@ ОбщегоНазначения.СообщитьПользователю(ТекстОшибки, , "МаксимальныйРазмер", "Объект", Отказ); КонецЕсли; КонецЕсли; - - Если ПустаяСтрока(ПолныйПутьWindows) И ПустаяСтрока(ПолныйПутьLinux) Тогда - ТекстОшибки = НСтр("ru = 'Не заполнен полный путь'"); - ОбщегоНазначения.СообщитьПользователю(ТекстОшибки, , "ПолныйПутьWindows", "Объект", Отказ); - ОбщегоНазначения.СообщитьПользователю(ТекстОшибки, , "ПолныйПутьLinux", "Объект", Отказ); - Возврат; - КонецЕсли; - - ПутиКТомам = ОбщегоНазначения.ЗначенияРеквизитовОбъекта(Ссылка, "ПолныйПутьLinux, ПолныйПутьWindows"); - ПроверятьУникальностьПутей = ПутиКТомам.ПолныйПутьLinux <> ПолныйПутьLinux - ИЛИ ПутиКТомам.ПолныйПутьWindows <> ПолныйПутьWindows; - Если ПроверятьУникальностьПутей Тогда - ПроверитьУникальностьПутиКТомам(Отказ); - КонецЕсли; - - Если Не ИспользуютсяПрофилиБезопасности - И Не ПустаяСтрока(ПолныйПутьWindows) - И ( Лев(ПолныйПутьWindows, 2) <> "\\" - ИЛИ СтрНайти(ПолныйПутьWindows, ":") <> 0 ) Тогда - - ТекстОшибки = НСтр("ru = 'Путь к тому должен быть в формате UNC (\\servername\resource).'"); - ОбщегоНазначения.СообщитьПользователю(ТекстОшибки, , "ПолныйПутьWindows", "Объект", Отказ); - Возврат; - КонецЕсли; - КонецЕсли; - - Если Не ДополнительныеСвойства.Свойство("ПропуститьПроверкуДоступаКПапке") Тогда - - ИмяПоляСПолнымПутем = ?(ОбщегоНазначения.ЭтоWindowsСервер(), "ПолныйПутьWindows", "ПолныйПутьLinux"); - Если ОбщегоНазначения.РазделениеВключено() Тогда - МодульРаботаВМоделиСервиса = ОбщегоНазначения.ОбщийМодуль("РаботаВМоделиСервиса"); - ЗначениеРазделителя = ?(МодульРаботаВМоделиСервиса.ИспользованиеРазделителяСеанса(), - МодульРаботаВМоделиСервиса.ЗначениеРазделителяСеанса(), ""); - Иначе - ЗначениеРазделителя = ""; - КонецЕсли; - - ПолныйПутьТома = СтрЗаменить(ЭтотОбъект[ИмяПоляСПолнымПутем], "%z", ЗначениеРазделителя); - ИмяКаталогаТестовое = ПолныйПутьТома + "ПроверкаДоступа" + ПолучитьРазделительПути(); - - Попытка - СоздатьКаталог(ИмяКаталогаТестовое); - УдалитьФайлы(ИмяКаталогаТестовое); - Исключение - ИнформацияОбОшибке = ИнформацияОбОшибке(); - - Если ИспользуютсяПрофилиБезопасности Тогда - ШаблонОшибки = - НСтр("ru = 'Некорректный путь к тому или сервер с томом в данный момент недоступен. - |Проверьте корректность пути к общей папке и доступность сервера. - |Возможно не настроены разрешения в профилях безопасности, - |или учетная запись, от лица которой работает - |сервер 1С:Предприятия, не имеет прав доступа к каталогу тома. - | - |%1'"); - Иначе - ШаблонОшибки = - НСтр("ru = 'Некорректный путь к тому или сервер с томом в данный момент недоступен. - |Проверьте корректность пути к общей папке и доступность сервера. - |Возможно учетная запись, от лица которой работает - |сервер 1С:Предприятия, не имеет прав доступа к каталогу тома. - | - |%1'"); + + Если СпособХраненияФайлов = Перечисления.СпособыХраненияФайлов.ВСетевыхКаталогах Тогда + Если ПустаяСтрока(ПолныйПутьWindows) И ПустаяСтрока(ПолныйПутьLinux) Тогда + ТекстОшибки = НСтр("ru = 'Не заполнен полный путь'"); + ОбщегоНазначения.СообщитьПользователю(ТекстОшибки, , "ПолныйПутьWindows", "Объект", Отказ); + ОбщегоНазначения.СообщитьПользователю(ТекстОшибки, , "ПолныйПутьLinux", "Объект", Отказ); + Возврат; + КонецЕсли; + + ПутиКТомам = ОбщегоНазначения.ЗначенияРеквизитовОбъекта(Ссылка, "ПолныйПутьLinux, ПолныйПутьWindows"); + ПроверятьУникальностьПутей = ПутиКТомам.ПолныйПутьLinux <> ПолныйПутьLinux + ИЛИ ПутиКТомам.ПолныйПутьWindows <> ПолныйПутьWindows; + Если ПроверятьУникальностьПутей Тогда + ПроверитьУникальностьПутиКТомам(Отказ); КонецЕсли; - ТекстОшибки = СтроковыеФункцииКлиентСервер.ПодставитьПараметрыВСтроку( - ШаблонОшибки, ОбработкаОшибок.КраткоеПредставлениеОшибки(ИнформацияОбОшибке)); - - ОбщегоНазначения.СообщитьПользователю( - ТекстОшибки, , ИмяПоляСПолнымПутем, "Объект", Отказ); - КонецПопытки; + Если Не ИспользуютсяПрофилиБезопасности + И Не ПустаяСтрока(ПолныйПутьWindows) + И ( Лев(ПолныйПутьWindows, 2) <> "\\" + ИЛИ СтрНайти(ПолныйПутьWindows, ":") <> 0 ) Тогда + + ТекстОшибки = НСтр("ru = 'Путь к тому должен быть в формате UNC (\\servername\resource).'"); + ОбщегоНазначения.СообщитьПользователю(ТекстОшибки, , "ПолныйПутьWindows", "Объект", Отказ); + Возврат; + КонецЕсли; + КонецЕсли + КонецЕсли; + + Если Не ДополнительныеСвойства.Свойство("ПропуститьПроверкуДоступаКПапке") Тогда + Если СпособХраненияФайлов = Перечисления.СпособыХраненияФайлов.ВСетевыхКаталогах Тогда + ИмяПоляСПолнымПутем = ?(ОбщегоНазначения.ЭтоWindowsСервер(), "ПолныйПутьWindows", "ПолныйПутьLinux"); + Если ОбщегоНазначения.РазделениеВключено() Тогда + МодульРаботаВМоделиСервиса = ОбщегоНазначения.ОбщийМодуль("РаботаВМоделиСервиса"); + ЗначениеРазделителя = ?(МодульРаботаВМоделиСервиса.ИспользованиеРазделителяСеанса(), + МодульРаботаВМоделиСервиса.ЗначениеРазделителяСеанса(), ""); + Иначе + ЗначениеРазделителя = ""; + КонецЕсли; + + ПолныйПутьТома = СтрЗаменить(ЭтотОбъект[ИмяПоляСПолнымПутем], "%z", ЗначениеРазделителя); + ИмяКаталогаТестовое = ПолныйПутьТома + "ПроверкаДоступа" + ПолучитьРазделительПути(); + + Попытка + СоздатьКаталог(ИмяКаталогаТестовое); + УдалитьФайлы(ИмяКаталогаТестовое); + Исключение + ИнформацияОбОшибке = ИнформацияОбОшибке(); + + Если ИспользуютсяПрофилиБезопасности Тогда + ШаблонОшибки = + НСтр("ru = 'Некорректный путь к тому или сервер с томом в данный момент недоступен. + |Проверьте корректность пути к общей папке и доступность сервера. + |Возможно не настроены разрешения в профилях безопасности, + |или учетная запись, от лица которой работает + |сервер 1С:Предприятия, не имеет прав доступа к каталогу тома. + | + |%1'"); + Иначе + ШаблонОшибки = + НСтр("ru = 'Некорректный путь к тому или сервер с томом в данный момент недоступен. + |Проверьте корректность пути к общей папке и доступность сервера. + |Возможно учетная запись, от лица которой работает + |сервер 1С:Предприятия, не имеет прав доступа к каталогу тома. + | + |%1'"); + КонецЕсли; + + ТекстОшибки = СтроковыеФункцииКлиентСервер.ПодставитьПараметрыВСтроку( + ШаблонОшибки, ОбработкаОшибок.КраткоеПредставлениеОшибки(ИнформацияОбОшибке)); + + ОбщегоНазначения.СообщитьПользователю( + ТекстОшибки, , ИмяПоляСПолнымПутем, "Объект", Отказ); + КонецПопытки; + КонецЕсли; + КонецЕсли; + +КонецПроцедуры + +Процедура ПередЗаписью(Отказ) + + Если ОбменДанными.Загрузка Тогда + Возврат; КонецЕсли; + РаботаСХранилищамиДвоичныхДанныхСервер.ИзменитьСоставХранимыхДанных(ВидТомаХраненияФайлов, СпособХраненияФайлов, ИмяХранилищаДвоичныхДанных) + +КонецПроцедуры + +Процедура ПриЗаписи(Отказ) + + Если ОбменДанными.Загрузка Тогда + Возврат; + КонецЕсли; + + Если Не ПометкаУдаления Тогда + Если Не ПроверитьУникальностьТомаХраненияРазмещенногоВХранилищеДвоичныхДанных(Ссылка, ВидТомаХраненияФайлов, СпособХраненияФайлов) Тогда + + // АПК:1297-выкл Локализация строки выполняется в коде ниже. + ТекстОшибки = ТекстОшибкиНеуникальностиТомаХранилищаДвоичныхДанных(Истина); + // АПК:1297-вкл + + ВызватьИсключение НСтр(ТекстОшибки); + КонецЕсли; + КонецЕсли; + КонецПроцедуры #КонецОбласти @@ -120,8 +192,8 @@ #Область СлужебныеПроцедурыИФункции // Возвращает Ложь, если есть том с таким порядком. -Функция НомерПорядкаУникален(ПорядокЗаполнения, СсылкаНаТом) - +Функция НомерПорядкаУникален(ПорядокЗаполнения, СсылкаНаТом, ВидТомаХраненияФайлов) + Запрос = Новый Запрос; Запрос.Текст = "ВЫБРАТЬ @@ -130,23 +202,27 @@ | Справочник.ТомаХраненияФайлов КАК Тома |ГДЕ | Тома.ПорядокЗаполнения = &ПорядокЗаполнения + | И Тома.ВидТомаХраненияФайлов = &ВидТомаХраненияФайлов | И Тома.Ссылка <> &СсылкаНаТом"; - - Запрос.Параметры.Вставить("ПорядокЗаполнения", ПорядокЗаполнения); - Запрос.Параметры.Вставить("СсылкаНаТом", СсылкаНаТом); - + + Запрос.Параметры.Вставить("ПорядокЗаполнения" , ПорядокЗаполнения); + Запрос.Параметры.Вставить("СсылкаНаТом" , СсылкаНаТом); + Запрос.Параметры.Вставить("ВидТомаХраненияФайлов" , ВидТомаХраненияФайлов); + Выборка = Запрос.Выполнить().Выбрать(); Если Выборка.Следующий() Тогда Возврат Выборка.Количество = 0; КонецЕсли; - + Возврат Истина; - + КонецФункции Процедура ПроверитьУникальностьПутиКТомам(Отказ) Запрос = Новый Запрос; + Запрос.УстановитьПараметр("ПроверяемыйТом", Ссылка); + Запрос.Текст = "ВЫБРАТЬ | ТомаХраненияФайлов.Ссылка КАК Ссылка, @@ -156,7 +232,9 @@ |ИЗ | Справочник.ТомаХраненияФайлов КАК ТомаХраненияФайлов |ГДЕ - | НЕ ТомаХраненияФайлов.ПометкаУдаления"; + | НЕ ТомаХраненияФайлов.ПометкаУдаления + | И ТомаХраненияФайлов.СпособХраненияФайлов = ЗНАЧЕНИЕ(Перечисление.СпособыХраненияФайлов.ВСетевыхКаталогах) + | И ТомаХраненияФайлов.Ссылка <> &ПроверяемыйТом"; РезультатЗапроса = Запрос.Выполнить(); ТаблицаРезультата = РезультатЗапроса.Выгрузить(); @@ -179,6 +257,69 @@ КонецЕсли; КонецПроцедуры +Функция ПроверитьУникальностьТомаХраненияРазмещенногоВХранилищеДвоичныхДанных(СсылкаНаТом, ВидТомаХраненияФайлов, СпособХраненияФайлов) + + Если СпособХраненияФайлов = Перечисления.СпособыХраненияФайлов.ВСетевыхКаталогах Тогда + Возврат Истина; + КонецЕсли; + + Запрос = Новый Запрос; + Запрос.Текст = + "ВЫБРАТЬ + | КОЛИЧЕСТВО(Тома.СпособХраненияФайлов) КАК Количество + |ИЗ + | Справочник.ТомаХраненияФайлов КАК Тома + |ГДЕ + | Тома.ВидТомаХраненияФайлов = &ВидТомаХраненияФайлов + | И Тома.СпособХраненияФайлов = &СпособХраненияФайлов + | И Тома.Ссылка <> &СсылкаНаТом + | И НЕ Тома.ПометкаУдаления"; + + Запрос.Параметры.Вставить("ВидТомаХраненияФайлов" , ВидТомаХраненияФайлов); + Запрос.Параметры.Вставить("СпособХраненияФайлов" , СпособХраненияФайлов); + Запрос.Параметры.Вставить("СсылкаНаТом" , СсылкаНаТом); + + Выборка = Запрос.Выполнить().Выбрать(); + Если Выборка.Следующий() Тогда + Возврат Выборка.Количество = 0; + КонецЕсли; + +КонецФункции + +Функция ПредставлениеСпособаХРаненияФайловДляСообщения(СпособХраненияФайлов) + + // АПК:1297-выкл Результат функции локализуется в процедурах ОбработкаПроверкиЗаполнения и ПриЗаписи. + Если СпособХраненияФайлов = Перечисления.СпособыХраненияФайлов.ВоВнешнемХранилищеПоПротоколуS3 Тогда + Результат = "во внешнем хранилище двоичных данных (по протоколу S3)"; + ИначеЕсли СпособХраненияФайлов = Перечисления.СпособыХраненияФайлов.ВоВстроенномХранилище Тогда + Результат = "во встроенном хранилище двоичных данных"; + Иначе + Результат = Строка(СпособХраненияФайлов); + КонецЕсли; + // АПК:1297-вкл + + Возврат Результат; + +КонецФункции + +Функция ТекстОшибкиНеуникальностиТомаХранилищаДвоичныхДанных(ПроверкаПриЗаписи = Ложь) + + // АПК:1297-выкл Локализация строки выполняется в коде процедур ОбработкаПроверкиЗаполнения и ПриЗаписи. + ДополнениеПриПроверкеПриЗаписи = ""; + Если ПроверкаПриЗаписи Тогда + ДополнениеПриПроверкеПриЗаписи = " и не помеченный на удаление"; + КонецЕсли; + + Результат = СтроковыеФункцииКлиентСервер.ПодставитьПараметрыВСтроку("ru = 'В системе уже существует том с видом %1, размещающий данные %2%3'", + НРег(ВидТомаХраненияФайлов), + ПредставлениеСпособаХРаненияФайловДляСообщения(СпособХраненияФайлов), + ДополнениеПриПроверкеПриЗаписи); + // АПК:1297-вкл + + Возврат Результат; + +КонецФункции + #КонецОбласти #Иначе diff --git a/SSL/src/Catalogs/ТомаХраненияФайлов/ТомаХраненияФайлов.mdo b/SSL/src/Catalogs/ТомаХраненияФайлов/ТомаХраненияФайлов.mdo index 01f52b81a..8c960113f 100644 --- a/SSL/src/Catalogs/ТомаХраненияФайлов/ТомаХраненияФайлов.mdo +++ b/SSL/src/Catalogs/ТомаХраненияФайлов/ТомаХраненияФайлов.mdo @@ -152,7 +152,7 @@ МаксимальныйРазмер ru - Предел, МБ + Максимальный размер, МБ Number @@ -251,6 +251,57 @@ Use Use + + ВидТомаХраненияФайлов + + ru + Вид тома хранения файлов + + + EnumRef.ВидыХраненияФайлов + + + + true + + Index + Use + Use + + + СпособХраненияФайлов + + ru + Способ хранения файлов + + + EnumRef.СпособыХраненияФайлов + + + + + Index + Use + Use + + + ИмяХранилищаДвоичныхДанных + + ru + Имя хранилища двоичных данных + + + String + + 80 + + + + + + Use + Use + ФормаЭлемента @@ -290,4 +341,13 @@ Макет отчета + + ТомаАрхивногоХранения + + ru + Тома архивного хранения + + NavigationPanelOrdinary + Auto + diff --git a/SSL/src/Catalogs/УчетныеЗаписиDSS/ManagerModule.bsl b/SSL/src/Catalogs/УчетныеЗаписиDSS/ManagerModule.bsl index 36af52813..3785a0e27 100644 --- a/SSL/src/Catalogs/УчетныеЗаписиDSS/ManagerModule.bsl +++ b/SSL/src/Catalogs/УчетныеЗаписиDSS/ManagerModule.bsl @@ -1,5 +1,5 @@ /////////////////////////////////////////////////////////////////////////////////////////////////////// -// Copyright (c) 2024, ООО 1С-Софт +// Copyright (c) 2025, ООО 1С-Софт // Все права защищены. Эта программа и сопроводительные материалы предоставляются // в соответствии с условиями лицензии Attribution 4.0 International (CC BY 4.0) // Текст лицензии доступен по ссылке: diff --git a/SSL/src/Catalogs/УчетныеЗаписиDSS/ObjectModule.bsl b/SSL/src/Catalogs/УчетныеЗаписиDSS/ObjectModule.bsl index a0995db94..e93df8475 100644 --- a/SSL/src/Catalogs/УчетныеЗаписиDSS/ObjectModule.bsl +++ b/SSL/src/Catalogs/УчетныеЗаписиDSS/ObjectModule.bsl @@ -1,5 +1,5 @@ /////////////////////////////////////////////////////////////////////////////////////////////////////// -// Copyright (c) 2024, ООО 1С-Софт +// Copyright (c) 2025, ООО 1С-Софт // Все права защищены. Эта программа и сопроводительные материалы предоставляются // в соответствии с условиями лицензии Attribution 4.0 International (CC BY 4.0) // Текст лицензии доступен по ссылке: diff --git a/SSL/src/Catalogs/УчетныеЗаписиСинхронизацииФайлов/Forms/ФормаЭлемента/Module.bsl b/SSL/src/Catalogs/УчетныеЗаписиСинхронизацииФайлов/Forms/ФормаЭлемента/Module.bsl index c793d1489..3a17a1acd 100644 --- a/SSL/src/Catalogs/УчетныеЗаписиСинхронизацииФайлов/Forms/ФормаЭлемента/Module.bsl +++ b/SSL/src/Catalogs/УчетныеЗаписиСинхронизацииФайлов/Forms/ФормаЭлемента/Module.bsl @@ -1,5 +1,5 @@ /////////////////////////////////////////////////////////////////////////////////////////////////////// -// Copyright (c) 2024, ООО 1С-Софт +// Copyright (c) 2025, ООО 1С-Софт // Все права защищены. Эта программа и сопроводительные материалы предоставляются // в соответствии с условиями лицензии Attribution 4.0 International (CC BY 4.0) // Текст лицензии доступен по ссылке: diff --git a/SSL/src/Catalogs/УчетныеЗаписиСинхронизацииФайлов/ManagerModule.bsl b/SSL/src/Catalogs/УчетныеЗаписиСинхронизацииФайлов/ManagerModule.bsl index d11760b95..f6db4a044 100644 --- a/SSL/src/Catalogs/УчетныеЗаписиСинхронизацииФайлов/ManagerModule.bsl +++ b/SSL/src/Catalogs/УчетныеЗаписиСинхронизацииФайлов/ManagerModule.bsl @@ -1,5 +1,5 @@ /////////////////////////////////////////////////////////////////////////////////////////////////////// -// Copyright (c) 2024, ООО 1С-Софт +// Copyright (c) 2025, ООО 1С-Софт // Все права защищены. Эта программа и сопроводительные материалы предоставляются // в соответствии с условиями лицензии Attribution 4.0 International (CC BY 4.0) // Текст лицензии доступен по ссылке: diff --git a/SSL/src/Catalogs/УчетныеЗаписиЭлектроннойПочты/Forms/ПомощникНастройкиУчетнойЗаписи/Form.form b/SSL/src/Catalogs/УчетныеЗаписиЭлектроннойПочты/Forms/ПомощникНастройкиУчетнойЗаписи/Form.form index 734d235ab..31d2af66e 100644 --- a/SSL/src/Catalogs/УчетныеЗаписиЭлектроннойПочты/Forms/ПомощникНастройкиУчетнойЗаписи/Form.form +++ b/SSL/src/Catalogs/УчетныеЗаписиЭлектроннойПочты/Forms/ПомощникНастройкиУчетнойЗаписи/Form.form @@ -4,23 +4,31 @@ Страницы 1 - НастройкаУчетнойЗаписи - 32 - - НастройкаУчетнойЗаписиЗаголовок - 207 + ВводАдресаЭлектроннойПочты + 553 + + АдресЭлектроннойПочты + 559 <key>ru</key> - <value>Введите настройки почты</value> + <value>Адрес почты</value> true true true + + АдресЭлектроннойПочты + + Top + + OnChange + АдресЭлектроннойПочтыПриИзменении + - НастройкаУчетнойЗаписиЗаголовокРасширеннаяПодсказка - 209 + АдресЭлектроннойПочтыРасширеннаяПодсказка + 561 Label true true @@ -29,896 +37,90 @@ - НастройкаУчетнойЗаписиЗаголовокКонтекстноеМеню - 208 + АдресЭлектроннойПочтыКонтекстноеМеню + 560 true + InputField + true + Enter + true + Left + true + + 25 + true + true + false + true + true + true + true + true + true + OnValueChange + Normal + + + true + true + + true + + + <key>ru</key> + <value>Ввод адреса электронной почты</value> + + + ВводАдресаЭлектроннойПочтыРасширеннаяПодсказка + 554 Label + true true - - System.DefaultGUIFont - true - false - false - false - Left - - - НеУдалосьПодключитьсяКартинкаИНадпись - 158 - - КартинкаПредупреждение - 160 - - <key>ru</key> - <value>Картинка вопрос</value> - - true - true - - true - - - КартинкаПредупреждениеРасширеннаяПодсказка - 162 - Label - true - true - - Left - - - - КартинкаПредупреждениеКонтекстноеМеню - 161 - true - - true - true - - - StdPicture.DialogExclamation - - - - - ГруппаСообщенияОбОшибках - 270 - - СообщенияОбОшибках - 238 - - <key>ru</key> - <value>Сообщения об ошибках</value> - - true - true - - true - - - СообщенияОбОшибках - - None - - СообщенияОбОшибкахРасширеннаяПодсказка - 240 - Label - true - true - - Left - - - - СообщенияОбОшибкахКонтекстноеМеню - 239 - true - - InputField - true - Enter - true - Left - true - - - Opening - СообщенияОбОшибкахОткрытие - - 2 - true - false - true - true - true - true - true - true - - Style.FormBackColor - - - Style.FormBackColor - - Normal - - - true - true - - true - - - <key>ru</key> - <value>Сообщения об ошибках</value> - - false - - ГруппаСообщенияОбОшибкахРасширеннаяПодсказка - 271 - Label - true - true - - Left - - - UsualGroup - - Vertical - true - true - Auto - Auto - - + + Page + + Vertical + auto + false + + + + НастройкиУчетнойЗаписи + 557 + + ИмяОтправителяПисем + 151 + + <key>ru</key> + <value>Имя отправителя</value> + true true true - - <key>ru</key> - <value>Не удалось подключиться картинка и надпись</value> - + + ИмяОтправителяПисем + + Top + ShowBottom + + OnChange + ИмяОтправителяПисемПриИзменении + - НеУдалосьПодключитьсяКартинкаИНадписьРасширеннаяПодсказка - 159 - Label - true - true - - Left - - - UsualGroup - - AlwaysHorizontal - true - true - Auto - Auto - - - - Аутентификация - 200 - - ГруппаАдресПочты - 426 - - ДекорацияАдресПочты - 428 - - <key>ru</key> - <value>Адрес почты:</value> - - true - true - - true - - - ДекорацияАдресПочтыРасширеннаяПодсказка - 430 - Label - true - - Left - - - - ДекорацияАдресПочтыКонтекстноеМеню - 429 - true - - Label - 11 - true - true - - Left - - - - АдресЭлектроннойПочты - 44 - - <key>ru</key> - <value>Адрес почты</value> - - true - true - - true - - - АдресЭлектроннойПочты - - None - ShowBottom - - OnChange - АдресЭлектроннойПочтыПриИзменении - - - АдресЭлектроннойПочтыРасширеннаяПодсказка - 46 - - <key>ru</key> - <value>Электронная почта для рассылки уведомлений из приложения.</value> - - Label - 30 - true - - Left - - - - АдресЭлектроннойПочтыКонтекстноеМеню - 45 - true - - InputField - true - Enter - true - Left - true - - 25 - true - true - false - true - true - true - true - true - OnValueChange - Normal - - - true - true - - true - - - <key>ru</key> - <value>Адрес почты</value> - - - ГруппаАдресПочтыРасширеннаяПодсказка - 427 - Label - true - true - - Left - - - UsualGroup - - AlwaysHorizontal - Auto - true - true - Auto - Auto - - - - СпособАутентификации - 362 - - <key>ru</key> - <value>Способ аутентификации</value> - - true - - true - - - ВариантАутентификации - - None - - СпособАутентификацииРасширеннаяПодсказка - 364 - Label - true - true - - Left - - - - СпособАутентификацииКонтекстноеМеню - 363 - true - - RadioButtonField - Enter - true - Left - true - - RadioButtons - 1 - - - ru - Авторизоваться на почтовом сервисе - - - OAuth - - - - - ru - Ввести пароль - - - Пароль - - - Vertical - - - - ГруппаСпособАутентификацииПароль - 298 - - СпособАутентификацииПароль - 302 - - <key>ru</key> - <value>Способ аутентификации</value> - - true - true - - true - - - ВариантАутентификации - - None - - OnChange - СпособАутентификацииПриИзменении - - - СпособАутентификацииПарольРасширеннаяПодсказка - 304 - Label - true - true - - Left - - - - СпособАутентификацииПарольКонтекстноеМеню - 303 - true - - RadioButtonField - Enter - true - Left - true - - 1 - - - ru - Пароль почты: - - - Пароль - - - Vertical - - - - Пароль - 47 - - <key>ru</key> - <value>Пароль</value> - - true - true - - true - - - ПарольДляПолученияПисем - - None - 1 - - ru - В целях безопасности рекомендуется создать на сайте почтового сервиса отдельный пароль приложения и использовать его в приложении вместо основного пароля. - - Button - - OnChange - ПарольПриИзменении - - - ПарольРасширеннаяПодсказка - 49 - Label - true - true - - Left - - - - ПарольКонтекстноеМеню - 48 - true - - InputField - true - Enter - true - Left - true - - - StartChoice - ПарольНачалоВыбора - - 23 - true - true - false - true - true - true - - CommonPicture.ВводимыеСимволыВидны - - true - true - true - true - OnValueChange - Normal - - - true - true - - true - - - <key>ru</key> - <value>Способ аутентификации пароль</value> - - - ГруппаСпособАутентификацииПарольРасширеннаяПодсказка - 299 - Label - true - true - - Left - - - UsualGroup - - HorizontalIfPossible - true - true - Auto - Auto - - - - СпособАутентификацииПочтовыйСервис - 305 - - <key>ru</key> - <value>Способ аутентификации</value> - - true - true - - true - - - ВариантАутентификации - - None - Ctrl+S - - OnChange - СпособАутентификацииПриИзменении - - - СпособАутентификацииПочтовыйСервисРасширеннаяПодсказка - 307 - Label - true - true - - Left - - - - СпособАутентификацииПочтовыйСервисКонтекстноеМеню - 306 - true - - RadioButtonField - Enter - true - Left - true - - 1 - - - ru - Авторизоваться на почтовом сервисе - - - OAuth - - - Vertical - - - true - true - - true - - - <key>ru</key> - <value>Аутентификация</value> - - - АутентификацияРасширеннаяПодсказка - 201 - Label - true - true - - Left - - - UsualGroup - - Vertical - NormalSeparation - true - true - DontUse - Auto - - - - ИспользоватьУчетнуюЗапись - 189 - - ИспользоватьДляОтправки - 191 - - <key>ru</key> - <value>Для отправки писем</value> - - true - true - - true - - - ИспользоватьДляОтправки - - Right - - ИспользоватьДляОтправкиРасширеннаяПодсказка - 193 - Label - true - true - - Left - - - - ИспользоватьДляОтправкиКонтекстноеМеню - 192 - true - - CheckBoxField - Enter - true - Left - true - - - - ИспользоватьДляПолучения - 194 - - <key>ru</key> - <value>Для получения писем</value> - - true - true - - true - - - ИспользоватьДляПолучения - - Right - - ИспользоватьДляПолученияРасширеннаяПодсказка - 196 - Label - true - true - - Left - - - - ИспользоватьДляПолученияКонтекстноеМеню - 195 - true - - CheckBoxField - Enter - true - Left - true - - - true - true - - true - - - <key>ru</key> - <value>Почта будет использоваться</value> - - - ИспользоватьУчетнуюЗаписьРасширеннаяПодсказка - 190 - Label - true - true - - Left - - - UsualGroup - - HorizontalIfPossible - NormalSeparation - true - true - auto - Auto - Auto - - - - ДляКогоУчетнаяЗапись - 247 - - ВидУчетнойЗаписи - 249 - - <key>ru</key> - <value>Вид почты</value> - - true - true - - true - - - ВидУчетнойЗаписи - - None - - ВидУчетнойЗаписиРасширеннаяПодсказка - 251 - Label - true - true - - Left - - - - ВидУчетнойЗаписиКонтекстноеМеню - 250 - true - - RadioButtonField - Enter - true - Left - true - - - - ru - Всеми пользователями (общая почта) - - - Общая - - - - - ru - Только мной - - - Персональная - - - Vertical - - - true - true - - true - - - <key>ru</key> - <value>Для кого учетная запись</value> - - - ДляКогоУчетнаяЗаписьРасширеннаяПодсказка - 248 - Label - true - true - - Left - - - UsualGroup - - Vertical - NormalSeparation - true - true - Auto - Auto - - - - ИмяОтправителя - 202 - - ИмяОтправителяПисем - 151 - - <key>ru</key> - <value>Имя отправителя</value> - - true - true - - true - - - ИмяОтправителяПисем - - ShowBottom - - OnChange - ИмяОтправителяПисемПриИзменении - - - ИмяОтправителяПисемРасширеннаяПодсказка - 153 - - <key>ru</key> - <value>Например, Ваше имя или название организации.</value> - - Label - true - true - - Style.ПоясняющийТекст - - - Left - - - - ИмяОтправителяПисемКонтекстноеМеню - 152 - true - - InputField - Enter - true - Left - true - - 25 - true - true - false - true - true - true - true - Normal - - - - ПояснениеКИмени - 204 + ИмяОтправителяПисемРасширеннаяПодсказка + 153 <key>ru</key> <value>Например, Ваше имя или название организации.</value> - true - - true - - - ПояснениеКИмениРасширеннаяПодсказка - 206 - Label - true - true - - Left - - - - ПояснениеКИмениКонтекстноеМеню - 205 - true - Label + true true Style.ПоясняющийТекст @@ -926,302 +128,48 @@ Left - - true - true - - true - - - <key>ru</key> - <value>Имя отправителя</value> - - - ИмяОтправителяРасширеннаяПодсказка - 203 - Label - true - true - - Left - - - UsualGroup - - Vertical - true - true - Auto - Auto - - - true - true - - true - - - <key>ru</key> - <value>Настройка почты</value> - - - НастройкаУчетнойЗаписиРасширеннаяПодсказка - 33 - Label - true - true - - Left - - - Page - - Vertical - auto - false - - - - НастройкаСервераИсходящейПочты - 38 - - Протокол - 116 - - <key>ru</key> - <value>Тип почты</value> - - true - true - - true - - - Протокол - - - OnChange - ПротоколПриИзменении - - - ПротоколРасширеннаяПодсказка - 118 - Label - true - true - - Left - - ПротоколКонтекстноеМеню - 117 + ИмяОтправителяПисемКонтекстноеМеню + 152 true InputField - true Enter true Left true - 8 + 25 true true false true - true - true true true - - - IMAP - - - - - POP - - + true Normal - - ПротоколИПортСервераВходящейПочты - 114 - - СерверВходящейПочты - 111 - - <key>ru</key> - <value>Сервер IMAP</value> - - true - true - - true - - - СерверВходящейПочты - - Top - - СерверВходящейПочтыРасширеннаяПодсказка - 113 - Label - true - true - - Left - - - - СерверВходящейПочтыКонтекстноеМеню - 112 - true - - InputField - true - Enter - true - Left - true - - 22 - true - true - false - true - true - true - true - true - Normal - - - - ПортВходящейПочты - 119 - - <key>ru</key> - <value>Порт</value> - - true - true - - true - - - ПортСервераВходящейПочты - - Top - - ПортВходящейПочтыРасширеннаяПодсказка - 121 - Label - true - true - - Left - - - - ПортВходящейПочтыКонтекстноеМеню - 120 - true - - InputField - true - Enter - true - Left - true - - true - true - true - true - true - true - true - Normal - - - - ШифрованиеПриПолученииПочты - 265 - - <key>ru</key> - <value>Шифрование</value> - - true - true - - true - - - ШифрованиеПриПолученииПочты - - Top - - OnChange - ШифрованиеПриПолученииПочтыПриИзменении - - - ШифрованиеПриПолученииПочтыРасширеннаяПодсказка - 267 - Label - true - true - - Left - - - - ШифрованиеПриПолученииПочтыКонтекстноеМеню - 266 - true - - RadioButtonField - Enter - true - Left - true - - - - ru - STARTTLS - - - Авто - - - - - ru - SSL - - - SSL - - - Vertical - - + + ВидУчетнойЗаписи + 249 + + <key>ru</key> + <value>Вариант использования</value> + true true true - - <key>ru</key> - <value>Протокол и порт сервера входящей почты</value> - + + ВидУчетнойЗаписи + + Top - ПротоколИПортСервераВходящейПочтыРасширеннаяПодсказка - 115 + ВидУчетнойЗаписиРасширеннаяПодсказка + 251 Label true true @@ -1229,190 +177,58 @@ Left - UsualGroup - - HorizontalIfPossible - true - true - Auto - Auto + + ВидУчетнойЗаписиКонтекстноеМеню + 250 + true + + RadioButtonField + Enter + true + Left + true + + Tumbler + + + ru + Всеми пользователями (общая почта) + + + Общая + + + + + ru + Только мной + + + Персональная + + + Vertical - - НастройкиСервераИсходящейПочты - 89 - - СерверИсходящейПочты - 91 - - <key>ru</key> - <value>Сервер SMTP</value> - - true - true - - true - - - СерверИсходящейПочты - - Top - - СерверИсходящейПочтыРасширеннаяПодсказка - 93 - Label - true - true - - Left - - - - СерверИсходящейПочтыКонтекстноеМеню - 92 - true - - InputField - true - Enter - true - Left - true - - 22 - true - true - false - true - true - true - true - true - Normal - - - - ПортСервераИсходящейПочты - 94 - - <key>ru</key> - <value>Порт</value> - - true - true - - true - - - ПортСервераИсходящейПочты - - Top - - ПортСервераИсходящейПочтыРасширеннаяПодсказка - 96 - Label - true - true - - Left - - - - ПортСервераИсходящейПочтыКонтекстноеМеню - 95 - true - - InputField - true - Enter - true - Left - true - - true - true - true - true - true - true - true - Normal - - - - ШифрованиеПриОтправкеПочты - 262 - - <key>ru</key> - <value>Шифрование</value> - - true - true - - true - - - ШифрованиеПриОтправкеПочты - - Top - - OnChange - ШифрованиеПриОтправкеПочтыПриИзменении - - - ШифрованиеПриОтправкеПочтыРасширеннаяПодсказка - 264 - Label - true - true - - Left - - - - ШифрованиеПриОтправкеПочтыКонтекстноеМеню - 263 - true - - RadioButtonField - Enter - true - Left - true - - - - ru - STARTTLS - - - Авто - - - - - ru - SSL - - - SSL - - - Vertical - - + + ИспользоватьДляПолучения + 194 + + <key>ru</key> + <value>Использовать для получения писем</value> + true true true - - <key>ru</key> - <value>Настройки сервера исходящей почты</value> - + + ИспользоватьДляПолучения + + Right - НастройкиСервераИсходящейПочтыРасширеннаяПодсказка - 90 + ИспользоватьДляПолученияРасширеннаяПодсказка + 196 Label true true @@ -1420,245 +236,17 @@ Left - UsualGroup - - HorizontalIfPossible - true - true - Auto - Auto - - - - ОставлятьПисьмаНаСервере - 135 - - ОставлятьКопииПисемНаСервере - 137 - - <key>ru</key> - <value>Оставлять копии писем на сервере</value> - - true - true - - true - - - ОставлятьКопииПисемНаСервере - - Right - - OnChange - ОставлятьКопииПисемНаСервереПриИзменении - - - ОставлятьКопииПисемНаСервереРасширеннаяПодсказка - 139 - Label - true - true - - Left - - - - ОставлятьКопииПисемНаСервереКонтекстноеМеню - 138 - true - - CheckBoxField - Enter - true - Left - true - - - - НастройкаУдаленияПисем - 140 - - УдалятьПисьмаССервера - 244 - - <key>ru</key> - <value>Удалять письма с сервера через:</value> - - true - true - - true - - - УдалятьПисьмаССервера - - Right - - OnChange - УдалятьПисьмаССервераПриИзменении - - - УдалятьПисьмаССервераРасширеннаяПодсказка - 246 - Label - true - true - - Left - - - - УдалятьПисьмаССервераКонтекстноеМеню - 245 - true - - CheckBoxField - Enter - true - Left - true - - - - ПериодХраненияСообщенийНаСервере - 241 - - <key>ru</key> - <value>Период хранения сообщений на сервере</value> - - true - true - - true - - - ПериодХраненияСообщенийНаСервере - - None - - ПериодХраненияСообщенийНаСервереРасширеннаяПодсказка - 243 - Label - true - true - - Left - - - - ПериодХраненияСообщенийНаСервереКонтекстноеМеню - 242 - true - - InputField - true - Enter - true - Left - true - - true - true - true - true - true - true - true - true - - 1 - - Normal - - - - НадписьДней - 145 - - <key>ru</key> - <value>дней</value> - - true - true - - true - - - НадписьДнейРасширеннаяПодсказка - 147 - Label - true - true - - Left - - - - НадписьДнейКонтекстноеМеню - 146 - true - - Label - true - - Left - - - true - true - - true - - - <key>ru</key> - <value>Настройка удаления писем</value> - - - НастройкаУдаленияПисемРасширеннаяПодсказка - 141 - Label - true - true - - Left - - - UsualGroup - - HorizontalIfPossible - true - true - Auto - Auto - - - true - true - - true - - - <key>ru</key> - <value>Оставлять письма на сервере</value> - - - ОставлятьПисьмаНаСервереРасширеннаяПодсказка - 136 - Label - true - true - - Left - - - UsualGroup - - Vertical - true - true - Auto - Auto - + + ИспользоватьДляПолученияКонтекстноеМеню + 195 + true + + CheckBoxField + Enter + true + Left + true + true true @@ -1667,11 +255,11 @@ <key>ru</key> - <value>Настройка сервера исходящей почты</value> + <value>Настройки учетной записи</value> - НастройкаСервераИсходящейПочтыРасширеннаяПодсказка - 39 + НастройкиУчетнойЗаписиРасширеннаяПодсказка + 558 Label true true @@ -1687,86 +275,14 @@ - НастройкиАвторизацииПриложения - 310 - - ПояснениеПоРегистрацииПриложения - 347 - - <key>ru</key> - <value>Для авторизации средствами почтового сервиса необходимо зарегистрировать это приложение в почтовом сервисе. -</value> - - true - true - - true - - - ПояснениеПоРегистрацииПриложенияРасширеннаяПодсказка - 349 - Label - true - true - - Left - - - - ПояснениеПоРегистрацииПриложенияКонтекстноеМеню - 348 - true - - true - Label - 50 - true - - Left - - - - ПояснениеПоАдресуПеренаправления - 312 - - <key>ru</key> - <value> -Из настроек регистрации приложения заполните следующие поля: -</value> - - true - true - - true - - - ПояснениеПоАдресуПеренаправленияРасширеннаяПодсказка - 314 - Label - true - true - - Left - - - - ПояснениеПоАдресуПеренаправленияКонтекстноеМеню - 313 - true - - true - Label - 50 - - Left - - + ВводПароляУчетнойЗаписи + 555 - АдресПеренаправления - 321 + Пароль + 47 <key>ru</key> - <value>Адрес перенаправления (redirect_uri)</value> + <value>Пароль</value> true true @@ -1774,11 +290,26 @@ true - АдресПеренаправления + ПарольДляПолученияПисем + Top + 1 + + ru + В целях безопасности рекомендуется создать на сайте почтового сервиса отдельный пароль приложения и использовать его в приложении вместо основного пароля. + + ShowBottom + + OnChange + ПарольПриИзменении + - АдресПеренаправленияРасширеннаяПодсказка - 323 + ПарольРасширеннаяПодсказка + 49 + + <key>ru</key> + <value>Учетная запись может потребовать пароль приложения, который отличается от основного пароля.</value> + Label true true @@ -1787,8 +318,8 @@ - АдресПеренаправленияКонтекстноеМеню - 322 + ПарольКонтекстноеМеню + 48 true InputField @@ -1798,203 +329,28 @@ Left true + + StartChoice + ПарольНачалоВыбора + + 23 true true + false true + true + true + + CommonPicture.ВводимыеСимволыВидны + true true true true + OnValueChange Normal - - ПояснениеПоИдентификаторуПриложения - 330 - true - true - - true - - - ПояснениеПоИдентификаторуПриложенияРасширеннаяПодсказка - 332 - Label - true - true - - Left - - - - ПояснениеПоИдентификаторуПриложенияКонтекстноеМеню - 331 - true - - true - Label - 50 - - Left - - - - ИдентификаторПриложения - 315 - - <key>ru</key> - <value>Идентификатор приложения (client_id)</value> - - true - true - - true - - - ИдентификаторПриложения - - - ИдентификаторПриложенияРасширеннаяПодсказка - 317 - Label - true - true - - Left - - - - ИдентификаторПриложенияКонтекстноеМеню - 316 - true - - InputField - true - Enter - true - Left - true - - true - true - true - true - true - true - true - Normal - - - - ПояснениеПоПаролюПриложения - 333 - true - true - - true - - - ПояснениеПоПаролюПриложенияРасширеннаяПодсказка - 335 - Label - true - true - - Left - - - - ПояснениеПоПаролюПриложенияКонтекстноеМеню - 334 - true - - true - Label - 50 - - Left - - - - ПарольПриложения - 318 - - <key>ru</key> - <value>Пароль приложения (client_secret)</value> - - true - true - - true - - - ПарольПриложения - - - ПарольПриложенияРасширеннаяПодсказка - 320 - Label - true - true - - Left - - - - ПарольПриложенияКонтекстноеМеню - 319 - true - - InputField - true - Enter - true - Left - true - - true - true - true - true - true - true - true - Normal - - - - ДополнительноеПояснение - 420 - - <key>ru</key> - <value>У некоторых сервисов новое зарегистрированное приложение становится доступным не сразу. Рекомендуется после регистрации подождать несколько минут, прежде чем продолжить настройку.</value> - - true - true - - true - - - ДополнительноеПояснениеРасширеннаяПодсказка - 422 - Label - true - true - - Left - - - - ДополнительноеПояснениеКонтекстноеМеню - 421 - true - - Label - 50 - - Left - - true true @@ -2002,11 +358,11 @@ <key>ru</key> - <value>Группа2</value> + <value>Ввод пароля учетной записи</value> - НастройкиАвторизацииПриложенияРасширеннаяПодсказка - 311 + ВводПароляУчетнойЗаписиРасширеннаяПодсказка + 556 Label true true @@ -2035,7 +391,7 @@ 327 <key>ru</key> - <value>Веб страница</value> + <value>Веб-страница</value> true true @@ -2264,456 +620,6 @@ false - - ПроверкаНастроекУчетнойЗаписи - 34 - - ПроверкаНастроекУчетнойЗаписиКартинкаИНадпись - 53 - - КартинкаДлительнаяОперация - 55 - true - true - - true - - - КартинкаДлительнаяОперацияРасширеннаяПодсказка - 57 - Label - true - true - - Left - - - - КартинкаДлительнаяОперацияКонтекстноеМеню - 56 - true - - true - true - - - CommonPicture.ДлительнаяОперация48 - - - - - НадписьПроверкаНастроекУчетнойЗаписи - 58 - - <key>ru</key> - <value>Выполняется проверка настроек почты. -Это может занять несколько минут.</value> - - true - true - - true - - - НадписьПроверкаНастроекУчетнойЗаписиРасширеннаяПодсказка - 60 - Label - true - true - - Left - - - - НадписьПроверкаНастроекУчетнойЗаписиКонтекстноеМеню - 59 - true - - Label - true - Center - - Left - - - true - true - - true - - - <key>ru</key> - <value>Проверка настроек почты.</value> - - - ПроверкаНастроекУчетнойЗаписиКартинкаИНадписьРасширеннаяПодсказка - 54 - Label - true - true - - Left - - - UsualGroup - - HorizontalIfPossible - true - true - Auto - Auto - - - true - true - - true - - - <key>ru</key> - <value>Проверка настроек почты</value> - - - ПроверкаНастроекУчетнойЗаписиРасширеннаяПодсказка - 35 - Label - true - true - - Left - - - Page - - Vertical - auto - false - - - - ТехническиеПодробностиОшибки - 275 - - КартинкаТехническиеПодробностиОшибки - 279 - - <key>ru</key> - <value>Картинка вопрос</value> - - true - true - - true - - - КартинкаТехническиеПодробностиОшибкиРасширеннаяПодсказка - 281 - Label - true - true - - Left - - - - КартинкаТехническиеПодробностиОшибкиКонтекстноеМеню - 280 - true - - true - true - - - StdPicture.DialogExclamation - - - - - ГруппаТехническиеПодробностиОшибки - 282 - - ТекстТехническиеПодробностиОшибки - 284 - - <key>ru</key> - <value>Сообщения об ошибках</value> - - true - true - - true - - - СообщенияОбОшибках - - None - - ТекстТехническиеПодробностиОшибкиРасширеннаяПодсказка - 286 - Label - true - true - - Left - - - - ТекстТехническиеПодробностиОшибкиКонтекстноеМеню - 285 - true - - InputField - true - Enter - true - Left - true - - - Opening - ТекстТехническиеПодробностиОшибкиОткрытие - - 7 - true - true - true - true - true - true - true - true - - Style.FormBackColor - - - Style.FormBackColor - - Normal - - - true - true - - true - - - <key>ru</key> - <value>При проверке обнаружены ошибки</value> - - - ГруппаТехническиеПодробностиОшибкиРасширеннаяПодсказка - 283 - Label - true - true - - Left - - - UsualGroup - - Vertical - true - true - Auto - Auto - - - true - true - - true - - - <key>ru</key> - <value>Технические подробности ошибки</value> - - - ТехническиеПодробностиОшибкиРасширеннаяПодсказка - 276 - Label - true - true - - Left - - - Page - - AlwaysHorizontal - auto - false - - - - УчетнаяЗаписьУспешноНастроена - 36 - - УчетнаяЗаписьУспешноНастроенаЗаголовок - 235 - - <key>ru</key> - <value>Почта успешно настроена</value> - - true - - true - - - УчетнаяЗаписьУспешноНастроенаЗаголовокРасширеннаяПодсказка - 237 - Label - true - true - - Left - - - - УчетнаяЗаписьУспешноНастроенаЗаголовокКонтекстноеМеню - 236 - true - - Label - true - - System.DefaultGUIFont - true - false - false - false - - - Left - - - - УчетнаяЗаписьУспешноНастроенаКартинкаИНадпись - 64 - - КартинкаУспешно - 66 - - <key>ru</key> - <value>Картинка успешно</value> - - true - true - - true - - - КартинкаУспешноРасширеннаяПодсказка - 68 - Label - true - true - - Left - - - - КартинкаУспешноКонтекстноеМеню - 67 - true - - true - true - - - CommonPicture.Успешно32 - - - - - НадписьУчетнаяЗаписьУспешноНастроена - 69 - - <key>ru</key> - <value>Настройка параметров почты завершена.</value> - - true - true - - true - - - НадписьУчетнаяЗаписьУспешноНастроенаРасширеннаяПодсказка - 71 - Label - true - true - - Left - - - - НадписьУчетнаяЗаписьУспешноНастроенаКонтекстноеМеню - 70 - true - - Label - true - true - Center - - Left - - - true - true - - true - - - <key>ru</key> - <value>Почта успешно настроена.</value> - - - УчетнаяЗаписьУспешноНастроенаКартинкаИНадписьРасширеннаяПодсказка - 65 - Label - true - true - - Left - - - UsualGroup - - HorizontalIfPossible - true - true - Auto - Auto - - - true - true - - true - - - <key>ru</key> - <value>Почта успешно настроена</value> - - - УчетнаяЗаписьУспешноНастроенаРасширеннаяПодсказка - 37 - Label - true - true - - Left - - - Page - - Vertical - auto - false - - ПриПроверкеОбнаруженыОшибки 393 @@ -2756,11 +662,11 @@ - ТекстСообщенияОбОшибках + КраткоеОписаниеОшибки 402 <key>ru</key> - <value>Сообщения об ошибках</value> + <value>Краткое описание ошибки</value> true true @@ -2768,11 +674,11 @@ true - СообщенияОбОшибках + КраткоеОписаниеОшибки None - ТекстСообщенияОбОшибкахРасширеннаяПодсказка + КраткоеОписаниеОшибкиРасширеннаяПодсказка 404 Label true @@ -2782,32 +688,26 @@ - ТекстСообщенияОбОшибкахКонтекстноеМеню + КраткоеОписаниеОшибкиКонтекстноеМеню 403 true - InputField + LabelField true + Center Enter true Left true - + + true 2 + true true false - true - true - true - true - true Style.FormBackColor - - Style.FormBackColor - - Normal true @@ -2974,6 +874,48 @@ Auto + + ДекорацияТехническиеПодробности + 573 + + <key>ru</key> + <value>Технические подробности</value> + + true + true + + true + + + ДекорацияТехническиеПодробностиРасширеннаяПодсказка + 575 + Label + true + true + + Left + + + + ДекорацияТехническиеПодробностиКонтекстноеМеню + 574 + true + + Label + true + true + + Style.AccentColor + + + + Click + ДекорацияТехническиеПодробностиНажатие + + true + Left + + true true @@ -3028,6 +970,448 @@ false + + ТехническиеПодробности + 576 + + СообщенияОбОшибках + 578 + + <key>ru</key> + <value>Технические подробности</value> + + + Style.AccentColor + + true + true + + true + + + СообщенияОбОшибках + + + СообщенияОбОшибкахРасширеннаяПодсказка + 580 + Label + true + true + + Left + + + + СообщенияОбОшибкахКонтекстноеМеню + 579 + true + + InputField + true + Enter + true + Left + true + + true + true + true + true + true + + Style.FormBackColor + + + Style.FormBackColor + + Normal + + + true + true + + true + + + <key>ru</key> + <value>Технические подробности</value> + + + ТехническиеПодробностиРасширеннаяПодсказка + 577 + Label + true + true + + Left + + + Page + + Vertical + auto + false + + + + ПроверкаНастроекУчетнойЗаписи + 34 + + ПроверкаНастроекУчетнойЗаписиКартинкаИНадпись + 53 + + КартинкаДлительнаяОперация + 55 + true + true + + true + + + КартинкаДлительнаяОперацияРасширеннаяПодсказка + 57 + Label + true + true + + Left + + + + КартинкаДлительнаяОперацияКонтекстноеМеню + 56 + true + + true + true + + + CommonPicture.ДлительнаяОперация48 + + + + + НадписьПроверкаНастроекУчетнойЗаписи + 58 + + <key>ru</key> + <value>Выполняется проверка настроек почты. +Это может занять несколько минут.</value> + + true + true + + true + + + НадписьПроверкаНастроекУчетнойЗаписиРасширеннаяПодсказка + 60 + Label + true + true + + Left + + + + НадписьПроверкаНастроекУчетнойЗаписиКонтекстноеМеню + 59 + true + + Label + true + Center + + Left + + + true + true + + true + + + <key>ru</key> + <value>Проверка настроек почты.</value> + + + ПроверкаНастроекУчетнойЗаписиКартинкаИНадписьРасширеннаяПодсказка + 54 + Label + true + true + + Left + + + UsualGroup + + HorizontalIfPossible + true + true + Auto + Auto + + + + ГруппаОписаниеНастроекПоУмолчанию + 581 + + ОписаниеНастроекПоУмолчанию + 570 + true + true + + true + + + ОписаниеНастроекПоУмолчаниюРасширеннаяПодсказка + 572 + Label + true + true + + Left + + + + ОписаниеНастроекПоУмолчаниюКонтекстноеМеню + 571 + true + + Label + true + true + + Left + + + true + true + + true + + + <key>ru</key> + <value>Технические подробности</value> + + + ГруппаОписаниеНастроекПоУмолчаниюРасширеннаяПодсказка + 582 + Label + true + true + + Left + + + UsualGroup + + HorizontalIfPossible + Collapsible + true + true + true + auto + Auto + Auto + + + true + true + + true + + + <key>ru</key> + <value>Проверка настроек почты</value> + + + ПроверкаНастроекУчетнойЗаписиРасширеннаяПодсказка + 35 + Label + true + true + + Left + + + Page + + Vertical + auto + false + + + + УчетнаяЗаписьУспешноНастроена + 36 + + УчетнаяЗаписьУспешноНастроенаЗаголовок + 235 + + <key>ru</key> + <value>Почта успешно настроена</value> + + true + + true + + + УчетнаяЗаписьУспешноНастроенаЗаголовокРасширеннаяПодсказка + 237 + Label + true + true + + Left + + + + УчетнаяЗаписьУспешноНастроенаЗаголовокКонтекстноеМеню + 236 + true + + Label + true + + System.DefaultGUIFont + true + false + false + false + + + Left + + + + УчетнаяЗаписьУспешноНастроенаКартинкаИНадпись + 64 + + КартинкаУспешно + 66 + + <key>ru</key> + <value>Картинка успешно</value> + + true + true + + true + + + КартинкаУспешноРасширеннаяПодсказка + 68 + Label + true + true + + Left + + + + КартинкаУспешноКонтекстноеМеню + 67 + true + + true + true + + + CommonPicture.Успешно32 + + + + + НадписьУчетнаяЗаписьУспешноНастроена + 69 + + <key>ru</key> + <value>Настройка параметров почты завершена.</value> + + true + true + + true + + + НадписьУчетнаяЗаписьУспешноНастроенаРасширеннаяПодсказка + 71 + Label + true + true + + Left + + + + НадписьУчетнаяЗаписьУспешноНастроенаКонтекстноеМеню + 70 + true + + Label + true + true + Center + + Left + + + true + true + + true + + + <key>ru</key> + <value>Почта успешно настроена.</value> + + + УчетнаяЗаписьУспешноНастроенаКартинкаИНадписьРасширеннаяПодсказка + 65 + Label + true + true + + Left + + + UsualGroup + + HorizontalIfPossible + true + true + Auto + Auto + + + true + true + + true + + + <key>ru</key> + <value>Почта успешно настроена</value> + + + УчетнаяЗаписьУспешноНастроенаРасширеннаяПодсказка + 37 + Label + true + true + + Left + + + Page + + Vertical + auto + false + + true true @@ -3257,7 +1641,7 @@ 156 <key>ru</key> - <value>Перейти к настройкам</value> + <value>Настроить вручную</value> true true @@ -3287,7 +1671,7 @@ 22 <key>ru</key> - <value>Создать</value> + <value>Далее ></value> true true @@ -3402,6 +1786,10 @@ -1 Left + + NotificationProcessing + ОбработкаОповещения + OnOpen ПриОткрытии @@ -3460,7 +1848,7 @@ String - 13 + 50 @@ -3517,10 +1905,6 @@ СерверИсходящейПочты - - <key>ru</key> - <value>Сервер исходящей почты</value> - 8 String @@ -3537,10 +1921,6 @@ ПортСервераИсходящейПочты - - <key>ru</key> - <value>Порт сервера исходящей почты</value> - 9 Number @@ -3607,10 +1987,6 @@ СерверВходящейПочты - - <key>ru</key> - <value>Сервер входящей почты</value> - 14 String @@ -3627,10 +2003,6 @@ Протокол - - <key>ru</key> - <value>Протокол</value> - 15 String @@ -3647,10 +2019,6 @@ ПортСервераВходящейПочты - - <key>ru</key> - <value>Порт сервера входящей почты</value> - 16 Number @@ -3698,10 +2066,6 @@ ОставлятьКопииПисемНаСервере - - <key>ru</key> - <value>Оставлять копии писем на сервере</value> - 19 Boolean @@ -3820,10 +2184,6 @@ ИспользоватьДляОтправки - - <key>ru</key> - <value>Для отправки почты</value> - 28 Boolean @@ -3946,10 +2306,6 @@ ПериодХраненияСообщенийНаСервере - - <key>ru</key> - <value>Период хранения сообщений на сервере</value> - 36 Number @@ -3967,10 +2323,6 @@ УдалятьПисьмаССервера - - <key>ru</key> - <value>Удалять письма с сервера через:</value> - 37 Boolean @@ -4028,10 +2380,6 @@ ШифрованиеПриОтправкеПочты - - <key>ru</key> - <value>Шифрование</value> - 41 String @@ -4046,10 +2394,6 @@ ШифрованиеПриПолученииПочты - - <key>ru</key> - <value>Шифрование</value> - 42 String @@ -4090,10 +2434,6 @@ ВариантАутентификации - - <key>ru</key> - <value>Способ аутентификации</value> - 44 String @@ -4108,10 +2448,6 @@ ИдентификаторПриложения - - <key>ru</key> - <value>Идентификатор приложения</value> - 45 String @@ -4126,10 +2462,6 @@ ПарольПриложения - - <key>ru</key> - <value>Ключ доступа приложения</value> - 46 String @@ -4144,10 +2476,6 @@ АдресПеренаправления - - <key>ru</key> - <value>Адрес перенаправления</value> - 47 String @@ -4367,6 +2695,19 @@ true + + ОткрытаяАвторизацияПочтовогоСервисаОпубликована + 13 + + Boolean + + + true + + + true + + Назад diff --git a/SSL/src/Catalogs/УчетныеЗаписиЭлектроннойПочты/Forms/ПомощникНастройкиУчетнойЗаписи/Module.bsl b/SSL/src/Catalogs/УчетныеЗаписиЭлектроннойПочты/Forms/ПомощникНастройкиУчетнойЗаписи/Module.bsl index 653c8c2b0..e862cc820 100644 --- a/SSL/src/Catalogs/УчетныеЗаписиЭлектроннойПочты/Forms/ПомощникНастройкиУчетнойЗаписи/Module.bsl +++ b/SSL/src/Catalogs/УчетныеЗаписиЭлектроннойПочты/Forms/ПомощникНастройкиУчетнойЗаписи/Module.bsl @@ -1,5 +1,5 @@ /////////////////////////////////////////////////////////////////////////////////////////////////////// -// Copyright (c) 2024, ООО 1С-Софт +// Copyright (c) 2025, ООО 1С-Софт // Все права защищены. Эта программа и сопроводительные материалы предоставляются // в соответствии с условиями лицензии Attribution 4.0 International (CC BY 4.0) // Текст лицензии доступен по ссылке: @@ -11,7 +11,11 @@ &НаСервере Процедура ПриСозданииНаСервере(Отказ, СтандартнаяОбработка) + Заголовок = НСтр("ru = 'Настройка почты'"); + ВариантАутентификации = "OAuth"; + Элементы.КнопкаПерейтиКНастройкам.Видимость = Ложь; + Элементы.КнопкаНазад.Видимость = Ложь; Если ОбщегоНазначения.ПодсистемаСуществует("СтандартныеПодсистемы.ПрофилиБезопасности") Тогда МодульРаботаВБезопасномРежиме = ОбщегоНазначения.ОбщийМодуль("РаботаВБезопасномРежиме"); @@ -21,9 +25,9 @@ КонецЕсли; Если ИспользуютсяПрофилиБезопасности Тогда - СпособНастройки = "Вручную"; + СпособНастройки = РучнаяНастройка(); Иначе - СпособНастройки = "Автоматически"; + СпособНастройки = АвтоматическаяНастройка(); КонецЕсли; ДоступноПолучениеПисем = РаботаСПочтовымиСообщениямиСлужебный.НастройкиПодсистемы().ДоступноПолучениеПисем; @@ -35,66 +39,49 @@ КонтекстныйРежим = Параметры.КонтекстныйРежим; Перенастройка = Параметры.Перенастройка; - Элементы.ИспользоватьУчетнуюЗапись.Видимость = Не КонтекстныйРежим И ДоступноПолучениеПисем; - Элементы.Протокол.Доступность = ДоступноПолучениеПисем; - Элементы.Протокол.Видимость = ИспользоватьПротоколPOP3; - Элементы.ОставлятьПисьмаНаСервере.Видимость = ДоступноПолучениеПисем; - - Элементы.НастройкаУчетнойЗаписиЗаголовок.Заголовок = ?(КонтекстныйРежим, - НСтр("ru = 'Для отправки писем настройте почту'"), - НСтр("ru = 'Введите настройки почты'")); - - Элементы.НастройкаУчетнойЗаписиЗаголовок.Видимость = КонтекстныйРежим; - Заголовок = НСтр("ru = 'Настройка почты'"); ИспользоватьДляПолучения = Не КонтекстныйРежим И ДоступноПолучениеПисем; ИспользоватьДляОтправки = Истина; - Элементы.Страницы.ТекущаяСтраница = Элементы.НастройкаУчетнойЗаписи; + ТребуетсяАвторизацияПриОтправкеПисем = Истина; + + Элементы.ИмяОтправителяПисем.Видимость = Не КонтекстныйРежим; + Элементы.ИспользоватьДляПолучения.Видимость = Не КонтекстныйРежим И ДоступноПолучениеПисем; + Элементы.Страницы.ТекущаяСтраница = Элементы.ВводАдресаЭлектроннойПочты; КлючСохраненияПоложенияОкна = ?(КонтекстныйРежим, "КонтекстныйРежим", "НеконтекстныйРежим"); - ВариантАутентификации = "Пароль"; - Если ЗначениеЗаполнено(Параметры.Ключ) Тогда УчетнаяЗаписьСсылка = Параметры.Ключ; + ВариантАутентификации = "Пароль"; ЗаполнитьСвойстваУчетнойЗаписи(); Иначе СсылкаНовойУчетнойЗаписи = Справочники.УчетныеЗаписиЭлектроннойПочты.ПолучитьСсылку(); Если ОбщегоНазначения.ПодсистемаСуществует("СтандартныеПодсистемы.КонтактнаяИнформация") Тогда + МодульУправлениеКонтактнойИнформацией = ОбщегоНазначения.ОбщийМодуль("УправлениеКонтактнойИнформацией"); ТипАдресЭлектроннойПочты = МодульУправлениеКонтактнойИнформацией.ТипАдресЭлектроннойПочты(); КонтактнаяИнформацияОбъекта = МодульУправлениеКонтактнойИнформацией.КонтактнаяИнформацияОбъекта( Пользователи.ТекущийПользователь(), ТипАдресЭлектроннойПочты, , Ложь); - + Для Каждого Контакт Из КонтактнаяИнформацияОбъекта Цикл Адрес = Контакт.Представление; Если Справочники.УчетныеЗаписиЭлектроннойПочты.НайтиПоРеквизиту("АдресЭлектроннойПочты", Адрес).Пустая() Тогда АдресЭлектроннойПочты = Адрес; - ТекущийЭлемент = Элементы.Пароль; ИмяОтправителяПисем = Строка(Пользователи.ТекущийПользователь()); Прервать; КонецЕсли; КонецЦикла; + КонецЕсли; КонецЕсли; - Элементы.НеУдалосьПодключитьсяКартинкаИНадпись.Видимость = Ложь; - Элементы.КнопкаНазад.Видимость = Ложь; - ЭтоПолноправныйПользователь = Пользователи.ЭтоПолноправныйПользователь(); - Элементы.ДляКогоУчетнаяЗапись.Видимость = ЭтоПолноправныйПользователь И Не КонтекстныйРежим; + Элементы.ВидУчетнойЗаписи.Видимость = ЭтоПолноправныйПользователь И Не КонтекстныйРежим; ВидУчетнойЗаписи = ?(ЭтоПолноправныйПользователь, "Общая", "Персональная"); - Элементы.ИмяОтправителя.Видимость = Не КонтекстныйРежим; - - ТребуетсяАвторизацияПриОтправкеПисем = Истина; Если ОбщегоНазначения.ЭтоМобильныйКлиент() Тогда Элементы.Пароль.РастягиватьПоГоризонтали = Истина; - Элементы.СпособАутентификации.Видимость = Истина; - Элементы.СпособАутентификацииПароль.Видимость = Ложь; - Элементы.СпособАутентификацииПочтовыйСервис.Видимость = Ложь; - Элементы.ГруппаСпособАутентификацииПароль.Группировка = ГруппировкаПодчиненныхЭлементовФормы.Вертикальная; Элементы.Пароль.ПоложениеЗаголовка = ПоложениеЗаголовкаЭлементаФормы.Авто; КонецЕсли; @@ -119,6 +106,7 @@ Процедура ПриОткрытии(Отказ) ПодключитьОбработчикОжидания("НастроитьЭлементыТекущейСтраницыПриОткрытии", 0.1, Истина); + ПодключитьОбработчикОжидания("ПроверитьДоступностьСервисаОткрытойАвторизации", 0.1, Истина); КонецПроцедуры @@ -130,6 +118,7 @@ КонецЕсли; Отказ = Истина; + Если ЗавершениеРаботы Тогда Возврат; КонецЕсли; @@ -138,74 +127,70 @@ КонецПроцедуры +&НаКлиенте +Процедура ОбработкаОповещения(ИмяСобытия, Параметр, Источник) + + Если ИмяСобытия <> "ОткрытаяАвторизацияПочтовогоСервиса" Тогда + Возврат; + КонецЕсли; + + НастройкиАвторизации = НастройкиАвторизацииНаПочтовомСервере; // см. НастройкиАвторизацииНаПочтовомСервере + АдресПолученияКлюча = НастройкиАвторизации.АдресПолученияКлюча; + + Если ИдентификаторЗапроса <> Строка(Параметр.ИдентификаторЗапроса) Тогда + СообщенияОбОшибках = НСтр("ru = 'Не удалось авторизоваться на почтовом сервере. Неверный идентификатор ответа.'"); + ПроверкаЗавершиласьСОшибками = Истина; + ИначеЕсли Не ПолучитьКлючиДоступаКПочтовомуСерверу(Параметр.КодАвторизации, АдресПолученияКлюча) Тогда + ПроверкаЗавершиласьСОшибками = Истина; + КонецЕсли; + + Если ПроверкаЗавершиласьСОшибками Тогда + ЗаполнитьПояснения(); + КонецЕсли; + + ПерейтиНаСледующуюСтраницу(); + +КонецПроцедуры + #КонецОбласти #Область ОбработчикиСобытийЭлементовШапкиФормы &НаКлиенте Процедура ПарольПриИзменении(Элемент) + ПарольДляОтправкиПисем = ПарольДляПолученияПисем; + КонецПроцедуры &НаКлиенте -Процедура ОставлятьКопииПисемНаСервереПриИзменении(Элемент) - ОбновитьДоступностьНастройкиДнейДоУдаления(); -КонецПроцедуры - -&НаКлиенте -Процедура УдалятьПисьмаССервераПриИзменении(Элемент) - ОбновитьДоступностьНастройкиДнейДоУдаления(); +Процедура ПарольНачалоВыбора(Элемент, ДанныеВыбора, СтандартнаяОбработка) + + РаботаСПочтовымиСообщениямиКлиент.ПолеПароляНачалоВыбора(Элемент, ПарольДляПолученияПисем, СтандартнаяОбработка); + КонецПроцедуры &НаКлиенте Процедура АдресЭлектроннойПочтыПриИзменении(Элемент) + НастройкиЗаполнены = Ложь; ТребуетсяПодтверждениеЗакрытияФормы = Истина; + КонецПроцедуры &НаКлиенте Процедура ИмяОтправителяПисемПриИзменении(Элемент) + ТребуетсяПодтверждениеЗакрытияФормы = Истина; -КонецПроцедуры - -&НаКлиенте -Процедура ПротоколПриИзменении(Элемент) - УстановитьВидимостьЭлементов(); - Элементы.СерверВходящейПочты.Заголовок = СтроковыеФункцииКлиентСервер.ПодставитьПараметрыВСтроку( - НСтр("ru = 'Сервер %1'"), Протокол); -КонецПроцедуры - -&НаКлиенте -Процедура ШифрованиеПриОтправкеПочтыПриИзменении(Элемент) - ИспользоватьЗащищенноеСоединениеДляИсходящейПочты = ШифрованиеПриОтправкеПочты = "SSL"; -КонецПроцедуры - -&НаКлиенте -Процедура ШифрованиеПриПолученииПочтыПриИзменении(Элемент) - ИспользоватьЗащищенноеСоединениеДляВходящейПочты = ШифрованиеПриПолученииПочты = "SSL"; -КонецПроцедуры - -&НаКлиенте -Процедура СообщенияОбОшибкахОткрытие(Элемент, СтандартнаяОбработка) - - СтандартнаяОбработка = Ложь; - Элементы.Страницы.ТекущаяСтраница = Элементы.ТехническиеПодробностиОшибки; - НастроитьЭлементыТекущейСтраницы(); КонецПроцедуры &НаКлиенте -Процедура ТекстТехническиеПодробностиОшибкиОткрытие(Элемент, СтандартнаяОбработка) - - СтандартнаяОбработка = Ложь; - Элементы.Страницы.ТекущаяСтраница = Элементы.НастройкаУчетнойЗаписи; - НастроитьЭлементыТекущейСтраницы(); +Процедура ДекорацияТехническиеПодробностиНажатие(Элемент) + + Элементы.Страницы.ТекущаяСтраница = Элементы.ТехническиеПодробности; + Элементы.КнопкаНазад.Видимость = Истина; -КонецПроцедуры - -&НаКлиенте -Процедура СпособАутентификацииПриИзменении(Элемент) - Элементы.Пароль.Доступность = ВариантАутентификации = "Пароль"; КонецПроцедуры #КонецОбласти @@ -213,7 +198,6 @@ #Область ОбработчикиКомандФормы &НаКлиенте - Процедура Далее(Команда) ПерейтиНаСледующуюСтраницу(Команда); @@ -226,19 +210,34 @@ ТекущаяСтраница = Элементы.Страницы.ТекущаяСтраница; ПредыдущаяСтраница = Неопределено; - Если ТекущаяСтраница = Элементы.НастройкаСервераИсходящейПочты Тогда - ПредыдущаяСтраница = Элементы.НастройкаУчетнойЗаписи; - ИначеЕсли ТекущаяСтраница = Элементы.ПроверкаНастроекУчетнойЗаписи Или ТекущаяСтраница = Элементы.ТехническиеПодробностиОшибки Тогда - ПредыдущаяСтраница = Элементы.НастройкаУчетнойЗаписи; + + Если ТекущаяСтраница = Элементы.НастройкиУчетнойЗаписи Тогда + ПредыдущаяСтраница = Элементы.ВводАдресаЭлектроннойПочты; + ИначеЕсли ТекущаяСтраница = Элементы.Авторизация Или ТекущаяСтраница = Элементы.ВводПароляУчетнойЗаписи Тогда + + Если Не КонтекстныйРежим Тогда + ПредыдущаяСтраница = Элементы.НастройкиУчетнойЗаписи; + Иначе + ПредыдущаяСтраница = Элементы.ВводАдресаЭлектроннойПочты; + КонецЕсли; + ИначеЕсли ТекущаяСтраница = Элементы.ПриПроверкеОбнаруженыОшибки Тогда - ПредыдущаяСтраница = Элементы.НастройкиАвторизацииПриложения; - ПроверкаЗавершиласьСОшибками = Ложь; + + Если ЗначениеЗаполнено(ИдентификаторПриложения) Тогда + ПредыдущаяСтраница = Элементы.НастройкиУчетнойЗаписи; + Иначе + ПредыдущаяСтраница = Элементы.ВводПароляУчетнойЗаписи; + ПроверкаЗавершиласьСОшибками = Ложь; + КонецЕсли; + + ИначеЕсли ТекущаяСтраница = Элементы.ТехническиеПодробности Тогда + ПредыдущаяСтраница = Элементы.ПриПроверкеОбнаруженыОшибки; КонецЕсли; Если ПредыдущаяСтраница <> Неопределено Тогда Элементы.Страницы.ТекущаяСтраница = ПредыдущаяСтраница; Иначе - Элементы.Страницы.ТекущаяСтраница = Элементы.НастройкаУчетнойЗаписи; + Элементы.Страницы.ТекущаяСтраница = Элементы.ВводАдресаЭлектроннойПочты; КонецЕсли; НастроитьЭлементыТекущейСтраницы(); @@ -247,8 +246,24 @@ &НаКлиенте Процедура Отмена(Команда) + ОтменитьВыполнениеЗадания(ИдентификаторЗадания); Закрыть(Ложь); + +КонецПроцедуры + +&НаКлиенте +Процедура ПерейтиКНастройкам(Команда) + + ТекущаяСтраница = Элементы.Страницы.ТекущаяСтраница; + + Если Не КонтекстныйРежим И ТекущаяСтраница = Элементы.УчетнаяЗаписьУспешноНастроена Тогда + ПоказатьЗначение(,УчетнаяЗаписьСсылка); + Закрыть(Истина); + Иначе + ОткрытьРучныеНастройки(); + КонецЕсли; + КонецПроцедуры &НаКлиенте @@ -312,8 +327,20 @@ #Область СлужебныеПроцедурыИФункции +&НаКлиенте +Процедура ОткрытьРучныеНастройки() + + ПараметрыУчетнойЗаписи = ПараметрыУчетнойЗаписи(); + ОбработчикЗавершения = Новый ОписаниеОповещения("ПослеРучнойНастройкиУчетнойЗаписи", ЭтотОбъект); + + ОткрытьФорму("Справочник.УчетныеЗаписиЭлектроннойПочты.Форма.ФормаЭлемента", ПараметрыУчетнойЗаписи, , , , , + ОбработчикЗавершения, РежимОткрытияОкнаФормы.БлокироватьОкноВладельца); + +КонецПроцедуры + &НаСервере Процедура ЗаполнитьСвойстваУчетнойЗаписи() + ТекстЗапроса = "ВЫБРАТЬ | УчетныеЗаписиЭлектроннойПочты.АдресЭлектроннойПочты КАК АдресЭлектроннойПочты, @@ -324,58 +351,65 @@ | Справочник.УчетныеЗаписиЭлектроннойПочты КАК УчетныеЗаписиЭлектроннойПочты |ГДЕ | УчетныеЗаписиЭлектроннойПочты.Ссылка = &Ссылка"; + Запрос = Новый Запрос(ТекстЗапроса); Запрос.УстановитьПараметр("Ссылка", УчетнаяЗаписьСсылка); + Выборка = Запрос.Выполнить().Выбрать(); + Если Не Выборка.Следующий() Тогда Возврат; КонецЕсли; - + ЗаполнитьЗначенияСвойств(ЭтотОбъект, Выборка); ТолькоАвторизация = Параметры.ТолькоАвторизация; + Если Выборка.АвторизацияСПомощьюПочтовогоСервиса Или ТолькоАвторизация Тогда + ВариантАутентификации = "OAuth"; - Элементы.Пароль.Доступность = Ложь; + Если ТолькоАвторизация Тогда + НастройкиАвторизацииНаПочтовомСервере = НастройкиАвторизацииНаПочтовомСервере(); НастройкиАвторизации = НастройкиАвторизацииНаПочтовомСервере; // см. НастройкиАвторизацииНаПочтовомСервере Если ЗначениеЗаполнено(НастройкиАвторизации) И ЗначениеЗаполнено(НастройкиАвторизации.ИдентификаторПриложения) Тогда + ИдентификаторПриложения = НастройкиАвторизации.ИдентификаторПриложения; АдресПеренаправления = НастройкиАвторизации.АдресПеренаправления; - Если ЭтоВебКлиент() Тогда + + Если ЭтоВебКлиент() И Не ОткрытаяАвторизацияПочтовогоСервисаОпубликована Тогда АдресПеренаправления = НастройкиАвторизации.АдресПеренаправленияВебКлиент; КонецЕсли; ПарольПриложения = НастройкиАвторизации.ПарольПриложения; Элементы.Страницы.ТекущаяСтраница = Элементы.Авторизация; - Если ЭтоВебКлиент() Тогда + Если ЭтоВебКлиент() И Не ОткрытаяАвторизацияПочтовогоСервисаОпубликована Тогда Элементы.ВариантыАвторизации.ТекущаяСтраница = Элементы.БраузерОперационнойСистемы; ТекущийЭлемент = Элементы.ВебСтраница; Иначе Элементы.ВариантыАвторизации.ТекущаяСтраница = Элементы.ВстроенныйБраузер; КонецЕсли; - Иначе - Элементы.Страницы.ТекущаяСтраница = Элементы.НастройкиАвторизацииПриложения; + КонецЕсли; + КонецЕсли; + КонецЕсли; - Элементы.АдресЭлектроннойПочты.ОтображениеПодсказки = - ?(УчетнаяЗаписьСсылка = РаботаСПочтовымиСообщениями.СистемнаяУчетнаяЗапись(), - ОтображениеПодсказки.ОтображатьСнизу, ОтображениеПодсказки.Нет); - КонецПроцедуры &НаКлиенте Процедура ПоказатьВопросПередЗакрытиемФормы() + ТекстВопроса = НСтр("ru = 'Введенные данные не записаны. Закрыть форму?'"); ОписаниеОповещения = Новый ОписаниеОповещения("ЗакрытиеФормыПодтверждено", ЭтотОбъект); Кнопки = Новый СписокЗначений; Кнопки.Добавить("Закрыть", НСтр("ru = 'Закрыть'")); Кнопки.Добавить(КодВозвратаДиалога.Отмена, НСтр("ru = 'Не закрывать'")); ПоказатьВопрос(ОписаниеОповещения, ТекстВопроса, Кнопки, , КодВозвратаДиалога.Отмена, НСтр("ru = 'Настройка почты'")); + КонецПроцедуры &НаКлиенте @@ -394,105 +428,82 @@ Процедура ПерейтиНаСледующуюСтраницу(Команда = Неопределено) НастройкиАвторизации = НастройкиАвторизацииНаПочтовомСервере; // см. НастройкиАвторизацииНаПочтовомСервере - Отказ = Ложь; - ТекущаяСтраница = Элементы.Страницы.ТекущаяСтраница; + ТекущаяСтраница = Элементы.Страницы.ТекущаяСтраница; СледующаяСтраница = Неопределено; - Если ТекущаяСтраница = Элементы.НастройкаУчетнойЗаписи Или ТекущаяСтраница = Элементы.ТехническиеПодробностиОшибки Тогда - ПроверитьЗаполнениеНаСтраницеНастройкаУчетнойЗаписи(Отказ); + Отказ = Ложь; + + Если ТекущаяСтраница = Элементы.ВводАдресаЭлектроннойПочты Тогда + + ПроверкаЗавершиласьСОшибками = Ложь; + ПроверитьЗаполнениеАдресаЭлектроннойПочты(Отказ); + Если Не Отказ И Не НастройкиЗаполнены Тогда ЗаполнитьНастройкиУчетнойЗаписи(); КонецЕсли; - Если Не Отказ И ВариантАутентификации = "OAuth" Тогда - ПроверкаЗавершиласьСОшибками = Ложь; - СледующаяСтраница = Элементы.НастройкиАвторизацииПриложения; + Если Не Отказ Тогда НастройкиАвторизацииНаПочтовомСервере = НастройкиАвторизацииНаПочтовомСервере(); НастройкиАвторизации = НастройкиАвторизацииНаПочтовомСервере; // см. НастройкиАвторизацииНаПочтовомСервере - Если ЗначениеЗаполнено(НастройкиАвторизации) Тогда - Если ЗначениеЗаполнено(НастройкиАвторизации.АдресАвторизации) Тогда - УстановитьТекстыПоясненийПоРегистрацииПриложения(); - КонецЕсли; - ИдентификаторПриложения = НастройкиАвторизации.ИдентификаторПриложения; - ПарольПриложения = НастройкиАвторизации.ПарольПриложения; + ЗаполнитьЗаголовокПомощника(); + + Если Не КонтекстныйРежим Тогда + СледующаяСтраница = Элементы.НастройкиУчетнойЗаписи; + Иначе + ОпределитьВариантАутентификации(СледующаяСтраница, НастройкиАвторизации); КонецЕсли; - Если Не ЗначениеЗаполнено(АдресПеренаправления) - Или ЗначениеЗаполнено(НастройкиАвторизации) И Не ЗначениеЗаполнено(НастройкиАвторизации.АдресАвторизации) - Или ЭтоВебКлиент() И Не ДоступнаАвторизацияПоКоду() Тогда - СообщенияОбОшибках = НСтр("ru = 'Не найдены настройки авторизации почтового сервиса. Используйте авторизацию по паролю.'"); - ПроверкаЗавершиласьСОшибками = Истина; - ВариантАутентификации = "Пароль"; - СледующаяСтраница = Элементы.НастройкаУчетнойЗаписи; - ИначеЕсли ЗначениеЗаполнено(ИдентификаторПриложения) Тогда - СледующаяСтраница = Элементы.Авторизация; - ПодключитьОбработчикОжидания("АвторизоватьсяНаПочтовомСервере", 0.1, Истина); - КонецЕсли; + КонецЕсли; + + ИначеЕсли ТекущаяСтраница = Элементы.НастройкиУчетнойЗаписи Тогда + + ОпределитьВариантАутентификации(СледующаяСтраница, НастройкиАвторизации); - ИначеЕсли ПроверкаЗавершиласьСОшибками Тогда - СледующаяСтраница = Элементы.ПроверкаНастроекУчетнойЗаписи; - ИначеЕсли Не Отказ Тогда - Если СпособНастройки = "Автоматически" Тогда - СледующаяСтраница = Элементы.ПроверкаНастроекУчетнойЗаписи; - Иначе - Если ИспользоватьДляОтправки Или ИспользоватьДляПолучения Тогда - СледующаяСтраница = Элементы.НастройкаСервераИсходящейПочты; - Иначе - СледующаяСтраница = Элементы.ПроверкаНастроекУчетнойЗаписи; - КонецЕсли; - КонецЕсли; - КонецЕсли; - ИначеЕсли ТекущаяСтраница = Элементы.НастройкиАвторизацииПриложения Тогда - ПроверитьЗаполнениеНаСтраницеНастройкиАвторизацииПриложения(Отказ); - Если Не Отказ Тогда - Если ПроверкаЗавершиласьСОшибками Тогда - СледующаяСтраница = Элементы.НастройкаУчетнойЗаписи; - Иначе - СледующаяСтраница = Элементы.Авторизация; - ПодключитьОбработчикОжидания("АвторизоватьсяНаПочтовомСервере", 0.1, Истина); - КонецЕсли; - КонецЕсли; ИначеЕсли ТекущаяСтраница = Элементы.Авторизация Тогда - Если ЭтоВебКлиент() И Не ЗначениеЗаполнено(НастройкиАвторизации.АдресРегистрацииУстройства) Тогда + + Если ЭтоВебКлиент() И Не ОткрытаяАвторизацияПочтовогоСервисаОпубликована + И Не ЗначениеЗаполнено(НастройкиАвторизации.АдресРегистрацииУстройства) Тогда + Если Не ПолучитьКлючиДоступаКПочтовомуСерверу(КодПодтверждения, НастройкиАвторизации.АдресПолученияКлюча, КлиентскоеПриложение.ПолучитьКраткийЗаголовок()) Тогда ПроверкаЗавершиласьСОшибками = Истина; КонецЕсли; + КонецЕсли; Если ТолькоАвторизация Тогда ТребуетсяПодтверждениеЗакрытияФормы = Ложь; - Если ПроверкаЗавершиласьСОшибками Тогда - Закрыть(Ложь); - Иначе + Если Не ПроверкаЗавершиласьСОшибками Тогда Закрыть(ЗаписатьНастройкиАвторизации()); + Возврат; КонецЕсли; - Возврат; КонецЕсли; Если ПроверкаЗавершиласьСОшибками Тогда СледующаяСтраница = Элементы.ПриПроверкеОбнаруженыОшибки; Иначе - Если СпособНастройки = "Автоматически" Тогда - СледующаяСтраница = Элементы.ПроверкаНастроекУчетнойЗаписи; - Иначе - Если ИспользоватьДляОтправки Или ИспользоватьДляПолучения Тогда - СледующаяСтраница = Элементы.НастройкаСервераИсходящейПочты; - Иначе - СледующаяСтраница = Элементы.ПроверкаНастроекУчетнойЗаписи; - КонецЕсли; - КонецЕсли; + СледующаяСтраница = Элементы.ПроверкаНастроекУчетнойЗаписи; КонецЕсли; - ИначеЕсли ТекущаяСтраница = Элементы.НастройкаСервераИсходящейПочты Тогда + + ИначеЕсли ТекущаяСтраница = Элементы.ВводПароляУчетнойЗаписи Тогда + + Если ПустаяСтрока(ПарольДляПолученияПисем) Тогда + ОбщегоНазначенияКлиент.СообщитьПользователю(НСтр("ru = 'Введите пароль учетной записи'"), , "Пароль"); + Возврат; + КонецЕсли; + СледующаяСтраница = Элементы.ПроверкаНастроекУчетнойЗаписи; + ИначеЕсли ТекущаяСтраница = Элементы.ПроверкаНастроекУчетнойЗаписи Тогда + Если Команда = Неопределено Тогда Если ПроверкаЗавершиласьСОшибками Тогда - СледующаяСтраница = Элементы.НастройкаУчетнойЗаписи; - ИначеЕсли ПроверкаПропущена И СпособНастройки = "Автоматически" Тогда - СпособНастройки = "Вручную"; - СледующаяСтраница = Элементы.НастройкаСервераИсходящейПочты; + СледующаяСтраница = Элементы.ПриПроверкеОбнаруженыОшибки; + ЗаполнитьПояснения(); + ИначеЕсли ПроверкаПропущена И СпособНастройки = АвтоматическаяНастройка() Тогда + ОткрытьРучныеНастройки(); + Возврат; Иначе СледующаяСтраница = Элементы.УчетнаяЗаписьУспешноНастроена; КонецЕсли; @@ -501,9 +512,12 @@ ОтменитьВыполнениеЗадания(ИдентификаторЗадания); ИдентификаторЗадания = ""; ПроверкаПропущена = Истина; - НастроитьЭлементыТекущейСтраницы(); + ПерейтиНаСледующуюСтраницу(); Возврат; КонецЕсли; + + ИначеЕсли ТекущаяСтраница = Элементы.ПриПроверкеОбнаруженыОшибки Тогда + СледующаяСтраница = Элементы.ПроверкаНастроекУчетнойЗаписи; КонецЕсли; Если Отказ Тогда @@ -518,7 +532,7 @@ КонецЕсли; Если Элементы.Страницы.ТекущаяСтраница = Элементы.ПроверкаНастроекУчетнойЗаписи Тогда - Если СпособНастройки = "Автоматически" Тогда + Если СпособНастройки = АвтоматическаяНастройка() Тогда ПодключитьОбработчикОжидания("НастроитьПараметрыПодключенияАвтоматически", 0.1, Истина); Иначе ПодключитьОбработчикОжидания("ВыполнитьПроверкуНастроек", 0.1, Истина); @@ -528,7 +542,43 @@ КонецПроцедуры &НаКлиенте -Процедура УстановитьТекстыПоясненийПоРегистрацииПриложения() +Процедура ОпределитьВариантАутентификации(СледующаяСтраница, НастройкиАвторизации) + + ИдентификаторПриложения = НастройкиАвторизации.ИдентификаторПриложения; + ПарольПриложения = НастройкиАвторизации.ПарольПриложения; + + Если ВариантАутентификации = "OAuth" И ЗначениеЗаполнено(ИдентификаторПриложения) Тогда + + Если ЭтоВебКлиент() И Не ОткрытаяАвторизацияПочтовогоСервисаОпубликована И Не ДоступнаАвторизацияПоКоду() Тогда + ВариантАутентификации = "Пароль"; + СледующаяСтраница = Элементы.ВводПароляУчетнойЗаписи; + ЗаполнитьПодсказкуВводаПароля(); + Иначе + + СледующаяСтраница = Элементы.Авторизация; + АдресПеренаправления = НастройкиАвторизации.АдресПеренаправления; + + Если ЭтоВебКлиент() И Не ОткрытаяАвторизацияПочтовогоСервисаОпубликована Тогда + АдресПеренаправления = НастройкиАвторизации.АдресПеренаправленияВебКлиент; + КонецЕсли; + + Если Не ЗначениеЗаполнено(АдресПеренаправления) Тогда + АдресПеренаправления = НастройкиАвторизации.АдресПеренаправленияПоУмолчанию; + КонецЕсли; + + ПодключитьОбработчикОжидания("АвторизоватьсяНаПочтовомСервере", 0.1, Истина); + + КонецЕсли + Иначе + ВариантАутентификации = "Пароль"; + СледующаяСтраница = Элементы.ВводПароляУчетнойЗаписи; + ЗаполнитьПодсказкуВводаПароля(); + КонецЕсли; + +КонецПроцедуры + +&НаКлиенте +Процедура ЗаполнитьПодсказкуВводаПароля(); НастройкиАвторизации = НастройкиАвторизацииНаПочтовомСервере; // см. НастройкиАвторизацииНаПочтовомСервере @@ -536,48 +586,9 @@ Возврат; КонецЕсли; - Если ЭтоВебКлиент() Тогда - АдресПеренаправления = НастройкиАвторизации.АдресПеренаправленияВебКлиент; - Иначе - АдресПеренаправления = НастройкиАвторизации.АдресПеренаправления; - КонецЕсли; - - Если Не ЗначениеЗаполнено(АдресПеренаправления) Тогда - АдресПеренаправления = НастройкиАвторизации.АдресПеренаправленияПоУмолчанию; - КонецЕсли; - - Если Не ЗначениеЗаполнено(НастройкиАвторизации.ПояснениеПоАдресуПеренаправления) - И Не ЗначениеЗаполнено(НастройкиАвторизации.ПояснениеПоИдентификаторуПриложения) - И Не ЗначениеЗаполнено(НастройкиАвторизации.ПояснениеПоПаролюПриложения) Тогда - Возврат; - КонецЕсли; - - ПояснениеПоАдресуПеренаправления = НастройкиАвторизации.ПояснениеПоАдресуПеренаправления; - ПояснениеПоИдентификаторуПриложения = НастройкиАвторизации.ПояснениеПоИдентификаторуПриложения; - ПояснениеПоПаролюПриложения = НастройкиАвторизации.ПояснениеПоПаролюПриложения; - ДополнительноеПояснение = НастройкиАвторизации.ДополнительноеПояснение; - - ПсевдонимАдресаПеренаправления = НастройкиАвторизации.ПсевдонимАдресаПеренаправления; - ПсевдонимИдентификатораПриложения = НастройкиАвторизации.ПсевдонимИдентификатораПриложения; - ПсевдонимПароляПриложения = НастройкиАвторизации.ПсевдонимПароляПриложения; - - Элементы.ПояснениеПоАдресуПеренаправления.Заголовок = ПояснениеПоАдресуПеренаправления; - Элементы.ПояснениеПоИдентификаторуПриложения.Заголовок = ПояснениеПоИдентификаторуПриложения; - Элементы.ПояснениеПоПаролюПриложения.Заголовок = ПояснениеПоПаролюПриложения; - Элементы.ДополнительноеПояснение.Заголовок = ДополнительноеПояснение; - - Элементы.АдресПеренаправления.Заголовок = ПсевдонимАдресаПеренаправления; - Элементы.ИдентификаторПриложения.Заголовок = ПсевдонимИдентификатораПриложения; - Элементы.ПарольПриложения.Заголовок = ПсевдонимПароляПриложения; - - Элементы.ПояснениеПоПаролюПриложения.Видимость = НастройкиАвторизации.ИспользоватьПарольПриложения; - Элементы.ПарольПриложения.Видимость = НастройкиАвторизации.ИспользоватьПарольПриложения; - - Элементы.ПояснениеПоАдресуПеренаправления.Видимость = ЗначениеЗаполнено(ПояснениеПоАдресуПеренаправления); - Элементы.ПояснениеПоИдентификаторуПриложения.Видимость = ЗначениеЗаполнено(ПояснениеПоИдентификаторуПриложения); - Элементы.ПояснениеПоПаролюПриложения.Видимость = ЗначениеЗаполнено(ПояснениеПоПаролюПриложения); - - Элементы.АдресПеренаправления.Видимость = ЗначениеЗаполнено(ПсевдонимАдресаПеренаправления); + Если ЗначениеЗаполнено(НастройкиАвторизации.ПодсказкаВводаПароля) Тогда + Элементы.Пароль.РасширеннаяПодсказка.Заголовок = НастройкиАвторизации.ПодсказкаВводаПароля; + КонецЕсли КонецПроцедуры @@ -585,12 +596,15 @@ Процедура ВыполнитьПроверкуНастроек() ОповещениеОЗакрытии = Новый ОписаниеОповещения("ВыполнитьПроверкуНастроекЗапросНаРазрешенияВыполнен", ЭтотОбъект); + Если ОбщегоНазначенияКлиент.ПодсистемаСуществует("СтандартныеПодсистемы.ПрофилиБезопасности") Тогда + Запрос = СоздатьЗапросНаИспользованиеВнешнихРесурсов(); МодульРаботаВБезопасномРежимеКлиент = ОбщегоНазначенияКлиент.ОбщийМодуль("РаботаВБезопасномРежимеКлиент"); МодульРаботаВБезопасномРежимеКлиент.ПрименитьЗапросыНаИспользованиеВнешнихРесурсов( ОбщегоНазначенияКлиентСервер.ЗначениеВМассиве(Запрос), ЭтотОбъект, ОповещениеОЗакрытии); + Иначе ВыполнитьОбработкуОповещения(ОповещениеОЗакрытии, КодВозвратаДиалога.ОК); КонецЕсли; @@ -599,15 +613,19 @@ &НаКлиенте Процедура ВыполнитьПроверкуНастроекЗапросНаРазрешенияВыполнен(РезультатЗапроса, ДополнительныеПараметры) Экспорт + Если Не РезультатЗапроса = КодВозвратаДиалога.ОК Тогда Возврат; КонецЕсли; ПроверитьНастройкиУчетнойЗаписи(); + Если ЗначениеЗаполнено(УчетнаяЗаписьСсылка) Тогда ОбщегоНазначенияКлиент.ОповеститьОбИзмененииОбъекта(УчетнаяЗаписьСсылка); КонецЕсли; + ПерейтиНаСледующуюСтраницу(); + КонецПроцедуры &НаСервере @@ -650,7 +668,7 @@ КонецФункции &НаКлиенте -Процедура ПроверитьЗаполнениеНаСтраницеНастройкаУчетнойЗаписи(Отказ) +Процедура ПроверитьЗаполнениеАдресаЭлектроннойПочты(Отказ) ОчиститьСообщения(); @@ -667,63 +685,43 @@ ТекущаяСтраница = Элементы.Страницы.ТекущаяСтраница; - // КнопкаДалее Если ТекущаяСтраница = Элементы.УчетнаяЗаписьУспешноНастроена Тогда Если КонтекстныйРежим Тогда - ЗаголовокКнопкиДалее = НСтр("ru = 'Продолжить'"); + ЗаголовокКнопкиДалее = НСтр("ru = 'Далее >'"); Иначе ЗаголовокКнопкиДалее = НСтр("ru = 'Закрыть'"); КонецЕсли; Иначе - Если ТекущаяСтраница = Элементы.НастройкаУчетнойЗаписи - И ПроверкаЗавершиласьСОшибками Или ТекущаяСтраница = Элементы.ТехническиеПодробностиОшибки Тогда - ЗаголовокКнопкиДалее = НСтр("ru = 'Повторить'"); - ИначеЕсли ТекущаяСтраница = Элементы.НастройкаУчетнойЗаписи - И СпособНастройки = "Автоматически" Тогда - Если КонтекстныйРежим Или Перенастройка Тогда - ЗаголовокКнопкиДалее = НСтр("ru = 'Настроить'"); - Иначе - ЗаголовокКнопкиДалее = НСтр("ru = 'Создать'"); - КонецЕсли; - ИначеЕсли ТекущаяСтраница = Элементы.ПроверкаНастроекУчетнойЗаписи Тогда + Если ТекущаяСтраница = Элементы.ПроверкаНастроекУчетнойЗаписи Тогда ЗаголовокКнопкиДалее = НСтр("ru = 'Пропустить проверку'"); Иначе ЗаголовокКнопкиДалее = НСтр("ru = 'Далее >'"); КонецЕсли; КонецЕсли; - Элементы.КнопкаДалее.Заголовок = ЗаголовокКнопкиДалее; - Элементы.КнопкаДалее.КнопкаПоУмолчанию = ТекущаяСтраница <> Элементы.ПроверкаНастроекУчетнойЗаписи; - Элементы.КнопкаДалее.Доступность = Не (ТекущаяСтраница = Элементы.ПроверкаНастроекУчетнойЗаписи И ПроверкаПропущена); - Элементы.КнопкаДалее.Видимость = Не (ТекущаяСтраница = Элементы.ПроверкаНастроекУчетнойЗаписи И СпособНастройки = "Вручную") - И Не (ТекущаяСтраница = Элементы.Авторизация И Не ЭтоВебКлиент()) - И Не ТекущаяСтраница = Элементы.ПриПроверкеОбнаруженыОшибки; - - Элементы.КнопкаНазад.Видимость = ТекущаяСтраница <> Элементы.НастройкаУчетнойЗаписи - И ТекущаяСтраница <> Элементы.УчетнаяЗаписьУспешноНастроена - И ТекущаяСтраница <> Элементы.ПроверкаНастроекУчетнойЗаписи - И Не ТолькоАвторизация; - - Элементы.КнопкаОтмена.Видимость = ТекущаяСтраница <> Элементы.УчетнаяЗаписьУспешноНастроена; - - Элементы.КнопкаПерейтиКНастройкам.Видимость = Не ИспользуютсяПрофилиБезопасности И (ТекущаяСтраница = Элементы.НастройкаУчетнойЗаписи - И ПроверкаЗавершиласьСОшибками Или Не КонтекстныйРежим И Не Перенастройка И ТекущаяСтраница = Элементы.УчетнаяЗаписьУспешноНастроена); - Если Не КонтекстныйРежим И ТекущаяСтраница = Элементы.УчетнаяЗаписьУспешноНастроена Тогда Элементы.КнопкаПерейтиКНастройкам.Заголовок = НСтр("ru = 'Перейти к настройкам'"); Иначе Элементы.КнопкаПерейтиКНастройкам.Заголовок = НСтр("ru = 'Настроить вручную'"); КонецЕсли; - Если ТекущаяСтраница = Элементы.НастройкаУчетнойЗаписи Тогда - Элементы.НеУдалосьПодключитьсяКартинкаИНадпись.Видимость = ПроверкаЗавершиласьСОшибками; - Элементы.Пароль.Доступность = ВариантАутентификации = "Пароль"; - КонецЕсли; + Элементы.КнопкаДалее.Заголовок = ЗаголовокКнопкиДалее; + Элементы.КнопкаДалее.КнопкаПоУмолчанию = ТекущаяСтраница <> Элементы.ПроверкаНастроекУчетнойЗаписи; + Элементы.КнопкаДалее.Доступность = Не (ТекущаяСтраница = Элементы.ПроверкаНастроекУчетнойЗаписи И ПроверкаПропущена); + Элементы.КнопкаДалее.Видимость = Не (ТекущаяСтраница = Элементы.ПроверкаНастроекУчетнойЗаписи И СпособНастройки = РучнаяНастройка()) + И Не (ТекущаяСтраница = Элементы.Авторизация И Не ЭтоВебКлиент()) + И Не ТекущаяСтраница = Элементы.ПриПроверкеОбнаруженыОшибки; - Если ТекущаяСтраница = Элементы.НастройкаСервераИсходящейПочты Тогда - ОбновитьДоступностьНастройкиДнейДоУдаления(); - УстановитьВидимостьЭлементов(); - КонецЕсли; + Элементы.КнопкаНазад.Видимость = ТекущаяСтраница <> Элементы.ВводАдресаЭлектроннойПочты + И ТекущаяСтраница <> Элементы.УчетнаяЗаписьУспешноНастроена + И ТекущаяСтраница <> Элементы.ПроверкаНастроекУчетнойЗаписи + И Не ТолькоАвторизация; + + Элементы.КнопкаОтмена.Видимость = ТекущаяСтраница <> Элементы.УчетнаяЗаписьУспешноНастроена; + Элементы.КнопкаПерейтиКНастройкам.Видимость = Не ИспользуютсяПрофилиБезопасности + И (ТекущаяСтраница = Элементы.ПриПроверкеОбнаруженыОшибки И ПроверкаЗавершиласьСОшибками + Или Не КонтекстныйРежим И Не Перенастройка И ТекущаяСтраница = Элементы.УчетнаяЗаписьУспешноНастроена) + И Не ТолькоАвторизация; Если ТекущаяСтраница = Элементы.УчетнаяЗаписьУспешноНастроена Тогда Элементы.НадписьУчетнаяЗаписьУспешноНастроена.Заголовок = СтроковыеФункцииКлиентСервер.ПодставитьПараметрыВСтроку( @@ -731,51 +729,50 @@ |%1 успешно завершена.'"), АдресЭлектроннойПочты); КонецЕсли; - Если ТекущаяСтраница = Элементы.Авторизация - И Элементы.ВариантыАвторизации.ТекущаяСтраница = Элементы.ВстроенныйБраузер Тогда + Если ТекущаяСтраница = Элементы.Авторизация И Элементы.ВариантыАвторизации.ТекущаяСтраница = Элементы.ВстроенныйБраузер Тогда Активизировать(); ПодключитьОбработчикОжидания("ПроверитьРезультатАвторизации", 5, Истина ); КонецЕсли; -КонецПроцедуры - -&НаКлиенте -Процедура ОбновитьДоступностьНастройкиДнейДоУдаления() - Элементы.УдалятьПисьмаССервера.Доступность = ОставлятьКопииПисемНаСервере; - Элементы.ПериодХраненияСообщенийНаСервере.Доступность = УдалятьПисьмаССервера; -КонецПроцедуры - -&НаКлиенте -Процедура УстановитьВидимостьЭлементов() - Элементы.ОставлятьПисьмаНаСервере.Видимость = Протокол = "POP"; -КонецПроцедуры - -&НаКлиенте -Процедура ПерейтиКНастройкам(Команда) - ТекущаяСтраница = Элементы.Страницы.ТекущаяСтраница; - Если Не КонтекстныйРежим И ТекущаяСтраница = Элементы.УчетнаяЗаписьУспешноНастроена Тогда - ПоказатьЗначение(,УчетнаяЗаписьСсылка); - Закрыть(Истина); - Иначе - Если СпособНастройки = "Автоматически" Тогда - СпособНастройки = "Вручную"; - КонецЕсли; - Элементы.Страницы.ТекущаяСтраница = Элементы.НастройкаСервераИсходящейПочты; - НастроитьЭлементыТекущейСтраницы(); + Если ТекущаяСтраница <> Элементы.ПриПроверкеОбнаруженыОшибки Тогда + СкрытьРазделТребуетсяПомощь(); КонецЕсли; + +КонецПроцедуры + +&НаСервере +Процедура СкрытьРазделТребуетсяПомощь() + + // СтандартныеПодсистемы.ОбращенияВТехническуюПоддержку + Если ОбщегоНазначения.ПодсистемаСуществует("СтандартныеПодсистемы.ОбращенияВТехническуюПоддержку") Тогда + + МодульОбращенияВТехническуюПоддержкуСлужебный = ОбщегоНазначения.ОбщийМодуль( + "ОбращенияВТехническуюПоддержкуСлужебный"); + + МодульОбращенияВТехническуюПоддержкуСлужебный.СкрытьРазделТребуетсяПомощь(Элементы); + + КонецЕсли; + // Конец СтандартныеПодсистемы.ОбращенияВТехническуюПоддержку + КонецПроцедуры &НаКлиенте Процедура ЗаполнитьНастройкиУчетнойЗаписи() - ЗаполнитьЗначенияСвойств(ЭтотОбъект, НастройкиПоУмолчанию(АдресЭлектроннойПочты, ПарольДляПолученияПисем)); + + НастройкиПоУмолчанию = НастройкиПоУмолчанию(АдресЭлектроннойПочты, ПарольДляПолученияПисем); + ЗаполнитьЗначенияСвойств(ЭтотОбъект, НастройкиПоУмолчанию); + Если ПустаяСтрока(НазваниеУчетнойЗаписи) Тогда НазваниеУчетнойЗаписи = АдресЭлектроннойПочты; КонецЕсли; - + НастройкиЗаполнены = Истина; ШифрованиеПриОтправкеПочты = ?(ИспользоватьЗащищенноеСоединениеДляИсходящейПочты, "SSL", "Авто"); ШифрованиеПриПолученииПочты = ?(ИспользоватьЗащищенноеСоединениеДляВходящейПочты, "SSL", "Авто"); + + ЗаполнитьОписаниеНастроекПоУмолчанию(НастройкиПоУмолчанию); + КонецПроцедуры &НаСервереБезКонтекста @@ -801,7 +798,7 @@ Настройки.Вставить("ПортСервераИсходящейПочты", 587); Настройки.Вставить("ИспользоватьЗащищенноеСоединениеДляИсходящейПочты", Ложь); - Настройки.Вставить("ДлительностьОжиданияСервера", 30); + Настройки.Вставить("ДлительностьОжиданияСервера", 10); Настройки.Вставить("ОставлятьКопииПисемНаСервере", Истина); Настройки.Вставить("ПериодХраненияСообщенийНаСервере", 10); @@ -812,8 +809,37 @@ ЗаполнитьЗначенияСвойств(Настройки, НастройкиSMTPПоУмолчанию); Возврат Настройки; + КонецФункции +&НаКлиенте +Процедура ЗаполнитьОписаниеНастроекПоУмолчанию(НастройкиПоУмолчанию) + + ШаблонОписанияНастроекПоУмолчанию = НСтр("ru = 'Используются настройки по умолчанию. + |Протокол: %1 + | + |Сервер входящей почты: %2 + |Порт сервера входящей почты: %3 + |Использовать SSL-соединение для входящей почты: %4 + | + |Сервер исходящей почты: %5 + |Порт сервера исходящей почты: %6 + |Использовать SSL-соединение для исходящей почты: %7'"); + + ОписаниеНастроекПоУмолчанию = СтроковыеФункцииКлиентСервер.ПодставитьПараметрыВСтроку( + ШаблонОписанияНастроекПоУмолчанию, + НастройкиПоУмолчанию.Протокол, + НастройкиПоУмолчанию.СерверВходящейПочты, + НастройкиПоУмолчанию.ПортСервераВходящейПочты, + НастройкиПоУмолчанию.ИспользоватьЗащищенноеСоединениеДляВходящейПочты, + НастройкиПоУмолчанию.СерверИсходящейПочты, + НастройкиПоУмолчанию.ПортСервераИсходящейПочты, + НастройкиПоУмолчанию.ИспользоватьЗащищенноеСоединениеДляИсходящейПочты); + + Элементы.ОписаниеНастроекПоУмолчанию.Заголовок = ОписаниеНастроекПоУмолчанию; + +КонецПроцедуры + &НаСервере Процедура ПроверитьНастройкиУчетнойЗаписи() @@ -821,20 +847,19 @@ Если ИспользоватьДляОтправки Тогда ПрофильИсходящейПочты = ИнтернетПочтовыйПрофиль(Ложь); КонецЕсли; - + ПрофильВходящейПочты = Неопределено; Если ИспользоватьДляПолучения Тогда ПрофильВходящейПочты = ИнтернетПочтовыйПрофиль(Истина); КонецЕсли; - + РезультатПроверки = Справочники.УчетныеЗаписиЭлектроннойПочты.ПроверитьНастройкиПрофилей( ПрофильИсходящейПочты, ПрофильВходящейПочты, АдресЭлектроннойПочты); - КраткоеОписаниеОшибки = СтрСоединить(РезультатПроверки.ТекстыОшибок, Символы.ПС); СообщенияОбОшибках = РезультатПроверки.ОшибкиПодключения; ПроверкаЗавершиласьСОшибками = ЗначениеЗаполнено(СообщенияОбОшибках); - Если Не ПроверкаЗавершиласьСОшибками Тогда + Если Не ПроверкаЗавершиласьСОшибками И Не ПроверкаПропущена Тогда Попытка СоздатьУчетнуюЗапись(); Исключение @@ -846,6 +871,7 @@ Если ПроверкаЗавершиласьСОшибками Тогда ВремяРегистрацииОшибки = ТекущаяДатаСеанса(); + ЗаполнитьПояснения(); // СтандартныеПодсистемы.ОбращенияВТехническуюПоддержку Если ОбщегоНазначения.ПодсистемаСуществует("СтандартныеПодсистемы.ОбращенияВТехническуюПоддержку") Тогда @@ -884,7 +910,9 @@ КонецЕсли; НачатьТранзакцию(); + Попытка + Блокировка.Заблокировать(); Если УчетнаяЗаписьСсылка.Пустая() Тогда @@ -904,24 +932,28 @@ УчетнаяЗапись.ПротоколВходящейПочты = Протокол; УчетнаяЗапись.Наименование = НазваниеУчетнойЗаписи; УчетнаяЗапись.ПриОтправкеПисемТребуетсяАвторизация = ЗначениеЗаполнено(УчетнаяЗапись.ПользовательSMTP); + Если ВидУчетнойЗаписи = "Персональная" Тогда УчетнаяЗапись.ВладелецУчетнойЗаписи = Пользователи.ТекущийПользователь(); Иначе УчетнаяЗапись.ВладелецУчетнойЗаписи = Справочники.Пользователи.ПустаяСсылка(); КонецЕсли; - УчетнаяЗапись.ДополнительныеСвойства.Вставить("НеПроверятьИзменениеНастроек"); + Если ВариантАутентификации = "OAuth" Тогда УчетнаяЗапись.АвторизацияСПомощьюПочтовогоСервиса = Истина; УчетнаяЗапись.ИмяПочтовогоСервиса = НастройкиАвторизации.ИмяИнтернетСервиса; КонецЕсли; + УчетнаяЗапись.ДополнительныеСвойства.Вставить("НеПроверятьИзменениеНастроек"); УчетнаяЗапись.Записать(); + УчетнаяЗаписьСсылка = УчетнаяЗапись.Ссылка; ТребуетсяПодтверждениеЗакрытияФормы = Ложь; УстановитьПривилегированныйРежим(Истина); ОбщегоНазначения.УдалитьДанныеИзБезопасногоХранилища(УчетнаяЗаписьСсылка); + Если ВариантАутентификации = "OAuth" Тогда ЗаписатьНастройкиАвторизации(); Иначе @@ -930,32 +962,29 @@ КонецЕсли; УстановитьПривилегированныйРежим(Ложь); - + ЗафиксироватьТранзакцию(); + Исключение + ОтменитьТранзакцию(); ЗаписьЖурналаРегистрации(НСтр("ru = 'Работа с почтовыми сообщениями'", ОбщегоНазначения.КодОсновногоЯзыка()), УровеньЖурналаРегистрации.Ошибка, , УчетнаяЗаписьСсылка, ОбработкаОшибок.ПодробноеПредставлениеОшибки(ИнформацияОбОшибке())); ВызватьИсключение; + КонецПопытки; КонецПроцедуры &НаСервере Функция ЗаписатьНастройкиАвторизации() - + УстановитьПривилегированныйРежим(Истина); - + ОбщегоНазначения.ЗаписатьДанныеВБезопасноеХранилище(УчетнаяЗаписьСсылка, ТокенДоступа, "ТокенДоступа"); ОбщегоНазначения.ЗаписатьДанныеВБезопасноеХранилище(УчетнаяЗаписьСсылка, СрокДействияТокенаДоступа, "СрокДействияТокенаДоступа"); ОбщегоНазначения.ЗаписатьДанныеВБезопасноеХранилище(УчетнаяЗаписьСсылка, ТокенОбновления, "ТокенОбновления"); - НастройкиАвторизации = НастройкиАвторизацииНаПочтовомСервере; // см. НастройкиАвторизацииНаПочтовомСервере - НастройкиАвторизации.ПарольПриложения = ПарольПриложения; - НастройкиАвторизации.ИдентификаторПриложения = ИдентификаторПриложения; - НастройкиАвторизации.АдресПеренаправления = АдресПеренаправления; - Справочники.НастройкиАвторизацииИнтернетСервисов.ЗаписатьНастройкиАвторизации(НастройкиАвторизации); - УстановитьПривилегированныйРежим(Ложь); Возврат ОбщегоНазначения.КонтрольнаяСуммаСтрокой(ТокенДоступа + ТокенОбновления); @@ -966,6 +995,7 @@ Функция ИнтернетПочтовыйПрофиль(ДляПолучения = Ложь) Профиль = Новый ИнтернетПочтовыйПрофиль; + Если ДляПолучения Или ТребуетсяВходНаСерверПередОтправкой Тогда Если Протокол = "IMAP" Тогда Профиль.АдресСервераIMAP = СерверВходящейПочты; @@ -1005,8 +1035,8 @@ &НаКлиенте Процедура НастроитьПараметрыПодключенияАвтоматически() - СообщенияОбОшибках = НСтр("ru = 'Не удалось определить настройки подключения. - |Настройте параметры подключения вручную.'"); + СообщенияОбОшибках = НСтр("ru = 'Не удалось определить настройки подключения. + |Настройте параметры подключения вручную.'"); ПроверкаЗавершиласьСОшибками = Ложь; @@ -1040,7 +1070,7 @@ Процедура ПриЗавершенииПоискаНастроек(Результат, ДополнительныеПараметры) Экспорт Если Результат = Неопределено Тогда - Если ПроверкаПропущена И Открыта() Тогда + Если Не ПроверкаПропущена И Открыта() Тогда ПерейтиНаСледующуюСтраницу(); КонецЕсли; Возврат; @@ -1068,8 +1098,8 @@ ПодключитьОбработчикОжидания("ВыполнитьПроверкуНастроек", 0.1, Истина); Возврат; КонецЕсли; - - Если Не ПроверкаЗавершиласьСОшибками Тогда + + Если Не ПроверкаЗавершиласьСОшибками И Не ПроверкаПропущена Тогда Попытка СоздатьУчетнуюЗапись(); Исключение @@ -1085,24 +1115,20 @@ КонецПроцедуры -&НаКлиенте -Процедура ПарольНачалоВыбора(Элемент, ДанныеВыбора, СтандартнаяОбработка) - - РаботаСПочтовымиСообщениямиКлиент.ПолеПароляНачалоВыбора(Элемент, ПарольДляПолученияПисем, СтандартнаяОбработка); - -КонецПроцедуры - &НаСервереБезКонтекста Процедура ОтменитьВыполнениеЗадания(ИдентификаторЗадания) + Если ЗначениеЗаполнено(ИдентификаторЗадания) Тогда ДлительныеОперации.ОтменитьВыполнениеЗадания(ИдентификаторЗадания); КонецЕсли; + КонецПроцедуры &НаКлиенте Процедура ВыполнитьПереходПоАдресу(Знач АдресПерехода) СтруктураАдреса = ОбщегоНазначенияКлиентСервер.СтруктураURI(АдресПерехода); + Если Не ЗначениеЗаполнено(СтруктураАдреса.Схема) Тогда АдресПерехода = "http://" + АдресПерехода; КонецЕсли; @@ -1111,7 +1137,7 @@ ФайловаяСистемаКлиент.ОткрытьНавигационнуюСсылку(АдресПерехода); Возврат; КонецЕсли; - + ВебСтраница = "<!DOCTYPE html> |<html> @@ -1131,7 +1157,8 @@ НастройкиАвторизации = НастройкиАвторизацииНаПочтовомСервере; // см. НастройкиАвторизацииНаПочтовомСервере СтрокаЗапросаАвторизации = СтрокаЗапросаАвторизации(); - Если ЭтоВебКлиент() Тогда + Если ЭтоВебКлиент() И Не ОткрытаяАвторизацияПочтовогоСервисаОпубликована Тогда + Если ЗначениеЗаполнено(НастройкиАвторизации.АдресРегистрацииУстройства) Тогда Если ПолучитьПараметрыАвторизацииВВебКлиенте(НастройкиАвторизации.АдресРегистрацииУстройства) Тогда СтрокаЗапросаАвторизации = АдресАвторизацииПользователя; @@ -1149,8 +1176,9 @@ Элементы.ПояснениеПоКодуПодтверждения.Заголовок = СтроковыеФункцииКлиент.ФорматированнаяСтрока(НСтр( "ru = 'Авторизуйтесь на <a href=""%1"">странице почтового сервиса</a> и введите полученный код в поле ниже:'"), СтрокаЗапросаАвторизации); + Элементы.ВариантыАвторизации.ТекущаяСтраница = Элементы.БраузерОперационнойСистемы; - + Иначе Элементы.ВариантыАвторизации.ТекущаяСтраница = Элементы.ВстроенныйБраузер; ВыполнитьПереходПоАдресу(СтрокаЗапросаАвторизации); @@ -1160,20 +1188,21 @@ &НаСервере Функция СтрокаЗапросаАвторизации() - + НастройкиАвторизации = НастройкиАвторизацииНаПочтовомСервере; // см. НастройкиАвторизацииНаПочтовомСервере + СтруктураURI = ОбщегоНазначенияКлиентСервер.СтруктураURI(НастройкиАвторизации.АдресАвторизации); АдресСервера = СтруктураURI.Хост; АдресРесурса = "/" + СтруктураURI.ПутьНаСервере; ИдентификаторЗапроса = Строка(Новый УникальныйИдентификатор()); ПроверочныйКод = РаботаСПочтовымиСообщениямиСлужебный.СгенерироватьПроверочныйКод(); - + Если ЭтоВебКлиент() Тогда Если Не ЗначениеЗаполнено(НастройкиАвторизации.АдресРегистрацииУстройства) Тогда ИдентификаторУстройства = Строка(Новый УникальныйИдентификатор()); КонецЕсли; - КонецЕсли; + КонецЕсли; ПараметрыЗапроса = ПараметрыЗапросаАвторизации(); HTTPЗапрос = РаботаСПочтовымиСообщениямиСлужебный.ПодготовитьHTTPЗапрос(АдресРесурса, ПараметрыЗапроса, Ложь); @@ -1197,7 +1226,12 @@ ПараметрыЗапроса.Вставить("scope", НастройкиАвторизации["ЗапрашиваемыеРазрешения"]); КонецЕсли; - ПараметрыЗапроса.Вставить("state", ИдентификаторЗапроса); + Если ОткрытаяАвторизацияПочтовогоСервисаОпубликована Тогда + ПараметрыЗапроса.Вставить("state", ВложенныйАдресПеренаправления()); + Иначе + ПараметрыЗапроса.Вставить("state", ИдентификаторЗапроса); + КонецЕсли; + ПараметрыЗапроса.Вставить("login_hint", АдресЭлектроннойПочты); Если НастройкиАвторизации.ИспользоватьКлючПроверкиПодлинностиPKCE Тогда @@ -1216,7 +1250,7 @@ ПараметрыЗапроса.Вставить(ИмяПараметра, ЗначениеПараметра); КонецЦикла; КонецЕсли; - + Если ЭтоВебКлиент() Тогда Если Не ЗначениеЗаполнено(НастройкиАвторизации.АдресРегистрацииУстройства) Тогда ПараметрыЗапроса.Вставить("device_name", НСтр("ru = '1С:Предприятие'")); @@ -1228,18 +1262,52 @@ КонецФункции +&НаСервере +Функция ВложенныйАдресПеренаправления() + + ШаблонВложенногоАдресаПеренаправления = "%1/hs/oauth2_mail/callback/?zone=%2&session=%3&request_id=%4&user_id=%5"; + ВложенныйАдресПеренаправления = СтроковыеФункцииКлиентСервер.ПодставитьПараметрыВСтроку( + ШаблонВложенногоАдресаПеренаправления, + ОбщегоНазначения.АдресПубликацииИнформационнойБазыВИнтернете(), + XMLСтрока(ЗначениеРазделителяСеанса()), + XMLСтрока(НомерСеансаИнформационнойБазы()), + ИдентификаторЗапроса, + Строка(ПользователиИнформационнойБазы.ТекущийПользователь().УникальныйИдентификатор)); + + Возврат ВложенныйАдресПеренаправления; + +КонецФункции + +&НаСервереБезКонтекста +Функция ЗначениеРазделителяСеанса() + + ЗначениеРазделителяСеанса = 0; + + Если ОбщегоНазначения.ПодсистемаСуществует("ТехнологияСервиса.БазоваяФункциональность") Тогда + МодульРаботаВМоделиСервиса = ОбщегоНазначения.ОбщийМодуль("РаботаВМоделиСервиса"); + ЗначениеРазделителяСеанса = МодульРаботаВМоделиСервиса.ЗначениеРазделителяСеанса(); + КонецЕсли; + + Возврат ЗначениеРазделителяСеанса; + +КонецФункции + &НаКлиенте Процедура ВебСтраницаДокументСформирован(Элемент) - + ПроверитьРезультатАвторизации(); - + КонецПроцедуры &НаКлиенте Процедура ПроверитьРезультатАвторизации() -#Если Не ВебКлиент Тогда + Если ОткрытаяАвторизацияПочтовогоСервисаОпубликована Тогда + СерверныеОповещенияКлиент.ПодключитьОбработчикПроверкиПолученияСерверныхОповещений(1, Истина); + Возврат; + КонецЕсли; +#Если Не ВебКлиент Тогда ОтключитьОбработчикОжидания("ПроверитьРезультатАвторизации"); НастройкиАвторизации = НастройкиАвторизацииНаПочтовомСервере; // см. НастройкиАвторизацииНаПочтовомСервере @@ -1272,7 +1340,7 @@ ПриПолученииОтветаПочтовогоСервера(ОтветСервера, АдресПолученияКлюча); ПерейтиНаСледующуюСтраницу(); #КонецЕсли - + КонецПроцедуры &НаСервере @@ -1303,7 +1371,21 @@ КонецЕсли; Если ПроверкаЗавершиласьСОшибками Тогда + + ВремяРегистрацииОшибки = ТекущаяДатаСеанса(); ЗаполнитьПояснения(); + + // СтандартныеПодсистемы.ОбращенияВТехническуюПоддержку + Если ОбщегоНазначения.ПодсистемаСуществует("СтандартныеПодсистемы.ОбращенияВТехническуюПоддержку") Тогда + + МодульОбращенияВТехническуюПоддержкуСлужебный = ОбщегоНазначения.ОбщийМодуль( + "ОбращенияВТехническуюПоддержкуСлужебный"); + + МодульОбращенияВТехническуюПоддержкуСлужебный.ПоказатьРазделТребуетсяПомощь(Элементы); + + КонецЕсли; + // Конец СтандартныеПодсистемы.ОбращенияВТехническуюПоддержку + КонецЕсли; КонецПроцедуры @@ -1323,7 +1405,7 @@ Если ЗначениеЗаполнено(НастройкиАвторизации["ЗапрашиваемыеРазрешения"]) Тогда ПараметрыЗапроса.Вставить("scope", НастройкиАвторизации["ЗапрашиваемыеРазрешения"]); КонецЕсли; - + ПараметрыЗапроса.Вставить("code", КодАвторизации); ПараметрыЗапроса.Вставить("redirect_uri", АдресПеренаправления); ПараметрыЗапроса.Вставить("grant_type", "authorization_code"); @@ -1335,14 +1417,13 @@ Если ЗначениеЗаполнено(ПарольПриложения) Тогда ПараметрыЗапроса.Вставить("client_secret", ПарольПриложения); КонецЕсли; - + Если ЭтоВебКлиент() Тогда ПараметрыЗапроса.Вставить("device_id", ИдентификаторУстройства); ПараметрыЗапроса.Вставить("device_name", ЗаголовокПриложения); КонецЕсли; ВремяЗапроса = ТекущаяДатаСеанса(); - РезультатЗапроса = РаботаСПочтовымиСообщениямиСлужебный.ВыполнитьЗапрос(АдресСервера, АдресРесурса, ПараметрыЗапроса); Попытка @@ -1395,9 +1476,10 @@ &НаСервере Функция ПараметрыИзСтрокиURI(СтрокаURI) - + ЗначенияПараметров = Новый Соответствие; СтруктураURI = ОбщегоНазначенияКлиентСервер.СтруктураURI(СтрокаURI); + Для Каждого ЧастьСтроки Из СтрРазделить(СтруктураURI.ПутьНаСервере, "?&") Цикл ПараметрИЗначение = СтрРазделить(ЧастьСтроки, "=", Истина); ИмяПараметра = ПараметрИЗначение[0]; @@ -1434,7 +1516,7 @@ УстановитьПривилегированныйРежим(Истина); Возврат Справочники.УчетныеЗаписиЭлектроннойПочты.НастройкиПодключенияПоАдресуЭлектроннойПочты(АдресЭлектроннойПочты, ПарольДляПолученияПисем); -КонецФункции +КонецФункции // Возвращаемое значение: // см. Справочники.НастройкиАвторизацииИнтернетСервисов.НастройкиАвторизацииИнтернетСервиса @@ -1476,7 +1558,7 @@ Если ЗначениеЗаполнено(НастройкиАвторизации["ЗапрашиваемыеРазрешения"]) Тогда ПараметрыЗапроса.Вставить("scope", НастройкиАвторизации["ЗапрашиваемыеРазрешения"]); КонецЕсли; - + ВремяЗапроса = ТекущаяДатаСеанса(); РезультатЗапроса = РаботаСПочтовымиСообщениямиСлужебный.ВыполнитьЗапрос(АдресСервера, АдресРесурса, ПараметрыЗапроса); @@ -1616,35 +1698,10 @@ СрокДействияТокенаДоступа = ВремяЗапроса + СрокДействияТокенаДоступа; КонецЕсли; - Возврат Истина; + Возврат Истина; КонецФункции -&НаКлиенте -Процедура ПроверитьЗаполнениеНаСтраницеНастройкиАвторизацииПриложения(Отказ) - - ОчиститьСообщения(); - - ПроверитьЗаполнениеРеквизита(Элементы.АдресПеренаправления, Отказ); - ПроверитьЗаполнениеРеквизита(Элементы.ИдентификаторПриложения, Отказ); - -КонецПроцедуры - -&НаКлиенте -Процедура ПроверитьЗаполнениеРеквизита(Элемент, Отказ) - - ИмяРеквизита = Элемент.Имя; - - Если Элемент.Видимость И Не ЗначениеЗаполнено(ЭтотОбъект[ИмяРеквизита]) Тогда - ТекстСообщения = СтроковыеФункцииКлиентСервер.ПодставитьПараметрыВСтроку( - НСтр("ru = 'Введите %1'"), Элемент.Заголовок); - - ОбщегоНазначенияКлиент.СообщитьПользователю( - ТекстСообщения, , ИмяРеквизита, , Отказ); - КонецЕсли; - -КонецПроцедуры - &НаКлиенте Функция ДоступнаАвторизацияПоКоду() @@ -1662,15 +1719,17 @@ НастройкиАвторизации = НастройкиАвторизацииНаПочтовомСервере; // см. НастройкиАвторизацииНаПочтовомСервере Если ТолькоАвторизация Тогда + Если Не ЗначениеЗаполнено(НастройкиАвторизации) Тогда Закрыть(НСтр("ru = 'Не найдены настройки авторизации для указанного адреса электронной почты. - |Используйте авторизацию по логину и паролю.'")); + |Используйте авторизацию по логину и паролю.'")); Возврат; КонецЕсли; - УстановитьТекстыПоясненийПоРегистрацииПриложения(); + Если Элементы.Страницы.ТекущаяСтраница = Элементы.Авторизация Тогда АвторизоватьсяНаПочтовомСервере(); КонецЕсли; + КонецЕсли; НастроитьЭлементыТекущейСтраницы(); @@ -1680,16 +1739,69 @@ &НаСервере Процедура ЗаполнитьПояснения() - ПоясненияПоОшибке = РаботаСПочтовымиСообщениямиСлужебный.ПоясненияПоОшибке(СообщенияОбОшибках, , Истина); + ПоясненияПоОшибке = ПоясненияПоОшибке(); ВозможныеПричины = РаботаСПочтовымиСообщениямиСлужебный.ФорматированныйСписок(ПоясненияПоОшибке.ВозможныеПричины); СпособыУстранения = РаботаСПочтовымиСообщениямиСлужебный.ФорматированныйСписок(ПоясненияПоОшибке.СпособыУстранения); - Элементы.ДекорацияРекомендации.Заголовок = СпособыУстранения; - Элементы.ДекорацияВозможныеПричины.Заголовок = ВозможныеПричины; + Элементы.ДекорацияРекомендации.Заголовок = Строка(СпособыУстранения); + Элементы.ДекорацияВозможныеПричины.Заголовок = Строка(ВозможныеПричины); + + ЗаполнитьКраткоеОписаниеОшибки(); КонецПроцедуры +&НаСервере +Функция ПоясненияПоОшибке() + + ПараметрыПояснения = РаботаСПочтовымиСообщениямиСлужебный.ПараметрыПояснения(); + ПараметрыПояснения.ТекстОшибки = СообщенияОбОшибках; + ПараметрыПояснения.Контекст = СпособНастройки; + ПараметрыПояснения.ИменаСерверов = РаботаСПочтовымиСообщениямиСлужебный.ИменаСерверовДляПояснения(СерверВходящейПочты, СерверИсходящейПочты); + + Возврат РаботаСПочтовымиСообщениямиСлужебный.ПоясненияПоОшибке(ПараметрыПояснения); + +КонецФункции + +&НаСервере +Процедура ЗаполнитьКраткоеОписаниеОшибки() + + ОграничениеДлины = 150; + + Если СтрДлина(СообщенияОбОшибках) = ОграничениеДлины Тогда + НачалоОписанияОшибки = СтрНайти(СообщенияОбОшибках, Символы.ПС); + КраткоеОписаниеОшибки = Лев(СообщенияОбОшибках, НачалоОписанияОшибки); + Иначе + КраткоеОписаниеОшибки = СообщенияОбОшибках; + КонецЕсли; + + Если Не ЗначениеЗаполнено(КраткоеОписаниеОшибки) Тогда + КраткоеОписаниеОшибки = НСтр("ru = 'Не удалось авторизоваться на почтовом сервере.'"); + КонецЕсли; + +КонецПроцедуры + +&НаКлиенте +Процедура ЗаполнитьЗаголовокПомощника() + + Заголовок = СтроковыеФункцииКлиентСервер.ПодставитьПараметрыВСтроку(НСтр("ru = 'Настройка %1'"), АдресЭлектроннойПочты); + +КонецПроцедуры + +&НаСервереБезКонтекста +Функция АвтоматическаяНастройка() + + Возврат РаботаСПочтовымиСообщениямиСлужебный.КонтекстДляПояснения().АвтоматическаяНастройка; + +КонецФункции + +&НаСервереБезКонтекста +Функция РучнаяНастройка() + + Возврат РаботаСПочтовымиСообщениямиСлужебный.КонтекстДляПояснения().РучнаяНастройка; + +КонецФункции + &НаСервере Процедура ПреобразоватьНастройкиИзPunycode() @@ -1700,4 +1812,78 @@ КонецПроцедуры +&НаКлиенте +Процедура ПослеРучнойНастройкиУчетнойЗаписи(Результат, ДополнительныеПараметры) Экспорт + + Если Результат = Неопределено Тогда + Возврат; + КонецЕсли; + + ЗаполнитьЗначенияСвойств(ЭтотОбъект, Результат); + ЗаполнитьЗаголовокПомощника(); + + ПарольДляПолученияПисем = Результат.Пароль; + ПарольДляОтправкиПисем = ПарольДляПолученияПисем; + + ПроверкаПропущена = Ложь; + СпособНастройки = РучнаяНастройка(); + + Элементы.Страницы.ТекущаяСтраница = Элементы.ВводПароляУчетнойЗаписи; + ПерейтиНаСледующуюСтраницу(); + +КонецПроцедуры + +&НаКлиенте +Процедура ПроверитьДоступностьСервисаОткрытойАвторизации() + + ОткрытаяАвторизацияПочтовогоСервисаОпубликована = ОткрытаяАвторизацияПочтовогоСервисаОпубликована(); + +КонецПроцедуры + +&НаСервереБезКонтекста +Функция ОткрытаяАвторизацияПочтовогоСервисаОпубликована() + + Возврат РаботаСПочтовымиСообщениямиСлужебный.ОткрытаяАвторизацияПочтовогоСервисаОпубликована(); + +КонецФункции + +&НаСервере +Функция ПараметрыУчетнойЗаписи() + + ПараметрыУчетнойЗаписи = Справочники.УчетныеЗаписиЭлектроннойПочты.ПараметрыУчетнойЗаписи(); + ЗаполнитьЗначенияСвойств(ПараметрыУчетнойЗаписи, ЭтотОбъект); + + ПараметрыУчетнойЗаписи.Наименование = НазваниеУчетнойЗаписи; + ПараметрыУчетнойЗаписи.ВремяОжидания = ДлительностьОжиданияСервера; + ПараметрыУчетнойЗаписи.ИмяПользователя = ИмяОтправителяПисем; + ПараметрыУчетнойЗаписи.ОставлятьКопииСообщенийНаСервере = ОставлятьКопииПисемНаСервере; + + ПериодХранения = ?(ОставлятьКопииПисемНаСервере И УдалятьПисьмаССервера И Протокол = "POP", ПериодХраненияСообщенийНаСервере, 0); + ПараметрыУчетнойЗаписи.ПериодХраненияСообщенийНаСервере = ПериодХранения; + + ПараметрыУчетнойЗаписи.Пользователь = ИмяПользователяДляПолученияПисем; + ПараметрыУчетнойЗаписи.ПользовательSMTP = ИмяПользователяДляОтправкиПисем; + ПараметрыУчетнойЗаписи.ПротоколВходящейПочты = Протокол; + ПараметрыУчетнойЗаписи.ПриОтправкеПисемТребуетсяАвторизация = ЗначениеЗаполнено(ИмяПользователяДляОтправкиПисем); + + Если ВидУчетнойЗаписи = "Персональная" Тогда + ПараметрыУчетнойЗаписи.ВладелецУчетнойЗаписи = Пользователи.ТекущийПользователь(); + Иначе + ПараметрыУчетнойЗаписи.ВладелецУчетнойЗаписи = Справочники.Пользователи.ПустаяСсылка(); + КонецЕсли; + + Если ВариантАутентификации = "OAuth" Тогда + ПараметрыУчетнойЗаписи.АвторизацияСПомощьюПочтовогоСервиса = Истина; + ПараметрыУчетнойЗаписи.ИмяПочтовогоСервиса = НастройкиАвторизацииНаПочтовомСервере.ИмяИнтернетСервиса; + Иначе + ПараметрыУчетнойЗаписи.Пароль = ПарольДляПолученияПисем; + КонецЕсли; + + ПараметрыУчетнойЗаписи.ВариантАутентификации = ВариантАутентификации; + ПараметрыУчетнойЗаписи.СозданиеУчетнойЗаписиЧерезПомощник = Истина; + + Возврат ПараметрыУчетнойЗаписи; + +КонецФункции + #КонецОбласти diff --git a/SSL/src/Catalogs/УчетныеЗаписиЭлектроннойПочты/Forms/ПроверкаДоступаКУчетнойЗаписи/Module.bsl b/SSL/src/Catalogs/УчетныеЗаписиЭлектроннойПочты/Forms/ПроверкаДоступаКУчетнойЗаписи/Module.bsl index c9c2ef844..8cc933dcc 100644 --- a/SSL/src/Catalogs/УчетныеЗаписиЭлектроннойПочты/Forms/ПроверкаДоступаКУчетнойЗаписи/Module.bsl +++ b/SSL/src/Catalogs/УчетныеЗаписиЭлектроннойПочты/Forms/ПроверкаДоступаКУчетнойЗаписи/Module.bsl @@ -1,5 +1,5 @@ /////////////////////////////////////////////////////////////////////////////////////////////////////// -// Copyright (c) 2024, ООО 1С-Софт +// Copyright (c) 2025, ООО 1С-Софт // Все права защищены. Эта программа и сопроводительные материалы предоставляются // в соответствии с условиями лицензии Attribution 4.0 International (CC BY 4.0) // Текст лицензии доступен по ссылке: diff --git a/SSL/src/Catalogs/УчетныеЗаписиЭлектроннойПочты/Forms/ПроверкаНастроекУчетнойЗаписи/Form.form b/SSL/src/Catalogs/УчетныеЗаписиЭлектроннойПочты/Forms/ПроверкаНастроекУчетнойЗаписи/Form.form index 05d98e790..0b2f93687 100644 --- a/SSL/src/Catalogs/УчетныеЗаписиЭлектроннойПочты/Forms/ПроверкаНастроекУчетнойЗаписи/Form.form +++ b/SSL/src/Catalogs/УчетныеЗаписиЭлектроннойПочты/Forms/ПроверкаНастроекУчетнойЗаписи/Form.form @@ -1221,6 +1221,19 @@ <common>true</common> </edit> </attributes> + <attributes> + <name>УчетнаяЗапись</name> + <id>10</id> + <valueType> + <types>CatalogRef.УчетныеЗаписиЭлектроннойПочты</types> + </valueType> + <view> + <common>true</common> + </view> + <edit> + <common>true</common> + </edit> + </attributes> <formCommands> <name>ПерейтиКНастройкам</name> <title> diff --git a/SSL/src/Catalogs/УчетныеЗаписиЭлектроннойПочты/Forms/ПроверкаНастроекУчетнойЗаписи/Module.bsl b/SSL/src/Catalogs/УчетныеЗаписиЭлектроннойПочты/Forms/ПроверкаНастроекУчетнойЗаписи/Module.bsl index a6273da92..16cd62bc0 100644 --- a/SSL/src/Catalogs/УчетныеЗаписиЭлектроннойПочты/Forms/ПроверкаНастроекУчетнойЗаписи/Module.bsl +++ b/SSL/src/Catalogs/УчетныеЗаписиЭлектроннойПочты/Forms/ПроверкаНастроекУчетнойЗаписи/Module.bsl @@ -1,5 +1,5 @@ /////////////////////////////////////////////////////////////////////////////////////////////////////// -// Copyright (c) 2024, ООО 1С-Софт +// Copyright (c) 2025, ООО 1С-Софт // Все права защищены. Эта программа и сопроводительные материалы предоставляются // в соответствии с условиями лицензии Attribution 4.0 International (CC BY 4.0) // Текст лицензии доступен по ссылке: @@ -12,6 +12,7 @@ Процедура ПриСозданииНаСервере(Отказ, СтандартнаяОбработка) СообщенияОбОшибках = Параметры.ТекстОшибки; + УчетнаяЗапись = Параметры.УчетнаяЗапись; Если ЗначениеЗаполнено(СообщенияОбОшибках) Тогда Заголовок = Параметры.Заголовок; @@ -224,7 +225,7 @@ &НаСервере Процедура ЗаполнитьПояснения() - ПоясненияПоОшибке = РаботаСПочтовымиСообщениямиСлужебный.ПоясненияПоОшибке(СообщенияОбОшибках); + ПоясненияПоОшибке = ПоясненияПоОшибке(); ВозможныеПричины = РаботаСПочтовымиСообщениямиСлужебный.ФорматированныйСписок(ПоясненияПоОшибке.ВозможныеПричины); СпособыУстранения = РаботаСПочтовымиСообщениямиСлужебный.ФорматированныйСписок(ПоясненияПоОшибке.СпособыУстранения); @@ -234,6 +235,22 @@ КонецПроцедуры +&НаСервере +Функция ПоясненияПоОшибке() + + РеквизитыУчетнойЗаписи = ОбщегоНазначения.ЗначенияРеквизитовОбъекта(УчетнаяЗапись, "СерверВходящейПочты, СерверИсходящейПочты"); + СерверВходящейПочты = РеквизитыУчетнойЗаписи.СерверВходящейПочты; + СерверИсходящейПочты = РеквизитыУчетнойЗаписи.СерверИсходящейПочты; + + ПараметрыПояснения = РаботаСПочтовымиСообщениямиСлужебный.ПараметрыПояснения(); + ПараметрыПояснения.ТекстОшибки = СообщенияОбОшибках; + ПараметрыПояснения.Контекст = РаботаСПочтовымиСообщениямиСлужебный.КонтекстДляПояснения().РучнаяНастройка; + ПараметрыПояснения.ИменаСерверов = РаботаСПочтовымиСообщениямиСлужебный.ИменаСерверовДляПояснения(СерверВходящейПочты, СерверИсходящейПочты); + + Возврат РаботаСПочтовымиСообщениямиСлужебный.ПоясненияПоОшибке(ПараметрыПояснения); + +КонецФункции + &НаСервере Процедура ЗаполнитьИнформациюДляПоддержки(ПодробноеОписаниеОшибки = "") diff --git a/SSL/src/Catalogs/УчетныеЗаписиЭлектроннойПочты/Forms/ФормаВыбора/Module.bsl b/SSL/src/Catalogs/УчетныеЗаписиЭлектроннойПочты/Forms/ФормаВыбора/Module.bsl index b46ca8f83..f7ee683a0 100644 --- a/SSL/src/Catalogs/УчетныеЗаписиЭлектроннойПочты/Forms/ФормаВыбора/Module.bsl +++ b/SSL/src/Catalogs/УчетныеЗаписиЭлектроннойПочты/Forms/ФормаВыбора/Module.bsl @@ -1,5 +1,5 @@ /////////////////////////////////////////////////////////////////////////////////////////////////////// -// Copyright (c) 2024, ООО 1С-Софт +// Copyright (c) 2025, ООО 1С-Софт // Все права защищены. Эта программа и сопроводительные материалы предоставляются // в соответствии с условиями лицензии Attribution 4.0 International (CC BY 4.0) // Текст лицензии доступен по ссылке: diff --git a/SSL/src/Catalogs/УчетныеЗаписиЭлектроннойПочты/Forms/ФормаСписка/Module.bsl b/SSL/src/Catalogs/УчетныеЗаписиЭлектроннойПочты/Forms/ФормаСписка/Module.bsl index e4b0fd17b..07b14ccf3 100644 --- a/SSL/src/Catalogs/УчетныеЗаписиЭлектроннойПочты/Forms/ФормаСписка/Module.bsl +++ b/SSL/src/Catalogs/УчетныеЗаписиЭлектроннойПочты/Forms/ФормаСписка/Module.bsl @@ -1,5 +1,5 @@ /////////////////////////////////////////////////////////////////////////////////////////////////////// -// Copyright (c) 2024, ООО 1С-Софт +// Copyright (c) 2025, ООО 1С-Софт // Все права защищены. Эта программа и сопроводительные материалы предоставляются // в соответствии с условиями лицензии Attribution 4.0 International (CC BY 4.0) // Текст лицензии доступен по ссылке: diff --git a/SSL/src/Catalogs/УчетныеЗаписиЭлектроннойПочты/Forms/ФормаЭлемента/Form.form b/SSL/src/Catalogs/УчетныеЗаписиЭлектроннойПочты/Forms/ФормаЭлемента/Form.form index c3e392f54..d1fba412e 100644 --- a/SSL/src/Catalogs/УчетныеЗаписиЭлектроннойПочты/Forms/ФормаЭлемента/Form.form +++ b/SSL/src/Catalogs/УчетныеЗаписиЭлектроннойПочты/Forms/ФормаЭлемента/Form.form @@ -1766,6 +1766,36 @@ <placementArea>UserCmds</placementArea> <representationInContextMenu>Auto</representationInContextMenu> </items> + <items xsi:type="form:Button"> + <name>ФормаПродолжить</name> + <id>299</id> + <title> + <key>ru</key> + <value>Продолжить</value> + + true + true + + true + + + ФормаПродолжитьРасширеннаяПодсказка + 300 + Label + true + true + + Left + + + Form.Command.ПродолжитьНастройку + Normal + Auto + true + true + UserCmds + Auto + ФормаСтандартныеКоманды 210 @@ -2244,6 +2274,28 @@ Auto Auto + + ПродолжитьНастройку + + <key>ru</key> + <value>Продолжить</value> + + 4 + + ru + Продолжить настройку + + + true + + + + ПродолжитьНастройку + + + Auto + Auto + БлокироватьВладельца @@ -2257,6 +2309,196 @@ + + СозданиеУчетнойЗаписиЧерезПомощник + + Boolean + + + + Наименование + + String + + 50 + + + + + АдресЭлектроннойПочты + + String + + 255 + + + + + Пароль + + String + + + + + ВремяОжидания + + Number + + 3 + + + + + ИмяПользователя + + String + + 100 + + + + + ИспользоватьДляОтправки + + Boolean + + + + ИспользоватьДляПолучения + + Boolean + + + + ИспользоватьЗащищенноеСоединениеДляВходящейПочты + + Boolean + + + + ИспользоватьЗащищенноеСоединениеДляИсходящейПочты + + Boolean + + + + ОставлятьКопииСообщенийНаСервере + + Boolean + + + + ПериодХраненияСообщенийНаСервере + + Number + + 3 + + + + + Пользователь + + String + + 100 + + + + + ПользовательSMTP + + String + + 100 + + + + + ПортСервераВходящейПочты + + Number + + 5 + + + + + ПортСервераИсходящейПочты + + Number + + 5 + + + + + ПротоколВходящейПочты + + String + + 4 + + + + + СерверВходящейПочты + + String + + 300 + + + + + СерверИсходящейПочты + + String + + 300 + + + + + ТребуетсяВходНаСерверПередОтправкой + + Boolean + + + + ОтправлятьСкрытыеКопииПисемНаЭтотАдрес + + Boolean + + + + ВладелецУчетнойЗаписи + + CatalogRef.Пользователи + + + + ПриОтправкеПисемТребуетсяАвторизация + + Boolean + + + + АвторизацияСПомощьюПочтовогоСервиса + + Boolean + + + + ИмяПочтовогоСервиса + + String + + 200 + + + diff --git a/SSL/src/Catalogs/УчетныеЗаписиЭлектроннойПочты/Forms/ФормаЭлемента/Module.bsl b/SSL/src/Catalogs/УчетныеЗаписиЭлектроннойПочты/Forms/ФормаЭлемента/Module.bsl index 613e4d5ef..5218dd9c3 100644 --- a/SSL/src/Catalogs/УчетныеЗаписиЭлектроннойПочты/Forms/ФормаЭлемента/Module.bsl +++ b/SSL/src/Catalogs/УчетныеЗаписиЭлектроннойПочты/Forms/ФормаЭлемента/Module.bsl @@ -1,5 +1,5 @@ /////////////////////////////////////////////////////////////////////////////////////////////////////// -// Copyright (c) 2024, ООО 1С-Софт +// Copyright (c) 2025, ООО 1С-Софт // Все права защищены. Эта программа и сопроводительные материалы предоставляются // в соответствии с условиями лицензии Attribution 4.0 International (CC BY 4.0) // Текст лицензии доступен по ссылке: @@ -18,6 +18,20 @@ &НаСервере Процедура ПриСозданииНаСервере(Отказ, СтандартнаяОбработка) + Элементы.ФормаПродолжить.Видимость = Ложь; + + Если Параметры.СозданиеУчетнойЗаписиЧерезПомощник Тогда + ЗаполнитьЗначенияСвойств(Объект, Параметры); + ДоступноПолучениеПисем = Параметры.ИспользоватьДляПолучения; + Пароль = Параметры.Пароль; + УстановитьСвойстваПриСозданииЧерезПомощник(); + Иначе + Если Не ДоступнаАвторизацияНаПочтовомСервисе() Тогда + Элементы.СпособАутентификацииПочтовыйСервис.Доступность = Ложь; + ВариантАутентификации = "Пароль"; + КонецЕсли; + КонецЕсли; + Если Параметры.БлокироватьВладельца Тогда РежимОткрытияОкна = РежимОткрытияОкнаФормы.БлокироватьОкноВладельца; КонецЕсли; @@ -141,7 +155,7 @@ МодульПодключаемыеКомандыКлиент = ОбщегоНазначенияКлиент.ОбщийМодуль("ПодключаемыеКомандыКлиент"); МодульПодключаемыеКомандыКлиент.НачатьОбновлениеКоманд(ЭтотОбъект); КонецЕсли; - + Если ЗначениеЗаполнено(ИдентификаторИсправления) Тогда ПоказатьСпособИсправления(ИдентификаторИсправления); КонецЕсли; @@ -227,7 +241,7 @@ Элементы.СерверВходящейПочты.Заголовок = СтроковыеФункцииКлиентСервер.ПодставитьПараметрыВСтроку( НСтр("ru = 'Сервер %1'"), Объект.ПротоколВходящейПочты); - + ИспользуетсяПротоколPOP = Объект.ПротоколВходящейПочты = "POP"; Элементы.ОставлятьПисьмаНаСервере.Видимость = ИспользуетсяПротоколPOP И ДоступноПолучениеПисем; @@ -341,7 +355,7 @@ #Иначе Элементы.Пароль.Доступность = Не Объект.АвторизацияСПомощьюПочтовогоСервиса; #КонецЕсли - + Если Объект.АвторизацияСПомощьюПочтовогоСервиса Тогда ОткрытьФормуПомощникаНастроек(Истина); КонецЕсли; @@ -400,10 +414,74 @@ КонецПроцедуры +&НаКлиенте +Процедура ПродолжитьНастройку(Команда) + + Если ВариантАутентификации = "Пароль" И ПустаяСтрока(Пароль) Тогда + ОбщегоНазначенияКлиент.СообщитьПользователю(НСтр("ru = 'Введите пароль учетной записи'"), , "Пароль"); + Возврат; + КонецЕсли; + + Модифицированность = Ложь; + + ПараметрыУчетнойЗаписи = ПараметрыУчетнойЗаписи(); + ЗаполнитьЗначенияСвойств(ПараметрыУчетнойЗаписи, Объект); + ПараметрыУчетнойЗаписи.Пароль = Пароль; + ПараметрыУчетнойЗаписи.ВариантАутентификации = ВариантАутентификации; + + Закрыть(ПараметрыУчетнойЗаписи); + +КонецПроцедуры + +&НаСервереБезКонтекста +Функция ПараметрыУчетнойЗаписи() + + Возврат Справочники.УчетныеЗаписиЭлектроннойПочты.ПараметрыУчетнойЗаписи(); + +КонецФункции + #КонецОбласти #Область СлужебныеПроцедурыИФункции +&НаСервере +Процедура УстановитьСвойстваПриСозданииЧерезПомощник() + + Элементы.СерверВходящейПочты.Заголовок = СтроковыеФункцииКлиентСервер.ПодставитьПараметрыВСтроку( + НСтр("ru = 'Сервер %1'"), Объект.ПротоколВходящейПочты); + + Если ЗначениеЗаполнено(Объект.ВладелецУчетнойЗаписи) Тогда + ВидУчетнойЗаписи = "Персональная"; + Иначе + ВидУчетнойЗаписи = "Общая"; + КонецЕсли; + + Элементы.СпособАутентификацииПочтовыйСервис.Видимость = Ложь; + Элементы.СпособАутентификацииПароль.Видимость = Ложь; + + ВариантАутентификации = "Пароль"; + Объект.АвторизацияСПомощьюПочтовогоСервиса = Ложь; + + Элементы.Пароль.Доступность = Не Объект.АвторизацияСПомощьюПочтовогоСервиса; + Элементы.Пароль.ПоложениеЗаголовка = ПоложениеЗаголовкаЭлементаФормы.Авто; + + Элементы.ФормаЗаписатьИЗакрыть.Видимость = Ложь; + Элементы.ФормаЗаписать.Видимость = Ложь; + Элементы.ФормаПроверитьНастройки.Видимость = Ложь; + Элементы.ФормаОткрытьПомощникНастройки.Видимость = Ложь; + + Элементы.ФормаПродолжить.Видимость = Истина; + Элементы.ФормаПродолжить.КнопкаПоУмолчанию = Истина; + + ИспользуетсяПротоколPOP = Объект.ПротоколВходящейПочты = "POP"; + УстановитьВидГруппыТребуетсяАвторизация(ЭтотОбъект, ИспользуетсяПротоколPOP); + + Элементы.ОставлятьПисьмаНаСервере.Видимость = ИспользуетсяПротоколPOP И ДоступноПолучениеПисем; + Элементы.НастройкаПериодаХраненияПисем.Доступность = Объект.ОставлятьКопииСообщенийНаСервере; + Элементы.ПериодХраненияСообщенийНаСервере.Доступность = УдалятьПисьмаССервера; + +КонецПроцедуры + &НаКлиенте Процедура УстановитьВидНастройкиХраненияПисемНаСервере() @@ -788,4 +866,39 @@ КонецПроцедуры +&НаСервере +Функция ДоступнаАвторизацияНаПочтовомСервисе() + + Если Не ЗначениеЗаполнено(Объект.АдресЭлектроннойПочты) Тогда + Возврат Ложь; + КонецЕсли; + + Возврат ЗначениеЗаполнено(НастройкиАвторизацииНаПочтовомСервере().Ссылка); + +КонецФункции + +// Возвращаемое значение: +// см. Справочники.НастройкиАвторизацииИнтернетСервисов.НастройкиАвторизацииИнтернетСервиса +// +&НаСервере +Функция НастройкиАвторизацииНаПочтовомСервере() + + Возврат НастройкиПодключенияПоАдресуЭлектроннойПочты().НастройкиАвторизации; + +КонецФункции + +// Возвращаемое значение: +// см. Справочники.УчетныеЗаписиЭлектроннойПочты.НастройкиПодключенияПоАдресуЭлектроннойПочты +// +&НаСервере +Функция НастройкиПодключенияПоАдресуЭлектроннойПочты() + + УстановитьПривилегированныйРежим(Истина); + + Возврат Справочники.УчетныеЗаписиЭлектроннойПочты.НастройкиПодключенияПоАдресуЭлектроннойПочты( + Объект.АдресЭлектроннойПочты, + Пароль); + +КонецФункции + #КонецОбласти diff --git a/SSL/src/Catalogs/УчетныеЗаписиЭлектроннойПочты/Help/ru.html b/SSL/src/Catalogs/УчетныеЗаписиЭлектроннойПочты/Help/ru.html index c5d1a8031..1d8170565 100644 --- a/SSL/src/Catalogs/УчетныеЗаписиЭлектроннойПочты/Help/ru.html +++ b/SSL/src/Catalogs/УчетныеЗаписиЭлектроннойПочты/Help/ru.html @@ -11,31 +11,20 @@
              • Приложение поставляется с предопределенной настройкой электронной почты, которая предназначена для рассылки различных уведомлений из приложения. Например, для автоматической отправки сообщений администратору по завершению обновления приложения. Для этого предварительное необходимо настроить ее.
              • Настройка основной почты для рассылок уведомлений производится по соответствующей команде в разделе Администрирование - Органайзер. Также можно Изменить ее в списке.

              Настройка электронной почты

              -
              • При попытке сохранения приложение проверяет введенную электронную почту (пытается отослать пробное сообщение). Электронная почта, не прошедшая проверку, не сохраняются. +
                • При попытке сохранения приложение проверяет введенную электронную почту (пытается отослать пробное сообщение). Электронная почта, не прошедшая проверку, не сохраняется.  +

                  +

                • +
                • Нажмите Создать, откроется пошаговый помощник: +
                  • Укажите Адрес почты в формате name@server.net и нажмите кнопку Далее;
                  • -
                  • Нажмите Создать, введите необходимые поля: -
                    • Укажите Адрес почты в формате name@server.net; -
                    • -
                    • С помощью переключателя выберите способ авторизации:
                    • -
                      • Ввести пароль, в этом случае укажите в поле справа Пароль почты; -
                      • -
                      • Авторизоваться на почтовом сервисе, в этом случае приложение выводит инструкцию авторизации, которая зависит от почтового сервиса. Следуйте инструкции приложения.
                      • -
                        • На почтовом сервисе потребуется указать данные о приложении, например, callback URL, который приложение формирует автоматически.
                        • -
                        • Воспользовавшись указаниями почтового сервиса, зарегистрируйте приложение, получите данные для авторизации и заполните нужные поля, например:
                        • -
                              • ID приложения;
                              • -
                              • пароль приложения (client secret).
                    • Установите с помощью флажков, как Почта будет использоваться: -
                      • Для отправки писем; -
                      • -
                      • Для получения писем;
                    • -
                    • Укажите с помощью переключателя, кем будет использоваться почта: +
                    • Выполните настройки, которые используются при работе с учетной записью:
                    • +
                      • Укажите Имя отправителя (Ваше имя или название организации);
                      • +
                      • Вариант использования - с помощью переключателя укажите, кем будет использоваться почта:
                        • Всеми пользователями (общая почта)
                        • -
                        • Только мной.
                        -
                      • Укажите Имя отправителя (Ваше имя или название организации); -
                      -
                    • Нажмите Создать. Будет предпринята попытка автоматической настройки и проверки почты. Следуйте указаниям приложения. При этом если при автоматической настройке произошел сбой, можно попытаться настроить параметры вручную.
                    • -
                    • Если автоматически настроить почту не удалось, нажмите Настроить вручную.
                    • -
                      • -

                        Нажмите Далее для заполнения остальных параметров, при этом приложение проставляет рекомендуемые параметры для большинства почтовых серверов. Их требуется только проверить и попытаться сохранить электронную почту заново.

                    Настройка электронной почты

                    +
                  • Только мной.
                • Установите флажок Использовать для получения писем, для того чтобы получать письма.
              • Установите пароль, учетная запись может потребовать пароль приложения, который отличатся от основного пароля.
              +
            • Нажмите Далее. Будет предпринята попытка автоматической настройки и проверки почты.
            • +
            • В случае, если не удалось авторизоваться в учетной записи, то помощник откроет шаг с рекомендациями. 
            • +
            • Также доступна детальная настройка учетной записи для этого нажмите Настроить вручную.

            Настройка электронной почты

            • Нажмите Изменить, с помощью приложения произведите необходимые настройки.

            Проверка настроек электронной почты

            • Выделите электронную почту в списке, нажмите Еще - Проверить почту для проверки введенных параметров. При этом отправляется стандартное почтовое отправление и проверяется возможность соединения с сервером входящих почтовых сообщений (если почта используется для получения сообщений).
              diff --git a/SSL/src/Catalogs/УчетныеЗаписиЭлектроннойПочты/ManagerModule.bsl b/SSL/src/Catalogs/УчетныеЗаписиЭлектроннойПочты/ManagerModule.bsl index bf5311525..736e8e12b 100644 --- a/SSL/src/Catalogs/УчетныеЗаписиЭлектроннойПочты/ManagerModule.bsl +++ b/SSL/src/Catalogs/УчетныеЗаписиЭлектроннойПочты/ManagerModule.bsl @@ -1,5 +1,5 @@ /////////////////////////////////////////////////////////////////////////////////////////////////////// -// Copyright (c) 2024, ООО 1С-Софт +// Copyright (c) 2025, ООО 1С-Софт // Все права защищены. Эта программа и сопроводительные материалы предоставляются // в соответствии с условиями лицензии Attribution 4.0 International (CC BY 4.0) // Текст лицензии доступен по ссылке: @@ -417,7 +417,7 @@ // * ИмяПочтовогоСервера - Строка // * НастройкиАвторизации - см. Справочники.НастройкиАвторизацииИнтернетСервисов.НастройкиАвторизацииИнтернетСервиса // -Функция НастройкиПодключенияПоАдресуЭлектроннойПочты(АдресЭлектроннойПочты, Пароль = "") Экспорт +Функция НастройкиПодключенияПоАдресуЭлектроннойПочты(АдресЭлектроннойПочты, Пароль = "", ДляРегистрацииПриложения = Ложь) Экспорт СтруктураАдреса = ОбщегоНазначенияКлиентСервер.СтруктураURI(АдресЭлектроннойПочты); ПочтовыйДомен = СтруктураАдреса.Хост; @@ -433,7 +433,7 @@ ИмяПочтовогоСервера = НайденныеНастройки; НайденныеНастройки = НастройкиПочтовыхСерверов[НайденныеНастройки]; КонецЕсли; - + Если НайденныеНастройки = Неопределено Тогда ИменаСерверов = ОпределитьИменаПочтовыхСерверовДомена(СтруктураАдреса.Хост); Для Каждого ИмяСервера Из ИменаСерверов Цикл @@ -475,7 +475,7 @@ КонецЕсли; УстановитьПривилегированныйРежим(Истина); - НастройкиАвторизации = НастройкиАвторизацииСервера(НайденныеНастройки, ИмяПочтовогоСервера, ПочтовыйДомен); + НастройкиАвторизации = НастройкиАвторизацииСервера(НайденныеНастройки, ИмяПочтовогоСервера, ПочтовыйДомен, ДляРегистрацииПриложения); УстановитьПривилегированныйРежим(Ложь); Результат = Новый Структура; @@ -490,9 +490,16 @@ // Возвращаемое значение: // см. Справочники.НастройкиАвторизацииИнтернетСервисов.НастройкиАвторизацииИнтернетСервиса // -Функция НастройкиАвторизацииСервера(НайденныеНастройки, ИмяПочтовогоСервера, ПочтовыйДомен) +Функция НастройкиАвторизацииСервера(НайденныеНастройки, ИмяПочтовогоСервера, ПочтовыйДомен, ДляРегистрацииПриложения) + + НастройкиАвторизации = Справочники.НастройкиАвторизацииИнтернетСервисов.НастройкиАвторизацииИнтернетСервиса( + ИмяПочтовогоСервера, ПочтовыйДомен); + + Если Не ЗначениеЗаполнено(НастройкиАвторизации.Ссылка) И Не ДляРегистрацииПриложения Тогда + НастройкиАвторизации = Справочники.ОбщиеНастройкиАвторизацииИнтернетСервисов.НастройкиАвторизацииИнтернетСервиса( + ИмяПочтовогоСервера, ПочтовыйДомен); + КонецЕсли; - НастройкиАвторизации = Справочники.НастройкиАвторизацииИнтернетСервисов.НастройкиАвторизацииИнтернетСервиса(ИмяПочтовогоСервера, ПочтовыйДомен); НастройкиИзКлассификатора = НайденныеНастройки["OAuth"]; Если Не ЗначениеЗаполнено(НастройкиИзКлассификатора) Тогда @@ -554,9 +561,11 @@ НастройкиАвторизации.АдресПеренаправленияПоУмолчанию = НастройкиИзКлассификатора["DefaultRedirectURI"]; НастройкиАвторизации.АдресПеренаправленияВебКлиент = НастройкиИзКлассификатора["WebClientRedirectURI"]; - НастройкиАвторизации.АдресРегистрацииУстройства = НастройкиИзКлассификатора["DeviceAuthorizationURI"]; + НастройкиАвторизации.ПодсказкаВводаПароля = СтроковыеФункции.ФорматированнаяСтрока( + СтрокаДляТекущегоЯзыка(НастройкиИзКлассификатора["PasswordDescription"])); + Возврат НастройкиАвторизации; КонецФункции @@ -592,6 +601,7 @@ НастройкиПочтовыхСерверов = Неопределено; Если ОбщегоНазначения.ПодсистемаСуществует("СтандартныеПодсистемы.ПолучениеФайловИзИнтернета") Тогда + МодульПолучениеФайловИзИнтернета = ОбщегоНазначения.ОбщийМодуль("ПолучениеФайловИзИнтернета"); АдресФайлаСНастройками = РаботаСПочтовымиСообщениямиСлужебный.АдресФайлаСНастройками(); @@ -603,6 +613,7 @@ НастройкиПочтовыхСерверов = ПрочитатьJSON(ЧтениеJSON, Истина); ЧтениеJSON.Закрыть(); КонецЕсли; + КонецЕсли; Возврат НастройкиПочтовыхСерверов; @@ -703,7 +714,7 @@ Возврат Профиль; КонецФункции - + Функция ОпределитьНастройкиPOP(АдресЭлектроннойПочты, Пароль) Для Каждого Профиль Из ПрофилиPOP(АдресЭлектроннойПочты, Пароль) Цикл СообщениеСервера = ПроверитьПодключениеКСерверуВходящейПочты(Профиль, ПротоколИнтернетПочты.POP3); @@ -865,7 +876,7 @@ Настройки.Вставить("ИспользоватьЗащищенноеСоединениеДляИсходящейПочты", Истина); Настройки.Вставить("ТребуетсяВходНаСерверПередОтправкой", Ложь); - Настройки.Вставить("ДлительностьОжиданияСервера", 30); + Настройки.Вставить("ДлительностьОжиданияСервера", 10); Настройки.Вставить("ОставлятьКопииПисемНаСервере", Истина); Настройки.Вставить("УдалятьПисьмаССервераЧерез", 0); @@ -1481,6 +1492,39 @@ КонецФункции +Функция ПараметрыУчетнойЗаписи() Экспорт + + ПараметрыУчетнойЗаписи = Новый Структура; + ПараметрыУчетнойЗаписи.Вставить("Наименование"); + ПараметрыУчетнойЗаписи.Вставить("АдресЭлектроннойПочты"); + ПараметрыУчетнойЗаписи.Вставить("Пароль"); + ПараметрыУчетнойЗаписи.Вставить("ВремяОжидания"); + ПараметрыУчетнойЗаписи.Вставить("ИмяПользователя"); + ПараметрыУчетнойЗаписи.Вставить("ИспользоватьДляОтправки"); + ПараметрыУчетнойЗаписи.Вставить("ИспользоватьДляПолучения"); + ПараметрыУчетнойЗаписи.Вставить("ИспользоватьЗащищенноеСоединениеДляВходящейПочты"); + ПараметрыУчетнойЗаписи.Вставить("ИспользоватьЗащищенноеСоединениеДляИсходящейПочты"); + ПараметрыУчетнойЗаписи.Вставить("ОставлятьКопииСообщенийНаСервере"); + ПараметрыУчетнойЗаписи.Вставить("ПериодХраненияСообщенийНаСервере"); + ПараметрыУчетнойЗаписи.Вставить("Пользователь"); + ПараметрыУчетнойЗаписи.Вставить("ПользовательSMTP"); + ПараметрыУчетнойЗаписи.Вставить("ПортСервераВходящейПочты"); + ПараметрыУчетнойЗаписи.Вставить("ПортСервераИсходящейПочты"); + ПараметрыУчетнойЗаписи.Вставить("ПротоколВходящейПочты"); + ПараметрыУчетнойЗаписи.Вставить("СерверВходящейПочты"); + ПараметрыУчетнойЗаписи.Вставить("СерверИсходящейПочты"); + ПараметрыУчетнойЗаписи.Вставить("ТребуетсяВходНаСерверПередОтправкой"); + ПараметрыУчетнойЗаписи.Вставить("ПриОтправкеПисемТребуетсяАвторизация"); + ПараметрыУчетнойЗаписи.Вставить("ВладелецУчетнойЗаписи"); + ПараметрыУчетнойЗаписи.Вставить("АвторизацияСПомощьюПочтовогоСервиса"); + ПараметрыУчетнойЗаписи.Вставить("ИмяПочтовогоСервиса"); + ПараметрыУчетнойЗаписи.Вставить("ВариантАутентификации"); + ПараметрыУчетнойЗаписи.Вставить("СозданиеУчетнойЗаписиЧерезПомощник"); + + Возврат ПараметрыУчетнойЗаписи; + +КонецФункции + Функция ИнформацияОПрограмме() Экспорт Результат = Новый Массив; diff --git a/SSL/src/Catalogs/УчетныеЗаписиЭлектроннойПочты/ObjectModule.bsl b/SSL/src/Catalogs/УчетныеЗаписиЭлектроннойПочты/ObjectModule.bsl index 32bfb1a24..888d6e7e3 100644 --- a/SSL/src/Catalogs/УчетныеЗаписиЭлектроннойПочты/ObjectModule.bsl +++ b/SSL/src/Catalogs/УчетныеЗаписиЭлектроннойПочты/ObjectModule.bsl @@ -1,5 +1,5 @@ /////////////////////////////////////////////////////////////////////////////////////////////////////// -// Copyright (c) 2024, ООО 1С-Софт +// Copyright (c) 2025, ООО 1С-Софт // Все права защищены. Эта программа и сопроводительные материалы предоставляются // в соответствии с условиями лицензии Attribution 4.0 International (CC BY 4.0) // Текст лицензии доступен по ссылке: diff --git a/SSL/src/Catalogs/Файлы/Commands/ВерсииФайла/CommandModule.bsl b/SSL/src/Catalogs/Файлы/Commands/ВерсииФайла/CommandModule.bsl index 6f5a4de71..1f6cce39a 100644 --- a/SSL/src/Catalogs/Файлы/Commands/ВерсииФайла/CommandModule.bsl +++ b/SSL/src/Catalogs/Файлы/Commands/ВерсииФайла/CommandModule.bsl @@ -1,5 +1,5 @@ /////////////////////////////////////////////////////////////////////////////////////////////////////// -// Copyright (c) 2024, ООО 1С-Софт +// Copyright (c) 2025, ООО 1С-Софт // Все права защищены. Эта программа и сопроводительные материалы предоставляются // в соответствии с условиями лицензии Attribution 4.0 International (CC BY 4.0) // Текст лицензии доступен по ссылке: diff --git a/SSL/src/Catalogs/Файлы/Commands/Файлы/CommandModule.bsl b/SSL/src/Catalogs/Файлы/Commands/Файлы/CommandModule.bsl index d7607ecb7..7fe0017e7 100644 --- a/SSL/src/Catalogs/Файлы/Commands/Файлы/CommandModule.bsl +++ b/SSL/src/Catalogs/Файлы/Commands/Файлы/CommandModule.bsl @@ -1,5 +1,5 @@ /////////////////////////////////////////////////////////////////////////////////////////////////////// -// Copyright (c) 2024, ООО 1С-Софт +// Copyright (c) 2025, ООО 1С-Софт // Все права защищены. Эта программа и сопроводительные материалы предоставляются // в соответствии с условиями лицензии Attribution 4.0 International (CC BY 4.0) // Текст лицензии доступен по ссылке: diff --git a/SSL/src/Catalogs/Файлы/Forms/ПеретаскиваниеФайлов/Module.bsl b/SSL/src/Catalogs/Файлы/Forms/ПеретаскиваниеФайлов/Module.bsl index bffc27d87..c4fc32d00 100644 --- a/SSL/src/Catalogs/Файлы/Forms/ПеретаскиваниеФайлов/Module.bsl +++ b/SSL/src/Catalogs/Файлы/Forms/ПеретаскиваниеФайлов/Module.bsl @@ -1,5 +1,5 @@ /////////////////////////////////////////////////////////////////////////////////////////////////////// -// Copyright (c) 2024, ООО 1С-Софт +// Copyright (c) 2025, ООО 1С-Софт // Все права защищены. Эта программа и сопроводительные материалы предоставляются // в соответствии с условиями лицензии Attribution 4.0 International (CC BY 4.0) // Текст лицензии доступен по ссылке: diff --git a/SSL/src/Catalogs/Файлы/Forms/Файлы/Form.form b/SSL/src/Catalogs/Файлы/Forms/Файлы/Form.form index a0fb5cb0e..5c25bebe6 100644 --- a/SSL/src/Catalogs/Файлы/Forms/Файлы/Form.form +++ b/SSL/src/Catalogs/Файлы/Forms/Файлы/Form.form @@ -966,7 +966,7 @@ VeryLow <key>ru</key> - <value>Номер картинки подписан зашифрован</value> + <value>Зашифрован</value> true true @@ -1018,6 +1018,66 @@ + + СписокНомерКартинкиЭтоАрхив + 460 + + <key>ru</key> + <value>В архиве</value> + + true + true + + true + + + Список.НомерКартинкиЭтоАрхив + + None + + ru + Файл перенесен в архив + + + СписокНомерКартинкиЭтоАрхивРасширеннаяПодсказка + 462 + Label + true + true + + Left + + + + СписокНомерКартинкиЭтоАрхивКонтекстноеМеню + 461 + true + + PictureField + true + Enter + true + + CommonPicture.ФайловыйАрхив + + Left + true + + 2 + true + true + true + true + + CommonPicture.ФайловыйАрхив + + + + 1 + + AsFileRef + + СписокГруппаИмяКартинкаОписание 310 @@ -4594,6 +4654,9 @@ Список.Кодировка + + Список.НомерКартинкиЭтоАрхив + Список.ПодписанЭП @@ -4660,6 +4723,11 @@ ТОГДА 0 ИНАЧЕ -1 КОНЕЦ КАК НомерКартинкиПодписанЗашифрован, + ВЫБОР + КОГДА ЕСТЬNULL(Файлы.ТекущаяВерсия.ДатаПереносаВАрхив, ДАТАВРЕМЯ(1, 1, 1)) = ДАТАВРЕМЯ(1, 1, 1) + ТОГДА -1 + ИНАЧЕ 0 + КОНЕЦ КАК НомерКартинкиЭтоАрхив, ДОБАВИТЬКДАТЕ(Файлы.ДатаМодификацииУниверсальная, СЕКУНДА, &СекундДоМестногоВремени) КАК ДатаИзменения, Файлы.Служебный КАК Служебный, КодировкиФайлов.Кодировка @@ -4897,6 +4965,22 @@ Кодировка Кодировка + + Изменил + Изменил + + + НомерКартинкиЭтоАрхив + НомерКартинкиЭтоАрхив + + <localValue> + <content> + <key>ru</key> + <value>Номер картинки это архив</value> + </content> + </localValue> + + ПустыеПользователи diff --git a/SSL/src/Catalogs/Файлы/Forms/Файлы/Module.bsl b/SSL/src/Catalogs/Файлы/Forms/Файлы/Module.bsl index 7af72ff84..5fb650df6 100644 --- a/SSL/src/Catalogs/Файлы/Forms/Файлы/Module.bsl +++ b/SSL/src/Catalogs/Файлы/Forms/Файлы/Module.bsl @@ -1,5 +1,5 @@ /////////////////////////////////////////////////////////////////////////////////////////////////////// -// Copyright (c) 2024, ООО 1С-Софт +// Copyright (c) 2025, ООО 1С-Софт // Все права защищены. Эта программа и сопроводительные материалы предоставляются // в соответствии с условиями лицензии Attribution 4.0 International (CC BY 4.0) // Текст лицензии доступен по ссылке: @@ -66,6 +66,8 @@ ПриИзмененияИспользованияПодписанияИлиШифрованияНаСервере(); + РаботаСФайловымАрхивомСервер.ВидимостьПоляСписокНомерКартинкиЭтоАрхив(Элементы.СписокНомерКартинкиЭтоАрхив); + ЗаполнитьЗначенияСвойств(ЭтотОбъект, НастройкиПравПапки(Элементы.Папки.ТекущаяСтрока)); ИспользоватьПредпросмотр = ОбщегоНазначения.ХранилищеОбщихНастроекЗагрузить("Файлы", "Предпросмотр"); @@ -145,8 +147,10 @@ Элементы.Список.Обновить(); Если ЗначениеЗаполнено(Параметр.Файл) Тогда Элементы.Список.ТекущаяСтрока = Параметр.Файл; - ИначеЕсли Источник <> Неопределено Тогда + ИначеЕсли ТипЗнч(Источник) = Тип("СправочникСсылка.Файлы") Тогда Элементы.Список.ТекущаяСтрока = Источник; + ИначеЕсли Элементы.Список.ТекущиеДанные <> Неопределено Тогда + Элементы.Список.ТекущаяСтрока = Элементы.Список.ТекущиеДанные.Ссылка; КонецЕсли; КонецЕсли; @@ -220,15 +224,22 @@ ПоказатьЗначение(, ВыбраннаяСтрока); Возврат; КонецЕсли; + + ТекущиеДанные = Элемент.ТекущиеДанные; - ДанныеФайла = РаботаСФайламиСлужебныйВызовСервера.ДанныеФайлаДляОткрытия(ВыбраннаяСтрока, - Неопределено, УникальныйИдентификатор, Неопределено, ПредыдущийАдресФайла); + ПараметрыПолученияФайла = РаботаСФайламиКлиент.ПараметрыАсинхронногоПолученияФайла("ВыбратьРежимИРедактироватьФайл"); + ПараметрыПолученияФайла.ПрисоединенныйФайл = ВыбраннаяСтрока; + ПараметрыПолученияФайла.ФормаВладелец = ЭтотОбъект; + ПараметрыПолученияФайла.ПроверятьНаличиеФайлаВАрхиве = Ложь; + ПараметрыПолученияФайла.ФайлВАрхиве = ТекущиеДанные.НомерКартинкиЭтоАрхив = 0; + + ПараметрыПолученияФайла.ПараметрыМетода.ПредыдущийАдресФайла = ПредыдущийАдресФайла; - ПараметрыОбработчика = Новый Структура; - ПараметрыОбработчика.Вставить("ДанныеФайла", ДанныеФайла); - Обработчик = Новый ОписаниеОповещения("СписокВыборПослеВыбораРежимаРедактирования", ЭтотОбъект, ПараметрыОбработчика); - - РаботаСФайламиСлужебныйКлиент.ВыбратьРежимИРедактироватьФайл(Обработчик, ДанныеФайла, Элементы.ФормаРедактировать.Доступность); + ПараметрыДействия = ПараметрыПолученияФайла.ПараметрыДействия; + ПараметрыДействия.ФормаВладелец = ЭтотОбъект; + ПараметрыДействия.ДоступностьКомандыРедактировать = Элементы.ФормаРедактировать.Доступность; + + РаботаСФайламиКлиент.ОткрытьФайл(ПараметрыПолученияФайла); КонецПроцедуры @@ -251,6 +262,9 @@ Отказ = Истина; Если Копирование Тогда + Если Элемент.ТекущиеДанные.НомерКартинкиЭтоАрхив = 0 Тогда + Возврат; + КонецЕсли; РаботаСФайламиКлиент.СкопироватьФайл(ВладелецФайла, ФайлОснование); Иначе РаботаСФайламиСлужебныйКлиент.ДобавитьФайл(Неопределено, ВладелецФайла, ЭтотОбъект, 2, Истина); @@ -424,11 +438,19 @@ Если Не ФайловыеКомандыДоступны() Тогда Возврат; КонецЕсли; - - ДанныеФайла = РаботаСФайламиСлужебныйВызовСервера.ДанныеФайлаДляОткрытия(Элементы.Список.ТекущаяСтрока, - Неопределено, УникальныйИдентификатор, Неопределено, ПредыдущийАдресФайла); - РаботаСФайламиКлиент.ОткрытьФайл(ДанныеФайла, Ложь); - + + ТекущиеДанные = Элементы.Список.ТекущиеДанные; + + ПараметрыПолученияФайла = РаботаСФайламиКлиент.ПараметрыАсинхронногоПолученияФайла("ОткрытьФайл"); + ПараметрыПолученияФайла.ПрисоединенныйФайл = ТекущиеДанные.Ссылка; + ПараметрыПолученияФайла.ФормаВладелец = ЭтотОбъект; + ПараметрыПолученияФайла.ПроверятьНаличиеФайлаВАрхиве = Ложь; + ПараметрыПолученияФайла.ФайлВАрхиве = ТекущиеДанные.НомерКартинкиЭтоАрхив = 0; + + ПараметрыПолученияФайла.ПараметрыМетода.ПредыдущийАдресФайла = ПредыдущийАдресФайла; + + РаботаСФайламиКлиент.ОткрытьФайл(ПараметрыПолученияФайла); + КонецПроцедуры &НаКлиенте @@ -555,9 +577,17 @@ Возврат; КонецЕсли; - ДанныеФайла = РаботаСФайламиСлужебныйВызовСервера.ДанныеФайлаДляСохранения( - Элементы.Список.ТекущаяСтрока, , УникальныйИдентификатор); - РаботаСФайламиСлужебныйКлиент.СохранитьКак(Неопределено, ДанныеФайла, УникальныйИдентификатор); + ТекущиеДанные = Элементы.Список.ТекущиеДанные; + + ПараметрыПолученияФайла = РаботаСФайламиКлиент.ПараметрыАсинхронногоПолученияФайла("СохранитьКак", "РаботаСФайламиСлужебный.ДанныеФайлаДляСохраненияАсинхронный"); + ПараметрыПолученияФайла.ПрисоединенныйФайл = ТекущиеДанные.Ссылка; + ПараметрыПолученияФайла.ФормаВладелец = ЭтотОбъект; + ПараметрыПолученияФайла.ПроверятьНаличиеФайлаВАрхиве = Ложь; + ПараметрыПолученияФайла.ФайлВАрхиве = ТекущиеДанные.НомерКартинкиЭтоАрхив = 0; + + ПараметрыПолученияФайла.ПараметрыДействия.УникальныйИдентификатор = УникальныйИдентификатор; + + РаботаСФайламиКлиент.СохранитьФайлКак(ПараметрыПолученияФайла); КонецПроцедуры @@ -1430,50 +1460,51 @@ Зашифрован = ДанныеКоманд.Зашифрован; ПодписанЭП = ДанныеКоманд.ПодписанЭП; Редактирует = ДанныеКоманд.Редактирует; + ФайлПеремещенВАрхив = ДанныеКоманд.НомерКартинкиЭтоАрхив = 0; АвторТекущийПользователь = ДанныеКоманд.Автор = ПользователиКлиент.АвторизованныйПользователь(); РедактируетТекущийПользователь = ДанныеКоманд.ФайлРедактируетТекущийПользователь; РедактируетДругой = ЗначениеЗаполнено(Редактирует) И НЕ РедактируетТекущийПользователь; - Элементы.ФормаЗакончитьРедактирование.Доступность = ИзменениеФайлов И РедактируетТекущийПользователь И Не ФайлыРедактируютсяВОблачномСервисе; - Элементы.СписокКонтекстноеМенюЗакончитьРедактирование.Доступность = ИзменениеФайлов И РедактируетТекущийПользователь И Не ФайлыРедактируютсяВОблачномСервисе; + Элементы.ФормаЗакончитьРедактирование.Доступность = ИзменениеФайлов И РедактируетТекущийПользователь И Не ФайлыРедактируютсяВОблачномСервисе И Не ФайлПеремещенВАрхив; + Элементы.СписокКонтекстноеМенюЗакончитьРедактирование.Доступность = ИзменениеФайлов И РедактируетТекущийПользователь И Не ФайлыРедактируютсяВОблачномСервисе И Не ФайлПеремещенВАрхив; - Элементы.ФормаСохранитьИзменения.Доступность = ИзменениеФайлов И РедактируетТекущийПользователь; - Элементы.СписокКонтекстноеМенюСохранитьИзменения.Доступность = ИзменениеФайлов И РедактируетТекущийПользователь; + Элементы.ФормаСохранитьИзменения.Доступность = ИзменениеФайлов И РедактируетТекущийПользователь И Не ФайлПеремещенВАрхив; + Элементы.СписокКонтекстноеМенюСохранитьИзменения.Доступность = ИзменениеФайлов И РедактируетТекущийПользователь И Не ФайлПеремещенВАрхив; - Элементы.ФормаОсвободить.Доступность = ИзменениеФайлов И ЗначениеЗаполнено(Редактирует) И Не ФайлыРедактируютсяВОблачномСервисе; - Элементы.СписокКонтекстноеМенюОсвободить.Доступность = ИзменениеФайлов И ЗначениеЗаполнено(Редактирует) И Не ФайлыРедактируютсяВОблачномСервисе; + Элементы.ФормаОсвободить.Доступность = ИзменениеФайлов И ЗначениеЗаполнено(Редактирует) И Не ФайлыРедактируютсяВОблачномСервисе И Не ФайлПеремещенВАрхив; + Элементы.СписокКонтекстноеМенюОсвободить.Доступность = ИзменениеФайлов И ЗначениеЗаполнено(Редактирует) И Не ФайлыРедактируютсяВОблачномСервисе И Не ФайлПеремещенВАрхив; - Элементы.ФормаЗанять.Доступность = ИзменениеФайлов И Не ЗначениеЗаполнено(Редактирует) И НЕ ПодписанЭП И НЕ Служебный И Не ФайлыРедактируютсяВОблачномСервисе; - Элементы.СписокКонтекстноеМенюЗанять.Доступность = ИзменениеФайлов И Не ЗначениеЗаполнено(Редактирует) И НЕ ПодписанЭП И НЕ Служебный И Не ФайлыРедактируютсяВОблачномСервисе; + Элементы.ФормаЗанять.Доступность = ИзменениеФайлов И Не ЗначениеЗаполнено(Редактирует) И НЕ ПодписанЭП И НЕ Служебный И Не ФайлыРедактируютсяВОблачномСервисе И Не ФайлПеремещенВАрхив; + Элементы.СписокКонтекстноеМенюЗанять.Доступность = ИзменениеФайлов И Не ЗначениеЗаполнено(Редактирует) И НЕ ПодписанЭП И НЕ Служебный И Не ФайлыРедактируютсяВОблачномСервисе И Не ФайлПеремещенВАрхив; - Элементы.ФормаРедактировать.Доступность = ИзменениеФайлов И Не ПодписанЭП И Не РедактируетДругой И Не Служебный; - Элементы.СписокКонтекстноеМенюРедактировать.Доступность = ИзменениеФайлов И Не ПодписанЭП И Не РедактируетДругой И Не Служебный; + Элементы.ФормаРедактировать.Доступность = ИзменениеФайлов И Не ПодписанЭП И Не РедактируетДругой И Не Служебный И Не ФайлПеремещенВАрхив; + Элементы.СписокКонтекстноеМенюРедактировать.Доступность = ИзменениеФайлов И Не ПодписанЭП И Не РедактируетДругой И Не Служебный И Не ФайлПеремещенВАрхив; - Элементы.ФормаПеренестиВПапку.Доступность = ИзменениеФайлов И Не ПодписанЭП И Не ФайлыРедактируютсяВОблачномСервисе; - Элементы.СписокКонтекстноеМенюПеренестиВПапку.Доступность = ИзменениеФайлов И Не ПодписанЭП И Не ФайлыРедактируютсяВОблачномСервисе; + Элементы.ФормаПеренестиВПапку.Доступность = ИзменениеФайлов И Не ПодписанЭП И Не ФайлыРедактируютсяВОблачномСервисе И Не ФайлПеремещенВАрхив; + Элементы.СписокКонтекстноеМенюПеренестиВПапку.Доступность = ИзменениеФайлов И Не ПодписанЭП И Не ФайлыРедактируютсяВОблачномСервисе И Не ФайлПеремещенВАрхив; - Элементы.ФормаПодписать.Доступность = ИзменениеФайлов И Не ЗначениеЗаполнено(Редактирует) И Не ФайлыРедактируютсяВОблачномСервисе; - Элементы.СписокКонтекстноеМенюПодписать.Доступность = ИзменениеФайлов И Не ЗначениеЗаполнено(Редактирует) И Не ФайлыРедактируютсяВОблачномСервисе; + Элементы.ФормаПодписать.Доступность = ИзменениеФайлов И Не ЗначениеЗаполнено(Редактирует) И Не ФайлыРедактируютсяВОблачномСервисе И Не ФайлПеремещенВАрхив; + Элементы.СписокКонтекстноеМенюПодписать.Доступность = ИзменениеФайлов И Не ЗначениеЗаполнено(Редактирует) И Не ФайлыРедактируютсяВОблачномСервисе И Не ФайлПеремещенВАрхив; - Элементы.ФормаОтправитьНаПодписание.Доступность = ИзменениеФайлов И Не ЗначениеЗаполнено(Редактирует) И Не ФайлыРедактируютсяВОблачномСервисе; - Элементы.СписокКонтекстноеМенюОтправитьНаПодписание.Доступность = ИзменениеФайлов И Не ЗначениеЗаполнено(Редактирует) И Не ФайлыРедактируютсяВОблачномСервисе; + Элементы.ФормаОтправитьНаПодписание.Доступность = ИзменениеФайлов И Не ЗначениеЗаполнено(Редактирует) И Не ФайлыРедактируютсяВОблачномСервисе И Не ФайлПеремещенВАрхив; + Элементы.СписокКонтекстноеМенюОтправитьНаПодписание.Доступность = ИзменениеФайлов И Не ЗначениеЗаполнено(Редактирует) И Не ФайлыРедактируютсяВОблачномСервисе И Не ФайлПеремещенВАрхив; - Элементы.ФормаСохранитьВместеСПодписью.Доступность = ПодписанЭП; - Элементы.СписокКонтекстноеМенюСохранитьВместеСПодписью.Доступность = ПодписанЭП; + Элементы.ФормаСохранитьВместеСПодписью.Доступность = ПодписанЭП И Не ФайлПеремещенВАрхив; + Элементы.СписокКонтекстноеМенюСохранитьВместеСПодписью.Доступность = ПодписанЭП И Не ФайлПеремещенВАрхив; - Элементы.ФормаЗашифровать.Доступность = ИзменениеФайлов И Не ЗначениеЗаполнено(Редактирует) И НЕ Зашифрован И НЕ Служебный И Не ФайлыРедактируютсяВОблачномСервисе; - Элементы.СписокКонтекстноеМенюЗашифровать.Доступность = ИзменениеФайлов И Не ЗначениеЗаполнено(Редактирует) И НЕ Зашифрован И НЕ Служебный И Не ФайлыРедактируютсяВОблачномСервисе; + Элементы.ФормаЗашифровать.Доступность = ИзменениеФайлов И Не ЗначениеЗаполнено(Редактирует) И НЕ Зашифрован И НЕ Служебный И Не ФайлыРедактируютсяВОблачномСервисе И Не ФайлПеремещенВАрхив; + Элементы.СписокКонтекстноеМенюЗашифровать.Доступность = ИзменениеФайлов И Не ЗначениеЗаполнено(Редактирует) И НЕ Зашифрован И НЕ Служебный И Не ФайлыРедактируютсяВОблачномСервисе И Не ФайлПеремещенВАрхив; - Элементы.ФормаРасшифровать.Доступность = ИзменениеФайлов И Зашифрован И Не ФайлыРедактируютсяВОблачномСервисе; - Элементы.СписокКонтекстноеМенюРасшифровать.Доступность = ИзменениеФайлов И Зашифрован И Не ФайлыРедактируютсяВОблачномСервисе; + Элементы.ФормаРасшифровать.Доступность = ИзменениеФайлов И Зашифрован И Не ФайлыРедактируютсяВОблачномСервисе И Не ФайлПеремещенВАрхив; + Элементы.СписокКонтекстноеМенюРасшифровать.Доступность = ИзменениеФайлов И Зашифрован И Не ФайлыРедактируютсяВОблачномСервисе И Не ФайлПеремещенВАрхив; - Элементы.ФормаДобавитьПодписьИзФайла.Доступность = ИзменениеФайлов И Не ЗначениеЗаполнено(Редактирует) И Не ФайлыРедактируютсяВОблачномСервисе; - Элементы.СписокКонтекстноеМенюДобавитьПодписьИзФайла.Доступность = ИзменениеФайлов И Не ЗначениеЗаполнено(Редактирует) И Не ФайлыРедактируютсяВОблачномСервисе; + Элементы.ФормаДобавитьПодписьИзФайла.Доступность = ИзменениеФайлов И Не ЗначениеЗаполнено(Редактирует) И Не ФайлыРедактируютсяВОблачномСервисе И Не ФайлПеремещенВАрхив; + Элементы.СписокКонтекстноеМенюДобавитьПодписьИзФайла.Доступность = ИзменениеФайлов И Не ЗначениеЗаполнено(Редактирует) И Не ФайлыРедактируютсяВОблачномСервисе И Не ФайлПеремещенВАрхив; - Элементы.ФормаОбновитьИзФайлаНаДиске.Доступность = ИзменениеФайлов И Не ПодписанЭП И Не ФайлыРедактируютсяВОблачномСервисе; - Элементы.СписокКонтекстноеМенюОбновитьИзФайлаНаДиске.Доступность = ИзменениеФайлов И Не ПодписанЭП И Не ФайлыРедактируютсяВОблачномСервисе; + Элементы.ФормаОбновитьИзФайлаНаДиске.Доступность = ИзменениеФайлов И Не ПодписанЭП И Не ФайлыРедактируютсяВОблачномСервисе И Не ФайлПеремещенВАрхив; + Элементы.СписокКонтекстноеМенюОбновитьИзФайлаНаДиске.Доступность = ИзменениеФайлов И Не ПодписанЭП И Не ФайлыРедактируютсяВОблачномСервисе И Не ФайлПеремещенВАрхив; Элементы.ФормаСохранитьКак.Доступность = Истина; Элементы.СписокКонтекстноеМенюСохранитьКак.Доступность = Истина; @@ -1484,15 +1515,17 @@ Элементы.ФормаОткрыть.Доступность = Истина; Элементы.СписокКонтекстноеМенюОткрыть.Доступность = Истина; - Элементы.Печать.Доступность = Истина; - Элементы.СписокКонтекстноеМенюПечать.Доступность = Истина; + Элементы.Печать.Доступность = Не ФайлПеремещенВАрхив; + Элементы.СписокКонтекстноеМенюПечать.Доступность = Не ФайлПеремещенВАрхив; Элементы.ПечатьСоШтампом.Видимость = ЕстьЭлектроннаяПодпись И (ДанныеКоманд.Расширение = "mxl") Или (ДанныеКоманд.Расширение = "docx") И ДанныеКоманд.ПодписанЭП; - - Элементы.Отправить.Доступность = Истина; - Элементы.СписокКонтекстноеМенюОтправить.Доступность = Истина; + + Элементы.ПечатьСоШтампом.Доступность = Не ФайлПеремещенВАрхив; + + Элементы.Отправить.Доступность = Не ФайлПеремещенВАрхив; + Элементы.СписокКонтекстноеМенюОтправить.Доступность = Не ФайлПеремещенВАрхив; Элементы.ФормаУстановитьПометкуУдаления.Доступность = ИзменениеФайлов; Элементы.СписокКонтекстноеМенюУстановитьПометкуУдаления.Доступность = ИзменениеФайлов; diff --git a/SSL/src/Catalogs/Файлы/Forms/ФормаВыбора/Module.bsl b/SSL/src/Catalogs/Файлы/Forms/ФормаВыбора/Module.bsl index 3be04d64d..f30a91220 100644 --- a/SSL/src/Catalogs/Файлы/Forms/ФормаВыбора/Module.bsl +++ b/SSL/src/Catalogs/Файлы/Forms/ФормаВыбора/Module.bsl @@ -1,5 +1,5 @@ /////////////////////////////////////////////////////////////////////////////////////////////////////// -// Copyright (c) 2024, ООО 1С-Софт +// Copyright (c) 2025, ООО 1С-Софт // Все права защищены. Эта программа и сопроводительные материалы предоставляются // в соответствии с условиями лицензии Attribution 4.0 International (CC BY 4.0) // Текст лицензии доступен по ссылке: diff --git a/SSL/src/Catalogs/Файлы/Forms/ФормаНового/Module.bsl b/SSL/src/Catalogs/Файлы/Forms/ФормаНового/Module.bsl index a2db475c7..d5052134c 100644 --- a/SSL/src/Catalogs/Файлы/Forms/ФормаНового/Module.bsl +++ b/SSL/src/Catalogs/Файлы/Forms/ФормаНового/Module.bsl @@ -1,5 +1,5 @@ /////////////////////////////////////////////////////////////////////////////////////////////////////// -// Copyright (c) 2024, ООО 1С-Софт +// Copyright (c) 2025, ООО 1С-Софт // Все права защищены. Эта программа и сопроводительные материалы предоставляются // в соответствии с условиями лицензии Attribution 4.0 International (CC BY 4.0) // Текст лицензии доступен по ссылке: diff --git a/SSL/src/Catalogs/Файлы/Forms/ФормаПодбора/Module.bsl b/SSL/src/Catalogs/Файлы/Forms/ФормаПодбора/Module.bsl index 88881b6c0..322ae3c2f 100644 --- a/SSL/src/Catalogs/Файлы/Forms/ФормаПодбора/Module.bsl +++ b/SSL/src/Catalogs/Файлы/Forms/ФормаПодбора/Module.bsl @@ -1,5 +1,5 @@ /////////////////////////////////////////////////////////////////////////////////////////////////////// -// Copyright (c) 2024, ООО 1С-Софт +// Copyright (c) 2025, ООО 1С-Софт // Все права защищены. Эта программа и сопроводительные материалы предоставляются // в соответствии с условиями лицензии Attribution 4.0 International (CC BY 4.0) // Текст лицензии доступен по ссылке: diff --git a/SSL/src/Catalogs/Файлы/Forms/ФормаЭлемента/Form.form b/SSL/src/Catalogs/Файлы/Forms/ФормаЭлемента/Form.form index 7cabd0e38..1444d820e 100644 --- a/SSL/src/Catalogs/Файлы/Forms/ФормаЭлемента/Form.form +++ b/SSL/src/Catalogs/Файлы/Forms/ФормаЭлемента/Form.form @@ -4523,6 +4523,19 @@ <common>true</common> </edit> </attributes> + <attributes> + <name>ФайлПеремещенВАрхив</name> + <id>10</id> + <valueType> + <types>Boolean</types> + </valueType> + <view> + <common>true</common> + </view> + <edit> + <common>true</common> + </edit> + </attributes> <formCommands> <name>СтандартнаяЗаписатьИЗакрыть</name> <title> diff --git a/SSL/src/Catalogs/Файлы/Forms/ФормаЭлемента/Module.bsl b/SSL/src/Catalogs/Файлы/Forms/ФормаЭлемента/Module.bsl index 097f0af90..2ab0f6380 100644 --- a/SSL/src/Catalogs/Файлы/Forms/ФормаЭлемента/Module.bsl +++ b/SSL/src/Catalogs/Файлы/Forms/ФормаЭлемента/Module.bsl @@ -1,5 +1,5 @@ /////////////////////////////////////////////////////////////////////////////////////////////////////// -// Copyright (c) 2024, ООО 1С-Софт +// Copyright (c) 2025, ООО 1С-Софт // Все права защищены. Эта программа и сопроводительные материалы предоставляются // в соответствии с условиями лицензии Attribution 4.0 International (CC BY 4.0) // Текст лицензии доступен по ссылке: @@ -28,6 +28,8 @@ КонецЕсли; // Конец СтандартныеПодсистемы.Свойства + ФайлПеремещенВАрхив = РаботаСФайловымАрхивомСервер.ФайлПеренесенВФайловыйАрхив(Объект.ТекущаяВерсия); + УстановитьДоступностьКнопок(ЭтотОбъект, Элементы); ДоступнаПечатьСоШтампом = ОбщегоНазначения.ПодсистемаСуществует("СтандартныеПодсистемы.ЭлектроннаяПодпись") @@ -748,6 +750,10 @@ Возврат; КонецЕсли; + Если ФайлПеремещенВАрхив Тогда + Возврат; + КонецЕсли; + ОповещениеОЗакрытии = Новый ОписаниеОповещения("ПослеВводаОбоснованияДостоверностиПодписи", ЭтотОбъект); @@ -1114,9 +1120,6 @@ Если Режим = "ДляОткрытия" Тогда Возврат РаботаСФайламиСлужебныйВызовСервера.ДанныеФайлаДляОткрытия( ПрисоединенныйФайл, Неопределено, ИдентификаторФормы); - ИначеЕсли Режим = "ДляСохранения" Тогда - Возврат РаботаСФайламиСлужебныйВызовСервера.ДанныеФайлаДляСохранения( - ПрисоединенныйФайл,, ИдентификаторФормы); ИначеЕсли Режим = "ВызовСервера" Тогда ПараметрыДанныхФайла = РаботаСФайламиКлиентСервер.ПараметрыДанныхФайла(); ПараметрыДанныхФайла.ИдентификаторФормы = ИдентификаторФормы; @@ -1135,11 +1138,16 @@ Если ЭтоНовый() Тогда Возврат; КонецЕсли; + + ФайлРедактируется = ЗначениеЗаполнено(Объект.Редактирует) И Объект.Редактирует = ТекущийПользователь; + + ПараметрыПолученияФайла = РаботаСФайламиКлиент.ПараметрыАсинхронногоПолученияФайла("ОткрытьФайл"); + ПараметрыПолученияФайла.ПрисоединенныйФайл = Объект.Ссылка; + ПараметрыПолученияФайла.ФормаВладелец = ЭтотОбъект; - ФайлРедактируется = ЗначениеЗаполнено(Объект.Редактирует) - И Объект.Редактирует = ТекущийПользователь; - ДанныеФайла = ДанныеФайла(Объект.Ссылка, УникальныйИдентификатор, "ДляОткрытия"); - РаботаСФайламиКлиент.ОткрытьФайл(ДанныеФайла, ФайлРедактируется); + ПараметрыПолученияФайла.ПараметрыДействия.ФайлРедактируется = ФайлРедактируется; + + РаботаСФайламиКлиент.ОткрытьФайл(ПараметрыПолученияФайла); КонецПроцедуры @@ -1163,8 +1171,11 @@ Возврат; КонецЕсли; - ДанныеФайла = ДанныеФайла(Объект.Ссылка, УникальныйИдентификатор, "ДляСохранения"); - РаботаСФайламиСлужебныйКлиент.СохранитьКак(Неопределено, ДанныеФайла, Неопределено); + ПараметрыПолученияФайла = РаботаСФайламиКлиент.ПараметрыАсинхронногоПолученияФайла("СохранитьКак", "РаботаСФайламиСлужебный.ДанныеФайлаДляСохраненияАсинхронный"); + ПараметрыПолученияФайла.ПрисоединенныйФайл = Объект.Ссылка; + ПараметрыПолученияФайла.ФормаВладелец = ЭтотОбъект; + + РаботаСФайламиКлиент.СохранитьФайлКак(ПараметрыПолученияФайла); КонецПроцедуры @@ -1266,6 +1277,10 @@ ИменаКоманд.Добавить("ОткрытьФайлДляПросмотра"); ИменаКоманд.Добавить("СохранитьКак"); + ИменаКоманд.Добавить("Печать"); + ИменаКоманд.Добавить("ПечатьСоШтампом"); + ИменаКоманд.Добавить("Отправить"); + Возврат ИменаКоманд; КонецФункции @@ -1393,6 +1408,38 @@ КонецЕсли; + ФайлРазмещенВАрхиве = Форма.ФайлПеремещенВАрхив; + Если ФайлРазмещенВАрхиве Тогда + + СделатьКомандыЭПНедоступными(ИменаКоманд); + СделатьКомандуНедоступной(ИменаКоманд, "ОбновитьИзФайлаНаДиске"); + СделатьКомандуНедоступной(ИменаКоманд, "ЗакончитьРедактирование"); + СделатьКомандуНедоступной(ИменаКоманд, "Редактировать"); + СделатьКомандуНедоступной(ИменаКоманд, "Освободить"); + СделатьКомандуНедоступной(ИменаКоманд, "Занять"); + СделатьКомандуНедоступной(ИменаКоманд, "Зашифровать"); + СделатьКомандуНедоступной(ИменаКоманд, "Расшифровать"); + СделатьКомандуНедоступной(ИменаКоманд, "СохранитьИзменения"); + + СделатьКомандуНедоступной(ИменаКоманд, "ОткрытьСертификат"); + СделатьКомандуНедоступной(ИменаКоманд, "ОткрытьПодпись"); + СделатьКомандуНедоступной(ИменаКоманд, "ПроверитьЭП"); + СделатьКомандуНедоступной(ИменаКоманд, "ПроверитьВсе"); + СделатьКомандуНедоступной(ИменаКоманд, "СохранитьПодпись"); + СделатьКомандуНедоступной(ИменаКоманд, "УдалитьЭП"); + СделатьКомандуНедоступной(ИменаКоманд, "СохранитьВместеСЭП"); + + СделатьКомандуНедоступной(ИменаКоманд, "Подписать"); + + СделатьКомандуНедоступной(ИменаКоманд, "Отправить"); + + СделатьКомандуНедоступной(ИменаКоманд, "Печать"); + СделатьКомандуНедоступной(ИменаКоманд, "ПечатьСоШтампом"); + + СделатьКомандуНедоступной(ИменаКоманд, "ПроверенаВручную"); + + КонецЕсли; + Если Форма.ТолькоПросмотр Тогда СделатьКомандыЭПНедоступными(ИменаКоманд); КонецЕсли; @@ -1669,8 +1716,8 @@ ХранилищеФайла = Неопределено; РеквизитыТекущейВерсии = ОбщегоНазначения.ЗначенияРеквизитовОбъекта(РеквизитыИсточника.ТекущаяВерсия, "ТипХраненияФайла,Размер,Расширение,ТекстХранилище"); - - Если РеквизитыТекущейВерсии.ТипХраненияФайла = Перечисления.ТипыХраненияФайлов.ВИнформационнойБазе Тогда + + Если РаботаСФайламиВХранилищеДвоичныхДанныхСлужебный.ТипХраненияНеИспользуетДиски(РеквизитыТекущейВерсии.ТипХраненияФайла) Тогда ХранилищеФайла = РаботаСФайлами.ХранилищеФайлаИзИнформационнойБазы(РеквизитыИсточника.ТекущаяВерсия); КонецЕсли; diff --git a/SSL/src/Catalogs/Файлы/ManagerModule.bsl b/SSL/src/Catalogs/Файлы/ManagerModule.bsl index 85ed48468..c1463db3b 100644 --- a/SSL/src/Catalogs/Файлы/ManagerModule.bsl +++ b/SSL/src/Catalogs/Файлы/ManagerModule.bsl @@ -1,5 +1,5 @@ /////////////////////////////////////////////////////////////////////////////////////////////////////// -// Copyright (c) 2024, ООО 1С-Софт +// Copyright (c) 2025, ООО 1С-Софт // Все права защищены. Эта программа и сопроводительные материалы предоставляются // в соответствии с условиями лицензии Attribution 4.0 International (CC BY 4.0) // Текст лицензии доступен по ссылке: diff --git a/SSL/src/Catalogs/ХранилищеДвоичныхДанных/ManagerModule.bsl b/SSL/src/Catalogs/ХранилищеДвоичныхДанных/ManagerModule.bsl index 4127aa907..5aa9dee25 100644 --- a/SSL/src/Catalogs/ХранилищеДвоичныхДанных/ManagerModule.bsl +++ b/SSL/src/Catalogs/ХранилищеДвоичныхДанных/ManagerModule.bsl @@ -1,5 +1,5 @@ /////////////////////////////////////////////////////////////////////////////////////////////////////// -// Copyright (c) 2024, ООО 1С-Софт +// Copyright (c) 2025, ООО 1С-Софт // Все права защищены. Эта программа и сопроводительные материалы предоставляются // в соответствии с условиями лицензии Attribution 4.0 International (CC BY 4.0) // Текст лицензии доступен по ссылке: diff --git a/SSL/src/Catalogs/ШаблоныАнкет/Forms/ФормаМастераКомплексныхВопросов/Module.bsl b/SSL/src/Catalogs/ШаблоныАнкет/Forms/ФормаМастераКомплексныхВопросов/Module.bsl index 316382c50..9cc88bddf 100644 --- a/SSL/src/Catalogs/ШаблоныАнкет/Forms/ФормаМастераКомплексныхВопросов/Module.bsl +++ b/SSL/src/Catalogs/ШаблоныАнкет/Forms/ФормаМастераКомплексныхВопросов/Module.bsl @@ -1,5 +1,5 @@ /////////////////////////////////////////////////////////////////////////////////////////////////////// -// Copyright (c) 2024, ООО 1С-Софт +// Copyright (c) 2025, ООО 1С-Софт // Все права защищены. Эта программа и сопроводительные материалы предоставляются // в соответствии с условиями лицензии Attribution 4.0 International (CC BY 4.0) // Текст лицензии доступен по ссылке: diff --git a/SSL/src/Catalogs/ШаблоныАнкет/Forms/ФормаМастераТабличныхВопросов/Module.bsl b/SSL/src/Catalogs/ШаблоныАнкет/Forms/ФормаМастераТабличныхВопросов/Module.bsl index f7d626bf2..6f99ce77c 100644 --- a/SSL/src/Catalogs/ШаблоныАнкет/Forms/ФормаМастераТабличныхВопросов/Module.bsl +++ b/SSL/src/Catalogs/ШаблоныАнкет/Forms/ФормаМастераТабличныхВопросов/Module.bsl @@ -1,5 +1,5 @@ /////////////////////////////////////////////////////////////////////////////////////////////////////// -// Copyright (c) 2024, ООО 1С-Софт +// Copyright (c) 2025, ООО 1С-Софт // Все права защищены. Эта программа и сопроводительные материалы предоставляются // в соответствии с условиями лицензии Attribution 4.0 International (CC BY 4.0) // Текст лицензии доступен по ссылке: diff --git a/SSL/src/Catalogs/ШаблоныАнкет/Forms/ФормаПростыхВопросов/Module.bsl b/SSL/src/Catalogs/ШаблоныАнкет/Forms/ФормаПростыхВопросов/Module.bsl index b812c85dc..ebb44b73a 100644 --- a/SSL/src/Catalogs/ШаблоныАнкет/Forms/ФормаПростыхВопросов/Module.bsl +++ b/SSL/src/Catalogs/ШаблоныАнкет/Forms/ФормаПростыхВопросов/Module.bsl @@ -1,5 +1,5 @@ /////////////////////////////////////////////////////////////////////////////////////////////////////// -// Copyright (c) 2024, ООО 1С-Софт +// Copyright (c) 2025, ООО 1С-Софт // Все права защищены. Эта программа и сопроводительные материалы предоставляются // в соответствии с условиями лицензии Attribution 4.0 International (CC BY 4.0) // Текст лицензии доступен по ссылке: diff --git a/SSL/src/Catalogs/ШаблоныАнкет/Forms/ФормаСписка/Module.bsl b/SSL/src/Catalogs/ШаблоныАнкет/Forms/ФормаСписка/Module.bsl index e9e446401..c5dcdc9e5 100644 --- a/SSL/src/Catalogs/ШаблоныАнкет/Forms/ФормаСписка/Module.bsl +++ b/SSL/src/Catalogs/ШаблоныАнкет/Forms/ФормаСписка/Module.bsl @@ -1,5 +1,5 @@ /////////////////////////////////////////////////////////////////////////////////////////////////////// -// Copyright (c) 2024, ООО 1С-Софт +// Copyright (c) 2025, ООО 1С-Софт // Все права защищены. Эта программа и сопроводительные материалы предоставляются // в соответствии с условиями лицензии Attribution 4.0 International (CC BY 4.0) // Текст лицензии доступен по ссылке: diff --git a/SSL/src/Catalogs/ШаблоныАнкет/Forms/ФормаЭлемента/Module.bsl b/SSL/src/Catalogs/ШаблоныАнкет/Forms/ФормаЭлемента/Module.bsl index 0f3c4a22b..f77ec6559 100644 --- a/SSL/src/Catalogs/ШаблоныАнкет/Forms/ФормаЭлемента/Module.bsl +++ b/SSL/src/Catalogs/ШаблоныАнкет/Forms/ФормаЭлемента/Module.bsl @@ -1,5 +1,5 @@ /////////////////////////////////////////////////////////////////////////////////////////////////////// -// Copyright (c) 2024, ООО 1С-Софт +// Copyright (c) 2025, ООО 1С-Софт // Все права защищены. Эта программа и сопроводительные материалы предоставляются // в соответствии с условиями лицензии Attribution 4.0 International (CC BY 4.0) // Текст лицензии доступен по ссылке: diff --git a/SSL/src/Catalogs/ШаблоныАнкет/ManagerModule.bsl b/SSL/src/Catalogs/ШаблоныАнкет/ManagerModule.bsl index 883d10738..a0dde2937 100644 --- a/SSL/src/Catalogs/ШаблоныАнкет/ManagerModule.bsl +++ b/SSL/src/Catalogs/ШаблоныАнкет/ManagerModule.bsl @@ -1,5 +1,5 @@ /////////////////////////////////////////////////////////////////////////////////////////////////////// -// Copyright (c) 2024, ООО 1С-Софт +// Copyright (c) 2025, ООО 1С-Софт // Все права защищены. Эта программа и сопроводительные материалы предоставляются // в соответствии с условиями лицензии Attribution 4.0 International (CC BY 4.0) // Текст лицензии доступен по ссылке: diff --git a/SSL/src/Catalogs/ШаблоныСообщений/Forms/ЗаполнитьПроизвольныеПараметры/Module.bsl b/SSL/src/Catalogs/ШаблоныСообщений/Forms/ЗаполнитьПроизвольныеПараметры/Module.bsl index 1c6dd0ee7..2b11b0f49 100644 --- a/SSL/src/Catalogs/ШаблоныСообщений/Forms/ЗаполнитьПроизвольныеПараметры/Module.bsl +++ b/SSL/src/Catalogs/ШаблоныСообщений/Forms/ЗаполнитьПроизвольныеПараметры/Module.bsl @@ -1,5 +1,5 @@ /////////////////////////////////////////////////////////////////////////////////////////////////////// -// Copyright (c) 2024, ООО 1С-Софт +// Copyright (c) 2025, ООО 1С-Софт // Все права защищены. Эта программа и сопроводительные материалы предоставляются // в соответствии с условиями лицензии Attribution 4.0 International (CC BY 4.0) // Текст лицензии доступен по ссылке: diff --git a/SSL/src/Catalogs/ШаблоныСообщений/Forms/ПроизвольныйПараметр/Module.bsl b/SSL/src/Catalogs/ШаблоныСообщений/Forms/ПроизвольныйПараметр/Module.bsl index a2c35eb4e..9456a3094 100644 --- a/SSL/src/Catalogs/ШаблоныСообщений/Forms/ПроизвольныйПараметр/Module.bsl +++ b/SSL/src/Catalogs/ШаблоныСообщений/Forms/ПроизвольныйПараметр/Module.bsl @@ -1,5 +1,5 @@ /////////////////////////////////////////////////////////////////////////////////////////////////////// -// Copyright (c) 2024, ООО 1С-Софт +// Copyright (c) 2025, ООО 1С-Софт // Все права защищены. Эта программа и сопроводительные материалы предоставляются // в соответствии с условиями лицензии Attribution 4.0 International (CC BY 4.0) // Текст лицензии доступен по ссылке: diff --git a/SSL/src/Catalogs/ШаблоныСообщений/Forms/СформироватьСообщение/Module.bsl b/SSL/src/Catalogs/ШаблоныСообщений/Forms/СформироватьСообщение/Module.bsl index a8c0be4eb..3977beec7 100644 --- a/SSL/src/Catalogs/ШаблоныСообщений/Forms/СформироватьСообщение/Module.bsl +++ b/SSL/src/Catalogs/ШаблоныСообщений/Forms/СформироватьСообщение/Module.bsl @@ -1,5 +1,5 @@ /////////////////////////////////////////////////////////////////////////////////////////////////////// -// Copyright (c) 2024, ООО 1С-Софт +// Copyright (c) 2025, ООО 1С-Софт // Все права защищены. Эта программа и сопроводительные материалы предоставляются // в соответствии с условиями лицензии Attribution 4.0 International (CC BY 4.0) // Текст лицензии доступен по ссылке: diff --git a/SSL/src/Catalogs/ШаблоныСообщений/Forms/ФормаСписка/Module.bsl b/SSL/src/Catalogs/ШаблоныСообщений/Forms/ФормаСписка/Module.bsl index 761552d34..f76663c12 100644 --- a/SSL/src/Catalogs/ШаблоныСообщений/Forms/ФормаСписка/Module.bsl +++ b/SSL/src/Catalogs/ШаблоныСообщений/Forms/ФормаСписка/Module.bsl @@ -1,5 +1,5 @@ /////////////////////////////////////////////////////////////////////////////////////////////////////// -// Copyright (c) 2024, ООО 1С-Софт +// Copyright (c) 2025, ООО 1С-Софт // Все права защищены. Эта программа и сопроводительные материалы предоставляются // в соответствии с условиями лицензии Attribution 4.0 International (CC BY 4.0) // Текст лицензии доступен по ссылке: diff --git a/SSL/src/Catalogs/ШаблоныСообщений/Forms/ФормаЭлемента/Form.form b/SSL/src/Catalogs/ШаблоныСообщений/Forms/ФормаЭлемента/Form.form index 257c4e9df..aa3f7b684 100644 --- a/SSL/src/Catalogs/ШаблоныСообщений/Forms/ФормаЭлемента/Form.form +++ b/SSL/src/Catalogs/ШаблоныСообщений/Forms/ФормаЭлемента/Form.form @@ -962,6 +962,10 @@ <event>Clearing</event> <name>ПолноеИмяТипаПараметраВводаНаОснованииОчистка</name> </handlers> + <handlers> + <event>ChoiceProcessing</event> + <name>ПолноеИмяТипаПараметраВводаНаОснованииОбработкаВыбора</name> + </handlers> <autoMaxWidth>true</autoMaxWidth> <autoMaxHeight>true</autoMaxHeight> <wrap>true</wrap> diff --git a/SSL/src/Catalogs/ШаблоныСообщений/Forms/ФормаЭлемента/Module.bsl b/SSL/src/Catalogs/ШаблоныСообщений/Forms/ФормаЭлемента/Module.bsl index cc6701320..38cab583f 100644 --- a/SSL/src/Catalogs/ШаблоныСообщений/Forms/ФормаЭлемента/Module.bsl +++ b/SSL/src/Catalogs/ШаблоныСообщений/Forms/ФормаЭлемента/Module.bsl @@ -1,5 +1,5 @@ /////////////////////////////////////////////////////////////////////////////////////////////////////// -// Copyright (c) 2024, ООО 1С-Софт +// Copyright (c) 2025, ООО 1С-Софт // Все права защищены. Эта программа и сопроводительные материалы предоставляются // в соответствии с условиями лицензии Attribution 4.0 International (CC BY 4.0) // Текст лицензии доступен по ссылке: @@ -483,6 +483,42 @@ Объект.ТолькоДляАвтора = ЗначениеЗаполнено(Объект.Автор); КонецПроцедуры +&НаКлиенте +Процедура ПолноеИмяТипаПараметраВводаНаОснованииОбработкаВыбора(Элемент, ВыбранноеЗначение, ДополнительныеДанные, + ВыборДобавлением, СтандартнаяОбработка) + + Если СтрСравнить(ВыбранноеЗначение, ШаблоныСообщенийКлиентСервер.ОбщийПредставление()) = 0 Тогда + Возврат; + КонецЕсли; + + ТипВыбора = ПолучитьТипПоПолномуИмени(ВыбранноеЗначение); + + Если ТипВыбора = Неопределено Тогда + Возврат; + КонецЕсли; + + Для Каждого Строка Из Реквизиты.ПолучитьЭлементы() Цикл + + Если Строка.ПроизвольныйПараметр И Строка.Тип.СодержитТип(ТипВыбора) Тогда + + СтандартнаяОбработка = Ложь; + ВыбранныйВариант = Элемент.СписокВыбора.НайтиПоЗначению(ВыбранноеЗначение); + Если ВыбранныйВариант <> Неопределено Тогда + ТекстОшибки = СтроковыеФункцииКлиентСервер.ПодставитьПараметрыВСтроку( + НСтр("ru ='%1 уже выбран как произвольный параметр и не может быть назначением.'"), + ВыбранныйВариант.Представление); + Иначе + ТекстОшибки = НСтр("ru ='Объект уже выбран как произвольный параметр и не может быть назначением.'"); + КонецЕсли; + ОбщегоНазначенияКлиент.СообщитьПользователю(ТекстОшибки); + Возврат; + + КонецЕсли; + + КонецЦикла; + +КонецПроцедуры + #КонецОбласти #Область ОбработчикиСобытийЭлементовТаблицыФормыВложения @@ -2532,4 +2568,11 @@ КонецПроцедуры +&НаСервереБезКонтекста +Функция ПолучитьТипПоПолномуИмени(Знач ПолноеИмя) + МенеджерОбъекта = ОбщегоНазначения.МенеджерОбъектаПоПолномуИмени(ПолноеИмя); + Возврат ?(МенеджерОбъекта = Неопределено, Неопределено, ТипЗнч(МенеджерОбъекта.ПустаяСсылка())); +КонецФункции + + #КонецОбласти \ No newline at end of file diff --git a/SSL/src/Catalogs/ШаблоныСообщений/ManagerModule.bsl b/SSL/src/Catalogs/ШаблоныСообщений/ManagerModule.bsl index 058f91be6..86b22d08f 100644 --- a/SSL/src/Catalogs/ШаблоныСообщений/ManagerModule.bsl +++ b/SSL/src/Catalogs/ШаблоныСообщений/ManagerModule.bsl @@ -1,5 +1,5 @@ /////////////////////////////////////////////////////////////////////////////////////////////////////// -// Copyright (c) 2024, ООО 1С-Софт +// Copyright (c) 2025, ООО 1С-Софт // Все права защищены. Эта программа и сопроводительные материалы предоставляются // в соответствии с условиями лицензии Attribution 4.0 International (CC BY 4.0) // Текст лицензии доступен по ссылке: diff --git a/SSL/src/Catalogs/ШаблоныСообщений/ObjectModule.bsl b/SSL/src/Catalogs/ШаблоныСообщений/ObjectModule.bsl index 75ed4e26a..ac85b9b88 100644 --- a/SSL/src/Catalogs/ШаблоныСообщений/ObjectModule.bsl +++ b/SSL/src/Catalogs/ШаблоныСообщений/ObjectModule.bsl @@ -1,5 +1,5 @@ /////////////////////////////////////////////////////////////////////////////////////////////////////// -// Copyright (c) 2024, ООО 1С-Софт +// Copyright (c) 2025, ООО 1С-Софт // Все права защищены. Эта программа и сопроводительные материалы предоставляются // в соответствии с условиями лицензии Attribution 4.0 International (CC BY 4.0) // Текст лицензии доступен по ссылке: diff --git a/SSL/src/Catalogs/ШаблоныСообщенийПрисоединенныеФайлы/ManagerModule.bsl b/SSL/src/Catalogs/ШаблоныСообщенийПрисоединенныеФайлы/ManagerModule.bsl index d3e48151e..ccf8b6be2 100644 --- a/SSL/src/Catalogs/ШаблоныСообщенийПрисоединенныеФайлы/ManagerModule.bsl +++ b/SSL/src/Catalogs/ШаблоныСообщенийПрисоединенныеФайлы/ManagerModule.bsl @@ -1,5 +1,5 @@ /////////////////////////////////////////////////////////////////////////////////////////////////////// -// Copyright (c) 2024, ООО 1С-Софт +// Copyright (c) 2025, ООО 1С-Софт // Все права защищены. Эта программа и сопроводительные материалы предоставляются // в соответствии с условиями лицензии Attribution 4.0 International (CC BY 4.0) // Текст лицензии доступен по ссылке: diff --git a/SSL/src/Catalogs/ЭкземплярыСервераDSS/ManagerModule.bsl b/SSL/src/Catalogs/ЭкземплярыСервераDSS/ManagerModule.bsl index d45f4d630..0e73e63a2 100644 --- a/SSL/src/Catalogs/ЭкземплярыСервераDSS/ManagerModule.bsl +++ b/SSL/src/Catalogs/ЭкземплярыСервераDSS/ManagerModule.bsl @@ -1,5 +1,5 @@ /////////////////////////////////////////////////////////////////////////////////////////////////////// -// Copyright (c) 2024, ООО 1С-Софт +// Copyright (c) 2025, ООО 1С-Софт // Все права защищены. Эта программа и сопроводительные материалы предоставляются // в соответствии с условиями лицензии Attribution 4.0 International (CC BY 4.0) // Текст лицензии доступен по ссылке: diff --git a/SSL/src/Catalogs/ЭкземплярыСервераDSS/ObjectModule.bsl b/SSL/src/Catalogs/ЭкземплярыСервераDSS/ObjectModule.bsl index 2ee95fcf5..29b7742fe 100644 --- a/SSL/src/Catalogs/ЭкземплярыСервераDSS/ObjectModule.bsl +++ b/SSL/src/Catalogs/ЭкземплярыСервераDSS/ObjectModule.bsl @@ -1,5 +1,5 @@ /////////////////////////////////////////////////////////////////////////////////////////////////////// -// Copyright (c) 2024, ООО 1С-Софт +// Copyright (c) 2025, ООО 1С-Софт // Все права защищены. Эта программа и сопроводительные материалы предоставляются // в соответствии с условиями лицензии Attribution 4.0 International (CC BY 4.0) // Текст лицензии доступен по ссылке: diff --git a/SSL/src/Catalogs/ЭлектронноеПисьмоВходящееПрисоединенныеФайлы/ManagerModule.bsl b/SSL/src/Catalogs/ЭлектронноеПисьмоВходящееПрисоединенныеФайлы/ManagerModule.bsl index d3e48151e..ccf8b6be2 100644 --- a/SSL/src/Catalogs/ЭлектронноеПисьмоВходящееПрисоединенныеФайлы/ManagerModule.bsl +++ b/SSL/src/Catalogs/ЭлектронноеПисьмоВходящееПрисоединенныеФайлы/ManagerModule.bsl @@ -1,5 +1,5 @@ /////////////////////////////////////////////////////////////////////////////////////////////////////// -// Copyright (c) 2024, ООО 1С-Софт +// Copyright (c) 2025, ООО 1С-Софт // Все права защищены. Эта программа и сопроводительные материалы предоставляются // в соответствии с условиями лицензии Attribution 4.0 International (CC BY 4.0) // Текст лицензии доступен по ссылке: diff --git a/SSL/src/Catalogs/ЭлектронноеПисьмоИсходящееПрисоединенныеФайлы/ManagerModule.bsl b/SSL/src/Catalogs/ЭлектронноеПисьмоИсходящееПрисоединенныеФайлы/ManagerModule.bsl index d3e48151e..ccf8b6be2 100644 --- a/SSL/src/Catalogs/ЭлектронноеПисьмоИсходящееПрисоединенныеФайлы/ManagerModule.bsl +++ b/SSL/src/Catalogs/ЭлектронноеПисьмоИсходящееПрисоединенныеФайлы/ManagerModule.bsl @@ -1,5 +1,5 @@ /////////////////////////////////////////////////////////////////////////////////////////////////////// -// Copyright (c) 2024, ООО 1С-Софт +// Copyright (c) 2025, ООО 1С-Софт // Все права защищены. Эта программа и сопроводительные материалы предоставляются // в соответствии с условиями лицензии Attribution 4.0 International (CC BY 4.0) // Текст лицензии доступен по ссылке: diff --git a/SSL/src/Catalogs/ЯзыкиПечатныхФорм/Forms/ПодборЯзыкаИзСпискаДоступных/Module.bsl b/SSL/src/Catalogs/ЯзыкиПечатныхФорм/Forms/ПодборЯзыкаИзСпискаДоступных/Module.bsl index c506cd73c..b5681bd71 100644 --- a/SSL/src/Catalogs/ЯзыкиПечатныхФорм/Forms/ПодборЯзыкаИзСпискаДоступных/Module.bsl +++ b/SSL/src/Catalogs/ЯзыкиПечатныхФорм/Forms/ПодборЯзыкаИзСпискаДоступных/Module.bsl @@ -1,5 +1,5 @@ /////////////////////////////////////////////////////////////////////////////////////////////////////// -// Copyright (c) 2024, ООО 1С-Софт +// Copyright (c) 2025, ООО 1С-Софт // Все права защищены. Эта программа и сопроводительные материалы предоставляются // в соответствии с условиями лицензии Attribution 4.0 International (CC BY 4.0) // Текст лицензии доступен по ссылке: diff --git a/SSL/src/Catalogs/ЯзыкиПечатныхФорм/Forms/ФормаСписка/Module.bsl b/SSL/src/Catalogs/ЯзыкиПечатныхФорм/Forms/ФормаСписка/Module.bsl index 2594a589f..ef39ba74d 100644 --- a/SSL/src/Catalogs/ЯзыкиПечатныхФорм/Forms/ФормаСписка/Module.bsl +++ b/SSL/src/Catalogs/ЯзыкиПечатныхФорм/Forms/ФормаСписка/Module.bsl @@ -1,5 +1,5 @@ /////////////////////////////////////////////////////////////////////////////////////////////////////// -// Copyright (c) 2024, ООО 1С-Софт +// Copyright (c) 2025, ООО 1С-Софт // Все права защищены. Эта программа и сопроводительные материалы предоставляются // в соответствии с условиями лицензии Attribution 4.0 International (CC BY 4.0) // Текст лицензии доступен по ссылке: diff --git a/SSL/src/Catalogs/ЯзыкиПечатныхФорм/Forms/ФормаЭлемента/Module.bsl b/SSL/src/Catalogs/ЯзыкиПечатныхФорм/Forms/ФормаЭлемента/Module.bsl index b4042dc4c..df54bf946 100644 --- a/SSL/src/Catalogs/ЯзыкиПечатныхФорм/Forms/ФормаЭлемента/Module.bsl +++ b/SSL/src/Catalogs/ЯзыкиПечатныхФорм/Forms/ФормаЭлемента/Module.bsl @@ -1,5 +1,5 @@ /////////////////////////////////////////////////////////////////////////////////////////////////////// -// Copyright (c) 2024, ООО 1С-Софт +// Copyright (c) 2025, ООО 1С-Софт // Все права защищены. Эта программа и сопроводительные материалы предоставляются // в соответствии с условиями лицензии Attribution 4.0 International (CC BY 4.0) // Текст лицензии доступен по ссылке: diff --git a/SSL/src/Catalogs/ЯзыкиПечатныхФорм/ManagerModule.bsl b/SSL/src/Catalogs/ЯзыкиПечатныхФорм/ManagerModule.bsl index f1939de34..4e5cb24d5 100644 --- a/SSL/src/Catalogs/ЯзыкиПечатныхФорм/ManagerModule.bsl +++ b/SSL/src/Catalogs/ЯзыкиПечатныхФорм/ManagerModule.bsl @@ -1,5 +1,5 @@ /////////////////////////////////////////////////////////////////////////////////////////////////////// -// Copyright (c) 2024, ООО 1С-Софт +// Copyright (c) 2025, ООО 1С-Софт // Все права защищены. Эта программа и сопроводительные материалы предоставляются // в соответствии с условиями лицензии Attribution 4.0 International (CC BY 4.0) // Текст лицензии доступен по ссылке: diff --git a/SSL/src/ChartsOfCharacteristicTypes/ВопросыДляАнкетирования/Forms/ФормаЭлемента/Module.bsl b/SSL/src/ChartsOfCharacteristicTypes/ВопросыДляАнкетирования/Forms/ФормаЭлемента/Module.bsl index 395236cc0..9ad39794a 100644 --- a/SSL/src/ChartsOfCharacteristicTypes/ВопросыДляАнкетирования/Forms/ФормаЭлемента/Module.bsl +++ b/SSL/src/ChartsOfCharacteristicTypes/ВопросыДляАнкетирования/Forms/ФормаЭлемента/Module.bsl @@ -1,5 +1,5 @@ /////////////////////////////////////////////////////////////////////////////////////////////////////// -// Copyright (c) 2024, ООО 1С-Софт +// Copyright (c) 2025, ООО 1С-Софт // Все права защищены. Эта программа и сопроводительные материалы предоставляются // в соответствии с условиями лицензии Attribution 4.0 International (CC BY 4.0) // Текст лицензии доступен по ссылке: diff --git a/SSL/src/ChartsOfCharacteristicTypes/ВопросыДляАнкетирования/ManagerModule.bsl b/SSL/src/ChartsOfCharacteristicTypes/ВопросыДляАнкетирования/ManagerModule.bsl index 15604cf81..d7bec8f5a 100644 --- a/SSL/src/ChartsOfCharacteristicTypes/ВопросыДляАнкетирования/ManagerModule.bsl +++ b/SSL/src/ChartsOfCharacteristicTypes/ВопросыДляАнкетирования/ManagerModule.bsl @@ -1,5 +1,5 @@ /////////////////////////////////////////////////////////////////////////////////////////////////////// -// Copyright (c) 2024, ООО 1С-Софт +// Copyright (c) 2025, ООО 1С-Софт // Все права защищены. Эта программа и сопроводительные материалы предоставляются // в соответствии с условиями лицензии Attribution 4.0 International (CC BY 4.0) // Текст лицензии доступен по ссылке: diff --git a/SSL/src/ChartsOfCharacteristicTypes/ВопросыДляАнкетирования/ObjectModule.bsl b/SSL/src/ChartsOfCharacteristicTypes/ВопросыДляАнкетирования/ObjectModule.bsl index b5a3002f3..ce9bf4ad7 100644 --- a/SSL/src/ChartsOfCharacteristicTypes/ВопросыДляАнкетирования/ObjectModule.bsl +++ b/SSL/src/ChartsOfCharacteristicTypes/ВопросыДляАнкетирования/ObjectModule.bsl @@ -1,5 +1,5 @@ /////////////////////////////////////////////////////////////////////////////////////////////////////// -// Copyright (c) 2024, ООО 1С-Софт +// Copyright (c) 2025, ООО 1С-Софт // Все права защищены. Эта программа и сопроводительные материалы предоставляются // в соответствии с условиями лицензии Attribution 4.0 International (CC BY 4.0) // Текст лицензии доступен по ссылке: diff --git a/SSL/src/ChartsOfCharacteristicTypes/ДополнительныеРеквизитыИСведения/Forms/ВыборРеквизита/Module.bsl b/SSL/src/ChartsOfCharacteristicTypes/ДополнительныеРеквизитыИСведения/Forms/ВыборРеквизита/Module.bsl index 186c5e2f1..e043c2695 100644 --- a/SSL/src/ChartsOfCharacteristicTypes/ДополнительныеРеквизитыИСведения/Forms/ВыборРеквизита/Module.bsl +++ b/SSL/src/ChartsOfCharacteristicTypes/ДополнительныеРеквизитыИСведения/Forms/ВыборРеквизита/Module.bsl @@ -1,5 +1,5 @@ /////////////////////////////////////////////////////////////////////////////////////////////////////// -// Copyright (c) 2024, ООО 1С-Софт +// Copyright (c) 2025, ООО 1С-Софт // Все права защищены. Эта программа и сопроводительные материалы предоставляются // в соответствии с условиями лицензии Attribution 4.0 International (CC BY 4.0) // Текст лицензии доступен по ссылке: diff --git a/SSL/src/ChartsOfCharacteristicTypes/ДополнительныеРеквизитыИСведения/Forms/ЗависимостьРеквизитов/Module.bsl b/SSL/src/ChartsOfCharacteristicTypes/ДополнительныеРеквизитыИСведения/Forms/ЗависимостьРеквизитов/Module.bsl index 5b5c8873e..ef03f553a 100644 --- a/SSL/src/ChartsOfCharacteristicTypes/ДополнительныеРеквизитыИСведения/Forms/ЗависимостьРеквизитов/Module.bsl +++ b/SSL/src/ChartsOfCharacteristicTypes/ДополнительныеРеквизитыИСведения/Forms/ЗависимостьРеквизитов/Module.bsl @@ -1,5 +1,5 @@ /////////////////////////////////////////////////////////////////////////////////////////////////////// -// Copyright (c) 2024, ООО 1С-Софт +// Copyright (c) 2025, ООО 1С-Софт // Все права защищены. Эта программа и сопроводительные материалы предоставляются // в соответствии с условиями лицензии Attribution 4.0 International (CC BY 4.0) // Текст лицензии доступен по ссылке: diff --git a/SSL/src/ChartsOfCharacteristicTypes/ДополнительныеРеквизитыИСведения/Forms/ИзменениеНастройкиСвойства/Module.bsl b/SSL/src/ChartsOfCharacteristicTypes/ДополнительныеРеквизитыИСведения/Forms/ИзменениеНастройкиСвойства/Module.bsl index bfbb62303..661a7cd61 100644 --- a/SSL/src/ChartsOfCharacteristicTypes/ДополнительныеРеквизитыИСведения/Forms/ИзменениеНастройкиСвойства/Module.bsl +++ b/SSL/src/ChartsOfCharacteristicTypes/ДополнительныеРеквизитыИСведения/Forms/ИзменениеНастройкиСвойства/Module.bsl @@ -1,5 +1,5 @@ /////////////////////////////////////////////////////////////////////////////////////////////////////// -// Copyright (c) 2024, ООО 1С-Софт +// Copyright (c) 2025, ООО 1С-Софт // Все права защищены. Эта программа и сопроводительные материалы предоставляются // в соответствии с условиями лицензии Attribution 4.0 International (CC BY 4.0) // Текст лицензии доступен по ссылке: diff --git a/SSL/src/ChartsOfCharacteristicTypes/ДополнительныеРеквизитыИСведения/Forms/РазблокированиеРеквизитов/Module.bsl b/SSL/src/ChartsOfCharacteristicTypes/ДополнительныеРеквизитыИСведения/Forms/РазблокированиеРеквизитов/Module.bsl index 6b71d9617..ddc93c94c 100644 --- a/SSL/src/ChartsOfCharacteristicTypes/ДополнительныеРеквизитыИСведения/Forms/РазблокированиеРеквизитов/Module.bsl +++ b/SSL/src/ChartsOfCharacteristicTypes/ДополнительныеРеквизитыИСведения/Forms/РазблокированиеРеквизитов/Module.bsl @@ -1,5 +1,5 @@ /////////////////////////////////////////////////////////////////////////////////////////////////////// -// Copyright (c) 2024, ООО 1С-Софт +// Copyright (c) 2025, ООО 1С-Софт // Все права защищены. Эта программа и сопроводительные материалы предоставляются // в соответствии с условиями лицензии Attribution 4.0 International (CC BY 4.0) // Текст лицензии доступен по ссылке: diff --git a/SSL/src/ChartsOfCharacteristicTypes/ДополнительныеРеквизитыИСведения/Forms/ФормаСписка/Module.bsl b/SSL/src/ChartsOfCharacteristicTypes/ДополнительныеРеквизитыИСведения/Forms/ФормаСписка/Module.bsl index 0f4005848..234670bc9 100644 --- a/SSL/src/ChartsOfCharacteristicTypes/ДополнительныеРеквизитыИСведения/Forms/ФормаСписка/Module.bsl +++ b/SSL/src/ChartsOfCharacteristicTypes/ДополнительныеРеквизитыИСведения/Forms/ФормаСписка/Module.bsl @@ -1,5 +1,5 @@ /////////////////////////////////////////////////////////////////////////////////////////////////////// -// Copyright (c) 2024, ООО 1С-Софт +// Copyright (c) 2025, ООО 1С-Софт // Все права защищены. Эта программа и сопроводительные материалы предоставляются // в соответствии с условиями лицензии Attribution 4.0 International (CC BY 4.0) // Текст лицензии доступен по ссылке: diff --git a/SSL/src/ChartsOfCharacteristicTypes/ДополнительныеРеквизитыИСведения/Forms/ФормаЭлемента/Module.bsl b/SSL/src/ChartsOfCharacteristicTypes/ДополнительныеРеквизитыИСведения/Forms/ФормаЭлемента/Module.bsl index 6180b1740..20f139593 100644 --- a/SSL/src/ChartsOfCharacteristicTypes/ДополнительныеРеквизитыИСведения/Forms/ФормаЭлемента/Module.bsl +++ b/SSL/src/ChartsOfCharacteristicTypes/ДополнительныеРеквизитыИСведения/Forms/ФормаЭлемента/Module.bsl @@ -1,5 +1,5 @@ /////////////////////////////////////////////////////////////////////////////////////////////////////// -// Copyright (c) 2024, ООО 1С-Софт +// Copyright (c) 2025, ООО 1С-Софт // Все права защищены. Эта программа и сопроводительные материалы предоставляются // в соответствии с условиями лицензии Attribution 4.0 International (CC BY 4.0) // Текст лицензии доступен по ссылке: diff --git a/SSL/src/ChartsOfCharacteristicTypes/ДополнительныеРеквизитыИСведения/ManagerModule.bsl b/SSL/src/ChartsOfCharacteristicTypes/ДополнительныеРеквизитыИСведения/ManagerModule.bsl index f2f79741d..3d4eee5d5 100644 --- a/SSL/src/ChartsOfCharacteristicTypes/ДополнительныеРеквизитыИСведения/ManagerModule.bsl +++ b/SSL/src/ChartsOfCharacteristicTypes/ДополнительныеРеквизитыИСведения/ManagerModule.bsl @@ -1,5 +1,5 @@ /////////////////////////////////////////////////////////////////////////////////////////////////////// -// Copyright (c) 2024, ООО 1С-Софт +// Copyright (c) 2025, ООО 1С-Софт // Все права защищены. Эта программа и сопроводительные материалы предоставляются // в соответствии с условиями лицензии Attribution 4.0 International (CC BY 4.0) // Текст лицензии доступен по ссылке: diff --git a/SSL/src/ChartsOfCharacteristicTypes/ДополнительныеРеквизитыИСведения/ObjectModule.bsl b/SSL/src/ChartsOfCharacteristicTypes/ДополнительныеРеквизитыИСведения/ObjectModule.bsl index 9a6268449..4de905522 100644 --- a/SSL/src/ChartsOfCharacteristicTypes/ДополнительныеРеквизитыИСведения/ObjectModule.bsl +++ b/SSL/src/ChartsOfCharacteristicTypes/ДополнительныеРеквизитыИСведения/ObjectModule.bsl @@ -1,5 +1,5 @@ /////////////////////////////////////////////////////////////////////////////////////////////////////// -// Copyright (c) 2024, ООО 1С-Софт +// Copyright (c) 2025, ООО 1С-Софт // Все права защищены. Эта программа и сопроводительные материалы предоставляются // в соответствии с условиями лицензии Attribution 4.0 International (CC BY 4.0) // Текст лицензии доступен по ссылке: diff --git a/SSL/src/ChartsOfCharacteristicTypes/ОбъектыАдресацииЗадач/Forms/ФормаСписка/Module.bsl b/SSL/src/ChartsOfCharacteristicTypes/ОбъектыАдресацииЗадач/Forms/ФормаСписка/Module.bsl index 0c90a7c7f..6eeec7017 100644 --- a/SSL/src/ChartsOfCharacteristicTypes/ОбъектыАдресацииЗадач/Forms/ФормаСписка/Module.bsl +++ b/SSL/src/ChartsOfCharacteristicTypes/ОбъектыАдресацииЗадач/Forms/ФормаСписка/Module.bsl @@ -1,5 +1,5 @@ /////////////////////////////////////////////////////////////////////////////////////////////////////// -// Copyright (c) 2024, ООО 1С-Софт +// Copyright (c) 2025, ООО 1С-Софт // Все права защищены. Эта программа и сопроводительные материалы предоставляются // в соответствии с условиями лицензии Attribution 4.0 International (CC BY 4.0) // Текст лицензии доступен по ссылке: diff --git a/SSL/src/ChartsOfCharacteristicTypes/ОбъектыАдресацииЗадач/Forms/ФормаЭлемента/Module.bsl b/SSL/src/ChartsOfCharacteristicTypes/ОбъектыАдресацииЗадач/Forms/ФормаЭлемента/Module.bsl index 81347f61c..093c40327 100644 --- a/SSL/src/ChartsOfCharacteristicTypes/ОбъектыАдресацииЗадач/Forms/ФормаЭлемента/Module.bsl +++ b/SSL/src/ChartsOfCharacteristicTypes/ОбъектыАдресацииЗадач/Forms/ФормаЭлемента/Module.bsl @@ -1,5 +1,5 @@ /////////////////////////////////////////////////////////////////////////////////////////////////////// -// Copyright (c) 2024, ООО 1С-Софт +// Copyright (c) 2025, ООО 1С-Софт // Все права защищены. Эта программа и сопроводительные материалы предоставляются // в соответствии с условиями лицензии Attribution 4.0 International (CC BY 4.0) // Текст лицензии доступен по ссылке: diff --git a/SSL/src/ChartsOfCharacteristicTypes/ОбъектыАдресацииЗадач/ManagerModule.bsl b/SSL/src/ChartsOfCharacteristicTypes/ОбъектыАдресацииЗадач/ManagerModule.bsl index 7e853a1fe..b40e57d1f 100644 --- a/SSL/src/ChartsOfCharacteristicTypes/ОбъектыАдресацииЗадач/ManagerModule.bsl +++ b/SSL/src/ChartsOfCharacteristicTypes/ОбъектыАдресацииЗадач/ManagerModule.bsl @@ -1,5 +1,5 @@ /////////////////////////////////////////////////////////////////////////////////////////////////////// -// Copyright (c) 2024, ООО 1С-Софт +// Copyright (c) 2025, ООО 1С-Софт // Все права защищены. Эта программа и сопроводительные материалы предоставляются // в соответствии с условиями лицензии Attribution 4.0 International (CC BY 4.0) // Текст лицензии доступен по ссылке: diff --git a/SSL/src/ChartsOfCharacteristicTypes/ОбъектыАдресацииЗадач/ObjectModule.bsl b/SSL/src/ChartsOfCharacteristicTypes/ОбъектыАдресацииЗадач/ObjectModule.bsl index 77718bda0..1853fde54 100644 --- a/SSL/src/ChartsOfCharacteristicTypes/ОбъектыАдресацииЗадач/ObjectModule.bsl +++ b/SSL/src/ChartsOfCharacteristicTypes/ОбъектыАдресацииЗадач/ObjectModule.bsl @@ -1,5 +1,5 @@ /////////////////////////////////////////////////////////////////////////////////////////////////////// -// Copyright (c) 2024, ООО 1С-Софт +// Copyright (c) 2025, ООО 1С-Софт // Все права защищены. Эта программа и сопроводительные материалы предоставляются // в соответствии с условиями лицензии Attribution 4.0 International (CC BY 4.0) // Текст лицензии доступен по ссылке: diff --git a/SSL/src/ChartsOfCharacteristicTypes/РазделыДатЗапретаИзменения/Forms/ФормаСписка/Module.bsl b/SSL/src/ChartsOfCharacteristicTypes/РазделыДатЗапретаИзменения/Forms/ФормаСписка/Module.bsl index b8aba3db2..a097130f5 100644 --- a/SSL/src/ChartsOfCharacteristicTypes/РазделыДатЗапретаИзменения/Forms/ФормаСписка/Module.bsl +++ b/SSL/src/ChartsOfCharacteristicTypes/РазделыДатЗапретаИзменения/Forms/ФормаСписка/Module.bsl @@ -1,5 +1,5 @@ /////////////////////////////////////////////////////////////////////////////////////////////////////// -// Copyright (c) 2024, ООО 1С-Софт +// Copyright (c) 2025, ООО 1С-Софт // Все права защищены. Эта программа и сопроводительные материалы предоставляются // в соответствии с условиями лицензии Attribution 4.0 International (CC BY 4.0) // Текст лицензии доступен по ссылке: diff --git a/SSL/src/ChartsOfCharacteristicTypes/РазделыДатЗапретаИзменения/Forms/ФормаЭлемента/Module.bsl b/SSL/src/ChartsOfCharacteristicTypes/РазделыДатЗапретаИзменения/Forms/ФормаЭлемента/Module.bsl index 8ad2bab47..09817a6c4 100644 --- a/SSL/src/ChartsOfCharacteristicTypes/РазделыДатЗапретаИзменения/Forms/ФормаЭлемента/Module.bsl +++ b/SSL/src/ChartsOfCharacteristicTypes/РазделыДатЗапретаИзменения/Forms/ФормаЭлемента/Module.bsl @@ -1,5 +1,5 @@ /////////////////////////////////////////////////////////////////////////////////////////////////////// -// Copyright (c) 2024, ООО 1С-Софт +// Copyright (c) 2025, ООО 1С-Софт // Все права защищены. Эта программа и сопроводительные материалы предоставляются // в соответствии с условиями лицензии Attribution 4.0 International (CC BY 4.0) // Текст лицензии доступен по ссылке: diff --git a/SSL/src/ChartsOfCharacteristicTypes/РазделыДатЗапретаИзменения/ManagerModule.bsl b/SSL/src/ChartsOfCharacteristicTypes/РазделыДатЗапретаИзменения/ManagerModule.bsl index 23ad65506..2eb0fca17 100644 --- a/SSL/src/ChartsOfCharacteristicTypes/РазделыДатЗапретаИзменения/ManagerModule.bsl +++ b/SSL/src/ChartsOfCharacteristicTypes/РазделыДатЗапретаИзменения/ManagerModule.bsl @@ -1,5 +1,5 @@ /////////////////////////////////////////////////////////////////////////////////////////////////////// -// Copyright (c) 2024, ООО 1С-Софт +// Copyright (c) 2025, ООО 1С-Софт // Все права защищены. Эта программа и сопроводительные материалы предоставляются // в соответствии с условиями лицензии Attribution 4.0 International (CC BY 4.0) // Текст лицензии доступен по ссылке: diff --git a/SSL/src/CommonAttributes/ОбластьДанныхОсновныеДанные/ОбластьДанныхОсновныеДанные.mdo b/SSL/src/CommonAttributes/ОбластьДанныхОсновныеДанные/ОбластьДанныхОсновныеДанные.mdo index 6e1ad238f..a11a8b7b9 100644 --- a/SSL/src/CommonAttributes/ОбластьДанныхОсновныеДанные/ОбластьДанныхОсновныеДанные.mdo +++ b/SSL/src/CommonAttributes/ОбластьДанныхОсновныеДанные/ОбластьДанныхОсновныеДанные.mdo @@ -18,6 +18,10 @@ <fillValue xsi:type="core:NumberValue"> <value>0</value> </fillValue> + <content> + <metadata>ScheduledJob.РезервноеКопированиеВстроенногоХранилищаДвоичныхДанных</metadata> + <use>DontUse</use> + </content> <content> <metadata>ScheduledJob.ОбновлениеПредопределенныхВариантовОтчетов</metadata> <use>DontUse</use> @@ -90,6 +94,10 @@ <metadata>InformationRegister.ЗамерыВремени</metadata> <use>DontUse</use> </content> + <content> + <metadata>Constant.РазмерПорцииПеремещаемыхФайлов</metadata> + <use>DontUse</use> + </content> <content> <metadata>Constant.НастройкаПроксиСервера</metadata> <use>DontUse</use> @@ -146,6 +154,10 @@ <metadata>Constant.ПрофильБезопасностиИнформационнойБазы</metadata> <use>DontUse</use> </content> + <content> + <metadata>Constant.ТекстИнформированияПользователяОНедоступностиФайлаВАрхиве</metadata> + <use>DontUse</use> + </content> <content> <metadata>Constant.НастройкиРегистрацииСобытийДоступаКДанным</metadata> <use>DontUse</use> @@ -166,6 +178,10 @@ <metadata>ScheduledJob.ПланированиеИзвлеченияТекстаВМоделиСервиса</metadata> <use>DontUse</use> </content> + <content> + <metadata>InformationRegister.ИсторияРезервногоКопированияВстроенногоХранилищаДвоичныхДанных</metadata> + <use>DontUse</use> + </content> <content> <metadata>ScheduledJob.ПолучениеСтатусовЭлектронныхПисем</metadata> <use>DontUse</use> @@ -534,6 +550,10 @@ <metadata>Constant.ИспользуютсяПрофилиБезопасности</metadata> <use>DontUse</use> </content> + <content> + <metadata>Constant.КаталогРезервныхКопийВстроенногоХранилищаДвоичныхДанныхДляWindows</metadata> + <use>DontUse</use> + </content> <content> <metadata>Constant.СтандартныеПодсистемыВАвтономномРежиме</metadata> <use>DontUse</use> @@ -590,10 +610,18 @@ <metadata>Constant.НастройкаПодчиненногоУзлаРИБЗавершена</metadata> <use>DontUse</use> </content> + <content> + <metadata>InformationRegister.КвартирыОфисыПомещения</metadata> + <use>DontUse</use> + </content> <content> <metadata>ScheduledJob.КонтрольУдаленияПомеченныхОбъектов</metadata> <use>DontUse</use> </content> + <content> + <metadata>Catalog.ОбщиеНастройкиАвторизацииИнтернетСервисов</metadata> + <use>DontUse</use> + </content> <content> <metadata>Catalog.КлассификаторБанков</metadata> <use>DontUse</use> @@ -634,6 +662,10 @@ <metadata>Constant.КаталогВременныхФайловДляWindows</metadata> <use>DontUse</use> </content> + <content> + <metadata>ScheduledJob.ПереносФайловМеждуОперационнымХранилищемИФайловымАрхивом</metadata> + <use>DontUse</use> + </content> <content> <metadata>Constant.СообщениеОбменаДаннымиИзГлавногоУзла</metadata> <use>DontUse</use> @@ -646,6 +678,10 @@ <metadata>ScheduledJob.ЗагрузкаКурсовВалют</metadata> <use>DontUse</use> </content> + <content> + <metadata>Constant.ИспользоватьФайловыйАрхив</metadata> + <use>DontUse</use> + </content> <content> <metadata>ScheduledJob.РасчетСроковХраненияПерсональныхДанных</metadata> <use>DontUse</use> @@ -770,6 +806,10 @@ <metadata>ScheduledJob.ПроверкаВеденияУчета</metadata> <use>DontUse</use> </content> + <content> + <metadata>Constant.КаталогРезервныхКопийВстроенногоХранилищаДвоичныхДанныхДляLinux</metadata> + <use>DontUse</use> + </content> <content> <metadata>InformationRegister.ДомаЗданияСтроения</metadata> <use>DontUse</use> diff --git a/SSL/src/CommonCommands/АвтономнаяРабота/CommandModule.bsl b/SSL/src/CommonCommands/АвтономнаяРабота/CommandModule.bsl index 6cb370e93..9eacb8eca 100644 --- a/SSL/src/CommonCommands/АвтономнаяРабота/CommandModule.bsl +++ b/SSL/src/CommonCommands/АвтономнаяРабота/CommandModule.bsl @@ -1,5 +1,5 @@ /////////////////////////////////////////////////////////////////////////////////////////////////////// -// Copyright (c) 2024, ООО 1С-Софт +// Copyright (c) 2025, ООО 1С-Софт // Все права защищены. Эта программа и сопроводительные материалы предоставляются // в соответствии с условиями лицензии Attribution 4.0 International (CC BY 4.0) // Текст лицензии доступен по ссылке: diff --git a/SSL/src/CommonCommands/АвтономнаяРаботаВМоделиСервиса/CommandModule.bsl b/SSL/src/CommonCommands/АвтономнаяРаботаВМоделиСервиса/CommandModule.bsl index d617d9868..b2e70c9be 100644 --- a/SSL/src/CommonCommands/АвтономнаяРаботаВМоделиСервиса/CommandModule.bsl +++ b/SSL/src/CommonCommands/АвтономнаяРаботаВМоделиСервиса/CommandModule.bsl @@ -1,5 +1,5 @@ /////////////////////////////////////////////////////////////////////////////////////////////////////// -// Copyright (c) 2024, ООО 1С-Софт +// Copyright (c) 2025, ООО 1С-Софт // Все права защищены. Эта программа и сопроводительные материалы предоставляются // в соответствии с условиями лицензии Attribution 4.0 International (CC BY 4.0) // Текст лицензии доступен по ссылке: diff --git a/SSL/src/CommonCommands/АрхивСообщенийОбменов/CommandModule.bsl b/SSL/src/CommonCommands/АрхивСообщенийОбменов/CommandModule.bsl index c62cf4048..f50364f15 100644 --- a/SSL/src/CommonCommands/АрхивСообщенийОбменов/CommandModule.bsl +++ b/SSL/src/CommonCommands/АрхивСообщенийОбменов/CommandModule.bsl @@ -1,5 +1,5 @@ /////////////////////////////////////////////////////////////////////////////////////////////////////// -// Copyright (c) 2024, ООО 1С-Софт +// Copyright (c) 2025, ООО 1С-Софт // Все права защищены. Эта программа и сопроводительные материалы предоставляются // в соответствии с условиями лицензии Attribution 4.0 International (CC BY 4.0) // Текст лицензии доступен по ссылке: diff --git a/SSL/src/CommonCommands/ВремяВПриложении/CommandModule.bsl b/SSL/src/CommonCommands/ВремяВПриложении/CommandModule.bsl index 959f86e94..4b000737d 100644 --- a/SSL/src/CommonCommands/ВремяВПриложении/CommandModule.bsl +++ b/SSL/src/CommonCommands/ВремяВПриложении/CommandModule.bsl @@ -1,5 +1,5 @@ /////////////////////////////////////////////////////////////////////////////////////////////////////// -// Copyright (c) 2024, ООО 1С-Софт +// Copyright (c) 2025, ООО 1С-Софт // Все права защищены. Эта программа и сопроводительные материалы предоставляются // в соответствии с условиями лицензии Attribution 4.0 International (CC BY 4.0) // Текст лицензии доступен по ссылке: diff --git a/SSL/src/CommonCommands/ВсеФайлы/CommandModule.bsl b/SSL/src/CommonCommands/ВсеФайлы/CommandModule.bsl index 2d64dbadc..414561971 100644 --- a/SSL/src/CommonCommands/ВсеФайлы/CommandModule.bsl +++ b/SSL/src/CommonCommands/ВсеФайлы/CommandModule.bsl @@ -1,5 +1,5 @@ /////////////////////////////////////////////////////////////////////////////////////////////////////// -// Copyright (c) 2024, ООО 1С-Софт +// Copyright (c) 2025, ООО 1С-Софт // Все права защищены. Эта программа и сопроводительные материалы предоставляются // в соответствии с условиями лицензии Attribution 4.0 International (CC BY 4.0) // Текст лицензии доступен по ссылке: diff --git a/SSL/src/CommonCommands/ДобавитьПользователейСервиса/CommandModule.bsl b/SSL/src/CommonCommands/ДобавитьПользователейСервиса/CommandModule.bsl index 4f0faf180..1cc128f7a 100644 --- a/SSL/src/CommonCommands/ДобавитьПользователейСервиса/CommandModule.bsl +++ b/SSL/src/CommonCommands/ДобавитьПользователейСервиса/CommandModule.bsl @@ -1,5 +1,5 @@ /////////////////////////////////////////////////////////////////////////////////////////////////////// -// Copyright (c) 2024, ООО 1С-Софт +// Copyright (c) 2025, ООО 1С-Софт // Все права защищены. Эта программа и сопроводительные материалы предоставляются // в соответствии с условиями лицензии Attribution 4.0 International (CC BY 4.0) // Текст лицензии доступен по ссылке: diff --git a/SSL/src/CommonCommands/ДополнительныеОбработкиАдминистрирование/CommandModule.bsl b/SSL/src/CommonCommands/ДополнительныеОбработкиАдминистрирование/CommandModule.bsl index 605e15506..0b6450b21 100644 --- a/SSL/src/CommonCommands/ДополнительныеОбработкиАдминистрирование/CommandModule.bsl +++ b/SSL/src/CommonCommands/ДополнительныеОбработкиАдминистрирование/CommandModule.bsl @@ -1,5 +1,5 @@ /////////////////////////////////////////////////////////////////////////////////////////////////////// -// Copyright (c) 2024, ООО 1С-Софт +// Copyright (c) 2025, ООО 1С-Софт // Все права защищены. Эта программа и сопроводительные материалы предоставляются // в соответствии с условиями лицензии Attribution 4.0 International (CC BY 4.0) // Текст лицензии доступен по ссылке: diff --git a/SSL/src/CommonCommands/ДополнительныеОтчетыАдминистрирование/CommandModule.bsl b/SSL/src/CommonCommands/ДополнительныеОтчетыАдминистрирование/CommandModule.bsl index 2e3cd2ec3..e4f25c5ef 100644 --- a/SSL/src/CommonCommands/ДополнительныеОтчетыАдминистрирование/CommandModule.bsl +++ b/SSL/src/CommonCommands/ДополнительныеОтчетыАдминистрирование/CommandModule.bsl @@ -1,5 +1,5 @@ /////////////////////////////////////////////////////////////////////////////////////////////////////// -// Copyright (c) 2024, ООО 1С-Софт +// Copyright (c) 2025, ООО 1С-Софт // Все права защищены. Эта программа и сопроводительные материалы предоставляются // в соответствии с условиями лицензии Attribution 4.0 International (CC BY 4.0) // Текст лицензии доступен по ссылке: diff --git a/SSL/src/CommonCommands/ДополнительныеСведенияКоманднаяПанель/CommandModule.bsl b/SSL/src/CommonCommands/ДополнительныеСведенияКоманднаяПанель/CommandModule.bsl index 206d40f8c..c8ce08167 100644 --- a/SSL/src/CommonCommands/ДополнительныеСведенияКоманднаяПанель/CommandModule.bsl +++ b/SSL/src/CommonCommands/ДополнительныеСведенияКоманднаяПанель/CommandModule.bsl @@ -1,5 +1,5 @@ /////////////////////////////////////////////////////////////////////////////////////////////////////// -// Copyright (c) 2024, ООО 1С-Софт +// Copyright (c) 2025, ООО 1С-Софт // Все права защищены. Эта программа и сопроводительные материалы предоставляются // в соответствии с условиями лицензии Attribution 4.0 International (CC BY 4.0) // Текст лицензии доступен по ссылке: diff --git a/SSL/src/CommonCommands/ЖурналУчетаОригиналовПервичныхДокументов/CommandModule.bsl b/SSL/src/CommonCommands/ЖурналУчетаОригиналовПервичныхДокументов/CommandModule.bsl index 972fc219e..75840cb36 100644 --- a/SSL/src/CommonCommands/ЖурналУчетаОригиналовПервичныхДокументов/CommandModule.bsl +++ b/SSL/src/CommonCommands/ЖурналУчетаОригиналовПервичныхДокументов/CommandModule.bsl @@ -1,5 +1,5 @@ /////////////////////////////////////////////////////////////////////////////////////////////////////// -// Copyright (c) 2024, ООО 1С-Софт +// Copyright (c) 2025, ООО 1С-Софт // Все права защищены. Эта программа и сопроводительные материалы предоставляются // в соответствии с условиями лицензии Attribution 4.0 International (CC BY 4.0) // Текст лицензии доступен по ссылке: diff --git a/SSL/src/CommonCommands/ЗагрузитьКомплектПравил/CommandModule.bsl b/SSL/src/CommonCommands/ЗагрузитьКомплектПравил/CommandModule.bsl index 5b7ef366a..68edb93d6 100644 --- a/SSL/src/CommonCommands/ЗагрузитьКомплектПравил/CommandModule.bsl +++ b/SSL/src/CommonCommands/ЗагрузитьКомплектПравил/CommandModule.bsl @@ -1,5 +1,5 @@ /////////////////////////////////////////////////////////////////////////////////////////////////////// -// Copyright (c) 2024, ООО 1С-Софт +// Copyright (c) 2025, ООО 1С-Софт // Все права защищены. Эта программа и сопроводительные материалы предоставляются // в соответствии с условиями лицензии Attribution 4.0 International (CC BY 4.0) // Текст лицензии доступен по ссылке: diff --git a/SSL/src/CommonCommands/ЗагрузитьКурсыВалют/CommandModule.bsl b/SSL/src/CommonCommands/ЗагрузитьКурсыВалют/CommandModule.bsl index ff1a5c45b..2c86fffbc 100644 --- a/SSL/src/CommonCommands/ЗагрузитьКурсыВалют/CommandModule.bsl +++ b/SSL/src/CommonCommands/ЗагрузитьКурсыВалют/CommandModule.bsl @@ -1,5 +1,5 @@ /////////////////////////////////////////////////////////////////////////////////////////////////////// -// Copyright (c) 2024, ООО 1С-Софт +// Copyright (c) 2025, ООО 1С-Софт // Все права защищены. Эта программа и сопроводительные материалы предоставляются // в соответствии с условиями лицензии Attribution 4.0 International (CC BY 4.0) // Текст лицензии доступен по ссылке: diff --git a/SSL/src/CommonCommands/ЗагрузитьПравилаКонвертацииОбъектов/CommandModule.bsl b/SSL/src/CommonCommands/ЗагрузитьПравилаКонвертацииОбъектов/CommandModule.bsl index fe3a236a8..adfbb73cf 100644 --- a/SSL/src/CommonCommands/ЗагрузитьПравилаКонвертацииОбъектов/CommandModule.bsl +++ b/SSL/src/CommonCommands/ЗагрузитьПравилаКонвертацииОбъектов/CommandModule.bsl @@ -1,5 +1,5 @@ /////////////////////////////////////////////////////////////////////////////////////////////////////// -// Copyright (c) 2024, ООО 1С-Софт +// Copyright (c) 2025, ООО 1С-Софт // Все права защищены. Эта программа и сопроводительные материалы предоставляются // в соответствии с условиями лицензии Attribution 4.0 International (CC BY 4.0) // Текст лицензии доступен по ссылке: diff --git a/SSL/src/CommonCommands/ЗагрузитьПравилаРегистрацииОбъектов/CommandModule.bsl b/SSL/src/CommonCommands/ЗагрузитьПравилаРегистрацииОбъектов/CommandModule.bsl index f51ccc4df..00e029dcb 100644 --- a/SSL/src/CommonCommands/ЗагрузитьПравилаРегистрацииОбъектов/CommandModule.bsl +++ b/SSL/src/CommonCommands/ЗагрузитьПравилаРегистрацииОбъектов/CommandModule.bsl @@ -1,5 +1,5 @@ /////////////////////////////////////////////////////////////////////////////////////////////////////// -// Copyright (c) 2024, ООО 1С-Софт +// Copyright (c) 2025, ООО 1С-Софт // Все права защищены. Эта программа и сопроводительные материалы предоставляются // в соответствии с условиями лицензии Attribution 4.0 International (CC BY 4.0) // Текст лицензии доступен по ссылке: diff --git a/SSL/src/CommonCommands/ЗадачиПоБизнесПроцессу/CommandModule.bsl b/SSL/src/CommonCommands/ЗадачиПоБизнесПроцессу/CommandModule.bsl index eaa784d68..192db614c 100644 --- a/SSL/src/CommonCommands/ЗадачиПоБизнесПроцессу/CommandModule.bsl +++ b/SSL/src/CommonCommands/ЗадачиПоБизнесПроцессу/CommandModule.bsl @@ -1,5 +1,5 @@ /////////////////////////////////////////////////////////////////////////////////////////////////////// -// Copyright (c) 2024, ООО 1С-Софт +// Copyright (c) 2025, ООО 1С-Софт // Все права защищены. Эта программа и сопроводительные материалы предоставляются // в соответствии с условиями лицензии Attribution 4.0 International (CC BY 4.0) // Текст лицензии доступен по ссылке: diff --git a/SSL/src/CommonCommands/ЗадачиПоПредмету/CommandModule.bsl b/SSL/src/CommonCommands/ЗадачиПоПредмету/CommandModule.bsl index 648179553..daf926cf2 100644 --- a/SSL/src/CommonCommands/ЗадачиПоПредмету/CommandModule.bsl +++ b/SSL/src/CommonCommands/ЗадачиПоПредмету/CommandModule.bsl @@ -1,5 +1,5 @@ /////////////////////////////////////////////////////////////////////////////////////////////////////// -// Copyright (c) 2024, ООО 1С-Софт +// Copyright (c) 2025, ООО 1С-Софт // Все права защищены. Эта программа и сопроводительные материалы предоставляются // в соответствии с условиями лицензии Attribution 4.0 International (CC BY 4.0) // Текст лицензии доступен по ссылке: diff --git a/SSL/src/CommonCommands/ЗарегистрироватьПриложениеВOAuthСервисе/CommandModule.bsl b/SSL/src/CommonCommands/ЗарегистрироватьПриложениеВOAuthСервисе/CommandModule.bsl new file mode 100644 index 000000000..f035fc4aa --- /dev/null +++ b/SSL/src/CommonCommands/ЗарегистрироватьПриложениеВOAuthСервисе/CommandModule.bsl @@ -0,0 +1,23 @@ +/////////////////////////////////////////////////////////////////////////////////////////////////////// +// Copyright (c) 2025, ООО 1С-Софт +// Все права защищены. Эта программа и сопроводительные материалы предоставляются +// в соответствии с условиями лицензии Attribution 4.0 International (CC BY 4.0) +// Текст лицензии доступен по ссылке: +// https://creativecommons.org/licenses/by/4.0/legalcode +/////////////////////////////////////////////////////////////////////////////////////////////////////// + +#Область ОбработчикиСобытий + +&НаКлиенте +Процедура ОбработкаКоманды(ПараметрКоманды, ПараметрыВыполненияКоманды) + + ОткрытьФорму( + "Справочник.НастройкиАвторизацииИнтернетСервисов.Форма.ПомощникРегистрацииПриложения", + , + ПараметрыВыполненияКоманды.Источник, + ПараметрыВыполненияКоманды.Уникальность, + ПараметрыВыполненияКоманды.Окно); + +КонецПроцедуры + +#КонецОбласти diff --git a/SSL/src/CommonCommands/ЗарегистрироватьПриложениеВOAuthСервисе/ЗарегистрироватьПриложениеВOAuthСервисе.mdo b/SSL/src/CommonCommands/ЗарегистрироватьПриложениеВOAuthСервисе/ЗарегистрироватьПриложениеВOAuthСервисе.mdo new file mode 100644 index 000000000..c1cdd8198 --- /dev/null +++ b/SSL/src/CommonCommands/ЗарегистрироватьПриложениеВOAuthСервисе/ЗарегистрироватьПриложениеВOAuthСервисе.mdo @@ -0,0 +1,14 @@ +<?xml version="1.0" encoding="UTF-8"?> +<mdclass:CommonCommand xmlns:mdclass="http://g5.1c.ru/v8/dt/metadata/mdclass" uuid="ce720daf-78ea-4fab-91bc-0c15a18c355b"> + <name>ЗарегистрироватьПриложениеВOAuthСервисе</name> + <synonym> + <key>ru</key> + <value>Зарегистрировать приложение в OAuth-сервисе</value> + </synonym> + <group>ActionsPanelTools</group> + <representation>Auto</representation> + <toolTip> + <key>ru</key> + <value>Открыть помощник регистрации приложения для авторизации по протоколу OAuth 2.0</value> + </toolTip> +</mdclass:CommonCommand> diff --git a/SSL/src/CommonCommands/ИсторияИзменений/CommandModule.bsl b/SSL/src/CommonCommands/ИсторияИзменений/CommandModule.bsl index ee9045720..9c76d91a7 100644 --- a/SSL/src/CommonCommands/ИсторияИзменений/CommandModule.bsl +++ b/SSL/src/CommonCommands/ИсторияИзменений/CommandModule.bsl @@ -1,5 +1,5 @@ /////////////////////////////////////////////////////////////////////////////////////////////////////// -// Copyright (c) 2024, ООО 1С-Софт +// Copyright (c) 2025, ООО 1С-Софт // Все права защищены. Эта программа и сопроводительные материалы предоставляются // в соответствии с условиями лицензии Attribution 4.0 International (CC BY 4.0) // Текст лицензии доступен по ссылке: diff --git a/SSL/src/CommonCommands/КартаМаршрутаБизнесПроцесса/CommandModule.bsl b/SSL/src/CommonCommands/КартаМаршрутаБизнесПроцесса/CommandModule.bsl index fbdfec3bf..7b7c16370 100644 --- a/SSL/src/CommonCommands/КартаМаршрутаБизнесПроцесса/CommandModule.bsl +++ b/SSL/src/CommonCommands/КартаМаршрутаБизнесПроцесса/CommandModule.bsl @@ -1,5 +1,5 @@ /////////////////////////////////////////////////////////////////////////////////////////////////////// -// Copyright (c) 2024, ООО 1С-Софт +// Copyright (c) 2025, ООО 1С-Софт // Все права защищены. Эта программа и сопроводительные материалы предоставляются // в соответствии с условиями лицензии Attribution 4.0 International (CC BY 4.0) // Текст лицензии доступен по ссылке: diff --git a/SSL/src/CommonCommands/МакетыФайловВыгрузки/CommandModule.bsl b/SSL/src/CommonCommands/МакетыФайловВыгрузки/CommandModule.bsl index 89e83ed70..99bb3f4c9 100644 --- a/SSL/src/CommonCommands/МакетыФайловВыгрузки/CommandModule.bsl +++ b/SSL/src/CommonCommands/МакетыФайловВыгрузки/CommandModule.bsl @@ -1,5 +1,5 @@ /////////////////////////////////////////////////////////////////////////////////////////////////////// -// Copyright (c) 2024, ООО 1С-Софт +// Copyright (c) 2025, ООО 1С-Софт // Все права защищены. Эта программа и сопроводительные материалы предоставляются // в соответствии с условиями лицензии Attribution 4.0 International (CC BY 4.0) // Текст лицензии доступен по ссылке: diff --git a/SSL/src/CommonCommands/МоиЗаметкиПоПредмету/CommandModule.bsl b/SSL/src/CommonCommands/МоиЗаметкиПоПредмету/CommandModule.bsl index 7491e43b9..3bce656e8 100644 --- a/SSL/src/CommonCommands/МоиЗаметкиПоПредмету/CommandModule.bsl +++ b/SSL/src/CommonCommands/МоиЗаметкиПоПредмету/CommandModule.bsl @@ -1,5 +1,5 @@ /////////////////////////////////////////////////////////////////////////////////////////////////////// -// Copyright (c) 2024, ООО 1С-Софт +// Copyright (c) 2025, ООО 1С-Софт // Все права защищены. Эта программа и сопроводительные материалы предоставляются // в соответствии с условиями лицензии Attribution 4.0 International (CC BY 4.0) // Текст лицензии доступен по ссылке: diff --git a/SSL/src/CommonCommands/Напомнить/CommandModule.bsl b/SSL/src/CommonCommands/Напомнить/CommandModule.bsl index c332582d1..240876857 100644 --- a/SSL/src/CommonCommands/Напомнить/CommandModule.bsl +++ b/SSL/src/CommonCommands/Напомнить/CommandModule.bsl @@ -1,5 +1,5 @@ /////////////////////////////////////////////////////////////////////////////////////////////////////// -// Copyright (c) 2024, ООО 1С-Софт +// Copyright (c) 2025, ООО 1С-Софт // Все права защищены. Эта программа и сопроводительные материалы предоставляются // в соответствии с условиями лицензии Attribution 4.0 International (CC BY 4.0) // Текст лицензии доступен по ссылке: diff --git a/SSL/src/CommonCommands/НастроитьПрава/CommandModule.bsl b/SSL/src/CommonCommands/НастроитьПрава/CommandModule.bsl index db0bff703..2ed743a30 100644 --- a/SSL/src/CommonCommands/НастроитьПрава/CommandModule.bsl +++ b/SSL/src/CommonCommands/НастроитьПрава/CommandModule.bsl @@ -1,5 +1,5 @@ /////////////////////////////////////////////////////////////////////////////////////////////////////// -// Copyright (c) 2024, ООО 1С-Софт +// Copyright (c) 2025, ООО 1С-Софт // Все права защищены. Эта программа и сопроводительные материалы предоставляются // в соответствии с условиями лицензии Attribution 4.0 International (CC BY 4.0) // Текст лицензии доступен по ссылке: diff --git a/SSL/src/CommonCommands/НастройкаКолонтитулов/CommandModule.bsl b/SSL/src/CommonCommands/НастройкаКолонтитулов/CommandModule.bsl index a47af771a..022cf4b44 100644 --- a/SSL/src/CommonCommands/НастройкаКолонтитулов/CommandModule.bsl +++ b/SSL/src/CommonCommands/НастройкаКолонтитулов/CommandModule.bsl @@ -1,5 +1,5 @@ /////////////////////////////////////////////////////////////////////////////////////////////////////// -// Copyright (c) 2024, ООО 1С-Софт +// Copyright (c) 2025, ООО 1С-Софт // Все права защищены. Эта программа и сопроводительные материалы предоставляются // в соответствии с условиями лицензии Attribution 4.0 International (CC BY 4.0) // Текст лицензии доступен по ссылке: diff --git a/SSL/src/CommonCommands/НастройкаСистемнойУчетнойЗаписиЭлектроннойПочты/CommandModule.bsl b/SSL/src/CommonCommands/НастройкаСистемнойУчетнойЗаписиЭлектроннойПочты/CommandModule.bsl index 63f539fb2..97f2e4a2d 100644 --- a/SSL/src/CommonCommands/НастройкаСистемнойУчетнойЗаписиЭлектроннойПочты/CommandModule.bsl +++ b/SSL/src/CommonCommands/НастройкаСистемнойУчетнойЗаписиЭлектроннойПочты/CommandModule.bsl @@ -1,5 +1,5 @@ /////////////////////////////////////////////////////////////////////////////////////////////////////// -// Copyright (c) 2024, ООО 1С-Софт +// Copyright (c) 2025, ООО 1С-Софт // Все права защищены. Эта программа и сопроводительные материалы предоставляются // в соответствии с условиями лицензии Attribution 4.0 International (CC BY 4.0) // Текст лицензии доступен по ссылке: diff --git a/SSL/src/CommonCommands/НастройкиПодключения/CommandModule.bsl b/SSL/src/CommonCommands/НастройкиПодключения/CommandModule.bsl index 9cc6597fa..9c26ef5bf 100644 --- a/SSL/src/CommonCommands/НастройкиПодключения/CommandModule.bsl +++ b/SSL/src/CommonCommands/НастройкиПодключения/CommandModule.bsl @@ -1,5 +1,5 @@ /////////////////////////////////////////////////////////////////////////////////////////////////////// -// Copyright (c) 2024, ООО 1С-Софт +// Copyright (c) 2025, ООО 1С-Софт // Все права защищены. Эта программа и сопроводительные материалы предоставляются // в соответствии с условиями лицензии Attribution 4.0 International (CC BY 4.0) // Текст лицензии доступен по ссылке: diff --git a/SSL/src/CommonCommands/НастройкиСинхронизацииДанных/CommandModule.bsl b/SSL/src/CommonCommands/НастройкиСинхронизацииДанных/CommandModule.bsl index 5342998a6..a048b7f78 100644 --- a/SSL/src/CommonCommands/НастройкиСинхронизацииДанных/CommandModule.bsl +++ b/SSL/src/CommonCommands/НастройкиСинхронизацииДанных/CommandModule.bsl @@ -1,5 +1,5 @@ /////////////////////////////////////////////////////////////////////////////////////////////////////// -// Copyright (c) 2024, ООО 1С-Софт +// Copyright (c) 2025, ООО 1С-Софт // Все права защищены. Эта программа и сопроводительные материалы предоставляются // в соответствии с условиями лицензии Attribution 4.0 International (CC BY 4.0) // Текст лицензии доступен по ссылке: diff --git a/SSL/src/CommonCommands/НастройкиСинхронизацииДанныхВМоделиСервиса/CommandModule.bsl b/SSL/src/CommonCommands/НастройкиСинхронизацииДанныхВМоделиСервиса/CommandModule.bsl index 21d5b6813..fa4d4d5de 100644 --- a/SSL/src/CommonCommands/НастройкиСинхронизацииДанныхВМоделиСервиса/CommandModule.bsl +++ b/SSL/src/CommonCommands/НастройкиСинхронизацииДанныхВМоделиСервиса/CommandModule.bsl @@ -1,5 +1,5 @@ /////////////////////////////////////////////////////////////////////////////////////////////////////// -// Copyright (c) 2024, ООО 1С-Софт +// Copyright (c) 2025, ООО 1С-Софт // Все права защищены. Эта программа и сопроводительные материалы предоставляются // в соответствии с условиями лицензии Attribution 4.0 International (CC BY 4.0) // Текст лицензии доступен по ссылке: diff --git a/SSL/src/CommonCommands/НачатьИнтервью/CommandModule.bsl b/SSL/src/CommonCommands/НачатьИнтервью/CommandModule.bsl index 64337dc1e..b0c87f741 100644 --- a/SSL/src/CommonCommands/НачатьИнтервью/CommandModule.bsl +++ b/SSL/src/CommonCommands/НачатьИнтервью/CommandModule.bsl @@ -1,5 +1,5 @@ /////////////////////////////////////////////////////////////////////////////////////////////////////// -// Copyright (c) 2024, ООО 1С-Софт +// Copyright (c) 2025, ООО 1С-Софт // Все права защищены. Эта программа и сопроводительные материалы предоставляются // в соответствии с условиями лицензии Attribution 4.0 International (CC BY 4.0) // Текст лицензии доступен по ссылке: diff --git a/SSL/src/CommonCommands/Обсуждения/CommandModule.bsl b/SSL/src/CommonCommands/Обсуждения/CommandModule.bsl index 9ff8b8d77..b7a476674 100644 --- a/SSL/src/CommonCommands/Обсуждения/CommandModule.bsl +++ b/SSL/src/CommonCommands/Обсуждения/CommandModule.bsl @@ -1,5 +1,5 @@ /////////////////////////////////////////////////////////////////////////////////////////////////////// -// Copyright (c) 2024, ООО 1С-Софт +// Copyright (c) 2025, ООО 1С-Софт // Все права защищены. Эта программа и сопроводительные материалы предоставляются // в соответствии с условиями лицензии Attribution 4.0 International (CC BY 4.0) // Текст лицензии доступен по ссылке: diff --git a/SSL/src/CommonCommands/ОбъектыНезарегистрированныеПриЗацикливании/CommandModule.bsl b/SSL/src/CommonCommands/ОбъектыНезарегистрированныеПриЗацикливании/CommandModule.bsl index 6d5e9fb8e..bf7e08e03 100644 --- a/SSL/src/CommonCommands/ОбъектыНезарегистрированныеПриЗацикливании/CommandModule.bsl +++ b/SSL/src/CommonCommands/ОбъектыНезарегистрированныеПриЗацикливании/CommandModule.bsl @@ -1,5 +1,5 @@ /////////////////////////////////////////////////////////////////////////////////////////////////////// -// Copyright (c) 2024, ООО 1С-Софт +// Copyright (c) 2025, ООО 1С-Софт // Все права защищены. Эта программа и сопроводительные материалы предоставляются // в соответствии с условиями лицензии Attribution 4.0 International (CC BY 4.0) // Текст лицензии доступен по ссылке: diff --git a/SSL/src/CommonCommands/ОтправитьSMS/CommandModule.bsl b/SSL/src/CommonCommands/ОтправитьSMS/CommandModule.bsl index a80a1f09a..39e1dc004 100644 --- a/SSL/src/CommonCommands/ОтправитьSMS/CommandModule.bsl +++ b/SSL/src/CommonCommands/ОтправитьSMS/CommandModule.bsl @@ -1,5 +1,5 @@ /////////////////////////////////////////////////////////////////////////////////////////////////////// -// Copyright (c) 2024, ООО 1С-Софт +// Copyright (c) 2025, ООО 1С-Софт // Все права защищены. Эта программа и сопроводительные материалы предоставляются // в соответствии с условиями лицензии Attribution 4.0 International (CC BY 4.0) // Текст лицензии доступен по ссылке: diff --git a/SSL/src/CommonCommands/ОтправитьПисьмо/CommandModule.bsl b/SSL/src/CommonCommands/ОтправитьПисьмо/CommandModule.bsl index ddd99ecd2..2acc7a744 100644 --- a/SSL/src/CommonCommands/ОтправитьПисьмо/CommandModule.bsl +++ b/SSL/src/CommonCommands/ОтправитьПисьмо/CommandModule.bsl @@ -1,5 +1,5 @@ /////////////////////////////////////////////////////////////////////////////////////////////////////// -// Copyright (c) 2024, ООО 1С-Софт +// Copyright (c) 2025, ООО 1С-Софт // Все права защищены. Эта программа и сопроводительные материалы предоставляются // в соответствии с условиями лицензии Attribution 4.0 International (CC BY 4.0) // Текст лицензии доступен по ссылке: diff --git a/SSL/src/CommonCommands/ПанельОтчетовАдминистрирование/CommandModule.bsl b/SSL/src/CommonCommands/ПанельОтчетовАдминистрирование/CommandModule.bsl index 2af397543..47ddb9b00 100644 --- a/SSL/src/CommonCommands/ПанельОтчетовАдминистрирование/CommandModule.bsl +++ b/SSL/src/CommonCommands/ПанельОтчетовАдминистрирование/CommandModule.bsl @@ -1,5 +1,5 @@ /////////////////////////////////////////////////////////////////////////////////////////////////////// -// Copyright (c) 2024, ООО 1С-Софт +// Copyright (c) 2025, ООО 1С-Софт // Все права защищены. Эта программа и сопроводительные материалы предоставляются // в соответствии с условиями лицензии Attribution 4.0 International (CC BY 4.0) // Текст лицензии доступен по ссылке: diff --git a/SSL/src/CommonCommands/ПерсональнаяНастройкаПроксиСервера/CommandModule.bsl b/SSL/src/CommonCommands/ПерсональнаяНастройкаПроксиСервера/CommandModule.bsl index a97062ffd..75b73b0d4 100644 --- a/SSL/src/CommonCommands/ПерсональнаяНастройкаПроксиСервера/CommandModule.bsl +++ b/SSL/src/CommonCommands/ПерсональнаяНастройкаПроксиСервера/CommandModule.bsl @@ -1,5 +1,5 @@ /////////////////////////////////////////////////////////////////////////////////////////////////////// -// Copyright (c) 2024, ООО 1С-Софт +// Copyright (c) 2025, ООО 1С-Софт // Все права защищены. Эта программа и сопроводительные материалы предоставляются // в соответствии с условиями лицензии Attribution 4.0 International (CC BY 4.0) // Текст лицензии доступен по ссылке: diff --git a/SSL/src/CommonCommands/ПоказатьРезультатРезервногоКопирования/CommandModule.bsl b/SSL/src/CommonCommands/ПоказатьРезультатРезервногоКопирования/CommandModule.bsl index 1873ead17..73e08c279 100644 --- a/SSL/src/CommonCommands/ПоказатьРезультатРезервногоКопирования/CommandModule.bsl +++ b/SSL/src/CommonCommands/ПоказатьРезультатРезервногоКопирования/CommandModule.bsl @@ -1,5 +1,5 @@ /////////////////////////////////////////////////////////////////////////////////////////////////////// -// Copyright (c) 2024, ООО 1С-Софт +// Copyright (c) 2025, ООО 1С-Софт // Все права защищены. Эта программа и сопроводительные материалы предоставляются // в соответствии с условиями лицензии Attribution 4.0 International (CC BY 4.0) // Текст лицензии доступен по ссылке: diff --git a/SSL/src/CommonCommands/ПолучитьНастройкиСинхронизацииДляДругойПрограммы/CommandModule.bsl b/SSL/src/CommonCommands/ПолучитьНастройкиСинхронизацииДляДругойПрограммы/CommandModule.bsl index 996b989e5..9c6902d73 100644 --- a/SSL/src/CommonCommands/ПолучитьНастройкиСинхронизацииДляДругойПрограммы/CommandModule.bsl +++ b/SSL/src/CommonCommands/ПолучитьНастройкиСинхронизацииДляДругойПрограммы/CommandModule.bsl @@ -1,5 +1,5 @@ /////////////////////////////////////////////////////////////////////////////////////////////////////// -// Copyright (c) 2024, ООО 1С-Софт +// Copyright (c) 2025, ООО 1С-Софт // Все права защищены. Эта программа и сопроводительные материалы предоставляются // в соответствии с условиями лицензии Attribution 4.0 International (CC BY 4.0) // Текст лицензии доступен по ссылке: diff --git a/SSL/src/CommonCommands/ПомощникПереходаНаИнтернетВнутренняяПубликация/CommandModule.bsl b/SSL/src/CommonCommands/ПомощникПереходаНаИнтернетВнутренняяПубликация/CommandModule.bsl index 03e50fcba..1462222d2 100644 --- a/SSL/src/CommonCommands/ПомощникПереходаНаИнтернетВнутренняяПубликация/CommandModule.bsl +++ b/SSL/src/CommonCommands/ПомощникПереходаНаИнтернетВнутренняяПубликация/CommandModule.bsl @@ -1,5 +1,5 @@ /////////////////////////////////////////////////////////////////////////////////////////////////////// -// Copyright (c) 2024, ООО 1С-Софт +// Copyright (c) 2025, ООО 1С-Софт // Все права защищены. Эта программа и сопроводительные материалы предоставляются // в соответствии с условиями лицензии Attribution 4.0 International (CC BY 4.0) // Текст лицензии доступен по ссылке: diff --git a/SSL/src/CommonCommands/ПраваДоступа/CommandModule.bsl b/SSL/src/CommonCommands/ПраваДоступа/CommandModule.bsl index 0ac03ce5e..cdb5d668d 100644 --- a/SSL/src/CommonCommands/ПраваДоступа/CommandModule.bsl +++ b/SSL/src/CommonCommands/ПраваДоступа/CommandModule.bsl @@ -1,5 +1,5 @@ /////////////////////////////////////////////////////////////////////////////////////////////////////// -// Copyright (c) 2024, ООО 1С-Софт +// Copyright (c) 2025, ООО 1С-Софт // Все права защищены. Эта программа и сопроводительные материалы предоставляются // в соответствии с условиями лицензии Attribution 4.0 International (CC BY 4.0) // Текст лицензии доступен по ссылке: diff --git a/SSL/src/CommonCommands/ПредупреждениеЦикличностиНастроекОбменов/CommandModule.bsl b/SSL/src/CommonCommands/ПредупреждениеЦикличностиНастроекОбменов/CommandModule.bsl index 844bd3e3f..f334a0232 100644 --- a/SSL/src/CommonCommands/ПредупреждениеЦикличностиНастроекОбменов/CommandModule.bsl +++ b/SSL/src/CommonCommands/ПредупреждениеЦикличностиНастроекОбменов/CommandModule.bsl @@ -1,5 +1,5 @@ /////////////////////////////////////////////////////////////////////////////////////////////////////// -// Copyright (c) 2024, ООО 1С-Софт +// Copyright (c) 2025, ООО 1С-Софт // Все права защищены. Эта программа и сопроводительные материалы предоставляются // в соответствии с условиями лицензии Attribution 4.0 International (CC BY 4.0) // Текст лицензии доступен по ссылке: diff --git a/SSL/src/CommonCommands/ПредупрежденияПриЗавершенииРаботы/CommandModule.bsl b/SSL/src/CommonCommands/ПредупрежденияПриЗавершенииРаботы/CommandModule.bsl index cdfd675d4..22100638d 100644 --- a/SSL/src/CommonCommands/ПредупрежденияПриЗавершенииРаботы/CommandModule.bsl +++ b/SSL/src/CommonCommands/ПредупрежденияПриЗавершенииРаботы/CommandModule.bsl @@ -1,5 +1,5 @@ /////////////////////////////////////////////////////////////////////////////////////////////////////// -// Copyright (c) 2024, ООО 1С-Софт +// Copyright (c) 2025, ООО 1С-Софт // Все права защищены. Эта программа и сопроводительные материалы предоставляются // в соответствии с условиями лицензии Attribution 4.0 International (CC BY 4.0) // Текст лицензии доступен по ссылке: diff --git a/SSL/src/CommonCommands/ПредупрежденияПриСинхронизацииДанных/CommandModule.bsl b/SSL/src/CommonCommands/ПредупрежденияПриСинхронизацииДанных/CommandModule.bsl index 38c210242..ab6a0db4d 100644 --- a/SSL/src/CommonCommands/ПредупрежденияПриСинхронизацииДанных/CommandModule.bsl +++ b/SSL/src/CommonCommands/ПредупрежденияПриСинхронизацииДанных/CommandModule.bsl @@ -1,5 +1,5 @@ /////////////////////////////////////////////////////////////////////////////////////////////////////// -// Copyright (c) 2024, ООО 1С-Софт +// Copyright (c) 2025, ООО 1С-Софт // Все права защищены. Эта программа и сопроводительные материалы предоставляются // в соответствии с условиями лицензии Attribution 4.0 International (CC BY 4.0) // Текст лицензии доступен по ссылке: diff --git a/SSL/src/CommonCommands/ПрисоединенныеФайлы/CommandModule.bsl b/SSL/src/CommonCommands/ПрисоединенныеФайлы/CommandModule.bsl index d5fd93291..5fec830ab 100644 --- a/SSL/src/CommonCommands/ПрисоединенныеФайлы/CommandModule.bsl +++ b/SSL/src/CommonCommands/ПрисоединенныеФайлы/CommandModule.bsl @@ -1,5 +1,5 @@ /////////////////////////////////////////////////////////////////////////////////////////////////////// -// Copyright (c) 2024, ООО 1С-Софт +// Copyright (c) 2025, ООО 1С-Софт // Все права защищены. Эта программа и сопроводительные материалы предоставляются // в соответствии с условиями лицензии Attribution 4.0 International (CC BY 4.0) // Текст лицензии доступен по ссылке: diff --git a/SSL/src/CommonCommands/РазместитьФайлыНачальногоОбраза/CommandModule.bsl b/SSL/src/CommonCommands/РазместитьФайлыНачальногоОбраза/CommandModule.bsl index ee726406b..b720f59df 100644 --- a/SSL/src/CommonCommands/РазместитьФайлыНачальногоОбраза/CommandModule.bsl +++ b/SSL/src/CommonCommands/РазместитьФайлыНачальногоОбраза/CommandModule.bsl @@ -1,5 +1,5 @@ /////////////////////////////////////////////////////////////////////////////////////////////////////// -// Copyright (c) 2024, ООО 1С-Софт +// Copyright (c) 2025, ООО 1С-Софт // Все права защищены. Эта программа и сопроводительные материалы предоставляются // в соответствии с условиями лицензии Attribution 4.0 International (CC BY 4.0) // Текст лицензии доступен по ссылке: diff --git a/SSL/src/CommonCommands/РедактируемыеФайлы/CommandModule.bsl b/SSL/src/CommonCommands/РедактируемыеФайлы/CommandModule.bsl index a5366b795..b5b393bb3 100644 --- a/SSL/src/CommonCommands/РедактируемыеФайлы/CommandModule.bsl +++ b/SSL/src/CommonCommands/РедактируемыеФайлы/CommandModule.bsl @@ -1,5 +1,5 @@ /////////////////////////////////////////////////////////////////////////////////////////////////////// -// Copyright (c) 2024, ООО 1С-Софт +// Copyright (c) 2025, ООО 1С-Софт // Все права защищены. Эта программа и сопроводительные материалы предоставляются // в соответствии с условиями лицензии Attribution 4.0 International (CC BY 4.0) // Текст лицензии доступен по ссылке: diff --git a/SSL/src/CommonCommands/РолиИИсполнителиЗадач/CommandModule.bsl b/SSL/src/CommonCommands/РолиИИсполнителиЗадач/CommandModule.bsl index b4c0bddc3..603175b9d 100644 --- a/SSL/src/CommonCommands/РолиИИсполнителиЗадач/CommandModule.bsl +++ b/SSL/src/CommonCommands/РолиИИсполнителиЗадач/CommandModule.bsl @@ -1,5 +1,5 @@ /////////////////////////////////////////////////////////////////////////////////////////////////////// -// Copyright (c) 2024, ООО 1С-Софт +// Copyright (c) 2025, ООО 1С-Софт // Все права защищены. Эта программа и сопроводительные материалы предоставляются // в соответствии с условиями лицензии Attribution 4.0 International (CC BY 4.0) // Текст лицензии доступен по ссылке: diff --git a/SSL/src/CommonCommands/СведенияОПользователе/CommandModule.bsl b/SSL/src/CommonCommands/СведенияОПользователе/CommandModule.bsl index 1965a28b7..79c032105 100644 --- a/SSL/src/CommonCommands/СведенияОПользователе/CommandModule.bsl +++ b/SSL/src/CommonCommands/СведенияОПользователе/CommandModule.bsl @@ -1,5 +1,5 @@ /////////////////////////////////////////////////////////////////////////////////////////////////////// -// Copyright (c) 2024, ООО 1С-Софт +// Copyright (c) 2025, ООО 1С-Софт // Все права защищены. Эта программа и сопроводительные материалы предоставляются // в соответствии с условиями лицензии Attribution 4.0 International (CC BY 4.0) // Текст лицензии доступен по ссылке: diff --git a/SSL/src/CommonCommands/СвязанныеДокументы/CommandModule.bsl b/SSL/src/CommonCommands/СвязанныеДокументы/CommandModule.bsl index ece040c56..e0ee8d740 100644 --- a/SSL/src/CommonCommands/СвязанныеДокументы/CommandModule.bsl +++ b/SSL/src/CommonCommands/СвязанныеДокументы/CommandModule.bsl @@ -1,5 +1,5 @@ /////////////////////////////////////////////////////////////////////////////////////////////////////// -// Copyright (c) 2024, ООО 1С-Софт +// Copyright (c) 2025, ООО 1С-Софт // Все права защищены. Эта программа и сопроводительные материалы предоставляются // в соответствии с условиями лицензии Attribution 4.0 International (CC BY 4.0) // Текст лицензии доступен по ссылке: diff --git a/SSL/src/CommonCommands/Синхронизировать/CommandModule.bsl b/SSL/src/CommonCommands/Синхронизировать/CommandModule.bsl index f86db6abe..dc373033f 100644 --- a/SSL/src/CommonCommands/Синхронизировать/CommandModule.bsl +++ b/SSL/src/CommonCommands/Синхронизировать/CommandModule.bsl @@ -1,5 +1,5 @@ /////////////////////////////////////////////////////////////////////////////////////////////////////// -// Copyright (c) 2024, ООО 1С-Софт +// Copyright (c) 2025, ООО 1С-Софт // Все права защищены. Эта программа и сопроводительные материалы предоставляются // в соответствии с условиями лицензии Attribution 4.0 International (CC BY 4.0) // Текст лицензии доступен по ссылке: diff --git a/SSL/src/CommonCommands/СинхронизироватьСДополнительнымиПараметрами/CommandModule.bsl b/SSL/src/CommonCommands/СинхронизироватьСДополнительнымиПараметрами/CommandModule.bsl index 1925c97d1..75930f50f 100644 --- a/SSL/src/CommonCommands/СинхронизироватьСДополнительнымиПараметрами/CommandModule.bsl +++ b/SSL/src/CommonCommands/СинхронизироватьСДополнительнымиПараметрами/CommandModule.bsl @@ -1,5 +1,5 @@ /////////////////////////////////////////////////////////////////////////////////////////////////////// -// Copyright (c) 2024, ООО 1С-Софт +// Copyright (c) 2025, ООО 1С-Софт // Все права защищены. Эта программа и сопроводительные материалы предоставляются // в соответствии с условиями лицензии Attribution 4.0 International (CC BY 4.0) // Текст лицензии доступен по ссылке: diff --git a/SSL/src/CommonCommands/СменитьПароль/CommandModule.bsl b/SSL/src/CommonCommands/СменитьПароль/CommandModule.bsl index e9138acc4..96d6e7347 100644 --- a/SSL/src/CommonCommands/СменитьПароль/CommandModule.bsl +++ b/SSL/src/CommonCommands/СменитьПароль/CommandModule.bsl @@ -1,5 +1,5 @@ /////////////////////////////////////////////////////////////////////////////////////////////////////// -// Copyright (c) 2024, ООО 1С-Софт +// Copyright (c) 2025, ООО 1С-Софт // Все права защищены. Эта программа и сопроводительные материалы предоставляются // в соответствии с условиями лицензии Attribution 4.0 International (CC BY 4.0) // Текст лицензии доступен по ссылке: diff --git a/SSL/src/CommonCommands/СнимкиОтчетовДляАвтономногоРежима/CommandModule.bsl b/SSL/src/CommonCommands/СнимкиОтчетовДляАвтономногоРежима/CommandModule.bsl index 058cf30c5..f2316609a 100644 --- a/SSL/src/CommonCommands/СнимкиОтчетовДляАвтономногоРежима/CommandModule.bsl +++ b/SSL/src/CommonCommands/СнимкиОтчетовДляАвтономногоРежима/CommandModule.bsl @@ -1,5 +1,5 @@ /////////////////////////////////////////////////////////////////////////////////////////////////////// -// Copyright (c) 2024, ООО 1С-Софт +// Copyright (c) 2025, ООО 1С-Софт // Все права защищены. Эта программа и сопроводительные материалы предоставляются // в соответствии с условиями лицензии Attribution 4.0 International (CC BY 4.0) // Текст лицензии доступен по ссылке: diff --git a/SSL/src/CommonCommands/СобытияОтправки/CommandModule.bsl b/SSL/src/CommonCommands/СобытияОтправки/CommandModule.bsl index c769457e2..075d9d31f 100644 --- a/SSL/src/CommonCommands/СобытияОтправки/CommandModule.bsl +++ b/SSL/src/CommonCommands/СобытияОтправки/CommandModule.bsl @@ -1,5 +1,5 @@ /////////////////////////////////////////////////////////////////////////////////////////////////////// -// Copyright (c) 2024, ООО 1С-Софт +// Copyright (c) 2025, ООО 1С-Софт // Все права защищены. Эта программа и сопроводительные материалы предоставляются // в соответствии с условиями лицензии Attribution 4.0 International (CC BY 4.0) // Текст лицензии доступен по ссылке: diff --git a/SSL/src/CommonCommands/СобытияПолучения/CommandModule.bsl b/SSL/src/CommonCommands/СобытияПолучения/CommandModule.bsl index e06a1c3ab..b6b2a4267 100644 --- a/SSL/src/CommonCommands/СобытияПолучения/CommandModule.bsl +++ b/SSL/src/CommonCommands/СобытияПолучения/CommandModule.bsl @@ -1,5 +1,5 @@ /////////////////////////////////////////////////////////////////////////////////////////////////////// -// Copyright (c) 2024, ООО 1С-Софт +// Copyright (c) 2025, ООО 1С-Софт // Все права защищены. Эта программа и сопроводительные материалы предоставляются // в соответствии с условиями лицензии Attribution 4.0 International (CC BY 4.0) // Текст лицензии доступен по ссылке: diff --git a/SSL/src/CommonCommands/СозданиеНачальногоОбразаСФайлами/CommandModule.bsl b/SSL/src/CommonCommands/СозданиеНачальногоОбразаСФайлами/CommandModule.bsl index a38658946..0449caa2f 100644 --- a/SSL/src/CommonCommands/СозданиеНачальногоОбразаСФайлами/CommandModule.bsl +++ b/SSL/src/CommonCommands/СозданиеНачальногоОбразаСФайлами/CommandModule.bsl @@ -1,5 +1,5 @@ /////////////////////////////////////////////////////////////////////////////////////////////////////// -// Copyright (c) 2024, ООО 1С-Софт +// Copyright (c) 2025, ООО 1С-Софт // Все права защищены. Эта программа и сопроводительные материалы предоставляются // в соответствии с условиями лицензии Attribution 4.0 International (CC BY 4.0) // Текст лицензии доступен по ссылке: diff --git a/SSL/src/CommonCommands/СозданиеСвязанныхОбъектов/CommandModule.bsl b/SSL/src/CommonCommands/СозданиеСвязанныхОбъектов/CommandModule.bsl index af62d3927..6b9c29eb7 100644 --- a/SSL/src/CommonCommands/СозданиеСвязанныхОбъектов/CommandModule.bsl +++ b/SSL/src/CommonCommands/СозданиеСвязанныхОбъектов/CommandModule.bsl @@ -1,5 +1,5 @@ /////////////////////////////////////////////////////////////////////////////////////////////////////// -// Copyright (c) 2024, ООО 1С-Софт +// Copyright (c) 2025, ООО 1С-Софт // Все права защищены. Эта программа и сопроводительные материалы предоставляются // в соответствии с условиями лицензии Attribution 4.0 International (CC BY 4.0) // Текст лицензии доступен по ссылке: diff --git a/SSL/src/CommonCommands/СоздатьЗаметкуПоПредмету/CommandModule.bsl b/SSL/src/CommonCommands/СоздатьЗаметкуПоПредмету/CommandModule.bsl index 65b307922..add06bd9b 100644 --- a/SSL/src/CommonCommands/СоздатьЗаметкуПоПредмету/CommandModule.bsl +++ b/SSL/src/CommonCommands/СоздатьЗаметкуПоПредмету/CommandModule.bsl @@ -1,5 +1,5 @@ /////////////////////////////////////////////////////////////////////////////////////////////////////// -// Copyright (c) 2024, ООО 1С-Софт +// Copyright (c) 2025, ООО 1С-Софт // Все права защищены. Эта программа и сопроводительные материалы предоставляются // в соответствии с условиями лицензии Attribution 4.0 International (CC BY 4.0) // Текст лицензии доступен по ссылке: diff --git a/SSL/src/CommonCommands/СоставОтправляемыхДанных/CommandModule.bsl b/SSL/src/CommonCommands/СоставОтправляемыхДанных/CommandModule.bsl index 00ea8c7eb..36d385209 100644 --- a/SSL/src/CommonCommands/СоставОтправляемыхДанных/CommandModule.bsl +++ b/SSL/src/CommonCommands/СоставОтправляемыхДанных/CommandModule.bsl @@ -1,5 +1,5 @@ /////////////////////////////////////////////////////////////////////////////////////////////////////// -// Copyright (c) 2024, ООО 1С-Софт +// Copyright (c) 2025, ООО 1С-Софт // Все права защищены. Эта программа и сопроводительные материалы предоставляются // в соответствии с условиями лицензии Attribution 4.0 International (CC BY 4.0) // Текст лицензии доступен по ссылке: diff --git a/SSL/src/CommonCommands/СценарииСинхронизации/CommandModule.bsl b/SSL/src/CommonCommands/СценарииСинхронизации/CommandModule.bsl index e6064abf2..6ea2dadea 100644 --- a/SSL/src/CommonCommands/СценарииСинхронизации/CommandModule.bsl +++ b/SSL/src/CommonCommands/СценарииСинхронизации/CommandModule.bsl @@ -1,5 +1,5 @@ /////////////////////////////////////////////////////////////////////////////////////////////////////// -// Copyright (c) 2024, ООО 1С-Софт +// Copyright (c) 2025, ООО 1С-Софт // Все права защищены. Эта программа и сопроводительные материалы предоставляются // в соответствии с условиями лицензии Attribution 4.0 International (CC BY 4.0) // Текст лицензии доступен по ссылке: diff --git a/SSL/src/CommonCommands/УдалитьНастройкуСинхронизации/CommandModule.bsl b/SSL/src/CommonCommands/УдалитьНастройкуСинхронизации/CommandModule.bsl index 3b126bf12..4309adda1 100644 --- a/SSL/src/CommonCommands/УдалитьНастройкуСинхронизации/CommandModule.bsl +++ b/SSL/src/CommonCommands/УдалитьНастройкуСинхронизации/CommandModule.bsl @@ -1,5 +1,5 @@ /////////////////////////////////////////////////////////////////////////////////////////////////////// -// Copyright (c) 2024, ООО 1С-Софт +// Copyright (c) 2025, ООО 1С-Софт // Все права защищены. Эта программа и сопроводительные материалы предоставляются // в соответствии с условиями лицензии Attribution 4.0 International (CC BY 4.0) // Текст лицензии доступен по ссылке: diff --git a/SSL/src/CommonCommands/УстановитьРасширениеДляРаботыС1СПредприятием/CommandModule.bsl b/SSL/src/CommonCommands/УстановитьРасширениеДляРаботыС1СПредприятием/CommandModule.bsl index 76af17873..5fb468f8f 100644 --- a/SSL/src/CommonCommands/УстановитьРасширениеДляРаботыС1СПредприятием/CommandModule.bsl +++ b/SSL/src/CommonCommands/УстановитьРасширениеДляРаботыС1СПредприятием/CommandModule.bsl @@ -1,5 +1,5 @@ /////////////////////////////////////////////////////////////////////////////////////////////////////// -// Copyright (c) 2024, ООО 1С-Софт +// Copyright (c) 2025, ООО 1С-Софт // Все права защищены. Эта программа и сопроводительные материалы предоставляются // в соответствии с условиями лицензии Attribution 4.0 International (CC BY 4.0) // Текст лицензии доступен по ссылке: diff --git a/SSL/src/CommonCommands/ФайлыВТоме/CommandModule.bsl b/SSL/src/CommonCommands/ФайлыВТоме/CommandModule.bsl index bb9ff44ff..920d411cf 100644 --- a/SSL/src/CommonCommands/ФайлыВТоме/CommandModule.bsl +++ b/SSL/src/CommonCommands/ФайлыВТоме/CommandModule.bsl @@ -1,5 +1,5 @@ /////////////////////////////////////////////////////////////////////////////////////////////////////// -// Copyright (c) 2024, ООО 1С-Софт +// Copyright (c) 2025, ООО 1С-Софт // Все права защищены. Эта программа и сопроводительные материалы предоставляются // в соответствии с условиями лицензии Attribution 4.0 International (CC BY 4.0) // Текст лицензии доступен по ссылке: diff --git a/SSL/src/CommonForms/АвтономнаяРабота/Module.bsl b/SSL/src/CommonForms/АвтономнаяРабота/Module.bsl index b078888fc..e2a9b1293 100644 --- a/SSL/src/CommonForms/АвтономнаяРабота/Module.bsl +++ b/SSL/src/CommonForms/АвтономнаяРабота/Module.bsl @@ -1,5 +1,5 @@ /////////////////////////////////////////////////////////////////////////////////////////////////////// -// Copyright (c) 2024, ООО 1С-Софт +// Copyright (c) 2025, ООО 1С-Софт // Все права защищены. Эта программа и сопроводительные материалы предоставляются // в соответствии с условиями лицензии Attribution 4.0 International (CC BY 4.0) // Текст лицензии доступен по ссылке: diff --git a/SSL/src/CommonForms/АвтономнаяРаботаВМоделиСервиса/Module.bsl b/SSL/src/CommonForms/АвтономнаяРаботаВМоделиСервиса/Module.bsl index b476c6266..239d0079a 100644 --- a/SSL/src/CommonForms/АвтономнаяРаботаВМоделиСервиса/Module.bsl +++ b/SSL/src/CommonForms/АвтономнаяРаботаВМоделиСервиса/Module.bsl @@ -1,5 +1,5 @@ /////////////////////////////////////////////////////////////////////////////////////////////////////// -// Copyright (c) 2024, ООО 1С-Софт +// Copyright (c) 2025, ООО 1С-Софт // Все права защищены. Эта программа и сопроводительные материалы предоставляются // в соответствии с условиями лицензии Attribution 4.0 International (CC BY 4.0) // Текст лицензии доступен по ссылке: diff --git a/SSL/src/CommonForms/АдреснаяКнига/Module.bsl b/SSL/src/CommonForms/АдреснаяКнига/Module.bsl index 1dab18336..cf749a8d8 100644 --- a/SSL/src/CommonForms/АдреснаяКнига/Module.bsl +++ b/SSL/src/CommonForms/АдреснаяКнига/Module.bsl @@ -1,5 +1,5 @@ /////////////////////////////////////////////////////////////////////////////////////////////////////// -// Copyright (c) 2024, ООО 1С-Софт +// Copyright (c) 2025, ООО 1С-Софт // Все права защищены. Эта программа и сопроводительные материалы предоставляются // в соответствии с условиями лицензии Attribution 4.0 International (CC BY 4.0) // Текст лицензии доступен по ссылке: diff --git a/SSL/src/CommonForms/АутентификацияВСервисе/Module.bsl b/SSL/src/CommonForms/АутентификацияВСервисе/Module.bsl index d9ec2c7e3..845883820 100644 --- a/SSL/src/CommonForms/АутентификацияВСервисе/Module.bsl +++ b/SSL/src/CommonForms/АутентификацияВСервисе/Module.bsl @@ -1,5 +1,5 @@ /////////////////////////////////////////////////////////////////////////////////////////////////////// -// Copyright (c) 2024, ООО 1С-Софт +// Copyright (c) 2025, ООО 1С-Софт // Все права защищены. Эта программа и сопроводительные материалы предоставляются // в соответствии с условиями лицензии Attribution 4.0 International (CC BY 4.0) // Текст лицензии доступен по ссылке: diff --git a/SSL/src/CommonForms/БлокировкаРаботыСВнешнимиРесурсами/Module.bsl b/SSL/src/CommonForms/БлокировкаРаботыСВнешнимиРесурсами/Module.bsl index a58360ab4..c7b381d42 100644 --- a/SSL/src/CommonForms/БлокировкаРаботыСВнешнимиРесурсами/Module.bsl +++ b/SSL/src/CommonForms/БлокировкаРаботыСВнешнимиРесурсами/Module.bsl @@ -1,5 +1,5 @@ /////////////////////////////////////////////////////////////////////////////////////////////////////// -// Copyright (c) 2024, ООО 1С-Софт +// Copyright (c) 2025, ООО 1С-Софт // Все права защищены. Эта программа и сопроводительные материалы предоставляются // в соответствии с условиями лицензии Attribution 4.0 International (CC BY 4.0) // Текст лицензии доступен по ссылке: diff --git a/SSL/src/CommonForms/ВводЗначенийСпискомСФлажками/Module.bsl b/SSL/src/CommonForms/ВводЗначенийСпискомСФлажками/Module.bsl index e3960a5d6..17dd39e62 100644 --- a/SSL/src/CommonForms/ВводЗначенийСпискомСФлажками/Module.bsl +++ b/SSL/src/CommonForms/ВводЗначенийСпискомСФлажками/Module.bsl @@ -1,5 +1,5 @@ /////////////////////////////////////////////////////////////////////////////////////////////////////// -// Copyright (c) 2024, ООО 1С-Софт +// Copyright (c) 2025, ООО 1С-Софт // Все права защищены. Эта программа и сопроводительные материалы предоставляются // в соответствии с условиями лицензии Attribution 4.0 International (CC BY 4.0) // Текст лицензии доступен по ссылке: diff --git a/SSL/src/CommonForms/ВводНаРазныхЯзыках/Module.bsl b/SSL/src/CommonForms/ВводНаРазныхЯзыках/Module.bsl index 5f31d5abc..dc31543bf 100644 --- a/SSL/src/CommonForms/ВводНаРазныхЯзыках/Module.bsl +++ b/SSL/src/CommonForms/ВводНаРазныхЯзыках/Module.bsl @@ -1,5 +1,5 @@ /////////////////////////////////////////////////////////////////////////////////////////////////////// -// Copyright (c) 2024, ООО 1С-Софт +// Copyright (c) 2025, ООО 1С-Софт // Все права защищены. Эта программа и сопроводительные материалы предоставляются // в соответствии с условиями лицензии Attribution 4.0 International (CC BY 4.0) // Текст лицензии доступен по ссылке: diff --git a/SSL/src/CommonForms/Вопрос/Module.bsl b/SSL/src/CommonForms/Вопрос/Module.bsl index 1e4984bcc..42c12f220 100644 --- a/SSL/src/CommonForms/Вопрос/Module.bsl +++ b/SSL/src/CommonForms/Вопрос/Module.bsl @@ -1,5 +1,5 @@ /////////////////////////////////////////////////////////////////////////////////////////////////////// -// Copyright (c) 2024, ООО 1С-Софт +// Copyright (c) 2025, ООО 1С-Софт // Все права защищены. Эта программа и сопроводительные материалы предоставляются // в соответствии с условиями лицензии Attribution 4.0 International (CC BY 4.0) // Текст лицензии доступен по ссылке: @@ -25,7 +25,9 @@ РежимОткрытияОкна = РежимОткрытияОкнаФормы.БлокироватьВесьИнтерфейс; КонецЕсли; - Если Параметры.Картинка.Вид <> ВидКартинки.Пустая Тогда + Если Параметры.Картинка.Вид = ВидКартинки.Пустая Тогда + Элементы.Предупреждение.Видимость = Ложь; + Иначе Элементы.Предупреждение.Картинка = Параметры.Картинка; КонецЕсли; diff --git a/SSL/src/CommonForms/ВопросОбУстановкеВнешнейКомпоненты/Module.bsl b/SSL/src/CommonForms/ВопросОбУстановкеВнешнейКомпоненты/Module.bsl index 79d883124..d7beaed56 100644 --- a/SSL/src/CommonForms/ВопросОбУстановкеВнешнейКомпоненты/Module.bsl +++ b/SSL/src/CommonForms/ВопросОбУстановкеВнешнейКомпоненты/Module.bsl @@ -1,5 +1,5 @@ /////////////////////////////////////////////////////////////////////////////////////////////////////// -// Copyright (c) 2024, ООО 1С-Софт +// Copyright (c) 2025, ООО 1С-Софт // Все права защищены. Эта программа и сопроводительные материалы предоставляются // в соответствии с условиями лицензии Attribution 4.0 International (CC BY 4.0) // Текст лицензии доступен по ссылке: diff --git a/SSL/src/CommonForms/ВопросОбУстановкеРасширения1СПредприятия/Module.bsl b/SSL/src/CommonForms/ВопросОбУстановкеРасширения1СПредприятия/Module.bsl index b3ffe19d4..14224d880 100644 --- a/SSL/src/CommonForms/ВопросОбУстановкеРасширения1СПредприятия/Module.bsl +++ b/SSL/src/CommonForms/ВопросОбУстановкеРасширения1СПредприятия/Module.bsl @@ -1,5 +1,5 @@ /////////////////////////////////////////////////////////////////////////////////////////////////////// -// Copyright (c) 2024, ООО 1С-Софт +// Copyright (c) 2025, ООО 1С-Софт // Все права защищены. Эта программа и сопроводительные материалы предоставляются // в соответствии с условиями лицензии Attribution 4.0 International (CC BY 4.0) // Текст лицензии доступен по ссылке: diff --git a/SSL/src/CommonForms/ВопросОбУстановкеРасширенияРаботыСКриптографией/Module.bsl b/SSL/src/CommonForms/ВопросОбУстановкеРасширенияРаботыСКриптографией/Module.bsl index cf6727b0f..642ddc657 100644 --- a/SSL/src/CommonForms/ВопросОбУстановкеРасширенияРаботыСКриптографией/Module.bsl +++ b/SSL/src/CommonForms/ВопросОбУстановкеРасширенияРаботыСКриптографией/Module.bsl @@ -1,5 +1,5 @@ /////////////////////////////////////////////////////////////////////////////////////////////////////// -// Copyright (c) 2024, ООО 1С-Софт +// Copyright (c) 2025, ООО 1С-Софт // Все права защищены. Эта программа и сопроводительные материалы предоставляются // в соответствии с условиями лицензии Attribution 4.0 International (CC BY 4.0) // Текст лицензии доступен по ссылке: diff --git a/SSL/src/CommonForms/ВосстановлениеПаролей/Form.form b/SSL/src/CommonForms/ВосстановлениеПаролей/Form.form index 66994cf5a..7bf986b11 100644 --- a/SSL/src/CommonForms/ВосстановлениеПаролей/Form.form +++ b/SSL/src/CommonForms/ВосстановлениеПаролей/Form.form @@ -259,7 +259,7 @@ <id>100</id> <title> <key>ru</key> - <value>Сервер отправки</value> + <value>Сервис отправки</value> true true @@ -270,6 +270,7 @@ ВариантОтправкиПоПочте None + None OnChange ВариантОтправкиСтандартныйСервисПриИзменении @@ -277,10 +278,20 @@ ВариантОтправкиПоПочтеСтандартныйСервисРасширеннаяПодсказка 102 + + <key>ru</key> + <value>Для отправки кода через стандартный сервис 1С <link открыть>подключите</> Интернет-поддержку пользователей. +</value> + + true Label true true + + URLProcessing + ВариантОтправкиПоПочтеСтандартныйСервисРасширеннаяПодсказкаОбработкаНавигационнойСсылки + Left @@ -308,6 +319,111 @@ Vertical + + ГруппаСервисПерестанетРаботать + 246 + + ДекорацияСервисПерестанетРаботать + 248 + + <key>ru</key> + <value>Декорация сервис перестанет работать</value> + + true + true + + true + + + ДекорацияСервисПерестанетРаботатьРасширеннаяПодсказка + 250 + Label + true + true + + Left + + + + ДекорацияСервисПерестанетРаботатьКонтекстноеМеню + 249 + true + + true + true + + + StdPicture.DialogExclamation + + AsFileRef + + + + КомментарийСервисПерестанетРаботать + 251 + + <key>ru</key> + <value>Для получения кодов восстановления паролей с помощью стандартного сервиса 1С требуется обновить платформу до версии <<b>>%1<</b>> или старше. +Устаревшая версия стандартного сервиса 1С, которая используется текущей версией платформы, перестанет работать через некоторое время.</value> + + true + true + + true + + + КомментарийСервисПерестанетРаботатьРасширеннаяПодсказка + 253 + Label + true + true + + Left + + + + КомментарийСервисПерестанетРаботатьКонтекстноеМеню + 252 + true + + true + Label + true + true + false + + Left + + + true + + true + + + <key>ru</key> + <value>Сервис перестанет работать</value> + + + ГруппаСервисПерестанетРаботатьРасширеннаяПодсказка + 247 + Label + true + true + + Left + + + UsualGroup + + AlwaysHorizontal + Auto + WeakSeparation + true + true + Auto + Auto + + ГруппаНастройкиПочты 111 @@ -800,6 +916,10 @@ ПарольSMTP + + OnChange + ПарольSMTPПриИзменении + ПарольSMTPРасширеннаяПодсказка 81 @@ -944,6 +1064,110 @@ ГруппаТекстСообщения 57 + + ГруппаПредупреждениеТекстНеРедактируется + 209 + + ДекорацияПредупреждениеТекстНеРедактируется + 211 + + <key>ru</key> + <value>Декорация предупреждение текст не редактируется</value> + + true + true + + true + + + ДекорацияПредупреждениеТекстНеРедактируетсяРасширеннаяПодсказка + 213 + Label + true + true + + Left + + + + ДекорацияПредупреждениеТекстНеРедактируетсяКонтекстноеМеню + 212 + true + + true + true + + + CommonPicture.ИнформацияПоНедоступнымПолям + + AsFileRef + + + + КомментарийПредупреждениеТекстНеРедактируется + 214 + + <key>ru</key> + <value>Текст сообщения формирует сервис отправки 1С, обычно текст сообщения имеет вид, как показано ниже.</value> + + true + true + + true + + + КомментарийПредупреждениеТекстНеРедактируетсяРасширеннаяПодсказка + 216 + Label + true + true + + Left + + + + КомментарийПредупреждениеТекстНеРедактируетсяКонтекстноеМеню + 215 + true + + Label + true + true + false + + Left + + + true + true + + true + + + <key>ru</key> + <value>Предупреждение текст не редактируется</value> + + + ГруппаПредупреждениеТекстНеРедактируетсяРасширеннаяПодсказка + 210 + Label + true + true + + Left + + + UsualGroup + + AlwaysHorizontal + Auto + WeakSeparation + true + true + Auto + Auto + + ТемаПисьма 59 @@ -1940,6 +2164,10 @@ Left true + + NotificationProcessing + ОбработкаОповещения + OnOpen ПриОткрытии @@ -2373,6 +2601,58 @@ true + + ДанныеАутентификацииВСтандартномСервисе1СЗаполнены + 23 + + Boolean + + + true + + + true + + + + ЕстьПодсистемаИнтернетПоддержкиПользователей + 24 + + Boolean + + + true + + + true + + + + ПриЧтенииИспользуетсяСтандартныйСервис + 25 + + Boolean + + + true + + + true + + + + ПлатформаПоддерживаетОтправкуЧерезСтандартныйСервис + 26 + + Boolean + + + true + + + true + + ЗаписатьИЗакрыть diff --git a/SSL/src/CommonForms/ВосстановлениеПаролей/Module.bsl b/SSL/src/CommonForms/ВосстановлениеПаролей/Module.bsl index 76f36e7c5..69909cde1 100644 --- a/SSL/src/CommonForms/ВосстановлениеПаролей/Module.bsl +++ b/SSL/src/CommonForms/ВосстановлениеПаролей/Module.bsl @@ -1,5 +1,5 @@ /////////////////////////////////////////////////////////////////////////////////////////////////////// -// Copyright (c) 2024, ООО 1С-Софт +// Copyright (c) 2025, ООО 1С-Софт // Все права защищены. Эта программа и сопроводительные материалы предоставляются // в соответствии с условиями лицензии Attribution 4.0 International (CC BY 4.0) // Текст лицензии доступен по ссылке: @@ -26,11 +26,29 @@ УчетнаяЗаписьПочты = Неопределено; Элементы.ГруппаНастройкиПочты.Видимость = Ложь; КонецЕсли; - - Если Не ОбщегоНазначения.ПодсистемаСуществует("СтандартныеПодсистемы.РаботаСПочтовымиСообщениями") Тогда - Элементы.ГруппаНастройкиПочты.Видимость = Ложь; + + ЕстьПодсистемаИнтернетПоддержкиПользователей = + ОбщегоНазначения.ПодсистемаСуществует("ИнтернетПоддержкаПользователей"); + Если ЕстьПодсистемаИнтернетПоддержкиПользователей Тогда + МодульИнтернетПоддержкаПользователей = ОбщегоНазначения.ОбщийМодуль("ИнтернетПоддержкаПользователей"); + + УстановитьПривилегированныйРежим(Истина); + ДанныеАутентификации = МодульИнтернетПоддержкаПользователей.ДанныеАутентификацииПользователяИнтернетПоддержки(); + ДанныеАутентификацииВСтандартномСервисе1СЗаполнены = (ДанныеАутентификации <> Неопределено); + УстановитьПривилегированныйРежим(Ложь); + Иначе + Элементы.ВариантОтправкиПоПочтеСтандартныйСервис.РасширеннаяПодсказка.Заголовок = + НСтр("ru = 'Для работы сервиса должны быть установлены настройки клиента лицензирования.'"); КонецЕсли; + ПроверитьВерсиюПлатформыДляСтандартногоСервиса(); + + ДоступенВариантОтправкиЧерезСтандартныйСервис = ЕстьПодсистемаИнтернетПоддержкиПользователей + Или ПриЧтенииИспользуетсяСтандартныйСервис; + Элементы.ГруппаСервисПерестанетРаботать.Видимость = ДоступенВариантОтправкиЧерезСтандартныйСервис + И Не ПлатформаПоддерживаетОтправкуЧерезСтандартныйСервис; + Элементы.ВариантОтправкиПоПочтеСтандартныйСервис.Видимость = ДоступенВариантОтправкиЧерезСтандартныйСервис; + КонецПроцедуры &НаКлиенте @@ -46,6 +64,19 @@ КонецПроцедуры +&НаКлиенте +Процедура ОбработкаОповещения(ИмяСобытия, Параметр, Источник) + + Если ИмяСобытия = "ИнтернетПоддержкаПодключена" Тогда + ВведенныеДанныеАутентификации = Параметр; + Если ВведенныеДанныеАутентификации <> Неопределено Тогда + ДанныеАутентификацииВСтандартномСервисе1СЗаполнены = Истина; + УстановитьДоступностьЭлементов(); + КонецЕсли; + КонецЕсли; + +КонецПроцедуры + #КонецОбласти #Область ОбработчикиСобытийЭлементовШапкиФормы @@ -64,13 +95,7 @@ &НаКлиенте Процедура ВосстанавливатьПарольПриИзменении(Элемент) - Если ВосстанавливатьПароль Тогда - Элементы.ВариантВосстановленияПароля.Доступность = Истина; - Элементы.ВариантыВосстановления.Доступность = Истина; - Иначе - Элементы.ВариантВосстановленияПароля.Доступность = Ложь; - Элементы.ВариантыВосстановления.Доступность = Ложь; - КонецЕсли; + УстановитьДоступностьЭлементов(); КонецПроцедуры @@ -108,11 +133,31 @@ Если ШифрованиеПриОтправкеПочты = "Авто" Тогда ПортSMTP = 25; Иначе - ПортSMTP = 465 + ПортSMTP = 465; КонецЕсли; КонецПроцедуры +&НаКлиенте +Процедура ПарольSMTPПриИзменении(Элемент) + + ПарольИзменен = Истина; + +КонецПроцедуры + +&НаКлиенте +Процедура ВариантОтправкиПоПочтеСтандартныйСервисРасширеннаяПодсказкаОбработкаНавигационнойСсылки(Элемент, НавигационнаяСсылкаФорматированнойСтроки, СтандартнаяОбработка) + + СтандартнаяОбработка = Ложь; + + Если ЕстьПодсистемаИнтернетПоддержкиПользователей Тогда + МодульИнтернетПоддержкаПользователейКлиент = + ОбщегоНазначенияКлиент.ОбщийМодуль("ИнтернетПоддержкаПользователейКлиент"); + МодульИнтернетПоддержкаПользователейКлиент.ПодключитьИнтернетПоддержкуПользователей(, ЭтотОбъект); + КонецЕсли; + +КонецПроцедуры + #КонецОбласти #Область ОбработчикиКомандФормы @@ -183,26 +228,43 @@ &НаКлиенте Процедура УстановитьДоступностьЭлементов() - Флаг = ВариантОтправкиПоПочте = "РучнаяНастройка"; - Элементы.ГруппаСерверSMTP.Доступность = Флаг; - Элементы.ГруппаПользовательSMTP.Доступность = Флаг; - Элементы.ИмяОтправителя.Доступность = Флаг; + Элементы.ВариантВосстановленияПароля.Доступность = ВосстанавливатьПароль; + Элементы.ВариантыВосстановления.Доступность = ВосстанавливатьПароль; - Если Флаг Тогда + РучнаяНастройкаДоступна = ВариантОтправкиПоПочте = "РучнаяНастройка"; + Элементы.ГруппаСерверSMTP.Доступность = РучнаяНастройкаДоступна; + Элементы.ГруппаПользовательSMTP.Доступность = РучнаяНастройкаДоступна; + Элементы.ИмяОтправителя.Доступность = РучнаяНастройкаДоступна; + + Если РучнаяНастройкаДоступна Тогда Элементы.ГруппаРучныеНастройкиПочты.Показать(); КонецЕсли; - Флаг = ВариантОтправкиПоПочте <> "СтандартныйСервис"; - Элементы.ТемаПисьма.Доступность = Флаг; - Элементы.ГруппаКнопкиФорматированногоДокумента.Доступность = Флаг; - Элементы.ТекстСообщения.Доступность = Флаг; + ОтправкаЧерезСтандартныйСервис = ВариантОтправкиПоПочте = "СтандартныйСервис"; + Элементы.ТемаПисьма.Доступность = Не ОтправкаЧерезСтандартныйСервис; + Элементы.ГруппаКнопкиФорматированногоДокумента.Доступность = Не ОтправкаЧерезСтандартныйСервис; + Элементы.ТекстСообщения.Доступность = Не ОтправкаЧерезСтандартныйСервис; + Элементы.ГруппаПредупреждениеТекстНеРедактируется.Видимость = ОтправкаЧерезСтандартныйСервис; - Если Флаг Тогда + Если Не ОтправкаЧерезСтандартныйСервис Тогда Элементы.ГруппаТекстСообщения.Показать(); Иначе Элементы.ГруппаТекстСообщения.Скрыть(); КонецЕсли; + Элементы.ГруппаСервисПерестанетРаботать.Видимость = ОтправкаЧерезСтандартныйСервис + И Не ПлатформаПоддерживаетОтправкуЧерезСтандартныйСервис; + + Если ПлатформаПоддерживаетОтправкуЧерезСтандартныйСервис Тогда + Если ОтправкаЧерезСтандартныйСервис + И ((Не ЕстьПодсистемаИнтернетПоддержкиПользователей И ПриЧтенииИспользуетсяСтандартныйСервис) + Или (ЕстьПодсистемаИнтернетПоддержкиПользователей И Не ДанныеАутентификацииВСтандартномСервисе1СЗаполнены)) Тогда + Элементы.ВариантОтправкиПоПочтеСтандартныйСервис.ОтображениеПодсказки = ОтображениеПодсказки.ОтображатьСнизу; + Иначе + Элементы.ВариантОтправкиПоПочтеСтандартныйСервис.ОтображениеПодсказки = ОтображениеПодсказки.Нет; + КонецЕсли; + КонецЕсли; + КонецПроцедуры &НаКлиенте @@ -411,7 +473,7 @@ Иначе Настройки.СпособВосстановленияПароля = СпособВосстановленияПароляПользователяИнформационнойБазы.ОтправкаКодаПодтвержденияПоЗаданнымПараметрам; - ЗаполнитьЗначенияСвойств(Настройки, ЭтотОбъект, "АдресСервераSMTP, ПарольSMTP, ПользовательSMTP, ПортSMTP,ИмяОтправителя"); + ЗаполнитьЗначенияСвойств(Настройки, ЭтотОбъект, "АдресСервераSMTP, ПользовательSMTP, ПортSMTP, ИмяОтправителя"); Настройки.ИспользоватьSSL = ШифрованиеПриОтправкеПочты = "SSL"; КонецЕсли; @@ -458,9 +520,10 @@ ТемаПисьма = ?(ЗначениеЗаполнено(Настройки.Заголовок), Настройки.Заголовок, НСтр("ru='Восстановление пароля'")); + ВариантОтправкиПоПочте = "РучнаяНастройка"; // Значение по умолчанию Если Настройки.СпособВосстановленияПароля = СпособВосстановленияПароляПользователяИнформационнойБазы.Нет Тогда ВосстанавливатьПароль = Ложь; - + Иначе ВосстанавливатьПароль = Истина; Если Настройки.СпособВосстановленияПароля = СпособВосстановленияПароляПользователяИнформационнойБазы.ОтправкаКодаПодтвержденияЧерезСтандартныйСервис Тогда @@ -483,6 +546,8 @@ КонецЕсли; КонецЕсли; + ПриЧтенииИспользуетсяСтандартныйСервис = ВариантОтправкиПоПочте = "СтандартныйСервис"; + КонецПроцедуры &НаСервереБезКонтекста @@ -544,4 +609,37 @@ КонецФункции +&НаСервере +Процедура ПроверитьВерсиюПлатформыДляСтандартногоСервиса() + + СистемнаяИнформация = Новый СистемнаяИнформация; + Текущая = СистемнаяИнформация.ВерсияПриложения; + + Если СтрНачинаетсяС(Текущая, "8.3.") Тогда + МинимальнаяВерсия = МинимальнаяВерсияПлатформы83ДляОтправкиЧерезСтандартныйСервис(); + ТекстТребуемойВерсии = СтрШаблон("%1 (%2)", МинимальнаяВерсия, + МинимальнаяВерсияПлатформы85ДляОтправкиЧерезСтандартныйСервис()); + Иначе + МинимальнаяВерсия = МинимальнаяВерсияПлатформы85ДляОтправкиЧерезСтандартныйСервис(); + ТекстТребуемойВерсии = МинимальнаяВерсия; + КонецЕсли; + + ПлатформаПоддерживаетОтправкуЧерезСтандартныйСервис = + ОбщегоНазначенияКлиентСервер.СравнитьВерсии(Текущая, МинимальнаяВерсия) >= 0; + Элементы.КомментарийСервисПерестанетРаботать.Заголовок = + СтроковыеФункции.ФорматированнаяСтрока(Элементы.КомментарийСервисПерестанетРаботать.Заголовок, + ТекстТребуемойВерсии); + +КонецПроцедуры + +&НаСервереБезКонтекста +Функция МинимальнаяВерсияПлатформы83ДляОтправкиЧерезСтандартныйСервис() + Возврат "8.3.27.2130"; +КонецФункции + +&НаСервереБезКонтекста +Функция МинимальнаяВерсияПлатформы85ДляОтправкиЧерезСтандартныйСервис() + Возврат "8.5.1.1302"; +КонецФункции + #КонецОбласти \ No newline at end of file diff --git a/SSL/src/CommonForms/ВосстановлениеСвязиСГлавнымУзлом/Module.bsl b/SSL/src/CommonForms/ВосстановлениеСвязиСГлавнымУзлом/Module.bsl index a6ea94bf0..a1c9e3386 100644 --- a/SSL/src/CommonForms/ВосстановлениеСвязиСГлавнымУзлом/Module.bsl +++ b/SSL/src/CommonForms/ВосстановлениеСвязиСГлавнымУзлом/Module.bsl @@ -1,5 +1,5 @@ /////////////////////////////////////////////////////////////////////////////////////////////////////// -// Copyright (c) 2024, ООО 1С-Софт +// Copyright (c) 2025, ООО 1С-Софт // Все права защищены. Эта программа и сопроводительные материалы предоставляются // в соответствии с условиями лицензии Attribution 4.0 International (CC BY 4.0) // Текст лицензии доступен по ссылке: diff --git a/SSL/src/CommonForms/ВспомогательнаяФормаНастроекОтчета/Module.bsl b/SSL/src/CommonForms/ВспомогательнаяФормаНастроекОтчета/Module.bsl index b6027187b..2c9f3baa4 100644 --- a/SSL/src/CommonForms/ВспомогательнаяФормаНастроекОтчета/Module.bsl +++ b/SSL/src/CommonForms/ВспомогательнаяФормаНастроекОтчета/Module.bsl @@ -1,5 +1,5 @@ /////////////////////////////////////////////////////////////////////////////////////////////////////// -// Copyright (c) 2024, ООО 1С-Софт +// Copyright (c) 2025, ООО 1С-Софт // Все права защищены. Эта программа и сопроводительные материалы предоставляются // в соответствии с условиями лицензии Attribution 4.0 International (CC BY 4.0) // Текст лицензии доступен по ссылке: diff --git a/SSL/src/CommonForms/ВходВПрограммуЗапрещен/Module.bsl b/SSL/src/CommonForms/ВходВПрограммуЗапрещен/Module.bsl index ed895464f..1bff14c7d 100644 --- a/SSL/src/CommonForms/ВходВПрограммуЗапрещен/Module.bsl +++ b/SSL/src/CommonForms/ВходВПрограммуЗапрещен/Module.bsl @@ -1,5 +1,5 @@ /////////////////////////////////////////////////////////////////////////////////////////////////////// -// Copyright (c) 2024, ООО 1С-Софт +// Copyright (c) 2025, ООО 1С-Софт // Все права защищены. Эта программа и сопроводительные материалы предоставляются // в соответствии с условиями лицензии Attribution 4.0 International (CC BY 4.0) // Текст лицензии доступен по ссылке: diff --git a/SSL/src/CommonForms/ВыборДаты/Module.bsl b/SSL/src/CommonForms/ВыборДаты/Module.bsl index f157a8b17..252c1d529 100644 --- a/SSL/src/CommonForms/ВыборДаты/Module.bsl +++ b/SSL/src/CommonForms/ВыборДаты/Module.bsl @@ -1,5 +1,5 @@ /////////////////////////////////////////////////////////////////////////////////////////////////////// -// Copyright (c) 2024, ООО 1С-Софт +// Copyright (c) 2025, ООО 1С-Софт // Все права защищены. Эта программа и сопроводительные материалы предоставляются // в соответствии с условиями лицензии Attribution 4.0 International (CC BY 4.0) // Текст лицензии доступен по ссылке: diff --git a/SSL/src/CommonForms/ВыборДействияПриОбнаруженииОтличийФайла/Form.form b/SSL/src/CommonForms/ВыборДействияПриОбнаруженииОтличийФайла/Form.form index c4071b7ea..62e9c9ae2 100644 --- a/SSL/src/CommonForms/ВыборДействияПриОбнаруженииОтличийФайла/Form.form +++ b/SSL/src/CommonForms/ВыборДействияПриОбнаруженииОтличийФайла/Form.form @@ -862,7 +862,7 @@ <id>1</id> <toolTip> <key>ru</key> - <value>Открыть копию файла на компьютере</value> + <value>Открыть копию файла на компьютере Содержимое может отличаться от версии в приложении.</value> </toolTip> <use> <common>true</common> @@ -884,7 +884,7 @@ <id>2</id> <toolTip> <key>ru</key> - <value>Заменить копию файла на компьютере копией файла из приложения и открыть</value> + <value>Заменить локальную копию файла на версию из приложения и открыть её. При этом все изменения в файле на компьютере будут потеряны.</value> </toolTip> <use> <common>true</common> diff --git a/SSL/src/CommonForms/ВыборДействияПриОбнаруженииОтличийФайла/Module.bsl b/SSL/src/CommonForms/ВыборДействияПриОбнаруженииОтличийФайла/Module.bsl index 013c1378d..ea83ca489 100644 --- a/SSL/src/CommonForms/ВыборДействияПриОбнаруженииОтличийФайла/Module.bsl +++ b/SSL/src/CommonForms/ВыборДействияПриОбнаруженииОтличийФайла/Module.bsl @@ -1,5 +1,5 @@ /////////////////////////////////////////////////////////////////////////////////////////////////////// -// Copyright (c) 2024, ООО 1С-Софт +// Copyright (c) 2025, ООО 1С-Софт // Все права защищены. Эта программа и сопроводительные материалы предоставляются // в соответствии с условиями лицензии Attribution 4.0 International (CC BY 4.0) // Текст лицензии доступен по ссылке: diff --git a/SSL/src/CommonForms/ВыборИсполнителяБизнесПроцесса/Module.bsl b/SSL/src/CommonForms/ВыборИсполнителяБизнесПроцесса/Module.bsl index 845b877dd..9b3919c7d 100644 --- a/SSL/src/CommonForms/ВыборИсполнителяБизнесПроцесса/Module.bsl +++ b/SSL/src/CommonForms/ВыборИсполнителяБизнесПроцесса/Module.bsl @@ -1,5 +1,5 @@ /////////////////////////////////////////////////////////////////////////////////////////////////////// -// Copyright (c) 2024, ООО 1С-Софт +// Copyright (c) 2025, ООО 1С-Софт // Все права защищены. Эта программа и сопроводительные материалы предоставляются // в соответствии с условиями лицензии Attribution 4.0 International (CC BY 4.0) // Текст лицензии доступен по ссылке: diff --git a/SSL/src/CommonForms/ВыборКонтакта/Module.bsl b/SSL/src/CommonForms/ВыборКонтакта/Module.bsl index f1ad797bd..365248331 100644 --- a/SSL/src/CommonForms/ВыборКонтакта/Module.bsl +++ b/SSL/src/CommonForms/ВыборКонтакта/Module.bsl @@ -1,5 +1,5 @@ /////////////////////////////////////////////////////////////////////////////////////////////////////// -// Copyright (c) 2024, ООО 1С-Софт +// Copyright (c) 2025, ООО 1С-Софт // Все права защищены. Эта программа и сопроводительные материалы предоставляются // в соответствии с условиями лицензии Attribution 4.0 International (CC BY 4.0) // Текст лицензии доступен по ссылке: diff --git a/SSL/src/CommonForms/ВыборОбъектовИнформационнойБазыКорреспондента/Module.bsl b/SSL/src/CommonForms/ВыборОбъектовИнформационнойБазыКорреспондента/Module.bsl index 32c0e6652..af67899b2 100644 --- a/SSL/src/CommonForms/ВыборОбъектовИнформационнойБазыКорреспондента/Module.bsl +++ b/SSL/src/CommonForms/ВыборОбъектовИнформационнойБазыКорреспондента/Module.bsl @@ -1,5 +1,5 @@ /////////////////////////////////////////////////////////////////////////////////////////////////////// -// Copyright (c) 2024, ООО 1С-Софт +// Copyright (c) 2025, ООО 1С-Софт // Все права защищены. Эта программа и сопроводительные материалы предоставляются // в соответствии с условиями лицензии Attribution 4.0 International (CC BY 4.0) // Текст лицензии доступен по ссылке: diff --git a/SSL/src/CommonForms/ВыборОбъектовМетаданных/Module.bsl b/SSL/src/CommonForms/ВыборОбъектовМетаданных/Module.bsl index b0fb649e4..3c5fc3cb1 100644 --- a/SSL/src/CommonForms/ВыборОбъектовМетаданных/Module.bsl +++ b/SSL/src/CommonForms/ВыборОбъектовМетаданных/Module.bsl @@ -1,5 +1,5 @@ /////////////////////////////////////////////////////////////////////////////////////////////////////// -// Copyright (c) 2024, ООО 1С-Софт +// Copyright (c) 2025, ООО 1С-Софт // Все права защищены. Эта программа и сопроводительные материалы предоставляются // в соответствии с условиями лицензии Attribution 4.0 International (CC BY 4.0) // Текст лицензии доступен по ссылке: diff --git a/SSL/src/CommonForms/ВыборОсновнойПечатнойФормы/Module.bsl b/SSL/src/CommonForms/ВыборОсновнойПечатнойФормы/Module.bsl index b32651eca..18a222c5b 100644 --- a/SSL/src/CommonForms/ВыборОсновнойПечатнойФормы/Module.bsl +++ b/SSL/src/CommonForms/ВыборОсновнойПечатнойФормы/Module.bsl @@ -1,5 +1,5 @@ /////////////////////////////////////////////////////////////////////////////////////////////////////// -// Copyright (c) 2024, ООО 1С-Софт +// Copyright (c) 2025, ООО 1С-Софт // Все права защищены. Эта программа и сопроводительные материалы предоставляются // в соответствии с условиями лицензии Attribution 4.0 International (CC BY 4.0) // Текст лицензии доступен по ссылке: diff --git a/SSL/src/CommonForms/ВыборПутиКАрхивуФайловТомов/Module.bsl b/SSL/src/CommonForms/ВыборПутиКАрхивуФайловТомов/Module.bsl index 8568bf1fd..b47168e40 100644 --- a/SSL/src/CommonForms/ВыборПутиКАрхивуФайловТомов/Module.bsl +++ b/SSL/src/CommonForms/ВыборПутиКАрхивуФайловТомов/Module.bsl @@ -1,5 +1,5 @@ /////////////////////////////////////////////////////////////////////////////////////////////////////// -// Copyright (c) 2024, ООО 1С-Софт +// Copyright (c) 2025, ООО 1С-Софт // Все права защищены. Эта программа и сопроводительные материалы предоставляются // в соответствии с условиями лицензии Attribution 4.0 International (CC BY 4.0) // Текст лицензии доступен по ссылке: diff --git a/SSL/src/CommonForms/ВыборРолиИсполнителя/Module.bsl b/SSL/src/CommonForms/ВыборРолиИсполнителя/Module.bsl index 5f024d677..06e7305d4 100644 --- a/SSL/src/CommonForms/ВыборРолиИсполнителя/Module.bsl +++ b/SSL/src/CommonForms/ВыборРолиИсполнителя/Module.bsl @@ -1,5 +1,5 @@ /////////////////////////////////////////////////////////////////////////////////////////////////////// -// Copyright (c) 2024, ООО 1С-Софт +// Copyright (c) 2025, ООО 1С-Софт // Все права защищены. Эта программа и сопроводительные материалы предоставляются // в соответствии с условиями лицензии Attribution 4.0 International (CC BY 4.0) // Текст лицензии доступен по ссылке: diff --git a/SSL/src/CommonForms/ВыборТиповПользователей/Module.bsl b/SSL/src/CommonForms/ВыборТиповПользователей/Module.bsl index 3aae19d46..989813c03 100644 --- a/SSL/src/CommonForms/ВыборТиповПользователей/Module.bsl +++ b/SSL/src/CommonForms/ВыборТиповПользователей/Module.bsl @@ -1,5 +1,5 @@ /////////////////////////////////////////////////////////////////////////////////////////////////////// -// Copyright (c) 2024, ООО 1С-Софт +// Copyright (c) 2025, ООО 1С-Софт // Все права защищены. Эта программа и сопроводительные материалы предоставляются // в соответствии с условиями лицензии Attribution 4.0 International (CC BY 4.0) // Текст лицензии доступен по ссылке: diff --git a/SSL/src/CommonForms/ВыборУзловПлановОбмена/Module.bsl b/SSL/src/CommonForms/ВыборУзловПлановОбмена/Module.bsl index e44c9d709..f171d9aed 100644 --- a/SSL/src/CommonForms/ВыборУзловПлановОбмена/Module.bsl +++ b/SSL/src/CommonForms/ВыборУзловПлановОбмена/Module.bsl @@ -1,5 +1,5 @@ /////////////////////////////////////////////////////////////////////////////////////////////////////// -// Copyright (c) 2024, ООО 1С-Софт +// Copyright (c) 2025, ООО 1С-Софт // Все права защищены. Эта программа и сопроводительные материалы предоставляются // в соответствии с условиями лицензии Attribution 4.0 International (CC BY 4.0) // Текст лицензии доступен по ссылке: diff --git a/SSL/src/CommonForms/ВыборФорматаВложений/Module.bsl b/SSL/src/CommonForms/ВыборФорматаВложений/Module.bsl index af36ff50e..dd7f15cc4 100644 --- a/SSL/src/CommonForms/ВыборФорматаВложений/Module.bsl +++ b/SSL/src/CommonForms/ВыборФорматаВложений/Module.bsl @@ -1,5 +1,5 @@ /////////////////////////////////////////////////////////////////////////////////////////////////////// -// Copyright (c) 2024, ООО 1С-Софт +// Copyright (c) 2025, ООО 1С-Софт // Все права защищены. Эта программа и сопроводительные материалы предоставляются // в соответствии с условиями лицензии Attribution 4.0 International (CC BY 4.0) // Текст лицензии доступен по ссылке: diff --git a/SSL/src/CommonForms/ГруппыПользователей/Module.bsl b/SSL/src/CommonForms/ГруппыПользователей/Module.bsl index 8d0383eb2..b47ee861d 100644 --- a/SSL/src/CommonForms/ГруппыПользователей/Module.bsl +++ b/SSL/src/CommonForms/ГруппыПользователей/Module.bsl @@ -1,5 +1,5 @@ /////////////////////////////////////////////////////////////////////////////////////////////////////// -// Copyright (c) 2024, ООО 1С-Софт +// Copyright (c) 2025, ООО 1С-Софт // Все права защищены. Эта программа и сопроводительные материалы предоставляются // в соответствии с условиями лицензии Attribution 4.0 International (CC BY 4.0) // Текст лицензии доступен по ссылке: diff --git a/SSL/src/CommonForms/ДлительнаяОперация/Module.bsl b/SSL/src/CommonForms/ДлительнаяОперация/Module.bsl index 708e3d8f7..a0e0bd2bb 100644 --- a/SSL/src/CommonForms/ДлительнаяОперация/Module.bsl +++ b/SSL/src/CommonForms/ДлительнаяОперация/Module.bsl @@ -1,5 +1,5 @@ /////////////////////////////////////////////////////////////////////////////////////////////////////// -// Copyright (c) 2024, ООО 1С-Софт +// Copyright (c) 2025, ООО 1С-Софт // Все права защищены. Эта программа и сопроводительные материалы предоставляются // в соответствии с условиями лицензии Attribution 4.0 International (CC BY 4.0) // Текст лицензии доступен по ссылке: diff --git a/SSL/src/CommonForms/ДобавлениеЭлектроннойПодписиИзФайла/Module.bsl b/SSL/src/CommonForms/ДобавлениеЭлектроннойПодписиИзФайла/Module.bsl index 4dc5fa7f6..549f03913 100644 --- a/SSL/src/CommonForms/ДобавлениеЭлектроннойПодписиИзФайла/Module.bsl +++ b/SSL/src/CommonForms/ДобавлениеЭлектроннойПодписиИзФайла/Module.bsl @@ -1,5 +1,5 @@ /////////////////////////////////////////////////////////////////////////////////////////////////////// -// Copyright (c) 2024, ООО 1С-Софт +// Copyright (c) 2025, ООО 1С-Софт // Все права защищены. Эта программа и сопроводительные материалы предоставляются // в соответствии с условиями лицензии Attribution 4.0 International (CC BY 4.0) // Текст лицензии доступен по ссылке: diff --git a/SSL/src/CommonForms/ДополнительноеОписание/Module.bsl b/SSL/src/CommonForms/ДополнительноеОписание/Module.bsl index 600fac23d..83a36c827 100644 --- a/SSL/src/CommonForms/ДополнительноеОписание/Module.bsl +++ b/SSL/src/CommonForms/ДополнительноеОписание/Module.bsl @@ -1,5 +1,5 @@ /////////////////////////////////////////////////////////////////////////////////////////////////////// -// Copyright (c) 2024, ООО 1С-Софт +// Copyright (c) 2025, ООО 1С-Софт // Все права защищены. Эта программа и сопроводительные материалы предоставляются // в соответствии с условиями лицензии Attribution 4.0 International (CC BY 4.0) // Текст лицензии доступен по ссылке: diff --git a/SSL/src/CommonForms/ДополнительныеОтчетыИОбработки/Module.bsl b/SSL/src/CommonForms/ДополнительныеОтчетыИОбработки/Module.bsl index 2f007cac3..9ecc2c9b0 100644 --- a/SSL/src/CommonForms/ДополнительныеОтчетыИОбработки/Module.bsl +++ b/SSL/src/CommonForms/ДополнительныеОтчетыИОбработки/Module.bsl @@ -1,5 +1,5 @@ /////////////////////////////////////////////////////////////////////////////////////////////////////// -// Copyright (c) 2024, ООО 1С-Софт +// Copyright (c) 2025, ООО 1С-Софт // Все права защищены. Эта программа и сопроводительные материалы предоставляются // в соответствии с условиями лицензии Attribution 4.0 International (CC BY 4.0) // Текст лицензии доступен по ссылке: diff --git a/SSL/src/CommonForms/ДополнительныеПараметрыПроксиСервера/Module.bsl b/SSL/src/CommonForms/ДополнительныеПараметрыПроксиСервера/Module.bsl index f217ff840..b3994380e 100644 --- a/SSL/src/CommonForms/ДополнительныеПараметрыПроксиСервера/Module.bsl +++ b/SSL/src/CommonForms/ДополнительныеПараметрыПроксиСервера/Module.bsl @@ -1,5 +1,5 @@ /////////////////////////////////////////////////////////////////////////////////////////////////////// -// Copyright (c) 2024, ООО 1С-Софт +// Copyright (c) 2025, ООО 1С-Софт // Все права защищены. Эта программа и сопроводительные материалы предоставляются // в соответствии с условиями лицензии Attribution 4.0 International (CC BY 4.0) // Текст лицензии доступен по ссылке: diff --git a/SSL/src/CommonForms/ИнформацияНеразделенногоПользователя/Module.bsl b/SSL/src/CommonForms/ИнформацияНеразделенногоПользователя/Module.bsl index 513681efb..bb036e795 100644 --- a/SSL/src/CommonForms/ИнформацияНеразделенногоПользователя/Module.bsl +++ b/SSL/src/CommonForms/ИнформацияНеразделенногоПользователя/Module.bsl @@ -1,5 +1,5 @@ /////////////////////////////////////////////////////////////////////////////////////////////////////// -// Copyright (c) 2024, ООО 1С-Софт +// Copyright (c) 2025, ООО 1С-Софт // Все права защищены. Эта программа и сопроводительные материалы предоставляются // в соответствии с условиями лицензии Attribution 4.0 International (CC BY 4.0) // Текст лицензии доступен по ссылке: diff --git a/SSL/src/CommonForms/КонтрольДинамическогоОбновления/Module.bsl b/SSL/src/CommonForms/КонтрольДинамическогоОбновления/Module.bsl index 2c64634af..3bb84bba5 100644 --- a/SSL/src/CommonForms/КонтрольДинамическогоОбновления/Module.bsl +++ b/SSL/src/CommonForms/КонтрольДинамическогоОбновления/Module.bsl @@ -1,5 +1,5 @@ /////////////////////////////////////////////////////////////////////////////////////////////////////// -// Copyright (c) 2024, ООО 1С-Софт +// Copyright (c) 2025, ООО 1С-Софт // Все права защищены. Эта программа и сопроводительные материалы предоставляются // в соответствии с условиями лицензии Attribution 4.0 International (CC BY 4.0) // Текст лицензии доступен по ссылке: diff --git a/SSL/src/CommonForms/КонтрольИзмененияРолейПользователяИБ/Module.bsl b/SSL/src/CommonForms/КонтрольИзмененияРолейПользователяИБ/Module.bsl index 244ec361c..eec837aed 100644 --- a/SSL/src/CommonForms/КонтрольИзмененияРолейПользователяИБ/Module.bsl +++ b/SSL/src/CommonForms/КонтрольИзмененияРолейПользователяИБ/Module.bsl @@ -1,5 +1,5 @@ /////////////////////////////////////////////////////////////////////////////////////////////////////// -// Copyright (c) 2024, ООО 1С-Софт +// Copyright (c) 2025, ООО 1С-Софт // Все права защищены. Эта программа и сопроводительные материалы предоставляются // в соответствии с условиями лицензии Attribution 4.0 International (CC BY 4.0) // Текст лицензии доступен по ссылке: diff --git a/SSL/src/CommonForms/МастерАнкетыПоРазделам/Module.bsl b/SSL/src/CommonForms/МастерАнкетыПоРазделам/Module.bsl index 37013ffb6..c71d2b3c4 100644 --- a/SSL/src/CommonForms/МастерАнкетыПоРазделам/Module.bsl +++ b/SSL/src/CommonForms/МастерАнкетыПоРазделам/Module.bsl @@ -1,5 +1,5 @@ /////////////////////////////////////////////////////////////////////////////////////////////////////// -// Copyright (c) 2024, ООО 1С-Софт +// Copyright (c) 2025, ООО 1С-Софт // Все права защищены. Эта программа и сопроводительные материалы предоставляются // в соответствии с условиями лицензии Attribution 4.0 International (CC BY 4.0) // Текст лицензии доступен по ссылке: diff --git a/SSL/src/CommonForms/МониторСинхронизацииДанныхВМоделиСервиса/Module.bsl b/SSL/src/CommonForms/МониторСинхронизацииДанныхВМоделиСервиса/Module.bsl index 961c702b4..7b73aa623 100644 --- a/SSL/src/CommonForms/МониторСинхронизацииДанныхВМоделиСервиса/Module.bsl +++ b/SSL/src/CommonForms/МониторСинхронизацииДанныхВМоделиСервиса/Module.bsl @@ -1,5 +1,5 @@ /////////////////////////////////////////////////////////////////////////////////////////////////////// -// Copyright (c) 2024, ООО 1С-Софт +// Copyright (c) 2025, ООО 1С-Софт // Все права защищены. Эта программа и сопроводительные материалы предоставляются // в соответствии с условиями лицензии Attribution 4.0 International (CC BY 4.0) // Текст лицензии доступен по ссылке: diff --git a/SSL/src/CommonForms/НапоминаниеПриРедактировании/Module.bsl b/SSL/src/CommonForms/НапоминаниеПриРедактировании/Module.bsl index b9fbfa1a5..082d9c68c 100644 --- a/SSL/src/CommonForms/НапоминаниеПриРедактировании/Module.bsl +++ b/SSL/src/CommonForms/НапоминаниеПриРедактировании/Module.bsl @@ -1,5 +1,5 @@ /////////////////////////////////////////////////////////////////////////////////////////////////////// -// Copyright (c) 2024, ООО 1С-Софт +// Copyright (c) 2025, ООО 1С-Софт // Все права защищены. Эта программа и сопроводительные материалы предоставляются // в соответствии с условиями лицензии Attribution 4.0 International (CC BY 4.0) // Текст лицензии доступен по ссылке: diff --git a/SSL/src/CommonForms/НастройкаДоступаКСервисуMorpher/Module.bsl b/SSL/src/CommonForms/НастройкаДоступаКСервисуMorpher/Module.bsl index 978afe2a9..1c4f0d0db 100644 --- a/SSL/src/CommonForms/НастройкаДоступаКСервисуMorpher/Module.bsl +++ b/SSL/src/CommonForms/НастройкаДоступаКСервисуMorpher/Module.bsl @@ -1,5 +1,5 @@ /////////////////////////////////////////////////////////////////////////////////////////////////////// -// Copyright (c) 2024, ООО 1С-Софт +// Copyright (c) 2025, ООО 1С-Софт // Все права защищены. Эта программа и сопроводительные материалы предоставляются // в соответствии с условиями лицензии Attribution 4.0 International (CC BY 4.0) // Текст лицензии доступен по ссылке: diff --git a/SSL/src/CommonForms/НастройкаКолонтитулов/Module.bsl b/SSL/src/CommonForms/НастройкаКолонтитулов/Module.bsl index 5a4e2c44b..dff912771 100644 --- a/SSL/src/CommonForms/НастройкаКолонтитулов/Module.bsl +++ b/SSL/src/CommonForms/НастройкаКолонтитулов/Module.bsl @@ -1,5 +1,5 @@ /////////////////////////////////////////////////////////////////////////////////////////////////////// -// Copyright (c) 2024, ООО 1С-Софт +// Copyright (c) 2025, ООО 1С-Софт // Все права защищены. Эта программа и сопроводительные материалы предоставляются // в соответствии с условиями лицензии Attribution 4.0 International (CC BY 4.0) // Текст лицензии доступен по ссылке: diff --git a/SSL/src/CommonForms/НастройкаКомандПечати/Module.bsl b/SSL/src/CommonForms/НастройкаКомандПечати/Module.bsl index 278bf1e67..fe3fc3dc7 100644 --- a/SSL/src/CommonForms/НастройкаКомандПечати/Module.bsl +++ b/SSL/src/CommonForms/НастройкаКомандПечати/Module.bsl @@ -1,5 +1,5 @@ /////////////////////////////////////////////////////////////////////////////////////////////////////// -// Copyright (c) 2024, ООО 1С-Софт +// Copyright (c) 2025, ООО 1С-Софт // Все права защищены. Эта программа и сопроводительные материалы предоставляются // в соответствии с условиями лицензии Attribution 4.0 International (CC BY 4.0) // Текст лицензии доступен по ссылке: diff --git a/SSL/src/CommonForms/НастройкаМоихОтчетовИОбработок/Module.bsl b/SSL/src/CommonForms/НастройкаМоихОтчетовИОбработок/Module.bsl index 3ed62eaf5..89d88f72c 100644 --- a/SSL/src/CommonForms/НастройкаМоихОтчетовИОбработок/Module.bsl +++ b/SSL/src/CommonForms/НастройкаМоихОтчетовИОбработок/Module.bsl @@ -1,5 +1,5 @@ /////////////////////////////////////////////////////////////////////////////////////////////////////// -// Copyright (c) 2024, ООО 1С-Софт +// Copyright (c) 2025, ООО 1С-Софт // Все права защищены. Эта программа и сопроводительные материалы предоставляются // в соответствии с условиями лицензии Attribution 4.0 International (CC BY 4.0) // Текст лицензии доступен по ссылке: diff --git a/SSL/src/CommonForms/НастройкаОтправкиSMS/Module.bsl b/SSL/src/CommonForms/НастройкаОтправкиSMS/Module.bsl index a5fe0bd36..b8fc73a94 100644 --- a/SSL/src/CommonForms/НастройкаОтправкиSMS/Module.bsl +++ b/SSL/src/CommonForms/НастройкаОтправкиSMS/Module.bsl @@ -1,5 +1,5 @@ /////////////////////////////////////////////////////////////////////////////////////////////////////// -// Copyright (c) 2024, ООО 1С-Софт +// Copyright (c) 2025, ООО 1С-Софт // Все права защищены. Эта программа и сопроводительные материалы предоставляются // в соответствии с условиями лицензии Attribution 4.0 International (CC BY 4.0) // Текст лицензии доступен по ссылке: diff --git a/SSL/src/CommonForms/НастройкаПереводаТекста/Module.bsl b/SSL/src/CommonForms/НастройкаПереводаТекста/Module.bsl index b9a2f6ba0..fa11f4827 100644 --- a/SSL/src/CommonForms/НастройкаПереводаТекста/Module.bsl +++ b/SSL/src/CommonForms/НастройкаПереводаТекста/Module.bsl @@ -1,5 +1,5 @@ /////////////////////////////////////////////////////////////////////////////////////////////////////// -// Copyright (c) 2024, ООО 1С-Софт +// Copyright (c) 2025, ООО 1С-Софт // Все права защищены. Эта программа и сопроводительные материалы предоставляются // в соответствии с условиями лицензии Attribution 4.0 International (CC BY 4.0) // Текст лицензии доступен по ссылке: diff --git a/SSL/src/CommonForms/НастройкаРабочегоКаталога/Module.bsl b/SSL/src/CommonForms/НастройкаРабочегоКаталога/Module.bsl index 20ad90559..27bceba51 100644 --- a/SSL/src/CommonForms/НастройкаРабочегоКаталога/Module.bsl +++ b/SSL/src/CommonForms/НастройкаРабочегоКаталога/Module.bsl @@ -1,5 +1,5 @@ /////////////////////////////////////////////////////////////////////////////////////////////////////// -// Copyright (c) 2024, ООО 1С-Софт +// Copyright (c) 2025, ООО 1С-Софт // Все права защищены. Эта программа и сопроводительные материалы предоставляются // в соответствии с условиями лицензии Attribution 4.0 International (CC BY 4.0) // Текст лицензии доступен по ссылке: diff --git a/SSL/src/CommonForms/НастройкиВходаПользователей/Module.bsl b/SSL/src/CommonForms/НастройкиВходаПользователей/Module.bsl index 497c9951f..76f9e44bc 100644 --- a/SSL/src/CommonForms/НастройкиВходаПользователей/Module.bsl +++ b/SSL/src/CommonForms/НастройкиВходаПользователей/Module.bsl @@ -1,5 +1,5 @@ /////////////////////////////////////////////////////////////////////////////////////////////////////// -// Copyright (c) 2024, ООО 1С-Софт +// Copyright (c) 2025, ООО 1С-Софт // Все права защищены. Эта программа и сопроводительные материалы предоставляются // в соответствии с условиями лицензии Attribution 4.0 International (CC BY 4.0) // Текст лицензии доступен по ссылке: diff --git a/SSL/src/CommonForms/НастройкиПравОбъектов/Module.bsl b/SSL/src/CommonForms/НастройкиПравОбъектов/Module.bsl index 3c80e84e1..ae7598f5f 100644 --- a/SSL/src/CommonForms/НастройкиПравОбъектов/Module.bsl +++ b/SSL/src/CommonForms/НастройкиПравОбъектов/Module.bsl @@ -1,5 +1,5 @@ /////////////////////////////////////////////////////////////////////////////////////////////////////// -// Copyright (c) 2024, ООО 1С-Софт +// Copyright (c) 2025, ООО 1С-Софт // Все права защищены. Эта программа и сопроводительные материалы предоставляются // в соответствии с условиями лицензии Attribution 4.0 International (CC BY 4.0) // Текст лицензии доступен по ссылке: @@ -10,9 +10,11 @@ &НаСервере Процедура ПриСозданииНаСервере(Отказ, СтандартнаяОбработка) - + УстановитьУсловноеОформление(); + УправлениеДоступомСлужебный.ПроверитьОграничениеДоступаОтключено(); + СсылкаНаОбъект = Параметры.СсылкаНаОбъект; Если Не ЗначениеЗаполнено(СсылкаНаОбъект) Тогда ВызватьИсключение НСтр("ru = 'Не указан владелец настроек прав.'"); diff --git a/SSL/src/CommonForms/НастройкиРегистрацииСобытийДоступаКДанным/Module.bsl b/SSL/src/CommonForms/НастройкиРегистрацииСобытийДоступаКДанным/Module.bsl index 629050a33..5cc987a0c 100644 --- a/SSL/src/CommonForms/НастройкиРегистрацииСобытийДоступаКДанным/Module.bsl +++ b/SSL/src/CommonForms/НастройкиРегистрацииСобытийДоступаКДанным/Module.bsl @@ -1,5 +1,5 @@ /////////////////////////////////////////////////////////////////////////////////////////////////////// -// Copyright (c) 2024, ООО 1С-Софт +// Copyright (c) 2025, ООО 1С-Софт // Все права защищены. Эта программа и сопроводительные материалы предоставляются // в соответствии с условиями лицензии Attribution 4.0 International (CC BY 4.0) // Текст лицензии доступен по ссылке: diff --git a/SSL/src/CommonForms/НастройкиРегистрацииСобытийДоступаКПерсональнымДанным/Module.bsl b/SSL/src/CommonForms/НастройкиРегистрацииСобытийДоступаКПерсональнымДанным/Module.bsl index 430b30255..fdbb39baf 100644 --- a/SSL/src/CommonForms/НастройкиРегистрацииСобытийДоступаКПерсональнымДанным/Module.bsl +++ b/SSL/src/CommonForms/НастройкиРегистрацииСобытийДоступаКПерсональнымДанным/Module.bsl @@ -1,5 +1,5 @@ /////////////////////////////////////////////////////////////////////////////////////////////////////// -// Copyright (c) 2024, ООО 1С-Софт +// Copyright (c) 2025, ООО 1С-Софт // Все права защищены. Эта программа и сопроводительные материалы предоставляются // в соответствии с условиями лицензии Attribution 4.0 International (CC BY 4.0) // Текст лицензии доступен по ссылке: diff --git a/SSL/src/CommonForms/НастройкиСинхронизацииДанных/Form.form b/SSL/src/CommonForms/НастройкиСинхронизацииДанных/Form.form index cb77c51ca..dba49adaf 100644 --- a/SSL/src/CommonForms/НастройкиСинхронизацииДанных/Form.form +++ b/SSL/src/CommonForms/НастройкиСинхронизацииДанных/Form.form @@ -3824,7 +3824,7 @@ </columns> <columns> <name>ТекущееДействиеУзла</name> - <id>41</id> + <id>40</id> <valueType> <types>String</types> <stringQualifiers/> diff --git a/SSL/src/CommonForms/НастройкиСинхронизацииДанных/Module.bsl b/SSL/src/CommonForms/НастройкиСинхронизацииДанных/Module.bsl index 498741f1f..ff831e858 100644 --- a/SSL/src/CommonForms/НастройкиСинхронизацииДанных/Module.bsl +++ b/SSL/src/CommonForms/НастройкиСинхронизацииДанных/Module.bsl @@ -1,5 +1,5 @@ /////////////////////////////////////////////////////////////////////////////////////////////////////// -// Copyright (c) 2024, ООО 1С-Софт +// Copyright (c) 2025, ООО 1С-Софт // Все права защищены. Эта программа и сопроводительные материалы предоставляются // в соответствии с условиями лицензии Attribution 4.0 International (CC BY 4.0) // Текст лицензии доступен по ссылке: diff --git a/SSL/src/CommonForms/НастройкиЭлектроннойПодписиИШифрования/Form.form b/SSL/src/CommonForms/НастройкиЭлектроннойПодписиИШифрования/Form.form index bdbb0ff7f..01f5c2228 100644 --- a/SSL/src/CommonForms/НастройкиЭлектроннойПодписиИШифрования/Form.form +++ b/SSL/src/CommonForms/НастройкиЭлектроннойПодписиИШифрования/Form.form @@ -254,7 +254,7 @@ </userVisible> <title> <key>ru</key> - <value>Сертификаты отбор</value> + <value>Отбор сертификатов</value> ГруппаСертификатыОтборРасширеннаяПодсказка @@ -268,7 +268,7 @@ UsualGroup - AlwaysHorizontal + HorizontalIfPossible true true Auto @@ -3066,6 +3066,37 @@ СтраницаНастройки 44 + + ПодписантыСервисаМобильнойПодписи + 507 + + <key>ru</key> + <value>Подписанты в мобильном приложении</value> + + true + + true + + + ПодписантыСервисаМобильнойПодписиРасширеннаяПодсказка + 508 + Label + true + true + + Left + + + Hyperlink + Catalog.ПодписантыСервисаМобильнойПодписи.Command.ПодписантыСервисаМобильнойПодписи + Normal + Auto + true + true + UserCmds + Balloon + Auto + РасширениеДляЗашифрованныхФайлов 9 diff --git a/SSL/src/CommonForms/НастройкиЭлектроннойПодписиИШифрования/Help/ru.html b/SSL/src/CommonForms/НастройкиЭлектроннойПодписиИШифрования/Help/ru.html index 9eeb64ba7..c8cd0e936 100644 --- a/SSL/src/CommonForms/НастройкиЭлектроннойПодписиИШифрования/Help/ru.html +++ b/SSL/src/CommonForms/НастройкиЭлектроннойПодписиИШифрования/Help/ru.html @@ -7,38 +7,44 @@

              В случае использования распределенной информационной базы большую часть настроек можно изменить только в главном узле.

              Для автоматического определения приложения для работы с сертификатом может понадобиться установка компоненты ExtraCryptoAPI. Установить компоненту можно через меню Еще - Установить компоненту ExtraCryptoAPI.

              Для работы в веб-клиенте (первичной настройки) требуется установить все необходимые расширения и компоненты в специальной форме Начало работы с электронной подписью с помощью кнопки Установить все.

              +

              Сертификаты

              -
              • Показывает все сертификаты, которые используются для подписания и шифрования данных, а также заявления на выпуск нового сертификата. -
              • -
              • Можно установить отбор только своих сертификатов в поле Показать. По умолчанию показываются все сертификаты. -
              • -
              • Предусмотрен отбор по полю Состояние заявления ("Любое", "Не подготовлено", "Подготовлено", "Отправлено", "Отклонено", "Исполнено, сертификат не установлен", "Исполнено"). -
              • +
                • Показывает все сертификаты, которые используются для подписания и шифрования данных, а также заявления на выпуск нового сертификата.
                • +
                • Можно установить отбор только своих сертификатов в поле Показать. По умолчанию показываются все сертификаты.
                • +
                • Предусмотрен отбор по полю Состояние заявления ("Любое", "Не подготовлено", "Подготовлено", "Отправлено", "Отклонено", "Исполнено, сертификат не установлен", "Исполнено").
                • Сертификат можно Добавить из числа установленных на компьютере. Также это можно сделать в процессе подписания или шифрования данных. Выберите нужное действие с помощью переключателя, нажмите Добавить.
                • -
                  • Сертификат только для шифрования можно Добавить из файла. Выберите нужное действие и перейдите по ссылке, укажите путь к файлу или каталогу на компьютере.
                • Также с помощью кнопки Выпустить сертификт можно подготовить Заявление на выпуск нового сертификата. -
                • +
                  • Сертификат только для шифрования можно Добавить из файла. Выберите нужное действие и перейдите по ссылке, укажите путь к файлу или каталогу на компьютере.
                  • +
                • Также с помощью кнопки Выпустить сертификат можно подготовить Заявление на выпуск нового сертификата.
                • Выпустить повторно сертификат, у которого закончился срок действия можно с помощью кнопки Перевыпустить (cкопировать, F9).
                • Для анализа сертификатов сотрудников и контроля своевременного обновления сертификатов можно воспользоваться кнопкой Отчеты для того, чтобы открыть список доступных вариантов отчета.
                • -
                • Просмотреть сертификат или заявление на выпуск нового сертификата можно, дважды щелкнув по нему мышью. Также можно это сделать с помощью команды Изменить контекстного меню по правой кнопке мыши или меню Еще.

                Приложения и токены

                -
                • Содержит список настроенных приложений и токенов, которые будут использованы в приложении (в том числе во всех узлах распределенной ИБ).
                • -
                • Данные приложения не обязательно должны быть установлены на всех компьютерах. Более того, установка более одного приложения на одном компьютере может вызвать конфликты между ними.
                • +
                • Просмотреть сертификат или заявление на выпуск нового сертификата можно, дважды щелкнув по нему мышью. Также можно это сделать с помощью команды Изменить контекстного меню по правой кнопке мыши или меню Еще.
                • +

                Приложения и токены

                +
                • Содержит список настроенных приложений и токенов, которые будут использованы в приложении (в том числе во всех узлах распределенной ИБ).
                • +
                • Для добавления нового приложения нажмите кнопку Добавить. В открывшемся окне выберите один из вариантов:
                • +
                  • Приложение электронной подписи на компьютере - выбор и настройка криптопровайдера, установленного на компьютере (например, ViPNet CSP, КриптоПро CSP).
                  • +
                  • Учетная запись сервиса DSS - настройка подключения к сервису облачной электронной подписи (DSS).
                  • +
                  • Настройка отправки в Госключ - настройка для отправки документов на подписание в мобильное приложение «Госключ».
                  • +
                • Данные приложения не обязательно должны быть установлены на всех компьютерах. Более того, установка более одного приложения на одном компьютере может вызвать конфликты между ними.
                • Если приложение ранее не было установлено, то после установки компоненты откроется форма Приложения электронной подписи и шифрования, где можно будет выбрать и установить необходимое приложение, например ViPNet CSP или КриптоПро CSP, или токен, например Рутокен ЭЦП или JaCarta для работы с УКЭП.
                • По кнопке также можно перейти на домашние страницы других приложений, соответствующих стандартам безопасности(например, Signal-COM CSP).
                • Если требуется использовать приложение отличную от известных, тогда нужно указать ее имя, тип и алгоритмы, как указано в инструкции, поставляемой ее производителем.
                • -
                • Для предприятий, которые работают с ЕГАИС можно создавать аппаратные неизвлекаемые ключи на носителе Рутокен ЭЦП или JaCarta. Для работы с токенами необходимо установить программное обеспечение с сайта производителя токена, а для создания подписей с помощью Рутокен ЭЦП требуется также установить библиотеку с сайта производителя.
                • +
                • Для предприятий, которые работают с ЕГАИС можно создавать аппаратные неизвлекаемые ключи на носителе Рутокен ЭЦП или JaCarta. Для работы с токенами необходимо установить программное обеспечение с сайта производителя токена, а для создания подписей с помощью Рутокен ЭЦП требуется также установить библиотеку с сайта производителя.
                • В колонке Результат проверки отражаются сведения, по которым можно понять установлено ли приложение или токен на компьютер или нет, или же установлено, но некорректно.
                • -
                • Linux: Путь к приложению (<Имя приложения, соответствующей выделенной строке в списке>) - поле, которое требуется обязательно заполнять на компьютерах под управлением ОС Linux.
                • -
                • В нижней части списка расположена ссылка Инструкция по работе с приложениями электронной подписи и шифрования.

                Дополнительно

                -

                -
                • Задайте расширение для зашифрованных файлов при отправке по почте, при выполнении команды Сохранить как и при экспорте папки (по умолчанию .p7m);
                • +
                • Linux: Путь к приложению (<Имя приложения, соответствующей выделенной строке в списке>) - поле, которое требуется обязательно заполнять на компьютерах под управлением ОС Linux.
                • +
                • В нижней части списка расположена ссылка Инструкция по работе с приложениями электронной подписи и шифрования.
                • +

                Дополнительно

                +
                • Для того чтобы попасть в список Подписантов сервиса мобильной подписи перейдите по гиперссылке. 
                • +
                • Задайте расширение для зашифрованных файлов при отправке по почте, при выполнении команды Сохранить как и при экспорте папки (по умолчанию .p7m);
                • Напишите расширение для файлов подписи (по умолчанию .p7s);
                • -
                • С помощью переключателя При сохранении данных в файл вместе с электронной подписью задайте поведение приложения:
                • -
                  • Сохранять все подписи - все подписи сохраняются
                  • -
                  • Спрашивать - выбор сохраняемых подписей осуществляется из списка.
                  • -
                  • Включите флажок Сохранить сертификат для сохранения на компьютер сертификата вместе с файлом и электронной подписью.
                -

                -

                -

                Машиночитаемые доверенности (единый формат)

                -

                Легенда

                -
                • Для того чтобы посмотреть состояние сертификатов нажмите раздел Легенда в нижней части списка.

                См. также:

                -
                • Перейдите по этой ссылке в соответствующий раздел 1С:ИТС, если имеются вопросы.
                \ No newline at end of file +
              • С помощью переключателя При сохранении данных в файл вместе с электронной подписью задайте поведение приложения:
              • +
                • Сохранять все подписи - все подписи сохраняются;
                • +
                • Спрашивать - выбор сохраняемых подписей осуществляется из списка;
                • +
                • Включите флажок Сохранить сертификат для сохранения на компьютер сертификата вместе с файлом и электронной подписью.
                • +

              Машиночитаемые доверенности (единый формат)

              +

              Легенда

              +
              • Для того чтобы посмотреть состояние сертификатов нажмите раздел Легенда в нижней части списка.
              • +

              См. также:

              +
              • Перейдите по этой ссылке в соответствующий раздел 1С:ИТС, если имеются вопросы.
              • +
              • Работа с формами.
              • +
              \ No newline at end of file diff --git a/SSL/src/CommonForms/НастройкиЭлектроннойПодписиИШифрования/Module.bsl b/SSL/src/CommonForms/НастройкиЭлектроннойПодписиИШифрования/Module.bsl index 687a4b276..3398f7971 100644 --- a/SSL/src/CommonForms/НастройкиЭлектроннойПодписиИШифрования/Module.bsl +++ b/SSL/src/CommonForms/НастройкиЭлектроннойПодписиИШифрования/Module.bsl @@ -1,5 +1,5 @@ /////////////////////////////////////////////////////////////////////////////////////////////////////// -// Copyright (c) 2024, ООО 1С-Софт +// Copyright (c) 2025, ООО 1С-Софт // Все права защищены. Эта программа и сопроводительные материалы предоставляются // в соответствии с условиями лицензии Attribution 4.0 International (CC BY 4.0) // Текст лицензии доступен по ссылке: @@ -123,8 +123,7 @@ Элементы.ДобавитьЗаявлениеНаВыпускСертификата.Видимость = Ложь; КонецЕсли; - ЕстьПравоНаДобавлениеСертификатов = - ПравоДоступа("Добавление", Метаданные.Справочники.СертификатыКлючейЭлектроннойПодписиИШифрования); + ЕстьПравоНаДобавлениеСертификатов = ЭлектроннаяПодписьСлужебный.ЕстьПравоНаДобавлениеСертификатовВСправочник(); СвойстваСписка = ОбщегоНазначения.СтруктураСвойствДинамическогоСписка(); СвойстваСписка.ТекстЗапроса = ТекстЗапроса; @@ -159,6 +158,11 @@ ЗаполнитьПрограммыИНастройки(); ОбновитьТекущуюВидимостьЭлементов(); + Если ЭлектроннаяПодпись.ИспользоватьСервисМобильнойПодписи() Тогда + ОбщегоНазначенияКлиентСервер.УстановитьСвойствоЭлементаФормы(Элементы, + "ПодписантыСервисаМобильнойПодписи", "Видимость", Истина); + КонецЕсли; + // СтандартныеПодсистемы.ПодключаемыеКоманды Если ОбщегоНазначения.ПодсистемаСуществует("СтандартныеПодсистемы.ПодключаемыеКоманды") Тогда МодульПодключаемыеКоманды = ОбщегоНазначения.ОбщийМодуль("ПодключаемыеКоманды"); @@ -209,11 +213,15 @@ Возврат; КонецЕсли; + СобытияИзмененияНастроекПрограмм = Новый Массив; + СобытияИзмененияНастроекПрограмм.Добавить(ВРег("Запись_ПрограммыЭлектроннойПодписиИШифрования")); + СобытияИзмененияНастроекПрограмм.Добавить(ВРег("Запись_ПутиКПрограммамЭлектроннойПодписиИШифрованияНаСерверахLinux")); + СобытияИзмененияНастроекПрограмм.Добавить(ВРег("Запись_ЛичныеНастройкиЭлектроннойПодписиИШифрования")); + + ЭлектроннаяПодписьКлиентЛокализация.ПриПолученииСобытийИзмененияНастроекПрограмм(СобытияИзмененияНастроекПрограмм); + // При изменении состава или настроек программ. - Если ВРег(ИмяСобытия) = ВРег("Запись_ПрограммыЭлектроннойПодписиИШифрования") - Или ВРег(ИмяСобытия) = ВРег("Запись_ПутиКПрограммамЭлектроннойПодписиИШифрованияНаСерверахLinux") - Или ВРег(ИмяСобытия) = ВРег("Запись_ЛичныеНастройкиЭлектроннойПодписиИШифрования") Тогда - + Если СобытияИзмененияНастроекПрограмм.Найти(ВРег(ИмяСобытия)) <> Неопределено Тогда ПодключитьОбработчикОжидания("ПриИзмененииСоставаИлиНастроекПрограмм", 0.1, Истина); Возврат; КонецЕсли; @@ -478,7 +486,7 @@ Если Запрос = Неопределено Тогда Запрос = Новый Запрос; Запрос.Текст = - "ВЫБРАТЬ + "ВЫБРАТЬ РАЗРЕШЕННЫЕ | СертификатыКлючейЭлектроннойПодписиИШифрованияПользователи.Ссылка КАК Ссылка, | СертификатыКлючейЭлектроннойПодписиИШифрованияПользователи.Пользователь КАК Пользователь, | Представление(СертификатыКлючейЭлектроннойПодписиИШифрованияПользователи.Пользователь) КАК ПользовательПредставление @@ -540,12 +548,15 @@ Отказ = Истина; Если Элементы.Программы.ИзменятьСоставСтрок Тогда - Если ЭлектроннаяПодписьСлужебныйКлиент.ИспользоватьСервисОблачнойПодписи() Тогда - МодульСервисКриптографииDSSКлиент = ОбщегоНазначенияКлиент.ОбщийМодуль("СервисКриптографииDSSКлиент"); - МодульСервисКриптографииDSSКлиент.ДобавлениеПрограммыЭлектроннойПодписи(Неопределено); - Иначе - ЭлектроннаяПодписьСлужебныйКлиент.ОткрытьФормуПрограммы(); + + СтандартнаяОбработка = Истина; + ЭлектроннаяПодписьКлиентЛокализация.ПриДобавленииПриложенияЭлектроннойПодписи(СтандартнаяОбработка); + Если Не СтандартнаяОбработка Тогда + Возврат; КонецЕсли; + + ЭлектроннаяПодписьСлужебныйКлиент.ОткрытьФормуПрограммы(); + КонецЕсли; КонецПроцедуры @@ -1030,42 +1041,43 @@ &НаСервере Процедура ИзменитьПометкуУдаленияПрограммы(Программа) - Если ТипЗнч(Программа) = ЭлектроннаяПодписьСлужебный.ТипПрограммыСервисаПодписи() Тогда - МодульСервисКриптографииDSSСлужебный = ОбщегоНазначения.ОбщийМодуль("СервисКриптографииDSSСлужебный"); - МодульСервисКриптографииDSSСлужебный.ИзменитьПометкуУдаленияПрограммы(Программа, УникальныйИдентификатор); - - Иначе - ЗаблокироватьДанныеДляРедактирования(Программа, , УникальныйИдентификатор); - - Блокировка = Новый БлокировкаДанных; - ЭлементБлокировки = Блокировка.Добавить("Справочник.ПрограммыЭлектроннойПодписиИШифрования"); - ЭлементБлокировки.УстановитьЗначение("Ссылка", Программа); - - НачатьТранзакцию(); - Попытка - - Блокировка.Заблокировать(); - - Объект = Программа.ПолучитьОбъект(); - Объект.ПометкаУдаления = Не Объект.ПометкаУдаления; - Если Объект.ПометкаУдаления Тогда - Объект.РежимИспользования = Перечисления.РежимыИспользованияПрограммыЭлектроннойПодписи.НеИспользуется; - Иначе - Объект.РежимИспользования = Перечисления.РежимыИспользованияПрограммыЭлектроннойПодписи.Настроено; - КонецЕсли; - Объект.Записать(); - - ЗафиксироватьТранзакцию(); - - Исключение - ОтменитьТранзакцию(); - РазблокироватьДанныеДляРедактирования(Программа, УникальныйИдентификатор); - ВызватьИсключение; - КонецПопытки; - - РазблокироватьДанныеДляРедактирования(Программа, УникальныйИдентификатор); + СтандартнаяОбработка = Истина; + ЭлектроннаяПодписьЛокализация.ПриИзмененииПометкиУдаленияПриложения(Программа, УникальныйИдентификатор, СтандартнаяОбработка); + Если СтандартнаяОбработка = Ложь Тогда + ЗаполнитьПрограммыИНастройки(Истина); + Возврат; КонецЕсли; - + + ЗаблокироватьДанныеДляРедактирования(Программа,, УникальныйИдентификатор); + + Блокировка = Новый БлокировкаДанных; + ЭлементБлокировки = Блокировка.Добавить("Справочник.ПрограммыЭлектроннойПодписиИШифрования"); + ЭлементБлокировки.УстановитьЗначение("Ссылка", Программа); + + НачатьТранзакцию(); + Попытка + + Блокировка.Заблокировать(); + + Объект = Программа.ПолучитьОбъект(); + Объект.ПометкаУдаления = Не Объект.ПометкаУдаления; + Если Объект.ПометкаУдаления Тогда + Объект.РежимИспользования = Перечисления.РежимыИспользованияПрограммыЭлектроннойПодписи.НеИспользуется; + Иначе + Объект.РежимИспользования = Перечисления.РежимыИспользованияПрограммыЭлектроннойПодписи.Настроено; + КонецЕсли; + Объект.Записать(); + + ЗафиксироватьТранзакцию(); + + Исключение + ОтменитьТранзакцию(); + РазблокироватьДанныеДляРедактирования(Программа, УникальныйИдентификатор); + ВызватьИсключение; + КонецПопытки; + + РазблокироватьДанныеДляРедактирования(Программа, УникальныйИдентификатор); + ЗаполнитьПрограммыИНастройки(Истина); КонецПроцедуры @@ -1266,8 +1278,8 @@ ОбработчикОжиданияОпределитьУстановленныеПрограммыЦиклНачало(Контекст); Возврат; ИначеЕсли ОписаниеПрограммы.ЭтоВстроенныйКриптопровайдер - Или ЭлектроннаяПодписьСлужебныйКлиентСервер.РазмещениеСертификата(ОписаниеПрограммы.ТипРазмещения) = "ОблачнаяПодпись" Тогда - + Или ЭлектроннаяПодписьСлужебныйКлиентСервер.РазмещениеСертификата(ОписаниеПрограммы.ТипРазмещения) = "ОблачнаяПодпись" + Или ОписаниеПрограммы.ИмяПрограммы = "Госключ" Тогда ОбновитьЗначение(ОписаниеПрограммы.РезультатПроверки, НСтр("ru = 'Доступен.'")); ОбновитьЗначение(ОписаниеПрограммы.Установлена, Истина); ОбработчикОжиданияОпределитьУстановленныеПрограммыЦиклНачало(Контекст); @@ -1397,10 +1409,19 @@ Процедура ПослеПроверкиПрограммКриптографии(Результат, Оповещение) Экспорт Если Не Результат.ПроверкаВыполнена Тогда +#Если МобильныйКлиент Или МобильноеПриложениеКлиент Тогда + СтандартнаяОбработка = Истина; + ЭлектроннаяПодписьКлиентЛокализация.ПриПолученииТокенов( + Новый ОписаниеОповещения("ПослеПолученияТокеновВМобильномКлиенте", ЭтотОбъект, Оповещение), Ложь, СтандартнаяОбработка); + Если Не СтандартнаяОбработка Тогда + Возврат; + КонецЕсли; +#Иначе Элементы.ГруппаПодсказкаКриптопровайдеры.Видимость = Истина; Элементы.ДекорацияПроверкаУстановкиКриптопровайдера.Заголовок = СтроковыеФункцииКлиент.ФорматированнаяСтрока( НСтр("ru = 'Нажмите здесь, чтобы увидеть все приложения для работы с электронной подписью, установленные на компьютере.'"), "ПроверитьУстановкуПрограммКриптографии"); +#КонецЕсли ИначеЕсли Результат.ВозможенКонфликт Тогда ЭлектроннаяПодписьКлиентЛокализация.ПриПроверкеКонфликтаПрограммКриптографии(ЭтотОбъект, Результат); Иначе @@ -1436,43 +1457,8 @@ КонецЕсли; КонецЦикла; - - Для Каждого Токен Из Результат.Токены Цикл - - Найдено = Программы.НайтиСтроки(Новый Структура("Наименование",Токен.Представление)); - - Если Найдено.Количество() = 0 Тогда - НоваяСтрока = Программы.Добавить(); - Иначе - НоваяСтрока = Найдено[0]; - КонецЕсли; - - НоваяСтрока.ТипРазмещения = 1; - НоваяСтрока.Автоопределение = Истина; - НоваяСтрока.РежимИспользованияКартинка = -1; - НоваяСтрока.Наименование = Токен.Представление; - НоваяСтрока.ЭтоТокен = Истина; - НоваяСтрока.ИмяПрограммы = Токен.СерийныйНомер; - НоваяСтрока.Слот = Токен.Слот; - НоваяСтрока.Действие = ""; - НоваяСтрока.Параметры = Неопределено; - НоваяСтрока.Подробнее = ""; - НоваяСтрока.РезультатПроверки = ?(ЗначениеЗаполнено(Токен.Ошибка), Токен.Ошибка, НСтр("ru = 'Доступен.'")); - - Если ЗначениеЗаполнено(Токен.Ошибка) Тогда - Если ЭлектроннаяПодписьСлужебныйКлиентСервер.ОшибкаЗагрузкиБиблиотекиТокена(Токен.Ошибка) Тогда - НоваяСтрока.Подробнее = НСтр("ru = 'Установить'") + "..."; - НоваяСтрока.Действие = ЭлектроннаяПодписьСлужебныйКлиентСервер.ДействиеУстановитьБиблиотекиДляТокенов(); - НоваяСтрока.Параметры = Новый Структура("ВидТокена", Токен.Токен); - Иначе - НоваяСтрока.Подробнее = НСтр("ru = 'Подробнее'") + "..."; - КонецЕсли; - КонецЕсли; - - КонецЦикла; - + ЗаполнитьСписокТокенов(Результат.Токены); ЭлектроннаяПодписьКлиентЛокализация.ПриПроверкеУстановленныхПрограммКриптографии(ЭтотОбъект, Результат, ЕстьПроверяемыеПрограммы); - КонецЕсли; Если Оповещение <> Неопределено Тогда @@ -1481,6 +1467,53 @@ КонецПроцедуры +&НаКлиенте +Процедура ПослеПолученияТокеновВМобильномКлиенте(Токены, Оповещение) Экспорт + Если ЗначениеЗаполнено(Токены) Тогда + ЗаполнитьСписокТокенов(Токены); + КонецЕсли; + Если Оповещение <> Неопределено Тогда + ВыполнитьОбработкуОповещения(Оповещение); + КонецЕсли; +КонецПроцедуры + +&НаКлиенте +Процедура ЗаполнитьСписокТокенов(Токены) + Для Каждого Токен Из Токены Цикл + + Найдено = Программы.НайтиСтроки(Новый Структура("Наименование",Токен.Представление)); + + Если Найдено.Количество() = 0 Тогда + НоваяСтрока = Программы.Добавить(); + Иначе + НоваяСтрока = Найдено[0]; + КонецЕсли; + + НоваяСтрока.ТипРазмещения = 1; + НоваяСтрока.Автоопределение = Истина; + НоваяСтрока.РежимИспользованияКартинка = -1; + НоваяСтрока.Наименование = Токен.Представление; + НоваяСтрока.ЭтоТокен = Истина; + НоваяСтрока.ИмяПрограммы = Токен.СерийныйНомер; + НоваяСтрока.Слот = Токен.Слот; + НоваяСтрока.Действие = ""; + НоваяСтрока.Параметры = Неопределено; + НоваяСтрока.Подробнее = ""; + НоваяСтрока.РезультатПроверки = ?(ЗначениеЗаполнено(Токен.Ошибка), Токен.Ошибка, НСтр("ru = 'Доступен.'")); + + Если ЗначениеЗаполнено(Токен.Ошибка) Тогда + Если ЭлектроннаяПодписьСлужебныйКлиентСервер.ОшибкаЗагрузкиБиблиотекиТокена(Токен.Ошибка) Тогда + НоваяСтрока.Подробнее = НСтр("ru = 'Установить'") + "..."; + НоваяСтрока.Действие = ЭлектроннаяПодписьСлужебныйКлиентСервер.ДействиеУстановитьБиблиотекиДляТокенов(); + НоваяСтрока.Параметры = Новый Структура("ВидТокена", Токен.Токен); + Иначе + НоваяСтрока.Подробнее = НСтр("ru = 'Подробнее'") + "..."; + КонецЕсли; + КонецЕсли; + + КонецЦикла; +КонецПроцедуры + &НаСервере Процедура ЗаполнитьПрограммыИНастройки(ОбновитьПовтИсп = Ложь) @@ -1545,10 +1578,7 @@ ТаблицаВыборки = Запрос.Выполнить().Выгрузить(); - Если ЭлектроннаяПодписьСлужебный.ИспользоватьСервисОблачнойПодписи() Тогда - МодульСервисКриптографииDSSСлужебный = ОбщегоНазначения.ОбщийМодуль("СервисКриптографииDSSСлужебный"); - МодульСервисКриптографииDSSСлужебный.ДополнитьВыборкуПрограмм(ТаблицаВыборки); - КонецЕсли; + ЭлектроннаяПодписьЛокализация.ПриЗаполненииПриложенийЭлектроннойПодписи(ТаблицаВыборки); ТаблицаВыборки.Колонки.Добавить("ПутьКПрограммеНаСервереАвто", Новый ОписаниеТипов("Строка")); ТаблицаВыборки.Колонки.Добавить("РезультатПроверкиНаСервере", Новый ОписаниеТипов("Строка")); @@ -1656,11 +1686,13 @@ ОбновитьЗначение(Строка.РежимИспользованияКартинка, 0); КонецЕсли; - Если Строка.ЭтоВстроенныйКриптопровайдер И Не Строка.ПометкаУдаления Тогда - ОбновитьЗначение(Строка.РезультатПроверки, НСтр("ru = 'Доступен.'")); - ОбновитьЗначение(Строка.Установлена, Истина); - ИначеЕсли ЭлектроннаяПодписьСлужебныйКлиентСервер.РазмещениеСертификата(СтрокаВыборки.ТипРазмещения) = "ОблачнаяПодпись" - И Не Строка.ПометкаУдаления Или СтрокаВыборки.ТипРазмещения = 5 Тогда + Структура = Новый Структура; + ЭлектроннаяПодписьКлиентСерверЛокализация.ПриОпределенииДоступностиПриложения(СтрокаВыборки, Структура); + Если ЗначениеЗаполнено(Структура) Тогда + Для Каждого КлючИЗначение Из Структура Цикл + ОбновитьЗначение(Строка[КлючИЗначение.Ключ], КлючИЗначение.Значение); + КонецЦикла; + ИначеЕсли Строка.ЭтоВстроенныйКриптопровайдер И Не Строка.ПометкаУдаления Тогда ОбновитьЗначение(Строка.РезультатПроверки, НСтр("ru = 'Доступен.'")); ОбновитьЗначение(Строка.Установлена, Истина); ИначеЕсли Строка.ТипРазмещения = 1 И (Настройки.ПроверятьЭлектронныеПодписиНаСервере Или Настройки.СоздаватьЭлектронныеПодписиНаСервере) Тогда diff --git a/SSL/src/CommonForms/НачалоРаботыСЭлектроннойПодписью/Module.bsl b/SSL/src/CommonForms/НачалоРаботыСЭлектроннойПодписью/Module.bsl index 5cc674b55..a78d8b642 100644 --- a/SSL/src/CommonForms/НачалоРаботыСЭлектроннойПодписью/Module.bsl +++ b/SSL/src/CommonForms/НачалоРаботыСЭлектроннойПодписью/Module.bsl @@ -1,5 +1,5 @@ /////////////////////////////////////////////////////////////////////////////////////////////////////// -// Copyright (c) 2024, ООО 1С-Софт +// Copyright (c) 2025, ООО 1С-Софт // Все права защищены. Эта программа и сопроводительные материалы предоставляются // в соответствии с условиями лицензии Attribution 4.0 International (CC BY 4.0) // Текст лицензии доступен по ссылке: diff --git a/SSL/src/CommonForms/НовыйПароль/Module.bsl b/SSL/src/CommonForms/НовыйПароль/Module.bsl index 6d0bedc21..8c9dec3d3 100644 --- a/SSL/src/CommonForms/НовыйПароль/Module.bsl +++ b/SSL/src/CommonForms/НовыйПароль/Module.bsl @@ -1,5 +1,5 @@ /////////////////////////////////////////////////////////////////////////////////////////////////////// -// Copyright (c) 2024, ООО 1С-Софт +// Copyright (c) 2025, ООО 1С-Софт // Все права защищены. Эта программа и сопроводительные материалы предоставляются // в соответствии с условиями лицензии Attribution 4.0 International (CC BY 4.0) // Текст лицензии доступен по ссылке: diff --git a/SSL/src/CommonForms/ОписаниеИзмененийПрограммы/Module.bsl b/SSL/src/CommonForms/ОписаниеИзмененийПрограммы/Module.bsl index 60d04d884..c1ab0d929 100644 --- a/SSL/src/CommonForms/ОписаниеИзмененийПрограммы/Module.bsl +++ b/SSL/src/CommonForms/ОписаниеИзмененийПрограммы/Module.bsl @@ -1,5 +1,5 @@ /////////////////////////////////////////////////////////////////////////////////////////////////////// -// Copyright (c) 2024, ООО 1С-Софт +// Copyright (c) 2025, ООО 1С-Софт // Все права защищены. Эта программа и сопроводительные материалы предоставляются // в соответствии с условиями лицензии Attribution 4.0 International (CC BY 4.0) // Текст лицензии доступен по ссылке: diff --git a/SSL/src/CommonForms/ОтключениеАвтономногоРабочегоМеста/Module.bsl b/SSL/src/CommonForms/ОтключениеАвтономногоРабочегоМеста/Module.bsl index 701e35ac3..a97c8b8aa 100644 --- a/SSL/src/CommonForms/ОтключениеАвтономногоРабочегоМеста/Module.bsl +++ b/SSL/src/CommonForms/ОтключениеАвтономногоРабочегоМеста/Module.bsl @@ -1,5 +1,5 @@ /////////////////////////////////////////////////////////////////////////////////////////////////////// -// Copyright (c) 2024, ООО 1С-Софт +// Copyright (c) 2025, ООО 1С-Софт // Все права защищены. Эта программа и сопроводительные материалы предоставляются // в соответствии с условиями лицензии Attribution 4.0 International (CC BY 4.0) // Текст лицензии доступен по ссылке: @@ -400,8 +400,7 @@ КонецПроцедуры -//////////////////////////////////////////////////////////////////////////////// -// Переопределяемая часть - Служебные процедуры и функции +#Область ПереопределяемаяЧастьСлужебныеПроцедурыИФункции &НаСервере Процедура УдалитьАвтономноеРабочееМесто(Отказ, СообщениеОбОшибке = "") @@ -439,8 +438,9 @@ КонецПроцедуры -//////////////////////////////////////////////////////////////////////////////// -// Переопределяемая часть - Обработчики событий переходов +#КонецОбласти + +#Область ПереопределяемаяЧастьОбработчикиСобытийПереходов &НаКлиенте Функция Подключаемый_Ожидание_ОбработкаДлительнойОперации(Отказ, ПерейтиДалее) @@ -498,8 +498,9 @@ КонецФункции -//////////////////////////////////////////////////////////////////////////////// -// Переопределяемая часть - Инициализация переходов помощника +#КонецОбласти + +#Область ПереопределяемаяЧастьИнициализацияПереходовПомощника &НаСервере Процедура УстановитьОсновнойСценарий() @@ -525,3 +526,5 @@ КонецПроцедуры #КонецОбласти + +#КонецОбласти \ No newline at end of file diff --git a/SSL/src/CommonForms/ОтправкаSMS/Module.bsl b/SSL/src/CommonForms/ОтправкаSMS/Module.bsl index e33ea559d..80468ccaf 100644 --- a/SSL/src/CommonForms/ОтправкаSMS/Module.bsl +++ b/SSL/src/CommonForms/ОтправкаSMS/Module.bsl @@ -1,5 +1,5 @@ /////////////////////////////////////////////////////////////////////////////////////////////////////// -// Copyright (c) 2024, ООО 1С-Софт +// Copyright (c) 2025, ООО 1С-Софт // Все права защищены. Эта программа и сопроводительные материалы предоставляются // в соответствии с условиями лицензии Attribution 4.0 International (CC BY 4.0) // Текст лицензии доступен по ссылке: diff --git a/SSL/src/CommonForms/ОтправкаСообщения/Module.bsl b/SSL/src/CommonForms/ОтправкаСообщения/Module.bsl index f9a6587d7..598dcc9f0 100644 --- a/SSL/src/CommonForms/ОтправкаСообщения/Module.bsl +++ b/SSL/src/CommonForms/ОтправкаСообщения/Module.bsl @@ -1,5 +1,5 @@ /////////////////////////////////////////////////////////////////////////////////////////////////////// -// Copyright (c) 2024, ООО 1С-Софт +// Copyright (c) 2025, ООО 1С-Софт // Все права защищены. Эта программа и сопроводительные материалы предоставляются // в соответствии с условиями лицензии Attribution 4.0 International (CC BY 4.0) // Текст лицензии доступен по ссылке: @@ -309,21 +309,13 @@ Возврат; КонецЕсли; - Адрес = ПочтовыйАдресИзПредставления(ДанныеСтроки.Представление); - - Если ПустаяСтрока(Адрес) Тогда - Адрес = ДанныеСтроки.Представление; - КонецЕсли; - - Если ПустаяСтрока(Адрес) Тогда - Возврат; - КонецЕсли; - - Если Не ОбщегоНазначенияКлиентСервер.АдресЭлектроннойПочтыСоответствуетТребованиям(Адрес, Истина) Тогда - ПоказатьПредупреждение(, НСтр("ru = 'Введите корректный адрес электронной почты.'")); - Отказ = Истина; - Возврат; - КонецЕсли; + Для Каждого Получатель Из ОбщегоНазначенияКлиентСервер.АдресаЭлектроннойПочтыИзСтроки(ДанныеСтроки.Представление) Цикл + Если Не ПустаяСтрока(Получатель.ОписаниеОшибки) Тогда + ПоказатьПредупреждение(, Получатель.ОписаниеОшибки); + Отказ = Истина; + Возврат; + КонецЕсли; + КонецЦикла; Дубли = Новый Соответствие; Для каждого ПолучательПисьма Из ПочтовыеАдресаПолучателей Цикл diff --git a/SSL/src/CommonForms/ОтчетОСохраненииФайловЭлектронныхПодписей/Module.bsl b/SSL/src/CommonForms/ОтчетОСохраненииФайловЭлектронныхПодписей/Module.bsl index 5b690f52f..36f208134 100644 --- a/SSL/src/CommonForms/ОтчетОСохраненииФайловЭлектронныхПодписей/Module.bsl +++ b/SSL/src/CommonForms/ОтчетОСохраненииФайловЭлектронныхПодписей/Module.bsl @@ -1,5 +1,5 @@ /////////////////////////////////////////////////////////////////////////////////////////////////////// -// Copyright (c) 2024, ООО 1С-Софт +// Copyright (c) 2025, ООО 1С-Софт // Все права защищены. Эта программа и сопроводительные материалы предоставляются // в соответствии с условиями лицензии Attribution 4.0 International (CC BY 4.0) // Текст лицензии доступен по ссылке: diff --git a/SSL/src/CommonForms/ПанельОтчетов/Module.bsl b/SSL/src/CommonForms/ПанельОтчетов/Module.bsl index 2fa2b1429..83ce5ed9b 100644 --- a/SSL/src/CommonForms/ПанельОтчетов/Module.bsl +++ b/SSL/src/CommonForms/ПанельОтчетов/Module.bsl @@ -1,5 +1,5 @@ /////////////////////////////////////////////////////////////////////////////////////////////////////// -// Copyright (c) 2024, ООО 1С-Софт +// Copyright (c) 2025, ООО 1С-Софт // Все права защищены. Эта программа и сопроводительные материалы предоставляются // в соответствии с условиями лицензии Attribution 4.0 International (CC BY 4.0) // Текст лицензии доступен по ссылке: diff --git a/SSL/src/CommonForms/ПараметрыАдминистрированияПрограммы/Module.bsl b/SSL/src/CommonForms/ПараметрыАдминистрированияПрограммы/Module.bsl index 61dda0b06..aaf062149 100644 --- a/SSL/src/CommonForms/ПараметрыАдминистрированияПрограммы/Module.bsl +++ b/SSL/src/CommonForms/ПараметрыАдминистрированияПрограммы/Module.bsl @@ -1,5 +1,5 @@ /////////////////////////////////////////////////////////////////////////////////////////////////////// -// Copyright (c) 2024, ООО 1С-Софт +// Copyright (c) 2025, ООО 1С-Софт // Все права защищены. Эта программа и сопроводительные материалы предоставляются // в соответствии с условиями лицензии Attribution 4.0 International (CC BY 4.0) // Текст лицензии доступен по ссылке: diff --git a/SSL/src/CommonForms/ПараметрыПроксиСервера/Module.bsl b/SSL/src/CommonForms/ПараметрыПроксиСервера/Module.bsl index 370e0b666..5ad252d7a 100644 --- a/SSL/src/CommonForms/ПараметрыПроксиСервера/Module.bsl +++ b/SSL/src/CommonForms/ПараметрыПроксиСервера/Module.bsl @@ -1,5 +1,5 @@ /////////////////////////////////////////////////////////////////////////////////////////////////////// -// Copyright (c) 2024, ООО 1С-Софт +// Copyright (c) 2025, ООО 1С-Софт // Все права защищены. Эта программа и сопроводительные материалы предоставляются // в соответствии с условиями лицензии Attribution 4.0 International (CC BY 4.0) // Текст лицензии доступен по ссылке: @@ -267,7 +267,7 @@ // Изменяем доступность группы редактирования параметров прокси в зависимости // от варианта использования прокси-сервера. Форма.ДоступноРедактирование = (Форма.ВариантИспользованияПроксиСервера = 2); - + Форма.Элементы.ДополнительныеПараметрыПроксиСервера.Видимость = Форма.ВариантИспользованияПроксиСервера <> 0; Форма.Элементы.ГруппаАдресСервера.Доступность = Форма.ДоступноРедактирование; Форма.Элементы.ГруппаАутентификация.Доступность = Форма.ДоступноРедактирование; Форма.Элементы.НеИспользоватьПроксиДляЛокальныхАдресов.Доступность = Форма.ДоступноРедактирование; diff --git a/SSL/src/CommonForms/ПечатьДокументов/Module.bsl b/SSL/src/CommonForms/ПечатьДокументов/Module.bsl index ff136cb23..c4808ce82 100644 --- a/SSL/src/CommonForms/ПечатьДокументов/Module.bsl +++ b/SSL/src/CommonForms/ПечатьДокументов/Module.bsl @@ -1,5 +1,5 @@ /////////////////////////////////////////////////////////////////////////////////////////////////////// -// Copyright (c) 2024, ООО 1С-Софт +// Copyright (c) 2025, ООО 1С-Софт // Все права защищены. Эта программа и сопроводительные материалы предоставляются // в соответствии с условиями лицензии Attribution 4.0 International (CC BY 4.0) // Текст лицензии доступен по ссылке: diff --git a/SSL/src/CommonForms/ПечатьДокументовOfficeOpen/Module.bsl b/SSL/src/CommonForms/ПечатьДокументовOfficeOpen/Module.bsl index 4ade3db0f..ab4a4ae3b 100644 --- a/SSL/src/CommonForms/ПечатьДокументовOfficeOpen/Module.bsl +++ b/SSL/src/CommonForms/ПечатьДокументовOfficeOpen/Module.bsl @@ -1,5 +1,5 @@ /////////////////////////////////////////////////////////////////////////////////////////////////////// -// Copyright (c) 2024, ООО 1С-Софт +// Copyright (c) 2025, ООО 1С-Софт // Все права защищены. Эта программа и сопроводительные материалы предоставляются // в соответствии с условиями лицензии Attribution 4.0 International (CC BY 4.0) // Текст лицензии доступен по ссылке: diff --git a/SSL/src/CommonForms/ПодготовкаНовогоПисьма/Module.bsl b/SSL/src/CommonForms/ПодготовкаНовогоПисьма/Module.bsl index 79dcbd9f3..a9a9bab11 100644 --- a/SSL/src/CommonForms/ПодготовкаНовогоПисьма/Module.bsl +++ b/SSL/src/CommonForms/ПодготовкаНовогоПисьма/Module.bsl @@ -1,5 +1,5 @@ /////////////////////////////////////////////////////////////////////////////////////////////////////// -// Copyright (c) 2024, ООО 1С-Софт +// Copyright (c) 2025, ООО 1С-Софт // Все права защищены. Эта программа и сопроводительные материалы предоставляются // в соответствии с условиями лицензии Attribution 4.0 International (CC BY 4.0) // Текст лицензии доступен по ссылке: diff --git a/SSL/src/CommonForms/ПоддерживаемыеКлиентскиеПриложения/Module.bsl b/SSL/src/CommonForms/ПоддерживаемыеКлиентскиеПриложения/Module.bsl index d1efc61bf..c76a57b11 100644 --- a/SSL/src/CommonForms/ПоддерживаемыеКлиентскиеПриложения/Module.bsl +++ b/SSL/src/CommonForms/ПоддерживаемыеКлиентскиеПриложения/Module.bsl @@ -1,5 +1,5 @@ /////////////////////////////////////////////////////////////////////////////////////////////////////// -// Copyright (c) 2024, ООО 1С-Софт +// Copyright (c) 2025, ООО 1С-Софт // Все права защищены. Эта программа и сопроводительные материалы предоставляются // в соответствии с условиями лицензии Attribution 4.0 International (CC BY 4.0) // Текст лицензии доступен по ссылке: diff --git a/SSL/src/CommonForms/ПользователиСервиса/Module.bsl b/SSL/src/CommonForms/ПользователиСервиса/Module.bsl index c6f0a04a9..77abe3181 100644 --- a/SSL/src/CommonForms/ПользователиСервиса/Module.bsl +++ b/SSL/src/CommonForms/ПользователиСервиса/Module.bsl @@ -1,5 +1,5 @@ /////////////////////////////////////////////////////////////////////////////////////////////////////// -// Copyright (c) 2024, ООО 1С-Софт +// Copyright (c) 2025, ООО 1С-Софт // Все права защищены. Эта программа и сопроводительные материалы предоставляются // в соответствии с условиями лицензии Attribution 4.0 International (CC BY 4.0) // Текст лицензии доступен по ссылке: diff --git a/SSL/src/CommonForms/ПраваДоступа/Form.form b/SSL/src/CommonForms/ПраваДоступа/Form.form index d1d489967..98606fc50 100644 --- a/SSL/src/CommonForms/ПраваДоступа/Form.form +++ b/SSL/src/CommonForms/ПраваДоступа/Form.form @@ -64,6 +64,113 @@ Left
              + + НекорректныйСоставРолейПользователяИБ + 171 + + НекорректныйСоставРолейПользователяИБКартинка + 173 + + <key>ru</key> + <value>Некорректный состав ролей пользователя ИБ (картинка)</value> + + true + true + + true + + + НекорректныйСоставРолейПользователяИБКартинкаРасширеннаяПодсказка + 175 + Label + true + true + + Left + + + + НекорректныйСоставРолейПользователяИБКартинкаКонтекстноеМеню + 174 + true + + true + true + false + + + StdPicture.DialogExclamation + + + + + НекорректныйСоставРолейПользователяИБНадпись + 176 + + <key>ru</key> + <value>Роли пользователя информационной базы отличаются от настроенных.</value> + + true + true + + true + + + НекорректныйСоставРолейПользователяИБНадписьРасширеннаяПодсказка + 178 + Label + true + true + + Left + + + + НекорректныйСоставРолейПользователяИБНадписьКонтекстноеМеню + 177 + true + + Label + true + false + + + URLProcessing + НекорректныйСоставРолейПользователяИБНадписьОбработкаНавигационнойСсылки + + Left + Center + + + true + + true + + + <key>ru</key> + <value>Некорректный состав ролей пользователя ИБ</value> + + + НекорректныйСоставРолейПользователяИБРасширеннаяПодсказка + 172 + Label + true + true + + Left + + + UsualGroup + + AlwaysHorizontal + Center + NormalSeparation + true + true + Auto + Auto + + ГруппыДоступаИРоли 83 @@ -886,6 +993,36 @@ UserCmds Auto + + РолиОтчетПраваРолей + 169 + + <key>ru</key> + <value>Права ролей</value> + + true + true + + true + + + РолиОтчетПраваРолейРасширеннаяПодсказка + 170 + Label + true + true + + Left + + + Form.Command.РолиОтчетПраваРолей + Normal + Auto + true + true + UserCmds + Auto + <key>ru</key> @@ -1340,7 +1477,7 @@ <saveWindowSettings>true</saveWindowSettings> <autoTitle>true</autoTitle> <autoUrl>true</autoUrl> - <group>HorizontalIfPossible</group> + <group>Vertical</group> <autoFillCheck>true</autoFillCheck> <allowFormCustomize>true</allowFormCustomize> <enabled>true</enabled> @@ -1840,6 +1977,28 @@ <currentRowUse>Auto</currentRowUse> <selectedRowsUse>Auto</selectedRowsUse> </formCommands> + <formCommands> + <name>РолиОтчетПраваРолей</name> + <title> + <key>ru</key> + <value>Права ролей</value> + + 5 + + true + + + StdPicture.Report + + + + РолиОтчетПраваРолей + + + TextPicture + Auto + Auto + Пользователь diff --git a/SSL/src/CommonForms/ПраваДоступа/Module.bsl b/SSL/src/CommonForms/ПраваДоступа/Module.bsl index 63fd25ff7..9d9257a1a 100644 --- a/SSL/src/CommonForms/ПраваДоступа/Module.bsl +++ b/SSL/src/CommonForms/ПраваДоступа/Module.bsl @@ -1,5 +1,5 @@ /////////////////////////////////////////////////////////////////////////////////////////////////////// -// Copyright (c) 2024, ООО 1С-Софт +// Copyright (c) 2025, ООО 1С-Софт // Все права защищены. Эта программа и сопроводительные материалы предоставляются // в соответствии с условиями лицензии Attribution 4.0 International (CC BY 4.0) // Текст лицензии доступен по ссылке: @@ -260,12 +260,65 @@ КонецПроцедуры +&НаКлиенте +Процедура РолиОтчетПраваРолей(Команда) + + УправлениеДоступомСлужебныйКлиент.ПоказатьПраваРолейПользователя(РолиПользователя(), + Параметры.Пользователь); + +КонецПроцедуры + #КонецОбласти #КонецОбласти #Область СлужебныеПроцедурыИФункции +&НаКлиенте +Процедура НекорректныйСоставРолейПользователяИБНадписьОбработкаНавигационнойСсылки(Элемент, + НавигационнаяСсылка, СтандартнаяОбработка) + + СтандартнаяОбработка = Ложь; + + Если НавигационнаяСсылка = "ПоказатьРазличияНастроенногоСоставаРолейСРолямиПользователяИБ" Тогда + УправлениеДоступомСлужебныйКлиент.ПоказатьРазличияНастроенногоСоставаРолейСРолямиПользователяИБ( + РазличияНастроенногоСоставаРолейСРолямиПользователяИБ()); + + ИначеЕсли НавигационнаяСсылка = "ОбновитьРолиПользователяИБ" Тогда + ОбновитьРолиПользователяИБ(); + КонецЕсли; + +КонецПроцедуры + +&НаСервере +Функция РазличияНастроенногоСоставаРолейСРолямиПользователяИБ() + + РазличияРолей = УправлениеДоступомСлужебный.РазличияНастроенногоСоставаРолейСРолямиПользователяИБ( + Параметры.Пользователь); + + Если Не ЗначениеЗаполнено(РазличияРолей) Тогда + УправлениеДоступомСлужебный.ВывестиРазличиеРолейПользователя(ЭтотОбъект, Параметры.Пользователь); + КонецЕсли; + + Возврат РазличияРолей; + +КонецФункции + +&НаСервере +Процедура ОбновитьРолиПользователяИБ() + + УправлениеДоступомСлужебный.ОбновитьРолиПользователей(Параметры.Пользователь, ПарольПользователяСервиса); + УправлениеДоступомСлужебный.ВывестиРазличиеРолейПользователя(ЭтотОбъект, Параметры.Пользователь); + +КонецПроцедуры + +&НаСервере +Функция РолиПользователя() + + Возврат УправлениеДоступомСлужебный.РолиПользователяДляОтчетаПраваРолей(ЭтотОбъект); + +КонецФункции + &НаКлиенте Процедура ВключитьИсключитьИзГруппы(ГруппаДоступа, ВключитьВГруппуДоступа) Экспорт @@ -324,6 +377,8 @@ &НаСервере Процедура ВывестиГруппыДоступа() + УправлениеДоступомСлужебный.ВывестиРазличиеРолейПользователя(ЭтотОбъект, Параметры.Пользователь); + Запрос = Новый Запрос; Запрос.МенеджерВременныхТаблиц = Новый МенеджерВременныхТаблиц; @@ -565,60 +620,7 @@ &НаСервере Процедура ЗаполнитьРоли() - Запрос = Новый Запрос; - Запрос.УстановитьПараметр("Пользователь", Параметры.Пользователь); - - Если ТипЗнч(Параметры.Пользователь) = Тип("СправочникСсылка.Пользователи") - ИЛИ ТипЗнч(Параметры.Пользователь) = Тип("СправочникСсылка.ВнешниеПользователи") Тогда - - Запрос.Текст = - "ВЫБРАТЬ РАЗЛИЧНЫЕ - | Роли.Роль КАК Роль - |ИЗ - | Справочник.ПрофилиГруппДоступа.Роли КАК Роли - | ВНУТРЕННЕЕ СОЕДИНЕНИЕ Справочник.ГруппыДоступа.Пользователи КАК ГруппыДоступаПользователи - | ВНУТРЕННЕЕ СОЕДИНЕНИЕ РегистрСведений.СоставыГруппПользователей КАК СоставыГруппПользователей - | ПО (СоставыГруппПользователей.Пользователь = &Пользователь) - | И (СоставыГруппПользователей.ГруппаПользователей = ГруппыДоступаПользователи.Пользователь) - | И (НЕ ГруппыДоступаПользователи.Ссылка.ПометкаУдаления) - | ПО Роли.Ссылка = ГруппыДоступаПользователи.Ссылка.Профиль - | И (НЕ Роли.Ссылка.ПометкаУдаления)"; - Иначе - // Группа пользователей или Группа внешних пользователей. - Запрос.Текст = - "ВЫБРАТЬ РАЗЛИЧНЫЕ - | Роли.Роль КАК Роль - |ИЗ - | Справочник.ПрофилиГруппДоступа.Роли КАК Роли - | ВНУТРЕННЕЕ СОЕДИНЕНИЕ Справочник.ГруппыДоступа.Пользователи КАК ГруппыДоступаПользователи - | ПО (ГруппыДоступаПользователи.Пользователь = &Пользователь) - | И (НЕ ГруппыДоступаПользователи.Ссылка.ПометкаУдаления) - | И Роли.Ссылка = ГруппыДоступаПользователи.Ссылка.Профиль - | И (НЕ Роли.Ссылка.ПометкаУдаления)"; - КонецЕсли; - - ОбработатьИнтерфейсРолей("ЗаполнитьРоли", Запрос.Выполнить().Выгрузить()); - - Отбор = Новый Структура("Роль", "ПолныеПрава"); - Если ПрочитанныеРоли.НайтиСтроки(Отбор).Количество() > 0 Тогда - ИсходныеПрочитанныеРоли = ПрочитанныеРоли.Выгрузить(, "Роль"); - - ПрочитанныеРоли.Очистить(); - ПрочитанныеРоли.Добавить().Роль = "ПолныеПрава"; - - СтандартныеРолиРасширений = УправлениеДоступомСлужебныйПовтИсп.ОписаниеСтандартныхРолейРасширенийСеанса().РолиСеанса; - ВозможныеРолиАдминистратора = Новый Соответствие(СтандартныеРолиРасширений.ДополнительныеРолиАдминистратора); - ВозможныеРолиАдминистратора.Вставить("АдминистраторСистемы", Истина); - ВозможныеРолиАдминистратора.Вставить("ИнтерактивноеОткрытиеВнешнихОтчетовИОбработок", Истина); - - Для Каждого ОписаниеРоли Из ВозможныеРолиАдминистратора Цикл - Отбор = Новый Структура("Роль", ОписаниеРоли.Ключ); - Если ИсходныеПрочитанныеРоли.НайтиСтроки(Отбор).Количество() > 0 Тогда - ПрочитанныеРоли.Добавить().Роль = ОписаниеРоли.Ключ; - КонецЕсли; - КонецЦикла; - КонецЕсли; - + УправлениеДоступомСлужебный.ЗаполнитьРолиПользователя(ЭтотОбъект); ОбработатьИнтерфейсРолей("ОбновитьДеревоРолей"); КонецПроцедуры @@ -628,27 +630,7 @@ &НаСервере Процедура ОбработатьИнтерфейсРолей(Действие, ОсновнойПараметр = Неопределено) - ПараметрыДействия = Новый Структура; - ПараметрыДействия.Вставить("ОсновнойПараметр", ОсновнойПараметр); - ПараметрыДействия.Вставить("Форма", ЭтотОбъект); - ПараметрыДействия.Вставить("КоллекцияРолей", ПрочитанныеРоли); - - Если ТипЗнч(Параметры.Пользователь) = Тип("СправочникСсылка.Пользователи") - И Пользователи.ЭтоПолноправныйПользователь(Параметры.Пользователь, Ложь, Ложь) Тогда - - НазначениеРолей = "ДляАдминистраторов"; - - ИначеЕсли ТипЗнч(Параметры.Пользователь) = Тип("СправочникСсылка.ВнешниеПользователи") - Или ТипЗнч(Параметры.Пользователь) = Тип("СправочникСсылка.ГруппыВнешнихПользователей") Тогда - - НазначениеРолей = "ДляВнешнихПользователей"; - Иначе - НазначениеРолей = "ДляПользователей"; - КонецЕсли; - - ПараметрыДействия.Вставить("НазначениеРолей", НазначениеРолей); - - ПользователиСлужебный.ОбработатьИнтерфейсРолей(Действие, ПараметрыДействия); + УправлениеДоступомСлужебный.ОбработатьИнтерфейсРолей(ЭтотОбъект, Действие, ОсновнойПараметр); КонецПроцедуры diff --git a/SSL/src/CommonForms/ПраваДоступаУпрощенно/Form.form b/SSL/src/CommonForms/ПраваДоступаУпрощенно/Form.form index b9a2ac625..213f2f6b6 100644 --- a/SSL/src/CommonForms/ПраваДоступаУпрощенно/Form.form +++ b/SSL/src/CommonForms/ПраваДоступаУпрощенно/Form.form @@ -1,5 +1,112 @@ + + НекорректныйСоставРолейПользователяИБ + 170 + + НекорректныйСоставРолейПользователяИБКартинка + 172 + + <key>ru</key> + <value>Некорректный состав ролей пользователя ИБ (картинка)</value> + + true + true + + true + + + НекорректныйСоставРолейПользователяИБКартинкаРасширеннаяПодсказка + 174 + Label + true + true + + Left + + + + НекорректныйСоставРолейПользователяИБКартинкаКонтекстноеМеню + 173 + true + + true + true + false + + + StdPicture.DialogExclamation + + + + + НекорректныйСоставРолейПользователяИБНадпись + 175 + + <key>ru</key> + <value>Роли пользователя информационной базы отличаются от настроенных.</value> + + true + true + + true + + + НекорректныйСоставРолейПользователяИБНадписьРасширеннаяПодсказка + 177 + Label + true + true + + Left + + + + НекорректныйСоставРолейПользователяИБНадписьКонтекстноеМеню + 176 + true + + Label + true + false + + + URLProcessing + НекорректныйСоставРолейПользователяИБНадписьОбработкаНавигационнойСсылки + + Left + Center + + + true + + true + + + <key>ru</key> + <value>Некорректный состав ролей пользователя ИБ</value> + + + НекорректныйСоставРолейПользователяИБРасширеннаяПодсказка + 171 + Label + true + true + + Left + + + UsualGroup + + AlwaysHorizontal + Center + NormalSeparation + true + true + Auto + Auto + + НедостаточноПравНаПросмотр 73 @@ -1412,6 +1519,37 @@ UserCmds Auto + + ФормаОтчетПраваРолейПользователя + 178 + + <key>ru</key> + <value>Отчет Права ролей (пользователя)</value> + + true + true + + true + + + ФормаОтчетПраваРолейПользователяРасширеннаяПодсказка + 179 + Label + true + true + + Left + + + Form.Command.ФормаОтчетПраваРолейПользователя + Normal + Auto + true + true + UserCmds + Auto + InAdditionalSubmenu + ПоказыватьНеиспользуемыеВидыДоступа 110 @@ -1938,6 +2076,35 @@ true + + ПрочитанныеРоли + 11 + + ValueTable + + + true + + + true + + + Роль + 1 + + String + + 150 + + + + true + + + true + + + Записать @@ -2052,6 +2219,28 @@ <currentRowUse>Auto</currentRowUse> <selectedRowsUse>Auto</selectedRowsUse> </formCommands> + <formCommands> + <name>ФормаОтчетПраваРолейПользователя</name> + <title> + <key>ru</key> + <value>Отчет Права ролей (пользователя)</value> + + 6 + + true + + + StdPicture.Report + + + + ФормаОтчетПраваРолейПользователя + + + TextPicture + Auto + Auto + Пользователь diff --git a/SSL/src/CommonForms/ПраваДоступаУпрощенно/Module.bsl b/SSL/src/CommonForms/ПраваДоступаУпрощенно/Module.bsl index 8b9fe9903..6a76dc9eb 100644 --- a/SSL/src/CommonForms/ПраваДоступаУпрощенно/Module.bsl +++ b/SSL/src/CommonForms/ПраваДоступаУпрощенно/Module.bsl @@ -1,5 +1,5 @@ /////////////////////////////////////////////////////////////////////////////////////////////////////// -// Copyright (c) 2024, ООО 1С-Софт +// Copyright (c) 2025, ООО 1С-Софт // Все права защищены. Эта программа и сопроводительные материалы предоставляются // в соответствии с условиями лицензии Attribution 4.0 International (CC BY 4.0) // Текст лицензии доступен по ссылке: @@ -31,10 +31,12 @@ ДоступностьТекущихОграничений = Истина; РедактированиеТекущихОграничений = Истина; + Элементы.ФормаОтчетПраваРолейПользователя.Видимость = Ложь; Если Пользователи.ЭтоПолноправныйПользователь() Тогда // Просмотр и редактирование состава профилей и ограничений доступа. ОтборПрофилейТолькоТекущегоПользователя = Ложь; + Элементы.ФормаОтчетПраваРолейПользователя.Видимость = Истина; ИначеЕсли Параметры.Пользователь = Пользователи.АвторизованныйПользователь() Тогда // Просмотр своих профилей и отчета о правах доступа. @@ -361,6 +363,14 @@ КонецПроцедуры +&НаКлиенте +Процедура ФормаОтчетПраваРолейПользователя(Команда) + + УправлениеДоступомСлужебныйКлиент.ПоказатьПраваРолейПользователя(РолиПользователя(), + Параметры.Пользователь); + +КонецПроцедуры + &НаКлиенте Процедура ОтчетПоПравамДоступа(Команда) @@ -443,6 +453,51 @@ КонецПроцедуры +&НаКлиенте +Процедура НекорректныйСоставРолейПользователяИБНадписьОбработкаНавигационнойСсылки(Элемент, + НавигационнаяСсылка, СтандартнаяОбработка) + + СтандартнаяОбработка = Ложь; + + Если НавигационнаяСсылка = "ПоказатьРазличияНастроенногоСоставаРолейСРолямиПользователяИБ" Тогда + УправлениеДоступомСлужебныйКлиент.ПоказатьРазличияНастроенногоСоставаРолейСРолямиПользователяИБ( + РазличияНастроенногоСоставаРолейСРолямиПользователяИБ()); + + ИначеЕсли НавигационнаяСсылка = "ОбновитьРолиПользователяИБ" Тогда + ОбновитьРолиПользователяИБ(); + КонецЕсли; + +КонецПроцедуры + +&НаСервере +Функция РазличияНастроенногоСоставаРолейСРолямиПользователяИБ() + + РазличияРолей = УправлениеДоступомСлужебный.РазличияНастроенногоСоставаРолейСРолямиПользователяИБ( + Параметры.Пользователь); + + Если Не ЗначениеЗаполнено(РазличияРолей) Тогда + УправлениеДоступомСлужебный.ВывестиРазличиеРолейПользователя(ЭтотОбъект, Параметры.Пользователь); + КонецЕсли; + + Возврат РазличияРолей; + +КонецФункции + +&НаСервере +Процедура ОбновитьРолиПользователяИБ() + + УправлениеДоступомСлужебный.ОбновитьРолиПользователей(Параметры.Пользователь, ПарольПользователяСервиса); + УправлениеДоступомСлужебный.ВывестиРазличиеРолейПользователя(ЭтотОбъект, Параметры.Пользователь); + +КонецПроцедуры + +&НаСервере +Функция РолиПользователя() + + Возврат УправлениеДоступомСлужебный.РолиПользователяДляОтчетаПраваРолей(ЭтотОбъект); + +КонецФункции + // Продолжение обработчика события ПередЗакрытием. &НаКлиенте Процедура ЗаписатьИЗакрытьОповещение(Результат, Контекст) Экспорт @@ -526,6 +581,12 @@ &НаСервере Процедура ЗагрузитьДанные(ОтборПрофилейТолькоТекущегоПользователя) + УправлениеДоступомСлужебный.ВывестиРазличиеРолейПользователя(ЭтотОбъект, Параметры.Пользователь); + + Если Элементы.ФормаОтчетПраваРолейПользователя.Видимость Тогда + УправлениеДоступомСлужебный.ЗаполнитьРолиПользователя(ЭтотОбъект); + КонецЕсли; + Запрос = Новый Запрос; Запрос.УстановитьПараметр("Пользователь", Параметры.Пользователь); Запрос.УстановитьПараметр("ПрофильАдминистратор", ПрофильАдминистратор); diff --git a/SSL/src/CommonForms/ПредупреждениеБезопасности/Module.bsl b/SSL/src/CommonForms/ПредупреждениеБезопасности/Module.bsl index f1886e62c..3b072bf41 100644 --- a/SSL/src/CommonForms/ПредупреждениеБезопасности/Module.bsl +++ b/SSL/src/CommonForms/ПредупреждениеБезопасности/Module.bsl @@ -1,5 +1,5 @@ /////////////////////////////////////////////////////////////////////////////////////////////////////// -// Copyright (c) 2024, ООО 1С-Софт +// Copyright (c) 2025, ООО 1С-Софт // Все права защищены. Эта программа и сопроводительные материалы предоставляются // в соответствии с условиями лицензии Attribution 4.0 International (CC BY 4.0) // Текст лицензии доступен по ссылке: diff --git a/SSL/src/CommonForms/ПредупрежденияПриЗавершенииРаботы/Module.bsl b/SSL/src/CommonForms/ПредупрежденияПриЗавершенииРаботы/Module.bsl index 5867f9437..172c05465 100644 --- a/SSL/src/CommonForms/ПредупрежденияПриЗавершенииРаботы/Module.bsl +++ b/SSL/src/CommonForms/ПредупрежденияПриЗавершенииРаботы/Module.bsl @@ -1,5 +1,5 @@ /////////////////////////////////////////////////////////////////////////////////////////////////////// -// Copyright (c) 2024, ООО 1С-Софт +// Copyright (c) 2025, ООО 1С-Софт // Все права защищены. Эта программа и сопроводительные материалы предоставляются // в соответствии с условиями лицензии Attribution 4.0 International (CC BY 4.0) // Текст лицензии доступен по ссылке: diff --git a/SSL/src/CommonForms/ПроверкаФайлаОбновления/Module.bsl b/SSL/src/CommonForms/ПроверкаФайлаОбновления/Module.bsl index 26933dd64..59bbfa9d1 100644 --- a/SSL/src/CommonForms/ПроверкаФайлаОбновления/Module.bsl +++ b/SSL/src/CommonForms/ПроверкаФайлаОбновления/Module.bsl @@ -1,5 +1,5 @@ /////////////////////////////////////////////////////////////////////////////////////////////////////// -// Copyright (c) 2024, ООО 1С-Софт +// Copyright (c) 2025, ООО 1С-Софт // Все права защищены. Эта программа и сопроводительные материалы предоставляются // в соответствии с условиями лицензии Attribution 4.0 International (CC BY 4.0) // Текст лицензии доступен по ссылке: diff --git a/SSL/src/CommonForms/ПродлениеСрокаДействияЭлектронныхПодписей/Module.bsl b/SSL/src/CommonForms/ПродлениеСрокаДействияЭлектронныхПодписей/Module.bsl index c9eb6e9eb..38b902020 100644 --- a/SSL/src/CommonForms/ПродлениеСрокаДействияЭлектронныхПодписей/Module.bsl +++ b/SSL/src/CommonForms/ПродлениеСрокаДействияЭлектронныхПодписей/Module.bsl @@ -1,5 +1,5 @@ /////////////////////////////////////////////////////////////////////////////////////////////////////// -// Copyright (c) 2024, ООО 1С-Софт +// Copyright (c) 2025, ООО 1С-Софт // Все права защищены. Эта программа и сопроводительные материалы предоставляются // в соответствии с условиями лицензии Attribution 4.0 International (CC BY 4.0) // Текст лицензии доступен по ссылке: diff --git a/SSL/src/CommonForms/ПустойРабочийСтол/Module.bsl b/SSL/src/CommonForms/ПустойРабочийСтол/Module.bsl index 6a3c0b425..95ddbf270 100644 --- a/SSL/src/CommonForms/ПустойРабочийСтол/Module.bsl +++ b/SSL/src/CommonForms/ПустойРабочийСтол/Module.bsl @@ -1,5 +1,5 @@ /////////////////////////////////////////////////////////////////////////////////////////////////////// -// Copyright (c) 2024, ООО 1С-Софт +// Copyright (c) 2025, ООО 1С-Софт // Все права защищены. Эта программа и сопроводительные материалы предоставляются // в соответствии с условиями лицензии Attribution 4.0 International (CC BY 4.0) // Текст лицензии доступен по ссылке: diff --git a/SSL/src/CommonForms/РазблокированиеРеквизитов/Module.bsl b/SSL/src/CommonForms/РазблокированиеРеквизитов/Module.bsl index db95e49c7..ee46e4af0 100644 --- a/SSL/src/CommonForms/РазблокированиеРеквизитов/Module.bsl +++ b/SSL/src/CommonForms/РазблокированиеРеквизитов/Module.bsl @@ -1,5 +1,5 @@ /////////////////////////////////////////////////////////////////////////////////////////////////////// -// Copyright (c) 2024, ООО 1С-Софт +// Copyright (c) 2025, ООО 1С-Софт // Все права защищены. Эта программа и сопроводительные материалы предоставляются // в соответствии с условиями лицензии Attribution 4.0 International (CC BY 4.0) // Текст лицензии доступен по ссылке: diff --git a/SSL/src/CommonForms/РазрешенныеНеаккредитованныеУЦ/Module.bsl b/SSL/src/CommonForms/РазрешенныеНеаккредитованныеУЦ/Module.bsl index 96d2d36dd..522cd1068 100644 --- a/SSL/src/CommonForms/РазрешенныеНеаккредитованныеУЦ/Module.bsl +++ b/SSL/src/CommonForms/РазрешенныеНеаккредитованныеУЦ/Module.bsl @@ -1,5 +1,5 @@ /////////////////////////////////////////////////////////////////////////////////////////////////////// -// Copyright (c) 2024, ООО 1С-Софт +// Copyright (c) 2025, ООО 1С-Софт // Все права защищены. Эта программа и сопроводительные материалы предоставляются // в соответствии с условиями лицензии Attribution 4.0 International (CC BY 4.0) // Текст лицензии доступен по ссылке: diff --git a/SSL/src/CommonForms/Расширения/Module.bsl b/SSL/src/CommonForms/Расширения/Module.bsl index b4bc535e2..e72723dec 100644 --- a/SSL/src/CommonForms/Расширения/Module.bsl +++ b/SSL/src/CommonForms/Расширения/Module.bsl @@ -1,5 +1,5 @@ /////////////////////////////////////////////////////////////////////////////////////////////////////// -// Copyright (c) 2024, ООО 1С-Софт +// Copyright (c) 2025, ООО 1С-Софт // Все права защищены. Эта программа и сопроводительные материалы предоставляются // в соответствии с условиями лицензии Attribution 4.0 International (CC BY 4.0) // Текст лицензии доступен по ссылке: diff --git a/SSL/src/CommonForms/РасширенноеПредставлениеОшибки/Module.bsl b/SSL/src/CommonForms/РасширенноеПредставлениеОшибки/Module.bsl index e3d28c6ef..9faa6d0fb 100644 --- a/SSL/src/CommonForms/РасширенноеПредставлениеОшибки/Module.bsl +++ b/SSL/src/CommonForms/РасширенноеПредставлениеОшибки/Module.bsl @@ -1,5 +1,5 @@ /////////////////////////////////////////////////////////////////////////////////////////////////////// -// Copyright (c) 2024, ООО 1С-Софт +// Copyright (c) 2025, ООО 1С-Софт // Все права защищены. Эта программа и сопроводительные материалы предоставляются // в соответствии с условиями лицензии Attribution 4.0 International (CC BY 4.0) // Текст лицензии доступен по ссылке: diff --git a/SSL/src/CommonForms/РегиональныеНастройки/Module.bsl b/SSL/src/CommonForms/РегиональныеНастройки/Module.bsl index 8c066bbce..47ff82a0f 100644 --- a/SSL/src/CommonForms/РегиональныеНастройки/Module.bsl +++ b/SSL/src/CommonForms/РегиональныеНастройки/Module.bsl @@ -1,5 +1,5 @@ /////////////////////////////////////////////////////////////////////////////////////////////////////// -// Copyright (c) 2024, ООО 1С-Софт +// Copyright (c) 2025, ООО 1С-Софт // Все права защищены. Эта программа и сопроводительные материалы предоставляются // в соответствии с условиями лицензии Attribution 4.0 International (CC BY 4.0) // Текст лицензии доступен по ссылке: diff --git a/SSL/src/CommonForms/РедактированиеГиперссылки/Module.bsl b/SSL/src/CommonForms/РедактированиеГиперссылки/Module.bsl index 0f26ed953..56c68acc9 100644 --- a/SSL/src/CommonForms/РедактированиеГиперссылки/Module.bsl +++ b/SSL/src/CommonForms/РедактированиеГиперссылки/Module.bsl @@ -1,5 +1,5 @@ /////////////////////////////////////////////////////////////////////////////////////////////////////// -// Copyright (c) 2024, ООО 1С-Софт +// Copyright (c) 2025, ООО 1С-Софт // Все права защищены. Эта программа и сопроводительные материалы предоставляются // в соответствии с условиями лицензии Attribution 4.0 International (CC BY 4.0) // Текст лицензии доступен по ссылке: diff --git a/SSL/src/CommonForms/РедактированиеДокументаOfficeOpen/Module.bsl b/SSL/src/CommonForms/РедактированиеДокументаOfficeOpen/Module.bsl index dfb5c2cdf..eea322e2b 100644 --- a/SSL/src/CommonForms/РедактированиеДокументаOfficeOpen/Module.bsl +++ b/SSL/src/CommonForms/РедактированиеДокументаOfficeOpen/Module.bsl @@ -1,5 +1,5 @@ /////////////////////////////////////////////////////////////////////////////////////////////////////// -// Copyright (c) 2024, ООО 1С-Софт +// Copyright (c) 2025, ООО 1С-Софт // Все права защищены. Эта программа и сопроводительные материалы предоставляются // в соответствии с условиями лицензии Attribution 4.0 International (CC BY 4.0) // Текст лицензии доступен по ссылке: @@ -2252,6 +2252,20 @@ ПараметрыПеретаскивания.Значение = СтрЗаменить(ПараметрыПеретаскивания.Значение, "()", "(["+ПредставлениеТекущейТаблицы+"])"); КонецЕсли; + Если ЗначениеЗаполнено(Оператор.Родитель) + И НЕ ПустаяСтрока(ПараметрыПеретаскивания.Значение) + И НЕ ЗначениеЗаполнено(Оператор.ВыражениеДляВставки) Тогда + + ГруппаОператоров = Оператор.Родитель; // см. ВыбранноеПолеВСпискеПолей + ИмяГруппыОператоров = ГруппаОператоров.Имя; + Если НЕ ИмяГруппыОператоров = "ЛогическиеОператорыИКонстанты" Тогда + + ПараметрыПеретаскивания.Значение = "[" + ПараметрыПеретаскивания.Значение + "]"; + + КонецЕсли; + + КонецЕсли; + КонецПроцедуры &НаКлиенте diff --git a/SSL/src/CommonForms/РедактированиеДополнительныхСведений/Module.bsl b/SSL/src/CommonForms/РедактированиеДополнительныхСведений/Module.bsl index eb17aa074..8e7ee4a04 100644 --- a/SSL/src/CommonForms/РедактированиеДополнительныхСведений/Module.bsl +++ b/SSL/src/CommonForms/РедактированиеДополнительныхСведений/Module.bsl @@ -1,5 +1,5 @@ /////////////////////////////////////////////////////////////////////////////////////////////////////// -// Copyright (c) 2024, ООО 1С-Софт +// Copyright (c) 2025, ООО 1С-Софт // Все права защищены. Эта программа и сопроводительные материалы предоставляются // в соответствии с условиями лицензии Attribution 4.0 International (CC BY 4.0) // Текст лицензии доступен по ссылке: diff --git a/SSL/src/CommonForms/РедактированиеМеток/Module.bsl b/SSL/src/CommonForms/РедактированиеМеток/Module.bsl index 031189336..763234bdb 100644 --- a/SSL/src/CommonForms/РедактированиеМеток/Module.bsl +++ b/SSL/src/CommonForms/РедактированиеМеток/Module.bsl @@ -1,5 +1,5 @@ /////////////////////////////////////////////////////////////////////////////////////////////////////// -// Copyright (c) 2024, ООО 1С-Софт +// Copyright (c) 2025, ООО 1С-Софт // Все права защищены. Эта программа и сопроводительные материалы предоставляются // в соответствии с условиями лицензии Attribution 4.0 International (CC BY 4.0) // Текст лицензии доступен по ссылке: diff --git a/SSL/src/CommonForms/РедактированиеТабличногоДокумента/Form.form b/SSL/src/CommonForms/РедактированиеТабличногоДокумента/Form.form index 648753ba4..1d51d41de 100644 --- a/SSL/src/CommonForms/РедактированиеТабличногоДокумента/Form.form +++ b/SSL/src/CommonForms/РедактированиеТабличногоДокумента/Form.form @@ -6827,6 +6827,20 @@ true + + ИмяОбластиРедактирования + 58 + + String + + + + true + + + true + + ЗаписатьИЗакрыть diff --git a/SSL/src/CommonForms/РедактированиеТабличногоДокумента/Module.bsl b/SSL/src/CommonForms/РедактированиеТабличногоДокумента/Module.bsl index 62ded23a2..b33b31220 100644 --- a/SSL/src/CommonForms/РедактированиеТабличногоДокумента/Module.bsl +++ b/SSL/src/CommonForms/РедактированиеТабличногоДокумента/Module.bsl @@ -1,5 +1,5 @@ /////////////////////////////////////////////////////////////////////////////////////////////////////// -// Copyright (c) 2024, ООО 1С-Софт +// Copyright (c) 2025, ООО 1С-Софт // Все права защищены. Эта программа и сопроводительные материалы предоставляются // в соответствии с условиями лицензии Attribution 4.0 International (CC BY 4.0) // Текст лицензии доступен по ссылке: @@ -1137,7 +1137,7 @@ ТабличныйДокумент.НижнийКолонтитул.ТекстВЦентре = ЗагруженныйТабличныйДокумент.НижнийКолонтитул.ТекстВЦентре; ТабличныйДокумент.НижнийКолонтитул.ТекстСправа = ЗагруженныйТабличныйДокумент.НижнийКолонтитул.ТекстСправа; - ТаблицаОбластей = ТаблицаОбластей(ЗагруженныйТабличныйДокумент); + ТаблицаОбластей = ТаблицаОбластей(ЗагруженныйТабличныйДокумент, Истина); Для Каждого ТекущаяОбласть Из ТаблицаОбластей Цикл Область = ТабличныйДокумент.Области.Найти(ТекущаяОбласть.Имя); @@ -1462,6 +1462,9 @@ Если ОбщегоНазначенияКлиент.ПодсистемаСуществует("СтандартныеПодсистемы.КонструкторФормул") Тогда МодульКонструкторФормулКлиент = ОбщегоНазначенияКлиент.ОбщийМодуль("КонструкторФормулКлиент"); + ИмяОбластиРедактирования = Область.Имя; + ТекущееЗначение = Область.Текст; + Если ТипЗнч(ПараметрыПеретаскивания.Значение) <> Тип("Строка") Тогда Возврат; КонецЕсли; @@ -1953,6 +1956,7 @@ &НаКлиенте Процедура ОбновитьОбластьНастройкиВыбранныхЯчеек() ОбновитьПолеВводаЗначенияТекущейЯчейки(); + ИмяОбластиРедактирования = ""; КонецПроцедуры &НаКлиенте @@ -2207,7 +2211,17 @@ Если Элемент.Имя = ИмяСпискаПолей() Тогда ТекущееЗначение = ТекущееЗначение + "[" + ВыбранноеПоле.ПредставлениеПутиКДанным + "]"; Иначе - ТекущееЗначение = ТекущееЗначение + МодульКонструкторФормулКлиент.ВыражениеДляВставки(ВыбранноеПоле); + + ЗначениеПеретаскивания = МодульКонструкторФормулКлиент.ВыражениеДляВставки(ВыбранноеПоле); + ДобавитьСкобки( + ВыбранноеПоле, + ПолучательПеретаскиваемогоЗначения, + ЗначениеПеретаскивания, + Истина); + + ТекущееЗначение = ТекущееЗначение + ЗначениеПеретаскивания; + ИмяОбластиРедактирования = ""; + КонецЕсли; ОбновитьТекстВОбластиЯчеек(); @@ -2249,14 +2263,26 @@ Контекст = Новый Структура("ПутьКДанным, Заголовок"); ЗаполнитьЗначенияСвойств(Контекст, ВыбранноеПоле); + ЗначениеПеретаскивания = ПараметрыПеретаскивания.Значение; + ДобавитьСкобки(ВыбранноеПоле, ПолучательПеретаскиваемогоЗначения, ЗначениеПеретаскивания); + + Если ПараметрыПеретаскивания.Значение <> ЗначениеПеретаскивания Тогда + + ПараметрыПеретаскивания.Значение = ЗначениеПеретаскивания; + + КонецЕсли; + Если Контекст.ПутьКДанным = "Формат" Тогда ФорматСтроки = Новый КонструкторФорматнойСтроки; Контекст.Вставить("ФорматСтроки", ФорматСтроки); + Контекст.Вставить("ИмяОбластиРедактирования", ИмяОбластиРедактирования); ОповещениеОкончанияПеретаскиванияЗавершение = Новый ОписаниеОповещения("ОператорыОкончаниеПеретаскиванияЗавершение", ЭтотОбъект, Контекст); ФорматСтроки.Показать(ОповещениеОкончанияПеретаскиванияЗавершение); КонецЕсли; КонецЕсли; + ИмяОбластиРедактирования = ""; + КонецПроцедуры &НаКлиенте @@ -2273,6 +2299,7 @@ Если ЗначениеЗаполнено(ФорматСтроки.Текст) Тогда ТекстыДляЗамены.ДляЗамены = Контекст.Заголовок + "( , """ + ФорматСтроки.Текст + """)"; ТекстыДляЗамены.ДляПоиска = Контекст.Заголовок + "(,,)"; + ТекстыДляЗамены.Вставить("ИмяОбластиРедактирования", Контекст.ИмяОбластиРедактирования); КонецЕсли; КонецЕсли; @@ -2290,7 +2317,10 @@ ТекстыДляЗамены = ПолучитьИзВременногоХранилища(АдресПараметровДляОбработкиОжидания); Если ПолучательПеретаскиваемогоЗначения = Элементы.ТекущееЗначение ИЛИ ПолучательПеретаскиваемогоЗначения = Неопределено Тогда - Элементы.ТекущееЗначение.ВыделенныйТекст = ТекстыДляЗамены.ДляЗамены; + + ТекущееЗначение = СтрЗаменить(ТекущееЗначение, ТекстыДляЗамены.ДляПоиска, ТекстыДляЗамены.ДляЗамены); + ОбновитьТекстВОбластиЯчеек(); + Иначе ТекущийРеквизит = ЭтотОбъект[ПолучательПеретаскиваемогоЗначения.Имя]; Если ТипЗнч(ТекущийРеквизит) = Тип("ФорматированныйДокумент") Тогда @@ -2299,7 +2329,16 @@ ТекущийРеквизит.Удалить(); ТекущийРеквизит.УстановитьФорматированнуюСтроку(ФорматированныйТекст); ИначеЕсли ТипЗнч(ТекущийРеквизит) = Тип("ТабличныйДокумент") Тогда - ТекущийРеквизит.ТекущаяОбласть.Текст = СтрЗаменить(ТекущийРеквизит.ТекущаяОбласть.Текст, ТекстыДляЗамены.ДляПоиска, ТекстыДляЗамены.ДляЗамены); + + Если ТекстыДляЗамены.Свойство("ИмяОбластиРедактирования") + И ТекстыДляЗамены.ИмяОбластиРедактирования <> "" Тогда + ТекущаяОбласть = ТабличныйДокумент.Область(ТекстыДляЗамены.ИмяОбластиРедактирования); + Иначе + ТекущаяОбласть = ТекущийРеквизит.ТекущаяОбласть; + КонецЕсли; + ТекущаяОбласть.Текст = СтрЗаменить(ТекущаяОбласть.Текст, ТекстыДляЗамены.ДляПоиска, ТекстыДляЗамены.ДляЗамены); + ТекущееЗначение = ТекущийРеквизит.ТекущаяОбласть.Текст; + Иначе ТекущийРеквизит = СтрЗаменить(ТекущийРеквизит, ТекстыДляЗамены.ДляПоиска, ТекстыДляЗамены.ДляЗамены); КонецЕсли; @@ -2407,19 +2446,7 @@ ЗаменитьПредставленияПараметров(Макет.НижнийКолонтитул.ТекстВЦентре, "ТекстВЦентреСнизу", Отказ, НСтр("ru = 'нижний колонтитул в центре'")); ЗаменитьПредставленияПараметров(Макет.НижнийКолонтитул.ТекстСправа, "ТекстСправаСнизу", Отказ, НСтр("ru = 'нижний колонтитул справа'")); - Для Каждого Область Из Макет.Области Цикл - Если ТипЗнч(Область) = Тип("ОбластьЯчеекТабличногоДокумента") - И Область.ТипОбласти = ТипОбластиЯчеекТабличногоДокумента.Строки Тогда - - Если МакетДляВыгрузкиОбъекта - И НЕ ЗначениеЗаполнено(Область.ПараметрРасшифровки) Тогда - Продолжить; - КонецЕсли; - - Область.ПараметрРасшифровки = ФормулаИзПредставления(Область.ПараметрРасшифровки); - КонецЕсли; - КонецЦикла; - + ЗаполнитьПараметрыРасшифровки(Макет); ПереименоватьУсловныеОбласти(Макет, ПрефиксУсловнойОбласти(), МакетДляВыгрузкиОбъекта); Если МакетДляВыгрузкиОбъекта Тогда @@ -2797,6 +2824,85 @@ КонецФункции +&НаСервере +Процедура ЗаполнитьПараметрыРасшифровки(Макет, ЧтениеМакета = Ложь) + + Если МакетДляВыгрузкиОбъекта + И (ФорматСохраненияВыгрузки = Перечисления.ФорматыВыгрузкиОбъектов.JSON + ИЛИ ФорматСохраненияВыгрузки = Перечисления.ФорматыВыгрузкиОбъектов.XML) Тогда + + ЗаполнитьПараметрыРасшифровкиПоТаблицеОбластей(Макет, ЧтениеМакета); + + Иначе + + ЗаполнитьПараметрыРасшифровкиПоОбластямМакета(Макет, ЧтениеМакета); + + КонецЕсли; + +КонецПроцедуры + +&НаСервере +Процедура ЗаполнитьПараметрыРасшифровкиПоТаблицеОбластей(Макет, ЧтениеМакета) + + ТаблицаОбластей = ТаблицаОбластей(Макет, Истина); + + Для Каждого ТекущаяОбласть Из ТаблицаОбластей Цикл + + Область = Макет.Области.Найти(ТекущаяОбласть.Имя); + + Если ТипЗнч(Область) = Тип("ОбластьЯчеекТабличногоДокумента") + И Область.ТипОбласти = ТипОбластиЯчеекТабличногоДокумента.Строки Тогда + + Если МакетДляВыгрузкиОбъекта + И НЕ ЗначениеЗаполнено(ТекущаяОбласть.ПараметрРасшифровки) Тогда + Продолжить; + КонецЕсли; + + Если ЧтениеМакета Тогда + + Область.ПараметрРасшифровки = ПредставлениеФормулы(ТекущаяОбласть.ПараметрРасшифровки); + + Иначе + + Область.ПараметрРасшифровки = ФормулаИзПредставления(ТекущаяОбласть.ПараметрРасшифровки); + + КонецЕсли; + + КонецЕсли; + + КонецЦикла; + +КонецПроцедуры + +&НаСервере +Процедура ЗаполнитьПараметрыРасшифровкиПоОбластямМакета(Макет, ЧтениеМакета) + + Для Каждого Область Из Макет.Области Цикл + + Если ТипЗнч(Область) = Тип("ОбластьЯчеекТабличногоДокумента") + И Область.ТипОбласти = ТипОбластиЯчеекТабличногоДокумента.Строки Тогда + + Если МакетДляВыгрузкиОбъекта + И НЕ ЗначениеЗаполнено(Область.ПараметрРасшифровки) Тогда + Продолжить; + КонецЕсли; + + Если ЧтениеМакета Тогда + + Область.ПараметрРасшифровки = ПредставлениеФормулы(Область.ПараметрРасшифровки); + + Иначе + + Область.ПараметрРасшифровки = ФормулаИзПредставления(Область.ПараметрРасшифровки); + + КонецЕсли; + + КонецЕсли; + + КонецЦикла; + +КонецПроцедуры + &НаКлиенте Процедура ПроверитьНаличиеНеИспользуемыхСвойств(ОбработчикЗавершения, ОсвободитьФайл) @@ -3604,19 +3710,7 @@ ЗаменитьПараметрыПредставлениями(Макет.НижнийКолонтитул.ТекстВЦентре); ЗаменитьПараметрыПредставлениями(Макет.НижнийКолонтитул.ТекстСправа); - Для Каждого Область Из Макет.Области Цикл - Если ТипЗнч(Область) = Тип("ОбластьЯчеекТабличногоДокумента") - И Область.ТипОбласти = ТипОбластиЯчеекТабличногоДокумента.Строки Тогда - - Если МакетДляВыгрузкиОбъекта - И НЕ ЗначениеЗаполнено(Область.ПараметрРасшифровки) Тогда - Продолжить; - КонецЕсли; - - Область.ПараметрРасшифровки = ПредставлениеФормулы(Область.ПараметрРасшифровки); - КонецЕсли; - КонецЦикла; - + ЗаполнитьПараметрыРасшифровки(Макет, Истина); ПереименоватьУсловныеОбласти(Макет, ЛокализованныйПрефиксУсловнойОбласти(), МакетДляВыгрузкиОбъекта); Возврат Макет; @@ -3693,7 +3787,7 @@ Результат.НижнийКолонтитул.ТекстВЦентре = ТабличныйДокумент.НижнийКолонтитул.ТекстВЦентре; Результат.НижнийКолонтитул.ТекстСправа = ТабличныйДокумент.НижнийКолонтитул.ТекстСправа; - ТаблицаОбластей = ТаблицаОбластей(ТабличныйДокумент); + ТаблицаОбластей = ТаблицаОбластей(ТабличныйДокумент, Истина); Для Каждого ТекущаяОбласть Из ТаблицаОбластей Цикл Область = Результат.Области.Найти(ТекущаяОбласть.Имя); @@ -3804,7 +3898,10 @@ ЗаписатьМакетыНаДополнительныхЯзыках(); Если Не Элементы.Язык.Доступность Тогда + Элементы.Язык.Доступность = Истина; + ЗаполнитьЗначенияСвойств(Параметры, ОписаниеМакета); + КонецЕсли; КонецЕсли; @@ -4005,18 +4102,18 @@ &НаКлиентеНаСервереБезКонтекста Процедура ПереименоватьУсловныеОбласти(Макет, Префикс, МакетДляВыгрузки) + Если МакетДляВыгрузки Тогда + Возврат; + КонецЕсли; + Области = Новый Массив; Для Каждого Область Из Макет.Области Цикл Если ТипЗнч(Область) = Тип("ОбластьЯчеекТабличногоДокумента") И Область.ТипОбласти = ТипОбластиЯчеекТабличногоДокумента.Строки Тогда - Если МакетДляВыгрузки - И НЕ ЗначениеЗаполнено(Область.ПараметрРасшифровки) Тогда - Продолжить; - КонецЕсли; - Области.Добавить(Область); + КонецЕсли; КонецЦикла; @@ -4315,22 +4412,85 @@ Если ТекущаяОбласть.ТипОбласти = ТипОбластиЯчеекТабличногоДокумента.Прямоугольник Тогда ТекущаяОбласть.Текст = ТекущееЗначение; ИначеЕсли ТекущаяОбласть.ТипОбласти = ТипОбластиЯчеекТабличногоДокумента.Строки Тогда - ТекущаяОбласть.Имя = ""; - Область = ТабличныйДокумент.Область(ТекущаяОбласть.Верх, 1, ТекущаяОбласть.Верх, 1); - Если Область.Текст = "" Тогда - Область.Текст = ""; + Если НЕ МакетДляВыгрузкиОбъекта Тогда + + ТекущаяОбласть.Имя = ""; + + ИнициализироватьПервуюЯчейкуСтроки(ТекущаяОбласть); + + ТекущаяОбласть.ПараметрРасшифровки = ТекущееЗначение; + + Если ЗначениеЗаполнено(ТекущееЗначение) Тогда + ПодобратьИмяОбласти(ТабличныйДокумент, ЛокализованныйПрефиксУсловнойОбласти(), ТекущаяОбласть); + КонецЕсли; + + Иначе + + ОбновитьОбластьУсловияДляВыгрузки(ТекущаяОбласть); + КонецЕсли; - ТекущаяОбласть.ПараметрРасшифровки = ТекущееЗначение; - - Если ЗначениеЗаполнено(ТекущееЗначение) Тогда - ПодобратьИмяОбласти(ТабличныйДокумент, ЛокализованныйПрефиксУсловнойОбласти(), ТекущаяОбласть); - КонецЕсли; КонецЕсли; КонецПроцедуры +&НаКлиенте +Процедура ОбновитьОбластьУсловияДляВыгрузки(ТекущаяОбласть) + + ИмяОбласти = ТекущаяОбласть.Имя; + ИдентификаторОбласти = ИмяОбластиСтрокПоУмолчанию(ТекущаяОбласть); + + ИнициализироватьПервуюЯчейкуСтроки(ТекущаяОбласть); + + ТекущаяОбласть.ПараметрРасшифровки = ТекущееЗначение; + + Если ЗначениеЗаполнено(ТекущееЗначение) + И ИмяОбласти = ИдентификаторОбласти Тогда + + ПодобратьИмяОбласти(ТабличныйДокумент, ЛокализованныйПрефиксУсловнойОбласти(), ТекущаяОбласть); + + ИначеЕсли НЕ ЗначениеЗаполнено(ТекущееЗначение) Тогда + + ТекущаяОбласть.Имя = ""; + + КонецЕсли; + +КонецПроцедуры + +&НаКлиенте +Процедура ИнициализироватьПервуюЯчейкуСтроки(ТекущаяОбласть) + + Область = ТабличныйДокумент.Область(ТекущаяОбласть.Верх, 1, ТекущаяОбласть.Верх, 1); + Если Область.Текст = "" Тогда + Область.Текст = ""; + КонецЕсли; + +КонецПроцедуры + +// Имя области строк по умолчанию. +// +// Параметры: +// ТекущаяОбласть - ОбластьЯчеекТабличногоДокумента - текущая область +// +// Возвращаемое значение: +// Строка +// +&НаКлиентеНаСервереБезКонтекста +Функция ИмяОбластиСтрокПоУмолчанию(ТекущаяОбласть) + + Если ТекущаяОбласть = Неопределено Тогда + ИмяОбласти = ""; + ИначеЕсли ТекущаяОбласть.Верх = ТекущаяОбласть.Низ Тогда + ИмяОбласти = "R" + Формат(ТекущаяОбласть.Верх, "ЧГ=0;"); + Иначе + ИмяОбласти = "R" + Формат(ТекущаяОбласть.Верх, "ЧГ=0;") + ":R" + Формат(ТекущаяОбласть.Низ, "ЧГ=0;"); + КонецЕсли; + + Возврат ИмяОбласти; + +КонецФункции + &НаСервереБезКонтекста Функция ПрефиксУсловнойОбласти() @@ -4747,4 +4907,133 @@ КонецПроцедуры +&НаКлиенте +Функция ЕстьОткрытыеСкобки(Текст) + + КоличествоОткрытыхСкобок = СтрЧислоВхождений(Текст, "["); + КоличествоЗакрытыхСкобок = СтрЧислоВхождений(Текст, "]"); + + Возврат (КоличествоОткрытыхСкобок > КоличествоЗакрытыхСкобок); + +КонецФункции + +&НаКлиенте +Функция ТекущаяОбластьДокумента() + + Если ИмяОбластиРедактирования <> "" Тогда + Область = ТабличныйДокумент.Область(ИмяОбластиРедактирования); + Иначе + Область = ТабличныйДокумент.ТекущаяОбласть; + КонецЕсли; + + Если ТипЗнч(Область) = Тип("ОбластьЯчеекТабличногоДокумента") + И Область.ТипОбласти = ТипОбластиЯчеекТабличногоДокумента.Строки Тогда + Область = Неопределено; + КонецЕсли; + + Возврат Область; + +КонецФункции + +&НаКлиенте +Процедура ЗаполнитьДанныеВыделенногоТекста(ДанныеВыделенногоТекста) + + Текст = ""; + НачальнаяСтрокаВыделения = 0; + НачальнаяКолонкаВыделения = 0; + КонечнаяСтрокаВыделения = 0; + КонечнаяКолонкаВыделения = 0; + Элементы.ТекущееЗначение.ПолучитьГраницыВыделения( + НачальнаяСтрокаВыделения, + НачальнаяКолонкаВыделения, + КонечнаяСтрокаВыделения, + КонечнаяКолонкаВыделения); + + ТекстовыйДокумент = Новый ТекстовыйДокумент; + ТекстовыйДокумент.ДобавитьСтроку(ТекущееЗначение); + Для Сч = 0 По НачальнаяСтрокаВыделения - 1 Цикл + Текст = Текст + ТекстовыйДокумент.ПолучитьСтроку(Сч); + КонецЦикла; + СтрокаДляАнализа = ТекстовыйДокумент.ПолучитьСтроку(НачальнаяСтрокаВыделения); + СтрокаДляАнализа = Лев(СтрокаДляАнализа, НачальнаяКолонкаВыделения - 1); + Текст = Текст + СтрокаДляАнализа; + + ДанныеВыделенногоТекста.Текст = Текст; + ДанныеВыделенногоТекста.НачальнаяСтрокаВыделения = НачальнаяСтрокаВыделения; + ДанныеВыделенногоТекста.НачальнаяКолонкаВыделения = НачальнаяКолонкаВыделения; + ДанныеВыделенногоТекста.КонечнаяСтрокаВыделения = КонечнаяСтрокаВыделения; + ДанныеВыделенногоТекста.КонечнаяКолонкаВыделения = КонечнаяКолонкаВыделения; + +КонецПроцедуры + +&НаКлиенте +Процедура ДобавитьСкобки(Оператор, ПолучательПеретаскиваемогоЗначения, ЗначениеПеретаскивания, ВыборИзСписка = Ложь) + + ЭтоФункция = Ложь; + Если ЗначениеЗаполнено(Оператор.Родитель) + И НЕ ЗначениеЗаполнено(Оператор.ВыражениеДляВставки) Тогда + + ГруппаОператоров = Оператор.Родитель; // см. ВыбранноеПолеВСпискеПолей + ИмяГруппыОператоров = ГруппаОператоров.Имя; + ЭтоФункция = НЕ (ИмяГруппыОператоров = "ЛогическиеОператорыИКонстанты"); + + КонецЕсли; + + Область = ТекущаяОбластьДокумента(); + + Если НЕ ЭтоФункция + ИЛИ Область = Неопределено Тогда + Возврат; + КонецЕсли; + + Если ИмяОбластиРедактирования = "" + И НЕ ВыборИзСписка Тогда + + ДанныеВыделенногоТекста = Новый Структура; + ДанныеВыделенногоТекста.Вставить("Текст", ""); + ДанныеВыделенногоТекста.Вставить("НачальнаяСтрокаВыделения", 0); + ДанныеВыделенногоТекста.Вставить("НачальнаяКолонкаВыделения", 0); + ДанныеВыделенногоТекста.Вставить("КонечнаяСтрокаВыделения", 0); + ДанныеВыделенногоТекста.Вставить("КонечнаяКолонкаВыделения", 0); + + ПолучательПеретаскиваемогоЗначения = Элементы.ТекущееЗначение; + ЗаполнитьДанныеВыделенногоТекста(ДанныеВыделенногоТекста); + Текст = ДанныеВыделенногоТекста.Текст; + ДобавлятьСкобки = НЕ ЕстьОткрытыеСкобки(Текст); + + Если ДобавлятьСкобки Тогда + + СтароеЗначение = ЗначениеПеретаскивания; + ЗначениеПеретаскивания = "[" + ЗначениеПеретаскивания + "]"; + + ВыделенныйТекст = Элементы.ТекущееЗначение.ВыделенныйТекст; + Если СтрНайти(ВыделенныйТекст, СтароеЗначение) > 0 Тогда + ВыделенныйТекст = СтрЗаменить(ВыделенныйТекст, СтароеЗначение, ЗначениеПеретаскивания); + Иначе + ВыделенныйТекст = ЗначениеПеретаскивания; + КонецЕсли; + + Элементы.ТекущееЗначение.ВыделенныйТекст = ВыделенныйТекст; + Сдвиг = 2; + Элементы.ТекущееЗначение.УстановитьГраницыВыделения( + ДанныеВыделенногоТекста.НачальнаяСтрокаВыделения, + ДанныеВыделенногоТекста.НачальнаяКолонкаВыделения, + ДанныеВыделенногоТекста.КонечнаяСтрокаВыделения, + ДанныеВыделенногоТекста.КонечнаяКолонкаВыделения + Сдвиг); + + Иначе + + Элементы.ТекущееЗначение.ВыделенныйТекст = ЗначениеПеретаскивания; + + КонецЕсли; + + Иначе + + ЗначениеПеретаскивания = "[" + ЗначениеПеретаскивания + "]"; + Область.Текст = ЗначениеПеретаскивания; + + КонецЕсли; + +КонецПроцедуры + #КонецОбласти diff --git a/SSL/src/CommonForms/СвязанныеДокументы/Form.form b/SSL/src/CommonForms/СвязанныеДокументы/Form.form index 92155625d..5263a94f6 100644 --- a/SSL/src/CommonForms/СвязанныеДокументы/Form.form +++ b/SSL/src/CommonForms/СвязанныеДокументы/Form.form @@ -4,6 +4,422 @@ <key>ru</key> <value>Связанные документы</value> + + ГруппаКоманднаяПанельСПолями + 40 + + КоманднаяПанель + 42 + + Обновить + 10 + + <key>ru</key> + <value>Обновить</value> + + true + true + + true + + false + + ОбновитьРасширеннаяПодсказка + 17 + Label + true + true + + Left + + + Form.Command.Обновить + Normal + PictureAndText + true + true + UserCmds + Auto + + + ВывестиДляТекущего + 11 + + <key>ru</key> + <value>Вывести для текущего</value> + + true + true + + true + + false + + ВывестиДляТекущегоРасширеннаяПодсказка + 18 + Label + true + true + + Left + + + Form.Command.ВывестиДляТекущего + Normal + Auto + true + true + UserCmds + Auto + + + ИзменениеСостояния + 21 + + ИзменениеСостоянияДокумента + 29 + + Провести + 25 + + <key>ru</key> + <value>Провести</value> + + true + true + + true + + + ПровестиРасширеннаяПодсказка + 26 + Label + true + true + + Left + + + Form.Command.Провести + Normal + Auto + true + true + UserCmds + Auto + + + ОтменитьПроведение + 27 + + <key>ru</key> + <value>Отменить проведение</value> + + true + true + + true + + + ОтменитьПроведениеРасширеннаяПодсказка + 28 + Label + true + true + + Left + + + Form.Command.ОтменитьПроведение + Normal + Auto + true + true + UserCmds + Auto + + true + true + + true + + + <key>ru</key> + <value>Изменение состояния документа</value> + + + ИзменениеСостоянияДокументаРасширеннаяПодсказка + 30 + Label + true + true + + Left + + + + Compact + + + + ИзменитьПометкуУдаления + 23 + + <key>ru</key> + <value>Пометить на удаление / Снять пометку</value> + + true + true + + true + + + ИзменитьПометкуУдаленияРасширеннаяПодсказка + 24 + Label + true + true + + Left + + + Form.Command.ИзменитьПометкуУдаления + Normal + Auto + true + true + UserCmds + Auto + + true + true + + true + + + <key>ru</key> + <value>Изменение состояния</value> + + + ИзменениеСостоянияРасширеннаяПодсказка + 22 + Label + true + true + + Left + + + + + true + true + + true + + + <key>ru</key> + <value>Командная панель</value> + + + КоманднаяПанельРасширеннаяПодсказка + 43 + Label + true + true + + Left + + + CommandBar + + Left + + + + Поиск + 31 + + СтрокаПоиска + 33 + + <key>ru</key> + <value>Строка поиска</value> + + true + true + + true + + + СтрокаПоиска + + None + + ru + Поиск определенного текста + + + СтрокаПоискаРасширеннаяПодсказка + 35 + Label + true + true + + Left + + + + СтрокаПоискаКонтекстноеМеню + 34 + true + + InputField + Enter + true + Left + true + + + TextEditEnd + СтрокаПоискаОкончаниеВводаТекста + + true + true + true + true + true + true + true + true + Normal + + ru + Поиск + + + + + НайтиСледующуюСтроку + 36 + + <key>ru</key> + <value>Найти следующую строку</value> + + true + true + + true + + + НайтиСледующуюСтрокуРасширеннаяПодсказка + 37 + Label + true + true + + Left + + + UsualButton + Form.Command.НайтиСледующуюСтроку + Normal + Picture + true + true + UserCmds + Auto + + true + true + + true + + + <key>ru</key> + <value>Поиск</value> + + false + Right + + ПоискРасширеннаяПодсказка + 32 + Label + true + true + + Left + + + UsualGroup + + AlwaysHorizontal + Half + Auto + true + true + Auto + Auto + + + + КоманднаяПанельЕще + 38 + true + true + + true + + + <key>ru</key> + <value>Командная панель еще</value> + + false + + КоманднаяПанельЕщеРасширеннаяПодсказка + 39 + Label + true + true + + Left + + + CommandBar + + Right + Form + + + true + true + + true + + + <key>ru</key> + <value>Командная панель с полями</value> + + + ГруппаКоманднаяПанельСПолямиРасширеннаяПодсказка + 41 + Label + true + true + + Left + + + UsualGroup + + HorizontalIfPossible + Auto + true + true + Auto + Auto + + ГруппаОтчет 14 @@ -22,7 +438,11 @@ ТаблицаОтчета + true None + Find + FindNext + FindPrevious ТаблицаОтчетаРасширеннаяПодсказка 20 @@ -95,289 +515,7 @@ ФормаКоманднаяПанель -1 - - Обновить - 10 - - <key>ru</key> - <value>Обновить</value> - - true - true - - true - - false - - ОбновитьРасширеннаяПодсказка - 17 - Label - true - true - - Left - - - Form.Command.Обновить - Normal - PictureAndText - true - true - UserCmds - Auto - - - ВывестиДляТекущего - 11 - - <key>ru</key> - <value>Вывести для текущего</value> - - true - true - - true - - false - - ВывестиДляТекущегоРасширеннаяПодсказка - 18 - Label - true - true - - Left - - - Form.Command.ВывестиДляТекущего - Normal - Auto - true - true - UserCmds - Auto - - - Поиск - 31 - - ФормаНайти - 33 - true - true - - true - - - ФормаНайтиРасширеннаяПодсказка - 34 - Label - true - true - - Left - - - Form.Item.ТаблицаОтчета.StandardCommand.Find - Normal - true - true - UserCmds - Auto - InCommandBarAndInAdditionalSubmenu - - - ФормаНайтиСледующий - 35 - true - true - - true - - - ФормаНайтиСледующийРасширеннаяПодсказка - 36 - Label - true - true - - Left - - - Form.Item.ТаблицаОтчета.StandardCommand.FindNext - Normal - Picture - true - true - UserCmds - Auto - InCommandBarAndInAdditionalSubmenu - - true - true - - true - - - <key>ru</key> - <value>Поиск</value> - - - ПоискРасширеннаяПодсказка - 32 - Label - true - true - - Left - - - - Compact - - - - ИзменениеСостояния - 21 - - ИзменениеСостоянияДокумента - 29 - - Провести - 25 - - <key>ru</key> - <value>Провести</value> - - true - true - - true - - - ПровестиРасширеннаяПодсказка - 26 - Label - true - true - - Left - - - Form.Command.Провести - Normal - Auto - true - true - UserCmds - Auto - - - ОтменитьПроведение - 27 - - <key>ru</key> - <value>Отменить проведение</value> - - true - true - - true - - - ОтменитьПроведениеРасширеннаяПодсказка - 28 - Label - true - true - - Left - - - Form.Command.ОтменитьПроведение - Normal - Auto - true - true - UserCmds - Auto - - true - true - - true - - - <key>ru</key> - <value>Изменение состояния документа</value> - - - ИзменениеСостоянияДокументаРасширеннаяПодсказка - 30 - Label - true - true - - Left - - - - Compact - - - - ИзменитьПометкуУдаления - 23 - - <key>ru</key> - <value>Пометить на удаление / Снять пометку</value> - - true - true - - true - - - ИзменитьПометкуУдаленияРасширеннаяПодсказка - 24 - Label - true - true - - Left - - - Form.Command.ИзменитьПометкуУдаления - Normal - Auto - true - true - UserCmds - Auto - - true - true - - true - - - <key>ru</key> - <value>Изменение состояния</value> - - - ИзменениеСостоянияРасширеннаяПодсказка - 22 - Label - true - true - - Left - - - - Left - true OnCreateAtServer @@ -650,6 +788,24 @@ true + + СтрокаПоиска + + <key>ru</key> + <value>Строка поиска</value> + + 7 + + String + + + + true + + + true + + Обновить @@ -772,6 +928,32 @@ <currentRowUse>Auto</currentRowUse> <selectedRowsUse>Auto</selectedRowsUse> </formCommands> + <formCommands> + <name>НайтиСледующуюСтроку</name> + <title> + <key>ru</key> + <value>Найти следующую строку</value> + + 6 + + ru + Повторить предыдущий поиск вперед + + + true + + + StdPicture.FindNext + + + + НайтиСледующуюСтроку + + + Picture + Auto + Auto + ОбъектОтбора diff --git a/SSL/src/CommonForms/СвязанныеДокументы/Module.bsl b/SSL/src/CommonForms/СвязанныеДокументы/Module.bsl index b67bf0d8a..4a8507946 100644 --- a/SSL/src/CommonForms/СвязанныеДокументы/Module.bsl +++ b/SSL/src/CommonForms/СвязанныеДокументы/Module.bsl @@ -1,5 +1,5 @@ /////////////////////////////////////////////////////////////////////////////////////////////////////// -// Copyright (c) 2024, ООО 1С-Софт +// Copyright (c) 2025, ООО 1С-Софт // Все права защищены. Эта программа и сопроводительные материалы предоставляются // в соответствии с условиями лицензии Attribution 4.0 International (CC BY 4.0) // Текст лицензии доступен по ссылке: @@ -29,6 +29,11 @@ #Область ОбработчикиСобытийЭлементовШапкиФормы +&НаКлиенте +Процедура СтрокаПоискаОкончаниеВводаТекста(Элемент, Текст, ДанныеВыбора, ПараметрыПолученияДанных, СтандартнаяОбработка) + НайтиИВыделитьСтроку(Текст); +КонецПроцедуры + &НаКлиенте Процедура ТаблицаОтчетаПриАктивизации(Элемент) @@ -125,6 +130,23 @@ КонецПроцедуры +&НаКлиенте +Процедура НайтиСледующуюСтроку(Команда) + НачалоПоиска = Неопределено; + ВыделенныеОбласти = Элементы.ТаблицаОтчета.ПолучитьВыделенныеОбласти(); + Для Каждого ВыделеннаяОбласть Из ВыделенныеОбласти Цикл + Если ТипЗнч(ВыделеннаяОбласть) = Тип("ОбластьЯчеекТабличногоДокумента") Тогда + СледующаяСтрокаВерх = ВыделеннаяОбласть.Верх + 1; + СледующаяСтрокаНиз = ВыделеннаяОбласть.Низ + 1; + НачалоПоиска = ТаблицаОтчета.Область(СледующаяСтрокаВерх, 1,СледующаяСтрокаНиз, 1); + Прервать; + КонецЕсли; + КонецЦикла; + НачалоПоиска = ?(НачалоПоиска <> Неопределено, НачалоПоиска, Неопределено); + + НайтиИВыделитьСтроку(СтрокаПоиска, НачалоПоиска); +КонецПроцедуры + #КонецОбласти #Область СлужебныеПроцедурыИФункции @@ -1536,9 +1558,7 @@ МаксимальныйНомерКолонки = 100; Пока НомерТекущейКолонки <> МаксимальныйНомерКолонки Цикл Ячейка = ТаблицаОтчета.Область(НомерСтроки, НомерТекущейКолонки, НомерСтроки, НомерТекущейКолонки); - НомерТекущейКолонки = НомерТекущейКолонки + 1; - Если Ячейка = Неопределено Тогда Продолжить; КонецЕсли; @@ -1555,4 +1575,27 @@ #КонецОбласти +&НаКлиенте +Процедура НайтиИВыделитьСтроку(ТекстПоиска, НачалоПоиска = Неопределено) + + Если Не ЗначениеЗаполнено(ТекстПоиска) Тогда + Возврат; + КонецЕсли; + + РезультатПоиска = ТаблицаОтчета.НайтиТекст(ТекстПоиска, НачалоПоиска,,Истина,,,Истина); + Если РезультатПоиска = Неопределено И НачалоПоиска <> Неопределено Тогда + РезультатПоиска = ТаблицаОтчета.НайтиТекст(ТекстПоиска,,,Истина,,,Истина); + КонецЕсли; + + Если РезультатПоиска <> Неопределено Тогда + ВыбранныеСтроки = Новый Массив; + ВыбранныеСтроки.Добавить(РезультатПоиска); + Элементы.ТаблицаОтчета.УстановитьВыделенныеОбласти(ВыбранныеСтроки); + ТекущийЭлемент = Элементы.ТаблицаОтчета; + Иначе + ПоказатьПредупреждение(, НСтр("ru = 'Строка не найдена.'")); + КонецЕсли; + +КонецПроцедуры + #КонецОбласти \ No newline at end of file diff --git a/SSL/src/CommonForms/Сертификат/Module.bsl b/SSL/src/CommonForms/Сертификат/Module.bsl index 2c0b71ba7..caeabf9b6 100644 --- a/SSL/src/CommonForms/Сертификат/Module.bsl +++ b/SSL/src/CommonForms/Сертификат/Module.bsl @@ -1,5 +1,5 @@ /////////////////////////////////////////////////////////////////////////////////////////////////////// -// Copyright (c) 2024, ООО 1С-Софт +// Copyright (c) 2025, ООО 1С-Софт // Все права защищены. Эта программа и сопроводительные материалы предоставляются // в соответствии с условиями лицензии Attribution 4.0 International (CC BY 4.0) // Текст лицензии доступен по ссылке: @@ -553,6 +553,9 @@ ФиксированныйМассив = Значение; Значение = ""; Для каждого ЭлементМассива Из ФиксированныйМассив Цикл + Если ТипЗнч(ЭлементМассива) = Тип("Дата") Тогда + ЭлементМассива = СтрШаблон("%1 UTC", ЭлементМассива); + КонецЕсли; Значение = Значение + ?(Значение = "", "", Символы.ПС) + СокрЛП(ЭлементМассива); КонецЦикла; КонецЕсли; @@ -696,7 +699,7 @@ Запрос = Новый Запрос; Запрос.УстановитьПараметр("Отпечаток", СсылкаОтпечаток); Запрос.Текст = - "ВЫБРАТЬ + "ВЫБРАТЬ РАЗРЕШЕННЫЕ | Сертификаты.ДанныеСертификата |ИЗ | Справочник.СертификатыКлючейЭлектроннойПодписиИШифрования КАК Сертификаты diff --git a/SSL/src/CommonForms/Склонения/Module.bsl b/SSL/src/CommonForms/Склонения/Module.bsl index e8039f86a..2e8d54a36 100644 --- a/SSL/src/CommonForms/Склонения/Module.bsl +++ b/SSL/src/CommonForms/Склонения/Module.bsl @@ -1,5 +1,5 @@ /////////////////////////////////////////////////////////////////////////////////////////////////////// -// Copyright (c) 2024, ООО 1С-Софт +// Copyright (c) 2025, ООО 1С-Софт // Все права защищены. Эта программа и сопроводительные материалы предоставляются // в соответствии с условиями лицензии Attribution 4.0 International (CC BY 4.0) // Текст лицензии доступен по ссылке: diff --git a/SSL/src/CommonForms/СменаПароля/Module.bsl b/SSL/src/CommonForms/СменаПароля/Module.bsl index bcc04b2b2..f6ea55241 100644 --- a/SSL/src/CommonForms/СменаПароля/Module.bsl +++ b/SSL/src/CommonForms/СменаПароля/Module.bsl @@ -1,5 +1,5 @@ /////////////////////////////////////////////////////////////////////////////////////////////////////// -// Copyright (c) 2024, ООО 1С-Софт +// Copyright (c) 2025, ООО 1С-Софт // Все права защищены. Эта программа и сопроводительные материалы предоставляются // в соответствии с условиями лицензии Attribution 4.0 International (CC BY 4.0) // Текст лицензии доступен по ссылке: diff --git a/SSL/src/CommonForms/СозданиеНачальногоОбразаСФайлами/Module.bsl b/SSL/src/CommonForms/СозданиеНачальногоОбразаСФайлами/Module.bsl index 61a4d6410..d43eacef0 100644 --- a/SSL/src/CommonForms/СозданиеНачальногоОбразаСФайлами/Module.bsl +++ b/SSL/src/CommonForms/СозданиеНачальногоОбразаСФайлами/Module.bsl @@ -1,5 +1,5 @@ /////////////////////////////////////////////////////////////////////////////////////////////////////// -// Copyright (c) 2024, ООО 1С-Софт +// Copyright (c) 2025, ООО 1С-Софт // Все права защищены. Эта программа и сопроводительные материалы предоставляются // в соответствии с условиями лицензии Attribution 4.0 International (CC BY 4.0) // Текст лицензии доступен по ссылке: diff --git a/SSL/src/CommonForms/СохранениеВместеСЭлектроннойПодписью/Module.bsl b/SSL/src/CommonForms/СохранениеВместеСЭлектроннойПодписью/Module.bsl index d4722db80..0eef7d212 100644 --- a/SSL/src/CommonForms/СохранениеВместеСЭлектроннойПодписью/Module.bsl +++ b/SSL/src/CommonForms/СохранениеВместеСЭлектроннойПодписью/Module.bsl @@ -1,5 +1,5 @@ /////////////////////////////////////////////////////////////////////////////////////////////////////// -// Copyright (c) 2024, ООО 1С-Софт +// Copyright (c) 2025, ООО 1С-Софт // Все права защищены. Эта программа и сопроводительные материалы предоставляются // в соответствии с условиями лицензии Attribution 4.0 International (CC BY 4.0) // Текст лицензии доступен по ссылке: diff --git a/SSL/src/CommonForms/СохранениеПечатнойФормы/Module.bsl b/SSL/src/CommonForms/СохранениеПечатнойФормы/Module.bsl index 2cb4cf13c..cfd871339 100644 --- a/SSL/src/CommonForms/СохранениеПечатнойФормы/Module.bsl +++ b/SSL/src/CommonForms/СохранениеПечатнойФормы/Module.bsl @@ -1,5 +1,5 @@ /////////////////////////////////////////////////////////////////////////////////////////////////////// -// Copyright (c) 2024, ООО 1С-Софт +// Copyright (c) 2025, ООО 1С-Софт // Все права защищены. Эта программа и сопроводительные материалы предоставляются // в соответствии с условиями лицензии Attribution 4.0 International (CC BY 4.0) // Текст лицензии доступен по ссылке: diff --git a/SSL/src/CommonForms/СохранениеПоФорматуВыгрузки/Module.bsl b/SSL/src/CommonForms/СохранениеПоФорматуВыгрузки/Module.bsl index dc2b65d11..a2dcdcd84 100644 --- a/SSL/src/CommonForms/СохранениеПоФорматуВыгрузки/Module.bsl +++ b/SSL/src/CommonForms/СохранениеПоФорматуВыгрузки/Module.bsl @@ -1,5 +1,5 @@ /////////////////////////////////////////////////////////////////////////////////////////////////////// -// Copyright (c) 2024, ООО 1С-Софт +// Copyright (c) 2025, ООО 1С-Софт // Все права защищены. Эта программа и сопроводительные материалы предоставляются // в соответствии с условиями лицензии Attribution 4.0 International (CC BY 4.0) // Текст лицензии доступен по ссылке: diff --git a/SSL/src/CommonForms/СравнениеТабличныхДокументов/Module.bsl b/SSL/src/CommonForms/СравнениеТабличныхДокументов/Module.bsl index eb4e553f6..602e8a4a3 100644 --- a/SSL/src/CommonForms/СравнениеТабличныхДокументов/Module.bsl +++ b/SSL/src/CommonForms/СравнениеТабличныхДокументов/Module.bsl @@ -1,5 +1,5 @@ /////////////////////////////////////////////////////////////////////////////////////////////////////// -// Copyright (c) 2024, ООО 1С-Софт +// Copyright (c) 2025, ООО 1С-Софт // Все права защищены. Эта программа и сопроводительные материалы предоставляются // в соответствии с условиями лицензии Attribution 4.0 International (CC BY 4.0) // Текст лицензии доступен по ссылке: diff --git a/SSL/src/CommonForms/УстановкаВнешнейКомпонентыНевозможна/Module.bsl b/SSL/src/CommonForms/УстановкаВнешнейКомпонентыНевозможна/Module.bsl index f33ccf12f..1fcb3f525 100644 --- a/SSL/src/CommonForms/УстановкаВнешнейКомпонентыНевозможна/Module.bsl +++ b/SSL/src/CommonForms/УстановкаВнешнейКомпонентыНевозможна/Module.bsl @@ -1,5 +1,5 @@ /////////////////////////////////////////////////////////////////////////////////////////////////////// -// Copyright (c) 2024, ООО 1С-Софт +// Copyright (c) 2025, ООО 1С-Софт // Все права защищены. Эта программа и сопроводительные материалы предоставляются // в соответствии с условиями лицензии Attribution 4.0 International (CC BY 4.0) // Текст лицензии доступен по ссылке: diff --git a/SSL/src/CommonForms/УстановленныеИсправления/Module.bsl b/SSL/src/CommonForms/УстановленныеИсправления/Module.bsl index 39a3ba1bf..894ad371d 100644 --- a/SSL/src/CommonForms/УстановленныеИсправления/Module.bsl +++ b/SSL/src/CommonForms/УстановленныеИсправления/Module.bsl @@ -1,5 +1,5 @@ /////////////////////////////////////////////////////////////////////////////////////////////////////// -// Copyright (c) 2024, ООО 1С-Софт +// Copyright (c) 2025, ООО 1С-Софт // Все права защищены. Эта программа и сопроводительные материалы предоставляются // в соответствии с условиями лицензии Attribution 4.0 International (CC BY 4.0) // Текст лицензии доступен по ссылке: diff --git a/SSL/src/CommonForms/УточнениеКонтактов/Module.bsl b/SSL/src/CommonForms/УточнениеКонтактов/Module.bsl index 915a31566..f320c6c2d 100644 --- a/SSL/src/CommonForms/УточнениеКонтактов/Module.bsl +++ b/SSL/src/CommonForms/УточнениеКонтактов/Module.bsl @@ -1,5 +1,5 @@ /////////////////////////////////////////////////////////////////////////////////////////////////////// -// Copyright (c) 2024, ООО 1С-Софт +// Copyright (c) 2025, ООО 1С-Софт // Все права защищены. Эта программа и сопроводительные материалы предоставляются // в соответствии с условиями лицензии Attribution 4.0 International (CC BY 4.0) // Текст лицензии доступен по ссылке: diff --git a/SSL/src/CommonForms/ФайлыВТоме/Form.form b/SSL/src/CommonForms/ФайлыВТоме/Form.form index 4e9b5bd8c..8e252666a 100644 --- a/SSL/src/CommonForms/ФайлыВТоме/Form.form +++ b/SSL/src/CommonForms/ФайлыВТоме/Form.form @@ -1,5 +1,5 @@ - + <key>ru</key> <value>Файлы в томе</value> @@ -131,6 +131,46 @@ <titleLocation>None</titleLocation> <excludedCommands>CancelSearch</excludedCommands> <excludedCommands>Find</excludedCommands> + <items xsi:type="form:FormField"> + <name>СписокНаименованиеФайла</name> + <id>43</id> + <title> + <key>ru</key> + <value>Имя файла</value> + + true + true + + true + + + Список.НаименованиеФайла + + + СписокНаименованиеФайлаРасширеннаяПодсказка + 45 + Label + true + true + + Left + + + + СписокНаименованиеФайлаКонтекстноеМеню + 44 + true + + LabelField + Enter + true + Left + true + + true + true + + СписокПутьКФайлу 18 @@ -550,7 +590,8 @@ ВЫРАЗИТЬ("" КАК СТРОКА) КАК ПутьКФайлу, ВЫРАЗИТЬ(0 КАК ЧИСЛО(10, 0)) КАК Размер, ЗНАЧЕНИЕ(Справочник.Пользователи.ПустаяСсылка) КАК Автор, - ЛОЖЬ КАК ЭтоПрисоединенныеФайлы + ЛОЖЬ КАК ЭтоПрисоединенныеФайлы, + ВЫРАЗИТЬ("" КАК СТРОКА) КАК НаименованиеФайла ИЗ Справочник.ТомаХраненияФайлов КАК ХранилищеФайловПереопределяемый Catalog.ТомаХраненияФайлов @@ -559,6 +600,138 @@ true true true + + Код + Код + + + СпособХраненияФайлов + СпособХраненияФайлов + + + ВидТомаХраненияФайлов + ВидТомаХраненияФайлов + + + Комментарий + Комментарий + + + ПорядокЗаполнения + ПорядокЗаполнения + + + ВремяПоследнейОчисткиФайлов + ВремяПоследнейОчисткиФайлов + + + МаксимальныйРазмер + МаксимальныйРазмер + + + ПутьКФайлу + ПутьКФайлу + + <localValue> + <content> + <key>ru</key> + <value>Путь к файлу</value> + </content> + </localValue> + + + + ПолныйПутьLinux + ПолныйПутьLinux + + + ПолныйПутьWindows + ПолныйПутьWindows + + + ИмяХранилищаДвоичныхДанных + ИмяХранилищаДвоичныхДанных + + + Предопределенный + Предопределенный + + + Ссылка + Ссылка + + + ИмяПредопределенныхДанных + ИмяПредопределенныхДанных + + + Наименование + Наименование + + + ИндексКартинки + ИндексКартинки + + <localValue> + <content> + <key>ru</key> + <value>Индекс картинки</value> + </content> + </localValue> + + + + Размер + Размер + + <localValue> + <content> + <key>ru</key> + <value>Размер</value> + </content> + </localValue> + + + + Автор + Автор + + <localValue> + <content> + <key>ru</key> + <value>Автор</value> + </content> + </localValue> + + + + ЭтоПрисоединенныеФайлы + ЭтоПрисоединенныеФайлы + + <localValue> + <content> + <key>ru</key> + <value>Это присоединенные файлы</value> + </content> + </localValue> + + + + ПометкаУдаления + ПометкаУдаления + + + НаименованиеФайла + НаименованиеФайла + + <localValue> + <content> + <key>ru</key> + <value>Наименование файла</value> + </content> + </localValue> + + diff --git a/SSL/src/CommonForms/ФайлыВТоме/Module.bsl b/SSL/src/CommonForms/ФайлыВТоме/Module.bsl index 9604abd3a..e5f502bdd 100644 --- a/SSL/src/CommonForms/ФайлыВТоме/Module.bsl +++ b/SSL/src/CommonForms/ФайлыВТоме/Module.bsl @@ -1,5 +1,5 @@ /////////////////////////////////////////////////////////////////////////////////////////////////////// -// Copyright (c) 2024, ООО 1С-Софт +// Copyright (c) 2025, ООО 1С-Софт // Все права защищены. Эта программа и сопроводительные материалы предоставляются // в соответствии с условиями лицензии Attribution 4.0 International (CC BY 4.0) // Текст лицензии доступен по ссылке: @@ -44,6 +44,8 @@ КонецЕсли; НастроитьДинамическийСписок(ИмяХранилищаФайлов); + + УстановитьВидимостьКолонокСписка(); Если ОбщегоНазначения.ЭтоМобильныйКлиент() Тогда Элементы.ПредставлениеХранилищаФайлов.ПоложениеЗаголовка = ПоложениеЗаголовкаЭлементаФормы.Верх; @@ -113,7 +115,8 @@ | ХранилищеФайлов.ПутьКФайлу КАК ПутьКФайлу, | ХранилищеФайлов.Размер КАК Размер, | ХранилищеФайлов.Автор КАК Автор, - | &ЭтоПрисоединенныеФайлы КАК ЭтоПрисоединенныеФайлы + | &ЭтоПрисоединенныеФайлы КАК ЭтоПрисоединенныеФайлы, + | ХранилищеФайлов.Наименование КАК НаименованиеФайла |ИЗ | &ИмяСправочника КАК ХранилищеФайлов |ГДЕ @@ -134,6 +137,16 @@ КонецПроцедуры +&НаСервере +Процедура УстановитьВидимостьКолонокСписка() + + СпособХраненияФайлов = ОбщегоНазначения.ЗначениеРеквизитаОбъекта(Том, "СпособХраненияФайлов"); + Если СпособХраненияФайлов <> Перечисления.СпособыХраненияФайлов.ВСетевыхКаталогах Тогда + Элементы.СписокПутьКФайлу.Видимость = Ложь; + КонецЕсли; + +КонецПроцедуры + &НаСервере Процедура ЗаполнитьИменаХранилищФайлов() diff --git a/SSL/src/CommonForms/ФормаВариантаОтчета/Module.bsl b/SSL/src/CommonForms/ФормаВариантаОтчета/Module.bsl index 26620b766..e2f6394df 100644 --- a/SSL/src/CommonForms/ФормаВариантаОтчета/Module.bsl +++ b/SSL/src/CommonForms/ФормаВариантаОтчета/Module.bsl @@ -1,5 +1,5 @@ /////////////////////////////////////////////////////////////////////////////////////////////////////// -// Copyright (c) 2024, ООО 1С-Софт +// Copyright (c) 2025, ООО 1С-Софт // Все права защищены. Эта программа и сопроводительные материалы предоставляются // в соответствии с условиями лицензии Attribution 4.0 International (CC BY 4.0) // Текст лицензии доступен по ссылке: diff --git a/SSL/src/CommonForms/ФормаВыбораЦвета/Module.bsl b/SSL/src/CommonForms/ФормаВыбораЦвета/Module.bsl index 828ed60f9..1be68b12f 100644 --- a/SSL/src/CommonForms/ФормаВыбораЦвета/Module.bsl +++ b/SSL/src/CommonForms/ФормаВыбораЦвета/Module.bsl @@ -1,5 +1,5 @@ /////////////////////////////////////////////////////////////////////////////////////////////////////// -// Copyright (c) 2024, ООО 1С-Софт +// Copyright (c) 2025, ООО 1С-Софт // Все права защищены. Эта программа и сопроводительные материалы предоставляются // в соответствии с условиями лицензии Attribution 4.0 International (CC BY 4.0) // Текст лицензии доступен по ссылке: diff --git a/SSL/src/CommonForms/ФормаВыбораШрифта/Module.bsl b/SSL/src/CommonForms/ФормаВыбораШрифта/Module.bsl index b6adbf8ec..b79a1658b 100644 --- a/SSL/src/CommonForms/ФормаВыбораШрифта/Module.bsl +++ b/SSL/src/CommonForms/ФормаВыбораШрифта/Module.bsl @@ -1,5 +1,5 @@ /////////////////////////////////////////////////////////////////////////////////////////////////////// -// Copyright (c) 2024, ООО 1С-Софт +// Copyright (c) 2025, ООО 1С-Софт // Все права защищены. Эта программа и сопроводительные материалы предоставляются // в соответствии с условиями лицензии Attribution 4.0 International (CC BY 4.0) // Текст лицензии доступен по ссылке: diff --git a/SSL/src/CommonForms/ФормаНастроекОтчета/Module.bsl b/SSL/src/CommonForms/ФормаНастроекОтчета/Module.bsl index 7e26c3cb2..ee6587f28 100644 --- a/SSL/src/CommonForms/ФормаНастроекОтчета/Module.bsl +++ b/SSL/src/CommonForms/ФормаНастроекОтчета/Module.bsl @@ -1,5 +1,5 @@ /////////////////////////////////////////////////////////////////////////////////////////////////////// -// Copyright (c) 2024, ООО 1С-Софт +// Copyright (c) 2025, ООО 1С-Софт // Все права защищены. Эта программа и сопроводительные материалы предоставляются // в соответствии с условиями лицензии Attribution 4.0 International (CC BY 4.0) // Текст лицензии доступен по ссылке: @@ -6908,7 +6908,7 @@ КонецЕсли; КоличествоДоступныхНастроек = ОтчетыСервер.КоличествоДоступныхНастроек(Отчет.КомпоновщикНастроек); - Элементы.ЗакрытьИСформировать.Видимость = КоличествоДоступныхНастроек.Итог > 0 Или ОтображатьСтраницы; + Элементы.ЗакрытьИСформировать.Видимость = КоличествоДоступныхНастроек.Итог > 0 Или Элементы.Дополнительно.Видимость Или ОтображатьСтраницы; Если ЭтоМобильныйКлиент Тогда Элементы.РасширенныйРежим.Видимость = Ложь; Элементы.ГруппаНастройка.Видимость = Ложь; diff --git a/SSL/src/CommonForms/ФормаОтчета/Module.bsl b/SSL/src/CommonForms/ФормаОтчета/Module.bsl index cb56f8d76..710f1f41d 100644 --- a/SSL/src/CommonForms/ФормаОтчета/Module.bsl +++ b/SSL/src/CommonForms/ФормаОтчета/Module.bsl @@ -1,5 +1,5 @@ /////////////////////////////////////////////////////////////////////////////////////////////////////// -// Copyright (c) 2024, ООО 1С-Софт +// Copyright (c) 2025, ООО 1С-Софт // Все права защищены. Эта программа и сопроводительные материалы предоставляются // в соответствии с условиями лицензии Attribution 4.0 International (CC BY 4.0) // Текст лицензии доступен по ссылке: diff --git a/SSL/src/CommonForms/ФормаПоиска/Module.bsl b/SSL/src/CommonForms/ФормаПоиска/Module.bsl index e1c3bfca1..ed7ca7a41 100644 --- a/SSL/src/CommonForms/ФормаПоиска/Module.bsl +++ b/SSL/src/CommonForms/ФормаПоиска/Module.bsl @@ -1,5 +1,5 @@ /////////////////////////////////////////////////////////////////////////////////////////////////////// -// Copyright (c) 2024, ООО 1С-Софт +// Copyright (c) 2025, ООО 1С-Софт // Все права защищены. Эта программа и сопроводительные материалы предоставляются // в соответствии с условиями лицензии Attribution 4.0 International (CC BY 4.0) // Текст лицензии доступен по ссылке: diff --git a/SSL/src/CommonForms/ЭлектроннаяПодпись/Module.bsl b/SSL/src/CommonForms/ЭлектроннаяПодпись/Module.bsl index 487bab0a3..0ecafd088 100644 --- a/SSL/src/CommonForms/ЭлектроннаяПодпись/Module.bsl +++ b/SSL/src/CommonForms/ЭлектроннаяПодпись/Module.bsl @@ -1,5 +1,5 @@ /////////////////////////////////////////////////////////////////////////////////////////////////////// -// Copyright (c) 2024, ООО 1С-Софт +// Copyright (c) 2025, ООО 1С-Софт // Все права защищены. Эта программа и сопроводительные материалы предоставляются // в соответствии с условиями лицензии Attribution 4.0 International (CC BY 4.0) // Текст лицензии доступен по ссылке: diff --git a/SSL/src/CommonModules/GoogleПереводчик/Module.bsl b/SSL/src/CommonModules/GoogleПереводчик/Module.bsl index a7367add4..c105c6c97 100644 --- a/SSL/src/CommonModules/GoogleПереводчик/Module.bsl +++ b/SSL/src/CommonModules/GoogleПереводчик/Module.bsl @@ -1,5 +1,5 @@ /////////////////////////////////////////////////////////////////////////////////////////////////////// -// Copyright (c) 2024, ООО 1С-Софт +// Copyright (c) 2025, ООО 1С-Софт // Все права защищены. Эта программа и сопроводительные материалы предоставляются // в соответствии с условиями лицензии Attribution 4.0 International (CC BY 4.0) // Текст лицензии доступен по ссылке: diff --git a/SSL/src/CommonModules/АвтономнаяРабота/Module.bsl b/SSL/src/CommonModules/АвтономнаяРабота/Module.bsl index 5c933ed1c..bdc83b440 100644 --- a/SSL/src/CommonModules/АвтономнаяРабота/Module.bsl +++ b/SSL/src/CommonModules/АвтономнаяРабота/Module.bsl @@ -1,5 +1,5 @@ /////////////////////////////////////////////////////////////////////////////////////////////////////// -// Copyright (c) 2024, ООО 1С-Софт +// Copyright (c) 2025, ООО 1С-Софт // Все права защищены. Эта программа и сопроводительные материалы предоставляются // в соответствии с условиями лицензии Attribution 4.0 International (CC BY 4.0) // Текст лицензии доступен по ссылке: diff --git a/SSL/src/CommonModules/АвтономнаяРаботаСлужебный/Module.bsl b/SSL/src/CommonModules/АвтономнаяРаботаСлужебный/Module.bsl index 7703ee816..47e7ec211 100644 --- a/SSL/src/CommonModules/АвтономнаяРаботаСлужебный/Module.bsl +++ b/SSL/src/CommonModules/АвтономнаяРаботаСлужебный/Module.bsl @@ -1,5 +1,5 @@ /////////////////////////////////////////////////////////////////////////////////////////////////////// -// Copyright (c) 2024, ООО 1С-Софт +// Copyright (c) 2025, ООО 1С-Софт // Все права защищены. Эта программа и сопроводительные материалы предоставляются // в соответствии с условиями лицензии Attribution 4.0 International (CC BY 4.0) // Текст лицензии доступен по ссылке: @@ -18,7 +18,7 @@ // Для внутреннего использования. // // Возвращаемое значение: -// Булево - Признак, требуется ли показывать вопрос о долгой синхронизации +// Булево - признак, требуется ли показывать вопрос о долгой синхронизации // Функция ФлагНастройкиВопросаОДолгойСинхронизации(ЗначениеФлага = Неопределено, ОписаниеНастройки = Неопределено) Экспорт ОписаниеНастройки = Новый Структура; @@ -42,7 +42,7 @@ // Для внутреннего использования // // Возвращаемое значение: -// Строка - Значение константы АдресДляВосстановленияПароляУчетнойЗаписи +// Строка - значение константы АдресДляВосстановленияПароляУчетнойЗаписи // Функция АдресДляВосстановленияПароляУчетнойЗаписи() Экспорт @@ -52,8 +52,7 @@ КонецФункции -//////////////////////////////////////////////////////////////////////////////// -// СЛУЖЕБНЫЕ ПРОЦЕДУРЫ И ФУНКЦИИ, ИСПОЛЬЗУЕМЫЕ НА СТОРОНЕ СЕРВИСА +#Область СлужебныеПроцедурыИФункцииИспользуемыеНаСторонеСервиса // Для внутреннего использования // @@ -211,7 +210,7 @@ // Для внутреннего использования // // Возвращаемое значение: -// Строка - Имя объекта метаданных ПланОбмена, который является автономным рабочим местом +// Строка - имя объекта метаданных ПланОбмена, который является автономным рабочим местом // Функция ПланОбменаАвтономнойРаботы() Экспорт @@ -234,7 +233,7 @@ // АвтономноеРабочееМесто - ПланОбменаСсылка - ссылка на узел плана обмена, // // Возвращаемое значение: -// - Неопределено - Если не заполнена дата последней синхронизации по переданному узлу +// - Неопределено - если не заполнена дата последней синхронизации по переданному узлу // - Дата // Функция ДатаПоследнейУспешнойСинхронизации(АвтономноеРабочееМесто) Экспорт @@ -313,7 +312,7 @@ // ПоследнийПрефикс - Строка // // Возвращаемое значение: -// Строка - Префикс автономного рабочего места +// Строка - префикс автономного рабочего места // Функция СформироватьПрефиксАвтономногоРабочегоМеста(Знач ПоследнийПрефикс = "") Экспорт @@ -416,7 +415,7 @@ // Для внутреннего использования // // Возвращаемое значение: -// ТаблицаЗначений - Монитор автономных рабочих мест +// ТаблицаЗначений - монитор автономных рабочих мест // Функция МониторАвтономныхРабочихМест() Экспорт @@ -474,7 +473,8 @@ // Для внутреннего использования // // Возвращаемое значение: -// Строка - Событие журнала регистрации создание автономного рабочего места +// Строка - событие журнала регистрации создание автономного рабочего места +// Функция СобытиеЖурналаРегистрацииСозданиеАвтономногоРабочегоМеста() Экспорт Возврат НСтр("ru = 'Автономная работа.Создание автономного рабочего места'", ОбщегоНазначения.КодОсновногоЯзыка()); @@ -484,7 +484,7 @@ // Для внутреннего использования // // Возвращаемое значение: -// Строка - Описание события +// Строка - описание события // Функция СобытиеЖурналаРегистрацииУдалениеАвтономногоРабочегоМеста() Экспорт @@ -495,7 +495,7 @@ // Для внутреннего использования // // Параметры: -// ИмяМакета - Строка - Имя макета обработки ПомощникСозданияАвтономногоРабочегоМеста +// ИмяМакета - Строка - имя макета обработки ПомощникСозданияАвтономногоРабочегоМеста // // Возвращаемое значение: // Строка @@ -508,8 +508,9 @@ Возврат Результат; КонецФункции -//////////////////////////////////////////////////////////////////////////////// -// СЛУЖЕБНЫЕ ПРОЦЕДУРЫ И ФУНКЦИИ, ИСПОЛЬЗУЕМЫЕ НА СТОРОНЕ АВТОНОМНОГО РАБОЧЕГО МЕСТА +#КонецОбласти + +#Область СлужебныеПроцедурыИФункцииИспользуемыеНаСторонеАвтономногоРабочегоМеста // Для внутреннего использования // @@ -563,7 +564,7 @@ // Для внутреннего использования. // // Параметры: -// ЗагрузкаДанных - Булево - Значение по умолчанию - Ложь. +// ЗагрузкаДанных - Булево - значение по умолчанию - Ложь. // Процедура ВыполнитьНастройкуАвтономногоРабочегоМестаПриПервомЗапуске(ЗагрузкаДанных = Ложь) Экспорт @@ -602,7 +603,7 @@ Параметры.Корреспондент = Источник.Корреспондент; Параметры.ИдентификаторТранспорта = Источник.ИдентификаторТранспорта; - Транспорт = ТранспортСообщенийОбмена.Инициализация(Параметры); + Транспорт = ТранспортСообщенийОбмена.Инициализация(Параметры, Ложь); Если Транспорт.ТребуетсяАутентификация() Тогда @@ -705,7 +706,7 @@ // Структура: // * УзелИнформационнойБазы - см. ПриложениеВСервисе // * АдресДляВосстановленияПароляУчетнойЗаписи - см. АдресДляВосстановленияПароляУчетнойЗаписи -// * ЗакрытьПриУспешнойСинхронизации - Булево - По умолчанию - Истина. +// * ЗакрытьПриУспешнойСинхронизации - Булево - по умолчанию - Истина. // Функция ПараметрыФормыВыполненияОбменаДанными() Экспорт @@ -716,7 +717,7 @@ // Для внутреннего использования // // Параметры: -// Интервал - Число - По умолчанию - 1 час. +// Интервал - Число - по умолчанию - 1 час. // // Возвращаемое значение: // Булево @@ -999,6 +1000,8 @@ #КонецОбласти +#КонецОбласти + #Область СлужебныеПроцедурыИФункции Процедура УстановитьИспользованиеИтоговРегистров(ФлагИспользования) @@ -1095,16 +1098,33 @@ Попытка ИзменитьИспользованиеРазделения(Истина, Параметры.ОбластьДанных); + Блокировка = Новый БлокировкаДанных; + ЭлементБлокировки = Блокировка.Добавить(ОбщегоНазначения.ИмяТаблицыПоСсылке(ГлавныйУзелСсылка)); + ЭлементБлокировки.УстановитьЗначение("Ссылка", ГлавныйУзелСсылка); + Блокировка.Заблокировать(); + + ЗаблокироватьДанныеДляРедактирования(ГлавныйУзелСсылка); + ГлавныйУзелОбъект = ГлавныйУзелСсылка.ПолучитьОбъект(); ГлавныйУзелОбъект.ОбменДанными.Загрузка = Истина; ГлавныйУзелОбъект.ДополнительныеСвойства.Вставить("ЭтоГлавныйУзелАРМ"); ГлавныйУзелОбъект.ДополнительныеСвойства.Вставить("УдалениеНастройкиСинхронизации"); + ГлавныйУзелОбъект.Удалить(); ИзменитьИспользованиеРазделения(Ложь); - // Создаем узлы плана обмена автономной работы в нулевой области данных. - УзелАвтономногоРабочегоМеста = ПланыОбмена[ПланОбменаАвтономнойРаботы()].ЭтотУзел().ПолучитьОбъект(); + // Создаем узлы плана обмена автономной работы в нулевой области данных. + СсылкаУзелАвтономногоРабочегоМеста = ПланыОбмена[ПланОбменаАвтономнойРаботы()].ЭтотУзел(); + + Блокировка = Новый БлокировкаДанных; + ЭлементБлокировки = Блокировка.Добавить(ОбщегоНазначения.ИмяТаблицыПоСсылке(СсылкаУзелАвтономногоРабочегоМеста)); + ЭлементБлокировки.УстановитьЗначение("Ссылка", СсылкаУзелАвтономногоРабочегоМеста); + Блокировка.Заблокировать(); + + ЗаблокироватьДанныеДляРедактирования(СсылкаУзелАвтономногоРабочегоМеста); + + УзелАвтономногоРабочегоМеста = СсылкаУзелАвтономногоРабочегоМеста.ПолучитьОбъект(); УзелАвтономногоРабочегоМеста.Код = Параметры.КодАвтономногоРабочегоМеста; УзелАвтономногоРабочегоМеста.Наименование = Параметры.НаименованиеАвтономногоРабочегоМеста; УзелАвтономногоРабочегоМеста.ДополнительныеСвойства.Вставить("ПолучениеСообщенияОбмена"); @@ -1479,8 +1499,7 @@ КонецФункции -//////////////////////////////////////////////////////////////////////////////// -// Обработчики условных вызовов в другие подсистемы +#Область ОбработчикиУсловныхВызововВДругиеПодсистемы // Выполняет проверку объекта на вхождение в список исключений Функция ОбъектМетаданныхЯвляетсяИсключением(Знач ОбъектМетаданных) @@ -1502,4 +1521,6 @@ КонецФункции +#КонецОбласти + #КонецОбласти \ No newline at end of file diff --git a/SSL/src/CommonModules/АвтономнаяРаботаСлужебныйКлиент/Module.bsl b/SSL/src/CommonModules/АвтономнаяРаботаСлужебныйКлиент/Module.bsl index 7f5f691ec..ab39bb56a 100644 --- a/SSL/src/CommonModules/АвтономнаяРаботаСлужебныйКлиент/Module.bsl +++ b/SSL/src/CommonModules/АвтономнаяРаботаСлужебныйКлиент/Module.bsl @@ -1,5 +1,5 @@ /////////////////////////////////////////////////////////////////////////////////////////////////////// -// Copyright (c) 2024, ООО 1С-Софт +// Copyright (c) 2025, ООО 1С-Софт // Все права защищены. Эта программа и сопроводительные материалы предоставляются // в соответствии с условиями лицензии Attribution 4.0 International (CC BY 4.0) // Текст лицензии доступен по ссылке: diff --git a/SSL/src/CommonModules/АдминистрированиеКластера/Module.bsl b/SSL/src/CommonModules/АдминистрированиеКластера/Module.bsl index 38cbc4210..72e91ffa1 100644 --- a/SSL/src/CommonModules/АдминистрированиеКластера/Module.bsl +++ b/SSL/src/CommonModules/АдминистрированиеКластера/Module.bsl @@ -1,5 +1,5 @@ /////////////////////////////////////////////////////////////////////////////////////////////////////// -// Copyright (c) 2024, ООО 1С-Софт +// Copyright (c) 2025, ООО 1С-Софт // Все права защищены. Эта программа и сопроводительные материалы предоставляются // в соответствии с условиями лицензии Attribution 4.0 International (CC BY 4.0) // Текст лицензии доступен по ссылке: @@ -1534,6 +1534,20 @@ #Область СлужебныеПроцедурыИФункции +Функция ИдентификаторыКлиентскихПриложений() Экспорт + Результат = Новый Массив; + Результат.Добавить("1CV8"); // идентификатор приложения 1С:Предприятие в режиме запуска "Толстый клиент". + Результат.Добавить("1CV8CDirect"); // идентификатор приложения 1С:Предприятие в режиме запуска "Тонкий клиент" в случае прямого подключения к серверу + Результат.Добавить("1CV8C"); // идентификатор приложения 1С:Предприятие в режиме запуска "Тонкий клиент". + Результат.Добавить("WebClient"); // идентификатор приложения 1С:Предприятие в режиме запуска "Веб-клиент". + Результат.Добавить("Designer"); // идентификатор приложения Конфигуратор. + Результат.Добавить("COMConnection"); // идентификатор сессии внешнего соединения 1С:Предприятия через COM. + Результат.Добавить("WSConnection"); // идентификатор сессии Web-сервиса. + Результат.Добавить("BackgroundJob"); // идентификатор сессии обработки заданий. + Результат.Добавить("WebServerExtension"); // идентификатор расширения Web-сервера. + Возврат Результат; +КонецФункции + Процедура ДобавитьУсловиеФильтра(Фильтр, Знач Свойство, Знач ВидСравненияЗначений, Знач Значение) Экспорт Если Фильтр = Неопределено Тогда @@ -1553,8 +1567,12 @@ КонецЕсли; ИначеЕсли ТипЗнч(Фильтр) = Тип("Структура") Тогда + Если Фильтр.Свойство("Ключ") Тогда + СуществующийЭлементФильтра = Новый Структура("Свойство, ВидСравнения, Значение", Фильтр.Ключ, ВидСравнения.Равно, Фильтр.Значение); + Иначе + СуществующийЭлементФильтра = ОбщегоНазначения.СкопироватьРекурсивно(Фильтр); + КонецЕсли; - СуществующийЭлементФильтра = Новый Структура("Свойство, ВидСравнения, Значение", Фильтр.Ключ, ВидСравнения.Равно, Фильтр.Значение); НовыйЭлементФильтра = Новый Структура("Свойство, ВидСравнения, Значение", Свойство, ВидСравненияЗначений, Значение); Фильтр = Новый Массив; diff --git a/SSL/src/CommonModules/АдминистрированиеКластераCOM/Module.bsl b/SSL/src/CommonModules/АдминистрированиеКластераCOM/Module.bsl index 5f7c8b5cf..be81bebc6 100644 --- a/SSL/src/CommonModules/АдминистрированиеКластераCOM/Module.bsl +++ b/SSL/src/CommonModules/АдминистрированиеКластераCOM/Module.bsl @@ -1,5 +1,5 @@ /////////////////////////////////////////////////////////////////////////////////////////////////////// -// Copyright (c) 2024, ООО 1С-Софт +// Copyright (c) 2025, ООО 1С-Софт // Все права защищены. Эта программа и сопроводительные материалы предоставляются // в соответствии с условиями лицензии Attribution 4.0 International (CC BY 4.0) // Текст лицензии доступен по ссылке: diff --git a/SSL/src/CommonModules/АдминистрированиеКластераCOMКлиентСервер/Module.bsl b/SSL/src/CommonModules/АдминистрированиеКластераCOMКлиентСервер/Module.bsl index 050788402..8450c89f1 100644 --- a/SSL/src/CommonModules/АдминистрированиеКластераCOMКлиентСервер/Module.bsl +++ b/SSL/src/CommonModules/АдминистрированиеКластераCOMКлиентСервер/Module.bsl @@ -1,5 +1,5 @@ /////////////////////////////////////////////////////////////////////////////////////////////////////// -// Copyright (c) 2024, ООО 1С-Софт +// Copyright (c) 2025, ООО 1С-Софт // Все права защищены. Эта программа и сопроводительные материалы предоставляются // в соответствии с условиями лицензии Attribution 4.0 International (CC BY 4.0) // Текст лицензии доступен по ссылке: diff --git a/SSL/src/CommonModules/АдминистрированиеКластераRAS/Module.bsl b/SSL/src/CommonModules/АдминистрированиеКластераRAS/Module.bsl index 0eb4aa554..f81f8023b 100644 --- a/SSL/src/CommonModules/АдминистрированиеКластераRAS/Module.bsl +++ b/SSL/src/CommonModules/АдминистрированиеКластераRAS/Module.bsl @@ -1,5 +1,5 @@ /////////////////////////////////////////////////////////////////////////////////////////////////////// -// Copyright (c) 2024, ООО 1С-Софт +// Copyright (c) 2025, ООО 1С-Софт // Все права защищены. Эта программа и сопроводительные материалы предоставляются // в соответствии с условиями лицензии Attribution 4.0 International (CC BY 4.0) // Текст лицензии доступен по ссылке: @@ -10,293 +10,147 @@ #Область БлокировкаСеансовИЗаданий -// Возвращает текущее состояние блокировки сеансов и регламентных заданий для информационной базы. -// -// Параметры: -// ПараметрыАдминистрированияКластера - см. АдминистрированиеКластера.ПараметрыАдминистрированияКластера -// ПараметрыАдминистрированияИБ - см. АдминистрированиеКластера.ПараметрыАдминистрированияИнформационнойБазыКластера -// -// Возвращаемое значение: -// см. АдминистрированиеКластера.СвойстваБлокировкиСеансовИРегламентныхЗаданий -// +// См. АдминистрированиеКластера.БлокировкаСеансовИЗаданийИнформационнойБазы Функция БлокировкаСеансовИЗаданийИнформационнойБазы(Знач ПараметрыАдминистрированияКластера, Знач ПараметрыАдминистрированияИБ) Экспорт - Результат = СвойстваИнформационнойБазы(ПараметрыАдминистрированияКластера, ПараметрыАдминистрированияИБ, СловарьСвойствБлокировкиСеансовИРегламентныхЗаданий()); - - Если Результат.ДатаС = АдминистрированиеКластера.ПустаяДата() Тогда - Результат.ДатаС = Неопределено; - КонецЕсли; - - Если Результат.ДатаПо = АдминистрированиеКластера.ПустаяДата() Тогда - Результат.ДатаПо = Неопределено; - КонецЕсли; - - Если Не ЗначениеЗаполнено(Результат.КодРазрешения) Тогда - Результат.КодРазрешения = ""; - КонецЕсли; - - Если Не ЗначениеЗаполнено(Результат.Сообщение) Тогда - Результат.Сообщение = ""; - КонецЕсли; - - Если Не ЗначениеЗаполнено(Результат.ПараметрБлокировки) Тогда - Результат.ПараметрБлокировки = ""; - КонецЕсли; - + АгентСервера = АгентСервера(ПараметрыАдминистрированияКластера); + КластерСервера = КластерСервера(АгентСервера, ПараметрыАдминистрированияКластера); + БазаКластера = БазаКластера(КластерСервера, ПараметрыАдминистрированияИБ); + Результат = СвойстваБлокировкиСеансовИРегламентныхЗаданий(БазаКластера); Возврат Результат; КонецФункции -// Устанавливает новое состояние блокировки сеансов и регламентных заданий для информационной базы. -// -// Параметры: -// ПараметрыАдминистрированияКластера - см. АдминистрированиеКластера.ПараметрыАдминистрированияКластера -// ПараметрыАдминистрированияИБ - см. АдминистрированиеКластера.ПараметрыАдминистрированияИнформационнойБазыКластера -// СвойстваБлокировкиСеансовИЗаданий - см. АдминистрированиеКластера.СвойстваБлокировкиСеансовИРегламентныхЗаданий -// +// См. АдминистрированиеКластера.УстановитьБлокировкуСеансовИЗаданийИнформационнойБазы Процедура УстановитьБлокировкуСеансовИЗаданийИнформационнойБазы(Знач ПараметрыАдминистрированияКластера, Знач ПараметрыАдминистрированияИБ, Знач СвойстваБлокировкиСеансовИЗаданий) Экспорт + + УстанавливаемаяБлокировка = ОбщегоНазначения.СкопироватьРекурсивно(СвойстваБлокировкиСеансовИЗаданий, Ложь); + ПустаяДата = Дата(1, 1, 1); + УстановитьУмолчание(УстанавливаемаяБлокировка.ДатаС, ПустаяДата); + УстановитьУмолчание(УстанавливаемаяБлокировка.ДатаПо, ПустаяДата); + + АгентСервера = АгентСервера(ПараметрыАдминистрированияКластера); + КластерСервера = КластерСервера(АгентСервера, ПараметрыАдминистрированияКластера); + БазаКластера = БазаКластера(КластерСервера, ПараметрыАдминистрированияИБ); + + УстановитьСвойство(БазаКластера.ВключенаБлокировкаНачалаСеансов, УстанавливаемаяБлокировка, "БлокировкаСеансов"); + УстановитьСвойство(БазаКластера.ВремяНачалаБлокировки, УстанавливаемаяБлокировка, "ДатаС"); + УстановитьСвойство(БазаКластера.ВремяОкончанияБлокировки, УстанавливаемаяБлокировка, "ДатаПо"); + УстановитьСвойство(БазаКластера.СообщениеБлокировки, УстанавливаемаяБлокировка, "Сообщение"); + УстановитьСвойство(БазаКластера.КодРазрешенияНачалаСеансов, УстанавливаемаяБлокировка, "КодРазрешения"); + УстановитьСвойство(БазаКластера.ПараметрБлокировки, УстанавливаемаяБлокировка, "ПараметрБлокировки"); + УстановитьСвойство(БазаКластера.БлокировкаРегламентныхЗаданий, УстанавливаемаяБлокировка, "БлокировкаРегламентныхЗаданий"); - УстановитьСвойстваИнформационнойБазы( - ПараметрыАдминистрированияКластера, - ПараметрыАдминистрированияИБ, - СловарьСвойствБлокировкиСеансовИРегламентныхЗаданий(), - СвойстваБлокировкиСеансовИЗаданий); - + БазаКластера.Записать(); КонецПроцедуры -// Проверяет корректность параметров администрирования. -// -// Параметры: -// ПараметрыАдминистрированияКластера - см. АдминистрированиеКластера.ПараметрыАдминистрированияКластера -// ПараметрыАдминистрированияИБ - см. АдминистрированиеКластера.ПараметрыАдминистрированияИнформационнойБазыКластера -// ПроверятьПараметрыАдминистрированияИнформационнойБазы - Булево - флаг необходимости проверки параметров -// администрирования кластера. -// ПроверятьПараметрыАдминистрированияКластера - Булево - флаг необходимости проверки параметров администрирования кластера -// +// См. АдминистрированиеКластера.ПроверитьПараметрыАдминистрирования Процедура ПроверитьПараметрыАдминистрирования(Знач ПараметрыАдминистрированияКластера, Знач ПараметрыАдминистрированияИБ = Неопределено, ПроверятьПараметрыАдминистрированияИнформационнойБазы = Истина, ПроверятьПараметрыАдминистрированияКластера = Истина) Экспорт - Если ПроверятьПараметрыАдминистрированияКластера Или ПроверятьПараметрыАдминистрированияИнформационнойБазы Тогда - - Попытка - ИдентификаторКластера = ИдентификаторКластера(ПараметрыАдминистрированияКластера); - СвойстваРабочихПроцессов(ИдентификаторКластера, ПараметрыАдминистрированияКластера); - Исключение - ВызватьИсключение СтроковыеФункцииКлиентСервер.ПодставитьПараметрыВСтроку( - НСтр("ru = 'Не удалось подключиться с компьютера %1 к кластеру серверов по причине: - |%2 - | - |Если на компьютере %1 не запущен сервер администрирования (ras), следует его запустить. - |Например: - |""%3"" cluster --port=%4 %5:%6 - | - |Также рекомендуется проверить параметры подключения и сетевого экрана.'"), - ИмяКомпьютера(), ОбработкаОшибок.КраткоеПредставлениеОшибки(ИнформацияОбОшибке()), - КаталогПрограммы() + ?(ОбщегоНазначения.ЭтоWindowsСервер(), "ras.exe", "ras"), - XMLСтрока(ПараметрыАдминистрированияКластера.ПортСервераАдминистрирования), - ПараметрыАдминистрированияКластера.АдресАгентаСервера, - XMLСтрока(ПараметрыАдминистрированияКластера.ПортАгентаСервера)); - КонецПопытки; - + Если ПроверятьПараметрыАдминистрированияКластера ИЛИ ПроверятьПараметрыАдминистрированияИнформационнойБазы Тогда + АгентСервера = АгентСервера(ПараметрыАдминистрированияКластера); + КластерСервера = КластерСервера(АгентСервера, ПараметрыАдминистрированияКластера); КонецЕсли; - Если ПроверятьПараметрыАдминистрированияИнформационнойБазы Тогда - - Словарь = Новый Структура(); - Словарь.Вставить("БлокировкаСеансов", "sessions-deny"); - - СвойстваИнформационнойБазы(ПараметрыАдминистрированияКластера, ПараметрыАдминистрированияИБ, Словарь); - - КонецЕсли; - + БазаКластера(КластерСервера, ПараметрыАдминистрированияИБ); + КонецЕсли; КонецПроцедуры #КонецОбласти #Область БлокировкаРегламентныхЗаданий -// Возвращает текущее состояние блокировки регламентных заданий для информационной базы. -// -// Параметры: -// ПараметрыАдминистрированияКластера - см. АдминистрированиеКластера.ПараметрыАдминистрированияКластера -// ПараметрыАдминистрированияИБ - см. АдминистрированиеКластера.ПараметрыАдминистрированияИнформационнойБазыКластера -// -// Возвращаемое значение: -// Булево -// -Функция БлокировкаРегламентныхЗаданийИнформационнойБазы(Знач ПараметрыАдминистрированияКластера, Знач ПараметрыАдминистрированияИБ) Экспорт - - Словарь = Новый Структура("БлокировкаРегламентныхЗаданий", "scheduled-jobs-deny"); - - СвойстваИБ = СвойстваИнформационнойБазы(ПараметрыАдминистрированияКластера, ПараметрыАдминистрированияИБ, Словарь); - Возврат СвойстваИБ.БлокировкаРегламентныхЗаданий; - +// См. АдминистрированиеКластера.БлокировкаРегламентныхЗаданийИнформационнойБазы +Функция БлокировкаРегламентныхЗаданийИнформационнойБазы(Знач ПараметрыАдминистрированияКластера, Знач ПараметрыАдминистрированияИБ) Экспорт + АгентСервера = АгентСервера(ПараметрыАдминистрированияКластера); + КластерСервера = КластерСервера(АгентСервера, ПараметрыАдминистрированияКластера); + БазаКластера = БазаКластера(КластерСервера, ПараметрыАдминистрированияИБ); + Возврат БазаКластера.БлокировкаРегламентныхЗаданий; КонецФункции -// Устанавливает новое состояние блокировки регламентных заданий для информационной базы. -// -// Параметры: -// ПараметрыАдминистрированияКластера - см. АдминистрированиеКластера.ПараметрыАдминистрированияКластера -// ПараметрыАдминистрированияИБ - см. АдминистрированиеКластера.ПараметрыАдминистрированияИнформационнойБазыКластера -// БлокировкаРегламентныхЗаданий - Булево - флаг установки блокировки регламентных заданий информационной базы. -// +// См. АдминистрированиеКластера.УстановитьБлокировкуРегламентныхЗаданийИнформационнойБазы Процедура УстановитьБлокировкуРегламентныхЗаданийИнформационнойБазы(Знач ПараметрыАдминистрированияКластера, Знач ПараметрыАдминистрированияИБ, Знач БлокировкаРегламентныхЗаданий) Экспорт - - Словарь = Новый Структура("БлокировкаРегламентныхЗаданий", "scheduled-jobs-deny"); - Свойства = Новый Структура("БлокировкаРегламентныхЗаданий", БлокировкаРегламентныхЗаданий); - - УстановитьСвойстваИнформационнойБазы( - ПараметрыАдминистрированияКластера, - ПараметрыАдминистрированияИБ, - Словарь, - Свойства); - + АгентСервера = АгентСервера(ПараметрыАдминистрированияКластера); + КластерСервера = КластерСервера(АгентСервера, ПараметрыАдминистрированияКластера); + БазаКластера = БазаКластера(КластерСервера, ПараметрыАдминистрированияИБ); + Если БазаКластера.БлокировкаРегламентныхЗаданий <> БлокировкаРегламентныхЗаданий Тогда + БазаКластера.БлокировкаРегламентныхЗаданий = БлокировкаРегламентныхЗаданий; + БазаКластера.Записать(); + КонецЕсли; КонецПроцедуры #КонецОбласти #Область СеансыИнформационнойБазы -// Возвращает описания сеансов информационной базы. -// -// Параметры: -// ПараметрыАдминистрированияКластера - см. АдминистрированиеКластера.ПараметрыАдминистрированияКластера -// ПараметрыАдминистрированияИБ - см. АдминистрированиеКластера.ПараметрыАдминистрированияИнформационнойБазыКластера -// Фильтр - см. АдминистрированиеКластера.ФильтрСеансов, Массив из см. АдминистрированиеКластера.ФильтрСеансов -// -// Возвращаемое значение: -// Массив из см. АдминистрированиеКластера.СвойстваСеанса -// +// См. АдминистрированиеКластера.СеансыИнформационнойБазы Функция СеансыИнформационнойБазы(Знач ПараметрыАдминистрированияКластера, Знач ПараметрыАдминистрированияИБ, Знач Фильтр = Неопределено) Экспорт - ИдентификаторКластера = ИдентификаторКластера(ПараметрыАдминистрированияКластера); - ИдентификаторИнформационнойБазы = ИдентификаторИнформационнойБазы(ИдентификаторКластера, ПараметрыАдминистрированияКластера, ПараметрыАдминистрированияИБ); - - ПараметрыКластера = ПараметрыКластера(ПараметрыАдминистрированияКластера, ИдентификаторКластера); + АгентСервера = АгентСервера(ПараметрыАдминистрированияКластера); + КластерСервера = КластерСервера(АгентСервера, ПараметрыАдминистрированияКластера); + БазаКластера = БазаКластера(КластерСервера, ПараметрыАдминистрированияИБ); - // Лицензии для процессов. - Команда = "process list --licenses " + ПараметрыКластера; - ЛицензииПроцессов = Новый Соответствие; - Для Каждого Лицензия Из ЗапуститьКоманду(Команда, ПараметрыАдминистрированияКластера, , , ТипыСвойствЛицензии()) Цикл - Лицензия.Вставить("license-type", ?(Лицензия["license-type"] = "soft", 0, 1)); - ЛицензииПроцессов.Вставить(Лицензия["process"], Лицензия); - КонецЦикла; - - // Процессы. - Команда = "process list " + ПараметрыКластера; - Процессы = Новый Соответствие; - Для Каждого Процесс Из ЗапуститьКоманду(Команда, ПараметрыАдминистрированияКластера, , , ТипыСвойствРабочегоПроцесса()) Цикл - Процесс.Вставить("license", ЛицензииПроцессов[Процесс["process"]]); - Процесс.Вставить("running", ?(Процесс["running"], 1, 0)); - Процесс.Вставить("use", ?(Процесс["use"] = "used", 1, ?(Процесс["use"] = "not-used", 0, 2))); // "not-used" - это неточное значение. - Процессы.Вставить(Процесс["process"], Процесс); - КонецЦикла; - - // Описания соединений. - Команда = "connection list " + ПараметрыКластера; - ОписанияСоединений = Новый Соответствие; - Для Каждого Соединение Из ЗапуститьКоманду(Команда, ПараметрыАдминистрированияКластера, , , ТипыСвойствОписанияСоединения()) Цикл - Соединение.Вставить("process", Процессы[Соединение["process"]]); - ОписанияСоединений.Вставить(Соединение["connection"], Соединение); - КонецЦикла; - - // Лицензии для сеансов. - Команда = "session list --licenses " + ПараметрыКластера; - ЛицензииСеансов = Новый Соответствие; - Для Каждого ЛицензияСеанса Из ЗапуститьКоманду(Команда, ПараметрыАдминистрированияКластера, , , ТипыСвойствЛицензии()) Цикл - ЛицензияСеанса.Вставить("license-type", ?(ЛицензияСеанса["license-type"] = "soft", 0, 1)); - ЛицензииСеансов.Вставить(ЛицензияСеанса["session"], ЛицензияСеанса); - КонецЦикла; - - // Блокировки сеансов. - Команда = "lock list --infobase=%1 " + ПараметрыКластера; - ПодставитьПараметрыВКоманду(Команда, ИдентификаторИнформационнойБазы); - БлокировкиСеансов = Новый Соответствие(); - Для Каждого БлокировкаСеанса Из ЗапуститьКоманду(Команда, ПараметрыАдминистрированияКластера, , , ТипыСвойствБлокировки()) Цикл - АдминистрированиеКластера.ДанныеСеансаИзБлокировки(БлокировкиСеансов, - БлокировкаСеанса["descr"], - БлокировкаСеанса["session"], - ПараметрыАдминистрированияИБ.ИмяВКластере); - - КонецЦикла; - - // Сеансы. - Команда = "session list --infobase=%1 " + ПараметрыКластера; - ПодставитьПараметрыВКоманду(Команда, ИдентификаторИнформационнойБазы); - Фильтр = ФильтрВНотациюRac(Фильтр, СловарьСвойствСеансов()); - Результат = Новый Массив; - Для Каждого Сеанс Из ЗапуститьКоманду(Команда, ПараметрыАдминистрированияКластера, , Фильтр, ТипыСвойствСеансов()) Цикл - Сеанс.Вставить("process", Процессы[Сеанс["process"]]); - Сеанс.Вставить("license", ЛицензииСеансов[Сеанс["session"]]); - Сеанс.Вставить("connection", ОписанияСоединений[Сеанс["connection"]]); - РазобранныйСеанс = РазобратьЭлементВывода(Сеанс, СловарьСвойствСеансов()); - - РазобранныйСеанс.Вставить("РежимБлокировкиБД", ?(БлокировкиСеансов[Сеанс["session"]] <> Неопределено, БлокировкиСеансов[Сеанс["session"]].РежимБлокировкиБД, "")); - РазобранныйСеанс.Вставить("Разделитель", ?(БлокировкиСеансов[Сеанс["session"]] <> Неопределено, БлокировкиСеансов[Сеанс["session"]].Разделитель, "")); - - Результат.Добавить(РазобранныйСеанс); - КонецЦикла; + ИдентификаторыКлиентскихПриложений = АдминистрированиеКластера.ИдентификаторыКлиентскихПриложений(); + АдминистрированиеКластера.ДобавитьУсловиеФильтра(Фильтр, "ИдентификаторКлиентскогоПриложения", ВидСравнения.ВСписке, ИдентификаторыКлиентскихПриложений); + Результат = СписокСеансов(АгентСервера, КластерСервера, БазаКластера, Фильтр); Возврат Результат; - + КонецФункции -// Удаляет сеансы с информационной базой по фильтру. -// -// Параметры: -// ПараметрыАдминистрированияКластера - см. АдминистрированиеКластера.ПараметрыАдминистрированияКластера -// ПараметрыАдминистрированияИБ - см. АдминистрированиеКластера.ПараметрыАдминистрированияИнформационнойБазыКластера -// Фильтр - см. АдминистрированиеКластера.ФильтрСеансов, Массив из см. АдминистрированиеКластера.ФильтрСеансов -// +// См. АдминистрированиеКластера.УдалитьСеансыИнформационнойБазы Процедура УдалитьСеансыИнформационнойБазы(Знач ПараметрыАдминистрированияКластера, Знач ПараметрыАдминистрированияИБ, Знач Фильтр = Неопределено) Экспорт - ИдентификаторКластера = ИдентификаторКластера(ПараметрыАдминистрированияКластера); - ИдентификаторИнформационнойБазы = ИдентификаторИнформационнойБазы(ИдентификаторКластера, ПараметрыАдминистрированияКластера, ПараметрыАдминистрированияИБ); + АгентСервера = АгентСервера(ПараметрыАдминистрированияКластера); + КластерСервера = КластерСервера(АгентСервера, ПараметрыАдминистрированияКластера); + БазаКластера = БазаКластера(КластерСервера, ПараметрыАдминистрированияИБ); - ПараметрыКластера = ПараметрыКластера(ПараметрыАдминистрированияКластера, ИдентификаторКластера); + СообщениеПользователям = НСтр("ru = 'Сеанс завершен администратором'"); - КоличествоПопыток = 3; - ВсеСеансыУдалены = Ложь; - - Для ТекущаяПопытка = 0 По КоличествоПопыток Цикл - - Сеансы = СвойстваСеансов(ИдентификаторКластера, ПараметрыАдминистрированияКластера, ИдентификаторИнформационнойБазы, Фильтр, Ложь); - - Если Сеансы.Количество() = 0 Тогда - - ВсеСеансыУдалены = Истина; + КоличествоПопыток = 4; + ВсеСеансыЗавершены = Ложь; + ОтметкиЗавершения = Новый Соответствие(); + БылиОшибки = Ложь; + Для ТекущаяПопытка = 1 По КоличествоПопыток Цикл + СписокСеансов = СписокСеансов(АгентСервера, КластерСервера, БазаКластера, Фильтр, Истина); + Если НЕ ЗначениеЗаполнено(СписокСеансов) Тогда + ВсеСеансыЗавершены = Истина; Прервать; - - ИначеЕсли ТекущаяПопытка = КоличествоПопыток Тогда - - Прервать; - КонецЕсли; - - Для Каждого Сеанс Из Сеансы Цикл - + Для Каждого Сеанс Из СписокСеансов Цикл Попытка - - Команда = "session terminate --session=%1 " + ПараметрыКластера; - ПодставитьПараметрыВКоманду(Команда, Сеанс.Получить("session")); - ЗапуститьКоманду(Команда, ПараметрыАдминистрированияКластера); - + ОбъектСеанса = Сеанс.ОбъектСеанса; // АдминистрированиеСеанс + НомерСеанса = ОбъектСеанса.НомерСеанса; + ЕстьОтметкаЗавершения = ОтметкиЗавершения.Получить(ОбъектСеанса.ИдентификаторСеанса) = Истина; + Если НЕ ЕстьОтметкаЗавершения Тогда + ОбъектСеанса.ЗавершитьСеанс(СообщениеПользователям); + ОтметкиЗавершения.Вставить(ОбъектСеанса.ИдентификаторСеанса, Истина); + КонецЕсли; Исключение - - // Сеанс мог завершиться к моменту вызова rac session terminate. + ОписаниеОшибки = ОбработкаОшибок.ПодробноеПредставлениеОшибки(ИнформацияОбОшибке()); + Комментарий = СтроковыеФункцииКлиентСервер.ПодставитьПараметрыВСтроку(НСтр("ru = 'Ошибка завершения сеанса %1: %2'"), + НомерСеанса, ОписаниеОшибки); + ЗаписатьОшибкуВЖурналРегистрации(Комментарий); + БылиОшибки = Истина; Продолжить; - КонецПопытки; - КонецЦикла; - КонецЦикла; + ЭтоПромежуточнаяПопытка = ТекущаяПопытка > 1 И ТекущаяПопытка < КоличествоПопыток; + Если ЭтоПромежуточнаяПопытка Тогда + Пауза(ТекущаяПопытка); + КонецЕсли; + КонецЦикла; - Если Не ВсеСеансыУдалены Тогда - - ВызватьИсключение НСтр("ru = 'Не удалось удалить сеансы.'"); - + Если Не ВсеСеансыЗавершены Тогда + Если БылиОшибки Тогда + ТекстИсключения = НСтр("ru = 'Не удалось завершить сеансы. См. журнал регистрации.'"); + Иначе + ТекстИсключения = НСтр("ru = 'Не удалось завершить сеансы.'"); + КонецЕсли; + ВызватьИсключение ТекстИсключения; КонецЕсли; КонецПроцедуры @@ -305,95 +159,67 @@ #Область СоединенияСИнформационнойБазой -// Возвращает описания соединений с информационной базой. -// -// Параметры: -// ПараметрыАдминистрированияКластера - см. АдминистрированиеКластера.ПараметрыАдминистрированияКластера -// ПараметрыАдминистрированияИБ - см. АдминистрированиеКластера.ПараметрыАдминистрированияИнформационнойБазыКластера -// Фильтр - см. АдминистрированиеКластера.ФильтрСоединений, Массив из см. АдминистрированиеКластера.ФильтрСоединений -// -// Возвращаемое значение: -// Массив из см. АдминистрированиеКластера.СвойстваСоединения -// +// См. АдминистрированиеКластера.СоединенияСИнформационнойБазой Функция СоединенияСИнформационнойБазой(Знач ПараметрыАдминистрированияКластера, Знач ПараметрыАдминистрированияИБ, Знач Фильтр = Неопределено) Экспорт - - ИдентификаторКластера = ИдентификаторКластера(ПараметрыАдминистрированияКластера); - ИдентификаторИнформационнойБазы = ИдентификаторИнформационнойБазы(ИдентификаторКластера, ПараметрыАдминистрированияКластера, ПараметрыАдминистрированияИБ); - Возврат СвойстваСоединений(ИдентификаторКластера, ПараметрыАдминистрированияКластера, ИдентификаторИнформационнойБазы, ПараметрыАдминистрированияИБ, Фильтр, Истина); - + АгентСервера = АгентСервера(ПараметрыАдминистрированияКластера); + КластерСервера = КластерСервера(АгентСервера, ПараметрыАдминистрированияКластера); + БазаКластера = БазаКластера(КластерСервера, ПараметрыАдминистрированияИБ); + Результат = СписокСоединений(АгентСервера, КластерСервера, БазаКластера, Фильтр); + Возврат Результат; КонецФункции -// Разрывает соединения с информационной базой по фильтру. -// -// Параметры: -// ПараметрыАдминистрированияКластера - см. АдминистрированиеКластера.ПараметрыАдминистрированияКластера -// ПараметрыАдминистрированияИБ - см. АдминистрированиеКластера.ПараметрыАдминистрированияИнформационнойБазыКластера -// Фильтр - см. АдминистрированиеКластера.ФильтрСоединений, Массив из см. АдминистрированиеКластера.ФильтрСоединений -// +// См. АдминистрированиеКластера.РазорватьСоединенияСИнформационнойБазой Процедура РазорватьСоединенияСИнформационнойБазой(Знач ПараметрыАдминистрированияКластера, Знач ПараметрыАдминистрированияИБ, Знач Фильтр = Неопределено) Экспорт - ИдентификаторКластера = ИдентификаторКластера(ПараметрыАдминистрированияКластера); - ИдентификаторИнформационнойБазы = ИдентификаторИнформационнойБазы(ИдентификаторКластера, ПараметрыАдминистрированияКластера, ПараметрыАдминистрированияИБ); + АгентСервера = АгентСервера(ПараметрыАдминистрированияКластера); + КластерСервера = КластерСервера(АгентСервера, ПараметрыАдминистрированияКластера); + БазаКластера = БазаКластера(КластерСервера, ПараметрыАдминистрированияИБ); - ПараметрыКластера = ПараметрыКластера(ПараметрыАдминистрированияКластера, ИдентификаторКластера); - - Значение = Новый Массив; - Значение.Добавить("1CV8"); // идентификатор приложения 1С:Предприятие в режиме запуска "Толстый клиент". - Значение.Добавить("1CV8C"); // идентификатор приложения 1С:Предприятие в режиме запуска "Тонкий клиент". - Значение.Добавить("WebClient"); // идентификатор приложения 1С:Предприятие в режиме запуска "Веб-клиент". - Значение.Добавить("Designer"); // идентификатор приложения Конфигуратор. - Значение.Добавить("COMConnection"); // идентификатор сессии внешнего соединения 1С:Предприятия через COM. - Значение.Добавить("WSConnection"); // идентификатор сессии Web-сервиса. - Значение.Добавить("BackgroundJob"); // идентификатор сессии обработки заданий. - Значение.Добавить("WebServerExtension"); // идентификатор расширения Web-сервера. - - АдминистрированиеКластера.ДобавитьУсловиеФильтра(Фильтр, "ИдентификаторКлиентскогоПриложения", ВидСравнения.ВСписке, Значение); - - КоличествоПопыток = 3; - ВсеСоединенияРазорваны = Ложь; - - Для ТекущаяПопытка = 0 По КоличествоПопыток Цикл - - Соединения = СвойстваСоединений(ИдентификаторКластера, ПараметрыАдминистрированияКластера, ИдентификаторИнформационнойБазы, ПараметрыАдминистрированияИБ, Фильтр, Ложь); + ИдентификаторыКлиентскихПриложений = АдминистрированиеКластера.ИдентификаторыКлиентскихПриложений(); + АдминистрированиеКластера.ДобавитьУсловиеФильтра(Фильтр, "ИмяПриложения", ВидСравнения.ВСписке, ИдентификаторыКлиентскихПриложений); - Если Соединения.Количество() = 0 Тогда - + КоличествоПопыток = 4; + ВсеСоединенияРазорваны = Ложь; + ОтметкиОтключения = Новый Соответствие(); + БылиОшибки = Ложь; + Для ТекущаяПопытка = 1 По КоличествоПопыток Цикл + СписокСоединений = СписокСоединений(АгентСервера, КластерСервера, БазаКластера, Фильтр, Ложь); // Массив Из АдминистрированиеСоединение + Если НЕ ЗначениеЗаполнено(СписокСоединений) Тогда ВсеСоединенияРазорваны = Истина; Прервать; - - ИначеЕсли ТекущаяПопытка = КоличествоПопыток Тогда - - Прервать; - КонецЕсли; - - Для Каждого Соединение Из Соединения Цикл - + + Для Каждого Соединение Из СписокСоединений Цикл Попытка - - Команда = "connection disconnect --process=%1 --connection=%2 --infobase-user=%3 --infobase-pwd=%4 " + ПараметрыКластера; - ПодставитьПараметрыВКоманду(Команда, - Соединение.Получить("process"), - Соединение.Получить("connection"), - ПараметрыАдминистрированияИБ.ИмяАдминистратораИнформационнойБазы, - ПараметрыАдминистрированияИБ.ПарольАдминистратораИнформационнойБазы); - ЗапуститьКоманду(Команда, ПараметрыАдминистрированияКластера); - + НомерСоединения = Соединение.НомерСоединения; + ЕстьОтметкаОтключения = ОтметкиОтключения.Получить(Соединение.ИдентификаторСоединения) = Истина; + Если НЕ ЕстьОтметкаОтключения Тогда + Соединение.Отключить(); + ОтметкиОтключения.Вставить(Соединение.ИдентификаторСоединения, Истина); + КонецЕсли; Исключение - - // Соединение могло уже завершиться к моменту вызова rac connection disconnect. + ОписаниеОшибки = ОбработкаОшибок.ПодробноеПредставлениеОшибки(ИнформацияОбОшибке()); + Комментарий = СтроковыеФункцииКлиентСервер.ПодставитьПараметрыВСтроку(НСтр("ru = 'Ошибка отключения соединения %1: %2'"), + НомерСоединения, ОписаниеОшибки); + ЗаписатьОшибкуВЖурналРегистрации(Комментарий); + БылиОшибки = Истина; Продолжить; - КонецПопытки; - КонецЦикла; + ЭтоПромежуточнаяПопытка = ТекущаяПопытка > 1 И ТекущаяПопытка < КоличествоПопыток; + Если ЭтоПромежуточнаяПопытка Тогда + Пауза(ТекущаяПопытка); + КонецЕсли; КонецЦикла; Если Не ВсеСоединенияРазорваны Тогда - - ВызватьИсключение НСтр("ru = 'Не удалось разорвать соединения.'"); - + Если БылиОшибки Тогда + ТекстИсключения = НСтр("ru = 'Не удалось разорвать соединения. См. журнал регистрации.'"); + Иначе + ТекстИсключения = НСтр("ru = 'Не удалось разорвать соединения.'"); + КонецЕсли; + ВызватьИсключение ТекстИсключения; КонецЕсли; КонецПроцедуры @@ -402,327 +228,135 @@ #Область ПрофилиБезопасности -// Возвращает имя профиля безопасности, назначенного для информационной базы. -// -// Параметры: -// ПараметрыАдминистрированияКластера - см. АдминистрированиеКластера.ПараметрыАдминистрированияКластера -// ПараметрыАдминистрированияИБ - см. АдминистрированиеКластера.ПараметрыАдминистрированияИнформационнойБазыКластера -// -// Возвращаемое значение: -// Строка - имя профиля безопасности, назначенного для информационной базы. Если для информационной базы не назначен -// профиль безопасности - возвращается пустая строка. -// +// См. АдминистрированиеКластера.ПрофильБезопасностиИнформационнойБазы Функция ПрофильБезопасностиИнформационнойБазы(Знач ПараметрыАдминистрированияКластера, Знач ПараметрыАдминистрированияИБ) Экспорт - - Словарь = Новый Структура(); - Словарь.Вставить("ИмяПрофиля", "security-profile-name"); - - Результат = СвойстваИнформационнойБазы(ПараметрыАдминистрированияКластера, ПараметрыАдминистрированияИБ, Словарь).ИмяПрофиля; - Если ЗначениеЗаполнено(Результат) Тогда - Возврат Результат; - Иначе - Возврат ""; - КонецЕсли; - + АгентСервера = АгентСервера(ПараметрыАдминистрированияКластера); + КластерСервера = КластерСервера(АгентСервера, ПараметрыАдминистрированияКластера); + БазаКластера = БазаКластера(КластерСервера, ПараметрыАдминистрированияИБ); + Возврат БазаКластера.ПрофильБезопасности; КонецФункции -// Возвращает имя профиля безопасности, назначенного для информационной базы в качестве профиля безопасности -// безопасного режима. -// -// Параметры: -// ПараметрыАдминистрированияКластера - см. АдминистрированиеКластера.ПараметрыАдминистрированияКластера -// ПараметрыАдминистрированияИБ - см. АдминистрированиеКластера.ПараметрыАдминистрированияИнформационнойБазыКластера -// -// Возвращаемое значение: -// Строка - имя профиля безопасности, назначенного для информационной базы в качестве профиля безопасности безопасного -// режима. Если для информационной базы не назначен профиль безопасности - возвращается пустая строка. -// +// См. АдминистрированиеКластера.ПрофильБезопасностиБезопасногоРежимаИнформационнойБазы Функция ПрофильБезопасностиБезопасногоРежимаИнформационнойБазы(Знач ПараметрыАдминистрированияКластера, Знач ПараметрыАдминистрированияИБ) Экспорт - - Словарь = Новый Структура(); - Словарь.Вставить("ИмяПрофиля", "safe-mode-security-profile-name"); - - Результат = СвойстваИнформационнойБазы(ПараметрыАдминистрированияКластера, ПараметрыАдминистрированияИБ, Словарь).ИмяПрофиля; - Если ЗначениеЗаполнено(Результат) Тогда - Возврат Результат; - Иначе - Возврат ""; - КонецЕсли; - + АгентСервера = АгентСервера(ПараметрыАдминистрированияКластера); + КластерСервера = КластерСервера(АгентСервера, ПараметрыАдминистрированияКластера); + БазаКластера = БазаКластера(КластерСервера, ПараметрыАдминистрированияИБ); + Возврат БазаКластера.ПрофильБезопасностиБезопасногоРежима; КонецФункции -// Назначает для информационной базы использование профиля безопасности. -// -// Параметры: -// ПараметрыАдминистрированияКластера - см. АдминистрированиеКластера.ПараметрыАдминистрированияКластера -// ПараметрыАдминистрированияИБ - см. АдминистрированиеКластера.ПараметрыАдминистрированияИнформационнойБазыКластера -// ИмяПрофиля - Строка - имя профиля безопасности. Если передана пустая строка - для информационной базы будет -// отключено использование профиля безопасности. -// +// См. АдминистрированиеКластера.УстановитьПрофильБезопасностиИнформационнойБазы Процедура УстановитьПрофильБезопасностиИнформационнойБазы(Знач ПараметрыАдминистрированияКластера, Знач ПараметрыАдминистрированияИБ, Знач ИмяПрофиля = "") Экспорт - - Словарь = Новый Структура(); - Словарь.Вставить("ИмяПрофиля", "security-profile-name"); - - Значения = Новый Структура(); - Значения.Вставить("ИмяПрофиля", ИмяПрофиля); - - УстановитьСвойстваИнформационнойБазы( - ПараметрыАдминистрированияКластера, - ПараметрыАдминистрированияИБ, - Словарь, - Значения); - + АгентСервера = АгентСервера(ПараметрыАдминистрированияКластера); + КластерСервера = КластерСервера(АгентСервера, ПараметрыАдминистрированияКластера); + БазаКластера = БазаКластера(КластерСервера, ПараметрыАдминистрированияИБ); + БазаКластера.ПрофильБезопасности = ИмяПрофиля; + БазаКластера.Записать(); КонецПроцедуры -// Назначает для информационной базы использование профиля безопасности безопасного режима. -// -// Параметры: -// ПараметрыАдминистрированияКластера - см. АдминистрированиеКластера.ПараметрыАдминистрированияКластера -// ПараметрыАдминистрированияИБ - см. АдминистрированиеКластера.ПараметрыАдминистрированияИнформационнойБазыКластера -// ИмяПрофиля - Строка - имя профиля безопасности. Если передана пустая строка - для информационной базы будет -// отключено использование профиля безопасности безопасного режима. -// +// См. АдминистрированиеКластера.УстановитьПрофильБезопасностиБезопасногоРежимаИнформационнойБазы Процедура УстановитьПрофильБезопасностиБезопасногоРежимаИнформационнойБазы(Знач ПараметрыАдминистрированияКластера, Знач ПараметрыАдминистрированияИБ, Знач ИмяПрофиля = "") Экспорт - - Словарь = Новый Структура(); - Словарь.Вставить("ИмяПрофиля", "safe-mode-security-profile-name"); - - Значения = Новый Структура(); - Значения.Вставить("ИмяПрофиля", ИмяПрофиля); - - УстановитьСвойстваИнформационнойБазы( - ПараметрыАдминистрированияКластера, - ПараметрыАдминистрированияИБ, - Словарь, - Значения); - + АгентСервера = АгентСервера(ПараметрыАдминистрированияКластера); + КластерСервера = КластерСервера(АгентСервера, ПараметрыАдминистрированияКластера); + БазаКластера = БазаКластера(КластерСервера, ПараметрыАдминистрированияИБ); + БазаКластера.ПрофильБезопасностиБезопасногоРежима = ИмяПрофиля; + БазаКластера.Записать(); КонецПроцедуры -// Проверяет существование в кластере серверов профиля безопасности. -// -// Параметры: -// ПараметрыАдминистрированияКластера - см. АдминистрированиеКластера.ПараметрыАдминистрированияКластера -// ИмяПрофиля - Строка - имя профиля безопасности, существование которого проверяется. -// -// Возвращаемое значение: -// Булево -// +// См. АдминистрированиеКластера.ПрофильБезопасностиСуществует Функция ПрофильБезопасностиСуществует(Знач ПараметрыАдминистрированияКластера, Знач ИмяПрофиля) Экспорт - - Фильтр = Новый Структура("Имя", ИмяПрофиля); - - ИдентификаторКластера = ИдентификаторКластера(ПараметрыАдминистрированияКластера); - - ПрофилиБезопасности = ПолучитьПрофилиБезопасности(ИдентификаторКластера, ПараметрыАдминистрированияКластера, Фильтр); - - Возврат (ПрофилиБезопасности.Количество() = 1); - -КонецФункции - -// Возвращает свойства профиля безопасности. -// -// Параметры: -// ПараметрыАдминистрированияКластера - см. АдминистрированиеКластера.ПараметрыАдминистрированияКластера -// ИмяПрофиля - Строка - имя профиля безопасности. -// ИдентификаторКластера - Строка - внутренний идентификатор кластера серверов. -// -// Возвращаемое значение: -// см. АдминистрированиеКластера.СвойстваПрофиляБезопасности -// -Функция ПрофильБезопасности(Знач ПараметрыАдминистрированияКластера, Знач ИмяПрофиля, Знач ИдентификаторКластера = Неопределено) Экспорт - - Фильтр = Новый Структура("Имя", ИмяПрофиля); - - Если ИдентификаторКластера = Неопределено Тогда - ИдентификаторКластера = ИдентификаторКластера(ПараметрыАдминистрированияКластера); - КонецЕсли; - - ПрофилиБезопасности = ПолучитьПрофилиБезопасности(ИдентификаторКластера, ПараметрыАдминистрированияКластера, Фильтр); - - Если ПрофилиБезопасности.Количество() <> 1 Тогда - ВызватьИсключение СтроковыеФункцииКлиентСервер.ПодставитьПараметрыВСтроку(НСтр("ru = 'В кластере серверов %1 не зарегистрирован профиль безопасности %2'"), ИдентификаторКластера, ИмяПрофиля); - КонецЕсли; - - Результат = ПрофилиБезопасности[0]; - Результат = ПреобразоватьЗначенияСвойствИспользованияСписковДоступа(Результат); - - // Виртуальный каталоги - Результат.Вставить("ВиртуальныеКаталоги", - ПолучитьВиртуальныеКаталоги(ИдентификаторКластера, ПараметрыАдминистрированияКластера, ИмяПрофиля)); - - // Разрешенные COM-классы - Результат.Вставить("COMКлассы", - ПолучитьРазрешенныеCOMКлассы(ИдентификаторКластера, ПараметрыАдминистрированияКластера, ИмяПрофиля)); - - // Внешние компоненты - Результат.Вставить("ВнешниеКомпоненты", - ПолучитьРазрешенныеВнешниеКомпоненты(ИдентификаторКластера, ПараметрыАдминистрированияКластера, ИмяПрофиля)); - - // Внешние модули - Результат.Вставить("ВнешниеМодули", - ПолучитьРазрешенныеВнешниеМодули(ИдентификаторКластера, ПараметрыАдминистрированияКластера, ИмяПрофиля)); - - // Приложения ОС - Результат.Вставить("ПриложенияОС", - ПолучитьРазрешенныеПриложенияОС(ИдентификаторКластера, ПараметрыАдминистрированияКластера, ИмяПрофиля)); - - // Интернет-ресурсы - Результат.Вставить("ИнтернетРесурсы", - ПолучитьРазрешенныеИнтернетРесурсы(ИдентификаторКластера, ПараметрыАдминистрированияКластера, ИмяПрофиля)); - + ОбъектПрофиляБезопасности = ОбъектПрофиляБезопасности(ПараметрыАдминистрированияКластера, ИмяПрофиля); + Результат = ОбъектПрофиляБезопасности <> Неопределено; Возврат Результат; - КонецФункции -// Создает профиль безопасности по переданному описанию. -// -// Параметры: -// ПараметрыАдминистрированияКластера - см. АдминистрированиеКластера.ПараметрыАдминистрированияКластера -// СвойстваПрофиляБезопасности - см. АдминистрированиеКластера.СвойстваПрофиляБезопасности -// +// См. АдминистрированиеКластера.ПрофильБезопасности +Функция ПрофильБезопасности(Знач ПараметрыАдминистрированияКластера, Знач ИмяПрофиля) Экспорт + Результат = АдминистрированиеКластера.СвойстваПрофиляБезопасности(); + ОбъектПрофиляБезопасности = ОбъектПрофиляБезопасности(ПараметрыАдминистрированияКластера, ИмяПрофиля); + ЗаполнитьЗначенияСвойств(Результат, ОбъектПрофиляБезопасности); + Результат.ПолныйДоступКПривилегированномуРежиму = ОбъектПрофиляБезопасности.ПолныйПривилегированныйРежим; + Результат.ПолныйДоступКФункциямКриптографии = ОбъектПрофиляБезопасности.ДоступККриптографии; + + Результат.ПолныйДоступКРасширениюВсехМодулей = НЕ ЗначениеЗаполнено(Результат.ДоступныеДляРасширенияМодули) + И НЕ ЗначениеЗаполнено(Результат.НедоступныеДляРасширенияМодули); + Результат.ПолныйДоступКРасширениюПравДоступа = ОбъектПрофиляБезопасности.РазрешитьРасширениеПравДоступа; + Результат.ПолныйДоступКПриложениямОперационнойСистемы = ОбъектПрофиляБезопасности.ПолныйДоступКВнешнимПриложениям; + + Результат.ВиртуальныеКаталоги = СвойстваВиртуальныхКаталогов(ОбъектПрофиляБезопасности); + Результат.COMКлассы = СвойстваCOMКлассов(ОбъектПрофиляБезопасности); + Результат.ВнешниеКомпоненты = СвойстваВнешнихКомпонент(ОбъектПрофиляБезопасности); + Результат.ВнешниеМодули = СвойстваВнешнихМодулей(ОбъектПрофиляБезопасности); + Результат.ПриложенияОС = СвойстваПриложенийОС(ОбъектПрофиляБезопасности); + Результат.ИнтернетРесурсы = СвойстваИнтернетРесурсов(ОбъектПрофиляБезопасности); + Возврат Результат; +КонецФункции + +// См. АдминистрированиеКластера.СоздатьПрофильБезопасности Процедура СоздатьПрофильБезопасности(Знач ПараметрыАдминистрированияКластера, Знач СвойстваПрофиляБезопасности) Экспорт - - ИмяПрофиля = СвойстваПрофиляБезопасности.Имя; - - Фильтр = Новый Структура("Имя", ИмяПрофиля); - - ИдентификаторКластера = ИдентификаторКластера(ПараметрыАдминистрированияКластера); - - ПрофилиБезопасности = ПолучитьПрофилиБезопасности(ИдентификаторКластера, ПараметрыАдминистрированияКластера, Фильтр); - - Если ПрофилиБезопасности.Количество() = 1 Тогда - ВызватьИсключение СтроковыеФункцииКлиентСервер.ПодставитьПараметрыВСтроку(НСтр("ru = 'В кластере серверов %1 уже зарегистрирован профиль безопасности %2'"), ИдентификаторКластера, ИмяПрофиля); + Если ПрофильБезопасностиСуществует(ПараметрыАдминистрированияКластера, СвойстваПрофиляБезопасности.Имя) Тогда + ПредставлениеКластера = СтрШаблон("%1:%2", + ПараметрыАдминистрированияКластера.АдресСервераАдминистрирования, + Формат(ПараметрыАдминистрированияКластера.ПортКластера, "ЧГ=;")); + ШаблонИсключения = НСтр("ru = 'В кластере серверов %1 уже зарегистрирован профиль безопасности %2'"); + ТекстИсключения = СтроковыеФункцииКлиентСервер.ПодставитьПараметрыВСтроку(ШаблонИсключения, ПредставлениеКластера, СвойстваПрофиляБезопасности.Имя); + ВызватьИсключение ТекстИсключения; КонецЕсли; - ОбновитьСвойстваПрофиляБезопасности(ПараметрыАдминистрированияКластера, СвойстваПрофиляБезопасности); - + АгентСервера = АгентСервера(ПараметрыАдминистрированияКластера); + КластерСервера = КластерСервера(АгентСервера, ПараметрыАдминистрированияКластера); + ОбъектПрофиля = КластерСервера.СоздатьПрофильБезопасности(); + + ЗагрузитьСвойстваПрофиляБезопасности(ОбъектПрофиля, СвойстваПрофиляБезопасности); КонецПроцедуры -// Устанавливает свойства для существующего профиля безопасности по переданному описанию. -// -// Параметры: -// ПараметрыАдминистрированияКластера - см. АдминистрированиеКластера.ПараметрыАдминистрированияКластера -// СвойстваПрофиляБезопасности - см. АдминистрированиеКластера.СвойстваПрофиляБезопасности -// +// См. АдминистрированиеКластера.УстановитьСвойстваПрофиляБезопасности Процедура УстановитьСвойстваПрофиляБезопасности(Знач ПараметрыАдминистрированияКластера, Знач СвойстваПрофиляБезопасности) Экспорт - - ИмяПрофиля = СвойстваПрофиляБезопасности.Имя; - - Фильтр = Новый Структура("Имя", ИмяПрофиля); - - ИдентификаторКластера = ИдентификаторКластера(ПараметрыАдминистрированияКластера); - - ПрофилиБезопасности = ПолучитьПрофилиБезопасности(ИдентификаторКластера, ПараметрыАдминистрированияКластера, Фильтр); - - Если ПрофилиБезопасности.Количество() <> 1 Тогда - ВызватьИсключение СтроковыеФункцииКлиентСервер.ПодставитьПараметрыВСтроку(НСтр("ru = 'В кластере серверов %1 не зарегистрирован профиль безопасности %2'"), ИдентификаторКластера, ИмяПрофиля); - КонецЕсли; - - СтарыеСвойства = ПрофильБезопасности(ПараметрыАдминистрированияКластера, ИмяПрофиля, ИдентификаторКластера); - - ОбновитьСвойстваПрофиляБезопасности(ПараметрыАдминистрированияКластера, СвойстваПрофиляБезопасности, СтарыеСвойства); - + ОбъектПрофиля = ОбъектПрофиляБезопасности(ПараметрыАдминистрированияКластера, СвойстваПрофиляБезопасности.Имя); + ЗагрузитьСвойстваПрофиляБезопасности(ОбъектПрофиля, СвойстваПрофиляБезопасности); КонецПроцедуры -// Удаляет профиль безопасности. -// -// Параметры: -// ПараметрыАдминистрированияКластера - см. АдминистрированиеКластера.ПараметрыАдминистрированияКластера -// ИмяПрофиля - Строка - имя профиля безопасности. -// +// См. АдминистрированиеКластера.УдалитьПрофильБезопасности Процедура УдалитьПрофильБезопасности(Знач ПараметрыАдминистрированияКластера, Знач ИмяПрофиля) Экспорт - - Команда = "profile remove --name=%1 " + ПараметрыКластера(ПараметрыАдминистрированияКластера); - ПодставитьПараметрыВКоманду(Команда, ИмяПрофиля); - ЗапуститьКоманду(Команда, ПараметрыАдминистрированияКластера); - + ОбъектПрофиля = ОбъектПрофиляБезопасности(ПараметрыАдминистрированияКластера, ИмяПрофиля); + Если ОбъектПрофиля <> Неопределено Тогда + ОбъектПрофиля.Удалить(); + КонецЕсли; КонецПроцедуры #КонецОбласти #Область ИнформационныеБазы -// Возвращает внутренний идентификатор информационной базы. -// -// Параметры: -// ИдентификаторКластера - Строка - внутренний идентификатор кластера серверов. -// ПараметрыАдминистрированияКластера - см. АдминистрированиеКластера.ПараметрыАдминистрированияКластера -// ПараметрыАдминистрированияИБ - см. АдминистрированиеКластера.ПараметрыАдминистрированияИнформационнойБазыКластера -// -// Возвращаемое значение: -// Строка -// +// См. АдминистрированиеКластера.ИдентификаторИнформационнойБазы Функция ИдентификаторИнформационнойБазы(Знач ИдентификаторКластера, Знач ПараметрыАдминистрированияКластера, Знач ПараметрыАдминистрированияИнформационнойБазы) Экспорт - - Фильтр = Новый Структура("name", ПараметрыАдминистрированияИнформационнойБазы.ИмяВКластере); - - ИнформационныеБазы = СвойстваИнформационныхБаз(ИдентификаторКластера, ПараметрыАдминистрированияКластера, Фильтр); - - Если ИнформационныеБазы.Количество() = 1 Тогда - Возврат ИнформационныеБазы[0].Получить("infobase"); - Иначе - ВызватьИсключение СтроковыеФункцииКлиентСервер.ПодставитьПараметрыВСтроку(НСтр("ru = 'В кластере серверов %1 не зарегистрирована информационная база %2'"), ИдентификаторКластера, ПараметрыАдминистрированияИнформационнойБазы.ИмяВКластере); - КонецЕсли; - + АгентСервера = АгентСервера(ПараметрыАдминистрированияКластера); + КластерСервера = КластерСервера(АгентСервера, ПараметрыАдминистрированияКластера); + БазаКластера = БазаКластера(КластерСервера, ПараметрыАдминистрированияИнформационнойБазы); + Возврат БазаКластера.ИдентификаторИнформационнойБазы; КонецФункции -// Возвращает описания информационных баз. -// -// Параметры: -// ИдентификаторКластера - Строка - внутренний идентификатор кластера серверов. -// ПараметрыАдминистрированияКластера - см. АдминистрированиеКластера.ПараметрыАдминистрированияКластера -// Фильтр - Структура - параметры фильтрации информационных баз. -// -// Возвращаемое значение: -// Массив из Структура -// +// См. АдминистрированиеКластера.СвойстваИнформационныхБаз Функция СвойстваИнформационныхБаз(Знач ИдентификаторКластера, Знач ПараметрыАдминистрированияКластера, Знач Фильтр = Неопределено) Экспорт - Команда = "infobase summary list " + ПараметрыКластера(ПараметрыАдминистрированияКластера, ИдентификаторКластера); - Свойства = ЗапуститьКоманду(Команда, ПараметрыАдминистрированияКластера, , Фильтр, ТипыСвойствОписанияБазы()); + ТипыСвойствОписанияБазы = ТипыСвойствОписанияБазы(); + Свойства = ЗапуститьКоманду(Команда, ПараметрыАдминистрированияКластера, , Фильтр, ТипыСвойствОписанияБазы); Возврат Свойства; - КонецФункции #КонецОбласти #Область Кластер -// Возвращает внутренний идентификатор кластера серверов. -// -// Параметры: -// ПараметрыАдминистрированияКластера - см. АдминистрированиеКластера.ПараметрыАдминистрированияКластера -// -// Возвращаемое значение: -// Строка -// +// См. АдминистрированиеКластера.ИдентификаторКластера Функция ИдентификаторКластера(Знач ПараметрыАдминистрированияКластера) Экспорт - - Фильтр = Новый Структура("port", ПараметрыАдминистрированияКластера.ПортКластера); - - Кластеры = СвойстваКластеров(ПараметрыАдминистрированияКластера, Фильтр); - - Если Кластеры.Количество() = 1 Тогда - Возврат Кластеры[0].Получить("cluster"); - Иначе - ВызватьИсключение СтроковыеФункцииКлиентСервер.ПодставитьПараметрыВСтроку(НСтр("ru = 'Не обнаружен кластер серверов с портом %1'"), ПараметрыАдминистрированияКластера.ПортКластера); - КонецЕсли; - + АгентСервера = АгентСервера(ПараметрыАдминистрированияКластера); + КластерСервера = КластерСервера(АгентСервера, ПараметрыАдминистрированияКластера); + Возврат КластерСервера.ИдентификаторКластера; КонецФункции -// Возвращает описания кластеров серверов. -// -// Параметры: -// ПараметрыАдминистрированияКластера - см. АдминистрированиеКластера.ПараметрыАдминистрированияКластера -// Фильтр - Структура - параметры фильтрации кластеров серверов. -// -// Возвращаемое значение: -// Массив - массив соответствий, описаний кластеров в нотации rac. -// +// См. АдминистрированиеКластера.СвойстваКластеров Функция СвойстваКластеров(Знач ПараметрыАдминистрированияКластера, Знач Фильтр = Неопределено) Экспорт - Если ЗначениеЗаполнено(ПараметрыАдминистрированияКластера.АдресСервераАдминистрирования) Тогда Сервер = СокрЛП(ПараметрыАдминистрированияКластера.АдресСервераАдминистрирования); Если ЗначениеЗаполнено(ПараметрыАдминистрированияКластера.ПортСервераАдминистрирования) Тогда @@ -731,65 +365,33 @@ Иначе Сервер = ""; КонецЕсли; - - Возврат ЗапуститьКоманду("cluster list " + Сервер, ПараметрыАдминистрированияКластера, , Фильтр, ТипыСвойствКластера()); - + ТипыСвойствКластера = ТипыСвойствКластера(); + Результат = ЗапуститьКоманду("cluster list " + Сервер, ПараметрыАдминистрированияКластера, , Фильтр, ТипыСвойствКластера); + Возврат Результат; КонецФункции #КонецОбласти #Область РабочиеПроцессыСерверы -// Возвращает описания рабочих процессов. -// -// Параметры: -// ИдентификаторКластера - Строка - внутренний идентификатор кластера серверов, -// ПараметрыАдминистрированияКластера - см. АдминистрированиеКластера.ПараметрыАдминистрированияКластера -// Фильтр - Структура - параметры фильтрации рабочих процессов. -// -// Возвращаемое значение: -// Массив - массив соответствий, описаний рабочих процессов в нотации rac. -// +// См. АдминистрированиеКластера.СвойстваРабочихПроцессов Функция СвойстваРабочихПроцессов(Знач ИдентификаторКластера, Знач ПараметрыАдминистрированияКластера, Знач Фильтр = Неопределено) Экспорт - - Возврат ЗапуститьКоманду("process list " + ПараметрыКластера(ПараметрыАдминистрированияКластера, ИдентификаторКластера), ПараметрыАдминистрированияКластера, , Фильтр); - + ПараметрыКластера = ПараметрыКластера(ПараметрыАдминистрированияКластера, ИдентификаторКластера); + Результат = ЗапуститьКоманду("process list " + ПараметрыКластера, ПараметрыАдминистрированияКластера, , Фильтр); + Возврат Результат; КонецФункции -// Возвращает описания рабочих серверов. -// -// Параметры: -// ИдентификаторКластера - Строка - внутренний идентификатор кластера серверов, -// ПараметрыАдминистрированияКластера - см. АдминистрированиеКластера.ПараметрыАдминистрированияКластера -// Фильтр - Структура - параметры фильтрации рабочих серверов. -// -// Возвращаемое значение: -// Массив - массив соответствий, описаний рабочих серверов в нотации rac. -// +// См. АдминистрированиеКластера.СвойстваРабочихСерверов Функция СвойстваРабочихСерверов(Знач ИдентификаторКластера, Знач ПараметрыАдминистрированияКластера, Знач Фильтр = Неопределено) Экспорт - ПараметрыКластера = ПараметрыКластера(ПараметрыАдминистрированияКластера, ИдентификаторКластера); - - Возврат ЗапуститьКоманду("server list " + ПараметрыКластера, ПараметрыАдминистрированияКластера, , Фильтр, ТипыСвойствРабочихСерверов()); - + ТипыСвойствРабочихСерверов = ТипыСвойствРабочихСерверов(); + Результат = ЗапуститьКоманду("server list " + ПараметрыКластера, ПараметрыАдминистрированияКластера, , Фильтр, ТипыСвойствРабочихСерверов); + Возврат Результат; КонецФункции #КонецОбласти -// Возвращает описания сеансов информационной базы. -// -// Параметры: -// ИдентификаторКластера - Строка - внутренний идентификатор кластера серверов. -// ПараметрыАдминистрированияКластера - см. АдминистрированиеКластера.ПараметрыАдминистрированияКластера -// ИдентификаторИнформационнойБазы - Строка - внутренний идентификатор информационной базы. -// ПараметрыАдминистрированияИБ - см. АдминистрированиеКластера.ПараметрыАдминистрированияИнформационнойБазыКластера -// Фильтр - см. АдминистрированиеКластера.ФильтрСеансов, Массив из см. АдминистрированиеКластера.ФильтрСеансов -// ИспользоватьСловарь - Булево - если Истина, возвращаемый результат будет заполнен с использованием словаря. -// -// Возвращаемое значение: -// - Массив из см. АдминистрированиеКластера.СвойстваСеанса -// - Массив из Соответствие -// +// См. АдминистрированиеКластера.СвойстваСеансов Функция СвойстваСеансов(Знач ИдентификаторКластера, Знач ПараметрыАдминистрированияКластера, Знач ИдентификаторИнформационнойБазы, Знач Фильтр = Неопределено, Знач ИспользоватьСловарь = Истина) Экспорт Команда = "session list --infobase=%1 " + ПараметрыКластера(ПараметрыАдминистрированияКластера, ИдентификаторКластера); @@ -808,21 +410,8 @@ КонецФункции -// Возвращает описания соединений с информационной базой. -// -// Параметры: -// ИдентификаторКластера - Строка - внутренний идентификатор кластера серверов. -// ПараметрыАдминистрированияКластера - см. АдминистрированиеКластера.ПараметрыАдминистрированияКластера -// ИдентификаторИнформационнойБазы - Строка - внутренний идентификатор информационной базы. -// ПараметрыАдминистрированияИБ - см. АдминистрированиеКластера.ПараметрыАдминистрированияИнформационнойБазыКластера -// Фильтр - см. АдминистрированиеКластера.ФильтрСеансов, Массив из см. АдминистрированиеКластера.ФильтрСеансов -// ИспользоватьСловарь - Булево - если Истина, возвращаемый результат будет заполнен с использованием словаря. -// -// Возвращаемое значение: -// - Массив из см. АдминистрированиеКластера.СвойстваСоединения -// - Массив из Соответствие -// -Функция СвойстваСоединений(Знач ИдентификаторКластера, Знач ПараметрыАдминистрированияКластера, Знач ИдентификаторИнформационнойБазы, Знач ПараметрыАдминистрированияИБ, Знач Фильтр = Неопределено, Знач ИспользоватьСловарь = Ложь) Экспорт +// См. АдминистрированиеКластера.СвойстваСоединений +Функция СвойстваСоединений(Знач ИдентификаторКластера, Знач ПараметрыАдминистрированияКластера, Знач ИдентификаторИнформационнойБазы, Знач ПараметрыАдминистрированияИнформационнойБазы, Знач Фильтр = Неопределено, Знач ИспользоватьСловарь = Ложь) Экспорт ПараметрыКластера = ПараметрыКластера(ПараметрыАдминистрированияКластера, ИдентификаторКластера); @@ -842,8 +431,8 @@ ПодставитьПараметрыВКоманду(Команда, РабочийПроцесс.Получить("process"), ИдентификаторИнформационнойБазы, - ПараметрыАдминистрированияИБ.ИмяАдминистратораИнформационнойБазы, - ПараметрыАдминистрированияИБ.ПарольАдминистратораИнформационнойБазы); + ПараметрыАдминистрированияИнформационнойБазы.ИмяАдминистратораИнформационнойБазы, + ПараметрыАдминистрированияИнформационнойБазы.ПарольАдминистратораИнформационнойБазы); СоединенияРабочегоПроцесса = ЗапуститьКоманду(Команда, ПараметрыАдминистрированияКластера, Словарь, Фильтр, ТипыСвойствСоединений()); Для Каждого Соединение Из СоединенияРабочегоПроцесса Цикл @@ -869,399 +458,855 @@ КонецФункции -// Возвращает путь к консольному клиенту сервера администрирования. -// -// Возвращаемое значение: -// Строка -// -Функция ПутьККлиентуСервераАдминистрирования() Экспорт - - КаталогЗапуска = КаталогИсполняемыхФайловПлатформы(); - Клиент = КаталогЗапуска + "rac"; +// См. АдминистрированиеКластера.ПутьККлиентуСервераАдминистрирования +Функция ПутьККлиентуСервераАдминистрирования() Экспорт + КаталогЗапуска = ОбщегоНазначенияКлиентСервер.ДобавитьКонечныйРазделительПути(КаталогПрограммы()); + Результат = КаталогЗапуска + "rac"; Если ОбщегоНазначения.ЭтоWindowsСервер() Тогда - Клиент = Клиент + ".exe"; + Результат = Результат + ".exe"; КонецЕсли; - Возврат Клиент; - + Возврат Результат; КонецФункции #КонецОбласти #Область СлужебныеПроцедурыИФункции -Функция КаталогИсполняемыхФайловПлатформы() - - Результат = КаталогПрограммы(); - СимволРазделителя = ПолучитьРазделительПути(); - - Если Прав(Результат, 1) <> СимволРазделителя Тогда - Результат = Результат + СимволРазделителя; +#Область Сервис + +Процедура УстановитьУмолчание(Приемник, ЗначениеКУстановке) + Если НЕ ЗначениеЗаполнено(Приемник) Тогда + Приемник = ЗначениеКУстановке; КонецЕсли; - - Возврат Результат; - -КонецФункции - -Функция СвойстваИнформационнойБазы(Знач ПараметрыАдминистрированияКластера, Знач ПараметрыАдминистрированияИБ, Знач Словарь) - - ИдентификаторКластера = ИдентификаторКластера(ПараметрыАдминистрированияКластера); - ИдентификаторИнформационнойБазы = ИдентификаторИнформационнойБазы(ИдентификаторКластера, ПараметрыАдминистрированияКластера, ПараметрыАдминистрированияИБ); - - ПараметрыКластера = ПараметрыКластера(ПараметрыАдминистрированияКластера, ИдентификаторКластера); - - Команда = "infobase info --infobase=%1 --infobase-user=%2 --infobase-pwd=%3"; - ПодставитьПараметрыВКоманду(Команда, - ИдентификаторИнформационнойБазы, - ПараметрыАдминистрированияИБ.ИмяАдминистратораИнформационнойБазы, - ПараметрыАдминистрированияИБ.ПарольАдминистратораИнформационнойБазы); - - Результат = ЗапуститьКоманду(Команда + " " + ПараметрыКластера, ПараметрыАдминистрированияКластера, Словарь, , ТипыСвойствИнформационнойБазы()); - - Возврат Результат[0]; - -КонецФункции - -Процедура УстановитьСвойстваИнформационнойБазы(Знач ПараметрыАдминистрированияКластера, Знач ПараметрыАдминистрированияИБ, Знач Словарь, Знач ЗначенияСвойств) - - ИдентификаторКластера = ИдентификаторКластера(ПараметрыАдминистрированияКластера); - ИдентификаторИнформационнойБазы = ИдентификаторИнформационнойБазы(ИдентификаторКластера, ПараметрыАдминистрированияКластера, ПараметрыАдминистрированияИБ); - - ПараметрыКластера = ПараметрыКластера(ПараметрыАдминистрированияКластера, ИдентификаторКластера); - - ПараметрыПолучения = Новый Структура; - ПараметрыПолучения.Вставить("ПараметрыАдминистрированияКластера", ПараметрыАдминистрированияКластера); - ПараметрыПолучения.Вставить("ПараметрыАдминистрированияИБ", ПараметрыАдминистрированияИБ); - ПараметрыПолучения.Вставить("ТипОбъекта", "infobase"); - ПоддерживаемыеСвойства = ПоддерживаемыеСвойстваОбъектов(ПараметрыПолучения); - - Команда = "infobase update --infobase=%1 --infobase-user=%2 --infobase-pwd=%3"; - ПодставитьПараметрыВКоманду(Команда, - ИдентификаторИнформационнойБазы, - ПараметрыАдминистрированияИБ.ИмяАдминистратораИнформационнойБазы, - ПараметрыАдминистрированияИБ.ПарольАдминистратораИнформационнойБазы); - - // Для этих двух булевых свойств отличается представление. - НовыеЗначенияСвойств = ОбщегоНазначения.СкопироватьРекурсивно(ЗначенияСвойств); - Для Каждого КлючИЗначение Из Словарь Цикл - Если КлючИЗначение.Значение = "scheduled-jobs-deny" Или КлючИЗначение.Значение = "sessions-deny" Тогда - НовыеЗначенияСвойств.Вставить(КлючИЗначение.Ключ, Формат(НовыеЗначенияСвойств[КлючИЗначение.Ключ], "БЛ=off; БИ=on")); - КонецЕсли; - КонецЦикла; - - ДобавитьПараметрыКомандыПоСловарю(Команда, Словарь, НовыеЗначенияСвойств, ПоддерживаемыеСвойства); - - ЗапуститьКоманду(Команда + " " + ПараметрыКластера, ПараметрыАдминистрированияКластера); - КонецПроцедуры -Функция ПолучитьПрофилиБезопасности(Знач ИдентификаторКластера, Знач ПараметрыАдминистрированияКластера, Знач Фильтр = Неопределено) - - Команда = "profile list " + ПараметрыКластера(ПараметрыАдминистрированияКластера, ИдентификаторКластера); - Результат = ЗапуститьКоманду(Команда, ПараметрыАдминистрированияКластера, СловарьСвойствПрофиляБезопасности(), Фильтр, ТипыСвойствПрофиля()); +Процедура УстановитьСвойство(Приемник, Источник, КлючИсточника) + Перем ЗначениеСвойства; + Если НЕ Источник.Свойство(КлючИсточника, ЗначениеСвойства) Тогда + Возврат; + КонецЕсли; + Если Приемник <> ЗначениеСвойства Тогда + Приемник = ЗначениеСвойства; + КонецЕсли; +КонецПроцедуры + +Процедура Пауза(КоличествоСекунд) + ОбновлениеИнформационнойБазыСлужебный.Пауза(КоличествоСекунд); +КонецПроцедуры + +Процедура ЗаписатьОшибкуВЖурналРегистрации(Комментарий) + ИмяСобытияЖР = НСтр("ru = 'Администрирование кластера'", ОбщегоНазначения.КодОсновногоЯзыка()); + ЗаписьЖурналаРегистрации(ИмяСобытияЖР, УровеньЖурналаРегистрации.Ошибка, , , Комментарий); +КонецПроцедуры + +#КонецОбласти + +#Область СоздатьПрофильБезопасности + +Процедура ЗагрузитьСвойстваПрофиляБезопасности(ОбъектПрофиля, СвойстваПрофиляБезопасности) + Если НЕ ЗначениеЗаполнено(ОбъектПрофиля.Имя) Тогда + ОбъектПрофиля.Имя = СвойстваПрофиляБезопасности.Имя; + КонецЕсли; + ЗаполнитьЗначенияСвойств(ОбъектПрофиля, СвойстваПрофиляБезопасности, , "Имя"); + ОбъектПрофиля.ДоступККриптографии = СвойстваПрофиляБезопасности.ПолныйДоступКФункциямКриптографии; + ОбъектПрофиля.ПолныйДоступКВнешнимПриложениям = СвойстваПрофиляБезопасности.ПолныйДоступКПриложениямОперационнойСистемы; + ОбъектПрофиля.ПолныйПривилегированныйРежим = СвойстваПрофиляБезопасности.ПолныйДоступКПривилегированномуРежиму; + ОбъектПрофиля.РазрешитьРасширениеПравДоступа = СвойстваПрофиляБезопасности.ПолныйДоступКРасширениюПравДоступа; + ОбъектПрофиля.Записать(); + ЗагрузитьСвойстваВиртуальныхКаталогов(ОбъектПрофиля, СвойстваПрофиляБезопасности); + ЗагрузитьСвойстваCOMКлассов(ОбъектПрофиля, СвойстваПрофиляБезопасности); + ЗагрузитьСвойстваВнешнихКомпонент(ОбъектПрофиля, СвойстваПрофиляБезопасности); + ЗагрузитьСвойстваВнешнихМодулей(ОбъектПрофиля, СвойстваПрофиляБезопасности); + ЗагрузитьСвойстваПриложенийОС(ОбъектПрофиля, СвойстваПрофиляБезопасности); + ЗагрузитьСвойстваИнтернетРесурсов(ОбъектПрофиля, СвойстваПрофиляБезопасности); +КонецПроцедуры + +Процедура ОчиститьЭлементыСпискаКонтроляДоступа(ЭлементыСписка) + Для Каждого Элемент Из ЭлементыСписка Цикл + Элемент.Удалить(); + КонецЦикла; +КонецПроцедуры + +Процедура ЗагрузитьСвойстваВиртуальныхКаталогов(ОбъектПрофиля, СвойстваПрофиляБезопасности) + ТекущиеЗначения = ОбъектПрофиля.ПолучитьРазрешенныеВиртуальныеКаталоги(); + ОчиститьЭлементыСпискаКонтроляДоступа(ТекущиеЗначения); + + Для Каждого Источник Из СвойстваПрофиляБезопасности.ВиртуальныеКаталоги Цикл + Приемник = ОбъектПрофиля.СоздатьРазрешенныйВиртуальныйКаталог(); + ЗаполнитьЗначенияСвойств(Приемник, Источник); + Приемник.ЗаписьРазрешена = Источник.ЗаписьДанных; + Приемник.ЧтениеРазрешено = Источник.ЧтениеДанных; + Приемник.Путь = Источник.ФизическийURL; + Приемник.Псевдоним = Источник.ЛогическийURL; + Приемник.Записать(); + КонецЦикла; +КонецПроцедуры + +Процедура ЗагрузитьСвойстваCOMКлассов(ОбъектПрофиля, СвойстваПрофиляБезопасности) + ТекущиеЗначения = ОбъектПрофиля.ПолучитьРазрешенныеCOMКлассы(); + ОчиститьЭлементыСпискаКонтроляДоступа(ТекущиеЗначения); + + Для Каждого Источник Из СвойстваПрофиляБезопасности.COMКлассы Цикл + Приемник = ОбъектПрофиля.СоздатьРазрешенныйCOMКласс(); + ЗаполнитьЗначенияСвойств(Приемник, Источник); + Приемник.УникальныйИдентификаторОбъекта = Источник.CLSID; + Приемник.ИмяКомпьютера = Источник.Компьютер; + Приемник.ИмяФайла = Источник.ФайлМоникер; + Приемник.Записать(); + КонецЦикла; +КонецПроцедуры + +Процедура ЗагрузитьСвойстваВнешнихКомпонент(ОбъектПрофиля, СвойстваПрофиляБезопасности) + ТекущиеЗначения = ОбъектПрофиля.ПолучитьРазрешенныеВнешниеКомпоненты(); + ОчиститьЭлементыСпискаКонтроляДоступа(ТекущиеЗначения); + + Для Каждого Источник Из СвойстваПрофиляБезопасности.ВнешниеКомпоненты Цикл + Приемник = ОбъектПрофиля.СоздатьРазрешеннуюВнешнююКомпоненту(); + ЗаполнитьЗначенияСвойств(Приемник, Источник); + Приемник.Записать(); + КонецЦикла; +КонецПроцедуры + +Процедура ЗагрузитьСвойстваВнешнихМодулей(ОбъектПрофиля, СвойстваПрофиляБезопасности) + ТекущиеЗначения = ОбъектПрофиля.ПолучитьРазрешенныеВнешниеМодули(); + ОчиститьЭлементыСпискаКонтроляДоступа(ТекущиеЗначения); + + Для Каждого Источник Из СвойстваПрофиляБезопасности.ВнешниеМодули Цикл + Приемник = ОбъектПрофиля.СоздатьРазрешенныйВнешнийМодуль(); + ЗаполнитьЗначенияСвойств(Приемник, Источник); + Приемник.Записать(); + КонецЦикла; +КонецПроцедуры + +Процедура ЗагрузитьСвойстваПриложенийОС(ОбъектПрофиля, СвойстваПрофиляБезопасности) + ТекущиеЗначения = ОбъектПрофиля.ПолучитьРазрешенныеВнешниеПриложения(); + ОчиститьЭлементыСпискаКонтроляДоступа(ТекущиеЗначения); + + Для Каждого Источник Из СвойстваПрофиляБезопасности.ПриложенияОС Цикл + Приемник = ОбъектПрофиля.СоздатьРазрешенноеВнешнееПриложение(); + ЗаполнитьЗначенияСвойств(Приемник, Источник); + Приемник.СтрокаКоманды = Источник.ШаблонСтрокиЗапуска; + Приемник.Записать(); + КонецЦикла; +КонецПроцедуры + +Процедура ЗагрузитьСвойстваИнтернетРесурсов(ОбъектПрофиля, СвойстваПрофиляБезопасности) + ТекущиеЗначения = ОбъектПрофиля.ПолучитьРазрешенныеИнтернетРесурсы(); + ОчиститьЭлементыСпискаКонтроляДоступа(ТекущиеЗначения); + + Для Каждого Источник Из СвойстваПрофиляБезопасности.ИнтернетРесурсы Цикл + Приемник = ОбъектПрофиля.СоздатьРазрешенныйИнтернетРесурс(); + ЗаполнитьЗначенияСвойств(Приемник, Источник); + Приемник.Записать(); + КонецЦикла; +КонецПроцедуры + +#КонецОбласти + +#Область ОписанияОбъектов + +Функция СвойстваБлокировкиСеансовИРегламентныхЗаданий(БазаКластера) + Результат = АдминистрированиеКластера.СвойстваБлокировкиСеансовИРегламентныхЗаданий(); + Результат.БлокировкаСеансов = БазаКластера.ВключенаБлокировкаНачалаСеансов; + Результат.ДатаС = БазаКластера.ВремяНачалаБлокировки; + Результат.ДатаПо = БазаКластера.ВремяОкончанияБлокировки; + Результат.Сообщение = БазаКластера.СообщениеБлокировки; + Результат.КодРазрешения = БазаКластера.КодРазрешенияНачалаСеансов; + Результат.ПараметрБлокировки = БазаКластера.ПараметрБлокировки; + Результат.БлокировкаРегламентныхЗаданий = БазаКластера.БлокировкаРегламентныхЗаданий; Возврат Результат; - КонецФункции -Функция ПолучитьВиртуальныеКаталоги(Знач ИдентификаторКластера, Знач ПараметрыАдминистрированияКластера, Знач ИмяПрофиля, Знач Фильтр = Неопределено) +Функция ОписаниеРабочегоПроцесса(РабочийПроцесс, КластерСервера) - Возврат СпискиКонтроляДоступа( - ИдентификаторКластера, - ПараметрыАдминистрированияКластера, - ИмяПрофиля, - "directory", // Не локализуется - СловарьСвойствВиртуальногоКаталога(), - , - ТипыСвойствВиртуальногоКаталога()); - -КонецФункции + Результат = АдминистрированиеКластера.СвойстваРабочегоПроцесса(); + ЗаполнитьЗначенияСвойств(Результат, РабочийПроцесс); -Функция ПолучитьРазрешенныеCOMКлассы(Знач ИдентификаторКластера, Знач ПараметрыАдминистрированияКластера, Знач ИмяПрофиля, Знач Фильтр = Неопределено) + Результат.РеакцияСервера = Окр(РабочийПроцесс.СредняяДлительностьВызова, 3); + Результат.ЗатраченоСУБД = Окр(РабочийПроцесс.СредняяДлительностьВызововСУБД, 3); + Результат.ЗатраченоМенеджеромБлокировок = Окр(РабочийПроцесс.СредняяДлительностьВызововСервисов, 3); + Результат.ЗатраченоСервером = Окр(РабочийПроцесс.СредняяДлительностьОбработкиВызоваРабочимПроцессом, 3); + Результат.КлиентскихПотоков = Окр(РабочийПроцесс.СреднееКоличествоПотоков, 3); + Результат.ПревышениеНадКритическимЗначением = РабочийПроцесс.ВремяПревышенияПоПамяти; + Результат.ЗанятоПамяти = РабочийПроцесс.ПотреблениеПамяти / 1024; + Результат.Идентификатор = РабочийПроцесс.ИдентификаторПроцесса; + Результат.Запущен = ?(РабочийПроцесс.Активен, 1, 0); + Результат.МоментЗапуска = РабочийПроцесс.ВремяЗапуска; + Результат.Соединений = КластерСервера.ПолучитьСоединения().Количество(); - Возврат СпискиКонтроляДоступа( - ИдентификаторКластера, - ПараметрыАдминистрированияКластера, - ИмяПрофиля, - "com", // Не локализуется - СловарьСвойствCOMКласса(), - , - ТипыСвойствCOMКласса()); - -КонецФункции - -Функция ПолучитьРазрешенныеВнешниеКомпоненты(Знач ИдентификаторКластера, Знач ПараметрыАдминистрированияКластера, Знач ИмяПрофиля, Знач Фильтр = Неопределено) - - Возврат СпискиКонтроляДоступа( - ИдентификаторКластера, - ПараметрыАдминистрированияКластера, - ИмяПрофиля, - "addin", // Не локализуется - СловарьСвойствВнешнейКомпоненты(), - , - ТипыСвойствВнешнейКомпоненты()); - -КонецФункции - -Функция ПолучитьРазрешенныеВнешниеМодули(Знач ИдентификаторКластера, Знач ПараметрыАдминистрированияКластера, Знач ИмяПрофиля, Знач Фильтр = Неопределено) - - Возврат СпискиКонтроляДоступа( - ИдентификаторКластера, - ПараметрыАдминистрированияКластера, - ИмяПрофиля, - "module", // Не локализуется - СловарьСвойствВнешнегоМодуля(), - , - ТипыСвойствВнешнегоМодуля()); - -КонецФункции - -Функция ПолучитьРазрешенныеПриложенияОС(Знач ИдентификаторКластера, Знач ПараметрыАдминистрированияКластера, Знач ИмяПрофиля, Знач Фильтр = Неопределено) - - Возврат СпискиКонтроляДоступа( - ИдентификаторКластера, - ПараметрыАдминистрированияКластера, - ИмяПрофиля, - "app", // Не локализуется - СловарьСвойствПриложенияОС(), - , - ТипыСвойствПриложенияОС()); - -КонецФункции - -Функция ПолучитьРазрешенныеИнтернетРесурсы(Знач ИдентификаторКластера, Знач ПараметрыАдминистрированияКластера, Знач ИмяПрофиля, Знач Фильтр = Неопределено) - - Возврат СпискиКонтроляДоступа( - ИдентификаторКластера, - ПараметрыАдминистрированияКластера, - ИмяПрофиля, - "inet", // Не локализуется - СловарьСвойствИнтернетРесурса(), - , - ТипыСвойствИнтернетРесурса()); - -КонецФункции - -Функция СпискиКонтроляДоступа(Знач ИдентификаторКластера, Знач ПараметрыАдминистрированияКластера, Знач ИмяПрофиля, Знач ИмяСписка, Знач Словарь, Знач Фильтр = Неопределено, Знач ТипыСвойств = Неопределено) - - Команда = "profile acl --name=%1 %2 list " + ПараметрыКластера(ПараметрыАдминистрированияКластера, ИдентификаторКластера); - ПодставитьПараметрыВКоманду(Команда, ИмяПрофиля, ИмяСписка); - - Результат = ЗапуститьКоманду(Команда, ПараметрыАдминистрированияКластера, Словарь, Фильтр, ТипыСвойств); - - Возврат Результат; - -КонецФункции - -Процедура ОбновитьСвойстваПрофиляБезопасности(Знач ПараметрыАдминистрированияКластера, Знач НовыеСвойства, Знач СтарыеСвойства = Неопределено) - - Если СтарыеСвойства = Неопределено Тогда - СтарыеСвойства = АдминистрированиеКластера.СвойстваПрофиляБезопасности(); + Если РабочийПроцесс.СостояниеРабочегоПроцесса = АдминистрированиеСостояниеРабочегоПроцесса.НеИспользуется Тогда + Результат.Использование = 0; + ИначеЕсли РабочийПроцесс.СостояниеРабочегоПроцесса = АдминистрированиеСостояниеРабочегоПроцесса.Используется Тогда + Результат.Использование = 1; + ИначеЕсли РабочийПроцесс.СостояниеРабочегоПроцесса = АдминистрированиеСостояниеРабочегоПроцесса.Резервный Тогда + Результат.Использование = 2; КонецЕсли; - ИдентификаторКластера = ИдентификаторКластера(ПараметрыАдминистрированияКластера); - ПараметрыКластера = ПараметрыКластера(ПараметрыАдминистрированияКластера, ИдентификаторКластера); + Если ЗначениеЗаполнено(РабочийПроцесс.Лицензии) Тогда + Результат.Лицензия = ОписаниеЛицензии(РабочийПроцесс.Лицензии[0]); + КонецЕсли; - ИмяПрофиля = НовыеСвойства.Имя; + Возврат Результат; - ПараметрыПолучения = Новый Структура; - ПараметрыПолучения.Вставить("ПараметрыАдминистрированияКластера", ПараметрыАдминистрированияКластера); - ПараметрыПолучения.Вставить("ТипОбъекта", "profile"); - ПоддерживаемыеСвойства = ПоддерживаемыеСвойстваОбъектов(ПараметрыПолучения); +КонецФункции + +Функция ОписаниеСоединения(Соединение) + Результат = АдминистрированиеКластера.СвойстваОписанияСоединения(); + ЗаполнитьЗначенияСвойств(Результат, Соединение); + Результат.МоментУстановкиСоединения = Соединение.ВремяУстановкиСоединения; + Результат.ИмяКлиентскогоКомпьютера = Соединение.ИмяКомпьютера; + Результат.Номер = Соединение.НомерСоединения; + Результат.Блокировка = Соединение.НомерСеансаВыполнившегоУправляемуюБлокировку; + Возврат Результат; +КонецФункции + +Функция ОписаниеСеанса(Сеанс) + Результат = АдминистрированиеКластера.СвойстваСеанса(); + Результат.Номер = Сеанс.НомерСеанса; + Результат.ИмяПользователя = Сеанс.ИмяПользователя; + Результат.ИмяКлиентскогоКомпьютера = Сеанс.ИмяКомпьютера; + Результат.ИдентификаторКлиентскогоПриложения = Сеанс.ИмяПриложения; + Результат.ИдентификаторЯзыка = Сеанс.КодЯзыка; + Результат.МоментСозданияСеанса = Сеанс.ВремяНачала; + Результат.МоментПоследнейАктивностиСеанса = Сеанс.ВремяПоследнейАктивности; + Результат.Блокировка = Сеанс.НомерСеансаВыполнившегоУправляемуюБлокировку; + Результат.БлокировкаСУБД = Сеанс.НомерСеансаБлокирующегоСУБД; - СловарьСвойствПрофиля = СловарьСвойствПрофиляБезопасности(Ложь); - Для Каждого ФрагментСловаря Из СловарьСвойствПрофиля Цикл - Если НовыеСвойства.Свойство(ФрагментСловаря.Ключ) Тогда - Если НовыеСвойства[ФрагментСловаря.Ключ] <> СтарыеСвойства[ФрагментСловаря.Ключ] Тогда - Команда = "profile update"; - ДобавитьПараметрыКомандыПоСловарю(Команда, СловарьСвойствПрофиля, НовыеСвойства, ПоддерживаемыеСвойства.profile); - ЗапуститьКоманду(Команда + " " + ПараметрыКластера, ПараметрыАдминистрированияКластера); - Прервать; - КонецЕсли; + Результат.Передано = Сеанс.ОбъемДанныхПереданныхИПолученныхКлиентом; + Результат.ПереданоЗа5Минут = Сеанс.ОбъемДанныхПереданныхИПолученныхКлиентомЗа5Мин; + Результат.СерверныхВызовов = Сеанс.КоличествоВызововВсего; + Результат.СерверныхВызововЗа5Минут = Сеанс.КоличествоВызововЗа5Мин; + Результат.ДлительностьСерверныхВызовов = Сеанс.ДлительностьВызововВсего; + Результат.ДлительностьТекущегоСерверногоВызова = Сеанс.ДлительностьВызововТекущее; + Результат.ДлительностьСерверныхВызововЗа5Минут = Сеанс.ДлительностьВызововЗа5Мин; + Результат.ПереданоСУБД = Сеанс.ОбъемДанныхПереданныхИПолученныхСУБДВсего; + Результат.ПереданоСУБДЗа5Минут = Сеанс.ОбъемДанныхПереданныхИПолученныхСУБДЗа5Мин; + Результат.ДлительностьВызововСУБД = Сеанс.ДлительностьВызововСУБДВсего; + Результат.ДлительностьТекущегоВызоваСУБД = Сеанс.ДлительностьВызововСУБДТекущее; + Результат.ДлительностьВызововСУБДЗа5Минут = Сеанс.ДлительностьВызововСУБДЗа5Мин; + Результат.СоединениеСУБД = Сеанс.СоединениеСУБД; + + Результат.Спящий = Сеанс.СпящийСеанс; + Результат.ЗавершитьЧерез = Сеанс.ВремяЗавершенияСпящегоСеанса; + Результат.ЗаснутьЧерез = Сеанс.ВремяЗасыпанияПассивногоСеанса; + Результат.ПрочитаноСДиска = Сеанс.ОбъемДанныхСчитанныхСДискаВсего; + Результат.ПрочитаноСДискаВТекущемВызове = Сеанс.ОбъемДанныхСчитанныхСДискаТекущее; + Результат.ПрочитаноСДискаЗа5Минут = Сеанс.ОбъемДанныхСчитанныхСДискаЗа5Минут; + Результат.ЗанятоПамяти = Сеанс.ПотреблениеПамятиВсего; + Результат.ЗанятоПамятиВТекущемВызове = Сеанс.ПотреблениеПамятиТекущее; + Результат.ЗанятоПамятиЗа5Минут = Сеанс.ПотреблениеПамятиЗа5Мин; + Результат.ЗаписаноНаДиск = Сеанс.ОбъемДанныхЗаписанныхНаДискВсего; + Результат.ЗаписаноНаДискВТекущемВызове = Сеанс.ОбъемДанныхЗаписанныхНаДискТекущее; + Результат.ЗаписаноНаДискЗа5Минут = Сеанс.ОбъемДанныхЗаписанныхНаДискЗа5Мин; + + Результат.ВремяСоединенияСУБД = 0; + Результат.МоментЗахватаСоединенияСУБД = ""; + + Возврат Результат; +КонецФункции + +Функция ОписаниеЛицензии(Лицензия) + Результат = АдминистрированиеКластера.СвойстваЛицензии(); + ЗаполнитьЗначенияСвойств(Результат, Лицензия); + Результат.ВыданаСервером = Лицензия.ПолученаСервером; + Результат.ТипЛицензии = Лицензия.ПрограммнаяЛицензия; + Результат.МаксимальноеКоличествоПользователейДляКомплекта = Лицензия.МаксимальноеКоличествоПользователейПрограммнойЛицензии; + Результат.МаксимальноеКоличествоПользователейВКлюче = Лицензия.МаксимальноеКоличествоПользователей; + Результат.ЛицензияПолученаЧерезAladdinLicenseManager = Лицензия.СетевойКлюч; + Результат.АдресПроцесса = Лицензия.АдресСервера; + Результат.ПортПроцесса = Лицензия.ПортСервера; + Результат.ПолноеПредставление = Лицензия.ПодробноеПредставление; + Результат.ТипЛицензии = ?(Лицензия.ПрограммнаяЛицензия, 0, 1); + Возврат Результат; +КонецФункции + +Функция СвойстваВиртуальныхКаталогов(ОбъектПрофиляБезопасности) + Результат = Новый Массив(); + СписокИсточников = ОбъектПрофиляБезопасности.ПолучитьРазрешенныеВиртуальныеКаталоги(); + Для Каждого Источник Из СписокИсточников Цикл + Свойства = АдминистрированиеКластера.СвойстваВиртуальногоКаталога(); + ЗаполнитьЗначенияСвойств(Свойства, Источник); + Свойства.ЗаписьДанных = Источник.ЗаписьРазрешена; + Свойства.ЧтениеДанных = Источник.ЧтениеРазрешено; + Свойства.ФизическийURL = Источник.Путь; + Свойства.ЛогическийURL = Источник.Псевдоним; + + Результат.Добавить(Свойства); + КонецЦикла; + Возврат Результат; +КонецФункции + +Функция СвойстваCOMКлассов(ОбъектПрофиляБезопасности) + Результат = Новый Массив(); + СписокИсточников = ОбъектПрофиляБезопасности.ПолучитьРазрешенныеCOMКлассы(); + Для Каждого Источник Из СписокИсточников Цикл + Свойства = АдминистрированиеКластера.СвойстваCOMКласса(); + ЗаполнитьЗначенияСвойств(Свойства, Источник); + Свойства.CLSID = Источник.УникальныйИдентификаторОбъекта; + Свойства.Компьютер = Источник.ИмяКомпьютера; + Свойства.ФайлМоникер = Источник.ИмяФайла; + + Результат.Добавить(Свойства); + КонецЦикла; + Возврат Результат; +КонецФункции + +Функция СвойстваВнешнихКомпонент(ОбъектПрофиляБезопасности) + Результат = Новый Массив(); + СписокИсточников = ОбъектПрофиляБезопасности.ПолучитьРазрешенныеВнешниеКомпоненты(); + Для Каждого Источник Из СписокИсточников Цикл + Свойства = АдминистрированиеКластера.СвойстваВнешнейКомпоненты(); + ЗаполнитьЗначенияСвойств(Свойства, Источник); + + Результат.Добавить(Свойства); + КонецЦикла; + Возврат Результат; +КонецФункции + +Функция СвойстваВнешнихМодулей(ОбъектПрофиляБезопасности) + Результат = Новый Массив(); + СписокИсточников = ОбъектПрофиляБезопасности.ПолучитьРазрешенныеВнешниеМодули(); + Для Каждого Источник Из СписокИсточников Цикл + Свойства = АдминистрированиеКластера.СвойстваВнешнегоМодуля(); + ЗаполнитьЗначенияСвойств(Свойства, Источник); + + Результат.Добавить(Свойства); + КонецЦикла; + Возврат Результат; +КонецФункции + +Функция СвойстваПриложенийОС(ОбъектПрофиляБезопасности) + Результат = Новый Массив(); + СписокИсточников = ОбъектПрофиляБезопасности.ПолучитьРазрешенныеВнешниеПриложения(); + Для Каждого Источник Из СписокИсточников Цикл + Свойства = АдминистрированиеКластера.СвойстваПриложенияОС(); + ЗаполнитьЗначенияСвойств(Свойства, Источник); + Свойства.ШаблонСтрокиЗапуска = Источник.СтрокаКоманды; + + Результат.Добавить(Свойства); + КонецЦикла; + Возврат Результат; +КонецФункции + +Функция СвойстваИнтернетРесурсов(ОбъектПрофиляБезопасности) + Результат = Новый Массив(); + СписокИсточников = ОбъектПрофиляБезопасности.ПолучитьРазрешенныеИнтернетРесурсы(); + Для Каждого Источник Из СписокИсточников Цикл + Свойства = АдминистрированиеКластера.СвойстваИнтернетРесурса(); + ЗаполнитьЗначенияСвойств(Свойства, Источник); + + Результат.Добавить(Свойства); + КонецЦикла; + Возврат Результат; +КонецФункции + +#КонецОбласти + +#Область ОбъектыАдминистрирования + +Функция АгентСервера(ПараметрыАдминистрированияКластера) + + АдресСервераАдминистрирования = ПараметрыАдминистрированияКластера.АдресСервераАдминистрирования; + ПортСервераАдминистрирования = ПараметрыАдминистрированияКластера.ПортСервераАдминистрирования; + Результат = Новый АдминистрированиеСервера(АдресСервераАдминистрирования, ПортСервераАдминистрирования); + + Возврат Результат; + +КонецФункции + +Функция КластерСервера(АгентСервера, ПараметрыАдминистрированияКластера) + Результат = Неопределено; + + ПортКластера = ПараметрыАдминистрированияКластера.ПортКластера; + + Кластеры = АгентСервера.ПолучитьКластеры(); + Для Каждого Кластер Из Кластеры Цикл + Если Кластер.Порт = ПортКластера Тогда + Результат = Кластер; + Прервать; КонецЕсли; КонецЦикла; - Для Каждого ФрагментСловаря Из СловарьСвойствИспользованияСписокКонтроляДоступа() Цикл - Если НовыеСвойства[ФрагментСловаря.Ключ] = СтарыеСвойства[ФрагментСловаря.Ключ] Тогда + Если Результат = Неопределено Тогда + ШаблонИсключения = НСтр("ru = 'На сервере администрирования %1 не найден кластер на порту %2'"); + ПортКластераФормат = Формат(ПортКластера, "ЧГ=;"); + ТекстИсключения = СтроковыеФункцииКлиентСервер.ПодставитьПараметрыВСтроку(ШаблонИсключения, ПараметрыАдминистрированияКластера.АдресСервераАдминистрирования, ПортКластераФормат); + ВызватьИсключение ТекстИсключения; + Иначе + ИмяАдминистратораКластера = ПараметрыАдминистрированияКластера.ИмяАдминистратораКластера; + ПарольАдминистратораКластера = ПараметрыАдминистрированияКластера.ПарольАдминистратораКластера; + + Результат.ВыполнитьАутентификацию(ИмяАдминистратораКластера, ПарольАдминистратораКластера); + КонецЕсли; + + Возврат Результат; +КонецФункции + +Функция БазаКластера(КластерСервера, ПараметрыАдминистрированияИБ) + Результат = Неопределено; + + ИнформационныеБазы = КластерСервера.ПолучитьИнформационныеБазы(); + Для Каждого ИнформационнаяБаза Из ИнформационныеБазы Цикл + Если ИнформационнаяБаза.Имя = ПараметрыАдминистрированияИБ.ИмяВКластере Тогда + Результат = ИнформационнаяБаза; + Прервать; + КонецЕсли; + КонецЦикла; + + Если Результат = Неопределено Тогда + ШаблонИсключения = НСтр("ru = 'В кластере серверов %1:%2 не найдена информационная база ""%3""'"); + ПортКластераФормат = Формат(КластерСервера.Порт, "ЧГ=;"); + ТекстИсключения = СтроковыеФункцииКлиентСервер.ПодставитьПараметрыВСтроку(ШаблонИсключения, КластерСервера.ИмяКомпьютера, + ПортКластераФормат, ПараметрыАдминистрированияИБ.ИмяВКластере); + ВызватьИсключение ТекстИсключения; + Иначе + ИмяАдминистратораИнформационнойБазы = ПараметрыАдминистрированияИБ.ИмяАдминистратораИнформационнойБазы; + ПарольАдминистратораИнформационнойБазы = ПараметрыАдминистрированияИБ.ПарольАдминистратораИнформационнойБазы; + Результат.ВыполнитьАутентификацию(ИмяАдминистратораИнформационнойБазы, ПарольАдминистратораИнформационнойБазы); + КонецЕсли; + + Возврат Результат; +КонецФункции + +Функция СвойстваСеансовИзОписанияБлокировок(КластерСервера, БазаКластера) + Результат = Новый Соответствие(); + Блокировки = КластерСервера.ПолучитьБлокировки(); + Для Каждого Блокировка Из Блокировки Цикл + Если ЗначениеЗаполнено(Блокировка.ИдентификаторСеанса) Тогда + АдминистрированиеКластера.ДанныеСеансаИзБлокировки(Результат, + Блокировка.Описание, + Блокировка.ИдентификаторСеанса, + БазаКластера.Name); + КонецЕсли; + КонецЦикла; + + Возврат Результат; +КонецФункции + +Функция СписокСеансов(АгентСервера, КластерСервера, БазаКластера, Знач Фильтр = Неопределено, ДобавитьОбъектСеанса = Ложь) + Результат = Новый Массив; + + СвойстваСеансовИзОписанияБлокировок = СвойстваСеансовИзОписанияБлокировок(КластерСервера, БазаКластера); + + СеансыБазы = БазаКластера.ПолучитьСеансы(); + СоединенияБазы = БазаКластера.ПолучитьСоединения(); + РабочиеПроцессыКластера = КластерСервера.ПолучитьРабочиеПроцессы(); + Для Каждого Сеанс Из СеансыБазы Цикл + ОписаниеСеанса = ОписаниеСеанса(Сеанс); + Если ЗначениеЗаполнено(Сеанс.Лицензии) Тогда + ЛицензияСеанса = Сеанс.Лицензии[0]; // АдминистрированиеЛицензия + ОписаниеСеанса.Лицензия = ОписаниеЛицензии(ЛицензияСеанса); + КонецЕсли; + + СвойстваСеансаИзБлокировки = СвойстваСеансовИзОписанияБлокировок[Сеанс.ИдентификаторСеанса]; + Если ЗначениеЗаполнено(СвойстваСеансаИзБлокировки) Тогда + ОписаниеСеанса.Разделитель = СвойстваСеансаИзБлокировки.Разделитель; + ОписаниеСеанса.РежимБлокировкиБД = СвойстваСеансаИзБлокировки.РежимБлокировкиБД; + КонецЕсли; + + СоединениеСеанса = СоединениеСеанса(Сеанс, СоединенияБазы); + Если СоединениеСеанса <> Неопределено Тогда + ОписаниеСеанса.ОписаниеСоединения = ОписаниеСоединения(СоединениеСеанса); + РабочийПроцессСеанса = РабочийПроцессСеанса(СоединениеСеанса, РабочиеПроцессыКластера); + Если РабочийПроцессСеанса <> Неопределено Тогда + ОписаниеРабочегоПроцесса = ОписаниеРабочегоПроцесса(РабочийПроцессСеанса, КластерСервера); + + ОписаниеСеанса.РабочийПроцесс = ОписаниеРабочегоПроцесса; + ОписаниеСеанса.ОписаниеСоединения.РабочийПроцесс = ОписаниеРабочегоПроцесса; + КонецЕсли; + КонецЕсли; + + Если АдминистрированиеКластера.ПроверитьУсловияФильтра(ОписаниеСеанса, Фильтр) Тогда + Если ДобавитьОбъектСеанса Тогда + ОписаниеСеанса.Вставить("ОбъектСеанса", Сеанс); + КонецЕсли; + Результат.Добавить(ОписаниеСеанса); + КонецЕсли; + КонецЦикла; + Возврат Результат; +КонецФункции + +Функция СоединениеСеанса(Сеанс, СоединенияБазы) + Перем Результат; + Для Каждого Соединение Из СоединенияБазы Цикл + Если Соединение.ИдентификаторСоединения = Сеанс.ИдентификаторСоединения Тогда + Результат = Соединение; + Прервать; + КонецЕсли; + КонецЦикла; + Возврат Результат; +КонецФункции + +Функция РабочийПроцессСеанса(СоединениеСеанса, РабочиеПроцессыКластера) + Перем Результат; + Для Каждого РабочийПроцесс Из РабочиеПроцессыКластера Цикл + Если СоединениеСеанса.ИдентификаторПроцесса = РабочийПроцесс.ИдентификаторРабочегоПроцесса Тогда + Результат = РабочийПроцесс; + Прервать; + КонецЕсли; + КонецЦикла; + Возврат Результат; +КонецФункции + +Функция СписокСоединений(АгентСервера, КластерСервера, БазаКластера, Знач Фильтр = Неопределено, Описания = Ложь) + Результат = Новый Массив(); + Для каждого Соединение Из БазаКластера.ПолучитьСоединения() Цикл + ОписаниеСоединения = ОписаниеСоединения(Соединение); + Если Не ЗначениеЗаполнено(ОписаниеСоединения.Номер) Тогда Продолжить; КонецЕсли; - УстановитьИспользованиеСпискаКонтроляДоступа(ИдентификаторКластера, ПараметрыАдминистрированияКластера, ИмяПрофиля, ФрагментСловаря.Значение, Не НовыеСвойства[ФрагментСловаря.Ключ]); - КонецЦикла; - - // Виртуальные каталоги - ОбновитьЭлементыСпискаКонтроляДоступа(ИдентификаторКластера, - ПараметрыАдминистрированияКластера, - ИмяПрофиля, - "directory", - СловарьСвойствВиртуальногоКаталога(), - НовыеСвойства.ВиртуальныеКаталоги, - СтарыеСвойства.ВиртуальныеКаталоги); - - // Разрешенные COM-классы - ОбновитьЭлементыСпискаКонтроляДоступа(ИдентификаторКластера, - ПараметрыАдминистрированияКластера, - ИмяПрофиля, - "com", - СловарьСвойствCOMКласса(), - НовыеСвойства.COMКлассы, - СтарыеСвойства.COMКлассы); - - // Внешние компоненты - ОбновитьЭлементыСпискаКонтроляДоступа(ИдентификаторКластера, - ПараметрыАдминистрированияКластера, - ИмяПрофиля, - "addin", - СловарьСвойствВнешнейКомпоненты(), - НовыеСвойства.ВнешниеКомпоненты, - СтарыеСвойства.ВнешниеКомпоненты); - - // Внешние модули - ОбновитьЭлементыСпискаКонтроляДоступа(ИдентификаторКластера, - ПараметрыАдминистрированияКластера, - ИмяПрофиля, - "module", - СловарьСвойствВнешнегоМодуля(), - НовыеСвойства.ВнешниеМодули, - СтарыеСвойства.ВнешниеМодули); - - // Приложения ОС - ОбновитьЭлементыСпискаКонтроляДоступа(ИдентификаторКластера, - ПараметрыАдминистрированияКластера, - ИмяПрофиля, - "app", - СловарьСвойствПриложенияОС(), - НовыеСвойства.ПриложенияОС, - СтарыеСвойства.ПриложенияОС); - - // Интернет-ресурсы - ОбновитьЭлементыСпискаКонтроляДоступа(ИдентификаторКластера, - ПараметрыАдминистрированияКластера, - ИмяПрофиля, - "inet", - СловарьСвойствИнтернетРесурса(), - НовыеСвойства.ИнтернетРесурсы, - СтарыеСвойства.ИнтернетРесурсы); - -КонецПроцедуры -Процедура УстановитьИспользованиеСпискаКонтроляДоступа(Знач ИдентификаторКластера, Знач ПараметрыАдминистрированияКластера, Знач ИмяПрофиля, Знач ИмяСписка, Знач Использование) - - Команда = "profile acl --name=%1 %2 --access=%3 " + ПараметрыКластера(ПараметрыАдминистрированияКластера, ИдентификаторКластера); - ПодставитьПараметрыВКоманду(Команда, ИмяПрофиля, ИмяСписка, ?(Использование, "list", "full")); - ЗапуститьКоманду(Команда, ПараметрыАдминистрированияКластера); - -КонецПроцедуры - -Процедура УдалитьЭлементСпискаКонтроляДоступа(Знач ИдентификаторКластера, Знач ПараметрыАдминистрированияКластера, - Знач ИмяПрофиля, Знач ИмяСписка, Знач КлючЭлемента) - - КлючСписка = КлючиСписковКонтроляДоступа()[ИмяСписка]; - - Команда = "profile acl --name=%1 %2 remove --%3=%4 " + ПараметрыКластера(ПараметрыАдминистрированияКластера, ИдентификаторКластера); - ПодставитьПараметрыВКоманду(Команда, ИмяПрофиля, ИмяСписка, КлючСписка, КлючЭлемента); - - ЗапуститьКоманду(Команда, ПараметрыАдминистрированияКластера); - -КонецПроцедуры - -Процедура ОбновитьЭлементСпискаКонтроляДоступа(Знач ИдентификаторКластера, Знач ПараметрыАдминистрированияКластера, - Знач ИмяПрофиля, Знач ИмяСписка, Знач Словарь, Знач СвойстваЭлемента) - - ПараметрыКластера = ПараметрыКластера(ПараметрыАдминистрированияКластера, ИдентификаторКластера); - - ПараметрыПолучения = Новый Структура; - ПараметрыПолучения.Вставить("ПараметрыАдминистрированияКластера", ПараметрыАдминистрированияКластера); - ПараметрыПолучения.Вставить("ТипОбъекта", "profile"); - ПоддерживаемыеСвойства = ПоддерживаемыеСвойстваОбъектов(ПараметрыПолучения); - - Команда = "profile acl --name=%1 %2 update"; - ПодставитьПараметрыВКоманду(Команда, ИмяПрофиля, ИмяСписка); - ДобавитьПараметрыКомандыПоСловарю(Команда, Словарь, СвойстваЭлемента, ПоддерживаемыеСвойства["profile_" + ИмяСписка]); - - ЗапуститьКоманду(Команда + " " + ПараметрыКластера, ПараметрыАдминистрированияКластера); - -КонецПроцедуры - -Процедура ОбновитьЭлементыСпискаКонтроляДоступа(Знач ИдентификаторКластера, Знач ПараметрыАдминистрированияКластера, - Знач ИмяПрофиля, Знач ИмяСписка, Знач Словарь, Знач НовыеЭлементы, Знач СтарыеЭлементы = Неопределено) - - Если СтарыеЭлементы = Неопределено Или СтарыеЭлементы.Количество() = 0 Тогда - Для Каждого НовыйЭлемент Из НовыеЭлементы Цикл - ОбновитьЭлементСпискаКонтроляДоступа(ИдентификаторКластера, ПараметрыАдминистрированияКластера, ИмяПрофиля, ИмяСписка, Словарь, НовыйЭлемент); - КонецЦикла; - Возврат; - КонецЕсли; - - КлючСписка = КлючиСписковКонтроляДоступа()[ИмяСписка]; - ИмяКлючевогоПараметра = ""; - Для Каждого КлючИЗначение Из Словарь Цикл - Если КлючИЗначение.Значение = КлючСписка Тогда - ИмяКлючевогоПараметра = КлючИЗначение.Ключ; + Если АдминистрированиеКластера.ПроверитьУсловияФильтра(ОписаниеСоединения, Фильтр) Тогда + Если Описания Тогда + Результат.Добавить(ОписаниеСоединения); + Иначе + Результат.Добавить(Соединение); КонецЕсли; - КонецЦикла; - - ЭлементыДляУдаления = Новый Соответствие; - Для Каждого СтарыйЭлемент Из СтарыеЭлементы Цикл - ЭлементыДляУдаления.Вставить(СтарыйЭлемент[ИмяКлючевогоПараметра], СтарыйЭлемент); - КонецЦикла; - - // Создание или обновление (если свойства различаются). - Для Каждого НовыйЭлемент Из НовыеЭлементы Цикл - Ключ = НовыйЭлемент[ИмяКлючевогоПараметра]; - СтарыйЭлемент = ЭлементыДляУдаления.Получить(Ключ); - Если СтарыйЭлемент = Неопределено Тогда - ОбновитьЭлементСпискаКонтроляДоступа(ИдентификаторКластера, ПараметрыАдминистрированияКластера, ИмяПрофиля, ИмяСписка, Словарь, НовыйЭлемент); - Иначе - ЭлементыДляУдаления.Удалить(Ключ); - // Обновление только если различаются свойства. - Для Каждого КлючИЗначение Из НовыйЭлемент Цикл - Если КлючИЗначение.Значение <> СтарыйЭлемент[КлючИЗначение.Ключ] Тогда - ОбновитьЭлементСпискаКонтроляДоступа(ИдентификаторКластера, ПараметрыАдминистрированияКластера, ИмяПрофиля, ИмяСписка, Словарь, НовыйЭлемент); - Прервать; - КонецЕсли; - КонецЦикла; КонецЕсли; КонецЦикла; - - // Удаление ненужных элементов. - Для Каждого КлючИЗначение Из ЭлементыДляУдаления Цикл - УдалитьЭлементСпискаКонтроляДоступа(ИдентификаторКластера, ПараметрыАдминистрированияКластера, ИмяПрофиля, ИмяСписка, КлючИЗначение.Ключ); - КонецЦикла; - -КонецПроцедуры - -Функция ПреобразоватьЗначенияСвойствИспользованияСписковДоступа(Знач Описание) - - Словарь = СловарьСвойствИспользованияСписокКонтроляДоступа(); - - Результат = Новый Структура; - - Для Каждого КлючИЗначение Из Описание Цикл - - Если Словарь.Свойство(КлючИЗначение.Ключ) Тогда - - Если КлючИЗначение.Значение = "list" Тогда - - Значение = Ложь; - - ИначеЕсли КлючИЗначение.Значение = "full" Тогда - - Значение = Истина; - - КонецЕсли; - - Результат.Вставить(КлючИЗначение.Ключ, Значение); - - Иначе - - Результат.Вставить(КлючИЗначение.Ключ, КлючИЗначение.Значение); - - КонецЕсли; - - КонецЦикла; - Возврат Результат; +КонецФункции + +Функция ОбъектПрофиляБезопасности(ПараметрыАдминистрированияКластера, ИмяПрофиля) + Результат = Неопределено; + АгентСервера = АгентСервера(ПараметрыАдминистрированияКластера); + КластерСервера = КластерСервера(АгентСервера, ПараметрыАдминистрированияКластера); + ПрофилиБезопасности = КластерСервера.ПолучитьПрофилиБезопасности(); + Для Каждого ПрофильБезопасности Из ПрофилиБезопасности Цикл + Если ПрофильБезопасности.Имя = ИмяПрофиля Тогда + Результат = ПрофильБезопасности; + Прервать; + КонецЕсли; + КонецЦикла; + Возврат Результат; +КонецФункции + +#КонецОбласти + +#Область СвойстваИзКонсоли + +Функция ТипыСвойствКластера() + + Типы = Новый Соответствие; + + Типы.Вставить("cluster", Тип("Строка")); + Типы.Вставить("host", Тип("Строка")); + Типы.Вставить("port", Тип("Число")); + Типы.Вставить("name", Тип("Строка")); + Типы.Вставить("expiration-timeout", Тип("Число")); + Типы.Вставить("lifetime-limit", Тип("Число")); + Типы.Вставить("max-memory-size", Тип("Число")); + Типы.Вставить("max-memory-time-limit", Тип("Число")); + Типы.Вставить("security-level", Тип("Число")); + Типы.Вставить("session-fault-tolerance-level", Тип("Число")); + Типы.Вставить("load-balancing-mode", Тип("Строка")); + Типы.Вставить("errors-count-threshold", Тип("Число")); + Типы.Вставить("kill-problem-processes", Тип("Число")); + + Возврат Новый ФиксированноеСоответствие(Типы); + +КонецФункции + +Функция ТипыСвойствРабочихСерверов() + Типы = Новый Соответствие; + + Типы.Вставить("server", Тип("Строка")); + Типы.Вставить("agent-host", Тип("Строка")); + Типы.Вставить("agent-port", Тип("Число")); + Типы.Вставить("port-range", Тип("Строка")); + Типы.Вставить("name", Тип("Строка")); + Типы.Вставить("using", Тип("Строка")); + Типы.Вставить("dedicate-managers", Тип("Строка")); + Типы.Вставить("infobases-limit", Тип("Число")); + Типы.Вставить("memory-limit", Тип("Число")); + Типы.Вставить("connections-limit", Тип("Число")); + Типы.Вставить("safe-working-processes-memory-limit", Тип("Число")); + Типы.Вставить("safe-call-memory-limit", Тип("Число")); + Типы.Вставить("cluster-port", Тип("Число")); + + Возврат Новый ФиксированноеСоответствие(Типы); +КонецФункции + +Функция ТипыСвойствСеансов() + + Типы = Новый Соответствие; + + Типы.Вставить("session", Тип("Строка")); + Типы.Вставить("session-id", Тип("Число")); + Типы.Вставить("infobase", Тип("Строка")); + Типы.Вставить("connection", Тип("Строка")); + Типы.Вставить("process", Тип("Строка")); + Типы.Вставить("user-name", Тип("Строка")); + Типы.Вставить("host", Тип("Строка")); + Типы.Вставить("app-id", Тип("Строка")); + Типы.Вставить("locale", Тип("Строка")); + Типы.Вставить("started-at", Тип("Дата")); + Типы.Вставить("last-active-at", Тип("Дата")); + Типы.Вставить("hibernate", Тип("Булево")); + Типы.Вставить("passive-session-hibernate-time", Тип("Число")); + Типы.Вставить("hibernate-session-terminate-time", Тип("Число")); + Типы.Вставить("blocked-by-dbms", Тип("Число")); + Типы.Вставить("blocked-by-ls", Тип("Число")); + Типы.Вставить("bytes-all", Тип("Число")); + Типы.Вставить("bytes-last-5min", Тип("Число")); + Типы.Вставить("calls-all", Тип("Число")); + Типы.Вставить("calls-last-5min", Тип("Число")); + Типы.Вставить("dbms-bytes-all", Тип("Число")); + Типы.Вставить("dbms-bytes-last-5min", Тип("Число")); + Типы.Вставить("db-proc-info", Тип("Строка")); + Типы.Вставить("db-proc-took", Тип("Число")); + Типы.Вставить("db-proc-took-at", Тип("Дата")); + Типы.Вставить("duration-all", Тип("Число")); + Типы.Вставить("duration-all-dbms", Тип("Число")); + Типы.Вставить("duration-current", Тип("Число")); + Типы.Вставить("duration-current-dbms", Тип("Число")); + Типы.Вставить("duration-last-5min", Тип("Число")); + Типы.Вставить("duration-last-5min-dbms", Тип("Число")); + Типы.Вставить("memory-current", Тип("Число")); + Типы.Вставить("memory-last-5min", Тип("Число")); + Типы.Вставить("memory-total", Тип("Число")); + Типы.Вставить("read-current", Тип("Число")); + Типы.Вставить("read-last-5min", Тип("Число")); + Типы.Вставить("read-total", Тип("Число")); + Типы.Вставить("write-current", Тип("Число")); + Типы.Вставить("write-last-5min", Тип("Число")); + Типы.Вставить("write-total", Тип("Число")); + + Возврат Новый ФиксированноеСоответствие(Типы); + +КонецФункции + +Функция ТипыСвойствСоединений() + + Типы = Новый Соответствие; + + Типы.Вставить("connection", Тип("Строка")); + Типы.Вставить("conn-id", Тип("Число")); + Типы.Вставить("user-name", Тип("Строка")); + Типы.Вставить("host", Тип("Строка")); + Типы.Вставить("app-id", Тип("Строка")); + Типы.Вставить("connected-at", Тип("Дата")); + Типы.Вставить("thread-mode", Тип("Строка")); + Типы.Вставить("ib-conn-mode", Тип("Строка")); + Типы.Вставить("db-conn-mode", Тип("Строка")); + Типы.Вставить("blocked-by-dbms", Тип("Число")); + Типы.Вставить("bytes-all", Тип("Число")); + Типы.Вставить("bytes-last-5min", Тип("Число")); + Типы.Вставить("calls-all", Тип("Число")); + Типы.Вставить("calls-last-5min", Тип("Число")); + Типы.Вставить("dbms-bytes-all", Тип("Число")); + Типы.Вставить("dbms-bytes-last-5min", Тип("Число")); + Типы.Вставить("db-proc-info", Тип("Строка")); + Типы.Вставить("db-proc-took", Тип("Число")); + Типы.Вставить("db-proc-took-at", Тип("Дата")); + Типы.Вставить("duration-all", Тип("Число")); + Типы.Вставить("duration-all-dbms", Тип("Число")); + Типы.Вставить("duration-current", Тип("Число")); + Типы.Вставить("duration-current-dbms", Тип("Число")); + Типы.Вставить("duration-last-5min", Тип("Число")); + Типы.Вставить("duration-last-5min-dbms", Тип("Число")); + Типы.Вставить("memory-current", Тип("Число")); + Типы.Вставить("memory-last-5min", Тип("Число")); + Типы.Вставить("memory-total", Тип("Число")); + Типы.Вставить("read-current", Тип("Число")); + Типы.Вставить("read-last-5min", Тип("Число")); + Типы.Вставить("read-total", Тип("Число")); + Типы.Вставить("write-current", Тип("Число")); + Типы.Вставить("write-last-5min", Тип("Число")); + Типы.Вставить("write-total", Тип("Число")); + + Возврат Новый ФиксированноеСоответствие(Типы); + +КонецФункции + +Функция ТипыСвойствОписанияБазы() + + Типы = Новый Соответствие; + + Типы.Вставить("infobase", Тип("Строка")); + Типы.Вставить("name", Тип("Строка")); + Типы.Вставить("descr", Тип("Строка")); + + Возврат Новый ФиксированноеСоответствие(Типы); + +КонецФункции + +Функция СловарьСвойствСеансов() + + Лицензия = Новый Структура; + Лицензия.Вставить("Ключ", "license"); + Лицензия.Вставить("Словарь", СловарьСвойствЛицензии()); + + ОписаниеСоединения = Новый Структура; + ОписаниеСоединения.Вставить("Ключ", "connection"); + ОписаниеСоединения.Вставить("Словарь", СловарьСвойствОписанияСоединения()); + + РабочийПроцесс = Новый Структура; + РабочийПроцесс.Вставить("Ключ", "process"); + РабочийПроцесс.Вставить("Словарь", СловарьСвойствРабочегоПроцесса()); + + Результат = АдминистрированиеКластера.СвойстваСеанса(); + + Результат.Номер = "session-id"; + Результат.ИмяПользователя = "user-name"; + Результат.ИмяКлиентскогоКомпьютера = "host"; + Результат.ИдентификаторКлиентскогоПриложения = "app-id"; + Результат.ИдентификаторЯзыка = "locale"; + Результат.МоментСозданияСеанса = "started-at"; + Результат.МоментПоследнейАктивностиСеанса = "last-active-at"; + Результат.БлокировкаСУБД = "blocked-by-dbms"; + Результат.Блокировка = "blocked-by-ls"; + Результат.Передано = "bytes-all"; + Результат.ПереданоЗа5Минут = "bytes-last-5min"; + Результат.СерверныхВызовов = "calls-all"; + Результат.СерверныхВызововЗа5Минут = "calls-last-5min"; + Результат.ДлительностьСерверныхВызовов = "duration-all"; + Результат.ДлительностьТекущегоСерверногоВызова = "duration-current"; + Результат.ДлительностьСерверныхВызововЗа5Минут = "duration-last-5min"; + Результат.ПереданоСУБД = "dbms-bytes-all"; + Результат.ПереданоСУБДЗа5Минут = "dbms-bytes-last-5min"; + Результат.ДлительностьВызововСУБД = "duration-all-dbms"; + Результат.ДлительностьТекущегоВызоваСУБД = "duration-current-dbms"; + Результат.ДлительностьВызововСУБДЗа5Минут = "duration-last-5min-dbms"; + Результат.СоединениеСУБД = "db-proc-info"; + Результат.ВремяСоединенияСУБД = "db-proc-took"; + Результат.МоментЗахватаСоединенияСУБД = "db-proc-took-at"; + Результат.Спящий = "hibernate"; + Результат.ЗавершитьЧерез = "hibernate-session-terminate-time"; + Результат.ЗаснутьЧерез = "passive-session-hibernate-time"; + Результат.ПрочитаноСДиска = "read-total"; + Результат.ПрочитаноСДискаВТекущемВызове = "read-current"; + Результат.ПрочитаноСДискаЗа5Минут = "read-last-5min"; + Результат.ЗанятоПамяти = "memory-total"; + Результат.ЗанятоПамятиВТекущемВызове = "memory-current"; + Результат.ЗанятоПамятиЗа5Минут = "memory-last-5min"; + Результат.ЗаписаноНаДиск = "write-total"; + Результат.ЗаписаноНаДискВТекущемВызове = "write-current"; + Результат.ЗаписаноНаДискЗа5Минут = "write-last-5min"; + Результат.Лицензия = Новый ФиксированнаяСтруктура(Лицензия); + Результат.ОписаниеСоединения = Новый ФиксированнаяСтруктура(ОписаниеСоединения); + Результат.РабочийПроцесс = Новый ФиксированнаяСтруктура(РабочийПроцесс); + + Возврат Новый ФиксированнаяСтруктура(Результат); + +КонецФункции + +Функция СловарьСвойствОписанияСоединения() + + РабочийПроцесс = Новый Структура; + РабочийПроцесс.Вставить("Ключ", "process"); + РабочийПроцесс.Вставить("Словарь", СловарьСвойствРабочегоПроцесса()); + + Результат = АдминистрированиеКластера.СвойстваОписанияСоединения(); + + Результат.ИмяПриложения = "application"; + Результат.Блокировка = "blocked-by-ls"; + Результат.МоментУстановкиСоединения = "connected-at"; + Результат.Номер = "conn-id"; + Результат.ИмяКлиентскогоКомпьютера = "host"; + Результат.НомерСеанса = "session-number"; + Результат.РабочийПроцесс = Новый ФиксированнаяСтруктура(РабочийПроцесс); + + Возврат Новый ФиксированнаяСтруктура(Результат); + +КонецФункции + +Функция СловарьСвойствЛицензии() + + Результат = АдминистрированиеКластера.СвойстваЛицензии(); + + Результат.ИмяФайла = "full-name"; + Результат.ПолноеПредставление = "full-presentation"; + Результат.КраткоеПредставление = "short-presentation"; + Результат.ВыданаСервером = "issued-by-server"; + Результат.ТипЛицензии = "license-type"; + Результат.МаксимальноеКоличествоПользователейДляКомплекта = "max-users-all"; + Результат.МаксимальноеКоличествоПользователейВКлюче = "max-users-cur"; + Результат.ЛицензияПолученаЧерезAladdinLicenseManager = "net"; + Результат.АдресПроцесса = "rmngr-address"; + Результат.ИдентификаторПроцесса = "rmngr-pid"; + Результат.ПортПроцесса = "rmngr-port"; + Результат.СерияКлюча = "series"; + + Возврат Новый ФиксированнаяСтруктура(Результат); + +КонецФункции + +Функция СловарьСвойствРабочегоПроцесса() + + Лицензия = Новый Структура; + Лицензия.Вставить("Ключ", "license"); + Лицензия.Вставить("Словарь", СловарьСвойствЛицензии()); + + Результат = АдминистрированиеКластера.СвойстваРабочегоПроцесса(); + + Результат.ДоступнаяПроизводительность = "available-perfomance"; + Результат.ЗатраченоКлиентом = "avg-back-call-time"; + Результат.РеакцияСервера = "avg-call-time"; + Результат.ЗатраченоСУБД = "avg-db-call-time"; + Результат.ЗатраченоМенеджеромБлокировок = "avg-lock-call-time"; + Результат.ЗатраченоСервером = "avg-server-call-time"; + Результат.КлиентскихПотоков = "avg-threads"; + Результат.ОтносительнаяПроизводительность = "capacity"; + Результат.Соединений = "connections"; + Результат.ИмяКомпьютера = "host"; + Результат.Включен = "is-enable"; + Результат.Порт = "port"; + Результат.ПревышениеНадКритическимЗначением = "memory-excess-time"; + Результат.ЗанятоПамяти = "memory-size"; + Результат.Идентификатор = "pid"; + Результат.Запущен = "running"; + Результат.КоличествоВызововПоКоторымПосчитанаСтатистика = "selection-size"; + Результат.МоментЗапуска = "started-at"; + Результат.Использование = "use"; + Результат.Лицензия = Новый ФиксированнаяСтруктура(Лицензия); + + Возврат Новый ФиксированнаяСтруктура(Результат); + +КонецФункции + +Функция СловарьСвойствСоединений() + + Результат = АдминистрированиеКластера.СвойстваСоединения(); + + Результат.Номер = "conn-id"; + Результат.ИмяПользователя = "user-name"; + Результат.ИмяКлиентскогоКомпьютера = "host"; + Результат.ИдентификаторКлиентскогоПриложения = "app-id"; + Результат.МоментУстановкиСоединения = "connected-at"; + Результат.РежимСоединенияСИнформационнойБазой = "ib-conn-mode"; + Результат.РежимСоединенияСБазойДанных = "db-conn-mode"; + Результат.БлокировкаСУБД = "blocked-by-dbms"; + Результат.Передано = "bytes-all"; + Результат.ПереданоЗа5Минут = "bytes-last-5min"; + Результат.СерверныхВызовов = "calls-all"; + Результат.СерверныхВызововЗа5Минут = "calls-last-5min"; + Результат.ПереданоСУБД = "dbms-bytes-all"; + Результат.ПереданоСУБДЗа5Минут = "dbms-bytes-last-5min"; + Результат.СоединениеСУБД = "db-proc-info"; + Результат.ВремяСУБД = "db-proc-took"; + Результат.МоментЗахватаСоединенияСУБД = "db-proc-took-at"; + Результат.ДлительностьСерверныхВызовов = "duration-all"; + Результат.ДлительностьВызововСУБД = "duration-all-dbms"; + Результат.ДлительностьТекущегоСерверногоВызова = "duration-current"; + Результат.ДлительностьТекущегоВызоваСУБД = "duration-current-dbms"; + Результат.ДлительностьСерверныхВызововЗа5Минут = "duration-last-5min"; + Результат.ДлительностьВызововСУБДЗа5Минут = "duration-last-5min-dbms"; + Результат.ПрочитаноСДиска = "read-total"; + Результат.ПрочитаноСДискаВТекущемВызове = "read-current"; + Результат.ПрочитаноСДискаЗа5Минут = "read-last-5min"; + Результат.ЗанятоПамяти = "memory-total"; + Результат.ЗанятоПамятиВТекущемВызове = "memory-current"; + Результат.ЗанятоПамятиЗа5Минут = "memory-last-5min"; + Результат.ЗаписаноНаДиск = "write-total"; + Результат.ЗаписаноНаДискВТекущемВызове = "write-current"; + Результат.ЗаписаноНаДискЗа5Минут = "write-last-5min"; + Результат.УправлениеНаходитсяНаСервере = "thread-mode"; + + Возврат Новый ФиксированнаяСтруктура(Результат); КонецФункции @@ -1299,6 +1344,133 @@ КонецФункции +Функция ПараметрыКластера(ПараметрыАдминистрированияКластера, ИдентификаторКластера = Неопределено) + + Если ИдентификаторКластера = Неопределено Тогда + ИдентификаторКластера = ИдентификаторКластера(ПараметрыАдминистрированияКластера); + КонецЕсли; + + ПараметрыКластера = "--cluster=" + ИдентификаторКластера; + Если ЗначениеЗаполнено(ПараметрыАдминистрированияКластера.ИмяАдминистратораКластера) Тогда + ПараметрыКластера = ПараметрыКластера + " --cluster-user=""" + ПараметрыАдминистрированияКластера.ИмяАдминистратораКластера + """"; + Если ЗначениеЗаполнено(ПараметрыАдминистрированияКластера.ПарольАдминистратораКластера) Тогда + ПараметрыКластера = ПараметрыКластера + " --cluster-pwd=""" + ПараметрыАдминистрированияКластера.ПарольАдминистратораКластера + """"; + КонецЕсли; + КонецЕсли; + + Если ЗначениеЗаполнено(ПараметрыАдминистрированияКластера.АдресСервераАдминистрирования) Тогда + Сервер = СокрЛП(ПараметрыАдминистрированияКластера.АдресСервераАдминистрирования); + Если ЗначениеЗаполнено(ПараметрыАдминистрированияКластера.ПортСервераАдминистрирования) Тогда + Сервер = Сервер + ":" + ПривестиЗначение(ПараметрыАдминистрированияКластера.ПортСервераАдминистрирования); + КонецЕсли; + ПараметрыКластера = ПараметрыКластера + " " + Сервер; + КонецЕсли; + + Возврат ПараметрыКластера; + +КонецФункции + +Процедура ПодставитьПараметрыВКоманду(Команда, Знач Параметр1, + Знач Параметр2 = Неопределено, + Знач Параметр3 = Неопределено, + Знач Параметр4 = Неопределено) + + Команда = СтроковыеФункцииКлиентСервер.ПодставитьПараметрыВСтроку(Команда, + ПривестиЗначение(Параметр1), + ПривестиЗначение(Параметр2), + ПривестиЗначение(Параметр3), + ПривестиЗначение(Параметр4)); + +КонецПроцедуры + +Функция ФильтрВНотациюRac(Знач Фильтр, Знач Словарь) + + Если Фильтр = Неопределено Тогда + Возврат Неопределено; + КонецЕсли; + + Если Словарь = Неопределено Тогда + Возврат Фильтр; + КонецЕсли; + + Результат = Новый Массив(); + + Для Каждого Условие Из Фильтр Цикл + + Если ТипЗнч(Условие) = Тип("КлючИЗначение") Тогда + + Результат.Добавить(Новый Структура("Свойство, ВидСравнения, Значение", Словарь[Условие.Ключ], ВидСравнения.Равно, Условие.Значение)); + + ИначеЕсли ТипЗнч(Условие) = Тип("Структура") Тогда + + Результат.Добавить(Новый Структура("Свойство, ВидСравнения, Значение", Словарь[Условие.Свойство], Условие.ВидСравнения, Условие.Значение)); + + КонецЕсли; + + КонецЦикла; + + Возврат Результат; + +КонецФункции + +#КонецОбласти + +#Область ЗапускКонсольнойКоманды + +Функция ЗапуститьКоманду(Команда, ПараметрыАдминистрированияКластера, Словарь = Неопределено, Фильтр = Неопределено, ТипыСвойств = Неопределено) + + Если БезопасныйРежим() <> Ложь Тогда + ВызватьИсключение НСтр("ru = 'Администрирование кластера невозможно в безопасном режиме'"); + КонецЕсли; + + Если ОбщегоНазначения.РазделениеВключено() Тогда + ВызватьИсключение НСтр("ru = 'В модели сервиса недопустимо выполнение прикладной информационной базой функций администрирования кластера'"); + КонецЕсли; + + // Подставим в командную строку путь до утилиты rac и адрес сервера ras. + Клиент = ПутьККлиентуСервераАдминистрирования(); + ФайлКлиента = Новый Файл(Клиент); + Если Не ФайлКлиента.Существует() Тогда + + ВызватьИсключение СтроковыеФункцииКлиентСервер.ПодставитьПараметрыВСтроку( + НСтр("ru = 'Невозможно выполнить операцию администрирования кластера серверов по причине: не существует файл %1 + | + |Для администрирования кластера через сервер администрирования (ras) установите на данном + |компьютере клиент сервера администрирования (rac). + |Для его установки: + |- Для компьютеров с ОС Windows переустановите платформу, установив компонент ""Сервер 1С:Предприятия""; + |- Для компьютеров с ОС Linux установите пакет 1c-enterprise83-server*.'"), + ФайлКлиента.ПолноеИмя); + + КонецЕсли; + + КоманднаяСтрока = """" + Клиент + """ " + Команда; + + ПараметрыЗапускаПрограммы = ФайловаяСистема.ПараметрыЗапускаПрограммы(); + ПараметрыЗапускаПрограммы.ТекущийКаталог = КаталогИсполняемыхФайловПлатформы(); + ПараметрыЗапускаПрограммы.ДождатьсяЗавершения = Истина; + ПараметрыЗапускаПрограммы.ПолучитьПотокВывода = Истина; + ПараметрыЗапускаПрограммы.ПолучитьПотокОшибок = Истина; + + Результат = ФайловаяСистема.ЗапуститьПрограмму(ПреобразоватьКоманднуюСтрокуВМассив(КоманднаяСтрока), + ПараметрыЗапускаПрограммы); + + ПотокВывода = Результат.ПотокВывода; + ПотокОшибок = Результат.ПотокОшибок; + + Если ЗначениеЗаполнено(ПотокОшибок) Тогда + ВызватьИсключение ПотокОшибок; + КонецЕсли; + + Если ПустаяСтрока(ПотокВывода) Тогда + Возврат Новый Массив; + КонецЕсли; + + Результат = ПарсерВывода(ПотокВывода, Словарь, Фильтр, ТипыСвойств); + Возврат Результат; + +КонецФункции + Функция СтрокаСодержитТолькоДопустимыеСимволы(Строка, ДопустимыеСимволы) ВсеДопустимыеСимволы = Новый Соответствие; @@ -1316,6 +1488,61 @@ КонецФункции +Функция КаталогИсполняемыхФайловПлатформы() + + Результат = КаталогПрограммы(); + СимволРазделителя = ПолучитьРазделительПути(); + + Если Прав(Результат, 1) <> СимволРазделителя Тогда + Результат = Результат + СимволРазделителя; + КонецЕсли; + + Возврат Результат; + +КонецФункции + +Функция ПреобразоватьКоманднуюСтрокуВМассив(Знач КоманднаяСтрока) + + Результат = Новый Массив; + + КавычкиОткрыты = Ложь; + ДлинаСтроки = СтрДлина(КоманднаяСтрока); + ПредыдущийСимвол = ""; + НовыйЭлемент = ""; + + Для Индекс = 1 По ДлинаСтроки Цикл + + Символ = Сред(КоманднаяСтрока, Индекс, 1); + Если Символ = """" Тогда + КавычкиОткрыты = Не КавычкиОткрыты; + КонецЕсли; + + Если Не Символ = """" Тогда + НовыйЭлемент = НовыйЭлемент + Символ; + КонецЕсли; + + Если ПредыдущийСимвол = """" И Символ = """" + И КавычкиОткрыты Тогда + НовыйЭлемент = НовыйЭлемент + ПредыдущийСимвол; + КонецЕсли; + + Если (Символ = " " И Не КавычкиОткрыты) Или Индекс = ДлинаСтроки Тогда + Если Не ПустаяСтрока(НовыйЭлемент) Тогда + Результат.Добавить(СокрЛП(НовыйЭлемент)); + КонецЕсли; + + НовыйЭлемент = ""; + Продолжить; + КонецЕсли; + + ПредыдущийСимвол = Символ; + + КонецЦикла; + + Возврат Результат; + +КонецФункции + Функция ПривестиЭлементВывода(ЭлементВывода, ТипЭлемента) Если ТипЭлемента = Тип("Строка") Тогда @@ -1500,1009 +1727,7 @@ КонецФункции -Функция ФильтрВНотациюRac(Знач Фильтр, Знач Словарь) - - Если Фильтр = Неопределено Тогда - Возврат Неопределено; - КонецЕсли; - - Если Словарь = Неопределено Тогда - Возврат Фильтр; - КонецЕсли; - - Результат = Новый Массив(); - - Для Каждого Условие Из Фильтр Цикл - - Если ТипЗнч(Условие) = Тип("КлючИЗначение") Тогда - - Результат.Добавить(Новый Структура("Свойство, ВидСравнения, Значение", Словарь[Условие.Ключ], ВидСравнения.Равно, Условие.Значение)); - - ИначеЕсли ТипЗнч(Условие) = Тип("Структура") Тогда - - Результат.Добавить(Новый Структура("Свойство, ВидСравнения, Значение", Словарь[Условие.Свойство], Условие.ВидСравнения, Условие.Значение)); - - КонецЕсли; - - КонецЦикла; - - Возврат Результат; - -КонецФункции +#КонецОбласти -Функция СловарьСвойствБлокировкиСеансовИРегламентныхЗаданий() - - Результат = АдминистрированиеКластера.СвойстваБлокировкиСеансовИРегламентныхЗаданий(); - - Результат.БлокировкаСеансов = "sessions-deny"; - Результат.ДатаС = "denied-from"; - Результат.ДатаПо = "denied-to"; - Результат.Сообщение = "denied-message"; - Результат.КодРазрешения = "permission-code"; - Результат.ПараметрБлокировки = "denied-parameter"; - Результат.БлокировкаРегламентныхЗаданий = "scheduled-jobs-deny"; - - Возврат Новый ФиксированнаяСтруктура(Результат); - -КонецФункции +#КонецОбласти -Функция СловарьСвойствСеансов() - - Лицензия = Новый Структура; - Лицензия.Вставить("Ключ", "license"); - Лицензия.Вставить("Словарь", СловарьСвойствЛицензии()); - - ОписаниеСоединения = Новый Структура; - ОписаниеСоединения.Вставить("Ключ", "connection"); - ОписаниеСоединения.Вставить("Словарь", СловарьСвойствОписанияСоединения()); - - РабочийПроцесс = Новый Структура; - РабочийПроцесс.Вставить("Ключ", "process"); - РабочийПроцесс.Вставить("Словарь", СловарьСвойствРабочегоПроцесса()); - - Результат = АдминистрированиеКластера.СвойстваСеанса(); - - Результат.Номер = "session-id"; - Результат.ИмяПользователя = "user-name"; - Результат.ИмяКлиентскогоКомпьютера = "host"; - Результат.ИдентификаторКлиентскогоПриложения = "app-id"; - Результат.ИдентификаторЯзыка = "locale"; - Результат.МоментСозданияСеанса = "started-at"; - Результат.МоментПоследнейАктивностиСеанса = "last-active-at"; - Результат.БлокировкаСУБД = "blocked-by-dbms"; - Результат.Блокировка = "blocked-by-ls"; - Результат.Передано = "bytes-all"; - Результат.ПереданоЗа5Минут = "bytes-last-5min"; - Результат.СерверныхВызовов = "calls-all"; - Результат.СерверныхВызововЗа5Минут = "calls-last-5min"; - Результат.ДлительностьСерверныхВызовов = "duration-all"; - Результат.ДлительностьТекущегоСерверногоВызова = "duration-current"; - Результат.ДлительностьСерверныхВызововЗа5Минут = "duration-last-5min"; - Результат.ПереданоСУБД = "dbms-bytes-all"; - Результат.ПереданоСУБДЗа5Минут = "dbms-bytes-last-5min"; - Результат.ДлительностьВызововСУБД = "duration-all-dbms"; - Результат.ДлительностьТекущегоВызоваСУБД = "duration-current-dbms"; - Результат.ДлительностьВызововСУБДЗа5Минут = "duration-last-5min-dbms"; - Результат.СоединениеСУБД = "db-proc-info"; - Результат.ВремяСоединенияСУБД = "db-proc-took"; - Результат.МоментЗахватаСоединенияСУБД = "db-proc-took-at"; - Результат.Спящий = "hibernate"; - Результат.ЗавершитьЧерез = "hibernate-session-terminate-time"; - Результат.ЗаснутьЧерез = "passive-session-hibernate-time"; - Результат.ПрочитаноСДиска = "read-total"; - Результат.ПрочитаноСДискаВТекущемВызове = "read-current"; - Результат.ПрочитаноСДискаЗа5Минут = "read-last-5min"; - Результат.ЗанятоПамяти = "memory-total"; - Результат.ЗанятоПамятиВТекущемВызове = "memory-current"; - Результат.ЗанятоПамятиЗа5Минут = "memory-last-5min"; - Результат.ЗаписаноНаДиск = "write-total"; - Результат.ЗаписаноНаДискВТекущемВызове = "write-current"; - Результат.ЗаписаноНаДискЗа5Минут = "write-last-5min"; - Результат.Лицензия = Новый ФиксированнаяСтруктура(Лицензия); - Результат.ОписаниеСоединения = Новый ФиксированнаяСтруктура(ОписаниеСоединения); - Результат.РабочийПроцесс = Новый ФиксированнаяСтруктура(РабочийПроцесс); - - Возврат Новый ФиксированнаяСтруктура(Результат); - -КонецФункции - -Функция СловарьСвойствСоединений() - - Результат = АдминистрированиеКластера.СвойстваСоединения(); - - Результат.Номер = "conn-id"; - Результат.ИмяПользователя = "user-name"; - Результат.ИмяКлиентскогоКомпьютера = "host"; - Результат.ИдентификаторКлиентскогоПриложения = "app-id"; - Результат.МоментУстановкиСоединения = "connected-at"; - Результат.РежимСоединенияСИнформационнойБазой = "ib-conn-mode"; - Результат.РежимСоединенияСБазойДанных = "db-conn-mode"; - Результат.БлокировкаСУБД = "blocked-by-dbms"; - Результат.Передано = "bytes-all"; - Результат.ПереданоЗа5Минут = "bytes-last-5min"; - Результат.СерверныхВызовов = "calls-all"; - Результат.СерверныхВызововЗа5Минут = "calls-last-5min"; - Результат.ПереданоСУБД = "dbms-bytes-all"; - Результат.ПереданоСУБДЗа5Минут = "dbms-bytes-last-5min"; - Результат.СоединениеСУБД = "db-proc-info"; - Результат.ВремяСУБД = "db-proc-took"; - Результат.МоментЗахватаСоединенияСУБД = "db-proc-took-at"; - Результат.ДлительностьСерверныхВызовов = "duration-all"; - Результат.ДлительностьВызововСУБД = "duration-all-dbms"; - Результат.ДлительностьТекущегоСерверногоВызова = "duration-current"; - Результат.ДлительностьТекущегоВызоваСУБД = "duration-current-dbms"; - Результат.ДлительностьСерверныхВызововЗа5Минут = "duration-last-5min"; - Результат.ДлительностьВызововСУБДЗа5Минут = "duration-last-5min-dbms"; - Результат.ПрочитаноСДиска = "read-total"; - Результат.ПрочитаноСДискаВТекущемВызове = "read-current"; - Результат.ПрочитаноСДискаЗа5Минут = "read-last-5min"; - Результат.ЗанятоПамяти = "memory-total"; - Результат.ЗанятоПамятиВТекущемВызове = "memory-current"; - Результат.ЗанятоПамятиЗа5Минут = "memory-last-5min"; - Результат.ЗаписаноНаДиск = "write-total"; - Результат.ЗаписаноНаДискВТекущемВызове = "write-current"; - Результат.ЗаписаноНаДискЗа5Минут = "write-last-5min"; - Результат.УправлениеНаходитсяНаСервере = "thread-mode"; - - Возврат Новый ФиксированнаяСтруктура(Результат); - -КонецФункции - -Функция СловарьСвойствПрофиляБезопасности(Знач ВключаяСвойстваИспользованияСписковКонтроляДоступа = Истина) - - Результат = АдминистрированиеКластера.СвойстваПрофиляБезопасности(); - - Результат.Удалить("COMКлассы"); - Результат.Удалить("ВиртуальныеКаталоги"); - Результат.Удалить("ВнешниеКомпоненты"); - Результат.Удалить("ВнешниеМодули"); - Результат.Удалить("ИнтернетРесурсы"); - Результат.Удалить("ПриложенияОС"); - - Результат.Имя = "name"; - Результат.Описание = "descr"; - Результат.ПрофильБезопасногоРежима = "config"; - Результат.ПолныйДоступКПривилегированномуРежиму = "priv"; - Результат.ПолныйДоступКФункциямКриптографии = "crypto"; - Результат.ПолныйДоступКРасширениюВсехМодулей = "all-modules-extension"; - Результат.ДоступныеДляРасширенияМодули = "modules-available-for-extension"; - Результат.НедоступныеДляРасширенияМодули = "modules-not-available-for-extension"; - Результат.ПолныйДоступКРасширениюПравДоступа = "right-extension"; - Результат.РолиОграничивающиеРасширениеПравДоступа = "right-extension-definition-roles"; - - СловарьСвойствИспользованияСписковКонтроляДоступа = СловарьСвойствИспользованияСписокКонтроляДоступа(); - Для Каждого ФрагментСловаря Из СловарьСвойствИспользованияСписковКонтроляДоступа Цикл - Если ВключаяСвойстваИспользованияСписковКонтроляДоступа Тогда - Результат[ФрагментСловаря.Ключ] = ФрагментСловаря.Значение; - Иначе - Результат.Удалить(ФрагментСловаря.Ключ); - КонецЕсли; - КонецЦикла; - - Возврат Новый ФиксированнаяСтруктура(Результат); - -КонецФункции - -Функция СловарьСвойствИспользованияСписокКонтроляДоступа() - - Результат = Новый Структура(); - - Результат.Вставить("ПолныйДоступКФайловойСистеме", "directory"); - Результат.Вставить("ПолныйДоступКCOMОбъектам", "com"); - Результат.Вставить("ПолныйДоступКВнешнимКомпонентам", "addin"); - Результат.Вставить("ПолныйДоступКВнешнимМодулям", "module"); - Результат.Вставить("ПолныйДоступКПриложениямОперационнойСистемы", "app"); - Результат.Вставить("ПолныйДоступКИнтернетРесурсам", "inet"); - - Возврат Новый ФиксированнаяСтруктура(Результат); - -КонецФункции - -Функция СловарьСвойствВиртуальногоКаталога() - - Результат = АдминистрированиеКластера.СвойстваВиртуальногоКаталога(); - - Результат.ЛогическийURL = "alias"; - Результат.ФизическийURL = "physicalPath"; - - Результат.Описание = "descr"; - - Результат.ЧтениеДанных = "allowedRead"; - Результат.ЗаписьДанных = "allowedWrite"; - - Возврат Новый ФиксированнаяСтруктура(Результат); - -КонецФункции - -Функция СловарьСвойствCOMКласса() - - Результат = АдминистрированиеКластера.СвойстваCOMКласса(); - - Результат.Имя = "name"; - Результат.Описание = "descr"; - - Результат.ФайлМоникер = "fileName"; - Результат.CLSID = "id"; - Результат.Компьютер = "host"; - - Возврат Новый ФиксированнаяСтруктура(Результат); - -КонецФункции - -Функция СловарьСвойствВнешнейКомпоненты() - - Результат = АдминистрированиеКластера.СвойстваВнешнейКомпоненты(); - Результат.Имя = "name"; - Результат.Описание = "descr"; - Результат.ХешСумма = "hash"; - Возврат Новый ФиксированнаяСтруктура(Результат); - -КонецФункции - -Функция СловарьСвойствВнешнегоМодуля() - - Результат = АдминистрированиеКластера.СвойстваВнешнегоМодуля(); - Результат.Имя = "name"; - Результат.Описание = "descr"; - Результат.ХешСумма = "hash"; - Возврат Новый ФиксированнаяСтруктура(Результат); - -КонецФункции - -Функция СловарьСвойствПриложенияОС() - - Результат = АдминистрированиеКластера.СвойстваПриложенияОС(); - - Результат.Имя = "name"; - Результат.Описание = "descr"; - - Результат.ШаблонСтрокиЗапуска = "wild"; - - Возврат Новый ФиксированнаяСтруктура(Результат); - -КонецФункции - -Функция СловарьСвойствИнтернетРесурса() - - Результат = АдминистрированиеКластера.СвойстваИнтернетРесурса(); - - Результат.Имя = "name"; - Результат.Описание = "descr"; - - Результат.Протокол = "protocol"; - Результат.Адрес = "url"; - Результат.Порт = "port"; - - Возврат Новый ФиксированнаяСтруктура(Результат); - -КонецФункции - -Функция СловарьСвойствОписанияСоединения() - - РабочийПроцесс = Новый Структура; - РабочийПроцесс.Вставить("Ключ", "process"); - РабочийПроцесс.Вставить("Словарь", СловарьСвойствРабочегоПроцесса()); - - Результат = АдминистрированиеКластера.СвойстваОписанияСоединения(); - - Результат.ИмяПриложения = "application"; - Результат.Блокировка = "blocked-by-ls"; - Результат.МоментУстановкиСоединения = "connected-at"; - Результат.Номер = "conn-id"; - Результат.ИмяКлиентскогоКомпьютера = "host"; - Результат.НомерСеанса = "session-number"; - Результат.РабочийПроцесс = Новый ФиксированнаяСтруктура(РабочийПроцесс); - - Возврат Новый ФиксированнаяСтруктура(Результат); - -КонецФункции - -Функция СловарьСвойствЛицензии() - - Результат = АдминистрированиеКластера.СвойстваЛицензии(); - - Результат.ИмяФайла = "full-name"; - Результат.ПолноеПредставление = "full-presentation"; - Результат.КраткоеПредставление = "short-presentation"; - Результат.ВыданаСервером = "issued-by-server"; - Результат.ТипЛицензии = "license-type"; - Результат.МаксимальноеКоличествоПользователейДляКомплекта = "max-users-all"; - Результат.МаксимальноеКоличествоПользователейВКлюче = "max-users-cur"; - Результат.ЛицензияПолученаЧерезAladdinLicenseManager = "net"; - Результат.АдресПроцесса = "rmngr-address"; - Результат.ИдентификаторПроцесса = "rmngr-pid"; - Результат.ПортПроцесса = "rmngr-port"; - Результат.СерияКлюча = "series"; - - Возврат Новый ФиксированнаяСтруктура(Результат); - -КонецФункции - -Функция СловарьСвойствРабочегоПроцесса() - - Лицензия = Новый Структура; - Лицензия.Вставить("Ключ", "license"); - Лицензия.Вставить("Словарь", СловарьСвойствЛицензии()); - - Результат = АдминистрированиеКластера.СвойстваРабочегоПроцесса(); - - Результат.ДоступнаяПроизводительность = "available-perfomance"; - Результат.ЗатраченоКлиентом = "avg-back-call-time"; - Результат.РеакцияСервера = "avg-call-time"; - Результат.ЗатраченоСУБД = "avg-db-call-time"; - Результат.ЗатраченоМенеджеромБлокировок = "avg-lock-call-time"; - Результат.ЗатраченоСервером = "avg-server-call-time"; - Результат.КлиентскихПотоков = "avg-threads"; - Результат.ОтносительнаяПроизводительность = "capacity"; - Результат.Соединений = "connections"; - Результат.ИмяКомпьютера = "host"; - Результат.Включен = "is-enable"; - Результат.Порт = "port"; - Результат.ПревышениеНадКритическимЗначением = "memory-excess-time"; - Результат.ЗанятоПамяти = "memory-size"; - Результат.Идентификатор = "pid"; - Результат.Запущен = "running"; - Результат.КоличествоВызововПоКоторымПосчитанаСтатистика = "selection-size"; - Результат.МоментЗапуска = "started-at"; - Результат.Использование = "use"; - Результат.Лицензия = Новый ФиксированнаяСтруктура(Лицензия); - - Возврат Новый ФиксированнаяСтруктура(Результат); - -КонецФункции - -Функция КлючиСписковКонтроляДоступа() - - Результат = Новый Структура(); - - Результат.Вставить("directory", "alias"); - Результат.Вставить("com", "name"); - Результат.Вставить("addin", "name"); - Результат.Вставить("module", "name"); - Результат.Вставить("app", "name"); - Результат.Вставить("inet", "name"); - - Возврат Новый ФиксированнаяСтруктура(Результат); - -КонецФункции - -Функция ТипыСвойствКластера() - - Типы = Новый Соответствие; - - Типы.Вставить("cluster", Тип("Строка")); - Типы.Вставить("host", Тип("Строка")); - Типы.Вставить("port", Тип("Число")); - Типы.Вставить("name", Тип("Строка")); - Типы.Вставить("expiration-timeout", Тип("Число")); - Типы.Вставить("lifetime-limit", Тип("Число")); - Типы.Вставить("max-memory-size", Тип("Число")); - Типы.Вставить("max-memory-time-limit", Тип("Число")); - Типы.Вставить("security-level", Тип("Число")); - Типы.Вставить("session-fault-tolerance-level", Тип("Число")); - Типы.Вставить("load-balancing-mode", Тип("Строка")); - Типы.Вставить("errors-count-threshold", Тип("Число")); - Типы.Вставить("kill-problem-processes", Тип("Число")); - - Возврат Новый ФиксированноеСоответствие(Типы); - -КонецФункции - -Функция ТипыСвойствРабочихСерверов() - - Типы = Новый Соответствие; - - Типы.Вставить("server", Тип("Строка")); - Типы.Вставить("agent-host", Тип("Строка")); - Типы.Вставить("agent-port", Тип("Число")); - Типы.Вставить("port-range", Тип("Строка")); - Типы.Вставить("name", Тип("Строка")); - Типы.Вставить("using", Тип("Строка")); - Типы.Вставить("dedicate-managers", Тип("Строка")); - Типы.Вставить("infobases-limit", Тип("Число")); - Типы.Вставить("memory-limit", Тип("Число")); - Типы.Вставить("connections-limit", Тип("Число")); - Типы.Вставить("safe-working-processes-memory-limit", Тип("Число")); - Типы.Вставить("safe-call-memory-limit", Тип("Число")); - Типы.Вставить("cluster-port", Тип("Число")); - - Возврат Новый ФиксированноеСоответствие(Типы); - -КонецФункции - -Функция ТипыСвойствОписанияБазы() - - Типы = Новый Соответствие; - - Типы.Вставить("infobase", Тип("Строка")); - Типы.Вставить("name", Тип("Строка")); - Типы.Вставить("descr", Тип("Строка")); - - Возврат Новый ФиксированноеСоответствие(Типы); - -КонецФункции - -Функция ТипыСвойствИнформационнойБазы() - - Типы = Новый Соответствие; - - Типы.Вставить("infobase", Тип("Строка")); - Типы.Вставить("name", Тип("Строка")); - Типы.Вставить("dbms", Тип("Строка")); - Типы.Вставить("db-server", Тип("Строка")); - Типы.Вставить("db-name", Тип("Строка")); - Типы.Вставить("db-user", Тип("Строка")); - Типы.Вставить("security-level", Тип("Число")); - Типы.Вставить("license-distribution", Тип("Строка")); - Типы.Вставить("scheduled-jobs-deny", Тип("Булево")); - Типы.Вставить("sessions-deny", Тип("Булево")); - Типы.Вставить("denied-from", Тип("Дата")); - Типы.Вставить("denied-message", Тип("Строка")); - Типы.Вставить("denied-parameter", Тип("Строка")); - Типы.Вставить("denied-to", Тип("Дата")); - Типы.Вставить("permission-code", Тип("Строка")); - Типы.Вставить("external-session-manager-connection-string", Тип("Строка")); - Типы.Вставить("external-session-manager-required", Тип("Булево")); - Типы.Вставить("security-profile-name", Тип("Строка")); - Типы.Вставить("safe-mode-security-profile-name", Тип("Строка")); - Типы.Вставить("descr", Тип("Строка")); - - Возврат Новый ФиксированноеСоответствие(Типы); - -КонецФункции - -Функция ТипыСвойствСеансов() - - Типы = Новый Соответствие; - - Типы.Вставить("session", Тип("Строка")); - Типы.Вставить("session-id", Тип("Число")); - Типы.Вставить("infobase", Тип("Строка")); - Типы.Вставить("connection", Тип("Строка")); - Типы.Вставить("process", Тип("Строка")); - Типы.Вставить("user-name", Тип("Строка")); - Типы.Вставить("host", Тип("Строка")); - Типы.Вставить("app-id", Тип("Строка")); - Типы.Вставить("locale", Тип("Строка")); - Типы.Вставить("started-at", Тип("Дата")); - Типы.Вставить("last-active-at", Тип("Дата")); - Типы.Вставить("hibernate", Тип("Булево")); - Типы.Вставить("passive-session-hibernate-time", Тип("Число")); - Типы.Вставить("hibernate-session-terminate-time", Тип("Число")); - Типы.Вставить("blocked-by-dbms", Тип("Число")); - Типы.Вставить("blocked-by-ls", Тип("Число")); - Типы.Вставить("bytes-all", Тип("Число")); - Типы.Вставить("bytes-last-5min", Тип("Число")); - Типы.Вставить("calls-all", Тип("Число")); - Типы.Вставить("calls-last-5min", Тип("Число")); - Типы.Вставить("dbms-bytes-all", Тип("Число")); - Типы.Вставить("dbms-bytes-last-5min", Тип("Число")); - Типы.Вставить("db-proc-info", Тип("Строка")); - Типы.Вставить("db-proc-took", Тип("Число")); - Типы.Вставить("db-proc-took-at", Тип("Дата")); - Типы.Вставить("duration-all", Тип("Число")); - Типы.Вставить("duration-all-dbms", Тип("Число")); - Типы.Вставить("duration-current", Тип("Число")); - Типы.Вставить("duration-current-dbms", Тип("Число")); - Типы.Вставить("duration-last-5min", Тип("Число")); - Типы.Вставить("duration-last-5min-dbms", Тип("Число")); - Типы.Вставить("memory-current", Тип("Число")); - Типы.Вставить("memory-last-5min", Тип("Число")); - Типы.Вставить("memory-total", Тип("Число")); - Типы.Вставить("read-current", Тип("Число")); - Типы.Вставить("read-last-5min", Тип("Число")); - Типы.Вставить("read-total", Тип("Число")); - Типы.Вставить("write-current", Тип("Число")); - Типы.Вставить("write-last-5min", Тип("Число")); - Типы.Вставить("write-total", Тип("Число")); - - Возврат Новый ФиксированноеСоответствие(Типы); - -КонецФункции - -Функция ТипыСвойствСоединений() - - Типы = Новый Соответствие; - - Типы.Вставить("connection", Тип("Строка")); - Типы.Вставить("conn-id", Тип("Число")); - Типы.Вставить("user-name", Тип("Строка")); - Типы.Вставить("host", Тип("Строка")); - Типы.Вставить("app-id", Тип("Строка")); - Типы.Вставить("connected-at", Тип("Дата")); - Типы.Вставить("thread-mode", Тип("Строка")); - Типы.Вставить("ib-conn-mode", Тип("Строка")); - Типы.Вставить("db-conn-mode", Тип("Строка")); - Типы.Вставить("blocked-by-dbms", Тип("Число")); - Типы.Вставить("bytes-all", Тип("Число")); - Типы.Вставить("bytes-last-5min", Тип("Число")); - Типы.Вставить("calls-all", Тип("Число")); - Типы.Вставить("calls-last-5min", Тип("Число")); - Типы.Вставить("dbms-bytes-all", Тип("Число")); - Типы.Вставить("dbms-bytes-last-5min", Тип("Число")); - Типы.Вставить("db-proc-info", Тип("Строка")); - Типы.Вставить("db-proc-took", Тип("Число")); - Типы.Вставить("db-proc-took-at", Тип("Дата")); - Типы.Вставить("duration-all", Тип("Число")); - Типы.Вставить("duration-all-dbms", Тип("Число")); - Типы.Вставить("duration-current", Тип("Число")); - Типы.Вставить("duration-current-dbms", Тип("Число")); - Типы.Вставить("duration-last-5min", Тип("Число")); - Типы.Вставить("duration-last-5min-dbms", Тип("Число")); - Типы.Вставить("memory-current", Тип("Число")); - Типы.Вставить("memory-last-5min", Тип("Число")); - Типы.Вставить("memory-total", Тип("Число")); - Типы.Вставить("read-current", Тип("Число")); - Типы.Вставить("read-last-5min", Тип("Число")); - Типы.Вставить("read-total", Тип("Число")); - Типы.Вставить("write-current", Тип("Число")); - Типы.Вставить("write-last-5min", Тип("Число")); - Типы.Вставить("write-total", Тип("Число")); - - Возврат Новый ФиксированноеСоответствие(Типы); - -КонецФункции - -Функция ТипыСвойствПрофиля() - - Типы = Новый Соответствие; - - Типы.Вставить("name", Тип("Строка")); - Типы.Вставить("descr", Тип("Строка")); - Типы.Вставить("config", Тип("Булево")); - Типы.Вставить("priv", Тип("Булево")); - Типы.Вставить("directory", Тип("Строка")); - Типы.Вставить("com", Тип("Строка")); - Типы.Вставить("addin", Тип("Строка")); - Типы.Вставить("module", Тип("Строка")); - Типы.Вставить("app", Тип("Строка")); - Типы.Вставить("inet", Тип("Строка")); - Типы.Вставить("crypto", Тип("Булево")); - Типы.Вставить("right-extension", Тип("Булево")); - Типы.Вставить("right-extension-definition-roles", Тип("Строка")); - Типы.Вставить("all-modules-extension", Тип("Булево")); - Типы.Вставить("modules-available-for-extension", Тип("Строка")); - Типы.Вставить("modules-not-available-for-extension", Тип("Строка")); - - Возврат Новый ФиксированноеСоответствие(Типы); - -КонецФункции - -Функция ТипыСвойствОписанияСоединения() - - Типы = Новый Соответствие; - - Типы.Вставить("connection", Тип("Строка")); - Типы.Вставить("conn-id", Тип("Число")); - Типы.Вставить("host", Тип("Строка")); - Типы.Вставить("process", Тип("Строка")); - Типы.Вставить("infobase", Тип("Строка")); - Типы.Вставить("application", Тип("Строка")); - Типы.Вставить("connected-at", Тип("Дата")); - Типы.Вставить("session-number", Тип("Число")); - Типы.Вставить("blocked-by-ls", Тип("Число")); - - Возврат Новый ФиксированноеСоответствие(Типы); - -КонецФункции - -Функция ТипыСвойствЛицензии() - - Типы = Новый Соответствие; - - // Возвращается только для лицензии рабочего процесса. - Типы.Вставить("process", Тип("Строка")); - Типы.Вставить("port", Тип("Число")); - Типы.Вставить("pid", Тип("Строка")); - Типы.Вставить("host", Тип("Строка")); - - // Возвращается только для лицензии сеанса. - Типы.Вставить("session", Тип("Строка")); - Типы.Вставить("user-name", Тип("Строка")); - Типы.Вставить("app-id", Тип("Строка")); - Типы.Вставить("host", Тип("Строка")); - - // Общее для всех лицензий. - Типы.Вставить("full-name", Тип("Строка")); - Типы.Вставить("series", Тип("Строка")); - Типы.Вставить("issued-by-server", Тип("Булево")); - Типы.Вставить("license-type", Тип("Строка")); - Типы.Вставить("net", Тип("Булево")); - Типы.Вставить("max-users-all", Тип("Число")); - Типы.Вставить("max-users-cur", Тип("Число")); - Типы.Вставить("rmngr-address", Тип("Строка")); - Типы.Вставить("rmngr-port", Тип("Число")); - Типы.Вставить("rmngr-pid", Тип("Строка")); - Типы.Вставить("short-presentation", Тип("Строка")); - Типы.Вставить("full-presentation", Тип("Строка")); - - Возврат Новый ФиксированноеСоответствие(Типы); - -КонецФункции - -Функция ТипыСвойствБлокировки() - - Типы = Новый Соответствие; - - Типы.Вставить("connection", Тип("Строка")); - Типы.Вставить("session", Тип("Строка")); - Типы.Вставить("object", Тип("Строка")); - Типы.Вставить("locked", Тип("Дата")); - Типы.Вставить("descr", Тип("Строка")); - - Возврат Новый ФиксированноеСоответствие(Типы); - -КонецФункции - -Функция ТипыСвойствРабочегоПроцесса() - - Типы = Новый Соответствие; - - Типы.Вставить("process", Тип("Строка")); - Типы.Вставить("host", Тип("Строка")); - Типы.Вставить("port", Тип("Число")); - Типы.Вставить("pid", Тип("Строка")); - Типы.Вставить("is-enable", Тип("Булево")); - Типы.Вставить("running", Тип("Булево")); - Типы.Вставить("started-at", Тип("Дата")); - Типы.Вставить("use", Тип("Строка")); - Типы.Вставить("available-perfomance", Тип("Число")); - Типы.Вставить("capacity", Тип("Число")); - Типы.Вставить("connections", Тип("Число")); - Типы.Вставить("memory-size", Тип("Число")); - Типы.Вставить("memory-excess-time", Тип("Число")); - Типы.Вставить("selection-size", Тип("Число")); - Типы.Вставить("avg-back-call-time", Тип("Число")); - Типы.Вставить("avg-call-time", Тип("Число")); - Типы.Вставить("avg-db-call-time", Тип("Число")); - Типы.Вставить("avg-lock-call-time", Тип("Число")); - Типы.Вставить("avg-server-call-time", Тип("Число")); - Типы.Вставить("avg-threads", Тип("Число")); - - Возврат Новый ФиксированноеСоответствие(Типы); - -КонецФункции - -Функция ТипыСвойствВиртуальногоКаталога() - - Типы = Новый Соответствие; - - Типы.Вставить("alias", Тип("Строка")); - Типы.Вставить("physicalPath", Тип("Строка")); - Типы.Вставить("descr", Тип("Строка")); - Типы.Вставить("allowedRead", Тип("Булево")); - Типы.Вставить("allowedWrite", Тип("Булево")); - - Возврат Новый ФиксированноеСоответствие(Типы); - -КонецФункции - -Функция ТипыСвойствCOMКласса() - - Типы = Новый Соответствие; - - Типы.Вставить("name", Тип("Строка")); - Типы.Вставить("descr", Тип("Строка")); - Типы.Вставить("fileName", Тип("Строка")); - Типы.Вставить("id", Тип("Строка")); - Типы.Вставить("host", Тип("Строка")); - - Возврат Новый ФиксированноеСоответствие(Типы); - -КонецФункции - -Функция ТипыСвойствВнешнейКомпоненты() - - Типы = Новый Соответствие; - - Типы.Вставить("name", Тип("Строка")); - Типы.Вставить("descr", Тип("Строка")); - Типы.Вставить("hash", Тип("Строка")); - - Возврат Новый ФиксированноеСоответствие(Типы); - -КонецФункции - -Функция ТипыСвойствВнешнегоМодуля() - - Типы = Новый Соответствие; - - Типы.Вставить("name", Тип("Строка")); - Типы.Вставить("descr", Тип("Строка")); - Типы.Вставить("hash", Тип("Строка")); - - Возврат Новый ФиксированноеСоответствие(Типы); - -КонецФункции - -Функция ТипыСвойствПриложенияОС() - - Типы = Новый Соответствие; - - Типы.Вставить("name", Тип("Строка")); - Типы.Вставить("descr", Тип("Строка")); - Типы.Вставить("wild", Тип("Строка")); - - Возврат Новый ФиксированноеСоответствие(Типы); - -КонецФункции - -Функция ТипыСвойствИнтернетРесурса() - - Типы = Новый Соответствие; - - Типы.Вставить("name", Тип("Строка")); - Типы.Вставить("descr", Тип("Строка")); - Типы.Вставить("protocol", Тип("Строка")); - Типы.Вставить("url", Тип("Строка")); - Типы.Вставить("port", Тип("Число")); - - Возврат Новый ФиксированноеСоответствие(Типы); - -КонецФункции - -Функция ПоддерживаемыеСвойства(Команда, ПараметрыАдминистрированияКластера, ТипыСвойств) - - Результат = ЗапуститьКоманду(Команда, ПараметрыАдминистрированияКластера, , , ТипыСвойств); - - Свойства = Новый Соответствие; - Для Каждого КлючИЗначение Из Результат[0] Цикл - Свойства.Вставить(КлючИЗначение.Ключ, Истина); - КонецЦикла; - - Возврат Свойства; - -КонецФункции - -Функция ЗапуститьКоманду(Команда, ПараметрыАдминистрированияКластера, Словарь = Неопределено, Фильтр = Неопределено, ТипыСвойств = Неопределено) - - Если БезопасныйРежим() <> Ложь Тогда - ВызватьИсключение НСтр("ru = 'Администрирование кластера невозможно в безопасном режиме'"); - КонецЕсли; - - Если ОбщегоНазначения.РазделениеВключено() Тогда - ВызватьИсключение НСтр("ru = 'В модели сервиса недопустимо выполнение прикладной информационной базой функций администрирования кластера'"); - КонецЕсли; - - // Подставим в командную строку путь до утилиты rac и адрес сервера ras. - Клиент = ПутьККлиентуСервераАдминистрирования(); - ФайлКлиента = Новый Файл(Клиент); - Если Не ФайлКлиента.Существует() Тогда - - ВызватьИсключение СтроковыеФункцииКлиентСервер.ПодставитьПараметрыВСтроку( - НСтр("ru = 'Невозможно выполнить операцию администрирования кластера серверов по причине: не существует файл %1 - | - |Для администрирования кластера через сервер администрирования (ras) установите на данном - |компьютере клиент сервера администрирования (rac). - |Для его установки: - |- Для компьютеров с ОС Windows переустановите платформу, установив компонент ""Сервер 1С:Предприятия""; - |- Для компьютеров с ОС Linux установите пакет 1c-enterprise83-server*.'"), - ФайлКлиента.ПолноеИмя); - - КонецЕсли; - - КоманднаяСтрока = """" + Клиент + """ " + Команда; - - ПараметрыЗапускаПрограммы = ФайловаяСистема.ПараметрыЗапускаПрограммы(); - ПараметрыЗапускаПрограммы.ТекущийКаталог = КаталогИсполняемыхФайловПлатформы(); - ПараметрыЗапускаПрограммы.ДождатьсяЗавершения = Истина; - ПараметрыЗапускаПрограммы.ПолучитьПотокВывода = Истина; - ПараметрыЗапускаПрограммы.ПолучитьПотокОшибок = Истина; - - Результат = ФайловаяСистема.ЗапуститьПрограмму(ПреобразоватьКоманднуюСтрокуВМассив(КоманднаяСтрока), - ПараметрыЗапускаПрограммы); - - ПотокВывода = Результат.ПотокВывода; - ПотокОшибок = Результат.ПотокОшибок; - - Если ЗначениеЗаполнено(ПотокОшибок) Тогда - ВызватьИсключение ПотокОшибок; - КонецЕсли; - - Если ПустаяСтрока(ПотокВывода) Тогда - Возврат Новый Массив; - КонецЕсли; - - Результат = ПарсерВывода(ПотокВывода, Словарь, Фильтр, ТипыСвойств); - Возврат Результат; - -КонецФункции - -Функция ПараметрыКластера(ПараметрыАдминистрированияКластера, ИдентификаторКластера = Неопределено) - - Если ИдентификаторКластера = Неопределено Тогда - ИдентификаторКластера = ИдентификаторКластера(ПараметрыАдминистрированияКластера); - КонецЕсли; - - ПараметрыКластера = "--cluster=" + ИдентификаторКластера; - Если ЗначениеЗаполнено(ПараметрыАдминистрированияКластера.ИмяАдминистратораКластера) Тогда - ПараметрыКластера = ПараметрыКластера + " --cluster-user=""" + ПараметрыАдминистрированияКластера.ИмяАдминистратораКластера + """"; - Если ЗначениеЗаполнено(ПараметрыАдминистрированияКластера.ПарольАдминистратораКластера) Тогда - ПараметрыКластера = ПараметрыКластера + " --cluster-pwd=""" + ПараметрыАдминистрированияКластера.ПарольАдминистратораКластера + """"; - КонецЕсли; - КонецЕсли; - - Если ЗначениеЗаполнено(ПараметрыАдминистрированияКластера.АдресСервераАдминистрирования) Тогда - Сервер = СокрЛП(ПараметрыАдминистрированияКластера.АдресСервераАдминистрирования); - Если ЗначениеЗаполнено(ПараметрыАдминистрированияКластера.ПортСервераАдминистрирования) Тогда - Сервер = Сервер + ":" + ПривестиЗначение(ПараметрыАдминистрированияКластера.ПортСервераАдминистрирования); - КонецЕсли; - ПараметрыКластера = ПараметрыКластера + " " + Сервер; - КонецЕсли; - - Возврат ПараметрыКластера; - -КонецФункции - -Процедура ПодставитьПараметрыВКоманду(Команда, Знач Параметр1, - Знач Параметр2 = Неопределено, - Знач Параметр3 = Неопределено, - Знач Параметр4 = Неопределено) - - Команда = СтроковыеФункцииКлиентСервер.ПодставитьПараметрыВСтроку(Команда, - ПривестиЗначение(Параметр1), - ПривестиЗначение(Параметр2), - ПривестиЗначение(Параметр3), - ПривестиЗначение(Параметр4)); - -КонецПроцедуры - -Процедура ДобавитьПараметрыКомандыПоСловарю(Команда, Словарь, ЗначенияСвойств, ПоддерживаемыеСвойства = Неопределено) - - Для Каждого ФрагментСловаря Из Словарь Цикл - ИмяПараметра = ФрагментСловаря.Значение; - Если ПоддерживаемыеСвойства <> Неопределено И ПоддерживаемыеСвойства.Получить(ИмяПараметра) = Неопределено Тогда - Продолжить; - КонецЕсли; - - Если ЗначенияСвойств.Свойство(ФрагментСловаря.Ключ) Тогда - - ЗначениеПараметра = ПривестиЗначение(ЗначенияСвойств[ФрагментСловаря.Ключ]); - Команда = Команда + " --" + ИмяПараметра + "=" + ЗначениеПараметра; - - КонецЕсли; - - КонецЦикла; - -КонецПроцедуры - -Функция ПоддерживаемыеСвойстваОбъектов(ПараметрыПолучения) - - Если ПараметрыПолучения.ТипОбъекта = "profile" Тогда - Возврат ПоддерживаемыеСвойстваПрофиля(ПараметрыПолучения.ПараметрыАдминистрированияКластера); - ИначеЕсли ПараметрыПолучения.ТипОбъекта = "infobase" Тогда - Возврат ПоддерживаемыеСвойстваИнформационнойБазы(ПараметрыПолучения.ПараметрыАдминистрированияКластера, - ПараметрыПолучения.ПараметрыАдминистрированияИБ); - КонецЕсли; - -КонецФункции - -Функция ПоддерживаемыеСвойстваПрофиля(ПараметрыАдминистрированияКластера) - - ИмяПрофиля = "ServiceProfile-81e39185-997c-4ae3-81f7-e7582cfdfa03"; - ОписаниеПрофиля = НСтр("ru = 'Служебный профиль для проверки поддерживаемых свойств.'"); - - ПараметрыКластера = ПараметрыКластера(ПараметрыАдминистрированияКластера); - - Команда = "profile update --name=%1 --descr=%2 " + ПараметрыКластера; - ПодставитьПараметрыВКоманду(Команда, ИмяПрофиля, ОписаниеПрофиля); - ЗапуститьКоманду(Команда, ПараметрыАдминистрированияКластера); - - Команда = "profile acl --name=%1 directory update --alias=%2 " + ПараметрыКластера; - ПодставитьПараметрыВКоманду(Команда, ИмяПрофиля, "Каталог"); - ЗапуститьКоманду(Команда, ПараметрыАдминистрированияКластера); - - Команда = "profile acl --name=%1 com update --name=%2 " + ПараметрыКластера; - ПодставитьПараметрыВКоманду(Команда, ИмяПрофиля, "ComОбъект"); - ЗапуститьКоманду(Команда, ПараметрыАдминистрированияКластера); - - Команда = "profile acl --name=%1 addin update --name=%2 " + ПараметрыКластера; - ПодставитьПараметрыВКоманду(Команда, ИмяПрофиля, "ВнешняяКомпонента"); - ЗапуститьКоманду(Команда, ПараметрыАдминистрированияКластера); - - Команда = "profile acl --name=%1 module update --name=%2 " + ПараметрыКластера; - ПодставитьПараметрыВКоманду(Команда, ИмяПрофиля, "ВнешнийМодуль"); - ЗапуститьКоманду(Команда, ПараметрыАдминистрированияКластера); - - Команда = "profile acl --name=%1 app update --name=%2 " + ПараметрыКластера; - ПодставитьПараметрыВКоманду(Команда, ИмяПрофиля, "Приложение"); - ЗапуститьКоманду(Команда, ПараметрыАдминистрированияКластера); - - Команда = "profile acl --name=%1 inet update --name=%2 " + ПараметрыКластера; - ПодставитьПараметрыВКоманду(Команда, ИмяПрофиля, "ИнтернетРесурсы"); - ЗапуститьКоманду(Команда, ПараметрыАдминистрированияКластера); - - Свойства = Новый Структура; - - Команда = "profile list " + ПараметрыКластера; - Свойства.Вставить("profile", ПоддерживаемыеСвойства(Команда, ПараметрыАдминистрированияКластера, ТипыСвойствПрофиля())); - - Команда = "profile acl --name=%1 directory list " + ПараметрыКластера; - ПодставитьПараметрыВКоманду(Команда, ИмяПрофиля); - Свойства.Вставить("profile_directory", ПоддерживаемыеСвойства(Команда, ПараметрыАдминистрированияКластера, ТипыСвойствВиртуальногоКаталога())); - - Команда = "profile acl --name=%1 com list " + ПараметрыКластера; - ПодставитьПараметрыВКоманду(Команда, ИмяПрофиля); - Свойства.Вставить("profile_com", ПоддерживаемыеСвойства(Команда, ПараметрыАдминистрированияКластера, ТипыСвойствCOMКласса())); - - Команда = "profile acl --name=%1 addin list " + ПараметрыКластера; - ПодставитьПараметрыВКоманду(Команда, ИмяПрофиля); - Свойства.Вставить("profile_addin", ПоддерживаемыеСвойства(Команда, ПараметрыАдминистрированияКластера, ТипыСвойствВнешнейКомпоненты())); - - Команда = "profile acl --name=%1 module list " + ПараметрыКластера; - ПодставитьПараметрыВКоманду(Команда, ИмяПрофиля); - Свойства.Вставить("profile_module", ПоддерживаемыеСвойства(Команда, ПараметрыАдминистрированияКластера, ТипыСвойствВнешнегоМодуля())); - - Команда = "profile acl --name=%1 app list " + ПараметрыКластера; - ПодставитьПараметрыВКоманду(Команда, ИмяПрофиля); - Свойства.Вставить("profile_app", ПоддерживаемыеСвойства(Команда, ПараметрыАдминистрированияКластера, ТипыСвойствПриложенияОС())); - - Команда = "profile acl --name=%1 inet list " + ПараметрыКластера; - ПодставитьПараметрыВКоманду(Команда, ИмяПрофиля); - Свойства.Вставить("profile_inet", ПоддерживаемыеСвойства(Команда, ПараметрыАдминистрированияКластера, ТипыСвойствИнтернетРесурса())); - - Команда = "profile remove --name=%1 " + ПараметрыКластера; - ПодставитьПараметрыВКоманду(Команда, ИмяПрофиля); - ЗапуститьКоманду(Команда, ПараметрыАдминистрированияКластера); - - Возврат Свойства; - -КонецФункции - -Функция ПоддерживаемыеСвойстваИнформационнойБазы(ПараметрыАдминистрированияКластера, ПараметрыАдминистрированияИБ) - - СвойстваБазы = СвойстваИнформационнойБазы(ПараметрыАдминистрированияКластера, ПараметрыАдминистрированияИБ, Неопределено); - - Свойства = Новый Соответствие; - - Для Каждого КлючИЗначение Из СвойстваБазы Цикл - Свойства.Вставить(КлючИЗначение.Ключ, Истина); - КонецЦикла; - - Возврат Свойства; - -КонецФункции - -Функция ПреобразоватьКоманднуюСтрокуВМассив(Знач КоманднаяСтрока) - - Результат = Новый Массив; - - КавычкиОткрыты = Ложь; - ДлинаСтроки = СтрДлина(КоманднаяСтрока); - ПредыдущийСимвол = ""; - НовыйЭлемент = ""; - - Для Индекс = 1 По ДлинаСтроки Цикл - - Символ = Сред(КоманднаяСтрока, Индекс, 1); - Если Символ = """" Тогда - КавычкиОткрыты = Не КавычкиОткрыты; - КонецЕсли; - - Если Не Символ = """" Тогда - НовыйЭлемент = НовыйЭлемент + Символ; - КонецЕсли; - - Если ПредыдущийСимвол = """" И Символ = """" - И КавычкиОткрыты Тогда - НовыйЭлемент = НовыйЭлемент + ПредыдущийСимвол; - КонецЕсли; - - Если (Символ = " " И Не КавычкиОткрыты) Или Индекс = ДлинаСтроки Тогда - Если Не ПустаяСтрока(НовыйЭлемент) Тогда - Результат.Добавить(СокрЛП(НовыйЭлемент)); - КонецЕсли; - - НовыйЭлемент = ""; - Продолжить; - КонецЕсли; - - ПредыдущийСимвол = Символ; - - КонецЦикла; - - Возврат Результат; - -КонецФункции - -#КонецОбласти \ No newline at end of file diff --git a/SSL/src/CommonModules/АдминистрированиеКластераRASКлиентСервер/Module.bsl b/SSL/src/CommonModules/АдминистрированиеКластераRASКлиентСервер/Module.bsl index b99660610..6c998058b 100644 --- a/SSL/src/CommonModules/АдминистрированиеКластераRASКлиентСервер/Module.bsl +++ b/SSL/src/CommonModules/АдминистрированиеКластераRASКлиентСервер/Module.bsl @@ -1,5 +1,5 @@ /////////////////////////////////////////////////////////////////////////////////////////////////////// -// Copyright (c) 2024, ООО 1С-Софт +// Copyright (c) 2025, ООО 1С-Софт // Все права защищены. Эта программа и сопроводительные материалы предоставляются // в соответствии с условиями лицензии Attribution 4.0 International (CC BY 4.0) // Текст лицензии доступен по ссылке: diff --git a/SSL/src/CommonModules/АдминистрированиеКластераКлиентСервер/Module.bsl b/SSL/src/CommonModules/АдминистрированиеКластераКлиентСервер/Module.bsl index 0c007b068..f1ab989ee 100644 --- a/SSL/src/CommonModules/АдминистрированиеКластераКлиентСервер/Module.bsl +++ b/SSL/src/CommonModules/АдминистрированиеКластераКлиентСервер/Module.bsl @@ -1,5 +1,5 @@ /////////////////////////////////////////////////////////////////////////////////////////////////////// -// Copyright (c) 2024, ООО 1С-Софт +// Copyright (c) 2025, ООО 1С-Софт // Все права защищены. Эта программа и сопроводительные материалы предоставляются // в соответствии с условиями лицензии Attribution 4.0 International (CC BY 4.0) // Текст лицензии доступен по ссылке: diff --git a/SSL/src/CommonModules/АдресныйКлассификатор/Module.bsl b/SSL/src/CommonModules/АдресныйКлассификатор/Module.bsl index 12604a50f..323d25546 100644 --- a/SSL/src/CommonModules/АдресныйКлассификатор/Module.bsl +++ b/SSL/src/CommonModules/АдресныйКлассификатор/Module.bsl @@ -1,5 +1,5 @@ /////////////////////////////////////////////////////////////////////////////////////////////////////// -// Copyright (c) 2024, ООО 1С-Софт +// Copyright (c) 2025, ООО 1С-Софт // Все права защищены. Эта программа и сопроводительные материалы предоставляются // в соответствии с условиями лицензии Attribution 4.0 International (CC BY 4.0) // Текст лицензии доступен по ссылке: @@ -51,8 +51,12 @@ НаименованиеРегиона = АдресныйКлассификаторСлужебный.АдаптацияНазванияРегиона(Название); - СписокРегионов = АдресныйКлассификаторПовтИсп.СписокРегионов(); - КодСубъектаРФ = СписокРегионов.Получить(ВРег(НаименованиеРегиона)); + КодСубъектаРФ = Неопределено; + + ДанныеОРегионе = АдресныйКлассификаторПовтИсп.ДанныеОРегионе(НаименованиеРегиона); + Если ДанныеОРегионе <> Неопределено Тогда + КодСубъектаРФ = ДанныеОРегионе.КодСубъектаРФ; + КонецЕсли; Если КодСубъектаРФ <> Неопределено Тогда Возврат КодСубъектаРФ; @@ -85,24 +89,7 @@ Возврат Варианты[0].КодСубъектаРФ; КонецЕсли; - // Поиск по полному наименованию типу региона - Если ЗначениеЗаполнено(ЧастиСлова.ТипОбъекта) Тогда - ПолныеНаименованияТиповАдресныхОбъектов = АдресныйКлассификаторСлужебный.СокращенияАдресныхОбъектов(Новый Массив); - Если ПолныеНаименованияТиповАдресныхОбъектов.Получить(ВРег(ЧастиСлова.ТипОбъекта)) <> Неопределено Тогда - НаименованиеРегиона = ЧастиСлова.Наименование + " " + ПолныеНаименованияТиповАдресныхОбъектов.Получить(ВРег(ЧастиСлова.ТипОбъекта)); - КодСубъектаРФ = СписокРегионов.Получить(ВРег(НаименованиеРегиона)); - Если КодСубъектаРФ <> Неопределено Тогда - Возврат КодСубъектаРФ; - КонецЕсли; - КодСубъектаРФ = СписокРегионов.Получить(ВРег(ЧастиСлова.Наименование)); - Если КодСубъектаРФ <> Неопределено Тогда - Возврат КодСубъектаРФ; - КонецЕсли; - КонецЕсли; - КонецЕсли; - Возврат Неопределено; - КонецФункции @@ -345,6 +332,7 @@ // Структура - коды адреса. Если адрес не существует, то поля структуры содержат пустые значения: // * Идентификатор - Строка - уникальный идентификационный код адресного объекта. // * ИдентификаторДома - Строка - уникальный идентификационный код дома(здания) адресного объекта. +// * ИдентификаторПомещения - Строка - уникальный идентификационный код помещения дома(здания) адресного объекта. // * КодКЛАДР - Строка - код классификатор адресов России (КЛАДР). // * КодИФНСФЛ - Строка - код инспекции ФНС, обслуживающей физических лиц. // * КодИФНСЮЛ - Строка - код инспекции ФНС, обслуживающей юридические лица. @@ -380,68 +368,83 @@ Возврат АдресныйКлассификаторСлужебный.СокращенияАдресныхОбъектов(НаименованияАдресныхОбъектов); КонецФункции -// Возвращает сведения об адресе по коду ОКТМО, который состоит из 8 или 11 цифр. +// Получает сведения об адресе по коду ОКТМО (8 или 11 цифр). +// При передаче единичного кода ОКТМО (типа Строка или Число) функция возвращает соответствие, +// где ключом является исходное значение кода. +// Для каждого кода в качестве значения соответствия возвращается структура с адресными сведениями. +// Если код не найден или некорректен, значением будет Неопределено. // // Параметры: -// ОКТМО - Соответствие - код общероссийского классификатора территорий муниципальных образований. +// ОКТМО - Соответствие из КлючИЗначение: +// * Ключ - Произвольный - произвольный уникальный идентификатор для связи с результатом; +// * Значение - Строка, Число - код ОКТМО; +// - Строка - код общероссийского классификатора территорий муниципальных образований; +// - Число - код общероссийского классификатора территорий муниципальных образований. // // Возвращаемое значение: -// Структура: -// * КодРегиона - Строка - код региона РФ. -// * Регион - Строка - текстовое представление региона РФ. -// * РегионТипПолный - Строка - полное наименование типа региона. Например: "область". -// * РегионТипКраткий - Строка - краткое наименование типа региона. Например: "обл". -// * ИдентификаторРегиона- УникальныйИдентификатор +// Соответствие из КлючИЗначение: +// * Ключ - Строка, Число - исходный код ОКТМО (если был передан один код строкой или числом) или ключ из входного соответствия. +// * Значение - Структура: +// ** КодРегиона - Строка - код региона РФ. +// ** Регион - Строка - текстовое представление региона РФ. +// ** РегионТипПолный - Строка - полное наименование типа региона. Например: "область". +// ** РегионТипКраткий - Строка - краткое наименование типа региона. Например: "обл". +// ** ИдентификаторРегиона- УникальныйИдентификатор // - Неопределено - идентификационный код региона. -// * МуниципальныйРайон - Строка - текстовое представление муниципального района для адреса по муниципальному делению. -// * МуниципальныйРайонТипПолный - Строка - полное наименование типа муниципального района по муниципальному +// ** МуниципальныйРайон - Строка - текстовое представление муниципального района для адреса по муниципальному делению. +// ** МуниципальныйРайонТипПолный - Строка - полное наименование типа муниципального района по муниципальному // делению. Например: "городской округ". -// * МуниципальныйРайонТипКраткий - Строка - краткое наименование типа муниципального района для адреса по +// ** МуниципальныйРайонТипКраткий - Строка - краткое наименование типа муниципального района для адреса по // муниципальному делению. Например: "мун.р-н". -// * ИдентификаторМуниципальногоРайона- УникальныйИдентификатор +// ** ИдентификаторМуниципальногоРайона- УникальныйИдентификатор // - Неопределено - идентификационный код муниципального район. -// * КодМуниципальногоРайона - Строка - код муниципального района: 1- муниципальный район; 2- городской округ; +// ** КодМуниципальногоРайона - Строка - код муниципального района: 1- муниципальный район; 2- городской округ; // 3 - внутригородская территория города федерального значения; 4 - муниципальный округ. // Если не удалось определить код, то возвращается пустая строка. -// * Поселение - Строка - текстовое представление поселения у адресов по муниципальному делению. -// * ПоселениеТипПолный - Строка - полное наименование типа сельского поселения по муниципальному делению. +// ** Поселение - Строка - текстовое представление поселения у адресов по муниципальному делению. +// ** ПоселениеТипПолный - Строка - полное наименование типа сельского поселения по муниципальному делению. // Например: "сельское поселение". -// * ПоселениеТипКраткий - Строка - краткое наименование типа муниципального района для адреса по муниципальному +// ** ПоселениеТипКраткий - Строка - краткое наименование типа муниципального района для адреса по муниципальному // делению. Например: "с. п.". -// * ИдентификаторПоселения- УникальныйИдентификатор +// ** ИдентификаторПоселения- УникальныйИдентификатор // - Неопределено - идентификационный код поселения. -// * КодПоселения - Строка - код поселения: 1 - городское поселение; 2 - сельское поселение; 3- межселенная +// ** КодПоселения - Строка - код поселения: 1 - городское поселение; 2 - сельское поселение; 3- межселенная // территория в составе муниципального района; 4 - внутригородской район городского округа; -// * НаселенныйПункт - Строка - текстовое представление населенного пункта. -// * НаселенныйПунктТипПолный - Строка - полное наименование типа населенного пункта. Например: "деревня". -// * НаселенныйПунктТипКраткий - Строка - краткое наименование типа населенного пункта. Например: "д". -// * ИдентификаторНаселенногоПункта- УникальныйИдентификатор +// ** НаселенныйПункт - Строка - текстовое представление населенного пункта. +// ** НаселенныйПунктТипПолный - Строка - полное наименование типа населенного пункта. Например: "деревня". +// ** НаселенныйПунктТипКраткий - Строка - краткое наименование типа населенного пункта. Например: "д". +// ** ИдентификаторНаселенногоПункта- УникальныйИдентификатор // - Неопределено - идентификационный код населенного пункта. -// * Территория - Строка - текстовое представление территории (элемент планировочной структуры). -// * ТерриторияТипПолный - Строка - полное наименование типа территории. Например: "Гаражно-строительный кооп.". -// * ТерриторияТипКраткий - Строка - краткое наименование типа территории. Например: "гск". -// * ИдентификаторТерритории- УникальныйИдентификатор +// ** Территория - Строка - текстовое представление территории (элемент планировочной структуры). +// ** ТерриторияТипПолный - Строка - полное наименование типа территории. Например: "Гаражно-строительный кооп.". +// ** ТерриторияТипКраткий - Строка - краткое наименование типа территории. Например: "гск". +// ** ИдентификаторТерритории- УникальныйИдентификатор // - Неопределено - идентификационный код территории. -// * ПочтовыйИндекс - Число - почтовый индекс. -// * OKATO - Строка - код общероссийского классификатора объектов административно-территориального деления. -// * КодКЛАДР - Строка - код классификатор адресов России (КЛАДР). -// * КодИФНСФЛ - Строка - код инспекции ФНС, обслуживающей физических лиц. -// * КодИФНСЮЛ - Строка - код инспекции ФНС, обслуживающей юридические лица. -// * КодУчасткаИФНСФЛ - Строка - код территориального участка инспекции ФНС, обслуживающей физических лиц. -// * КодУчасткаИФНСЮЛ - Строка - код территориального участка инспекции ФНС, обслуживающей юридические лица. +// ** ПочтовыйИндекс - Число - почтовый индекс. +// ** OKATO - Строка - код общероссийского классификатора объектов административно-территориального деления. +// ** КодКЛАДР - Строка - код классификатор адресов России (КЛАДР). +// ** КодИФНСФЛ - Строка - код инспекции ФНС, обслуживающей физических лиц. +// ** КодИФНСЮЛ - Строка - код инспекции ФНС, обслуживающей юридические лица. +// ** КодУчасткаИФНСФЛ - Строка - код территориального участка инспекции ФНС, обслуживающей физических лиц. +// ** КодУчасткаИФНСЮЛ - Строка - код территориального участка инспекции ФНС, обслуживающей юридические лица. +// - Неопределено - если передан несуществующий ОКТМО. // -Функция СведенияПоОКМТО(ОКТМО) Экспорт +Функция СведенияПоОКТМО(ОКТМО) Экспорт - СписокОКТМО = Новый Соответствие; - СписокОКТМО.Вставить(1, ОКТМО); + Если ТипЗнч(ОКТМО) = Тип("Соответствие") Тогда + СписокОКТМО = Новый Соответствие(Новый ФиксированноеСоответствие(ОКТМО)); + Иначе + СписокОКТМО = Новый Соответствие; + СписокОКТМО.Вставить(ОКТМО, ОКТМО); + КонецЕсли; - Результат = АдресныйКлассификаторСлужебный.СведенияПоСпискуОКМТО(СписокОКТМО); + Результат = АдресныйКлассификаторСлужебный.СведенияПоСпискуОКТМО(СписокОКТМО); - Возврат Результат[1]; + Возврат Результат; КонецФункции -// Проверяет корректность ОКМТО бюджетополучателей. +// Проверяет корректность ОКТМО бюджетополучателей. // // Для проверки ОКТМО бюджетополучателей требуется подключение к Интернет-поддержке пользователей и наличие // постоянного соединения с интернетом, т.к. адресные сведения, загруженные в приложение, не используются. @@ -472,7 +475,7 @@ СписокОКТМО = ?(ТипЗнч(ОКТМОБюджетополучателей) = Тип("Строка"), ОбщегоНазначенияКлиентСервер.ЗначениеВМассиве(ОКТМОБюджетополучателей), ОКТМОБюджетополучателей); - Возврат АдресныйКлассификаторСлужебный.ПроверитьОКМТОБюджетополучателя(СписокОКТМО); + Возврат АдресныйКлассификаторСлужебный.ПроверитьОКТМОБюджетополучателя(СписокОКТМО); КонецФункции @@ -568,6 +571,67 @@ Возврат АдресныйКлассификаторСлужебный.ОпределитьИдентификаторыАдреса(Адрес); КонецФункции +// Устарела. Возвращает сведения об адресе по коду ОКТМО, который состоит из 8 или 11 цифр. +// +// Параметры: +// ОКТМО - Соответствие - код общероссийского классификатора территорий муниципальных образований. +// +// Возвращаемое значение: +// Структура: +// * КодРегиона - Строка - код региона РФ. +// * Регион - Строка - текстовое представление региона РФ. +// * РегионТипПолный - Строка - полное наименование типа региона. Например: "область". +// * РегионТипКраткий - Строка - краткое наименование типа региона. Например: "обл". +// * ИдентификаторРегиона- УникальныйИдентификатор +// - Неопределено - идентификационный код региона. +// * МуниципальныйРайон - Строка - текстовое представление муниципального района для адреса по муниципальному делению. +// * МуниципальныйРайонТипПолный - Строка - полное наименование типа муниципального района по муниципальному +// делению. Например: "городской округ". +// * МуниципальныйРайонТипКраткий - Строка - краткое наименование типа муниципального района для адреса по +// муниципальному делению. Например: "мун.р-н". +// * ИдентификаторМуниципальногоРайона- УникальныйИдентификатор +// - Неопределено - идентификационный код муниципального район. +// * КодМуниципальногоРайона - Строка - код муниципального района: 1- муниципальный район; 2- городской округ; +// 3 - внутригородская территория города федерального значения; 4 - муниципальный округ. +// Если не удалось определить код, то возвращается пустая строка. +// * Поселение - Строка - текстовое представление поселения у адресов по муниципальному делению. +// * ПоселениеТипПолный - Строка - полное наименование типа сельского поселения по муниципальному делению. +// Например: "сельское поселение". +// * ПоселениеТипКраткий - Строка - краткое наименование типа муниципального района для адреса по муниципальному +// делению. Например: "с. п.". +// * ИдентификаторПоселения- УникальныйИдентификатор +// - Неопределено - идентификационный код поселения. +// * КодПоселения - Строка - код поселения: 1 - городское поселение; 2 - сельское поселение; 3- межселенная +// территория в составе муниципального района; 4 - внутригородской район городского округа; +// * НаселенныйПункт - Строка - текстовое представление населенного пункта. +// * НаселенныйПунктТипПолный - Строка - полное наименование типа населенного пункта. Например: "деревня". +// * НаселенныйПунктТипКраткий - Строка - краткое наименование типа населенного пункта. Например: "д". +// * ИдентификаторНаселенногоПункта- УникальныйИдентификатор +// - Неопределено - идентификационный код населенного пункта. +// * Территория - Строка - текстовое представление территории (элемент планировочной структуры). +// * ТерриторияТипПолный - Строка - полное наименование типа территории. Например: "Гаражно-строительный кооп.". +// * ТерриторияТипКраткий - Строка - краткое наименование типа территории. Например: "гск". +// * ИдентификаторТерритории- УникальныйИдентификатор +// - Неопределено - идентификационный код территории. +// * ПочтовыйИндекс - Число - почтовый индекс. +// * OKATO - Строка - код общероссийского классификатора объектов административно-территориального деления. +// * КодКЛАДР - Строка - код классификатор адресов России (КЛАДР). +// * КодИФНСФЛ - Строка - код инспекции ФНС, обслуживающей физических лиц. +// * КодИФНСЮЛ - Строка - код инспекции ФНС, обслуживающей юридические лица. +// * КодУчасткаИФНСФЛ - Строка - код территориального участка инспекции ФНС, обслуживающей физических лиц. +// * КодУчасткаИФНСЮЛ - Строка - код территориального участка инспекции ФНС, обслуживающей юридические лица. +// +Функция СведенияПоОКМТО(ОКТМО) Экспорт + + СписокОКТМО = Новый Соответствие; + СписокОКТМО.Вставить(1, ОКТМО); + + Результат = АдресныйКлассификаторСлужебный.СведенияПоСпискуОКТМО(СписокОКТМО); + + Возврат Результат[1]; + +КонецФункции + #КонецОбласти #КонецОбласти \ No newline at end of file diff --git a/SSL/src/CommonModules/АдресныйКлассификаторКлиент/Module.bsl b/SSL/src/CommonModules/АдресныйКлассификаторКлиент/Module.bsl index dcff86462..b978603e9 100644 --- a/SSL/src/CommonModules/АдресныйКлассификаторКлиент/Module.bsl +++ b/SSL/src/CommonModules/АдресныйКлассификаторКлиент/Module.bsl @@ -1,5 +1,5 @@ /////////////////////////////////////////////////////////////////////////////////////////////////////// -// Copyright (c) 2024, ООО 1С-Софт +// Copyright (c) 2025, ООО 1С-Софт // Все права защищены. Эта программа и сопроводительные материалы предоставляются // в соответствии с условиями лицензии Attribution 4.0 International (CC BY 4.0) // Текст лицензии доступен по ссылке: @@ -184,6 +184,7 @@ ДополнительныеПараметры.ОписаниеЗавершения = ОписаниеЗавершения; ДополнительныеПараметры.ПолеОшибки = ПолеОшибки; ДополнительныеПараметры.РабочийКаталог = РабочийКаталог; + ДополнительныеПараметры.ЗагружатьПомещения = ПараметрыЗагрузки.ЗагружатьПомещения; ДополнительныеПараметры.Результат.КодыРегионов = КодыРегионов; ОписаниеОповещения = Новый ОписаниеОповещения("АнализДоступностиФайловКлассификатораВКаталогеЗавершение", ЭтотОбъект, ДополнительныеПараметры); @@ -201,6 +202,7 @@ // * КодРегиона - Неопределено -цифровой код региона; // * ПолеОшибки - Строка - элементы формы с ошибкой; // * РабочийКаталог - Строка - каталог загрузки файлов адресных сведений; +// * ЗагружатьПомещения - Булево // * Результат - Структура: // ** КодыРегионов - Массив -коды регионов; // ** ЕстьВсеФайлы - Булево - признак наличия файлов; @@ -222,6 +224,8 @@ ДополнительныеПараметры.Вставить("ИмяФайла", ""); ДополнительныеПараметры.Вставить("ИндексРегиона", Неопределено); + ДополнительныеПараметры.Вставить("ЗагружатьПомещения", Ложь); + Результат = Новый Структура; Результат.Вставить("КодыРегионов", Новый Массив); Результат.Вставить("ЕстьВсеФайлы", Истина); @@ -241,23 +245,29 @@ // Набор файлов для каждого региона. ДополнительныеПараметры.Результат.ФайлыПоРегионам[КодРегиона.Значение] = Новый Массив; - ИмяФайла = Формат(КодРегиона.Значение, "ЧЦ=2; ЧН=; ЧВН=; ЧГ=") + ".ZIP"; + Если ДополнительныеПараметры.ЗагружатьПомещения Тогда + ИмяФайла = Формат(КодРегиона.Значение, "ЧЦ=2; ЧН=; ЧВН=; ЧГ=")+ "apt" + ".ZIP"; + МаскаФайла = МаскаФайла(ИмяФайла); + Иначе + ИмяФайла = Формат(КодРегиона.Значение, "ЧЦ=2; ЧН=; ЧВН=; ЧГ=") + ".ZIP"; + МаскаФайла = МаскаФайла(Формат(КодРегиона.Значение, "ЧЦ=2; ЧН=; ЧВН=; ЧГ=")+ "???" + ".ZIP"); + КонецЕсли; ДополнительныеПараметры.Вставить("КодРегиона", КодРегиона.Значение); ДополнительныеПараметры.Вставить("ИмяФайла", ИмяФайла); ДополнительныеПараметры.Вставить("ИндексРегиона", ИндексРегиона); ОписаниеОповещения = Новый ОписаниеОповещения("АнализДоступностиФайловКлассификатораВКаталогеПослеПоискаФайлов", ЭтотОбъект, ДополнительныеПараметры); - НачатьПоискФайлов(ОписаниеОповещения, ДополнительныеПараметры.РабочийКаталог, МаскаФайла(ИмяФайла)); + НачатьПоискФайлов(ОписаниеОповещения, ДополнительныеПараметры.РабочийКаталог, МаскаФайла); Иначе // окончание цикла Для каждого ОтсутствующийФайл Из ДополнительныеПараметры.ОтсутствующиеФайлы Цикл Представление = ДополнительныеПараметры.Результат.КодыРегионов.НайтиПоЗначению(ОтсутствующийФайл.Ключ); - СообщениеОбОшибке = НСтр("ru = 'Для региона ""%1"" не существует файл данных ""%2""'") + Символы.ПС; - СообщениеОбОшибке = СообщениеОбОшибке + НСтр("ru = 'Актуальные адресные сведения можно загрузить по адресу its.1c.ru/download/fias2'"); + СообщениеОбОшибке = СтроковыеФункцииКлиент.ФорматированнаяСтрока(НСтр("ru = 'Для региона ""%1"" отсутствует файл адресного классификатора ""%2"". + |Загрузите актуальную версию с сайта https://its.1c.ru/download/gar'"), Представление, ОтсутствующийФайл.Значение); ОбщегоНазначенияКлиентСервер.ДобавитьОшибкуПользователю(ДополнительныеПараметры.Результат.Ошибки, ДополнительныеПараметры.ПолеОшибки, - СтроковыеФункцииКлиентСервер.ПодставитьПараметрыВСтроку(СообщениеОбОшибке, Представление, ОтсутствующийФайл.Значение), Неопределено); + СообщениеОбОшибке, Неопределено); КонецЦикла; ВыполнитьОбработкуОповещения(ДополнительныеПараметры.ОписаниеЗавершения, ДополнительныеПараметры.Результат); @@ -284,6 +294,7 @@ Если СтруктураФайла.Существует Тогда СписокПутей = ДополнительныеПараметры.Результат.ФайлыПоРегионам[ДополнительныеПараметры.КодРегиона]; // Массив СписокПутей.Добавить(СтруктураФайла.ПолноеИмя); + ДополнительныеПараметры.ИмяФайла = СтруктураФайла.Имя; Иначе ДополнительныеПараметры.Результат.ЕстьВсеФайлы = Ложь; ДополнительныеПараметры.ОтсутствующиеФайлы.Вставить(ДополнительныеПараметры.КодРегиона, ДополнительныеПараметры.ИмяФайла); diff --git a/SSL/src/CommonModules/АдресныйКлассификаторПовтИсп/Module.bsl b/SSL/src/CommonModules/АдресныйКлассификаторПовтИсп/Module.bsl index c1a321302..f2a939334 100644 --- a/SSL/src/CommonModules/АдресныйКлассификаторПовтИсп/Module.bsl +++ b/SSL/src/CommonModules/АдресныйКлассификаторПовтИсп/Module.bsl @@ -1,5 +1,5 @@ /////////////////////////////////////////////////////////////////////////////////////////////////////// -// Copyright (c) 2024, ООО 1С-Софт +// Copyright (c) 2025, ООО 1С-Софт // Все права защищены. Эта программа и сопроводительные материалы предоставляются // в соответствии с условиями лицензии Attribution 4.0 International (CC BY 4.0) // Текст лицензии доступен по ссылке: @@ -8,22 +8,18 @@ #Область СлужебныйПрограммныйИнтерфейс +Функция АдресныеСокращения() Экспорт + + АдресныеСокращения = РегистрыСведений.АдресныеОбъекты.АдресныеСокращения(); + АдресныеСокращения.Сортировать("Уровень, Актуально Убыв"); + + Возврат АдресныеСокращения; + +КонецФункции + Функция ТипыАдресныхОбъектовДляРаспознаванияАдреса() Экспорт - Запрос = Новый Запрос; - Запрос.Текст = - "ВЫБРАТЬ - | УровниСокращенийАдресныхСведений.Сокращение КАК Сокращение - |ИЗ - | РегистрСведений.УровниСокращенийАдресныхСведений КАК УровниСокращенийАдресныхСведений"; - - РезультатЗапроса = Запрос.Выполнить(); - - Если РезультатЗапроса.Пустой() Тогда - АдресныеСокращения = РегистрыСведений.АдресныеОбъекты.АдресныеСокращения(); - Иначе - АдресныеСокращения = РезультатЗапроса.Выгрузить(); - КонецЕсли; + АдресныеСокращения = АдресныеСокращения(); АдресныеСокращения.Колонки.Добавить("Длина", ОбщегоНазначения.ОписаниеТипаЧисло(3)); АдресныеСокращения.Колонки.Добавить("ТипОбъектаВНачале", ОбщегоНазначения.ОписаниеТипаСтрока(20)); @@ -312,6 +308,52 @@ КонецФункции +// Параметры: +// Наименование - Строка - наименование региона +// +// Возвращаемое значение: +// Структура: +// * Наименование - Строка +// * ТипОбъекта - Строка +// * ОфициальноеНаименование - Строка +// * КодСубъектаРФ - Число +// +Функция ДанныеОРегионе(Наименование) Экспорт + + Результат = Новый Структура; + Результат.Вставить("Наименование", ""); + Результат.Вставить("ТипОбъекта", ""); + Результат.Вставить("ОфициальноеНаименование", ""); + Результат.Вставить("КодСубъектаРФ", Неопределено); + + СписокРегионов = СписокРегионов(); + Для Каждого СтрокаРегиона Из СписокРегионов Цикл + + Если СтрСравнить(СтрокаРегиона.Наименование, Наименование) = 0 + Или СтрСравнить(СтрокаРегиона.ОфициальноеНаименование, Наименование) = 0 Тогда + ЗаполнитьЗначенияСвойств(Результат, СтрокаРегиона); + Возврат Результат; + КонецЕсли; + + КонецЦикла; + + Классификатор = РегистрыСведений.АдресныеОбъекты.КлассификаторСубъектовРФ(); + + Для Каждого СтрокаРегиона Из Классификатор Цикл + + Если СтрСравнить(СтрокаРегиона.Наименование, Наименование) = 0 + Или СтрСравнить(СтрокаРегиона.ПолноеНаименование, Наименование) = 0 Тогда + ЗаполнитьЗначенияСвойств(Результат, СтрокаРегиона); + Результат.ОфициальноеНаименование = СтрокаРегиона.ПолноеНаименование; + Возврат Результат; + КонецЕсли; + + КонецЦикла; + + Возврат Неопределено; + +КонецФункции + #КонецОбласти #Область СлужебныеПроцедурыИФункции @@ -343,8 +385,14 @@ РезультатЗапроса = Запрос.Выполнить(); - СписокУровней = РезультатЗапроса.Выгрузить(); - Уровни = СписокУровней.ВыгрузитьКолонку("Уровень"); + Если Не РезультатЗапроса.Пустой() Тогда + СписокУровней = РезультатЗапроса.Выгрузить(); + Уровни = СписокУровней.ВыгрузитьКолонку("Уровень"); + Иначе + АдресныеСокращения = РегистрыСведений.АдресныеОбъекты.АдресныеСокращения(); + АдресныеСокращения.Свернуть("Уровень"); + Уровни = АдресныеСокращения.ВыгрузитьКолонку("Уровень"); + КонецЕсли; Возврат Новый ФиксированныйМассив(Уровни); @@ -475,7 +523,7 @@ ТипОбъекта = НаименованиеИТипОбъекта.ТипОбъекта; КонецЕсли; - РезультатЗапроса = АдресныйКлассификаторСлужебный.АктуальныеДанныеОРегионе(Наименование, ТипОбъекта); + РезультатЗапроса = АдресныйКлассификаторСлужебный.АктуальныеДанныеОРегионе(Наименование); Если РезультатЗапроса.Пустой() Тогда @@ -484,7 +532,9 @@ Если РезультатЗапроса.Пустой() Тогда - КодСубъектаРФ = СписокРегионов().Получить(ВРег(Наименование)); + ДанныеОРегионе = ДанныеОРегионе(Наименование); + КодСубъектаРФ = ?(ДанныеОРегионе <> Неопределено, ДанныеОРегионе.КодСубъектаРФ, Неопределено); + Если КодСубъектаРФ <> Неопределено Тогда Результат.КодСубъектаРФ = КодСубъектаРФ; ИначеЕсли СтрСравнить(Наименование, @@ -581,44 +631,28 @@ КонецФункции -Функция СписокРегионов() Экспорт - - Результат = Новый Соответствие; +Функция СписокРегионов() Запрос = Новый Запрос; Запрос.Текст = "ВЫБРАТЬ - | АдресныеОбъекты.КодСубъектаРФ КАК КодСубъектаРФ, | АдресныеОбъекты.Наименование КАК Наименование, - | АдресныеОбъекты.Наименование + "" "" + АдресныеОбъекты.ТипОбъекта КАК ПолноеНаименование + | АдресныеОбъекты.ТипОбъекта КАК ТипОбъекта, + | СлужебныеАдресныеСведения.Значение КАК ОфициальноеНаименование, + | АдресныеОбъекты.КодСубъектаРФ КАК КодСубъектаРФ |ИЗ | РегистрСведений.АдресныеОбъекты КАК АдресныеОбъекты + | ЛЕВОЕ СОЕДИНЕНИЕ РегистрСведений.СлужебныеАдресныеСведения КАК СлужебныеАдресныеСведения + | ПО (АдресныеОбъекты.КодСубъектаРФ = (ВЫРАЗИТЬ(СлужебныеАдресныеСведения.Идентификатор КАК ЧИСЛО(2, 0)))) |ГДЕ - | АдресныеОбъекты.Уровень = 1"; + | АдресныеОбъекты.Уровень = 1 + | И СлужебныеАдресныеСведения.Тип = ""СубъектыРФ"""; - РезультатЗапроса = Запрос.Выполнить(); - - ВыборкаДетальныеЗаписи = РезультатЗапроса.Выбрать(); - - ПолныеНаименованияРегионов = ПолныеНаименованияРегионов(); - - Пока ВыборкаДетальныеЗаписи.Следующий() Цикл - - Результат.Вставить(ВРег(ВыборкаДетальныеЗаписи.Наименование), ВыборкаДетальныеЗаписи.КодСубъектаРФ); - Результат.Вставить(ВРег(ВыборкаДетальныеЗаписи.ПолноеНаименование), ВыборкаДетальныеЗаписи.КодСубъектаРФ); - - ПолныеНаименованияРегиона = ПолныеНаименованияРегионов.Получить(ВыборкаДетальныеЗаписи.КодСубъектаРФ); - - Если ЗначениеЗаполнено(ПолныеНаименованияРегиона) Тогда - Результат.Вставить(ВРег(ПолныеНаименованияРегиона), ВыборкаДетальныеЗаписи.КодСубъектаРФ); - КонецЕсли; - - КонецЦикла; - - Возврат Новый ФиксированноеСоответствие(Результат); + Возврат Запрос.Выполнить().Выгрузить(); КонецФункции + Функция ИдентификаторыГородовФедеральногоЗначения() Экспорт Результат = Новый Соответствие; @@ -651,7 +685,7 @@ КонецФункции -Функция АдресныеСокращенияПриказМинфинаРФ171н() Экспорт +Функция АдресныеСокращенияПоПриказуМинфинаРФ171н() Экспорт АдресныеСокращения = РегистрыСведений.АдресныеОбъекты.АдресныеСокращения(); diff --git a/SSL/src/CommonModules/АдресныйКлассификаторСлужебный/Module.bsl b/SSL/src/CommonModules/АдресныйКлассификаторСлужебный/Module.bsl index 672868a7c..847f52c5a 100644 --- a/SSL/src/CommonModules/АдресныйКлассификаторСлужебный/Module.bsl +++ b/SSL/src/CommonModules/АдресныйКлассификаторСлужебный/Module.bsl @@ -1,5 +1,5 @@ /////////////////////////////////////////////////////////////////////////////////////////////////////// -// Copyright (c) 2024, ООО 1С-Софт +// Copyright (c) 2025, ООО 1С-Софт // Все права защищены. Эта программа и сопроводительные материалы предоставляются // в соответствии с условиями лицензии Attribution 4.0 International (CC BY 4.0) // Текст лицензии доступен по ссылке: @@ -286,8 +286,7 @@ Для Каждого КлючЗначение Из Адреса Цикл Адрес = КлючЗначение.Значение; - КодРегиона = АдресныйКлассификатор.КодРегионаПоНаименованию(СоединитьНаименованиеИТипАдресногоОбъекта( - Адрес.Area, Адрес.AreaType, Истина)); + КодРегиона = АдресныйКлассификатор.КодРегионаПоНаименованию(Адрес.Area); Если ТипЗнч(КодРегиона) = Тип("Число") Тогда Если Источник <> "Сервис1С" И ЗагруженныеАдресныеСведения.Получить(КодРегиона) <> Неопределено @@ -935,6 +934,81 @@ КонецФункции +// Возвращает список помещений по идентификатору адресного объекта, поиск по подобию. +// +// Параметры: +// ИдентификаторАдресногоОбъекта - УникальныйИдентификатор - родительский объект. +// СтрокаПоиска - Строка - текст, отбора в списке домов. +// ПорцияПриПоиске - Число - количество получаемых вариантов за один запрос. +// +// Возвращаемое значение: +// см. КонструкторСпискаПомещений +// +Функция СписокПомещений(ИдентификаторАдресногоОбъекта, Знач СтрокаПоиска, ПорцияПриПоиске = 20) Экспорт + + ВариантыПомещений = Неопределено; + + ТочноеСовпадение = Истина; + Если СтрЗаканчиваетсяНа(СтрокаПоиска, "%") Тогда + ТочноеСовпадение = Ложь; + СтрокаПоиска = Лев(СтрокаПоиска, СтрДлина(СтрокаПоиска) - 1); + КонецЕсли; + + ТекстПоиска = СокрЛП(СтрокаПоиска); + + ЗагруженныеАдресныеСведения = АдресныйКлассификаторПовтИсп.СведенияОЗагрузкеСубъектовРФ(); + Если ЗагруженныеАдресныеСведения["ИспользоватьЗагруженные"] Тогда + ВариантыПомещений = СписокПомещенийИзЗагруженныхСведений(ИдентификаторАдресногоОбъекта, ТекстПоиска, ТочноеСовпадение); + КонецЕсли; + + Если ТипЗнч(ВариантыПомещений) <> Тип("ТаблицаЗначений") Тогда + ВариантыПомещений = КонструкторСпискаПомещений(); + ИначеЕсли ВариантыПомещений.Количество() > 0 Тогда + ВариантыПомещений.Сортировать("ТипПомещения, ПомещениеЧислом"); + Возврат ВариантыПомещений; + КонецЕсли; + + Если ЗагруженныеАдресныеСведения["КлассификаторДоступен"] <> Истина Тогда + Возврат ВариантыПомещений; + КонецЕсли; + + ТекстGETЗапроса = СтроковыеФункцииКлиентСервер.ПодставитьПараметрыВСтроку("selectApartment?parentId=%1&limit=%2", + Строка(ИдентификаторАдресногоОбъекта), Формат(ПорцияПриПоиске, "ЧГ=0")); + Если ЗначениеЗаполнено(ТекстПоиска) Тогда + ТекстGETЗапроса = ТекстGETЗапроса + СтроковыеФункцииКлиентСервер.ПодставитьПараметрыВСтроку("&text=%1", + ТекстПоиска); + КонецЕсли; + + РезультатВебСервис = ВыполнитьЗапросЧерезВебСервис(ТекстGETЗапроса); + + Если РезультатВебСервис.Отказ Тогда + Возврат ВариантыПомещений; + КонецЕсли; + + ТипЧисло = Новый ОписаниеТипов("Число"); + Для Каждого СведенияОПомещении Из РезультатВебСервис.Данные Цикл + + ОписаниеПомещения = ОписаниеПомещения(); + + ОписаниеПомещения.НомерПомещения = СведенияОПомещении.number; + ОписаниеПомещения.ТипПомещения = СведенияОПомещении.type; + ОписаниеПомещения.ПомещениеЧислом = ТипЧисло.ПривестиЗначение(СведенияОПомещении.number); + ОписаниеПомещения.ИдентификаторПомещения = СведенияОПомещении.id; + ОписаниеПомещения.Представление = СведенияОПомещении.value; + + ИнформацияОПомещении = ВариантыПомещений.Добавить(); + ЗаполнитьЗначенияСвойств(ИнформацияОПомещении, ОписаниеПомещения); + ИнформацияОПомещении.Значение = ОписаниеПомещения; + КонецЦикла; + + Если ВариантыПомещений.Количество() > 0 Тогда + ВариантыПомещений.Сортировать("ТипПомещения, ПомещениеЧислом"); + КонецЕсли; + + Возврат ВариантыПомещений; + +КонецФункции + // Возвращает актуальные данные адресного объекта или ориентира с точностью доя подчиненного (без домов). // // Параметры: @@ -1468,6 +1542,27 @@ КонецФункции +Функция ПредставлениеАдресногоЭлемента(Знач Наименование, Знач ТипАдресногоЭлемента, ИмяУровня = "", ВариантНаписанияТипа = "") Экспорт + + Если ПустаяСтрока(ТипАдресногоЭлемента) Тогда + Возврат Наименование; + КонецЕсли; + + Если СтрСравнить(ИмяУровня, "Регион") = 0 Или ПустаяСтрока(ИмяУровня) Тогда + + ДанныеОРегионе = АдресныйКлассификаторПовтИсп.ДанныеОРегионе(Наименование); + Если ДанныеОРегионе <> Неопределено Тогда + Возврат ДанныеОРегионе.ОфициальноеНаименование; + КонецЕсли; + + КонецЕсли; + + Результат = ТипСогласноВариантуНаписания(ТипАдресногоЭлемента, ИмяУровня, ВариантНаписанияТипа); + + Возврат СоединитьНаименованиеИТипАдресногоОбъекта(Наименование, НРег(Результат.НаименованиеТипа), Результат.ТипВКонец); + +КонецФункции + // Возвращает соответствие полных наименований адресных объектов и их сокращения. // // Параметры: @@ -1515,16 +1610,79 @@ КонецФункции -Функция АдресныеСокращения() Экспорт +Функция АдресныеСокращенияПоПриказуМинфинаРФ171н() Экспорт - Возврат РегистрыСведений.АдресныеОбъекты.АдресныеСокращения(); + Возврат АдресныйКлассификаторПовтИсп.АдресныеСокращенияПоПриказуМинфинаРФ171н(); КонецФункции -Функция АдресныеСокращенияПриказМинфинаРФ171н() Экспорт - - Возврат АдресныйКлассификаторПовтИсп.АдресныеСокращенияПриказМинфинаРФ171н(); - +Функция ТипСогласноВариантуНаписания(Знач ТипАдресногоЭлемента, ИмяУровня, Знач ВариантНаписанияТипа) Экспорт + + Результат = Новый Структура(); + Результат.Вставить("ТипВКонец", Ложь); + Результат.Вставить("НаименованиеТипа", ""); + + КодУровня = ?(ЗначениеЗаполнено(ИмяУровня), КодУровняПоИмениУровня()[ВРег(ИмяУровня)], Неопределено); + + НаименованиеТипа = ТипАдресногоЭлемента; + Если ВариантНаписанияТипа = "Сокращенный" Тогда + Вариант = АдресноеСокращение(НаименованиеТипа, "Наименование", КодУровня); + + Если Вариант <> Неопределено Тогда + НаименованиеТипа = Вариант.Сокращение; + Иначе + Вариант = АдресноеСокращениеПоВсемПолям(НаименованиеТипа, КодУровня); + КонецЕсли; + + Если Вариант <> Неопределено И Вариант.ТипВКонце = 1 Тогда + Результат.ТипВКонец = Истина; + КонецЕсли; + ИначеЕсли ВариантНаписанияТипа = "СокращенныйПоПриказуМинфина171н" Тогда + Вариант = АдресноеСокращение(НаименованиеТипа, "Наименование", КодУровня); + + Если Вариант <> Неопределено Тогда + НаименованиеТипа = Вариант.СокращениеПриказаМинфинаРФ171н; + Иначе + + Вариант = АдресноеСокращение(НаименованиеТипа, "Сокращение", КодУровня); + Если Вариант <> Неопределено Тогда + НаименованиеТипа = Вариант.СокращениеПриказаМинфинаРФ171н; + Иначе + Вариант = АдресноеСокращение(НаименованиеТипа, "СокращениеПриказаМинфинаРФ171н", КодУровня); + КонецЕсли; + + КонецЕсли; + + Если Вариант <> Неопределено И Вариант.ТипВКонце = 1 Тогда + Результат.ТипВКонец = Истина; + КонецЕсли; + + ИначеЕсли ВариантНаписанияТипа = "Полный" Тогда + + Вариант = АдресноеСокращение(НаименованиеТипа, "СокращениеПриказаМинфинаРФ171н", КодУровня); + Если Вариант <> Неопределено Тогда + НаименованиеТипа = Вариант.Наименование; + Иначе + + Вариант = АдресноеСокращение(НаименованиеТипа, "Сокращение", КодУровня); + Если Вариант <> Неопределено Тогда + НаименованиеТипа = Вариант.Наименование; + Иначе + Вариант = АдресноеСокращение(НаименованиеТипа, "Наименование", КодУровня); + КонецЕсли; + + КонецЕсли; + + Если Вариант <> Неопределено И Вариант.ТипВКонце = 1 Тогда + Результат.ТипВКонец = Истина; + КонецЕсли; + + КонецЕсли; + + Результат.НаименованиеТипа = НаименованиеТипа; + + Возврат Результат; + КонецФункции // Обратная совместимость @@ -1698,6 +1856,7 @@ КонецЕсли; Результат.КодыАдреса.Идентификатор = ИдентификаторАдресногоОбъекта; + Результат.КодыАдреса.ИдентификаторПомещения = Адрес.ApartmentID; Если ЗагруженныеАдресныеСведения["ИспользоватьЗагруженные"] И Источник <> "Сервис1С" Тогда @@ -1739,6 +1898,19 @@ КонецЕсли; КонецЕсли; + + Если Не ЗначениеЗаполнено(Результат.КодыАдреса.ИдентификаторПомещения) И ЗначениеЗаполнено(Адрес.houseId) И Адрес.Apartments.Количество() = 1 Тогда + + СведенияОПомещении = Адрес.Apartments[0]; + ПредставлениеПомещения = СведенияОПомещении.type + " " + СведенияОПомещении.number; + + ВариантыПомещений = СписокПомещенийИзЗагруженныхСведений(Адрес.houseId, ПредставлениеПомещения, Истина); + Если ВариантыПомещений <> Неопределено И ВариантыПомещений.Количество() = 1 Тогда + ВариантПомещения = ВариантыПомещений[0]; + Результат.КодыАдреса.ИдентификаторПомещения = ?(ЗначениеЗаполнено(ВариантПомещения.ИдентификаторПомещения), + Новый УникальныйИдентификатор(ВариантПомещения.ИдентификаторПомещения), ""); + КонецЕсли; + КонецЕсли; Если КодКЛАДРЗаполнены И ОсновныеКодыЗаполнены Тогда @@ -1759,7 +1931,8 @@ Если Не РезультатВебСервис.Отказ И РезультатВебСервис.Данные.Количество() > 0 Тогда АдресПослеПроверки = РезультатВебСервис.Данные.Получить(1); - Если Не АдресПослеПроверки.АдресКорректный Или АдресПослеПроверки.Варианты.Количество() = 0 Тогда + АдресКорректный = АдресПослеПроверки.АдресКорректный Или АдресПослеПроверки.АдресЧастичноКорректный; + Если Не АдресКорректный Или АдресПослеПроверки.Варианты.Количество() = 0 Тогда Возврат Результат; КонецЕсли; @@ -1768,7 +1941,7 @@ Результат.КодыАдреса.КодКЛАДР = Сведения.codeKLADR; СформироватьКодыКЛАДР(Результат.КодыАдреса.КодКЛАДР, Адрес, Результат.КодыКЛАДР); КонецЕсли; - + Результат.КодыАдреса.КодКЛАДР = Сведения.codeKLADR; Результат.КодыАдреса.Идентификатор = ИдентификаторАдресногоОбъекта(Сведения); Результат.КодыАдреса.ИдентификаторДома = ?(ЗначениеЗаполнено(Сведения.houseId), Сведения.houseId, ""); @@ -1780,6 +1953,11 @@ Результат.КодыАдреса.КодУчасткаИФНСФЛ = Сведения.ifnsFlAreaCode; Результат.КодыАдреса.КодУчасткаИФНСЮЛ = Сведения.ifnsUlAreaCode; + Если Не ЗначениеЗаполнено(Результат.КодыАдреса.ИдентификаторПомещения) И Сведения.Apartments.Количество() = 1 Тогда + СведенияОПомещении = Сведения.Apartments[0]; + Результат.КодыАдреса.ИдентификаторПомещения = СведенияОПомещении.id; + КонецЕсли; + // Свойство присутствует только в новой версии веб-сервиса адресов. Если Сведения.Свойство("oktmoBudget") Тогда Результат.КодыАдреса.ОКТМОБюджетополучателя = Сведения.oktmoBudget; @@ -1822,7 +2000,7 @@ Результат.КодыАдреса.КодКЛАДР = Сведения.codeKLADR; КонецЕсли; КонецЕсли; - + КонецЕсли; КонецЕсли; @@ -1871,7 +2049,7 @@ КонецЕсли; КонецЦикла; - + КонецПроцедуры // Проверяет наличие записей о регионах в регистре сведений АдресныеОбъекты и заполняет их в случае отсутствия. @@ -2020,6 +2198,22 @@ КонецФункции +Функция ЭтоГородФедеральногоЗначения(Город, ОфициальноеНаименование = "") Экспорт + + НазванияГородовФедеральногоЗначения = НазванияГородовФедеральногоЗначения(); + Результат = Неопределено; + Если ЗначениеЗаполнено(ОфициальноеНаименование) Тогда + Результат = НазванияГородовФедеральногоЗначения.Получить(ВРег(ОфициальноеНаименование)); + КонецЕсли; + + Если Результат = Неопределено Тогда + Результат = НазванияГородовФедеральногоЗначения.Получить(ВРег(Город)); + КонецЕсли; + + Возврат Результат = Истина; + +КонецФункции + // Возвращает признак, указывающий на наличие улиц в адресном объекте. // // Параметры: @@ -2347,7 +2541,7 @@ Если ТипЗнч(Значение) = Тип("Структура") И Значение.ИспользоватьЗагруженные Тогда СведенияОРегионах.Добавить( Формат(СведенияОЗагрузкеСубъектаРФ.Ключ,"ЧЦ=2; ЧВН="), - НСтр("ru = 'Загружен'") + " - " + Строка(Значение.ДатаЗагрузки)); + НСтр("ru = 'Загружено'") + " - " + Строка(Значение.ДатаЗагрузки)); КонецЕсли; КонецЦикла; @@ -2782,6 +2976,83 @@ #Область СлужебныеПроцедурыИФункции +Функция АдресныеСокращения() + + Возврат АдресныйКлассификаторПовтИсп.АдресныеСокращения(); + +КонецФункции + +// Возвращает адресное сокращение по заданному критерию. +// +// Параметры: +// ЗначениеПоиска - Строка - искомое значение (например, "обл." или "область"). +// ИмяПоля - Строка - имя поля для сравнения (например, "Сокращение" или "ПолноеНаименование"). +// Уровень - Строка - : уровень адресного элемента для фильтрации (например, "Регион", "Район"). +// +// Возвращаемое значение: +// Структура - найденная строка таблицы сокращений +// Неопределено - если не найдено. +// +Функция АдресноеСокращение(ЗначениеПоиска, ИмяПоля, Уровень = Неопределено) + + ВсеСокращения = АдресныйКлассификаторПовтИсп.АдресныеСокращения(); + + Если ЗначениеЗаполнено(Уровень) Тогда + Отбор = Новый Структура("Уровень", Уровень); + СокращенияДляПоиска = ВсеСокращения.НайтиСтроки(Отбор); + Иначе + СокращенияДляПоиска = ВсеСокращения; + КонецЕсли; + + Для Каждого Строка Из СокращенияДляПоиска Цикл + Если СтрСравнить(Строка[ИмяПоля], ЗначениеПоиска) = 0 Тогда + Возврат Строка; + КонецЕсли; + КонецЦикла; + + Возврат Неопределено; + +КонецФункции + +// Возвращает адресное сокращение по значению во всех поисковых полях таблицы сокращений. +// +// Параметры: +// ЗначениеПоиска - Строка - искомое значение (например, "обл.", "область", "г."). +// Уровень - Строка - : уровень адресного элемента для фильтрации +// (например, "Регион", "Район", "Город"). Если не указан - поиск по всем уровням. +// +// Возвращаемое значение: +// Структура - найденная строка таблицы сокращений +// Неопределено - если не найдено. +// +Функция АдресноеСокращениеПоВсемПолям(ЗначениеПоиска, Уровень = Неопределено) + + ВсеСокращения = АдресныйКлассификаторПовтИсп.АдресныеСокращения(); + + Если ЗначениеЗаполнено(Уровень) Тогда + Отбор = Новый Структура("Уровень", Уровень); + СокращенияДляПоиска = ВсеСокращения.НайтиСтроки(Отбор); + Иначе + СокращенияДляПоиска = ВсеСокращения; + КонецЕсли; + + ПоляДляПоиска = Новый Массив; + ПоляДляПоиска.Добавить("Наименование"); + ПоляДляПоиска.Добавить("Сокращение"); + ПоляДляПоиска.Добавить("СокращениеПриказаМинфинаРФ171н"); + + Для Каждого Строка Из СокращенияДляПоиска Цикл + Для Каждого ИмяПоля Из ПоляДляПоиска Цикл + Если СтрСравнить(Строка[ИмяПоля], ЗначениеПоиска) = 0 Тогда + Возврат Строка; + КонецЕсли; + КонецЦикла; + КонецЦикла; + + Возврат Неопределено; + +КонецФункции + Функция АдаптацияНазванияРегиона(Название) Экспорт // АПК: 1297-выкл Данные адресного классификатора, не локализуются @@ -2991,7 +3262,6 @@ Запрос.Текст = "ВЫБРАТЬ | ДанныеАдреса.Уровень КАК Уровень, - | ДанныеАдреса.Позиция КАК Позиция, | ДанныеАдреса.Значение КАК Значение, | ДанныеАдреса.Наименование КАК Наименование, | ДанныеАдреса.ТипОбъекта КАК ТипОбъекта @@ -3003,7 +3273,6 @@ | |ИНДЕКСИРОВАТЬ ПО | Уровень, - | Позиция, | Наименование, | ТипОбъекта |; @@ -3065,9 +3334,9 @@ Функция РаспознатьАдресЗагруженныеДанные(ЧастиАдреса, КодРегиона) - ОбработатьОбщепринятыеСокращения(ЧастиАдреса); + ОбработатьОбщепринятыеСокращенияИУдалитьТочкуВКонецТипа(ЧастиАдреса); Адрес = ОписаниеНовойКонтактнойИнформации(); - + Запрос = Новый Запрос; Запрос.Текст = "ВЫБРАТЬ @@ -3098,7 +3367,7 @@ | ДанныеАдреса КАК ДанныеАдреса | ЛЕВОЕ СОЕДИНЕНИЕ РегистрСведений.АдресныеОбъекты КАК АдресныеОбъекты | ПО (ДанныеАдреса.Наименование = АдресныеОбъекты.Наименование) - | И (ДанныеАдреса.ТипОбъекта = АдресныеОбъекты.ТипОбъекта) + | И (ДанныеАдреса.ТипОбъекта = АдресныеОбъекты.ТипОбъекта ИЛИ ДанныеАдреса.ТипОбъекта + ""."" = АдресныеОбъекты.ТипОбъекта ) |ГДЕ | НЕ АдресныеОбъекты.Идентификатор ЕСТЬ NULL | @@ -3121,7 +3390,7 @@ | ДанныеАдреса КАК ДанныеАдреса | ЛЕВОЕ СОЕДИНЕНИЕ РегистрСведений.АдресныеОбъекты КАК АдресныеОбъекты | ПО ДанныеАдреса.Наименование = АдресныеОбъекты.Наименование - | И ДанныеАдреса.ТипОбъекта = АдресныеОбъекты.ТипОбъекта + | И (ДанныеАдреса.ТипОбъекта = АдресныеОбъекты.ТипОбъекта ИЛИ ДанныеАдреса.ТипОбъекта + ""."" = АдресныеОбъекты.ТипОбъекта ) |ГДЕ | АдресныеОбъекты.Идентификатор ЕСТЬ NULL | @@ -3333,23 +3602,29 @@ Возврат "Муниципальный"; КонецФункции -Функция СоединитьНаименованиеИТипАдресногоОбъекта(Знач Наименование, Знач ТипАдресногоОбъекта, ЭтоРегион = Ложь) Экспорт - +Функция СоединитьНаименованиеИТипАдресногоОбъекта(Знач Наименование, Знач ТипАдресногоОбъекта, ТипВКонце = Ложь) Экспорт + + Наименование = СокрЛП(Наименование); + ТипАдресногоОбъекта = СокрЛП(ТипАдресногоОбъекта); + Если ПустаяСтрока(ТипАдресногоОбъекта) Тогда Возврат Наименование; КонецЕсли; - - Если ЭтоРегион Тогда - + + Если ПустаяСтрока(Наименование) Тогда + Возврат ТипАдресногоОбъекта; + КонецЕсли; + + Если ТипВКонце Тогда Если НаименованиеРегионаБезТипа(Наименование) Тогда Возврат Наименование; КонецЕсли; Возврат Наименование + " " + ТипАдресногоОбъекта; КонецЕсли; - + Возврат ТипАдресногоОбъекта + " " + Наименование; - + КонецФункции Процедура УстановитьИдентификаторыАдресаЧерезВебСервис(АдресаДляПроверки) @@ -3358,7 +3633,7 @@ Если Результат.Отказ = Ложь Тогда - Если Результат.Данные.Количество() > 0 Тогда + Если Результат.Данные.Количество() > 0 Тогда Для Каждого АдресДляПроверки Из АдресаДляПроверки Цикл @@ -3375,6 +3650,12 @@ КонецЕсли; КонецЦикла; + + Если Адрес.Свойство("apartmentId") И ВариантИзСервиса.Свойство("Apartments") + И ВариантИзСервиса.Apartments.Количество() = 1 Тогда + СведенияОПомещении = ВариантИзСервиса.Apartments[0]; + Адрес.apartmentId = СведенияОПомещении.id; + КонецЕсли; КонецЕсли; КонецЦикла; @@ -3406,6 +3687,8 @@ Возврат; КонецЕсли; + ВариантыПомещений = Новый СписокЗначений(); + Дома = РезультатЗапросаДома.Выгрузить(); ПолученныйАдрес = РезультатЗапросаАдреса.Выбрать(); @@ -3446,8 +3729,34 @@ Если Результат <> Неопределено Тогда Адрес.HouseID = Результат.ИдентификаторДома; КонецЕсли; - + + Если ЗначениеЗаполнено(Адрес.HouseID) И Адрес.apartments.Количество() = 1 Тогда + ПредставлениеПомещения = Адрес.apartments[0].type + " " +Адрес.apartments[0].number; + ВариантыПомещений.Добавить(Адрес.HouseID, ПредставлениеПомещения, Истина); + КонецЕсли; + КонецЦикла; + + Если ВариантыПомещений.Количество() > 0 Тогда + ИдентификаторыПомещений = ПомещенияАдресныхОбъектовИзЗагруженныхСведений(ВариантыПомещений); + + Для Каждого КлючИЗначение Из Адреса Цикл + Адрес = КлючИЗначение.Значение; + СопоставленныеПомещения = ИдентификаторыПомещений.Получить(Адрес.HouseID); + Если СопоставленныеПомещения <> Неопределено Тогда + Для Каждого ВариантПомещения Из СопоставленныеПомещения Цикл + Если СтрСравнить(ВариантПомещения.ТипПомещения, Адрес.apartments[0].type) = 0 Тогда + Адрес.apartmentId = ?(ЗначениеЗаполнено(ВариантПомещения.ИдентификаторПомещения), + Новый УникальныйИдентификатор(ВариантПомещения.ИдентификаторПомещения), ""); + Продолжить; + КонецЕсли; + КонецЦикла; + Иначе + Адрес.apartmentId = ""; + КонецЕсли; + КонецЦикла; + + КонецЕсли; КонецПроцедуры @@ -3702,8 +4011,8 @@ МуниципальныйАдрес = АдресИзВыборки; МуниципальныйАдресНайден = Истина; Прервать; - ИначеЕсли СтрНайти(ВРег(СведенияОбАдресномОбъекте.Представление), ВРег(АдресИзВыборки["Наименование" - + Строка(Позиция)])) = 0 Тогда + ИначеЕсли СтрНайти(ВРег(СведенияОбАдресномОбъекте.Представление), + ВРег(АдресИзВыборки["Наименование" + Строка(Позиция)])) = 0 Тогда МуниципальныйАдресНайден = Ложь; Прервать; Иначе @@ -5663,7 +5972,12 @@ КонецПроцедуры -Функция ИзвлечьФайлыВКаталог(ОписаниеФайлов, Знач КаталогФайлов = Неопределено) Экспорт +Функция ИзвлечьФайлыВКаталог(ОписаниеФайлов, Знач КаталогФайлов = Неопределено, ПроверятьНаличиеФайлаСПомещениями = Истина) Экспорт + + Результат = Новый Структура(); + Результат.Вставить("КаталогФайлов", ""); + Результат.Вставить("ПроизошлаОшибка", Ложь); + Результат.Вставить("ТекстОшибки", ""); // Извлекаем файлы Если КаталогФайлов = Неопределено Тогда @@ -5704,34 +6018,61 @@ Архив = Новый ЧтениеZipФайла(ПолноеИмяФайла); ЕстьФайлВерсииСМуниципальнымиДанными = Ложь; + ЕстьФайлСПомещениями = Ложь; Для Каждого ЭлементАрхива Из Архив.Элементы Цикл - + Если СтрНайти(ЭлементАрхива.Имя, "ADDRMUN.FI") > 0 Тогда ЕстьФайлВерсииСМуниципальнымиДанными = Истина; - Прервать; КонецЕсли; - + + Если ПроверятьНаличиеФайлаСПомещениями И СтрНайти(ЭлементАрхива.Имя, "APARTMENT.FI") > 0 Тогда + ЕстьФайлСПомещениями = Истина; + КонецЕсли; + КонецЦикла; - - Если Не ЕстьФайлВерсииСМуниципальнымиДанными Тогда - + + Если ПроверятьНаличиеФайлаСПомещениями И Не ЕстьФайлСПомещениями Тогда Архив.Закрыть(); - - ТекстПричины = СтроковыеФункцииКлиентСервер.ПодставитьПараметрыВСтроку( - НСтр("ru = 'Допускается загрузка адресных сведений только в формате Государственного адресного реестра (ГАР). - |см. %1'"), "https://its.1c.ru/download/gar"); + + Результат.ПроизошлаОшибка = Истина; + Результат.ТекстОшибки = СтроковыеФункции.ФорматированнаяСтрока( + НСтр("ru = 'Не удалось выполнить загрузку адресных сведений - отсутствует обязательный файл с помещениями. + |Скачайте актуальную версию файла адресного классификатора с сайта + | %1'"), "https://its.1c.ru/download/gar"); ЗаписьЖурналаРегистрации(СобытиеЖурналаРегистрации(), УровеньЖурналаРегистрации.Ошибка, , , СтроковыеФункцииКлиентСервер.ПодставитьПараметрыВСтроку(НСтр("ru = 'Не удалось загрузить адресные сведения из файла: %1 - |по причине: %2 - |См. https://its.1c.ru/download/gar'"), - ПолноеИмяФайла, ТекстПричины)); - ВызватьИсключение ТекстПричины; - + |по причине: %2'"), + ПолноеИмяФайла, Результат.ТекстОшибки)); + + Возврат Результат; + КонецЕсли; - Архив.ИзвлечьВсе(КаталогФайлов + ФайлАрхива.ИмяБезРасширения, + Если Не ЕстьФайлВерсииСМуниципальнымиДанными Тогда + + Архив.Закрыть(); + + Результат.ПроизошлаОшибка = Истина; + Результат.ТекстОшибки = СтроковыеФункции.ФорматированнаяСтрока( + НСтр("ru = 'Допускается загрузка адресных сведений только в формате Государственного адресного реестра (ГАР). + |Скачайте актуальную версию файла адресного классификатора с сайта + |%1'"), "https://its.1c.ru/download/gar"); + + ЗаписьЖурналаРегистрации(СобытиеЖурналаРегистрации(), УровеньЖурналаРегистрации.Ошибка, , , + СтроковыеФункцииКлиентСервер.ПодставитьПараметрыВСтроку(НСтр("ru = 'Не удалось загрузить адресные сведения из файла: %1 + |по причине: %2'"), + ПолноеИмяФайла, Результат.ТекстОшибки)); + Возврат Результат; + + КонецЕсли; + + ИмяКаталога = ФайлАрхива.ИмяБезРасширения; + Если Не СтроковыеФункцииКлиентСервер.ТолькоЦифрыВСтроке(ФайлАрхива.ИмяБезРасширения) Тогда + ИмяКаталога = Лев(ИмяКаталога, 2); + КонецЕсли; + Архив.ИзвлечьВсе(КаталогФайлов + ИмяКаталога, РежимВосстановленияПутейФайловZIP.НеВосстанавливать); Архив.Закрыть(); @@ -5743,7 +6084,8 @@ СписокИзвлеченныхФайлов(КаталогФайлов); - Возврат КаталогФайлов; + Результат.КаталогФайлов = КаталогФайлов; + Возврат Результат; КонецФункции @@ -5868,17 +6210,20 @@ // * АдресКорректный - Булево // * АдресУстарел - Булево // * АдресПроверен - Булево +// * АдресЧастичноКорректный - Булево // * Варианты - Массив // * Ошибки - Массив // Функция РезультатПроверкиАдреса() Экспорт Результат = Новый Структура; - Результат.Вставить("Ошибки", Новый Массив); - Результат.Вставить("Варианты", Новый Массив); - Результат.Вставить("АдресПроверен", Ложь); - Результат.Вставить("АдресУстарел", Ложь); - Результат.Вставить("АдресКорректный", Ложь); + Результат.Вставить("Ошибки", Новый Массив); + Результат.Вставить("Варианты", Новый Массив); + Результат.Вставить("АдресПроверен", Ложь); + Результат.Вставить("АдресУстарел", Ложь); + Результат.Вставить("АдресКорректный", Ложь); + Результат.Вставить("АдресЧастичноКорректный", Ложь); + Возврат Результат; КонецФункции @@ -6002,24 +6347,28 @@ Для Каждого УровеньАдреса Из ИменаУровнейАдреса Цикл Если Адрес.Свойство(УровеньАдреса) И ЗначениеЗаполнено(Адрес[УровеньАдреса]) И НомерПозиции < 6 Тогда - - Наименование = Адрес[УровеньАдреса]; - ТипОбъекта = Адрес[УровеньАдреса + "Type"]; + + Наименование = Строка(Адрес[УровеньАдреса]); + ТипОбъекта = Строка(Адрес[УровеньАдреса + "Type"]); // Обратная совместимость Если СтрСравнить(УровеньАдреса, "MunDistrict") = 0 Тогда Наименование = КраткоеНаписаниеМуниципальныхРайонов(Наименование, ТипОбъекта); КонецЕсли; - + Если СтрСравнить(УровеньАдреса, "Settlement") = 0 Тогда Наименование = КраткоеНаписаниеПоселений(Наименование, ТипОбъекта); КонецЕсли; - + + Если ЗначениеЗаполнено(ТипОбъекта) Тогда + ТипОбъекта = СтрЗаменитьПоРегулярномуВыражению(ТипОбъекта, "\.$", ""); + КонецЕсли; + АдресПоПолям["Наименование" + XMLСтрока(НомерПозиции)] = Наименование; - АдресПоПолям["ТипОбъекта" + XMLСтрока(НомерПозиции)] = ТипОбъекта; + АдресПоПолям["ТипОбъекта" + XMLСтрока(НомерПозиции)] = ТипОбъекта; ПроверяемыеУровниАдреса.Вставить(УровеньАдреса, НомерПозиции); НомерПозиции = НомерПозиции + 1; - + КонецЕсли; КонецЦикла; ПроверяемыеУровни.Вставить(КлючЗначение.Ключ, ПроверяемыеУровниАдреса); @@ -6086,7 +6435,7 @@ | АдресаПоПолям КАК АдресаПоПолям | ВНУТРЕННЕЕ СОЕДИНЕНИЕ РегистрСведений.АдресныеОбъекты КАК АдресныеОбъекты | ПО (АдресныеОбъекты.Наименование = АдресаПоПолям.Наименование0) - | И (АдресныеОбъекты.ТипОбъекта = АдресаПоПолям.ТипОбъекта0) + | И (АдресныеОбъекты.ТипОбъекта = АдресаПоПолям.ТипОбъекта0 ИЛИ АдресныеОбъекты.ТипОбъекта = АдресаПоПолям.ТипОбъекта0 + ""."") | И (АдресныеОбъекты.Уровень = 1) | И (АдресныеОбъекты.КодСубъектаРФ В (&КодыРегионов)) | @@ -6108,7 +6457,7 @@ | АдресаПоПолям КАК АдресаПоПолям | ВНУТРЕННЕЕ СОЕДИНЕНИЕ РегистрСведений.АдресныеОбъекты КАК АдресныеОбъекты | ПО (АдресныеОбъекты.Наименование = АдресаПоПолям.Наименование1) - | И (АдресныеОбъекты.ТипОбъекта = АдресаПоПолям.ТипОбъекта1) + | И (АдресныеОбъекты.ТипОбъекта = АдресаПоПолям.ТипОбъекта1 ИЛИ АдресныеОбъекты.ТипОбъекта = АдресаПоПолям.ТипОбъекта1 + ""."") | И (АдресныеОбъекты.КодСубъектаРФ В (&КодыРегионов)) | ВНУТРЕННЕЕ СОЕДИНЕНИЕ Регионы КАК АдресныеОбъектыИдентификаторы | ПО (АдресныеОбъектыИдентификаторы.Ключ = АдресаПоПолям.Ключ) @@ -6133,7 +6482,7 @@ | АдресаПоПолям КАК АдресаПоПолям | ВНУТРЕННЕЕ СОЕДИНЕНИЕ РегистрСведений.АдресныеОбъекты КАК АдресныеОбъекты | ПО (АдресныеОбъекты.Наименование = АдресаПоПолям.Наименование2) - | И (АдресныеОбъекты.ТипОбъекта = АдресаПоПолям.ТипОбъекта2) + | И (АдресныеОбъекты.ТипОбъекта = АдресаПоПолям.ТипОбъекта2 ИЛИ АдресныеОбъекты.ТипОбъекта = АдресаПоПолям.ТипОбъекта2 + ""."") | И (АдресныеОбъекты.КодСубъектаРФ В (&КодыРегионов)) | ВНУТРЕННЕЕ СОЕДИНЕНИЕ МуниципальныеАдресныеОбъекты1 КАК АдресныеОбъектыИдентификаторы | ПО (АдресныеОбъектыИдентификаторы.Ключ = АдресаПоПолям.Ключ) @@ -6157,7 +6506,7 @@ | АдресаПоПолям КАК АдресаПоПолям | ВНУТРЕННЕЕ СОЕДИНЕНИЕ РегистрСведений.АдресныеОбъекты КАК АдресныеОбъекты | ПО (АдресныеОбъекты.Наименование = АдресаПоПолям.Наименование3) - | И (АдресныеОбъекты.ТипОбъекта = АдресаПоПолям.ТипОбъекта3) + | И (АдресныеОбъекты.ТипОбъекта = АдресаПоПолям.ТипОбъекта3 ИЛИ АдресныеОбъекты.ТипОбъекта = АдресаПоПолям.ТипОбъекта3 + ""."") | И (АдресныеОбъекты.КодСубъектаРФ В (&КодыРегионов)) | ВНУТРЕННЕЕ СОЕДИНЕНИЕ МуниципальныеАдресныеОбъекты2 КАК АдресныеОбъектыИдентификаторы | ПО (АдресныеОбъектыИдентификаторы.Ключ = АдресаПоПолям.Ключ) @@ -6181,7 +6530,7 @@ | АдресаПоПолям КАК АдресаПоПолям | ВНУТРЕННЕЕ СОЕДИНЕНИЕ РегистрСведений.АдресныеОбъекты КАК АдресныеОбъекты | ПО (АдресныеОбъекты.Наименование = АдресаПоПолям.Наименование4) - | И (АдресныеОбъекты.ТипОбъекта = АдресаПоПолям.ТипОбъекта4) + | И (АдресныеОбъекты.ТипОбъекта = АдресаПоПолям.ТипОбъекта4 ИЛИ АдресныеОбъекты.ТипОбъекта = АдресаПоПолям.ТипОбъекта4 + ""."") | И (АдресныеОбъекты.КодСубъектаРФ В (&КодыРегионов)) | ВНУТРЕННЕЕ СОЕДИНЕНИЕ МуниципальныеАдресныеОбъекты3 КАК АдресныеОбъектыИдентификаторы | ПО (АдресныеОбъектыИдентификаторы.Ключ = АдресаПоПолям.Ключ) @@ -6205,7 +6554,7 @@ | АдресаПоПолям КАК АдресаПоПолям | ВНУТРЕННЕЕ СОЕДИНЕНИЕ РегистрСведений.АдресныеОбъекты КАК АдресныеОбъекты | ПО (АдресныеОбъекты.Наименование = АдресаПоПолям.Наименование5) - | И (АдресныеОбъекты.ТипОбъекта = АдресаПоПолям.ТипОбъекта5) + | И (АдресныеОбъекты.ТипОбъекта = АдресаПоПолям.ТипОбъекта5 ИЛИ АдресныеОбъекты.ТипОбъекта = АдресаПоПолям.ТипОбъекта5 + ""."") | И (АдресныеОбъекты.КодСубъектаРФ В (&КодыРегионов)) | ВНУТРЕННЕЕ СОЕДИНЕНИЕ МуниципальныеАдресныеОбъекты4 КАК АдресныеОбъектыИдентификаторы | ПО (АдресныеОбъектыИдентификаторы.Ключ = АдресаПоПолям.Ключ) @@ -6229,7 +6578,7 @@ | АдресаПоПолям КАК АдресаПоПолям | ВНУТРЕННЕЕ СОЕДИНЕНИЕ РегистрСведений.АдресныеОбъекты КАК АдресныеОбъекты | ПО (АдресныеОбъекты.Наименование = АдресаПоПолям.Наименование1) - | И (АдресныеОбъекты.ТипОбъекта = АдресаПоПолям.ТипОбъекта1) + | И (АдресныеОбъекты.ТипОбъекта = АдресаПоПолям.ТипОбъекта1 ИЛИ АдресныеОбъекты.ТипОбъекта = АдресаПоПолям.ТипОбъекта1 + ""."") | И (АдресныеОбъекты.КодСубъектаРФ В (&КодыРегионов)) | ВНУТРЕННЕЕ СОЕДИНЕНИЕ Регионы КАК АдресныеОбъектыИдентификаторы | ПО (АдресныеОбъектыИдентификаторы.Ключ = АдресаПоПолям.Ключ) @@ -6254,7 +6603,7 @@ | АдресаПоПолям КАК АдресаПоПолям | ВНУТРЕННЕЕ СОЕДИНЕНИЕ РегистрСведений.АдресныеОбъекты КАК АдресныеОбъекты | ПО (АдресныеОбъекты.Наименование = АдресаПоПолям.Наименование2) - | И (АдресныеОбъекты.ТипОбъекта = АдресаПоПолям.ТипОбъекта2) + | И (АдресныеОбъекты.ТипОбъекта = АдресаПоПолям.ТипОбъекта2 ИЛИ АдресныеОбъекты.ТипОбъекта = АдресаПоПолям.ТипОбъекта2 + ""."") | И (АдресныеОбъекты.КодСубъектаРФ В (&КодыРегионов)) | ВНУТРЕННЕЕ СОЕДИНЕНИЕ АдминистративныеАдресныеОбъекты1 КАК АдресныеОбъектыИдентификаторы | ПО (АдресныеОбъектыИдентификаторы.Ключ = АдресаПоПолям.Ключ) @@ -6278,7 +6627,7 @@ | АдресаПоПолям КАК АдресаПоПолям | ВНУТРЕННЕЕ СОЕДИНЕНИЕ РегистрСведений.АдресныеОбъекты КАК АдресныеОбъекты | ПО (АдресныеОбъекты.Наименование = АдресаПоПолям.Наименование3) - | И (АдресныеОбъекты.ТипОбъекта = АдресаПоПолям.ТипОбъекта3) + | И (АдресныеОбъекты.ТипОбъекта = АдресаПоПолям.ТипОбъекта3 ИЛИ АдресныеОбъекты.ТипОбъекта = АдресаПоПолям.ТипОбъекта3 + ""."") | И (АдресныеОбъекты.КодСубъектаРФ В (&КодыРегионов)) | ВНУТРЕННЕЕ СОЕДИНЕНИЕ АдминистративныеАдресныеОбъекты2 КАК АдресныеОбъектыИдентификаторы | ПО (АдресныеОбъектыИдентификаторы.Ключ = АдресаПоПолям.Ключ) @@ -6302,7 +6651,7 @@ | АдресаПоПолям КАК АдресаПоПолям | ВНУТРЕННЕЕ СОЕДИНЕНИЕ РегистрСведений.АдресныеОбъекты КАК АдресныеОбъекты | ПО (АдресныеОбъекты.Наименование = АдресаПоПолям.Наименование4) - | И (АдресныеОбъекты.ТипОбъекта = АдресаПоПолям.ТипОбъекта4) + | И (АдресныеОбъекты.ТипОбъекта = АдресаПоПолям.ТипОбъекта4 ИЛИ АдресныеОбъекты.ТипОбъекта = АдресаПоПолям.ТипОбъекта4 + ""."") | И (АдресныеОбъекты.КодСубъектаРФ В (&КодыРегионов)) | ВНУТРЕННЕЕ СОЕДИНЕНИЕ АдминистративныеАдресныеОбъекты3 КАК АдресныеОбъектыИдентификаторы | ПО (АдресныеОбъектыИдентификаторы.Ключ = АдресаПоПолям.Ключ) @@ -6326,7 +6675,7 @@ | АдресаПоПолям КАК АдресаПоПолям | ВНУТРЕННЕЕ СОЕДИНЕНИЕ РегистрСведений.АдресныеОбъекты КАК АдресныеОбъекты | ПО (АдресныеОбъекты.Наименование = АдресаПоПолям.Наименование5) - | И (АдресныеОбъекты.ТипОбъекта = АдресаПоПолям.ТипОбъекта5) + | И (АдресныеОбъекты.ТипОбъекта = АдресаПоПолям.ТипОбъекта5 ИЛИ АдресныеОбъекты.ТипОбъекта = АдресаПоПолям.ТипОбъекта5 + ""."") | И (АдресныеОбъекты.КодСубъектаРФ В (&КодыРегионов)) | ВНУТРЕННЕЕ СОЕДИНЕНИЕ АдминистративныеАдресныеОбъекты4 КАК АдресныеОбъектыИдентификаторы | ПО (АдресныеОбъектыИдентификаторы.Ключ = АдресаПоПолям.Ключ) @@ -6526,6 +6875,7 @@ КонецФункции + Процедура АктуализироватьДанныеОРегионе(Знач Адрес, Знач КодСубъектаРФ, Знач Результат) Результат.АдресПроверен = Истина; @@ -7215,28 +7565,42 @@ // ОКТМО -Функция СведенияПоСпискуОКМТО(СписокОКТМО) Экспорт - +Функция СведенияПоСпискуОКТМО(СписокОКТМО) Экспорт + Результат = Новый Соответствие; - + СведенияОЗагрузкеСубъектовРФ = СведенияОЗагрузкеСубъектовРФ(); - + ТипЧисло = ОбщегоНазначения.ОписаниеТипаЧисло(11); + ДопустимыеТипы = Новый Массив; + ДопустимыеТипы.Добавить(Тип("Строка")); + ДопустимыеТипы.Добавить(Тип("Число")); + ТипыКлючаЗаписиОКТМО = Новый ОписаниеТипов(ДопустимыеТипы); + ТаблицаОКТМО = Новый ТаблицаЗначений; ТаблицаОКТМО.Колонки.Добавить("ОКТМО", ТипЧисло); - ТаблицаОКТМО.Колонки.Добавить("КлючЗаписиОКТМО", ОбщегоНазначения.ОписаниеТипаЧисло(3)); - + ТаблицаОКТМО.Колонки.Добавить("КлючЗаписиОКТМО", ТипыКлючаЗаписиОКТМО); + ТаблицаОКТМОВебСервис = ТаблицаОКТМО.Скопировать(); - + Для Каждого ЗаписьОКТМО Из СписокОКТМО Цикл ОКТМОЧислом = ТипЧисло.ПривестиЗначение(ЗаписьОКТМО.Значение); - - Если СтрНачинаетсяС(ЗаписьОКТМО.Значение, "118") Или СтрНачинаетсяС(ЗаписьОКТМО.Значение, "718") - Или СтрНачинаетсяС(ЗаписьОКТМО.Значение, "719") Тогда - КодОКТМОРегиона = Лев(ЗаписьОКТМО.Значение, 3); + + Если ТипЗнч(ЗаписьОКТМО.Значение) = Тип("Число") Тогда + ОКТМОСтрокой = Формат(ЗаписьОКТМО.Значение, "ЧГ=0;"); + Если СтрДлина(ОКТМОСтрокой) = 7 Или СтрДлина(ОКТМОСтрокой) = 10 Тогда + ОКТМОСтрокой = "0" + ОКТМОСтрокой; + КонецЕсли; Иначе - КодОКТМОРегиона = Лев(ЗаписьОКТМО.Значение, 2); + ОКТМОСтрокой = Строка(ЗаписьОКТМО.Значение); + КонецЕсли; + + Если СтрНачинаетсяС(ОКТМОСтрокой, "118") Или СтрНачинаетсяС(ОКТМОСтрокой, "718") + Или СтрНачинаетсяС(ОКТМОСтрокой, "719") Тогда + КодОКТМОРегиона = Лев(ОКТМОСтрокой, 3); + Иначе + КодОКТМОРегиона = Лев(ОКТМОСтрокой, 2); КонецЕсли; НайденныеСтроки = СведенияОЗагрузкеСубъектовРФ.НайтиСтроки(Новый Структура("ОКТМО", КодОКТМОРегиона)); Если НайденныеСтроки.Количество() = 0 Тогда @@ -7245,33 +7609,33 @@ КонецЕсли; СведенияОРегионе = НайденныеСтроки[0]; Если ОКТМОЧислом > 0 Тогда - + Если СведенияОРегионе.Загружено И Не СведенияОРегионе.Устарело Тогда НоваяСтрокаОКТМО = ТаблицаОКТМО.Добавить(); Иначе НоваяСтрокаОКТМО = ТаблицаОКТМОВебСервис.Добавить(); КонецЕсли; - + НоваяСтрокаОКТМО.ОКТМО = ОКТМОЧислом; НоваяСтрокаОКТМО.КлючЗаписиОКТМО = ЗаписьОКТМО.Ключ; Иначе Результат.Вставить(ЗаписьОКТМО.Ключ, Неопределено); КонецЕсли; КонецЦикла; - + Если ТаблицаОКТМО.Количество() > 0 Тогда - СведенияПоСпискуОКМТОЗагруженныеДанные(ТаблицаОКТМО, Результат); + СведенияПоСпискуОКТМОЗагруженныеДанные(ТаблицаОКТМО, Результат); КонецЕсли; - + Если ТаблицаОКТМОВебСервис.Количество() > 0 Тогда - СведенияПоСпискуОКМТОВебСервис(ТаблицаОКТМОВебСервис, Результат); + СведенияПоСпискуОКТМОВебСервис(ТаблицаОКТМОВебСервис, Результат); КонецЕсли; - + Возврат Результат; - + КонецФункции -Функция СведенияПоСпискуОКМТОЗагруженныеДанные(ТаблицаОКТМО, Результат) +Функция СведенияПоСпискуОКТМОЗагруженныеДанные(ТаблицаОКТМО, Результат) Запрос = Новый Запрос; @@ -7439,7 +7803,7 @@ КонецФункции -Процедура СведенияПоСпискуОКМТОВебСервис(СписокОКТМО, Результат) +Процедура СведенияПоСпискуОКТМОВебСервис(СписокОКТМО, Результат) СписокСокращений = АдресныйКлассификаторПовтИсп.СписокСокращений(); ТипЧисло = Новый ОписаниеТипов("Число"); @@ -7545,9 +7909,9 @@ КонецПроцедуры -Функция ПроверитьОКМТОБюджетополучателя(ОКТМОБюджетополучателей) Экспорт +Функция ПроверитьОКТМОБюджетополучателя(ОКТМОБюджетополучателей) Экспорт - ОбщегоНазначенияКлиентСервер.ПроверитьПараметр("АдресныйКлассификаторСлужебный.ПроверитьОКМТОБюджетополучателя", + ОбщегоНазначенияКлиентСервер.ПроверитьПараметр("АдресныйКлассификаторСлужебный.ПроверитьОКТМОБюджетополучателя", "ОКТМОБюджетополучателей", ОКТМОБюджетополучателей, Тип("Массив")); РазмерПорции = 100; @@ -7646,17 +8010,17 @@ НаборОКТМО = ДанныеПроверки["validateOktmoData"]; Для каждого ДанныеОКТМО Из НаборОКТМО Цикл - ЗначениеОКМТО = ДанныеОКТМО.Значение; + ЗначениеОКТМО = ДанныеОКТМО.Значение; ДанныеПоОКТМО = ДанныеПоОКТМО(); - Если ЗначениеОКМТО["validateOktmoStatus"] = "VERIFIED_OKTMO" Тогда + Если ЗначениеОКТМО["validateOktmoStatus"] = "VERIFIED_OKTMO" Тогда ДанныеПоОКТМО.Успешно = Истина; КонецЕсли; - Если ЗначениеЗаполнено(ЗначениеОКМТО["validateMessage"]) Тогда - ДанныеПоОКТМО.ТекстОшибки = ЗначениеОКМТО["validateMessage"]; + Если ЗначениеЗаполнено(ЗначениеОКТМО["validateMessage"]) Тогда + ДанныеПоОКТМО.ТекстОшибки = ЗначениеОКТМО["validateMessage"]; КонецЕсли; - Если ЗначениеЗаполнено(ЗначениеОКМТО["oktmoMunValue"]) Тогда - ДанныеПоОКТМО.МуниципальныеОбразования = ЗначениеОКМТО["oktmoMunValue"]; + Если ЗначениеЗаполнено(ЗначениеОКТМО["oktmoMunValue"]) Тогда + ДанныеПоОКТМО.МуниципальныеОбразования = ЗначениеОКТМО["oktmoMunValue"]; КонецЕсли; Результат.Данные.Вставить(ДанныеОКТМО.Ключ, ДанныеПоОКТМО) @@ -7674,7 +8038,7 @@ |- веб-сервис отключен или на техническом обслуживании.'"); Результат.Отказ = Истина; - ТекстОшибки = НСтр("ru = 'При проверке ОКМТО бюджетополучателя через веб-сервис возникли проблемы.'"); + ТекстОшибки = НСтр("ru = 'При проверке ОКТМО бюджетополучателя через веб-сервис возникли проблемы.'"); ЗаписатьОшибкуЗапросаКВебСервисуВЖурналРегистрации(ПолученныеДанные, ТекстОшибки, HTTPЗапрос.АдресРесурса + " X-1C-Request-UID:" + ИдентификаторЗапроса, РезультатПроверки.КодСостояния); @@ -7689,7 +8053,7 @@ Результат.Отказ = Истина; Результат.ИнформацияОбОшибке = ИнформацияОбОшибке(); - Результат.ПредставлениеОшибкиДляПользователя = НСтр("ru = 'При проверке ОКМТО бюджетополучателя через веб-сервис возникли проблемы.'"); + Результат.ПредставлениеОшибкиДляПользователя = НСтр("ru = 'При проверке ОКТМО бюджетополучателя через веб-сервис возникли проблемы.'"); ЗаписьЖурналаРегистрации(СобытиеЖурналаРегистрации(), УровеньЖурналаРегистрации.Ошибка,,, ОбработкаОшибок.ПодробноеПредставлениеОшибки(Результат.ИнформацияОбОшибке)); @@ -7746,20 +8110,47 @@ Функция ИменаУровнейАдресаПоКодуУровня() Уровни = Новый Соответствие; - - Уровни.Вставить(1, "Регион"); - Уровни.Вставить(2, "Район"); - Уровни.Вставить(3, "МуниципальныйРайон"); - Уровни.Вставить(4, "Поселение"); - Уровни.Вставить(5, "Город"); - Уровни.Вставить(6, "НаселенныйПункт"); - Уровни.Вставить(7, "Территория"); - + + Уровни.Вставить(1, "Регион"); + Уровни.Вставить(2, "Район"); + Уровни.Вставить(3, "МуниципальныйРайон"); + Уровни.Вставить(4, "Поселение"); + Уровни.Вставить(5, "Город"); + Уровни.Вставить(6, "НаселенныйПункт"); + Уровни.Вставить(7, "Территория"); + Уровни.Вставить(8, "Улица"); + Уровни.Вставить(9, "ЗемельныйУчасток"); + Уровни.Вставить(10, "Здание"); + Уровни.Вставить(11, "Помещение"); + Уровни.Вставить(12, "МашиноМесто"); + Возврат Уровни; + +КонецФункции + +Функция КодУровняПоИмениУровня() + + Уровни = Новый Соответствие; + + Уровни.Вставить(ВРег("Регион"), 1); + Уровни.Вставить(ВРег("Район"), 2); + Уровни.Вставить(ВРег("МуниципальныйРайон"), 3); + Уровни.Вставить(ВРег("Поселение"), 4); + Уровни.Вставить(ВРег("Город"), 5); + Уровни.Вставить(ВРег("НаселенныйПункт"), 6); + Уровни.Вставить(ВРег("Территория"), 7); + Уровни.Вставить(ВРег("Улица"), 8); + Уровни.Вставить(ВРег("ЗемельныйУчасток"), 9); + Уровни.Вставить(ВРег("Здание"), 10); + Уровни.Вставить(ВРег("Помещение"), 11); + Уровни.Вставить(ВРег("МашиноМесто"), 17); + + Возврат Уровни; + КонецФункции Функция НовыйСведенияПоОКТМО() - + Результат = Новый Структура; Результат.Вставить("КодРегиона", ""); Результат.Вставить("Регион", ""); @@ -8222,6 +8613,7 @@ РезультатПроверки.АдресПроверен = Истина; РезультатПроверки.АдресКорректный = (СтрСравнить(ЭлементПроверки.status, "COMPLETELY_VERIFIED") = 0); + РезультатПроверки.АдресЧастичноКорректный = (СтрСравнить(ЭлементПроверки.status, "PARTIALLY_VERIFIED") = 0); Если СтрСравнить(ЭлементПроверки.status, "HISTORIC") = 0 Тогда РезультатПроверки.АдресУстарел = Истина; @@ -8268,7 +8660,7 @@ ИмяСвойства = ?(ЭтоМуниципальныйАдрес(Адрес.AddressType), "munLevels", "admLevels"); Если Адрес.Свойство(ИмяСвойства) И Адрес[ИмяСвойства].Количество() > 0 Тогда - Возврат 4; + Возврат 5; КонецЕсли; Возврат 3; @@ -8386,6 +8778,7 @@ Коды.Вставить("КодКЛАДР", ""); Коды.Вставить("Идентификатор", ""); Коды.Вставить("ИдентификаторДома", ""); + Коды.Вставить("ИдентификаторПомещения", ""); Коды.Вставить("ОКАТО", ""); Коды.Вставить("ОКТМО", ""); Коды.Вставить("ОКТМОБюджетополучателя", ""); @@ -8395,7 +8788,7 @@ Коды.Вставить("КодУчасткаИФНСЮЛ", ""); Результат.Вставить("КодыАдреса", Коды); - + Возврат Результат; КонецФункции @@ -8534,19 +8927,24 @@ КонецФункции Процедура ЗаполнитьПоляВСоответствииСУровнемАдреса(Адрес, Выборка, Суффикс, - СловарьИменПолей, Муниципальный,ПорядокПолей) + СловарьИменПолей, Муниципальный, ПорядокПолей) Если ЗначениеЗаполнено(Выборка["Наименование" + Суффикс]) Тогда - Идентификатор = Выборка["Идентификатор" + Суффикс]; ИмяУровня = СловарьИменПолей[Выборка["Уровень" + Суффикс]]; Если ИмяУровня = Неопределено Тогда Возврат; КонецЕсли; + Если Муниципальный Тогда + ПереопределитьМуниципальныйУровеньГородаКакНаселенныйПунктПоГАР(ИмяУровня, Выборка, Суффикс); + КонецЕсли; + ПорядокПолей.Добавить(ИмяУровня); + Идентификатор = Выборка["Идентификатор" + Суффикс]; + Адрес[ИмяУровня] = Выборка["Наименование" + Суффикс]; Адрес[ИмяУровня + "Type"] = Выборка["ТипОбъекта" + Суффикс]; Адрес[ИмяУровня + "Id"] = ?(ЗначениеЗаполнено(Идентификатор), @@ -8557,6 +8955,17 @@ КонецПроцедуры +Процедура ПереопределитьМуниципальныйУровеньГородаКакНаселенныйПунктПоГАР(ИмяУровня, Выборка, Суффикс) + + ТипОбъекта = ВРег(Выборка["ТипОбъекта" + Суффикс]); + + Если СтрСравнить(ИмяУровня, "city") = 0 + Или (СтрСравнить(ИмяУровня,"district") = 0 И (ТипОбъекта = "Г" Или ТипОбъекта = "Г.")) Тогда + ИмяУровня = "locality"; + КонецЕсли; + +КонецПроцедуры + // Конструктор полей структуры для описания ошибок. // Функция СтруктураОписанияОшибкиПоставщика(Описание = Неопределено, ИнформацияОбОшибке = Неопределено) @@ -8608,46 +9017,62 @@ Возврат Описание; КонецФункции -Процедура ОбработатьОбщепринятыеСокращения(ДоступныеУровни) - - ОбщепринятыеСокращения = Новый Соответствие; - ОбщепринятыеСокращения.Вставить("КОРП", "Корпус"); - ОбщепринятыеСокращения.Вставить("КОРП.", "Корпус"); - ОбщепринятыеСокращения.Вставить("К.", "Корпус"); - ОбщепринятыеСокращения.Вставить("КВ.", "Квартира"); - ОбщепринятыеСокращения.Вставить("КВ", "Квартира"); - ОбщепринятыеСокращения.Вставить("ОФ.", "Офис"); - ОбщепринятыеСокращения.Вставить("ОФ.", "Офис"); - ОбщепринятыеСокращения.Вставить("ПОМЕЩ", "Помещение"); - ОбщепринятыеСокращения.Вставить("ПОМЕЩ.", "Помещение"); - ОбщепринятыеСокращения.Вставить("Д", "Дом"); - ОбщепринятыеСокращения.Вставить("Д.", "Дом"); - ОбщепринятыеСокращения.Вставить("СТР.", "Строение"); - ОбщепринятыеСокращения.Вставить("ЛИТЕР", "Литера"); - +Процедура ОбработатьОбщепринятыеСокращенияИУдалитьТочкуВКонецТипа(АдресПоЧастям) + + ОбщепринятыеСокращения = ОбщепринятыеСокращенияЗданийИПомещений(); + Фильтр = Новый Структура("Уровень", 0); - НераспознанныеСтроки = ДоступныеУровни.НайтиСтроки(Фильтр); - Для Каждого НераспознаннаяЧастьАдреса Из НераспознанныеСтроки Цикл - Если (ВРЕГ(НераспознаннаяЧастьАдреса.Наименование) = "МОСКВА" - Или ВРЕГ(НераспознаннаяЧастьАдреса.Наименование) = "САНКТ-ПЕТЕРБУРГ") - И ПустаяСтрока(НераспознаннаяЧастьАдреса.ТипОбъекта) Тогда + НераспознанныеСтроки = АдресПоЧастям.НайтиСтроки(Фильтр); + + Для Каждого ЧастьАдреса Из НераспознанныеСтроки Цикл + + ЧастьАдреса.ТипОбъекта = СтрЗаменитьПоРегулярномуВыражению(ЧастьАдреса.ТипОбъекта, "\.$", ""); + ТипВРег = ВРЕГ(СокрЛП(ЧастьАдреса.ТипОбъекта)); + + // Города без типа → определяем автоматически + Если (ВРЕГ(ЧастьАдреса.Наименование) = "МОСКВА" + ИЛИ ВРЕГ(ЧастьАдреса.Наименование) = "САНКТ-ПЕТЕРБУРГ") + И ПустаяСтрока(ТипВРег) Тогда - НераспознаннаяЧастьАдреса.ТипОбъекта = "г"; - НераспознаннаяЧастьАдреса.Значение = СоединитьНаименованиеИТипАдресногоОбъекта( - НераспознаннаяЧастьАдреса.Наименование, НераспознаннаяЧастьАдреса.ТипОбъекта, Истина); - - Иначе - - ТипОбъекта = ОбщепринятыеСокращения[ВРЕГ(НераспознаннаяЧастьАдреса.ТипОбъекта)]; - Если ТипОбъекта <> Неопределено Тогда - НераспознаннаяЧастьАдреса.ТипОбъекта = ТипОбъекта; - КонецЕсли; - + ЧастьАдреса.ТипОбъекта = "г"; + ЧастьАдреса.Значение = СоединитьНаименованиеИТипАдресногоОбъекта( + ЧастьАдреса.Наименование, "г", Истина); + Продолжить; КонецЕсли; + + Если ПустаяСтрока(ТипВРег) Тогда + Продолжить; + КонецЕсли; + + // Замена сокращения + ПолноеИмя = ОбщепринятыеСокращения[ТипВРег]; + Если ПолноеИмя <> Неопределено Тогда + ЧастьАдреса.ТипОбъекта = ПолноеИмя; + КонецЕсли; + КонецЦикла; - + КонецПроцедуры +Функция ОбщепринятыеСокращенияЗданийИПомещений() + + СтатическиеСокращения = Новый Соответствие; + СтатическиеСокращения.Вставить("КОРП", "Корпус"); + СтатическиеСокращения.Вставить("К", "Корпус"); + СтатическиеСокращения.Вставить("КВ", "Квартира"); + СтатическиеСокращения.Вставить("КВАРТ", "Квартира"); + СтатическиеСокращения.Вставить("ОФ", "Офис"); + СтатическиеСокращения.Вставить("ПОМЕЩ", "Помещение"); + СтатическиеСокращения.Вставить("ПОМ", "Помещение"); + СтатическиеСокращения.Вставить("Д", "Дом"); + СтатическиеСокращения.Вставить("СТР", "Строение"); + СтатическиеСокращения.Вставить("СТРОЕН", "Строение"); + СтатическиеСокращения.Вставить("ЛИТЕР", "Литера"); + + Возврат СтатическиеСокращения; + +КонецФункции + Функция ПерваяБукваЗаглавная(Строка) Возврат ВРег(Лев(Строка, 1)) + Сред(НРег(Строка), 2); // Использовать ТРег нельзя. КонецФункции @@ -8945,7 +9370,7 @@ КонецФункции Функция ПрефиксВерсииЗапроса() - Возврат "rest/v4/"; + Возврат "rest/v5/"; КонецФункции Функция ПрефиксВерсииЗапросаСервисаОКТМО() @@ -9073,6 +9498,63 @@ КонецПроцедуры +// Извлекает список помещений полученного из регистра сведения описания и добавляет их в список значений. +// +// Параметры: +// СтрокаСоСпискомПомещений - Строка - описание списка помещений из регистра сведения. +// СтрокаПоиска - Строка - строка отбора. +// ВариантыПомещений - СписокЗначений - список помещений. +// ТочноеСовпадение - Булево - флаг точного совпадения. +// +Процедура ИзвлечьСписокПомещений(СтрокаСоСпискомПомещений, СтрокаПоиска, ВариантыПомещений, ТочноеСовпадение) + + МассивПомещений = СтрРазделить(СтрокаСоСпискомПомещений, Символы.ПС, Ложь); + + ТипЧисло = Новый ОписаниеТипов("Число"); + НаименованиеПомещений = АдресныйКлассификаторПовтИсп.НаименованияПомещений(); + + ПодборВариантовПомещений = ЗначениеЗаполнено(СтрокаПоиска); + СтрокаПоискаВРег = ?(ПодборВариантовПомещений И Не ТочноеСовпадение, ВРег(СтрокаПоиска), ""); + + Для Каждого Помещение Из МассивПомещений Цикл + + ДанныеПомещения = Сред(Помещение, 25); + ТипИНомерПомещения = СтрРазделить(ДанныеПомещения, Символы.НПП); + НомерПомещения = ТипИНомерПомещения[1]; + + ТипПомещения = ТипЧисло.ПривестиЗначение(ТипИНомерПомещения[0]); + ТипПомещенияПредставление = НаименованиеПомещений.Получить(ТипПомещения); + ПредставлениеПомещения = ТипПомещенияПредставление + " " + НомерПомещения; + + ДобавитьВСписок = Ложь; + + Если Не ПодборВариантовПомещений Тогда + ДобавитьВСписок = Истина; + ИначеЕсли ТочноеСовпадение Тогда + ДобавитьВСписок = (СтрСравнить(ПредставлениеПомещения, СтрокаПоиска) = 0); + Иначе + ДобавитьВСписок = СтрНайти(ВРег(ПредставлениеПомещения), СтрокаПоискаВРег) > 0; + КонецЕсли; + + Если ДобавитьВСписок Тогда + + ОписаниеПомещения = ОписаниеПомещения(); + ОписаниеПомещения.ИдентификаторПомещения = УникальныйИдентификаторИзСтроки64(Лев(Помещение, 24)); + + ОписаниеПомещения.ТипПомещения = ТипПомещенияПредставление; + ОписаниеПомещения.НомерПомещения = НомерПомещения; + ОписаниеПомещения.ПомещениеЧислом = ТипЧисло.ПривестиЗначение(НомерПомещения); + ОписаниеПомещения.Представление = ПредставлениеПомещения; + + ПомещениеДанные = ВариантыПомещений.Добавить(); + ЗаполнитьЗначенияСвойств(ПомещениеДанные, ОписаниеПомещения); + ПомещениеДанные.Значение = ОписаниеПомещения; + КонецЕсли; + + КонецЦикла; + +КонецПроцедуры + // Возвращаемое значение: // Структура: // * НомерДома - Строка @@ -9143,6 +9625,28 @@ КонецФункции +// Возвращаемое значение: +// Структура: +// * ПомещениеЧислом - Число +// * НомерПомещения - Строка +// * ТипПомещения - Строка +// * Представление - Строка +// * ИдентификаторПомещения - Неопределено, УникальныйИдентификатор +// +Функция ОписаниеПомещения() Экспорт + + ОписаниеПомещения = Новый Структура(); + + ОписаниеПомещения.Вставить("ПомещениеЧислом", 0); + ОписаниеПомещения.Вставить("НомерПомещения", ""); + ОписаниеПомещения.Вставить("ТипПомещения", ""); + ОписаниеПомещения.Вставить("Представление", ""); + ОписаниеПомещения.Вставить("ИдентификаторПомещения", Неопределено); + + Возврат ОписаниеПомещения; + +КонецФункции + Процедура ДобавитьИнформациюОДоме(ВариантыДомов, ОписаниеДома, НаименованиеЗданийИСтроений, СтрокаПоиска = "") Набор = Новый Массив; @@ -9427,7 +9931,7 @@ ЗаполнитьЗначенияСвойств(Результат, Коды); Для Каждого КлючЗначение Из Результат Цикл - Если СтрСравнить(КлючЗначение.Ключ, "Идентификатор") <> 0 Тогда + Если СтрНайти(КлючЗначение.Ключ, "Идентификатор") = 0 Тогда Результат[КлючЗначение.Ключ] = Формат(КлючЗначение.Значение, "ЧГ=0"); Если (СтрСравнить(КлючЗначение.Ключ, "ОКТМО") = 0 Или СтрСравнить(КлючЗначение.Ключ, "ОКТМОБюджетополучателя") = 0) @@ -9821,37 +10325,38 @@ // // Возвращаемое значение: // Структура - поля контактной информации c типом Адрес добавленные к основным полям: -// * ID - Строка - идентификационный код последнего адресного объекта в иерархи адреса. -// * AddressType - Строка - установленный пользователем тип адреса(только для адресов РФ). +// * id - Строка - идентификационный код последнего адресного объекта в иерархи адреса. +// * addressType - Строка - установленный пользователем тип адреса(только для адресов РФ). // Варианты: "Муниципальный", "Административно-территориальный". -// * AreaCode - Строка - код региона РФ. -// * AreaID - Строка - идентификатор региона. -// * District - Строка - представление района у адресов по административно-территориальному делению. -// * DistrictType - Строка - тип района у адресов по административно-территориальному делению. -// * DistrictID - Строка - идентификатор региона у адресов по административно-территориальному делению. -// * MunDistrict - Строка - представление муниципального района у адресов по муниципальному делению. -// * MunDistrictType - Строка - тип муниципального района у адресов по муниципальному делению. -// * MunDistrictID - Строка - идентификатор муниципального района у адресов по муниципальному делению. -// * CityID - Строка - идентификатор муниципального города у адресов по административно-территориальному делению. -// * Settlement - Строка - представление поселения у адресов по муниципальному делению. -// * SettlementType - Строка - тип поселения у адресов по муниципальному делению. -// * SettlementID - Строка - идентификатор поселения. -// * CityDistrict - Строка - представление внутригородского района. -// * CityDistrictType - Строка - тип внутригородского района. -// * CityDistrictID - Строка - идентификатор внутригородского района. -// * Territory - Строка - представление территории (элемента планировочной структуры). -// * TerritoryType - Строка - тип территории (элемента планировочной структуры). -// * TerritoryID - Строка - идентификатор территории (элемента планировочной структуры). -// * Locality - Строка - представление населенного пункта. -// * LocalityType - Строка - тип населенного пункта. -// * LocalityID - Строка - идентификатор населенного пункта. -// * StreetID - Строка - идентификатор улицы. -// * HouseType - Строка - тип дома, владения. -// * HouseNumber - Строка - номер дома, владения. -// * HouseID - Строка - идентификатор дома. -// * Buildings - Массив - содержит структуры(поля структуры: type, number) с перечнем корпусов (строений) адреса. -// * Apartments - Массив - содержит структуры(поля структуры: type, number) с перечнем помещений адреса. -// * CodeKLADR - Строка - код КЛАДР. +// * areaCode - Строка - код региона РФ. +// * areaID - Строка - идентификатор региона. +// * district - Строка - представление района у адресов по административно-территориальному делению. +// * districtType - Строка - тип района у адресов по административно-территориальному делению. +// * districtID - Строка - идентификатор региона у адресов по административно-территориальному делению. +// * munDistrict - Строка - представление муниципального района у адресов по муниципальному делению. +// * munDistrictType - Строка - тип муниципального района у адресов по муниципальному делению. +// * munDistrictID - Строка - идентификатор муниципального района у адресов по муниципальному делению. +// * cityID - Строка - идентификатор муниципального города у адресов по административно-территориальному делению. +// * settlement - Строка - представление поселения у адресов по муниципальному делению. +// * settlementType - Строка - тип поселения у адресов по муниципальному делению. +// * settlementID - Строка - идентификатор поселения. +// * cityDistrict - Строка - представление внутригородского района. +// * cityDistrictType - Строка - тип внутригородского района. +// * cityDistrictID - Строка - идентификатор внутригородского района. +// * territory - Строка - представление территории (элемента планировочной структуры). +// * territoryType - Строка - тип территории (элемента планировочной структуры). +// * territoryID - Строка - идентификатор территории (элемента планировочной структуры). +// * locality - Строка - представление населенного пункта. +// * localityType - Строка - тип населенного пункта. +// * localityID - Строка - идентификатор населенного пункта. +// * streetID - Строка - идентификатор улицы. +// * houseType - Строка - тип дома, владения. +// * houseNumber - Строка - номер дома, владения. +// * houseID - Строка - идентификатор дома. +// * apartmentId - Строка - идентификатор помещения. +// * buildings - Массив - содержит структуры(поля структуры: type, number) с перечнем корпусов (строений) адреса. +// * apartments - Массив - содержит структуры(поля структуры: type, number) с перечнем помещений адреса. +// * codeKLADR - Строка - код КЛАДР. // * OKTMO - Строка - код ОКТМО. // * OKATO - Строка - код ОКАТО. // * IFNSFLCode - Строка - код ИФНСФЛ. @@ -9865,12 +10370,12 @@ Результат = Новый Структура; - Результат.Вставить("version", 4); - Результат.Вставить("value", ""); - Результат.Вставить("comment", ""); - Результат.Вставить("type", "Адрес"); - Результат.Вставить("country", ""); - Результат.Вставить("addressType", АдресВСвободнойФорме()); + Результат.Вставить("version", 5); + Результат.Вставить("value", ""); + Результат.Вставить("comment", ""); + Результат.Вставить("type", "Адрес"); + Результат.Вставить("country", ""); + Результат.Вставить("addressType", АдресВСвободнойФорме()); Результат.Вставить("countryCode", ""); Результат.Вставить("ZIPcode", ""); Результат.Вставить("area", ""); @@ -9906,6 +10411,7 @@ Результат.Вставить("houseType", ""); Результат.Вставить("houseNumber", ""); Результат.Вставить("houseId", ""); + Результат.Вставить("apartmentId", ""); Результат.Вставить("stead", ""); Результат.Вставить("steadId", ""); Результат.Вставить("buildings", Новый Массив); @@ -9964,6 +10470,53 @@ КонецПроцедуры +Функция СписокПомещенийИзЗагруженныхСведений(Знач ИдентификаторАдресногоОбъекта, Знач СтрокаПоиска, + Знач ТочноеСовпадение) + + Помещения = Новый СписокЗначений(); + Помещения.Добавить(ИдентификаторАдресногоОбъекта, СтрокаПоиска, ТочноеСовпадение); + + Результат = ПомещенияАдресныхОбъектовИзЗагруженныхСведений(Помещения); + + Возврат Результат.Получить(ИдентификаторАдресногоОбъекта); + +КонецФункции + +Функция ПомещенияАдресныхОбъектовИзЗагруженныхСведений(Помещения) + + Результат = Новый Соответствие(); + + Запрос = Новый Запрос; + Запрос.Текст = "ВЫБРАТЬ + | КвартирыОфисыПомещения.Помещения КАК Помещения, + | КвартирыОфисыПомещения.АдресныйОбъект КАК ИдентификаторАдресногоОбъекта + |ИЗ + | РегистрСведений.КвартирыОфисыПомещения КАК КвартирыОфисыПомещения + |ГДЕ + | КвартирыОфисыПомещения.АдресныйОбъект В (&АдресныйОбъект)"; + + Запрос.УстановитьПараметр("АдресныйОбъект", Помещения.ВыгрузитьЗначения()); + Запись = Запрос.Выполнить().Выбрать(); + + Пока Запись.Следующий() Цикл + ВариантыПомещений = КонструкторСпискаПомещений(); + + Если ЗначениеЗаполнено(Запись.Помещения) Тогда + Описание = Запись.Помещения.Получить(); + Если ЗначениеЗаполнено(Описание) Тогда + СведенияОПомещении = Помещения.НайтиПоЗначению(Запись.ИдентификаторАдресногоОбъекта); + Если СведенияОПомещении <> Неопределено Тогда + ИзвлечьСписокПомещений(Описание, СведенияОПомещении.Представление, ВариантыПомещений, СведенияОПомещении.Пометка); + КонецЕсли; + КонецЕсли; + КонецЕсли; + Результат.Вставить(Запись.ИдентификаторАдресногоОбъекта, ВариантыПомещений); + КонецЦикла; + + Возврат Результат; + +КонецФункции + // Возвращаемое значение: // ТаблицаЗначений: // * ДомЧислом - Число @@ -9989,6 +10542,31 @@ КонецФункции +// Возвращаемое значение: +// ТаблицаЗначений: +// * ТипПомещения - Строка +// * ПомещениеЧислом - Число +// * Помещение - Строка +// * Значение - Структура +// * Представление - Строка +// * ИдентификаторПомещения - Строка +// +Функция КонструкторСпискаПомещений() Экспорт + + ВариантыПомещений = Новый ТаблицаЗначений; + ВариантыПомещений.Колонки.Добавить("ТипПомещения", ОбщегоНазначения.ОписаниеТипаСтрока(50)); + ВариантыПомещений.Колонки.Добавить("ПомещениеЧислом", ОбщегоНазначения.ОписаниеТипаЧисло(15)); + ВариантыПомещений.Колонки.Добавить("НомерПомещения", ОбщегоНазначения.ОписаниеТипаСтрока(30)); + ВариантыПомещений.Колонки.Добавить("Значение"); + ВариантыПомещений.Колонки.Добавить("Представление", ОбщегоНазначения.ОписаниеТипаСтрока(200)); + ВариантыПомещений.Колонки.Добавить("ИдентификаторПомещения", ОбщегоНазначения.ОписаниеТипаСтрока(50)); + + ВариантыПомещений.Индексы.Добавить("ТипПомещения, ПомещениеЧислом"); + + Возврат ВариантыПомещений; + +КонецФункции + // Возвращаемое значение: // Массив из Строка // @@ -10688,13 +11266,6 @@ КонецФункции -Функция ЭтоГородФедеральногоЗначения(Город) - - НазванияГородовФедеральногоЗначения = НазванияГородовФедеральногоЗначения(); - Возврат НазванияГородовФедеральногоЗначения.Получить(ВРег(Город)) = Истина; - -КонецФункции - // Возвращает массив наименований регионов - городов федерального значения. Функция НазванияГородовФедеральногоЗначения() @@ -10706,8 +11277,13 @@ Результат = Новый Соответствие; Для Каждого Город Из СписокГородов Цикл - Результат.Вставить(СоединитьНаименованиеИТипАдресногоОбъекта(Город, "Г", ИСТИНА), Истина); - Результат.Вставить(СоединитьНаименованиеИТипАдресногоОбъекта("ГОРОД", Город, ИСТИНА), Истина); + Результат.Вставить(СоединитьНаименованиеИТипАдресногоОбъекта(Город, "Г", Истина), Истина); + Результат.Вставить(СоединитьНаименованиеИТипАдресногоОбъекта("ГОРОД", Город, Истина), Истина); + Результат.Вставить(СоединитьНаименованиеИТипАдресногоОбъекта(Город, "Г", Ложь), Истина); + Результат.Вставить(СоединитьНаименованиеИТипАдресногоОбъекта("ГОРОД", Город, Ложь), Истина); + Результат.Вставить(СоединитьНаименованиеИТипАдресногоОбъекта(Город, "Г.", Истина), Истина); + Результат.Вставить(СоединитьНаименованиеИТипАдресногоОбъекта(Город, "Г.", Ложь), Истина); + КонецЦикла; Возврат Результат; @@ -11004,6 +11580,14 @@ КонецЕсли; ФайлРегиона = АдресИнтернетаВключаяПорт(ОписаниеРегиона.Адрес); + + Расширение = ".ZIP"; + Если ПараметрыЗагрузки.ЗагружатьПомещения Тогда + Позиция = СтрНайти(ВРег(ОписаниеРегиона.Адрес), Расширение); + Если Позиция > 0 Тогда + ОписаниеРегиона.Адрес = Лев(ОписаниеРегиона.Адрес, Позиция -1) + "apt" + Прав(ОписаниеРегиона.Адрес, СтрДлина(Расширение)); + КонецЕсли; + КонецЕсли; ПутьДляСохранения = ВременныйКаталог + ВРег(ФайлРегиона.ИмяФайла); ПараметрыПолучения.Вставить("ПутьДляСохранения", ПутьДляСохранения); @@ -11078,11 +11662,15 @@ // Файлы уже подготовлены КаталогФайлов = ОбщегоНазначенияКлиентСервер.ДобавитьКонечныйРазделительПути(ОписаниеФайлов); Иначе - КаталогФайлов = ИзвлечьФайлыВКаталог(ОписаниеФайлов, ПараметрыЗагрузки.КаталогФайлов); + Результат = ИзвлечьФайлыВКаталог(ОписаниеФайлов, ПараметрыЗагрузки.КаталогФайлов, ПараметрыЗагрузки.ЗагружатьПомещения); + Если Результат.ПроизошлаОшибка Тогда + ВызватьИсключение Результат.ТекстОшибки; + КонецЕсли; + КаталогФайлов = Результат.КаталогФайлов; КонецЕсли; - + КаталогФайлов = КаталогФайлов + Формат(СубъектРФ, "ЧЦ=2; ЧВН=") + ПолучитьРазделительПутиСервера(); - + ЗаписьЖурналаРегистрации(СобытиеЖурналаРегистрации(), УровеньЖурналаРегистрации.Примечание,,, СтроковыеФункцииКлиентСервер.ПодставитьПараметрыВСтроку( НСтр("ru = 'Загрузка региона %1 из %2'"), СубъектРФ, КаталогФайлов)); @@ -11093,7 +11681,6 @@ ОбновитьСлужебныеАдресныеСведения(СлужебныеАдресныеСведения); НаименованиеРегиона = АдресныйКлассификатор.НаименованиеРегионаПоКоду(СубъектРФ); - ДлительныеОперации.СообщитьПрогресс(0, СтроковыеФункцииКлиентСервер.ПодставитьПараметрыВСтроку(НСтр( "ru = 'Загружается %1'"), НаименованиеРегиона)); @@ -11165,7 +11752,12 @@ КаталогФайлов = ОбщегоНазначенияКлиентСервер.ДобавитьКонечныйРазделительПути(ОписаниеФайлов); КаталогОбщихАдресныхСведений = КаталогФайлов; Иначе - КаталогФайлов = ИзвлечьФайлыВКаталог(ОписаниеФайлов); + Результат = ИзвлечьФайлыВКаталог(ОписаниеФайлов,, ПараметрыЗагрузки.ЗагружатьПомещения); + Если Результат.ПроизошлаОшибка Тогда + ВызватьИсключение Результат.ТекстОшибки; + КонецЕсли; + КаталогФайлов = Результат.КаталогФайлов; + Если ТипЗнч(КодыСубъектовРФ) = Тип("Массив") И КодыСубъектовРФ.Количество() > 0 Тогда КаталогОбщихАдресныхСведений = КаталогФайлов + Формат(КодыСубъектовРФ[0], "ЧЦ=2; ЧВН=") @@ -11455,6 +12047,7 @@ Результат.Вставить("ДатаЗагрузки", ТекущаяДатаСеанса()); Результат.Вставить("ОповещатьОПрогрессе", Истина); Результат.Вставить("КаталогФайлов", ""); + Результат.Вставить("ЗагружатьПомещения", Ложь); СистемнаяИнформация = Новый СистемнаяИнформация; ОперативнаяПамять = СистемнаяИнформация.ОперативнаяПамять / 1024; // Гб @@ -11480,7 +12073,11 @@ ЗагрузитьИерархиюАдресов(СубъектРФ, КаталогФайлов, ЗагружатьОднимНабором, "АдминистративнаяИерархия"); ЗагрузитьДомаЗданияСтроения(СубъектРФ, КаталогФайлов, ЗагружатьОднимНабором); ЗагрузитьЗемельныеУчастки(СубъектРФ, КаталогФайлов, ЗагружатьОднимНабором); - + + Если ПараметрыЗагрузки.ЗагружатьПомещения Тогда + ЗагрузитьПомещения(СубъектРФ, КаталогФайлов, ЗагружатьОднимНабором); + КонецЕсли; + Если ПараметрыЗагрузки.ЗагружатьИсториюАдресов Тогда ЗагрузитьИсториюАдресныхОбъектов(СубъектРФ, КаталогФайлов, ЗагружатьОднимНабором); ЗагрузитьИерархиюАдресов(СубъектРФ, КаталогФайлов, ЗагружатьОднимНабором, "ИсторияМуниципальнойИерархии"); @@ -11764,6 +12361,65 @@ КонецПроцедуры +Процедура ЗагрузитьПомещения(КодСубъектаРФ, КаталогФайлов, ЗагружатьОднимНабором) + + Сжатие = Новый СжатиеДанных(9); + ФайлЗагрузки = ФайлЗагрузкиСубъектаРФ(КодСубъектаРФ, КаталогФайлов, "APARTMENT", "Apartments"); + + ТекущаяЗапись = ФайлЗагрузки.ФайлЧтения; + + Набор = РегистрыСведений.КвартирыОфисыПомещения.СоздатьНаборЗаписей(); + Набор.Отбор.КодСубъектаРФ.Установить(КодСубъектаРФ); + + Замещать = Истина; + КоличествоЗаписейВНаборе = 0; + РазмерПорции = МаксимальныйРазмерНабораЗаписей(); + + Попытка + + Пока ТекущаяЗапись.Прочитать() Цикл + + Если ТекущаяЗапись.ТипУзла <> ТипУзлаXML.НачалоЭлемента + Или ПустаяСтрока(ТекущаяЗапись.ЗначениеАтрибута("PARENTOBJECTGUID")) Тогда + Продолжить; + КонецЕсли; + + Запись = Набор.Добавить(); + + Запись.КодСубъектаРФ = КодСубъектаРФ; + Запись.АдресныйОбъект = УникальныйИдентификаторИзСтроки64( + ТекущаяЗапись.ЗначениеАтрибута("PARENTOBJECTGUID")); + Запись.Помещения = Новый ХранилищеЗначения(ТекущаяЗапись.ЗначениеАтрибута("APARTMENTS"), Сжатие); + + Если ЗагружатьОднимНабором Тогда + Продолжить; + КонецЕсли; + + Если КоличествоЗаписейВНаборе < РазмерПорции Тогда + КоличествоЗаписейВНаборе = КоличествоЗаписейВНаборе + 1; + Продолжить; + КонецЕсли; + + ОбновлениеИнформационнойБазы.ЗаписатьНаборЗаписей(Набор, Замещать); + Замещать = Ложь; + КоличествоЗаписейВНаборе = 0; + + Набор = РегистрыСведений.КвартирыОфисыПомещения.СоздатьНаборЗаписей(); + Набор.Отбор.КодСубъектаРФ.Установить(КодСубъектаРФ); + + КонецЦикла; + + ОбновлениеИнформационнойБазы.ЗаписатьНаборЗаписей(Набор, Замещать); + ЗакрытьФайлЗагрузкиСубъектаРФ(ФайлЗагрузки); + + Исключение + + ЗакрытьФайлЗагрузкиСубъектаРФ(ФайлЗагрузки); + ВызватьИсключение; + КонецПопытки; + +КонецПроцедуры + Процедура ЗагрузитьДополнительныеСведения(КодСубъектаРФ, КаталогФайлов, ЗагружатьИсториюИзменений) Набор = РегистрыСведений.ДополнительныеАдресныеСведения.СоздатьНаборЗаписей(); @@ -12026,6 +12682,7 @@ ОчиститьИсториюМуниципальнойИерархииАдресныхОбъектов(СубъектРФ); ОчиститьПричиныИзмененияАдреса(СубъектРФ); ОчиститьДополнительныеСведения(СубъектРФ); + ОчиститьПомещения(СубъектРФ); СброситьИнформациюОЗагрузкеВерсии(СубъектРФ); @@ -12129,6 +12786,14 @@ КонецПроцедуры +Процедура ОчиститьПомещения(КодСубъектаРФ) + + Набор = РегистрыСведений.КвартирыОфисыПомещения.СоздатьНаборЗаписей(); + Набор.Отбор.КодСубъектаРФ.Установить(КодСубъектаРФ); + ОбновлениеИнформационнойБазы.ЗаписатьДанные(Набор); + +КонецПроцедуры + Процедура ОчиститьИсториюАдресныхОбъектов(КодСубъектаРФ) Набор = РегистрыСведений.ИсторияАдресныхОбъектов.СоздатьНаборЗаписей(); diff --git a/SSL/src/CommonModules/Анкетирование/Module.bsl b/SSL/src/CommonModules/Анкетирование/Module.bsl index dcf0dd974..a8f87d29a 100644 --- a/SSL/src/CommonModules/Анкетирование/Module.bsl +++ b/SSL/src/CommonModules/Анкетирование/Module.bsl @@ -1,5 +1,5 @@ /////////////////////////////////////////////////////////////////////////////////////////////////////// -// Copyright (c) 2024, ООО 1С-Софт +// Copyright (c) 2025, ООО 1С-Софт // Все права защищены. Эта программа и сопроводительные материалы предоставляются // в соответствии с условиями лицензии Attribution 4.0 International (CC BY 4.0) // Текст лицензии доступен по ссылке: diff --git a/SSL/src/CommonModules/АнкетированиеКлиент/Module.bsl b/SSL/src/CommonModules/АнкетированиеКлиент/Module.bsl index 49aeeeafd..a6aebe05a 100644 --- a/SSL/src/CommonModules/АнкетированиеКлиент/Module.bsl +++ b/SSL/src/CommonModules/АнкетированиеКлиент/Module.bsl @@ -1,5 +1,5 @@ /////////////////////////////////////////////////////////////////////////////////////////////////////// -// Copyright (c) 2024, ООО 1С-Софт +// Copyright (c) 2025, ООО 1С-Софт // Все права защищены. Эта программа и сопроводительные материалы предоставляются // в соответствии с условиями лицензии Attribution 4.0 International (CC BY 4.0) // Текст лицензии доступен по ссылке: diff --git a/SSL/src/CommonModules/АнкетированиеКлиентСервер/Module.bsl b/SSL/src/CommonModules/АнкетированиеКлиентСервер/Module.bsl index 332260f6e..9b7c44b67 100644 --- a/SSL/src/CommonModules/АнкетированиеКлиентСервер/Module.bsl +++ b/SSL/src/CommonModules/АнкетированиеКлиентСервер/Module.bsl @@ -1,5 +1,5 @@ /////////////////////////////////////////////////////////////////////////////////////////////////////// -// Copyright (c) 2024, ООО 1С-Софт +// Copyright (c) 2025, ООО 1С-Софт // Все права защищены. Эта программа и сопроводительные материалы предоставляются // в соответствии с условиями лицензии Attribution 4.0 International (CC BY 4.0) // Текст лицензии доступен по ссылке: diff --git a/SSL/src/CommonModules/БизнесПроцессыИЗадачиВызовСервера/Module.bsl b/SSL/src/CommonModules/БизнесПроцессыИЗадачиВызовСервера/Module.bsl index d1aaf53d1..5eb41b57d 100644 --- a/SSL/src/CommonModules/БизнесПроцессыИЗадачиВызовСервера/Module.bsl +++ b/SSL/src/CommonModules/БизнесПроцессыИЗадачиВызовСервера/Module.bsl @@ -1,5 +1,5 @@ /////////////////////////////////////////////////////////////////////////////////////////////////////// -// Copyright (c) 2024, ООО 1С-Софт +// Copyright (c) 2025, ООО 1С-Софт // Все права защищены. Эта программа и сопроводительные материалы предоставляются // в соответствии с условиями лицензии Attribution 4.0 International (CC BY 4.0) // Текст лицензии доступен по ссылке: diff --git a/SSL/src/CommonModules/БизнесПроцессыИЗадачиКлиент/Module.bsl b/SSL/src/CommonModules/БизнесПроцессыИЗадачиКлиент/Module.bsl index 4257788f3..95b4b6d50 100644 --- a/SSL/src/CommonModules/БизнесПроцессыИЗадачиКлиент/Module.bsl +++ b/SSL/src/CommonModules/БизнесПроцессыИЗадачиКлиент/Module.bsl @@ -1,5 +1,5 @@ /////////////////////////////////////////////////////////////////////////////////////////////////////// -// Copyright (c) 2024, ООО 1С-Софт +// Copyright (c) 2025, ООО 1С-Софт // Все права защищены. Эта программа и сопроводительные материалы предоставляются // в соответствии с условиями лицензии Attribution 4.0 International (CC BY 4.0) // Текст лицензии доступен по ссылке: diff --git a/SSL/src/CommonModules/БизнесПроцессыИЗадачиКлиентПереопределяемый/Module.bsl b/SSL/src/CommonModules/БизнесПроцессыИЗадачиКлиентПереопределяемый/Module.bsl index d45b07422..8a9329985 100644 --- a/SSL/src/CommonModules/БизнесПроцессыИЗадачиКлиентПереопределяемый/Module.bsl +++ b/SSL/src/CommonModules/БизнесПроцессыИЗадачиКлиентПереопределяемый/Module.bsl @@ -1,5 +1,5 @@ /////////////////////////////////////////////////////////////////////////////////////////////////////// -// Copyright (c) 2024, ООО 1С-Софт +// Copyright (c) 2025, ООО 1С-Софт // Все права защищены. Эта программа и сопроводительные материалы предоставляются // в соответствии с условиями лицензии Attribution 4.0 International (CC BY 4.0) // Текст лицензии доступен по ссылке: diff --git a/SSL/src/CommonModules/БизнесПроцессыИЗадачиКлиентСервер/Module.bsl b/SSL/src/CommonModules/БизнесПроцессыИЗадачиКлиентСервер/Module.bsl index 79b925a42..6a563cf2e 100644 --- a/SSL/src/CommonModules/БизнесПроцессыИЗадачиКлиентСервер/Module.bsl +++ b/SSL/src/CommonModules/БизнесПроцессыИЗадачиКлиентСервер/Module.bsl @@ -1,5 +1,5 @@ /////////////////////////////////////////////////////////////////////////////////////////////////////// -// Copyright (c) 2024, ООО 1С-Софт +// Copyright (c) 2025, ООО 1С-Софт // Все права защищены. Эта программа и сопроводительные материалы предоставляются // в соответствии с условиями лицензии Attribution 4.0 International (CC BY 4.0) // Текст лицензии доступен по ссылке: diff --git a/SSL/src/CommonModules/БизнесПроцессыИЗадачиПереопределяемый/Module.bsl b/SSL/src/CommonModules/БизнесПроцессыИЗадачиПереопределяемый/Module.bsl index c67373334..ad5b4b35f 100644 --- a/SSL/src/CommonModules/БизнесПроцессыИЗадачиПереопределяемый/Module.bsl +++ b/SSL/src/CommonModules/БизнесПроцессыИЗадачиПереопределяемый/Module.bsl @@ -1,5 +1,5 @@ /////////////////////////////////////////////////////////////////////////////////////////////////////// -// Copyright (c) 2024, ООО 1С-Софт +// Copyright (c) 2025, ООО 1С-Софт // Все права защищены. Эта программа и сопроводительные материалы предоставляются // в соответствии с условиями лицензии Attribution 4.0 International (CC BY 4.0) // Текст лицензии доступен по ссылке: diff --git a/SSL/src/CommonModules/БизнесПроцессыИЗадачиСервер/Module.bsl b/SSL/src/CommonModules/БизнесПроцессыИЗадачиСервер/Module.bsl index e8396d58a..a98cd937d 100644 --- a/SSL/src/CommonModules/БизнесПроцессыИЗадачиСервер/Module.bsl +++ b/SSL/src/CommonModules/БизнесПроцессыИЗадачиСервер/Module.bsl @@ -1,5 +1,5 @@ /////////////////////////////////////////////////////////////////////////////////////////////////////// -// Copyright (c) 2024, ООО 1С-Софт +// Copyright (c) 2025, ООО 1С-Софт // Все права защищены. Эта программа и сопроводительные материалы предоставляются // в соответствии с условиями лицензии Attribution 4.0 International (CC BY 4.0) // Текст лицензии доступен по ссылке: @@ -3391,8 +3391,6 @@ Методы.Вставить("ЗаполнитьОтветственногоЗаКонтрольИсполнения"); Методы.Вставить("ОбновитьИспользованиеРегламентныхЗаданий"); Методы.Вставить("ЗаполнитьНаименованиеПредопределенногоЭлементаВсеОбъектыАдресации"); - Методы.Вставить("УведомитьИсполнителейОНовыхЗадачах", Истина); - Методы.Вставить("ПроконтролироватьЗадачи", Истина); КонецПроцедуры diff --git a/SSL/src/CommonModules/БизнесПроцессыИЗадачиСобытия/Module.bsl b/SSL/src/CommonModules/БизнесПроцессыИЗадачиСобытия/Module.bsl index 843901974..cf4705cb7 100644 --- a/SSL/src/CommonModules/БизнесПроцессыИЗадачиСобытия/Module.bsl +++ b/SSL/src/CommonModules/БизнесПроцессыИЗадачиСобытия/Module.bsl @@ -1,5 +1,5 @@ /////////////////////////////////////////////////////////////////////////////////////////////////////// -// Copyright (c) 2024, ООО 1С-Софт +// Copyright (c) 2025, ООО 1С-Софт // Все права защищены. Эта программа и сопроводительные материалы предоставляются // в соответствии с условиями лицензии Attribution 4.0 International (CC BY 4.0) // Текст лицензии доступен по ссылке: @@ -120,11 +120,4 @@ КонецПроцедуры -// См. СтандартныеПодсистемыСервер.ПриОпределенииМетодовРазрешенныхДляВызоваКакПроизвольныйКод -Процедура ПриОпределенииМетодовРазрешенныхДляВызоваКакПроизвольныйКод(Методы) Экспорт - - Методы.Вставить("СтартОтложенныхПроцессов", Истина); - -КонецПроцедуры - #КонецОбласти diff --git a/SSL/src/CommonModules/БлокировкаРаботыСВнешнимиРесурсами/Module.bsl b/SSL/src/CommonModules/БлокировкаРаботыСВнешнимиРесурсами/Module.bsl index 9e7a948da..23480425a 100644 --- a/SSL/src/CommonModules/БлокировкаРаботыСВнешнимиРесурсами/Module.bsl +++ b/SSL/src/CommonModules/БлокировкаРаботыСВнешнимиРесурсами/Module.bsl @@ -1,5 +1,5 @@ /////////////////////////////////////////////////////////////////////////////////////////////////////// -// Copyright (c) 2024, ООО 1С-Софт +// Copyright (c) 2025, ООО 1С-Софт // Все права защищены. Эта программа и сопроводительные материалы предоставляются // в соответствии с условиями лицензии Attribution 4.0 International (CC BY 4.0) // Текст лицензии доступен по ссылке: diff --git a/SSL/src/CommonModules/БлокировкаРаботыСВнешнимиРесурсамиПереопределяемый/Module.bsl b/SSL/src/CommonModules/БлокировкаРаботыСВнешнимиРесурсамиПереопределяемый/Module.bsl index 76487b047..773e3f7e9 100644 --- a/SSL/src/CommonModules/БлокировкаРаботыСВнешнимиРесурсамиПереопределяемый/Module.bsl +++ b/SSL/src/CommonModules/БлокировкаРаботыСВнешнимиРесурсамиПереопределяемый/Module.bsl @@ -1,5 +1,5 @@ /////////////////////////////////////////////////////////////////////////////////////////////////////// -// Copyright (c) 2024, ООО 1С-Софт +// Copyright (c) 2025, ООО 1С-Софт // Все права защищены. Эта программа и сопроводительные материалы предоставляются // в соответствии с условиями лицензии Attribution 4.0 International (CC BY 4.0) // Текст лицензии доступен по ссылке: diff --git a/SSL/src/CommonModules/ВариантыОтчетов/Module.bsl b/SSL/src/CommonModules/ВариантыОтчетов/Module.bsl index 83dc207fe..2e5ce4d85 100644 --- a/SSL/src/CommonModules/ВариантыОтчетов/Module.bsl +++ b/SSL/src/CommonModules/ВариантыОтчетов/Module.bsl @@ -1,5 +1,5 @@ /////////////////////////////////////////////////////////////////////////////////////////////////////// -// Copyright (c) 2024, ООО 1С-Софт +// Copyright (c) 2025, ООО 1С-Софт // Все права защищены. Эта программа и сопроводительные материалы предоставляются // в соответствии с условиями лицензии Attribution 4.0 International (CC BY 4.0) // Текст лицензии доступен по ссылке: @@ -9945,7 +9945,6 @@ Методы.Вставить("ОперативноеОбновлениеРазделенныхДанныхКонфигурации"); Методы.Вставить("НайтиВариантыОтчетовДляВывода", Истина); Методы.Вставить("СформироватьОтчетВФоне", Истина); - Методы.Вставить("ЗаполнитьПредставленияПредопределенныхВариантовОтчетов", Истина); КонецПроцедуры diff --git a/SSL/src/CommonModules/ВариантыОтчетовВызовСервера/Module.bsl b/SSL/src/CommonModules/ВариантыОтчетовВызовСервера/Module.bsl index 3ee022b34..2d9db2dec 100644 --- a/SSL/src/CommonModules/ВариантыОтчетовВызовСервера/Module.bsl +++ b/SSL/src/CommonModules/ВариантыОтчетовВызовСервера/Module.bsl @@ -1,5 +1,5 @@ /////////////////////////////////////////////////////////////////////////////////////////////////////// -// Copyright (c) 2024, ООО 1С-Софт +// Copyright (c) 2025, ООО 1С-Софт // Все права защищены. Эта программа и сопроводительные материалы предоставляются // в соответствии с условиями лицензии Attribution 4.0 International (CC BY 4.0) // Текст лицензии доступен по ссылке: diff --git a/SSL/src/CommonModules/ВариантыОтчетовКлиент/Module.bsl b/SSL/src/CommonModules/ВариантыОтчетовКлиент/Module.bsl index ce6a77991..e16ffecb4 100644 --- a/SSL/src/CommonModules/ВариантыОтчетовКлиент/Module.bsl +++ b/SSL/src/CommonModules/ВариантыОтчетовКлиент/Module.bsl @@ -1,5 +1,5 @@ /////////////////////////////////////////////////////////////////////////////////////////////////////// -// Copyright (c) 2024, ООО 1С-Софт +// Copyright (c) 2025, ООО 1С-Софт // Все права защищены. Эта программа и сопроводительные материалы предоставляются // в соответствии с условиями лицензии Attribution 4.0 International (CC BY 4.0) // Текст лицензии доступен по ссылке: diff --git a/SSL/src/CommonModules/ВариантыОтчетовКлиентСервер/Module.bsl b/SSL/src/CommonModules/ВариантыОтчетовКлиентСервер/Module.bsl index 84184d325..2d95e8af8 100644 --- a/SSL/src/CommonModules/ВариантыОтчетовКлиентСервер/Module.bsl +++ b/SSL/src/CommonModules/ВариантыОтчетовКлиентСервер/Module.bsl @@ -1,5 +1,5 @@ /////////////////////////////////////////////////////////////////////////////////////////////////////// -// Copyright (c) 2024, ООО 1С-Софт +// Copyright (c) 2025, ООО 1С-Софт // Все права защищены. Эта программа и сопроводительные материалы предоставляются // в соответствии с условиями лицензии Attribution 4.0 International (CC BY 4.0) // Текст лицензии доступен по ссылке: diff --git a/SSL/src/CommonModules/ВариантыОтчетовПереопределяемый/Module.bsl b/SSL/src/CommonModules/ВариантыОтчетовПереопределяемый/Module.bsl index 30e2e9976..4703706a1 100644 --- a/SSL/src/CommonModules/ВариантыОтчетовПереопределяемый/Module.bsl +++ b/SSL/src/CommonModules/ВариантыОтчетовПереопределяемый/Module.bsl @@ -1,5 +1,5 @@ /////////////////////////////////////////////////////////////////////////////////////////////////////// -// Copyright (c) 2024, ООО 1С-Софт +// Copyright (c) 2025, ООО 1С-Софт // Все права защищены. Эта программа и сопроводительные материалы предоставляются // в соответствии с условиями лицензии Attribution 4.0 International (CC BY 4.0) // Текст лицензии доступен по ссылке: diff --git a/SSL/src/CommonModules/ВариантыОтчетовПовтИсп/Module.bsl b/SSL/src/CommonModules/ВариантыОтчетовПовтИсп/Module.bsl index 133b104c0..1d4bd4c1f 100644 --- a/SSL/src/CommonModules/ВариантыОтчетовПовтИсп/Module.bsl +++ b/SSL/src/CommonModules/ВариантыОтчетовПовтИсп/Module.bsl @@ -1,5 +1,5 @@ /////////////////////////////////////////////////////////////////////////////////////////////////////// -// Copyright (c) 2024, ООО 1С-Софт +// Copyright (c) 2025, ООО 1С-Софт // Все права защищены. Эта программа и сопроводительные материалы предоставляются // в соответствии с условиями лицензии Attribution 4.0 International (CC BY 4.0) // Текст лицензии доступен по ссылке: diff --git a/SSL/src/CommonModules/ВариантыОтчетовСлужебный/Module.bsl b/SSL/src/CommonModules/ВариантыОтчетовСлужебный/Module.bsl index f53b0ea1d..01ef77035 100644 --- a/SSL/src/CommonModules/ВариантыОтчетовСлужебный/Module.bsl +++ b/SSL/src/CommonModules/ВариантыОтчетовСлужебный/Module.bsl @@ -1,5 +1,5 @@ /////////////////////////////////////////////////////////////////////////////////////////////////////// -// Copyright (c) 2024, ООО 1С-Софт +// Copyright (c) 2025, ООО 1С-Софт // Все права защищены. Эта программа и сопроводительные материалы предоставляются // в соответствии с условиями лицензии Attribution 4.0 International (CC BY 4.0) // Текст лицензии доступен по ссылке: diff --git a/SSL/src/CommonModules/ВариантыОтчетовСлужебныйКлиент/Module.bsl b/SSL/src/CommonModules/ВариантыОтчетовСлужебныйКлиент/Module.bsl index 37f30fb9a..bea1ee9b2 100644 --- a/SSL/src/CommonModules/ВариантыОтчетовСлужебныйКлиент/Module.bsl +++ b/SSL/src/CommonModules/ВариантыОтчетовСлужебныйКлиент/Module.bsl @@ -1,5 +1,5 @@ /////////////////////////////////////////////////////////////////////////////////////////////////////// -// Copyright (c) 2024, ООО 1С-Софт +// Copyright (c) 2025, ООО 1С-Софт // Все права защищены. Эта программа и сопроводительные материалы предоставляются // в соответствии с условиями лицензии Attribution 4.0 International (CC BY 4.0) // Текст лицензии доступен по ссылке: diff --git a/SSL/src/CommonModules/ВариантыОтчетовСлужебныйКлиентСервер/Module.bsl b/SSL/src/CommonModules/ВариантыОтчетовСлужебныйКлиентСервер/Module.bsl index 5aa2bfcec..bfb53bd78 100644 --- a/SSL/src/CommonModules/ВариантыОтчетовСлужебныйКлиентСервер/Module.bsl +++ b/SSL/src/CommonModules/ВариантыОтчетовСлужебныйКлиентСервер/Module.bsl @@ -1,5 +1,5 @@ /////////////////////////////////////////////////////////////////////////////////////////////////////// -// Copyright (c) 2024, ООО 1С-Софт +// Copyright (c) 2025, ООО 1С-Софт // Все права защищены. Эта программа и сопроводительные материалы предоставляются // в соответствии с условиями лицензии Attribution 4.0 International (CC BY 4.0) // Текст лицензии доступен по ссылке: diff --git a/SSL/src/CommonModules/ВерсионированиеОбъектов/Module.bsl b/SSL/src/CommonModules/ВерсионированиеОбъектов/Module.bsl index d4b3e2f19..75bf56382 100644 --- a/SSL/src/CommonModules/ВерсионированиеОбъектов/Module.bsl +++ b/SSL/src/CommonModules/ВерсионированиеОбъектов/Module.bsl @@ -1,5 +1,5 @@ /////////////////////////////////////////////////////////////////////////////////////////////////////// -// Copyright (c) 2024, ООО 1С-Софт +// Copyright (c) 2025, ООО 1С-Софт // Все права защищены. Эта программа и сопроводительные материалы предоставляются // в соответствии с условиями лицензии Attribution 4.0 International (CC BY 4.0) // Текст лицензии доступен по ссылке: @@ -3724,7 +3724,6 @@ Методы.Вставить("УстановкаПараметровСеанса"); Методы.Вставить("УстановитьНастройкиРегламентногоЗаданияОчисткиУстаревшихВерсийОбъектов"); Методы.Вставить("ИнформацияОбУстаревшихВерсиях", Истина); - Методы.Вставить("ОчиститьУстаревшиеВерсииОбъектов", Истина); КонецПроцедуры diff --git a/SSL/src/CommonModules/ВерсионированиеОбъектовКлиент/Module.bsl b/SSL/src/CommonModules/ВерсионированиеОбъектовКлиент/Module.bsl index 65453d706..06fc49b91 100644 --- a/SSL/src/CommonModules/ВерсионированиеОбъектовКлиент/Module.bsl +++ b/SSL/src/CommonModules/ВерсионированиеОбъектовКлиент/Module.bsl @@ -1,5 +1,5 @@ /////////////////////////////////////////////////////////////////////////////////////////////////////// -// Copyright (c) 2024, ООО 1С-Софт +// Copyright (c) 2025, ООО 1С-Софт // Все права защищены. Эта программа и сопроводительные материалы предоставляются // в соответствии с условиями лицензии Attribution 4.0 International (CC BY 4.0) // Текст лицензии доступен по ссылке: diff --git a/SSL/src/CommonModules/ВерсионированиеОбъектовПереопределяемый/Module.bsl b/SSL/src/CommonModules/ВерсионированиеОбъектовПереопределяемый/Module.bsl index 3abe04a68..48fdb117a 100644 --- a/SSL/src/CommonModules/ВерсионированиеОбъектовПереопределяемый/Module.bsl +++ b/SSL/src/CommonModules/ВерсионированиеОбъектовПереопределяемый/Module.bsl @@ -1,5 +1,5 @@ /////////////////////////////////////////////////////////////////////////////////////////////////////// -// Copyright (c) 2024, ООО 1С-Софт +// Copyright (c) 2025, ООО 1С-Софт // Все права защищены. Эта программа и сопроводительные материалы предоставляются // в соответствии с условиями лицензии Attribution 4.0 International (CC BY 4.0) // Текст лицензии доступен по ссылке: diff --git a/SSL/src/CommonModules/ВерсионированиеОбъектовСлужебныйВызовСервера/Module.bsl b/SSL/src/CommonModules/ВерсионированиеОбъектовСлужебныйВызовСервера/Module.bsl index 6df15be8c..6ea020021 100644 --- a/SSL/src/CommonModules/ВерсионированиеОбъектовСлужебныйВызовСервера/Module.bsl +++ b/SSL/src/CommonModules/ВерсионированиеОбъектовСлужебныйВызовСервера/Module.bsl @@ -1,5 +1,5 @@ /////////////////////////////////////////////////////////////////////////////////////////////////////// -// Copyright (c) 2024, ООО 1С-Софт +// Copyright (c) 2025, ООО 1С-Софт // Все права защищены. Эта программа и сопроводительные материалы предоставляются // в соответствии с условиями лицензии Attribution 4.0 International (CC BY 4.0) // Текст лицензии доступен по ссылке: diff --git a/SSL/src/CommonModules/ВерсионированиеОбъектовСобытия/Module.bsl b/SSL/src/CommonModules/ВерсионированиеОбъектовСобытия/Module.bsl index 9c833cf28..e13fbadb1 100644 --- a/SSL/src/CommonModules/ВерсионированиеОбъектовСобытия/Module.bsl +++ b/SSL/src/CommonModules/ВерсионированиеОбъектовСобытия/Module.bsl @@ -1,5 +1,5 @@ /////////////////////////////////////////////////////////////////////////////////////////////////////// -// Copyright (c) 2024, ООО 1С-Софт +// Copyright (c) 2025, ООО 1С-Софт // Все права защищены. Эта программа и сопроводительные материалы предоставляются // в соответствии с условиями лицензии Attribution 4.0 International (CC BY 4.0) // Текст лицензии доступен по ссылке: diff --git a/SSL/src/CommonModules/Взаимодействия/Module.bsl b/SSL/src/CommonModules/Взаимодействия/Module.bsl index ad0712b7e..b4fffe25d 100644 --- a/SSL/src/CommonModules/Взаимодействия/Module.bsl +++ b/SSL/src/CommonModules/Взаимодействия/Module.bsl @@ -1,5 +1,5 @@ /////////////////////////////////////////////////////////////////////////////////////////////////////// -// Copyright (c) 2024, ООО 1С-Софт +// Copyright (c) 2025, ООО 1С-Софт // Все права защищены. Эта программа и сопроводительные материалы предоставляются // в соответствии с условиями лицензии Attribution 4.0 International (CC BY 4.0) // Текст лицензии доступен по ссылке: @@ -738,7 +738,7 @@ ШаблонТекстаСообщения = НСтр("ru = 'Не удалось отправить письмо по причине: |%1'"); - ТекстОшибки = РаботаСПочтовымиСообщениями.РасширенноеПредставлениеОшибки(ИнформацияОбОшибке, ОбщегоНазначения.КодОсновногоЯзыка()); + ТекстОшибки = РаботаСПочтовымиСообщениями.РасширенноеПредставлениеОшибки(ИнформацияОбОшибке, ОбщегоНазначения.КодОсновногоЯзыка(), , УчетнаяЗапись); ЗаписьЖурналаРегистрации(ОбновлениеИнформационнойБазы.СобытиеЖурналаРегистрации(), УровеньЖурналаРегистрации.Ошибка,, Письмо, СтроковыеФункцииКлиентСервер.ПодставитьПараметрыВСтроку(ШаблонТекстаСообщения, ТекстОшибки)); @@ -5591,7 +5591,8 @@ // Отправка вне транзакции. НомераДляОтправки = ТаблицаАдресатовСообщения.ВыгрузитьКолонку("НомерДляОтправки"); Попытка - РезультатОтправки = ОтправкаSMS.ОтправитьSMS(НомераДляОтправки, ТекстСообщения, "", ОтправлятьВТранслите); + РезультатОтправки = ОтправкаSMS.ОтправитьSMS(НомераДляОтправки, ТекстСообщения, Неопределено, + ОтправлятьВТранслите); Исключение ТекстСообщения = СтроковыеФункцииКлиентСервер.ПодставитьПараметрыВСтроку( НСтр("ru = 'Не удалось отправить %1 по причине: @@ -5607,7 +5608,7 @@ ТекстСообщения = СтроковыеФункцииКлиентСервер.ПодставитьПараметрыВСтроку( НСтр("ru = 'Не удалось отправить %1 по причине: |%2'"), - РезультатОтправки.ОписаниеОшибки); + ВыборкаДокументы.Ссылка, РезультатОтправки.ОписаниеОшибки); ЗаписьЖурналаРегистрации(УправлениеЭлектроннойПочтой.СобытиеЖурналаРегистрации(), УровеньЖурналаРегистрации.Ошибка, МетаданныеДокумента, ВыборкаДокументы.Ссылка, ТекстСообщения); @@ -9048,8 +9049,6 @@ Процедура ПриОпределенииМетодовРазрешенныхДляВызоваКакПроизвольныйКод(Методы) Экспорт Методы.Вставить("ОтключитьПодсистемуВМоделиСервиса"); - Методы.Вставить("ОбновлениеСтатусовДоставкиSMS", Истина); - Методы.Вставить("ОтправитьSMS", Истина); КонецПроцедуры diff --git a/SSL/src/CommonModules/ВзаимодействияВызовСервера/Module.bsl b/SSL/src/CommonModules/ВзаимодействияВызовСервера/Module.bsl index dc72efb39..3c810ff12 100644 --- a/SSL/src/CommonModules/ВзаимодействияВызовСервера/Module.bsl +++ b/SSL/src/CommonModules/ВзаимодействияВызовСервера/Module.bsl @@ -1,5 +1,5 @@ /////////////////////////////////////////////////////////////////////////////////////////////////////// -// Copyright (c) 2024, ООО 1С-Софт +// Copyright (c) 2025, ООО 1С-Софт // Все права защищены. Эта программа и сопроводительные материалы предоставляются // в соответствии с условиями лицензии Attribution 4.0 International (CC BY 4.0) // Текст лицензии доступен по ссылке: diff --git a/SSL/src/CommonModules/ВзаимодействияКлиент/Module.bsl b/SSL/src/CommonModules/ВзаимодействияКлиент/Module.bsl index 5d0a2dd5c..79fd2f57b 100644 --- a/SSL/src/CommonModules/ВзаимодействияКлиент/Module.bsl +++ b/SSL/src/CommonModules/ВзаимодействияКлиент/Module.bsl @@ -1,5 +1,5 @@ /////////////////////////////////////////////////////////////////////////////////////////////////////// -// Copyright (c) 2024, ООО 1С-Софт +// Copyright (c) 2025, ООО 1С-Софт // Все права защищены. Эта программа и сопроводительные материалы предоставляются // в соответствии с условиями лицензии Attribution 4.0 International (CC BY 4.0) // Текст лицензии доступен по ссылке: diff --git a/SSL/src/CommonModules/ВзаимодействияКлиентПереопределяемый/Module.bsl b/SSL/src/CommonModules/ВзаимодействияКлиентПереопределяемый/Module.bsl index 6ead3b63e..db0266493 100644 --- a/SSL/src/CommonModules/ВзаимодействияКлиентПереопределяемый/Module.bsl +++ b/SSL/src/CommonModules/ВзаимодействияКлиентПереопределяемый/Module.bsl @@ -1,5 +1,5 @@ /////////////////////////////////////////////////////////////////////////////////////////////////////// -// Copyright (c) 2024, ООО 1С-Софт +// Copyright (c) 2025, ООО 1С-Софт // Все права защищены. Эта программа и сопроводительные материалы предоставляются // в соответствии с условиями лицензии Attribution 4.0 International (CC BY 4.0) // Текст лицензии доступен по ссылке: diff --git a/SSL/src/CommonModules/ВзаимодействияКлиентСервер/Module.bsl b/SSL/src/CommonModules/ВзаимодействияКлиентСервер/Module.bsl index 44521b803..fe55468f6 100644 --- a/SSL/src/CommonModules/ВзаимодействияКлиентСервер/Module.bsl +++ b/SSL/src/CommonModules/ВзаимодействияКлиентСервер/Module.bsl @@ -1,5 +1,5 @@ /////////////////////////////////////////////////////////////////////////////////////////////////////// -// Copyright (c) 2024, ООО 1С-Софт +// Copyright (c) 2025, ООО 1С-Софт // Все права защищены. Эта программа и сопроводительные материалы предоставляются // в соответствии с условиями лицензии Attribution 4.0 International (CC BY 4.0) // Текст лицензии доступен по ссылке: diff --git a/SSL/src/CommonModules/ВзаимодействияКлиентСерверПереопределяемый/Module.bsl b/SSL/src/CommonModules/ВзаимодействияКлиентСерверПереопределяемый/Module.bsl index e7ce84fa3..a927d7c4d 100644 --- a/SSL/src/CommonModules/ВзаимодействияКлиентСерверПереопределяемый/Module.bsl +++ b/SSL/src/CommonModules/ВзаимодействияКлиентСерверПереопределяемый/Module.bsl @@ -1,5 +1,5 @@ /////////////////////////////////////////////////////////////////////////////////////////////////////// -// Copyright (c) 2024, ООО 1С-Софт +// Copyright (c) 2025, ООО 1С-Софт // Все права защищены. Эта программа и сопроводительные материалы предоставляются // в соответствии с условиями лицензии Attribution 4.0 International (CC BY 4.0) // Текст лицензии доступен по ссылке: diff --git a/SSL/src/CommonModules/ВзаимодействияКлиентСерверСлужебныйПовтИсп/Module.bsl b/SSL/src/CommonModules/ВзаимодействияКлиентСерверСлужебныйПовтИсп/Module.bsl index 37f87be62..23f19f051 100644 --- a/SSL/src/CommonModules/ВзаимодействияКлиентСерверСлужебныйПовтИсп/Module.bsl +++ b/SSL/src/CommonModules/ВзаимодействияКлиентСерверСлужебныйПовтИсп/Module.bsl @@ -1,5 +1,5 @@ /////////////////////////////////////////////////////////////////////////////////////////////////////// -// Copyright (c) 2024, ООО 1С-Софт +// Copyright (c) 2025, ООО 1С-Софт // Все права защищены. Эта программа и сопроводительные материалы предоставляются // в соответствии с условиями лицензии Attribution 4.0 International (CC BY 4.0) // Текст лицензии доступен по ссылке: diff --git a/SSL/src/CommonModules/ВзаимодействияЛокализация/Module.bsl b/SSL/src/CommonModules/ВзаимодействияЛокализация/Module.bsl index c2ad2a749..c10eb9d58 100644 --- a/SSL/src/CommonModules/ВзаимодействияЛокализация/Module.bsl +++ b/SSL/src/CommonModules/ВзаимодействияЛокализация/Module.bsl @@ -1,5 +1,5 @@ /////////////////////////////////////////////////////////////////////////////////////////////////////// -// Copyright (c) 2024, ООО 1С-Софт +// Copyright (c) 2025, ООО 1С-Софт // Все права защищены. Эта программа и сопроводительные материалы предоставляются // в соответствии с условиями лицензии Attribution 4.0 International (CC BY 4.0) // Текст лицензии доступен по ссылке: diff --git a/SSL/src/CommonModules/ВзаимодействияПереопределяемый/Module.bsl b/SSL/src/CommonModules/ВзаимодействияПереопределяемый/Module.bsl index 606f508c9..5d8182ee8 100644 --- a/SSL/src/CommonModules/ВзаимодействияПереопределяемый/Module.bsl +++ b/SSL/src/CommonModules/ВзаимодействияПереопределяемый/Module.bsl @@ -1,5 +1,5 @@ /////////////////////////////////////////////////////////////////////////////////////////////////////// -// Copyright (c) 2024, ООО 1С-Софт +// Copyright (c) 2025, ООО 1С-Софт // Все права защищены. Эта программа и сопроводительные материалы предоставляются // в соответствии с условиями лицензии Attribution 4.0 International (CC BY 4.0) // Текст лицензии доступен по ссылке: diff --git a/SSL/src/CommonModules/ВзаимодействияСобытия/Module.bsl b/SSL/src/CommonModules/ВзаимодействияСобытия/Module.bsl index 6d377bf06..f11f0a3af 100644 --- a/SSL/src/CommonModules/ВзаимодействияСобытия/Module.bsl +++ b/SSL/src/CommonModules/ВзаимодействияСобытия/Module.bsl @@ -1,5 +1,5 @@ /////////////////////////////////////////////////////////////////////////////////////////////////////// -// Copyright (c) 2024, ООО 1С-Софт +// Copyright (c) 2025, ООО 1С-Софт // Все права защищены. Эта программа и сопроводительные материалы предоставляются // в соответствии с условиями лицензии Attribution 4.0 International (CC BY 4.0) // Текст лицензии доступен по ссылке: diff --git a/SSL/src/CommonModules/ВнешниеКомпонентыВМоделиСервисаСлужебный/Module.bsl b/SSL/src/CommonModules/ВнешниеКомпонентыВМоделиСервисаСлужебный/Module.bsl index 327a420f5..cd62003e1 100644 --- a/SSL/src/CommonModules/ВнешниеКомпонентыВМоделиСервисаСлужебный/Module.bsl +++ b/SSL/src/CommonModules/ВнешниеКомпонентыВМоделиСервисаСлужебный/Module.bsl @@ -1,5 +1,5 @@ /////////////////////////////////////////////////////////////////////////////////////////////////////// -// Copyright (c) 2024, ООО 1С-Софт +// Copyright (c) 2025, ООО 1С-Софт // Все права защищены. Эта программа и сопроводительные материалы предоставляются // в соответствии с условиями лицензии Attribution 4.0 International (CC BY 4.0) // Текст лицензии доступен по ссылке: @@ -275,13 +275,4 @@ #КонецОбласти -#Область СлужебныеПроцедурыИФункции -// См. СтандартныеПодсистемыСервер.ПриОпределенииМетодовРазрешенныхДляВызоваКакПроизвольныйКод -Процедура ПриОпределенииМетодовРазрешенныхДляВызоваКакПроизвольныйКод(Методы) Экспорт - - Методы.Вставить("УдалениеНеиспользуемыхВнешнихКомпонент", Истина); - -КонецПроцедуры - -#КонецОбласти diff --git a/SSL/src/CommonModules/ВнешниеКомпонентыВМоделиСервисаСлужебныйКлиент/Module.bsl b/SSL/src/CommonModules/ВнешниеКомпонентыВМоделиСервисаСлужебныйКлиент/Module.bsl index 0f6bec041..92626aa1b 100644 --- a/SSL/src/CommonModules/ВнешниеКомпонентыВМоделиСервисаСлужебныйКлиент/Module.bsl +++ b/SSL/src/CommonModules/ВнешниеКомпонентыВМоделиСервисаСлужебныйКлиент/Module.bsl @@ -1,5 +1,5 @@ /////////////////////////////////////////////////////////////////////////////////////////////////////// -// Copyright (c) 2024, ООО 1С-Софт +// Copyright (c) 2025, ООО 1С-Софт // Все права защищены. Эта программа и сопроводительные материалы предоставляются // в соответствии с условиями лицензии Attribution 4.0 International (CC BY 4.0) // Текст лицензии доступен по ссылке: diff --git a/SSL/src/CommonModules/ВнешниеКомпонентыВызовСервера/Module.bsl b/SSL/src/CommonModules/ВнешниеКомпонентыВызовСервера/Module.bsl index 5eb4ad5dd..6471a789c 100644 --- a/SSL/src/CommonModules/ВнешниеКомпонентыВызовСервера/Module.bsl +++ b/SSL/src/CommonModules/ВнешниеКомпонентыВызовСервера/Module.bsl @@ -1,5 +1,5 @@ /////////////////////////////////////////////////////////////////////////////////////////////////////// -// Copyright (c) 2024, ООО 1С-Софт +// Copyright (c) 2025, ООО 1С-Софт // Все права защищены. Эта программа и сопроводительные материалы предоставляются // в соответствии с условиями лицензии Attribution 4.0 International (CC BY 4.0) // Текст лицензии доступен по ссылке: diff --git a/SSL/src/CommonModules/ВнешниеКомпонентыКлиент/Module.bsl b/SSL/src/CommonModules/ВнешниеКомпонентыКлиент/Module.bsl index 0ca92bc2f..6539786cb 100644 --- a/SSL/src/CommonModules/ВнешниеКомпонентыКлиент/Module.bsl +++ b/SSL/src/CommonModules/ВнешниеКомпонентыКлиент/Module.bsl @@ -1,5 +1,5 @@ /////////////////////////////////////////////////////////////////////////////////////////////////////// -// Copyright (c) 2024, ООО 1С-Софт +// Copyright (c) 2025, ООО 1С-Софт // Все права защищены. Эта программа и сопроводительные материалы предоставляются // в соответствии с условиями лицензии Attribution 4.0 International (CC BY 4.0) // Текст лицензии доступен по ссылке: diff --git a/SSL/src/CommonModules/ВнешниеКомпонентыКлиентЛокализация/Module.bsl b/SSL/src/CommonModules/ВнешниеКомпонентыКлиентЛокализация/Module.bsl index 287638ad4..222245668 100644 --- a/SSL/src/CommonModules/ВнешниеКомпонентыКлиентЛокализация/Module.bsl +++ b/SSL/src/CommonModules/ВнешниеКомпонентыКлиентЛокализация/Module.bsl @@ -1,5 +1,5 @@ /////////////////////////////////////////////////////////////////////////////////////////////////////// -// Copyright (c) 2024, ООО 1С-Софт +// Copyright (c) 2025, ООО 1С-Софт // Все права защищены. Эта программа и сопроводительные материалы предоставляются // в соответствии с условиями лицензии Attribution 4.0 International (CC BY 4.0) // Текст лицензии доступен по ссылке: diff --git a/SSL/src/CommonModules/ВнешниеКомпонентыСервер/Module.bsl b/SSL/src/CommonModules/ВнешниеКомпонентыСервер/Module.bsl index df752ce75..3fa751564 100644 --- a/SSL/src/CommonModules/ВнешниеКомпонентыСервер/Module.bsl +++ b/SSL/src/CommonModules/ВнешниеКомпонентыСервер/Module.bsl @@ -1,5 +1,5 @@ /////////////////////////////////////////////////////////////////////////////////////////////////////// -// Copyright (c) 2024, ООО 1С-Софт +// Copyright (c) 2025, ООО 1С-Софт // Все права защищены. Эта программа и сопроводительные материалы предоставляются // в соответствии с условиями лицензии Attribution 4.0 International (CC BY 4.0) // Текст лицензии доступен по ссылке: diff --git a/SSL/src/CommonModules/ВнешниеКомпонентыСлужебный/Module.bsl b/SSL/src/CommonModules/ВнешниеКомпонентыСлужебный/Module.bsl index 4e1d9bd84..8bf410aba 100644 --- a/SSL/src/CommonModules/ВнешниеКомпонентыСлужебный/Module.bsl +++ b/SSL/src/CommonModules/ВнешниеКомпонентыСлужебный/Module.bsl @@ -1,5 +1,5 @@ /////////////////////////////////////////////////////////////////////////////////////////////////////// -// Copyright (c) 2024, ООО 1С-Софт +// Copyright (c) 2025, ООО 1С-Софт // Все права защищены. Эта программа и сопроводительные материалы предоставляются // в соответствии с условиями лицензии Attribution 4.0 International (CC BY 4.0) // Текст лицензии доступен по ссылке: diff --git a/SSL/src/CommonModules/ВнешниеКомпонентыСлужебныйВызовСервера/Module.bsl b/SSL/src/CommonModules/ВнешниеКомпонентыСлужебныйВызовСервера/Module.bsl index a0ab83b7c..6ee4d9dd5 100644 --- a/SSL/src/CommonModules/ВнешниеКомпонентыСлужебныйВызовСервера/Module.bsl +++ b/SSL/src/CommonModules/ВнешниеКомпонентыСлужебныйВызовСервера/Module.bsl @@ -1,5 +1,5 @@ /////////////////////////////////////////////////////////////////////////////////////////////////////// -// Copyright (c) 2024, ООО 1С-Софт +// Copyright (c) 2025, ООО 1С-Софт // Все права защищены. Эта программа и сопроводительные материалы предоставляются // в соответствии с условиями лицензии Attribution 4.0 International (CC BY 4.0) // Текст лицензии доступен по ссылке: diff --git a/SSL/src/CommonModules/ВнешниеКомпонентыСлужебныйКлиент/Module.bsl b/SSL/src/CommonModules/ВнешниеКомпонентыСлужебныйКлиент/Module.bsl index ac4e4ce0f..cc195fec7 100644 --- a/SSL/src/CommonModules/ВнешниеКомпонентыСлужебныйКлиент/Module.bsl +++ b/SSL/src/CommonModules/ВнешниеКомпонентыСлужебныйКлиент/Module.bsl @@ -1,5 +1,5 @@ /////////////////////////////////////////////////////////////////////////////////////////////////////// -// Copyright (c) 2024, ООО 1С-Софт +// Copyright (c) 2025, ООО 1С-Софт // Все права защищены. Эта программа и сопроводительные материалы предоставляются // в соответствии с условиями лицензии Attribution 4.0 International (CC BY 4.0) // Текст лицензии доступен по ссылке: @@ -44,7 +44,9 @@ Информация = ВнешниеКомпонентыСлужебныйВызовСервера.ИнформацияОСохраненнойКомпоненте( Контекст.Идентификатор, Контекст.Версия, ПутьКМакетуДляПоискаПоследнейВерсии); - Контекст.Версия = Информация.Реквизиты.Версия; + Если Не ЗначениеЗаполнено(Контекст.Версия) Тогда + Контекст.Версия = Информация.Реквизиты.Версия; + КонецЕсли; Контекст.Местоположение = Информация.Местоположение; // Информация.Состояние: diff --git a/SSL/src/CommonModules/ВнешниеПользователи/Module.bsl b/SSL/src/CommonModules/ВнешниеПользователи/Module.bsl index 9f88af9df..9f4b4488c 100644 --- a/SSL/src/CommonModules/ВнешниеПользователи/Module.bsl +++ b/SSL/src/CommonModules/ВнешниеПользователи/Module.bsl @@ -1,5 +1,5 @@ /////////////////////////////////////////////////////////////////////////////////////////////////////// -// Copyright (c) 2024, ООО 1С-Софт +// Copyright (c) 2025, ООО 1С-Софт // Все права защищены. Эта программа и сопроводительные материалы предоставляются // в соответствии с условиями лицензии Attribution 4.0 International (CC BY 4.0) // Текст лицензии доступен по ссылке: diff --git a/SSL/src/CommonModules/ВнешниеПользователиКлиент/Module.bsl b/SSL/src/CommonModules/ВнешниеПользователиКлиент/Module.bsl index 6a8e0f4e3..ac93be373 100644 --- a/SSL/src/CommonModules/ВнешниеПользователиКлиент/Module.bsl +++ b/SSL/src/CommonModules/ВнешниеПользователиКлиент/Module.bsl @@ -1,5 +1,5 @@ /////////////////////////////////////////////////////////////////////////////////////////////////////// -// Copyright (c) 2024, ООО 1С-Софт +// Copyright (c) 2025, ООО 1С-Софт // Все права защищены. Эта программа и сопроводительные материалы предоставляются // в соответствии с условиями лицензии Attribution 4.0 International (CC BY 4.0) // Текст лицензии доступен по ссылке: diff --git a/SSL/src/CommonModules/ВыгрузкаОбъектовВФайлы/Module.bsl b/SSL/src/CommonModules/ВыгрузкаОбъектовВФайлы/Module.bsl index f354eaca5..facbae8cb 100644 --- a/SSL/src/CommonModules/ВыгрузкаОбъектовВФайлы/Module.bsl +++ b/SSL/src/CommonModules/ВыгрузкаОбъектовВФайлы/Module.bsl @@ -1,5 +1,5 @@ /////////////////////////////////////////////////////////////////////////////////////////////////////// -// Copyright (c) 2024, ООО 1С-Софт +// Copyright (c) 2025, ООО 1С-Софт // Все права защищены. Эта программа и сопроводительные материалы предоставляются // в соответствии с условиями лицензии Attribution 4.0 International (CC BY 4.0) // Текст лицензии доступен по ссылке: @@ -2087,11 +2087,44 @@ КонецЦикла; + АктуализироватьОбластиУсловий(ТаблицаОбластей); ТаблицаОбластей.Сортировать("Верх, Низ Убыв, Приоритет"); + Возврат ТаблицаОбластей; КонецФункции +Процедура АктуализироватьОбластиУсловий(ТаблицаОбластей) + + ТаблицаОбластей.Сортировать("Верх, Низ Убыв, Приоритет"); + + Для Каждого Область Из ТаблицаОбластей Цикл + + Если НЕ Область.ЭтоОбластьУсловияВывода Тогда + Продолжить; + КонецЕсли; + + Отбор = Новый Структура; + Отбор.Вставить("ЭтоОбластьУсловияВывода", Истина); + Отбор.Вставить("ПараметрРасшифровки", Область.ПараметрРасшифровки); + НайденныеСтроки = ТаблицаОбластей.НайтиСтроки(Отбор); + Для Каждого ТекущаяСтрока Из НайденныеСтроки Цикл + + Если Область.Низ <= ТекущаяСтрока.Низ + И Область.Верх > ТекущаяСтрока.Верх Тогда + + Область.ЭтоОбластьУсловияВывода = Ложь; + Область.Приоритет = 0; + Прервать; + + КонецЕсли; + + КонецЦикла; + + КонецЦикла; + +КонецПроцедуры + Процедура ДополнитьТаблицуОбластейДаннымиТаблицы(Макет, ТаблицаОбластей, ТаблицыМакета) МассивОбработанных = Новый Массив; diff --git a/SSL/src/CommonModules/ВыгрузкаОбъектовВФайлыСлужебныйКлиент/Module.bsl b/SSL/src/CommonModules/ВыгрузкаОбъектовВФайлыСлужебныйКлиент/Module.bsl index 8f7b1dd5c..b55a13856 100644 --- a/SSL/src/CommonModules/ВыгрузкаОбъектовВФайлыСлужебныйКлиент/Module.bsl +++ b/SSL/src/CommonModules/ВыгрузкаОбъектовВФайлыСлужебныйКлиент/Module.bsl @@ -1,5 +1,5 @@ /////////////////////////////////////////////////////////////////////////////////////////////////////// -// Copyright (c) 2024, ООО 1С-Софт +// Copyright (c) 2025, ООО 1С-Софт // Все права защищены. Эта программа и сопроводительные материалы предоставляются // в соответствии с условиями лицензии Attribution 4.0 International (CC BY 4.0) // Текст лицензии доступен по ссылке: diff --git a/SSL/src/CommonModules/ГенерацияШтрихкода/Module.bsl b/SSL/src/CommonModules/ГенерацияШтрихкода/Module.bsl index 29e1fe84b..d90e52424 100644 --- a/SSL/src/CommonModules/ГенерацияШтрихкода/Module.bsl +++ b/SSL/src/CommonModules/ГенерацияШтрихкода/Module.bsl @@ -1,5 +1,5 @@ /////////////////////////////////////////////////////////////////////////////////////////////////////// -// Copyright (c) 2024, ООО 1С-Софт +// Copyright (c) 2025, ООО 1С-Софт // Все права защищены. Эта программа и сопроводительные материалы предоставляются // в соответствии с условиями лицензии Attribution 4.0 International (CC BY 4.0) // Текст лицензии доступен по ссылке: diff --git a/SSL/src/CommonModules/ГенерацияШтрихкодаСерверПовтИсп/Module.bsl b/SSL/src/CommonModules/ГенерацияШтрихкодаСерверПовтИсп/Module.bsl index 894a113bc..79e6883eb 100644 --- a/SSL/src/CommonModules/ГенерацияШтрихкодаСерверПовтИсп/Module.bsl +++ b/SSL/src/CommonModules/ГенерацияШтрихкодаСерверПовтИсп/Module.bsl @@ -1,5 +1,5 @@ /////////////////////////////////////////////////////////////////////////////////////////////////////// -// Copyright (c) 2024, ООО 1С-Софт +// Copyright (c) 2025, ООО 1С-Софт // Все права защищены. Эта программа и сопроводительные материалы предоставляются // в соответствии с условиями лицензии Attribution 4.0 International (CC BY 4.0) // Текст лицензии доступен по ссылке: diff --git a/SSL/src/CommonModules/ГрафикиРаботы/Module.bsl b/SSL/src/CommonModules/ГрафикиРаботы/Module.bsl index 47042e894..41d627977 100644 --- a/SSL/src/CommonModules/ГрафикиРаботы/Module.bsl +++ b/SSL/src/CommonModules/ГрафикиРаботы/Module.bsl @@ -1,5 +1,5 @@ /////////////////////////////////////////////////////////////////////////////////////////////////////// -// Copyright (c) 2024, ООО 1С-Софт +// Copyright (c) 2025, ООО 1С-Софт // Все права защищены. Эта программа и сопроводительные материалы предоставляются // в соответствии с условиями лицензии Attribution 4.0 International (CC BY 4.0) // Текст лицензии доступен по ссылке: diff --git a/SSL/src/CommonModules/ГрафикиРаботыКлиент/Module.bsl b/SSL/src/CommonModules/ГрафикиРаботыКлиент/Module.bsl index 94c92df37..d43b0fc81 100644 --- a/SSL/src/CommonModules/ГрафикиРаботыКлиент/Module.bsl +++ b/SSL/src/CommonModules/ГрафикиРаботыКлиент/Module.bsl @@ -1,5 +1,5 @@ /////////////////////////////////////////////////////////////////////////////////////////////////////// -// Copyright (c) 2024, ООО 1С-Софт +// Copyright (c) 2025, ООО 1С-Софт // Все права защищены. Эта программа и сопроводительные материалы предоставляются // в соответствии с условиями лицензии Attribution 4.0 International (CC BY 4.0) // Текст лицензии доступен по ссылке: diff --git a/SSL/src/CommonModules/ГрупповоеИзменениеОбъектов/Module.bsl b/SSL/src/CommonModules/ГрупповоеИзменениеОбъектов/Module.bsl index f1ef9838d..618837947 100644 --- a/SSL/src/CommonModules/ГрупповоеИзменениеОбъектов/Module.bsl +++ b/SSL/src/CommonModules/ГрупповоеИзменениеОбъектов/Module.bsl @@ -1,5 +1,5 @@ /////////////////////////////////////////////////////////////////////////////////////////////////////// -// Copyright (c) 2024, ООО 1С-Софт +// Copyright (c) 2025, ООО 1С-Софт // Все права защищены. Эта программа и сопроводительные материалы предоставляются // в соответствии с условиями лицензии Attribution 4.0 International (CC BY 4.0) // Текст лицензии доступен по ссылке: diff --git a/SSL/src/CommonModules/ГрупповоеИзменениеОбъектовКлиент/Module.bsl b/SSL/src/CommonModules/ГрупповоеИзменениеОбъектовКлиент/Module.bsl index aad673c03..0e05e16fa 100644 --- a/SSL/src/CommonModules/ГрупповоеИзменениеОбъектовКлиент/Module.bsl +++ b/SSL/src/CommonModules/ГрупповоеИзменениеОбъектовКлиент/Module.bsl @@ -1,5 +1,5 @@ /////////////////////////////////////////////////////////////////////////////////////////////////////// -// Copyright (c) 2024, ООО 1С-Софт +// Copyright (c) 2025, ООО 1С-Софт // Все права защищены. Эта программа и сопроводительные материалы предоставляются // в соответствии с условиями лицензии Attribution 4.0 International (CC BY 4.0) // Текст лицензии доступен по ссылке: diff --git a/SSL/src/CommonModules/ГрупповоеИзменениеОбъектовПереопределяемый/Module.bsl b/SSL/src/CommonModules/ГрупповоеИзменениеОбъектовПереопределяемый/Module.bsl index 3d48e8b01..71903a864 100644 --- a/SSL/src/CommonModules/ГрупповоеИзменениеОбъектовПереопределяемый/Module.bsl +++ b/SSL/src/CommonModules/ГрупповоеИзменениеОбъектовПереопределяемый/Module.bsl @@ -1,5 +1,5 @@ /////////////////////////////////////////////////////////////////////////////////////////////////////// -// Copyright (c) 2024, ООО 1С-Софт +// Copyright (c) 2025, ООО 1С-Софт // Все права защищены. Эта программа и сопроводительные материалы предоставляются // в соответствии с условиями лицензии Attribution 4.0 International (CC BY 4.0) // Текст лицензии доступен по ссылке: diff --git a/SSL/src/CommonModules/ДатыЗапретаИзменения/Module.bsl b/SSL/src/CommonModules/ДатыЗапретаИзменения/Module.bsl index 215a85c1c..10d79084b 100644 --- a/SSL/src/CommonModules/ДатыЗапретаИзменения/Module.bsl +++ b/SSL/src/CommonModules/ДатыЗапретаИзменения/Module.bsl @@ -1,5 +1,5 @@ /////////////////////////////////////////////////////////////////////////////////////////////////////// -// Copyright (c) 2024, ООО 1С-Софт +// Copyright (c) 2025, ООО 1С-Софт // Все права защищены. Эта программа и сопроводительные материалы предоставляются // в соответствии с условиями лицензии Attribution 4.0 International (CC BY 4.0) // Текст лицензии доступен по ссылке: diff --git a/SSL/src/CommonModules/ДатыЗапретаИзмененияПереопределяемый/Module.bsl b/SSL/src/CommonModules/ДатыЗапретаИзмененияПереопределяемый/Module.bsl index d8246f467..c40367c8b 100644 --- a/SSL/src/CommonModules/ДатыЗапретаИзмененияПереопределяемый/Module.bsl +++ b/SSL/src/CommonModules/ДатыЗапретаИзмененияПереопределяемый/Module.bsl @@ -1,5 +1,5 @@ /////////////////////////////////////////////////////////////////////////////////////////////////////// -// Copyright (c) 2024, ООО 1С-Софт +// Copyright (c) 2025, ООО 1С-Софт // Все права защищены. Эта программа и сопроводительные материалы предоставляются // в соответствии с условиями лицензии Attribution 4.0 International (CC BY 4.0) // Текст лицензии доступен по ссылке: diff --git a/SSL/src/CommonModules/ДатыЗапретаИзмененияСлужебный/Module.bsl b/SSL/src/CommonModules/ДатыЗапретаИзмененияСлужебный/Module.bsl index 6a44b1dda..8860aee17 100644 --- a/SSL/src/CommonModules/ДатыЗапретаИзмененияСлужебный/Module.bsl +++ b/SSL/src/CommonModules/ДатыЗапретаИзмененияСлужебный/Module.bsl @@ -1,5 +1,5 @@ /////////////////////////////////////////////////////////////////////////////////////////////////////// -// Copyright (c) 2024, ООО 1С-Софт +// Copyright (c) 2025, ООО 1С-Софт // Все права защищены. Эта программа и сопроводительные материалы предоставляются // в соответствии с условиями лицензии Attribution 4.0 International (CC BY 4.0) // Текст лицензии доступен по ссылке: diff --git a/SSL/src/CommonModules/ДатыЗапретаИзмененияСлужебныйКлиент/Module.bsl b/SSL/src/CommonModules/ДатыЗапретаИзмененияСлужебныйКлиент/Module.bsl index cb46e57dc..e9eeeef3f 100644 --- a/SSL/src/CommonModules/ДатыЗапретаИзмененияСлужебныйКлиент/Module.bsl +++ b/SSL/src/CommonModules/ДатыЗапретаИзмененияСлужебныйКлиент/Module.bsl @@ -1,5 +1,5 @@ /////////////////////////////////////////////////////////////////////////////////////////////////////// -// Copyright (c) 2024, ООО 1С-Софт +// Copyright (c) 2025, ООО 1С-Софт // Все права защищены. Эта программа и сопроводительные материалы предоставляются // в соответствии с условиями лицензии Attribution 4.0 International (CC BY 4.0) // Текст лицензии доступен по ссылке: diff --git a/SSL/src/CommonModules/ДатыЗапретаИзмененияСлужебныйКлиентСервер/Module.bsl b/SSL/src/CommonModules/ДатыЗапретаИзмененияСлужебныйКлиентСервер/Module.bsl index 097168965..3fb414754 100644 --- a/SSL/src/CommonModules/ДатыЗапретаИзмененияСлужебныйКлиентСервер/Module.bsl +++ b/SSL/src/CommonModules/ДатыЗапретаИзмененияСлужебныйКлиентСервер/Module.bsl @@ -1,5 +1,5 @@ /////////////////////////////////////////////////////////////////////////////////////////////////////// -// Copyright (c) 2024, ООО 1С-Софт +// Copyright (c) 2025, ООО 1С-Софт // Все права защищены. Эта программа и сопроводительные материалы предоставляются // в соответствии с условиями лицензии Attribution 4.0 International (CC BY 4.0) // Текст лицензии доступен по ссылке: diff --git a/SSL/src/CommonModules/ДатыЗапретаИзмененияСлужебныйПовтИсп/Module.bsl b/SSL/src/CommonModules/ДатыЗапретаИзмененияСлужебныйПовтИсп/Module.bsl index 10a1c4e5b..cd6d3335a 100644 --- a/SSL/src/CommonModules/ДатыЗапретаИзмененияСлужебныйПовтИсп/Module.bsl +++ b/SSL/src/CommonModules/ДатыЗапретаИзмененияСлужебныйПовтИсп/Module.bsl @@ -1,5 +1,5 @@ /////////////////////////////////////////////////////////////////////////////////////////////////////// -// Copyright (c) 2024, ООО 1С-Софт +// Copyright (c) 2025, ООО 1С-Софт // Все права защищены. Эта программа и сопроводительные материалы предоставляются // в соответствии с условиями лицензии Attribution 4.0 International (CC BY 4.0) // Текст лицензии доступен по ссылке: diff --git a/SSL/src/CommonModules/ДлительныеОперации/Module.bsl b/SSL/src/CommonModules/ДлительныеОперации/Module.bsl index 3b84f6572..cf9e26136 100644 --- a/SSL/src/CommonModules/ДлительныеОперации/Module.bsl +++ b/SSL/src/CommonModules/ДлительныеОперации/Module.bsl @@ -1,5 +1,5 @@ /////////////////////////////////////////////////////////////////////////////////////////////////////// -// Copyright (c) 2024, ООО 1С-Софт +// Copyright (c) 2025, ООО 1С-Софт // Все права защищены. Эта программа и сопроводительные материалы предоставляются // в соответствии с условиями лицензии Attribution 4.0 International (CC BY 4.0) // Текст лицензии доступен по ссылке: @@ -1495,31 +1495,91 @@ КонецПроцедуры +// Только для процедуры ПриПериодическомПолученииДанныхКлиентаНаСервере. +// // Параметры: // Параметры - см. ДлительныеОперацииКлиент.ПараметрыПроверкиДлительныхОпераций // // Возвращаемое значение: // Соответствие из КлючИЗначение: // * Ключ - УникальныйИдентификатор - идентификатор задания -// * Значение - см. ОперацияВыполнена +// * Значение - см. НовыйРезультатВыполненияОперации // Функция РезультатПроверкиДлительныхОпераций(Параметры) Экспорт Результат = Новый Соответствие; Для Каждого ИдентификаторЗадания Из Параметры.ЗаданияДляПроверки Цикл // @skip-check query-in-loop - ветка с запросом вызывается редко (только при перезапуске управляющего потока) - Результат.Вставить(ИдентификаторЗадания, ОперацияВыполнена(ИдентификаторЗадания)); + РезультатОперации = ОперацияВыполнена(ИдентификаторЗадания); + РезультатОперации.Сообщения = ОписаниеСообщенийПользователю(РезультатОперации.Сообщения); + Результат.Вставить(ИдентификаторЗадания, РезультатОперации); КонецЦикла; Для Каждого ИдентификаторЗадания Из Параметры.ЗаданияДляОтмены Цикл ОтменитьВыполнениеЗадания(ИдентификаторЗадания); - Результат.Вставить(ИдентификаторЗадания, Новый Структура("Статус", "Отменено")); + РезультатОперации = НовыйРезультатВыполненияОперации(); + РезультатОперации.Статус = "Отменено"; + Результат.Вставить(ИдентификаторЗадания, РезультатОперации); КонецЦикла; Возврат Результат; КонецФункции +// Для процедуры РезультатПроверкиДлительныхОпераций, и функции ПропуститьОповещение. +// +// Параметры: +// Сообщения - ФиксированныйМассив из СообщениеПользователю +// +// Возвращаемое значение: +// ФиксированныйМассив из см. ОписаниеСообщенияПользователю +// +Функция ОписаниеСообщенийПользователю(Сообщения) + + Если Не ЗначениеЗаполнено(Сообщения) Тогда + Возврат Сообщения; + КонецЕсли; + + Результат = Новый Массив; + Для Каждого Сообщение Из Сообщения Цикл + Результат.Добавить(ОписаниеСообщенияПользователю(Сообщение)); + КонецЦикла; + + Возврат Новый ФиксированныйМассив(Результат); + +КонецФункции + +// Преобразует СообщениеПользователю в структуру. +// +// Параметры: +// Сообщение - СообщениеПользователю +// +// Возвращаемое значение: +// Структура: +// * ИдентификаторНазначения - УникальныйИдентификатор +// * КлючДанных - ЛюбаяСсылка +// - РегистрСведенийКлючЗаписи +// - РегистрНакопленияКлючЗаписи +// - РегистрБухгалтерииКлючЗаписи +// - РегистрРасчетаКлючЗаписи +// * Поле - Строка +// * ПутьКДанным - Строка +// * Текст - Строка +// +Функция ОписаниеСообщенияПользователю(Сообщение) + + Результат = Новый Структура; + Результат.Вставить("ИдентификаторНазначения", Сообщение.ИдентификаторНазначения); + Результат.Вставить("КлючДанных", Сообщение.КлючДанных); + Результат.Вставить("Поле", Сообщение.Поле); + Результат.Вставить("ПутьКДанным", Сообщение.ПутьКДанным); + Результат.Вставить("Текст", + ОбщегоНазначенияКлиентСервер.ЗаменитьНедопустимыеСимволыXML(Сообщение.Текст)); + + Возврат Результат; + +КонецФункции + Функция ЗапуститьФоновоеЗаданиеСКонтекстомКлиента(ИмяПроцедуры, ПараметрыВыполнения, ПараметрыПроцедуры = Неопределено, БезопасныйРежим = Ложь, ОтправлятьОповещения = Ложь) @@ -1726,6 +1786,11 @@ УстановитьПолноеИмяПрикладнойПроцедуры(ИмяПроцедурыФоновогоЗаданияДлительнойОперации()); ОтправитьОповещениеКлиенту("ДлительнаяОперацияЗавершена", Результат); + Если ОбщегоНазначения.ПодсистемаСуществует("СтандартныеПодсистемы.УправлениеДоступом") Тогда + МодульУправлениеДоступом = ОбщегоНазначения.ОбщийМодуль("УправлениеДоступом"); + МодульУправлениеДоступом.ЗапуститьОбновлениеДоступа(); + КонецЕсли; + КонецПроцедуры Процедура ВызватьПроцедуру(ИмяПроцедуры, ПараметрыВызова, ПараметрыВыполнения) @@ -2004,6 +2069,10 @@ // Функция ПропуститьОповещение(Данные) Экспорт + Если Данные.ИмяОповещения <> ИмяОповещения() Тогда + Возврат Ложь; + КонецЕсли; + // Когда система взаимодействия не подключена // оповещение о завершении нужно пропускать, // так как оно требует дополнительного серверного @@ -2013,10 +2082,21 @@ // в рамках дополнительного контроля завершения активных операций // через функцию РезультатПроверкиДлительныхОпераций. - Возврат Данные.ИмяОповещения = ИмяОповещения() - И Данные.Результат.ВидОповещения = "ДлительнаяОперацияЗавершена" - И Не СерверныеОповещенияСлужебныйПовтИсп.УведомленияКлиентаДоступны() - И Не СерверныеОповещения.СистемаВзаимодействийПодключена(); + Если Данные.Результат.ВидОповещения = "ДлительнаяОперацияЗавершена" + И Не СерверныеОповещенияСлужебныйПовтИсп.УведомленияКлиентаДоступны() + И Не СерверныеОповещения.СистемаВзаимодействийПодключена() Тогда + + Возврат Истина; + КонецЕсли; + + Свойства = Новый Структура("ИдентификаторОповещения", Null); + ЗаполнитьЗначенияСвойств(Свойства, Данные); + Если Свойства.ИдентификаторОповещения <> Null Тогда + Данные.Результат.Результат.Сообщения = + ОписаниеСообщенийПользователю(Данные.Результат.Результат.Сообщения); + КонецЕсли; + + Возврат Ложь; КонецФункции @@ -2324,18 +2404,24 @@ Результат = ОбщиеПараметрыВыполненияВФоне(); - Если ЗначениеЗаполнено(ПереданныйПараметр) Тогда - Если ТипЗнч(ПереданныйПараметр) = Тип("Структура") Тогда + Если ТипЗнч(ПереданныйПараметр) = Тип("Структура") Тогда + Если ЗначениеЗаполнено(ПереданныйПараметр) Тогда Результат = ПереданныйПараметр; - ИначеЕсли ЭтоФункция = "Функция" Тогда - Идентификатор = Неопределено; - Если ТипЗнч(ПереданныйПараметр) = Тип("ФормаКлиентскогоПриложения") Тогда - Идентификатор = ПереданныйПараметр.УникальныйИдентификатор; - ИначеЕсли ТипЗнч(ПереданныйПараметр) = Тип("УникальныйИдентификатор") Тогда - Идентификатор = ПереданныйПараметр; - КонецЕсли; - ДобавитьПараметрыВыполненияДляВозвратаРезультата(Результат, Идентификатор); КонецЕсли; + + ИначеЕсли ЭтоФункция = "Функция" Тогда + Идентификатор = Неопределено; + + Если ТипЗнч(ПереданныйПараметр) = Тип("ФормаКлиентскогоПриложения") Тогда + Идентификатор = ПереданныйПараметр.УникальныйИдентификатор; + + ИначеЕсли ТипЗнч(ПереданныйПараметр) = Тип("УникальныйИдентификатор") + И ЗначениеЗаполнено(ПереданныйПараметр) Тогда + + Идентификатор = ПереданныйПараметр; + КонецЕсли; + + ДобавитьПараметрыВыполненияДляВозвратаРезультата(Результат, Идентификатор); КонецЕсли; Результат.ЭтоФункция = ЭтоФункция; @@ -3867,7 +3953,6 @@ Методы.Вставить("УстановкаПараметровСеанса"); Методы.Вставить("ВыполнитьМногопоточныйПроцесс", Истина); - Методы.Вставить("ВыполнитьСКонтекстомКлиента", Истина); Методы.Вставить("ВыполнитьПроцедуруМодуляОбъектаОбработки", Истина); Методы.Вставить("ВыполнитьПроцедуруМодуляОбъектаОтчета", Истина); diff --git a/SSL/src/CommonModules/ДлительныеОперацииВызовСервера/Module.bsl b/SSL/src/CommonModules/ДлительныеОперацииВызовСервера/Module.bsl index 6a2319e7e..604a5db26 100644 --- a/SSL/src/CommonModules/ДлительныеОперацииВызовСервера/Module.bsl +++ b/SSL/src/CommonModules/ДлительныеОперацииВызовСервера/Module.bsl @@ -1,5 +1,5 @@ /////////////////////////////////////////////////////////////////////////////////////////////////////// -// Copyright (c) 2024, ООО 1С-Софт +// Copyright (c) 2025, ООО 1С-Софт // Все права защищены. Эта программа и сопроводительные материалы предоставляются // в соответствии с условиями лицензии Attribution 4.0 International (CC BY 4.0) // Текст лицензии доступен по ссылке: diff --git a/SSL/src/CommonModules/ДлительныеОперацииКлиент/Module.bsl b/SSL/src/CommonModules/ДлительныеОперацииКлиент/Module.bsl index 68f9101ea..d0a4f18f6 100644 --- a/SSL/src/CommonModules/ДлительныеОперацииКлиент/Module.bsl +++ b/SSL/src/CommonModules/ДлительныеОперацииКлиент/Module.bsl @@ -1,5 +1,5 @@ /////////////////////////////////////////////////////////////////////////////////////////////////////// -// Copyright (c) 2024, ООО 1С-Софт +// Copyright (c) 2025, ООО 1С-Софт // Все права защищены. Эта программа и сопроводительные материалы предоставляются // в соответствии с условиями лицензии Attribution 4.0 International (CC BY 4.0) // Текст лицензии доступен по ссылке: @@ -184,8 +184,8 @@ // * ИнформацияОбОшибке - ИнформацияОбОшибке - если Статус = "Ошибка". // - Неопределено - если Статус <> "Ошибка". // -// * Сообщения - ФиксированныйМассив - массив объектов СообщениеПользователю, -// сформированных в процедуре-обработчике длительной операции. +// * Сообщения - ФиксированныйМассив из СообщениеПользователю - сообщения, +// сформированные в процедуре-обработчике длительной операции. // Массив будет пустым, когда в параметре ПараметрыОжидания // процедуры процедуры ДлительныеОперацииКлиент.ОжидатьЗавершение // свойство ВыводитьОкноОжидания = Ложь и @@ -478,12 +478,27 @@ КонецФункции +// Для процедур ПриПолученииСерверногоОповещения, ПослеПериодическогоПолученияДанныхКлиентаНаСервере. Процедура ОбработатьРезультатОперации(АктивныеДлительныеОперации, Операция, Результат) Если АктивныеДлительныеОперации.Получить(Операция.ИдентификаторЗадания) = Неопределено Тогда Возврат; КонецЕсли; + Если ЗначениеЗаполнено(Результат.Сообщения) Тогда + Сообщения = Новый Массив; + Для Каждого ОписаниеСообщения Из Результат.Сообщения Цикл + Если ТипЗнч(ОписаниеСообщения) = Тип("СообщениеПользователю") Тогда + Сообщение = ОписаниеСообщения; + Иначе + Сообщение = Новый СообщениеПользователю; + ЗаполнитьЗначенияСвойств(Сообщение, ОписаниеСообщения); + КонецЕсли; + Сообщения.Добавить(Сообщение); + КонецЦикла; + Результат.Сообщения = Новый ФиксированныйМассив(Сообщения); + КонецЕсли; + Попытка Если ОбработатьРезультатАктивнойОперации(Операция, Результат) Тогда АктивныеДлительныеОперации.Удалить(Операция.ИдентификаторЗадания); diff --git a/SSL/src/CommonModules/ДополнительныеОтчетыИОбработки/Module.bsl b/SSL/src/CommonModules/ДополнительныеОтчетыИОбработки/Module.bsl index 08e397fc1..28ee235fc 100644 --- a/SSL/src/CommonModules/ДополнительныеОтчетыИОбработки/Module.bsl +++ b/SSL/src/CommonModules/ДополнительныеОтчетыИОбработки/Module.bsl @@ -1,5 +1,5 @@ /////////////////////////////////////////////////////////////////////////////////////////////////////// -// Copyright (c) 2024, ООО 1С-Софт +// Copyright (c) 2025, ООО 1С-Софт // Все права защищены. Эта программа и сопроводительные материалы предоставляются // в соответствии с условиями лицензии Attribution 4.0 International (CC BY 4.0) // Текст лицензии доступен по ссылке: @@ -3436,7 +3436,6 @@ Методы.Вставить("УстановкаПараметровСеанса"); Методы.Вставить("ОбработчикКомандыЗаполнения"); Методы.Вставить("ВыполнитьКоманду", Истина); - Методы.Вставить("ВыполнитьОбработкуПоРегламентномуЗаданию", Истина); КонецПроцедуры diff --git a/SSL/src/CommonModules/ДополнительныеОтчетыИОбработкиВАвтономномРежиме/Module.bsl b/SSL/src/CommonModules/ДополнительныеОтчетыИОбработкиВАвтономномРежиме/Module.bsl index a5171b17d..9354a5186 100644 --- a/SSL/src/CommonModules/ДополнительныеОтчетыИОбработкиВАвтономномРежиме/Module.bsl +++ b/SSL/src/CommonModules/ДополнительныеОтчетыИОбработкиВАвтономномРежиме/Module.bsl @@ -1,5 +1,5 @@ /////////////////////////////////////////////////////////////////////////////////////////////////////// -// Copyright (c) 2024, ООО 1С-Софт +// Copyright (c) 2025, ООО 1С-Софт // Все права защищены. Эта программа и сопроводительные материалы предоставляются // в соответствии с условиями лицензии Attribution 4.0 International (CC BY 4.0) // Текст лицензии доступен по ссылке: diff --git a/SSL/src/CommonModules/ДополнительныеОтчетыИОбработкиВБезопасномРежимеСлужебный/Module.bsl b/SSL/src/CommonModules/ДополнительныеОтчетыИОбработкиВБезопасномРежимеСлужебный/Module.bsl index bedac69e2..ac3d55974 100644 --- a/SSL/src/CommonModules/ДополнительныеОтчетыИОбработкиВБезопасномРежимеСлужебный/Module.bsl +++ b/SSL/src/CommonModules/ДополнительныеОтчетыИОбработкиВБезопасномРежимеСлужебный/Module.bsl @@ -1,5 +1,5 @@ /////////////////////////////////////////////////////////////////////////////////////////////////////// -// Copyright (c) 2024, ООО 1С-Софт +// Copyright (c) 2025, ООО 1С-Софт // Все права защищены. Эта программа и сопроводительные материалы предоставляются // в соответствии с условиями лицензии Attribution 4.0 International (CC BY 4.0) // Текст лицензии доступен по ссылке: diff --git a/SSL/src/CommonModules/ДополнительныеОтчетыИОбработкиВМоделиСервиса/Module.bsl b/SSL/src/CommonModules/ДополнительныеОтчетыИОбработкиВМоделиСервиса/Module.bsl index ce0eed5ed..65b387594 100644 --- a/SSL/src/CommonModules/ДополнительныеОтчетыИОбработкиВМоделиСервиса/Module.bsl +++ b/SSL/src/CommonModules/ДополнительныеОтчетыИОбработкиВМоделиСервиса/Module.bsl @@ -1,5 +1,5 @@ /////////////////////////////////////////////////////////////////////////////////////////////////////// -// Copyright (c) 2024, ООО 1С-Софт +// Copyright (c) 2025, ООО 1С-Софт // Все права защищены. Эта программа и сопроводительные материалы предоставляются // в соответствии с условиями лицензии Attribution 4.0 International (CC BY 4.0) // Текст лицензии доступен по ссылке: diff --git a/SSL/src/CommonModules/ДополнительныеОтчетыИОбработкиВМоделиСервисаМанифест/Module.bsl b/SSL/src/CommonModules/ДополнительныеОтчетыИОбработкиВМоделиСервисаМанифест/Module.bsl index fc62dec86..8008dbbd4 100644 --- a/SSL/src/CommonModules/ДополнительныеОтчетыИОбработкиВМоделиСервисаМанифест/Module.bsl +++ b/SSL/src/CommonModules/ДополнительныеОтчетыИОбработкиВМоделиСервисаМанифест/Module.bsl @@ -1,5 +1,5 @@ /////////////////////////////////////////////////////////////////////////////////////////////////////// -// Copyright (c) 2024, ООО 1С-Софт +// Copyright (c) 2025, ООО 1С-Софт // Все права защищены. Эта программа и сопроводительные материалы предоставляются // в соответствии с условиями лицензии Attribution 4.0 International (CC BY 4.0) // Текст лицензии доступен по ссылке: diff --git a/SSL/src/CommonModules/ДополнительныеОтчетыИОбработкиВМоделиСервисаМанифестИнтерфейс/Module.bsl b/SSL/src/CommonModules/ДополнительныеОтчетыИОбработкиВМоделиСервисаМанифестИнтерфейс/Module.bsl index a67073348..99457ea16 100644 --- a/SSL/src/CommonModules/ДополнительныеОтчетыИОбработкиВМоделиСервисаМанифестИнтерфейс/Module.bsl +++ b/SSL/src/CommonModules/ДополнительныеОтчетыИОбработкиВМоделиСервисаМанифестИнтерфейс/Module.bsl @@ -1,5 +1,5 @@ /////////////////////////////////////////////////////////////////////////////////////////////////////// -// Copyright (c) 2024, ООО 1С-Софт +// Copyright (c) 2025, ООО 1С-Софт // Все права защищены. Эта программа и сопроводительные материалы предоставляются // в соответствии с условиями лицензии Attribution 4.0 International (CC BY 4.0) // Текст лицензии доступен по ссылке: diff --git a/SSL/src/CommonModules/ДополнительныеОтчетыИОбработкиВМоделиСервисаПовтИсп/Module.bsl b/SSL/src/CommonModules/ДополнительныеОтчетыИОбработкиВМоделиСервисаПовтИсп/Module.bsl index 49d59bb59..3c9f0394d 100644 --- a/SSL/src/CommonModules/ДополнительныеОтчетыИОбработкиВМоделиСервисаПовтИсп/Module.bsl +++ b/SSL/src/CommonModules/ДополнительныеОтчетыИОбработкиВМоделиСервисаПовтИсп/Module.bsl @@ -1,5 +1,5 @@ /////////////////////////////////////////////////////////////////////////////////////////////////////// -// Copyright (c) 2024, ООО 1С-Софт +// Copyright (c) 2025, ООО 1С-Софт // Все права защищены. Эта программа и сопроводительные материалы предоставляются // в соответствии с условиями лицензии Attribution 4.0 International (CC BY 4.0) // Текст лицензии доступен по ссылке: diff --git a/SSL/src/CommonModules/ДополнительныеОтчетыИОбработкиВызовСервера/Module.bsl b/SSL/src/CommonModules/ДополнительныеОтчетыИОбработкиВызовСервера/Module.bsl index 963e619be..3142fa75a 100644 --- a/SSL/src/CommonModules/ДополнительныеОтчетыИОбработкиВызовСервера/Module.bsl +++ b/SSL/src/CommonModules/ДополнительныеОтчетыИОбработкиВызовСервера/Module.bsl @@ -1,5 +1,5 @@ /////////////////////////////////////////////////////////////////////////////////////////////////////// -// Copyright (c) 2024, ООО 1С-Софт +// Copyright (c) 2025, ООО 1С-Софт // Все права защищены. Эта программа и сопроводительные материалы предоставляются // в соответствии с условиями лицензии Attribution 4.0 International (CC BY 4.0) // Текст лицензии доступен по ссылке: diff --git a/SSL/src/CommonModules/ДополнительныеОтчетыИОбработкиГлобальный/Module.bsl b/SSL/src/CommonModules/ДополнительныеОтчетыИОбработкиГлобальный/Module.bsl index 1a58a91a6..6d76be4cf 100644 --- a/SSL/src/CommonModules/ДополнительныеОтчетыИОбработкиГлобальный/Module.bsl +++ b/SSL/src/CommonModules/ДополнительныеОтчетыИОбработкиГлобальный/Module.bsl @@ -1,5 +1,5 @@ /////////////////////////////////////////////////////////////////////////////////////////////////////// -// Copyright (c) 2024, ООО 1С-Софт +// Copyright (c) 2025, ООО 1С-Софт // Все права защищены. Эта программа и сопроводительные материалы предоставляются // в соответствии с условиями лицензии Attribution 4.0 International (CC BY 4.0) // Текст лицензии доступен по ссылке: diff --git a/SSL/src/CommonModules/ДополнительныеОтчетыИОбработкиКлиент/Module.bsl b/SSL/src/CommonModules/ДополнительныеОтчетыИОбработкиКлиент/Module.bsl index 225ca1c0c..e68889fe4 100644 --- a/SSL/src/CommonModules/ДополнительныеОтчетыИОбработкиКлиент/Module.bsl +++ b/SSL/src/CommonModules/ДополнительныеОтчетыИОбработкиКлиент/Module.bsl @@ -1,5 +1,5 @@ /////////////////////////////////////////////////////////////////////////////////////////////////////// -// Copyright (c) 2024, ООО 1С-Софт +// Copyright (c) 2025, ООО 1С-Софт // Все права защищены. Эта программа и сопроводительные материалы предоставляются // в соответствии с условиями лицензии Attribution 4.0 International (CC BY 4.0) // Текст лицензии доступен по ссылке: diff --git a/SSL/src/CommonModules/ДополнительныеОтчетыИОбработкиКлиентПереопределяемый/Module.bsl b/SSL/src/CommonModules/ДополнительныеОтчетыИОбработкиКлиентПереопределяемый/Module.bsl index 1d4dbc1b1..05ce6577c 100644 --- a/SSL/src/CommonModules/ДополнительныеОтчетыИОбработкиКлиентПереопределяемый/Module.bsl +++ b/SSL/src/CommonModules/ДополнительныеОтчетыИОбработкиКлиентПереопределяемый/Module.bsl @@ -1,5 +1,5 @@ /////////////////////////////////////////////////////////////////////////////////////////////////////// -// Copyright (c) 2024, ООО 1С-Софт +// Copyright (c) 2025, ООО 1С-Софт // Все права защищены. Эта программа и сопроводительные материалы предоставляются // в соответствии с условиями лицензии Attribution 4.0 International (CC BY 4.0) // Текст лицензии доступен по ссылке: diff --git a/SSL/src/CommonModules/ДополнительныеОтчетыИОбработкиКлиентСервер/Module.bsl b/SSL/src/CommonModules/ДополнительныеОтчетыИОбработкиКлиентСервер/Module.bsl index 29c23dad3..1affe709c 100644 --- a/SSL/src/CommonModules/ДополнительныеОтчетыИОбработкиКлиентСервер/Module.bsl +++ b/SSL/src/CommonModules/ДополнительныеОтчетыИОбработкиКлиентСервер/Module.bsl @@ -1,5 +1,5 @@ /////////////////////////////////////////////////////////////////////////////////////////////////////// -// Copyright (c) 2024, ООО 1С-Софт +// Copyright (c) 2025, ООО 1С-Софт // Все права защищены. Эта программа и сопроводительные материалы предоставляются // в соответствии с условиями лицензии Attribution 4.0 International (CC BY 4.0) // Текст лицензии доступен по ссылке: diff --git a/SSL/src/CommonModules/ДополнительныеОтчетыИОбработкиПереопределяемый/Module.bsl b/SSL/src/CommonModules/ДополнительныеОтчетыИОбработкиПереопределяемый/Module.bsl index cbe604592..53ffd6161 100644 --- a/SSL/src/CommonModules/ДополнительныеОтчетыИОбработкиПереопределяемый/Module.bsl +++ b/SSL/src/CommonModules/ДополнительныеОтчетыИОбработкиПереопределяемый/Module.bsl @@ -1,5 +1,5 @@ /////////////////////////////////////////////////////////////////////////////////////////////////////// -// Copyright (c) 2024, ООО 1С-Софт +// Copyright (c) 2025, ООО 1С-Софт // Все права защищены. Эта программа и сопроводительные материалы предоставляются // в соответствии с условиями лицензии Attribution 4.0 International (CC BY 4.0) // Текст лицензии доступен по ссылке: diff --git a/SSL/src/CommonModules/ДополнительныеОтчетыИОбработкиПовтИсп/Module.bsl b/SSL/src/CommonModules/ДополнительныеОтчетыИОбработкиПовтИсп/Module.bsl index 29760262c..2f69c82a1 100644 --- a/SSL/src/CommonModules/ДополнительныеОтчетыИОбработкиПовтИсп/Module.bsl +++ b/SSL/src/CommonModules/ДополнительныеОтчетыИОбработкиПовтИсп/Module.bsl @@ -1,5 +1,5 @@ /////////////////////////////////////////////////////////////////////////////////////////////////////// -// Copyright (c) 2024, ООО 1С-Софт +// Copyright (c) 2025, ООО 1С-Софт // Все права защищены. Эта программа и сопроводительные материалы предоставляются // в соответствии с условиями лицензии Attribution 4.0 International (CC BY 4.0) // Текст лицензии доступен по ссылке: diff --git a/SSL/src/CommonModules/ДополнительныеОтчетыИОбработкиРегламентныеЗаданияВМоделиСервиса/Module.bsl b/SSL/src/CommonModules/ДополнительныеОтчетыИОбработкиРегламентныеЗаданияВМоделиСервиса/Module.bsl index b055df13a..4e50dc691 100644 --- a/SSL/src/CommonModules/ДополнительныеОтчетыИОбработкиРегламентныеЗаданияВМоделиСервиса/Module.bsl +++ b/SSL/src/CommonModules/ДополнительныеОтчетыИОбработкиРегламентныеЗаданияВМоделиСервиса/Module.bsl @@ -1,5 +1,5 @@ /////////////////////////////////////////////////////////////////////////////////////////////////////// -// Copyright (c) 2024, ООО 1С-Софт +// Copyright (c) 2025, ООО 1С-Софт // Все права защищены. Эта программа и сопроводительные материалы предоставляются // в соответствии с условиями лицензии Attribution 4.0 International (CC BY 4.0) // Текст лицензии доступен по ссылке: diff --git a/SSL/src/CommonModules/ЖурналРегистрации/Module.bsl b/SSL/src/CommonModules/ЖурналРегистрации/Module.bsl index 7cd0e10e7..6d2b235ff 100644 --- a/SSL/src/CommonModules/ЖурналРегистрации/Module.bsl +++ b/SSL/src/CommonModules/ЖурналРегистрации/Module.bsl @@ -1,5 +1,5 @@ /////////////////////////////////////////////////////////////////////////////////////////////////////// -// Copyright (c) 2024, ООО 1С-Софт +// Copyright (c) 2025, ООО 1С-Софт // Все права защищены. Эта программа и сопроводительные материалы предоставляются // в соответствии с условиями лицензии Attribution 4.0 International (CC BY 4.0) // Текст лицензии доступен по ссылке: @@ -12,18 +12,18 @@ // После записи переменная СобытияДляЖурналаРегистрации очищается. // // Параметры: -// СобытияДляЖурналаРегистрации - СписокЗначений: -// * Значение - Структура: -// ** ИмяСобытия - Строка - имя записываемого события. -// ** ПредставлениеУровня - Строка - представление значений коллекции УровеньЖурналаРегистрации. -// Доступные значения: "Информация", "Ошибка", "Предупреждение", "Примечание". -// ** Комментарий - Строка - комментарий события. -// ** ДатаСобытия - Дата - дата события, подставляется в комментарий при записи. -// * Представление - Строка - не используется. +// СобытияДляЖурналаРегистрации - Массив из Структура: +// * ИмяСобытия - Строка - имя события записи журнала регистрации. +// * ПредставлениеУровня - Строка - имя значения коллекции УровеньЖурналаРегистрации +// "Информация", "Ошибка", "Предупреждение", "Примечание". +// * Комментарий - Строка - комментарий события записи журнала регистрации. +// * ДатаСобытия - Дата - дата события, которая вставляется в начало комментария +// (если не заполнена, тогда используется текущая дата сеанса). // Процедура ЗаписатьСобытияВЖурналРегистрации(СобытияДляЖурналаРегистрации) Экспорт - Если ТипЗнч(СобытияДляЖурналаРегистрации) <> Тип("СписокЗначений") Тогда + Если ТипЗнч(СобытияДляЖурналаРегистрации) <> Тип("Массив") + И ТипЗнч(СобытияДляЖурналаРегистрации) <> Тип("СписокЗначений") Тогда Возврат; КонецЕсли; @@ -31,15 +31,20 @@ Возврат; КонецЕсли; - Для Каждого СообщениеЖурнала Из СобытияДляЖурналаРегистрации Цикл - ЗначениеСообщения = СообщениеЖурнала.Значение; + СобытияДляЖурнала = ?(ТипЗнч(СобытияДляЖурналаРегистрации) = Тип("Массив"), + СобытияДляЖурналаРегистрации, СобытияДляЖурналаРегистрации.ВыгрузитьЗначения()); + + Для Каждого ЗначениеСообщения Из СобытияДляЖурнала Цикл ИмяСобытия = ЗначениеСообщения.ИмяСобытия; УровеньСобытия = УровеньСобытияПоПредставлению(ЗначениеСообщения.ПредставлениеУровня); - ДатаСобытия = ТекущаяДатаСеанса(); + ДатаСобытия = Неопределено; Если ЗначениеСообщения.Свойство("ДатаСобытия") И ЗначениеЗаполнено(ЗначениеСообщения.ДатаСобытия) Тогда ДатаСобытия = ЗначениеСообщения.ДатаСобытия; КонецЕсли; - Комментарий = Строка(ДатаСобытия) + " " + ЗначениеСообщения.Комментарий; + Если ТипЗнч(ДатаСобытия) <> Тип("Дата") Тогда + ДатаСобытия = ТекущаяДатаСеанса(); + КонецЕсли; + Комментарий = Формат(ДатаСобытия, "ДЛФ=DT") + " " + ЗначениеСообщения.Комментарий; ЗаписьЖурналаРегистрации(ИмяСобытия, УровеньСобытия,,, Комментарий); КонецЦикла; СобытияДляЖурналаРегистрации.Очистить(); diff --git a/SSL/src/CommonModules/ЖурналРегистрацииВызовСервера/Module.bsl b/SSL/src/CommonModules/ЖурналРегистрацииВызовСервера/Module.bsl index 53160d173..ef2bd4bfd 100644 --- a/SSL/src/CommonModules/ЖурналРегистрацииВызовСервера/Module.bsl +++ b/SSL/src/CommonModules/ЖурналРегистрацииВызовСервера/Module.bsl @@ -1,5 +1,5 @@ /////////////////////////////////////////////////////////////////////////////////////////////////////// -// Copyright (c) 2024, ООО 1С-Софт +// Copyright (c) 2025, ООО 1С-Софт // Все права защищены. Эта программа и сопроводительные материалы предоставляются // в соответствии с условиями лицензии Attribution 4.0 International (CC BY 4.0) // Текст лицензии доступен по ссылке: diff --git a/SSL/src/CommonModules/ЖурналРегистрацииКлиент/Module.bsl b/SSL/src/CommonModules/ЖурналРегистрацииКлиент/Module.bsl index 1a0ea7030..fefeff0de 100644 --- a/SSL/src/CommonModules/ЖурналРегистрацииКлиент/Module.bsl +++ b/SSL/src/CommonModules/ЖурналРегистрацииКлиент/Module.bsl @@ -1,5 +1,5 @@ /////////////////////////////////////////////////////////////////////////////////////////////////////// -// Copyright (c) 2024, ООО 1С-Софт +// Copyright (c) 2025, ООО 1С-Софт // Все права защищены. Эта программа и сопроводительные материалы предоставляются // в соответствии с условиями лицензии Attribution 4.0 International (CC BY 4.0) // Текст лицензии доступен по ссылке: @@ -8,56 +8,66 @@ #Область ПрограммныйИнтерфейс +// АПК:142-выкл Необязательных параметров более 3 для обратной совместимости + // Записывает сообщение в журнал регистрации. -// Если параметр ЗаписатьСобытия = Истина, то запись выполняется сразу (обращение к серверу). +// Если параметр ЗаписатьСобытия = Истина, то запись выполняется сразу (произойдет вызов сервера). // Если ЗаписатьСобытия = Ложь (по умолчанию), то сообщение помещается в очередь, которая // будет записана позднее (обычно в течение 60 сек), либо при следующем вызове этой процедуры // с признаком ЗаписатьСобытия = Истина, либо при вызове процедуры ЗаписатьСобытияВЖурналРегистрации. // // Параметры: -// ИмяСобытия - Строка - имя события для журнала регистрации; -// ПредставлениеУровня - Строка - описание уровня события, по нему будет определен уровень события при записи на -// сервере; -// Например: "Ошибка", "Предупреждение". -// Соответствуют именам элементов перечисления УровеньЖурналаРегистрации. -// Комментарий - Строка - комментарий для события журнала; -// ДатаСобытия - Дата - точная дата возникновения события, описанного в сообщении. Будет добавлена в начало -// комментария; -// ЗаписатьСобытия - Булево - выполнить запись всех ранее накопленных сообщений в журнал регистрации (обращение к -// серверу). +// ИмяСобытия - Строка - имя события записи журнала регистрации. +// ПредставлениеУровня - Строка - имя значения коллекции УровеньЖурналаРегистрации +// "Информация", "Ошибка", "Предупреждение", "Примечание". +// Комментарий - Строка - комментарий события записи журнала регистрации. +// ДатаСобытия - Дата - дата события, которая вставляется в начало комментария +// (если не заполнена, тогда используется текущая дата сеанса). +// ЗаписатьСобытия - Булево - выполнить запись всех ранее накопленных сообщений +// в журнал регистрации (произойдет вызов сервера). // // Пример: // ЖурналРегистрацииКлиент.ДобавитьСообщениеДляЖурналаРегистрации(СобытиеЖурналаРегистрации(), "Предупреждение", // НСтр("ru = 'Невозможно подключиться к сети Интернет для проверки обновлений.'")); // Процедура ДобавитьСообщениеДляЖурналаРегистрации(Знач ИмяСобытия, Знач ПредставлениеУровня = "Информация", - Знач Комментарий = "", Знач ДатаСобытия = "", Знач ЗаписатьСобытия = Ложь) Экспорт + Знач Комментарий = "", Знач ДатаСобытия = '00010101', Знач ЗаписатьСобытия = Ложь) Экспорт ИмяПроцедуры = "ЖурналРегистрацииКлиент.ДобавитьСообщениеДляЖурналаРегистрации"; ОбщегоНазначенияКлиентСервер.ПроверитьПараметр(ИмяПроцедуры, "ИмяСобытия", ИмяСобытия, Тип("Строка")); ОбщегоНазначенияКлиентСервер.ПроверитьПараметр(ИмяПроцедуры, "ПредставлениеУровня", ПредставлениеУровня, Тип("Строка")); ОбщегоНазначенияКлиентСервер.ПроверитьПараметр(ИмяПроцедуры, "Комментарий", Комментарий, Тип("Строка")); + + Если СтрНайти(",Информация,Ошибка,Предупреждение,Примечание,", "," + ПредставлениеУровня + ",") = 0 Тогда + ПредставлениеУровня = ""; // По умолчанию для метода ЗаписьЖурналаРегистрации. + КонецЕсли; + Если ДатаСобытия <> "" Тогда ОбщегоНазначенияКлиентСервер.ПроверитьПараметр(ИмяПроцедуры, "ДатаСобытия", ДатаСобытия, Тип("Дата")); КонецЕсли; + Если Не ЗначениеЗаполнено(ДатаСобытия) Тогда + Если ТипЗнч(ПараметрыПриложения) = Тип("Соответствие") + И ПараметрыПриложения["СтандартныеПодсистемы.ПараметрыКлиента"] <> Неопределено Тогда + ДатаСобытия = ОбщегоНазначенияКлиент.ДатаСеанса(); + Иначе + ДатаСобытия = '00010101'; + КонецЕсли; + КонецЕсли; ИмяПараметра = "СтандартныеПодсистемы.СообщенияДляЖурналаРегистрации"; Если ПараметрыПриложения[ИмяПараметра] = Неопределено Тогда - ПараметрыПриложения.Вставить(ИмяПараметра, Новый СписокЗначений); - КонецЕсли; - - Если ТипЗнч(ДатаСобытия) = Тип("Дата") Тогда - ДатаСобытия = Формат(ДатаСобытия, "ДЛФ=DT"); + ПараметрыПриложения.Вставить(ИмяПараметра, Новый Массив); КонецЕсли; СтруктураСообщения = Новый Структура; СтруктураСообщения.Вставить("ДатаСобытия", ДатаСобытия); - СтруктураСообщения.Вставить("ИмяСобытия", ИмяСобытия); + СтруктураСообщения.Вставить("ИмяСобытия", + ОбщегоНазначенияКлиентСервер.ЗаменитьНедопустимыеСимволыXML(ИмяСобытия, " ")); СтруктураСообщения.Вставить("ПредставлениеУровня", ПредставлениеУровня); СтруктураСообщения.Вставить("Комментарий", ОбщегоНазначенияКлиентСервер.ЗаменитьНедопустимыеСимволыXML(Комментарий, " ")); - Сообщения = ПараметрыПриложения["СтандартныеПодсистемы.СообщенияДляЖурналаРегистрации"]; // СписокЗначений + Сообщения = ПараметрыПриложения[ИмяПараметра]; // см. ЖурналРегистрации.ЗаписатьСобытияВЖурналРегистрации Сообщения.Добавить(СтруктураСообщения); Если ЗаписатьСобытия Тогда @@ -66,6 +76,8 @@ КонецПроцедуры +// АПК:142-вкл + // Открывает форму журнала регистрации с установленным отбором. // // Параметры: @@ -98,10 +110,10 @@ ИмяПараметра = "СтандартныеПодсистемы.СообщенияДляЖурналаРегистрации"; Если ПараметрыПриложения[ИмяПараметра] = Неопределено Тогда - ПараметрыПриложения.Вставить(ИмяПараметра, Новый СписокЗначений); + ПараметрыПриложения.Вставить(ИмяПараметра, Новый Массив); КонецЕсли; - Сообщения = ПараметрыПриложения["СтандартныеПодсистемы.СообщенияДляЖурналаРегистрации"]; // СписокЗначений + Сообщения = ПараметрыПриложения[ИмяПараметра]; // см. ЖурналРегистрации.ЗаписатьСобытияВЖурналРегистрации Если ЗначениеЗаполнено(Сообщения) Тогда ЖурналРегистрацииВызовСервера.ЗаписатьСобытияВЖурналРегистрации(Сообщения); ПараметрыПриложения.Вставить(ИмяПараметра, Сообщения); diff --git a/SSL/src/CommonModules/ЗагрузкаДанныхИзФайла/Module.bsl b/SSL/src/CommonModules/ЗагрузкаДанныхИзФайла/Module.bsl index 12190dd23..01ba6773e 100644 --- a/SSL/src/CommonModules/ЗагрузкаДанныхИзФайла/Module.bsl +++ b/SSL/src/CommonModules/ЗагрузкаДанныхИзФайла/Module.bsl @@ -1,5 +1,5 @@ /////////////////////////////////////////////////////////////////////////////////////////////////////// -// Copyright (c) 2024, ООО 1С-Софт +// Copyright (c) 2025, ООО 1С-Софт // Все права защищены. Эта программа и сопроводительные материалы предоставляются // в соответствии с условиями лицензии Attribution 4.0 International (CC BY 4.0) // Текст лицензии доступен по ссылке: diff --git a/SSL/src/CommonModules/ЗагрузкаДанныхИзФайлаКлиент/Module.bsl b/SSL/src/CommonModules/ЗагрузкаДанныхИзФайлаКлиент/Module.bsl index 9e9ac3c51..8150ae4be 100644 --- a/SSL/src/CommonModules/ЗагрузкаДанныхИзФайлаКлиент/Module.bsl +++ b/SSL/src/CommonModules/ЗагрузкаДанныхИзФайлаКлиент/Module.bsl @@ -1,5 +1,5 @@ /////////////////////////////////////////////////////////////////////////////////////////////////////// -// Copyright (c) 2024, ООО 1С-Софт +// Copyright (c) 2025, ООО 1С-Софт // Все права защищены. Эта программа и сопроводительные материалы предоставляются // в соответствии с условиями лицензии Attribution 4.0 International (CC BY 4.0) // Текст лицензии доступен по ссылке: diff --git a/SSL/src/CommonModules/ЗагрузкаДанныхИзФайлаКлиентСервер/Module.bsl b/SSL/src/CommonModules/ЗагрузкаДанныхИзФайлаКлиентСервер/Module.bsl index bfa0076e7..9979d95d1 100644 --- a/SSL/src/CommonModules/ЗагрузкаДанныхИзФайлаКлиентСервер/Module.bsl +++ b/SSL/src/CommonModules/ЗагрузкаДанныхИзФайлаКлиентСервер/Module.bsl @@ -1,5 +1,5 @@ /////////////////////////////////////////////////////////////////////////////////////////////////////// -// Copyright (c) 2024, ООО 1С-Софт +// Copyright (c) 2025, ООО 1С-Софт // Все права защищены. Эта программа и сопроводительные материалы предоставляются // в соответствии с условиями лицензии Attribution 4.0 International (CC BY 4.0) // Текст лицензии доступен по ссылке: diff --git a/SSL/src/CommonModules/ЗагрузкаДанныхИзФайлаПереопределяемый/Module.bsl b/SSL/src/CommonModules/ЗагрузкаДанныхИзФайлаПереопределяемый/Module.bsl index ef71e4464..5141d1d11 100644 --- a/SSL/src/CommonModules/ЗагрузкаДанныхИзФайлаПереопределяемый/Module.bsl +++ b/SSL/src/CommonModules/ЗагрузкаДанныхИзФайлаПереопределяемый/Module.bsl @@ -1,5 +1,5 @@ /////////////////////////////////////////////////////////////////////////////////////////////////////// -// Copyright (c) 2024, ООО 1С-Софт +// Copyright (c) 2025, ООО 1С-Софт // Все права защищены. Эта программа и сопроводительные материалы предоставляются // в соответствии с условиями лицензии Attribution 4.0 International (CC BY 4.0) // Текст лицензии доступен по ссылке: diff --git a/SSL/src/CommonModules/ЗаметкиПользователя/Module.bsl b/SSL/src/CommonModules/ЗаметкиПользователя/Module.bsl index 3893b35ef..e30ca01ae 100644 --- a/SSL/src/CommonModules/ЗаметкиПользователя/Module.bsl +++ b/SSL/src/CommonModules/ЗаметкиПользователя/Module.bsl @@ -1,5 +1,5 @@ /////////////////////////////////////////////////////////////////////////////////////////////////////// -// Copyright (c) 2024, ООО 1С-Софт +// Copyright (c) 2025, ООО 1С-Софт // Все права защищены. Эта программа и сопроводительные материалы предоставляются // в соответствии с условиями лицензии Attribution 4.0 International (CC BY 4.0) // Текст лицензии доступен по ссылке: diff --git a/SSL/src/CommonModules/ЗаметкиПользователяСлужебный/Module.bsl b/SSL/src/CommonModules/ЗаметкиПользователяСлужебный/Module.bsl index 1b11dc27d..46afdd193 100644 --- a/SSL/src/CommonModules/ЗаметкиПользователяСлужебный/Module.bsl +++ b/SSL/src/CommonModules/ЗаметкиПользователяСлужебный/Module.bsl @@ -1,5 +1,5 @@ /////////////////////////////////////////////////////////////////////////////////////////////////////// -// Copyright (c) 2024, ООО 1С-Софт +// Copyright (c) 2025, ООО 1С-Софт // Все права защищены. Эта программа и сопроводительные материалы предоставляются // в соответствии с условиями лицензии Attribution 4.0 International (CC BY 4.0) // Текст лицензии доступен по ссылке: diff --git a/SSL/src/CommonModules/ЗаметкиПользователяСлужебныйКлиент/Module.bsl b/SSL/src/CommonModules/ЗаметкиПользователяСлужебныйКлиент/Module.bsl index a3e0f22b1..d417d33f6 100644 --- a/SSL/src/CommonModules/ЗаметкиПользователяСлужебныйКлиент/Module.bsl +++ b/SSL/src/CommonModules/ЗаметкиПользователяСлужебныйКлиент/Module.bsl @@ -1,5 +1,5 @@ /////////////////////////////////////////////////////////////////////////////////////////////////////// -// Copyright (c) 2024, ООО 1С-Софт +// Copyright (c) 2025, ООО 1С-Софт // Все права защищены. Эта программа и сопроводительные материалы предоставляются // в соответствии с условиями лицензии Attribution 4.0 International (CC BY 4.0) // Текст лицензии доступен по ссылке: diff --git a/SSL/src/CommonModules/ЗаполнениеОбъектов/Module.bsl b/SSL/src/CommonModules/ЗаполнениеОбъектов/Module.bsl index f9a43ee01..62bac7dc7 100644 --- a/SSL/src/CommonModules/ЗаполнениеОбъектов/Module.bsl +++ b/SSL/src/CommonModules/ЗаполнениеОбъектов/Module.bsl @@ -1,5 +1,5 @@ /////////////////////////////////////////////////////////////////////////////////////////////////////// -// Copyright (c) 2024, ООО 1С-Софт +// Copyright (c) 2025, ООО 1С-Софт // Все права защищены. Эта программа и сопроводительные материалы предоставляются // в соответствии с условиями лицензии Attribution 4.0 International (CC BY 4.0) // Текст лицензии доступен по ссылке: diff --git a/SSL/src/CommonModules/ЗаполнениеОбъектовПереопределяемый/Module.bsl b/SSL/src/CommonModules/ЗаполнениеОбъектовПереопределяемый/Module.bsl index 987ebfbb3..73a2d980d 100644 --- a/SSL/src/CommonModules/ЗаполнениеОбъектовПереопределяемый/Module.bsl +++ b/SSL/src/CommonModules/ЗаполнениеОбъектовПереопределяемый/Module.bsl @@ -1,5 +1,5 @@ /////////////////////////////////////////////////////////////////////////////////////////////////////// -// Copyright (c) 2024, ООО 1С-Софт +// Copyright (c) 2025, ООО 1С-Софт // Все права защищены. Эта программа и сопроводительные материалы предоставляются // в соответствии с условиями лицензии Attribution 4.0 International (CC BY 4.0) // Текст лицензии доступен по ссылке: diff --git a/SSL/src/CommonModules/ЗапретРедактированияРеквизитовОбъектов/Module.bsl b/SSL/src/CommonModules/ЗапретРедактированияРеквизитовОбъектов/Module.bsl index 387dbedee..c3a5d3ea4 100644 --- a/SSL/src/CommonModules/ЗапретРедактированияРеквизитовОбъектов/Module.bsl +++ b/SSL/src/CommonModules/ЗапретРедактированияРеквизитовОбъектов/Module.bsl @@ -1,5 +1,5 @@ /////////////////////////////////////////////////////////////////////////////////////////////////////// -// Copyright (c) 2024, ООО 1С-Софт +// Copyright (c) 2025, ООО 1С-Софт // Все права защищены. Эта программа и сопроводительные материалы предоставляются // в соответствии с условиями лицензии Attribution 4.0 International (CC BY 4.0) // Текст лицензии доступен по ссылке: diff --git a/SSL/src/CommonModules/ЗапретРедактированияРеквизитовОбъектовКлиент/Module.bsl b/SSL/src/CommonModules/ЗапретРедактированияРеквизитовОбъектовКлиент/Module.bsl index 2f97a9d76..f8e0a74dd 100644 --- a/SSL/src/CommonModules/ЗапретРедактированияРеквизитовОбъектовКлиент/Module.bsl +++ b/SSL/src/CommonModules/ЗапретРедактированияРеквизитовОбъектовКлиент/Module.bsl @@ -1,5 +1,5 @@ /////////////////////////////////////////////////////////////////////////////////////////////////////// -// Copyright (c) 2024, ООО 1С-Софт +// Copyright (c) 2025, ООО 1С-Софт // Все права защищены. Эта программа и сопроводительные материалы предоставляются // в соответствии с условиями лицензии Attribution 4.0 International (CC BY 4.0) // Текст лицензии доступен по ссылке: diff --git a/SSL/src/CommonModules/ЗапретРедактированияРеквизитовОбъектовПереопределяемый/Module.bsl b/SSL/src/CommonModules/ЗапретРедактированияРеквизитовОбъектовПереопределяемый/Module.bsl index 3cfcf4589..9c421c4d0 100644 --- a/SSL/src/CommonModules/ЗапретРедактированияРеквизитовОбъектовПереопределяемый/Module.bsl +++ b/SSL/src/CommonModules/ЗапретРедактированияРеквизитовОбъектовПереопределяемый/Module.bsl @@ -1,5 +1,5 @@ /////////////////////////////////////////////////////////////////////////////////////////////////////// -// Copyright (c) 2024, ООО 1С-Софт +// Copyright (c) 2025, ООО 1С-Софт // Все права защищены. Эта программа и сопроводительные материалы предоставляются // в соответствии с условиями лицензии Attribution 4.0 International (CC BY 4.0) // Текст лицензии доступен по ссылке: diff --git a/SSL/src/CommonModules/ЗапретРедактированияРеквизитовОбъектовСлужебный/Module.bsl b/SSL/src/CommonModules/ЗапретРедактированияРеквизитовОбъектовСлужебный/Module.bsl index c1fd4aa48..4fe956802 100644 --- a/SSL/src/CommonModules/ЗапретРедактированияРеквизитовОбъектовСлужебный/Module.bsl +++ b/SSL/src/CommonModules/ЗапретРедактированияРеквизитовОбъектовСлужебный/Module.bsl @@ -1,5 +1,5 @@ /////////////////////////////////////////////////////////////////////////////////////////////////////// -// Copyright (c) 2024, ООО 1С-Софт +// Copyright (c) 2025, ООО 1С-Софт // Все права защищены. Эта программа и сопроводительные материалы предоставляются // в соответствии с условиями лицензии Attribution 4.0 International (CC BY 4.0) // Текст лицензии доступен по ссылке: diff --git a/SSL/src/CommonModules/ЗапретРедактированияРеквизитовОбъектовСлужебныйКлиент/Module.bsl b/SSL/src/CommonModules/ЗапретРедактированияРеквизитовОбъектовСлужебныйКлиент/Module.bsl index 6dbafe0e5..c5bb2d1fa 100644 --- a/SSL/src/CommonModules/ЗапретРедактированияРеквизитовОбъектовСлужебныйКлиент/Module.bsl +++ b/SSL/src/CommonModules/ЗапретРедактированияРеквизитовОбъектовСлужебныйКлиент/Module.bsl @@ -1,5 +1,5 @@ /////////////////////////////////////////////////////////////////////////////////////////////////////// -// Copyright (c) 2024, ООО 1С-Софт +// Copyright (c) 2025, ООО 1С-Софт // Все права защищены. Эта программа и сопроводительные материалы предоставляются // в соответствии с условиями лицензии Attribution 4.0 International (CC BY 4.0) // Текст лицензии доступен по ссылке: diff --git a/SSL/src/CommonModules/ЗащитаПерсональныхДанных/Module.bsl b/SSL/src/CommonModules/ЗащитаПерсональныхДанных/Module.bsl index 309a670de..d79259f7a 100644 --- a/SSL/src/CommonModules/ЗащитаПерсональныхДанных/Module.bsl +++ b/SSL/src/CommonModules/ЗащитаПерсональныхДанных/Module.bsl @@ -1,5 +1,5 @@ /////////////////////////////////////////////////////////////////////////////////////////////////////// -// Copyright (c) 2024, ООО 1С-Софт +// Copyright (c) 2025, ООО 1С-Софт // Все права защищены. Эта программа и сопроводительные материалы предоставляются // в соответствии с условиями лицензии Attribution 4.0 International (CC BY 4.0) // Текст лицензии доступен по ссылке: @@ -2938,7 +2938,6 @@ Методы.Вставить("ОбновитьСрокиХраненияПерсональныхДанных", Истина); Методы.Вставить("ПрочитатьСобытияДоступаКПерсональнымДанным", Истина); Методы.Вставить("ИзменитьНастройкиУничтоженияПерсональныхДанных", Истина); - Методы.Вставить("РассчитатьСрокиХраненияПерсональныхДанных", Истина); КонецПроцедуры diff --git a/SSL/src/CommonModules/ЗащитаПерсональныхДанныхВызовСервера/Module.bsl b/SSL/src/CommonModules/ЗащитаПерсональныхДанныхВызовСервера/Module.bsl index ac8311901..8d25d45ba 100644 --- a/SSL/src/CommonModules/ЗащитаПерсональныхДанныхВызовСервера/Module.bsl +++ b/SSL/src/CommonModules/ЗащитаПерсональныхДанныхВызовСервера/Module.bsl @@ -1,5 +1,5 @@ /////////////////////////////////////////////////////////////////////////////////////////////////////// -// Copyright (c) 2024, ООО 1С-Софт +// Copyright (c) 2025, ООО 1С-Софт // Все права защищены. Эта программа и сопроводительные материалы предоставляются // в соответствии с условиями лицензии Attribution 4.0 International (CC BY 4.0) // Текст лицензии доступен по ссылке: diff --git a/SSL/src/CommonModules/ЗащитаПерсональныхДанныхКлиент/Module.bsl b/SSL/src/CommonModules/ЗащитаПерсональныхДанныхКлиент/Module.bsl index e9d605354..9bf636cc2 100644 --- a/SSL/src/CommonModules/ЗащитаПерсональныхДанныхКлиент/Module.bsl +++ b/SSL/src/CommonModules/ЗащитаПерсональныхДанныхКлиент/Module.bsl @@ -1,5 +1,5 @@ /////////////////////////////////////////////////////////////////////////////////////////////////////// -// Copyright (c) 2024, ООО 1С-Софт +// Copyright (c) 2025, ООО 1С-Софт // Все права защищены. Эта программа и сопроводительные материалы предоставляются // в соответствии с условиями лицензии Attribution 4.0 International (CC BY 4.0) // Текст лицензии доступен по ссылке: diff --git a/SSL/src/CommonModules/ЗащитаПерсональныхДанныхПереопределяемый/Module.bsl b/SSL/src/CommonModules/ЗащитаПерсональныхДанныхПереопределяемый/Module.bsl index 4ee657c16..a3d470244 100644 --- a/SSL/src/CommonModules/ЗащитаПерсональныхДанныхПереопределяемый/Module.bsl +++ b/SSL/src/CommonModules/ЗащитаПерсональныхДанныхПереопределяемый/Module.bsl @@ -1,5 +1,5 @@ /////////////////////////////////////////////////////////////////////////////////////////////////////// -// Copyright (c) 2024, ООО 1С-Софт +// Copyright (c) 2025, ООО 1С-Софт // Все права защищены. Эта программа и сопроводительные материалы предоставляются // в соответствии с условиями лицензии Attribution 4.0 International (CC BY 4.0) // Текст лицензии доступен по ссылке: diff --git a/SSL/src/CommonModules/ЗащитаПерсональныхДанныхПовтИсп/Module.bsl b/SSL/src/CommonModules/ЗащитаПерсональныхДанныхПовтИсп/Module.bsl index 3c6991df5..280fbc763 100644 --- a/SSL/src/CommonModules/ЗащитаПерсональныхДанныхПовтИсп/Module.bsl +++ b/SSL/src/CommonModules/ЗащитаПерсональныхДанныхПовтИсп/Module.bsl @@ -1,5 +1,5 @@ /////////////////////////////////////////////////////////////////////////////////////////////////////// -// Copyright (c) 2024, ООО 1С-Софт +// Copyright (c) 2025, ООО 1С-Софт // Все права защищены. Эта программа и сопроводительные материалы предоставляются // в соответствии с условиями лицензии Attribution 4.0 International (CC BY 4.0) // Текст лицензии доступен по ссылке: diff --git a/SSL/src/CommonModules/ЗащитаПерсональныхДанныхСлужебный/Module.bsl b/SSL/src/CommonModules/ЗащитаПерсональныхДанныхСлужебный/Module.bsl index de210448b..b4d1128c1 100644 --- a/SSL/src/CommonModules/ЗащитаПерсональныхДанныхСлужебный/Module.bsl +++ b/SSL/src/CommonModules/ЗащитаПерсональныхДанныхСлужебный/Module.bsl @@ -1,5 +1,5 @@ /////////////////////////////////////////////////////////////////////////////////////////////////////// -// Copyright (c) 2024, ООО 1С-Софт +// Copyright (c) 2025, ООО 1С-Софт // Все права защищены. Эта программа и сопроводительные материалы предоставляются // в соответствии с условиями лицензии Attribution 4.0 International (CC BY 4.0) // Текст лицензии доступен по ссылке: @@ -58,6 +58,8 @@ НовыеСведения.ПоляДоступа = "СрокДействия"; НовыеСведения.ОбластьДанных = "ОбработкаПерсональныхДанных"; + ИнтеграцияПодсистемБСП.ЗаполнитьСведенияОПерсональныхДанных(ТаблицаСведений); + // Заполнение таблицы сведений потребителями. ЗащитаПерсональныхДанныхПереопределяемый.ЗаполнитьСведенияОПерсональныхДанных(ТаблицаСведений); @@ -82,9 +84,10 @@ НоваяКатегория = КатегорииДанных.Добавить(); НоваяКатегория.Имя = "ОбработкаПерсональныхДанных"; НоваяКатегория.Представление = НСтр("ru = 'Обработка ПДн'"); - + // Заполнение категорий потребителями. ЗащитаПерсональныхДанныхПереопределяемый.ЗаполнитьОбластиПерсональныхДанных(КатегорииДанных); + ИнтеграцияПодсистемБСП.ЗаполнитьОбластиПерсональныхДанных(КатегорииДанных); Возврат КатегорииДанных; @@ -129,6 +132,7 @@ // Сведения о персональных данных в самой подсистеме. ЗаполнитьСведенияОбУничтожаемыхПерсональныхДанных(ТаблицаСведений); + ИнтеграцияПодсистемБСП.ПриЗаполненииСведенийОбУничтожаемыхПерсональныхДанных(ТаблицаСведений); // Заполнение таблицы сведений потребителями. ЗащитаПерсональныхДанныхПереопределяемый.ПриЗаполненииСведенийОбУничтожаемыхПерсональныхДанных(ТаблицаСведений); diff --git a/SSL/src/CommonModules/ЗащитаПерсональныхДанныхУничтожениеПовтИсп/Module.bsl b/SSL/src/CommonModules/ЗащитаПерсональныхДанныхУничтожениеПовтИсп/Module.bsl index 27597842c..230f35f58 100644 --- a/SSL/src/CommonModules/ЗащитаПерсональныхДанныхУничтожениеПовтИсп/Module.bsl +++ b/SSL/src/CommonModules/ЗащитаПерсональныхДанныхУничтожениеПовтИсп/Module.bsl @@ -1,5 +1,5 @@ /////////////////////////////////////////////////////////////////////////////////////////////////////// -// Copyright (c) 2024, ООО 1С-Софт +// Copyright (c) 2025, ООО 1С-Софт // Все права защищены. Эта программа и сопроводительные материалы предоставляются // в соответствии с условиями лицензии Attribution 4.0 International (CC BY 4.0) // Текст лицензии доступен по ссылке: diff --git a/SSL/src/CommonModules/ЗаявлениеНаСертификатПереопределяемый/Module.bsl b/SSL/src/CommonModules/ЗаявлениеНаСертификатПереопределяемый/Module.bsl index 353a96402..dfa97632d 100644 --- a/SSL/src/CommonModules/ЗаявлениеНаСертификатПереопределяемый/Module.bsl +++ b/SSL/src/CommonModules/ЗаявлениеНаСертификатПереопределяемый/Module.bsl @@ -1,5 +1,5 @@ /////////////////////////////////////////////////////////////////////////////////////////////////////// -// Copyright (c) 2024, ООО 1С-Софт +// Copyright (c) 2025, ООО 1С-Софт // Все права защищены. Эта программа и сопроводительные материалы предоставляются // в соответствии с условиями лицензии Attribution 4.0 International (CC BY 4.0) // Текст лицензии доступен по ссылке: diff --git a/SSL/src/CommonModules/ИнтеграцияПодсистемБСП/Module.bsl b/SSL/src/CommonModules/ИнтеграцияПодсистемБСП/Module.bsl index 0055556c2..a8ccb3d50 100644 --- a/SSL/src/CommonModules/ИнтеграцияПодсистемБСП/Module.bsl +++ b/SSL/src/CommonModules/ИнтеграцияПодсистемБСП/Module.bsl @@ -1,5 +1,5 @@ /////////////////////////////////////////////////////////////////////////////////////////////////////// -// Copyright (c) 2024, ООО 1С-Софт +// Copyright (c) 2025, ООО 1С-Софт // Все права защищены. Эта программа и сопроводительные материалы предоставляются // в соответствии с условиями лицензии Attribution 4.0 International (CC BY 4.0) // Текст лицензии доступен по ссылке: @@ -1274,11 +1274,11 @@ // ПарыЗамен - см. ОбщегоНазначения.ЗаменитьСсылки.ПарыЗамен // ПараметрыЗамены - см. ОбщегоНазначения.ПараметрыЗаменыСсылок // -Процедура ПередПоискомМестИспользования(ПарыЗамен, ПараметрыВыполнения) Экспорт +Процедура ПередПоискомМестИспользования(ПарыЗамен, ПараметрыЗамены) Экспорт Если ОбщегоНазначения.ПодсистемаСуществует("СтандартныеПодсистемы.ПоискИУдалениеДублей") Тогда МодульПоискИУдалениеДублей = ОбщегоНазначения.ОбщийМодуль("ПоискИУдалениеДублей"); - МодульПоискИУдалениеДублей.ДополнитьДублиСвязаннымиПодчиненнымиОбъектами(ПарыЗамен, ПараметрыВыполнения); + МодульПоискИУдалениеДублей.ДополнитьДублиСвязаннымиПодчиненнымиОбъектами(ПарыЗамен, ПараметрыЗамены); КонецЕсли; КонецПроцедуры @@ -2298,6 +2298,16 @@ МодульМашиночитаемыеДоверенностиФНССлужебный.ПриДобавленииСерверныхОповещений(Оповещения); КонецЕсли; + Если ОбщегоНазначения.ПодсистемаСуществует("СтандартныеПодсистемы.РаботаСПочтовымиСообщениями") Тогда + МодульРаботаСПочтовымиСообщениямиСлужебный = ОбщегоНазначения.ОбщийМодуль("РаботаСПочтовымиСообщениямиСлужебный"); + МодульРаботаСПочтовымиСообщениямиСлужебный.ПриДобавленииСерверныхОповещений(Оповещения); + КонецЕсли; + + Если ОбщегоНазначения.ПодсистемаСуществует("СтандартныеПодсистемы.СервисМобильнойПодписи") Тогда + МодульСервисМобильнойПодписиСлужебный = ОбщегоНазначения.ОбщийМодуль("СервисМобильнойПодписиСлужебный"); + МодульСервисМобильнойПодписиСлужебный.ПриДобавленииСерверныхОповещений(Оповещения); + КонецЕсли; + Если ИнтеграцияПодсистемБСППовтИсп.ПодпискиБТС().ПриДобавленииСерверныхОповещений Тогда МодульИнтеграцияПодсистемБТС = ОбщегоНазначения.ОбщийМодуль("ИнтеграцияПодсистемБТС"); МодульИнтеграцияПодсистемБТС.ПриДобавленииСерверныхОповещений(Оповещения); @@ -3340,6 +3350,40 @@ #КонецОбласти +#Область ЗащитаПерсональныхДанных + +// См. ЗащитаПерсональныхДанныхПереопределяемый.ПриЗаполненииСведенийОбУничтожаемыхПерсональныхДанных +Процедура ПриЗаполненииСведенийОбУничтожаемыхПерсональныхДанных(ТаблицаСведений) Экспорт + + Если ОбщегоНазначения.ПодсистемаСуществует("СтандартныеПодсистемы.СервисМобильнойПодписи") Тогда + МодульСервисМобильнойПодписиСлужебный = ОбщегоНазначения.ОбщийМодуль("СервисМобильнойПодписиСлужебный"); + МодульСервисМобильнойПодписиСлужебный.ПриЗаполненииСведенийОбУничтожаемыхПерсональныхДанных(ТаблицаСведений); + КонецЕсли; + +КонецПроцедуры + +// См. ЗащитаПерсональныхДанныхПереопределяемый.ЗаполнитьОбластиПерсональныхДанных. +Процедура ЗаполнитьОбластиПерсональныхДанных(КатегорииДанных) Экспорт + + Если ОбщегоНазначения.ПодсистемаСуществует("СтандартныеПодсистемы.СервисМобильнойПодписи") Тогда + МодульСервисМобильнойПодписиСлужебный = ОбщегоНазначения.ОбщийМодуль("СервисМобильнойПодписиСлужебный"); + МодульСервисМобильнойПодписиСлужебный.ЗаполнитьОбластиПерсональныхДанных(КатегорииДанных); + КонецЕсли; + +КонецПроцедуры + +// См. ЗащитаПерсональныхДанныхПереопределяемый.ЗаполнитьСведенияОПерсональныхДанных. +Процедура ЗаполнитьСведенияОПерсональныхДанных(ТаблицаСведений) Экспорт + + Если ОбщегоНазначения.ПодсистемаСуществует("СтандартныеПодсистемы.СервисМобильнойПодписи") Тогда + МодульСервисМобильнойПодписиСлужебный = ОбщегоНазначения.ОбщийМодуль("СервисМобильнойПодписиСлужебный"); + МодульСервисМобильнойПодписиСлужебный.ЗаполнитьСведенияОПерсональныхДанных(ТаблицаСведений); + КонецЕсли; + +КонецПроцедуры + +#КонецОбласти + #Область ИнтерфейсOData // Заполняет массив типов, исключаемых из внешнего доступа OData. @@ -3721,6 +3765,9 @@ Если ОбщегоНазначения.ПодсистемаСуществует("СтандартныеПодсистемы.РаботаСФайлами") Тогда МодульРаботаСФайламиСлужебный = ОбщегоНазначения.ОбщийМодуль("РаботаСФайламиСлужебный"); МодульРаботаСФайламиСлужебный.ПриДобавленииОбработчиковОбновления(Обработчики); + + МодульРаботаСФайловымАрхивомСервер = ОбщегоНазначения.ОбщийМодуль("РаботаСФайловымАрхивомСервер"); + МодульРаботаСФайловымАрхивомСервер.ПриДобавленииОбработчиковОбновления(Обработчики); КонецЕсли; Если ОбщегоНазначения.ПодсистемаСуществует("СтандартныеПодсистемы.РассылкаОтчетов") Тогда @@ -3737,6 +3784,11 @@ МодульУправлениеСвойствамиСлужебный = ОбщегоНазначения.ОбщийМодуль("УправлениеСвойствамиСлужебный"); МодульУправлениеСвойствамиСлужебный.ПриДобавленииОбработчиковОбновления(Обработчики); КонецЕсли; + + Если ОбщегоНазначения.ПодсистемаСуществует("СтандартныеПодсистемы.СервисМобильнойПодписи") Тогда + МодульСервисМобильнойПодписиСлужебный = ОбщегоНазначения.ОбщийМодуль("СервисМобильнойПодписиСлужебный"); + МодульСервисМобильнойПодписиСлужебный.ПриДобавленииОбработчиковОбновления(Обработчики); + КонецЕсли; СтандартныеПодсистемыСервер.ПриДобавленииОбработчиковОбновления(Обработчики); @@ -5295,6 +5347,11 @@ МодульРассылкаОтчетов = ОбщегоНазначения.ОбщийМодуль("РассылкаОтчетов"); МодульРассылкаОтчетов.ПриЗаполненииРазрешенийНаДоступКВнешнимРесурсам(ЗапросыРазрешений); КонецЕсли; + + Если ОбщегоНазначения.ПодсистемаСуществует("СтандартныеПодсистемы.СервисМобильнойПодписи") Тогда + МодульСервисМобильнойПодписиСлужебный = ОбщегоНазначения.ОбщийМодуль("СервисМобильнойПодписиСлужебный"); + МодульСервисМобильнойПодписиСлужебный.ПриЗаполненииРазрешенийНаДоступКВнешнимРесурсам(ЗапросыРазрешений); + КонецЕсли; СтандартныеПодсистемыСервер.ПриЗаполненииРазрешенийНаДоступКВнешнимРесурсам(ЗапросыРазрешений); @@ -5950,7 +6007,7 @@ МодульУправлениеСвойствамиСлужебный = ОбщегоНазначения.ОбщийМодуль("УправлениеСвойствамиСлужебный"); МодульУправлениеСвойствамиСлужебный.ПриЗаполненииВидовДоступа(ВидыДоступа); КонецЕсли; - + Если ИнтеграцияПодсистемБСППовтИсп.ПодпискиБТС().ПриЗаполненииВидовДоступа Тогда МодульИнтеграцияПодсистемБТС = ОбщегоНазначения.ОбщийМодуль("ИнтеграцияПодсистемБТС"); МодульИнтеграцияПодсистемБТС.ПриЗаполненииВидовДоступа(ВидыДоступа); @@ -6067,6 +6124,11 @@ МодульИнтеграцияПодсистемБИП.ПриЗаполненииСписковСОграничениемДоступа(Списки); КонецЕсли; + Если ОбщегоНазначения.ПодсистемаСуществует("СтандартныеПодсистемы.ЭлектроннаяПодпись") Тогда + МодульЭлектроннаяПодписьСлужебный = ОбщегоНазначения.ОбщийМодуль("ЭлектроннаяПодписьСлужебный"); + МодульЭлектроннаяПодписьСлужебный.ПриЗаполненииСписковСОграничениемДоступа(Списки); + КонецЕсли; + Если ОбщегоНазначения.ПодсистемаСуществует("СтандартныеПодсистемы.ЭлектроннаяПодписьСервисаDSS") Тогда МодульСервисКриптографииDSSСлужебный = ОбщегоНазначения.ОбщийМодуль("СервисКриптографииDSSСлужебный"); МодульСервисКриптографииDSSСлужебный.ПриЗаполненииСписковСОграничениемДоступа(Списки); @@ -6222,12 +6284,17 @@ МодульУправлениеСвойствамиСлужебный = ОбщегоНазначения.ОбщийМодуль("УправлениеСвойствамиСлужебный"); МодульУправлениеСвойствамиСлужебный.ПриЗаполненииВидовОграниченийПравОбъектовМетаданных(Описание); КонецЕсли; - + Если ОбщегоНазначения.ПодсистемаСуществует("СтандартныеПодсистемы.ШаблоныСообщений") Тогда МодульШаблоныСообщенийСлужебный = ОбщегоНазначения.ОбщийМодуль("ШаблоныСообщенийСлужебный"); МодульШаблоныСообщенийСлужебный.ПриЗаполненииВидовОграниченийПравОбъектовМетаданных(Описание); КонецЕсли; + Если ОбщегоНазначения.ПодсистемаСуществует("СтандартныеПодсистемы.ЭлектроннаяПодпись") Тогда + МодульЭлектроннаяПодписьСлужебный = ОбщегоНазначения.ОбщийМодуль("ЭлектроннаяПодписьСлужебный"); + МодульЭлектроннаяПодписьСлужебный.ПриЗаполненииВидовОграниченийПравОбъектовМетаданных(Описание); + КонецЕсли; + Если ИнтеграцияПодсистемБСППовтИсп.ПодпискиБТС().ПриЗаполненииВидовОграниченийПравОбъектовМетаданных Тогда МодульИнтеграцияПодсистемБТС = ОбщегоНазначения.ОбщийМодуль("ИнтеграцияПодсистемБТС"); МодульИнтеграцияПодсистемБТС.ПриЗаполненииВидовОграниченийПравОбъектовМетаданных(Описание); diff --git a/SSL/src/CommonModules/ИнтеграцияПодсистемБСПКлиент/Module.bsl b/SSL/src/CommonModules/ИнтеграцияПодсистемБСПКлиент/Module.bsl index 29a83d350..6e21abc5f 100644 --- a/SSL/src/CommonModules/ИнтеграцияПодсистемБСПКлиент/Module.bsl +++ b/SSL/src/CommonModules/ИнтеграцияПодсистемБСПКлиент/Module.bsl @@ -1,5 +1,5 @@ /////////////////////////////////////////////////////////////////////////////////////////////////////// -// Copyright (c) 2024, ООО 1С-Софт +// Copyright (c) 2025, ООО 1С-Софт // Все права защищены. Эта программа и сопроводительные материалы предоставляются // в соответствии с условиями лицензии Attribution 4.0 International (CC BY 4.0) // Текст лицензии доступен по ссылке: diff --git a/SSL/src/CommonModules/ИнтеграцияПодсистемБСПКлиентПовтИсп/Module.bsl b/SSL/src/CommonModules/ИнтеграцияПодсистемБСПКлиентПовтИсп/Module.bsl index b20e4b1fa..61936ed10 100644 --- a/SSL/src/CommonModules/ИнтеграцияПодсистемБСПКлиентПовтИсп/Module.bsl +++ b/SSL/src/CommonModules/ИнтеграцияПодсистемБСПКлиентПовтИсп/Module.bsl @@ -1,5 +1,5 @@ /////////////////////////////////////////////////////////////////////////////////////////////////////// -// Copyright (c) 2024, ООО 1С-Софт +// Copyright (c) 2025, ООО 1С-Софт // Все права защищены. Эта программа и сопроводительные материалы предоставляются // в соответствии с условиями лицензии Attribution 4.0 International (CC BY 4.0) // Текст лицензии доступен по ссылке: diff --git a/SSL/src/CommonModules/ИнтеграцияПодсистемБСППовтИсп/Module.bsl b/SSL/src/CommonModules/ИнтеграцияПодсистемБСППовтИсп/Module.bsl index 9cec5ddfe..ef4bab60d 100644 --- a/SSL/src/CommonModules/ИнтеграцияПодсистемБСППовтИсп/Module.bsl +++ b/SSL/src/CommonModules/ИнтеграцияПодсистемБСППовтИсп/Module.bsl @@ -1,5 +1,5 @@ /////////////////////////////////////////////////////////////////////////////////////////////////////// -// Copyright (c) 2024, ООО 1С-Софт +// Copyright (c) 2025, ООО 1С-Софт // Все права защищены. Эта программа и сопроводительные материалы предоставляются // в соответствии с условиями лицензии Attribution 4.0 International (CC BY 4.0) // Текст лицензии доступен по ссылке: diff --git a/SSL/src/CommonModules/ИнтерфейсODataПереопределяемый/Module.bsl b/SSL/src/CommonModules/ИнтерфейсODataПереопределяемый/Module.bsl index c0f54fcbe..0727ba998 100644 --- a/SSL/src/CommonModules/ИнтерфейсODataПереопределяемый/Module.bsl +++ b/SSL/src/CommonModules/ИнтерфейсODataПереопределяемый/Module.bsl @@ -1,5 +1,5 @@ /////////////////////////////////////////////////////////////////////////////////////////////////////// -// Copyright (c) 2024, ООО 1С-Софт +// Copyright (c) 2025, ООО 1С-Софт // Все права защищены. Эта программа и сопроводительные материалы предоставляются // в соответствии с условиями лицензии Attribution 4.0 International (CC BY 4.0) // Текст лицензии доступен по ссылке: diff --git a/SSL/src/CommonModules/ИнтерфейсODataСлужебный/Module.bsl b/SSL/src/CommonModules/ИнтерфейсODataСлужебный/Module.bsl index a1d2afc9f..ac4db11be 100644 --- a/SSL/src/CommonModules/ИнтерфейсODataСлужебный/Module.bsl +++ b/SSL/src/CommonModules/ИнтерфейсODataСлужебный/Module.bsl @@ -1,5 +1,5 @@ /////////////////////////////////////////////////////////////////////////////////////////////////////// -// Copyright (c) 2024, ООО 1С-Софт +// Copyright (c) 2025, ООО 1С-Софт // Все права защищены. Эта программа и сопроводительные материалы предоставляются // в соответствии с условиями лицензии Attribution 4.0 International (CC BY 4.0) // Текст лицензии доступен по ссылке: diff --git a/SSL/src/CommonModules/ИнтерфейсODataСлужебныйПовтИсп/Module.bsl b/SSL/src/CommonModules/ИнтерфейсODataСлужебныйПовтИсп/Module.bsl index be77e6e51..a19f68276 100644 --- a/SSL/src/CommonModules/ИнтерфейсODataСлужебныйПовтИсп/Module.bsl +++ b/SSL/src/CommonModules/ИнтерфейсODataСлужебныйПовтИсп/Module.bsl @@ -1,5 +1,5 @@ /////////////////////////////////////////////////////////////////////////////////////////////////////// -// Copyright (c) 2024, ООО 1С-Софт +// Copyright (c) 2025, ООО 1С-Софт // Все права защищены. Эта программа и сопроводительные материалы предоставляются // в соответствии с условиями лицензии Attribution 4.0 International (CC BY 4.0) // Текст лицензии доступен по ссылке: diff --git a/SSL/src/CommonModules/ИнформацияПриЗапуске/Module.bsl b/SSL/src/CommonModules/ИнформацияПриЗапуске/Module.bsl index 5e7035553..93774fe0d 100644 --- a/SSL/src/CommonModules/ИнформацияПриЗапуске/Module.bsl +++ b/SSL/src/CommonModules/ИнформацияПриЗапуске/Module.bsl @@ -1,5 +1,5 @@ /////////////////////////////////////////////////////////////////////////////////////////////////////// -// Copyright (c) 2024, ООО 1С-Софт +// Copyright (c) 2025, ООО 1С-Софт // Все права защищены. Эта программа и сопроводительные материалы предоставляются // в соответствии с условиями лицензии Attribution 4.0 International (CC BY 4.0) // Текст лицензии доступен по ссылке: diff --git a/SSL/src/CommonModules/ИнформацияПриЗапускеКлиент/Module.bsl b/SSL/src/CommonModules/ИнформацияПриЗапускеКлиент/Module.bsl index 9d7ec059e..5201c208b 100644 --- a/SSL/src/CommonModules/ИнформацияПриЗапускеКлиент/Module.bsl +++ b/SSL/src/CommonModules/ИнформацияПриЗапускеКлиент/Module.bsl @@ -1,5 +1,5 @@ /////////////////////////////////////////////////////////////////////////////////////////////////////// -// Copyright (c) 2024, ООО 1С-Софт +// Copyright (c) 2025, ООО 1С-Софт // Все права защищены. Эта программа и сопроводительные материалы предоставляются // в соответствии с условиями лицензии Attribution 4.0 International (CC BY 4.0) // Текст лицензии доступен по ссылке: diff --git a/SSL/src/CommonModules/ИнформацияПриЗапускеПереопределяемый/Module.bsl b/SSL/src/CommonModules/ИнформацияПриЗапускеПереопределяемый/Module.bsl index 67a2ee94a..12a19e4fe 100644 --- a/SSL/src/CommonModules/ИнформацияПриЗапускеПереопределяемый/Module.bsl +++ b/SSL/src/CommonModules/ИнформацияПриЗапускеПереопределяемый/Module.bsl @@ -1,5 +1,5 @@ /////////////////////////////////////////////////////////////////////////////////////////////////////// -// Copyright (c) 2024, ООО 1С-Софт +// Copyright (c) 2025, ООО 1С-Софт // Все права защищены. Эта программа и сопроводительные материалы предоставляются // в соответствии с условиями лицензии Attribution 4.0 International (CC BY 4.0) // Текст лицензии доступен по ссылке: diff --git a/SSL/src/CommonModules/КалендарныеГрафики/Module.bsl b/SSL/src/CommonModules/КалендарныеГрафики/Module.bsl index 176efea18..4a8eea46d 100644 --- a/SSL/src/CommonModules/КалендарныеГрафики/Module.bsl +++ b/SSL/src/CommonModules/КалендарныеГрафики/Module.bsl @@ -1,5 +1,5 @@ /////////////////////////////////////////////////////////////////////////////////////////////////////// -// Copyright (c) 2024, ООО 1С-Софт +// Copyright (c) 2025, ООО 1С-Софт // Все права защищены. Эта программа и сопроводительные материалы предоставляются // в соответствии с условиями лицензии Attribution 4.0 International (CC BY 4.0) // Текст лицензии доступен по ссылке: diff --git a/SSL/src/CommonModules/КалендарныеГрафикиЛокализация/Module.bsl b/SSL/src/CommonModules/КалендарныеГрафикиЛокализация/Module.bsl index 1d7c492fc..30b70e22c 100644 --- a/SSL/src/CommonModules/КалендарныеГрафикиЛокализация/Module.bsl +++ b/SSL/src/CommonModules/КалендарныеГрафикиЛокализация/Module.bsl @@ -1,5 +1,5 @@ /////////////////////////////////////////////////////////////////////////////////////////////////////// -// Copyright (c) 2024, ООО 1С-Софт +// Copyright (c) 2025, ООО 1С-Софт // Все права защищены. Эта программа и сопроводительные материалы предоставляются // в соответствии с условиями лицензии Attribution 4.0 International (CC BY 4.0) // Текст лицензии доступен по ссылке: diff --git a/SSL/src/CommonModules/КалендарныеГрафикиПереопределяемый/Module.bsl b/SSL/src/CommonModules/КалендарныеГрафикиПереопределяемый/Module.bsl index e6ddac671..d81d39df7 100644 --- a/SSL/src/CommonModules/КалендарныеГрафикиПереопределяемый/Module.bsl +++ b/SSL/src/CommonModules/КалендарныеГрафикиПереопределяемый/Module.bsl @@ -1,5 +1,5 @@ /////////////////////////////////////////////////////////////////////////////////////////////////////// -// Copyright (c) 2024, ООО 1С-Софт +// Copyright (c) 2025, ООО 1С-Софт // Все права защищены. Эта программа и сопроводительные материалы предоставляются // в соответствии с условиями лицензии Attribution 4.0 International (CC BY 4.0) // Текст лицензии доступен по ссылке: diff --git a/SSL/src/CommonModules/КалендарныеГрафикиСлужебный/Module.bsl b/SSL/src/CommonModules/КалендарныеГрафикиСлужебный/Module.bsl index af0868981..8ad49516f 100644 --- a/SSL/src/CommonModules/КалендарныеГрафикиСлужебный/Module.bsl +++ b/SSL/src/CommonModules/КалендарныеГрафикиСлужебный/Module.bsl @@ -1,5 +1,5 @@ /////////////////////////////////////////////////////////////////////////////////////////////////////// -// Copyright (c) 2024, ООО 1С-Софт +// Copyright (c) 2025, ООО 1С-Софт // Все права защищены. Эта программа и сопроводительные материалы предоставляются // в соответствии с условиями лицензии Attribution 4.0 International (CC BY 4.0) // Текст лицензии доступен по ссылке: diff --git a/SSL/src/CommonModules/КонструкторФормул/Module.bsl b/SSL/src/CommonModules/КонструкторФормул/Module.bsl index 945c6f582..d4d423ad5 100644 --- a/SSL/src/CommonModules/КонструкторФормул/Module.bsl +++ b/SSL/src/CommonModules/КонструкторФормул/Module.bsl @@ -1,5 +1,5 @@ /////////////////////////////////////////////////////////////////////////////////////////////////////// -// Copyright (c) 2024, ООО 1С-Софт +// Copyright (c) 2025, ООО 1С-Софт // Все права защищены. Эта программа и сопроводительные материалы предоставляются // в соответствии с условиями лицензии Attribution 4.0 International (CC BY 4.0) // Текст лицензии доступен по ссылке: @@ -137,7 +137,11 @@ // // Параметры: // Форма - ФормаКлиентскогоПриложения -// ПараметрыЗаполнения - Структура +// ПараметрыЗаполнения - Структура: +// * ИдентификаторСтроки - Строка, Число +// * ИмяСписка - Строка +// * КоллекцииПолей - Неопределено, Массив из ДоступныеПоляКомпоновкиДанных - указывается при использовании компоновщика +// настроек, для учета случаев его переинициализации (например неявной, при перезапуске рабочего процесса). // Процедура ЗаполнитьСписокДоступныхПолей(Форма, ПараметрыЗаполнения) Экспорт diff --git a/SSL/src/CommonModules/КонструкторФормулВызовСервера/Module.bsl b/SSL/src/CommonModules/КонструкторФормулВызовСервера/Module.bsl index 49f52b7fd..635ef78a1 100644 --- a/SSL/src/CommonModules/КонструкторФормулВызовСервера/Module.bsl +++ b/SSL/src/CommonModules/КонструкторФормулВызовСервера/Module.bsl @@ -1,5 +1,5 @@ /////////////////////////////////////////////////////////////////////////////////////////////////////// -// Copyright (c) 2024, ООО 1С-Софт +// Copyright (c) 2025, ООО 1С-Софт // Все права защищены. Эта программа и сопроводительные материалы предоставляются // в соответствии с условиями лицензии Attribution 4.0 International (CC BY 4.0) // Текст лицензии доступен по ссылке: diff --git a/SSL/src/CommonModules/КонструкторФормулКлиент/Module.bsl b/SSL/src/CommonModules/КонструкторФормулКлиент/Module.bsl index 577e7399b..eae44241e 100644 --- a/SSL/src/CommonModules/КонструкторФормулКлиент/Module.bsl +++ b/SSL/src/CommonModules/КонструкторФормулКлиент/Module.bsl @@ -1,5 +1,5 @@ /////////////////////////////////////////////////////////////////////////////////////////////////////// -// Copyright (c) 2024, ООО 1С-Софт +// Copyright (c) 2025, ООО 1С-Софт // Все права защищены. Эта программа и сопроводительные материалы предоставляются // в соответствии с условиями лицензии Attribution 4.0 International (CC BY 4.0) // Текст лицензии доступен по ссылке: @@ -90,6 +90,7 @@ ПараметрыЗаполнения = Новый Структура; ПараметрыЗаполнения.Вставить("ИдентификаторСтроки", ИдентификаторСтроки); ПараметрыЗаполнения.Вставить("ИмяСписка", СписокПолей.Имя); + ПараметрыЗаполнения.Вставить("КоллекцииПолей"); Форма.Подключаемый_ЗаполнитьСписокДоступныхПолей(ПараметрыЗаполнения); СписокПолей.Развернуть(ИдентификаторСтроки); @@ -245,6 +246,7 @@ Или ИмяГруппыОператоров = "Операторы" Или ИмяГруппыОператоров = "ОперацииНадСтроками" Или ИмяГруппыОператоров = "ЛогическиеОперации" + Или Оператор.Имя = "СимволПС" Или ИмяГруппыОператоров = "ОперацииСравнения" И Оператор.Имя <> "В" Тогда Результат = Оператор.Заголовок; КонецЕсли; diff --git a/SSL/src/CommonModules/КонструкторФормулКлиентСервер/Module.bsl b/SSL/src/CommonModules/КонструкторФормулКлиентСервер/Module.bsl index 03ba7f432..26eb32110 100644 --- a/SSL/src/CommonModules/КонструкторФормулКлиентСервер/Module.bsl +++ b/SSL/src/CommonModules/КонструкторФормулКлиентСервер/Module.bsl @@ -1,5 +1,5 @@ /////////////////////////////////////////////////////////////////////////////////////////////////////// -// Copyright (c) 2024, ООО 1С-Софт +// Copyright (c) 2025, ООО 1С-Софт // Все права защищены. Эта программа и сопроводительные материалы предоставляются // в соответствии с условиями лицензии Attribution 4.0 International (CC BY 4.0) // Текст лицензии доступен по ссылке: diff --git a/SSL/src/CommonModules/КонструкторФормулПовтИсп/Module.bsl b/SSL/src/CommonModules/КонструкторФормулПовтИсп/Module.bsl index 83aef6e35..c100b81e7 100644 --- a/SSL/src/CommonModules/КонструкторФормулПовтИсп/Module.bsl +++ b/SSL/src/CommonModules/КонструкторФормулПовтИсп/Module.bsl @@ -1,5 +1,5 @@ /////////////////////////////////////////////////////////////////////////////////////////////////////// -// Copyright (c) 2024, ООО 1С-Софт +// Copyright (c) 2025, ООО 1С-Софт // Все права защищены. Эта программа и сопроводительные материалы предоставляются // в соответствии с условиями лицензии Attribution 4.0 International (CC BY 4.0) // Текст лицензии доступен по ссылке: diff --git a/SSL/src/CommonModules/КонструкторФормулСлужебный/Module.bsl b/SSL/src/CommonModules/КонструкторФормулСлужебный/Module.bsl index 63b25a701..bd799297e 100644 --- a/SSL/src/CommonModules/КонструкторФормулСлужебный/Module.bsl +++ b/SSL/src/CommonModules/КонструкторФормулСлужебный/Module.bsl @@ -1,5 +1,5 @@ /////////////////////////////////////////////////////////////////////////////////////////////////////// -// Copyright (c) 2024, ООО 1С-Софт +// Copyright (c) 2025, ООО 1С-Софт // Все права защищены. Эта программа и сопроводительные материалы предоставляются // в соответствии с условиями лицензии Attribution 4.0 International (CC BY 4.0) // Текст лицензии доступен по ссылке: @@ -848,7 +848,19 @@ КонецПроцедуры Процедура ОбновитьКоллекцииПолей(Форма, КоллекцииПолей, ИмяСпискаПолей = "ДоступныеПоля") Экспорт + ОбновитьИсточникиДоступныхПолей(Форма, КоллекцииПолей, ИмяСпискаПолей); + Форма[ИмяСпискаПолей].ПолучитьЭлементы().Очистить(); + НастройкиСписка = КонструкторФормулКлиентСервер.НастройкиСпискаПолей(Форма, ИмяСпискаПолей); + + ПараметрыЗаполненияСпискаДоступныхРеквизитов = ПараметрыЗаполненияСпискаДоступныхРеквизитов(Форма[ИмяСпискаПолей]); + ПараметрыЗаполненияСпискаДоступныхРеквизитов.НастройкиСписка = НастройкиСписка; + + ИсточникиДоступныхПолей = СписокИсточниковДоступныхПолей(Форма, ИмяСпискаПолей); // ДанныеФормыКоллекция + ЗаполнитьСписокДоступныхРеквизитов(ПараметрыЗаполненияСпискаДоступныхРеквизитов, ИсточникиДоступныхПолей); +КонецПроцедуры + +Процедура ОбновитьИсточникиДоступныхПолей(Форма, КоллекцииПолей, ИмяСпискаПолей) ИсточникиДоступныхПолей = СписокИсточниковДоступныхПолей(Форма, ИмяСпискаПолей); // ДанныеФормыКоллекция ИсточникиДоступныхПолей.Очистить(); @@ -867,14 +879,6 @@ ИсточникДоступныхПолей.КоллекцияПолей = КоллекцияПолей; ИсточникДоступныхПолей.Корневой = Истина; КонецЦикла; - - Форма[ИмяСпискаПолей].ПолучитьЭлементы().Очистить(); - НастройкиСписка = КонструкторФормулКлиентСервер.НастройкиСпискаПолей(Форма, ИмяСпискаПолей); - - ПараметрыЗаполненияСпискаДоступныхРеквизитов = ПараметрыЗаполненияСпискаДоступныхРеквизитов(Форма[ИмяСпискаПолей]); - ПараметрыЗаполненияСпискаДоступныхРеквизитов.НастройкиСписка = НастройкиСписка; - ЗаполнитьСписокДоступныхРеквизитов(ПараметрыЗаполненияСпискаДоступныхРеквизитов, ИсточникиДоступныхПолей); - КонецПроцедуры Функция ТаблицаПолей() Экспорт @@ -1755,7 +1759,10 @@ ИдентификаторСтроки = ПараметрыЗаполнения.ИдентификаторСтроки; ИмяСписка = ПараметрыЗаполнения.ИмяСписка; - + КоллекцииПолей = ПараметрыЗаполнения.КоллекцииПолей; + Если ЗначениеЗаполнено(КоллекцииПолей) Тогда + ОбновитьИсточникиДоступныхПолей(Форма, КоллекцииПолей, ИмяСписка); + КонецЕсли; РазвернутьРеквизит(ИдентификаторСтроки, ИмяСписка, Форма); КонецПроцедуры @@ -2834,13 +2841,15 @@ ДобавитьОператорВГруппу(Группа, "ВРег", НСтр("ru = 'Все прописные'"), Тип, Истина); ДобавитьОператорВГруппу(Группа, "НРег", НСтр("ru = 'Все строчные'"), Тип, Истина); ДобавитьОператорВГруппу(Группа, "ТРег", НСтр("ru = 'Каждое слово с прописной'"), Тип, Истина); - ДобавитьОператорВГруппу(Группа, "Лев", НСтр("ru = 'Символы слева'"), Тип, Истина); - ДобавитьОператорВГруппу(Группа, "Прав", НСтр("ru = 'Символы справа'"), Тип, Истина); + ДобавитьОператорВГруппу(Группа, "Лев", НСтр("ru = 'Строка слева'"), Тип, Истина); + ДобавитьОператорВГруппу(Группа, "Прав", НСтр("ru = 'Строка справа'"), Тип, Истина); ДобавитьОператорВГруппу(Группа, "СокрЛ", НСтр("ru = 'Убрать пробелы слева'"), Тип, Истина); ДобавитьОператорВГруппу(Группа, "СокрЛП", НСтр("ru = 'Убрать пробелы слева и справа'"), Тип, Истина); ДобавитьОператорВГруппу(Группа, "СокрП", НСтр("ru = 'Убрать пробелы справа'"), Тип, Истина); ДобавитьОператорВГруппу(Группа, "СтрЗаменить", НСтр("ru = 'Заменить символы в строке'"), Тип, Истина); ДобавитьОператорВГруппу(Группа, "СтрДлина", НСтр("ru = 'Длина строки'"), Новый ОписаниеТипов("Число"), Истина); + ДобавитьОператорВГруппу(Группа, "Сред", НСтр("ru = 'Часть строки'"), Тип, Истина); + ДобавитьОператорВГруппу(Группа, "СимволПС", НСтр("ru = 'С новой строки'")); КонецПроцедуры @@ -2852,9 +2861,12 @@ Группа.Порядок = 6; Группа.Картинка = БиблиотекаКартинок.ТипФункция; - ДобавитьОператорВГруппу(Группа, "?", НСтр("ru = 'Условие'"), Новый ОписаниеТипов("Булево"), Истина); - ДобавитьОператорВГруппу(Группа, "ЗначениеЗаполнено", НСтр("ru = 'Значение заполнено'"), Новый ОписаниеТипов("Булево"), Истина); - ДобавитьОператорВГруппу(Группа, "Формат", НСтр("ru = 'Формат'"), Новый ОписаниеТипов("Строка"), Истина); + ТипБулево = Новый ОписаниеТипов("Булево"); + ТипСтрока = Новый ОписаниеТипов("Строка"); + + ДобавитьОператорВГруппу(Группа, "?", НСтр("ru = 'Условие'"), ТипБулево, Истина); + ДобавитьОператорВГруппу(Группа, "ЗначениеЗаполнено", НСтр("ru = 'Значение заполнено'"), ТипБулево, Истина); + ДобавитьОператорВГруппу(Группа, "Формат", НСтр("ru = 'Формат'"), ТипСтрока, Истина); КонецПроцедуры diff --git a/SSL/src/CommonModules/КонтрольВеденияУчета/Module.bsl b/SSL/src/CommonModules/КонтрольВеденияУчета/Module.bsl index 6c2cae4aa..aaad476c0 100644 --- a/SSL/src/CommonModules/КонтрольВеденияУчета/Module.bsl +++ b/SSL/src/CommonModules/КонтрольВеденияУчета/Module.bsl @@ -1,5 +1,5 @@ /////////////////////////////////////////////////////////////////////////////////////////////////////// -// Copyright (c) 2024, ООО 1С-Софт +// Copyright (c) 2025, ООО 1С-Софт // Все права защищены. Эта программа и сопроводительные материалы предоставляются // в соответствии с условиями лицензии Attribution 4.0 International (CC BY 4.0) // Текст лицензии доступен по ссылке: diff --git a/SSL/src/CommonModules/КонтрольВеденияУчетаВызовСервера/Module.bsl b/SSL/src/CommonModules/КонтрольВеденияУчетаВызовСервера/Module.bsl index bb7956cd8..d8c951848 100644 --- a/SSL/src/CommonModules/КонтрольВеденияУчетаВызовСервера/Module.bsl +++ b/SSL/src/CommonModules/КонтрольВеденияУчетаВызовСервера/Module.bsl @@ -1,5 +1,5 @@ /////////////////////////////////////////////////////////////////////////////////////////////////////// -// Copyright (c) 2024, ООО 1С-Софт +// Copyright (c) 2025, ООО 1С-Софт // Все права защищены. Эта программа и сопроводительные материалы предоставляются // в соответствии с условиями лицензии Attribution 4.0 International (CC BY 4.0) // Текст лицензии доступен по ссылке: diff --git a/SSL/src/CommonModules/КонтрольВеденияУчетаГлобальный/Module.bsl b/SSL/src/CommonModules/КонтрольВеденияУчетаГлобальный/Module.bsl index 0730fa2cd..8951571e9 100644 --- a/SSL/src/CommonModules/КонтрольВеденияУчетаГлобальный/Module.bsl +++ b/SSL/src/CommonModules/КонтрольВеденияУчетаГлобальный/Module.bsl @@ -1,5 +1,5 @@ /////////////////////////////////////////////////////////////////////////////////////////////////////// -// Copyright (c) 2024, ООО 1С-Софт +// Copyright (c) 2025, ООО 1С-Софт // Все права защищены. Эта программа и сопроводительные материалы предоставляются // в соответствии с условиями лицензии Attribution 4.0 International (CC BY 4.0) // Текст лицензии доступен по ссылке: diff --git a/SSL/src/CommonModules/КонтрольВеденияУчетаКлиент/Module.bsl b/SSL/src/CommonModules/КонтрольВеденияУчетаКлиент/Module.bsl index 329489d5c..3da4d9832 100644 --- a/SSL/src/CommonModules/КонтрольВеденияУчетаКлиент/Module.bsl +++ b/SSL/src/CommonModules/КонтрольВеденияУчетаКлиент/Module.bsl @@ -1,5 +1,5 @@ /////////////////////////////////////////////////////////////////////////////////////////////////////// -// Copyright (c) 2024, ООО 1С-Софт +// Copyright (c) 2025, ООО 1С-Софт // Все права защищены. Эта программа и сопроводительные материалы предоставляются // в соответствии с условиями лицензии Attribution 4.0 International (CC BY 4.0) // Текст лицензии доступен по ссылке: diff --git a/SSL/src/CommonModules/КонтрольВеденияУчетаПереопределяемый/Module.bsl b/SSL/src/CommonModules/КонтрольВеденияУчетаПереопределяемый/Module.bsl index fa2e167df..0b7039d61 100644 --- a/SSL/src/CommonModules/КонтрольВеденияУчетаПереопределяемый/Module.bsl +++ b/SSL/src/CommonModules/КонтрольВеденияУчетаПереопределяемый/Module.bsl @@ -1,5 +1,5 @@ /////////////////////////////////////////////////////////////////////////////////////////////////////// -// Copyright (c) 2024, ООО 1С-Софт +// Copyright (c) 2025, ООО 1С-Софт // Все права защищены. Эта программа и сопроводительные материалы предоставляются // в соответствии с условиями лицензии Attribution 4.0 International (CC BY 4.0) // Текст лицензии доступен по ссылке: diff --git a/SSL/src/CommonModules/КонтрольВеденияУчетаСлужебный/Module.bsl b/SSL/src/CommonModules/КонтрольВеденияУчетаСлужебный/Module.bsl index ea6dfc6b2..cc9ab94dc 100644 --- a/SSL/src/CommonModules/КонтрольВеденияУчетаСлужебный/Module.bsl +++ b/SSL/src/CommonModules/КонтрольВеденияУчетаСлужебный/Module.bsl @@ -1,5 +1,5 @@ /////////////////////////////////////////////////////////////////////////////////////////////////////// -// Copyright (c) 2024, ООО 1С-Софт +// Copyright (c) 2025, ООО 1С-Софт // Все права защищены. Эта программа и сопроводительные материалы предоставляются // в соответствии с условиями лицензии Attribution 4.0 International (CC BY 4.0) // Текст лицензии доступен по ссылке: @@ -274,7 +274,7 @@ Если Результат.ДатаПоследнейПроверки = Неопределено Тогда Результат.ПредупреждатьОНеобходимостиПовторнойПроверки = Истина; Иначе - ВремяСПоследнегоЗапуска = (ТекущаяДатаСеанса() - Результат.ДатаПоследнейПроверки) / (1000 * 60 * 60 * 30); + ВремяСПоследнегоЗапуска = (ТекущаяДатаСеанса() - Результат.ДатаПоследнейПроверки) / (60 * 60 * 24 * 30); Результат.ПредупреждатьОНеобходимостиПовторнойПроверки = ВремяСПоследнегоЗапуска > 1; // Больше 1 месяца. КонецЕсли; @@ -2127,6 +2127,206 @@ #КонецОбласти +#Область ИнформацияОРегистрах + +Функция СсылочныеПоляРегистраСведений(ОбъектМетаданных) + ИнформацияОРегистре = ИнформацияОНезависимомРегистре(ОбъектМетаданных).ИнформацияОРегистре; + Результат = НовоеОписаниеПолей(); + Если ОбъектМетаданных.РежимЗаписи = Метаданные.СвойстваОбъектов.РежимЗаписиРегистра.ПодчинениеРегистратору Тогда + Поле = Результат.Добавить(); + Поле.Имя = "Регистратор"; + Поле.ПредставлениеВОписание = ПредставлениеВОписание(ОбъектМетаданных.СтандартныеРеквизиты.Регистратор); + КонецЕсли; + + Для Каждого ИнформацияОРеквизите Из ИнформацияОРегистре Цикл + Если ИнформацияОРеквизите.СодержитСсылочныйТип Тогда + Поле = Результат.Добавить(); + Поле.Имя = ИнформацияОРеквизите.ИмяМетаданных; + Поле.ПредставлениеВОписание = ИнформацияОРеквизите.ПредставлениеВОписание; + КонецЕсли; + КонецЦикла; + Возврат Результат; +КонецФункции + +Функция ПредставлениеВОписание(МетаданныеПоля, Постфикс = "") + Результат = МетаданныеПоля.Синоним; + Если ЗначениеЗаполнено(Результат) Тогда + СинонимБезРазделителей = СтрЗаменить(МетаданныеПоля.Синоним, " ", ""); + СинонимБезРазделителей = СтрЗаменить(СинонимБезРазделителей, ":", ""); + СинонимБезРазделителей = СтрЗаменить(СинонимБезРазделителей, "-", ""); + СинонимБезРазделителей = СтрЗаменить(СинонимБезРазделителей, "(", ""); + СинонимБезРазделителей = СтрЗаменить(СинонимБезРазделителей, ")", ""); + СинонимОбразованОтИмени = НРег(СинонимБезРазделителей) = НРег(МетаданныеПоля.Имя); + Если НЕ СинонимОбразованОтИмени Тогда + Результат = СтрШаблон("%1 (%2)", МетаданныеПоля.Синоним, МетаданныеПоля.Имя); + КонецЕсли; + Иначе + Результат = МетаданныеПоля.Имя; + КонецЕсли; + + Если ЗначениеЗаполнено(Постфикс) Тогда + Результат = Результат + " " + Постфикс; + КонецЕсли; + + Возврат Результат; +КонецФункции + +Процедура ДобавитьИнформациюОРеквизитах(ИнформацияОРегистре, МетаЭлементы, ТипМетаданныхВИменительномПадеже) + Для Каждого МетаданныеПоля Из МетаЭлементы Цикл + ИнформацияОРеквизите = ИнформацияОРегистре.Добавить(); + ИнформацияОРеквизите.ТипМетаданныхВИменительномПадеже = ТипМетаданныхВИменительномПадеже; + ИнформацияОРеквизите.ИмяМетаданных = МетаданныеПоля.Имя; + ИнформацияОРеквизите.СодержитСсылочныйТип = СодержитСсылочныйТип(МетаданныеПоля); + ИнформацияОРеквизите.ЭтоИзмерение = ТипМетаданныхВИменительномПадеже = "Измерение"; + ИнформацияОРеквизите.ПредставлениеВОписание = ПредставлениеВОписание(МетаданныеПоля); + КонецЦикла; +КонецПроцедуры + +Функция ИнформацияОНезависимомРегистре(ОбъектМетаданных, ПолучитьИзмерения = Истина, ПолучитьРесурсы = Истина, ПолучитьРеквизиты = Истина) + + ИнформацияОРегистре = Новый ТаблицаЗначений; + ИнформацияОРегистре.Колонки.Добавить("ТипМетаданныхВИменительномПадеже", Новый ОписаниеТипов("Строка", , , , Новый КвалификаторыСтроки(16))); + ИнформацияОРегистре.Колонки.Добавить("ИмяМетаданных", Новый ОписаниеТипов("Строка", , , , Новый КвалификаторыСтроки(128))); + ИнформацияОРегистре.Колонки.Добавить("СодержитСсылочныйТип", Новый ОписаниеТипов("Булево")); + ИнформацияОРегистре.Колонки.Добавить("АлиасПоля"); + ИнформацияОРегистре.Колонки.Добавить("ЭтоИзмерение", Новый ОписаниеТипов("Булево")); + ИнформацияОРегистре.Колонки.Добавить("ПредставлениеВОписание"); + + Если ПолучитьИзмерения Тогда + ДобавитьИнформациюОРеквизитах(ИнформацияОРегистре, ОбъектМетаданных.Измерения, "Измерение"); + КонецЕсли; + + Если ПолучитьРесурсы Тогда + ДобавитьИнформациюОРеквизитах(ИнформацияОРегистре, ОбъектМетаданных.Ресурсы, "Ресурс"); + КонецЕсли; + + Если ПолучитьРеквизиты Тогда + ДобавитьИнформациюОРеквизитах(ИнформацияОРегистре, ОбъектМетаданных.Реквизиты, "Реквизит"); + КонецЕсли; + + СписокПолейВыборки = Новый Массив(); + Для Каждого ИнформацияОРеквизите Из ИнформацияОРегистре Цикл + АлиасПоля = СтрШаблон("%1%2Ссылка", ИнформацияОРеквизите.ИмяМетаданных, ИнформацияОРеквизите.ТипМетаданныхВИменительномПадеже); // @query-part + ВыражениеВыбора = СтрШаблон("ПсевдонимЗаданнойТаблицы.%1 Как %2", ИнформацияОРеквизите.ИмяМетаданных, АлиасПоля); // @query-part + СписокПолейВыборки.Добавить(ВыражениеВыбора); + КонецЦикла; + + Результат = Новый Структура; + Результат.Вставить("ИнформацияОРегистре", ИнформацияОРегистре); + Результат.Вставить("ПоляВыборки", СтрСоединить(СписокПолейВыборки, ",")); + Возврат Результат; + +КонецФункции + +Функция ЗначенияПозицииЗаписи(ВыборкаРегистра, ПоляПозицииЗаписи) + Результат = Новый Структура; + Для Каждого Поле Из ПоляПозицииЗаписи Цикл + ЗначениеПоля = ВыборкаРегистра[Поле.Имя]; + Результат.Вставить(Поле.Имя, ЗначениеПоля); + КонецЦикла; + Возврат Результат; +КонецФункции + +Функция ПредставлениеПозицииЗаписи(ВыборкаРегистра, ПоляПозицииЗаписи) + ЧастиПредставления = Новый Массив(); + Для Каждого Поле Из ПоляПозицииЗаписи Цикл + ЗначениеПоляВПредставление = ВыборкаРегистра[Поле.Имя]; + Если НЕ ЗначениеЗаполнено(ЗначениеПоляВПредставление) Тогда + ЗначениеПоляВПредставление = НСтр("ru = '<не указан>'"); + КонецЕсли; + + ПредставлениеПоля = СтрШаблон("%1 = %2", Поле.ПредставлениеВОписание, ЗначениеПоляВПредставление); + Если Поле.Имя = "Регистратор" Тогда + Шаблон = НСтр("ru = '%1 (номер строки = %2)'"); + ПредставлениеПоля = СтроковыеФункцииКлиентСервер.ПодставитьПараметрыВСтроку(Шаблон, + ПредставлениеПоля, Формат(ВыборкаРегистра.НомерСтроки, "ЧГ=;")); + КонецЕсли; + ЧастиПредставления.Добавить(ПредставлениеПоля); + КонецЦикла; + Результат = СтрСоединить(ЧастиПредставления, Символы.ПС); + Возврат Результат; +КонецФункции + +Функция ПоляПозицииЗаписи(ОбъектМетаданных) + Результат = НовоеОписаниеПолей(); + + ЭтоРегистрСведенийБезРегистратора = ОбщегоНазначения.ЭтоРегистрСведений(ОбъектМетаданных) + И ОбъектМетаданных.РежимЗаписи <> Метаданные.СвойстваОбъектов.РежимЗаписиРегистра.ПодчинениеРегистратору; + Если ЭтоРегистрСведенийБезРегистратора Тогда + Если ОбъектМетаданных.ПериодичностьРегистраСведений <> Метаданные.СвойстваОбъектов.ПериодичностьРегистраСведений.Непериодический Тогда + Поле = Результат.Добавить(); + Поле.Имя = "Период"; + Поле.ПредставлениеВОписание = ПредставлениеВОписание(ОбъектМетаданных.СтандартныеРеквизиты.Период); + КонецЕсли; + Для Каждого МетаИзмерение Из ОбъектМетаданных.Измерения Цикл + Поле = Результат.Добавить(); + Поле.Имя = МетаИзмерение.Имя; + Поле.ПредставлениеВОписание = ПредставлениеВОписание(МетаИзмерение); + КонецЦикла; + Иначе + Поле = Результат.Добавить(); + Поле.Имя = "Регистратор"; + Поле.ПредставлениеВОписание = ПредставлениеВОписание(ОбъектМетаданных.СтандартныеРеквизиты.Регистратор); + КонецЕсли; + Возврат Результат; +КонецФункции + +Функция ПоляОбязательныхРеквизитов(ОбъектМетаданных) + Результат = НовоеОписаниеПолей(); + КлассыРеквизитов = СтрРазделить("Измерения,Реквизиты,Ресурсы", ","); + + ЭтоРегистрБухгалтерииСКорреспонденцией = ОбщегоНазначения.ЭтоРегистрБухгалтерии(ОбъектМетаданных) + И ОбъектМетаданных.Корреспонденция; + Для Каждого КлассРеквизитов Из КлассыРеквизитов Цикл + Для Каждого МетаданныеПоля Из ОбъектМетаданных[КлассРеквизитов] Цикл + Если МетаданныеПоля.ПроверкаЗаполнения <> ПроверкаЗаполнения.ВыдаватьОшибку Тогда + Продолжить; + КонецЕсли; + + ЭтоНеБалансовоеПоле = ЭтоРегистрБухгалтерииСКорреспонденцией + И (КлассРеквизитов = "Измерения" Или КлассРеквизитов = "Ресурсы") + И НЕ МетаданныеПоля.Балансовый; + Если ЭтоНеБалансовоеПоле Тогда + Поле = Результат.Добавить(); + Поле.Имя = МетаданныеПоля.Имя + "Дт"; + Поле.ПредставлениеВОписание = ПредставлениеВОписание(МетаданныеПоля, "ДТ"); + + Поле = Результат.Добавить(); + Поле.Имя = МетаданныеПоля.Имя + "Кт"; + Поле.ПредставлениеВОписание = ПредставлениеВОписание(МетаданныеПоля, "КТ"); + Иначе + Поле = Результат.Добавить(); + Поле.Имя = МетаданныеПоля.Имя; + Поле.ПредставлениеВОписание = ПредставлениеВОписание(МетаданныеПоля); + КонецЕсли; + КонецЦикла; + КонецЦикла; + + Возврат Результат; +КонецФункции + +Функция НовоеОписаниеПолей() + Результат = Новый ТаблицаЗначений(); + Результат.Колонки.Добавить("Имя"); + Результат.Колонки.Добавить("ПредставлениеВОписание"); + Возврат Результат; +КонецФункции + +Функция ВыборкаРегистра(ПолноеИмя, ПараметрыПроверки, ПоляПозицииЗаписи) + МенеджерРегистра = ОбщегоНазначения.МенеджерОбъектаПоПолномуИмени(ПолноеИмя); + + ЕстьПериод = ПоляПозицииЗаписи.Найти("Период", "Имя") <> Неопределено; + ДатаНачалаПроверки = ОбщегоНазначенияКлиентСервер.СвойствоСтруктуры(ПараметрыПроверки, "ДатаНачалаПроверки"); + Если ЕстьПериод И ЗначениеЗаполнено(ДатаНачалаПроверки) Тогда + Результат = МенеджерРегистра.Выбрать(ДатаНачалаПроверки); + Иначе + Результат = МенеджерРегистра.Выбрать(); + КонецЕсли; + Возврат Результат; +КонецФункции + +#КонецОбласти + #Область КонтрольСсылочнойЦелостности Процедура НайтиБитыеСсылки(ОбъектМетаданных, ПараметрыПроверки, ПроверенныеСсылки) @@ -2303,12 +2503,6 @@ КонецПроцедуры - -// Параметры: -// ОбъектМетаданных - ОбъектМетаданных -// Возвращаемое значение: -// Массив из Строка -// Функция СсылочныеРеквизитыОбъекта(ОбъектМетаданных) Результат = Новый Массив; @@ -2378,27 +2572,28 @@ Возврат Ложь; КонецЕсли; - Если ТипЗнч(ПроверяемыеДанные) = Тип("Число") Тогда + ТипПроверяемыхДанных = ТипЗнч(ПроверяемыеДанные); + Если ТипПроверяемыхДанных = Тип("Число") Тогда Возврат Ложь; КонецЕсли; - Если ТипЗнч(ПроверяемыеДанные) = Тип("Булево") Тогда + Если ТипПроверяемыхДанных = Тип("Булево") Тогда Возврат Ложь; КонецЕсли; - Если ТипЗнч(ПроверяемыеДанные) = Тип("Строка") Тогда + Если ТипПроверяемыхДанных = Тип("Строка") Тогда Возврат Ложь; КонецЕсли; - Если ТипЗнч(ПроверяемыеДанные) = Тип("Дата") Тогда + Если ТипПроверяемыхДанных = Тип("Дата") Тогда Возврат Ложь; КонецЕсли; - Если ТипЗнч(ПроверяемыеДанные) = Тип("УникальныйИдентификатор") Тогда + Если ТипПроверяемыхДанных = Тип("УникальныйИдентификатор") Тогда Возврат Ложь; КонецЕсли; - Если ТипЗнч(ПроверяемыеДанные) = Тип("ХранилищеЗначения") Тогда + Если ТипПроверяемыхДанных = Тип("ХранилищеЗначения") Тогда Возврат Ложь; КонецЕсли; @@ -2406,12 +2601,12 @@ Возврат Ложь; КонецЕсли; - Если ТипЗнч(ПроверяемыеДанные) = Тип("СправочникСсылка.ИдентификаторыОбъектовМетаданных") - Или ТипЗнч(ПроверяемыеДанные) = Тип("СправочникСсылка.ИдентификаторыОбъектовРасширений") Тогда + Если ТипПроверяемыхДанных = Тип("СправочникСсылка.ИдентификаторыОбъектовМетаданных") + Или ТипПроверяемыхДанных = Тип("СправочникСсылка.ИдентификаторыОбъектовРасширений") Тогда Возврат Ложь; КонецЕсли; - Если БизнесПроцессы.ТипВсеСсылкиТочекМаршрутаБизнесПроцессов().СодержитТип(ТипЗнч(ПроверяемыеДанные)) Тогда + Если БизнесПроцессы.ТипВсеСсылкиТочекМаршрутаБизнесПроцессов().СодержитТип(ТипПроверяемыхДанных) Тогда Возврат Ложь; КонецЕсли; @@ -2527,345 +2722,51 @@ КонецПроцедуры -Процедура НайтиБитыеСсылкиВРегистрахСведений(ОбъектМетаданных, ПараметрыПроверки, ПроверенныеСсылки) - - Если ОбъектМетаданных.РежимЗаписи = Метаданные.СвойстваОбъектов.РежимЗаписиРегистра.ПодчинениеРегистратору Тогда - НайтиБитыеСсылкиВПодчиненныхРегистрахСведений(ОбъектМетаданных, ПараметрыПроверки, ПроверенныеСсылки); - ИначеЕсли ОбъектМетаданных.ПериодичностьРегистраСведений <> Метаданные.СвойстваОбъектов.ПериодичностьРегистраСведений.Непериодический Тогда - НайтиБитыеСсылкиВНезависимыхПериодическихРегистрахСведений(ОбъектМетаданных, ПараметрыПроверки, ПроверенныеСсылки); - Иначе - НайтиБитыеСсылкиВНезависимыхНеПериодическихРегистрахСведений(ОбъектМетаданных, ПараметрыПроверки, ПроверенныеСсылки); - КонецЕсли; - -КонецПроцедуры - -Процедура НайтиБитыеСсылкиВПодчиненныхРегистрахСведений(ОбъектМетаданных, ПараметрыПроверки, ПроверенныеСсылки) - - МаксимальноеКоличество = МаксимальноеКоличествоПроверенныхСсылок(); - ПолноеИмя = ОбъектМетаданных.ПолноеИмя(); - РеквизитыРегистра = СсылочныеРеквизитыРегистра(ОбъектМетаданных); - - ЭтотРегистрПериодический = ОбъектМетаданных.ПериодичностьРегистраСведений <> Метаданные.СвойстваОбъектов.ПериодичностьРегистраСведений.Непериодический; - Если ЭтотРегистрПериодический Тогда - - Запрос = Новый Запрос( - "ВЫБРАТЬ ПЕРВЫЕ 1000 - | ПсевдонимЗаданнойТаблицы.Регистратор КАК РегистраторРеквизитСсылка, - | ПсевдонимЗаданнойТаблицы.Период КАК Период - |ИЗ - | &ОбъектМетаданных КАК ПсевдонимЗаданнойТаблицы - |ГДЕ - | ПсевдонимЗаданнойТаблицы.Период > &ДатаНачалаПроверки - | - |СГРУППИРОВАТЬ ПО - | ПсевдонимЗаданнойТаблицы.Период, - | ПсевдонимЗаданнойТаблицы.Регистратор - | - |УПОРЯДОЧИТЬ ПО - | ПсевдонимЗаданнойТаблицы.Период"); - - Запрос.УстановитьПараметр("ДатаНачалаПроверки", ПараметрыПроверки.ДатаНачалаПроверки); - - Иначе - - Запрос = Новый Запрос( - "ВЫБРАТЬ ПЕРВЫЕ 1000 - | ПсевдонимЗаданнойТаблицы.Регистратор КАК РегистраторРеквизитСсылка - |ИЗ - | &ОбъектМетаданных КАК ПсевдонимЗаданнойТаблицы - |ГДЕ - | ПсевдонимЗаданнойТаблицы.Регистратор > &Регистратор - | - |СГРУППИРОВАТЬ ПО - | ПсевдонимЗаданнойТаблицы.Регистратор - | - |УПОРЯДОЧИТЬ ПО - | ПсевдонимЗаданнойТаблицы.Регистратор"); - - Запрос.УстановитьПараметр("Регистратор", ""); - - КонецЕсли; - - ИмяТаблицы = СтрЗаменить(ПолноеИмя, ".", ""); - Запрос.Текст = СтрЗаменить(Запрос.Текст, "ПсевдонимЗаданнойТаблицы", ИмяТаблицы); - Запрос.Текст = СтрЗаменить(Запрос.Текст, "&ОбъектМетаданных", ПолноеИмя); - Результат = Запрос.Выполнить().Выгрузить(); - - МенеджерРегистра = ОбщегоНазначения.МенеджерОбъектаПоПолномуИмени(ПолноеИмя); - - Пока Результат.Количество() > 0 Цикл - - Для Каждого СтрокаРезультата Из Результат Цикл - - ТекущийНаборЗаписей = МенеджерРегистра.СоздатьНаборЗаписей(); // РегистрСведенийНаборЗаписей - //@skip-check bsl-legacy-check-static-feature-access-for-unknown-left-part - подчиненный регистр сведений. - ТекущийНаборЗаписей.Отбор.Регистратор.Установить(СтрокаРезультата.РегистраторРеквизитСсылка); - ТекущийНаборЗаписей.Прочитать(); - - НомераПроблемныхЗаписей = ""; - Для Каждого ТекущаяЗапись Из ТекущийНаборЗаписей Цикл - Для Каждого ИмяРеквизита Из РеквизитыРегистра Цикл - Если ЭтоБитаяСсылка(ТекущаяЗапись[ИмяРеквизита], ПроверенныеСсылки) Тогда - НомераПроблемныхЗаписей = НомераПроблемныхЗаписей + ?(ЗначениеЗаполнено(НомераПроблемныхЗаписей), ", ", "") - + Формат(ТекущийНаборЗаписей.Индекс(ТекущаяЗапись) + 1, "ЧГ=0"); - КонецЕсли; - КонецЦикла; - КонецЦикла; - - Если ПроверенныеСсылки.Количество() >= МаксимальноеКоличество Тогда - ПроверенныеСсылки.Очистить(); - КонецЕсли; - - Если ПустаяСтрока(НомераПроблемныхЗаписей) Тогда - Продолжить; - КонецЕсли; - - Проблема = ОписаниеПроблемы(ОбщегоНазначения.ИдентификаторОбъектаМетаданных(ОбъектМетаданных), ПараметрыПроверки); // @skip-check query-in-loop - порционная проверка ведения учета - Проблема.УточнениеПроблемы = СтроковыеФункцииКлиентСервер.ПодставитьПараметрыВСтроку( - НСтр("ru = 'У регистра сведений ""%1"" в записях с номерами %2 по регистратору ""%3"" указаны ссылки на несуществующие данные.'"), - ОбъектМетаданных.Представление(), НомераПроблемныхЗаписей, СтрокаРезультата.РегистраторРеквизитСсылка); - - ДополнительнаяИнформация = Новый Структура; - ДополнительнаяИнформация.Вставить("Регистратор", СтрокаРезультата.РегистраторРеквизитСсылка); - Проблема.ДополнительнаяИнформация = Новый ХранилищеЗначения(ДополнительнаяИнформация, Новый СжатиеДанных(9)); - - ЗаписатьПроблему(Проблема, ПараметрыПроверки); // @skip-check query-in-loop - порционная проверка ведения учета - - КонецЦикла; - - Если ЭтотРегистрПериодический Тогда - Запрос.УстановитьПараметр("ДатаНачалаПроверки", СтрокаРезультата.Период); - Иначе - Запрос.УстановитьПараметр("Регистратор", СтрокаРезультата.РегистраторРеквизитСсылка); - КонецЕсли; - - Результат = Запрос.Выполнить().Выгрузить(); // @skip-check query-in-loop - порционная проверка ведения учета - - КонецЦикла; - -КонецПроцедуры - -Процедура НайтиБитыеСсылкиВНезависимыхПериодическихРегистрахСведений(ОбъектМетаданных, ПараметрыПроверки, ПроверенныеСсылки) - - МаксимальноеКоличество = МаксимальноеКоличествоПроверенныхСсылок(); - ИнформацияОНезависимомРегистре = ИнформацияОНезависимомРегистре(ОбъектМетаданных); - ПоляВыборки = ИнформацияОНезависимомРегистре.ПоляВыборки; - ИнформацияОРегистре = ИнформацияОНезависимомРегистре.ИнформацияОРегистре; - - ИмяТаблицы = СтрЗаменить(ОбъектМетаданных.ПолноеИмя(), ".", ""); - УсловиеПоИзмерениям = ""; - ПоляУпорядочивания = ИмяТаблицы + "." + "Период"; - Измерения = ОбъектМетаданных.Измерения;// Массив из ОбъектМетаданныхИзмерение - - Для Каждого Измерение Из Измерения Цикл - УсловиеПоИзмерениям = УсловиеПоИзмерениям + ?(ЗначениеЗаполнено(УсловиеПоИзмерениям), " И ", "") + ИмяТаблицы + "." + Измерение.Имя + " >= &" + Измерение.Имя; - ПоляУпорядочивания = ПоляУпорядочивания + ?(ЗначениеЗаполнено(ПоляУпорядочивания), ", ", "") + ИмяТаблицы + "." + Измерение.Имя; - КонецЦикла; - - ТекстЗапроса = - "ВЫБРАТЬ ПЕРВЫЕ 1000 - | ПсевдонимЗаданнойТаблицы.Период КАК Период, - | &ПоляВыборки КАК ПоляВыборки - |ИЗ - | &ОбъектМетаданных КАК ПсевдонимЗаданнойТаблицы - |ГДЕ - | (ПсевдонимЗаданнойТаблицы.Период > &Период - | И НЕ &ТолькоУказанныйПериод - | ИЛИ ПсевдонимЗаданнойТаблицы.Период = &Период - | И &ТолькоУказанныйПериод) - | И &Условие - | - |УПОРЯДОЧИТЬ ПО - | &ПоляУпорядочивания"; - - ТекстЗапроса = СтрЗаменить(ТекстЗапроса, "&ПоляУпорядочивания", ПоляУпорядочивания); - ТекстЗапроса = СтрЗаменить(ТекстЗапроса, "&ПоляВыборки КАК ПоляВыборки", ПоляВыборки); - ТекстЗапроса = СтрЗаменить(ТекстЗапроса, "&ОбъектМетаданных", ОбъектМетаданных.ПолноеИмя()); - ТекстЗапроса = СтрЗаменить(ТекстЗапроса, "ПсевдонимЗаданнойТаблицы", ИмяТаблицы); - - ТекстПервогоЗапроса = СтрЗаменить(ТекстЗапроса, "&Условие", "Истина"); - ТекстЗапросаСУсловием = СтрЗаменить(ТекстЗапроса, "&Условие", УсловиеПоИзмерениям); - - Запрос = Новый Запрос(ТекстПервогоЗапроса); - Запрос.УстановитьПараметр("Период", ПараметрыПроверки.ДатаНачалаПроверки); - Запрос.УстановитьПараметр("ТолькоУказанныйПериод", Ложь); - Результат = Запрос.Выполнить().Выгрузить(); - ЭтоПервыйПроход = Истина; - - Пока Результат.Количество() > 0 Цикл - - // Последняя запись уже проверена на предыдущей итерации. - Если Не ЭтоПервыйПроход И Результат.Количество() = 1 Тогда - Прервать; - КонецЕсли; - - Для Каждого СтрокаРезультата Из Результат Цикл - - Если Не ЭтоПервыйПроход И Результат.Индекс(СтрокаРезультата) = 0 Тогда - Продолжить; - КонецЕсли; - Для Каждого ИнформацияОРеквизите Из ИнформацияОРегистре Цикл - - ТекущаяСсылка = СтрокаРезультата[ИнформацияОРеквизите.ИмяМетаданных + ИнформацияОРеквизите.ТипМетаданныхВИменительномПадеже + "Ссылка"]; - Если Не ЭтоБитаяСсылка(ТекущаяСсылка, ПроверенныеСсылки) Тогда - Продолжить; - КонецЕсли; - - ДополнительнаяИнформация = Новый Структура; - ДополнительнаяИнформация.Вставить("Период", СтрокаРезультата.Период); - Для Каждого Измерение Из Измерения Цикл - ИзмерениеСсылка = СтрокаРезультата[Измерение.Имя + "ИзмерениеСсылка"]; - ДополнительнаяИнформация.Вставить(Измерение.Имя, ИзмерениеСсылка); - КонецЦикла; - - БитаяСсылка = СтрокаРезультата[ИнформацияОРеквизите.ИмяМетаданных + ИнформацияОРеквизите.ТипМетаданныхВИменительномПадеже + "Ссылка"]; - Проблема = ОписаниеПроблемы(ОбщегоНазначения.ИдентификаторОбъектаМетаданных(ОбъектМетаданных), ПараметрыПроверки); // @skip-check query-in-loop - порционная проверка ведения учета - Проблема.УточнениеПроблемы = СтроковыеФункцииКлиентСервер.ПодставитьПараметрыВСтроку( - НСтр("ru = 'У регистра сведений ""%1"" в %2, по комбинации измерений ""%3"" указана ссылка на несуществующий элемент: ""%4"" (%5).'"), - ОбъектМетаданных.Представление(), ИнформацияОРеквизите.ТипМетаданныхВТворительномПадеже, - ПоляУпорядочивания, - БитаяСсылка, - ТипЗнч(БитаяСсылка)); - Проблема.ДополнительнаяИнформация = Новый ХранилищеЗначения(ДополнительнаяИнформация, Новый СжатиеДанных(9)); - ЗаписатьПроблему(Проблема, ПараметрыПроверки); // @skip-check query-in-loop - порционная проверка ведения учета - - КонецЦикла; - - Если ПроверенныеСсылки.Количество() >= МаксимальноеКоличество Тогда - ПроверенныеСсылки.Очистить(); - КонецЕсли; - - КонецЦикла; - - Если ЭтоПервыйПроход Тогда - ЭтоПервыйПроход = Ложь; - КонецЕсли; - - // После прохода по всем периодам делаем дообработку по последнему периоду. - Запрос.Текст = ТекстЗапросаСУсловием; - Запрос.УстановитьПараметр("Период", СтрокаРезультата["Период"]); - Запрос.УстановитьПараметр("ТолькоУказанныйПериод", Истина); - Для Каждого Измерение Из Измерения Цикл - Запрос.УстановитьПараметр(Измерение.Имя, СтрокаРезультата[Измерение.Имя + "ИзмерениеСсылка"]); - КонецЦикла; - Результат = Запрос.Выполнить().Выгрузить(); // @skip-check query-in-loop - порционная проверка ведения учета - // Если по последнему периоду все записи обработаны, то выбираем все записи по следующим периодам. - Если Результат.Количество() = 0 Или Результат.Количество() = 1 Тогда - Запрос.Текст = ТекстПервогоЗапроса; - Запрос.УстановитьПараметр("Период", СтрокаРезультата["Период"]); - Запрос.УстановитьПараметр("ТолькоУказанныйПериод", Ложь); - Результат = Запрос.Выполнить().Выгрузить(); // @skip-check query-in-loop - порционная проверка ведения учета - ЭтоПервыйПроход = Истина; - КонецЕсли; - - КонецЦикла; - -КонецПроцедуры - +// Найти битые ссылки в регистрах сведений. +// // Параметры: -// ОбъектМетаданных - ОбъектМетаданныхРегистрСведений -// ПараметрыПроверки - см. КонтрольВеденияУчета.ОписаниеПроблемы -// ПроверенныеСсылки - Соответствие +// ОбъектМетаданных - ОбъектМетаданныхРегистрСведений +// ПараметрыПроверки - см. КонтрольВеденияУчета.ОписаниеПроблемы +// ПроверенныеСсылки - Соответствие - кэш проверяемых ссылок // -Процедура НайтиБитыеСсылкиВНезависимыхНеПериодическихРегистрахСведений(ОбъектМетаданных, ПараметрыПроверки, ПроверенныеСсылки) +Процедура НайтиБитыеСсылкиВРегистрахСведений(ОбъектМетаданных, ПараметрыПроверки, ПроверенныеСсылки) + СсылочныеПоляРегистраСведений = СсылочныеПоляРегистраСведений(ОбъектМетаданных); + Если НЕ ЗначениеЗаполнено(СсылочныеПоляРегистраСведений) Тогда + Возврат; + КонецЕсли; - МаксимальноеКоличество = МаксимальноеКоличествоПроверенныхСсылок(); - ИнформацияОНезависимомРегистре = ИнформацияОНезависимомРегистре(ОбъектМетаданных); - ПоляВыборки = ИнформацияОНезависимомРегистре.ПоляВыборки; - ИнформацияОРегистре = ИнформацияОНезависимомРегистре.ИнформацияОРегистре; - - ИмяТаблицы = СтрЗаменить(ОбъектМетаданных.ПолноеИмя(), ".", ""); - УсловиеПоИзмерениям = ""; - ПоляУпорядочивания = ""; - - ОписаниеИзмерений = ОбъектМетаданных.Измерения; - Для Каждого Измерение Из ОписаниеИзмерений Цикл - УсловиеПоИзмерениям = УсловиеПоИзмерениям + ?(ЗначениеЗаполнено(УсловиеПоИзмерениям), " И ", "") + ИмяТаблицы + "." + Измерение.Имя + " >= &" + Измерение.Имя; - ПоляУпорядочивания = ПоляУпорядочивания + ?(ЗначениеЗаполнено(ПоляУпорядочивания), ", ", "") + ИмяТаблицы + "." + Измерение.Имя; - КонецЦикла; - - ТекстЗапроса = - "ВЫБРАТЬ ПЕРВЫЕ 1000 - | &ПоляВыборки КАК ПоляВыборки - |ИЗ - | &ОбъектМетаданных КАК ПсевдонимЗаданнойТаблицы - |ГДЕ - | &Условие - | - |УПОРЯДОЧИТЬ ПО - | &ПоляУпорядочивания"; - - ТекстЗапроса = СтрЗаменить(ТекстЗапроса, "&ПоляУпорядочивания", ПоляУпорядочивания); - ТекстЗапроса = СтрЗаменить(ТекстЗапроса, "&ПоляВыборки КАК ПоляВыборки", ПоляВыборки); - ТекстЗапроса = СтрЗаменить(ТекстЗапроса, "&ОбъектМетаданных", ОбъектМетаданных.ПолноеИмя()); - ТекстЗапроса = СтрЗаменить(ТекстЗапроса, "ПсевдонимЗаданнойТаблицы", ИмяТаблицы); - - ТекстПервогоЗапроса = СтрЗаменить(ТекстЗапроса, "&Условие", "Истина"); - ТекстЗапросаСУсловием = СтрЗаменить(ТекстЗапроса, "&Условие", УсловиеПоИзмерениям); - - Запрос = Новый Запрос(ТекстПервогоЗапроса); - - Результат = Запрос.Выполнить().Выгрузить(); - ЭтоПервыйПроход = Истина; - - Пока Результат.Количество() > 0 Цикл - - // Последняя запись уже проверена на предыдущей итерации. - Если Не ЭтоПервыйПроход И Результат.Количество() = 1 Тогда - Прервать; - КонецЕсли; - - Для Каждого СтрокаРезультата Из Результат Цикл - - Если Не ЭтоПервыйПроход И Результат.Индекс(СтрокаРезультата) = 0 Тогда + ПоляПозицииЗаписи = ПоляПозицииЗаписи(ОбъектМетаданных); + ПолноеИмя = ОбъектМетаданных.ПолноеИмя(); + ИдентификаторОбъектаМетаданных = ОбщегоНазначения.ИдентификаторОбъектаМетаданных(ПолноеИмя); + + ВыборкаРегистра = ВыборкаРегистра(ПолноеИмя, ПараметрыПроверки, ПоляПозицииЗаписи); + Пока ВыборкаРегистра.Следующий() Цикл + Для Каждого Поле Из СсылочныеПоляРегистраСведений Цикл + ЗначениеПоля = ВыборкаРегистра[Поле.Имя]; + Если НЕ ЭтоБитаяСсылка(ЗначениеПоля, ПроверенныеСсылки) Тогда Продолжить; КонецЕсли; + + Проблема = ОписаниеПроблемы(ИдентификаторОбъектаМетаданных, ПараметрыПроверки); // @skip-check query-in-loop + + ПредставлениеПоляБитойСсылки = СтрШаблон("%1: %2 (%3)", Поле.ПредставлениеВОписание, ЗначениеПоля, ЗначениеПоля.Метаданные().ПолноеИмя()); + ПредставлениеПозицииЗаписи = ПредставлениеПозицииЗаписи(ВыборкаРегистра, ПоляПозицииЗаписи); - Для Каждого ИнформацияОРеквизите Из ИнформацияОРегистре Цикл + ШаблонУточнения = НСтр("ru = 'Нарушена ссылочная целостность поля: + |%1 + | + |Позиция записи: + |%2'"); + + Проблема.УточнениеПроблемы = СтроковыеФункцииКлиентСервер.ПодставитьПараметрыВСтроку(ШаблонУточнения, + ПредставлениеПоляБитойСсылки, ПредставлениеПозицииЗаписи); - ТекущаяСсылка = СтрокаРезультата[ИнформацияОРеквизите.ИмяМетаданных + ИнформацияОРеквизите.ТипМетаданныхВИменительномПадеже + "Ссылка"]; - Если Не ЭтоБитаяСсылка(ТекущаяСсылка, ПроверенныеСсылки) Тогда - Продолжить; - КонецЕсли; - - ДополнительнаяИнформация = Новый Структура; - Для Каждого Измерение Из ОписаниеИзмерений Цикл - ИзмерениеСсылка = СтрокаРезультата[Измерение.Имя + "ИзмерениеСсылка"]; - ДополнительнаяИнформация.Вставить(Измерение.Имя, ИзмерениеСсылка); - КонецЦикла; - - БитаяСсылка = СтрокаРезультата[ИнформацияОРеквизите.ИмяМетаданных + ИнформацияОРеквизите.ТипМетаданныхВИменительномПадеже + "Ссылка"]; - Проблема = ОписаниеПроблемы(ОбщегоНазначения.ИдентификаторОбъектаМетаданных(ОбъектМетаданных), ПараметрыПроверки); // @skip-check query-in-loop - порционная проверка ведения учета - Проблема.УточнениеПроблемы = СтроковыеФункцииКлиентСервер.ПодставитьПараметрыВСтроку( - НСтр("ru = 'У регистра сведений ""%1"" в %2, по комбинации измерений ""%3"" указана ссылка на несуществующий элемент: ""%4"" (%5).'"), - ОбъектМетаданных.Представление(), ИнформацияОРеквизите.ТипМетаданныхВТворительномПадеже, - ПоляУпорядочивания, - БитаяСсылка, - ТипЗнч(БитаяСсылка)); - Проблема.ДополнительнаяИнформация = Новый ХранилищеЗначения(ДополнительнаяИнформация, Новый СжатиеДанных(9)); - ЗаписатьПроблему(Проблема, ПараметрыПроверки); // @skip-check query-in-loop - порционная проверка ведения учета - - КонецЦикла; - + ЗначенияПозицииЗаписи = ЗначенияПозицииЗаписи(ВыборкаРегистра, ПоляПозицииЗаписи); + Проблема.ДополнительнаяИнформация = Новый ХранилищеЗначения(ЗначенияПозицииЗаписи, Новый СжатиеДанных(9)); + + ЗаписатьПроблему(Проблема, ПараметрыПроверки); // @skip-check query-in-loop КонецЦикла; - - Если ПроверенныеСсылки.Количество() >= МаксимальноеКоличество Тогда - ПроверенныеСсылки.Очистить(); - КонецЕсли; - - Если ЭтоПервыйПроход Тогда - ЭтоПервыйПроход = Ложь; - Запрос.Текст = ТекстЗапросаСУсловием; - КонецЕсли; - - Для Каждого Измерение Из ОписаниеИзмерений Цикл - Запрос.УстановитьПараметр(Измерение.Имя, СтрокаРезультата[Измерение.Имя + "ИзмерениеСсылка"]); - КонецЦикла; - - Результат = Запрос.Выполнить().Выгрузить(); // @skip-check query-in-loop - порционная проверка ведения учета - КонецЦикла; - КонецПроцедуры // Параметры: @@ -3161,62 +3062,12 @@ КонецФункции -Функция ИнформацияОНезависимомРегистре(ОбъектМетаданных, ПолучитьИзмерения = Истина, ПолучитьРесурсы = Истина, ПолучитьРеквизиты = Истина) - - ИнформацияОРегистре = Новый ТаблицаЗначений; - ИнформацияОРегистре.Колонки.Добавить("ТипМетаданныхВИменительномПадеже", Новый ОписаниеТипов("Строка", , , , Новый КвалификаторыСтроки(16))); - ИнформацияОРегистре.Колонки.Добавить("ТипМетаданныхВТворительномПадеже", Новый ОписаниеТипов("Строка", , , , Новый КвалификаторыСтроки(16))); - ИнформацияОРегистре.Колонки.Добавить("ИмяМетаданных", Новый ОписаниеТипов("Строка", , , , Новый КвалификаторыСтроки(128))); - - ПоляВыборки = ""; - - Если ПолучитьИзмерения Тогда - Измерения = ОбъектМетаданных.Измерения; - Для Каждого Измерение Из Измерения Цикл - ИмяИзмерения = Измерение.Имя; - ПоляВыборки = ПоляВыборки + ?(ЗначениеЗаполнено(ПоляВыборки), ",", "") - + "ПсевдонимЗаданнойТаблицы" + "." + ИмяИзмерения + " Как " + ИмяИзмерения + "ИзмерениеСсылка"; - ЗаполнитьЗначенияСвойств(ИнформацияОРегистре.Добавить(), - Новый Структура("ТипМетаданныхВИменительномПадеже, ТипМетаданныхВТворительномПадеже, ИмяМетаданных", - "Измерение", НСтр("ru = 'измерении'"), ИмяИзмерения)); - КонецЦикла; - КонецЕсли; - - Если ПолучитьРесурсы Тогда - Ресурсы = ОбъектМетаданных.Ресурсы; - Для Каждого Ресурс Из Ресурсы Цикл - ИмяРесурса = Ресурс.Имя; - ПоляВыборки = ПоляВыборки + ?(ЗначениеЗаполнено(ПоляВыборки), ",", "") - + "ПсевдонимЗаданнойТаблицы" + "." + ИмяРесурса + " Как " + ИмяРесурса + "РесурсСсылка"; - ЗаполнитьЗначенияСвойств(ИнформацияОРегистре.Добавить(), - Новый Структура("ТипМетаданныхВИменительномПадеже, ТипМетаданныхВТворительномПадеже, ИмяМетаданных", - "Ресурс", НСтр("ru = 'ресурсе'"), ИмяРесурса)); - КонецЦикла; - КонецЕсли; - - Если ПолучитьРеквизиты Тогда - Реквизиты = ОбъектМетаданных.Реквизиты; - Для Каждого Реквизит Из Реквизиты Цикл - ИмяРеквизита = Реквизит.Имя; - ПоляВыборки = ПоляВыборки + ?(ЗначениеЗаполнено(ПоляВыборки), ",", "") - + "ПсевдонимЗаданнойТаблицы" + "." + ИмяРеквизита + " Как " + ИмяРеквизита + "РеквизитСсылка"; - ЗаполнитьЗначенияСвойств(ИнформацияОРегистре.Добавить(), - Новый Структура("ТипМетаданныхВИменительномПадеже, ТипМетаданныхВТворительномПадеже, ИмяМетаданных", - "Реквизит", НСтр("ru = 'реквизите'"), ИмяРеквизита)); - КонецЦикла; - КонецЕсли; - - Возврат Новый Структура("ИнформацияОРегистре, ПоляВыборки", ИнформацияОРегистре, ПоляВыборки); - -КонецФункции - #КонецОбласти #КонецОбласти #Область ПроверкаЗаполненностиОбязательныхРеквизитов - // Параметры: // ОбъектМетаданных - Произвольный // ПараметрыПроверки - см. КонтрольВеденияУчета.ОписаниеПроблемы @@ -3321,538 +3172,48 @@ КонецПроцедуры Процедура НайтиНезаполненныеОбязательныеРеквизитыВРегистрах(ОбъектМетаданных, ПараметрыПроверки) - - Если ОбъектМетаданных.Измерения.Количество() = 0 Тогда + ПолноеИмя = ОбъектМетаданных.ПолноеИмя(); + Если СтрНачинаетсяС(ПолноеИмя, "Удалить") Тогда + Возврат; + КонецЕсли; + ПоляПозицииЗаписи = ПоляПозицииЗаписи(ОбъектМетаданных); + Если НЕ ЗначениеЗаполнено(ПоляПозицииЗаписи) Тогда + Возврат; + КонецЕсли; + ПоляОбязательныхРеквизитов = ПоляОбязательныхРеквизитов(ОбъектМетаданных); + Если НЕ ЗначениеЗаполнено(ПоляОбязательныхРеквизитов) Тогда Возврат; КонецЕсли; - Если ОбщегоНазначения.ЭтоРегистрСведений(ОбъектМетаданных) Тогда - - Если ОбъектМетаданных.РежимЗаписи = Метаданные.СвойстваОбъектов.РежимЗаписиРегистра.ПодчинениеРегистратору Тогда - Если ОбъектМетаданных.ПериодичностьРегистраСведений <> Метаданные.СвойстваОбъектов.ПериодичностьРегистраСведений.Непериодический Тогда - НайтиНезаполненныеОбязательныеРеквизитыВПодчиненныхПериодическихРегистрах(ОбъектМетаданных, ПараметрыПроверки); - Иначе - НайтиНезаполненныеОбязательныеРеквизитыВПодчиненныхНепериодическихРегистрах(ОбъектМетаданных, ПараметрыПроверки); + ИдентификаторОбъектаМетаданных = ОбщегоНазначения.ИдентификаторОбъектаМетаданных(ПолноеИмя); + ВыборкаРегистра = ВыборкаРегистра(ПолноеИмя, ПараметрыПроверки, ПоляПозицииЗаписи); + Пока ВыборкаРегистра.Следующий() Цикл + ПустыеРеквизиты = Новый Массив(); + Для Каждого Поле Из ПоляОбязательныхРеквизитов Цикл + ЗначениеПоля = ВыборкаРегистра[Поле.Имя]; + Если НЕ ЗначениеЗаполнено(ЗначениеПоля) Тогда + ПустыеРеквизиты.Добавить(Поле.ПредставлениеВОписание); КонецЕсли; - Иначе - Если ОбъектМетаданных.ПериодичностьРегистраСведений <> Метаданные.СвойстваОбъектов.ПериодичностьРегистраСведений.Непериодический Тогда - НайтиНезаполненныеОбязательныеРеквизитыВНезависимыхПериодическихРегистрахСведений(ОбъектМетаданных, ПараметрыПроверки); - Иначе - НайтиНезаполненныеОбязательныеРеквизитыВНезависимыхНепериодическихРегистрахСведений(ОбъектМетаданных, ПараметрыПроверки); - КонецЕсли; - КонецЕсли; - - ИначеЕсли ОбщегоНазначения.ЭтоРегистрНакопления(ОбъектМетаданных) - Или ОбщегоНазначения.ЭтоРегистрБухгалтерии(ОбъектМетаданных) - Или ОбщегоНазначения.ЭтоРегистрРасчета(ОбъектМетаданных) Тогда - - НайтиНезаполненныеОбязательныеРеквизитыВПодчиненныхНепериодическихРегистрах(ОбъектМетаданных, ПараметрыПроверки); - - КонецЕсли; - -КонецПроцедуры - -// Параметры: -// ОбъектМетаданных - ОбъектМетаданныхРегистрБухгалтерии -// - Произвольный -// - ОбъектМетаданныхРегистрСведений -// - ОбъектМетаданныхРегистрНакопления -// - ОбъектМетаданныхРегистрРасчета -// ПараметрыПроверки - см. КонтрольВеденияУчета.ОписаниеПроблемы -// -Процедура НайтиНезаполненныеОбязательныеРеквизитыВПодчиненныхПериодическихРегистрах(ОбъектМетаданных, ПараметрыПроверки) - - МодульОценкаПроизводительности = Неопределено; - Если ОбщегоНазначения.ПодсистемаСуществует("СтандартныеПодсистемы.ОценкаПроизводительности") Тогда - МодульОценкаПроизводительности = ОбщегоНазначения.ОбщийМодуль("ОценкаПроизводительности"); - КонецЕсли; - - ПолноеИмя = ОбъектМетаданных.ПолноеИмя(); - ИмяТаблицы = СтрЗаменить(ПолноеИмя, ".", ""); - Если ОбщегоНазначения.ЭтоРегистрРасчета(ОбъектМетаданных) Тогда - - Запрос = Новый Запрос( - "ВЫБРАТЬ ПЕРВЫЕ 1000 - | ПсевдонимЗаданнойТаблицы.Регистратор КАК РегистраторРеквизитСсылка, - | ПсевдонимЗаданнойТаблицы.ПериодРегистрации КАК Период - |ИЗ - | &ОбъектМетаданных КАК ПсевдонимЗаданнойТаблицы - |ГДЕ - | ПсевдонимЗаданнойТаблицы.ПериодРегистрации > &ДатаНачалаПроверки - | - |СГРУППИРОВАТЬ ПО - | ПсевдонимЗаданнойТаблицы.ПериодРегистрации, - | ПсевдонимЗаданнойТаблицы.Регистратор - | - |УПОРЯДОЧИТЬ ПО - | ПсевдонимЗаданнойТаблицы.ПериодРегистрации"); - - Запрос.Текст = СтрЗаменить(Запрос.Текст, "ПсевдонимЗаданнойТаблицы", ИмяТаблицы); - Запрос.Текст = СтрЗаменить(Запрос.Текст, "&ОбъектМетаданных", ПолноеИмя); - Запрос.УстановитьПараметр("ДатаНачалаПроверки", ПараметрыПроверки.ДатаНачалаПроверки); - - ИначеЕсли ОбщегоНазначения.ЭтоРегистрБухгалтерии(ОбъектМетаданных) Тогда - - Запрос = Новый Запрос( - "ВЫБРАТЬ - | ПсевдонимЗаданнойТаблицы.Регистратор КАК РегистраторРеквизитСсылка, - | ПсевдонимЗаданнойТаблицы.Период КАК Период - |ИЗ - | &ОбъектМетаданных КАК ПсевдонимЗаданнойТаблицы - | - |СГРУППИРОВАТЬ ПО - | ПсевдонимЗаданнойТаблицы.Период, - | ПсевдонимЗаданнойТаблицы.Регистратор - | - |УПОРЯДОЧИТЬ ПО - | ПсевдонимЗаданнойТаблицы.Период"); - - Запрос.Текст = СтрЗаменить(Запрос.Текст, "ПсевдонимЗаданнойТаблицы", ИмяТаблицы); - Запрос.Текст = СтрЗаменить(Запрос.Текст, "&ОбъектМетаданных", - ПолноеИмя + ".ДвиженияССубконто(, , Период > &ДатаНачалаПроверки И Регистратор > &Регистратор, , 1000)"); - Запрос.УстановитьПараметр("ДатаНачалаПроверки", ПараметрыПроверки.ДатаНачалаПроверки); - - Иначе - - Запрос = Новый Запрос( - "ВЫБРАТЬ ПЕРВЫЕ 1000 - | ПсевдонимЗаданнойТаблицы.Регистратор КАК РегистраторРеквизитСсылка, - | ПсевдонимЗаданнойТаблицы.Период КАК Период - |ИЗ - | &ОбъектМетаданных КАК ПсевдонимЗаданнойТаблицы - |ГДЕ - | ПсевдонимЗаданнойТаблицы.Период > &ДатаНачалаПроверки - | - |СГРУППИРОВАТЬ ПО - | ПсевдонимЗаданнойТаблицы.Период, - | ПсевдонимЗаданнойТаблицы.Регистратор - | - |УПОРЯДОЧИТЬ ПО - | ПсевдонимЗаданнойТаблицы.Период"); - - Запрос.Текст = СтрЗаменить(Запрос.Текст, "ПсевдонимЗаданнойТаблицы", ИмяТаблицы); - Запрос.Текст = СтрЗаменить(Запрос.Текст, "&ОбъектМетаданных", ПолноеИмя); - Запрос.УстановитьПараметр("ДатаНачалаПроверки", ПараметрыПроверки.ДатаНачалаПроверки); - - КонецЕсли; - - Результат = Запрос.Выполнить().Выгрузить(); - МенеджерРегистра = ОбщегоНазначения.МенеджерОбъектаПоПолномуИмени(ПолноеИмя); - ОбщееКоличествоДанных = 0; - - Пока Результат.Количество() > 0 Цикл - - Если МодульОценкаПроизводительности <> Неопределено Тогда - ОписаниеЗамера = МодульОценкаПроизводительности.НачатьЗамерДлительнойОперации(ПараметрыПроверки.Идентификатор + "." + ПолноеИмя); - КонецЕсли; - - Для Каждого СтрокаРезультата Из Результат Цикл - - ТекущийНаборЗаписей = МенеджерРегистра.СоздатьНаборЗаписей(); // РегистрСведенийНаборЗаписей - //@skip-check bsl-legacy-check-static-feature-access-for-unknown-left-part - подчиненный регистр сведений. - ТекущийНаборЗаписей.Отбор.Регистратор.Установить(СтрокаРезультата.РегистраторРеквизитСсылка); - ТекущийНаборЗаписей.Прочитать(); - - Если ТекущийНаборЗаписей.ПроверитьЗаполнение() Тогда - Продолжить; - КонецЕсли; - - ДополнительнаяИнформация = Новый Структура; - ДополнительнаяИнформация.Вставить("Регистратор", СтрокаРезультата.РегистраторРеквизитСсылка); - - Проблема = ОписаниеПроблемы(ОбщегоНазначения.ИдентификаторОбъектаМетаданных(ОбъектМетаданных), ПараметрыПроверки); // @skip-check query-in-loop - порционная проверка ведения учета - - Проблема.УточнениеПроблемы = СтроковыеФункцииКлиентСервер.ПодставитьПараметрыВСтроку(НСтр("ru = 'У записи с полями: - |%1, - |обнаружены незаполненные данные, обязательные к заполнению: %2'"), - " • " + НСтр("ru = 'Регистратор:'") + " = """ + СтрокаРезультата.РегистраторРеквизитСсылка, Символы.ПС + ОшибкиЗаполненияОбъекта()); - Проблема.ДополнительнаяИнформация = Новый ХранилищеЗначения(ДополнительнаяИнформация, Новый СжатиеДанных(9)); - - ЗаписатьПроблему(Проблема, ПараметрыПроверки); // @skip-check query-in-loop - порционная проверка ведения учета - КонецЦикла; - - ОбщееКоличествоДанных = ОбщееКоличествоДанных + Результат.Количество(); - - Если МодульОценкаПроизводительности <> Неопределено Тогда - МодульОценкаПроизводительности.ЗакончитьЗамерДлительнойОперации(ОписаниеЗамера, ОбщееКоличествоДанных); + Если НЕ ЗначениеЗаполнено(ПустыеРеквизиты) Тогда + Продолжить; КонецЕсли; - Запрос.УстановитьПараметр("ДатаНачалаПроверки", СтрокаРезультата.Период); - Результат = Запрос.Выполнить().Выгрузить(); // @skip-check query-in-loop - порционная проверка ведения учета - - КонецЦикла; - -КонецПроцедуры + Проблема = ОписаниеПроблемы(ИдентификаторОбъектаМетаданных, ПараметрыПроверки); // @skip-check query-in-loop + ПредставлениеПозицииЗаписи = ПредставлениеПозицииЗаписи(ВыборкаРегистра, ПоляПозицииЗаписи); - -// Параметры: -// ОбъектМетаданных - ОбъектМетаданныхРегистрБухгалтерии -// - Произвольный -// - ОбъектМетаданныхРегистрСведений -// - ОбъектМетаданныхРегистрНакопления -// - ОбъектМетаданныхРегистрРасчета -// ПараметрыПроверки - см. КонтрольВеденияУчета.ОписаниеПроблемы -// -Процедура НайтиНезаполненныеОбязательныеРеквизитыВПодчиненныхНепериодическихРегистрах(ОбъектМетаданных, ПараметрыПроверки) - - МодульОценкаПроизводительности = Неопределено; - Если ОбщегоНазначения.ПодсистемаСуществует("СтандартныеПодсистемы.ОценкаПроизводительности") Тогда - МодульОценкаПроизводительности = ОбщегоНазначения.ОбщийМодуль("ОценкаПроизводительности"); - КонецЕсли; - - ПолноеИмя = ОбъектМетаданных.ПолноеИмя(); - - Запрос = Новый Запрос( - "ВЫБРАТЬ ПЕРВЫЕ 1000 - | ПсевдонимЗаданнойТаблицы.Регистратор КАК РегистраторРеквизитСсылка - |ИЗ - | &ОбъектМетаданных КАК ПсевдонимЗаданнойТаблицы - |ГДЕ - | ПсевдонимЗаданнойТаблицы.Регистратор > &Регистратор - | - |СГРУППИРОВАТЬ ПО - | ПсевдонимЗаданнойТаблицы.Регистратор - | - |УПОРЯДОЧИТЬ ПО - | ПсевдонимЗаданнойТаблицы.Регистратор"); - - ИмяТаблицы = СтрЗаменить(ПолноеИмя, ".", ""); - Запрос.Текст = СтрЗаменить(Запрос.Текст, "ПсевдонимЗаданнойТаблицы", ИмяТаблицы); - Запрос.Текст = СтрЗаменить(Запрос.Текст, "&ОбъектМетаданных", ПолноеИмя); - Запрос.УстановитьПараметр("Регистратор", ""); - - Результат = Запрос.Выполнить().Выгрузить(); - МенеджерРегистра = ОбщегоНазначения.МенеджерОбъектаПоПолномуИмени(ПолноеИмя); - - ОбщееКоличествоДанных = 0; - Пока Результат.Количество() > 0 Цикл - - Если МодульОценкаПроизводительности <> Неопределено Тогда - ОписаниеЗамера = МодульОценкаПроизводительности.НачатьЗамерДлительнойОперации(ПараметрыПроверки.Идентификатор + "." + ПолноеИмя); - КонецЕсли; - Для Каждого СтрокаРезультата Из Результат Цикл - - ТекущийНаборЗаписей = МенеджерРегистра.СоздатьНаборЗаписей(); // РегистрСведенийНаборЗаписей - //@skip-check bsl-legacy-check-static-feature-access-for-unknown-left-part - подчиненный регистр сведений - ТекущийНаборЗаписей.Отбор.Регистратор.Установить(СтрокаРезультата.РегистраторРеквизитСсылка); - ТекущийНаборЗаписей.Прочитать(); - - Если ТекущийНаборЗаписей.ПроверитьЗаполнение() Тогда - Продолжить; - КонецЕсли; - - ДополнительнаяИнформация = Новый Структура; - ДополнительнаяИнформация.Вставить("Регистратор", СтрокаРезультата.РегистраторРеквизитСсылка); - - Проблема = ОписаниеПроблемы(ОбщегоНазначения.ИдентификаторОбъектаМетаданных(ОбъектМетаданных), ПараметрыПроверки); // @skip-check query-in-loop - порционная проверка ведения учета - - Проблема.УточнениеПроблемы = СтроковыеФункцииКлиентСервер.ПодставитьПараметрыВСтроку(НСтр("ru = 'У записи с полями: - |%1, - |обнаружены незаполненные данные, обязательные к заполнению: %2'"), - " • " + НСтр("ru = 'Регистратор:'") + " = """ + СтрокаРезультата.РегистраторРеквизитСсылка, Символы.ПС + ОшибкиЗаполненияОбъекта()); - Проблема.ДополнительнаяИнформация = Новый ХранилищеЗначения(ДополнительнаяИнформация, Новый СжатиеДанных(9)); - - ЗаписатьПроблему(Проблема, ПараметрыПроверки); // @skip-check query-in-loop - порционная проверка ведения учета - - КонецЦикла; - - ОбщееКоличествоДанных = ОбщееКоличествоДанных + Результат.Количество(); - Если МодульОценкаПроизводительности <> Неопределено Тогда - МодульОценкаПроизводительности.ЗакончитьЗамерДлительнойОперации(ОписаниеЗамера, ОбщееКоличествоДанных); - КонецЕсли; - - Запрос.УстановитьПараметр("Регистратор", СтрокаРезультата.РегистраторРеквизитСсылка); - Результат = Запрос.Выполнить().Выгрузить(); // @skip-check query-in-loop - порционная проверка ведения учета + Шаблон = НСтр("ru = 'У записи с полями: + |%1 + | + |обнаружены незаполненные данные, обязательные к заполнению: + |%2'"); + Проблема.УточнениеПроблемы = СтроковыеФункцииКлиентСервер.ПодставитьПараметрыВСтроку(Шаблон, + ПредставлениеПозицииЗаписи, СтрСоединить(ПустыеРеквизиты, Символы.ПС)); + ЗначенияПозицииЗаписи = ЗначенияПозицииЗаписи(ВыборкаРегистра, ПоляПозицииЗаписи); + Проблема.ДополнительнаяИнформация = Новый ХранилищеЗначения(ЗначенияПозицииЗаписи, Новый СжатиеДанных(9)); + ЗаписатьПроблему(Проблема, ПараметрыПроверки); // @skip-check query-in-loop КонецЦикла; - -КонецПроцедуры - - -// Параметры: -// ОбъектМетаданных - ОбъектМетаданныхРегистрБухгалтерии -// - Произвольный -// - ОбъектМетаданныхРегистрСведений -// - ОбъектМетаданныхРегистрНакопления -// - ОбъектМетаданныхРегистрРасчета -// ПараметрыПроверки - см. КонтрольВеденияУчета.ОписаниеПроблемы -// -Процедура НайтиНезаполненныеОбязательныеРеквизитыВНезависимыхНепериодическихРегистрахСведений(ОбъектМетаданных, ПараметрыПроверки) - - МодульОценкаПроизводительности = Неопределено; - Если ОбщегоНазначения.ПодсистемаСуществует("СтандартныеПодсистемы.ОценкаПроизводительности") Тогда - МодульОценкаПроизводительности = ОбщегоНазначения.ОбщийМодуль("ОценкаПроизводительности"); - КонецЕсли; - - ПолноеИмя = ОбъектМетаданных.ПолноеИмя(); - МенеджерРегистра = ОбщегоНазначения.МенеджерОбъектаПоПолномуИмени(ПолноеИмя); - УсловиеПоИзмерениям = ""; - ПоляУпорядочивания = ""; - Измерения = ОбъектМетаданных.Измерения; - - ЕстьОбязательныеРеквизиты = ЕстьОбязательныеРеквизиты(ОбъектМетаданных); - Если Не ЕстьОбязательныеРеквизиты Тогда - Возврат; - КонецЕсли; - - ИмяТаблицы = СтрЗаменить(ПолноеИмя, ".", ""); - - Для Каждого Измерение Из Измерения Цикл - УсловиеПоИзмерениям = УсловиеПоИзмерениям + ?(ЗначениеЗаполнено(УсловиеПоИзмерениям), " И ", "") + ИмяТаблицы + "." + Измерение.Имя + " >= &" + Измерение.Имя; - ПоляУпорядочивания = ПоляУпорядочивания + ?(ЗначениеЗаполнено(ПоляУпорядочивания), ", ", "") + ИмяТаблицы + "." + Измерение.Имя; - КонецЦикла; - - ПоляВыборки = ИнформацияОНезависимомРегистре(ОбъектМетаданных, Истина, Ложь, Ложь).ПоляВыборки; - - ТекстЗапроса = - "ВЫБРАТЬ ПЕРВЫЕ 1000 - | &ПоляВыборки КАК ПоляВыборки - |ИЗ - | &ОбъектМетаданных КАК ПсевдонимЗаданнойТаблицы - |ГДЕ - | &Условие - | - |УПОРЯДОЧИТЬ ПО - | &ПоляУпорядочивания"; - - ТекстЗапроса = СтрЗаменить(ТекстЗапроса, "&ПоляУпорядочивания", ПоляУпорядочивания); - ТекстЗапроса = СтрЗаменить(ТекстЗапроса, "&ПоляВыборки КАК ПоляВыборки", ПоляВыборки); - ТекстЗапроса = СтрЗаменить(ТекстЗапроса, "&ОбъектМетаданных", ОбъектМетаданных.ПолноеИмя()); - ТекстЗапроса = СтрЗаменить(ТекстЗапроса, "ПсевдонимЗаданнойТаблицы", ИмяТаблицы); - - ТекстПервогоЗапроса = СтрЗаменить(ТекстЗапроса, "&Условие", "Истина"); - ТекстЗапросаСУсловием = СтрЗаменить(ТекстЗапроса, "&Условие", УсловиеПоИзмерениям); - - Запрос = Новый Запрос(ТекстПервогоЗапроса); - Результат = Запрос.Выполнить().Выгрузить(); - - ЭтоПервыйПроход = Истина; - ОбщееКоличествоДанных = 0; - Пока Результат.Количество() > 0 Цикл - - // Последняя запись уже проверена на предыдущей итерации. - Если Не ЭтоПервыйПроход И Результат.Количество() = 1 Тогда - Прервать; - КонецЕсли; - - Если МодульОценкаПроизводительности <> Неопределено Тогда - ОписаниеЗамера = МодульОценкаПроизводительности.НачатьЗамерДлительнойОперации(ПараметрыПроверки.Идентификатор + "." + ПолноеИмя); - КонецЕсли; - - Для Каждого СтрокаРезультата Из Результат Цикл - - Если Не ЭтоПервыйПроход И Результат.Индекс(СтрокаРезультата) = 0 Тогда - Продолжить; - КонецЕсли; - - ТекущийНаборЗаписей = МенеджерРегистра.СоздатьНаборЗаписей();// РегистрСведенийНаборЗаписей - ОтборТекущегоНабора = ТекущийНаборЗаписей.Отбор; - - ПредставлениеОтбораНабораЗаписей = ""; - Для Каждого Измерение Из Измерения Цикл - - ИмяИзмерения = Измерение.Имя; - ЗначениеИзмерения = СтрокаРезультата[ИмяИзмерения + "ИзмерениеСсылка"]; - Если Не ЗначениеЗаполнено(ЗначениеИзмерения) Тогда - Продолжить; - КонецЕсли; - - ОтборПоИзмерению = ОтборТекущегоНабора[ИмяИзмерения];// ЭлементОтбора - ОтборПоИзмерению.Установить(ЗначениеИзмерения); - - ПредставлениеОтбораНабораЗаписей = ПредставлениеОтбораНабораЗаписей + ?(ЗначениеЗаполнено(ПредставлениеОтбораНабораЗаписей), Символы.ПС, "") - + " • " + ИмяИзмерения + " = """ + СтрокаРезультата[ИмяИзмерения + "ИзмерениеСсылка"] + """"; - - КонецЦикла; - ТекущийНаборЗаписей.Прочитать(); - - Если ТекущийНаборЗаписей.ПроверитьЗаполнение() Тогда - Продолжить; - КонецЕсли; - - ДополнительнаяИнформация = Новый Структура; - Для Каждого Измерение Из Измерения Цикл - ИзмерениеСсылка = СтрокаРезультата[Измерение.Имя + "ИзмерениеСсылка"]; - ДополнительнаяИнформация.Вставить(Измерение.Имя, ИзмерениеСсылка); - КонецЦикла; - - Проблема = ОписаниеПроблемы(ОбщегоНазначения.ИдентификаторОбъектаМетаданных(ОбъектМетаданных), ПараметрыПроверки); // @skip-check query-in-loop - порционная проверка ведения учета - - Проблема.УточнениеПроблемы = СтроковыеФункцииКлиентСервер.ПодставитьПараметрыВСтроку(НСтр("ru = 'У записи с полями: - |%1, - |обнаружены незаполненные данные, обязательные к заполнению: %2'"), ПредставлениеОтбораНабораЗаписей, Символы.ПС + ОшибкиЗаполненияОбъекта()); - Проблема.ДополнительнаяИнформация = Новый ХранилищеЗначения(ДополнительнаяИнформация, Новый СжатиеДанных(9)); - - ЗаписатьПроблему(Проблема, ПараметрыПроверки); // @skip-check query-in-loop - порционная проверка ведения учета - - КонецЦикла; - - Если ЭтоПервыйПроход Тогда - ЭтоПервыйПроход = Ложь; - Запрос.Текст = ТекстЗапросаСУсловием; - КонецЕсли; - - Для Каждого Измерение Из Измерения Цикл - Запрос.УстановитьПараметр(Измерение.Имя, СтрокаРезультата[Измерение.Имя + "ИзмерениеСсылка"]); - КонецЦикла; - - ОбщееКоличествоДанных = ОбщееКоличествоДанных + Результат.Количество(); - Если МодульОценкаПроизводительности <> Неопределено Тогда - МодульОценкаПроизводительности.ЗакончитьЗамерДлительнойОперации(ОписаниеЗамера, ОбщееКоличествоДанных); - КонецЕсли; - - Результат = Запрос.Выполнить().Выгрузить(); // @skip-check query-in-loop - порционная проверка ведения учета - - КонецЦикла; - -КонецПроцедуры - -// Параметры: -// ОбъектМетаданных - ОбъектМетаданныхРегистрБухгалтерии -// - Произвольный -// - ОбъектМетаданныхРегистрСведений -// - ОбъектМетаданныхРегистрНакопления -// - ОбъектМетаданныхРегистрРасчета -// ПараметрыПроверки - см. КонтрольВеденияУчета.ОписаниеПроблемы -// -Процедура НайтиНезаполненныеОбязательныеРеквизитыВНезависимыхПериодическихРегистрахСведений(ОбъектМетаданных, ПараметрыПроверки) - - МодульОценкаПроизводительности = Неопределено; - Если ОбщегоНазначения.ПодсистемаСуществует("СтандартныеПодсистемы.ОценкаПроизводительности") Тогда - МодульОценкаПроизводительности = ОбщегоНазначения.ОбщийМодуль("ОценкаПроизводительности"); - КонецЕсли; - - ПолноеИмя = ОбъектМетаданных.ПолноеИмя(); - ИмяТаблицы = СтрЗаменить(ПолноеИмя, ".", ""); - МенеджерРегистра = ОбщегоНазначения.МенеджерОбъектаПоПолномуИмени(ПолноеИмя); - УсловиеПоИзмерениям = ""; - ПоляУпорядочивания = ИмяТаблицы + "." + "Период"; - Измерения = ОбъектМетаданных.Измерения; - - Для Каждого Измерение Из Измерения Цикл - УсловиеПоИзмерениям = УсловиеПоИзмерениям + ?(ЗначениеЗаполнено(УсловиеПоИзмерениям), " И ", "") + ИмяТаблицы + "." + Измерение.Имя + " >= &" + Измерение.Имя; - ПоляУпорядочивания = ПоляУпорядочивания + ?(ЗначениеЗаполнено(ПоляУпорядочивания), ", ", "") + ИмяТаблицы + "." + Измерение.Имя; - КонецЦикла; - - ПоляВыборки = ИнформацияОНезависимомРегистре(ОбъектМетаданных, Истина, Ложь, Ложь).ПоляВыборки; - - ТекстЗапроса = - "ВЫБРАТЬ ПЕРВЫЕ 1000 - | ПсевдонимЗаданнойТаблицы.Период КАК Период, - | &ПоляВыборки КАК ПоляВыборки - |ИЗ - | &ОбъектМетаданных КАК ПсевдонимЗаданнойТаблицы - |ГДЕ - | (ПсевдонимЗаданнойТаблицы.Период > &Период - | И НЕ &ТолькоУказанныйПериод - | ИЛИ ПсевдонимЗаданнойТаблицы.Период = &Период - | И &ТолькоУказанныйПериод) - | И &Условие - |УПОРЯДОЧИТЬ ПО &ПоляУпорядочивания"; - - ТекстЗапроса = СтрЗаменить(ТекстЗапроса, "&ПоляУпорядочивания", ПоляУпорядочивания); - ТекстЗапроса = СтрЗаменить(ТекстЗапроса, "&ПоляВыборки КАК ПоляВыборки", ПоляВыборки); - ТекстЗапроса = СтрЗаменить(ТекстЗапроса, "&ОбъектМетаданных", ОбъектМетаданных.ПолноеИмя()); - ТекстЗапроса = СтрЗаменить(ТекстЗапроса, "ПсевдонимЗаданнойТаблицы", ИмяТаблицы); - - ТекстПервогоЗапроса = СтрЗаменить(ТекстЗапроса, "&Условие", "Истина"); - ТекстЗапросаСУсловием = СтрЗаменить(ТекстЗапроса, "&Условие", УсловиеПоИзмерениям); - - Запрос = Новый Запрос(ТекстПервогоЗапроса); - Запрос.УстановитьПараметр("Период", ПараметрыПроверки.ДатаНачалаПроверки); - Запрос.УстановитьПараметр("ТолькоУказанныйПериод", Ложь); - - Результат = Запрос.Выполнить().Выгрузить(); - ЭтоПервыйПроход = Истина; - - ОбщееКоличествоДанных = Результат.Количество(); - Пока Результат.Количество() > 0 Цикл - - // Последняя запись уже проверена на предыдущей итерации. - Если Не ЭтоПервыйПроход И Результат.Количество() = 1 Тогда - Прервать; - КонецЕсли; - // - Если МодульОценкаПроизводительности <> Неопределено Тогда - ОписаниеЗамера = МодульОценкаПроизводительности.НачатьЗамерДлительнойОперации(ПараметрыПроверки.Идентификатор + "." + ПолноеИмя); - КонецЕсли; - // - Для Каждого СтрокаРезультата Из Результат Цикл - - ТекущийНаборЗаписей = МенеджерРегистра.СоздатьНаборЗаписей(); - ОтборТекущегоНабора = ТекущийНаборЗаписей.Отбор; - - ПредставлениеОтбораНабораЗаписей = СтроковыеФункцииКлиентСервер.ПодставитьПараметрыВСтроку(" • %1 = ""%2""", - НСтр("ru = 'Период'"), СтрокаРезультата.Период); - Для Каждого Измерение Из Измерения Цикл - - ИмяИзмерения = Измерение.Имя; - ЗначениеИзмерения = СтрокаРезультата[ИмяИзмерения + "ИзмерениеСсылка"]; - Если Не ЗначениеЗаполнено(ЗначениеИзмерения) Тогда - Продолжить; - КонецЕсли; - - ОтборПоИзмерению = ОтборТекущегоНабора[ИмяИзмерения];// ЭлементОтбора - ОтборПоИзмерению.Установить(ЗначениеИзмерения); - - ПредставлениеОтбораНабораЗаписей = ПредставлениеОтбораНабораЗаписей + Символы.ПС - + " • " + ИмяИзмерения + " = """ + СтрокаРезультата[ИмяИзмерения + "ИзмерениеСсылка"] + """"; - - КонецЦикла; - ТекущийНаборЗаписей.Прочитать(); - - Если ТекущийНаборЗаписей.ПроверитьЗаполнение() Тогда - Продолжить; - КонецЕсли; - - УточнениеПроблемы = ОшибкиЗаполненияОбъекта(); - - СтруктураНабораЗаписей = Новый Структура; - СтруктураНабораЗаписей.Вставить("Период", СтрокаРезультата.Период); - Для Каждого Измерение Из Измерения Цикл - ИзмерениеСсылка = СтрокаРезультата[Измерение.Имя + "ИзмерениеСсылка"]; - СтруктураНабораЗаписей.Вставить(Измерение.Имя, ИзмерениеСсылка); - КонецЦикла; - - Проблема = ОписаниеПроблемы(ОбщегоНазначения.ИдентификаторОбъектаМетаданных(ОбъектМетаданных), ПараметрыПроверки); // @skip-check query-in-loop - порционная проверка ведения учета - - Проблема.УточнениеПроблемы = СтроковыеФункцииКлиентСервер.ПодставитьПараметрыВСтроку(НСтр("ru = 'У записи с полями: - |%1, - |обнаружены незаполненные данные, обязательные к заполнению: %2'"), ПредставлениеОтбораНабораЗаписей, Символы.ПС + УточнениеПроблемы); - Проблема.ДополнительнаяИнформация = Новый ХранилищеЗначения(СтруктураНабораЗаписей, Новый СжатиеДанных(9)); - ЗаписатьПроблему(Проблема, ПараметрыПроверки); // @skip-check query-in-loop - порционная проверка ведения учета - - КонецЦикла; - - Если ЭтоПервыйПроход Тогда - ЭтоПервыйПроход = Ложь; - КонецЕсли; - - // После прохода по всем периодам делаем дообработку по последнему периоду. - Запрос.Текст = ТекстЗапросаСУсловием; - Запрос.УстановитьПараметр("Период", СтрокаРезультата.Период); - Запрос.УстановитьПараметр("ТолькоУказанныйПериод", Истина); - Для Каждого Измерение Из Измерения Цикл - Запрос.УстановитьПараметр(Измерение.Имя, СтрокаРезультата[Измерение.Имя + "ИзмерениеСсылка"]); - КонецЦикла; - Результат = Запрос.Выполнить().Выгрузить(); // @skip-check query-in-loop - порционная проверка ведения учета - // Если по последнему периоду все записи обработаны, то выбираем все записи по следующим периодам. - Если Результат.Количество() = 0 Или Результат.Количество() = 1 Тогда - Запрос.Текст = ТекстПервогоЗапроса; - Запрос.УстановитьПараметр("Период", СтрокаРезультата.Период); - Запрос.УстановитьПараметр("ТолькоУказанныйПериод", Ложь); - Результат = Запрос.Выполнить().Выгрузить(); // @skip-check query-in-loop - порционная проверка ведения учета - ЭтоПервыйПроход = Истина; - КонецЕсли; - - ОбщееКоличествоДанных = ОбщееКоличествоДанных + Результат.Количество(); - Если МодульОценкаПроизводительности <> Неопределено Тогда - МодульОценкаПроизводительности.ЗакончитьЗамерДлительнойОперации(ОписаниеЗамера, ОбщееКоличествоДанных); - КонецЕсли; - - КонецЦикла; - КонецПроцедуры #КонецОбласти @@ -4237,36 +3598,6 @@ #Область Прочее -Функция ЕстьОбязательныеРеквизиты(ОбъектМетаданных) - - Для Каждого Измерение Из ОбъектМетаданных.Измерения Цикл - Если Измерение.ПроверкаЗаполнения = ПроверкаЗаполнения.ВыдаватьОшибку Тогда - Возврат Истина; - КонецЕсли; - КонецЦикла; - - Для Каждого Реквизит Из ОбъектМетаданных.Реквизиты Цикл - Если Реквизит.ПроверкаЗаполнения = ПроверкаЗаполнения.ВыдаватьОшибку Тогда - Возврат Истина; - КонецЕсли; - КонецЦикла; - - Для Каждого Ресурс Из ОбъектМетаданных.Ресурсы Цикл - Если Ресурс.ПроверкаЗаполнения = ПроверкаЗаполнения.ВыдаватьОшибку Тогда - Возврат Истина; - КонецЕсли; - КонецЦикла; - - Для Каждого СтандартныйРеквизит Из ОбъектМетаданных.СтандартныеРеквизиты Цикл - Если СтандартныйРеквизит.ПроверкаЗаполнения = ПроверкаЗаполнения.ВыдаватьОшибку Тогда - Возврат Истина; - КонецЕсли; - КонецЦикла; - - Возврат Ложь; - -КонецФункции - Функция ПрочитанныеПараметры(ПараметрыВыполненияПроверки) Результат = Новый Структура("ПолноеИмя, ОбъектМетаданных, ОбластьПроверки"); Если ПараметрыВыполненияПроверки.Количество() <> 1 Тогда @@ -4410,14 +3741,17 @@ КонецПроцедуры Функция ОшибкиЗаполненияОбъекта() - - УточнениеПроблемы = ""; - Для Каждого ПользовательскоеСообщение Из ПолучитьСообщенияПользователю(Истина) Цикл - УточнениеПроблемы = УточнениеПроблемы + ?(ЗначениеЗаполнено(УточнениеПроблемы), Символы.ПС, "") + ПользовательскоеСообщение.Текст; - КонецЦикла; - - Возврат ?(ПустаяСтрока(УточнениеПроблемы), НСтр("ru = 'Для подробной информации откройте форму объекта.'"), УточнениеПроблемы); - + СообщенияПроверки = ПолучитьСообщенияПользователю(Истина); + Если ЗначениеЗаполнено(СообщенияПроверки) Тогда + Тексты = Новый Массив(); + Для Каждого СообщениеПроверки Из СообщенияПроверки Цикл + Тексты.Добавить(СообщениеПроверки.Текст); + КонецЦикла; + Результат = СтрСоединить(Тексты, Символы.ПС); + Иначе + Результат = НСтр("ru = 'Для подробной информации откройте форму объекта.'"); + КонецЕсли; + Возврат Результат; КонецФункции Функция ПроверкаУжеВыполняется(ИдентификаторРегламентногоЗадания) @@ -4443,7 +3777,7 @@ Если Не ЗначениеЗаполнено(ВидПроверки) Тогда Продолжить; КонецЕсли; - + Набор = РегистрыСведений.РезультатыПроверкиУчета.СоздатьНаборЗаписей(); Набор.Отбор.ПравилоПроверки.Установить(Проверка); Набор.Отбор.ВидПроверки.Установить(ВидПроверки); @@ -4797,7 +4131,6 @@ Методы.Вставить("ВыполнитьПроверку", Истина); Методы.Вставить("ПроверитьОбъект", Истина); Методы.Вставить("ИсправитьПроблемуЦиклическихСсылокВФоновомЗадании", Истина); - Методы.Вставить("ПроверитьВедениеУчета", Истина); КонецПроцедуры diff --git a/SSL/src/CommonModules/КонтрольВеденияУчетаСлужебныйКлиент/Module.bsl b/SSL/src/CommonModules/КонтрольВеденияУчетаСлужебныйКлиент/Module.bsl index aba07ac78..e753fbb9a 100644 --- a/SSL/src/CommonModules/КонтрольВеденияУчетаСлужебныйКлиент/Module.bsl +++ b/SSL/src/CommonModules/КонтрольВеденияУчетаСлужебныйКлиент/Module.bsl @@ -1,5 +1,5 @@ /////////////////////////////////////////////////////////////////////////////////////////////////////// -// Copyright (c) 2024, ООО 1С-Софт +// Copyright (c) 2025, ООО 1С-Софт // Все права защищены. Эта программа и сопроводительные материалы предоставляются // в соответствии с условиями лицензии Attribution 4.0 International (CC BY 4.0) // Текст лицензии доступен по ссылке: diff --git a/SSL/src/CommonModules/КонтрольВеденияУчетаСлужебныйПовтИсп/Module.bsl b/SSL/src/CommonModules/КонтрольВеденияУчетаСлужебныйПовтИсп/Module.bsl index 53364d8e8..d04b0ccfb 100644 --- a/SSL/src/CommonModules/КонтрольВеденияУчетаСлужебныйПовтИсп/Module.bsl +++ b/SSL/src/CommonModules/КонтрольВеденияУчетаСлужебныйПовтИсп/Module.bsl @@ -1,5 +1,5 @@ /////////////////////////////////////////////////////////////////////////////////////////////////////// -// Copyright (c) 2024, ООО 1С-Софт +// Copyright (c) 2025, ООО 1С-Софт // Все права защищены. Эта программа и сопроводительные материалы предоставляются // в соответствии с условиями лицензии Attribution 4.0 International (CC BY 4.0) // Текст лицензии доступен по ссылке: diff --git a/SSL/src/CommonModules/КонтрольРаботыПользователей/Module.bsl b/SSL/src/CommonModules/КонтрольРаботыПользователей/Module.bsl index a56179586..37d5f1d03 100644 --- a/SSL/src/CommonModules/КонтрольРаботыПользователей/Module.bsl +++ b/SSL/src/CommonModules/КонтрольРаботыПользователей/Module.bsl @@ -1,5 +1,5 @@ /////////////////////////////////////////////////////////////////////////////////////////////////////// -// Copyright (c) 2024, ООО 1С-Софт +// Copyright (c) 2025, ООО 1С-Софт // Все права защищены. Эта программа и сопроводительные материалы предоставляются // в соответствии с условиями лицензии Attribution 4.0 International (CC BY 4.0) // Текст лицензии доступен по ссылке: diff --git a/SSL/src/CommonModules/КонтрольРаботыПользователейСлужебный/Module.bsl b/SSL/src/CommonModules/КонтрольРаботыПользователейСлужебный/Module.bsl index 16a73299f..6c78702b8 100644 --- a/SSL/src/CommonModules/КонтрольРаботыПользователейСлужебный/Module.bsl +++ b/SSL/src/CommonModules/КонтрольРаботыПользователейСлужебный/Module.bsl @@ -1,5 +1,5 @@ /////////////////////////////////////////////////////////////////////////////////////////////////////// -// Copyright (c) 2024, ООО 1С-Софт +// Copyright (c) 2025, ООО 1С-Софт // Все права защищены. Эта программа и сопроводительные материалы предоставляются // в соответствии с условиями лицензии Attribution 4.0 International (CC BY 4.0) // Текст лицензии доступен по ссылке: diff --git a/SSL/src/CommonModules/КонтрольРаботыПользователейСлужебныйКлиент/Module.bsl b/SSL/src/CommonModules/КонтрольРаботыПользователейСлужебныйКлиент/Module.bsl index b2fefabc8..e3958565e 100644 --- a/SSL/src/CommonModules/КонтрольРаботыПользователейСлужебныйКлиент/Module.bsl +++ b/SSL/src/CommonModules/КонтрольРаботыПользователейСлужебныйКлиент/Module.bsl @@ -1,5 +1,5 @@ /////////////////////////////////////////////////////////////////////////////////////////////////////// -// Copyright (c) 2024, ООО 1С-Софт +// Copyright (c) 2025, ООО 1С-Софт // Все права защищены. Эта программа и сопроводительные материалы предоставляются // в соответствии с условиями лицензии Attribution 4.0 International (CC BY 4.0) // Текст лицензии доступен по ссылке: diff --git a/SSL/src/CommonModules/МашиночитаемыеДоверенностиФНС/Module.bsl b/SSL/src/CommonModules/МашиночитаемыеДоверенностиФНС/Module.bsl index 2ceb79da0..d155662ae 100644 --- a/SSL/src/CommonModules/МашиночитаемыеДоверенностиФНС/Module.bsl +++ b/SSL/src/CommonModules/МашиночитаемыеДоверенностиФНС/Module.bsl @@ -1,5 +1,5 @@ /////////////////////////////////////////////////////////////////////////////////////////////////////// -// Copyright (c) 2024, ООО 1С-Софт +// Copyright (c) 2025, ООО 1С-Софт // Все права защищены. Эта программа и сопроводительные материалы предоставляются // в соответствии с условиями лицензии Attribution 4.0 International (CC BY 4.0) // Текст лицензии доступен по ссылке: @@ -507,6 +507,59 @@ // Следующие процедуры и функции предназначены для интеграции с 1С:Библиотека регламентированной отчетности. // +// Возвращает структуру реквизитов доверенности, прочитанной из переданного файла или архива. +// Если не удалось прочитать, возвращает текст ошибки +// +// Параметры: +// ЗагруженныйФайл - Структура - файл доверенности (xml), архив с доверенностью (zip): +// * ИмяФайла - Строка - имя файла без пути к нему, +// * Хранение - Строка - адрес двоичных данных файла во временном хранилище. +// +// Возвращаемое значение: +// Строка, +// Структура: +// * ДатаВыдачи - Дата +// * ДатаОкончания - Дата +// * НомерДоверенности - Строка +// * Доверители - Массив из Структура: +// ** Организация - Неопределено, Структура - см. МашиночитаемыеДоверенностиФНСПереопределяемый.ПриЗаполненииРеквизитовОрганизации.Реквизиты +// ** ОрганизацияПредставитель - Неопределено, Структура - см. МашиночитаемыеДоверенностиФНСПереопределяемый.ПриЗаполненииРеквизитовОрганизации.Реквизиты +// ** ФизическоеЛицо - Неопределено, Структура - см. МашиночитаемыеДоверенностиФНСПереопределяемый.ПриЗаполненииРеквизитовФизическогоЛица.Реквизиты +// * Представители - Массив из Структура: +// ** Организация - Неопределено, Структура - см. МашиночитаемыеДоверенностиФНСПереопределяемый.ПриЗаполненииРеквизитовОрганизации.Реквизиты +// ** ФизическоеЛицо - Неопределено, Структура - см. МашиночитаемыеДоверенностиФНСПереопределяемый.ПриЗаполненииРеквизитовФизическогоЛица.Реквизиты +// * Полномочия - ТаблицаЗначений: +// ** Код - Строка +// ** Мнемокод - Строка +// ** Наименование - Строка +// * Ссылка - СправочникСсылка.МашиночитаемыеДоверенности +// * Наименование - Строка +// +Функция РеквизитыДоверенностиИзФайла(ЗагруженныйФайл) Экспорт + + Возврат Справочники.МашиночитаемыеДоверенности.РеквизитыДоверенностиИзФайла(ЗагруженныйФайл); + +КонецФункции + +// Возвращает список новых либо перезаполненных существующих элементов справочника МашиночитаемыеДоверенности данными из +// файлов. +// +// Параметры: +// ЗагруженныеФайлы - Массив из Структура - файлы доверенностей и подписей, архивы zip: +// * ИмяФайла - Строка - имя файла без пути к нему, +// * Хранение - Строка - адрес двоичных данных файла во временном хранилище. +// Замещать - Булево - при замещении выполняется перезаполнение элемента, все имеющиеся присоединенные файлы при этом +// помечаются на удаление. +// +// Возвращаемое значение: +// Структура: +// * Доверенности - Массив из СправочникСсылка.МашиночитаемыеДоверенности +// * ТекстыОшибок - Массив из Строка +// +Функция ЗагрузитьДоверенностиВИнформационнуюБазу(ЗагруженныеФайлы, Замещать = Ложь) Экспорт + Возврат МашиночитаемыеДоверенностиФНССлужебный.ЗагрузитьДоверенностиВИнформационнуюБазу(ЗагруженныеФайлы, Замещать); +КонецФункции + // Получает уникальный номер машиночитаемой доверенности с сервиса распределенного реестра ФНС. // // Параметры: diff --git a/SSL/src/CommonModules/МашиночитаемыеДоверенностиФНСКлиент/Module.bsl b/SSL/src/CommonModules/МашиночитаемыеДоверенностиФНСКлиент/Module.bsl index 6bc72b088..9004322e3 100644 --- a/SSL/src/CommonModules/МашиночитаемыеДоверенностиФНСКлиент/Module.bsl +++ b/SSL/src/CommonModules/МашиночитаемыеДоверенностиФНСКлиент/Module.bsl @@ -1,5 +1,5 @@ /////////////////////////////////////////////////////////////////////////////////////////////////////// -// Copyright (c) 2024, ООО 1С-Софт +// Copyright (c) 2025, ООО 1С-Софт // Все права защищены. Эта программа и сопроводительные материалы предоставляются // в соответствии с условиями лицензии Attribution 4.0 International (CC BY 4.0) // Текст лицензии доступен по ссылке: diff --git a/SSL/src/CommonModules/МашиночитаемыеДоверенностиФНСКлиентПереопределяемый/Module.bsl b/SSL/src/CommonModules/МашиночитаемыеДоверенностиФНСКлиентПереопределяемый/Module.bsl index 29db35882..7f361d75b 100644 --- a/SSL/src/CommonModules/МашиночитаемыеДоверенностиФНСКлиентПереопределяемый/Module.bsl +++ b/SSL/src/CommonModules/МашиночитаемыеДоверенностиФНСКлиентПереопределяемый/Module.bsl @@ -1,5 +1,5 @@ /////////////////////////////////////////////////////////////////////////////////////////////////////// -// Copyright (c) 2024, ООО 1С-Софт +// Copyright (c) 2025, ООО 1С-Софт // Все права защищены. Эта программа и сопроводительные материалы предоставляются // в соответствии с условиями лицензии Attribution 4.0 International (CC BY 4.0) // Текст лицензии доступен по ссылке: diff --git a/SSL/src/CommonModules/МашиночитаемыеДоверенностиФНСПереопределяемый/Module.bsl b/SSL/src/CommonModules/МашиночитаемыеДоверенностиФНСПереопределяемый/Module.bsl index 7655e66fe..bd1255a3f 100644 --- a/SSL/src/CommonModules/МашиночитаемыеДоверенностиФНСПереопределяемый/Module.bsl +++ b/SSL/src/CommonModules/МашиночитаемыеДоверенностиФНСПереопределяемый/Module.bsl @@ -1,5 +1,5 @@ /////////////////////////////////////////////////////////////////////////////////////////////////////// -// Copyright (c) 2024, ООО 1С-Софт +// Copyright (c) 2025, ООО 1С-Софт // Все права защищены. Эта программа и сопроводительные материалы предоставляются // в соответствии с условиями лицензии Attribution 4.0 International (CC BY 4.0) // Текст лицензии доступен по ссылке: diff --git a/SSL/src/CommonModules/МашиночитаемыеДоверенностиФНСПовтИсп/Module.bsl b/SSL/src/CommonModules/МашиночитаемыеДоверенностиФНСПовтИсп/Module.bsl index 9a9805e4d..3d0d77522 100644 --- a/SSL/src/CommonModules/МашиночитаемыеДоверенностиФНСПовтИсп/Module.bsl +++ b/SSL/src/CommonModules/МашиночитаемыеДоверенностиФНСПовтИсп/Module.bsl @@ -1,5 +1,5 @@ /////////////////////////////////////////////////////////////////////////////////////////////////////// -// Copyright (c) 2024, ООО 1С-Софт +// Copyright (c) 2025, ООО 1С-Софт // Все права защищены. Эта программа и сопроводительные материалы предоставляются // в соответствии с условиями лицензии Attribution 4.0 International (CC BY 4.0) // Текст лицензии доступен по ссылке: diff --git a/SSL/src/CommonModules/МашиночитаемыеДоверенностиФНССлужебный/Module.bsl b/SSL/src/CommonModules/МашиночитаемыеДоверенностиФНССлужебный/Module.bsl index 63b072b8c..867c4d41e 100644 --- a/SSL/src/CommonModules/МашиночитаемыеДоверенностиФНССлужебный/Module.bsl +++ b/SSL/src/CommonModules/МашиночитаемыеДоверенностиФНССлужебный/Module.bsl @@ -1,5 +1,5 @@ /////////////////////////////////////////////////////////////////////////////////////////////////////// -// Copyright (c) 2024, ООО 1С-Софт +// Copyright (c) 2025, ООО 1С-Софт // Все права защищены. Эта программа и сопроводительные материалы предоставляются // в соответствии с условиями лицензии Attribution 4.0 International (CC BY 4.0) // Текст лицензии доступен по ссылке: @@ -2603,10 +2603,13 @@ ДополнительныеПараметры = Новый Структура("НаименованиеВключаетСокращение, ПроверитьАдрес", Истина, Истина); АдресСтруктура = МодульРаботаСАдресами.СведенияОбАдресе(АдресЗначение, ДополнительныеПараметры); - Если АдресСтруктура.РезультатПроверкиАдреса <> "Успех" И АдресСтруктура.Свойство("ТипАдреса") - И (АдресСтруктура.ТипАдреса = МодульРаботаСАдресамиКлиентСервер.АдминистративноТерриториальныйАдрес() - Или АдресСтруктура.ТипАдреса = МодульРаботаСАдресамиКлиентСервер.МуниципальныйАдрес()) Тогда - Возврат АдресСтруктура.ОшибкиПроверкиАдреса; + Если АдресСтруктура.РезультатПроверкиАдреса <> "Успех" И АдресСтруктура.Свойство("ТипАдреса") Тогда + Если АдресСтруктура.ТипАдреса = МодульРаботаСАдресамиКлиентСервер.АдминистративноТерриториальныйАдрес() + Или АдресСтруктура.ТипАдреса = МодульРаботаСАдресамиКлиентСервер.МуниципальныйАдрес() Тогда + Возврат АдресСтруктура.ОшибкиПроверкиАдреса; + ИначеЕсли Не ЗначениеЗаполнено(АдресСтруктура.КодРегиона) Тогда + Возврат НСтр("ru = 'Не заполнен Код региона'"); + КонецЕсли; КонецЕсли; Возврат ""; @@ -5759,8 +5762,6 @@ Методы.Вставить("УстановитьПараметрСеансаПараметрыАвторизацииВРаспределенномРеестре"); Методы.Вставить("ОбновитьИПрочитатьСтатусДоверенностей", Истина); - Методы.Вставить("ОбновлениеСтатусовМЧД", Истина); - Методы.Вставить("ОбновитьКлассификаторыМЧД", Истина); КонецПроцедуры diff --git a/SSL/src/CommonModules/МашиночитаемыеДоверенностиФНССлужебныйВызовСервера/Module.bsl b/SSL/src/CommonModules/МашиночитаемыеДоверенностиФНССлужебныйВызовСервера/Module.bsl index d4db47a30..f75e53199 100644 --- a/SSL/src/CommonModules/МашиночитаемыеДоверенностиФНССлужебныйВызовСервера/Module.bsl +++ b/SSL/src/CommonModules/МашиночитаемыеДоверенностиФНССлужебныйВызовСервера/Module.bsl @@ -1,5 +1,5 @@ /////////////////////////////////////////////////////////////////////////////////////////////////////// -// Copyright (c) 2024, ООО 1С-Софт +// Copyright (c) 2025, ООО 1С-Софт // Все права защищены. Эта программа и сопроводительные материалы предоставляются // в соответствии с условиями лицензии Attribution 4.0 International (CC BY 4.0) // Текст лицензии доступен по ссылке: @@ -83,10 +83,11 @@ // * Ключ - СправочникСсылка.МашиночитаемыеДоверенности // * Значение - см. МашиночитаемыеДоверенностиФНС.ФайлыДоверенности // -Функция ФайлыДоверенностей(Знач Доверенности, Знач ДляНалоговыхОрганов) Экспорт +Функция ФайлыДоверенностей(Знач Доверенности, Знач ДляНалоговыхОрганов, Знач ПроверятьДоступностьПерсональныхДанных = Ложь) Экспорт Результат = Новый Массив; - ФайлыДоверенностей = МашиночитаемыеДоверенностиФНС.ФайлыДоверенностей(Доверенности, ДляНалоговыхОрганов); + ФайлыДоверенностей = Справочники.МашиночитаемыеДоверенности.ФайлыДоверенностей(Доверенности, ДляНалоговыхОрганов, + ПроверятьДоступностьПерсональныхДанных); Для Каждого Доверенность Из Доверенности Цикл ФайлыДоверенности = ФайлыДоверенностей[Доверенность]; diff --git a/SSL/src/CommonModules/МашиночитаемыеДоверенностиФНССлужебныйКлиент/Module.bsl b/SSL/src/CommonModules/МашиночитаемыеДоверенностиФНССлужебныйКлиент/Module.bsl index 4e30a803d..38bf95950 100644 --- a/SSL/src/CommonModules/МашиночитаемыеДоверенностиФНССлужебныйКлиент/Module.bsl +++ b/SSL/src/CommonModules/МашиночитаемыеДоверенностиФНССлужебныйКлиент/Module.bsl @@ -1,5 +1,5 @@ /////////////////////////////////////////////////////////////////////////////////////////////////////// -// Copyright (c) 2024, ООО 1С-Софт +// Copyright (c) 2025, ООО 1С-Софт // Все права защищены. Эта программа и сопроводительные материалы предоставляются // в соответствии с условиями лицензии Attribution 4.0 International (CC BY 4.0) // Текст лицензии доступен по ссылке: @@ -212,14 +212,15 @@ Возврат Параметры; КонецФункции -Процедура ПродолжитьВыгрузкуДоверенностиВФайл(РезультатДиалога, Доверенности) Экспорт +Процедура ПродолжитьВыгрузкуДоверенностиВФайл(РезультатДиалога, Контекст) Экспорт Если РезультатДиалога = Неопределено Тогда Возврат; КонецЕсли; ДляНалоговыхОрганов = РезультатДиалога.Значение; - ФайлыДоверенностей = МашиночитаемыеДоверенностиФНССлужебныйВызовСервера.ФайлыДоверенностей(Доверенности, ДляНалоговыхОрганов); + ФайлыДоверенностей = МашиночитаемыеДоверенностиФНССлужебныйВызовСервера.ФайлыДоверенностей( + Контекст.Доверенности, ДляНалоговыхОрганов, Контекст.ПроверятьДоступностьПерсональныхДанных); Если Не ЗначениеЗаполнено(ФайлыДоверенностей) Тогда Возврат; @@ -319,7 +320,7 @@ Возврат Контекст; КонецФункции -Процедура ВыгрузитьДоверенностиВФайлы(Знач Доверенности) Экспорт +Процедура ВыгрузитьДоверенностиВФайлы(Знач Доверенности, Знач ПроверятьДоступностьПерсональныхДанных) Экспорт ДляНалоговыхОрганов = МашиночитаемыеДоверенностиФНССлужебныйВызовСервера.ДоверенностиДляНалоговыхОрганов(Доверенности); @@ -336,7 +337,8 @@ Кнопки.Добавить(Истина, НСтр("ru = 'Для представления в налоговые органы'")); Кнопки.Добавить(Ложь, НСтр("ru = 'Только для подписания документов'")); - ОписаниеОповещения = Новый ОписаниеОповещения("ПродолжитьВыгрузкуДоверенностиВФайл", ЭтотОбъект, Доверенности); + ОписаниеОповещения = Новый ОписаниеОповещения("ПродолжитьВыгрузкуДоверенностиВФайл", ЭтотОбъект, + Новый Структура("Доверенности, ПроверятьДоступностьПерсональныхДанных", Доверенности, ПроверятьДоступностьПерсональныхДанных)); ПараметрыВопроса = СтандартныеПодсистемыКлиент.ПараметрыВопросаПользователю(); ПараметрыВопроса.ПредлагатьБольшеНеЗадаватьЭтотВопрос = Ложь; @@ -349,7 +351,8 @@ СтандартныеПодсистемыКлиент.ПоказатьВопросПользователю(ОписаниеОповещения, ТекстВопроса, Кнопки, ПараметрыВопроса); Иначе - ПродолжитьВыгрузкуДоверенностиВФайл(Новый Структура("Значение", Ложь), Доверенности); + ПродолжитьВыгрузкуДоверенностиВФайл(Новый Структура("Значение", Ложь), + Новый Структура("Доверенности, ПроверятьДоступностьПерсональныхДанных", Доверенности, ПроверятьДоступностьПерсональныхДанных)); КонецЕсли; КонецПроцедуры @@ -368,11 +371,11 @@ КонецПроцедуры -Процедура ВыгрузитьДоверенностьВФайл(Знач Доверенность) Экспорт +Процедура ВыгрузитьДоверенностьВФайл(Знач Доверенность, Знач ПроверятьДоступностьПерсональныхДанных) Экспорт Если ТипЗнч(Доверенность) <> Тип("Массив") Тогда Доверенность = ОбщегоНазначенияКлиентСервер.ЗначениеВМассиве(Доверенность); КонецЕсли; - ВыгрузитьДоверенностиВФайлы(Доверенность); + ВыгрузитьДоверенностиВФайлы(Доверенность, ПроверятьДоступностьПерсональныхДанных); КонецПроцедуры Процедура ПолучитьДоверенностьИзРеестраФНС(ОповещениеОПолучении = Неопределено, НомерДоверенности = Неопределено, ИННДоверителя = Неопределено) Экспорт diff --git a/SSL/src/CommonModules/МашиночитаемыеДоверенностиФНССлужебныйКлиентСервер/Module.bsl b/SSL/src/CommonModules/МашиночитаемыеДоверенностиФНССлужебныйКлиентСервер/Module.bsl index f2dd43588..e6f0c35e8 100644 --- a/SSL/src/CommonModules/МашиночитаемыеДоверенностиФНССлужебныйКлиентСервер/Module.bsl +++ b/SSL/src/CommonModules/МашиночитаемыеДоверенностиФНССлужебныйКлиентСервер/Module.bsl @@ -1,5 +1,5 @@ /////////////////////////////////////////////////////////////////////////////////////////////////////// -// Copyright (c) 2024, ООО 1С-Софт +// Copyright (c) 2025, ООО 1С-Софт // Все права защищены. Эта программа и сопроводительные материалы предоставляются // в соответствии с условиями лицензии Attribution 4.0 International (CC BY 4.0) // Текст лицензии доступен по ссылке: @@ -20,6 +20,9 @@ ПерсональныеДанные.Добавить("ДокументКодПодразделения"); ПерсональныеДанные.Добавить("ДокументСрокДействия"); ПерсональныеДанные.Добавить("СтраховойНомерПФР"); + ПерсональныеДанные.Добавить("ИННФЛ"); + ПерсональныеДанные.Добавить("Телефон"); + ПерсональныеДанные.Добавить("ЭлектроннаяПочта"); ПерсональныеДанные.Добавить("НомерЗаписиЕдиногоРегистраНаселения"); Возврат ПерсональныеДанные; diff --git a/SSL/src/CommonModules/МультиязычностьКлиент/Module.bsl b/SSL/src/CommonModules/МультиязычностьКлиент/Module.bsl index 3a828fe32..3ce14d0f3 100644 --- a/SSL/src/CommonModules/МультиязычностьКлиент/Module.bsl +++ b/SSL/src/CommonModules/МультиязычностьКлиент/Module.bsl @@ -1,5 +1,5 @@ /////////////////////////////////////////////////////////////////////////////////////////////////////// -// Copyright (c) 2024, ООО 1С-Софт +// Copyright (c) 2025, ООО 1С-Софт // Все права защищены. Эта программа и сопроводительные материалы предоставляются // в соответствии с условиями лицензии Attribution 4.0 International (CC BY 4.0) // Текст лицензии доступен по ссылке: diff --git a/SSL/src/CommonModules/МультиязычностьКлиентСервер/Module.bsl b/SSL/src/CommonModules/МультиязычностьКлиентСервер/Module.bsl index a2f83ff8b..1f86859ea 100644 --- a/SSL/src/CommonModules/МультиязычностьКлиентСервер/Module.bsl +++ b/SSL/src/CommonModules/МультиязычностьКлиентСервер/Module.bsl @@ -1,5 +1,5 @@ /////////////////////////////////////////////////////////////////////////////////////////////////////// -// Copyright (c) 2024, ООО 1С-Софт +// Copyright (c) 2025, ООО 1С-Софт // Все права защищены. Эта программа и сопроводительные материалы предоставляются // в соответствии с условиями лицензии Attribution 4.0 International (CC BY 4.0) // Текст лицензии доступен по ссылке: diff --git a/SSL/src/CommonModules/МультиязычностьПереопределяемый/Module.bsl b/SSL/src/CommonModules/МультиязычностьПереопределяемый/Module.bsl index 82d46a4c6..a7a3eb727 100644 --- a/SSL/src/CommonModules/МультиязычностьПереопределяемый/Module.bsl +++ b/SSL/src/CommonModules/МультиязычностьПереопределяемый/Module.bsl @@ -1,5 +1,5 @@ /////////////////////////////////////////////////////////////////////////////////////////////////////// -// Copyright (c) 2024, ООО 1С-Софт +// Copyright (c) 2025, ООО 1С-Софт // Все права защищены. Эта программа и сопроводительные материалы предоставляются // в соответствии с условиями лицензии Attribution 4.0 International (CC BY 4.0) // Текст лицензии доступен по ссылке: diff --git a/SSL/src/CommonModules/МультиязычностьПовтИсп/Module.bsl b/SSL/src/CommonModules/МультиязычностьПовтИсп/Module.bsl index 1ca1f2647..015d222ec 100644 --- a/SSL/src/CommonModules/МультиязычностьПовтИсп/Module.bsl +++ b/SSL/src/CommonModules/МультиязычностьПовтИсп/Module.bsl @@ -1,5 +1,5 @@ /////////////////////////////////////////////////////////////////////////////////////////////////////// -// Copyright (c) 2024, ООО 1С-Софт +// Copyright (c) 2025, ООО 1С-Софт // Все права защищены. Эта программа и сопроводительные материалы предоставляются // в соответствии с условиями лицензии Attribution 4.0 International (CC BY 4.0) // Текст лицензии доступен по ссылке: diff --git a/SSL/src/CommonModules/МультиязычностьСервер/Module.bsl b/SSL/src/CommonModules/МультиязычностьСервер/Module.bsl index 857cae710..dc32fea95 100644 --- a/SSL/src/CommonModules/МультиязычностьСервер/Module.bsl +++ b/SSL/src/CommonModules/МультиязычностьСервер/Module.bsl @@ -1,5 +1,5 @@ /////////////////////////////////////////////////////////////////////////////////////////////////////// -// Copyright (c) 2024, ООО 1С-Софт +// Copyright (c) 2025, ООО 1С-Софт // Все права защищены. Эта программа и сопроводительные материалы предоставляются // в соответствии с условиями лицензии Attribution 4.0 International (CC BY 4.0) // Текст лицензии доступен по ссылке: diff --git a/SSL/src/CommonModules/НапоминанияПользователя/Module.bsl b/SSL/src/CommonModules/НапоминанияПользователя/Module.bsl index 572d76607..33d9f1c04 100644 --- a/SSL/src/CommonModules/НапоминанияПользователя/Module.bsl +++ b/SSL/src/CommonModules/НапоминанияПользователя/Module.bsl @@ -1,5 +1,5 @@ /////////////////////////////////////////////////////////////////////////////////////////////////////// -// Copyright (c) 2024, ООО 1С-Софт +// Copyright (c) 2025, ООО 1С-Софт // Все права защищены. Эта программа и сопроводительные материалы предоставляются // в соответствии с условиями лицензии Attribution 4.0 International (CC BY 4.0) // Текст лицензии доступен по ссылке: diff --git a/SSL/src/CommonModules/НапоминанияПользователяВызовСервера/Module.bsl b/SSL/src/CommonModules/НапоминанияПользователяВызовСервера/Module.bsl index 9c490a697..0a2c92d6c 100644 --- a/SSL/src/CommonModules/НапоминанияПользователяВызовСервера/Module.bsl +++ b/SSL/src/CommonModules/НапоминанияПользователяВызовСервера/Module.bsl @@ -1,5 +1,5 @@ /////////////////////////////////////////////////////////////////////////////////////////////////////// -// Copyright (c) 2024, ООО 1С-Софт +// Copyright (c) 2025, ООО 1С-Софт // Все права защищены. Эта программа и сопроводительные материалы предоставляются // в соответствии с условиями лицензии Attribution 4.0 International (CC BY 4.0) // Текст лицензии доступен по ссылке: diff --git a/SSL/src/CommonModules/НапоминанияПользователяГлобальный/Module.bsl b/SSL/src/CommonModules/НапоминанияПользователяГлобальный/Module.bsl index 7918949ed..f77fbf022 100644 --- a/SSL/src/CommonModules/НапоминанияПользователяГлобальный/Module.bsl +++ b/SSL/src/CommonModules/НапоминанияПользователяГлобальный/Module.bsl @@ -1,5 +1,5 @@ /////////////////////////////////////////////////////////////////////////////////////////////////////// -// Copyright (c) 2024, ООО 1С-Софт +// Copyright (c) 2025, ООО 1С-Софт // Все права защищены. Эта программа и сопроводительные материалы предоставляются // в соответствии с условиями лицензии Attribution 4.0 International (CC BY 4.0) // Текст лицензии доступен по ссылке: diff --git a/SSL/src/CommonModules/НапоминанияПользователяКлиент/Module.bsl b/SSL/src/CommonModules/НапоминанияПользователяКлиент/Module.bsl index 2309cc973..1b87fb986 100644 --- a/SSL/src/CommonModules/НапоминанияПользователяКлиент/Module.bsl +++ b/SSL/src/CommonModules/НапоминанияПользователяКлиент/Module.bsl @@ -1,5 +1,5 @@ /////////////////////////////////////////////////////////////////////////////////////////////////////// -// Copyright (c) 2024, ООО 1С-Софт +// Copyright (c) 2025, ООО 1С-Софт // Все права защищены. Эта программа и сопроводительные материалы предоставляются // в соответствии с условиями лицензии Attribution 4.0 International (CC BY 4.0) // Текст лицензии доступен по ссылке: diff --git a/SSL/src/CommonModules/НапоминанияПользователяКлиентСервер/Module.bsl b/SSL/src/CommonModules/НапоминанияПользователяКлиентСервер/Module.bsl index 68305ccb5..4e3a21653 100644 --- a/SSL/src/CommonModules/НапоминанияПользователяКлиентСервер/Module.bsl +++ b/SSL/src/CommonModules/НапоминанияПользователяКлиентСервер/Module.bsl @@ -1,5 +1,5 @@ /////////////////////////////////////////////////////////////////////////////////////////////////////// -// Copyright (c) 2024, ООО 1С-Софт +// Copyright (c) 2025, ООО 1С-Софт // Все права защищены. Эта программа и сопроводительные материалы предоставляются // в соответствии с условиями лицензии Attribution 4.0 International (CC BY 4.0) // Текст лицензии доступен по ссылке: diff --git a/SSL/src/CommonModules/НапоминанияПользователяПереопределяемый/Module.bsl b/SSL/src/CommonModules/НапоминанияПользователяПереопределяемый/Module.bsl index 9db2b2a44..04014ee1d 100644 --- a/SSL/src/CommonModules/НапоминанияПользователяПереопределяемый/Module.bsl +++ b/SSL/src/CommonModules/НапоминанияПользователяПереопределяемый/Module.bsl @@ -1,5 +1,5 @@ /////////////////////////////////////////////////////////////////////////////////////////////////////// -// Copyright (c) 2024, ООО 1С-Софт +// Copyright (c) 2025, ООО 1С-Софт // Все права защищены. Эта программа и сопроводительные материалы предоставляются // в соответствии с условиями лицензии Attribution 4.0 International (CC BY 4.0) // Текст лицензии доступен по ссылке: diff --git a/SSL/src/CommonModules/НапоминанияПользователяСлужебный/Module.bsl b/SSL/src/CommonModules/НапоминанияПользователяСлужебный/Module.bsl index fd5fe386c..f14fd9d3d 100644 --- a/SSL/src/CommonModules/НапоминанияПользователяСлужебный/Module.bsl +++ b/SSL/src/CommonModules/НапоминанияПользователяСлужебный/Module.bsl @@ -1,5 +1,5 @@ /////////////////////////////////////////////////////////////////////////////////////////////////////// -// Copyright (c) 2024, ООО 1С-Софт +// Copyright (c) 2025, ООО 1С-Софт // Все права защищены. Эта программа и сопроводительные материалы предоставляются // в соответствии с условиями лицензии Attribution 4.0 International (CC BY 4.0) // Текст лицензии доступен по ссылке: diff --git a/SSL/src/CommonModules/НапоминанияПользователяСлужебныйКлиент/Module.bsl b/SSL/src/CommonModules/НапоминанияПользователяСлужебныйКлиент/Module.bsl index 44db00c66..693594201 100644 --- a/SSL/src/CommonModules/НапоминанияПользователяСлужебныйКлиент/Module.bsl +++ b/SSL/src/CommonModules/НапоминанияПользователяСлужебныйКлиент/Module.bsl @@ -1,5 +1,5 @@ /////////////////////////////////////////////////////////////////////////////////////////////////////// -// Copyright (c) 2024, ООО 1С-Софт +// Copyright (c) 2025, ООО 1С-Софт // Все права защищены. Эта программа и сопроводительные материалы предоставляются // в соответствии с условиями лицензии Attribution 4.0 International (CC BY 4.0) // Текст лицензии доступен по ссылке: diff --git a/SSL/src/CommonModules/НастройкаПорядкаЭлементов/Module.bsl b/SSL/src/CommonModules/НастройкаПорядкаЭлементов/Module.bsl index 80699feed..531872115 100644 --- a/SSL/src/CommonModules/НастройкаПорядкаЭлементов/Module.bsl +++ b/SSL/src/CommonModules/НастройкаПорядкаЭлементов/Module.bsl @@ -1,5 +1,5 @@ /////////////////////////////////////////////////////////////////////////////////////////////////////// -// Copyright (c) 2024, ООО 1С-Софт +// Copyright (c) 2025, ООО 1С-Софт // Все права защищены. Эта программа и сопроводительные материалы предоставляются // в соответствии с условиями лицензии Attribution 4.0 International (CC BY 4.0) // Текст лицензии доступен по ссылке: diff --git a/SSL/src/CommonModules/НастройкаПорядкаЭлементовСлужебный/Module.bsl b/SSL/src/CommonModules/НастройкаПорядкаЭлементовСлужебный/Module.bsl index 5c2aed33c..fde7dba66 100644 --- a/SSL/src/CommonModules/НастройкаПорядкаЭлементовСлужебный/Module.bsl +++ b/SSL/src/CommonModules/НастройкаПорядкаЭлементовСлужебный/Module.bsl @@ -1,5 +1,5 @@ /////////////////////////////////////////////////////////////////////////////////////////////////////// -// Copyright (c) 2024, ООО 1С-Софт +// Copyright (c) 2025, ООО 1С-Софт // Все права защищены. Эта программа и сопроводительные материалы предоставляются // в соответствии с условиями лицензии Attribution 4.0 International (CC BY 4.0) // Текст лицензии доступен по ссылке: diff --git a/SSL/src/CommonModules/НастройкаРазрешенийНаИспользованиеВнешнихРесурсовВызовСервера/Module.bsl b/SSL/src/CommonModules/НастройкаРазрешенийНаИспользованиеВнешнихРесурсовВызовСервера/Module.bsl index 9148c2097..371246681 100644 --- a/SSL/src/CommonModules/НастройкаРазрешенийНаИспользованиеВнешнихРесурсовВызовСервера/Module.bsl +++ b/SSL/src/CommonModules/НастройкаРазрешенийНаИспользованиеВнешнихРесурсовВызовСервера/Module.bsl @@ -1,5 +1,5 @@ /////////////////////////////////////////////////////////////////////////////////////////////////////// -// Copyright (c) 2024, ООО 1С-Софт +// Copyright (c) 2025, ООО 1С-Софт // Все права защищены. Эта программа и сопроводительные материалы предоставляются // в соответствии с условиями лицензии Attribution 4.0 International (CC BY 4.0) // Текст лицензии доступен по ссылке: diff --git a/SSL/src/CommonModules/НастройкаРазрешенийНаИспользованиеВнешнихРесурсовГлобальный/Module.bsl b/SSL/src/CommonModules/НастройкаРазрешенийНаИспользованиеВнешнихРесурсовГлобальный/Module.bsl index 7902262e0..1cc21ed82 100644 --- a/SSL/src/CommonModules/НастройкаРазрешенийНаИспользованиеВнешнихРесурсовГлобальный/Module.bsl +++ b/SSL/src/CommonModules/НастройкаРазрешенийНаИспользованиеВнешнихРесурсовГлобальный/Module.bsl @@ -1,5 +1,5 @@ /////////////////////////////////////////////////////////////////////////////////////////////////////// -// Copyright (c) 2024, ООО 1С-Софт +// Copyright (c) 2025, ООО 1С-Софт // Все права защищены. Эта программа и сопроводительные материалы предоставляются // в соответствии с условиями лицензии Attribution 4.0 International (CC BY 4.0) // Текст лицензии доступен по ссылке: diff --git a/SSL/src/CommonModules/НастройкаРазрешенийНаИспользованиеВнешнихРесурсовКлиент/Module.bsl b/SSL/src/CommonModules/НастройкаРазрешенийНаИспользованиеВнешнихРесурсовКлиент/Module.bsl index 49d7ff820..35addc8fc 100644 --- a/SSL/src/CommonModules/НастройкаРазрешенийНаИспользованиеВнешнихРесурсовКлиент/Module.bsl +++ b/SSL/src/CommonModules/НастройкаРазрешенийНаИспользованиеВнешнихРесурсовКлиент/Module.bsl @@ -1,5 +1,5 @@ /////////////////////////////////////////////////////////////////////////////////////////////////////// -// Copyright (c) 2024, ООО 1С-Софт +// Copyright (c) 2025, ООО 1С-Софт // Все права защищены. Эта программа и сопроводительные материалы предоставляются // в соответствии с условиями лицензии Attribution 4.0 International (CC BY 4.0) // Текст лицензии доступен по ссылке: diff --git a/SSL/src/CommonModules/НастройкиПрограммы/Module.bsl b/SSL/src/CommonModules/НастройкиПрограммы/Module.bsl index 51090dc13..781d989e0 100644 --- a/SSL/src/CommonModules/НастройкиПрограммы/Module.bsl +++ b/SSL/src/CommonModules/НастройкиПрограммы/Module.bsl @@ -1,5 +1,5 @@ /////////////////////////////////////////////////////////////////////////////////////////////////////// -// Copyright (c) 2024, ООО 1С-Софт +// Copyright (c) 2025, ООО 1С-Софт // Все права защищены. Эта программа и сопроводительные материалы предоставляются // в соответствии с условиями лицензии Attribution 4.0 International (CC BY 4.0) // Текст лицензии доступен по ссылке: diff --git a/SSL/src/CommonModules/НастройкиПрограммыКлиент/Module.bsl b/SSL/src/CommonModules/НастройкиПрограммыКлиент/Module.bsl index 08165f51a..d28aa6dc4 100644 --- a/SSL/src/CommonModules/НастройкиПрограммыКлиент/Module.bsl +++ b/SSL/src/CommonModules/НастройкиПрограммыКлиент/Module.bsl @@ -1,5 +1,5 @@ /////////////////////////////////////////////////////////////////////////////////////////////////////// -// Copyright (c) 2024, ООО 1С-Софт +// Copyright (c) 2025, ООО 1С-Софт // Все права защищены. Эта программа и сопроводительные материалы предоставляются // в соответствии с условиями лицензии Attribution 4.0 International (CC BY 4.0) // Текст лицензии доступен по ссылке: diff --git a/SSL/src/CommonModules/НастройкиПрограммыПереопределяемый/Module.bsl b/SSL/src/CommonModules/НастройкиПрограммыПереопределяемый/Module.bsl index 238bbeae2..31e5474a1 100644 --- a/SSL/src/CommonModules/НастройкиПрограммыПереопределяемый/Module.bsl +++ b/SSL/src/CommonModules/НастройкиПрограммыПереопределяемый/Module.bsl @@ -1,5 +1,5 @@ /////////////////////////////////////////////////////////////////////////////////////////////////////// -// Copyright (c) 2024, ООО 1С-Софт +// Copyright (c) 2025, ООО 1С-Софт // Все права защищены. Эта программа и сопроводительные материалы предоставляются // в соответствии с условиями лицензии Attribution 4.0 International (CC BY 4.0) // Текст лицензии доступен по ссылке: diff --git a/SSL/src/CommonModules/ОбменДаннымиXDTOСервер/Module.bsl b/SSL/src/CommonModules/ОбменДаннымиXDTOСервер/Module.bsl index 5d127edd9..b4bc66bfd 100644 --- a/SSL/src/CommonModules/ОбменДаннымиXDTOСервер/Module.bsl +++ b/SSL/src/CommonModules/ОбменДаннымиXDTOСервер/Module.bsl @@ -1,5 +1,5 @@ /////////////////////////////////////////////////////////////////////////////////////////////////////// -// Copyright (c) 2024, ООО 1С-Софт +// Copyright (c) 2025, ООО 1С-Софт // Все права защищены. Эта программа и сопроводительные материалы предоставляются // в соответствии с условиями лицензии Attribution 4.0 International (CC BY 4.0) // Текст лицензии доступен по ссылке: @@ -140,6 +140,8 @@ КомпонентыОбмена.Вставить("ПропускатьОбъектыСОшибкамиПроверкиПоСхеме", Ложь); КомпонентыОбмена.Вставить("НеВыгруженныеОбъекты", Новый Массив); + КомпонентыОбмена.Вставить("ФильтрВыборкиИзменений"); + Иначе КомпонентыОбмена.Вставить("НомерВходящегоСообщения"); @@ -209,24 +211,7 @@ // Процедура ИнициализироватьТаблицыПравилОбмена(КомпонентыОбмена) Экспорт - КомпонентыОбмена.Вставить("БазовыеСхемыФормата", Новый Соответствие); - КомпонентыОбмена.БазовыеСхемыФормата.Вставить(КомпонентыОбмена.XMLСхема, Истина); - КомпонентыОбмена.БазовыеСхемыФормата.Вставить(XMLБазоваяСхема(), Истина); - - // Вычисление версии формата менеджера обмена - от этого зависит формирование правил. - Попытка - КомпонентыОбмена.Вставить("ВерсияФорматаМенеджераОбмена", КомпонентыОбмена.МенеджерОбмена.ВерсияФорматаМенеджераОбмена()); - Исключение - КомпонентыОбмена.Вставить("ВерсияФорматаМенеджераОбмена", "1"); - КонецПопытки; - - // Инициализация таблиц правил обмена. - КомпонентыОбмена.Вставить("ПравилаОбработкиДанных", ТаблицаПравилОбработкиДанных(КомпонентыОбмена)); - КомпонентыОбмена.Вставить("ПравилаКонвертацииОбъектов", ТаблицаПравилКонвертации(КомпонентыОбмена)); - - КомпонентыОбмена.Вставить("ПравилаКонвертацииПредопределенныхДанных", ТаблицаПравилКонвертацииПредопределенныхДанных(КомпонентыОбмена)); - - КомпонентыОбмена.Вставить("ПараметрыКонвертации", СтруктураПараметровКонвертации(КомпонентыОбмена.МенеджерОбмена)); + ИнициализироватьТаблицыПравилОбменаРасширенный(КомпонентыОбмена); КонецПроцедуры @@ -344,7 +329,7 @@ // - Строка // - Структура - информация об ошибке. // Число - код ошибки, см. ОбменДаннымиПовтИсп.СообщенияОбОшибках(). -// Строка - описание ошибки. +// Строка - описание ошибки: // Структура - структура с кратким и подробным описанием ошибки: // * КраткоеПредставлениеОшибки - описание ошибки для протокола (для пользователя). // * ПодробноеПредставлениеОшибки - описание ошибки для журнала регистрации. @@ -516,6 +501,75 @@ #Область ОтправкаДанных +// Проверяет возможность выгрузки ссылки в соответствии с правилами регистрации +// и настройками отправки данных на узле обмена, и регистрирует изменения на узле обмена. +// Инициализирует дополнительные параметры конвертации данных, +// передаваемые в метод ОбменДаннымиСервер.ВыполнитьДействиеОбмена для выполнения выборочной выгрузки. +// Возвращает список ссылок, которые будут выгружены. +// +// Параметры: +// УзелОбмена - ПланОбменаСсылка - узел обмена, по которому выгружаются данные. +// СписокСсылок - Массив из ЛюбаяСсылка - список ссылок выгружаемых объектов. +// ДополнительныеПараметры - Структура - исходящий параметр. Зарезервировано для служебного использования. +// +// Возвращаемое значение: +// Массив из ЛюбаяСсылка - список выгружаемых ссылок. +// +Функция ИнициализироватьВыборочнуюВыгрузкуДанных(УзелОбмена, СписокСсылок, ДополнительныеПараметры) Экспорт + + ВыгружаемыеСсылки = Новый Массив; + + ИмяПланаОбмена = ОбменДаннымиПовтИсп.ПолучитьИмяПланаОбмена(УзелОбмена); + + Для Каждого Ссылка Из СписокСсылок Цикл + Если ПланыОбмена.ИзменениеЗарегистрировано(УзелОбмена, Ссылка) Тогда + ВыгружаемыеСсылки.Добавить(Ссылка); + Иначе + ОбъектДляВыгрузки = Ссылка.ПолучитьОбъект(); + + ОбменДаннымиСобытия.ВыполнитьПравилаРегистрацииДляОбъекта(ОбъектДляВыгрузки, ИмяПланаОбмена); + + Если ПланыОбмена.ИзменениеЗарегистрировано(УзелОбмена, Ссылка) Тогда + ВыгружаемыеСсылки.Добавить(Ссылка); + КонецЕсли; + КонецЕсли; + КонецЦикла; + + ПараметрыОбработкиКонвертации = Новый Структура; + ПараметрыОбработкиКонвертации.Вставить("ИспользоватьКвитирование", Ложь); + ПараметрыОбработкиКонвертации.Вставить("ФильтрВыборкиИзменений", ОбщегоНазначения.СкопироватьРекурсивно(ВыгружаемыеСсылки)); + + ДополнительныеПараметры = Новый Структура; + ДополнительныеПараметры.Вставить("ПараметрыОбработкиКонвертации", ПараметрыОбработкиКонвертации); + + Возврат ВыгружаемыеСсылки; + +КонецФункции + +// Выполняет действия, связанные с успешной доставкой корреспонденту сообщения обмена: +// - добавляет в регистр публичных идентификаторов записи по выгруженным объектам; +// - (опционально) удаляет регистрацию изменений выгруженных объектов. +// Метод предназначен для использования только в сценарии выборочной выгрузки данных. +// Параметры: +// УзелОбмена - ПланОбменаСсылка - узел обмена, по которому выгружаются данные. +// ДополнительныеПараметры - Структура - зарезервировано для служебного использования. +// В данный параметр передается структура, полученная при подготовке выборочной +// выгрузки данных методом ОбменДаннымиXDTOСервер.ИнициализироватьВыборочнуюВыгрузкуДанных. +// +Процедура ПодтвердитьОтправкуСообщенияВыборочнойВыгрузкиДанных(УзелОбмена, ДополнительныеПараметры) Экспорт + + КомпонентыОбмена = Новый Структура; + КомпонентыОбмена.Вставить("УзелКорреспондента", УзелОбмена); + КомпонентыОбмена.Вставить("НомерСообщенияПолученногоКорреспондентом", 0); + + КомпонентыОбмена.Вставить("ИспользоватьКвитирование"); + КомпонентыОбмена.Вставить("ФильтрВыборкиИзменений"); + ЗаполнитьЗначенияСвойств(КомпонентыОбмена, ДополнительныеПараметры.ПараметрыОбработкиКонвертации); + + ОбработатьПолучениеПодтвержденияОтКорреспондента(КомпонентыОбмена, Ложь); + +КонецПроцедуры + // Выполняет выгрузку данных в соответствии с правилами и параметрами обмена. // // Параметры: @@ -555,8 +609,10 @@ НомерОтправленного = 0; Если КомпонентыОбмена.ЭтоОбменЧерезПланОбмена Тогда - - НомерОтправленного = ОбщегоНазначения.ЗначениеРеквизитаОбъекта(УзелДляОбмена, "НомерОтправленного") + 1; + + Если КомпонентыОбмена.ИспользоватьКвитирование Тогда + НомерОтправленного = ОбщегоНазначения.ЗначениеРеквизитаОбъекта(УзелДляОбмена, "НомерОтправленного") + 1; + КонецЕсли; ВыполнитьВыгрузкуЗарегистрированныхДанных(КомпонентыОбмена, НомерОтправленного); @@ -618,42 +674,47 @@ // Сбрасываем номер отправленного сообщения у не выгруженных объектов. Если КомпонентыОбмена.ПропускатьОбъектыСОшибкамиПроверкиПоСхеме Тогда + ИсключаемыеТипыДляРегистрации = ИнициализироватьМассивИсключаемыхТиповДляРегистрации(); Для Каждого ОбъектСсылка Из КомпонентыОбмена.НеВыгруженныеОбъекты Цикл - ПланыОбмена.ЗарегистрироватьИзменения(УзелДляОбмена, ОбъектСсылка); + Если ИсключаемыеТипыДляРегистрации.Найти(ТипЗнч(ОбъектСсылка)) = Неопределено Тогда + ПланыОбмена.ЗарегистрироватьИзменения(УзелДляОбмена, ОбъектСсылка); + КонецЕсли; КонецЦикла; КонецЕсли; - // Назначаем номер отправленного сообщения для объектов, выгруженных по ссылке. - Если КомпонентыОбмена.ВыгруженныеПоСсылкеОбъекты.Количество() > 0 Тогда - // Выполняем регистрацию объектов на текущем узле, которые были выгружены по ссылке. - Для Каждого Элемент Из КомпонентыОбмена.ВыгруженныеПоСсылкеОбъекты Цикл - ПланыОбмена.ЗарегистрироватьИзменения(УзелДляОбмена, Элемент); - КонецЦикла; + Если КомпонентыОбмена.ИспользоватьКвитирование Тогда + // Назначаем номер отправленного сообщения для объектов, выгруженных по ссылке. + Если КомпонентыОбмена.ВыгруженныеПоСсылкеОбъекты.Количество() > 0 Тогда + // Выполняем регистрацию объектов на текущем узле, которые были выгружены по ссылке. + Для Каждого Элемент Из КомпонентыОбмена.ВыгруженныеПоСсылкеОбъекты Цикл + ПланыОбмена.ЗарегистрироватьИзменения(УзелДляОбмена, Элемент); + КонецЦикла; + + ОбменДаннымиСервер.ВыбратьИзменения(УзелДляОбмена, НомерОтправленного, КомпонентыОбмена.ВыгруженныеПоСсылкеОбъекты); + КонецЕсли; - ОбменДаннымиСервер.ВыбратьИзменения(УзелДляОбмена, НомерОтправленного, КомпонентыОбмена.ВыгруженныеПоСсылкеОбъекты); + НачатьТранзакцию(); + Попытка + Блокировка = Новый БлокировкаДанных; + ЭлементБлокировки = Блокировка.Добавить(ОбщегоНазначения.ИмяТаблицыПоСсылке(УзелДляОбмена)); + ЭлементБлокировки.УстановитьЗначение("Ссылка", УзелДляОбмена); + Блокировка.Заблокировать(); + + ЗаблокироватьДанныеДляРедактирования(УзелДляОбмена); + Получатель = УзелДляОбмена.ПолучитьОбъект(); + + Получатель.НомерОтправленного = НомерОтправленного; + Получатель.ОбменДанными.Загрузка = Истина; + + Получатель.Записать(); + + ЗафиксироватьТранзакцию(); + Исключение + ОтменитьТранзакцию(); + ВызватьИсключение; + КонецПопытки; КонецЕсли; - НачатьТранзакцию(); - Попытка - Блокировка = Новый БлокировкаДанных; - ЭлементБлокировки = Блокировка.Добавить(ОбщегоНазначения.ИмяТаблицыПоСсылке(УзелДляОбмена)); - ЭлементБлокировки.УстановитьЗначение("Ссылка", УзелДляОбмена); - Блокировка.Заблокировать(); - - ЗаблокироватьДанныеДляРедактирования(УзелДляОбмена); - Получатель = УзелДляОбмена.ПолучитьОбъект(); - - Получатель.НомерОтправленного = НомерОтправленного; - Получатель.ОбменДанными.Загрузка = Истина; - - Получатель.Записать(); - - ЗафиксироватьТранзакцию(); - Исключение - ОтменитьТранзакцию(); - ВызватьИсключение; - КонецПопытки; - КонецЕсли; КомпонентыОбмена.ФайлОбмена.ЗаписатьКонецЭлемента(); // Body @@ -1533,28 +1594,33 @@ ЗаписьСообщения = Новый Структура("НомерПринятого, НомерСообщения, Получатель"); ЗаписьСообщения.Получатель = КомпонентыОбмена.УзелКорреспондента; - Если ТранзакцияАктивна() Тогда - ВызватьИсключение НСтр("ru = 'Блокировка на обмен данными не может быть установлена в активной транзакции.'"); + Если КомпонентыОбмена.ИспользоватьКвитирование Тогда + Если ТранзакцияАктивна() Тогда + ВызватьИсключение НСтр("ru = 'Блокировка на обмен данными не может быть установлена в активной транзакции.'"); + КонецЕсли; + + // Устанавливаем блокировку на узел получателя. + Попытка + ЗаблокироватьДанныеДляРедактирования(ЗаписьСообщения.Получатель); + Исключение + ВызватьИсключение СтроковыеФункцииКлиентСервер.ПодставитьПараметрыВСтроку( + НСтр("ru = 'Ошибка установки блокировки на обмен данными. + |Возможно, обмен данными выполняется другим сеансом. + | + |Подробности: + |%1'"), + ОбработкаОшибок.КраткоеПредставлениеОшибки(ИнформацияОбОшибке())); + КонецПопытки; + + ДанныеПолучателя = ОбщегоНазначения.ЗначенияРеквизитовОбъекта(ЗаписьСообщения.Получатель, "НомерОтправленного, НомерПринятого, Код"); + + ЗаписьСообщения.НомерСообщения = ДанныеПолучателя.НомерОтправленного + 1; + ЗаписьСообщения.НомерПринятого = ДанныеПолучателя.НомерПринятого; + Иначе + ЗаписьСообщения.НомерСообщения = 0; + ЗаписьСообщения.НомерПринятого = 0; КонецЕсли; - // Устанавливаем блокировку на узел получателя. - Попытка - ЗаблокироватьДанныеДляРедактирования(ЗаписьСообщения.Получатель); - Исключение - ВызватьИсключение СтроковыеФункцииКлиентСервер.ПодставитьПараметрыВСтроку( - НСтр("ru = 'Ошибка установки блокировки на обмен данными. - |Возможно, обмен данными выполняется другим сеансом. - | - |Подробности: - |%1'"), - ОбработкаОшибок.КраткоеПредставлениеОшибки(ИнформацияОбОшибке())); - КонецПопытки; - - ДанныеПолучателя = ОбщегоНазначения.ЗначенияРеквизитовОбъекта(ЗаписьСообщения.Получатель, "НомерОтправленного, НомерПринятого, Код"); - - ЗаписьСообщения.НомерСообщения = ДанныеПолучателя.НомерОтправленного + 1; - ЗаписьСообщения.НомерПринятого = ДанныеПолучателя.НомерПринятого; - КонецЕсли; ПараметрыЗаголовка = ПараметрыЗаголовкаСообщенияОбмена(); @@ -2318,28 +2384,7 @@ КонецЕсли; Если КомпонентыОбмена.ИспользоватьКвитирование Тогда - - НомерПринятого = ОбщегоНазначения.ЗначениеРеквизитаОбъекта(КомпонентыОбмена.УзелКорреспондента, "НомерПринятого"); - - Если НомерПринятого >= КомпонентыОбмена.НомерВходящегоСообщения Тогда - // Номер сообщения меньше либо равен ранее принятому. - КомпонентыОбмена.СостояниеОбменаДанными.РезультатВыполненияОбмена = - Перечисления.РезультатыВыполненияОбмена.Предупреждение_СообщениеОбменаБылоРанееПринято; - - ЗаписатьВПротоколВыполнения(КомпонентыОбмена, 174,,,,, Истина); - КомпонентыОбмена.ТолькоНастройкиXDTO = Истина; - Иначе - // Добавляем публичные идентификаторы для ссылочных объектов, о получении которых отчитался узел-корреспондент. - ДобавитьВыгруженныеОбъектыВРегистрПубличныеИдентификаторы(КомпонентыОбмена); - - // Удаляем регистрацию изменений, о получении которых отчитался узел-корреспондент. - ПланыОбмена.УдалитьРегистрациюИзменений(КомпонентыОбмена.УзелКорреспондента, КомпонентыОбмена.НомерСообщенияПолученногоКорреспондентом); - - // Снимаем признак начальной выгрузки данных. - РегистрыСведений.ОбщиеНастройкиУзловИнформационныхБаз.СнятьПризнакНачальнойВыгрузкиДанных( - КомпонентыОбмена.УзелКорреспондента, КомпонентыОбмена.НомерСообщенияПолученногоКорреспондентом); - КонецЕсли; - + ОбработатьПолучениеСообщения(КомпонентыОбмена); КонецЕсли; КонецЕсли; @@ -2762,6 +2807,9 @@ РежимОтправка = СтрНайти(Режим, "Отправка") > 0; РежимПолучение = СтрНайти(Режим, "Получение") > 0; + ПравилаОтправкиМенеджеровОбмена = Новый Соответствие; + ПравилаПолученияМенеджеровОбмена = Новый Соответствие; + Для Каждого Версия Из ВерсииФорматаОбмена Цикл РасширенияВерсии = Новый Массив; @@ -2792,7 +2840,9 @@ КомпонентыОбмена.XMLСхема = ФорматОбмена(ИмяПланаОбмена, КомпонентыОбмена.ВерсияФорматаОбмена); ВключитьПространствоИмен(КомпонентыОбмена, СхемаРасширения, "ext"); - ИнициализироватьТаблицыПравилОбмена(КомпонентыОбмена); + ТаблицыПравил = ПравилаОтправкиМенеджеровОбмена[КомпонентыОбмена.МенеджерОбмена]; + ИнициализироватьТаблицыПравилОбменаРасширенный(КомпонентыОбмена, ТаблицыПравил, Истина); + ПравилаОтправкиМенеджеровОбмена[КомпонентыОбмена.МенеджерОбмена] = ТаблицыПравил; ЗаполнитьПоддерживаемыеОбъектыФорматаПоКомпонентамОбмена(ТаблицаОбъекты, КомпонентыОбмена); КонецЕсли; @@ -2806,7 +2856,9 @@ КомпонентыОбмена.XMLСхема = ФорматОбмена(ИмяПланаОбмена, КомпонентыОбмена.ВерсияФорматаОбмена); ВключитьПространствоИмен(КомпонентыОбмена, СхемаРасширения, "ext"); - ИнициализироватьТаблицыПравилОбмена(КомпонентыОбмена); + ТаблицыПравил = ПравилаПолученияМенеджеровОбмена[КомпонентыОбмена.МенеджерОбмена]; + ИнициализироватьТаблицыПравилОбменаРасширенный(КомпонентыОбмена, ТаблицыПравил, Истина); + ПравилаПолученияМенеджеровОбмена[КомпонентыОбмена.МенеджерОбмена] = ТаблицыПравил; ЗаполнитьПоддерживаемыеОбъектыФорматаПоКомпонентамОбмена(ТаблицаОбъекты, КомпонентыОбмена); КонецЕсли; @@ -2920,19 +2972,44 @@ УстановитьПривилегированныйРежим(Истина); - МенеджерЗаписи = РегистрыСведений.НастройкиОбменаДаннымиXDTO.СоздатьМенеджерЗаписи(); - МенеджерЗаписи.УзелИнформационнойБазы = УзелИнформационнойБазы; - МенеджерЗаписи.Прочитать(); - Если НовоеЗначение = Неопределено Тогда + МенеджерЗаписи = РегистрыСведений.НастройкиОбменаДаннымиXDTO.СоздатьМенеджерЗаписи(); + МенеджерЗаписи.УзелИнформационнойБазы = УзелИнформационнойБазы; + МенеджерЗаписи.Прочитать(); + Если МенеджерЗаписи.Выбран() Тогда Режим = МенеджерЗаписи.ПропускатьОбъектыСОшибкамиПроверкиПоСхеме; КонецЕсли; Иначе - МенеджерЗаписи.ПропускатьОбъектыСОшибкамиПроверкиПоСхеме = НовоеЗначение; - МенеджерЗаписи.Записать(Истина); + НачатьТранзакцию(); - Режим = НовоеЗначение; + Попытка + БлокировкаДанных = Новый БлокировкаДанных; + ЭлементБлокировкиДанных = БлокировкаДанных.Добавить("РегистрСведений.НастройкиОбменаДаннымиXDTO"); + ЭлементБлокировкиДанных.УстановитьЗначение("УзелИнформационнойБазы", УзелИнформационнойБазы); + ЭлементБлокировкиДанных.Режим = РежимБлокировкиДанных.Исключительный; + БлокировкаДанных.Заблокировать(); + + МенеджерЗаписи = РегистрыСведений.НастройкиОбменаДаннымиXDTO.СоздатьМенеджерЗаписи(); + МенеджерЗаписи.УзелИнформационнойБазы = УзелИнформационнойБазы; + МенеджерЗаписи.Прочитать(); + МенеджерЗаписи.ПропускатьОбъектыСОшибкамиПроверкиПоСхеме = НовоеЗначение; + МенеджерЗаписи.Записать(Истина); + + Режим = НовоеЗначение; + + ЗафиксироватьТранзакцию(); + Исключение + ОтменитьТранзакцию(); + + СообщениеОбОшибке = ОбработкаОшибок.ПодробноеПредставлениеОшибки(ИнформацияОбОшибке()); + + Событие = НСтр("ru = 'Обмен данными через универсальный формат.Выгрузка.Запись настройки обмена'", ОбщегоНазначения.КодОсновногоЯзыка()); + + ЗаписьЖурналаРегистрации(Событие, УровеньЖурналаРегистрации.Ошибка, Метаданные.РегистрыСведений.НастройкиОбменаДаннымиXDTO, , СообщениеОбОшибке); + + ВызватьИсключение СообщениеОбОшибке; + КонецПопытки; КонецЕсли; Возврат Режим; @@ -3007,7 +3084,7 @@ // Получает правила регистрации объектов для плана обмена. // // Параметры: -// УзелПланаОбмена - ПланОбменаСсылка - Ссылка на узел плана обмена +// УзелПланаОбмена - ПланОбменаСсылка - ссылка на узел плана обмена // // Возвращаемое значение: // ТаблицаЗначений @@ -3026,7 +3103,7 @@ // Получает свойства узла плана обмена. // // Параметры: -// Узел - ПланОбменаСсылка - Ссылка на узел плана обмена +// Узел - ПланОбменаСсылка - ссылка на узел плана обмена // // Возвращаемое значение: // Структура - ключ соответствует имени свойства, а значение - значению свойства. @@ -3185,6 +3262,77 @@ КонецПроцедуры +Процедура ПрименитьУдалениеОбъектов(КомпонентыОбмена, МассивОбъектовКУдалению, МассивЗагруженныхОбъектов) Экспорт + + Для Каждого ЗагруженныйОбъект Из МассивЗагруженныхОбъектов Цикл + Пока МассивОбъектовКУдалению.Найти(ЗагруженныйОбъект) <> Неопределено Цикл + МассивОбъектовКУдалению.Удалить(МассивОбъектовКУдалению.Найти(ЗагруженныйОбъект)); + КонецЦикла; + КонецЦикла; + + ЗапретитьПроведениеДокумента = Метаданные.СвойстваОбъектов.Проведение.Запретить; + + Для Каждого ЭлементКУдалению Из МассивОбъектовКУдалению Цикл + + // Собственно удаление ссылки. + Объект = ЭлементКУдалению.ПолучитьОбъект(); + Если Объект = Неопределено Тогда + Продолжить; + КонецЕсли; + + Если КомпонентыОбмена.РежимЗагрузкиДанныхВИнформационнуюБазу Тогда + + Если КомпонентыОбмена.ЭтоОбменЧерезПланОбмена + И ОбменДаннымиСобытия.ЗагрузкаЗапрещена(Объект, КомпонентыОбмена.УзелКорреспондентаОбъект) Тогда + + Продолжить; // Если изменение объекта ограничено датой запрета, то продолжим цикл + + КонецЕсли; + + //@skip-check empty-except-statement + Попытка + // Попытка на случай отсутствия обработчика в менеджере обмена данными + КомпонентыОбмена.МенеджерОбмена.ПередОбработкойУдаляемогоОбъекта(КомпонентыОбмена, Объект); + Исключение + КонецПопытки; + + Если Объект = Неопределено Тогда + Продолжить; + КонецЕсли; + + МетаданныеОбъекта = Объект.Метаданные(); + Если Метаданные.Документы.Содержит(МетаданныеОбъекта) Тогда + Если Объект.Проведен Тогда + + ЕстьРезультат = ОтменитьПроведениеОбъектаВИБ(Объект, + КомпонентыОбмена.УзелКорреспондента, КомпонентыОбмена); + + Если Не ЕстьРезультат Тогда + Продолжить; + КонецЕсли; + ИначеЕсли МетаданныеОбъекта.Проведение = ЗапретитьПроведениеДокумента Тогда + СделатьНеактивнымиДвиженияДокумента(Объект, КомпонентыОбмена); + КонецЕсли; + КонецЕсли; + ОбменДаннымиСервер.УстановитьОбменДаннымиЗагрузка(Объект, Истина, Ложь, КомпонентыОбмена.УзелКорреспондента); + УдалитьОбъект(Объект, Ложь, КомпонентыОбмена); + Иначе + + ТипПолученныхДанныхСтрокой = ИмяТипаДанныхПоОбъектуМетаданных(Объект.Метаданные()); + + СтрокаТаблицы = КомпонентыОбмена.ТаблицаДанныхЗаголовкаПакета.Добавить(); + + СтрокаТаблицы.ТипОбъектаСтрокой = ТипПолученныхДанныхСтрокой; + СтрокаТаблицы.КоличествоОбъектовВИсточнике = 1; + СтрокаТаблицы.ТипПриемникаСтрокой = ТипПолученныхДанныхСтрокой; + СтрокаТаблицы.ЭтоУдалениеОбъекта = Истина; + + КонецЕсли; + + КонецЦикла; + +КонецПроцедуры + #КонецОбласти #Область ПроцедурыИФункцииВерсионированияФорматаОбмена @@ -3197,7 +3345,7 @@ // УзелИнформационнойБазы не передается. // // Возвращаемое значение: -// ОбщийМодуль - Менеджер обмена версии формата +// ОбщийМодуль - менеджер обмена версии формата // Функция МенеджерОбменаВерсииФормата(Знач ВерсияФормата, Знач УзелИнформационнойБазы = Неопределено) Экспорт @@ -3219,7 +3367,7 @@ // Версию базового формата. // // Параметры: -// ИмяПланаОбмена - Строка - Имя плана обмена как оно задано в конфигураторе +// ИмяПланаОбмена - Строка - имя плана обмена как оно задано в конфигураторе // ВерсияФормата - Строка // // Возвращаемое значение: @@ -3328,7 +3476,7 @@ // ИмяРеквизитаФлага - Строка - имя реквизита плана обмена, по которому устанавливается фильтр на выборку узлов. // Возвращаемое значение: // Массив из ПланОбменаСсылка - массив узлов плана обмена, для которых установлен признак «Выгружать при -// необходимости», изначально пуст. +// необходимости», изначально пуст. // Функция МассивУзловДляРегистрацииВыгружатьПриНеобходимости(Ссылка, ИмяПланаОбмена, ИмяРеквизитаФлага) Экспорт @@ -3458,25 +3606,20 @@ // * ПриОбработке - Строка // * ИспользуемыеПКО - Массив из Строка // -Функция ТаблицаПравилОбработкиДанных(КомпонентыОбмена) Экспорт +Функция ТаблицаПравилОбработкиДанных(КомпонентыОбмена, ПравилаОбработкиДанныхМенеджераОбмена = Неопределено) Экспорт XMLСхема = КомпонентыОбмена.XMLСхема; - ВерсияФорматаМенеджераОбмена = КомпонентыОбмена.ВерсияФорматаМенеджераОбмена; - // Инициализация таблицы правил обработки данных. - ПравилаОбработкиДанных = Новый ТаблицаЗначений; - ПравилаОбработкиДанных.Колонки.Добавить("Имя"); - ПравилаОбработкиДанных.Колонки.Добавить("ОбъектВыборкиФормат"); - ПравилаОбработкиДанных.Колонки.Добавить("ТипСсылкиXDTO"); - ПравилаОбработкиДанных.Колонки.Добавить("ОбъектВыборкиМетаданные"); - ПравилаОбработкиДанных.Колонки.Добавить("ВыборкаДанных"); - ПравилаОбработкиДанных.Колонки.Добавить("ИмяТаблицыДляВыборки"); - ПравилаОбработкиДанных.Колонки.Добавить("ПриОбработке", Новый ОписаниеТипов("Строка")); - - // ИспользуемыеПКО - массив, содержащий в себе имена ПКО, в которые может быть направлен объект из данного ПОД. - ПравилаОбработкиДанных.Колонки.Добавить("ИспользуемыеПКО", Новый ОписаниеТипов("Массив")); - - КомпонентыОбмена.МенеджерОбмена.ЗаполнитьПравилаОбработкиДанных(КомпонентыОбмена.НаправлениеОбмена, ПравилаОбработкиДанных); + Если ПравилаОбработкиДанныхМенеджераОбмена = Неопределено Тогда + // Инициализация таблицы правил обработки данных. + ПравилаОбработкиДанных = КоллекцияПравилОбработкиДанных(); + + КомпонентыОбмена.МенеджерОбмена.ЗаполнитьПравилаОбработкиДанных(КомпонентыОбмена.НаправлениеОбмена, ПравилаОбработкиДанных); + + ПравилаОбработкиДанныхМенеджераОбмена = ПравилаОбработкиДанных.Скопировать(); + Иначе + ПравилаОбработкиДанных = ПравилаОбработкиДанныхМенеджераОбмена.Скопировать(); + КонецЕсли; ЕстьРасширения = Ложь; Если ТипЗнч(КомпонентыОбмена.РасширенияФормата) = Тип("Соответствие") Тогда @@ -3625,6 +3768,61 @@ #Область ИнициализацияОбмена +Функция КоллекцияПравилОбработкиДанных() + + // Инициализация таблицы правил обработки данных. + ПравилаОбработкиДанных = Новый ТаблицаЗначений; + ПравилаОбработкиДанных.Колонки.Добавить("Имя"); + ПравилаОбработкиДанных.Колонки.Добавить("ОбъектВыборкиФормат"); + ПравилаОбработкиДанных.Колонки.Добавить("ТипСсылкиXDTO"); + ПравилаОбработкиДанных.Колонки.Добавить("ОбъектВыборкиМетаданные"); + ПравилаОбработкиДанных.Колонки.Добавить("ВыборкаДанных"); + ПравилаОбработкиДанных.Колонки.Добавить("ИмяТаблицыДляВыборки"); + ПравилаОбработкиДанных.Колонки.Добавить("ПриОбработке", Новый ОписаниеТипов("Строка")); + + // ИспользуемыеПКО - массив, содержащий в себе имена ПКО, в которые может быть направлен объект из данного ПОД. + ПравилаОбработкиДанных.Колонки.Добавить("ИспользуемыеПКО", Новый ОписаниеТипов("Массив")); + + Возврат ПравилаОбработкиДанных; + +КонецФункции + +Процедура ИнициализироватьТаблицыПравилОбменаРасширенный(КомпонентыОбмена, ПравилаМенеджераОбмена = Неопределено, ДляПолученияПоддерживаемыхОбъектов = Ложь) + + КомпонентыОбмена.Вставить("БазовыеСхемыФормата", Новый Соответствие); + КомпонентыОбмена.БазовыеСхемыФормата.Вставить(КомпонентыОбмена.XMLСхема, Истина); + КомпонентыОбмена.БазовыеСхемыФормата.Вставить(XMLБазоваяСхема(), Истина); + + // Вычисление версии формата менеджера обмена - от этого зависит формирование правил. + Попытка + КомпонентыОбмена.Вставить("ВерсияФорматаМенеджераОбмена", КомпонентыОбмена.МенеджерОбмена.ВерсияФорматаМенеджераОбмена()); + Исключение + КомпонентыОбмена.Вставить("ВерсияФорматаМенеджераОбмена", "1"); + КонецПопытки; + + Если ПравилаМенеджераОбмена = Неопределено Тогда + ПравилаМенеджераОбмена = Новый Структура; + ПравилаМенеджераОбмена.Вставить("ПравилаОбработкиДанных"); + ПравилаМенеджераОбмена.Вставить("ПравилаКонвертацииОбъектов"); + КонецЕсли; + + // Инициализация таблиц правил обмена. + КомпонентыОбмена.Вставить("ПравилаОбработкиДанных", + ТаблицаПравилОбработкиДанных(КомпонентыОбмена, ПравилаМенеджераОбмена.ПравилаОбработкиДанных)); + КомпонентыОбмена.Вставить("ПравилаКонвертацииОбъектов", + ТаблицаПравилКонвертации(КомпонентыОбмена, ПравилаМенеджераОбмена.ПравилаКонвертацииОбъектов, ДляПолученияПоддерживаемыхОбъектов)); + + Если ДляПолученияПоддерживаемыхОбъектов Тогда + Возврат; + КонецЕсли; + + КомпонентыОбмена.Вставить("ПравилаКонвертацииПредопределенныхДанных", ТаблицаПравилКонвертацииПредопределенныхДанных(КомпонентыОбмена)); + + КомпонентыОбмена.Вставить("ПараметрыКонвертации", СтруктураПараметровКонвертации(КомпонентыОбмена.МенеджерОбмена)); + +КонецПроцедуры + + // Параметры: // * ВерсияФорматаМенеджераОбмена - Строка // @@ -3667,6 +3865,7 @@ ПравилаКонвертации.Колонки.Добавить("РеквизитыШапкиПолученныхДанных", Новый ОписаниеТипов("Массив")); ПравилаКонвертации.Колонки.Добавить("ПриОтправкеДанных", Новый ОписаниеТипов("Строка")); ПравилаКонвертации.Колонки.Добавить("ПриКонвертацииДанныхXDTO", Новый ОписаниеТипов("Строка")); + ПравилаКонвертации.Колонки.Добавить("ПриПолученииЗапросаВыгрузкиОбъекта", Новый ОписаниеТипов("Строка")); ПравилаКонвертации.Колонки.Добавить("ПередЗаписьюПолученныхДанных", Новый ОписаниеТипов("Строка")); ПравилаКонвертации.Колонки.Добавить("ПослеЗагрузкиВсехДанных", Новый ОписаниеТипов("Строка")); ПравилаКонвертации.Колонки.Добавить("ПравилоДляГруппыСправочника", Новый ОписаниеТипов("Булево")); @@ -3688,12 +3887,18 @@ КонецФункции -Функция ТаблицаПравилКонвертации(КомпонентыОбмена) +Функция ТаблицаПравилКонвертации(КомпонентыОбмена, ПравилаКонвертацииОбъектовМенеджераОбмена = Неопределено, ДляПолученияПоддерживаемыхОбъектов = Ложь) - // Инициализация таблицы правил конвертации. - ПравилаКонвертации = КоллекцияПравилКонвертации(КомпонентыОбмена.ВерсияФорматаМенеджераОбмена); - - КомпонентыОбмена.МенеджерОбмена.ЗаполнитьПравилаКонвертацииОбъектов(КомпонентыОбмена.НаправлениеОбмена, ПравилаКонвертации); + Если ПравилаКонвертацииОбъектовМенеджераОбмена = Неопределено Тогда + // Инициализация таблицы правил конвертации. + ПравилаКонвертации = КоллекцияПравилКонвертации(КомпонентыОбмена.ВерсияФорматаМенеджераОбмена); + + КомпонентыОбмена.МенеджерОбмена.ЗаполнитьПравилаКонвертацииОбъектов(КомпонентыОбмена.НаправлениеОбмена, ПравилаКонвертации); + + ПравилаКонвертацииОбъектовМенеджераОбмена = ПравилаКонвертации.Скопировать(); + Иначе + ПравилаКонвертации = ПравилаКонвертацииОбъектовМенеджераОбмена.Скопировать(); + КонецЕсли; Если КомпонентыОбмена.НаправлениеОбмена = "Получение" Тогда @@ -3748,6 +3953,7 @@ ПравилаКонвертации.Колонки.Добавить("ЕстьОбработчикПередЗаписьюПолученныхДанных", Новый ОписаниеТипов("Булево")); ПравилаКонвертации.Колонки.Добавить("ЕстьОбработчикПослеЗагрузкиВсехДанных", Новый ОписаниеТипов("Булево")); ПравилаКонвертации.Колонки.Добавить("ЕстьОбработчикАлгоритмПоиска", Новый ОписаниеТипов("Булево")); + ПравилаКонвертации.Колонки.Добавить("ЕстьОбработчикПриПолученииЗапросаВыгрузкиОбъекта", Новый ОписаниеТипов("Булево")); РазрешитьПроведениеДокумента = Метаданные.СвойстваОбъектов.Проведение.Разрешить; @@ -3775,6 +3981,10 @@ КонецЕсли; + Если ДляПолученияПоддерживаемыхОбъектов Тогда + Продолжить; + КонецЕсли; + Если ЭтоБазоваяСхема И ЕстьРасширения Тогда УдалитьИзбыточныеРасширенияПравилаКонвертации(ПравилоКонвертации); КонецЕсли; @@ -3812,6 +4022,7 @@ ПравилоКонвертации.ЕстьОбработчикПередЗаписьюПолученныхДанных = Не ПустаяСтрока(ПравилоКонвертации.ПередЗаписьюПолученныхДанных); ПравилоКонвертации.ЕстьОбработчикПослеЗагрузкиВсехДанных = Не ПустаяСтрока(ПравилоКонвертации.ПослеЗагрузкиВсехДанных); ПравилоКонвертации.ЕстьОбработчикАлгоритмПоиска = Не ПустаяСтрока(ПравилоКонвертации.АлгоритмПоиска); + ПравилоКонвертации.ЕстьОбработчикПриПолученииЗапросаВыгрузкиОбъекта = Не ПустаяСтрока(ПравилоКонвертации.ПриПолученииЗапросаВыгрузкиОбъекта); Иначе ПравилоКонвертации.ЕстьОбработчикПриОтправкеДанных = Не ПустаяСтрока(ПравилоКонвертации.ПриОтправкеДанных); КонецЕсли; @@ -4221,15 +4432,23 @@ НачальнаяВыгрузкаДанных = ОбменДаннымиСервер.УстановленПризнакНачальнойВыгрузкиДанных(УзелДляОбмена); // Получаем выборку измененных данных. - ВыборкаИзменений = ПланыОбмена.ВыбратьИзменения(УзелДляОбмена, НомерСообщения); - КоличествоОбъектовКВыгрузке = 0; - Пока ВыборкаИзменений.Следующий() Цикл - КоличествоОбъектовКВыгрузке = КоличествоОбъектовКВыгрузке + 1; - КонецЦикла; + Если КомпонентыОбмена.ИспользоватьКвитирование Тогда + ВыборкаИзменений = ПланыОбмена.ВыбратьИзменения(УзелДляОбмена, НомерСообщения, КомпонентыОбмена.ФильтрВыборкиИзменений); + Пока ВыборкаИзменений.Следующий() Цикл + КоличествоОбъектовКВыгрузке = КоличествоОбъектовКВыгрузке + 1; + КонецЦикла; + Иначе + Если КомпонентыОбмена.ФильтрВыборкиИзменений <> Неопределено Тогда + Для Каждого СсылкаДляВыгрузки Из КомпонентыОбмена.ФильтрВыборкиИзменений Цикл + Если ПланыОбмена.ИзменениеЗарегистрировано(УзелДляОбмена, СсылкаДляВыгрузки) Тогда + КоличествоОбъектовКВыгрузке = КоличествоОбъектовКВыгрузке + 1; + КонецЕсли; + КонецЦикла; + КонецЕсли; + КонецЕсли; КомпонентыОбмена.Вставить("КоличествоОбъектовКВыгрузке", КоличествоОбъектовКВыгрузке); - // СоставПланаОбмена = УзелДляОбмена.Метаданные().Состав; СписокТиповСПакетнойРегистрацией = Новый Массив; @@ -4287,7 +4506,10 @@ | #ТаблицаИзменений КАК ТаблицаИзменений |ГДЕ | ТаблицаИзменений.Узел = &Узел - | И ТаблицаИзменений.НомерСообщения = &НомерСообщения + | И (НЕ &ИспользоватьКвитирование + | ИЛИ ТаблицаИзменений.НомерСообщения <= &НомерСообщения) + | И (НЕ &ИспользоватьФильтрВыборкиИзменений + | ИЛИ ТаблицаИзменений.Ссылка В (&ФильтрВыборкиИзменений)) |; | |//////////////////////////////////////////////////////////////////////////////// @@ -4310,7 +4532,12 @@ Запрос.Текст = СтрЗаменить(Запрос.Текст, "#ТаблицаИзменений", ТипОбъекта.ПолноеИмя() + ".Изменения"); //@Query-part-2 Запрос.УстановитьПараметр("Узел", УзелДляОбмена); + // Параметры квитирования. + Запрос.УстановитьПараметр("ИспользоватьКвитирование", КомпонентыОбмена.ИспользоватьКвитирование); Запрос.УстановитьПараметр("НомерСообщения", НомерСообщения); + // Параметры ограничения выборки изменений. + Запрос.УстановитьПараметр("ИспользоватьФильтрВыборкиИзменений", КомпонентыОбмена.ФильтрВыборкиИзменений <> Неопределено); + Запрос.УстановитьПараметр("ФильтрВыборкиИзменений", КомпонентыОбмена.ФильтрВыборкиИзменений); РезультатЗапроса = Запрос.ВыполнитьПакет(); @@ -4398,14 +4625,41 @@ КомпонентыОбмена, НомерСообщения, НачальнаяВыгрузкаДанных, УзелДляОбменаОбъект, СписокТипов) УзелДляОбмена = КомпонентыОбмена.УзелКорреспондента; - ВыборкаИзменений = ПланыОбмена.ВыбратьИзменения(УзелДляОбмена, НомерСообщения, СписокТипов); - Пока ВыборкаИзменений.Следующий() Цикл + Если КомпонентыОбмена.ИспользоватьКвитирование Тогда + Если КомпонентыОбмена.ФильтрВыборкиИзменений <> Неопределено Тогда + ФильтрВыборкиСПодходящимТипом = Новый Массив; + Для Каждого СсылкаДляВыгрузки Из КомпонентыОбмена.ФильтрВыборкиИзменений Цикл + Если СписокТипов.Найти(Метаданные.НайтиПоТипу(ТипЗнч(СсылкаДляВыгрузки))) <> Неопределено Тогда + ФильтрВыборкиСПодходящимТипом.Добавить(СсылкаДляВыгрузки); + КонецЕсли; + КонецЦикла; + Если ФильтрВыборкиСПодходящимТипом.Количество() = 0 Тогда + Возврат; + КонецЕсли; + + ВыборкаИзменений = ПланыОбмена.ВыбратьИзменения(УзелДляОбмена, НомерСообщения, ФильтрВыборкиСПодходящимТипом); + Иначе + ВыборкаИзменений = ПланыОбмена.ВыбратьИзменения(УзелДляОбмена, НомерСообщения, СписокТипов); + КонецЕсли; - Объект = ВыборкаИзменений.Получить(); - ВыгрузкаЗарегистрированногоОбъекта(КомпонентыОбмена, НачальнаяВыгрузкаДанных, УзелДляОбменаОбъект, Объект); - - КонецЦикла; + Пока ВыборкаИзменений.Следующий() Цикл + Объект = ВыборкаИзменений.Получить(); + ВыгрузкаЗарегистрированногоОбъекта(КомпонентыОбмена, НачальнаяВыгрузкаДанных, УзелДляОбменаОбъект, Объект); + КонецЦикла; + Иначе + Если КомпонентыОбмена.ФильтрВыборкиИзменений <> Неопределено Тогда + Для Каждого СсылкаДляВыгрузки Из КомпонентыОбмена.ФильтрВыборкиИзменений Цикл + Если СписокТипов.Найти(Метаданные.НайтиПоТипу(ТипЗнч(СсылкаДляВыгрузки))) = Неопределено Тогда + Продолжить; + КонецЕсли; + Если ПланыОбмена.ИзменениеЗарегистрировано(УзелДляОбмена, СсылкаДляВыгрузки) Тогда + Объект = СсылкаДляВыгрузки.ПолучитьОбъект(); + ВыгрузкаЗарегистрированногоОбъекта(КомпонентыОбмена, НачальнаяВыгрузкаДанных, УзелДляОбменаОбъект, Объект); + КонецЕсли; + КонецЦикла; + КонецЕсли; + КонецЕсли; КонецПроцедуры @@ -4463,6 +4717,44 @@ Возврат; КонецЕсли; + Если КомпонентыОбмена.ФильтрВыборкиИзменений <> Неопределено Тогда + Для Каждого ЗначениеСсылки Из СсылкиИзОбъекта Цикл + Если КомпонентыОбмена.ВыгруженныеОбъекты.Найти(ЗначениеСсылки) <> Неопределено Тогда + Продолжить; + КонецЕсли; + + ОбъектЗарегистрирован = ПланыОбмена.ИзменениеЗарегистрировано(КомпонентыОбмена.УзелКорреспондента, ЗначениеСсылки); + + Если ВыгружатьОбъектПоНеобходимости(КомпонентыОбмена, ЗначениеСсылки) Тогда + ОбъектВыгружалсяРанее = РегистрыСведений.ДанныеОбъектовДляРегистрацииВОбменах.ОбъектЕстьВРегистре( + ЗначениеСсылки, КомпонентыОбмена.УзелКорреспондента); + + Если ОбъектЗарегистрирован + Или Не ОбъектВыгружалсяРанее Тогда + Если ОбщегоНазначения.СсылкаСуществует(ЗначениеСсылки) Тогда + ОбъектВыгружаемыйПоСсылке = ЗначениеСсылки.ПолучитьОбъект(); + ВыгрузкаОбъектаВыборки(КомпонентыОбмена, ОбъектВыгружаемыйПоСсылке); + КомпонентыОбмена.ВыгруженныеПоСсылкеОбъекты.Добавить(ЗначениеСсылки); + Если Не ОбъектВыгружалсяРанее Тогда + РегистрыСведений.ДанныеОбъектовДляРегистрацииВОбменах.ДобавитьОбъектВФильтрРазрешенныхОбъектов( + ЗначениеСсылки, КомпонентыОбмена.УзелКорреспондента); + КонецЕсли; + КонецЕсли; + КонецЕсли; + Иначе + Если ОбъектЗарегистрирован Тогда + Если ОбщегоНазначения.СсылкаСуществует(ЗначениеСсылки) Тогда + ОбъектВыгружаемыйПоСсылке = ЗначениеСсылки.ПолучитьОбъект(); + ВыгрузкаОбъектаВыборки(КомпонентыОбмена, ОбъектВыгружаемыйПоСсылке); + КомпонентыОбмена.ВыгруженныеПоСсылкеОбъекты.Добавить(ЗначениеСсылки); + КонецЕсли; + КонецЕсли; + КонецЕсли; + КонецЦикла; + + Возврат; + КонецЕсли; + Для Каждого ЗначениеСсылки Из СсылкиИзОбъекта Цикл Если КомпонентыОбмена.ВыгруженныеОбъекты.Найти(ЗначениеСсылки) = Неопределено @@ -6257,7 +6549,7 @@ Процедура ЗапомнитьОбъектДляОтложенногоЗаполнения(ДанныеДляЗаписиВИБ, ПравилоКонвертации, КомпонентыОбмена, Действие) Если ПравилоКонвертации.ЕстьОбработчикПослеЗагрузкиВсехДанных Тогда - + ОтборСтрок = Новый Структура("СсылкаНаОбъект", ДанныеДляЗаписиВИБ.Ссылка); НайденныеСтроки = КомпонентыОбмена.ЗагруженныеОбъекты.НайтиСтроки(ОтборСтрок); Если НайденныеСтроки.Количество() = 0 Тогда @@ -6267,17 +6559,17 @@ НоваяСтрока.Объект = ДанныеДляЗаписиВИБ; НоваяСтрока.СсылкаНаОбъект = ДанныеДляЗаписиВИБ.Ссылка; НоваяСтрока.ИмяОбработчика = ПравилоКонвертации.ПослеЗагрузкиВсехДанных; - + ИначеЕсли Действие = "КонвертироватьИЗаписать" Тогда - - Для Каждого СтрокаТаблицы Из НайденныеСтроки Цикл - + + Для каждого СтрокаТаблицы Из НайденныеСтроки Цикл + СтрокаТаблицы.Объект = ДанныеДляЗаписиВИБ; - + КонецЦикла; - + КонецЕсли; - + КонецЕсли; КонецПроцедуры @@ -6680,7 +6972,9 @@ Если Не ТекущееПКО.Значение Тогда Если СинхронизироватьПоИдентификатору Тогда ДополнитьСписокОбъектовКУдалению(КомпонентыОбмена, - ПравилоКонвертации.ТипДанных, ДанныеXDTO[КлассСсылка()].Значение, МассивОбъектовКУдалению); + ПравилоКонвертации, + ДанныеXDTO[КлассСсылка()].Значение, + МассивОбъектовКУдалению); КонецЕсли; Продолжить; КонецЕсли; @@ -7004,6 +7298,27 @@ КонецФункции +Процедура ОбработатьПолучениеСообщения(КомпонентыОбмена) + + НомерПринятого = ОбщегоНазначения.ЗначениеРеквизитаОбъекта(КомпонентыОбмена.УзелКорреспондента, "НомерПринятого"); + + Если НомерПринятого >= КомпонентыОбмена.НомерВходящегоСообщения Тогда + // Номер сообщения меньше либо равен ранее принятому. + КомпонентыОбмена.СостояниеОбменаДанными.РезультатВыполненияОбмена = + Перечисления.РезультатыВыполненияОбмена.Предупреждение_СообщениеОбменаБылоРанееПринято; + + ЗаписатьВПротоколВыполнения(КомпонентыОбмена, 174,,,,, Истина); + КомпонентыОбмена.ТолькоНастройкиXDTO = Истина; + Иначе + ОбработатьПолучениеПодтвержденияОтКорреспондента(КомпонентыОбмена); + + // Снимаем признак начальной выгрузки данных. + РегистрыСведений.ОбщиеНастройкиУзловИнформационныхБаз.СнятьПризнакНачальнойВыгрузкиДанных( + КомпонентыОбмена.УзелКорреспондента, КомпонентыОбмена.НомерСообщенияПолученногоКорреспондентом); + КонецЕсли; + +КонецПроцедуры + #Область ЗапросПовторнойВыгрузки // Методы этой области заимствованы из будущих проектов для поддержки обратной совместимости. @@ -7313,7 +7628,7 @@ КонецЕсли; - // В этой версии конвертации нет события "ПриОбработкеЗапросаВыгрузкиОбъекта" + // В этой версии конвертации нет события "ПриПолученииЗапросаВыгрузкиОбъекта" Если ПодобраннаяОбъектнаяСсылка <> Неопределено И ОбъектыПовторнойВыгрузки.Найти(ПодобраннаяОбъектнаяСсылка) = Неопределено Тогда @@ -7512,78 +7827,12 @@ ТаблицыДляЗагрузки, ОбъектXDTO.Тип().Имя, ПравилоКонвертации.ТипПолученныхДанныхСтрокой) Тогда Продолжить; КонецЕсли; - - ДополнитьСписокОбъектовКУдалению(КомпонентыОбмена, - ПравилоКонвертации.ТипДанных, УникальныйИдентификаторСтрокой, МассивОбъектовКУдалению); - - КонецЕсли; - КонецЦикла; - -КонецПроцедуры -Процедура ПрименитьУдалениеОбъектов(КомпонентыОбмена, МассивОбъектовКУдалению, МассивЗагруженныхОбъектов) - - Для Каждого ЗагруженныйОбъект Из МассивЗагруженныхОбъектов Цикл - Пока МассивОбъектовКУдалению.Найти(ЗагруженныйОбъект) <> Неопределено Цикл - МассивОбъектовКУдалению.Удалить(МассивОбъектовКУдалению.Найти(ЗагруженныйОбъект)); - КонецЦикла; - КонецЦикла; - - ЗапретитьПроведениеДокумента = Метаданные.СвойстваОбъектов.Проведение.Запретить; - - Для Каждого ЭлементКУдалению Из МассивОбъектовКУдалению Цикл - - // Собственно удаление ссылки. - Объект = ЭлементКУдалению.ПолучитьОбъект(); - Если Объект = Неопределено Тогда - Продолжить; + ДополнитьСписокОбъектовКУдалению(КомпонентыОбмена, + ПравилоКонвертации, + УникальныйИдентификаторСтрокой, + МассивОбъектовКУдалению); КонецЕсли; - - Если КомпонентыОбмена.РежимЗагрузкиДанныхВИнформационнуюБазу Тогда - - Если КомпонентыОбмена.ЭтоОбменЧерезПланОбмена - И ОбменДаннымиСобытия.ЗагрузкаЗапрещена(Объект, КомпонентыОбмена.УзелКорреспондентаОбъект) Тогда - - Продолжить; // Если изменение объекта ограничено датой запрета, то продолжим цикл - - КонецЕсли; - - // Попытка на случай отсутствия обработчика в менеджере обмена данными - Попытка - КомпонентыОбмена.МенеджерОбмена.ПередОбработкойУдаляемогоОбъекта(КомпонентыОбмена, Объект); - Исключение - // Действий не требуется - КонецПопытки; - - МетаданныеОбъекта = Объект.Метаданные(); - Если Метаданные.Документы.Содержит(МетаданныеОбъекта) Тогда - Если Объект.Проведен Тогда - - ЕстьРезультат = ОтменитьПроведениеОбъектаВИБ(Объект, - КомпонентыОбмена.УзелКорреспондента, КомпонентыОбмена); - - Если Не ЕстьРезультат Тогда - Продолжить; - КонецЕсли; - ИначеЕсли МетаданныеОбъекта.Проведение = ЗапретитьПроведениеДокумента Тогда - СделатьНеактивнымиДвиженияДокумента(Объект, КомпонентыОбмена); - КонецЕсли; - КонецЕсли; - ОбменДаннымиСервер.УстановитьОбменДаннымиЗагрузка(Объект, Истина, Ложь, КомпонентыОбмена.УзелКорреспондента); - УдалитьОбъект(Объект, Ложь, КомпонентыОбмена); - Иначе - - ТипПолученныхДанныхСтрокой = ИмяТипаДанныхПоОбъектуМетаданных(Объект.Метаданные()); - - СтрокаТаблицы = КомпонентыОбмена.ТаблицаДанныхЗаголовкаПакета.Добавить(); - - СтрокаТаблицы.ТипОбъектаСтрокой = ТипПолученныхДанныхСтрокой; - СтрокаТаблицы.КоличествоОбъектовВИсточнике = 1; - СтрокаТаблицы.ТипПриемникаСтрокой = ТипПолученныхДанныхСтрокой; - СтрокаТаблицы.ЭтоУдалениеОбъекта = Истина; - - КонецЕсли; - КонецЦикла; КонецПроцедуры @@ -7623,13 +7872,61 @@ КонецЕсли; Если УдалитьНепосредственно Тогда - Объект.Удалить(); + УдалитьОбъектСЗаписямиЗависимыхРегистровСведений(Объект, КомпонентыОбмена); Иначе УстановитьПометкуУдаленияУОбъекта(Объект); КонецЕсли; КонецПроцедуры +Процедура УдалитьОбъектСЗаписямиЗависимыхРегистровСведений(Объект, КомпонентыОбмена) + + НачатьТранзакцию(); + + Попытка + + Для Каждого ЭлементКоллекции Из ЗависимыеРегистрыСведенийОбъекта() Цикл + Блокировка = Новый БлокировкаДанных; + ЭлементБлокировки = Блокировка.Добавить("РегистрСведений." + ЭлементКоллекции.Ключ); + ЭлементБлокировки.УстановитьЗначение(ЭлементКоллекции.Значение, Объект.Ссылка); + Блокировка.Заблокировать(); + + НаборЗаписей = РегистрыСведений[ЭлементКоллекции.Ключ].СоздатьНаборЗаписей(); + НаборЗаписей.Отбор[ЭлементКоллекции.Значение].Установить(Объект.Ссылка, Истина); + НаборЗаписей.ОбменДанными.Загрузка = Объект.ОбменДанными.Загрузка; + НаборЗаписей.Записать(Истина); + КонецЦикла; + + Объект.Удалить(); + + ЗафиксироватьТранзакцию(); + Исключение + ОтменитьТранзакцию(); + + СообщениеОбОшибке = ОбработкаОшибок.ПодробноеПредставлениеОшибки(ИнформацияОбОшибке()); + + УзелИнформационнойБазы = КомпонентыОбмена.УзелКорреспондента; + НаправлениеОбмена = КомпонентыОбмена.НаправлениеОбмена; + + Событие = ОбменДаннымиСервер.КлючСообщенияЖурналаРегистрации(УзелИнформационнойБазы, + НаправлениеОбмена); + + ЗаписьЖурналаРегистрации(Событие, УровеньЖурналаРегистрации.Ошибка,,, СообщениеОбОшибке); + КонецПопытки; + +КонецПроцедуры + +Функция ЗависимыеРегистрыСведенийОбъекта() + + ЗависимыеРегистрыСведений = Новый Структура; + ЗависимыеРегистрыСведений.Вставить("ПубличныеИдентификаторыСинхронизируемыхОбъектов", "Ссылка"); + ЗависимыеРегистрыСведений.Вставить("ДанныеОбъектовДляРегистрацииВОбменах", "Ссылка"); + ЗависимыеРегистрыСведений.Вставить("ОбъектыНезарегистрированныеПриЗацикливании", "Объект"); + + Возврат ЗависимыеРегистрыСведений; + +КонецФункции + // Устанавливает пометку удаления. // // Параметры: @@ -8462,7 +8759,7 @@ // // Параметры: // Объект - ЛюбаяСсылка - ссылка на любой ОМД; -// - Объект - ОМД; +// - СправочникОбъект, ДокументОбъект - объект метаданных; // - ОбъектXDTO - объект XDTO; // - Структура. // МетаданныеДляПредставленияСтруктуры - ОбъектМетаданных - метаданные объекта, для которого формируется представление. @@ -8486,7 +8783,9 @@ Ссылка = Объект.Ссылка; КонецЕсли; Иначе - Если ОбщегоНазначения.ЭтоОбъектСсылочногоТипа(МетаданныеОбъекта) Тогда + Если ОбщегоНазначения.ЭтоСсылка(ТипОбъекта) Тогда + Ссылка = Объект; + ИначеЕсли ОбщегоНазначения.ЭтоОбъектСсылочногоТипа(МетаданныеОбъекта) Тогда Ссылка = Объект.Ссылка; КонецЕсли; КонецЕсли; @@ -8552,25 +8851,25 @@ ЗначениеСвойства = Неопределено; - Если КоллекцияСвойств.Свойство("Наименование", ЗначениеСвойства) // @Non-NLS - И ЗначениеЗаполнено(ЗначениеСвойства) Тогда + Если КоллекцияСвойств.Свойство("Наименование", ЗначениеСвойства) + И ЗначениеЗаполнено(ЗначениеСвойства) Тогда // @Non-NLS ЭлементыПредставления.Добавить(СокрЛП(ЗначениеСвойства)); КонецЕсли; - Если КоллекцияСвойств.Свойство("Код", ЗначениеСвойства) // @Non-NLS - И ЗначениеЗаполнено(ЗначениеСвойства) Тогда + Если КоллекцияСвойств.Свойство("Код", ЗначениеСвойства) + И ЗначениеЗаполнено(ЗначениеСвойства) Тогда // @Non-NLS ЭлементыПредставления.Добавить("(" + СокрЛП(ЗначениеСвойства) + ")"); - ИначеЕсли КоллекцияСвойств.Свойство("КодВПрограмме", ЗначениеСвойства) // @Non-NLS - И ЗначениеЗаполнено(ЗначениеСвойства) Тогда + ИначеЕсли КоллекцияСвойств.Свойство("КодВПрограмме", ЗначениеСвойства) + И ЗначениеЗаполнено(ЗначениеСвойства) Тогда // @Non-NLS ЭлементыПредставления.Добавить("(" + СокрЛП(ЗначениеСвойства) + ")"); КонецЕсли; - Если КоллекцияСвойств.Свойство("Номер", ЗначениеСвойства) // @Non-NLS - И ЗначениеЗаполнено(ЗначениеСвойства) Тогда + Если КоллекцияСвойств.Свойство("Номер", ЗначениеСвойства) + И ЗначениеЗаполнено(ЗначениеСвойства) Тогда // @Non-NLS ЗначениеСвойстваДата = Неопределено; - Если КоллекцияСвойств.Свойство("Дата", ЗначениеСвойстваДата) // @Non-NLS - И ЗначениеЗаполнено(ЗначениеСвойстваДата) Тогда + Если КоллекцияСвойств.Свойство("Дата", ЗначениеСвойстваДата) + И ЗначениеЗаполнено(ЗначениеСвойстваДата) Тогда // @Non-NLS ЭлементыПредставления.Добавить( СтроковыеФункцииКлиентСервер.ПодставитьПараметрыВСтроку(НСтр("ru = '№%1 от %2'"), ЗначениеСвойства, Формат(ЗначениеСвойстваДата, "ДЛФ=D"))); Иначе @@ -8578,8 +8877,8 @@ СтроковыеФункцииКлиентСервер.ПодставитьПараметрыВСтроку(НСтр("ru = '№%1'"), ЗначениеСвойства)); КонецЕсли; - ИначеЕсли КоллекцияСвойств.Свойство("Дата", ЗначениеСвойства) // @Non-NLS - И ЗначениеЗаполнено(ЗначениеСвойства) Тогда + ИначеЕсли КоллекцияСвойств.Свойство("Дата", ЗначениеСвойства) + И ЗначениеЗаполнено(ЗначениеСвойства) Тогда // @Non-NLS ЭлементыПредставления.Добавить( СтроковыеФункцииКлиентСервер.ПодставитьПараметрыВСтроку(НСтр("ru = 'от %1'"), ЗначениеСвойства)); @@ -8936,7 +9235,7 @@ // 2 - разделитель включается в правую подстроку. // // Возвращаемое значение: -// Строка - Правая часть строки - до символа-разделителя. +// Строка - правая часть строки - до символа-разделителя. // Функция ОтделитьРазделителем(Стр, Знач Разделитель, Режим=0) @@ -9033,50 +9332,93 @@ КонецПроцедуры -Процедура ДобавитьВыгруженныеОбъектыВРегистрПубличныеИдентификаторы(КомпонентыОбмена) +Процедура ОбработатьПолучениеПодтвержденияОтКорреспондента(КомпонентыОбмена, КешироватьПубличныеИдентификаторы = Истина) + + ДополнительныеПараметрыКонвертации = Новый Структура("ФильтрВыборкиИзменений"); + ЗаполнитьЗначенияСвойств(ДополнительныеПараметрыКонвертации, КомпонентыОбмена); + + ДобавитьВыгруженныеОбъектыВРегистрПубличныеИдентификаторы( + КомпонентыОбмена, КешироватьПубличныеИдентификаторы, ДополнительныеПараметрыКонвертации.ФильтрВыборкиИзменений); + + Если КомпонентыОбмена.ИспользоватьКвитирование Тогда + ПланыОбмена.УдалитьРегистрациюИзменений(КомпонентыОбмена.УзелКорреспондента, КомпонентыОбмена.НомерСообщенияПолученногоКорреспондентом); + КонецЕсли; + +КонецПроцедуры + +Процедура ДобавитьВыгруженныеОбъектыВРегистрПубличныеИдентификаторы(КомпонентыОбмена, КешироватьПубличныеИдентификаторы, ФильтрВыборкиИзменений) УзелДляОбмена = КомпонентыОбмена.УзелКорреспондента; СоставПланаОбмена = УзелДляОбмена.Метаданные().Состав; - ШаблонТекстаЗапроса = - "ВЫБРАТЬ - | ТаблицаИзменений.Ссылка - |ИЗ - | &ИмяТаблицыМетаданных КАК ТаблицаИзменений - |ЛЕВОЕ СОЕДИНЕНИЕ - | РегистрСведений.ПубличныеИдентификаторыСинхронизируемыхОбъектов КАК ПубличныеИдентификаторы - |ПО ПубличныеИдентификаторы.УзелИнформационнойБазы = &Узел И ПубличныеИдентификаторы.Ссылка = ТаблицаИзменений.Ссылка - |ГДЕ ТаблицаИзменений.Узел = &Узел И ТаблицаИзменений.НомерСообщения <= &НомерСообщения - | И ПубличныеИдентификаторы.Идентификатор ЕСТЬ NULL"; + ШаблонЗапросаИзменений = + "ВЫБРАТЬ + | ТаблицаИзменений.Ссылка КАК Ссылка, + | ТаблицаИзменений.Узел КАК Узел + |ИЗ + | #ИмяТаблицыМетаданных КАК ТаблицаИзменений + |ГДЕ + | ТаблицаИзменений.Узел = &Узел + | И (НЕ &ИспользоватьКвитирование + | ИЛИ ТаблицаИзменений.НомерСообщения <= &НомерСообщения) + | И (НЕ &ИспользоватьФильтрВыборкиИзменений + | ИЛИ ТаблицаИзменений.Ссылка В (&ФильтрВыборкиИзменений))"; + + НаборЗапросовИзменений = Новый Массив; Для Каждого ЭлементСостава Из СоставПланаОбмена Цикл - - Если НЕ ОбщегоНазначения.ЭтоОбъектСсылочногоТипа(ЭлементСостава.Метаданные) Тогда - + Если Не ОбщегоНазначения.ЭтоОбъектСсылочногоТипа(ЭлементСостава.Метаданные) Тогда Продолжить; - КонецЕсли; ИмяТаблицыМетаданных = СтроковыеФункцииКлиентСервер.ПодставитьПараметрыВСтроку("%1.Изменения", ЭлементСостава.Метаданные.ПолноеИмя()); - ТекстЗапроса = СтрЗаменить(ШаблонТекстаЗапроса, "&ИмяТаблицыМетаданных", ИмяТаблицыМетаданных); + ТекстЗапроса = СтрЗаменить(ШаблонЗапросаИзменений, "#ИмяТаблицыМетаданных", ИмяТаблицыМетаданных); + + НаборЗапросовИзменений.Добавить(ТекстЗапроса); + КонецЦикла; + + Если НаборЗапросовИзменений.Количество() > 0 Тогда + СтрокаОбъединения = " + |ОБЪЕДИНИТЬ ВСЕ + |"; + ТекстЗапросаИзменений = СтрСоединить(НаборЗапросовИзменений, СтрокаОбъединения); + + ШаблонТекстаЗапроса = + "ВЫБРАТЬ + | ТаблицаИзменений.Ссылка КАК Ссылка + |ИЗ + | #ПодзапросИзмененияДанных КАК ТаблицаИзменений + | ЛЕВОЕ СОЕДИНЕНИЕ РегистрСведений.ПубличныеИдентификаторыСинхронизируемыхОбъектов КАК ПубличныеИдентификаторы + | ПО (ПубличныеИдентификаторы.УзелИнформационнойБазы = ТаблицаИзменений.Узел) + | И (ПубличныеИдентификаторы.Ссылка = ТаблицаИзменений.Ссылка) + |ГДЕ + | ПубличныеИдентификаторы.Идентификатор ЕСТЬ NULL"; + + ТекстЗапроса = СтрЗаменить(ШаблонТекстаЗапроса, "#ПодзапросИзмененияДанных", "(" + ТекстЗапросаИзменений + ")"); Запрос = Новый Запрос(ТекстЗапроса); Запрос.УстановитьПараметр("Узел", УзелДляОбмена); + // Параметры квитирования. + Запрос.УстановитьПараметр("ИспользоватьКвитирование", КомпонентыОбмена.ИспользоватьКвитирование); Запрос.УстановитьПараметр("НомерСообщения", КомпонентыОбмена.НомерСообщенияПолученногоКорреспондентом); + // Параметры ограничения выборки изменений. + Запрос.УстановитьПараметр("ИспользоватьФильтрВыборкиИзменений", ФильтрВыборкиИзменений <> Неопределено); + Запрос.УстановитьПараметр("ФильтрВыборкиИзменений", ФильтрВыборкиИзменений); + Выборка = Запрос.Выполнить().Выбрать(); Пока Выборка.Следующий() Цикл - СтруктураЗаписи = Новый Структура; СтруктураЗаписи.Вставить("Ссылка", Выборка.Ссылка); СтруктураЗаписи.Вставить("УзелИнформационнойБазы", КомпонентыОбмена.УзелКорреспондента); СтруктураЗаписи.Вставить("Идентификатор", Выборка.Ссылка.УникальныйИдентификатор()); + РегистрыСведений.ПубличныеИдентификаторыСинхронизируемыхОбъектов.ДобавитьЗапись(СтруктураЗаписи, Истина); - ДобавитьЗаписьВКешПубличныхИдентификаторов(СтруктураЗаписи, КомпонентыОбмена); - + Если КешироватьПубличныеИдентификаторы Тогда + ДобавитьЗаписьВКешПубличныхИдентификаторов(СтруктураЗаписи, КомпонентыОбмена); + КонецЕсли; КонецЦикла; - - КонецЦикла; + КонецЕсли; КонецПроцедуры @@ -9183,10 +9525,24 @@ КонецФункции -Процедура ДополнитьСписокОбъектовКУдалению(КомпонентыОбмена, ТипДанных, УникальныйИдентификатор, МассивОбъектовКУдалению) +Процедура ДополнитьСписокОбъектовКУдалению(КомпонентыОбмена, ПравилоКонвертации, УникальныйИдентификатор, МассивОбъектовКУдалению) СсылкаКУдалению = СсылкаОбъектаПоУИДОбъектаXDTO(УникальныйИдентификатор, - ТипДанных, КомпонентыОбмена); + ПравилоКонвертации.ТипДанных, КомпонентыОбмена); + + ПравилоДляГруппыСправочника = (ПравилоКонвертации.ЭтоСправочник Или ПравилоКонвертации.ЭтоПланВидовХарактеристик) + И ПравилоКонвертации.ПравилоДляГруппыСправочника; + + Если ПравилоДляГруппыСправочника И (Не СсылкаКУдалению.Пустая() + И ОбщегоНазначения.СсылкаСуществует(СсылкаКУдалению)) Тогда + + ЭтоГруппа = ОбщегоНазначения.ЗначениеРеквизитаОбъекта(СсылкаКУдалению, "ЭтоГруппа"); + + Если Не ЭтоГруппа Тогда + СсылкаКУдалению = ПравилоКонвертации.МенеджерОбъекта.ПолучитьСсылку(); + КонецЕсли; + КонецЕсли; + Если МассивОбъектовКУдалению.Найти(СсылкаКУдалению) = Неопределено Тогда МассивОбъектовКУдалению.Добавить(СсылкаКУдалению); КонецЕсли; @@ -9218,6 +9574,15 @@ КонецПроцедуры +Функция ИнициализироватьМассивИсключаемыхТиповДляРегистрации() + + ИсключаемыеТипыДляРегистрации = Новый Массив; + ИсключаемыеТипыДляРегистрации.Добавить(Тип("Структура")); + + Возврат ИсключаемыеТипыДляРегистрации; + +КонецФункции + #КонецОбласти #Область ТрансляцияФормата diff --git a/SSL/src/CommonModules/ОбменДаннымиВМоделиСервиса/Module.bsl b/SSL/src/CommonModules/ОбменДаннымиВМоделиСервиса/Module.bsl index 8e500bad1..1931b9c16 100644 --- a/SSL/src/CommonModules/ОбменДаннымиВМоделиСервиса/Module.bsl +++ b/SSL/src/CommonModules/ОбменДаннымиВМоделиСервиса/Module.bsl @@ -1,5 +1,5 @@ /////////////////////////////////////////////////////////////////////////////////////////////////////// -// Copyright (c) 2024, ООО 1С-Софт +// Copyright (c) 2025, ООО 1С-Софт // Все права защищены. Эта программа и сопроводительные материалы предоставляются // в соответствии с условиями лицензии Attribution 4.0 International (CC BY 4.0) // Текст лицензии доступен по ссылке: @@ -352,8 +352,9 @@ // Параметры: // ИдентификаторФайла - УникальныйИдентификатор - идентификатор получаемого файла. // ИмяФайла - Строка - имя файла, из хранилища. +// УдалитьФайлИзХранилища - Булево - признак определяющий удалять ли информацию о файле сообщения обмена из хранилища. // -Процедура ПриПолученииФайлаИзХранилища(Знач ИдентификаторФайла, ИмяФайла) Экспорт +Процедура ПриПолученииФайлаИзХранилища(Знач ИдентификаторФайла, ИмяФайла, УдалитьФайлИзХранилища = Истина) Экспорт ТекстЗапроса = "ВЫБРАТЬ @@ -379,9 +380,11 @@ ИмяФайла = Выборка.ИмяФайла; // Удаляем информацию о файле сообщения обмена из хранилища - СтруктураЗаписи = Новый Структура; - СтруктураЗаписи.Вставить("ИдентификаторСообщения", Строка(ИдентификаторФайла)); - РегистрыСведений.СообщенияОбменаДаннымиОбластейДанных.УдалитьЗапись(СтруктураЗаписи); + Если УдалитьФайлИзХранилища Тогда + СтруктураЗаписи = Новый Структура; + СтруктураЗаписи.Вставить("ИдентификаторСообщения", Строка(ИдентификаторФайла)); + РегистрыСведений.СообщенияОбменаДаннымиОбластейДанных.УдалитьЗапись(СтруктураЗаписи); + КонецЕсли; КонецПроцедуры @@ -457,8 +460,9 @@ // 4. Не входит в список исключений. // // Параметры: -// Объект - Произвольный - Объект-источник данных +// Объект - Произвольный - объект-источник данных // Отказ - Булево - флаг отказа +// Процедура ПередЗаписьюОбщихДанных(Объект, Отказ) Экспорт Если Объект.ОбменДанными.Загрузка Тогда @@ -945,7 +949,7 @@ // Формирует имя приложения в сервисе // // Возвращаемое значение: -// Строка - Имя приложения. +// Строка - имя приложения. // Функция СформироватьНаименованиеПредопределенногоУзла() Экспорт @@ -1056,7 +1060,7 @@ |ИЗ | РегистрСведений.СостоянияУспешныхОбменовДаннымиОбластейДанных КАК СостоянияУспешныхОбменовДанными |ГДЕ - | СостоянияУспешныхОбменовДанными.ДействиеПриОбмене = ЗНАЧЕНИЕ(Перечисление.ДействияПриОбмене.ВыгрузкаДанных) + | СостоянияУспешныхОбменовДанными.ДействиеПриОбмене = ЗНАЧЕНИЕ(Перечисление.ДействияПриОбмене.ВыгрузкаДанных) |; | |//////////////////////////////////////////////////////////////////////////////// @@ -1277,7 +1281,7 @@ // Событие для журнала регистрации настройки синхронизации данных // // Возвращаемое значение: -// Строка - Событие журнала регистрации строкой +// Строка - событие журнала регистрации строкой // Функция СобытиеЖурналаРегистрацииНастройкаСинхронизацииДанных() Экспорт @@ -1290,8 +1294,7 @@ #Область СлужебныеПроцедурыИФункции -//////////////////////////////////////////////////////////////////////////////// -// Экспортные служебные процедуры и функции +#Область ЭкспортныеСлужебныеПроцедурыИФункции // Выполняет выгрузку данных в обмене между областями данных. // @@ -2330,9 +2333,9 @@ Если ЗначениеЗаполнено(ВерсияПлатформы) Тогда Возврат ВерсияПлатформы; КонецЕсли; - - СистемнаяИнформация = Новый СистемнаяИнформация; - ВерсияПлатформы = СтрРазделить(СистемнаяИнформация.ВерсияПриложения, "."); + + ВерсияПлатформы = СтандартныеПодсистемыСервер.ВерсияРежимаСовместимости(); + ВерсияПлатформы = СтрРазделить(ВерсияПлатформы, "."); // Удаляем из номера версии дополнительный номер релиза (последний номер) ВерсияПлатформы.Удалить(3); @@ -2343,7 +2346,7 @@ // Событие для журнала регистрации монитора синхронизации данных // // Возвращаемое значение: -// Строка - Событие журнала регистрации строкой +// Строка - событие журнала регистрации строкой // Функция СобытиеЖурналаРегистрацииМониторСинхронизацииДанных() Экспорт @@ -2355,7 +2358,7 @@ // Событие для журнала регистрации синхронизации данных // // Возвращаемое значение: -// Строка - Событие журнала регистрации строкой +// Строка - событие журнала регистрации строкой // Функция СобытиеЖурналаРегистрацииСинхронизацииДанных() Экспорт @@ -2372,18 +2375,19 @@ КонецФункции -//////////////////////////////////////////////////////////////////////////////// -// Процедуры и функции монитора обмена данными +#КонецОбласти + +#Область ПроцедурыИФункцииМонитораОбменаДанными // Для внутреннего использования // // Параметры: // ПланыОбменаМетода - Массив из Строка - массив имен планов обмена, как в конфигурации -// ДополнительныеСвойстваПланаОбмена - Строка - Дополнительные свойства плана обмена +// ДополнительныеСвойстваПланаОбмена - Строка - дополнительные свойства плана обмена // ТолькоНеуспешные - Булево // // Возвращаемое значение: -// ТаблицаЗначений - Таблица монитора обмена данными +// ТаблицаЗначений - таблица монитора обмена данными // Функция ТаблицаМонитораОбменаДанными(Знач ПланыОбменаМетода, Знач ДополнительныеСвойстваПланаОбмена = "", Знач ТолькоНеуспешные = Ложь) Экспорт @@ -2653,8 +2657,9 @@ КонецПроцедуры -//////////////////////////////////////////////////////////////////////////////// -// Локальные служебные процедуры и функции +#КонецОбласти + +#Область ЛокальныеСлужебныеПроцедурыИФункции Функция НайтиУзелИнформационнойБазы(Знач ИмяПланаОбмена, Знач КодУзла) @@ -2785,8 +2790,9 @@ КонецФункции -//////////////////////////////////////////////////////////////////////////////// -// Получение ссылок на общие страницы информации сервиса +#КонецОбласти + +#Область ПолучениеСсылокНаОбщиеСтраницыИнформацииСервиса // Возвращает адрес ссылки по идентификатору // Для внутреннего использования. @@ -2839,4 +2845,6 @@ КонецПроцедуры +#КонецОбласти + #КонецОбласти \ No newline at end of file diff --git a/SSL/src/CommonModules/ОбменДаннымиВМоделиСервисаКлиент/Module.bsl b/SSL/src/CommonModules/ОбменДаннымиВМоделиСервисаКлиент/Module.bsl index e1f69a713..46d3c94d5 100644 --- a/SSL/src/CommonModules/ОбменДаннымиВМоделиСервисаКлиент/Module.bsl +++ b/SSL/src/CommonModules/ОбменДаннымиВМоделиСервисаКлиент/Module.bsl @@ -1,5 +1,5 @@ /////////////////////////////////////////////////////////////////////////////////////////////////////// -// Copyright (c) 2024, ООО 1С-Софт +// Copyright (c) 2025, ООО 1С-Софт // Все права защищены. Эта программа и сопроводительные материалы предоставляются // в соответствии с условиями лицензии Attribution 4.0 International (CC BY 4.0) // Текст лицензии доступен по ссылке: @@ -41,8 +41,7 @@ КонецПроцедуры -//////////////////////////////////////////////////////////////////////////////// -// Обработчики служебных событий подсистем БСП +#Область ОбработчикиСлужебныхСобытийПодсистемБСП // Доопределяет список предупреждений пользователю перед завершением работы системы. // @@ -83,3 +82,5 @@ КонецПроцедуры #КонецОбласти + +#КонецОбласти \ No newline at end of file diff --git a/SSL/src/CommonModules/ОбменДаннымиВМоделиСервисаПереопределяемый/Module.bsl b/SSL/src/CommonModules/ОбменДаннымиВМоделиСервисаПереопределяемый/Module.bsl index a0d688a2f..7239cfa5a 100644 --- a/SSL/src/CommonModules/ОбменДаннымиВМоделиСервисаПереопределяемый/Module.bsl +++ b/SSL/src/CommonModules/ОбменДаннымиВМоделиСервисаПереопределяемый/Module.bsl @@ -1,5 +1,5 @@ /////////////////////////////////////////////////////////////////////////////////////////////////////// -// Copyright (c) 2024, ООО 1С-Софт +// Copyright (c) 2025, ООО 1С-Софт // Все права защищены. Эта программа и сопроводительные материалы предоставляются // в соответствии с условиями лицензии Attribution 4.0 International (CC BY 4.0) // Текст лицензии доступен по ссылке: diff --git a/SSL/src/CommonModules/ОбменДаннымиВМоделиСервисаПовтИсп/Module.bsl b/SSL/src/CommonModules/ОбменДаннымиВМоделиСервисаПовтИсп/Module.bsl index c31731bb0..480aa1974 100644 --- a/SSL/src/CommonModules/ОбменДаннымиВМоделиСервисаПовтИсп/Module.bsl +++ b/SSL/src/CommonModules/ОбменДаннымиВМоделиСервисаПовтИсп/Module.bsl @@ -1,5 +1,5 @@ /////////////////////////////////////////////////////////////////////////////////////////////////////// -// Copyright (c) 2024, ООО 1С-Софт +// Copyright (c) 2025, ООО 1С-Софт // Все права защищены. Эта программа и сопроводительные материалы предоставляются // в соответствии с условиями лицензии Attribution 4.0 International (CC BY 4.0) // Текст лицензии доступен по ссылке: @@ -60,10 +60,12 @@ Функция ПолучитьWSПроксиСервисаОбмена() Экспорт Результат = Неопределено; - Если ОбщегоНазначения.ПодсистемаСуществует("ТехнологияСервиса") Тогда + Если ОбщегоНазначения.ПодсистемаСуществует("ТехнологияСервиса.ОбменСообщениями") Тогда + МодульРаботаВМоделиСервисаБТСПовтИсп = ОбщегоНазначения.ОбщийМодуль("РаботаВМоделиСервисаБТСПовтИсп"); МодульНастройкиТранспортаОбменаСообщениями = ОбщегоНазначения.ОбщийМодуль("РегистрыСведений.НастройкиТранспортаОбменаСообщениями"); + // @skip-warning Метод заполняется из служебного расширения БТС НастройкиТранспорта = МодульНастройкиТранспортаОбменаСообщениями.НастройкиТранспортаWS( МодульРаботаВМоделиСервисаБТСПовтИсп.КонечнаяТочкаМенеджераСервиса()); @@ -128,10 +130,10 @@ // // Параметры: // УзелИнформационнойБазы - ПланОбменаСсылка -// СтрокаСообщенияОбОшибке - Строка - Значение по умолчанию = "". +// СтрокаСообщенияОбОшибке - Строка - значение по умолчанию = "". // // Возвращаемое значение: -// - Неопределено - Если не удалось создать WSПрокси +// - Неопределено - если не удалось создать WSПрокси // - WSПрокси // Функция ПолучитьWSПроксиКорреспондента_2_1_6_1(УзелИнформационнойБазы, СтрокаСообщенияОбОшибке = "") Экспорт @@ -148,10 +150,10 @@ // // Параметры: // УзелИнформационнойБазы - ПланОбменаСсылка -// СтрокаСообщенияОбОшибке - Строка - Значение по умолчанию = "". +// СтрокаСообщенияОбОшибке - Строка - значение по умолчанию = "". // // Возвращаемое значение: -// - Неопределено - Если не удалось создать WSПрокси +// - Неопределено - если не удалось создать WSПрокси // - WSПрокси // Функция ПолучитьWSПроксиКорреспондента_2_4_5_1(УзелИнформационнойБазы, СтрокаСообщенияОбОшибке = "") Экспорт @@ -167,7 +169,7 @@ // Возвращает Истину, если этот план обмена используется для синхронизации данных в модели сервиса. // // Параметры: -// ИмяПланаОбмена - Строка - Имя плана обмена, как задано в конфигураторе +// ИмяПланаОбмена - Строка - имя плана обмена, как задано в конфигураторе // // Возвращаемое значение: // Булево diff --git a/SSL/src/CommonModules/ОбменДаннымиВебСервис/Module.bsl b/SSL/src/CommonModules/ОбменДаннымиВебСервис/Module.bsl index 69bde491f..1f3861921 100644 --- a/SSL/src/CommonModules/ОбменДаннымиВебСервис/Module.bsl +++ b/SSL/src/CommonModules/ОбменДаннымиВебСервис/Module.bsl @@ -1,5 +1,5 @@ /////////////////////////////////////////////////////////////////////////////////////////////////////// -// Copyright (c) 2024, ООО 1С-Софт +// Copyright (c) 2025, ООО 1С-Софт // Все права защищены. Эта программа и сопроводительные материалы предоставляются // в соответствии с условиями лицензии Attribution 4.0 International (CC BY 4.0) // Текст лицензии доступен по ссылке: @@ -139,7 +139,7 @@ // Функция передает указанный файл в сервис передачи файлов. // // Параметры: -// Прокси - +// Прокси // СтруктураНастроекОбмена - Структура - структура со всеми необходимыми данными и объектами для выполнения обмена. // ИмяФайла - Строка - путь к передаваемому файлу. // УзелИнформационнойБазы - ПланОбменаСсылка - узел плана обмена, для которого необходимо получить файл. @@ -1017,7 +1017,7 @@ КонецФункции -Функция МаксимальнаяОбщаяВерсияИнтерфейсаОбмена(ВесрииИнтерфейсаОбменаКорреспондента) Экспорт +Функция МаксимальнаяОбщаяВерсияИнтерфейсаОбмена(ВерсииИнтерфейсаОбменаКорреспондента) Экспорт СтруктураПоддерживаемыхВерсий = Новый Структура; ОбменДаннымиСервер.ПриОпределенииПоддерживаемыхВерсийПрограммныхИнтерфейсов(СтруктураПоддерживаемыхВерсий); @@ -1025,7 +1025,7 @@ МаксимальнаяВерсия = "0.0.0.0"; - Для Каждого Версия Из ВесрииИнтерфейсаОбменаКорреспондента Цикл + Для Каждого Версия Из ВерсииИнтерфейсаОбменаКорреспондента Цикл Если ВерсииИнтерфейсаОбмена.Найти(Версия) = Неопределено Тогда Продолжить; diff --git a/SSL/src/CommonModules/ОбменДаннымиВнешнееСоединение/Module.bsl b/SSL/src/CommonModules/ОбменДаннымиВнешнееСоединение/Module.bsl index 02f16768c..844a71593 100644 --- a/SSL/src/CommonModules/ОбменДаннымиВнешнееСоединение/Module.bsl +++ b/SSL/src/CommonModules/ОбменДаннымиВнешнееСоединение/Module.bsl @@ -1,5 +1,5 @@ /////////////////////////////////////////////////////////////////////////////////////////////////////// -// Copyright (c) 2024, ООО 1С-Софт +// Copyright (c) 2025, ООО 1С-Софт // Все права защищены. Эта программа и сопроводительные материалы предоставляются // в соответствии с условиями лицензии Attribution 4.0 International (CC BY 4.0) // Текст лицензии доступен по ссылке: @@ -130,12 +130,12 @@ // (Только для внутреннего использования). // // Параметры: -// ИмяПланаОбмена - Строка - Имя плана обмена как объекта метаданных -// ПолучатьПравилаКорреспондента - Булево - Значение по умолчанию = Ложь. +// ИмяПланаОбмена - Строка - имя плана обмена как объекта метаданных +// ПолучатьПравилаКорреспондента - Булево - значение по умолчанию = Ложь. // // Возвращаемое значение: // - Неопределено -// - ХранилищеЗначения - Хранилище значений с правилами конвертации +// - ХранилищеЗначения - хранилище значений с правилами конвертации // Функция ПолучитьПравилаКонвертацииОбъектов(ИмяПланаОбмена, ПолучатьПравилаКорреспондента = Ложь) Экспорт @@ -152,7 +152,7 @@ // *ИмяПланаОбменаКорреспондента - Строка // *ТекущийУзелПланаОбменаКод - Строка // *КоличествоЭлементовВТранзакции - Число -// *ДействиеПриОбменеСтрокой - Строка - Имя значения перечисления ДействияПриОбмене +// *ДействиеПриОбменеСтрокой - Строка - имя значения перечисления ДействияПриОбмене // *РежимОтладки - Булево // *ИмяФайлаПротоколаОбмена - Строка // @@ -169,10 +169,10 @@ // (Только для внутреннего использования). // // Параметры: -// ИмяПланаОбмена - Строка - Имя плана обмена как объекта метаданных +// ИмяПланаОбмена - Строка - имя плана обмена как объекта метаданных // // Возвращаемое значение: -// Булево - План обмена существует +// Булево - план обмена существует // Функция ПланОбменаСуществует(ИмяПланаОбмена) Экспорт @@ -200,7 +200,7 @@ // Проверяет необходимость проверки расхождения версий в правилах конвертации. // // Параметры: -// ИмяПланаОбмена - Строка - Имя плана обмена как объекта метаданных +// ИмяПланаОбмена - Строка - имя плана обмена как объекта метаданных // // Возвращаемое значение: // см. ОбменДаннымиСервер.ЗначениеНастройкиПланаОбмена @@ -228,10 +228,11 @@ // (Только для внутреннего использования). // // Параметры: -// ИмяПланаОбмена - Строка - Имя плана обмена как объекта метаданных +// ИмяПланаОбмена - Строка - имя плана обмена как объекта метаданных // // Возвращаемое значение: // см. ОбменДаннымиСервер.НаименованиеПредопределенногоУзлаПланаОбмена +// Функция НаименованиеПредопределенногоУзлаПланаОбмена(ИмяПланаОбмена) Экспорт Возврат ОбменДаннымиСервер.НаименованиеПредопределенногоУзлаПланаОбмена(ИмяПланаОбмена); @@ -242,7 +243,7 @@ // (Только для внутреннего использования). // // Параметры: -// ИмяПланаОбмена - Строка - Имя плана обмена как объекта метаданных +// ИмяПланаОбмена - Строка - имя плана обмена как объекта метаданных // // Возвращаемое значение: // см. ОбменДаннымиСервер.КодПредопределенногоУзлаПланаОбмена @@ -256,7 +257,7 @@ // Для внутреннего использования. // // Параметры: -// ИмяПланаОбмена - Строка - Имя плана обмена как объекта метаданных +// ИмяПланаОбмена - Строка - имя плана обмена как объекта метаданных // // Возвращаемое значение: // Строка - системное представление структуры с таблицами заданного плана обмена. @@ -272,7 +273,7 @@ // Для внутреннего использования. // // Параметры: -// ИмяПланаОбмена - Строка - Имя плана обмена как объекта метаданных +// ИмяПланаОбмена - Строка - имя плана обмена как объекта метаданных // // Возвращаемое значение: // Строка - системное представление структуры с таблицами заданного плана обмена. @@ -288,7 +289,7 @@ // Для внутреннего использования. // // Параметры: -// ИмяПланаОбмена - Строка - Имя плана обмена как объекта метаданных +// ИмяПланаОбмена - Строка - имя плана обмена как объекта метаданных // КодУзла - Строка // СообщениеОбОшибке - Строка // @@ -304,7 +305,7 @@ // Для внутреннего использования. // // Параметры: -// ИмяПланаОбмена - Строка - Имя плана обмена как объекта метаданных +// ИмяПланаОбмена - Строка - имя плана обмена как объекта метаданных // КодУзла - Строка // СообщениеОбОшибке - Строка // @@ -320,10 +321,10 @@ // Для внутреннего использования. // // Параметры: -// ИмяПланаОбмена - Строка - Имя плана обмена как объекта метаданных +// ИмяПланаОбмена - Строка - имя плана обмена как объекта метаданных // КодУзла - Строка // СообщениеОбОшибке - Строка -// ДополнительныеПараметры - Структура - Структура дополнительных параметров +// ДополнительныеПараметры - Структура - структура дополнительных параметров // // Возвращаемое значение: // Строка - сериализованное представление структуры ,содержащей параметры информационной базы, в XML. diff --git a/SSL/src/CommonModules/ОбменДаннымиВнутренняяПубликация/Module.bsl b/SSL/src/CommonModules/ОбменДаннымиВнутренняяПубликация/Module.bsl index 2e6bb5f15..9152112cc 100644 --- a/SSL/src/CommonModules/ОбменДаннымиВнутренняяПубликация/Module.bsl +++ b/SSL/src/CommonModules/ОбменДаннымиВнутренняяПубликация/Module.bsl @@ -1,5 +1,5 @@ /////////////////////////////////////////////////////////////////////////////////////////////////////// -// Copyright (c) 2024, ООО 1С-Софт +// Copyright (c) 2025, ООО 1С-Софт // Все права защищены. Эта программа и сопроводительные материалы предоставляются // в соответствии с условиями лицензии Attribution 4.0 International (CC BY 4.0) // Текст лицензии доступен по ссылке: @@ -103,7 +103,7 @@ ПараметрыЗадания.Вставить("КоличествоПовторовПриАварийномЗавершении", 3); ПараметрыЗадания.Вставить("ИнтервалПовтораПриАварийномЗавершении", 900); - УстановитьПривилегированныйРежим(Истина); // В разделенной ИБ, внут. публикация, не полные права + УстановитьПривилегированныйРежим(Истина); // В разделенной ИБ, внутренняя публикация, не полные права МодульОчередьЗаданий = ОбщегоНазначения.ОбщийМодуль("ОчередьЗаданий"); МодульОчередьЗаданий.ДобавитьЗадание(ПараметрыЗадания); @@ -319,7 +319,10 @@ Если ЗначениеЗаполнено(Сценарий) Тогда РегламентноеЗаданиеGUID = ОбщегоНазначения.ЗначениеРеквизитаОбъекта(Сценарий, "РегламентноеЗаданиеGUID"); - ЗадачиИсточника.Добавить(РегламентноеЗаданиеGUID); + + Если ЗначениеЗаполнено(РегламентноеЗаданиеGUID) Тогда + ЗадачиИсточника.Добавить(РегламентноеЗаданиеGUID); + КонецЕсли; КонецЕсли; ЗадачиПриемника = Новый Массив; @@ -341,10 +344,35 @@ КонецЕсли; - Запись = РегистрыСведений.ЗадачиОбменаДаннымиВнутренняяПубликация.СоздатьМенеджерЗаписи(); - ЗаполнитьЗначенияСвойств(Запись, Выборка); - Запись.Прочитать(); - Запись.Удалить(); + НачатьТранзакцию(); + + Попытка + БлокировкаДанных = Новый БлокировкаДанных; + ЭлементБлокировкиДанных = БлокировкаДанных.Добавить("РегистрСведений.ЗадачиОбменаДаннымиВнутренняяПубликация"); + ЭлементБлокировкиДанных.УстановитьЗначение("ДатаСоздания", Выборка.ДатаСоздания); + ЭлементБлокировкиДанных.УстановитьЗначение("УзелИнформационнойБазы", Выборка.УзелИнформационнойБазы); + ЭлементБлокировкиДанных.УстановитьЗначение("НомерЗадачи", Выборка.НомерЗадачи); + ЭлементБлокировкиДанных.УстановитьЗначение("ИдентификаторОбмена", Выборка.ИдентификаторОбмена); + ЭлементБлокировкиДанных.УстановитьЗначение("ИдентификаторЗадачи", Выборка.ИдентификаторЗадачи); + ЭлементБлокировкиДанных.Режим = РежимБлокировкиДанных.Исключительный; + БлокировкаДанных.Заблокировать(); + + Запись = РегистрыСведений.ЗадачиОбменаДаннымиВнутренняяПубликация.СоздатьМенеджерЗаписи(); + ЗаполнитьЗначенияСвойств(Запись, Выборка); + Запись.Прочитать(); + Запись.Удалить(); + + ЗафиксироватьТранзакцию(); + Исключение + ОтменитьТранзакцию(); + + СообщениеОбОшибке = ОбработкаОшибок.ПодробноеПредставлениеОшибки(ИнформацияОбОшибке()); + + Событие = НСтр("ru = 'Обмен данными.Отмена очереди задач'", ОбщегоНазначения.КодОсновногоЯзыка()); + + ЗаписьЖурналаРегистрации(Событие, УровеньЖурналаРегистрации.Ошибка, + Метаданные.РегистрыСведений.ЗадачиОбменаДаннымиВнутренняяПубликация, , СообщениеОбОшибке); + КонецПопытки; КонецЦикла; @@ -373,7 +401,7 @@ КонецЦикла; КонецЦикла; - + Если ЗадачиПриемника.Количество() > 0 Тогда Прокси = Неопределено; @@ -406,20 +434,44 @@ КонецЕсли; Если ЗначениеЗаполнено(ТекЗадача) Тогда - - Запись = РегистрыСведений.ЗадачиОбменаДаннымиВнутренняяПубликация.СоздатьМенеджерЗаписи(); - ЗаполнитьЗначенияСвойств(Запись, ТекЗадача); - Запись.Прочитать(); - - Если Ошибка = "" Тогда - Запись.ЗавершенаУспешно = Истина; - Иначе - Запись.ЗавершенаСОшибкой = Истина; - Запись.Ошибка = Ошибка; - КонецЕсли; - - Запись.Записать(); - + НачатьТранзакцию(); + + Попытка + БлокировкаДанных = Новый БлокировкаДанных; + ЭлементБлокировкиДанных = БлокировкаДанных.Добавить("РегистрСведений.ЗадачиОбменаДаннымиВнутренняяПубликация"); + ЭлементБлокировкиДанных.УстановитьЗначение("ДатаСоздания", ТекЗадача.ДатаСоздания); + ЭлементБлокировкиДанных.УстановитьЗначение("УзелИнформационнойБазы", ТекЗадача.УзелИнформационнойБазы); + ЭлементБлокировкиДанных.УстановитьЗначение("НомерЗадачи", ТекЗадача.НомерЗадачи); + ЭлементБлокировкиДанных.УстановитьЗначение("ИдентификаторОбмена", ТекЗадача.ИдентификаторОбмена); + ЭлементБлокировкиДанных.УстановитьЗначение("ИдентификаторЗадачи", ТекЗадача.ИдентификаторЗадачи); + ЭлементБлокировкиДанных.Режим = РежимБлокировкиДанных.Исключительный; + БлокировкаДанных.Заблокировать(); + + Запись = РегистрыСведений.ЗадачиОбменаДаннымиВнутренняяПубликация.СоздатьМенеджерЗаписи(); + ЗаполнитьЗначенияСвойств(Запись, ТекЗадача); + Запись.Прочитать(); + + Если Ошибка = "" Тогда + Запись.ЗавершенаУспешно = Истина; + Иначе + Запись.ЗавершенаСОшибкой = Истина; + Запись.Ошибка = Ошибка; + КонецЕсли; + + Запись.Записать(); + + ЗафиксироватьТранзакцию(); + Исключение + ОтменитьТранзакцию(); + + СообщениеОбОшибке = ОбработкаОшибок.ПодробноеПредставлениеОшибки(ИнформацияОбОшибке()); + + Событие = НСтр("ru = 'Обмен данными.Отметка выполнения задачи'", ОбщегоНазначения.КодОсновногоЯзыка()); + + ЗаписьЖурналаРегистрации(Событие, УровеньЖурналаРегистрации.Ошибка, + Метаданные.РегистрыСведений.ЗадачиОбменаДаннымиВнутренняяПубликация, , СообщениеОбОшибке); + КонецПопытки; + КонецЕсли; КонецПроцедуры @@ -497,7 +549,7 @@ УстановитьПривилегированныйРежим(Истина); - ИмяФайлаСообщения = ОбменДаннымиСервер.ПолучитьФайлИзХранилища(ИдентификаторФайла); + ИмяФайлаСообщения = ОбменДаннымиСервер.ПолучитьФайлИзХранилища(ИдентификаторФайла,, Ложь); ПараметрыОбменаДанными = ОбменДаннымиСервер.ПараметрыОбменаДаннымиЧерезФайлИлиСтроку(); @@ -507,23 +559,38 @@ ПараметрыОбменаДанными.КодУзлаИнформационнойБазы = КодУзлаИнформационнойБазы; ПредставлениеОшибки = ""; + Попытка - + ОбменДаннымиСервер.ВыполнитьОбменДаннымиДляУзлаИнформационнойБазыЧерезФайлИлиСтроку(ПараметрыОбменаДанными); Исключение - ПредставлениеОшибки = ОбработкаОшибок.ПодробноеПредставлениеОшибки(ИнформацияОбОшибке()); - ОтветныйВызов(ИмяПланаОбмена, КодУзлаИнформационнойБазы, ИдентификаторЗадачи, ПредставлениеОшибки); + ПредставлениеОшибки = ПризнакОтменыПовторногоВыполненияЗадания(); + ПредставлениеОшибки = ПредставлениеОшибки + ":" + ОбработкаОшибок.ПодробноеПредставлениеОшибки(ИнформацияОбОшибке()); - УдалитьФайлы(ИмяФайлаСообщения); - ВызватьИсключение ПредставлениеОшибки; + ЗаписьЖурналаРегистрации(ОбменДаннымиВМоделиСервиса.СобытиеЖурналаРегистрацииСинхронизацииДанных(), + УровеньЖурналаРегистрации.Ошибка,,, ОбработкаОшибок.ПодробноеПредставлениеОшибки(ИнформацияОбОшибке())); КонецПопытки; УдалитьФайлы(ИмяФайлаСообщения); - ОтветныйВызов(ИмяПланаОбмена, КодУзлаИнформационнойБазы, ИдентификаторЗадачи); + // Удаляем информацию о файле сообщения обмена из хранилища. + СтруктураЗаписи = Новый Структура; + СтруктураЗаписи.Вставить("ИдентификаторСообщения", Строка(ИдентификаторФайла)); + + Если ОбщегоНазначения.РазделениеВключено() И ОбщегоНазначения.ДоступноИспользованиеРазделенныхДанных() Тогда + + РегистрыСведений.СообщенияОбменаДаннымиОбластейДанных.УдалитьЗапись(СтруктураЗаписи); + + Иначе + + РегистрыСведений.СообщенияОбменаДанными.УдалитьЗапись(СтруктураЗаписи); + + КонецЕсли; + + ОтветныйВызов(ИмяПланаОбмена, КодУзлаИнформационнойБазы, ИдентификаторЗадачи, ПредставлениеОшибки); КонецПроцедуры @@ -651,6 +718,12 @@ КонецПроцедуры +Функция ПризнакОтменыПовторногоВыполненияЗадания() Экспорт + + Возврат НСтр("ru = '#ОтменитьПовторноеВыполнениеЗадачи#'"); + +КонецФункции + #КонецОбласти #Область СлужебныеПроцедурыИФункции @@ -703,33 +776,39 @@ // Оставляем N последних записей Запрос = Новый Запрос; - Запрос.Текст = - "ВЫБРАТЬ РАЗЛИЧНЫЕ ПЕРВЫЕ 5 - | Задачи.ИдентификаторОбмена КАК ИдентификаторОбмена - |ПОМЕСТИТЬ втПоследниеСинхронизации - |ИЗ - | РегистрСведений.ЗадачиОбменаДаннымиВнутренняяПубликация КАК Задачи - |ГДЕ - | Задачи.Сценарий = &Сценарий - |; - | - |//////////////////////////////////////////////////////////////////////////////// - |ВЫБРАТЬ - | Задачи.ДатаСоздания КАК ДатаСоздания, - | Задачи.УзелИнформационнойБазы КАК УзелИнформационнойБазы, - | Задачи.НомерЗадачи КАК НомерЗадачи, - | Задачи.ИдентификаторОбмена КАК ИдентификаторОбмена, - | Задачи.ИдентификаторЗадачи КАК ИдентификаторЗадачи - |ИЗ - | РегистрСведений.ЗадачиОбменаДаннымиВнутренняяПубликация КАК Задачи - | ПОЛНОЕ СОЕДИНЕНИЕ втПоследниеСинхронизации КАК втПоследниеСинхронизации - | ПО Задачи.ИдентификаторОбмена = втПоследниеСинхронизации.ИдентификаторОбмена - |ГДЕ - | втПоследниеСинхронизации.ИдентификаторОбмена ЕСТЬ NULL - | И Задачи.Сценарий = &Сценарий - | - |УПОРЯДОЧИТЬ ПО - | ДатаСоздания"; + Запрос.Текст = + "ВЫБРАТЬ ПЕРВЫЕ 5 + | Задачи.ИдентификаторОбмена КАК ИдентификаторОбмена + |ПОМЕСТИТЬ втПоследниеСинхронизации + |ИЗ + | РегистрСведений.ЗадачиОбменаДаннымиВнутренняяПубликация КАК Задачи + |ГДЕ + | Задачи.Сценарий = &Сценарий + | + |СГРУППИРОВАТЬ ПО + | Задачи.ИдентификаторОбмена + | + |УПОРЯДОЧИТЬ ПО + | МАКСИМУМ(Задачи.ДатаСоздания) УБЫВ + |; + | + |//////////////////////////////////////////////////////////////////////////////// + |ВЫБРАТЬ + | Задачи.ДатаСоздания КАК ДатаСоздания, + | Задачи.УзелИнформационнойБазы КАК УзелИнформационнойБазы, + | Задачи.НомерЗадачи КАК НомерЗадачи, + | Задачи.ИдентификаторОбмена КАК ИдентификаторОбмена, + | Задачи.ИдентификаторЗадачи КАК ИдентификаторЗадачи + |ИЗ + | РегистрСведений.ЗадачиОбменаДаннымиВнутренняяПубликация КАК Задачи + | ПОЛНОЕ СОЕДИНЕНИЕ втПоследниеСинхронизации КАК втПоследниеСинхронизации + | ПО Задачи.ИдентификаторОбмена = втПоследниеСинхронизации.ИдентификаторОбмена + |ГДЕ + | втПоследниеСинхронизации.ИдентификаторОбмена ЕСТЬ NULL + | И Задачи.Сценарий = &Сценарий + | + |УПОРЯДОЧИТЬ ПО + | ДатаСоздания"; Если ЗначениеЗаполнено(Сценарий) Тогда Запрос.УстановитьПараметр("Сценарий", Сценарий); @@ -1003,30 +1082,82 @@ Если Состояние = "Запланировано" Или Состояние = "Выполняется" Тогда - Запись = РегистрыСведений.ЗадачиОбменаДаннымиВнутренняяПубликация.СоздатьМенеджерЗаписи(); - ЗаполнитьЗначенияСвойств(Запись, Выборка); - Запись.Прочитать(); - Запись.ВремяПроверкиЗадачи = ТекущаяУниверсальнаяДата(); - Запись.Записать(); + НачатьТранзакцию(); + + Попытка + БлокировкаДанных = Новый БлокировкаДанных; + ЭлементБлокировкиДанных = БлокировкаДанных.Добавить("РегистрСведений.ЗадачиОбменаДаннымиВнутренняяПубликация"); + ЭлементБлокировкиДанных.УстановитьЗначение("ДатаСоздания", Выборка.ДатаСоздания); + ЭлементБлокировкиДанных.УстановитьЗначение("УзелИнформационнойБазы", Выборка.УзелИнформационнойБазы); + ЭлементБлокировкиДанных.УстановитьЗначение("НомерЗадачи", Выборка.НомерЗадачи); + ЭлементБлокировкиДанных.УстановитьЗначение("ИдентификаторОбмена", Выборка.ИдентификаторОбмена); + ЭлементБлокировкиДанных.УстановитьЗначение("ИдентификаторЗадачи", Выборка.ИдентификаторЗадачи); + ЭлементБлокировкиДанных.Режим = РежимБлокировкиДанных.Исключительный; + БлокировкаДанных.Заблокировать(); + + Запись = РегистрыСведений.ЗадачиОбменаДаннымиВнутренняяПубликация.СоздатьМенеджерЗаписи(); + ЗаполнитьЗначенияСвойств(Запись, Выборка); + Запись.Прочитать(); + Запись.ВремяПроверкиЗадачи = ТекущаяУниверсальнаяДата(); + + Запись.Записать(); + + ЗафиксироватьТранзакцию(); + Исключение + ОтменитьТранзакцию(); + + СообщениеОбОшибке = ОбработкаОшибок.ПодробноеПредставлениеОшибки(ИнформацияОбОшибке()); + + Событие = НСтр("ru = 'Обмен данными.Запись'", ОбщегоНазначения.КодОсновногоЯзыка()); + + ЗаписьЖурналаРегистрации(Событие, УровеньЖурналаРегистрации.Ошибка, Метаданные.РегистрыСведений.ЗадачиОбменаДаннымиВнутренняяПубликация, , СообщениеОбОшибке); + КонецПопытки; Возврат Ложь; Иначе - Запись = РегистрыСведений.ЗадачиОбменаДаннымиВнутренняяПубликация.СоздатьМенеджерЗаписи(); - ЗаполнитьЗначенияСвойств(Запись, Выборка); - Запись.Прочитать(); + НачатьТранзакцию(); - Шаблон = НСтр("ru = 'Не обнаружено активных задач обмена в корреспонденте. - |См. журнал регистрации корреспондента (%1).'", ОбщегоНазначения.КодОсновногоЯзыка()); + Попытка + БлокировкаДанных = Новый БлокировкаДанных; + ЭлементБлокировкиДанных = БлокировкаДанных.Добавить("РегистрСведений.ЗадачиОбменаДаннымиВнутренняяПубликация"); + ЭлементБлокировкиДанных.УстановитьЗначение("ДатаСоздания", Выборка.ДатаСоздания); + ЭлементБлокировкиДанных.УстановитьЗначение("УзелИнформационнойБазы", Выборка.УзелИнформационнойБазы); + ЭлементБлокировкиДанных.УстановитьЗначение("НомерЗадачи", Выборка.НомерЗадачи); + ЭлементБлокировкиДанных.УстановитьЗначение("ИдентификаторОбмена", Выборка.ИдентификаторОбмена); + ЭлементБлокировкиДанных.УстановитьЗначение("ИдентификаторЗадачи", Выборка.ИдентификаторЗадачи); + ЭлементБлокировкиДанных.Режим = РежимБлокировкиДанных.Исключительный; + БлокировкаДанных.Заблокировать(); + + Запись = РегистрыСведений.ЗадачиОбменаДаннымиВнутренняяПубликация.СоздатьМенеджерЗаписи(); + ЗаполнитьЗначенияСвойств(Запись, Выборка); + Запись.Прочитать(); - Ошибка = СтрШаблон(Шаблон, Выборка.УзелИнформационнойБазы); + Шаблон = НСтр("ru = 'Не обнаружено активных задач обмена в корреспонденте. + |См. журнал регистрации корреспондента (%1).'", ОбщегоНазначения.КодОсновногоЯзыка()); + + Ошибка = СтрШаблон(Шаблон, Выборка.УзелИнформационнойБазы); - ОбменДаннымиСервер.ЗаписьЖурналаРегистрацииОбменаДанными(Ошибка, СтруктураНастроекОбмена, Истина); + ОбменДаннымиСервер.ЗаписьЖурналаРегистрацииОбменаДанными(Ошибка, СтруктураНастроекОбмена, Истина); - Запись.ЗавершенаСОшибкой = Истина; - Запись.Ошибка = Ошибка; - Запись.Записать(); + Запись.ЗавершенаСОшибкой = Истина; + Запись.Ошибка = Ошибка; + + Запись.Записать(); + + ЗафиксироватьТранзакцию(); + Исключение + ОтменитьТранзакцию(); + + СообщениеОбОшибке = ОбработкаОшибок.ПодробноеПредставлениеОшибки(ИнформацияОбОшибке()); + + Событие = НСтр("ru = 'Обмен данными.Запись'", ОбщегоНазначения.КодОсновногоЯзыка()); + + ЗаписьЖурналаРегистрации(Событие, УровеньЖурналаРегистрации.Ошибка, Метаданные.РегистрыСведений.ЗадачиОбменаДаннымиВнутренняяПубликация, , СообщениеОбОшибке); + + Возврат Ложь; + КонецПопытки; Возврат Истина; @@ -1307,7 +1438,7 @@ ВыполнитьЗадачуЗагрузкаДанных(Задача, Прокси, ПараметрыОбмена, СтруктураНастроекОбмена, ОбластьДанныхКорреспондента, Отказ, Ошибка); ОтметитьВыполнениеЗадачи(Задача, Ошибка); ОбменДаннымиСервер.ЗафиксироватьЗавершениеОбмена(СтруктураНастроекОбмена); - + УдалитьЗадачиПриВозникновенииОшибки(Отказ, Задача); ИначеЕсли Действие = Перечисления.ДействияПриОбменеВнутренняяПубликация.ВыгрузкаДанных Тогда @@ -1618,21 +1749,42 @@ ИдентификаторТранспорта = "SM" И НастройкиТранспорта.ВнутренняяПубликация Или ИдентификаторТранспорта = "WS" Или ИдентификаторТранспорта = "ПассивныйРежим"; - - ЗаписьНастроек = РегистрыСведений.ОбщиеНастройкиУзловИнформационныхБаз.СоздатьМенеджерЗаписи(); - ЗаписьНастроек.УзелИнформационнойБазы = Узел; - ЗаписьНастроек.Прочитать(); - Если ЗаписьНастроек.ИспользоватьСценарииВМоделиСервиса <> ИспользоватьСценарии - Или ЗаписьНастроек.ИспользоватьНастройкиПодключенияВМоделиСервиса <> ИспользоватьНастройкиПодключения Тогда - - ЗаписьНастроек.ИспользоватьСценарииВМоделиСервиса = ИспользоватьСценарии; - ЗаписьНастроек.ИспользоватьНастройкиПодключенияВМоделиСервиса = ИспользоватьНастройкиПодключения; - - ЗаписьНастроек.Записать(); - - КонецЕсли; - + НачатьТранзакцию(); + + Попытка + БлокировкаДанных = Новый БлокировкаДанных; + ЭлементБлокировкиДанных = БлокировкаДанных.Добавить("РегистрСведений.ОбщиеНастройкиУзловИнформационныхБаз"); + ЭлементБлокировкиДанных.УстановитьЗначение("УзелИнформационнойБазы", Узел); + ЭлементБлокировкиДанных.Режим = РежимБлокировкиДанных.Исключительный; + БлокировкаДанных.Заблокировать(); + + ЗаписьНастроек = РегистрыСведений.ОбщиеНастройкиУзловИнформационныхБаз.СоздатьМенеджерЗаписи(); + ЗаписьНастроек.УзелИнформационнойБазы = Узел; + ЗаписьНастроек.Прочитать(); + + Если ЗаписьНастроек.ИспользоватьСценарииВМоделиСервиса <> ИспользоватьСценарии + Или ЗаписьНастроек.ИспользоватьНастройкиПодключенияВМоделиСервиса <> ИспользоватьНастройкиПодключения Тогда + + ЗаписьНастроек.ИспользоватьСценарииВМоделиСервиса = ИспользоватьСценарии; + ЗаписьНастроек.ИспользоватьНастройкиПодключенияВМоделиСервиса = ИспользоватьНастройкиПодключения; + + ЗаписьНастроек.Записать(); + + КонецЕсли; + + ЗафиксироватьТранзакцию(); + Исключение + ОтменитьТранзакцию(); + + СообщениеОбОшибке = ОбработкаОшибок.ПодробноеПредставлениеОшибки(ИнформацияОбОшибке()); + + Событие = НСтр("ru = 'Обмен данными.Установка функциональных опций'", ОбщегоНазначения.КодОсновногоЯзыка()); + + ЗаписьЖурналаРегистрации(Событие, УровеньЖурналаРегистрации.Ошибка, + Метаданные.РегистрыСведений.ОбщиеНастройкиУзловИнформационныхБаз, , СообщениеОбОшибке); + КонецПопытки; + Форма.УстановитьПараметрыФункциональныхОпцийФормы(Новый Структура("ОбщиеНастройкиУзлов", Узел)) КонецПроцедуры diff --git a/SSL/src/CommonModules/ОбменДаннымиВнутренняяПубликацияВызовСервера/Module.bsl b/SSL/src/CommonModules/ОбменДаннымиВнутренняяПубликацияВызовСервера/Module.bsl index d26713307..1f5fcc911 100644 --- a/SSL/src/CommonModules/ОбменДаннымиВнутренняяПубликацияВызовСервера/Module.bsl +++ b/SSL/src/CommonModules/ОбменДаннымиВнутренняяПубликацияВызовСервера/Module.bsl @@ -1,5 +1,5 @@ /////////////////////////////////////////////////////////////////////////////////////////////////////// -// Copyright (c) 2024, ООО 1С-Софт +// Copyright (c) 2025, ООО 1С-Софт // Все права защищены. Эта программа и сопроводительные материалы предоставляются // в соответствии с условиями лицензии Attribution 4.0 International (CC BY 4.0) // Текст лицензии доступен по ссылке: diff --git a/SSL/src/CommonModules/ОбменДаннымиВнутренняяПубликацияКлиент/Module.bsl b/SSL/src/CommonModules/ОбменДаннымиВнутренняяПубликацияКлиент/Module.bsl index b36cef2ef..716e23174 100644 --- a/SSL/src/CommonModules/ОбменДаннымиВнутренняяПубликацияКлиент/Module.bsl +++ b/SSL/src/CommonModules/ОбменДаннымиВнутренняяПубликацияКлиент/Module.bsl @@ -1,5 +1,5 @@ /////////////////////////////////////////////////////////////////////////////////////////////////////// -// Copyright (c) 2024, ООО 1С-Софт +// Copyright (c) 2025, ООО 1С-Софт // Все права защищены. Эта программа и сопроводительные материалы предоставляются // в соответствии с условиями лицензии Attribution 4.0 International (CC BY 4.0) // Текст лицензии доступен по ссылке: diff --git a/SSL/src/CommonModules/ОбменДаннымиВызовСервера/Module.bsl b/SSL/src/CommonModules/ОбменДаннымиВызовСервера/Module.bsl index 3b9c68c47..efae57695 100644 --- a/SSL/src/CommonModules/ОбменДаннымиВызовСервера/Module.bsl +++ b/SSL/src/CommonModules/ОбменДаннымиВызовСервера/Module.bsl @@ -1,5 +1,5 @@ /////////////////////////////////////////////////////////////////////////////////////////////////////// -// Copyright (c) 2024, ООО 1С-Софт +// Copyright (c) 2025, ООО 1С-Софт // Все права защищены. Эта программа и сопроводительные материалы предоставляются // в соответствии с условиями лицензии Attribution 4.0 International (CC BY 4.0) // Текст лицензии доступен по ссылке: @@ -139,8 +139,8 @@ // Возвращает признак того, что набор записей регистра по переданным значениям не содержит данных. // // Параметры: -// СтруктураЗаписи - Структура - Структура со значениями измерений переданного регистра. -// ИмяРегистра - Строка - Имя регистра сведений как объекта метаданных. +// СтруктураЗаписи - Структура - структура со значениями измерений переданного регистра. +// ИмяРегистра - Строка - имя регистра сведений как объекта метаданных. // // Возвращаемое значение: // Булево @@ -167,7 +167,7 @@ // // Параметры: // УзелИнформационнойБазы - ПланОбменаСсылка -// ДействиеПриОбменеСтрокой - Строка - Строковое представление перечисления ДействияПриОбмене +// ДействиеПриОбменеСтрокой - Строка - строковое представление перечисления ДействияПриОбмене // // Возвращаемое значение: // Строка @@ -185,7 +185,7 @@ // Параметры: // УзелИнформационнойБазы - ПланОбменаСсылка // ДействиеПриОбмене - ПеречислениеСсылка.ДействияПриОбмене -// - Строка - Строковое представление перечисления ДействияПриОбмене +// - Строка - строковое представление перечисления ДействияПриОбмене // // Возвращаемое значение: // Структура: @@ -232,8 +232,7 @@ Возврат ОбменДаннымиСервер.ВариантОбменаДанными(Корреспондент); КонецФункции -//////////////////////////////////////////////////////////////////////////////// -// Обмен данными под полными правами. +#Область ОбменДаннымиПодПолнымиПравами // Получает список метаданных объектов узла, для которых не разрешена выгрузка. // Выгрузка не разрешена, если в правилах регистрации объектов плана обмена таблица отмечена как НеВыгружать. @@ -347,7 +346,7 @@ // * НеобходимаДлительнаяОперация - Булево // * ЕстьАктивноеФоновоеЗадание - Булево // * АдресСтруктурыУзла - Неопределено -// - Строка - Адрес во временном хранилище +// - Строка - адрес во временном хранилище // Функция ПроверитьНеобходимостьОтложеннойЗаписиУзла(Знач УзелОбъект) Экспорт @@ -427,7 +426,8 @@ // Узел - ПланОбменаСсылка // // Возвращаемое значение: -// Булево - Узел входит в планы обмена БСД +// Булево - узел входит в планы обмена БСД +// Функция УзелВходитВПланыОбменаБСД(Узел) Экспорт ТипУзла = ТипЗнч(Узел); @@ -435,4 +435,6 @@ КонецФункции +#КонецОбласти + #КонецОбласти \ No newline at end of file diff --git a/SSL/src/CommonModules/ОбменДаннымиГлобальный/Module.bsl b/SSL/src/CommonModules/ОбменДаннымиГлобальный/Module.bsl index 874f07237..1228682cd 100644 --- a/SSL/src/CommonModules/ОбменДаннымиГлобальный/Module.bsl +++ b/SSL/src/CommonModules/ОбменДаннымиГлобальный/Module.bsl @@ -1,5 +1,5 @@ /////////////////////////////////////////////////////////////////////////////////////////////////////// -// Copyright (c) 2024, ООО 1С-Софт +// Copyright (c) 2025, ООО 1С-Софт // Все права защищены. Эта программа и сопроводительные материалы предоставляются // в соответствии с условиями лицензии Attribution 4.0 International (CC BY 4.0) // Текст лицензии доступен по ссылке: diff --git a/SSL/src/CommonModules/ОбменДаннымиКлиент/Module.bsl b/SSL/src/CommonModules/ОбменДаннымиКлиент/Module.bsl index c0d47e46b..3c3332c6e 100644 --- a/SSL/src/CommonModules/ОбменДаннымиКлиент/Module.bsl +++ b/SSL/src/CommonModules/ОбменДаннымиКлиент/Module.bsl @@ -1,5 +1,5 @@ /////////////////////////////////////////////////////////////////////////////////////////////////////// -// Copyright (c) 2024, ООО 1С-Софт +// Copyright (c) 2025, ООО 1С-Софт // Все права защищены. Эта программа и сопроводительные материалы предоставляются // в соответствии с условиями лицензии Attribution 4.0 International (CC BY 4.0) // Текст лицензии доступен по ссылке: @@ -411,7 +411,7 @@ // Открывает форму монитора зарегистрированных к отправке данных. // // Параметры: -// УзелИнформационнойБазы - ПланОбменаССылка - +// УзелИнформационнойБазы - ПланОбменаСсылка // Процедура ОткрытьСоставОтправляемыхДанных(Знач УзелИнформационнойБазы) Экспорт @@ -442,7 +442,7 @@ // Процедура ОткрытьПомощникНастройкиОбменаДанными(Знач ИмяПланаОбмена, Знач ИдентификаторНастройки) Экспорт - // Процедура не используется, так как для настроки синхронизации больше не используется форма НастройкаПодключения + // Процедура не используется, так как для настройки синхронизации больше не используется форма НастройкаПодключения КонецПроцедуры @@ -456,9 +456,9 @@ // обмена. // // Параметры: -// УзелИнформационнойБазы - ПланОбменаСсылка - -// Владелец - ОбъектМетаданных - -// ДействиеПриОбмене - ПеречислениеСсылка.ДействияПриОбмене - +// УзелИнформационнойБазы - ПланОбменаСсылка +// Владелец - ОбъектМетаданных +// ДействиеПриОбмене - ПеречислениеСсылка.ДействияПриОбмене // Процедура ПерейтиВЖурналРегистрацииСобытийДанныхМодально(УзелИнформационнойБазы, Владелец, ДействиеПриОбмене) Экспорт @@ -483,7 +483,7 @@ // Обновляет конфигурацию базы данных. // // Параметры: -// ЗавершениеРаботыСистемы - Булево - +// ЗавершениеРаботыСистемы - Булево // Процедура УстановитьОбновлениеКонфигурации(ЗавершениеРаботыСистемы = Ложь) Экспорт @@ -497,8 +497,8 @@ КонецПроцедуры -//////////////////////////////////////////////////////////////////////////////// -// Обработчики событий подсистем конфигурации. + +#Область ОбработчикиСобытийПодсистемКонфигурации // См. ОбщегоНазначенияКлиентПереопределяемый.ПередНачаломРаботыСистемы. Процедура ПередНачаломРаботыСистемы(Параметры) Экспорт @@ -790,10 +790,11 @@ #КонецОбласти +#КонецОбласти + #Область СлужебныеПроцедурыИФункции -//////////////////////////////////////////////////////////////////////////////// -// Экспортные служебные функции-свойства. +#Область ЭкспортныеСлужебныеФункцииСвойства // Возвращает максимально допустимое количество полей, // которые отображаются в помощнике сопоставления объектов ИБ. @@ -931,8 +932,9 @@ КонецПроцедуры -//////////////////////////////////////////////////////////////////////////////// -// Экспортные служебные процедуры и функции. +#КонецОбласти + +#Область ЭкспортныеСлужебныеПроцедурыИФункции // Только для внутреннего использования. // @@ -1262,8 +1264,9 @@ КонецПроцедуры -//////////////////////////////////////////////////////////////////////////////// -// Локальные служебные процедуры и функции. +#КонецОбласти + +#Область ЛокальныеСлужебныеПроцедурыИФункции Процедура ПриЗакрытииФормыНастройкиУзлаПланаОбмена(Форма, ИмяРеквизитаФормы) @@ -1302,9 +1305,9 @@ КонецПроцедуры -//////////////////////////////////////////////////////////////////////////////////////////////////////////////////////// -// СЛУЖЕБНЫЙ ПРОГРАММНЫЙ ИНТЕРФЕЙС ИНТЕРАКТИВНОГО ДОПОЛНЕНИЯ ВЫГРУЗКИ -// +#КонецОбласти + +#Область СлужебныйПрограммныйИнтерфейсИнтерактивногоДополненияВыгрузки // Обработка диалогов интерактивного дополнения. // @@ -1553,9 +1556,9 @@ КонецПроцедуры -//////////////////////////////////////////////////////////////////////////////////////////////////////////////////////// -// СЛУЖЕБНЫЕ ПРОЦЕДУРЫ И ФУНКЦИИ ИНТЕРАКТИВНОГО ДОПОЛНЕНИЯ ВЫГРУЗКИ -// +#КонецОбласти + +#Область СлужебныеПроцедурыИФункцииИнтерактивногоДополненияВыгрузки Функция ДополнениеВыгрузкиОбработкаВыбораТиповогоВарианта(Знач ВыбранноеЗначение, ДополнениеВыгрузки) @@ -1607,3 +1610,5 @@ КонецФункции #КонецОбласти + +#КонецОбласти \ No newline at end of file diff --git a/SSL/src/CommonModules/ОбменДаннымиКонтрольЗацикливания/Module.bsl b/SSL/src/CommonModules/ОбменДаннымиКонтрольЗацикливания/Module.bsl index 8530f5281..9ae278cff 100644 --- a/SSL/src/CommonModules/ОбменДаннымиКонтрольЗацикливания/Module.bsl +++ b/SSL/src/CommonModules/ОбменДаннымиКонтрольЗацикливания/Module.bsl @@ -1,5 +1,5 @@ /////////////////////////////////////////////////////////////////////////////////////////////////////// -// Copyright (c) 2024, ООО 1С-Софт +// Copyright (c) 2025, ООО 1С-Софт // Все права защищены. Эта программа и сопроводительные материалы предоставляются // в соответствии с условиями лицензии Attribution 4.0 International (CC BY 4.0) // Текст лицензии доступен по ссылке: @@ -227,17 +227,39 @@ Пока Выборка.Следующий() Цикл Если Выборка.ОбновитьРеквизиты Тогда - - Запись = РегистрыСведений.КонтурСинхронизации.СоздатьМенеджерЗаписи(); - ЗаполнитьЗначенияСвойств(Запись, Выборка); - Запись.Прочитать(); - Запись.КодУзла = ЭтотУзел.Код; - Запись.ИмяУзла = ЭтотУзел.Наименование; - Запись.КодУзлаКорреспондента = Выборка.Код; - Запись.ИмяУзлаКорреспондента = Выборка.Наименование; - Запись.ПоследнееОбновление = УниверсальноеВремя(ТекущаяДатаСеанса()); - Запись.Префикс = Префикс; - Запись.Записать(); + НачатьТранзакцию(); + + Попытка + БлокировкаДанных = Новый БлокировкаДанных; + ЭлементБлокировкиДанных = БлокировкаДанных.Добавить("РегистрСведений.КонтурСинхронизации"); + ЭлементБлокировкиДанных.УстановитьЗначение("УзелИнформационнойБазы", Выборка.УзелИнформационнойБазы); + ЭлементБлокировкиДанных.УстановитьЗначение("КодУзла", Выборка.КодУзла); + ЭлементБлокировкиДанных.УстановитьЗначение("КодУзлаКорреспондента", Выборка.КодУзлаКорреспондента); + ЭлементБлокировкиДанных.Режим = РежимБлокировкиДанных.Исключительный; + БлокировкаДанных.Заблокировать(); + + Запись = РегистрыСведений.КонтурСинхронизации.СоздатьМенеджерЗаписи(); + ЗаполнитьЗначенияСвойств(Запись, Выборка); + Запись.Прочитать(); + Запись.КодУзла = ЭтотУзел.Код; + Запись.ИмяУзла = ЭтотУзел.Наименование; + Запись.КодУзлаКорреспондента = Выборка.Код; + Запись.ИмяУзлаКорреспондента = Выборка.Наименование; + Запись.ПоследнееОбновление = УниверсальноеВремя(ТекущаяДатаСеанса()); + Запись.Префикс = Префикс; + Запись.Записать(); + + ЗафиксироватьТранзакцию(); + Исключение + ОтменитьТранзакцию(); + + СообщениеОбОшибке = ОбработкаОшибок.ПодробноеПредставлениеОшибки(ИнформацияОбОшибке()); + + Событие = НСтр("ru = 'Контроль зацикливания.Обновление реквизитов записи контура синхронизации'", ОбщегоНазначения.КодОсновногоЯзыка()); + + ЗаписьЖурналаРегистрации(Событие, УровеньЖурналаРегистрации.Ошибка, + Метаданные.РегистрыСведений.КонтурСинхронизации, , СообщениеОбОшибке); + КонецПопытки; ИначеЕсли Выборка.ДобавитьУзелВКонтур Тогда @@ -249,24 +271,70 @@ Запись.ИмяУзлаКорреспондента = Выборка.Наименование; Запись.ПоследнееОбновление = УниверсальноеВремя(ТекущаяДатаСеанса()); Запись.Префикс = Префикс; - Запись.Записать(); + Запись.Записать(); ИначеЕсли Выборка.УдалитьУзелИзКонтура Тогда - Запись = РегистрыСведений.КонтурСинхронизации.СоздатьМенеджерЗаписи(); - ЗаполнитьЗначенияСвойств(Запись, Выборка); - Запись.Прочитать(); - Запись.Удалить(); - - УдалитьКоррУзел(Выборка.КодУзла, Выборка.КодУзлаКорреспондента); + НачатьТранзакцию(); + + Попытка + БлокировкаДанных = Новый БлокировкаДанных; + ЭлементБлокировкиДанных = БлокировкаДанных.Добавить("РегистрСведений.КонтурСинхронизации"); + ЭлементБлокировкиДанных.УстановитьЗначение("УзелИнформационнойБазы", Выборка.УзелИнформационнойБазы); + ЭлементБлокировкиДанных.УстановитьЗначение("КодУзла", Выборка.КодУзла); + ЭлементБлокировкиДанных.УстановитьЗначение("КодУзлаКорреспондента", Выборка.КодУзлаКорреспондента); + ЭлементБлокировкиДанных.Режим = РежимБлокировкиДанных.Исключительный; + БлокировкаДанных.Заблокировать(); + + Запись = РегистрыСведений.КонтурСинхронизации.СоздатьМенеджерЗаписи(); + ЗаполнитьЗначенияСвойств(Запись, Выборка); + Запись.Прочитать(); + Запись.Удалить(); + + УдалитьКоррУзел(Выборка.КодУзла, Выборка.КодУзлаКорреспондента); + + ЗафиксироватьТранзакцию(); + Исключение + ОтменитьТранзакцию(); + + СообщениеОбОшибке = ОбработкаОшибок.ПодробноеПредставлениеОшибки(ИнформацияОбОшибке()); + + Событие = НСтр("ru = 'Контроль зацикливания.Удаление записи контура синхронизации'", ОбщегоНазначения.КодОсновногоЯзыка()); + + ЗаписьЖурналаРегистрации(Событие, УровеньЖурналаРегистрации.Ошибка, + Метаданные.РегистрыСведений.КонтурСинхронизации, , СообщениеОбОшибке); + КонецПопытки; ИначеЕсли Выборка.УстановитьПоследнееОбновление Тогда - Запись = РегистрыСведений.КонтурСинхронизации.СоздатьМенеджерЗаписи(); - ЗаполнитьЗначенияСвойств(Запись, Выборка); - Запись.Прочитать(); - Запись.ПоследнееОбновление = УниверсальноеВремя(ТекущаяДатаСеанса()); - Запись.Записать(); + НачатьТранзакцию(); + + Попытка + БлокировкаДанных = Новый БлокировкаДанных; + ЭлементБлокировкиДанных = БлокировкаДанных.Добавить("РегистрСведений.КонтурСинхронизации"); + ЭлементБлокировкиДанных.УстановитьЗначение("УзелИнформационнойБазы", Выборка.УзелИнформационнойБазы); + ЭлементБлокировкиДанных.УстановитьЗначение("КодУзла", Выборка.КодУзла); + ЭлементБлокировкиДанных.УстановитьЗначение("КодУзлаКорреспондента", Выборка.КодУзлаКорреспондента); + ЭлементБлокировкиДанных.Режим = РежимБлокировкиДанных.Исключительный; + БлокировкаДанных.Заблокировать(); + + Запись = РегистрыСведений.КонтурСинхронизации.СоздатьМенеджерЗаписи(); + ЗаполнитьЗначенияСвойств(Запись, Выборка); + Запись.Прочитать(); + Запись.ПоследнееОбновление = УниверсальноеВремя(ТекущаяДатаСеанса()); + Запись.Записать(); + + ЗафиксироватьТранзакцию(); + Исключение + ОтменитьТранзакцию(); + + СообщениеОбОшибке = ОбработкаОшибок.ПодробноеПредставлениеОшибки(ИнформацияОбОшибке()); + + Событие = НСтр("ru = 'Контроль зацикливания.Очистка устаревшей версии'", ОбщегоНазначения.КодОсновногоЯзыка()); + + ЗаписьЖурналаРегистрации(Событие, УровеньЖурналаРегистрации.Ошибка, + Метаданные.РегистрыСведений.КонтурСинхронизации, , СообщениеОбОшибке); + КонецПопытки; КонецЕсли; @@ -618,12 +686,35 @@ Для Каждого КоррУзелКонтура Из УзлыКонтура[0].Строки Цикл - Запись = РегистрыСведений.КонтурСинхронизации.СоздатьМенеджерЗаписи(); - Запись.УзелИнформационнойБазы = Неопределено; - Запись.КодУзла = КоррУзелКонтура.КодУзла; - Запись.КодУзлаКорреспондента = КоррУзелКонтура.КодУзлаКорреспондента; - Запись.Прочитать(); - Запись.Удалить(); + НачатьТранзакцию(); + + Попытка + БлокировкаДанных = Новый БлокировкаДанных; + ЭлементБлокировкиДанных = БлокировкаДанных.Добавить("РегистрСведений.КонтурСинхронизации"); + ЭлементБлокировкиДанных.УстановитьЗначение("УзелИнформационнойБазы", Неопределено); + ЭлементБлокировкиДанных.УстановитьЗначение("КодУзла", КоррУзелКонтура.КодУзла); + ЭлементБлокировкиДанных.УстановитьЗначение("КодУзлаКорреспондента", КоррУзелКонтура.КодУзлаКорреспондента); + ЭлементБлокировкиДанных.Режим = РежимБлокировкиДанных.Исключительный; + БлокировкаДанных.Заблокировать(); + + Запись = РегистрыСведений.КонтурСинхронизации.СоздатьМенеджерЗаписи(); + Запись.УзелИнформационнойБазы = Неопределено; + Запись.КодУзла = КоррУзелКонтура.КодУзла; + Запись.КодУзлаКорреспондента = КоррУзелКонтура.КодУзлаКорреспондента; + Запись.Прочитать(); + Запись.Удалить(); + + ЗафиксироватьТранзакцию(); + Исключение + ОтменитьТранзакцию(); + + СообщениеОбОшибке = ОбработкаОшибок.ПодробноеПредставлениеОшибки(ИнформацияОбОшибке()); + + Событие = НСтр("ru = 'Контроль зацикливания.Обновление контура синхронизации'", ОбщегоНазначения.КодОсновногоЯзыка()); + + ЗаписьЖурналаРегистрации(Событие, УровеньЖурналаРегистрации.Ошибка, + Метаданные.РегистрыСведений.КонтурСинхронизации, , СообщениеОбОшибке); + КонецПопытки; КонецЦикла; @@ -657,28 +748,50 @@ Процедура ЗаменитьПрефиксы() Запрос = Новый Запрос; - Запрос.Текст = - "ВЫБРАТЬ РАЗЛИЧНЫЕ - | Контур1.УзелИнформационнойБазы КАК УзелИнформационнойБазы, - | Контур1.КодУзла КАК КодУзла, - | Контур1.КодУзлаКорреспондента КАК КодУзлаКорреспондента, - | Контур2.КодУзла КАК НовыйКодУзлаКорреспондента - |ИЗ - | РегистрСведений.КонтурСинхронизации КАК Контур1 - | ВНУТРЕННЕЕ СОЕДИНЕНИЕ РегистрСведений.КонтурСинхронизации КАК Контур2 - | ПО Контур1.КодУзлаКорреспондента = Контур2.Префикс"; - + Запрос.Текст = + "ВЫБРАТЬ РАЗЛИЧНЫЕ + | Контур1.УзелИнформационнойБазы КАК УзелИнформационнойБазы, + | Контур1.КодУзла КАК КодУзла, + | Контур1.КодУзлаКорреспондента КАК КодУзлаКорреспондента, + | Контур2.КодУзла КАК НовыйКодУзлаКорреспондента + |ИЗ + | РегистрСведений.КонтурСинхронизации КАК Контур1 + | ВНУТРЕННЕЕ СОЕДИНЕНИЕ РегистрСведений.КонтурСинхронизации КАК Контур2 + | ПО Контур1.КодУзлаКорреспондента = Контур2.Префикс"; + Выборка = Запрос.Выполнить().Выбрать(); - + Пока Выборка.Следующий() Цикл - - Запись = РегистрыСведений.КонтурСинхронизации.СоздатьМенеджерЗаписи(); - ЗаполнитьЗначенияСвойств(Запись, Выборка); - Запись.Прочитать(); - Запись.КодУзлаКорреспондента = Выборка.НовыйКодУзлаКорреспондента; - Запись.ПоследнееОбновление = УниверсальноеВремя(ТекущаяДатаСеанса()); - Запись.Записать(); - + НачатьТранзакцию(); + + Попытка + БлокировкаДанных = Новый БлокировкаДанных; + ЭлементБлокировкиДанных = БлокировкаДанных.Добавить("РегистрСведений.КонтурСинхронизации"); + ЭлементБлокировкиДанных.УстановитьЗначение("УзелИнформационнойБазы", Выборка.УзелИнформационнойБазы); + ЭлементБлокировкиДанных.УстановитьЗначение("КодУзла", Выборка.КодУзла); + ЭлементБлокировкиДанных.УстановитьЗначение("КодУзлаКорреспондента", Выборка.КодУзлаКорреспондента); + ЭлементБлокировкиДанных.Режим = РежимБлокировкиДанных.Исключительный; + БлокировкаДанных.Заблокировать(); + + Запись = РегистрыСведений.КонтурСинхронизации.СоздатьМенеджерЗаписи(); + ЗаполнитьЗначенияСвойств(Запись, Выборка); + Запись.Прочитать(); + Запись.КодУзлаКорреспондента = Выборка.НовыйКодУзлаКорреспондента; + Запись.ПоследнееОбновление = УниверсальноеВремя(ТекущаяДатаСеанса()); + Запись.Записать(); + + ЗафиксироватьТранзакцию(); + Исключение + ОтменитьТранзакцию(); + + СообщениеОбОшибке = ОбработкаОшибок.ПодробноеПредставлениеОшибки(ИнформацияОбОшибке()); + + Событие = НСтр("ru = 'Контроль зацикливания.Замена префиксов'", ОбщегоНазначения.КодОсновногоЯзыка()); + + ЗаписьЖурналаРегистрации(Событие, УровеньЖурналаРегистрации.Ошибка, + Метаданные.РегистрыСведений.КонтурСинхронизации, , СообщениеОбОшибке); + КонецПопытки; + КонецЦикла; КонецПроцедуры @@ -703,12 +816,35 @@ Пока Выборка.Следующий() Цикл - Запись = РегистрыСведений.КонтурСинхронизации.СоздатьМенеджерЗаписи(); - ЗаполнитьЗначенияСвойств(Запись, Выборка); - Запись.Прочитать(); - Запись.Зацикливание = Истина; - Запись.ПоследнееОбновление = УниверсальноеВремя(ТекущаяДатаСеанса()); - Запись.Записать(); + НачатьТранзакцию(); + + Попытка + БлокировкаДанных = Новый БлокировкаДанных; + ЭлементБлокировкиДанных = БлокировкаДанных.Добавить("РегистрСведений.КонтурСинхронизации"); + ЭлементБлокировкиДанных.УстановитьЗначение("УзелИнформационнойБазы", Выборка.УзелИнформационнойБазы); + ЭлементБлокировкиДанных.УстановитьЗначение("КодУзла", Выборка.КодУзла); + ЭлементБлокировкиДанных.УстановитьЗначение("КодУзлаКорреспондента", Выборка.КодУзлаКорреспондента); + ЭлементБлокировкиДанных.Режим = РежимБлокировкиДанных.Исключительный; + БлокировкаДанных.Заблокировать(); + + Запись = РегистрыСведений.КонтурСинхронизации.СоздатьМенеджерЗаписи(); + ЗаполнитьЗначенияСвойств(Запись, Выборка); + Запись.Прочитать(); + Запись.Зацикливание = Истина; + Запись.ПоследнееОбновление = УниверсальноеВремя(ТекущаяДатаСеанса()); + Запись.Записать(); + + ЗафиксироватьТранзакцию(); + Исключение + ОтменитьТранзакцию(); + + СообщениеОбОшибке = ОбработкаОшибок.ПодробноеПредставлениеОшибки(ИнформацияОбОшибке()); + + Событие = НСтр("ru = 'Контроль зацикливания.Изменение признака зацикливание'", ОбщегоНазначения.КодОсновногоЯзыка()); + + ЗаписьЖурналаРегистрации(Событие, УровеньЖурналаРегистрации.Ошибка, + Метаданные.РегистрыСведений.КонтурСинхронизации, , СообщениеОбОшибке); + КонецПопытки; РегистрыСведений.ОбщиеНастройкиУзловИнформационныхБаз.УстановитьЗацикливание(Выборка.УзелИнформационнойБазы, Истина); @@ -733,12 +869,35 @@ Пока Выборка.Следующий() Цикл - Запись = РегистрыСведений.КонтурСинхронизации.СоздатьМенеджерЗаписи(); - ЗаполнитьЗначенияСвойств(Запись, Выборка); - Запись.Прочитать(); - Запись.Зацикливание = Ложь; - Запись.ПоследнееОбновление = УниверсальноеВремя(ТекущаяДатаСеанса()); - Запись.Записать(); + НачатьТранзакцию(); + + Попытка + БлокировкаДанных = Новый БлокировкаДанных; + ЭлементБлокировкиДанных = БлокировкаДанных.Добавить("РегистрСведений.КонтурСинхронизации"); + ЭлементБлокировкиДанных.УстановитьЗначение("УзелИнформационнойБазы", Выборка.УзелИнформационнойБазы); + ЭлементБлокировкиДанных.УстановитьЗначение("КодУзла", Выборка.КодУзла); + ЭлементБлокировкиДанных.УстановитьЗначение("КодУзлаКорреспондента", Выборка.КодУзлаКорреспондента); + ЭлементБлокировкиДанных.Режим = РежимБлокировкиДанных.Исключительный; + БлокировкаДанных.Заблокировать(); + + Запись = РегистрыСведений.КонтурСинхронизации.СоздатьМенеджерЗаписи(); + ЗаполнитьЗначенияСвойств(Запись, Выборка); + Запись.Прочитать(); + Запись.Зацикливание = Ложь; + Запись.ПоследнееОбновление = УниверсальноеВремя(ТекущаяДатаСеанса()); + Запись.Записать(); + + ЗафиксироватьТранзакцию(); + Исключение + ОтменитьТранзакцию(); + + СообщениеОбОшибке = ОбработкаОшибок.ПодробноеПредставлениеОшибки(ИнформацияОбОшибке()); + + Событие = НСтр("ru = 'Контроль зацикливания.Изменение признака зацикливания'", ОбщегоНазначения.КодОсновногоЯзыка()); + + ЗаписьЖурналаРегистрации(Событие, УровеньЖурналаРегистрации.Ошибка, + Метаданные.РегистрыСведений.КонтурСинхронизации, , СообщениеОбОшибке); + КонецПопытки; РегистрыСведений.ОбщиеНастройкиУзловИнформационныхБаз.УстановитьЗацикливание(Выборка.УзелИнформационнойБазы, Ложь, Ложь); @@ -768,10 +927,35 @@ Выборка = Запрос.Выполнить().Выбрать(); Пока Выборка.Следующий() Цикл - Запись = РегистрыСведений.КонтурСинхронизации.СоздатьМенеджерЗаписи(); - ЗаполнитьЗначенияСвойств(Запись, Выборка); - Запись.Прочитать(); - Запись.Удалить(); + + НачатьТранзакцию(); + + Попытка + БлокировкаДанных = Новый БлокировкаДанных; + ЭлементБлокировкиДанных = БлокировкаДанных.Добавить("РегистрСведений.КонтурСинхронизации"); + ЭлементБлокировкиДанных.УстановитьЗначение("УзелИнформационнойБазы", Выборка.УзелИнформационнойБазы); + ЭлементБлокировкиДанных.УстановитьЗначение("КодУзла", Выборка.КодУзла); + ЭлементБлокировкиДанных.УстановитьЗначение("КодУзлаКорреспондента", Выборка.КодУзлаКорреспондента); + ЭлементБлокировкиДанных.Режим = РежимБлокировкиДанных.Исключительный; + БлокировкаДанных.Заблокировать(); + + Запись = РегистрыСведений.КонтурСинхронизации.СоздатьМенеджерЗаписи(); + ЗаполнитьЗначенияСвойств(Запись, Выборка); + Запись.Прочитать(); + Запись.Удалить(); + + ЗафиксироватьТранзакцию(); + Исключение + ОтменитьТранзакцию(); + + СообщениеОбОшибке = ОбработкаОшибок.ПодробноеПредставлениеОшибки(ИнформацияОбОшибке()); + + Событие = НСтр("ru = 'Контроль зацикливания.Удаление записи'", ОбщегоНазначения.КодОсновногоЯзыка()); + + ЗаписьЖурналаРегистрации(Событие, УровеньЖурналаРегистрации.Ошибка, + Метаданные.РегистрыСведений.КонтурСинхронизации, , СообщениеОбОшибке); + КонецПопытки; + КонецЦикла; КонецПроцедуры diff --git a/SSL/src/CommonModules/ОбменДаннымиОперацииВебСервисов/Module.bsl b/SSL/src/CommonModules/ОбменДаннымиОперацииВебСервисов/Module.bsl index 762e0e77e..a28f506bc 100644 --- a/SSL/src/CommonModules/ОбменДаннымиОперацииВебСервисов/Module.bsl +++ b/SSL/src/CommonModules/ОбменДаннымиОперацииВебСервисов/Module.bsl @@ -1,5 +1,5 @@ /////////////////////////////////////////////////////////////////////////////////////////////////////// -// Copyright (c) 2024, ООО 1С-Софт +// Copyright (c) 2025, ООО 1С-Софт // Все права защищены. Эта программа и сопроводительные материалы предоставляются // в соответствии с условиями лицензии Attribution 4.0 International (CC BY 4.0) // Текст лицензии доступен по ссылке: @@ -606,7 +606,13 @@ МодульОбменДаннымиВнутренняяПубликация = ОбщегоНазначения.ОбщийМодуль("ОбменДаннымиВнутренняяПубликация"); МодульОбменДаннымиВнутренняяПубликация.ОтметитьВыполнениеЗадачи(ИдентификаторЗадачи, Ошибка); - Если Ошибка = "" Тогда + ВключенПризнакОтменаПовторногоВыполненияЗадания = СтрНайти(Ошибка, МодульОбменДаннымиВнутренняяПубликация.ПризнакОтменыПовторногоВыполненияЗадания()) > 0; + + Если Ошибка = "" Или ВключенПризнакОтменаПовторногоВыполненияЗадания Тогда + + Если ВключенПризнакОтменаПовторногоВыполненияЗадания Тогда + Ошибка = СтрЗаменить(Ошибка, МодульОбменДаннымиВнутренняяПубликация.ПризнакОтменыПовторногоВыполненияЗадания() + ":", ""); + КонецЕсли; Задача = МодульОбменДаннымиВнутренняяПубликация.СледующаяЗадача(ИдентификаторЗадачи); ЗадачаПред = ИдентификаторЗадачи; @@ -626,7 +632,6 @@ ПараметрыЗадания.Вставить("ИмяМетода" , "ОбменДаннымиВнутренняяПубликация.ВыполнитьОчередьЗадач"); ПараметрыЗадания.Вставить("ОбластьДанных", Область); ПараметрыЗадания.Вставить("Использование", Истина); - ПараметрыЗадания.Вставить("ЗапланированныйМоментЗапуска", ТекущаяДатаСеанса()); ПараметрыЗадания.Вставить("Параметры", ПараметрыПроцедуры); ПараметрыЗадания.Вставить("КоличествоПовторовПриАварийномЗавершении", 3); ПараметрыЗадания.Вставить("ИнтервалПовтораПриАварийномЗавершении", 900); diff --git a/SSL/src/CommonModules/ОбменДаннымиОценкаПроизводительности/Module.bsl b/SSL/src/CommonModules/ОбменДаннымиОценкаПроизводительности/Module.bsl index d09345303..0ff58a1d3 100644 --- a/SSL/src/CommonModules/ОбменДаннымиОценкаПроизводительности/Module.bsl +++ b/SSL/src/CommonModules/ОбменДаннымиОценкаПроизводительности/Module.bsl @@ -1,5 +1,5 @@ /////////////////////////////////////////////////////////////////////////////////////////////////////// -// Copyright (c) 2024, ООО 1С-Софт +// Copyright (c) 2025, ООО 1С-Софт // Все права защищены. Эта программа и сопроводительные материалы предоставляются // в соответствии с условиями лицензии Attribution 4.0 International (CC BY 4.0) // Текст лицензии доступен по ссылке: diff --git a/SSL/src/CommonModules/ОбменДаннымиПереопределяемый/Module.bsl b/SSL/src/CommonModules/ОбменДаннымиПереопределяемый/Module.bsl index 42ec120f3..3046223b8 100644 --- a/SSL/src/CommonModules/ОбменДаннымиПереопределяемый/Module.bsl +++ b/SSL/src/CommonModules/ОбменДаннымиПереопределяемый/Module.bsl @@ -1,5 +1,5 @@ /////////////////////////////////////////////////////////////////////////////////////////////////////// -// Copyright (c) 2024, ООО 1С-Софт +// Copyright (c) 2025, ООО 1С-Софт // Все права защищены. Эта программа и сопроводительные материалы предоставляются // в соответствии с условиями лицензии Attribution 4.0 International (CC BY 4.0) // Текст лицензии доступен по ссылке: @@ -282,7 +282,7 @@ // Параметры: // ИмяПланаОбмена - Строка - имя плана обмена корреспондирующей базы, // для которого подбираем соответствие из метаданных конфигурации. -// ИдентификаторНастройки- Строка - идентификатор варианта настройки (ВариантНастройки), корреспондирующей базы. +// ИдентификаторНастройки - Строка - идентификатор варианта настройки (ВариантНастройки), корреспондирующей базы. // НайденноеИмяПланаОбмена - Строка - если информационная база уже содержит план обмена с именем ИмяПланаОбмена, // то параметр будет равен ИмяПланаОбмена. // Иначе параметр будет содержать имя Глобального плана обмена. @@ -315,6 +315,17 @@ КонецПроцедуры +// Определяет завершена ли настройка синхронизации. +// Параметры: +// +// СтандартнаяОбработка - Булево - в данный параметр передается признак выполнения +// НастройкаЗавершена - Булево - Истина, настройка синхронизации завершена. +// УзелОбмена - ПланОбменаОбъект - узел плана обмена, для которого требуется определить завершена ли настройка. +// +Процедура ПриОпределенииПризнакаОЗавершенииНастройкиСинхронизации(СтандартнаяОбработка, НастройкаЗавершена, УзелОбмена = Неопределено) Экспорт + +КонецПроцедуры + #Область УстаревшиеПроцедурыИФункции // Устарела. В процедуре нет необходимости. Теперь для поиска плана обмена используется параметр Глобальный diff --git a/SSL/src/CommonModules/ОбменДаннымиПовтИсп/Module.bsl b/SSL/src/CommonModules/ОбменДаннымиПовтИсп/Module.bsl index 51cc36d6d..10d11d68c 100644 --- a/SSL/src/CommonModules/ОбменДаннымиПовтИсп/Module.bsl +++ b/SSL/src/CommonModules/ОбменДаннымиПовтИсп/Module.bsl @@ -1,5 +1,5 @@ /////////////////////////////////////////////////////////////////////////////////////////////////////// -// Copyright (c) 2024, ООО 1С-Софт +// Copyright (c) 2025, ООО 1С-Софт // Все права защищены. Эта программа и сопроводительные материалы предоставляются // в соответствии с условиями лицензии Attribution 4.0 International (CC BY 4.0) // Текст лицензии доступен по ссылке: @@ -26,8 +26,8 @@ // См. ОбменДаннымиСервер.УзелПланаОбменаПоКоду. // // Параметры: -// ИмяПланаОбмена - Строка - Имя плана обмена -// КодУзла - Строка - Код узла +// ИмяПланаОбмена - Строка - имя плана обмена +// КодУзла - Строка - код узла // // Возвращаемое значение: // см. ОбменДаннымиСервер.УзелПланаОбменаПоКоду @@ -163,8 +163,8 @@ Возврат ОбменДаннымиСервер.ОписаниеВариантаНастройки(ИмяПланаОбмена, ИдентификаторНастройки, ВерсияКорреспондента, ИмяКорреспондента); КонецФункции -//////////////////////////////////////////////////////////////////////////////// -// Механизм регистрации объектов на узлах планов обмена (МРО). + +#Область МеханизмРегистрацииОбъектовНаУзлахПлановОбменаМРО // Получает имя этой информационной базы из константы или из синонима конфигурации. // (Только для внутреннего использования). @@ -628,7 +628,7 @@ // базе-корреспонденту. // // Возвращаемое значение: -// Массив Из Строка - Массив номеров версий, поддерживаемых интерфейсом корреспондента. +// Массив из Строка - массив номеров версий, поддерживаемых интерфейсом корреспондента. // Функция ВерсииКорреспондента(Знач Корреспондент) Экспорт @@ -689,7 +689,7 @@ // ИмяПланаОбмена - Строка - имя плана обмена как оно задано в конфигураторе. // // Возвращаемое значение: -// Массив Из ПланОбменаСсылка - массив всех узлов для заданного плана обмена кроме предопределенного узла. +// Массив из ПланОбменаСсылка - массив всех узлов для заданного плана обмена кроме предопределенного узла. // Функция УзлыПланаОбмена(ИмяПланаОбмена) Экспорт @@ -711,10 +711,11 @@ #КонецОбласти +#КонецОбласти + #Область СлужебныеПроцедурыИФункции -//////////////////////////////////////////////////////////////////////////////// -// Механизм регистрации объектов на узлах планов обмена (МРО). +#Область МеханизмРегистрацииОбъектовНаУзлахПлановОбменаМРО // Получает таблицу правил регистрации объектов для плана обмена. // @@ -1024,7 +1025,7 @@ // Список заполняется именами и синонимами планов обмена. // // Возвращаемое значение: -// СписокЗначений Из Строка - список планов обмена конфигурации. +// СписокЗначений из Строка - список планов обмена конфигурации. // Функция СписокПлановОбменаБСП() Экспорт @@ -1064,12 +1065,12 @@ // Для внутреннего использования. // // Параметры: -// ИмяПланаОбмена - Строка - Имя плана обмена как оно задано в конфигураторе +// ИмяПланаОбмена - Строка - имя плана обмена как оно задано в конфигураторе // ВерсияКорреспондента - Строка // ИдентификаторНастройки - Строка // // Возвращаемое значение: -// Структура - Табличные части плана обмена: +// Структура - табличные части плана обмена: // * ТаблицыОбщие - Массив из Строка // * ТаблицыЭтойБазы - Массив из Строка // * ВсеТаблицыЭтойБазы - Массив из Строка @@ -1208,9 +1209,9 @@ // Функция-обертка одноименной функции модуля ОбменДаннымиСобытия. // // Параметры: -// ЗначенияСвойств - Структура - Структура, содержащая значения свойств объекта из правил -// ТекстЗапроса - Строка - Текст запроса из правил -// ИмяПланаОбмена - Строка - Имя плана обмена как оно задано в конфигураторе +// ЗначенияСвойств - Структура - структура, содержащая значения свойств объекта из правил +// ТекстЗапроса - Строка - текст запроса из правил +// ИмяПланаОбмена - Строка - имя плана обмена как оно задано в конфигураторе // ИмяРеквизитаФлага - Строка // Выгрузка - Булево // @@ -1278,7 +1279,7 @@ // Возвращает массив всех ссылочных типов, определенных в конфигурации. // // Возвращаемое значение: -// Массив из Тип - Все ссылочные типы конфигурации +// Массив из Тип - все ссылочные типы конфигурации // Функция ВсеСсылочныеТипыКонфигурации() Экспорт @@ -1359,8 +1360,9 @@ КонецФункции -//////////////////////////////////////////////////////////////////////////////// -// Инициализация структуры настроек обмена данными. +#КонецОбласти + +#Область ИнициализацияСтруктурыНастроекОбменаДанными // Получает список макетов типовых правил для обмена данными из конфигурации для заданного плана обмена; // список заполняется именами и синонимами макетов правил. @@ -1369,7 +1371,7 @@ // ИмяПланаОбмена - Строка - имя плана обмена как оно задано в конфигураторе. // // Возвращаемое значение: -// СписокЗначений Из Строка - список макетов типовых правил для обмена данными. +// СписокЗначений из Строка - список макетов типовых правил для обмена данными. // Функция ПравилаДляПланаОбменаИзКонфигурации(ИмяПланаОбмена, ЛитералИмениМакета) @@ -1655,4 +1657,6 @@ КонецФункции +#КонецОбласти + #КонецОбласти \ No newline at end of file diff --git a/SSL/src/CommonModules/ОбменДаннымиРегистрацияПовтИсп/Module.bsl b/SSL/src/CommonModules/ОбменДаннымиРегистрацияПовтИсп/Module.bsl index 84b9e2302..a072e66cd 100644 --- a/SSL/src/CommonModules/ОбменДаннымиРегистрацияПовтИсп/Module.bsl +++ b/SSL/src/CommonModules/ОбменДаннымиРегистрацияПовтИсп/Module.bsl @@ -1,5 +1,5 @@ /////////////////////////////////////////////////////////////////////////////////////////////////////// -// Copyright (c) 2024, ООО 1С-Софт +// Copyright (c) 2025, ООО 1С-Софт // Все права защищены. Эта программа и сопроводительные материалы предоставляются // в соответствии с условиями лицензии Attribution 4.0 International (CC BY 4.0) // Текст лицензии доступен по ссылке: @@ -14,12 +14,13 @@ // которая храниться в регистре сведений ПравилаДляОбменаДанными. // // Параметры: -// ИмяПланаОбмена - строка - имя плана обмена. +// ИмяПланаОбмена - Строка - имя плана обмена. // // Возвращаемое значение: // ПараметрыВыборочнойРегистрации - Структура // - Неопределено - параметры выборочной регистрации объектов. -// В случае, если выборочная регистрация не используется для указанного плана обмена возвращаем Неопределено. +// В случае, если выборочная регистрация не используется для указанного плана +// обмена возвращаем Неопределено. // Функция ПараметрыВыборочнойРегистрацииПоИмениПланаОбмена(ИмяПланаОбмена) Экспорт diff --git a/SSL/src/CommonModules/ОбменДаннымиРегистрацияСервер/Module.bsl b/SSL/src/CommonModules/ОбменДаннымиРегистрацияСервер/Module.bsl index bf148f54f..ed02babc4 100644 --- a/SSL/src/CommonModules/ОбменДаннымиРегистрацияСервер/Module.bsl +++ b/SSL/src/CommonModules/ОбменДаннымиРегистрацияСервер/Module.bsl @@ -1,5 +1,5 @@ /////////////////////////////////////////////////////////////////////////////////////////////////////// -// Copyright (c) 2024, ООО 1С-Софт +// Copyright (c) 2025, ООО 1С-Софт // Все права защищены. Эта программа и сопроводительные материалы предоставляются // в соответствии с условиями лицензии Attribution 4.0 International (CC BY 4.0) // Текст лицензии доступен по ссылке: diff --git a/SSL/src/CommonModules/ОбменДаннымиСервер/Module.bsl b/SSL/src/CommonModules/ОбменДаннымиСервер/Module.bsl index 114201354..d4b04e2ba 100644 --- a/SSL/src/CommonModules/ОбменДаннымиСервер/Module.bsl +++ b/SSL/src/CommonModules/ОбменДаннымиСервер/Module.bsl @@ -1,5 +1,5 @@ /////////////////////////////////////////////////////////////////////////////////////////////////////// -// Copyright (c) 2024, ООО 1С-Софт +// Copyright (c) 2025, ООО 1С-Софт // Все права защищены. Эта программа и сопроводительные материалы предоставляются // в соответствии с условиями лицензии Attribution 4.0 International (CC BY 4.0) // Текст лицензии доступен по ссылке: @@ -779,7 +779,7 @@ Процедура ВыполнитьОбменДаннымиСВнешнейСистемой(Корреспондент, ПараметрыОбмена, ФлагОшибка) Экспорт Отказ = Ложь; - + ПередВыполнениемОбменов(Корреспондент, Отказ); Если Отказ = Истина Тогда @@ -838,12 +838,12 @@ // * Алгоритмы - Структура - перечень экспортных процедур и функций, которые // объявлены в модуле менеджера плана обмена // и используются подсистемой обмена данными. -// *ПравилаРегистрацииВМенеджере - Булево - Признак использования правил регистрации, +// *ПравилаРегистрацииВМенеджере - Булево - признак использования правил регистрации, // расположенных в общем модуле (менеджере регистрации) // *ИмяМенеджераРегистрации - Строка - имя модуля с правилами регистрации // *ИспользоватьКешПубличныхИдентификаторов - Булево - признак того, что при загрузке данных будет // использован кеш для поиска ссылок -// *Глобальный - Булево - Если установлено Истина, то план обмена может быть +// *Глобальный - Булево - если установлено Истина, то план обмена может быть // использован для обмена с планами обмена с другими наименованиями. // Только для обмена через EnterpriseData // @@ -1234,9 +1234,19 @@ Если ОбменДаннымиПовтИсп.ЭтоУзелОбменаСообщениями(УзелОбмена) Тогда Возврат Истина; Иначе - УстановитьПривилегированныйРежим(Истина); + СтандартнаяОбработка = Истина; - Возврат РегистрыСведений.ОбщиеНастройкиУзловИнформационныхБаз.НастройкаЗавершена(УзелОбмена); + НастройкаЗавершена = Ложь; + + ОбменДаннымиПереопределяемый.ПриОпределенииПризнакаОЗавершенииНастройкиСинхронизации(СтандартнаяОбработка, НастройкаЗавершена, УзелОбмена); + + Если СтандартнаяОбработка Тогда + УстановитьПривилегированныйРежим(Истина); + + НастройкаЗавершена = РегистрыСведений.ОбщиеНастройкиУзловИнформационныхБаз.НастройкаЗавершена(УзелОбмена); + КонецЕсли; + + Возврат НастройкаЗавершена; КонецЕсли; КонецФункции @@ -2387,11 +2397,11 @@ // Получает параметр защищенного соединения. // // Параметры: -// Путь - Строка - Путь FTP-соединения +// Путь - Строка - путь FTP-соединения // // Возвращаемое значение: // - ЗащищенноеСоединениеOpenSSL -// - Неопределено - Если в строке пути не найдено расширение "ftps" +// - Неопределено - если в строке пути не найдено расширение "ftps" // Функция ЗащищенноеСоединение(Путь) Экспорт @@ -2764,6 +2774,7 @@ // // Возвращаемое значение: // Булево +// Функция ТребуетсяУстановкаОбновления() Экспорт Возврат ЭтоПодчиненныйУзелРИБ() @@ -2925,7 +2936,7 @@ // Код предопределенного узла плана обмена. // // Параметры: -// ИмяПланаОбмена - Строка - Имя плана обмена как оно задано в конфигураторе +// ИмяПланаОбмена - Строка - имя плана обмена как оно задано в конфигураторе // // Возвращаемое значение: // Строка @@ -3464,7 +3475,7 @@ // Формирует выборку измененных данных для передачи их в тот или иной узел плана обмена. // Если обращение к методу выполняется в активной транзакции, то вызывает исключение. -// См. описаниеметода ПланыОбменаМенеджер.ВыбратьИзменения() в синтакс-помощнике. +// См. описание метода ПланыОбменаМенеджер.ВыбратьИзменения() в синтакс-помощнике. // // Параметры: // Узел - ПланОбменаСсылка @@ -3473,6 +3484,7 @@ // // Возвращаемое значение: // ВыборкаДанных +// Функция ВыбратьИзменения(Знач Узел, Знач НомерСообщения, Знач ФильтрВыборки = Неопределено) Экспорт Если ТранзакцияАктивна() Тогда @@ -4445,10 +4457,10 @@ // Настройки обмена для узла информационной базы. // // Параметры: -// УзелИнформационнойБазы - ПланОбменаСсылка, - Ссылка на узел информационной базы -// ДействиеПриОбмене - ПеречислениеСсылка.ДействияПриОбмене - Действие при обмене -// ИдентификаторТранспорта - Строка, Неопределено - Идентификатор транспорта -// ДополнительныеПараметры - Структура, Неопределено - Дополнительные параметры: +// УзелИнформационнойБазы - ПланОбменаСсылка, Ссылка на узел информационной базы +// ДействиеПриОбмене - ПеречислениеСсылка.ДействияПриОбмене - действие при обмене +// ИдентификаторТранспорта - Строка, Неопределено - идентификатор транспорта +// ДополнительныеПараметры - Структура, Неопределено - дополнительные параметры: // * ТолькоПараметры - Булево // * СообщениеДляСопоставленияДанных - Булево // * ДанныеАутентификации - Неопределено @@ -5429,6 +5441,12 @@ КонецЕсли; + Если СтруктураНастроекОбмена.ДополнительныеПараметры.Свойство("ПараметрыОбработкиКонвертации") Тогда + Для Каждого КлючЗначение Из СтруктураНастроекОбмена.ДополнительныеПараметры.ПараметрыОбработкиКонвертации Цикл + ОбработкаОбменаДанными.Параметры.Вставить(КлючЗначение.Ключ, КлючЗначение.Значение); + КонецЦикла; + КонецЕсли; + СтруктураНастроекОбмена.Вставить("ОбработкаОбменаДанными", ОбработкаОбменаДанными); КонецПроцедуры @@ -5526,6 +5544,55 @@ #Область ОбщегоНазначения +// Функция-свойство: возвращает имя файла, который используется для проверки подключения обработки транспорта. +// +// Возвращаемое значение: +// Строка - возвращает имя файла, который используется для проверки подключения обработки транспорта. +// +Функция ИмяВременногоФайлаПроверкиПодключения() Экспорт + ПостфиксФайла = Строка(Новый УникальныйИдентификатор()); + Возврат "ConnectionCheckFile_" + ПостфиксФайла + ".tmp"; + +КонецФункции + +// Выполняет проверку того, что размер файла сообщения обмена превышает допустимый размер. +// +// Параметры: +// ИмяФайла - Строка - полное имя файла +// МаксимальныйДопустимыйРазмерСообщения - Число +// +// Возвращаемое значение: +// Булево - если размер файла больше допустимого, иначе Ложь. +// +Функция РазмерСообщенияОбменаПревышаетДопустимый(Знач ИмяФайла, Знач МаксимальныйДопустимыйРазмерСообщения) Экспорт + + // Возвращаемое значение функции. + Результат = Ложь; + + Файл = Новый Файл(ИмяФайла); + + Если Файл.Существует() И Файл.ЭтоФайл() Тогда + + Если МаксимальныйДопустимыйРазмерСообщения <> 0 Тогда + + РазмерПакета = Окр(Файл.Размер() / 1024, 0, РежимОкругления.Окр15как20); + + Если РазмерПакета > МаксимальныйДопустимыйРазмерСообщения Тогда + + СтрокаСообщения = НСтр("ru = 'Размер исходящего пакета составил %1 Кбайт, что превышает допустимое ограничение %2 Кбайт.'"); + СтрокаСообщения = СтроковыеФункцииКлиентСервер.ПодставитьПараметрыВСтроку(СтрокаСообщения, Строка(РазмерПакета), Строка(МаксимальныйДопустимыйРазмерСообщения)); + СообщитьОбОшибке(СтрокаСообщения, Результат); + + КонецЕсли; + + КонецЕсли; + + КонецЕсли; + + Возврат Результат; + +КонецФункции + // Регистрирует что обмен был произведен и фиксирует информацию в протоколе. // // Параметры: @@ -5718,8 +5785,9 @@ // // Параметры: // ИдентификаторФайла - УникальныйИдентификатор - идентификатор получаемого файла. -// WSПассивныйРежимФайловаяИБ - Булево - признак того, что получение файла происходит в файловой ИБ при настройке WS +// ПассивныйРежимФайловаяИБ - Булево - признак того, что получение файла происходит в файловой ИБ при настройке WS // соединения в пассивном режиме +// УдалитьФайлИзХранилища - Булево - признак определяющий удалять ли информацию о файле сообщения обмена из хранилища. // // Возвращаемое значение: // Строка - имя файла. @@ -5732,7 +5800,7 @@ И ОбщегоНазначения.ДоступноИспользованиеРазделенныхДанных() Тогда МодульОбменДаннымиВМоделиСервиса = ОбщегоНазначения.ОбщийМодуль("ОбменДаннымиВМоделиСервиса"); - МодульОбменДаннымиВМоделиСервиса.ПриПолученииФайлаИзХранилища(ИдентификаторФайла, ИмяФайла); + МодульОбменДаннымиВМоделиСервиса.ПриПолученииФайлаИзХранилища(ИдентификаторФайла, ИмяФайла, УдалитьФайлИзХранилища); Иначе @@ -5789,7 +5857,7 @@ // Возвращает ключ сообщения журнала регистрации. // // Параметры: -// УзелИнформационнойБазы - ПланОбменаСсылка - Ссылка на узел информационной базы +// УзелИнформационнойБазы - ПланОбменаСсылка - ссылка на узел информационной базы // ДействиеПриОбмене - ПеречислениеСсылка.ДействияПриОбмене // // Возвращаемое значение: @@ -7081,17 +7149,6 @@ КонецФункции -// Функция-свойство: возвращает имя файла, который используется для проверки подключения обработки транспорта. -// -// Возвращаемое значение: -// Строка - возвращает имя файла, который используется для проверки подключения обработки транспорта. -// -Функция ИмяВременногоФайлаПроверкиПодключения() Экспорт - ПостфиксФайла = Строка(Новый УникальныйИдентификатор()); - Возврат "ConnectionCheckFile_" + ПостфиксФайла + ".tmp"; - -КонецФункции - Функция ЭтоОшибкаНомерСообщенияМеньшеИлиРавенНомеруРанееПринятогоСообщения(ОписаниеОшибки) Возврат СтрНайти(НРег(ОписаниеОшибки), НРег(НСтр("ru = 'Номер сообщения меньше или равен'"))) > 0; @@ -7832,7 +7889,7 @@ // Наличие обмена с каким либо планом обмена определяется по наличию у этого плана обмена узлов кроме предопределенного. // // Возвращаемое значение: -// Массив Из Строка - массив строк (имен) всех планов обмена по которым выполняется обмен данными. +// Массив из Строка - массив строк (имен) всех планов обмена по которым выполняется обмен данными. // Функция ПолучитьИспользуемыеПланыОбмена() Экспорт @@ -8497,7 +8554,7 @@ СообщениеОбмена.Записать(ПутьКФайлу); СтруктураСообщения = ИнициализироватьСтруктураСообщениеОбмена(); - СтруктураСообщения.ПутьКФайлу = ПутьКФайлу; + СтруктураСообщения.ПутьКФайлу = ПутьКФайлу; СтруктураСообщения.ХешСуммаФайла = ХешСуммаСообщениеОбмена(СообщениеОбмена); Константы.СообщениеОбменаДаннымиИзГлавногоУзла.Установить(Новый ХранилищеЗначения(СтруктураСообщения)); @@ -8591,7 +8648,7 @@ // ВнешнийМодуль- ЛюбаяСсылка - ссылка на внешний модуль // // Возвращаемое значение: -// Картинка. - Пиктограмма внешнего модуля +// Картинка. - пиктограмма внешнего модуля // Функция ПиктограммаВнешнегоМодуля(Знач ВнешнийМодуль) Экспорт @@ -8635,6 +8692,7 @@ СообщениеОбмена = ""; СтандартнаяОбработка = Истина; + УдалитьСообщениеОбмена = Ложь; ПередЧтениемСообщенияОбмена(СтруктураНастроекОбмена.УзелИнформационнойБазы, СообщениеОбмена, СтандартнаяОбработка); @@ -8647,6 +8705,7 @@ РегистрыСведений.АрхивСообщенийОбменов.ПоместитьСообщениеВАрхив( СтруктураНастроекОбмена.УзелИнформационнойБазы, СообщениеОбмена); + УдалитьСообщениеОбмена = Истина; Иначе СтруктураНастроекОбмена.РезультатВыполненияОбмена = Перечисления.РезультатыВыполненияОбмена.Ошибка_ТранспортСообщения; КонецЕсли; @@ -8703,6 +8762,12 @@ ТранспортСообщенийОбмена.Деинициализация(Транспорт); КонецЕсли; + Если УдалитьСообщениеОбмена Тогда + ФайлСообщенияОбмена = Новый Файл(СообщениеОбмена); + Каталог = ФайлСообщенияОбмена.Путь; + УдалитьФайлы(Каталог); + КонецЕсли; + ИначеЕсли СтруктураНастроекОбмена.ПроизводитьВыгрузкуДанных Тогда СообщениеДляСопоставленияДанных = СтруктураНастроекОбмена.ДополнительныеПараметры.Свойство("СообщениеДляСопоставленияДанных") @@ -8807,14 +8872,14 @@ Продолжить; КонецЕсли; - + Если ЕстьСообщениеДляСопоставления(Выборка.УзелИнформационнойБазы, Выборка.ВыполняемоеДействие) Тогда Отказ = Истина; Продолжить; КонецЕсли; - + // ИНИЦИАЛИЗАЦИЯ ОБМЕНА ДАННЫМИ СтруктураНастроекОбмена = НастройкиОбменаДанными(Выборка.НастройкаВыполненияОбмена, Выборка.НомерСтроки); @@ -8986,13 +9051,13 @@ // *ИмяПланаОбменаКорреспондента - Строка // *ТекущийУзелПланаОбменаКод - Строка // *КоличествоЭлементовВТранзакции - Число -// *ДействиеПриОбменеСтрокой - Строка - Имя значения перечисления ДействияПриОбмене +// *ДействиеПриОбменеСтрокой - Строка - имя значения перечисления ДействияПриОбмене // *РежимОтладки - Булево // *ИмяФайлаПротоколаОбмена - Строка // // Возвращаемое значение: // Структура: -// * ИмяПланаОбмена - Строка - Имя плана обмена как объекта метаданных +// * ИмяПланаОбмена - Строка - имя плана обмена как объекта метаданных // * РежимОтладки - Булево // * УзелИнформационнойБазы - ПланОбменаСсылка // * УзелИнформационнойБазыНаименование - Строка @@ -9103,12 +9168,12 @@ Если ТипЗнч(СохраненноеСообщениеОбмена) = Тип("Структура") Тогда СообщениеОбмена = СохраненноеСообщениеОбмена.ПутьКФайлу; - + Если ЗначениеЗаполнено(СообщениеОбмена) Тогда ФайлСообщения = Новый Файл(СообщениеОбмена); // Если файл с сообщением удален из временного каталога, то попытаемся загрузить из архива. - Если Не ФайлСообщения.Существует() Тогда + Если Не ФайлСообщения.Существует() Тогда Если СохраненноеСообщениеОбмена.Свойство("ХешСуммаФайла") Тогда ХешСуммаПоследнегоСообщения = ПолучитьХешСуммуПоследнегоСообщения(Получатель); @@ -9116,10 +9181,10 @@ СохранитьСообщениеИзАрхиваВКэш(Получатель); СохраненноеСообщениеОбмена = СообщениеОбменаДаннымиИзГлавногоУзла(); - СообщениеОбмена = СохраненноеСообщениеОбмена.ПутьКФайлу; + СообщениеОбмена = СохраненноеСообщениеОбмена.ПутьКФайлу; КонецЕсли; КонецЕсли; - КонецЕсли; + КонецЕсли КонецЕсли; СтандартнаяОбработка = Ложь; @@ -9282,7 +9347,7 @@ // Получает структуру настроек транспорта для выполнения обмена данными. // // Параметры: -// УзелИнформационнойБазы - ПланОбменаСсылка - Ссылка на узел плана обмена +// УзелИнформационнойБазы - ПланОбменаСсылка - ссылка на узел плана обмена // ВидТранспортаСообщенийОбмена - ПеречислениеСсылка.ВидыТранспортаСообщенийОбмена // // Возвращаемое значение: @@ -9769,7 +9834,9 @@ Возврат Результат; КонецФункции -// См. ТекущиеДелаПереопределяемый.ПриОпределенииОбработчиковТекущихДел +// Параметры: +// ТекущиеДела - см. ТекущиеДелаСервер.ТекущиеДела. +// Процедура ПриЗаполненииСпискаТекущихДелПредупрежденияСинхронизации(ТекущиеДела) МодульТекущиеДелаСервер = ОбщегоНазначения.ОбщийМодуль("ТекущиеДелаСервер"); @@ -9809,7 +9876,9 @@ КонецПроцедуры -// См. ТекущиеДелаПереопределяемый.ПриОпределенииОбработчиковТекущихДел +// Параметры: +// ТекущиеДела - см. ТекущиеДелаСервер.ТекущиеДела. +// Процедура ПриЗаполненииСпискаТекущихДелПроверитьЗацикливание(ТекущиеДела) МодульТекущиеДелаСервер = ОбщегоНазначения.ОбщийМодуль("ТекущиеДелаСервер"); @@ -9840,7 +9909,9 @@ КонецПроцедуры -// См. ТекущиеДелаПереопределяемый.ПриОпределенииОбработчиковТекущихДел. +// Параметры: +// ТекущиеДела - см. ТекущиеДелаСервер.ТекущиеДела. +// Процедура ПриЗаполненииСпискаТекущихДелПроверитьСовместимостьСТекущейВерсией(ТекущиеДела) МодульТекущиеДелаСервер = ОбщегоНазначения.ОбщийМодуль("ТекущиеДелаСервер"); @@ -10742,6 +10813,7 @@ // // Возвращаемое значение: // Строка +// Функция КлючТаблицыДанных(Знач ТипИсточника, Знач ТипПриемника, Знач ЭтоУдалениеОбъекта) Экспорт Возврат ТипИсточника + "#" + ТипПриемника + "#" + Строка(ЭтоУдалениеОбъекта); @@ -10782,7 +10854,7 @@ // Наименование предопределенного узла плана обмена. // // Параметры: -// ИмяПланаОбмена - Строка - Имя плана обмена как оно задано в конфигураторе +// ИмяПланаОбмена - Строка - имя плана обмена как оно задано в конфигураторе // // Возвращаемое значение: // Строка @@ -11564,11 +11636,11 @@ // Получает индекс картинки для вывода в таблице статистики сопоставления объектов. // // Параметры: -// КоличествоОбъектовНесопоставленных -Число - Количество несопоставленных объектов +// КоличествоОбъектовНесопоставленных -Число - количество несопоставленных объектов // ДанныеУспешноЗагружены - Булево // // Возвращаемое значение: -// Число - Возможные значения: 0, 1, 2 +// Число - возможные значения: 0, 1, 2 // Функция ИндексКартинкиТаблицыИнформацииСтатистики(Знач КоличествоОбъектовНесопоставленных, Знач ДанныеУспешноЗагружены) Экспорт @@ -11576,44 +11648,6 @@ КонецФункции -// Выполняет проверку того, что размер файла сообщения обмена превышает допустимый размер. -// -// Параметры: -// ИмяФайла - Строка - Полное имя файла -// МаксимальныйДопустимыйРазмерСообщения - Число -// -// Возвращаемое значение: -// Булево - если размер файла больше допустимого, иначе Ложь. -// -Функция РазмерСообщенияОбменаПревышаетДопустимый(Знач ИмяФайла, Знач МаксимальныйДопустимыйРазмерСообщения) Экспорт - - // Возвращаемое значение функции. - Результат = Ложь; - - Файл = Новый Файл(ИмяФайла); - - Если Файл.Существует() И Файл.ЭтоФайл() Тогда - - Если МаксимальныйДопустимыйРазмерСообщения <> 0 Тогда - - РазмерПакета = Окр(Файл.Размер() / 1024, 0, РежимОкругления.Окр15как20); - - Если РазмерПакета > МаксимальныйДопустимыйРазмерСообщения Тогда - - СтрокаСообщения = НСтр("ru = 'Размер исходящего пакета составил %1 Кбайт, что превышает допустимое ограничение %2 Кбайт.'"); - СтрокаСообщения = СтроковыеФункцииКлиентСервер.ПодставитьПараметрыВСтроку(СтрокаСообщения, Строка(РазмерПакета), Строка(МаксимальныйДопустимыйРазмерСообщения)); - СообщитьОбОшибке(СтрокаСообщения, Результат); - - КонецЕсли; - - КонецЕсли; - - КонецЕсли; - - Возврат Результат; - -КонецФункции - Функция УстановленПризнакНачальнойВыгрузкиДанных(УзелИнформационнойБазы) Экспорт УстановитьПривилегированныйРежим(Истина); @@ -11918,12 +11952,12 @@ // Проверка на различие версии корреспондента в правилах текущей и другой программы. // // Параметры: -// ИмяПланаОбмена - Строка - Имя плана обмена как оно задано в конфигураторе -// КлючСообщенияЖурналаРегистрации - Строка - Ключ сообщения для записи в журнал регистрации -// ВерсияВЭтойПрограмме - Строка - Версия этого приложения -// ВерсияВДругойПрограмме - Строка - Версия приложения-корреспондента +// ИмяПланаОбмена - Строка - имя плана обмена как оно задано в конфигураторе +// КлючСообщенияЖурналаРегистрации - Строка - ключ сообщения для записи в журнал регистрации +// ВерсияВЭтойПрограмме - Строка - версия этого приложения +// ВерсияВДругойПрограмме - Строка - версия приложения-корреспондента // ТекстСообщения - Строка -// ПараметрыВнешнегоСоединения - Неопределено - Параметры внешнего соединения +// ПараметрыВнешнегоСоединения - Неопределено - параметры внешнего соединения // // Возвращаемое значение: // Булево @@ -12039,7 +12073,7 @@ // // Параметры: // ПараметрОбъект - ОбъектМетаданных -// - Строка - Полное имя объекта метаданных, как задано в конфигураторе +// - Строка - полное имя объекта метаданных, как задано в конфигураторе // // Возвращаемое значение: // Строка @@ -12067,7 +12101,7 @@ // // Параметры: // ПараметрОбъект - ОбъектМетаданных -// - Строка - Полное имя объекта метаданных, как задано в конфигураторе +// - Строка - полное имя объекта метаданных, как задано в конфигураторе // // Возвращаемое значение: // Строка @@ -12220,7 +12254,11 @@ КонецФункции -// См. ТекущиеДелаПереопределяемый.ПриОпределенииОбработчиковТекущихДел +// Заполнение текущих дел. +// +// Параметры: +// ТекущиеДела - см. ТекущиеДелаСервер.ТекущиеДела. +// Процедура ПриЗаполненииСпискаТекущихДелНеобходимоОбновление(ТекущиеДела) МодульТекущиеДелаСервер = ОбщегоНазначения.ОбщийМодуль("ТекущиеДелаСервер"); @@ -12732,7 +12770,7 @@ // Определяет описание общего отбора. При пустом отборе возвращает пустую строку. // // Параметры: -// ДополнениеВыгрузки - Структура +// ДополнениеВыгрузки - Структура: // - РеквизитФормы - описание параметров выгрузки. // // Возвращаемое значение: @@ -12753,7 +12791,7 @@ // Определяет описание детального отбора. При пустом отборе возвращает пустую строку. // // Параметры: -// ДополнениеВыгрузки - Структура +// ДополнениеВыгрузки - Структура: // - РеквизитФормы - описание параметров выгрузки. // // Возвращаемое значение: @@ -12766,11 +12804,11 @@ // Анализирует историю настроек-отборов, сохраненную пользователем для узла. // // Параметры: -// ДополнениеВыгрузки - Структура +// ДополнениеВыгрузки - Структура: // - РеквизитФормы - описание параметров выгрузки. // // Возвращаемое значение: -// СписокЗначений Из Строка - где представление - имя настройки, значение - данные настройки. +// СписокЗначений из Строка - где представление - имя настройки, значение - данные настройки. // Функция ИнтерактивноеИзменениеВыгрузкиИсторияНастроек(Знач ДополнениеВыгрузки) Экспорт ОбработкаДополнения = Обработки.ИнтерактивноеИзменениеВыгрузки.Создать(); @@ -12783,7 +12821,7 @@ // Восстанавливает настройки в реквизитах ДополнениеВыгрузки по названию сохраненной настройки. // // Параметры: -// ДополнениеВыгрузки - Структура +// ДополнениеВыгрузки - Структура: // - РеквизитФормы - описание параметров выгрузки. // ПредставлениеНастройки - Строка - название восстанавливаемой настройки. // @@ -12976,11 +13014,11 @@ // Возвращает описание детального отбора по реквизиту "ДополнительнаяРегистрация". // // Параметры: -// ДополнительнаяРегистрация - ТаблицаЗначений - +// ДополнительнаяРегистрация - ТаблицаЗначений // ОписаниеПустогоОтбора - Строка - значение, возвращаемое в случае пустого отбора. // // Возвращаемое значение: -// Строка, Неопределено - Представление детального дополнения выгрузки +// Строка, Неопределено - представление детального дополнения выгрузки // Функция ПредставлениеДетальногоДополненияВыгрузки(Знач ДополнительнаяРегистрация, Знач ОписаниеПустогоОтбора=Неопределено) Экспорт @@ -13106,7 +13144,7 @@ "ФормаОбщаяКомандаПредупреждениеЦикличностиНастроекОбменов", "ПоложениеВКоманднойПанели", ПоложениеКнопкиВКоманднойПанели.ВДополнительномПодменю); - + Если УзелСсылка.Пустая() ИЛИ НЕ ОбменДаннымиПовтИсп.ЭтоПланОбменаXDTO(УзелСсылка) ИЛИ НЕ УзелЗацикленКонтрольОтключен @@ -13127,7 +13165,7 @@ "ФормаОбщаяКомандаОбъектыНезарегистрированныеПриЗацикливании", "ПоложениеВКоманднойПанели", ПоложениеКнопкиВКоманднойПанели.ВДополнительномПодменю); - + ОбщегоНазначенияКлиентСервер.УстановитьСвойствоЭлементаФормы( Элементы, "ФормаОбщаяКомандаПредупреждениеЦикличностиНастроекОбменов", @@ -13220,17 +13258,17 @@ СтруктураСообщения.Вставить("ПутьКФайлу", ""); СтруктураСообщения.Вставить("ХешСуммаФайла", ""); - Возврат СтруктураСообщения; + Возврат СтруктураСообщения; -КонецФункции +КонецФункции // Возвращает хеш сумму файла сообщения обмена. // // Параметры: -// СообщениеОбмена - ДвоичныеДанные - двоичные данные сообщения обмена. +// СообщениеОбмена - ДвоичныеДанные - двоичные данные сообщения обмена. // // Возвращаемое значение: -// Строка - хеш сумма. +// Строка - хеш сумма. // Функция ХешСуммаСообщениеОбмена(Знач СообщениеОбмена) Экспорт @@ -13293,7 +13331,7 @@ Если ЗначениеЗаполнено(Выборка.ПолноеИмяФайла) Тогда Если Выборка.РасширениеФайла = "zip" Тогда УстановитьСообщениеОбменаИзАрхива(Выборка.ПолноеИмяФайла, УзелИнформационнойБазы); - Иначе + Иначе ДвоичныеДанныеАрхива = Новый ДвоичныеДанные(Выборка.ПолноеИмяФайла); УстановитьСообщениеОбменаДаннымиИзГлавногоУзла(ДвоичныеДанныеАрхива, УзелИнформационнойБазы); КонецЕсли; @@ -13336,13 +13374,13 @@ ДвоичныеДанныеСообщенияОбмена = Новый ДвоичныеДанные(СписокРаспакованныхФайлов[0].ПолноеИмя); - УстановитьСообщениеОбменаДаннымиИзГлавногоУзла(ДвоичныеДанныеСообщенияОбмена, УзелИнформационнойБазы); - Иначе + УстановитьСообщениеОбменаДаннымиИзГлавногоУзла(ДвоичныеДанныеСообщенияОбмена, УзелИнформационнойБазы); + Иначе ЕстьОшибки = Истина; - КонецЕсли; + КонецЕсли; // Удаляем временный архив и временный каталог с ним. - ФайловаяСистема.УдалитьВременныйФайл(ИмяВременногоКаталога); + ФайловаяСистема.УдалитьВременныйФайл(ИмяВременногоКаталога); Если ЕстьОшибки Тогда // Если не удалось распаковать файл - отказываемся от загрузки. diff --git a/SSL/src/CommonModules/ОбменДаннымиСлужебный/Module.bsl b/SSL/src/CommonModules/ОбменДаннымиСлужебный/Module.bsl index 5f18eed29..d106a61de 100644 --- a/SSL/src/CommonModules/ОбменДаннымиСлужебный/Module.bsl +++ b/SSL/src/CommonModules/ОбменДаннымиСлужебный/Module.bsl @@ -1,5 +1,5 @@ /////////////////////////////////////////////////////////////////////////////////////////////////////// -// Copyright (c) 2024, ООО 1С-Софт +// Copyright (c) 2025, ООО 1С-Софт // Все права защищены. Эта программа и сопроводительные материалы предоставляются // в соответствии с условиями лицензии Attribution 4.0 International (CC BY 4.0) // Текст лицензии доступен по ссылке: @@ -17,7 +17,7 @@ // 2) Ошибка обновления ИБ после успешной загрузки сообщения обмена. // // Возвращаемое значение: -// Булево - Значение константы ПовторитьЗагрузкуСообщенияОбменаДаннымиПередЗапуском +// Булево - значение константы ПовторитьЗагрузкуСообщенияОбменаДаннымиПередЗапуском // Функция ПовторитьЗагрузкуСообщенияОбменаДаннымиПередЗапуском() Экспорт @@ -199,7 +199,7 @@ // Актуально для обмена в РИБ при загрузке данных в подчиненном узле РИБ. // // Параметры: -// Свойство - Строка - Свойство параметра сеанса РежимЗагрузкиСообщенияОбменаДаннымиПередЗапуском +// Свойство - Строка - свойство параметра сеанса РежимЗагрузкиСообщенияОбменаДаннымиПередЗапуском // // Возвращаемое значение: // Булево @@ -289,7 +289,7 @@ // СообщениеОбОшибке - Строка - описание ошибки при выполнении операции. // // Возвращаемое значение: -// Строка - Всегда пустая строка +// Строка - всегда пустая строка // Функция ЗагрузитьЧастьФайла(ИдентификаторФайла, НомерЗагружаемойЧастиФайла, ЗагружаемаяЧастьФайла, СообщениеОбОшибке) Экспорт @@ -820,7 +820,7 @@ // Возвращает признак необходимости загрузки расширений // // Возвращаемое значение: -// Булево - Значение константы ЗагрузитьРасширенияИзменяющиеСтруктуруДанных +// Булево - значение константы ЗагрузитьРасширенияИзменяющиеСтруктуруДанных // Функция ЗагрузитьРасширенияИзменяющиеСтруктуруДанных() Экспорт @@ -1156,32 +1156,51 @@ Процедура ОбновитьЗаписьВРегистрСведений(СтруктураЗаписи, Знач ИмяРегистра) Экспорт МетаданныеРегистра = Метаданные.РегистрыСведений[ИмяРегистра]; // ОбъектМетаданныхРегистрСведений - - // Создаем менеджер записи регистра. - МенеджерЗаписи = РегистрыСведений[ИмяРегистра].СоздатьМенеджерЗаписи(); - - // Устанавливаем отбор по измерениям регистра. - Для Каждого Измерение Из МетаданныеРегистра.Измерения Цикл - ИмяИзмерения = Измерение.Имя; + НачатьТранзакцию(); + + Попытка + // Создаем менеджер записи регистра. + МенеджерЗаписи = РегистрыСведений[ИмяРегистра].СоздатьМенеджерЗаписи(); + + БлокировкаДанных = Новый БлокировкаДанных; + ЭлементБлокировкиДанных = БлокировкаДанных.Добавить("РегистрСведений." + ИмяРегистра); + ЭлементБлокировкиДанных.Режим = РежимБлокировкиДанных.Исключительный; + + // Устанавливаем отбор по измерениям регистра. + Для Каждого Измерение Из МетаданныеРегистра.Измерения Цикл + + ИмяИзмерения = Измерение.Имя; - // Если задано значение в структуре, то отбор устанавливаем. - Если СтруктураЗаписи.Свойство(ИмяИзмерения) Тогда + // Если задано значение в структуре, то отбор устанавливаем. + Если СтруктураЗаписи.Свойство(ИмяИзмерения) Тогда + МенеджерЗаписи[ИмяИзмерения] = СтруктураЗаписи[ИмяИзмерения]; + ЭлементБлокировкиДанных.УстановитьЗначение(ИмяИзмерения, СтруктураЗаписи[ИмяИзмерения]); + КонецЕсли; - МенеджерЗаписи[ИмяИзмерения] = СтруктураЗаписи[ИмяИзмерения]; + КонецЦикла; + + БлокировкаДанных.Заблокировать(); + + // Считываем запись из базы данных. + МенеджерЗаписи.Прочитать(); + + // Заполняем значения свойств записи из переданной структуры. + ЗаполнитьЗначенияСвойств(МенеджерЗаписи, СтруктураЗаписи); + + // записываем менеджер записи + МенеджерЗаписи.Записать(); - КонецЕсли; + ЗафиксироватьТранзакцию(); + Исключение + ОтменитьТранзакцию(); - КонецЦикла; - - // Считываем запись из базы данных. - МенеджерЗаписи.Прочитать(); - - // Заполняем значения свойств записи из переданной структуры. - ЗаполнитьЗначенияСвойств(МенеджерЗаписи, СтруктураЗаписи); - - // записываем менеджер записи - МенеджерЗаписи.Записать(); + СообщениеОбОшибке = ОбработкаОшибок.ПодробноеПредставлениеОшибки(ИнформацияОбОшибке()); + + Событие = НСтр("ru = 'Обмен данными.Обновление записи'", ОбщегоНазначения.КодОсновногоЯзыка()); + + ЗаписьЖурналаРегистрации(Событие, УровеньЖурналаРегистрации.Ошибка, МетаданныеРегистра, , СообщениеОбОшибке); + КонецПопытки; КонецПроцедуры diff --git a/SSL/src/CommonModules/ОбменДаннымиСобытия/Module.bsl b/SSL/src/CommonModules/ОбменДаннымиСобытия/Module.bsl index 1fb2c4e4d..b14a9f7ae 100644 --- a/SSL/src/CommonModules/ОбменДаннымиСобытия/Module.bsl +++ b/SSL/src/CommonModules/ОбменДаннымиСобытия/Module.bsl @@ -1,5 +1,5 @@ /////////////////////////////////////////////////////////////////////////////////////////////////////// -// Copyright (c) 2024, ООО 1С-Софт +// Copyright (c) 2025, ООО 1С-Софт // Все права защищены. Эта программа и сопроводительные материалы предоставляются // в соответствии с условиями лицензии Attribution 4.0 International (CC BY 4.0) // Текст лицензии доступен по ссылке: @@ -71,7 +71,7 @@ // // Параметры: // ИмяПланаОбмена - Строка - имя плана обмена, для которого выполняется механизм регистрации. -// Источник - РегистрСведенийНаборЗаписей - источник события. +// Источник - РегистрСведенийНаборЗаписей - источник события. // Отказ - Булево - флаг отказа от выполнения обработчика. // Замещение - Булево - признак замещения существующего набора записей. // @@ -145,8 +145,7 @@ КонецПроцедуры -//////////////////////////////////////////////////////////////////////////////// -// Процедуры и функции для использования в обработчиках событий правил регистрации. +#Область ПроцедурыИФункцииДляИспользованияВОбработчикахСобытийПравилРегистрации // Процедура дополняет список узлов-получателей объекта переданными значениями. // @@ -278,9 +277,9 @@ // объект метаданных. // // Возвращаемое значение: -// Булево - признак наличия авторегистрации в плане обмена. -// Если Истина - объект метаданных имеет признак авторегистрации "Разрешена" в составе плана обмена; -// иначе, если Ложь - объект метаданных имеет признак авторегистрации "Запрещена" в составе плана обмена +// Булево - признак наличия авторегистрации в плане обмена. +// Если Истина - объект метаданных имеет признак авторегистрации "Разрешена" в составе плана обмена; +// иначе, если Ложь - объект метаданных имеет признак авторегистрации "Запрещена" в составе плана обмена // или объект метаданных не входит в состав плана обмена. // Функция АвтоРегистрацияРазрешена(ОбъектМетаданных, ИмяПланаОбмена) Экспорт @@ -330,8 +329,9 @@ КонецФункции -//////////////////////////////////////////////////////////////////////////////// -// Процедуры и функции для вызова из других библиотек. +#КонецОбласти + +#Область ПроцедурыИФункцииДляВызоваИзДругихБиблиотек // См. ВыгрузкаЗагрузкаДанныхПереопределяемый.ПриРегистрацииОбработчиковЗагрузкиДанных. Процедура ПриРегистрацииОбработчиковЗагрузкиДанных(ТаблицаОбработчиков) Экспорт @@ -350,11 +350,11 @@ // Выполняет обработчики после загрузки объекта. // // Параметры: -// Контейнер - ОбработкаОбъект.ВыгрузкаЗагрузкаДанныхМенеджерКонтейнера - менеджер +// Контейнер - ОбработкаОбъект.ВыгрузкаЗагрузкаДанныхМенеджерКонтейнера - менеджер // контейнера, используемый в процессе выгрузи данных. Подробнее см. комментарий // к программному интерфейсу обработки ВыгрузкаЗагрузкаДанныхМенеджерКонтейнера. -// Объект - Произвольный - объект загружаемых данных. -// Артефакты - Массив из ОбъектXDTO - массив артефактов (объектов XDTO). +// Объект - Произвольный - объект загружаемых данных. +// Артефакты - Массив из ОбъектXDTO - массив артефактов (объектов XDTO). // Процедура ПослеЗагрузкиОбъекта(Контейнер, Объект, Артефакты) Экспорт @@ -374,6 +374,8 @@ #КонецОбласти +#КонецОбласти + #Область СлужебныйПрограммныйИнтерфейс // Процедура предназначена для определения вида отправки выгружаемого элемента данных. @@ -788,17 +790,18 @@ // Процедура ОтключитьИспользованиеПланаОбмена(Источник, Отказ) Экспорт - // Проверка значения свойства ОбменДанными.Загрузка отсутствует по причине того, что в расположенным ниже коде, - // реализована логика, которая должна выполняться в том числе при установке этого свойства равным Истина - // (на стороне кода, который выполняет попытку удаления узла данного плана обмена). + Если Источник.ОбменДанными.Загрузка Тогда + + Возврат; + + КонецЕсли; Если ОбменДаннымиПовтИсп.ЭтоУзелРазделенногоОбменаДаннымиБСП(Источник.Ссылка) Тогда // Кэш открытых сеансов для МРО стал неактуальным. ОбменДаннымиСлужебный.СброситьКэшМеханизмаРегистрацииОбъектов(); - ОбновитьПовторноИспользуемыеЗначения(); - + КонецЕсли; КонецПроцедуры @@ -1120,17 +1123,17 @@ МодульОчередьЗаданий = ОбщегоНазначения.ОбщийМодуль("ОчередьЗаданий"); МодульРаботаВМоделиСервиса = ОбщегоНазначения.ОбщийМодуль("РаботаВМоделиСервиса"); - + Если ЗначениеЗаполнено(Источник.Код) Тогда Отбор = Новый Структура; Отбор.Вставить("ОбластьДанных", МодульРаботаВМоделиСервиса.ЗначениеРазделителяСеанса()); Отбор.Вставить("Ключ", Источник.Код); - + ТаблицаЗадания = МодульОчередьЗаданий.ПолучитьЗадания(Отбор); Для Каждого СтрокаЗадания Из ТаблицаЗадания Цикл МодульОчередьЗаданий.УдалитьЗадание(СтрокаЗадания.Идентификатор); КонецЦикла; - КонецЕсли; + КонецЕсли КонецЕсли; Если ОбщегоНазначения.ПодсистемаСуществует("СтандартныеПодсистемы.РаботаВМоделиСервиса.ОбменДаннымиВМоделиСервиса") Тогда @@ -1215,9 +1218,17 @@ НеобязательныеПараметры.Вставить("ЭтоКонстанта", Ложь); НеобязательныеПараметры.Вставить("РежимЗаписи", Неопределено); НеобязательныеПараметры.Вставить("Замещение", Неопределено); + НеобязательныеПараметры.Вставить("ЗамещениеРасширенное", Неопределено); Если ДополнительныеПараметры <> Неопределено Тогда ЗаполнитьЗначенияСвойств(НеобязательныеПараметры, ДополнительныеПараметры); + + // В версиях платформы 8.3.25 - 8.3.27 режим замещения может быть указан + // как системное перечисление "РежимЗамещения" со значениями: + // Добавление, Замещение, Обновление, Слияние, Удаление. + // Из них режим "Добавление" соответствует значению замещение ЛОЖЬ, остальные ИСТИНА. + АдаптироватьЗначениеЗамещенияНеобязательныхПараметровРегистрации(НеобязательныеПараметры); + КонецЕсли; ЭтоРегистр = НеобязательныеПараметры.ЭтоРегистр; @@ -1225,6 +1236,10 @@ ЭтоКонстанта = НеобязательныеПараметры.ЭтоКонстанта; РежимЗаписи = НеобязательныеПараметры.РежимЗаписи; Замещение = НеобязательныеПараметры.Замещение; + ЗамещениеРасширенное = НеобязательныеПараметры.ЗамещениеРасширенное; + Если ЗначениеЗаполнено(ЗамещениеРасширенное) И ТипЗнч(ЗамещениеРасширенное) <> Тип("Булево") Тогда + Объект.ДополнительныеСвойства.Вставить("ЗамещениеРасширенное", ЗамещениеРасширенное); + КонецЕсли; Попытка @@ -1419,6 +1434,47 @@ КонецПроцедуры +// Метод выполняет проверку значения режима замещения в необязательных параметрах. +// Если таковой указан как системное перечисление "РежимЗамещения", то выполняет его приведение к типу Булево. +// +Процедура АдаптироватьЗначениеЗамещенияНеобязательныхПараметровРегистрации(НеобязательныеПараметры) + + ВерсияБСП = СтандартныеПодсистемыСервер.ВерсияБиблиотеки(); + + ЭтаВерсияНижеБСП_3_1_11 = (ОбщегоНазначенияКлиентСервер.СравнитьВерсии(ВерсияБСП, "3.1.11.0") <= 0); + Если ЭтаВерсияНижеБСП_3_1_11 + ИЛИ НеобязательныеПараметры.Замещение = Неопределено + ИЛИ ТипЗнч(НеобязательныеПараметры.Замещение) = Тип("Булево") + Тогда + + Возврат; + + КонецЕсли; + + МодульОбщегоНазначения = ОбщегоНазначения.ОбщийМодуль("ОбщегоНазначения"); + Если МодульОбщегоНазначения = Неопределено Тогда + + Возврат; + + КонецЕсли; + + ЭтоРасширенныйРежимЗамещения = МодульОбщегоНазначения.ЭтоЗамещениеНабораЗаписей(НеобязательныеПараметры.Замещение) + ИЛИ МодульОбщегоНазначения.ЭтоОбновлениеНабораЗаписей(НеобязательныеПараметры.Замещение) + ИЛИ МодульОбщегоНазначения.ЭтоСлияниеНабораЗаписей(НеобязательныеПараметры.Замещение) + ИЛИ МодульОбщегоНазначения.ЭтоУдалениеНабораЗаписей(НеобязательныеПараметры.Замещение); + + Если ЭтоРасширенныйРежимЗамещения = Истина Тогда + + НеобязательныеПараметры.ЗамещениеРасширенное = НеобязательныеПараметры.Замещение; + НеобязательныеПараметры.Замещение = Истина; + Возврат; + + КонецЕсли; + + НеобязательныеПараметры.Замещение = Ложь; + +КонецПроцедуры + #КонецОбласти #Область ПравилаРегистрацииОбъектов @@ -2087,14 +2143,14 @@ // Возвращает массив узлов плана обмена по заданным параметрам запроса и тексту запроса к таблице плана обмена. // // Параметры: -// ЗначенияСвойств - Структура - Значения свойств объекта +// ЗначенияСвойств - Структура - значения свойств объекта // ТекстЗапроса - Строка -// ИмяПланаОбмена - Строка - Имя плана обмена как оно задано в конфигураторе +// ИмяПланаОбмена - Строка - имя плана обмена как оно задано в конфигураторе // ИмяРеквизитаФлага - Строка // Выгрузка - Булево // // Возвращаемое значение: -// Массив Из ПланОбменаСсылка - Массив узлов по значениям свойств +// Массив из ПланОбменаСсылка - массив узлов по значениям свойств // Функция МассивУзловПоЗначениямСвойств(ЗначенияСвойств, Знач ТекстЗапроса, Знач ИмяПланаОбмена, Знач ИмяРеквизитаФлага, Знач Выгрузка = Ложь) Экспорт @@ -2258,10 +2314,10 @@ // Создает набор записей для регистра. // // Параметры: -// ОбъектМетаданных - ОбъектМетаданных - Объект метаданных, предусматривающий набор записей +// ОбъектМетаданных - ОбъектМетаданных - объект метаданных, предусматривающий набор записей // // Возвращаемое значение: -// РегистрСведенийНаборЗаписей, РегистрРасчетаНаборЗаписей, РегистрБухгалтерииНаборЗаписей - +// РегистрСведенийНаборЗаписей, РегистрРасчетаНаборЗаписей, РегистрБухгалтерииНаборЗаписей // - РегистрРасчетаНаборЗаписей, ПоследовательностьНаборЗаписей - набор записей. // Функция НаборЗаписейПоТипу(ОбъектМетаданных) @@ -3558,6 +3614,28 @@ НаборЗаписей = НаборЗаписейПоТипу(ОбъектМетаданных); + ЗамещениеРасширенное = Неопределено; + Если Данные.ДополнительныеСвойства.Свойство("ЗамещениеРасширенное", ЗамещениеРасширенное) Тогда + Если ОбщегоНазначения.ЭтоСлияниеНабораЗаписей(ЗамещениеРасширенное) + ИЛИ ОбщегоНазначения.ЭтоОбновлениеНабораЗаписей(ЗамещениеРасширенное) + ИЛИ ОбщегоНазначения.ЭтоУдалениеНабораЗаписей(ЗамещениеРасширенное) Тогда + + НаборЗаписей.РасширенныеРежимыЗамещения = Данные.РасширенныеРежимыЗамещения; + НаборЗаписей.ДополнительныеСвойства.Вставить("ЗамещениеРасширенное", ЗамещениеРасширенное); + ДанныеНабораИзИБ = ОбщегоНазначения.ЗаписиНабораИзБазыДанных(Данные, ЗамещениеРасширенное); + НаборЗаписей.Загрузить(ДанныеНабораИзИБ); + + Возврат НаборЗаписей; + + ИначеЕсли ОбщегоНазначения.ЭтоДобавлениеНабораЗаписей(ЗамещениеРасширенное) Тогда + НаборЗаписей.РасширенныеРежимыЗамещения = Данные.РасширенныеРежимыЗамещения; + НаборЗаписей.ДополнительныеСвойства.Вставить("ЗамещениеРасширенное", ЗамещениеРасширенное); + + Возврат НаборЗаписей; + + КонецЕсли; + КонецЕсли; + Для Каждого ЗначениеОтбора Из Данные.Отбор Цикл Если ЗначениеОтбора.Использование = Ложь Тогда diff --git a/SSL/src/CommonModules/ОбменДаннымиТрансляцияФорматаПовтИсп/Module.bsl b/SSL/src/CommonModules/ОбменДаннымиТрансляцияФорматаПовтИсп/Module.bsl index 5b24a05b1..e3a4212ee 100644 --- a/SSL/src/CommonModules/ОбменДаннымиТрансляцияФорматаПовтИсп/Module.bsl +++ b/SSL/src/CommonModules/ОбменДаннымиТрансляцияФорматаПовтИсп/Module.bsl @@ -1,5 +1,5 @@ /////////////////////////////////////////////////////////////////////////////////////////////////////// -// Copyright (c) 2024, ООО 1С-Софт +// Copyright (c) 2025, ООО 1С-Софт // Все права защищены. Эта программа и сопроводительные материалы предоставляются // в соответствии с условиями лицензии Attribution 4.0 International (CC BY 4.0) // Текст лицензии доступен по ссылке: @@ -14,6 +14,7 @@ // // Возвращаемое значение: // Строка +// Функция ТранслироватьИмя(Имя, НаправлениеПеревода) Экспорт Если Метаданные.ВариантВстроенногоЯзыка = Метаданные.СвойстваОбъектов.ВариантВстроенногоЯзыка.Русский Тогда diff --git a/SSL/src/CommonModules/ОбновлениеИнформационнойБазы/Module.bsl b/SSL/src/CommonModules/ОбновлениеИнформационнойБазы/Module.bsl index 8556d563d..3a47060b3 100644 --- a/SSL/src/CommonModules/ОбновлениеИнформационнойБазы/Module.bsl +++ b/SSL/src/CommonModules/ОбновлениеИнформационнойБазы/Module.bsl @@ -1,5 +1,5 @@ /////////////////////////////////////////////////////////////////////////////////////////////////////// -// Copyright (c) 2024, ООО 1С-Софт +// Copyright (c) 2025, ООО 1С-Софт // Все права защищены. Эта программа и сопроводительные материалы предоставляются // в соответствии с условиями лицензии Attribution 4.0 International (CC BY 4.0) // Текст лицензии доступен по ссылке: @@ -3415,9 +3415,33 @@ Функция ДанныеДляОбновленияВМногопоточномОбработчике(Параметры) Экспорт НаборДанных = Параметры.ОбновляемыеДанные.НаборДанных; + ОписаниеТипаСсылки = Неопределено; + НесколькоНаборовДанных = Ложь; + Для Каждого ЭлементНабора Из НаборДанных Цикл + ТаблицаДанных = ЭлементНабора.Данные; + КолонкаСсылка = ТаблицаДанных.Колонки.Найти("Ссылка"); + Если КолонкаСсылка = Неопределено Тогда + Продолжить; + КонецЕсли; + + Если ОписаниеТипаСсылки = Неопределено Тогда + ОписаниеТипаСсылки = КолонкаСсылка.ТипЗначения; + Продолжить; + КонецЕсли; + + НесколькоНаборовДанных = Истина; + ОписаниеТипаСсылки = Новый ОписаниеТипов(ОписаниеТипаСсылки, КолонкаСсылка.ТипЗначения.Типы()); + КонецЦикла; Если НаборДанных.Количество() > 0 Тогда Данные = НаборДанных[0].Данные.Скопировать(); + КолонкаСсылка = Данные.Колонки.Найти("Ссылка"); + Если КолонкаСсылка <> Неопределено И НесколькоНаборовДанных Тогда + МассивСсылок = Данные.ВыгрузитьКолонку("Ссылка"); + Данные.Колонки.Удалить(КолонкаСсылка); + Данные.Колонки.Добавить("Ссылка", ОписаниеТипаСсылки); + Данные.ЗагрузитьКолонку(МассивСсылок, "Ссылка"); + КонецЕсли; Для Индекс = 1 По НаборДанных.Количество() - 1 Цикл Набор = НаборДанных[Индекс]; @@ -3629,7 +3653,7 @@ | ТОГДА &ПорядокСостоянияВыполняется | КОГДА ОбработчикиОбновления.Статус = ЗНАЧЕНИЕ(Перечисление.СтатусыОбработчиковОбновления.Ошибка) | ТОГДА &ПорядокСостоянияОшибка - | ИНАЧЕ &ПорядокСостоянияОжидает + | ИНАЧЕ &ПорядокСостоянияВыполняется | КОНЕЦ) КАК ПорядокСостояния |ПОМЕСТИТЬ СтатистикаОбновления |ИЗ diff --git a/SSL/src/CommonModules/ОбновлениеИнформационнойБазыБСД/Module.bsl b/SSL/src/CommonModules/ОбновлениеИнформационнойБазыБСД/Module.bsl index ca0a49c80..1c6285890 100644 --- a/SSL/src/CommonModules/ОбновлениеИнформационнойБазыБСД/Module.bsl +++ b/SSL/src/CommonModules/ОбновлениеИнформационнойБазыБСД/Module.bsl @@ -1,5 +1,5 @@ /////////////////////////////////////////////////////////////////////////////////////////////////////// -// Copyright (c) 2024, ООО 1С-Софт +// Copyright (c) 2025, ООО 1С-Софт // Все права защищены. Эта программа и сопроводительные материалы предоставляются // в соответствии с условиями лицензии Attribution 4.0 International (CC BY 4.0) // Текст лицензии доступен по ссылке: @@ -10,8 +10,7 @@ #Область ДляВызоваИзДругихПодсистем -//////////////////////////////////////////////////////////////////////////////// -// Сведения о библиотеке (или конфигурации). +#Область СведенияОБиблиотекеИлиКонфигурации // Заполняет основные сведения о библиотеке или основной конфигурации. // Библиотека, имя которой имя совпадает с именем конфигурации в метаданных, определяется как основная конфигурация. @@ -39,15 +38,16 @@ Процедура ПриДобавленииПодсистемы(Описание) Экспорт Описание.Имя = "БиблиотекаСинхронизацииДанных"; - Описание.Версия = "1.0.4.242"; + Описание.Версия = "1.0.5.225"; Описание.ИдентификаторИнтернетПоддержки = "DSL"; Описание.РежимВыполненияОтложенныхОбработчиков = "Параллельно"; Описание.ПараллельноеОтложенноеОбновлениеСВерсии = "1.0.1.1"; КонецПроцедуры -//////////////////////////////////////////////////////////////////////////////// -// Обработчики обновления информационной базы. +#КонецОбласти + +#Область ОбработчикиОбновленияИнформационнойБазы // Добавляет в список процедуры-обработчики обновления данных ИБ // для всех поддерживаемых версий библиотеки или конфигурации. @@ -258,3 +258,5 @@ #КонецОбласти #КонецОбласти + +#КонецОбласти \ No newline at end of file diff --git a/SSL/src/CommonModules/ОбновлениеИнформационнойБазыБСП/Module.bsl b/SSL/src/CommonModules/ОбновлениеИнформационнойБазыБСП/Module.bsl index 579d9fe7f..1896d14bb 100644 --- a/SSL/src/CommonModules/ОбновлениеИнформационнойБазыБСП/Module.bsl +++ b/SSL/src/CommonModules/ОбновлениеИнформационнойБазыБСП/Module.bsl @@ -1,5 +1,5 @@ /////////////////////////////////////////////////////////////////////////////////////////////////////// -// Copyright (c) 2024, ООО 1С-Софт +// Copyright (c) 2025, ООО 1С-Софт // Все права защищены. Эта программа и сопроводительные материалы предоставляются // в соответствии с условиями лицензии Attribution 4.0 International (CC BY 4.0) // Текст лицензии доступен по ссылке: @@ -44,7 +44,7 @@ Процедура ПриДобавленииПодсистемы(Описание) Экспорт Описание.Имя = "СтандартныеПодсистемы"; - Описание.Версия = "3.1.11.466"; + Описание.Версия = "3.1.12.205"; Описание.ИдентификаторИнтернетПоддержки = "SSL"; Описание.РежимВыполненияОтложенныхОбработчиков = "Параллельно"; Описание.ПараллельноеОтложенноеОбновлениеСВерсии = "2.3.3.0"; diff --git a/SSL/src/CommonModules/ОбновлениеИнформационнойБазыВызовСервера/Module.bsl b/SSL/src/CommonModules/ОбновлениеИнформационнойБазыВызовСервера/Module.bsl index 1a757aedb..408201927 100644 --- a/SSL/src/CommonModules/ОбновлениеИнформационнойБазыВызовСервера/Module.bsl +++ b/SSL/src/CommonModules/ОбновлениеИнформационнойБазыВызовСервера/Module.bsl @@ -1,5 +1,5 @@ /////////////////////////////////////////////////////////////////////////////////////////////////////// -// Copyright (c) 2024, ООО 1С-Софт +// Copyright (c) 2025, ООО 1С-Софт // Все права защищены. Эта программа и сопроводительные материалы предоставляются // в соответствии с условиями лицензии Attribution 4.0 International (CC BY 4.0) // Текст лицензии доступен по ссылке: diff --git a/SSL/src/CommonModules/ОбновлениеИнформационнойБазыГлобальный/Module.bsl b/SSL/src/CommonModules/ОбновлениеИнформационнойБазыГлобальный/Module.bsl index 325e45336..12fafb564 100644 --- a/SSL/src/CommonModules/ОбновлениеИнформационнойБазыГлобальный/Module.bsl +++ b/SSL/src/CommonModules/ОбновлениеИнформационнойБазыГлобальный/Module.bsl @@ -1,5 +1,5 @@ /////////////////////////////////////////////////////////////////////////////////////////////////////// -// Copyright (c) 2024, ООО 1С-Софт +// Copyright (c) 2025, ООО 1С-Софт // Все права защищены. Эта программа и сопроводительные материалы предоставляются // в соответствии с условиями лицензии Attribution 4.0 International (CC BY 4.0) // Текст лицензии доступен по ссылке: diff --git a/SSL/src/CommonModules/ОбновлениеИнформационнойБазыКлиент/Module.bsl b/SSL/src/CommonModules/ОбновлениеИнформационнойБазыКлиент/Module.bsl index 0f09ac0fd..822c5fad3 100644 --- a/SSL/src/CommonModules/ОбновлениеИнформационнойБазыКлиент/Module.bsl +++ b/SSL/src/CommonModules/ОбновлениеИнформационнойБазыКлиент/Module.bsl @@ -1,5 +1,5 @@ /////////////////////////////////////////////////////////////////////////////////////////////////////// -// Copyright (c) 2024, ООО 1С-Софт +// Copyright (c) 2025, ООО 1С-Софт // Все права защищены. Эта программа и сопроводительные материалы предоставляются // в соответствии с условиями лицензии Attribution 4.0 International (CC BY 4.0) // Текст лицензии доступен по ссылке: diff --git a/SSL/src/CommonModules/ОбновлениеИнформационнойБазыКлиентПереопределяемый/Module.bsl b/SSL/src/CommonModules/ОбновлениеИнформационнойБазыКлиентПереопределяемый/Module.bsl index da1ed7bd5..c2c80b35f 100644 --- a/SSL/src/CommonModules/ОбновлениеИнформационнойБазыКлиентПереопределяемый/Module.bsl +++ b/SSL/src/CommonModules/ОбновлениеИнформационнойБазыКлиентПереопределяемый/Module.bsl @@ -1,5 +1,5 @@ /////////////////////////////////////////////////////////////////////////////////////////////////////// -// Copyright (c) 2024, ООО 1С-Софт +// Copyright (c) 2025, ООО 1С-Софт // Все права защищены. Эта программа и сопроводительные материалы предоставляются // в соответствии с условиями лицензии Attribution 4.0 International (CC BY 4.0) // Текст лицензии доступен по ссылке: diff --git a/SSL/src/CommonModules/ОбновлениеИнформационнойБазыПереопределяемый/Module.bsl b/SSL/src/CommonModules/ОбновлениеИнформационнойБазыПереопределяемый/Module.bsl index 122b01e40..64be9eca7 100644 --- a/SSL/src/CommonModules/ОбновлениеИнформационнойБазыПереопределяемый/Module.bsl +++ b/SSL/src/CommonModules/ОбновлениеИнформационнойБазыПереопределяемый/Module.bsl @@ -1,5 +1,5 @@ /////////////////////////////////////////////////////////////////////////////////////////////////////// -// Copyright (c) 2024, ООО 1С-Софт +// Copyright (c) 2025, ООО 1С-Софт // Все права защищены. Эта программа и сопроводительные материалы предоставляются // в соответствии с условиями лицензии Attribution 4.0 International (CC BY 4.0) // Текст лицензии доступен по ссылке: diff --git a/SSL/src/CommonModules/ОбновлениеИнформационнойБазыСлужебный/Module.bsl b/SSL/src/CommonModules/ОбновлениеИнформационнойБазыСлужебный/Module.bsl index 4bf8ecba8..84d497372 100644 --- a/SSL/src/CommonModules/ОбновлениеИнформационнойБазыСлужебный/Module.bsl +++ b/SSL/src/CommonModules/ОбновлениеИнформационнойБазыСлужебный/Module.bsl @@ -1,5 +1,5 @@ /////////////////////////////////////////////////////////////////////////////////////////////////////// -// Copyright (c) 2024, ООО 1С-Софт +// Copyright (c) 2025, ООО 1С-Софт // Все права защищены. Эта программа и сопроводительные материалы предоставляются // в соответствии с условиями лицензии Attribution 4.0 International (CC BY 4.0) // Текст лицензии доступен по ссылке: @@ -1603,6 +1603,23 @@ КонецФункции +// Для внутреннего использования. +// +Процедура Пауза(Секунд) Экспорт + + ТекущийСеансИнформационнойБазы = ПолучитьТекущийСеансИнформационнойБазы(); + ФоновоеЗадание = ТекущийСеансИнформационнойБазы.ПолучитьФоновоеЗадание(); + + Если ФоновоеЗадание = Неопределено Тогда + Параметры = Новый Массив; + Параметры.Добавить(Секунд); + ФоновоеЗадание = ФоновыеЗадания.Выполнить("ОбновлениеИнформационнойБазыСлужебный.Пауза", Параметры); + КонецЕсли; + + ФоновоеЗадание.ОжидатьЗавершенияВыполнения(Секунд); + +КонецПроцедуры + #Область ОбработчикиСобытийПодсистемКонфигурации // См. ОбщегоНазначенияПереопределяемый.ПриДобавленииОбработчиковУстановкиПараметровСеанса. @@ -7493,20 +7510,28 @@ ИмяКлючевогоРеквизита = ИмяКлючевогоРеквизита(Контекст.НастройкиПредопределенныхЭлементов); - ЗначениеКлючаОбъекта = ЗаполняемыйЭлемент[ИмяКлючевогоРеквизита]; - - Если Не ЗначениеЗаполнено(ЗначениеКлючаОбъекта) Тогда - - Если Не Контекст.НастройкиПредопределенныхЭлементов.ЕстьКолонкаИмяПредопределенныхДанных Тогда - Возврат; + Если ИмяКлючевогоРеквизита = "Ссылка" Тогда + Если ЗаполняемыйЭлемент.ЭтоНовый() Тогда + ЗначениеКлючаОбъекта=ЗаполняемыйЭлемент.ПолучитьСсылкуНового(); + Иначе + ЗначениеКлючаОбъекта=ЗаполняемыйЭлемент.Ссылка; КонецЕсли; - - ИмяКлючевогоРеквизита = "ИмяПредопределенныхДанных"; + Иначе ЗначениеКлючаОбъекта = ЗаполняемыйЭлемент[ИмяКлючевогоРеквизита]; - Если Не ЗначениеЗаполнено(ЗначениеКлючаОбъекта) Тогда - Возврат; - КонецЕсли; + Если Не ЗначениеЗаполнено(ЗначениеКлючаОбъекта) Тогда + + Если Не Контекст.НастройкиПредопределенныхЭлементов.ЕстьКолонкаИмяПредопределенныхДанных Тогда + Возврат; + КонецЕсли; + + ИмяКлючевогоРеквизита = "ИмяПредопределенныхДанных"; + ЗначениеКлючаОбъекта = ЗаполняемыйЭлемент[ИмяКлючевогоРеквизита]; + Если Не ЗначениеЗаполнено(ЗначениеКлючаОбъекта) Тогда + Возврат; + КонецЕсли; + + КонецЕсли; КонецЕсли; МенеджерОбъекта = Контекст.МенеджерОбъекта; @@ -9670,10 +9695,19 @@ Возврат; КонецЕсли; + ПрогрессОперативногоОбновления = ОбновлениеИнформационнойБазы.ПрогрессОбновленияОбластейДанных("Оперативное"); ПрогрессОбновления = ОбновлениеИнформационнойБазы.ПрогрессОбновленияОбластейДанных("Отложенное"); ОбластиДляПроверки = ПрогрессОбновления.ОбластиВыполняется; ОбщегоНазначенияКлиентСервер.ДополнитьМассив(ОбластиДляПроверки, ПрогрессОбновления.ОбластиСПроблемами, Истина); - ОбщегоНазначенияКлиентСервер.ДополнитьМассив(ОбластиДляПроверки, ПрогрессОбновления.ОбластиОжидает, Истина); + + Если ЗначениеЗаполнено(ПрогрессОперативногоОбновления.Проблемы) Тогда + // Области, где оперативное обновление завершилось с ошибкой, не останавливают отложенное обновление. + ПрогрессОбновления.ОбластиОжидает = ОбщегоНазначенияКлиентСервер.РазностьМассивов( + ПрогрессОбновления.ОбластиОжидает, ПрогрессОперативногоОбновления.ОбластиСПроблемами); + ПрогрессОбновления.Ожидают = ПрогрессОбновления.ОбластиОжидает.Количество(); + КонецЕсли; + + ЕстьОжидающие = ПрогрессОбновления.Ожидают <> 0; ПорядокОбрабатываемыхДанных = Константы.ПорядокОбрабатываемыхДанных.Получить(); @@ -9684,7 +9718,7 @@ Запрос = Новый Запрос; Запрос.УстановитьПараметр("ОбластиДляПроверки", ОбластиДляПроверки); Запрос.УстановитьПараметр("РежимВыполнения", Перечисления.РежимыВыполненияОбработчиков.Отложенно); - Запрос.УстановитьПараметр("Порядок", Перечисления.ПорядокОбработчиковОбновления.Критичный); + Запрос.УстановитьПараметр("Порядок", ПорядокОбрабатываемыхДанных); Запрос.УстановитьПараметр("Статусы", Статусы); Запрос.Текст = "ВЫБРАТЬ ПЕРВЫЕ 1 @@ -9709,7 +9743,7 @@ Запрос.Текст = СтрЗаменить(Запрос.Текст, "&УсловиеОбычныхОбработчиков", УсловиеОбычныхОбработчиков); ОтключитьЗадание = Ложь; - Если Запрос.Выполнить().Пустой() Тогда + Если Запрос.Выполнить().Пустой() И Не ЕстьОжидающие Тогда Если ПорядокОбрабатываемыхДанных = Перечисления.ПорядокОбработчиковОбновления.Критичный Тогда Константы.ПорядокОбрабатываемыхДанных.Установить(Перечисления.ПорядокОбработчиковОбновления.Обычный); Иначе @@ -12446,21 +12480,6 @@ КонецПроцедуры -Процедура Пауза(Секунд) Экспорт - - ТекущийСеансИнформационнойБазы = ПолучитьТекущийСеансИнформационнойБазы(); - ФоновоеЗадание = ТекущийСеансИнформационнойБазы.ПолучитьФоновоеЗадание(); - - Если ФоновоеЗадание = Неопределено Тогда - Параметры = Новый Массив; - Параметры.Добавить(Секунд); - ФоновоеЗадание = ФоновыеЗадания.Выполнить("ОбновлениеИнформационнойБазыСлужебный.Пауза", Параметры); - КонецЕсли; - - ФоновоеЗадание.ОжидатьЗавершенияВыполнения(Секунд); - -КонецПроцедуры - Функция ДлительностьЭтапаСтрокой(Знач Длительность) Экспорт Если Длительность < 1 Тогда @@ -12798,11 +12817,7 @@ Методы.Вставить("СформироватьСписокУстаревшихДанныхВФоне", Истина); Методы.Вставить("ОчиститьУстаревшиеДанныеВФоне", Истина); Методы.Вставить("ВыполнитьОбновлениеИнформационнойБазыВФоне", Истина); - Методы.Вставить("Пауза", Истина); - Методы.Вставить("УстановитьПорядокОтложенногоОбновления", Истина); - Методы.Вставить("ВыполнитьОтложенноеОбновление", Истина); Методы.Вставить("ЗагрузитьИУстановитьИсправления", Истина); - Методы.Вставить("ОчисткаУстаревшихДанных", Истина); КонецПроцедуры diff --git a/SSL/src/CommonModules/ОбновлениеИнформационнойБазыСлужебныйВМоделиСервиса/Module.bsl b/SSL/src/CommonModules/ОбновлениеИнформационнойБазыСлужебныйВМоделиСервиса/Module.bsl index a0fbdfb41..7214a60e8 100644 --- a/SSL/src/CommonModules/ОбновлениеИнформационнойБазыСлужебныйВМоделиСервиса/Module.bsl +++ b/SSL/src/CommonModules/ОбновлениеИнформационнойБазыСлужебныйВМоделиСервиса/Module.bsl @@ -1,5 +1,5 @@ /////////////////////////////////////////////////////////////////////////////////////////////////////// -// Copyright (c) 2024, ООО 1С-Софт +// Copyright (c) 2025, ООО 1С-Софт // Все права защищены. Эта программа и сопроводительные материалы предоставляются // в соответствии с условиями лицензии Attribution 4.0 International (CC BY 4.0) // Текст лицензии доступен по ссылке: @@ -1392,11 +1392,4 @@ КонецФункции -// См. СтандартныеПодсистемыСервер.ПриОпределенииМетодовРазрешенныхДляВызоваКакПроизвольныйКод -Процедура ПриОпределенииМетодовРазрешенныхДляВызоваКакПроизвольныйКод(Методы) Экспорт - - Методы.Вставить("ОбновлениеОбластейДанных", Истина); - -КонецПроцедуры - #КонецОбласти diff --git a/SSL/src/CommonModules/ОбновлениеИнформационнойБазыСлужебныйВызовСервера/Module.bsl b/SSL/src/CommonModules/ОбновлениеИнформационнойБазыСлужебныйВызовСервера/Module.bsl index 493e3342a..8bffe1ea9 100644 --- a/SSL/src/CommonModules/ОбновлениеИнформационнойБазыСлужебныйВызовСервера/Module.bsl +++ b/SSL/src/CommonModules/ОбновлениеИнформационнойБазыСлужебныйВызовСервера/Module.bsl @@ -1,5 +1,5 @@ /////////////////////////////////////////////////////////////////////////////////////////////////////// -// Copyright (c) 2024, ООО 1С-Софт +// Copyright (c) 2025, ООО 1С-Софт // Все права защищены. Эта программа и сопроводительные материалы предоставляются // в соответствии с условиями лицензии Attribution 4.0 International (CC BY 4.0) // Текст лицензии доступен по ссылке: diff --git a/SSL/src/CommonModules/ОбновлениеИнформационнойБазыСлужебныйПовтИсп/Module.bsl b/SSL/src/CommonModules/ОбновлениеИнформационнойБазыСлужебныйПовтИсп/Module.bsl index 6ca0941e3..5bd2d6151 100644 --- a/SSL/src/CommonModules/ОбновлениеИнформационнойБазыСлужебныйПовтИсп/Module.bsl +++ b/SSL/src/CommonModules/ОбновлениеИнформационнойБазыСлужебныйПовтИсп/Module.bsl @@ -1,5 +1,5 @@ /////////////////////////////////////////////////////////////////////////////////////////////////////// -// Copyright (c) 2024, ООО 1С-Софт +// Copyright (c) 2025, ООО 1С-Софт // Все права защищены. Эта программа и сопроводительные материалы предоставляются // в соответствии с условиями лицензии Attribution 4.0 International (CC BY 4.0) // Текст лицензии доступен по ссылке: diff --git a/SSL/src/CommonModules/ОбновлениеКонфигурации/Module.bsl b/SSL/src/CommonModules/ОбновлениеКонфигурации/Module.bsl index 1bbd28de4..d0a707a5e 100644 --- a/SSL/src/CommonModules/ОбновлениеКонфигурации/Module.bsl +++ b/SSL/src/CommonModules/ОбновлениеКонфигурации/Module.bsl @@ -1,5 +1,5 @@ /////////////////////////////////////////////////////////////////////////////////////////////////////// -// Copyright (c) 2024, ООО 1С-Софт +// Copyright (c) 2025, ООО 1С-Софт // Все права защищены. Эта программа и сопроводительные материалы предоставляются // в соответствии с условиями лицензии Attribution 4.0 International (CC BY 4.0) // Текст лицензии доступен по ссылке: @@ -1449,11 +1449,4 @@ КонецПроцедуры -// См. СтандартныеПодсистемыСервер.ПриОпределенииМетодовРазрешенныхДляВызоваКакПроизвольныйКод -Процедура ПриОпределенииМетодовРазрешенныхДляВызоваКакПроизвольныйКод(Методы) Экспорт - - Методы.Вставить("ОписанияНовыхПатчей", Истина); - -КонецПроцедуры - #КонецОбласти \ No newline at end of file diff --git a/SSL/src/CommonModules/ОбновлениеКонфигурацииВызовСервера/Module.bsl b/SSL/src/CommonModules/ОбновлениеКонфигурацииВызовСервера/Module.bsl index 6bee334e0..e4f3baeb9 100644 --- a/SSL/src/CommonModules/ОбновлениеКонфигурацииВызовСервера/Module.bsl +++ b/SSL/src/CommonModules/ОбновлениеКонфигурацииВызовСервера/Module.bsl @@ -1,5 +1,5 @@ /////////////////////////////////////////////////////////////////////////////////////////////////////// -// Copyright (c) 2024, ООО 1С-Софт +// Copyright (c) 2025, ООО 1С-Софт // Все права защищены. Эта программа и сопроводительные материалы предоставляются // в соответствии с условиями лицензии Attribution 4.0 International (CC BY 4.0) // Текст лицензии доступен по ссылке: diff --git a/SSL/src/CommonModules/ОбновлениеКонфигурацииГлобальный/Module.bsl b/SSL/src/CommonModules/ОбновлениеКонфигурацииГлобальный/Module.bsl index 6276e3375..25fd182d6 100644 --- a/SSL/src/CommonModules/ОбновлениеКонфигурацииГлобальный/Module.bsl +++ b/SSL/src/CommonModules/ОбновлениеКонфигурацииГлобальный/Module.bsl @@ -1,5 +1,5 @@ /////////////////////////////////////////////////////////////////////////////////////////////////////// -// Copyright (c) 2024, ООО 1С-Софт +// Copyright (c) 2025, ООО 1С-Софт // Все права защищены. Эта программа и сопроводительные материалы предоставляются // в соответствии с условиями лицензии Attribution 4.0 International (CC BY 4.0) // Текст лицензии доступен по ссылке: diff --git a/SSL/src/CommonModules/ОбновлениеКонфигурацииКлиент/Module.bsl b/SSL/src/CommonModules/ОбновлениеКонфигурацииКлиент/Module.bsl index 4e57350b0..df8955d1c 100644 --- a/SSL/src/CommonModules/ОбновлениеКонфигурацииКлиент/Module.bsl +++ b/SSL/src/CommonModules/ОбновлениеКонфигурацииКлиент/Module.bsl @@ -1,5 +1,5 @@ /////////////////////////////////////////////////////////////////////////////////////////////////////// -// Copyright (c) 2024, ООО 1С-Софт +// Copyright (c) 2025, ООО 1С-Софт // Все права защищены. Эта программа и сопроводительные материалы предоставляются // в соответствии с условиями лицензии Attribution 4.0 International (CC BY 4.0) // Текст лицензии доступен по ссылке: diff --git a/SSL/src/CommonModules/ОбращенияВТехническуюПоддержкуГлобальный/Module.bsl b/SSL/src/CommonModules/ОбращенияВТехническуюПоддержкуГлобальный/Module.bsl index 688797b69..1ad453fcf 100644 --- a/SSL/src/CommonModules/ОбращенияВТехническуюПоддержкуГлобальный/Module.bsl +++ b/SSL/src/CommonModules/ОбращенияВТехническуюПоддержкуГлобальный/Module.bsl @@ -1,5 +1,5 @@ /////////////////////////////////////////////////////////////////////////////////////////////////////// -// Copyright (c) 2024, ООО 1С-Софт +// Copyright (c) 2025, ООО 1С-Софт // Все права защищены. Эта программа и сопроводительные материалы предоставляются // в соответствии с условиями лицензии Attribution 4.0 International (CC BY 4.0) // Текст лицензии доступен по ссылке: diff --git a/SSL/src/CommonModules/ОбращенияВТехническуюПоддержкуЛокализация/Module.bsl b/SSL/src/CommonModules/ОбращенияВТехническуюПоддержкуЛокализация/Module.bsl index ca2439fdd..1a8c7dc98 100644 --- a/SSL/src/CommonModules/ОбращенияВТехническуюПоддержкуЛокализация/Module.bsl +++ b/SSL/src/CommonModules/ОбращенияВТехническуюПоддержкуЛокализация/Module.bsl @@ -1,5 +1,5 @@ /////////////////////////////////////////////////////////////////////////////////////////////////////// -// Copyright (c) 2024, ООО 1С-Софт +// Copyright (c) 2025, ООО 1С-Софт // Все права защищены. Эта программа и сопроводительные материалы предоставляются // в соответствии с условиями лицензии Attribution 4.0 International (CC BY 4.0) // Текст лицензии доступен по ссылке: diff --git a/SSL/src/CommonModules/ОбращенияВТехническуюПоддержкуСлужебный/Module.bsl b/SSL/src/CommonModules/ОбращенияВТехническуюПоддержкуСлужебный/Module.bsl index b30eee9b8..25d2d8e5c 100644 --- a/SSL/src/CommonModules/ОбращенияВТехническуюПоддержкуСлужебный/Module.bsl +++ b/SSL/src/CommonModules/ОбращенияВТехническуюПоддержкуСлужебный/Module.bsl @@ -1,5 +1,5 @@ /////////////////////////////////////////////////////////////////////////////////////////////////////// -// Copyright (c) 2024, ООО 1С-Софт +// Copyright (c) 2025, ООО 1С-Софт // Все права защищены. Эта программа и сопроводительные материалы предоставляются // в соответствии с условиями лицензии Attribution 4.0 International (CC BY 4.0) // Текст лицензии доступен по ссылке: diff --git a/SSL/src/CommonModules/ОбращенияВТехническуюПоддержкуСлужебныйВызовСервера/Module.bsl b/SSL/src/CommonModules/ОбращенияВТехническуюПоддержкуСлужебныйВызовСервера/Module.bsl index c3d17a7c2..022cb40e1 100644 --- a/SSL/src/CommonModules/ОбращенияВТехническуюПоддержкуСлужебныйВызовСервера/Module.bsl +++ b/SSL/src/CommonModules/ОбращенияВТехническуюПоддержкуСлужебныйВызовСервера/Module.bsl @@ -1,5 +1,5 @@ /////////////////////////////////////////////////////////////////////////////////////////////////////// -// Copyright (c) 2024, ООО 1С-Софт +// Copyright (c) 2025, ООО 1С-Софт // Все права защищены. Эта программа и сопроводительные материалы предоставляются // в соответствии с условиями лицензии Attribution 4.0 International (CC BY 4.0) // Текст лицензии доступен по ссылке: diff --git a/SSL/src/CommonModules/ОбращенияВТехническуюПоддержкуСлужебныйКлиент/Module.bsl b/SSL/src/CommonModules/ОбращенияВТехническуюПоддержкуСлужебныйКлиент/Module.bsl index 505566742..b4fbd308c 100644 --- a/SSL/src/CommonModules/ОбращенияВТехническуюПоддержкуСлужебныйКлиент/Module.bsl +++ b/SSL/src/CommonModules/ОбращенияВТехническуюПоддержкуСлужебныйКлиент/Module.bsl @@ -1,5 +1,5 @@ /////////////////////////////////////////////////////////////////////////////////////////////////////// -// Copyright (c) 2024, ООО 1С-Софт +// Copyright (c) 2025, ООО 1С-Софт // Все права защищены. Эта программа и сопроводительные материалы предоставляются // в соответствии с условиями лицензии Attribution 4.0 International (CC BY 4.0) // Текст лицензии доступен по ссылке: diff --git a/SSL/src/CommonModules/Обсуждения/Module.bsl b/SSL/src/CommonModules/Обсуждения/Module.bsl index 05f3dd5a3..c43e1e1ca 100644 --- a/SSL/src/CommonModules/Обсуждения/Module.bsl +++ b/SSL/src/CommonModules/Обсуждения/Module.bsl @@ -1,5 +1,5 @@ /////////////////////////////////////////////////////////////////////////////////////////////////////// -// Copyright (c) 2024, ООО 1С-Софт +// Copyright (c) 2025, ООО 1С-Софт // Все права защищены. Эта программа и сопроводительные материалы предоставляются // в соответствии с условиями лицензии Attribution 4.0 International (CC BY 4.0) // Текст лицензии доступен по ссылке: @@ -22,14 +22,19 @@ // Сообщение - см. ОписаниеСообщения // ОбсуждениеКонтекст - ЛюбаяСсылка - сообщение будет отправлено в контекстное обсуждение. // - ИдентификаторОбсужденияСистемыВзаимодействия - сообщение будет отправлено в указанное обсуждение. -// - Неопределено - сообщение будет отправлено в негрупповое обсуждение между автором и получателем. +// - Неопределено - сообщение будет отправлено в негрупповое обсуждение между автором и получателем, +// в случае, если получатель один и не указан Заголовок, иначе будет создано групповое обсуждение. +// - Строка - ключ группового обсуждения, если не найдено, будет создано. Если найдено, в чат будут +// добавлены недостающие получатели, рекомендуется при формировании ключа использовать GUID. +// +// Заголовок - Строка - заголовок группового обсуждения при создании. // // Пример: // Сообщение = Обсуждения.ОписаниеСообщения("Привет, мир!"); // Получатель = ОбщегоНазначенияКлиентСервер.ЗначениеВМассиве(Администратор); // Обсуждения.ОтправитьСообщение(Пользователи.ТекущийПользователь(), Получатель, Сообщение); // -Процедура ОтправитьСообщение(Знач Автор, Знач Получатели, Сообщение, ОбсуждениеКонтекст = Неопределено) Экспорт +Процедура ОтправитьСообщение(Знач Автор, Знач Получатели, Сообщение, ОбсуждениеКонтекст = Неопределено, Заголовок = Неопределено) Экспорт Если ТипЗнч(Автор) <> Тип("ПользовательСистемыВзаимодействия") Тогда Автор = ПользовательСистемыВзаимодействия(Автор); @@ -51,9 +56,10 @@ КонецЕсли; Если ОбсуждениеКонтекст <> Неопределено - И ТипЗнч(ОбсуждениеКонтекст) <> Тип("ИдентификаторОбсужденияСистемыВзаимодействия") Тогда + И ТипЗнч(ОбсуждениеКонтекст) <> Тип("ИдентификаторОбсужденияСистемыВзаимодействия") + И ТипЗнч(ОбсуждениеКонтекст) <> Тип("Строка") Тогда - Если НЕ ЗначениеЗаполнено(ОбсуждениеКонтекст) Тогда + Если Не ЗначениеЗаполнено(ОбсуждениеКонтекст) Тогда ВызватьИсключение НСтр("ru='Передан пустой контекст обсуждения.'"); КонецЕсли; @@ -76,19 +82,15 @@ ИдентификаторОбсуждения = Обсуждение.Идентификатор; - ИначеЕсли ОбсуждениеКонтекст = Неопределено Тогда + ИначеЕсли ОбсуждениеКонтекст = Неопределено Или ТипЗнч(ОбсуждениеКонтекст) = Тип("Строка") Тогда - Если Получатели.Количество() = 1 Тогда + Если Получатели.Количество() = 1 + И Не ЗначениеЗаполнено(Заголовок) + И Не ЗначениеЗаполнено(ОбсуждениеКонтекст) Тогда Участник = Получатели[0]; Обсуждение = НеГрупповоеОбсуждениеМеждуПользователями(Автор.Идентификатор, Участник.Идентификатор); - Иначе - Обсуждение = СистемаВзаимодействия.СоздатьОбсуждение(); - Обсуждение.Заголовок = Сообщение.Текст; - Обсуждение.Отображаемое = Истина; - Обсуждение.Групповое = Истина; - Обсуждение.Участники.Добавить(Автор.Идентификатор); - ДобавитьПолучателей(Обсуждение.Участники, Получатели); - Обсуждение.Записать(); + Иначе + Обсуждение = ГрупповоеОбсуждениеМеждуПользователями(Автор.Идентификатор, Получатели, Заголовок, Сообщение.Текст, ОбсуждениеКонтекст); КонецЕсли; ИдентификаторОбсуждения = Обсуждение.Идентификатор; @@ -160,7 +162,7 @@ ИначеЕсли ОбсуждениеКонтекст = Неопределено Тогда ВызватьИсключение НСтр("ru='Не указан идентификатор обсуждения или контекст.'"); - + Иначе ИдентификаторОбсуждения = ОбсуждениеКонтекст; @@ -488,7 +490,13 @@ // * Текст - ФорматированнаяСтрока // * Вложения - Массив из см. ОписаниеВложения // * Данные - Неопределено - см. синтакс-помощник СообщениеСистемыВзаимодействия -// * Действия - СписокЗначений - см. синтакс-помощник СообщениеСистемыВзаимодействия +// * ПанельКнопок - Структура - см. синтакс-помощник СообщениеСистемыВзаимодействия: +// ** ВидКнопок - Неопределено, ВидКнопкиПанелиКнопокСообщенияСистемыВзаимодействия - Неопределено на платформе +// ниже 8.3.25. +// ** РядыКнопок - Массив из Массив Из см. ОписаниеКнопки +// * Действия - СписокЗначений - устарел, следует использовать ПанельКнопок. +// +//@skip-check doc-comment-type // Функция ОписаниеСообщения(Знач Текст) Экспорт Описание = Новый Структура; @@ -500,10 +508,53 @@ Описание.Вставить("Текст", Текст); Описание.Вставить("Вложения", Новый Массив); Описание.Вставить("Данные", Неопределено); + Описание.Вставить("ПанельКнопок", Новый Структура("ВидКнопок, РядыКнопок", + ВидКнопкиПанелиКнопокСообщенияСистемыВзаимодействия(), + Новый Массив)); Описание.Вставить("Действия", Новый СписокЗначений); + Возврат Описание; КонецФункции +// Формирует описание кнопки панели кнопок для отправки сообщения через процедуры +// и функции подсистемы Обсуждения. +// +// Параметры: +// Действие - ДействиеКнопкиПанелиКнопокСообщенияСистемыВзаимодействия - действие кнопки. +// Текст - Строка - содержит надпись на кнопке. +// +// Возвращаемое значение: +// Структура: +// * Данные - Произвольный +// * Действие - ДействиеКнопкиПанелиКнопокСообщенияСистемыВзаимодействия +// * Доступность - Булево +// * ИмяДействия - Строка +// * Картинка - Неопределено, Картинка +// * НавигационнаяСсылка - Строка +// * Текст - Строка +// * ТекстСообщения - Строка +// +//@skip-check doc-comment-type +// +Функция ОписаниеКнопки(Действие, Текст) Экспорт + Если ТипЗнч(Текст) = Тип("Строка") Тогда + Текст = Новый ФорматированнаяСтрока(Текст); + КонецЕсли; + + Описание = Новый Структура; + Описание.Вставить("Данные", Неопределено); + Описание.Вставить("Действие", Действие); + Описание.Вставить("Доступность", Истина); + Описание.Вставить("ИмяДействия", ""); + Описание.Вставить("Картинка", Неопределено); + Описание.Вставить("НавигационнаяСсылка", ""); + Описание.Вставить("Текст", Текст); + Описание.Вставить("ТекстСообщения", ""); + + Возврат Описание; + +КонецФункции + // Формирует описание вложения для отправки сообщения через процедуры // и функции подсистемы Обсуждения. // @@ -631,6 +682,16 @@ #Область СлужебныеПроцедурыИФункции +Функция ВидКнопкиПанелиКнопокСообщенияСистемыВзаимодействия() + + Если ДоступнаПанельКнопок() Тогда + Возврат ОбщегоНазначения.ВычислитьВБезопасномРежиме("ВидКнопкиПанелиКнопокСообщенияСистемыВзаимодействия.ОбычнаяКнопка"); + Иначе + Возврат Неопределено; + КонецЕсли; + +КонецФункции + Процедура ОбновитьОписаниеПользователяВСистемеВзаимодействия(ПользовательСВ, ОписаниеПользователя) Фотография = ОписаниеПользователя.Фотография; @@ -735,13 +796,71 @@ Возврат Обсуждение; КонецФункции +// Параметры: +// Автор - ИдентификаторПользователяСистемыВзаимодействия +// Участник - ИдентификаторПользователяСистемыВзаимодействия +// Заголовок - Строка +// ТекстСообщения - Строка +// КлючОбсуждения - Строка +// +// Возвращаемое значение: +// ОбсуждениеСистемыВзаимодействия +// +Функция ГрупповоеОбсуждениеМеждуПользователями(Автор, Получатели, Заголовок, ТекстСообщения, КлючОбсуждения = Неопределено) + Обсуждение = Неопределено; + + Если ЗначениеЗаполнено(КлючОбсуждения) Тогда + Отбор = Новый ОтборОбсужденийСистемыВзаимодействия; + Отбор.КонтекстноеОбсуждение = Ложь; + Отбор.Групповое = Истина; + Отбор.Ключ = КлючОбсуждения; + НайденныеОбсуждения = СистемаВзаимодействия.ПолучитьОбсуждения(Отбор); + Если НайденныеОбсуждения.Количество() > 0 Тогда + Обсуждение = НайденныеОбсуждения[0]; + ПолучателиДляДобавления = Новый Массив; + Если Не Обсуждение.Участники.Содержит(Автор) Тогда + ПолучателиДляДобавления.Добавить(Автор); + КонецЕсли; + Для каждого Получатель Из Получатели Цикл + Если ТипЗнч(Получатель) = Тип("ИдентификаторПользователяСистемыВзаимодействия") + И Не Обсуждение.Участники.Содержит(Получатель) Тогда + ПолучателиДляДобавления.Добавить(Получатель); + ИначеЕсли ТипЗнч(Получатель) = Тип("ПользовательСистемыВзаимодействия") + И Не Обсуждение.Участники.Содержит(Получатель.Идентификатор) Тогда + ПолучателиДляДобавления.Добавить(Получатель.Идентификатор); + КонецЕсли; + КонецЦикла; + Если ПолучателиДляДобавления.Количество() > 0 Тогда + ДобавитьПолучателей(Обсуждение.Участники, ПолучателиДляДобавления); + КонецЕсли; + КонецЕсли; + КонецЕсли; + + Если Обсуждение = Неопределено Тогда + Обсуждение = СистемаВзаимодействия.СоздатьОбсуждение(); + Обсуждение.Отображаемое = Истина; + Обсуждение.Групповое = Истина; + Если ЗначениеЗаполнено(КлючОбсуждения) Тогда + Обсуждение.Ключ = КлючОбсуждения; + КонецЕсли; + Обсуждение.Заголовок = ?(ЗначениеЗаполнено(Заголовок), Заголовок, ТекстСообщения); + Обсуждение.Участники.Добавить(Автор); + ДобавитьПолучателей(Обсуждение.Участники, Получатели); + Обсуждение.Записать(); + КонецЕсли; + + Возврат Обсуждение; +КонецФункции + Функция СообщениеИзОписания(Автор, ИдентификаторОбсуждения, Получатели, Сообщение) СообщениеСВ = СистемаВзаимодействия.СоздатьСообщение(ИдентификаторОбсуждения); СообщениеСВ.Автор = Автор.Идентификатор; СообщениеСВ.Текст = Сообщение.Текст; СообщениеСВ.Данные = Сообщение.Данные; + Для каждого Действие Из Сообщение.Действия Цикл + //@skip-check bsl-legacy-check-dynamic-feature-access - для совместимости СообщениеСВ.Действия.Добавить(Действие.Значение, Действие.Представление); КонецЦикла; @@ -751,9 +870,38 @@ СообщениеСВ.Вложения.Добавить(Вложение.Поток, Вложение.Наименование, Вложение.ТипСодержимого, Вложение.Отображаемое); КонецЦикла; + + Если Сообщение.ПанельКнопок.ВидКнопок <> Неопределено + И ДоступнаПанельКнопок() И Сообщение.ПанельКнопок.РядыКнопок.Количество() > 0 Тогда + СообщениеСВ.ПанельКнопок.ВидКнопок = Сообщение.ПанельКнопок.ВидКнопок; + + Для каждого РядКнопок Из Сообщение.ПанельКнопок.РядыКнопок Цикл + ТекущийРяд = СообщениеСВ.ПанельКнопок.РядыКнопок.Добавить(); + Для каждого Кнопка Из РядКнопок Цикл + ТекущаяКнопка = ТекущийРяд.Добавить(Кнопка.Действие, Кнопка.Текст); + ТекущаяКнопка.Данные = Кнопка.Данные; + ТекущаяКнопка.Доступность = Кнопка.Доступность; + ТекущаяКнопка.ИмяДействия = Кнопка.ИмяДействия; + Если ТипЗнч(Кнопка.Картинка) = Тип("Картинка") Тогда + ТекущаяКнопка.Картинка = Кнопка.Картинка; + КонецЕсли; + ТекущаяКнопка.НавигационнаяСсылка = Кнопка.НавигационнаяСсылка; + ТекущаяКнопка.ТекстСообщения = Кнопка.ТекстСообщения; + КонецЦикла; + КонецЦикла; + КонецЕсли; + Возврат СообщениеСВ; КонецФункции +Функция ДоступнаПанельКнопок() + + СистемнаяИнформация = Новый СистемнаяИнформация(); + Версия = ОбщегоНазначенияКлиентСервер.ВерсияКонфигурацииБезНомераСборки(СистемнаяИнформация.ВерсияПриложения); + Возврат ОбщегоНазначенияКлиентСервер.СравнитьВерсииБезНомераСборки(Версия, "8.3.25") >= 0; + +КонецФункции + #КонецОбласти \ No newline at end of file diff --git a/SSL/src/CommonModules/ОбсужденияКлиент/Module.bsl b/SSL/src/CommonModules/ОбсужденияКлиент/Module.bsl index 4859642e6..031ab5887 100644 --- a/SSL/src/CommonModules/ОбсужденияКлиент/Module.bsl +++ b/SSL/src/CommonModules/ОбсужденияКлиент/Module.bsl @@ -1,5 +1,5 @@ /////////////////////////////////////////////////////////////////////////////////////////////////////// -// Copyright (c) 2024, ООО 1С-Софт +// Copyright (c) 2025, ООО 1С-Софт // Все права защищены. Эта программа и сопроводительные материалы предоставляются // в соответствии с условиями лицензии Attribution 4.0 International (CC BY 4.0) // Текст лицензии доступен по ссылке: diff --git a/SSL/src/CommonModules/ОбсужденияЛокализация/Module.bsl b/SSL/src/CommonModules/ОбсужденияЛокализация/Module.bsl index d277c6756..1751c0f30 100644 --- a/SSL/src/CommonModules/ОбсужденияЛокализация/Module.bsl +++ b/SSL/src/CommonModules/ОбсужденияЛокализация/Module.bsl @@ -1,5 +1,5 @@ /////////////////////////////////////////////////////////////////////////////////////////////////////// -// Copyright (c) 2024, ООО 1С-Софт +// Copyright (c) 2025, ООО 1С-Софт // Все права защищены. Эта программа и сопроводительные материалы предоставляются // в соответствии с условиями лицензии Attribution 4.0 International (CC BY 4.0) // Текст лицензии доступен по ссылке: @@ -16,6 +16,7 @@ Процедура ПриОпределенииДоступныхИнтеграций(ТипыВнешнихСистем) Экспорт // Локализация + ТипыВнешнихСистем.Добавить("MAX"); ТипыВнешнихСистем.Добавить("VK"); ТипыВнешнихСистем.Добавить("WhatsApp Devino"); // Конец Локализация diff --git a/SSL/src/CommonModules/ОбсужденияСлужебный/Module.bsl b/SSL/src/CommonModules/ОбсужденияСлужебный/Module.bsl index 383e99af1..57f844998 100644 --- a/SSL/src/CommonModules/ОбсужденияСлужебный/Module.bsl +++ b/SSL/src/CommonModules/ОбсужденияСлужебный/Module.bsl @@ -1,5 +1,5 @@ /////////////////////////////////////////////////////////////////////////////////////////////////////// -// Copyright (c) 2024, ООО 1С-Софт +// Copyright (c) 2025, ООО 1С-Софт // Все права защищены. Эта программа и сопроводительные материалы предоставляются // в соответствии с условиями лицензии Attribution 4.0 International (CC BY 4.0) // Текст лицензии доступен по ссылке: diff --git a/SSL/src/CommonModules/ОбсужденияСлужебныйВызовСервера/Module.bsl b/SSL/src/CommonModules/ОбсужденияСлужебныйВызовСервера/Module.bsl index d0dca19dd..d84cd208c 100644 --- a/SSL/src/CommonModules/ОбсужденияСлужебныйВызовСервера/Module.bsl +++ b/SSL/src/CommonModules/ОбсужденияСлужебныйВызовСервера/Module.bsl @@ -1,5 +1,5 @@ /////////////////////////////////////////////////////////////////////////////////////////////////////// -// Copyright (c) 2024, ООО 1С-Софт +// Copyright (c) 2025, ООО 1С-Софт // Все права защищены. Эта программа и сопроводительные материалы предоставляются // в соответствии с условиями лицензии Attribution 4.0 International (CC BY 4.0) // Текст лицензии доступен по ссылке: diff --git a/SSL/src/CommonModules/ОбсужденияСлужебныйКлиент/Module.bsl b/SSL/src/CommonModules/ОбсужденияСлужебныйКлиент/Module.bsl index 8360cbd5f..b9ba90014 100644 --- a/SSL/src/CommonModules/ОбсужденияСлужебныйКлиент/Module.bsl +++ b/SSL/src/CommonModules/ОбсужденияСлужебныйКлиент/Module.bsl @@ -1,5 +1,5 @@ /////////////////////////////////////////////////////////////////////////////////////////////////////// -// Copyright (c) 2024, ООО 1С-Софт +// Copyright (c) 2025, ООО 1С-Софт // Все права защищены. Эта программа и сопроводительные материалы предоставляются // в соответствии с условиями лицензии Attribution 4.0 International (CC BY 4.0) // Текст лицензии доступен по ссылке: @@ -109,6 +109,8 @@ ИмяФормы = "Обработка.ПодключениеОбсуждений.Форма"; Если ОписаниеИнтеграции.Тип = ТипыИнтеграции.Telegram Тогда ИмяФормы = ИмяФормы + ".СозданиеБотаTelegram"; + ИначеЕсли ОписаниеИнтеграции.Тип = ТипыИнтеграции.Max Тогда + ИмяФормы = ИмяФормы + ".СозданиеБотаMax"; ИначеЕсли ОписаниеИнтеграции.Тип = ТипыИнтеграции.ВКонтакте Тогда ИмяФормы = ИмяФормы + ".СозданиеБотаВКонтакте"; ИначеЕсли ОписаниеИнтеграции.Тип = ТипыИнтеграции.WhatsApp Тогда diff --git a/SSL/src/CommonModules/ОбсужденияСлужебныйКлиентСервер/Module.bsl b/SSL/src/CommonModules/ОбсужденияСлужебныйКлиентСервер/Module.bsl index 01ff090d6..7c8d8b169 100644 --- a/SSL/src/CommonModules/ОбсужденияСлужебныйКлиентСервер/Module.bsl +++ b/SSL/src/CommonModules/ОбсужденияСлужебныйКлиентСервер/Module.bsl @@ -1,5 +1,5 @@ /////////////////////////////////////////////////////////////////////////////////////////////////////// -// Copyright (c) 2024, ООО 1С-Софт +// Copyright (c) 2025, ООО 1С-Софт // Все права защищены. Эта программа и сопроводительные материалы предоставляются // в соответствии с условиями лицензии Attribution 4.0 International (CC BY 4.0) // Текст лицензии доступен по ссылке: @@ -11,6 +11,7 @@ Функция ТипыВнешнихСистем() Экспорт ТипыИнтеграций = Новый Структура; + ТипыИнтеграций.Вставить("Max", "MAX"); ТипыИнтеграций.Вставить("Telegram", "Telegram"); ТипыИнтеграций.Вставить("ВКонтакте", "VK"); ТипыИнтеграций.Вставить("WhatsApp", "WhatsApp Devino"); diff --git a/SSL/src/CommonModules/ОбщегоНазначения/Module.bsl b/SSL/src/CommonModules/ОбщегоНазначения/Module.bsl index 8d56861f6..93e496918 100644 --- a/SSL/src/CommonModules/ОбщегоНазначения/Module.bsl +++ b/SSL/src/CommonModules/ОбщегоНазначения/Module.bsl @@ -1,5 +1,5 @@ /////////////////////////////////////////////////////////////////////////////////////////////////////// -// Copyright (c) 2024, ООО 1С-Софт +// Copyright (c) 2025, ООО 1С-Софт // Все права защищены. Эта программа и сопроводительные материалы предоставляются // в соответствии с условиями лицензии Attribution 4.0 International (CC BY 4.0) // Текст лицензии доступен по ссылке: @@ -1218,6 +1218,8 @@ // Возвращаемое значение: // ТаблицаЗначений - неуспешные замены (ошибки): // * Ссылка - ЛюбаяСсылка - ссылка, которую заменяли. +// * ДубльРодитель - ЛюбаяСсылка - ссылка на дубль для группировки ошибок подчиненных объектов. +// Если нет связанных подчиненных, заполняется значением из колонки Ссылка. // * ОбъектОшибки - Произвольный - объект-причина ошибки. // * ПредставлениеОбъектаОшибки - Строка - строковое представление объекта ошибки. // * ТипОшибки - Строка - тип ошибки: @@ -1236,6 +1238,7 @@ ОшибкиЗамены = Новый ТаблицаЗначений; ОшибкиЗамены.Колонки.Добавить("Ссылка"); + ОшибкиЗамены.Колонки.Добавить("ДубльРодитель"); ОшибкиЗамены.Колонки.Добавить("ОбъектОшибки"); ОшибкиЗамены.Колонки.Добавить("ПредставлениеОбъектаОшибки", ТипСтрока); ОшибкиЗамены.Колонки.Добавить("ТипОшибки", ТипСтрока); @@ -1252,6 +1255,7 @@ ПараметрыПоискаМестИспользования = ПараметрыПоискаМестИспользования(); ДополнитьИсключенияПоискаСсылокПодчиненнымиОбъектами(ПараметрыПоискаМестИспользования.ДополнительныеИсключенияПоискаСсылок); ПараметрыВыполнения.Вставить("ПараметрыПоискаМестИспользования", ПараметрыПоискаМестИспользования); + ПараметрыВыполнения.Вставить("ПодчиненныеКДублям", Новый Соответствие()); ИнтеграцияПодсистемБСП.ПередПоискомМестИспользования(ПарыЗамен, ПараметрыВыполнения); @@ -1293,10 +1297,13 @@ Если ОшибкиРазметки.Количество() > 0 Тогда ПредставленияОбъектов = ПредметыСтрокой(ОбъектыСОшибками); Для Каждого Ошибка Из ОшибкиРазметки Цикл - ЗарегистрироватьОшибкуЗамены(Результат, Ошибка.Дубль, - ОписаниеОшибкиЗамены("НеизвестныеДанные", Ошибка.Объект, ПредставленияОбъектов[Ошибка.Объект], - Ошибка.Текст)); - КонецЦикла; + ЗарегистрироватьОшибкуЗамены( + Результат, + Ошибка.Дубль, + ОписаниеОшибкиЗамены("НеизвестныеДанные", Ошибка.Объект, ПредставленияОбъектов[Ошибка.Объект], + Ошибка.Текст), + ПараметрыВыполнения.ПодчиненныеКДублям); + КонецЦикла; КонецЕсли; // Замена и удаление найденных дублей. @@ -1359,7 +1366,7 @@ ДлительныеОперации.СообщитьПрогресс(0, НСтр("ru = 'Удаление дублей...'"), ДополнительныеПараметрыПрогресса); РезультатУдаления = МодульУдалениеПомеченныхОбъектов.УдалитьПомеченныеОбъекты(Результат.ОчередьКНепосредственномуУдалению); - ЗарегистрироватьОшибкиУдаления(Результат, РезультатУдаления.ПрепятствующиеУдалению); + ЗарегистрироватьОшибкиУдаления(Результат, РезультатУдаления.ПрепятствующиеУдалению, ПараметрыВыполнения); КонецЕсли; @@ -1424,8 +1431,10 @@ МестаИспользования = Новый ТаблицаЗначений; + ИсключенияПоискаРегистровПодчиненныхРегистратору = ОбщегоНазначенияКлиентСервер.СвойствоСтруктуры( + ДополнительныеПараметры, "ИсключенияПоискаРегистровПодчиненныхРегистратору", Неопределено); УстановитьПривилегированныйРежим(Истина); - МестаИспользования = НайтиПоСсылкам(НаборСсылок); // см. МестаИспользования. + МестаИспользования = НайтиПоСсылкам(НаборСсылок, , , ИсключенияПоискаРегистровПодчиненныхРегистратору); // см. МестаИспользования. УстановитьПривилегированныйРежим(Ложь); // МестаИспользования - ТаблицаЗначений - где: @@ -1549,18 +1558,21 @@ // Возвращаемое значение: // Структура: // * ДополнительныеИсключенияПоискаСсылок - Соответствие - позволяет расширить исключения поиска ссылок -// см. ОбщегоНазначенияПереопределяемый.ПриДобавленииИсключенийПоискаСсылок +// см. ОбщегоНазначенияПереопределяемый.ПриДобавленииИсключенийПоискаСсылок. // * ОтменаИсключенийПоискаСсылок - Массив из ОбъектМетаданных - полностью отменяет исключения поиска ссылок для // объектов метаданных. +// * ИсключенияПоискаРегистровПодчиненныхРегистратору - Массив из ОбъектМетаданных - если в см. ОбщегоНазначенияПереопределяемый.ПриДобавленииИсключенийПоискаСсылок +// указаны регистры подчиненные регистратору, то их необходимо добавить. // Функция ПараметрыПоискаМестИспользования() Экспорт - + ПараметрыПоиска = Новый Структура; ПараметрыПоиска.Вставить("ДополнительныеИсключенияПоискаСсылок", Новый Соответствие); ПараметрыПоиска.Вставить("ОтменаИсключенийПоискаСсылок", Новый Соответствие); - + ПараметрыПоиска.Вставить("ИсключенияПоискаРегистровПодчиненныхРегистратору", Новый Массив); + Возврат ПараметрыПоиска; - + КонецФункции // Возвращает исключения при поиске мест использования объектов. @@ -6427,6 +6439,78 @@ #Область БезопасноеВыполнениеВнешнегоКода +// Запускает фоновое задание с проверкой вызываемой процедуры. +// +// Параметры: +// ИмяМетода - Строка - также как у метода платформы ФоновыеЗадания.Выполнить. +// ПараметрыВыполнения - см. НовыеПараметрыВыполненияФоновогоЗадания +// - Неопределено - использовать значения по умолчанию. +// +// Возвращаемое значение: +// ФоновоеЗадание - также как у метода платформы ФоновыеЗадания.Выполнить. +// +Функция ВыполнитьФоновоеЗадание(Знач ИмяМетода, Знач ПараметрыВыполнения = Неопределено) Экспорт + + Если ПараметрыВыполнения = Неопределено Тогда + ПараметрыВыполнения = НовыеПараметрыВыполненияФоновогоЗадания(); + КонецЕсли; + + Попытка + СтандартныеПодсистемыСервер.ПроверитьМетодДляВызоваКакПроизвольныйКод(ИмяМетода, Истина); + Исключение + ИнформацияОбОшибке = ИнформацияОбОшибке(); + ЗаголовокОшибки = СтроковыеФункцииКлиентСервер.ПодставитьПараметрыВСтроку( + НСтр("ru = 'Неправильное значение параметра %1 (передано значение: ""%2"") в %3:'"), + "ИмяМетода", ИмяМетода, "ОбщегоНазначения.ВыполнитьФоновоеЗадание"); + Уточнение = ОбщегоНазначенияКлиентСервер.УточнениеИсключения(ИнформацияОбОшибке, ЗаголовокОшибки); + ВызватьИсключение(Уточнение.Текст, Уточнение.Категория,,, ИнформацияОбОшибке); + КонецПопытки; + + Если ПараметрыВыполнения.СРасширениямиБазыДанных = Истина Тогда + ФоновоеЗадание = РасширенияКонфигурации.ВыполнитьФоновоеЗаданиеСРасширениямиБазыДанных(ИмяМетода, + ПараметрыВыполнения.Параметры, ПараметрыВыполнения.Ключ, ПараметрыВыполнения.Наименование); + + ИначеЕсли ПараметрыВыполнения.СРасширениямиБазыДанных = Ложь Тогда + ФоновоеЗадание = РасширенияКонфигурации.ВыполнитьФоновоеЗаданиеБезРасширений(ИмяМетода, + ПараметрыВыполнения.Параметры, ПараметрыВыполнения.Ключ, ПараметрыВыполнения.Наименование); + Иначе + ФоновоеЗадание = ФоновыеЗадания.Выполнить(ИмяМетода, + ПараметрыВыполнения.Параметры, ПараметрыВыполнения.Ключ, ПараметрыВыполнения.Наименование); + КонецЕсли; + + Возврат ФоновоеЗадание; + +КонецФункции + +// Конструктор параметров для функции ВыполнитьФоновоеЗадание. +// +// Возвращаемое значение: +// Структура: +// * Параметры - Неопределено - значение по умолчанию. +// - Массив - также как у метода платформы ФоновыеЗадания.Выполнить. +// +// * Ключ - Неопределено - значение по умолчанию. +// - Строка - также как у метода платформы ФоновыеЗадания.Выполнить. +// +// * Наименование - Неопределено - значение по умолчанию. +// - Строка - также как у метода платформы ФоновыеЗадания.Выполнить. +// +// * СРасширениямиБазыДанных - Неопределено - ФоновыеЗадания.Выполнить +// - Булево - Истина - РасширенияКонфигурации.ВыполнитьФоновоеЗаданиеСРасширениямиБазыДанных +// Ложь - РасширенияКонфигурации.ВыполнитьФоновоеЗаданиеБезРасширений +// +Функция НовыеПараметрыВыполненияФоновогоЗадания() Экспорт + + Результат = Новый Структура; + Результат.Вставить("Параметры"); + Результат.Вставить("Ключ"); + Результат.Вставить("Наименование"); + Результат.Вставить("СРасширениямиБазыДанных"); + + Возврат Результат; + +КонецФункции + //////////////////////////////////////////////////////////////////////////////// // Функции для поддержки работы конфигурации с профилем безопасности, в котором // запрещено подключение внешних модулей без установки безопасного режима. @@ -7896,7 +7980,7 @@ Иначе ТаблицаПовторногоПоиска = МестаИспользования(ПроизводимыеЗамены,, ПараметрыВыполнения.ПараметрыПоискаМестИспользования); - ДобавитьРезультатыЗаменыИзмененныхОбъектов(Результат, ТаблицаПовторногоПоиска); + ДобавитьРезультатыЗаменыИзмененныхОбъектов(Результат, ТаблицаПовторногоПоиска, ПараметрыВыполнения); КонецЕсли; КонецПроцедуры @@ -7976,13 +8060,15 @@ МетаданныеКонстанты,, ОбработкаОшибок.ПодробноеПредставлениеОшибки(ИнформацияОбОшибке())); Если СостояниеОперации = "ОшибкаЗаписи" Тогда Для Каждого СтрокаТаблицы Из ОбрабатываемыеСтроки Цикл - ЗарегистрироватьОшибкуЗамены(Результат, СтрокаТаблицы.Ссылка, - ОписаниеОшибкиЗамены("ОшибкаЗаписи", Данные, ПредставлениеДанных, ИнформацияОбОшибке())); + ЗарегистрироватьОшибкуЗамены(Результат, СтрокаТаблицы.Ссылка, + ОписаниеОшибкиЗамены("ОшибкаЗаписи", Данные, ПредставлениеДанных, ИнформацияОбОшибке()), + ПараметрыЗаписи.ПодчиненныеКДублям); КонецЦикла; - Иначе - ЗарегистрироватьОшибкуЗамены(Результат, СтрокаТаблицы.Ссылка, - ОписаниеОшибкиЗамены(СостояниеОперации, Данные, ПредставлениеДанных, ИнформацияОбОшибке())); - КонецЕсли; + Иначе + ЗарегистрироватьОшибкуЗамены(Результат, СтрокаТаблицы.Ссылка, + ОписаниеОшибкиЗамены(СостояниеОперации, Данные, ПредставлениеДанных, ИнформацияОбОшибке()), + ПараметрыЗаписи.ПодчиненныеКДублям); + КонецЕсли; КонецПопытки; КонецПроцедуры @@ -8061,12 +8147,14 @@ МестоИспользования.Метаданные,, ОбработкаОшибок.ПодробноеПредставлениеОшибки(Информация)); Ошибка = ОписаниеОшибкиЗамены(СостояниеОперации, Данные, ПредставлениеДанных, ИнформацияОбОшибке()); Если СостояниеОперации = "ОшибкаЗаписи" Тогда - Для Каждого СтрокаТаблицы Из ОбрабатываемыеСтроки Цикл - ЗарегистрироватьОшибкуЗамены(Результат, СтрокаТаблицы.Ссылка, Ошибка); + Для Каждого СтрокаТаблицы Из ОбрабатываемыеСтроки Цикл + ЗарегистрироватьОшибкуЗамены(Результат, СтрокаТаблицы.Ссылка, Ошибка, + ПараметрыВыполнения.ПодчиненныеКДублям); КонецЦикла; - Иначе - ЗарегистрироватьОшибкуЗамены(Результат, МестоИспользования.Ссылка, Ошибка); - КонецЕсли; + Иначе + ЗарегистрироватьОшибкуЗамены(Результат, МестоИспользования.Ссылка, Ошибка, + ПараметрыВыполнения.ПодчиненныеКДублям); + КонецЕсли; КонецПопытки; // Помечаем как обработанные @@ -8172,11 +8260,13 @@ Ошибка = ОписаниеОшибкиЗамены(СостояниеОперации, Данные, ПредставлениеДанных, ИнформацияОбОшибке()); Если СостояниеОперации = "ОшибкаЗаписи" Тогда Для Каждого СтрокаТаблицы Из ОбрабатываемыеСтроки Цикл - ЗарегистрироватьОшибкуЗамены(Результат, СтрокаТаблицы.Ссылка, Ошибка); + ЗарегистрироватьОшибкуЗамены(Результат, СтрокаТаблицы.Ссылка, Ошибка, + ПараметрыВыполнения.ПодчиненныеКДублям); КонецЦикла; - Иначе - ЗарегистрироватьОшибкуЗамены(Результат, МестоИспользования.Ссылка, Ошибка); - КонецЕсли; + Иначе + ЗарегистрироватьОшибкуЗамены(Результат, МестоИспользования.Ссылка, Ошибка, + ПараметрыВыполнения.ПодчиненныеКДублям); + КонецЕсли; КонецПопытки; КонецПроцедуры @@ -8338,7 +8428,7 @@ Функция ИзмененныеОбъектыПриЗаменеВОбъекте(ПараметрыВыполнения, МестоИспользования, ОбрабатываемыеСтроки) Данные = МестоИспользования.Данные; ОписаниеПоследовательностей = ОписаниеПоследовательностей(МестоИспользования.Метаданные); - ОписаниеДвижений = ОписаниеДвижений(МестоИспользования.Метаданные); + ОписаниеДвижений = ОписаниеДвижений(МестоИспользования.Метаданные, ПараметрыВыполнения); ОписаниеЗадач = ОписаниеЗадач(МестоИспользования.Метаданные); УстановитьПривилегированныйРежим(Истина); @@ -8595,7 +8685,7 @@ КонецЦикла; Если МестаИспользования.Количество() > 0 Тогда - ДобавитьРезультатыЗаменыИзмененныхОбъектов(Результат, МестаИспользования); + ДобавитьРезультатыЗаменыИзмененныхОбъектов(Результат, МестаИспользования, ПараметрыВыполнения); Возврат Ложь; // Остались места использования, нельзя удалять. КонецЕсли; @@ -8621,7 +8711,7 @@ ВызватьИсключение(Уточнение.Текст, Уточнение.Категория,,, ИнформацияОбОшибке); Исключение ОписаниеОшибки = ОписаниеОшибкиЗамены("ОшибкаУдаления", УдаляемаяСсылка, ПредставлениеСсылки, ИнформацияОбОшибке()); - ЗарегистрироватьОшибкуЗамены(Результат, УдаляемаяСсылка, ОписаниеОшибки); + ЗарегистрироватьОшибкуЗамены(Результат, УдаляемаяСсылка, ОписаниеОшибки, ПараметрыВыполнения.ПодчиненныеКДублям); Если ЕстьВнешняяТранзакция Тогда ВызватьИсключение; КонецЕсли; @@ -8632,7 +8722,7 @@ КонецФункции -Процедура ДобавитьРезультатыЗаменыИзмененныхОбъектов(Результат, ТаблицаПовторногоПоиска) +Процедура ДобавитьРезультатыЗаменыИзмененныхОбъектов(Результат, ТаблицаПовторногоПоиска, ПараметрыВыполнения) Фильтр = Новый Структура("Ссылка, ОбъектОшибки"); Для Каждого СтрокаТаблицы Из ТаблицаПовторногоПоиска Цикл @@ -8647,10 +8737,11 @@ Если Результат.Ошибки.НайтиСтроки(Фильтр).Количество() > 0 Тогда Продолжить; // По данной проблеме уже записана ошибка. КонецЕсли; - - ЗарегистрироватьОшибкуЗамены(Результат, СтрокаТаблицы.Ссылка, + + ЗарегистрироватьОшибкуЗамены(Результат, СтрокаТаблицы.Ссылка, ОписаниеОшибкиЗамены("ДанныеИзменены", СтрокаТаблицы.Данные, ПредметСтрокой(СтрокаТаблицы.Данные), - НСтр("ru = 'Заменены не все места использования. Возможно места использования были добавлены или изменены другим пользователем.'"))); + НСтр("ru = 'Заменены не все места использования. Возможно места использования были добавлены или изменены другим пользователем.'")), + ПараметрыВыполнения.ПодчиненныеКДублям); КонецЦикла; КонецПроцедуры @@ -8732,7 +8823,8 @@ // Параметры: // ОбъектМетаданных - ОбъектМетаданных -// +// ПараметрыВыполнения - см. ПараметрыПоискаМестИспользования +// // Возвращаемое значение: // Массив из Структура: // * СписокПолей - Структура @@ -8741,15 +8833,27 @@ // * НаборЗаписей - РегистрСведенийНаборЗаписей // * ПространствоБлокировки - Строка // -Функция ОписаниеДвижений(Знач ОбъектМетаданных) +Функция ОписаниеДвижений(Знач ОбъектМетаданных, ПараметрыВыполнения = Неопределено) ОписаниеДвижений = Новый Массив; Если Не Метаданные.Документы.Содержит(ОбъектМетаданных) Тогда Возврат ОписаниеДвижений; КонецЕсли; + Исключения = ИсключенияПоискаСсылок(); + Для Каждого Движение Из ОбъектМетаданных.Движения Цикл + Если Исключения[Движение] = "*" Тогда + Если ПараметрыВыполнения <> Неопределено И ПараметрыВыполнения.УдалятьНепосредственно Тогда + ОбщегоНазначенияКлиентСервер.ДополнитьМассив( + ПараметрыВыполнения.ПараметрыПоискаМестИспользования.ИсключенияПоискаРегистровПодчиненныхРегистратору, + ОбщегоНазначенияКлиентСервер.ЗначениеВМассиве(Движение), Истина); + КонецЕсли; + + Продолжить; + КонецЕсли; + Если Метаданные.РегистрыНакопления.Содержит(Движение) Тогда НаборЗаписей = РегистрыНакопления[Движение.Имя].СоздатьНаборЗаписей(); ИсключатьПоля = "Активность, НомерСтроки, Период, Регистратор"; @@ -9271,8 +9375,9 @@ // Результат - см. РезультатЗаменыСсылок // Ссылка - ЛюбаяСсылка // ОписаниеОшибки - см. ОписаниеОшибкиЗамены +// ПодчиненныеКДублям - Соответствие, Неопределено // -Процедура ЗарегистрироватьОшибкуЗамены(Результат, Знач Ссылка, Знач ОписаниеОшибки) +Процедура ЗарегистрироватьОшибкуЗамены(Результат, Знач Ссылка, Знач ОписаниеОшибки, ПодчиненныеКДублям = Неопределено) Результат.ЕстьОшибки = Истина; @@ -9286,6 +9391,12 @@ ОбработкаОшибок.КраткоеПредставлениеОшибки(ОписаниеОшибки.ИнформацияОбОшибке), ОписаниеОшибки.ИнформацияОбОшибке); Строка.ТипОшибки = ОписаниеОшибки.ТипОшибки; + ДубльРодитель = Ссылка; + Если ПодчиненныеКДублям <> Неопределено И ПодчиненныеКДублям[Ссылка] <> Неопределено Тогда + ДубльРодитель = ПодчиненныеКДублям[Ссылка]; + КонецЕсли; + Строка.ДубльРодитель = ДубльРодитель; + КонецПроцедуры // Возвращаемое значение: @@ -9574,14 +9685,15 @@ КонецПроцедуры -Процедура ЗарегистрироватьОшибкиУдаления(Результат, ПрепятствующиеУдалению) +Процедура ЗарегистрироватьОшибкиУдаления(Результат, ПрепятствующиеУдалению, ПараметрыВыполнения) - ПредставленияСсылок = ПредметыСтрокой(ПрепятствующиеУдалению.ВыгрузитьКолонку("МестоИспользования")); + ПредставленияСсылок = ПредметыСтрокой(ПрепятствующиеУдалению.ВыгрузитьКолонку("МестоИспользования")); Для каждого ПрепятствующиеУдалению Из ПрепятствующиеУдалению Цикл ТекстОшибки = НСтр("ru = 'Элемент не удален, т.к. на него есть ссылки.'"); - ОписаниеОшибки = ОписаниеОшибкиЗамены("ОшибкаУдаления", ПрепятствующиеУдалению.МестоИспользования, + ОписаниеОшибки = ОписаниеОшибкиЗамены("ОшибкаУдаления", ПрепятствующиеУдалению.МестоИспользования, ПредставленияСсылок[ПрепятствующиеУдалению.МестоИспользования], ТекстОшибки); - ЗарегистрироватьОшибкуЗамены(Результат, ПрепятствующиеУдалению.УдаляемыйСсылка, ОписаниеОшибки); + ЗарегистрироватьОшибкуЗамены(Результат, ПрепятствующиеУдалению.УдаляемыйСсылка, ОписаниеОшибки, + ПараметрыВыполнения.ПодчиненныеКДублям); КонецЦикла; КонецПроцедуры @@ -9630,7 +9742,7 @@ Оригинал = ПарыЗамен[Дубль]; ТекстОшибки = КлючЗначение.Значение; Причина = ОписаниеОшибкиЗамены("ОшибкаЗаписи", Оригинал, ПредставленияОбъектов[Оригинал], ТекстОшибки); - ЗарегистрироватьОшибкуЗамены(Результат, Дубль, Причина); + ЗарегистрироватьОшибкуЗамены(Результат, Дубль, Причина, ПараметрыВыполнения.ПодчиненныеКДублям); КонецЦикла; КонецЕсли; Возврат Дубли; @@ -10483,7 +10595,7 @@ Если ЧастиИмени.Количество() <> 2 И ЧастиИмени.Количество() <> 3 Тогда ВызватьИсключение(СтроковыеФункцииКлиентСервер.ПодставитьПараметрыВСтроку( НСтр("ru = 'Неправильный формат параметра %1 (передано значение: ""%2"") в %3.'"), - "ИмяПроцедуры", ИмяПроцедуры, "ОбщегоНазначения.ВыполнитьМетодКонфигурации"), + "ИмяМетода", ИмяПроцедуры, "ОбщегоНазначения.ВыполнитьМетодКонфигурации"), КатегорияОшибки.ОшибкаКонфигурации); КонецЕсли; @@ -10492,7 +10604,7 @@ ВызватьИсключение(СтроковыеФункцииКлиентСервер.ПодставитьПараметрыВСтроку( НСтр("ru = 'Неправильный формат параметра %1 (передано значение: ""%2"") в %3: |Не существует общий модуль ""%4"".'"), - "ИмяПроцедуры", ИмяПроцедуры, "ОбщегоНазначения.ВыполнитьМетодКонфигурации", ИмяОбъекта), + "ИмяМетода", ИмяПроцедуры, "ОбщегоНазначения.ВыполнитьМетодКонфигурации", ИмяОбъекта), КатегорияОшибки.ОшибкаКонфигурации); КонецЕсли; @@ -10507,7 +10619,7 @@ ВызватьИсключение(СтроковыеФункцииКлиентСервер.ПодставитьПараметрыВСтроку( НСтр("ru = 'Неправильный формат параметра %1 (передано значение: ""%2"") в %3: |Не существует менеджер объекта ""%4"".'"), - "ИмяПроцедуры", ИмяПроцедуры, "ОбщегоНазначения.ВыполнитьМетодКонфигурации", ПолноеИмяОбъекта), + "ИмяМетода", ИмяПроцедуры, "ОбщегоНазначения.ВыполнитьМетодКонфигурации", ПолноеИмяОбъекта), КатегорияОшибки.ОшибкаКонфигурации); КонецЕсли; КонецЕсли; @@ -10524,7 +10636,7 @@ ВызватьИсключение(СтроковыеФункцииКлиентСервер.ПодставитьПараметрыВСтроку( НСтр("ru = 'Неправильный формат параметра %1 (передано значение: ""%2"") в %3: |Имя метода ""%4"" не соответствует требованиям образования имен процедур и функций.'"), - "ИмяПроцедуры", ИмяПроцедуры, "ОбщегоНазначения.ВыполнитьМетодКонфигурации", ИмяМетодаОбъекта), + "ИмяМетода", ИмяПроцедуры, "ОбщегоНазначения.ВыполнитьМетодКонфигурации", ИмяМетодаОбъекта), КатегорияОшибки.ОшибкаКонфигурации); КонецПопытки; @@ -10534,7 +10646,7 @@ ИнформацияОбОшибке = ИнформацияОбОшибке(); ЗаголовокОшибки = СтроковыеФункцииКлиентСервер.ПодставитьПараметрыВСтроку( НСтр("ru = 'Неправильное значение параметра %1 (передано значение: ""%2"") в %3:'"), - "ИмяПроцедуры", ИмяПроцедуры, "ОбщегоНазначения.ВыполнитьМетодКонфигурации"); + "ИмяМетода", ИмяПроцедуры, "ОбщегоНазначения.ВыполнитьМетодКонфигурации"); Уточнение = ОбщегоНазначенияКлиентСервер.УточнениеИсключения(ИнформацияОбОшибке, ЗаголовокОшибки); ВызватьИсключение(Уточнение.Текст, Уточнение.Категория,,, ИнформацияОбОшибке); КонецПопытки; diff --git a/SSL/src/CommonModules/ОбщегоНазначенияВызовСервера/Module.bsl b/SSL/src/CommonModules/ОбщегоНазначенияВызовСервера/Module.bsl index 62c221e72..e57ee8265 100644 --- a/SSL/src/CommonModules/ОбщегоНазначенияВызовСервера/Module.bsl +++ b/SSL/src/CommonModules/ОбщегоНазначенияВызовСервера/Module.bsl @@ -1,5 +1,5 @@ /////////////////////////////////////////////////////////////////////////////////////////////////////// -// Copyright (c) 2024, ООО 1С-Софт +// Copyright (c) 2025, ООО 1С-Софт // Все права защищены. Эта программа и сопроводительные материалы предоставляются // в соответствии с условиями лицензии Attribution 4.0 International (CC BY 4.0) // Текст лицензии доступен по ссылке: diff --git a/SSL/src/CommonModules/ОбщегоНазначенияГлобальный/Module.bsl b/SSL/src/CommonModules/ОбщегоНазначенияГлобальный/Module.bsl index 99368e7a1..a28d5652a 100644 --- a/SSL/src/CommonModules/ОбщегоНазначенияГлобальный/Module.bsl +++ b/SSL/src/CommonModules/ОбщегоНазначенияГлобальный/Module.bsl @@ -1,5 +1,5 @@ /////////////////////////////////////////////////////////////////////////////////////////////////////// -// Copyright (c) 2024, ООО 1С-Софт +// Copyright (c) 2025, ООО 1С-Софт // Все права защищены. Эта программа и сопроводительные материалы предоставляются // в соответствии с условиями лицензии Attribution 4.0 International (CC BY 4.0) // Текст лицензии доступен по ссылке: diff --git a/SSL/src/CommonModules/ОбщегоНазначенияКлиент/Module.bsl b/SSL/src/CommonModules/ОбщегоНазначенияКлиент/Module.bsl index c8c28ab7c..08853bae1 100644 --- a/SSL/src/CommonModules/ОбщегоНазначенияКлиент/Module.bsl +++ b/SSL/src/CommonModules/ОбщегоНазначенияКлиент/Module.bsl @@ -1,5 +1,5 @@ /////////////////////////////////////////////////////////////////////////////////////////////////////// -// Copyright (c) 2024, ООО 1С-Софт +// Copyright (c) 2025, ООО 1С-Софт // Все права защищены. Эта программа и сопроводительные материалы предоставляются // в соответствии с условиями лицензии Attribution 4.0 International (CC BY 4.0) // Текст лицензии доступен по ссылке: diff --git a/SSL/src/CommonModules/ОбщегоНазначенияКлиентПереопределяемый/Module.bsl b/SSL/src/CommonModules/ОбщегоНазначенияКлиентПереопределяемый/Module.bsl index f9625f0a0..22a9ad764 100644 --- a/SSL/src/CommonModules/ОбщегоНазначенияКлиентПереопределяемый/Module.bsl +++ b/SSL/src/CommonModules/ОбщегоНазначенияКлиентПереопределяемый/Module.bsl @@ -1,5 +1,5 @@ /////////////////////////////////////////////////////////////////////////////////////////////////////// -// Copyright (c) 2024, ООО 1С-Софт +// Copyright (c) 2025, ООО 1С-Софт // Все права защищены. Эта программа и сопроводительные материалы предоставляются // в соответствии с условиями лицензии Attribution 4.0 International (CC BY 4.0) // Текст лицензии доступен по ссылке: diff --git a/SSL/src/CommonModules/ОбщегоНазначенияКлиентПовтИсп/Module.bsl b/SSL/src/CommonModules/ОбщегоНазначенияКлиентПовтИсп/Module.bsl index b42347f51..e2d21954d 100644 --- a/SSL/src/CommonModules/ОбщегоНазначенияКлиентПовтИсп/Module.bsl +++ b/SSL/src/CommonModules/ОбщегоНазначенияКлиентПовтИсп/Module.bsl @@ -1,5 +1,5 @@ /////////////////////////////////////////////////////////////////////////////////////////////////////// -// Copyright (c) 2024, ООО 1С-Софт +// Copyright (c) 2025, ООО 1С-Софт // Все права защищены. Эта программа и сопроводительные материалы предоставляются // в соответствии с условиями лицензии Attribution 4.0 International (CC BY 4.0) // Текст лицензии доступен по ссылке: diff --git a/SSL/src/CommonModules/ОбщегоНазначенияКлиентСервер/Module.bsl b/SSL/src/CommonModules/ОбщегоНазначенияКлиентСервер/Module.bsl index 22421f8b0..021807798 100644 --- a/SSL/src/CommonModules/ОбщегоНазначенияКлиентСервер/Module.bsl +++ b/SSL/src/CommonModules/ОбщегоНазначенияКлиентСервер/Module.bsl @@ -1,5 +1,5 @@ /////////////////////////////////////////////////////////////////////////////////////////////////////// -// Copyright (c) 2024, ООО 1С-Софт +// Copyright (c) 2025, ООО 1С-Софт // Все права защищены. Эта программа и сопроводительные материалы предоставляются // в соответствии с условиями лицензии Attribution 4.0 International (CC BY 4.0) // Текст лицензии доступен по ссылке: @@ -531,7 +531,7 @@ НСтр("ru = 'Недопустимое значение свойства %1 в параметре %2 (Структура) в %3. |Ожидалось: %4; передано значение: %5 (тип %6).'"), ОжидаемоеИмяСвойства, ИмяПараметра, ИмяПроцедурыИлиФункции, - ПредставлениеТипов(ОжидаемыеТипы), + ПредставлениеТипов(ОжидаемыйТипСвойства), ?(ЗначениеСвойства <> Неопределено, ЗначениеСвойства, НСтр("ru = 'Неопределено'")), ТипЗнч(ЗначениеСвойства))); @@ -2210,21 +2210,27 @@ ИндексМаксимальногоКоэффициента = 0; МаксимальныйКоэффициент = 0; СуммаКоэффициентов = 0; - КоэффициентыОтрицательны = (КоэффициентыАбсолютные[0] < 0); + ЕстьОтрицательныеКоэффициенты = Ложь; + ЕстьПоложительныеКоэффициенты = Ложь; - Для Индекс = 0 По КоэффициентыАбсолютные.Количество() - 1 Цикл + Размерность = КоэффициентыАбсолютные.Количество(); + Для Индекс = 0 По Размерность - 1 Цикл Коэффициент = КоэффициентыАбсолютные[Индекс]; - Если КоэффициентыОтрицательны И Коэффициент > 0 Тогда - // Недопустимо значение параметра Коэффициенты - // Ожидалось: все коэффициенты положительны или все отрицательны одновременно. - Возврат Неопределено; - КонецЕсли; - Если Коэффициент < 0 Тогда // Если коэффициент меньше нуля, то его абсолютное значение отрицательное ему число. Коэффициент = -Коэффициент; // Abs(Коэффициент) КоэффициентыАбсолютные[Индекс] = Коэффициент; // Заменяем коэффициент в массиве. + + ЕстьОтрицательныеКоэффициенты = Истина; + ИначеЕсли Коэффициент > 0 Тогда + ЕстьПоложительныеКоэффициенты = Истина; + КонецЕсли; + + Если ЕстьОтрицательныеКоэффициенты И ЕстьПоложительныеКоэффициенты Тогда + // Недопустимо значение параметра Коэффициенты + // Ожидалось: все коэффициенты положительны или все отрицательны одновременно. + Возврат Неопределено; КонецЕсли; Если МаксимальныйКоэффициент < Коэффициент Тогда @@ -2258,29 +2264,27 @@ КонецЦикла; СуммарнаяПогрешность = РаспределяемаяСумма - РаспределеннаяСумма; - - Если СуммарнаяПогрешность > 0 Тогда - + Если СуммарнаяПогрешность = 0 Тогда + // Если СуммарнаяПогрешность = 0, то все идеально. + ИначеЕсли СуммарнаяПогрешность > 0 И ЗначениеЗаполнено(Точность) Тогда // Погрешности округления отнесем на коэффициент с максимальным весом. - Если Не РаспределеннаяСумма = РаспределяемаяСумма Тогда - Результат[ИндексМаксимальногоКоэффициента] = Результат[ИндексМаксимальногоКоэффициента] + СуммарнаяПогрешность; - КонецЕсли; + Результат[ИндексМаксимальногоКоэффициента] = Результат[ИндексМаксимальногоКоэффициента] + СуммарнаяПогрешность; + + Иначе + // Погрешности округления отнесем на коэффициенты с максимальным весом, распределяя с шагом в 1 + ИндексыВПорядкеВеса = ИндексыВПорядкеВеса(КоэффициентыАбсолютные); + ЗначениеПогрешности = 1 / Pow(10, Точность) * ?(СуммарнаяПогрешность < 0, -1, 1); - ИначеЕсли СуммарнаяПогрешность < 0 Тогда - - // Если распределили больше чем положено, размазываем погрешность по ближайшим максимальным весам. - ЗначениеПогрешности = 1 / Pow(10, Точность); - КоличествоЭлементовПогрешности = -СуммарнаяПогрешность / ЗначениеПогрешности; - - Для Сч = 1 По КоличествоЭлементовПогрешности Цикл - МаксимальныйКоэффициент = МаксимальноеЗначениеВМассиве(КоэффициентыАбсолютные); - Индекс = КоэффициентыАбсолютные.Найти(МаксимальныйКоэффициент); - Результат[Индекс] = Результат[Индекс] - ЗначениеПогрешности; - КоэффициентыАбсолютные[Индекс] = 0; + КоличествоЭлементовПогрешности = ЦЕЛ(СуммарнаяПогрешность / ЗначениеПогрешности); + ИндексВеса = -1; + Для НомерЭлементаПогрешности = 1 По КоличествоЭлементовПогрешности Цикл + ИндексВеса = ИндексВеса + 1; + Если ИндексВеса = Размерность Тогда + ИндексВеса = 0; + КонецЕсли; + Индекс = ИндексыВПорядкеВеса[ИндексВеса]; + Результат[Индекс] = Результат[Индекс] + ЗначениеПогрешности; КонецЦикла; - - Иначе - // Если СуммарнаяПогрешность = 0, то все идеально. КонецЕсли; Если ВыполнятьИнверсию Тогда @@ -2693,7 +2697,11 @@ // // Параметры: // СертификатКлиента - СертификатКлиентаФайл +// - СертификатКлиентаОС // - СертификатКлиентаWindows +// - СертификатКлиентаLinux +// - СертификатКлиентаMacOS +// - СертификатКриптографии // - Неопределено - клиентский сертификат OpenSSL. // СертификатыУдостоверяющихЦентров - СертификатыУдостоверяющихЦентровФайл // - СертификатыУдостоверяющихЦентровWindows @@ -4625,20 +4633,28 @@ #Область РаспределитьСуммуПропорциональноКоэффициентам -Функция МаксимальноеЗначениеВМассиве(Массив) +// Создает массив индексов исходного массива, отсортированных по убыванию значений исходного массива. +// Т.е. первое значение это индекс элемента с максимальным значением, второе - с максимальным значением из оставшихся и т.д. +// +// Параметры: +// Массив - Массив из Число +// +// Возвращаемое значение: +// Массив из Число +// +Функция ИндексыВПорядкеВеса(Знач Массив) + Результат = Новый Массив(); - МаксимальноеЗначение = 0; + Сортировка = Новый СписокЗначений; + Сортировка.ЗагрузитьЗначения(Массив); + Сортировка.СортироватьПоЗначению(НаправлениеСортировки.Убыв); - Для Индекс = 0 По Массив.Количество() - 1 Цикл - Значение = Массив[Индекс]; - - Если МаксимальноеЗначение < Значение Тогда - МаксимальноеЗначение = Значение; - КонецЕсли; + Для каждого ЭлемСписка Из Сортировка Цикл + Индекс = Массив.Найти(ЭлемСписка.Значение); + Результат.Добавить(Индекс); + Массив[Индекс] = Неопределено; КонецЦикла; - - Возврат МаксимальноеЗначение; - + Возврат Результат; КонецФункции #КонецОбласти diff --git a/SSL/src/CommonModules/ОбщегоНазначенияПереопределяемый/Module.bsl b/SSL/src/CommonModules/ОбщегоНазначенияПереопределяемый/Module.bsl index bc7867014..46536212f 100644 --- a/SSL/src/CommonModules/ОбщегоНазначенияПереопределяемый/Module.bsl +++ b/SSL/src/CommonModules/ОбщегоНазначенияПереопределяемый/Module.bsl @@ -1,5 +1,5 @@ /////////////////////////////////////////////////////////////////////////////////////////////////////// -// Copyright (c) 2024, ООО 1С-Софт +// Copyright (c) 2025, ООО 1С-Софт // Все права защищены. Эта программа и сопроводительные материалы предоставляются // в соответствии с условиями лицензии Attribution 4.0 International (CC BY 4.0) // Текст лицензии доступен по ссылке: @@ -474,7 +474,7 @@ // Параметры: // Настройки - Структура: // * ОписаниеОбработчиков - ТаблицаЗначений: -// ** ИменаПроцедур - Соответствие из КлючИЗначение +// ** ИменаПроцедур - Соответствие из КлючИЗначение: // *** Ключ - см. ОбщегоНазначения.ВыполнитьМетодКонфигурации.ИмяМетода // *** Значение - Неопределено, Булево - если Истина, тогда требуется разрешение на запуск в фоне. // ** ЗаголовокОшибки - Строка - заголовок ошибки с параметром для полного имени процедуры обработчика. diff --git a/SSL/src/CommonModules/ОбщегоНазначенияСлужебныйКлиент/Module.bsl b/SSL/src/CommonModules/ОбщегоНазначенияСлужебныйКлиент/Module.bsl index d62c75a7f..c587dc50b 100644 --- a/SSL/src/CommonModules/ОбщегоНазначенияСлужебныйКлиент/Module.bsl +++ b/SSL/src/CommonModules/ОбщегоНазначенияСлужебныйКлиент/Module.bsl @@ -1,5 +1,5 @@ /////////////////////////////////////////////////////////////////////////////////////////////////////// -// Copyright (c) 2024, ООО 1С-Софт +// Copyright (c) 2025, ООО 1С-Софт // Все права защищены. Эта программа и сопроводительные материалы предоставляются // в соответствии с условиями лицензии Attribution 4.0 International (CC BY 4.0) // Текст лицензии доступен по ссылке: diff --git a/SSL/src/CommonModules/ОбщегоНазначенияСлужебныйКлиентСервер/Module.bsl b/SSL/src/CommonModules/ОбщегоНазначенияСлужебныйКлиентСервер/Module.bsl index 845fb17c6..ace8a1304 100644 --- a/SSL/src/CommonModules/ОбщегоНазначенияСлужебныйКлиентСервер/Module.bsl +++ b/SSL/src/CommonModules/ОбщегоНазначенияСлужебныйКлиентСервер/Module.bsl @@ -1,5 +1,5 @@ /////////////////////////////////////////////////////////////////////////////////////////////////////// -// Copyright (c) 2024, ООО 1С-Софт +// Copyright (c) 2025, ООО 1С-Софт // Все права защищены. Эта программа и сопроводительные материалы предоставляются // в соответствии с условиями лицензии Attribution 4.0 International (CC BY 4.0) // Текст лицензии доступен по ссылке: @@ -37,6 +37,7 @@ "КомандаЗапуска"); КонецЕсли; + // АПК:547-выкл инструкция препроцессора допустима, так как в выполняемом коде нет обращения к модулям. #Если Сервер Или ТолстыйКлиентОбычноеПриложение Или ВнешнееСоединение Тогда //@skip-check bsl-legacy-check-for-each-statetement-collection Для Каждого Элемент Из КомандаЗапуска Цикл @@ -45,6 +46,7 @@ #Иначе ПроверитьСодержитНебезопасныеДействия(КомандаЗапуска[0], ЭтоАдминистратор); #КонецЕсли + // АПК:547-вкл Возврат МассивВСтрокуКоманды(КомандаЗапуска); diff --git a/SSL/src/CommonModules/ОрганизацииПереопределяемый/Module.bsl b/SSL/src/CommonModules/ОрганизацииПереопределяемый/Module.bsl index e056d0928..a15f89080 100644 --- a/SSL/src/CommonModules/ОрганизацииПереопределяемый/Module.bsl +++ b/SSL/src/CommonModules/ОрганизацииПереопределяемый/Module.bsl @@ -1,5 +1,5 @@ /////////////////////////////////////////////////////////////////////////////////////////////////////// -// Copyright (c) 2024, ООО 1С-Софт +// Copyright (c) 2025, ООО 1С-Софт // Все права защищены. Эта программа и сопроводительные материалы предоставляются // в соответствии с условиями лицензии Attribution 4.0 International (CC BY 4.0) // Текст лицензии доступен по ссылке: diff --git a/SSL/src/CommonModules/ОрганизацииСервер/Module.bsl b/SSL/src/CommonModules/ОрганизацииСервер/Module.bsl index d7eff4351..59cc9b996 100644 --- a/SSL/src/CommonModules/ОрганизацииСервер/Module.bsl +++ b/SSL/src/CommonModules/ОрганизацииСервер/Module.bsl @@ -1,5 +1,5 @@ /////////////////////////////////////////////////////////////////////////////////////////////////////// -// Copyright (c) 2024, ООО 1С-Софт +// Copyright (c) 2025, ООО 1С-Софт // Все права защищены. Эта программа и сопроводительные материалы предоставляются // в соответствии с условиями лицензии Attribution 4.0 International (CC BY 4.0) // Текст лицензии доступен по ссылке: diff --git a/SSL/src/CommonModules/ОтправкаSMS/Module.bsl b/SSL/src/CommonModules/ОтправкаSMS/Module.bsl index 041ba0b8c..8e8b07fc8 100644 --- a/SSL/src/CommonModules/ОтправкаSMS/Module.bsl +++ b/SSL/src/CommonModules/ОтправкаSMS/Module.bsl @@ -1,5 +1,5 @@ /////////////////////////////////////////////////////////////////////////////////////////////////////// -// Copyright (c) 2024, ООО 1С-Софт +// Copyright (c) 2025, ООО 1С-Софт // Все права защищены. Эта программа и сопроводительные материалы предоставляются // в соответствии с условиями лицензии Attribution 4.0 International (CC BY 4.0) // Текст лицензии доступен по ссылке: diff --git a/SSL/src/CommonModules/ОтправкаSMSКлиент/Module.bsl b/SSL/src/CommonModules/ОтправкаSMSКлиент/Module.bsl index 2416eb531..d07829d13 100644 --- a/SSL/src/CommonModules/ОтправкаSMSКлиент/Module.bsl +++ b/SSL/src/CommonModules/ОтправкаSMSКлиент/Module.bsl @@ -1,5 +1,5 @@ /////////////////////////////////////////////////////////////////////////////////////////////////////// -// Copyright (c) 2024, ООО 1С-Софт +// Copyright (c) 2025, ООО 1С-Софт // Все права защищены. Эта программа и сопроводительные материалы предоставляются // в соответствии с условиями лицензии Attribution 4.0 International (CC BY 4.0) // Текст лицензии доступен по ссылке: diff --git a/SSL/src/CommonModules/ОтправкаSMSКлиентПереопределяемый/Module.bsl b/SSL/src/CommonModules/ОтправкаSMSКлиентПереопределяемый/Module.bsl index f56ca9b5f..3240cb303 100644 --- a/SSL/src/CommonModules/ОтправкаSMSКлиентПереопределяемый/Module.bsl +++ b/SSL/src/CommonModules/ОтправкаSMSКлиентПереопределяемый/Module.bsl @@ -1,5 +1,5 @@ /////////////////////////////////////////////////////////////////////////////////////////////////////// -// Copyright (c) 2024, ООО 1С-Софт +// Copyright (c) 2025, ООО 1С-Софт // Все права защищены. Эта программа и сопроводительные материалы предоставляются // в соответствии с условиями лицензии Attribution 4.0 International (CC BY 4.0) // Текст лицензии доступен по ссылке: diff --git a/SSL/src/CommonModules/ОтправкаSMSПереопределяемый/Module.bsl b/SSL/src/CommonModules/ОтправкаSMSПереопределяемый/Module.bsl index 62eca5dd9..f6fd9f80c 100644 --- a/SSL/src/CommonModules/ОтправкаSMSПереопределяемый/Module.bsl +++ b/SSL/src/CommonModules/ОтправкаSMSПереопределяемый/Module.bsl @@ -1,5 +1,5 @@ /////////////////////////////////////////////////////////////////////////////////////////////////////// -// Copyright (c) 2024, ООО 1С-Софт +// Copyright (c) 2025, ООО 1С-Софт // Все права защищены. Эта программа и сопроводительные материалы предоставляются // в соответствии с условиями лицензии Attribution 4.0 International (CC BY 4.0) // Текст лицензии доступен по ссылке: diff --git a/SSL/src/CommonModules/ОтправкаSMSПовтИсп/Module.bsl b/SSL/src/CommonModules/ОтправкаSMSПовтИсп/Module.bsl index 37c968284..4574bff13 100644 --- a/SSL/src/CommonModules/ОтправкаSMSПовтИсп/Module.bsl +++ b/SSL/src/CommonModules/ОтправкаSMSПовтИсп/Module.bsl @@ -1,5 +1,5 @@ /////////////////////////////////////////////////////////////////////////////////////////////////////// -// Copyright (c) 2024, ООО 1С-Софт +// Copyright (c) 2025, ООО 1С-Софт // Все права защищены. Эта программа и сопроводительные материалы предоставляются // в соответствии с условиями лицензии Attribution 4.0 International (CC BY 4.0) // Текст лицензии доступен по ссылке: diff --git a/SSL/src/CommonModules/ОтправкаSMSЧерезSMS4B/Module.bsl b/SSL/src/CommonModules/ОтправкаSMSЧерезSMS4B/Module.bsl index bb59c0210..eafb94720 100644 --- a/SSL/src/CommonModules/ОтправкаSMSЧерезSMS4B/Module.bsl +++ b/SSL/src/CommonModules/ОтправкаSMSЧерезSMS4B/Module.bsl @@ -1,5 +1,5 @@ /////////////////////////////////////////////////////////////////////////////////////////////////////// -// Copyright (c) 2024, ООО 1С-Софт +// Copyright (c) 2025, ООО 1С-Софт // Все права защищены. Эта программа и сопроводительные материалы предоставляются // в соответствии с условиями лицензии Attribution 4.0 International (CC BY 4.0) // Текст лицензии доступен по ссылке: @@ -11,51 +11,27 @@ // Отправляет SMS через SMS4B. // // Параметры: -// НомераПолучателей - Массив - номера получателей в формате +7ХХХХХХХХХХ; -// Текст - Строка - текст сообщения, длиной не более 480 символов; -// ИмяОтправителя - Строка - имя отправителя, которое будет отображаться вместо номера входящего SMS; -// Логин - Строка - логин пользователя услуги отправки sms; -// Пароль - Строка - пароль пользователя услуги отправки sms. +// НомераПолучателей - Массив - номера получателей в формате +7ХХХХХХХХХХ. +// Текст - Строка - текст сообщения, длиной не более 480 символов. +// ИмяОтправителя - Строка - имя отправителя, которое будет отображаться вместо номера входящего SMS. +// Логин - Строка - логин пользователя услуги отправки SMS. +// Пароль - Строка - пароль пользователя услуги отправки SMS. // // Возвращаемое значение: -// см. ОтправкаSMS.ОтправитьSMS. +// см. ОтправкаSMS.ОтправитьSMS. // Функция ОтправитьSMS(НомераПолучателей, Текст, ИмяОтправителя, Логин, Пароль) Экспорт - Результат = Новый Структура("ОтправленныеСообщения,ОписаниеОшибки", Новый Массив, ""); + УстановитьПривилегированныйРежим(Истина); + НастройкиОтправкиSMS = ОтправкаSMS.НастройкиОтправкиSMS(); + УстановитьПривилегированныйРежим(Ложь); - ПараметрыЗапроса = Новый Структура; - ПараметрыЗапроса.Вставить("Login", Логин); - ПараметрыЗапроса.Вставить("Password", Пароль); - ПараметрыЗапроса.Вставить("Source", ИмяОтправителя); - ПараметрыЗапроса.Вставить("Text", Текст); - - Для Каждого НомерПолучателя Из НомераПолучателей Цикл - ПараметрыЗапроса.Вставить("Phone", ФорматироватьНомер(НомерПолучателя)); - РезультатЗапроса = ВыполнитьЗапрос("SendTXT", ПараметрыЗапроса); - - Если Не ЗначениеЗаполнено(РезультатЗапроса) Тогда - Результат.ОписаниеОшибки = Результат.ОписаниеОшибки + НСтр("ru = 'Соединение не установлено'"); - Возврат Результат; - КонецЕсли; - - Если СтрДлина(РезультатЗапроса) = 20 Тогда - ОтправленноеСообщение = Новый Структура("НомерПолучателя,ИдентификаторСообщения", НомерПолучателя, РезультатЗапроса); - Результат.ОтправленныеСообщения.Добавить(ОтправленноеСообщение); - Иначе - Результат.ОписаниеОшибки = Результат.ОписаниеОшибки + СтроковыеФункцииКлиентСервер.ПодставитьПараметрыВСтроку( - НСтр("ru = 'SMS на номер %1 не отправлено'"), НомерПолучателя) + ": " + ОписаниеОшибкиОтправки(РезультатЗапроса) + Символы.ПС; - КонецЕсли; - КонецЦикла; - - Результат.ОписаниеОшибки = СокрП(Результат.ОписаниеОшибки); - Если Не ПустаяСтрока(Результат.ОписаниеОшибки) Тогда - ЗаписьЖурналаРегистрации(НСтр("ru = 'Отправка SMS'", ОбщегоНазначения.КодОсновногоЯзыка()), - УровеньЖурналаРегистрации.Ошибка, , , Результат.ОписаниеОшибки); + Если НастройкиОтправкиSMS.Свойство("СпособАвторизации") И НастройкиОтправкиSMS.СпособАвторизации = "ПоКлючу" Тогда + Возврат ОтправитьSMSНовыйAPI(НомераПолучателей, Текст, ИмяОтправителя); + Иначе + Возврат ОтправитьSMSСтарыйAPI(НомераПолучателей, Текст, ИмяОтправителя, Логин, Пароль); КонецЕсли; - Возврат Результат; - КонецФункции // Возвращает текстовое представление статуса доставки сообщения. @@ -65,39 +41,25 @@ // НастройкиОтправкиSMS - см. ОтправкаSMS.НастройкиОтправкиSMS. // // Возвращаемое значение: -// см. ОтправкаSMS.СтатусДоставки. +// см. ОтправкаSMS.СтатусДоставки. // Функция СтатусДоставки(ИдентификаторСообщения, НастройкиОтправкиSMS) Экспорт - Логин = НастройкиОтправкиSMS.Логин; - Пароль = НастройкиОтправкиSMS.Пароль; + УстановитьПривилегированныйРежим(Истина); + НастройкиОтправкиSMS = ОтправкаSMS.НастройкиОтправкиSMS(); + УстановитьПривилегированныйРежим(Ложь); - // Подготовка параметров запроса. - ПараметрыЗапроса = Новый Структура; - ПараметрыЗапроса.Вставить("Login", Логин); - ПараметрыЗапроса.Вставить("Password", Пароль); - ПараметрыЗапроса.Вставить("MessageId", ИдентификаторСообщения); - - // отправка запроса - КодСостояния = ВыполнитьЗапрос("StatusTXT", ПараметрыЗапроса); - Если ПустаяСтрока(КодСостояния) Тогда - Возврат "Ошибка"; + Если НастройкиОтправкиSMS.Свойство("СпособАвторизации") И НастройкиОтправкиSMS.СпособАвторизации = "ПоКлючу" Тогда + ИдентификаторыСообщений = ОбщегоНазначенияКлиентСервер.ЗначениеВМассиве(ИдентификаторСообщения); + Возврат СтатусыДоставки(ИдентификаторыСообщений, НастройкиОтправкиSMS)[ИдентификаторСообщения]; + Иначе + Возврат СтатусДоставкиСтарыйAPI(ИдентификаторСообщения, НастройкиОтправкиSMS); КонецЕсли; - Результат = СтатусДоставкиSMS(КодСостояния); - Если Результат = "Ошибка" Тогда - ОписаниеОшибки = СтроковыеФункцииКлиентСервер.ПодставитьПараметрыВСтроку(НСтр( - "ru = 'Не удалось получить статус доставки SMS (id: ""%3""): - |%1 (код ошибки: %2)'"), ОписаниеОшибкиПолученияСтатуса(КодСостояния), КодСостояния, ИдентификаторСообщения); - ЗаписьЖурналаРегистрации(НСтр("ru = 'Отправка SMS'", ОбщегоНазначения.КодОсновногоЯзыка()), - УровеньЖурналаРегистрации.Ошибка, , , ОписаниеОшибки); - КонецЕсли; - - Возврат Результат; - КонецФункции Функция СтатусДоставкиSMS(Знач КодСостояния) + СоответствиеСтатусов = Новый Соответствие; СоответствиеСтатусов.Вставить("-21", "НеОтправлялось"); СоответствиеСтатусов.Вставить("-22", "НеОтправлялось"); @@ -129,9 +91,90 @@ КонецЕсли; Возврат Результат; + +КонецФункции + +#Область СтарыйAPI + +Функция ОтправитьSMSСтарыйAPI(НомераПолучателей, Текст, ИмяОтправителя, Логин, Пароль) + + Результат = Новый Структура("ОтправленныеСообщения,ОписаниеОшибки", Новый Массив, ""); + + ПараметрыЗапроса = Новый Структура; + ПараметрыЗапроса.Вставить("Login", Логин); + ПараметрыЗапроса.Вставить("Password", Пароль); + ПараметрыЗапроса.Вставить("Source", ИмяОтправителя); + ПараметрыЗапроса.Вставить("Text", Текст); + + Для Каждого НомерПолучателя Из НомераПолучателей Цикл + ПараметрыЗапроса.Вставить("Phone", ФорматироватьНомер(НомерПолучателя)); + РезультатЗапроса = ВыполнитьЗапрос("SendTXT", ПараметрыЗапроса); + + Если Не ЗначениеЗаполнено(РезультатЗапроса) Тогда + Результат.ОписаниеОшибки = Результат.ОписаниеОшибки + НСтр("ru = 'Соединение не установлено'"); + Возврат Результат; + КонецЕсли; + + Если СтрДлина(РезультатЗапроса) = 20 Тогда + ОтправленноеСообщение = Новый Структура("НомерПолучателя,ИдентификаторСообщения", НомерПолучателя, РезультатЗапроса); + Результат.ОтправленныеСообщения.Добавить(ОтправленноеСообщение); + Иначе + Результат.ОписаниеОшибки = Результат.ОписаниеОшибки + СтроковыеФункцииКлиентСервер.ПодставитьПараметрыВСтроку( + НСтр("ru = 'SMS на номер %1 не отправлено'"), НомерПолучателя) + ": " + ОписаниеОшибкиОтправки(РезультатЗапроса) + Символы.ПС; + КонецЕсли; + КонецЦикла; + + Результат.ОписаниеОшибки = СокрП(Результат.ОписаниеОшибки); + Если Не ПустаяСтрока(Результат.ОписаниеОшибки) Тогда + ЗаписьЖурналаРегистрации(НСтр("ru = 'Отправка SMS'", ОбщегоНазначения.КодОсновногоЯзыка()), + УровеньЖурналаРегистрации.Ошибка, , , Результат.ОписаниеОшибки); + КонецЕсли; + + Возврат Результат; + +КонецФункции + +// Возвращает текстовое представление статуса доставки сообщения. +// +// Параметры: +// ИдентификаторСообщения - Строка - идентификатор, присвоенный sms при отправке. +// НастройкиОтправкиSMS - см. ОтправкаSMS.НастройкиОтправкиSMS. +// +// Возвращаемое значение: +// см. ОтправкаSMS.СтатусДоставки. +// +Функция СтатусДоставкиСтарыйAPI(ИдентификаторСообщения, НастройкиОтправкиSMS) + + Логин = НастройкиОтправкиSMS.Логин; + Пароль = НастройкиОтправкиSMS.Пароль; + + // Подготовка параметров запроса. + ПараметрыЗапроса = Новый Структура; + ПараметрыЗапроса.Вставить("Login", Логин); + ПараметрыЗапроса.Вставить("Password", Пароль); + ПараметрыЗапроса.Вставить("MessageId", ИдентификаторСообщения); + + // Отправка запроса. + КодСостояния = ВыполнитьЗапрос("StatusTXT", ПараметрыЗапроса); + Если ПустаяСтрока(КодСостояния) Тогда + Возврат "Ошибка"; + КонецЕсли; + + Результат = СтатусДоставкиSMS(КодСостояния); + Если Результат = "Ошибка" Тогда + ОписаниеОшибки = СтроковыеФункцииКлиентСервер.ПодставитьПараметрыВСтроку(НСтр( + "ru = 'Не удалось получить статус доставки SMS (id: ""%3""): + |%1 (код ошибки: %2)'"), ОписаниеОшибкиПолученияСтатуса(КодСостояния), КодСостояния, ИдентификаторСообщения); + ЗаписьЖурналаРегистрации(НСтр("ru = 'Отправка SMS'", ОбщегоНазначения.КодОсновногоЯзыка()), + УровеньЖурналаРегистрации.Ошибка, , , ОписаниеОшибки); + КонецЕсли; + + Возврат Результат; + КонецФункции Функция ОписанияОшибок() + ОписанияОшибок = Новый Соответствие; ОписанияОшибок.Вставить("0", НСтр("ru = 'Превышен предел открытых сессий.'")); @@ -152,25 +195,34 @@ ОписанияОшибок.Вставить("-68", НСтр("ru = 'Аккаунт заблокирован.'")); Возврат ОписанияОшибок; + КонецФункции Функция ОписаниеОшибкиОтправки(КодОшибки) + ОписанияОшибок = ОписанияОшибок(); ТекстСообщения = ОписанияОшибок[КодОшибки]; + Если ТекстСообщения = Неопределено Тогда ТекстСообщения = СтроковыеФункцииКлиентСервер.ПодставитьПараметрыВСтроку( НСтр("ru = 'Код ошибки: ""%1"".'"), КодОшибки); КонецЕсли; + Возврат ТекстСообщения; + КонецФункции Функция ОписаниеОшибкиПолученияСтатуса(КодОшибки) + ОписанияОшибок =ОписанияОшибок(); ТекстСообщения = ОписанияОшибок[КодОшибки]; + Если ТекстСообщения = Неопределено Тогда ТекстСообщения = НСтр("ru = 'Отказ выполнения операции'"); КонецЕсли; + Возврат ТекстСообщения; + КонецФункции Функция ВыполнитьЗапрос(ИмяМетода, ПараметрыЗапроса) @@ -179,9 +231,9 @@ HTTPОтвет = Неопределено; Попытка - Соединение = Новый HTTPСоединение("sms4b.ru",,,, + Соединение = Новый HTTPСоединение("sms4b.ru",,,, ПолучениеФайловИзИнтернета.ПолучитьПрокси("https"), - 60, + 60, ОбщегоНазначенияКлиентСервер.НовоеЗащищенноеСоединение()); HTTPОтвет = Соединение.ОтправитьДляОбработки(HTTPЗапрос); @@ -210,13 +262,265 @@ КонецЕсли; КонецЕсли; ЧтениеXML.Закрыть(); + КонецЕсли; Возврат Результат; КонецФункции +#КонецОбласти + +#Область НовыйAPI + +Функция ОтправитьSMSНовыйAPI(НомераПолучателей, Текст, ИмяОтправителя) + + УстановитьПривилегированныйРежим(Истина); + НастройкиОтправкиSMS = ОтправкаSMS.НастройкиОтправкиSMS(); + УстановитьПривилегированныйРежим(Ложь); + + // Формирование пакетов. + ПакетыОтправки = РазделитьМассивНомеровНаПакеты(НомераПолучателей); + КоличествоПакетов = ПакетыОтправки.Количество(); + + Результат = Новый Структура("ОтправленныеСообщения,ОписаниеОшибки", Новый Массив, ""); + + Для Индекс = 0 По КоличествоПакетов - 1 Цикл + + ПакетНомеров = ПакетыОтправки[Индекс]; + + ПараметрыЗапроса = Новый Структура; + + ТелоЗапроса = Новый Структура; + ТелоЗапроса.Вставить("sender", ?(ЗначениеЗаполнено(ИмяОтправителя), ИмяОтправителя, НастройкиОтправкиSMS.ИмяОтправителя)); + + Сообщения = Новый Массив; + Для Каждого НомерПолучателя Из ПакетНомеров Цикл + Сообщение = Новый Структура("number, text", "",""); + Сообщение.number = ФорматироватьНомер(НомерПолучателя); + Сообщение.text = Текст; + Сообщения.Добавить(Сообщение); + КонецЦикла; + + ТелоЗапроса.Вставить("messages", Сообщения); + ТекстОтвета = ВыполнитьЗапросНовыйAPI("sms", ПараметрыЗапроса, ТелоЗапроса, "POST"); + + // Обработка результата. + Если Не ЗначениеЗаполнено(ТекстОтвета) Тогда + ДобавитьОшибку(Результат.ОписаниеОшибки, НСтр("ru = 'Соединение не установлено. Подробности см. в журнале регистрации.'")); + Возврат Результат; + КонецЕсли; + + Попытка + РезультатЗапроса = ОбщегоНазначения.JSONВЗначение(ТекстОтвета,,Ложь); + Исключение + ДобавитьОшибку(Результат.ОписаниеОшибки, НСтр("ru = 'Ошибка сервера. Подробности см. в журнале регистрации.'")); + Возврат Результат; + КонецПопытки; + + // Разбор результата запроса. + Если РезультатЗапроса.Свойство("errors") Тогда + Результат.ОписаниеОшибки = ОписаниеОшибкиЗапросаНовыйAPI(РезультатЗапроса); + Иначе + ИдентификаторыСообщений = РезультатЗапроса["messages"]; + Переименования = Новый Соответствие; + ТаблицаИдентификаторов = МассивСтруктурВТаблицуЗначений(ИдентификаторыСообщений); + + // Так как в сервис отправлен форматированный номер - выполняется перебор исходного пакета номеров. + Для Каждого НомерПолучателя Из ПакетНомеров Цикл + + ИдентификаторСообщения = ""; + СтрокаИдентификатора = ТаблицаИдентификаторов.Найти(ФорматироватьНомер(НомерПолучателя), "number"); + Если Не СтрокаИдентификатора = Неопределено Тогда + ИдентификаторСообщения = СтрокаИдентификатора["id"]; + + Если Не ПустаяСтрока(НомерПолучателя) И ЗначениеЗаполнено(ИдентификаторСообщения) Тогда + ОтправленноеСообщение = Новый Структура("НомерПолучателя,ИдентификаторСообщения", + НомерПолучателя,ИдентификаторСообщения); + Результат.ОтправленныеСообщения.Добавить(ОтправленноеСообщение); + КонецЕсли; + КонецЕсли; + + КонецЦикла; + + КонецЕсли; + + Результат.ОписаниеОшибки = СокрП(Результат.ОписаниеОшибки); + Если Не ПустаяСтрока(Результат.ОписаниеОшибки) Тогда + ЗаписьЖурналаРегистрации(НСтр("ru = 'Отправка SMS'", ОбщегоНазначения.КодОсновногоЯзыка()), + УровеньЖурналаРегистрации.Ошибка, , , Результат.ОписаниеОшибки); + КонецЕсли; + + КонецЦикла; + + Возврат Результат; + +КонецФункции + +Функция ВыполнитьЗапросНовыйAPI(ИмяМетода, ПараметрыЗапроса, ТелоЗапроса, HTTPМетод) + + HTTPЗапрос = ПодготовитьHTTPЗапрос("/v1/" + ИмяМетода, ПараметрыЗапроса, ТелоЗапроса); + HTTPЗапрос.Заголовки.Вставить("Accept-Encoding", "identity"); + + АдресСервера = АдресСервера(); + + HTTPОтвет = Неопределено; + + Попытка + Соединение = Новый HTTPСоединение(АдресСервера,,,, + ПолучениеФайловИзИнтернета.ПолучитьПрокси("https"), + 60, + ОбщегоНазначенияКлиентСервер.НовоеЗащищенноеСоединение()); + Если HTTPМетод = "POST" Тогда + HTTPОтвет = Соединение.ОтправитьДляОбработки(HTTPЗапрос); + ИначеЕсли HTTPМетод = "GET" Тогда + HTTPОтвет = Соединение.Получить(HTTPЗапрос); + Иначе + // Метод HTTP не поддерживается. + Результат = ""; + ТекстОшибки = СтроковыеФункцииКлиентСервер.ПодставитьПараметрыВСтроку( + НСтр("ru = 'Метод HTTP ""%1"" не поддерживается.'"), HTTPМетод); + ЗаписьЖурналаРегистрации(НСтр("ru = 'Отправка SMS'", ОбщегоНазначения.КодОсновногоЯзыка()), + УровеньЖурналаРегистрации.Ошибка, , , ТекстОшибки); + КонецЕсли; + Исключение + ЗаписьЖурналаРегистрации(НСтр("ru = 'Отправка SMS'", ОбщегоНазначения.КодОсновногоЯзыка()), + УровеньЖурналаРегистрации.Ошибка, , , ОбработкаОшибок.ПодробноеПредставлениеОшибки(ИнформацияОбОшибке())); + КонецПопытки; + + Результат = ""; + Если HTTPОтвет <> Неопределено Тогда + Если HTTPОтвет.КодСостояния <> 200 Тогда + ТекстОшибки = СтроковыеФункцииКлиентСервер.ПодставитьПараметрыВСтроку( + НСтр("ru = 'Запрос ""%1"" не выполнен. Код состояния: %2.'"), ИмяМетода, HTTPОтвет.КодСостояния) + Символы.ПС + + HTTPОтвет.ПолучитьТелоКакСтроку(); + ЗаписьЖурналаРегистрации(НСтр("ru = 'Отправка SMS'", ОбщегоНазначения.КодОсновногоЯзыка()), + УровеньЖурналаРегистрации.Ошибка, , , ТекстОшибки); + КонецЕсли; + + Результат = HTTPОтвет.ПолучитьТелоКакСтроку(); + КонецЕсли; + + Возврат Результат; + +КонецФункции + +Функция ОписаниеОшибкиЗапросаНовыйAPI(РезультатЗапроса) + + РезультатСтатусЗапроса = РезультатЗапроса["status"]; + РезультатЗаголовокОшибки = РезультатЗапроса["title"]; + РезультатОшибки = РезультатЗапроса["errors"]; + ОписанияОшибок = Новый Массив; + + Для Каждого ОписаниеОшибки Из РезультатОшибки Цикл + ДетализацияОшибки = ОписаниеОшибки["detail"]; + Если Не ПустаяСтрока(ДетализацияОшибки) Тогда + ОписанияОшибок.Добавить(ДетализацияОшибки); + КонецЕсли; + КонецЦикла; + + ОписанияОшибокСтрокой = СтрСоединить(ОписанияОшибок, Символы.ПС); + + ТекстСообщения = СтроковыеФункцииКлиентСервер.ПодставитьПараметрыВСтроку( + НСтр("ru = '%1 + |Детальное описание: + |%2'"), РезультатЗаголовокОшибки, ОписанияОшибокСтрокой); + + Возврат ТекстСообщения; + +КонецФункции + +// Запрашивает статус доставки сообщения у поставщика услуг. +// +// Параметры: +// ИдентификаторыСообщений - см. ОтправкаSMS.СтатусыДоставки.ИдентификаторыСообщений. +// НастройкиОтправкиSMS - см. ОтправкаSMS.НастройкиОтправкиSMS. +// +// Возвращаемое значение: +// см. ОтправкаSMS.СтатусыДоставки. +// +Функция СтатусыДоставки(ИдентификаторыСообщений, НастройкиОтправкиSMS) Экспорт + + СтатусыДоставки = Новый Соответствие; + + // Инициализация значения статуса. + Для Каждого ИдентификаторСообщения Из ИдентификаторыСообщений Цикл + СтатусыДоставки[ИдентификаторСообщения] = "Ошибка"; + КонецЦикла; + + // Формирование пакетов. + ПакетыОтправки = РазделитьМассивНомеровНаПакеты(ИдентификаторыСообщений); + КоличествоПакетов = ПакетыОтправки.Количество(); + + Для Индекс = 0 По КоличествоПакетов - 1 Цикл + + ТекущийПакет = ПакетыОтправки[Индекс]; + + ПараметрыЗапроса = Новый Структура; + + ТелоЗапроса = Новый Структура; + ТелоЗапроса.Вставить("ids", ТекущийПакет); + + ТекстОтвета = ВыполнитьЗапросНовыйAPI("sms/messages/status", ПараметрыЗапроса, ТелоЗапроса, "GET"); + + Если Не ЗначениеЗаполнено(ТекстОтвета) Тогда + Возврат СтатусыДоставки; + КонецЕсли; + + Попытка + РезультатЗапроса = ОбщегоНазначения.JSONВЗначение(ТекстОтвета,,Ложь); + Исключение + Возврат СтатусыДоставки; + КонецПопытки; + + // Разбор результата запроса. + Если РезультатЗапроса.Свойство("errors") Тогда + Причина = ОписаниеОшибкиЗапросаНовыйAPI(РезультатЗапроса); + ОписаниеОшибки = СтроковыеФункцииКлиентСервер.ПодставитьПараметрыВСтроку( + НСтр("ru = 'Не удалось проверить статус доставки SMS по причине: + |%1'"), Причина); + + ЗаписьЖурналаРегистрации(НСтр("ru = 'Отправка SMS'", ОбщегоНазначения.КодОсновногоЯзыка()), + УровеньЖурналаРегистрации.Ошибка, , , ОписаниеОшибки); + + Возврат СтатусыДоставки; + + Иначе + СтатусыСообщений = РезультатЗапроса["statuses"]; + + Для Каждого ТекСтатус Из СтатусыСообщений Цикл + ИдентификаторСообщения = ТекСтатус["id"]; + КодСостояния = ТекСтатус["code"]; + СтатусДоставки = СтатусДоставкиSMSНовыйAPI(КодСостояния); + СтатусыДоставки[ИдентификаторСообщения] = СтатусДоставки; + КонецЦикла; + КонецЕсли; + КонецЦикла; + + Возврат СтатусыДоставки; + +КонецФункции + +Функция СтатусДоставкиSMSНовыйAPI(Знач КодСостояния) + + СоответствиеСтатусов = Новый Соответствие; + СоответствиеСтатусов.Вставить("delivered", "Доставлено"); + СоответствиеСтатусов.Вставить("undelivered", "НеДоставлено"); + СоответствиеСтатусов.Вставить("in_process", "Отправляется"); + СоответствиеСтатусов.Вставить("in_queue", "Отправляется"); + СоответствиеСтатусов.Вставить("sent", "Отправлено"); + СоответствиеСтатусов.Вставить("not_sent", "НеОтправлено"); + СоответствиеСтатусов.Вставить("error", "НеОтправлялось"); + + Результат = СоответствиеСтатусов[НРег(КодСостояния)]; + Возврат ?(Результат = Неопределено, "Ошибка", Результат); + +КонецФункции + +#КонецОбласти + Функция ФорматироватьНомер(Номер) + Результат = ""; ДопустимыеСимволы = "1234567890"; Для Позиция = 1 По СтрДлина(Номер) Цикл @@ -227,8 +531,146 @@ КонецЦикла; Возврат Результат; + КонецФункции +Функция ПодготовитьHTTPЗапрос(АдресРесурса, ПараметрыЗапроса, ТелоЗапроса="") Экспорт + + УстановитьПривилегированныйРежим(Истина); + НастройкиОтправкиSMS = ОтправкаSMS.НастройкиОтправкиSMS(); + УстановитьПривилегированныйРежим(Ложь); + + Заголовки = Новый Соответствие; + + Если Не ПустаяСтрока(ТелоЗапроса) Тогда + Заголовки.Вставить("accept", "application/json"); + КонецЕсли; + + Если НастройкиОтправкиSMS.СпособАвторизации = "ПоКлючу" Тогда + Заголовки.Вставить("Authorization", "Bearer " + НастройкиОтправкиSMS.Пароль); + КонецЕсли; + + Если ТипЗнч(ПараметрыЗапроса) = Тип("Строка") Тогда + СтрокаПараметров = ПараметрыЗапроса; + Иначе + СписокПараметров = Новый Массив; + Для Каждого Параметр Из ПараметрыЗапроса Цикл + Значения = Параметр.Значение; + Если ТипЗнч(Параметр.Значение) <> Тип("Массив") Тогда + Значения = ОбщегоНазначенияКлиентСервер.ЗначениеВМассиве(Параметр.Значение); + КонецЕсли; + + Для Каждого Значение Из Значения Цикл + СписокПараметров.Добавить(Параметр.Ключ + "=" + КодироватьСтроку(Значение, СпособКодированияСтроки.КодировкаURL)); + КонецЦикла; + КонецЦикла; + СтрокаПараметров = СтрСоединить(СписокПараметров, "&"); + КонецЕсли; + + Если Не ПустаяСтрока(СтрокаПараметров) Тогда + АдресРесурса = АдресРесурса + "?" + СтрокаПараметров; + КонецЕсли; + + HTTPЗапрос = Новый HTTPЗапрос(АдресРесурса, Заголовки); + + Если Не ПустаяСтрока(ТелоЗапроса) Тогда + HTTPЗапрос.УстановитьТелоИзСтроки(ОбщегоНазначения.ЗначениеВJSON(ТелоЗапроса)); + КонецЕсли; + + Возврат HTTPЗапрос; + +КонецФункции + +// Разделяет массив номеров на пакеты. +// +// Параметры: +// НомераПолучателей- Массив из Строка - массив номеров или идентификаторов сообщений. +// +// Возвращаемое значение: +// Массив из Массив +// +Функция РазделитьМассивНомеровНаПакеты(НомераПолучателей) + + РазмерПакета = РазмерПакета(); // Количество элементов в одном пакете. + Пакеты = Новый Массив; // Массив для хранения пакетов. + + // Формируем пакеты. + Для Индекс = 0 По НомераПолучателей.Количество() - 1 Цикл + Если Индекс % РазмерПакета = 0 Тогда + ТекущийПакет = Новый Массив; + Пакеты.Добавить(ТекущийПакет); + КонецЕсли; + + ПоследнийПакет = Пакеты[Пакеты.Количество() - 1]; + ПоследнийПакет.Добавить(НомераПолучателей[Индекс]); + КонецЦикла; + + Возврат Пакеты; + +КонецФункции + +// Функция помещает массив структур в таблицу значений. +// +// Параметры: +// МассивСтруктур - Массив из Структура. +// +// Возвращаемое значение: +// ТаблицаЗначений. +// +Функция МассивСтруктурВТаблицуЗначений(МассивСтруктур) Экспорт + + Результат = Новый ТаблицаЗначений; + + Если ТипЗнч(МассивСтруктур) = Тип("Массив") + И МассивСтруктур.Количество() <> 0 Тогда + + // Создание колонок. + СтруктураКолонок = МассивСтруктур[0]; + Для Каждого Поле Из СтруктураКолонок Цикл + Результат.Колонки.Добавить(Поле.Ключ); + КонецЦикла; + + // Заполнение таблицы. + Для Каждого Строка Из МассивСтруктур Цикл + СтрокаРезультат = Результат.Добавить(); + ЗаполнитьЗначенияСвойств(СтрокаРезультат, Строка); + КонецЦикла; + КонецЕсли; + + Возврат Результат; + +КонецФункции + +// Возвращает количество элементов в пакете. +// +// Возвращаемое значение: +// Число - количество элементов в пакете. +// +Функция РазмерПакета() + + Возврат 5000; + +КонецФункции + +Функция АдресСервера() + + Возврат "1c.sms4b.ru"; + +КонецФункции + +// Добавляет строку к имеющимся. +// +// Параметры: +// Ошибки - Строка - накопленное описание ошибок. +// ТекстОшибки - Строка - описание очередной ошибки. +// +Процедура ДобавитьОшибку(Ошибки, ТекстОшибки) + + Ошибки = Ошибки + ?(Ошибки = "", "", " + |") + ТекстОшибки; + +КонецПроцедуры + // Возвращает список разрешений для отправки SMS с использованием всех доступных провайдеров. // // Возвращаемое значение: @@ -236,23 +678,115 @@ // Функция Разрешения() Экспорт + МодульРаботаВБезопасномРежиме = ОбщегоНазначения.ОбщийМодуль("РаботаВБезопасномРежиме"); + Протокол = "HTTPS"; Адрес = "sms4b.ru"; Порт = Неопределено; - Описание = НСтр("ru = 'Отправка SMS через ""SMS4B"".'"); + Описание = НСтр("ru = 'Отправка SMS через ""SMS4B"" (старый).'"); - МодульРаботаВБезопасномРежиме = ОбщегоНазначения.ОбщийМодуль("РаботаВБезопасномРежиме"); + Разрешения = Новый Массив; + Разрешения.Добавить( + МодульРаботаВБезопасномРежиме.РазрешениеНаИспользованиеИнтернетРесурса(Протокол, Адрес, Порт, Описание)); + + Протокол = "HTTPS"; + Адрес = "https://1c.sms4b.ru"; + Порт = Неопределено; + Описание = НСтр("ru = 'Отправка SMS через ""SMS4B"" (новый).'"); Разрешения = Новый Массив; Разрешения.Добавить( МодульРаботаВБезопасномРежиме.РазрешениеНаИспользованиеИнтернетРесурса(Протокол, Адрес, Порт, Описание)); Возврат Разрешения; + КонецФункции Процедура ПриОпределенииНастроек(Настройки) Экспорт + УстановитьПривилегированныйРежим(Истина); + НастройкиОтправкиSMS = ОтправкаSMS.НастройкиОтправкиSMS(); + УстановитьПривилегированныйРежим(Ложь); + Настройки.АдресОписанияУслугиВИнтернете = "https://sms4b.ru"; + Настройки.ПриОпределенииСпособовАвторизации = Истина; + Настройки.ПриОпределенииПолейАвторизации = Истина; + + Если НастройкиОтправкиSMS.Свойство("СпособАвторизации") И НастройкиОтправкиSMS.СпособАвторизации = "ПоКлючу" Тогда + Настройки.СтатусыДоставкиОднимЗапросом = Истина; + Иначе + Настройки.СтатусыДоставкиОднимЗапросом = Ложь; + КонецЕсли; + + Настройки.ПриЗаполненииСпискаТекущихДел = Истина; + + Настройки.ИнформацияПоСпособамАвторизации.Вставить("ПоЛогинуИПаролю", СтроковыеФункции.ФорматированнаяСтрока( + НСтр("ru = 'Для сервиса SMS4B рекомендуем использовать новый способ авторизации по API-токену. + |Авторизация по логину и паролю в будущем будет отключена.'"))); + + Настройки.ИнформацияПоСпособамАвторизации.Вставить("ПоКлючу", СтроковыеФункции.ФорматированнаяСтрока( + НСтр("ru = 'Получить API-токен'"))); + +КонецПроцедуры + +Процедура ПриОпределенииСпособовАвторизации(СпособыАвторизации) Экспорт + + СпособыАвторизации.Очистить(); + СпособыАвторизации.Добавить("ПоКлючу", НСтр("ru = 'По API-токену (рекомендуется)'")); + СпособыАвторизации.Добавить("ПоЛогинуИПаролю", НСтр("ru = 'По логину и паролю'")); + +КонецПроцедуры + +Процедура ПриОпределенииПолейАвторизации(СпособыАвторизации) Экспорт + + ПоляАвторизации = Новый СписокЗначений; + ПоляАвторизации.Добавить("Пароль", НСтр("ru = 'Токен'")); + + СпособыАвторизации.Вставить("ПоКлючу", ПоляАвторизации); + + ПоляАвторизации = Новый СписокЗначений; + ПоляАвторизации.Добавить("Логин", НСтр("ru = 'Логин'")); + ПоляАвторизации.Добавить("Пароль", НСтр("ru = 'Пароль'")); + + СпособыАвторизации.Вставить("ПоЛогинуИПаролю", ПоляАвторизации); + +КонецПроцедуры + +// Параметры: +// ТекущиеДела - см. ТекущиеДелаСервер.ТекущиеДела. +// +Процедура ПриЗаполненииСпискаТекущихДел(ТекущиеДела) Экспорт + + ИмяДела = "ОтправкаSMS"; + МодульТекущиеДелаСервер = ОбщегоНазначения.ОбщийМодуль("ТекущиеДелаСервер"); + Если МодульТекущиеДелаСервер.ДелоОтключено(ИмяДела) Тогда + Возврат; + КонецЕсли; + + УстановитьПривилегированныйРежим(Истина); + НастройкиОтправкиSMS = ОтправкаSMS.НастройкиОтправкиSMS(); + УстановитьПривилегированныйРежим(Ложь); + + ТребуетсяНастройка = Не НастройкиОтправкиSMS.Свойство("СпособАвторизации") Или НастройкиОтправкиSMS.СпособАвторизации = "ПоЛогинуИПаролю"; + Если Не ТребуетсяНастройка Тогда + Возврат; + КонецЕсли; + + КоличествоПроблем = 0; + ПараметрыФормы = Новый Структура; + + Разделы = МодульТекущиеДелаСервер.РазделыДляОбъекта(Метаданные.ОбщиеФормы.НастройкаОтправкиSMS.ПолноеИмя()); + Для Каждого Раздел Из Разделы Цикл + Дело = ТекущиеДела.Добавить(); + Дело.Идентификатор = ИмяДела + СтрЗаменить(Раздел.ПолноеИмя(), ".", ""); + Дело.ЕстьДела = Истина; + Дело.Представление = НСтр("ru = 'Требуется настройка отправки SMS'"); + Дело.Количество = КоличествоПроблем; + Дело.Форма = "ОбщаяФорма.НастройкаОтправкиSMS"; + Дело.ПараметрыФормы = ПараметрыФормы; + Дело.Важное = Истина; + Дело.Владелец = Раздел; + КонецЦикла; КонецПроцедуры diff --git a/SSL/src/CommonModules/ОтправкаSMSЧерезSMSRU/Module.bsl b/SSL/src/CommonModules/ОтправкаSMSЧерезSMSRU/Module.bsl index defb3e9f8..a71e30572 100644 --- a/SSL/src/CommonModules/ОтправкаSMSЧерезSMSRU/Module.bsl +++ b/SSL/src/CommonModules/ОтправкаSMSЧерезSMSRU/Module.bsl @@ -1,5 +1,5 @@ /////////////////////////////////////////////////////////////////////////////////////////////////////// -// Copyright (c) 2024, ООО 1С-Софт +// Copyright (c) 2025, ООО 1С-Софт // Все права защищены. Эта программа и сопроводительные материалы предоставляются // в соответствии с условиями лицензии Attribution 4.0 International (CC BY 4.0) // Текст лицензии доступен по ссылке: diff --git a/SSL/src/CommonModules/ОтправкаSMSЧерезSMSЦЕНТР/Module.bsl b/SSL/src/CommonModules/ОтправкаSMSЧерезSMSЦЕНТР/Module.bsl index d71b3cb43..9528efd71 100644 --- a/SSL/src/CommonModules/ОтправкаSMSЧерезSMSЦЕНТР/Module.bsl +++ b/SSL/src/CommonModules/ОтправкаSMSЧерезSMSЦЕНТР/Module.bsl @@ -1,5 +1,5 @@ /////////////////////////////////////////////////////////////////////////////////////////////////////// -// Copyright (c) 2024, ООО 1С-Софт +// Copyright (c) 2025, ООО 1С-Софт // Все права защищены. Эта программа и сопроводительные материалы предоставляются // в соответствии с условиями лицензии Attribution 4.0 International (CC BY 4.0) // Текст лицензии доступен по ссылке: diff --git a/SSL/src/CommonModules/ОтправкаSMSЧерезБилайн/Module.bsl b/SSL/src/CommonModules/ОтправкаSMSЧерезБилайн/Module.bsl index dad611bbe..28a3c4be9 100644 --- a/SSL/src/CommonModules/ОтправкаSMSЧерезБилайн/Module.bsl +++ b/SSL/src/CommonModules/ОтправкаSMSЧерезБилайн/Module.bsl @@ -1,5 +1,5 @@ /////////////////////////////////////////////////////////////////////////////////////////////////////// -// Copyright (c) 2024, ООО 1С-Софт +// Copyright (c) 2025, ООО 1С-Софт // Все права защищены. Эта программа и сопроводительные материалы предоставляются // в соответствии с условиями лицензии Attribution 4.0 International (CC BY 4.0) // Текст лицензии доступен по ссылке: diff --git a/SSL/src/CommonModules/ОтправкаSMSЧерезМТС/Module.bsl b/SSL/src/CommonModules/ОтправкаSMSЧерезМТС/Module.bsl index 6a253d5b6..87f67827d 100644 --- a/SSL/src/CommonModules/ОтправкаSMSЧерезМТС/Module.bsl +++ b/SSL/src/CommonModules/ОтправкаSMSЧерезМТС/Module.bsl @@ -1,5 +1,5 @@ /////////////////////////////////////////////////////////////////////////////////////////////////////// -// Copyright (c) 2024, ООО 1С-Софт +// Copyright (c) 2025, ООО 1С-Софт // Все права защищены. Эта программа и сопроводительные материалы предоставляются // в соответствии с условиями лицензии Attribution 4.0 International (CC BY 4.0) // Текст лицензии доступен по ссылке: @@ -23,6 +23,7 @@ Функция ОтправитьSMS(НомераПолучателей, Текст, ИмяОтправителя, Логин, Знач Пароль) Экспорт Получатели = Новый Массив; + Для Каждого Элемент Из НомераПолучателей Цикл НомерПолучателя = ФорматироватьНомер(Элемент); Если Получатели.Найти(НомерПолучателя) = Неопределено Тогда @@ -30,13 +31,7 @@ КонецЕсли; КонецЦикла; - СпособАвторизации = СпособАвторизации(); - - Если СпособАвторизации = СпособАвторизацииПоЛогинуИПаролюМаркетолог() Тогда - Возврат ОтправитьSMSМаркетолог(Получатели, Текст, ИмяОтправителя, Логин, Пароль); - КонецЕсли; - - Возврат ОтправитьSMSКоммуникатор(Получатели, Текст, ИмяОтправителя, Логин, Пароль); + Возврат ОтправитьSMSМаркетолог(Получатели, Текст, ИмяОтправителя, Логин, Пароль); КонецФункции @@ -51,67 +46,29 @@ // Функция СтатусДоставки(ИдентификаторСообщения, НастройкиОтправкиSMS) Экспорт - Если СпособАвторизации() = СпособАвторизацииПоЛогинуИПаролюМаркетолог() Тогда - Возврат СтатусДоставкиМаркетолог(ИдентификаторСообщения, НастройкиОтправкиSMS); - КонецЕсли; - - Результат = "Ошибка"; - - ПараметрыЗапроса = Новый Структура; - ПараметрыЗапроса.Вставить("messageID", ИдентификаторСообщения); - ПараметрыЗапроса.Вставить("login", НастройкиОтправкиSMS.Логин); - - Если ЗначениеЗаполнено(НастройкиОтправкиSMS.Логин) Тогда - ПараметрыЗапроса.Вставить("password", ОбщегоНазначения.КонтрольнаяСуммаСтрокой(НастройкиОтправкиSMS.Пароль)); - Иначе - ПараметрыЗапроса.Вставить("password", ""); - КонецЕсли; - - HTTPЗапрос = ОтправкаSMS.ПодготовитьHTTPЗапрос(АдресРесурсаКоммуникатор() + "GetMessageStatus", ПараметрыЗапроса, Истина); - - РезультатЗапроса = ВыполнитьЗапрос(АдресСервераКоммуникатор(), HTTPЗапрос); - Если Не РезультатЗапроса.ЗапросВыполнен Тогда - Возврат Результат; - КонецЕсли; - - ДокументDOM = ДокументDOM(РезультатЗапроса.ОтветСервера); - Разыменователь = ДокументDOM.СоздатьРазыменовательПИ(); - - НайденныйЭлемент = ДокументDOM.ВычислитьВыражениеXPath("/xmlns:ArrayOfDeliveryInfo/xmlns:DeliveryInfo/xmlns:DeliveryStatus", - ДокументDOM, Разыменователь).ПолучитьСледующий(); - - Если НайденныйЭлемент = Неопределено Тогда - Возврат Результат; - КонецЕсли; - - Результат = СтатусДоставкиSMS(НайденныйЭлемент.ТекстовоеСодержимое); - Возврат Результат; + Возврат СтатусДоставкиМаркетолог(ИдентификаторСообщения, НастройкиОтправкиSMS); КонецФункции Функция ФорматироватьНомер(Номер) + Результат = ""; ДопустимыеСимволы = "1234567890"; + Для Позиция = 1 По СтрДлина(Номер) Цикл Символ = Сред(Номер,Позиция,1); Если СтрНайти(ДопустимыеСимволы, Символ) > 0 Тогда Результат = Результат + Символ; КонецЕсли; КонецЦикла; + Возврат Результат; + КонецФункции Функция СтатусДоставкиSMS(СтатусСтрокой) - СоответствиеСтатусов = Новый Соответствие; - // Коммуникатор - СоответствиеСтатусов.Вставить("Pending", "НеОтправлялось"); - СоответствиеСтатусов.Вставить("Sending", "Отправляется"); - СоответствиеСтатусов.Вставить("Sent", "Отправлено"); - СоответствиеСтатусов.Вставить("NotSent", "НеОтправлено"); - СоответствиеСтатусов.Вставить("Delivered", "Доставлено"); - СоответствиеСтатусов.Вставить("NotDelivered", "НеДоставлено"); - СоответствиеСтатусов.Вставить("TimedOut", "НеДоставлено"); + СоответствиеСтатусов = Новый Соответствие; // Маркетолог СоответствиеСтатусов.Вставить(200, "Отправлено"); @@ -120,34 +77,15 @@ СоответствиеСтатусов.Вставить(300, "Доставлено"); СоответствиеСтатусов.Вставить(302, "Доставлено"); // Частично доставлено СоответствиеСтатусов.Вставить(301, "НеДоставлено"); - + Результат = СоответствиеСтатусов[СтатусСтрокой]; Возврат ?(Результат = Неопределено, "Ошибка", Результат); + КонецФункции Функция ОписанияОшибок() + ОписанияОшибок = Новый Соответствие; - - // Коммуникатор - ОписанияОшибок.Вставить("SYSTEM_FAILURE", НСтр("ru = 'Временная проблема на стороне МТС.'")); - ОписанияОшибок.Вставить("TOO_MANY_PARAMETERS", НСтр("ru = 'Превышено максимальное число параметров.'")); - ОписанияОшибок.Вставить("INCORRECT_PASSWORD", НСтр("ru = 'Предоставленные логин/пароль не верны.'")); - ОписанияОшибок.Вставить("MSID_FORMAT_ERROR", НСтр("ru = 'Формат номера неверный.'")); - ОписанияОшибок.Вставить("MESSAGE_FORMAT_ERROR", НСтр("ru = 'Ошибка в формате сообщения.'")); - ОписанияОшибок.Вставить("WRONG_ID", НСтр("ru = 'Передан неверный идентификатор.'")); - ОписанияОшибок.Вставить("MESSAGE_HANDLING_ERROR", НСтр("ru = 'Ошибка в обработке сообщения'")); - ОписанияОшибок.Вставить("NO_SUCH_SUBSCRIBER", НСтр("ru = 'Данный абонент не зарегистрирован в Услуге в учетной записи клиента (или еще не дал подтверждение).'")); - ОписанияОшибок.Вставить("TEST_LIMIT_EXCEEDED", НСтр("ru = 'Превышен лимит по количеству сообщений в тестовой эксплуатации.'")); - ОписанияОшибок.Вставить("TRUSTED_LIMIT_EXCEEDED", НСтр("ru = 'Превышен лимит по количеству сообщений для абонентов, которые были добавлены без подтверждения.'")); - ОписанияОшибок.Вставить("IP_NOT_ALLOWED", НСтр("ru = 'Доступ к сервису с данного IP невозможен (список допустимых IP-адресов можно указывается при подключении услуги).'")); - ОписанияОшибок.Вставить("MAX_LENGTH_EXCEEDED", НСтр("ru = 'Превышена максимальная длина сообщения (1000 символов).'")); - ОписанияОшибок.Вставить("OPERATION_NOT_ALLOWED", НСтр("ru = 'Пользователь услуги не имеет прав на выполнение данной операции.'")); - ОписанияОшибок.Вставить("EMPTY_MESSAGE_NOT_ALLOWED", НСтр("ru = 'Отправка пустых сообщений не допускается.'")); - ОписанияОшибок.Вставить("ACCOUNT_IS_BLOCKED", НСтр("ru = 'Учетная запись заблокирована, отправка сообщений не возможна.'")); - ОписанияОшибок.Вставить("OBJECT_ALREADY_EXISTS", НСтр("ru = 'Список рассылки с указанным названием уже существует в рамках компании.'")); - ОписанияОшибок.Вставить("MSID_IS_IN_BLACKLIST", НСтр("ru = 'Номер абонента находится в черном списке, отправка сообщений запрещена.'")); - ОписанияОшибок.Вставить("MSIDS_ARE_IN_BLACKLIST", НСтр("ru = 'Все указанные номера абонентов находятся в черном списке, отправка сообщений запрещена.'")); - ОписанияОшибок.Вставить("TIME_IS_IN_THE_PAST", НСтр("ru = 'Переданное время в прошлом.'")); // Маркетолог ОписанияОшибок.Вставить(806, НСтр("ru = 'Не указан получатель сообщения.'")); @@ -161,17 +99,21 @@ ОписанияОшибок.Вставить(602, НСтр("ru = 'Отсутствует обязательный параметр в тексте запроса.'")); Возврат ОписанияОшибок; + КонецФункции Функция ОписаниеОшибкиПоКоду(Знач КодОшибки) + КодОшибки = СокрЛП(КодОшибки); ОписанияОшибок = ОписанияОшибок(); ТекстСообщения = ОписанияОшибок[КодОшибки]; + Если ТекстСообщения = Неопределено Тогда - ТекстСообщения = НСтр("ru = 'Отказ выполнения операции.'") + Символы.ПС - + КодОшибки; + ТекстСообщения = НСтр("ru = 'Отказ выполнения операции.'") + Символы.ПС + КодОшибки; КонецЕсли; + Возврат ТекстСообщения; + КонецФункции // Возвращает список разрешений для отправки SMS с использованием всех доступных провайдеров. @@ -180,6 +122,7 @@ // Массив // Функция Разрешения() Экспорт + Протокол = "HTTPS"; Адрес = АдресСервераМаркетолог(); Порт = Неопределено; @@ -192,6 +135,7 @@ МодульРаботаВБезопасномРежиме.РазрешениеНаИспользованиеИнтернетРесурса(Протокол, Адрес, Порт, Описание)); Возврат Разрешения; + КонецФункции Функция ВыполнитьЗапрос(Знач АдресСервера, Знач HTTPЗапрос, Знач Пользователь = Неопределено, Знач Пароль = Неопределено) @@ -205,7 +149,7 @@ Попытка Соединение = Новый HTTPСоединение(АдресСервера, , Пользователь, Пароль, ПолучениеФайловИзИнтернета.ПолучитьПрокси("https"), 60, ОбщегоНазначенияКлиентСервер.НовоеЗащищенноеСоединение()); - + HTTPОтвет = Соединение.ОтправитьДляОбработки(HTTPЗапрос); Исключение ЗаписьЖурналаРегистрации(НСтр("ru = 'Отправка SMS'", ОбщегоНазначения.КодОсновногоЯзыка()), @@ -246,11 +190,6 @@ Процедура ПриОпределенииПолейАвторизации(СпособыАвторизации) Экспорт - ПоляАвторизации = Новый СписокЗначений; - ПоляАвторизации.Добавить("Пароль", НСтр("ru = 'Ключ API'")); - - СпособыАвторизации.Вставить("ПоКлючу", ПоляАвторизации); - ПоляАвторизации = Новый СписокЗначений; ПоляАвторизации.Добавить("Логин", НСтр("ru = 'Логин'")); ПоляАвторизации.Добавить("Пароль", НСтр("ru = 'Пароль'")); @@ -259,63 +198,6 @@ КонецПроцедуры -Функция ДокументDOM(Строка) - - ЧтениеXML = Новый ЧтениеXML; - ЧтениеXML.УстановитьСтроку(Строка); - ПостроительDOM = Новый ПостроительDOM; - ДокументDOM = ПостроительDOM.Прочитать(ЧтениеXML); - ЧтениеXML.Закрыть(); - - Возврат ДокументDOM; - -КонецФункции - -Функция ОтправитьSMSКоммуникатор(Получатели, Текст, ИмяОтправителя, Логин, Знач Пароль) - - Результат = Новый Структура("ОтправленныеСообщения,ОписаниеОшибки", Новый Массив, ""); - - ПараметрыЗапроса = Новый Структура; - ПараметрыЗапроса.Вставить("msids", Получатели); - ПараметрыЗапроса.Вставить("message", Текст); - ПараметрыЗапроса.Вставить("naming", ИмяОтправителя); - ПараметрыЗапроса.Вставить("login", Логин); - - Если ЗначениеЗаполнено(Логин) Тогда - ПараметрыЗапроса.Вставить("password", ОбщегоНазначения.КонтрольнаяСуммаСтрокой(Пароль)); - Иначе - ПараметрыЗапроса.Вставить("password", ""); - КонецЕсли; - - HTTPЗапрос = ОтправкаSMS.ПодготовитьHTTPЗапрос(АдресРесурсаКоммуникатор() + "SendMessages", ПараметрыЗапроса, Истина); - - РезультатЗапроса = ВыполнитьЗапрос(АдресСервераКоммуникатор(), HTTPЗапрос); - Если Не РезультатЗапроса.ЗапросВыполнен Тогда - Результат.ОписаниеОшибки = ОписаниеОшибкиПоКоду(РезультатЗапроса.ОтветСервера); - Возврат Результат; - КонецЕсли; - - ДокументDOM = ДокументDOM(РезультатЗапроса.ОтветСервера); - Разыменователь = ДокументDOM.СоздатьРазыменовательПИ(); - - ОтправленныеСообщения = ДокументDOM.ВычислитьВыражениеXPath("/xmlns:ArrayOfSendMessageIDs/xmlns:SendMessageIDs", - ДокументDOM, Разыменователь); - - Сообщение = ОтправленныеСообщения.ПолучитьСледующий(); - Пока Сообщение <> Неопределено Цикл - НомерПолучателя = ДокументDOM.ВычислитьВыражениеXPath("xmlns:Msid", Сообщение, Разыменователь).ПолучитьСледующий().ТекстовоеСодержимое; - ИдентификаторСообщения = ДокументDOM.ВычислитьВыражениеXPath("xmlns:MessageID", Сообщение, Разыменователь).ПолучитьСледующий().ТекстовоеСодержимое; - - Результат.ОтправленныеСообщения.Добавить(Новый Структура("НомерПолучателя,ИдентификаторСообщения", - "+" + НомерПолучателя, Формат(ИдентификаторСообщения, "ЧГ="))); - - Сообщение = ОтправленныеСообщения.ПолучитьСледующий(); - КонецЦикла; - - Возврат Результат; - -КонецФункции - Функция ОтправитьSMSМаркетолог(Знач Получатели, Знач Текст, Знач ИмяОтправителя, Знач Логин, Знач Пароль) ТекстЗапроса = ТекстЗапросаМаркетолог(Получатели, Текст, ИмяОтправителя); @@ -464,18 +346,6 @@ КонецФункции -Функция АдресСервераКоммуникатор() - - Возврат "api.mcommunicator.ru"; - -КонецФункции - -Функция АдресРесурсаКоммуникатор() - - Возврат "/m2m/m2m_api.asmx/"; - -КонецФункции - Функция АдресСервераМаркетолог() Возврат "omnichannel.mts.ru"; @@ -492,12 +362,6 @@ КонецФункции -Функция СпособАвторизации() - - Возврат СпособАвторизацииПоЛогинуИПаролюМаркетолог(); - -КонецФункции - Функция СпособАвторизацииПоЛогинуИПаролюМаркетолог() Возврат "ПоЛогинуИПаролюМаркетолог"; diff --git a/SSL/src/CommonModules/ОтправкаSMSЧерезСМСУслуги/Module.bsl b/SSL/src/CommonModules/ОтправкаSMSЧерезСМСУслуги/Module.bsl index f7f214746..6efdd36f4 100644 --- a/SSL/src/CommonModules/ОтправкаSMSЧерезСМСУслуги/Module.bsl +++ b/SSL/src/CommonModules/ОтправкаSMSЧерезСМСУслуги/Module.bsl @@ -1,5 +1,5 @@ /////////////////////////////////////////////////////////////////////////////////////////////////////// -// Copyright (c) 2024, ООО 1С-Софт +// Copyright (c) 2025, ООО 1С-Софт // Все права защищены. Эта программа и сопроводительные материалы предоставляются // в соответствии с условиями лицензии Attribution 4.0 International (CC BY 4.0) // Текст лицензии доступен по ссылке: diff --git a/SSL/src/CommonModules/ОтчетОДвиженияхДокументаПереопределяемый/Module.bsl b/SSL/src/CommonModules/ОтчетОДвиженияхДокументаПереопределяемый/Module.bsl index 0fa94dc78..c96ae4f83 100644 --- a/SSL/src/CommonModules/ОтчетОДвиженияхДокументаПереопределяемый/Module.bsl +++ b/SSL/src/CommonModules/ОтчетОДвиженияхДокументаПереопределяемый/Module.bsl @@ -1,5 +1,5 @@ /////////////////////////////////////////////////////////////////////////////////////////////////////// -// Copyright (c) 2024, ООО 1С-Софт +// Copyright (c) 2025, ООО 1С-Софт // Все права защищены. Эта программа и сопроводительные материалы предоставляются // в соответствии с условиями лицензии Attribution 4.0 International (CC BY 4.0) // Текст лицензии доступен по ссылке: diff --git a/SSL/src/CommonModules/ОтчетОДвиженияхДокументаСлужебныйКлиент/Module.bsl b/SSL/src/CommonModules/ОтчетОДвиженияхДокументаСлужебныйКлиент/Module.bsl index bb1624434..78815c4c3 100644 --- a/SSL/src/CommonModules/ОтчетОДвиженияхДокументаСлужебныйКлиент/Module.bsl +++ b/SSL/src/CommonModules/ОтчетОДвиженияхДокументаСлужебныйКлиент/Module.bsl @@ -1,5 +1,5 @@ /////////////////////////////////////////////////////////////////////////////////////////////////////// -// Copyright (c) 2024, ООО 1С-Софт +// Copyright (c) 2025, ООО 1С-Софт // Все права защищены. Эта программа и сопроводительные материалы предоставляются // в соответствии с условиями лицензии Attribution 4.0 International (CC BY 4.0) // Текст лицензии доступен по ссылке: diff --git a/SSL/src/CommonModules/ОтчетыКлиент/Module.bsl b/SSL/src/CommonModules/ОтчетыКлиент/Module.bsl index 092eafd3c..215fe935c 100644 --- a/SSL/src/CommonModules/ОтчетыКлиент/Module.bsl +++ b/SSL/src/CommonModules/ОтчетыКлиент/Module.bsl @@ -1,5 +1,5 @@ /////////////////////////////////////////////////////////////////////////////////////////////////////// -// Copyright (c) 2024, ООО 1С-Софт +// Copyright (c) 2025, ООО 1С-Софт // Все права защищены. Эта программа и сопроводительные материалы предоставляются // в соответствии с условиями лицензии Attribution 4.0 International (CC BY 4.0) // Текст лицензии доступен по ссылке: diff --git a/SSL/src/CommonModules/ОтчетыКлиентПереопределяемый/Module.bsl b/SSL/src/CommonModules/ОтчетыКлиентПереопределяемый/Module.bsl index e70b93dd5..af00b9552 100644 --- a/SSL/src/CommonModules/ОтчетыКлиентПереопределяемый/Module.bsl +++ b/SSL/src/CommonModules/ОтчетыКлиентПереопределяемый/Module.bsl @@ -1,5 +1,5 @@ /////////////////////////////////////////////////////////////////////////////////////////////////////// -// Copyright (c) 2024, ООО 1С-Софт +// Copyright (c) 2025, ООО 1С-Софт // Все права защищены. Эта программа и сопроводительные материалы предоставляются // в соответствии с условиями лицензии Attribution 4.0 International (CC BY 4.0) // Текст лицензии доступен по ссылке: diff --git a/SSL/src/CommonModules/ОтчетыКлиентСервер/Module.bsl b/SSL/src/CommonModules/ОтчетыКлиентСервер/Module.bsl index 42282e869..e6c4e349e 100644 --- a/SSL/src/CommonModules/ОтчетыКлиентСервер/Module.bsl +++ b/SSL/src/CommonModules/ОтчетыКлиентСервер/Module.bsl @@ -1,5 +1,5 @@ /////////////////////////////////////////////////////////////////////////////////////////////////////// -// Copyright (c) 2024, ООО 1С-Софт +// Copyright (c) 2025, ООО 1С-Софт // Все права защищены. Эта программа и сопроводительные материалы предоставляются // в соответствии с условиями лицензии Attribution 4.0 International (CC BY 4.0) // Текст лицензии доступен по ссылке: diff --git a/SSL/src/CommonModules/ОтчетыПереопределяемый/Module.bsl b/SSL/src/CommonModules/ОтчетыПереопределяемый/Module.bsl index f1b7f6743..dc080b33a 100644 --- a/SSL/src/CommonModules/ОтчетыПереопределяемый/Module.bsl +++ b/SSL/src/CommonModules/ОтчетыПереопределяемый/Module.bsl @@ -1,5 +1,5 @@ /////////////////////////////////////////////////////////////////////////////////////////////////////// -// Copyright (c) 2024, ООО 1С-Софт +// Copyright (c) 2025, ООО 1С-Софт // Все права защищены. Эта программа и сопроводительные материалы предоставляются // в соответствии с условиями лицензии Attribution 4.0 International (CC BY 4.0) // Текст лицензии доступен по ссылке: diff --git a/SSL/src/CommonModules/ОтчетыСервер/Module.bsl b/SSL/src/CommonModules/ОтчетыСервер/Module.bsl index 21196c778..43093c4bb 100644 --- a/SSL/src/CommonModules/ОтчетыСервер/Module.bsl +++ b/SSL/src/CommonModules/ОтчетыСервер/Module.bsl @@ -1,5 +1,5 @@ /////////////////////////////////////////////////////////////////////////////////////////////////////// -// Copyright (c) 2024, ООО 1С-Софт +// Copyright (c) 2025, ООО 1С-Софт // Все права защищены. Эта программа и сопроводительные материалы предоставляются // в соответствии с условиями лицензии Attribution 4.0 International (CC BY 4.0) // Текст лицензии доступен по ссылке: diff --git a/SSL/src/CommonModules/ОценкаПроизводительности/Module.bsl b/SSL/src/CommonModules/ОценкаПроизводительности/Module.bsl index fbb96bb9b..596081873 100644 --- a/SSL/src/CommonModules/ОценкаПроизводительности/Module.bsl +++ b/SSL/src/CommonModules/ОценкаПроизводительности/Module.bsl @@ -1,5 +1,5 @@ /////////////////////////////////////////////////////////////////////////////////////////////////////// -// Copyright (c) 2024, ООО 1С-Софт +// Copyright (c) 2025, ООО 1С-Софт // Все права защищены. Эта программа и сопроводительные материалы предоставляются // в соответствии с условиями лицензии Attribution 4.0 International (CC BY 4.0) // Текст лицензии доступен по ссылке: @@ -1451,12 +1451,4 @@ КонецЕсли; КонецФункции -// См. СтандартныеПодсистемыСервер.ПриОпределенииМетодовРазрешенныхДляВызоваКакПроизвольныйКод -Процедура ПриОпределенииМетодовРазрешенныхДляВызоваКакПроизвольныйКод(Методы) Экспорт - - Методы.Вставить("ЭкспортОценкиПроизводительности", Истина); - Методы.Вставить("ОчиститьРегистрыЗамерыВремени", Истина); - -КонецПроцедуры - #КонецОбласти \ No newline at end of file diff --git a/SSL/src/CommonModules/ОценкаПроизводительностиВызовСервера/Module.bsl b/SSL/src/CommonModules/ОценкаПроизводительностиВызовСервера/Module.bsl index e1febd16e..20d48d07d 100644 --- a/SSL/src/CommonModules/ОценкаПроизводительностиВызовСервера/Module.bsl +++ b/SSL/src/CommonModules/ОценкаПроизводительностиВызовСервера/Module.bsl @@ -1,5 +1,5 @@ /////////////////////////////////////////////////////////////////////////////////////////////////////// -// Copyright (c) 2024, ООО 1С-Софт +// Copyright (c) 2025, ООО 1С-Софт // Все права защищены. Эта программа и сопроводительные материалы предоставляются // в соответствии с условиями лицензии Attribution 4.0 International (CC BY 4.0) // Текст лицензии доступен по ссылке: diff --git a/SSL/src/CommonModules/ОценкаПроизводительностиВызовСервераПовтИсп/Module.bsl b/SSL/src/CommonModules/ОценкаПроизводительностиВызовСервераПовтИсп/Module.bsl index b678f6c74..c516a9ea2 100644 --- a/SSL/src/CommonModules/ОценкаПроизводительностиВызовСервераПовтИсп/Module.bsl +++ b/SSL/src/CommonModules/ОценкаПроизводительностиВызовСервераПовтИсп/Module.bsl @@ -1,5 +1,5 @@ /////////////////////////////////////////////////////////////////////////////////////////////////////// -// Copyright (c) 2024, ООО 1С-Софт +// Copyright (c) 2025, ООО 1С-Софт // Все права защищены. Эта программа и сопроводительные материалы предоставляются // в соответствии с условиями лицензии Attribution 4.0 International (CC BY 4.0) // Текст лицензии доступен по ссылке: diff --git a/SSL/src/CommonModules/ОценкаПроизводительностиГлобальный/Module.bsl b/SSL/src/CommonModules/ОценкаПроизводительностиГлобальный/Module.bsl index c89f97032..26cadae1e 100644 --- a/SSL/src/CommonModules/ОценкаПроизводительностиГлобальный/Module.bsl +++ b/SSL/src/CommonModules/ОценкаПроизводительностиГлобальный/Module.bsl @@ -1,5 +1,5 @@ /////////////////////////////////////////////////////////////////////////////////////////////////////// -// Copyright (c) 2024, ООО 1С-Софт +// Copyright (c) 2025, ООО 1С-Софт // Все права защищены. Эта программа и сопроводительные материалы предоставляются // в соответствии с условиями лицензии Attribution 4.0 International (CC BY 4.0) // Текст лицензии доступен по ссылке: diff --git a/SSL/src/CommonModules/ОценкаПроизводительностиКлиент/Module.bsl b/SSL/src/CommonModules/ОценкаПроизводительностиКлиент/Module.bsl index 126bd4e5b..151da17b1 100644 --- a/SSL/src/CommonModules/ОценкаПроизводительностиКлиент/Module.bsl +++ b/SSL/src/CommonModules/ОценкаПроизводительностиКлиент/Module.bsl @@ -1,5 +1,5 @@ /////////////////////////////////////////////////////////////////////////////////////////////////////// -// Copyright (c) 2024, ООО 1С-Софт +// Copyright (c) 2025, ООО 1С-Софт // Все права защищены. Эта программа и сопроводительные материалы предоставляются // в соответствии с условиями лицензии Attribution 4.0 International (CC BY 4.0) // Текст лицензии доступен по ссылке: diff --git a/SSL/src/CommonModules/ОценкаПроизводительностиКлиентСервер/Module.bsl b/SSL/src/CommonModules/ОценкаПроизводительностиКлиентСервер/Module.bsl index e32fcedd6..927bed060 100644 --- a/SSL/src/CommonModules/ОценкаПроизводительностиКлиентСервер/Module.bsl +++ b/SSL/src/CommonModules/ОценкаПроизводительностиКлиентСервер/Module.bsl @@ -1,5 +1,5 @@ /////////////////////////////////////////////////////////////////////////////////////////////////////// -// Copyright (c) 2024, ООО 1С-Софт +// Copyright (c) 2025, ООО 1С-Софт // Все права защищены. Эта программа и сопроводительные материалы предоставляются // в соответствии с условиями лицензии Attribution 4.0 International (CC BY 4.0) // Текст лицензии доступен по ссылке: diff --git a/SSL/src/CommonModules/ОценкаПроизводительностиПовтИсп/Module.bsl b/SSL/src/CommonModules/ОценкаПроизводительностиПовтИсп/Module.bsl index f1e5149d8..28095127e 100644 --- a/SSL/src/CommonModules/ОценкаПроизводительностиПовтИсп/Module.bsl +++ b/SSL/src/CommonModules/ОценкаПроизводительностиПовтИсп/Module.bsl @@ -1,5 +1,5 @@ /////////////////////////////////////////////////////////////////////////////////////////////////////// -// Copyright (c) 2024, ООО 1С-Софт +// Copyright (c) 2025, ООО 1С-Софт // Все права защищены. Эта программа и сопроводительные материалы предоставляются // в соответствии с условиями лицензии Attribution 4.0 International (CC BY 4.0) // Текст лицензии доступен по ссылке: diff --git a/SSL/src/CommonModules/ОценкаПроизводительностиСлужебный/Module.bsl b/SSL/src/CommonModules/ОценкаПроизводительностиСлужебный/Module.bsl index ada23b663..11015fc7b 100644 --- a/SSL/src/CommonModules/ОценкаПроизводительностиСлужебный/Module.bsl +++ b/SSL/src/CommonModules/ОценкаПроизводительностиСлужебный/Module.bsl @@ -1,5 +1,5 @@ /////////////////////////////////////////////////////////////////////////////////////////////////////// -// Copyright (c) 2024, ООО 1С-Софт +// Copyright (c) 2025, ООО 1С-Софт // Все права защищены. Эта программа и сопроводительные материалы предоставляются // в соответствии с условиями лицензии Attribution 4.0 International (CC BY 4.0) // Текст лицензии доступен по ссылке: diff --git a/SSL/src/CommonModules/ПереводТекстаНаДругиеЯзыки/Module.bsl b/SSL/src/CommonModules/ПереводТекстаНаДругиеЯзыки/Module.bsl index 38c75ac43..717cdf731 100644 --- a/SSL/src/CommonModules/ПереводТекстаНаДругиеЯзыки/Module.bsl +++ b/SSL/src/CommonModules/ПереводТекстаНаДругиеЯзыки/Module.bsl @@ -1,5 +1,5 @@ /////////////////////////////////////////////////////////////////////////////////////////////////////// -// Copyright (c) 2024, ООО 1С-Софт +// Copyright (c) 2025, ООО 1С-Софт // Все права защищены. Эта программа и сопроводительные материалы предоставляются // в соответствии с условиями лицензии Attribution 4.0 International (CC BY 4.0) // Текст лицензии доступен по ссылке: diff --git a/SSL/src/CommonModules/ПереводТекстаНаДругиеЯзыкиВызовСервера/Module.bsl b/SSL/src/CommonModules/ПереводТекстаНаДругиеЯзыкиВызовСервера/Module.bsl index 351f400e0..5d70df868 100644 --- a/SSL/src/CommonModules/ПереводТекстаНаДругиеЯзыкиВызовСервера/Module.bsl +++ b/SSL/src/CommonModules/ПереводТекстаНаДругиеЯзыкиВызовСервера/Module.bsl @@ -1,5 +1,5 @@ /////////////////////////////////////////////////////////////////////////////////////////////////////// -// Copyright (c) 2024, ООО 1С-Софт +// Copyright (c) 2025, ООО 1С-Софт // Все права защищены. Эта программа и сопроводительные материалы предоставляются // в соответствии с условиями лицензии Attribution 4.0 International (CC BY 4.0) // Текст лицензии доступен по ссылке: diff --git a/SSL/src/CommonModules/ПереводТекстаНаДругиеЯзыкиКлиент/Module.bsl b/SSL/src/CommonModules/ПереводТекстаНаДругиеЯзыкиКлиент/Module.bsl index 133d524a8..0931b6e2f 100644 --- a/SSL/src/CommonModules/ПереводТекстаНаДругиеЯзыкиКлиент/Module.bsl +++ b/SSL/src/CommonModules/ПереводТекстаНаДругиеЯзыкиКлиент/Module.bsl @@ -1,5 +1,5 @@ /////////////////////////////////////////////////////////////////////////////////////////////////////// -// Copyright (c) 2024, ООО 1С-Софт +// Copyright (c) 2025, ООО 1С-Софт // Все права защищены. Эта программа и сопроводительные материалы предоставляются // в соответствии с условиями лицензии Attribution 4.0 International (CC BY 4.0) // Текст лицензии доступен по ссылке: diff --git a/SSL/src/CommonModules/ПереводТекстаНаДругиеЯзыкиЛокализация/Module.bsl b/SSL/src/CommonModules/ПереводТекстаНаДругиеЯзыкиЛокализация/Module.bsl index 915970f8c..e39e8dd0b 100644 --- a/SSL/src/CommonModules/ПереводТекстаНаДругиеЯзыкиЛокализация/Module.bsl +++ b/SSL/src/CommonModules/ПереводТекстаНаДругиеЯзыкиЛокализация/Module.bsl @@ -1,5 +1,5 @@ /////////////////////////////////////////////////////////////////////////////////////////////////////// -// Copyright (c) 2024, ООО 1С-Софт +// Copyright (c) 2025, ООО 1С-Софт // Все права защищены. Эта программа и сопроводительные материалы предоставляются // в соответствии с условиями лицензии Attribution 4.0 International (CC BY 4.0) // Текст лицензии доступен по ссылке: diff --git a/SSL/src/CommonModules/ПодключаемыеКоманды/Module.bsl b/SSL/src/CommonModules/ПодключаемыеКоманды/Module.bsl index e74aa4ae8..2f398340f 100644 --- a/SSL/src/CommonModules/ПодключаемыеКоманды/Module.bsl +++ b/SSL/src/CommonModules/ПодключаемыеКоманды/Module.bsl @@ -1,5 +1,5 @@ /////////////////////////////////////////////////////////////////////////////////////////////////////// -// Copyright (c) 2024, ООО 1С-Софт +// Copyright (c) 2025, ООО 1С-Софт // Все права защищены. Эта программа и сопроводительные материалы предоставляются // в соответствии с условиями лицензии Attribution 4.0 International (CC BY 4.0) // Текст лицензии доступен по ссылке: diff --git a/SSL/src/CommonModules/ПодключаемыеКомандыВызовСервера/Module.bsl b/SSL/src/CommonModules/ПодключаемыеКомандыВызовСервера/Module.bsl index 6e11d398b..98157e42b 100644 --- a/SSL/src/CommonModules/ПодключаемыеКомандыВызовСервера/Module.bsl +++ b/SSL/src/CommonModules/ПодключаемыеКомандыВызовСервера/Module.bsl @@ -1,5 +1,5 @@ /////////////////////////////////////////////////////////////////////////////////////////////////////// -// Copyright (c) 2024, ООО 1С-Софт +// Copyright (c) 2025, ООО 1С-Софт // Все права защищены. Эта программа и сопроводительные материалы предоставляются // в соответствии с условиями лицензии Attribution 4.0 International (CC BY 4.0) // Текст лицензии доступен по ссылке: diff --git a/SSL/src/CommonModules/ПодключаемыеКомандыГлобальный/Module.bsl b/SSL/src/CommonModules/ПодключаемыеКомандыГлобальный/Module.bsl index 2d1cc57af..782681f65 100644 --- a/SSL/src/CommonModules/ПодключаемыеКомандыГлобальный/Module.bsl +++ b/SSL/src/CommonModules/ПодключаемыеКомандыГлобальный/Module.bsl @@ -1,5 +1,5 @@ /////////////////////////////////////////////////////////////////////////////////////////////////////// -// Copyright (c) 2024, ООО 1С-Софт +// Copyright (c) 2025, ООО 1С-Софт // Все права защищены. Эта программа и сопроводительные материалы предоставляются // в соответствии с условиями лицензии Attribution 4.0 International (CC BY 4.0) // Текст лицензии доступен по ссылке: diff --git a/SSL/src/CommonModules/ПодключаемыеКомандыКлиент/Module.bsl b/SSL/src/CommonModules/ПодключаемыеКомандыКлиент/Module.bsl index f3b8049ab..6516b3d85 100644 --- a/SSL/src/CommonModules/ПодключаемыеКомандыКлиент/Module.bsl +++ b/SSL/src/CommonModules/ПодключаемыеКомандыКлиент/Module.bsl @@ -1,5 +1,5 @@ /////////////////////////////////////////////////////////////////////////////////////////////////////// -// Copyright (c) 2024, ООО 1С-Софт +// Copyright (c) 2025, ООО 1С-Софт // Все права защищены. Эта программа и сопроводительные материалы предоставляются // в соответствии с условиями лицензии Attribution 4.0 International (CC BY 4.0) // Текст лицензии доступен по ссылке: diff --git a/SSL/src/CommonModules/ПодключаемыеКомандыКлиентПовтИсп/Module.bsl b/SSL/src/CommonModules/ПодключаемыеКомандыКлиентПовтИсп/Module.bsl index f2e41356b..a74c75765 100644 --- a/SSL/src/CommonModules/ПодключаемыеКомандыКлиентПовтИсп/Module.bsl +++ b/SSL/src/CommonModules/ПодключаемыеКомандыКлиентПовтИсп/Module.bsl @@ -1,5 +1,5 @@ /////////////////////////////////////////////////////////////////////////////////////////////////////// -// Copyright (c) 2024, ООО 1С-Софт +// Copyright (c) 2025, ООО 1С-Софт // Все права защищены. Эта программа и сопроводительные материалы предоставляются // в соответствии с условиями лицензии Attribution 4.0 International (CC BY 4.0) // Текст лицензии доступен по ссылке: diff --git a/SSL/src/CommonModules/ПодключаемыеКомандыКлиентСервер/Module.bsl b/SSL/src/CommonModules/ПодключаемыеКомандыКлиентСервер/Module.bsl index 77414657a..f1c7dc1f2 100644 --- a/SSL/src/CommonModules/ПодключаемыеКомандыКлиентСервер/Module.bsl +++ b/SSL/src/CommonModules/ПодключаемыеКомандыКлиентСервер/Module.bsl @@ -1,5 +1,5 @@ /////////////////////////////////////////////////////////////////////////////////////////////////////// -// Copyright (c) 2024, ООО 1С-Софт +// Copyright (c) 2025, ООО 1С-Софт // Все права защищены. Эта программа и сопроводительные материалы предоставляются // в соответствии с условиями лицензии Attribution 4.0 International (CC BY 4.0) // Текст лицензии доступен по ссылке: diff --git a/SSL/src/CommonModules/ПодключаемыеКомандыПереопределяемый/Module.bsl b/SSL/src/CommonModules/ПодключаемыеКомандыПереопределяемый/Module.bsl index cc19494b1..109fd31fe 100644 --- a/SSL/src/CommonModules/ПодключаемыеКомандыПереопределяемый/Module.bsl +++ b/SSL/src/CommonModules/ПодключаемыеКомандыПереопределяемый/Module.bsl @@ -1,5 +1,5 @@ /////////////////////////////////////////////////////////////////////////////////////////////////////// -// Copyright (c) 2024, ООО 1С-Софт +// Copyright (c) 2025, ООО 1С-Софт // Все права защищены. Эта программа и сопроводительные материалы предоставляются // в соответствии с условиями лицензии Attribution 4.0 International (CC BY 4.0) // Текст лицензии доступен по ссылке: diff --git a/SSL/src/CommonModules/ПодключаемыеКомандыПовтИсп/Module.bsl b/SSL/src/CommonModules/ПодключаемыеКомандыПовтИсп/Module.bsl index ea1dc16fc..5133c86eb 100644 --- a/SSL/src/CommonModules/ПодключаемыеКомандыПовтИсп/Module.bsl +++ b/SSL/src/CommonModules/ПодключаемыеКомандыПовтИсп/Module.bsl @@ -1,5 +1,5 @@ /////////////////////////////////////////////////////////////////////////////////////////////////////// -// Copyright (c) 2024, ООО 1С-Софт +// Copyright (c) 2025, ООО 1С-Софт // Все права защищены. Эта программа и сопроводительные материалы предоставляются // в соответствии с условиями лицензии Attribution 4.0 International (CC BY 4.0) // Текст лицензии доступен по ссылке: diff --git a/SSL/src/CommonModules/ПодсистемыКонфигурацииПереопределяемый/Module.bsl b/SSL/src/CommonModules/ПодсистемыКонфигурацииПереопределяемый/Module.bsl index d11ffe617..52da4fd2e 100644 --- a/SSL/src/CommonModules/ПодсистемыКонфигурацииПереопределяемый/Module.bsl +++ b/SSL/src/CommonModules/ПодсистемыКонфигурацииПереопределяемый/Module.bsl @@ -1,5 +1,5 @@ /////////////////////////////////////////////////////////////////////////////////////////////////////// -// Copyright (c) 2024, ООО 1С-Софт +// Copyright (c) 2025, ООО 1С-Софт // Все права защищены. Эта программа и сопроводительные материалы предоставляются // в соответствии с условиями лицензии Attribution 4.0 International (CC BY 4.0) // Текст лицензии доступен по ссылке: diff --git a/SSL/src/CommonModules/ПоискИУдалениеДублей/Module.bsl b/SSL/src/CommonModules/ПоискИУдалениеДублей/Module.bsl index c1997030d..1b05a4938 100644 --- a/SSL/src/CommonModules/ПоискИУдалениеДублей/Module.bsl +++ b/SSL/src/CommonModules/ПоискИУдалениеДублей/Module.bsl @@ -1,5 +1,5 @@ /////////////////////////////////////////////////////////////////////////////////////////////////////// -// Copyright (c) 2024, ООО 1С-Софт +// Copyright (c) 2025, ООО 1С-Софт // Все права защищены. Эта программа и сопроводительные материалы предоставляются // в соответствии с условиями лицензии Attribution 4.0 International (CC BY 4.0) // Текст лицензии доступен по ссылке: @@ -119,6 +119,7 @@ ПоместитьТаблицыЗаменВЗапрос(МенеджерВременныхТаблиц, ТаблицыЗамен); ТаблицыНайденныхДублей = Новый Соответствие; + ТаблицыНайденныхПодчиненных = Новый Соответствие; ЧастиПакета = Новый Массив; Позиция = 0; Пока Позиция <= ИспользуемыеСвязи.Количество() - 1 Цикл @@ -130,6 +131,7 @@ ЧастиПакета.Добавить(ТекстЗапросаОбъектовДляЗамены( ОписаниеПодчиненногоОбъекта, СвязиПодчиненногоОбъекта)); ТаблицыНайденныхДублей.Вставить(ОписаниеПодчиненногоОбъекта.Ключ, ЧастиПакета.Количество() * 3 - 1); // 3 - количество добавляемых пакетов + ТаблицыНайденныхПодчиненных.Вставить(ОписаниеПодчиненногоОбъекта.Ключ, ЧастиПакета.Количество() * 3 - 3); Позиция = Позиция + СвязиПодчиненногоОбъекта.Количество(); КонецЦикла; @@ -137,7 +139,7 @@ Запрос = Новый Запрос; Запрос.МенеджерВременныхТаблиц = МенеджерВременныхТаблиц; Запрос.Текст = СтрСоединить(ЧастиПакета, ОбщегоНазначения.РазделительПакетаЗапросов()); - Результат = Запрос.ВыполнитьПакет(); + Результат = Запрос.ВыполнитьПакетСПромежуточнымиДанными(); Для каждого Замена Из ТаблицыНайденныхДублей Цикл @@ -152,7 +154,24 @@ ВыполнитьПоискПоПрикладнымПравилам(ИспользуемыеСвязи, НеподобранныеЗамены, ОписаниеПодчиненногоОбъекта, ПарыЗамен); КонецЕсли; + + КонецЦикла; + ПодчиненныеКДублям = ПараметрыЗамены.ПодчиненныеКДублям; + Для Каждого РезультатЗапроса Из ТаблицыНайденныхПодчиненных Цикл + + ОписаниеПодчиненногоОбъекта = ОписаниеПодчиненныхОбъектов[РезультатЗапроса.Ключ]; + ТаблицаПодчиненных = Результат[РезультатЗапроса.Значение].Выгрузить(); + + Для Каждого КлючевойРеквизит Из ОписаниеПодчиненногоОбъекта.КлючевыеРеквизиты Цикл + Для Каждого СтрокаСПодчиненным Из ТаблицаПодчиненных Цикл + ЗначениеКлючевогоРеквизита = СтрокаСПодчиненным[КлючевойРеквизит]; + ПоискДубляВПарах = ПарыЗамен[ЗначениеКлючевогоРеквизита]; + Если ПоискДубляВПарах <> Неопределено Тогда + ПодчиненныеКДублям.Вставить(СтрокаСПодчиненным.Ссылка, ЗначениеКлючевогоРеквизита); + КонецЕсли; + КонецЦикла; + КонецЦикла; КонецЦикла; КонецПроцедуры @@ -410,18 +429,8 @@ // "" - По умолчанию. Не предпринимать никаких действий. // "Пометка" - Помечать на удаление. // "Непосредственно" - Удалять непосредственно. -// АдресРезультата - Строка - адрес временного хранилища, куда будет помещен результат замены - ТаблицаЗначений: -// * Ссылка - ЛюбаяСсылка - ссылка, которую заменяли. -// * ОбъектОшибки - Произвольный - объект - причина ошибки. -// * ПредставлениеОбъектаОшибки - Строка - строковое представление объекта ошибки. -// * ТипОшибки - Строка - маркер типа ошибки. Возможны варианты: -// "ОшибкаБлокировки" - при обработке ссылки некоторые объекты были заблокированы -// "ДанныеИзменены" - в процессе обработки данные были изменены другим пользователем -// "ОшибкаЗаписи" - не смогли записать объект -// "НеизвестныеДанные" - при обработке были найдены данные, которые -// не планировались к анализу, замена не реализована -// "ЗаменаЗапрещена" - обработчик ВозможностьЗаменыЭлементов вернул отказ. -// * ТекстОшибки - Строка - подробное описание ошибки. +// АдресРезультата - Строка - адрес временного хранилища, +// куда будет помещен результат выполнения ОбщегоНазначения.ЗаменитьСсылки(). // Процедура ЗаменитьСсылки(Параметры, Знач АдресРезультата) Экспорт diff --git a/SSL/src/CommonModules/ПоискИУдалениеДублейКлиент/Module.bsl b/SSL/src/CommonModules/ПоискИУдалениеДублейКлиент/Module.bsl index ed49985a2..d79b88813 100644 --- a/SSL/src/CommonModules/ПоискИУдалениеДублейКлиент/Module.bsl +++ b/SSL/src/CommonModules/ПоискИУдалениеДублейКлиент/Module.bsl @@ -1,5 +1,5 @@ /////////////////////////////////////////////////////////////////////////////////////////////////////// -// Copyright (c) 2024, ООО 1С-Софт +// Copyright (c) 2025, ООО 1С-Софт // Все права защищены. Эта программа и сопроводительные материалы предоставляются // в соответствии с условиями лицензии Attribution 4.0 International (CC BY 4.0) // Текст лицензии доступен по ссылке: diff --git a/SSL/src/CommonModules/ПоискИУдалениеДублейПереопределяемый/Module.bsl b/SSL/src/CommonModules/ПоискИУдалениеДублейПереопределяемый/Module.bsl index e18bd8ba0..f8a87d8e7 100644 --- a/SSL/src/CommonModules/ПоискИУдалениеДублейПереопределяемый/Module.bsl +++ b/SSL/src/CommonModules/ПоискИУдалениеДублейПереопределяемый/Module.bsl @@ -1,5 +1,5 @@ /////////////////////////////////////////////////////////////////////////////////////////////////////// -// Copyright (c) 2024, ООО 1С-Софт +// Copyright (c) 2025, ООО 1С-Софт // Все права защищены. Эта программа и сопроводительные материалы предоставляются // в соответствии с условиями лицензии Attribution 4.0 International (CC BY 4.0) // Текст лицензии доступен по ссылке: diff --git a/SSL/src/CommonModules/ПолнотекстовыйПоискКлиент/Module.bsl b/SSL/src/CommonModules/ПолнотекстовыйПоискКлиент/Module.bsl index 6dcf58069..b11d5138e 100644 --- a/SSL/src/CommonModules/ПолнотекстовыйПоискКлиент/Module.bsl +++ b/SSL/src/CommonModules/ПолнотекстовыйПоискКлиент/Module.bsl @@ -1,5 +1,5 @@ /////////////////////////////////////////////////////////////////////////////////////////////////////// -// Copyright (c) 2024, ООО 1С-Софт +// Copyright (c) 2025, ООО 1С-Софт // Все права защищены. Эта программа и сопроводительные материалы предоставляются // в соответствии с условиями лицензии Attribution 4.0 International (CC BY 4.0) // Текст лицензии доступен по ссылке: diff --git a/SSL/src/CommonModules/ПолнотекстовыйПоискСервер/Module.bsl b/SSL/src/CommonModules/ПолнотекстовыйПоискСервер/Module.bsl index e47f85d16..6852a6229 100644 --- a/SSL/src/CommonModules/ПолнотекстовыйПоискСервер/Module.bsl +++ b/SSL/src/CommonModules/ПолнотекстовыйПоискСервер/Module.bsl @@ -1,5 +1,5 @@ /////////////////////////////////////////////////////////////////////////////////////////////////////// -// Copyright (c) 2024, ООО 1С-Софт +// Copyright (c) 2025, ООО 1С-Софт // Все права защищены. Эта программа и сопроводительные материалы предоставляются // в соответствии с условиями лицензии Attribution 4.0 International (CC BY 4.0) // Текст лицензии доступен по ссылке: @@ -600,8 +600,6 @@ Процедура ПриОпределенииМетодовРазрешенныхДляВызоваКакПроизвольныйКод(Методы) Экспорт Методы.Вставить("ИнициализироватьФункциональнуюОпциюПолнотекстовыйПоиск"); - Методы.Вставить("ОбновлениеИндексаППДПоРасписанию", Истина); - Методы.Вставить("СлияниеИндексаППДПоРасписанию", Истина); КонецПроцедуры diff --git a/SSL/src/CommonModules/ПолнотекстовыйПоискСерверПереопределяемый/Module.bsl b/SSL/src/CommonModules/ПолнотекстовыйПоискСерверПереопределяемый/Module.bsl index ca4fff1f2..00fa1dd47 100644 --- a/SSL/src/CommonModules/ПолнотекстовыйПоискСерверПереопределяемый/Module.bsl +++ b/SSL/src/CommonModules/ПолнотекстовыйПоискСерверПереопределяемый/Module.bsl @@ -1,5 +1,5 @@ /////////////////////////////////////////////////////////////////////////////////////////////////////// -// Copyright (c) 2024, ООО 1С-Софт +// Copyright (c) 2025, ООО 1С-Софт // Все права защищены. Эта программа и сопроводительные материалы предоставляются // в соответствии с условиями лицензии Attribution 4.0 International (CC BY 4.0) // Текст лицензии доступен по ссылке: diff --git a/SSL/src/CommonModules/ПолнотекстовыйПоискСлужебныйВызовСервера/Module.bsl b/SSL/src/CommonModules/ПолнотекстовыйПоискСлужебныйВызовСервера/Module.bsl index fbf545af4..f1ada2619 100644 --- a/SSL/src/CommonModules/ПолнотекстовыйПоискСлужебныйВызовСервера/Module.bsl +++ b/SSL/src/CommonModules/ПолнотекстовыйПоискСлужебныйВызовСервера/Module.bsl @@ -1,5 +1,5 @@ /////////////////////////////////////////////////////////////////////////////////////////////////////// -// Copyright (c) 2024, ООО 1С-Софт +// Copyright (c) 2025, ООО 1С-Софт // Все права защищены. Эта программа и сопроводительные материалы предоставляются // в соответствии с условиями лицензии Attribution 4.0 International (CC BY 4.0) // Текст лицензии доступен по ссылке: diff --git a/SSL/src/CommonModules/ПолнотекстовыйПоискСлужебныйКлиент/Module.bsl b/SSL/src/CommonModules/ПолнотекстовыйПоискСлужебныйКлиент/Module.bsl index ad3990fef..1b9ead5a3 100644 --- a/SSL/src/CommonModules/ПолнотекстовыйПоискСлужебныйКлиент/Module.bsl +++ b/SSL/src/CommonModules/ПолнотекстовыйПоискСлужебныйКлиент/Module.bsl @@ -1,5 +1,5 @@ /////////////////////////////////////////////////////////////////////////////////////////////////////// -// Copyright (c) 2024, ООО 1С-Софт +// Copyright (c) 2025, ООО 1С-Софт // Все права защищены. Эта программа и сопроводительные материалы предоставляются // в соответствии с условиями лицензии Attribution 4.0 International (CC BY 4.0) // Текст лицензии доступен по ссылке: diff --git a/SSL/src/CommonModules/ПолучениеФайловИзИнтернета/Module.bsl b/SSL/src/CommonModules/ПолучениеФайловИзИнтернета/Module.bsl index 1ad45fd65..6a5193dde 100644 --- a/SSL/src/CommonModules/ПолучениеФайловИзИнтернета/Module.bsl +++ b/SSL/src/CommonModules/ПолучениеФайловИзИнтернета/Module.bsl @@ -1,5 +1,5 @@ /////////////////////////////////////////////////////////////////////////////////////////////////////// -// Copyright (c) 2024, ООО 1С-Софт +// Copyright (c) 2025, ООО 1С-Софт // Все права защищены. Эта программа и сопроводительные материалы предоставляются // в соответствии с условиями лицензии Attribution 4.0 International (CC BY 4.0) // Текст лицензии доступен по ссылке: @@ -329,13 +329,8 @@ | антивирус или другое программное обеспечение; |- сервер отключен или на техническом обслуживании.'"), АдресСервераРесурса)); - - ЖурналТрассировки = ПолучениеФайловИзИнтернетаСлужебный.ЖурналТрассировкиМаршрутаСервера(АдресСервераРесурса); - Журнал.Добавить("2) " + ЖурналТрассировки); - КонецЕсли; КонецЕсли; - КонецЕсли; ПолучениеФайловИзИнтернетаЛокализация.ПриФормированииСообщенияОбИзвестнойПроблеме(Описание, ТекстОшибки); diff --git a/SSL/src/CommonModules/ПолучениеФайловИзИнтернетаКлиент/Module.bsl b/SSL/src/CommonModules/ПолучениеФайловИзИнтернетаКлиент/Module.bsl index 8b00f5dea..ea76e140a 100644 --- a/SSL/src/CommonModules/ПолучениеФайловИзИнтернетаКлиент/Module.bsl +++ b/SSL/src/CommonModules/ПолучениеФайловИзИнтернетаКлиент/Module.bsl @@ -1,5 +1,5 @@ /////////////////////////////////////////////////////////////////////////////////////////////////////// -// Copyright (c) 2024, ООО 1С-Софт +// Copyright (c) 2025, ООО 1С-Софт // Все права защищены. Эта программа и сопроводительные материалы предоставляются // в соответствии с условиями лицензии Attribution 4.0 International (CC BY 4.0) // Текст лицензии доступен по ссылке: @@ -8,9 +8,21 @@ #Область ПрограммныйИнтерфейс +// Открывает форму для ввода параметров прокси сервера. +// +// Параметры: +// ПараметрыФормы - Структура - параметры открываемой формы. +// +Процедура ОткрытьФормуПараметровПроксиСервера(ПараметрыФормы = Неопределено) Экспорт + + ОткрытьФорму("ОбщаяФорма.ПараметрыПроксиСервера", ПараметрыФормы); + +КонецПроцедуры + +#Область УстаревшиеПроцедурыИФункции + +// Устарела. Следует пользоваться серверной процедурой ПолучениеФайловИзИнтернета.СкачатьФайлНаСервере для скачивания файлов. // Получает файл из Интернета по протоколу http(s), либо ftp и сохраняет его по указанному пути на клиенте. -// Недоступно при работе в веб-клиенте. При работе в веб-клиенте необходимо пользоваться аналогичными -// серверными процедурами для скачивания файлов. // // Параметры: // URL - Строка - url файла в формате [Протокол://]<Сервер>/<Путь к файлу на сервере>. @@ -55,15 +67,6 @@ КонецФункции -// Открывает форму для ввода параметров прокси сервера. -// -// Параметры: -// ПараметрыФормы - Структура - параметры открываемой формы. -// -Процедура ОткрытьФормуПараметровПроксиСервера(ПараметрыФормы = Неопределено) Экспорт - - ОткрытьФорму("ОбщаяФорма.ПараметрыПроксиСервера", ПараметрыФормы); - -КонецПроцедуры +#КонецОбласти #КонецОбласти diff --git a/SSL/src/CommonModules/ПолучениеФайловИзИнтернетаКлиентСервер/Module.bsl b/SSL/src/CommonModules/ПолучениеФайловИзИнтернетаКлиентСервер/Module.bsl index eeb5be666..943b6b43b 100644 --- a/SSL/src/CommonModules/ПолучениеФайловИзИнтернетаКлиентСервер/Module.bsl +++ b/SSL/src/CommonModules/ПолучениеФайловИзИнтернетаКлиентСервер/Module.bsl @@ -1,5 +1,5 @@ /////////////////////////////////////////////////////////////////////////////////////////////////////// -// Copyright (c) 2024, ООО 1С-Софт +// Copyright (c) 2025, ООО 1С-Софт // Все права защищены. Эта программа и сопроводительные материалы предоставляются // в соответствии с условиями лицензии Attribution 4.0 International (CC BY 4.0) // Текст лицензии доступен по ссылке: diff --git a/SSL/src/CommonModules/ПолучениеФайловИзИнтернетаЛокализация/Module.bsl b/SSL/src/CommonModules/ПолучениеФайловИзИнтернетаЛокализация/Module.bsl index 116d2d49d..ddeeae8ba 100644 --- a/SSL/src/CommonModules/ПолучениеФайловИзИнтернетаЛокализация/Module.bsl +++ b/SSL/src/CommonModules/ПолучениеФайловИзИнтернетаЛокализация/Module.bsl @@ -1,5 +1,5 @@ /////////////////////////////////////////////////////////////////////////////////////////////////////// -// Copyright (c) 2024, ООО 1С-Софт +// Copyright (c) 2025, ООО 1С-Софт // Все права защищены. Эта программа и сопроводительные материалы предоставляются // в соответствии с условиями лицензии Attribution 4.0 International (CC BY 4.0) // Текст лицензии доступен по ссылке: diff --git a/SSL/src/CommonModules/ПолучениеФайловИзИнтернетаСлужебный/Module.bsl b/SSL/src/CommonModules/ПолучениеФайловИзИнтернетаСлужебный/Module.bsl index 67c773bd7..49e345753 100644 --- a/SSL/src/CommonModules/ПолучениеФайловИзИнтернетаСлужебный/Module.bsl +++ b/SSL/src/CommonModules/ПолучениеФайловИзИнтернетаСлужебный/Module.bsl @@ -1,5 +1,5 @@ /////////////////////////////////////////////////////////////////////////////////////////////////////// -// Copyright (c) 2024, ООО 1С-Софт +// Copyright (c) 2025, ООО 1С-Софт // Все права защищены. Эта программа и сопроводительные материалы предоставляются // в соответствии с условиями лицензии Attribution 4.0 International (CC BY 4.0) // Текст лицензии доступен по ссылке: diff --git a/SSL/src/CommonModules/ПолучениеФайловИзИнтернетаСлужебныйВызовСервера/Module.bsl b/SSL/src/CommonModules/ПолучениеФайловИзИнтернетаСлужебныйВызовСервера/Module.bsl index 124144b9e..e5e7cf4bc 100644 --- a/SSL/src/CommonModules/ПолучениеФайловИзИнтернетаСлужебныйВызовСервера/Module.bsl +++ b/SSL/src/CommonModules/ПолучениеФайловИзИнтернетаСлужебныйВызовСервера/Module.bsl @@ -1,5 +1,5 @@ /////////////////////////////////////////////////////////////////////////////////////////////////////// -// Copyright (c) 2024, ООО 1С-Софт +// Copyright (c) 2025, ООО 1С-Софт // Все права защищены. Эта программа и сопроводительные материалы предоставляются // в соответствии с условиями лицензии Attribution 4.0 International (CC BY 4.0) // Текст лицензии доступен по ссылке: @@ -8,22 +8,20 @@ #Область СлужебныеПроцедурыИФункции -#Область СкачатьФайлНаКлиенте +#Область УстаревшиеПроцедурыИФункции Функция СкачатьФайл(URL, ПараметрыПолучения, ЗаписыватьОшибку) Экспорт - НастройкаСохранения = Новый Соответствие; - НастройкаСохранения.Вставить("МестоХранения", "ВременноеХранилище"); + Результат = Новый Структура; + Результат.Вставить("Статус", Ложь); + Результат.Вставить("СообщениеОбОшибке"); + Результат.Вставить("Заголовки", Новый Соответствие); + Результат.Вставить("КодСостояния", 403); - Возврат ПолучениеФайловИзИнтернетаСлужебный.СкачатьФайл( - URL, ПараметрыПолучения, НастройкаСохранения, ЗаписыватьОшибку); + Возврат Результат; КонецФункции -#КонецОбласти - -#Область УстаревшиеПроцедурыИФункции - Функция СостояниеНастроекПрокси() Экспорт Возврат ПолучениеФайловИзИнтернетаСлужебный.СостояниеНастроекПрокси(); diff --git a/SSL/src/CommonModules/Пользователи/Module.bsl b/SSL/src/CommonModules/Пользователи/Module.bsl index 3c144378b..7058f4cf6 100644 --- a/SSL/src/CommonModules/Пользователи/Module.bsl +++ b/SSL/src/CommonModules/Пользователи/Module.bsl @@ -1,5 +1,5 @@ /////////////////////////////////////////////////////////////////////////////////////////////////////// -// Copyright (c) 2024, ООО 1С-Софт +// Copyright (c) 2025, ООО 1С-Софт // Все права защищены. Эта программа и сопроводительные материалы предоставляются // в соответствии с условиями лицензии Attribution 4.0 International (CC BY 4.0) // Текст лицензии доступен по ссылке: diff --git a/SSL/src/CommonModules/ПользователиКлиент/Module.bsl b/SSL/src/CommonModules/ПользователиКлиент/Module.bsl index 81b61ffef..14b02f27a 100644 --- a/SSL/src/CommonModules/ПользователиКлиент/Module.bsl +++ b/SSL/src/CommonModules/ПользователиКлиент/Module.bsl @@ -1,5 +1,5 @@ /////////////////////////////////////////////////////////////////////////////////////////////////////// -// Copyright (c) 2024, ООО 1С-Софт +// Copyright (c) 2025, ООО 1С-Софт // Все права защищены. Эта программа и сопроводительные материалы предоставляются // в соответствии с условиями лицензии Attribution 4.0 International (CC BY 4.0) // Текст лицензии доступен по ссылке: diff --git a/SSL/src/CommonModules/ПользователиКлиентСервер/Module.bsl b/SSL/src/CommonModules/ПользователиКлиентСервер/Module.bsl index 93aa7812d..8850438fc 100644 --- a/SSL/src/CommonModules/ПользователиКлиентСервер/Module.bsl +++ b/SSL/src/CommonModules/ПользователиКлиентСервер/Module.bsl @@ -1,5 +1,5 @@ /////////////////////////////////////////////////////////////////////////////////////////////////////// -// Copyright (c) 2024, ООО 1С-Софт +// Copyright (c) 2025, ООО 1С-Софт // Все права защищены. Эта программа и сопроводительные материалы предоставляются // в соответствии с условиями лицензии Attribution 4.0 International (CC BY 4.0) // Текст лицензии доступен по ссылке: diff --git a/SSL/src/CommonModules/ПользователиПереопределяемый/Module.bsl b/SSL/src/CommonModules/ПользователиПереопределяемый/Module.bsl index 66689d0fb..eb6e6d275 100644 --- a/SSL/src/CommonModules/ПользователиПереопределяемый/Module.bsl +++ b/SSL/src/CommonModules/ПользователиПереопределяемый/Module.bsl @@ -1,5 +1,5 @@ /////////////////////////////////////////////////////////////////////////////////////////////////////// -// Copyright (c) 2024, ООО 1С-Софт +// Copyright (c) 2025, ООО 1С-Софт // Все права защищены. Эта программа и сопроводительные материалы предоставляются // в соответствии с условиями лицензии Attribution 4.0 International (CC BY 4.0) // Текст лицензии доступен по ссылке: diff --git a/SSL/src/CommonModules/ПользователиСлужебный/Module.bsl b/SSL/src/CommonModules/ПользователиСлужебный/Module.bsl index b9a7fb7e7..75ee6a2d9 100644 --- a/SSL/src/CommonModules/ПользователиСлужебный/Module.bsl +++ b/SSL/src/CommonModules/ПользователиСлужебный/Module.bsl @@ -1,5 +1,5 @@ /////////////////////////////////////////////////////////////////////////////////////////////////////// -// Copyright (c) 2024, ООО 1С-Софт +// Copyright (c) 2025, ООО 1С-Софт // Все права защищены. Эта программа и сопроводительные материалы предоставляются // в соответствии с условиями лицензии Attribution 4.0 International (CC BY 4.0) // Текст лицензии доступен по ссылке: @@ -9416,13 +9416,8 @@ Отбор.Вставить("Пользователь", ИмяПользователяИБ); ВыборкаНастроек = МенеджерНастроек.Выбрать(Отбор); - Пропустить = Ложь; - Пока СледующаяНастройка(ВыборкаНастроек, Пропустить) Цикл - - Если Пропустить Тогда - Продолжить; - КонецЕсли; - + + Пока ВыборкаНастроек.Следующий() Цикл НоваяСтрока = ТаблицаНастроек.Добавить(); НоваяСтрока.КлючОбъекта = ВыборкаНастроек.КлючОбъекта; НоваяСтрока.КлючНастроек = ВыборкаНастроек.КлючНастроек; @@ -9432,22 +9427,6 @@ КонецФункции -Функция СледующаяНастройка(ВыборкаНастроек, Пропустить) - - Попытка - Пропустить = Ложь; - Возврат ВыборкаНастроек.Следующий(); - Исключение - ИнформацияОбОшибке = ИнформацияОбОшибке(); - Если ИнформацияОбОшибке.ЯвляетсяОшибкойКатегории(КатегорияОшибки.НарушениеПравДоступа) Тогда - ВызватьИсключение; - КонецЕсли; - Пропустить = Истина; - Возврат Истина; - КонецПопытки; - -КонецФункции - Процедура СкопироватьНастройки(МенеджерНастроек, ИмяПользователяИсточник, ИмяПользователяПриемник, Переносить) ТаблицаНастроек = СписокНастроек(ИмяПользователяИсточник, МенеджерНастроек); @@ -11450,6 +11429,12 @@ КонецЦикла; КонецЕсли; + Свойства = Новый Структура("БезОбновленияДереваРолей", Ложь); + ЗаполнитьЗначенияСвойств(Свойства, Параметры); + Если Свойства.БезОбновленияДереваРолей Тогда + Возврат; + КонецЕсли; + ОбновитьДеревоРолей(Параметры); КонецПроцедуры diff --git a/SSL/src/CommonModules/ПользователиСлужебныйВМоделиСервиса/Module.bsl b/SSL/src/CommonModules/ПользователиСлужебныйВМоделиСервиса/Module.bsl index 30ae6cef3..32a433807 100644 --- a/SSL/src/CommonModules/ПользователиСлужебныйВМоделиСервиса/Module.bsl +++ b/SSL/src/CommonModules/ПользователиСлужебныйВМоделиСервиса/Module.bsl @@ -1,5 +1,5 @@ /////////////////////////////////////////////////////////////////////////////////////////////////////// -// Copyright (c) 2024, ООО 1С-Софт +// Copyright (c) 2025, ООО 1С-Софт // Все права защищены. Эта программа и сопроводительные материалы предоставляются // в соответствии с условиями лицензии Attribution 4.0 International (CC BY 4.0) // Текст лицензии доступен по ссылке: diff --git a/SSL/src/CommonModules/ПользователиСлужебныйВМоделиСервисаВызовСервера/Module.bsl b/SSL/src/CommonModules/ПользователиСлужебныйВМоделиСервисаВызовСервера/Module.bsl index 18bab446c..715158155 100644 --- a/SSL/src/CommonModules/ПользователиСлужебныйВМоделиСервисаВызовСервера/Module.bsl +++ b/SSL/src/CommonModules/ПользователиСлужебныйВМоделиСервисаВызовСервера/Module.bsl @@ -1,5 +1,5 @@ /////////////////////////////////////////////////////////////////////////////////////////////////////// -// Copyright (c) 2024, ООО 1С-Софт +// Copyright (c) 2025, ООО 1С-Софт // Все права защищены. Эта программа и сопроводительные материалы предоставляются // в соответствии с условиями лицензии Attribution 4.0 International (CC BY 4.0) // Текст лицензии доступен по ссылке: diff --git a/SSL/src/CommonModules/ПользователиСлужебныйВМоделиСервисаКлиент/Module.bsl b/SSL/src/CommonModules/ПользователиСлужебныйВМоделиСервисаКлиент/Module.bsl index e68b028b6..389db3780 100644 --- a/SSL/src/CommonModules/ПользователиСлужебныйВМоделиСервисаКлиент/Module.bsl +++ b/SSL/src/CommonModules/ПользователиСлужебныйВМоделиСервисаКлиент/Module.bsl @@ -1,5 +1,5 @@ /////////////////////////////////////////////////////////////////////////////////////////////////////// -// Copyright (c) 2024, ООО 1С-Софт +// Copyright (c) 2025, ООО 1С-Софт // Все права защищены. Эта программа и сопроводительные материалы предоставляются // в соответствии с условиями лицензии Attribution 4.0 International (CC BY 4.0) // Текст лицензии доступен по ссылке: diff --git a/SSL/src/CommonModules/ПользователиСлужебныйВМоделиСервисаКлиентСервер/Module.bsl b/SSL/src/CommonModules/ПользователиСлужебныйВМоделиСервисаКлиентСервер/Module.bsl index 76c062c7b..55fe6e390 100644 --- a/SSL/src/CommonModules/ПользователиСлужебныйВМоделиСервисаКлиентСервер/Module.bsl +++ b/SSL/src/CommonModules/ПользователиСлужебныйВМоделиСервисаКлиентСервер/Module.bsl @@ -1,5 +1,5 @@ /////////////////////////////////////////////////////////////////////////////////////////////////////// -// Copyright (c) 2024, ООО 1С-Софт +// Copyright (c) 2025, ООО 1С-Софт // Все права защищены. Эта программа и сопроводительные материалы предоставляются // в соответствии с условиями лицензии Attribution 4.0 International (CC BY 4.0) // Текст лицензии доступен по ссылке: diff --git a/SSL/src/CommonModules/ПользователиСлужебныйВМоделиСервисаПовтИсп/Module.bsl b/SSL/src/CommonModules/ПользователиСлужебныйВМоделиСервисаПовтИсп/Module.bsl index 0b087c7e6..928659dd4 100644 --- a/SSL/src/CommonModules/ПользователиСлужебныйВМоделиСервисаПовтИсп/Module.bsl +++ b/SSL/src/CommonModules/ПользователиСлужебныйВМоделиСервисаПовтИсп/Module.bsl @@ -1,5 +1,5 @@ /////////////////////////////////////////////////////////////////////////////////////////////////////// -// Copyright (c) 2024, ООО 1С-Софт +// Copyright (c) 2025, ООО 1С-Софт // Все права защищены. Эта программа и сопроводительные материалы предоставляются // в соответствии с условиями лицензии Attribution 4.0 International (CC BY 4.0) // Текст лицензии доступен по ссылке: diff --git a/SSL/src/CommonModules/ПользователиСлужебныйКлиент/Module.bsl b/SSL/src/CommonModules/ПользователиСлужебныйКлиент/Module.bsl index 871f29c46..90685cdc3 100644 --- a/SSL/src/CommonModules/ПользователиСлужебныйКлиент/Module.bsl +++ b/SSL/src/CommonModules/ПользователиСлужебныйКлиент/Module.bsl @@ -1,5 +1,5 @@ /////////////////////////////////////////////////////////////////////////////////////////////////////// -// Copyright (c) 2024, ООО 1С-Софт +// Copyright (c) 2025, ООО 1С-Софт // Все права защищены. Эта программа и сопроводительные материалы предоставляются // в соответствии с условиями лицензии Attribution 4.0 International (CC BY 4.0) // Текст лицензии доступен по ссылке: diff --git a/SSL/src/CommonModules/ПользователиСлужебныйКлиентСервер/Module.bsl b/SSL/src/CommonModules/ПользователиСлужебныйКлиентСервер/Module.bsl index 41e97d4d8..14d1c8665 100644 --- a/SSL/src/CommonModules/ПользователиСлужебныйКлиентСервер/Module.bsl +++ b/SSL/src/CommonModules/ПользователиСлужебныйКлиентСервер/Module.bsl @@ -1,5 +1,5 @@ /////////////////////////////////////////////////////////////////////////////////////////////////////// -// Copyright (c) 2024, ООО 1С-Софт +// Copyright (c) 2025, ООО 1С-Софт // Все права защищены. Эта программа и сопроводительные материалы предоставляются // в соответствии с условиями лицензии Attribution 4.0 International (CC BY 4.0) // Текст лицензии доступен по ссылке: diff --git a/SSL/src/CommonModules/ПользователиСлужебныйПовтИсп/Module.bsl b/SSL/src/CommonModules/ПользователиСлужебныйПовтИсп/Module.bsl index ae27ec0cd..59c82ae5d 100644 --- a/SSL/src/CommonModules/ПользователиСлужебныйПовтИсп/Module.bsl +++ b/SSL/src/CommonModules/ПользователиСлужебныйПовтИсп/Module.bsl @@ -1,5 +1,5 @@ /////////////////////////////////////////////////////////////////////////////////////////////////////// -// Copyright (c) 2024, ООО 1С-Софт +// Copyright (c) 2025, ООО 1С-Софт // Все права защищены. Эта программа и сопроводительные материалы предоставляются // в соответствии с условиями лицензии Attribution 4.0 International (CC BY 4.0) // Текст лицензии доступен по ссылке: diff --git a/SSL/src/CommonModules/ПрефиксацияОбъектовКлиентСервер/Module.bsl b/SSL/src/CommonModules/ПрефиксацияОбъектовКлиентСервер/Module.bsl index abe2cabca..f7a7e228c 100644 --- a/SSL/src/CommonModules/ПрефиксацияОбъектовКлиентСервер/Module.bsl +++ b/SSL/src/CommonModules/ПрефиксацияОбъектовКлиентСервер/Module.bsl @@ -1,5 +1,5 @@ /////////////////////////////////////////////////////////////////////////////////////////////////////// -// Copyright (c) 2024, ООО 1С-Софт +// Copyright (c) 2025, ООО 1С-Софт // Все права защищены. Эта программа и сопроводительные материалы предоставляются // в соответствии с условиями лицензии Attribution 4.0 International (CC BY 4.0) // Текст лицензии доступен по ссылке: diff --git a/SSL/src/CommonModules/ПрефиксацияОбъектовКлиентСерверПереопределяемый/Module.bsl b/SSL/src/CommonModules/ПрефиксацияОбъектовКлиентСерверПереопределяемый/Module.bsl index 70c787530..ca456f5cc 100644 --- a/SSL/src/CommonModules/ПрефиксацияОбъектовКлиентСерверПереопределяемый/Module.bsl +++ b/SSL/src/CommonModules/ПрефиксацияОбъектовКлиентСерверПереопределяемый/Module.bsl @@ -1,5 +1,5 @@ /////////////////////////////////////////////////////////////////////////////////////////////////////// -// Copyright (c) 2024, ООО 1С-Софт +// Copyright (c) 2025, ООО 1С-Софт // Все права защищены. Эта программа и сопроводительные материалы предоставляются // в соответствии с условиями лицензии Attribution 4.0 International (CC BY 4.0) // Текст лицензии доступен по ссылке: diff --git a/SSL/src/CommonModules/ПрефиксацияОбъектовПереопределяемый/Module.bsl b/SSL/src/CommonModules/ПрефиксацияОбъектовПереопределяемый/Module.bsl index 2bfd8ef13..01059a9fc 100644 --- a/SSL/src/CommonModules/ПрефиксацияОбъектовПереопределяемый/Module.bsl +++ b/SSL/src/CommonModules/ПрефиксацияОбъектовПереопределяемый/Module.bsl @@ -1,5 +1,5 @@ /////////////////////////////////////////////////////////////////////////////////////////////////////// -// Copyright (c) 2024, ООО 1С-Софт +// Copyright (c) 2025, ООО 1С-Софт // Все права защищены. Эта программа и сопроводительные материалы предоставляются // в соответствии с условиями лицензии Attribution 4.0 International (CC BY 4.0) // Текст лицензии доступен по ссылке: diff --git a/SSL/src/CommonModules/ПрефиксацияОбъектовПовтИсп/Module.bsl b/SSL/src/CommonModules/ПрефиксацияОбъектовПовтИсп/Module.bsl index d4e116fe8..3354480be 100644 --- a/SSL/src/CommonModules/ПрефиксацияОбъектовПовтИсп/Module.bsl +++ b/SSL/src/CommonModules/ПрефиксацияОбъектовПовтИсп/Module.bsl @@ -1,5 +1,5 @@ /////////////////////////////////////////////////////////////////////////////////////////////////////// -// Copyright (c) 2024, ООО 1С-Софт +// Copyright (c) 2025, ООО 1С-Софт // Все права защищены. Эта программа и сопроводительные материалы предоставляются // в соответствии с условиями лицензии Attribution 4.0 International (CC BY 4.0) // Текст лицензии доступен по ссылке: diff --git a/SSL/src/CommonModules/ПрефиксацияОбъектовСлужебный/Module.bsl b/SSL/src/CommonModules/ПрефиксацияОбъектовСлужебный/Module.bsl index 15086bd94..06ee6ccad 100644 --- a/SSL/src/CommonModules/ПрефиксацияОбъектовСлужебный/Module.bsl +++ b/SSL/src/CommonModules/ПрефиксацияОбъектовСлужебный/Module.bsl @@ -1,5 +1,5 @@ /////////////////////////////////////////////////////////////////////////////////////////////////////// -// Copyright (c) 2024, ООО 1С-Софт +// Copyright (c) 2025, ООО 1С-Софт // Все права защищены. Эта программа и сопроводительные материалы предоставляются // в соответствии с условиями лицензии Attribution 4.0 International (CC BY 4.0) // Текст лицензии доступен по ссылке: diff --git a/SSL/src/CommonModules/ПрефиксацияОбъектовСобытия/Module.bsl b/SSL/src/CommonModules/ПрефиксацияОбъектовСобытия/Module.bsl index de48047af..2744443c0 100644 --- a/SSL/src/CommonModules/ПрефиксацияОбъектовСобытия/Module.bsl +++ b/SSL/src/CommonModules/ПрефиксацияОбъектовСобытия/Module.bsl @@ -1,5 +1,5 @@ /////////////////////////////////////////////////////////////////////////////////////////////////////// -// Copyright (c) 2024, ООО 1С-Софт +// Copyright (c) 2025, ООО 1С-Софт // Все права защищены. Эта программа и сопроводительные материалы предоставляются // в соответствии с условиями лицензии Attribution 4.0 International (CC BY 4.0) // Текст лицензии доступен по ссылке: diff --git a/SSL/src/CommonModules/ПроверкаЛегальностиПолученияОбновленияКлиент/Module.bsl b/SSL/src/CommonModules/ПроверкаЛегальностиПолученияОбновленияКлиент/Module.bsl index 98f89ea0e..e91def7c6 100644 --- a/SSL/src/CommonModules/ПроверкаЛегальностиПолученияОбновленияКлиент/Module.bsl +++ b/SSL/src/CommonModules/ПроверкаЛегальностиПолученияОбновленияКлиент/Module.bsl @@ -1,5 +1,5 @@ /////////////////////////////////////////////////////////////////////////////////////////////////////// -// Copyright (c) 2024, ООО 1С-Софт +// Copyright (c) 2025, ООО 1С-Софт // Все права защищены. Эта программа и сопроводительные материалы предоставляются // в соответствии с условиями лицензии Attribution 4.0 International (CC BY 4.0) // Текст лицензии доступен по ссылке: diff --git a/SSL/src/CommonModules/ПроверкаЛегальностиПолученияОбновленияПереопределяемый/Module.bsl b/SSL/src/CommonModules/ПроверкаЛегальностиПолученияОбновленияПереопределяемый/Module.bsl index 879fe9679..b03972491 100644 --- a/SSL/src/CommonModules/ПроверкаЛегальностиПолученияОбновленияПереопределяемый/Module.bsl +++ b/SSL/src/CommonModules/ПроверкаЛегальностиПолученияОбновленияПереопределяемый/Module.bsl @@ -1,5 +1,5 @@ /////////////////////////////////////////////////////////////////////////////////////////////////////// -// Copyright (c) 2024, ООО 1С-Софт +// Copyright (c) 2025, ООО 1С-Софт // Все права защищены. Эта программа и сопроводительные материалы предоставляются // в соответствии с условиями лицензии Attribution 4.0 International (CC BY 4.0) // Текст лицензии доступен по ссылке: diff --git a/SSL/src/CommonModules/РаботаВБезопасномРежиме/Module.bsl b/SSL/src/CommonModules/РаботаВБезопасномРежиме/Module.bsl index 38630710d..e27221488 100644 --- a/SSL/src/CommonModules/РаботаВБезопасномРежиме/Module.bsl +++ b/SSL/src/CommonModules/РаботаВБезопасномРежиме/Module.bsl @@ -1,5 +1,5 @@ /////////////////////////////////////////////////////////////////////////////////////////////////////// -// Copyright (c) 2024, ООО 1С-Софт +// Copyright (c) 2025, ООО 1С-Софт // Все права защищены. Эта программа и сопроводительные материалы предоставляются // в соответствии с условиями лицензии Attribution 4.0 International (CC BY 4.0) // Текст лицензии доступен по ссылке: diff --git a/SSL/src/CommonModules/РаботаВБезопасномРежимеКлиент/Module.bsl b/SSL/src/CommonModules/РаботаВБезопасномРежимеКлиент/Module.bsl index c63f5a539..a6e17f707 100644 --- a/SSL/src/CommonModules/РаботаВБезопасномРежимеКлиент/Module.bsl +++ b/SSL/src/CommonModules/РаботаВБезопасномРежимеКлиент/Module.bsl @@ -1,5 +1,5 @@ /////////////////////////////////////////////////////////////////////////////////////////////////////// -// Copyright (c) 2024, ООО 1С-Софт +// Copyright (c) 2025, ООО 1С-Софт // Все права защищены. Эта программа и сопроводительные материалы предоставляются // в соответствии с условиями лицензии Attribution 4.0 International (CC BY 4.0) // Текст лицензии доступен по ссылке: diff --git a/SSL/src/CommonModules/РаботаВБезопасномРежимеКлиентПереопределяемый/Module.bsl b/SSL/src/CommonModules/РаботаВБезопасномРежимеКлиентПереопределяемый/Module.bsl index bd15d8d1f..18806dfc7 100644 --- a/SSL/src/CommonModules/РаботаВБезопасномРежимеКлиентПереопределяемый/Module.bsl +++ b/SSL/src/CommonModules/РаботаВБезопасномРежимеКлиентПереопределяемый/Module.bsl @@ -1,5 +1,5 @@ /////////////////////////////////////////////////////////////////////////////////////////////////////// -// Copyright (c) 2024, ООО 1С-Софт +// Copyright (c) 2025, ООО 1С-Софт // Все права защищены. Эта программа и сопроводительные материалы предоставляются // в соответствии с условиями лицензии Attribution 4.0 International (CC BY 4.0) // Текст лицензии доступен по ссылке: diff --git a/SSL/src/CommonModules/РаботаВБезопасномРежимеПереопределяемый/Module.bsl b/SSL/src/CommonModules/РаботаВБезопасномРежимеПереопределяемый/Module.bsl index efed04af4..284708d60 100644 --- a/SSL/src/CommonModules/РаботаВБезопасномРежимеПереопределяемый/Module.bsl +++ b/SSL/src/CommonModules/РаботаВБезопасномРежимеПереопределяемый/Module.bsl @@ -1,5 +1,5 @@ /////////////////////////////////////////////////////////////////////////////////////////////////////// -// Copyright (c) 2024, ООО 1С-Софт +// Copyright (c) 2025, ООО 1С-Софт // Все права защищены. Эта программа и сопроводительные материалы предоставляются // в соответствии с условиями лицензии Attribution 4.0 International (CC BY 4.0) // Текст лицензии доступен по ссылке: diff --git a/SSL/src/CommonModules/РаботаВБезопасномРежимеСлужебный/Module.bsl b/SSL/src/CommonModules/РаботаВБезопасномРежимеСлужебный/Module.bsl index fff351008..35820393c 100644 --- a/SSL/src/CommonModules/РаботаВБезопасномРежимеСлужебный/Module.bsl +++ b/SSL/src/CommonModules/РаботаВБезопасномРежимеСлужебный/Module.bsl @@ -1,5 +1,5 @@ /////////////////////////////////////////////////////////////////////////////////////////////////////// -// Copyright (c) 2024, ООО 1С-Софт +// Copyright (c) 2025, ООО 1С-Софт // Все права защищены. Эта программа и сопроводительные материалы предоставляются // в соответствии с условиями лицензии Attribution 4.0 International (CC BY 4.0) // Текст лицензии доступен по ссылке: @@ -687,16 +687,6 @@ КонецПроцедуры -// См. СтандартныеПодсистемыСервер.ПриОпределенииМетодовРазрешенныхДляВызоваКакПроизвольныйКод -Процедура ПриОпределенииМетодовРазрешенныхДляВызоваКакПроизвольныйКод(Методы) Экспорт - - Методы.Вставить("ВыполнитьОбработкуЗапросов", Истина); - Методы.Вставить("ВыполнитьОбработкуЗапросовОбновления", Истина); - Методы.Вставить("ВыполнитьОбработкуЗапросовОтключения", Истина); - Методы.Вставить("ВыполнитьОбработкуЗапросовВосстановления", Истина); - -КонецПроцедуры - #КонецОбласти #КонецОбласти \ No newline at end of file diff --git a/SSL/src/CommonModules/РаботаВМоделиСервисаБСП/Module.bsl b/SSL/src/CommonModules/РаботаВМоделиСервисаБСП/Module.bsl index 3f49ad2a8..6c5fda923 100644 --- a/SSL/src/CommonModules/РаботаВМоделиСервисаБСП/Module.bsl +++ b/SSL/src/CommonModules/РаботаВМоделиСервисаБСП/Module.bsl @@ -1,5 +1,5 @@ /////////////////////////////////////////////////////////////////////////////////////////////////////// -// Copyright (c) 2024, ООО 1С-Софт +// Copyright (c) 2025, ООО 1С-Софт // Все права защищены. Эта программа и сопроводительные материалы предоставляются // в соответствии с условиями лицензии Attribution 4.0 International (CC BY 4.0) // Текст лицензии доступен по ссылке: diff --git a/SSL/src/CommonModules/РаботаСАдресами/Module.bsl b/SSL/src/CommonModules/РаботаСАдресами/Module.bsl index 28213a53b..02677d372 100644 --- a/SSL/src/CommonModules/РаботаСАдресами/Module.bsl +++ b/SSL/src/CommonModules/РаботаСАдресами/Module.bsl @@ -1,5 +1,5 @@ /////////////////////////////////////////////////////////////////////////////////////////////////////// -// Copyright (c) 2024, ООО 1С-Софт +// Copyright (c) 2025, ООО 1С-Софт // Все права защищены. Эта программа и сопроводительные материалы предоставляются // в соответствии с условиями лицензии Attribution 4.0 International (CC BY 4.0) // Текст лицензии доступен по ссылке: @@ -8,15 +8,15 @@ #Область ПрограммныйИнтерфейс -// Возвращает наименование субъекта РФ для адреса или пустую строку, если субъект не определен. +// Возвращает официальное наименование субъекта РФ для адреса или пустую строку, если субъект не определен. // Если переданная строка не содержит информации об адресе, то будет вызвано исключение. // // Параметры: -// Адрес - Строка -// - Структура - строка в формате JSON или XML соответствующая XDTO пакету Адрес. +// Адрес - Строка - строка в формате JSON или XML соответствующая XDTO пакету Адрес. +// - Структура - адрес с разбивкой по полям. // // Возвращаемое значение: -// Строка +// Строка // Функция РегионАдресаКонтактнойИнформации(Знач Адрес) Экспорт @@ -31,27 +31,35 @@ КонецЕсли; Адрес = УправлениеКонтактнойИнформациейСлужебный.JSONВКонтактнуюИнформациюПоПолям(Адрес, Перечисления.ТипыКонтактнойИнформации.Адрес); - - ИначеЕсли ТипЗнч(Адрес) <> Тип("Структура") Тогда - - ВызватьИсключение НСтр("ru = 'Невозможно определить субъект РФ, ожидается адрес.'"); - + КонецЕсли; - СубъектРФ = СокрЛП(Адрес.area + " " + Адрес.areaType); - Возврат СубъектРФ; + Если ТипЗнч(Адрес) <> Тип("Структура") Тогда + ВызватьИсключение НСтр("ru = 'Невозможно определить субъект РФ, ожидается адрес.'"); + КонецЕсли; + + Если ЗначениеЗаполнено(Адрес.areaValue) Тогда + ОфициальноеНаименование = Адрес.areaValue; + Иначе + ОфициальноеНаименование = ОфициальноеНаименованиеРегиона(Адрес.area); + КонецЕсли; + + Возврат ОфициальноеНаименование; КонецФункции -// Возвращает наименование города для адреса РФ или пустую строку для иностранного адреса. -// Если переданная строка не содержит информации об адресе, то будет вызвано исключение. +// Возвращает строковое представление наименования города. +// Для города федерального значения возвращается наименование самого города. +// +// Если переданная строка не содержит корректной информации об адресе, то функция вызывает исключение. // // Параметры: -// Адрес - Строка -// - Структура - строка в формате JSON или строка XML соответствующая XDTO пакету Адрес. +// Адрес - Строка - адрес в формате JSON или XML, соответствующий XDTO-пакету "Адрес". +// - Структура - адрес с разбивкой по полям. // // Возвращаемое значение: -// Строка +// Строка - наименование города (например, "г Москва", "г Сочи") +// или пустая строка, если город не определен. // Функция ГородАдресаКонтактнойИнформации(Знач Адрес) Экспорт @@ -60,32 +68,418 @@ Если ПустаяСтрока(Адрес) Тогда Возврат ""; КонецЕсли; - + Если УправлениеКонтактнойИнформациейКлиентСервер.ЭтоКонтактнаяИнформацияВXML(Адрес) Тогда - Адрес = УправлениеКонтактнойИнформацией.КонтактнаяИнформацияВJSON(Адрес, Перечисления.ТипыКонтактнойИнформации.Адрес); + Адрес = УправлениеКонтактнойИнформацией.КонтактнаяИнформацияВJSON( + Адрес, Перечисления.ТипыКонтактнойИнформации.Адрес); КонецЕсли; - Адрес = УправлениеКонтактнойИнформациейСлужебный.JSONВКонтактнуюИнформациюПоПолям(Адрес, Перечисления.ТипыКонтактнойИнформации.Адрес); + Адрес = УправлениеКонтактнойИнформациейСлужебный.JSONВКонтактнуюИнформациюПоПолям( + Адрес, Перечисления.ТипыКонтактнойИнформации.Адрес); ИначеЕсли ТипЗнч(Адрес) <> Тип("Структура") Тогда - ВызватьИсключение НСтр("ru = 'Невозможно определить город, ожидается адрес.'"); + КонецЕсли; + + ИмяРегиона = УправлениеКонтактнойИнформациейКлиентСервер.СоединитьНаименованиеИТипАдресногоОбъекта(Адрес.area, Адрес.areaType); + Если ЭтоГородФедеральногоЗначения(ИмяРегиона, Адрес.areaValue) Тогда + Если ЗначениеЗаполнено(Адрес.area) Тогда + Город = ИмяРегиона; + ИначеЕсли ЗначениеЗаполнено(Адрес.areaValue) Тогда + Город = Адрес.areaValue; + Иначе + Город = ОфициальноеНаименованиеРегиона(Адрес.area); + КонецЕсли; + + ИначеЕсли СтрСравнить(Адрес.AddressType, УправлениеКонтактнойИнформациейКлиентСервер.ИностранныйАдрес()) = 0 + И ПустаяСтрока(Адрес.City) Тогда + Город = ИмяРегиона; + Иначе + Город = УправлениеКонтактнойИнформациейКлиентСервер.СоединитьНаименованиеИТипАдресногоОбъекта(Адрес.City, Адрес.CityType); КонецЕсли; - Регион = СокрЛП(Адрес.area + " " + Адрес.areaType); - - Если ЭтоГородФедеральногоЗначения(Регион) - Или СтрСравнить(Адрес.AddressType, УправлениеКонтактнойИнформациейКлиентСервер.ИностранныйАдрес()) = 0 Тогда - Возврат Регион; - КонецЕсли; - - Город = СокрЛП(Адрес.City + " " + Адрес.CityType); - Возврат Город; КонецФункции +// Возвращает сведения о муниципальных адресах в виде отдельных полей адреса. +// +// Параметры: +// Адреса - Соответствие из КлючИЗначение: +// * Ключ - Произвольный - идентификатор адреса +// * Значение - Строка - адрес в формате JSON +// ДополнительныеПараметры - см. НовыйДополнительныеПараметрыДеленийАдресов +// +// Возвращаемое значение: +// Соответствие из КлючИЗначение: +// * Ключ - Произвольный - идентификатор адреса +// * Значение - см. СведенияОМуниципальномАдресе +// +Функция СведенияОМуниципальныхАдресах(Адреса, ДополнительныеПараметры = Неопределено) Экспорт + Возврат СведенияОАдресахОбщая(Адреса, ДополнительныеПараметры, РаботаСАдресамиКлиентСервер.МуниципальныйАдрес()); +КонецФункции + +// Возвращает сведения о административно территориальных адресах в виде отдельных полей адреса. +// +// Параметры: +// Адреса - Соответствие из КлючИЗначение: +// * Ключ - Произвольный - идентификатор адреса +// * Значение - Строка - адрес в формате JSON +// ДополнительныеПараметры - см. НовыйДополнительныеПараметрыДеленийАдресов +// +// Возвращаемое значение: +// Соответствие из КлючИЗначение: +// * Ключ - Произвольный - идентификатор адреса +// * Значение - см. СведенияОбАдминистративноТерриториальномАдресе +// +Функция СведенияОбАдминистративноТерриториальныхАдресах(Адреса, ДополнительныеПараметры = Неопределено) Экспорт + Возврат СведенияОАдресахОбщая(Адреса, ДополнительныеПараметры, РаботаСАдресамиКлиентСервер.АдминистративноТерриториальныйАдрес()); + +КонецФункции + +// Возвращает сведения о муниципальном адресе в виде отдельных полей адреса. +// При отсутствии данных возвращается пустая строка. +// +// Параметры: +// Адрес - Строка - Адрес в формате JSON +// ДополнительныеПараметры - см. НовыйДополнительныеПараметрыДеленийАдресов +// +// Возвращаемое значение: +// Структура - сведения о муниципальном адресе: +// * Представление - Строка - текстовое представление адреса по муниципальному делению. +// * Индекс - Строка - почтовый индекс. +// * Комментарий - Строка - дополнительный комментарий к адресу. +// * ИдентификаторАдресногоЭлемента - Строка - уникальный идентификатор последнего адресного элемента в адресе. +// Например, для адреса "г Москва, вн.тер.г. городской округ Троицк, г Троицк, ул 3-я Вишневая, +// д. 1" это будет идентификатор улицы "3-я Вишневая". +// * Регион - Структура - сведения о регионе (субъект РФ): +// ** Представление - Строка - полное наименование региона с типом ("Московская область"). +// ** Наименование - Строка - название региона без типа ("Московская"). +// ** Тип - Строка - тип региона ("область", "край", "республика"). +// ** Идентификатор - Строка - уникальный идентификатор региона (GUID). +// ** Код - Строка - код региона РФ ("77"). +// * МуниципальныйРайон - Структура - сведения о муниципальном районе (округе): +// ** Представление - Строка - полное наименование муниципального района ("Ленинский муниципальный район"). +// ** Наименование - Строка - название района без типа ("Ленинский"). +// ** Тип - Строка - тип муниципального образования ("муниципальный район"). +// ** Идентификатор - Строка - уникальный идентификатор муниципального района. +// ** Код - Строка - код типа муниципального образования: 1 - муниципальный район; 2 - городской округ; +// 3 - внутригородская территория; 4 - муниципальный округ; 5 - федеральная территория. +// * Поселение - Структура - сведения о поселении: +// ** Представление - Строка - полное наименование поселения ("Сосновское сельское поселение"). +// ** Наименование - Строка - название поселения без типа ("Сосновское"). +// ** Тип - Строка - тип поселения ("сельское поселение"). +// ** Идентификатор - Строка - уникальный идентификатор поселения. +// ** Код - Строка - код типа поселения: 1 - городское поселение; 2 - сельское поселение; +// 3 - межселенная территория; 4 - внутригородской район городского округа. +// * НаселенныйПункт - Структура - сведения о населенном пункте: +// ** Представление - Строка - полное наименование населенного пункта ("деревня Восход"). +// ** Наименование - Строка - название населенного пункта ("Восход"). +// ** Тип - Строка - тип населенного пункта ("деревня"). +// ** Идентификатор - Строка - уникальный идентификатор населенного пункта. +// * Территория - Структура - сведения о территории (элемент планировочной структуры): +// ** Представление - Строка - полное наименование территории. +// ** Наименование - Строка - название территории. +// ** Тип - Строка - тип территории. +// ** Идентификатор - Строка - уникальный идентификатор территории. +// * Улица - Структура - сведения об улице (элемент улично-дорожной сети): +// ** Представление - Строка - полное наименование улицы ("улица Ленина"). +// ** Наименование - Строка - название улицы ("Ленина"). +// ** Тип - Строка - тип улицы ("улица"). +// ** Идентификатор - Строка - уникальный идентификатор улицы. +// * Здание - Структура: +// ** Представление - Строка - представление здания ("дом 1"). +// ** Идентификатор - Строка - идентификатор здания. +// ** Здание - Массив из Структура: +// *** Наименование - Строка - номер дома ("1"). +// *** Тип - Строка - тип здания ("дом"). +// * Помещения - Структура: +// ** Представление - Строка - представление помещения +// ** Идентификатор - Строка - идентификатор помещения. +// ** Помещение - Массив из Структура: +// *** Наименование - Строка - номер помещения ("1"). +// *** Тип - Строка - тип помещения ("квартира"). +// * ЗемельныйУчасток - Структура - информация о земельном участке: +// ** Представление - Строка - представление земельного участка +// ** Наименование - Строка - номер земельного участка. +// ** Тип - Строка - тип земельного участка (всегда "з/у"). +// ** Идентификатор - Строка - идентификатор участка. +// +Функция СведенияОМуниципальномАдресе(Адрес, ДополнительныеПараметры = Неопределено) Экспорт + + Адреса = Новый Соответствие(); + Адреса.Вставить(1, Адрес); + Результаты = СведенияОМуниципальныхАдресах(Адреса, ДополнительныеПараметры); + Возврат Результаты[1]; + +КонецФункции + +// Возвращает сведения об административно-территориальном адресе в виде отдельных полей адреса. +// +// Параметры: +// Адрес - Строка - Адрес в формате JSON. +// ДополнительныеПараметры - см. НовыйДополнительныеПараметрыДеленийАдресов +// +// Возвращаемое значение: +// Структура - сведения о муниципальном адресе: +// * Представление - Строка - текстовое представление адреса по муниципальному делению. +// * Индекс - Строка - почтовый индекс. +// * Комментарий - Строка - дополнительный комментарий к адресу. +// * ИдентификаторАдресногоЭлемента - Строка - уникальный идентификатор последнего адресного элемента в адресе. +// Например, для адреса "город Москва, город Троицк, улица 3-я Вишневая, дом 1" +// это будет идентификатор улицы "3-я Вишневая". +// * Регион - Структура - сведения о регионе (субъект РФ): +// ** Представление - Строка - полное наименование региона с типом ("Московская область"). +// ** Наименование - Строка - название региона без типа ("Московская"). +// ** Тип - Строка - тип региона ("область", "край", "республика"). +// ** Идентификатор - Строка - уникальный идентификатор региона (GUID). +// ** Код - Строка - код региона РФ ("77"). +// * Район - Структура - сведения о административном районе: +// ** Представление - Строка - полное наименование административного района. Например, "Ленинский район". +// ** Наименование - Строка - название административного района без типа. Например, "Ленинский". +// ** Тип - Строка - тип административного района. Например, "р-н" или "район". +// ** Идентификатор - Строка - уникальный идентификатор района. +// * Город - Структура - сведения о городе: +// ** Представление - Строка - полное наименование города. Например, "г Торжок". +// ** Наименование - Строка - название города без типа. Например, "Торжок". +// ** Тип - Строка - тип города. Например, "г". +// ** Идентификатор - Строка - уникальный идентификатор города. +// * НаселенныйПункт - Структура - сведения о населенном пункте: +// ** Представление - Строка - полное наименование населенного пункта. Например, "деревня Восход". +// ** Наименование - Строка - название населенного пункта. Например, "Восход". +// ** Тип - Строка - тип населенного пункта. Например, "деревня". +// ** Идентификатор - Строка - уникальный идентификатор населенного пункта. +// * Территория - Структура - сведения о территории (элемент планировочной структуры): +// ** Представление - Строка - полное наименование территории. +// ** Наименование - Строка - название территории. +// ** Тип - Строка - тип территории. +// ** Идентификатор - Строка - уникальный идентификатор территории. +// * Улица - Структура - сведения об улице (элемент улично-дорожной сети): +// ** Представление - Строка - полное наименование улицы. Например, "ул. Ленина". +// ** Наименование - Строка - название улицы. Например, "Ленина". +// ** Тип - Строка - тип улицы. Например, "ул.". +// ** Идентификатор - Строка - уникальный идентификатор улицы. +// * Здания - Структура - информация о здание (строение), сооружение: +// ** Представление - Строка - представление здания +// ** Идентификатор - Строка - идентификатор здания. +// ** Здание - Массив из Структура: +// *** Наименование - Строка - номер дома. Например, "1". +// *** Тип - Строка - тип здания. Например, "дом". +// * Помещения - Структура: - информация о помещения: +// ** Представление - Строка - представление помещения +// ** Идентификатор - Строка - идентификатор помещения. +// ** Помещение - Массив из Структура: +// *** Наименование - Строка - номер помещения, Например, "1". +// *** Тип - Строка - тип помещения. Например, "квартира". +// * ЗемельныйУчасток - Структура - информация о земельном участке: +// ** Представление - Строка - представление земельного участка +// ** Наименование - Строка - номер земельного участка. +// ** Тип - Строка - тип земельного участка (всегда "з/у"). +// ** Идентификатор - Строка - идентификатор участка. +// +Функция СведенияОбАдминистративноТерриториальномАдресе(Адрес, ДополнительныеПараметры = Неопределено) Экспорт + + Адреса = Новый Соответствие(); + Адреса.Вставить(1, Адрес); + Результаты = СведенияОбАдминистративноТерриториальныхАдресах(Адреса, ДополнительныеПараметры); + Возврат Результаты[1]; + +КонецФункции + +// Возвращает структуру с дополнительными параметрами формирования представлений делений адресов. +// +// +// Возвращаемое значение: +// Структура: +// * ВариантНаписанияТипа - Строка -способ отображения типа адресного элемента: +// "Полный" - полное написание (например, "город"); +// "Сокращенный" - сокращенное написание (например, "г."); +// "СокращенныйПоПриказуМинфина171н" - сокращенное написание, соответствующее +// требованиям приказа Минфина РФ № 171н +// для типов адресных элементов, домов, зданий и помещений; +// "" (пустая строка) - по умолчанию, преобразование типа не выполняется. +// * ВключатьСтрануВПредставление - Булево - +// если Истина, то в строковом представлении адреса будет указана страна; +// если Ложь, страна исключается из представления. +// * ВключатьИндексВПредставление - Булево - +// если Истина, то в строковом представлении адреса будет включен почтовый индекс; +// если Ложь, индекс не включается в представление. +// +Функция НовыйДополнительныеПараметрыДеленийАдресов() Экспорт + + ДополнительныеПараметры = Новый Структура(); + ДополнительныеПараметры.Вставить("ВариантНаписанияТипа", ""); + ДополнительныеПараметры.Вставить("ВключатьСтрануВПредставление", Ложь); + ДополнительныеПараметры.Вставить("ВключатьИндексПредставление", Истина); + + Возврат ДополнительныеПараметры; + +КонецФункции + +// Возвращает представление адресного элемента по правилам ГАР. +// Для региона при доступности адресного классификатора всегда возвращается официальное наименование. +// +// Параметры: +// Наименование - Строка - название адресного объекта ("Московская", "Ленинская", "Сосновское"). +// Тип - Строка - тип адресного объекта ("область", "д.", "ш"). +// ИмяУровня - Строка - (необязательный) уровень адресного элемента ("Регион", "Город", Улица" и др.) +// Если не указан, то будет использован первый найденный вариант. +// ВариантНаписанияТипа - Строка - Определяет формат написания типа адресного элемента (кроме Региона). Варианты значений, +// Полный - полное написание (например, «область»); +// Сокращенный - сокращенное написание (например, «обл.»); +// СокращенныйПоПриказуМинфина171н - сокращенное написание , где типы адресных элементов, +// типы домов, зданий и помещений соответствуют приказу Минфина РФ N 171н. +// "" - По умолчанию, пустая строка (преобразование не выполняется). +// +// Возвращаемое значение: +// Строка - полное представление адресного элемента: +// "Московская область", "Ленинский муниципальный район", "Московская обл." (при сокращении). +// +// Пример: +// Регион = ПредставлениеАдресногоЭлемента("Кабардино-Балкарская", "респ", Истина); // "Кабардино-Балкарская Республика" +// Район = ПредставлениеАдресногоЭлемента("Ленинский", "муниципальный район"); // "муниципальный район Ленинский" +// Регион = ПредставлениеАдресногоЭлемента("Приморск", "г."); // "г. Приморск" +// Улица = ПредставлениеАдресногоЭлемента("Сосновское", "ш",, "Полный"); // "шоссе Сосновское" +// +Функция ПредставлениеАдресногоЭлемента(Наименование, Тип, ИмяУровня = "", ВариантНаписанияТипа = "") Экспорт + + Результат = ""; + + Если ОбщегоНазначения.ПодсистемаСуществует("СтандартныеПодсистемы.АдресныйКлассификатор") Тогда + МодульАдресныйКлассификаторСлужебный = ОбщегоНазначения.ОбщийМодуль("АдресныйКлассификаторСлужебный"); + Результат = МодульАдресныйКлассификаторСлужебный.ПредставлениеАдресногоЭлемента(Наименование, + Тип, ИмяУровня, ВариантНаписанияТипа); + КонецЕсли; + + Если ПустаяСтрока(Результат) Тогда + Результат = УправлениеКонтактнойИнформациейКлиентСервер.СоединитьНаименованиеИТипАдресногоОбъекта(Наименование, Тип); + КонецЕсли; + + Возврат Результат; + +КонецФункции + +// Возвращает представление адресного элемента из адреса по указанному уровню и типу деления. +// Для регионов автоматически возвращает официальное наименование из ГАР. +// +// Параметры: +// Адрес - Структура - адрес в формате JSON. +// ИмяУровня - Строка - уровень адресного объекта по ГАР: "Регион", "МуниципальныйРайон", "Поселение", +// "Город", "НаселенныйПункт", "Территория", "Улица". +// ТипАдреса - Строка - тип адресного деления: +// РаботаСАдресамиКлиентСервер.МуниципальныйАдрес() или +// РаботаСАдресамиКлиентСервер.АдминистративноТерриториальныйАдрес(). +// ВариантНаписанияТипа - Строка - вариант сокращения типа адресного элемента или объекта: +// Полный - полное написание (например, «область»); +// Сокращенный - сокращенное написание (например, «обл.»); +// СокращенныйПоПриказуМинфина171н - сокращенное написание , где типы адресных элементов, +// типы домов, зданий и помещений соответствуют приказу Минфина РФ N 171н. +// "" - По умолчанию, пустая строка (преобразование не выполняется). +// +// Возвращаемое значение: +// Строка - полное представление адресного элемента или пустая строка: +// "Кемеровская область - Кузбасс", "улица Широкая". +// Если передан несуществующий уровень, то будет возвращена пустая строка. +// +// Пример: +// Регион = ПредставлениеАдресногоЭлементаПоУровню(Адрес, "Регион"); // "Московская область" +// Район = ПредставлениеАдресногоЭлементаПоУровню(Адрес, "МуниципальныйРайон", +// РаботаСАдресамиКлиентСервер.МуниципальныйАдрес()); // "Ленинский муниципальный район" +// Улица = ПредставлениеАдресногоЭлементаПоУровню(Адрес, "Улица"); // "ул Широкая" +// +Функция ПредставлениеАдресногоЭлементаПоУровню(Адрес, ИмяУровня, ТипАдреса, ВариантНаписанияТипа = "") Экспорт + + Уровни = ОбщегоНазначенияКлиентСервер.ЗначениеВМассиве(ИмяУровня); + Результат = ПредставлениеАдресныхЭлементовПоУровням(Адрес, Уровни, ТипАдреса, ВариантНаписанияТипа); + Возврат Результат[ИмяУровня]; + +КонецФункции + +// Возвращает представление адресного элемента из адреса по указанному уровню и типу деления. +// Для регионов автоматически возвращает официальное наименование из ГАР. +// +// Параметры: +// Адрес - Структура - адрес в формате JSON. +// ИменаУровней - Массив из Строка - уровни адресного объектов по ГАР: "Регион", "МуниципальныйРайон", "Поселение", +// "Город", "НаселенныйПункт", "Территория", "Улица". +// ТипАдреса - Строка - тип адресного деления: +// РаботаСАдресамиКлиентСервер.МуниципальныйАдрес() или +// РаботаСАдресамиКлиентСервер.АдминистративноТерриториальныйАдрес(). +// ВариантНаписанияТипа - Строка - вариант сокращения типа адресного элемента или объекта: +// Полный - полное написание (например, «область»); +// Сокращенный - сокращенное написание (например, «обл.»); +// СокращенныйПоПриказуМинфина171н - сокращенное написание , где типы адресных элементов, +// типы домов, зданий и помещений соответствуют приказу Минфина РФ N 171н. +// +// Возвращаемое значение: +// Соответствие из КлючИЗначение: +// * Ключ - Строка - элементы из ИмяУровней, +// * Значение - Строка - строковые представления адресных элементов. +// Для уровней, которые отсутствуют или не могут быть представлены, возвращается пустая строка. +// +Функция ПредставлениеАдресныхЭлементовПоУровням(Адрес, ИменаУровней, ТипАдреса, ВариантНаписанияТипа = "") Экспорт + + Результаты = Новый Соответствие(); + УровниАдреса = СоответствиеНаименованиеУровнейПолямJSON(); + + АдресИзJSON = ?(ТипЗнч(Адрес) = Тип("Строка"), + УправлениеКонтактнойИнформациейСлужебный.JSONВКонтактнуюИнформациюПоПолям(Адрес, Перечисления.ТипыКонтактнойИнформации.Адрес), + Адрес); + + ИмяУровней = ПорядокУровнейАдреса(АдресИзJSON, ТипАдреса); + + Для Каждого УровеньЭлемента Из ИменаУровней Цикл + ИмяУровня = ?(ЗначениеЗаполнено(УровниАдреса[УровеньЭлемента]), + УровниАдреса[УровеньЭлемента], ""); + + Если Не ЗначениеЗаполнено(ИмяУровня) ИЛИ ИмяУровней.Найти(УровеньЭлемента) = Неопределено Тогда + Результаты.Вставить(УровеньЭлемента, ""); + Продолжить; + КонецЕсли; + + Если УровеньЭлемента = "Здание" Тогда + ЧастиПредставления = Новый Массив(); + + Если ЗначениеЗаполнено(АдресИзJSON.houseNumber) Тогда + Часть = ЧастьПредставленияЗданияИПомещения(АдресИзJSON.houseNumber, АдресИзJSON.houseType, + ВариантНаписанияТипа, УровеньЭлемента); + ЧастиПредставления.Добавить(Часть); + КонецЕсли; + + Для Каждого Строение Из АдресИзJSON.buildings Цикл + Часть = ЧастьПредставленияЗданияИПомещения(Строение.number, Строение.type, + ВариантНаписанияТипа, УровеньЭлемента); + ЧастиПредставления.Добавить(Часть); + КонецЦикла; + + Результаты.Вставить(УровеньЭлемента, СтрСоединить(ЧастиПредставления, ", ")); + Продолжить; + + ИначеЕсли УровеньЭлемента = "Помещение" Тогда + ЧастиПредставления = Новый Массив(); + + Для Каждого Помещение Из АдресИзJSON.apartments Цикл + Часть = ЧастьПредставленияЗданияИПомещения(Помещение.number, Помещение.type, + ВариантНаписанияТипа, УровеньЭлемента); + ЧастиПредставления.Добавить(Часть); + КонецЦикла; + + Результаты.Вставить(УровеньЭлемента, СтрСоединить(ЧастиПредставления, ", ")); + Продолжить; + + КонецЕсли; + + Результат = ПредставлениеАдресногоЭлемента(АдресИзJSON[ИмяУровня], АдресИзJSON[ИмяУровня + "Type"], + УровеньЭлемента, ВариантНаписанияТипа); + Результаты.Вставить(УровеньЭлемента, Результат); + + КонецЦикла; + + Возврат Результаты; + +КонецФункции + // Возвращает сведения об адресе в виде отдельных частей адреса и различных кодов (код региона, ОКТМО и др.). // // Параметры: @@ -239,13 +633,14 @@ // ** ТипЗдания - Строка - тип объекта адресации адреса РФ согласно приказу Минфина России от 5.11.2015 г. N171н. // ** Номер - Строка - текстовое представление номера дома (только для адресов РФ). // * Корпуса - Массив - содержит структуры (поля структуры: ТипКорпуса, Номер) с перечнем корпусов адреса. -// * Помещения - Массив - содержит структуры (поля структуры: ТипПомещения, Номер) с перечнем помещений адреса. +// * Помещения - Массив из см. РаботаСАдресамиКлиентСервер.ПоляПомещения - перечень помещений адреса. // * НомерЗемельногоУчастка - Строка - текстовое представление номера земельного участка (только для адресов РФ). -// * УровниМуниципальногоАдреса - Массив - поля, используемые для формирования муниципального адреса. -// Порядок элементов в массиве определяет последовательность отображения полей. -// Имена уровней соответствуют названиям свойств, которые возвращает эта функция. -// * УровниАдминистративноТерриториальногоАдреса - Массив - поля для формирования административно-территориального адреса. -// Подробнее смотри описание свойства УровниМуниципальногоАдреса. +// * УровниМуниципальногоАдреса - Массив - поля, используемые для формирования муниципального адреса. +// Порядок элементов в массиве определяет последовательность отображения полей. +// Имена уровней соответствуют названиям свойств, которые возвращает эта функция. +// * УровниАдминистративноТерриториальногоАдреса - Массив - поля для формирования +// административно-территориального адреса. Подробнее +// смотри описание свойства УровниМуниципальногоАдреса. // * Комментарий - Строка - комментарий об адресе. // * ИдентификаторАдресногоОбъекта - УникальныйИдентификатор - идентификационный код последнего адресного объекта // в иерархи адреса. Например, для адреса: Москва г., Дмитровское ш., д.9 это @@ -254,6 +649,9 @@ // * ИдентификаторДома - УникальныйИдентификатор - идентификационный код дома(строения) адресного объекта. // Поле отсутствует, если дополнительный параметр КодыАдреса равен Ложь. // Пустая строка если значение отсутствует. +// * ИдентификаторПомещения - УникальныйИдентификатор - идентификационный код помещения дома адресного объекта. +// Поле отсутствует, если дополнительный параметр КодыАдреса равен Ложь. +// Пустая строка если значение отсутствует. // * ИдентификаторЗемельногоУчастка - УникальныйИдентификатор - идентификационный код земельного участка // адресного объекта. При отсутствии значения - пустая строка. // * Идентификаторы - Структура - где: @@ -319,7 +717,7 @@ МодульАдресныйКлассификаторСлужебный = ОбщегоНазначения.ОбщийМодуль("АдресныйКлассификаторСлужебный"); - ПереченьЭлементов = МодульАдресныйКлассификаторСлужебный.АдресныеСокращенияПриказМинфинаРФ171н(); + ПереченьЭлементов = МодульАдресныйКлассификаторСлужебный.АдресныеСокращенияПоПриказуМинфинаРФ171н(); Сокращение = НРег(СокрЛП(АдресПоПолям.МуниципальныйРайонТипКраткий)); АдресПоПолям.МуниципальныйРайон = МодульАдресныйКлассификаторСлужебный.КраткоеНаписаниеМуниципальныхРайонов(АдресПоПолям.МуниципальныйРайон, Сокращение); @@ -329,7 +727,7 @@ КонецЕсли; - УровниАдреса = ПорядокУровнейПоУмолчанию(); + УровниАдреса = ПорядокУровнейАдресныхЭлементовПоУмолчанию(); Для каждого УровеньАдреса Из УровниАдреса Цикл @@ -1405,6 +1803,18 @@ #Область ДляВызоваИзДругихПодсистем +// См. СтандартныеПодсистемыСервер.ПриОпределенииМетодовРазрешенныхДляВызоваКакПроизвольныйКод +Процедура ПриОпределенииМетодовРазрешенныхДляВызоваКакПроизвольныйКод(Методы) Экспорт + + Методы.Вставить("ИсправитьУстаревшиеАдресаВФоне", Истина); + Методы.Вставить("ИсправитьНекорректныеАдресаВФоне", Истина); + Методы.Вставить("ИсправитьТипЗданияЛитерВАдресахВФоне", Истина); + Методы.Вставить("ВыявитьУстаревшиеАдреса"); + Методы.Вставить("ПроверитьАдресаНаСоответствиеАдресномуКлассификатору"); + Методы.Вставить("ПроверитьАдресаНаТипЗданияЛитер"); + +КонецПроцедуры + // ИнтернетПоддержкаПользователей.РаботаСКлассификаторами // См. РаботаСКлассификаторамиПереопределяемый.ПриДобавленииКлассификаторов @@ -1449,6 +1859,232 @@ #Область СлужебныеПроцедурыИФункции +// Вспомогательные функции сведений об адресе + +Функция ЧастьПредставленияЗданияИПомещения(Номер, Тип, ВариантНаписанияТипа, ИмяУровня) + + ДанныеОТипе = ТипСогласноВариантуНаписания( + Тип, ИмяУровня, ВариантНаписанияТипа); + НаименованиеТипа = НРег(ДанныеОТипе.НаименованиеТипа); + Часть = УправлениеКонтактнойИнформациейКлиентСервер.СоединитьНаименованиеИТипАдресногоОбъекта( + Номер, НаименованиеТипа, ДанныеОТипе.ТипВКонец); + Возврат Часть; + +КонецФункции + +Функция ТипСогласноВариантуНаписания(ТипАдресногоЭлемента, ИмяУровня, ВариантНаписанияТипа) Экспорт + + Если ОбщегоНазначения.ПодсистемаСуществует("СтандартныеПодсистемы.АдресныйКлассификатор") Тогда + МодульАдресныйКлассификаторСлужебный = ОбщегоНазначения.ОбщийМодуль("АдресныйКлассификаторСлужебный"); + Результат = МодульАдресныйКлассификаторСлужебный.ТипСогласноВариантуНаписания(ТипАдресногоЭлемента, ИмяУровня, ВариантНаписанияТипа); + Иначе + Результат = ТипАдресногоЭлемента; + КонецЕсли; + + Возврат Результат; + +КонецФункции + +Функция СведенияОАдресахОбщая(Адреса, ДополнительныеПараметры, ТипАдреса) + + ПараметрыАдреса = НовыйДополнительныеПараметрыДеленийАдресов(); + Если ТипЗнч(ДополнительныеПараметры) = Тип("Структура") Тогда + ЗаполнитьЗначенияСвойств(ПараметрыАдреса, ДополнительныеПараметры); + КонецЕсли; + + Результаты = Новый Соответствие(); + СоответствиеУровней = СоответствиеНаименованиеУровнейПолямJSON(); + УровниАдресныхЭлементов = ПорядокУровнейАдресныхЭлементовПоУмолчанию(); + ВариантНаписанияТипа = ПараметрыАдреса.ВариантНаписанияТипа; + + Для Каждого Адрес Из Адреса Цикл + АдресJSON = Адрес.Значение; + + АдресИзJSON = УправлениеКонтактнойИнформациейСлужебный.JSONВКонтактнуюИнформациюПоПолям(АдресJSON, Перечисления.ТипыКонтактнойИнформации.Адрес); + ИмяУровней = ПорядокУровнейАдреса(АдресИзJSON, ТипАдреса); + + Результат = ?(ТипАдреса = РаботаСАдресамиКлиентСервер.МуниципальныйАдрес(), + НовыйМуниципальныйАдрес(), + НовыйАдминистративноТерриториальныйАдрес()); + Результат.Комментарий = АдресИзJSON.comment; + Результат.Индекс = АдресИзJSON.ZIPcode; + + Если ЗначениеЗаполнено(АдресИзJSON.areaValue) Тогда + НаименованиеРегиона = АдресИзJSON.areaValue; + Иначе + НаименованиеРегиона = ОфициальноеНаименованиеРегиона(АдресИзJSON.area); + КонецЕсли; + + НаборПолейДляПредставление = Новый Массив(); + ИдентификаторАдресногоЭлемента = ""; + + Если ПараметрыАдреса.ВключатьСтрануВПредставление Тогда + НаборПолейДляПредставление.Добавить(СокрЛП(АдресИзJSON.country)); + КонецЕсли; + + Если ПараметрыАдреса.ВключатьИндексПредставление Тогда + НаборПолейДляПредставление.Добавить(Результат.Индекс); + КонецЕсли; + + Для Каждого ИмяУровня Из ИмяУровней Цикл + + Если ИмяУровня = "Здание" Тогда + ОбработатьЗданияАдреса(АдресИзJSON, Результат, НаборПолейДляПредставление, ВариантНаписанияТипа); + Продолжить; + ИначеЕсли ИмяУровня = "Помещение" Тогда + ОбработатьПомещенияАдреса(АдресИзJSON, Результат, НаборПолейДляПредставление, ВариантНаписанияТипа); + Продолжить; + КонецЕсли; + + УровеньАдреса = Результат[ИмяУровня]; + + Если Не ЗначениеЗаполнено(СоответствиеУровней[ИмяУровня]) Тогда + Продолжить; + КонецЕсли; + + ИмяУровняВJSON = СоответствиеУровней[ИмяУровня]; + Если Не ЗначениеЗаполнено(АдресИзJSON[ИмяУровняВJSON]) Тогда + Продолжить; + КонецЕсли; + + ЗначениеТипа = ?(СтрСравнить(ИмяУровняВJSON, "stead") <> 0, АдресИзJSON[ИмяУровняВJSON + "Type"], + РаботаСАдресамиКлиентСервер.ТипЗемельногоУчастка()); + ДанныеОТипе = ТипСогласноВариантуНаписания(ЗначениеТипа, ИмяУровня, ВариантНаписанияТипа); + + УровеньАдреса.Наименование = АдресИзJSON[ИмяУровняВJSON]; + УровеньАдреса.Тип = НРег(ДанныеОТипе.НаименованиеТипа); + УровеньАдреса.Идентификатор = Строка(АдресИзJSON[ИмяУровняВJSON + "Id"]); + + Если ЗначениеЗаполнено(УровеньАдреса.Идентификатор) И УровниАдресныхЭлементов.Найти(ИмяУровня) <> Неопределено Тогда + ИдентификаторАдресногоЭлемента = УровеньАдреса.Идентификатор; + КонецЕсли; + + Если ИмяУровня = "Регион" Тогда + Представление = НаименованиеРегиона; + Иначе + Представление = УправлениеКонтактнойИнформациейКлиентСервер.СоединитьНаименованиеИТипАдресногоОбъекта( + УровеньАдреса.Наименование, УровеньАдреса.Тип, ДанныеОТипе.ТипВКонец); + КонецЕсли; + + УстановитьКодУровня(УровеньАдреса, ИмяУровня, АдресИзJSON, НаименованиеРегиона); + + УровеньАдреса.Представление = Представление; + + Если ЗначениеЗаполнено(Представление) Тогда + НаборПолейДляПредставление.Добавить(Представление); + КонецЕсли; + КонецЦикла; + + Результат.ИдентификаторАдресногоЭлемента = ИдентификаторАдресногоЭлемента; + Результат.Представление = СтрСоединить(НаборПолейДляПредставление, ", "); + Результаты[Адрес.Ключ] = Результат; + КонецЦикла; + + Возврат Результаты; + +КонецФункции + +// Установка кода для уровня адреса +Процедура УстановитьКодУровня(УровеньАдреса, ИмяУровня, АдресИзJSON, НаименованиеРегиона) + Код = Неопределено; + + Если ИмяУровня = "Регион" Тогда + Код = АдресИзJSON.areaCode; + Если ПустаяСтрока(Код) Тогда + Код = КодРегиона(НаименованиеРегиона); + КонецЕсли; + ИначеЕсли ИмяУровня = "МуниципальныйРайон" Тогда + Код = КодМуниципальногоРайона(АдресИзJSON.munDistrictType, АдресИзJSON.oktmo, + ЭтоГородФедеральногоЗначения(НаименованиеРегиона)); + ИначеЕсли ИмяУровня = "Поселение" Тогда + Код = КодПоселения(АдресИзJSON.settlementType); + КонецЕсли; + + Если Код <> Неопределено Тогда + УровеньАдреса.Код = Код; + КонецЕсли; +КонецПроцедуры + +Процедура ОбработатьЗданияАдреса(АдресИзJSON, Результат, НаборПолейДляПредставление, ВариантНаписанияТипа) + + Если Не ЗначениеЗаполнено(АдресИзJSON.houseNumber) И АдресИзJSON.buildings.Количество() = 0 Тогда + Возврат; + КонецЕсли; + + УровеньАдреса = Результат.Здание; + ЧастиПредставления = Новый Массив(); + + Если ЗначениеЗаполнено(АдресИзJSON.houseNumber) Тогда + ДанныеОТипе = ТипСогласноВариантуНаписания( + АдресИзJSON.houseType, "Здание", ВариантНаписанияТипа); + + ОписаниеЗдания = НовыйНаименованиеАдресногоОбъектаИТипа(); + ОписаниеЗдания.Наименование = АдресИзJSON.houseNumber; + ОписаниеЗдания.Тип = НРег(ДанныеОТипе.НаименованиеТипа); + УровеньАдреса.ЭлементыЗдания.Добавить(ОписаниеЗдания); + + Часть = УправлениеКонтактнойИнформациейКлиентСервер.СоединитьНаименованиеИТипАдресногоОбъекта( + ОписаниеЗдания.Наименование, ОписаниеЗдания.Тип, ДанныеОТипе.ТипВКонец); + ЧастиПредставления.Добавить(Часть); + КонецЕсли; + + Для Каждого Строение Из АдресИзJSON.buildings Цикл + ДанныеОТипе = ТипСогласноВариантуНаписания( + Строение.type, "Здание", ВариантНаписанияТипа); + + ОписаниеЗдания = НовыйНаименованиеАдресногоОбъектаИТипа(); + ОписаниеЗдания.Наименование = Строение.number; + ОписаниеЗдания.Тип = НРег(ДанныеОТипе.НаименованиеТипа); + УровеньАдреса.ЭлементыЗдания.Добавить(ОписаниеЗдания); + + Часть = УправлениеКонтактнойИнформациейКлиентСервер.СоединитьНаименованиеИТипАдресногоОбъекта(ОписаниеЗдания.Наименование, + ОписаниеЗдания.Тип, + ДанныеОТипе.ТипВКонец); + ЧастиПредставления.Добавить(Часть); + КонецЦикла; + + УровеньАдреса.Представление = СтрСоединить(ЧастиПредставления, ", "); + УровеньАдреса.Идентификатор = Строка(АдресИзJSON.houseId); + + Если ЗначениеЗаполнено(УровеньАдреса.Представление) Тогда + НаборПолейДляПредставление.Добавить(УровеньАдреса.Представление); + КонецЕсли; + +КонецПроцедуры + +Процедура ОбработатьПомещенияАдреса(АдресИзJSON, Результат, НаборПолейДляПредставление, ВариантНаписанияТипа) + + Если АдресИзJSON.apartments.Количество() = 0 Тогда + Возврат; + КонецЕсли; + + УровеньАдреса = Результат.Помещения; + ЧастиПредставления = Новый Массив(); + + Для Каждого Помещение Из АдресИзJSON.apartments Цикл + ДанныеОТипе = ТипСогласноВариантуНаписания( + Помещение.type, "Помещения", ВариантНаписанияТипа); + + ОписаниеПомещения = НовыйНаименованиеАдресногоОбъектаИТипа(); + ОписаниеПомещения.Наименование = Помещение.number; + ОписаниеПомещения.Тип = НРег(ДанныеОТипе.НаименованиеТипа); + УровеньАдреса.ЭлементыПомещения.Добавить(ОписаниеПомещения); + + Часть = УправлениеКонтактнойИнформациейКлиентСервер.СоединитьНаименованиеИТипАдресногоОбъекта( + ОписаниеПомещения.Наименование, ОписаниеПомещения.Тип, ДанныеОТипе.ТипВКонец); + ЧастиПредставления.Добавить(Часть); + КонецЦикла; + + УровеньАдреса.Идентификатор = Строка(АдресИзJSON.apartmentId); + УровеньАдреса.Представление = СтрСоединить(ЧастиПредставления, ", "); + + Если ЗначениеЗаполнено(УровеньАдреса.Представление) Тогда + НаборПолейДляПредставление.Добавить(УровеньАдреса.Представление); + КонецЕсли; + +КонецПроцедуры + + // Параметры: // СписокВыбора - СписокЗначений // @@ -1597,13 +2233,12 @@ УровниАдреса.Добавить("Помещения"); УровниАдреса.Добавить("Территория"); УровниАдреса.Добавить("НаселенныйПункт"); - УровниАдреса.Добавить("Город"); - УровниАдреса.Добавить("Район"); Если РаботаСАдресамиКлиентСервер.ЭтоМуниципальныйАдрес(ТипАдреса) Тогда УровниАдреса.Добавить("Поселение"); УровниАдреса.Добавить("МуниципальныйРайон"); Иначе + УровниАдреса.Добавить("Город"); УровниАдреса.Добавить("Район"); КонецЕсли; @@ -1620,9 +2255,9 @@ УровниАдреса.Добавить("Поселение"); Иначе УровниАдреса.Добавить("Район"); + УровниАдреса.Добавить("Город"); КонецЕсли; - УровниАдреса.Добавить("Город"); УровниАдреса.Добавить("НаселенныйПункт"); УровниАдреса.Добавить("Территория"); УровниАдреса.Добавить("Улица"); @@ -1679,7 +2314,7 @@ КонецФункции -Функция ПорядокУровнейПоУмолчанию(ТолькоНаселенныйПункт = Ложь) +Функция ПорядокУровнейАдресныхЭлементовПоУмолчанию() УровниАдреса = Новый Массив; УровниАдреса.Добавить("Регион"); @@ -1689,9 +2324,7 @@ УровниАдреса.Добавить("Поселение"); УровниАдреса.Добавить("НаселенныйПункт"); УровниАдреса.Добавить("Территория"); - Если Не ТолькоНаселенныйПункт Тогда - УровниАдреса.Добавить("Улица"); - КонецЕсли; + УровниАдреса.Добавить("Улица"); Возврат УровниАдреса; @@ -1894,7 +2527,7 @@ ИначеЕсли ИмяПоля = "AREACODE" Тогда Если ПустаяСтрока(НациональныйАдрес.СубъектРФ) Тогда - НациональныйАдрес.СубъектРФ = РегионКода(ЭлементСписка.Значение); + НациональныйАдрес.СубъектРФ = РегионПоКода(ЭлементСписка.Значение); КонецЕсли; ИначеЕсли ИмяПоля = "AREA" Тогда @@ -2283,7 +2916,7 @@ Результат.areaCode = ЭлементСписка.Значение; Если ПустаяСтрока(Результат.area) Тогда НаименованиеИТип = УправлениеКонтактнойИнформациейКлиентСервер.НаименованиеСокращение( - РегионКода(ЭлементСписка.Значение)); + РегионПоКода(ЭлементСписка.Значение)); Результат.area = НаименованиеИТип.Наименование; Результат.areaType = СокрЛП(НаименованиеИТип.Сокращение); КонецЕсли; @@ -2557,7 +3190,7 @@ // * Представление - Строка - наименование и сокращение региона. // * Загружено - Булево - Истина, если классификатор по данному региону сейчас загружен. // * ДатаВерсии - Дата - UTC версия загруженных данных. -// Неопределено - если нет подсистемы адресного классификатора. +// Неопределено - если подсистема адресного классификатора отсутствует. // Функция ВсеРегионы() @@ -2569,6 +3202,62 @@ КонецФункции +// Возвращает наименование региона по его коду. +// +// Параметры: +// Код - Строка +// - Число - код региона. +// +// Возвращаемое значение: +// Строка - полное наименование региона с сокращением. +// Неопределено - если подсистема адресного классификатора отсутствует. +// +Функция РегионПоКода(Знач Код) + + Если ОбщегоНазначения.ПодсистемаСуществует("СтандартныеПодсистемы.АдресныйКлассификатор") Тогда + МодульАдресныйКлассификатор = ОбщегоНазначения.ОбщийМодуль("АдресныйКлассификатор"); + Возврат МодульАдресныйКлассификатор.НаименованиеРегионаПоКоду(Код); + КонецЕсли; + + Возврат Неопределено; + +КонецФункции + +// Возвращает код региона по его полному наименованию. +// +// Параметры: +// НаименованиеРегиона - Строка - полное наименование региона с сокращением. +// +// Возвращаемое значение: +// Строка - код региона из двух цифр. Пустая строка, если наименование определить не удалось. +// Неопределено - если нет подсистемы Адресный классификатор. +// +Функция КодРегиона(Знач ПолноеНаименование) Экспорт + + Если ОбщегоНазначения.ПодсистемаСуществует("СтандартныеПодсистемы.АдресныйКлассификатор") Тогда + МодульАдресныйКлассификатор = ОбщегоНазначения.ОбщийМодуль("АдресныйКлассификатор"); + Код = МодульАдресныйКлассификатор.КодРегионаПоНаименованию(ПолноеНаименование); + Возврат Формат(Код, "ЧЦ=2; ЧН=; ЧВН="); + КонецЕсли; + + Возврат Неопределено; + +КонецФункции + +Функция ОфициальноеНаименованиеРегиона(Знач Наименование) + + Если ОбщегоНазначения.ПодсистемаСуществует("СтандартныеПодсистемы.АдресныйКлассификатор") Тогда + МодульАдресныйКлассификаторПовтИсп = ОбщегоНазначения.ОбщийМодуль("АдресныйКлассификаторПовтИсп"); + ДанныеОРегионе = МодульАдресныйКлассификаторПовтИсп.ДанныеОРегионе(Наименование); + Если ДанныеОРегионе <> Неопределено Тогда + Возврат ДанныеОРегионе.ОфициальноеНаименование; + КонецЕсли; + КонецЕсли; + + Возврат ""; + +КонецФункции + Функция СоздатьНомерДопАдрЭлемента(АдресРФ) ДопАдрЭл = СоздатьДопАдрЭлемента(АдресРФ); ДопАдрЭл.Номер = ФабрикаXDTO.Создать(ДопАдрЭл.Тип().Свойства.Получить("Номер").Тип); @@ -2582,26 +3271,6 @@ Возврат ДопАдрЭлемента; КонецФункции -// Возвращает наименование региона по его коду. -// -// Параметры: -// Код - Строка -// - Число - код региона. -// -// Возвращаемое значение: -// Строка - полное наименование региона с сокращением. -// Неопределено - если нет ни одной подсистемы адресного классификатора. -// -Функция РегионКода(Знач Код) - - Если ОбщегоНазначения.ПодсистемаСуществует("СтандартныеПодсистемы.АдресныйКлассификатор") Тогда - МодульАдресныйКлассификатор = ОбщегоНазначения.ОбщийМодуль("АдресныйКлассификатор"); - Возврат МодульАдресныйКлассификатор.НаименованиеРегионаПоКоду(Код); - КонецЕсли; - - Возврат Неопределено; - -КонецФункции Функция АдресСодержитУлицы(ИдентификаторНаселенногоПункта, ТипАдреса) Экспорт @@ -2678,7 +3347,7 @@ Для каждого СтрокаАдреса Из ТаблицаАдресов Цикл - АдресИзJSON = СтрокаАдреса.АдресJSON; + АдресИзJSON = СтрокаАдреса.АдресJSON; // см. РаботаСАдресамиКлиентСервер.ОписаниеНовойКонтактнойИнформации АдресПоПолям = Новый Структура(Новый ФиксированнаяСтруктура(ПодготовленныеПоляАдреса)); // см. РаботаСАдресамиКлиентСервер.ПоляАдреса @@ -2691,9 +3360,7 @@ НазваниеОсновнойСтраны = ОбщегоНазначения.ЗначениеРеквизитаОбъекта(РаботаСАдресамиКлиентСервер.ОсновнаяСтрана(), "Наименование"); ЭтоНациональныйАдрес = ?(СтрСравнить(АдресИзJSON.Country, НазваниеОсновнойСтраны) = 0, Истина, Ложь); - Если ЭтоНациональныйАдрес Тогда - АдресПоПолям.КодРегиона = КодРегиона(АдресИзJSON.areaValue, АдресИзJSON.area, АдресИзJSON.areaType); - КонецЕсли; + АдресПоПолям.КодРегиона = ?(ЭтоНациональныйАдрес, КодРегиона(СокрЛП(АдресИзJSON.area)), ""); ИдентификаторАдресногоОбъекта = ""; МаксимальныйУровеньИдентификатора = 0; @@ -2731,13 +3398,16 @@ КонецЦикла; // Коды мун. уровней + ИмяРегиона = УправлениеКонтактнойИнформациейКлиентСервер.СоединитьНаименованиеИТипАдресногоОбъекта( + АдресИзJSON.area, АдресИзJSON.areaType, Истина); АдресПоПолям.КодМуниципальногоРайона = КодМуниципальногоРайона(АдресИзJSON.munDistrictType, АдресИзJSON.oktmo, - ЭтоГородФедеральногоЗначения(СокрЛП(АдресИзJSON.area + " " + АдресИзJSON.areaType))); + ЭтоГородФедеральногоЗначения(ИмяРегиона, АдресИзJSON.areaValue)); АдресПоПолям.КодПоселения = КодПоселения(АдресИзJSON.settlementType); Если Параметры.КодыАдреса Тогда АдресПоПолям.ИдентификаторАдресногоОбъекта = ИдентификаторАдресногоОбъекта; АдресПоПолям.ИдентификаторДома = ?(ЗначениеЗаполнено(АдресИзJSON.houseId), АдресИзJSON.houseId, ""); + АдресПоПолям.ИдентификаторПомещения = ?(ЗначениеЗаполнено(АдресИзJSON.apartmentId), АдресИзJSON.apartmentId, ""); КонецЕсли; // Установка полных наименований типов @@ -2768,8 +3438,11 @@ АдресПоПолям.Корпуса.Добавить(Новый Структура("ТипКорпуса, Номер", Корпус.Type, Корпус.Number)); КонецЦикла; - Для каждого Корпус Из АдресИзJSON.Apartments Цикл - АдресПоПолям.Помещения.Добавить(Новый Структура("ТипПомещения, Номер", Корпус.Type, Корпус.Number)); + Для каждого Помещение Из АдресИзJSON.Apartments Цикл + ПоляПомещения = РаботаСАдресамиКлиентСервер.ПоляПомещения(); + ПоляПомещения.ТипПомещения = Помещение.Type; + ПоляПомещения.Номер = Помещение.Number; + АдресПоПолям.Помещения.Добавить(ПоляПомещения); КонецЦикла; Если ЭтоНациональныйАдрес Тогда @@ -2783,6 +3456,9 @@ Если Параметры.КодыАдреса И ДополнительныеКоды.КодыАдреса.Свойство("ИдентификаторДома") Тогда АдресПоПолям.ИдентификаторДома = ДополнительныеКоды.КодыАдреса.ИдентификаторДома; КонецЕсли; + Если Параметры.КодыАдреса И ДополнительныеКоды.КодыАдреса.Свойство("ИдентификаторПомещения") Тогда + АдресПоПолям.ИдентификаторПомещения = ДополнительныеКоды.КодыАдреса.ИдентификаторПомещения; + КонецЕсли; КонецЕсли; Иначе ЗаполнитьКодыАдреса(АдресПоПолям, АдресИзJSON); @@ -2822,8 +3498,8 @@ УправлениеКонтактнойИнформациейСлужебный.ЗаменитьВСтруктуреНеопределеноНаПустуюСтроку(АдресПоПолям); СтрокаАдреса.Адрес = АдресПоПолям; - АдресПоПолям.УровниАдминистративноТерриториальногоАдреса = ПорядокУровнейАдреса(АдресПоПолям, АдресИзJSON, РаботаСАдресамиКлиентСервер.АдминистративноТерриториальныйАдрес()); - АдресПоПолям.УровниМуниципальногоАдреса = ПорядокУровнейАдреса(АдресПоПолям, АдресИзJSON, РаботаСАдресамиКлиентСервер.МуниципальныйАдрес()); + АдресПоПолям.УровниАдминистративноТерриториальногоАдреса = ПорядокУровнейАдреса(АдресИзJSON, РаботаСАдресамиКлиентСервер.АдминистративноТерриториальныйАдрес()); + АдресПоПолям.УровниМуниципальногоАдреса = ПорядокУровнейАдреса(АдресИзJSON, РаботаСАдресамиКлиентСервер.МуниципальныйАдрес()); КонецЦикла; @@ -2837,60 +3513,76 @@ КонецФункции -Функция ПорядокУровнейАдреса(АдресПоПолям, АдресИзJSON, ТипАдреса) +Функция ПорядокУровнейАдреса(АдресИзJSON, ТипАдреса) Результат = Новый Массив(); + ИмяУровней = ИменаУровнейАдресаJSON(АдресИзJSON, ТипАдреса); + СоответствиеУровней = СоответствиеИменУровней(); + + Для каждого ИмяУровня Из ИмяУровней Цикл + Если ЗначениеЗаполнено(АдресИзJSON[ИмяУровня]) Тогда + ИмяУровняПредставление = СоответствиеУровней[ИмяУровня]; + Если ЗначениеЗаполнено(ИмяУровняПредставление) Тогда + Результат.Добавить(ИмяУровняПредставление); + КонецЕсли; + + КонецЕсли; + КонецЦикла; + + Если (ЗначениеЗаполнено(АдресИзJSON.houseNumber) + Или АдресИзJSON.buildings.Количество() > 0) + И Результат.Найти("Здание") = Неопределено Тогда + Результат.Добавить("Здание"); + КонецЕсли; + + Если АдресИзJSON.apartments.Количество() > 0 И Результат.Найти("Помещение") = Неопределено Тогда + Результат.Добавить("Помещение"); + КонецЕсли; + + Если ЗначениеЗаполнено(АдресИзJSON.stead) И Результат.Найти("ЗемельныйУчасток") = Неопределено Тогда + Результат.Добавить("ЗемельныйУчасток"); + КонецЕсли; + + Возврат Результат; + +КонецФункции + +Функция ИменаУровнейАдресаJSON(АдресИзJSON, ТипАдреса) + ИмяПоляУровней = ?(РаботаСАдресамиКлиентСервер.ЭтоАдминистративноТерриториальныйАдрес(ТипАдреса), "admLevels", "munLevels"); ИмяУровней = Новый Массив(); Если АдресИзJSON[ИмяПоляУровней].Количество() > 0 Тогда - СоответствиеУровней = СоответствиеИменУровней(); - Для Каждого ИмяУровня Из АдресИзJSON[ИмяПоляУровней] Цикл Если АдресИзJSON.Свойство(ИмяУровня) И ЗначениеЗаполнено(АдресИзJSON[ИмяУровня]) Тогда - ИмяУровняПредставление = СоответствиеУровней[ИмяУровня]; - Если ЗначениеЗаполнено(ИмяУровняПредставление) Тогда - ИмяУровней.Добавить(ИмяУровняПредставление); - КонецЕсли; + ИмяУровней.Добавить(ИмяУровня); КонецЕсли; КонецЦикла; Иначе - - ПараметрыПредставленияАдреса = УправлениеКонтактнойИнформацией.НовыеПараметрыПредставленияАдреса(); - ПараметрыПредставленияАдреса.ВключатьПочтовыйИндекс = Ложь; - ПараметрыПредставленияАдреса.ВключатьЗданияИПомещения = Ложь; - - ИмяУровней = ОпределитьПорядокУровнейДляПредставления(ПараметрыПредставленияАдреса, ТипАдреса); - - КонецЕсли; - - Для каждого ИмяУровня Из ИмяУровней Цикл - Если ЗначениеЗаполнено(АдресПоПолям[ИмяУровня]) Тогда - Результат.Добавить(ИмяУровня); - КонецЕсли; - КонецЦикла; - - Если ЗначениеЗаполнено(АдресПоПолям.Здание.Номер) Тогда - Результат.Добавить("Здание"); - КонецЕсли; - - Если ЗначениеЗаполнено(АдресПоПолям.Корпуса) Тогда - Результат.Добавить("Корпуса"); - КонецЕсли; - - Если ЗначениеЗаполнено(АдресПоПолям.Помещения) Тогда - Результат.Добавить("Помещения"); - КонецЕсли; + ИмяУровней.Добавить("area"); - Если ЗначениеЗаполнено(АдресПоПолям.НомерЗемельногоУчастка) Тогда - Результат.Добавить("ЗемельныйУчасток"); + Если РаботаСАдресамиКлиентСервер.ЭтоМуниципальныйАдрес(ТипАдреса) Тогда + ИмяУровней.Добавить("munDistrict"); + Если ЗначениеЗаполнено(АдресИзJSON.city) И ПустаяСтрока(АдресИзJSON.settlement) Тогда + ИмяУровней.Добавить("city"); + КонецЕсли; + ИмяУровней.Добавить("settlement"); + Иначе + ИмяУровней.Добавить("district"); + ИмяУровней.Добавить("city"); + КонецЕсли; + + ИмяУровней.Добавить("locality"); + ИмяУровней.Добавить("territory"); + ИмяУровней.Добавить("street"); КонецЕсли; - Возврат Результат; + Возврат ИмяУровней; + КонецФункции Процедура УстановкаТипаОбластьКемеровскойОбласти(КонтактнаяИнформацияПоПолям) Экспорт @@ -2959,11 +3651,40 @@ СоответствиеУровней.Вставить("locality", "НаселенныйПункт"); СоответствиеУровней.Вставить("territory", "Территория"); СоответствиеУровней.Вставить("street", "Улица"); + СоответствиеУровней.Вставить("stead", "ЗемельныйУчасток"); + СоответствиеУровней.Вставить("buildings", "Здание"); + СоответствиеУровней.Вставить("apartments", "Помещение"); Возврат СоответствиеУровней; КонецФункции +// Возвращаемое значение: +// Соответствие из Структура: +// * Ключ - Строка - представление уровня в JSON +// * Значение - Строка - пользовательское представление уровня +// +Функция СоответствиеНаименованиеУровнейПолямJSON() + + СоответствиеУровней = Новый Соответствие; + СоответствиеУровней.Вставить("Регион", "area"); + СоответствиеУровней.Вставить("Район", "district"); + СоответствиеУровней.Вставить("МуниципальныйРайон", "munDistrict"); + СоответствиеУровней.Вставить("Город", "city"); + СоответствиеУровней.Вставить("Поселение", "settlement"); + СоответствиеУровней.Вставить("ВнутригородскойРайон", "cityDistrict"); // устаревшие свойство + СоответствиеУровней.Вставить("НаселенныйПункт", "locality"); + СоответствиеУровней.Вставить("Территория", "territory"); + СоответствиеУровней.Вставить("Улица", "street"); + СоответствиеУровней.Вставить("ЗемельныйУчасток", "stead"); + СоответствиеУровней.Вставить("Здание", "buildings"); + СоответствиеУровней.Вставить("Помещение", "apartments"); + + Возврат СоответствиеУровней; + +КонецФункции + + Функция ИнициализироватьПараметрыСведенийОбАдресе(Знач ДополнительныеПараметры) Параметры = ПараметрыСведенийОбАдресе(); @@ -3000,8 +3721,7 @@ Если ОбщегоНазначения.ПодсистемаСуществует("СтандартныеПодсистемы.АдресныйКлассификатор") Тогда МодульАдресныйКлассификаторСлужебный = ОбщегоНазначения.ОбщийМодуль("АдресныйКлассификаторСлужебный"); - КодМуниципальногоРайона = МодульАдресныйКлассификаторСлужебный.КодМуниципальногоРайона(ТипМуниципальногоРайона, - ОКТМО, ЭтоГородФедеральногоЗначения); + КодМуниципальногоРайона = МодульАдресныйКлассификаторСлужебный.КодМуниципальногоРайона(ТипМуниципальногоРайона, ОКТМО, ЭтоГородФедеральногоЗначения); КонецЕсли; Если ЗначениеЗаполнено(КодМуниципальногоРайона) Тогда @@ -3155,6 +3875,7 @@ СоответствиеПолей.Вставить("ТерриторияСокращение", "territoryType"); СоответствиеПолей.Вставить("ИдентификаторАдресногоОбъекта", "id"); СоответствиеПолей.Вставить("ИдентификаторДома", "houseId"); + СоответствиеПолей.Вставить("ИдентификаторПомещения", "ApartmentId"); СоответствиеПолей.Вставить("Дом", "houseNumber"); СоответствиеПолей.Вставить("ТипДома", "houseType"); СоответствиеПолей.Вставить("НомерЗемельногоУчастка", "stead"); @@ -3225,37 +3946,6 @@ КонецФункции -// Возвращает код региона по его полному наименованию. -// -// Параметры: -// ПолноеНаименование - Строка - полное официальное наименование региона. -// НаименованиеАдресногоЭлемента - Строка - наименование адресного элемента региона, например "Тверская". -// ТипАдресногоЭлемента - Строка - вид адресного элемента региона. -// -// Возвращаемое значение: -// Строка - код региона из двух цифр; пустая строка, если код региона по наименованию определить не удалось. -// Неопределено - если нет подсистемы адресного классификатора. -// -Функция КодРегиона(Знач ПолноеНаименование, НаименованиеАдресногоЭлемента = "", ТипАдресногоЭлемента = "") Экспорт - - Если Не ОбщегоНазначения.ПодсистемаСуществует("СтандартныеПодсистемы.АдресныйКлассификатор") Тогда - Возврат Неопределено; - КонецЕсли; - - МодульАдресныйКлассификатор = ОбщегоНазначения.ОбщийМодуль("АдресныйКлассификатор"); - - Код = МодульАдресныйКлассификатор.КодРегионаПоНаименованию(ПолноеНаименование); - - Если Не ЗначениеЗаполнено(Код) И ЗначениеЗаполнено(НаименованиеАдресногоЭлемента) Тогда - Код = МодульАдресныйКлассификатор.КодРегионаПоНаименованию(НаименованиеАдресногоЭлемента); - Если Не ЗначениеЗаполнено(Код) И ЗначениеЗаполнено(ТипАдресногоЭлемента) Тогда - Код = МодульАдресныйКлассификатор.КодРегионаПоНаименованию(НаименованиеАдресногоЭлемента + " " + ТипАдресногоЭлемента); - КонецЕсли; - КонецЕсли; - - Возврат Формат(Код, "ЧЦ=2; ЧН=; ЧВН="); - -КонецФункции // Заполняет коды по структуре адреса. // @@ -3447,31 +4137,16 @@ КонецПроцедуры -Функция ЭтоГородФедеральногоЗначения(Город) Экспорт +Функция ЭтоГородФедеральногоЗначения(Город, ОфициальноеНаименование = "") Экспорт - НазванияГородовФедеральногоЗначения = НазванияГородовФедеральногоЗначения(); - Возврат НазванияГородовФедеральногоЗначения.Получить(ВРег(Город)) = Истина; + Если ОбщегоНазначения.ПодсистемаСуществует("СтандартныеПодсистемы.АдресныйКлассификатор") Тогда + + МодульАдресныйКлассификаторСлужебный = ОбщегоНазначения.ОбщийМодуль("АдресныйКлассификаторСлужебный"); + Возврат МодульАдресныйКлассификаторСлужебный.ЭтоГородФедеральногоЗначения(Город, ОфициальноеНаименование); + + КонецЕсли; -КонецФункции - -// Возвращает массив наименований регионов - городов федерального значения. -Функция НазванияГородовФедеральногоЗначения() - - СписокГородов = Новый Массив; - СписокГородов.Добавить("МОСКВА"); - СписокГородов.Добавить("САНКТ-ПЕТЕРБУРГ"); - СписокГородов.Добавить("СЕВАСТОПОЛЬ"); - СписокГородов.Добавить("БАЙКОНУР"); - - Результат = Новый Соответствие; - Для Каждого Город Из СписокГородов Цикл - Результат.Вставить(УправлениеКонтактнойИнформациейКлиентСервер.СоединитьНаименованиеИТипАдресногоОбъекта( - Город, "Г", ИСТИНА), Истина); - Результат.Вставить(УправлениеКонтактнойИнформациейКлиентСервер.СоединитьНаименованиеИТипАдресногоОбъекта( - "ГОРОД", Город, ИСТИНА), Истина); - КонецЦикла; - - Возврат Результат; + Возврат Ложь; КонецФункции @@ -5391,17 +6066,130 @@ КонецФункции -// См. СтандартныеПодсистемыСервер.ПриОпределенииМетодовРазрешенныхДляВызоваКакПроизвольныйКод -Процедура ПриОпределенииМетодовРазрешенныхДляВызоваКакПроизвольныйКод(Методы) Экспорт +Функция НовыйМуниципальныйАдрес() - Методы.Вставить("ВыявитьУстаревшиеАдреса"); - Методы.Вставить("ПроверитьАдресаНаСоответствиеАдресномуКлассификатору"); - Методы.Вставить("ПроверитьАдресаНаТипЗданияЛитер"); + Результат = НовыйАдресОбщаяЧасть(); - Методы.Вставить("ИсправитьУстаревшиеАдресаВФоне", Истина); - Методы.Вставить("ИсправитьНекорректныеАдресаВФоне", Истина); - Методы.Вставить("ИсправитьТипЗданияЛитерВАдресахВФоне", Истина); + Результат.Вставить("МуниципальныйРайон", НовыйАдресныйЭлементСПолемКод()); + Результат.Вставить("Поселение", НовыйАдресныйЭлементСПолемКод()); -КонецПроцедуры + Возврат Результат; + +КонецФункции + +Функция НовыйАдминистративноТерриториальныйАдрес() + + Результат = НовыйАдресОбщаяЧасть(); + + Результат.Вставить("Район", НовыйАдресныйЭлемент()); + Результат.Вставить("Город", НовыйАдресныйЭлемент()); + + Возврат Результат; + +КонецФункции + +Функция НовыйАдресОбщаяЧасть() + + Результат = Новый Структура; + Результат.Вставить("Представление", ""); + Результат.Вставить("Индекс", ""); + Результат.Вставить("Комментарий", ""); + Результат.Вставить("ИдентификаторАдресногоЭлемента", ""); + + Результат.Вставить("Регион", НовыйАдресныйЭлементСПолемКод()); + + Результат.Вставить("НаселенныйПункт", НовыйАдресныйЭлемент()); + Результат.Вставить("Территория", НовыйАдресныйЭлемент()); + Результат.Вставить("Улица", НовыйАдресныйЭлемент()); + Результат.Вставить("Здание", НовыйЗдания()); + Результат.Вставить("Помещения", НовыйПомещения()); + Результат.Вставить("ЗемельныйУчасток", НовыйЗемельныйУчасток()); + + Возврат Результат; + +КонецФункции + +Функция НовыйАдресныйЭлемент() + + Результат = Новый Структура; + Результат.Вставить("Представление", ""); + Результат.Вставить("Наименование", ""); + Результат.Вставить("Тип", ""); + Результат.Вставить("Идентификатор", ""); + + Возврат Результат; + +КонецФункции + +Функция НовыйАдресныйЭлементСПолемКод() + + Результат = НовыйАдресныйЭлемент(); + Результат.Вставить("Код", ""); + + Возврат Результат; + +КонецФункции + +// Возвращаемое значение: +// Структура: +// * Представление - Строка - полное наименование, которое включают все помещения +// * Идентификатор - Строка - уникальный идентификатор +// * ЭлементыЗдания - Массив из см. НовыйНаименованиеИТип +// +Функция НовыйЗдания() + + Результат = Новый Структура; + Результат.Вставить("Представление", ""); + Результат.Вставить("Идентификатор", ""); + Результат.Вставить("ЭлементыЗдания", Новый Массив); + + Возврат Результат; + +КонецФункции + +// Возвращаемое значение: +// Структура: +// * Наименование - Строка +// * Тип - Строка +// +Функция НовыйНаименованиеАдресногоОбъектаИТипа() + + Результат = Новый Структура; + Результат.Вставить("Наименование", ""); + Результат.Вставить("Тип", ""); + + Возврат Результат; + +КонецФункции + +// Возвращаемое значение: +// Структура: +// * Представление - Строка - полное наименование, которое включают все помещения +// * Идентификатор - Строка - уникальный идентификатор +// * ЭлементыПомещения - Массив из см. НовыйНаименованиеИТип +// +Функция НовыйПомещения() + + Помещения = Новый Структура; + Помещения.Вставить("Представление", ""); + Помещения.Вставить("Идентификатор", ""); + Помещения.Вставить("ЭлементыПомещения", Новый Массив); + + Возврат Помещения; + +КонецФункции + +// Земельный участок. +Функция НовыйЗемельныйУчасток() + + Результат = Новый Структура; + Результат.Вставить("Представление", ""); + Результат.Вставить("Наименование", ""); + Результат.Вставить("Тип", ""); + Результат.Вставить("Идентификатор", ""); + + Возврат Результат; + +КонецФункции #КонецОбласти \ No newline at end of file diff --git a/SSL/src/CommonModules/РаботаСАдресамиКлиент/Module.bsl b/SSL/src/CommonModules/РаботаСАдресамиКлиент/Module.bsl index ec3563403..540fa063b 100644 --- a/SSL/src/CommonModules/РаботаСАдресамиКлиент/Module.bsl +++ b/SSL/src/CommonModules/РаботаСАдресамиКлиент/Module.bsl @@ -1,5 +1,5 @@ /////////////////////////////////////////////////////////////////////////////////////////////////////// -// Copyright (c) 2024, ООО 1С-Софт +// Copyright (c) 2025, ООО 1С-Софт // Все права защищены. Эта программа и сопроводительные материалы предоставляются // в соответствии с условиями лицензии Attribution 4.0 International (CC BY 4.0) // Текст лицензии доступен по ссылке: diff --git a/SSL/src/CommonModules/РаботаСАдресамиКлиентСервер/Module.bsl b/SSL/src/CommonModules/РаботаСАдресамиКлиентСервер/Module.bsl index 7e757eea4..aa810b32a 100644 --- a/SSL/src/CommonModules/РаботаСАдресамиКлиентСервер/Module.bsl +++ b/SSL/src/CommonModules/РаботаСАдресамиКлиентСервер/Module.bsl @@ -1,5 +1,5 @@ /////////////////////////////////////////////////////////////////////////////////////////////////////// -// Copyright (c) 2024, ООО 1С-Софт +// Copyright (c) 2025, ООО 1С-Софт // Все права защищены. Эта программа и сопроводительные материалы предоставляются // в соответствии с условиями лицензии Attribution 4.0 International (CC BY 4.0) // Текст лицензии доступен по ссылке: @@ -79,9 +79,7 @@ // * Корпуса - Массив из Структура - содержит список корпусов и строений адреса: // * ТипКорпуса - Строка - наименование строения корпуса. Например, "Строение". // * Номер - Строка - номер строения или корпуса. Например, "1". -// * Помещения - Массив из Структура: -// * ТипПомещения - Строка - наименование помещения. Например, "Офис" -// * Номер - Строка - номер помещения. Например, "1". +// * Помещения - Массив из см. ПоляПомещения // * НомерЗемельногоУчастка - Неопределено // - Строка - текстовое представление номера участка. Например, "10". // * ИдентификаторАдресногоОбъекта - УникальныйИдентификатор - идентификационный код последнего адресного объекта @@ -91,6 +89,7 @@ // Например, "bc26bdef-12be-40f8-959c-2149de1911b9". // * ИдентификаторЗемельногоУчастка - Неопределено // - УникальныйИдентификатор - идентификационный код земельного участка. +// * ИдентификаторПомещения - УникальныйИдентификатор - идентификационный код помещения (квартиры, офиса) дома. // * Идентификаторы - Структура - идентификаторы адресных объектов адреса: // ** РегионИдентификатор - УникальныйИдентификатор // - Неопределено - идентификатор региона. @@ -197,6 +196,7 @@ Результат.Вставить("ИдентификаторДома" , Неопределено); Результат.Вставить("НомерЗемельногоУчастка" , Неопределено); Результат.Вставить("ИдентификаторЗемельногоУчастка" , Неопределено); + Результат.Вставить("ИдентификаторПомещения" , Неопределено); Результат.Вставить("УровниМуниципальногоАдреса" , Новый Массив()); Результат.Вставить("УровниАдминистративноТерриториальногоАдреса", Новый Массив()); @@ -234,6 +234,80 @@ КонецФункции +// Возвращает структуру полей помещений адреса для программного формирования адреса. +// +// Возвращаемое значение: +// Структура: +// * ТипПомещения - Строка - наименование помещения. Например, "Офис" +// * Номер - Строка - номер помещения. Например, "1". +// +Функция ПоляПомещения() Экспорт + + Результат = Новый Структура; + + Результат.Вставить("ТипПомещения", ""); + Результат.Вставить("Номер", ""); + + Возврат Результат; + +КонецФункции + +// Проверяет, соответствует ли переданный тип адреса муниципальному делению. +// Функция сравнивает входную строку с каноническим представлением типа адреса, +// возвращаемым функцией МуниципальныйАдрес(). +// +// Параметры: +// ТипАдреса - Строка - тип адресного деления для проверки. +// +// Возвращаемое значение: +// Булево - если Истина, то тип адреса является муниципальным. +// +Функция ЭтоМуниципальныйАдрес(ТипАдреса) Экспорт + + Возврат СтрСравнить(ТипАдреса, МуниципальныйАдрес()) = 0; + +КонецФункции + +// Проверяет, соответствует ли переданный тип адреса административно‑территориальному делению. +// Функция сравнивает входную строку с каноническим представлением типа адреса, +// возвращаемым функцией АдминистративноТерриториальныйАдрес(). +// +// Параметры: +// ТипАдреса - Строка - тип адресного деления для проверки. +// +// Возвращаемое значение: +// Булево - если Истина, то тип адреса является административно‑территориальным. +// +Функция ЭтоАдминистративноТерриториальныйАдрес(ТипАдреса) Экспорт + + Возврат СтрСравнить(ТипАдреса, АдминистративноТерриториальныйАдрес()) = 0; + +КонецФункции + +// Возвращает каноническую строку, обозначающую административно‑территориальный тип адреса. +// Используется для унификации сравнений и идентификации типа адреса в других функциях, +// например, в функции РаботаСАдресами.ПредставлениеАдресногоЭлементаПоУровню - +// для корректного получения представления адресного элемента с учетом типа деления. +// +// Возвращаемое значение: +// Строка - каноническое представление типа адреса: "Административно-территориальный". +// +Функция АдминистративноТерриториальныйАдрес() Экспорт + Возврат "Административно-территориальный"; +КонецФункции + +// Возвращает каноническую строку, обозначающую муниципальный тип адреса. +// Используется для унификации сравнений и идентификации типа адреса в других функциях, +// например, в функции РаботаСАдресами.ПредставлениеАдресногоЭлементаПоУровню - +// для корректного получения представления адресного элемента с учетом типа деления. +// +// Возвращаемое значение: +// Строка - каноническое представление типа адреса: "Муниципальный". +// +Функция МуниципальныйАдрес() Экспорт + Возврат "Муниципальный"; +КонецФункции + #Область УстаревшиеПроцедурыИФункции //////////////////////////////////////////////////////////////////////////////// @@ -389,27 +463,10 @@ КонецФункции -Функция ЭтоМуниципальныйАдрес(ТипАдреса) Экспорт - Возврат СтрСравнить(ТипАдреса, МуниципальныйАдрес()) = 0; -КонецФункции - -Функция ЭтоАдминистративноТерриториальныйАдрес(ТипАдреса) Экспорт - Возврат СтрСравнить(ТипАдреса, АдминистративноТерриториальныйАдрес()) = 0; -КонецФункции - Функция ЭтоОсновнаяСтрана(Страна) Экспорт Возврат СтрСравнить(ОсновнаяСтрана(), Страна) = 0; КонецФункции -Функция АдминистративноТерриториальныйАдрес() Экспорт - Возврат "Административно-территориальный"; -КонецФункции - - -Функция МуниципальныйАдрес() Экспорт - Возврат "Муниципальный"; -КонецФункции - #КонецОбласти #Область СлужебныеПроцедурыИФункции @@ -423,44 +480,62 @@ // // Возвращаемое значение: // Структура - поля контактной информации для типа Адрес добавленные к основным полям: -// * ID - Строка - идентификационный код последнего адресного объекта в иерархи адреса. -// * AddressType - Строка - установленный пользователем тип адреса(только для адресов РФ). +// * value - Строка - представление контактной информации. +// * comment - Строка - комментарий. +// * type - Строка - тип контактной информации. См. значение в Перечисление.ТипыКонтактнойИнформации.Адрес. +// * country - Строка - наименование страны, например "Уругвай". +// * countryCode - Строка -код страны. +// * ZIPcode- Строка - почтовый индекс. +// * addressType - Строка - тип адреса: в свободной форме или с разбивкой по полям. +// * id - Строка - идентификационный код последнего адресного объекта в иерархи адреса. +// * addressType - Строка - установленный пользователем тип адреса(только для адресов РФ). // Варианты: "Муниципальный", "Административно-территориальный". -// * AreaCode - Строка - код региона РФ. -// * AreaID - Строка - идентификатор региона. -// * District - Строка - представление района у адресов по административно-территориальному делению. -// * DistrictType - Строка - сокращение района у адресов по административно-территориальному делению. -// * DistrictID - Строка - идентификатор региона у адресов по административно-территориальному делению. -// * MunDistrict - Строка - представление муниципального района у адресов по муниципальному делению. -// * MunDistrictType - Строка - сокращение муниципального района у адресов по муниципальному делению. -// * MunDistrictID - Строка - идентификатор муниципального района у адресов по муниципальному делению. -// * CityID - Строка - идентификатор муниципального города у адресов по административно-территориальному делению. -// * Settlement - Строка - представление поселения у адресов по муниципальному делению. -// * SettlementType - Строка - сокращение поселения у адресов по муниципальному делению. -// * SettlementID - Строка - идентификатор поселения. -// * CityDistrict - Строка - представление внутригородского района. -// * CityDistrictType - Строка - сокращение внутригородского района. -// * CityDistrictID - Строка - идентификатор внутригородского района. -// * Territory - Строка - представление территории. -// * TerritoryType - Строка - сокращение территории. -// * TerritoryID - Строка - идентификатор территории. -// * Locality - Строка - представление населенного пункта. -// * LocalityType - Строка - сокращение населенного пункта. -// * LocalityID - Строка - идентификатор населенного пункта. -// * StreetID - Строка - идентификатор улицы. -// * HouseType - Строка - тип дома, владения. -// * HouseNumber - Строка - номер дома, владения. -// * HouseID - Строка - идентификатор дома. -// * Buildings - Массив - содержит структуры(поля структуры: type, number) с перечнем корпусов (строений) адреса. -// * Apartments - Массив - содержит структуры(поля структуры: type, number) с перечнем помещений адреса. -// * CodeKLADR - Строка - код КЛАДР. +// * area - Строка - наименование региона. +// * areaType - Строка - сокращение(тип) региона. +// * areaCode - Строка - код региона РФ. +// * areaID - Строка - идентификатор региона. +// * district - Строка - представление района у адресов по административно-территориальному делению. +// * districtType - Строка - сокращение района у адресов по административно-территориальному делению. +// * districtID - Строка - идентификатор региона у адресов по административно-территориальному делению. +// * munDistrict - Строка - представление муниципального района у адресов по муниципальному делению. +// * munDistrictType - Строка - сокращение муниципального района у адресов по муниципальному делению. +// * munDistrictID - Строка - идентификатор муниципального района у адресов по муниципальному делению. +// * city - Строка - наименование города. +// * cityType - Строка - сокращение (тип) города, например "г". +// * cityID - Строка - идентификатор муниципального города у адресов по административно-территориальному делению. +// * settlement - Строка - представление поселения у адресов по муниципальному делению. +// * settlementType - Строка - сокращение поселения у адресов по муниципальному делению. +// * settlementID - Строка - идентификатор поселения. +// * cityDistrict - Строка - представление внутригородского района. +// * cityDistrictType - Строка - сокращение внутригородского района. +// * cityDistrictID - Строка - идентификатор внутригородского района. +// * territory - Строка - представление территории. +// * territoryType - Строка - сокращение территории. +// * territoryID - Строка - идентификатор территории. +// * locality - Строка - представление населенного пункта. +// * localityType - Строка - сокращение населенного пункта. +// * localityID - Строка - идентификатор населенного пункта. +// * street - Строка - название улицы, проспекта, переулка и т.д.. Но также может содержать номер дома, квартиры или +// офиса. +// * streetType - Строка - сокращение (тип) улицы, например "ул". +// * streetID - Строка - идентификатор улицы. +// * houseType - Строка - тип дома, владения. +// * houseNumber - Строка - дополнительное поле, которое используется для уточнения или добавления информации. +// Например, номер дома, Название здания, номер подъезда или этаж +// * houseID - Строка - идентификатор дома. +// * apartmentId - идентификатор помещения. +// * buildings - Массив - содержит структуры(поля структуры: type, number) с перечнем корпусов (строений) адреса. +// * apartments - Массив - содержит структуры(поля структуры: type, number) с перечнем помещений адреса. +// * stead - Строка - земельный участок. +// * steadId - Строка - идентификатор земельного участка. +// * codeKLADR - Строка - код КЛАДР. // * oktmo - Строка - код ОКТМО. // * oktmoBudget - Строка - код ОКТМО бюджетополучателя. // * okato - Строка - код ОКАТО. -// * IFNSFLCode - Строка - код ИФНСФЛ. -// * IFNSULCode - Строка - код ИФНСЮЛ. -// * IFNSFLAreaCode - Строка - код участка ИФНСФЛ. -// * IFNSULAreaCode - Строка - код участка ИФНСЮЛ. +// * ifnsFLCode - Строка - код ИФНСФЛ. +// * ifnsULCode - Строка - код ИФНСЮЛ. +// * ifnsFLAreaCode - Строка - код участка ИФНСФЛ. +// * ifnsULAreaCode - Строка - код участка ИФНСЮЛ. // * admLevels - Массив - порядок административных полей в представлении адреса // * munLevels - Массив - порядок муниципальных полей в представлении адреса // @@ -501,6 +576,7 @@ Результат.Вставить("houseType", ""); Результат.Вставить("houseNumber", ""); Результат.Вставить("houseId", ""); + Результат.Вставить("apartmentId", ""); Результат.Вставить("buildings", Новый Массив); Результат.Вставить("apartments", Новый Массив); Результат.Вставить("codeKLADR", ""); @@ -535,6 +611,7 @@ Уровни.Вставить("LOCALITY", 6); Уровни.Вставить("TERRITORY", 7); Уровни.Вставить("STREET", 8); + Уровни.Вставить("HOUSE", 9); Возврат Уровни[ВРег(ИмяУровня)]; @@ -723,6 +800,10 @@ Возврат "Зем. участок"; КонецФункции +Функция ТипЗемельногоУчастка() Экспорт + Возврат "з/у"; +КонецФункции + Функция СоединитьНомерИТипЗдания(Знач Номер, Знач ТипЗданияИлиПомещения, СокращатьТипы = Истина) Экспорт Если ПустаяСтрока(ТипЗданияИлиПомещения) Тогда diff --git a/SSL/src/CommonModules/РаботаСАдресамиПовтИсп/Module.bsl b/SSL/src/CommonModules/РаботаСАдресамиПовтИсп/Module.bsl index e5f9fdafd..0571b1869 100644 --- a/SSL/src/CommonModules/РаботаСАдресамиПовтИсп/Module.bsl +++ b/SSL/src/CommonModules/РаботаСАдресамиПовтИсп/Module.bsl @@ -1,5 +1,5 @@ /////////////////////////////////////////////////////////////////////////////////////////////////////// -// Copyright (c) 2024, ООО 1С-Софт +// Copyright (c) 2025, ООО 1С-Софт // Все права защищены. Эта программа и сопроводительные материалы предоставляются // в соответствии с условиями лицензии Attribution 4.0 International (CC BY 4.0) // Текст лицензии доступен по ссылке: diff --git a/SSL/src/CommonModules/РаботаСАдресамиСлужебныйКлиент/Module.bsl b/SSL/src/CommonModules/РаботаСАдресамиСлужебныйКлиент/Module.bsl index 86b807313..411f2811d 100644 --- a/SSL/src/CommonModules/РаботаСАдресамиСлужебныйКлиент/Module.bsl +++ b/SSL/src/CommonModules/РаботаСАдресамиСлужебныйКлиент/Module.bsl @@ -1,5 +1,5 @@ /////////////////////////////////////////////////////////////////////////////////////////////////////// -// Copyright (c) 2024, ООО 1С-Софт +// Copyright (c) 2025, ООО 1С-Софт // Все права защищены. Эта программа и сопроводительные материалы предоставляются // в соответствии с условиями лицензии Attribution 4.0 International (CC BY 4.0) // Текст лицензии доступен по ссылке: diff --git a/SSL/src/CommonModules/РаботаСБанками/Module.bsl b/SSL/src/CommonModules/РаботаСБанками/Module.bsl index 68727e761..ac86400b0 100644 --- a/SSL/src/CommonModules/РаботаСБанками/Module.bsl +++ b/SSL/src/CommonModules/РаботаСБанками/Module.bsl @@ -1,5 +1,5 @@ /////////////////////////////////////////////////////////////////////////////////////////////////////// -// Copyright (c) 2024, ООО 1С-Софт +// Copyright (c) 2025, ООО 1С-Софт // Все права защищены. Эта программа и сопроводительные материалы предоставляются // в соответствии с условиями лицензии Attribution 4.0 International (CC BY 4.0) // Текст лицензии доступен по ссылке: diff --git a/SSL/src/CommonModules/РаботаСБанкамиВызовСервера/Module.bsl b/SSL/src/CommonModules/РаботаСБанкамиВызовСервера/Module.bsl index 453fb3f72..50aa5bb6b 100644 --- a/SSL/src/CommonModules/РаботаСБанкамиВызовСервера/Module.bsl +++ b/SSL/src/CommonModules/РаботаСБанкамиВызовСервера/Module.bsl @@ -1,5 +1,5 @@ /////////////////////////////////////////////////////////////////////////////////////////////////////// -// Copyright (c) 2024, ООО 1С-Софт +// Copyright (c) 2025, ООО 1С-Софт // Все права защищены. Эта программа и сопроводительные материалы предоставляются // в соответствии с условиями лицензии Attribution 4.0 International (CC BY 4.0) // Текст лицензии доступен по ссылке: diff --git a/SSL/src/CommonModules/РаботаСБанкамиГлобальный/Module.bsl b/SSL/src/CommonModules/РаботаСБанкамиГлобальный/Module.bsl index 8481e25f4..496bfd766 100644 --- a/SSL/src/CommonModules/РаботаСБанкамиГлобальный/Module.bsl +++ b/SSL/src/CommonModules/РаботаСБанкамиГлобальный/Module.bsl @@ -1,5 +1,5 @@ /////////////////////////////////////////////////////////////////////////////////////////////////////// -// Copyright (c) 2024, ООО 1С-Софт +// Copyright (c) 2025, ООО 1С-Софт // Все права защищены. Эта программа и сопроводительные материалы предоставляются // в соответствии с условиями лицензии Attribution 4.0 International (CC BY 4.0) // Текст лицензии доступен по ссылке: diff --git a/SSL/src/CommonModules/РаботаСБанкамиКлиент/Module.bsl b/SSL/src/CommonModules/РаботаСБанкамиКлиент/Module.bsl index eccc5df6f..d28ddde26 100644 --- a/SSL/src/CommonModules/РаботаСБанкамиКлиент/Module.bsl +++ b/SSL/src/CommonModules/РаботаСБанкамиКлиент/Module.bsl @@ -1,5 +1,5 @@ /////////////////////////////////////////////////////////////////////////////////////////////////////// -// Copyright (c) 2024, ООО 1С-Софт +// Copyright (c) 2025, ООО 1С-Софт // Все права защищены. Эта программа и сопроводительные материалы предоставляются // в соответствии с условиями лицензии Attribution 4.0 International (CC BY 4.0) // Текст лицензии доступен по ссылке: diff --git a/SSL/src/CommonModules/РаботаСБанкамиПереопределяемый/Module.bsl b/SSL/src/CommonModules/РаботаСБанкамиПереопределяемый/Module.bsl index e5c5941ca..5b2bd2ce3 100644 --- a/SSL/src/CommonModules/РаботаСБанкамиПереопределяемый/Module.bsl +++ b/SSL/src/CommonModules/РаботаСБанкамиПереопределяемый/Module.bsl @@ -1,5 +1,5 @@ /////////////////////////////////////////////////////////////////////////////////////////////////////// -// Copyright (c) 2024, ООО 1С-Софт +// Copyright (c) 2025, ООО 1С-Софт // Все права защищены. Эта программа и сопроводительные материалы предоставляются // в соответствии с условиями лицензии Attribution 4.0 International (CC BY 4.0) // Текст лицензии доступен по ссылке: diff --git a/SSL/src/CommonModules/РаботаСБанкамиСлужебный/Module.bsl b/SSL/src/CommonModules/РаботаСБанкамиСлужебный/Module.bsl index 2ec28d3a2..158f33ac2 100644 --- a/SSL/src/CommonModules/РаботаСБанкамиСлужебный/Module.bsl +++ b/SSL/src/CommonModules/РаботаСБанкамиСлужебный/Module.bsl @@ -1,5 +1,5 @@ /////////////////////////////////////////////////////////////////////////////////////////////////////// -// Copyright (c) 2024, ООО 1С-Софт +// Copyright (c) 2025, ООО 1С-Софт // Все права защищены. Эта программа и сопроводительные материалы предоставляются // в соответствии с условиями лицензии Attribution 4.0 International (CC BY 4.0) // Текст лицензии доступен по ссылке: diff --git a/SSL/src/CommonModules/РаботаСКурсамиВалют/Module.bsl b/SSL/src/CommonModules/РаботаСКурсамиВалют/Module.bsl index e2476a8eb..a0539a62e 100644 --- a/SSL/src/CommonModules/РаботаСКурсамиВалют/Module.bsl +++ b/SSL/src/CommonModules/РаботаСКурсамиВалют/Module.bsl @@ -1,5 +1,5 @@ /////////////////////////////////////////////////////////////////////////////////////////////////////// -// Copyright (c) 2024, ООО 1С-Софт +// Copyright (c) 2025, ООО 1С-Софт // Все права защищены. Эта программа и сопроводительные материалы предоставляются // в соответствии с условиями лицензии Attribution 4.0 International (CC BY 4.0) // Текст лицензии доступен по ссылке: @@ -151,10 +151,16 @@ // // Параметры: // ИсточникиДанныхПечати - см. УправлениеПечатьюПереопределяемый.ПриОпределенииИсточниковДанныхПечати.ИсточникиДанныхПечати +// ИмяИсточникаПолей - Строка - полное имя объекта метаданных, по которому будут вычисляться поля валют для +// использования в прописях. Если не указано, то добавляется поле по умолчанию и первый в +// списке метаданных объекта печати реквизит валюты. // -Процедура ПодключитьИсточникДанныхПечатиЧислоПрописью(ИсточникиДанныхПечати) Экспорт +Процедура ПодключитьИсточникДанныхПечатиЧислоПрописью(ИсточникиДанныхПечати, ИмяИсточникаПолей = "") Экспорт - ИсточникиДанныхПечати.Добавить(СхемаДанныеПечатиСуммаПрописью(), "ДанныеПечатиСуммаПрописью"); + СхемаКомпоновки = СхемаДанныеПечатиСуммаПрописью(ИмяИсточникаПолей); + Если СхемаКомпоновки <> Неопределено Тогда + ИсточникиДанныхПечати.Добавить(СхемаКомпоновки, "ДанныеПечатиСуммаПрописью"); + КонецЕсли; КонецПроцедуры @@ -524,31 +530,88 @@ КонецФункции -Функция СхемаДанныеПечатиСуммаПрописью() +#КонецОбласти + +#Область Печать + +Функция СхемаДанныеПечатиСуммаПрописью(ИмяИсточникаПолей) - Если ОбщегоНазначения.ПодсистемаСуществует("СтандартныеПодсистемы.Печать") Тогда - МодульУправлениеПечатью = ОбщегоНазначения.ОбщийМодуль("УправлениеПечатью"); - - СписокПолей = МодульУправлениеПечатью.ТаблицаПолейДанныхПечати(); + Если НЕ ОбщегоНазначения.ПодсистемаСуществует("СтандартныеПодсистемы.Печать") Тогда - Поле = СписокПолей.Добавить(); - Поле.Идентификатор = "Ссылка"; - Поле.Представление = НСтр("ru = 'Ссылка'"); - Поле.ТипЗначения = Новый ОписаниеТипов(); - - Поле = СписокПолей.Добавить(); - Поле.Идентификатор = "Валюта"; - Поле.Представление = НСтр("ru = 'Валюта'"); - Поле.ТипЗначения = Новый ОписаниеТипов(); - - Поле = СписокПолей.Добавить(); - Поле.Идентификатор = "ЧислоПрописью"; - Поле.Представление = НСтр("ru = 'Число прописью'"); - Поле.ТипЗначения = Новый ОписаниеТипов("Строка"); + Возврат Неопределено; - Возврат МодульУправлениеПечатью.СхемаКомпоновкиДанныхПечати(СписокПолей); КонецЕсли; + МодульУправлениеПечатью = ОбщегоНазначения.ОбщийМодуль("УправлениеПечатью"); + + СписокПолей = МодульУправлениеПечатью.ТаблицаПолейДанныхПечати(); + + Поле = СписокПолей.Добавить(); + Поле.Идентификатор = "Ссылка"; + Поле.Представление = НСтр("ru = 'Ссылка'"); + Поле.ТипЗначения = Новый ОписаниеТипов(); + + Поле = СписокПолей.Добавить(); + Поле.Идентификатор = "Валюта"; + Поле.Представление = НСтр("ru = 'Валюта по умолчанию'"); + Поле.ТипЗначения = Новый ОписаниеТипов(); + + Поле = СписокПолей.Добавить(); + Поле.Идентификатор = "ЧислоПрописью"; + Поле.Представление = НСтр("ru = 'Прописью (с валютой по умолчанию)'"); + Поле.ТипЗначения = Новый ОписаниеТипов("Строка"); + + Если НЕ ПустаяСтрока(ИмяИсточникаПолей) Тогда + + МассивПодстрок = СтроковыеФункцииКлиентСервер.РазложитьСтрокуВМассивПодстрок(ИмяИсточникаПолей, "."); + МассивИзДвухСтрок = 2; + + Если МассивПодстрок.Количество() >= МассивИзДвухСтрок Тогда + + МассивПодстрокИмениОбъекта = Новый Массив; + МассивПодстрокИмениОбъекта.Добавить(МассивПодстрок[0]); + МассивПодстрокИмениОбъекта.Добавить(МассивПодстрок[1]); + ИмяОбъекта = СтрСоединить(МассивПодстрокИмениОбъекта, "."); + ОбъектМетаданных = ОбщегоНазначения.ОбъектМетаданныхПоПолномуИмени(ИмяОбъекта); + + Если ОбъектМетаданных <> Неопределено Тогда + + ТаблицаВалютныхРеквизитов = ТаблицаВалютныхРеквизитовОбъекта(ОбъектМетаданных); + ТипОбъекта = СтандартныеПодсистемыСервер.ТипСсылкиИлиКлючаЗаписиОбъектаМетаданных(ОбъектМетаданных); + ДанныеВалютыПоУмолчанию = ДанныеВалюты(); + ПолучитьПолеВалютаПоУмолчаниюДляОбъекта(ТипОбъекта, ТаблицаВалютныхРеквизитов, ДанныеВалютыПоУмолчанию); + + Если НЕ ПустаяСтрока(ДанныеВалютыПоУмолчанию.ПредставлениеПоля) + И ДанныеВалютыПоУмолчанию.Переопределена Тогда + + ПредставлениеПоля = ДанныеВалютыПоУмолчанию.ПредставлениеПоля; + СтрокаТаблицы = СписокПолей.Найти("Валюта", "Идентификатор"); + СтрокаТаблицы.Представление = СтрокаТаблицы.Представление + " (" + ПредставлениеПоля + ")"; + + КонецЕсли; + + Для Каждого Реквизит Из ТаблицаВалютныхРеквизитов Цикл + + Идентификатор = ИдентификаторПоляЧислоПрописью(Реквизит.Идентификатор); + Если СписокПолей.Найти(Идентификатор, "Идентификатор") = Неопределено Тогда + + Поле = СписокПолей.Добавить(); + Поле.Идентификатор = Идентификатор; + Поле.Представление = ПредставлениеПоляЧислоПрописью(Реквизит.Представление); + Поле.ТипЗначения = Новый ОписаниеТипов("Строка"); + + КонецЕсли; + + КонецЦикла; + + КонецЕсли; + + КонецЕсли; + + КонецЕсли; + + Возврат МодульУправлениеПечатью.СхемаКомпоновкиДанныхПечати(СписокПолей); + КонецФункции Функция ДанныеПечатиСуммаПрописью(ОписанияИсточниковДанных, КодЯзыка) @@ -558,29 +621,347 @@ ДанныеПечати.Колонки.Добавить("Валюта"); ДанныеПечати.Колонки.Добавить("ЧислоПрописью"); - Для Каждого ОписаниеИсточника Из ОписанияИсточниковДанных Цикл - СтрокаТаблицы = ДанныеПечати.Добавить(); - СтрокаТаблицы.Ссылка = ОписаниеИсточника.Значение; - Если ОбщегоНазначения.ЭтоСсылка(ТипЗнч(ОписаниеИсточника.Владелец)) Тогда - ОбъектМетаданных = Метаданные.НайтиПоТипу(ТипЗнч(ОписаниеИсточника.Владелец)); - Для Каждого Реквизит Из ОбъектМетаданных.Реквизиты Цикл - Если Реквизит.Тип.СодержитТип(Тип("СправочникСсылка.Валюты")) Тогда - Валюта = ОбщегоНазначения.ЗначениеРеквизитаОбъекта(ОписаниеИсточника.Владелец, Реквизит.Имя); - Если ЗначениеЗаполнено(Валюта) Тогда - СтрокаТаблицы.Валюта = Валюта; - СтрокаТаблицы.ЧислоПрописью = СформироватьСуммуПрописью( - ОписаниеИсточника.Значение, Валюта, , КодЯзыка); - Прервать; - КонецЕсли; - КонецЕсли; - КонецЦикла; + Результат = ОписанияИсточниковДанныхПоМетаданным(ОписанияИсточниковДанных); + ОбъектыМетаданных = Результат.ОбъектыМетаданных; + СсылкиМетаданных = Результат.СсылкиМетаданных; + + ОбъектыМетаданных = ОбщегоНазначенияКлиентСервер.СвернутьМассив(ОбъектыМетаданных); + + Для Каждого ОбъектМетаданных Из ОбъектыМетаданных Цикл + + ТипОбъекта = СтандартныеПодсистемыСервер.ТипСсылкиИлиКлючаЗаписиОбъектаМетаданных(ОбъектМетаданных); + ТаблицаВалютныхРеквизитов = ТаблицаВалютныхРеквизитовОбъекта(ОбъектМетаданных); + + Для Каждого Реквизит Из ТаблицаВалютныхРеквизитов Цикл + + ИмяКолонки = ИдентификаторПоляЧислоПрописью(Реквизит.Идентификатор); + Если ДанныеПечати.Колонки.Найти(ИмяКолонки) = Неопределено Тогда + ДанныеПечати.Колонки.Добавить(ИмяКолонки); + КонецЕсли; + + КонецЦикла; + + МассивСсылок = ОбщегоНазначенияКлиентСервер.СвернутьМассив(СсылкиМетаданных[ОбъектМетаданных]); + МассивПолей = ТаблицаВалютныхРеквизитов.ВыгрузитьКолонку("Идентификатор"); + ЗначенияВалютныхРеквизитов = Новый Соответствие; + Если МассивПолей.Количество() > 0 Тогда + ЗначенияВалютныхРеквизитов = ОбщегоНазначения.ЗначенияРеквизитовОбъектов(МассивСсылок, МассивПолей); КонецЕсли; + + ДанныеВалютыПоУмолчанию = ДанныеВалюты(); + ПолучитьПолеВалютаПоУмолчаниюДляОбъекта(ТипОбъекта, ТаблицаВалютныхРеквизитов, ДанныеВалютыПоУмолчанию, Истина); + + Для Каждого ТекущаяСсылка Из МассивСсылок Цикл + + ЗначенияВалютныхРеквизитовСсылки = ЗначенияВалютныхРеквизитов[ТекущаяСсылка]; + Если НЕ ПустаяСтрока(ДанныеВалютыПоУмолчанию.ИмяПоля) + И НЕ ЗначениеЗаполнено(ДанныеВалютыПоУмолчанию.ЗначениеВалюты) Тогда + + ИмяПоля = ДанныеВалютыПоУмолчанию.ИмяПоля; + Если ЗначенияВалютныхРеквизитовСсылки.Свойство(ИмяПоля) Тогда + ДанныеВалютыПоУмолчанию.ЗначениеВалюты = ЗначенияВалютныхРеквизитовСсылки[ИмяПоля]; + КонецЕсли; + + КонецЕсли; + + Отбор = Новый Структура; + Отбор.Вставить("Владелец", ТекущаяСсылка); + ОписанияИсточниковДанныхПоСсылке = ОписанияИсточниковДанных.НайтиСтроки(Отбор); + + ПараметрыДляЗаполненияВалюты = Новый Структура; + ПараметрыДляЗаполненияВалюты.Вставить("ТаблицаВалютныхРеквизитов", ТаблицаВалютныхРеквизитов); + ПараметрыДляЗаполненияВалюты.Вставить("ЗначенияВалютныхРеквизитовСсылки", ЗначенияВалютныхРеквизитовСсылки); + ПараметрыДляЗаполненияВалюты.Вставить("ВалютаПоУмолчанию", ДанныеВалютыПоУмолчанию); + + ЗаполнитьПоляСуммойПрописью( + ОписанияИсточниковДанныхПоСсылке, + ДанныеПечати, + ПараметрыДляЗаполненияВалюты, + КодЯзыка); + + КонецЦикла; + КонецЦикла; Возврат ДанныеПечати; КонецФункции +// Параметры: +// ОписанияИсточниковДанных - ТаблицаЗначений: +// * Владелец - любая Ссылка +// * Имя - Строка +// * Значение - Произвольный +// +// Возвращаемое значение: +// Структура: +// * ОбъектыМетаданных - Массив из ОбъектМетаданных +// * СсылкиМетаданных - Соответствие из КлючИЗначение: +// ** Ключ - ОбъектМетаданных +// ** Значение - ЛюбаяСсылка +// +Функция ОписанияИсточниковДанныхПоМетаданным(Знач ОписанияИсточниковДанных) + + ОбъектыМетаданных = Новый Массив; // Массив из ОбъектМетаданных + СсылкиМетаданных = Новый Соответствие; + + Для Каждого ОписаниеИсточника Из ОписанияИсточниковДанных Цикл + + Если ОбщегоНазначения.ЭтоСсылка(ТипЗнч(ОписаниеИсточника.Владелец)) Тогда + + ОбъектМетаданных = Метаданные.НайтиПоТипу(ТипЗнч(ОписаниеИсточника.Владелец)); + + Если ОбъектыМетаданных.Найти(ОбъектМетаданных) = Неопределено Тогда + + МассивСсылок = Новый Массив; // Массив из ЛюбаяСсылка + СсылкиМетаданных.Вставить(ОбъектМетаданных, МассивСсылок); + + КонецЕсли; + + СсылкиМетаданных[ОбъектМетаданных].Добавить(ОписаниеИсточника.Владелец); + ОбъектыМетаданных.Добавить(ОбъектМетаданных); + + КонецЕсли; + + КонецЦикла; + + Результат = Новый Структура; + Результат.Вставить("ОбъектыМетаданных", ОбъектыМетаданных); + Результат.Вставить("СсылкиМетаданных", СсылкиМетаданных); + + Возврат Результат; + +КонецФункции + +Процедура ПолучитьПолеВалютаПоУмолчаниюДляОбъекта(ТипОбъекта, ТаблицаВалютныхРеквизитов, ДанныеВалютыПоУмолчанию, ДанныеПечати = Ложь) + + ПолныйПутьКПолюВалюты = ""; + ИмяПоляВалюты = ""; + ПолеВалютыОпределено = Ложь; + + Если ТаблицаВалютныхРеквизитов.Количество() > 0 Тогда + + ПолныйПутьКПолюВалюты = ТаблицаВалютныхРеквизитов[0].Идентификатор; + + КонецЕсли; + + ПолныйПутьКПолюВалютыСтарый = ПолныйПутьКПолюВалюты; + РаботаСКурсамиВалютПереопределяемый.ПриОпределенииВалютыОбъектаПоУмолчанию(ТипОбъекта, ПолныйПутьКПолюВалюты); + МассивПодстрок = Новый Массив; // Массив из Строка + Если НЕ ПустаяСтрока(ПолныйПутьКПолюВалюты) Тогда + + МассивПодстрок = СтроковыеФункцииКлиентСервер.РазложитьСтрокуВМассивПодстрок(ПолныйПутьКПолюВалюты, "."); + ИмяПоляВалюты = МассивПодстрок[МассивПодстрок.ВГраница()]; + + КонецЕсли; + + // Если МассивПодстрок содержит больше одной строки, то в качестве имени поля передали имя поля общего списка + МаксимальноеКоличествоПодстрок = 2; + ПутьКОбщемуПолю = "ОбщееПоле"; + Если МассивПодстрок.Количество() = 1 Тогда + + СтрокаТаблицы = ТаблицаВалютныхРеквизитов.Найти(ИмяПоляВалюты, "Идентификатор"); + Если СтрокаТаблицы <> Неопределено Тогда + + ДанныеВалютыПоУмолчанию.ИмяПоля = ИмяПоляВалюты; + ДанныеВалютыПоУмолчанию.ПредставлениеПоля = СтрокаТаблицы.Представление; + ДанныеВалютыПоУмолчанию.Переопределена = (ПолныйПутьКПолюВалютыСтарый <> ИмяПоляВалюты); + ПолеВалютыОпределено = Истина; + + КонецЕсли; + + ИначеЕсли МассивПодстрок.Количество() = МаксимальноеКоличествоПодстрок + И МассивПодстрок[0] = ПутьКОбщемуПолю + И ОбщегоНазначения.ПодсистемаСуществует("СтандартныеПодсистемы.Печать") Тогда + + ТаблицаОбщихПолей = ТаблицаОбщихПолейДляПечати(); + МодульУправлениеПечатьюПереопределяемый = ОбщегоНазначения.ОбщийМодуль("УправлениеПечатьюПереопределяемый"); + МодульУправлениеПечатьюПереопределяемый.ПриЗаполненииСпискаОбщихПолей(ТипОбъекта, ТаблицаОбщихПолей); + СтрокаТаблицы = ТаблицаОбщихПолей.Найти(ИмяПоляВалюты, "Идентификатор"); + + Если СтрокаТаблицы <> Неопределено Тогда + + ДанныеВалютыПоУмолчанию.ИмяПоля = ИмяПоляВалюты; + ДанныеВалютыПоУмолчанию.ПредставлениеПоля = СтрокаТаблицы.Представление; + ДанныеВалютыПоУмолчанию.ЗначениеВалюты = СтрокаТаблицы.Значение; + ДанныеВалютыПоУмолчанию.Переопределена = Истина; + ПолеВалютыОпределено = Истина; + + КонецЕсли; + + КонецЕсли; + + Если НЕ ПолеВалютыОпределено + И НЕ ПустаяСтрока(ПолныйПутьКПолюВалюты) + И ДанныеПечати Тогда + + ШаблонСообщения = НСтр("ru = 'Для типа объекта ""%1"" неверно указано имя поля ""%2"" для определения валюты по умолчанию'"); + ТекстСообщений = СтроковыеФункцииКлиентСервер.ПодставитьПараметрыВСтроку( + ШаблонСообщения, + Строка(ТипОбъекта), + ПолныйПутьКПолюВалюты); + ОбщегоНазначения.СообщитьПользователю(ТекстСообщений); + + КонецЕсли; + +КонецПроцедуры + +Процедура ЗаполнитьПоляСуммойПрописью(ОписанияИсточниковДанных, ДанныеПечати, ПараметрыДляЗаполненияВалюты, КодЯзыка) + + ТаблицаВалютныхРеквизитов = ПараметрыДляЗаполненияВалюты.ТаблицаВалютныхРеквизитов; + ЗначенияВалютныхРеквизитовСсылки = ПараметрыДляЗаполненияВалюты.ЗначенияВалютныхРеквизитовСсылки; + ВалютаПоУмолчанию = ПараметрыДляЗаполненияВалюты.ВалютаПоУмолчанию; + + Если ПустаяСтрока(ВалютаПоУмолчанию.ПредставлениеПоля) + И ЗначенияВалютныхРеквизитовСсылки = Неопределено Тогда + Возврат; + КонецЕсли; + + Для Каждого ОписаниеИсточника Из ОписанияИсточниковДанных Цикл + + СтрокаТаблицы = ДанныеПечати.Добавить(); + СтрокаТаблицы.Ссылка = ОписаниеИсточника.Значение; + + ВалютаПоУмолчаниюДобавлена = + ДобавитьВалютуПоУмолчанию(СтрокаТаблицы, ВалютаПоУмолчанию, ОписаниеИсточника, КодЯзыка); + + Если ЗначенияВалютныхРеквизитовСсылки = Неопределено Тогда + Продолжить; + КонецЕсли; + + СчетчикРеквизитов = 0; + Для Каждого Реквизит Из ТаблицаВалютныхРеквизитов Цикл + + СчетчикРеквизитов = СчетчикРеквизитов + 1; + Валюта = ЗначенияВалютныхРеквизитовСсылки[Реквизит.Идентификатор]; + + Если НЕ ЗначениеЗаполнено(Валюта) Тогда + Продолжить; + КонецЕсли; + + Если СчетчикРеквизитов = 1 + И НЕ ВалютаПоУмолчаниюДобавлена Тогда + + СтрокаТаблицы.Валюта = Валюта; + СтрокаТаблицы.ЧислоПрописью = + СформироватьСуммуПрописью(ОписаниеИсточника.Значение, Валюта,, КодЯзыка); + + КонецЕсли; + + ИмяКолонки = ИдентификаторПоляЧислоПрописью(Реквизит.Идентификатор); + СтрокаТаблицы[ИмяКолонки] = СформироватьСуммуПрописью(ОписаниеИсточника.Значение, Валюта,, КодЯзыка); + + КонецЦикла; + + КонецЦикла; + +КонецПроцедуры + +Функция ДобавитьВалютуПоУмолчанию(СтрокаТаблицы, ВалютаПоУмолчанию, ОписаниеИсточника, КодЯзыка) + + ВалютаПоУмолчаниюДобавлена = Ложь; + + Если НЕ ПустаяСтрока(ВалютаПоУмолчанию.ПредставлениеПоля) Тогда + + ВалютаПоУмолчаниюДобавлена = Истина; + + Если ЗначениеЗаполнено(ВалютаПоУмолчанию.ЗначениеВалюты) Тогда + + СтрокаТаблицы.Валюта = ВалютаПоУмолчанию.ЗначениеВалюты; + СтрокаТаблицы.ЧислоПрописью = + СформироватьСуммуПрописью(ОписаниеИсточника.Значение, ВалютаПоУмолчанию.ЗначениеВалюты,, КодЯзыка); + + КонецЕсли; + + КонецЕсли; + + Возврат ВалютаПоУмолчаниюДобавлена; + +КонецФункции + +Функция ТаблицаВалютныхРеквизитовОбъекта(ОбъектМетаданных) + + ТаблицаПолейВалют = ТаблицаВалютныхПолейДляПечати(); + + Для Каждого Реквизит Из ОбъектМетаданных.Реквизиты Цикл + + Если Реквизит.Тип.СодержитТип(Тип("СправочникСсылка.Валюты")) Тогда + + НоваяСтрока = ТаблицаПолейВалют.Добавить(); + НоваяСтрока.Идентификатор = Реквизит.Имя; + НоваяСтрока.Представление = Реквизит.Синоним; + + КонецЕсли; + + КонецЦикла; + + Возврат ТаблицаПолейВалют; + +КонецФункции + +// Возвращаемое значение: +// Структура - данные валюты по умолчанию: +// * ЗначениеВалюты - СправочникСсылка.Валюты +// * ИмяПоля - Строка +// * ПредставлениеПоля - Строка +// * Переопределена - Булево +// +Функция ДанныеВалюты() + + ДанныеВалюты = Новый Структура; + ДанныеВалюты.Вставить("ЗначениеВалюты", Справочники.Валюты.ПустаяСсылка()); + ДанныеВалюты.Вставить("ИмяПоля", ""); + ДанныеВалюты.Вставить("ПредставлениеПоля", ""); + ДанныеВалюты.Вставить("Переопределена", Ложь); + + Возврат ДанныеВалюты; + +КонецФункции + +// Возвращаемое значение: +// ТаблицаЗначений - таблица валют для печати: +// * Идентификатор - Строка +// * Представление - Строка +// +Функция ТаблицаВалютныхПолейДляПечати() + + ТаблицаЗначений = Новый ТаблицаЗначений; + ТаблицаЗначений.Колонки.Добавить("Идентификатор", Новый ОписаниеТипов("Строка")); + ТаблицаЗначений.Колонки.Добавить("Представление", Новый ОписаниеТипов("Строка")); + + Возврат ТаблицаЗначений; + +КонецФункции + +// Возвращаемое значение: +// ТаблицаЗначений - новая таблица общих полей: +// * Идентификатор - Строка +// * Представление - Строка +// * Значение -ЛюбаяСсылка +// +Функция ТаблицаОбщихПолейДляПечати() + + ТаблицаОбщихПолей = Новый ТаблицаЗначений; + ТаблицаОбщихПолей.Колонки.Добавить("Идентификатор", Новый ОписаниеТипов("Строка")); + ТаблицаОбщихПолей.Колонки.Добавить("Представление", Новый ОписаниеТипов("Строка")); + ТаблицаОбщихПолей.Колонки.Добавить("Значение"); + + Возврат ТаблицаОбщихПолей; + +КонецФункции + +Функция ИдентификаторПоляЧислоПрописью(Идентификатор) + + Возврат "ЧислоПрописью" + "_" + СтрЗаменить(Идентификатор, ".", "_"); + +КонецФункции + +Функция ПредставлениеПоляЧислоПрописью(Представление) + + Возврат НСтр("ru = 'Прописью'" ) + " (" + Представление + ")"; + +КонецФункции + #КонецОбласти // См. СтандартныеПодсистемыСервер.ПриОпределенииМетодовРазрешенныхДляВызоваКакПроизвольныйКод diff --git a/SSL/src/CommonModules/РаботаСКурсамиВалютВызовСервера/Module.bsl b/SSL/src/CommonModules/РаботаСКурсамиВалютВызовСервера/Module.bsl index b5892320d..ded3db564 100644 --- a/SSL/src/CommonModules/РаботаСКурсамиВалютВызовСервера/Module.bsl +++ b/SSL/src/CommonModules/РаботаСКурсамиВалютВызовСервера/Module.bsl @@ -1,5 +1,5 @@ /////////////////////////////////////////////////////////////////////////////////////////////////////// -// Copyright (c) 2024, ООО 1С-Софт +// Copyright (c) 2025, ООО 1С-Софт // Все права защищены. Эта программа и сопроводительные материалы предоставляются // в соответствии с условиями лицензии Attribution 4.0 International (CC BY 4.0) // Текст лицензии доступен по ссылке: diff --git a/SSL/src/CommonModules/РаботаСКурсамиВалютГлобальный/Module.bsl b/SSL/src/CommonModules/РаботаСКурсамиВалютГлобальный/Module.bsl index 532d7722c..fd6b6cfdb 100644 --- a/SSL/src/CommonModules/РаботаСКурсамиВалютГлобальный/Module.bsl +++ b/SSL/src/CommonModules/РаботаСКурсамиВалютГлобальный/Module.bsl @@ -1,5 +1,5 @@ /////////////////////////////////////////////////////////////////////////////////////////////////////// -// Copyright (c) 2024, ООО 1С-Софт +// Copyright (c) 2025, ООО 1С-Софт // Все права защищены. Эта программа и сопроводительные материалы предоставляются // в соответствии с условиями лицензии Attribution 4.0 International (CC BY 4.0) // Текст лицензии доступен по ссылке: diff --git a/SSL/src/CommonModules/РаботаСКурсамиВалютКлиент/Module.bsl b/SSL/src/CommonModules/РаботаСКурсамиВалютКлиент/Module.bsl index 0ef0d49ec..41f8bea55 100644 --- a/SSL/src/CommonModules/РаботаСКурсамиВалютКлиент/Module.bsl +++ b/SSL/src/CommonModules/РаботаСКурсамиВалютКлиент/Module.bsl @@ -1,5 +1,5 @@ /////////////////////////////////////////////////////////////////////////////////////////////////////// -// Copyright (c) 2024, ООО 1С-Софт +// Copyright (c) 2025, ООО 1С-Софт // Все права защищены. Эта программа и сопроводительные материалы предоставляются // в соответствии с условиями лицензии Attribution 4.0 International (CC BY 4.0) // Текст лицензии доступен по ссылке: diff --git a/SSL/src/CommonModules/РаботаСКурсамиВалютКлиентЛокализация/Module.bsl b/SSL/src/CommonModules/РаботаСКурсамиВалютКлиентЛокализация/Module.bsl index acdaa952a..05532cab9 100644 --- a/SSL/src/CommonModules/РаботаСКурсамиВалютКлиентЛокализация/Module.bsl +++ b/SSL/src/CommonModules/РаботаСКурсамиВалютКлиентЛокализация/Module.bsl @@ -1,5 +1,5 @@ /////////////////////////////////////////////////////////////////////////////////////////////////////// -// Copyright (c) 2024, ООО 1С-Софт +// Copyright (c) 2025, ООО 1С-Софт // Все права защищены. Эта программа и сопроводительные материалы предоставляются // в соответствии с условиями лицензии Attribution 4.0 International (CC BY 4.0) // Текст лицензии доступен по ссылке: diff --git a/SSL/src/CommonModules/РаботаСКурсамиВалютКлиентСервер/Module.bsl b/SSL/src/CommonModules/РаботаСКурсамиВалютКлиентСервер/Module.bsl index be2e7e1ae..cc98ce3a7 100644 --- a/SSL/src/CommonModules/РаботаСКурсамиВалютКлиентСервер/Module.bsl +++ b/SSL/src/CommonModules/РаботаСКурсамиВалютКлиентСервер/Module.bsl @@ -1,5 +1,5 @@ /////////////////////////////////////////////////////////////////////////////////////////////////////// -// Copyright (c) 2024, ООО 1С-Софт +// Copyright (c) 2025, ООО 1С-Софт // Все права защищены. Эта программа и сопроводительные материалы предоставляются // в соответствии с условиями лицензии Attribution 4.0 International (CC BY 4.0) // Текст лицензии доступен по ссылке: diff --git a/SSL/src/CommonModules/РаботаСКурсамиВалютЛокализация/Module.bsl b/SSL/src/CommonModules/РаботаСКурсамиВалютЛокализация/Module.bsl index 1d2b5226d..a5f5fe5aa 100644 --- a/SSL/src/CommonModules/РаботаСКурсамиВалютЛокализация/Module.bsl +++ b/SSL/src/CommonModules/РаботаСКурсамиВалютЛокализация/Module.bsl @@ -1,5 +1,5 @@ /////////////////////////////////////////////////////////////////////////////////////////////////////// -// Copyright (c) 2024, ООО 1С-Софт +// Copyright (c) 2025, ООО 1С-Софт // Все права защищены. Эта программа и сопроводительные материалы предоставляются // в соответствии с условиями лицензии Attribution 4.0 International (CC BY 4.0) // Текст лицензии доступен по ссылке: diff --git a/SSL/src/CommonModules/РаботаСКурсамиВалютПереопределяемый/Module.bsl b/SSL/src/CommonModules/РаботаСКурсамиВалютПереопределяемый/Module.bsl index 63bcc7d2c..48542358d 100644 --- a/SSL/src/CommonModules/РаботаСКурсамиВалютПереопределяемый/Module.bsl +++ b/SSL/src/CommonModules/РаботаСКурсамиВалютПереопределяемый/Module.bsl @@ -1,5 +1,5 @@ /////////////////////////////////////////////////////////////////////////////////////////////////////// -// Copyright (c) 2024, ООО 1С-Софт +// Copyright (c) 2025, ООО 1С-Софт // Все права защищены. Эта программа и сопроводительные материалы предоставляются // в соответствии с условиями лицензии Attribution 4.0 International (CC BY 4.0) // Текст лицензии доступен по ссылке: @@ -15,6 +15,29 @@ // Процедура ПриОпределенииНеобходимостиПоказаПредупрежденияОбУстаревшихКурсахВалют(ПоказыватьПредупреждение) Экспорт +КонецПроцедуры + +// Определяет для объекта имя поля, по которому будет определяться валюта по умолчанию. +// +// Параметры: +// ТипОбъектаПечати - Тип - возможные типы ссылок СправочникСсылка, ДокументСсылка, ПланВидовХарактеристикСсылка, +// ПланСчетовСсылка, ПланВидовРасчетаСсылка, БизнесПроцессСсылка, ЗадачаСсылка +// ИмяПоляВалюты - Строка +// Пример: +// Если ТипОбъектаПечати = Тип("ДокументСсылка.Заказ") Тогда +// +// ИмяПоляВалюты = "ВалютаДокумента"; +// +// Иначе +// +// ИмяПоляВалюты = "ОбщееПоле.ВалютаУправленческогоУчета"; +// +// КонецЕсли; +// +Процедура ПриОпределенииВалютыОбъектаПоУмолчанию(ТипОбъектаПечати, ИмяПоляВалюты) Экспорт + + + КонецПроцедуры #КонецОбласти diff --git a/SSL/src/CommonModules/РаботаСКурсамиВалютСлужебный/Module.bsl b/SSL/src/CommonModules/РаботаСКурсамиВалютСлужебный/Module.bsl index 0dce092f1..6eb23abd1 100644 --- a/SSL/src/CommonModules/РаботаСКурсамиВалютСлужебный/Module.bsl +++ b/SSL/src/CommonModules/РаботаСКурсамиВалютСлужебный/Module.bsl @@ -1,5 +1,5 @@ /////////////////////////////////////////////////////////////////////////////////////////////////////// -// Copyright (c) 2024, ООО 1С-Софт +// Copyright (c) 2025, ООО 1С-Софт // Все права защищены. Эта программа и сопроводительные материалы предоставляются // в соответствии с условиями лицензии Attribution 4.0 International (CC BY 4.0) // Текст лицензии доступен по ссылке: diff --git a/SSL/src/CommonModules/РаботаСПочтовымиСообщениями/Module.bsl b/SSL/src/CommonModules/РаботаСПочтовымиСообщениями/Module.bsl index 2b1547eb9..8c00161b9 100644 --- a/SSL/src/CommonModules/РаботаСПочтовымиСообщениями/Module.bsl +++ b/SSL/src/CommonModules/РаботаСПочтовымиСообщениями/Module.bsl @@ -1,5 +1,5 @@ /////////////////////////////////////////////////////////////////////////////////////////////////////// -// Copyright (c) 2024, ООО 1С-Софт +// Copyright (c) 2025, ООО 1С-Софт // Все права защищены. Эта программа и сопроводительные материалы предоставляются // в соответствии с условиями лицензии Attribution 4.0 International (CC BY 4.0) // Текст лицензии доступен по ссылке: @@ -335,35 +335,54 @@ КонецПроцедуры // Получает с сайта ИТС рекомендации по устранению ошибки подключения к почтовому серверу. -// +// // Параметры: -// ТекстОшибки - Строка - исходный текст ошибки. -// +// ТекстОшибки - Строка - исходный текст ошибки. +// УчетнаяЗапись - СправочникСсылка.УчетныеЗаписиЭлектроннойПочты - учетная запись электронной почты, у которой +// возникла ошибка. +// // Возвращаемое значение: // Структура: // * ВозможныеПричины - Массив из ФорматированнаяСтрока // * СпособыУстранения - Массив из ФорматированнаяСтрока // -Функция ПоясненияПоОшибке(ТекстОшибки) Экспорт +Функция ПоясненияПоОшибке(ТекстОшибки, УчетнаяЗапись = Неопределено) Экспорт - Возврат РаботаСПочтовымиСообщениямиСлужебный.ПоясненияПоОшибке(ТекстОшибки); + СерверВходящейПочты = ""; + СерверИсходящейПочты = ""; + + Если ТипЗнч(УчетнаяЗапись) = Тип("СправочникСсылка.УчетныеЗаписиЭлектроннойПочты") Тогда + РеквизитыУчетнойЗаписи = ОбщегоНазначения.ЗначенияРеквизитовОбъекта(УчетнаяЗапись, "СерверВходящейПочты, СерверИсходящейПочты"); + СерверВходящейПочты = РеквизитыУчетнойЗаписи.СерверВходящейПочты; + СерверИсходящейПочты = РеквизитыУчетнойЗаписи.СерверИсходящейПочты; + КонецЕсли; + + ПараметрыПояснения = РаботаСПочтовымиСообщениямиСлужебный.ПараметрыПояснения(); + ПараметрыПояснения.ТекстОшибки = ТекстОшибки; + ПараметрыПояснения.Контекст = РаботаСПочтовымиСообщениямиСлужебный.КонтекстДляПояснения().ОтправкаПисьма; + ПараметрыПояснения.ИменаСерверов = РаботаСПочтовымиСообщениямиСлужебный.ИменаСерверовДляПояснения(СерверВходящейПочты, СерверИсходящейПочты); + + Возврат РаботаСПочтовымиСообщениямиСлужебный.ПоясненияПоОшибке(ПараметрыПояснения); КонецФункции // Подготавливает расширенное описание ошибки подключения к почтовому серверу. -// +// // Параметры: -// ИнформацияОбОшибке - ИнформацияОбОшибке -// КодЯзыка - Строка - код языка реквизита. Например, "ru". +// ИнформацияОбОшибке - ИнформацияОбОшибке +// КодЯзыка - Строка - код языка реквизита. Например, "ru". // ВключитьПодробноеПредставлениеОшибки - Булево - добавляет в текст ошибки стек. -// +// УчетнаяЗапись - СправочникСсылка.УчетныеЗаписиЭлектроннойПочты - учетная запись электронной +// почты, у которой возникла ошибка. +// // Возвращаемое значение: // Строка // -Функция РасширенноеПредставлениеОшибки(ИнформацияОбОшибке, КодЯзыка, ВключитьПодробноеПредставлениеОшибки = Истина) Экспорт +Функция РасширенноеПредставлениеОшибки(ИнформацияОбОшибке, КодЯзыка, + ВключитьПодробноеПредставлениеОшибки = Истина, УчетнаяЗапись = Неопределено) Экспорт Возврат РаботаСПочтовымиСообщениямиСлужебный.РасширенноеПредставлениеОшибки( - ИнформацияОбОшибке, КодЯзыка, ВключитьПодробноеПредставлениеОшибки); + ИнформацияОбОшибке, КодЯзыка, ВключитьПодробноеПредставлениеОшибки, УчетнаяЗапись); КонецФункции diff --git a/SSL/src/CommonModules/РаботаСПочтовымиСообщениямиВызовСервера/Module.bsl b/SSL/src/CommonModules/РаботаСПочтовымиСообщениямиВызовСервера/Module.bsl index 79b4cc9d4..27d051d8d 100644 --- a/SSL/src/CommonModules/РаботаСПочтовымиСообщениямиВызовСервера/Module.bsl +++ b/SSL/src/CommonModules/РаботаСПочтовымиСообщениямиВызовСервера/Module.bsl @@ -1,5 +1,5 @@ /////////////////////////////////////////////////////////////////////////////////////////////////////// -// Copyright (c) 2024, ООО 1С-Софт +// Copyright (c) 2025, ООО 1С-Софт // Все права защищены. Эта программа и сопроводительные материалы предоставляются // в соответствии с условиями лицензии Attribution 4.0 International (CC BY 4.0) // Текст лицензии доступен по ссылке: diff --git a/SSL/src/CommonModules/РаботаСПочтовымиСообщениямиКлиент/Module.bsl b/SSL/src/CommonModules/РаботаСПочтовымиСообщениямиКлиент/Module.bsl index bd798e209..e07d35839 100644 --- a/SSL/src/CommonModules/РаботаСПочтовымиСообщениямиКлиент/Module.bsl +++ b/SSL/src/CommonModules/РаботаСПочтовымиСообщениямиКлиент/Module.bsl @@ -1,5 +1,5 @@ /////////////////////////////////////////////////////////////////////////////////////////////////////// -// Copyright (c) 2024, ООО 1С-Софт +// Copyright (c) 2025, ООО 1С-Софт // Все права защищены. Эта программа и сопроводительные материалы предоставляются // в соответствии с условиями лицензии Attribution 4.0 International (CC BY 4.0) // Текст лицензии доступен по ссылке: diff --git a/SSL/src/CommonModules/РаботаСПочтовымиСообщениямиКлиентПереопределяемый/Module.bsl b/SSL/src/CommonModules/РаботаСПочтовымиСообщениямиКлиентПереопределяемый/Module.bsl index 063b86f29..6fe15f3b9 100644 --- a/SSL/src/CommonModules/РаботаСПочтовымиСообщениямиКлиентПереопределяемый/Module.bsl +++ b/SSL/src/CommonModules/РаботаСПочтовымиСообщениямиКлиентПереопределяемый/Module.bsl @@ -1,5 +1,5 @@ /////////////////////////////////////////////////////////////////////////////////////////////////////// -// Copyright (c) 2024, ООО 1С-Софт +// Copyright (c) 2025, ООО 1С-Софт // Все права защищены. Эта программа и сопроводительные материалы предоставляются // в соответствии с условиями лицензии Attribution 4.0 International (CC BY 4.0) // Текст лицензии доступен по ссылке: diff --git a/SSL/src/CommonModules/РаботаСПочтовымиСообщениямиЛокализация/Module.bsl b/SSL/src/CommonModules/РаботаСПочтовымиСообщениямиЛокализация/Module.bsl index 0b309bc44..8e6f84a8d 100644 --- a/SSL/src/CommonModules/РаботаСПочтовымиСообщениямиЛокализация/Module.bsl +++ b/SSL/src/CommonModules/РаботаСПочтовымиСообщениямиЛокализация/Module.bsl @@ -1,5 +1,5 @@ /////////////////////////////////////////////////////////////////////////////////////////////////////// -// Copyright (c) 2024, ООО 1С-Софт +// Copyright (c) 2025, ООО 1С-Софт // Все права защищены. Эта программа и сопроводительные материалы предоставляются // в соответствии с условиями лицензии Attribution 4.0 International (CC BY 4.0) // Текст лицензии доступен по ссылке: diff --git a/SSL/src/CommonModules/РаботаСПочтовымиСообщениямиПереопределяемый/Module.bsl b/SSL/src/CommonModules/РаботаСПочтовымиСообщениямиПереопределяемый/Module.bsl index 61beee294..4a56bcd89 100644 --- a/SSL/src/CommonModules/РаботаСПочтовымиСообщениямиПереопределяемый/Module.bsl +++ b/SSL/src/CommonModules/РаботаСПочтовымиСообщениямиПереопределяемый/Module.bsl @@ -1,5 +1,5 @@ /////////////////////////////////////////////////////////////////////////////////////////////////////// -// Copyright (c) 2024, ООО 1С-Софт +// Copyright (c) 2025, ООО 1С-Софт // Все права защищены. Эта программа и сопроводительные материалы предоставляются // в соответствии с условиями лицензии Attribution 4.0 International (CC BY 4.0) // Текст лицензии доступен по ссылке: diff --git a/SSL/src/CommonModules/РаботаСПочтовымиСообщениямиСлужебный/Module.bsl b/SSL/src/CommonModules/РаботаСПочтовымиСообщениямиСлужебный/Module.bsl index c06d174de..30ae16939 100644 --- a/SSL/src/CommonModules/РаботаСПочтовымиСообщениямиСлужебный/Module.bsl +++ b/SSL/src/CommonModules/РаботаСПочтовымиСообщениямиСлужебный/Module.bsl @@ -1,5 +1,5 @@ /////////////////////////////////////////////////////////////////////////////////////////////////////// -// Copyright (c) 2024, ООО 1С-Софт +// Copyright (c) 2025, ООО 1С-Софт // Все права защищены. Эта программа и сопроводительные материалы предоставляются // в соответствии с условиями лицензии Attribution 4.0 International (CC BY 4.0) // Текст лицензии доступен по ссылке: @@ -546,6 +546,17 @@ Письмо.Отправитель.Адрес = PunycodeВСтроку(Письмо.Отправитель.Адрес); КонецПроцедуры +// См. ОбщегоНазначенияПереопределяемый.ПриДобавленииСерверныхОповещений +Процедура ПриДобавленииСерверныхОповещений(Оповещения) Экспорт + + ИмяОповещения = РаботаСПочтовымиСообщениямиСлужебныйКлиентСервер.ИмяСерверногоОповещения(); + + Оповещение = СерверныеОповещения.НовоеСерверноеОповещение(ИмяОповещения); + Оповещение.ИмяМодуляПолучения = "РаботаСПочтовымиСообщениямиСлужебныйКлиент"; + Оповещения.Вставить(Оповещение.Имя, Оповещение); + +КонецПроцедуры + #КонецОбласти #КонецОбласти @@ -1483,7 +1494,7 @@ ВызватьИсключение; КонецЕсли; - ТекстОшибки = РасширенноеПредставлениеОшибки(ИнформацияОбОшибке, ОбщегоНазначения.КодОсновногоЯзыка()); + ТекстОшибки = РасширенноеПредставлениеОшибки(ИнформацияОбОшибке, ОбщегоНазначения.КодОсновногоЯзыка(), , УчетнаяЗапись); ТекстОшибки = СтроковыеФункцииКлиентСервер.ПодставитьПараметрыВСтроку( НСтр("ru = 'Не удалось подключиться к серверу IMAP: |%1'", ОбщегоНазначения.КодОсновногоЯзыка()), ТекстОшибки); @@ -1601,7 +1612,7 @@ ВызватьИсключение; КонецЕсли; - ТекстОшибки = РасширенноеПредставлениеОшибки(ИнформацияОбОшибке, ОбщегоНазначения.КодОсновногоЯзыка()); + ТекстОшибки = РасширенноеПредставлениеОшибки(ИнформацияОбОшибке, ОбщегоНазначения.КодОсновногоЯзыка(), , УчетнаяЗапись); ЗаписьЖурналаРегистрации(ИмяСобытияОтправкаПочты(), УровеньЖурналаРегистрации.Ошибка, , УчетнаяЗапись, ТекстОшибки); Возврат РезультатыОтправкиПисем; КонецПопытки; @@ -1851,12 +1862,83 @@ КонецФункции -Функция ПоясненияПоОшибке(ТекстОшибки, Знач КодЯзыка = Неопределено, ДляПомощникаНастройки = Ложь) Экспорт +// Возвращает параметры для получения пояснения по ошибке. +// +// Возвращаемое значение: +// Структура: +// * ТекстОшибки - Строка - подробный текст с ошибкой. +// * КодЯзыка - Строка - язык интерфейса, выбранный для текущего пользователя. +// * Контекст - Строка - см. КонтекстДляПояснения. +// * ИменаСерверов - Строка - см. ИменаСерверовДляПояснения. +// +Функция ПараметрыПояснения() Экспорт - Если КодЯзыка = Неопределено Тогда - КодЯзыка = ТекущийЯзык().КодЯзыка; + Результат = Новый Структура; + Результат.Вставить("ТекстОшибки", ""); + Результат.Вставить("КодЯзыка", ТекущийЯзык().КодЯзыка); + Результат.Вставить("Контекст", ""); + Результат.Вставить("ИменаСерверов", ""); + + Возврат Результат; + +КонецФункции + +// Возвращает контекст, для которого требуется получить пояснения по ошибке. +// +// Возвращаемое значение: +// Структура: +// * Ключ - Строка +// * Значение - Строка +// +Функция КонтекстДляПояснения() Экспорт + + Результат = Новый Структура; + Результат.Вставить("АвтоматическаяНастройка", "AutomaticSetting"); + Результат.Вставить("РучнаяНастройка", "ManualSetting"); + Результат.Вставить("ОтправкаПисьма", "SendingEmail"); + + Возврат Результат; + +КонецФункции + +// Возвращает имена серверов почты, через запятую, для которых требуется получить пояснения по ошибке. +// +// Параметры: +// СерверВходящейПочты - Строка +// СерверИсходящейПочты - Строка +// +// Возвращаемое значение: +// Строка +// +Функция ИменаСерверовДляПояснения(СерверВходящейПочты, СерверИсходящейПочты) Экспорт + + Если ПустаяСтрока(СерверВходящейПочты) И ПустаяСтрока(СерверИсходящейПочты) Тогда + Возврат ""; КонецЕсли; + Результат = Новый Массив; + Результат.Добавить(СерверВходящейПочты); + Результат.Добавить(СерверИсходящейПочты); + + Возврат СтрСоединить(Результат, ", "); + +КонецФункции + +// Возвращает пояснения по ошибке. +// +// Параметры: +// ПараметрыПояснения - Структура - см. ПараметрыПояснения. +// +// Возвращаемое значение: +// Структура: +// * ВозможныеПричины - Массив +// * СпособыУстранения - Массив +// +Функция ПоясненияПоОшибке(ПараметрыПояснения) Экспорт + + ТекстОшибки = ПараметрыПояснения.ТекстОшибки; + КодЯзыка = ПараметрыПояснения.КодЯзыка; + ОписанияОшибок = Новый Массив; Если ОбщегоНазначения.ПодсистемаСуществует("СтандартныеПодсистемы.ПолучениеФайловИзИнтернета") Тогда @@ -1890,10 +1972,10 @@ КонецЦикла; Для Каждого Элемент Из ОписаниеОшибки["HowToFix"] Цикл - Если Не СпособУстраненияПрименим(Элемент) Тогда + Если Не СпособУстраненияПрименим(Элемент, ПараметрыПояснения) Тогда Продолжить; КонецЕсли; - + СпособУстранения = Элемент[КодЯзыка]; Если СпособУстранения = Неопределено Тогда СпособУстранения = Элемент[ОбщегоНазначения.КодОсновногоЯзыка()]; @@ -1916,7 +1998,7 @@ СпособыУстранения.Добавить(НСтр("ru = 'Проверьте подключение к Интернету.'")); КонецЕсли; - Если ДляПомощникаНастройки Тогда + Если ЭтоАвтоматическаяНастройка(ПараметрыПояснения) Тогда СпособыУстранения.Добавить(НСтр("ru = 'Проверьте введенные настройки.'")); Иначе СпособыУстранения.Добавить(СтроковыеФункцииКлиентСервер.ПодставитьПараметрыВСтроку(НСтр( @@ -1984,26 +2066,88 @@ КонецФункции -Функция СпособУстраненияПрименим(СпособУстранения) +Функция ЭтоАвтоматическаяНастройка(ПараметрыПояснения) + + Возврат ПараметрыПояснения.Контекст = КонтекстДляПояснения().АвтоматическаяНастройка; + +КонецФункции + +Функция СпособУстраненияПрименим(СпособУстранения, ПараметрыПояснения) Результат = Истина; + РасширенныеТеги = СпособУстранения["TagsV2"]; - Теги = СтрРазделить(НРег(СпособУстранения["Tags"]), ","); - Для Каждого Тег Из Теги Цикл - Если Тег = "server" Тогда - Результат = Результат И Не ОбщегоНазначения.ИнформационнаяБазаФайловая(); - КонецЕсли; - КонецЦикла; + Если РасширенныеТеги = Неопределено Тогда + Возврат Результат; + КонецЕсли; + + ПроверитьСпособУстраненияПоКонтексту(Результат, РасширенныеТеги, ПараметрыПояснения); + ПроверитьСпособУстраненияПоПровайдеру(Результат, РасширенныеТеги, ПараметрыПояснения); Возврат Результат; КонецФункции -Функция РасширенноеПредставлениеОшибки(ИнформацияОбОшибке, КодЯзыка, ВключитьПодробноеПредставлениеОшибки = Истина) Экспорт +Процедура ПроверитьСпособУстраненияПоКонтексту(Результат, РасширенныеТеги, ПараметрыПояснения) + + Контексты = РасширенныеТеги.Получить("context"); + + Если Контексты = Неопределено Тогда + Возврат; + КонецЕсли; + + ТекущийКонтекст = ПараметрыПояснения.Контекст; + + Для Каждого Контекст Из Контексты Цикл + + Если Контекст = "ClientServerMode" Тогда + Результат = Результат И Не ОбщегоНазначения.ИнформационнаяБазаФайловая(); + Иначе + Результат = Результат И ТекущийКонтекст = Контекст; + КонецЕсли; + + КонецЦикла; + +КонецПроцедуры + +Процедура ПроверитьСпособУстраненияПоПровайдеру(Результат, РасширенныеТеги, ПараметрыПояснения) + + Провайдеры = РасширенныеТеги.Получить("provider"); + + Если Провайдеры = Неопределено Тогда + Возврат; + КонецЕсли; + + ИменаСерверов = ПараметрыПояснения.ИменаСерверов; + + Для Каждого Провайдер Из Провайдеры Цикл + Результат = Результат И СтрНайти(ИменаСерверов, Провайдер) > 0; + КонецЦикла; + +КонецПроцедуры + +Функция РасширенноеПредставлениеОшибки(ИнформацияОбОшибке, КодЯзыка, + ВключитьПодробноеПредставлениеОшибки = Истина, УчетнаяЗапись = Неопределено) Экспорт КраткоеПредставлениеОшибки = ОбработкаОшибок.КраткоеПредставлениеОшибки(ИнформацияОбОшибке); ПодробноеПредставлениеОшибки = ОбработкаОшибок.ПодробноеПредставлениеОшибки(ИнформацияОбОшибке); - ПоясненияПоОшибке = ПоясненияПоОшибке(КраткоеПредставлениеОшибки, КодЯзыка); + + СерверВходящейПочты = ""; + СерверИсходящейПочты = ""; + + Если ТипЗнч(УчетнаяЗапись) = Тип("СправочникСсылка.УчетныеЗаписиЭлектроннойПочты") Тогда + РеквизитыУчетнойЗаписи = ОбщегоНазначения.ЗначенияРеквизитовОбъекта(УчетнаяЗапись, "СерверВходящейПочты, СерверИсходящейПочты"); + СерверВходящейПочты = РеквизитыУчетнойЗаписи.СерверВходящейПочты; + СерверИсходящейПочты = РеквизитыУчетнойЗаписи.СерверИсходящейПочты; + КонецЕсли; + + ПараметрыПояснения = ПараметрыПояснения(); + ПараметрыПояснения.ТекстОшибки = КраткоеПредставлениеОшибки; + ПараметрыПояснения.КодЯзыка = КодЯзыка; + ПараметрыПояснения.Контекст = КонтекстДляПояснения().ОтправкаПисьма; + ПараметрыПояснения.ИменаСерверов = ИменаСерверовДляПояснения(СерверВходящейПочты, СерверИсходящейПочты); + + ПоясненияПоОшибке = ПоясненияПоОшибке(ПараметрыПояснения); Шаблон = НСтр("ru = '%1 | @@ -2898,11 +3042,79 @@ #КонецОбласти -// См. СтандартныеПодсистемыСервер.ПриОпределенииМетодовРазрешенныхДляВызоваКакПроизвольныйКод -Процедура ПриОпределенииМетодовРазрешенныхДляВызоваКакПроизвольныйКод(Методы) Экспорт +Функция ОткрытаяАвторизацияПочтовогоСервисаОпубликована() Экспорт - Методы.Вставить("ПолучениеСтатусовЭлектронныхПисем", Истина); + СервисОпубликован = Ложь; + АдресПубликацииИнформационнойБазыВИнтернете = ОбщегоНазначения.АдресПубликацииИнформационнойБазыВИнтернете(); -КонецПроцедуры + Если Не ЗначениеЗаполнено(АдресПубликацииИнформационнойБазыВИнтернете) Тогда + Возврат СервисОпубликован; + КонецЕсли; + + Если Не ДоступнаПроверкаПубликацииВстроенногоСервиса() Тогда + Возврат СервисОпубликован; + КонецЕсли; + + СтруктураURI = ОбщегоНазначенияКлиентСервер.СтруктураURI(АдресПубликацииИнформационнойБазыВИнтернете); + + АдресСервера = СтруктураURI.Хост; + АдресРесурса = "/" + СтруктураURI.ПутьНаСервере + "/hs/oauth2_mail/ping"; + Порт = СтруктураURI.Порт; + + Прокси = Неопределено; + Если ОбщегоНазначения.ПодсистемаСуществует("СтандартныеПодсистемы.ПолучениеФайловИзИнтернета") Тогда + МодульПолучениеФайловИзИнтернета = ОбщегоНазначения.ОбщийМодуль("ПолучениеФайловИзИнтернета"); + Прокси = МодульПолучениеФайловИзИнтернета.ПолучитьПрокси("https"); + КонецЕсли; + + ЗащищенноеСоединение = Неопределено; + Если НРег(СтруктураURI.Схема) = НРег("https") Тогда + ЗащищенноеСоединение = ОбщегоНазначенияКлиентСервер.НовоеЗащищенноеСоединение(); + КонецЕсли; + + Попытка + + Запрос = Новый HTTPЗапрос(АдресРесурса); + Соединение = Новый HTTPСоединение(АдресСервера, Порт, , , Прокси, 5, ЗащищенноеСоединение); + + Ответ = Соединение.Получить(Запрос); + СервисОпубликован = Ответ.КодСостояния = 200; + + Исключение + + ШаблонКомментария = НСтр("ru = 'Не удалось проверить публикацию HTTP-сервиса ""Открытая авторизация почтового сервиса"". + | + |Подробное описание: + |%1'"); + + Комментарий = СтроковыеФункцииКлиентСервер.ПодставитьПараметрыВСтроку( + ШаблонКомментария, + ОбработкаОшибок.ПодробноеПредставлениеОшибки(ИнформацияОбОшибке())); + + ЗаписьЖурналаРегистрации( + ИмяСобытияАвторизацияПоПротоколуOAuth(), + УровеньЖурналаРегистрации.Информация, + , + , + Комментарий); + + КонецПопытки; + + Возврат СервисОпубликован; + +КонецФункции + +Функция ДоступнаПроверкаПубликацииВстроенногоСервиса() + + Возврат Не (ОбщегоНазначения.ИнформационнаяБазаФайловая() + И (ОбщегоНазначения.ЭтоВебКлиент() Или ОбщегоНазначения.КлиентПодключенЧерезВебСервер())); + +КонецФункции + +Функция АдресОткрытойАвторизацииПочтовогоСервиса() Экспорт + + Возврат ОбщегоНазначения.АдресПубликацииИнформационнойБазыВИнтернете() + "/hs/oauth2_mail/callback"; + +КонецФункции #КонецОбласти \ No newline at end of file diff --git a/SSL/src/CommonModules/РаботаСПочтовымиСообщениямиСлужебныйКлиент/Module.bsl b/SSL/src/CommonModules/РаботаСПочтовымиСообщениямиСлужебныйКлиент/Module.bsl index 55211bd8e..6971fda5a 100644 --- a/SSL/src/CommonModules/РаботаСПочтовымиСообщениямиСлужебныйКлиент/Module.bsl +++ b/SSL/src/CommonModules/РаботаСПочтовымиСообщениямиСлужебныйКлиент/Module.bsl @@ -1,11 +1,28 @@ /////////////////////////////////////////////////////////////////////////////////////////////////////// -// Copyright (c) 2024, ООО 1С-Софт +// Copyright (c) 2025, ООО 1С-Софт // Все права защищены. Эта программа и сопроводительные материалы предоставляются // в соответствии с условиями лицензии Attribution 4.0 International (CC BY 4.0) // Текст лицензии доступен по ссылке: // https://creativecommons.org/licenses/by/4.0/legalcode /////////////////////////////////////////////////////////////////////////////////////////////////////// +#Область СлужебныйПрограммныйИнтерфейс + +// См. СтандартныеПодсистемыКлиент.ПриПолученииСерверногоОповещения +Процедура ПриПолученииСерверногоОповещения(ИмяОповещения, Результат) Экспорт + + Если ИмяОповещения <> РаботаСПочтовымиСообщениямиСлужебныйКлиентСервер.ИмяСерверногоОповещения() Тогда + Возврат; + КонецЕсли; + + Если Результат.ИмяСобытия = "ОткрытаяАвторизацияПочтовогоСервиса" Тогда + Оповестить("ОткрытаяАвторизацияПочтовогоСервиса", Результат.Контекст); + КонецЕсли; + +КонецПроцедуры + +#КонецОбласти + #Область СлужебныеПроцедурыИФункции Функция ТемаОбращенияВПоддержку(Знач ТехническаяИнформация) Экспорт diff --git a/SSL/src/CommonModules/РаботаСПочтовымиСообщениямиСлужебныйКлиентСервер/Module.bsl b/SSL/src/CommonModules/РаботаСПочтовымиСообщениямиСлужебныйКлиентСервер/Module.bsl index 8401021fa..08dc123fb 100644 --- a/SSL/src/CommonModules/РаботаСПочтовымиСообщениямиСлужебныйКлиентСервер/Module.bsl +++ b/SSL/src/CommonModules/РаботаСПочтовымиСообщениямиСлужебныйКлиентСервер/Module.bsl @@ -1,5 +1,5 @@ /////////////////////////////////////////////////////////////////////////////////////////////////////// -// Copyright (c) 2024, ООО 1С-Софт +// Copyright (c) 2025, ООО 1С-Софт // Все права защищены. Эта программа и сопроводительные материалы предоставляются // в соответствии с условиями лицензии Attribution 4.0 International (CC BY 4.0) // Текст лицензии доступен по ссылке: @@ -33,3 +33,13 @@ КонецФункции #КонецОбласти + +#Область СлужебныеПроцедурыИФункции + +Функция ИмяСерверногоОповещения() Экспорт + + Возврат "СтандартныеПодсистемы.РаботаСПочтовымиСообщениями"; + +КонецФункции + +#КонецОбласти diff --git a/SSL/src/CommonModules/РаботаСФайлами/Module.bsl b/SSL/src/CommonModules/РаботаСФайлами/Module.bsl index 195267fdc..e3dfb1eac 100644 --- a/SSL/src/CommonModules/РаботаСФайлами/Module.bsl +++ b/SSL/src/CommonModules/РаботаСФайлами/Module.bsl @@ -1,5 +1,5 @@ /////////////////////////////////////////////////////////////////////////////////////////////////////// -// Copyright (c) 2024, ООО 1С-Софт +// Copyright (c) 2025, ООО 1С-Софт // Все права защищены. Эта программа и сопроводительные материалы предоставляются // в соответствии с условиями лицензии Attribution 4.0 International (CC BY 4.0) // Текст лицензии доступен по ссылке: @@ -32,50 +32,7 @@ // Функция ДвоичныеДанныеФайла(Знач ПрисоединенныйФайл, Знач ВызыватьИсключение = Истина) Экспорт - ОбщегоНазначенияКлиентСервер.ПроверитьПараметр("РаботаСФайлами.ДвоичныеДанныеФайла", "ПрисоединенныйФайл", - ПрисоединенныйФайл, Метаданные.ОпределяемыеТипы.ПрисоединенныйФайл.Тип); - - ФайлОбъект = РаботаСФайламиСлужебный.ФайлОбъект(ПрисоединенныйФайл); - Если (ФайлОбъект = Неопределено Или ФайлОбъект.ЭтоГруппа) И Не ВызыватьИсключение Тогда - Возврат Неопределено; - КонецЕсли; - - ОбщегоНазначенияКлиентСервер.Проверить(ФайлОбъект <> Неопределено, - СтроковыеФункцииКлиентСервер.ПодставитьПараметрыВСтроку( - НСтр("ru = 'Недопустимое значение параметра %1'"), "ПрисоединенныйФайл"), - "РаботаСФайлами.ДвоичныеДанныеФайла"); - ОбщегоНазначенияКлиентСервер.Проверить(Не ФайлОбъект.ЭтоГруппа, - СтроковыеФункцииКлиентСервер.ПодставитьПараметрыВСтроку( - НСтр("ru = 'Недопустимое значение параметра %1 (папка файлов ""%2"")'"), - "ПрисоединенныйФайл", ОбщегоНазначения.ПредметСтрокой(ПрисоединенныйФайл)), - "РаботаСФайлами.ДвоичныеДанныеФайла"); - - УстановитьОтключениеБезопасногоРежима(Истина); - УстановитьПривилегированныйРежим(Истина); - - Если ФайлОбъект.ПометкаУдаления Тогда - РаботаСФайламиСлужебный.СообщитьОбОшибкеФайлНеНайден(ФайлОбъект, ВызыватьИсключение); - Возврат Неопределено; - КонецЕсли; - - Если ФайлОбъект.ТипХраненияФайла = Перечисления.ТипыХраненияФайлов.ВИнформационнойБазе Тогда - - Результат = ХранилищеФайлаИзИнформационнойБазы(ФайлОбъект.Ссылка); - Если ТипЗнч(Результат) = Тип("ХранилищеЗначения") Тогда - Результат = Результат.Получить(); - Если ТипЗнч(Результат) = Тип("ДвоичныеДанные") Тогда - Возврат Результат; - ИначеЕсли ТипЗнч(Результат) = Тип("Картинка") Тогда - Возврат Результат.ПолучитьДвоичныеДанные(); - КонецЕсли; - КонецЕсли; - - РаботаСФайламиСлужебный.СообщитьОбОшибкеФайлНеНайден(ФайлОбъект, ВызыватьИсключение); - Возврат Неопределено; - - Иначе - Возврат РаботаСФайламиВТомахСлужебный.ДанныеФайла(ПрисоединенныйФайл, ВызыватьИсключение); - КонецЕсли; + Возврат РаботаСФайламиСлужебный.ДвоичныеДанныеФайла(ПрисоединенныйФайл, ВызыватьИсключение); КонецФункции @@ -129,7 +86,7 @@ УстановитьОтключениеБезопасногоРежима(Истина); УстановитьПривилегированныйРежим(Истина); - + Если ЕстьРеквизитТекущаяВерсия Тогда Если РаботаСФайламиСлужебныйПовтИсп.ДедупликацияВыполнена() Тогда ТекстЗапроса = @@ -138,13 +95,23 @@ | ПрисоединенныеФайлы.ТипХраненияФайла КАК ТипХраненияФайла, | ПрисоединенныеФайлы.Том КАК Том, | ПрисоединенныеФайлы.ПометкаУдаления КАК ПометкаУдаления, - | ХранилищеФайлов.ХранилищеДвоичныхДанных.ДвоичныеДанные КАК ХранилищеФайла + | ВЫБОР + | КОГДА ПрисоединенныеФайлы.ТипХраненияФайла = ЗНАЧЕНИЕ(Перечисление.ТипыХраненияФайлов.ВИнформационнойБазе) + | ТОГДА ХранилищеФайлов.ХранилищеДвоичныхДанных.ДвоичныеДанные + | КОГДА ПрисоединенныеФайлы.ТипХраненияФайла = ЗНАЧЕНИЕ(Перечисление.ТипыХраненияФайлов.ВоВнешнемХранилищеДвоичныхДанных) + | ТОГДА ЕСТЬNULL(МестаХраненияДвоичныхДанных.ДвоичныеДанныеВОперационномВнешнемХранилище, НЕОПРЕДЕЛЕНО) + | КОГДА ПрисоединенныеФайлы.ТипХраненияФайла = ЗНАЧЕНИЕ(Перечисление.ТипыХраненияФайлов.ВоВстроенномХранилищеДвоичныхДанных) + | ТОГДА ЕСТЬNULL(МестаХраненияДвоичныхДанных.ДвоичныеДанныеВОперационномВстроенномХранилище, НЕОПРЕДЕЛЕНО) + | ИНАЧЕ НЕОПРЕДЕЛЕНО + | КОНЕЦ КАК ХранилищеФайла |ИЗ | &ТаблицаПрисоединенныеФайлы КАК ПрисоединенныеФайлы | ЛЕВОЕ СОЕДИНЕНИЕ РегистрСведений.ХранилищеФайлов КАК ХранилищеФайлов | ПО ПрисоединенныеФайлы.Ссылка = ХранилищеФайлов.Файл + | ЛЕВОЕ СОЕДИНЕНИЕ РегистрСведений.МестаХраненияДвоичныхДанных КАК МестаХраненияДвоичныхДанных + | ПО (ХранилищеФайлов.ХранилищеДвоичныхДанных = МестаХраненияДвоичныхДанных.ХранилищеДвоичныхДанных) |ГДЕ - | ПрисоединенныеФайлы.Ссылка В (&ПрисоединенныеФайлы) + | ПрисоединенныеФайлы.Ссылка В(&ПрисоединенныеФайлы) | И ПрисоединенныеФайлы.ТекущаяВерсия = ЗНАЧЕНИЕ(Справочник.ВерсииФайлов.ПустаяСсылка) | |ОБЪЕДИНИТЬ ВСЕ @@ -154,13 +121,23 @@ | ПрисоединенныеФайлы.ТипХраненияФайла, | ПрисоединенныеФайлы.Том, | ПрисоединенныеФайлы.ПометкаУдаления, - | ХранилищеФайлов.ХранилищеДвоичныхДанных.ДвоичныеДанные + | ВЫБОР + | КОГДА ПрисоединенныеФайлы.ТипХраненияФайла = ЗНАЧЕНИЕ(Перечисление.ТипыХраненияФайлов.ВИнформационнойБазе) + | ТОГДА ХранилищеФайлов.ХранилищеДвоичныхДанных.ДвоичныеДанные + | КОГДА ПрисоединенныеФайлы.ТипХраненияФайла = ЗНАЧЕНИЕ(Перечисление.ТипыХраненияФайлов.ВоВнешнемХранилищеДвоичныхДанных) + | ТОГДА ЕСТЬNULL(МестаХраненияДвоичныхДанных.ДвоичныеДанныеВОперационномВнешнемХранилище, НЕОПРЕДЕЛЕНО) + | КОГДА ПрисоединенныеФайлы.ТипХраненияФайла = ЗНАЧЕНИЕ(Перечисление.ТипыХраненияФайлов.ВоВстроенномХранилищеДвоичныхДанных) + | ТОГДА ЕСТЬNULL(МестаХраненияДвоичныхДанных.ДвоичныеДанныеВОперационномВстроенномХранилище, НЕОПРЕДЕЛЕНО) + | ИНАЧЕ НЕОПРЕДЕЛЕНО + | КОНЕЦ |ИЗ | &ТаблицаПрисоединенныеФайлы КАК ПрисоединенныеФайлы | ЛЕВОЕ СОЕДИНЕНИЕ РегистрСведений.ХранилищеФайлов КАК ХранилищеФайлов | ПО ПрисоединенныеФайлы.ТекущаяВерсия = ХранилищеФайлов.Файл + | ЛЕВОЕ СОЕДИНЕНИЕ РегистрСведений.МестаХраненияДвоичныхДанных КАК МестаХраненияДвоичныхДанных + | ПО (ХранилищеФайлов.ХранилищеДвоичныхДанных = МестаХраненияДвоичныхДанных.ХранилищеДвоичныхДанных) |ГДЕ - | ПрисоединенныеФайлы.Ссылка В (&ПрисоединенныеФайлы) + | ПрисоединенныеФайлы.Ссылка В(&ПрисоединенныеФайлы) | И ПрисоединенныеФайлы.ТекущаяВерсия <> ЗНАЧЕНИЕ(Справочник.ВерсииФайлов.ПустаяСсылка)"; Иначе ТекстЗапроса = @@ -172,7 +149,15 @@ | ВЫБОР | КОГДА ХранилищеФайлов.Файл ЕСТЬ NULL | ТОГДА УдалитьДвоичныеДанныеФайлов.ДвоичныеДанныеФайла - | ИНАЧЕ ХранилищеФайлов.ХранилищеДвоичныхДанных.ДвоичныеДанные + | ИНАЧЕ ВЫБОР + | КОГДА ПрисоединенныеФайлы.ТипХраненияФайла = ЗНАЧЕНИЕ(Перечисление.ТипыХраненияФайлов.ВИнформационнойБазе) + | ТОГДА ХранилищеФайлов.ХранилищеДвоичныхДанных.ДвоичныеДанные + | КОГДА ПрисоединенныеФайлы.ТипХраненияФайла = ЗНАЧЕНИЕ(Перечисление.ТипыХраненияФайлов.ВоВнешнемХранилищеДвоичныхДанных) + | ТОГДА ЕСТЬNULL(МестаХраненияДвоичныхДанных.ДвоичныеДанныеВОперационномВнешнемХранилище, НЕОПРЕДЕЛЕНО) + | КОГДА ПрисоединенныеФайлы.ТипХраненияФайла = ЗНАЧЕНИЕ(Перечисление.ТипыХраненияФайлов.ВоВстроенномХранилищеДвоичныхДанных) + | ТОГДА ЕСТЬNULL(МестаХраненияДвоичныхДанных.ДвоичныеДанныеВОперационномВстроенномХранилище, НЕОПРЕДЕЛЕНО) + | ИНАЧЕ НЕОПРЕДЕЛЕНО + | КОНЕЦ | КОНЕЦ КАК ХранилищеФайла |ИЗ | &ТаблицаПрисоединенныеФайлы КАК ПрисоединенныеФайлы @@ -180,8 +165,10 @@ | ПО ПрисоединенныеФайлы.Ссылка = ХранилищеФайлов.Файл | ЛЕВОЕ СОЕДИНЕНИЕ РегистрСведений.УдалитьДвоичныеДанныеФайлов КАК УдалитьДвоичныеДанныеФайлов | ПО ПрисоединенныеФайлы.Ссылка = УдалитьДвоичныеДанныеФайлов.Файл + | ЛЕВОЕ СОЕДИНЕНИЕ РегистрСведений.МестаХраненияДвоичныхДанных КАК МестаХраненияДвоичныхДанных + | ПО (ХранилищеФайлов.ХранилищеДвоичныхДанных = МестаХраненияДвоичныхДанных.ХранилищеДвоичныхДанных) |ГДЕ - | ПрисоединенныеФайлы.Ссылка В (&ПрисоединенныеФайлы) + | ПрисоединенныеФайлы.Ссылка В(&ПрисоединенныеФайлы) | И ПрисоединенныеФайлы.ТекущаяВерсия = ЗНАЧЕНИЕ(Справочник.ВерсииФайлов.ПустаяСсылка) | |ОБЪЕДИНИТЬ ВСЕ @@ -194,7 +181,15 @@ | ВЫБОР | КОГДА ХранилищеФайлов.Файл ЕСТЬ NULL | ТОГДА УдалитьДвоичныеДанныеФайлов.ДвоичныеДанныеФайла - | ИНАЧЕ ХранилищеФайлов.ХранилищеДвоичныхДанных.ДвоичныеДанные + | ИНАЧЕ ВЫБОР + | КОГДА ПрисоединенныеФайлы.ТипХраненияФайла = ЗНАЧЕНИЕ(Перечисление.ТипыХраненияФайлов.ВИнформационнойБазе) + | ТОГДА ХранилищеФайлов.ХранилищеДвоичныхДанных.ДвоичныеДанные + | КОГДА ПрисоединенныеФайлы.ТипХраненияФайла = ЗНАЧЕНИЕ(Перечисление.ТипыХраненияФайлов.ВоВнешнемХранилищеДвоичныхДанных) + | ТОГДА ЕСТЬNULL(МестаХраненияДвоичныхДанных.ДвоичныеДанныеВОперационномВнешнемХранилище, НЕОПРЕДЕЛЕНО) + | КОГДА ПрисоединенныеФайлы.ТипХраненияФайла = ЗНАЧЕНИЕ(Перечисление.ТипыХраненияФайлов.ВоВстроенномХранилищеДвоичныхДанных) + | ТОГДА ЕСТЬNULL(МестаХраненияДвоичныхДанных.ДвоичныеДанныеВОперационномВстроенномХранилище, НЕОПРЕДЕЛЕНО) + | ИНАЧЕ НЕОПРЕДЕЛЕНО + | КОНЕЦ | КОНЕЦ |ИЗ | &ТаблицаПрисоединенныеФайлы КАК ПрисоединенныеФайлы @@ -202,8 +197,10 @@ | ПО ПрисоединенныеФайлы.ТекущаяВерсия = ХранилищеФайлов.Файл | ЛЕВОЕ СОЕДИНЕНИЕ РегистрСведений.УдалитьДвоичныеДанныеФайлов КАК УдалитьДвоичныеДанныеФайлов | ПО ПрисоединенныеФайлы.ТекущаяВерсия = УдалитьДвоичныеДанныеФайлов.Файл + | ЛЕВОЕ СОЕДИНЕНИЕ РегистрСведений.МестаХраненияДвоичныхДанных КАК МестаХраненияДвоичныхДанных + | ПО (ХранилищеФайлов.ХранилищеДвоичныхДанных = МестаХраненияДвоичныхДанных.ХранилищеДвоичныхДанных) |ГДЕ - | ПрисоединенныеФайлы.Ссылка В (&ПрисоединенныеФайлы) + | ПрисоединенныеФайлы.Ссылка В(&ПрисоединенныеФайлы) | И ПрисоединенныеФайлы.ТекущаяВерсия <> ЗНАЧЕНИЕ(Справочник.ВерсииФайлов.ПустаяСсылка)"; КонецЕсли; Иначе @@ -214,13 +211,23 @@ | ПрисоединенныеФайлы.ТипХраненияФайла КАК ТипХраненияФайла, | ПрисоединенныеФайлы.Том КАК Том, | ПрисоединенныеФайлы.ПометкаУдаления КАК ПометкаУдаления, - | ХранилищеФайлов.ХранилищеДвоичныхДанных.ДвоичныеДанные КАК ХранилищеФайла + | ВЫБОР + | КОГДА ПрисоединенныеФайлы.ТипХраненияФайла = ЗНАЧЕНИЕ(Перечисление.ТипыХраненияФайлов.ВИнформационнойБазе) + | ТОГДА ХранилищеФайлов.ХранилищеДвоичныхДанных.ДвоичныеДанные + | КОГДА ПрисоединенныеФайлы.ТипХраненияФайла = ЗНАЧЕНИЕ(Перечисление.ТипыХраненияФайлов.ВоВнешнемХранилищеДвоичныхДанных) + | ТОГДА ЕСТЬNULL(МестаХраненияДвоичныхДанных.ДвоичныеДанныеВОперационномВнешнемХранилище, НЕОПРЕДЕЛЕНО) + | КОГДА ПрисоединенныеФайлы.ТипХраненияФайла = ЗНАЧЕНИЕ(Перечисление.ТипыХраненияФайлов.ВоВстроенномХранилищеДвоичныхДанных) + | ТОГДА ЕСТЬNULL(МестаХраненияДвоичныхДанных.ДвоичныеДанныеВОперационномВстроенномХранилище, НЕОПРЕДЕЛЕНО) + | ИНАЧЕ НЕОПРЕДЕЛЕНО + | КОНЕЦ КАК ХранилищеФайла |ИЗ | &ТаблицаПрисоединенныеФайлы КАК ПрисоединенныеФайлы | ЛЕВОЕ СОЕДИНЕНИЕ РегистрСведений.ХранилищеФайлов КАК ХранилищеФайлов | ПО ПрисоединенныеФайлы.Ссылка = ХранилищеФайлов.Файл + | ЛЕВОЕ СОЕДИНЕНИЕ РегистрСведений.МестаХраненияДвоичныхДанных КАК МестаХраненияДвоичныхДанных + | ПО (ХранилищеФайлов.ХранилищеДвоичныхДанных = МестаХраненияДвоичныхДанных.ХранилищеДвоичныхДанных) |ГДЕ - | ПрисоединенныеФайлы.Ссылка В (&ПрисоединенныеФайлы)"; + | ПрисоединенныеФайлы.Ссылка В(&ПрисоединенныеФайлы)"; Иначе ТекстЗапроса = "ВЫБРАТЬ @@ -231,7 +238,15 @@ | ВЫБОР | КОГДА ХранилищеФайлов.Файл ЕСТЬ NULL | ТОГДА УдалитьДвоичныеДанныеФайлов.ДвоичныеДанныеФайла - | ИНАЧЕ ХранилищеФайлов.ХранилищеДвоичныхДанных.ДвоичныеДанные + | ИНАЧЕ ВЫБОР + | КОГДА ПрисоединенныеФайлы.ТипХраненияФайла = ЗНАЧЕНИЕ(Перечисление.ТипыХраненияФайлов.ВИнформационнойБазе) + | ТОГДА ХранилищеФайлов.ХранилищеДвоичныхДанных.ДвоичныеДанные + | КОГДА ПрисоединенныеФайлы.ТипХраненияФайла = ЗНАЧЕНИЕ(Перечисление.ТипыХраненияФайлов.ВоВнешнемХранилищеДвоичныхДанных) + | ТОГДА ЕСТЬNULL(МестаХраненияДвоичныхДанных.ДвоичныеДанныеВОперационномВнешнемХранилище, НЕОПРЕДЕЛЕНО) + | КОГДА ПрисоединенныеФайлы.ТипХраненияФайла = ЗНАЧЕНИЕ(Перечисление.ТипыХраненияФайлов.ВоВстроенномХранилищеДвоичныхДанных) + | ТОГДА ЕСТЬNULL(МестаХраненияДвоичныхДанных.ДвоичныеДанныеВОперационномВстроенномХранилище, НЕОПРЕДЕЛЕНО) + | ИНАЧЕ НЕОПРЕДЕЛЕНО + | КОНЕЦ | КОНЕЦ КАК ХранилищеФайла |ИЗ | &ТаблицаПрисоединенныеФайлы КАК ПрисоединенныеФайлы @@ -239,8 +254,10 @@ | ПО ПрисоединенныеФайлы.Ссылка = ХранилищеФайлов.Файл | ЛЕВОЕ СОЕДИНЕНИЕ РегистрСведений.УдалитьДвоичныеДанныеФайлов КАК УдалитьДвоичныеДанныеФайлов | ПО ПрисоединенныеФайлы.Ссылка = УдалитьДвоичныеДанныеФайлов.Файл + | ЛЕВОЕ СОЕДИНЕНИЕ РегистрСведений.МестаХраненияДвоичныхДанных КАК МестаХраненияДвоичныхДанных + | ПО (ХранилищеФайлов.ХранилищеДвоичныхДанных = МестаХраненияДвоичныхДанных.ХранилищеДвоичныхДанных) |ГДЕ - | ПрисоединенныеФайлы.Ссылка В (&ПрисоединенныеФайлы)"; + | ПрисоединенныеФайлы.Ссылка В(&ПрисоединенныеФайлы)"; КонецЕсли; КонецЕсли; @@ -251,7 +268,7 @@ ДвоичныеДанныеФайлов = Новый Соответствие; Пока Выборка.Следующий() Цикл - Если Выборка.ТипХраненияФайла = Перечисления.ТипыХраненияФайлов.ВИнформационнойБазе Тогда + Если РаботаСФайламиВХранилищеДвоичныхДанныхСлужебный.ТипХраненияНеИспользуетДиски(Выборка.ТипХраненияФайла) Тогда ДвоичныеДанные = Неопределено; Если Выборка.ХранилищеФайла <> Null Тогда ДвоичныеДанные = Выборка.ХранилищеФайла.Получить(); @@ -358,12 +375,14 @@ ВызыватьИсключение = ?(ДополнительныеПараметры.Свойство("ВызыватьИсключение"), ДополнительныеПараметры.ВызыватьИсключение, Истина); ПолучатьСсылкуНаДвоичныеДанные = ?(ДополнительныеПараметры.Свойство("ПолучатьСсылкуНаДвоичныеДанные"), ДополнительныеПараметры.ПолучатьСсылкуНаДвоичныеДанные, Истина); + ПараметрыПолученияФайла = ?(ДополнительныеПараметры.Свойство("ПараметрыПолученияФайла"), ДополнительныеПараметры.ПараметрыПолученияФайла, Неопределено); Иначе ДляРедактирования = УдалитьДляРедактирования; ИдентификаторФормы = ДополнительныеПараметры; ВызыватьИсключение = Истина; ПолучатьСсылкуНаДвоичныеДанные = УдалитьПолучатьСсылкуНаДвоичныеДанные; + ПараметрыПолученияФайла = Неопределено; КонецЕсли; ОбновлениеИнформационнойБазы.ПроверитьОбъектОбработан(ПрисоединенныйФайл); @@ -409,13 +428,43 @@ И ПрисоединенныйФайл.ХранитьВерсии И ЗначениеЗаполнено(ПрисоединенныйФайл.ТекущаяВерсия); Если ПолучатьСсылкуНаДвоичныеДанные Тогда + Если ИспользуетсяВерсионированиеФайлов Тогда - ДвоичныеДанные = ДвоичныеДанныеФайла(ПрисоединенныйФайл.ТекущаяВерсия, ВызыватьИсключение); + ПрисоединенныйФайлТекущаяВерсия = ПрисоединенныйФайл.ТекущаяВерсия; Иначе - ДвоичныеДанные = ДвоичныеДанныеФайла(ПрисоединенныйФайл, ВызыватьИсключение); + ПрисоединенныйФайлТекущаяВерсия = ПрисоединенныйФайл; КонецЕсли; - Если ТипЗнч(ИдентификаторФормы) = Тип("УникальныйИдентификатор") Тогда - СсылкаНаДвоичныеДанныеФайла = ПоместитьВоВременноеХранилище(ДвоичныеДанные, ИдентификаторФормы); + + ПроверятьНаличиеФайлаВАрхиве = Истина; + ПолучениеФайлаИзАрхива = Ложь; + + Если ТипЗнч(ПараметрыПолученияФайла) = Тип("Структура") Тогда + ПроверятьНаличиеФайлаВАрхиве = ПараметрыПолученияФайла.ПроверятьНаличиеФайлаВАрхиве; + + Если Не ПроверятьНаличиеФайлаВАрхиве Тогда + ПолучениеФайлаИзАрхива = ПараметрыПолученияФайла.ФайлВАрхиве; + КонецЕсли; + КонецЕсли; + + Если ПроверятьНаличиеФайлаВАрхиве Тогда + ПолучениеФайлаИзАрхива = РаботаСФайламиСлужебный.ФайлНаходитсяВФайловомАрхиве(ПрисоединенныйФайл, ПрисоединенныйФайлТекущаяВерсия); + КонецЕсли; + + ДвоичныеДанные = РаботаСФайламиСлужебный.ДвоичныеДанныеФайла(ПрисоединенныйФайлТекущаяВерсия, ВызыватьИсключение, ПолучениеФайлаИзАрхива); + + Если ПолучениеФайлаИзАрхива Тогда + ДвоичныеДанные = РаботаСФайловымАрхивомСервер.ДвоичныеДанныеФайлаИзвлеченногоИзZipАрхива(ДвоичныеДанные, ПрисоединенныйФайлТекущаяВерсия); + КонецЕсли; + + АдресДвоичныхДанныхВоВременномХранилище = ""; + Если ТипЗнч(ПараметрыПолученияФайла) = Тип("Структура") И ЗначениеЗаполнено(ПараметрыПолученияФайла.АдресВРодительскомСеансе) Тогда + АдресДвоичныхДанныхВоВременномХранилище = ПараметрыПолученияФайла.АдресВРодительскомСеансе; + ИначеЕсли ТипЗнч(ИдентификаторФормы) = Тип("УникальныйИдентификатор") Тогда + АдресДвоичныхДанныхВоВременномХранилище = ИдентификаторФормы; + КонецЕсли; + + Если ЗначениеЗаполнено(АдресДвоичныхДанныхВоВременномХранилище) Тогда + СсылкаНаДвоичныеДанныеФайла = ПоместитьВоВременноеХранилище(ДвоичныеДанные, АдресДвоичныхДанныхВоВременномХранилище); Иначе СсылкаНаДвоичныеДанныеФайла = ПоместитьВоВременноеХранилище(ДвоичныеДанные); КонецЕсли; @@ -911,9 +960,11 @@ Если Не ЗначениеЗаполнено(ПрисоединенныйФайл.Изменил) Тогда ПрисоединенныйФайл.Изменил = Пользователи.АвторизованныйПользователь(); КонецЕсли; - + + РаботаСФайловымАрхивомСервер.ЗаполнитьСвойстваФайлаПоСуществующемуЭлементуХранилищаДвоичныхДанных(ПрисоединенныйФайл, ДвоичныеДанные); + Контекст = РаботаСФайламиСлужебный.КонтекстОбновленияФайла(ПрисоединенныйФайл, АдресФайлаВоВременномХранилище, - НоваяСсылкаНаФайл); + НоваяСсылкаНаФайл, ПрисоединенныйФайл.ТипХраненияФайла); МенеджерФайла = РаботаСФайламиСлужебный.МенеджерФайлов(ПрисоединенныйФайл); МенеджерФайла.ПередОбновлениемДанныхФайла(Контекст); @@ -2042,11 +2093,11 @@ ПрисоединенныйФайл.Записать(); - Если ПрисоединенныйФайл.ТипХраненияФайла = Перечисления.ТипыХраненияФайлов.ВИнформационнойБазе Тогда + Если РаботаСФайламиВХранилищеДвоичныхДанныхСлужебный.ТипХраненияНеИспользуетДиски(ПрисоединенныйФайл.ТипХраненияФайла) Тогда // @skip-check query-in-loop - по-объектная запись данных ХранилищеФайла = ХранилищеФайлаИзИнформационнойБазы(ТекущаяВерсияОбъект.Ссылка); - - РегистрыСведений.ХранилищеФайлов.ЗаписатьДвоичныеДанные(СсылкаНового, ХранилищеФайла.Получить()); + ПараметрыЗаписиВИБ = РаботаСФайловымАрхивомСервер.ЗаполненныеПараметрыЗаписиВИнформационнуюБазу(ПрисоединенныйФайл); + РегистрыСведений.ХранилищеФайлов.ЗаписатьДвоичныеДанные(СсылкаНового, ХранилищеФайла.Получить(), ПараметрыЗаписиВИБ); КонецЕсли; ТекущаяВерсияОбъект.ПометкаУдаления = Истина; @@ -2187,14 +2238,16 @@ ПрисоединенныйФайл.Записать(); - Если ПрисоединенныйФайл.ТипХраненияФайла = Перечисления.ТипыХраненияФайлов.ВИнформационнойБазе Тогда + Если РаботаСФайламиВХранилищеДвоичныхДанныхСлужебный.ТипХраненияНеИспользуетДиски(ПрисоединенныйФайл.ТипХраненияФайла) Тогда ХранилищеФайла = ХранилищеФайлаИзИнформационнойБазы(ТекущаяВерсияОбъект.Ссылка); // Если двоичные данных файла отсутствуют в информационной базе, то пропускаем их перенос, но карточку файла оставляем. // Это возможно после выполнения очистки ненужных файлов или вследствие ошибок некорректного обмена или импорта. Если ХранилищеФайла <> Неопределено Тогда + ПараметрыЗаписиВИБ = РаботаСФайловымАрхивомСервер.ЗаполненныеПараметрыЗаписиВИнформационнуюБазу(ПрисоединенныйФайл); + УстановитьПривилегированныйРежим(Истина); - РегистрыСведений.ХранилищеФайлов.ЗаписатьДвоичныеДанные(СсылкаНового, ХранилищеФайла.Получить()); + РегистрыСведений.ХранилищеФайлов.ЗаписатьДвоичныеДанные(СсылкаНового, ХранилищеФайла.Получить(), ПараметрыЗаписиВИБ); УстановитьПривилегированныйРежим(Ложь); КонецЕсли; КонецЕсли; @@ -2350,23 +2403,27 @@ // // Параметры: // ФайлСсылка - ссылка на файл или его версию. +// ПолучениеФайлаИзАрхива - Булево // // Возвращаемое значение: // ХранилищеЗначения - двоичные данные файла. // -Функция ХранилищеФайлаИзИнформационнойБазы(ФайлСсылка) Экспорт +Функция ХранилищеФайлаИзИнформационнойБазы(ФайлСсылка, ПолучениеФайлаИзАрхива = Ложь) Экспорт УстановитьОтключениеБезопасногоРежима(Истина); УстановитьПривилегированныйРежим(Истина); + ТипХраненияФайла = ОбщегоНазначения.ЗначениеРеквизитаОбъекта(ФайлСсылка, "ТипХраненияФайла"); + + Если Не ЗначениеЗаполнено(ТипХраненияФайла) Тогда + ВызватьИсключение(СтроковыеФункцииКлиентСервер.ПодставитьПараметрыВСтроку( + НСтр("ru = 'Не удалось определить тип хранения файла: %1 в функции: %2'"), + Строка(ФайлСсылка), "РаботаСФайлами.ХранилищеФайлаИзИнформационнойБазы"), + КатегорияОшибки.ОшибкаКонфигурации); + КонецЕсли; + Запрос = Новый Запрос; - Запрос.Текст = - "ВЫБРАТЬ - | ХранилищеФайлов.ХранилищеДвоичныхДанных.ДвоичныеДанные КАК ДвоичныеДанныеФайла - |ИЗ - | РегистрСведений.ХранилищеФайлов КАК ХранилищеФайлов - |ГДЕ - | ХранилищеФайлов.Файл = &ФайлСсылка"; + Запрос.Текст = ПолучитьТекстЗапросаДляПолученияДвоичныхДанныхФайла(ТипХраненияФайла, ПолучениеФайлаИзАрхива); Запрос.УстановитьПараметр("ФайлСсылка", ФайлСсылка); Выборка = Запрос.Выполнить().Выбрать(); @@ -2392,6 +2449,39 @@ КонецФункции +// Возвращает текст запроса для получения двоичных данных файла +// +Функция ПолучитьТекстЗапросаДляПолученияДвоичныхДанныхФайла(ТипХраненияФайла, ПолучениеФайлаИзАрхива = Ложь) + + Если ТипХраненияФайла = Перечисления.ТипыХраненияФайлов.ВИнформационнойБазе Тогда + Результат = + "ВЫБРАТЬ + | ХранилищеФайлов.ХранилищеДвоичныхДанных.ДвоичныеДанные КАК ДвоичныеДанныеФайла + |ИЗ + | РегистрСведений.ХранилищеФайлов КАК ХранилищеФайлов + |ГДЕ + | ХранилищеФайлов.Файл = &ФайлСсылка"; + Иначе + Результат = + "ВЫБРАТЬ + | &ДвоичныеДанные КАК ДвоичныеДанныеФайла + |ИЗ + | РегистрСведений.ХранилищеФайлов КАК ХранилищеФайлов + | ВНУТРЕННЕЕ СОЕДИНЕНИЕ РегистрСведений.МестаХраненияДвоичныхДанных КАК МестаХраненияДвоичныхДанных + | ПО ХранилищеФайлов.ХранилищеДвоичныхДанных = МестаХраненияДвоичныхДанных.ХранилищеДвоичныхДанных + |ГДЕ + | ХранилищеФайлов.Файл = &ФайлСсылка"; + + ИмяРеквизитаХраненияДвоичныхДанных = РаботаСФайламиВХранилищеДвоичныхДанныхСлужебный.ОпределитьРеквизитХраненияДвоичныхДанныхПоТипуХраненияФайлов(ТипХраненияФайла, ПолучениеФайлаИзАрхива); + + Результат = СтрЗаменить(Результат, "&ДвоичныеДанные", "МестаХраненияДвоичныхДанных." + ИмяРеквизитаХраненияДвоичныхДанных); + + КонецЕсли; + + Возврат Результат; + +КонецФункции + #КонецОбласти #Область ОбработчикиПодписокНаСобытия @@ -2612,8 +2702,10 @@ Перем ДвоичныеДанныеФайла; Если Источник.ДополнительныеСвойства.Свойство("ДвоичныеДанныеФайла", ДвоичныеДанныеФайла) Тогда + ПараметрыЗаписиВИБ = РаботаСФайловымАрхивомСервер.ЗаполненныеПараметрыЗаписиВИнформационнуюБазу(Источник); + УстановитьПривилегированныйРежим(Истина); - РегистрыСведений.ХранилищеФайлов.ЗаписатьДвоичныеДанные(Источник.Ссылка, ДвоичныеДанныеФайла); + РегистрыСведений.ХранилищеФайлов.ЗаписатьДвоичныеДанные(Источник.Ссылка, ДвоичныеДанныеФайла, ПараметрыЗаписиВИБ); УстановитьПривилегированныйРежим(Ложь); Источник.ДополнительныеСвойства.Удалить("ДвоичныеДанныеФайла"); diff --git a/SSL/src/CommonModules/РаботаСФайламиВТомахСлужебный/Module.bsl b/SSL/src/CommonModules/РаботаСФайламиВТомахСлужебный/Module.bsl index 95a7ba80f..dbe8bbec6 100644 --- a/SSL/src/CommonModules/РаботаСФайламиВТомахСлужебный/Module.bsl +++ b/SSL/src/CommonModules/РаботаСФайламиВТомахСлужебный/Module.bsl @@ -1,5 +1,5 @@ /////////////////////////////////////////////////////////////////////////////////////////////////////// -// Copyright (c) 2024, ООО 1С-Софт +// Copyright (c) 2025, ООО 1С-Софт // Все права защищены. Эта программа и сопроводительные материалы предоставляются // в соответствии с условиями лицензии Attribution 4.0 International (CC BY 4.0) // Текст лицензии доступен по ссылке: @@ -44,8 +44,16 @@ // Возвращаемое значение: // Булево // -Функция ЕстьТомаХраненияФайлов() Экспорт - +Функция ЕстьТомаХраненияФайлов(Знач ВидТомаХраненияФайлов = Неопределено, Знач СпособХраненияФайлов = Неопределено) Экспорт + + Если ВидТомаХраненияФайлов = Неопределено Тогда + ВидТомаХраненияФайлов = Перечисления.ВидыХраненияФайлов.ОперационноеХранение; + КонецЕсли; + + Если СпособХраненияФайлов = Неопределено Тогда + СпособХраненияФайлов = Перечисления.СпособыХраненияФайлов.ВСетевыхКаталогах; + КонецЕсли; + Запрос = Новый Запрос; Запрос.Текст = "ВЫБРАТЬ ПЕРВЫЕ 1 @@ -53,8 +61,15 @@ |ИЗ | Справочник.ТомаХраненияФайлов КАК ТомаХраненияФайлов |ГДЕ - | ТомаХраненияФайлов.ПометкаУдаления = ЛОЖЬ"; - + | ТомаХраненияФайлов.ПометкаУдаления = ЛОЖЬ + | И ТомаХраненияФайлов.ВидТомаХраненияФайлов = &ВидТомаХраненияФайлов + | И (&ЛюбойСпособХраненияФайлов + | ИЛИ ТомаХраненияФайлов.СпособХраненияФайлов = &СпособХраненияФайлов)"; + + Запрос.УстановитьПараметр("ВидТомаХраненияФайлов" , ВидТомаХраненияФайлов); + Запрос.УстановитьПараметр("СпособХраненияФайлов" , СпособХраненияФайлов); + Запрос.УстановитьПараметр("ЛюбойСпособХраненияФайлов" , СпособХраненияФайлов = "ВТомахСЛюбымСпособомХранения"); + УстановитьОтключениеБезопасногоРежима(Истина); УстановитьПривилегированныйРежим(Истина); Возврат НЕ Запрос.Выполнить().Пустой(); @@ -71,6 +86,8 @@ // ПрисоединенныйФайл - ОпределяемыйТип.ПрисоединенныйФайл - ссылка на элемент справочника с файлом. // ВызыватьИсключение - Булево - если указать Ложь, то функция будет возвращать Неопределено // вместо вызова исключений. Значение по умолчанию - Истина. +// ПолучениеФайлаИзАрхива - Булево. +// Значение по умолчанию - Ложь. // // Возвращаемое значение: // ДвоичныеДанные, Неопределено - двоичные данные присоединенного файла. Если двоичные данные файла не найдены @@ -78,14 +95,14 @@ // найдены и параметр ВызыватьИсключение принимает значение Ложь, тогда // возвращаемое значение - Неопределено. // -Функция ДанныеФайла(ПрисоединенныйФайл, Знач ВызыватьИсключение = Истина) Экспорт - +Функция ДанныеФайла(ПрисоединенныйФайл, Знач ВызыватьИсключение = Истина, ПолучениеФайлаИзАрхива = Ложь) Экспорт + СвойстваФайла = СвойстваФайлаВТоме(ПрисоединенныйФайл); Попытка Возврат Новый ДвоичныеДанные(ПолноеИмяФайлаВТоме(СвойстваФайла)); Исключение ФайлОбъект = РаботаСФайламиСлужебный.ФайлОбъект(ПрисоединенныйФайл); - РаботаСФайламиСлужебный.СообщитьОбОшибкеФайлНеНайден(ФайлОбъект, ВызыватьИсключение); + РаботаСФайламиСлужебный.СообщитьОбОшибкеФайлНеНайден(ФайлОбъект, ВызыватьИсключение, ПолучениеФайлаИзАрхива); Возврат Неопределено; КонецПопытки; @@ -151,7 +168,7 @@ ЗаполнитьСведенияОФайле(ПрисоединенныйФайл, ДвоичныеДанныеИлиПуть, ДатаДляРазмещенияВТоме, ЗаполнятьСлужебныйРеквизитХранилище, ТомДляРазмещения); - Если ПрисоединенныйФайл.ТипХраненияФайла <> Перечисления.ТипыХраненияФайлов.ВИнформационнойБазе Тогда + Если ПрисоединенныйФайл.ТипХраненияФайла = Перечисления.ТипыХраненияФайлов.ВТомахНаДиске Тогда ЗаписатьДанныеФайлаВТом(ПрисоединенныйФайл, ДвоичныеДанныеИлиПуть); КонецЕсли; @@ -226,34 +243,44 @@ КонецЕсли; Если ТипХраненияФайла = Перечисления.ТипыХраненияФайлов.ВИнформационнойБазе Тогда - + + ПрисоединенныйФайл.ТипХраненияФайла = Перечисления.ТипыХраненияФайлов.ВИнформационнойБазе; + ПрисоединенныйФайл.Том = Неопределено; + ПрисоединенныйФайл.ПутьКФайлу = ""; + + ПараметрыЗаписиВИБ = РаботаСФайловымАрхивомСервер.ЗаполненныеПараметрыЗаписиВИнформационнуюБазу(ПрисоединенныйФайл); + СсылкаНаФайл = ПрисоединенныйФайл.Ссылка; Если Не ЗначениеЗаполнено(СсылкаНаФайл) Тогда МетаданныеПрисоединенныйФайл = ПрисоединенныйФайл.Метаданные(); // ОбъектМетаданных СсылкаНаФайл = Справочники[МетаданныеПрисоединенныйФайл.Имя].ПолучитьСсылку(); ПрисоединенныйФайл.УстановитьСсылкуНового(СсылкаНаФайл); КонецЕсли; - + ДанныеФайла = ?(ТипЗнч(ДвоичныеДанныеИлиПуть) = Тип("Строка"), Новый ДвоичныеДанные(ДвоичныеДанныеИлиПуть), ДвоичныеДанныеИлиПуть); - РаботаСФайламиСлужебный.ЗаписатьФайлВИнформационнуюБазу(СсылкаНаФайл, ДанныеФайла); + РаботаСФайламиСлужебный.ЗаписатьФайлВИнформационнуюБазу(СсылкаНаФайл, ДанныеФайла, ПараметрыЗаписиВИБ); - ПрисоединенныйФайл.ТипХраненияФайла = Перечисления.ТипыХраненияФайлов.ВИнформационнойБазе; - ПрисоединенныйФайл.Том = Неопределено; - ПрисоединенныйФайл.ПутьКФайлу = ""; Если ЗаполнятьСлужебныйРеквизитХранилище Тогда - ПрисоединенныйФайл.ФайлХранилище = Новый ХранилищеЗначения(ДанныеФайла, Новый СжатиеДанных(9)); + ПрисоединенныйФайл.ФайлХранилище = Новый ХранилищеЗначения(ДанныеФайла, Новый СжатиеДанных(9)); КонецЕсли; Иначе - + Если ЗначениеЗаполнено(ТомДляРазмещения) Тогда ПрисоединенныйФайл.Том = ТомДляРазмещения; Иначе - ПрисоединенныйФайл.Том = СвободныйТом(ПрисоединенныйФайл); + ПрисоединенныйФайл.Том = РаботаСФайловымАрхивомСервер.СвободныйТомХраненияПоТипуХраненияФайлов(ПрисоединенныйФайл, + ТипХраненияФайла, + Перечисления.ВидыХраненияФайлов.ОперационноеХранение); КонецЕсли; - ПрисоединенныйФайл.ТипХраненияФайла = Перечисления.ТипыХраненияФайлов.ВТомахНаДиске; + Если ТипХраненияФайла = Перечисления.ТипыХраненияФайлов.ВТомахТомНеОпределен Тогда + ПрисоединенныйФайл.ТипХраненияФайла = РаботаСФайловымАрхивомСервер.ТипХраненияПоТомуХраненияФайлов(ПрисоединенныйФайл.Том); + ИначеЕсли ПрисоединенныйФайл.ТипХраненияФайла <> ТипХраненияФайла Тогда + ПрисоединенныйФайл.ТипХраненияФайла = ТипХраненияФайла; + КонецЕсли; + СвойстваФайла = СвойстваФайлаВТоме(); ЗаполнитьЗначенияСвойств(СвойстваФайла, ПрисоединенныйФайл); Если СвойстваФайла.ВладелецФайла = Неопределено @@ -262,11 +289,16 @@ ПрисоединенныйФайл.Владелец, "ВладелецФайла"); КонецЕсли; - ПутьКТому = ПолныйПутьТома(ПрисоединенныйФайл.Том); - ПутьКФайлу = ПолноеИмяФайлаВТоме(СвойстваФайла, ДатаДляРазмещенияВТоме); - - ПрисоединенныйФайл.ПутьКФайлу = Сред(ПутьКФайлу, СтрДлина(ПутьКТому) + 1); - ПрисоединенныйФайл.ДополнительныеСвойства.Вставить("ПутьКТому", ПутьКТому); + Если ПрисоединенныйФайл.ТипХраненияФайла = Перечисления.ТипыХраненияФайлов.ВТомахНаДиске Тогда + ПутьКТому = ПолныйПутьТома(ПрисоединенныйФайл.Том); + ПутьКФайлу = ПолноеИмяФайлаВТоме(СвойстваФайла, ДатаДляРазмещенияВТоме); + + ПрисоединенныйФайл.ПутьКФайлу = Сред(ПутьКФайлу, СтрДлина(ПутьКТому) + 1); + ПрисоединенныйФайл.ДополнительныеСвойства.Вставить("ПутьКТому", ПутьКТому); + Иначе + ПрисоединенныйФайл.ПутьКФайлу = ""; + КонецЕсли; + Если ЗаполнятьСлужебныйРеквизитХранилище Тогда ПрисоединенныйФайл.ФайлХранилище = Новый ХранилищеЗначения(Неопределено); КонецЕсли; @@ -747,7 +779,7 @@ #КонецОбласти -// Возвращает признак того, что файлы могут храниться в томах. +// Возвращает признак того, что файлы могут храниться в томах на дисках. // // Возвращаемое значение: // Булево @@ -756,8 +788,8 @@ УстановитьПривилегированныйРежим(Истина); СпособХраненияФайлов = Константы.СпособХраненияФайлов.Получить(); - Возврат СпособХраненияФайлов = "ВТомахНаДиске" - Или СпособХраненияФайлов = "ВИнформационнойБазеИТомахНаДиске"; + + Возврат РаботаСФайламиКлиентСервер.ХранитьФайлыВТомах(СпособХраненияФайлов); КонецФункции @@ -1490,9 +1522,14 @@ Процедура ПередОбновлениемДанныхФайла(Контекст) Экспорт Контекст.ИзменяемыеРеквизиты.Вставить("ПутьКФайлу", ""); Контекст.ИзменяемыеРеквизиты.Вставить("Том", Справочники.ТомаХраненияФайлов.ПустаяСсылка()); + Контекст.ИзменяемыеРеквизиты.Вставить("ТипХраненияФайла", Неопределено); Если НЕ Контекст.ЭтоНовый Тогда - СвойстваФайла = СвойстваФайлаВТоме(Контекст.ПрисоединенныйФайл); - Контекст.СтарыйПутьКФайлу = ПолноеИмяФайлаВТоме(СвойстваФайла); + ТипХраненияФайлаПроверяемый = Контекст.ПараметрыДобавленияФайла.ТипХраненияФайла; + Если ТипХраненияФайлаПроверяемый <> Перечисления.ТипыХраненияФайлов.ВоВнешнемХранилищеДвоичныхДанных + И ТипХраненияФайлаПроверяемый <> Перечисления.ТипыХраненияФайлов.ВоВстроенномХранилищеДвоичныхДанных Тогда + СвойстваФайла = СвойстваФайлаВТоме(Контекст.ПрисоединенныйФайл); + Контекст.СтарыйПутьКФайлу = ПолноеИмяФайлаВТоме(СвойстваФайла); + КонецЕсли; КонецЕсли; КонтейнерСвойствФайла = ПараметрыДобавленияФайла(); @@ -1501,11 +1538,12 @@ КонтейнерСвойствФайла.ПутьКФайлу = ""; // Всегда будем создавать новую версию в томе, не затирая старую. УстановитьОтключениеБезопасногоРежима(Истина); - ДобавитьФайл(КонтейнерСвойствФайла, Контекст.ДанныеФайла); + ДобавитьФайл(КонтейнерСвойствФайла, Контекст.ДанныеФайла,,,КонтейнерСвойствФайла.Том); УстановитьОтключениеБезопасногоРежима(Ложь); - + Контекст.ИзменяемыеРеквизиты.ПутьКФайлу = КонтейнерСвойствФайла.ПутьКФайлу; Контекст.ИзменяемыеРеквизиты.Том = КонтейнерСвойствФайла.Том; + Контекст.ИзменяемыеРеквизиты.ТипХраненияФайла = КонтейнерСвойствФайла.ТипХраненияФайла; КонецПроцедуры // Вызывается в транзакции модификации. @@ -1718,20 +1756,19 @@ БлокировкаДанных.Заблокировать(); Объект = СсылкаНаФайл.ПолучитьОбъект(); // ОпределяемыйТип.ПрисоединенныйФайлОбъект - Объект.ТипХраненияФайла = РаботаСФайламиСлужебный.ТипХраненияФайла(Объект.Размер, Объект.Расширение); - - Если ТипХраненияФайла = Перечисления.ТипыХраненияФайлов.ВИнформационнойБазе Тогда - + + ДвоичныеДанные = Новый ДвоичныеДанные(ПолныйПутьФайлаВТоме); + + РаботаСФайловымАрхивомСервер.ЗаполнитьПараметрыХраненияФайла(Объект, ДвоичныеДанные, Объект.Размер, Объект.Расширение); + + Если РаботаСФайламиВХранилищеДвоичныхДанныхСлужебный.ТипХраненияНеИспользуетДиски(Объект.ТипХраненияФайла) Тогда + // В базе-приемнике файлы должны храниться в информационной базе - значит там их и разместим (даже если в исходной // базе они были в томах). - - Объект.Том = Справочники.ТомаХраненияФайлов.ПустаяСсылка(); - Объект.ПутьКФайлу = ""; - Объект.ТипХраненияФайла = Перечисления.ТипыХраненияФайлов.ВИнформационнойБазе; - - ДвоичныеДанные = Новый ДвоичныеДанные(ПолныйПутьФайлаВТоме); - РаботаСФайламиСлужебный.ЗаписатьФайлВИнформационнуюБазу(Объект.Ссылка, ДвоичныеДанные); - + + ПараметрыЗаписиВИБ = РаботаСФайловымАрхивомСервер.ЗаполненныеПараметрыЗаписиВИнформационнуюБазу(Объект); + РаботаСФайламиСлужебный.ЗаписатьФайлВИнформационнуюБазу(Объект.Ссылка, ДвоичныеДанные, ПараметрыЗаписиВИБ); + Иначе // В базе-приемнике файлы должны храниться в томах - переместим разархивированный файл на том. @@ -1740,9 +1777,9 @@ ОбщегоНазначения.СократитьИмяФайла(ИмяФайла); ПолныйПутьНовый = ФайлИсходный.Путь + ИмяФайла; ПереместитьФайл(ПолныйПутьФайлаВТоме, ПолныйПутьНовый); - - ДобавитьФайл(Объект, ПолныйПутьНовый); - + + ДобавитьФайл(Объект, ПолныйПутьНовый,,,Объект.Том); + КонецЕсли; Объект.ДополнительныеСвойства.Вставить("РазмещениеФайловВТомах", Истина); // Чтобы прошла запись подписанных файлов. @@ -1984,7 +2021,10 @@ | ИНАЧЕ ТомаХраненияФайлов.ПолныйПутьLinux | КОНЕЦ КАК ПолныйПуть |ИЗ - | Справочник.ТомаХраненияФайлов КАК ТомаХраненияФайлов"); + | Справочник.ТомаХраненияФайлов КАК ТомаХраненияФайлов + |ГДЕ + | ТомаХраненияФайлов.ВидТомаХраненияФайлов = ЗНАЧЕНИЕ(Перечисление.ВидыХраненияФайлов.ОперационноеХранение) + | И ТомаХраненияФайлов.СпособХраненияФайлов = ЗНАЧЕНИЕ(Перечисление.СпособыХраненияФайлов.ВСетевыхКаталогах)"); Запрос.УстановитьПараметр("ЭтоWindowsСервер", ОбщегоНазначения.ЭтоWindowsСервер()); Результат = Запрос.Выполнить().Выбрать(); @@ -2339,6 +2379,8 @@ // Параметры: // РазмерФайла - Число - размер добавляемого файла в байтах. // РасширениеФайла - Строка - расширение добавляемого файла. +// СпособХраненияФайлов - Строка, Неопределено - доступные значения см. в комментарии константы +// "СпособХраненияФайлов". Значение по умолчанию - Неопределено. // // Возвращаемое значение: // ПеречислениеСсылка.ТипыХраненияФайлов - если способ хранения файлов в настройках @@ -2346,9 +2388,14 @@ // файлов указан ВИнформационнойБазеИТомахНаДиске, то возвращает ВИнформационнойБазе, если // файл соответствует параметрам хранения в информационной базе, иначе ВТомахНаДиске. // -Функция ТипХраненияФайла(Знач РазмерФайла, Знач РасширениеФайла) Экспорт - - ТипХранения = Перечисления.ТипыХраненияФайлов.ВТомахНаДиске; +Функция ТипХраненияФайла(Знач РазмерФайла, Знач РасширениеФайла, Знач СпособХраненияФайлов = Неопределено) Экспорт + + Если СпособХраненияФайлов = Неопределено Тогда + ТипХранения = Перечисления.ТипыХраненияФайлов.ВТомахНаДиске; + Иначе + ТипХранения = РаботаСФайловымАрхивомСервер.ТипХраненияФайлаПоСпособуХранения(СпособХраненияФайлов); + КонецЕсли; + Если ХранитьФайлыВТомахИИнформационнойБазе() Тогда ПараметрыХранения = ПараметрыХраненияФайловВИнформационнойБазе(); @@ -2375,14 +2422,20 @@ // Параметры: // ПрисоединенныйФайл - ОпределяемыйТип.ПрисоединенныйФайлОбъект // - см. РаботаСФайламиВТомахСлужебный.ПараметрыДобавленияФайла +// ВидТомаХраненияФайлов - ПеречислениеСсылка.ВидыХраненияФайлов - вид хранения тома. Значение по умолчанию - Неопределено +// СпособХраненияФайлов - ПеречислениеСсылка.СпособыХраненияФайлов, Строка // // Возвращаемое значение: // СправочникСсылка.ТомаХраненияФайлов // -Функция СвободныйТом(ПрисоединенныйФайл) - +Функция СвободныйТом(ПрисоединенныйФайл, Знач ВидТомаХраненияФайлов = Неопределено, Знач СпособХраненияФайлов = Неопределено) Экспорт + + Если ВидТомаХраненияФайлов = Неопределено Тогда + ВидТомаХраненияФайлов = Перечисления.ВидыХраненияФайлов.ОперационноеХранение; + КонецЕсли; + УстановитьПривилегированныйРежим(Истина); - + Запрос = Новый Запрос; Запрос.Текст = "ВЫБРАТЬ @@ -2392,9 +2445,17 @@ | Справочник.ТомаХраненияФайлов КАК ТомаХраненияФайлов |ГДЕ | ТомаХраненияФайлов.ПометкаУдаления = ЛОЖЬ + | И ТомаХраненияФайлов.ВидТомаХраненияФайлов = &ВидТомаХраненияФайлов + | И (&ЛюбойСпособХраненияФайлов + | ИЛИ ТомаХраненияФайлов.СпособХраненияФайлов = &СпособХраненияФайлов) | |УПОРЯДОЧИТЬ ПО | ТомаХраненияФайлов.ПорядокЗаполнения"; + + Запрос.УстановитьПараметр("ВидТомаХраненияФайлов" , ВидТомаХраненияФайлов); + Запрос.УстановитьПараметр("СпособХраненияФайлов" , СпособХраненияФайлов); + Запрос.УстановитьПараметр("ЛюбойСпособХраненияФайлов" , СпособХраненияФайлов = "ВТомахСЛюбымСпособомХранения"); + Результат = Запрос.Выполнить(); Если Результат.Пустой() Тогда ТекстОшибки = СтроковыеФункцииКлиентСервер.ПодставитьПараметрыВСтроку( diff --git a/SSL/src/CommonModules/РаботаСФайламиВХранилищеДвоичныхДанныхСлужебный/Module.bsl b/SSL/src/CommonModules/РаботаСФайламиВХранилищеДвоичныхДанныхСлужебный/Module.bsl new file mode 100644 index 000000000..5061f8631 --- /dev/null +++ b/SSL/src/CommonModules/РаботаСФайламиВХранилищеДвоичныхДанныхСлужебный/Module.bsl @@ -0,0 +1,104 @@ +/////////////////////////////////////////////////////////////////////////////////////////////////////// +// Copyright (c) 2025, ООО 1С-Софт +// Все права защищены. Эта программа и сопроводительные материалы предоставляются +// в соответствии с условиями лицензии Attribution 4.0 International (CC BY 4.0) +// Текст лицензии доступен по ссылке: +// https://creativecommons.org/licenses/by/4.0/legalcode +/////////////////////////////////////////////////////////////////////////////////////////////////////// + +#Область СлужебныеПроцедурыИФункции + +// Вызывается до начала транзакции. +// Для новых файлов все данные файлы должны быть заполнены. +// +// Параметры: +// Контекст - см. РаботаСФайламиСлужебный.КонтекстОбновленияФайла +// +Процедура ПередОбновлениемДанныхФайла(Контекст) Экспорт + РаботаСФайламиВТомахСлужебный.ПередОбновлениемДанныхФайла(Контекст); +КонецПроцедуры + +// Вызывается в транзакции модификации. +// +// Параметры: +// Контекст - см. РаботаСФайламиСлужебный.КонтекстОбновленияФайла +// ПрисоединенныйФайл - ОпределяемыйТип.ПрисоединенныйФайлОбъект +// +Процедура ПередЗаписьюДанныхФайла(Контекст, ПрисоединенныйФайл) Экспорт + РаботаСФайламиВТомахСлужебный.ПередЗаписьюДанныхФайла(Контекст, ПрисоединенныйФайл); +КонецПроцедуры + +// Вызывается в транзакции модификации после записи присоединенного файла. +// +// Параметры: +// Контекст - см. РаботаСФайламиСлужебный.КонтекстОбновленияФайла +// ПрисоединенныйФайл - ОпределяемыйТип.ПрисоединенныйФайл +// +Процедура ПриОбновленииДанныхФайла(Контекст, ПрисоединенныйФайл) Экспорт + Если ПрисоединенныйФайл.ТипХраненияФайла = Перечисления.ТипыХраненияФайлов.ВТомахНаДиске Тогда + РаботаСФайламиВТомахСлужебный.ПриОбновленииДанныхФайла(Контекст, ПрисоединенныйФайл); + Иначе + РаботаСФайламиСлужебный.ПриОбновленииДанныхФайла(Контекст, ПрисоединенныйФайл); + КонецЕсли; +КонецПроцедуры + +// Параметры: +// Контекст - см. РаботаСФайламиСлужебный.КонтекстОбновленияФайла +// Успешно - Булево - Истина, если транзакция успешно зафиксирована. +// +Процедура ПослеОбновленияДанныхФайла(Контекст, Успешно) Экспорт + РаботаСФайламиСлужебный.ПослеОбновленияДанныхФайла(Контекст, Успешно); +КонецПроцедуры + +// Определяет реквизит хранения двоичных данных, соответствующий заданному типу хранения файлов. +// +// Параметры: +// ТипХраненияФайлов - ПеречислениеСсылка.ТипыХраненияФайлов +// ПолучениеФайлаИзАрхива - Булево +// +// Возвращаемое значение: +// Строка +// +Функция ОпределитьРеквизитХраненияДвоичныхДанныхПоТипуХраненияФайлов(ТипХраненияФайлов, ПолучениеФайлаИзАрхива = Ложь) Экспорт + + Если ТипХраненияФайлов = Перечисления.ТипыХраненияФайлов.ВИнформационнойБазе Тогда + Результат = "ДвоичныеДанные"; + ИначеЕсли ТипХраненияФайлов = Перечисления.ТипыХраненияФайлов.ВоВнешнемХранилищеДвоичныхДанных Тогда + Если ПолучениеФайлаИзАрхива Тогда + Результат = "ДвоичныеДанныеВАрхиве"; + Иначе + Результат = "ДвоичныеДанныеВОперационномВнешнемХранилище"; + КонецЕсли; + ИначеЕсли ТипХраненияФайлов = Перечисления.ТипыХраненияФайлов.ВоВстроенномХранилищеДвоичныхДанных Тогда + Результат = "ДвоичныеДанныеВОперационномВстроенномХранилище"; + Иначе + Результат = ""; + КонецЕсли; + + Возврат Результат; + +КонецФункции + +// Проверяет для типа хранения файлов использование томов хранения файлов, размещающих данные на дисках. +// +// Параметры: +// ТипХраненияФайлов - ПеречислениеСсылка.ТипыХраненияФайлов +// +// Возвращаемое значение: +// Булево +// +Функция ТипХраненияНеИспользуетДиски(ТипХраненияФайла) Экспорт + + Если ТипХраненияФайла = Перечисления.ТипыХраненияФайлов.ВИнформационнойБазе + Или ТипХраненияФайла = Перечисления.ТипыХраненияФайлов.ВоВнешнемХранилищеДвоичныхДанных + Или ТипХраненияФайла = Перечисления.ТипыХраненияФайлов.ВоВстроенномХранилищеДвоичныхДанных Тогда + Результат = Истина; + Иначе + Результат= Ложь; + КонецЕсли; + + Возврат Результат; + +КонецФункции + +#КонецОбласти \ No newline at end of file diff --git a/SSL/src/CommonModules/РаботаСФайламиВХранилищеДвоичныхДанныхСлужебный/РаботаСФайламиВХранилищеДвоичныхДанныхСлужебный.mdo b/SSL/src/CommonModules/РаботаСФайламиВХранилищеДвоичныхДанныхСлужебный/РаботаСФайламиВХранилищеДвоичныхДанныхСлужебный.mdo new file mode 100644 index 000000000..d5c7c214f --- /dev/null +++ b/SSL/src/CommonModules/РаботаСФайламиВХранилищеДвоичныхДанныхСлужебный/РаботаСФайламиВХранилищеДвоичныхДанныхСлужебный.mdo @@ -0,0 +1,11 @@ + + + РаботаСФайламиВХранилищеДвоичныхДанныхСлужебный + + ru + Работа с файлами в хранилище двоичных данных служебный + + true + true + true + diff --git a/SSL/src/CommonModules/РаботаСФайламиКлиент/Module.bsl b/SSL/src/CommonModules/РаботаСФайламиКлиент/Module.bsl index e73692dbe..c88b1b1fd 100644 --- a/SSL/src/CommonModules/РаботаСФайламиКлиент/Module.bsl +++ b/SSL/src/CommonModules/РаботаСФайламиКлиент/Module.bsl @@ -1,5 +1,5 @@ /////////////////////////////////////////////////////////////////////////////////////////////////////// -// Copyright (c) 2024, ООО 1С-Софт +// Copyright (c) 2025, ООО 1С-Софт // Все права защищены. Эта программа и сопроводительные материалы предоставляются // в соответствии с условиями лицензии Attribution 4.0 International (CC BY 4.0) // Текст лицензии доступен по ссылке: @@ -21,13 +21,17 @@ // ДляРедактирования - Булево - Истина, если файл открывается для редактирования, иначе Ложь. // Процедура ОткрытьФайл(Знач ДанныеФайла, Знач ДляРедактирования = Ложь) Экспорт - - Если ДляРедактирования Тогда - РаботаСФайламиСлужебныйКлиент.РедактироватьФайл(Неопределено, ДанныеФайла); + + Если ДанныеФайла.Свойство("АсинхронноеПолучениеФайла") Тогда + + РаботаСФайламиСлужебныйКлиент.ДействиеСФайлом(ДанныеФайла); + Иначе - РаботаСФайламиСлужебныйКлиент.ОткрытьФайлСОповещением(Неопределено, ДанныеФайла, , ДляРедактирования); + + РаботаСФайламиСлужебныйКлиент.ОткрытьФайлСлужебный(ДанныеФайла, ДляРедактирования); + КонецЕсли; - + КонецПроцедуры // Открывает в стандартной программе просмотра (проводнике) каталог на компьютере, @@ -308,12 +312,17 @@ // ДополнительныеПараметры - Произвольный - значение, которое было указано при создании объекта ОписаниеОповещения. // Процедура СохранитьФайлКак(Знач ДанныеФайла, ОбработчикЗавершения = Неопределено) Экспорт - - Оповещение = Новый ОписаниеОповещения("СохранитьФайлКакПослеСохранения", - РаботаСФайламиСлужебныйКлиент, ОбработчикЗавершения); - - РаботаСФайламиСлужебныйКлиент.СохранитьКак(Оповещение, ДанныеФайла, Неопределено); - + + Если ДанныеФайла.Свойство("АсинхронноеПолучениеФайла") Тогда + + РаботаСФайламиСлужебныйКлиент.ДействиеСФайлом(ДанныеФайла); + + Иначе + + РаботаСФайламиСлужебныйКлиент.СохранитьФайлКакСлужебный(ДанныеФайла, ОбработчикЗавершения); + + КонецЕсли; + КонецПроцедуры // Открывает форму выбора файлов. @@ -597,12 +606,13 @@ Знач ИдентификаторФормы = Неопределено, Знач ПолучатьСсылкуНаДвоичныеДанные = Истина, Знач ДляРедактирования = Ложь) Экспорт - - Возврат РаботаСФайламиСлужебныйВызовСервера.ПолучитьДанныеФайла( - ФайлСсылка, - ИдентификаторФормы, - ПолучатьСсылкуНаДвоичныеДанные, - ДляРедактирования); + + ДополнительныеПараметры = РаботаСФайламиКлиентСервер.ПараметрыДанныхФайла(); + ДополнительныеПараметры.ИдентификаторФормы = ИдентификаторФормы; + ДополнительныеПараметры.ПолучатьСсылкуНаДвоичныеДанные = ПолучатьСсылкуНаДвоичныеДанные; + ДополнительныеПараметры.ДляРедактирования = ДляРедактирования; + + Возврат РаботаСФайламиСлужебныйВызовСервера.ПолучитьДанныеФайла(ФайлСсылка, ДополнительныеПараметры); КонецФункции @@ -1133,6 +1143,123 @@ КонецПроцедуры +// Инициализирует структуру параметров для асинхронного получения присоединенного файла. +// +// Параметры: +// ВидДействия - Строка - доступный вид действия получения файла. Вид действия зависит от используемого метода +// получения данных файла. +// Значение по умолчанию - Неопределено. +// ИмяМетода - Строка - имя метода общего модуля, используемого для получения данных присоединенного файла. +// Значение по умолчанию - Неопределено. +// Предусмотрено использование следующих методов получения данных присоединенного файла: +// 1) РаботаСФайламиСлужебный.ДанныеФайлаДляОткрытияАсинхронный. +// Доступные виды действий: +// а) "ОткрытьФайл". +// б) "ОткрытьВерсиюФайла". +// в) "ОткрытьФайлСОповещением". +// г) "ВыбратьРежимИРедактироватьФайл". +// 2) РаботаСФайламиСлужебный.ДанныеФайлаДляСохраненияАсинхронный. +// Доступные виды действий: +// а) "СохранитьКак". +// 3) РаботаСФайламиСлужебный.ДанныеФайлаУправлениеЭлектроннойПочтойАсинхронный. +// Доступные виды действий: +// а) "ОткрытьФайл". +// б) "СохранитьКак". +// +// Возвращаемое значение: +// Структура: +// * АсинхронноеПолучениеФайла - Булево - признак асинхронного получения данный файла. Проверяется наличие данного свойства +// в структуре параметров. +// Значение по умолчанию - Ложь. +// * ПрисоединенныйФайл - см. РаботаСФайлами.ДвоичныеДанныеФайла.ПрисоединенныйФайл. +// * ВерсияСсылка - СправочникСсылка.ВерсииФайлов - версия файла, по которой формируются данные, если не указан, +// то по текущей версии или файлу. +// Значение по умолчанию - Неопределено. +// * ПроверятьНаличиеФайлаВАрхиве - Булево - если передать Ложь, то в методах получения данных присоединенного файла +// не будет +// выполняться проверка размещения файла в файловом архиве. Используется в тех случаях, когда +// обращение к присоединенному файлу выполняется из формы объекта метаданных, в которой уже была +// выполнена проверка наличия файла в файловом архиве. +// Значение по умолчанию - Истина. +// * ФайлВАрхиве - Булево - используется в ситуации, когда свойство ПроверятьНаличиеФайлаВАрхиве равно Ложь. +// В этой ситуации данное свойство содержит результат проверки наличия файла в файловом архиве. +// Значение по умолчанию - Ложь. +// * ФормаВладелец - ФормаКлиентскогоПриложения - форма, из которой выполняется обращение к присоединенному файлу. +// * ИмяМетодаПолученияФайла - Строка - имя серверного метода общего модуля, используемого для получения данных присоединенного +// файла. +// Значение по умолчанию - "РаботаСФайламиСлужебный.ДанныеФайлаДляОткрытияАсинхронный". +// * ПараметрыМетода - Структура - перечень параметров метода, указанного в свойстве ИмяМетодаПолученияФайла. +// * ПараметрыДействия - Структура - параметры действия получения данных присоединенного файла. Всегда содержит свойство: +// * ВидДействия - Строка - значение параметра функции ВидДействия. +// Дополнительные параметры действий добавляются в методе РаботаСФайламиКлиент.ДополнитьПараметрыДействияСФайлом. +// +Функция ПараметрыАсинхронногоПолученияФайла(Знач ВидДействия = Неопределено, Знач ИмяМетода = Неопределено) Экспорт + + Если ИмяМетода = Неопределено Тогда + ИмяМетода = "РаботаСФайламиСлужебный.ДанныеФайлаДляОткрытияАсинхронный"; + КонецЕсли; + + Если ВидДействия = Неопределено Тогда + Если ИмяМетода = "РаботаСФайламиСлужебный.ДанныеФайлаДляСохраненияАсинхронный" Тогда + ВидДействия = "СохранитьКак"; + Иначе + ВидДействия = "ОткрытьФайл"; + КонецЕсли; + КонецЕсли; + + Результат = Новый Структура; + Результат.Вставить("АсинхронноеПолучениеФайла" , Ложь); + Результат.Вставить("ПрисоединенныйФайл"); + Результат.Вставить("ВерсияСсылка" , Неопределено); + Результат.Вставить("ПроверятьНаличиеФайлаВАрхиве" , Истина); + Результат.Вставить("ФайлВАрхиве" , Ложь); + Результат.Вставить("ФормаВладелец"); + + Результат.Вставить("ИмяМетодаПолученияФайла", ИмяМетода); + Результат.Вставить("ПараметрыМетода" , Новый Структура); + Результат.Вставить("ПараметрыДействия" , Новый Структура); + + Результат.ПараметрыДействия.Вставить("ВидДействия", ВидДействия); + + Если ИмяМетода = "РаботаСФайламиСлужебный.ДанныеФайлаДляОткрытияАсинхронный" Тогда + // Возможные варианты действий + // "ОткрытьФайл"/"ОткрытьВерсиюФайла"/"ОткрытьФайлСОповещением"/"ВыбратьРежимИРедактироватьФайл" + ПараметрыМетода = Результат.ПараметрыМетода; + ПараметрыМетода.Вставить("ПрисоединенныйФайл"); + ПараметрыМетода.Вставить("ВерсияФайла"); + ПараметрыМетода.Вставить("ИдентификаторФормы" , Неопределено); + ПараметрыМетода.Вставить("РабочийКаталогВладельца" , Неопределено); + ПараметрыМетода.Вставить("ПредыдущийАдресФайла" , Неопределено); + ПараметрыМетода.Вставить("ПараметрыПолученияФайла" , Неопределено); + + ИначеЕсли ИмяМетода = "РаботаСФайламиСлужебный.ДанныеФайлаДляСохраненияАсинхронный" Тогда + // Возможные варианты действий + // "СохранитьКак" + ПараметрыМетода = Результат.ПараметрыМетода; + ПараметрыМетода.Вставить("ПрисоединенныйФайл"); + ПараметрыМетода.Вставить("ВерсияФайла"); + ПараметрыМетода.Вставить("ИдентификаторФормы" , Неопределено); + ПараметрыМетода.Вставить("РабочийКаталогВладельца" , Неопределено); + ПараметрыМетода.Вставить("ПараметрыПолученияФайла" , Неопределено); + + ИначеЕсли ИмяМетода = "РаботаСФайламиСлужебный.ДанныеФайлаУправлениеЭлектроннойПочтойАсинхронный" Тогда + // Возможные варианты действий + // "ОткрытьФайл"/"СохранитьКак" + ПараметрыМетода = Результат.ПараметрыМетода; + ПараметрыМетода.Вставить("ПрисоединенныйФайл"); + ПараметрыМетода.Вставить("ИдентификаторФормы" , Неопределено); + ПараметрыМетода.Вставить("ПолучатьСсылкуНаДвоичныеДанные" , Истина); + ПараметрыМетода.Вставить("ДляРедактирования" , Ложь); + ПараметрыМетода.Вставить("ПараметрыПолученияФайла" , Неопределено); + + КонецЕсли; + + ДополнитьПараметрыДействияСФайлом(Результат); + + Возврат Результат; + +КонецФункции + #КонецОбласти #Область УстаревшиеПроцедурыИФункции @@ -2006,8 +2133,13 @@ Если ЗначениеЗаполнено(Размещение) Тогда Если ПараметрыВыполнения.Действие = "ПросмотретьФайл" Тогда - ДанныеФайла = РаботаСФайламиСлужебныйВызовСервера.ДанныеФайлаДляОткрытия(Размещение, Неопределено, Форма.УникальныйИдентификатор); - ОткрытьФайл(ДанныеФайла); + + ПараметрыПолученияФайла = ПараметрыАсинхронногоПолученияФайла("ОткрытьФайл"); + ПараметрыПолученияФайла.ПрисоединенныйФайл = Размещение; + ПараметрыПолученияФайла.ФормаВладелец = Форма; + + ОткрытьФайл(ПараметрыПолученияФайла); + ИначеЕсли ПараметрыВыполнения.Действие = "ОткрытьФорму" Тогда ОткрытьФормуФайла(Размещение); ИначеЕсли ПараметрыВыполнения.Действие = "РедактироватьФайл" Тогда @@ -2169,6 +2301,39 @@ КонецФункции +Процедура ДополнитьПараметрыДействияСФайлом(ПараметрыПолученияФайла) + + ИмяМетода = ПараметрыПолученияФайла.ИмяМетодаПолученияФайла; + ПараметрыДействия = ПараметрыПолученияФайла.ПараметрыДействия; + ВидДействия = ПараметрыДействия.ВидДействия; + + Если ИмяМетода = "РаботаСФайламиСлужебный.ДанныеФайлаДляОткрытияАсинхронный" Тогда + + Если ВидДействия = "ОткрытьФайл" Тогда + + ПараметрыДействия.Вставить("ОповещатьЕслиЗашифрован", Ложь); + ПараметрыДействия.Вставить("ФайлРедактируется" , Ложь); + ИначеЕсли ВидДействия = "ОткрытьВерсиюФайла" Тогда + + ПараметрыДействия.Вставить("УникальныйИдентификатор"); + ИначеЕсли ВидДействия = "ВыбратьРежимИРедактироватьФайл" Тогда + + ПараметрыДействия.Вставить("ФормаВладелец"); + ПараметрыДействия.Вставить("ДоступностьКомандыРедактировать"); + ИначеЕсли ВидДействия = "ОткрытьФайлСОповещением" Тогда + + КонецЕсли; + ИначеЕсли ИмяМетода = "РаботаСФайламиСлужебный.ДанныеФайлаУправлениеЭлектроннойПочтойАсинхронный" Тогда + Если ВидДействия = "ОткрытьФайл" Тогда + ПараметрыДействия.Вставить("ДляРедактирования" , Ложь); + КонецЕсли; + ИначеЕсли ИмяМетода = "РаботаСФайламиСлужебный.ДанныеФайлаДляСохраненияАсинхронный" Тогда + + ПараметрыДействия.Вставить("УникальныйИдентификатор"); + КонецЕсли; + +КонецПроцедуры + #КонецОбласти #КонецОбласти \ No newline at end of file diff --git a/SSL/src/CommonModules/РаботаСФайламиКлиентПереопределяемый/Module.bsl b/SSL/src/CommonModules/РаботаСФайламиКлиентПереопределяемый/Module.bsl index 35a9a9eb9..843e168f4 100644 --- a/SSL/src/CommonModules/РаботаСФайламиКлиентПереопределяемый/Module.bsl +++ b/SSL/src/CommonModules/РаботаСФайламиКлиентПереопределяемый/Module.bsl @@ -1,5 +1,5 @@ /////////////////////////////////////////////////////////////////////////////////////////////////////// -// Copyright (c) 2024, ООО 1С-Софт +// Copyright (c) 2025, ООО 1С-Софт // Все права защищены. Эта программа и сопроводительные материалы предоставляются // в соответствии с условиями лицензии Attribution 4.0 International (CC BY 4.0) // Текст лицензии доступен по ссылке: @@ -18,4 +18,18 @@ КонецПроцедуры +// Вызывается в начале выполнения метода РаботаСФайламиСлужебныйКлиент.ДействиеСФайлом. +// Позволяет реализовать собственную логику работы с файлами, размещенными в файловом архиве. +// Например, проверять доступность файла в архивном хранилище. И в ситуации, когда файл недоступен, открывать +// собственную форму для оформления заявки к администратору на получение файла. +// +// Параметры: +// ПараметрыДействияСФайлом - см. РаботаСФайламиКлиент.ПараметрыАсинхронногоПолученияФайла +// СтандартнаяОбработка - Булево - если Ложь, то не будет выполнена стандартная +// логика метода РаботаСФайламиСлужебныйКлиент.ДействиеСФайлом. +// +Процедура ПриВыполненииДействияСФайлом(ПараметрыДействияСФайлом, СтандартнаяОбработка = Истина) Экспорт + +КонецПроцедуры + #КонецОбласти diff --git a/SSL/src/CommonModules/РаботаСФайламиКлиентСервер/Module.bsl b/SSL/src/CommonModules/РаботаСФайламиКлиентСервер/Module.bsl index 07ea54bf7..47a176099 100644 --- a/SSL/src/CommonModules/РаботаСФайламиКлиентСервер/Module.bsl +++ b/SSL/src/CommonModules/РаботаСФайламиКлиентСервер/Module.bsl @@ -1,5 +1,5 @@ /////////////////////////////////////////////////////////////////////////////////////////////////////// -// Copyright (c) 2024, ООО 1С-Софт +// Copyright (c) 2025, ООО 1С-Софт // Все права защищены. Эта программа и сопроводительные материалы предоставляются // в соответствии с условиями лицензии Attribution 4.0 International (CC BY 4.0) // Текст лицензии доступен по ссылке: @@ -22,6 +22,8 @@ // Значение по умолчанию - Ложь. // * ВызыватьИсключение - Булево - если указать Ложь, то функция в исключительных ситуациях не будет вызывать // исключений и вернет Неопределено. Значение по умолчанию - Истина. +// * ПараметрыПолученияФайла - см. РаботаСФайламиКлиентСервер.ПараметрыПолученияФайла. +// Значение по умолчанию - Неопределено. // Функция ПараметрыДанныхФайла() Экспорт @@ -30,10 +32,32 @@ ПараметрыДанных.Вставить("ИдентификаторФормы", Неопределено); ПараметрыДанных.Вставить("ВызыватьИсключение", Истина); ПараметрыДанных.Вставить("ПолучатьСсылкуНаДвоичныеДанные", Истина); + ПараметрыДанных.Вставить("ПараметрыПолученияФайла", Неопределено); Возврат ПараметрыДанных; КонецФункции +// Инициализирует структуру параметров для получения данных файла. См. РаботаСФайламиСлужебныйВызовСервера.ДанныеФайлаДляСохранения. +// +// Возвращаемое значение: +// Структура: +// * ВерсияФайла - СправочникСсылка.ВерсииФайлов - версия файла. +// * ИдентификаторФормы - УникальныйИдентификатор - уникальный идентификатор формы. +// * РабочийКаталогВладельца - Строка - рабочий каталог владельца файла. +// * ПараметрыПолученияФайла - см. РаботаСФайламиКлиентСервер.ПараметрыПолученияФайла +// +Функция ДополнительныеПараметрыДанныеФайлаДляСохранения() Экспорт + + ДополнительныеПараметры = Новый Структура; + ДополнительныеПараметры.Вставить("ВерсияФайла" ,Неопределено); + ДополнительныеПараметры.Вставить("ИдентификаторФормы" ,Неопределено); + ДополнительныеПараметры.Вставить("РабочийКаталогВладельца" ,Неопределено); + ДополнительныеПараметры.Вставить("ПараметрыПолученияФайла" ,Неопределено); + + Возврат ДополнительныеПараметры; + +КонецФункции + // Обработчик подписки на событие ОбработкаПолученияФормы для переопределения формы файла. // // Параметры: @@ -171,6 +195,29 @@ КонецФункции +Функция ПараметрыПолученияФайла() Экспорт + + Результат = Новый Структура; + Результат.Вставить("АдресВРодительскомСеансе"); + Результат.Вставить("АдресТекущейВерсииВРодительскомСеансе"); + Результат.Вставить("ПроверятьНаличиеФайлаВАрхиве" , Истина); + Результат.Вставить("ФайлВАрхиве" , Ложь); + + Возврат Результат; + +КонецФункции + +// Возвращает признак того, что файлы могут храниться в томах на дисках. +// +// Возвращаемое значение: +// Булево +// +Функция ХранитьФайлыВТомах(СпособХраненияФайлов) Экспорт + + Возврат СпособХраненияФайлов = "ВТомахНаДиске" Или СпособХраненияФайлов = "ВИнформационнойБазеИТомахНаДиске"; + +КонецФункции + #КонецОбласти #Область СлужебныеПроцедурыИФункции diff --git a/SSL/src/CommonModules/РаботаСФайламиЛокализация/Module.bsl b/SSL/src/CommonModules/РаботаСФайламиЛокализация/Module.bsl index 1a3015652..8ba1b7927 100644 --- a/SSL/src/CommonModules/РаботаСФайламиЛокализация/Module.bsl +++ b/SSL/src/CommonModules/РаботаСФайламиЛокализация/Module.bsl @@ -1,5 +1,5 @@ /////////////////////////////////////////////////////////////////////////////////////////////////////// -// Copyright (c) 2024, ООО 1С-Софт +// Copyright (c) 2025, ООО 1С-Софт // Все права защищены. Эта программа и сопроводительные материалы предоставляются // в соответствии с условиями лицензии Attribution 4.0 International (CC BY 4.0) // Текст лицензии доступен по ссылке: diff --git a/SSL/src/CommonModules/РаботаСФайламиПереопределяемый/Module.bsl b/SSL/src/CommonModules/РаботаСФайламиПереопределяемый/Module.bsl index 223fe20c6..48dc5639c 100644 --- a/SSL/src/CommonModules/РаботаСФайламиПереопределяемый/Module.bsl +++ b/SSL/src/CommonModules/РаботаСФайламиПереопределяемый/Module.bsl @@ -1,5 +1,5 @@ /////////////////////////////////////////////////////////////////////////////////////////////////////// -// Copyright (c) 2024, ООО 1С-Софт +// Copyright (c) 2025, ООО 1С-Софт // Все права защищены. Эта программа и сопроводительные материалы предоставляются // в соответствии с условиями лицензии Attribution 4.0 International (CC BY 4.0) // Текст лицензии доступен по ссылке: @@ -18,6 +18,7 @@ // синхронизации с облачными сервисами (например, служебные документы). // * НеСоздаватьФайлыПоШаблону - Массив из ОбъектМетаданных - объекты, для файлов которых отключена возможность // создавать файлы по шаблонам. +// * ДоступенФайловыйАрхив - Булево - управляет доступностью функциональности файлового архива в прикладном решении. // // Пример: // Настройки.НеОчищатьФайлы.Добавить(Метаданные.Справочники.Номенклатура); diff --git a/SSL/src/CommonModules/РаботаСФайламиСлужебный/Module.bsl b/SSL/src/CommonModules/РаботаСФайламиСлужебный/Module.bsl index 58520fe35..caaf01065 100644 --- a/SSL/src/CommonModules/РаботаСФайламиСлужебный/Module.bsl +++ b/SSL/src/CommonModules/РаботаСФайламиСлужебный/Module.bsl @@ -1,5 +1,5 @@ /////////////////////////////////////////////////////////////////////////////////////////////////////// -// Copyright (c) 2024, ООО 1С-Софт +// Copyright (c) 2025, ООО 1С-Софт // Все права защищены. Эта программа и сопроводительные материалы предоставляются // в соответствии с условиями лицензии Attribution 4.0 International (CC BY 4.0) // Текст лицензии доступен по ссылке: @@ -89,16 +89,14 @@ Процедура ЗагрузитьФайл(Знач ОбъектФайла, Знач ПутьКФайлу) Экспорт ДвоичныеДанные = Новый ДвоичныеДанные(ПутьКФайлу); - ТипХраненияФайла = ТипХраненияФайла(ОбъектФайла.Размер, ОбъектФайла.Расширение); - ОбъектФайла.ТипХраненияФайла = ТипХраненияФайла; - ОбъектФайла.ПутьКФайлу = ""; - Если ТипХраненияФайла = Перечисления.ТипыХраненияФайлов.ВТомахНаДиске Тогда - РаботаСФайламиВТомахСлужебный.ДобавитьФайл(ОбъектФайла, ДвоичныеДанные, , Истина); + + РаботаСФайловымАрхивомСервер.ЗаполнитьПараметрыХраненияФайла(ОбъектФайла, ДвоичныеДанные, ОбъектФайла.Размер, ОбъектФайла.Расширение); + + Если ОбъектФайла.ТипХраненияФайла = Перечисления.ТипыХраненияФайлов.ВТомахНаДиске Тогда + РаботаСФайламиВТомахСлужебный.ДобавитьФайл(ОбъектФайла, ДвоичныеДанные, , Истина, ОбъектФайла.Том); Иначе ОбъектФайла.ДополнительныеСвойства.Вставить("ДвоичныеДанныеФайла", ДвоичныеДанные); ОбъектФайла.ФайлХранилище = Новый ХранилищеЗначения(Неопределено); - ОбъектФайла.Том = Справочники.ТомаХраненияФайлов.ПустаяСсылка(); - ОбъектФайла.ТипХраненияФайла = Перечисления.ТипыХраненияФайлов.ВИнформационнойБазе; КонецЕсли; КонецПроцедуры @@ -329,10 +327,12 @@ // ОбщийМодуль // Функция МенеджерФайловПоТипу(ТипХраненияФайла) Экспорт - Если ТипХраненияФайла = Перечисления.ТипыХраненияФайлов.ВТомахНаДиске Тогда + Если ТипХраненияФайла = Перечисления.ТипыХраненияФайлов.ВИнформационнойБазе Тогда + Возврат РаботаСФайламиСлужебный; + ИначеЕсли ТипХраненияФайла = Перечисления.ТипыХраненияФайлов.ВТомахНаДиске Тогда Возврат РаботаСФайламиВТомахСлужебный; Иначе - Возврат РаботаСФайламиСлужебный; + Возврат РаботаСФайламиВХранилищеДвоичныхДанныхСлужебный; КонецЕсли; КонецФункции @@ -409,7 +409,8 @@ // ПрисоединенныйФайл - ОпределяемыйТип.ПрисоединенныйФайл // Процедура ПриОбновленииДанныхФайла(Контекст, ПрисоединенныйФайл) Экспорт - ЗаписатьФайлВИнформационнуюБазу(ПрисоединенныйФайл, Контекст.ДанныеФайла); + ПараметрыЗаписиВИБ = РаботаСФайловымАрхивомСервер.ЗаполненныеПараметрыЗаписиВИнформационнуюБазу(ПрисоединенныйФайл); + ЗаписатьФайлВИнформационнуюБазу(ПрисоединенныйФайл, Контекст.ДанныеФайла, ПараметрыЗаписиВИБ); КонецПроцедуры // Параметры: @@ -466,6 +467,215 @@ Возврат "ПрисоединенныеФайлы"; КонецФункции +// Проверяет наличие присоединенного файла в файловом архиве. +// +// Параметры: +// ПрисоединенныйФайл - ОпределяемыйТип.ПрисоединенныйФайл - ссылка на элемент справочника с файлом. +// ВерсияСсылка - СправочникСсылка.ВерсииФайлов. +// +// Возвращаемое значение: +// Булево +// +Функция ФайлНаходитсяВФайловомАрхиве(ПрисоединенныйФайл, ВерсияСсылка = Неопределено) Экспорт + + ПроверяемыйФайл = ПрисоединенныйФайл; + + Если Не ЗначениеЗаполнено(ВерсияСсылка) И ОбщегоНазначения.ЕстьРеквизитОбъекта("ТекущаяВерсия", + Метаданные.НайтиПоТипу(ТипЗнч(ПрисоединенныйФайл))) Тогда + + ТекущаяВерсия = ОбщегоНазначения.ЗначениеРеквизитаОбъекта(ПрисоединенныйФайл, "ТекущаяВерсия"); + Если ЗначениеЗаполнено(ТекущаяВерсия) Тогда + ПроверяемыйФайл = ТекущаяВерсия; + КонецЕсли; + ИначеЕсли ЗначениеЗаполнено(ВерсияСсылка) Тогда + ПроверяемыйФайл = ВерсияСсылка; + КонецЕсли; + + Результат = РаботаСФайловымАрхивомСервер.ФайлПеренесенВФайловыйАрхив(ПроверяемыйФайл); + + Возврат Результат; + +КонецФункции + +// Возвращает двоичные данные файла. +// +// Параметры: +// ПрисоединенныйФайл - ОпределяемыйТип.ПрисоединенныйФайл - ссылка на элемент справочника с файлом. +// +// ВызыватьИсключение - Булево - если указать Ложь, то функция будет возвращать Неопределено +// вместо вызова исключений, уровень записи журнала регистрации будет понижен до "Предупреждение". +// Значение по умолчанию - Истина. +// +// ПолучениеФайлаИзАрхива - Булево - получение данных файла из архивного хранилища - дискового тома или тома внешнего +// хранилища двоичных данных. +// +// Возвращаемое значение: +// ДвоичныеДанные, Неопределено - двоичные данные присоединенного файла. Если двоичные данные файла не найдены +// в информационной базе или в томах, вызывает исключение. Если двоичные данные не +// найдены и параметр ВызыватьИсключение принимает значение Ложь, тогда +// возвращаемое значение - Неопределено. +// +// Пример: +// Сохранение данных файла на сервере: +// ДанныеФайла = РаботаСФайламиСлужебный.ДвоичныеДанныеФайла(Файл, Ложь); +// Если ДанныеФайла <> Неопределено Тогда +// ДанныеФайла.Записать(ПутьКФайлу); +// КонецЕсли; +// +Функция ДвоичныеДанныеФайла(Знач ПрисоединенныйФайл, Знач ВызыватьИсключение = Истина, ПолучениеФайлаИзАрхива = Ложь) Экспорт + + ОбщегоНазначенияКлиентСервер.ПроверитьПараметр("РаботаСФайлами.ДвоичныеДанныеФайла", "ПрисоединенныйФайл", + ПрисоединенныйФайл, Метаданные.ОпределяемыеТипы.ПрисоединенныйФайл.Тип); + + ФайлОбъект = ФайлОбъект(ПрисоединенныйФайл); + Если (ФайлОбъект = Неопределено Или ФайлОбъект.ЭтоГруппа) И Не ВызыватьИсключение Тогда + Возврат Неопределено; + КонецЕсли; + + ОбщегоНазначенияКлиентСервер.Проверить(ФайлОбъект <> Неопределено, + СтроковыеФункцииКлиентСервер.ПодставитьПараметрыВСтроку( + НСтр("ru = 'Недопустимое значение параметра %1'"), "ПрисоединенныйФайл"), + "РаботаСФайлами.ДвоичныеДанныеФайла"); + ОбщегоНазначенияКлиентСервер.Проверить(Не ФайлОбъект.ЭтоГруппа, + СтроковыеФункцииКлиентСервер.ПодставитьПараметрыВСтроку( + НСтр("ru = 'Недопустимое значение параметра %1 (папка файлов ""%2"")'"), + "ПрисоединенныйФайл", ОбщегоНазначения.ПредметСтрокой(ПрисоединенныйФайл)), + "РаботаСФайлами.ДвоичныеДанныеФайла"); + + УстановитьОтключениеБезопасногоРежима(Истина); + УстановитьПривилегированныйРежим(Истина); + + Если ФайлОбъект.ПометкаУдаления Тогда + СообщитьОбОшибкеФайлНеНайден(ФайлОбъект, ВызыватьИсключение); + Возврат Неопределено; + КонецЕсли; + + Если РаботаСФайламиВХранилищеДвоичныхДанныхСлужебный.ТипХраненияНеИспользуетДиски(ФайлОбъект.ТипХраненияФайла) Тогда + + Результат = РаботаСФайлами.ХранилищеФайлаИзИнформационнойБазы(ФайлОбъект.Ссылка, ПолучениеФайлаИзАрхива); + Если ТипЗнч(Результат) = Тип("ХранилищеЗначения") Тогда + Результат = Результат.Получить(); + Если ТипЗнч(Результат) = Тип("ДвоичныеДанные") Тогда + Возврат Результат; + ИначеЕсли ТипЗнч(Результат) = Тип("Картинка") Тогда + Возврат Результат.ПолучитьДвоичныеДанные(); + КонецЕсли; + КонецЕсли; + + СообщитьОбОшибкеФайлНеНайден(ФайлОбъект, ВызыватьИсключение, ПолучениеФайлаИзАрхива); + Возврат Неопределено; + + Иначе + Возврат РаботаСФайламиВТомахСлужебный.ДанныеФайла(ПрисоединенныйФайл, ВызыватьИсключение, ПолучениеФайлаИзАрхива); + КонецЕсли; + +КонецФункции + +// Метод длительной операции, выполняемой в функции РаботаСФайламиСлужебныйКлиент.ДействиеСФайлом. +// Получает данные для дальнейшего открытия. Использует метод РаботаСФайламиСлужебныйВызовСервера.ДанныеФайлаДляОткрытия. +// +// Параметры: +// ПараметрыДлительнойОперации - см. ПараметрыДлительнойОперации +// +// Возвращаемое значение: +// Структура - см. РаботаСФайламиСлужебныйВызовСервера.ДанныеФайла +// +Функция ДанныеФайлаДляОткрытияАсинхронный(ПараметрыДлительнойОперации) Экспорт + + ПараметрыФункции = ПараметрыДлительнойОперации.ПараметрыМетода; + + Попытка + + ДанныеФайла = РаботаСФайламиСлужебныйВызовСервера.ДанныеФайлаДляОткрытия(ПараметрыФункции.ПрисоединенныйФайл, + ПараметрыФункции.ВерсияФайла, + ПараметрыФункции.ИдентификаторФормы, + ПараметрыФункции.РабочийКаталогВладельца, + ПараметрыФункции.ПредыдущийАдресФайла, + ПараметрыФункции.ПараметрыПолученияФайла); + + Исключение + Если РаботаСФайловымАрхивомСервер.ИспользоватьФайловыйАрхив() Тогда + + ПараметрыФункции.ПараметрыПолученияФайла.ПроверятьНаличиеФайлаВАрхиве = Истина; + + ДанныеФайла = РаботаСФайламиСлужебныйВызовСервера.ДанныеФайлаДляОткрытия(ПараметрыФункции.ПрисоединенныйФайл, + ПараметрыФункции.ВерсияФайла, + ПараметрыФункции.ИдентификаторФормы, + ПараметрыФункции.РабочийКаталогВладельца, + ПараметрыФункции.ПредыдущийАдресФайла, + ПараметрыФункции.ПараметрыПолученияФайла); + + ДанныеФайла.Вставить("ОбновлятьСпискиФайловНаФормах", Истина); + + Иначе + ИнформацияОбОшибке = ИнформацияОбОшибке(); + Уточнение = ОбщегоНазначенияКлиентСервер.УточнениеИсключения(ИнформацияОбОшибке); + ВызватьИсключение(Уточнение.Текст, Уточнение.Категория,,, ИнформацияОбОшибке); + КонецЕсли; + КонецПопытки; + + Возврат ДанныеФайла; + +КонецФункции + +// Метод длительной операции, выполняемой в функции РаботаСФайламиСлужебныйКлиент.ДействиеСФайлом. +// Получает данные для открытия и сохранения файла. Использует метод РаботаСФайламиСлужебныйВызовСервера.ПолучитьДанныеФайла. +// +// Параметры: +// ПараметрыДлительнойОперации - см. ПараметрыДлительнойОперации +// +// Возвращаемое значение: +// Структура - см. РаботаСФайламиСлужебныйВызовСервера.ДанныеФайла +// +Функция ДанныеФайлаУправлениеЭлектроннойПочтойАсинхронный(ПараметрыДлительнойОперации) Экспорт + + ПараметрыФункции = ПараметрыДлительнойОперации.ПараметрыМетода; + + ДополнительныеПараметры = РаботаСФайламиКлиентСервер.ПараметрыДанныхФайла(); + ЗаполнитьЗначенияСвойств(ДополнительныеПараметры, ПараметрыФункции); + + ДанныеФайла = РаботаСФайламиСлужебныйВызовСервера.ПолучитьДанныеФайла(ПараметрыФункции.ПрисоединенныйФайл, ДополнительныеПараметры); + + Возврат ДанныеФайла; + +КонецФункции + +// Метод длительной операции, выполняемой в функции РаботаСФайламиСлужебныйКлиент.ДействиеСФайлом. +// Получает данные для сохранения файла на диск. Использует метод РаботаСФайламиСлужебныйВызовСервера.ДанныеФайлаДляСохранения. +// +// Параметры: +// ПараметрыДлительнойОперации - см. ПараметрыДлительнойОперации +// +// Возвращаемое значение: +// Структура - см. РаботаСФайламиСлужебныйВызовСервера.ДанныеФайла +// +Функция ДанныеФайлаДляСохраненияАсинхронный(ПараметрыДлительнойОперации) Экспорт + + ПараметрыФункции = ПараметрыДлительнойОперации.ПараметрыМетода; + + Попытка + + ДанныеФайла = РаботаСФайламиСлужебныйВызовСервера.ДанныеФайлаДляСохранения(ПараметрыФункции.ПрисоединенныйФайл, ПараметрыФункции); + + Исключение + + Если РаботаСФайловымАрхивомСервер.ИспользоватьФайловыйАрхив() Тогда + + ПараметрыФункции.ПараметрыПолученияФайла.ПроверятьНаличиеФайлаВАрхиве = Истина; + + ДанныеФайла = РаботаСФайламиСлужебныйВызовСервера.ДанныеФайлаДляСохранения(ПараметрыФункции.ПрисоединенныйФайл, ПараметрыФункции); + + Иначе + ИнформацияОбОшибке = ИнформацияОбОшибке(); + Уточнение = ОбщегоНазначенияКлиентСервер.УточнениеИсключения(ИнформацияОбОшибке); + ВызватьИсключение(Уточнение.Текст, Уточнение.Категория,,, ИнформацияОбОшибке); + КонецЕсли; + КонецПопытки; + + Возврат ДанныеФайла; + +КонецФункции + #Область ПроцедурыОбменаДанными // Возвращает массив справочников, выступающих в роли владельцев файлов. @@ -855,22 +1065,21 @@ КопияФайла.ФайлХранилище = КопируемыйФайл.ФайлХранилище; ДвоичныеДанные = РаботаСФайлами.ДвоичныеДанныеФайла(КопируемыйФайл); - - ТипХраненияФайла = ТипХраненияФайла(КопияФайла.Размер, КопияФайла.Расширение); - Если ТипХраненияФайла = Перечисления.ТипыХраненияФайлов.ВИнформационнойБазе Тогда - КопияФайла.ТипХраненияФайла = ТипХраненияФайла; - ЗаписатьФайлВИнформационнуюБазу(КопияФайлаСсылка, ДвоичныеДанные); + + РаботаСФайловымАрхивомСервер.ЗаполнитьПараметрыХраненияФайла(КопияФайла, ДвоичныеДанные, КопияФайла.Размер, КопияФайла.Расширение); + + Если РаботаСФайламиВХранилищеДвоичныхДанныхСлужебный.ТипХраненияНеИспользуетДиски(КопияФайла.ТипХраненияФайла) Тогда + ПараметрыЗаписиВИБ = РаботаСФайловымАрхивомСервер.ЗаполненныеПараметрыЗаписиВИнформационнуюБазу(КопияФайла); + ЗаписатьФайлВИнформационнуюБазу(КопияФайлаСсылка, ДвоичныеДанные, ПараметрыЗаписиВИБ); Иначе - КопияФайла.Том = Неопределено; - КопияФайла.ПутьКФайлу = Неопределено; - КопияФайла.ТипХраненияФайла = Неопределено; - РаботаСФайламиВТомахСлужебный.ДобавитьФайл(КопияФайла, ДвоичныеДанные); + РаботаСФайламиВТомахСлужебный.ДобавитьФайл(КопияФайла, ДвоичныеДанные,,,КопияФайла.Том); КонецЕсли; + КопияФайла.Записать(); - + Если ДоступнаЭлектроннаяПодпись Тогда ПодписиОбъекта = МодульЭлектроннаяПодпись.ПодписиОбъекта(КопируемыйФайл); - МодульЭлектроннаяПодпись.ДобавитьПодпись(КопияФайла.Ссылка, ПодписиОбъекта); + МодульЭлектроннаяПодпись.ДобавитьПодпись(КопияФайла.Ссылка, ПодписиОбъекта); СертификатыИсточника = МодульЭлектроннаяПодпись.СертификатыШифрования(КопируемыйФайл); МодульЭлектроннаяПодпись.ЗаписатьСертификатыШифрования(КопияФайла, СертификатыИсточника); @@ -1023,27 +1232,56 @@ // Параметры: // РазмерФайла - Число // РасширениеФайла - Строка +// ДоступныХранилищаДвоичныхДанных - Булево, Неопределено. +// СпособХраненияФайлов - Строка, Неопределено - см. значения для "Константа.СпособХраненияФайлов". +// Значение по умолчанию - Неопределено. // // Возвращаемое значение: // ПеречислениеСсылка.ТипыХраненияФайлов // -Функция ТипХраненияФайла(Знач РазмерФайла, Знач РасширениеФайла) Экспорт - - Если РаботаСФайламиВТомахСлужебный.ХранитьФайлыВТомах() - И РаботаСФайламиВТомахСлужебный.ЕстьТомаХраненияФайлов() Тогда - Возврат РаботаСФайламиВТомахСлужебный.ТипХраненияФайла(РазмерФайла, РасширениеФайла); +Функция ТипХраненияФайла(Знач РазмерФайла, Знач РасширениеФайла, ДоступныХранилищаДвоичныхДанных = Неопределено, СпособХраненияФайлов = Неопределено) Экспорт + + Если ДоступныХранилищаДвоичныхДанных = Неопределено Тогда + ДоступныХранилищаДвоичныхДанных = РаботаСФайловымАрхивомСервер.ДоступныХранилищаДвоичныхДанных(); + КонецЕсли; + + Если ДоступныХранилищаДвоичныхДанных Тогда + + Если СпособХраненияФайлов = Неопределено Тогда + СпособХраненияФайлов = РаботаСФайловымАрхивомСервер.СпособХраненияФайлов(); + КонецЕсли; + + Если РаботаСФайловымАрхивомКлиентСервер.СпособХраненияИспользуетТома(СпособХраненияФайлов) + И РаботаСФайламиВТомахСлужебный.ЕстьТомаХраненияФайлов(, РаботаСФайловымАрхивомСервер.СпособХраненияДляПодбораТомовХранения(СпособХраненияФайлов)) Тогда + Возврат РаботаСФайламиВТомахСлужебный.ТипХраненияФайла(РазмерФайла, РасширениеФайла, СпособХраненияФайлов); + Иначе + Возврат Перечисления.ТипыХраненияФайлов.ВИнформационнойБазе; + КонецЕсли; Иначе - Возврат Перечисления.ТипыХраненияФайлов.ВИнформационнойБазе; + Если РаботаСФайламиВТомахСлужебный.ХранитьФайлыВТомах() + И РаботаСФайламиВТомахСлужебный.ЕстьТомаХраненияФайлов() Тогда + Возврат РаботаСФайламиВТомахСлужебный.ТипХраненияФайла(РазмерФайла, РасширениеФайла); + Иначе + Возврат Перечисления.ТипыХраненияФайлов.ВИнформационнойБазе; + КонецЕсли; КонецЕсли; КонецФункции // Проверяет, что хотя бы в одном томе есть хотя бы один файл. // +// Параметры: +// ТипХраненияФайла - ПеречислениеСсылка.ТипыХраненияФайлов, Неопределено. +// Значение по умолчанию - Неопределено. +// // Возвращаемое значение: // Булево // -Функция ЕстьФайлыВТомах() Экспорт +Функция ЕстьФайлыВТомах(Знач ТипХраненияФайла = Неопределено) Экспорт + + Если ТипХраненияФайла = Неопределено Тогда + ТипХраненияФайла = Перечисления.ТипыХраненияФайлов.ВТомахНаДиске; + КонецЕсли; Запрос = Новый Запрос; Запрос.Текст = @@ -1052,7 +1290,9 @@ |ИЗ | РегистрСведений.СведенияОФайлах КАК СведенияОФайлах |ГДЕ - | СведенияОФайлах.ТипХраненияФайла = ЗНАЧЕНИЕ(Перечисление.ТипыХраненияФайлов.ВТомахНаДиске)"; + | СведенияОФайлах.ТипХраненияФайла = &ТипХраненияФайла"; + + Запрос.УстановитьПараметр("ТипХраненияФайла", ТипХраненияФайла); Возврат Не Запрос.Выполнить().Пустой(); @@ -2454,6 +2694,12 @@ Зависимость.РегламентноеЗадание = Метаданные.РегламентныеЗадания.СинхронизацияФайлов; Зависимость.ФункциональнаяОпция = Метаданные.ФункциональныеОпции.ИспользоватьСинхронизациюФайлов; Зависимость.РаботаетСВнешнимиРесурсами = Истина; + + Зависимость = Настройки.Добавить(); + Зависимость.РегламентноеЗадание = Метаданные.РегламентныеЗадания.ПереносФайловМеждуОперационнымХранилищемИФайловымАрхивом; + Зависимость.ФункциональнаяОпция = Метаданные.ФункциональныеОпции.ИспользоватьФайловыйАрхив; + Зависимость.РаботаетСВнешнимиРесурсами = Истина; + КонецПроцедуры // См. УправлениеДоступомПереопределяемый.ПриЗаполненииСписковСОграничениемДоступа. @@ -3317,14 +3563,21 @@ Процедура ПриЗаписиПрисоединенногоФайлаСервер(ВладелецФайлов, Источник) Экспорт УстановитьПривилегированныйРежим(Истина); + + БлокировкаДанных = Новый БлокировкаДанных; + ЭлементБлокировкиДанных = БлокировкаДанных.Добавить(Метаданные.РегистрыСведений.НаличиеФайлов.ПолноеИмя()); + ЭлементБлокировкиДанных.УстановитьЗначение("ОбъектСФайлами", ВладелецФайлов); + + Если Не Источник.ЭтоГруппа Тогда + ЭлементБлокировкиДанных = БлокировкаДанных.Добавить(Метаданные.РегистрыСведений.СведенияОФайлах.ПолноеИмя()); + ЭлементБлокировкиДанных.УстановитьЗначение("Файл", Источник.Ссылка); + КонецЕсли; + НачатьТранзакцию(); Попытка - + ЗаписьИзменилась = Ложь; - БлокировкаДанных = Новый БлокировкаДанных; - ЭлементБлокировкиДанных = БлокировкаДанных.Добавить(Метаданные.РегистрыСведений.НаличиеФайлов.ПолноеИмя()); - ЭлементБлокировкиДанных.УстановитьЗначение("ОбъектСФайлами", ВладелецФайлов); БлокировкаДанных.Заблокировать(); МенеджерЗаписи = РегистрыСведений.НаличиеФайлов.СоздатьМенеджерЗаписи(); @@ -3356,9 +3609,14 @@ Если ЗаписьИзменилась Тогда МенеджерЗаписи.Записать(); КонецЕсли; - + Если Не Источник.ЭтоГруппа Тогда + МенеджерЗаписи = РегистрыСведений.СведенияОФайлах.СоздатьМенеджерЗаписи(); + + МенеджерЗаписи.Файл = Источник.Ссылка; + МенеджерЗаписи.Прочитать(); + ЗаполнитьЗначенияСвойств(МенеджерЗаписи, Источник); МенеджерЗаписи.Файл = Источник.Ссылка; Если Источник.ПодписанЭП И Источник.Зашифрован Тогда @@ -3564,8 +3822,6 @@ КонецЕсли; ДвоичныеДанные = ЭлементДанных.ФайлХранилище.Получить(); - НовыйТипХраненияФайла = ТипХраненияФайла(ЭлементДанных.Размер, ЭлементДанных.Расширение); - ЭлементДанных.ТипХраненияФайла = НовыйТипХраненияФайла; Если Не ЭлементДанных.ЭтоНовый() Тогда ТипХраненияПредыдущейВерсииФайла = ОбщегоНазначения.ЗначениеРеквизитаОбъекта(ЭлементДанных.Ссылка, @@ -3588,6 +3844,9 @@ КонецЕсли; КонецЕсли; + РаботаСФайловымАрхивомСервер.ЗаполнитьПараметрыХраненияФайла(ЭлементДанных, ДвоичныеДанные, ЭлементДанных.Размер, ЭлементДанных.Расширение); + НовыйТипХраненияФайла = ЭлементДанных.ТипХраненияФайла; + Если НовыйТипХраненияФайла = Перечисления.ТипыХраненияФайлов.ВТомахНаДиске Тогда // По обмену пришел элемент с хранением в базе - но в базе приемнике принято хранить в томах. @@ -3610,7 +3869,7 @@ УровеньЖурналаРегистрации.Ошибка, ТипМетаданных, ЭлементДанных.Ссылка, ТекстОшибки); Иначе - РаботаСФайламиВТомахСлужебный.ДобавитьФайл(ЭлементДанных, ДвоичныеДанные, , Истина); + РаботаСФайламиВТомахСлужебный.ДобавитьФайл(ЭлементДанных, ДвоичныеДанные, , Истина, ЭлементДанных.Том); КонецЕсли; Иначе @@ -3620,7 +3879,6 @@ КонецЕсли; ЭлементДанных.ФайлХранилище = Новый ХранилищеЗначения(Неопределено); - ЭлементДанных.Том = Справочники.ТомаХраненияФайлов.ПустаяСсылка(); ЭлементДанных.ПутьКФайлу = ""; КонецЕсли; @@ -3632,13 +3890,14 @@ // Параметры: // ПрисоединенныйФайл - ОпределяемыйТип.ПрисоединенныйФайл - ссылка на присоединенный файл. // ДвоичныеДанные - ДвоичныеДанные - которые требуется записать. +// ПараметрыЗаписиВИБ - см. РаботаСФайловымАрхивомСервер.ПараметрыЗаписиВИнформационнуюБазу // -Процедура ЗаписатьФайлВИнформационнуюБазу(Знач ПрисоединенныйФайл, Знач ДвоичныеДанные) Экспорт - +Процедура ЗаписатьФайлВИнформационнуюБазу(Знач ПрисоединенныйФайл, Знач ДвоичныеДанные, ПараметрыЗаписиВИБ) Экспорт + УстановитьОтключениеБезопасногоРежима(Истина); УстановитьПривилегированныйРежим(Истина); - - РегистрыСведений.ХранилищеФайлов.ЗаписатьДвоичныеДанные(ПрисоединенныйФайл, ДвоичныеДанные); + + РегистрыСведений.ХранилищеФайлов.ЗаписатьДвоичныеДанные(ПрисоединенныйФайл, ДвоичныеДанные, ПараметрыЗаписиВИБ); КонецПроцедуры @@ -4364,38 +4623,48 @@ // Возвращаемое значение: // Строка // -Функция ОшибкаФайлНеНайденВХранилищеФайлов(ФайлОбъект) +Функция ОшибкаФайлНеНайденВХранилищеФайлов(ФайлОбъект, ПолучениеФайлаИзАрхива = Ложь) ИмяФайла = ОбщегоНазначенияКлиентСервер.ПолучитьИмяСРасширением(ФайлОбъект.Наименование, ФайлОбъект.Расширение); - ТекстОшибки = СтроковыеФункцииКлиентСервер.ПодставитьПараметрыВСтроку( - НСтр("ru = 'Не удалось открыть файл: - |%1 - |который присоединен к: - |%2'"), - ИмяФайла, ОбщегоНазначения.ПредметСтрокой(ФайлОбъект.ВладелецФайла)); + Если Не ПолучениеФайлаИзАрхива Тогда + ТекстОшибки = СтроковыеФункцииКлиентСервер.ПодставитьПараметрыВСтроку( + НСтр("ru = 'Не удалось открыть файл: + |%1 + |который присоединен к: + |%2'"), + ИмяФайла, ОбщегоНазначения.ПредметСтрокой(ФайлОбъект.ВладелецФайла)); - Если ФайлОбъект.ПометкаУдаления = Истина Тогда - ТекстОшибки = ТекстОшибки + Символы.ПС + Символы.ПС - + НСтр("ru = 'Файл помечен на удаление и очищен как ненужный.'"); - ИначеЕсли ФайлОбъект.ТипХраненияФайла = Перечисления.ТипыХраненияФайлов.ВТомахНаДиске Тогда - ТекстОшибки = ТекстОшибки + Символы.ПС + Символы.ПС - + НСтр("ru = 'Данные файла недоступны, т.к. возможно файл был очищен как ненужный или удален антивирусом.'"); + Если ФайлОбъект.ПометкаУдаления = Истина Тогда + ТекстОшибки = ТекстОшибки + Символы.ПС + Символы.ПС + + НСтр("ru = 'Файл помечен на удаление и очищен как ненужный.'"); + ИначеЕсли ФайлОбъект.ТипХраненияФайла = Перечисления.ТипыХраненияФайлов.ВТомахНаДиске Тогда + ТекстОшибки = ТекстОшибки + Символы.ПС + Символы.ПС + + НСтр("ru = 'Данные файла недоступны, т.к. возможно файл был очищен как ненужный или удален антивирусом.'"); + Иначе + ТекстОшибки = ТекстОшибки + Символы.ПС + Символы.ПС + + НСтр("ru = 'Данные файла недоступны, т.к. возможно файл был очищен как ненужный.'"); + КонецЕсли; Иначе - ТекстОшибки = ТекстОшибки + Символы.ПС + Символы.ПС - + НСтр("ru = 'Данные файла недоступны, т.к. возможно файл был очищен как ненужный.'"); + ТекстОшибки = СтроковыеФункцииКлиентСервер.ПодставитьПараметрыВСтроку( + НСтр("ru = 'Файл ""%1"" находится в файловом архиве. + |Данные файла недоступны. + | + |%2'"), + ИмяФайла, РаботаСФайловымАрхивомСервер.ТекстИнформированияПользователяОНедоступностиФайлаВАрхиве()); КонецЕсли; - + Возврат ТекстОшибки; - + КонецФункции // Параметры: // ФайлОбъект - ОпределяемыйТип.ПрисоединенныйФайлОбъект // ВызыватьИсключение - Булево +// ПолучениеФайлаИзАрхива - Булево // -Процедура СообщитьОбОшибкеФайлНеНайден(ФайлОбъект, ВызыватьИсключение) Экспорт +Процедура СообщитьОбОшибкеФайлНеНайден(ФайлОбъект, ВызыватьИсключение, ПолучениеФайлаИзАрхива = Ложь) Экспорт - СообщениеОбОшибке = ОшибкаФайлНеНайденВХранилищеФайлов(ФайлОбъект); + СообщениеОбОшибке = ОшибкаФайлНеНайденВХранилищеФайлов(ФайлОбъект, ПолучениеФайлаИзАрхива); КритичностьОшибки = ?(ВызыватьИсключение, УровеньЖурналаРегистрации.Ошибка, УровеньЖурналаРегистрации.Предупреждение); ЗаписьЖурналаРегистрации(НСтр("ru = 'Файлы.Открытие файла'", ОбщегоНазначения.КодОсновногоЯзыка()), КритичностьОшибки, ФайлОбъект.Ссылка.Метаданные(), ФайлОбъект.Ссылка, СообщениеОбОшибке); @@ -4695,14 +4964,15 @@ КонецПроцедуры Процедура ЗаписатьДанныеФайлаВРегистрПриОбмене(Источник) - + Перем ДвоичныеДанныеФайла; - + Если Источник.ДополнительныеСвойства.Свойство("ДвоичныеДанныеФайла", ДвоичныеДанныеФайла) Тогда - РегистрыСведений.ХранилищеФайлов.ЗаписатьДвоичныеДанные(Источник.Ссылка, ДвоичныеДанныеФайла); + ПараметрыЗаписиВИБ = РаботаСФайловымАрхивомСервер.ЗаполненныеПараметрыЗаписиВИнформационнуюБазу(Источник); + РегистрыСведений.ХранилищеФайлов.ЗаписатьДвоичныеДанные(Источник.Ссылка, ДвоичныеДанныеФайла, ПараметрыЗаписиВИБ); Источник.ДополнительныеСвойства.Удалить("ДвоичныеДанныеФайла"); КонецЕсли; - + КонецПроцедуры Функция ПолучениеФайлаЗапрещено(ЭлементДанных) @@ -4754,9 +5024,11 @@ ЭлементДанных.ФайлХранилище = Новый ХранилищеЗначения(Неопределено); КонецПопытки; - ЭлементДанных.ТипХраненияФайла = Перечисления.ТипыХраненияФайлов.ВИнформационнойБазе; + ЭлементДанных.ТипХраненияФайла = РаботаСФайловымАрхивомСервер.ТипХраненияПоТомуХраненияФайлов(ЭлементДанных.Том); + Если ЭлементДанных.ТипХраненияФайла = Перечисления.ТипыХраненияФайлов.ВИнформационнойБазе Тогда + ЭлементДанных.Том = Справочники.ТомаХраненияФайлов.ПустаяСсылка(); + КонецЕсли; ЭлементДанных.ПутьКФайлу = ""; - ЭлементДанных.Том = Справочники.ТомаХраненияФайлов.ПустаяСсылка(); КонецПроцедуры @@ -5091,17 +5363,42 @@ Версия.Размер = СведенияОФайле.Размер; Версия.Расширение = ОбщегоНазначенияКлиентСервер.РасширениеБезТочки(СведенияОФайле.РасширениеБезТочки); Версия.Наименование = СведенияОФайле.ИмяБезРасширения; - - ТипХраненияФайлов = ТипХраненияФайла(Версия.Размер, Версия.Расширение); - Версия.ТипХраненияФайла = ТипХраненияФайлов; + + ДвоичныеДанныеИлиПуть = Неопределено; + + Если РаботаСФайловымАрхивомСервер.ДоступныХранилищаДвоичныхДанных() Тогда + Если СведенияОФайле.СсылкаНаВерсиюИсточник <> Неопределено Тогда // создание Файла из шаблона + + ТипХраненияФайловШаблона = СведенияОФайле.СсылкаНаВерсиюИсточник.ТипХраненияФайла; + Если ТипХраненияФайловШаблона = Перечисления.ТипыХраненияФайлов.ВИнформационнойБазе Тогда + + ДвоичныеДанныеИлиПуть = СведенияОФайле.АдресВременногоХранилищаФайла.Получить(); + + ИначеЕсли ТипХраненияФайловШаблона = Перечисления.ТипыХраненияФайлов.ВТомахНаДиске Тогда + Если Не СведенияОФайле.СсылкаНаВерсиюИсточник.Том.Пустая() Тогда + ДвоичныеДанныеИлиПуть = РаботаСФайламиВТомахСлужебный.ДанныеФайла(СведенияОФайле.СсылкаНаВерсиюИсточник); + КонецЕсли; + КонецЕсли; + Иначе // Создание объекта Файл на основе выбранного файла с компьютера. + Если ЭтоАдресВременногоХранилища(СведенияОФайле.АдресВременногоХранилищаФайла) Тогда + ДвоичныеДанныеИлиПуть = ПолучитьИзВременногоХранилища(СведенияОФайле.АдресВременногоХранилищаФайла); + Иначе + ДвоичныеДанныеИлиПуть = СведенияОФайле.АдресВременногоХранилищаФайла; + КонецЕсли; + КонецЕсли; + КонецЕсли; + + РаботаСФайловымАрхивомСервер.ЗаполнитьПараметрыХраненияФайла(Версия, ДвоичныеДанныеИлиПуть, Версия.Размер, Версия.Расширение); + + ТипХраненияФайлов = Версия.ТипХраненияФайла; Если СведенияОФайле.СсылкаНаВерсиюИсточник <> Неопределено Тогда // создание Файла из шаблона ТипХраненияФайловШаблона = СведенияОФайле.СсылкаНаВерсиюИсточник.ТипХраненияФайла; - Если ТипХраненияФайловШаблона = Перечисления.ТипыХраненияФайлов.ВИнформационнойБазе - И ТипХраненияФайлов = Перечисления.ТипыХраненияФайлов.ВИнформационнойБазе Тогда - - // И шаблон, и новый Файл - в базе. + Если РаботаСФайламиВХранилищеДвоичныхДанныхСлужебный.ТипХраненияНеИспользуетДиски(ТипХраненияФайловШаблона) + И РаботаСФайламиВХранилищеДвоичныхДанныхСлужебный.ТипХраненияНеИспользуетДиски(ТипХраненияФайлов) Тогда + + // И шаблон, и новый Файл - в базе или в томах хранилищ двоичных данных // При создании Файла из шаблона хранилище значения копируется напрямую. ДвоичныеДанныеИлиПуть = СведенияОФайле.АдресВременногоХранилищаФайла.Получить(); @@ -5112,20 +5409,20 @@ Если Не СведенияОФайле.СсылкаНаВерсиюИсточник.Том.Пустая() Тогда ПолныйПутьФайлаШаблона = РаботаСФайламиВТомахСлужебный.ПолноеИмяФайлаВТоме( РаботаСФайламиВТомахСлужебный.СвойстваФайлаВТоме(СведенияОФайле.СсылкаНаВерсиюИсточник)); - РаботаСФайламиВТомахСлужебный.ДобавитьФайл(Версия, ПолныйПутьФайлаШаблона); + РаботаСФайламиВТомахСлужебный.ДобавитьФайл(Версия, ПолныйПутьФайлаШаблона,,,Версия.Том); КонецЕсли; - ИначеЕсли ТипХраненияФайловШаблона = Перечисления.ТипыХраненияФайлов.ВИнформационнойБазе + ИначеЕсли РаботаСФайламиВХранилищеДвоичныхДанныхСлужебный.ТипХраненияНеИспользуетДиски(ТипХраненияФайловШаблона) И ТипХраненияФайлов = Перечисления.ТипыХраненияФайлов.ВТомахНаДиске Тогда - - // Шаблон в базе, новый файл в томе. + + // Шаблон в базе или томах хранилищ двоичных данных, новый файл в томе. // В этом случае в АдресВременногоХранилищаФайла находится ХранилищеЗначения с файлом. - РаботаСФайламиВТомахСлужебный.ДобавитьФайл(Версия, СведенияОФайле.АдресВременногоХранилищаФайла.Получить()); - - ИначеЕсли ТипХраненияФайловШаблона = Перечисления.ТипыХраненияФайлов.ВТомахНаДиске - И ТипХраненияФайлов = Перечисления.ТипыХраненияФайлов.ВИнформационнойБазе Тогда - - // Шаблон в томе, новый файл - в базе. + РаботаСФайламиВТомахСлужебный.ДобавитьФайл(Версия, СведенияОФайле.АдресВременногоХранилищаФайла.Получить(),,,Версия.Том); + + ИначеЕсли ТипХраненияФайловШаблона = Перечисления.ТипыХраненияФайлов.ВТомахНаДиске + И РаботаСФайламиВХранилищеДвоичныхДанныхСлужебный.ТипХраненияНеИспользуетДиски(ТипХраненияФайлов) Тогда + + // Шаблон в томе, новый файл - в базе или томах хранилищ двоичных данных. Если Не СведенияОФайле.СсылкаНаВерсиюИсточник.Том.Пустая() Тогда ДвоичныеДанныеИлиПуть = РаботаСФайламиВТомахСлужебный.ДанныеФайла(СведенияОФайле.СсылкаНаВерсиюИсточник); КонецЕсли; @@ -5141,16 +5438,15 @@ Версия.Размер = ДвоичныеДанныеИлиПуть.Размер(); ПроверитьРазмерФайлаДляЗагрузки(Версия); КонецЕсли; - + Если ТипХраненияФайлов = Перечисления.ТипыХраненияФайлов.ВТомахНаДиске Тогда Если Контекст <> Неопределено Тогда ЗаполнитьЗначенияСвойств(Версия, Контекст.ИзменяемыеРеквизиты); Иначе - РаботаСФайламиВТомахСлужебный.ДобавитьФайл(Версия, ДвоичныеДанныеИлиПуть); + РаботаСФайламиВТомахСлужебный.ДобавитьФайл(Версия, ДвоичныеДанныеИлиПуть,,,Версия.Том); КонецЕсли; - КонецЕсли; - + Иначе ДвоичныеДанныеИлиПуть = СведенияОФайле.АдресВременногоХранилищаФайла; @@ -5164,9 +5460,10 @@ Версия.Заполнить(Неопределено); Версия.Записать(); - - Если ТипХраненияФайлов = Перечисления.ТипыХраненияФайлов.ВИнформационнойБазе Тогда - ЗаписатьФайлВИнформационнуюБазу(Версия.Ссылка, ДвоичныеДанныеИлиПуть); + + Если РаботаСФайламиВХранилищеДвоичныхДанныхСлужебный.ТипХраненияНеИспользуетДиски(Версия.ТипХраненияФайла) Тогда + ПараметрыЗаписиВИБ = РаботаСФайловымАрхивомСервер.ЗаполненныеПараметрыЗаписиВИнформационнуюБазу(Версия); + ЗаписатьФайлВИнформационнуюБазу(Версия.Ссылка, ДвоичныеДанныеИлиПуть, ПараметрыЗаписиВИБ); КонецЕсли; Возврат Версия.Ссылка; @@ -5289,13 +5586,13 @@ Версия.Комментарий = СведенияОФайле.Комментарий; Версия.Расширение = ОбщегоНазначенияКлиентСервер.РасширениеБезТочки(СведенияОФайле.РасширениеБезТочки); - ТипХраненияФайла = ТипХраненияФайла(СведенияОФайле.Размер, СведенияОФайле.РасширениеБезТочки); - Версия.ТипХраненияФайла = ТипХраненияФайла; - Если ДвоичныеДанные = Неопределено Тогда ДвоичныеДанные = ДвоичныеДанныеИзСведенийОФайле(СведенияОФайле); КонецЕсли; + РаботаСФайловымАрхивомСервер.ЗаполнитьПараметрыХраненияФайла(Версия, ДвоичныеДанные, СведенияОФайле.Размер, СведенияОФайле.РасширениеБезТочки); + ТипХраненияФайла = Версия.ТипХраненияФайла; + Если Версия.Размер = 0 Тогда Версия.Размер = ДвоичныеДанные.Размер(); ПроверитьРазмерФайлаДляЗагрузки(Версия); @@ -5995,6 +6292,7 @@ НастройкиФайлов.Вставить("НеВыводитьВИнтерфейс", Новый Массив); НастройкиФайлов.Вставить("НеСоздаватьФайлыПоШаблону", Новый Массив); НастройкиФайлов.Вставить("ФайлыБезПапок", Новый Массив); + НастройкиФайлов.Вставить("ДоступенФайловыйАрхив", Истина); ИнтеграцияПодсистемБСП.ПриОпределенииОбъектовИсключенияСинхронизацииФайлов(НастройкиФайлов.НеСинхронизироватьФайлы); РаботаСФайламиПереопределяемый.ПриОпределенииНастроек(НастройкиФайлов); @@ -9549,8 +9847,8 @@ ПолноеИмяФайла = ""; - Если ОбъектСсылка.ТипХраненияФайла = Перечисления.ТипыХраненияФайлов.ВИнформационнойБазе Тогда - + Если РаботаСФайламиВХранилищеДвоичныхДанныхСлужебный.ТипХраненияНеИспользуетДиски(ОбъектСсылка.ТипХраненияФайла) Тогда + ХранилищеФайла = РаботаСФайлами.ХранилищеФайлаИзИнформационнойБазы(ОбъектСсылка); Если ХранилищеФайла = Неопределено Тогда Возврат ""; @@ -9823,10 +10121,10 @@ РезультатИзвлеченияТекста = ИзвлечьТекстИзФайлаНаДиске(ИмяФайлаСДвоичнымиДанными, ФайлБезТекста.Кодировка); ФайлОбъект.СтатусИзвлеченияТекста = РезультатИзвлеченияТекста.СтатусИзвлеченияТекста; ФайлОбъект.ТекстХранилище = РезультатИзвлеченияТекста.ТекстХранилище; - + ПриЗаписиИзвлеченногоТекста(ФайлОбъект, ФайлЗаблокирован); - - Если ФайлОбъект.ТипХраненияФайла <> Перечисления.ТипыХраненияФайлов.ВИнформационнойБазе Тогда + + Если Не РаботаСФайламиВХранилищеДвоичныхДанныхСлужебный.ТипХраненияНеИспользуетДиски(ФайлОбъект.ТипХраненияФайла) Тогда ИмяФайлаСДвоичнымиДанными = ""; КонецЕсли; @@ -9964,7 +10262,7 @@ КонецЕсли; - Если ТипХраненияФайла = Перечисления.ТипыХраненияФайлов.ВИнформационнойБазе Тогда + Если РаботаСФайламиВХранилищеДвоичныхДанныхСлужебный.ТипХраненияНеИспользуетДиски(ТипХраненияФайла) Тогда РегистрыСведений.ХранилищеФайлов.УдалитьДвоичныеДанные(Ссылка); КонецЕсли; @@ -10124,9 +10422,9 @@ Методы.Вставить("СоздатьСерверныйНачальныйОбразНаСервере", Истина); Методы.Вставить("СоздатьФайловыйНачальныйОбразНаСервере", Истина); Методы.Вставить("ОсвободитьЗахваченныеФайлыФон", Истина); - Методы.Вставить("ИзвлечьТекстИзФайловНаСервере", Истина); - Методы.Вставить("ОчиститьНенужныеФайлы", Истина); - Методы.Вставить("РегламентнаяСинхронизацияФайловWebdav", Истина); + Методы.Вставить("ДанныеФайлаДляОткрытияАсинхронный", Истина); + Методы.Вставить("ДанныеФайлаДляСохраненияАсинхронный", Истина); + Методы.Вставить("ДанныеФайлаУправлениеЭлектроннойПочтойАсинхронный", Истина); Методы.Вставить("ОбновитьСписокЗапрещенныхРасширений"); Методы.Вставить("ОбновитьСписокРасширенийТекстовыхФайлов"); Методы.Вставить("ОбновитьСписокЗапрещенныхРасширенийВОбластиДанных"); diff --git a/SSL/src/CommonModules/РаботаСФайламиСлужебныйВМоделиСервиса/Module.bsl b/SSL/src/CommonModules/РаботаСФайламиСлужебныйВМоделиСервиса/Module.bsl index efdd83c75..0fc328dac 100644 --- a/SSL/src/CommonModules/РаботаСФайламиСлужебныйВМоделиСервиса/Module.bsl +++ b/SSL/src/CommonModules/РаботаСФайламиСлужебныйВМоделиСервиса/Module.bsl @@ -1,5 +1,5 @@ /////////////////////////////////////////////////////////////////////////////////////////////////////// -// Copyright (c) 2024, ООО 1С-Софт +// Copyright (c) 2025, ООО 1С-Софт // Все права защищены. Эта программа и сопроводительные материалы предоставляются // в соответствии с условиями лицензии Attribution 4.0 International (CC BY 4.0) // Текст лицензии доступен по ссылке: @@ -22,7 +22,6 @@ Если Не ОбщегоНазначения.ПодсистемаСуществует("ТехнологияСервиса.БазоваяФункциональность") Тогда Возврат; КонецЕсли; - МодульРаботаВМоделиСервиса = ОбщегоНазначения.ОбщийМодуль("РаботаВМоделиСервиса"); УстановитьПривилегированныйРежим(Истина); @@ -501,11 +500,4 @@ #КонецОбласти -// См. СтандартныеПодсистемыСервер.ПриОпределенииМетодовРазрешенныхДляВызоваКакПроизвольныйКод -Процедура ПриОпределенииМетодовРазрешенныхДляВызоваКакПроизвольныйКод(Методы) Экспорт - - Методы.Вставить("ОбработатьОчередьИзвлеченияТекста", Истина); - -КонецПроцедуры - #КонецОбласти diff --git a/SSL/src/CommonModules/РаботаСФайламиСлужебныйВМоделиСервисаПовтИсп/Module.bsl b/SSL/src/CommonModules/РаботаСФайламиСлужебныйВМоделиСервисаПовтИсп/Module.bsl index 22b31a1d9..a4666d0ba 100644 --- a/SSL/src/CommonModules/РаботаСФайламиСлужебныйВМоделиСервисаПовтИсп/Module.bsl +++ b/SSL/src/CommonModules/РаботаСФайламиСлужебныйВМоделиСервисаПовтИсп/Module.bsl @@ -1,5 +1,5 @@ /////////////////////////////////////////////////////////////////////////////////////////////////////// -// Copyright (c) 2024, ООО 1С-Софт +// Copyright (c) 2025, ООО 1С-Софт // Все права защищены. Эта программа и сопроводительные материалы предоставляются // в соответствии с условиями лицензии Attribution 4.0 International (CC BY 4.0) // Текст лицензии доступен по ссылке: diff --git a/SSL/src/CommonModules/РаботаСФайламиСлужебныйВызовСервера/Module.bsl b/SSL/src/CommonModules/РаботаСФайламиСлужебныйВызовСервера/Module.bsl index 106331533..3f1953839 100644 --- a/SSL/src/CommonModules/РаботаСФайламиСлужебныйВызовСервера/Module.bsl +++ b/SSL/src/CommonModules/РаботаСФайламиСлужебныйВызовСервера/Module.bsl @@ -1,5 +1,5 @@ /////////////////////////////////////////////////////////////////////////////////////////////////////// -// Copyright (c) 2024, ООО 1С-Софт +// Copyright (c) 2025, ООО 1С-Софт // Все права защищены. Эта программа и сопроводительные материалы предоставляются // в соответствии с условиями лицензии Attribution 4.0 International (CC BY 4.0) // Текст лицензии доступен по ссылке: @@ -370,6 +370,8 @@ // ВерсияСсылка - СправочникСсылка.ВерсииФайлов - версия файла по которой формируются данные, если не указан то по // текущей версии или файлу. // ПараметрыДанныхФайла - см. РаботаСФайламиКлиентСервер.ПараметрыДанныхФайла. +// ПолучениеФайлаИзАрхива - Булево. +// Значение по умолчанию - Ложь. // // Возвращаемое значение: // Структура: @@ -405,8 +407,10 @@ // * Том - СправочникСсылка.ТомаХраненияФайлов // * ФайлРедактируетТекущийПользователь - Булево // * ХранитьВерсии - Булево +// * ОбновлятьСпискиФайловНаФормах - Булево - признак необходимости обновления списков файлов в открытых формах, для +// актуализации данных. // -Функция ДанныеФайла(ФайлСсылка, ВерсияСсылка = Неопределено, ПараметрыДанныхФайла = Неопределено) Экспорт +Функция ДанныеФайла(Знач ФайлСсылка, Знач ВерсияСсылка = Неопределено, Знач ПараметрыДанныхФайла = Неопределено, Знач ПолучениеФайлаИзАрхива = Ложь) Экспорт Если ПараметрыДанныхФайла = Неопределено Тогда ПараметрыДанныхФайла = РаботаСФайламиКлиентСервер.ПараметрыДанныхФайла(); @@ -456,8 +460,13 @@ Если ВерсияСсылка = Неопределено Тогда Если ПолучатьСсылкуНаДвоичныеДанные Тогда - СсылкаНаДвоичныеДанныеФайла = ПоместитьВоВременноеХранилище(РаботаСФайлами.ДвоичныеДанныеФайла( - ТекущаяВерсияФайла, ВызыватьИсключение), ИдентификаторФормы); + ДвоичныеДанныеФайла = РаботаСФайламиСлужебный.ДвоичныеДанныеФайла(ТекущаяВерсияФайла, ВызыватьИсключение, ПолучениеФайлаИзАрхива); + + Если ПолучениеФайлаИзАрхива Тогда + ДвоичныеДанныеФайла = РаботаСФайловымАрхивомСервер.ДвоичныеДанныеФайлаИзвлеченногоИзZipАрхива(ДвоичныеДанныеФайла, ФайлСсылка); + КонецЕсли; + + СсылкаНаДвоичныеДанныеФайла = ПоместитьВоВременноеХранилище(ДвоичныеДанныеФайла, ИдентификаторФормы); Иначе СсылкаНаДвоичныеДанныеФайла = Неопределено; КонецЕсли; @@ -469,8 +478,13 @@ ФайлОбъект.Расширение)); Иначе Если ПолучатьСсылкуНаДвоичныеДанные Тогда - СсылкаНаДвоичныеДанныеФайла = ПоместитьВоВременноеХранилище(РаботаСФайлами.ДвоичныеДанныеФайла( - ВерсияСсылка, ВызыватьИсключение), ИдентификаторФормы); + ДвоичныеДанныеФайла = РаботаСФайламиСлужебный.ДвоичныеДанныеФайла(ВерсияСсылка, ВызыватьИсключение, ПолучениеФайлаИзАрхива); + + Если ПолучениеФайлаИзАрхива Тогда + ДвоичныеДанныеФайла = РаботаСФайловымАрхивомСервер.ДвоичныеДанныеФайлаИзвлеченногоИзZipАрхива(ДвоичныеДанныеФайла, ВерсияСсылка); + КонецЕсли; + + СсылкаНаДвоичныеДанныеФайла = ПоместитьВоВременноеХранилище(ДвоичныеДанныеФайла, ИдентификаторФормы); Иначе СсылкаНаДвоичныеДанныеФайла = Неопределено; КонецЕсли; @@ -501,20 +515,34 @@ КонецЕсли; РаботаСФайламиСлужебный.ЗаполнитьДополнительныеДанныеФайла(ДанныеФайла, ФайлОбъект, ВерсияСсылка); + + ДанныеФайла.Вставить("ОбновлятьСпискиФайловНаФормах", Ложь); + Возврат ДанныеФайла; КонецФункции -Функция ПолучитьДанныеФайла(Знач ПрисоединенныйФайл, Знач ИдентификаторФормы = Неопределено, - Знач ПолучатьСсылкуНаДвоичныеДанные = Истина, Знач ДляРедактирования = Ложь) Экспорт +// Возвращает сведения о файле. Используется в различных командах работы с файлами +// и как значение параметра ДанныеФайла в других процедурах и функциях. см. РаботаСФайлами.ДанныеФайла. +// +// Параметры: +// ПрисоединенныйФайл - ОпределяемыйТип.ПрисоединенныйФайл - ссылка на элемент справочника с файлом. +// ДополнительныеПараметры - см. РаботаСФайламиКлиентСервер.ПараметрыДанныхФайла. +// +// Возвращаемое значение: +// см. РаботаСФайлами.ДанныеФайла. +// +Функция ПолучитьДанныеФайла(Знач ПрисоединенныйФайл, Знач ДополнительныеПараметры = Неопределено) Экспорт - Возврат РаботаСФайлами.ДанныеФайла(ПрисоединенныйФайл, ИдентификаторФормы, ПолучатьСсылкуНаДвоичныеДанные, - ДляРедактирования); + Возврат РаботаСФайлами.ДанныеФайла(ПрисоединенныйФайл, ДополнительныеПараметры); КонецФункции Функция ДанныеФайлаДляПечати(Знач ПрисоединенныйФайл, Знач ИдентификаторФормы = Неопределено) Экспорт - ДанныеФайла = ПолучитьДанныеФайла(ПрисоединенныйФайл, ИдентификаторФормы); + ДополнительныеПараметры = РаботаСФайламиКлиентСервер.ПараметрыДанныхФайла(); + ДополнительныеПараметры.ИдентификаторФормы = ИдентификаторФормы; + + ДанныеФайла = ПолучитьДанныеФайла(ПрисоединенныйФайл, ДополнительныеПараметры); Расширение = НРег(ДанныеФайла.Расширение); Если Расширение = "mxl" Тогда ДвоичныеДанныеФайла = ПолучитьИзВременногоХранилища(ДанныеФайла.СсылкаНаДвоичныеДанныеФайла); // ДвоичныеДанные @@ -546,12 +574,13 @@ // ИдентификаторФормы - УникальныйИдентификатор // РабочийКаталогВладельца - Строка // ПредыдущийАдресФайла - Строка -// +// ПараметрыПолученияФайла - см. РаботаСФайламиКлиентСервер.ПараметрыПолученияФайла +// // Возвращаемое значение: // см. ДанныеФайла // Функция ДанныеФайлаДляОткрытия(ФайлСсылка, ВерсияСсылка, ИдентификаторФормы = Неопределено, - РабочийКаталогВладельца = Неопределено, ПредыдущийАдресФайла = Неопределено) Экспорт + РабочийКаталогВладельца = Неопределено, ПредыдущийАдресФайла = Неопределено, ПараметрыПолученияФайла = Неопределено) Экспорт ЕстьПраваНаОбъект = ОбщегоНазначения.ЗначенияРеквизитовОбъекта(ФайлСсылка, "Ссылка", Истина); Если ЕстьПраваНаОбъект = Неопределено Тогда @@ -575,8 +604,25 @@ ПараметрыДанныхФайла = РаботаСФайламиКлиентСервер.ПараметрыДанныхФайла(); ПараметрыДанныхФайла.ИдентификаторФормы = ИдентификаторФормы; + + ПолучениеФайлаИзАрхива = Ложь; + ПроверятьНаличиеФайлаВАрхиве = Истина; + + Если ТипЗнч(ПараметрыПолученияФайла) = Тип("Структура") Тогда + + ПараметрыДанныхФайла.ИдентификаторФормы = ПараметрыПолученияФайла.АдресВРодительскомСеансе; - ДанныеФайла = ДанныеФайла(ФайлСсылка, ВерсияСсылка, ПараметрыДанныхФайла); + ПроверятьНаличиеФайлаВАрхиве = ПараметрыПолученияФайла.ПроверятьНаличиеФайлаВАрхиве; + Если Не ПроверятьНаличиеФайлаВАрхиве Тогда + ПолучениеФайлаИзАрхива = ПараметрыПолученияФайла.ФайлВАрхиве; + КонецЕсли; + КонецЕсли; + + Если ПроверятьНаличиеФайлаВАрхиве Тогда + ПолучениеФайлаИзАрхива = РаботаСФайламиСлужебный.ФайлНаходитсяВФайловомАрхиве(ФайлСсылка, ВерсияСсылка); + КонецЕсли; + + ДанныеФайла = ДанныеФайла(ФайлСсылка, ВерсияСсылка, ПараметрыДанныхФайла, ПолучениеФайлаИзАрхива); Если РабочийКаталогВладельца = Неопределено Тогда РабочийКаталогВладельца = РабочийКаталогПапки(ДанныеФайла.Владелец); КонецЕсли; @@ -596,12 +642,21 @@ Если ДанныеФайла.Версия <> Неопределено И СведенияОВерсии.ТипХраненияФайла = Перечисления.ТипыХраненияФайлов.ВТомахНаДиске Тогда - ДвоичныеДанные = РаботаСФайламиВТомахСлужебный.ДанныеФайла(ДанныеФайла.Версия); + ДвоичныеДанные = РаботаСФайламиВТомахСлужебный.ДанныеФайла(ДанныеФайла.Версия,,ПолучениеФайлаИзАрхива); + Если ПолучениеФайлаИзАрхива Тогда + ДвоичныеДанные = РаботаСФайловымАрхивомСервер.ДвоичныеДанныеФайлаИзвлеченногоИзZipАрхива(ДвоичныеДанные, ДанныеФайла.Версия); + КонецЕсли; + + Если ТипЗнч(ПараметрыПолученияФайла) = Тип("Структура") Тогда + ИдентификаторФормы = ПараметрыПолученияФайла.АдресТекущейВерсииВРодительскомСеансе; + КонецЕсли; + ДанныеФайла.НавигационнаяСсылкаТекущейВерсии = ПоместитьВоВременноеХранилище(ДвоичныеДанные, ИдентификаторФормы); КонецЕсли; ПредыдущийАдресФайла = ДанныеФайла.НавигационнаяСсылкаТекущейВерсии; + Возврат ДанныеФайла; КонецФункции @@ -749,6 +804,51 @@ Возврат ДлительныеОперации.ВыполнитьФункцию(ПараметрыВыполнения, "Отчеты.ПроверкаЦелостностиТома.ВосстановитьФайлы", Том); КонецФункции +Функция НачатьДействиеСФайлом(Знач ПараметрыДлительнойОперации, Знач ИмяФункции) Экспорт + + ИдентификаторВладельца = ПараметрыДлительнойОперации.ИдентификаторВладельца; + ПараметрыВыполнения = ДлительныеОперации.ПараметрыВыполненияФункции(ИдентификаторВладельца); + + Если ИмяФункции = "РаботаСФайламиСлужебный.ДанныеФайлаДляОткрытияАсинхронный" Тогда + ДлительнаяОперация = ДлительныеОперации.ВыполнитьФункцию(ПараметрыВыполнения, + "РаботаСФайламиСлужебный.ДанныеФайлаДляОткрытияАсинхронный", ПараметрыДлительнойОперации); + ИначеЕсли ИмяФункции = "РаботаСФайламиСлужебный.ДанныеФайлаДляСохраненияАсинхронный" Тогда + ДлительнаяОперация = ДлительныеОперации.ВыполнитьФункцию(ПараметрыВыполнения, + "РаботаСФайламиСлужебный.ДанныеФайлаДляСохраненияАсинхронный", ПараметрыДлительнойОперации); + ИначеЕсли ИмяФункции = "РаботаСФайламиСлужебный.ДанныеФайлаУправлениеЭлектроннойПочтойАсинхронный" Тогда + ДлительнаяОперация = ДлительныеОперации.ВыполнитьФункцию(ПараметрыВыполнения, + "РаботаСФайламиСлужебный.ДанныеФайлаУправлениеЭлектроннойПочтойАсинхронный", ПараметрыДлительнойОперации); + Иначе + ВызватьИсключение(СтроковыеФункцииКлиентСервер.ПодставитьПараметрыВСтроку( + НСтр("ru = 'Непредусмотренный метод получения фала: %1'"), ИмяФункции)); + КонецЕсли; + + Возврат ДлительнаяОперация; + +КонецФункции + +// Получает коллекцию, содержащую значения реквизитов "Наименование" и "Расширение" присоединенного файла. +// +// Параметры: +// ПрисоединенныйФайл - ОпределяемыйТип.ПрисоединенныйФайл - ссылка на элемент справочника с файлом. +// +// Возвращаемое значение: +// Структура: +// * Расширение - Строка - расширение присоединенного файла. см. реквизит ПрисоединенныйФайл.Расширение. +// * ИмяФайла - Строка - имя присоединенного файла с расширением. см. реквизиты ПрисоединенныйФайл.Наименование и ПрисоединенныйФайл.Расширение. +// +Функция ИмяФайлаИРасширение(Знач ПрисоединенныйФайл) Экспорт + + ЗначенияРеквизитов = ОбщегоНазначения.ЗначенияРеквизитовОбъекта(ПрисоединенныйФайл, "Наименование,Расширение"); + + Результат = Новый Структура; + Результат.Вставить("Расширение" , ЗначенияРеквизитов.Расширение); + Результат.Вставить("ИмяФайла" , ОбщегоНазначенияКлиентСервер.ПолучитьИмяСРасширением(ЗначенияРеквизитов.Наименование, ЗначенияРеквизитов.Расширение)); + + Возврат Результат; + +КонецФункции + #КонецОбласти #Область СлужебныеПроцедурыИФункции @@ -910,21 +1010,27 @@ ЭлементБлокировки.УстановитьЗначение("Ссылка", СсылкаНаВерсию); Расширение = ОбщегоНазначенияКлиентСервер.РасширениеБезТочки(СведенияОФайле.РасширениеБезТочки); - ТипХраненияФайла = РаботаСФайламиСлужебный.ТипХраненияФайла(СведенияОФайле.Размер, Расширение); - МенеджерФайла = РаботаСФайламиСлужебный.МенеджерФайловПоТипу(ТипХраненияФайла); - Контекст = РаботаСФайламиСлужебный.КонтекстОбновленияФайла(СсылкаНаВерсию, - СведенияОФайле.АдресВременногоХранилищаФайла,, ТипХраненияФайла); - МенеджерФайла.ПередОбновлениемДанныхФайла(Контекст); НачатьТранзакцию(); - Попытка + Попытка Блокировка.Заблокировать(); - Версия = СсылкаНаВерсию.ПолучитьОбъект(); ЗаблокироватьДанныеДляРедактирования(СсылкаНаВерсию,, УникальныйИдентификаторФормы); - Версия.ТипХраненияФайла = ТипХраненияФайла; + Если ДвоичныеДанные = Неопределено Тогда + ДвоичныеДанные = РаботаСФайламиСлужебный.ДвоичныеДанныеИзСведенийОФайле(СведенияОФайле); + КонецЕсли; + + Версия = СсылкаНаВерсию.ПолучитьОбъект(); + РаботаСФайловымАрхивомСервер.ЗаполнитьПараметрыХраненияФайла(Версия, ДвоичныеДанные, СведенияОФайле.Размер, Расширение); + ТипХраненияФайла = Версия.ТипХраненияФайла; + + МенеджерФайла = РаботаСФайламиСлужебный.МенеджерФайловПоТипу(ТипХраненияФайла); + Контекст = РаботаСФайламиСлужебный.КонтекстОбновленияФайла(СсылкаНаВерсию, + СведенияОФайле.АдресВременногоХранилищаФайла,, ТипХраненияФайла); + МенеджерФайла.ПередОбновлениемДанныхФайла(Контекст); + Если Версия.ТипХраненияФайла = Перечисления.ТипыХраненияФайлов.ВТомахНаДиске Тогда СвойстваВерсии = РаботаСФайламиВТомахСлужебный.СвойстваФайлаВТоме(); ЗаполнитьЗначенияСвойств(СвойстваВерсии, Версия); @@ -941,24 +1047,16 @@ Версия.Описание = СведенияОФайле.Комментарий; Версия.Расширение = Расширение; - Если ДвоичныеДанные = Неопределено Тогда - ДвоичныеДанные = РаботаСФайламиСлужебный.ДвоичныеДанныеИзСведенийОФайле(СведенияОФайле); - КонецЕсли; - - Если ТипХраненияФайла = Перечисления.ТипыХраненияФайлов.ВИнформационнойБазе Тогда + Если РаботаСФайламиВХранилищеДвоичныхДанныхСлужебный.ТипХраненияНеИспользуетДиски(ТипХраненияФайла) Тогда ХранилищеФайла = Новый ХранилищеЗначения(ДвоичныеДанные, Новый СжатиеДанных(9)); + Если Версия.Размер = 0 Тогда ДвоичныеДанныеФайла = ХранилищеФайла.Получить(); // ДвоичныеДанные Версия.Размер = ДвоичныеДанныеФайла.Размер(); РаботаСФайламиСлужебный.ПроверитьРазмерФайлаДляЗагрузки(Версия); КонецЕсли; - - // очистим поля - Версия.ПутьКФайлу = ""; - Версия.Том = Справочники.ТомаХраненияФайлов.ПустаяСсылка(); - Иначе // хранение в томе Если Версия.Размер = 0 Тогда @@ -966,7 +1064,7 @@ РаботаСФайламиСлужебный.ПроверитьРазмерФайлаДляЗагрузки(Версия); КонецЕсли; Версия.ФайлХранилище = Новый ХранилищеЗначения(Неопределено); - РаботаСФайламиВТомахСлужебный.ЗаполнитьСведенияОФайле(Версия, ДвоичныеДанные); + РаботаСФайламиВТомахСлужебный.ЗаполнитьСведенияОФайле(Версия, ДвоичныеДанные,,,Версия.Том); КонецЕсли; Если РаботаСФайламиСлужебный.ИзвлекатьТекстыФайловНаСервере() Тогда @@ -978,8 +1076,8 @@ Если СведенияОФайле.НовыйСтатусИзвлеченияТекста <> Неопределено Тогда Версия.СтатусИзвлеченияТекста = СведенияОФайле.НовыйСтатусИзвлеченияТекста; КонецЕсли; - - Если Версия.Размер = 0 И ТипХраненияФайла = Перечисления.ТипыХраненияФайлов.ВИнформационнойБазе Тогда + + Если Версия.Размер = 0 И РаботаСФайламиВХранилищеДвоичныхДанныхСлужебный.ТипХраненияНеИспользуетДиски(ТипХраненияФайла) Тогда ДвоичныеДанныеФайла = ХранилищеФайла.Получить(); // ДвоичныеДанные Версия.Размер = ДвоичныеДанныеФайла.Размер(); КонецЕсли; @@ -1190,21 +1288,20 @@ НовыйФайл.ФайлХранилище = Новый ХранилищеЗначения(ИсходныйФайл.ФайлХранилище.Получить(), Новый СжатиеДанных(9)); ДвоичныеДанные = РаботаСФайлами.ДвоичныеДанныеФайла(ИсходныйФайл); - ДвоичныеДанныеВХранилищеЗначения = Новый ХранилищеЗначения(ДвоичныеДанные, Новый СжатиеДанных(9)); + ДвоичныеДанныеВХранилищеЗначения = Новый ХранилищеЗначения(ДвоичныеДанные, Новый СжатиеДанных(9)); - ТипХраненияФайла = РаботаСФайламиСлужебный.ТипХраненияФайла(НовыйФайл.Размер, НовыйФайл.Расширение); - Если ТипХраненияФайла = Перечисления.ТипыХраненияФайлов.ВИнформационнойБазе Тогда - НовыйФайл.ТипХраненияФайла = РаботаСФайламиСлужебный.ТипХраненияФайлов(); + РаботаСФайловымАрхивомСервер.ЗаполнитьПараметрыХраненияФайла(НовыйФайл, ДвоичныеДанные, НовыйФайл.Размер, НовыйФайл.Расширение); + + Если РаботаСФайламиВХранилищеДвоичныхДанныхСлужебный.ТипХраненияНеИспользуетДиски(НовыйФайл.ТипХраненияФайла) Тогда + ПараметрыЗаписиВИБ = РаботаСФайловымАрхивомСервер.ЗаполненныеПараметрыЗаписиВИнформационнуюБазу(НовыйФайл); + УстановитьПривилегированныйРежим(Истина); - РегистрыСведений.ХранилищеФайлов.ЗаписатьДвоичныеДанные(КопияФайлаСсылка, ДвоичныеДанные); - РегистрыСведений.ХранилищеФайлов.ЗаписатьДвоичныеДанные(КопияФайлаСсылка, ДвоичныеДанные); + РегистрыСведений.ХранилищеФайлов.ЗаписатьДвоичныеДанные(КопияФайлаСсылка, ДвоичныеДанные, ПараметрыЗаписиВИБ); УстановитьПривилегированныйРежим(Ложь); Иначе - НовыйФайл.Том = Неопределено; - НовыйФайл.ПутьКФайлу = Неопределено; - НовыйФайл.ТипХраненияФайла = Неопределено; - РаботаСФайламиВТомахСлужебный.ДобавитьФайл(НовыйФайл, ДвоичныеДанные); + РаботаСФайламиВТомахСлужебный.ДобавитьФайл(НовыйФайл, ДвоичныеДанные,,,НовыйФайл.Том); + КонецЕсли; НовыйФайл.Записать(); @@ -1236,6 +1333,7 @@ КонецЕсли; РаботаСФайламиПереопределяемый.ЗаполнитьРеквизитыФайлаИзИсходногоФайла(НовыйФайл, ИсходныйФайл); + Возврат НовыйФайл; КонецФункции @@ -2101,18 +2199,24 @@ // Получает данные файла для открытия и читает из общих настроек ПапкаДляСохранитьКак. // // Параметры: -// ФайлИлиВерсияСсылка - СправочникСсылка.Файлы -// - СправочникСсылка.ВерсииФайлов - файл или версия файла. -// ИдентификаторФормы - УникальныйИдентификатор - уникальный идентификатор формы. -// РабочийКаталогВладельца - Строка - рабочий каталог владельца файла. +// ФайлИлиВерсияСсылка - СправочникСсылка.Файлы - файла. +// ДополнительныеПараметры - см. РаботаСФайламиКлиентСервер.ДополнительныеПараметрыДанныеФайлаДляСохранения. // // Возвращаемое значение: // Структура - структура с данными файла. // -Функция ДанныеФайлаДляСохранения(ФайлСсылка, ВерсияСсылка = Неопределено, ИдентификаторФормы = Неопределено, - РабочийКаталогВладельца = Неопределено) Экспорт +Функция ДанныеФайлаДляСохранения(Знач ФайлСсылка, Знач ДополнительныеПараметры = Неопределено) Экспорт - ДанныеФайла = ДанныеФайлаДляОткрытия(ФайлСсылка, ВерсияСсылка, ИдентификаторФормы, РабочийКаталогВладельца); + Если ДополнительныеПараметры = Неопределено Тогда + ДополнительныеПараметры = РаботаСФайламиКлиентСервер.ДополнительныеПараметрыДанныеФайлаДляСохранения(); + КонецЕсли; + + ДанныеФайла = ДанныеФайлаДляОткрытия(ФайлСсылка, + ДополнительныеПараметры.ВерсияФайла, + ДополнительныеПараметры.ИдентификаторФормы, + ДополнительныеПараметры.РабочийКаталогВладельца, + , + ДополнительныеПараметры.ПараметрыПолученияФайла); ПапкаДляСохранитьКак = ОбщегоНазначения.ХранилищеОбщихНастроекЗагрузить("НастройкиПрограммы", "ПапкаДляСохранитьКак"); @@ -3037,6 +3141,7 @@ КонецФункции + // Проверяет наличие файла на компьютере. // // Параметры: @@ -3062,7 +3167,7 @@ Возврат Ложь; КонецЕсли; - Если ФайлОбъект.ТипХраненияФайла = Перечисления.ТипыХраненияФайлов.ВИнформационнойБазе Тогда + Если РаботаСФайламиВХранилищеДвоичныхДанныхСлужебный.ТипХраненияНеИспользуетДиски(ФайлОбъект.ТипХраненияФайла) Тогда Результат = РаботаСФайлами.ХранилищеФайлаИзИнформационнойБазы(ФайлОбъект.Ссылка); Если Результат <> Неопределено Тогда diff --git a/SSL/src/CommonModules/РаботаСФайламиСлужебныйКлиент/Module.bsl b/SSL/src/CommonModules/РаботаСФайламиСлужебныйКлиент/Module.bsl index ebcdd01b9..7fcb95ff6 100644 --- a/SSL/src/CommonModules/РаботаСФайламиСлужебныйКлиент/Module.bsl +++ b/SSL/src/CommonModules/РаботаСФайламиСлужебныйКлиент/Module.bsl @@ -1,5 +1,5 @@ /////////////////////////////////////////////////////////////////////////////////////////////////////// -// Copyright (c) 2024, ООО 1С-Софт +// Copyright (c) 2025, ООО 1С-Софт // Все права защищены. Эта программа и сопроводительные материалы предоставляются // в соответствии с условиями лицензии Attribution 4.0 International (CC BY 4.0) // Текст лицензии доступен по ссылке: @@ -8,6 +8,62 @@ #Область СлужебныйПрограммныйИнтерфейс +Процедура ОткрытьФайлСлужебный(Знач ДанныеФайла, Знач ДляРедактирования = Ложь) Экспорт + + Если ДляРедактирования Тогда + РедактироватьФайл(Неопределено, ДанныеФайла); + Иначе + ОткрытьФайлСОповещением(Неопределено, ДанныеФайла, , ДляРедактирования); + КонецЕсли; + +КонецПроцедуры + +Процедура СохранитьФайлКакСлужебный(Знач ДанныеФайла, ОбработчикЗавершения = Неопределено) Экспорт + + Оповещение = Новый ОписаниеОповещения("СохранитьФайлКакПослеСохранения", + РаботаСФайламиСлужебныйКлиент, ОбработчикЗавершения); + + СохранитьКак(Оповещение, ДанныеФайла, Неопределено); + +КонецПроцедуры + +Процедура ДействиеСФайлом(ПараметрыДействияСФайлом) Экспорт + + СтандартнаяОбработка = Истина; + РаботаСФайламиКлиентПереопределяемый.ПриВыполненииДействияСФайлом(ПараметрыДействияСФайлом, СтандартнаяОбработка); + + Если НЕ СтандартнаяОбработка Тогда + Возврат; + КонецЕсли; + + ПрисоединенныйФайл = ПараметрыДействияСФайлом.ПрисоединенныйФайл; + ВерсияФайла = ПараметрыДействияСФайлом.ВерсияСсылка; + ФормаВладелец = ПараметрыДействияСФайлом.ФормаВладелец; + ИмяМетода = ПараметрыДействияСФайлом.ИмяМетодаПолученияФайла; + + Если ИмяМетода = "РаботаСФайламиСлужебный.ДанныеФайлаДляОткрытияАсинхронный" + Или ИмяМетода = "РаботаСФайламиСлужебный.ДанныеФайлаДляСохраненияАсинхронный" Тогда + ИмяПроцедурыОповещения = "ЗавершитьДействиеСФайлом"; + ИначеЕсли ИмяМетода = "РаботаСФайламиСлужебный.ДанныеФайлаУправлениеЭлектроннойПочтойАсинхронный" Тогда + ИмяПроцедурыОповещения = "ЗавершитьДействиеСФайломУправлениеЭлектроннойПочтой"; + Иначе + ВызватьИсключение(СтроковыеФункцииКлиентСервер.ПодставитьПараметрыВСтроку( + НСтр("ru = 'Используется непредусмотренный метод получения файла: %1'"), ИмяМетода)); + КонецЕсли; + + ПараметрыДлительнойОперации = ПараметрыДлительнойОперации(ПараметрыДействияСФайлом); + + ДлительнаяОперация = РаботаСФайламиСлужебныйВызовСервера.НачатьДействиеСФайлом(ПараметрыДлительнойОперации, ИмяМетода); + + ОписаниеОповещения = Новый ОписаниеОповещения(ИмяПроцедурыОповещения, РаботаСФайламиСлужебныйКлиент, ПараметрыДействияСФайлом.ПараметрыДействия); + + ПараметрыОжидания = ДлительныеОперацииКлиент.ПараметрыОжидания(ФормаВладелец); + ПараметрыОжидания.ТекстСообщения = НСтр("ru = 'Получение файла'"); + + ДлительныеОперацииКлиент.ОжидатьЗавершение(ДлительнаяОперация, ОписаниеОповещения, ПараметрыОжидания); + +КонецПроцедуры + // Возвращает путь к рабочему каталогу пользователя. Функция РабочийКаталогПользователя() Экспорт @@ -1417,8 +1473,8 @@ Если Не ЗначениеЗаполнено(ДополнительныеПараметры.СтрокаПодписи.АдресПодписи) И ОбщегоНазначенияКлиент.ПодсистемаСуществует("СтандартныеПодсистемы.СервисМобильнойПодписи") Тогда - МодульСервисМобильнойПодписиКлиент = ОбщегоНазначенияКлиент.ОбщийМодуль("СервисМобильнойПодписиКлиент"); - МодульСервисМобильнойПодписиКлиент.ПроверитьОжидаемуюПодпись( + МодульСервисМобильнойПодписиСлужебныйКлиент = ОбщегоНазначенияКлиент.ОбщийМодуль("СервисМобильнойПодписиСлужебныйКлиент"); + МодульСервисМобильнойПодписиСлужебныйКлиент.ПроверитьОжидаемуюПодпись( Новый ОписаниеОповещения("ПроверитьПодписиПослеПроверкиСтроки", ЭтотОбъект, ДополнительныеПараметры), ДополнительныеПараметры.Данные, ДополнительныеПараметры.СтрокаПодписи.ИдентификаторПодписи, ПараметрыПроверкиПодписи); Возврат; @@ -1491,6 +1547,9 @@ Параметры.Вставить("Сообщение", НСтр("ru = 'Размер файла в рабочем каталоге на компьютере и его копии в приложении отличается. + | + |В некоторых случаях размер файла меняется, хотя его содержимое не затрагивается. + |Например, после повторного сохранения или обновлении служебной информации. | |Взять файл из приложения и заменить им существующий на компьютере или |открыть существующий без обновления?'")); @@ -3671,9 +3730,14 @@ "", ПараметрыВыполнения.УникальныйИдентификатор); Иначе - Адрес = РаботаСФайламиСлужебныйВызовСервера.ПолучитьНавигационнуюСсылкуДляОткрытия( - ПараметрыВыполнения.ДанныеФайла.Версия, ПараметрыВыполнения.УникальныйИдентификатор); - + Если ПараметрыВыполнения.ДанныеФайла.Свойство("СсылкаНаДвоичныеДанныеФайла") + И ЗначениеЗаполнено(ПараметрыВыполнения.ДанныеФайла.СсылкаНаДвоичныеДанныеФайла) Тогда + Адрес = ПараметрыВыполнения.ДанныеФайла.СсылкаНаДвоичныеДанныеФайла; + Иначе + Адрес = РаботаСФайламиСлужебныйВызовСервера.ПолучитьНавигационнуюСсылкуДляОткрытия( + ПараметрыВыполнения.ДанныеФайла.Версия, ПараметрыВыполнения.УникальныйИдентификатор); + КонецЕсли; + ИмяФайла = ОбщегоНазначенияКлиентСервер.ПолучитьИмяСРасширением( ПараметрыВыполнения.ДанныеФайла.ПолноеНаименованиеВерсии, ПараметрыВыполнения.ДанныеФайла.Расширение); @@ -4612,6 +4676,149 @@ #КонецОбласти +#Область ДействиеСФайлом + +// Обработчик оповещения, вызываемый из РаботаСФайламиСлужебныйКлиент.ДействиеСФайлом для выполнения операций, +// завершающих действие с файлом. +// Вызывается для методов РаботаСФайламиСлужебный.ДанныеФайлаДляОткрытияАсинхронный и РаботаСФайламиСлужебный.ДанныеФайлаДляСохраненияАсинхронный. +// +// Параметры: +// РезультатВыполнения - Структура - см. ДлительныеОперацииКлиент.НовыйРезультатДлительнойОперации() +// ДополнительныеПараметры - Произвольный - произвольные данные, переданные в описании оповещения. +// +Процедура ЗавершитьДействиеСФайлом(РезультатВыполнения, ДополнительныеПараметры) Экспорт + + Если РезультатВыполнения = Неопределено Тогда + Возврат; + КонецЕсли; + + Если РезультатВыполнения.Статус = "Ошибка" Тогда + + СтандартныеПодсистемыКлиент.ВывестиИнформациюОбОшибке(РезультатВыполнения.ИнформацияОбОшибке); + Возврат; + КонецЕсли; + + ДанныеФайла = ПолучитьИзВременногоХранилища(РезультатВыполнения.АдресРезультата); + + АктуализироватьСпискиПрисоединенныхФайлов(ДанныеФайла); + + Если ДополнительныеПараметры.ВидДействия = "ОткрытьФайл" Тогда + + Если ДополнительныеПараметры.ОповещатьЕслиЗашифрован И ДанныеФайла.Зашифрован Тогда + // Файл может быть изменен в другом сеансе. + ОповеститьОбИзменении(ДанныеФайла.Ссылка); + Возврат; + КонецЕсли; + + ОткрытьФайлСлужебный(ДанныеФайла, ДополнительныеПараметры.ФайлРедактируется); + + ИначеЕсли ДополнительныеПараметры.ВидДействия = "ОткрытьВерсиюФайла" Тогда + + ОткрытьВерсиюФайла(Неопределено, ДанныеФайла, ДополнительныеПараметры.УникальныйИдентификатор); + + ИначеЕсли ДополнительныеПараметры.ВидДействия = "ОткрытьФайлСОповещением" Тогда + + ОткрытьФайлСОповещением(Неопределено, ДанныеФайла); + + ИначеЕсли ДополнительныеПараметры.ВидДействия = "ВыбратьРежимИРедактироватьФайл" Тогда + + ПараметрыОбработчика = Новый Структура; + ПараметрыОбработчика.Вставить("ДанныеФайла", ДанныеФайла); + Обработчик = Новый ОписаниеОповещения("СписокВыборПослеВыбораРежимаРедактирования", ДополнительныеПараметры.ФормаВладелец, ПараметрыОбработчика); + + ВыбратьРежимИРедактироватьФайл(Обработчик, ДанныеФайла, ДополнительныеПараметры.ДоступностьКомандыРедактировать); + + ИначеЕсли ДополнительныеПараметры.ВидДействия = "СохранитьКак" Тогда + + СохранитьКак(Неопределено, ДанныеФайла, ДополнительныеПараметры.УникальныйИдентификатор); + + КонецЕсли; + +КонецПроцедуры + +// Обработчик оповещения, вызываемый из РаботаСФайламиСлужебныйКлиент.ДействиеСФайлом для выполнения операций, +// завершающих действие с файлом. +// Вызывается для метода РаботаСФайламиСлужебный.ДанныеФайлаУправлениеЭлектроннойПочтойАсинхронный. +// +// Параметры: +// РезультатВыполнения - Структура - см. ДлительныеОперацииКлиент.НовыйРезультатДлительнойОперации() +// ДополнительныеПараметры - Произвольный - произвольные данные, переданные в описании оповещения. +// +Процедура ЗавершитьДействиеСФайломУправлениеЭлектроннойПочтой(РезультатВыполнения, ДополнительныеПараметры) Экспорт + + Если РезультатВыполнения = Неопределено Тогда + Возврат; + КонецЕсли; + + Если РезультатВыполнения.Статус = "Ошибка" Тогда + + СтандартныеПодсистемыКлиент.ВывестиИнформациюОбОшибке(РезультатВыполнения.ИнформацияОбОшибке); + Возврат; + КонецЕсли; + + ДанныеФайла = ПолучитьИзВременногоХранилища(РезультатВыполнения.АдресРезультата); + + Если ДополнительныеПараметры.ВидДействия = "ОткрытьФайл" Тогда + + ОткрытьФайлСлужебный(ДанныеФайла, ДополнительныеПараметры.ДляРедактирования); + + ИначеЕсли ДополнительныеПараметры.ВидДействия = "СохранитьКак" Тогда + + СохранитьФайлКакСлужебный(ДанныеФайла); + + КонецЕсли; + +КонецПроцедуры + +Функция ПараметрыДлительнойОперации(ПараметрыДействияСФайлом) + + ПрисоединенныйФайл = ПараметрыДействияСФайлом.ПрисоединенныйФайл; + ВерсияФайла = ПараметрыДействияСФайлом.ВерсияСсылка; + ИдентификаторВладельца = ПараметрыДействияСФайлом.ФормаВладелец.УникальныйИдентификатор; + ИмяМетода = ПараметрыДействияСФайлом.ИмяМетодаПолученияФайла; + + Результат = Новый Структура; + Результат.Вставить("ИдентификаторВладельца", ИдентификаторВладельца); + + Если ИмяМетода = "РаботаСФайламиСлужебный.ДанныеФайлаДляОткрытияАсинхронный" + Или ИмяМетода = "РаботаСФайламиСлужебный.ДанныеФайлаДляСохраненияАсинхронный" Тогда + + Результат.Вставить("ПараметрыМетода", ПараметрыДействияСФайлом.ПараметрыМетода); + + ПараметрыМетода = Результат.ПараметрыМетода; + ПараметрыМетода.ПрисоединенныйФайл = ?(ЗначениеЗаполнено(ПрисоединенныйФайл), ПрисоединенныйФайл, Неопределено); + ПараметрыМетода.ВерсияФайла = ?(ЗначениеЗаполнено(ВерсияФайла), ВерсияФайла, Неопределено); + ПараметрыМетода.ИдентификаторФормы = ИдентификаторВладельца; + ПараметрыМетода.ПараметрыПолученияФайла = РаботаСФайламиКлиентСервер.ПараметрыПолученияФайла(); + + ПараметрыПолученияФайла = ПараметрыМетода.ПараметрыПолученияФайла; + + ПараметрыПолученияФайла.АдресВРодительскомСеансе = ПоместитьВоВременноеХранилище(Неопределено, ИдентификаторВладельца); + ПараметрыПолученияФайла.АдресТекущейВерсииВРодительскомСеансе = ПоместитьВоВременноеХранилище(Неопределено, ИдентификаторВладельца); + ЗаполнитьЗначенияСвойств(ПараметрыПолученияФайла, ПараметрыДействияСФайлом); + + ИначеЕсли ИмяМетода = "РаботаСФайламиСлужебный.ДанныеФайлаУправлениеЭлектроннойПочтойАсинхронный" Тогда + + Результат.Вставить("ПараметрыМетода", ПараметрыДействияСФайлом.ПараметрыМетода); + + ПараметрыМетода = Результат.ПараметрыМетода; + ПараметрыМетода.ПрисоединенныйФайл = ПрисоединенныйФайл; + ПараметрыМетода.ИдентификаторФормы = ИдентификаторВладельца; + ПараметрыМетода.ДляРедактирования = ПараметрыДействияСФайлом.ПараметрыДействия.ДляРедактирования; + ПараметрыМетода.ПараметрыПолученияФайла = РаботаСФайламиКлиентСервер.ПараметрыПолученияФайла(); + + ПараметрыПолученияФайла = ПараметрыМетода.ПараметрыПолученияФайла; + ПараметрыПолученияФайла.АдресВРодительскомСеансе = ПоместитьВоВременноеХранилище(Неопределено, ИдентификаторВладельца); + ЗаполнитьЗначенияСвойств(ПараметрыПолученияФайла, ПараметрыДействияСФайлом); + + КонецЕсли; + + Возврат Результат; + +КонецФункции + +#КонецОбласти + //////////////////////////////////////////////////////////////////////////////// // Освобождение файлов без обновления. @@ -4850,8 +5057,12 @@ Если ТипЗнч(Контекст.ДанныеФайла) <> Тип("Структура") Или Не ЗначениеЗаполнено(Контекст.ДанныеФайла.СсылкаНаДвоичныеДанныеФайла) Тогда + ДанныеФайлаДополнительныеПараметры = РаботаСФайламиКлиентСервер.ПараметрыДанныхФайла(); + ДанныеФайлаДополнительныеПараметры.ИдентификаторФормы = Контекст.ИдентификаторФормы; + ДанныеФайлаДополнительныеПараметры.ДляРедактирования = Контекст.ДляРедактирования; + Контекст.Вставить("ДанныеФайла", РаботаСФайламиСлужебныйВызовСервера.ПолучитьДанныеФайла( - Контекст.ПрисоединенныйФайл, Контекст.ИдентификаторФормы, Истина, Контекст.ДляРедактирования)); + Контекст.ПрисоединенныйФайл, ДанныеФайлаДополнительныеПараметры)); КонецЕсли; Контекст.Вставить("ЗаголовокОшибки", @@ -4983,8 +5194,13 @@ ДополнительныеПараметры.Свойство("ПолноеИмяФайла", Контекст.ПолноеИмяПомещаемогоФайла); Если ТипЗнч(Контекст.ДанныеФайла) <> Тип("Структура") Тогда + + ДанныеФайлаДополнительныеПараметры = РаботаСФайламиКлиентСервер.ПараметрыДанныхФайла(); + ДанныеФайлаДополнительныеПараметры.ИдентификаторФормы = Контекст.ИдентификаторФормы; + ДанныеФайлаДополнительныеПараметры.ПолучатьСсылкуНаДвоичныеДанные = Ложь; + Контекст.Вставить("ДанныеФайла", РаботаСФайламиСлужебныйВызовСервера.ПолучитьДанныеФайла( - Контекст.ПрисоединенныйФайл, Контекст.ИдентификаторФормы, Ложь)); + Контекст.ПрисоединенныйФайл, ДанныеФайлаДополнительныеПараметры)); КонецЕсли; Контекст.Вставить("ЗаголовокОшибки", @@ -6808,7 +7024,7 @@ // ДанныеФайла - Структура // УникальныйИдентификатор - УникальныйИдентификатор - идентификатор формы.. // -Процедура СохранитьКак(ОбработчикРезультата, ДанныеФайла, УникальныйИдентификатор) Экспорт +Процедура СохранитьКак(ОбработчикРезультата, ДанныеФайла, УникальныйИдентификатор) ПараметрыВыполнения = Новый Структура; ПараметрыВыполнения.Вставить("ОбработчикРезультата", ОбработчикРезультата); @@ -10974,7 +11190,7 @@ // Параметры: // ДанныеФайла - см. РаботаСФайламиСлужебныйВызовСервера.ДанныеФайла // -Процедура ВыбратьРежимИРедактироватьФайл(ОбработчикРезультата, ДанныеФайла, ДоступностьКомандыРедактировать) Экспорт +Процедура ВыбратьРежимИРедактироватьФайл(ОбработчикРезультата, ДанныеФайла, ДоступностьКомандыРедактировать) ПерсональныеНастройки = ПерсональныеНастройкиРаботыСФайлами(); РезультатОткрыть = ?(ДанныеФайла.ФайлРедактируетТекущийПользователь И ДоступностьКомандыРедактировать, @@ -11076,7 +11292,10 @@ Процедура НапечататьФайлСоШтампом(Ссылка, УникальныйИдентификатор) Экспорт - ДанныеФайла = РаботаСФайламиСлужебныйВызовСервера.ПолучитьДанныеФайла(Ссылка, УникальныйИдентификатор, Истина); + ДополнительныеПараметры = РаботаСФайламиКлиентСервер.ПараметрыДанныхФайла(); + ДополнительныеПараметры.ИдентификаторФормы = УникальныйИдентификатор; + + ДанныеФайла = РаботаСФайламиСлужебныйВызовСервера.ПолучитьДанныеФайла(Ссылка, ДополнительныеПараметры); Если Не ДанныеФайла.ПодписанЭП Тогда ПоказатьПредупреждение(, НСтр("ru = 'Печать документа со штампом электронной подписи недоступна.'")); Возврат; @@ -12187,4 +12406,24 @@ КонецФункции +Процедура АктуализироватьСпискиПрисоединенныхФайлов(ДанныеФайла) + + Если Не ДанныеФайла.Свойство("ОбновлятьСпискиФайловНаФормах") Тогда + Возврат; + КонецЕсли; + + Если ДанныеФайла.ОбновлятьСпискиФайловНаФормах Тогда + ПараметрыОповещенияЗаписиФайла = ПараметрыОповещенияЗаписиФайла("ФайлыИзмененыПриРаботеСАрхивом"); + + Если ТипЗнч(ДанныеФайла.Ссылка) = Тип("СправочникСсылка.Файлы") И ЗначениеЗаполнено(ДанныеФайла.Версия) Тогда + ФайлСсылка = ДанныеФайла.Версия; + Иначе + ФайлСсылка = ДанныеФайла.Ссылка; + КонецЕсли; + + Оповестить("Запись_Файл", ПараметрыОповещенияЗаписиФайла, ФайлСсылка); + КонецЕсли; + +КонецПроцедуры + #КонецОбласти \ No newline at end of file diff --git a/SSL/src/CommonModules/РаботаСФайламиСлужебныйКлиентПовтИсп/Module.bsl b/SSL/src/CommonModules/РаботаСФайламиСлужебныйКлиентПовтИсп/Module.bsl index c68514280..7a2f01ff9 100644 --- a/SSL/src/CommonModules/РаботаСФайламиСлужебныйКлиентПовтИсп/Module.bsl +++ b/SSL/src/CommonModules/РаботаСФайламиСлужебныйКлиентПовтИсп/Module.bsl @@ -1,5 +1,5 @@ /////////////////////////////////////////////////////////////////////////////////////////////////////// -// Copyright (c) 2024, ООО 1С-Софт +// Copyright (c) 2025, ООО 1С-Софт // Все права защищены. Эта программа и сопроводительные материалы предоставляются // в соответствии с условиями лицензии Attribution 4.0 International (CC BY 4.0) // Текст лицензии доступен по ссылке: diff --git a/SSL/src/CommonModules/РаботаСФайламиСлужебныйКлиентСервер/Module.bsl b/SSL/src/CommonModules/РаботаСФайламиСлужебныйКлиентСервер/Module.bsl index f558cc490..9266d0121 100644 --- a/SSL/src/CommonModules/РаботаСФайламиСлужебныйКлиентСервер/Module.bsl +++ b/SSL/src/CommonModules/РаботаСФайламиСлужебныйКлиентСервер/Module.bsl @@ -1,5 +1,5 @@ /////////////////////////////////////////////////////////////////////////////////////////////////////// -// Copyright (c) 2024, ООО 1С-Софт +// Copyright (c) 2025, ООО 1С-Софт // Все права защищены. Эта программа и сопроводительные материалы предоставляются // в соответствии с условиями лицензии Attribution 4.0 International (CC BY 4.0) // Текст лицензии доступен по ссылке: diff --git a/SSL/src/CommonModules/РаботаСФайламиСлужебныйПовтИсп/Module.bsl b/SSL/src/CommonModules/РаботаСФайламиСлужебныйПовтИсп/Module.bsl index 0c500d754..7d0213cce 100644 --- a/SSL/src/CommonModules/РаботаСФайламиСлужебныйПовтИсп/Module.bsl +++ b/SSL/src/CommonModules/РаботаСФайламиСлужебныйПовтИсп/Module.bsl @@ -1,5 +1,5 @@ /////////////////////////////////////////////////////////////////////////////////////////////////////// -// Copyright (c) 2024, ООО 1С-Софт +// Copyright (c) 2025, ООО 1С-Софт // Все права защищены. Эта программа и сопроводительные материалы предоставляются // в соответствии с условиями лицензии Attribution 4.0 International (CC BY 4.0) // Текст лицензии доступен по ссылке: diff --git a/SSL/src/CommonModules/РаботаСФайловымАрхивомКлиентСервер/Module.bsl b/SSL/src/CommonModules/РаботаСФайловымАрхивомКлиентСервер/Module.bsl new file mode 100644 index 000000000..be67e5349 --- /dev/null +++ b/SSL/src/CommonModules/РаботаСФайловымАрхивомКлиентСервер/Module.bsl @@ -0,0 +1,57 @@ +/////////////////////////////////////////////////////////////////////////////////////////////////////// +// Copyright (c) 2025, ООО 1С-Софт +// Все права защищены. Эта программа и сопроводительные материалы предоставляются +// в соответствии с условиями лицензии Attribution 4.0 International (CC BY 4.0) +// Текст лицензии доступен по ссылке: +// https://creativecommons.org/licenses/by/4.0/legalcode +/////////////////////////////////////////////////////////////////////////////////////////////////////// + +#Область СлужебныйПрограммныйИнтерфейс + +// Проверяет использование томов хранения файлов для переданного способа хранения. +// +// Параметры: +// ПроверяемыйСпособХраненияФайлов - Строка - см. значения для "Константа.СпособХраненияФайлов". +// +// Возвращаемое значение: +// Булево +// +Функция СпособХраненияИспользуетТома(ПроверяемыйСпособХраненияФайлов) Экспорт + + Возврат ПроверяемыйСпособХраненияФайлов <> "ВИнформационнойБазе"; + +КонецФункции + +#КонецОбласти + +#Область СлужебныеПроцедурыИФункции + +// Изменяет видимость элементов управления "ГруппаПути" и "ИмяХранилищаДвоичныхДанных" на форме элемента справочника "ТомаХраненияФайлов". +// +// Параметры: +// Форма - ФормаКлиентскогоПриложения - форма-владелец элементов управления. +// ПараметрыВидимостиРеквизитов - Структура - см. РаботаСФайловымАрхивомКлиентСервер.ПараметрыВидимостиРеквизитовОтСпособаХраненияФайлов +// +Процедура ОбновитьВидимостьРеквизитовТомаХраненияФайлов(Форма, ПараметрыВидимостиРеквизитов) Экспорт + + Форма.Элементы.ГруппаПути.Видимость = ПараметрыВидимостиРеквизитов.ВидимостьГруппаПути; + Форма.Элементы.ИмяХранилищаДвоичныхДанных.Видимость = ПараметрыВидимостиРеквизитов.ВидимостьИмяХранилищаДвоичныхДанных; + +КонецПроцедуры + +// Возвращает коллекцию параметров видимости реквизитов на форме элемента справочника "ТомаХраненияФайлов" +// +// Возвращаемое значение: +// Структура +// +Функция ПараметрыВидимостиРеквизитовОтСпособаХраненияФайлов() Экспорт + + Результат = Новый Структура; + Результат.Вставить("ВидимостьГруппаПути" , Ложь); + Результат.Вставить("ВидимостьИмяХранилищаДвоичныхДанных", Ложь); + + Возврат Результат; + +КонецФункции + +#КонецОбласти \ No newline at end of file diff --git a/SSL/src/CommonModules/РаботаСФайловымАрхивомКлиентСервер/РаботаСФайловымАрхивомКлиентСервер.mdo b/SSL/src/CommonModules/РаботаСФайловымАрхивомКлиентСервер/РаботаСФайловымАрхивомКлиентСервер.mdo new file mode 100644 index 000000000..85c356507 --- /dev/null +++ b/SSL/src/CommonModules/РаботаСФайловымАрхивомКлиентСервер/РаботаСФайловымАрхивомКлиентСервер.mdo @@ -0,0 +1,12 @@ + + + РаботаСФайловымАрхивомКлиентСервер + + ru + Работа с файловым архивом клиент сервер + + true + true + true + true + diff --git a/SSL/src/CommonModules/РаботаСФайловымАрхивомСервер/Module.bsl b/SSL/src/CommonModules/РаботаСФайловымАрхивомСервер/Module.bsl new file mode 100644 index 000000000..1e926a04e --- /dev/null +++ b/SSL/src/CommonModules/РаботаСФайловымАрхивомСервер/Module.bsl @@ -0,0 +1,2931 @@ +/////////////////////////////////////////////////////////////////////////////////////////////////////// +// Copyright (c) 2025, ООО 1С-Софт +// Все права защищены. Эта программа и сопроводительные материалы предоставляются +// в соответствии с условиями лицензии Attribution 4.0 International (CC BY 4.0) +// Текст лицензии доступен по ссылке: +// https://creativecommons.org/licenses/by/4.0/legalcode +/////////////////////////////////////////////////////////////////////////////////////////////////////// + +#Область СлужебныйПрограммныйИнтерфейс + +// Возвращает двоичные данные файла, извлеченные из Zip-архива. +// +// Параметры: +// ДвоичныеДанныеZipАрхива - ДвоичныеДанные - двоичные данные файла Zip-архива +// ПрисоединенныйФайл - ОпределяемыйТип.ПрисоединенныйФайл - ссылка на элемент справочника с файлом. +// +// Возвращаемое значение: +// - ДвоичныеДанные +// - Неопределено +// +Функция ДвоичныеДанныеФайлаИзвлеченногоИзZipАрхива(ДвоичныеДанныеZipАрхива, ПрисоединенныйФайл) Экспорт + + Результат = Неопределено; + + Если ТипЗнч(ДвоичныеДанныеZipАрхива) = Тип("ДвоичныеДанные") Тогда + + ОписаниеОшибки = НСтр("ru = 'Ошибка при извлечении файла из Zip-архива'"); + + ВременныйКаталог = НовыйВременныйКаталогДляРаботыСZipАрхивом(ОписаниеОшибки); + + Попытка + ЗначенияРеквизитов = ОбщегоНазначения.ЗначенияРеквизитовОбъекта(ПрисоединенныйФайл, "Наименование,Расширение"); + + ИмяИзвлекаемогоФайла = ОбщегоНазначенияКлиентСервер.ПолучитьИмяСРасширением(ЗначенияРеквизитов.Наименование, ЗначенияРеквизитов.Расширение); + + ДанныеИзвлеченногоФайла = ИзвлечьФайлИзZipАрхива(ДвоичныеДанныеZipАрхива, ИмяИзвлекаемогоФайла, ВременныйКаталог); + + Результат = Новый ДвоичныеДанные(ДанныеИзвлеченногоФайла.ИмяФайла); + + УдалитьВременныйКаталогДляРаботыСZipАрхивом(ВременныйКаталог); + + Исключение + + УдалитьВременныйКаталогДляРаботыСZipАрхивом(ВременныйКаталог); + + ИнформацияОбОшибке = ИнформацияОбОшибке(); + Уточнение = ОбщегоНазначенияКлиентСервер.УточнениеИсключения(ИнформацияОбОшибке, ОписаниеОшибки); + + ВызватьИсключение(Уточнение.Текст, Уточнение.Категория,,, ИнформацияОбОшибке); + КонецПопытки; + КонецЕсли; + + Возврат Результат; + +КонецФункции + +// Проверяет доступность хранилищ двоичных данных. +// Использование хранилищ двоичных данных поддерживается в БСП, начиная с версии платформы 8.3.26.1000. +// Хранилища двоичных данных недоступны для файловых информационных баз. +// Хранилища двоичных данных недоступны для распределенной информационной базы. +// +// Возвращаемое значение: +// Булево +// +Функция ДоступныХранилищаДвоичныхДанных() Экспорт + + Результат = Не ОбщегоНазначения.ИнформационнаяБазаФайловая(); + + Если Результат Тогда + Результат = Не ОбщегоНазначения.ЭтоРаспределеннаяИнформационнаяБаза() + КонецЕсли; + + Если Результат Тогда + Результат = ДоступныИзмененияВСпособахХраненияФайлов(); + КонецЕсли; + + Возврат Результат; + +КонецФункции + +// Проверяет версию платформы, начиная с которой доступны изменения в способах хранения файлов +// Изменились названия способов хранения и стали доступны способы хранения в хранилищах двоичных данных. +// +// Возвращаемое значение: +// Булево +// +Функция ДоступныИзмененияВСпособахХраненияФайлов() Экспорт + + Результат = Истина; + + Инфо = Новый СистемнаяИнформация; + МинимальнаяВерсия = МинимальноНеобходимаяВерсияПлатформыДляРаботыСХранилищамиДвоичныхДанных(); + + Если ОбщегоНазначенияКлиентСервер.СравнитьВерсии( + Инфо.ВерсияПриложения, МинимальнаяВерсия) < 0 Тогда + Результат = Ложь; + КонецЕсли; + + Возврат Результат; + +КонецФункции + +// Проверяет доступность функциональности файлового архива. +// Файловый архив недоступен для прикладных решений, отличных от версии КОРП. +// Файловый архив недоступен для файловых информационных баз. +// Файловый архив недоступен для распределенной информационной базы. +// +// Возвращаемое значение: +// Булево +// +Функция ДоступенФайловыйАрхив() Экспорт + + Результат = РаботаСФайламиСлужебный.НастройкиФайлов().ДоступенФайловыйАрхив; + + Если Результат Тогда + Результат = Не ОбщегоНазначения.ИнформационнаяБазаФайловая(); + КонецЕсли; + + Если Результат Тогда + Результат = Не ОбщегоНазначения.ЭтоРаспределеннаяИнформационнаяБаза() + КонецЕсли; + + Возврат Результат; + +КонецФункции + +// Возвращает способ хранения файлов в томах хранения, соответствующий переданному способу хранения файлов. +// +// Параметры: +// СпособХраненияФайла - Строка - см. значения константы "СпособХраненияФайлов" +// +// Возвращаемое значение: +// - ПеречислениеСсылка.СпособыХраненияФайлов - если переданный способ хранения файла не равен "ВИнформационнойБазеИТомахНаДиске". +// - Строка - если переданный способ хранения файла равен "ВИнформационнойБазеИТомахНаДиске". +// +Функция СпособХраненияДляПодбораТомовХранения(Знач СпособХраненияФайла = "") Экспорт + + Если Не ЗначениеЗаполнено(СпособХраненияФайла) Тогда + СпособХраненияФайла = СпособХраненияФайлов(); + КонецЕсли; + + Если СпособХраненияФайла = "ВТомахНаДиске" Тогда + Результат = Перечисления.СпособыХраненияФайлов.ВСетевыхКаталогах; + ИначеЕсли СпособХраненияФайла = "ВоВстроенномХранилищеДвоичныхДанных" Тогда + Результат = Перечисления.СпособыХраненияФайлов.ВоВстроенномХранилище; + ИначеЕсли СпособХраненияФайла = "ВоВнешнемХранилищеДвоичныхДанных" Тогда + Результат = Перечисления.СпособыХраненияФайлов.ВоВнешнемХранилищеПоПротоколуS3; + ИначеЕсли СпособХраненияФайла = "ВИнформационнойБазеИТомахНаДиске" Тогда + Результат = "ВТомахСЛюбымСпособомХранения"; + КонецЕсли; + + Возврат Результат; + +КонецФункции + +// Возвращает массив имен реквизитов справочника "ХранилищеДвоичныхДанных", соответствующий переданному способу хранения +// файлов. +// +// Параметры: +// СпособХраненияФайлов - Строка - см. значения константы "СпособХраненияФайлов" +// +// Возвращаемое значение: +// Массив +// +Функция ИменаРеквизитовХраненияФайловПоСпособуХранения(СпособХраненияФайлов) Экспорт + + Результат = Новый Массив; + Результат.Добавить("ДвоичныеДанные"); + + Если СпособХраненияФайлов = "ВоВстроенномХранилищеДвоичныхДанных" Тогда + + Результат.Добавить("ДвоичныеДанныеВОперационномВстроенномХранилище"); + + ИначеЕсли СпособХраненияФайлов = "ВоВнешнемХранилищеДвоичныхДанных" Тогда + + Результат.Добавить("ДвоичныеДанныеВОперационномВнешнемХранилище"); + + ИначеЕсли СпособХраненияФайлов = "ВИнформационнойБазеИТомахНаДиске" Тогда + + Результат.Добавить("ДвоичныеДанныеВОперационномВстроенномХранилище"); + Результат.Добавить("ДвоичныеДанныеВОперационномВнешнемХранилище"); + + КонецЕсли; + + Возврат Результат; + +КонецФункции + +// Управляет видимостью поля формы списка НомерКартинкиЭтоАрхив в зависимости от использования функциональности +// файлового архива. +// +// Параметры: +// Форма - ФормаКлиентскогоПриложения +// +Процедура ВидимостьПоляСписокНомерКартинкиЭтоАрхив(ПолеФормы) Экспорт + + ПолеФормы.Видимость = ИспользоватьФайловыйАрхив(); + +КонецПроцедуры + +#Область ОбработчикиСобытийПодсистемКонфигурации + +// См. ОбновлениеИнформационнойБазыБСП.ПриДобавленииОбработчиковОбновления. +Процедура ПриДобавленииОбработчиковОбновления(Обработчики) Экспорт + + Обработчик = Обработчики.Добавить(); + Обработчик.НачальноеЗаполнение = Истина; + Обработчик.ОбщиеДанные = Истина; + Обработчик.Версия = "3.1.12.38"; + Обработчик.Процедура = "РаботаСФайловымАрхивомСервер.ПервоначальноеЗаполнениеКонстант"; + Обработчик.РежимВыполнения = "Оперативно"; + + Обработчик = Обработчики.Добавить(); + Обработчик.НачальноеЗаполнение = Истина; + Обработчик.Версия = "3.1.12.38"; + Обработчик.Процедура = "РаботаСФайловымАрхивомСервер.ПервоначальноеЗаполнениеНастройкиРаботыСФайловымАрхивом"; + Обработчик.РежимВыполнения = "Оперативно"; + + Обработчик = Обработчики.Добавить(); + Обработчик.Версия = "3.1.12.38"; + Обработчик.Комментарий = НСтр("ru = 'Заполнение новых реквизитов в справочнике ""Тома хранения файлов""'"); + Обработчик.ОбщиеДанные = Истина; + Обработчик.Процедура = "Справочники.ТомаХраненияФайлов.ОбработатьДанныеДляПереходаНаНовуюВерсию"; + Обработчик.РежимВыполнения = "Оперативно"; + + Обработчик = Обработчики.Добавить(); + Обработчик.Версия = "3.1.12.38"; + Обработчик.Комментарий = НСтр("ru = 'Заполнение недостающих сведений о хранении дедуплицированных файлов.'"); + Обработчик.Идентификатор = Новый УникальныйИдентификатор("c36f86c4-77e8-4fe9-a07e-798d85929cf9"); + Обработчик.Процедура = "РегистрыСведений.СведенияОХраненииДедуплицированныхФайлов.ОбработатьДанныеДляПереходаНаНовуюВерсию"; + Обработчик.РежимВыполнения = "Отложенно"; + Обработчик.ПроцедураЗаполненияДанныхОбновления = "РегистрыСведений.СведенияОХраненииДедуплицированныхФайлов.ЗарегистрироватьДанныеКОбработкеДляПереходаНаНовуюВерсию"; + Обработчик.ПроцедураПроверки = "ОбновлениеИнформационнойБазы.ДанныеОбновленыНаНовуюВерсиюПрограммы"; + Обработчик.ЧитаемыеОбъекты = "РегистрСведений.ХранилищеФайлов"; + Обработчик.ИзменяемыеОбъекты = "РегистрСведений.СведенияОХраненииДедуплицированныхФайлов"; + Обработчик.БлокируемыеОбъекты = "РегистрСведений.ХранилищеФайлов"; + + Обработчик.ПриоритетыВыполнения = ОбновлениеИнформационнойБазы.ПриоритетыВыполненияОбработчика(); + Приоритет = Обработчик.ПриоритетыВыполнения.Добавить(); + Приоритет.Порядок = "Любой"; + +КонецПроцедуры + +#КонецОбласти + +#КонецОбласти + +#Область СлужебныеПроцедурыИФункции + +// Заполняет список значений доступными видами способа хранения файлов в томах хранения файлов. +// +// Параметры: +// СписокВыбора - СписокЗначений - заполняемый список значений. +// ВидТомаХраненияФайлов - ПеречислениеСсылка.ВидыХраненияФайлов +// +Процедура СпособХраненияФайловЗаполнитьСписокВыбора(СписокВыбора, ВидТомаХраненияФайлов) Экспорт + + СписокВыбора.Добавить(Перечисления.СпособыХраненияФайлов.ВСетевыхКаталогах); + + Если ДоступныХранилищаДвоичныхДанных() Тогда + СписокВыбора.Добавить(Перечисления.СпособыХраненияФайлов.ВоВнешнемХранилищеПоПротоколуS3); + Если ВидТомаХраненияФайлов = Перечисления.ВидыХраненияФайлов.ОперационноеХранение Тогда + СписокВыбора.Добавить(Перечисления.СпособыХраненияФайлов.ВоВстроенномХранилище); + КонецЕсли; + КонецЕсли; + +КонецПроцедуры + +// Возвращает значение константы "СпособХраненияФайлов". +// +// Возвращаемое значение: +// Строка - см. Константа.СпособХраненияФайлов +// +Функция СпособХраненияФайлов() Экспорт + + УстановитьПривилегированныйРежим(Истина); + Результат = Константы.СпособХраненияФайлов.Получить(); + + Возврат Результат; + +КонецФункции + +// Возвращает значение константы "ИспользоватьФайловыйАрхив". +// +// Возвращаемое значение: +// Булево - см. Константа.ИспользоватьФайловыйАрхив +// +Функция ИспользоватьФайловыйАрхив() Экспорт + + УстановитьПривилегированныйРежим(Истина); + Результат = Константы.ИспользоватьФайловыйАрхив.Получить(); + + Возврат Результат; + +КонецФункции + +// Возвращает значение константы "РазмерПорцииПеремещаемыхФайлов". +// +// Возвращаемое значение: +// Число - см. Константа.РазмерПорцииПеремещаемыхФайлов +// +Функция РазмерПорцииПеремещаемыхФайлов() + + УстановитьПривилегированныйРежим(Истина); + Результат = Константы.РазмерПорцииПеремещаемыхФайлов.Получить(); + + Если Результат = 0 Тогда + Результат = РазмерПорцииПеремещаемыхФайловЗначениеПоУмолчанию(); + КонецЕсли; + + Возврат Результат; + +КонецФункции + +// Возвращает значение константы "ТекстИнформированияПользователяОНедоступностиФайлаВАрхиве". +// +// Возвращаемое значение: +// Строка - см. Константа.ТекстИнформированияПользователяОНедоступностиФайлаВАрхиве +// +Функция ТекстИнформированияПользователяОНедоступностиФайлаВАрхиве() Экспорт + + УстановитьПривилегированныйРежим(Истина); + Результат = Константы.ТекстИнформированияПользователяОНедоступностиФайлаВАрхиве.Получить(); + УстановитьПривилегированныйРежим(Ложь); + + Если Не ЗначениеЗаполнено(Результат) Тогда + Результат = ТекстИнформированияПользователяОНедоступностиФайлаВАрхивеЗначениеПоУмолчанию(); + КонецЕсли; + + Возврат Результат; + +КонецФункции + +// Возвращает имя реквизита справочника "ХранилищеДвоичныхДанных", соответствующего переданному способу хранения тома. +// +// Параметры: +// СпособХраненияФайлов - ПеречислениеСсылка.СпособыХраненияФайлов - см. реквизит "СпособХраненияФайлов" справочника "ТомаХраненияФайлов" +// +// Возвращаемое значение: +// Строка +// +Функция ИмяРеквизитаХраненияДвоичныхДанныхПоСпособуХраненияТома(СпособХраненияТома) Экспорт + + Результат = ""; + + Если СпособХраненияТома = Перечисления.СпособыХраненияФайлов.ВоВстроенномХранилище Тогда + + Результат = "ДвоичныеДанныеВОперационномВстроенномХранилище"; + + ИначеЕсли СпособХраненияТома = Перечисления.СпособыХраненияФайлов.ВоВнешнемХранилищеПоПротоколуS3 Тогда + + Результат = "ДвоичныеДанныеВОперационномВнешнемХранилище"; + + КонецЕсли; + + Возврат Результат; + +КонецФункции + +// Возвращает тип хранения файла, соответствующий переданному способу хранения файлов. +// +// Параметры: +// СпособХраненияФайла - Строка - см. значения константы "СпособХраненияФайлов" +// +// Возвращаемое значение: +// ПеречислениеСсылка.ТипыХраненияФайлов +// +Функция ТипХраненияФайлаПоСпособуХранения(Знач СпособХраненияФайла = "") Экспорт + + Если ПустаяСтрока(СпособХраненияФайла) Тогда + СпособХраненияФайла = СпособХраненияФайлов(); + КонецЕсли; + + Если СпособХраненияФайла = "ВТомахНаДиске" Тогда + Результат = Перечисления.ТипыХраненияФайлов.ВТомахНаДиске; + ИначеЕсли СпособХраненияФайла = "ВоВстроенномХранилищеДвоичныхДанных" Тогда + Результат = Перечисления.ТипыХраненияФайлов.ВоВстроенномХранилищеДвоичныхДанных; + ИначеЕсли СпособХраненияФайла = "ВоВнешнемХранилищеДвоичныхДанных" Тогда + Результат = Перечисления.ТипыХраненияФайлов.ВоВнешнемХранилищеДвоичныхДанных; + ИначеЕсли СпособХраненияФайла = "ВИнформационнойБазеИТомахНаДиске" Тогда + Результат = Перечисления.ТипыХраненияФайлов.ВТомахТомНеОпределен; + Иначе + Результат = Перечисления.ТипыХраненияФайлов.ВИнформационнойБазе; + КонецЕсли; + + Возврат Результат; + +КонецФункции + +// Возвращает тип хранения файла, соответствующий переданному тому хранения или способу хранения файлов в томах. +// +// Параметры: +// ТомИлиСпособХраненияФайлов - СправочникСсылка.ТомаХраненияФайлов, ПеречислениеСсылка.СпособыХраненияФайлов +// +// Возвращаемое значение: +// - ПеречислениеСсылка.ТипыХраненияФайлов +// - Неопределено +// +Функция ТипХраненияПоТомуХраненияФайлов(ТомИлиСпособХраненияФайлов = Неопределено) Экспорт + + Если ЗначениеЗаполнено(ТомИлиСпособХраненияФайлов) Тогда + + Если ТипЗнч(ТомИлиСпособХраненияФайлов) = Тип("СправочникСсылка.ТомаХраненияФайлов") Тогда + СпособХранения = ОбщегоНазначения.ЗначениеРеквизитаОбъекта(ТомИлиСпособХраненияФайлов, "СпособХраненияФайлов"); + Иначе + СпособХранения = ТомИлиСпособХраненияФайлов; + КонецЕсли; + + Если СпособХранения = Перечисления.СпособыХраненияФайлов.ВСетевыхКаталогах Тогда + Результат = Перечисления.ТипыХраненияФайлов.ВТомахНаДиске; + ИначеЕсли СпособХранения = Перечисления.СпособыХраненияФайлов.ВоВстроенномХранилище Тогда + Результат = Перечисления.ТипыХраненияФайлов.ВоВстроенномХранилищеДвоичныхДанных; + ИначеЕсли СпособХранения = Перечисления.СпособыХраненияФайлов.ВоВнешнемХранилищеПоПротоколуS3 Тогда + Результат = Перечисления.ТипыХраненияФайлов.ВоВнешнемХранилищеДвоичныхДанных; + Иначе + Результат = Неопределено; + КонецЕсли; + Иначе + Результат = Перечисления.ТипыХраненияФайлов.ВИнформационнойБазе; + КонецЕсли; + + Возврат Результат; + +КонецФункции + +// Проверяет наличие в файловом архиве присоединенный файлов, связанных с переданным элементом справочника "ХранилищеДвоичныхДанных". +// +// Параметры: +// ХранилищеДвоичныхДанных - СправочникСсылка.ХранилищеДвоичныхДанных +// +// Возвращаемое значение: +// Булево +// +Функция ХранилищеДвоичныхДанныхПрисутствуетВФайловомАрхиве(ХранилищеДвоичныхДанных) Экспорт + + Запрос = Новый Запрос; + Запрос.Текст = + "ВЫБРАТЬ ПЕРВЫЕ 1 + | СправочникХранилищеДвоичныхДанных.Ссылка КАК Ссылка + |ИЗ + | Справочник.ХранилищеДвоичныхДанных КАК СправочникХранилищеДвоичныхДанных + | ВНУТРЕННЕЕ СОЕДИНЕНИЕ РегистрСведений.ХранилищеФайлов КАК ХранилищеФайлов + | ПО (СправочникХранилищеДвоичныхДанных.Ссылка = &ХранилищеДвоичныхДанных) + | И СправочникХранилищеДвоичныхДанных.Ссылка = ХранилищеФайлов.ХранилищеДвоичныхДанных + | ЛЕВОЕ СОЕДИНЕНИЕ РегистрСведений.СведенияОФайлах КАК СведенияОФайлах + | ПО (ХранилищеФайлов.Файл = СведенияОФайлах.Файл) + | И (НЕ СведенияОФайлах.ПометкаУдаления) + | ЛЕВОЕ СОЕДИНЕНИЕ Справочник.ВерсииФайлов КАК ВерсииФайлов + | ПО (ХранилищеФайлов.Файл = ВерсииФайлов.Ссылка) + | И (НЕ ВерсииФайлов.Владелец.ПометкаУдаления) + |ГДЕ + | НЕ ЕСТЬNULL(СведенияОФайлах.ПометкаУдаления, ЕСТЬNULL(ВерсииФайлов.ПометкаУдаления, ЛОЖЬ)) + | И ЕСТЬNULL(СведенияОФайлах.ДатаПереносаВАрхив, ЕСТЬNULL(ВерсииФайлов.ДатаПереносаВАрхив, ДАТАВРЕМЯ(1, 1, 1))) <> ДАТАВРЕМЯ(1, 1, 1)"; + + Запрос.УстановитьПараметр("ХранилищеДвоичныхДанных", ХранилищеДвоичныхДанных); + + Возврат Не Запрос.Выполнить().Пустой(); + +КонецФункции + +// Проверяет наличие присоединенного файла в файловом архиве. +// +// Параметры: +// ПрисоединенныйФайл - ОпределяемыйТип.ПрисоединенныйФайл, СправочникСсылка.ВерсииФайлов - ссылка на элемент +// справочника с файлом. +// +// Возвращаемое значение: +// Булево +// +Функция ФайлПеренесенВФайловыйАрхив(ПрисоединенныйФайл) Экспорт + + Результат = Ложь; + + Если ЗначениеЗаполнено(ПрисоединенныйФайл) Тогда + Если ТипЗнч(ПрисоединенныйФайл) = Тип("СправочникСсылка.ВерсииФайлов") Тогда + + ДатаПереносаВАрхив = ОбщегоНазначения.ЗначениеРеквизитаОбъекта(ПрисоединенныйФайл, "ДатаПереносаВАрхив"); + + ИначеЕсли ТипЗнч(ПрисоединенныйФайл) = Тип("СправочникСсылка.Файлы") Тогда + + ТекущаяВерсияФайла = ОбщегоНазначения.ЗначениеРеквизитаОбъекта(ПрисоединенныйФайл, "ТекущаяВерсия"); + + ДатаПереносаВАрхив = ОбщегоНазначения.ЗначениеРеквизитаОбъекта(ТекущаяВерсияФайла, "ДатаПереносаВАрхив"); + + Иначе + + Запрос = Новый Запрос; + Запрос.Текст = + "ВЫБРАТЬ + | СведенияОФайлах.ДатаПереносаВАрхив КАК ДатаПереносаВАрхив + |ИЗ + | РегистрСведений.СведенияОФайлах КАК СведенияОФайлах + |ГДЕ + | СведенияОФайлах.Файл = &Файл"; + + Запрос.УстановитьПараметр("Файл", ПрисоединенныйФайл); + + УстановитьПривилегированныйРежим(Истина); + + ВыборкаДанных = Запрос.Выполнить().Выбрать(); + Если ВыборкаДанных.Следующий() Тогда + ДатаПереносаВАрхив = ВыборкаДанных.ДатаПереносаВАрхив; + Иначе + ДатаПереносаВАрхив = Дата(1,1,1); + КонецЕсли; + КонецЕсли; + + Результат = ЗначениеЗаполнено(ДатаПереносаВАрхив); + + КонецЕсли; + + Возврат Результат; + +КонецФункции + +// Возвращает структуру с результатом хеширования переданных двоичных данных. +// +// Параметры: +// ДвоичныеДанные - ДвоичныеДанные, Неопределено +// +// Возвращаемое значение: +// Структура - см. РаботаСФайловымАрхивомСервер.ПараметрыРезультатаХешированияДвоичныхДанных. +// +Функция РезультатХешированияДвоичныхДанных(ДвоичныеДанные) Экспорт + + Хеширование = Новый ХешированиеДанных(ХешФункция.SHA256); + + ЭтоПустыеДвоичныеДанные = (ДвоичныеДанные = Неопределено); + Если ЭтоПустыеДвоичныеДанные Тогда + ПустыеДвоичныеДанные = ПолучитьДвоичныеДанныеИзСтроки(""); + Хеширование.Добавить(ПустыеДвоичныеДанные); + Размер = ПустыеДвоичныеДанные.Размер(); + Иначе + Хеширование.Добавить(ДвоичныеДанные); + Размер = ДвоичныеДанные.Размер(); + КонецЕсли; + Хеш = ПолучитьBase64СтрокуИзДвоичныхДанных(Хеширование.ХешСумма); + + Результат = ПараметрыРезультатаХешированияДвоичныхДанных(); + + Результат.ЭтоПустыеДвоичныеДанные = ЭтоПустыеДвоичныеДанные; + Результат.Размер = Размер; + Результат.Хеш = Хеш; + + Возврат Результат; + +КонецФункции + +// Возвращает сведения об элементе справочника "ХранилищеДвоичныхДанных", соответствующего переданным значениям хеша и размера. +// +// Параметры: +// Хеш - Строка - строка формата Base64, сформированная методом платформы "ПолучитьBase64СтрокуИзДвоичныхДанных" +// Размер - Число +// +// Возвращаемое значение: +// Структура - сведения об элементе справочника ХранилищеДвоичныхДанных: +// * ХранилищеДвоичныхДанныхСсылка - СправочникСсылка.ХранилищеДвоичныхДанных - если найден соответствующий элемент +// справочника "ХранилищеДвоичныхДанных" +// - Неопределено - если не найден соответствующий элемент справочника "ХранилищеДвоичныхДанных" +// * РазмерХранимыхДанных - Число - размер двоичных данных в байтах. +// +Функция СведенияОбЭлементеХранилищаДвоичныхДанныхПоХешуИРазмеру(Хеш, Размер) Экспорт + + Результат = Новый Структура; + Результат.Вставить("ХранилищеДвоичныхДанныхСсылка" , Неопределено); + Результат.Вставить("РазмерХранимыхДанных" , 0); + + Запрос = Новый Запрос; + Запрос.УстановитьПараметр("Хеш" , Хеш); + Запрос.УстановитьПараметр("Размер" , Размер); + Запрос.Текст = + "ВЫБРАТЬ + | ХранилищеДвоичныхДанных.Ссылка КАК ХранилищеДвоичныхДанныхСсылка, + | РАЗМЕРХРАНИМЫХДАННЫХ(ХранилищеДвоичныхДанных.ДвоичныеДанные) КАК РазмерХранимыхДанных + |ИЗ + | Справочник.ХранилищеДвоичныхДанных КАК ХранилищеДвоичныхДанных + |ГДЕ + | ХранилищеДвоичныхДанных.Хеш = &Хеш + | И ХранилищеДвоичныхДанных.Размер = &Размер"; + + Выборка = Запрос.Выполнить().Выбрать(); + + Если Выборка.Следующий() Тогда + ЗаполнитьЗначенияСвойств(Результат, Выборка); + КонецЕсли; + + Возврат Результат; + +КонецФункции + +// Заполняет реквизиты "ТипХраненияФайла" и "Том" присоединенного файла данными из регистра сведений "СведенияОХраненииДедуплицированныхФайлов". +// +// Параметры: +// ПрисоединенныйФайл - ОпределяемыйТип.ПрисоединенныйФайлОбъект, СправочникОбъект.ВерсииФайлов - объект элемента справочника с файлом. +// ДвоичныеДанные - ДвоичныеДанные - двоичные данные файла. +// +Процедура ЗаполнитьСвойстваФайлаПоСуществующемуЭлементуХранилищаДвоичныхДанных(ПрисоединенныйФайл, ДвоичныеДанные) Экспорт + + Если ТипЗнч(ДвоичныеДанные) <> Тип("ДвоичныеДанные") Или Не ДоступныХранилищаДвоичныхДанных() Тогда + Возврат; + КонецЕсли; + + СведенияОХраненииФайлов = ПараметрыХраненияДедуплицированногоФайла(ДвоичныеДанные); + Если СведенияОХраненииФайлов <> Неопределено Тогда + ЗаполнитьЗначенияСвойств(ПрисоединенныйФайл, СведенияОХраненииФайлов); + КонецЕсли; + +КонецПроцедуры + +// Возвращает структуру с параметрами хранения дедуплицированных файлов, полученную из регистра сведений "СведенияОХраненииДедуплицированныхФайлов". +// +// Параметры: +// ДвоичныеДанные - ДвоичныеДанные - двоичные данные, для которых нужно получить элемент справочника "ХранилищеДвоичныхДанных". +// ХранилищеДвоичныхДанных - СправочникСсылка.ХранилищеДвоичныхДанных - используется в целях оптимизации, если элемент +// справочника "ХранилищеДвоичныхДанных" известен. +// ВидХраненияФайлов - ПеречислениеСсылка.ВидыХраненияФайлов +// +// Возвращаемое значение: +// - Структура - значения параметров "ТипХраненияФайла", "Том" и "ПутьКФайлу", полученные из регистра сведений "СведенияОХраненииДедуплицированныхФайлов". +// - Неопределено - в случае отсутствия параметров хранения дедуплицированных файлов в регистре сведений "СведенияОХраненииДедуплицированныхФайлов". +// +Функция ПараметрыХраненияДедуплицированногоФайла(ДвоичныеДанные, ХранилищеДвоичныхДанных = Неопределено, ВидХраненияФайлов = Неопределено) + + УстановитьПривилегированныйРежим(Истина); + + Если ЗначениеЗаполнено(ХранилищеДвоичныхДанных) Тогда + ХранилищеДвоичныхДанныхСсылка = ХранилищеДвоичныхДанных; + Иначе + ХранилищеДвоичныхДанныхСсылка = ЭлементХранилищаДвоичныхДанныхПоДвоичнымДанным(ДвоичныеДанные); + КонецЕсли; + + Если ЗначениеЗаполнено(ХранилищеДвоичныхДанныхСсылка) Тогда + Результат = РегистрыСведений.СведенияОХраненииДедуплицированныхФайлов.СведенияОХраненииДедуплицированныхФайлов(ХранилищеДвоичныхДанныхСсылка, ВидХраненияФайлов); + Иначе + Результат = Неопределено; + КонецЕсли; + + Возврат Результат; + +КонецФункции + +// Возвращает элемент справочника "ХранилищеДвоичныхДанных", соответствующий переданным двоичным данным. +// +// Параметры: +// ДвоичныеДанные - ДвоичныеДанные - двоичные данные присоединенного файла. +// +// Возвращаемое значение: +// - СправочникСсылка.ХранилищеДвоичныхДанных - если соответствующий элемент справочника найден. +// - Неопределено - если соответствующий элемент справочника не найден. +// +Функция ЭлементХранилищаДвоичныхДанныхПоДвоичнымДанным(ДвоичныеДанные) + + РезультатХеширования = РезультатХешированияДвоичныхДанных(ДвоичныеДанные); + + СведенияОХранилищеДвоичныхДанных = СведенияОбЭлементеХранилищаДвоичныхДанныхПоХешуИРазмеру(РезультатХеширования.Хеш, РезультатХеширования.Размер); + Результат = СведенияОХранилищеДвоичныхДанных.ХранилищеДвоичныхДанныхСсылка; + + Возврат Результат; + +КонецФункции + +// Возвращает свободный том хранения, подходящий для размещения присоединенного файла с указанным типом хранения. +// +// Параметры: +// ПрисоединенныйФайл - ОпределяемыйТип.ПрисоединенныйФайлОбъект +// - см. РаботаСФайламиВТомахСлужебный.ПараметрыДобавленияФайла +// ТипХраненияФайлов - ПеречислениеСсылка.ТипыХраненияФайлов +// ВидТомаХраненияФайлов - ПеречислениеСсылка.ВидыХраненияФайлов +// +// Возвращаемое значение: +// СправочникСсылка.ТомаХраненияФайлов +// +Функция СвободныйТомХраненияПоТипуХраненияФайлов(ПрисоединенныйФайл, ТипХраненияФайлов, ВидТомаХраненияФайлов) Экспорт + + СпособХраненияВТомах = СпособХраненияДляПоискаТомовХраненияПоТипуХраненияФайлов(ТипХраненияФайлов); + + Результат = РаботаСФайламиВТомахСлужебный.СвободныйТом(ПрисоединенныйФайл, ВидТомаХраненияФайлов, СпособХраненияВТомах); + + Возврат Результат; + +КонецФункции + +// Возвращает структуру параметров, используемых при записи двоичных данных в реквизиты хранения двоичных данных файлов. +// +// Возвращаемое значение: +// Структура +// +Функция ПараметрыЗаписиВИнформационнуюБазу() Экспорт + + Результат = Новый Структура; + Результат.Вставить("ТипХраненияФайла"); + Результат.Вставить("Том"); + Результат.Вставить("ПутьКФайлу" , ""); + Результат.Вставить("ЭтоЗаписьВФайловыйАрхив" , Ложь); + Результат.Вставить("НеИзменятьДвоичныеДанные" , Ложь); + Результат.Вставить("ДвоичныеДанныеАрхива"); + + Возврат Результат; + +КонецФункции + +// Возвращает заполненную структуру параметров, используемых при записи двоичных данных в реквизиты хранения двоичных +// данных файлов. +// +// Параметры: +// ПрисоединенныйФайл - ОпределяемыйТип.ПрисоединенныйФайл, ОпределяемыйТип.ПрисоединенныйФайлОбъект, Структура - +// источник значений параметров. +// +// Возвращаемое значение: +// Структура +// +Функция ЗаполненныеПараметрыЗаписиВИнформационнуюБазу(ПрисоединенныйФайл) Экспорт + + Результат = ПараметрыЗаписиВИнформационнуюБазу(); + + Если ОбщегоНазначения.ЭтоСсылка(ТипЗнч(ПрисоединенныйФайл)) Тогда + ЗначенияРеквизитов = ОбщегоНазначения.ЗначенияРеквизитовОбъекта(ПрисоединенныйФайл, "ТипХраненияФайла,Том,ПутьКФайлу"); + ЗаполнитьЗначенияСвойств(Результат, ЗначенияРеквизитов); + Иначе + ЗаполнитьЗначенияСвойств(Результат, ПрисоединенныйФайл); + КонецЕсли; + + Возврат Результат; + +КонецФункции + +// Заполняет реквизиты "ТипХраненияФайла", "Том" и "ПутьКФайлу" присоединенного файла. +// +// Параметры: +// ПрисоединенныйФайл - ОпределяемыйТип.ПрисоединенныйФайлОбъект, СправочникОбъект.ВерсииФайлов - объект элемента справочника с файлом +// ДвоичныеДанные - ДвоичныеДанные - двоичные данные файла +// Размер - Число +// Расширение - Строка +// +Процедура ЗаполнитьПараметрыХраненияФайла(ПрисоединенныйФайл, ДвоичныеДанные, Размер, Расширение) Экспорт + + ПрисоединенныйФайл.ТипХраненияФайла = Неопределено; + ПрисоединенныйФайл.Том = Неопределено; + ПрисоединенныйФайл.ПутьКФайлу = Неопределено; + + ЗаполнитьСвойстваФайлаПоСуществующемуЭлементуХранилищаДвоичныхДанных(ПрисоединенныйФайл, ДвоичныеДанные); + + Если Не ЗначениеЗаполнено(ПрисоединенныйФайл.ТипХраненияФайла) Тогда + ПрисоединенныйФайл.ТипХраненияФайла = РаботаСФайламиСлужебный.ТипХраненияФайла(Размер, Расширение); + + Если ПрисоединенныйФайл.ТипХраненияФайла <> Перечисления.ТипыХраненияФайлов.ВИнформационнойБазе Тогда + + ПрисоединенныйФайл.Том = СвободныйТомХраненияПоТипуХраненияФайлов(ПрисоединенныйФайл, + ПрисоединенныйФайл.ТипХраненияФайла, + Перечисления.ВидыХраненияФайлов.ОперационноеХранение); + Если ПрисоединенныйФайл.ТипХраненияФайла = Перечисления.ТипыХраненияФайлов.ВТомахТомНеОпределен Тогда + ПрисоединенныйФайл.ТипХраненияФайла = ТипХраненияПоТомуХраненияФайлов(ПрисоединенныйФайл.Том); + КонецЕсли; + КонецЕсли; + КонецЕсли; + +КонецПроцедуры + +// Создает временный каталог и возвращает полный путь к нему. +// +// Параметры: +// СтрокаОписанияОшибки - Строка - дополнение текста ошибки +// +// Возвращаемое значение: +// Строка - полный путь к созданному временному каталогу +// +Функция НовыйВременныйКаталогДляРаботыСZipАрхивом(СтрокаОписанияОшибки = "") + + Попытка + + ВременныйКаталогФайлов = ФайловаяСистема.СоздатьВременныйКаталог(); + + Исключение + + ШаблонОписанияОшибки = НСтр("ru = '""%1"" + |Не создан временный каталог для работы с zip-архивом + |""%2""'"); + + СтрокаИсключения = СтроковыеФункцииКлиентСервер.ПодставитьПараметрыВСтроку( + ШаблонОписанияОшибки, + СтрокаОписанияОшибки, + ОбработкаОшибок.КраткоеПредставлениеОшибки(ИнформацияОбОшибке())); + + ЗаписьЖурналаРегистрации(НСтр("ru = 'Выполнение операций с файловым архивом'", ОбщегоНазначения.КодОсновногоЯзыка()), + УровеньЖурналаРегистрации.Ошибка,,, + СтрокаИсключения); + + ВызватьИсключение СтрокаИсключения; + + КонецПопытки; + + Возврат ВременныйКаталогФайлов; + +КонецФункции + +// Возвращает элемент файла, извлекаемого из Zip-архива. Если файл с переданным именем не будет найден, то будет получен +// первый элемент в архиве. +// +// Параметры: +// ЧтениеZip - ЧтениеZipФайла - прочитанный zip-файл. +// ИмяИзвлекаемогоФайла - Строка - имя извлекаемого файла с расширением. +// +// Возвращаемое значение: +// ЭлементыZipФайла - элемент файла, извлекаемого из Zip-архива, в ситуации, когда элемент найден по имени файла или получен первый элемент в архиве. +// Неопределено - в ситуации, когда не удалось определить элемент zip-архива. +// +Функция ЭлементИзвлекаемогоФайла(ЧтениеZip, ИмяИзвлекаемогоФайла) + + Результат = ЧтениеZip.Элементы.Найти(ИмяИзвлекаемогоФайла); + + Если Результат = Неопределено Тогда + Если ЧтениеZip.Элементы.Количество() > 0 Тогда + Результат = ЧтениеZip.Элементы[0]; + Иначе + Результат = Неопределено; + КонецЕсли; + КонецЕсли; + + Возврат Результат; + +КонецФункции + +Функция ПодготовитьДвоичныеДанныеДляЗаписи(ДанныеДляЗаписи) + + Если ТипЗнч(ДанныеДляЗаписи) = Тип("ДвоичныеДанные") Тогда + Результат = Новый ХранилищеЗначения(ДанныеДляЗаписи, Новый СжатиеДанных(9)); + Иначе + Результат = ДанныеДляЗаписи; + КонецЕсли; + + Возврат Результат; + +КонецФункции + +Функция МинимальноНеобходимаяВерсияПлатформыДляРаботыСХранилищамиДвоичныхДанных() + + Возврат "8.3.26.1000"; + +КонецФункции + +Функция РазмерПорцииПеремещаемыхФайловЗначениеПоУмолчанию() + Возврат 10; +КонецФункции + +Функция ТекстИнформированияПользователяОНедоступностиФайлаВАрхивеЗначениеПоУмолчанию() + + Возврат НСтр("ru = 'Для получения файла обратитесь к администратору'"); + +КонецФункции + +Функция СпособХраненияДляПоискаТомовХраненияПоТипуХраненияФайлов(ТипХраненияФайла) + + Если ТипХраненияФайла = Перечисления.ТипыХраненияФайлов.ВоВнешнемХранилищеДвоичныхДанных Тогда + Результат = Перечисления.СпособыХраненияФайлов.ВоВнешнемХранилищеПоПротоколуS3; + ИначеЕсли ТипХраненияФайла = Перечисления.ТипыХраненияФайлов.ВоВстроенномХранилищеДвоичныхДанных Тогда + Результат = Перечисления.СпособыХраненияФайлов.ВоВстроенномХранилище; + ИначеЕсли ТипХраненияФайла = Перечисления.ТипыХраненияФайлов.ВТомахТомНеОпределен Тогда + Результат = "ВТомахСЛюбымСпособомХранения"; + Иначе + Результат = Перечисления.СпособыХраненияФайлов.ВСетевыхКаталогах; + КонецЕсли; + + Возврат Результат; + +КонецФункции + +Функция ПараметрыРезультатаХешированияДвоичныхДанных() + + Результат = Новый Структура; + Результат.Вставить("ЭтоПустыеДвоичныеДанные", Ложь); + Результат.Вставить("Размер" , 0); + Результат.Вставить("Хеш" , ""); + + Возврат Результат; + +КонецФункции + +Процедура УдалитьВременныйКаталогДляРаботыСZipАрхивом(ВременныйКаталог) + + Попытка + УдалитьФайлы(ВременныйКаталог); + Исключение + + ШаблонОписанияОшибки = НСтр("ru = 'Не получилось удалить временный каталог для работы с zip-архивом + |%1 + |%2'"); + + СтрокаИсключения = СтроковыеФункцииКлиентСервер.ПодставитьПараметрыВСтроку( + ШаблонОписанияОшибки, + ВременныйКаталог, + ОбработкаОшибок.КраткоеПредставлениеОшибки(ИнформацияОбОшибке())); + + ЗаписьЖурналаРегистрации(НСтр("ru = 'Выполнение операций с файловым архивом'", ОбщегоНазначения.КодОсновногоЯзыка()), + УровеньЖурналаРегистрации.Ошибка,,, + СтрокаИсключения); + КонецПопытки; + +КонецПроцедуры + +Функция ВременныйКаталогДляНеуникальногоФайла(ВременныйКаталог, ИмяФайла) + + ФайлНаДиске = Новый Файл(ВременныйКаталог + ИмяФайла); + Если ФайлНаДиске.Существует() Тогда + УникальноеИмя = РаботаСФайламиСлужебныйКлиентСервер.УникальноеИмяСПутем(ВременныйКаталог, ИмяФайла); + + Результат = ВременныйКаталог + СтрЗаменить(УникальноеИмя, ИмяФайла, ""); + Иначе + Результат = ВременныйКаталог; + КонецЕсли; + + Возврат Результат; + +КонецФункции + +Процедура ПервоначальноеЗаполнениеКонстант() Экспорт + + Константы.РазмерПорцииПеремещаемыхФайлов.Установить( + РазмерПорцииПеремещаемыхФайловЗначениеПоУмолчанию()); + + Константы.ТекстИнформированияПользователяОНедоступностиФайлаВАрхиве.Установить( + ТекстИнформированияПользователяОНедоступностиФайлаВАрхивеЗначениеПоУмолчанию()); + +КонецПроцедуры + +Процедура ПервоначальноеЗаполнениеНастройкиРаботыСФайловымАрхивом() Экспорт + + НаборЗаписейЗначениеПоУмолчанию = РегистрыСведений.НастройкиРаботыСФайловымАрхивом.СоздатьНаборЗаписей(); + + НаборЗаписейЗначениеПоУмолчанию.Отбор.ВладелецФайла.Установить(Неопределено); + НаборЗаписейЗначениеПоУмолчанию.Отбор.ТипВладельцаФайла.Установить(Неопределено); + + ЗаписьРС = НаборЗаписейЗначениеПоУмолчанию.Добавить(); + ЗаписьРС.ВладелецФайла = Неопределено; + ЗаписьРС.ТипВладельцаФайла = Неопределено; + ЗаписьРС.ПеренестиВФайловыйАрхивЧерезДней = 365; + + ОбновлениеИнформационнойБазы.ЗаписатьДанные(НаборЗаписейЗначениеПоУмолчанию); + +КонецПроцедуры + +// Создает новый файл ZIP-архива и помещает в него нужный файл. +// +// Параметры: +// ПутьКФайлуАрхива - Строка - путь к файлу создаваемого ZIP-архива. +// ПутьКАрхивируемомуФайлу - Строка - путь к упаковываемому в ZIP-архив файлу. +// +// Возвращаемое значение: +// Структура +// +Функция УпаковатьФайлВZipАрхив(ПутьКФайлуАрхива, ПутьКАрхивируемомуФайлу) + + ФайлZipАрхива = Новый Файл(ПутьКФайлуАрхива); + Если ФайлZipАрхива.Существует() Тогда + УдалитьФайлы(ПутьКФайлуАрхива); + КонецЕсли; + + ЗаписьZIP = Новый ЗаписьZipФайла(ПутьКФайлуАрхива); + ЗаписьZIP.Добавить(ПутьКАрхивируемомуФайлу, РежимСохраненияПутейZIP.НеСохранятьПути); + ЗаписьZIP.Записать(); + + ФайлZipАрхива = Новый Файл(ПутьКФайлуАрхива); + + Результат = Новый Структура; + Результат.Вставить("ИмяФайла" , ПутьКФайлуАрхива); + Результат.Вставить("Размер" , ФайлZipАрхива.Размер()); + + Возврат Результат; + +КонецФункции + +// Извлекает файл с определенным именем из ZIP-архива в указанный каталог. +// +// Параметры: +// ДвоичныеДанныеZipАрхива - ДвоичныеДанные - двоичные данные ZIP-архива". +// ИмяИзвлекаемогоФайла - Строка - имя извлекаемого файла с расширением. +// ВременныйКаталог - Строка - путь к каталогу, в который нужно извлечь файл. +// +// Возвращаемое значение: +// Структура +// +Функция ИзвлечьФайлИзZipАрхива(ДвоичныеДанныеZipАрхива, ИмяИзвлекаемогоФайла, ВременныйКаталог) + + ПотокДляЧтения = ДвоичныеДанныеZipАрхива.ОткрытьПотокДляЧтения(); + + ЧтениеZip = Новый ЧтениеZipФайла(ПотокДляЧтения); + + ЭлементИзвлекаемогоФайла = ЭлементИзвлекаемогоФайла(ЧтениеZip, ИмяИзвлекаемогоФайла); + + Если ЭлементИзвлекаемогоФайла = Неопределено Тогда + ВызватьИсключение СтроковыеФункцииКлиентСервер.ПодставитьПараметрыВСтроку(НСтр("ru = 'Файл %1 не найден в zip-архиве'"), ИмяИзвлекаемогоФайла); + КонецЕсли; + + ВременныйКаталогДляИзвлеченияФайла = ВременныйКаталогДляНеуникальногоФайла(ВременныйКаталог, ИмяИзвлекаемогоФайла); + + ЧтениеZip.Извлечь(ЭлементИзвлекаемогоФайла, ВременныйКаталогДляИзвлеченияФайла); + + ПутьКИзвлеченномуФайлу = ВременныйКаталогДляИзвлеченияФайла + ЭлементИзвлекаемогоФайла.ИсходноеИмя; + + ЧтениеZip.Закрыть(); + ПотокДляЧтения.Закрыть(); + + ИзвлеченныйФайл = Новый Файл(ПутьКИзвлеченномуФайлу); + Если ИзвлеченныйФайл.Существует() Тогда + Результат = Новый Структура; + Результат.Вставить("ИмяФайла" , ПутьКИзвлеченномуФайлу); + Результат.Вставить("Размер" , ИзвлеченныйФайл.Размер()); + Иначе + ВызватьИсключение СтроковыеФункцииКлиентСервер.ПодставитьПараметрыВСтроку(НСтр("ru = 'Не удалось извлечь файл %1 из zip-архива'"), ИмяИзвлекаемогоФайла); + КонецЕсли; + + Возврат Результат; + +КонецФункции + +#Область ПереносФайловМеждуОперационнымХранилищемИФайловымАрхивом + +// Метод регламентного задания "ПереносФайловМеждуОперационнымХранилищемИФайловымАрхивом". +// +// Параметры: +// Параметры - Структура - произвольные параметры ПараметрыПроцедуры. +// см. ДлительныеОперации.ВыполнитьВФоне описание параметра "ИмяПроцедуры" +// АдресРезультата - Строка - адрес временного хранилища, в которое нужно поместить результат работы процедуры. +// см. ДлительныеОперации.ВыполнитьВФоне описание параметра "ИмяПроцедуры" +// +Процедура ПеренестиФайлыМеждуОперационнымХранилищемИФайловымАрхивом(Параметры = Неопределено, АдресРезультата = Неопределено) Экспорт + + ОбщегоНазначения.ПриНачалеВыполненияРегламентногоЗадания(Метаданные.РегламентныеЗадания.ПереносФайловМеждуОперационнымХранилищемИФайловымАрхивом); + + Если Не ИспользоватьФайловыйАрхив() Тогда + Возврат; + КонецЕсли; + + УстановитьПривилегированныйРежим(Истина); + + НастройкиПереносаФайлов = РегистрыСведений.НастройкиРаботыСФайловымАрхивом.ПолучитьНастройкиРаботыСФайловымАрхивомДляПереносаФайлов(); + НастройкиПереносаДляОбъектовМетаданных = НастройкиПереносаФайлов.НайтиСтроки(Новый Структура("ЭтоДетальнаяНастройкаПереносаФайлов", Ложь)); + + Если НастройкиПереносаДляОбъектовМетаданных.Количество() > 0 Тогда + + РазмерПорции = РазмерПорцииПеремещаемыхФайлов(); + + ТекстЗапроса = ТекстЗапросаПорцииФайлов(РазмерПорции); + + ДополнительныеПараметрыПереноса = ДополнительныеПараметрыПереносаФайлов(); + ДополнительныеПараметрыПереноса.ТекстЗапросаПолученияПорцииФайловДляПереносаВАрхив = ТекстЗапроса; + + ТекстЗапроса = ТекстЗапросаПорцииФайлов(РазмерПорции, Ложь); + ДополнительныеПараметрыПереноса.ТекстЗапросаПолученияПорцииФайловДляВосстановленияИзАрхива = ТекстЗапроса; + ДополнительныеПараметрыПереноса.СпособХраненияФайлов = СпособХраненияФайлов(); + + КоличествоДнейХраненияПоУмолчанию = РегистрыСведений.НастройкиРаботыСФайловымАрхивом.ПолучитьКоличествоДнейХраненияИзНастройкиПоУмолчанию(); + + Для Каждого Настройка Из НастройкиПереносаДляОбъектовМетаданных Цикл + + МассивИсключений = Новый Массив; + + ДетализированныеНастройки = НастройкиПереносаФайлов.НайтиСтроки(Новый Структура( + "ОбщийИдентификаторВладельца, ЭтоДетальнаяНастройкаПереносаФайлов", + Настройка.ОбщийИдентификаторВладельца, + Истина)); + + Если ДетализированныеНастройки.Количество() > 0 Тогда + КоличествоДнейХраненияРодителя = КоличествоДнейХраненияДоПереносаВФайловыйАрхив(Настройка, КоличествоДнейХраненияПоУмолчанию); + + Для Каждого ДетализированнаяНастройка Из ДетализированныеНастройки Цикл + + ВыполнитьОперацииСФайлами(ДетализированнаяНастройка, МассивИсключений, КоличествоДнейХраненияРодителя, ДополнительныеПараметрыПереноса); + + КонецЦикла; + КонецЕсли; + + ВыполнитьОперацииСФайлами(Настройка, МассивИсключений, КоличествоДнейХраненияПоУмолчанию, ДополнительныеПараметрыПереноса); + + КонецЦикла; + КонецЕсли; + +КонецПроцедуры + +Процедура ВыполнитьОперацииСФайлами(Настройка, МассивИсключений, КоличествоДнейХраненияРодителя, ДополнительныеПараметрыПереноса) + + КоличествоДнейОперативногоХранения = КоличествоДнейХраненияДоПереносаВФайловыйАрхив(Настройка, КоличествоДнейХраненияРодителя); + + ПеренестиФайлыВФайловыйАрхив(Настройка, МассивИсключений, КоличествоДнейОперативногоХранения, ДополнительныеПараметрыПереноса); + + ВосстановитьФайлыИзФайловогоАрхива(Настройка, МассивИсключений, КоличествоДнейОперативногоХранения, ДополнительныеПараметрыПереноса); + + МассивИсключений.Добавить(Настройка.ВладелецФайла); + +КонецПроцедуры + +Процедура ВосстановитьФайлыИзФайловогоАрхива(Настройка, МассивИсключений, КоличествоДнейОперативногоХранения, ДополнительныеПараметрыПереноса) + + МенеджерВременныхТаблиц = Новый МенеджерВременныхТаблиц; + + ЗаполнитьВременнуюТаблицуДляВосстановленияФайлов(Настройка, МассивИсключений, КоличествоДнейОперативногоХранения, МенеджерВременныхТаблиц); + + СведенияДляПодбораТома = СведенияОФайлахДляПодбораТома(); + СведенияОПодобранномТомеХранения = Неопределено; + + ПоследняяСсылка = ПустаяСсылкаНаПрисоединенныйФайл(Настройка); + + ТекстЗапроса = ДополнительныеПараметрыПереноса.ТекстЗапросаПолученияПорцииФайловДляВосстановленияИзАрхива; + + ФайлыДляПереноса = СледующаяПорцияФайлов(МенеджерВременныхТаблиц, ПоследняяСсылка, ТекстЗапроса); + + Пока ФайлыДляПереноса.Количество() > 0 Цикл + + СтрокаОписанияОшибки = СтрокаОписанияОшибкиПриОперацияхСВременнымКаталогом(Ложь); + + Для Каждого ОбрабатываемыйФайл Из ФайлыДляПереноса Цикл + + Если ОбрабатываемыйФайл.КоличествоДедуплицированныхФайлов > 0 Тогда + //@skip-warning запрос выполняется не для всех итераций цикла. + Если Не ФайлПеренесенВФайловыйАрхив(ОбрабатываемыйФайл.ПрисоединенныйФайл) Тогда + Продолжить; + КонецЕсли; + КонецЕсли; + + ВременныйКаталог = НовыйВременныйКаталогДляРаботыСZipАрхивом(СтрокаОписанияОшибки); + + ПрисоединенныйФайлСсылка = ОбрабатываемыйФайл.ПрисоединенныйФайл; + + Блокировка = Новый БлокировкаДанных; + ЭлементБлокировкиДанных = Блокировка.Добавить(ПрисоединенныйФайлСсылка.Метаданные().ПолноеИмя()); + ЭлементБлокировкиДанных.УстановитьЗначение("Ссылка", ПрисоединенныйФайлСсылка); + + ЭлементБлокировкиДанных = Блокировка.Добавить(Метаданные.РегистрыСведений.СведенияОФайлах.ПолноеИмя()); + ЭлементБлокировкиДанных.УстановитьЗначение("Файл", ПрисоединенныйФайлСсылка); + + ЭлементБлокировкиДанных = Блокировка.Добавить(Метаданные.РегистрыСведений.ХранилищеФайлов.ПолноеИмя()); + ЭлементБлокировкиДанных.УстановитьЗначение("Файл", ПрисоединенныйФайлСсылка); + + НачатьТранзакцию(); + Попытка + + Блокировка.Заблокировать(); + + ПараметрыОперации = ПараметрыВыполненияОперацииВосстановления(); + ПараметрыОперации.ВременныйКаталог = ВременныйКаталог; + + ИзвлеченныйФайл = ФайлИзвлеченныйИзZipАрхива(ОбрабатываемыйФайл, ПараметрыОперации); + + НовыйТипХраненияФайла = Неопределено; + + Если ЗначениеЗаполнено(ОбрабатываемыйФайл.ТипХраненияФайлаОперативный) Тогда + НовыйТипХраненияФайла = ОбрабатываемыйФайл.ТипХраненияФайлаОперативный; + + СведенияОТомеХранения = СведенияОТомеХранения(); + СведенияОТомеХранения.Ссылка = ОбрабатываемыйФайл.ТомОперативный; + СведенияОТомеХранения.НовыйТипХраненияФайла = НовыйТипХраненияФайла; + + ПараметрыОперации.ПолученыПараметрыХранения = Истина; + + Иначе + + ДвоичныеДанные = Новый ДвоичныеДанные(ИзвлеченныйФайл.ИмяФайла); + + ПараметрыХраненияФайла = ПараметрыХраненияДедуплицированногоФайла( + ДвоичныеДанные, + ОбрабатываемыйФайл.ХранилищеДвоичныхДанных, + Перечисления.ВидыХраненияФайлов.ОперационноеХранение); + + Если ПараметрыХраненияФайла <> Неопределено Тогда + НовыйТипХраненияФайла = ПараметрыХраненияФайла.ТипХраненияФайла; + + СведенияОТомеХранения = СведенияОТомеХранения(); + СведенияОТомеХранения.Ссылка = ПараметрыХраненияФайла.Том; + СведенияОТомеХранения.НовыйТипХраненияФайла = НовыйТипХраненияФайла; + + ПараметрыОперации.ПолученыПараметрыХранения = Истина; + КонецЕсли; + КонецЕсли; + + НовыйТипХраненияФайлаПредопределен = ЗначениеЗаполнено(НовыйТипХраненияФайла); + + Если Не НовыйТипХраненияФайлаПредопределен Тогда + + РазмерФайла = РазмерФайла(ИзвлеченныйФайл.ИмяФайла); + // Дедуплицированный файл может переноситься в том, размещающий данный на диске. В этом случае для каждого + // дедуплицированного файла на диск будет записана отдельная его копия. Поэтому при подборе тома хранения + // учитывается весь необходимый объем свободного места + СведенияДляПодбораТома.Размер = Макс(1, ОбрабатываемыйФайл.КоличествоДедуплицированныхФайлов) * РазмерФайла; + + НовыйТипХраненияФайла = РаботаСФайламиСлужебный.ТипХраненияФайла(СведенияДляПодбораТома.Размер, ОбрабатываемыйФайл.Расширение); + + Если НовыйТипХраненияФайла = Перечисления.ТипыХраненияФайлов.ВИнформационнойБазе Тогда + + СведенияОТомеХранения = СведенияОТомеХранения(); + СведенияОТомеХранения.НовыйТипХраненияФайла = НовыйТипХраненияФайла; + + Иначе + Если СведенияОПодобранномТомеХранения = Неопределено + Или СведенияОПодобранномТомеХранения.МаксимальныйРазмер <> 0 И СведенияОПодобранномТомеХранения.СвободныйОбъем - СведенияДляПодбораТома.Размер < 0 Тогда + + СведенияОПодобранномТомеХранения = ПодобратьТомХранения(СведенияДляПодбораТома, + Перечисления.ВидыХраненияФайлов.ОперационноеХранение, + НовыйТипХраненияФайла); + КонецЕсли; + + СведенияОТомеХранения = СведенияОПодобранномТомеХранения; + + // Если файл переносится в том, размещающий данные в ХДД, то объем тома должен быть уменьшен максимум на размер + // одного файла, так как данные в таких томах дедуплицируются. + Если СведенияОТомеХранения.НовыйТипХраненияФайла = Перечисления.ТипыХраненияФайлов.ВТомахНаДиске Тогда + РазмерФайла = СведенияДляПодбораТома.Размер; + КонецЕсли; + КонецЕсли; + КонецЕсли; + + ПараметрыОперации.СведенияОТомеХранения = СведенияОТомеХранения; + + // @skip-check query-in-loop - Порционная обработка больших объемов данных. + ВосстановитьФайлИзФайловогоАрхива(ОбрабатываемыйФайл, ИзвлеченныйФайл, ПараметрыОперации); + + Если Не НовыйТипХраненияФайлаПредопределен Тогда + Если ЗначениеЗаполнено(НовыйТипХраненияФайла) И НовыйТипХраненияФайла <> Перечисления.ТипыХраненияФайлов.ВИнформационнойБазе Тогда + Если СведенияОТомеХранения.МаксимальныйРазмер <> 0 Тогда + + СведенияОТомеХранения.СвободныйОбъем = СведенияОТомеХранения.СвободныйОбъем - РазмерФайла; + + КонецЕсли; + КонецЕсли; + КонецЕсли; + + ЗафиксироватьТранзакцию(); + + Исключение + + ОтменитьТранзакцию(); + + СтрокаИсключения = ОбработкаОшибок.ПодробноеПредставлениеОшибки(ИнформацияОбОшибке()); + ЗаписатьВЖурналРегистрацииСобытиеПереносаФайлов(СтрокаИсключения, УровеньЖурналаРегистрации.Ошибка); + + УдалитьВременныйКаталог(ВременныйКаталог, СтрокаОписанияОшибки); + Продолжить; + КонецПопытки; + + УдалитьВременныйКаталог(ВременныйКаталог, СтрокаОписанияОшибки); + + КонецЦикла; + + ПоследняяСсылка = ОбрабатываемыйФайл.ПрисоединенныйФайл; + + // @skip-check query-in-loop - Порционная обработка больших объемов данных. + ФайлыДляПереноса = СледующаяПорцияФайлов(МенеджерВременныхТаблиц, ПоследняяСсылка, ТекстЗапроса); + + КонецЦикла; + +КонецПроцедуры + +Процедура ЗаполнитьВременнуюТаблицуДляВосстановленияФайлов(НастройкаПереносаФайлов, МассивИсключений, КоличествоДнейОперативногоХранения, МенеджерВременныхТаблиц) + + УстановитьПривилегированныйРежим(Истина); + + Если НастройкаПереносаФайлов.ЭтоДетальнаяНастройкаПереносаФайлов Тогда + ВладелецФайла = НастройкаПереносаФайлов.ИдентификаторВладельца; + ЭлементИсключение = НастройкаПереносаФайлов.ВладелецФайла; + Иначе + ВладелецФайла = НастройкаПереносаФайлов.ВладелецФайла; + ЭлементИсключение = Неопределено; + КонецЕсли; + + ТекстЗапроса = ТекстЗапросаДляВосстановленияФайловИзФайловогоАрхива(ВладелецФайла, НастройкаПереносаФайлов, МассивИсключений, ЭлементИсключение); + + Запрос = Новый Запрос(ТекстЗапроса); + Запрос.МенеджерВременныхТаблиц = МенеджерВременныхТаблиц; + + Запрос.УстановитьПараметр("ТипВладельца" , ТипЗнч(ОбщегоНазначения.ЗначениеРеквизитаОбъекта(ВладелецФайла, "ЗначениеПустойСсылки"))); + Запрос.УстановитьПараметр("КоличествоДней" , КоличествоДнейОперативногоХранения); + Запрос.УстановитьПараметр("ДатаОбработки" , ТекущаяДатаСеанса()); + Запрос.УстановитьПараметр("ВосстановитьВсеФайлы", НастройкаПереносаФайлов.Действие = Перечисления.ДействияВНастройкахРаботыСФайловымАрхивом.НеПереноситьВАрхив); + + Если МассивИсключений.Количество() > 0 Тогда + + Запрос.УстановитьПараметр("МассивИсключений", МассивИсключений); + + КонецЕсли; + + Если НастройкаПереносаФайлов.ЭтоДетальнаяНастройкаПереносаФайлов Тогда + + Запрос.УстановитьПараметр("ОтборПоДетализированнойНастройке", ЭлементИсключение); + + КонецЕсли; + + Запрос.Выполнить(); + +КонецПроцедуры + +Функция ТекстЗапросаДляВосстановленияФайловИзФайловогоАрхива(ВладелецФайла, Настройка, МассивИсключений, ЭлементИсключение) + + РеквизитыСправочникаФайлов = ОбщегоНазначения.ЗначенияРеквизитовОбъекта(Настройка.ТипВладельцаФайла, "ПолноеИмя, Имя"); + + МетаданныеВладельцаФайлов = ОбщегоНазначения.ОбъектМетаданныхПоИдентификатору(ВладелецФайла); + ПолноеИмяВладельцаФайлов = МетаданныеВладельцаФайлов.ПолноеИмя(); + + МетаданныеОбъектаФайлов = ОбщегоНазначения.ОбъектМетаданныхПоИдентификатору(Настройка.ТипВладельцаФайла); + ЕстьВозможностьХранитьВерсии = ОбщегоНазначения.ЕстьРеквизитОбъекта("ТекущаяВерсия", МетаданныеОбъектаФайлов); + + ТекстыЗапросовПакета = Новый Массив; + + Если ЕстьВозможностьХранитьВерсии Тогда + + СправочникВерсийФайлов = ОбщегоНазначения.ИдентификаторОбъектаМетаданных(МетаданныеОбъектаФайлов.Реквизиты.ТекущаяВерсия.Тип.Типы()[0]); + МетаданныеВерсийФайлов = ОбщегоНазначения.ОбъектМетаданныхПоИдентификатору(СправочникВерсийФайлов); + + ПолноеИмяСправочникаВерсийФайлов = МетаданныеВерсийФайлов.ПолноеИмя(); + + ТекстЗапроса = + "ВЫБРАТЬ + | ВерсииФайлов.Ссылка КАК ПрисоединенныйФайл, + | ВерсииФайлов.ТипХраненияФайла КАК ТипХраненияФайла, + | ВерсииФайлов.Том КАК Том, + | ВерсииФайлов.ПутьКФайлу КАК ПутьКФайлу, + | ЕСТЬNULL(ХранилищеФайлов.ХранилищеДвоичныхДанных, ЗНАЧЕНИЕ(Справочник.ХранилищеДвоичныхДанных.ПустаяСсылка)) КАК ХранилищеДвоичныхДанных, + | ВерсииФайлов.ТипХраненияФайла = ЗНАЧЕНИЕ(Перечисление.ТипыХраненияФайлов.ВТомахНаДиске) КАК ЭтоХранениеНаДиске, + | ВерсииФайлов.Наименование КАК Наименование, + | ВерсииФайлов.Расширение КАК Расширение, + | ВерсииФайлов.Владелец КАК ФайлДляЗаписиСведений, + | ВерсииФайлов.НомерВерсии КАК НомерВерсии, + | Файлы.ВладелецФайла КАК ВладелецФайла, + | ДОБАВИТЬКДАТЕ(ВерсииФайлов.ДатаСоздания, ДЕНЬ, &КоличествоДней) КАК ПлановаяДатаПереносаВАрхив, + | ВерсииФайлов.Представление КАК ФайлПредставление + |ПОМЕСТИТЬ ВТ_ПодготовкаДанныхДляВосстановления + |ИЗ + | #ПолноеИмяСправочникаФайлов КАК Файлы + | ВНУТРЕННЕЕ СОЕДИНЕНИЕ #ПолноеИмяСправочникаВерсийФайлов КАК ВерсииФайлов + | ПО Файлы.Ссылка = ВерсииФайлов.Владелец + | И (НЕ Файлы.ПометкаУдаления) + | И (НЕ ВерсииФайлов.ПометкаУдаления) + | И (&ЭтоНеГруппа) + | И (ТИПЗНАЧЕНИЯ(Файлы.ВладелецФайла) = &ТипВладельца) + | И (&ОтборПоДетализированнойНастройке) + | И (&ОтборПоИсключениям) + | И (ВЫБОР + | КОГДА ВерсииФайлов.ТипХраненияФайла = ЗНАЧЕНИЕ(Перечисление.ТипыХраненияФайлов.ВТомахНаДиске) + | ТОГДА (ВЫРАЗИТЬ(ВерсииФайлов.ПутьКФайлу КАК СТРОКА(100))) <> """" + | ИЛИ НЕ ВерсииФайлов.Том = ЗНАЧЕНИЕ(Справочник.ТомаХраненияФайлов.ПустаяСсылка) + | КОГДА ВерсииФайлов.ТипХраненияФайла = ЗНАЧЕНИЕ(Перечисление.ТипыХраненияФайлов.ВоВнешнемХранилищеДвоичныхДанных) + | ТОГДА НЕ ВерсииФайлов.Том = ЗНАЧЕНИЕ(Справочник.ТомаХраненияФайлов.ПустаяСсылка) + | ИНАЧЕ ЛОЖЬ + | КОНЕЦ) + | И (ВерсииФайлов.ДатаПереносаВАрхив <> ДатаВремя(1,1,1)) + | ЛЕВОЕ СОЕДИНЕНИЕ РегистрСведений.ХранилищеФайлов КАК ХранилищеФайлов + | ПО (ВерсииФайлов.Ссылка = ХранилищеФайлов.Файл)"; + + ТекстЗапроса = СтрЗаменить(ТекстЗапроса, "#ПолноеИмяСправочникаФайлов" , РеквизитыСправочникаФайлов.ПолноеИмя); + ТекстЗапроса = СтрЗаменить(ТекстЗапроса, "#ПолноеИмяСправочникаВерсийФайлов", ПолноеИмяСправочникаВерсийФайлов); + + ТекстыЗапросовПакета.Добавить(ТекстЗапроса); + + Иначе // Не ЕстьВозможностьХранитьВерсии + + ТекстЗапроса = + "ВЫБРАТЬ + | Файлы.Ссылка КАК ПрисоединенныйФайл, + | Файлы.ТипХраненияФайла КАК ТипХраненияФайла, + | Файлы.Том КАК Том, + | Файлы.ПутьКФайлу КАК ПутьКФайлу, + | ЕСТЬNULL(ХранилищеФайлов.ХранилищеДвоичныхДанных, ЗНАЧЕНИЕ(Справочник.ХранилищеДвоичныхДанных.ПустаяСсылка)) КАК ХранилищеДвоичныхДанных, + | Файлы.ТипХраненияФайла = ЗНАЧЕНИЕ(Перечисление.ТипыХраненияФайлов.ВТомахНаДиске) КАК ЭтоХранениеНаДиске, + | Файлы.Наименование КАК Наименование, + | Файлы.Расширение КАК Расширение, + | Файлы.Ссылка КАК ФайлДляЗаписиСведений, + | 0 КАК НомерВерсии, + | Файлы.ВладелецФайла КАК ВладелецФайла, + | ДОБАВИТЬКДАТЕ(Файлы.ДатаСоздания, ДЕНЬ, &КоличествоДней) КАК ПлановаяДатаПереносаВАрхив, + | Файлы.Представление КАК ФайлПредставление + |ПОМЕСТИТЬ ВТ_ПодготовкаДанныхДляВосстановления + |ИЗ + | #ТипВладельцаФайла КАК Файлы + | ВНУТРЕННЕЕ СОЕДИНЕНИЕ #СправочникВладелецФайла КАК СправочникВладелецФайла + | ПО Файлы.ВладелецФайла = СправочникВладелецФайла.Ссылка + | И (НЕ СправочникВладелецФайла.ПометкаУдаления) + | И (НЕ Файлы.ПометкаУдаления) + | И (&ЭтоНеГруппа) + | И (ТИПЗНАЧЕНИЯ(Файлы.ВладелецФайла) = &ТипВладельца) + | И (&ОтборПоДетализированнойНастройке) + | И (&ОтборПоИсключениям) + | И (ВЫБОР + | КОГДА Файлы.ТипХраненияФайла = ЗНАЧЕНИЕ(Перечисление.ТипыХраненияФайлов.ВТомахНаДиске) + | ТОГДА (ВЫРАЗИТЬ(Файлы.ПутьКФайлу КАК СТРОКА(100))) <> """" + | ИЛИ НЕ Файлы.Том = ЗНАЧЕНИЕ(Справочник.ТомаХраненияФайлов.ПустаяСсылка) + | КОГДА Файлы.ТипХраненияФайла = ЗНАЧЕНИЕ(Перечисление.ТипыХраненияФайлов.ВоВнешнемХранилищеДвоичныхДанных) + | ТОГДА НЕ Файлы.Том = ЗНАЧЕНИЕ(Справочник.ТомаХраненияФайлов.ПустаяСсылка) + | ИНАЧЕ ЛОЖЬ + | КОНЕЦ) + | ВНУТРЕННЕЕ СОЕДИНЕНИЕ РегистрСведений.СведенияОФайлах КАК СведенияОФайлах + | ПО Файлы.Ссылка = СведенияОФайлах.Файл + | И (СведенияОФайлах.ДатаПереносаВАрхив <> ДатаВремя(1,1,1)) + | ЛЕВОЕ СОЕДИНЕНИЕ РегистрСведений.ХранилищеФайлов КАК ХранилищеФайлов + | ПО Файлы.Ссылка = ХранилищеФайлов.Файл"; + + ТекстЗапроса = СтрЗаменить(ТекстЗапроса, "#ТипВладельцаФайла", "Справочник." + РеквизитыСправочникаФайлов.Имя); + ТекстЗапроса = СтрЗаменить(ТекстЗапроса, "#СправочникВладелецФайла", ПолноеИмяВладельцаФайлов); + + ТекстыЗапросовПакета.Добавить(ТекстЗапроса); + + КонецЕсли; + + ТекстЗапроса = + "ВЫБРАТЬ РАЗЛИЧНЫЕ + | ВТ_ПодготовкаДанныхДляВосстановления.ХранилищеДвоичныхДанных КАК ХранилищеДвоичныхДанных + |ПОМЕСТИТЬ ВТ_ДанныеДляПроверкиДедупликации + |ИЗ + | ВТ_ПодготовкаДанныхДляВосстановления КАК ВТ_ПодготовкаДанныхДляВосстановления + |ГДЕ + | НЕ ВТ_ПодготовкаДанныхДляВосстановления.ЭтоХранениеНаДиске + | + |ИНДЕКСИРОВАТЬ ПО + | ВТ_ПодготовкаДанныхДляВосстановления.ХранилищеДвоичныхДанных + |; + | + |//////////////////////////////////////////////////////////////////////////////// + |ВЫБРАТЬ + | ХранилищеФайлов.ХранилищеДвоичныхДанных КАК ХранилищеДвоичныхДанных, + | КОЛИЧЕСТВО(*) КАК КоличествоДедуплицированныхФайлов, + | КОЛИЧЕСТВО(*) - СУММА(ВЫБОР + | КОГДА ЕСТЬNULL(СведенияОФайлах.ДатаПереносаВАрхив, ЕСТЬNULL(ВерсииФайлов.ДатаПереносаВАрхив, ДАТАВРЕМЯ(1, 1, 1))) <> ДАТАВРЕМЯ(1, 1, 1) + | ТОГДА ВЫРАЗИТЬ(1 КАК ЧИСЛО(17, 0)) + | ИНАЧЕ 0 + | КОНЕЦ) > 0 КАК ПодлежитВосстановлениюИзЗаНовыхФайлов + |ПОМЕСТИТЬ ВТ_ДедуплицированныеФайлы + |ИЗ + | ВТ_ДанныеДляПроверкиДедупликации КАК ВТ_ДанныеДляПроверкиДедупликации + | ВНУТРЕННЕЕ СОЕДИНЕНИЕ РегистрСведений.ХранилищеФайлов КАК ХранилищеФайлов + | ПО ВТ_ДанныеДляПроверкиДедупликации.ХранилищеДвоичныхДанных = ХранилищеФайлов.ХранилищеДвоичныхДанных + | ЛЕВОЕ СОЕДИНЕНИЕ РегистрСведений.СведенияОФайлах КАК СведенияОФайлах + | ПО (ХранилищеФайлов.Файл = СведенияОФайлах.Файл) + | ЛЕВОЕ СОЕДИНЕНИЕ Справочник.ВерсииФайлов КАК ВерсииФайлов + | ПО (ХранилищеФайлов.Файл = ВерсииФайлов.Ссылка) + | И (НЕ ВерсииФайлов.Владелец.ПометкаУдаления) + |ГДЕ + | НЕ ЕСТЬNULL(СведенияОФайлах.ПометкаУдаления, ЕСТЬNULL(ВерсииФайлов.ПометкаУдаления, ЛОЖЬ)) + | + |СГРУППИРОВАТЬ ПО + | ХранилищеФайлов.ХранилищеДвоичныхДанных + | + |ИМЕЮЩИЕ + | КОЛИЧЕСТВО(*) > 1 + | + |ИНДЕКСИРОВАТЬ ПО + | ХранилищеФайлов.ХранилищеДвоичныхДанных + |; + | + |//////////////////////////////////////////////////////////////////////////////// + |ВЫБРАТЬ + | ВТ_ПодготовкаДанныхДляВосстановления.ПрисоединенныйФайл КАК ПрисоединенныйФайл, + | ВТ_ПодготовкаДанныхДляВосстановления.ТипХраненияФайла КАК ТипХраненияФайла, + | ВТ_ПодготовкаДанныхДляВосстановления.Том КАК Том, + | ВТ_ПодготовкаДанныхДляВосстановления.ПутьКФайлу КАК ПутьКФайлу, + | ВТ_ПодготовкаДанныхДляВосстановления.ХранилищеДвоичныхДанных КАК ХранилищеДвоичныхДанных, + | ВТ_ПодготовкаДанныхДляВосстановления.Наименование КАК Наименование, + | ВТ_ПодготовкаДанныхДляВосстановления.Расширение КАК Расширение, + | ВТ_ПодготовкаДанныхДляВосстановления.ФайлДляЗаписиСведений КАК ФайлДляЗаписиСведений, + | ВТ_ПодготовкаДанныхДляВосстановления.НомерВерсии КАК НомерВерсии, + | ВТ_ПодготовкаДанныхДляВосстановления.ВладелецФайла КАК ВладелецФайла, + | НЕ ВТ_ПодготовкаДанныхДляВосстановления.ЭтоХранениеНаДиске КАК ПолучатьДвоичныеДанные, + | ЕСТЬNULL(ВТ_ДедуплицированныеФайлы.КоличествоДедуплицированныхФайлов, 0) КАК КоличествоДедуплицированныхФайлов, + | ЕСТЬNULL(СведенияОХраненииДедуплицированныхФайлов.ТипХраненияФайла, ЗНАЧЕНИЕ(Перечисление.ТипыХраненияФайлов.ПустаяСсылка)) КАК ТипХраненияФайлаОперативный, + | ЕСТЬNULL(СведенияОХраненииДедуплицированныхФайлов.Том, ЗНАЧЕНИЕ(Справочник.ТомаХраненияФайлов.ПустаяСсылка)) КАК ТомОперативный, + | """" КАК ПутьКФайлуОперативный, + | ВТ_ПодготовкаДанныхДляВосстановления.ФайлПредставление КАК ФайлПредставление + |ПОМЕСТИТЬ ВТ_ДанныеДляПереноса + |ИЗ + | ВТ_ПодготовкаДанныхДляВосстановления КАК ВТ_ПодготовкаДанныхДляВосстановления + | ЛЕВОЕ СОЕДИНЕНИЕ ВТ_ДедуплицированныеФайлы КАК ВТ_ДедуплицированныеФайлы + | ПО ВТ_ПодготовкаДанныхДляВосстановления.ХранилищеДвоичныхДанных = ВТ_ДедуплицированныеФайлы.ХранилищеДвоичныхДанных + | ЛЕВОЕ СОЕДИНЕНИЕ РегистрСведений.СведенияОХраненииДедуплицированныхФайлов КАК СведенияОХраненииДедуплицированныхФайлов + | ПО ВТ_ПодготовкаДанныхДляВосстановления.ХранилищеДвоичныхДанных = СведенияОХраненииДедуплицированныхФайлов.ХранилищеДвоичныхДанных + | И (СведенияОХраненииДедуплицированныхФайлов.ВидХраненияФайлов = ЗНАЧЕНИЕ(Перечисление.ВидыХраненияФайлов.ОперационноеХранение)) + |ГДЕ + | (&ВосстановитьВсеФайлы + | ИЛИ ЕСТЬNULL(ВТ_ДедуплицированныеФайлы.ПодлежитВосстановлениюИзЗаНовыхФайлов, ЛОЖЬ) + | ИЛИ ВТ_ПодготовкаДанныхДляВосстановления.ПлановаяДатаПереносаВАрхив > &ДатаОбработки) + |; + | + |//////////////////////////////////////////////////////////////////////////////// + |УНИЧТОЖИТЬ ВТ_ДанныеДляПроверкиДедупликации + |; + | + |//////////////////////////////////////////////////////////////////////////////// + |УНИЧТОЖИТЬ ВТ_ДедуплицированныеФайлы + |; + | + |//////////////////////////////////////////////////////////////////////////////// + |УНИЧТОЖИТЬ ВТ_ПодготовкаДанныхДляВосстановления"; + + ТекстыЗапросовПакета.Добавить(ТекстЗапроса); + + ТекстЗапроса = СтрСоединить(ТекстыЗапросовПакета, ОбщегоНазначения.РазделительПакетаЗапросов()); + + Если МассивИсключений.Количество() > 0 Тогда + ТекстЗапроса = СтрЗаменить(ТекстЗапроса, "&ОтборПоИсключениям", "НЕ Файлы.ВладелецФайла В ИЕРАРХИИ (&МассивИсключений)"); + Иначе + ТекстЗапроса = СтрЗаменить(ТекстЗапроса, "&ОтборПоИсключениям", "ИСТИНА"); + КонецЕсли; + + Если ЭлементИсключение <> Неопределено Тогда + ТекстЗапроса = СтрЗаменить(ТекстЗапроса, "&ОтборПоДетализированнойНастройке", "Файлы.ВладелецФайла В ИЕРАРХИИ (&ОтборПоДетализированнойНастройке)"); + Иначе + ТекстЗапроса = СтрЗаменить(ТекстЗапроса, "&ОтборПоДетализированнойНастройке", "ИСТИНА"); + КонецЕсли; + + Если МетаданныеОбъектаФайлов.Иерархический Тогда + ТекстЗапроса = СтрЗаменить(ТекстЗапроса, "&ЭтоНеГруппа", "НЕ Файлы.ЭтоГруппа"); + Иначе + ТекстЗапроса = СтрЗаменить(ТекстЗапроса, "&ЭтоНеГруппа", "ИСТИНА"); + КонецЕсли; + + Возврат ТекстЗапроса; + +КонецФункции + +Процедура ПеренестиФайлыВФайловыйАрхив(Настройка, МассивИсключений, КоличествоДнейОперативногоХранения, ДополнительныеПараметрыПереноса) + + Если Настройка.Действие = Перечисления.ДействияВНастройкахРаботыСФайловымАрхивом.НеПереноситьВАрхив Тогда + Возврат; + КонецЕсли; + + МенеджерВременныхТаблиц = Новый МенеджерВременныхТаблиц; + + ЗаполнениеВременнойТаблицыДляПереносаФайлов(Настройка, МассивИсключений, КоличествоДнейОперативногоХранения, МенеджерВременныхТаблиц); + + СведенияДляПодбораТома = СведенияОФайлахДляПодбораТома(); + СведенияОТомеХранения = Неопределено; + + ПоследняяСсылка = ПустаяСсылкаНаПрисоединенныйФайл(Настройка); + + ФайлыДляПереноса = СледующаяПорцияФайлов(МенеджерВременныхТаблиц, ПоследняяСсылка, ДополнительныеПараметрыПереноса.ТекстЗапросаПолученияПорцииФайловДляПереносаВАрхив); + + Пока ФайлыДляПереноса.Количество() > 0 Цикл + + СтрокаОписанияОшибки = СтрокаОписанияОшибкиПриОперацияхСВременнымКаталогом(Истина); + + Для Каждого ОбрабатываемыйФайл Из ФайлыДляПереноса Цикл + + Если ОбрабатываемыйФайл.КоличествоДедуплицированныхФайлов > 0 Тогда + Если НЕ ОбрабатываемыйФайл.ПодлежитУсловномуПереносу Тогда + Если ОбрабатываемыйФайл.ФайлРедактируется Тогда + Продолжить; + КонецЕсли; + + //@skip-warning запрос выполняется не для всех итераций цикла. + Если ФайлПеренесенВФайловыйАрхив(ОбрабатываемыйФайл.ПрисоединенныйФайл) Тогда + Продолжить; + КонецЕсли; + ИначеЕсли ОбрабатываемыйФайл.УсловноПеренесенВАрхив Тогда + Продолжить; + КонецЕсли; + КонецЕсли; + + ВременныйКаталог = НовыйВременныйКаталогДляРаботыСZipАрхивом(СтрокаОписанияОшибки); + + ПрисоединенныйФайлСсылка = ОбрабатываемыйФайл.ПрисоединенныйФайл; + + Блокировка = Новый БлокировкаДанных; + ЭлементБлокировкиДанных = Блокировка.Добавить(ПрисоединенныйФайлСсылка.Метаданные().ПолноеИмя()); + ЭлементБлокировкиДанных.УстановитьЗначение("Ссылка", ПрисоединенныйФайлСсылка); + + ЭлементБлокировкиДанных = Блокировка.Добавить(Метаданные.РегистрыСведений.СведенияОФайлах.ПолноеИмя()); + ЭлементБлокировкиДанных.УстановитьЗначение("Файл", ПрисоединенныйФайлСсылка); + + ЭлементБлокировкиДанных = Блокировка.Добавить(Метаданные.РегистрыСведений.ХранилищеФайлов.ПолноеИмя()); + ЭлементБлокировкиДанных.УстановитьЗначение("Файл", ПрисоединенныйФайлСсылка); + + НачатьТранзакцию(); + Попытка + + Блокировка.Заблокировать(); + + Если ОбрабатываемыйФайл.ПодлежитУсловномуПереносу Тогда + + Если Не ОбрабатываемыйФайл.УсловноПеренесенВАрхив Тогда + + ВыполнитьУсловныйПереносФайла(ОбрабатываемыйФайл); + + КонецЕсли; + + Иначе + + ПараметрыОперации = ПараметрыВыполненияОперацииПереноса(); + ПараметрыОперации.ВременныйКаталог = ВременныйКаталог; + + НовыйZipАрхив = ZipАрхивФайлаПодлежащегоПереносу(ОбрабатываемыйФайл, ПараметрыОперации); + + РазмерФайла = НовыйZipАрхив.Размер; + // Дедуплицированный файл может переноситься в том, размещающий данный на диске. В этом случае для каждого + // дедуплицированного файла на диск будет записана отдельная его копия. Поэтому при подборе тома хранения + // учитывается весь необходимый объем свободного места + СведенияДляПодбораТома.Размер = Макс(1, ОбрабатываемыйФайл.КоличествоДедуплицированныхФайлов) * РазмерФайла; + + Если СведенияОТомеХранения = Неопределено + Или СведенияОТомеХранения.МаксимальныйРазмер <> 0 И СведенияОТомеХранения.СвободныйОбъем - СведенияДляПодбораТома.Размер < 0 Тогда + // В файловом архиве могут быть только тома на дисках или том во внешнем хранилище S3, поэтому использовано значение "ВТомахТомНеОпределен" + СведенияОТомеХранения = ПодобратьТомХранения(СведенияДляПодбораТома, + Перечисления.ВидыХраненияФайлов.АрхивноеХранение, + Перечисления.ТипыХраненияФайлов.ВТомахТомНеОпределен); + КонецЕсли; + + ПараметрыОперации.СведенияОТомеХранения = СведенияОТомеХранения; + + // @skip-check query-in-loop - Порционная обработка больших объемов данных. + ПеренестиФайлВФайловыйАрхив(ОбрабатываемыйФайл, НовыйZipАрхив, ПараметрыОперации); + + Если СведенияОТомеХранения.МаксимальныйРазмер <> 0 Тогда + + // Если файл переносится в том, размещающий данные в ХДД, то объем тома должен быть уменьшен максимум на размер + // одного файла, так как данные в таких томах дедуплицируются. + Если СведенияОТомеХранения.НовыйТипХраненияФайла = Перечисления.ТипыХраненияФайлов.ВТомахНаДиске Тогда + РазмерФайла = СведенияДляПодбораТома.Размер; + КонецЕсли; + + СведенияОТомеХранения.СвободныйОбъем = СведенияОТомеХранения.СвободныйОбъем - РазмерФайла; + + КонецЕсли; + КонецЕсли; + ЗафиксироватьТранзакцию(); + Исключение + ОтменитьТранзакцию(); + + СтрокаИсключения = ОбработкаОшибок.ПодробноеПредставлениеОшибки(ИнформацияОбОшибке()); + ЗаписатьВЖурналРегистрацииСобытиеПереносаФайлов(СтрокаИсключения, УровеньЖурналаРегистрации.Ошибка); + + УдалитьВременныйКаталог(ВременныйКаталог, СтрокаОписанияОшибки); + Продолжить; + КонецПопытки; + КонецЦикла; + + УдалитьВременныйКаталог(ВременныйКаталог, СтрокаОписанияОшибки); + + ПоследняяСсылка = ОбрабатываемыйФайл.ПрисоединенныйФайл; + + // @skip-check query-in-loop - Порционная обработка больших объемов данных. + ФайлыДляПереноса = СледующаяПорцияФайлов(МенеджерВременныхТаблиц, ПоследняяСсылка, ДополнительныеПараметрыПереноса.ТекстЗапросаПолученияПорцииФайловДляПереносаВАрхив); + + КонецЦикла; + +КонецПроцедуры + +Функция СведенияОТомеХранения() + + Результат = Новый Структура; + Результат.Вставить("Ссылка" , Справочники.ТомаХраненияФайлов.ПустаяСсылка()); + Результат.Вставить("МаксимальныйРазмер" , 0); + Результат.Вставить("СвободныйОбъем" , 0); + Результат.Вставить("ПутьКТому" , ""); + Результат.Вставить("НовыйТипХраненияФайла" , Перечисления.ТипыХраненияФайлов.ПустаяСсылка()); + + Возврат Результат; + +КонецФункции + +Функция ПодобратьТомХранения(ПрисоединенныйФайл, ВидТомаХраненияФайлов, ТипХраненияФайла) + + НовыйТипХраненияФайла = ТипХраненияФайла; + + Результат = СведенияОТомеХранения(); + + СвободныйТом = СвободныйТомХраненияПоТипуХраненияФайлов(ПрисоединенныйФайл, НовыйТипХраненияФайла, ВидТомаХраненияФайлов); + Если НовыйТипХраненияФайла = Перечисления.ТипыХраненияФайлов.ВТомахТомНеОпределен Тогда + НовыйТипХраненияФайла = ТипХраненияПоТомуХраненияФайлов(СвободныйТом); + КонецЕсли; + + ЗначенияРеквизитовТома = ОбщегоНазначения.ЗначенияРеквизитовОбъекта(СвободныйТом, "Ссылка, МаксимальныйРазмер"); + + Результат.Ссылка = ЗначенияРеквизитовТома.Ссылка; + Результат.МаксимальныйРазмер = ЗначенияРеквизитовТома.МаксимальныйРазмер; + + Если Результат.МаксимальныйРазмер <> 0 Тогда + + Результат.СвободныйОбъем = Результат.МаксимальныйРазмер * 1024 * 1024 - РаботаСФайламиВТомахСлужебный.ОбъемТома(СвободныйТом); + + КонецЕсли; + + Результат.НовыйТипХраненияФайла = НовыйТипХраненияФайла; + Если НовыйТипХраненияФайла = Перечисления.ТипыХраненияФайлов.ВТомахНаДиске Тогда + Результат.ПутьКТому = РаботаСФайламиВТомахСлужебный.ПолныйПутьТома(СвободныйТом); + КонецЕсли; + + Возврат Результат; + +КонецФункции + +Процедура ВосстановитьФайлИзФайловогоАрхива(ОбрабатываемыйФайл, ИзвлеченныйФайл, ПараметрыОперации) + + ИзменяемыеРеквизиты = Новый Структура; + ИзменяемыеРеквизиты.Вставить("Том" , ПараметрыОперации.СведенияОТомеХранения.Ссылка); + ИзменяемыеРеквизиты.Вставить("ТипХраненияФайла" , ПараметрыОперации.СведенияОТомеХранения.НовыйТипХраненияФайла); + ИзменяемыеРеквизиты.Вставить("УсловноПеренесенВАрхив" , Ложь); // Всегда сбрасывать признак условного переноса + ИзменяемыеРеквизиты.Вставить("ДатаПереносаВАрхив" , Дата(1,1,1)); + + Если ПараметрыОперации.СведенияОТомеХранения.НовыйТипХраненияФайла = Перечисления.ТипыХраненияФайлов.ВТомахНаДиске Тогда + + Если ОбрабатываемыйФайл.КоличествоДедуплицированныхФайлов = 0 Тогда + + ВосстановитьИзвлеченныйФайлВОперативныйТомНаДиске(ОбрабатываемыйФайл, ИзвлеченныйФайл, ПараметрыОперации); + + УдалятьИсходныйФайл = Ложь; + + Если ОбрабатываемыйФайл.ТипХраненияФайла = Перечисления.ТипыХраненияФайлов.ВТомахНаДиске Тогда + УдалятьИсходныйФайл = Истина; + Иначе + РегистрыСведений.ХранилищеФайлов.УдалитьДвоичныеДанные(ОбрабатываемыйФайл.ПрисоединенныйФайл); + КонецЕсли; + + ИзменяемыеРеквизиты.Вставить("ПутьКФайлу", ПараметрыОперации.НовыйПутьКФайлуВнутриТома); + ИзменитьРеквизитыПрисоединенногоФайла(ОбрабатываемыйФайл, ИзменяемыеРеквизиты); + + Если УдалятьИсходныйФайл Тогда + РаботаСФайламиВТомахСлужебный.УдалитьФайл(ПараметрыОперации.ИсходныйПутьКФайлу); + КонецЕсли; + + Иначе + + ДедуплицированныеФайлы = ДедуплицированныеФайлыПоХранилищуДвоичныхДанных(ОбрабатываемыйФайл.ХранилищеДвоичныхДанных, Истина); + + Для Каждого ДедуплицированныйФайл Из ДедуплицированныеФайлы Цикл + + ВосстановитьИзвлеченныйФайлВОперативныйТомНаДиске(ДедуплицированныйФайл, ИзвлеченныйФайл, ПараметрыОперации); + РегистрыСведений.ХранилищеФайлов.УдалитьДвоичныеДанные(ДедуплицированныйФайл.ПрисоединенныйФайл); + + ИзменяемыеРеквизиты.Вставить("ПутьКФайлу", ПараметрыОперации.НовыйПутьКФайлуВнутриТома); + ИзменитьРеквизитыПрисоединенногоФайла(ДедуплицированныйФайл, ИзменяемыеРеквизиты); + + КонецЦикла; + КонецЕсли; + + Иначе + + ИзменяемыеРеквизиты.Вставить("ПутьКФайлу", ""); + ДвоичныеДанныеОбрабатываемогоФайла = Новый ДвоичныеДанные(ИзвлеченныйФайл.ИмяФайла); + + ПараметрыЗаписиВИБ = ПараметрыЗаписиВИнформационнуюБазу(); + ЗаполнитьЗначенияСвойств(ПараметрыЗаписиВИБ, ИзменяемыеРеквизиты); + + Если ОбрабатываемыйФайл.КоличествоДедуплицированныхФайлов = 0 Тогда + + УдалятьИсходныйФайл = Ложь; + + Если ОбрабатываемыйФайл.ТипХраненияФайла = Перечисления.ТипыХраненияФайлов.ВТомахНаДиске Тогда + + Если ПараметрыОперации.ПолученыПараметрыХранения Тогда + // Ранее уже были получены параметры оперативного хранения, поэтому достаточно изменить соответствующие реквизиты + // присоединенного файла. И добавить запись в регистр сведений ХранилищеФайлов. Двоичные данные при этом не изменяются. + ПараметрыЗаписиВИБ.НеИзменятьДвоичныеДанные = Истина; + КонецЕсли; + + РегистрыСведений.ХранилищеФайлов.ЗаписатьДвоичныеДанные(ОбрабатываемыйФайл.ПрисоединенныйФайл, ДвоичныеДанныеОбрабатываемогоФайла, ПараметрыЗаписиВИБ); + + УдалятьИсходныйФайл = Истина; + Иначе + ВосстановитьФайлВОперативноеХранилище(ОбрабатываемыйФайл.ХранилищеДвоичныхДанных, ДвоичныеДанныеОбрабатываемогоФайла, ПараметрыОперации); + КонецЕсли; + + ИзменитьРеквизитыПрисоединенногоФайла(ОбрабатываемыйФайл, ИзменяемыеРеквизиты); + + Если УдалятьИсходныйФайл Тогда + РаботаСФайламиВТомахСлужебный.УдалитьФайл(ПараметрыОперации.ИсходныйПутьКФайлу); + КонецЕсли; + + Иначе + + ВосстановитьФайлВОперативноеХранилище(ОбрабатываемыйФайл.ХранилищеДвоичныхДанных, ДвоичныеДанныеОбрабатываемогоФайла, ПараметрыОперации); + + ДедуплицированныеФайлы = ДедуплицированныеФайлыПоХранилищуДвоичныхДанных(ОбрабатываемыйФайл.ХранилищеДвоичныхДанных, Истина); + + Для Каждого ДедуплицированныйФайл Из ДедуплицированныеФайлы Цикл + ИзменитьРеквизитыПрисоединенногоФайла(ДедуплицированныйФайл, ИзменяемыеРеквизиты); + КонецЦикла; + КонецЕсли + КонецЕсли; + +КонецПроцедуры + +Процедура ВосстановитьФайлВОперативноеХранилище(ХранилищеДвоичныхДанных, ДвоичныеДанные, ПараметрыОперации) + + ТипХраненияФайла = ПараметрыОперации.СведенияОТомеХранения.НовыйТипХраненияФайла; + + ЗначенияРеквизитовХранения = Новый Структура; + ЗначенияРеквизитовХранения.Вставить("ДвоичныеДанныеВАрхиве", Неопределено); + + Если Не ПараметрыОперации.ПолученыПараметрыХранения Тогда + + ДобавитьИзменяемыйРеквизитХраненияДвоичныхДанных(ЗначенияРеквизитовХранения, ТипХраненияФайла, ДвоичныеДанные); + + ПараметрыЗаписиВИБ = ПараметрыЗаписиВИнформационнуюБазу(); + ПараметрыЗаписиВИБ.ТипХраненияФайла = ТипХраненияФайла; + ПараметрыЗаписиВИБ.Том = ПараметрыОперации.СведенияОТомеХранения.Ссылка; + + РегистрыСведений.СведенияОХраненииДедуплицированныхФайлов.ДобавитьЗапись(ХранилищеДвоичныхДанных, ПараметрыЗаписиВИБ); + КонецЕсли; + + ЗаписатьДвоичныеДанныеВИнформационнуюБазу(ХранилищеДвоичныхДанных, ЗначенияРеквизитовХранения); + + РегистрыСведений.СведенияОХраненииДедуплицированныхФайлов.УдалитьЗапись(ХранилищеДвоичныхДанных, Перечисления.ВидыХраненияФайлов.АрхивноеХранение); + +КонецПроцедуры + +Процедура ПеренестиФайлВФайловыйАрхив(ОбрабатываемыйФайл, ZipАрхив, ПараметрыОперации) + + ИзменяемыеРеквизиты = Новый Структура; + ИзменяемыеРеквизиты.Вставить("Том" , ПараметрыОперации.СведенияОТомеХранения.Ссылка); + ИзменяемыеРеквизиты.Вставить("ТипХраненияФайла" , ПараметрыОперации.СведенияОТомеХранения.НовыйТипХраненияФайла); + ИзменяемыеРеквизиты.Вставить("УсловноПеренесенВАрхив" , Ложь); + ИзменяемыеРеквизиты.Вставить("ДатаПереносаВАрхив" , ТекущаяДатаСеанса()); + + Если ПараметрыОперации.СведенияОТомеХранения.НовыйТипХраненияФайла = Перечисления.ТипыХраненияФайлов.ВТомахНаДиске Тогда + + Если ОбрабатываемыйФайл.КоличествоДедуплицированныхФайлов = 0 Тогда + + ПеренестиZipАрхивВАрхивныйТомНаДиске(ОбрабатываемыйФайл, ZipАрхив, ПараметрыОперации); + + УдалятьИсходныйФайл = Ложь; + Если ОбрабатываемыйФайл.ТипХраненияФайла = Перечисления.ТипыХраненияФайлов.ВТомахНаДиске Тогда + УдалятьИсходныйФайл = Истина; + Иначе + РегистрыСведений.ХранилищеФайлов.УдалитьДвоичныеДанные(ОбрабатываемыйФайл.ПрисоединенныйФайл); + КонецЕсли; + + ИзменяемыеРеквизиты.Вставить("ПутьКФайлу", ПараметрыОперации.НовыйПутьКФайлуВнутриТома); + ИзменитьРеквизитыПрисоединенногоФайла(ОбрабатываемыйФайл, ИзменяемыеРеквизиты); + + Если УдалятьИсходныйФайл Тогда + РаботаСФайламиВТомахСлужебный.УдалитьФайл(ПараметрыОперации.ИсходныйПутьКФайлу); + КонецЕсли; + Иначе + + ДедуплицированныеФайлы = ДедуплицированныеФайлыПоХранилищуДвоичныхДанных(ОбрабатываемыйФайл.ХранилищеДвоичныхДанных); + + Для Каждого ДедуплицированныйФайл Из ДедуплицированныеФайлы Цикл + + ПеренестиZipАрхивВАрхивныйТомНаДиске(ДедуплицированныйФайл, ZipАрхив, ПараметрыОперации); + РегистрыСведений.ХранилищеФайлов.УдалитьДвоичныеДанные(ДедуплицированныйФайл.ПрисоединенныйФайл); + + ИзменяемыеРеквизиты.Вставить("ПутьКФайлу", ПараметрыОперации.НовыйПутьКФайлуВнутриТома); + ИзменитьРеквизитыПрисоединенногоФайла(ДедуплицированныйФайл, ИзменяемыеРеквизиты); + + КонецЦикла; + КонецЕсли; + Иначе + // Перенос в архивное хранилище S3 + // Если файл хранился во внутренних хранилищах, то просто изменяется реквизит хранения + // Если файл хранился на диске, то нужно найти или создать ХранилищеДвоичных данных и добавить запись в регистр + // сведений ХранилищеФайлов + + ИзменяемыеРеквизиты.Вставить("ПутьКФайлу", ""); + + Если ОбрабатываемыйФайл.КоличествоДедуплицированныхФайлов = 0 Тогда + + УдалятьИсходныйФайл = Ложь; + + Если ОбрабатываемыйФайл.ТипХраненияФайла = Перечисления.ТипыХраненияФайлов.ВТомахНаДиске Тогда + // Перенос с диска во внутреннее хранилище. Требуется проверка наличия дедуплицированных элементов + ДвоичныеДанныеОбрабатываемогоФайла = Новый ДвоичныеДанные(ПараметрыОперации.ИсходныйПутьКФайлу); + ХранилищеДвоичныхДанныхСсылка = ЭлементХранилищаДвоичныхДанныхПоДвоичнымДанным(ДвоичныеДанныеОбрабатываемогоФайла); + + Если ХранилищеДвоичныхДанныхСсылка <> Неопределено Тогда + Если ХранилищеДвоичныхДанныхПрисутствуетВФайловомАрхиве(ХранилищеДвоичныхДанныхСсылка) Тогда + // Общее хранилище двоичных данных перенесено в архив, поэтому выполнения переноса не требуется. + // У присоединенного файла изменяются параметры хранения данными полученными из регистра сведений СведенияОХраненииДедуплицированныхФайлов + // атрибут ДатаПереносаВАрхив заполняется текущей датой сеанса. + ВидХраненияДедуплицированныхФайлов = Перечисления.ВидыХраненияФайлов.АрхивноеХранение; + Иначе + // Общее хранилище двоичных данных отсутствует в архиве, поэтому выполнения переноса не требуется. + // У присоединенного файла изменяются параметры хранения данными полученными из регистра сведений СведенияОХраненииДедуплицированныхФайлов + // атрибут ДатаПереносаВАрхив очищается, а в УсловноПеренесенВАрхив устанавливается Истина. + ВидХраненияДедуплицированныхФайлов = Перечисления.ВидыХраненияФайлов.ОперационноеХранение; + ИзменяемыеРеквизиты.Вставить("УсловноПеренесенВАрхив" , Истина); + ИзменяемыеРеквизиты.Вставить("ДатаПереносаВАрхив" , Дата(1,1,1)); + КонецЕсли; + + СведенияОХраненииФайлов = РегистрыСведений.СведенияОХраненииДедуплицированныхФайлов.СведенияОХраненииДедуплицированныхФайлов( + ХранилищеДвоичныхДанныхСсылка, + ВидХраненияДедуплицированныхФайлов); + + Если СведенияОХраненииФайлов = Неопределено Тогда + + ВызватьИсключение СтроковыеФункцииКлиентСервер.ПодставитьПараметрыВСтроку(НСтр( + "ru = 'В регистре сведений ""Сведения о хранении дедуплицированных файлов"" отсутствуют данные для + |элемента справочника ""Хранилище двоичных данных"": %1 по виду хранения файлов: %2'"), + ХранилищеДвоичныхДанныхСсылка, + ВидХраненияДедуплицированныхФайлов); + КонецЕсли; + + ЗаполнитьЗначенияСвойств(ИзменяемыеРеквизиты, СведенияОХраненииФайлов); + + РегистрыСведений.ХранилищеФайлов.ДобавитьЗапись(ОбрабатываемыйФайл.ПрисоединенныйФайл, ХранилищеДвоичныхДанныхСсылка); + + Иначе + // Создать новый элемент справочника ХранилищеДвоичныхДанных, для которого двоичные данные записываются в файловый архив. + ПараметрыЗаписиВИБ = ПараметрыЗаписиВИнформационнуюБазу(); + ЗаполнитьЗначенияСвойств(ПараметрыЗаписиВИБ,ИзменяемыеРеквизиты); + ПараметрыЗаписиВИБ.ЭтоЗаписьВФайловыйАрхив = Истина; + ПараметрыЗаписиВИБ.ДвоичныеДанныеАрхива = Новый ДвоичныеДанные(ZipАрхив.ИмяФайла); + + РегистрыСведений.ХранилищеФайлов.ЗаписатьДвоичныеДанные(ОбрабатываемыйФайл.ПрисоединенныйФайл, ДвоичныеДанныеОбрабатываемогоФайла, ПараметрыЗаписиВИБ); + КонецЕсли; + + УдалятьИсходныйФайл = Истина; + Иначе + // Для хранения на дисках не поддерживается дедупликация, поэтому для файла с другим типом хранения уже создан + // элемент справочника ХранилищеДвоичныхДанных Требуется перенести данные из реквизита оперативного хранения в + // реквизит архивного хранения и изменить атрибуты присоединенного файла. + ПеренестиZipАрхивВАрхивныйТомХранилищеS3(ОбрабатываемыйФайл, ZipАрхив, ПараметрыОперации); + КонецЕсли; + + ИзменитьРеквизитыПрисоединенногоФайла(ОбрабатываемыйФайл, ИзменяемыеРеквизиты); + + Если УдалятьИсходныйФайл Тогда + РаботаСФайламиВТомахСлужебный.УдалитьФайл(ПараметрыОперации.ИсходныйПутьКФайлу); + КонецЕсли; + + Иначе + // Дедупликация не поддерживается для хранения на дисках, поэтому наличие других дедуплицированных файлов говорит о + // том, что уже создан элемент справочника ХранилищеДвоичныхДанных. Поэтому нужно перенести двоичные данные из + // реквизита оперативного хранения в реквизит архивного хранения. Также нужно изменить атрибуты всех + // дедуплицированных файлов - заполнить параметры хранения и атрибут ДатаПереносаВАрхив. + ПеренестиZipАрхивВАрхивныйТомХранилищеS3(ОбрабатываемыйФайл, ZipАрхив, ПараметрыОперации); + + ДедуплицированныеФайлы = ДедуплицированныеФайлыПоХранилищуДвоичныхДанных(ОбрабатываемыйФайл.ХранилищеДвоичныхДанных); + + Для Каждого ДедуплицированныйФайл Из ДедуплицированныеФайлы Цикл + + ИзменитьРеквизитыПрисоединенногоФайла(ДедуплицированныйФайл, ИзменяемыеРеквизиты); + + КонецЦикла; + КонецЕсли; + КонецЕсли; + +КонецПроцедуры + +Функция ПараметрыВыполненияОперацииПереноса() + + Результат = Новый Структура; + Результат.Вставить("СведенияОТомеХранения"); + Результат.Вставить("ИмяZipАрхиваБезРасширения" , ""); + Результат.Вставить("РасширениеZipАрхива" , ""); + Результат.Вставить("НовыйПутьКФайлуВнутриТома" , ""); + Результат.Вставить("ИсходныйПутьКФайлу" , ""); + Результат.Вставить("ВременныйКаталог" , ""); + + Возврат Результат; + +КонецФункции + +Функция ПараметрыВыполненияОперацииВосстановления() + + Результат = Новый Структура; + Результат.Вставить("СведенияОТомеХранения"); + Результат.Вставить("НовыйПутьКФайлуВнутриТома" , ""); + Результат.Вставить("ИсходныйПутьКФайлу" , ""); + Результат.Вставить("ВременныйКаталог" , ""); + Результат.Вставить("ПолученыПараметрыХранения" , Ложь); + Результат.Вставить("СпособХраненияФайлов" , ""); + + Возврат Результат; + +КонецФункции + +Процедура ДобавитьИзменяемыйРеквизитХраненияДвоичныхДанных(ИзменяемыеРеквизиты, ТипХраненияФайла, ЗначениеРеквизита = Неопределено) + + ИмяРеквизита = РаботаСФайламиВХранилищеДвоичныхДанныхСлужебный.ОпределитьРеквизитХраненияДвоичныхДанныхПоТипуХраненияФайлов(ТипХраненияФайла); + Если ИмяРеквизита <> Неопределено Тогда + ИзменяемыеРеквизиты.Вставить(ИмяРеквизита, ЗначениеРеквизита); + КонецЕсли; + +КонецПроцедуры + +Процедура ЗаписатьДвоичныеДанныеВИнформационнуюБазу(ХранилищеДвоичныхДанных, ЗначенияРеквизитовХранения) + + УстановитьОтключениеБезопасногоРежима(Истина); + УстановитьПривилегированныйРежим(Истина); + + НачатьТранзакцию(); + Попытка + + Если ЗначенияРеквизитовХранения.Свойство("ДвоичныеДанные") Тогда + + Блокировка = Новый БлокировкаДанных; + Блокировка.Добавить("Справочник.ХранилищеДвоичныхДанных").УстановитьЗначение("Ссылка", ХранилищеДвоичныхДанных); + Блокировка.Заблокировать(); + + ХранилищеДвоичныхДанныхОбъект = ХранилищеДвоичныхДанных.ПолучитьОбъект(); + ХранилищеДвоичныхДанныхОбъект.Заблокировать(); + + ХранилищеДвоичныхДанныхОбъект.ДвоичныеДанные = ПодготовитьДвоичныеДанныеДляЗаписи(ЗначенияРеквизитовХранения.ДвоичныеДанные); + ХранилищеДвоичныхДанныхОбъект.Записать(); + + КонецЕсли; + + Если ИспользоватьМестаХраненияДвоичныхДанных(ЗначенияРеквизитовХранения) Тогда + + ЗначенияАтрибутовЗаписи = Новый Структура; + Для Каждого ЗначениеРеквизита Из ЗначенияРеквизитовХранения Цикл + + Если ЗначениеРеквизита.Ключ <> "ДвоичныеДанные" Тогда + ЗначенияАтрибутовЗаписи.Вставить(ЗначениеРеквизита.Ключ, ПодготовитьДвоичныеДанныеДляЗаписи(ЗначениеРеквизита.Значение)); + КонецЕсли; + + КонецЦикла; + + РегистрыСведений.МестаХраненияДвоичныхДанных.ДобавитьИзменитьЗапись(ХранилищеДвоичныхДанных, ЗначенияАтрибутовЗаписи); + КонецЕсли; + + ЗафиксироватьТранзакцию(); + Исключение + ОтменитьТранзакцию(); + ВызватьИсключение; + КонецПопытки; + +КонецПроцедуры + +Функция ИспользоватьМестаХраненияДвоичныхДанных(ЗначенияРеквизитовХранения) + + Для Каждого ЗначениеРеквизитаХранения Из ЗначенияРеквизитовХранения Цикл + Если ЗначениеРеквизитаХранения.Ключ = "ДвоичныеДанныеВАрхиве" + Или ЗначениеРеквизитаХранения.Ключ = "ДвоичныеДанныеВОперационномВстроенномХранилище" + Или ЗначениеРеквизитаХранения.Ключ = "ДвоичныеДанныеВОперационномВнешнемХранилище" Тогда + Возврат Истина; + КонецЕсли; + КонецЦикла; + + Возврат Ложь; + +КонецФункции + +Процедура ВосстановитьИзвлеченныйФайлВОперативныйТомНаДиске(ОбрабатываемыйФайл, ИзвлеченныйФайл, ПараметрыОперации) + + ПутьКИсходномуФайлу = ИзвлеченныйФайл.ИмяФайла; + + СвойстваФайла = РаботаСФайламиВТомахСлужебный.СвойстваФайлаВТоме(); + СвойстваФайла.Наименование = ОбрабатываемыйФайл.Наименование; + СвойстваФайла.Расширение = ОбрабатываемыйФайл.Расширение; + СвойстваФайла.Том = ПараметрыОперации.СведенияОТомеХранения.Ссылка; + СвойстваФайла.ПутьКФайлу = ""; + СвойстваФайла.НомерВерсии = ОбрабатываемыйФайл.НомерВерсии; + СвойстваФайла.ВладелецФайла = ОбрабатываемыйФайл.ВладелецФайла; + + ПутьКФайлуКопии = РаботаСФайламиВТомахСлужебный.ПолноеИмяФайлаВТоме(СвойстваФайла); + + ПараметрыОперации.НовыйПутьКФайлуВнутриТома = Сред(ПутьКФайлуКопии, СтрДлина(ПараметрыОперации.СведенияОТомеХранения.ПутьКТому) + 1); + + КопироватьФайлСПроверкой(ПутьКИсходномуФайлу, ПутьКФайлуКопии); + +КонецПроцедуры + +Процедура КопироватьФайлСПроверкой(ПутьКИсходномуФайлу, ПутьКФайлуКопии) + + РазмерИсходногоФайла = РазмерФайла(ПутьКИсходномуФайлу); + + КопироватьФайл(ПутьКИсходномуФайлу, ПутьКФайлуКопии); + + РазмерФайлаКопии = РазмерФайла(ПутьКФайлуКопии); + + Если РазмерИсходногоФайла <> РазмерФайлаКопии Тогда + ВызватьИсключение СтроковыеФункцииКлиентСервер.ПодставитьПараметрыВСтроку( + НСтр("ru = 'Не совпадает размер исходного и скопированного файла + | + |Исходный файл + |Путь к файлу: ""%1"" + |Размер файла: %2 + | + |Файл копия + |Путь к файлу: ""%3"" + |Размер файла: %4'"), ПутьКИсходномуФайлу, РазмерИсходногоФайла, ПутьКФайлуКопии, РазмерФайлаКопии); + КонецЕсли; + +КонецПроцедуры + +Процедура ПеренестиZipАрхивВАрхивныйТомНаДиске(ОбрабатываемыйФайл, ZipАрхив, ПараметрыОперации, ГенерироватьНовоеИмяZipАрхива = Ложь) + + ПутьКИсходномуФайлу = ZipАрхив.ИмяФайла; + + СвойстваФайла = РаботаСФайламиВТомахСлужебный.СвойстваФайлаВТоме(); + СвойстваФайла.Наименование = ?(ГенерироватьНовоеИмяZipАрхива, ИмяФайлаНовогоZipАрхива(), ПараметрыОперации.ИмяZipАрхиваБезРасширения); + СвойстваФайла.Расширение = ПараметрыОперации.РасширениеZipАрхива; + СвойстваФайла.Том = ПараметрыОперации.СведенияОТомеХранения.Ссылка; + СвойстваФайла.ПутьКФайлу = ""; + СвойстваФайла.НомерВерсии = ОбрабатываемыйФайл.НомерВерсии; + СвойстваФайла.ВладелецФайла = ОбрабатываемыйФайл.ВладелецФайла; + + ПутьКФайлуКопии = РаботаСФайламиВТомахСлужебный.ПолноеИмяФайлаВТоме(СвойстваФайла); + + ПараметрыОперации.НовыйПутьКФайлуВнутриТома = Сред(ПутьКФайлуКопии, СтрДлина(ПараметрыОперации.СведенияОТомеХранения.ПутьКТому) + 1); + + КопироватьФайлСПроверкой(ПутьКИсходномуФайлу, ПутьКФайлуКопии); + +КонецПроцедуры + +Процедура ПеренестиZipАрхивВАрхивныйТомХранилищеS3(ОбрабатываемыйФайл, ZipАрхив, ПараметрыОперации) + + ЗначенияРеквизитовХранения = Новый Структура; + ЗначенияРеквизитовХранения.Вставить("ДвоичныеДанныеВАрхиве", Новый ДвоичныеДанные(ZipАрхив.ИмяФайла)); + ДобавитьИзменяемыйРеквизитХраненияДвоичныхДанных(ЗначенияРеквизитовХранения, ОбрабатываемыйФайл.ТипХраненияФайла); + + ЗаписатьДвоичныеДанныеВИнформационнуюБазу(ОбрабатываемыйФайл.ХранилищеДвоичныхДанных, ЗначенияРеквизитовХранения); + + ПараметрыЗаписиВИБ = ПараметрыЗаписиВИнформационнуюБазу(); + ПараметрыЗаписиВИБ.ТипХраненияФайла = ПараметрыОперации.СведенияОТомеХранения.НовыйТипХраненияФайла; + ПараметрыЗаписиВИБ.Том = ПараметрыОперации.СведенияОТомеХранения.Ссылка; + ПараметрыЗаписиВИБ.ЭтоЗаписьВФайловыйАрхив = Истина; + + РегистрыСведений.СведенияОХраненииДедуплицированныхФайлов.ДобавитьЗапись( + ОбрабатываемыйФайл.ХранилищеДвоичныхДанных, + ПараметрыЗаписиВИБ); + + РегистрыСведений.СведенияОХраненииДедуплицированныхФайлов.УдалитьЗапись(ОбрабатываемыйФайл.ХранилищеДвоичныхДанных, Перечисления.ВидыХраненияФайлов.ОперационноеХранение); + +КонецПроцедуры + +Функция СведенияОФайлахДляПодбораТома() + + Результат = Новый Структура; + Результат.Вставить("Размер" , 0); + Результат.Вставить("Наименование" , ""); + Результат.Вставить("Расширение" , ""); + + Возврат Результат; + +КонецФункции + +Функция РазмерФайла(ПутьКФайлу, ВызыватьИсключение = Истина) + + Результат = 0; + + Файл = Новый Файл(ПутьКФайлу); + Если Файл.Существует() Тогда + Результат = Файл.Размер(); + ИначеЕсли ВызыватьИсключение Тогда + ВызватьИсключение СтроковыеФункцииКлиентСервер.ПодставитьПараметрыВСтроку( + НСтр("ru = 'Файл ""%1"" не найден.'"), ПутьКФайлу); + КонецЕсли; + + Возврат Результат; + +КонецФункции + +Функция СвойстваИзвлеченногоФайла() + + Результат = Новый Структура; + Результат.Вставить("ИмяФайла" , ""); + Результат.Вставить("ИмяСРасширением", ""); + Результат.Вставить("Размер" , 0); + + Возврат Результат; + +КонецФункции + +Функция ФайлИзвлеченныйИзZipАрхива(ОбрабатываемыйФайл, ПараметрыОперации) + + Результат = СвойстваИзвлеченногоФайла(); + + Попытка + + ВременныйКаталог = ПараметрыОперации.ВременныйКаталог; + + Если ОбрабатываемыйФайл.ТипХраненияФайла <> Перечисления.ТипыХраненияФайлов.ВТомахНаДиске Тогда + + ДвоичныеДанныеZipАрхива = ДвоичныеДанныеФайла(ОбрабатываемыйФайл, Ложь); + + Иначе + ПутьКФайлуАрхива = РаботаСФайламиВТомахСлужебный.ПолноеИмяФайлаВТоме( + Новый Структура("Том, ПутьКФайлу", ОбрабатываемыйФайл.Том, ОбрабатываемыйФайл.ПутьКФайлу)); + + ФайлНаДиске = Новый Файл(ПутьКФайлуАрхива); + Если Не ФайлНаДиске.Существует() Тогда + ВызватьИсключение СтроковыеФункцииКлиентСервер.ПодставитьПараметрыВСтроку( + НСтр("ru = 'Файл ""%1"" не найден.'"), ПутьКФайлуАрхива); + КонецЕсли; + + ПараметрыОперации.ИсходныйПутьКФайлу = ПутьКФайлуАрхива; + + ДвоичныеДанныеZipАрхива = Новый ДвоичныеДанные(ПутьКФайлуАрхива); + КонецЕсли; + + ИмяИзвлекаемогоФайла = ОбщегоНазначенияКлиентСервер.ПолучитьИмяСРасширением(ОбрабатываемыйФайл.Наименование, ОбрабатываемыйФайл.Расширение); + + ДанныеИзвлеченногоФайла = ИзвлечьФайлИзZipАрхива(ДвоичныеДанныеZipАрхива, ИмяИзвлекаемогоФайла, ВременныйКаталог); + + Результат.Размер = ДанныеИзвлеченногоФайла.Размер; + + Результат.ИмяФайла = ДанныеИзвлеченногоФайла.ИмяФайла; + Результат.ИмяСРасширением = ИмяИзвлекаемогоФайла; + + Исключение + ШаблонОписанияОшибки = НСтр("ru = 'Ошибка при восстановлении файла ""%1"" + |Не удалось извлечь файл из zip-архива + |""%2"".'"); + + СтрокаИсключения = СтроковыеФункцииКлиентСервер.ПодставитьПараметрыВСтроку( + ШаблонОписанияОшибки, + ИмяИзвлекаемогоФайла, + ОбработкаОшибок.КраткоеПредставлениеОшибки(ИнформацияОбОшибке())); + + ВызватьИсключение СтрокаИсключения; + КонецПопытки; + + Возврат Результат; + +КонецФункции + +Функция ZipАрхивФайлаПодлежащегоПереносу(ОбрабатываемыйФайл, ПараметрыОперации) + + Попытка + + ВременныйКаталог = ПараметрыОперации.ВременныйКаталог; + + Если ОбрабатываемыйФайл.ТипХраненияФайла <> Перечисления.ТипыХраненияФайлов.ВТомахНаДиске Тогда + ПутьКАрхивируемомуФайлу = ПутьКОбрабатываемомуФайлуВоВременномКаталоге(ОбрабатываемыйФайл, ВременныйКаталог); + + ДвоичныеДанныеФайла = ДвоичныеДанныеФайла(ОбрабатываемыйФайл); + + Если ТипЗнч(ДвоичныеДанныеФайла) <> Тип("ДвоичныеДанные") Тогда + СтрокаИсключения = СтроковыеФункцииКлиентСервер.ПодставитьПараметрыВСтроку( + НСтр("ru = 'Данных файла имеют неверный тип: ""%1"" + |Верный тип: ""ДвоичныеДанные""'"), ТипЗнч(ДвоичныеДанныеФайла)); + ВызватьИсключение СтрокаИсключения; + КонецЕсли; + + ДвоичныеДанныеФайла.Записать(ПутьКАрхивируемомуФайлу); + Иначе + ПутьКАрхивируемомуФайлу = РаботаСФайламиВТомахСлужебный.ПолноеИмяФайлаВТоме( + Новый Структура("Том, ПутьКФайлу", ОбрабатываемыйФайл.Том, ОбрабатываемыйФайл.ПутьКФайлу)); + + ФайлНаДиске = Новый Файл(ПутьКАрхивируемомуФайлу); + Если Не ФайлНаДиске.Существует() Тогда + ВызватьИсключение СтроковыеФункцииКлиентСервер.ПодставитьПараметрыВСтроку( + НСтр("ru = 'Архивируемый файл ""%1"" не найден.'"), ПутьКАрхивируемомуФайлу); + КонецЕсли; + + ПараметрыОперации.ИсходныйПутьКФайлу = ПутьКАрхивируемомуФайлу; + КонецЕсли; + + ИмяАрхивногоФайлаБезРасширения = ИмяФайлаНовогоZipАрхива(); + ИмяАрхивногоФайла = ОбщегоНазначенияКлиентСервер.ПолучитьИмяСРасширением(ИмяАрхивногоФайлаБезРасширения, "zip"); + + ПутьКФайлуАрхива = ВременныйКаталог + ИмяАрхивногоФайла; + + НовыйZipАрхив = УпаковатьФайлВZipАрхив(ПутьКФайлуАрхива, ПутьКАрхивируемомуФайлу); + + ПараметрыОперации.ИмяZipАрхиваБезРасширения = ИмяАрхивногоФайлаБезРасширения; + ПараметрыОперации.РасширениеZipАрхива = "zip"; + + Исключение + + ШаблонОписанияОшибки = НСтр("ru = 'Ошибка при переносе файла ""%1"" + |Не создан zip-архив + |""%2"".'"); + + СтрокаИсключения = СтроковыеФункцииКлиентСервер.ПодставитьПараметрыВСтроку( + ШаблонОписанияОшибки, + ОбрабатываемыйФайл.Наименование + "." + ОбрабатываемыйФайл.Расширение, + ОбработкаОшибок.КраткоеПредставлениеОшибки(ИнформацияОбОшибке())); + + ВызватьИсключение СтрокаИсключения; + + КонецПопытки; + + Возврат НовыйZipАрхив; + +КонецФункции + +Функция ИмяФайлаНовогоZipАрхива() + + Возврат Строка(Новый УникальныйИдентификатор); + +КонецФункции + +Функция ДвоичныеДанныеФайла(ОбрабатываемыйФайл, ЭтоПереносВФайловыйАрхив = Истина) + + Результат = ОбрабатываемыйФайл.ДвоичныеДанныеФайла; + + Если ТипЗнч(Результат) = Тип("ХранилищеЗначения") Тогда + Результат = Результат.Получить(); + Если ТипЗнч(Результат) = Тип("ДвоичныеДанные") Тогда + Возврат Результат; + КонецЕсли; + КонецЕсли; + + Если ЭтоПереносВФайловыйАрхив Тогда + Если Не ЗначениеЗаполнено(Результат) Или ТипЗнч(Результат) <> Тип("ДвоичныеДанные") Тогда + Результат = РаботаСФайлами.ДвоичныеДанныеФайла(ОбрабатываемыйФайл.ПрисоединенныйФайл); + КонецЕсли; + КонецЕсли; + + Возврат Результат; + +КонецФункции + +Функция ПутьКОбрабатываемомуФайлуВоВременномКаталоге(ОбрабатываемыйФайл, ВременныйКаталог = "") + + УстановитьПривилегированныйРежим(Истина); + + Если ВременныйКаталог = "" Тогда + СтрокаОписанияОшибки = СтрокаОписанияОшибкиПриОперацияхСВременнымКаталогом(Истина); + ВременныйКаталог = НовыйВременныйКаталогДляРаботыСZipАрхивом(СтрокаОписанияОшибки); + КонецЕсли; + + ИмяФайла = ОбщегоНазначенияКлиентСервер.ПолучитьИмяСРасширением(ОбрабатываемыйФайл.Наименование, ОбрабатываемыйФайл.Расширение); + + Возврат ВременныйКаталог + ИмяФайла; + +КонецФункции + +Процедура ВыполнитьУсловныйПереносФайла(ОбрабатываемыйФайл) + + ИзменяемыеРеквизиты = Новый Структура; + ИзменяемыеРеквизиты.Вставить("УсловноПеренесенВАрхив", Истина); + ИзменитьРеквизитыПрисоединенногоФайла(ОбрабатываемыйФайл, ИзменяемыеРеквизиты); + +КонецПроцедуры + +Процедура ИзменитьРеквизитыПрисоединенногоФайла(ОбрабатываемыйФайл, ИзменяемыеРеквизиты) + + ФайлСсылка = ОбрабатываемыйФайл.ПрисоединенныйФайл; + + ЕстьАтрибутыОтсутствующиеВРеквизитах = ЕстьАтрибутыОтсутствующиеВРеквизитах(ИзменяемыеРеквизиты, ФайлСсылка); + + Блокировка = Новый БлокировкаДанных; + ЭлементБлокировкиДанных = Блокировка.Добавить(ФайлСсылка.Метаданные().ПолноеИмя()); + ЭлементБлокировкиДанных.УстановитьЗначение("Ссылка", ФайлСсылка); + + Если ЕстьАтрибутыОтсутствующиеВРеквизитах Тогда + ЭлементБлокировкиДанных = Блокировка.Добавить(Метаданные.РегистрыСведений.СведенияОФайлах.ПолноеИмя()); + ЭлементБлокировкиДанных.УстановитьЗначение("Файл", ОбрабатываемыйФайл.ФайлДляЗаписиСведений); + КонецЕсли; + + НачатьТранзакцию(); + Попытка + + Блокировка.Заблокировать(); + + ФайлОбъект = ФайлСсылка.ПолучитьОбъект(); + ФайлОбъект.Заблокировать(); + + ЗаполнитьЗначенияСвойств(ФайлОбъект, ИзменяемыеРеквизиты); + ФайлОбъект.Записать(); + + Если ЕстьАтрибутыОтсутствующиеВРеквизитах Тогда + + НаборЗаписейРС = РегистрыСведений.СведенияОФайлах.СоздатьНаборЗаписей(); + НаборЗаписейРС.Отбор.Файл.Установить(ОбрабатываемыйФайл.ФайлДляЗаписиСведений); + НаборЗаписейРС.Прочитать(); + + Если НаборЗаписейРС.Количество() = 1 Тогда + ЗаписьРС = НаборЗаписейРС[0]; + Иначе + ЗаписьРС = НаборЗаписейРС.Добавить(); + КонецЕсли; + + Если Не ЗначениеЗаполнено(ЗаписьРС.Файл) Тогда + ЗаписьРС.Файл = ОбрабатываемыйФайл.ФайлДляЗаписиСведений; + ЗаполнитьЗначенияСвойств(ЗаписьРС, ОбрабатываемыйФайл.ФайлДляЗаписиСведений); + КонецЕсли; + + ЗаполнитьЗначенияСвойств(ЗаписьРС, ИзменяемыеРеквизиты); + + НаборЗаписейРС.Записать(); + + КонецЕсли; + + ЗафиксироватьТранзакцию(); + + Исключение + ОтменитьТранзакцию(); + + ИмяДляЖурнала = ОбщегоНазначенияКлиентСервер.ПолучитьИмяСРасширением(ОбрабатываемыйФайл.Наименование, + ОбрабатываемыйФайл.Расширение); + + Ошибка = Обработки.ПереносФайлов.ОшибкаПереноса(ФайлСсылка, ИнформацияОбОшибке()); + Ошибка.ИмяФайла = ИмяДляЖурнала; + + ПредставлениеСсылкиНаФайл = ПредставлениеПрисоединенногоФайла(ФайлСсылка, ОбрабатываемыйФайл.ФайлПредставление); + + СтрокаИсключения = СтроковыеФункцииКлиентСервер.ПодставитьПараметрыВСтроку( + НСтр("ru = 'Не удалось перенести файл %1 + |%2 + |по причине: + |%3"".'"), + ПредставлениеСсылкиНаФайл, + ИмяДляЖурнала, Ошибка.ПодробноеПредставлениеОшибки); + + ВызватьИсключение СтрокаИсключения; + + КонецПопытки; + +КонецПроцедуры + +Функция ПредставлениеПрисоединенногоФайла(ПрисоединенныйФайлСсылка, ПредставлениеФайла) + + ПрисоединенныйФайлМетаданные = ПрисоединенныйФайлСсылка.Метаданные(); + + ПредставлениеОбъекта = ПрисоединенныйФайлМетаданные.ПредставлениеОбъекта; + Если ПустаяСтрока(ПредставлениеОбъекта) Тогда + ПредставлениеОбъекта = ПрисоединенныйФайлМетаданные.Представление(); + КонецЕсли; + + Возврат СтроковыеФункцииКлиентСервер.ПодставитьПараметрыВСтроку("%1 (%2)", ПредставлениеФайла, ПредставлениеОбъекта); + +КонецФункции + +Функция ЕстьАтрибутыОтсутствующиеВРеквизитах(ИзменяемыеРеквизиты, ФайлСсылка) + + Результат = Ложь; + + Реквизиты = ФайлСсылка.Метаданные().Реквизиты; + Для Каждого Реквизит Из ИзменяемыеРеквизиты Цикл + Если Реквизиты.Найти(Реквизит.Ключ) = Неопределено Тогда + Результат = Истина; + Прервать; + КонецЕсли; + КонецЦикла; + + Возврат Результат; + +КонецФункции + +Функция ПустаяСсылкаНаПрисоединенныйФайл(Настройка) + + Если Настройка.ЭтоФайл Тогда + Результат = Справочники.ВерсииФайлов.ПустаяСсылка(); + Иначе + Результат = ОбщегоНазначения.ЗначениеРеквизитаОбъекта(Настройка.ТипВладельцаФайла, "ЗначениеПустойСсылки"); + КонецЕсли; + + Возврат Результат; + +КонецФункции + +Процедура ЗаполнениеВременнойТаблицыДляПереносаФайлов(НастройкаПереносаФайлов, МассивИсключений, КоличествоДнейОперативногоХранения, МенеджерВременныхТаблиц) + + УстановитьПривилегированныйРежим(Истина); + + Если НастройкаПереносаФайлов.ЭтоДетальнаяНастройкаПереносаФайлов Тогда + ВладелецФайла = НастройкаПереносаФайлов.ИдентификаторВладельца; + ЭлементИсключение = НастройкаПереносаФайлов.ВладелецФайла; + Иначе + ВладелецФайла = НастройкаПереносаФайлов.ВладелецФайла; + ЭлементИсключение = Неопределено; + КонецЕсли; + + ТекстЗапроса = ТекстЗапросаДляПереносаФайловВФайловыйАрхив(ВладелецФайла, НастройкаПереносаФайлов, МассивИсключений, ЭлементИсключение); + + Запрос = Новый Запрос(ТекстЗапроса); + Запрос.МенеджерВременныхТаблиц = МенеджерВременныхТаблиц; + + Запрос.УстановитьПараметр("ТипВладельца" , ТипЗнч(ОбщегоНазначения.ЗначениеРеквизитаОбъекта(ВладелецФайла, "ЗначениеПустойСсылки"))); + Запрос.УстановитьПараметр("КоличествоДней" , КоличествоДнейОперативногоХранения); + Запрос.УстановитьПараметр("ДатаОбработки" , ТекущаяДатаСеанса()); + + ПустыеПользователи = Новый Массив; + ПустыеПользователи.Добавить(Неопределено); + ПустыеПользователи.Добавить(Справочники.Пользователи.ПустаяСсылка()); + ПустыеПользователи.Добавить(Справочники.ВнешниеПользователи.ПустаяСсылка()); + ПустыеПользователи.Добавить(Справочники.УчетныеЗаписиСинхронизацииФайлов.ПустаяСсылка()); + + Запрос.УстановитьПараметр("ПустыеПользователи", ПустыеПользователи); + + Если МассивИсключений.Количество() > 0 Тогда + + Запрос.УстановитьПараметр("МассивИсключений", МассивИсключений); + + КонецЕсли; + + Если НастройкаПереносаФайлов.ЭтоДетальнаяНастройкаПереносаФайлов Тогда + + Запрос.УстановитьПараметр("ОтборПоДетализированнойНастройке", ЭлементИсключение); + + КонецЕсли; + + Запрос.Выполнить(); + +КонецПроцедуры + +Функция СледующаяПорцияФайлов(МенеджерВременныхТаблиц, ПоследняяСсылка, ТекстЗапроса) + + УстановитьОтключениеБезопасногоРежима(Истина); + УстановитьПривилегированныйРежим(Истина); + + Запрос = Новый Запрос; + Запрос.МенеджерВременныхТаблиц = МенеджерВременныхТаблиц; + Запрос.Текст = ТекстЗапроса; + Запрос.УстановитьПараметр("ПоследняяСсылка", ПоследняяСсылка); + + Возврат Запрос.Выполнить().Выгрузить(); + +КонецФункции + +Функция ТекстЗапросаПорцииФайлов(РазмерПорции, ЭтоПереносВФайловыйАрхив = Истина) + + Результат = + "ВЫБРАТЬ ПЕРВЫЕ 10 + | ВТ_ДанныеДляПереноса.ПрисоединенныйФайл КАК ПрисоединенныйФайл, + | ВТ_ДанныеДляПереноса.ФайлПредставление КАК ФайлПредставление, + | ВТ_ДанныеДляПереноса.ТипХраненияФайла КАК ТипХраненияФайла, + | ВТ_ДанныеДляПереноса.ХранилищеДвоичныхДанных КАК ХранилищеДвоичныхДанных, + | ВТ_ДанныеДляПереноса.Том КАК Том, + | ВТ_ДанныеДляПереноса.ПутьКФайлу КАК ПутьКФайлу, + | ВТ_ДанныеДляПереноса.Наименование КАК Наименование, + | ВТ_ДанныеДляПереноса.Расширение КАК Расширение, + | ВТ_ДанныеДляПереноса.КоличествоДедуплицированныхФайлов КАК КоличествоДедуплицированныхФайлов, + | ВТ_ДанныеДляПереноса.ФайлДляЗаписиСведений КАК ФайлДляЗаписиСведений, + | ВТ_ДанныеДляПереноса.НомерВерсии КАК НомерВерсии, + | ВТ_ДанныеДляПереноса.ВладелецФайла КАК ВладелецФайла, + | &ДополнительныеПоля КАК ДополнительныеПоля, + | &ПолеДвоичныхДанных КАК ДвоичныеДанныеФайла + |ИЗ + | ВТ_ДанныеДляПереноса КАК ВТ_ДанныеДляПереноса + | ЛЕВОЕ СОЕДИНЕНИЕ Справочник.ХранилищеДвоичныхДанных КАК ХранилищеДвоичныхДанныхСправочник + | ПО ВТ_ДанныеДляПереноса.ХранилищеДвоичныхДанных = ХранилищеДвоичныхДанныхСправочник.Ссылка + | И (ВТ_ДанныеДляПереноса.ПолучатьДвоичныеДанные) + | ЛЕВОЕ СОЕДИНЕНИЕ РегистрСведений.МестаХраненияДвоичныхДанных КАК МестаХраненияДвоичныхДанных + | ПО ВТ_ДанныеДляПереноса.ХранилищеДвоичныхДанных = МестаХраненияДвоичныхДанных.ХранилищеДвоичныхДанных + |ГДЕ + | ВТ_ДанныеДляПереноса.ПрисоединенныйФайл > &ПоследняяСсылка + | + |УПОРЯДОЧИТЬ ПО + | ПрисоединенныйФайл"; + + Если ЭтоПереносВФайловыйАрхив Тогда + + Результат = СтрЗаменить(Результат, "&ПолеДвоичныхДанных", + "ЕСТЬNULL(ВЫБОР + | КОГДА ВТ_ДанныеДляПереноса.ТипХраненияФайла = ЗНАЧЕНИЕ(Перечисление.ТипыХраненияФайлов.ВИнформационнойБазе) + | ТОГДА ХранилищеДвоичныхДанныхСправочник.ДвоичныеДанные + | КОГДА ВТ_ДанныеДляПереноса.ТипХраненияФайла = ЗНАЧЕНИЕ(Перечисление.ТипыХраненияФайлов.ВоВстроенномХранилищеДвоичныхДанных) + | ТОГДА ЕСТЬNULL(МестаХраненияДвоичныхДанных.ДвоичныеДанныеВОперационномВстроенномХранилище, НЕОПРЕДЕЛЕНО) + | КОГДА ВТ_ДанныеДляПереноса.ТипХраненияФайла = ЗНАЧЕНИЕ(Перечисление.ТипыХраненияФайлов.ВоВнешнемХранилищеДвоичныхДанных) + | ТОГДА ЕСТЬNULL(МестаХраненияДвоичныхДанных.ДвоичныеДанныеВОперационномВнешнемХранилище, НЕОПРЕДЕЛЕНО) + | ИНАЧЕ НЕОПРЕДЕЛЕНО + | КОНЕЦ, НЕОПРЕДЕЛЕНО)"); + + Результат = СтрЗаменить(Результат, "&ДополнительныеПоля КАК ДополнительныеПоля", + "ВТ_ДанныеДляПереноса.УсловноПеренесенВАрхив КАК УсловноПеренесенВАрхив, + | ВТ_ДанныеДляПереноса.ПодлежитУсловномуПереносу КАК ПодлежитУсловномуПереносу, + | ВТ_ДанныеДляПереноса.ФайлРедактируется КАК ФайлРедактируется"); + + Иначе + Результат = СтрЗаменить(Результат, "&ПолеДвоичныхДанных", "ЕСТЬNULL(МестаХраненияДвоичныхДанных.ДвоичныеДанныеВАрхиве, НЕОПРЕДЕЛЕНО)"); + + Результат = СтрЗаменить(Результат, "&ДополнительныеПоля КАК ДополнительныеПоля", + "ВТ_ДанныеДляПереноса.ТипХраненияФайлаОперативный КАК ТипХраненияФайлаОперативный, + | ВТ_ДанныеДляПереноса.ТомОперативный КАК ТомОперативный, + | ВТ_ДанныеДляПереноса.ПутьКФайлуОперативный КАК ПутьКФайлуОперативный"); + КонецЕсли; + + Если РазмерПорции <> 10 Тогда + Результат = СтрЗаменить(Результат, "10", Формат(РазмерПорции, "ЧГ=0")); + КонецЕсли; + + Возврат Результат; + +КонецФункции + +Функция ТекстЗапросаДляПереносаФайловВФайловыйАрхив(ВладелецФайла, Настройка, МассивИсключений, ЭлементИсключение) + + РеквизитыСправочникаФайлов = ОбщегоНазначения.ЗначенияРеквизитовОбъекта(Настройка.ТипВладельцаФайла, "ПолноеИмя, Имя"); + + МетаданныеВладельцаФайлов = ОбщегоНазначения.ОбъектМетаданныхПоИдентификатору(ВладелецФайла); + ПолноеИмяВладельцаФайлов = МетаданныеВладельцаФайлов.ПолноеИмя(); + + МетаданныеОбъектаФайлов = ОбщегоНазначения.ОбъектМетаданныхПоИдентификатору(Настройка.ТипВладельцаФайла); + ЕстьВозможностьХранитьВерсии = ОбщегоНазначения.ЕстьРеквизитОбъекта("ТекущаяВерсия", МетаданныеОбъектаФайлов); + + ТекстыЗапросовПакета = Новый Массив; + + Если ЕстьВозможностьХранитьВерсии Тогда + + СправочникВерсийФайлов = ОбщегоНазначения.ИдентификаторОбъектаМетаданных(МетаданныеОбъектаФайлов.Реквизиты.ТекущаяВерсия.Тип.Типы()[0]); + МетаданныеВерсийФайлов = ОбщегоНазначения.ОбъектМетаданныхПоИдентификатору(СправочникВерсийФайлов); + + ПолноеИмяСправочникаВерсийФайлов = МетаданныеВерсийФайлов.ПолноеИмя(); + + ТекстЗапроса = + "ВЫБРАТЬ + | ВерсииФайлов.Ссылка КАК ПрисоединенныйФайл, + | ВерсииФайлов.ТипХраненияФайла КАК ТипХраненияФайла, + | ВерсииФайлов.Том КАК Том, + | ВерсииФайлов.ПутьКФайлу КАК ПутьКФайлу, + | ЕСТЬNULL(ХранилищеФайлов.ХранилищеДвоичныхДанных, ЗНАЧЕНИЕ(Справочник.ХранилищеДвоичныхДанных.ПустаяСсылка)) КАК ХранилищеДвоичныхДанных, + | ВерсииФайлов.ТипХраненияФайла = ЗНАЧЕНИЕ(Перечисление.ТипыХраненияФайлов.ВТомахНаДиске) КАК ЭтоХранениеНаДиске, + | ВерсииФайлов.Наименование КАК Наименование, + | ВерсииФайлов.Расширение КАК Расширение, + | ВерсииФайлов.Владелец КАК ФайлДляЗаписиСведений, + | ВерсииФайлов.НомерВерсии КАК НомерВерсии, + | Файлы.ВладелецФайла КАК ВладелецФайла, + | ВерсииФайлов.УсловноПеренесенВАрхив КАК УсловноПеренесенВАрхив, + | ВерсииФайлов.Представление КАК ФайлПредставление + |ПОМЕСТИТЬ ВТ_ПодготовкаДанныхДляПереноса + |ИЗ + | #ПолноеИмяСправочникаФайлов КАК Файлы + | ВНУТРЕННЕЕ СОЕДИНЕНИЕ #ПолноеИмяСправочникаВерсийФайлов КАК ВерсииФайлов + | ПО Файлы.Ссылка = ВерсииФайлов.Владелец + | И (НЕ Файлы.ПометкаУдаления) + | И (НЕ ВерсииФайлов.ПометкаУдаления) + | И (&ЭтоНеГруппа) + | И (ТИПЗНАЧЕНИЯ(Файлы.ВладелецФайла) = &ТипВладельца) + | И (&ОтборПоДетализированнойНастройке) + | И (&ОтборПоИсключениям) + | И (ВЫБОР + | КОГДА ВерсииФайлов.ТипХраненияФайла = ЗНАЧЕНИЕ(Перечисление.ТипыХраненияФайлов.ВТомахНаДиске) + | ТОГДА (ВЫРАЗИТЬ(ВерсииФайлов.ПутьКФайлу КАК СТРОКА(100))) <> """" + | ИЛИ НЕ ВерсииФайлов.Том = ЗНАЧЕНИЕ(Справочник.ТомаХраненияФайлов.ПустаяСсылка) + | КОГДА ВерсииФайлов.ТипХраненияФайла = ЗНАЧЕНИЕ(Перечисление.ТипыХраненияФайлов.ВоВстроенномХранилищеДвоичныхДанных) + | ИЛИ ВерсииФайлов.ТипХраненияФайла = ЗНАЧЕНИЕ(Перечисление.ТипыХраненияФайлов.ВоВнешнемХранилищеДвоичныхДанных) + | ТОГДА НЕ ВерсииФайлов.Том = ЗНАЧЕНИЕ(Справочник.ТомаХраненияФайлов.ПустаяСсылка) + | ИНАЧЕ ИСТИНА + | КОНЕЦ) + | И (ДОБАВИТЬКДАТЕ(ВерсииФайлов.ДатаСоздания, ДЕНЬ, &КоличествоДней) <= &ДатаОбработки) + | И (ВерсииФайлов.ДатаПереносаВАрхив = ДатаВремя(1,1,1)) + | И (Файлы.ТекущаяВерсия <> ВерсииФайлов.Ссылка + | ИЛИ Файлы.Редактирует В (&ПустыеПользователи)) + | ЛЕВОЕ СОЕДИНЕНИЕ РегистрСведений.ХранилищеФайлов КАК ХранилищеФайлов + | ПО (ВерсииФайлов.Ссылка = ХранилищеФайлов.Файл)"; + + ТекстЗапроса = СтрЗаменить(ТекстЗапроса, "#ПолноеИмяСправочникаФайлов", РеквизитыСправочникаФайлов.ПолноеИмя); + ТекстЗапроса = СтрЗаменить(ТекстЗапроса, "#ПолноеИмяСправочникаВерсийФайлов", ПолноеИмяСправочникаВерсийФайлов); + + ТекстыЗапросовПакета.Добавить(ТекстЗапроса); + + Иначе // Не ЕстьВозможностьХранитьВерсии + + ТекстЗапроса = + "ВЫБРАТЬ + | Файлы.Ссылка КАК ПрисоединенныйФайл, + | Файлы.ТипХраненияФайла КАК ТипХраненияФайла, + | Файлы.Том КАК Том, + | Файлы.ПутьКФайлу КАК ПутьКФайлу, + | ЕСТЬNULL(ХранилищеФайлов.ХранилищеДвоичныхДанных, ЗНАЧЕНИЕ(Справочник.ХранилищеДвоичныхДанных.ПустаяСсылка)) КАК ХранилищеДвоичныхДанных, + | Файлы.ТипХраненияФайла = ЗНАЧЕНИЕ(Перечисление.ТипыХраненияФайлов.ВТомахНаДиске) КАК ЭтоХранениеНаДиске, + | Файлы.Наименование КАК Наименование, + | Файлы.Расширение КАК Расширение, + | Файлы.Ссылка КАК ФайлДляЗаписиСведений, + | 0 КАК НомерВерсии, + | Файлы.ВладелецФайла КАК ВладелецФайла, + | СведенияОФайлах.УсловноПеренесенВАрхив КАК УсловноПеренесенВАрхив, + | Файлы.Представление КАК ФайлПредставление + |ПОМЕСТИТЬ ВТ_ПодготовкаДанныхДляПереноса + |ИЗ + | #ТипВладельцаФайла КАК Файлы + | ВНУТРЕННЕЕ СОЕДИНЕНИЕ #СправочникВладелецФайла КАК СправочникВладелецФайла + | ПО Файлы.ВладелецФайла = СправочникВладелецФайла.Ссылка + | И (НЕ СправочникВладелецФайла.ПометкаУдаления) + | И (НЕ Файлы.ПометкаУдаления) + | И (&ЭтоНеГруппа) + | И (ТИПЗНАЧЕНИЯ(Файлы.ВладелецФайла) = &ТипВладельца) + | И (&ОтборПоДетализированнойНастройке) + | И (&ОтборПоИсключениям) + | И (ВЫБОР + | КОГДА Файлы.ТипХраненияФайла = ЗНАЧЕНИЕ(Перечисление.ТипыХраненияФайлов.ВТомахНаДиске) + | ТОГДА (ВЫРАЗИТЬ(Файлы.ПутьКФайлу КАК СТРОКА(100))) <> """" + | ИЛИ НЕ Файлы.Том = ЗНАЧЕНИЕ(Справочник.ТомаХраненияФайлов.ПустаяСсылка) + | КОГДА Файлы.ТипХраненияФайла = ЗНАЧЕНИЕ(Перечисление.ТипыХраненияФайлов.ВоВстроенномХранилищеДвоичныхДанных) + | ИЛИ Файлы.ТипХраненияФайла = ЗНАЧЕНИЕ(Перечисление.ТипыХраненияФайлов.ВоВнешнемХранилищеДвоичныхДанных) + | ТОГДА НЕ Файлы.Том = ЗНАЧЕНИЕ(Справочник.ТомаХраненияФайлов.ПустаяСсылка) + | ИНАЧЕ ИСТИНА + | КОНЕЦ) + | И (ДОБАВИТЬКДАТЕ(Файлы.ДатаСоздания, ДЕНЬ, &КоличествоДней) <= &ДатаОбработки) + | И (Файлы.Редактирует В (&ПустыеПользователи)) + | ВНУТРЕННЕЕ СОЕДИНЕНИЕ РегистрСведений.СведенияОФайлах КАК СведенияОФайлах + | ПО Файлы.Ссылка = СведенияОФайлах.Файл + | И (СведенияОФайлах.ДатаПереносаВАрхив = ДатаВремя(1,1,1)) + | ЛЕВОЕ СОЕДИНЕНИЕ РегистрСведений.ХранилищеФайлов КАК ХранилищеФайлов + | ПО Файлы.Ссылка = ХранилищеФайлов.Файл"; + + ТекстЗапроса = СтрЗаменить(ТекстЗапроса, "#ТипВладельцаФайла", "Справочник." + РеквизитыСправочникаФайлов.Имя); + ТекстЗапроса = СтрЗаменить(ТекстЗапроса, "#СправочникВладелецФайла", ПолноеИмяВладельцаФайлов); + + ТекстыЗапросовПакета.Добавить(ТекстЗапроса); + + КонецЕсли; + + ТекстЗапроса = + "ВЫБРАТЬ РАЗЛИЧНЫЕ + | ВТ_ПодготовкаДанныхДляПереноса.ХранилищеДвоичныхДанных КАК ХранилищеДвоичныхДанных + |ПОМЕСТИТЬ ВТ_ДанныеДляПроверкиДедупликации + |ИЗ + | ВТ_ПодготовкаДанныхДляПереноса КАК ВТ_ПодготовкаДанныхДляПереноса + |ГДЕ + | НЕ ВТ_ПодготовкаДанныхДляПереноса.ЭтоХранениеНаДиске + | + |ИНДЕКСИРОВАТЬ ПО + | ВТ_ПодготовкаДанныхДляПереноса.ХранилищеДвоичныхДанных + |; + | + |//////////////////////////////////////////////////////////////////////////////// + |ВЫБРАТЬ + | ХранилищеФайлов.ХранилищеДвоичныхДанных КАК ХранилищеДвоичныхДанных, + | КОЛИЧЕСТВО(*) КАК КоличествоДедуплицированныхФайлов, + | КОЛИЧЕСТВО(*) - СУММА(ВЫБОР + | КОГДА ЕСТЬNULL(СведенияОФайлах.УсловноПеренесенВАрхив, ЕСТЬNULL(ВерсииФайлов.УсловноПеренесенВАрхив, ЛОЖЬ)) + | ТОГДА ВЫРАЗИТЬ(1 КАК ЧИСЛО(17, 0)) + | ИНАЧЕ 0 + | КОНЕЦ) КАК КритерийУсловногоПереноса, + | МАКСИМУМ(ВЫБОР + | КОГДА НЕ ВерсииФайлов.Ссылка ЕСТЬ NULL + | ТОГДА ВерсииФайлов.Владелец.ТекущаяВерсия = ВерсииФайлов.Ссылка + | И НЕ ВерсииФайлов.Владелец.Редактирует В (&ПустыеПользователи) + | ИНАЧЕ НЕ СведенияОФайлах.Редактирует В (&ПустыеПользователи) + | КОНЕЦ) КАК ФайлРедактируется + |ПОМЕСТИТЬ ВТ_ДедуплицированныеФайлы + |ИЗ + | ВТ_ДанныеДляПроверкиДедупликации КАК ВТ_ДанныеДляПроверкиДедупликации + | ВНУТРЕННЕЕ СОЕДИНЕНИЕ РегистрСведений.ХранилищеФайлов КАК ХранилищеФайлов + | ПО ВТ_ДанныеДляПроверкиДедупликации.ХранилищеДвоичныхДанных = ХранилищеФайлов.ХранилищеДвоичныхДанных + | ЛЕВОЕ СОЕДИНЕНИЕ РегистрСведений.СведенияОФайлах КАК СведенияОФайлах + | ПО (ХранилищеФайлов.Файл = СведенияОФайлах.Файл) + | ЛЕВОЕ СОЕДИНЕНИЕ Справочник.ВерсииФайлов КАК ВерсииФайлов + | ПО (ХранилищеФайлов.Файл = ВерсииФайлов.Ссылка) + | И (НЕ ВерсииФайлов.Владелец.ПометкаУдаления) + |ГДЕ + | НЕ ЕСТЬNULL(СведенияОФайлах.ПометкаУдаления, ЕСТЬNULL(ВерсииФайлов.ПометкаУдаления, ЛОЖЬ)) + | + |СГРУППИРОВАТЬ ПО + | ХранилищеФайлов.ХранилищеДвоичныхДанных + | + |ИМЕЮЩИЕ + | КОЛИЧЕСТВО(*) > 1 + | + |ИНДЕКСИРОВАТЬ ПО + | ХранилищеФайлов.ХранилищеДвоичныхДанных + |; + | + |//////////////////////////////////////////////////////////////////////////////// + |ВЫБРАТЬ + | ВТ_ПодготовкаДанныхДляПереноса.ПрисоединенныйФайл КАК ПрисоединенныйФайл, + | ВТ_ПодготовкаДанныхДляПереноса.ТипХраненияФайла КАК ТипХраненияФайла, + | ВТ_ПодготовкаДанныхДляПереноса.Том КАК Том, + | ВТ_ПодготовкаДанныхДляПереноса.ПутьКФайлу КАК ПутьКФайлу, + | ВТ_ПодготовкаДанныхДляПереноса.ХранилищеДвоичныхДанных КАК ХранилищеДвоичныхДанных, + | ВТ_ПодготовкаДанныхДляПереноса.Наименование КАК Наименование, + | ВТ_ПодготовкаДанныхДляПереноса.Расширение КАК Расширение, + | ВТ_ПодготовкаДанныхДляПереноса.ФайлДляЗаписиСведений КАК ФайлДляЗаписиСведений, + | ВТ_ПодготовкаДанныхДляПереноса.НомерВерсии КАК НомерВерсии, + | ВТ_ПодготовкаДанныхДляПереноса.ВладелецФайла КАК ВладелецФайла, + | ВЫБОР + | КОГДА ЕСТЬNULL(ВТ_ДедуплицированныеФайлы.КритерийУсловногоПереноса, 0) = 1 + | ТОГДА ВТ_ПодготовкаДанныхДляПереноса.УсловноПеренесенВАрхив + | КОГДА ЕСТЬNULL(ВТ_ДедуплицированныеФайлы.КритерийУсловногоПереноса, 0) > 1 + | ТОГДА ИСТИНА + | ИНАЧЕ ЛОЖЬ + | КОНЕЦ КАК ПодлежитУсловномуПереносу, + | НЕ ВТ_ПодготовкаДанныхДляПереноса.ЭтоХранениеНаДиске + | И НЕ ВЫБОР + | КОГДА ЕСТЬNULL(ВТ_ДедуплицированныеФайлы.КритерийУсловногоПереноса, 0) = 1 + | ТОГДА ВТ_ПодготовкаДанныхДляПереноса.УсловноПеренесенВАрхив + | КОГДА ЕСТЬNULL(ВТ_ДедуплицированныеФайлы.КритерийУсловногоПереноса, 0) > 1 + | ТОГДА ИСТИНА + | ИНАЧЕ ЛОЖЬ + | КОНЕЦ КАК ПолучатьДвоичныеДанные, + | ЕСТЬNULL(ВТ_ДедуплицированныеФайлы.КоличествоДедуплицированныхФайлов, 0) КАК КоличествоДедуплицированныхФайлов, + | ВТ_ПодготовкаДанныхДляПереноса.УсловноПеренесенВАрхив КАК УсловноПеренесенВАрхив, + | ЕСТЬNULL(ВТ_ДедуплицированныеФайлы.ФайлРедактируется, ЛОЖЬ) КАК ФайлРедактируется, + | ВТ_ПодготовкаДанныхДляПереноса.ФайлПредставление КАК ФайлПредставление + |ПОМЕСТИТЬ ВТ_ДанныеДляПереноса + |ИЗ + | ВТ_ПодготовкаДанныхДляПереноса КАК ВТ_ПодготовкаДанныхДляПереноса + | ЛЕВОЕ СОЕДИНЕНИЕ ВТ_ДедуплицированныеФайлы КАК ВТ_ДедуплицированныеФайлы + | ПО ВТ_ПодготовкаДанныхДляПереноса.ХранилищеДвоичныхДанных = ВТ_ДедуплицированныеФайлы.ХранилищеДвоичныхДанных + |; + | + |//////////////////////////////////////////////////////////////////////////////// + |УНИЧТОЖИТЬ ВТ_ДанныеДляПроверкиДедупликации + |; + | + |//////////////////////////////////////////////////////////////////////////////// + |УНИЧТОЖИТЬ ВТ_ДедуплицированныеФайлы + |; + | + |//////////////////////////////////////////////////////////////////////////////// + |УНИЧТОЖИТЬ ВТ_ПодготовкаДанныхДляПереноса"; + + ТекстыЗапросовПакета.Добавить(ТекстЗапроса); + + Разделитель = + " + |; + |///////////////////////////////////////////////////////////// + |"; + + ТекстЗапроса = СтрСоединить(ТекстыЗапросовПакета, Разделитель); + + Если МассивИсключений.Количество() > 0 Тогда + ТекстЗапроса = СтрЗаменить(ТекстЗапроса, "&ОтборПоИсключениям", "НЕ Файлы.ВладелецФайла В ИЕРАРХИИ (&МассивИсключений)"); + Иначе + ТекстЗапроса = СтрЗаменить(ТекстЗапроса, "&ОтборПоИсключениям", "ИСТИНА"); + КонецЕсли; + + Если ЭлементИсключение <> Неопределено Тогда + ТекстЗапроса = СтрЗаменить(ТекстЗапроса, "&ОтборПоДетализированнойНастройке", "Файлы.ВладелецФайла В ИЕРАРХИИ (&ОтборПоДетализированнойНастройке)"); + Иначе + ТекстЗапроса = СтрЗаменить(ТекстЗапроса, "&ОтборПоДетализированнойНастройке", "ИСТИНА"); + КонецЕсли; + + Если МетаданныеОбъектаФайлов.Иерархический Тогда + ТекстЗапроса = СтрЗаменить(ТекстЗапроса, "&ЭтоНеГруппа", "НЕ Файлы.ЭтоГруппа"); + Иначе + ТекстЗапроса = СтрЗаменить(ТекстЗапроса, "&ЭтоНеГруппа", "ИСТИНА"); + КонецЕсли; + + Возврат ТекстЗапроса; + +КонецФункции + +Функция КоличествоДнейХраненияДоПереносаВФайловыйАрхив(НастройкаПереносаФайлов, ЗначениеПоУмолчанию) + + Если НастройкаПереносаФайлов.ПеренестиВФайловыйАрхивЧерезДней = 0 Тогда + Результат = ЗначениеПоУмолчанию; + Иначе + Результат = НастройкаПереносаФайлов.ПеренестиВФайловыйАрхивЧерезДней; + КонецЕсли; + + Возврат Результат; + +КонецФункции + +Процедура УдалитьВременныйКаталог(ПолноеИмяФайла, Знач ЗаголовокОписанияОшибки = Неопределено, Знач ВызыватьИсключение = Ложь) + + Если ПустаяСтрока(ПолноеИмяФайла) Тогда + Возврат; + КонецЕсли; + + Попытка + УдалитьФайлы(ПолноеИмяФайла); + Исключение + + Если ЗаголовокОписанияОшибки = Неопределено Тогда + ЗаголовокОписанияОшибки = НСтр("ru = 'Ошибка переноса файлов'"); + КонецЕсли; + + ШаблонОписанияОшибки = НСтр("ru = '%1 + |Не удален временный каталог + |""%2"".'"); + + СтрокаИсключения = СтроковыеФункцииКлиентСервер.ПодставитьПараметрыВСтроку( + ШаблонОписанияОшибки, + ЗаголовокОписанияОшибки, + ОбработкаОшибок.ПодробноеПредставлениеОшибки(ИнформацияОбОшибке())); + + ЗаписатьВЖурналРегистрацииСобытиеПереносаФайлов(СтрокаИсключения, УровеньЖурналаРегистрации.Ошибка); + + Если ВызыватьИсключение Тогда; + ВызватьИсключение СтрокаИсключения; + КонецЕсли; + + КонецПопытки; + +КонецПроцедуры + +Функция СтрокаОписанияОшибкиПриОперацияхСВременнымКаталогом(ЭтоПереносВФайловыйАрхив) + + Если ЭтоПереносВФайловыйАрхив Тогда + Результат = НСтр("ru = 'Ошибка при переносе в файловый архив'"); + Иначе + Результат = НСтр("ru = 'Ошибка при восстановлении из файлового архива'"); + КонецЕсли; + + Возврат Результат; + +КонецФункции + +Процедура ЗаписатьВЖурналРегистрацииСобытиеПереносаФайлов(Знач ТекстСообщения, Знач Уровень = Неопределено) + + Если Уровень = Неопределено Тогда + Уровень = УровеньЖурналаРегистрации.Информация; + КонецЕсли; + + ЗаписьЖурналаРегистрации(СобытиеЖурналаРегистрацииПереносаФайлов(), Уровень,,, ТекстСообщения); + +КонецПроцедуры + +Функция СобытиеЖурналаРегистрацииПереносаФайлов() + + Возврат НСтр("ru = 'Выполнение операций с файловым архивом'", ОбщегоНазначения.КодОсновногоЯзыка()); + +КонецФункции + +Функция ДедуплицированныеФайлыПоХранилищуДвоичныхДанных(ХранилищеДвоичныхДанных, ТолькоФайлыВАрхиве = Ложь) + + Запрос = Новый Запрос; + Запрос.Текст = + "ВЫБРАТЬ + | ХранилищеФайлов.Файл КАК ПрисоединенныйФайл, + | ЕСТЬNULL(ВерсииФайлов.Наименование, ЕСТЬNULL(СведенияОФайлах.Наименование, """")) КАК Наименование, + | ЕСТЬNULL(ВерсииФайлов.Расширение, ЕСТЬNULL(СведенияОФайлах.Расширение, """")) КАК Расширение, + | ЕСТЬNULL(ВерсииФайлов.Владелец, ХранилищеФайлов.Файл) КАК ФайлДляЗаписиСведений, + | ЕСТЬNULL(ВерсииФайлов.НомерВерсии, 0) КАК НомерВерсии, + | ЕСТЬNULL(ВерсииФайлов.Владелец.ВладелецФайла, ЕСТЬNULL(СведенияОФайлах.ВладелецФайла, НЕОПРЕДЕЛЕНО)) КАК ВладелецФайла + |ИЗ + | РегистрСведений.ХранилищеФайлов КАК ХранилищеФайлов + | ЛЕВОЕ СОЕДИНЕНИЕ РегистрСведений.СведенияОФайлах КАК СведенияОФайлах + | ПО ХранилищеФайлов.Файл = СведенияОФайлах.Файл + | И (НЕ СведенияОФайлах.ПометкаУдаления) + | ЛЕВОЕ СОЕДИНЕНИЕ Справочник.ВерсииФайлов КАК ВерсииФайлов + | ПО ХранилищеФайлов.Файл = ВерсииФайлов.Ссылка + | И (НЕ ВерсииФайлов.Владелец.ПометкаУдаления) + |ГДЕ + | ХранилищеФайлов.ХранилищеДвоичныхДанных = &ХранилищеДвоичныхДанных + | И НЕ ЕСТЬNULL(СведенияОФайлах.ПометкаУдаления, ЕСТЬNULL(ВерсииФайлов.ПометкаУдаления, ЛОЖЬ)) + | И (&ВсеФайлы + | ИЛИ ЕСТЬNULL(СведенияОФайлах.ДатаПереносаВАрхив, ЕСТЬNULL(ВерсииФайлов.ДатаПереносаВАрхив, ДАТАВРЕМЯ(1, 1, 1))) <> ДАТАВРЕМЯ(1, 1, 1))"; + + Запрос.УстановитьПараметр("ХранилищеДвоичныхДанных" , ХранилищеДвоичныхДанных); + Запрос.УстановитьПараметр("ВсеФайлы" , Не ТолькоФайлыВАрхиве); + + Возврат Запрос.Выполнить().Выгрузить(); + +КонецФункции + +Функция ДополнительныеПараметрыПереносаФайлов() + + Результат = Новый Структура; + Результат.Вставить("ТекстЗапросаПолученияПорцииФайловДляПереносаВАрхив" , ""); + Результат.Вставить("ТекстЗапросаПолученияПорцииФайловДляВосстановленияИзАрхива" , ""); + Результат.Вставить("СпособХраненияФайлов" , ""); + + Возврат Результат; + +КонецФункции + +#КонецОбласти + +// См. СтандартныеПодсистемыСервер.ПриОпределенииМетодовРазрешенныхДляВызоваКакПроизвольныйКод +Процедура ПриОпределенииМетодовРазрешенныхДляВызоваКакПроизвольныйКод(Методы) Экспорт + + Методы.Вставить("ПервоначальноеЗаполнениеКонстант"); + Методы.Вставить("ПервоначальноеЗаполнениеНастройкиРаботыСФайловымАрхивом"); + +КонецПроцедуры + +#КонецОбласти \ No newline at end of file diff --git a/SSL/src/CommonModules/РаботаСФайловымАрхивомСервер/РаботаСФайловымАрхивомСервер.mdo b/SSL/src/CommonModules/РаботаСФайловымАрхивомСервер/РаботаСФайловымАрхивомСервер.mdo new file mode 100644 index 000000000..969dfb739 --- /dev/null +++ b/SSL/src/CommonModules/РаботаСФайловымАрхивомСервер/РаботаСФайловымАрхивомСервер.mdo @@ -0,0 +1,11 @@ + + + РаботаСФайловымАрхивомСервер + + ru + Работа с файловым архивом сервер + + true + true + true + diff --git a/SSL/src/CommonModules/РаботаСХранилищамиДвоичныхДанныхСервер/Module.bsl b/SSL/src/CommonModules/РаботаСХранилищамиДвоичныхДанныхСервер/Module.bsl new file mode 100644 index 000000000..b49a7b0c6 --- /dev/null +++ b/SSL/src/CommonModules/РаботаСХранилищамиДвоичныхДанныхСервер/Module.bsl @@ -0,0 +1,877 @@ +/////////////////////////////////////////////////////////////////////////////////////////////////////// +// Copyright (c) 2025, ООО 1С-Софт +// Все права защищены. Эта программа и сопроводительные материалы предоставляются +// в соответствии с условиями лицензии Attribution 4.0 International (CC BY 4.0) +// Текст лицензии доступен по ссылке: +// https://creativecommons.org/licenses/by/4.0/legalcode +/////////////////////////////////////////////////////////////////////////////////////////////////////// + +#Область СлужебныйПрограммныйИнтерфейс + +// Выполняет настройку состава хранимых данных для атрибутов справочника "ХранилищеДвоичныхДанных" и регистра сведений "МестаХраненияДвоичныхДанных", +// используемых для хранения двоичных данных файлов. +// +// Параметры: +// РеквизитыДляХраненияФайлов - Массив - имена обрабатываемых реквизитов справочника "ХранилищеДвоичныхДанных". +// см. РаботаСФайловымАрхивомСервер.ИменаРеквизитовХраненияФайловПоСпособуХранения. +// +Процедура ВыполнитьНастройкуСоставаХранимыхДанныхДляРеквизитов(Знач РеквизитыДляХраненияФайлов) Экспорт + + Если РеквизитыДляХраненияФайлов.Количество() = 0 Тогда + Возврат; + КонецЕсли; + + Если Не РаботаСФайловымАрхивомСервер.ДоступныХранилищаДвоичныхДанных() Тогда + Возврат; + КонецЕсли; + + СпособХраненияФайлов = РаботаСФайловымАрхивомСервер.СпособХраненияФайлов(); + Если СпособХраненияФайлов = "ВТомахНаДиске" Тогда + Возврат; + КонецЕсли; + + НачальноеСостояниеМонопольногоРежима = МонопольныйРежим(); + + УстановитьМонопольныйРежимДляИзмененияСоставаХранимыхДанных(НачальноеСостояниеМонопольногоРежима); + + Для Каждого ОбрабатываемыйРеквизит Из РеквизитыДляХраненияФайлов Цикл + // @skip-check query-in-loop - Малый цикл + НастроитьСоставХранимыхДанныхДляРеквизита(ОбрабатываемыйРеквизит); + КонецЦикла; + + Если НачальноеСостояниеМонопольногоРежима <> МонопольныйРежим() Тогда + УстановитьМонопольныйРежим(Ложь); + КонецЕсли; + +КонецПроцедуры + +// Проверяет отсутствие подключенных хранилищ двоичных данных. +// +// Возвращаемое значение: +// Булево +// +Функция ХранилищаДвоичныхДанныхОтсутствуют() Экспорт + + Возврат Не ХранилищеДвоичныхДанных.ПолучитьДоступностьХранилищаДвоичныхДанных() И ВнешниеХранилищаДвоичныхДанных.Количество() = 0; + +КонецФункции + +// Проверяет необходимость выполнения настройки состава хранимых данных подключенных хранилищ двоичных данных. +// +// Параметры: +// ИмяРеквизита - Строка - имя реквизита хранения двоичных данных файлов. +// Под реквизитами подразумеваются следующие атрибуты объектов метаданных: +// * ДвоичныеДанные - реквизит справочника ХранилищеДвоичныхДанных. +// * ДвоичныеДанныеВАрхиве - ресурс регистра сведений МестаХраненияДвоичныхДанных. +// * ДвоичныеДанныеВОперационномВстроенномХранилище - ресурс регистра сведений МестаХраненияДвоичныхДанных. +// * ДвоичныеДанныеВОперационномВнешнемХранилище - ресурс регистра сведений МестаХраненияДвоичныхДанных. +// СпособХраненияФайлов - строка см. значения для "Константа.СпособХраненияФайлов". +// +// Возвращаемое значение: +// Булево +// +Функция НужноВыполнитьНастройкуСоставаХранимыхДанныхДляРеквизита(ИмяРеквизита, СпособХраненияФайлов = "") Экспорт + + Результат = Ложь; + + ОбъектМетаданных = ОбъектМетаданныхДляРеквизитаХраненияФайлов(ИмяРеквизита); + + Если ИмяРеквизита = "ДвоичныеДанные" Тогда + + Результат = Не СоставХраненияНастроенДляРеквизита(ИмяРеквизита, , ОбъектМетаданных); + + ИначеЕсли ИмяРеквизита = "ДвоичныеДанныеВАрхиве" Тогда + + Если РаботаСФайловымАрхивомСервер.ИспользоватьФайловыйАрхив() Тогда + + ИмяВнешнегоХранилищаФайловогоАрхива = ИмяВнешнегоХранилищаТомаХраненияФайлов(Перечисления.ВидыХраненияФайлов.АрхивноеХранение); + + Если Не ПустаяСтрока(ИмяВнешнегоХранилищаФайловогоАрхива) + И Не ЕстьОшибкаВНастройкахХранилищаДвоичныхДанных(ИмяРеквизита, ИмяВнешнегоХранилищаФайловогоАрхива) Тогда + + Результат = Не СоставХраненияНастроенДляРеквизита(ИмяРеквизита, ИмяВнешнегоХранилищаФайловогоАрхива, ОбъектМетаданных); + КонецЕсли; + КонецЕсли; + Иначе + + Если НЕ ЗначениеЗаполнено(СпособХраненияФайлов) Тогда + СпособХраненияФайлов = РаботаСФайловымАрхивомСервер.СпособХраненияФайлов(); + КонецЕсли; + + Если ИмяРеквизита = "ДвоичныеДанныеВОперационномВстроенномХранилище" + И (СпособХраненияФайлов = "ВИнформационнойБазеИТомахНаДиске" Или СпособХраненияФайлов = "ВоВстроенномХранилищеДвоичныхДанных") Тогда + + ТомОперативногоХранения = ТомХраненияРазмещающийДанныеВоВстроенномХранилище(); + Если ТомОперативногоХранения <> Неопределено + И Не ЕстьОшибкаВНастройкахХранилищаДвоичныхДанных(ИмяРеквизита) Тогда + + Результат = Не СоставХраненияНастроенДляРеквизита(ИмяРеквизита, , ОбъектМетаданных); + + КонецЕсли; + + ИначеЕсли ИмяРеквизита = "ДвоичныеДанныеВОперационномВнешнемХранилище" + И (СпособХраненияФайлов = "ВИнформационнойБазеИТомахНаДиске" Или СпособХраненияФайлов = "ВоВнешнемХранилищеДвоичныхДанных") Тогда + + ИмяВнешнегоОперативногоХранилища = ИмяВнешнегоХранилищаТомаХраненияФайлов(Перечисления.ВидыХраненияФайлов.ОперационноеХранение); + + Если Не ПустаяСтрока(ИмяВнешнегоОперативногоХранилища) + И Не ЕстьОшибкаВНастройкахХранилищаДвоичныхДанных(ИмяРеквизита, ИмяВнешнегоОперативногоХранилища) Тогда + + Результат = Не СоставХраненияНастроенДляРеквизита(ИмяРеквизита, ИмяВнешнегоОперативногоХранилища, ОбъектМетаданных); + КонецЕсли; + КонецЕсли; + КонецЕсли; + + Возврат Результат; + +КонецФункции + +#КонецОбласти + +#Область СлужебныеПроцедурыИФункции + +#Область РезервноеКопированиеВстроенногоХранилищаДвоичныхДанных + +// Метод регламентного задания "РезервноеКопированиеВстроенногоХранилищаДвоичныхДанных". +// +Процедура РезервноеКопированиеВстроенногоХранилищаДвоичныхДанных() Экспорт + + ОбщегоНазначения.ПриНачалеВыполненияРегламентногоЗадания(Метаданные.РегламентныеЗадания.РезервноеКопированиеВстроенногоХранилищаДвоичныхДанных); + + Если Не РаботаСФайловымАрхивомСервер.ДоступныХранилищаДвоичныхДанных() Тогда + Возврат; + КонецЕсли; + + Если ВыполняетсяФоновоеЗаданиеСозданияРезервнойКопииХДД() Тогда + Возврат; + КонецЕсли; + + НоваяРезервнаяКопияВстроенногоХДД(); + +КонецПроцедуры + +Функция ВыполняетсяФоновоеЗаданиеСозданияРезервнойКопииХДД() + + РегламентноеЗадание = Метаданные.РегламентныеЗадания.РезервноеКопированиеВстроенногоХранилищаДвоичныхДанных; + + Отбор = Новый Структура; + Отбор.Вставить("ИмяМетода", РегламентноеЗадание.ИмяМетода); + Отбор.Вставить("Состояние", СостояниеФоновогоЗадания.Активно); + ТекущиеФоновыеЗадания = ФоновыеЗадания.ПолучитьФоновыеЗадания(Отбор); + + Если ТекущиеФоновыеЗадания.Количество() = 1 Тогда + ФоновоеЗаданиеТекущегоСеанса = ПолучитьТекущийСеансИнформационнойБазы().ПолучитьФоновоеЗадание(); + Результат = ФоновоеЗаданиеТекущегоСеанса = Неопределено; + Если Не Результат Тогда + Результат = ФоновоеЗаданиеТекущегоСеанса.УникальныйИдентификатор <> ТекущиеФоновыеЗадания[0].УникальныйИдентификатор; + КонецЕсли; + Иначе + Результат = ТекущиеФоновыеЗадания.Количество() > 0; + КонецЕсли; + + Возврат Результат; + +КонецФункции + +Процедура НоваяРезервнаяКопияВстроенногоХДД() + + УстановитьПривилегированныйРежим(Истина); + + ЗаписатьВЖурналРегистрацииСобытийРезервногоКопированияХДД( + НСтр("ru = 'Начато регламентное создание резервной копии встроенного хранилища двоичных данных.'", + ОбщегоНазначения.КодОсновногоЯзыка())); + + КомментарийЖурналаРегистрации = ""; + КаталогХраненияРезервныхКопий = ПроверенныйКаталогХраненияФайловРезервныхКопийВстроенногоХДД(КомментарийЖурналаРегистрации); + + Если Не ЗначениеЗаполнено(КаталогХраненияРезервныхКопий) Тогда + + ЗаписатьВЖурналРегистрацииСобытийРезервногоКопированияХДД(КомментарийЖурналаРегистрации, УровеньЖурналаРегистрации.Ошибка); + + Возврат; + КонецЕсли; + + ИмяФайлаНовойРезервнойКопии = ""; + ВидРезервнойКопии = Перечисления.ВидыРезервныхКопийВстроенногоХранилищаДвоичныхДанных.ПустаяСсылка(); + + ИмяФайлаПолнойРезервнойКопии = ИмяФайлаПоследнейПолнойРезервнойКопии(); + Если ЗначениеЗаполнено(ИмяФайлаПолнойРезервнойКопии) Тогда + ПутьКФайлуПолнойРезервнойКопии = КаталогХраненияРезервныхКопий + ИмяФайлаПолнойРезервнойКопии; + Если ФайлСуществует(ПутьКФайлуПолнойРезервнойКопии) Тогда + ИмяФайлаНовойРезервнойКопии = НовоеИмяФайлаРезервнойКопии(); + ПутьКФайлуНовойДифференциальнойКопии = КаталогХраненияРезервныхКопий + ИмяФайлаНовойРезервнойКопии; + + Попытка + ХранилищеДвоичныхДанных.СоздатьДифференциальнуюРезервнуюКопию(ПутьКФайлуНовойДифференциальнойКопии, ПутьКФайлуПолнойРезервнойКопии); + Исключение + + ОписаниеОшибки = ОбработкаОшибок.ПодробноеПредставлениеОшибки(ИнформацияОбОшибке()); + + ЗаписатьВЖурналРегистрацииСобытийРезервногоКопированияХДД(ОписаниеОшибки, УровеньЖурналаРегистрации.Ошибка); + Возврат; + + КонецПопытки; + + ВидРезервнойКопии = Перечисления.ВидыРезервныхКопийВстроенногоХранилищаДвоичныхДанных.Дифференциальная; + КонецЕсли; + КонецЕсли; + + Если ИмяФайлаНовойРезервнойКопии = "" Тогда + ИмяФайлаНовойРезервнойКопии = НовоеИмяФайлаРезервнойКопии(Истина); + ПутьКФайлуНовойПолнойРезервнойКопии = КаталогХраненияРезервныхКопий + ИмяФайлаНовойРезервнойКопии; + + Попытка + ХранилищеДвоичныхДанных.СоздатьПолнуюРезервнуюКопию(ПутьКФайлуНовойПолнойРезервнойКопии); + Исключение + + ОписаниеОшибки = ОбработкаОшибок.ПодробноеПредставлениеОшибки(ИнформацияОбОшибке()); + + ЗаписатьВЖурналРегистрацииСобытийРезервногоКопированияХДД(ОписаниеОшибки, УровеньЖурналаРегистрации.Ошибка); + Возврат; + + КонецПопытки; + + ВидРезервнойКопии = Перечисления.ВидыРезервныхКопийВстроенногоХранилищаДвоичныхДанных.Полная; + КонецЕсли; + + РегистрыСведений.ИсторияРезервногоКопированияВстроенногоХранилищаДвоичныхДанных.ДобавитьЗапись(ВидРезервнойКопии, ТекущаяДатаСеанса(), ИмяФайлаНовойРезервнойКопии); + + ЗаписатьВЖурналРегистрацииСобытийРезервногоКопированияХДД( + НСтр("ru = 'Завершено регламентное создание резервной копии встроенного хранилища двоичных данных.'", + ОбщегоНазначения.КодОсновногоЯзыка())); + +КонецПроцедуры + +Функция ПроверенныйКаталогХраненияФайловРезервныхКопийВстроенногоХДД(ОписаниеОшибки = "") + + Результат = КаталогХраненияФайловРезервныхКопийВстроенногоХДД(); + + Если Не ЗначениеЗаполнено(Результат) Тогда + ОписаниеОшибки = НСтр("ru = 'Не заполнена константа ""Каталог резервных копий встроенного хранилища двоичных данных""'"); + Иначе + Результат = ОбщегоНазначенияКлиентСервер.ДобавитьКонечныйРазделительПути(Результат); + + Если Не ФайлСуществует(Результат) Тогда + + ШаблонСообщения = НСтр("ru = 'Не существует каталог, указанный для хранения резервных копий встроенного хранилища двоичных данных + |%1'"); + ОписаниеОшибки = СтроковыеФункцииКлиентСервер.ПодставитьПараметрыВСтроку(ШаблонСообщения, Результат); + + Результат = ""; + КонецЕсли; + КонецЕсли; + + Возврат Результат; + +КонецФункции + +Функция ИмяФайлаПоследнейПолнойРезервнойКопии() + + Запрос = Новый Запрос; + Запрос.Текст = + "ВЫБРАТЬ + | ИсторияРезервногоКопированияВстроенногоХранилищаДвоичныхДанных.ИмяФайлаРезервнойКопии КАК ИмяФайлаРезервнойКопии + |ИЗ + | (ВЫБРАТЬ + | ИсторияРезервногоКопированияВстроенногоХранилищаДвоичныхДанных.ВидРезервнойКопии КАК ВидРезервнойКопии, + | МАКСИМУМ(ИсторияРезервногоКопированияВстроенногоХранилищаДвоичныхДанных.ДатаСоздания) КАК ДатаСоздания + | ИЗ + | РегистрСведений.ИсторияРезервногоКопированияВстроенногоХранилищаДвоичныхДанных КАК ИсторияРезервногоКопированияВстроенногоХранилищаДвоичныхДанных + | ГДЕ + | ИсторияРезервногоКопированияВстроенногоХранилищаДвоичныхДанных.ВидРезервнойКопии = &ВидРезервнойКопии + | И ИсторияРезервногоКопированияВстроенногоХранилищаДвоичныхДанных.ДатаСоздания <= &ДатаСоздания + | + | СГРУППИРОВАТЬ ПО + | ИсторияРезервногоКопированияВстроенногоХранилищаДвоичныхДанных.ВидРезервнойКопии) КАК ДатаПоследнейПолнойРезервнойКопии + | ВНУТРЕННЕЕ СОЕДИНЕНИЕ РегистрСведений.ИсторияРезервногоКопированияВстроенногоХранилищаДвоичныхДанных КАК ИсторияРезервногоКопированияВстроенногоХранилищаДвоичныхДанных + | ПО ДатаПоследнейПолнойРезервнойКопии.ВидРезервнойКопии = ИсторияРезервногоКопированияВстроенногоХранилищаДвоичныхДанных.ВидРезервнойКопии + | И ДатаПоследнейПолнойРезервнойКопии.ДатаСоздания = ИсторияРезервногоКопированияВстроенногоХранилищаДвоичныхДанных.ДатаСоздания"; + + Запрос.УстановитьПараметр("ВидРезервнойКопии", Перечисления.ВидыРезервныхКопийВстроенногоХранилищаДвоичныхДанных.Полная); + Запрос.УстановитьПараметр("ДатаСоздания", ТекущаяДатаСеанса()); + + ВыборкаДанных = Запрос.Выполнить().Выбрать(); + Если ВыборкаДанных.Следующий() Тогда + Результат = СокрЛП(ВыборкаДанных.ИмяФайлаРезервнойКопии); + Иначе + Результат = ""; + КонецЕсли; + + Возврат Результат; + +КонецФункции + +Функция ФайлСуществует(ПутьКФайлу) + + Результат = Не ПустаяСтрока(ПутьКФайлу); + + Если Результат Тогда + Файл = Новый Файл(ПутьКФайлу); + Результат = Файл.Существует(); + КонецЕсли; + + Возврат Результат; + +КонецФункции + +Функция НовоеИмяФайлаРезервнойКопии(ЭтоПолнаяКопия = Ложь) + + ТипРезервнойКопии = ?(ЭтоПолнаяКопия, "Full", "Differential"); + ДатаСозданияКопии = Формат(ТекущаяДатаСеанса(), "ДФ=ddMMyyyy_HHmmss"); + + Возврат СтроковыеФункцииКлиентСервер.ПодставитьПараметрыВСтроку("%1_%2.sbd", ТипРезервнойКопии, ДатаСозданияКопии); + +КонецФункции + +Процедура ЗаписатьВЖурналРегистрацииСобытийРезервногоКопированияХДД(Знач ТекстСообщения, Знач Уровень = Неопределено) + + Если Уровень = Неопределено Тогда + Уровень = УровеньЖурналаРегистрации.Информация; + КонецЕсли; + + ЗаписьЖурналаРегистрации(СобытиеЖурналаРегистрацииРезервногоКопированияВстроенногоХДД(), Уровень,,, ТекстСообщения); + +КонецПроцедуры + +Функция СобытиеЖурналаРегистрацииРезервногоКопированияВстроенногоХДД() + + Возврат НСтр("ru = 'Резервное копирование встроенного хранилища двоичных данных'", ОбщегоНазначения.КодОсновногоЯзыка()); + +КонецФункции + +Функция КаталогХраненияФайловРезервныхКопийВстроенногоХДД() + + УстановитьПривилегированныйРежим(Истина); + + Если ОбщегоНазначения.ЭтоWindowsСервер() Тогда + + Результат = Константы.КаталогРезервныхКопийВстроенногоХранилищаДвоичныхДанныхДляWindows.Получить(); + + Иначе + + Результат = Константы.КаталогРезервныхКопийВстроенногоХранилищаДвоичныхДанныхДляLinux.Получить(); + + КонецЕсли; + + Возврат Результат; + +КонецФункции + +#КонецОбласти + +#Область НастройкаСоставаХранимыхДанных + +// Вносит изменения в состав хранимых данных для хранилища двоичных данных, назначенного тому хранения файлов. +// +// Параметры: +// ВидТомаХраненияФайлов - ПеречислениеСсылка.ВидыХраненияФайлов +// СпособХраненияФайлов - ПеречислениеСсылка.СпособыХраненияФайлов +// ИмяХранилищаДвоичныхДанных - Строка - используется только для способа хранения файлов "ВоВнешнемХранилищеПоПротоколуS3" +// +Процедура ИзменитьСоставХранимыхДанных(ВидТомаХраненияФайлов, СпособХраненияФайлов, ИмяХранилищаДвоичныхДанных) Экспорт + + Если Не ЗначениеЗаполнено(СпособХраненияФайлов) Или СпособХраненияФайлов = Перечисления.СпособыХраненияФайлов.ВСетевыхКаталогах Тогда + Возврат; + КонецЕсли; + + УстановитьПривилегированныйРежим(Истина); + + ТекстОписаниеОшибки = ""; + + Если ВидТомаХраненияФайлов = Перечисления.ВидыХраненияФайлов.АрхивноеХранение Тогда + ИмяРеквизитаХранения = "ДвоичныеДанныеВАрхиве"; + Иначе + ИмяРеквизитаХранения = РаботаСФайловымАрхивомСервер.ИмяРеквизитаХраненияДвоичныхДанныхПоСпособуХраненияТома(СпособХраненияФайлов); + КонецЕсли; + + Если ЕстьОшибкаВНастройкахХранилищаДвоичныхДанных(ИмяРеквизитаХранения, ИмяХранилищаДвоичныхДанных, ТекстОписаниеОшибки) Тогда + ВызватьИсключение ТекстОписаниеОшибки; + КонецЕсли; + + ОбъектМетаданныхРеквизитаХранения = Неопределено; + + Если Не СоставХраненияНастроенДляРеквизита(ИмяРеквизитаХранения, ИмяХранилищаДвоичныхДанных, ОбъектМетаданныхРеквизитаХранения) Тогда + + НачальноеСостояниеМонопольногоРежима = МонопольныйРежим(); + + УстановитьМонопольныйРежимДляИзмененияСоставаХранимыхДанных(НачальноеСостояниеМонопольногоРежима); + + НастроитьСоставХранимыхДанныхДляРеквизита(ИмяРеквизитаХранения, ОбъектМетаданныхРеквизитаХранения, ИмяХранилищаДвоичныхДанных); + + Если НачальноеСостояниеМонопольногоРежима <> МонопольныйРежим() Тогда + УстановитьМонопольныйРежим(Ложь); + КонецЕсли; + КонецЕсли; + +КонецПроцедуры + +Функция ВидХраненияФайловПоИмениРеквизита(ИмяРеквизита) + + Если ИмяРеквизита = "ДвоичныеДанныеВАрхиве" Тогда + Результат = Перечисления.ВидыХраненияФайлов.АрхивноеХранение; + Иначе + Результат = Перечисления.ВидыХраненияФайлов.ОперационноеХранение; + КонецЕсли; + + Возврат Результат; + +КонецФункции + +Функция СоставХраненияНастроенДляРеквизита(ИмяРеквизита, ИмяВнешнегоХранилищаДвоичныхДанных = "", ОбъектМетаданных = Неопределено) + + Результат = Ложь; + + ОбъектМетаданных = ОбъектМетаданныхДляРеквизитаХраненияФайлов(ИмяРеквизита, ОбъектМетаданных); + + Если ИмяРеквизита = "ДвоичныеДанныеВАрхиве" Или ИмяРеквизита = "ДвоичныеДанныеВОперационномВнешнемХранилище" Тогда + + Если Не ЗначениеЗаполнено(ИмяВнешнегоХранилищаДвоичныхДанных) Тогда + ИмяВнешнегоХранилищаДвоичныхДанных = ИмяВнешнегоХранилищаТомаХраненияФайлов(ВидХраненияФайловПоИмениРеквизита(ИмяРеквизита)); + КонецЕсли; + + Если ЗначениеЗаполнено(ИмяВнешнегоХранилищаДвоичныхДанных) Тогда + ВнешнееХранилищеДвоичныхДанных = ВнешниеХранилищаДвоичныхДанных.Найти(ИмяВнешнегоХранилищаДвоичныхДанных); + + Если ВнешнееХранилищеДвоичныхДанных <> Неопределено Тогда + СоставХранимыхДанныхХранилища = ВнешнееХранилищеДвоичныхДанных.СоставХранимыхДанных; + ЭлементСоставаХранимыхДанных = СоставХранимыхДанныхХранилища.Найти(ОбъектМетаданных); + + Если ЭлементСоставаХранимыхДанных <> Неопределено + И ЭлементСоставаХранимыхДанных.Хранение = ИспользованиеХраненияВБезопасномРежиме("Использовать") Тогда + + Результат = Истина; + КонецЕсли; + КонецЕсли; + КонецЕсли + + ИначеЕсли ИмяРеквизита = "ДвоичныеДанныеВОперационномВстроенномХранилище" Тогда + + Результат = РеквизитИспользуетсяВСоставеХранимыхДанныхВстроенногоХранилища(ИмяРеквизита, ОбъектМетаданных); + + ИначеЕсли ИмяРеквизита = "ДвоичныеДанные" Тогда + + Результат = ИспользованиеРеквизитаЯвноОтключеноВоВсехХранилищахДвоичныхДанных(ИмяРеквизита, ОбъектМетаданных); + + КонецЕсли; + + Возврат Результат; + +КонецФункции + +Процедура УстановитьМонопольныйРежимДляИзмененияСоставаХранимыхДанных(ТекущееСостояниеМонопольногоРежима) + + Если Не ТекущееСостояниеМонопольногоРежима Тогда + + Попытка + УстановитьМонопольныйРежим(Истина); + Исключение + + ШаблонОшибки = НСтр("ru = 'Не удалось установить монопольный режим для настройки состава реквизитов, + |используемых в хранилищах двоичных данных: + |%1'"); + + ИнформацияОбОшибке = ИнформацияОбОшибке(); + ТекстОписанияОшибки = СтроковыеФункцииКлиентСервер.ПодставитьПараметрыВСтроку(ШаблонОшибки, ОбработкаОшибок.КраткоеПредставлениеОшибки(ИнформацияОбОшибке)); + + ВызватьИсключение ТекстОписанияОшибки; + + КонецПопытки; + КонецЕсли; + +КонецПроцедуры + +Процедура НастроитьСоставХранимыхДанныхДляРеквизита(ИмяРеквизита, ОбъектМетаданных = Неопределено, ИмяВнешнегоХранилища = "") + + ОбъектМетаданныхРеквизита = ОбъектМетаданныхДляРеквизитаХраненияФайлов(ИмяРеквизита, ОбъектМетаданных); + + Если ИмяРеквизита = "ДвоичныеДанные" Тогда + + Хранение = ИспользованиеХраненияВБезопасномРежиме("НеИспользовать"); + + СоставХранимыхДанных = Неопределено; + // АПК:487-выкл Поддержка новых методов платформы (исполняемый код безопасен) + Выполнить("СоставХранимыхДанных = ХранилищеДвоичныхДанных.ПолучитьСоставХранимыхДанных()"); + // АПК:487-вкл + + Если УстановитьЭлементСоставаХранимыхДанныхДляРеквизита(СоставХранимыхДанных, ОбъектМетаданныхРеквизита, Хранение) Тогда + + // АПК:487-выкл Поддержка новых методов платформы (исполняемый код безопасен) + Выполнить("ХранилищеДвоичныхДанных.УстановитьСоставХранимыхДанных(СоставХранимыхДанных)"); + // АПК:487-вкл + КонецЕсли; + + Для Каждого ВнешнееХранилище Из ВнешниеХранилищаДвоичныхДанных Цикл + Если УстановитьЭлементСоставаХранимыхДанныхДляРеквизита(ВнешнееХранилище.СоставХранимыхДанных, ОбъектМетаданныхРеквизита, Хранение) Тогда + ВнешнееХранилище.Записать(); + КонецЕсли; + КонецЦикла; + ИначеЕсли ИмяРеквизита = "ДвоичныеДанныеВАрхиве" Или ИмяРеквизита = "ДвоичныеДанныеВОперационномВнешнемХранилище" Тогда + + ИмяВнешнегоХранилища = ИмяВнешнегоХранилищаТомаХраненияФайлов(ВидХраненияФайловПоИмениРеквизита(ИмяРеквизита), ИмяВнешнегоХранилища); + + ИменаИсключаемыхХранилищ = ИменаИсключаемыхХранилищ(ИмяВнешнегоХранилища); + + УдалитьРеквизитИзСоставаХранимыхДанныхВсехХранилищ(ИмяРеквизита, ИменаИсключаемыхХранилищ, ОбъектМетаданныхРеквизита); + + Если Не ПустаяСтрока(ИмяВнешнегоХранилища) Тогда + + ВнешнееХранилище = ВнешниеХранилищаДвоичныхДанных.Найти(ИмяВнешнегоХранилища); + Если ВнешнееХранилище <> Неопределено Тогда + + Хранение = ИспользованиеХраненияВБезопасномРежиме("Использовать"); + + Если УстановитьЭлементСоставаХранимыхДанныхДляРеквизита(ВнешнееХранилище.СоставХранимыхДанных, ОбъектМетаданныхРеквизита, Хранение) Тогда + ВнешнееХранилище.Записать(); + КонецЕсли; + КонецЕсли; + КонецЕсли; + + ИначеЕсли ИмяРеквизита = "ДвоичныеДанныеВОперационномВстроенномХранилище" Тогда + + ИменаИсключаемыхХранилищ = ИменаИсключаемыхХранилищ("ВстроенноеХранилище"); + + УдалитьРеквизитИзСоставаХранимыхДанныхВсехХранилищ(ИмяРеквизита, ИменаИсключаемыхХранилищ); + + Хранение = ИспользованиеХраненияВБезопасномРежиме("Использовать"); + + СоставХранимыхДанных = Неопределено; + // АПК:487-выкл Поддержка новых методов платформы (исполняемый код безопасен) + Выполнить("СоставХранимыхДанных = ХранилищеДвоичныхДанных.ПолучитьСоставХранимыхДанных()"); + // АПК:487-вкл + Если УстановитьЭлементСоставаХранимыхДанныхДляРеквизита(СоставХранимыхДанных, ОбъектМетаданныхРеквизита, Хранение) Тогда + // АПК:487-выкл Поддержка новых методов платформы (исполняемый код безопасен) + Выполнить("ХранилищеДвоичныхДанных.УстановитьСоставХранимыхДанных(СоставХранимыхДанных)"); + // АПК:487-вкл + КонецЕсли; + КонецЕсли; + +КонецПроцедуры + +Процедура УдалитьРеквизитИзСоставаХранимыхДанныхВсехХранилищ(ИмяРеквизита, ИменаИсключаемыхХранилищ = Неопределено, ОбъектМетаданных = Неопределено) + + ОбъектМетаданныхРеквизита = ОбъектМетаданныхДляРеквизитаХраненияФайлов(ИмяРеквизита, ОбъектМетаданных); + + Если Не(ИменаИсключаемыхХранилищ <> Неопределено И ИменаИсключаемыхХранилищ.Найти("ВстроенноеХранилище") <> Неопределено) Тогда + + СоставХранимыхДанных = Неопределено; + // АПК:487-выкл Поддержка новых методов платформы (исполняемый код безопасен) + Выполнить("СоставХранимыхДанных = ХранилищеДвоичныхДанных.ПолучитьСоставХранимыхДанных()"); + // АПК:487-вкл + Если УдалитьРеквизитИзСоставаХранимыхДанных(СоставХранимыхДанных, ОбъектМетаданныхРеквизита) Тогда + // АПК:487-выкл Поддержка новых методов платформы (исполняемый код безопасен) + Выполнить("ХранилищеДвоичныхДанных.УстановитьСоставХранимыхДанных(СоставХранимыхДанных)"); + // АПК:487-вкл + КонецЕсли; + КонецЕсли; + + Для Каждого ВнешнееХранилище Из ВнешниеХранилищаДвоичныхДанных Цикл + + Если ИменаИсключаемыхХранилищ <> Неопределено И ИменаИсключаемыхХранилищ.Найти(ВнешнееХранилище.Имя) <> Неопределено Тогда + Продолжить; + КонецЕсли; + + Если УдалитьРеквизитИзСоставаХранимыхДанных(ВнешнееХранилище.СоставХранимыхДанных, ОбъектМетаданныхРеквизита) Тогда + ВнешнееХранилище.Записать(); + КонецЕсли; + КонецЦикла + +КонецПроцедуры + +Функция УдалитьРеквизитИзСоставаХранимыхДанных(СоставХранимыхДанных, ОбъектМетаданных) + + Результат = Ложь; + + ЭлементСоставаХранимыхДанных = СоставХранимыхДанных.Найти(ОбъектМетаданных); + Если ЭлементСоставаХранимыхДанных <> Неопределено Тогда + СоставХранимыхДанных.Удалить(ЭлементСоставаХранимыхДанных); + Результат = Истина; + КонецЕсли; + + Возврат Результат; + +КонецФункции + +Функция ИспользованиеРеквизитаЯвноОтключеноВоВсехХранилищахДвоичныхДанных(ИмяРеквизита, ОбъектМетаданных = Неопределено) + + Результат = ХранилищаДвоичныхДанныхОтсутствуют(); + + Если Не Результат Тогда + + ОтключеноВоВстроенномХранилище = Не ХранилищеДвоичныхДанных.ПолучитьДоступностьХранилищаДвоичныхДанных(); + + Если Не ОтключеноВоВстроенномХранилище Тогда + + СоставХранимыхДанныхХранилища = Неопределено; + // АПК:487-выкл Поддержка новых методов платформы (исполняемый код безопасен) + Выполнить("СоставХранимыхДанныхХранилища = ХранилищеДвоичныхДанных.ПолучитьСоставХранимыхДанных()"); + // АПК:487-вкл + + ЗначениеОбъектаМетаданных = ОбъектМетаданныхДляРеквизитаХраненияФайлов(ИмяРеквизита, ОбъектМетаданных); + ЭлементСоставаХранимыхДанных = СоставХранимыхДанныхХранилища.Найти(ЗначениеОбъектаМетаданных); + + Если ЭлементСоставаХранимыхДанных <> Неопределено Тогда + ОтключеноВоВстроенномХранилище = ЭлементСоставаХранимыхДанных.Хранение = ИспользованиеХраненияВБезопасномРежиме("НеИспользовать"); + КонецЕсли; + КонецЕсли; + + ОтключеноВоВнешнихХранилищах = ВнешниеХранилищаДвоичныхДанных.Количество() = 0; + + Если Не ОтключеноВоВнешнихХранилищах Тогда + + ОтключеноВоВнешнихХранилищах = Истина; + + ЗначениеОбъектаМетаданных = ОбъектМетаданныхДляРеквизитаХраненияФайлов(ИмяРеквизита, ОбъектМетаданных); + + Для Каждого ВнешнееХранилище Из ВнешниеХранилищаДвоичныхДанных Цикл + СоставХранимыхДанныхХранилища = ВнешнееХранилище.СоставХранимыхДанных; + ЭлементСоставаХранимыхДанных = СоставХранимыхДанныхХранилища.Найти(ЗначениеОбъектаМетаданных); + + Если ЭлементСоставаХранимыхДанных = Неопределено + Или ЭлементСоставаХранимыхДанных.Хранение = ИспользованиеХраненияВБезопасномРежиме("Использовать") Тогда + + ОтключеноВоВнешнихХранилищах = Ложь; + Прервать + КонецЕсли; + КонецЦикла; + КонецЕсли; + + Результат = ОтключеноВоВстроенномХранилище И ОтключеноВоВнешнихХранилищах; + КонецЕсли; + + Возврат Результат; + +КонецФункции + +Функция РеквизитИспользуетсяВСоставеХранимыхДанныхВстроенногоХранилища(ИмяРеквизита, ОбъектМетаданных = Неопределено) + + Результат = Ложь; + + Если ХранилищеДвоичныхДанных.ПолучитьДоступностьХранилищаДвоичныхДанных() Тогда + + СоставХранимыхДанныхХранилища = Неопределено; + // АПК:487-выкл Поддержка новых методов платформы (исполняемый код безопасен) + Выполнить("СоставХранимыхДанныхХранилища = ХранилищеДвоичныхДанных.ПолучитьСоставХранимыхДанных()"); + // АПК:487-вкл + + ЗначениеОбъектаМетаданных = ОбъектМетаданныхДляРеквизитаХраненияФайлов(ИмяРеквизита, ОбъектМетаданных); + ЭлементСоставаХранимыхДанных = СоставХранимыхДанныхХранилища.Найти(ЗначениеОбъектаМетаданных); + + Если ЭлементСоставаХранимыхДанных <> Неопределено Тогда + Результат = ЭлементСоставаХранимыхДанных.Хранение = ИспользованиеХраненияВБезопасномРежиме("Использовать"); + КонецЕсли; + КонецЕсли; + + Возврат Результат; + +КонецФункции + +Функция ИмяВнешнегоХранилищаТомаХраненияФайлов(ВидТомаХраненияФайлов, ИмяВнешнегоХранилища = "") + + Если ЗначениеЗаполнено(ИмяВнешнегоХранилища) Тогда + + Результат = ИмяВнешнегоХранилища; + + Иначе + + Результат = ""; + + Запрос = Новый Запрос; + Запрос.Текст = + "ВЫБРАТЬ + | ТомаХраненияФайлов.ИмяХранилищаДвоичныхДанных КАК ИмяХранилищаДвоичныхДанных + |ИЗ + | Справочник.ТомаХраненияФайлов КАК ТомаХраненияФайлов + |ГДЕ + | НЕ ТомаХраненияФайлов.ПометкаУдаления + | И ТомаХраненияФайлов.ВидТомаХраненияФайлов = &ВидТомаХраненияФайлов + | И ТомаХраненияФайлов.СпособХраненияФайлов = ЗНАЧЕНИЕ(Перечисление.СпособыХраненияФайлов.ВоВнешнемХранилищеПоПротоколуS3)"; + + Запрос.УстановитьПараметр("ВидТомаХраненияФайлов", ВидТомаХраненияФайлов); + + ВыборкаДанных = Запрос.Выполнить().Выбрать(); + Если ВыборкаДанных.Следующий() Тогда + Результат = ВыборкаДанных.ИмяХранилищаДвоичныхДанных; + КонецЕсли; + КонецЕсли; + + Возврат Результат; + +КонецФункции + +Функция ЕстьОшибкаВНастройкахХранилищаДвоичныхДанных(ИмяРеквизита, Знач ИмяВнешнегоХранилища = "", ОписаниеОшибки = "") + + Результат = Ложь; + + Если ИмяРеквизита = "ДвоичныеДанныеВАрхиве" Или ИмяРеквизита = "ДвоичныеДанныеВОперационномВнешнемХранилище" Тогда + + Результат = ВнешниеХранилищаДвоичныхДанных.Количество() = 0; + + Если Результат Тогда + ОписаниеОшибки = НСтр("ru = 'Отсутствуют подключенные внешние хранилища двоичных данных'"); + КонецЕсли; + + Если Не Результат Тогда + + ВидТомаХранения = ВидХраненияФайловПоИмениРеквизита(ИмяРеквизита); + + ИмяВнешнегоХранилища = ИмяВнешнегоХранилищаТомаХраненияФайлов(ВидТомаХранения, ИмяВнешнегоХранилища); + + Результат = ПустаяСтрока(ИмяВнешнегоХранилища); + + Если Результат Тогда + ОписаниеОшибки = НСтр("ru = 'Не удалось определить имя внешнего хранилища двоичных данных'"); + КонецЕсли; + + Если Не Результат Тогда + ВнешнееХранилищеДвоичныхДанных = ВнешниеХранилищаДвоичныхДанных.Найти(ИмяВнешнегоХранилища); + + Результат = ВнешнееХранилищеДвоичныхДанных = Неопределено; + + Если Результат Тогда + ОписаниеОшибки = СтроковыеФункцииКлиентСервер.ПодставитьПараметрыВСтроку( + НСтр("ru = 'Отсутствует внешнее хранилище двоичных данных с именем %1'"), + ИмяВнешнегоХранилища); + КонецЕсли; + + Если Не Результат Тогда + Результат = ВнешнееХранилищеДвоичныхДанных.РежимЧтенияЗаписи = РежимЧтенияЗаписиХранилищаДвоичныхДанных.ТолькоЧтение; + + Если Результат Тогда + ОписаниеОшибки = ТекстОшибкиНедоступностиЗаписиВХранилищеДвоичныхДанных(); + КонецЕсли; + КонецЕсли; + КонецЕсли; + КонецЕсли; + ИначеЕсли ИмяРеквизита = "ДвоичныеДанныеВОперационномВстроенномХранилище" Тогда + + РежимИспользованияХДД = ХранилищеДвоичныхДанных.ПолучитьРежимИспользованияХранилищаДвоичныхДанных(); + Результат = РежимИспользованияХДД <> РежимИспользованияХранилищаДвоичныхДанных.Разрешить; + + Если Результат Тогда + ОписаниеОшибки = НСтр("ru = 'Встроенное хранилище двоичных данных недоступно'"); + КонецЕсли; + + Если Не Результат Тогда + Результат = ХранилищеДвоичныхДанных.ПолучитьРежимЧтенияЗаписиХранилищаДвоичныхДанных() = РежимЧтенияЗаписиХранилищаДвоичныхДанных.ТолькоЧтение; + Если Результат Тогда + ОписаниеОшибки = ТекстОшибкиНедоступностиЗаписиВХранилищеДвоичныхДанных(Ложь); + КонецЕсли; + КонецЕсли; + КонецЕсли; + + Возврат Результат; + +КонецФункции + +Функция ТекстОшибкиНедоступностиЗаписиВХранилищеДвоичныхДанных(ВнешнееХранилище = Истина) + + Если ВнешнееХранилище Тогда + Результат = НСтр("ru = 'Внешнее хранилище двоичных данных доступно только для чтения + |В настройках хранилища отключено разрешение на запись'"); + + Иначе + Результат = НСтр("ru = 'Встроенное хранилище двоичных данных доступно только для чтения + |В настройках хранилища отключено разрешение на запись'"); + КонецЕсли; + + Возврат Результат; + +КонецФункции + +Функция УстановитьЭлементСоставаХранимыхДанныхДляРеквизита(СоставХранимыхДанных, ОбъектМетаданных, Хранение) + + ЭлементСоставаХранимыхДанных = СоставХранимыхДанных.Найти(ОбъектМетаданных); + + Если ЭлементСоставаХранимыхДанных <> Неопределено Тогда + Если ЭлементСоставаХранимыхДанных.Хранение = Хранение Тогда + Возврат Ложь; + Иначе + СоставХранимыхДанных.Удалить(ЭлементСоставаХранимыхДанных); + КонецЕсли; + КонецЕсли; + + СоставХранимыхДанных.Добавить(ОбъектМетаданных, Хранение); + + Возврат Истина; + +КонецФункции + +Функция ИменаИсключаемыхХранилищ(ИменаХранилищ = "") + + Результат = Неопределено; + + Если Не ПустаяСтрока(ИменаХранилищ) Тогда + Результат = СтрРазделить(ИменаХранилищ, ",", Ложь); + КонецЕсли; + + Возврат Результат; + +КонецФункции + +Функция ТомХраненияРазмещающийДанныеВоВстроенномХранилище() + + Результат = Неопределено; + + Запрос = Новый Запрос; + Запрос.Текст = + "ВЫБРАТЬ + | ТомаХраненияФайлов.Ссылка КАК ТомОперативногоХранения + |ИЗ + | Справочник.ТомаХраненияФайлов КАК ТомаХраненияФайлов + |ГДЕ + | НЕ ТомаХраненияФайлов.ПометкаУдаления + | И ТомаХраненияФайлов.ВидТомаХраненияФайлов = ЗНАЧЕНИЕ(Перечисление.ВидыХраненияФайлов.ОперационноеХранение) + | И ТомаХраненияФайлов.СпособХраненияФайлов = ЗНАЧЕНИЕ(Перечисление.СпособыХраненияФайлов.ВоВстроенномХранилище)"; + + ВыборкаДанных = Запрос.Выполнить().Выбрать(); + Если ВыборкаДанных.Следующий() Тогда + Результат = ВыборкаДанных.ТомОперативногоХранения; + КонецЕсли; + + Возврат Результат; + +КонецФункции + +Функция ОбъектМетаданныхДляРеквизитаХраненияФайлов(ИмяРеквизита, ОбъектМетаданных = Неопределено) + + Результат = ОбъектМетаданных; + Если ОбъектМетаданных = Неопределено Тогда + Если ИмяРеквизита = "ДвоичныеДанные" Тогда + Результат = Метаданные.Справочники.ХранилищеДвоичныхДанных.Реквизиты[ИмяРеквизита]; + Иначе + Результат = Метаданные.РегистрыСведений.МестаХраненияДвоичныхДанных.Ресурсы[ИмяРеквизита]; + КонецЕсли; + КонецЕсли; + + Возврат Результат; + +КонецФункции + +Функция ИспользованиеХраненияВБезопасномРежиме(Хранение) + + ПараметрыБР = Новый Структура; + ПараметрыБР.Вставить("Хранение", Неопределено); + + Если РаботаСФайловымАрхивомСервер.ДоступныИзмененияВСпособахХраненияФайлов() Тогда + + Если Хранение = "Использовать" Тогда + Алгоритм = "Параметры.Хранение = ИспользованиеХраненияВХранилищеДвоичныхДанных.Использовать"; + ИначеЕсли Хранение = "НеИспользовать" Тогда + Алгоритм = "Параметры.Хранение = ИспользованиеХраненияВХранилищеДвоичныхДанных.НеИспользовать"; + КонецЕсли; + + Попытка + ОбщегоНазначения.ВыполнитьВБезопасномРежиме(Алгоритм, ПараметрыБР); + Исключение + ИнформацияОбОшибке = ИнформацияОбОшибке(); + КонецПопытки; + + КонецЕсли; + + Возврат ПараметрыБР.Хранение; + +КонецФункции + +#КонецОбласти + +#КонецОбласти \ No newline at end of file diff --git a/SSL/src/CommonModules/РаботаСХранилищамиДвоичныхДанныхСервер/РаботаСХранилищамиДвоичныхДанныхСервер.mdo b/SSL/src/CommonModules/РаботаСХранилищамиДвоичныхДанныхСервер/РаботаСХранилищамиДвоичныхДанныхСервер.mdo new file mode 100644 index 000000000..5efc61733 --- /dev/null +++ b/SSL/src/CommonModules/РаботаСХранилищамиДвоичныхДанныхСервер/РаботаСХранилищамиДвоичныхДанныхСервер.mdo @@ -0,0 +1,11 @@ + + + РаботаСХранилищамиДвоичныхДанныхСервер + + ru + Работа с хранилищами двоичных данных сервер + + true + true + true + diff --git a/SSL/src/CommonModules/РассылкаОтчетов/Module.bsl b/SSL/src/CommonModules/РассылкаОтчетов/Module.bsl index 037222d55..03cfcfd5c 100644 --- a/SSL/src/CommonModules/РассылкаОтчетов/Module.bsl +++ b/SSL/src/CommonModules/РассылкаОтчетов/Module.bsl @@ -1,5 +1,5 @@ /////////////////////////////////////////////////////////////////////////////////////////////////////// -// Copyright (c) 2024, ООО 1С-Софт +// Copyright (c) 2025, ООО 1С-Софт // Все права защищены. Эта программа и сопроводительные материалы предоставляются // в соответствии с условиями лицензии Attribution 4.0 International (CC BY 4.0) // Текст лицензии доступен по ссылке: @@ -428,7 +428,7 @@ ТекстСообщения = СтроковыеФункцииКлиентСервер.ПодставитьПараметрыВСтроку( НСтр("ru = 'Не удалось отправить отчеты получателю ''%1'':'"), ПредставлениеПолучателя); РасширенноеПредставлениеОшибки = РаботаСПочтовымиСообщениями.РасширенноеПредставлениеОшибки( - ИнформацияОбОшибке, ОбщегоНазначения.КодОсновногоЯзыка(), Ложь); + ИнформацияОбОшибке, ОбщегоНазначения.КодОсновногоЯзыка(), Ложь, ПараметрыДоставки.УчетнаяЗапись); ЗаписьЖурнала(ПараметрыЖурнала,, ТекстСообщения, РасширенноеПредставлениеОшибки); Если НЕ ИспользуетсяПочтовыйКлиент() И ПолучитьФункциональнуюОпцию("ХранитьИсториюРассылкиОтчетов") @@ -5147,7 +5147,7 @@ ИнформацияОбОшибке = ИнформацияОбОшибке(); РасширенноеПредставлениеОшибки = РаботаСПочтовымиСообщениями.РасширенноеПредставлениеОшибки( - ИнформацияОбОшибке, ОбщегоНазначения.КодОсновногоЯзыка(), Ложь); + ИнформацияОбОшибке, ОбщегоНазначения.КодОсновногоЯзыка(), Ложь, ПараметрыДоставки.УчетнаяЗапись); ЗаписьЖурнала(ПараметрыЖурнала, УровеньЖурналаРегистрации.Ошибка, ШаблонСообщенияОбОшибке, РасширенноеПредставлениеОшибки); @@ -5449,8 +5449,6 @@ Методы.Вставить("ВыполнитьОчисткуИсторииРассылкиОтчетовВФоновомЗадании", Истина); Методы.Вставить("ВыполнитьРассылкиВФоновомЗадании", Истина); Методы.Вставить("ВыполнитьРассылкиSMSСПаролямиАрхивовРассылкиОтчетовВФоновомЗадании", Истина); - Методы.Вставить("ОчиститьУстаревшиеЗаписиИсторииРассылкиОтчетов", Истина); - Методы.Вставить("ВыполнитьРассылкуПоРасписанию", Истина); КонецПроцедуры diff --git a/SSL/src/CommonModules/РассылкаОтчетовВызовСервера/Module.bsl b/SSL/src/CommonModules/РассылкаОтчетовВызовСервера/Module.bsl index ed896dbaa..17141bd48 100644 --- a/SSL/src/CommonModules/РассылкаОтчетовВызовСервера/Module.bsl +++ b/SSL/src/CommonModules/РассылкаОтчетовВызовСервера/Module.bsl @@ -1,5 +1,5 @@ /////////////////////////////////////////////////////////////////////////////////////////////////////// -// Copyright (c) 2024, ООО 1С-Софт +// Copyright (c) 2025, ООО 1С-Софт // Все права защищены. Эта программа и сопроводительные материалы предоставляются // в соответствии с условиями лицензии Attribution 4.0 International (CC BY 4.0) // Текст лицензии доступен по ссылке: diff --git a/SSL/src/CommonModules/РассылкаОтчетовКлиент/Module.bsl b/SSL/src/CommonModules/РассылкаОтчетовКлиент/Module.bsl index 7319d821c..1dfd928f0 100644 --- a/SSL/src/CommonModules/РассылкаОтчетовКлиент/Module.bsl +++ b/SSL/src/CommonModules/РассылкаОтчетовКлиент/Module.bsl @@ -1,5 +1,5 @@ /////////////////////////////////////////////////////////////////////////////////////////////////////// -// Copyright (c) 2024, ООО 1С-Софт +// Copyright (c) 2025, ООО 1С-Софт // Все права защищены. Эта программа и сопроводительные материалы предоставляются // в соответствии с условиями лицензии Attribution 4.0 International (CC BY 4.0) // Текст лицензии доступен по ссылке: diff --git a/SSL/src/CommonModules/РассылкаОтчетовКлиентПереопределяемый/Module.bsl b/SSL/src/CommonModules/РассылкаОтчетовКлиентПереопределяемый/Module.bsl index b468965de..499ce8ed2 100644 --- a/SSL/src/CommonModules/РассылкаОтчетовКлиентПереопределяемый/Module.bsl +++ b/SSL/src/CommonModules/РассылкаОтчетовКлиентПереопределяемый/Module.bsl @@ -1,5 +1,5 @@ /////////////////////////////////////////////////////////////////////////////////////////////////////// -// Copyright (c) 2024, ООО 1С-Софт +// Copyright (c) 2025, ООО 1С-Софт // Все права защищены. Эта программа и сопроводительные материалы предоставляются // в соответствии с условиями лицензии Attribution 4.0 International (CC BY 4.0) // Текст лицензии доступен по ссылке: diff --git a/SSL/src/CommonModules/РассылкаОтчетовКлиентСервер/Module.bsl b/SSL/src/CommonModules/РассылкаОтчетовКлиентСервер/Module.bsl index b59a3a258..9a617879d 100644 --- a/SSL/src/CommonModules/РассылкаОтчетовКлиентСервер/Module.bsl +++ b/SSL/src/CommonModules/РассылкаОтчетовКлиентСервер/Module.bsl @@ -1,5 +1,5 @@ /////////////////////////////////////////////////////////////////////////////////////////////////////// -// Copyright (c) 2024, ООО 1С-Софт +// Copyright (c) 2025, ООО 1С-Софт // Все права защищены. Эта программа и сопроводительные материалы предоставляются // в соответствии с условиями лицензии Attribution 4.0 International (CC BY 4.0) // Текст лицензии доступен по ссылке: diff --git a/SSL/src/CommonModules/РассылкаОтчетовПереопределяемый/Module.bsl b/SSL/src/CommonModules/РассылкаОтчетовПереопределяемый/Module.bsl index 848724faa..8f7399276 100644 --- a/SSL/src/CommonModules/РассылкаОтчетовПереопределяемый/Module.bsl +++ b/SSL/src/CommonModules/РассылкаОтчетовПереопределяемый/Module.bsl @@ -1,5 +1,5 @@ /////////////////////////////////////////////////////////////////////////////////////////////////////// -// Copyright (c) 2024, ООО 1С-Софт +// Copyright (c) 2025, ООО 1С-Софт // Все права защищены. Эта программа и сопроводительные материалы предоставляются // в соответствии с условиями лицензии Attribution 4.0 International (CC BY 4.0) // Текст лицензии доступен по ссылке: diff --git a/SSL/src/CommonModules/РассылкаОтчетовПовтИсп/Module.bsl b/SSL/src/CommonModules/РассылкаОтчетовПовтИсп/Module.bsl index eb221212a..180ef61bc 100644 --- a/SSL/src/CommonModules/РассылкаОтчетовПовтИсп/Module.bsl +++ b/SSL/src/CommonModules/РассылкаОтчетовПовтИсп/Module.bsl @@ -1,5 +1,5 @@ /////////////////////////////////////////////////////////////////////////////////////////////////////// -// Copyright (c) 2024, ООО 1С-Софт +// Copyright (c) 2025, ООО 1С-Софт // Все права защищены. Эта программа и сопроводительные материалы предоставляются // в соответствии с условиями лицензии Attribution 4.0 International (CC BY 4.0) // Текст лицензии доступен по ссылке: diff --git a/SSL/src/CommonModules/РегламентированныеДанныеКлиентСервер/Module.bsl b/SSL/src/CommonModules/РегламентированныеДанныеКлиентСервер/Module.bsl index e64aee4ae..440d460cc 100644 --- a/SSL/src/CommonModules/РегламентированныеДанныеКлиентСервер/Module.bsl +++ b/SSL/src/CommonModules/РегламентированныеДанныеКлиентСервер/Module.bsl @@ -1,5 +1,5 @@ /////////////////////////////////////////////////////////////////////////////////////////////////////// -// Copyright (c) 2024, ООО 1С-Софт +// Copyright (c) 2025, ООО 1С-Софт // Все права защищены. Эта программа и сопроводительные материалы предоставляются // в соответствии с условиями лицензии Attribution 4.0 International (CC BY 4.0) // Текст лицензии доступен по ссылке: diff --git a/SSL/src/CommonModules/РегламентныеЗаданияКлиент/Module.bsl b/SSL/src/CommonModules/РегламентныеЗаданияКлиент/Module.bsl index 8dfc2b64b..da576acac 100644 --- a/SSL/src/CommonModules/РегламентныеЗаданияКлиент/Module.bsl +++ b/SSL/src/CommonModules/РегламентныеЗаданияКлиент/Module.bsl @@ -1,5 +1,5 @@ /////////////////////////////////////////////////////////////////////////////////////////////////////// -// Copyright (c) 2024, ООО 1С-Софт +// Copyright (c) 2025, ООО 1С-Софт // Все права защищены. Эта программа и сопроводительные материалы предоставляются // в соответствии с условиями лицензии Attribution 4.0 International (CC BY 4.0) // Текст лицензии доступен по ссылке: diff --git a/SSL/src/CommonModules/РегламентныеЗаданияПереопределяемый/Module.bsl b/SSL/src/CommonModules/РегламентныеЗаданияПереопределяемый/Module.bsl index c94597bb1..42bb318fa 100644 --- a/SSL/src/CommonModules/РегламентныеЗаданияПереопределяемый/Module.bsl +++ b/SSL/src/CommonModules/РегламентныеЗаданияПереопределяемый/Module.bsl @@ -1,5 +1,5 @@ /////////////////////////////////////////////////////////////////////////////////////////////////////// -// Copyright (c) 2024, ООО 1С-Софт +// Copyright (c) 2025, ООО 1С-Софт // Все права защищены. Эта программа и сопроводительные материалы предоставляются // в соответствии с условиями лицензии Attribution 4.0 International (CC BY 4.0) // Текст лицензии доступен по ссылке: diff --git a/SSL/src/CommonModules/РегламентныеЗаданияСервер/Module.bsl b/SSL/src/CommonModules/РегламентныеЗаданияСервер/Module.bsl index 34d7a66dd..a698c305e 100644 --- a/SSL/src/CommonModules/РегламентныеЗаданияСервер/Module.bsl +++ b/SSL/src/CommonModules/РегламентныеЗаданияСервер/Module.bsl @@ -1,5 +1,5 @@ /////////////////////////////////////////////////////////////////////////////////////////////////////// -// Copyright (c) 2024, ООО 1С-Софт +// Copyright (c) 2025, ООО 1С-Софт // Все права защищены. Эта программа и сопроводительные материалы предоставляются // в соответствии с условиями лицензии Attribution 4.0 International (CC BY 4.0) // Текст лицензии доступен по ссылке: @@ -468,6 +468,213 @@ КонецПроцедуры +// Запускает фоновое задание по регламентному заданию или выполняет его метод не в фоне. +// Пользователь для запуска всегда текущий (платформа не дает возможности его указать). +// +// Параметры: +// Идентификатор - ОбъектМетаданных - метаданные регламентного задания. +// - Строка - имя метаданных регламентного задания. +// - РегламентноеЗадание - экземпляр регламентного задания, когда нужно +// выполнить с параметрами (можно передать созданный незаписанный объект). +// +// ПараметрыВыполнения - см. НовыеПараметрыВыполненияЗадания +// - Неопределено - использовать значения по умолчанию. +// +// Возвращаемое значение: +// ФоновоеЗадание - запущенное задание. +// Неопределено - если указано выполнить не в фоне. +// +Функция ВыполнитьЗадание(Идентификатор, Знач ПараметрыВыполнения = Неопределено) Экспорт + + РегламентноеЗадание = Неопределено; + + Если ТипЗнч(Идентификатор) = Тип("РегламентноеЗадание") Тогда + РегламентноеЗадание = Идентификатор; + МетаданныеЗадания = Идентификатор.Метаданные; + + ИначеЕсли ТипЗнч(Идентификатор) = Тип("ОбъектМетаданных") Тогда + Если Не Метаданные.РегламентныеЗадания.Содержит(Идентификатор) Тогда + ТекстОшибки = СтроковыеФункцииКлиентСервер.ПодставитьПараметрыВСтроку( + НСтр("ru = 'Недопустимое значение параметра %1 в %2. + |Ожидался объект метаданных регламентного задания, а передан другой объект метаданных.'"), + "Идентификатор", + "РегламентныеЗаданияСервер.ВыполнитьЗадание"); + ВызватьИсключение(ТекстОшибки, КатегорияОшибки.ОшибкаКонфигурации); + КонецЕсли; + МетаданныеЗадания = Идентификатор; + + ИначеЕсли ТипЗнч(Идентификатор) = Тип("Строка") Тогда + МетаданныеЗадания = Метаданные.РегламентныеЗадания.Найти(Идентификатор); + Если МетаданныеЗадания = Неопределено Тогда + ТекстОшибки = СтроковыеФункцииКлиентСервер.ПодставитьПараметрыВСтроку( + НСтр("ru = 'Недопустимое значение параметра %1 в %2. + |Регламентное задание ""%3"" не существует в метаданных.'"), + "Идентификатор", + "РегламентныеЗаданияСервер.ВыполнитьЗадание", + Идентификатор); + ВызватьИсключение(ТекстОшибки, КатегорияОшибки.ОшибкаКонфигурации); + КонецЕсли; + Иначе + ОбщегоНазначенияКлиентСервер.ПроверитьПараметр("РегламентныеЗаданияСервер.ВыполнитьЗадание", + "Идентификатор", Идентификатор, Новый ОписаниеТипов("ОбъектМетаданных,Строка,РегламентноеЗадание")); + КонецЕсли; + + Параметры = ?(РегламентноеЗадание <> Неопределено, РегламентноеЗадание.Параметры, Неопределено); + + ПараметрыВыполнения = ?(ПараметрыВыполнения = Неопределено, + НовыеПараметрыВыполненияЗадания(), ПараметрыВыполнения); + + Если Не ПараметрыВыполнения.ВФоне Тогда + ПараметрыСтрока = ""; + Если Параметры <> Неопределено И Параметры.Количество() > 0 Тогда + Для Индекс = 0 По Параметры.ВГраница() Цикл + ПараметрыСтрока = ПараметрыСтрока + "Параметры[" + XMLСтрока(Индекс) + "],"; + КонецЦикла; + ПараметрыСтрока = Сред(ПараметрыСтрока, 1, СтрДлина(ПараметрыСтрока) - 1); + КонецЕсли; + Выполнить(Метаданные.РегламентныеЗадания[МетаданныеЗадания.Имя].ИмяМетода + "(" + ПараметрыСтрока + ")"); // АПК:487 Исполняемый код безопасен. + Возврат Неопределено; + КонецЕсли; + + Отбор = Неопределено; + Если ПараметрыВыполнения.ПоискАктивного = Истина Тогда + Отбор = Новый Структура; + Отбор.Вставить("ИмяМетода", МетаданныеЗадания.ИмяМетода); + Отбор.Вставить("Состояние", СостояниеФоновогоЗадания.Активно); + + ИначеЕсли ТипЗнч(ПараметрыВыполнения.ПоискАктивного) = Тип("Структура") Тогда + Отбор = ПараметрыВыполнения.ПоискАктивного; + + ИначеЕсли ПараметрыВыполнения.ПоискАктивного <> Ложь Тогда + ОбщегоНазначенияКлиентСервер.ПроверитьПараметр("РегламентныеЗаданияСервер.ВыполнитьЗадание", + "ПараметрыВыполнения", ПараметрыВыполнения, Тип("Структура"), + Новый Структура("ПоискАктивного", Новый ОписаниеТипов("Булево,Структура"))); + КонецЕсли; + + Если Отбор <> Неопределено Тогда + НайденныеЗадания = ФоновыеЗадания.ПолучитьФоновыеЗадания(Отбор); + Если НайденныеЗадания.Количество() > 0 Тогда + Возврат НайденныеЗадания[0]; + КонецЕсли; + КонецЕсли; + + Ключ = ПараметрыВыполнения.Ключ; + Если Ключ = Неопределено Тогда + Если РегламентноеЗадание <> Неопределено И ЗначениеЗаполнено(РегламентноеЗадание.Ключ) Тогда + Ключ = РегламентноеЗадание.Ключ; + ИначеЕсли ЗначениеЗаполнено(МетаданныеЗадания.Ключ) Тогда + Ключ = МетаданныеЗадания.Ключ; + КонецЕсли; + КонецЕсли; + + Наименование = ПараметрыВыполнения.Наименование; + Если Наименование = Неопределено Тогда + Если РегламентноеЗадание <> Неопределено Тогда + Наименование = РегламентноеЗадание.Наименование; + КонецЕсли; + Если Не ЗначениеЗаполнено(Наименование) Тогда + Наименование = МетаданныеЗадания.Представление(); + КонецЕсли; + Если Не ЗначениеЗаполнено(Наименование) Тогда + Наименование = МетаданныеЗадания.Имя; + КонецЕсли; + КонецЕсли; + + Если ТипЗнч(ПараметрыВыполнения.ЭтоЗапускВручную) = Тип("Булево") Тогда + Если РегламентноеЗадание <> Неопределено Тогда + УстановитьПривилегированныйРежим(Истина); + Если РегламентныеЗадания.НайтиПоУникальномуИдентификатору(РегламентноеЗадание.УникальныйИдентификатор) <> Неопределено Тогда + Наименование = Наименование + " " + Строка(РегламентноеЗадание.УникальныйИдентификатор); + КонецЕсли; + УстановитьПривилегированныйРежим(Ложь); + КонецЕсли; + Если ПараметрыВыполнения.ЭтоЗапускВручную Тогда + Шаблон = НСтр("ru = 'Запуск вручную: %1 (из сеанса %2 от %3)'", + ОбщегоНазначения.КодОсновногоЯзыка()); + Иначе + Шаблон = НСтр("ru = 'Автозапуск: %1 (из сеанса %2 от %3)'", + ОбщегоНазначения.КодОсновногоЯзыка()); + КонецЕсли; + ТекущийСеанс = ПолучитьТекущийСеансИнформационнойБазы(); + Наименование = СтроковыеФункцииКлиентСервер.ПодставитьПараметрыВСтроку(Шаблон, + Наименование, + Формат(ТекущийСеанс.НомерСеанса, "ЧГ="), + Формат(ТекущийСеанс.НачалоСеанса, "ДЛФ=DT")); + КонецЕсли; + + Если ПараметрыВыполнения.СРасширениямиБазыДанных = Истина Тогда + ФоновоеЗадание = РасширенияКонфигурации.ВыполнитьФоновоеЗаданиеСРасширениямиБазыДанных( + Метаданные.РегламентныеЗадания[МетаданныеЗадания.Имя].ИмяМетода, + Параметры, Ключ, Наименование); + + ИначеЕсли ПараметрыВыполнения.СРасширениямиБазыДанных = Ложь Тогда + ФоновоеЗадание = РасширенияКонфигурации.ВыполнитьФоновоеЗаданиеБезРасширений( + Метаданные.РегламентныеЗадания[МетаданныеЗадания.Имя].ИмяМетода, + Параметры, Ключ, Наименование); + Иначе + ФоновоеЗадание = ФоновыеЗадания.Выполнить( + Метаданные.РегламентныеЗадания[МетаданныеЗадания.Имя].ИмяМетода, + Параметры, Ключ, Наименование); + КонецЕсли; + + Возврат ФоновоеЗадание; + +КонецФункции + +#Область КонструкторыПараметров + +// Конструктор параметров для функции ВыполнитьЗадание. +// +// Возвращаемое значение: +// Структура: +// * ВФоне - Булево - по умолчанию Истина. +// Если Ложь, тогда метод регламентного задания вызывается в текущем сеансе, +// остальные свойства (ниже) не учитываются. +// +// * ЭтоЗапускВручную - Булево - по умолчанию Истина (для уточнения наименования задания). +// Истина - если запуск выполняется пользователем по кнопке из формы, тогда уточнение +// "Запуск вручную: <параметр Наименование> (из сеанса <номер> от <дата>)". +// Ложь - если запуск выполняется программно при каком-то событии (в ходе работы +// задания изменились метаданные или после записи объекта требуется отработать +// быструю часть обновления прав на зависимые объекты), тогда уточнение +// "Автозапуск: <параметр Наименование> (из сеанса <номер> от <дата>)". +// - Неопределено - использовать значение свойства Наименование без уточнения. +// +// * ПоискАктивного - Булево - по умолчанию Ложь. Запустить, если не выполняется, иначе вернуть активное. +// Ложь - не искать активное задание, сразу запустить и вернуть запущенное. +// Истина - искать по имени метода и состоянию Активно, если найдено, вернуть первое. +// - Структура - как параметр Отбор у метода платформы ФоновыеЗадания.ПолучитьФоновыеЗадания. +// +// * Ключ - Неопределено - значение по умолчанию. Взять ключ из регламентного задания, +// если указано, в противном случае взять ключ из метаданных регламентного задания. +// - Строка - также как у метода платформы ФоновыеЗадания.Выполнить. +// +// * Наименование - Неопределено - по умолчанию. Взять наименование из регламентного задания, +// если заполнено, в противном случае взять представление его метаданных. +// - Строка - также как у метода платформы ФоновыеЗадания.Выполнить, +// но с учетом значения свойства ЭтоЗапускВручную. +// +// * СРасширениямиБазыДанных - Булево - по умолчанию Истина. Определяет способ выполнения. +// Истина - РасширенияКонфигурации.ВыполнитьФоновоеЗаданиеСРасширениямиБазыДанных +// Ложь - РасширенияКонфигурации.ВыполнитьФоновоеЗаданиеБезРасширений +// - Неопределено - ФоновыеЗадания.Выполнить +// +Функция НовыеПараметрыВыполненияЗадания() Экспорт + + Результат = Новый Структура; + Результат.Вставить("ВФоне", Истина); + Результат.Вставить("ЭтоЗапускВручную", Истина); + Результат.Вставить("ПоискАктивного", Ложь); + Результат.Вставить("Ключ", Неопределено); + Результат.Вставить("Наименование", Неопределено); + Результат.Вставить("СРасширениямиБазыДанных", Истина); + + Возврат Результат; + +КонецФункции + +#КонецОбласти + #Область ПроцедурыИФункцииБезПоддержкиЗаданийОчередиВМоделиСервиса // Возвращает использование регламентного задания. diff --git a/SSL/src/CommonModules/РегламентныеЗаданияСлужебный/Module.bsl b/SSL/src/CommonModules/РегламентныеЗаданияСлужебный/Module.bsl index cba7c9f94..725aaa8f1 100644 --- a/SSL/src/CommonModules/РегламентныеЗаданияСлужебный/Module.bsl +++ b/SSL/src/CommonModules/РегламентныеЗаданияСлужебный/Module.bsl @@ -1,5 +1,5 @@ /////////////////////////////////////////////////////////////////////////////////////////////////////// -// Copyright (c) 2024, ООО 1С-Софт +// Copyright (c) 2025, ООО 1С-Софт // Все права защищены. Эта программа и сопроводительные материалы предоставляются // в соответствии с условиями лицензии Attribution 4.0 International (CC BY 4.0) // Текст лицензии доступен по ссылке: @@ -287,6 +287,78 @@ КонецФункции +// Вызывает исключение, если у пользователя нет права администрирования. +Процедура ВызватьИсключениеЕслиНетПраваАдминистрирования() Экспорт + + Если ОбщегоНазначения.РазделениеВключено() + И ОбщегоНазначения.ДоступноИспользованиеРазделенныхДанных() Тогда + Если НЕ Пользователи.ЭтоПолноправныйПользователь() Тогда + ВызватьИсключение НСтр("ru = 'Нарушение прав доступа.'"); + КонецЕсли; + Иначе + Если НЕ ПривилегированныйРежим() Тогда + ВыполнитьПроверкуПравДоступа("Администрирование", Метаданные); + КонецЕсли; + КонецЕсли; + +КонецПроцедуры + +// Предназначена для "ручного" немедленного выполнения процедуры регламентного задания +// либо в сеансе клиента (в файловой ИБ), либо в фоновом задании на сервере (в серверной ИБ). +// Применяется в любом режиме соединения. +// Ручной режим запуска не влияет на выполнение регламентного задания по аварийному +// и основному расписаниям, т.к. не указывается ссылка на регламентное задание у фонового задания. +// Тип ФоновоеЗадание не допускает установки такой ссылки, поэтому для файлового режима применяется +// тоже правило. +// +// Параметры: +// Задание - РегламентноеЗадание +// - Строка - уникального идентификатора РегламентногоЗадания. +// +// Возвращаемое значение: +// Структура: +// * МоментЗапуска - Неопределено +// - Дата - для файловой ИБ устанавливает переданный момент, как момент запуска +// метода регламентного задания. +// Для серверной ИБ - возвращает момент запуска фонового задания по факту. +// * ИдентификаторФоновогоЗадания - Строка - для серверной ИБ возвращает идентификатор запущенного фонового задания. +// +Функция ВыполнитьРегламентноеЗаданиеВручную(Знач Задание) Экспорт + + ВызватьИсключениеЕслиНетПраваАдминистрирования(); + УстановитьПривилегированныйРежим(Истина); + + ПараметрыВыполнения = ПараметрыВыполненияРегламентногоЗадания(); + ПараметрыВыполнения.ПроцедураУжеВыполняется = Ложь; + Задание = РегламентныеЗаданияСервер.ПолучитьРегламентноеЗадание(Задание); + + ПараметрыВыполнения.ЗапускВыполнен = Ложь; + СвойстваПоследнегоФоновогоЗадания = СвойстваПоследнегоФоновогоЗаданияВыполненияРегламентногоЗадания(Задание); + + Если СвойстваПоследнегоФоновогоЗадания <> Неопределено + И СвойстваПоследнегоФоновогоЗадания.Состояние = СостояниеФоновогоЗадания.Активно Тогда + + ПараметрыВыполнения.МоментЗапуска = СвойстваПоследнегоФоновогоЗадания.Начало; + Если ЗначениеЗаполнено(СвойстваПоследнегоФоновогоЗадания.Наименование) Тогда + ПараметрыВыполнения.ПредставлениеФоновогоЗадания = СвойстваПоследнегоФоновогоЗадания.Наименование; + Иначе + ПараметрыВыполнения.ПредставлениеФоновогоЗадания = ПредставлениеРегламентногоЗадания(Задание); + КонецЕсли; + Иначе + ПараметрыВыполненияЗадания = РегламентныеЗаданияСервер.НовыеПараметрыВыполненияЗадания(); + ПараметрыВыполненияЗадания.Ключ = Строка(Задание.УникальныйИдентификатор); + ПараметрыВыполненияЗадания.Наименование = ПредставлениеРегламентногоЗадания(Задание); + ФоновоеЗадание = РегламентныеЗаданияСервер.ВыполнитьЗадание(Задание, ПараметрыВыполненияЗадания); + ПараметрыВыполнения.ИдентификаторФоновогоЗадания = Строка(ФоновоеЗадание.УникальныйИдентификатор); + ПараметрыВыполнения.МоментЗапуска = ФоновыеЗадания.НайтиПоУникальномуИдентификатору(ФоновоеЗадание.УникальныйИдентификатор).Начало; + ПараметрыВыполнения.ЗапускВыполнен = Истина; + КонецЕсли; + + ПараметрыВыполнения.ПроцедураУжеВыполняется = НЕ ПараметрыВыполнения.ЗапускВыполнен; + Возврат ПараметрыВыполнения; + +КонецФункции + #Область ОбработчикиПодписокНаСобытия // Процедура включает/отключает созданные в ИБ регламентные задания @@ -471,22 +543,6 @@ КонецФункции -// Вызывает исключение, если у пользователя нет права администрирования. -Процедура ВызватьИсключениеЕслиНетПраваАдминистрирования() Экспорт - - Если ОбщегоНазначения.РазделениеВключено() - И ОбщегоНазначения.ДоступноИспользованиеРазделенныхДанных() Тогда - Если НЕ Пользователи.ЭтоПолноправныйПользователь() Тогда - ВызватьИсключение НСтр("ru = 'Нарушение прав доступа.'"); - КонецЕсли; - Иначе - Если НЕ ПривилегированныйРежим() Тогда - ВыполнитьПроверкуПравДоступа("Администрирование", Метаданные); - КонецЕсли; - КонецЕсли; - -КонецПроцедуры - // Параметры: // Параметры - Структура: // * Таблица - ТаблицаЗначений: @@ -635,66 +691,6 @@ #Область ПроцедурыИФункцииДляРаботыСРегламентнымиЗаданиями -// Предназначена для "ручного" немедленного выполнения процедуры регламентного задания -// либо в сеансе клиента (в файловой ИБ), либо в фоновом задании на сервере (в серверной ИБ). -// Применяется в любом режиме соединения. -// Ручной режим запуска не влияет на выполнение регламентного задания по аварийному -// и основному расписаниям, т.к. не указывается ссылка на регламентное задание у фонового задания. -// Тип ФоновоеЗадание не допускает установки такой ссылки, поэтому для файлового режима применяется -// тоже правило. -// -// Параметры: -// Задание - РегламентноеЗадание -// - Строка - уникального идентификатора РегламентногоЗадания. -// -// Возвращаемое значение: -// Структура: -// * МоментЗапуска - Неопределено -// - Дата - для файловой ИБ устанавливает переданный момент, как момент запуска -// метода регламентного задания. -// Для серверной ИБ - возвращает момент запуска фонового задания по факту. -// * ИдентификаторФоновогоЗадания - Строка - для серверной ИБ возвращает идентификатор запущенного фонового задания. -// -Функция ВыполнитьРегламентноеЗаданиеВручную(Знач Задание) Экспорт - - ВызватьИсключениеЕслиНетПраваАдминистрирования(); - УстановитьПривилегированныйРежим(Истина); - - ПараметрыВыполнения = ПараметрыВыполненияРегламентногоЗадания(); - ПараметрыВыполнения.ПроцедураУжеВыполняется = Ложь; - Задание = РегламентныеЗаданияСервер.ПолучитьРегламентноеЗадание(Задание); - - ПараметрыВыполнения.ЗапускВыполнен = Ложь; - СвойстваПоследнегоФоновогоЗадания = СвойстваПоследнегоФоновогоЗаданияВыполненияРегламентногоЗадания(Задание); - - Если СвойстваПоследнегоФоновогоЗадания <> Неопределено - И СвойстваПоследнегоФоновогоЗадания.Состояние = СостояниеФоновогоЗадания.Активно Тогда - - ПараметрыВыполнения.МоментЗапуска = СвойстваПоследнегоФоновогоЗадания.Начало; - Если ЗначениеЗаполнено(СвойстваПоследнегоФоновогоЗадания.Наименование) Тогда - ПараметрыВыполнения.ПредставлениеФоновогоЗадания = СвойстваПоследнегоФоновогоЗадания.Наименование; - Иначе - ПараметрыВыполнения.ПредставлениеФоновогоЗадания = ПредставлениеРегламентногоЗадания(Задание); - КонецЕсли; - Иначе - НаименованиеФоновогоЗадания = СтроковыеФункцииКлиентСервер.ПодставитьПараметрыВСтроку(НСтр("ru = 'Запуск вручную: %1'"), ПредставлениеРегламентногоЗадания(Задание)); - // Не используются длительные операции, т.к. делается вызов метода регламентного задания. - ИмяЗадания = Задание.Метаданные.Имя; - ФоновоеЗадание = РасширенияКонфигурации.ВыполнитьФоновоеЗаданиеСРасширениямиБазыДанных( - Метаданные.РегламентныеЗадания[ИмяЗадания].ИмяМетода, - Задание.Параметры, - Строка(Задание.УникальныйИдентификатор), - НаименованиеФоновогоЗадания); - ПараметрыВыполнения.ИдентификаторФоновогоЗадания = Строка(ФоновоеЗадание.УникальныйИдентификатор); - ПараметрыВыполнения.МоментЗапуска = ФоновыеЗадания.НайтиПоУникальномуИдентификатору(ФоновоеЗадание.УникальныйИдентификатор).Начало; - ПараметрыВыполнения.ЗапускВыполнен = Истина; - КонецЕсли; - - ПараметрыВыполнения.ПроцедураУжеВыполняется = НЕ ПараметрыВыполнения.ЗапускВыполнен; - Возврат ПараметрыВыполнения; - -КонецФункции - Функция ПараметрыВыполненияРегламентногоЗадания() Результат = Новый Структура; @@ -731,12 +727,12 @@ Если РегламентноеЗадание <> Неопределено Тогда Если РегламентноеЗадание.Предопределенное Тогда - Представление = РегламентноеЗадание.Метаданные.Синоним; + Представление = РегламентноеЗадание.Метаданные.Представление(); Иначе Представление = РегламентноеЗадание.Наименование; Если ПустаяСтрока(РегламентноеЗадание.Наименование) Тогда - Представление = РегламентноеЗадание.Метаданные.Синоним; + Представление = РегламентноеЗадание.Метаданные.Представление(); КонецЕсли; КонецЕсли; Если ПустаяСтрока(Представление) Тогда diff --git a/SSL/src/CommonModules/РезервноеКопированиеИБВызовСервера/Module.bsl b/SSL/src/CommonModules/РезервноеКопированиеИБВызовСервера/Module.bsl index 2e42070ed..175b4b644 100644 --- a/SSL/src/CommonModules/РезервноеКопированиеИБВызовСервера/Module.bsl +++ b/SSL/src/CommonModules/РезервноеКопированиеИБВызовСервера/Module.bsl @@ -1,5 +1,5 @@ /////////////////////////////////////////////////////////////////////////////////////////////////////// -// Copyright (c) 2024, ООО 1С-Софт +// Copyright (c) 2025, ООО 1С-Софт // Все права защищены. Эта программа и сопроводительные материалы предоставляются // в соответствии с условиями лицензии Attribution 4.0 International (CC BY 4.0) // Текст лицензии доступен по ссылке: diff --git a/SSL/src/CommonModules/РезервноеКопированиеИБГлобальный/Module.bsl b/SSL/src/CommonModules/РезервноеКопированиеИБГлобальный/Module.bsl index e436e78e5..bc1361e0e 100644 --- a/SSL/src/CommonModules/РезервноеКопированиеИБГлобальный/Module.bsl +++ b/SSL/src/CommonModules/РезервноеКопированиеИБГлобальный/Module.bsl @@ -1,5 +1,5 @@ /////////////////////////////////////////////////////////////////////////////////////////////////////// -// Copyright (c) 2024, ООО 1С-Софт +// Copyright (c) 2025, ООО 1С-Софт // Все права защищены. Эта программа и сопроводительные материалы предоставляются // в соответствии с условиями лицензии Attribution 4.0 International (CC BY 4.0) // Текст лицензии доступен по ссылке: diff --git a/SSL/src/CommonModules/РезервноеКопированиеИБКлиент/Module.bsl b/SSL/src/CommonModules/РезервноеКопированиеИБКлиент/Module.bsl index e6e196534..9ae4a19aa 100644 --- a/SSL/src/CommonModules/РезервноеКопированиеИБКлиент/Module.bsl +++ b/SSL/src/CommonModules/РезервноеКопированиеИБКлиент/Module.bsl @@ -1,5 +1,5 @@ /////////////////////////////////////////////////////////////////////////////////////////////////////// -// Copyright (c) 2024, ООО 1С-Софт +// Copyright (c) 2025, ООО 1С-Софт // Все права защищены. Эта программа и сопроводительные материалы предоставляются // в соответствии с условиями лицензии Attribution 4.0 International (CC BY 4.0) // Текст лицензии доступен по ссылке: diff --git a/SSL/src/CommonModules/РезервноеКопированиеИБКлиентПереопределяемый/Module.bsl b/SSL/src/CommonModules/РезервноеКопированиеИБКлиентПереопределяемый/Module.bsl index 382d393f3..fc48f254e 100644 --- a/SSL/src/CommonModules/РезервноеКопированиеИБКлиентПереопределяемый/Module.bsl +++ b/SSL/src/CommonModules/РезервноеКопированиеИБКлиентПереопределяемый/Module.bsl @@ -1,5 +1,5 @@ /////////////////////////////////////////////////////////////////////////////////////////////////////// -// Copyright (c) 2024, ООО 1С-Софт +// Copyright (c) 2025, ООО 1С-Софт // Все права защищены. Эта программа и сопроводительные материалы предоставляются // в соответствии с условиями лицензии Attribution 4.0 International (CC BY 4.0) // Текст лицензии доступен по ссылке: diff --git a/SSL/src/CommonModules/РезервноеКопированиеИБСервер/Module.bsl b/SSL/src/CommonModules/РезервноеКопированиеИБСервер/Module.bsl index e9ff4af2a..534895919 100644 --- a/SSL/src/CommonModules/РезервноеКопированиеИБСервер/Module.bsl +++ b/SSL/src/CommonModules/РезервноеКопированиеИБСервер/Module.bsl @@ -1,5 +1,5 @@ /////////////////////////////////////////////////////////////////////////////////////////////////////// -// Copyright (c) 2024, ООО 1С-Софт +// Copyright (c) 2025, ООО 1С-Софт // Все права защищены. Эта программа и сопроводительные материалы предоставляются // в соответствии с условиями лицензии Attribution 4.0 International (CC BY 4.0) // Текст лицензии доступен по ссылке: diff --git a/SSL/src/CommonModules/СерверныеОповещения/Module.bsl b/SSL/src/CommonModules/СерверныеОповещения/Module.bsl index 87c06ee7c..18e9894ed 100644 --- a/SSL/src/CommonModules/СерверныеОповещения/Module.bsl +++ b/SSL/src/CommonModules/СерверныеОповещения/Module.bsl @@ -1,5 +1,5 @@ /////////////////////////////////////////////////////////////////////////////////////////////////////// -// Copyright (c) 2024, ООО 1С-Софт +// Copyright (c) 2025, ООО 1С-Софт // Все права защищены. Эта программа и сопроводительные материалы предоставляются // в соответствии с условиями лицензии Attribution 4.0 International (CC BY 4.0) // Текст лицензии доступен по ссылке: @@ -426,6 +426,9 @@ Иначе Прошло = ДатаДобавления - Выборка.ДатаДобавления + (ДатаДобавленияМиллисекунды - Выборка.ДатаДобавленияМиллисекунды) / 1000; + Если ОтсрочкаДоставки > Выборка.ОтсрочкаЗаписиВСистемуВзаимодействия Тогда + ОтсрочкаДоставки = Выборка.ОтсрочкаЗаписиВСистемуВзаимодействия; + КонецЕсли; КонецЕсли; Прошло = Окр(Прошло, 1, РежимОкругления.Окр15как20); ОтсрочкаДоставки = ОтсрочкаДоставки - Прошло; @@ -2905,12 +2908,4 @@ КонецФункции -// См. СтандартныеПодсистемыСервер.ПриОпределенииМетодовРазрешенныхДляВызоваКакПроизвольныйКод -Процедура ПриОпределенииМетодовРазрешенныхДляВызоваКакПроизвольныйКод(Методы) Экспорт - - Методы.Вставить("ОтправкаСерверныхОповещенийКлиентам", Истина); - Методы.Вставить("ДоставкаСерверныхОповещенийСОтсрочкой", Истина); - -КонецПроцедуры - #КонецОбласти diff --git a/SSL/src/CommonModules/СерверныеОповещенияГлобальный/Module.bsl b/SSL/src/CommonModules/СерверныеОповещенияГлобальный/Module.bsl index 65188a757..48126cbf1 100644 --- a/SSL/src/CommonModules/СерверныеОповещенияГлобальный/Module.bsl +++ b/SSL/src/CommonModules/СерверныеОповещенияГлобальный/Module.bsl @@ -1,5 +1,5 @@ /////////////////////////////////////////////////////////////////////////////////////////////////////// -// Copyright (c) 2024, ООО 1С-Софт +// Copyright (c) 2025, ООО 1С-Софт // Все права защищены. Эта программа и сопроводительные материалы предоставляются // в соответствии с условиями лицензии Attribution 4.0 International (CC BY 4.0) // Текст лицензии доступен по ссылке: diff --git a/SSL/src/CommonModules/СерверныеОповещенияКлиент/Module.bsl b/SSL/src/CommonModules/СерверныеОповещенияКлиент/Module.bsl index ff398e7e8..f5b72c09d 100644 --- a/SSL/src/CommonModules/СерверныеОповещенияКлиент/Module.bsl +++ b/SSL/src/CommonModules/СерверныеОповещенияКлиент/Module.bsl @@ -1,5 +1,5 @@ /////////////////////////////////////////////////////////////////////////////////////////////////////// -// Copyright (c) 2024, ООО 1С-Софт +// Copyright (c) 2025, ООО 1С-Софт // Все права защищены. Эта программа и сопроводительные материалы предоставляются // в соответствии с условиями лицензии Attribution 4.0 International (CC BY 4.0) // Текст лицензии доступен по ссылке: diff --git a/SSL/src/CommonModules/СерверныеОповещенияСлужебныйВызовСервера/Module.bsl b/SSL/src/CommonModules/СерверныеОповещенияСлужебныйВызовСервера/Module.bsl index e07d7faa4..b05888eda 100644 --- a/SSL/src/CommonModules/СерверныеОповещенияСлужебныйВызовСервера/Module.bsl +++ b/SSL/src/CommonModules/СерверныеОповещенияСлужебныйВызовСервера/Module.bsl @@ -1,5 +1,5 @@ /////////////////////////////////////////////////////////////////////////////////////////////////////// -// Copyright (c) 2024, ООО 1С-Софт +// Copyright (c) 2025, ООО 1С-Софт // Все права защищены. Эта программа и сопроводительные материалы предоставляются // в соответствии с условиями лицензии Attribution 4.0 International (CC BY 4.0) // Текст лицензии доступен по ссылке: diff --git a/SSL/src/CommonModules/СерверныеОповещенияСлужебныйКлиентСервер/Module.bsl b/SSL/src/CommonModules/СерверныеОповещенияСлужебныйКлиентСервер/Module.bsl index 8d97ebff5..64a9fd871 100644 --- a/SSL/src/CommonModules/СерверныеОповещенияСлужебныйКлиентСервер/Module.bsl +++ b/SSL/src/CommonModules/СерверныеОповещенияСлужебныйКлиентСервер/Module.bsl @@ -1,5 +1,5 @@ /////////////////////////////////////////////////////////////////////////////////////////////////////// -// Copyright (c) 2024, ООО 1С-Софт +// Copyright (c) 2025, ООО 1С-Софт // Все права защищены. Эта программа и сопроводительные материалы предоставляются // в соответствии с условиями лицензии Attribution 4.0 International (CC BY 4.0) // Текст лицензии доступен по ссылке: diff --git a/SSL/src/CommonModules/СерверныеОповещенияСлужебныйПовтИсп/Module.bsl b/SSL/src/CommonModules/СерверныеОповещенияСлужебныйПовтИсп/Module.bsl index 5b07450af..c38a4d1f6 100644 --- a/SSL/src/CommonModules/СерверныеОповещенияСлужебныйПовтИсп/Module.bsl +++ b/SSL/src/CommonModules/СерверныеОповещенияСлужебныйПовтИсп/Module.bsl @@ -1,5 +1,5 @@ /////////////////////////////////////////////////////////////////////////////////////////////////////// -// Copyright (c) 2024, ООО 1С-Софт +// Copyright (c) 2025, ООО 1С-Софт // Все права защищены. Эта программа и сопроводительные материалы предоставляются // в соответствии с условиями лицензии Attribution 4.0 International (CC BY 4.0) // Текст лицензии доступен по ссылке: diff --git a/SSL/src/CommonModules/СервисКриптографииDSS/Module.bsl b/SSL/src/CommonModules/СервисКриптографииDSS/Module.bsl index 06cf755c8..536a00cb7 100644 --- a/SSL/src/CommonModules/СервисКриптографииDSS/Module.bsl +++ b/SSL/src/CommonModules/СервисКриптографииDSS/Module.bsl @@ -1,5 +1,5 @@ /////////////////////////////////////////////////////////////////////////////////////////////////////// -// Copyright (c) 2024, ООО 1С-Софт +// Copyright (c) 2025, ООО 1С-Софт // Все права защищены. Эта программа и сопроводительные материалы предоставляются // в соответствии с условиями лицензии Attribution 4.0 International (CC BY 4.0) // Текст лицензии доступен по ссылке: diff --git a/SSL/src/CommonModules/СервисКриптографииDSSASNКлиентСервер/Module.bsl b/SSL/src/CommonModules/СервисКриптографииDSSASNКлиентСервер/Module.bsl index 62756dae1..027fe8124 100644 --- a/SSL/src/CommonModules/СервисКриптографииDSSASNКлиентСервер/Module.bsl +++ b/SSL/src/CommonModules/СервисКриптографииDSSASNКлиентСервер/Module.bsl @@ -1,5 +1,5 @@ /////////////////////////////////////////////////////////////////////////////////////////////////////// -// Copyright (c) 2024, ООО 1С-Софт +// Copyright (c) 2025, ООО 1С-Софт // Все права защищены. Эта программа и сопроводительные материалы предоставляются // в соответствии с условиями лицензии Attribution 4.0 International (CC BY 4.0) // Текст лицензии доступен по ссылке: diff --git a/SSL/src/CommonModules/СервисКриптографииDSSКлиент/Module.bsl b/SSL/src/CommonModules/СервисКриптографииDSSКлиент/Module.bsl index 9a138b90c..32a83f296 100644 --- a/SSL/src/CommonModules/СервисКриптографииDSSКлиент/Module.bsl +++ b/SSL/src/CommonModules/СервисКриптографииDSSКлиент/Module.bsl @@ -1,5 +1,5 @@ /////////////////////////////////////////////////////////////////////////////////////////////////////// -// Copyright (c) 2024, ООО 1С-Софт +// Copyright (c) 2025, ООО 1С-Софт // Все права защищены. Эта программа и сопроводительные материалы предоставляются // в соответствии с условиями лицензии Attribution 4.0 International (CC BY 4.0) // Текст лицензии доступен по ссылке: diff --git a/SSL/src/CommonModules/СервисКриптографииDSSКлиентСервер/Module.bsl b/SSL/src/CommonModules/СервисКриптографииDSSКлиентСервер/Module.bsl index 40a4f915a..b579bdff7 100644 --- a/SSL/src/CommonModules/СервисКриптографииDSSКлиентСервер/Module.bsl +++ b/SSL/src/CommonModules/СервисКриптографииDSSКлиентСервер/Module.bsl @@ -1,5 +1,5 @@ /////////////////////////////////////////////////////////////////////////////////////////////////////// -// Copyright (c) 2024, ООО 1С-Софт +// Copyright (c) 2025, ООО 1С-Софт // Все права защищены. Эта программа и сопроводительные материалы предоставляются // в соответствии с условиями лицензии Attribution 4.0 International (CC BY 4.0) // Текст лицензии доступен по ссылке: diff --git a/SSL/src/CommonModules/СервисКриптографииDSSПереопределяемый/Module.bsl b/SSL/src/CommonModules/СервисКриптографииDSSПереопределяемый/Module.bsl index f5f61a8d6..9a62ebb66 100644 --- a/SSL/src/CommonModules/СервисКриптографииDSSПереопределяемый/Module.bsl +++ b/SSL/src/CommonModules/СервисКриптографииDSSПереопределяемый/Module.bsl @@ -1,5 +1,5 @@ /////////////////////////////////////////////////////////////////////////////////////////////////////// -// Copyright (c) 2024, ООО 1С-Софт +// Copyright (c) 2025, ООО 1С-Софт // Все права защищены. Эта программа и сопроводительные материалы предоставляются // в соответствии с условиями лицензии Attribution 4.0 International (CC BY 4.0) // Текст лицензии доступен по ссылке: diff --git a/SSL/src/CommonModules/СервисКриптографииDSSПодтверждениеКлиент/Module.bsl b/SSL/src/CommonModules/СервисКриптографииDSSПодтверждениеКлиент/Module.bsl index c1d50707d..a5cc5c51f 100644 --- a/SSL/src/CommonModules/СервисКриптографииDSSПодтверждениеКлиент/Module.bsl +++ b/SSL/src/CommonModules/СервисКриптографииDSSПодтверждениеКлиент/Module.bsl @@ -1,5 +1,5 @@ /////////////////////////////////////////////////////////////////////////////////////////////////////// -// Copyright (c) 2024, ООО 1С-Софт +// Copyright (c) 2025, ООО 1С-Софт // Все права защищены. Эта программа и сопроводительные материалы предоставляются // в соответствии с условиями лицензии Attribution 4.0 International (CC BY 4.0) // Текст лицензии доступен по ссылке: diff --git a/SSL/src/CommonModules/СервисКриптографииDSSПодтверждениеСервер/Module.bsl b/SSL/src/CommonModules/СервисКриптографииDSSПодтверждениеСервер/Module.bsl index 79fc067a9..b12f4daf8 100644 --- a/SSL/src/CommonModules/СервисКриптографииDSSПодтверждениеСервер/Module.bsl +++ b/SSL/src/CommonModules/СервисКриптографииDSSПодтверждениеСервер/Module.bsl @@ -1,5 +1,5 @@ /////////////////////////////////////////////////////////////////////////////////////////////////////// -// Copyright (c) 2024, ООО 1С-Софт +// Copyright (c) 2025, ООО 1С-Софт // Все права защищены. Эта программа и сопроводительные материалы предоставляются // в соответствии с условиями лицензии Attribution 4.0 International (CC BY 4.0) // Текст лицензии доступен по ссылке: diff --git a/SSL/src/CommonModules/СервисКриптографииDSSСлужебный/Module.bsl b/SSL/src/CommonModules/СервисКриптографииDSSСлужебный/Module.bsl index 869f628fb..ea086e735 100644 --- a/SSL/src/CommonModules/СервисКриптографииDSSСлужебный/Module.bsl +++ b/SSL/src/CommonModules/СервисКриптографииDSSСлужебный/Module.bsl @@ -1,5 +1,5 @@ /////////////////////////////////////////////////////////////////////////////////////////////////////// -// Copyright (c) 2024, ООО 1С-Софт +// Copyright (c) 2025, ООО 1С-Софт // Все права защищены. Эта программа и сопроводительные материалы предоставляются // в соответствии с условиями лицензии Attribution 4.0 International (CC BY 4.0) // Текст лицензии доступен по ссылке: diff --git a/SSL/src/CommonModules/СервисКриптографииDSSСлужебныйВызовСервера/Module.bsl b/SSL/src/CommonModules/СервисКриптографииDSSСлужебныйВызовСервера/Module.bsl index 374ea33dc..d84792b9a 100644 --- a/SSL/src/CommonModules/СервисКриптографииDSSСлужебныйВызовСервера/Module.bsl +++ b/SSL/src/CommonModules/СервисКриптографииDSSСлужебныйВызовСервера/Module.bsl @@ -1,5 +1,5 @@ /////////////////////////////////////////////////////////////////////////////////////////////////////// -// Copyright (c) 2024, ООО 1С-Софт +// Copyright (c) 2025, ООО 1С-Софт // Все права защищены. Эта программа и сопроводительные материалы предоставляются // в соответствии с условиями лицензии Attribution 4.0 International (CC BY 4.0) // Текст лицензии доступен по ссылке: diff --git a/SSL/src/CommonModules/СервисКриптографииDSSСлужебныйКлиент/Module.bsl b/SSL/src/CommonModules/СервисКриптографииDSSСлужебныйКлиент/Module.bsl index 362797062..5c657bf49 100644 --- a/SSL/src/CommonModules/СервисКриптографииDSSСлужебныйКлиент/Module.bsl +++ b/SSL/src/CommonModules/СервисКриптографииDSSСлужебныйКлиент/Module.bsl @@ -1,5 +1,5 @@ /////////////////////////////////////////////////////////////////////////////////////////////////////// -// Copyright (c) 2024, ООО 1С-Софт +// Copyright (c) 2025, ООО 1С-Софт // Все права защищены. Эта программа и сопроводительные материалы предоставляются // в соответствии с условиями лицензии Attribution 4.0 International (CC BY 4.0) // Текст лицензии доступен по ссылке: diff --git a/SSL/src/CommonModules/СервисМобильнойПодписи/Module.bsl b/SSL/src/CommonModules/СервисМобильнойПодписи/Module.bsl index 921c2b351..0ab33e5bf 100644 --- a/SSL/src/CommonModules/СервисМобильнойПодписи/Module.bsl +++ b/SSL/src/CommonModules/СервисМобильнойПодписи/Module.bsl @@ -1,5 +1,5 @@ /////////////////////////////////////////////////////////////////////////////////////////////////////// -// Copyright (c) 2024, ООО 1С-Софт +// Copyright (c) 2025, ООО 1С-Софт // Все права защищены. Эта программа и сопроводительные материалы предоставляются // в соответствии с условиями лицензии Attribution 4.0 International (CC BY 4.0) // Текст лицензии доступен по ссылке: @@ -21,6 +21,19 @@ КонецПроцедуры +// Устанавливает признак разрешения отправки документов на подпись в Госключ. +// +// Параметры: +// Включить - Булево +// +Процедура НастроитьРаботуСГосключом(Включить) Экспорт + + Если Константы.ИспользоватьГосключ.Получить() <> Включить Тогда + Константы.ИспользоватьГосключ.Установить(Включить); + КонецЕсли; + +КонецПроцедуры + // Возвращает Истина, если доступна отправка подписей в мобильный сервис. // // Возвращаемое значение: @@ -32,6 +45,17 @@ КонецФункции +// Возвращает Истина, если доступна отправка подписей в мобильный сервис. +// +// Возвращаемое значение: +// Булево +// +Функция ИспользоватьГосключ() Экспорт + + Возврат ПолучитьФункциональнуюОпцию("ИспользоватьГосключ") И ОбщегоНазначения.РазрешенДоступКИнтернетСервисам(); + +КонецФункции + // Отправляет данные на подписание в сервис мобильной подписи, возвращает идентификатор подписи, // по которому потом можно получить результат. // @@ -130,33 +154,24 @@ // Подписант - СправочникСсылка.ПодписантыСервисаМобильнойПодписи // // Возвращаемое значение: -// Структура - Параметры подписанта: -// * ОГРН - Строка - ОГРН организации -// * ИНН - Строка - ИНН организации -// * ИННФЛ - Строка - ИНН физического лица -// * Имя - Строка -// * Отчество - Строка -// * Фамилия - Строка -// * НомерТелефона - Строка -// * Должность - Строка -// * Организация - Строка -// * НаименованиеОрганизации -Строка -// * ФизическоеЛицо - Строка -// * Наименование - Строка +// см. СервисМобильнойПодписиКлиентСервер.ПараметрыПодписания // Функция ПараметрыПодписанта(Подписант) Экспорт - + ПараметрыПодписанта = СервисМобильнойПодписиКлиентСервер.ПараметрыПодписанта(); - Реквизиты = ОбщегоНазначения.ЗначенияРеквизитовОбъекта(Подписант, - "ИНН, НомерТелефона, ИННФЛ, ОГРН, Имя, Отчество, Фамилия, Должность, Организация, НаименованиеОрганизации, ФизическоеЛицо, Наименование, Добавил"); - ЗаполнитьЗначенияСвойств(ПараметрыПодписанта, Реквизиты); - - Если Не Пользователи.ЭтоПолноправныйПользователь() И Реквизиты.Добавил <> Пользователи.ТекущийПользователь() Тогда - ПараметрыПодписанта.НомерТелефона = ""; + + Если ЗначениеЗаполнено(Подписант) Тогда + Реквизиты = ОбщегоНазначения.ЗначенияРеквизитовОбъекта(Подписант, + "Ссылка, ВидПодписанта, ИНН, СНИЛС, НомерТелефона, ИННФЛ, ОГРН, Имя, Отчество, Фамилия, Должность, Организация, НаименованиеОрганизации, ФизическоеЛицо, Наименование, Добавил, МояПодпись, ГосключУНЭП, ГосключУКЭП, НомерЗаписиОбАккредитации"); + ЗаполнитьЗначенияСвойств(ПараметрыПодписанта, Реквизиты); + + Если Не Пользователи.ЭтоПолноправныйПользователь() И Реквизиты.Добавил <> Пользователи.ТекущийПользователь() Тогда + ПараметрыПодписанта.НомерТелефона = ""; + КонецЕсли; КонецЕсли; - + Возврат ПараметрыПодписанта; - + КонецФункции #КонецОбласти diff --git a/SSL/src/CommonModules/СервисМобильнойПодписиКлиент/Module.bsl b/SSL/src/CommonModules/СервисМобильнойПодписиКлиент/Module.bsl index a9fa7d32b..3beb1a933 100644 --- a/SSL/src/CommonModules/СервисМобильнойПодписиКлиент/Module.bsl +++ b/SSL/src/CommonModules/СервисМобильнойПодписиКлиент/Module.bsl @@ -1,5 +1,5 @@ /////////////////////////////////////////////////////////////////////////////////////////////////////// -// Copyright (c) 2024, ООО 1С-Софт +// Copyright (c) 2025, ООО 1С-Софт // Все права защищены. Эта программа и сопроводительные материалы предоставляются // в соответствии с условиями лицензии Attribution 4.0 International (CC BY 4.0) // Текст лицензии доступен по ссылке: @@ -61,368 +61,15 @@ КонецПроцедуры -#КонецОбласти - -#Область СлужебныйПрограммныйИнтерфейс - -Функция ИмяФормыОтправкиНаПодписание() Экспорт - - Возврат "Справочник.ПодписантыСервисаМобильнойПодписи.Форма.ОтправитьНаПодписание"; - -КонецФункции - -Процедура ПроверитьОжидаемуюПодпись(Оповещение, Данные, ИдентификаторПодписи, ПараметрыПроверкиПодписи) Экспорт - - Результат = СервисМобильнойПодписиСлужебныйВызовСервера.РезультатПроверкиОжидаемойПодписи(Данные, ИдентификаторПодписи, ПараметрыПроверкиПодписи); - СвойстваЗаписаннойПодписи = Неопределено; - Если Результат.Свойство("ЗаписаннаяПодпись", СвойстваЗаписаннойПодписи) Тогда - ЗаполнитьЗначенияСвойств(Оповещение.ДополнительныеПараметры.СтрокаПодписи, Результат); - Оповещение.ДополнительныеПараметры.СтрокаПодписи.АдресПодписи = ПоместитьВоВременноеХранилище( - Результат.Подпись, Оповещение.ДополнительныеПараметры.Форма.УникальныйИдентификатор); - Оповещение.ДополнительныеПараметры.СтрокаПодписи.АдресСертификата = ПоместитьВоВременноеХранилище( - Результат.Сертификат, Оповещение.ДополнительныеПараметры.Форма.УникальныйИдентификатор); - Оповещение.ДополнительныеПараметры.СтрокаПодписи.ПорядковыйНомер = СвойстваЗаписаннойПодписи.ПорядковыйНомер; - ЭлектроннаяПодписьКлиент.ПроверитьПодпись(Оповещение, Данные, Результат.Подпись,,,ПараметрыПроверкиПодписи); - Возврат; - КонецЕсли; - ВыполнитьОбработкуОповещения(Оповещение, Результат); - -КонецПроцедуры - -Процедура ПодписатьДанныеВСервисе(Оповещение, КонтекстПодписания, ПараметрыПодписания = Неопределено) Экспорт - - ОписаниеДанных = КонтекстПодписания.ПараметрыВыполнения.ОписаниеДанных; - Подписант = ОписаниеДанных.ВыбранныйПодписант; - - НаборДанных = Новый Массив; - СписокПредставлений = Неопределено; - ОписаниеДанных.Свойство("СписокПредставлений", СписокПредставлений); - - Если ОписаниеДанных.Свойство("Данные") - Или ОписаниеДанных.Свойство("Объект") Тогда - ЗаполнитьНаборДанныхДляОтправкиНаПодписание(НаборДанных, ОписаниеДанных, СписокПредставлений, 0); - Иначе - Индекс = 0; - Для каждого ЭлементДанных Из ОписаниеДанных.НаборДанных Цикл - ЗаполнитьНаборДанныхДляОтправкиНаПодписание(НаборДанных, ЭлементДанных, СписокПредставлений, Индекс); - КонецЦикла; - КонецЕсли; - - ПараметрыВыполнения = Новый Структура; - ПараметрыВыполнения.Вставить("КонтекстПодписания", КонтекстПодписания); - ПараметрыВыполнения.Вставить("ОповещениеОПодписанииВСервисе", Оповещение); - - ДлительнаяОперация = СервисМобильнойПодписиСлужебныйВызовСервера.ПодписатьДанныеВСервисе( - КонтекстПодписания.ПараметрыВыполнения.ИдентификаторФормы, НаборДанных, Подписант, ПараметрыПодписания); - ОповещениеОЗавершении = Новый ОписаниеОповещения("ПослеОтправкиНаПодписанияДанныхВСервис", ЭтотОбъект, ПараметрыВыполнения); - ПараметрыОжидания = ДлительныеОперацииКлиент.ПараметрыОжидания(КонтекстПодписания.ПараметрыВыполнения.Форма); - ПараметрыОжидания.Заголовок = НСтр("ru='Отправка документов на подписание в приложение ""Моя подпись"" от ФНС'"); - ПараметрыОжидания.ВыводитьОкноОжидания = Истина; - ДлительныеОперацииКлиент.ОжидатьЗавершение(ДлительнаяОперация, ОповещениеОЗавершении, ПараметрыОжидания); - -КонецПроцедуры - -Процедура ПодписантПриОткрытии(Форма, Элемент, СтандартнаяОбработка) Экспорт - - Если Не ЗначениеЗаполнено(Форма.Подписант) Тогда - СтандартнаяОбработка = Ложь; - ДобавитьПодписантаВФорме(Форма, Элемент); - Иначе - СтандартнаяОбработка = Истина; - КонецЕсли; - -КонецПроцедуры - -Процедура ПодписантПриСоздании(Форма, Элемент, СтандартнаяОбработка) Экспорт - - СтандартнаяОбработка = Ложь; - ДобавитьПодписантаВФорме(Форма, Элемент); - -КонецПроцедуры - -Процедура ПодписантПриОчистке(Форма, Элемент, СтандартнаяОбработка) Экспорт - - СтандартнаяОбработка = Ложь; - Форма.Подписант = ПредопределенноеЗначение("Справочник.ПодписантыСервисаМобильнойПодписи.ПустаяСсылка"); - -КонецПроцедуры - -#КонецОбласти - -#Область СлужебныеПроцедурыИФункции - -Процедура ДобавитьПодписантаВФорме(Форма, Элемент) - ПараметрыПодписанта = СервисМобильнойПодписиКлиентСервер.ПараметрыПодписанта(); - Если ЗначениеЗаполнено(Форма.ПараметрыПодписанта) Тогда - ЗаполнитьЗначенияСвойств(ПараметрыПодписанта, Форма.ПараметрыПодписанта); - КонецЕсли; - ДобавитьПодписанта(ПараметрыПодписанта, Элемент, Новый ОписаниеОповещения("ПослеСозданияПодписанта", ЭтотОбъект, Форма)); -КонецПроцедуры - -Процедура ПослеСозданияПодписанта(Результат, Форма) Экспорт - Форма.Подписант = Результат; -КонецПроцедуры - -Процедура ЗаполнитьНаборДанныхДляОтправкиНаПодписание(НаборДанных, ЭлементДанных, СписокПредставлений = Неопределено, Индекс = Неопределено) - - ЭлементСписка = Новый Структура("Значение, Представление, ИмяФайла", Неопределено, "", ""); - - Если ЭлементДанных.Свойство("Представление") - И ТипЗнч(ЭлементДанных.Представление) = Тип("Структура") Тогда - - ЗаполнитьЗначенияСвойств(ЭлементСписка, ЭлементДанных.Представление); - - ИначеЕсли ЭлементДанных.Свойство("Представление") - И ТипЗнч(ЭлементДанных.Представление) <> Тип("Строка") Тогда - - ЭлементСписка.Значение = ЭлементДанных.Представление; - - ИначеЕсли ЭлементДанных.Свойство("Объект") И ТипЗнч(ЭлементДанных.Объект) <> Тип("ОписаниеОповещения") Тогда - - ЭлементСписка.Значение = ЭлементДанных.Объект; - - КонецЕсли; - - Если Не ЗначениеЗаполнено(ЭлементСписка.Представление) И ЭлементДанных.Свойство("Представление") - И ТипЗнч(ЭлементДанных.Представление) = Тип("Строка") Тогда - ЭлементСписка.Представление = ЭлементДанных.Представление; - КонецЕсли; - - Если Не ЗначениеЗаполнено(ЭлементСписка.ИмяФайла) Тогда - Если Не ЗначениеЗаполнено(ЭлементСписка.Представление) Тогда - Если СписокПредставлений <> Неопределено Тогда - ИмяФайла = СписокПредставлений[Индекс].Представление; - Иначе - ИмяФайла = Строка(ЭлементСписка.Значение); - КонецЕсли; - Иначе - ИмяФайла = ЭлементСписка.Представление; - КонецЕсли; - ИмяФайла = ОбщегоНазначенияКлиентСервер.ЗаменитьНедопустимыеСимволыВИмениФайла(ИмяФайла); - Файл = Новый Файл(ИмяФайла); - Расширение = Файл.Расширение; - Если Не ЗначениеЗаполнено(Расширение) Тогда - Расширение = ".bin"; - КонецЕсли; - ДлинаИмени = 250 - СтрДлина(Расширение); - ИмяБезРасширения = Лев(Файл.ИмяБезРасширения, ДлинаИмени); - ИмяФайла = ИмяБезРасширения + Расширение; - Иначе - ИмяФайла = ЭлементСписка.ИмяФайла; - КонецЕсли; - - Структура = Новый Структура; - Структура.Вставить("Данные", ЭлементДанных.Данные); - Структура.Вставить("Представление", ИмяФайла); - - НаборДанных.Добавить(Структура); - -КонецПроцедуры - -// Обработать ошибку взаимодействия с сервисом мобильной подписи. +// Возвращает структуру с параметрами отправителя, по которым определяется организация - отправитель документов в Госключ. // -// Параметры: -// Ошибка - см. ЭлектроннаяПодписьСлужебныйПовтИсп.КлассификаторОшибокКриптографии -// Контекст - см. МашиночитаемыеДоверенностиФНССлужебныйКлиент.КонтекстДляОбработкиОшибкиРР -// -Процедура ОбработатьОшибкуВзаимодействияРР(Ошибка, Контекст) Экспорт - - Если Контекст.ОповещениеОЗавершении <> Неопределено Тогда - - Результат = РезультатОбработкиОшибкиВзаимодействияРР(); - Результат.Ошибка = Ошибка; - ВыполнитьОбработкуОповещения(Контекст.ОповещениеОЗавершении, Результат); - - Иначе - - ОткрытьФормуРасширенногоПредставленияОшибки(Контекст.ЗаголовокПредупреждения, Ошибка, Контекст.Форма); - - КонецЕсли; - -КонецПроцедуры - -Процедура ОткрытьФормуРасширенногоПредставленияОшибки(Заголовок, Знач Ошибка, Форма, Оповещение = Неопределено) Экспорт - - ПараметрыФормы = ПараметрыРасширенногоПредставленияОшибки(); - ПараметрыФормы.ЗаголовокПредупреждения = Заголовок; - ПараметрыФормы.ТекстОшибки = Ошибка.ТекстОшибки; - ПараметрыФормы.ОписаниеОшибки = СтрШаблон("%1: %2", Заголовок, Ошибка.ТекстОшибки); - ПараметрыФормы.ПоказатьТребуетсяПомощь = Истина; - ПараметрыФормы.ПоказатьИнструкцию = Истина; - - ОшибкаПоКлассификатору = ЭлектроннаяПодписьСлужебныйКлиент.ОшибкаПоКлассификатору(Ошибка.ТекстОшибки); - - Если ОшибкаПоКлассификатору = Неопределено Тогда - Ошибка.Вставить("Причина", ""); - Ошибка.Вставить("Решение", ""); - Иначе - Ошибка.Вставить("Причина", ОшибкаПоКлассификатору.Причина); - Ошибка.Вставить("Решение", ОшибкаПоКлассификатору.Решение); - КонецЕсли; - - ПараметрыФормы.ДополнительныеДанные.Вставить("ДополнительныеДанныеПроверок", Ошибка); - - ЭлектроннаяПодписьСлужебныйКлиент.ОткрытьФормуРасширенногоПредставленияОшибки(ПараметрыФормы, Форма, Оповещение); - -КонецПроцедуры - -Функция РезультатОбработкиОшибкиВзаимодействияРР() - Возврат Новый Структура("Ошибка"); +// Возвращаемое значение: +// Структура: +// * Организация - ОпределяемыйТип.Организация +// +Функция ПараметрыОтправителя() Экспорт + Возврат Новый Структура("Организация"); КонецФункции -Функция ПараметрыРасширенногоПредставленияОшибки() - Параметры = Новый Структура; - Параметры.Вставить("ЗаголовокПредупреждения", ""); - Параметры.Вставить("ТекстОшибкиКлиент", ""); - Параметры.Вставить("ДополнительныеДанные", Новый Структура); - Параметры.Вставить("ОписаниеОшибки", ""); - Параметры.Вставить("ПоказатьИнструкцию", Ложь); - Параметры.Вставить("ПоказатьПереходКНастройкеПрограмм", Ложь); - Параметры.Вставить("ПоказатьТребуетсяПомощь", Ложь); - Параметры.Вставить("ПоказатьУстановкуРасширения", Ложь); - Параметры.Вставить("ТекстОшибкиСервер", ""); - Параметры.Вставить("ТекстОшибки", ""); - Параметры.Вставить("ИнформацияДляПоддержки", ""); - Возврат Параметры; -КонецФункции - -Процедура ПослеОтправкиНаПодписанияДанныхВСервис(Результат, Контекст) Экспорт - - РезультатВыполнения = Новый Структура; - - Если Результат = Неопределено Тогда - РезультатВыполнения.Вставить("ОтменаПодписания"); - ВыполнитьОбработкуОповещения(Контекст.ОповещениеОПодписанииВСервисе, РезультатВыполнения); - Возврат; - КонецЕсли; - - Если Результат.Статус = "Ошибка" Тогда - ИнформацияОбОшибке = Результат.ИнформацияОбОшибке; - ОбработатьОшибку(Контекст, ОбработкаОшибок.КраткоеПредставлениеОшибки(ИнформацияОбОшибке), РезультатВыполнения); - Возврат; - КонецЕсли; - - НаборДанных = ПолучитьИзВременногоХранилища(Результат.АдресРезультата); - - Если ТипЗнч(НаборДанных) = Тип("Структура") Тогда - ОбработатьОшибку(Контекст, НаборДанных.ТекстОшибки, РезультатВыполнения); - Возврат; - КонецЕсли; - - ИдентификаторыДокументов = Новый Массив; - Для Каждого Данные Из НаборДанных Цикл - ИдентификаторыДокументов.Добавить(Данные.ИдентификаторДокумента); - КонецЦикла; - - Контекст.Вставить("НаборДанных", НаборДанных); - - ОписаниеОповещения = Новый ОписаниеОповещения("ПослеПолученияРезультатовПодписания", ЭтотОбъект, Контекст); - - ОткрытьФорму("Справочник.ПодписантыСервисаМобильнойПодписи.Форма.ПолучениеПодписей", - Новый Структура("ИдентификаторыДокументов, Подписант", ИдентификаторыДокументов, Контекст.КонтекстПодписания.Подписант), - Контекст.КонтекстПодписания.ПараметрыВыполнения.Форма,,,,ОписаниеОповещения); - -КонецПроцедуры - -Процедура ПослеПолученияРезультатовПодписания(Результат, Контекст) Экспорт - - РезультатВыполнения = Новый Структура; - - Если Результат = Неопределено Тогда - РезультатВыполнения.Вставить("ОтменаПодписания"); - ВыполнитьОбработкуОповещения(Контекст.ОповещениеОПодписанииВСервисе, РезультатВыполнения); - Возврат; - КонецЕсли; - - РезультатВыполнения.Вставить("ОперацияНачалась", Истина); - - Контекст.КонтекстПодписания.ПараметрыВыполнения.ОписаниеДанных.Вставить("ОперацияНачалась"); - Ошибка = Новый Массив; - - Если Контекст.КонтекстПодписания.ПараметрыВыполнения.ОписаниеДанных.Свойство("Данные") Тогда - - СвойстваПодписи = Результат.Получить(Контекст.НаборДанных[0].ИдентификаторДокумента); - Если СвойстваПодписи <> Неопределено Тогда - Если Не ЗначениеЗаполнено(СвойстваПодписи.ОшибкаПроверкиДополнительныхАтрибутов) Тогда - ДобавитьСвойстваПодписиВОписаниеДанных( - Контекст.КонтекстПодписания.ПараметрыВыполнения.ОписаниеДанных, СвойстваПодписи, Контекст, - РезультатВыполнения); - РезультатВыполнения.Вставить("ЕстьОбработанныеЭлементыДанных"); - ИначеЕсли ЗначениеЗаполнено(СвойстваПодписи.ОшибкаПроверкиДополнительныхАтрибутов) Тогда - Ошибка.Добавить(СвойстваПодписи.ОшибкаПроверкиДополнительныхАтрибутов); - КонецЕсли; - КонецЕсли; - - Иначе - Индекс = 0; - Для Каждого Элемент Из Контекст.НаборДанных Цикл - СвойстваПодписи = Результат.Получить(Элемент.ИдентификаторДокумента); - Если СвойстваПодписи <> Неопределено Тогда - Если Не ЗначениеЗаполнено(СвойстваПодписи.ОшибкаПроверкиДополнительныхАтрибутов) Тогда - ДобавитьСвойстваПодписиВОписаниеДанных( - Контекст.КонтекстПодписания.ПараметрыВыполнения.ОписаниеДанных.НаборДанных[Индекс], - СвойстваПодписи, Контекст, РезультатВыполнения); - РезультатВыполнения.Вставить("ЕстьОбработанныеЭлементыДанных"); - Индекс = Индекс + 1; - ИначеЕсли ЗначениеЗаполнено(СвойстваПодписи.ОшибкаПроверкиДополнительныхАтрибутов) Тогда - Если Ошибка.Найти(СвойстваПодписи.ОшибкаПроверкиДополнительныхАтрибутов) = Неопределено Тогда - Ошибка.Добавить(СвойстваПодписи.ОшибкаПроверкиДополнительныхАтрибутов); - КонецЕсли; - КонецЕсли; - КонецЕсли; - КонецЦикла; - КонецЕсли; - - Если Ошибка.Количество() > 0 Тогда - РезультатВыполнения.Вставить("Ошибка", СтрСоединить(Ошибка, "Символы.ПС")); - КонецЕсли; - - ВыполнитьОбработкуОповещения(Контекст.ОповещениеОПодписанииВСервисе, РезультатВыполнения); - -КонецПроцедуры - -Процедура ДобавитьСвойстваПодписиВОписаниеДанных(ЭлементДанных, СвойстваПодписи, Контекст, РезультатВыполнения) - - ЭлементДанных.Вставить("СвойстваПодписи", СвойстваПодписи); - - Если ЭлементДанных.Свойство("Объект") И ТипЗнч(ЭлементДанных.Объект) <> Тип("ОписаниеОповещения") Тогда - - ВерсияОбъекта = Неопределено; - ЭлементДанных.Свойство("ВерсияОбъекта", ВерсияОбъекта); - - // СтандартныеПодсистемы.МашиночитаемыеДоверенности - - Если ЗначениеЗаполнено(Контекст.КонтекстПодписания.ПараметрыВыполнения.ОписаниеДанных.ВыбраннаяДоверенность) - И ОбщегоНазначенияКлиент.ПодсистемаСуществует("СтандартныеПодсистемы.МашиночитаемыеДоверенности") Тогда - - МодульМашиночитаемыеДоверенностиФНССлужебныйКлиент = ОбщегоНазначенияКлиент.ОбщийМодуль( - "МашиночитаемыеДоверенностиФНССлужебныйКлиент"); - РезультатПроверкиПодписиПоМЧД = МодульМашиночитаемыеДоверенностиФНССлужебныйКлиент.РезультатПроверкиПодписиПоМЧД( - Контекст.КонтекстПодписания.ПараметрыВыполнения.ОписаниеДанных.ВыбраннаяДоверенность, ЭлементДанных.Объект, - СвойстваПодписи.Сертификат, Неопределено, Неопределено); - Если ЗначениеЗаполнено(РезультатПроверкиПодписиПоМЧД) Тогда - СвойстваПодписи.Вставить("РезультатПроверкиПодписиПоМЧД", РезультатПроверкиПодписиПоМЧД); - КонецЕсли; - - КонецЕсли; - - // Конец СтандартныеПодсистемы.МашиночитаемыеДоверенности - - ПредставлениеОшибки = ЭлектроннаяПодписьСлужебныйВызовСервера.ДобавитьПодпись( - ЭлементДанных.Объект, СвойстваПодписи, Контекст.КонтекстПодписания.ИдентификаторФормы, ВерсияОбъекта); - Если ЗначениеЗаполнено(ПредставлениеОшибки) Тогда - ЭлементДанных.Удалить("СвойстваПодписи"); - ОбработатьОшибку(Контекст, ПредставлениеОшибки, РезультатВыполнения); - Возврат; - КонецЕсли; - - КонецЕсли; - -КонецПроцедуры - -Процедура ОбработатьОшибку(Контекст, Ошибка, РезультатВыполнения) - РезультатВыполнения.Вставить("Ошибка", Ошибка); - ВыполнитьОбработкуОповещения(Контекст.ОповещениеОПодписанииВСервисе, РезультатВыполнения); -КонецПроцедуры - #КонецОбласти + diff --git a/SSL/src/CommonModules/СервисМобильнойПодписиКлиентСервер/Module.bsl b/SSL/src/CommonModules/СервисМобильнойПодписиКлиентСервер/Module.bsl index 3b94535f9..8e01fb0e5 100644 --- a/SSL/src/CommonModules/СервисМобильнойПодписиКлиентСервер/Module.bsl +++ b/SSL/src/CommonModules/СервисМобильнойПодписиКлиентСервер/Module.bsl @@ -1,5 +1,5 @@ /////////////////////////////////////////////////////////////////////////////////////////////////////// -// Copyright (c) 2024, ООО 1С-Софт +// Copyright (c) 2025, ООО 1С-Софт // Все права защищены. Эта программа и сопроводительные материалы предоставляются // в соответствии с условиями лицензии Attribution 4.0 International (CC BY 4.0) // Текст лицензии доступен по ссылке: @@ -12,8 +12,11 @@ // // Возвращаемое значение: // Структура: +// * Ссылка - СправочникСсылка.ПодписантыСервисаМобильнойПодписи // * ИНН - Строка - не заполнен для ИП // * ИННФЛ - Строка - ИНН физического лица (индивидуального предпринимателя) +// * НомерЗаписиОбАккредитации - Строка - номер записи об аккредитации филиала иностранной организации +// * СНИЛС - Строка - обязателен для отправки в Госключ // * НомерТелефона - Строка - номер мобильного телефона, начинается с +7. // * Имя - Строка - (необязательный) // * Отчество - Строка - (необязательный) @@ -23,11 +26,18 @@ // * ОГРН - Строка - (необязательный) // * НаименованиеОрганизации - Строка - (необязательный) если не заполнена Организация // * ФизическоеЛицо - ОпределяемыйТип.ФизическоеЛицо - (необязательный) +// * ВидПодписанта - ПеречислениеСсылка.ВидыПодписантовМобильногоСервиса +// * МояПодпись - Булево +// * ГосключУНЭП - Булево +// * ГосключУКЭП - Булево // Функция ПараметрыПодписанта() Экспорт ПараметрыПодписанта = Новый Структура; + ПараметрыПодписанта.Вставить("Ссылка"); + ПараметрыПодписанта.Вставить("ВидПодписанта"); ПараметрыПодписанта.Вставить("ОГРН"); + ПараметрыПодписанта.Вставить("СНИЛС"); ПараметрыПодписанта.Вставить("ИНН", ""); ПараметрыПодписанта.Вставить("ИННФЛ"); ПараметрыПодписанта.Вставить("Имя"); @@ -39,6 +49,10 @@ ПараметрыПодписанта.Вставить("НаименованиеОрганизации"); ПараметрыПодписанта.Вставить("ФизическоеЛицо"); ПараметрыПодписанта.Вставить("Наименование"); + ПараметрыПодписанта.Вставить("ГосключУКЭП"); + ПараметрыПодписанта.Вставить("ГосключУНЭП"); + ПараметрыПодписанта.Вставить("МояПодпись"); + ПараметрыПодписанта.Вставить("НомерЗаписиОбАккредитации"); Возврат ПараметрыПодписанта; @@ -46,8 +60,36 @@ #КонецОбласти +#Область СлужебныйПрограммныйИнтерфейс + +Функция ПараметрыПодписания() Экспорт + + ПараметрыПодписания = Новый Структура; + ПараметрыПодписания.Вставить("ТипПодписи"); + ПараметрыПодписания.Вставить("ИдентификаторФормы"); + ПараметрыПодписания.Вставить("Доверенность"); + ПараметрыПодписания.Вставить("ПакетнаяОтправкаНаПодписание"); + ПараметрыПодписания.Вставить("ВидМобильнойПодписи"); + ПараметрыПодписания.Вставить("НастройкаОтправки"); + ПараметрыПодписания.Вставить("НаборДанныхПроверен"); + ПараметрыПодписания.Вставить("Атрибуты"); + ПараметрыПодписания.Вставить("ЗапросНаОтправкуДокумента"); + ПараметрыПодписания.Вставить("Комментарий"); + + Возврат ПараметрыПодписания; + +КонецФункции + +#КонецОбласти + #Область СлужебныеПроцедурыИФункции +Функция ИмяСерверногоОповещения() Экспорт + + Возврат "СтандартныеПодсистемы.СервисМобильнойПодписи"; + +КонецФункции + Функция ТолькоЦифры(Строка) Экспорт ДлинаСтроки = СтрДлина(Строка); @@ -66,4 +108,87 @@ КонецФункции +Функция РеквизитыОрганизации(Организация = Неопределено) Экспорт + РеквизитыОрганизации = Новый Структура; + РеквизитыОрганизации.Вставить("Организация", Организация); + РеквизитыОрганизации.Вставить("ИНН"); + РеквизитыОрганизации.Вставить("НаименованиеОрганизации"); + РеквизитыОрганизации.Вставить("ОГРН"); + РеквизитыОрганизации.Вставить("КодОКАТО"); + РеквизитыОрганизации.Вставить("ФизическиеЛица"); + Возврат РеквизитыОрганизации; +КонецФункции + +Функция ПроверкаНабораДанных(НаборДанных, Параметры) Экспорт + + Дубли = Новый Соответствие; + Госключ = Параметры.НастройкаОтправки.Госключ; + + Если Госключ Тогда + РазрешенныеРасширения = Новый Соответствие; + РазрешенныеРасширения.Вставить("pdf", Истина); + РазрешенныеРасширения.Вставить("tif", Истина); + РазрешенныеРасширения.Вставить("tiff", Истина); + РазрешенныеРасширения.Вставить("jpg", Истина); + РазрешенныеРасширения.Вставить("jpeg", Истина); + РазрешенныеРасширения.Вставить("xml", Истина); + РазрешенныеРасширения.Вставить("txt", Истина); + КонецЕсли; + + КоличествоДляОтправки = 0; + + Для Каждого Элемент Из НаборДанных Цикл + + Если Элемент.Свойство("ИдентификаторДокумента") И ЗначениеЗаполнено(Элемент.ИдентификаторДокумента) Тогда + Продолжить; + КонецЕсли; + + КоличествоДляОтправки = КоличествоДляОтправки + 1; + + Если Госключ Тогда + + Файл = Новый Файл(Элемент.Представление); + + Расширение = Прав(Файл.Расширение, СтрДлина(Файл.Расширение) -1); + Если РазрешенныеРасширения.Получить(Расширение) = Неопределено Тогда + Возврат СтроковыеФункцииКлиентСервер.ПодставитьПараметрыВСтроку( + НСтр("ru='Отправка файла с расширением ""%1"" в Госключ недоступна. Доступные расширения: ""pdf"", ""tif"", ""tiff"", ""jpg"", ""jpeg"", ""xml"", txt"".'"), + Расширение); + КонецЕсли; + + КонецЕсли; + + Если Дубли.Получить(Элемент.Представление) = Неопределено Тогда + Дубли.Вставить(Элемент.Представление, Истина); + Иначе + Возврат СтроковыеФункцииКлиентСервер.ПодставитьПараметрыВСтроку( + НСтр("ru='В пакете на подписание не должно быть одинаковых имен файлов: %1.'"), + Элемент.Представление); + КонецЕсли; + + КонецЦикла; + + Если Госключ И КоличествоДляОтправки > 20 Тогда + Возврат НСтр("ru='В пакете на подписание для отправки в Госключ должно быть не более 20 файлов.'"); + КонецЕсли; + + Возврат Истина; + +КонецФункции + +Функция НовоеОписаниеОшибки(ЗаголовокОшибки, Знач ТекстОшибки) Экспорт + + Если Не СтрЗаканчиваетсяНа(ТекстОшибки, ".") Тогда + ТекстОшибки = ТекстОшибки + "."; + КонецЕсли; + Результат = Новый Структура; + Результат.Вставить("ЗаголовокОшибки", ЗаголовокОшибки); + Результат.Вставить("ТекстОшибки", ТекстОшибки); + Результат.Вставить("ИдентификаторЗапроса", ""); + Результат.Вставить("ДополнительныеФайлы", Новый Массив); + + Возврат Результат; + +КонецФункции + #КонецОбласти diff --git a/SSL/src/CommonModules/СервисМобильнойПодписиПереопределяемый/Module.bsl b/SSL/src/CommonModules/СервисМобильнойПодписиПереопределяемый/Module.bsl index c07d0ef84..ee5087c41 100644 --- a/SSL/src/CommonModules/СервисМобильнойПодписиПереопределяемый/Module.bsl +++ b/SSL/src/CommonModules/СервисМобильнойПодписиПереопределяемый/Module.bsl @@ -1,5 +1,5 @@ /////////////////////////////////////////////////////////////////////////////////////////////////////// -// Copyright (c) 2024, ООО 1С-Софт +// Copyright (c) 2025, ООО 1С-Софт // Все права защищены. Эта программа и сопроводительные материалы предоставляются // в соответствии с условиями лицензии Attribution 4.0 International (CC BY 4.0) // Текст лицензии доступен по ссылке: @@ -15,6 +15,8 @@ // * Организация - ОпределяемыйТип.Организация // * ИНН - Строка // * ОГРН - Строка +// * НаименованиеОрганизации - Строка +// * КодОКАТО - Строка - может быть заполнен кодом региона в формате 77000000000 (11 символов) // * ФизическиеЛица - Массив из см. ПриЗаполненииРеквизитовФизическогоЛица.РеквизитыФизическогоЛица - руководитель(и). // СтандартнаяОбработка - Булево - если Истина, реквизиты будут заполнены из подсистемы Организации. // diff --git a/SSL/src/CommonModules/СервисМобильнойПодписиСлужебный/Module.bsl b/SSL/src/CommonModules/СервисМобильнойПодписиСлужебный/Module.bsl index b04d48c33..4cb1b464d 100644 --- a/SSL/src/CommonModules/СервисМобильнойПодписиСлужебный/Module.bsl +++ b/SSL/src/CommonModules/СервисМобильнойПодписиСлужебный/Module.bsl @@ -1,5 +1,5 @@ /////////////////////////////////////////////////////////////////////////////////////////////////////// -// Copyright (c) 2024, ООО 1С-Софт +// Copyright (c) 2025, ООО 1С-Софт // Все права защищены. Эта программа и сопроводительные материалы предоставляются // в соответствии с условиями лицензии Attribution 4.0 International (CC BY 4.0) // Текст лицензии доступен по ссылке: @@ -14,7 +14,20 @@ // Строка // Функция ЗаголовокКомандыОтправитьНаПодписание() Экспорт - Возврат НСтр("ru='Отправить в сервис мобильной подписи ФНС'") + "..."; + + ИспользоватьГосключ = ПолучитьФункциональнуюОпцию("ИспользоватьГосключ"); + ИспользоватьСервисМобильнойПодписи = ПолучитьФункциональнуюОпцию("ИспользоватьСервисМобильнойПодписи"); + + Если ИспользоватьГосключ И Не ИспользоватьСервисМобильнойПодписи Тогда + Возврат НСтр("ru='Отправить в Госключ'") + "..."; + КонецЕсли; + + Если Не ИспользоватьГосключ И ИспользоватьСервисМобильнойПодписи Тогда + Возврат НСтр("ru='Отправить в Моя подпись(ФНС)'") + "..."; + КонецЕсли; + + Возврат НСтр("ru='Отправить в мобильное приложение'") + "..."; + КонецФункции // Добавляет в список способов подписания отправку в сервис мобильной подписи. @@ -23,63 +36,33 @@ // СписокВыбора - СписокЗначений // Процедура ПриПолученииТиповПодписания(СписокВыбора) Экспорт - Если СервисМобильнойПодписи.ИспользоватьСервисМобильнойПодписи() Тогда + + ИспользоватьСервисМобильнойПодписи = СервисМобильнойПодписи.ИспользоватьСервисМобильнойПодписи(); + ИспользоватьГосключ = СервисМобильнойПодписи.ИспользоватьГосключ(); + + Если ИспользоватьСервисМобильнойПодписи И Не ИспользоватьГосключ Тогда + Если ОбщегоНазначения.ЭтоМобильныйКлиент() Тогда + СписокВыбора.Добавить("ОтправитьНаПодписание", + НСтр("ru='В ""Моя подпись"" (ФНС)'")); + Иначе + СписокВыбора.Добавить("ОтправитьНаПодписание", + НСтр("ru='В мобильном приложении ""Моя подпись"" (ФНС)'")); + КонецЕсли; + ИначеЕсли Не ИспользоватьСервисМобильнойПодписи И ИспользоватьГосключ Тогда + Если ОбщегоНазначения.ЭтоМобильныйКлиент() Тогда + СписокВыбора.Добавить("ОтправитьНаПодписание", + НСтр("ru='В ""Госключе""'")); + Иначе + СписокВыбора.Добавить("ОтправитьНаПодписание", + НСтр("ru='В мобильном приложении ""Госключ""'")); + КонецЕсли; + ИначеЕсли ИспользоватьСервисМобильнойПодписи И ИспользоватьГосключ Тогда СписокВыбора.Добавить("ОтправитьНаПодписание", - НСтр("ru='В мобильном приложении ""Моя подпись"" от ФНС'")); - КонецЕсли; -КонецПроцедуры - -// Используется для инициализации параметра сеанса в рамках механизмов БСП, -// см. ИнтеграцияПодсистемБСП.ПриДобавленииОбработчиковУстановкиПараметровСеанса. -// -Процедура ПриДобавленииОбработчиковУстановкиПараметровСеанса(Обработчики) Экспорт - - Обработчики.Вставить("ПараметрыАвторизацииВСервисеМобильнойПодписи", "СервисМобильнойПодписиСлужебный.УстановитьПараметрСеансаПараметрыАвторизацииВСервисеМобильнойПодписи"); - -КонецПроцедуры - -// Используется для инициализации параметра сеанса в рамках механизмов БСП -// См. ОбщегоНазначенияПереопределяемый.ПриДобавленииОбработчиковУстановкиПараметровСеанса. -// -Процедура УстановитьПараметрСеансаПараметрыАвторизацииВСервисеМобильнойПодписи( - ИмяПараметра = Неопределено, - УстановленныеПараметры = Неопределено) Экспорт - - Если ИмяПараметра = "ПараметрыАвторизацииВСервисеМобильнойПодписи" Тогда - ПараметрыРезультатаАвторизации = ПараметрыРезультатаАвторизацииВСервисеМобильнойПодписи(); - ПараметрыСеанса.ПараметрыАвторизацииВСервисеМобильнойПодписи = Новый ФиксированнаяСтруктура(ПараметрыРезультатаАвторизации); - УстановленныеПараметры.Добавить("ПараметрыАвторизацииВСервисеМобильнойПодписи"); + НСтр("ru='В мобильном приложении'")); КонецЕсли; КонецПроцедуры -// См. УправлениеДоступомПереопределяемый.ПриЗаполненииСписковСОграничениемДоступа. -Процедура ПриЗаполненииСписковСОграничениемДоступа(Списки) Экспорт - - Списки.Вставить(Метаданные.Справочники.ПодписантыСервисаМобильнойПодписи, Истина); - Списки.Вставить(Метаданные.РегистрыСведений.СервисМобильнойПодписиСтатусы, Истина); - -КонецПроцедуры - -// См. РегламентныеЗаданияПереопределяемый.ПриОпределенииНастроекРегламентныхЗаданий -Процедура ПриОпределенииНастроекРегламентныхЗаданий(Настройки) Экспорт - - Зависимость = Настройки.Добавить(); - Зависимость.РегламентноеЗадание = Метаданные.РегламентныеЗадания.ПолучениеРезультатовИзСервисаМобильнойПодписи; - Зависимость.ДоступноВМоделиСервиса = Истина; - Зависимость.ДоступноВАвтономномРабочемМесте = Истина; - Зависимость.ОбращаетсяКВнешнимРесурсам = Истина; - Зависимость.ФункциональнаяОпция = Метаданные.ФункциональныеОпции.ИспользоватьСервисМобильнойПодписи; - -КонецПроцедуры - -// См. ОчередьЗаданийПереопределяемый.ПриОпределенииПсевдонимовОбработчиков. -Процедура ПриОпределенииПсевдонимовОбработчиков(СоответствиеИменПсевдонимам) Экспорт - - СоответствиеИменПсевдонимам.Вставить(Метаданные.РегламентныеЗадания.ПолучениеРезультатовИзСервисаМобильнойПодписи.ИмяМетода); - -КонецПроцедуры - // Добавить ожидаемые подписи объекта к списку подписей объекта. // // Параметры: @@ -131,7 +114,7 @@ СвойстваПодписи.Комментарий = Выборка.Комментарий; Ошибка = Выборка.Результат.Получить(); Если ТипЗнч(Ошибка) = Тип("Структура") Тогда - СвойстваПодписи.ОшибкаПроверкиДополнительныхАтрибутов = Ошибка.ТекстОшибки; + СвойстваПодписи.ОшибкаПроверкиДополнительныхАтрибутов = ТекстОшибкиОжидаемойПодписи(Ошибка); КонецЕсли; КонецЕсли; Если ЗначениеЗаполнено(Выборка.Доверенность) И ОбщегоНазначения.ПодсистемаСуществует( @@ -268,56 +251,59 @@ Запрос = Новый Запрос; Запрос.Текст = "ВЫБРАТЬ РАЗРЕШЕННЫЕ - | СервисМобильнойПодписиСтатусы.ИдентификаторДокумента КАК ИдентификаторДокумента, - | СервисМобильнойПодписиСтатусы.ИдентификаторВСервисе КАК ИдентификаторВСервисе, - | СервисМобильнойПодписиСтатусы.Подписант КАК Подписант, - | СервисМобильнойПодписиСтатусы.Отправитель КАК Отправитель, - | СервисМобильнойПодписиСтатусы.ДатаОтправки КАК ДатаОтправки, - | СервисМобильнойПодписиСтатусы.НаименованиеДокумента КАК НаименованиеДокумента, - | СервисМобильнойПодписиСтатусы.ПодписанныйОбъект КАК ПодписанныйОбъект, - | СервисМобильнойПодписиСтатусы.Статус КАК Статус - |ПОМЕСТИТЬ ДокументыНаПодписании - |ИЗ - | РегистрСведений.СервисМобильнойПодписиСтатусы КАК СервисМобильнойПодписиСтатусы - |ГДЕ - | СервисМобильнойПодписиСтатусы.ИдентификаторДокумента В(&ИдентификаторыДокументов) - | И СервисМобильнойПодписиСтатусы.Операция = ЗНАЧЕНИЕ(Перечисление.СервисМобильнойПодписиОперации.Подписание) - |; - | - |//////////////////////////////////////////////////////////////////////////////// - |ВЫБРАТЬ РАЗРЕШЕННЫЕ РАЗЛИЧНЫЕ - | ДокументыНаПодписании.ИдентификаторВСервисе КАК ИдентификаторВСервисе - |ПОМЕСТИТЬ ДругиеПодписиВПакете - |ИЗ - | ДокументыНаПодписании КАК ДокументыНаПодписании - | ВНУТРЕННЕЕ СОЕДИНЕНИЕ РегистрСведений.СервисМобильнойПодписиСтатусы КАК СервисМобильнойПодписиСтатусы - | ПО ДокументыНаПодписании.ИдентификаторВСервисе = СервисМобильнойПодписиСтатусы.ИдентификаторВСервисе - |ГДЕ - | НЕ СервисМобильнойПодписиСтатусы.ИдентификаторДокумента В (&ИдентификаторыДокументов) - |; - | - |//////////////////////////////////////////////////////////////////////////////// - |ВЫБРАТЬ - | СервисМобильнойПодписиСтатусы.ИдентификаторДокумента КАК ИдентификаторДокумента, - | СервисМобильнойПодписиСтатусы.ИдентификаторВСервисе КАК ИдентификаторВСервисе, - | СервисМобильнойПодписиСтатусы.Подписант КАК Подписант, - | СервисМобильнойПодписиСтатусы.Отправитель КАК Отправитель, - | СервисМобильнойПодписиСтатусы.ДатаОтправки КАК ДатаОтправки, - | СервисМобильнойПодписиСтатусы.НаименованиеДокумента КАК НаименованиеДокумента, - | СервисМобильнойПодписиСтатусы.ПодписанныйОбъект КАК ПодписанныйОбъект, - | ВЫБОР - | КОГДА ДругиеПодписиВПакете.ИдентификаторВСервисе ЕСТЬ NULL - | ТОГДА ЛОЖЬ - | ИНАЧЕ ИСТИНА - | КОНЕЦ КАК ЕстьДругиеПодписиВПакете, - | ИСТИНА КАК ДетальнаяЗапись, - | СервисМобильнойПодписиСтатусы.Статус КАК Статус - |ИЗ - | ДокументыНаПодписании КАК СервисМобильнойПодписиСтатусы - | ЛЕВОЕ СОЕДИНЕНИЕ ДругиеПодписиВПакете КАК ДругиеПодписиВПакете - | ПО СервисМобильнойПодписиСтатусы.ИдентификаторВСервисе = ДругиеПодписиВПакете.ИдентификаторВСервисе - |ИТОГИ ПО - | ИдентификаторВСервисе"; + | СервисМобильнойПодписиСтатусы.ИдентификаторДокумента КАК ИдентификаторДокумента, + | СервисМобильнойПодписиСтатусы.ИдентификаторВСервисе КАК ИдентификаторВСервисе, + | СервисМобильнойПодписиСтатусы.Подписант КАК Подписант, + | СервисМобильнойПодписиСтатусы.Отправитель КАК Отправитель, + | СервисМобильнойПодписиСтатусы.ДатаОтправки КАК ДатаОтправки, + | СервисМобильнойПодписиСтатусы.НаименованиеДокумента КАК НаименованиеДокумента, + | СервисМобильнойПодписиСтатусы.ПодписанныйОбъект КАК ПодписанныйОбъект, + | СервисМобильнойПодписиСтатусы.Статус КАК Статус, + | СервисМобильнойПодписиСтатусы.НастройкаОтправкиВГосключ + |ПОМЕСТИТЬ ДокументыНаПодписании + |ИЗ + | РегистрСведений.СервисМобильнойПодписиСтатусы КАК СервисМобильнойПодписиСтатусы + |ГДЕ + | СервисМобильнойПодписиСтатусы.ИдентификаторДокумента В (&ИдентификаторыДокументов) + | И СервисМобильнойПодписиСтатусы.Операция = ЗНАЧЕНИЕ(Перечисление.СервисМобильнойПодписиОперации.Подписание) + |; + | + |//////////////////////////////////////////////////////////////////////////////// + |ВЫБРАТЬ РАЗРЕШЕННЫЕ РАЗЛИЧНЫЕ + | ДокументыНаПодписании.ИдентификаторВСервисе КАК ИдентификаторВСервисе + |ПОМЕСТИТЬ ДругиеПодписиВПакете + |ИЗ + | ДокументыНаПодписании КАК ДокументыНаПодписании + | ВНУТРЕННЕЕ СОЕДИНЕНИЕ РегистрСведений.СервисМобильнойПодписиСтатусы КАК СервисМобильнойПодписиСтатусы + | ПО ДокументыНаПодписании.ИдентификаторВСервисе = СервисМобильнойПодписиСтатусы.ИдентификаторВСервисе + |ГДЕ + | НЕ СервисМобильнойПодписиСтатусы.ИдентификаторДокумента В (&ИдентификаторыДокументов) + |; + | + |//////////////////////////////////////////////////////////////////////////////// + |ВЫБРАТЬ + | СервисМобильнойПодписиСтатусы.ИдентификаторДокумента КАК ИдентификаторДокумента, + | СервисМобильнойПодписиСтатусы.ИдентификаторВСервисе КАК ИдентификаторВСервисе, + | СервисМобильнойПодписиСтатусы.Подписант КАК Подписант, + | СервисМобильнойПодписиСтатусы.Отправитель КАК Отправитель, + | СервисМобильнойПодписиСтатусы.ДатаОтправки КАК ДатаОтправки, + | СервисМобильнойПодписиСтатусы.НаименованиеДокумента КАК НаименованиеДокумента, + | СервисМобильнойПодписиСтатусы.ПодписанныйОбъект КАК ПодписанныйОбъект, + | ВЫБОР + | КОГДА ДругиеПодписиВПакете.ИдентификаторВСервисе ЕСТЬ NULL + | ТОГДА ЛОЖЬ + | ИНАЧЕ ИСТИНА + | КОНЕЦ КАК ЕстьДругиеПодписиВПакете, + | ИСТИНА КАК ДетальнаяЗапись, + | СервисМобильнойПодписиСтатусы.Статус КАК Статус, + | СервисМобильнойПодписиСтатусы.НастройкаОтправкиВГосключ + |ИЗ + | ДокументыНаПодписании КАК СервисМобильнойПодписиСтатусы + | ЛЕВОЕ СОЕДИНЕНИЕ ДругиеПодписиВПакете КАК ДругиеПодписиВПакете + | ПО СервисМобильнойПодписиСтатусы.ИдентификаторВСервисе = ДругиеПодписиВПакете.ИдентификаторВСервисе + |ИТОГИ + |ПО + | ИдентификаторВСервисе"; Запрос.УстановитьПараметр("ИдентификаторыДокументов", ИдентификаторыДокументов); УдалитьВСервисе = Новый Массив; @@ -354,12 +340,23 @@ ПодписанныйОбъект = ВыборкаДетальныеЗаписи.ПодписанныйОбъект; - СообщениеЖурналаРегистрации = СтроковыеФункцииКлиентСервер.ПодставитьПараметрыВСтроку( - НСтр("ru = 'Файл %1, Отправитель %2, ДатаОтправки %3, Подписант %4'"), - ВыборкаДетальныеЗаписи.НаименованиеДокумента, - ВыборкаДетальныеЗаписи.Отправитель, - ВыборкаДетальныеЗаписи.ДатаОтправки, - ВыборкаДетальныеЗаписи.Подписант); + Если ПриПодписании = Ложь Тогда + СообщениеЖурналаРегистрации = СтроковыеФункцииКлиентСервер.ПодставитьПараметрыВСтроку( + НСтр("ru = 'Файл %1, Отправитель %2, ДатаОтправки %3, Подписант %4, Идентификатор в сервисе %5 - отмена при подписании'"), + ВыборкаДетальныеЗаписи.НаименованиеДокумента, + ВыборкаДетальныеЗаписи.Отправитель, + ВыборкаДетальныеЗаписи.ДатаОтправки, + ВыборкаДетальныеЗаписи.Подписант, + ВыборкаДетальныеЗаписи.ИдентификаторВСервисе); + Иначе + СообщениеЖурналаРегистрации = СтроковыеФункцииКлиентСервер.ПодставитьПараметрыВСтроку( + НСтр("ru = 'Файл %1, Отправитель %2, ДатаОтправки %3, Подписант %4, Идентификатор в сервисе %5'"), + ВыборкаДетальныеЗаписи.НаименованиеДокумента, + ВыборкаДетальныеЗаписи.Отправитель, + ВыборкаДетальныеЗаписи.ДатаОтправки, + ВыборкаДетальныеЗаписи.Подписант, + ВыборкаДетальныеЗаписи.ИдентификаторВСервисе); + КонецЕсли; СтандартнаяОбработка = Истина; УдалитьПодпись = Истина; @@ -402,7 +399,8 @@ Если УдалитьПодпись Тогда Если ВыборкаДетальныеЗаписи.Статус = Перечисления.СервисМобильнойПодписиСтатусы.Успешно - Или ВыборкаДетальныеЗаписи.Статус = Перечисления.СервисМобильнойПодписиСтатусы.Отклонено Тогда + Или ВыборкаДетальныеЗаписи.Статус = Перечисления.СервисМобильнойПодписиСтатусы.Отклонено + Или ЗначениеЗаполнено(ВыборкаДетальныеЗаписи.НастройкаОтправкиВГосключ) Тогда УдалятьВСервисе = Ложь; КонецЕсли; УдалитьОжидаемуюПодпись(ВыборкаДетальныеЗаписи.ИдентификаторДокумента, СообщениеЖурналаРегистрации, ПодписанныйОбъект, ПриПодписании); @@ -469,12 +467,6 @@ // Процедура ПодписантПриСозданииНаСервере(Форма, Подписант) Экспорт - Если Форма.ИмяФормы <> "Справочник.ПодписантыСервисаМобильнойПодписи.Форма.ОтправитьНаПодписание" Тогда - Форма.Элементы.ПодписантРасширеннаяПодсказка.Заголовок = НСтр("ru = 'Документы будут отправлены подписанту в приложение ""Моя подпись"" от ФНС, необходимо будет дождаться получения результатов подписания'"); - Иначе - Форма.Элементы.ПодписантРасширеннаяПодсказка.Заголовок = НСтр("ru = 'Документы будут отправлены подписанту в приложение ""Моя подпись"" от ФНС'"); - КонецЕсли; - Если ЗначениеЗаполнено(Подписант) Тогда Если ТипЗнч(Подписант) = Тип("Структура") Тогда ПараметрыПодписанта = СервисМобильнойПодписиКлиентСервер.ПараметрыПодписанта(); @@ -499,6 +491,138 @@ КонецЕсли; КонецЕсли; + + ПодписантПриИзмененииНаСервере(Форма); + +КонецПроцедуры + +Процедура ПодписантПриИзмененииНаСервере(Форма) Экспорт + + Если Не ЗначениеЗаполнено(Форма.Подписант) Тогда + Возврат; + КонецЕсли; + + СписокВыбора = Форма.Элементы.ВидМобильнойПодписи.СписокВыбора; + СписокВыбора.Очистить(); + + РеквизитыПодписанта = ОбщегоНазначения.ЗначенияРеквизитовОбъекта(Форма.Подписант, "МояПодпись, ГосключУНЭП, ГосключУКЭП"); + Если РеквизитыПодписанта.МояПодпись Тогда + СписокВыбора.Добавить(Перечисления.ВидыМобильныхПодписей.МояПодпись); + КонецЕсли; + Если РеквизитыПодписанта.ГосключУНЭП + И Форма.ПроверятьСертификат <> ЭлектроннаяПодписьСлужебныйКлиентСервер.ТолькоКвалифицированные() Тогда + СписокВыбора.Добавить(Перечисления.ВидыМобильныхПодписей.ГосключУНЭП); + КонецЕсли; + Если РеквизитыПодписанта.ГосключУКЭП Тогда + СписокВыбора.Добавить(Перечисления.ВидыМобильныхПодписей.ГосключУКЭП); + КонецЕсли; + Форма.ВидМобильнойПодписи = Неопределено; + + Количество = СписокВыбора.Количество(); + Если Количество > 0 Тогда + НастройкаПодписанта = НастройкаПодписанта(Форма); + Если НастройкаПодписанта <> Неопределено + И СписокВыбора.НайтиПоЗначению(НастройкаПодписанта.ВидМобильнойПодписи) <> Неопределено Тогда + Форма.ВидМобильнойПодписи = НастройкаПодписанта.ВидМобильнойПодписи; + Иначе + Форма.ВидМобильнойПодписи = СписокВыбора[0].Значение; + КонецЕсли; + Иначе + НастройкаПодписанта = Неопределено; + КонецЕсли; + + Форма.Элементы.ВидМобильнойПодписи.Видимость = Количество > 1; + + ЗаполнитьНастройкуОтправки(Форма); + + Если НастройкаПодписанта <> Неопределено И Форма.ВидМобильнойПодписи = НастройкаПодписанта.ВидМобильнойПодписи + И Форма.Элементы.НастройкаОтправки.СписокВыбора.НайтиПоЗначению(НастройкаПодписанта.НастройкаОтправки) <> Неопределено Тогда + Форма.НастройкаОтправки = НастройкаПодписанта.НастройкаОтправки; + КонецЕсли; + +КонецПроцедуры + +Процедура ДобавитьНастройкуПодписанта(Форма, НастройкиДляСохранения, Подписант) Экспорт + + Если Не ЗначениеЗаполнено(Подписант) Тогда + Возврат; + КонецЕсли; + НастройкаПодписанта = ОбщегоНазначения.ХранилищеОбщихНастроекЗагрузить( + Подписант, "ПодписаниеДанных_НастройкаПодписанта", Неопределено); + Если НастройкаПодписанта = Неопределено Тогда + НастройкаПодписанта = Новый Соответствие; + КонецЕсли; + НастройкаПодписанта.Вставить(КлючНастроекПодписанта(Форма.ПараметрыОтправителя), + Новый Структура("ВидМобильнойПодписи, НастройкаОтправки", Форма.ВидМобильнойПодписи, Форма.НастройкаОтправки)); + НастройкиДляСохранения.Добавить(Новый Структура("Объект, Настройка, Значение", Подписант, + "ПодписаниеДанных_НастройкаПодписанта", НастройкаПодписанта)); + +КонецПроцедуры + +Процедура ЗаполнитьНастройкуОтправки(Форма) Экспорт + + Если Форма.ВидМобильнойПодписи = Перечисления.ВидыМобильныхПодписей.ГосключУНЭП + Или Форма.ВидМобильнойПодписи = Перечисления.ВидыМобильныхПодписей.ГосключУКЭП Тогда + + СписокВыбора = Форма.Элементы.НастройкаОтправки.СписокВыбора; + + Если Не ЗначениеЗаполнено(Форма.НастройкаОтправки) Тогда + + Запрос = Новый Запрос; + Запрос.Текст = + "ВЫБРАТЬ РАЗРЕШЕННЫЕ + | НастройкиОтправкиВГосключ.Ссылка КАК Ссылка + |ИЗ + | Справочник.НастройкиОтправкиВГосключ КАК НастройкиОтправкиВГосключ + |ГДЕ + | НЕ НастройкиОтправкиВГосключ.ПометкаУдаления + | И НастройкиОтправкиВГосключ.СрокДействия > &ТекущаяДата + | И НастройкиОтправкиВГосключ.Организация = &Организация"; + + Если ТипЗнч(Форма.ПараметрыОтправителя) = Тип("Структура") И ЗначениеЗаполнено(Форма.ПараметрыОтправителя.Организация) Тогда + Запрос.УстановитьПараметр("Организация", Форма.ПараметрыОтправителя.Организация); + Иначе + Запрос.Текст = СтрЗаменить(Запрос.Текст, "И НастройкиОтправкиВГосключ.Организация = &Организация", ""); + КонецЕсли; + + Запрос.УстановитьПараметр("ТекущаяДата", КонецДня(ТекущаяДатаСеанса())); + Выборка = Запрос.Выполнить().Выбрать(); + + СписокВыбора.Очистить(); + + Пока Выборка.Следующий() Цикл + СписокВыбора.Добавить(Выборка.Ссылка); + КонецЦикла; + + Если СписокВыбора.Количество() = 0 Тогда + Форма.НастройкаОтправки = Неопределено; + Иначе + Форма.НастройкаОтправки = СписокВыбора[0].Значение; + КонецЕсли; + + КонецЕсли; + + Форма.Элементы.НастройкаОтправки.Видимость = СписокВыбора.Количество() > 1; + Если ЗначениеЗаполнено(Форма.НастройкаОтправки) Тогда + Если Форма.ИмяФормы <> "Справочник.ПодписантыСервисаМобильнойПодписи.Форма.ОтправитьНаПодписание" Тогда + Форма.Элементы.ПодписантРасширеннаяПодсказка.Заголовок = НСтр("ru = 'Документы будут отправлены подписанту в приложение ""Госключ"", необходимо будет дождаться получения результатов подписания'"); + Иначе + Форма.Элементы.ПодписантРасширеннаяПодсказка.Заголовок = НСтр("ru = 'Документы будут отправлены подписанту в приложение ""Госключ""'"); + КонецЕсли; + Иначе + Форма.Элементы.ПодписантРасширеннаяПодсказка.Заголовок = НСтр("ru = 'Недоступны настройки для отправки подписанту в приложение ""Госключ"", обратитесь к администратору'"); + КонецЕсли; + + Иначе + + Форма.НастройкаОтправки = Неопределено; + Форма.Элементы.НастройкаОтправки.Видимость = Ложь; + Если Форма.ИмяФормы <> "Справочник.ПодписантыСервисаМобильнойПодписи.Форма.ОтправитьНаПодписание" Тогда + Форма.Элементы.ПодписантРасширеннаяПодсказка.Заголовок = НСтр("ru = 'Документы будут отправлены подписанту в приложение ""Моя подпись"" (ФНС), необходимо будет дождаться получения результатов подписания'"); + Иначе + Форма.Элементы.ПодписантРасширеннаяПодсказка.Заголовок = НСтр("ru = 'Документы будут отправлены подписанту в приложение ""Моя подпись"" (ФНС)'"); + КонецЕсли; + КонецЕсли; КонецПроцедуры @@ -522,37 +646,495 @@ КонецФункции +Процедура ДополнитьВыборкуПриложений(ТаблицаВыборки) Экспорт + + Если Не ПолучитьФункциональнуюОпцию("ИспользоватьГосключ") Тогда + Возврат; + КонецЕсли; + + КолонкаСсылки = ТаблицаВыборки.Колонки.Найти("Ссылка"); + Если КолонкаСсылки <> Неопределено Тогда + КолонкаСсылки.Имя = "НоваяСсылка"; + ТаблицаВыборки.Колонки.Добавить("Ссылка"); + Для каждого СтрокаТаблицы Из ТаблицаВыборки Цикл + СтрокаТаблицы.Ссылка = СтрокаТаблицы.НоваяСсылка; + КонецЦикла; + ТаблицаВыборки.Колонки.Удалить(КолонкаСсылки); + КонецЕсли; + + НастройкиОтправки = ПолучитьНастройкиОтправки(); + + Для каждого СтрокаТаблицы Из НастройкиОтправки Цикл + НоваяСтрока = Новый Структура( + "ЭтоВстроенныйКриптопровайдер, + |ТипРазмещения, + |ИмяПрограммы, + |Ссылка, + |Наименование, + |ПометкаУдаления", + Ложь, 2, СтрокаТаблицы.Сервер); + ЗаполнитьЗначенияСвойств(НоваяСтрока, СтрокаТаблицы); + НоваяСтрока.Наименование = СтроковыеФункцииКлиентСервер.ПодставитьПараметрыВСтроку( + НСтр("ru='%1 (Госключ)'"), НоваяСтрока.Наименование); + СтрокаВыборки = ТаблицаВыборки.Добавить(); + ЗаполнитьЗначенияСвойств(СтрокаВыборки, НоваяСтрока); + КонецЦикла; + + ТаблицаВыборки.Сортировать("Наименование"); + +КонецПроцедуры + +Процедура ИзменитьПометкуУдаленияНастройки(Настройка, УникальныйИдентификатор, СтандартнаяОбработка) Экспорт + + Если ТипЗнч(Настройка) <> Тип("СправочникСсылка.НастройкиОтправкиВГосключ") Тогда + Возврат; + КонецЕсли; + + СтандартнаяОбработка = Ложь; + Если ОбщегоНазначения.ПодсистемаСуществует("СтандартныеПодсистемы.УправлениеДоступом") Тогда + МодульУправлениеДоступом = ОбщегоНазначения.ОбщийМодуль("УправлениеДоступом"); + МодульУправлениеДоступом.ПроверитьИзменениеРазрешено(Настройка); + КонецЕсли; + + ЗаблокироватьДанныеДляРедактирования(Настройка, , УникальныйИдентификатор); + + Блокировка = Новый БлокировкаДанных; + ЭлементБлокировки = Блокировка.Добавить("Справочник.НастройкиОтправкиВГосключ"); + ЭлементБлокировки.УстановитьЗначение("Ссылка", Настройка); + + НачатьТранзакцию(); + Попытка + + Блокировка.Заблокировать(); + + Объект = Настройка.ПолучитьОбъект(); + Объект.ПометкаУдаления = Не Объект.ПометкаУдаления; + Объект.Записать(); + + ЗафиксироватьТранзакцию(); + + Исключение + ОтменитьТранзакцию(); + РазблокироватьДанныеДляРедактирования(Настройка, УникальныйИдентификатор); + ВызватьИсключение; + КонецПопытки; + + РазблокироватьДанныеДляРедактирования(Настройка, УникальныйИдентификатор); + +КонецПроцедуры + +#Область ОбработчикиСобытийПодсистемКонфигурации + +// См. ОбновлениеИнформационнойБазыБСП.ПриДобавленииОбработчиковОбновления. +Процедура ПриДобавленииОбработчиковОбновления(Обработчики) Экспорт + + Обработчик = Обработчики.Добавить(); + Обработчик.Версия = "3.1.12.129"; + Обработчик.Комментарий = НСтр("ru = 'Заполнение реквизита ВидПодписанта и МояПодпись в справочнике ПодписантыСервисаМобильнойПодписи'"); + Обработчик.Идентификатор = Новый УникальныйИдентификатор("ac1cf438-b59b-41dd-9013-179c58cfa8d4"); + Обработчик.Процедура = "Справочники.ПодписантыСервисаМобильнойПодписи.ОбработатьДанныеДляПереходаНаНовуюВерсию"; + Обработчик.РежимВыполнения = "Отложенно"; + Обработчик.ПроцедураЗаполненияДанныхОбновления = "Справочники.ПодписантыСервисаМобильнойПодписи.ЗарегистрироватьДанныеКОбработкеДляПереходаНаНовуюВерсию"; + Обработчик.ЧитаемыеОбъекты = "Справочник.ПодписантыСервисаМобильнойПодписи"; + Обработчик.ИзменяемыеОбъекты = "Справочник.ПодписантыСервисаМобильнойПодписи"; + Обработчик.ПроцедураПроверки = "ОбновлениеИнформационнойБазы.ДанныеОбновленыНаНовуюВерсиюПрограммы"; + +КонецПроцедуры + +// Используется для инициализации параметра сеанса в рамках механизмов БСП, +// см. ИнтеграцияПодсистемБСП.ПриДобавленииОбработчиковУстановкиПараметровСеанса. +// +Процедура ПриДобавленииОбработчиковУстановкиПараметровСеанса(Обработчики) Экспорт + + Обработчики.Вставить("ПараметрыАвторизацииВСервисеМобильнойПодписи", + "СервисМобильнойПодписиСлужебный.УстановитьПараметрСеансаПараметрыАвторизацииВСервисеМобильнойПодписи"); + +КонецПроцедуры + +// Используется для инициализации параметра сеанса в рамках механизмов БСП +// См. ОбщегоНазначенияПереопределяемый.ПриДобавленииОбработчиковУстановкиПараметровСеанса. +// +Процедура УстановитьПараметрСеансаПараметрыАвторизацииВСервисеМобильнойПодписи( + ИмяПараметра = Неопределено, + УстановленныеПараметры = Неопределено) Экспорт + + Если ИмяПараметра = "ПараметрыАвторизацииВСервисеМобильнойПодписи" Тогда + ПараметрыРезультатаАвторизации = ПараметрыРезультатаАвторизацииВСервисеМобильнойПодписи(); + ПараметрыСеанса.ПараметрыАвторизацииВСервисеМобильнойПодписи = Новый ФиксированнаяСтруктура( + ПараметрыРезультатаАвторизации); + УстановленныеПараметры.Добавить("ПараметрыАвторизацииВСервисеМобильнойПодписи"); + КонецЕсли; + +КонецПроцедуры + +// См. УправлениеДоступомПереопределяемый.ПриЗаполненииСписковСОграничениемДоступа. +Процедура ПриЗаполненииСписковСОграничениемДоступа(Списки) Экспорт + + Списки.Вставить(Метаданные.Справочники.ПодписантыСервисаМобильнойПодписи, Истина); + Списки.Вставить(Метаданные.РегистрыСведений.СервисМобильнойПодписиСтатусы, Истина); + Списки.Вставить(Метаданные.Справочники.НастройкиОтправкиВГосключ, Истина); + +КонецПроцедуры + +// См. РегламентныеЗаданияПереопределяемый.ПриОпределенииНастроекРегламентныхЗаданий +Процедура ПриОпределенииНастроекРегламентныхЗаданий(Настройки) Экспорт + + Зависимость = Настройки.Добавить(); + Зависимость.РегламентноеЗадание = Метаданные.РегламентныеЗадания.ПолучениеРезультатовИзСервисаМобильнойПодписи; + Зависимость.ДоступноВМоделиСервиса = Истина; + Зависимость.ДоступноВАвтономномРабочемМесте = Истина; + Зависимость.ОбращаетсяКВнешнимРесурсам = Истина; + Зависимость.ФункциональнаяОпция = Метаданные.ФункциональныеОпции.ИспользоватьСервисМобильнойПодписи; + + Зависимость = Настройки.Добавить(); + Зависимость.РегламентноеЗадание = Метаданные.РегламентныеЗадания.ПолучениеРезультатовИзСервисаМобильнойПодписи; + Зависимость.ДоступноВМоделиСервиса = Истина; + Зависимость.ДоступноВАвтономномРабочемМесте = Истина; + Зависимость.ОбращаетсяКВнешнимРесурсам = Истина; + Зависимость.ФункциональнаяОпция = Метаданные.ФункциональныеОпции.ИспользоватьГосключ; + +КонецПроцедуры + +// См. ОчередьЗаданийПереопределяемый.ПриОпределенииПсевдонимовОбработчиков. +Процедура ПриОпределенииПсевдонимовОбработчиков(СоответствиеИменПсевдонимам) Экспорт + + СоответствиеИменПсевдонимам.Вставить(Метаданные.РегламентныеЗадания.ПолучениеРезультатовИзСервисаМобильнойПодписи.ИмяМетода); + +КонецПроцедуры + +// См. ЗащитаПерсональныхДанныхПереопределяемый.ПриЗаполненииСведенийОбУничтожаемыхПерсональныхДанных. +Процедура ПриЗаполненииСведенийОбУничтожаемыхПерсональныхДанных(ТаблицаСведений) Экспорт + + МетаданныеПодписанты = Метаданные.Справочники.ПодписантыСервисаМобильнойПодписи; + + НовыеСведения = ТаблицаСведений.Добавить(); + НовыеСведения.Объект = МетаданныеПодписанты.ПолноеИмя(); + НовыеСведения.ПолеСубъект = МетаданныеПодписанты.Реквизиты.ФизическоеЛицо.Имя; + + Поля = Новый Массив; // Массив из Строка + Поля.Добавить(МетаданныеПодписанты.Реквизиты.Фамилия.ПолноеИмя()); + Поля.Добавить(МетаданныеПодписанты.Реквизиты.Имя.ПолноеИмя()); + Поля.Добавить(МетаданныеПодписанты.Реквизиты.Отчество.ПолноеИмя()); + Поля.Добавить(МетаданныеПодписанты.СтандартныеРеквизиты.Наименование.Имя); + + НовыеСведения.Поля = Поля; + НовыеСведения.КатегорияДанных = "ФИО"; + + НовыеСведения = ТаблицаСведений.Добавить(); + НовыеСведения.Объект = МетаданныеПодписанты.ПолноеИмя(); + НовыеСведения.ПолеСубъект = МетаданныеПодписанты.Реквизиты.ФизическоеЛицо.Имя; + НовыеСведения.Поля = ОбщегоНазначенияКлиентСервер.ЗначениеВМассиве( + МетаданныеПодписанты.Реквизиты.ИННФЛ.ПолноеИмя()); + НовыеСведения.КатегорияДанных = "ИНН"; + + НовыеСведения = ТаблицаСведений.Добавить(); + НовыеСведения.Объект = МетаданныеПодписанты.ПолноеИмя(); + НовыеСведения.ПолеСубъект = МетаданныеПодписанты.Реквизиты.ФизическоеЛицо.Имя; + НовыеСведения.Поля = ОбщегоНазначенияКлиентСервер.ЗначениеВМассиве( + МетаданныеПодписанты.Реквизиты.СНИЛС.ПолноеИмя()); + НовыеСведения.КатегорияДанных = "СНИЛС"; + + НовыеСведения = ТаблицаСведений.Добавить(); + НовыеСведения.Объект = МетаданныеПодписанты.ПолноеИмя(); + НовыеСведения.ПолеСубъект = МетаданныеПодписанты.Реквизиты.ФизическоеЛицо.Имя; + НовыеСведения.Поля = ОбщегоНазначенияКлиентСервер.ЗначениеВМассиве( + МетаданныеПодписанты.Реквизиты.НомерТелефона.ПолноеИмя()); + НовыеСведения.КатегорияДанных = "КонтактнаяИнформация"; + +КонецПроцедуры + +// См. ЗащитаПерсональныхДанныхПереопределяемый.ПриЗаполненииСведенийОбУничтожаемыхПерсональныхДанных. +Процедура ЗаполнитьОбластиПерсональныхДанных(КатегорииПерсональныхДанных) Экспорт + + Если КатегорииПерсональныхДанных.Найти("ЛичныеДанные", "Имя") = Неопределено Тогда + НоваяОбласть = КатегорииПерсональныхДанных.Добавить(); + НоваяОбласть.Имя = "ЛичныеДанные"; + НоваяОбласть.Представление = НСтр("ru = 'Личные данные'"); + КонецЕсли; + + Если КатегорииПерсональныхДанных.Найти("КонтактнаяИнформация", "Имя") = Неопределено Тогда + НоваяОбласть = КатегорииПерсональныхДанных.Добавить(); + НоваяОбласть.Имя = "КонтактнаяИнформация"; + НоваяОбласть.Представление = НСтр("ru = 'Адреса и телефоны'"); + НоваяОбласть.Родитель = "ЛичныеДанные"; + КонецЕсли; + + Если КатегорииПерсональныхДанных.Найти("ФИО", "Имя") = Неопределено Тогда + НоваяОбласть = КатегорииПерсональныхДанных.Добавить(); + НоваяОбласть.Имя = "ФИО"; + НоваяОбласть.Представление = НСтр("ru = 'Фамилия, имя, отчество'"); + НоваяОбласть.Родитель = "ЛичныеДанные"; + КонецЕсли; + + Если КатегорииПерсональныхДанных.Найти("ИНН", "Имя") = Неопределено Тогда + НоваяОбласть = КатегорииПерсональныхДанных.Добавить(); + НоваяОбласть.Имя = "ИНН"; + НоваяОбласть.Представление = НСтр("ru = 'Сведения о постановке на налоговый учет (ИНН)'"); + НоваяОбласть.Родитель = "ЛичныеДанные"; + КонецЕсли; + + Если КатегорииПерсональныхДанных.Найти("СНИЛС", "Имя") = Неопределено Тогда + НоваяОбласть = КатегорииПерсональныхДанных.Добавить(); + НоваяОбласть.Имя = "СНИЛС"; + НоваяОбласть.Представление = НСтр("ru = 'Сведения о регистрации в Пенсионном фонде (номер страхового свидетельства)'"); + НоваяОбласть.Родитель = "ЛичныеДанные"; + КонецЕсли; + +КонецПроцедуры + +// См. ЗащитаПерсональныхДанныхПереопределяемый.ЗаполнитьСведенияОПерсональныхДанных. +Процедура ЗаполнитьСведенияОПерсональныхДанных(ТаблицаСведений) Экспорт + + Сведения = ТаблицаСведений.Добавить(); + Сведения.Объект = "Справочник.ПодписантыСервисаМобильнойПодписи"; + Сведения.ПоляРегистрации = "ФизическоеЛицо"; + Сведения.ПоляДоступа = "Наименование,Фамилия,Имя,Отчество"; + Сведения.ОбластьДанных = "ФИО"; + + Сведения = ТаблицаСведений.Добавить(); + Сведения.Объект = "Справочник.ПодписантыСервисаМобильнойПодписи"; + Сведения.ПоляРегистрации = "ФизическоеЛицо"; + Сведения.ПоляДоступа = "ИННФЛ"; + Сведения.ОбластьДанных = "ИНН"; + + Сведения = ТаблицаСведений.Добавить(); + Сведения.Объект = "Справочник.ПодписантыСервисаМобильнойПодписи"; + Сведения.ПоляРегистрации = "ФизическоеЛицо"; + Сведения.ПоляДоступа = "СНИЛС"; + Сведения.ОбластьДанных = "СНИЛС"; + + Сведения = ТаблицаСведений.Добавить(); + Сведения.Объект = "Справочник.ПодписантыСервисаМобильнойПодписи"; + Сведения.ПоляРегистрации = "ФизическоеЛицо"; + Сведения.ПоляДоступа = "НомерТелефона"; + Сведения.ОбластьДанных = "КонтактнаяИнформация"; + +КонецПроцедуры + +// См. РаботаВБезопасномРежимеПереопределяемый.ПриЗаполненииРазрешенийНаДоступКВнешнимРесурсам. +Процедура ПриЗаполненииРазрешенийНаДоступКВнешнимРесурсам(ЗапросыРазрешений) Экспорт + + Если ОбщегоНазначения.РазделениеВключено() + И Не ОбщегоНазначения.ДоступноИспользованиеРазделенныхДанных() Тогда + Возврат; + КонецЕсли; + + НовыеРазрешения = Новый Массив; + МодульРаботаВБезопасномРежиме = ОбщегоНазначения.ОбщийМодуль("РаботаВБезопасномРежиме"); + + Если ПолучитьФункциональнуюОпцию("ИспользоватьСервисМобильнойПодписи") Тогда + Сервис = СвойстваСервисаМобильнойПодписи(); + + Элемент = МодульРаботаВБезопасномРежиме.РазрешениеНаИспользованиеИнтернетРесурса(ВРег(Сервис.Схема), Сервис.Хост, + Сервис.Порт, НСтр("ru = 'Отправка документов на подписание в Моя подпись (ФНС).'")); + + НовыеРазрешения.Добавить(Элемент); + КонецЕсли; + + Если ПолучитьФункциональнуюОпцию("ИспользоватьГосключ") Тогда + + Параметры = Новый Структура("АдресЕСИА, АдресСервиса", "", ""); + + Сервис = СвойстваСервисаАвторизацииГосключа(Параметры); + Элемент = МодульРаботаВБезопасномРежиме.РазрешениеНаИспользованиеИнтернетРесурса(ВРег(Сервис.Схема), Сервис.Хост, + Сервис.Порт, НСтр("ru = 'Отправка документов на подписание в Госключ.'")); + НовыеРазрешения.Добавить(Элемент); + + Сервис = СвойстваСервисаГосключа(Параметры); + Элемент = МодульРаботаВБезопасномРежиме.РазрешениеНаИспользованиеИнтернетРесурса(ВРег(Сервис.Схема), Сервис.Хост, + Сервис.Порт, НСтр("ru = 'Отправка документов на подписание в Госключ.'")); + НовыеРазрешения.Добавить(Элемент); + + ТекстЗапроса = + "ВЫБРАТЬ РАЗЛИЧНЫЕ + | НастройкиОтправкиВГосключ.АдресСервиса КАК АдресСервиса + |ИЗ + | Справочник.НастройкиОтправкиВГосключ КАК НастройкиОтправкиВГосключ + |ГДЕ + | НЕ НастройкиОтправкиВГосключ.ПометкаУдаления И НастройкиОтправкиВГосключ.АдресСервиса <> """" + | + |ОБЪЕДИНИТЬ ВСЕ + | + |ВЫБРАТЬ РАЗЛИЧНЫЕ + | НастройкиОтправкиВГосключ.АдресЕСИА + |ИЗ + | Справочник.НастройкиОтправкиВГосключ КАК НастройкиОтправкиВГосключ + |ГДЕ + | НЕ НастройкиОтправкиВГосключ.ПометкаУдаления И НастройкиОтправкиВГосключ.АдресСервиса <> """""; + + Запрос = Новый Запрос(ТекстЗапроса); + Выборка = Запрос.Выполнить().Выбрать(); + Пока Выборка.Следующий() Цикл + Сервис = ОбщегоНазначенияКлиентСервер.СтруктураURI(Выборка.АдресСервиса); + Элемент = МодульРаботаВБезопасномРежиме.РазрешениеНаИспользованиеИнтернетРесурса(ВРег(Сервис.Схема), + Сервис.Хост, Сервис.Порт, НСтр("ru = 'Отправка документов на подписание в Госключ (из настроек).'")); + НовыеРазрешения.Добавить(Элемент); + КонецЦикла; + + КонецЕсли; + + ЗапросыРазрешений.Добавить(МодульРаботаВБезопасномРежиме.ЗапросНаИспользованиеВнешнихРесурсов(НовыеРазрешения)); + +КонецПроцедуры + +// См. ОбщегоНазначенияПереопределяемый.ПриДобавленииСерверныхОповещений +Процедура ПриДобавленииСерверныхОповещений(Оповещения) Экспорт + + Оповещение = СерверныеОповещения.НовоеСерверноеОповещение(СервисМобильнойПодписиКлиентСервер.ИмяСерверногоОповещения()); + + Оповещение.ИмяМодуляОтправки = ""; + Оповещение.ИмяМодуляПолучения = "СервисМобильнойПодписиСлужебныйКлиент"; + + Оповещения.Вставить(Оповещение.Имя, Оповещение); + +КонецПроцедуры + +#КонецОбласти + #КонецОбласти #Область СлужебныеПроцедурыИФункции -Процедура ПроверкаПараметровПодписанта(ПараметрыПодписанта) Экспорт +Функция НастройкаПодписанта(Форма) - Если Не ЗначениеЗаполнено(ПараметрыПодписанта.НомерТелефона) Тогда + НастройкаПодписанта = ОбщегоНазначения.ХранилищеОбщихНастроекЗагрузить( + Форма.Подписант, "ПодписаниеДанных_НастройкаПодписанта", Неопределено); + + Если НастройкаПодписанта = Неопределено Тогда + Возврат Неопределено; + КонецЕсли; + + НастройкаПодписанта = НастройкаПодписанта.Получить(КлючНастроекПодписанта(Форма.ПараметрыОтправителя)); + Возврат НастройкаПодписанта; + +КонецФункции + +Функция КлючНастроекПодписанта(ПараметрыОтправителя) + + Если ТипЗнч(ПараметрыОтправителя) <> Тип("Структура") Тогда + Возврат Неопределено; + КонецЕсли; + + СтруктураОтбора = Новый Структура("Организация"); + ЗаполнитьЗначенияСвойств(СтруктураОтбора, ПараметрыОтправителя); + + КлючОтбора = Новый Структура; + Если ЗначениеЗаполнено(СтруктураОтбора.Организация) Тогда + КлючОтбора.Вставить("Организация", Строка(СтруктураОтбора.Организация.УникальныйИдентификатор())); + КонецЕсли; + + Возврат ?(КлючОтбора.Количество() = 0, Неопределено, + ЗаписатьЗначениеJSON(КлючОтбора)); + +КонецФункции + +// Формирует таблицу значений с данными настроек отправки в Госключ. +// +// Возвращаемое значение: +// ТаблицаЗначений +// +Функция ПолучитьНастройкиОтправки(СправочникСсылка = Неопределено) + + НастройкиОтправки = Новый ТаблицаЗначений; + + ТекстЗапроса = + "ВЫБРАТЬ РАЗРЕШЕННЫЕ + | НастройкиОтправкиВГосключ.Ссылка КАК Ссылка, + | НастройкиОтправкиВГосключ.Наименование КАК Наименование, + | ""Госключ"" КАК Сервер, + | НастройкиОтправкиВГосключ.ПометкаУдаления КАК ПометкаУдаления + |ИЗ + | Справочник.НастройкиОтправкиВГосключ КАК НастройкиОтправкиВГосключ"; + + Запрос = Новый Запрос(ТекстЗапроса); + НастройкиОтправки = Запрос.Выполнить().Выгрузить(); + + Возврат НастройкиОтправки; + +КонецФункции + +Процедура ПроверкаПараметровПодписанта(ПараметрыПодписанта, ДляДобавления = Ложь) Экспорт + + Если Не ЗначениеЗаполнено(ПараметрыПодписанта.ВидПодписанта) И ЗначениеЗаполнено(ПараметрыПодписанта.ИНН) Тогда + ПараметрыПодписанта.ВидПодписанта = Перечисления.ВидыПодписантовМобильногоСервиса.РуководительЮЛ; + КонецЕсли; + + Если Не ЗначениеЗаполнено(ПараметрыПодписанта.ВидПодписанта) Тогда + ВызватьИсключение НСтр("ru = 'Не заполнен вид подписанта'"); + КонецЕсли; + + ЭтоЮрЛицо = ПараметрыПодписанта.ВидПодписанта = Перечисления.ВидыПодписантовМобильногоСервиса.РуководительЮЛ; + ЭтоФизЛицо = ПараметрыПодписанта.ВидПодписанта = Перечисления.ВидыПодписантовМобильногоСервиса.ФизическоеЛицо; + + Если Не ЭтоЮрЛицо Тогда + ПараметрыПодписанта.ИНН = ""; + ПараметрыПодписанта.Должность = ""; + ПараметрыПодписанта.НаименованиеОрганизации = ""; + КонецЕсли; + + Если ЭтоФизЛицо Тогда + ПараметрыПодписанта.ОГРН = ""; + ПараметрыПодписанта.МояПодпись = Ложь; + Иначе + ПараметрыПодписанта.ГосключУНЭП = Ложь; + КонецЕсли; + + НомерТелефона = СервисМобильнойПодписиКлиентСервер.ТолькоЦифры(ПараметрыПодписанта.НомерТелефона); + + Если (Не ЗначениеЗаполнено(НомерТелефона) Или СтрДлина(НомерТелефона) = 1) И ПараметрыПодписанта.МояПодпись = Истина Тогда ВызватьИсключение НСтр("ru = 'Не заполнен номер телефона'"); КонецЕсли; - Если Не ЗначениеЗаполнено(ПараметрыПодписанта.ИННФЛ) И Не ЗначениеЗаполнено(ПараметрыПодписанта.ИНН) Тогда + Если ЭтоЮрЛицо И Не ЗначениеЗаполнено(ПараметрыПодписанта.ИНН) Тогда ВызватьИсключение НСтр("ru = 'Не заполнен ИНН'"); КонецЕсли; - Если ЗначениеЗаполнено(ПараметрыПодписанта.ИНН) И Не ЗначениеЗаполнено(ПараметрыПодписанта.ОГРН) Тогда - ВызватьИсключение НСтр("ru = 'Не заполнен ОГРН'"); + Если ПараметрыПодписанта.МояПодпись = Истина И Не ЭтоЮрЛицо И Не ЗначениеЗаполнено(ПараметрыПодписанта.ИННФЛ) Тогда + ВызватьИсключение НСтр("ru = 'Не заполнен ИНН физического лица'"); КонецЕсли; + + Если ЭтоЮрЛицо И Не (ЗначениеЗаполнено(ПараметрыПодписанта.ОГРН) + Или ЗначениеЗаполнено(ПараметрыПодписанта.НомерЗаписиОбАккредитации)) Тогда + + Если СтрНачинаетсяС(ПараметрыПодписанта.ИНН, "9909") Тогда + ВызватьИсключение НСтр("ru = 'Не заполнен номер записи об аккредитации'"); + Иначе + ВызватьИсключение НСтр("ru = 'Не заполнен ОГРН'"); + КонецЕсли; - НомерТелефона = СервисМобильнойПодписиКлиентСервер.ТолькоЦифры(ПараметрыПодписанта.НомерТелефона); - Если СтрДлина(НомерТелефона) = 11 И СтрНачинаетсяС(НомерТелефона, "8") Тогда - НомерТелефона = "7" + Прав(НомерТелефона, 10); КонецЕсли; - Если СтрДлина(НомерТелефона) <> 11 Или Не СтрНачинаетсяС(НомерТелефона, "7") Тогда - ВызватьИсключение СтроковыеФункцииКлиентСервер.ПодставитьПараметрыВСтроку( + Если СтрНачинаетсяС(ПараметрыПодписанта.ИНН, "9909") + И ЗначениеЗаполнено(ПараметрыПодписанта.НомерЗаписиОбАккредитации) + И Не ЗначениеЗаполнено(ПараметрыПодписанта.ИННФЛ) Тогда + ВызватьИсключение НСтр("ru = 'Не заполнен ИНН ФЛ'"); + КонецЕсли; + + Если ЗначениеЗаполнено(НомерТелефона) Тогда + Если СтрДлина(НомерТелефона) = 11 И СтрНачинаетсяС(НомерТелефона, "8") Тогда + НомерТелефона = "7" + Прав(НомерТелефона, 10); + КонецЕсли; + + Если СтрДлина(НомерТелефона) > 1 И (СтрДлина(НомерТелефона) <> 11 Или Не СтрНачинаетсяС(НомерТелефона, "7")) Тогда + ВызватьИсключение СтроковыеФункцииКлиентСервер.ПодставитьПараметрыВСтроку( НСтр("ru = 'Некорректный номер телефона подписанта %1'"), ПараметрыПодписанта.НомерТелефона); + КонецЕсли; КонецЕсли; - ПараметрыПодписанта.НомерТелефона = НомерТелефона; + ПараметрыПодписанта.НомерТелефона = ?(СтрДлина(НомерТелефона) > 1, НомерТелефона, ""); ПараметрыПодписанта.ИННФЛ = СервисМобильнойПодписиКлиентСервер.ТолькоЦифры(ПараметрыПодписанта.ИННФЛ); ПараметрыПодписанта.ИНН = СервисМобильнойПодписиКлиентСервер.ТолькоЦифры(ПараметрыПодписанта.ИНН); + ПараметрыПодписанта.СНИЛС = СервисМобильнойПодписиКлиентСервер.ТолькоЦифры(ПараметрыПодписанта.СНИЛС); + + Если Не ЗначениеЗаполнено(ПараметрыПодписанта.СНИЛС) И (ПараметрыПодписанта.ГосключУНЭП = Истина + Или ПараметрыПодписанта.ГосключУКЭП = Истина) Тогда + ВызватьИсключение НСтр("ru = 'Не заполнен СНИЛС для отправки в Госключ'"); + КонецЕсли; + + Если ЗначениеЗаполнено(ПараметрыПодписанта.СНИЛС) И СтрДлина(ПараметрыПодписанта.СНИЛС) <> 11 Тогда + ВызватьИсключение СтроковыеФункцииКлиентСервер.ПодставитьПараметрыВСтроку( + НСтр("ru = 'СНИЛС физического лица должен содержать 11 цифр: %1'"), ПараметрыПодписанта.ИННФЛ); + КонецЕсли; Если ЗначениеЗаполнено(ПараметрыПодписанта.ИНН) Тогда ПараметрыПодписанта.ИННФЛ = ""; @@ -612,8 +1194,32 @@ Функция ОтправитьНаПодписание(Знач НаборДанных, Знач Подписант, Знач Параметры) Экспорт + Если ТипЗнч(Параметры.НастройкаОтправки) <> Тип("Структура") Тогда + НастройкаОтправки = НастройкаОтправки(Параметры); + Если ТипЗнч(НастройкаОтправки) = Тип("Строка") Тогда + РезультатПроверки = ОшибкаМобильногоСервиса(НСтр("ru = 'Не удалось отправить документы'"), НастройкаОтправки, ""); + РезультатПроверки.Вставить("НаборДанных", НаборДанных); + Возврат РезультатПроверки; + КонецЕсли; + Параметры.Вставить("НастройкаОтправки", НастройкаОтправки); + КонецЕсли; + + Если Параметры.НаборДанныхПроверен <> Истина Тогда + ПроверкаНабораДанных = СервисМобильнойПодписиКлиентСервер.ПроверкаНабораДанных(НаборДанных, Параметры); + Если ТипЗнч(ПроверкаНабораДанных) = Тип("Строка") Тогда + РезультатПроверки = ОшибкаМобильногоСервиса(НСтр("ru = 'Не удалось отправить документы'"), ПроверкаНабораДанных, ""); + РезультатПроверки.Вставить("НаборДанных", НаборДанных); + Возврат РезультатПроверки; + КонецЕсли; + КонецЕсли; + Если Параметры.ПакетнаяОтправкаНаПодписание Тогда - РезультатОтправкиНаПодписание = ОтправитьНаПодписаниеВСервис(НаборДанных, Подписант, Параметры); + Если Параметры.ВидМобильнойПодписи = Перечисления.ВидыМобильныхПодписей.МояПодпись Тогда + РезультатОтправкиНаПодписание = ОтправитьНаПодписаниеВСервис(НаборДанных, Подписант, Параметры); + Иначе + РезультатОтправкиНаПодписание = ОтправитьНаПодписаниеВГосключ(НаборДанных, Подписант, Параметры); + КонецЕсли; + Если ЗначениеЗаполнено(РезультатОтправкиНаПодписание.Ошибка) Тогда РезультатОтправкиНаПодписание.Ошибка.Вставить("НаборДанных", НаборДанных); Возврат РезультатОтправкиНаПодписание.Ошибка; @@ -623,8 +1229,17 @@ Для Каждого Элемент Из НаборДанных Цикл НовыйНаборДанных = ОбщегоНазначенияКлиентСервер.ЗначениеВМассиве(Элемент); + + Если Параметры.ВидМобильнойПодписи = Перечисления.ВидыМобильныхПодписей.МояПодпись Тогда //@skip-check query-in-loop - запрос выполнится один раз, если Подписант передан ссылкой. - РезультатОтправкиНаПодписание = ОтправитьНаПодписаниеВСервис(НовыйНаборДанных, Подписант, Параметры, РеквизитыПодписанта); + РезультатОтправкиНаПодписание = ОтправитьНаПодписаниеВСервис( + НовыйНаборДанных, Подписант, Параметры, РеквизитыПодписанта); + Иначе + //@skip-check query-in-loop - запрос выполнится один раз, если Подписант передан параметрами. + РезультатОтправкиНаПодписание = ОтправитьНаПодписаниеВГосключ( + НаборДанных, Подписант, Параметры, РеквизитыПодписанта); + КонецЕсли; + Если ЗначениеЗаполнено(РезультатОтправкиНаПодписание.Ошибка) Тогда РезультатОтправкиНаПодписание.Ошибка.Вставить("НаборДанных", НаборДанных); Возврат РезультатОтправкиНаПодписание.Ошибка; @@ -642,12 +1257,13 @@ ОбщегоНазначения.ПриНачалеВыполненияРегламентногоЗадания( Метаданные.РегламентныеЗадания.ПолучениеРезультатовИзСервисаМобильнойПодписи); - Если Не СервисМобильнойПодписи.ИспользоватьСервисМобильнойПодписи() Тогда + Если Не СервисМобильнойПодписи.ИспользоватьСервисМобильнойПодписи() + И Не СервисМобильнойПодписи.ИспользоватьГосключ() Тогда Возврат; КонецЕсли; ПолучитьРезультатыИзСервисаМобильнойПодписи(); - + КонецПроцедуры Функция СогласиеПодписанта(Подписант, ОтправитьСогласие = Ложь, ТокенДоступа = "") @@ -667,15 +1283,10 @@ Если Не ЗначениеЗаполнено(ТокенДоступа) Тогда РезультатАвторизации = АвторизоватьсяВСервисеМобильнойПодписи(ЗаголовокОшибки); - Если РезультатАвторизации.Ошибка <> Неопределено Тогда Результат.Ошибка = РезультатАвторизации.Ошибка; - КонецЕсли; - - Если Результат.Ошибка <> Неопределено Тогда Возврат Результат; КонецЕсли; - ТокенДоступа = РезультатАвторизации.ТокенДоступа; КонецЕсли; @@ -780,12 +1391,8 @@ РезультатАвторизации = АвторизоватьсяВСервисеМобильнойПодписи(ЗаголовокОшибки); Если РезультатАвторизации.Ошибка <> Неопределено Тогда Результат.Ошибка = РезультатАвторизации.Ошибка; - КонецЕсли; - - Если Результат.Ошибка <> Неопределено Тогда Возврат Результат; КонецЕсли; - ТокенДоступа = РезультатАвторизации.ТокенДоступа; КонецЕсли; @@ -866,7 +1473,7 @@ Если ЗначениеЗаполнено(Результат.ИдентификаторЗапроса) Тогда Если ТипЗнч(Подписант) = Тип("Структура") Тогда - Подписант = ДобавитьПодписантаВСправочник(ПараметрыПодписанта); + Подписант = ДобавитьПодписантаВСправочник(ПараметрыПодписанта).Ссылка; КонецЕсли; ЗаписатьСтатусОтправленВСервис(ПараметрыПодписанта); КонецЕсли; @@ -929,6 +1536,8 @@ Функция ДобавитьПодписантаВСправочник(Знач ПараметрыПодписанта) Экспорт + Результат = Новый Структура("ЭтоНовый, ОбновленыДанные, Ссылка", Ложь, Ложь); + ПроверкаПараметровПодписанта(ПараметрыПодписанта); ПравоДоступаДобавление = ПравоДоступа("Добавление", Метаданные.Справочники.ПодписантыСервисаМобильнойПодписи); ЗаписатьОбъект = Ложь; @@ -939,39 +1548,20 @@ ТекущийПользователь = Пользователи.АвторизованныйПользователь(); - Запрос = Новый Запрос; - Запрос.Текст = "ВЫБРАТЬ - | ПодписантыСервисаМобильнойПодписи.Ссылка - |ИЗ - | Справочник.ПодписантыСервисаМобильнойПодписи КАК ПодписантыСервисаМобильнойПодписи - |ГДЕ - | ПодписантыСервисаМобильнойПодписи.НомерТелефона = &НомерТелефона - | И ПодписантыСервисаМобильнойПодписи.ИННФЛ = &ИННФЛ - | И ПодписантыСервисаМобильнойПодписи.ИНН = &ИНН - | И ПодписантыСервисаМобильнойПодписи.ОГРН = &ОГРН"; - - Запрос.УстановитьПараметр("НомерТелефона", ПараметрыПодписанта.НомерТелефона); - - Если ЗначениеЗаполнено(ПараметрыПодписанта.ИНН) Тогда - Запрос.УстановитьПараметр("ИНН", ПараметрыПодписанта.ИНН); - Запрос.УстановитьПараметр("ОГРН", ПараметрыПодписанта.ОГРН); - Запрос.Текст = СтрЗаменить(Запрос.Текст, "И ПодписантыСервисаМобильнойПодписи.ИННФЛ = &ИННФЛ", ""); - Иначе - Запрос.УстановитьПараметр("ИННФЛ", ПараметрыПодписанта.ИННФЛ); - Запрос.Текст = СтрЗаменить(Запрос.Текст, "И ПодписантыСервисаМобильнойПодписи.ИНН = &ИНН", ""); - Запрос.Текст = СтрЗаменить(Запрос.Текст, "И ПодписантыСервисаМобильнойПодписи.ОГРН = &ОГРН", ""); - КонецЕсли; - НачатьТранзакцию(); Попытка Блокировка.Заблокировать(); - РезультатЗапроса = Запрос.Выполнить(); - Если РезультатЗапроса.Пустой() Тогда + + НайденныйПодписант = НайденныйПодписант(ПараметрыПодписанта, Истина, Истина); + + Если Не ЗначениеЗаполнено(НайденныйПодписант) Тогда Если Не ПравоДоступаДобавление Тогда ВызватьИсключение(НСтр("ru = 'Недостаточно прав для добавления подписанта.'"), КатегорияОшибки.НарушениеПравДоступа); КонецЕсли; + Результат.ЭтоНовый = Истина; + СправочникОбъект = Справочники.ПодписантыСервисаМобильнойПодписи.СоздатьЭлемент(); ЗаполнитьЗначенияСвойств(СправочникОбъект, ПараметрыПодписанта); СправочникОбъект.Добавил = ТекущийПользователь; @@ -980,17 +1570,43 @@ КонецЕсли; Иначе - Выборка = РезультатЗапроса.Выбрать(); - Выборка.Следующий(); - СправочникОбъект = Выборка.Ссылка.ПолучитьОбъект(); // СправочникОбъект.ПодписантыСервисаМобильнойПодписи + + СправочникОбъект = НайденныйПодписант.ПолучитьОбъект(); // СправочникОбъект.ПодписантыСервисаМобильнойПодписи Если СправочникОбъект.ПометкаУдаления Тогда Если Не ПравоДоступаДобавление Тогда ВызватьИсключение(НСтр("ru = 'Недостаточно прав для добавления подписанта.'"), КатегорияОшибки.НарушениеПравДоступа); КонецЕсли; + Результат.ОбновленыДанные = Истина; ЗаполнитьЗначенияСвойств(СправочникОбъект, ПараметрыПодписанта); СправочникОбъект.Добавил = ТекущийПользователь; СправочникОбъект.ПометкаУдаления = Ложь; ЗаписатьОбъект = Истина; + Иначе + + ОбъектМетаданных = СправочникОбъект.Метаданные(); + Для Каждого КлючИЗначение Из ПараметрыПодписанта Цикл + Если КлючИЗначение.Ключ = "ОтправленВСервис" Тогда + Продолжить; + КонецЕсли; + + Если (КлючИЗначение.Ключ = "МояПодпись" + Или КлючИЗначение.Ключ = "ГосключУНЭП" + Или КлючИЗначение.Ключ = "ГосключУКЭП") + И КлючИЗначение.Значение = Истина И СправочникОбъект[КлючИЗначение.Ключ] = Ложь Тогда + СправочникОбъект[КлючИЗначение.Ключ] = КлючИЗначение.Значение; + Результат.ОбновленыДанные = Истина; + ЗаписатьОбъект = Истина; + Продолжить; + КонецЕсли; + + Если ЗначениеЗаполнено(КлючИЗначение.Значение) + И ОбщегоНазначенияКлиентСервер.ЕстьРеквизитИлиСвойствоОбъекта(СправочникОбъект, КлючИЗначение.Ключ) + И Не ЗначениеЗаполнено(СправочникОбъект[КлючИЗначение.Ключ]) Тогда + СправочникОбъект[КлючИЗначение.Ключ] = КлючИЗначение.Значение; + Результат.ОбновленыДанные = Истина; + ЗаписатьОбъект = Истина; + КонецЕсли; + КонецЦикла; КонецЕсли; КонецЕсли; @@ -1011,11 +1627,17 @@ ВызватьИсключение; КонецПопытки; - Возврат СправочникОбъект.Ссылка; + Результат.Ссылка = СправочникОбъект.Ссылка; + + Возврат Результат; КонецФункции -Функция НайденныйПодписант(ПараметрыПодписанта) +Функция НайденныйПодписант(ПараметрыПодписанта, Привилегированный = Ложь, ПомеченныеНаУдаление = Ложь) + + Если ЗначениеЗаполнено(ПараметрыПодписанта.Ссылка) Тогда + Возврат ПараметрыПодписанта.Ссылка; + КонецЕсли; ПроверкаПараметровПодписанта(ПараметрыПодписанта); @@ -1027,25 +1649,59 @@ |ИЗ | Справочник.ПодписантыСервисаМобильнойПодписи КАК ПодписантыСервисаМобильнойПодписи |ГДЕ - | НЕ ПодписантыСервисаМобильнойПодписи.ПометкаУдаления - | И ПодписантыСервисаМобильнойПодписи.ИННФЛ = &ИННФЛ - | И ПодписантыСервисаМобильнойПодписи.ИНН = &ИНН - | И ПодписантыСервисаМобильнойПодписи.ОГРН = &ОГРН - | И ПодписантыСервисаМобильнойПодписи.НомерТелефона = &НомерТелефона"; - - Запрос.УстановитьПараметр("НомерТелефона", ПараметрыПодписанта.НомерТелефона); - Запрос.УстановитьПараметр("ИНН", ПараметрыПодписанта.ИНН); - Если ЗначениеЗаполнено(ПараметрыПодписанта.ИНН) Тогда - Запрос.УстановитьПараметр("ИНН", ПараметрыПодписанта.ИНН); - Запрос.УстановитьПараметр("ОГРН", ПараметрыПодписанта.ОГРН); - Запрос.Текст = СтрЗаменить(Запрос.Текст, "И ПодписантыСервисаМобильнойПодписи.ИННФЛ = &ИННФЛ", ""); - Иначе - Запрос.УстановитьПараметр("ИННФЛ", ПараметрыПодписанта.ИННФЛ); - Запрос.Текст = СтрЗаменить(Запрос.Текст, "И ПодписантыСервисаМобильнойПодписи.ИНН = &ИНН", ""); - Запрос.Текст = СтрЗаменить(Запрос.Текст, "И ПодписантыСервисаМобильнойПодписи.ОГРН = &ОГРН", ""); + | &УсловияЗапроса"; + + УсловияЗапроса = Новый Массив; + + Если Не ПомеченныеНаУдаление Тогда + УсловияЗапроса.Добавить("Не ПодписантыСервисаМобильнойПодписи.ПометкаУдаления"); КонецЕсли; - РезультатЗапроса = Запрос.Выполнить(); + Если ЗначениеЗаполнено(ПараметрыПодписанта.НомерТелефона) Тогда + Запрос.УстановитьПараметр("НомерТелефона", ПараметрыПодписанта.НомерТелефона); + УсловияЗапроса.Добавить("(ПодписантыСервисаМобильнойПодписи.НомерТелефона = &НомерТелефона ИЛИ ПодписантыСервисаМобильнойПодписи.НомерТелефона = """")"); + КонецЕсли; + + Если ЗначениеЗаполнено(ПараметрыПодписанта.ВидПодписанта) Тогда + Запрос.УстановитьПараметр("ВидПодписанта", ПараметрыПодписанта.ВидПодписанта); + УсловияЗапроса.Добавить("ПодписантыСервисаМобильнойПодписи.ВидПодписанта = &ВидПодписанта"); + КонецЕсли; + + Запрос.УстановитьПараметр("ИНН", ""); + УсловияЗапроса.Добавить("ПодписантыСервисаМобильнойПодписи.ИНН = &ИНН"); + + Если ЗначениеЗаполнено(ПараметрыПодписанта.ИНН) Тогда + Запрос.УстановитьПараметр("ИНН", ПараметрыПодписанта.ИНН); + Если ЗначениеЗаполнено(ПараметрыПодписанта.ОГРН) Тогда + Запрос.УстановитьПараметр("ОГРН", ПараметрыПодписанта.ОГРН); + УсловияЗапроса.Добавить("ПодписантыСервисаМобильнойПодписи.ОГРН = &ОГРН"); + КонецЕсли; + Если ЗначениеЗаполнено(ПараметрыПодписанта.СНИЛС) Тогда + УсловияЗапроса.Добавить("ПодписантыСервисаМобильнойПодписи.СНИЛС = &СНИЛС"); + Запрос.УстановитьПараметр("СНИЛС", ПараметрыПодписанта.СНИЛС); + ИначеЕсли ЗначениеЗаполнено(ПараметрыПодписанта.ИННФЛ) Тогда + Запрос.УстановитьПараметр("ИННФЛ", ПараметрыПодписанта.ИННФЛ); + УсловияЗапроса.Добавить("ПодписантыСервисаМобильнойПодписи.ИННФЛ = &ИННФЛ"); + КонецЕсли; + ИначеЕсли ЗначениеЗаполнено(ПараметрыПодписанта.ИННФЛ) Тогда + Запрос.УстановитьПараметр("ИННФЛ", ПараметрыПодписанта.ИННФЛ); + УсловияЗапроса.Добавить("ПодписантыСервисаМобильнойПодписи.ИННФЛ = &ИННФЛ"); + ИначеЕсли ЗначениеЗаполнено(ПараметрыПодписанта.СНИЛС) Тогда + УсловияЗапроса.Добавить("ПодписантыСервисаМобильнойПодписи.СНИЛС = &СНИЛС"); + Запрос.УстановитьПараметр("СНИЛС", ПараметрыПодписанта.СНИЛС); + КонецЕсли; + + Запрос.Текст = СтрЗаменить(Запрос.Текст, "&УсловияЗапроса", СтрСоединить(УсловияЗапроса, Символы.ПС + " " + "И ")); + + Если Привилегированный Тогда + Запрос.Текст = СтрЗаменить(Запрос.Текст, "ВЫБРАТЬ РАЗРЕШЕННЫЕ", "ВЫБРАТЬ"); // @Query-part-1, @Query-part-2 + УстановитьПривилегированныйРежим(Истина); + РезультатЗапроса = Запрос.Выполнить(); + УстановитьПривилегированныйРежим(Ложь); + Иначе + РезультатЗапроса = Запрос.Выполнить(); + КонецЕсли; + Если РезультатЗапроса.Пустой() Тогда Возврат Справочники.ПодписантыСервисаМобильнойПодписи.ПустаяСсылка(); КонецЕсли; @@ -1071,30 +1727,23 @@ Возврат ЭлектроннаяПодписьСлужебныйРФ.СоединениеССерверомИнтернета(ВидОперации, URL, Таймаут, ВыполнятьДиагностику, ПроверятьДоставкуПакетовПриОшибке); КонецФункции -Функция ОтправитьНаПодписаниеВСервис(НаборДанных, Подписант, Параметры = Неопределено, РеквизитыПодписанта = Неопределено, ТокенДоступа = "") - - ПараметрыПодписания = Новый Структура("ТипПодписи, ИдентификаторФормы, Доверенность, Комментарий, Атрибуты"); - Если Параметры <> Неопределено Тогда - ЗаполнитьЗначенияСвойств(ПараметрыПодписания, Параметры); - КонецЕсли; +Функция ОтправитьНаПодписаниеВСервис(НаборДанных, Подписант, ПараметрыПодписания, РеквизитыПодписанта = Неопределено) ЗаголовокОшибки = НСтр("ru='Не удалось отправить документы на подписание'"); Результат = Новый Структура("Ошибка, НаборДанных"); Результат.НаборДанных = НаборДанных; - - Если Не ЗначениеЗаполнено(ТокенДоступа) Тогда + + Если Не ПараметрыПодписания.Свойство("ТокенДоступа") Тогда РезультатАвторизации = АвторизоватьсяВСервисеМобильнойПодписи(ЗаголовокОшибки); Если РезультатАвторизации.Ошибка <> Неопределено Тогда Результат.Ошибка = РезультатАвторизации.Ошибка; - КонецЕсли; - - Если Результат.Ошибка <> Неопределено Тогда Возврат Результат; КонецЕсли; - - ТокенДоступа = РезультатАвторизации.ТокенДоступа; + ПараметрыПодписания.Вставить("ТокенДоступа", РезультатАвторизации.ТокенДоступа); КонецЕсли; + ТокенДоступа = ПараметрыПодписания.ТокенДоступа; + СвойстваСервисаМобильнойПодписи = СвойстваСервисаМобильнойПодписи(); РесурсНаСервере = СвойстваСервисаМобильнойПодписи.РесурсКорняAPI + "fns-ms/public-api/v1/signings/simplifieds/jobs"; @@ -1117,11 +1766,15 @@ ОтправленВСервис = Неопределено; Иначе РеквизитыПодписантаИзСправочника = ОбщегоНазначения.ЗначенияРеквизитовОбъекта(Подписант, - "ИНН, НомерТелефона, ИННФЛ, ОГРН, ОтправленВСервис"); + "Ссылка, ИНН, НомерТелефона, ИННФЛ, ОГРН, ОтправленВСервис, ВидПодписанта"); ЗаполнитьЗначенияСвойств(ПараметрыПодписанта, РеквизитыПодписантаИзСправочника); ОтправленВСервис = РеквизитыПодписантаИзСправочника.ОтправленВСервис; КонецЕсли; - + + ПараметрыПодписанта.МояПодпись = Истина; + ПараметрыПодписанта.ГосключУКЭП = Ложь; + ПараметрыПодписанта.ГосключУНЭП = Ложь; + Попытка ПроверкаПараметровПодписанта(ПараметрыПодписанта); РеквизитыПодписанта = ПараметрыПодписанта; @@ -1131,6 +1784,7 @@ ИнформацияОбОшибке()), ""); Возврат Результат; КонецПопытки; + Иначе ПараметрыПодписанта = РеквизитыПодписанта; КонецЕсли; @@ -1146,18 +1800,19 @@ СтруктураЗапроса.Вставить("inn", ПараметрыПодписанта.ИННФЛ); КонецЕсли; СтруктураЗапроса.Вставить("documents", Новый Массив); - Если Параметры.ТипПодписи = Перечисления.ТипыПодписиКриптографии.СМеткойДоверенногоВремениCAdEST Тогда + Если ПараметрыПодписания.ТипПодписи = Перечисления.ТипыПодписиКриптографии.СМеткойДоверенногоВремениCAdEST Тогда СтруктураЗапроса.Вставить("signatureType", "T"); - ИначеЕсли Параметры.ТипПодписи = Перечисления.ТипыПодписиКриптографии.CAdESXLongType1 Тогда + ИначеЕсли ПараметрыПодписания.ТипПодписи = Перечисления.ТипыПодписиКриптографии.CAdESXLongType1 Тогда СтруктураЗапроса.Вставить("signatureType", "XLT1"); - ИначеЕсли ЗначениеЗаполнено(Параметры.ТипПодписи) - И Параметры.ТипПодписи <> Перечисления.ТипыПодписиКриптографии.БазоваяCAdESBES - И Параметры.ТипПодписи <> Перечисления.ТипыПодписиКриптографии.ОбычнаяCMS - И Параметры.ТипПодписи <> Перечисления.ТипыПодписиКриптографии.Неопределен Тогда + ИначеЕсли ЗначениеЗаполнено(ПараметрыПодписания.ТипПодписи) + И ПараметрыПодписания.ТипПодписи <> Перечисления.ТипыПодписиКриптографии.БазоваяCAdESBES + И ПараметрыПодписания.ТипПодписи <> Перечисления.ТипыПодписиКриптографии.ОбычнаяCMS + И ПараметрыПодписания.ТипПодписи <> Перечисления.ТипыПодписиКриптографии.Неопределен Тогда Результат.Ошибка = ОшибкаМобильногоСервиса(ЗаголовокОшибки, - СтроковыеФункцииКлиентСервер.ПодставитьПараметрыВСтроку(НСтр("ru='Не поддерживается тип подписи: %1'"), - Параметры.ТипПодписи), ""); + СтроковыеФункцииКлиентСервер.ПодставитьПараметрыВСтроку( + НСтр("ru='В сервисе мобильной подписи не поддерживается тип подписи: %1'"), + ПараметрыПодписания.ТипПодписи), ""); Возврат Результат; КонецЕсли; @@ -1170,7 +1825,6 @@ КонецЕсли; ОшибкаНабораДанных = Неопределено; - Дубли = Новый Соответствие; РазмерЗапроса = 0; @@ -1209,29 +1863,10 @@ Прервать; КонецЕсли; + ПреобразоватьИмяФайла(Элемент.Представление); + РазмерЗапроса = РазмерЗапроса + Размер; - Если СтрДлина(Элемент.Представление) > 250 Тогда - Ошибка = ОшибкаМобильногоСервиса(ЗаголовокОшибки, - СтроковыеФункцииКлиентСервер.ПодставитьПараметрыВСтроку( - НСтр("ru='Длина имени отправляемого файла не должна превышать 250 символов: %1'"), - Элемент.Представление), ""); - Прервать; - КонецЕсли; - - Элемент.Представление = СтрЗаменить(Элемент.Представление, "№", "N"); - Элемент.Представление = СтрЗаменитьПоРегулярномуВыражению(Элемент.Представление, "[^\.\(\)\w,\s-]", "_"); - - Если Дубли.Получить(Элемент.Представление) = Неопределено Тогда - Дубли.Вставить(Элемент.Представление, Истина); - Иначе - Ошибка = ОшибкаМобильногоСервиса(ЗаголовокОшибки, - СтроковыеФункцииКлиентСервер.ПодставитьПараметрыВСтроку( - НСтр("ru='В пакете на подписание не должно быть одинаковых имен файлов: %1'"), - Элемент.Представление), ""); - Прервать; - КонецЕсли; - ЭлементДанных = Новый Структура("title, path", Элемент.Представление, Base64Строка(ДвоичныеДанные)); СтруктураЗапроса.documents.Добавить(ЭлементДанных); КонецЦикла; @@ -1276,8 +1911,11 @@ СтруктураОтвета = СтруктураОтвета(ОтветHTTP); НомерЗадачи = СтруктураОтвета.jobID; Исключение - ПредставлениеОшибки = ОбработкаОшибок.ПодробноеПредставлениеОшибки(ИнформацияОбОшибке()); - Результат.Ошибка = ОшибкаМобильногоСервиса(ЗаголовокОшибки, ПредставлениеОшибки, ИдентификаторЗапроса, СоединениеHTTP, ЗапросHTTP, ОтветHTTP); + ИнформацияОбОшибке = ИнформацияОбОшибке(); + ЗаписьЖурналаРегистрации(ВидОперации, УровеньЖурналаРегистрации.Ошибка,,, + ОбработкаОшибок.ПодробноеПредставлениеОшибки(ИнформацияОбОшибке)); + Результат.Ошибка = ОшибкаМобильногоСервиса(ЗаголовокОшибки, ОбработкаОшибок.КраткоеПредставлениеОшибки( + ИнформацияОбОшибке), ИдентификаторЗапроса, СоединениеHTTP, ЗапросHTTP, ОтветHTTP); Возврат Результат; КонецПопытки; @@ -1285,9 +1923,10 @@ ТекущийПользователь = Пользователи.ТекущийПользователь(); ОтправленныеДокументы = Новый Массив; - Если ТипЗнч(Подписант) = Тип("Структура") Тогда - Подписант = ДобавитьПодписантаВСправочник(ПараметрыПодписанта); - РеквизитыПодписанта.ОтправленВСервис = ОбщегоНазначения.ЗначениеРеквизитаОбъекта(Подписант, "ОтправленВСервис"); + Если ПараметрыПодписанта.Ссылка = Неопределено Тогда + ПараметрыПодписанта.Ссылка = ДобавитьПодписантаВСправочник(ПараметрыПодписанта).Ссылка; + РеквизитыПодписанта.ОтправленВСервис = ОбщегоНазначения.ЗначениеРеквизитаОбъекта( + ПараметрыПодписанта.Ссылка, "ОтправленВСервис"); КонецЕсли; УстановитьПривилегированныйРежим(Истина); @@ -1299,6 +1938,7 @@ ИдентификаторДокумента = Новый УникальныйИдентификатор; НаборЗаписей = РегистрыСведений.СервисМобильнойПодписиСтатусы.СоздатьНаборЗаписей(); + НаборЗаписей.Заполнить(Неопределено); НаборЗаписей.Отбор.ИдентификаторДокумента.Установить(ИдентификаторДокумента); НоваяЗапись = НаборЗаписей.Добавить(); НоваяЗапись.ИдентификаторДокумента = ИдентификаторДокумента; @@ -1309,7 +1949,7 @@ КонецЕсли; НоваяЗапись.Отправитель = ТекущийПользователь; НоваяЗапись.ДатаОтправки = ДатаОтправки; - НоваяЗапись.Подписант = Подписант; + НоваяЗапись.Подписант = ПараметрыПодписанта.Ссылка; НоваяЗапись.Доверенность = ПараметрыПодписания.Доверенность; НоваяЗапись.Комментарий = ПараметрыПодписания.Комментарий; НоваяЗапись.Статус = Перечисления.СервисМобильнойПодписиСтатусы.ОжидаетОбработки; @@ -1377,10 +2017,10 @@ Если Не ЗначениеЗаполнено(СогласиеПодписанта.Код) Тогда ТекстОшибки = НСтр( - "ru='Не подписано согласие подписанта. Подписант должен подписать согласие на получение документов из ""1С:Мобильная подпись"" в приложении ""Моя подпись"" от ФНС.'"); + "ru='Не подписано согласие подписанта. Подписант должен подписать согласие на получение документов из ""1С:Мобильная подпись"" в приложении ""Моя подпись"" (ФНС).'"); Иначе ТекстОшибки = СтроковыеФункцииКлиентСервер.ПодставитьПараметрыВСтроку(НСтр( - "ru='Не подписано согласие подписанта. Сообщите подписанту секретный код %1 для подписания согласия на получение документов из ""1С:Мобильная подпись"" в приложении ""Моя подпись"" от ФНС.'"), + "ru='Не подписано согласие подписанта. Сообщите подписанту секретный код %1 для подписания согласия на получение документов из ""1С:Мобильная подпись"" в приложении ""Моя подпись"" (ФНС).'"), СогласиеПодписанта.Код); КонецЕсли; Результат.Ошибка = ОшибкаМобильногоСервиса(ЗаголовокОшибки, ТекстОшибки, ИдентификаторЗапроса); @@ -1403,8 +2043,8 @@ ТекстОшибки = СтроковыеФункцииКлиентСервер.ПодставитьПараметрыВСтроку(НСтр( "ru='Для подписанта с данными %1 сервис ФНС ответил ""%2"". - |Проверьте данные, убедитесь, что у подписанта установлено приложение ""Моя подпись"" от ФНС и выпущен сертификат. - |Сообщите подписанту секретный код %3 для подписания согласия на получение документов из ""1С:Мобильная подпись"" в приложении ""Моя подпись"" от ФНС.'"), + |Проверьте данные, убедитесь, что у подписанта установлено приложение ""Моя подпись"" (ФНС) и выпущен сертификат. + |Сообщите подписанту секретный код %3 для подписания согласия на получение документов из ""1С:Мобильная подпись"" в приложении ""Моя подпись"" (ФНС).'"), ДанныеПодписанта, ОшибкаКлиентНеНайден(), СогласиеПодписанта.Код); Результат.Ошибка = ОшибкаМобильногоСервиса(ЗаголовокОшибки, ТекстОшибки, ИдентификаторЗапроса); @@ -1443,16 +2083,20 @@ Запрос = Новый Запрос; Запрос.Текст = "ВЫБРАТЬ РАЗЛИЧНЫЕ - | СервисМобильнойПодписиСтатусы.ИдентификаторВСервисе КАК ИдентификаторВСервисе - |ИЗ - | РегистрСведений.СервисМобильнойПодписиСтатусы КАК СервисМобильнойПодписиСтатусы - |ГДЕ - | СервисМобильнойПодписиСтатусы.Операция = ЗНАЧЕНИЕ(Перечисление.СервисМобильнойПодписиОперации.Подписание) - | И СервисМобильнойПодписиСтатусы.Статус = ЗНАЧЕНИЕ(Перечисление.СервисМобильнойПодписиСтатусы.ОжидаетОбработки) - | И СервисМобильнойПодписиСтатусы.ИдентификаторДокумента В(&ИдентификаторыДокументов)"; + | СервисМобильнойПодписиСтатусы.ИдентификаторВСервисе КАК ИдентификаторВСервисе, + | СервисМобильнойПодписиСтатусы.НастройкаОтправкиВГосключ КАК НастройкаОтправкиВГосключ + |ИЗ + | РегистрСведений.СервисМобильнойПодписиСтатусы КАК СервисМобильнойПодписиСтатусы + |ГДЕ + | СервисМобильнойПодписиСтатусы.Операция = ЗНАЧЕНИЕ(Перечисление.СервисМобильнойПодписиОперации.Подписание) + | И СервисМобильнойПодписиСтатусы.Статус = ЗНАЧЕНИЕ(Перечисление.СервисМобильнойПодписиСтатусы.ОжидаетОбработки) + | И СервисМобильнойПодписиСтатусы.ИдентификаторДокумента В (&ИдентификаторыДокументов) + |ИТОГИ + |ПО + | НастройкаОтправкиВГосключ"; Если ИдентификаторыДокументов = Неопределено Тогда - Запрос.Текст = СтрЗаменить(Запрос.Текст, "И СервисМобильнойПодписиСтатусы.ИдентификаторДокумента В(&ИдентификаторыДокументов)", ""); + Запрос.Текст = СтрЗаменить(Запрос.Текст, "И СервисМобильнойПодписиСтатусы.ИдентификаторДокумента В (&ИдентификаторыДокументов)", ""); Иначе Запрос.Текст = СтрЗаменить(Запрос.Текст, "И СервисМобильнойПодписиСтатусы.Статус = ЗНАЧЕНИЕ(Перечисление.СервисМобильнойПодписиСтатусы.ОжидаетОбработки)", ""); Если ТипЗнч("ИдентификаторыДокументов") = Тип("УникальныйИдентификатор") Тогда @@ -1466,31 +2110,57 @@ УстановитьПривилегированныйРежим(Истина); РезультатЗапроса = Запрос.Выполнить(); + ЕстьОшибкиВЖурналеРегистрации = Ложь; + Если Не РезультатЗапроса.Пустой() Тогда - Выборка = РезультатЗапроса.Выбрать(); + ВыборкаПоСервисам = РезультатЗапроса.Выбрать(ОбходРезультатаЗапроса.ПоГруппировкам); - ЗаголовокОшибки = НСтр("ru='Не удалось получить подпись документа в 1С: Мобильная подпись'"); - - РезультатАвторизации = АвторизоватьсяВСервисеМобильнойПодписи(ЗаголовокОшибки); - - Если РезультатАвторизации.Ошибка <> Неопределено Тогда - Если Ошибка = Null Тогда - ВызватьИсключение РезультатАвторизации.Ошибка.ТекстОшибки; + Пока ВыборкаПоСервисам.Следующий() Цикл + + Если ЗначениеЗаполнено(ВыборкаПоСервисам.НастройкаОтправкиВГосключ) И СервисМобильнойПодписи.ИспользоватьГосключ() Тогда + ЗаголовокОшибки = НСтр("ru='Не удалось получить подпись документа в Госключе'"); + РезультатАвторизации = АвторизоватьсяВГосключе(ВыборкаПоСервисам.НастройкаОтправкиВГосключ, ЗаголовокОшибки); // @skip-check query-in-loop - авторизация перед получением результатов + ИначеЕсли Не ЗначениеЗаполнено(ВыборкаПоСервисам.НастройкаОтправкиВГосключ) И СервисМобильнойПодписи.ИспользоватьСервисМобильнойПодписи() Тогда + ЗаголовокОшибки = НСтр("ru='Не удалось получить подпись документа в 1С: Мобильная подпись'"); + РезультатАвторизации = АвторизоватьсяВСервисеМобильнойПодписи(ЗаголовокОшибки); + Иначе + Продолжить; КонецЕсли; - Ошибка = РезультатАвторизации.Ошибка; - КонецЕсли; + + Если РезультатАвторизации.Ошибка <> Неопределено Тогда + Если Ошибка = Null Тогда + ЕстьОшибкиВЖурналеРегистрации = Истина; + ЗаписьЖурналаРегистрации( + НСтр("ru='Сервис мобильной подписи.ПолучениеРезультатовПодписания'", + ОбщегоНазначения.КодОсновногоЯзыка()), УровеньЖурналаРегистрации.Ошибка,, + ВыборкаПоСервисам.НастройкаОтправкиВГосключ, РезультатАвторизации.Ошибка.ТекстОшибки); + Продолжить; + КонецЕсли; + Ошибка = РезультатАвторизации.Ошибка; + КонецЕсли; + + Если ЗначениеЗаполнено(Ошибка) Тогда + Продолжить; + КонецЕсли; + + ТокенДоступа = РезультатАвторизации.ТокенДоступа; - Если ЗначениеЗаполнено(Ошибка) Тогда - Возврат; - КонецЕсли; - - ТокенДоступа = РезультатАвторизации.ТокенДоступа; - - Пока Выборка.Следующий() Цикл - ОбновитьСтатусПодписания(Выборка.ИдентификаторВСервисе, ТокенДоступа); // @skip-check query-in-loop - проверка результатов подписания в мобильном сервисе по задачам + Выборка = ВыборкаПоСервисам.Выбрать(); + + Пока Выборка.Следующий() Цикл + Если ЗначениеЗаполнено(Выборка.НастройкаОтправкиВГосключ) Тогда + ОбновитьСтатусПодписанияВГосключе(Выборка.ИдентификаторВСервисе, Выборка.НастройкаОтправкиВГосключ, ТокенДоступа, Ошибка); // @skip-check query-in-loop - проверка результатов подписания в мобильном сервисе по задачам + Иначе + ОбновитьСтатусПодписания(Выборка.ИдентификаторВСервисе, ТокенДоступа, Ошибка); // @skip-check query-in-loop - проверка результатов подписания в мобильном сервисе по задачам + КонецЕсли; + КонецЦикла; КонецЦикла; КонецЕсли; + Если ЕстьОшибкиВЖурналеРегистрации Тогда + ВызватьИсключение НСтр("ru='Не удалось получить результаты подписания из сервиса мобильной подписи, подробнее см. в журнале регистрации.'"); + КонецЕсли; + КонецПроцедуры Функция РезультатПроверкиОжидаемыхПодписей(ИдентификаторыДокументов, ДляПроверкиПодписиВФорме = Истина) Экспорт @@ -1521,11 +2191,12 @@ | NULL КАК УстановившийПодпись, | NULL КАК ПодписьМатематическиВерна, | NULL КАК ОшибкаМатематическойПроверкиПодписи, - | NULL КАК ОшибкаПроверкиДополнительныхАтрибутов + | NULL КАК ОшибкаПроверкиДополнительныхАтрибутов, + | СервисМобильнойПодписиСтатусы.НастройкаОтправкиВГосключ |ИЗ | РегистрСведений.СервисМобильнойПодписиСтатусы КАК СервисМобильнойПодписиСтатусы |ГДЕ - | СервисМобильнойПодписиСтатусы.ИдентификаторДокумента В(&ИдентификаторДокумента) + | СервисМобильнойПодписиСтатусы.ИдентификаторДокумента В (&ИдентификаторДокумента) | |ОБЪЕДИНИТЬ ВСЕ | @@ -1548,11 +2219,12 @@ | ЭлектронныеПодписи.УстановившийПодпись, | ЭлектронныеПодписи.ПодписьМатематическиВерна, | ЭлектронныеПодписи.ОшибкаМатематическойПроверкиПодписи, - | ЭлектронныеПодписи.ОшибкаПроверкиДополнительныхАтрибутов + | ЭлектронныеПодписи.ОшибкаПроверкиДополнительныхАтрибутов, + | NULL |ИЗ | РегистрСведений.ЭлектронныеПодписи КАК ЭлектронныеПодписи |ГДЕ - | ЭлектронныеПодписи.ИдентификаторПодписи В(&ИдентификаторДокумента)"; + | ЭлектронныеПодписи.ИдентификаторПодписи В (&ИдентификаторДокумента)"; Запрос.УстановитьПараметр("ИдентификаторДокумента", ИдентификаторыДокументов); УстановитьПривилегированныйРежим(Истина); @@ -1592,25 +2264,28 @@ РезультатПроверкиПодписи.ДатаПодписи = СвойстваПодписи.НеподтвержденнаяДатаПодписи; РезультатПроверкиПодписи.Вставить("Подпись", РезультатПодписания); ИначеЕсли Выборка.Статус = Перечисления.СервисМобильнойПодписиСтатусы.Отклонено Тогда - РезультатПроверкиПодписи.ОшибкаПроверкиДополнительныхАтрибутов = НСтр("ru='Отклонено подписание в 1С: Мобильная подпись'"); - Если ТипЗнч(РезультатПодписания) = Тип("Структура") Тогда - Если ЗначениеЗаполнено(РезультатПодписания.ТекстОшибки) Тогда - РезультатПроверкиПодписи.ОшибкаПроверкиДополнительныхАтрибутов = РезультатПодписания.ТекстОшибки; - КонецЕсли; + Если ТипЗнч(РезультатПодписания) = Тип("Структура") И ЗначениеЗаполнено(РезультатПодписания.ТекстОшибки) Тогда + РезультатПроверкиПодписи.ОшибкаПроверкиДополнительныхАтрибутов = ТекстОшибкиОжидаемойПодписи(РезультатПодписания); + ИначеЕсли ЗначениеЗаполнено(Выборка.НастройкаОтправкиВГосключ) Тогда + РезультатПроверкиПодписи.ОшибкаПроверкиДополнительныхАтрибутов = НСтр("ru='Отклонено подписание в Госключе'"); + Иначе + РезультатПроверкиПодписи.ОшибкаПроверкиДополнительныхАтрибутов = НСтр("ru='Отклонено подписание в Моя подпись (ФНС)'"); КонецЕсли; ИначеЕсли Выборка.Статус = Перечисления.СервисМобильнойПодписиСтатусы.Ошибка Тогда - РезультатПроверкиПодписи.ОшибкаПроверкиДополнительныхАтрибутов = НСтр("ru='Не удалось отправить документ в 1С: Мобильная подпись'"); - Если ТипЗнч(РезультатПодписания) = Тип("Структура") Тогда - Если ЗначениеЗаполнено(РезультатПодписания.ТекстОшибки) Тогда - РезультатПроверкиПодписи.ОшибкаПроверкиДополнительныхАтрибутов = РезультатПодписания.ТекстОшибки; - КонецЕсли; + Если ТипЗнч(РезультатПодписания) = Тип("Структура") И ЗначениеЗаполнено(РезультатПодписания.ТекстОшибки) Тогда + РезультатПроверкиПодписи.ОшибкаПроверкиДополнительныхАтрибутов = ТекстОшибкиОжидаемойПодписи(РезультатПодписания); + ИначеЕсли ЗначениеЗаполнено(Выборка.НастройкаОтправкиВГосключ) Тогда + РезультатПроверкиПодписи.ОшибкаПроверкиДополнительныхАтрибутов = НСтр("ru='Не удалось отправить документ в Госключ'"); + Иначе + РезультатПроверкиПодписи.ОшибкаПроверкиДополнительныхАтрибутов = НСтр("ru='Не удалось отправить документ в 1С: Мобильная подпись'"); КонецЕсли; Иначе - РезультатПроверкиПодписи.ОшибкаПроверкиДополнительныхАтрибутов = НСтр("ru='Ожидается подписание документа в 1С: Мобильная подпись'"); - Если ТипЗнч(РезультатПодписания) = Тип("Структура") Тогда - Если ЗначениеЗаполнено(РезультатПодписания.ТекстОшибки) Тогда - РезультатПроверкиПодписи.ОшибкаПроверкиДополнительныхАтрибутов = РезультатПодписания.ТекстОшибки; - КонецЕсли; + Если ТипЗнч(РезультатПодписания) = Тип("Структура") И ЗначениеЗаполнено(РезультатПодписания.ТекстОшибки) Тогда + РезультатПроверкиПодписи.ОшибкаПроверкиДополнительныхАтрибутов = ТекстОшибкиОжидаемойПодписи(РезультатПодписания); + ИначеЕсли ЗначениеЗаполнено(Выборка.НастройкаОтправкиВГосключ) Тогда + РезультатПроверкиПодписи.ОшибкаПроверкиДополнительныхАтрибутов = НСтр("ru='Ожидается подписание документа в Госключе'"); + Иначе + РезультатПроверкиПодписи.ОшибкаПроверкиДополнительныхАтрибутов = НСтр("ru='Ожидается подписание документа в 1С: Мобильная подпись'"); КонецЕсли; КонецЕсли; КонецЕсли; @@ -1623,6 +2298,17 @@ КонецФункции +Функция ТекстОшибкиОжидаемойПодписи(РезультатПодписания) Экспорт + + Если ЗначениеЗаполнено(РезультатПодписания.ЗаголовокОшибки) Тогда + ТекстОшибки = РезультатПодписания.ЗаголовокОшибки + ": " + РезультатПодписания.ТекстОшибки; + Возврат ТекстОшибки; + КонецЕсли; + + Возврат РезультатПодписания.ТекстОшибки; + +КонецФункции + Процедура УдалитьЗапросНаПодписание(ИдентификаторЗадачи, ТокенДоступа = "") ЗаголовокОшибки = НСтр("ru='Не удалось удалить запрос на подписание в 1С: Мобильная подпись'"); @@ -1718,8 +2404,11 @@ Статус = СтруктураОтвета.Status; Исключение Если Ошибка <> Null Тогда - ПредставлениеОшибки = ОбработкаОшибок.ПодробноеПредставлениеОшибки(ИнформацияОбОшибке()); - Ошибка = ОшибкаМобильногоСервиса(ЗаголовокОшибки, ПредставлениеОшибки, ИдентификаторЗапроса, СоединениеHTTP, ЗапросHTTP, ОтветHTTP); + ИнформацияОбОшибке = ИнформацияОбОшибке(); + ЗаписьЖурналаРегистрации(ВидОперации, УровеньЖурналаРегистрации.Ошибка,,, + ОбработкаОшибок.ПодробноеПредставлениеОшибки(ИнформацияОбОшибке)); + Ошибка = ОшибкаМобильногоСервиса(ЗаголовокОшибки, ОбработкаОшибок.КраткоеПредставлениеОшибки( + ИнформацияОбОшибке), ИдентификаторЗапроса, СоединениеHTTP, ЗапросHTTP, ОтветHTTP); Возврат; КонецЕсли; ВызватьИсключение; @@ -1764,6 +2453,186 @@ КонецПроцедуры +Процедура ОбновитьСтатусПодписанияВГосключе(ИдентификаторЗадачи, Настройка, ТокенДоступа = "", Ошибка = Null) + + Статус = Неопределено; + + ЗаголовокОшибки = НСтр("ru='Не удалось получить информацию о подписании документов в 1С: Мобильная подпись'"); + + Если Не ЗначениеЗаполнено(ТокенДоступа) Тогда + РезультатАвторизации = АвторизоватьсяВГосключе(Настройка, ЗаголовокОшибки); + Если РезультатАвторизации.Ошибка <> Неопределено Тогда + Если Ошибка = Null Тогда + ВызватьИсключение РезультатАвторизации.Ошибка.ТекстОшибки; + КонецЕсли; + Ошибка = РезультатАвторизации.Ошибка; + Возврат; + КонецЕсли; + ТокенДоступа = РезультатАвторизации.ТокенДоступа; + КонецЕсли; + + СвойстваСервисаМобильнойПодписи = СвойстваСервисаГосключа(Настройка); + РесурсНаСервере = "/api/gusmev/order/" + ИдентификаторЗадачи; + + ЗаголовкиHTTP = Новый Соответствие(); + ЗаголовкиHTTP.Вставить("Content-Type", "application/json"); + ЗаголовкиHTTP.Вставить("Authorization", "Bearer " + ТокенДоступа); + ИдентификаторЗапроса = ИдентификаторЗадачи; + + ЗапросHTTP = Новый HTTPЗапрос(РесурсНаСервере, ЗаголовкиHTTP); + ОтветHTTP = Неопределено; + ВидОперации = НСтр("ru='Сервис мобильной подписи.Проверка статуса подписания в Госключе'", ОбщегоНазначения.КодОсновногоЯзыка()); + ОтветHTTP = Неопределено; + + Попытка + Соединение = СоединениеССерверомИнтернета(ВидОперации, СвойстваСервисаМобильнойПодписи.АдресСервера); + СоединениеHTTP = Соединение.HTTPСоединение; + ОтветHTTP = СоединениеHTTP.ВызватьHTTPМетод("POST", ЗапросHTTP); + Структура = СтруктураОтвета(ОтветHTTP); + Исключение + Если Ошибка <> Null Тогда + ИнформацияОбОшибке = ИнформацияОбОшибке(); + ЗаписьЖурналаРегистрации(ВидОперации, УровеньЖурналаРегистрации.Ошибка,,, + ОбработкаОшибок.ПодробноеПредставлениеОшибки(ИнформацияОбОшибке)); + Ошибка = ОшибкаМобильногоСервиса(ЗаголовокОшибки, ОбработкаОшибок.КраткоеПредставлениеОшибки( + ИнформацияОбОшибке), ИдентификаторЗапроса, СоединениеHTTP, ЗапросHTTP, ОтветHTTP); + Возврат; + КонецЕсли; + ВызватьИсключение; + КонецПопытки; + + Если ОтветHTTP.КодСостояния = 200 Тогда + + ОшибкаИзСервиса = ""; + Попытка + СтруктураОтвета = СтруктураОтвета(ОтветHTTP); + Если СтруктураОтвета.Свойство("ОшибкаИзСервиса") Тогда + ОшибкаИзСервиса = СтруктураОтвета.ОшибкаИзСервиса; + Иначе + СтруктураЗаявки = ОбщегоНазначения.JSONВЗначение(СтруктураОтвета.order,,Ложь); + Статус = ?(СтруктураЗаявки.Свойство("orderStatusId"), СтруктураЗаявки.orderStatusId, ""); + СтатусСтрокой = ?(СтруктураЗаявки.Свойство("orderStatusName"), СтруктураЗаявки.orderStatusName, ""); + КонецЕсли; + Исключение + Если Ошибка <> Null Тогда + ИнформацияОбОшибке = ИнформацияОбОшибке(); + ЗаписьЖурналаРегистрации(ВидОперации, УровеньЖурналаРегистрации.Ошибка,,, + ОбработкаОшибок.ПодробноеПредставлениеОшибки(ИнформацияОбОшибке)); + Ошибка = ОшибкаМобильногоСервиса(ЗаголовокОшибки, ОбработкаОшибок.КраткоеПредставлениеОшибки( + ИнформацияОбОшибке), ИдентификаторЗапроса, СоединениеHTTP, ЗапросHTTP, ОтветHTTP); + Возврат; + КонецЕсли; + ВызватьИсключение; + КонецПопытки; + + Если Не ПустаяСтрока(ОшибкаИзСервиса) Тогда + ЗаголовокОшибки = НСтр("ru='Отправка документов на подпись была отменена'"); + Ошибка = ОшибкаМобильногоСервиса(ЗаголовокОшибки, ОшибкаИзСервиса, ИдентификаторЗапроса, СоединениеHTTP, ЗапросHTTP, ОтветHTTP); + ЗаписатьРезультатПодписанияВРегистрСтатусов(ИдентификаторЗадачи, Ошибка, Перечисления.СервисМобильнойПодписиСтатусы.Отклонено); + Возврат; + КонецЕсли; + + Если СтатусДокументыПодписаныГосключ(Статус) Тогда + + МассивПодписей = Новый Массив; + Файлы = ?(СтруктураЗаявки.Свойство("orderResponseFiles"), СтруктураЗаявки.orderResponseFiles, Новый Массив); + + Для Каждого Элемент Из Файлы Цикл + + ИмяФайла = Элемент.fileName; + Если СтрЗаканчиваетсяНа(ИмяФайла, "sig") Тогда + Продолжить; + КонецЕсли; + + КоличествоПеренаправлений = 0; + + Попытка + РесурсНаСервере = "/api/gusmev/files/download/" + Формат(СтруктураЗаявки.currentStatusHistoryId, + "ЧГ=0") + "/3?mnemonic=" + КодироватьСтроку(ИмяФайла, СпособКодированияСтроки.КодировкаURL) + "&eserviceCode=" + СтруктураЗаявки.eserviceId; + + ЗапросHTTP = Новый HTTPЗапрос(РесурсНаСервере, ЗаголовкиHTTP); + ОтветHTTP = СоединениеHTTP.ВызватьHTTPМетод("GET", ЗапросHTTP); + + Пока ОтветHTTP.КодСостояния = 302 Цикл + КоличествоПеренаправлений = КоличествоПеренаправлений + 1; + Если КоличествоПеренаправлений > 7 Тогда + ВызватьИсключение НСтр("ru = 'Превышено количество перенаправлений.'"); + КонецЕсли; + РесурсНаСервере = ОтветHTTP.Заголовки.Получить("Location"); + ЗапросHTTP = Новый HTTPЗапрос(РесурсНаСервере, ЗаголовкиHTTP); + ОтветHTTP = СоединениеHTTP.ВызватьHTTPМетод("GET", ЗапросHTTP); + КонецЦикла; + Исключение + Если Ошибка <> Null Тогда + ПредставлениеОшибки = ОбработкаОшибок.ПодробноеПредставлениеОшибки(ИнформацияОбОшибке()); + Ошибка = ОшибкаМобильногоСервиса(ЗаголовокОшибки, ПредставлениеОшибки, ИдентификаторЗапроса, + СоединениеHTTP, ЗапросHTTP, ОтветHTTP); + Возврат; + КонецЕсли; + ВызватьИсключение; + КонецПопытки; + + Если ОтветHTTP.КодСостояния = 200 Тогда + МассивПодписей.Добавить(Новый Структура("title, signature", ИмяФайла, + ОтветHTTP.ПолучитьТелоКакДвоичныеДанные())); + Иначе + + Попытка + СтруктураОтвета = СтруктураОтвета(ОтветHTTP); + Исключение + СтруктураОтвета = Неопределено; + КонецПопытки; + + Если СтруктураОтвета <> Неопределено И СтруктураОтвета.Свойство("ОшибкаИзСервиса") Тогда + Если Ошибка <> Null Тогда + Ошибка = ОшибкаМобильногоСервиса(ЗаголовокОшибки, СтруктураОтвета.ОшибкаИзСервиса, ИдентификаторЗапроса, + СоединениеHTTP, ЗапросHTTP, ОтветHTTP); + Возврат; + КонецЕсли; + ВызватьИсключение СтруктураОтвета.ОшибкаИзСервиса; + Иначе + ПредставлениеОшибки = СтроковыеФункцииКлиентСервер.ПодставитьПараметрыВСтроку( НСтр("ru = 'Сервис Госключа вернул код запроса %1.'"), ОтветHTTP.КодСостояния); + Если Ошибка <> Null Тогда + Ошибка = ОшибкаМобильногоСервиса(ЗаголовокОшибки, ПредставлениеОшибки, ИдентификаторЗапроса, + СоединениеHTTP, ЗапросHTTP, ОтветHTTP); + Возврат; + КонецЕсли; + ВызватьИсключение ПредставлениеОшибки; + КонецЕсли; + КонецЕсли; + КонецЦикла; + + Если МассивПодписей.Количество() > 0 Тогда + ЗаписатьРезультатПодписанияВРегистрСтатусов(ИдентификаторЗадачи, МассивПодписей, Перечисления.СервисМобильнойПодписиСтатусы.Успешно); + КонецЕсли; + + ИначеЕсли Статус = СтатусОшибка() Тогда + ЗаголовокОшибки = НСтр("ru='Не удалось подписать документы в Госключе'"); + ПредставлениеОшибки = ?(СтруктураОтвета.Свойство("ОшибкаИзСервиса"), СтруктураОтвета.ОшибкаИзСервиса, + ОтветHTTP.ПолучитьТелоКакСтроку()); + Ошибка = ОшибкаМобильногоСервиса(ЗаголовокОшибки, ПредставлениеОшибки, ИдентификаторЗапроса, + СоединениеHTTP, ЗапросHTTP, ОтветHTTP); + ЗаписатьРезультатПодписанияВРегистрСтатусов(ИдентификаторЗадачи, Ошибка, + Перечисления.СервисМобильнойПодписиСтатусы.Ошибка); + ИначеЕсли СтатусОтмененГосключ(Статус) Тогда + ЗаголовокОшибки = НСтр("ru='Подписание отменено'"); + Ошибка = ОшибкаМобильногоСервиса(ЗаголовокОшибки, СтатусСтрокой, ИдентификаторЗапроса, СоединениеHTTP, + ЗапросHTTP, ОтветHTTP); + ЗаписатьРезультатПодписанияВРегистрСтатусов(ИдентификаторЗадачи, Ошибка, + Перечисления.СервисМобильнойПодписиСтатусы.Ошибка); + Иначе + ЗаписатьРезультатПодписанияВРегистрСтатусов(ИдентификаторЗадачи, Неопределено, + Перечисления.СервисМобильнойПодписиСтатусы.ОжидаетОбработки); + КонецЕсли; + Иначе + Статус = Неопределено; + ПредставлениеОшибки = ПредставлениеОшибки(ОтветHTTP); + Ошибка = ОшибкаМобильногоСервиса(ЗаголовокОшибки, ПредставлениеОшибки, ИдентификаторЗапроса, СоединениеHTTP, ЗапросHTTP, ОтветHTTP); + ЗаписатьРезультатПодписанияВРегистрСтатусов(ИдентификаторЗадачи, Ошибка, Статус); + КонецЕсли; + +КонецПроцедуры + Процедура ЗаписатьРезультатПодписанияВРегистрСтатусов(ИдентификаторЗадачи, Результат, Статус = Неопределено) УстановитьПривилегированныйРежим(Истина); @@ -1781,7 +2650,8 @@ | СервисМобильнойПодписиСтатусы.ПодписанныйОбъект КАК ПодписанныйОбъект, | СервисМобильнойПодписиСтатусы.Операция КАК Операция, | СервисМобильнойПодписиСтатусы.Комментарий КАК Комментарий, - | СервисМобильнойПодписиСтатусы.Доверенность КАК Доверенность + | СервисМобильнойПодписиСтатусы.Доверенность КАК Доверенность, + | СервисМобильнойПодписиСтатусы.НастройкаОтправкиВГосключ КАК НастройкаОтправкиВГосключ |ИЗ | РегистрСведений.СервисМобильнойПодписиСтатусы КАК СервисМобильнойПодписиСтатусы |ГДЕ @@ -1793,78 +2663,17 @@ Выборка = РезультатЗапроса.Выбрать(); Если Статус = Перечисления.СервисМобильнойПодписиСтатусы.Успешно Тогда - Для Каждого Подпись Из Результат Цикл - Если Выборка.НайтиСледующий(Подпись.title) Тогда - - ИдентификаторДокумента = Выборка.ИдентификаторДокумента; - - НаборЗаписей = РегистрыСведений.СервисМобильнойПодписиСтатусы.СоздатьНаборЗаписей(); - НаборЗаписей.Отбор.ИдентификаторДокумента.Установить(ИдентификаторДокумента); - - Блокировка = Новый БлокировкаДанных; - ЭлементБлокировки = Блокировка.Добавить("РегистрСведений.СервисМобильнойПодписиСтатусы"); - ЭлементБлокировки.УстановитьЗначение("ИдентификаторДокумента", ИдентификаторДокумента); - - НачатьТранзакцию(); - Попытка - Блокировка.Заблокировать(); - НаборЗаписей.Прочитать(); - - Если НаборЗаписей.Выбран() И НаборЗаписей[0].Статус <> Статус Тогда - Если ЗначениеЗаполнено(Выборка.ПодписанныйОбъект) - И ЭлектроннаяПодписьСлужебный.ДоступнаЭлектроннаяПодпись(ТипЗнч(Выборка.ПодписанныйОбъект)) Тогда - - НовыеСвойстваПодписи = ЭлектроннаяПодписьКлиентСервер.НовыеСвойстваПодписи(); - НовыеСвойстваПодписи.Подпись = ЭлектроннаяПодпись.ПодписьВКодировкеDER(Base64Значение(Подпись.signature)); - СвойстваПодписи = ЭлектроннаяПодпись.СвойстваПодписи(НовыеСвойстваПодписи.Подпись); - - Если СвойстваПодписи.Успех = Ложь Тогда - ВызватьИсключение СвойстваПодписи.ТекстОшибки; - КонецЕсли; - - ЗаполнитьЗначенияСвойств(НовыеСвойстваПодписи, СвойстваПодписи); - НовыеСвойстваПодписи.ИдентификаторПодписи = ИдентификаторДокумента; - НовыеСвойстваПодписи.УстановившийПодпись = Выборка.Отправитель; - НовыеСвойстваПодписи.ПодписанныйОбъект = Выборка.ПодписанныйОбъект; - НовыеСвойстваПодписи.Комментарий = Выборка.Комментарий; - Если Не ЗначениеЗаполнено(НовыеСвойстваПодписи.КомуВыданСертификат) Тогда - НовыеСвойстваПодписи.КомуВыданСертификат = Выборка.ПодписантПредставление; - КонецЕсли; - ЭлектроннаяПодпись.ДобавитьПодпись(Выборка.ПодписанныйОбъект, НовыеСвойстваПодписи); - Если ЗначениеЗаполнено(Выборка.Доверенность) И ОбщегоНазначения.ПодсистемаСуществует( - "СтандартныеПодсистемы.МашиночитаемыеДоверенности") Тогда - МодульМашиночитаемыеДоверенностиФНССлужебный = ОбщегоНазначения.ОбщийМодуль( - "МашиночитаемыеДоверенностиФНССлужебный"); - НовыеСвойстваПодписи.РезультатПроверкиПодписиПоМЧД = - МодульМашиночитаемыеДоверенностиФНССлужебный.НовыйРезультатПроверкиПодписиПоМЧД( - Выборка.Доверенность); - КонецЕсли; - - НаборЗаписей.Очистить(); - НаборЗаписей.Записать(); - Иначе - НоваяЗапись = НаборЗаписей[0]; - НоваяЗапись.Статус = Статус; - НоваяЗапись.Результат = Новый ХранилищеЗначения( - ЭлектроннаяПодпись.ПодписьВКодировкеDER(Base64Значение(Подпись.signature)), - Новый СжатиеДанных(9)); - НаборЗаписей.Записать(); - КонецЕсли; + Для Каждого Подпись Из Результат Цикл + Если Выборка.НайтиСледующий(Подпись.title, "НаименованиеДокумента") Тогда + Если ТипЗнч(Подпись.signature) = Тип("Строка") Тогда + ДанныеПодписи = ЭлектроннаяПодпись.ПодписьВКодировкеDER(Base64Значение(Подпись.signature)); + Иначе + ДанныеПодписи = Подпись.signature; КонецЕсли; - - ЗафиксироватьТранзакцию(); - - Исключение - ОтменитьТранзакцию(); - ТекстОшибки = СтроковыеФункцииКлиентСервер.ПодставитьПараметрыВСтроку( - НСтр("ru='Не удалось записать подпись %1(%2): %3'"), Подпись.title, ИдентификаторДокумента, - ОбработкаОшибок.КраткоеПредставлениеОшибки(ИнформацияОбОшибке())); - ЗаписьЖурналаРегистрации( - НСтр("ru='Сервис мобильной подписи.Запись результата подписания'", - ОбщегоНазначения.КодОсновногоЯзыка()), УровеньЖурналаРегистрации.Ошибка,,, ТекстОшибки); - КонецПопытки; - КонецЕсли; - КонецЦикла; + ЗаписатьРезультатПодписи(Выборка, ДанныеПодписи, Статус, Подпись.title); + КонецЕсли; + КонецЦикла; + Иначе Пока Выборка.Следующий() Цикл @@ -1908,6 +2717,78 @@ КонецЕсли; КонецПроцедуры +Процедура ЗаписатьРезультатПодписи(Выборка, ДанныеПодписи, Статус, Наименование) + + ИдентификаторДокумента = Выборка.ИдентификаторДокумента; + + НаборЗаписей = РегистрыСведений.СервисМобильнойПодписиСтатусы.СоздатьНаборЗаписей(); + НаборЗаписей.Заполнить(Неопределено); + НаборЗаписей.Отбор.ИдентификаторДокумента.Установить(ИдентификаторДокумента); + + Блокировка = Новый БлокировкаДанных; + ЭлементБлокировки = Блокировка.Добавить("РегистрСведений.СервисМобильнойПодписиСтатусы"); + ЭлементБлокировки.УстановитьЗначение("ИдентификаторДокумента", ИдентификаторДокумента); + + НачатьТранзакцию(); + Попытка + Блокировка.Заблокировать(); + НаборЗаписей.Прочитать(); + + Если НаборЗаписей.Выбран() И НаборЗаписей[0].Статус <> Статус Тогда + Если ЗначениеЗаполнено(Выборка.ПодписанныйОбъект) + И ЭлектроннаяПодписьСлужебный.ДоступнаЭлектроннаяПодпись(ТипЗнч(Выборка.ПодписанныйОбъект)) Тогда + + НовыеСвойстваПодписи = ЭлектроннаяПодписьКлиентСервер.НовыеСвойстваПодписи(); + НовыеСвойстваПодписи.Подпись = ДанныеПодписи; + СвойстваПодписи = ЭлектроннаяПодпись.СвойстваПодписи(НовыеСвойстваПодписи.Подпись); + + Если СвойстваПодписи.Успех = Ложь Тогда + ВызватьИсключение СвойстваПодписи.ТекстОшибки; + КонецЕсли; + + ЗаполнитьЗначенияСвойств(НовыеСвойстваПодписи, СвойстваПодписи); + НовыеСвойстваПодписи.ИдентификаторПодписи = ИдентификаторДокумента; + НовыеСвойстваПодписи.УстановившийПодпись = Выборка.Отправитель; + НовыеСвойстваПодписи.ПодписанныйОбъект = Выборка.ПодписанныйОбъект; + НовыеСвойстваПодписи.Комментарий = Выборка.Комментарий; + Если Не ЗначениеЗаполнено(НовыеСвойстваПодписи.КомуВыданСертификат) Тогда + НовыеСвойстваПодписи.КомуВыданСертификат = Выборка.ПодписантПредставление; + КонецЕсли; + ЭлектроннаяПодпись.ДобавитьПодпись(Выборка.ПодписанныйОбъект, НовыеСвойстваПодписи); + Если ЗначениеЗаполнено(Выборка.Доверенность) И ОбщегоНазначения.ПодсистемаСуществует( + "СтандартныеПодсистемы.МашиночитаемыеДоверенности") Тогда + МодульМашиночитаемыеДоверенностиФНССлужебный = ОбщегоНазначения.ОбщийМодуль( + "МашиночитаемыеДоверенностиФНССлужебный"); + НовыеСвойстваПодписи.РезультатПроверкиПодписиПоМЧД = + МодульМашиночитаемыеДоверенностиФНССлужебный.НовыйРезультатПроверкиПодписиПоМЧД( + Выборка.Доверенность); + КонецЕсли; + + НаборЗаписей.Очистить(); + НаборЗаписей.Записать(); + Иначе + НоваяЗапись = НаборЗаписей[0]; + НоваяЗапись.Статус = Статус; + НоваяЗапись.Результат = Новый ХранилищеЗначения(ДанныеПодписи, + Новый СжатиеДанных(9)); + НаборЗаписей.Записать(); + КонецЕсли; + КонецЕсли; + + ЗафиксироватьТранзакцию(); + + Исключение + ОтменитьТранзакцию(); + ТекстОшибки = СтроковыеФункцииКлиентСервер.ПодставитьПараметрыВСтроку( + НСтр("ru='Не удалось записать подпись %1(%2): %3'"), Наименование, ИдентификаторДокумента, + ОбработкаОшибок.КраткоеПредставлениеОшибки(ИнформацияОбОшибке())); + ЗаписьЖурналаРегистрации( + НСтр("ru='Сервис мобильной подписи.Запись результата подписания'", + ОбщегоНазначения.КодОсновногоЯзыка()), УровеньЖурналаРегистрации.Ошибка,,, ТекстОшибки); + КонецПопытки; + +КонецПроцедуры + Функция ПредставлениеОшибки(ОтветHTTP) Попытка @@ -1940,7 +2821,15 @@ Функция СтатусУспешно() Возврат "SUCCESS"; -КонецФункции +КонецФункции + +Функция СтатусДокументыПодписаныГосключ(Статус) + Возврат Статус = 3; +КонецФункции + +Функция СтатусОтмененГосключ(Статус) + Возврат Статус = 4; +КонецФункции Функция ОшибкаКлиентНеНайден() Возврат "Клиент с такими данными не найден"; // АПК:1297 Строка из сервиса ФНС @@ -2083,6 +2972,9 @@ СтруктураОтвета = ОбщегоНазначения.JSONВЗначение(ТелоОтвета,,Ложь); Если ТипЗнч(СтруктураОтвета) = Тип("Структура") И СтруктураОтвета.Свойство("error") И ЗначениеЗаполнено(СтруктураОтвета.error) Тогда ОбработатьОшибкуСервиса(СтруктураОтвета); + ИначеЕсли ТипЗнч(СтруктураОтвета) = Тип("Структура") И СтруктураОтвета.Свойство("code") + И ЗначениеЗаполнено(СтруктураОтвета.code) И СтруктураОтвета.code <> "OK" Тогда + ОбработатьОшибкуГосключа(СтруктураОтвета); ИначеЕсли ОтветHTTP.КодСостояния > 202 Тогда Если ТипЗнч(СтруктураОтвета) = Тип("Структура") И СтруктураОтвета.Свойство("message") Тогда @@ -2218,6 +3110,10 @@ СтруктураURI = ОбщегоНазначенияКлиентСервер.СтруктураURI(URLСервера); Результат.Вставить("АдресСервера", СтруктураURI.Схема + "://" + СтруктураURI.ИмяСервера); Результат.Вставить("РесурсКорняAPI", "/" + СтруктураURI.ПутьНаСервере); + Результат.Вставить("Схема", СтруктураURI.Схема); + Результат.Вставить("Порт", СтруктураURI.Порт); + Результат.Вставить("Хост", СтруктураURI.Хост); + Возврат Результат; КонецФункции @@ -2269,21 +3165,14 @@ Функция ОшибкаМобильногоСервиса(ЗаголовокОшибки, ТекстОшибки, ИдентификаторЗапроса, СоединениеHTTP = Неопределено, ЗапросHTTP = Неопределено, ОтветHTTP = Неопределено) - Результат = Новый Структура; - Результат.Вставить("ЗаголовокОшибки", ЗаголовокОшибки); - Результат.Вставить("ТекстОшибки", ТекстОшибки); - Результат.Вставить("ИдентификаторЗапроса", ИдентификаторЗапроса); - Результат.Вставить("ДополнительныеФайлы", ); - + Результат = СервисМобильнойПодписиКлиентСервер.НовоеОписаниеОшибки(ЗаголовокОшибки, ТекстОшибки); + Результат.ИдентификаторЗапроса = ИдентификаторЗапроса; Если СоединениеHTTP <> Неопределено Тогда ПараметрыФайловДляРасследования = ПараметрыФайловДляРасследования(); ПараметрыФайловДляРасследования.СоединениеHTTP = СоединениеHTTP; ПараметрыФайловДляРасследования.Запрос = ЗапросHTTP; ПараметрыФайловДляРасследования.Ответ = ОтветHTTP; - ДополнительныеФайлы = ФайлыДляРасследования(ЗапросHTTP, ОтветHTTP, СоединениеHTTP); - Результат.Вставить("ДополнительныеФайлы", ДополнительныеФайлы); - Иначе - Результат.Вставить("ДополнительныеФайлы", Новый Массив); + Результат.ДополнительныеФайлы = ФайлыДляРасследования(ЗапросHTTP, ОтветHTTP, СоединениеHTTP); КонецЕсли; Возврат Результат; @@ -2353,7 +3242,11 @@ СтрокаЗапроса = ?(ЗначениеЗаполнено(Запрос.ПолучитьТелоКакСтроку()), "POST", "GET") + " " + АдресРесурса + " HTTP/1.1"; RestЗапрос.Добавить(СтрокаЗапроса); Для Каждого Заголовок Из Запрос.Заголовки Цикл - RestЗапрос.Добавить(Заголовок.Ключ+": "+Заголовок.Значение); + Если НРег(Заголовок.Ключ) = "authorization" Тогда + RestЗапрос.Добавить(Заголовок.Ключ+": "+ Лев(Заголовок.Значение, 30) + "*"); + Иначе + RestЗапрос.Добавить(Заголовок.Ключ+": "+Заголовок.Значение); + КонецЕсли; КонецЦикла; RestЗапрос.Добавить(Символы.ПС); @@ -2380,12 +3273,1018 @@ Возврат СтрСоединить(RestЗапрос, Символы.ПС); КонецФункции +Функция ОтправитьНаПодписаниеВГосключ(НаборДанных, Подписант, Параметры, РеквизитыПодписанта = Неопределено) + + ЗаголовокОшибки = НСтр("ru='Не удалось отправить документы на подписание'"); + Результат = Новый Структура("Ошибка, НаборДанных"); + Результат.НаборДанных = НаборДанных; + + Если Не Параметры.Свойство("ТокенДоступа") Или ТекущаяУниверсальнаяДата() < Параметры.ТокенДоступаДействуетДо Тогда + РезультатАвторизации = АвторизоватьсяВГосключе(Параметры.НастройкаОтправки, ЗаголовокОшибки); + Если РезультатАвторизации.Ошибка <> Неопределено Тогда + Результат.Ошибка = РезультатАвторизации.Ошибка; + Возврат Результат; + КонецЕсли; + Параметры.Вставить("ТокенДоступа", РезультатАвторизации.ТокенДоступа); + Параметры.Вставить("ТокенДоступаДействуетДо", РезультатАвторизации.ДействуетДо); + КонецЕсли; + + ТокенДоступа = Параметры.ТокенДоступа; + Если Не Параметры.Свойство("ПарольСертификата") Тогда + УстановитьПривилегированныйРежим(Истина); + Параметры.Вставить("ПарольСертификата", ОбщегоНазначения.ПрочитатьДанныеИзБезопасногоХранилища( + Параметры.НастройкаОтправки.Ссылка, "ПарольСертификата")); + УстановитьПривилегированныйРежим(Ложь); + КонецЕсли; + + СвойстваСервисаМобильнойПодписи = СвойстваСервисаГосключа(Параметры.НастройкаОтправки); + + Если РеквизитыПодписанта = Неопределено Тогда + + ПараметрыПодписанта = СервисМобильнойПодписиКлиентСервер.ПараметрыПодписанта(); + + Если ТипЗнч(Подписант) = Тип("Структура") Тогда + ЗаполнитьЗначенияСвойств(ПараметрыПодписанта, Подписант); + Если Не ЗначениеЗаполнено(Подписант.Ссылка) Тогда + Попытка + Подписант.Ссылка = ДобавитьПодписантаВСправочник(ПараметрыПодписанта).Ссылка; + Исключение + Результат.Ошибка = ОшибкаМобильногоСервиса(ЗаголовокОшибки, СтроковыеФункцииКлиентСервер.ПодставитьПараметрыВСтроку( + НСтр("ru='Подписант: %1.'"), ОбработкаОшибок.КраткоеПредставлениеОшибки(ИнформацияОбОшибке())), + ""); + Возврат Результат; + КонецПопытки; + КонецЕсли; + Иначе + РеквизитыПодписантаИзСправочника = ОбщегоНазначения.ЗначенияРеквизитовОбъекта(Подписант, + "Ссылка, ВидПодписанта, ИНН, СНИЛС, ОГРН, НомерЗаписиОбАккредитации"); + ЗаполнитьЗначенияСвойств(ПараметрыПодписанта, РеквизитыПодписантаИзСправочника); + КонецЕсли; + + ПараметрыПодписанта.МояПодпись = Ложь; + ПараметрыПодписанта.ГосключУКЭП = Параметры.ВидМобильнойПодписи = Перечисления.ВидыМобильныхПодписей.ГосключУКЭП; + ПараметрыПодписанта.ГосключУНЭП = Параметры.ВидМобильнойПодписи = Перечисления.ВидыМобильныхПодписей.ГосключУНЭП; + + Попытка + ПроверкаПараметровПодписанта(ПараметрыПодписанта); + РеквизитыПодписанта = ПараметрыПодписанта; + Исключение + Результат.Ошибка = ОшибкаМобильногоСервиса(ЗаголовокОшибки, СтроковыеФункцииКлиентСервер.ПодставитьПараметрыВСтроку( + НСтр("ru='Подписант: %1.'"), ОбработкаОшибок.КраткоеПредставлениеОшибки(ИнформацияОбОшибке())), ""); + Возврат Результат; + КонецПопытки; + Иначе + ПараметрыПодписанта = РеквизитыПодписанта; + КонецЕсли; + + Если ЗначениеЗаполнено(Параметры.ТипПодписи) + И Параметры.ТипПодписи <> Перечисления.ТипыПодписиКриптографии.БазоваяCAdESBES + И Параметры.ТипПодписи <> Перечисления.ТипыПодписиКриптографии.ОбычнаяCMS + И Параметры.ТипПодписи <> Перечисления.ТипыПодписиКриптографии.СМеткойДоверенногоВремениCAdEST Тогда + + Результат.Ошибка = ОшибкаМобильногоСервиса(ЗаголовокОшибки, + СтроковыеФункцииКлиентСервер.ПодставитьПараметрыВСтроку(НСтр("ru='В Госключе не поддерживается тип подписи: %1'"), + Параметры.ТипПодписи), ""); + Возврат Результат; + КонецЕсли; + + ОшибкаНабораДанных = Неопределено; + + МенеджерКриптографии = Неопределено; + Сертификат = Параметры.НастройкаОтправки.Сертификат; + + РазмерЗапроса = 0; + + АрхивИнформации = Новый ЗаписьZipФайла(); + ВременныйКаталог = ФайловаяСистема.СоздатьВременныйКаталог(); + ВременныеФайлы = Новый Массив; + + Для Каждого Элемент Из НаборДанных Цикл + Если Элемент.Свойство("ИдентификаторДокумента") И ЗначениеЗаполнено(Элемент.ИдентификаторДокумента) Тогда + Продолжить; + КонецЕсли; + + Если ЭтоАдресВременногоХранилища(Элемент.Данные) Тогда + ДвоичныеДанные = ПолучитьИзВременногоХранилища(Элемент.Данные); + Если ТипЗнч(ДвоичныеДанные) <> Тип("ДвоичныеДанные") Тогда + Ошибка = ОшибкаМобильногоСервиса(ЗаголовокОшибки, + СтроковыеФункцииКлиентСервер.ПодставитьПараметрыВСтроку( + НСтр("ru='Не поддерживается тип данных для отправки в сервис: %1 - %2'"), + ТипЗнч(ДвоичныеДанные), Элемент.Представление), ""); + Прервать; + КонецЕсли; + + ИначеЕсли ТипЗнч(Элемент.Данные) = Тип("ДвоичныеДанные") Тогда + ДвоичныеДанные = Элемент.Данные; + Иначе + Ошибка = ОшибкаМобильногоСервиса(ЗаголовокОшибки, + СтроковыеФункцииКлиентСервер.ПодставитьПараметрыВСтроку( + НСтр("ru='Не поддерживается тип данных для отправки в сервис: %1 - %2'"), + ТипЗнч(Элемент.Данные), Элемент.Представление), ""); + Прервать; + КонецЕсли; + + Размер = ДвоичныеДанные.Размер(); + + Если Размер = 0 Тогда + Ошибка = ОшибкаМобильногоСервиса(ЗаголовокОшибки, + СтроковыеФункцииКлиентСервер.ПодставитьПараметрыВСтроку( + НСтр("ru='Пустые данные для подписи: %1'"), + Элемент.Представление), ""); + Прервать; + КонецЕсли; + + ПреобразоватьИмяФайла(Элемент.Представление, Истина); + + РазмерЗапроса = РазмерЗапроса + Размер; + + ДобавитьФайлВАрхив(АрхивИнформации, ДвоичныеДанные, Элемент.Представление, + ВременныйКаталог, ВременныеФайлы); + + Если Элемент.Свойство("СвойстваПодписи") Тогда + Если ЭтоАдресВременногоХранилища(Элемент.СвойстваПодписи) Тогда + СвойстваПодписи = ПолучитьИзВременногоХранилища(Элемент.СвойстваПодписи); + Иначе + СвойстваПодписи = Элемент.СвойстваПодписи; + КонецЕсли; + Подпись = СвойстваПодписи.Подпись; + Иначе + + Попытка + Подпись = ПодписатьДанныеДляОтправкиВГосключ( + ДвоичныеДанные, Сертификат, Параметры.ПарольСертификата, Ложь, МенеджерКриптографии); + Исключение + Подпись = ОбработкаОшибок.КраткоеПредставлениеОшибки(ИнформацияОбОшибке()); + КонецПопытки; + + Если ТипЗнч(Подпись) = Тип("Строка") Тогда + Ошибка = ОшибкаМобильногоСервиса(ЗаголовокОшибки, Подпись, ""); + Прервать; + КонецЕсли; + КонецЕсли; + + Размер = Подпись.Размер(); + + Если Размер = 0 Тогда + Ошибка = ОшибкаМобильногоСервиса(ЗаголовокОшибки, + СтроковыеФункцииКлиентСервер.ПодставитьПараметрыВСтроку( + НСтр("ru='Пустые данные подписи: %1'"), + Элемент.Представление + ".sig"), ""); + Прервать; + КонецЕсли; + + РазмерЗапроса = РазмерЗапроса + Размер; + + ДобавитьФайлВАрхив(АрхивИнформации, Подпись, Элемент.Представление + ".sig", + ВременныйКаталог, ВременныеФайлы); + + КонецЦикла; + + Если Ошибка <> Неопределено Тогда + Результат.Ошибка = Ошибка; + Возврат Результат; + КонецЕсли; + + Если Параметры.ЗапросНаОтправкуДокумента = Неопределено Тогда + Запрос = ЗапросНаОтправкуДокумента(ПараметрыПодписанта, Параметры.НастройкаОтправки); + ДанныеЗапроса = ПолучитьДвоичныеДанныеИзСтроки(Запрос); + Попытка + Подпись = ПодписатьДанныеДляОтправкиВГосключ( + ДанныеЗапроса, Сертификат, Параметры.ПарольСертификата, Ложь, МенеджерКриптографии); + Исключение + Результат.Ошибка = ОбработкаОшибок.КраткоеПредставлениеОшибки(ИнформацияОбОшибке()); + Возврат Результат; + КонецПопытки; + Иначе + ДанныеЗапроса = Параметры.ЗапросНаОтправкуДокумента.ДанныеЗапроса; + СвойстваПодписи = Параметры.ЗапросНаОтправкуДокумента.СвойстваПодписи; + Если ЭтоАдресВременногоХранилища(СвойстваПодписи) Тогда + СвойстваПодписи = ПолучитьИзВременногоХранилища(СвойстваПодписи); + КонецЕсли; + Подпись = СвойстваПодписи.Подпись; + КонецЕсли; + + ИмяФайлаЗапроса = "req.xml"; + ДобавитьФайлВАрхив(АрхивИнформации, ДанныеЗапроса, ИмяФайлаЗапроса, + ВременныйКаталог, ВременныеФайлы); + ДобавитьФайлВАрхив(АрхивИнформации, Подпись, ИмяФайлаЗапроса + ".sig", + ВременныйКаталог, ВременныеФайлы); + + ДД = АрхивИнформации.ПолучитьДвоичныеДанные(); + ОчиститьВременныеФайлы(ВременныеФайлы, ВременныйКаталог); + + РазмерАрхива = ДД.Размер(); + + Если РазмерАрхива > 1000 * 1000 * 50 Тогда + Результат.Ошибка = ОшибкаМобильногоСервиса(ЗаголовокОшибки, + СтроковыеФункцииКлиентСервер.ПодставитьПараметрыВСтроку( + НСтр("ru='Размер отправляемого архива с файлами не должен превышать 50 000 000 байт: %1 байт'"), + РазмерЗапроса), + ""); + Возврат Результат; + КонецЕсли; + + Если РазмерЗапроса > 1024 * 1024 * 100 Тогда + Результат.Ошибка = ОшибкаМобильногоСервиса(ЗаголовокОшибки, + СтроковыеФункцииКлиентСервер.ПодставитьПараметрыВСтроку( + НСтр("ru='Размер отправляемых файлов в одном пакете не должен превышать 100 Мб: %1 байт'"), + РазмерЗапроса), + ""); + Возврат Результат; + КонецЕсли; + + Попытка + НомерЗадачи = ОтправитьЗапросВГосключ(ДД, Параметры.НастройкаОтправки, ПараметрыПодписанта, ТокенДоступа, СвойстваСервисаМобильнойПодписи.АдресСервера); + Исключение + ПредставлениеОшибки = ОбработкаОшибок.КраткоеПредставлениеОшибки(ИнформацияОбОшибке()); + Результат.Ошибка = ОшибкаМобильногоСервиса(ЗаголовокОшибки, ПредставлениеОшибки, ""); + Возврат Результат; + КонецПопытки; + + Если ТипЗнч(НомерЗадачи) = Тип("Структура") Тогда + Результат.Ошибка = НомерЗадачи; + Возврат Результат; + КонецЕсли; + + НомерЗадачи = Формат(НомерЗадачи, "ЧГ=0"); + + ДатаОтправки = ТекущаяДатаСеанса(); + ТекущийПользователь = Пользователи.ТекущийПользователь(); + ОтправленныеДокументы = Новый Массив; + + УстановитьПривилегированныйРежим(Истина); + Для Каждого Элемент Из НаборДанных Цикл + ПредставлениеОшибки = ""; + + НачатьТранзакцию(); + Попытка + ИдентификаторДокумента = Новый УникальныйИдентификатор; + + НаборЗаписей = РегистрыСведений.СервисМобильнойПодписиСтатусы.СоздатьНаборЗаписей(); + НаборЗаписей.Заполнить(Неопределено); + НаборЗаписей.Отбор.ИдентификаторДокумента.Установить(ИдентификаторДокумента); + НоваяЗапись = НаборЗаписей.Добавить(); + НоваяЗапись.ИдентификаторДокумента = ИдентификаторДокумента; + НоваяЗапись.ИдентификаторВСервисе = НомерЗадачи; + НоваяЗапись.НаименованиеДокумента = Элемент.Представление; + Если Элемент.Свойство("Объект") Тогда + НоваяЗапись.ПодписанныйОбъект = Элемент.Объект; + КонецЕсли; + НоваяЗапись.Отправитель = ТекущийПользователь; + НоваяЗапись.ДатаОтправки = ДатаОтправки; + НоваяЗапись.Подписант = ПараметрыПодписанта.Ссылка; + НоваяЗапись.Доверенность = Параметры.Доверенность; + НоваяЗапись.Комментарий = Параметры.Комментарий; + НоваяЗапись.Статус = Перечисления.СервисМобильнойПодписиСтатусы.ОжидаетОбработки; + НоваяЗапись.Операция = Перечисления.СервисМобильнойПодписиОперации.Подписание; + НоваяЗапись.НастройкаОтправкиВГосключ = Параметры.НастройкаОтправки.Ссылка; + НаборЗаписей.Записать(); + + Если Элемент.Свойство("Объект") И ЭлектроннаяПодписьСлужебный.ДоступнаЭлектроннаяПодпись(ТипЗнч(Элемент.Объект)) Тогда + + ВерсияОбъекта = Неопределено; + Элемент.Свойство("ВерсияОбъекта", ВерсияОбъекта); + ЗаблокироватьДанныеДляРедактирования(Элемент.Объект, ВерсияОбъекта, Параметры.ИдентификаторФормы); + ОбъектДанных = Элемент.Объект.ПолучитьОбъект(); + + Блокировка = Новый БлокировкаДанных; + ЭлементБлокировки = Блокировка.Добавить(ОбъектДанных.Метаданные().ПолноеИмя()); + ЭлементБлокировки.УстановитьЗначение("Ссылка", ОбъектДанных.Ссылка); + + Блокировка.Заблокировать(); + + Если Не ОбъектДанных.ПодписанЭП Тогда + ОбъектДанных.ПодписанЭП = Истина; + // Чтобы определить, что это запись с целью добавления/удаления подписи. + ОбъектДанных.ДополнительныеСвойства.Вставить("ЗаписьПодписанногоОбъекта", Истина); + Если ОбъектДанных.Модифицированность() Тогда + ОбъектДанных.Записать(); + КонецЕсли; + КонецЕсли; + + РазблокироватьДанныеДляРедактирования(Элемент.Объект, Параметры.ИдентификаторФормы); + КонецЕсли; + + Элемент.Вставить("ИдентификаторДокумента", ИдентификаторДокумента); + ЗафиксироватьТранзакцию(); + Исключение + ОтменитьТранзакцию(); + ИнформацияОбОшибке = ИнформацияОбОшибке(); + ПредставлениеОшибки = ОбработкаОшибок.КраткоеПредставлениеОшибки(ИнформацияОбОшибке); + ЗаписьЖурналаРегистрации(НСтр("ru='Сервис мобильной подписи.Запись результата отправки на подписание'", ОбщегоНазначения.КодОсновногоЯзыка()), + УровеньЖурналаРегистрации.Ошибка,,, ОбработкаОшибок.ПодробноеПредставлениеОшибки(ИнформацияОбОшибке)); + КонецПопытки; + + Если ЗначениеЗаполнено(ПредставлениеОшибки) Тогда + Результат.Ошибка = ОшибкаМобильногоСервиса(ЗаголовокОшибки, ПредставлениеОшибки, ""); + Возврат Результат; + КонецЕсли; + + КонецЦикла; + + Результат.НаборДанных = НаборДанных; + + Возврат Результат; + +КонецФункции + +Функция АвторизоватьсяВГосключе(Знач Настройка, ЦельАвторизации = "", Подпись = Неопределено) Экспорт + + Если ТипЗнч(Настройка) = Тип("СправочникСсылка.НастройкиОтправкиВГосключ") Тогда + Параметры = СервисМобильнойПодписиКлиентСервер.ПараметрыПодписания(); + Параметры.ВидМобильнойПодписи = Перечисления.ВидыМобильныхПодписей.ГосключУКЭП; + Параметры.НастройкаОтправки = Настройка; + Настройка = НастройкаОтправки(Параметры, Истина); + КонецЕсли; + + Результат = Новый Структура; + Результат.Вставить("ТокенДоступа", ""); + Результат.Вставить("ДействуетДо", Дата(1,1,1)); + Результат.Вставить("Ошибка"); + + ЗаголовокОшибки = ?(ЦельАвторизации = "", НСтр("ru='Не удается авторизоваться в Госключе'"), ЦельАвторизации); + Если Не ЭлектроннаяПодпись.РазрешенДоступКИнтернетСервисам() Тогда + Результат.Ошибка = ОшибкаЗапретаДоступаКИнтернетСервисам(ЗаголовокОшибки); + Возврат Результат; + КонецЕсли; + + СвойстваСервисаМобильнойПодписи = СвойстваСервисаАвторизацииГосключа(Настройка); + + УстановитьПривилегированныйРежим(Истина); + ПараметрыАвторизацииВГосключе = ОбщегоНазначения.ПрочитатьДанныеИзБезопасногоХранилища(Настройка.Ссылка, "ПараметрыАвторизацииВГосключе"); + УстановитьПривилегированныйРежим(Ложь); + + Если ТипЗнч(ПараметрыАвторизацииВГосключе) = Тип("Структура") + И ПараметрыАвторизацииВГосключе.РезультатАвторизации <> Неопределено + И ПараметрыАвторизацииВГосключе.РезультатАвторизации.АдресСервера = СвойстваСервисаМобильнойПодписи.АдресСервера Тогда + + Если ТекущаяУниверсальнаяДата() < ПараметрыАвторизацииВГосключе.РезультатАвторизации.ДействуетДо Тогда + Результат = Новый Структура(ПараметрыАвторизацииВГосключе.РезультатАвторизации); + Возврат Результат; + КонецЕсли; + КонецЕсли; + + Результат.Вставить("АдресСервера", СвойстваСервисаМобильнойПодписи.АдресСервера); + + УстановитьПривилегированныйРежим(Истина); + КлючДоступа = ОбщегоНазначения.ПрочитатьДанныеИзБезопасногоХранилища(Настройка.Ссылка, "КлючДоступа"); + ПарольСертификата = ОбщегоНазначения.ПрочитатьДанныеИзБезопасногоХранилища(Настройка.Ссылка, "ПарольСертификата"); + УстановитьПривилегированныйРежим(Ложь); + + Если Не ЗначениеЗаполнено(КлючДоступа) Тогда + Результат.Ошибка = ОшибкаМобильногоСервиса(ЗаголовокОшибки, СтроковыеФункцииКлиентСервер.ПодставитьПараметрыВСтроку( + НСтр("ru='Не указан ключ доступа в настройке %1'"), Настройка.Ссылка), ""); + Возврат Результат; + КонецЕсли; + + Если Подпись = Неопределено Тогда + Если Не Настройка.ПарольСертификатаУстановлен Тогда + ОповеститьОНеобходимостиАвторизацииВГосключе(Настройка.Ссылка); + Результат.Ошибка = ОшибкаМобильногоСервиса(ЗаголовокОшибки, СтроковыеФункцииКлиентСервер.ПодставитьПараметрыВСтроку( + НСтр("ru='Не задан пароль сертификата для подписания ключа доступа в Госключ в настройке %1.'"), Настройка.Ссылка), ""); + Возврат Результат; + КонецЕсли; + + Если Не Настройка.РазрешеноПодписаниеНаСервере Тогда + ОповеститьОНеобходимостиАвторизацииВГосключе(Настройка.Ссылка); + Результат.Ошибка = ОшибкаМобильногоСервиса(ЗаголовокОшибки, + НСтр("ru='Не настроено подписание на сервере для подписания ключа доступа в Госключ в настройке %1.'"), ""); + Возврат Результат; + КонецЕсли; + + Сертификат = Настройка.Сертификат; + + Попытка + Подпись = ПодписатьДанныеДляОтправкиВГосключ(КлючДоступа, Сертификат, ПарольСертификата, Истина); + Исключение + Подпись = ОбработкаОшибок.КраткоеПредставлениеОшибки(ИнформацияОбОшибке()); + КонецПопытки; + + Если ТипЗнч(Подпись) = Тип("Строка") Тогда + Результат.Ошибка = ОшибкаМобильногоСервиса(ЗаголовокОшибки, СтроковыеФункцииКлиентСервер.ПодставитьПараметрыВСтроку( + НСтр("ru='При подписании запроса на авторизацию: %1'"), Подпись), ""); + Возврат Результат; + КонецЕсли; + КонецЕсли; + + ПодписьСтрока = UrlSafeBase64(Base64Строка(Подпись)); + + РесурсНаСервере = "/esia-rs/api/public/v1/orgs/ext-app/"+ КлючДоступа + "/tkn?signature=" + ПодписьСтрока; + + ЗаголовкиHTTP = Новый Соответствие(); + + ЗаголовкиHTTP.Вставить("Content-Type", "application/json"); + ЗаголовкиHTTP.Вставить("Connection", "Keep-Alive"); + + ЗапросHTTP = Новый HTTPЗапрос(РесурсНаСервере, ЗаголовкиHTTP); + + ОтветHTTP = Неопределено; + ВидОперации = НСтр("ru='Сервис мобильной подписи.Авторизация в Госключе'", ОбщегоНазначения.КодОсновногоЯзыка()); + + Попытка + Соединение = СоединениеССерверомИнтернета(ВидОперации, СвойстваСервисаМобильнойПодписи.АдресСервера); + СоединениеHTTP = Соединение.HTTPСоединение; + ОтветHTTP = СоединениеHTTP.ВызватьHTTPМетод("GET", ЗапросHTTP); + + Исключение + ПредставлениеОшибки = ОбработкаОшибок.КраткоеПредставлениеОшибки(ИнформацияОбОшибке()); + ЗаголовокОшибки = ?(ЦельАвторизации = "", НСтр("ru='Не удалось авторизоваться в Госключе'"), ЦельАвторизации); + Результат.Ошибка = ОшибкаМобильногоСервиса(ЗаголовокОшибки, ПредставлениеОшибки, "", СоединениеHTTP, ЗапросHTTP, ОтветHTTP); + Возврат Результат; + КонецПопытки; + + Если ОтветHTTP.КодСостояния = 200 Тогда + Попытка + СтруктураОтвета = СтруктураОтвета(ОтветHTTP); + Результат.ТокенДоступа = ?(СтруктураОтвета.Свойство("accessTkn"), СтруктураОтвета.accessTkn, ""); + + Если Не ЗначениеЗаполнено(Результат.ТокенДоступа) И СтруктураОтвета.Свойство("ОшибкаИзСервиса") И ЗначениеЗаполнено(СтруктураОтвета.ОшибкаИзСервиса) Тогда + ВызватьИсключение СтруктураОтвета.ОшибкаИзСервиса; + КонецЕсли; + + Исключение + ПредставлениеОшибки = ОбработкаОшибок.ПодробноеПредставлениеОшибки(ИнформацияОбОшибке()); + ЗаголовокОшибки = ?(ЦельАвторизации = "", НСтр("ru='Не удалось получить токен доступа в Госключе'"), ЦельАвторизации); + Результат.Ошибка = ОшибкаМобильногоСервиса(ЗаголовокОшибки, ПредставлениеОшибки, "", СоединениеHTTP, ЗапросHTTP, ОтветHTTP); + Возврат Результат; + КонецПопытки; + Иначе + ЗаголовокОшибки = ?(ЦельАвторизации = "", НСтр("ru='Отказ при получении токена доступа в Госключе'"), ЦельАвторизации); + ПредставлениеОшибки = ПредставлениеОшибки(ОтветHTTP); + ЗаписьЖурналаРегистрации(ВидОперации, УровеньЖурналаРегистрации.Ошибка, , Настройка.Ссылка, + ПредставлениеОшибки); + Результат.Ошибка = ОшибкаМобильногоСервиса(ЗаголовокОшибки, + НСтр("ru='Не удалось получить токен доступа в Госключе. Подробнее см. в журнале регистрации.'"), "", СоединениеHTTP, ЗапросHTTP, ОтветHTTP); + Возврат Результат; + КонецЕсли; + + Если Не ЗначениеЗаполнено(Результат.ТокенДоступа) Тогда + ЗаголовокОшибки = ?(ЦельАвторизации = "", НСтр("ru='Госключ не предоставил токен для авторизации'"), ЦельАвторизации); + ПредставлениеОшибки = НСтр("ru='Госключ не предоставил токен для авторизации.'"); + Результат.Ошибка = ОшибкаМобильногоСервиса(ЗаголовокОшибки, ПредставлениеОшибки, "", СоединениеHTTP, ЗапросHTTP, ОтветHTTP); + Возврат Результат; + КонецЕсли; + + Попытка + РезультатРазбора = РазобратьJWT(Результат.ТокенДоступа); + ДействуетДо = Дата(1970,1,1) + РезультатРазбора.Сообщение["exp"]; + Исключение + ЗаголовокОшибки = ?(ЦельАвторизации = "", НСтр("ru='Не удалось разобрать токен авторизации'"), ЦельАвторизации); + ПредставлениеОшибки = ОбработкаОшибок.ПодробноеПредставлениеОшибки(ИнформацияОбОшибке()); + Результат.Ошибка = ОшибкаМобильногоСервиса(ЗаголовокОшибки, ПредставлениеОшибки, "", СоединениеHTTP, ЗапросHTTP, ОтветHTTP); + Возврат Результат; + КонецПопытки; + + ПараметрыРезультатаАвторизации = ПараметрыРезультатаАвторизацииВГосключе(); + Результат.ДействуетДо = ДействуетДо; + ПараметрыРезультатаАвторизации.РезультатАвторизации = Новый ФиксированнаяСтруктура(Результат); + + УстановитьПривилегированныйРежим(Истина); + ОбщегоНазначения.ЗаписатьДанныеВБезопасноеХранилище(Настройка.Ссылка, ПараметрыРезультатаАвторизации, "ПараметрыАвторизацииВГосключе"); + УстановитьПривилегированныйРежим(Ложь); + + Возврат Результат; + +КонецФункции + +Функция СвойстваСервисаАвторизацииГосключа(Настройка) + + URLСервера = Настройка.АдресЕСИА; + Если Не ЗначениеЗаполнено(URLСервера) Тогда + URLСервера = "https://esia.gosuslugi.ru"; + КонецЕсли; + + Результат = Новый Структура; + СтруктураURI = ОбщегоНазначенияКлиентСервер.СтруктураURI(URLСервера); + Результат.Вставить("АдресСервера", СтруктураURI.Схема + "://" + СтруктураURI.ИмяСервера); + Результат.Вставить("РесурсКорняAPI", "/" + СтруктураURI.ПутьНаСервере); + Результат.Вставить("Схема", СтруктураURI.Схема); + Результат.Вставить("Порт", СтруктураURI.Порт); + Результат.Вставить("Хост", СтруктураURI.Хост); + + Возврат Результат; + +КонецФункции + +Функция НастройкаОтправки(Параметры, ДляАвторизации = Ложь) Экспорт + + НастройкаОтправки = Новый Структура("Госключ", Ложь); + + Если Не ЗначениеЗаполнено(Параметры.ВидМобильнойПодписи) + Или ((Параметры.ВидМобильнойПодписи = Перечисления.ВидыМобильныхПодписей.ГосключУКЭП + Или Параметры.ВидМобильнойПодписи = Перечисления.ВидыМобильныхПодписей.ГосключУНЭП) + И Не ЗначениеЗаполнено(Параметры.НастройкаОтправки)) Тогда + + Если Не ЗначениеЗаполнено(Параметры.ВидМобильнойПодписи) Тогда + Ошибка = НСтр("ru = 'Не указан сервис для отправки документов на подписание.'"); + Иначе + Ошибка = НСтр("ru = 'Недоступны настройки для отправки подписанту в приложение ""Госключ"", обратитесь к администратору.'"); + КонецЕсли; + + Возврат Ошибка; + КонецЕсли; + + Если Параметры.ВидМобильнойПодписи = Перечисления.ВидыМобильныхПодписей.ГосключУКЭП + Или Параметры.ВидМобильнойПодписи = Перечисления.ВидыМобильныхПодписей.ГосключУНЭП Тогда + + НастройкаОтправки = НастройкаОтправкиРеквизиты(Параметры.НастройкаОтправки); + НастройкаОтправки.Вставить("Госключ", Истина); + + РеквизитыОрганизации = СервисМобильнойПодписиКлиентСервер.РеквизитыОрганизации(НастройкаОтправки.Организация); + + Если ЗначениеЗаполнено(НастройкаОтправки.Организация) Тогда + ПриЗаполненииРеквизитовОрганизации(РеквизитыОрганизации); + Иначе + РеквизитыОрганизации.ИНН = НастройкаОтправки.ИНН; + РеквизитыОрганизации.НаименованиеОрганизации = НастройкаОтправки.НаименованиеОрганизации; + РеквизитыОрганизации.ОГРН = НастройкаОтправки.ОГРН; + РеквизитыОрганизации.КодОКАТО = НастройкаОтправки.КодОКАТО; + КонецЕсли; + + Если Не ДляАвторизации Тогда + + Ошибки = Новый Массив; + Если Не ЗначениеЗаполнено(РеквизитыОрганизации.НаименованиеОрганизации) Тогда + Ошибки.Добавить(НСтр("ru = 'не указано наименование организации отправителя'")); + КонецЕсли; + Если Не ЗначениеЗаполнено(РеквизитыОрганизации.ИНН) Тогда + Ошибки.Добавить(НСтр("ru = 'не указан ИНН организации отправителя'")); + КонецЕсли; + Если Не ЗначениеЗаполнено(РеквизитыОрганизации.ОГРН) Тогда + Ошибки.Добавить(НСтр("ru = 'не указан ОГРН организации отправителя'")); + КонецЕсли; + Если Не ЗначениеЗаполнено(РеквизитыОрганизации.КодОКАТО) Тогда + Ошибки.Добавить(НСтр("ru = 'не указан Код ОКАТО организации отправителя'")); + КонецЕсли; + Если Не ЗначениеЗаполнено(НастройкаОтправки.Сертификат) Тогда + Ошибки.Добавить(НСтр("ru = 'не указан сертификат организации отправителя'")); + КонецЕсли; + Если Ошибки.Количество() > 0 Тогда + Ошибка = СтроковыеФункцииКлиентСервер.ПодставитьПараметрыВСтроку( + НСтр("ru = 'В настройке отправки в Госключ ""%1"": + |%2.'"), Параметры.НастройкаОтправки, СтрСоединить(Ошибки, Символы.ПС)); + Возврат Ошибка; + КонецЕсли; + + КонецЕсли; + + ОбщегоНазначенияКлиентСервер.ДополнитьСтруктуру(НастройкаОтправки, РеквизитыОрганизации, Истина); + НастройкаОтправки.Вставить("РазрешеноПодписаниеНаСервере", РазрешеноПодписаниеНаСервере()); + + УстановитьПривилегированныйРежим(Истина); + ПарольСертификатаУстановлен = ЗначениеЗаполнено( + ОбщегоНазначения.ПрочитатьДанныеИзБезопасногоХранилища(Параметры.НастройкаОтправки.Ссылка, "ПарольСертификата")); + НастройкаОтправки.Вставить("ПарольСертификатаУстановлен", ПарольСертификатаУстановлен); + ПараметрыАвторизацииВГосключе = ОбщегоНазначения.ПрочитатьДанныеИзБезопасногоХранилища( + Параметры.НастройкаОтправки.Ссылка, "ПараметрыАвторизацииВГосключе"); + Если ЗначениеЗаполнено(ПараметрыАвторизацииВГосключе) Тогда + ПараметрыАвторизацииВГосключеУстановлены = ТекущаяУниверсальнаяДата() + < ПараметрыАвторизацииВГосключе.РезультатАвторизации.ДействуетДо; + Иначе + ПараметрыАвторизацииВГосключеУстановлены = Ложь; + КонецЕсли; + НастройкаОтправки.Вставить("ПараметрыАвторизацииВГосключеУстановлены", ПараметрыАвторизацииВГосключеУстановлены); + Если Не ПараметрыАвторизацииВГосключеУстановлены И (Не НастройкаОтправки.ПарольСертификатаУстановлен + Или Не НастройкаОтправки.РазрешеноПодписаниеНаСервере) Тогда + НастройкаОтправки.Вставить("Ключ", + ОбщегоНазначения.ПрочитатьДанныеИзБезопасногоХранилища(Параметры.НастройкаОтправки.Ссылка, "КлючДоступа")); + КонецЕсли; + УстановитьПривилегированныйРежим(Ложь); + + КонецЕсли; + + Возврат НастройкаОтправки; +КонецФункции + +Функция НастройкаОтправкиРеквизиты(НастройкаОтправки) + Возврат ОбщегоНазначения.ЗначенияРеквизитовОбъекта(НастройкаОтправки, "Ссылка, АдресСервиса, АдресЕСИА, Сертификат, Организация, ИНН, НаименованиеОрганизации, ОГРН, КодОКАТО"); +КонецФункции + +Процедура ПриЗаполненииРеквизитовОрганизации(Реквизиты) Экспорт + + СтандартнаяОбработка = Истина; + СервисМобильнойПодписиПереопределяемый.ПриЗаполненииРеквизитовОрганизации(Реквизиты, СтандартнаяОбработка); + Если Не СтандартнаяОбработка Тогда + Возврат; + КонецЕсли; + + Если Не ОбщегоНазначения.ПодсистемаСуществует("СтандартныеПодсистемы.Организации") Тогда + Возврат; + КонецЕсли; + + Если Не ЗначениеЗаполнено(Реквизиты.Ссылка) Тогда + Возврат; // Реквизиты организации нельзя заполнить, если организация не выбрана. + КонецЕсли; + + МодульОрганизацииСервер = ОбщегоНазначения.ОбщийМодуль("ОрганизацииСервер"); + СведенияОбОрганизации = МодульОрганизацииСервер.СведенияОбОрганизации(Реквизиты.Ссылка,, ТекущаяДатаСеанса()); + + ЭтоИП = ОбщегоНазначенияКлиентСервер.СвойствоСтруктуры(СведенияОбОрганизации, "ЭтоИП", Ложь); + + Если ЭтоИП Тогда + + Реквизиты.НаименованиеОрганизации = ОбщегоНазначенияКлиентСервер.СвойствоСтруктуры(СведенияОбОрганизации, "ИПНаименование", ""); + Реквизиты.ИНН = ОбщегоНазначенияКлиентСервер.СвойствоСтруктуры(СведенияОбОрганизации, "ИндивидуальныйПредпринимательИНН", ""); + Реквизиты.ОГРН = ОбщегоНазначенияКлиентСервер.СвойствоСтруктуры(СведенияОбОрганизации, "ОГРН", ""); + Реквизиты.ЛицоБезДоверенности = Неопределено; + + Иначе + + Реквизиты.ИНН = ОбщегоНазначенияКлиентСервер.СвойствоСтруктуры(СведенияОбОрганизации, "ИНН", ""); + Реквизиты.НаименованиеОрганизации = ОбщегоНазначенияКлиентСервер.СвойствоСтруктуры(СведенияОбОрганизации, "НаименованиеСокращенное", ""); + Реквизиты.ОГРН = ОбщегоНазначенияКлиентСервер.СвойствоСтруктуры(СведенияОбОрганизации, "ОГРН", ""); + + ЮридическийАдрес = ОбщегоНазначенияКлиентСервер.СвойствоСтруктуры(СведенияОбОрганизации, "АдресОрганизации", ""); + ЮридическийАдресЗначение = ОбщегоНазначенияКлиентСервер.СвойствоСтруктуры(СведенияОбОрганизации, "АдресОрганизацииJSON", ""); + + КонецЕсли; + +КонецПроцедуры + +Функция СвойстваСервисаГосключа(НастройкиПодписания) + + URLСервера = НастройкиПодписания.АдресСервиса; + Если Не ЗначениеЗаполнено(URLСервера) Тогда + URLСервера = "https://www.gosuslugi.ru/"; + КонецЕсли; + + Результат = Новый Структура; + СтруктураURI = ОбщегоНазначенияКлиентСервер.СтруктураURI(URLСервера); + Результат.Вставить("АдресСервера", СтруктураURI.Схема + "://" + СтруктураURI.ИмяСервера); + Результат.Вставить("РесурсКорняAPI", "/" + СтруктураURI.ПутьНаСервере); + Результат.Вставить("Схема", СтруктураURI.Схема); + Результат.Вставить("Порт", СтруктураURI.Порт); + Результат.Вставить("Хост", СтруктураURI.Хост); + + Возврат Результат; + +КонецФункции + +Функция РазрешеноПодписаниеНаСервере() + Возврат ЭлектроннаяПодпись.ОбщиеНастройки().СоздаватьЭлектронныеПодписиНаСервере + Или ОбщегоНазначения.ИнформационнаяБазаФайловая() И Не ОбщегоНазначения.КлиентПодключенЧерезВебСервер(); +КонецФункции + +Функция ПодписатьДанныеДляОтправкиВГосключ(Данные, Сертификат, Пароль, Присоединенная, МенеджерКриптографии = Неопределено) + + Если Не РазрешеноПодписаниеНаСервере() Тогда + Возврат НСтр("ru='Не настроено подписание на сервере.'"); + КонецЕсли; + + ОписаниеОшибки = ""; + Если ТипЗнч(Сертификат) = Тип("СправочникСсылка.СертификатыКлючейЭлектроннойПодписиИШифрования") Тогда + ДанныеСертификата = ЭлектроннаяПодписьСлужебныйВызовСервера.ДанныеСертификата(Сертификат); + Если ТипЗнч(ДанныеСертификата) <> Тип("ДвоичныеДанные") Тогда + Возврат СтроковыеФункцииКлиентСервер.ПодставитьПараметрыВСтроку( + НСтр("ru='Сертификат %1 не содержит данных.'"), Сертификат); + КонецЕсли; + Сертификат = Новый СертификатКриптографии(ДанныеСертификата); + МенеджерКриптографии = ЭлектроннаяПодпись.МенеджерКриптографии("Подписание", Ложь, ОписаниеОшибки, ДанныеСертификата); + ИначеЕсли МенеджерКриптографии = Неопределено Тогда + ДанныеСертификата = Сертификат.Выгрузить(); + МенеджерКриптографии = ЭлектроннаяПодпись.МенеджерКриптографии("Подписание", Ложь, ОписаниеОшибки, ДанныеСертификата); + КонецЕсли; + + Если ЗначениеЗаполнено(ОписаниеОшибки) Тогда + Возврат ОписаниеОшибки; + КонецЕсли; + + Если ЗначениеЗаполнено(Пароль) Тогда + МенеджерКриптографии.ПарольДоступаКЗакрытомуКлючу = Пароль; + КонецЕсли; + + Если Присоединенная Тогда + Параметры = ЭлектроннаяПодпись.ПараметрыCMS(); + Подпись = ЭлектроннаяПодписьСлужебный.ПодписатьCMS(Данные, Параметры, Сертификат, МенеджерКриптографии); + Иначе + Подпись = МенеджерКриптографии.Подписать(Данные, Неопределено, Сертификат, ТипПодписиКриптографии.CAdESBES); + КонецЕсли; + + Возврат Подпись; +КонецФункции + +Функция UrlSafeBase64(Строка) + Строка = СтрЗаменить(Строка, Символы.ВК, ""); + Строка = СтрЗаменить(Строка, Символы.ПС, ""); + Строка = СтрЗаменить(СтрЗаменить(Строка, "+", "-"), "/", "_"); + Возврат СтрЗаменить(Строка, "=", ""); +КонецФункции + +Процедура ОбработатьОшибкуГосключа(СтруктураОтвета) + + Если СтруктураОтвета.code = "VALIDATION_ERROR" Тогда + ОшибкаИзСервиса = СтруктураОтвета.message; + ИначеЕсли СтруктураОтвета.code = "INTERNAL_ERROR" Тогда + ОшибкаИзСервиса = СтроковыеФункцииКлиентСервер.ПодставитьПараметрыВСтроку( + НСтр("ru='Обратитесь в техническую поддержку Госключа или попробуйте позднее. %1 (%2).'"),СтруктураОтвета.message, СтруктураОтвета.code); + Иначе + ОшибкаИзСервиса = СтрШаблон("%1 (%2).", СтруктураОтвета.message, СтруктураОтвета.code); + КонецЕсли; + + СтруктураОтвета.Вставить("ОшибкаИзСервиса", ОшибкаИзСервиса); + +КонецПроцедуры + +Функция РазобратьJWT(Знач Токен) + + Части = СтрРазделить(Токен, "."); + Если Части.Количество() < 3 Тогда + ВызватьИсключение НСтр("ru='Неверный формат JWT'"); + КонецЕсли; + + ЗаголовокBase64 = Части[0]; + СообщениеBase64 = Части[1]; + ПодписьBase64 = Части[2]; + + ЗаголовокJSON = ИзUrlSafeBase64(ЗаголовокBase64); + СообщениеJSON = ИзUrlSafeBase64(СообщениеBase64); + + Результат = Новый Структура; + Результат.Вставить("Заголовок", ОбщегоНазначения.JSONВЗначение(ЗаголовокJSON)); + Результат.Вставить("Сообщение", ОбщегоНазначения.JSONВЗначение(СообщениеJSON)); + Результат.Вставить("Подпись", ПодписьBase64); + + Возврат Результат; +КонецФункции + +Функция ИзUrlSafeBase64(Строка) + + Строка = СтрЗаменить(СтрЗаменить(Строка, "-", "+"), "_", "/"); + + Пока СтрДлина(Строка) % 4 <> 0 Цикл + Строка = Строка + "="; + КонецЦикла; + + ДвоичныеДанные = ПолучитьДвоичныеДанныеИзBase64Строки(Строка); + Возврат ПолучитьСтрокуИзДвоичныхДанных(ДвоичныеДанные, "UTF-8"); + +КонецФункции + +Функция ПараметрыРезультатаАвторизацииВГосключе() + + ПараметрыРезультатаАвторизации = Новый Структура; + ПараметрыРезультатаАвторизации.Вставить("РезультатАвторизации", Неопределено); + Возврат ПараметрыРезультатаАвторизации; + +КонецФункции + +Процедура ОчиститьВременныеФайлы(ВременныеФайлы, ВременныйКаталог) + + Для Каждого ВременныйФайл Из ВременныеФайлы Цикл + ФайловаяСистема.УдалитьВременныйФайл(ВременныйФайл); + КонецЦикла; + + ФайловаяСистема.УдалитьВременныйКаталог(ВременныйКаталог); + +КонецПроцедуры + +Процедура ДобавитьФайлВАрхив(Архив, ДанныеФайла, ИмяФайла, ВременныйКаталог, ВременныеФайлы) + + Разделитель = ПолучитьРазделительПути(); + ВременныйФайл = ВременныйКаталог + + ?(СтрЗаканчиваетсяНа(ВременныйКаталог, Разделитель), "", Разделитель) + + ИмяФайла; + ВременныеФайлы.Добавить(ВременныйФайл); + ДанныеФайла.Записать(ВременныйФайл); + Архив.Добавить(ВременныйФайл); + +КонецПроцедуры + +Функция ОтправитьЗапросВГосключ(ДД, Настройка, ПараметрыПодписанта, МаркерДоступа, АдресСервиса) + + РесурсНаСервере = "/api/gusmev/push"; + + ЗаголовкиHTTP = Новый Соответствие(); + + ЗаголовкиHTTP.Вставить("Content-Type", "multipart/form-data; boundary=My1cV8tyrx"); + ЗаголовкиHTTP.Вставить("Authorization", "Bearer " + МаркерДоступа); + + МассивДвоичныхДанных = Новый Массив(); + + ШаблонФайла = "--My1cV8tyrx + |Content-Disposition: form-data; name=""file""; filename=""req.zip"" + |Content-Type: application/octet-stream + | + |"; + СодержимоеФайла = СтрЗаменить(ШаблонФайла, Символы.ПС, Символы.ВК + Символы.ПС); + + МассивДвоичныхДанных.Добавить(ПолучитьДвоичныеДанныеИзСтроки(СодержимоеФайла)); + МассивДвоичныхДанных.Добавить(ДД); + + ШаблонМетаданных = " + |--My1cV8tyrx + |Content-Disposition: form-data; name=""meta"" + |Content-Type: application/json + | + |"; + + СодержимоеФайла = СтрЗаменить(ШаблонМетаданных, Символы.ПС, Символы.ВК + Символы.ПС); + + МассивДвоичныхДанных.Добавить(ПолучитьДвоичныеДанныеИзСтроки(СодержимоеФайла)); + + Если ЗначениеЗаполнено(ПараметрыПодписанта.ОГРН) Тогда + Код = "60025907" + Иначе + Код = "10000000374" + КонецЕсли; + + Мета = ОбщегоНазначения.ЗначениеВJSON( + Новый Структура("region, serviceCode, targetCode", Настройка.КодОКАТО, Код, "-"+ Код)); + МассивДвоичныхДанных.Добавить(ПолучитьДвоичныеДанныеИзСтроки(Мета)); + + ШаблонФайла = " + |--My1cV8tyrx--"; + СодержимоеФайла = СтрЗаменить(ШаблонФайла, Символы.ПС, Символы.ВК + Символы.ПС); + + МассивДвоичныхДанных.Добавить(ПолучитьДвоичныеДанныеИзСтроки(СодержимоеФайла)); + + ПередаваемыеДанные = СоединитьДвоичныеДанные(МассивДвоичныхДанных); + + ЗапросHTTP = Новый HTTPЗапрос(РесурсНаСервере, ЗаголовкиHTTP); + ЗапросHTTP.УстановитьТелоИзДвоичныхДанных(ПередаваемыеДанные); + + ВидОперации = НСтр("ru='Сервис мобильной подписи.Отправка запроса в Госключ'", ОбщегоНазначения.КодОсновногоЯзыка()); + ОтветHTTP = Неопределено; + Попытка + Соединение = СоединениеССерверомИнтернета(ВидОперации, АдресСервиса); + СоединениеHTTP = Соединение.HTTPСоединение; + ОтветHTTP = СоединениеHTTP.ВызватьHTTPМетод("POST", ЗапросHTTP); + Исключение + ИнформацияОбОшибке = ИнформацияОбОшибке(); + ЗаписьЖурналаРегистрации(ВидОперации, УровеньЖурналаРегистрации.Ошибка,,, + ОбработкаОшибок.ПодробноеПредставлениеОшибки(ИнформацияОбОшибке)); + Ошибка = ОшибкаМобильногоСервиса(НСтр("ru='Не удалось отправить запрос в Госключ'"), + ОбработкаОшибок.КраткоеПредставлениеОшибки(ИнформацияОбОшибке), + "", СоединениеHTTP, ЗапросHTTP, ОтветHTTP); + Возврат Ошибка; + КонецПопытки; + + Попытка + Структура = СтруктураОтвета(ОтветHTTP); + Исключение + ИнформацияОбОшибке = ИнформацияОбОшибке(); + ЗаписьЖурналаРегистрации(ВидОперации, УровеньЖурналаРегистрации.Ошибка,,, + ОбработкаОшибок.ПодробноеПредставлениеОшибки(ИнформацияОбОшибке)); + Ошибка = ОшибкаМобильногоСервиса(НСтр("ru='Не удалось прочитать ответ Госключа'"), + ОбработкаОшибок.КраткоеПредставлениеОшибки(ИнформацияОбОшибке), "", СоединениеHTTP, ЗапросHTTP, ОтветHTTP); + Возврат Ошибка; + КонецПопытки; + + Если Структура.Свойство("ОшибкаИзСервиса") И ЗначениеЗаполнено(Структура.ОшибкаИзСервиса) Тогда + Ошибка = ОшибкаМобильногоСервиса(НСтр("ru='Не удалось отправить запрос в Госключ'"), Структура.ОшибкаИзСервиса, ""); + Возврат Ошибка; + КонецЕсли; + + НомерЗаявки = ?(Структура.Свойство("orderID"), Структура.orderID, ""); + Если ЗначениеЗаполнено(НомерЗаявки) Тогда + ЗаписьЖурналаРегистрации(ВидОперации, УровеньЖурналаРегистрации.Информация, , Настройка.Ссылка, + СтроковыеФункцииКлиентСервер.ПодставитьПараметрыВСтроку( + НСтр("ru='Номер заявки %1, настройка отправки: %2'", ОбщегоНазначения.КодОсновногоЯзыка()), + Формат(НомерЗаявки, "ЧГ=0"), Настройка.Ссылка)); + Возврат НомерЗаявки; + Иначе + ПредставлениеОшибки = НСтр("ru='Не удалось получить идентификатор запроса в Госключе'"); + Ошибка = ОшибкаМобильногоСервиса(НСтр("ru='Госключ вернул пустой номер заявки.'"), ПредставлениеОшибки, "", СоединениеHTTP, ЗапросHTTP, ОтветHTTP); + Возврат Ошибка; + КонецЕсли; + +КонецФункции + +Функция ИдентификаторСхемыМЧД(ПараметрыПодписанта) + Если ЗначениеЗаполнено(ПараметрыПодписанта.ОГРН) + Или ЗначениеЗаполнено(ПараметрыПодписанта.НомерЗаписиОбАккредитации) Тогда + Возврат "urn://www.1c.ru/ssl/gosuslugi/sign_document_ukep_legalperson/1.0.0"; + Иначе + Возврат "urn://www.1c.ru/ssl/gosuslugi/sign_document/1.0.0"; + КонецЕсли; +КонецФункции + +Функция ЦелевоеПространствоИмен(ПараметрыПодписанта) + Если ПараметрыПодписанта.ГосключУНЭП = Истина Тогда + Возврат "urn://mpkey.gosuslugi.ru/sign_document/1.0.0" + Иначе + Возврат "urn://mpkey.gosuslugi.ru/sign_document_ukep/1.0.0" + КонецЕсли; +КонецФункции + +Функция ЗапросНаОтправкуДокумента(ПараметрыПодписанта, ПараметрыОтправителя) Экспорт + + ИдентификаторСхемыМЧД = ИдентификаторСхемыМЧД(ПараметрыПодписанта); + + Запрос = ФабрикаXDTO.Создать(ФабрикаXDTO.Тип(ИдентификаторСхемыМЧД, "SignRequestType")); + + СНИЛС = Лев(ПараметрыПодписанта.СНИЛС, 3) + "-" + Сред(ПараметрыПодписанта.СНИЛС, 4, 3) + "-" + Сред( + ПараметрыПодписанта.СНИЛС, 7, 3) + " " + Прав(ПараметрыПодписанта.СНИЛС, 2); + + Если ЗначениеЗаполнено(ПараметрыПодписанта.НомерЗаписиОбАккредитации) Тогда + ПараметрыОрганизации = ФабрикаXDTO.Создать(ФабрикаXDTO.Тип(ИдентификаторСхемыМЧД, "ForeignOrgType")); + ПараметрыОрганизации.RAFP = ПараметрыПодписанта.НомерЗаписиОбАккредитации; + ПараметрыОрганизации.INN_user = ПараметрыПодписанта.ИННФЛ; + Запрос.ForeignOrg = ПараметрыОрганизации; + Иначе + СНИЛС = Лев(ПараметрыПодписанта.СНИЛС, 3) + "-" + Сред(ПараметрыПодписанта.СНИЛС, 4, 3) + "-" + Сред( + ПараметрыПодписанта.СНИЛС, 7, 3) + " " + Прав(ПараметрыПодписанта.СНИЛС, 2); + + Если ЗначениеЗаполнено(ПараметрыПодписанта.ОГРН) Тогда + ПараметрыОрганизации = ФабрикаXDTO.Создать(ФабрикаXDTO.Тип(ИдентификаторСхемыМЧД, "RFOrgType")); + ПараметрыОрганизации.ogrn = ПараметрыПодписанта.ОГРН; + ПараметрыОрганизации.Snils = СНИЛС; + Запрос.RFOrg = ПараметрыОрганизации; + Иначе + Запрос.Snils = СНИЛС; + КонецЕсли; + КонецЕсли; + + Запрос.Description = НСтр("ru='Документы на подпись'"); + Атрибут = ФабрикаXDTO.Создать(ФабрикаXDTO.Тип(ИдентификаторСхемыМЧД, "AttributeType")); + Атрибут.AttributeName = "orgName"; + Атрибут.AttributeValue = Лев(ПараметрыОтправителя.НаименованиеОрганизации, 250); + Запрос.Attribute.Добавить(Атрибут); + Атрибут = ФабрикаXDTO.Создать(ФабрикаXDTO.Тип(ИдентификаторСхемыМЧД, "AttributeType")); + Атрибут.AttributeName = "orgINN"; + Атрибут.AttributeValue = ПараметрыОтправителя.ИНН; + Запрос.Attribute.Добавить(Атрибут); + + ЗаписьXML = Новый ЗаписьXML; + ЗаписьXML.УстановитьСтроку("UTF-8"); + ЗаписьXML.ЗаписатьОбъявлениеXML(); + ФабрикаXDTO.ЗаписатьXML(ЗаписьXML, Запрос, "SignRequest"); + ЗапросНаОтправкуДокументаXML = ЗаписьXML.Закрыть(); + + ЗапросНаОтправкуДокументаXML = СтрЗаменить(ЗапросНаОтправкуДокументаXML, """" + ИдентификаторСхемыМЧД(ПараметрыПодписанта) + """", + """" + ЦелевоеПространствоИмен(ПараметрыПодписанта) + """"); + + Возврат ЗапросНаОтправкуДокументаXML; + +КонецФункции + +Процедура ПреобразоватьИмяФайла(ИмяФайла, Госключ = Истина) + + Если Госключ Тогда + ИмяФайла = СтроковыеФункции.СтрокаЛатиницей(ИмяФайла); + КонецЕсли; + + ОбщегоНазначенияКлиентСервер.ЗаменитьНедопустимыеСимволыВИмениФайла(ИмяФайла); + МаксимальнаяДлина = ?(Госключ, 150, 250); + Если СтрДлина(ИмяФайла) > МаксимальнаяДлина Тогда + Файл = Новый Файл(ИмяФайла); + ТребуемаяДлина = МаксимальнаяДлина - СтрДлина(Файл.Расширение) - 1; + ИмяБезРасширения = ОбщегоНазначения.СократитьСтрокуКонтрольнойСуммой(Файл.ИмяБезРасширения, ТребуемаяДлина); + ИмяФайла = ИмяБезРасширения + Файл.Расширение; + КонецЕсли; + + ИмяФайла = СтрЗаменитьПоРегулярномуВыражению(ИмяФайла, "[^\.\(\)\w,\s-]", "_"); + Если Не Госключ Тогда + ИмяФайла = СтрЗаменить(ИмяФайла, "№", "N"); + Иначе + ИмяФайла = СтрЗаменить(ИмяФайла, " ", "_"); + КонецЕсли; + +КонецПроцедуры + +Процедура ОповеститьОНеобходимостиАвторизацииВГосключе(Настройка) + + УстановитьОтключениеБезопасногоРежима(Истина); + УстановитьПривилегированныйРежим(Истина); + + ТекстЗапроса = "ВЫБРАТЬ + | НастройкиОтправкиВГосключПользователи.Пользователь.ИдентификаторПользователяИБ КАК ИдентификаторПользователяИБ + |ИЗ + | Справочник.НастройкиОтправкиВГосключ.Пользователи КАК НастройкиОтправкиВГосключПользователи + |ГДЕ + | НастройкиОтправкиВГосключПользователи.Ссылка = &Ссылка + | + |ОБЪЕДИНИТЬ ВСЕ + | + |ВЫБРАТЬ + | НастройкиОтправкиВГосключ.Ответственный.ИдентификаторПользователяИБ + |ИЗ + | Справочник.НастройкиОтправкиВГосключ КАК НастройкиОтправкиВГосключ + |ГДЕ + | НастройкиОтправкиВГосключ.Ссылка = &Ссылка"; + + Запрос = Новый Запрос(ТекстЗапроса); + Запрос.УстановитьПараметр("Ссылка", Настройка); + Выборка = Запрос.Выполнить().Выбрать(); + + Адресаты = Новый Соответствие; + + Пока Выборка.Следующий() Цикл + Адресаты.Вставить(Выборка.ИдентификаторПользователяИБ, ОбщегоНазначенияКлиентСервер.ЗначениеВМассиве("*")); + КонецЦикла; + + СерверныеОповещения.ОтправитьСерверноеОповещение(СервисМобильнойПодписиКлиентСервер.ИмяСерверногоОповещения(), + Настройка, Адресаты); + УстановитьПривилегированныйРежим(Ложь); + УстановитьОтключениеБезопасногоРежима(Ложь); + +КонецПроцедуры + // См. СтандартныеПодсистемыСервер.ПриОпределенииМетодовРазрешенныхДляВызоваКакПроизвольныйКод Процедура ПриОпределенииМетодовРазрешенныхДляВызоваКакПроизвольныйКод(Методы) Экспорт Методы.Вставить("УстановитьПараметрСеансаПараметрыАвторизацииВСервисеМобильнойПодписи"); Методы.Вставить("ОтправитьНаПодписание", Истина); - Методы.Вставить("ПолучениеРезультатовИзСервисаМобильнойПодписи", Истина); КонецПроцедуры diff --git a/SSL/src/CommonModules/СервисМобильнойПодписиСлужебныйВызовСервера/Module.bsl b/SSL/src/CommonModules/СервисМобильнойПодписиСлужебныйВызовСервера/Module.bsl index 5564b3655..1e44d2877 100644 --- a/SSL/src/CommonModules/СервисМобильнойПодписиСлужебныйВызовСервера/Module.bsl +++ b/SSL/src/CommonModules/СервисМобильнойПодписиСлужебныйВызовСервера/Module.bsl @@ -1,5 +1,5 @@ /////////////////////////////////////////////////////////////////////////////////////////////////////// -// Copyright (c) 2024, ООО 1С-Софт +// Copyright (c) 2025, ООО 1С-Софт // Все права защищены. Эта программа и сопроводительные материалы предоставляются // в соответствии с условиями лицензии Attribution 4.0 International (CC BY 4.0) // Текст лицензии доступен по ссылке: @@ -18,21 +18,75 @@ #Область СлужебныеПроцедурыИФункции -Функция ПодписатьДанныеВСервисе(Знач УникальныйИдентификатор, Знач НаборДанных, Знач Подписант, Знач Параметры = Неопределено) Экспорт +Функция АвторизоватьсяВГосключе(Знач Настройка, Знач Цель, Знач Подпись) Экспорт - ПараметрыПодписания = Новый Структура("ТипПодписи, ИдентификаторФормы, Доверенность, ПакетнаяОтправкаНаПодписание"); - Если Параметры <> Неопределено Тогда - ЗаполнитьЗначенияСвойств(ПараметрыПодписания, Параметры); + Результат = СервисМобильнойПодписиСлужебный.АвторизоватьсяВГосключе(Настройка, Цель, Подпись); + Если ЗначениеЗаполнено(Результат.Ошибка) Тогда + Возврат Результат.Ошибка; КонецЕсли; + + Возврат Истина; + +КонецФункции + +Функция НастройкаОтправки(Знач ПараметрыПодписания, ДляАвторизации = Ложь) Экспорт + Возврат СервисМобильнойПодписиСлужебный.НастройкаОтправки(ПараметрыПодписания, ДляАвторизации); +КонецФункции + +Функция ЗапросНаОтправкуДокумента(Знач ПараметрыПодписанта, Знач ВидМобильнойПодписи, Знач НастройкаОтправки, Знач УникальныйИдентификатор) Экспорт + + ПараметрыПодписанта.МояПодпись = Ложь; + ПараметрыПодписанта.ГосключУКЭП = ВидМобильнойПодписи = Перечисления.ВидыМобильныхПодписей.ГосключУКЭП; + ПараметрыПодписанта.ГосключУНЭП = ВидМобильнойПодписи = Перечисления.ВидыМобильныхПодписей.ГосключУНЭП; + + Запрос = СервисМобильнойПодписиСлужебный.ЗапросНаОтправкуДокумента(ПараметрыПодписанта, НастройкаОтправки); + Возврат ПоместитьВоВременноеХранилище(ПолучитьДвоичныеДанныеИзСтроки(Запрос), УникальныйИдентификатор); + +КонецФункции + +Функция ПодписатьДанныеВСервисе(Знач УникальныйИдентификатор, Знач НаборДанных, Знач Подписант, Знач Параметры) Экспорт + + ПараметрыПодписания = СервисМобильнойПодписиКлиентСервер.ПараметрыПодписания(); + ЗаполнитьЗначенияСвойств(ПараметрыПодписания, Параметры); + Если Не ЗначениеЗаполнено(ПараметрыПодписания.ИдентификаторФормы) Тогда ПараметрыПодписания.ИдентификаторФормы = УникальныйИдентификатор; + КонецЕсли; + + Если ТипЗнч(ПараметрыПодписания.НастройкаОтправки) <> Тип("Структура") Тогда + НастройкаОтправки = СервисМобильнойПодписиСлужебный.НастройкаОтправки(ПараметрыПодписания); + Если ТипЗнч(НастройкаОтправки) = Тип("Строка") Тогда + Возврат НастройкаОтправки; + КонецЕсли; + ПараметрыПодписания.НастройкаОтправки = НастройкаОтправки; КонецЕсли; + Если ПараметрыПодписания.НаборДанныхПроверен <> Истина Тогда + НаборДанныхПроверен = СервисМобильнойПодписиКлиентСервер.ПроверкаНабораДанных(НаборДанных, ПараметрыПодписания); + Если ТипЗнч(НаборДанныхПроверен) = Тип("Строка") Тогда + Возврат НаборДанныхПроверен; + КонецЕсли; + КонецЕсли; + + ПараметрыПодписания.НаборДанныхПроверен = Истина; + Для Каждого Элемент Из НаборДанных Цикл Если ЭтоАдресВременногоХранилища(Элемент.Данные) Тогда Элемент.Данные = ПолучитьИзВременногоХранилища(Элемент.Данные); КонецЕсли; + Если Элемент.Свойство("СвойстваПодписи") И ЭтоАдресВременногоХранилища(Элемент.СвойстваПодписи) Тогда + Элемент.СвойстваПодписи = ПолучитьИзВременногоХранилища(Элемент.СвойстваПодписи); + КонецЕсли; КонецЦикла; + + Если ЗначениеЗаполнено(ПараметрыПодписания.ЗапросНаОтправкуДокумента) Тогда + ПараметрыПодписания.ЗапросНаОтправкуДокумента.ДанныеЗапроса = ПолучитьИзВременногоХранилища( + ПараметрыПодписания.ЗапросНаОтправкуДокумента.ДанныеЗапроса); + Если ЭтоАдресВременногоХранилища(ПараметрыПодписания.ЗапросНаОтправкуДокумента.СвойстваПодписи) Тогда + ПараметрыПодписания.ЗапросНаОтправкуДокумента.СвойстваПодписи = ПолучитьИзВременногоХранилища( + ПараметрыПодписания.ЗапросНаОтправкуДокумента.СвойстваПодписи); + КонецЕсли; + КонецЕсли; ПараметрыВыполнения = ДлительныеОперации.ПараметрыВыполненияФункции(УникальныйИдентификатор); Возврат ДлительныеОперации.ВыполнитьФункцию(ПараметрыВыполнения, "СервисМобильнойПодписиСлужебный.ОтправитьНаПодписание", @@ -40,6 +94,7 @@ КонецФункции + Функция РезультатПроверкиОжидаемойПодписи(Знач Данные, Знач ИдентификаторПодписи, Знач ПараметрыПроверкиПодписи) Экспорт Результат = СервисМобильнойПодписиСлужебный.РезультатПроверкиОжидаемыхПодписей(ИдентификаторПодписи, Истина); @@ -47,7 +102,7 @@ РезультатПроверкиПодписи = ЭлектроннаяПодписьКлиентСервер.РезультатПроверкиПодписи(); РезультатПроверкиПодписи.Вставить("ДатаПодписи"); РезультатПроверкиПодписи.Вставить("ИдентификаторПодписи", ИдентификаторПодписи); - РезультатПроверкиПодписи.Вставить("ОшибкаПроверкиДополнительныхАтрибутов", Результат.Ошибка.ЗаголовокОшибки + Символы.ПС + Результат.Ошибка.ТекстОшибки); + РезультатПроверкиПодписи.Вставить("ОшибкаПроверкиДополнительныхАтрибутов", СервисМобильнойПодписиСлужебный.ТекстОшибкиОжидаемойПодписи(Результат.Ошибка)); Возврат РезультатПроверкиПодписи; КонецЕсли; diff --git a/SSL/src/CommonModules/СервисМобильнойПодписиСлужебныйКлиент/Module.bsl b/SSL/src/CommonModules/СервисМобильнойПодписиСлужебныйКлиент/Module.bsl new file mode 100644 index 000000000..67095c700 --- /dev/null +++ b/SSL/src/CommonModules/СервисМобильнойПодписиСлужебныйКлиент/Module.bsl @@ -0,0 +1,729 @@ +/////////////////////////////////////////////////////////////////////////////////////////////////////// +// Copyright (c) 2025, ООО 1С-Софт +// Все права защищены. Эта программа и сопроводительные материалы предоставляются +// в соответствии с условиями лицензии Attribution 4.0 International (CC BY 4.0) +// Текст лицензии доступен по ссылке: +// https://creativecommons.org/licenses/by/4.0/legalcode +/////////////////////////////////////////////////////////////////////////////////////////////////////// + +#Область СлужебныйПрограммныйИнтерфейс + +Процедура ДобавитьНастройкуОтправкиВГосключ(ВладелецФормы = Неопределено, ОповещениеОЗавершении = Неопределено) Экспорт + + РежимОткрытияОкна = ?(ВладелецФормы = Неопределено, Неопределено, + РежимОткрытияОкнаФормы.БлокироватьОкноВладельца); + + ОткрытьФорму("Справочник.НастройкиОтправкиВГосключ.Форма.ФормаЭлемента", , ВладелецФормы,,,, + ОповещениеОЗавершении, РежимОткрытияОкна); + +КонецПроцедуры + +Функция ИмяФормыОтправкиНаПодписание() Экспорт + + Возврат "Справочник.ПодписантыСервисаМобильнойПодписи.Форма.ОтправитьНаПодписание"; + +КонецФункции + +Процедура ПроверитьОжидаемуюПодпись(Оповещение, Данные, ИдентификаторПодписи, ПараметрыПроверкиПодписи) Экспорт + + Результат = СервисМобильнойПодписиСлужебныйВызовСервера.РезультатПроверкиОжидаемойПодписи(Данные, ИдентификаторПодписи, ПараметрыПроверкиПодписи); + СвойстваЗаписаннойПодписи = Неопределено; + Если Результат.Свойство("ЗаписаннаяПодпись", СвойстваЗаписаннойПодписи) Тогда + ЗаполнитьЗначенияСвойств(Оповещение.ДополнительныеПараметры.СтрокаПодписи, Результат); + Оповещение.ДополнительныеПараметры.СтрокаПодписи.АдресПодписи = ПоместитьВоВременноеХранилище( + Результат.Подпись, Оповещение.ДополнительныеПараметры.Форма.УникальныйИдентификатор); + Оповещение.ДополнительныеПараметры.СтрокаПодписи.АдресСертификата = ПоместитьВоВременноеХранилище( + Результат.Сертификат, Оповещение.ДополнительныеПараметры.Форма.УникальныйИдентификатор); + Оповещение.ДополнительныеПараметры.СтрокаПодписи.ПорядковыйНомер = СвойстваЗаписаннойПодписи.ПорядковыйНомер; + ЭлектроннаяПодписьКлиент.ПроверитьПодпись(Оповещение, Данные, Результат.Подпись,,,ПараметрыПроверкиПодписи); + Возврат; + КонецЕсли; + ВыполнитьОбработкуОповещения(Оповещение, Результат); + +КонецПроцедуры + +// Подписание с получением результата из формы ПодписаниеДанных +Процедура ПодписатьДанныеВСервисе(Оповещение, КонтекстПодписания, ПараметрыПодписания) Экспорт + + ОписаниеДанных = КонтекстПодписания.ПараметрыВыполнения.ОписаниеДанных; + Подписант = ОписаниеДанных.ВыбранныйПодписант; + + НаборДанных = Новый Массив; + СписокПредставлений = Неопределено; + ОписаниеДанных.Свойство("СписокПредставлений", СписокПредставлений); + + Если ОписаниеДанных.Свойство("Данные") + Или ОписаниеДанных.Свойство("Объект") Тогда + ЗаполнитьНаборДанныхДляОтправкиНаПодписание(НаборДанных, ОписаниеДанных, СписокПредставлений, 0); + Иначе + Индекс = 0; + Для каждого ЭлементДанных Из ОписаниеДанных.НаборДанных Цикл + ЗаполнитьНаборДанныхДляОтправкиНаПодписание(НаборДанных, ЭлементДанных, СписокПредставлений, Индекс); + КонецЦикла; + КонецЕсли; + + ПараметрыВыполнения = Новый Структура; + ПараметрыВыполнения.Вставить("КонтекстПодписания", КонтекстПодписания); + ПараметрыВыполнения.Вставить("ОповещениеОПодписанииВСервисе", Оповещение); + ПараметрыВыполнения.Вставить("ЭтоПодписание", Истина); + + НастройкаОтправки = СервисМобильнойПодписиСлужебныйВызовСервера.НастройкаОтправки(ПараметрыПодписания); + Если ТипЗнч(НастройкаОтправки) = Тип("Строка") Тогда + ОбработатьОшибку(ПараметрыВыполнения, НастройкаОтправки); + Возврат; + КонецЕсли; + + ПараметрыПодписания.НастройкаОтправки = НастройкаОтправки; + + НаборДанныхПроверен = СервисМобильнойПодписиКлиентСервер.ПроверкаНабораДанных(НаборДанных, ПараметрыПодписания); + Если ТипЗнч(НаборДанныхПроверен) = Тип("Строка") Тогда + ОбработатьОшибку(ПараметрыВыполнения, НаборДанныхПроверен); + Возврат; + КонецЕсли; + + ПараметрыПодписания.НаборДанныхПроверен = Истина; + ПараметрыВыполнения.Вставить("ПараметрыПодписания", ПараметрыПодписания); + + Если НастройкаОтправки.Госключ И (Не НастройкаОтправки.ПарольСертификатаУстановлен + Или Не НастройкаОтправки.РазрешеноПодписаниеНаСервере) Тогда + + Контекст = Новый Структура; + Контекст.Вставить("ПараметрыВыполнения", ПараметрыВыполнения); + Контекст.Вставить("НаборДанных", НаборДанных); + ПодписатьДанныеПередОтправкойВГосключ(Контекст); + Возврат; + + КонецЕсли; + + ПодписатьДанныеВСервисеДлительнаяОперация(ПараметрыВыполнения, НаборДанных); + +КонецПроцедуры + +Процедура ПодписантПриОткрытии(Форма, Элемент, СтандартнаяОбработка) Экспорт + + Если Не ЗначениеЗаполнено(Форма.Подписант) Тогда + СтандартнаяОбработка = Ложь; + ДобавитьПодписантаВФорме(Форма, Элемент); + КонецЕсли; + +КонецПроцедуры + +Процедура ПодписантПриСоздании(Форма, Элемент, СтандартнаяОбработка) Экспорт + + СтандартнаяОбработка = Ложь; + ДобавитьПодписантаВФорме(Форма, Элемент); + +КонецПроцедуры + +Процедура ПодписантПриОчистке(Форма, Элемент, СтандартнаяОбработка) Экспорт + + СтандартнаяОбработка = Ложь; + Форма.Подписант = ПредопределенноеЗначение("Справочник.ПодписантыСервисаМобильнойПодписи.ПустаяСсылка"); + +КонецПроцедуры + +// См. СтандартныеПодсистемыКлиент.ПриПолученииСерверногоОповещения. +Процедура ПриПолученииСерверногоОповещения(ИмяОповещения, Результат) Экспорт + + Если ИмяОповещения <> СервисМобильнойПодписиКлиентСервер.ИмяСерверногоОповещения() Тогда + Возврат; + КонецЕсли; + + Если ТипЗнч(Результат) = Тип("СправочникСсылка.НастройкиОтправкиВГосключ") Тогда + + ПоказатьОповещениеПользователя( + НСтр("ru = 'Требуется авторизация в Госключе'"), + Новый ОписаниеОповещения("ОткрытьНастройкуОтправкиВГосключ", ЭтотОбъект, Результат), Результат, + БиблиотекаКартинок.ДиалогВосклицание, СтатусОповещенияПользователя.Важное, Результат); + + КонецЕсли; + +КонецПроцедуры + +#КонецОбласти + +#Область СлужебныеПроцедурыИФункции + +Процедура ОткрытьНастройкуОтправкиВГосключ(Настройка) Экспорт + ПоказатьЗначение(, Настройка); +КонецПроцедуры + +// Отправка без получения результата из формы ОтправкаНаПодписание +Процедура ОтправитьНаПодписаниеВСервис(Оповещение, КонтекстПодписания, ПараметрыПодписания) Экспорт + + ОписаниеДанных = КонтекстПодписания.ПараметрыВыполнения.ОписаниеДанных; + Подписант = ОписаниеДанных.ВыбранныйПодписант; + + ПараметрыВыполнения = Новый Структура; + ПараметрыВыполнения.Вставить("КонтекстПодписания", КонтекстПодписания); + ПараметрыВыполнения.Вставить("ОповещениеОПодписанииВСервисе", Оповещение); + ПараметрыВыполнения.Вставить("ЭтоПодписание", Ложь); + + НаборДанных = Новый Массив; + Успех = Истина; + + Индекс = -1; + Для Каждого Элемент Из ОписаниеДанных.НаборДанных Цикл + Индекс = Индекс +1; + + Если ТипЗнч(Элемент.Данные) <> Тип("Строка") И ТипЗнч(Элемент.Данные) <> Тип("ДвоичныеДанные") Тогда + ОписаниеДанных.Вставить("ТекущийЭлементНабораДанных", Элемент); + ОбработатьОшибку(ПараметрыВыполнения, СтроковыеФункцииКлиентСервер.ПодставитьПараметрыВСтроку( + НСтр("ru='Не поддерживается отправка в сервис данных с типом %1'"), ТипЗнч(Элемент.Данные))); + Возврат; + КонецЕсли; + + Структура = Новый Структура; + Структура.Вставить("Данные", Элемент.Данные); + + Если Элемент.Свойство("Объект") Тогда + Структура.Вставить("Объект", Элемент.Объект); + КонецЕсли; + Если Элемент.Свойство("ВерсияОбъекта") Тогда + Структура.Вставить("ВерсияОбъекта", Элемент.ВерсияОбъекта); + КонецЕсли; + + Структура.Вставить("Представление", Элемент.Представление.Представление); + НаборДанных.Добавить(Структура); + КонецЦикла; + + СписокПредставлений = Неопределено; + ОписаниеДанных.Свойство("СписокПредставлений", СписокПредставлений); + + НастройкаОтправки = СервисМобильнойПодписиСлужебныйВызовСервера.НастройкаОтправки(ПараметрыПодписания); + Если ТипЗнч(НастройкаОтправки) = Тип("Строка") Тогда + ОбработатьОшибку(ПараметрыВыполнения, НастройкаОтправки); + Возврат; + КонецЕсли; + + ПараметрыПодписания.НастройкаОтправки = НастройкаОтправки; + + ПроверкаНабораДанных = СервисМобильнойПодписиКлиентСервер.ПроверкаНабораДанных(НаборДанных, ПараметрыПодписания); + + Если ТипЗнч(ПроверкаНабораДанных) = Тип("Строка") Тогда + ОбработатьОшибку(ПараметрыВыполнения, ПроверкаНабораДанных); + Возврат; + КонецЕсли; + + ПараметрыПодписания.НаборДанныхПроверен = Истина; + ПараметрыВыполнения.Вставить("ПараметрыПодписания", ПараметрыПодписания); + + Если НастройкаОтправки.Госключ И (Не НастройкаОтправки.ПарольСертификатаУстановлен + Или Не НастройкаОтправки.РазрешеноПодписаниеНаСервере) Тогда + + Контекст = Новый Структура; + Контекст.Вставить("ПараметрыВыполнения", ПараметрыВыполнения); + Контекст.Вставить("НаборДанных", НаборДанных); + ПодписатьДанныеПередОтправкойВГосключ(Контекст); + Возврат; + + КонецЕсли; + + ПодписатьДанныеВСервисеДлительнаяОперация(ПараметрыВыполнения, НаборДанных); + +КонецПроцедуры + +Процедура ПодписатьДанныеВСервисеДлительнаяОперация(ПараметрыВыполнения, НаборДанных) + + ДлительнаяОперация = СервисМобильнойПодписиСлужебныйВызовСервера.ПодписатьДанныеВСервисе( + ПараметрыВыполнения.КонтекстПодписания.ИдентификаторФормы, + НаборДанных, ПараметрыВыполнения.КонтекстПодписания.ПараметрыВыполнения.ОписаниеДанных.ВыбранныйПодписант, + ПараметрыВыполнения.ПараметрыПодписания); + + Если ТипЗнч(ДлительнаяОперация) = Тип("Строка") Тогда + ОбработатьОшибку(ПараметрыВыполнения, ДлительнаяОперация); + Возврат; + КонецЕсли; + + ОповещениеОЗавершении = Новый ОписаниеОповещения("ПослеОтправкиНаПодписаниеДанныхВСервис", ЭтотОбъект, ПараметрыВыполнения); + ПараметрыОжидания = ДлительныеОперацииКлиент.ПараметрыОжидания(ПараметрыВыполнения.КонтекстПодписания.ПараметрыВыполнения.Форма); + Если ПараметрыВыполнения.ПараметрыПодписания.НастройкаОтправки.Госключ Тогда + ПараметрыОжидания.Заголовок = НСтр("ru='Отправка документов на подписание в приложение ""Госключ""'"); + Иначе + ПараметрыОжидания.Заголовок = НСтр("ru='Отправка документов на подписание в приложение ""Моя подпись"" (ФНС)'"); + КонецЕсли; + ПараметрыОжидания.ВыводитьОкноОжидания = Истина; + ДлительныеОперацииКлиент.ОжидатьЗавершение(ДлительнаяОперация, ОповещениеОЗавершении, ПараметрыОжидания); + +КонецПроцедуры + +Процедура ПодписатьДанныеПередОтправкойВГосключ(Контекст) + + НастройкаОтправки = Контекст.ПараметрыВыполнения.ПараметрыПодписания.НастройкаОтправки; + Если Не НастройкаОтправки.ПараметрыАвторизацииВГосключеУстановлены Тогда + Если Не ЗначениеЗаполнено(НастройкаОтправки.Ключ) Тогда + ОбработатьОшибку(Контекст.ПараметрыВыполнения, + СтроковыеФункцииКлиентСервер.ПодставитьПараметрыВСтроку( + НСтр("ru='Не указан ключ доступа в настройке %1'"), НастройкаОтправки.Ссылка)); + Возврат; + КонецЕсли; + АвторизоватьсяВГосключе(Контекст); + Возврат; + КонецЕсли; + + ПодписатьЗаявлениеИНаборДанных(Контекст); + +КонецПроцедуры + +Процедура АвторизоватьсяВГосключе(Контекст) + + НастройкаОтправки = Контекст.ПараметрыВыполнения.ПараметрыПодписания.НастройкаОтправки; + ПодписатьТокенДоступа(Новый ОписаниеОповещения("ПослеПодписанияКлючаАвторизации", ЭтотОбъект, Контекст), НастройкаОтправки); + +КонецПроцедуры + +Процедура ПодписатьТокенДоступа(Оповещение, НастройкаОтправки) Экспорт + + ОписаниеДанных = Новый Структура; + ОписаниеДанных.Вставить("Операция", НСтр("ru='Подписание запроса для получения токена доступа'")); + ОписаниеДанных.Вставить("ЗаголовокДанных", НСтр("ru='Код доступа'")); + Если ЗначениеЗаполнено(НастройкаОтправки.Сертификат) Тогда + ОписаниеДанных.Вставить("ОтборСертификатов", ОбщегоНазначенияКлиентСервер.ЗначениеВМассиве( + НастройкаОтправки.Сертификат)); + КонецЕсли; + ПараметрыПодписи = ЭлектроннаяПодписьКлиент.НовыйТипПодписи(); + ПараметрыПодписи.ТипыПодписи = ОбщегоНазначенияКлиентСервер.ЗначениеВМассиве(ПредопределенноеЗначение("Перечисление.ТипыПодписиКриптографии.БазоваяCAdESBES")); + + Данные = Новый Структура("ПараметрыCMS, Данные", ЭлектроннаяПодписьКлиент.ПараметрыCMS(), НастройкаОтправки.Ключ); + ОписаниеДанных.Вставить("Данные", Данные); + + ЭлектроннаяПодписьКлиент.Подписать(ОписаниеДанных, ЭтотОбъект, + Оповещение, ПараметрыПодписи); + +КонецПроцедуры + +Процедура ПослеПодписанияКлючаАвторизации(Результат, Контекст) Экспорт + + Если Результат.Отказ = Истина Или Не Результат.Успех Тогда + ОбработатьОшибку(Контекст.ПараметрыВыполнения, + НСтр("ru='Не удалось подписать данные для авторизации в Госключе'")); + Возврат; + КонецЕсли; + + СвойстваПодписи = Результат.СвойстваПодписи; + Если ЭтоАдресВременногоХранилища(СвойстваПодписи) Тогда + СвойстваПодписи = ПолучитьИзВременногоХранилища(СвойстваПодписи); + КонецЕсли; + + НастройкаОтправки = Контекст.ПараметрыВыполнения.ПараметрыПодписания.НастройкаОтправки; + + Результат = СервисМобильнойПодписиСлужебныйВызовСервера.АвторизоватьсяВГосключе( + НастройкаОтправки, "", СвойстваПодписи.Подпись); + Если ТипЗнч(Результат) = Тип("Структура") Тогда + ОбработатьОшибку(Контекст.ПараметрыВыполнения, Результат); + Возврат; + КонецЕсли; + НастройкаОтправки.Ключ = ""; + ПодписатьЗаявлениеИНаборДанных(Контекст); + +КонецПроцедуры + +Процедура ПодписатьЗаявлениеИНаборДанных(Контекст) + + НастройкаОтправки = Контекст.ПараметрыВыполнения.ПараметрыПодписания.НастройкаОтправки; + + ДанныеЗапроса = СервисМобильнойПодписиСлужебныйВызовСервера.ЗапросНаОтправкуДокумента( + Контекст.ПараметрыВыполнения.КонтекстПодписания.ПараметрыВыполнения.ОписаниеДанных.ВыбранныйПодписант, + Контекст.ПараметрыВыполнения.ПараметрыПодписания.ВидМобильнойПодписи, + НастройкаОтправки, + Контекст.ПараметрыВыполнения.КонтекстПодписания.ИдентификаторФормы); + + ОписаниеДанных = Новый Структура; + ОписаниеДанных.Вставить("Операция", НСтр("ru='Подписание запроса для отправки в Госключ'")); + ОписаниеДанных.Вставить("ЗаголовокДанных", ""); + ОписаниеДанных.Вставить("БезПодтверждения", Истина); + Если ЗначениеЗаполнено(НастройкаОтправки.Сертификат) Тогда + ОписаниеДанных.Вставить("ОтборСертификатов", ОбщегоНазначенияКлиентСервер.ЗначениеВМассиве( + НастройкаОтправки.Сертификат)); + КонецЕсли; + + НаборДанных = Новый Массив; + Для Каждого Элемент Из Контекст.НаборДанных Цикл + Если Элемент.Свойство("Объект") И ЗначениеЗаполнено(Элемент.Объект) Тогда + Представление = Новый Структура("Значение, Представление", + Элемент.Объект, Элемент.Представление) + Иначе + Представление = Элемент.Представление; + КонецЕсли; + + НаборДанных.Добавить(Новый Структура("Данные, Представление", + Элемент.Данные, Представление)); + КонецЦикла; + + НаборДанных.Добавить(Новый Структура("Данные, Представление", + ДанныеЗапроса, Новый Структура("Значение, Представление", + Новый ОписаниеОповещения("ОткрытьФайлЗапроса", ЭтотОбъект, ДанныеЗапроса), "req.xml"))); + + ОписаниеДанных.Вставить("ПредставлениеНабора", НСтр("ru='Файлы запроса (%1)'")); + ОписаниеДанных.Вставить("НаборДанных", НаборДанных); + + ПараметрыПодписи = ЭлектроннаяПодписьКлиент.НовыйТипПодписи(); + ПараметрыПодписи.ТипыПодписи = ОбщегоНазначенияКлиентСервер.ЗначениеВМассиве( + ПредопределенноеЗначение("Перечисление.ТипыПодписиКриптографии.БазоваяCAdESBES")); + ЭлектроннаяПодписьКлиент.Подписать(ОписаниеДанных, ЭтотОбъект, + Новый ОписаниеОповещения("ПослеПодписанияЗаявленияИНабораДанных", ЭтотОбъект, Контекст), ПараметрыПодписи); + +КонецПроцедуры + +Процедура ОткрытьФайлЗапроса(Результат, ДанныеЗапроса) Экспорт + ДанныеФайла = ПолучитьИзВременногоХранилища(ДанныеЗапроса); + Строка = ПолучитьСтрокуИзДвоичныхДанных(ДанныеФайла); + ПоказатьЗначение(, Строка); +КонецПроцедуры + +Процедура ПослеПодписанияЗаявленияИНабораДанных(Результат, Контекст) Экспорт + + Если Результат.Отказ = Истина Или Не Результат.Успех Тогда + + Если Результат.Отказ Тогда + ТекстОшибки = НСтр("ru='Подписание запроса для отправки в Госключ отменено.'") + Иначе + Если Результат.Свойство("Ошибка") Тогда + ОбработатьОшибку(Контекст.ПараметрыВыполнения, Результат.Ошибка); + Возврат; + Иначе + ТекстОшибки = НСтр("ru='Не удалось подписать запрос отправки в Госключ.'"); + ОбработатьОшибку(Контекст.ПараметрыВыполнения, ТекстОшибки); + КонецЕсли; + КонецЕсли; + Возврат; + КонецЕсли; + + НаборДанных = Контекст.НаборДанных; + ИдентификаторФормы = Контекст.ПараметрыВыполнения.КонтекстПодписания.ИдентификаторФормы; + Индекс = 0; + Для Каждого Элемент Из Результат.НаборДанных Цикл + Если НаборДанных.ВГраница() < Индекс Тогда + ЗапросНаОтправкуДокумента = Результат.НаборДанных[Индекс]; + Продолжить; + КонецЕсли; + + Если ТипЗнч(Элемент.СвойстваПодписи) = Тип("Структура") Тогда + НаборДанных[Индекс].Вставить("СвойстваПодписи", ПоместитьВоВременноеХранилище(Элемент.СвойстваПодписи, ИдентификаторФормы)); + Иначе + НаборДанных[Индекс].Вставить("СвойстваПодписи", Элемент.СвойстваПодписи); + КонецЕсли; + + Если ТипЗнч(НаборДанных[Индекс].Данные) = Тип("ДвоичныеДанные") Тогда + НаборДанных[Индекс].Данные = ПоместитьВоВременноеХранилище(НаборДанных[Индекс].Данные, ИдентификаторФормы); + КонецЕсли; + + Индекс = Индекс + 1; + КонецЦикла; + + Контекст.ПараметрыВыполнения.ПараметрыПодписания.ЗапросНаОтправкуДокумента = Новый Структура( + "ДанныеЗапроса, СвойстваПодписи", + ЗапросНаОтправкуДокумента.Данные, + ЗапросНаОтправкуДокумента.СвойстваПодписи); + ПодписатьДанныеВСервисеДлительнаяОперация(Контекст.ПараметрыВыполнения, + НаборДанных); + +КонецПроцедуры + +Процедура ДобавитьПодписантаВФорме(Форма, Элемент) + ПараметрыПодписанта = СервисМобильнойПодписиКлиентСервер.ПараметрыПодписанта(); + Если ЗначениеЗаполнено(Форма.ПараметрыПодписанта) Тогда + ЗаполнитьЗначенияСвойств(ПараметрыПодписанта, Форма.ПараметрыПодписанта); + КонецЕсли; + СервисМобильнойПодписиКлиент.ДобавитьПодписанта(ПараметрыПодписанта, Элемент, + Новый ОписаниеОповещения("ПослеСозданияПодписанта", ЭтотОбъект, Форма)); +КонецПроцедуры + +Процедура ПослеСозданияПодписанта(Результат, Форма) Экспорт + Форма.Подписант = Результат; +КонецПроцедуры + +Процедура ЗаполнитьНаборДанныхДляОтправкиНаПодписание(НаборДанных, ЭлементДанных, + СписокПредставлений = Неопределено, Индекс = Неопределено) + + ЭлементСписка = Новый Структура("Значение, Представление, ИмяФайла", Неопределено, "", ""); + + Если ЭлементДанных.Свойство("Представление") + И ТипЗнч(ЭлементДанных.Представление) = Тип("Структура") Тогда + + ЗаполнитьЗначенияСвойств(ЭлементСписка, ЭлементДанных.Представление); + + ИначеЕсли ЭлементДанных.Свойство("Представление") + И ТипЗнч(ЭлементДанных.Представление) <> Тип("Строка") Тогда + + ЭлементСписка.Значение = ЭлементДанных.Представление; + + ИначеЕсли ЭлементДанных.Свойство("Объект") И ТипЗнч(ЭлементДанных.Объект) <> Тип("ОписаниеОповещения") Тогда + + ЭлементСписка.Значение = ЭлементДанных.Объект; + + КонецЕсли; + + Если Не ЗначениеЗаполнено(ЭлементСписка.Представление) И ЭлементДанных.Свойство("Представление") + И ТипЗнч(ЭлементДанных.Представление) = Тип("Строка") Тогда + ЭлементСписка.Представление = ЭлементДанных.Представление; + КонецЕсли; + + Если Не ЗначениеЗаполнено(ЭлементСписка.ИмяФайла) Тогда + Если Не ЗначениеЗаполнено(ЭлементСписка.Представление) Тогда + Если СписокПредставлений <> Неопределено Тогда + ИмяФайла = СписокПредставлений[Индекс].Представление; + Иначе + ИмяФайла = Строка(ЭлементСписка.Значение); + КонецЕсли; + Иначе + ИмяФайла = ЭлементСписка.Представление; + КонецЕсли; + ИмяФайла = ОбщегоНазначенияКлиентСервер.ЗаменитьНедопустимыеСимволыВИмениФайла(ИмяФайла); + Файл = Новый Файл(ИмяФайла); + Расширение = Файл.Расширение; + Если Не ЗначениеЗаполнено(Расширение) Тогда + Расширение = ".bin"; + КонецЕсли; + ДлинаИмени = 250 - СтрДлина(Расширение); + ИмяБезРасширения = Лев(Файл.ИмяБезРасширения, ДлинаИмени); + ИмяФайла = ИмяБезРасширения + Расширение; + Иначе + ИмяФайла = ЭлементСписка.ИмяФайла; + КонецЕсли; + + Структура = Новый Структура; + Структура.Вставить("Данные", ЭлементДанных.Данные); + Структура.Вставить("Представление", ИмяФайла); + + НаборДанных.Добавить(Структура); + +КонецПроцедуры + +// Обработать ошибку взаимодействия с сервисом мобильной подписи. +// +// Параметры: +// Ошибка - см. ЭлектроннаяПодписьСлужебныйПовтИсп.КлассификаторОшибокКриптографии +// Контекст - см. МашиночитаемыеДоверенностиФНССлужебныйКлиент.КонтекстДляОбработкиОшибкиРР +// +Процедура ОбработатьОшибкуВзаимодействияРР(Ошибка, Контекст) Экспорт + + Если Контекст.ОповещениеОЗавершении <> Неопределено Тогда + + Результат = РезультатОбработкиОшибкиВзаимодействияРР(); + Результат.Ошибка = Ошибка; + ВыполнитьОбработкуОповещения(Контекст.ОповещениеОЗавершении, Результат); + + Иначе + + ОткрытьФормуРасширенногоПредставленияОшибки(Контекст.ЗаголовокПредупреждения, Ошибка, Контекст.Форма); + + КонецЕсли; + +КонецПроцедуры + +Процедура ОткрытьФормуРасширенногоПредставленияОшибки(Заголовок, Знач Ошибка, Форма, Оповещение = Неопределено) Экспорт + + ПараметрыФормы = ПараметрыРасширенногоПредставленияОшибки(); + ПараметрыФормы.ЗаголовокПредупреждения = Заголовок; + ПараметрыФормы.ТекстОшибки = Ошибка.ТекстОшибки; + ПараметрыФормы.ОписаниеОшибки = СтрШаблон("%1: %2", Заголовок, Ошибка.ТекстОшибки); + ПараметрыФормы.ПоказатьТребуетсяПомощь = Истина; + ПараметрыФормы.ПоказатьИнструкцию = Истина; + + ОшибкаПоКлассификатору = ЭлектроннаяПодписьСлужебныйКлиент.ОшибкаПоКлассификатору(Ошибка.ТекстОшибки); + + Если ОшибкаПоКлассификатору = Неопределено Тогда + Ошибка.Вставить("Причина", ""); + Ошибка.Вставить("Решение", ""); + Иначе + Ошибка.Вставить("Причина", ОшибкаПоКлассификатору.Причина); + Ошибка.Вставить("Решение", ОшибкаПоКлассификатору.Решение); + КонецЕсли; + + ПараметрыФормы.ДополнительныеДанные.Вставить("ДополнительныеДанныеПроверок", Ошибка); + Если ЗначениеЗаполнено(Ошибка.ДополнительныеФайлы) Тогда + ПараметрыФормы.ДополнительныеДанные.Вставить("ДополнительныеФайлы", Ошибка.ДополнительныеФайлы); + Ошибка.Удалить("ДополнительныеФайлы"); + КонецЕсли; + + ЭлектроннаяПодписьСлужебныйКлиент.ОткрытьФормуРасширенногоПредставленияОшибки(ПараметрыФормы, Форма, Оповещение); + +КонецПроцедуры + +Функция РезультатОбработкиОшибкиВзаимодействияРР() + Возврат Новый Структура("Ошибка"); +КонецФункции + +Функция ПараметрыРасширенногоПредставленияОшибки() + Параметры = Новый Структура; + Параметры.Вставить("ЗаголовокПредупреждения", ""); + Параметры.Вставить("ТекстОшибкиКлиент", ""); + Параметры.Вставить("ДополнительныеДанные", Новый Структура); + Параметры.Вставить("ОписаниеОшибки", ""); + Параметры.Вставить("ПоказатьИнструкцию", Ложь); + Параметры.Вставить("ПоказатьПереходКНастройкеПрограмм", Ложь); + Параметры.Вставить("ПоказатьТребуетсяПомощь", Ложь); + Параметры.Вставить("ПоказатьУстановкуРасширения", Ложь); + Параметры.Вставить("ТекстОшибкиСервер", ""); + Параметры.Вставить("ТекстОшибки", ""); + Параметры.Вставить("ИнформацияДляПоддержки", ""); + Возврат Параметры; +КонецФункции + +Процедура ПослеОтправкиНаПодписаниеДанныхВСервис(Результат, Контекст) Экспорт + + РезультатВыполнения = Новый Структура; + + Если Результат = Неопределено Тогда + РезультатВыполнения.Вставить("ОтменаПодписания"); + ВыполнитьОбработкуОповещения(Контекст.ОповещениеОПодписанииВСервисе, РезультатВыполнения); + Возврат; + КонецЕсли; + + Если Результат.Статус = "Ошибка" Тогда + ИнформацияОбОшибке = Результат.ИнформацияОбОшибке; + ОбработатьОшибку(Контекст, ОбработкаОшибок.КраткоеПредставлениеОшибки(ИнформацияОбОшибке)); + Возврат; + КонецЕсли; + + НаборДанных = ПолучитьИзВременногоХранилища(Результат.АдресРезультата); + + Если ТипЗнч(НаборДанных) = Тип("Структура") Тогда + ОбработатьОшибку(Контекст, НаборДанных); + Возврат; + КонецЕсли; + + Если Контекст.ЭтоПодписание Тогда + + ИдентификаторыДокументов = Новый Массив; + Для Каждого Данные Из НаборДанных Цикл + ИдентификаторыДокументов.Добавить(Данные.ИдентификаторДокумента); + КонецЦикла; + + Контекст.Вставить("НаборДанных", НаборДанных); + + ОписаниеОповещения = Новый ОписаниеОповещения("ПослеПолученияРезультатовПодписания", ЭтотОбъект, Контекст); + + ОткрытьФорму("Справочник.ПодписантыСервисаМобильнойПодписи.Форма.ПолучениеПодписей", + Новый Структура("ИдентификаторыДокументов, Подписант, НастройкаОтправки", + ИдентификаторыДокументов, Контекст.КонтекстПодписания.ПараметрыВыполнения.ОписаниеДанных.ВыбранныйПодписант, + Контекст.ПараметрыПодписания.НастройкаОтправки), + Контекст.КонтекстПодписания.ПараметрыВыполнения.Форма,,,, + ОписаниеОповещения); + + Иначе + ВыполнитьОбработкуОповещения(Контекст.ОповещениеОПодписанииВСервисе, НаборДанных); + КонецЕсли; + +КонецПроцедуры + +Процедура ПослеПолученияРезультатовПодписания(Результат, Контекст) Экспорт + + РезультатВыполнения = Новый Структура; + + Если Результат = Неопределено Тогда + РезультатВыполнения.Вставить("ОтменаПодписания"); + ВыполнитьОбработкуОповещения(Контекст.ОповещениеОПодписанииВСервисе, РезультатВыполнения); + Возврат; + КонецЕсли; + + РезультатВыполнения.Вставить("ОперацияНачалась", Истина); + + Контекст.КонтекстПодписания.ПараметрыВыполнения.ОписаниеДанных.Вставить("ОперацияНачалась"); + Ошибка = Новый Массив; + + Если Контекст.КонтекстПодписания.ПараметрыВыполнения.ОписаниеДанных.Свойство("Данные") Тогда + + СвойстваПодписи = Результат.Получить(Контекст.НаборДанных[0].ИдентификаторДокумента); + Если СвойстваПодписи <> Неопределено Тогда + Если Не ЗначениеЗаполнено(СвойстваПодписи.ОшибкаПроверкиДополнительныхАтрибутов) Тогда + ДобавитьСвойстваПодписиВОписаниеДанных( + Контекст.КонтекстПодписания.ПараметрыВыполнения.ОписаниеДанных, СвойстваПодписи, Контекст, + РезультатВыполнения); + РезультатВыполнения.Вставить("ЕстьОбработанныеЭлементыДанных"); + ИначеЕсли ЗначениеЗаполнено(СвойстваПодписи.ОшибкаПроверкиДополнительныхАтрибутов) Тогда + Ошибка.Добавить(СвойстваПодписи.ОшибкаПроверкиДополнительныхАтрибутов); + КонецЕсли; + КонецЕсли; + + Иначе + Индекс = 0; + Для Каждого Элемент Из Контекст.НаборДанных Цикл + СвойстваПодписи = Результат.Получить(Элемент.ИдентификаторДокумента); + Если СвойстваПодписи <> Неопределено Тогда + Если Не ЗначениеЗаполнено(СвойстваПодписи.ОшибкаПроверкиДополнительныхАтрибутов) Тогда + ДобавитьСвойстваПодписиВОписаниеДанных( + Контекст.КонтекстПодписания.ПараметрыВыполнения.ОписаниеДанных.НаборДанных[Индекс], + СвойстваПодписи, Контекст, РезультатВыполнения); + РезультатВыполнения.Вставить("ЕстьОбработанныеЭлементыДанных"); + Индекс = Индекс + 1; + ИначеЕсли ЗначениеЗаполнено(СвойстваПодписи.ОшибкаПроверкиДополнительныхАтрибутов) Тогда + Если Ошибка.Найти(СвойстваПодписи.ОшибкаПроверкиДополнительныхАтрибутов) = Неопределено Тогда + Ошибка.Добавить(СвойстваПодписи.ОшибкаПроверкиДополнительныхАтрибутов); + КонецЕсли; + КонецЕсли; + КонецЕсли; + КонецЦикла; + КонецЕсли; + + Если Ошибка.Количество() > 0 Тогда + РезультатВыполнения.Вставить("Ошибка", СтрСоединить(Ошибка, "Символы.ПС")); + КонецЕсли; + + ВыполнитьОбработкуОповещения(Контекст.ОповещениеОПодписанииВСервисе, РезультатВыполнения); + +КонецПроцедуры + +Процедура ДобавитьСвойстваПодписиВОписаниеДанных(ЭлементДанных, СвойстваПодписи, Контекст, РезультатВыполнения) + + ЭлементДанных.Вставить("СвойстваПодписи", СвойстваПодписи); + + Если ЭлементДанных.Свойство("Объект") И ТипЗнч(ЭлементДанных.Объект) <> Тип("ОписаниеОповещения") Тогда + + ВерсияОбъекта = Неопределено; + ЭлементДанных.Свойство("ВерсияОбъекта", ВерсияОбъекта); + + // СтандартныеПодсистемы.МашиночитаемыеДоверенности + + Если ЗначениеЗаполнено(Контекст.КонтекстПодписания.ПараметрыВыполнения.ОписаниеДанных.ВыбраннаяДоверенность) + И ОбщегоНазначенияКлиент.ПодсистемаСуществует("СтандартныеПодсистемы.МашиночитаемыеДоверенности") Тогда + + МодульМашиночитаемыеДоверенностиФНССлужебныйКлиент = ОбщегоНазначенияКлиент.ОбщийМодуль( + "МашиночитаемыеДоверенностиФНССлужебныйКлиент"); + РезультатПроверкиПодписиПоМЧД = МодульМашиночитаемыеДоверенностиФНССлужебныйКлиент.РезультатПроверкиПодписиПоМЧД( + Контекст.КонтекстПодписания.ПараметрыВыполнения.ОписаниеДанных.ВыбраннаяДоверенность, ЭлементДанных.Объект, + СвойстваПодписи.Сертификат, Неопределено, Неопределено); + Если ЗначениеЗаполнено(РезультатПроверкиПодписиПоМЧД) Тогда + СвойстваПодписи.Вставить("РезультатПроверкиПодписиПоМЧД", РезультатПроверкиПодписиПоМЧД); + КонецЕсли; + + КонецЕсли; + + // Конец СтандартныеПодсистемы.МашиночитаемыеДоверенности + + ПредставлениеОшибки = ЭлектроннаяПодписьСлужебныйВызовСервера.ДобавитьПодпись( + ЭлементДанных.Объект, СвойстваПодписи, Контекст.КонтекстПодписания.ИдентификаторФормы, ВерсияОбъекта); + Если ЗначениеЗаполнено(ПредставлениеОшибки) Тогда + ЭлементДанных.Удалить("СвойстваПодписи"); + ОбработатьОшибку(Контекст, ПредставлениеОшибки, РезультатВыполнения); + Возврат; + КонецЕсли; + + КонецЕсли; + +КонецПроцедуры + +Процедура ОбработатьОшибку(Контекст, Ошибка, РезультатВыполнения = Неопределено) + + Если РезультатВыполнения = Неопределено Тогда + РезультатВыполнения = Новый Структура; + КонецЕсли; + + Если Контекст.ЭтоПодписание Тогда + Если ТипЗнч(Ошибка) = Тип("Структура") Тогда + Ошибка = Ошибка.ЗаголовокОшибки + ": " + Ошибка.ТекстОшибки; + КонецЕсли; + Иначе + Если ТипЗнч(Ошибка) = Тип("Строка") Тогда + Ошибка = СервисМобильнойПодписиКлиентСервер.НовоеОписаниеОшибки( + НСтр("ru='Не удалось отправить документы на подписание в Госключ.'"), Ошибка); + КонецЕсли; + КонецЕсли; + + РезультатВыполнения.Вставить("Ошибка", Ошибка); + ВыполнитьОбработкуОповещения(Контекст.ОповещениеОПодписанииВСервисе, РезультатВыполнения); + +КонецПроцедуры + +#КонецОбласти diff --git a/SSL/src/CommonModules/СервисМобильнойПодписиСлужебныйКлиент/СервисМобильнойПодписиСлужебныйКлиент.mdo b/SSL/src/CommonModules/СервисМобильнойПодписиСлужебныйКлиент/СервисМобильнойПодписиСлужебныйКлиент.mdo new file mode 100644 index 000000000..889a581bf --- /dev/null +++ b/SSL/src/CommonModules/СервисМобильнойПодписиСлужебныйКлиент/СервисМобильнойПодписиСлужебныйКлиент.mdo @@ -0,0 +1,10 @@ + + + СервисМобильнойПодписиСлужебныйКлиент + + ru + Сервис мобильной подписи служебный клиент + + true + true + diff --git a/SSL/src/CommonModules/СклонениеПредставленийОбъектов/Module.bsl b/SSL/src/CommonModules/СклонениеПредставленийОбъектов/Module.bsl index a2f3e07a4..b6c92205d 100644 --- a/SSL/src/CommonModules/СклонениеПредставленийОбъектов/Module.bsl +++ b/SSL/src/CommonModules/СклонениеПредставленийОбъектов/Module.bsl @@ -1,5 +1,5 @@ /////////////////////////////////////////////////////////////////////////////////////////////////////// -// Copyright (c) 2024, ООО 1С-Софт +// Copyright (c) 2025, ООО 1С-Софт // Все права защищены. Эта программа и сопроводительные материалы предоставляются // в соответствии с условиями лицензии Attribution 4.0 International (CC BY 4.0) // Текст лицензии доступен по ссылке: diff --git a/SSL/src/CommonModules/СклонениеПредставленийОбъектовВызовСервера/Module.bsl b/SSL/src/CommonModules/СклонениеПредставленийОбъектовВызовСервера/Module.bsl index 701b5ea75..ecb0cc0e6 100644 --- a/SSL/src/CommonModules/СклонениеПредставленийОбъектовВызовСервера/Module.bsl +++ b/SSL/src/CommonModules/СклонениеПредставленийОбъектовВызовСервера/Module.bsl @@ -1,5 +1,5 @@ /////////////////////////////////////////////////////////////////////////////////////////////////////// -// Copyright (c) 2024, ООО 1С-Софт +// Copyright (c) 2025, ООО 1С-Софт // Все права защищены. Эта программа и сопроводительные материалы предоставляются // в соответствии с условиями лицензии Attribution 4.0 International (CC BY 4.0) // Текст лицензии доступен по ссылке: diff --git a/SSL/src/CommonModules/СклонениеПредставленийОбъектовКлиент/Module.bsl b/SSL/src/CommonModules/СклонениеПредставленийОбъектовКлиент/Module.bsl index 02e8a0410..e74e61df3 100644 --- a/SSL/src/CommonModules/СклонениеПредставленийОбъектовКлиент/Module.bsl +++ b/SSL/src/CommonModules/СклонениеПредставленийОбъектовКлиент/Module.bsl @@ -1,5 +1,5 @@ /////////////////////////////////////////////////////////////////////////////////////////////////////// -// Copyright (c) 2024, ООО 1С-Софт +// Copyright (c) 2025, ООО 1С-Софт // Все права защищены. Эта программа и сопроводительные материалы предоставляются // в соответствии с условиями лицензии Attribution 4.0 International (CC BY 4.0) // Текст лицензии доступен по ссылке: diff --git a/SSL/src/CommonModules/СклонениеПредставленийОбъектовКлиентСервер/Module.bsl b/SSL/src/CommonModules/СклонениеПредставленийОбъектовКлиентСервер/Module.bsl index 5280b567b..6053fb07b 100644 --- a/SSL/src/CommonModules/СклонениеПредставленийОбъектовКлиентСервер/Module.bsl +++ b/SSL/src/CommonModules/СклонениеПредставленийОбъектовКлиентСервер/Module.bsl @@ -1,5 +1,5 @@ /////////////////////////////////////////////////////////////////////////////////////////////////////// -// Copyright (c) 2024, ООО 1С-Софт +// Copyright (c) 2025, ООО 1С-Софт // Все права защищены. Эта программа и сопроводительные материалы предоставляются // в соответствии с условиями лицензии Attribution 4.0 International (CC BY 4.0) // Текст лицензии доступен по ссылке: diff --git a/SSL/src/CommonModules/СнимкиОтчетов/Module.bsl b/SSL/src/CommonModules/СнимкиОтчетов/Module.bsl index ac38383df..0592898e0 100644 --- a/SSL/src/CommonModules/СнимкиОтчетов/Module.bsl +++ b/SSL/src/CommonModules/СнимкиОтчетов/Module.bsl @@ -1,5 +1,5 @@ /////////////////////////////////////////////////////////////////////////////////////////////////////// -// Copyright (c) 2024, ООО 1С-Софт +// Copyright (c) 2025, ООО 1С-Софт // Все права защищены. Эта программа и сопроводительные материалы предоставляются // в соответствии с условиями лицензии Attribution 4.0 International (CC BY 4.0) // Текст лицензии доступен по ссылке: diff --git a/SSL/src/CommonModules/СоединенияИБ/Module.bsl b/SSL/src/CommonModules/СоединенияИБ/Module.bsl index 0b844989f..affb582d2 100644 --- a/SSL/src/CommonModules/СоединенияИБ/Module.bsl +++ b/SSL/src/CommonModules/СоединенияИБ/Module.bsl @@ -1,5 +1,5 @@ /////////////////////////////////////////////////////////////////////////////////////////////////////// -// Copyright (c) 2024, ООО 1С-Софт +// Copyright (c) 2025, ООО 1С-Софт // Все права защищены. Эта программа и сопроводительные материалы предоставляются // в соответствии с условиями лицензии Attribution 4.0 International (CC BY 4.0) // Текст лицензии доступен по ссылке: diff --git a/SSL/src/CommonModules/СоединенияИБВызовСервера/Module.bsl b/SSL/src/CommonModules/СоединенияИБВызовСервера/Module.bsl index 2a882deda..b304c1554 100644 --- a/SSL/src/CommonModules/СоединенияИБВызовСервера/Module.bsl +++ b/SSL/src/CommonModules/СоединенияИБВызовСервера/Module.bsl @@ -1,5 +1,5 @@ /////////////////////////////////////////////////////////////////////////////////////////////////////// -// Copyright (c) 2024, ООО 1С-Софт +// Copyright (c) 2025, ООО 1С-Софт // Все права защищены. Эта программа и сопроводительные материалы предоставляются // в соответствии с условиями лицензии Attribution 4.0 International (CC BY 4.0) // Текст лицензии доступен по ссылке: diff --git a/SSL/src/CommonModules/СоединенияИБКлиент/Module.bsl b/SSL/src/CommonModules/СоединенияИБКлиент/Module.bsl index 0023ef390..cff0107af 100644 --- a/SSL/src/CommonModules/СоединенияИБКлиент/Module.bsl +++ b/SSL/src/CommonModules/СоединенияИБКлиент/Module.bsl @@ -1,5 +1,5 @@ /////////////////////////////////////////////////////////////////////////////////////////////////////// -// Copyright (c) 2024, ООО 1С-Софт +// Copyright (c) 2025, ООО 1С-Софт // Все права защищены. Эта программа и сопроводительные материалы предоставляются // в соответствии с условиями лицензии Attribution 4.0 International (CC BY 4.0) // Текст лицензии доступен по ссылке: diff --git a/SSL/src/CommonModules/СоединенияИБКлиентСервер/Module.bsl b/SSL/src/CommonModules/СоединенияИБКлиентСервер/Module.bsl index 156b83a6c..f827085a4 100644 --- a/SSL/src/CommonModules/СоединенияИБКлиентСервер/Module.bsl +++ b/SSL/src/CommonModules/СоединенияИБКлиентСервер/Module.bsl @@ -1,5 +1,5 @@ /////////////////////////////////////////////////////////////////////////////////////////////////////// -// Copyright (c) 2024, ООО 1С-Софт +// Copyright (c) 2025, ООО 1С-Софт // Все права защищены. Эта программа и сопроводительные материалы предоставляются // в соответствии с условиями лицензии Attribution 4.0 International (CC BY 4.0) // Текст лицензии доступен по ссылке: diff --git a/SSL/src/CommonModules/СоединенияИБПереопределяемый/Module.bsl b/SSL/src/CommonModules/СоединенияИБПереопределяемый/Module.bsl index c66ced73c..ebb9c5a65 100644 --- a/SSL/src/CommonModules/СоединенияИБПереопределяемый/Module.bsl +++ b/SSL/src/CommonModules/СоединенияИБПереопределяемый/Module.bsl @@ -1,5 +1,5 @@ /////////////////////////////////////////////////////////////////////////////////////////////////////// -// Copyright (c) 2024, ООО 1С-Софт +// Copyright (c) 2025, ООО 1С-Софт // Все права защищены. Эта программа и сопроводительные материалы предоставляются // в соответствии с условиями лицензии Attribution 4.0 International (CC BY 4.0) // Текст лицензии доступен по ссылке: diff --git a/SSL/src/CommonModules/СозданиеНаОсновании/Module.bsl b/SSL/src/CommonModules/СозданиеНаОсновании/Module.bsl index 634b13d89..5f22f0d53 100644 --- a/SSL/src/CommonModules/СозданиеНаОсновании/Module.bsl +++ b/SSL/src/CommonModules/СозданиеНаОсновании/Module.bsl @@ -1,5 +1,5 @@ /////////////////////////////////////////////////////////////////////////////////////////////////////// -// Copyright (c) 2024, ООО 1С-Софт +// Copyright (c) 2025, ООО 1С-Софт // Все права защищены. Эта программа и сопроводительные материалы предоставляются // в соответствии с условиями лицензии Attribution 4.0 International (CC BY 4.0) // Текст лицензии доступен по ссылке: diff --git a/SSL/src/CommonModules/СозданиеНаОснованииПереопределяемый/Module.bsl b/SSL/src/CommonModules/СозданиеНаОснованииПереопределяемый/Module.bsl index c37f33c27..ea4567e8a 100644 --- a/SSL/src/CommonModules/СозданиеНаОснованииПереопределяемый/Module.bsl +++ b/SSL/src/CommonModules/СозданиеНаОснованииПереопределяемый/Module.bsl @@ -1,5 +1,5 @@ /////////////////////////////////////////////////////////////////////////////////////////////////////// -// Copyright (c) 2024, ООО 1С-Софт +// Copyright (c) 2025, ООО 1С-Софт // Все права защищены. Эта программа и сопроводительные материалы предоставляются // в соответствии с условиями лицензии Attribution 4.0 International (CC BY 4.0) // Текст лицензии доступен по ссылке: diff --git a/SSL/src/CommonModules/СозданиеНаОснованииПовтИсп/Module.bsl b/SSL/src/CommonModules/СозданиеНаОснованииПовтИсп/Module.bsl index d17f2ab3d..50389af70 100644 --- a/SSL/src/CommonModules/СозданиеНаОснованииПовтИсп/Module.bsl +++ b/SSL/src/CommonModules/СозданиеНаОснованииПовтИсп/Module.bsl @@ -1,5 +1,5 @@ /////////////////////////////////////////////////////////////////////////////////////////////////////// -// Copyright (c) 2024, ООО 1С-Софт +// Copyright (c) 2025, ООО 1С-Софт // Все права защищены. Эта программа и сопроводительные материалы предоставляются // в соответствии с условиями лицензии Attribution 4.0 International (CC BY 4.0) // Текст лицензии доступен по ссылке: diff --git a/SSL/src/CommonModules/СообщенияАдминистрированиеОбменаДаннымиКонтрольИнтерфейс/Module.bsl b/SSL/src/CommonModules/СообщенияАдминистрированиеОбменаДаннымиКонтрольИнтерфейс/Module.bsl index b1f3c33cf..c4898a040 100644 --- a/SSL/src/CommonModules/СообщенияАдминистрированиеОбменаДаннымиКонтрольИнтерфейс/Module.bsl +++ b/SSL/src/CommonModules/СообщенияАдминистрированиеОбменаДаннымиКонтрольИнтерфейс/Module.bsl @@ -1,5 +1,5 @@ /////////////////////////////////////////////////////////////////////////////////////////////////////// -// Copyright (c) 2024, ООО 1С-Софт +// Copyright (c) 2025, ООО 1С-Софт // Все права защищены. Эта программа и сопроводительные материалы предоставляются // в соответствии с условиями лицензии Attribution 4.0 International (CC BY 4.0) // Текст лицензии доступен по ссылке: diff --git a/SSL/src/CommonModules/СообщенияАдминистрированиеОбменаДаннымиКонтрольОбработчикСообщения_2_1_2_1/Module.bsl b/SSL/src/CommonModules/СообщенияАдминистрированиеОбменаДаннымиКонтрольОбработчикСообщения_2_1_2_1/Module.bsl index 69ccec8a4..c58cc9b5d 100644 --- a/SSL/src/CommonModules/СообщенияАдминистрированиеОбменаДаннымиКонтрольОбработчикСообщения_2_1_2_1/Module.bsl +++ b/SSL/src/CommonModules/СообщенияАдминистрированиеОбменаДаннымиКонтрольОбработчикСообщения_2_1_2_1/Module.bsl @@ -1,5 +1,5 @@ /////////////////////////////////////////////////////////////////////////////////////////////////////// -// Copyright (c) 2024, ООО 1С-Софт +// Copyright (c) 2025, ООО 1С-Софт // Все права защищены. Эта программа и сопроводительные материалы предоставляются // в соответствии с условиями лицензии Attribution 4.0 International (CC BY 4.0) // Текст лицензии доступен по ссылке: diff --git a/SSL/src/CommonModules/СообщенияАдминистрированиеОбменаДаннымиУправлениеИнтерфейс/Module.bsl b/SSL/src/CommonModules/СообщенияАдминистрированиеОбменаДаннымиУправлениеИнтерфейс/Module.bsl index 2729b6040..ec39c2dad 100644 --- a/SSL/src/CommonModules/СообщенияАдминистрированиеОбменаДаннымиУправлениеИнтерфейс/Module.bsl +++ b/SSL/src/CommonModules/СообщенияАдминистрированиеОбменаДаннымиУправлениеИнтерфейс/Module.bsl @@ -1,5 +1,5 @@ /////////////////////////////////////////////////////////////////////////////////////////////////////// -// Copyright (c) 2024, ООО 1С-Софт +// Copyright (c) 2025, ООО 1С-Софт // Все права защищены. Эта программа и сопроводительные материалы предоставляются // в соответствии с условиями лицензии Attribution 4.0 International (CC BY 4.0) // Текст лицензии доступен по ссылке: @@ -202,7 +202,7 @@ // Возвращает тип сообщения {http://www.1c.ru/SaaS/ExchangeAdministration/Manage/a.b.c.d}DisableSyncInSM // // Параметры: -// ИспользуемыйПакет - строка, пространство имен версии интерфейса сообщений, для которой +// ИспользуемыйПакет - Строка - пространство имен версии интерфейса сообщений, для которой // получается тип сообщения. // // Возвращаемое значение: diff --git a/SSL/src/CommonModules/СообщенияАдминистрированиеОбменаДаннымиУправлениеОбработчикСообщения_2_1_2_1/Module.bsl b/SSL/src/CommonModules/СообщенияАдминистрированиеОбменаДаннымиУправлениеОбработчикСообщения_2_1_2_1/Module.bsl index 882898031..7a32c32e9 100644 --- a/SSL/src/CommonModules/СообщенияАдминистрированиеОбменаДаннымиУправлениеОбработчикСообщения_2_1_2_1/Module.bsl +++ b/SSL/src/CommonModules/СообщенияАдминистрированиеОбменаДаннымиУправлениеОбработчикСообщения_2_1_2_1/Module.bsl @@ -1,5 +1,5 @@ /////////////////////////////////////////////////////////////////////////////////////////////////////// -// Copyright (c) 2024, ООО 1С-Софт +// Copyright (c) 2025, ООО 1С-Софт // Все права защищены. Эта программа и сопроводительные материалы предоставляются // в соответствии с условиями лицензии Attribution 4.0 International (CC BY 4.0) // Текст лицензии доступен по ссылке: diff --git a/SSL/src/CommonModules/СообщенияАдминистрированиеОбменаДаннымиУправлениеОбработчикСообщения_3_0_1_1/Module.bsl b/SSL/src/CommonModules/СообщенияАдминистрированиеОбменаДаннымиУправлениеОбработчикСообщения_3_0_1_1/Module.bsl index 37e6c4c61..a9337e070 100644 --- a/SSL/src/CommonModules/СообщенияАдминистрированиеОбменаДаннымиУправлениеОбработчикСообщения_3_0_1_1/Module.bsl +++ b/SSL/src/CommonModules/СообщенияАдминистрированиеОбменаДаннымиУправлениеОбработчикСообщения_3_0_1_1/Module.bsl @@ -1,5 +1,5 @@ /////////////////////////////////////////////////////////////////////////////////////////////////////// -// Copyright (c) 2024, ООО 1С-Софт +// Copyright (c) 2025, ООО 1С-Софт // Все права защищены. Эта программа и сопроводительные материалы предоставляются // в соответствии с условиями лицензии Attribution 4.0 International (CC BY 4.0) // Текст лицензии доступен по ссылке: diff --git a/SSL/src/CommonModules/СообщенияАдминистрированиеОбменаДаннымиУправлениеТрансляция_2_1_2_1/Module.bsl b/SSL/src/CommonModules/СообщенияАдминистрированиеОбменаДаннымиУправлениеТрансляция_2_1_2_1/Module.bsl index d026e15b2..129ce10f0 100644 --- a/SSL/src/CommonModules/СообщенияАдминистрированиеОбменаДаннымиУправлениеТрансляция_2_1_2_1/Module.bsl +++ b/SSL/src/CommonModules/СообщенияАдминистрированиеОбменаДаннымиУправлениеТрансляция_2_1_2_1/Module.bsl @@ -1,5 +1,5 @@ /////////////////////////////////////////////////////////////////////////////////////////////////////// -// Copyright (c) 2024, ООО 1С-Софт +// Copyright (c) 2025, ООО 1С-Софт // Все права защищены. Эта программа и сопроводительные материалы предоставляются // в соответствии с условиями лицензии Attribution 4.0 International (CC BY 4.0) // Текст лицензии доступен по ссылке: diff --git a/SSL/src/CommonModules/СообщенияКонтрольДополнительныхОтчетовИОбработокИнтерфейс/Module.bsl b/SSL/src/CommonModules/СообщенияКонтрольДополнительныхОтчетовИОбработокИнтерфейс/Module.bsl index 8951dce27..37f55d43a 100644 --- a/SSL/src/CommonModules/СообщенияКонтрольДополнительныхОтчетовИОбработокИнтерфейс/Module.bsl +++ b/SSL/src/CommonModules/СообщенияКонтрольДополнительныхОтчетовИОбработокИнтерфейс/Module.bsl @@ -1,5 +1,5 @@ /////////////////////////////////////////////////////////////////////////////////////////////////////// -// Copyright (c) 2024, ООО 1С-Софт +// Copyright (c) 2025, ООО 1С-Софт // Все права защищены. Эта программа и сопроводительные материалы предоставляются // в соответствии с условиями лицензии Attribution 4.0 International (CC BY 4.0) // Текст лицензии доступен по ссылке: diff --git a/SSL/src/CommonModules/СообщенияКонтрольДополнительныхОтчетовИОбработокОбработчикТрансляции_1_0_0_1/Module.bsl b/SSL/src/CommonModules/СообщенияКонтрольДополнительныхОтчетовИОбработокОбработчикТрансляции_1_0_0_1/Module.bsl index 68058deb2..495a7df23 100644 --- a/SSL/src/CommonModules/СообщенияКонтрольДополнительныхОтчетовИОбработокОбработчикТрансляции_1_0_0_1/Module.bsl +++ b/SSL/src/CommonModules/СообщенияКонтрольДополнительныхОтчетовИОбработокОбработчикТрансляции_1_0_0_1/Module.bsl @@ -1,5 +1,5 @@ /////////////////////////////////////////////////////////////////////////////////////////////////////// -// Copyright (c) 2024, ООО 1С-Софт +// Copyright (c) 2025, ООО 1С-Софт // Все права защищены. Эта программа и сопроводительные материалы предоставляются // в соответствии с условиями лицензии Attribution 4.0 International (CC BY 4.0) // Текст лицензии доступен по ссылке: diff --git a/SSL/src/CommonModules/СообщенияОбменаДаннымиКонтрольИнтерфейс/Module.bsl b/SSL/src/CommonModules/СообщенияОбменаДаннымиКонтрольИнтерфейс/Module.bsl index 5404c749e..817e891b9 100644 --- a/SSL/src/CommonModules/СообщенияОбменаДаннымиКонтрольИнтерфейс/Module.bsl +++ b/SSL/src/CommonModules/СообщенияОбменаДаннымиКонтрольИнтерфейс/Module.bsl @@ -1,5 +1,5 @@ /////////////////////////////////////////////////////////////////////////////////////////////////////// -// Copyright (c) 2024, ООО 1С-Софт +// Copyright (c) 2025, ООО 1С-Софт // Все права защищены. Эта программа и сопроводительные материалы предоставляются // в соответствии с условиями лицензии Attribution 4.0 International (CC BY 4.0) // Текст лицензии доступен по ссылке: diff --git a/SSL/src/CommonModules/СообщенияОбменаДаннымиКонтрольОбработчикСообщения_2_1_2_1/Module.bsl b/SSL/src/CommonModules/СообщенияОбменаДаннымиКонтрольОбработчикСообщения_2_1_2_1/Module.bsl index 05bfc2f79..80204dfed 100644 --- a/SSL/src/CommonModules/СообщенияОбменаДаннымиКонтрольОбработчикСообщения_2_1_2_1/Module.bsl +++ b/SSL/src/CommonModules/СообщенияОбменаДаннымиКонтрольОбработчикСообщения_2_1_2_1/Module.bsl @@ -1,5 +1,5 @@ /////////////////////////////////////////////////////////////////////////////////////////////////////// -// Copyright (c) 2024, ООО 1С-Софт +// Copyright (c) 2025, ООО 1С-Софт // Все права защищены. Эта программа и сопроводительные материалы предоставляются // в соответствии с условиями лицензии Attribution 4.0 International (CC BY 4.0) // Текст лицензии доступен по ссылке: diff --git a/SSL/src/CommonModules/СообщенияОбменаДаннымиОбработчикСообщения/Module.bsl b/SSL/src/CommonModules/СообщенияОбменаДаннымиОбработчикСообщения/Module.bsl index 29191b4d6..d2724d125 100644 --- a/SSL/src/CommonModules/СообщенияОбменаДаннымиОбработчикСообщения/Module.bsl +++ b/SSL/src/CommonModules/СообщенияОбменаДаннымиОбработчикСообщения/Module.bsl @@ -1,5 +1,5 @@ /////////////////////////////////////////////////////////////////////////////////////////////////////// -// Copyright (c) 2024, ООО 1С-Софт +// Copyright (c) 2025, ООО 1С-Софт // Все права защищены. Эта программа и сопроводительные материалы предоставляются // в соответствии с условиями лицензии Attribution 4.0 International (CC BY 4.0) // Текст лицензии доступен по ссылке: diff --git a/SSL/src/CommonModules/СообщенияОбменаДаннымиУправлениеИнтерфейс/Module.bsl b/SSL/src/CommonModules/СообщенияОбменаДаннымиУправлениеИнтерфейс/Module.bsl index c2677d3dc..bf6e850e0 100644 --- a/SSL/src/CommonModules/СообщенияОбменаДаннымиУправлениеИнтерфейс/Module.bsl +++ b/SSL/src/CommonModules/СообщенияОбменаДаннымиУправлениеИнтерфейс/Module.bsl @@ -1,5 +1,5 @@ /////////////////////////////////////////////////////////////////////////////////////////////////////// -// Copyright (c) 2024, ООО 1С-Софт +// Copyright (c) 2025, ООО 1С-Софт // Все права защищены. Эта программа и сопроводительные материалы предоставляются // в соответствии с условиями лицензии Attribution 4.0 International (CC BY 4.0) // Текст лицензии доступен по ссылке: diff --git a/SSL/src/CommonModules/СообщенияОбменаДаннымиУправлениеОбработчикСообщения_2_1_2_1/Module.bsl b/SSL/src/CommonModules/СообщенияОбменаДаннымиУправлениеОбработчикСообщения_2_1_2_1/Module.bsl index 179a12960..46f12bc5e 100644 --- a/SSL/src/CommonModules/СообщенияОбменаДаннымиУправлениеОбработчикСообщения_2_1_2_1/Module.bsl +++ b/SSL/src/CommonModules/СообщенияОбменаДаннымиУправлениеОбработчикСообщения_2_1_2_1/Module.bsl @@ -1,5 +1,5 @@ /////////////////////////////////////////////////////////////////////////////////////////////////////// -// Copyright (c) 2024, ООО 1С-Софт +// Copyright (c) 2025, ООО 1С-Софт // Все права защищены. Эта программа и сопроводительные материалы предоставляются // в соответствии с условиями лицензии Attribution 4.0 International (CC BY 4.0) // Текст лицензии доступен по ссылке: diff --git a/SSL/src/CommonModules/СообщенияОбменаДаннымиУправлениеОбработчикСообщения_3_0_1_1/Module.bsl b/SSL/src/CommonModules/СообщенияОбменаДаннымиУправлениеОбработчикСообщения_3_0_1_1/Module.bsl index a4ebc0bb8..ef6a0d578 100644 --- a/SSL/src/CommonModules/СообщенияОбменаДаннымиУправлениеОбработчикСообщения_3_0_1_1/Module.bsl +++ b/SSL/src/CommonModules/СообщенияОбменаДаннымиУправлениеОбработчикСообщения_3_0_1_1/Module.bsl @@ -1,5 +1,5 @@ /////////////////////////////////////////////////////////////////////////////////////////////////////// -// Copyright (c) 2024, ООО 1С-Софт +// Copyright (c) 2025, ООО 1С-Софт // Все права защищены. Эта программа и сопроводительные материалы предоставляются // в соответствии с условиями лицензии Attribution 4.0 International (CC BY 4.0) // Текст лицензии доступен по ссылке: diff --git a/SSL/src/CommonModules/СообщенияОбменаДаннымиУправлениеОбработчикТрансляции_2_1_2_1/Module.bsl b/SSL/src/CommonModules/СообщенияОбменаДаннымиУправлениеОбработчикТрансляции_2_1_2_1/Module.bsl index c920b332b..0db5e234d 100644 --- a/SSL/src/CommonModules/СообщенияОбменаДаннымиУправлениеОбработчикТрансляции_2_1_2_1/Module.bsl +++ b/SSL/src/CommonModules/СообщенияОбменаДаннымиУправлениеОбработчикТрансляции_2_1_2_1/Module.bsl @@ -1,5 +1,5 @@ /////////////////////////////////////////////////////////////////////////////////////////////////////// -// Copyright (c) 2024, ООО 1С-Софт +// Copyright (c) 2025, ООО 1С-Софт // Все права защищены. Эта программа и сопроводительные материалы предоставляются // в соответствии с условиями лицензии Attribution 4.0 International (CC BY 4.0) // Текст лицензии доступен по ссылке: diff --git a/SSL/src/CommonModules/СообщенияУправленияДОИООбработчикСообщения_1_0_1_1/Module.bsl b/SSL/src/CommonModules/СообщенияУправленияДОИООбработчикСообщения_1_0_1_1/Module.bsl index bc93f1f6d..58268df9f 100644 --- a/SSL/src/CommonModules/СообщенияУправленияДОИООбработчикСообщения_1_0_1_1/Module.bsl +++ b/SSL/src/CommonModules/СообщенияУправленияДОИООбработчикСообщения_1_0_1_1/Module.bsl @@ -1,5 +1,5 @@ /////////////////////////////////////////////////////////////////////////////////////////////////////// -// Copyright (c) 2024, ООО 1С-Софт +// Copyright (c) 2025, ООО 1С-Софт // Все права защищены. Эта программа и сопроводительные материалы предоставляются // в соответствии с условиями лицензии Attribution 4.0 International (CC BY 4.0) // Текст лицензии доступен по ссылке: diff --git a/SSL/src/CommonModules/СообщенияУправленияДОИООбработчикСообщения_1_0_1_2/Module.bsl b/SSL/src/CommonModules/СообщенияУправленияДОИООбработчикСообщения_1_0_1_2/Module.bsl index c1cb1be17..3b6370ae5 100644 --- a/SSL/src/CommonModules/СообщенияУправленияДОИООбработчикСообщения_1_0_1_2/Module.bsl +++ b/SSL/src/CommonModules/СообщенияУправленияДОИООбработчикСообщения_1_0_1_2/Module.bsl @@ -1,5 +1,5 @@ /////////////////////////////////////////////////////////////////////////////////////////////////////// -// Copyright (c) 2024, ООО 1С-Софт +// Copyright (c) 2025, ООО 1С-Софт // Все права защищены. Эта программа и сопроводительные материалы предоставляются // в соответствии с условиями лицензии Attribution 4.0 International (CC BY 4.0) // Текст лицензии доступен по ссылке: diff --git a/SSL/src/CommonModules/СообщенияУправленияДополнительнымиОтчетамиИОбработкамиИнтерфейс/Module.bsl b/SSL/src/CommonModules/СообщенияУправленияДополнительнымиОтчетамиИОбработкамиИнтерфейс/Module.bsl index e84ad7e37..86f50112b 100644 --- a/SSL/src/CommonModules/СообщенияУправленияДополнительнымиОтчетамиИОбработкамиИнтерфейс/Module.bsl +++ b/SSL/src/CommonModules/СообщенияУправленияДополнительнымиОтчетамиИОбработкамиИнтерфейс/Module.bsl @@ -1,5 +1,5 @@ /////////////////////////////////////////////////////////////////////////////////////////////////////// -// Copyright (c) 2024, ООО 1С-Софт +// Copyright (c) 2025, ООО 1С-Софт // Все права защищены. Эта программа и сопроводительные материалы предоставляются // в соответствии с условиями лицензии Attribution 4.0 International (CC BY 4.0) // Текст лицензии доступен по ссылке: diff --git a/SSL/src/CommonModules/СообщенияУправленияДополнительнымиОтчетамиИОбработкамиРеализация/Module.bsl b/SSL/src/CommonModules/СообщенияУправленияДополнительнымиОтчетамиИОбработкамиРеализация/Module.bsl index 7083ae341..2e7fc5b25 100644 --- a/SSL/src/CommonModules/СообщенияУправленияДополнительнымиОтчетамиИОбработкамиРеализация/Module.bsl +++ b/SSL/src/CommonModules/СообщенияУправленияДополнительнымиОтчетамиИОбработкамиРеализация/Module.bsl @@ -1,5 +1,5 @@ /////////////////////////////////////////////////////////////////////////////////////////////////////// -// Copyright (c) 2024, ООО 1С-Софт +// Copyright (c) 2025, ООО 1С-Софт // Все права защищены. Эта программа и сопроводительные материалы предоставляются // в соответствии с условиями лицензии Attribution 4.0 International (CC BY 4.0) // Текст лицензии доступен по ссылке: diff --git a/SSL/src/CommonModules/СтандартныеПодсистемыВызовСервера/Module.bsl b/SSL/src/CommonModules/СтандартныеПодсистемыВызовСервера/Module.bsl index 7bb3ccaa5..1c244408d 100644 --- a/SSL/src/CommonModules/СтандартныеПодсистемыВызовСервера/Module.bsl +++ b/SSL/src/CommonModules/СтандартныеПодсистемыВызовСервера/Module.bsl @@ -1,5 +1,5 @@ /////////////////////////////////////////////////////////////////////////////////////////////////////// -// Copyright (c) 2024, ООО 1С-Софт +// Copyright (c) 2025, ООО 1С-Софт // Все права защищены. Эта программа и сопроводительные материалы предоставляются // в соответствии с условиями лицензии Attribution 4.0 International (CC BY 4.0) // Текст лицензии доступен по ссылке: diff --git a/SSL/src/CommonModules/СтандартныеПодсистемыГлобальный/Module.bsl b/SSL/src/CommonModules/СтандартныеПодсистемыГлобальный/Module.bsl index daf03e2ca..6beb7c624 100644 --- a/SSL/src/CommonModules/СтандартныеПодсистемыГлобальный/Module.bsl +++ b/SSL/src/CommonModules/СтандартныеПодсистемыГлобальный/Module.bsl @@ -1,5 +1,5 @@ /////////////////////////////////////////////////////////////////////////////////////////////////////// -// Copyright (c) 2024, ООО 1С-Софт +// Copyright (c) 2025, ООО 1С-Софт // Все права защищены. Эта программа и сопроводительные материалы предоставляются // в соответствии с условиями лицензии Attribution 4.0 International (CC BY 4.0) // Текст лицензии доступен по ссылке: diff --git a/SSL/src/CommonModules/СтандартныеПодсистемыКлиент/Module.bsl b/SSL/src/CommonModules/СтандартныеПодсистемыКлиент/Module.bsl index 819bcf7e0..dafd63e26 100644 --- a/SSL/src/CommonModules/СтандартныеПодсистемыКлиент/Module.bsl +++ b/SSL/src/CommonModules/СтандартныеПодсистемыКлиент/Module.bsl @@ -1,5 +1,5 @@ /////////////////////////////////////////////////////////////////////////////////////////////////////// -// Copyright (c) 2024, ООО 1С-Софт +// Copyright (c) 2025, ООО 1С-Софт // Все права защищены. Эта программа и сопроводительные материалы предоставляются // в соответствии с условиями лицензии Attribution 4.0 International (CC BY 4.0) // Текст лицензии доступен по ссылке: diff --git a/SSL/src/CommonModules/СтандартныеПодсистемыКлиентПовтИсп/Module.bsl b/SSL/src/CommonModules/СтандартныеПодсистемыКлиентПовтИсп/Module.bsl index acf33a92f..15f6ccb47 100644 --- a/SSL/src/CommonModules/СтандартныеПодсистемыКлиентПовтИсп/Module.bsl +++ b/SSL/src/CommonModules/СтандартныеПодсистемыКлиентПовтИсп/Module.bsl @@ -1,5 +1,5 @@ /////////////////////////////////////////////////////////////////////////////////////////////////////// -// Copyright (c) 2024, ООО 1С-Софт +// Copyright (c) 2025, ООО 1С-Софт // Все права защищены. Эта программа и сопроводительные материалы предоставляются // в соответствии с условиями лицензии Attribution 4.0 International (CC BY 4.0) // Текст лицензии доступен по ссылке: diff --git a/SSL/src/CommonModules/СтандартныеПодсистемыКлиентСервер/Module.bsl b/SSL/src/CommonModules/СтандартныеПодсистемыКлиентСервер/Module.bsl index 4cd0ad60f..361874ac6 100644 --- a/SSL/src/CommonModules/СтандартныеПодсистемыКлиентСервер/Module.bsl +++ b/SSL/src/CommonModules/СтандартныеПодсистемыКлиентСервер/Module.bsl @@ -1,5 +1,5 @@ /////////////////////////////////////////////////////////////////////////////////////////////////////// -// Copyright (c) 2024, ООО 1С-Софт +// Copyright (c) 2025, ООО 1С-Софт // Все права защищены. Эта программа и сопроводительные материалы предоставляются // в соответствии с условиями лицензии Attribution 4.0 International (CC BY 4.0) // Текст лицензии доступен по ссылке: diff --git a/SSL/src/CommonModules/СтандартныеПодсистемыКлиентСерверЛокализация/Module.bsl b/SSL/src/CommonModules/СтандартныеПодсистемыКлиентСерверЛокализация/Module.bsl index 4f976a78b..65d1c84dd 100644 --- a/SSL/src/CommonModules/СтандартныеПодсистемыКлиентСерверЛокализация/Module.bsl +++ b/SSL/src/CommonModules/СтандартныеПодсистемыКлиентСерверЛокализация/Module.bsl @@ -1,5 +1,5 @@ /////////////////////////////////////////////////////////////////////////////////////////////////////// -// Copyright (c) 2024, ООО 1С-Софт +// Copyright (c) 2025, ООО 1С-Софт // Все права защищены. Эта программа и сопроводительные материалы предоставляются // в соответствии с условиями лицензии Attribution 4.0 International (CC BY 4.0) // Текст лицензии доступен по ссылке: diff --git a/SSL/src/CommonModules/СтандартныеПодсистемыПовтИсп/Module.bsl b/SSL/src/CommonModules/СтандартныеПодсистемыПовтИсп/Module.bsl index e62a7ee3b..bd212fc00 100644 --- a/SSL/src/CommonModules/СтандартныеПодсистемыПовтИсп/Module.bsl +++ b/SSL/src/CommonModules/СтандартныеПодсистемыПовтИсп/Module.bsl @@ -1,5 +1,5 @@ /////////////////////////////////////////////////////////////////////////////////////////////////////// -// Copyright (c) 2024, ООО 1С-Софт +// Copyright (c) 2025, ООО 1С-Софт // Все права защищены. Эта программа и сопроводительные материалы предоставляются // в соответствии с условиями лицензии Attribution 4.0 International (CC BY 4.0) // Текст лицензии доступен по ссылке: diff --git a/SSL/src/CommonModules/СтандартныеПодсистемыСервер/Module.bsl b/SSL/src/CommonModules/СтандартныеПодсистемыСервер/Module.bsl index ffafacce6..45ca954bf 100644 --- a/SSL/src/CommonModules/СтандартныеПодсистемыСервер/Module.bsl +++ b/SSL/src/CommonModules/СтандартныеПодсистемыСервер/Module.bsl @@ -1,5 +1,5 @@ /////////////////////////////////////////////////////////////////////////////////////////////////////// -// Copyright (c) 2024, ООО 1С-Софт +// Copyright (c) 2025, ООО 1С-Софт // Все права защищены. Эта программа и сопроводительные материалы предоставляются // в соответствии с условиями лицензии Attribution 4.0 International (CC BY 4.0) // Текст лицензии доступен по ссылке: @@ -671,7 +671,7 @@ // • РасширенияКонфигурации.ВыполнитьФоновоеЗаданиеБезРасширений. // // Параметры: -// Методы - Соответствие: +// Методы - Соответствие из КлючИЗначение: // * Ключ - Строка - имя процедуры или функции в модуле. // * Значение - Неопределено, Булево - если Истина, тогда можно запускать в фоне. // @@ -683,13 +683,6 @@ Методы.Вставить("ВключитьКонстантуРазрешитьДоступКИнтернетСервисам"); Методы.Вставить("УстановитьКонстантуНеИспользоватьРазделениеПоОбластямДанных"); Методы.Вставить("СравнитьТаблицы", Истина); - Методы.Вставить("ОбновитьДатуПоследнегоИспользованияВерсииРасширений", Истина); - Методы.Вставить("ДобавитьНовуюВерсиюРасширений", Истина); - Методы.Вставить("УстановитьПоследнююВерсиюРасширений", Истина); - Методы.Вставить("ЗаполнитьВсеПараметрыРаботыРасширенийФоновоеЗадание", Истина); - Методы.Вставить("ЗаполнениеПараметровРаботыРасширений", Истина); - Методы.Вставить("УдалениеУстаревшихПараметровРаботыВерсийРасширенийОбработчикЗадания", Истина); - Методы.Вставить("ОбработкаСервисовИнтеграции", Истина); КонецПроцедуры @@ -1159,6 +1152,22 @@ КонецПроцедуры +// Удаляет строку с параметром. +// Перед вызовом требуется установить привилегированный режим. +// +// Параметры: +// ИмяПараметра - Строка - не более 128 символов. Например, +// "СтандартныеПодсистемы.ВариантыОтчетов.ОтчетыСНастройками". +// +// ЕстьИзменения - Булево - возвращаемое значение. Устанавливается Истина, +// если старое и новое значения параметра не совпадают. +// +Процедура УдалитьПараметрРаботыПрограммы(ИмяПараметра, ЕстьИзменения = Ложь) Экспорт + + РегистрыСведений.ПараметрыРаботыПрограммы.УдалитьПараметрРаботыПрограммы(ИмяПараметра, ЕстьИзменения); + +КонецПроцедуры + // Возвращает изменения параметра работы программы с учетом текущей версии // конфигурации и текущей версии ИБ. // @@ -1463,7 +1472,28 @@ // Процедура УстановитьПараметрРаботыРасширения(ИмяПараметра, Значение, БезУчетаВерсииРасширений = Ложь) Экспорт - РегистрыСведений.ПараметрыРаботыВерсийРасширений.УстановитьПараметрРаботыРасширения(ИмяПараметра, Значение, БезУчетаВерсииРасширений); + РегистрыСведений.ПараметрыРаботыВерсийРасширений.УстановитьПараметрРаботыРасширения(ИмяПараметра, + Значение, БезУчетаВерсииРасширений); + +КонецПроцедуры + +// Удаляет строку с параметром для текущей версии расширений. +// Перед вызовом требуется установить привилегированный режим. +// +// Параметры: +// ИмяПараметра - Строка - не более 128 символов. Например, +// "СтандартныеПодсистемы.ВариантыОтчетов.ОтчетыСНастройками". +// +// БезУчетаВерсииРасширений - Булево +// - Неопределено - удалить все строки с именем параметра. +// +// ЕстьИзменения - Булево - возвращаемое значение. Устанавливается Истина, +// если старое и новое значения параметра не совпадают. +// +Процедура УдалитьПараметрРаботыРасширения(ИмяПараметра, БезУчетаВерсииРасширений = Ложь, ЕстьИзменения = Ложь) Экспорт + + РегистрыСведений.ПараметрыРаботыВерсийРасширений.УдалитьПараметрРаботыРасширения(ИмяПараметра, + БезУчетаВерсииРасширений, ЕстьИзменения); КонецПроцедуры @@ -2605,7 +2635,7 @@ Если Не ОбщегоНазначения.РазделениеВключено() Тогда Обработчик = Обработчики.Добавить(); - Обработчик.Версия = "3.1.11.410"; + Обработчик.Версия = "3.1.12.95"; Обработчик.Процедура = "СтандартныеПодсистемыСервер.УстановитьРасписаниеЗапускаСервисовИнтеграции"; Обработчик.РежимВыполнения = "Оперативно"; КонецЕсли; @@ -2711,17 +2741,28 @@ ОписаниеОбработчика.ИменаПроцедур = ИменаПроцедур; ОписаниеОбработчика.ЗаголовокОшибки = НСтр("ru = 'Обработчик установки параметров сеанса ""%1"".'"); - // Обработчики регламентных заданий. - ИменаПроцедур = Новый Соответствие; - Для Каждого РегламентноеЗадание Из Метаданные.РегламентныеЗадания Цикл - ИменаПроцедур.Вставить(РегламентноеЗадание.ИмяМетода, Истина); - КонецЦикла; - - ОписаниеОбработчика = Настройки.ОписаниеОбработчиков.Добавить(); - ОписаниеОбработчика.ИменаПроцедур = ИменаПроцедур; - ОписаниеОбработчика.ЗаголовокОшибки = НСтр("ru = 'Обработчик регламентного задания (ручной запуск) ""%1"".'"); - // Исключения. + ИсключениеПроверки = Настройки.ИсключенияПроверки.Добавить(); + ИсключениеПроверки.ПолноеИмяОбъекта = "ОбщийМодуль.ОбщегоНазначения"; + ИсключениеПроверки.ИмяПроцедуры = "ВыполнитьФоновоеЗадание"; + ИсключениеПроверки.ФрагментСодержания = + "ФоновоеЗадание = РасширенияКонфигурации.ВыполнитьФоновоеЗаданиеСРасширениямиБазыДанных(ИмяМетода, + | ПараметрыВыполнения.Параметры, ПараметрыВыполнения.Ключ, ПараметрыВыполнения.Наименование)"; + + ИсключениеПроверки = Настройки.ИсключенияПроверки.Добавить(); + ИсключениеПроверки.ПолноеИмяОбъекта = "ОбщийМодуль.ОбщегоНазначения"; + ИсключениеПроверки.ИмяПроцедуры = "ВыполнитьФоновоеЗадание"; + ИсключениеПроверки.ФрагментСодержания = + "ФоновоеЗадание = РасширенияКонфигурации.ВыполнитьФоновоеЗаданиеБезРасширений(ИмяМетода, + | ПараметрыВыполнения.Параметры, ПараметрыВыполнения.Ключ, ПараметрыВыполнения.Наименование)"; + + ИсключениеПроверки = Настройки.ИсключенияПроверки.Добавить(); + ИсключениеПроверки.ПолноеИмяОбъекта = "ОбщийМодуль.ОбщегоНазначения"; + ИсключениеПроверки.ИмяПроцедуры = "ВыполнитьФоновоеЗадание"; + ИсключениеПроверки.ФрагментСодержания = + "ФоновоеЗадание = ФоновыеЗадания.Выполнить(ИмяМетода, + | ПараметрыВыполнения.Параметры, ПараметрыВыполнения.Ключ, ПараметрыВыполнения.Наименование)"; + ИсключениеПроверки = Настройки.ИсключенияПроверки.Добавить(); ИсключениеПроверки.ПолноеИмяОбъекта = "ОбщийМодуль.ОбщегоНазначения"; ИсключениеПроверки.ИмяПроцедуры = "ВызватьФункциюКонфигурации"; @@ -2737,6 +2778,10 @@ ИсключениеПроверки.ИмяПроцедуры = "ВыполнитьОбработчикиУстановкиПараметровСеанса"; ИсключениеПроверки.ФрагментСодержания = "ОбщегоНазначения.ВыполнитьМетодКонфигурации(Обработчик, ПараметрыОбработчика)"; + Методы = Новый Соответствие; + Методы.Вставить("ЕстьСсылкиНаОбъект", Истина); + Настройки.ИсключенияКогдаУказанныйМетодНеВызывается.Вставить("ОбщийМодуль.ОбщегоНазначения", Методы); + КонецПроцедуры // Формирует текст для вывода пользователю при необходимости динамического обновления. @@ -3943,8 +3988,7 @@ #Область ОбработчикиПодписокНаСобытия -// Обработчик события ПередЗаписью предопределенных элементов. -// +// Обработчик события см. ПодпискаНаСобытие.ОбработкаПредопределенныхЭлементовПередЗаписью Процедура ОбработкаПредопределенныхЭлементовПередЗаписью(Источник, Отказ) Экспорт Если Источник.ОбменДанными.Загрузка Тогда @@ -3961,8 +4005,6 @@ КонецПроцедуры -// Обработчик события ПередЗаписью предопределенных элементов. -// Процедура ЗапретитьПометкуУдаленияПредопределенныхЭлементовПередЗаписью(Источник) Если Источник.ПометкаУдаления <> Истина Тогда @@ -3984,26 +4026,34 @@ "ПометкаУдаления, ИмяПредопределенныхДанных" + ?(ИмяРеквизита <> "ИмяПредопределенныхДанных", ", " + ИмяРеквизита, "")); - Если (СтарыеСвойства.ИмяПредопределенныхДанных <> "" Или ИмяРеквизита <> "" И ЗначениеЗаполнено(СтарыеСвойства[ИмяРеквизита])) - И СтарыеСвойства.ПометкаУдаления <> Истина И Не ВладелецПомеченНаУдаление(Источник.Ссылка) Тогда - - ВызватьИсключение СтроковыеФункцииКлиентСервер.ПодставитьПараметрыВСтроку( - НСтр("ru = 'Недопустимо помечать на удаление предопределенный элемент: - |""%1"".'"), - Строка(Источник.Ссылка)); - ИначеЕсли (ЗначениеЗаполнено(ЗначениеРеквизита) И Не ЗначениеЗаполнено(СтарыеСвойства[ИмяРеквизита]) - Или СтарыеСвойства.ИмяПредопределенныхДанных = "") - И СтарыеСвойства.ПометкаУдаления = Истина Тогда - + Если ВладелецЗаполнен(Источник) Тогда + ЭтоПредопределенныйЭлемент = ЗначениеЗаполнено(СтарыеСвойства.ИмяПредопределенныхДанных) + Или (ЗначениеЗаполнено(ИмяРеквизита) И ЗначениеЗаполнено(СтарыеСвойства[ИмяРеквизита])); + + Запретить = ЭтоПредопределенныйЭлемент + И СтарыеСвойства.ПометкаУдаления <> Истина + И ЗначениеПометкиУдаления(Источник.Владелец) <> Истина; + Если Запретить Тогда + ВызватьИсключение СтроковыеФункцииКлиентСервер.ПодставитьПараметрыВСтроку( + НСтр("ru = 'Недопустимо помечать на удаление предопределенный элемент: + |""%1"".'"), + Строка(Источник.Ссылка)); + КонецЕсли; + КонецЕсли; + + ЭтоУстановкаИмениПредопределенного = ЗначениеЗаполнено(ЗначениеРеквизита) И Не ЗначениеЗаполнено(СтарыеСвойства[ИмяРеквизита]) + Или НЕ ЗначениеЗаполнено(СтарыеСвойства.ИмяПредопределенныхДанных); + ЭтоУстановкаИмениПредопределенногоВПомеченныйЭлемент = ЭтоУстановкаИмениПредопределенного И СтарыеСвойства.ПометкаУдаления = Истина; + Если ЭтоУстановкаИмениПредопределенногоВПомеченныйЭлемент Тогда ВызватьИсключение СтроковыеФункцииКлиентСервер.ПодставитьПараметрыВСтроку( НСтр("ru = 'Недопустимо связывать с именем предопределенного элемент, помеченный на удаление: |""%1"".'"), Строка(Источник.Ссылка)); КонецЕсли; - + КонецПроцедуры -// Обработчик события ПередУдалением предопределенных элементов. +// Обработчик события см. ПодпискаНаСобытие.ЗапретитьУдалениеПредопределенныхЭлементов Процедура ЗапретитьУдалениеПредопределенныхЭлементовПередУдалением(Источник, Отказ) Экспорт Если Источник.ОбменДанными.Загрузка Тогда @@ -4014,17 +4064,12 @@ Возврат; КонецЕсли; - ЗначенияРеквизитов = Новый Структура("Владелец"); - ЗаполнитьЗначенияСвойств(ЗначенияРеквизитов, Источник); - - Если ЗначениеЗаполнено(ЗначенияРеквизитов.Владелец) Тогда - ЗначенияРеквизитовВладельца = Новый Структура("ПометкаУдаления"); - ПометкаУдаленияВладельца = ОбщегоНазначения.ЗначениеРеквизитаОбъекта(ЗначенияРеквизитов.Владелец, "ПометкаУдаления"); - Если ПометкаУдаленияВладельца <> Ложь Тогда // Неопределено, если владелец уже удален. + Если ВладелецЗаполнен(Источник) Тогда + Если ЗначениеПометкиУдаления(Источник.Владелец) <> Ложь Тогда Возврат; КонецЕсли; КонецЕсли; - + ВызватьИсключение СтроковыеФункцииКлиентСервер.ПодставитьПараметрыВСтроку( НСтр("ru = 'Недопустимо удалять предопределенный элемент |""%1"".'"), @@ -5590,31 +5635,16 @@ КонецФункции -Функция ВладелецПомеченНаУдаление(УдаляемыйОбъект) - - МетаданныеИсточника = УдаляемыйОбъект.Метаданные(); - Если МетаданныеИсточника.Владельцы.Количество() = 0 Тогда - Возврат Ложь; - КонецЕсли; +Функция ВладелецЗаполнен(Источник) + ЗначенияРеквизитов = Новый Структура("Владелец"); + ЗаполнитьЗначенияСвойств(ЗначенияРеквизитов, Источник); + Результат = ЗначениеЗаполнено(ЗначенияРеквизитов.Владелец); + Возврат Результат; +КонецФункции - Запрос = Новый Запрос; - Запрос.Текст = " - |ВЫБРАТЬ - | ТаблицаВладельца.Владелец.ПометкаУдаления КАК ПометкаУдаления - |ИЗ - | &ИмяТаблицы КАК ТаблицаВладельца - |ГДЕ - | ТаблицаВладельца.Ссылка = &Ссылка"; - - Запрос.Текст = СтрЗаменить(Запрос.Текст, "&ИмяТаблицы", МетаданныеИсточника.ПолноеИмя()); - Запрос.УстановитьПараметр("Ссылка", УдаляемыйОбъект); - - Выборка = Запрос.Выполнить().Выбрать(); - Если Выборка.Следующий() Тогда - Возврат Выборка.ПометкаУдаления; - КонецЕсли; - Возврат Ложь; - +Функция ЗначениеПометкиУдаления(ПроизвольнаяСсылка) + Результат = ОбщегоНазначения.ЗначениеРеквизитаОбъекта(ПроизвольнаяСсылка, "ПометкаУдаления"); + Возврат Результат; КонецФункции #Область СравнениеТаблиц diff --git a/SSL/src/CommonModules/СтандартныеПодсистемыСерверЛокализация/Module.bsl b/SSL/src/CommonModules/СтандартныеПодсистемыСерверЛокализация/Module.bsl index b4b20f7b1..0c74a8858 100644 --- a/SSL/src/CommonModules/СтандартныеПодсистемыСерверЛокализация/Module.bsl +++ b/SSL/src/CommonModules/СтандартныеПодсистемыСерверЛокализация/Module.bsl @@ -1,5 +1,5 @@ /////////////////////////////////////////////////////////////////////////////////////////////////////// -// Copyright (c) 2024, ООО 1С-Софт +// Copyright (c) 2025, ООО 1С-Софт // Все права защищены. Эта программа и сопроводительные материалы предоставляются // в соответствии с условиями лицензии Attribution 4.0 International (CC BY 4.0) // Текст лицензии доступен по ссылке: diff --git a/SSL/src/CommonModules/СтроковыеФункции/Module.bsl b/SSL/src/CommonModules/СтроковыеФункции/Module.bsl index 181ed70d1..bc0167bea 100644 --- a/SSL/src/CommonModules/СтроковыеФункции/Module.bsl +++ b/SSL/src/CommonModules/СтроковыеФункции/Module.bsl @@ -1,5 +1,5 @@ /////////////////////////////////////////////////////////////////////////////////////////////////////// -// Copyright (c) 2024, ООО 1С-Софт +// Copyright (c) 2025, ООО 1С-Софт // Все права защищены. Эта программа и сопроводительные материалы предоставляются // в соответствии с условиями лицензии Attribution 4.0 International (CC BY 4.0) // Текст лицензии доступен по ссылке: diff --git a/SSL/src/CommonModules/СтроковыеФункцииКлиент/Module.bsl b/SSL/src/CommonModules/СтроковыеФункцииКлиент/Module.bsl index 7a65dff85..396353723 100644 --- a/SSL/src/CommonModules/СтроковыеФункцииКлиент/Module.bsl +++ b/SSL/src/CommonModules/СтроковыеФункцииКлиент/Module.bsl @@ -1,5 +1,5 @@ /////////////////////////////////////////////////////////////////////////////////////////////////////// -// Copyright (c) 2024, ООО 1С-Софт +// Copyright (c) 2025, ООО 1С-Софт // Все права защищены. Эта программа и сопроводительные материалы предоставляются // в соответствии с условиями лицензии Attribution 4.0 International (CC BY 4.0) // Текст лицензии доступен по ссылке: diff --git a/SSL/src/CommonModules/СтроковыеФункцииКлиентСервер/Module.bsl b/SSL/src/CommonModules/СтроковыеФункцииКлиентСервер/Module.bsl index 526bf8b32..68c57bb22 100644 --- a/SSL/src/CommonModules/СтроковыеФункцииКлиентСервер/Module.bsl +++ b/SSL/src/CommonModules/СтроковыеФункцииКлиентСервер/Module.bsl @@ -1,5 +1,5 @@ /////////////////////////////////////////////////////////////////////////////////////////////////////// -// Copyright (c) 2024, ООО 1С-Софт +// Copyright (c) 2025, ООО 1С-Софт // Все права защищены. Эта программа и сопроводительные материалы предоставляются // в соответствии с условиями лицензии Attribution 4.0 International (CC BY 4.0) // Текст лицензии доступен по ссылке: @@ -750,7 +750,7 @@ // вырезаем скрипты Позиция = СтрНайти(Текст, " 0 Цикл - ПозицияЗакрывающегоТега = СтрНайти(Текст, ""); + ПозицияЗакрывающегоТега = СтрНайти(Текст, "", , Позиция); Если ПозицияЗакрывающегоТега = 0 Тогда // Не найден закрывающий тег - вырезаем оставшийся текст. ПозицияЗакрывающегоТега = СтрДлина(Текст); @@ -763,7 +763,7 @@ // вырезаем стили Позиция = СтрНайти(Текст, " 0 Цикл - ПозицияЗакрывающегоТега = СтрНайти(Текст, ""); + ПозицияЗакрывающегоТега = СтрНайти(Текст, "", , Позиция); Если ПозицияЗакрывающегоТега = 0 Тогда // Не найден закрывающий тег - вырезаем оставшийся текст. ПозицияЗакрывающегоТега = СтрДлина(Текст); diff --git a/SSL/src/CommonModules/СтроковыеФункцииКлиентСерверЛокализация/Module.bsl b/SSL/src/CommonModules/СтроковыеФункцииКлиентСерверЛокализация/Module.bsl index 1546faa54..e41da8474 100644 --- a/SSL/src/CommonModules/СтроковыеФункцииКлиентСерверЛокализация/Module.bsl +++ b/SSL/src/CommonModules/СтроковыеФункцииКлиентСерверЛокализация/Module.bsl @@ -1,5 +1,5 @@ /////////////////////////////////////////////////////////////////////////////////////////////////////// -// Copyright (c) 2024, ООО 1С-Софт +// Copyright (c) 2025, ООО 1С-Софт // Все права защищены. Эта программа и сопроводительные материалы предоставляются // в соответствии с условиями лицензии Attribution 4.0 International (CC BY 4.0) // Текст лицензии доступен по ссылке: diff --git a/SSL/src/CommonModules/СтроковыеФункцииКлиентСерверРФ/Module.bsl b/SSL/src/CommonModules/СтроковыеФункцииКлиентСерверРФ/Module.bsl index 463d9fe99..09d4f7977 100644 --- a/SSL/src/CommonModules/СтроковыеФункцииКлиентСерверРФ/Module.bsl +++ b/SSL/src/CommonModules/СтроковыеФункцииКлиентСерверРФ/Module.bsl @@ -1,5 +1,5 @@ /////////////////////////////////////////////////////////////////////////////////////////////////////// -// Copyright (c) 2024, ООО 1С-Софт +// Copyright (c) 2025, ООО 1С-Софт // Все права защищены. Эта программа и сопроводительные материалы предоставляются // в соответствии с условиями лицензии Attribution 4.0 International (CC BY 4.0) // Текст лицензии доступен по ссылке: diff --git a/SSL/src/CommonModules/СтруктураПодчиненностиПереопределяемый/Module.bsl b/SSL/src/CommonModules/СтруктураПодчиненностиПереопределяемый/Module.bsl index b2607f130..a0db57bae 100644 --- a/SSL/src/CommonModules/СтруктураПодчиненностиПереопределяемый/Module.bsl +++ b/SSL/src/CommonModules/СтруктураПодчиненностиПереопределяемый/Module.bsl @@ -1,5 +1,5 @@ /////////////////////////////////////////////////////////////////////////////////////////////////////// -// Copyright (c) 2024, ООО 1С-Софт +// Copyright (c) 2025, ООО 1С-Софт // Все права защищены. Эта программа и сопроводительные материалы предоставляются // в соответствии с условиями лицензии Attribution 4.0 International (CC BY 4.0) // Текст лицензии доступен по ссылке: diff --git a/SSL/src/CommonModules/СтруктураПодчиненностиСлужебный/Module.bsl b/SSL/src/CommonModules/СтруктураПодчиненностиСлужебный/Module.bsl index 542d446e3..4076248c2 100644 --- a/SSL/src/CommonModules/СтруктураПодчиненностиСлужебный/Module.bsl +++ b/SSL/src/CommonModules/СтруктураПодчиненностиСлужебный/Module.bsl @@ -1,5 +1,5 @@ /////////////////////////////////////////////////////////////////////////////////////////////////////// -// Copyright (c) 2024, ООО 1С-Софт +// Copyright (c) 2025, ООО 1С-Софт // Все права защищены. Эта программа и сопроводительные материалы предоставляются // в соответствии с условиями лицензии Attribution 4.0 International (CC BY 4.0) // Текст лицензии доступен по ссылке: diff --git a/SSL/src/CommonModules/ТекущиеДелаПереопределяемый/Module.bsl b/SSL/src/CommonModules/ТекущиеДелаПереопределяемый/Module.bsl index 7d884dc89..0b7871ff6 100644 --- a/SSL/src/CommonModules/ТекущиеДелаПереопределяемый/Module.bsl +++ b/SSL/src/CommonModules/ТекущиеДелаПереопределяемый/Module.bsl @@ -1,5 +1,5 @@ /////////////////////////////////////////////////////////////////////////////////////////////////////// -// Copyright (c) 2024, ООО 1С-Софт +// Copyright (c) 2025, ООО 1С-Софт // Все права защищены. Эта программа и сопроводительные материалы предоставляются // в соответствии с условиями лицензии Attribution 4.0 International (CC BY 4.0) // Текст лицензии доступен по ссылке: diff --git a/SSL/src/CommonModules/ТекущиеДелаСервер/Module.bsl b/SSL/src/CommonModules/ТекущиеДелаСервер/Module.bsl index 367b742a5..4fd6ac7ca 100644 --- a/SSL/src/CommonModules/ТекущиеДелаСервер/Module.bsl +++ b/SSL/src/CommonModules/ТекущиеДелаСервер/Module.bsl @@ -1,5 +1,5 @@ /////////////////////////////////////////////////////////////////////////////////////////////////////// -// Copyright (c) 2024, ООО 1С-Софт +// Copyright (c) 2025, ООО 1С-Софт // Все права защищены. Эта программа и сопроводительные материалы предоставляются // в соответствии с условиями лицензии Attribution 4.0 International (CC BY 4.0) // Текст лицензии доступен по ссылке: diff --git a/SSL/src/CommonModules/ТекущиеДелаСлужебный/Module.bsl b/SSL/src/CommonModules/ТекущиеДелаСлужебный/Module.bsl index aab887423..bf0da51aa 100644 --- a/SSL/src/CommonModules/ТекущиеДелаСлужебный/Module.bsl +++ b/SSL/src/CommonModules/ТекущиеДелаСлужебный/Module.bsl @@ -1,5 +1,5 @@ /////////////////////////////////////////////////////////////////////////////////////////////////////// -// Copyright (c) 2024, ООО 1С-Софт +// Copyright (c) 2025, ООО 1С-Софт // Все права защищены. Эта программа и сопроводительные материалы предоставляются // в соответствии с условиями лицензии Attribution 4.0 International (CC BY 4.0) // Текст лицензии доступен по ссылке: diff --git a/SSL/src/CommonModules/ТекущиеДелаСлужебныйПовтИсп/Module.bsl b/SSL/src/CommonModules/ТекущиеДелаСлужебныйПовтИсп/Module.bsl index c2718968a..44aefe680 100644 --- a/SSL/src/CommonModules/ТекущиеДелаСлужебныйПовтИсп/Module.bsl +++ b/SSL/src/CommonModules/ТекущиеДелаСлужебныйПовтИсп/Module.bsl @@ -1,5 +1,5 @@ /////////////////////////////////////////////////////////////////////////////////////////////////////// -// Copyright (c) 2024, ООО 1С-Софт +// Copyright (c) 2025, ООО 1С-Софт // Все права защищены. Эта программа и сопроводительные материалы предоставляются // в соответствии с условиями лицензии Attribution 4.0 International (CC BY 4.0) // Текст лицензии доступен по ссылке: diff --git a/SSL/src/CommonModules/ТранспортСообщенийОбмена/Module.bsl b/SSL/src/CommonModules/ТранспортСообщенийОбмена/Module.bsl index 1ff6d50dc..66d049b5d 100644 --- a/SSL/src/CommonModules/ТранспортСообщенийОбмена/Module.bsl +++ b/SSL/src/CommonModules/ТранспортСообщенийОбмена/Module.bsl @@ -1,5 +1,5 @@ /////////////////////////////////////////////////////////////////////////////////////////////////////// -// Copyright (c) 2024, ООО 1С-Софт +// Copyright (c) 2025, ООО 1С-Софт // Все права защищены. Эта программа и сопроводительные материалы предоставляются // в соответствии с условиями лицензии Attribution 4.0 International (CC BY 4.0) // Текст лицензии доступен по ссылке: @@ -11,17 +11,17 @@ // Параметры инициализации. // // Параметры: -// ИдентификаторТранспорта - Строка - Идентифкатор транспорта +// ИдентификаторТранспорта - Строка - идентификатор транспорта // // Возвращаемое значение: -// Структура - Параметры инициализации: +// Структура: // * Корреспондент - ПланОбменаСсылка, Неопределено - ссылка на узел плана обмена // * ИмяПланаОбмена - Строка // * ИмяПланаОбменаКорреспондента - Строка // * ИдентификаторТранспорта - Строка // * НастройкиТранспорта - Структура - состав повторяет реквизиты обработки транспорта // * ДанныеАутентификации - Структура - состав повторяет реквизиты обработки транспорта, -// но только данные аутентификации, например: Пароль, ИмяПользоватля +// но только данные аутентификации, например: Пароль, ИмяПользователя // Функция ПараметрыИнициализации(ИдентификаторТранспорта = "") Экспорт @@ -37,19 +37,20 @@ КонецФункции -// Инициализация обарботки транспорта. +// Инициализация обработки транспорта. // // Параметры: -// ПараметрыИнициализации - Структура - Параметры инициализации: +// ПараметрыИнициализации - Структура: // * Корреспондент - ПланОбменаСсылка - ссылка на узел плана обмена. Если значение задано, // то будут заполнены настройки транспорта (реквизиты обработки). // * ИмяПланаОбмена - Строка // * ИмяПланаОбменаКорреспондента - Строка -// * ИдентификаторТранспорта - Строка - доступный индентфикатор транспорта. -// Доступные идентфикаторы см. ДоступныеТипыТранспорта +// * ИдентификаторТранспорта - Строка - доступный идентификатор транспорта. +// Доступные идентификаторы см. ДоступныеТипыТранспорта // * НастройкиТранспорта - Структура - состав повторяет реквизиты обработки транспорта, // * ДанныеАутентификации - Структура - состав повторяет реквизиты обработки транспорта, -// но только данные аутентификации, например: Пароль, ИмяПользоватля +// но только данные аутентификации, например: Пароль, ИмяПользователя +// СоздатьКаталогВременныхФайлов - Булево - если Истина, то создается каталог временных файлов // // Возвращаемое значение: // ОбработкаОбъект.ТранспортСообщенийОбменаCOM, @@ -63,10 +64,10 @@ // ОбработкаОбъект.ТранспортСообщенийОбменаWS, // ОбработкаОбъект.ТранспортСообщенийОбменаПассивныйРежим, // ОбработкаОбъект.ТранспортСообщенийОбменаЯндексДиск - обработка заданного типа транспорта с заполненными параметрами. -// При инициализации создатся ВременныйКаталог, задается временное имя файла СообщениеОбмена, +// При инициализации создается ВременныйКаталог, задается временное имя файла СообщениеОбмена, // а так же шаблоны имен файлов (ШаблоныИменДляПолученияСообщения) для получения // -Функция Инициализация(ПараметрыИнициализации) Экспорт +Функция Инициализация(ПараметрыИнициализации, СоздатьКаталогВременныхФайлов = Истина) Экспорт Параметры = ПараметрыИнициализации(); ЗаполнитьЗначенияСвойств(Параметры, ПараметрыИнициализации); @@ -121,18 +122,20 @@ ЗаполнитьИменаСообщенийПоУмолчанию(Транспорт); КонецЕсли; - Транспорт.ВременныйКаталог = ВременныйКаталогСообщенийОбмена(Транспорт); + Если СоздатьКаталогВременныхФайлов Тогда + Транспорт.ВременныйКаталог = ВременныйКаталогСообщенийОбмена(Транспорт); - ИмяВременногоФайла = Строка(Новый УникальныйИдентификатор) + ".xml"; + ИмяВременногоФайла = Строка(Новый УникальныйИдентификатор) + ".xml"; - Транспорт.СообщениеОбмена = - ОбщегоНазначенияКлиентСервер.ПолучитьПолноеИмяФайла(Транспорт.ВременныйКаталог, ИмяВременногоФайла); + Транспорт.СообщениеОбмена = + ОбщегоНазначенияКлиентСервер.ПолучитьПолноеИмяФайла(Транспорт.ВременныйКаталог, ИмяВременногоФайла); + КонецЕсли; Возврат Транспорт; КонецФункции -// Уничтожение обработки трансорта, удаление временного каталога обмена +// Уничтожение обработки транспорта, удаление временного каталога обмена // // Параметры: // Транспорт - ОбработкаОбъект.ТранспортСообщенийОбменаCOM, @@ -175,11 +178,11 @@ // Настройки транспорта. // // Параметры: -// Корреспондент - ПланОбменаСсылка - Корреспондент -// ИдентификаторТранспорта - Строка - Идентификатор транспорта +// Корреспондент - ПланОбменаСсылка - корреспондент +// ИдентификаторТранспорта - Строка - идентификатор транспорта // // Возвращаемое значение: -// Структура - Настройки транспорта (рекизиты обработки транспорта) +// Структура - настройки транспорта (реквизиты обработки транспорта) // Функция НастройкиТранспорта(Корреспондент, ИдентификаторТранспорта) Экспорт @@ -205,10 +208,10 @@ // // Параметры: // Корреспондент - ПланОбменаСсылка -// ИдентификаторТранспорта - Строка - Возвращает идентификатор транспорта заданный по умолчанию +// ИдентификаторТранспорта - Строка - возвращает идентификатор транспорта заданный по умолчанию // // Возвращаемое значение: -// Структура - Настройки транспорта по умолчанию (рекизиты обработки транспорта) +// Структура - настройки транспорта по умолчанию (реквизиты обработки транспорта) // Функция НастройкиТранспортаПоУмолчанию(Корреспондент, ИдентификаторТранспорта = "") Экспорт @@ -234,27 +237,14 @@ КонецФункции -// Транспорт по умолчанию. -// -// Параметры: -// Корреспондент - ПланОбменаСсылка - Корреспондент -// -// Возвращаемое значение: -// Строка - идентфикатор транспорта -// -Функция ТранспортПоУмолчанию(Корреспондент) Экспорт - - Возврат Справочники.НастройкиТранспортаСообщенийОбмена.ТранспортПоУмолчанию(Корреспондент); - -КонецФункции - // Параметры транспорта (обработки транспорта). // // Параметры: -// ИдентификаторТранспорта - Строка - Идентификатор транспорта +// ИдентификаторТранспорта - Строка - идентификатор транспорта // // Возвращаемое значение: -// Неопределено, Структура - см. СтруктураПараметровТранспорта +// Неопределено, +// Структура - см. ТранспортСообщенийОбмена.СтруктураПараметровТранспорта // Функция ПараметрыТранспорта(Знач ИдентификаторТранспорта) Экспорт @@ -273,8 +263,8 @@ // Параметр транспорта (обработки транспорта). // // Параметры: -// ИдентификаторТранспорта - Строка - Идентификатор транспорта -// ИмяПараметра - Строка - Имя параметра транспорта. Список параметров см. СтруктураПараметровТранспорта +// ИдентификаторТранспорта - Строка - идентификатор транспорта +// ИмяПараметра - Строка - имя параметра транспорта. Список параметров см. СтруктураПараметровТранспорта // // Возвращаемое значение: // Произвольный @@ -294,13 +284,134 @@ КонецФункции +// Структура параметров транспорта. +// +// Возвращаемое значение: +// Структура - структура параметров транспорта: +// * Псевдоним - Строка - краткое представление транспорта +// * ИдентификаторТранспорта - Строка +// * Описание - Строка - подробное описание транспорта +// * ИмяФормыНастройки - Строка - имя формы, для настроенного транспорта +// * ИмяФормыПервойНастройки - Строка - имя формы, которая используется при первой настройке синхронизации. +// * ИмяФормыАутентификации - Строка - имя формы, которая используется при ввода данных аутентификации +// * РеквизитыДляБезопасногоХранилища - Массив из Строка - список реквизитов, +// которые помещаются в безопасное хранилище при сохранение настроек транспорта +// * ЗапускОбменаИзКорреспондента - Булево - признак того, что синхронизацию можно запустить в базе корреспонденте +// * ИспользоватьПрогресс - Булево - будет ли использован прогресс бар при выгрузке загрузке данных. +// Истина - для оффлайн обменов, Ложь для онлайн +// * СохранитьПараметрыПодключенияВФайл - Булево +// * РежимРаботыПриложения - Число - влияет только на картинку в списке формы НастройкиСинхронизацииДанных. +// Доступно 0 и 1. 0 - Обмен через обычные каналы связи (FILE, FTP и т.д.), 1 - с приложением в сервисе. +// * Картинка - Картинка - картинка, которая будет отображаться для транспорта в списках выбора +// * ПрямоеПодключение - Булево - Истина - с базой корреспондентом есть прямая связь (COM, WS, HTTP) +// * ПассивныйРежим - Булево - Истина Транспорт является "заглушкой", +// при использовании транспорта с этим параметром нельзя инициализировать синхронизацию данных. +// Используется в связке с WS и HTTP +// * НастройкаУзлаВКорреспонденте - Булево - +// Истина, если есть необходимость донастроить транспорт в базе корреспонденте при создании новой синхронизации. +// Ложь - Необходимости нет +// +Функция СтруктураПараметровТранспорта() Экспорт + + Параметры = Новый Структура; + + Параметры.Вставить("Псевдоним", ""); + Параметры.Вставить("ИдентификаторТранспорта", ""); + Параметры.Вставить("Описание", ""); + Параметры.Вставить("ИмяФормыНастройки", "ФормаНастройки"); + Параметры.Вставить("ИмяФормыПервойНастройки", "ФормаНастройки"); + Параметры.Вставить("ИмяФормыАутентификации", "ФормаАутентификации"); + Параметры.Вставить("РеквизитыДляБезопасногоХранилища", Новый Массив); + Параметры.Вставить("ЗапускОбменаИзКорреспондента", Истина); + Параметры.Вставить("ИспользоватьПрогресс", Истина); + Параметры.Вставить("СохранитьПараметрыПодключенияВФайл", Истина); + Параметры.Вставить("РежимРаботыПриложения", 0); + Параметры.Вставить("Картинка", БиблиотекаКартинок.ТранспортПередачаДанных); + + // Для онлайн обмена + Параметры.Вставить("ПрямоеПодключение", Ложь); + Параметры.Вставить("ПассивныйРежим", Ложь); + + Параметры.Вставить("НастройкаУзлаВКорреспонденте", Ложь); + + Возврат Параметры; + +КонецФункции + +// Структура проверки полученных параметров транспорта. +// +// Возвращаемое значение: +// Структура - структура проверки полученных параметров транспорта: +// * ПодключениеУстановлено - Булево - проверка подключения выполнена успешно. +// * ПодключениеРазрешено - Булево - есть разрешение использовать перечисленный вид транспорта. +// * ВерсииИнтерфейса - Неопределено, +// Строка - для версионируемых видов транспорта, например, ВЕБ- или HTTP- сервисы. +// * СообщениеОбОшибке - Строка - текст ошибки подключения. +// * ПараметрыКорреспондентаПолучены - Булево - получен ответ с параметрами корреспондента. +// * ПараметрыКорреспондента - Неопределено, +// Строка - строка XML с параметрами корреспондента. +// * ИмяПланаОбменаКорреспондента - Строка - имя плана обмена в корреспонденте. +// * ЭтотУзелЕстьВКорреспонденте - Булево - признак того, что в корреспонденте нет настройки с этой ИБ. +// * УзелКорреспондентаЕстьВЭтойБазе - Булево - признак того, что в этой ИБ нет настройки с корреспондентом. +// * УзелДляУдаления - Неопределено, +// ПланОбменаСсылка - узел обмена, который планируется удалить. +// +Функция СтруктураРезультатаПолученияПараметровКорреспондента() Экспорт + + Результат = Новый Структура; + Результат.Вставить("ПодключениеУстановлено", Ложь); + Результат.Вставить("ПодключениеРазрешено", Ложь); + Результат.Вставить("ВерсииИнтерфейса", Неопределено); + Результат.Вставить("СообщениеОбОшибке", ""); + + Результат.Вставить("ПараметрыКорреспондентаПолучены", Ложь); + Результат.Вставить("ПараметрыКорреспондента", Неопределено); + Результат.Вставить("ИмяПланаОбменаКорреспондента", ""); + + // Контроль дублирования настроек синхронизации (синхронизация уже настроена) + Результат.Вставить("ЭтотУзелЕстьВКорреспонденте", Ложь); + Результат.Вставить("УзелКорреспондентаЕстьВЭтойБазе", Ложь); + Результат.Вставить("УзелДляУдаления", Неопределено); + + Возврат Результат; + +КонецФункции + +// Транспорт по умолчанию. +// +// Параметры: +// Корреспондент - ПланОбменаСсылка - корреспондент +// +// Возвращаемое значение: +// Строка - идентификатор транспорта +// +Функция ТранспортПоУмолчанию(Корреспондент) Экспорт + + Возврат Справочники.НастройкиТранспортаСообщенийОбмена.ТранспортПоУмолчанию(Корреспондент); + +КонецФункции + +// Удалить все настройки транспорта. +// +// Параметры: +// Корреспондент - ПланОбменаСсылка - удаляемый узел плана обмена +// +Процедура УдалитьВсеНастройкиТранспорта(Корреспондент) Экспорт + + Справочники.НастройкиТранспортаСообщенийОбмена.УдалитьВсеНастройки(Корреспондент); + +КонецПроцедуры + +#Область МенеджерыТиповыхОбработокТранспорта + // Возвращает обработку транспорта по ее идентификатору. // // Параметры: -// ИдентификаторТранспорта - Строка - Идентификатор транспорта +// ИдентификаторТранспорта - Строка - идентификатор транспорта // // Возвращаемое значение: -// Произвольный - Менеджер обработки транспорта +// Произвольный - менеджер обработки транспорта +// Функция МенеджерТранспортаПоИдентификатору(ИдентификаторТранспорта) Экспорт Менеджеры = МенеджерыТранспортаПоИдентификаторам(); @@ -430,16 +541,7 @@ КонецФункции -// Удалить все настройки транспорта. -// -// Параметры: -// Корреспондент - ПланОбменаСсылка - удаляемый узел плана обмена -// -Процедура УдалитьВсеНастройкиТранспорта(Корреспондент) Экспорт - - Справочники.НастройкиТранспортаСообщенийОбмена.УдалитьВсеНастройки(Корреспондент); - -КонецПроцедуры +#КонецОбласти #КонецОбласти @@ -1297,6 +1399,29 @@ КонецФункции +// Проверка того, что все обязательные реквизиты настройки транспорта заполнены. +// +// Параметры: +// Настройка - РезультатЗапроса, Структура - значения реквизитов настройки транспорта. +// ИдентификаторНастройки - Строка - идентификатор транспорта. +// +// Возвращаемое значение: +// Булево - Истина, если все обязательные реквизиты настройки заполнены. +// +Функция ЗаполненыОбязательныеРеквизитыНастройкиТранспорта(Знач Настройка, Знач ИдентификаторНастройки) Экспорт + + НастройкаТранспорта = НастройкаТранспортаВСтруктуру(Настройка); + + МенеджерТранспорта = МенеджерТранспортаПоИдентификатору(ИдентификаторНастройки); + + НастройкаЗаполнена = ОбязательныеРеквизитыНастройкиЗаполнены(НастройкаТранспорта, МенеджерТранспорта); + + ТранспортСообщенийОбменаПереопределяемый.ПриПроверкиЗаполненияОбязательныхРеквизитовНастройкиТранспорта(НастройкаТранспорта, МенеджерТранспорта, НастройкаЗаполнена); + + Возврат НастройкаЗаполнена; + +КонецФункции + #КонецОбласти #Область СлужебныеПроцедурыИФункции @@ -1323,81 +1448,6 @@ КонецФункции -// Структура параметров транспорта. -// -// Возвращаемое значение: -// Структура - Структура параметров транспорта: -// * Псевдоним - Строка - краткое представление транспорта -// * ИдентификаторТранспорта - Строка -// * Описание - Строка - подробное описание транспорта -// * ИмяФормыНастройки - Строка - имя формы, для настроенного транспорта -// * ИмяФормыПервойНастройки - Строка - имя формы, которая используется при первой настройке синхронизации. -// * ИмяФормыАутентификации - Строка - имя формы, которая используется при ввода данных аутентификации -// * РеквизитыДляБезопасногоХранилища - Массив из Строка - список реквизитов, -// которые помещаются в безопасное хранилище при сохранение настроек транспорта -// * ЗапускОбменаИзКорреспондента - Булево - признак того, что синхронизацию можно запустить в базе корреспонденте -// * ИспользоватьПрогресс - Булево - Будет ли использован прогресс бар при выгрузке загрузке данных. -// Истина - для оффлайн обменов, Ложь для онлайн -// * СохранитьПараметрыПодключенияВФайл - Булево - -// * РежимРаботыПриложения - Число - Влияет только на картинку в списке формы НастройкиСинхронизацииДанных. -// Доступно 0 и 1. 0 - Обмен через обычные каналы связи (FILE, FTP и т.д.), 1 - с приложением в сервисе. -// * Картинка - Картинка - картинка, которая будет отображаться для транспорта в списках выбора -// * ПрямоеПодключение - Булево - Истина - с базой корреспондентом есть прямая связь (COM, WS, HTTP) -// * ПассивныйРежим - Булево - Истина Транспорт является "заглушкой", -// при использовании транспорта с этим параметром нельзя инициализировать синхронизацию данных. -// Используется в связке с WS и HTTP -// * НастройкаУзлаВКорреспонденте - Булево - -// Истина, если есть необходимость донастроить транспорт в базе корреспонденте при создании новой синхронизации. -// Ложь - Необходимости нет -// -Функция СтруктураПараметровТранспорта() Экспорт - - Параметры = Новый Структура; - - Параметры.Вставить("Псевдоним", ""); - Параметры.Вставить("ИдентификаторТранспорта", ""); - Параметры.Вставить("Описание", ""); - Параметры.Вставить("ИмяФормыНастройки", "ФормаНастройки"); - Параметры.Вставить("ИмяФормыПервойНастройки", "ФормаНастройки"); - Параметры.Вставить("ИмяФормыАутентификации", "ФормаАутентификации"); - Параметры.Вставить("РеквизитыДляБезопасногоХранилища", Новый Массив); - Параметры.Вставить("ЗапускОбменаИзКорреспондента", Истина); - Параметры.Вставить("ИспользоватьПрогресс", Истина); - Параметры.Вставить("СохранитьПараметрыПодключенияВФайл", Истина); - Параметры.Вставить("РежимРаботыПриложения", 0); - Параметры.Вставить("Картинка", БиблиотекаКартинок.ТранспортПередачаДанных); - - // Для онлайн обмена - Параметры.Вставить("ПрямоеПодключение", Ложь); - Параметры.Вставить("ПассивныйРежим", Ложь); - - Параметры.Вставить("НастройкаУзлаВКорреспонденте", Ложь); - - Возврат Параметры; - -КонецФункции - -Функция СтруктураРезультатаПолученияПараметровКорреспондента() Экспорт - - Результат = Новый Структура; - Результат.Вставить("ПодключениеУстановлено", Ложь); - Результат.Вставить("ПодключениеРазрешено", Ложь); - Результат.Вставить("ВерсииИнтерфейса", Неопределено); - Результат.Вставить("СообщениеОбОшибке", ""); - - Результат.Вставить("ПараметрыКорреспондентаПолучены", Ложь); - Результат.Вставить("ПараметрыКорреспондента", Неопределено); - Результат.Вставить("ИмяПланаОбменаКорреспондента", ""); - - // Контроль дублирования настроек синхронизации (синхронизация уже настроена) - Результат.Вставить("ЭтотУзелЕстьВКорреспонденте", Ложь); - Результат.Вставить("УзелКорреспондентаЕстьВЭтойБазе", Ложь); - Результат.Вставить("УзелДляУдаления", Неопределено); - - Возврат Результат; - -КонецФункции - Функция МенеджерыТранспортаПоИдентификаторам() Менеджеры = Новый Соответствие; @@ -1650,7 +1700,7 @@ Возврат Ложь; КонецЕсли; - Транспорт = Инициализация(ПараметрыАутентификации); + Транспорт = Инициализация(ПараметрыАутентификации, Ложь); ИмяОбработки = Транспорт.Метаданные().ПолноеИмя(); ИмяФормыАутентификации = ПараметрТранспорта(ПараметрыАутентификации.ИдентификаторТранспорта, "ИмяФормыАутентификации"); @@ -1943,7 +1993,7 @@ ДобавитьЗаписьXML(ЗаписьXML, НастройкиТранспорта.МаксимальныйДопустимыйРазмерСообщения, "EMAILМаксимальныйДопустимыйРазмерСообщения"); // @Non-NLS ДобавитьЗаписьXML(ЗаписьXML, НастройкиТранспорта.СжиматьФайлИсходящегоСообщения, "EMAILСжиматьФайлИсходящегоСообщения"); // @Non-NLS - // Учтеная запись + // Учетная запись ЗаписьXML.ЗаписатьНачалоЭлемента("EMAILУчетнаяЗапись"); // @Non-NLS ЗаписьXML.ЗаписатьАтрибут("xmlns", ""); ЗаписьXML.ЗаписатьАтрибут("xsi:type", "CatalogRef.УчетныеЗаписиЭлектроннойПочты"); // @Non-NLS-2 @@ -2198,7 +2248,7 @@ Результат = Новый Структура; - // Основыне параметры обмена + // Основные параметры обмена ОсновныеПараметры = Новый Структура; РеквизитыУзла = ОбщегоНазначения.ЗначенияРеквизитовОбъекта( @@ -2501,4 +2551,159 @@ КонецФункции +// Проверка того, что все обязательные реквизиты настройки транспорта заполнены. +// +// Параметры: +// Настройка - Структура - значения реквизитов настройки транспорта. +// МенеджерТранспорта - Произвольный - менеджер транспорта см. в функции ТранспортСообщенийОбмена.МенеджерТранспортаПоИдентификатору. +// +// Возвращаемое значение: +// Булево - Истина, если все обязательные реквизиты настройки заполнены. +// +Функция ОбязательныеРеквизитыНастройкиЗаполнены(Настройка, МенеджерТранспорта) + + Если Не Настройка.Количество() Тогда + Возврат Ложь; + КонецЕсли; + + НастройкаЗаполнена = Истина; + + Если МенеджерТранспорта = МенеджерТранспортаCOM() Тогда + НастройкаЗаполнена = ОбязательныеРеквизитыНастройкиТранспортаCOMЗаполнены(Настройка); + Иначе + ОбязательныеРеквизиты = ОбязательныеДляЗаполненияРеквизитыТранспортов(); + + ОбязательныеРеквизитыТранспорта = ОбязательныеРеквизиты.Получить(МенеджерТранспорта); + + Если ОбязательныеРеквизитыТранспорта <> Неопределено Тогда + Для Каждого РеквизитНастройки Из ОбязательныеРеквизитыТранспорта Цикл + Если Настройка.Свойство(РеквизитНастройки) Тогда + Если Не ЗначениеЗаполнено(Настройка[РеквизитНастройки]) Тогда + НастройкаЗаполнена = Ложь; + Прервать; + КонецЕсли; + КонецЕсли; + КонецЦикла; + КонецЕсли; + КонецЕсли; + + Возврат НастройкаЗаполнена; + +КонецФункции + +// Проверка того, что все обязательные реквизиты настройки транспорта COM заполнены. +// +// Параметры: +// Настройка - Структура - значения реквизитов настройки транспорта. +// +// Возвращаемое значение: +// Булево - Истина, если все обязательные реквизиты настройки заполнены. +// +Функция ОбязательныеРеквизитыНастройкиТранспортаCOMЗаполнены(Настройка) + + НастройкаЗаполнена = Ложь; + + Если Настройка.ВариантРаботыИнформационнойБазы Тогда + Если ЗначениеЗаполнено(Настройка.ИмяСервера1СПредприятия) И ЗначениеЗаполнено(Настройка.ИмяИнформационнойБазыНаСервере1СПредприятия) Тогда + НастройкаЗаполнена = Истина; + КонецЕсли; + Иначе + НастройкаЗаполнена = ЗначениеЗаполнено(Настройка.КаталогИнформационнойБазы); + КонецЕсли; + + Возврат НастройкаЗаполнена; + +КонецФункции + +// Возвращает соответствие, которое содержит в себе обязательные реквизиты настройки для заполнения +// +// Возвращаемое значение: +// Соответствие из КлючИЗначение: +// * Ключ - Произвольный - менеджер транспорта см. в функции ТранспортСообщенийОбмена.МенеджерыТранспортаПоИдентификаторам; +// * Значение - Массив - содержит имена реквизитов обязательных для заполнения; +// +Функция ОбязательныеДляЗаполненияРеквизитыТранспортов() + + ОбязательныеДляЗаполненияРеквизиты = Новый Соответствие; + + РеквизитыНастройки = Новый Массив; + РеквизитыНастройки.Добавить("УчетнаяЗапись"); + ОбязательныеДляЗаполненияРеквизиты.Вставить(МенеджерТранспортаEMAIL(), РеквизитыНастройки); + + РеквизитыНастройки = Новый Массив; + РеквизитыНастройки.Добавить("КаналОтправки"); + РеквизитыНастройки.Добавить("КаналПолучения"); + РеквизитыНастройки.Добавить("КодПолучателя"); + РеквизитыНастройки.Добавить("СервисИнтеграции"); + ОбязательныеДляЗаполненияРеквизиты.Вставить(МенеджерТранспортаESB1C(), РеквизитыНастройки); + + РеквизитыНастройки = Новый Массив; + РеквизитыНастройки.Добавить("КаталогОбменаИнформацией"); + ОбязательныеДляЗаполненияРеквизиты.Вставить(МенеджерТранспортаFILE(), РеквизитыНастройки); + + РеквизитыНастройки = Новый Массив; + РеквизитыНастройки.Добавить("Путь"); + РеквизитыНастройки.Добавить("Пользователь"); + ОбязательныеДляЗаполненияРеквизиты.Вставить(МенеджерТранспортаFTP(), РеквизитыНастройки); + + РеквизитыНастройки = Новый Массив; + РеквизитыНастройки.Добавить("ClientID"); + РеквизитыНастройки.Добавить("ClientSecret"); + РеквизитыНастройки.Добавить("AccessToken"); + РеквизитыНастройки.Добавить("RefreshToken"); + ОбязательныеДляЗаполненияРеквизиты.Вставить(МенеджерТранспортаЯндексДиск(), РеквизитыНастройки); + + РеквизитыНастройки = Новый Массив; + РеквизитыНастройки.Добавить("ClientID"); + РеквизитыНастройки.Добавить("ClientSecret"); + РеквизитыНастройки.Добавить("AccessToken"); + РеквизитыНастройки.Добавить("RefreshToken"); + ОбязательныеДляЗаполненияРеквизиты.Вставить(МенеджерТранспортаGoogleDrive(), РеквизитыНастройки); + + РеквизитыНастройки = Новый Массив; + РеквизитыНастройки.Добавить("АдресВебСервиса"); + ОбязательныеДляЗаполненияРеквизиты.Вставить(МенеджерТранспортаWS(), РеквизитыНастройки); + + РеквизитыНастройки = Новый Массив; + РеквизитыНастройки.Добавить("АдресВебСервиса"); + ОбязательныеДляЗаполненияРеквизиты.Вставить(МенеджерТранспортаHTTP(), РеквизитыНастройки); + + РеквизитыНастройки = Новый Массив; + РеквизитыНастройки.Добавить("НаименованиеКорреспондента"); + РеквизитыНастройки.Добавить("КонечнаяТочкаКорреспондента"); + ОбязательныеДляЗаполненияРеквизиты.Вставить(МенеджерТранспортаSM(), РеквизитыНастройки); + + РеквизитыНастройки = Новый Массив; + ОбязательныеДляЗаполненияРеквизиты.Вставить(МенеджерТранспортаПассивныйРежим(), РеквизитыНастройки); + + Возврат ОбязательныеДляЗаполненияРеквизиты; + +КонецФункции + +// Преобразует настройку в структуру. +// +// Параметры: +// Настройка - РезультатЗапроса, Структура - значения реквизитов настройки транспорта. +// +// Возвращаемое значение: +// Структура - содержит значения реквизитов настройки. +// +Функция НастройкаТранспортаВСтруктуру(Настройка) + + Если ТипЗнч(Настройка) = Тип("РезультатЗапроса") Тогда + Результат = Новый Структура; + + Выборка = Настройка.Выбрать(); + + Пока Выборка.Следующий() Цикл + Результат.Вставить(Выборка.Настройка, Выборка.Значение); + КонецЦикла; + Иначе + Результат = Настройка; + КонецЕсли; + + Возврат Результат; + +КонецФункции + #КонецОбласти diff --git a/SSL/src/CommonModules/ТранспортСообщенийОбменаВызовСервера/Module.bsl b/SSL/src/CommonModules/ТранспортСообщенийОбменаВызовСервера/Module.bsl index 5acb5c5f5..5d631df9d 100644 --- a/SSL/src/CommonModules/ТранспортСообщенийОбменаВызовСервера/Module.bsl +++ b/SSL/src/CommonModules/ТранспортСообщенийОбменаВызовСервера/Module.bsl @@ -1,5 +1,5 @@ /////////////////////////////////////////////////////////////////////////////////////////////////////// -// Copyright (c) 2024, ООО 1С-Софт +// Copyright (c) 2025, ООО 1С-Софт // Все права защищены. Эта программа и сопроводительные материалы предоставляются // в соответствии с условиями лицензии Attribution 4.0 International (CC BY 4.0) // Текст лицензии доступен по ссылке: @@ -39,6 +39,17 @@ КонецФункции +Процедура ОбработатьИзменениеНастроекТранспорта(Знач Корреспондент, Знач ИдентификаторТранспорта, Знач НастройкиТранспорта, ОбязательныеРеквизитыНастройкиЗаполнены) Экспорт + + СохранитьНастройкиТранспорта( + Корреспондент, + ИдентификаторТранспорта, + НастройкиТранспорта); + + ОбязательныеРеквизитыНастройкиЗаполнены = ТранспортСообщенийОбмена.ЗаполненыОбязательныеРеквизитыНастройкиТранспорта(НастройкиТранспорта, ИдентификаторТранспорта); + +КонецПроцедуры + #КонецОбласти #Область СлужебныеПроцедурыИФункции diff --git a/SSL/src/CommonModules/ТранспортСообщенийОбменаКлиент/Module.bsl b/SSL/src/CommonModules/ТранспортСообщенийОбменаКлиент/Module.bsl index 4f715f9a4..c95147a9f 100644 --- a/SSL/src/CommonModules/ТранспортСообщенийОбменаКлиент/Module.bsl +++ b/SSL/src/CommonModules/ТранспортСообщенийОбменаКлиент/Module.bsl @@ -1,5 +1,5 @@ /////////////////////////////////////////////////////////////////////////////////////////////////////// -// Copyright (c) 2024, ООО 1С-Софт +// Copyright (c) 2025, ООО 1С-Софт // Все права защищены. Эта программа и сопроводительные материалы предоставляются // в соответствии с условиями лицензии Attribution 4.0 International (CC BY 4.0) // Текст лицензии доступен по ссылке: diff --git a/SSL/src/CommonModules/ТранспортСообщенийОбменаКлиентСервер/Module.bsl b/SSL/src/CommonModules/ТранспортСообщенийОбменаКлиентСервер/Module.bsl index 30ccf6c8f..0e01744b4 100644 --- a/SSL/src/CommonModules/ТранспортСообщенийОбменаКлиентСервер/Module.bsl +++ b/SSL/src/CommonModules/ТранспортСообщенийОбменаКлиентСервер/Module.bsl @@ -1,5 +1,5 @@ /////////////////////////////////////////////////////////////////////////////////////////////////////// -// Copyright (c) 2024, ООО 1С-Софт +// Copyright (c) 2025, ООО 1С-Софт // Все права защищены. Эта программа и сопроводительные материалы предоставляются // в соответствии с условиями лицензии Attribution 4.0 International (CC BY 4.0) // Текст лицензии доступен по ссылке: diff --git a/SSL/src/CommonModules/ТранспортСообщенийОбменаПереопределяемый/Module.bsl b/SSL/src/CommonModules/ТранспортСообщенийОбменаПереопределяемый/Module.bsl index e3255a952..def475742 100644 --- a/SSL/src/CommonModules/ТранспортСообщенийОбменаПереопределяемый/Module.bsl +++ b/SSL/src/CommonModules/ТранспортСообщенийОбменаПереопределяемый/Module.bsl @@ -1,5 +1,5 @@ /////////////////////////////////////////////////////////////////////////////////////////////////////// -// Copyright (c) 2024, ООО 1С-Софт +// Copyright (c) 2025, ООО 1С-Софт // Все права защищены. Эта программа и сопроводительные материалы предоставляются // в соответствии с условиями лицензии Attribution 4.0 International (CC BY 4.0) // Текст лицензии доступен по ссылке: @@ -12,11 +12,21 @@ // Возвращает все доступные типы транспорта. // // Параметры: -// ТипыТранспорта - Массив из ОбработкаОбъект.ТранспортСообщенийОбмена* +// ТипыТранспорта - Массив из ОбработкаОбъект.ТранспортСообщенийОбменаCOM, +// ОбработкаОбъект.ТранспортСообщенийОбменаEMAIL, +// ОбработкаОбъект.ТранспортСообщенийОбменаESB1C, +// ОбработкаОбъект.ТранспортСообщенийОбменаFILE, +// ОбработкаОбъект.ТранспортСообщенийОбменаFTP, +// ОбработкаОбъект.ТранспортСообщенийОбменаGoogleDrive, +// ОбработкаОбъект.ТранспортСообщенийОбменаHTTP, +// ОбработкаОбъект.ТранспортСообщенийОбменаSM, +// ОбработкаОбъект.ТранспортСообщенийОбменаWS, +// ОбработкаОбъект.ТранспортСообщенийОбменаПассивныйРежим, +// ОбработкаОбъект.ТранспортСообщенийОбменаЯндексДиск - обработки транспорта, в т.ч. добавленные при кастомизации. // Процедура ПриОпределенииТиповТранспорта(ТипыТранспорта) Экспорт - - // + + КонецПроцедуры @@ -24,9 +34,19 @@ // Определяет доступные типы транспорта для узла плана обмена // // Параметры: -// ДоступныеТипыТранспорта - Массив из ОбработкаОбъект.ТранспортСообщенийОбмена* -// Корреспондент - ПланОбменаСсылка - узел, для котороно определяются доступные типы транспорта -// ВариантНастройки - Строка - Вариант настройки +// ДоступныеТипыТранспорта - Массив из ОбработкаОбъект.ТранспортСообщенийОбменаCOM, +// ОбработкаОбъект.ТранспортСообщенийОбменаEMAIL, +// ОбработкаОбъект.ТранспортСообщенийОбменаESB1C, +// ОбработкаОбъект.ТранспортСообщенийОбменаFILE, +// ОбработкаОбъект.ТранспортСообщенийОбменаFTP, +// ОбработкаОбъект.ТранспортСообщенийОбменаGoogleDrive, +// ОбработкаОбъект.ТранспортСообщенийОбменаHTTP, +// ОбработкаОбъект.ТранспортСообщенийОбменаSM, +// ОбработкаОбъект.ТранспортСообщенийОбменаWS, +// ОбработкаОбъект.ТранспортСообщенийОбменаПассивныйРежим, +// ОбработкаОбъект.ТранспортСообщенийОбменаЯндексДиск - обработки транспорта, в т.ч. добавленные при кастомизации. +// Корреспондент - ПланОбменаСсылка - узел, для которого определяются доступные типы транспорта +// ВариантНастройки - Строка - вариант настройки // Процедура ПриОпределенииДоступныхТиповТранспорта(ДоступныеТипыТранспорта, Корреспондент, ВариантНастройки = "") Экспорт @@ -48,7 +68,7 @@ КонецПроцедуры // Вызывается в ОбменДаннымиОперацииВебСервисов.ПодготовитьФайлДляПолучения, -// перед получерием файла их хранилища сообщений обмена (регистр сведений СообщенияОбменаДанными). +// перед получением файла их хранилища сообщений обмена (регистр сведений СообщенияОбменаДанными). // // Параметры: // ИдентификаторФайла - Строка @@ -57,6 +77,18 @@ // +КонецПроцедуры + +// При проверке того, что все обязательные реквизиты настройки транспорта заполнены. +// +// Параметры: +// Настройка - РезультатЗапроса, Структура - значения реквизитов настройки транспорта. +// МенеджерТранспорта - Произвольный - менеджер транспорта см. в функции ТранспортСообщенийОбмена.МенеджерТранспортаПоИдентификатору. +// НастройкаЗаполнена - Булево - результат проверки заполнения. +// +Процедура ПриПроверкиЗаполненияОбязательныхРеквизитовНастройкиТранспорта(Настройка, МенеджерТранспорта, НастройкаЗаполнена) Экспорт + + КонецПроцедуры #КонецОбласти diff --git a/SSL/src/CommonModules/ТранспортСообщенийОбменаПовтИсп/Module.bsl b/SSL/src/CommonModules/ТранспортСообщенийОбменаПовтИсп/Module.bsl index 6e279627d..c744f9eba 100644 --- a/SSL/src/CommonModules/ТранспортСообщенийОбменаПовтИсп/Module.bsl +++ b/SSL/src/CommonModules/ТранспортСообщенийОбменаПовтИсп/Module.bsl @@ -1,5 +1,5 @@ /////////////////////////////////////////////////////////////////////////////////////////////////////// -// Copyright (c) 2024, ООО 1С-Софт +// Copyright (c) 2025, ООО 1С-Софт // Все права защищены. Эта программа и сопроводительные материалы предоставляются // в соответствии с условиями лицензии Attribution 4.0 International (CC BY 4.0) // Текст лицензии доступен по ссылке: diff --git a/SSL/src/CommonModules/УдалениеПомеченныхОбъектов/Module.bsl b/SSL/src/CommonModules/УдалениеПомеченныхОбъектов/Module.bsl index 420dd6042..01c289c07 100644 --- a/SSL/src/CommonModules/УдалениеПомеченныхОбъектов/Module.bsl +++ b/SSL/src/CommonModules/УдалениеПомеченныхОбъектов/Module.bsl @@ -1,5 +1,5 @@ /////////////////////////////////////////////////////////////////////////////////////////////////////// -// Copyright (c) 2024, ООО 1С-Софт +// Copyright (c) 2025, ООО 1С-Софт // Все права защищены. Эта программа и сопроводительные материалы предоставляются // в соответствии с условиями лицензии Attribution 4.0 International (CC BY 4.0) // Текст лицензии доступен по ссылке: diff --git a/SSL/src/CommonModules/УдалениеПомеченныхОбъектовКлиент/Module.bsl b/SSL/src/CommonModules/УдалениеПомеченныхОбъектовКлиент/Module.bsl index 417370b42..7c6f56882 100644 --- a/SSL/src/CommonModules/УдалениеПомеченныхОбъектовКлиент/Module.bsl +++ b/SSL/src/CommonModules/УдалениеПомеченныхОбъектовКлиент/Module.bsl @@ -1,5 +1,5 @@ /////////////////////////////////////////////////////////////////////////////////////////////////////// -// Copyright (c) 2024, ООО 1С-Софт +// Copyright (c) 2025, ООО 1С-Софт // Все права защищены. Эта программа и сопроводительные материалы предоставляются // в соответствии с условиями лицензии Attribution 4.0 International (CC BY 4.0) // Текст лицензии доступен по ссылке: diff --git a/SSL/src/CommonModules/УдалениеПомеченныхОбъектовПереопределяемый/Module.bsl b/SSL/src/CommonModules/УдалениеПомеченныхОбъектовПереопределяемый/Module.bsl index 2b89ab150..0c593513a 100644 --- a/SSL/src/CommonModules/УдалениеПомеченныхОбъектовПереопределяемый/Module.bsl +++ b/SSL/src/CommonModules/УдалениеПомеченныхОбъектовПереопределяемый/Module.bsl @@ -1,5 +1,5 @@ /////////////////////////////////////////////////////////////////////////////////////////////////////// -// Copyright (c) 2024, ООО 1С-Софт +// Copyright (c) 2025, ООО 1С-Софт // Все права защищены. Эта программа и сопроводительные материалы предоставляются // в соответствии с условиями лицензии Attribution 4.0 International (CC BY 4.0) // Текст лицензии доступен по ссылке: diff --git a/SSL/src/CommonModules/УдалениеПомеченныхОбъектовПовтИсп/Module.bsl b/SSL/src/CommonModules/УдалениеПомеченныхОбъектовПовтИсп/Module.bsl index 6599f9865..ce5e01a29 100644 --- a/SSL/src/CommonModules/УдалениеПомеченныхОбъектовПовтИсп/Module.bsl +++ b/SSL/src/CommonModules/УдалениеПомеченныхОбъектовПовтИсп/Module.bsl @@ -1,5 +1,5 @@ /////////////////////////////////////////////////////////////////////////////////////////////////////// -// Copyright (c) 2024, ООО 1С-Софт +// Copyright (c) 2025, ООО 1С-Софт // Все права защищены. Эта программа и сопроводительные материалы предоставляются // в соответствии с условиями лицензии Attribution 4.0 International (CC BY 4.0) // Текст лицензии доступен по ссылке: diff --git a/SSL/src/CommonModules/УдалениеПомеченныхОбъектовСлужебный/Module.bsl b/SSL/src/CommonModules/УдалениеПомеченныхОбъектовСлужебный/Module.bsl index ba72e81ff..f9dbe489a 100644 --- a/SSL/src/CommonModules/УдалениеПомеченныхОбъектовСлужебный/Module.bsl +++ b/SSL/src/CommonModules/УдалениеПомеченныхОбъектовСлужебный/Module.bsl @@ -1,5 +1,5 @@ /////////////////////////////////////////////////////////////////////////////////////////////////////// -// Copyright (c) 2024, ООО 1С-Софт +// Copyright (c) 2025, ООО 1С-Софт // Все права защищены. Эта программа и сопроводительные материалы предоставляются // в соответствии с условиями лицензии Attribution 4.0 International (CC BY 4.0) // Текст лицензии доступен по ссылке: @@ -952,8 +952,8 @@ ТипМетаданныхРезультата = Результат.Строки.Добавить(); ЗаполнитьЗначенияСвойств(ТипМетаданныхРезультата, ТипМетаданных); ПомеченныеНаУдаление = ТипМетаданных.Строки.ВыгрузитьКолонку("УдаляемыйСсылка"); - ДополнительныеРеквизиты = ЗначенияДополнительныхРеквизитов(ПомеченныеНаУдаление, Настройки.НайтиСтроки( - Новый Структура("Метаданные", ВРег(ТипМетаданных.УдаляемыйСсылка)))); + ДополнительныеРеквизиты = ЗначенияДополнительныхРеквизитов(ПомеченныеНаУдаление, + Настройки.НайтиСтроки(Новый Структура("Метаданные", ВРег(ТипМетаданных.УдаляемыйСсылка)))); Для Каждого ПомеченныйОбъект Из ТипМетаданных.Строки Цикл ПомеченныйОбъектРезультат = ТипМетаданныхРезультата.Строки.Добавить(); @@ -987,8 +987,8 @@ Результат = Новый Соответствие; ДополнительныеРеквизиты = Новый Массив; - Для Каждого Реквизит Из НастройкиДополнительныхРеквизитов Цикл - ДополнительныеРеквизиты.Добавить(Реквизит.Реквизит); + Для Каждого Настройка Из НастройкиДополнительныхРеквизитов Цикл + ДополнительныеРеквизиты.Добавить(Настройка.Реквизит); КонецЦикла; Если ДополнительныеРеквизиты.Количество() > 0 Тогда @@ -1769,7 +1769,6 @@ Методы.Вставить("ВыполнитьОбработкуПричинНеудаления", Истина); Методы.Вставить("УдалитьПомеченныеОбъекты", Истина); Методы.Вставить("КонтрольУдаленияПомеченныхОбъектов", Истина); - Методы.Вставить("УдалениеПомеченныхПоРасписанию", Истина); КонецПроцедуры diff --git a/SSL/src/CommonModules/УдалениеПомеченныхОбъектовСлужебныйВызовСервера/Module.bsl b/SSL/src/CommonModules/УдалениеПомеченныхОбъектовСлужебныйВызовСервера/Module.bsl index 29abcbdde..ebd341c4d 100644 --- a/SSL/src/CommonModules/УдалениеПомеченныхОбъектовСлужебныйВызовСервера/Module.bsl +++ b/SSL/src/CommonModules/УдалениеПомеченныхОбъектовСлужебныйВызовСервера/Module.bsl @@ -1,5 +1,5 @@ /////////////////////////////////////////////////////////////////////////////////////////////////////// -// Copyright (c) 2024, ООО 1С-Софт +// Copyright (c) 2025, ООО 1С-Софт // Все права защищены. Эта программа и сопроводительные материалы предоставляются // в соответствии с условиями лицензии Attribution 4.0 International (CC BY 4.0) // Текст лицензии доступен по ссылке: diff --git a/SSL/src/CommonModules/УдалениеПомеченныхОбъектовСлужебныйКлиентСервер/Module.bsl b/SSL/src/CommonModules/УдалениеПомеченныхОбъектовСлужебныйКлиентСервер/Module.bsl index a1051e810..b74f10679 100644 --- a/SSL/src/CommonModules/УдалениеПомеченныхОбъектовСлужебныйКлиентСервер/Module.bsl +++ b/SSL/src/CommonModules/УдалениеПомеченныхОбъектовСлужебныйКлиентСервер/Module.bsl @@ -1,5 +1,5 @@ /////////////////////////////////////////////////////////////////////////////////////////////////////// -// Copyright (c) 2024, ООО 1С-Софт +// Copyright (c) 2025, ООО 1С-Софт // Все права защищены. Эта программа и сопроводительные материалы предоставляются // в соответствии с условиями лицензии Attribution 4.0 International (CC BY 4.0) // Текст лицензии доступен по ссылке: diff --git a/SSL/src/CommonModules/УправлениеДоступом/Module.bsl b/SSL/src/CommonModules/УправлениеДоступом/Module.bsl index 31ba36c4b..ce7c3c477 100644 --- a/SSL/src/CommonModules/УправлениеДоступом/Module.bsl +++ b/SSL/src/CommonModules/УправлениеДоступом/Module.bsl @@ -1,5 +1,5 @@ /////////////////////////////////////////////////////////////////////////////////////////////////////// -// Copyright (c) 2024, ООО 1С-Софт +// Copyright (c) 2025, ООО 1С-Софт // Все права защищены. Эта программа и сопроводительные материалы предоставляются // в соответствии с условиями лицензии Attribution 4.0 International (CC BY 4.0) // Текст лицензии доступен по ссылке: @@ -815,7 +815,7 @@ // Процедура ПослеЗаписиНаСервере(Форма, ТекущийОбъект, ПараметрыЗаписи) Экспорт - УправлениеДоступомСлужебный.ЗапуститьОбновлениеДоступа(); + ЗапуститьОбновлениеДоступа(); КонецПроцедуры @@ -1335,12 +1335,13 @@ // Возвращает права доступа к объектам метаданных ссылочного типа по указанным идентификаторам. // // Параметры: -// Идентификаторы - Массив - значения СправочникСсылка.ИдентификаторыОбъектовМетаданных, -// объектов ссылочного типа, для которых нужно вернуть права. +// Идентификаторы - Массив из СправочникСсылка.ИдентификаторыОбъектовМетаданных +// - Массив из СправочникСсылка.ИдентификаторыОбъектовРасширений // // Возвращаемое значение: // Соответствие из КлючИЗначение: -// * Ключ - СправочникСсылка.ИдентификаторыОбъектовМетаданных - идентификатор типа; +// * Ключ - СправочникСсылка.ИдентификаторыОбъектовМетаданных +// - СправочникСсылка.ИдентификаторыОбъектовРасширений // * Значение - Структура: // ** Ключ - Строка - имя права доступа ("Чтение", "Изменение", "Добавление"); // ** Значение - Булево - если Истина, тогда право есть, иначе нет. @@ -1482,7 +1483,7 @@ "ЗаписатьНаборыЗначенийДоступа |ЗаписатьЗависимыеНаборыЗначенийДоступа").Получить(ТипЗначенияОбъект) <> Неопределено; - Если НЕ НаборыЗаполняются Тогда + Если Не НаборыЗаполняются Тогда ТекстОшибки = СтроковыеФункцииКлиентСервер.ПодставитьПараметрыВСтроку( НСтр("ru = 'Неверные параметры. |Тип объекта ""%1"" @@ -1493,6 +1494,10 @@ ВызватьИсключение ТекстОшибки; КонецЕсли; + Если УправлениеДоступомСлужебный.ОтключеноОграничениеНаУровнеЗаписей() Тогда + Возврат; + КонецЕсли; + Таблица = ?(ТипЗнч(Таблица) = Тип("ТаблицаЗначений"), Таблица, ТаблицаНаборыЗначенийДоступа()); Попытка Объект.ЗаполнитьНаборыЗначенийДоступа(Таблица); @@ -2058,6 +2063,10 @@ ПользователиСлужебный.ПроверитьБезопасныйРежимОтключен( "УправлениеДоступом.ЗаменитьПраваВНастройкахПравОбъектов"); + Если УправлениеДоступомСлужебный.ОтключеноОграничениеНаУровнеЗаписей() Тогда + Возврат; + КонецЕсли; + // АПК:96-выкл - №434 Использование ОБЪЕДИНИТЬ допустимо, так как // строки не должны повторятся и это разовая операция в обработчике обновления. Запрос = Новый Запрос; @@ -2350,7 +2359,8 @@ // Процедура ОтключитьОбновлениеКлючейДоступа(Отключить, ПланироватьОбновление = Истина) Экспорт - Если Не ОбщегоНазначения.ДоступноИспользованиеРазделенныхДанных() Тогда + Если Не ОбщегоНазначения.ДоступноИспользованиеРазделенныхДанных() + Или УправлениеДоступомСлужебный.ОтключеноОграничениеНаУровнеЗаписей() Тогда Возврат; КонецЕсли; @@ -2503,6 +2513,23 @@ КонецПроцедуры +// Запустить обновление доступа, если требуется. Только вне транзакции. +// Обновление запускается регламентным задания ОбновлениеДоступаНаУровнеЗаписей, +// которое программно включается при добавлении задания в регистр сведений +// ОбновлениеКлючейДоступаКДанным или ОбновлениеКлючейДоступаПользователей. +// Однако, если меняются данные в таблице, которая используются в ограничении доступа +// другой таблицы, тогда записываются точечные задания, которые может потребоваться +// начать отрабатывать более оперативно, не дожидаясь запуска регламентного задания. +// При интерактивном изменении оперативность достигается вызовом этой процедуры +// из обработчика события формы ПослеЗаписиНаСервере, а при программном изменении, +// кроме длительных операций, такой вызов нужно делать явно, если требуется. +// +Процедура ЗапуститьОбновлениеДоступа() Экспорт + + УправлениеДоступомСлужебный.ЗапуститьОбновлениеДоступа(); + +КонецПроцедуры + #КонецОбласти #Область ДляВызоваИзДругихПодсистем diff --git a/SSL/src/CommonModules/УправлениеДоступомПереопределяемый/Module.bsl b/SSL/src/CommonModules/УправлениеДоступомПереопределяемый/Module.bsl index 077c33de7..b32525a41 100644 --- a/SSL/src/CommonModules/УправлениеДоступомПереопределяемый/Module.bsl +++ b/SSL/src/CommonModules/УправлениеДоступомПереопределяемый/Module.bsl @@ -1,5 +1,5 @@ /////////////////////////////////////////////////////////////////////////////////////////////////////// -// Copyright (c) 2024, ООО 1С-Софт +// Copyright (c) 2025, ООО 1С-Софт // Все права защищены. Эта программа и сопроводительные материалы предоставляются // в соответствии с условиями лицензии Attribution 4.0 International (CC BY 4.0) // Текст лицензии доступен по ссылке: @@ -8,6 +8,45 @@ #Область ПрограммныйИнтерфейс +// Переопределяет стандартное поведение подсистемы УправлениеДоступом. +// +// Параметры: +// Настройки - Структура: +// * ОграничениеНаУровнеЗаписей - Булево - по умолчанию Истина. +// Если указано Ложь, тогда тексты ограничений в ролях будут пустыми при компиляции, +// регистры ограничений доступа не будут заполняться, +// в панели администрирования настройки включения ограничения на уровне записей будут скрыты. +// Свойство недопустимо вычислять в зависимости от данных в базе данных, +// но можно вычислять в зависимости от метаданных, например, от имени конфигурации. +// Когда отключено, проверяется что служебные регистры пустые, если не пустые, +// тогда выполняется очистка в регламентном задании ОбновлениеДоступаНаУровнеЗаписей. +// Аналогично список видов доступа в поставляемых профилях групп доступа делается пустым +// при обновлении профилей групп доступа и групп доступа (значения доступа очищаются). +// +// * СтандартныйВариант - Булево - по умолчанию Истина, если указать Ложь, тогда +// в панели администрирования переключение на стандартный вариант будет скрыто, +// отчет ПроверкаВнедренияБСП.erf будет удалять из ролей шаблоны стандартного варианта и +// обновлять ограничение без условия "#Если &ОграничениеДоступаНаУровнеЗаписейУниверсально #Тогда", +// оставляя только ограничение производительного варианта, например, "#ДляОбъекта(...)". +// Для варианта встроенного языка Английский значение всегда Ложь и не может быть переопределено. +// Свойство можно менять только на этапе разработки (недопустимо менять в режиме эксплуатации). +// +// Пример: +// 1. Отключение поддержки стандартного варианта: +// Настройки.СтандартныйВариант = Ложь; +// +// 2. Отключение ограничения на уровне записей. +// +// 2.1. Постоянное отключение: +// Настройки.ОграничениеНаУровнеЗаписей = Ложь; +// +// 2.2. Отключение в зависимости от конфигурации: +// Настройки.ОграничениеНаУровнеЗаписей = Не СтандартныеПодсистемыСервер.ЭтоБазоваяВерсияКонфигурации(); +// +Процедура ПриОпределенииНастроек(Настройки) Экспорт + +КонецПроцедуры + // Заполняет виды доступа, используемые в ограничениях прав доступа. // Примечание: виды доступа Пользователи и ВнешниеПользователи предопределены, // но их можно удалить из списка ВидыДоступа, если они не требуются для ограничения прав доступа. diff --git a/SSL/src/CommonModules/УправлениеДоступомСлужебный/Module.bsl b/SSL/src/CommonModules/УправлениеДоступомСлужебный/Module.bsl index 49e4ebcea..1dffdf942 100644 --- a/SSL/src/CommonModules/УправлениеДоступомСлужебный/Module.bsl +++ b/SSL/src/CommonModules/УправлениеДоступомСлужебный/Module.bsl @@ -1,5 +1,5 @@ /////////////////////////////////////////////////////////////////////////////////////////////////////// -// Copyright (c) 2024, ООО 1С-Софт +// Copyright (c) 2025, ООО 1С-Софт // Все права защищены. Эта программа и сопроводительные материалы предоставляются // в соответствии с условиями лицензии Attribution 4.0 International (CC BY 4.0) // Текст лицензии доступен по ссылке: @@ -50,7 +50,8 @@ // Процедура ОбновитьПользователейГруппИсполнителей(ГруппыИсполнителей = Неопределено) Экспорт - Если ТипЗнч(ГруппыИсполнителей) = Тип("Массив") И ГруппыИсполнителей.Количество() = 0 Тогда + Если ТипЗнч(ГруппыИсполнителей) = Тип("Массив") И ГруппыИсполнителей.Количество() = 0 + Или ОтключеноОграничениеНаУровнеЗаписей() Тогда Возврат; КонецЕсли; @@ -494,7 +495,8 @@ // Параметры: // ОписаниеПользователей - СправочникСсылка.Пользователи // - СправочникСсылка.ВнешниеПользователи -// - Массив - значений указанных выше типов. +// - Массив из СправочникСсылка.Пользователи +// - Массив из СправочникСсылка.ВнешниеПользователи // - Неопределено - обновить роли всех пользователей. // - Тип - по которому будет найден объект метаданных: // если будет найден Справочник.ВнешниеПользователи, @@ -505,6 +507,10 @@ // // ЕстьИзменения - Булево - возвращаемое значение. В этот параметр возвращается // значение Истина, если производилась запись, иначе не изменяется. +// - Соответствие из КлючИЗначение: +// * Ключ - СправочникСсылка.Пользователи +// - СправочникСсылка.ВнешниеПользователи +// * Значение - см. НовоеИзменениеРолей // Процедура ОбновитьРолиПользователей(Знач ОписаниеПользователей = Неопределено, Знач ПарольПользователяСервиса = Неопределено, @@ -664,21 +670,26 @@ Продолжить; КонецЕсли; - ИзмененияРолей = Новый Структура; - ИзмененияРолей.Вставить("ПользовательСсылка", ТекущийПользователь); - ИзмененияРолей.Вставить("ПользовательИБ", ПользовательИБ); - ИзмененияРолей.Вставить("РолиДляДобавления", РолиДляДобавления); - ИзмененияРолей.Вставить("РолиДляУдаления", РолиДляУдаления); + ИзменениеРолей = НовоеИзменениеРолей(ТекущийПользователь, + ПользовательИБ, РолиДляДобавления, РолиДляУдаления); Если НовыйАдминистраторИБ Тогда - НовыеАдминистраторыИБ.Вставить(ТекущийПользователь, ИзмененияРолей); + НовыеАдминистраторыИБ.Вставить(ТекущийПользователь, ИзменениеРолей); Иначе - ОбновляемыеПользователиИБ.Вставить(ТекущийПользователь, ИзмененияРолей); + ОбновляемыеПользователиИБ.Вставить(ТекущийПользователь, ИзменениеРолей); КонецЕсли; - ЕстьИзменения = Истина; + Если ТипЗнч(ЕстьИзменения) = Тип("Соответствие") Тогда + ЕстьИзменения.Вставить(ТекущийПользователь, ИзменениеРолей); + Иначе + ЕстьИзменения = Истина; + КонецЕсли; КонецЦикла; + Если ТипЗнч(ЕстьИзменения) = Тип("Соответствие") Тогда + Возврат; + КонецЕсли; + ЗарегистрироватьНекорректныеРоли(НекорректныеРоли); // Добавление новых администраторов. @@ -764,6 +775,36 @@ КонецФункции +// Возвращает Истина, если в переопределяемом модуле отключено +// ограничение доступа на уровне записей. +// +// Возвращаемое значение: +// Булево +// +Функция ОтключеноОграничениеНаУровнеЗаписей() Экспорт + + УстановитьОтключениеБезопасногоРежима(Истина); + УстановитьПривилегированныйРежим(Истина); + + Возврат ПараметрыСеанса.ПараметрыОграниченияДоступа.ОтключеноОграничениеНаУровнеЗаписей; + +КонецФункции + +// Возвращает Истина, если в переопределяемом модуле отключен +// стандартный вариант ограничения доступа. +// +// Возвращаемое значение: +// Булево +// +Функция ОтключенСтандартныйВариант() Экспорт + + УстановитьОтключениеБезопасногоРежима(Истина); + УстановитьПривилегированныйРежим(Истина); + + Возврат ПараметрыСеанса.ПараметрыОграниченияДоступа.ОтключенСтандартныйВариант; + +КонецФункции + #КонецОбласти #Область УниверсальноеОграничение @@ -771,6 +812,11 @@ Функция ОграничиватьДоступНаУровнеЗаписейУниверсально(СУчетомКонстантыОграничениеДоступаНаУровнеЗаписей = Истина, КогдаПервоеОбновлениеДоступаЗавершилось = Ложь, ОбновлятьПараметрыСеансаКогдаТребуется = Истина) Экспорт + Если ОтключеноОграничениеНаУровнеЗаписей() + Или ОтключенСтандартныйВариант() Тогда + Возврат УправлениеДоступомСлужебныйПовтИсп.КонстантаОграничиватьДоступНаУровнеЗаписейУниверсально(); + КонецЕсли; + Если СУчетомКонстантыОграничениеДоступаНаУровнеЗаписей Тогда Значение = КонстантаОграничиватьДоступНаУровнеЗаписейУниверсально(); @@ -820,7 +866,10 @@ Значение = Константы.ОграничиватьДоступНаУровнеЗаписейУниверсально.Получить(); - Если Не Значение И Не ВариантВстроенногоЯзыкаРусский() Тогда + Если Не Значение И Не ВариантВстроенногоЯзыкаРусский() + Или ОтключеноОграничениеНаУровнеЗаписей() + Или ОтключенСтандартныйВариант() Тогда + Значение = Истина; УстановитьОтключениеБезопасногоРежима(Истина); УстановитьПривилегированныйРежим(Истина); @@ -858,12 +907,15 @@ КонецЕсли; КонецЕсли; - Если Использование Тогда + Если Не Использование Тогда + ВключитьЗадание = Ложь; + + ИначеЕсли ОтключеноОграничениеНаУровнеЗаписей() Тогда + ВключитьЗадание = Не РегистрыОграниченияДоступаПустые(); + Иначе ВключитьЗадание = ?(ОбщегоНазначения.ИнформационнаяБазаФайловая(), ОграничиватьДоступНаУровнеЗаписейУниверсально(Ложь, Ложь, Ложь), ОграничиватьДоступНаУровнеЗаписейУниверсально()); - Иначе - ВключитьЗадание = Ложь; КонецЕсли; Отбор = Новый Структура("Метаданные", Метаданные.РегламентныеЗадания.ОбновлениеДоступаНаУровнеЗаписей); @@ -1189,6 +1241,10 @@ // Процедура ЗапланироватьОбновлениеДоступа(Списки = Неопределено, ПараметрыПланирования = Неопределено) Экспорт + Если ОтключеноОграничениеНаУровнеЗаписей() Тогда + Возврат; + КонецЕсли; + Если ПараметрыПланирования = Неопределено Тогда ПараметрыПланирования = ПараметрыПланированияОбновленияДоступа(); КонецЕсли; @@ -1439,6 +1495,12 @@ Если ОбновлениеКлючейДоступаКДанным.Количество() > 0 Или ОбновлениеКлючейДоступаПользователей.Количество() > 0 Тогда + Если РазмерЗадания = 3 + И Не ОбщегоНазначения.РазделениеВключено() + Или ЭтоТочечноеЗадание + И Не ВедущийОбъект.Свойство("ПоДаннымКэшаРасчетаПрав") Тогда + УстановитьТребуетсяЗапуститьОбновлениеДоступа(Истина); + КонецЕсли; УстановитьОбновлениеДоступа(Истина); КонецЕсли; @@ -1489,7 +1551,8 @@ // Процедура ЗапланироватьОбновлениеПараметровОграниченияДоступа(Описание, ЗапуститьОбновление = Ложь) Экспорт - Если Не ОграничиватьДоступНаУровнеЗаписейУниверсально() Тогда + Если Не ОграничиватьДоступНаУровнеЗаписейУниверсально() + Или ОтключеноОграничениеНаУровнеЗаписей() Тогда Возврат; КонецЕсли; @@ -1533,10 +1596,18 @@ // Запускает обновление доступа, если оно запланировано и еще не запущено. Процедура ЗапуститьОбновлениеДоступа() Экспорт - Если Не ОграничиватьДоступНаУровнеЗаписейУниверсально(Ложь) + Если Не ТребуетсяЗапуститьОбновлениеДоступа() Тогда + Возврат; + КонецЕсли; + + Если ОтключеноОграничениеНаУровнеЗаписей() + Или Не ОграничиватьДоступНаУровнеЗаписейУниверсально(Ложь) Или МонопольныйРежим() + Или ОбновлениеИнформационнойБазы.ВыполняетсяОбновлениеИнформационнойБазы() Или ЗапускатьОбновлениеДоступаДляУскоренияТолькоТочечныхЗаданий(Истина) И Не ЕстьЗапланированныеТочечныеЗадания() Тогда + + УстановитьТребуетсяЗапуститьОбновлениеДоступа(Ложь); Возврат; КонецЕсли; @@ -1735,6 +1806,15 @@ УстановитьПривилегированныйРежим(Истина); + ИмяПараметраСвойств = "СтандартныеПодсистемы.УправлениеДоступом.СвойстваВидовДоступа"; + ИмяПараметраТипов = "СтандартныеПодсистемы.УправлениеДоступом.ТипыГруппИЗначенийДоступа"; + + Если ОтключеноОграничениеНаУровнеЗаписей() Тогда + СтандартныеПодсистемыСервер.УдалитьПараметрРаботыПрограммы(ИмяПараметраСвойств, ЕстьИзменения); + СтандартныеПодсистемыСервер.УдалитьПараметрРаботыПрограммы(ИмяПараметраТипов, ЕстьИзменения); + Возврат; + КонецЕсли; + Кэш = УправлениеДоступомСлужебныйПовтИсп.ОписаниеСвойствВидовДоступаСеанса(); НовоеЗначение = Кэш.ХешСуммы; @@ -1743,8 +1823,7 @@ ЕстьТекущиеИзменения = Ложь; СтароеЗначение = Неопределено; - СтандартныеПодсистемыСервер.ОбновитьПараметрРаботыПрограммы( - "СтандартныеПодсистемы.УправлениеДоступом.СвойстваВидовДоступа", + СтандартныеПодсистемыСервер.ОбновитьПараметрРаботыПрограммы(ИмяПараметраСвойств, НовоеЗначение, ЕстьТекущиеИзменения, СтароеЗначение); СтароеЗначение = НовыеХешСуммыСвойствВидовДоступа(СтароеЗначение); @@ -1753,8 +1832,7 @@ НовоеЗначение.ХешСуммаТиповГруппИЗначенийДоступа <> СтароеЗначение.ХешСуммаТиповГруппИЗначенийДоступа; - СтандартныеПодсистемыСервер.ДобавитьИзмененияПараметраРаботыПрограммы( - "СтандартныеПодсистемы.УправлениеДоступом.ТипыГруппИЗначенийДоступа", + СтандартныеПодсистемыСервер.ДобавитьИзмененияПараметраРаботыПрограммы(ИмяПараметраТипов, ?(ЕстьИзмененияТиповГруппИЗначенийДоступа, Новый ФиксированнаяСтруктура("ЕстьИзменения", Истина), Новый ФиксированнаяСтруктура()) ); @@ -1884,6 +1962,10 @@ // См. ОбновлениеИнформационнойБазыПереопределяемый.ПриЗаполненииОбъектовПланируемыхКУдалению. Процедура ПриЗаполненииОбъектовПланируемыхКУдалению(Объекты) Экспорт + Если ОтключеноОграничениеНаУровнеЗаписей() Тогда + Возврат; + КонецЕсли; + // РегистрСведений.ЗависимостиПравДоступа.ТипВедущейТаблицы ЗависимостиПравДоступа = РегистрыСведений.ЗависимостиПравДоступа.ЗависимостиПравДоступа(); ТипыВедущихТаблиц = Новый Массив; @@ -2395,6 +2477,10 @@ ОбновитьРолиПользователей(Ссылка, ПарольПользователяСервиса); + Если ОтключеноОграничениеНаУровнеЗаписей() Тогда + Возврат; + КонецЕсли; + Если ОграничиватьДоступНаУровнеЗаписейУниверсально() Тогда Если ОбщегоНазначения.ИнформационнаяБазаФайловая() Тогда ПредварительнаяБлокировкаПередЗаписьюНовогоВФайловойИБ(); @@ -2491,14 +2577,18 @@ // См. ИнтеграцияПодсистемБСП.ПослеОбновленияСоставовГруппПользователей. Процедура ПослеОбновленияСоставовГруппПользователей(УчастникиИзменений, ИзмененныеГруппы) Экспорт + ОбновитьРолиПользователей(УчастникиИзменений); + + Если ОтключеноОграничениеНаУровнеЗаписей() Тогда + Возврат; + КонецЕсли; + Параметры = Новый Структура; Параметры.Вставить("Пользователи", УчастникиИзменений); Параметры.Вставить("ГруппыПользователей", ИзмененныеГруппы); РегистрыСведений.ГруппыЗначенийДоступа.ОбновитьГруппировкиПользователей(Параметры); - ОбновитьРолиПользователей(УчастникиИзменений); - Если ОграничиватьДоступНаУровнеЗаписейУниверсально() Тогда ЗапланироватьОбновлениеДоступаПриКосвенномИзмененииУчастниковГруппыДоступа(УчастникиИзменений); ЗапланироватьОбновлениеДоступаПриКосвенномИзмененииУчастниковГруппыДоступа(ИзмененныеГруппы); @@ -2515,6 +2605,10 @@ // Процедура ПослеИзмененияОбъектаАвторизацииВнешнегоПользователя(ОбъектыАвторизации) Экспорт + Если ОтключеноОграничениеНаУровнеЗаписей() Тогда + Возврат; + КонецЕсли; + Параметры = Новый Структура; Параметры.Вставить("ОбъектыАвторизации", ОбъектыАвторизации); @@ -3002,6 +3096,101 @@ #Область СлужебныеПроцедурыИФункции +Функция КонстантаОграничиватьДоступНаУровнеЗаписей() Экспорт + + Значение = Константы.ОграничиватьДоступНаУровнеЗаписей.Получить(); + + Если Значение И ОтключеноОграничениеНаУровнеЗаписей() Тогда + Значение = Ложь; + УстановитьОтключениеБезопасногоРежима(Истина); + УстановитьПривилегированныйРежим(Истина); + МенеджерЗначения = СлужебныйМенеджерЗначения( + Константы.ОграничиватьДоступНаУровнеЗаписей); + МенеджерЗначения.Значение = Значение; + МенеджерЗначения.Записать(); + УстановитьПривилегированныйРежим(Ложь); + УстановитьОтключениеБезопасногоРежима(Ложь); + КонецЕсли; + + Возврат Значение; + +КонецФункции + +Процедура ПроверитьОграничениеДоступаОтключено() Экспорт + + Если Не ОтключеноОграничениеНаУровнеЗаписей() Тогда + Возврат; + КонецЕсли; + + ТекстОшибки = НСтр("ru = 'Ограничение доступа на уровне записей не поддерживается в программе (отключено).'"); + ВызватьИсключение ТекстОшибки; + +КонецПроцедуры + +// Процедура очищает данные служебного регистра. +// +// Параметры: +// ПолноеИмяРегистра - Строка +// ЕстьИзменения - Булево - (возвращаемое значение) - если производилась запись, +// устанавливается Истина, иначе не изменяется. +// +Процедура ОчиститьРегистрСведений(ПолноеИмяРегистра, ЕстьИзменения = Неопределено) Экспорт + + Запрос = Новый Запрос; + Запрос.Текст = + "ВЫБРАТЬ ПЕРВЫЕ 1 + | ИСТИНА КАК ЗначениеИстина + |ИЗ + | &ТекущаяТаблица КАК ТекущаяТаблица"; + Запрос.Текст = СтрЗаменить(Запрос.Текст, "&ТекущаяТаблица", ПолноеИмяРегистра); + + Если Запрос.Выполнить().Пустой() Тогда + Возврат; + КонецЕсли; + + МенеджерРегистра = ОбщегоНазначения.МенеджерОбъектаПоПолномуИмени(ПолноеИмяРегистра); + НаборЗаписей = СлужебныйНаборЗаписей(МенеджерРегистра); + НаборЗаписей.Записать(); + + ЕстьИзменения = Истина; + +КонецПроцедуры + +// Процедура очищает данные служебного справочника. +// +// Параметры: +// ПолноеИмяСправочника - Строка +// ЕстьИзменения - Булево - (возвращаемое значение) - если производилась запись, +// устанавливается Истина, иначе не изменяется. +// +Процедура ОчиститьСправочник(ПолноеИмяСправочника, ЕстьИзменения = Неопределено) + + Запрос = Новый Запрос; + Запрос.Текст = + "ВЫБРАТЬ ПЕРВЫЕ 1 + | ИСТИНА КАК ЗначениеИстина + |ИЗ + | &ТекущаяТаблица КАК ТекущаяТаблица"; + Запрос.Текст = СтрЗаменить(Запрос.Текст, "&ТекущаяТаблица", ПолноеИмяСправочника); + + Если Запрос.Выполнить().Пустой() Тогда + Возврат; + КонецЕсли; + + МенеджерСправочника = ОбщегоНазначения.МенеджерОбъектаПоПолномуИмени(ПолноеИмяСправочника); + Выборка = МенеджерСправочника.Выбрать(); + Пока Выборка.Следующий() Цикл + Объект = СлужебныйЭлемент(Неопределено, Выборка.Ссылка); + Если Объект = Неопределено Тогда + Продолжить; + КонецЕсли; + Объект.Удалить(); + ЕстьИзменения = Истина; + КонецЦикла; + +КонецПроцедуры + + // См. ВыгрузкаЗагрузкаДанныхПереопределяемый.ПриРегистрацииОбработчиковВыгрузкиДанных. Процедура ПередВыгрузкойОбъекта(Контейнер, МенеджерВыгрузкиОбъекта, Сериализатор, Объект, Артефакты, Отказ) Экспорт @@ -3058,13 +3247,23 @@ // Процедура УстановкаПараметровСеанса(ИмяПараметра, УстановленныеПараметры) Экспорт -#Область УниверсальноеОграничение Если ИмяПараметра = "ПараметрыОграниченияДоступа" Тогда - ПараметрыСеанса.ПараметрыОграниченияДоступа = Новый ФиксированнаяСтруктура(Новый Структура); + Настройки = Новый Структура; + Настройки.Вставить("ОграничениеНаУровнеЗаписей", Истина); + Настройки.Вставить("СтандартныйВариант", Истина); + УправлениеДоступомПереопределяемый.ПриОпределенииНастроек(Настройки); + ПостоянныеПараметры = Новый Структура; + ПостоянныеПараметры.Вставить("ОтключеноОграничениеНаУровнеЗаписей", + Настройки.ОграничениеНаУровнеЗаписей = Ложь); + ПостоянныеПараметры.Вставить("ОтключенСтандартныйВариант", + Настройки.СтандартныйВариант = Ложь); + ПостоянныеПараметры.Вставить("ТребуетсяЗапуститьОбновлениеДоступа", Ложь); + ПараметрыСеанса.ПараметрыОграниченияДоступа = Новый ФиксированнаяСтруктура(ПостоянныеПараметры); УстановленныеПараметры.Добавить("ПараметрыОграниченияДоступа"); Возврат; КонецЕсли; +#Область УниверсальноеОграничение Если ИмяПараметра = "ОтключениеОбновленияКлючейДоступа" Тогда ПараметрыСеанса.ОтключениеОбновленияКлючейДоступа = НовоеОтключениеОбновленияКлючейДоступа(); УстановленныеПараметры.Добавить("ОтключениеОбновленияКлючейДоступа"); @@ -3091,18 +3290,21 @@ // Для корректной работы препроцессора в ограничениях доступа, требуется инициализации всех // параметров сеанса, которые могут быть востребованы в работе препроцессора. - ОграничиватьДоступНаУровнеЗаписей = Константы.ОграничиватьДоступНаУровнеЗаписей.Получить(); + ОграничиватьДоступНаУровнеЗаписей = КонстантаОграничиватьДоступНаУровнеЗаписей(); + ОтключеноОграничениеНаУровнеЗаписей = ОтключеноОграничениеНаУровнеЗаписей(); ИнформационнаяБазаЗаблокированаДляОбновления = ЗначениеЗаполнено( ОбновлениеИнформационнойБазыСлужебный.ИнформационнаяБазаЗаблокированаДляОбновления(Ложь)); #Область УниверсальноеОграничение Если Не ОграничиватьДоступНаУровнеЗаписей + Или ОтключеноОграничениеНаУровнеЗаписей Или Не УниверсальноеОграничение Или ИнформационнаяБазаЗаблокированаДляОбновления Тогда ПараметрыСеанса.СпискиСОтключеннымОграничениемЧтения = - ?(ИнформационнаяБазаЗаблокированаДляОбновления - Или Не УниверсальноеОграничение, "Неопределено", "Все"); + ?(Не ОтключеноОграничениеНаУровнеЗаписей + И (ИнформационнаяБазаЗаблокированаДляОбновления + Или Не УниверсальноеОграничение), "Неопределено", "Все"); ПустойНаборГруппДоступа = Справочники.НаборыГруппДоступа.ПустаяСсылка(); @@ -3130,11 +3332,13 @@ #КонецОбласти Если Не ОграничиватьДоступНаУровнеЗаписей + Или ОтключеноОграничениеНаУровнеЗаписей Или УниверсальноеОграничение Или ИнформационнаяБазаЗаблокированаДляОбновления Тогда ПараметрыСеанса.ОграничениеДоступаНаУровнеЗаписейИспользуется = - ?(ИнформационнаяБазаЗаблокированаДляОбновления + ?(ОтключеноОграничениеНаУровнеЗаписей + Или ИнформационнаяБазаЗаблокированаДляОбновления Или УниверсальноеОграничение, "", Ложь); ПараметрыСеанса.ВсеВидыДоступаКромеСпециальных = ""; @@ -3167,7 +3371,8 @@ УстановленныеПараметры.Добавить("ТаблицыРасширенийСОграничениемДоступа"); КонецЕсли; - Если ИнформационнаяБазаЗаблокированаДляОбновления Тогда + Если ОтключеноОграничениеНаУровнеЗаписей + Или ИнформационнаяБазаЗаблокированаДляОбновления Тогда Возврат; КонецЕсли; @@ -3536,6 +3741,7 @@ // АПК:75-выкл проверка ОбменДанными.Загрузка должна быть после записи изменений в журнал. Если СтандартныеПодсистемыСервер.ЭтоИдентификаторОбъектаМетаданных(Источник) + Или ОтключеноОграничениеНаУровнеЗаписей() Или Источник.ОбменДанными.Загрузка И Не ОбщегоНазначения.ДоступноИспользованиеРазделенныхДанных() Тогда Возврат; @@ -3594,6 +3800,7 @@ // АПК:75-выкл проверка ОбменДанными.Загрузка должна быть после записи изменений в журнал. Если СтандартныеПодсистемыСервер.ЭтоИдентификаторОбъектаМетаданных(Источник) + Или ОтключеноОграничениеНаУровнеЗаписей() Или Источник.ОбменДанными.Загрузка И Не ОбщегоНазначения.ДоступноИспользованиеРазделенныхДанных() Тогда Возврат; @@ -3637,7 +3844,8 @@ Возврат; КонецЕсли; - Если СтандартныеПодсистемыСервер.ЭтоИдентификаторОбъектаМетаданных(Объект) Тогда + Если СтандартныеПодсистемыСервер.ЭтоИдентификаторОбъектаМетаданных(Объект) + Или ОтключеноОграничениеНаУровнеЗаписей() Тогда Возврат; КонецЕсли; @@ -3667,7 +3875,8 @@ Возврат; КонецЕсли; - Если СтандартныеПодсистемыСервер.ЭтоИдентификаторОбъектаМетаданных(Объект) Тогда + Если СтандартныеПодсистемыСервер.ЭтоИдентификаторОбъектаМетаданных(Объект) + Или ОтключеноОграничениеНаУровнеЗаписей() Тогда Возврат; КонецЕсли; @@ -3694,7 +3903,8 @@ Возврат; КонецЕсли; - Если СтандартныеПодсистемыСервер.ЭтоИдентификаторОбъектаМетаданных(Объект) Тогда + Если СтандартныеПодсистемыСервер.ЭтоИдентификаторОбъектаМетаданных(Объект) + Или ОтключеноОграничениеНаУровнеЗаписей() Тогда Возврат; КонецЕсли; @@ -3738,7 +3948,8 @@ Возврат; КонецЕсли; - Если СтандартныеПодсистемыСервер.ЭтоИдентификаторОбъектаМетаданных(Источник) Тогда + Если СтандартныеПодсистемыСервер.ЭтоИдентификаторОбъектаМетаданных(Источник) + Или ОтключеноОграничениеНаУровнеЗаписей() Тогда Возврат; КонецЕсли; @@ -3802,10 +4013,15 @@ УстановитьПривилегированныйРежим(Истина); + Если ОтключеноОграничениеНаУровнеЗаписей() Тогда + УстановитьЗаполнениеДанныхДляОграниченияДоступа(Ложь); + Возврат; + КонецЕсли; + СвойстваВидовДоступа = СвойстваВидовДоступа(); ЗначенияДоступаСГруппами = СвойстваВидовДоступа.ЗначенияДоступаСГруппами; - Если Константы.ОграничиватьДоступНаУровнеЗаписей.Получить() И НЕ ТолькоКэшРеквизиты Тогда + Если КонстантаОграничиватьДоступНаУровнеЗаписей() И Не ТолькоКэшРеквизиты Тогда // Заполнение групп значений доступа в регистре сведений ГруппыЗначенийДоступа. Для Каждого ИмяТаблицы Из ЗначенияДоступаСГруппами.ИменаТаблицДляОбновления Цикл @@ -4201,6 +4417,10 @@ // Процедура ОбновитьНаборыЗначенийДоступа(СсылкаИлиОбъект, ЕстьИзменения = Неопределено, ОбновлениеИБ = Ложь) Экспорт + Если ОтключеноОграничениеНаУровнеЗаписей() Тогда + Возврат; + КонецЕсли; + УстановитьПривилегированныйРежим(Истина); Объект = ?(СсылкаИлиОбъект = СсылкаИлиОбъект.Ссылка, СсылкаИлиОбъект.ПолучитьОбъект(), СсылкаИлиОбъект); @@ -5129,6 +5349,16 @@ МетаданныеРегистра = Метаданные.НайтиПоТипу(ТипЗнч(Данные.МенеджерРегистра.ПустойКлюч())); ОписаниеКлючаЗаписи = СтандартныеПодсистемыСервер.ОписаниеКлючаЗаписи(МетаданныеРегистра.ПолноеИмя()); + РежимСлияния = ОбщегоНазначения.РежимСлиянияНабораЗаписей(); + РежимУдаления = ОбщегоНазначения.РежимУдаленияНабораЗаписей(); + ПакетныйРежим = РежимУдаления <> Неопределено И РежимСлияния <> Неопределено; + + Если ПакетныйРежим И Не Данные.ТолькоПроверка Тогда + ОбновитьРегистрСведенийВПакетномРежиме(Данные, ОписаниеКлючаЗаписи); + ЕстьИзменения = Истина; + Возврат; + КонецЕсли; + Если Данные.ИзмеренияОтбора <> Неопределено Тогда Данные.ИзмеренияОтбора = Новый Структура(Данные.ИзмеренияОтбора); КонецЕсли; @@ -5198,6 +5428,66 @@ КонецПроцедуры +// Для процедуры ОбновитьРегистрСведений. +Процедура ОбновитьРегистрСведенийВПакетномРежиме(Данные, ОписаниеКлючаЗаписи) + + // Удаление. + Изменения = Данные.ИзмененияСоставаСтрок.Скопировать(); + Изменения.Свернуть(ОписаниеКлючаЗаписи.СписокПолейОбновления, "ВидИзмененияСтроки"); + Отбор = Новый Структура("ВидИзмененияСтроки", -1); + СтрокиДляУдаления = Изменения.НайтиСтроки(Отбор); + ПорцииДанныхДляУдаления = ПорцииДанных(Изменения, СтрокиДляУдаления); + ОбработатьПорцииДанных(Данные, ПорцииДанныхДляУдаления, + ОбщегоНазначения.РежимУдаленияНабораЗаписей()); + + // Слияние. + Отбор = Новый Структура("ВидИзмененияСтроки", 1); + СтрокиДляСлияния = Данные.ИзмененияСоставаСтрок.НайтиСтроки(Отбор); + ПорцииДанныхДляСлияния = ПорцииДанных(Данные.ИзмененияСоставаСтрок, СтрокиДляСлияния); + ОбработатьПорцииДанных(Данные, ПорцииДанныхДляСлияния, + ОбщегоНазначения.РежимСлиянияНабораЗаписей()); + +КонецПроцедуры + +// Для процедуры ОбновитьРегистрСведенийВПакетномРежиме. +Функция ПорцииДанных(ТаблицаДанных, СтрокиДанных, РазмерПорции = 10000) + + Порции = Новый Массив; + ТекущаяПорция = Новый Массив; + + Для Каждого СтрокаДанных Из СтрокиДанных Цикл + ТекущаяПорция.Добавить(СтрокаДанных); + Если ТекущаяПорция.Количество() < РазмерПорции Тогда + Продолжить; + КонецЕсли; + Порции.Добавить(ТаблицаДанных.Скопировать(ТекущаяПорция)); + ТекущаяПорция = Новый Массив; + КонецЦикла; + + Если ЗначениеЗаполнено(ТекущаяПорция) Тогда + Порции.Добавить(ТаблицаДанных.Скопировать(ТекущаяПорция)); + КонецЕсли; + + Возврат Порции; + +КонецФункции + +// Для процедуры ОбновитьРегистрСведенийВПакетномРежиме. +Процедура ОбработатьПорцииДанных(Данные, ПорцииДанных, РежимЗаписи) + + Для Каждого ПорцияДанных Из ПорцииДанных Цикл + НаборЗаписей = Данные.МенеджерРегистра.СоздатьНаборЗаписей(); + НаборЗаписей.Загрузить(ПорцияДанных); + + Если Данные.ОбновлениеИБ Тогда + ОбновлениеИнформационнойБазы.ЗаписатьНаборЗаписей(НаборЗаписей, РежимЗаписи); + Иначе + НаборЗаписей.Записать(РежимЗаписи); + КонецЕсли; + КонецЦикла; + +КонецПроцедуры + // Возвращает пустую ссылку объекта метаданных ссылочного типа. // // Параметры: @@ -5482,7 +5772,7 @@ // Обновляет настройки и включает регламентное задание. Процедура ВключитьЗаполнениеДанныхДляОграниченияДоступа() Экспорт - Использование = Константы.ОграничиватьДоступНаУровнеЗаписей.Получить(); + Использование = КонстантаОграничиватьДоступНаУровнеЗаписей(); Если ОбщегоНазначения.РазделениеВключено() Тогда УстановитьЗаполнениеДанныхДляОграниченияДоступа(Использование); @@ -6702,11 +6992,14 @@ Параметры = Новый Массив; Параметры.Добавить("СтандартныеПодсистемы.УправлениеДоступом.ОбъектыМетаданныхПравРолей"); - Параметры.Добавить("СтандартныеПодсистемы.УправлениеДоступом.ВозможныеПраваДляНастройкиПравОбъектов"); Параметры.Добавить("СтандартныеПодсистемы.УправлениеДоступом.ОписаниеПоставляемыхПрофилей"); Параметры.Добавить("СтандартныеПодсистемы.УправлениеДоступом.ПредопределенныеПрофилиГруппДоступа"); - Параметры.Добавить("СтандартныеПодсистемы.УправлениеДоступом.ТипыГруппИЗначенийДоступа"); - Параметры.Добавить("СтандартныеПодсистемы.УправлениеДоступом.ВерсияТекстовОграниченияДоступа"); + + Если Не ОтключеноОграничениеНаУровнеЗаписей() Тогда + Параметры.Добавить("СтандартныеПодсистемы.УправлениеДоступом.ВозможныеПраваДляНастройкиПравОбъектов"); + Параметры.Добавить("СтандартныеПодсистемы.УправлениеДоступом.ТипыГруппИЗначенийДоступа"); + Параметры.Добавить("СтандартныеПодсистемы.УправлениеДоступом.ВерсияТекстовОграниченияДоступа"); + КонецЕсли; Для Каждого Параметр Из Параметры Цикл @@ -6724,6 +7017,271 @@ КонецФункции + +// Для форм ПраваДоступа, ПраваДоступаУпрощенно. +// +// Параметры: +// Форма - ФормаКлиентскогоПриложения: +// +Процедура ЗаполнитьРолиПользователя(Форма) Экспорт + + Пользователь = Форма.Параметры.Пользователь; + ПрочитанныеРоли = Форма.ПрочитанныеРоли; + + Запрос = Новый Запрос; + Запрос.УстановитьПараметр("Пользователь", Пользователь); + + Если ТипЗнч(Пользователь) = Тип("СправочникСсылка.Пользователи") + ИЛИ ТипЗнч(Пользователь) = Тип("СправочникСсылка.ВнешниеПользователи") Тогда + + Запрос.Текст = + "ВЫБРАТЬ РАЗЛИЧНЫЕ + | Роли.Роль КАК Роль + |ИЗ + | Справочник.ПрофилиГруппДоступа.Роли КАК Роли + | ВНУТРЕННЕЕ СОЕДИНЕНИЕ Справочник.ГруппыДоступа.Пользователи КАК ГруппыДоступаПользователи + | ВНУТРЕННЕЕ СОЕДИНЕНИЕ РегистрСведений.СоставыГруппПользователей КАК СоставыГруппПользователей + | ПО (СоставыГруппПользователей.Пользователь = &Пользователь) + | И (СоставыГруппПользователей.ГруппаПользователей = ГруппыДоступаПользователи.Пользователь) + | И (НЕ ГруппыДоступаПользователи.Ссылка.ПометкаУдаления) + | ПО Роли.Ссылка = ГруппыДоступаПользователи.Ссылка.Профиль + | И (НЕ Роли.Ссылка.ПометкаУдаления)"; + Иначе + // Группа пользователей или Группа внешних пользователей. + Запрос.Текст = + "ВЫБРАТЬ РАЗЛИЧНЫЕ + | Роли.Роль КАК Роль + |ИЗ + | Справочник.ПрофилиГруппДоступа.Роли КАК Роли + | ВНУТРЕННЕЕ СОЕДИНЕНИЕ Справочник.ГруппыДоступа.Пользователи КАК ГруппыДоступаПользователи + | ПО (ГруппыДоступаПользователи.Пользователь = &Пользователь) + | И (НЕ ГруппыДоступаПользователи.Ссылка.ПометкаУдаления) + | И Роли.Ссылка = ГруппыДоступаПользователи.Ссылка.Профиль + | И (НЕ Роли.Ссылка.ПометкаУдаления)"; + КонецЕсли; + + ОбработатьИнтерфейсРолей(Форма, "ЗаполнитьРоли", Запрос.Выполнить().Выгрузить()); + + Отбор = Новый Структура("Роль", "ПолныеПрава"); + Если ПрочитанныеРоли.НайтиСтроки(Отбор).Количество() > 0 Тогда + ИсходныеПрочитанныеРоли = ПрочитанныеРоли.Выгрузить(, "Роль"); + + ПрочитанныеРоли.Очистить(); + ПрочитанныеРоли.Добавить().Роль = "ПолныеПрава"; + + СтандартныеРолиРасширений = УправлениеДоступомСлужебныйПовтИсп.ОписаниеСтандартныхРолейРасширенийСеанса().РолиСеанса; + ВозможныеРолиАдминистратора = Новый Соответствие(СтандартныеРолиРасширений.ДополнительныеРолиАдминистратора); + ВозможныеРолиАдминистратора.Вставить("АдминистраторСистемы", Истина); + ВозможныеРолиАдминистратора.Вставить("ИнтерактивноеОткрытиеВнешнихОтчетовИОбработок", Истина); + + Для Каждого ОписаниеРоли Из ВозможныеРолиАдминистратора Цикл + Отбор = Новый Структура("Роль", ОписаниеРоли.Ключ); + Если ИсходныеПрочитанныеРоли.НайтиСтроки(Отбор).Количество() > 0 Тогда + ПрочитанныеРоли.Добавить().Роль = ОписаниеРоли.Ключ; + КонецЕсли; + КонецЦикла; + КонецЕсли; + +КонецПроцедуры + +// Для формы ПраваДоступа, для процедуры ЗаполнитьРолиПользователя. +// +// Параметры: +// Форма - ФормаКлиентскогоПриложения +// Действие - см. ПользователиСлужебный.ОбработатьИнтерфейсРолей.Действие +// ОсновнойПараметр - Произвольный +// +Процедура ОбработатьИнтерфейсРолей(Форма, Действие, ОсновнойПараметр = Неопределено) Экспорт + + Пользователь = Форма.Параметры.Пользователь; + ПрочитанныеРоли = Форма.ПрочитанныеРоли; + + ПараметрыДействия = Новый Структура; + ПараметрыДействия.Вставить("ОсновнойПараметр", ОсновнойПараметр); + ПараметрыДействия.Вставить("Форма", Форма); + ПараметрыДействия.Вставить("КоллекцияРолей", ПрочитанныеРоли); + + Если ТипЗнч(Пользователь) = Тип("СправочникСсылка.Пользователи") + И Пользователи.ЭтоПолноправныйПользователь(Пользователь, Ложь, Ложь) Тогда + + НазначениеРолей = "ДляАдминистраторов"; + + ИначеЕсли ТипЗнч(Пользователь) = Тип("СправочникСсылка.ВнешниеПользователи") + Или ТипЗнч(Пользователь) = Тип("СправочникСсылка.ГруппыВнешнихПользователей") Тогда + + НазначениеРолей = "ДляВнешнихПользователей"; + Иначе + НазначениеРолей = "ДляПользователей"; + КонецЕсли; + + ПараметрыДействия.Вставить("НазначениеРолей", НазначениеРолей); + ПараметрыДействия.Вставить("БезОбновленияДереваРолей", Истина); + + ПользователиСлужебный.ОбработатьИнтерфейсРолей(Действие, ПараметрыДействия); + +КонецПроцедуры + +// Для форм ПраваДоступа, ПраваДоступаУпрощенно. +// +// Параметры: +// Форма - ФормаКлиентскогоПриложения +// +// Возвращаемое значение: +// СписокЗначений: +// * Значение - Строка - имя роли. +// +Функция РолиПользователяДляОтчетаПраваРолей(Форма) Экспорт + + СписокРолей = Новый СписокЗначений; + Для Каждого СтрокаКоллекции Из Форма.ПрочитанныеРоли Цикл + МетаданныеРоли = Метаданные.Роли.Найти(СтрокаКоллекции.Роль); + Если МетаданныеРоли = Неопределено Тогда + Продолжить; + КонецЕсли; + СписокРолей.Добавить(МетаданныеРоли.Имя, МетаданныеРоли.Синоним); + КонецЦикла; + + СписокРолей.СортироватьПоПредставлению(); + + Возврат СписокРолей; + +КонецФункции + +// Для форм ПраваДоступа, ПраваДоступаУпрощенно. +// +// Параметры: +// Форма - ФормаКлиентскогоПриложения +// Пользователь - СправочникСсылка.Пользователи +// - СправочникСсылка.ВнешниеПользователи +// +Процедура ВывестиРазличиеРолейПользователя(Форма, Пользователь) Экспорт + + Элементы = Форма.Элементы; + + ИзменениеРолей = ИзменениеРолейПользователя(Пользователь); + Если ИзменениеРолей = Неопределено Тогда + Элементы.НекорректныйСоставРолейПользователяИБ.Видимость = Ложь; + Возврат; + КонецЕсли; + + Если Пользователи.ЭтоПолноправныйПользователь() Тогда + ТекстСообщения = СтроковыеФункцииКлиентСервер.ПодставитьПараметрыВСтроку( + НСтр("ru = 'Необходимо обновить роли пользователя информационной базы, так как они отличаются от настроенных.'"), + "ОбновитьРолиПользователяИБ", + "ПоказатьРазличияНастроенногоСоставаРолейСРолямиПользователяИБ"); + Иначе + ТекстСообщения = + НСтр("ru = 'Роли пользователя информационной базы отличаются от настроенных. + |Обратитесь к администратору, чтобы устранить различия.'"); + КонецЕсли; + + Элементы.НекорректныйСоставРолейПользователяИБНадпись.Заголовок = + СтроковыеФункции.ФорматированнаяСтрока(ТекстСообщения); + + Элементы.НекорректныйСоставРолейПользователяИБ.Видимость = Истина; + +КонецПроцедуры + +// Для форм ПраваДоступа, ПраваДоступаУпрощенно. +// +// Параметры: +// Пользователь - СправочникСсылка.Пользователи +// - СправочникСсылка.ВнешниеПользователи +// +// Возвращаемое значение: +// Строка +// +Функция РазличияНастроенногоСоставаРолейСРолямиПользователяИБ(Пользователь) Экспорт + + ИзменениеРолей = ИзменениеРолейПользователя(Пользователь); + Если ИзменениеРолей = Неопределено Тогда + Возврат ""; + КонецЕсли; + + Строки = Новый Массив; + + РолиДляДобавления = ПредставлениеРолейИзОписания(ИзменениеРолей.РолиДляДобавления); + Если ЗначениеЗаполнено(РолиДляДобавления) Тогда + Строки.Добавить(СтроковыеФункцииКлиентСервер.ПодставитьПараметрыВСтроку( + НСтр("ru = 'Недостающие роли: + |%1'"), + СтрСоединить(РолиДляДобавления, Символы.ПС))); + КонецЕсли; + + РолиДляУдаления = ПредставлениеРолейИзОписания(ИзменениеРолей.РолиДляУдаления); + Если ЗначениеЗаполнено(РолиДляУдаления) Тогда + Строки.Добавить(СтроковыеФункцииКлиентСервер.ПодставитьПараметрыВСтроку( + НСтр("ru = 'Лишние роли: + |%1'"), + СтрСоединить(РолиДляУдаления, Символы.ПС))); + КонецЕсли; + + Если ЗначениеЗаполнено(Строки) Тогда + Если УпрощенныйИнтерфейсНастройкиПравДоступа() Тогда + Пояснение = НСтр("ru = 'Пользователю информационной базы (ИБ) устанавливаются роли профилей, которые назначены пользователю.'"); + Иначе + Пояснение = НСтр("ru = 'Пользователю информационной базы (ИБ) устанавливаются роли профилей тех групп доступа, в которые включен пользователь.'"); + КонецЕсли; + Дополнение = + НСтр("ru = 'Список ролей, полученный из профилей, отличается от ролей у пользователя ИБ. + |Обычно это происходит при редактировании ролей пользователя ИБ в списке пользователей в конфигураторе (не рекомендуется).'"); + Строки.Вставить(0, Пояснение + Символы.ПС + Дополнение); + КонецЕсли; + + Возврат СтрСоединить(Строки, Символы.ПС + Символы.ПС); + +КонецФункции + +Функция ПредставлениеРолейИзОписания(ОписаниеРолей) + + Результат = Новый Массив; + + Для Каждого КлючИЗначение Из ОписаниеРолей Цикл + МетаданныеРоли = КлючИЗначение.Значение; + Если ТипЗнч(МетаданныеРоли) <> Тип("ОбъектМетаданных") Тогда + МетаданныеРоли = Метаданные.Роли.Найти(КлючИЗначение.Ключ); + КонецЕсли; + + ПредставлениеРоли = ?(ТипЗнч(МетаданныеРоли) = Тип("ОбъектМетаданных"), + МетаданныеРоли.Представление(), КлючИЗначение.Ключ); + + Результат.Добавить(ПредставлениеРоли); + КонецЦикла; + + Возврат Результат; + +КонецФункции + +// Параметры: +// Пользователь - СправочникСсылка.Пользователи +// - СправочникСсылка.ВнешниеПользователи +// +// Возвращаемое значение: +// Соответствие из КлючИЗначение: +// * Ключ - СправочникСсылка.Пользователи +// - СправочникСсылка.ВнешниеПользователи +// * Значение - см. НовоеИзменениеРолей +// +Функция ИзменениеРолейПользователя(Пользователь) + + Если ТипЗнч(Пользователь) <> Тип("СправочникСсылка.Пользователи") + И ТипЗнч(Пользователь) <> Тип("СправочникСсылка.ВнешниеПользователи") Тогда + Возврат Неопределено; + КонецЕсли; + + ИзменениеРолейПользователей = Новый Соответствие; + + Попытка + ОбновитьРолиПользователей(Пользователь,, ИзменениеРолейПользователей); + ИзменениеРолей = ИзменениеРолейПользователей.Получить(Пользователь); + Исключение + ИзменениеРолей = Неопределено; + КонецПопытки; + + Возврат ИзменениеРолей; + +КонецФункции + // Для процедуры ОбновитьРолиПользователей. // Для тестирования. @@ -6986,6 +7544,43 @@ КонецФункции +// Для процедуры ОбновитьРолиПользователей. +// +// Параметры: +// ПользовательСсылка - СправочникСсылка.Пользователи +// - СправочникСсылка.ВнешниеПользователи +// ПользовательИБ - ПользовательИнформационнойБазы +// РолиДляДобавления - Соответствие из КлючИЗначение: +// * Ключ - Строка - имя роли. +// * Значение - ОбъектМетаданных - метаданные роли. +// РолиДляУдаления - Соответствие из КлючИЗначение: +// * Ключ - Строка - имя роли. +// * Значение - ОбъектМетаданных - метаданные роли. +// +// Возвращаемое значение: +// Структура: +// * ПользовательСсылка - СправочникСсылка.Пользователи +// - СправочникСсылка.ВнешниеПользователи +// * ПользовательИБ - ПользовательИнформационнойБазы +// * РолиДляДобавления - Соответствие из КлючИЗначение: +// ** Ключ - Строка - имя роли. +// ** Значение - ОбъектМетаданных - метаданные роли. +// * РолиДляУдаления - Соответствие из КлючИЗначение: +// ** Ключ - Строка - имя роли. +// ** Значение - ОбъектМетаданных - метаданные роли. +// +Функция НовоеИзменениеРолей(ПользовательСсылка, ПользовательИБ, РолиДляДобавления, РолиДляУдаления) + + Результат = Новый Структура; + Результат.Вставить("ПользовательСсылка", ПользовательСсылка); + Результат.Вставить("ПользовательИБ", ПользовательИБ); + Результат.Вставить("РолиДляДобавления", РолиДляДобавления); + Результат.Вставить("РолиДляУдаления", РолиДляУдаления); + + Возврат Результат; + +КонецФункции + // Для функции ТекущиеСвойстваПользователей. Процедура ПроверитьАктуальностьНовыхРолейПользователейВСеансе(ИдентификаторыРолей) @@ -7265,6 +7860,14 @@ КонецПроцедуры +// Параметры: +// ОбновляемыеПользователиИБ - Соответствие из КлючИЗначение: +// * Ключ - СправочникСсылка.Пользователи +// - СправочникСсылка.ВнешниеПользователи +// * Значение - см. НовоеИзменениеРолей +// +// ПарольПользователяСервиса - Неопределено, Строка +// Процедура ОбновитьРолиПользователейИБ(ОбновляемыеПользователиИБ, ПарольПользователяСервиса) ВнешняяТранзакцияАктивна = ТранзакцияАктивна(); @@ -8528,10 +9131,16 @@ // Процедура ОбновитьГруппыИНаборыЗначенийДоступаПриИзмененииТиповГруппИЗначений() + ИмяПараметра = "СтандартныеПодсистемы.УправлениеДоступом.ТипыГруппИЗначенийДоступа"; + + Если ОтключеноОграничениеНаУровнеЗаписей() Тогда + СтандартныеПодсистемыСервер.УдалитьПараметрРаботыРасширения(ИмяПараметра, Неопределено); + Возврат; + КонецЕсли; + Кэш = УправлениеДоступомСлужебныйПовтИсп.ОписаниеСвойствВидовДоступаСеанса(); НовоеЗначение = Кэш.ХешСуммы; - ИмяПараметра = "СтандартныеПодсистемы.УправлениеДоступом.ТипыГруппИЗначенийДоступа"; СтароеЗначение = СтандартныеПодсистемыСервер.ПараметрРаботыРасширения(ИмяПараметра, Истина); СтароеЗначение = НовыеХешСуммыСвойствВидовДоступа(СтароеЗначение); @@ -8601,9 +9210,11 @@ Функция СвойстваВидовДоступа() Экспорт Кэш = УправлениеДоступомСлужебныйПовтИсп.ОписаниеСвойствВидовДоступаСеанса(); - ТекущаяДатаСеанса = ТекущаяДатаСеанса(); - Если Кэш.Проверка.Дата + 3 > ТекущаяДатаСеанса Тогда + + Если Кэш.Проверка.Дата + 3 > ТекущаяДатаСеанса + Или ОтключеноОграничениеНаУровнеЗаписей() Тогда + Возврат Кэш.СвойстваСеанса; КонецЕсли; @@ -10094,7 +10705,8 @@ Возврат Истина; КонецЕсли; - Если УправлениеДоступомСлужебныйПовтИсп.ЭтоПользовательБезОграниченияДоступа(Пользователь) Тогда + Если ОтключеноОграничениеНаУровнеЗаписей() + Или УправлениеДоступомСлужебныйПовтИсп.ЭтоПользовательБезОграниченияДоступа(Пользователь) Тогда Возврат Истина; КонецЕсли; @@ -10384,9 +10996,20 @@ ВызватьИсключение(ТекстОшибки, КатегорияОшибки.ОшибкаКонфигурации); КонецЕсли; + ОтключеноОграничениеНаУровнеЗаписей = ОтключеноОграничениеНаУровнеЗаписей(); ПолноеИмя = ОбъектМетаданных.ПолноеИмя(); - ПараметрыОграничения = ПараметрыОграничения(ПолноеИмя, - Новый УникальныйИдентификатор, ДляВнешнихПользователей); + + Если ОтключеноОграничениеНаУровнеЗаписей Тогда + ПараметрыОграничения = Новый Структура; + ПараметрыОграничения.Вставить("Список", ПолноеИмя); + ПараметрыОграничения.Вставить("ДляВнешнихПользователей", ДляВнешнихПользователей); + ПараметрыОграничения.Вставить("ДоступЗапрещен", Ложь); + ПараметрыОграничения.Вставить("ЭтоСсылочныйТип", + Не ОбщегоНазначения.ЭтоРегистр(ОбъектМетаданных)) + Иначе + ПараметрыОграничения = ПараметрыОграничения(ПолноеИмя, + Новый УникальныйИдентификатор, ДляВнешнихПользователей); + КонецЕсли; Если ДляВнешнихПользователей И Не Константы.ИспользоватьВнешнихПользователей.Получить() Тогда @@ -10401,7 +11024,8 @@ Запрос.УстановитьПараметр("ИдентификаторОбъектаМетаданных", ОбщегоНазначения.ИдентификаторОбъектаМетаданных(ОбъектМетаданных)); - Если ПараметрыОграничения.ДоступЗапрещен + Если ОтключеноОграничениеНаУровнеЗаписей + Или ПараметрыОграничения.ДоступЗапрещен Или ПараметрыОграничения.ОграничениеОтключено Тогда ДобавитьЗапросПравПользователейНаТаблицу(Запрос, ПараметрыОграничения, @@ -11352,6 +11976,10 @@ Возврат Истина; КонецЕсли; + Если ОтключеноОграничениеНаУровнеЗаписей() Тогда + Возврат Истина; + КонецЕсли; + Если Не ОграничиватьДоступНаУровнеЗаписейУниверсально(Ложь) Тогда Возврат Истина; КонецЕсли; @@ -12502,7 +13130,8 @@ ТипыИзмененныхУчастников, ПриЗагрузке = Ложь) Экспорт Если Не ТипыИзмененныхУчастников.Пользователи - И Не ТипыИзмененныхУчастников.ВнешниеПользователи Тогда + И Не ТипыИзмененныхУчастников.ВнешниеПользователи + Или ОтключеноОграничениеНаУровнеЗаписей() Тогда Возврат; КонецЕсли; @@ -12628,6 +13257,10 @@ // Для вызова из модуля менеджера регистра ТаблицыГруппДоступа. Процедура ЗапланироватьОбновлениеДоступаПриИзмененииТаблицГруппДоступа(Таблицы) Экспорт + Если ОтключеноОграничениеНаУровнеЗаписей() Тогда + Возврат; + КонецЕсли; + Описание = "ЗапланироватьОбновлениеДоступаПриИзмененииТаблицГруппДоступа"; ЗапланироватьОбновлениеКэшаРасчетаПрав(Описание, "ТаблицыГруппДоступа"); @@ -12639,6 +13272,10 @@ // Для вызова из модуля объекта и модуля менеджера справочника ПрофилиГруппДоступа. Процедура ЗапланироватьОбновлениеДоступаПриИзмененииРолейПрофиля(Описание, ИзмененныеРоли) Экспорт + Если ОтключеноОграничениеНаУровнеЗаписей() Тогда + Возврат; + КонецЕсли; + ЗапланироватьОбновлениеКэшаРасчетаПрав(Описание, "РолиПрофилейГруппДоступа"); Если ИзмененныеРоли = Неопределено @@ -12652,6 +13289,10 @@ // Для вызова из модуля объекта и модуля менеджера справочника ГруппыДоступа. Процедура ЗапланироватьОбновлениеДоступаПриИзмененииПрофиляГруппыДоступа(Описание, ИзмененныеРоли, ПрофильИзменен) Экспорт + Если ОтключеноОграничениеНаУровнеЗаписей() Тогда + Возврат; + КонецЕсли; + Если ПрофильИзменен Тогда ЗапланироватьОбновлениеКэшаРасчетаПрав(Описание, "ГруппыДоступаПрофилей"); КонецЕсли; @@ -12733,6 +13374,10 @@ // Для вызова из модуля менеджера регистра ЗначенияГруппДоступа. Процедура ЗапланироватьОбновлениеДоступаПриИзмененииРазрешенныхЗначений(ГруппыДоступаИТипыЗначений) Экспорт + Если ОтключеноОграничениеНаУровнеЗаписей() Тогда + Возврат; + КонецЕсли; + Описание = "ЗапланироватьОбновлениеДоступаПриИзмененииРазрешенныхЗначений"; ЗапланироватьОбновлениеКэшаРасчетаПрав(Описание, "ЗначенияГруппДоступа"); @@ -12923,7 +13568,8 @@ // Процедура ЗапланироватьОбновлениеНаборовГруппДоступа(Описание, ДляПользователей = Истина, ДляВнешнихПользователей = Истина) Экспорт - Если Не ДляПользователей И Не ДляВнешнихПользователей Тогда + Если Не ДляПользователей И Не ДляВнешнихПользователей + Или ОтключеноОграничениеНаУровнеЗаписей() Тогда Возврат; КонецЕсли; @@ -13080,6 +13726,36 @@ КонецФункции +// Для процедуры ЗапуститьОбновлениеДоступа. +Функция ТребуетсяЗапуститьОбновлениеДоступа() + + УстановитьОтключениеБезопасногоРежима(Истина); + УстановитьПривилегированныйРежим(Истина); + + Возврат ПараметрыСеанса.ПараметрыОграниченияДоступа.ТребуетсяЗапуститьОбновлениеДоступа; + +КонецФункции + +// Для процедур ЗапуститьОбновлениеДоступа, ЗапланироватьОбновлениеДоступа и +// функции ЗапуститьОбновлениеДоступаНаУровнеЗаписей. +// +Процедура УстановитьТребуетсяЗапуститьОбновлениеДоступа(Значение) + + УстановитьОтключениеБезопасногоРежима(Истина); + УстановитьПривилегированныйРежим(Истина); + + ТекущиеПараметры = ПараметрыСеанса.ПараметрыОграниченияДоступа; + Если ТекущиеПараметры.ТребуетсяЗапуститьОбновлениеДоступа = Значение Тогда + Возврат; + КонецЕсли; + + НовыеПараметры = Новый Структура(ТекущиеПараметры); + НовыеПараметры.ТребуетсяЗапуститьОбновлениеДоступа = Значение; + + ПараметрыСеанса.ПараметрыОграниченияДоступа = Новый ФиксированнаяСтруктура(НовыеПараметры); + +КонецПроцедуры + // Запускает фоновое задание обновления доступа вместо регламентного задания. // // Параметры: @@ -13130,6 +13806,8 @@ ВызватьИсключение ТекстОшибки; КонецЕсли; + УстановитьТребуетсяЗапуститьОбновлениеДоступа(Ложь); + Если Не ЭтоЗапускВручную И Не ЗапланированоОбновлениеДоступа() Тогда Возврат Неопределено; КонецЕсли; @@ -13177,21 +13855,16 @@ ПараметрыЗадания = Неопределено; КонецЕсли; - ТекущийСеанс = ПолучитьТекущийСеансИнформационнойБазы(); - НаименованиеЗадания = - ?(ЭтоЗапускВручную, - НСтр("ru = 'Запуск вручную'", ОбщегоНазначения.КодОсновногоЯзыка()), - НСтр("ru = 'Автозапуск'", ОбщегоНазначения.КодОсновногоЯзыка())) - + ": " + Метаданные.РегламентныеЗадания.ОбновлениеДоступаНаУровнеЗаписей.Синоним + " (" - + СтроковыеФункцииКлиентСервер.ПодставитьПараметрыВСтроку( - НСтр("ru = 'из сеанса %1 от %2'", ОбщегоНазначения.КодОсновногоЯзыка()), - Формат(ТекущийСеанс.НомерСеанса, "ЧГ="), - Формат(ТекущийСеанс.НачалоСеанса, "ДЛФ=DT")) + ")"; + // АПК:453-выкл - №760.4 Допустимо создавать задание без записи для передачи параметров. + Задание = РегламентныеЗадания.СоздатьРегламентноеЗадание( + Метаданные.РегламентныеЗадания.ОбновлениеДоступаНаУровнеЗаписей); + Задание.Параметры = ПараметрыЗадания; + // АПК:453-вкл // Имя процедуры должно быть, как указано в функции ИмяМетодаЗаданияОбновленияДоступа. - ФоновоеЗадание = РасширенияКонфигурации.ВыполнитьФоновоеЗаданиеСРасширениямиБазыДанных( - Метаданные.РегламентныеЗадания.ОбновлениеДоступаНаУровнеЗаписей.ИмяМетода, ПараметрыЗадания,, НаименованиеЗадания); - + ПараметрыВыполнения = РегламентныеЗаданияСервер.НовыеПараметрыВыполненияЗадания(); + ПараметрыВыполнения.ЭтоЗапускВручную = ЭтоЗапускВручную; + ФоновоеЗадание = РегламентныеЗаданияСервер.ВыполнитьЗадание(Задание, ПараметрыВыполнения); Результат.ИдентификаторФоновогоЗадания = ФоновоеЗадание.УникальныйИдентификатор; ИначеЕсли ТипЗнч(Исполнитель) = Тип("ФоновоеЗадание") @@ -13527,7 +14200,12 @@ ВызватьИсключение; КонецПопытки; - Если Не ОбновитьВсе И ПоследнееОбновлениеДоступа.ОбновлениеДоступаЗапрещено Тогда + ОтключеноОграничениеНаУровнеЗаписей = ОтключеноОграничениеНаУровнеЗаписей(); + + Если Не ОбновитьВсе + И ПоследнееОбновлениеДоступа.ОбновлениеДоступаЗапрещено + И Не ОтключеноОграничениеНаУровнеЗаписей Тогда + Если ТекущееФоновоеЗадание.РегламентноеЗадание <> Неопределено Тогда УстановитьОбновлениеДоступа(Ложь); КонецЕсли; @@ -13587,7 +14265,11 @@ ПараметрыВыполнения.Вставить("ТекстОшибкиЗавершения", ""); ПараметрыВыполнения.Вставить("ОписаниеОсновногоСеанса", ОписаниеОсновногоСеанса); Попытка - Если ОграничиватьДоступНаУровнеЗаписейУниверсально() Тогда + Если ОтключеноОграничениеНаУровнеЗаписей Тогда + ОчиститьВсеРегистрыОграниченияДоступа(); + УстановитьОбновлениеДоступа(Ложь); + + ИначеЕсли ОграничиватьДоступНаУровнеЗаписейУниверсально() Тогда ВыполнитьОбновлениеДоступа(ОбновитьВсе, ПараметрыВыполнения, ПоследнееОбновлениеДоступа); Если Не ПерезапускВозможен Тогда СтандартныеПодсистемыСервер.ТребуетсяПерезапускСеанса(ТекстВсехОшибок); @@ -13867,6 +14549,96 @@ КонецФункции +// Для процедуры ЗапланироватьОбновлениеДоступа. +Функция РегистрыОграниченияДоступаПустые() + + ПолныеИмена = Новый Массив; + + ПолныеИмена.Добавить(Метаданные.РегистрыСведений.ЗависимостиПравДоступа.ПолноеИмя()); + ПолныеИмена.Добавить(Метаданные.РегистрыСведений.ИспользуемыеВидыДоступа.ПолноеИмя()); + ПолныеИмена.Добавить(Метаданные.РегистрыСведений.ИспользуемыеВидыДоступаПоТаблицам.ПолноеИмя()); + ПолныеИмена.Добавить(Метаданные.РегистрыСведений.ГруппыЗначенийДоступа.ПолноеИмя()); + ПолныеИмена.Добавить(Метаданные.РегистрыСведений.НастройкиПравОбъектов.ПолноеИмя()); + ПолныеИмена.Добавить(Метаданные.РегистрыСведений.НаследованиеНастроекПравОбъектов.ПолноеИмя()); + ПолныеИмена.Добавить(Метаданные.РегистрыСведений.ЗначенияГруппДоступа.ПолноеИмя()); + ПолныеИмена.Добавить(Метаданные.РегистрыСведений.ЗначенияГруппДоступаПоУмолчанию.ПолноеИмя()); + ПолныеИмена.Добавить(Метаданные.РегистрыСведений.НаборыЗначенийДоступа.ПолноеИмя()); + + ПолныеИмена.Добавить(Метаданные.РегистрыСведений.ПараметрыОграниченияДоступа.ПолноеИмя()); + ПолныеИмена.Добавить(Метаданные.РегистрыСведений.КлючиДоступаКОбъектам.ПолноеИмя()); + ПолныеИмена.Добавить(Метаданные.РегистрыСведений.КлючиДоступаКРегистрам.ПолноеИмя()); + ПолныеИмена.Добавить(Метаданные.РегистрыСведений.КлючиДоступаГруппДоступа.ПолноеИмя()); + ПолныеИмена.Добавить(Метаданные.РегистрыСведений.КлючиДоступаНаборовГруппДоступа.ПолноеИмя()); + ПолныеИмена.Добавить(Метаданные.РегистрыСведений.КлючиДоступаПользователей.ПолноеИмя()); + ПолныеИмена.Добавить(Метаданные.РегистрыСведений.КлючиДоступаВнешнихПользователей.ПолноеИмя()); + ПолныеИмена.Добавить(Метаданные.РегистрыСведений.ОбновлениеКлючейДоступаКДанным.ПолноеИмя()); + ПолныеИмена.Добавить(Метаданные.РегистрыСведений.ОбновлениеКлючейДоступаПользователей.ПолноеИмя()); + ПолныеИмена.Добавить(Метаданные.РегистрыСведений.ОбновлениеКлючейДоступаТекущиеЗадания.ПолноеИмя()); + ПолныеИмена.Добавить(Метаданные.Справочники.КлючиДоступа.ПолноеИмя()); + ПолныеИмена.Добавить(Метаданные.Справочники.НаборыГруппДоступа.ПолноеИмя()); + + ТекстЗапроса = + "ВЫБРАТЬ ПЕРВЫЕ 1 + | ИСТИНА КАК ЗначениеИстина + |ИЗ + | &ТекущаяТаблица КАК ТекущаяТаблица"; + ТекстыЗапроса = Новый Массив; + + Для Каждого ПолноеИмя Из ПолныеИмена Цикл + ТекстыЗапроса.Добавить(СтрЗаменить(ТекстЗапроса, "&ТекущаяТаблица", ПолноеИмя)); + КонецЦикла; + + Запрос = Новый Запрос; + Запрос.Текст = СтрСоединить(ТекстыЗапроса, ОбщегоНазначения.ТекстОбъединитьВсе()); + + Возврат Запрос.Выполнить().Пустой(); + +КонецФункции + +// Для процедуры ВыполнитьОбновлениеДоступаНаУровнеЗаписей. +Процедура ОчиститьВсеРегистрыОграниченияДоступа() + + ОчиститьРегистрСведений(Метаданные.РегистрыСведений.ЗависимостиПравДоступа.ПолноеИмя()); + ОчиститьРегистрСведений(Метаданные.РегистрыСведений.ИспользуемыеВидыДоступа.ПолноеИмя()); + ОчиститьРегистрСведений(Метаданные.РегистрыСведений.ИспользуемыеВидыДоступаПоТаблицам.ПолноеИмя()); + ОчиститьРегистрСведений(Метаданные.РегистрыСведений.ГруппыЗначенийДоступа.ПолноеИмя()); + ОчиститьРегистрСведений(Метаданные.РегистрыСведений.НастройкиПравОбъектов.ПолноеИмя()); + ОчиститьРегистрСведений(Метаданные.РегистрыСведений.НаследованиеНастроекПравОбъектов.ПолноеИмя()); + ОчиститьРегистрСведений(Метаданные.РегистрыСведений.ЗначенияГруппДоступа.ПолноеИмя()); + ОчиститьРегистрСведений(Метаданные.РегистрыСведений.ЗначенияГруппДоступаПоУмолчанию.ПолноеИмя()); + ОчиститьРегистрСведений(Метаданные.РегистрыСведений.НаборыЗначенийДоступа.ПолноеИмя()); + + ОчиститьРегистрСведений(Метаданные.РегистрыСведений.ПараметрыОграниченияДоступа.ПолноеИмя()); + ОчиститьРегистрСведений(Метаданные.РегистрыСведений.КлючиДоступаКОбъектам.ПолноеИмя()); + ОчиститьРегистрСведений(Метаданные.РегистрыСведений.КлючиДоступаКРегистрам.ПолноеИмя()); + ОчиститьРегистрСведений(Метаданные.РегистрыСведений.КлючиДоступаГруппДоступа.ПолноеИмя()); + ОчиститьРегистрСведений(Метаданные.РегистрыСведений.КлючиДоступаНаборовГруппДоступа.ПолноеИмя()); + ОчиститьРегистрСведений(Метаданные.РегистрыСведений.КлючиДоступаПользователей.ПолноеИмя()); + ОчиститьРегистрСведений(Метаданные.РегистрыСведений.КлючиДоступаВнешнихПользователей.ПолноеИмя()); + ОчиститьРегистрСведений(Метаданные.РегистрыСведений.ОбновлениеКлючейДоступаКДанным.ПолноеИмя()); + ОчиститьРегистрСведений(Метаданные.РегистрыСведений.ОбновлениеКлючейДоступаПользователей.ПолноеИмя()); + ОчиститьРегистрСведений(Метаданные.РегистрыСведений.ОбновлениеКлючейДоступаТекущиеЗадания.ПолноеИмя()); + + ОчиститьСправочник(Метаданные.Справочники.КлючиДоступа.ПолноеИмя()); + ОчиститьСправочник(Метаданные.Справочники.НаборыГруппДоступа.ПолноеИмя()); + + СтандартныеПодсистемыСервер.УдалитьПараметрРаботыРасширения( + ИмяПараметраВерсииДанныхДляКэшаРасчетаПрав(), Неопределено); + + СтандартныеПодсистемыСервер.УдалитьПараметрРаботыРасширения( + "СтандартныеПодсистемы.УправлениеДоступом.ВерсияТекстовОграниченияДоступа", Неопределено); + + СтандартныеПодсистемыСервер.УдалитьПараметрРаботыРасширения( + "СтандартныеПодсистемы.УправлениеДоступом.СвойстваВидовДоступа", Неопределено); + + СтандартныеПодсистемыСервер.УдалитьПараметрРаботыРасширения( + "СтандартныеПодсистемы.УправлениеДоступом.ВозможныеПраваДляНастройкиПравОбъектов", Неопределено); + + СтандартныеПодсистемыСервер.УдалитьПараметрРаботыРасширения( + "СтандартныеПодсистемы.УправлениеДоступом.ДатаПроверкиПараметровОграниченияДоступа", Неопределено); + +КонецПроцедуры + // Для процедур ВыполнитьОбновлениеДоступа, ДобавитьЗаданияОбновленияДоступа и // ОбновитьСоставИспользуемыхВерсийПараметровШаблонов. // @@ -14126,7 +14898,7 @@ Если ДействующиеПараметры.ВнешниеПользователиВключены <> Константы.ИспользоватьВнешнихПользователей.Получить() Или ДействующиеПараметры.ОграничениеДоступаВключено - <> Константы.ОграничиватьДоступНаУровнеЗаписей.Получить() Тогда + <> КонстантаОграничиватьДоступНаУровнеЗаписей() Тогда Возврат Истина; КонецЕсли; @@ -21286,6 +22058,10 @@ // Для процедуры ОбновитьПраваНаРазрешенныйКлючДоступа. Процедура ОбновитьГруппыДоступаРазрешенногоКлючаДоступа(ГруппыДоступа = Неопределено, ЕстьИзменения = Ложь) Экспорт + Если ОтключеноОграничениеНаУровнеЗаписей() Тогда + Возврат; + КонецЕсли; + УстановитьПривилегированныйРежим(Истина); РазрешенныйКлючДоступа = УправлениеДоступомСлужебныйПовтИсп.РазрешенныйКлючДоступа(); РазрешенныйПустойНабор = УправлениеДоступомСлужебныйПовтИсп.РазрешенныйПустойНаборГруппДоступа(); @@ -26529,7 +27305,7 @@ ВызватьИсключение; КонецЕсли; Попытка - Значение = Константы.ОграничиватьДоступНаУровнеЗаписей.Получить(); + Значение = КонстантаОграничиватьДоступНаУровнеЗаписей(); Исключение Значение = Неопределено; КонецПопытки; @@ -26580,7 +27356,7 @@ ТипыПользователя.Добавить(Тип("СправочникСсылка.ВнешниеПользователи")); ТипыПользователя.Добавить(Тип("СправочникСсылка.ГруппыВнешнихПользователей")); - ОграничениеДоступаВключено = Константы.ОграничиватьДоступНаУровнеЗаписей.Получить(); + ОграничениеДоступаВключено = КонстантаОграничиватьДоступНаУровнеЗаписей(); Если УправлениеДоступом.ОграничиватьДоступНаУровнеЗаписей() <> ОграничениеДоступаВключено Тогда ОбновитьПовторноИспользуемыеЗначения(); КонецЕсли; @@ -26692,7 +27468,7 @@ ИспользуемыеТипыЗначений.ПолноеИмяТаблицы = ПолноеИмя; КонецЕсли; СтрокаОграничениеДоступаВключено = - ?(Константы.ОграничиватьДоступНаУровнеЗаписей.Получить(), "ИСТИНА", "ЛОЖЬ"); + ?(КонстантаОграничиватьДоступНаУровнеЗаписей(), "ИСТИНА", "ЛОЖЬ"); Запрос.Текст = СтрЗаменить(Запрос.Текст, "&ОграничиватьДоступНаУровнеЗаписей", СтрокаОграничениеДоступаВключено); @@ -27762,6 +28538,8 @@ // Функция НоваяВерсияПараметровОграниченияДоступа(ОбщийКонтекст, ЕстьИзменения = Ложь) + ПроверитьОграничениеДоступаОтключено(); + Попытка ПроверитьАктуальностьМетаданных(); Исключение @@ -28554,7 +29332,7 @@ // Число нужно увеличивать при внесении изменений в состав параметров кэша // (в том числе при изменении версии шаблонов). - Возврат "29.1" + ВерсияПеревода(); + Возврат "29.2" + ВерсияПеревода(); КонецФункции @@ -28785,6 +29563,15 @@ ПараметрыОграничения.Вставить("ЭтоСеансФоновогоОбновленияДоступа"); КонецЕсли; + ПараметрыОграничения.Вставить("ОтключеноОграничениеНаУровнеЗаписей", + ПараметрыСеанса.ПараметрыОграниченияДоступа.ОтключеноОграничениеНаУровнеЗаписей); + + ПараметрыОграничения.Вставить("ОтключенСтандартныйВариант", + ПараметрыСеанса.ПараметрыОграниченияДоступа.ОтключенСтандартныйВариант); + + ПараметрыОграничения.Вставить("ТребуетсяЗапуститьОбновлениеДоступа", + ПараметрыСеанса.ПараметрыОграниченияДоступа.ТребуетсяЗапуститьОбновлениеДоступа); + Возврат Новый ФиксированнаяСтруктура(ПараметрыОграничения); КонецФункции @@ -47384,15 +48171,7 @@ Методы.Вставить("ОбновитьВспомогательныеДанныеПоИзменениямКонфигурации"); Методы.Вставить("ОбновитьДанныеПрофиляОткрытиеВнешнихОтчетовИОбработок"); Методы.Вставить("ЗаполнитьОбработчикиРазделенныхДанных"); - Методы.Вставить("ЗаписатьНовуюВерсиюПараметровОграниченияДоступаВФоне", Истина); Методы.Вставить("ОбновитьПрогрессВФоне", Истина); - Методы.Вставить("ОбновлениеДоступаНаУровнеЗаписей", Истина); - Методы.Вставить("ЗаполнениеДанныхДляОграниченияДоступаОбработчикЗадания", Истина); - Методы.Вставить("ВключитьРегламентноеЗаданиеОбновленияДоступа", Истина); - Методы.Вставить("ОтключитьРегламентноеЗаданиеОбновленияДоступа", Истина); - Методы.Вставить("ЗаписатьПланированиеОбновленияПараметровОграниченияДоступа", Истина); - Методы.Вставить("ОбновитьВспомогательныеДанныеГруппДоступа", Истина); - Методы.Вставить("ВыполнитьОбновлениеДоступаСпискаВФоне", Истина); КонецПроцедуры diff --git a/SSL/src/CommonModules/УправлениеДоступомСлужебныйВМоделиСервиса/Module.bsl b/SSL/src/CommonModules/УправлениеДоступомСлужебныйВМоделиСервиса/Module.bsl index bde265142..978e54a47 100644 --- a/SSL/src/CommonModules/УправлениеДоступомСлужебныйВМоделиСервиса/Module.bsl +++ b/SSL/src/CommonModules/УправлениеДоступомСлужебныйВМоделиСервиса/Module.bsl @@ -1,5 +1,5 @@ /////////////////////////////////////////////////////////////////////////////////////////////////////// -// Copyright (c) 2024, ООО 1С-Софт +// Copyright (c) 2025, ООО 1С-Софт // Все права защищены. Эта программа и сопроводительные материалы предоставляются // в соответствии с условиями лицензии Attribution 4.0 International (CC BY 4.0) // Текст лицензии доступен по ссылке: diff --git a/SSL/src/CommonModules/УправлениеДоступомСлужебныйВызовСервера/Module.bsl b/SSL/src/CommonModules/УправлениеДоступомСлужебныйВызовСервера/Module.bsl index 72c9dd5ea..4e83c51b9 100644 --- a/SSL/src/CommonModules/УправлениеДоступомСлужебныйВызовСервера/Module.bsl +++ b/SSL/src/CommonModules/УправлениеДоступомСлужебныйВызовСервера/Module.bsl @@ -1,5 +1,5 @@ /////////////////////////////////////////////////////////////////////////////////////////////////////// -// Copyright (c) 2024, ООО 1С-Софт +// Copyright (c) 2025, ООО 1С-Софт // Все права защищены. Эта программа и сопроводительные материалы предоставляются // в соответствии с условиями лицензии Attribution 4.0 International (CC BY 4.0) // Текст лицензии доступен по ссылке: diff --git a/SSL/src/CommonModules/УправлениеДоступомСлужебныйКлиент/Module.bsl b/SSL/src/CommonModules/УправлениеДоступомСлужебныйКлиент/Module.bsl index 32517387e..32f46337c 100644 --- a/SSL/src/CommonModules/УправлениеДоступомСлужебныйКлиент/Module.bsl +++ b/SSL/src/CommonModules/УправлениеДоступомСлужебныйКлиент/Module.bsl @@ -1,5 +1,5 @@ /////////////////////////////////////////////////////////////////////////////////////////////////////// -// Copyright (c) 2024, ООО 1С-Софт +// Copyright (c) 2025, ООО 1С-Софт // Все права защищены. Эта программа и сопроводительные материалы предоставляются // в соответствии с условиями лицензии Attribution 4.0 International (CC BY 4.0) // Текст лицензии доступен по ссылке: @@ -509,6 +509,26 @@ КонецПроцедуры +Процедура ПоказатьПраваРолейПользователя(Роли, Пользователь) Экспорт + + Отбор = Новый Структура("НачальныйОтбор", Новый Структура("Роль", Роли)); + КлючВарианта = "ПраваРолей"; + + КлючНазначенияИспользования = КлючВарианта; + УточнитьКлючНазначенияИспользования(КлючНазначенияИспользования, + Новый Структура("Пользователь", Пользователь), "Пользователь"); + СократитьКлючНазначенияИспользования(КлючНазначенияИспользования); + + ПараметрыОтчета = Новый Структура; + ПараметрыОтчета.Вставить("СформироватьПриОткрытии", Истина); + ПараметрыОтчета.Вставить("Отбор", Отбор); + ПараметрыОтчета.Вставить("КлючВарианта", КлючВарианта); + ПараметрыОтчета.Вставить("КлючНазначенияИспользования", КлючНазначенияИспользования); + + ОткрытьФорму("Отчет.ПраваРолей.Форма", ПараметрыОтчета, ЭтотОбъект); + +КонецПроцедуры + Процедура ПоказатьПраваПользователейОтчета(Отчет, ИспользуемыеТаблицы) Экспорт КлючВарианта = "ПраваПользователейНаТаблицыОтчета"; @@ -1607,4 +1627,19 @@ КонецПроцедуры +// Для форм ПраваДоступа, ПраваДоступаУпрощенно. +// +// Параметры: +// РазличияРолей - см. УправлениеДоступомСлужебный.РазличияНастроенногоСоставаРолейСРолямиПользователяИБ +// +Процедура ПоказатьРазличияНастроенногоСоставаРолейСРолямиПользователяИБ(РазличияРолей) Экспорт + + Если Не ЗначениеЗаполнено(РазличияРолей) Тогда + Возврат; + КонецЕсли; + + СтандартныеПодсистемыКлиент.ПоказатьПодробнуюИнформацию(Неопределено, РазличияРолей); + +КонецПроцедуры + #КонецОбласти \ No newline at end of file diff --git a/SSL/src/CommonModules/УправлениеДоступомСлужебныйКлиентСервер/Module.bsl b/SSL/src/CommonModules/УправлениеДоступомСлужебныйКлиентСервер/Module.bsl index 1d4fcd5b3..1924d0955 100644 --- a/SSL/src/CommonModules/УправлениеДоступомСлужебныйКлиентСервер/Module.bsl +++ b/SSL/src/CommonModules/УправлениеДоступомСлужебныйКлиентСервер/Module.bsl @@ -1,5 +1,5 @@ /////////////////////////////////////////////////////////////////////////////////////////////////////// -// Copyright (c) 2024, ООО 1С-Софт +// Copyright (c) 2025, ООО 1С-Софт // Все права защищены. Эта программа и сопроводительные материалы предоставляются // в соответствии с условиями лицензии Attribution 4.0 International (CC BY 4.0) // Текст лицензии доступен по ссылке: diff --git a/SSL/src/CommonModules/УправлениеДоступомСлужебныйПовтИсп/Module.bsl b/SSL/src/CommonModules/УправлениеДоступомСлужебныйПовтИсп/Module.bsl index 8b621ab52..266fb01b9 100644 --- a/SSL/src/CommonModules/УправлениеДоступомСлужебныйПовтИсп/Module.bsl +++ b/SSL/src/CommonModules/УправлениеДоступомСлужебныйПовтИсп/Module.bsl @@ -1,5 +1,5 @@ /////////////////////////////////////////////////////////////////////////////////////////////////////// -// Copyright (c) 2024, ООО 1С-Софт +// Copyright (c) 2025, ООО 1С-Софт // Все права защищены. Эта программа и сопроводительные материалы предоставляются // в соответствии с условиями лицензии Attribution 4.0 International (CC BY 4.0) // Текст лицензии доступен по ссылке: @@ -542,7 +542,7 @@ // Функция КонстантаОграничиватьДоступНаУровнеЗаписей() Экспорт - Возврат Константы.ОграничиватьДоступНаУровнеЗаписей.Получить(); + Возврат УправлениеДоступомСлужебный.КонстантаОграничиватьДоступНаУровнеЗаписей(); КонецФункции diff --git a/SSL/src/CommonModules/УправлениеИтогамиИАгрегатамиСлужебный/Module.bsl b/SSL/src/CommonModules/УправлениеИтогамиИАгрегатамиСлужебный/Module.bsl index 24f989851..3fd693e29 100644 --- a/SSL/src/CommonModules/УправлениеИтогамиИАгрегатамиСлужебный/Module.bsl +++ b/SSL/src/CommonModules/УправлениеИтогамиИАгрегатамиСлужебный/Module.bsl @@ -1,5 +1,5 @@ /////////////////////////////////////////////////////////////////////////////////////////////////////// -// Copyright (c) 2024, ООО 1С-Софт +// Copyright (c) 2025, ООО 1С-Софт // Все права защищены. Эта программа и сопроводительные материалы предоставляются // в соответствии с условиями лицензии Attribution 4.0 International (CC BY 4.0) // Текст лицензии доступен по ссылке: @@ -468,9 +468,6 @@ Процедура ПриОпределенииМетодовРазрешенныхДляВызоваКакПроизвольныйКод(Методы) Экспорт Методы.Вставить("ОбновитьИспользованиеРегламентныхЗаданий"); - Методы.Вставить("ОбновлениеАгрегатовОбработчикЗадания", Истина); - Методы.Вставить("ПерестроениеАгрегатовОбработчикЗадания", Истина); - Методы.Вставить("УстановкаПериодаРассчитанныхИтоговОбработчикЗадания", Истина); КонецПроцедуры diff --git a/SSL/src/CommonModules/УправлениеКолонтитулами/Module.bsl b/SSL/src/CommonModules/УправлениеКолонтитулами/Module.bsl index d6c153b62..d1c165792 100644 --- a/SSL/src/CommonModules/УправлениеКолонтитулами/Module.bsl +++ b/SSL/src/CommonModules/УправлениеКолонтитулами/Module.bsl @@ -1,5 +1,5 @@ /////////////////////////////////////////////////////////////////////////////////////////////////////// -// Copyright (c) 2024, ООО 1С-Софт +// Copyright (c) 2025, ООО 1С-Софт // Все права защищены. Эта программа и сопроводительные материалы предоставляются // в соответствии с условиями лицензии Attribution 4.0 International (CC BY 4.0) // Текст лицензии доступен по ссылке: diff --git a/SSL/src/CommonModules/УправлениеКонтактнойИнформацией/Module.bsl b/SSL/src/CommonModules/УправлениеКонтактнойИнформацией/Module.bsl index e3afaf361..bd753c700 100644 --- a/SSL/src/CommonModules/УправлениеКонтактнойИнформацией/Module.bsl +++ b/SSL/src/CommonModules/УправлениеКонтактнойИнформацией/Module.bsl @@ -1,5 +1,5 @@ /////////////////////////////////////////////////////////////////////////////////////////////////////// -// Copyright (c) 2024, ООО 1С-Софт +// Copyright (c) 2025, ООО 1С-Софт // Все права защищены. Эта программа и сопроводительные материалы предоставляются // в соответствии с условиями лицензии Attribution 4.0 International (CC BY 4.0) // Текст лицензии доступен по ссылке: @@ -2885,6 +2885,40 @@ #Область ПроверкаИСведенияОбАдресе +// Возвращает тип адреса (адресного деления) из строки‑адреса в формате JSON. +// +// Не рекомендуется сравнивать тип адреса напрямую со строкой. +// Следует использовать специализированные функции общих модулей +// УправлениеКонтактнойИнформациейКлиентСервер и РаботаСАдресамиКлиентСервер +// (если они присутствуют в конфигурации). +// Подробнее см. функции АдресВСвободнойФорме, ИностранныйАдрес, ЕАЭС из общего модуля +// УправлениеКонтактнойИнформациейКлиентСервер. +// +// Параметры: +// Адрес - Строка - адрес в формате JSON. +// +// Возвращаемое значение: +// Строка - тип адреса, например: "Иностранный", "ЕАЭС", "ВСвободнойФорме" и др. +// Если тип адреса не удалось определить, возвращается пустая строка. +// +Функция ТипАдреса(Адрес) Экспорт + + Если ТипЗнч(Адрес) = Тип("Строка") Тогда + + Если ПустаяСтрока(Адрес) Тогда + Возврат ""; + КонецЕсли; + + АдресИзJSON = УправлениеКонтактнойИнформациейСлужебный.JSONВКонтактнуюИнформациюПоПолям(Адрес, Перечисления.ТипыКонтактнойИнформации.Адрес); + + Возврат АдресИзJSON.addressType; + + КонецЕсли; + + Возврат ""; + +КонецФункции + // Возвращает детализированную информацию об адресе в виде отдельных полей, таких как город, улица, регион, индекс и др. // Если в конфигурации присутствует общий модуль РаботаСАдресами, // вызов данной функции будет автоматически перенаправлен в этот модуль. @@ -3128,7 +3162,6 @@ КонецФункции - #КонецОбласти #Область ОбновлениеИнформационнойБазы @@ -4433,10 +4466,10 @@ Возврат; КонецЕсли; - ЭтоПараметрыОсновногоОбъекта = Ложь; - КонецЦикла; - + + ЭтоПараметрыОсновногоОбъекта = Ложь; + КонецПроцедуры // Параметры: diff --git a/SSL/src/CommonModules/УправлениеКонтактнойИнформациейКлиент/Module.bsl b/SSL/src/CommonModules/УправлениеКонтактнойИнформациейКлиент/Module.bsl index 77345c120..641dbe933 100644 --- a/SSL/src/CommonModules/УправлениеКонтактнойИнформациейКлиент/Module.bsl +++ b/SSL/src/CommonModules/УправлениеКонтактнойИнформациейКлиент/Module.bsl @@ -1,5 +1,5 @@ /////////////////////////////////////////////////////////////////////////////////////////////////////// -// Copyright (c) 2024, ООО 1С-Софт +// Copyright (c) 2025, ООО 1С-Софт // Все права защищены. Эта программа и сопроводительные материалы предоставляются // в соответствии с условиями лицензии Attribution 4.0 International (CC BY 4.0) // Текст лицензии доступен по ссылке: diff --git a/SSL/src/CommonModules/УправлениеКонтактнойИнформациейКлиентЛокализация/Module.bsl b/SSL/src/CommonModules/УправлениеКонтактнойИнформациейКлиентЛокализация/Module.bsl index f791bff4a..98c48a751 100644 --- a/SSL/src/CommonModules/УправлениеКонтактнойИнформациейКлиентЛокализация/Module.bsl +++ b/SSL/src/CommonModules/УправлениеКонтактнойИнформациейКлиентЛокализация/Module.bsl @@ -1,5 +1,5 @@ /////////////////////////////////////////////////////////////////////////////////////////////////////// -// Copyright (c) 2024, ООО 1С-Софт +// Copyright (c) 2025, ООО 1С-Софт // Все права защищены. Эта программа и сопроводительные материалы предоставляются // в соответствии с условиями лицензии Attribution 4.0 International (CC BY 4.0) // Текст лицензии доступен по ссылке: diff --git a/SSL/src/CommonModules/УправлениеКонтактнойИнформациейКлиентСервер/Module.bsl b/SSL/src/CommonModules/УправлениеКонтактнойИнформациейКлиентСервер/Module.bsl index b72f337b2..c1902f7e3 100644 --- a/SSL/src/CommonModules/УправлениеКонтактнойИнформациейКлиентСервер/Module.bsl +++ b/SSL/src/CommonModules/УправлениеКонтактнойИнформациейКлиентСервер/Module.bsl @@ -1,5 +1,5 @@ /////////////////////////////////////////////////////////////////////////////////////////////////////// -// Copyright (c) 2024, ООО 1С-Софт +// Copyright (c) 2025, ООО 1С-Софт // Все права защищены. Эта программа и сопроводительные материалы предоставляются // в соответствии с условиями лицензии Attribution 4.0 International (CC BY 4.0) // Текст лицензии доступен по ссылке: @@ -267,7 +267,7 @@ Результат = Новый Структура; - Результат.Вставить("version", 4); + Результат.Вставить("version", 5); Результат.Вставить("value", ""); Результат.Вставить("comment", ""); Результат.Вставить("type", ТипКонтактнойИнформацииВСтроку(ТипКонтактнойИнформации)); @@ -661,24 +661,31 @@ Возврат Результат; КонецФункции -Функция СоединитьНаименованиеИТипАдресногоОбъекта(Знач Наименование, Знач ТипАдресногоОбъекта, ЭтоРегион = Ложь) Экспорт +Функция СоединитьНаименованиеИТипАдресногоОбъекта(Знач Наименование, Знач ТипАдресногоОбъекта, ТипВКонце = Ложь) Экспорт + + Наименование = СокрЛП(Наименование); + ТипАдресногоОбъекта = СокрЛП(ТипАдресногоОбъекта); Если ПустаяСтрока(ТипАдресногоОбъекта) Тогда Возврат Наименование; КонецЕсли; - Если ЭтоРегион Тогда + Если ПустаяСтрока(Наименование) Тогда + Возврат ТипАдресногоОбъекта; + КонецЕсли; + + Если ТипВКонце Тогда // Локализация Если НаименованиеРегионаБезТипа(Наименование) Тогда - Возврат СокрЛП(Наименование); + Возврат Наименование; КонецЕсли; // Конец Локализация - Возврат СокрЛП(Наименование + " " + ТипАдресногоОбъекта); + Возврат Наименование + " " + ТипАдресногоОбъекта; КонецЕсли; - Возврат СокрЛП(ТипАдресногоОбъекта + " "+ Наименование); + Возврат ТипАдресногоОбъекта + " "+ Наименование; КонецФункции diff --git a/SSL/src/CommonModules/УправлениеКонтактнойИнформациейКлиентСерверЛокализация/Module.bsl b/SSL/src/CommonModules/УправлениеКонтактнойИнформациейКлиентСерверЛокализация/Module.bsl index 87e8e993c..84956d169 100644 --- a/SSL/src/CommonModules/УправлениеКонтактнойИнформациейКлиентСерверЛокализация/Module.bsl +++ b/SSL/src/CommonModules/УправлениеКонтактнойИнформациейКлиентСерверЛокализация/Module.bsl @@ -1,5 +1,5 @@ /////////////////////////////////////////////////////////////////////////////////////////////////////// -// Copyright (c) 2024, ООО 1С-Софт +// Copyright (c) 2025, ООО 1С-Софт // Все права защищены. Эта программа и сопроводительные материалы предоставляются // в соответствии с условиями лицензии Attribution 4.0 International (CC BY 4.0) // Текст лицензии доступен по ссылке: diff --git a/SSL/src/CommonModules/УправлениеКонтактнойИнформациейЛокализация/Module.bsl b/SSL/src/CommonModules/УправлениеКонтактнойИнформациейЛокализация/Module.bsl index 75b1733df..fa461e8b1 100644 --- a/SSL/src/CommonModules/УправлениеКонтактнойИнформациейЛокализация/Module.bsl +++ b/SSL/src/CommonModules/УправлениеКонтактнойИнформациейЛокализация/Module.bsl @@ -1,5 +1,5 @@ /////////////////////////////////////////////////////////////////////////////////////////////////////// -// Copyright (c) 2024, ООО 1С-Софт +// Copyright (c) 2025, ООО 1С-Софт // Все права защищены. Эта программа и сопроводительные материалы предоставляются // в соответствии с условиями лицензии Attribution 4.0 International (CC BY 4.0) // Текст лицензии доступен по ссылке: diff --git a/SSL/src/CommonModules/УправлениеКонтактнойИнформациейПереопределяемый/Module.bsl b/SSL/src/CommonModules/УправлениеКонтактнойИнформациейПереопределяемый/Module.bsl index 3b4a2911f..7d4ae1567 100644 --- a/SSL/src/CommonModules/УправлениеКонтактнойИнформациейПереопределяемый/Module.bsl +++ b/SSL/src/CommonModules/УправлениеКонтактнойИнформациейПереопределяемый/Module.bsl @@ -1,5 +1,5 @@ /////////////////////////////////////////////////////////////////////////////////////////////////////// -// Copyright (c) 2024, ООО 1С-Софт +// Copyright (c) 2025, ООО 1С-Софт // Все права защищены. Эта программа и сопроводительные материалы предоставляются // в соответствии с условиями лицензии Attribution 4.0 International (CC BY 4.0) // Текст лицензии доступен по ссылке: diff --git a/SSL/src/CommonModules/УправлениеКонтактнойИнформациейСлужебный/Module.bsl b/SSL/src/CommonModules/УправлениеКонтактнойИнформациейСлужебный/Module.bsl index f585a0a92..4c3f2aa4b 100644 --- a/SSL/src/CommonModules/УправлениеКонтактнойИнформациейСлужебный/Module.bsl +++ b/SSL/src/CommonModules/УправлениеКонтактнойИнформациейСлужебный/Module.bsl @@ -1,5 +1,5 @@ /////////////////////////////////////////////////////////////////////////////////////////////////////// -// Copyright (c) 2024, ООО 1С-Софт +// Copyright (c) 2025, ООО 1С-Софт // Все права защищены. Эта программа и сопроводительные материалы предоставляются // в соответствии с условиями лицензии Attribution 4.0 International (CC BY 4.0) // Текст лицензии доступен по ссылке: @@ -1334,86 +1334,121 @@ // Функция ЧастиАдресаТаблицей(Знач Текст) Экспорт - ТипыАдресныхОбъектов = ТипыАдресныхОбъектов(); Результат = ЧастиАдреса(); КодРегиона = Неопределено; + Позиция = 1; - Номер = 1; - Для Каждого Часть Из СловаТекстаТаблицей(Текст, "," + Символы.ПС) Цикл - Значение = СокрЛП(Часть.Значение); + ТипыАдресныхОбъектов = ТипыАдресныхОбъектов(); + + МодульАдресныйКлассификатор = Неопределено; + Если ОбщегоНазначения.ПодсистемаСуществует("СтандартныеПодсистемы.АдресныйКлассификатор") Тогда + МодульАдресныйКлассификатор = ОбщегоНазначения.ОбщийМодуль("АдресныйКлассификатор"); + КонецЕсли; + + НаборЧастейАдреса = СтрРазделить(СтрЗаменить(Текст, "№", ""), "," + Символы.ПС, Ложь); + + Для Каждого Часть Из НаборЧастейАдреса Цикл + Значение = СокрЛП(Часть); Если ПустаяСтрока(Значение) Тогда Продолжить; КонецЕсли; Строка = Результат.Добавить(); - Строка.Уровень = 0; - Строка.Позиция = Номер; - Номер = Номер + 1; + Строка.Позиция = Позиция; + Позиция = Позиция + 1; - Строка.Начало = Часть.Начало; - Строка.Длина = Часть.Длина; - - Если СтрНайти(Значение, " ") = 0 Тогда + Если СтрНайти(Значение, " ") = 0 Тогда Строка.Наименование = Значение; - Строка.Значение = Строка.Наименование; + Строка.Значение = Значение; Продолжить; КонецЕсли; ЗначениеВерхнийРегистр = ВРег(Значение); + НайденТип = Ложь; + Для Каждого ТипАдресныхОбъектов Из ТипыАдресныхОбъектов Цикл + // Начинается с типа Если СтрНачинаетсяС(ЗначениеВерхнийРегистр, ТипАдресныхОбъектов.ТипОбъектаВНачале) Тогда - - Строка.Наименование = СокрЛП(Сред(Значение, ТипАдресныхОбъектов.Длина + 1)); - Строка.ТипОбъекта = СокрЛП(Лев(Значение, ТипАдресныхОбъектов.Длина)); + Длина = ТипАдресныхОбъектов.Длина; + Строка.Наименование = СокрЛП(Сред(Значение, Длина + 1)); + Строка.ТипОбъекта = СокрЛП(Лев(Значение, Длина)); Строка.Значение = УправлениеКонтактнойИнформациейКлиентСервер.СоединитьНаименованиеИТипАдресногоОбъекта(Строка.Наименование, Строка.ТипОбъекта); + НайденТип = Истина; Прервать; + // Заканчивается типом ИначеЕсли СтрЗаканчиваетсяНа(ЗначениеВерхнийРегистр, ТипАдресныхОбъектов.ТипОбъектаВКонце) Тогда - - Строка.Наименование = СокрЛП(Сред(Значение, 1, СтрДлина(Значение) - ТипАдресныхОбъектов.Длина)); - Строка.ТипОбъекта = СокрЛП(Прав(Значение, ТипАдресныхОбъектов.Длина)); + Длина = ТипАдресныхОбъектов.Длина; + Строка.Наименование = СокрЛП(Сред(Значение, 1, СтрДлина(Значение) - Длина)); + Строка.ТипОбъекта = СокрЛП(Прав(Значение, Длина)); Строка.Значение = УправлениеКонтактнойИнформациейКлиентСервер.СоединитьНаименованиеИТипАдресногоОбъекта(Строка.Наименование, Строка.ТипОбъекта); + НайденТип = Истина; Прервать; КонецЕсли; - КонецЦикла; - Если КодРегиона = Неопределено И ОбщегоНазначения.ПодсистемаСуществует("СтандартныеПодсистемы.АдресныйКлассификатор") Тогда - - МодульАдресныйКлассификатор = ОбщегоНазначения.ОбщийМодуль("АдресныйКлассификатор"); - КодРегиона = МодульАдресныйКлассификатор.КодРегионаПоНаименованию( - УправлениеКонтактнойИнформациейКлиентСервер.СоединитьНаименованиеИТипАдресногоОбъекта(Строка.Наименование, Строка.ТипОбъекта, Истина)); - - Если КодРегиона = Неопределено И ЗначениеЗаполнено(Значение) Тогда + Если Не НайденТип Тогда + ЧастиАдресногоОбъекта = СтрРазделить(Значение, " ", Ложь); + Если ЧастиАдресногоОбъекта.Количество() > 0 Тогда + Строка.ТипОбъекта = ЧастиАдресногоОбъекта[0]; + ЧастиАдресногоОбъекта.Удалить(0); + Строка.Наименование = СокрЛП(СтрСоединить(ЧастиАдресногоОбъекта, " ")); + Строка.Значение = УправлениеКонтактнойИнформациейКлиентСервер.СоединитьНаименованиеИТипАдресногоОбъекта(Строка.Наименование, Строка.ТипОбъекта); + Иначе + Строка.Наименование = Значение; + Строка.Значение = Значение; + КонецЕсли; + КонецЕсли; + + Если КодРегиона = Неопределено + И ЗначениеЗаполнено(Строка.Значение) + И МодульАдресныйКлассификатор <> Неопределено Тогда + КодРегиона = МодульАдресныйКлассификатор.КодРегионаПоНаименованию(Строка.Значение); + Если КодРегиона = Неопределено Тогда КодРегиона = МодульАдресныйКлассификатор.КодРегионаПоНаименованию(Значение); КонецЕсли; - Если КодРегиона <> Неопределено Тогда Строка.Значение = МодульАдресныйКлассификатор.НаименованиеРегионаПоКоду(КодРегиона); Строка.Уровень = 1; КонецЕсли; КонецЕсли; - Если ЗначениеЗаполнено(Строка.Значение) Тогда - Продолжить; - КонецЕсли; - - ЧастиАдресногоОбъекта = СтрРазделить(Значение, " " + Символы.ПС + Символы.Таб); - - Строка.ТипОбъекта = ЧастиАдресногоОбъекта[0]; - ЧастиАдресногоОбъекта.Удалить(0); - Строка.Наименование = СокрЛП(СтрСоединить(ЧастиАдресногоОбъекта, " ")); - Строка.Значение = УправлениеКонтактнойИнформациейКлиентСервер.СоединитьНаименованиеИТипАдресногоОбъекта(Строка.Наименование, Строка.ТипОбъекта); - КонецЦикла; Возврат Результат; КонецФункции +// Функция-конструктор таблицы содержащей адрес, где каждая строка это часть адреса. +// +// Возвращаемое значение: +// ТаблицаЗначений: +// * Уровень - Число +// * Позиция - Число +// * Значение - Строка +// * Наименование - Строка +// * ТипОбъекта - Строка +// +Функция ЧастиАдреса() Экспорт + + ТипСтрока = Новый ОписаниеТипов("Строка", Новый КвалификаторыСтроки(128)); + ТипЧисло = Новый ОписаниеТипов("Число"); + + Результат = Новый ТаблицаЗначений; + Колонки = Результат.Колонки; + Колонки.Добавить("Уровень", ТипЧисло); + Колонки.Добавить("Позиция", ТипЧисло); + Колонки.Добавить("Значение", ТипСтрока); + Колонки.Добавить("Наименование", ТипСтрока); + Колонки.Добавить("ТипОбъекта", ТипСтрока); + + Возврат Результат; + +КонецФункции + // Возвращаемое значение: // ТаблицаЗначений: // * Сокращение - Строка @@ -1440,97 +1475,6 @@ КонецФункции -// Функция-конструктор таблицы содержащей адрес, где каждая строка это часть адреса. -// -// Возвращаемое значение: -// ТаблицаЗначений: -// * Уровень - Число -// * Позиция - Число -// * Значение - Строка -// * Наименование - Строка -// * ТипОбъекта - Строка -// * Начало - Число -// * Длина - Число -// * Идентификатор - Строка -// -Функция ЧастиАдреса() Экспорт - - ТипСтрока = Новый ОписаниеТипов("Строка", Новый КвалификаторыСтроки(128)); - ТипЧисло = Новый ОписаниеТипов("Число"); - - Результат = Новый ТаблицаЗначений; - Колонки = Результат.Колонки; - Колонки.Добавить("Уровень", ТипЧисло); - Колонки.Добавить("Позиция", ТипЧисло); - Колонки.Добавить("Значение", ТипСтрока); - Колонки.Добавить("Наименование", ТипСтрока); - Колонки.Добавить("ТипОбъекта", ТипСтрока); - Колонки.Добавить("Начало", ТипЧисло); - Колонки.Добавить("Длина", ТипЧисло); - Колонки.Добавить("Идентификатор", ТипСтрока); - Возврат Результат; - -КонецФункции - -Функция СловаТекстаТаблицей(Знач Текст, Знач Разделители = Неопределено) - - // Удаление из текста спец. символов "точек", "номеров". - Текст = СтрЗаменить(Текст, "№", ""); - - НачалоСлова = 0; - Состояние = 0; - - Результат = ТаблицаФрагментов(); - - Для Позиция = 1 По СтрДлина(Текст) Цикл - ТекущийСимвол = Сред(Текст, Позиция, 1); - ЭтоРазделитель = ?(Разделители = Неопределено, ПустаяСтрока(ТекущийСимвол), СтрНайти(Разделители, ТекущийСимвол) > 0); - - Если Состояние = 0 И (Не ЭтоРазделитель) Тогда - НачалоСлова = Позиция; - Состояние = 1; - ИначеЕсли Состояние = 1 И ЭтоРазделитель Тогда - Строка = Результат.Добавить(); - Строка.Начало = НачалоСлова; - Строка.Длина = Позиция-НачалоСлова; - Строка.Значение = Сред(Текст, Строка.Начало, Строка.Длина); - Состояние = 0; - КонецЕсли; - КонецЦикла; - - Если Состояние = 1 Тогда - Строка = Результат.Добавить(); - Строка.Начало = НачалоСлова; - Строка.Длина = Позиция-НачалоСлова; - Строка.Значение = Сред(Текст, Строка.Начало, Строка.Длина) - КонецЕсли; - - Возврат Результат; -КонецФункции - -// Функция-конструктор таблицы фрагментов -// -// Возвращаемое значение: -// ТаблицаЗначений: -// * Значение - Строка -// * Начало - Число -// * Длина - Число -// -Функция ТаблицаФрагментов() - - ТипСтрока = Новый ОписаниеТипов("Строка"); - ТипЧисло = Новый ОписаниеТипов("Число"); - - Результат = Новый ТаблицаЗначений; - Колонки = Результат.Колонки; - Колонки.Добавить("Значение", ТипСтрока); - Колонки.Добавить("Начало", ТипЧисло); - Колонки.Добавить("Длина", ТипЧисло); - - Возврат Результат; - -КонецФункции - Процедура ОпределитьСтрануИИндекс(АдресПоПолям) Экспорт Если Не УправлениеКонтактнойИнформациейСлужебныйПовтИсп.ДоступныМодулиРаботаСАдресами() Тогда @@ -3283,7 +3227,6 @@ Методы.Вставить("ОбновитьСуществующиеСтраныМира"); Методы.Вставить("ПроверитьВидыКонтактнойИнформации"); Методы.Вставить("ИсправитьВидыКонтактнойИнформацииВФоне", Истина); - Методы.Вставить("ИсправлениеУстаревшихАдресов", Истина); КонецПроцедуры diff --git a/SSL/src/CommonModules/УправлениеКонтактнойИнформациейСлужебныйВызовСервера/Module.bsl b/SSL/src/CommonModules/УправлениеКонтактнойИнформациейСлужебныйВызовСервера/Module.bsl index e3f2db406..74c98ea1a 100644 --- a/SSL/src/CommonModules/УправлениеКонтактнойИнформациейСлужебныйВызовСервера/Module.bsl +++ b/SSL/src/CommonModules/УправлениеКонтактнойИнформациейСлужебныйВызовСервера/Module.bsl @@ -1,5 +1,5 @@ /////////////////////////////////////////////////////////////////////////////////////////////////////// -// Copyright (c) 2024, ООО 1С-Софт +// Copyright (c) 2025, ООО 1С-Софт // Все права защищены. Эта программа и сопроводительные материалы предоставляются // в соответствии с условиями лицензии Attribution 4.0 International (CC BY 4.0) // Текст лицензии доступен по ссылке: diff --git a/SSL/src/CommonModules/УправлениеКонтактнойИнформациейСлужебныйПовтИсп/Module.bsl b/SSL/src/CommonModules/УправлениеКонтактнойИнформациейСлужебныйПовтИсп/Module.bsl index 9caaaf19b..32de7b989 100644 --- a/SSL/src/CommonModules/УправлениеКонтактнойИнформациейСлужебныйПовтИсп/Module.bsl +++ b/SSL/src/CommonModules/УправлениеКонтактнойИнформациейСлужебныйПовтИсп/Module.bsl @@ -1,5 +1,5 @@ /////////////////////////////////////////////////////////////////////////////////////////////////////// -// Copyright (c) 2024, ООО 1С-Софт +// Copyright (c) 2025, ООО 1С-Софт // Все права защищены. Эта программа и сопроводительные материалы предоставляются // в соответствии с условиями лицензии Attribution 4.0 International (CC BY 4.0) // Текст лицензии доступен по ссылке: diff --git a/SSL/src/CommonModules/УправлениеПечатью/Module.bsl b/SSL/src/CommonModules/УправлениеПечатью/Module.bsl index ea7b81558..0068785d4 100644 --- a/SSL/src/CommonModules/УправлениеПечатью/Module.bsl +++ b/SSL/src/CommonModules/УправлениеПечатью/Module.bsl @@ -1,5 +1,5 @@ /////////////////////////////////////////////////////////////////////////////////////////////////////// -// Copyright (c) 2024, ООО 1С-Софт +// Copyright (c) 2025, ООО 1С-Софт // Все права защищены. Эта программа и сопроводительные материалы предоставляются // в соответствии с условиями лицензии Attribution 4.0 International (CC BY 4.0) // Текст лицензии доступен по ссылке: @@ -1767,7 +1767,7 @@ Если ЗаполнятьКолонтитулы Тогда Для Каждого Колонтитул Из СтруктураДокумента.Колонтитулы Цикл - УстановитьПараметрыВДереве(ЗначенияПараметров, Колонтитул.Значение, ДеревоМакета, ДобавлятьСвязи); + УстановитьПараметрыВДереве(ЗначенияПараметров, Колонтитул.Значение, ДеревоМакета, ДобавлятьСвязи, Колонтитул.Ключ); КонецЦикла; КонецЕсли; @@ -2453,14 +2453,21 @@ Результат = Новый СписокЗначений; ОписанияОбъектов = ОбщегоНазначения.ОбъектыМетаданныхПоИдентификаторам(ИсточникиДанных); + ТипыИсточников = Новый Массив; // Массив из Тип Для Каждого ОписаниеОбъекта Из ОписанияОбъектов Цикл ИмяОбъектаМетаданных = ОписаниеОбъекта.Значение.ПолноеИмя(); Для Каждого СхемаКомпоновкиДанных Из СхемыКомпоновкиДанныхИсточникаПолей(ИмяОбъектаМетаданных, Ложь) Цикл Результат.Добавить(КонструкторФормул.КоллекцияПолей(СхемаКомпоновкиДанных.Значение), СхемаКомпоновкиДанных.Представление); КонецЦикла; + + Тип = СтандартныеПодсистемыСервер.ТипСсылкиИлиКлючаЗаписиОбъектаМетаданных(ОписаниеОбъекта.Значение); + Если ТипыИсточников.Найти(Тип) = Неопределено Тогда + ТипыИсточников.Добавить(Тип); + КонецЕсли; + КонецЦикла; - Результат.Добавить(КоллекцияПолейОбщиеРеквизиты(), "ОбщиеРеквизиты"); + Результат.Добавить(КоллекцияПолейОбщиеРеквизиты(ТипыИсточников), "ОбщиеРеквизиты"); Возврат Результат; @@ -2542,6 +2549,16 @@ Группа.Представление = НСтр("ru = 'Прочие функции'"); Группа.Порядок = 7; Группа.Картинка = БиблиотекаКартинок.ТипФункция; + + Иначе + + ТипСтрока = Новый ОписаниеТипов("Строка"); + Префикс = ИмяМодуляПечати() + РазделительКоманды(); + ИмяМетода = Префикс + "ЕслиПустое"; + ДобавитьОператорВГруппу(Группа, ИмяМетода, НСтр("ru = 'Если пустое'"),, Истина); + ИмяМетода = Префикс + "ЧислоПрописьюПоПараметрам"; + ДобавитьОператорВГруппу(Группа, ИмяМетода, НСтр("ru = 'Число прописью'"), ТипСтрока, Истина); + КонецЕсли; Возврат КонструкторФормул.КоллекцияПолей(СписокОператоров); @@ -3511,6 +3528,14 @@ Продолжить; КонецЕсли; + Если ВРег("СимволПС") = ВРег(Операнд) Тогда + + Операнд = Символы.ПС; + ЭлементыФормулы.ВсеЭлементы[ОписаниеЭлемента.Ключ] = "Символы.ПС"; + Продолжить; + + КонецЕсли; + Значение = КоллекцияДанных[ОчиститьКвадратныеСкобки(Операнд) + "." + СтрРазделить(КодЯзыка, "_")[0]]; Если Не ЗначениеЗаполнено(Значение) Тогда Значение = КоллекцияДанных[ОчиститьКвадратныеСкобки(Операнд)]; @@ -5390,6 +5415,8 @@ ОписанияИсточниковДанных.Колонки.Добавить("Имя"); ОписанияИсточниковДанных.Колонки.Добавить("Значение"); + ОписанияПустыхИсточниковДанных = ОписанияИсточниковДанных.Скопировать(); + Для Каждого Объект Из Объекты Цикл Если ИсточникПолейВТабличнойЧасти Тогда Если ЭтоПолеТабличнойЧасти(ПутьКДаннымТабличнойЧасти, ДанныеПечати) Тогда @@ -5411,6 +5438,19 @@ ОписаниеИсточника.Имя = ИмяПоля(ПутьКДаннымИсточникаПолей); ОписаниеИсточника.Значение = ЗначениеИсточникаПолей; Иначе + + ДанныеИсточника = Новый Структура; + ДанныеИсточника.Вставить("Объект", Объект); + ДанныеИсточника.Вставить("ЗначениеИсточникаПолей", ЗначениеИсточникаПолей); + ДанныеИсточника.Вставить("ПутьКДаннымИсточникаПолей", ПутьКДаннымИсточникаПолей); + ДанныеИсточника.Вставить("ПутьКДаннымВладельцаИсточника", ПутьКДаннымВладельцаИсточника); + ДобавитьОписанияПустыхИсточников( + ОписанияПустыхИсточниковДанных, + ДанныеПечати, + СхемыКомпоновкиДанных, + Поля, + ДанныеИсточника); + Для Каждого Поле Из ПодчиненныеПоля Цикл ДанныеПечати[Объект][ПутьКДаннымТабличнойЧасти][НомерСтроки][ПутьКДаннымПоляВТабличнойЧасти(Поле.Ключ, ДанныеПечати)] = Неопределено; КонецЦикла; @@ -5432,6 +5472,19 @@ ОписаниеИсточника.Имя = ИмяПоля(ПутьКДаннымИсточникаПолей); ОписаниеИсточника.Значение = ЗначениеИсточникаПолей; Иначе + + ДанныеИсточника = Новый Структура; + ДанныеИсточника.Вставить("Объект", Объект); + ДанныеИсточника.Вставить("ЗначениеИсточникаПолей", ЗначениеИсточникаПолей); + ДанныеИсточника.Вставить("ПутьКДаннымИсточникаПолей", ПутьКДаннымИсточникаПолей); + ДанныеИсточника.Вставить("ПутьКДаннымВладельцаИсточника", ПутьКДаннымВладельцаИсточника); + ДобавитьОписанияПустыхИсточников( + ОписанияПустыхИсточниковДанных, + ДанныеПечати, + СхемыКомпоновкиДанных, + Поля, + ДанныеИсточника); + Для Каждого Поле Из ПодчиненныеПоля Цикл ДанныеПечати[Объект][Поле.Ключ] = Неопределено; КонецЦикла; @@ -5439,8 +5492,17 @@ КонецЕсли; КонецЦикла; + ПустыеЗначенияДобавлены = Ложь; + Для Каждого Элемент Из Поля Цикл ИдентификаторСхемыКомпоновкиДанных = СхемыКомпоновкиДанных[Элемент.Ключ]; + + АктуализироватьОписанияИсточниковДанных( + ПустыеЗначенияДобавлены, + ОписанияИсточниковДанных, + ОписанияПустыхИсточниковДанных, + ИдентификаторСхемыКомпоновкиДанных); + СхемаКомпоновкиДанных = ПолучитьИзВременногоХранилища(Элемент.Ключ); ПоляСхемы = Элемент.Значение; @@ -5589,6 +5651,67 @@ КонецПроцедуры +Процедура АктуализироватьОписанияИсточниковДанных(ПустыеЗначенияДобавлены, ОписанияИсточниковДанных, Знач ОписанияПустыхИсточниковДанных, Знач ИдентификаторСхемыКомпоновкиДанных) + + Если ИдентификаторСхемыКомпоновкиДанных = "ДанныеПредопределенныеЗначения" Тогда + + Если НЕ ПустыеЗначенияДобавлены Тогда + + Для Каждого ОписаниеИсточника Из ОписанияПустыхИсточниковДанных Цикл + + ПустыеЗначенияДобавлены = Истина; + ЗаполнитьЗначенияСвойств(ОписанияИсточниковДанных.Добавить(), ОписаниеИсточника); + + КонецЦикла; + + КонецЕсли; + + Иначе + + КоличествоЭлементовКоллекции = ОписанияИсточниковДанных.Количество(); + Для ОбратныйИндекс = 1 По КоличествоЭлементовКоллекции Цикл + + Индекс = КоличествоЭлементовКоллекции - ОбратныйИндекс; + СтрокаТаблицы = ОписанияИсточниковДанных[Индекс]; + Если НЕ ЗначениеЗаполнено(СтрокаТаблицы.Значение) Тогда + ОписанияИсточниковДанных.Удалить(Индекс); + КонецЕсли; + + КонецЦикла; + ПустыеЗначенияДобавлены = Ложь; + + КонецЕсли; + +КонецПроцедуры + +Процедура ДобавитьОписанияПустыхИсточников(ОписанияПустыхИсточниковДанных, Знач ДанныеПечати, Знач СхемыКомпоновкиДанных, Знач Поля, ДанныеИсточника) + + Объект = ДанныеИсточника.Объект; + ЗначениеИсточникаПолей = ДанныеИсточника.ЗначениеИсточникаПолей; + ПутьКДаннымИсточникаПолей = ДанныеИсточника.ПутьКДаннымИсточникаПолей; + ПутьКДаннымВладельцаИсточника = ДанныеИсточника.ПутьКДаннымВладельцаИсточника; + + Для Каждого Элемент Из Поля Цикл + + ИдентификаторСхемыКомпоновкиДанных = СхемыКомпоновкиДанных[Элемент.Ключ]; + Если ИдентификаторСхемыКомпоновкиДанных = "ДанныеПредопределенныеЗначения" Тогда + + ОписаниеИсточника = ОписанияПустыхИсточниковДанных.Добавить(); + Если ЗначениеЗаполнено(ПутьКДаннымВладельцаИсточника) Тогда + ОписаниеИсточника.Владелец = ДанныеПечати[Объект][ПутьКДаннымВладельцаИсточника]; + ИначеЕсли ПутьКДаннымИсточникаПолей <> "Ссылка" Тогда + ОписаниеИсточника.Владелец = Объект; + КонецЕсли; + ОписаниеИсточника.Имя = ИмяПоля(ПутьКДаннымИсточникаПолей); + ОписаниеИсточника.Значение = ЗначениеИсточникаПолей; + Прервать; + + КонецЕсли; + + КонецЦикла; + +КонецПроцедуры + Функция СсылкиПоТипам(Ссылки) СсылкиПоТипам = Новый Соответствие; @@ -5923,6 +6046,44 @@ ДополнительныеПараметры.Вставить("ОписанияИсточниковДанных", ОписанияИсточниковДанных); ДополнительныеПараметры.Вставить("ДанныеИсточниковСгруппированыПоВладельцуИсточникаДанных", ДанныеИсточниковСгруппированыПоВладельцуИсточникаДанных); + Если ИдентификаторСхемыКомпоновкиДанных = "ДанныеПредопределенныеЗначения" Тогда + + МассивТипов = Новый Массив; // массив из Тип + Для Каждого ТекущееПоле Из СхемаКомпоновкиДанных.НаборыДанных[0].Поля Цикл + + Если ТипЗнч(ТекущееПоле) = Тип("ПолеНабораДанныхСхемыКомпоновкиДанных") + И ТекущееПоле.Поле <> "Ссылка" + И ЗначениеЗаполнено(ТекущееПоле.ТипЗначения) Тогда + + Типы = ТекущееПоле.ТипЗначения.Типы(); + ОбщегоНазначенияКлиентСервер.ДополнитьМассив(МассивТипов, Типы); + + КонецЕсли; + + КонецЦикла; + + ДополнительныеПараметры.Вставить("ТипИсточникаПолей", Новый ОписаниеТипов(МассивТипов)); + + КонецЕсли; + + Если ИдентификаторСхемыКомпоновкиДанных = "ОбщиеРеквизиты" Тогда + + ПоляКомпоновки = Новый Массив; // Массив из Строка + Для Каждого ТекущееПоле Из СхемаКомпоновкиДанных.НаборыДанных[0].Поля Цикл + + Если ТипЗнч(ТекущееПоле) = Тип("ПолеНабораДанныхСхемыКомпоновкиДанных") + И ТекущееПоле.Поле <> "Ссылка" Тогда + + ПоляКомпоновки.Добавить(ТекущееПоле.Поле); + + КонецЕсли; + + КонецЦикла; + + ДополнительныеПараметры.Вставить("ПоляКомпоновкиОбщихРеквизитов", ПоляКомпоновки); + + КонецЕсли; + ТекстЗаголовка = ИдентификаторСхемыКомпоновкиДанных; ТребуетсяПодготовкаВнешнегоНабораДанных = Ложь; @@ -6432,6 +6593,29 @@ КонецФункции +Функция ЕслиПустое(ПроверяемоеЗначение, ЗначениеЗамены) Экспорт // АПК:299 - обработчик функций конструктора формул + + ПроизводитьЗамену = Ложь; + Если ТипЗнч(ПроверяемоеЗначение) = Тип("Строка") Тогда + ПроизводитьЗамену = ПустаяСтрока(ПроверяемоеЗначение); + Иначе + ПроизводитьЗамену = НЕ ЗначениеЗаполнено(ПроверяемоеЗначение); + КонецЕсли; + + Если ПроизводитьЗамену Тогда + Возврат ЗначениеЗамены; + Иначе + Возврат ПроверяемоеЗначение; + КонецЕсли; + +КонецФункции + +Функция ЧислоПрописьюПоПараметрам(Число, ФорматнаяСтрока = Неопределено, ИсточникПараметровПрописи = Неопределено) Экспорт // АПК:299 - обработчик функций конструктора формул + + Возврат ЧислоПрописью(Число, ФорматнаяСтрока, ИсточникПараметровПрописи); + +КонецФункции + // Возвращаемое значение: // см. КонструкторФормулСлужебный.ОписаниеСписковПолей // @@ -6533,9 +6717,21 @@ КонецЕсли; Если ДобавитьОбщиеРеквизиты Тогда - ИсточникиПолей.Добавить(ПолучитьОбщийМакет("ДанныеПечатиОбщиеРеквизиты"), "ОбщиеРеквизиты"); + + СхемаКомпоновкиДанных = ПолучитьОбщийМакет("ДанныеПечатиОбщиеРеквизиты"); + Если ОбъектМетаданных <> Неопределено Тогда + + ТипОбъекта = СтандартныеПодсистемыСервер.ТипСсылкиИлиКлючаЗаписиОбъектаМетаданных(ОбъектМетаданных); + ТипыИсточников = Новый Массив; // Массив из Тип + ТипыИсточников.Добавить(ТипОбъекта); + ДополнитьСхемуКомпоновкиОбщихПолей(ТипыИсточников, СхемаКомпоновкиДанных); + + КонецЕсли; + + ИсточникиПолей.Добавить(СхемаКомпоновкиДанных, "ОбщиеРеквизиты"); + КонецЕсли; - + Если СтрЗаканчиваетсяНа(ИмяИсточникаПолей, ".Наименование") Или СтрЗаканчиваетсяНа(ИмяИсточникаПолей, ".НаименованиеДляПечати") Тогда ИсточникиПолей.Добавить(ПолучитьОбщийМакет("ДанныеПечатиРегистрСимволов"), "ДанныеПечатиРегистрСимволов"); КонецЕсли; @@ -6544,10 +6740,12 @@ Если ТипИсточникаПолей = Метаданные.ОпределяемыеТипы.ДенежнаяСуммаЛюбогоЗнака.Тип Или ТипИсточникаПолей = Метаданные.ОпределяемыеТипы.ДенежнаяСуммаНеотрицательная.Тип Тогда МодульРаботаСКурсамиВалют = ОбщегоНазначения.ОбщийМодуль("РаботаСКурсамиВалют"); - МодульРаботаСКурсамиВалют.ПодключитьИсточникДанныхПечатиЧислоПрописью(ИсточникиПолей); + МодульРаботаСКурсамиВалют.ПодключитьИсточникДанныхПечатиЧислоПрописью(ИсточникиПолей, ИмяИсточникаПолей); КонецЕсли; КонецЕсли; + ПодключитьПредопределенныеЗначения(ИсточникиПолей, ОбъектМетаданных, ТипИсточникаПолей); + Если ОбщегоНазначения.ПодсистемаСуществует("СтандартныеПодсистемы.Мультиязычность.Печать") Тогда МодульУправлениеПечатьюМультиязычность = ОбщегоНазначения.ОбщийМодуль("УправлениеПечатьюМультиязычность"); МодульУправлениеПечатьюМультиязычность.ПриОпределенииИсточниковДанныхПечати(ИмяИсточникаПолей, ИсточникиПолей); @@ -6563,7 +6761,7 @@ Процедура ПриПодготовкеДанныхПечати(Объекты, ВнешниеНаборыДанных, ИдентификаторСхемыКомпоновкиДанных, КодЯзыка, ДополнительныеПараметры) Если ИдентификаторСхемыКомпоновкиДанных = "ОбщиеРеквизиты" Тогда - ВнешниеНаборыДанных.Вставить("Данные", ОбщиеРеквизитыПечатныхФорм(Объекты)); + ВнешниеНаборыДанных.Вставить("Данные", ОбщиеРеквизитыПечатныхФорм(Объекты, ДополнительныеПараметры)); Возврат; КонецЕсли; @@ -6584,7 +6782,11 @@ Возврат; КонецЕсли; - + Если ИдентификаторСхемыКомпоновкиДанных = "ДанныеПредопределенныеЗначения" Тогда + ВнешниеНаборыДанных.Вставить("Данные", ДанныеПечатиПредопределенныеЗначения(Объекты, ДополнительныеПараметры)); + Возврат; + КонецЕсли; + Если ОбщегоНазначения.ПодсистемаСуществует("СтандартныеПодсистемы.Мультиязычность.Печать") Тогда МодульУправлениеПечатьюМультиязычность = ОбщегоНазначения.ОбщийМодуль("УправлениеПечатьюМультиязычность"); МодульУправлениеПечатьюМультиязычность.ПриПодготовкеДанныхПечати( @@ -6596,8 +6798,8 @@ КонецПроцедуры -Функция ОбщиеРеквизитыПечатныхФорм(Объекты) - +Функция ОбщиеРеквизитыПечатныхФорм(Объекты, ДополнительныеПараметры) + ОбщиеРеквизиты = Новый Структура; ОбщиеРеквизиты.Вставить("ТекущаяДата", ТекущаяДатаСеанса()); ОбщиеРеквизиты.Вставить("ТекущийПользователь", Пользователи.ТекущийПользователь()); @@ -6608,6 +6810,32 @@ ОбщиеРеквизиты.Вставить("ОбратныйАдрес", ""); ОбщиеРеквизиты.Вставить("ШтампЭП", ""); + МассивИменИсточников = Новый Массив; // Массив из Тип + Для Каждого ТекущийОбъект Из Объекты Цикл + + ТипОбъекта = ТипЗнч(ТекущийОбъект); + Если МассивИменИсточников.Найти(ТипОбъекта) = Неопределено Тогда + + ТаблицаОбщихПолей = НоваяТаблицаОбщихПолейДляПечати(); + УправлениеПечатьюПереопределяемый.ПриЗаполненииСпискаОбщихПолей(ТипОбъекта, ТаблицаОбщихПолей); + Для Каждого СтрокаТаблицы Из ТаблицаОбщихПолей Цикл + + Идентификатор = СтрокаТаблицы.Идентификатор; + Идентификатор = + СтандартныеПодсистемыСервер.ПреобразоватьСтрокуВДопустимоеНаименованиеКолонки(Идентификатор); + Если НЕ ОбщиеРеквизиты.Свойство(Идентификатор) Тогда + ОбщиеРеквизиты.Вставить(Идентификатор, СтрокаТаблицы.Значение); + КонецЕсли; + + КонецЦикла; + МассивИменИсточников.Добавить(ТипОбъекта); + + КонецЕсли; + + КонецЦикла; + + ДополнитьОбщиеРеквизитыПоПолямКомпоновки(ДополнительныеПараметры, ОбщиеРеквизиты); + Результат = Новый ТаблицаЗначений(); Результат.Колонки.Добавить("Ссылка"); Для Каждого Реквизит Из ОбщиеРеквизиты Цикл @@ -6624,6 +6852,23 @@ КонецФункции +Процедура ДополнитьОбщиеРеквизитыПоПолямКомпоновки(ДополнительныеПараметры, ОбщиеРеквизиты) + + Если ДополнительныеПараметры.Свойство("ПоляКомпоновкиОбщихРеквизитов") Тогда + + ПоляКомпоновкиОбщихРеквизитов = ДополнительныеПараметры.ПоляКомпоновкиОбщихРеквизитов; + Для Каждого ИмяПоля Из ПоляКомпоновкиОбщихРеквизитов Цикл + + Если НЕ ОбщиеРеквизиты.Свойство(ИмяПоля) Тогда + ОбщиеРеквизиты.Вставить(ИмяПоля, ""); + КонецЕсли; + + КонецЦикла; + + КонецЕсли; + +КонецПроцедуры + Функция СхемаКомпоновкиДанных(ТекстЗапроса) СхемаКомпоновкиДанных = Новый СхемаКомпоновкиДанных; @@ -7498,8 +7743,9 @@ // ДеревоXML - см. УправлениеПечатьюСлужебный.ПрочитатьXMLВДерево // ДеревоМакета - см. ИнициализироватьМакетОфисногоДокументаСКД // ДобавлятьСвязи - Булево - добавлять связи +// ИмяКолонтитула - Строка - имя колонтитула для установки значения в колонтитул документа // -Процедура УстановитьПараметрыВДереве(Знач ЗначенияПараметров, ДеревоXML, ДеревоМакета = Неопределено, ДобавлятьСвязи = Истина) +Процедура УстановитьПараметрыВДереве(Знач ЗначенияПараметров, ДеревоXML, ДеревоМакета = Неопределено, ДобавлятьСвязи = Истина, ИмяКолонтитула = "") ТаблицаСортировки = Новый ТаблицаЗначений(); ТаблицаСортировки.Колонки.Добавить("Ключ"); @@ -7520,7 +7766,7 @@ Для Каждого Узел Из МассивУзлов Цикл Если Узел.Строки.Количество() = 0 ИЛИ Узел.ИмяТега = "w:hyperlink" Тогда - УправлениеПечатьюСлужебный.УстановитьЗначениеВДокумент(Узел, СоответствиеЗамены, ДеревоМакета, ДобавлятьСвязи); + УправлениеПечатьюСлужебный.УстановитьЗначениеВДокумент(Узел, СоответствиеЗамены, ДеревоМакета, ДобавлятьСвязи, ИмяКолонтитула); Иначе МассивСобранныхУзлов = СобратьСтроки(Узел); Если МассивСобранныхУзлов = Неопределено Тогда @@ -7555,12 +7801,50 @@ КонецФункции -Функция КоллекцияПолейОбщиеРеквизиты() +Функция КоллекцияПолейОбщиеРеквизиты(ТипыИсточников) - Возврат КонструкторФормул.КоллекцияПолей(ПолучитьОбщийМакет("ДанныеПечатиОбщиеРеквизиты")); + СхемаКомпоновкиДанных = ПолучитьОбщийМакет("ДанныеПечатиОбщиеРеквизиты"); + ДополнитьСхемуКомпоновкиОбщихПолей(ТипыИсточников, СхемаКомпоновкиДанных); + Возврат КонструкторФормул.КоллекцияПолей(СхемаКомпоновкиДанных); КонецФункции +Процедура ДополнитьСхемуКомпоновкиОбщихПолей(ТипыИсточников, СхемаКомпоновкиДанных) + + ТаблицаОбщихПолей = НоваяТаблицаОбщихПолейДляПечати(); + + Для Каждого ТипОбъекта Из ТипыИсточников Цикл + + ТаблицаОбщихПолей = НоваяТаблицаОбщихПолейДляПечати(); + УправлениеПечатьюПереопределяемый.ПриЗаполненииСпискаОбщихПолей(ТипОбъекта, ТаблицаОбщихПолей); + + Для Каждого СтрокаТаблицы Из ТаблицаОбщихПолей Цикл + + Идентификатор = СтрокаТаблицы.Идентификатор; + Идентификатор = СтандартныеПодсистемыСервер.ПреобразоватьСтрокуВДопустимоеНаименованиеКолонки(Идентификатор); + ПутьКДанным = "ОбщиеРеквизиты." + Идентификатор; + + Поля = СхемаКомпоновкиДанных.НаборыДанных.НаборДанных1.Поля; // ПоляНабораДанныхСхемыКомпоновкиДанных + Если Поля.Найти(ПутьКДанным) = Неопределено Тогда + + НовоеПоле = Поля.Добавить(Тип("ПолеНабораДанныхСхемыКомпоновкиДанных")); + НовоеПоле.Поле = Идентификатор; + НовоеПоле.ПутьКДанным = "ОбщиеРеквизиты." + Идентификатор; + НовоеПоле.Заголовок = СтрокаТаблицы.Представление; + + Тип = ТипЗнч(СтрокаТаблицы.Значение); + МассивТипов = Новый Массив; // Массив из Тип + МассивТипов.Добавить(Тип); + НовоеПоле.ТипЗначения = Новый ОписаниеТипов(МассивТипов); + + КонецЕсли; + + КонецЦикла; + + КонецЦикла; + +КонецПроцедуры + Функция ПолучитьПропущенногоРодителя(СтрокаДобавления, ДеревоДляВывода) Родители = Новый Массив; НайтиПропущенныхРодителей(Родители, ДеревоДляВывода, СтрокаДобавления); @@ -8195,6 +8479,449 @@ КонецФункции +Процедура ПодключитьПредопределенныеЗначения(ИсточникиПолей, ОбъектМетаданных, ТипИсточникаПолей) + + МассивОбъектовМетаданных = Новый Массив; // Массив из ОбъектМетаданных + Если ОбъектМетаданных <> Неопределено Тогда + + Если ОбъектСОбрабатываемымиПредопределеннымиЗначениями(ОбъектМетаданных) Тогда + МассивОбъектовМетаданных.Добавить(ОбъектМетаданных); + КонецЕсли; + + ИначеЕсли ТипЗнч(ТипИсточникаПолей) = Тип("ОписаниеТипов") Тогда + + МассивТипов = Новый Массив; // Массив из Тип + Для Каждого Тип Из ТипИсточникаПолей.Типы() Цикл + + Если МассивТипов.Найти(Тип) = Неопределено + И ОбъектСОбрабатываемымиПредопределеннымиЗначениями(Тип) Тогда + + МассивТипов.Добавить(Тип); + МассивОбъектовМетаданных.Добавить(Метаданные.НайтиПоТипу(Тип)); + + КонецЕсли; + + КонецЦикла; + + КонецЕсли; + + Если МассивОбъектовМетаданных.Количество() > 0 Тогда + + СхемаПредопределенныеЗначения = СхемаПредопределенныеЗначения(МассивОбъектовМетаданных); + Если СхемаПредопределенныеЗначения <> Неопределено Тогда + ИсточникиПолей.Добавить(СхемаПредопределенныеЗначения, "ДанныеПредопределенныеЗначения"); + КонецЕсли; + + КонецЕсли; + +КонецПроцедуры + +Функция СхемаПредопределенныеЗначения(МассивОбъектовМетаданных) + + СписокПолей = ДеревоПолейДанныхПечати(); + ТаблицаИсточниковСПредопределеннымиЗначениями = НоваяТаблицаПредопределенныхЗначенийИсточников(); + ТаблицаИсточниковПеречислений = НоваяТаблицаПредопределенныхЗначенийИсточников(); + + Для Каждого ОбъектМетаданных Из МассивОбъектовМетаданных Цикл + + Менеджер = ОбщегоНазначения.МенеджерОбъектаПоПолномуИмени(ОбъектМетаданных.ПолноеИмя()); + ВидОбъекта = ОбщегоНазначения.ВидОбъектаПоТипу(ТипЗнч(Менеджер.ПустаяСсылка())); + + Если ВидОбъекта = "Справочник" + ИЛИ ВидОбъекта = "ПланВидовХарактеристик" + ИЛИ ВидОбъекта = "ПланВидовРасчета" + ИЛИ ВидОбъекта = "ПланСчетов" Тогда + НоваяСтрока = ТаблицаИсточниковСПредопределеннымиЗначениями.Добавить(); + Иначе + НоваяСтрока = ТаблицаИсточниковПеречислений.Добавить(); + КонецЕсли; + + ИмяИсточника = ОбъектМетаданных.Имя; + НоваяСтрока.ИмяИсточника = ИмяИсточника; + НоваяСтрока.ВидИсточника = ВидОбъекта; + НоваяСтрока.ИдентификаторИсточника = ВидОбъекта + "_" + ИмяИсточника; + НоваяСтрока.СинонимИсточника = ОбъектМетаданных.Синоним; + + КонецЦикла; + + ТаблицаПредопределенныхЗначенийИсточников = + ПредопределенныеЗначенияИсточников(ТаблицаИсточниковСПредопределеннымиЗначениями, ТаблицаИсточниковПеречислений); + + Если ТаблицаПредопределенныхЗначенийИсточников.Количество() > 0 Тогда + + Поле = СписокПолей.Строки.Добавить(); + Поле.Идентификатор = "Ссылка"; + Поле.Представление = НСтр("ru = 'Ссылка'"); + Поле.ТипЗначения = Новый ОписаниеТипов(); + + Группа = СписокПолей.Строки.Добавить(); + Группа.Идентификатор = "ГруппаПредопределенныеЗначения"; + Группа.Представление = НСтр("ru = 'Предопределенные значения'"); + Группа.Порядок = 1; + Группа.Папка = Истина; + + СчетчикПорядок = 0; + + Для Каждого ИсточникПредопределенногоЗначения Из ТаблицаПредопределенныхЗначенийИсточников Цикл + + СчетчикПорядок = СчетчикПорядок + 1; + + ГруппаТипа = Группа.Строки.Добавить(); + ГруппаТипа.Идентификатор = ИсточникПредопределенногоЗначения.ИдентификаторИсточника; + ГруппаТипа.Представление = ИсточникПредопределенногоЗначения.СинонимИсточника; + ГруппаТипа.Порядок = СчетчикПорядок; + ГруппаТипа.Папка = Истина; + + ПредопределенныеЗначения = ИсточникПредопределенногоЗначения.ПредопределенныеЗначения; + + Счетчик = 0; + Для Каждого ТекущееЗначение Из ПредопределенныеЗначения Цикл + + Счетчик = Счетчик + 1; + МассивТипов = Новый Массив; // Массив из Тип + МассивТипов.Добавить(ТипЗнч(ТекущееЗначение.Значение)); + + Поле = ГруппаТипа.Строки.Добавить(); + Поле.Идентификатор = ТекущееЗначение.ИдентификаторЗначения; + Поле.Представление = ТекущееЗначение.Представление; + Поле.ТипЗначения = Новый ОписаниеТипов(МассивТипов); + Поле.Порядок = Счетчик; + + КонецЦикла; + + КонецЦикла; + + КонецЕсли; + + Возврат СхемаКомпоновкиДанныхПечати(СписокПолей); + +КонецФункции + +Функция ДанныеПечатиПредопределенныеЗначения(Объекты, ДополнительныеПараметры) + + ДанныеПечати = Новый ТаблицаЗначений(); + ДанныеПечати.Колонки.Добавить("Ссылка"); + ТипИсточникаПолей = ДополнительныеПараметры.ТипИсточникаПолей; + МассивТипов = Новый Массив; // Массив из Тип + + Для Каждого Тип Из ТипИсточникаПолей.Типы() Цикл + + Если МассивТипов.Найти(Тип) = Неопределено + И ОбъектСОбрабатываемымиПредопределеннымиЗначениями(Тип) Тогда + + МассивТипов.Добавить(Тип); + + КонецЕсли; + + КонецЦикла; + + ТаблицаИсточниковСПредопределеннымиЗначениями = НоваяТаблицаПредопределенныхЗначенийИсточников(); + ТаблицаИсточниковПеречислений = НоваяТаблицаПредопределенныхЗначенийИсточников(); + + ЗаполнитьТаблицыИсточников( + МассивТипов, + ТаблицаИсточниковСПредопределеннымиЗначениями, + ТаблицаИсточниковПеречислений); + + ТаблицаПредопределенныхЗначенийИсточников = ПредопределенныеЗначенияИсточников( + ТаблицаИсточниковСПредопределеннымиЗначениями, + ТаблицаИсточниковПеречислений); + + ДополнитьДанныеПечатиПредопределеннымиЗначениями(ДанныеПечати, ТаблицаПредопределенныхЗначенийИсточников); + + Для Каждого Объект Из Объекты Цикл + + НоваяСтрока = ДанныеПечати.Добавить(); + НоваяСтрока.Ссылка = Объект; + + Для Каждого ИсточникПредопределенногоЗначения Из ТаблицаПредопределенныхЗначенийИсточников Цикл + + ПредопределенныеЗначения = ИсточникПредопределенногоЗначения.ПредопределенныеЗначения; + Для Каждого ТекущееЗначение Из ПредопределенныеЗначения Цикл + НоваяСтрока[ТекущееЗначение.ИдентификаторЗначения] = ТекущееЗначение.Значение; + КонецЦикла; + + КонецЦикла; + + КонецЦикла; + + Возврат ДанныеПечати; + +КонецФункции + +Процедура ДополнитьДанныеПечатиПредопределеннымиЗначениями(ДанныеПечати, ТаблицаПредопределенныхЗначенийИсточников) + + Для Каждого ИсточникПредопределенногоЗначения Из ТаблицаПредопределенныхЗначенийИсточников Цикл + + ПредопределенныеЗначения = ИсточникПредопределенногоЗначения.ПредопределенныеЗначения; + Для Каждого ТекущееЗначение Из ПредопределенныеЗначения Цикл + + Если ДанныеПечати.Колонки.Найти(ТекущееЗначение.ИдентификаторЗначения) = Неопределено Тогда + ДанныеПечати.Колонки.Добавить(ТекущееЗначение.ИдентификаторЗначения); + КонецЕсли; + + КонецЦикла; + + КонецЦикла; + +КонецПроцедуры + +Процедура ЗаполнитьТаблицыИсточников(МассивТипов, ТаблицаИсточниковСПредопределеннымиЗначениями, ТаблицаИсточниковПеречислений) + + Для Каждого Тип Из МассивТипов Цикл + + ВидОбъекта = ОбщегоНазначения.ВидОбъектаПоТипу(Тип); + ОбъектМетаданных = Метаданные.НайтиПоТипу(Тип); + ИмяИсточника = ОбъектМетаданных.Имя; + + Если ВидОбъекта = "Справочник" + ИЛИ ВидОбъекта = "ПланВидовХарактеристик" + ИЛИ ВидОбъекта = "ПланВидовРасчета" + ИЛИ ВидОбъекта = "ПланСчетов" Тогда + НоваяСтрока = ТаблицаИсточниковСПредопределеннымиЗначениями.Добавить(); + Иначе + НоваяСтрока = ТаблицаИсточниковПеречислений.Добавить(); + КонецЕсли; + + НоваяСтрока.ИмяИсточника = ИмяИсточника; + НоваяСтрока.ВидИсточника = ВидОбъекта; + НоваяСтрока.ИдентификаторИсточника = ВидОбъекта + "_" + ИмяИсточника; + + КонецЦикла; + +КонецПроцедуры + +Функция ОбъектСОбрабатываемымиПредопределеннымиЗначениями(ОбъектПроверки) + + Результат = Ложь; + Если ТипЗнч(ОбъектПроверки) = Тип("ОбъектМетаданных") Тогда + + Результат = (ОбщегоНазначения.ЭтоСправочник(ОбъектПроверки) + ИЛИ ОбщегоНазначения.ЭтоПланВидовХарактеристик(ОбъектПроверки) + ИЛИ ОбщегоНазначения.ЭтоПеречисление(ОбъектПроверки) + ИЛИ ОбщегоНазначения.ЭтоПланВидовРасчета(ОбъектПроверки) + ИЛИ ОбщегоНазначения.ЭтоПланСчетов(ОбъектПроверки)); + + Иначе + + Результат = (Справочники.ТипВсеСсылки().СодержитТип(ОбъектПроверки) + ИЛИ ПланыВидовХарактеристик.ТипВсеСсылки().СодержитТип(ОбъектПроверки) + ИЛИ Перечисления.ТипВсеСсылки().СодержитТип(ОбъектПроверки) + ИЛИ ПланыВидовРасчета.ТипВсеСсылки().СодержитТип(ОбъектПроверки) + ИЛИ ПланыСчетов.ТипВсеСсылки().СодержитТип(ОбъектПроверки)) + + КонецЕсли; + + Возврат Результат; + +КонецФункции + +Функция ЗначенияПеречисления(ВидОбъекта, ИмяИсточника) + + ТаблицаПредопределенныхЗначений = НоваяТаблицаПредопределенныхЗначений(); + + Счетчик = 0; + Для Каждого ЗначениеКоллекции Из Метаданные.Перечисления[ИмяИсточника].ЗначенияПеречисления Цикл + + НоваяСтрока = ТаблицаПредопределенныхЗначений.Добавить(); + ИдентификаторЗначения = ИдентификаторЗначенияПоПолномуПути( + ВидОбъекта, + ИмяИсточника, + ЗначениеКоллекции.Имя); + НоваяСтрока.ИдентификаторЗначения = ИдентификаторЗначения; + НоваяСтрока.Представление = ЗначениеКоллекции.Синоним; + НоваяСтрока.Значение = Перечисления[ИмяИсточника][Счетчик]; + Счетчик = Счетчик + 1; + + КонецЦикла; + + Возврат ТаблицаПредопределенныхЗначений; + +КонецФункции + +Функция ПредопределенныеЗначения(ТаблицаИсточников) + + ТаблицаПредопределенныхЗначенийИсточников = НоваяТаблицаПредопределенныхЗначенийИсточников(); + + Если ТаблицаИсточников.Количество() = 0 Тогда + + Возврат ТаблицаПредопределенныхЗначенийИсточников; + + КонецЕсли; + + ТекстЗапросаШаблон = + "ВЫБРАТЬ + | &НомерИдентификатораИсточника КАК НомерИдентификатораИсточника, + | ИсточникДанных.Ссылка КАК Значение, + | ИсточникДанных.Представление КАК Представление, + | ИсточникДанных.ИмяПредопределенныхДанных КАК ИдентификаторЗначения + |ИЗ + | &ПолноеИмяИсточника КАК ИсточникДанных + |ГДЕ + | ИсточникДанных.Предопределенный + | + |УПОРЯДОЧИТЬ ПО + | Представление + |ИТОГИ ПО + | НомерИдентификатораИсточника"; + + МассивЗапросов = Новый Массив; + СчетчикСтрок = 0; + СоответствиеНомерИдентификатораИсточника = Новый Соответствие; + Для Каждого ТекущийИсточник Из ТаблицаИсточников Цикл + + СчетчикСтрок = СчетчикСтрок + 1; + ИдентификаторИсточника = ТекущийИсточник.ИдентификаторИсточника; + СоответствиеНомерИдентификатораИсточника.Вставить(СчетчикСтрок, ИдентификаторИсточника); + ПолноеИмяИсточника = ТекущийИсточник.ВидИсточника + "." + ТекущийИсточник.ИмяИсточника; + + ТекстЗапроса = СтрЗаменить(ТекстЗапросаШаблон, "&ПолноеИмяИсточника", ПолноеИмяИсточника); + ТекстЗапроса = СтрЗаменить(ТекстЗапроса, "&НомерИдентификатораИсточника", СчетчикСтрок); + МассивЗапросов.Добавить(ТекстЗапроса); + + КонецЦикла; + ТекстЗапроса = СтрСоединить(МассивЗапросов, ОбщегоНазначения.РазделительПакетаЗапросов()); + + Запрос = Новый Запрос; + Запрос.Текст = ТекстЗапроса; + Результат = Запрос.ВыполнитьПакет(); + Граница = Результат.ВГраница(); + + Для Счетчик = 0 По Граница Цикл + + ВыборкаПоИсточнику = Результат[Счетчик].Выбрать(ОбходРезультатаЗапроса.ПоГруппировкам); + Если ВыборкаПоИсточнику.Следующий() Тогда + + Выборка = ВыборкаПоИсточнику.Выбрать(); + Если Выборка.Количество() > 0 Тогда + + НоваяСтрока = ТаблицаПредопределенныхЗначенийИсточников.Добавить(); + ИдентификаторИсточника = + СоответствиеНомерИдентификатораИсточника[ВыборкаПоИсточнику.НомерИдентификатораИсточника]; + СтрокаТаблицыИсточников = ТаблицаИсточников.Найти(ИдентификаторИсточника, "ИдентификаторИсточника"); + ЗаполнитьЗначенияСвойств(НоваяСтрока, СтрокаТаблицыИсточников); + НоваяСтрока.ПредопределенныеЗначения = ТаблицаПредопределенныхЗначений(Выборка, НоваяСтрока); + + КонецЕсли; + + КонецЕсли; + + КонецЦикла; + + Возврат ТаблицаПредопределенныхЗначенийИсточников; + +КонецФункции + +Функция ТаблицаПредопределенныхЗначений(Выборка, НоваяСтрокаИсточника) + + ПредопределенныеЗначения = НоваяТаблицаПредопределенныхЗначений(); + Пока Выборка.Следующий() Цикл + + НоваяСтрокаЗначений = ПредопределенныеЗначения.Добавить(); + ЗаполнитьЗначенияСвойств(НоваяСтрокаЗначений, НоваяСтрокаИсточника); + ЗаполнитьЗначенияСвойств(НоваяСтрокаЗначений, Выборка); + ИдентификаторЗначения = ИдентификаторЗначенияПоПолномуПути( + НоваяСтрокаИсточника.ВидИсточника, + НоваяСтрокаИсточника.ИмяИсточника, + НоваяСтрокаЗначений.ИдентификаторЗначения); + + НоваяСтрокаЗначений.ИдентификаторИсточника = ИдентификаторЗначения; + + КонецЦикла; + + Возврат ПредопределенныеЗначения; + +КонецФункции + +Функция ПредопределенныеЗначенияИсточников(ТаблицаИсточниковСПредопределеннымиЗначениями, ТаблицаИсточниковПеречислений) + + ТаблицаПредопределенныхЗначенийИсточников = ПредопределенныеЗначения(ТаблицаИсточниковСПредопределеннымиЗначениями); + + Для Каждого ТекущийИсточник Из ТаблицаИсточниковПеречислений Цикл + + ИмяИсточника = ТекущийИсточник.ИмяИсточника; + ВидИсточника = ТекущийИсточник.ВидИсточника; + + НоваяСтрока = ТаблицаПредопределенныхЗначенийИсточников.Добавить(); + НоваяСтрока.ИмяИсточника = ВидИсточника; + НоваяСтрока.ИмяИсточника = ИмяИсточника; + НоваяСтрока.СинонимИсточника = ТекущийИсточник.СинонимИсточника; + НоваяСтрока.ИдентификаторИсточника = ВидИсточника + "_" + ИмяИсточника; + НоваяСтрока.ПредопределенныеЗначения = ЗначенияПеречисления(ВидИсточника, ИмяИсточника); + + КонецЦикла; + + Возврат ТаблицаПредопределенныхЗначенийИсточников; + +КонецФункции + +Функция ИдентификаторЗначенияПоПолномуПути(Знач ВидОбъекта = "", Знач ИмяИсточника = "", Знач ИдентификаторЗначения = "") + + МассивИдентификаторов = Новый Массив; // Массив из Строка + Если НЕ ПустаяСтрока(ВидОбъекта) Тогда + МассивИдентификаторов.Добавить(ВидОбъекта); + КонецЕсли; + Если НЕ ПустаяСтрока(ИмяИсточника) Тогда + МассивИдентификаторов.Добавить(ИмяИсточника); + КонецЕсли; + Если НЕ ПустаяСтрока(ИдентификаторЗначения) Тогда + + ИдентификаторЗначения = + СтандартныеПодсистемыСервер.ПреобразоватьСтрокуВДопустимоеНаименованиеКолонки(ИдентификаторЗначения); + МассивИдентификаторов.Добавить(ИдентификаторЗначения); + + КонецЕсли; + Идентификатор = СтрСоединить(МассивИдентификаторов, "_"); + + Возврат Идентификатор; + +КонецФункции + +Функция НоваяТаблицаПредопределенныхЗначенийИсточников() + + ОписаниеТиповСтрока = Новый ОписаниеТипов("Строка"); + ТаблицаЗначений = Новый ТаблицаЗначений; + ТаблицаЗначений.Колонки.Добавить("ИмяИсточника", ОписаниеТиповСтрока); + ТаблицаЗначений.Колонки.Добавить("ВидИсточника", ОписаниеТиповСтрока); + ТаблицаЗначений.Колонки.Добавить("СинонимИсточника", ОписаниеТиповСтрока); + ТаблицаЗначений.Колонки.Добавить("ИдентификаторИсточника", ОписаниеТиповСтрока); + ТаблицаЗначений.Колонки.Добавить("ПредопределенныеЗначения", Новый ОписаниеТипов("ТаблицаЗначений")); + + Возврат ТаблицаЗначений; + +КонецФункции + +Функция НоваяТаблицаПредопределенныхЗначений() + + ОписаниеТиповСтрока = Новый ОписаниеТипов("Строка"); + ТаблицаЗначений = Новый ТаблицаЗначений; + ТаблицаЗначений.Колонки.Добавить("ИдентификаторИсточника", ОписаниеТиповСтрока); + ТаблицаЗначений.Колонки.Добавить("ИдентификаторЗначения", ОписаниеТиповСтрока); + ТаблицаЗначений.Колонки.Добавить("Представление", ОписаниеТиповСтрока); + ТаблицаЗначений.Колонки.Добавить("Значение", Новый ОписаниеТипов()); + + Возврат ТаблицаЗначений; + +КонецФункции + +// Возвращаемое значение: +// ТаблицаЗначений - таблица общих полей для печати: +// * Идентификатор - Строка - имя поля. +// * Представление - Строка - заголовок поля. +// * Значение - Произвольный - значение общего поля. +// +Функция НоваяТаблицаОбщихПолейДляПечати() + + ОписаниеТиповСтрока = Новый ОписаниеТипов("Строка"); + ТаблицаЗначений = Новый ТаблицаЗначений; + ТаблицаЗначений.Колонки.Добавить("Идентификатор", ОписаниеТиповСтрока); + ТаблицаЗначений.Колонки.Добавить("Представление", ОписаниеТиповСтрока); + ТаблицаЗначений.Колонки.Добавить("Значение"); + + Возврат ТаблицаЗначений; + +КонецФункции + // См. СтандартныеПодсистемыСервер.ПриОпределенииМетодовРазрешенныхДляВызоваКакПроизвольныйКод Процедура ПриОпределенииМетодовРазрешенныхДляВызоваКакПроизвольныйКод(Методы) Экспорт diff --git a/SSL/src/CommonModules/УправлениеПечатьюMSWordКлиент/Module.bsl b/SSL/src/CommonModules/УправлениеПечатьюMSWordКлиент/Module.bsl index cfaf65b8e..81eef356c 100644 --- a/SSL/src/CommonModules/УправлениеПечатьюMSWordКлиент/Module.bsl +++ b/SSL/src/CommonModules/УправлениеПечатьюMSWordКлиент/Module.bsl @@ -1,5 +1,5 @@ /////////////////////////////////////////////////////////////////////////////////////////////////////// -// Copyright (c) 2024, ООО 1С-Софт +// Copyright (c) 2025, ООО 1С-Софт // Все права защищены. Эта программа и сопроводительные материалы предоставляются // в соответствии с условиями лицензии Attribution 4.0 International (CC BY 4.0) // Текст лицензии доступен по ссылке: diff --git a/SSL/src/CommonModules/УправлениеПечатьюOOWriterКлиент/Module.bsl b/SSL/src/CommonModules/УправлениеПечатьюOOWriterКлиент/Module.bsl index 56ac22ff1..d82b94027 100644 --- a/SSL/src/CommonModules/УправлениеПечатьюOOWriterКлиент/Module.bsl +++ b/SSL/src/CommonModules/УправлениеПечатьюOOWriterКлиент/Module.bsl @@ -1,5 +1,5 @@ /////////////////////////////////////////////////////////////////////////////////////////////////////// -// Copyright (c) 2024, ООО 1С-Софт +// Copyright (c) 2025, ООО 1С-Софт // Все права защищены. Эта программа и сопроводительные материалы предоставляются // в соответствии с условиями лицензии Attribution 4.0 International (CC BY 4.0) // Текст лицензии доступен по ссылке: diff --git a/SSL/src/CommonModules/УправлениеПечатьюВызовСервера/Module.bsl b/SSL/src/CommonModules/УправлениеПечатьюВызовСервера/Module.bsl index 51be702bf..7ddaee5fb 100644 --- a/SSL/src/CommonModules/УправлениеПечатьюВызовСервера/Module.bsl +++ b/SSL/src/CommonModules/УправлениеПечатьюВызовСервера/Module.bsl @@ -1,5 +1,5 @@ /////////////////////////////////////////////////////////////////////////////////////////////////////// -// Copyright (c) 2024, ООО 1С-Софт +// Copyright (c) 2025, ООО 1С-Софт // Все права защищены. Эта программа и сопроводительные материалы предоставляются // в соответствии с условиями лицензии Attribution 4.0 International (CC BY 4.0) // Текст лицензии доступен по ссылке: diff --git a/SSL/src/CommonModules/УправлениеПечатьюГлобальный/Module.bsl b/SSL/src/CommonModules/УправлениеПечатьюГлобальный/Module.bsl index c82ecad2a..dd42f725e 100644 --- a/SSL/src/CommonModules/УправлениеПечатьюГлобальный/Module.bsl +++ b/SSL/src/CommonModules/УправлениеПечатьюГлобальный/Module.bsl @@ -1,5 +1,5 @@ /////////////////////////////////////////////////////////////////////////////////////////////////////// -// Copyright (c) 2024, ООО 1С-Софт +// Copyright (c) 2025, ООО 1С-Софт // Все права защищены. Эта программа и сопроводительные материалы предоставляются // в соответствии с условиями лицензии Attribution 4.0 International (CC BY 4.0) // Текст лицензии доступен по ссылке: diff --git a/SSL/src/CommonModules/УправлениеПечатьюКлиент/Module.bsl b/SSL/src/CommonModules/УправлениеПечатьюКлиент/Module.bsl index cf5169554..2c65461d6 100644 --- a/SSL/src/CommonModules/УправлениеПечатьюКлиент/Module.bsl +++ b/SSL/src/CommonModules/УправлениеПечатьюКлиент/Module.bsl @@ -1,5 +1,5 @@ /////////////////////////////////////////////////////////////////////////////////////////////////////// -// Copyright (c) 2024, ООО 1С-Софт +// Copyright (c) 2025, ООО 1С-Софт // Все права защищены. Эта программа и сопроводительные материалы предоставляются // в соответствии с условиями лицензии Attribution 4.0 International (CC BY 4.0) // Текст лицензии доступен по ссылке: diff --git a/SSL/src/CommonModules/УправлениеПечатьюКлиентПереопределяемый/Module.bsl b/SSL/src/CommonModules/УправлениеПечатьюКлиентПереопределяемый/Module.bsl index 221b2043f..c4f00cefe 100644 --- a/SSL/src/CommonModules/УправлениеПечатьюКлиентПереопределяемый/Module.bsl +++ b/SSL/src/CommonModules/УправлениеПечатьюКлиентПереопределяемый/Module.bsl @@ -1,5 +1,5 @@ /////////////////////////////////////////////////////////////////////////////////////////////////////// -// Copyright (c) 2024, ООО 1С-Софт +// Copyright (c) 2025, ООО 1С-Софт // Все права защищены. Эта программа и сопроводительные материалы предоставляются // в соответствии с условиями лицензии Attribution 4.0 International (CC BY 4.0) // Текст лицензии доступен по ссылке: diff --git a/SSL/src/CommonModules/УправлениеПечатьюКлиентСервер/Module.bsl b/SSL/src/CommonModules/УправлениеПечатьюКлиентСервер/Module.bsl index f4df52e89..38985063d 100644 --- a/SSL/src/CommonModules/УправлениеПечатьюКлиентСервер/Module.bsl +++ b/SSL/src/CommonModules/УправлениеПечатьюКлиентСервер/Module.bsl @@ -1,5 +1,5 @@ /////////////////////////////////////////////////////////////////////////////////////////////////////// -// Copyright (c) 2024, ООО 1С-Софт +// Copyright (c) 2025, ООО 1С-Софт // Все права защищены. Эта программа и сопроводительные материалы предоставляются // в соответствии с условиями лицензии Attribution 4.0 International (CC BY 4.0) // Текст лицензии доступен по ссылке: diff --git a/SSL/src/CommonModules/УправлениеПечатьюМультиязычность/Module.bsl b/SSL/src/CommonModules/УправлениеПечатьюМультиязычность/Module.bsl index 02add4ac1..d3c4deaff 100644 --- a/SSL/src/CommonModules/УправлениеПечатьюМультиязычность/Module.bsl +++ b/SSL/src/CommonModules/УправлениеПечатьюМультиязычность/Module.bsl @@ -1,5 +1,5 @@ /////////////////////////////////////////////////////////////////////////////////////////////////////// -// Copyright (c) 2024, ООО 1С-Софт +// Copyright (c) 2025, ООО 1С-Софт // Все права защищены. Эта программа и сопроводительные материалы предоставляются // в соответствии с условиями лицензии Attribution 4.0 International (CC BY 4.0) // Текст лицензии доступен по ссылке: diff --git a/SSL/src/CommonModules/УправлениеПечатьюМультиязычностьКлиент/Module.bsl b/SSL/src/CommonModules/УправлениеПечатьюМультиязычностьКлиент/Module.bsl index 20a0a98eb..e7887580a 100644 --- a/SSL/src/CommonModules/УправлениеПечатьюМультиязычностьКлиент/Module.bsl +++ b/SSL/src/CommonModules/УправлениеПечатьюМультиязычностьКлиент/Module.bsl @@ -1,5 +1,5 @@ /////////////////////////////////////////////////////////////////////////////////////////////////////// -// Copyright (c) 2024, ООО 1С-Софт +// Copyright (c) 2025, ООО 1С-Софт // Все права защищены. Эта программа и сопроводительные материалы предоставляются // в соответствии с условиями лицензии Attribution 4.0 International (CC BY 4.0) // Текст лицензии доступен по ссылке: diff --git a/SSL/src/CommonModules/УправлениеПечатьюМультиязычностьПереопределяемый/Module.bsl b/SSL/src/CommonModules/УправлениеПечатьюМультиязычностьПереопределяемый/Module.bsl index a6243928b..723e82383 100644 --- a/SSL/src/CommonModules/УправлениеПечатьюМультиязычностьПереопределяемый/Module.bsl +++ b/SSL/src/CommonModules/УправлениеПечатьюМультиязычностьПереопределяемый/Module.bsl @@ -1,5 +1,5 @@ /////////////////////////////////////////////////////////////////////////////////////////////////////// -// Copyright (c) 2024, ООО 1С-Софт +// Copyright (c) 2025, ООО 1С-Софт // Все права защищены. Эта программа и сопроводительные материалы предоставляются // в соответствии с условиями лицензии Attribution 4.0 International (CC BY 4.0) // Текст лицензии доступен по ссылке: diff --git a/SSL/src/CommonModules/УправлениеПечатьюПереопределяемый/Module.bsl b/SSL/src/CommonModules/УправлениеПечатьюПереопределяемый/Module.bsl index ada3ab8f1..5ca71409d 100644 --- a/SSL/src/CommonModules/УправлениеПечатьюПереопределяемый/Module.bsl +++ b/SSL/src/CommonModules/УправлениеПечатьюПереопределяемый/Module.bsl @@ -1,5 +1,5 @@ /////////////////////////////////////////////////////////////////////////////////////////////////////// -// Copyright (c) 2024, ООО 1С-Софт +// Copyright (c) 2025, ООО 1С-Софт // Все права защищены. Эта программа и сопроводительные материалы предоставляются // в соответствии с условиями лицензии Attribution 4.0 International (CC BY 4.0) // Текст лицензии доступен по ссылке: @@ -374,6 +374,36 @@ +КонецПроцедуры + +// Формирует таблицу общих полей объекта. +// +// Параметры: +// ТипОбъектаПечати - Тип - возможные типы ссылок СправочникСсылка, ДокументСсылка, ПланВидовХарактеристикСсылка, +// ПланСчетовСсылка, ПланВидовРасчетаСсылка, БизнесПроцессСсылка, ЗадачаСсылка +// ТаблицаОбщихПолей - ТаблицаЗначений: +// * Идентификатор - Строка - имя поля. +// * Представление - Строка - заголовок поля. +// * Значение - Произвольный - значение общего поля. +// Пример: +// Если ТипОбъектаПечати = Тип("ДокументСсылка.Заказ") Тогда +// +// НоваяСтрока = ТаблицаОбщихПолей.Добавить(); +// НоваяСтрока.Идентификатор = "ВалютаУпрУчета"; +// НоваяСтрока.Представление = НСтр("ru = 'Валюта (упр. учета)'"); +// НоваяСтрока.Значение = Константы.ВалютаУправленческогоУчета.Получить(); +// +// НоваяСтрока = ТаблицаОбщихПолей.Добавить(); +// НоваяСтрока.Идентификатор = "ВалютаРегУчета"; +// НоваяСтрока.Представление = НСтр("ru = 'Валюта (регл. учета)'"); +// НоваяСтрока.Значение = Константы.ВалютаРегламентированногоУчета.Получить(); +// +// КонецЕсли; +// +Процедура ПриЗаполненииСпискаОбщихПолей(ТипОбъектаПечати, ТаблицаОбщихПолей) Экспорт + + + КонецПроцедуры #Область УстаревшиеПроцедурыИФункции diff --git a/SSL/src/CommonModules/УправлениеПечатьюПовтИсп/Module.bsl b/SSL/src/CommonModules/УправлениеПечатьюПовтИсп/Module.bsl index 3f9375e6c..d0979dbe0 100644 --- a/SSL/src/CommonModules/УправлениеПечатьюПовтИсп/Module.bsl +++ b/SSL/src/CommonModules/УправлениеПечатьюПовтИсп/Module.bsl @@ -1,5 +1,5 @@ /////////////////////////////////////////////////////////////////////////////////////////////////////// -// Copyright (c) 2024, ООО 1С-Софт +// Copyright (c) 2025, ООО 1С-Софт // Все права защищены. Эта программа и сопроводительные материалы предоставляются // в соответствии с условиями лицензии Attribution 4.0 International (CC BY 4.0) // Текст лицензии доступен по ссылке: diff --git a/SSL/src/CommonModules/УправлениеПечатьюРФ/Module.bsl b/SSL/src/CommonModules/УправлениеПечатьюРФ/Module.bsl index d768e6b1b..04cb1d457 100644 --- a/SSL/src/CommonModules/УправлениеПечатьюРФ/Module.bsl +++ b/SSL/src/CommonModules/УправлениеПечатьюРФ/Module.bsl @@ -1,5 +1,5 @@ /////////////////////////////////////////////////////////////////////////////////////////////////////// -// Copyright (c) 2024, ООО 1С-Софт +// Copyright (c) 2025, ООО 1С-Софт // Все права защищены. Эта программа и сопроводительные материалы предоставляются // в соответствии с условиями лицензии Attribution 4.0 International (CC BY 4.0) // Текст лицензии доступен по ссылке: diff --git a/SSL/src/CommonModules/УправлениеПечатьюСлужебный/Module.bsl b/SSL/src/CommonModules/УправлениеПечатьюСлужебный/Module.bsl index 1a5893bd2..d828b0b38 100644 --- a/SSL/src/CommonModules/УправлениеПечатьюСлужебный/Module.bsl +++ b/SSL/src/CommonModules/УправлениеПечатьюСлужебный/Module.bsl @@ -1,5 +1,5 @@ /////////////////////////////////////////////////////////////////////////////////////////////////////// -// Copyright (c) 2024, ООО 1С-Софт +// Copyright (c) 2025, ООО 1С-Софт // Все права защищены. Эта программа и сопроводительные материалы предоставляются // в соответствии с условиями лицензии Attribution 4.0 International (CC BY 4.0) // Текст лицензии доступен по ссылке: @@ -257,6 +257,7 @@ Результат = Новый Структура; Результат.Вставить("Колонтитулы", Новый Соответствие); + Результат.Вставить("СвязиКолонтитулов", Новый Соответствие); Результат.Вставить("ТипыКонтента", Новый ДеревоЗначений); Результат.Вставить("СвязиКонтента", Новый ДеревоЗначений); Результат.Вставить("МаксимальныйИдентификаторСвязи"); @@ -694,18 +695,11 @@ Результат.Вставить("ПрисоединенныеОбласти", Новый Массив); Результат.Вставить("ТипыКонтента", ""); Результат.Вставить("СвязиКонтента", ""); - Результат.Вставить("ТаблицаСвязейКонтента", Новый ТаблицаЗначений); + Результат.Вставить("ТаблицаСвязейКонтента", ТаблицаСвязейКонтента()); Результат.Вставить("КаталогКартинок", ""); Результат.Вставить("РасширенияКартинок", Новый Массив); Результат.Вставить("ИдентификаторДокумента", ""); - ОписаниеЧисла = Новый ОписаниеТипов("Число"); - ОписаниеСтроки = Новый ОписаниеТипов("Строка"); - - Результат.ТаблицаСвязейКонтента.Колонки.Добавить("ИмяРесурса", ОписаниеСтроки); - Результат.ТаблицаСвязейКонтента.Колонки.Добавить("ИдРесурса", ОписаниеСтроки); - Результат.ТаблицаСвязейКонтента.Колонки.Добавить("НомерРесурса", ОписаниеЧисла); - Возврат Результат; КонецФункции @@ -744,11 +738,27 @@ Функция ОбластьКолонтитула() Результат = Новый Структура; - Результат.Вставить("Имя", ""); - Результат.Вставить("ИмяВнутр", ""); - Результат.Вставить("Текст", ""); - Результат.Вставить("НомерРаздела", 1); - Результат.Вставить("Гиперссылки", Новый Массив); + Результат.Вставить("Имя", ""); + Результат.Вставить("ИмяВнутр", ""); + Результат.Вставить("Текст", ""); + Результат.Вставить("НомерРаздела", 1); + Результат.Вставить("Гиперссылки", Новый Массив); + Результат.Вставить("СвязиКонтента", ""); + Результат.Вставить("ТаблицаСвязейКонтента", ТаблицаСвязейКонтента()); + + Возврат Результат; + +КонецФункции + +Функция ТаблицаСвязейКонтента() + + ОписаниеЧисла = Новый ОписаниеТипов("Число"); + ОписаниеСтроки = Новый ОписаниеТипов("Строка"); + + Результат = Новый ТаблицаЗначений; + Результат.Колонки.Добавить("ИмяРесурса", ОписаниеСтроки); + Результат.Колонки.Добавить("ИдРесурса", ОписаниеСтроки); + Результат.Колонки.Добавить("НомерРесурса", ОписаниеЧисла); Возврат Результат; @@ -2231,6 +2241,15 @@ КонецЦикла; ЗаписьXML.Закрыть(); + УзелСвязейКолонтитула = СтруктураДокумента.СвязиКолонтитулов.Получить(Колонтитул.Ключ); + Если УзелСвязейКолонтитула <> Неопределено И УзелСвязейКолонтитула.Строки.Количество()>0 Тогда + ИмяФайлаСвязейКолонтитула = ДеревоМакета.ИмяКаталога + УстановитьРазделительПути("\word\_rels\") + Колонтитул.Ключ + ".xml.rels"; + ЗаписьXML = Новый ЗаписьXML; + ЗаписьXML = ИнициализироватьЗаписьXML("", ИмяФайлаСвязейКолонтитула); + ПоместитьДеревоВЗаписьXML(ЗаписьXML, УзелСвязейКолонтитула); + ЗаписьXML.Закрыть(); + КонецЕсли; + МассивФайловКолонтитулов.Добавить(Колонтитул.Ключ); КонецЦикла; @@ -2295,7 +2314,7 @@ КонецПроцедуры -Процедура УстановитьЗначениеВДокумент(Узел, СоответствиеЗамены, ДеревоМакета, ДобавлятьСвязи) Экспорт +Процедура УстановитьЗначениеВДокумент(Узел, СоответствиеЗамены, ДеревоМакета, ДобавлятьСвязи, ИмяКолонтитула = "") Экспорт СтруктураДокумента = ДеревоМакета.СтруктураДокумента; Если Узел.ИмяТега = "w:hyperlink" Тогда Гиперссылки = СтруктураДокумента.Гиперссылки; @@ -2503,6 +2522,11 @@ ВнестиКартинкуВБиблиотекуДокументаСКД(ДеревоМакета, СтруктураКартинка); + + Если ЗначениеЗаполнено(ИмяКолонтитула) Тогда + ВнестиСвязьКартинкиСКолонтитуломСКД(ДеревоМакета, ИмяКолонтитула, СтруктураКартинка); + КонецЕсли; + ШаблонКартинкиXML = ПолучитьШаблонКартинки(); ПодготовитьШаблонКЧтениюXML(ШаблонКартинкиXML); ПодготовитьШаблонКартинки(ШаблонКартинкиXML, СтруктураКартинка); @@ -2559,6 +2583,49 @@ +""; КонецПроцедуры +Функция СвязьСуществуетПоИдентификатору(УзелСвязей, Идентификатор) + + Для Каждого СтрокаСвязи Из УзелСвязей.Строки Цикл + ЗначениеАтрибута = СтрокаСвязи.Атрибуты.Получить("Id"); + Если ЗначениеАтрибута = Идентификатор Тогда + Возврат Истина; + КонецЕсли; + КонецЦикла; + + Возврат Ложь; + +КонецФункции + +Процедура ВнестиСвязьКартинкиСКолонтитуломСКД(ДеревоМакета, ИмяКолонтитула, СтруктураКартинка) + + ТипКартинка = "http://schemas.openxmlformats.org/officeDocument/2006/relationships/image"; + + СвязиКолонтитулов = ДеревоМакета.СтруктураДокумента.СвязиКолонтитулов; + УзелСвязейКолонтитула = СвязиКолонтитулов.Получить(ИмяКолонтитула); + Если УзелСвязейКолонтитула = Неопределено Тогда + УзелСвязейКолонтитула = ДеревоДокумента(); + КорневойУзел = УзелСвязейКолонтитула.Строки.Добавить(); + КорневойУзел.ИмяТега = "Relationships"; + КорневойУзел.Атрибуты.Вставить("xmlns", "http://schemas.openxmlformats.org/package/2006/relationships"); + СвязиКолонтитулов.Вставить(ИмяКолонтитула, УзелСвязейКолонтитула); + КонецЕсли; + + ИдентификаторКартинки = СтруктураКартинка.rId; + УзелСвязей = УзелСвязейКолонтитула.Строки[0]; + Если НЕ СвязьСуществуетПоИдентификатору(УзелСвязей, ИдентификаторКартинки) Тогда + УзелСвязейКартинки = УзелСвязей.Строки.Добавить(); + УзелСвязейКартинки.ИмяТега = "Relationship"; + + УзелСвязейКартинки.Атрибуты.Вставить("Id", ИдентификаторКартинки); + УзелСвязейКартинки.Атрибуты.Вставить("Type", ТипКартинка); + + ИмяКартинки = СтруктураКартинка.ИмяКартинки + "." + СтруктураКартинка.РасширениеКартинки; + ИмяРесурса = "media/" + ИмяКартинки; + УзелСвязейКартинки.Атрибуты.Вставить("Target", ИмяРесурса); + КонецЕсли; + +КонецПроцедуры + Процедура ВнестиКартинкуВБиблиотекуДокументаСКД(ДеревоМакета, СтруктураКартинка) КаталогКартинок = ДеревоМакета.СтруктураДокумента.КаталогКартинок; @@ -2792,6 +2859,13 @@ ЗаписьXML.Записать(Колонтитул.Текст); ЗаписьXML.Закрыть(); + Если Не ПустаяСтрока(Колонтитул.СвязиКонтента) Тогда + ИмяФайлаСвязейКолонтитула = ПечатнаяФорма.ИмяКаталога + УстановитьРазделительПути("\word\_rels\") + Колонтитул.ИмяВнутр + ".xml.rels"; + ЗаписьТекста = Новый ЗаписьТекста(ИмяФайлаСвязейКолонтитула, КодировкаТекста.UTF8); + ЗаписьТекста.Записать(Колонтитул.СвязиКонтента); + ЗаписьТекста.Закрыть(); + КонецЕсли; + КолонтитулВыведен.Вставить(ЭлементКолонтитула.Ключ, ИСТИНА); КонецЦикла; @@ -3126,6 +3200,7 @@ ЧтениеXML = ИнициализироватьЧтениеXML(Файл.ПолноеИмя, 1); ПараметрыАнализа = Новый Структура("ТипАнализа, СтруктураАнализа", 2, Колонтитул); РазбитьТекстШаблонаНаОбласти(ЧтениеXML, СтруктураДокумента, ПараметрыАнализа); + КонецЦикла; КонецПроцедуры @@ -3206,10 +3281,12 @@ ОткрытаТаблица = Ложь; ОткрытаКлеткаТаблицы = Ложь; + ОткрытыСвойстваСтроки = Истина; УстановленАтрибутСохраненияПробелов = Ложь; - ШиринаТаблицы = 0; - ШиринаКлеткиТаблицы = 0; + ШиринаТаблицы = 0; + ШиринаКлеткиТаблицы = 0; + ВысотаСтрокиТаблицы = 0; РазрешениеОсновногоЭкрана = СтандартныеПодсистемыСервер.ПараметрыКлиентаНаСервере().Получить("РазрешениеОсновногоЭкрана"); РазрешениеОсновногоЭкрана = ?(РазрешениеОсновногоЭкрана = Неопределено, 72, РазрешениеОсновногоЭкрана); @@ -3236,6 +3313,22 @@ УстановитьШиринуПоля(ЧтениеXML, ШиринаТаблицы); КонецЕсли; + Если ОткрытаТаблица И ЧтениеНачалаСвойствСтрокиТаблицы(СтруктураРазбораXML, ЧтениеXML) Тогда + ОткрытыСвойстваСтроки = Истина; + КонецЕсли; + + Если ОткрытыСвойстваСтроки И ЧтениеВысотыСтрокиТаблицы(СтруктураРазбораXML, ЧтениеXML) Тогда + УстановитьВысотуСтроки(ЧтениеXML, ВысотаСтрокиТаблицы); + КонецЕсли; + + Если ЧтениеКонцаСвойствСтрокиТаблицы(СтруктураРазбораXML, ЧтениеXML) Тогда + ОткрытыСвойстваСтроки = Ложь; + КонецЕсли; + + Если ЧтениеКонцаСтрокиТаблицы(СтруктураРазбораXML, ЧтениеXML) Тогда + ВысотаСтрокиТаблицы = 0; + КонецЕсли; + Если ОткрытаТаблица И ЧтениеНачалаКлеткиТаблицы(СтруктураРазбораXML, ЧтениеXML) Тогда ОткрытаКлеткаТаблицы = Истина; КонецЕсли; @@ -3348,6 +3441,15 @@ КонецЕсли; КонецЕсли; + Если ВысотаСтрокиТаблицы <> 0 Тогда + МаксимальнаяВысотаКартинки = ВысотаСтрокиТаблицы * 914400 / РазрешениеОсновногоЭкрана / 20; + Если ВысотаКартинки > МаксимальнаяВысотаКартинки Тогда + КоэффициентМасштаба = МаксимальнаяВысотаКартинки / ВысотаКартинки; + ШиринаКартинки = ШиринаКартинки * КоэффициентМасштаба; + ВысотаКартинки = МаксимальнаяВысотаКартинки; + КонецЕсли; + КонецЕсли; + ШиринаКартинки = Окр(ШиринаКартинки, 0); ВысотаКартинки = Окр(ВысотаКартинки, 0); @@ -3357,6 +3459,11 @@ ВнестиКартинкуВБиблиотекуДокумента(ПечатнаяФорма.СтруктураДокумента, СтруктураКартинка); + + Если Область.Имя = "ВерхнийКолонтитул" ИЛИ Область.Имя = "НижнийКолонтитул" Тогда + ВнестиСвязьКартинкиСКолонтитулом(Область, СтруктураКартинка); + КонецЕсли; + ШаблонКартинкиXML = ПолучитьШаблонКартинки(); ПодготовитьШаблонКартинки(ШаблонКартинкиXML, СтруктураКартинка); ВнестиТекстКартинкиВДокумент(СтруктураРазбораXML.ПотокиЗаписи.Область.Поток, СтруктураКартинка); @@ -3510,6 +3617,20 @@ КонецПроцедуры +Процедура УстановитьВысотуСтроки(ЧтениеXML, ВысотаСтроки) + + ТипВысоты = ЧтениеXML.ПолучитьАтрибут("w:hRule"); + + ВысотаСтроки = 0; + Если ТипВысоты = "exact" Тогда + ЗначениеВысоты = ЧтениеXML.ПолучитьАтрибут("w:val"); + Если ЗначениеЗаполнено(ЗначениеВысоты) Тогда + ВысотаСтроки = СтроковыеФункцииКлиентСервер.СтрокаВЧисло(ЗначениеВысоты); + КонецЕсли; + КонецЕсли; + +КонецПроцедуры + Функция ПолучитьШаблонКартинки() ШаблонКартинкиXML = @@ -3589,8 +3710,47 @@ КонецПроцедуры +Процедура ВнестиСвязьКартинкиСКолонтитулом(Колонтитул, СтруктураКартинка) + + ТипКартинка = "http://schemas.openxmlformats.org/officeDocument/2006/relationships/image"; + Если ПустаяСтрока(Колонтитул.СвязиКонтента) Тогда + Колонтитул.СвязиКонтента = "" + + ""; + КонецЕсли; + + ЧтениеXML = ИнициализироватьЧтениеXML(Колонтитул.СвязиКонтента); + ЗаписьXML = ИнициализироватьЗаписьXML(""); + + ИмяРесурса = "media/" + СтруктураКартинка.ИмяКартинки + "." + СтруктураКартинка.РасширениеКартинки; + ИдРесурса = СтруктураКартинка.rId; + + Пока ЧтениеXML.Прочитать() Цикл + + Если ЧтениеXML.ТипУзла = ТипУзлаXML.КонецЭлемента И ЧтениеXML.Имя = "Relationships" Тогда + ЗаписьXML.ЗаписатьНачалоЭлемента("Relationship"); + ЗаписьXML.ЗаписатьАтрибут("Target", ИмяРесурса); + ЗаписьXML.ЗаписатьАтрибут("Type", ТипКартинка); + ЗаписьXML.ЗаписатьАтрибут("Id", ИдРесурса); + ЗаписьXML.ЗаписатьКонецЭлемента(); + + ЗаписатьЭлементXML(ЧтениеXML, ЗаписьXML); + Иначе + ЗаписатьЭлементXML(ЧтениеXML, ЗаписьXML); + КонецЕсли; + + КонецЦикла; + + ЧтениеXML.Закрыть(); + Колонтитул.СвязиКонтента = ЗаписьXML.Закрыть(); + +КонецПроцедуры + Процедура ВнестиКартинкуВБиблиотекуДокумента(СтруктураДокумента, СтруктураКартинка) + Если БезопасныйРежим() <> Ложь Тогда + УстановитьОтключениеБезопасногоРежима(Истина); + КонецЕсли; + КаталогMedia = Новый Файл(СтруктураКартинка.КаталогКартинок); ТипКартинка = "http://schemas.openxmlformats.org/officeDocument/2006/relationships/image"; @@ -4427,6 +4587,46 @@ КонецФункции +Функция ЧтениеНачалаСвойствСтрокиТаблицы(СтруктураРазбораXML, ЧтениеXML) + + Если Не ПустаяСтрока(СтруктураРазбораXML.БлокирующийПоток) Тогда + Возврат Ложь; + КонецЕсли; + + Возврат ЧтениеXML.ТипУзла = ТипУзлаXML.НачалоЭлемента И ЧтениеXML.Имя = "w:trPr"; + +КонецФункции + +Функция ЧтениеВысотыСтрокиТаблицы(СтруктураРазбораXML, ЧтениеXML) + + Если Не ПустаяСтрока(СтруктураРазбораXML.БлокирующийПоток) Тогда + Возврат Ложь; + КонецЕсли; + + Возврат ЧтениеXML.ТипУзла = ТипУзлаXML.НачалоЭлемента И ЧтениеXML.Имя = "w:trHeight"; + +КонецФункции + +Функция ЧтениеКонцаСвойствСтрокиТаблицы(СтруктураРазбораXML, ЧтениеXML) + + Если Не ПустаяСтрока(СтруктураРазбораXML.БлокирующийПоток) Тогда + Возврат Ложь; + КонецЕсли; + + Возврат ЧтениеXML.ТипУзла = ТипУзлаXML.КонецЭлемента И ЧтениеXML.Имя = "w:trPr"; + +КонецФункции + +Функция ЧтениеКонцаСтрокиТаблицы(СтруктураРазбораXML, ЧтениеXML) + + Если Не ПустаяСтрока(СтруктураРазбораXML.БлокирующийПоток) Тогда + Возврат Ложь; + КонецЕсли; + + Возврат ЧтениеXML.ТипУзла = ТипУзлаXML.КонецЭлемента И ЧтениеXML.Имя = "w:tr"; + +КонецФункции + Функция ЧтениеНачалаРаздела(СтруктураРазбораXML, ЧтениеXML) Если Не ПустаяСтрока(СтруктураРазбораXML.БлокирующийПоток) И НЕ СтруктураРазбораXML.БлокирующийПоток = "Раздел" Тогда diff --git a/SSL/src/CommonModules/УправлениеПечатьюСлужебныйКлиент/Module.bsl b/SSL/src/CommonModules/УправлениеПечатьюСлужебныйКлиент/Module.bsl index cc15484b5..5172f101a 100644 --- a/SSL/src/CommonModules/УправлениеПечатьюСлужебныйКлиент/Module.bsl +++ b/SSL/src/CommonModules/УправлениеПечатьюСлужебныйКлиент/Module.bsl @@ -1,5 +1,5 @@ /////////////////////////////////////////////////////////////////////////////////////////////////////// -// Copyright (c) 2024, ООО 1С-Софт +// Copyright (c) 2025, ООО 1С-Софт // Все права защищены. Эта программа и сопроводительные материалы предоставляются // в соответствии с условиями лицензии Attribution 4.0 International (CC BY 4.0) // Текст лицензии доступен по ссылке: diff --git a/SSL/src/CommonModules/УправлениеСвойствами/Module.bsl b/SSL/src/CommonModules/УправлениеСвойствами/Module.bsl index e05a2e9ac..147199b6e 100644 --- a/SSL/src/CommonModules/УправлениеСвойствами/Module.bsl +++ b/SSL/src/CommonModules/УправлениеСвойствами/Module.bsl @@ -1,5 +1,5 @@ /////////////////////////////////////////////////////////////////////////////////////////////////////// -// Copyright (c) 2024, ООО 1С-Софт +// Copyright (c) 2025, ООО 1С-Софт // Все права защищены. Эта программа и сопроводительные материалы предоставляются // в соответствии с условиями лицензии Attribution 4.0 International (CC BY 4.0) // Текст лицензии доступен по ссылке: @@ -1728,7 +1728,7 @@ // - ЗадачаОбъект // - ПланВидовРасчетаОбъект // - ПланСчетовОбъект -// Свойства - Массив из Соответствие: +// Свойства - Соответствие из КлючИЗначение: // * Ключ - ПланВидовХарактеристикСсылка.ДополнительныеРеквизитыИСведения - свойство, которое необходимо установить. // * Значение - Произвольный - новое значение свойства. // diff --git a/SSL/src/CommonModules/УправлениеСвойствамиКлиент/Module.bsl b/SSL/src/CommonModules/УправлениеСвойствамиКлиент/Module.bsl index fa044a2fa..46f514126 100644 --- a/SSL/src/CommonModules/УправлениеСвойствамиКлиент/Module.bsl +++ b/SSL/src/CommonModules/УправлениеСвойствамиКлиент/Module.bsl @@ -1,5 +1,5 @@ /////////////////////////////////////////////////////////////////////////////////////////////////////// -// Copyright (c) 2024, ООО 1С-Софт +// Copyright (c) 2025, ООО 1С-Софт // Все права защищены. Эта программа и сопроводительные материалы предоставляются // в соответствии с условиями лицензии Attribution 4.0 International (CC BY 4.0) // Текст лицензии доступен по ссылке: diff --git a/SSL/src/CommonModules/УправлениеСвойствамиПереопределяемый/Module.bsl b/SSL/src/CommonModules/УправлениеСвойствамиПереопределяемый/Module.bsl index fa468dd83..e3d56dde8 100644 --- a/SSL/src/CommonModules/УправлениеСвойствамиПереопределяемый/Module.bsl +++ b/SSL/src/CommonModules/УправлениеСвойствамиПереопределяемый/Module.bsl @@ -1,5 +1,5 @@ /////////////////////////////////////////////////////////////////////////////////////////////////////// -// Copyright (c) 2024, ООО 1С-Софт +// Copyright (c) 2025, ООО 1С-Софт // Все права защищены. Эта программа и сопроводительные материалы предоставляются // в соответствии с условиями лицензии Attribution 4.0 International (CC BY 4.0) // Текст лицензии доступен по ссылке: diff --git a/SSL/src/CommonModules/УправлениеСвойствамиПовтИсп/Module.bsl b/SSL/src/CommonModules/УправлениеСвойствамиПовтИсп/Module.bsl index ce39add94..245ea1eb4 100644 --- a/SSL/src/CommonModules/УправлениеСвойствамиПовтИсп/Module.bsl +++ b/SSL/src/CommonModules/УправлениеСвойствамиПовтИсп/Module.bsl @@ -1,5 +1,5 @@ /////////////////////////////////////////////////////////////////////////////////////////////////////// -// Copyright (c) 2024, ООО 1С-Софт +// Copyright (c) 2025, ООО 1С-Софт // Все права защищены. Эта программа и сопроводительные материалы предоставляются // в соответствии с условиями лицензии Attribution 4.0 International (CC BY 4.0) // Текст лицензии доступен по ссылке: diff --git a/SSL/src/CommonModules/УправлениеСвойствамиСлужебный/Module.bsl b/SSL/src/CommonModules/УправлениеСвойствамиСлужебный/Module.bsl index d20cd3d0f..d8a98d05d 100644 --- a/SSL/src/CommonModules/УправлениеСвойствамиСлужебный/Module.bsl +++ b/SSL/src/CommonModules/УправлениеСвойствамиСлужебный/Module.bsl @@ -1,5 +1,5 @@ /////////////////////////////////////////////////////////////////////////////////////////////////////// -// Copyright (c) 2024, ООО 1С-Софт +// Copyright (c) 2025, ООО 1С-Софт // Все права защищены. Эта программа и сопроводительные материалы предоставляются // в соответствии с условиями лицензии Attribution 4.0 International (CC BY 4.0) // Текст лицензии доступен по ссылке: @@ -2104,7 +2104,7 @@ Процедура УдалитьНастройкуИзХранилища(Отбор) ВыборкаНастроек = ХранилищеСистемныхНастроек.Выбрать(Отбор); - Пока СледующаяНастройка(ВыборкаНастроек) Цикл + Пока ВыборкаНастроек.Следующий() Цикл Попытка КлючОбъекта = ВыборкаНастроек.КлючОбъекта; Если СтрНачинаетсяС(КлючОбъекта, "КлючНаборовСвойств") Тогда @@ -2129,29 +2129,6 @@ КонецПроцедуры -Функция СледующаяНастройка(Выборка) - - ЕстьСледующий = Ложь; - Попытка - ЕстьСледующий = Выборка.Следующий(); - Исключение - ИнформацияОбОшибке = ИнформацияОбОшибке(); - ТекстОшибки = НСтр("ru = 'При чтении настроек в обработчике %1 - |возникла ошибка: - |%2'"); - ТекстОшибки = СтроковыеФункцииКлиентСервер.ПодставитьПараметрыВСтроку(ТекстОшибки, - "УправлениеСвойствамиСлужебный.ОчиститьНеиспользуемыеНастройки", - ОбработкаОшибок.ПодробноеПредставлениеОшибки(ИнформацияОбОшибке)); - ЗаписьЖурналаРегистрации( - ОбновлениеИнформационнойБазы.СобытиеЖурналаРегистрации(), - УровеньЖурналаРегистрации.Предупреждение,,, - ТекстОшибки); - КонецПопытки; - - Возврат ЕстьСледующий; - -КонецФункции - Функция НаименованиеУжеИспользуется(Свойство, НаборСвойств, Наименование) Экспорт Запрос = Новый Запрос; @@ -2807,7 +2784,7 @@ Настройки.Колонки.Добавить("Пользователь"); ВыборкаНастроек = МенеджерНастроек.Выбрать(); - Пока СледующаяНастройка(ВыборкаНастроек) Цикл + Пока ВыборкаНастроек.Следующий() Цикл Если СтрНайти(ВыборкаНастроек.КлючОбъекта, "КлючНаборовСвойств") = 0 Тогда Продолжить; diff --git a/SSL/src/CommonModules/УправлениеЭлектроннойПочтой/Module.bsl b/SSL/src/CommonModules/УправлениеЭлектроннойПочтой/Module.bsl index 635b4e298..90a710866 100644 --- a/SSL/src/CommonModules/УправлениеЭлектроннойПочтой/Module.bsl +++ b/SSL/src/CommonModules/УправлениеЭлектроннойПочтой/Module.bsl @@ -1,5 +1,5 @@ /////////////////////////////////////////////////////////////////////////////////////////////////////// -// Copyright (c) 2024, ООО 1С-Софт +// Copyright (c) 2025, ООО 1С-Софт // Все права защищены. Эта программа и сопроводительные материалы предоставляются // в соответствии с условиями лицензии Attribution 4.0 International (CC BY 4.0) // Текст лицензии доступен по ссылке: @@ -283,8 +283,10 @@ ШаблонСообщенияОбОшибке = НСтр("ru = 'Не удалось подключиться к почте %1 по причине: |%2'", ОбщегоНазначения.КодОсновногоЯзыка()); - ТекстСообщенияОбОшибке = СтроковыеФункцииКлиентСервер.ПодставитьПараметрыВСтроку(ШаблонСообщенияОбОшибке, - УчетнаяЗапись, РаботаСПочтовымиСообщениями.РасширенноеПредставлениеОшибки(ИнформацияОбОшибке(), ОбщегоНазначения.КодОсновногоЯзыка())); + ТекстСообщенияОбОшибке = СтроковыеФункцииКлиентСервер.ПодставитьПараметрыВСтроку( + ШаблонСообщенияОбОшибке, + УчетнаяЗапись, + РаботаСПочтовымиСообщениями.РасширенноеПредставлениеОшибки(ИнформацияОбОшибке(), ОбщегоНазначения.КодОсновногоЯзыка(), , УчетнаяЗапись)); ЗаписьЖурналаРегистрации(СобытиеЖурналаРегистрации(), УровеньЖурналаРегистрации.Ошибка, , , ТекстСообщенияОбОшибке); Если Не ЗначениеЗаполнено(РезультатОтправки) Тогда @@ -894,7 +896,7 @@ ЕстьОшибки = Истина; ТекстСообщенияОбОшибке = РаботаСПочтовымиСообщениями.РасширенноеПредставлениеОшибки( - ИнформацияОбОшибке(), ОбщегоНазначения.КодОсновногоЯзыка()); + ИнформацияОбОшибке(), ОбщегоНазначения.КодОсновногоЯзыка(), , ДанныеУчетнойЗаписи.Ссылка); ТекстСообщенияОбОшибке = СтроковыеФункцииКлиентСервер.ПодставитьПараметрыВСтроку( НСтр("ru = 'Не удалось подключиться к почте %1 по причине: |%2'", ОбщегоНазначения.КодОсновногоЯзыка()), @@ -961,8 +963,8 @@ Исключение ТекстОшибкиДляЖурналаРегистрации = РаботаСПочтовымиСообщениями.РасширенноеПредставлениеОшибки( - ИнформацияОбОшибке(), ОбщегоНазначения.КодОсновногоЯзыка()); - + ИнформацияОбОшибке(), ОбщегоНазначения.КодОсновногоЯзыка(), , ДанныеУчетнойЗаписи.Ссылка); + ТекстОшибкиДляЖурналаРегистрации = СтроковыеФункцииКлиентСервер.ПодставитьПараметрыВСтроку( НСтр("ru = 'Не удалось подключиться к почте ""%1"" по причине: |%2'", ОбщегоНазначения.КодОсновногоЯзыка()), @@ -973,7 +975,7 @@ УровеньЖурналаРегистрации.Ошибка, , , ТекстОшибкиДляЖурналаРегистрации); ТекстОшибкиДляПользователя = РаботаСПочтовымиСообщениями.РасширенноеПредставлениеОшибки( - ИнформацияОбОшибке(), , Ложь); + ИнформацияОбОшибке(), , Ложь, ДанныеУчетнойЗаписи.Ссылка); ТекстОшибкиДляПользователя = СтроковыеФункцииКлиентСервер.ПодставитьПараметрыВСтроку( НСтр("ru = 'Не удалось подключиться к почте ""%1"" по причине: @@ -1118,8 +1120,8 @@ ТекстСообщения = СтроковыеФункцииКлиентСервер.ПодставитьПараметрыВСтроку( НСтр("ru = 'Не удалось получить заголовки писем для папки ""%1"" учетной записи ""%2"", по причине: %3'"), ИмяАктивнойПапки, ДанныеУчетнойЗаписи.АдресЭлектроннойПочты, - РаботаСПочтовымиСообщениями.РасширенноеПредставлениеОшибки(ИнформацияОбОшибке(), - ОбщегоНазначения.КодОсновногоЯзыка(), Ложь)); + РаботаСПочтовымиСообщениями.РасширенноеПредставлениеОшибки(ИнформацияОбОшибке(), + ОбщегоНазначения.КодОсновногоЯзыка(), Ложь, ДанныеУчетнойЗаписи.Ссылка)); ЗаписьЖурналаРегистрации(СобытиеЖурналаРегистрации(), УровеньЖурналаРегистрации.Ошибка, Метаданные.Справочники.ПапкиЭлектронныхПисем,, ТекстСообщения); Продолжить; @@ -2439,7 +2441,7 @@ Результат = Новый Массив; ИменаАктивныхПапок = Почта.ПолучитьПочтовыеЯщикиПоПодписке(); - Если ИменаАктивныхПапок.Количество() = 0 Тогда + Если ИменаАктивныхПапок.Количество() = 0 Или ИменаАктивныхПапок.Найти("INBOX") = Неопределено Тогда ИменаАктивныхПапок = Почта.ПолучитьПочтовыеЯщики(); КонецЕсли; @@ -3501,7 +3503,6 @@ Процедура ПриОпределенииМетодовРазрешенныхДляВызоваКакПроизвольныйКод(Методы) Экспорт Методы.Вставить("ОтправитьЗагрузитьПочтуПользователя", Истина); - Методы.Вставить("ПолучениеИОтправкаЭлектронныхПисем", Истина); КонецПроцедуры diff --git a/SSL/src/CommonModules/УправлениеЭлектроннойПочтойКлиент/Module.bsl b/SSL/src/CommonModules/УправлениеЭлектроннойПочтойКлиент/Module.bsl index 2740da863..2e2a8b7a3 100644 --- a/SSL/src/CommonModules/УправлениеЭлектроннойПочтойКлиент/Module.bsl +++ b/SSL/src/CommonModules/УправлениеЭлектроннойПочтойКлиент/Module.bsl @@ -1,5 +1,5 @@ /////////////////////////////////////////////////////////////////////////////////////////////////////// -// Copyright (c) 2024, ООО 1С-Софт +// Copyright (c) 2025, ООО 1С-Софт // Все права защищены. Эта программа и сопроводительные материалы предоставляются // в соответствии с условиями лицензии Attribution 4.0 International (CC BY 4.0) // Текст лицензии доступен по ссылке: @@ -15,13 +15,14 @@ // Процедура ОткрытьВложение(Ссылка, Форма, ДляРедактирования = Ложь) Экспорт - ДанныеФайла = РаботаСФайламиКлиент.ДанныеФайла(Ссылка, Форма.УникальныйИдентификатор); + ДанныеФайла = РаботаСФайламиСлужебныйВызовСервера.ИмяФайлаИРасширение(Ссылка); Если Форма.ЗапрещенныеРасширения.НайтиПоЗначению(ДанныеФайла.Расширение) <> Неопределено Тогда - - ДополнительныеПараметры = Новый Структура("ДанныеФайла", ДанныеФайла); - ДополнительныеПараметры.Вставить("ДляРедактирования", ДляРедактирования); - + + ДополнительныеПараметры = Новый Структура("ДляРедактирования", ДляРедактирования); + ДополнительныеПараметры.Вставить("ПрисоединенныйФайл", Ссылка); + ДополнительныеПараметры.Вставить("Форма", Форма); + Оповещение = Новый ОписаниеОповещения("ОткрытьФайлПослеПодтверждения", ЭтотОбъект, ДополнительныеПараметры); ПользователиСлужебныйКлиент.ПоказатьПредупреждениеБезопасности(Оповещение, ПользователиСлужебныйКлиентСервер.ВидыПредупрежденийБезопасности().ПередОткрытиемФайла, @@ -29,19 +30,34 @@ Возврат; КонецЕсли; - - РаботаСФайламиКлиент.ОткрытьФайл(ДанныеФайла, ДляРедактирования); - + + ОткрытьФайлВложения(Ссылка, Форма, ДляРедактирования); + КонецПроцедуры Процедура ОткрытьФайлПослеПодтверждения(Результат, ДополнительныеПараметры) Экспорт - + Если Результат <> Неопределено И Результат = "Продолжить" Тогда - РаботаСФайламиКлиент.ОткрытьФайл(ДополнительныеПараметры.ДанныеФайла, ДополнительныеПараметры.ДляРедактирования); + + ОткрытьФайлВложения(ДополнительныеПараметры.ПрисоединенныйФайл, + ДополнительныеПараметры.Форма, + ДополнительныеПараметры.ДляРедактирования); КонецЕсли; КонецПроцедуры +Процедура ОткрытьФайлВложения(Ссылка, Форма, ДляРедактирования) + + ПараметрыПолученияФайла = РаботаСФайламиКлиент.ПараметрыАсинхронногоПолученияФайла("ОткрытьФайл", "РаботаСФайламиСлужебный.ДанныеФайлаУправлениеЭлектроннойПочтойАсинхронный"); + ПараметрыПолученияФайла.ПрисоединенныйФайл = Ссылка; + ПараметрыПолученияФайла.ФормаВладелец = Форма; + + ПараметрыПолученияФайла.ПараметрыДействия.ДляРедактирования = ДляРедактирования; + + РаботаСФайламиКлиент.ОткрытьФайл(ПараметрыПолученияФайла); + +КонецПроцедуры + // Параметры: // ТаблицаКонтактов - ДанныеФормыКоллекция - содержащая описания и ссылки на контакты взаимодействия // или участников предмета взаимодействия. diff --git a/SSL/src/CommonModules/УчетОригиналовПервичныхДокументов/Module.bsl b/SSL/src/CommonModules/УчетОригиналовПервичныхДокументов/Module.bsl index 98625a6c0..3b3ce33cf 100644 --- a/SSL/src/CommonModules/УчетОригиналовПервичныхДокументов/Module.bsl +++ b/SSL/src/CommonModules/УчетОригиналовПервичныхДокументов/Module.bsl @@ -1,5 +1,5 @@ /////////////////////////////////////////////////////////////////////////////////////////////////////// -// Copyright (c) 2024, ООО 1С-Софт +// Copyright (c) 2025, ООО 1С-Софт // Все права защищены. Эта программа и сопроводительные материалы предоставляются // в соответствии с условиями лицензии Attribution 4.0 International (CC BY 4.0) // Текст лицензии доступен по ссылке: diff --git a/SSL/src/CommonModules/УчетОригиналовПервичныхДокументовВызовСервера/Module.bsl b/SSL/src/CommonModules/УчетОригиналовПервичныхДокументовВызовСервера/Module.bsl index 86082dbf0..51a6ca875 100644 --- a/SSL/src/CommonModules/УчетОригиналовПервичныхДокументовВызовСервера/Module.bsl +++ b/SSL/src/CommonModules/УчетОригиналовПервичныхДокументовВызовСервера/Module.bsl @@ -1,5 +1,5 @@ /////////////////////////////////////////////////////////////////////////////////////////////////////// -// Copyright (c) 2024, ООО 1С-Софт +// Copyright (c) 2025, ООО 1С-Софт // Все права защищены. Эта программа и сопроводительные материалы предоставляются // в соответствии с условиями лицензии Attribution 4.0 International (CC BY 4.0) // Текст лицензии доступен по ссылке: diff --git a/SSL/src/CommonModules/УчетОригиналовПервичныхДокументовКлиент/Module.bsl b/SSL/src/CommonModules/УчетОригиналовПервичныхДокументовКлиент/Module.bsl index 4fcc69e68..c7bca029d 100644 --- a/SSL/src/CommonModules/УчетОригиналовПервичныхДокументовКлиент/Module.bsl +++ b/SSL/src/CommonModules/УчетОригиналовПервичныхДокументовКлиент/Module.bsl @@ -1,5 +1,5 @@ /////////////////////////////////////////////////////////////////////////////////////////////////////// -// Copyright (c) 2024, ООО 1С-Софт +// Copyright (c) 2025, ООО 1С-Софт // Все права защищены. Эта программа и сопроводительные материалы предоставляются // в соответствии с условиями лицензии Attribution 4.0 International (CC BY 4.0) // Текст лицензии доступен по ссылке: diff --git a/SSL/src/CommonModules/УчетОригиналовПервичныхДокументовКлиентПереопределяемый/Module.bsl b/SSL/src/CommonModules/УчетОригиналовПервичныхДокументовКлиентПереопределяемый/Module.bsl index 61981bb4e..cf4ad51a2 100644 --- a/SSL/src/CommonModules/УчетОригиналовПервичныхДокументовКлиентПереопределяемый/Module.bsl +++ b/SSL/src/CommonModules/УчетОригиналовПервичныхДокументовКлиентПереопределяемый/Module.bsl @@ -1,5 +1,5 @@ /////////////////////////////////////////////////////////////////////////////////////////////////////// -// Copyright (c) 2024, ООО 1С-Софт +// Copyright (c) 2025, ООО 1С-Софт // Все права защищены. Эта программа и сопроводительные материалы предоставляются // в соответствии с условиями лицензии Attribution 4.0 International (CC BY 4.0) // Текст лицензии доступен по ссылке: diff --git a/SSL/src/CommonModules/УчетОригиналовПервичныхДокументовПереопределяемый/Module.bsl b/SSL/src/CommonModules/УчетОригиналовПервичныхДокументовПереопределяемый/Module.bsl index 4c2e1510e..4ee6ee900 100644 --- a/SSL/src/CommonModules/УчетОригиналовПервичныхДокументовПереопределяемый/Module.bsl +++ b/SSL/src/CommonModules/УчетОригиналовПервичныхДокументовПереопределяемый/Module.bsl @@ -1,5 +1,5 @@ /////////////////////////////////////////////////////////////////////////////////////////////////////// -// Copyright (c) 2024, ООО 1С-Софт +// Copyright (c) 2025, ООО 1С-Софт // Все права защищены. Эта программа и сопроводительные материалы предоставляются // в соответствии с условиями лицензии Attribution 4.0 International (CC BY 4.0) // Текст лицензии доступен по ссылке: diff --git a/SSL/src/CommonModules/ФайловаяСистема/Module.bsl b/SSL/src/CommonModules/ФайловаяСистема/Module.bsl index 929ce9c44..6c4bd1ff5 100644 --- a/SSL/src/CommonModules/ФайловаяСистема/Module.bsl +++ b/SSL/src/CommonModules/ФайловаяСистема/Module.bsl @@ -1,5 +1,5 @@ /////////////////////////////////////////////////////////////////////////////////////////////////////// -// Copyright (c) 2024, ООО 1С-Софт +// Copyright (c) 2025, ООО 1С-Софт // Все права защищены. Эта программа и сопроводительные материалы предоставляются // в соответствии с условиями лицензии Attribution 4.0 International (CC BY 4.0) // Текст лицензии доступен по ссылке: diff --git a/SSL/src/CommonModules/ФайловаяСистемаКлиент/Module.bsl b/SSL/src/CommonModules/ФайловаяСистемаКлиент/Module.bsl index e3c15163f..cb14c9c25 100644 --- a/SSL/src/CommonModules/ФайловаяСистемаКлиент/Module.bsl +++ b/SSL/src/CommonModules/ФайловаяСистемаКлиент/Module.bsl @@ -1,5 +1,5 @@ /////////////////////////////////////////////////////////////////////////////////////////////////////// -// Copyright (c) 2024, ООО 1С-Софт +// Copyright (c) 2025, ООО 1С-Софт // Все права защищены. Эта программа и сопроводительные материалы предоставляются // в соответствии с условиями лицензии Attribution 4.0 International (CC BY 4.0) // Текст лицензии доступен по ссылке: diff --git a/SSL/src/CommonModules/ФайловаяСистемаСлужебныйКлиент/Module.bsl b/SSL/src/CommonModules/ФайловаяСистемаСлужебныйКлиент/Module.bsl index a035e99fe..523e0752e 100644 --- a/SSL/src/CommonModules/ФайловаяСистемаСлужебныйКлиент/Module.bsl +++ b/SSL/src/CommonModules/ФайловаяСистемаСлужебныйКлиент/Module.bsl @@ -1,5 +1,5 @@ /////////////////////////////////////////////////////////////////////////////////////////////////////// -// Copyright (c) 2024, ООО 1С-Софт +// Copyright (c) 2025, ООО 1С-Софт // Все права защищены. Эта программа и сопроводительные материалы предоставляются // в соответствии с условиями лицензии Attribution 4.0 International (CC BY 4.0) // Текст лицензии доступен по ссылке: diff --git a/SSL/src/CommonModules/ФайловаяСистемаСлужебныйКлиентСервер/Module.bsl b/SSL/src/CommonModules/ФайловаяСистемаСлужебныйКлиентСервер/Module.bsl index c48dd496b..5ffef6636 100644 --- a/SSL/src/CommonModules/ФайловаяСистемаСлужебныйКлиентСервер/Module.bsl +++ b/SSL/src/CommonModules/ФайловаяСистемаСлужебныйКлиентСервер/Module.bsl @@ -1,5 +1,5 @@ /////////////////////////////////////////////////////////////////////////////////////////////////////// -// Copyright (c) 2024, ООО 1С-Софт +// Copyright (c) 2025, ООО 1С-Софт // Все права защищены. Эта программа и сопроводительные материалы предоставляются // в соответствии с условиями лицензии Attribution 4.0 International (CC BY 4.0) // Текст лицензии доступен по ссылке: diff --git a/SSL/src/CommonModules/ФизическиеЛицаКлиентСервер/Module.bsl b/SSL/src/CommonModules/ФизическиеЛицаКлиентСервер/Module.bsl index 4bb5f07b3..83ba3db2b 100644 --- a/SSL/src/CommonModules/ФизическиеЛицаКлиентСервер/Module.bsl +++ b/SSL/src/CommonModules/ФизическиеЛицаКлиентСервер/Module.bsl @@ -1,5 +1,5 @@ /////////////////////////////////////////////////////////////////////////////////////////////////////// -// Copyright (c) 2024, ООО 1С-Софт +// Copyright (c) 2025, ООО 1С-Софт // Все права защищены. Эта программа и сопроводительные материалы предоставляются // в соответствии с условиями лицензии Attribution 4.0 International (CC BY 4.0) // Текст лицензии доступен по ссылке: @@ -15,18 +15,18 @@ // При отсутствии такого алгоритма либо результата его выполнения применяется стандартный алгоритм разбора ФИО. // // Параметры: -// ПолноеИмя - Строка - Строка, содержащая ФИО, которую необходимо разобрать. -// ФорматИмени - Строка - (необязательный) Задает порядок следования частей имени во входной строке. +// ПолноеИмя - Строка - строка, содержащая ФИО, которую необходимо разобрать. +// ФорматИмени - Строка - задает порядок следования частей имени во входной строке. // В локализованной реализации могут поддерживаться дополнительные значения (форматы) этого параметра. // Возможные значения для стандартного алгоритма: // # "" (пустая строка) или "Имя,Фамилия" - имя в начале, фамилия в конце (по умолчанию); // # "Фамилия,Имя" - фамилия в начале, имя в конце. // // Возвращаемое значение: -// Структура - При отсутствии локализованного алгоритма содержит: -// * Фамилия - Строка - Выделенная фамилия. -// * Имя - Строка - Оставшаяся часть (имя и отчество, если есть). -// см. ФизическиеЛицаКлиентСерверЛокализация.ПриОпределенииЧастейПолногоИмени.Результат +// Структура - при отсутствии локализованного алгоритма содержит: +// * Фамилия - Строка - выделенная фамилия. +// * Имя - Строка - оставшаяся часть (имя и отчество, если есть). +// см. ФизическиеЛицаКлиентСерверЛокализация.ПриОпределенииЧастейПолногоИмени.Результат // // Пример: // 1. ЧастиИмени("Иван Иванович Иванов") @@ -86,27 +86,27 @@ // При отсутствии локализованного алгоритма либо результата его выполнения применяется стандартное формирование. // // Параметры: -// ПолноеИмя - Строка, Структура - Полное имя физического лица. +// ПолноеИмя - Строка, Структура - полное имя физического лица. // Если передана строка, она разбирается на части функцией ЧастиИмени(). // Если передана структура, предполагается наличие полей "Фамилия" и "Имя". -// ФорматПолногоИмени - Строка - (необязательный) Определяет порядок следования частей имени во входных данных. +// ФорматПолногоИмени - Строка - определяет порядок следования частей имени во входных данных. // В локализованной реализации могут поддерживаться дополнительные значения (форматы) // этого параметра. // Возможные значения для стандартного алгоритма: // * "" (пустая строка) - "Фамилия,Имя" (по умолчанию); // * "Имя,Фамилия" - имя в начале, фамилия в конце. -// ИнициалыВНачале - Булево - (необязательный) Используется локализованным алгоритмом для выбора вида +// ИнициалыВНачале - Булево - используется локализованным алгоритмом для выбора вида // представления (например, "Фамилия И. О." или "И. О. Фамилия"). // При стандартном алгоритме порядок определяется параметром ФорматПолногоИмени. // // Возвращаемое значение: -// Строка - Краткое представление имени. +// Строка - краткое представление имени. // Если результат сформирован локализованной процедурой, его формат определяется этой процедурой // и может отличаться от стандартного. // При отсутствии локализованного алгоритма возвращается: // * "Фамилия" - если имя отсутствует; // * "Фамилия И." или "И. Фамилия" - если имя заполнено. -// см. ФизическиеЛицаКлиентСерверЛокализация.ПриОпределенииФамилииИнициалов.Результат +// см. ФизическиеЛицаКлиентСерверЛокализация.ПриОпределенииФамилииИнициалов.Результат // // Пример: // 1. ФамилияИнициалы("Иванов Василий") -> "Иванов В." diff --git a/SSL/src/CommonModules/ФизическиеЛицаКлиентСерверЛокализация/Module.bsl b/SSL/src/CommonModules/ФизическиеЛицаКлиентСерверЛокализация/Module.bsl index 4c8cd6d9e..749c318d4 100644 --- a/SSL/src/CommonModules/ФизическиеЛицаКлиентСерверЛокализация/Module.bsl +++ b/SSL/src/CommonModules/ФизическиеЛицаКлиентСерверЛокализация/Module.bsl @@ -1,5 +1,5 @@ /////////////////////////////////////////////////////////////////////////////////////////////////////// -// Copyright (c) 2024, ООО 1С-Софт +// Copyright (c) 2025, ООО 1С-Софт // Все права защищены. Эта программа и сопроводительные материалы предоставляются // в соответствии с условиями лицензии Attribution 4.0 International (CC BY 4.0) // Текст лицензии доступен по ссылке: diff --git a/SSL/src/CommonModules/ЦентрМониторинга/Module.bsl b/SSL/src/CommonModules/ЦентрМониторинга/Module.bsl index b9c361df2..63e795150 100644 --- a/SSL/src/CommonModules/ЦентрМониторинга/Module.bsl +++ b/SSL/src/CommonModules/ЦентрМониторинга/Module.bsl @@ -1,5 +1,5 @@ /////////////////////////////////////////////////////////////////////////////////////////////////////// -// Copyright (c) 2024, ООО 1С-Софт +// Copyright (c) 2025, ООО 1С-Софт // Все права защищены. Эта программа и сопроводительные материалы предоставляются // в соответствии с условиями лицензии Attribution 4.0 International (CC BY 4.0) // Текст лицензии доступен по ссылке: diff --git a/SSL/src/CommonModules/ЦентрМониторингаГлобальный/Module.bsl b/SSL/src/CommonModules/ЦентрМониторингаГлобальный/Module.bsl index fbae399ab..d46fee412 100644 --- a/SSL/src/CommonModules/ЦентрМониторингаГлобальный/Module.bsl +++ b/SSL/src/CommonModules/ЦентрМониторингаГлобальный/Module.bsl @@ -1,5 +1,5 @@ /////////////////////////////////////////////////////////////////////////////////////////////////////// -// Copyright (c) 2024, ООО 1С-Софт +// Copyright (c) 2025, ООО 1С-Софт // Все права защищены. Эта программа и сопроводительные материалы предоставляются // в соответствии с условиями лицензии Attribution 4.0 International (CC BY 4.0) // Текст лицензии доступен по ссылке: diff --git a/SSL/src/CommonModules/ЦентрМониторингаКлиент/Module.bsl b/SSL/src/CommonModules/ЦентрМониторингаКлиент/Module.bsl index 172397b4c..e0b1c6c97 100644 --- a/SSL/src/CommonModules/ЦентрМониторингаКлиент/Module.bsl +++ b/SSL/src/CommonModules/ЦентрМониторингаКлиент/Module.bsl @@ -1,5 +1,5 @@ /////////////////////////////////////////////////////////////////////////////////////////////////////// -// Copyright (c) 2024, ООО 1С-Софт +// Copyright (c) 2025, ООО 1С-Софт // Все права защищены. Эта программа и сопроводительные материалы предоставляются // в соответствии с условиями лицензии Attribution 4.0 International (CC BY 4.0) // Текст лицензии доступен по ссылке: diff --git a/SSL/src/CommonModules/ЦентрМониторингаКлиентСлужебный/Module.bsl b/SSL/src/CommonModules/ЦентрМониторингаКлиентСлужебный/Module.bsl index b6f182b5a..46c120735 100644 --- a/SSL/src/CommonModules/ЦентрМониторингаКлиентСлужебный/Module.bsl +++ b/SSL/src/CommonModules/ЦентрМониторингаКлиентСлужебный/Module.bsl @@ -1,5 +1,5 @@ /////////////////////////////////////////////////////////////////////////////////////////////////////// -// Copyright (c) 2024, ООО 1С-Софт +// Copyright (c) 2025, ООО 1С-Софт // Все права защищены. Эта программа и сопроводительные материалы предоставляются // в соответствии с условиями лицензии Attribution 4.0 International (CC BY 4.0) // Текст лицензии доступен по ссылке: diff --git a/SSL/src/CommonModules/ЦентрМониторингаПереопределяемый/Module.bsl b/SSL/src/CommonModules/ЦентрМониторингаПереопределяемый/Module.bsl index a17ffd779..cdc60cbdc 100644 --- a/SSL/src/CommonModules/ЦентрМониторингаПереопределяемый/Module.bsl +++ b/SSL/src/CommonModules/ЦентрМониторингаПереопределяемый/Module.bsl @@ -1,5 +1,5 @@ /////////////////////////////////////////////////////////////////////////////////////////////////////// -// Copyright (c) 2024, ООО 1С-Софт +// Copyright (c) 2025, ООО 1С-Софт // Все права защищены. Эта программа и сопроводительные материалы предоставляются // в соответствии с условиями лицензии Attribution 4.0 International (CC BY 4.0) // Текст лицензии доступен по ссылке: diff --git a/SSL/src/CommonModules/ЦентрМониторингаПовтИсп/Module.bsl b/SSL/src/CommonModules/ЦентрМониторингаПовтИсп/Module.bsl index 9eb519690..ec6b6c6ef 100644 --- a/SSL/src/CommonModules/ЦентрМониторингаПовтИсп/Module.bsl +++ b/SSL/src/CommonModules/ЦентрМониторингаПовтИсп/Module.bsl @@ -1,5 +1,5 @@ /////////////////////////////////////////////////////////////////////////////////////////////////////// -// Copyright (c) 2024, ООО 1С-Софт +// Copyright (c) 2025, ООО 1С-Софт // Все права защищены. Эта программа и сопроводительные материалы предоставляются // в соответствии с условиями лицензии Attribution 4.0 International (CC BY 4.0) // Текст лицензии доступен по ссылке: diff --git a/SSL/src/CommonModules/ЦентрМониторингаСлужебный/Module.bsl b/SSL/src/CommonModules/ЦентрМониторингаСлужебный/Module.bsl index c38c88802..7991c93ee 100644 --- a/SSL/src/CommonModules/ЦентрМониторингаСлужебный/Module.bsl +++ b/SSL/src/CommonModules/ЦентрМониторингаСлужебный/Module.bsl @@ -1,5 +1,5 @@ /////////////////////////////////////////////////////////////////////////////////////////////////////// -// Copyright (c) 2024, ООО 1С-Софт +// Copyright (c) 2025, ООО 1С-Софт // Все права защищены. Эта программа и сопроводительные материалы предоставляются // в соответствии с условиями лицензии Attribution 4.0 International (CC BY 4.0) // Текст лицензии доступен по ссылке: @@ -4072,9 +4072,6 @@ Методы.Вставить("ДобавитьИдентификаторИнформационнойБазыПостоянный"); Методы.Вставить("ОтключитьРегистрациюСобытийПриОбновлении"); Методы.Вставить("ОтправитьТестовыйПакет", Истина); - Методы.Вставить("ПриПериодическомПолученииДанныхКлиентаНаСервереВФоне", Истина); - Методы.Вставить("СобратьИОтправитьДампы", Истина); - Методы.Вставить("ЦентрМониторингаРегламентноеЗадание", Истина); КонецПроцедуры diff --git a/SSL/src/CommonModules/ШаблоныСообщений/Module.bsl b/SSL/src/CommonModules/ШаблоныСообщений/Module.bsl index 29186cc56..2429c7251 100644 --- a/SSL/src/CommonModules/ШаблоныСообщений/Module.bsl +++ b/SSL/src/CommonModules/ШаблоныСообщений/Module.bsl @@ -1,5 +1,5 @@ /////////////////////////////////////////////////////////////////////////////////////////////////////// -// Copyright (c) 2024, ООО 1С-Софт +// Copyright (c) 2025, ООО 1С-Софт // Все права защищены. Эта программа и сопроводительные материалы предоставляются // в соответствии с условиями лицензии Attribution 4.0 International (CC BY 4.0) // Текст лицензии доступен по ссылке: diff --git a/SSL/src/CommonModules/ШаблоныСообщенийКлиент/Module.bsl b/SSL/src/CommonModules/ШаблоныСообщенийКлиент/Module.bsl index e7e932cbc..3a3f8351d 100644 --- a/SSL/src/CommonModules/ШаблоныСообщенийКлиент/Module.bsl +++ b/SSL/src/CommonModules/ШаблоныСообщенийКлиент/Module.bsl @@ -1,5 +1,5 @@ /////////////////////////////////////////////////////////////////////////////////////////////////////// -// Copyright (c) 2024, ООО 1С-Софт +// Copyright (c) 2025, ООО 1С-Софт // Все права защищены. Эта программа и сопроводительные материалы предоставляются // в соответствии с условиями лицензии Attribution 4.0 International (CC BY 4.0) // Текст лицензии доступен по ссылке: diff --git a/SSL/src/CommonModules/ШаблоныСообщенийКлиентСервер/Module.bsl b/SSL/src/CommonModules/ШаблоныСообщенийКлиентСервер/Module.bsl index b95d90360..c053810b5 100644 --- a/SSL/src/CommonModules/ШаблоныСообщенийКлиентСервер/Module.bsl +++ b/SSL/src/CommonModules/ШаблоныСообщенийКлиентСервер/Module.bsl @@ -1,5 +1,5 @@ /////////////////////////////////////////////////////////////////////////////////////////////////////// -// Copyright (c) 2024, ООО 1С-Софт +// Copyright (c) 2025, ООО 1С-Софт // Все права защищены. Эта программа и сопроводительные материалы предоставляются // в соответствии с условиями лицензии Attribution 4.0 International (CC BY 4.0) // Текст лицензии доступен по ссылке: diff --git a/SSL/src/CommonModules/ШаблоныСообщенийПереопределяемый/Module.bsl b/SSL/src/CommonModules/ШаблоныСообщенийПереопределяемый/Module.bsl index 423f2ef83..c38355baf 100644 --- a/SSL/src/CommonModules/ШаблоныСообщенийПереопределяемый/Module.bsl +++ b/SSL/src/CommonModules/ШаблоныСообщенийПереопределяемый/Module.bsl @@ -1,5 +1,5 @@ /////////////////////////////////////////////////////////////////////////////////////////////////////// -// Copyright (c) 2024, ООО 1С-Софт +// Copyright (c) 2025, ООО 1С-Софт // Все права защищены. Эта программа и сопроводительные материалы предоставляются // в соответствии с условиями лицензии Attribution 4.0 International (CC BY 4.0) // Текст лицензии доступен по ссылке: diff --git a/SSL/src/CommonModules/ШаблоныСообщенийСервер/Module.bsl b/SSL/src/CommonModules/ШаблоныСообщенийСервер/Module.bsl index d20ca616a..a6818771b 100644 --- a/SSL/src/CommonModules/ШаблоныСообщенийСервер/Module.bsl +++ b/SSL/src/CommonModules/ШаблоныСообщенийСервер/Module.bsl @@ -1,5 +1,5 @@ /////////////////////////////////////////////////////////////////////////////////////////////////////// -// Copyright (c) 2024, ООО 1С-Софт +// Copyright (c) 2025, ООО 1С-Софт // Все права защищены. Эта программа и сопроводительные материалы предоставляются // в соответствии с условиями лицензии Attribution 4.0 International (CC BY 4.0) // Текст лицензии доступен по ссылке: diff --git a/SSL/src/CommonModules/ШаблоныСообщенийСлужебный/Module.bsl b/SSL/src/CommonModules/ШаблоныСообщенийСлужебный/Module.bsl index 7addeb26f..c86ef6ace 100644 --- a/SSL/src/CommonModules/ШаблоныСообщенийСлужебный/Module.bsl +++ b/SSL/src/CommonModules/ШаблоныСообщенийСлужебный/Module.bsl @@ -1,5 +1,5 @@ /////////////////////////////////////////////////////////////////////////////////////////////////////// -// Copyright (c) 2024, ООО 1С-Софт +// Copyright (c) 2025, ООО 1С-Софт // Все права защищены. Эта программа и сопроводительные материалы предоставляются // в соответствии с условиями лицензии Attribution 4.0 International (CC BY 4.0) // Текст лицензии доступен по ссылке: diff --git a/SSL/src/CommonModules/ШаблоныСообщенийСлужебныйПовтИсп/Module.bsl b/SSL/src/CommonModules/ШаблоныСообщенийСлужебныйПовтИсп/Module.bsl index e5a344676..a6e6c1ef9 100644 --- a/SSL/src/CommonModules/ШаблоныСообщенийСлужебныйПовтИсп/Module.bsl +++ b/SSL/src/CommonModules/ШаблоныСообщенийСлужебныйПовтИсп/Module.bsl @@ -1,5 +1,5 @@ /////////////////////////////////////////////////////////////////////////////////////////////////////// -// Copyright (c) 2024, ООО 1С-Софт +// Copyright (c) 2025, ООО 1С-Софт // Все права защищены. Эта программа и сопроводительные материалы предоставляются // в соответствии с условиями лицензии Attribution 4.0 International (CC BY 4.0) // Текст лицензии доступен по ссылке: diff --git a/SSL/src/CommonModules/ЭлектроннаяПодпись/Module.bsl b/SSL/src/CommonModules/ЭлектроннаяПодпись/Module.bsl index 55b521c36..b2bdc7dc1 100644 --- a/SSL/src/CommonModules/ЭлектроннаяПодпись/Module.bsl +++ b/SSL/src/CommonModules/ЭлектроннаяПодпись/Module.bsl @@ -1,5 +1,5 @@ /////////////////////////////////////////////////////////////////////////////////////////////////////// -// Copyright (c) 2024, ООО 1С-Софт +// Copyright (c) 2025, ООО 1С-Софт // Все права защищены. Эта программа и сопроводительные материалы предоставляются // в соответствии с условиями лицензии Attribution 4.0 International (CC BY 4.0) // Текст лицензии доступен по ссылке: @@ -896,7 +896,7 @@ // // Возвращаемое значение: // СправочникСсылка.СертификатыКлючейЭлектроннойПодписиИШифрования - ссылка на сертификат. -// +// Функция ЗаписатьСертификатВСправочник(Знач Сертификат, ДополнительныеПараметры = Неопределено) Экспорт Если ТипЗнч(ДополнительныеПараметры) <> Тип("Структура") Тогда @@ -923,7 +923,7 @@ СертификатСсылка = СсылкаНаСертификат(Сертификат); КонецЕсли; - ПравоДоступаДобавление = ПравоДоступа("Добавление", Метаданные.Справочники.СертификатыКлючейЭлектроннойПодписиИШифрования); + ПравоДоступаДобавление = ЭлектроннаяПодписьСлужебный.ЕстьПравоНаДобавлениеСертификатовВСправочник(); Если Не ПравоДоступаДобавление И Не ЗначениеЗаполнено(СертификатСсылка) Тогда ВызватьИсключение(НСтр("ru = 'Недостаточно прав для использования сертификата.'"), КатегорияОшибки.НарушениеПравДоступа); @@ -3809,11 +3809,4 @@ #КонецОбласти -// См. СтандартныеПодсистемыСервер.ПриОпределенииМетодовРазрешенныхДляВызоваКакПроизвольныйКод -Процедура ПриОпределенииМетодовРазрешенныхДляВызоваКакПроизвольныйКод(Методы) Экспорт - - Методы.Вставить("ПродлениеДостоверностиПодписей", Истина); - -КонецПроцедуры - #КонецОбласти \ No newline at end of file diff --git a/SSL/src/CommonModules/ЭлектроннаяПодписьКлиент/Module.bsl b/SSL/src/CommonModules/ЭлектроннаяПодписьКлиент/Module.bsl index 4d73aa99d..65a340256 100644 --- a/SSL/src/CommonModules/ЭлектроннаяПодписьКлиент/Module.bsl +++ b/SSL/src/CommonModules/ЭлектроннаяПодписьКлиент/Module.bsl @@ -1,5 +1,5 @@ /////////////////////////////////////////////////////////////////////////////////////////////////////// -// Copyright (c) 2024, ООО 1С-Софт +// Copyright (c) 2025, ООО 1С-Софт // Все права защищены. Эта программа и сопроводительные материалы предоставляются // в соответствии с условиями лицензии Attribution 4.0 International (CC BY 4.0) // Текст лицензии доступен по ссылке: @@ -83,7 +83,7 @@ // - ОпределяемыйТип.Организация - содержит ссылку на организацию доверителя, // по ИНН которой будет установлен отбор в списке доверенностей. // * Полномочия - Массив из Строка - (необязательный) - коды полномочий для поиска -// подходящей доверенности, содержащей хотя бы один из них. +// подходящей доверенности. // * КлючОтбора - Строка - (необязательный) - для сохранения выбранной доверенности по // сертификату в настройках пользователя и автоматической подстановки при последующем // подписании в данном сценарии. Например, "ДляКадровогоЭДО". Рекомендуется использовать, @@ -286,6 +286,7 @@ // * Доступность - Булево - доступность типа подписи на форме подписания. // * ВыборДоверенности - Булево - показывать поле выбора доверенности. // * РазрешитьОтправкуНаПодписание - разрешить отправку на подписание в сервис мобильной подписи. +// * Отправитель - Неопределено - см. ЭлектроннаяПодписьКлиентЛокализация.ПриОпределенииПараметровОтправителяДокументовНаПодпись // * ПакетнаяОтправкаНаПодписание - Неопределено, Булево - если Неопределено, будет возможность выбора в форме. // * ПроверятьСертификат - Строка - режим проверки квалифицированности ЭП: // "ПроверятьКвалифицированные" - (по умолчанию) разрешать подписывать НЭП и проверять КЭП на действительность @@ -303,6 +304,7 @@ Структура.Вставить("ВыборДоверенности", Ложь); Структура.Вставить("РазрешитьОтправкуНаПодписание", Ложь); Структура.Вставить("ПакетнаяОтправкаНаПодписание", Неопределено); + Структура.Вставить("Отправитель", Неопределено); Структура.Вставить("ПроверятьСертификат", ЭлектроннаяПодписьСлужебныйКлиентСервер.ПроверятьКвалифицированные()); Если ЗначениеЗаполнено(ТипПодписи) Тогда diff --git a/SSL/src/CommonModules/ЭлектроннаяПодписьКлиентЛокализация/Module.bsl b/SSL/src/CommonModules/ЭлектроннаяПодписьКлиентЛокализация/Module.bsl index 32cdfa2db..da27a8324 100644 --- a/SSL/src/CommonModules/ЭлектроннаяПодписьКлиентЛокализация/Module.bsl +++ b/SSL/src/CommonModules/ЭлектроннаяПодписьКлиентЛокализация/Module.bsl @@ -1,5 +1,5 @@ /////////////////////////////////////////////////////////////////////////////////////////////////////// -// Copyright (c) 2024, ООО 1С-Софт +// Copyright (c) 2025, ООО 1С-Софт // Все права защищены. Эта программа и сопроводительные материалы предоставляются // в соответствии с условиями лицензии Attribution 4.0 International (CC BY 4.0) // Текст лицензии доступен по ссылке: @@ -21,6 +21,22 @@ КонецПроцедуры +// Параметры отправителя в сервис мобильной подписи. +// +// Параметры: +// Отправитель - Структура +// +Процедура ПриОпределенииПараметровОтправителяДокументовНаПодпись(Отправитель) Экспорт + + // Локализация + Если ОбщегоНазначенияКлиент.ПодсистемаСуществует("СтандартныеПодсистемы.СервисМобильнойПодписи") Тогда + МодульСервисМобильнойПодписиКлиент = ОбщегоНазначенияКлиент.ОбщийМодуль("СервисМобильнойПодписиКлиент"); + Отправитель = МодульСервисМобильнойПодписиКлиент.ПараметрыОтправителя(); + КонецЕсли; + // Конец Локализация + +КонецПроцедуры + // Фильтр для выбора подписей. // // Параметры: @@ -36,6 +52,31 @@ КонецПроцедуры +// При получении ошибок на клиенте. +// +// Параметры: +// ОписаниеОшибок - Структура +// +Процедура ПриПолученииОшибокНаКлиенте(ОписаниеОшибок) Экспорт + + // Локализация +#Если МобильныйКлиент Или МобильноеПриложениеКлиент Тогда + Если ТипЗнч(ОписаниеОшибок) = Тип("Структура") + И ОписаниеОшибок.Свойство("Ошибки") + И ТипЗнч(ОписаниеОшибок.Ошибки) = Тип("Массив") + И ОписаниеОшибок.Ошибки.Количество() > 0 + И ОписаниеОшибок.Ошибки[0].Описание = ЭлектроннаяПодписьСлужебныйКлиент.ТекстОшибкиУстройствоНеПоддерживается() Тогда + Если ОписаниеОшибок.Ошибки.Количество() = 1 Тогда + ОписаниеОшибок.Ошибки[0].Описание = НСтр("ru = 'Рутокен не найден. Подробности см. в журнале регистрации.'"); + Иначе + ОписаниеОшибок.Ошибки.Удалить(0); + КонецЕсли; + КонецЕсли; +#КонецЕсли + // Конец Локализация + +КонецПроцедуры + // Форма направления на подписание в сервис мобильной подписи. // // Параметры: @@ -45,13 +86,26 @@ // Локализация Если ОбщегоНазначенияКлиент.ПодсистемаСуществует("СтандартныеПодсистемы.СервисМобильнойПодписи") Тогда - МодульСервисМобильнойПодписиКлиент = ОбщегоНазначенияКлиент.ОбщийМодуль("СервисМобильнойПодписиКлиент"); - ИмяФормы = МодульСервисМобильнойПодписиКлиент.ИмяФормыОтправкиНаПодписание(); + МодульСервисМобильнойПодписиСлужебныйКлиент = ОбщегоНазначенияКлиент.ОбщийМодуль("СервисМобильнойПодписиСлужебныйКлиент"); + ИмяФормы = МодульСервисМобильнойПодписиСлужебныйКлиент.ИмяФормыОтправкиНаПодписание(); КонецЕсли; // Конец Локализация КонецПроцедуры +// При получении идентификатора мобильной компоненты. +// +// Параметры: +// Компонента - Строка +// +Процедура ПриПолученииИдентификатораМобильнойКомпоненты(Компонента) Экспорт + + // Локализация + Компонента = "EDOMP"; + // Конец Локализация + +КонецПроцедуры + // При получении списка выбора машиночитаемых доверенностей в форме добавления подписей из файла. // // Параметры: @@ -222,6 +276,12 @@ // Локализация +#Если МобильныйКлиент Или МобильноеПриложениеКлиент Тогда + Результат.Вставить("ПроверкаВыполнена", Истина); + Результат.Вставить("Токены", Ждать ТокеныИзКэша()); + Возврат Результат; +#КонецЕсли + Если ОбъектКомпоненты = Неопределено Тогда ТекстПояснения = СтроковыеФункцииКлиентСервер.ПодставитьПараметрыВСтроку( НСтр("ru = 'Для получения данных о токенах требуется установка внешней компоненты %1.'"), @@ -423,21 +483,23 @@ КонецФункции -// Получить свойства сертификатов на токенах. +// Добавляет в переданный массив сертификаты с токена. // // Параметры: -// Контекст - Структура: -// * МассивСертификатов - Массив -// ПредложитьУстановить - Булево - Предложить установить компоненту, если не установлена. +// Токены - Массив, Неопределено +// МассивСертификатов - Массив // // Возвращаемое значение: -// Обещание - Контекст +// Массив Из СертификатКриптографии // -Асинх Функция ПолучитьСвойстваСертификатовНаТокенах(Контекст, ПредложитьУстановить) Экспорт +Асинх Функция ДобавитьСертификатыСТокеновВМассив(Токены, МассивСертификатов) Экспорт // Локализация - Токены = Ждать СертификатыНаТокенах(ПредложитьУстановить); + Если Не ЗначениеЗаполнено(Токены) Тогда + Возврат МассивСертификатов; + КонецЕсли; + Для Каждого Токен Из Токены Цикл Если Токен.Сертификаты = Неопределено Тогда Продолжить; @@ -445,218 +507,98 @@ Для Каждого СвойстваСертификата Из Токен.Сертификаты Цикл СертификатКриптографии = Новый СертификатКриптографии; Ждать СертификатКриптографии.ИнициализироватьАсинх(СвойстваСертификата.Значение); - Контекст.МассивСертификатов.Добавить(СертификатКриптографии); + МассивСертификатов.Добавить(СертификатКриптографии); КонецЦикла; КонецЦикла; - // Конец Локализация + + // Конец Локализация - Возврат Контекст; + Возврат МассивСертификатов; КонецФункции -// Возвращает отпечатки сертификатов на токенах. +// Получает токен по сертификату. // // Параметры: -// ПредложитьУстановить - Булево - Предложить установить компоненту, если не установлена. -// ВключаяПросроченные - Булево - если Ложь, возвращаются только отпечатки действующих сертификатов. +// Оповещение - ОписаниеОповещения +// Сертификат - СертификатКриптографии +// СтандартнаяОбработка - Булево +// ПредложитьУстановить - Булево - предложить установить компоненту. +// Обновить - Булево - обновить список сертификатов на токене в кэше. // // Возвращаемое значение: -// Обещание - Массив -// -Асинх Функция ПолучитьОтпечаткиСертификатовНаТокенах(ПредложитьУстановить, ВключаяПросроченные = Ложь) Экспорт - - МассивОтпечатков = Новый Массив; - - // Локализация - Токены = Ждать СертификатыНаТокенах(ПредложитьУстановить); - - Для Каждого Токен Из Токены Цикл - Если Токен.Сертификаты = Неопределено Тогда - Продолжить; - КонецЕсли; - Для Каждого СвойстваСертификата Из Токен.Сертификаты Цикл - Если ВключаяПросроченные Тогда - МассивОтпечатков.Добавить(СвойстваСертификата.Ключ); - Иначе - СертификатКриптографии = Новый СертификатКриптографии; - Ждать СертификатКриптографии.ИнициализироватьАсинх(СвойстваСертификата.Значение); - ДатыСертификата = ЭлектроннаяПодписьСлужебныйКлиентСервер.ДатыСертификата(СертификатКриптографии, - ЭлектроннаяПодписьСлужебныйКлиент.РазницаСУниверсальнымВременем()); - Если ДатыСертификата.ДействителенДо >= ОбщегоНазначенияКлиент.ДатаСеанса() Тогда - МассивОтпечатков.Добавить(СвойстваСертификата.Ключ); - КонецЕсли; - КонецЕсли; - КонецЦикла; - КонецЦикла; - // Конец Локализация - - Возврат МассивОтпечатков; - -КонецФункции - -// Сертификаты на токенах. -// -// Параметры: -// ПредложитьУстановить - Булево - Предложить установить. -// Обновить - Булево - Обновить список сертификатов на токене в кэше. -// -// Возвращаемое значение: -// Обещание - Массив Из Структура - Токены +// Обещание - Массив из Структура - токены // -Асинх Функция СертификатыНаТокенах(ПредложитьУстановить, Обновить = Ложь) Экспорт - - УстановленныеКриптопровайдеры = Ждать ЭлектроннаяПодписьСлужебныйКлиент.УстановленныеКриптопровайдерыИзКэша(ПредложитьУстановить); - Токены = УстановленныеКриптопровайдеры.Токены; - ЗаписатьТокеныВКэш = Ложь; +Процедура ПриПолученииТокенаПоСертификату(Оповещение, Сертификат, СтандартнаяОбработка, ПредложитьУстановить = Истина, Обновить = Ложь) Экспорт // Локализация - - Для Каждого Токен Из Токены Цикл - - Если Не ЗначениеЗаполнено(Токен.Слот) Тогда - Продолжить; - КонецЕсли; - - Если Токен.Сертификаты <> Неопределено И Не Обновить Тогда - Продолжить; - КонецЕсли; - - Сертификаты = Новый Соответствие; - Результат = Ждать СертификатыНаТокене(Токен, Неопределено, ПредложитьУстановить); - Если Результат.ПроверкаВыполнена Тогда - - Ошибки = Новый Массив; - Для Каждого Сертификат Из Результат.Сертификаты Цикл - СертификатКриптографии = Ждать ЭлектроннаяПодписьСлужебныйКлиент.СертификатИзСтроки(Сертификат); - Если ТипЗнч(СертификатКриптографии) = Тип("Строка") Тогда - Ошибки.Добавить(СертификатКриптографии); - Продолжить; - КонецЕсли; - Сертификаты.Вставить(Base64Строка(СертификатКриптографии.Отпечаток), Ждать СертификатКриптографии.ВыгрузитьАсинх()); - КонецЦикла; - - Если Ошибки.Количество() > 0 Тогда - Токен.Ошибка = СтрСоединить(Ошибки, Символы.ПС); - КонецЕсли; - Иначе - Токен.Ошибка = Результат.Ошибка; - КонецЕсли; - - ЗаписатьТокеныВКэш = Истина; - Токен.Сертификаты = Сертификаты; - - КонецЦикла; - + СтандартнаяОбработка = Ложь; + ПолучитьТокенПоСертификату(Оповещение, Сертификат, ПредложитьУстановить, Обновить); // Конец Локализация - Если ЗаписатьТокеныВКэш Тогда - УстановленныеКриптопровайдеры.Токены = Токены; - ЭлектроннаяПодписьСлужебныйКлиент.ЗаписатьВКэшУстановленныеКриптопровайдеры(УстановленныеКриптопровайдеры) - КонецЕсли; - - Возврат Токены; - -КонецФункции +КонецПроцедуры -// Сертификаты на токене. +// Получает сертификат на токене по отпечатку. // // Параметры: -// Токен - Структура -// ОбъектКомпоненты - Неопределено, ОбъектВнешнейКомпоненты -// ПредложитьУстановить - Булево - Предложить установить +// Оповещение - ОписаниеОповещения +// Отпечаток - Строка +// СтандартнаяОбработка - Булево +// ПредложитьУстановить - Булево - предложить установить компоненту. +// Обновить - Булево - обновить список сертификатов на токене в кэше. // // Возвращаемое значение: -// Обещание - Структура -// -Асинх Функция СертификатыНаТокене(Токен, ОбъектКомпоненты = Неопределено, ПредложитьУстановить = Ложь) Экспорт - - Результат = Новый Структура; - Результат.Вставить("ПроверкаВыполнена", Ложь); - Результат.Вставить("Сертификаты", Новый Массив); - Результат.Вставить("Ошибка", ""); +// СертификатКриптографии +// +Процедура ПриПолученииСертификатаПоОтпечаткуНаТокене(Оповещение, Отпечаток, СтандартнаяОбработка, ПредложитьУстановить = Истина, Обновить = Ложь) Экспорт // Локализация - - Если ОбъектКомпоненты = Неопределено Тогда - Попытка - ОбъектКомпоненты = Ждать ЭлектроннаяПодписьСлужебныйКлиент.ОбъектВнешнейКомпонентыExtraCryptoAPI(ПредложитьУстановить); - Исключение - Результат.Ошибка = ОбработкаОшибок.КраткоеПредставлениеОшибки(ИнформацияОбОшибке()); - Возврат Результат; - КонецПопытки; - КонецЕсли; - - Ждать ОчиститьОшибкиКомпоненты(ОбъектКомпоненты); - - Попытка - СертификатыНаТокене = Ждать ОбъектКомпоненты.PKCS11ПолучитьСписокСертификатовАсинх(Токен.Слот); - Ждать ОшибкаКомпоненты(ОбъектКомпоненты); - Результат.ПроверкаВыполнена = Истина; - Результат.Сертификаты = ЭлектроннаяПодписьСлужебныйКлиентСервер.ПрочитатьОтветКомпоненты(СертификатыНаТокене.Значение); - Исключение - ТекстОшибки = ОбработкаОшибок.КраткоеПредставлениеОшибки(ИнформацияОбОшибке()); - Если ЭтоОшибкаИнициализацииСлота(ТекстОшибки) Тогда - Результат.Ошибка = ОшибкаИнициализацииСлота(Токен); - Иначе - Результат.Ошибка = ТекстОшибки; - КонецЕсли; - Возврат Результат; - КонецПопытки; - + СтандартнаяОбработка = Ложь; + ПолучитьСертификатПоОтпечаткуНаТокене(Оповещение, Отпечаток, ПредложитьУстановить, Обновить); // Конец Локализация - Возврат Результат; - -КонецФункции +КонецПроцедуры -// Токен для шифрования. +// Получает сертификаты на токене. // // Параметры: +// Оповещение - ОписаниеОповещения - результат выполнения оповещения: Массив Из СертификатКриптографии. +// Токен - Структура +// СтандартнаяОбработка - Булево +// ПредложитьУстановить - Булево - предложить установить компоненту. +// Обновить - Булево - обновить список сертификатов на токене в кэше. +// +// Возвращаемое значение: +// +// +Процедура ПриПолученииСертификатовНаТокене(Оповещение, Токен, СтандартнаяОбработка, ПредложитьУстановить = Истина, Обновить = Ложь) Экспорт + + // Локализация + СтандартнаяОбработка = Ложь; + ПолучитьСертификатыНаТокене(Оповещение, Токен, ПредложитьУстановить, Обновить); + // Конец Локализация + +КонецПроцедуры + +// Находит токен для шифрования, поддерживающий алгоритм шифрования. +// +// Параметры: +// Оповещение - ОписаниеОповещения - результат выполнения оповещения: структура со свойствами токена. // Сертификат - СертификатКриптографии // АлгоритмШифрования - Строка - OID или см. ЭлектроннаяПодписьКлиент.Зашифровать.ОписаниеДанных.АлгоритмШифрования -// СвойстваСертификата - Структура -// * АлгоритмОткрытогоКлюча - Строка - OID -// -// Возвращаемое значение: -// Обещание - Структура +// СвойстваСертификата - Структура: +// * АлгоритмОткрытогоКлюча - Строка - OID +// СтандартнаяОбработка - Булево // -Асинх Функция ТокенДляШифрования(Сертификат, АлгоритмШифрования = Неопределено, СвойстваСертификата = Неопределено) Экспорт - Результат = Неопределено; +Процедура ПриПоискеТокенаДляШифрования(Оповещение, Сертификат, АлгоритмШифрования, СвойстваСертификата = Неопределено, + СтандартнаяОбработка = Истина) Экспорт // Локализация - УстановленныеКриптопровайдеры = Ждать ЭлектроннаяПодписьСлужебныйКлиент.УстановленныеКриптопровайдерыИзКэша(Истина); - Токены = УстановленныеКриптопровайдеры.Токены; - - Если Токены.Количество() = 0 Тогда - Возврат Неопределено; - КонецЕсли; - - Если СвойстваСертификата = Неопределено Или Не ЗначениеЗаполнено(СвойстваСертификата.АлгоритмОткрытогоКлюча) Тогда - ДанныеСертификата = Ждать Сертификат.ВыгрузитьАсинх(); - АлгоритмОткрытогоКлюча = ЭлектроннаяПодписьСлужебныйКлиентСервер.АлгоритмПодписиСертификата(ДанныеСертификата, Ложь, Истина); - Иначе - АлгоритмОткрытогоКлюча = СвойстваСертификата.АлгоритмОткрытогоКлюча; - КонецЕсли; - - Если АлгоритмОткрытогоКлюча <> "1.2.643.7.1.1.1.1" И АлгоритмОткрытогоКлюча <> "1.2.643.7.1.1.1.2" Тогда - Возврат Неопределено; - КонецЕсли; - - Если ЗначениеЗаполнено(АлгоритмШифрования) Тогда - АлгоритмШифрования = ЭлектроннаяПодписьКлиентСерверЛокализация.ПреобразованныйАлгоритмШифрования(АлгоритмШифрования); - Иначе - АлгоритмШифрования = "1.2.643.2.2.21"; - КонецЕсли; - - Для Каждого Токен Из Токены Цикл - Если ПоддержкаШифрования(Токен, АлгоритмШифрования) Тогда - Возврат Токен; - КонецЕсли; - КонецЦикла; - + СтандартнаяОбработка = Ложь; + НачатьПоискТокенаДляШифрования(Оповещение, Сертификат, АлгоритмШифрования, СвойстваСертификата); // Конец Локализация - Возврат Результат; -КонецФункции + +КонецПроцедуры // Текст ошибки содержит информацию, что введен неправильный пин-код токена. // @@ -675,318 +617,121 @@ Возврат Ложь; КонецФункции -// Подпись на токене. +// Получает токены. // // Параметры: -// ПараметрыПодписи - Структура: -// * Токен - Структура -// * Сертификат - СертификатКриптографии -// * Пароль - Строка -// * ТипПодписи - ПеречислениеСсылка.ТипыПодписиКриптографии -// * Открепленная - Булево -// * ТипПодписи - ПеречислениеСсылка.ТипыПодписиКриптографии -// * ОбъектКомпоненты - ОбъектВнешнейКомпоненты -// * ВключатьСертификатВПодпись - Булево -// Данные - ДвоичныеДанные -// -// Возвращаемое значение: -// Обещание - ДвоичныеДанные, Строка +// Оповещение - ОписаниеОповещения +// ПредложитьУстановить - Булево - предложить установить компоненту, если не установлена. +// СтандартнаяОбработка - Булево - стандартная обработка // -Асинх Функция ПодписьНаТокене(ПараметрыПодписи, Данные) Экспорт - - НедоступноСозданиеПодписиТекст = СтроковыеФункцииКлиентСервер.ПодставитьПараметрыВСтроку( - НСтр("ru= 'Недоступно создание подписи с типом %1 на токене.'"), ПараметрыПодписи.ТипПодписи); +Процедура ПриПолученииТокенов(Оповещение, ПредложитьУстановить = Истина, СтандартнаяОбработка = Истина) Экспорт // Локализация + СтандартнаяОбработка = Ложь; + ПолучитьТокены(Оповещение, ПредложитьУстановить); + // Конец Локализация - Если Не ЗначениеЗаполнено(ПараметрыПодписи.Токен.Пароль) Тогда - Возврат НСтр("ru = 'Укажите пин-код токена.'") - КонецЕсли; +КонецПроцедуры +// Получает отпечатки сертификатов на токенах. +// +// Параметры: +// Оповещение - ОписаниеОповещения +// ВключаяПросроченные - Булево +// ПредложитьУстановить - Булево - предложить установить компоненту, если не установлена. +// СтандартнаяОбработка - Булево - стандартная обработка +// +Процедура ПриПолученииОтпечатковСертификатовНаТокенах(Оповещение, ВключаяПросроченные = Ложь, + ПредложитьУстановить = Истина, СтандартнаяОбработка = Истина) Экспорт + + // Локализация + СтандартнаяОбработка = Ложь; + ПолучитьОтпечаткиСертификатовНаТокенах(Оповещение, ВключаяПросроченные, ПредложитьУстановить); + // Конец Локализация + +КонецПроцедуры + +// Выполняет подписание на токене. +// +// Параметры: +// ОповещениеОЗавершении - ОписаниеОповещения +// ПараметрыПодписи - Структура +// Данные - ДвоичныеДанные +// СтандартнаяОбработка - Булево +// +Процедура ПриПодписанииНаТокене(ОповещениеОЗавершении, ПараметрыПодписи, Данные, СтандартнаяОбработка = Истина) Экспорт + + // Локализация + СтандартнаяОбработка = Ложь; + Если ЗначениеЗаполнено(ПараметрыПодписи.ТипПодписи) И ПараметрыПодписи.ТипПодписи <> ПредопределенноеЗначение("Перечисление.ТипыПодписиКриптографии.БазоваяCAdESBES") Тогда - Возврат НедоступноСозданиеПодписиТекст; + НедоступноСозданиеПодписиТекст = СтроковыеФункцииКлиентСервер.ПодставитьПараметрыВСтроку( + НСтр("ru= 'Недоступно создание подписи с типом %1 на токене.'"), ПараметрыПодписи.ТипПодписи); + ВыполнитьОбработкуОповещения(ОповещениеОЗавершении, НедоступноСозданиеПодписиТекст); + Возврат; КонецЕсли; - ОбъектКомпоненты = ПараметрыПодписи.ОбъектКомпоненты; - Если ОбъектКомпоненты = Неопределено Тогда - Попытка - ОбъектКомпоненты = Ждать ЭлектроннаяПодписьСлужебныйКлиент.ОбъектВнешнейКомпонентыExtraCryptoAPI(Истина); - Исключение - Возврат ОбработкаОшибок.КраткоеПредставлениеОшибки(ИнформацияОбОшибке()); - КонецПопытки; - КонецЕсли; - - Ждать ОчиститьОшибкиКомпоненты(ОбъектКомпоненты); - - Попытка - ДанныеСертификата = Ждать ПараметрыПодписи.Сертификат.ВыгрузитьАсинх(); - СертификатСтрокой = ЭлектроннаяПодписьСлужебныйКлиентСервер.СертификатКриптографииBase64(ДанныеСертификата); - - Результат = Ждать ОбъектКомпоненты.PKCS11CMSSignАсинх(ПараметрыПодписи.Токен.Слот, ПараметрыПодписи.Токен.Пароль, - СертификатСтрокой, Данные, 0, ПараметрыПодписи.Открепленная, 0); - Ждать ОшибкаКомпоненты(ОбъектКомпоненты); - ПодписьCMS = Результат.Значение; - Если Не ЗначениеЗаполнено(ПодписьCMS) Тогда - ВызватьИсключение НСтр("ru = 'Не удалось создать подпись.'"); - КонецЕсли; - ДвоичныеДанныеПодписи = СтрЗаменить(ПодписьCMS, "-----BEGIN CMS-----", ""); - ДвоичныеДанныеПодписи = СтрЗаменить(ДвоичныеДанныеПодписи, "-----END CMS-----", ""); - ДвоичныеДанныеПодписи = СтрЗаменить(ДвоичныеДанныеПодписи, Символы.ВК, ""); - ДвоичныеДанныеПодписи = СтрЗаменить(ДвоичныеДанныеПодписи, Символы.ПС, ""); - ДвоичныеДанныеПодписи = Base64Значение(ДвоичныеДанныеПодписи); - Возврат ДвоичныеДанныеПодписи; - Исключение - НедоступноСозданиеПодписиТекст = ТекстОшибки(ОбработкаОшибок.КраткоеПредставлениеОшибки(ИнформацияОбОшибке()), - ПараметрыПодписи.Токен); - Если ЭтоОшибкаПомещенияПодписиВБуфер(НедоступноСозданиеПодписиТекст) Тогда - Возврат НСтр("ru= 'Не удалось создать подпись при взаимодействии библиотеки rtengine.dll с OpenSSL.'"); - КонецЕсли; - - КонецПопытки; - + ПодписатьНаТокене(ОповещениеОЗавершении, ПараметрыПодписи, Данные); // Конец Локализация - Возврат НедоступноСозданиеПодписиТекст; +КонецПроцедуры -КонецФункции - -// Проверяет подпись с помощью токена. -// -// Параметры: -// Данные - ДвоичныеДанные, Неопределено - если Неопределено, подпись будет проверяться как присоединенная. -// Подпись - ДвоичныеДанные -// ПараметрыПроверки - Структура: -// * АлгоритмПодписи - Строка -// * ОбъектКомпоненты - ОбъектВнешнейКомпоненты -// * ВернутьСертификатыДляПроверки - Булево -// -// Возвращаемое значение: -// Обещание - Проверить подпись -// -Асинх Функция ПроверитьПодпись(Данные, Подпись, ПараметрыПроверки) Экспорт - - Результат = Неопределено; - - // Локализация - - УстановленныеКриптопровайдеры = Ждать ЭлектроннаяПодписьСлужебныйКлиент.УстановленныеКриптопровайдерыИзКэша(Ложь); - Токены = УстановленныеКриптопровайдеры.Токены; - - Если Токены.Количество() = 0 Тогда - Возврат Результат; - КонецЕсли; - - ОбъектКомпоненты = ПараметрыПроверки.ОбъектКомпоненты; - Если ОбъектКомпоненты = Неопределено Тогда - Попытка - ОбъектКомпоненты = Ждать ЭлектроннаяПодписьСлужебныйКлиент.ОбъектВнешнейКомпонентыExtraCryptoAPI(Ложь); - Исключение - Возврат ОбработкаОшибок.КраткоеПредставлениеОшибки(ИнформацияОбОшибке()); - КонецПопытки; - КонецЕсли; - - Если ПараметрыПроверки.АлгоритмПодписи = Неопределено Тогда - АлгоритмПодписи = ЭлектроннаяПодписьСлужебныйКлиентСервер.АлгоритмСформированнойПодписи(Подпись); - Иначе - АлгоритмПодписи = ПараметрыПроверки.АлгоритмПодписи; - КонецЕсли; - - АлгоритмПодписи = СтрРазделить(АлгоритмПодписи, ",", Ложь); - АлгоритмПодписи = АлгоритмПодписи[0]; - - МеханизмПроверки = МеханизмПроверкиПодписи(АлгоритмПодписи); - IDТокена = Неопределено; - ЕстьАктивныеТокены = Ложь; - Если ЗначениеЗаполнено(МеханизмПроверки) Тогда - Для Каждого Токен Из Токены Цикл - Если Не ЗначениеЗаполнено(Токен.Механизмы) Тогда - Продолжить; - КонецЕсли; - ЕстьАктивныеТокены = Истина; - ПоддерживаетсяМеханизмПроверки = ПоддерживаетсяМеханизм(Токен, МеханизмПроверки); - Если ПоддерживаетсяМеханизмПроверки Тогда - IDТокена = Токены[0].Слот; - Прервать; - КонецЕсли; - КонецЦикла; - КонецЕсли; - - Если IDТокена = Неопределено Тогда - Если ЕстьАктивныеТокены Тогда - Результат = СтроковыеФункцииКлиентСервер.ПодставитьПараметрыВСтроку( - НСтр("ru = 'Не найдено токенов, поддерживающих проверку подписи с алгоритмом %1'"), АлгоритмПодписи); - Иначе - Возврат Результат; - КонецЕсли; - КонецЕсли; - - Ждать ОчиститьОшибкиКомпоненты(ОбъектКомпоненты); - - Попытка - ПодписьСтрока = "-----BEGIN CMS-----" + Символы.ПС + ЭлектроннаяПодписьСлужебныйКлиентСервер.СертификатКриптографииBase64(Подпись) - + Символы.ПС + "-----END CMS-----"; - - Если ПараметрыПроверки.ВернутьСертификатыДляПроверки Тогда - - РезультатПроверки = Ждать ОбъектКомпоненты.PKCS11CMSVerifySignАсинх(IDТокена, ПодписьСтрока, Данные, ""); - Ждать ОшибкаКомпоненты(ОбъектКомпоненты); - - Сертификаты = Новый Массив; - СертификатыПодписи = ПрочитатьЗначениеJSON(РезультатПроверки.Параметры[3]); - Для Каждого Сертификат Из СертификатыПодписи Цикл - СертификатИзСтроки = Ждать ЭлектроннаяПодписьСлужебныйКлиент.СертификатИзСтроки(Сертификат); - Сертификаты.Добавить(СертификатИзСтроки); - КонецЦикла; - - Возврат Сертификаты; - - Иначе - РезультатПроверки = Ждать ОбъектКомпоненты.PKCS11CMSVerifySignАсинх(IDТокена, ПодписьСтрока, Данные); - Ждать ОшибкаКомпоненты(ОбъектКомпоненты); - КонецЕсли; - - Результат = РезультатПроверки.Значение; - Исключение - - ТекстОшибки = ТекстОшибки(ОбработкаОшибок.КраткоеПредставлениеОшибки(ИнформацияОбОшибке()), Токены[0]); - - Если СтрНайти(ТекстОшибки, "error:1700009E") <> 0 Тогда - Возврат Нстр("ru = 'Хеш-значение неправильное'"); - КонецЕсли; - - Результат = СтрЗаменить(ТекстОшибки, Символы.ПС, ""); - - КонецПопытки; - - // Конец Локализация - - Возврат Результат; - -КонецФункции - -// Шифрование на токене. -// -// Параметры: -// ПараметрыШифрования - Структура -// Данные - ДвоичныеДанные -// -// Возвращаемое значение: -// Обещание - ДвоичныеДанные, Строка -// -Асинх Функция ШифрованиеНаТокене(ПараметрыШифрования, Данные) Экспорт - - Результат = НСтр("ru= 'Недоступно шифрование на токене.'"); - - // Локализация - - Если ПараметрыШифрования.Токен.Токен = Джакарта() Тогда - Возврат НСтр("ru = 'Шифрование средствами токена JaCarta недоступно, используйте Рутокен или приложения для работы с электронной подписью и шифрованием.'"); - КонецЕсли; - - Если ПараметрыШифрования.ОбъектКомпоненты = Неопределено Тогда - Попытка - ОбъектКомпоненты = Ждать ЭлектроннаяПодписьСлужебныйКлиент.ОбъектВнешнейКомпонентыExtraCryptoAPI(Истина); - Исключение - Возврат ОбработкаОшибок.КраткоеПредставлениеОшибки(ИнформацияОбОшибке()); - КонецПопытки; - КонецЕсли; - - Ждать ОчиститьОшибкиКомпоненты(ОбъектКомпоненты); - - Если ТипЗнч(ПараметрыШифрования.Сертификат) = Тип("Массив") Тогда - СертификатыДляШифрования = ПараметрыШифрования.Сертификат; - Иначе - СертификатыДляШифрования = ОбщегоНазначенияКлиентСервер.ЗначениеВМассиве(ПараметрыШифрования.Сертификат); - КонецЕсли; - - СертификатыДляШифрованияСтрокой = Новый Массив; - Попытка - Для Каждого Сертификат Из СертификатыДляШифрования Цикл - ДанныеСертификата = Ждать Сертификат.ВыгрузитьАсинх(); - СертификатыДляШифрованияСтрокой.Добавить(ЭлектроннаяПодписьСлужебныйКлиентСервер.СертификатКриптографииBase64(ДанныеСертификата)); - КонецЦикла; - СертификатыДляШифрованияСтрокой = ЗаписатьЗначениеJSON(СертификатыДляШифрованияСтрокой); - Исключение - Возврат ОбработкаОшибок.КраткоеПредставлениеОшибки(ИнформацияОбОшибке()); - КонецПопытки; - - Попытка - Результат = Ждать ОбъектКомпоненты.PKCS11CMSEncryptАсинх( - ПараметрыШифрования.Токен.Слот, Данные, СертификатыДляШифрованияСтрокой, - АлгоритмШифрованияЧисло(ПараметрыШифрования.АлгоритмШифрования)); - Ждать ОшибкаКомпоненты(ОбъектКомпоненты); - Если Не ЗначениеЗаполнено(Результат.Значение) Тогда - ВызватьИсключение НСтр("ru = 'Не удалось зашифровать данные.'"); - КонецЕсли; - ЗашифрованныеДанныеСтрокой = СтрЗаменить(Результат.Значение, "-----BEGIN CMS-----", ""); - ЗашифрованныеДанныеСтрокой = СтрЗаменить(ЗашифрованныеДанныеСтрокой, "-----END CMS-----", ""); - ЗашифрованныеДанныеСтрокой = СтрЗаменить(ЗашифрованныеДанныеСтрокой, Символы.ВК, ""); - ЗашифрованныеДанныеСтрокой = СтрЗаменить(ЗашифрованныеДанныеСтрокой, Символы.ПС, ""); - Результат = Base64Значение(ЗашифрованныеДанныеСтрокой); - - Исключение - Результат = ТекстОшибки(ОбработкаОшибок.КраткоеПредставлениеОшибки(ИнформацияОбОшибке()), ПараметрыШифрования.Токен); - КонецПопытки; - - // Конец Локализация - - Возврат Результат; -КонецФункции - -// Шифрование на токене. +// Выполняет расшифровку на токене. // // Параметры: +// ОповещениеОЗавершении - ОписаниеОповещения // ПараметрыРасшифровки - Структура // Данные - ДвоичныеДанные -// -// Возвращаемое значение: -// Обещание - ДвоичныеДанные, Строка +// СтандартнаяОбработка - Булево // -Асинх Функция РасшифровкаНаТокене(ПараметрыРасшифровки, Данные) Экспорт - - Результат = НСтр("ru= 'Недоступна расшифровка на токене.'"); - +Процедура ПриРасшифровкеНаТокене(ОповещениеОЗавершении, ПараметрыРасшифровки, Данные, СтандартнаяОбработка = Истина) Экспорт + // Локализация - - Если ПараметрыРасшифровки.Токен.Токен = Джакарта() Тогда - Возврат НСтр("ru = 'Расшифровка средствами токена JaCarta недоступна, используйте Рутокен или приложения для работы с электронной подписью и шифрованием.'"); - КонецЕсли; - + СтандартнаяОбработка = Ложь; Если Не ЗначениеЗаполнено(ПараметрыРасшифровки.Токен.Пароль) Тогда - Возврат НСтр("ru = 'Укажите пин-код токена.'") + ВыполнитьОбработкуОповещения(ОповещениеОЗавершении, НСтр("ru = 'Укажите пин-код токена.'")); + Возврат; КонецЕсли; - - Если ПараметрыРасшифровки.ОбъектКомпоненты = Неопределено Тогда - Попытка - ОбъектКомпоненты = Ждать ЭлектроннаяПодписьСлужебныйКлиент.ОбъектВнешнейКомпонентыExtraCryptoAPI(Истина); - Исключение - Возврат ОбработкаОшибок.КраткоеПредставлениеОшибки(ИнформацияОбОшибке()); - КонецПопытки; - КонецЕсли; - - Ждать ОчиститьОшибкиКомпоненты(ОбъектКомпоненты); - - Попытка - ДанныеСертификата = Ждать ПараметрыРасшифровки.Сертификат.ВыгрузитьАсинх(); - СертификатСтрокой = ЭлектроннаяПодписьСлужебныйКлиентСервер.СертификатКриптографииBase64(ДанныеСертификата); - ДанныеСтрока = "-----BEGIN CMS-----" + Символы.ПС + ЭлектроннаяПодписьСлужебныйКлиентСервер.СертификатКриптографииBase64(Данные) - + Символы.ПС + "-----END CMS-----"; - - Результат = Ждать ОбъектКомпоненты.PKCS11CMSDecryptАсинх(ПараметрыРасшифровки.Токен.Слот, ПараметрыРасшифровки.Токен.Пароль, ДанныеСтрока, СертификатСтрокой); - Ждать ОшибкаКомпоненты(ОбъектКомпоненты); - Если Не ЗначениеЗаполнено(Результат.Значение) Тогда - ВызватьИсключение НСтр("ru = 'Не удалось расшифровать данные.'"); - КонецЕсли; - Возврат Результат.Значение; - Исключение - Результат = ТекстОшибки(ОбработкаОшибок.КраткоеПредставлениеОшибки(ИнформацияОбОшибке()), ПараметрыРасшифровки.Токен); - КонецПопытки; - + РасшифроватьНаТокене(ОповещениеОЗавершении, ПараметрыРасшифровки, Данные); // Конец Локализация - Возврат Результат; -КонецФункции +КонецПроцедуры + +// Выполняет шифрование на токене. +// +// Параметры: +// ОповещениеОЗавершении - ОписаниеОповещения +// ПараметрыШифрования - Структура +// Данные - ДвоичныеДанные +// СтандартнаяОбработка - Булево +// +Процедура ПриШифрованииНаТокене(ОповещениеОЗавершении, ПараметрыШифрования, Данные, СтандартнаяОбработка = Истина) Экспорт + + // Локализация + СтандартнаяОбработка = Ложь; + ЗашифроватьНаТокене(ОповещениеОЗавершении, ПараметрыШифрования, Данные); + // Конец Локализация + +КонецПроцедуры + +// Выполняет проверку подписи на токене. +// +// Параметры: +// ОповещениеОЗавершении - ОписаниеОповещения +// Данные - ДвоичныеДанные +// Подпись - ДвоичныеДанные +// ПараметрыПроверки - Структура +// СтандартнаяОбработка - Булево +// +Процедура ПриПроверкеПодписиНаТокене(ОповещениеОЗавершении, Данные, Подпись, ПараметрыПроверки, СтандартнаяОбработка = Истина) Экспорт + + // Локализация + СтандартнаяОбработка = Ложь; + НачатьПоискТокенаДляПроверкиПодписи(ОповещениеОЗавершении, Данные, Подпись, ПараметрыПроверки); + // Конец Локализация + +КонецПроцедуры // Открывает форму установки программ криптопровайдеров. // @@ -1128,9 +873,9 @@ // При продолжении проверки установленных программ криптографии. // // Параметры: -// Контекст - Структура - -// РезультатПроверки - Структура - -// ЕстьПроверяемыеПрограммы - Булево - +// Контекст - Структура +// РезультатПроверки - Структура +// ЕстьПроверяемыеПрограммы - Булево // // Возвращаемое значение: // Обещание - Булево @@ -1218,11 +963,1159 @@ КонецПроцедуры +// Переопределяет процедуру добавления приложения электронной подписи. +// +// Параметры: +// СтандартнаяОбработка - Булево +// +Процедура ПриДобавленииПриложенияЭлектроннойПодписи(СтандартнаяОбработка) Экспорт + + // Локализация + СтандартнаяОбработка = Ложь; + ДобавитьПриложениеЭлектроннойПодписи(); + // Конец Локализация + +КонецПроцедуры + +// Дополняет список событий для обновления списка настроек приложений электронной подписи. +// +// Параметры: +// События - Массив +// +Процедура ПриПолученииСобытийИзмененияНастроекПрограмм(События) Экспорт + + // Локализация + События.Добавить(ВРег("Запись_НастройкиОтправкиВГосключ")); + События.Добавить(ВРег("Запись_УчетнойЗаписиDSS")); + // Конец Локализация + +КонецПроцедуры + + +// При открытии подписанта. +// +// Параметры: +// Форма - ФормаКлиентскогоПриложения +// Элемент - ПолеФормы +// СтандартнаяОбработка - Булево +// +Процедура ПодписантПриОткрытии(Форма, Элемент, СтандартнаяОбработка) Экспорт + + // Локализация + Если Не ОбщегоНазначенияКлиент.ПодсистемаСуществует("СтандартныеПодсистемы.СервисМобильнойПодписи") Тогда + Возврат; + КонецЕсли; + МодульСервисМобильнойПодписиСлужебныйКлиент = ОбщегоНазначенияКлиент.ОбщийМодуль("СервисМобильнойПодписиСлужебныйКлиент"); + МодульСервисМобильнойПодписиСлужебныйКлиент.ПодписантПриОткрытии(Форма, Элемент, СтандартнаяОбработка); + // Конец Локализация + +КонецПроцедуры + +// При создании подписанта. +// +// Параметры: +// Форма - ФормаКлиентскогоПриложения +// Элемент - ПолеФормы +// СтандартнаяОбработка - Булево +// +Процедура ПодписантПриСоздании(Форма, Элемент, СтандартнаяОбработка) Экспорт + + // Локализация + Если Не ОбщегоНазначенияКлиент.ПодсистемаСуществует("СтандартныеПодсистемы.СервисМобильнойПодписи") Тогда + Возврат; + КонецЕсли; + МодульСервисМобильнойПодписиСлужебныйКлиент = ОбщегоНазначенияКлиент.ОбщийМодуль("СервисМобильнойПодписиСлужебныйКлиент"); + МодульСервисМобильнойПодписиСлужебныйКлиент.ПодписантПриОткрытии(Форма, Элемент, СтандартнаяОбработка); + // Конец Локализация + +КонецПроцедуры + +// При очистке подписанта. +// +// Параметры: +// Форма - ФормаКлиентскогоПриложения +// Элемент - ПолеФормы +// СтандартнаяОбработка - Булево +// +Процедура ПодписантПриОчистке(Форма, Элемент, СтандартнаяОбработка) Экспорт + + // Локализация + Если Не ОбщегоНазначенияКлиент.ПодсистемаСуществует("СтандартныеПодсистемы.СервисМобильнойПодписи") Тогда + Возврат; + КонецЕсли; + МодульСервисМобильнойПодписиСлужебныйКлиент = ОбщегоНазначенияКлиент.ОбщийМодуль("СервисМобильнойПодписиСлужебныйКлиент"); + МодульСервисМобильнойПодписиСлужебныйКлиент.ПодписантПриОчистке(Форма, Элемент, СтандартнаяОбработка); + // Конец Локализация + +КонецПроцедуры + + #КонецОбласти // Локализация + #Область СлужебныеПроцедурыИФункции +#Область ТокеныЛокализация + +Процедура ВвестиПинКодТокена(ОписаниеОповещения) Экспорт + + ОткрытьФорму("Обработка.ПрограммыЭлектроннойПодписиИШифрования.Форма.ВводПинКода",, ЭтотОбъект, Истина, + ,, ОписаниеОповещения, РежимОткрытияОкнаФормы.БлокироватьОкноВладельца); + +КонецПроцедуры + +// Проверяет подпись с помощью токена. +// +// Параметры: +// Данные - ДвоичныеДанные, Неопределено - если Неопределено, подпись будет проверяться как присоединенная. +// Подпись - ДвоичныеДанные +// ПараметрыПроверки - Структура: +// * АлгоритмПодписи - Строка +// * ОбъектКомпоненты - ОбъектВнешнейКомпоненты +// * ВернутьСертификатыДляПроверки - Булево +// +// Возвращаемое значение: +// Обещание - Проверить подпись +// +Асинх Функция ПроверитьПодпись(Токен, Данные, Подпись, ПараметрыПроверки) Экспорт + + Результат = Неопределено; + + ОбъектКомпоненты = ПараметрыПроверки.ОбъектКомпоненты; + Если ОбъектКомпоненты = Неопределено Тогда + Попытка + ОбъектКомпоненты = Ждать ЭлектроннаяПодписьСлужебныйКлиент.ОбъектВнешнейКомпонентыExtraCryptoAPI(Ложь); + Исключение + Возврат ОбработкаОшибок.КраткоеПредставлениеОшибки(ИнформацияОбОшибке()); + КонецПопытки; + КонецЕсли; + + IDТокена = Токен.Слот; + + Ждать ОчиститьОшибкиКомпоненты(ОбъектКомпоненты); + + Попытка + ПодписьСтрока = "-----BEGIN CMS-----" + Символы.ПС + ЭлектроннаяПодписьСлужебныйКлиентСервер.СертификатКриптографииBase64(Подпись) + + Символы.ПС + "-----END CMS-----"; + + Если ПараметрыПроверки.ВернутьСертификатыДляПроверки Тогда + + РезультатПроверки = Ждать ОбъектКомпоненты.PKCS11CMSVerifySignАсинх(IDТокена, ПодписьСтрока, Данные, ""); + Ждать ОшибкаКомпоненты(ОбъектКомпоненты); + + Сертификаты = Новый Массив; + СертификатыПодписи = ПрочитатьЗначениеJSON(РезультатПроверки.Параметры[3]); + Для Каждого Сертификат Из СертификатыПодписи Цикл + СертификатИзСтроки = Ждать ЭлектроннаяПодписьСлужебныйКлиент.СертификатИзСтроки(Сертификат); + Сертификаты.Добавить(СертификатИзСтроки); + КонецЦикла; + + Возврат Сертификаты; + + Иначе + РезультатПроверки = Ждать ОбъектКомпоненты.PKCS11CMSVerifySignАсинх(IDТокена, ПодписьСтрока, Данные); + Ждать ОшибкаКомпоненты(ОбъектКомпоненты); + КонецЕсли; + + Результат = РезультатПроверки.Значение; + Исключение + + ТекстОшибки = ТекстОшибки(ОбработкаОшибок.КраткоеПредставлениеОшибки(ИнформацияОбОшибке()), Токен); + + Если СтрНайти(ТекстОшибки, "error:1700009E") <> 0 Тогда + Возврат Нстр("ru = 'Хеш-значение неправильное'"); + КонецЕсли; + + Результат = СтрЗаменить(ТекстОшибки, Символы.ПС, ""); + + КонецПопытки; + + Возврат Результат; + +КонецФункции + +Процедура ПослеПроверкиПодписи(Результат, Контекст) Экспорт + Если ТипЗнч(Результат) = Тип("Строка") Тогда + ВыполнитьОбработкуОповещения(Контекст.Оповещение, Результат); + ИначеЕсли Контекст.ПараметрыПроверки.ВернутьСертификатыДляПроверки Тогда + ВыполнитьОбработкуОповещения(Контекст.Оповещение, Результат.Сертификаты); + Иначе + ВыполнитьОбработкуОповещения(Контекст.Оповещение, Результат.Статус); + КонецЕсли; +КонецПроцедуры + +Асинх Процедура ПодписатьНаТокене(ОповещениеОЗавершении, ПараметрыПодписи, Данные) + + Контекст = Новый Структура("ПараметрыПодписи, Данные, Оповещение", ПараметрыПодписи, Данные, ОповещениеОЗавершении); + + Если Не ЗначениеЗаполнено(ПараметрыПодписи.Токен.Пароль) Тогда + ВвестиПинКодТокена(Новый ОписаниеОповещения("ПродолжитьПодписаниеПослеВводаПинКода", ЭтотОбъект, Контекст)); + Возврат; + КонецЕсли; + + ПродолжитьПодписаниеПослеВводаПинКода(ПараметрыПодписи.Токен.Пароль, Контекст); + +КонецПроцедуры + +Асинх Процедура ПродолжитьПодписаниеПослеВводаПинКода(ПинКод, Контекст) Экспорт + + Если Не ЗначениеЗаполнено(ПинКод) Тогда + ВыполнитьОбработкуОповещения(Контекст.Оповещение, НСтр("ru = 'Укажите пин-код токена.'")); + Возврат; + КонецЕсли; + + Контекст.ПараметрыПодписи.Токен.Пароль = ПинКод; + +#Если МобильныйКлиент Или МобильноеПриложениеКлиент Тогда + Оповещение = Новый ОписаниеОповещения("ПослеОперацииНаТокенеВМобильномКлиенте", ЭтотОбъект, Контекст); + НачатьПодписьНаТокенеВМобильномКлиенте(Оповещение, Контекст.ПараметрыПодписи, Контекст.Данные); + Возврат; +#КонецЕсли + + Результат = Ждать ПодписьНаТокене(Контекст.ПараметрыПодписи, Контекст.Данные); + ВыполнитьОбработкуОповещения(Контекст.Оповещение, Результат); + +КонецПроцедуры + +Асинх Процедура РасшифроватьНаТокене(ОповещениеОЗавершении, ПараметрыРасшифровки, Данные) + + Контекст = Новый Структура("ПараметрыРасшифровки, Данные, Оповещение", ПараметрыРасшифровки, Данные, ОповещениеОЗавершении); + Если Не ЗначениеЗаполнено(ПараметрыРасшифровки.Токен.Пароль) Тогда + ВвестиПинКодТокена(Новый ОписаниеОповещения("ПродолжитьРасшифровкуПослеВводаПинКода", ЭтотОбъект, Контекст)); + Возврат; + КонецЕсли; + + ПродолжитьРасшифровкуПослеВводаПинКода(ПараметрыРасшифровки.Токен.Пароль, Контекст); + +КонецПроцедуры + +Асинх Процедура ПродолжитьРасшифровкуПослеВводаПинКода(ПинКод, Контекст) Экспорт + + Если Не ЗначениеЗаполнено(ПинКод) Тогда + ВыполнитьОбработкуОповещения(Контекст.Оповещение, НСтр("ru = 'Укажите пин-код токена.'")); + Возврат; + КонецЕсли; + + Контекст.ПараметрыРасшифровки.Токен.Пароль = ПинКод; + +#Если МобильныйКлиент Или МобильноеПриложениеКлиент Тогда + Оповещение = Новый ОписаниеОповещения("ПослеОперацииНаТокенеВМобильномКлиенте", + ЭтотОбъект, Контекст); + НачатьРасшифровкуНаТокенеВМобильномКлиенте(Оповещение, Контекст.ПараметрыРасшифровки, Контекст.Данные); + Возврат; +#КонецЕсли + + Результат = Ждать РасшифровкаНаТокене(Контекст.ПараметрыРасшифровки, Контекст.Данные); + ВыполнитьОбработкуОповещения(Контекст.Оповещение, Результат); + +КонецПроцедуры + +Асинх Процедура ЗашифроватьНаТокене(ОповещениеОЗавершении, ПараметрыШифрования, Данные) + +#Если МобильныйКлиент Или МобильноеПриложениеКлиент Тогда + Контекст = Новый Структура("ПараметрыРасшифровки, Данные, Оповещение", ПараметрыШифрования, Данные, ОповещениеОЗавершении); + Оповещение = Новый ОписаниеОповещения("ПослеОперацииНаТокенеВМобильномКлиенте", + ЭтотОбъект, Контекст); + НачатьШифрованиеНаТокенеВМобильномКлиенте(Оповещение, ПараметрыШифрования, Данные); + Возврат; +#КонецЕсли + + Результат = Ждать ШифрованиеНаТокене(ПараметрыШифрования, Данные); + ВыполнитьОбработкуОповещения(ОповещениеОЗавершении, Результат); + +КонецПроцедуры + +Асинх Процедура НачатьПоискТокенаДляШифрования(Оповещение, Сертификат, АлгоритмШифрования, СвойстваСертификата) + +#Если МобильныйКлиент Или МобильноеПриложениеКлиент Тогда + Токены = Ждать ТокеныИзКэша(); + Если Не ЗначениеЗаполнено(Токены) Тогда + Контекст = Новый Структура; + Контекст.Вставить("Оповещение", Оповещение); + Контекст.Вставить("Сертификат", Сертификат); + Контекст.Вставить("АлгоритмШифрования", АлгоритмШифрования); + Контекст.Вставить("СвойстваСертификата", СвойстваСертификата); + НачатьПолучениеСертификатовНаТокенахВМобильномКлиенте( + Новый ОписаниеОповещения("НайтиТокенДляШифрованияПослеПоискаТокенов", ЭтотОбъект, Контекст)); + Возврат; + КонецЕсли; + ТокенДляШифрования = Ждать ПодходящийТокенДляШифрования(Токены, Сертификат, АлгоритмШифрования, СвойстваСертификата); +#Иначе + ТокенДляШифрования = Ждать ТокенДляШифрования(Сертификат, АлгоритмШифрования, СвойстваСертификата); +#КонецЕсли + + ВыполнитьОбработкуОповещения(Оповещение, ТокенДляШифрования); + +КонецПроцедуры + +Асинх Процедура НачатьПоискТокенаДляПроверкиПодписи(Оповещение, Данные, Подпись, ПараметрыПроверки) + +#Если МобильныйКлиент Или МобильноеПриложениеКлиент Тогда + Токены = Ждать ТокеныИзКэша(); + Если Не ЗначениеЗаполнено(Токены) Тогда + Контекст = Новый Структура; + Контекст.Вставить("Оповещение", Оповещение); + Контекст.Вставить("Данные", Данные); + Контекст.Вставить("Подпись", Подпись); + Контекст.Вставить("ПараметрыПроверки", ПараметрыПроверки); + НачатьПолучениеСертификатовНаТокенахВМобильномКлиенте( + Новый ОписаниеОповещения("ПроверитьПодписьПослеПоискаТокенов", ЭтотОбъект, Контекст)); + Возврат; + КонецЕсли; + ТокенДляПроверкиПодписи = ТокенДляПроверкиПодписи(Токены, ПараметрыПроверки, Подпись); + Если ТипЗнч(ТокенДляПроверкиПодписи) <> Тип("Структура") Тогда + ВыполнитьОбработкуОповещения(Оповещение, ТокенДляПроверкиПодписи); + Возврат; + КонецЕсли; + + НачатьПроверкуПодписиНаТокенеВМобильномКлиенте(Оповещение, ТокенДляПроверкиПодписи, Данные, Подпись, ПараметрыПроверки); + Возврат; +#Иначе + УстановленныеКриптопровайдеры = Ждать ЭлектроннаяПодписьСлужебныйКлиент.УстановленныеКриптопровайдерыИзКэша(Истина); + Токены = УстановленныеКриптопровайдеры.Токены; + + Если Токены.Количество() = 0 Тогда + ВыполнитьОбработкуОповещения(Оповещение, Неопределено); + Возврат; + КонецЕсли; + ТокенДляПроверкиПодписи = ТокенДляПроверкиПодписи(Токены, ПараметрыПроверки, Подпись); + Если ТипЗнч(ТокенДляПроверкиПодписи) <> Тип("Структура") Тогда + ВыполнитьОбработкуОповещения(Оповещение, ТокенДляПроверкиПодписи); + Возврат; + КонецЕсли; + + Результат = Ждать ПроверитьПодпись(ТокенДляПроверкиПодписи, Данные, Подпись, ПараметрыПроверки); + ВыполнитьОбработкуОповещения(Оповещение, Результат); + +#КонецЕсли + +КонецПроцедуры + +Процедура ПроверитьПодписьПослеПоискаТокенов(Токены, Контекст) Экспорт + + Если Токены.Количество() = 0 Тогда + ВыполнитьОбработкуОповещения(Контекст.Оповещение, Неопределено); + Возврат; + КонецЕсли; + + ТокенДляПроверкиПодписи = ТокенДляПроверкиПодписи(Токены, Контекст.ПараметрыПроверки, Контекст.Подпись); + Если ТипЗнч(ТокенДляПроверкиПодписи) <> Тип("Структура") Тогда + ВыполнитьОбработкуОповещения(Контекст.Оповещение, ТокенДляПроверкиПодписи); + Возврат; + КонецЕсли; + + НачатьПроверкуПодписиНаТокенеВМобильномКлиенте(Контекст.Оповещение, ТокенДляПроверкиПодписи, Контекст.Данные, + Контекст.Подпись, Контекст.ПараметрыПроверки); + +КонецПроцедуры + +Функция ТокенДляПроверкиПодписи(Токены, ПараметрыПроверки, Подпись) + + Если ПараметрыПроверки.АлгоритмПодписи = Неопределено Тогда + АлгоритмПодписи = ЭлектроннаяПодписьСлужебныйКлиентСервер.АлгоритмСформированнойПодписи(Подпись); + Иначе + АлгоритмПодписи = ПараметрыПроверки.АлгоритмПодписи; + КонецЕсли; + + АлгоритмПодписи = СтрРазделить(АлгоритмПодписи, ",", Ложь); + АлгоритмПодписи = АлгоритмПодписи[0]; + + МеханизмПроверки = МеханизмПроверкиПодписи(АлгоритмПодписи); + НайденТокен = Неопределено; + ЕстьАктивныеТокены = Ложь; + Если ЗначениеЗаполнено(МеханизмПроверки) Тогда + Для Каждого Токен Из Токены Цикл + Если Не ЗначениеЗаполнено(Токен.Механизмы) Тогда + Продолжить; + КонецЕсли; + ЕстьАктивныеТокены = Истина; + ПоддерживаетсяМеханизмПроверки = ПоддерживаетсяМеханизм(Токен, МеханизмПроверки); + Если ПоддерживаетсяМеханизмПроверки Тогда + НайденТокен = Токен; + Прервать; + КонецЕсли; + КонецЦикла; + КонецЕсли; + + Если НайденТокен = Неопределено Тогда + Если ЕстьАктивныеТокены Тогда + Возврат СтроковыеФункцииКлиентСервер.ПодставитьПараметрыВСтроку( + НСтр("ru = 'Не найдено токенов, поддерживающих проверку подписи с алгоритмом %1'"), АлгоритмПодписи); + Иначе + Возврат Неопределено; + КонецЕсли; + КонецЕсли; + + Возврат НайденТокен; + +КонецФункции + + +// Токен для шифрования. +// +// Параметры: +// Сертификат - СертификатКриптографии +// АлгоритмШифрования - Строка - OID или см. ЭлектроннаяПодписьКлиент.Зашифровать.ОписаниеДанных.АлгоритмШифрования +// СвойстваСертификата - Структура +// * АлгоритмОткрытогоКлюча - Строка - OID +// +// Возвращаемое значение: +// Обещание - Структура +// +Асинх Функция ТокенДляШифрования(Сертификат, АлгоритмШифрования = Неопределено, СвойстваСертификата = Неопределено) + + Результат = Неопределено; + + + УстановленныеКриптопровайдеры = Ждать ЭлектроннаяПодписьСлужебныйКлиент.УстановленныеКриптопровайдерыИзКэша(Истина); + Токены = УстановленныеКриптопровайдеры.Токены; + + Если Токены.Количество() = 0 Тогда + Возврат Неопределено; + КонецЕсли; + + Возврат Ждать ПодходящийТокенДляШифрования(Токены, Сертификат, АлгоритмШифрования, СвойстваСертификата); + +КонецФункции + +Асинх Процедура НайтиТокенДляШифрованияПослеПоискаТокенов(Токены, Контекст) Экспорт + + Если Не ЗначениеЗаполнено(Токены) Тогда + ВыполнитьОбработкуОповещения(Контекст.Оповещение, Неопределено); + Возврат; + КонецЕсли; + + ПодходящийТокенДляШифрования = Ждать ПодходящийТокенДляШифрования( + Токены, Контекст.Сертификат, Контекст.АлгоритмШифрования, Контекст.СвойстваСертификата); + ВыполнитьОбработкуОповещения(Контекст.Оповещение, ПодходящийТокенДляШифрования); + +КонецПроцедуры + +Асинх Функция ПодходящийТокенДляШифрования(Токены, Сертификат, АлгоритмШифрования, СвойстваСертификата) + + Если СвойстваСертификата = Неопределено Или Не ЗначениеЗаполнено(СвойстваСертификата.АлгоритмОткрытогоКлюча) Тогда + ДанныеСертификата = Ждать Сертификат.ВыгрузитьАсинх(); + АлгоритмОткрытогоКлюча = ЭлектроннаяПодписьСлужебныйКлиентСервер.АлгоритмПодписиСертификата(ДанныеСертификата, Ложь, Истина); + Иначе + АлгоритмОткрытогоКлюча = СвойстваСертификата.АлгоритмОткрытогоКлюча; + КонецЕсли; + + Если АлгоритмОткрытогоКлюча <> "1.2.643.7.1.1.1.1" И АлгоритмОткрытогоКлюча <> "1.2.643.7.1.1.1.2" Тогда + Возврат Неопределено; + КонецЕсли; + + Если ЗначениеЗаполнено(АлгоритмШифрования) Тогда + АлгоритмШифрования = ЭлектроннаяПодписьКлиентСерверЛокализация.ПреобразованныйАлгоритмШифрования(АлгоритмШифрования); + Иначе + АлгоритмШифрования = "1.2.643.2.2.21"; + КонецЕсли; + + Для Каждого Токен Из Токены Цикл + Если ПоддержкаШифрования(Токен, АлгоритмШифрования) Тогда + Возврат Токен; + КонецЕсли; + КонецЦикла; + + Возврат Неопределено; + +КонецФункции + +Асинх Процедура ПолучитьТокенПоСертификату(Оповещение, Сертификат, ПредложитьУстановить, Обновить) + +#Если МобильныйКлиент Или МобильноеПриложениеКлиент Тогда + Токены = Ждать ТокеныИзКэша(); + Если Не ЗначениеЗаполнено(Токены) Или Обновить Тогда + НачатьПолучениеСертификатовНаТокенахВМобильномКлиенте( + Новый ОписаниеОповещения("ПолучитьТокенПоСертификатуПослеПолученияСертификатовНаТокенах", ЭтотОбъект, + Новый Структура("Оповещение, Сертификат", Оповещение, Сертификат))); + Возврат; + КонецЕсли; +#Иначе + Токены = Ждать СертификатыНаТокенах(ПредложитьУстановить, Обновить); +#КонецЕсли + + Если Не ЗначениеЗаполнено(Токены) Тогда + ВыполнитьОбработкуОповещения(Оповещение, Неопределено); + Возврат; + КонецЕсли; + + ВыполнитьОбработкуОповещения(Оповещение, НайтиТокенПоСертификату(Сертификат, Токены)); + +КонецПроцедуры + +Асинх Процедура ПолучитьСертификатПоОтпечаткуНаТокене(Оповещение, Отпечаток, ПредложитьУстановить, Обновить) + +#Если МобильныйКлиент Или МобильноеПриложениеКлиент Тогда + Токены = Ждать ТокеныИзКэша(); + Если Не ЗначениеЗаполнено(Токены) Или Обновить Тогда + НачатьПолучениеСертификатовНаТокенахВМобильномКлиенте( + Новый ОписаниеОповещения("ПолучитьСертификатПоОтпечаткуПослеПолученияСертификатовНаТокене", ЭтотОбъект, + Новый Структура("Оповещение, Отпечаток", Оповещение, Отпечаток))); + Возврат; + КонецЕсли; +#Иначе + Токены = Ждать СертификатыНаТокенах(ПредложитьУстановить, Обновить); +#КонецЕсли + + Если Не ЗначениеЗаполнено(Токены) Тогда + ВыполнитьОбработкуОповещения(Оповещение, Неопределено); + Возврат; + КонецЕсли; + + ВыполнитьОбработкуОповещения(Оповещение, Ждать НайтиСертификатПоОтпечаткуНаТокене(Отпечаток, Токены)); + +КонецПроцедуры + +Асинх Процедура ПолучитьСертификатыНаТокене(Оповещение, Токен, ПредложитьУстановить, Обновить) + +#Если МобильныйКлиент Или МобильноеПриложениеКлиент Тогда + Токены = Ждать ТокеныИзКэша(); + Если Не ЗначениеЗаполнено(Токены) Или Обновить Тогда + НачатьПолучениеСертификатовНаТокенахВМобильномКлиенте( + Новый ОписаниеОповещения("ПолучитьСертификатыНаТокенеПослеПолученияТокена", ЭтотОбъект, + Новый Структура("Токен, Оповещение", Токен, Оповещение))); + Возврат; + КонецЕсли; + ОповеститьОСертификатахНаТокене(Токены, Токен, Оповещение); + Возврат; +#Иначе + Результат = Ждать СертификатыНаТокене(Токен, ПредложитьУстановить, Обновить); + СертификатыНаТокене = Результат.Сертификаты; + ВыполнитьОбработкуОповещения(Оповещение, СертификатыНаТокене); +#КонецЕсли + +КонецПроцедуры + +Процедура ПолучитьСертификатыНаТокенеПослеПолученияТокена(Токены, Контекст) Экспорт + ОповеститьОСертификатахНаТокене(Токены, Контекст.Токен, Контекст.Оповещение); +КонецПроцедуры + +Процедура ОповеститьОСертификатахНаТокене(Токены, Токен, Оповещение) + СертификатыНаТокене = Новый Массив; + Для Каждого ТекущийТокен Из Токены Цикл + Если ТекущийТокен.СерийныйНомер = Токен.СерийныйНомер Тогда + Для Каждого ТекущийСертификат Из ТекущийТокен.Сертификаты Цикл + СертификатыНаТокене.Добавить(ТекущийСертификат.Значение); + КонецЦикла; + КонецЕсли; + КонецЦикла; + ВыполнитьОбработкуОповещения(Оповещение, СертификатыНаТокене); +КонецПроцедуры + +Функция НайтиТокенПоСертификату(Сертификат, Токены) + + Отпечаток = Base64Строка(Сертификат.Отпечаток); + + Для Каждого Токен Из Токены Цикл + Если Токен.Сертификаты = Неопределено Тогда + Продолжить; + КонецЕсли; + ДанныеСертификата = Токен.Сертификаты.Получить(Отпечаток); + Если ДанныеСертификата <> Неопределено Тогда + Возврат Токен; + КонецЕсли; + КонецЦикла; + + Возврат Неопределено; + +КонецФункции + +Асинх Функция НайтиСертификатПоОтпечаткуНаТокене(Отпечаток, Токены) + + Для Каждого Токен Из Токены Цикл + Если Токен.Сертификаты = Неопределено Тогда + Продолжить; + КонецЕсли; + ДанныеСертификата = Токен.Сертификаты.Получить(Отпечаток); + Если ДанныеСертификата <> Неопределено Тогда + СертификатКриптографии = Новый СертификатКриптографии; + Ждать СертификатКриптографии.ИнициализироватьАсинх(ДанныеСертификата); + Возврат СертификатКриптографии; + КонецЕсли; + КонецЦикла; + + Возврат Неопределено; + +КонецФункции + +Асинх Процедура ПолучитьТокены(Оповещение, ПредложитьУстановить) + +#Если МобильныйКлиент Или МобильноеПриложениеКлиент Тогда + НачатьПолучениеСертификатовНаТокенахВМобильномКлиенте( + Новый ОписаниеОповещения("ПослеПолученияСвойствСертификатовНаТокенах", ЭтотОбъект, Оповещение)); + Возврат; +#КонецЕсли + + Токены = Ждать СертификатыНаТокенах(ПредложитьУстановить); + ВыполнитьОбработкуОповещения(Оповещение, Токены); + +КонецПроцедуры + +Асинх Процедура ПолучитьОтпечаткиСертификатовНаТокенах(Оповещение, ВключаяПросроченные, ПредложитьУстановить) + +#Если МобильныйКлиент Или МобильноеПриложениеКлиент Тогда + НачатьПолучениеСертификатовНаТокенахВМобильномКлиенте( + Новый ОписаниеОповещения("ПолучитьОтпечаткиПослеПолученияСвойствСертификатовНаТокенах", ЭтотОбъект, + Новый Структура("Оповещение, ВключаяПросроченные", Оповещение, ВключаяПросроченные))); + Возврат; +#КонецЕсли + + Токены = Ждать СертификатыНаТокенах(ПредложитьУстановить); + + Если Не ЗначениеЗаполнено(Токены) Тогда + ВыполнитьОбработкуОповещения(Оповещение, Новый Массив); + Возврат; + КонецЕсли; + + МассивОтпечатков = Ждать ПолучитьОтпечаткиСертификатовНаТокенахАсинх(Токены, ВключаяПросроченные); + ВыполнитьОбработкуОповещения(Оповещение, МассивОтпечатков); + +КонецПроцедуры + +Асинх Процедура ПолучитьОтпечаткиПослеПолученияСвойствСертификатовНаТокенах(Токены, ДополнительныеПараметры) Экспорт + + Если Не ЗначениеЗаполнено(Токены) Тогда + ВыполнитьОбработкуОповещения(ДополнительныеПараметры.Оповещение, Новый Массив); + Возврат; + КонецЕсли; + + МассивОтпечатков = Ждать ПолучитьОтпечаткиСертификатовНаТокенахАсинх(Токены, ДополнительныеПараметры.ВключаяПросроченные); + ВыполнитьОбработкуОповещения(ДополнительныеПараметры.Оповещение, МассивОтпечатков); + +КонецПроцедуры + +// Возвращает отпечатки сертификатов на токенах. +// +// Параметры: +// Токены - Массив +// ВключаяПросроченные - Булево - если Ложь, возвращаются только отпечатки действующих сертификатов. +// +// Возвращаемое значение: +// Обещание - Массив +// +Асинх Функция ПолучитьОтпечаткиСертификатовНаТокенахАсинх(Токены, ВключаяПросроченные) + + МассивОтпечатков = Новый Массив; + + Для Каждого Токен Из Токены Цикл + Если Токен.Сертификаты = Неопределено Тогда + Продолжить; + КонецЕсли; + Для Каждого СвойстваСертификата Из Токен.Сертификаты Цикл + Если ВключаяПросроченные Тогда + МассивОтпечатков.Добавить(СвойстваСертификата.Ключ); + Иначе + СертификатКриптографии = Новый СертификатКриптографии; + Ждать СертификатКриптографии.ИнициализироватьАсинх(СвойстваСертификата.Значение); + ДатыСертификата = ЭлектроннаяПодписьСлужебныйКлиентСервер.ДатыСертификата(СертификатКриптографии, + ЭлектроннаяПодписьСлужебныйКлиент.РазницаСУниверсальнымВременем()); + Если ДатыСертификата.ДействителенДо >= ОбщегоНазначенияКлиент.ДатаСеанса() Тогда + МассивОтпечатков.Добавить(СвойстваСертификата.Ключ); + КонецЕсли; + КонецЕсли; + КонецЦикла; + КонецЦикла; + + Возврат МассивОтпечатков; + +КонецФункции + +Процедура ПослеПолученияСвойствСертификатовНаТокенах(Токены, Оповещение) Экспорт + ВыполнитьОбработкуОповещения(Оповещение, Токены); +КонецПроцедуры + +// Подпись на токене. +// +// Параметры: +// ПараметрыПодписи - Структура: +// * Токен - Структура +// * Сертификат - СертификатКриптографии +// * Пароль - Строка +// * ТипПодписи - ПеречислениеСсылка.ТипыПодписиКриптографии +// * Открепленная - Булево +// * ТипПодписи - ПеречислениеСсылка.ТипыПодписиКриптографии +// * ОбъектКомпоненты - ОбъектВнешнейКомпоненты +// * ВключатьСертификатВПодпись - Булево +// Данные - ДвоичныеДанные +// +// Возвращаемое значение: +// Обещание - ДвоичныеДанные, Строка +// +Асинх Функция ПодписьНаТокене(ПараметрыПодписи, Данные) + + ОбъектКомпоненты = ПараметрыПодписи.ОбъектКомпоненты; + Если ОбъектКомпоненты = Неопределено Тогда + Попытка + ОбъектКомпоненты = Ждать ЭлектроннаяПодписьСлужебныйКлиент.ОбъектВнешнейКомпонентыExtraCryptoAPI(Истина); + Исключение + Возврат ОбработкаОшибок.КраткоеПредставлениеОшибки(ИнформацияОбОшибке()); + КонецПопытки; + КонецЕсли; + Ждать ОчиститьОшибкиКомпоненты(ОбъектКомпоненты); + + Попытка + ДанныеСертификата = Ждать ПараметрыПодписи.Сертификат.ВыгрузитьАсинх(); + СертификатСтрокой = ЭлектроннаяПодписьСлужебныйКлиентСервер.СертификатКриптографииBase64(ДанныеСертификата); + + Результат = Ждать ОбъектКомпоненты.PKCS11CMSSignАсинх(ПараметрыПодписи.Токен.Слот, ПараметрыПодписи.Токен.Пароль, + СертификатСтрокой, Данные, 0, ПараметрыПодписи.Открепленная, 0); + Ждать ОшибкаКомпоненты(ОбъектКомпоненты); + ПодписьCMS = Результат.Значение; + Если Не ЗначениеЗаполнено(ПодписьCMS) Тогда + ВызватьИсключение НСтр("ru = 'Не удалось создать подпись.'"); + КонецЕсли; + ДвоичныеДанныеПодписи = СтрЗаменить(ПодписьCMS, "-----BEGIN CMS-----", ""); + ДвоичныеДанныеПодписи = СтрЗаменить(ДвоичныеДанныеПодписи, "-----END CMS-----", ""); + ДвоичныеДанныеПодписи = СтрЗаменить(ДвоичныеДанныеПодписи, Символы.ВК, ""); + ДвоичныеДанныеПодписи = СтрЗаменить(ДвоичныеДанныеПодписи, Символы.ПС, ""); + ДвоичныеДанныеПодписи = Base64Значение(ДвоичныеДанныеПодписи); + Возврат ДвоичныеДанныеПодписи; + Исключение + НедоступноСозданиеПодписиТекст = ТекстОшибки(ОбработкаОшибок.КраткоеПредставлениеОшибки(ИнформацияОбОшибке()), + ПараметрыПодписи.Токен); + Если ЭтоОшибкаПомещенияПодписиВБуфер(НедоступноСозданиеПодписиТекст) Тогда + Возврат НСтр("ru= 'Не удалось создать подпись при взаимодействии библиотеки rtengine.dll с OpenSSL.'"); + КонецЕсли; + + КонецПопытки; + + Возврат НедоступноСозданиеПодписиТекст; + +КонецФункции + +// Шифрование на токене. +// +// Параметры: +// ПараметрыШифрования - Структура +// Данные - ДвоичныеДанные +// +// Возвращаемое значение: +// Обещание - ДвоичныеДанные, Строка +// +Асинх Функция ШифрованиеНаТокене(ПараметрыШифрования, Данные) + + Результат = НСтр("ru= 'Недоступно шифрование на токене.'"); + + Если ПараметрыШифрования.Токен.Токен = Джакарта() Тогда + Возврат НСтр("ru = 'Шифрование средствами токена JaCarta недоступно, используйте Рутокен или приложения для работы с электронной подписью и шифрованием.'"); + КонецЕсли; + + Если ПараметрыШифрования.ОбъектКомпоненты = Неопределено Тогда + Попытка + ОбъектКомпоненты = Ждать ЭлектроннаяПодписьСлужебныйКлиент.ОбъектВнешнейКомпонентыExtraCryptoAPI(Истина); + Исключение + Возврат ОбработкаОшибок.КраткоеПредставлениеОшибки(ИнформацияОбОшибке()); + КонецПопытки; + КонецЕсли; + + Ждать ОчиститьОшибкиКомпоненты(ОбъектКомпоненты); + + СертификатыДляШифрованияСтрокой = Ждать СертификатыДляШифрования(ПараметрыШифрования.Сертификат); + СертификатыДляШифрованияСтрокой = ЗаписатьЗначениеJSON(СертификатыДляШифрованияСтрокой); + + Попытка + Результат = Ждать ОбъектКомпоненты.PKCS11CMSEncryptАсинх( + ПараметрыШифрования.Токен.Слот, Данные, СертификатыДляШифрованияСтрокой, + АлгоритмШифрованияЧисло(ПараметрыШифрования.АлгоритмШифрования)); + Ждать ОшибкаКомпоненты(ОбъектКомпоненты); + Если Не ЗначениеЗаполнено(Результат.Значение) Тогда + ВызватьИсключение НСтр("ru = 'Не удалось зашифровать данные.'"); + КонецЕсли; + ЗашифрованныеДанныеСтрокой = СтрЗаменить(Результат.Значение, "-----BEGIN CMS-----", ""); + ЗашифрованныеДанныеСтрокой = СтрЗаменить(ЗашифрованныеДанныеСтрокой, "-----END CMS-----", ""); + ЗашифрованныеДанныеСтрокой = СтрЗаменить(ЗашифрованныеДанныеСтрокой, Символы.ВК, ""); + ЗашифрованныеДанныеСтрокой = СтрЗаменить(ЗашифрованныеДанныеСтрокой, Символы.ПС, ""); + Результат = Base64Значение(ЗашифрованныеДанныеСтрокой); + + Исключение + Результат = ТекстОшибки(ОбработкаОшибок.КраткоеПредставлениеОшибки(ИнформацияОбОшибке()), ПараметрыШифрования.Токен); + КонецПопытки; + + Возврат Результат; +КонецФункции + +Асинх Функция СертификатыДляШифрования(Сертификаты) + + Если ТипЗнч(Сертификаты) = Тип("Массив") Тогда + СертификатыДляШифрования = Сертификаты; + Иначе + СертификатыДляШифрования = ОбщегоНазначенияКлиентСервер.ЗначениеВМассиве(Сертификаты); + КонецЕсли; + + СертификатыДляШифрованияСтрокой = Новый Массив; + Попытка + Для Каждого Сертификат Из СертификатыДляШифрования Цикл + ДанныеСертификата = Ждать Сертификат.ВыгрузитьАсинх(); + СертификатыДляШифрованияСтрокой.Добавить(ЭлектроннаяПодписьСлужебныйКлиентСервер.СертификатКриптографииBase64(ДанныеСертификата)); + КонецЦикла; + Возврат СертификатыДляШифрованияСтрокой; + Исключение + Возврат ОбработкаОшибок.КраткоеПредставлениеОшибки(ИнформацияОбОшибке()); + КонецПопытки; + +КонецФункции + +// Шифрование на токене. +// +// Параметры: +// ПараметрыРасшифровки - Структура +// Данные - ДвоичныеДанные +// +// Возвращаемое значение: +// Обещание - ДвоичныеДанные, Строка +// +Асинх Функция РасшифровкаНаТокене(ПараметрыРасшифровки, Данные) + + Результат = НСтр("ru= 'Недоступна расшифровка на токене.'"); + + Если ПараметрыРасшифровки.Токен.Токен = Джакарта() Тогда + Возврат НСтр("ru = 'Расшифровка средствами токена JaCarta недоступна, используйте Рутокен или приложения для работы с электронной подписью и шифрованием.'"); + КонецЕсли; + + Если ПараметрыРасшифровки.ОбъектКомпоненты = Неопределено Тогда + Попытка + ОбъектКомпоненты = Ждать ЭлектроннаяПодписьСлужебныйКлиент.ОбъектВнешнейКомпонентыExtraCryptoAPI(Истина); + Исключение + Возврат ОбработкаОшибок.КраткоеПредставлениеОшибки(ИнформацияОбОшибке()); + КонецПопытки; + КонецЕсли; + + Ждать ОчиститьОшибкиКомпоненты(ОбъектКомпоненты); + + Попытка + ДанныеСертификата = Ждать ПараметрыРасшифровки.Сертификат.ВыгрузитьАсинх(); + СертификатСтрокой = ЭлектроннаяПодписьСлужебныйКлиентСервер.СертификатКриптографииBase64(ДанныеСертификата); + ДанныеСтрока = "-----BEGIN CMS-----" + Символы.ПС + ЭлектроннаяПодписьСлужебныйКлиентСервер.СертификатКриптографииBase64(Данные) + + Символы.ПС + "-----END CMS-----"; + + Результат = Ждать ОбъектКомпоненты.PKCS11CMSDecryptАсинх(ПараметрыРасшифровки.Токен.Слот, ПараметрыРасшифровки.Токен.Пароль, ДанныеСтрока, СертификатСтрокой); + Ждать ОшибкаКомпоненты(ОбъектКомпоненты); + Если Не ЗначениеЗаполнено(Результат.Значение) Тогда + ВызватьИсключение НСтр("ru = 'Не удалось расшифровать данные.'"); + КонецЕсли; + Возврат Результат.Значение; + Исключение + Результат = ТекстОшибки(ОбработкаОшибок.КраткоеПредставлениеОшибки(ИнформацияОбОшибке()), ПараметрыРасшифровки.Токен); + КонецПопытки; + + Возврат Результат; +КонецФункции + +// Сертификаты на токенах. +// +// Параметры: +// ПредложитьУстановить - Булево - Предложить установить. +// Обновить - Булево - Обновить список сертификатов на токене в кэше. +// +// Возвращаемое значение: +// Обещание - Массив Из Структура - Токены +// +Асинх Функция СертификатыНаТокенах(ПредложитьУстановить, Обновить = Ложь) + + УстановленныеКриптопровайдеры = Ждать ЭлектроннаяПодписьСлужебныйКлиент.УстановленныеКриптопровайдерыИзКэша(ПредложитьУстановить); + Токены = УстановленныеКриптопровайдеры.Токены; + ЗаписатьТокеныВКэш = Ложь; + + Для Каждого Токен Из Токены Цикл + + Если Не ЗначениеЗаполнено(Токен.Слот) Тогда + Продолжить; + КонецЕсли; + + Если Токен.Сертификаты <> Неопределено И Не Обновить Тогда + Продолжить; + КонецЕсли; + + Сертификаты = Новый Соответствие; + Результат = Ждать СертификатыНаТокене(Токен, Неопределено, ПредложитьУстановить); + Если Результат.ПроверкаВыполнена Тогда + + Ошибки = Новый Массив; + Для Каждого Сертификат Из Результат.Сертификаты Цикл + СертификатКриптографии = Ждать ЭлектроннаяПодписьСлужебныйКлиент.СертификатИзСтроки(Сертификат); + Если ТипЗнч(СертификатКриптографии) = Тип("Строка") Тогда + Ошибки.Добавить(СертификатКриптографии); + Продолжить; + КонецЕсли; + Сертификаты.Вставить(Base64Строка(СертификатКриптографии.Отпечаток), Ждать СертификатКриптографии.ВыгрузитьАсинх()); + КонецЦикла; + + Если Ошибки.Количество() > 0 Тогда + Токен.Ошибка = СтрСоединить(Ошибки, Символы.ПС); + КонецЕсли; + Иначе + Токен.Ошибка = Результат.Ошибка; + КонецЕсли; + + ЗаписатьТокеныВКэш = Истина; + Токен.Сертификаты = Сертификаты; + + КонецЦикла; + + Если ЗаписатьТокеныВКэш Тогда + УстановленныеКриптопровайдеры.Токены = Токены; + ЭлектроннаяПодписьСлужебныйКлиент.ЗаписатьВКэшУстановленныеКриптопровайдеры(УстановленныеКриптопровайдеры) + КонецЕсли; + + Возврат Токены; + +КонецФункции + +// Сертификаты на токене. +// +// Параметры: +// Токен - Структура +// ОбъектКомпоненты - Неопределено, ОбъектВнешнейКомпоненты +// ПредложитьУстановить - Булево - Предложить установить +// +// Возвращаемое значение: +// Обещание - Структура +// +Асинх Функция СертификатыНаТокене(Токен, ОбъектКомпоненты = Неопределено, ПредложитьУстановить = Ложь) Экспорт + + Результат = Новый Структура; + Результат.Вставить("ПроверкаВыполнена", Ложь); + Результат.Вставить("Сертификаты", Новый Массив); + Результат.Вставить("Ошибка", ""); + + Если ОбъектКомпоненты = Неопределено Тогда + Попытка + ОбъектКомпоненты = Ждать ЭлектроннаяПодписьСлужебныйКлиент.ОбъектВнешнейКомпонентыExtraCryptoAPI(ПредложитьУстановить); + Исключение + Результат.Ошибка = ОбработкаОшибок.КраткоеПредставлениеОшибки(ИнформацияОбОшибке()); + КонецПопытки; + + Если ЗначениеЗаполнено(Результат.Ошибка) Тогда + ЖурналРегистрацииКлиент.ДобавитьСообщениеДляЖурналаРегистрации( + НСтр("ru = 'Электронная подпись.Получение сертификатов на токене'", ОбщегоНазначенияКлиент.КодОсновногоЯзыка()), + "Ошибка", Результат.Ошибка,, Истина); + Возврат Результат; + КонецЕсли; + + КонецЕсли; + + Ждать ОчиститьОшибкиКомпоненты(ОбъектКомпоненты); + + Попытка + СертификатыНаТокене = Ждать ОбъектКомпоненты.PKCS11ПолучитьСписокСертификатовАсинх(Токен.Слот); + Ждать ОшибкаКомпоненты(ОбъектКомпоненты); + Результат.ПроверкаВыполнена = Истина; + Результат.Сертификаты = ЭлектроннаяПодписьСлужебныйКлиентСервер.ПрочитатьОтветКомпоненты(СертификатыНаТокене.Значение); + Исключение + ТекстОшибки = ОбработкаОшибок.КраткоеПредставлениеОшибки(ИнформацияОбОшибке()); + Если ЭтоОшибкаИнициализацииСлота(ТекстОшибки) Тогда + Результат.Ошибка = ОшибкаИнициализацииСлота(Токен); + Иначе + Результат.Ошибка = ТекстОшибки; + КонецЕсли; + КонецПопытки; + + Если ЗначениеЗаполнено(Результат.Ошибка) Тогда + ЖурналРегистрацииКлиент.ДобавитьСообщениеДляЖурналаРегистрации( + НСтр("ru = 'Электронная подпись.Получение сертификатов на токене'", ОбщегоНазначенияКлиент.КодОсновногоЯзыка()), + "Ошибка", Результат.Ошибка,, Истина); + КонецЕсли; + + Возврат Результат; + +КонецФункции + +#Область ТокеныВМобильномКлиенте + +Функция ФормаОперацииНаТокене() + + ИмяПараметра = "СтандартныеПодсистемы.ПараметрыЭлектроннойПодписиИШифрования"; + Если ПараметрыПриложения[ИмяПараметра] = Неопределено Тогда + ПараметрыПриложения.Вставить(ИмяПараметра, Новый Соответствие); + КонецЕсли; + + Форма = ПараметрыПриложения["СтандартныеПодсистемы.ПараметрыЭлектроннойПодписиИШифрования"].Получить("ОперацииНаТокене"); + + Если Форма = Неопределено Тогда + Форма = ОткрытьФорму("Обработка.ПрограммыЭлектроннойПодписиИШифрования.Форма.ОперацииНаТокене"); + ПараметрыПриложения["СтандартныеПодсистемы.ПараметрыЭлектроннойПодписиИШифрования"].Вставить("ОперацииНаТокене", Форма); + КонецЕсли; + + Возврат Форма; + +КонецФункции + +Функция ПараметрыОперацииНаТокене(Операция) + Возврат Новый Структура("Операция", Операция); +КонецФункции + +Процедура ПолучитьТокенПоСертификатуПослеПолученияСертификатовНаТокенах(Токены, Контекст) Экспорт + + Если Не ЗначениеЗаполнено(Токены) Тогда + ВыполнитьОбработкуОповещения(Контекст.Оповещение, Неопределено); + Возврат; + КонецЕсли; + + ВыполнитьОбработкуОповещения(Контекст.Оповещение, НайтиТокенПоСертификату(Контекст.Сертификат, Токены)); + +КонецПроцедуры + +Асинх Процедура ПолучитьСертификатПоОтпечаткуПослеПолученияСертификатовНаТокене(Токены, Контекст) Экспорт + + Если Не ЗначениеЗаполнено(Токены) Тогда + ВыполнитьОбработкуОповещения(Контекст.Оповещение, Неопределено); + Возврат; + КонецЕсли; + + ВыполнитьОбработкуОповещения(Контекст.Оповещение, Ждать НайтиСертификатПоОтпечаткуНаТокене(Контекст.Отпечаток, Токены)); + +КонецПроцедуры + +Асинх Функция ТокеныИзКэша() + + УстановленныеКриптопровайдеры = Ждать ЭлектроннаяПодписьСлужебныйКлиент.УстановленныеКриптопровайдерыИзКэша(Ложь); + Возврат УстановленныеКриптопровайдеры.Токены; + +КонецФункции + +Асинх Процедура НачатьПолучениеСертификатовНаТокенахВМобильномКлиенте(ОповещениеОЗавершении) + + Токены = Ждать ТокеныИзКэша(); + Если ЗначениеЗаполнено(Токены) Тогда + ВыполнитьОбработкуОповещения(ОповещениеОЗавершении, Токены); + Возврат; + КонецЕсли; + + ПараметрыФормы = ПараметрыОперацииНаТокене(ПолучениеСертификатов()); + + Оповещение = Новый ОписаниеОповещения("ПослеПолученияСертификатов", ЭтотОбъект, ОповещениеОЗавершении); + ПараметрыФормы.Вставить("Оповещение", Оповещение); + + Форма = ФормаОперацииНаТокене(); + Оповестить("БСП_ОперацииНаТокене", ПараметрыФормы); + +КонецПроцедуры + +Асинх Процедура ПослеПолученияСертификатов(Токены, Оповещение) Экспорт + + Если Не ЗначениеЗаполнено(Токены) Или ТипЗнч(Токены) = Тип("Строка") Тогда + ВыполнитьОбработкуОповещения(Оповещение, Новый Массив); + Возврат; + КонецЕсли; + + УстановленныеКриптопровайдеры = Ждать ЭлектроннаяПодписьСлужебныйКлиент.УстановленныеКриптопровайдерыИзКэша(Ложь); + УстановленныеКриптопровайдеры.Токены = Токены; + ЭлектроннаяПодписьСлужебныйКлиент.ЗаписатьВКэшУстановленныеКриптопровайдеры(УстановленныеКриптопровайдеры); + + ВыполнитьОбработкуОповещения(Оповещение, Токены); + +КонецПроцедуры + +Процедура НачатьПодписьНаТокенеВМобильномКлиенте(Оповещение, ПараметрыПодписи, Данные) + + ПараметрыОперации = Новый Структура("ВключатьСертификатВПодпись, Открепленная, ТипПодписи, Токен"); + ЗаполнитьЗначенияСвойств(ПараметрыОперации, ПараметрыПодписи); + ПараметрыОперации.Вставить("Отпечаток", Base64Строка(ПараметрыПодписи.Сертификат.Отпечаток)); + + ПараметрыФормы = ПараметрыОперацииНаТокене(Подписание()); + ПараметрыФормы.Вставить("ПараметрыОперации", ПараметрыОперации); + ПараметрыФормы.Вставить("Данные", Данные); + ПараметрыФормы.Вставить("Оповещение", Оповещение); + + Форма = ФормаОперацииНаТокене(); + Оповестить("БСП_ОперацииНаТокене", ПараметрыФормы); + +КонецПроцедуры + +Процедура НачатьРасшифровкуНаТокенеВМобильномКлиенте(Оповещение, ПараметрыРасшифровки, Данные) + + ПараметрыОперации = Новый Структура("Токен"); + ЗаполнитьЗначенияСвойств(ПараметрыОперации, ПараметрыРасшифровки); + ПараметрыОперации.Вставить("Отпечаток", Base64Строка(ПараметрыРасшифровки.Сертификат.Отпечаток)); + + ПараметрыФормы = ПараметрыОперацииНаТокене(Расшифровка()); + ПараметрыФормы.Вставить("ПараметрыОперации", ПараметрыОперации); + ПараметрыФормы.Вставить("Данные", Данные); + ПараметрыФормы.Вставить("Оповещение", Оповещение); + + Форма = ФормаОперацииНаТокене(); + Оповестить("БСП_ОперацииНаТокене", ПараметрыФормы); + +КонецПроцедуры + +Асинх Процедура НачатьШифрованиеНаТокенеВМобильномКлиенте(Оповещение, ПараметрыШифрования, Данные) + + ПараметрыОперации = Новый Структура("Токен, АлгоритмШифрования"); + ЗаполнитьЗначенияСвойств(ПараметрыОперации, ПараметрыШифрования); + + Если ЗначениеЗаполнено(ПараметрыОперации.АлгоритмШифрования) Тогда + АлгоритмШифрования = АлгоритмШифрованияСтрока(ПараметрыОперации.АлгоритмШифрования); + + Если АлгоритмШифрования = АлгоритмНеПоддерживается() Тогда + ВыполнитьОбработкуОповещения(Оповещение, СтроковыеФункцииКлиентСервер.ПодставитьПараметрыВСтроку( + НСтр("ru = 'На мобильном устройстве шифрование алгоритмом %1 будет реализовано позднее.'"), + ПараметрыОперации.АлгоритмШифрования)); + Возврат; + КонецЕсли; + + ПараметрыОперации.АлгоритмШифрования = АлгоритмШифрования; + КонецЕсли; + + СертификатыДляШифрования = Ждать СертификатыДляШифрования(ПараметрыШифрования.Сертификат); + ПараметрыОперации.Вставить("Сертификаты", СертификатыДляШифрования); + + ПараметрыФормы = ПараметрыОперацииНаТокене(Шифрование()); + ПараметрыФормы.Вставить("ПараметрыОперации", ПараметрыОперации); + ПараметрыФормы.Вставить("Данные", Данные); + ПараметрыФормы.Вставить("Оповещение", Оповещение); + + Форма = ФормаОперацииНаТокене(); + Оповестить("БСП_ОперацииНаТокене", ПараметрыФормы); + +КонецПроцедуры + +Асинх Процедура НачатьПроверкуПодписиНаТокенеВМобильномКлиенте(Оповещение, Токен, Данные, Подпись, ПараметрыПроверки) + + ПараметрыОперации = Новый Структура("Токен, Данные, Подпись, ОткрепленнаяПодпись"); + ЗаполнитьЗначенияСвойств(ПараметрыОперации, ПараметрыПроверки); + ПараметрыОперации.Вставить("Подпись", Подпись); + ПараметрыОперации.Вставить("Токен", Токен); + + ОписаниеОповещения = Новый ОписаниеОповещения("ПослеПроверкиПодписи", ЭтотОбъект, + Новый Структура("Оповещение, ПараметрыПроверки", Оповещение, ПараметрыПроверки)); + + ПараметрыФормы = ПараметрыОперацииНаТокене(ПроверкаПодписи()); + ПараметрыФормы.Вставить("ПараметрыОперации", ПараметрыОперации); + ПараметрыФормы.Вставить("Данные", Данные); + ПараметрыФормы.Вставить("Оповещение", ОписаниеОповещения); + + Форма = ФормаОперацииНаТокене(); + Оповестить("БСП_ОперацииНаТокене", ПараметрыФормы); + +КонецПроцедуры + +Процедура ПослеОперацииНаТокенеВМобильномКлиенте(Результат, Контекст) Экспорт + ВыполнитьОбработкуОповещения(Контекст.Оповещение, Результат); +КонецПроцедуры + +Функция ПолучениеСертификатов() Экспорт + Возврат "ПолучениеСертификатов"; +КонецФункции + +Функция Подписание() Экспорт + Возврат "Подписание"; +КонецФункции + +Функция Шифрование() Экспорт + Возврат "Шифрование"; +КонецФункции + +Функция Расшифровка() Экспорт + Возврат "Расшифровка"; +КонецФункции + +Функция ПроверкаПодписи() Экспорт + Возврат "ПроверкаПодписи"; +КонецФункции + +#КонецОбласти + Функция ТекстОшибки(ТекстОшибки, Токен) Если Токен.Токен = Рутокен() Тогда @@ -1362,9 +2255,9 @@ Возврат Ждать ОшибкаКомпоненты(ОбъектКомпоненты, Ложь); КонецФункции -Функция МодельТокена(Модель, ТипУстройства = Неопределено) +Функция МодельТокена(Модель, ТипУстройства = Неопределено) Экспорт - Если СтрНачинаетсяС(НРег(Модель), "rutokenecp") Тогда + Если СтрНачинаетсяС(НРег(Модель), "rutokenecp") Или СтрНачинаетсяС(НРег(Модель), "rutoken ecp") Тогда Возврат НСтр("ru = 'Рутокен ЭЦП'"); ИначеЕсли СтрНачинаетсяС(НРег(Модель), "rutokenlite") Тогда Возврат НСтр("ru = 'Рутокен Lite'"); @@ -1417,7 +2310,7 @@ Функция ПредставлениеСерийногоНомера(ТипУстройства, СерийныйНомер) - Если ТипУстройства = Рутокен() Тогда + Если НРег(ТипУстройства) = Рутокен() Тогда Возврат Формат(ЧислоИзШестнадцатеричнойСтроки("0x" + СерийныйНомер), "ЧГ=0;"); КонецЕсли; Возврат СерийныйНомер; @@ -1426,24 +2319,24 @@ Функция МеханизмПроверкиПодписи(АлгоритмПодписи) Если АлгоритмПодписи = "ГОСТ 34.10-2012 256" Тогда - Возврат "CKM_GOSTR3410_WITH_GOSTR3411_12_256" + Возврат "3560050696"; // "CKM_GOSTR3410_WITH_GOSTR3411_12_256" ИначеЕсли АлгоритмПодписи = "ГОСТ 34.10-2012 512" Тогда - Возврат "CKM_GOSTR3410_WITH_GOSTR3411_12_512" + Возврат "3560050697"; // "CKM_GOSTR3410_WITH_GOSTR3411_12_512" ИначеЕсли АлгоритмПодписи = "ГОСТ 34.10-2001" Тогда - Возврат "CKM_GOSTR3410" + Возврат "4609"; //"CKM_GOSTR3410" ИначеЕсли АлгоритмПодписи = "RSA_SIGN" Тогда - Возврат "CKM_RSA_PKCS"; + Возврат "1"; // "CKM_RSA_PKCS"; КонецЕсли; Возврат ""; КонецФункции Функция МеханизмШифрования(АлгоритмШифрования) Если АлгоритмШифрования = "1.2.643.2.2.21" Тогда - Возврат "CKM_GOST28147_ECB" + Возврат "4641"; // "CKM_GOST28147_ECB" ИначеЕсли АлгоритмШифрования = "1.2.643.7.1.1.5.2.1" Тогда - Возврат "CKM_KUZNECHIK_ECB" + Возврат "3560050737"; // "CKM_KUZNECHIK_ECB" ИначеЕсли АлгоритмШифрования = "1.2.643.7.1.1.5.1.1" Тогда - Возврат "CKM_MAGMA_ECB" + Возврат "3560050741"; //"CKM_MAGMA_ECB" КонецЕсли; Возврат ""; КонецФункции @@ -1458,6 +2351,20 @@ Возврат 813; // id-tc26-gost-28147-param-Z КонецФункции +Функция АлгоритмШифрованияСтрока(АлгоритмШифрования) + АлгоритмШифрования = ЭлектроннаяПодписьКлиентСерверЛокализация.ПреобразованныйАлгоритмШифрования(АлгоритмШифрования); + Если АлгоритмШифрования = "1.2.643.7.1.1.5.2.1" Тогда + Возврат АлгоритмНеПоддерживается(); + ИначеЕсли АлгоритмШифрования = "1.2.643.7.1.1.5.1.1" Тогда + Возврат АлгоритмНеПоддерживается(); + КонецЕсли; + Возврат "GOST28147_GCFB"; +КонецФункции + +Функция АлгоритмНеПоддерживается() + Возврат "АлгоритмНеПоддерживается"; +КонецФункции + Функция ПоддерживаетсяМеханизм(Токен, Механизм) Если Не ЗначениеЗаполнено(Токен.Механизмы) Тогда @@ -1479,6 +2386,19 @@ "Ошибка", ТекстОшибки,, Истина); Возврат Ложь; КонецПопытки; + +#Если МобильныйКлиент Или МобильноеПриложениеКлиент Тогда + Если Не ТипЗнч(СписокМеханизмов) = Тип("Массив") Тогда + Возврат Ложь; + КонецЕсли; + + Для Каждого Элемент Из СписокМеханизмов Цикл + Если СокрЛП(Формат(Элемент.CK_MECHANISM,"ЧГ=0" )) = Механизм Тогда + Возврат Истина; + КонецЕсли; + КонецЦикла; + +#Иначе Если Не ТипЗнч(СписокМеханизмов) = Тип("Структура") Или Не СписокМеханизмов.Свойство("support_mechanisms") Тогда @@ -1488,15 +2408,19 @@ СписокМеханизмов = СписокМеханизмов["support_mechanisms"]; Для Каждого Элемент Из СписокМеханизмов Цикл - Если СокрЛП(Элемент.name) = Механизм Тогда + Если СокрЛП(Формат(Элемент.type,"ЧГ=0" )) = Механизм Тогда Возврат Истина; КонецЕсли; КонецЦикла; - Возврат Ложь; +#КонецЕсли + Возврат Ложь; + КонецФункции +#КонецОбласти + #Область УстановкаКриптопровайдеровЛокализация #Область УстановитьCryptoPRO @@ -1829,6 +2753,38 @@ #КонецОбласти +#Область ДобавлениеПрограммыЭлектроннойПодписи + +Процедура ДобавитьПриложениеЭлектроннойПодписи() + + Оповещение = Новый ОписаниеОповещения("ДобавлениеПрограммыЭлектроннойПодписиПослеВыбора", ЭтотОбъект); + НоваяФорма = ОткрытьФорму("Обработка.ПрограммыЭлектроннойПодписиИШифрования.Форма.ДобавлениеПриложения",,,,,, + Оповещение, РежимОткрытияОкнаФормы.БлокироватьОкноВладельца); + Если НоваяФорма = Неопределено Тогда + ЭлектроннаяПодписьСлужебныйКлиент.ОткрытьФормуПрограммы(); + КонецЕсли; + +КонецПроцедуры + +Процедура ДобавлениеПрограммыЭлектроннойПодписиПослеВыбора(Результат, Контекст) Экспорт + + Если Результат = Неопределено Тогда + Возврат; + КонецЕсли; + + Если Результат = "ОблачнаяПодпись" Тогда + МодульСервисКриптографииDSSКлиент = ОбщегоНазначенияКлиент.ОбщийМодуль("СервисКриптографииDSSКлиент"); + МодульСервисКриптографииDSSКлиент.ОткрытьСведенияУчетнойЗаписи(Неопределено, Неопределено); + ИначеЕсли Результат = "НастройкаОтправкиВГосключ" Тогда + МодульСервисМобильнойПодписиСлужебныйКлиент = ОбщегоНазначенияКлиент.ОбщийМодуль("СервисМобильнойПодписиСлужебныйКлиент"); + МодульСервисМобильнойПодписиСлужебныйКлиент.ДобавитьНастройкуОтправкиВГосключ(); + Иначе + ЭлектроннаяПодписьСлужебныйКлиент.ОткрытьФормуПрограммы(); + КонецЕсли; + +КонецПроцедуры + +#КонецОбласти #КонецОбласти diff --git a/SSL/src/CommonModules/ЭлектроннаяПодписьКлиентПереопределяемый/Module.bsl b/SSL/src/CommonModules/ЭлектроннаяПодписьКлиентПереопределяемый/Module.bsl index 162410872..1a8048a4f 100644 --- a/SSL/src/CommonModules/ЭлектроннаяПодписьКлиентПереопределяемый/Module.bsl +++ b/SSL/src/CommonModules/ЭлектроннаяПодписьКлиентПереопределяемый/Module.bsl @@ -1,5 +1,5 @@ /////////////////////////////////////////////////////////////////////////////////////////////////////// -// Copyright (c) 2024, ООО 1С-Софт +// Copyright (c) 2025, ООО 1С-Софт // Все права защищены. Эта программа и сопроводительные материалы предоставляются // в соответствии с условиями лицензии Attribution 4.0 International (CC BY 4.0) // Текст лицензии доступен по ссылке: diff --git a/SSL/src/CommonModules/ЭлектроннаяПодписьКлиентСервер/Module.bsl b/SSL/src/CommonModules/ЭлектроннаяПодписьКлиентСервер/Module.bsl index e7386e9cc..16705bff0 100644 --- a/SSL/src/CommonModules/ЭлектроннаяПодписьКлиентСервер/Module.bsl +++ b/SSL/src/CommonModules/ЭлектроннаяПодписьКлиентСервер/Module.bsl @@ -1,5 +1,5 @@ /////////////////////////////////////////////////////////////////////////////////////////////////////// -// Copyright (c) 2024, ООО 1С-Софт +// Copyright (c) 2025, ООО 1С-Софт // Все права защищены. Эта программа и сопроводительные материалы предоставляются // в соответствии с условиями лицензии Attribution 4.0 International (CC BY 4.0) // Текст лицензии доступен по ссылке: @@ -253,7 +253,7 @@ СвойстваПодписи.РезультатПроверки.ОшибкаПроверкиДополнительныхАтрибутов; Иначе СвойстваПодписи.РезультатПроверкиКраткий = СтроковыеФункцииКлиентСервер.ПодставитьПараметрыВСтроку( - НСтр("ru = 'Ожидается подписание документа в 1С: Мобильная подпись с %1'"), СвойстваПодписи.ДатаПодписи); + НСтр("ru = 'Ожидается подписание документа с %1'"), СвойстваПодписи.ДатаПодписи); КонецЕсли; Возврат; КонецЕсли; diff --git a/SSL/src/CommonModules/ЭлектроннаяПодписьКлиентСерверЛокализация/Module.bsl b/SSL/src/CommonModules/ЭлектроннаяПодписьКлиентСерверЛокализация/Module.bsl index ab0654e57..5a1a9a592 100644 --- a/SSL/src/CommonModules/ЭлектроннаяПодписьКлиентСерверЛокализация/Module.bsl +++ b/SSL/src/CommonModules/ЭлектроннаяПодписьКлиентСерверЛокализация/Module.bsl @@ -1,5 +1,5 @@ /////////////////////////////////////////////////////////////////////////////////////////////////////// -// Copyright (c) 2024, ООО 1С-Софт +// Copyright (c) 2025, ООО 1С-Софт // Все права защищены. Эта программа и сопроводительные материалы предоставляются // в соответствии с условиями лицензии Attribution 4.0 International (CC BY 4.0) // Текст лицензии доступен по ссылке: @@ -237,6 +237,27 @@ КонецПроцедуры +// При определении доступности приложения. +// +// Параметры: +// Параметры - ВыборкаИзРезультатаЗапроса, Структура +// Структура - Структура +// +Процедура ПриОпределенииДоступностиПриложения(Параметры, Структура) Экспорт + + // Локализация + ТипРазмещения = Параметры.ТипРазмещения + ?(Параметры.ПометкаУдаления, 4, 0); + Если Параметры.ИмяПрограммы = "Госключ" И Не Параметры.ПометкаУдаления + Или ЭлектроннаяПодписьСлужебныйКлиентСервер.РазмещениеСертификата(Параметры.ТипРазмещения) = "ОблачнаяПодпись" + И Не Параметры.ПометкаУдаления Или ТипРазмещения = 5 Тогда + Структура.Вставить("РезультатПроверки", НСтр("ru = 'Доступен.'")); + Структура.Вставить("Установлена", Истина); + КонецЕсли; + // Конец Локализация + +КонецПроцедуры + + // Адрес списка отзыва, расположенного на другом ресурсе. // // Параметры: diff --git a/SSL/src/CommonModules/ЭлектроннаяПодписьЛокализация/Module.bsl b/SSL/src/CommonModules/ЭлектроннаяПодписьЛокализация/Module.bsl index ae4acdc03..af5102dc8 100644 --- a/SSL/src/CommonModules/ЭлектроннаяПодписьЛокализация/Module.bsl +++ b/SSL/src/CommonModules/ЭлектроннаяПодписьЛокализация/Module.bsl @@ -1,5 +1,5 @@ /////////////////////////////////////////////////////////////////////////////////////////////////////// -// Copyright (c) 2024, ООО 1С-Софт +// Copyright (c) 2025, ООО 1С-Софт // Все права защищены. Эта программа и сопроводительные материалы предоставляются // в соответствии с условиями лицензии Attribution 4.0 International (CC BY 4.0) // Текст лицензии доступен по ссылке: @@ -68,7 +68,8 @@ МодульСервисМобильнойПодписи = ОбщегоНазначения.ОбщийМодуль( "СервисМобильнойПодписи"); - Используется = МодульСервисМобильнойПодписи.ИспользоватьСервисМобильнойПодписи(); + Используется = МодульСервисМобильнойПодписи.ИспользоватьСервисМобильнойПодписи() + Или МодульСервисМобильнойПодписи.ИспользоватьГосключ(); // Конец Локализация КонецПроцедуры @@ -143,6 +144,53 @@ КонецПроцедуры +// Помечает на удаление настройку для подписания в сервисе. +// +// Параметры: +// Программа - СправочникСсылка +// УникальныйИдентификатор - УникальныйИдентификатор +// СтандартнаяОбработка - Булево +// +Процедура ПриИзмененииПометкиУдаленияПриложения(Программа, УникальныйИдентификатор, СтандартнаяОбработка) Экспорт + + // Локализация + Если ТипЗнч(Программа) = ЭлектроннаяПодписьСлужебный.ТипПрограммыСервисаПодписи() Тогда + СтандартнаяОбработка = Ложь; + МодульСервисКриптографииDSSСлужебный = ОбщегоНазначения.ОбщийМодуль("СервисКриптографииDSSСлужебный"); + МодульСервисКриптографииDSSСлужебный.ИзменитьПометкуУдаленияПрограммы(Программа, УникальныйИдентификатор); + Возврат; + КонецЕсли; + + Если ОбщегоНазначения.ПодсистемаСуществует("СтандартныеПодсистемы.СервисМобильнойПодписи") Тогда + МодульСервисМобильнойПодписиСлужебный = ОбщегоНазначения.ОбщийМодуль("СервисМобильнойПодписиСлужебный"); + МодульСервисМобильнойПодписиСлужебный.ИзменитьПометкуУдаленияНастройки(Программа, УникальныйИдентификатор, СтандартнаяОбработка); + КонецЕсли; + + // Конец Локализация + +КонецПроцедуры + +// При заполнении приложений электронной подписи. +// +// Параметры: +// ТаблицаПриложений - ТаблицаЗначений +// +Процедура ПриЗаполненииПриложенийЭлектроннойПодписи(ТаблицаПриложений) Экспорт + + // Локализация + Если ЭлектроннаяПодписьСлужебный.ИспользоватьСервисОблачнойПодписи() Тогда + МодульСервисКриптографииDSSСлужебный = ОбщегоНазначения.ОбщийМодуль("СервисКриптографииDSSСлужебный"); + МодульСервисКриптографииDSSСлужебный.ДополнитьВыборкуПрограмм(ТаблицаПриложений); + КонецЕсли; + + Если ЭлектроннаяПодпись.ИспользоватьСервисМобильнойПодписи() Тогда + МодульСервисМобильнойПодписиСлужебный = ОбщегоНазначения.ОбщийМодуль("СервисМобильнойПодписиСлужебный"); + МодульСервисМобильнойПодписиСлужебный.ДополнитьВыборкуПриложений(ТаблицаПриложений); + КонецЕсли; + // Конец Локализация + +КонецПроцедуры + // При загрузке машиночитаемых доверенностей. // // Параметры: @@ -807,6 +855,98 @@ КонецПроцедуры +// При настройке формы общих настроек. +// +// Параметры: +// Форма - ФормаКлиентскогоПриложения +// РеквизитПутьКДанным - Строка +// РазрешенДоступКИнтернетСервисам - Булево +// ОбщиеНастройки - см. ЭлектроннаяПодпись.ОбщиеНастройки +// СтандартнаяОбработка - Булево +// +Процедура ПриНастройкеФормыОбщихНастроек(Форма, РеквизитПутьКДанным, РазрешенДоступКИнтернетСервисам, ОбщиеНастройки, СтандартнаяОбработка) Экспорт + + // Локализация + + СтандартнаяОбработка = Ложь; + Элементы = Форма.Элементы; + + Если ОбщегоНазначения.ПодсистемаСуществует("СтандартныеПодсистемы.СервисМобильнойПодписи") Тогда + Если РеквизитПутьКДанным = "НаборКонстант.ИспользоватьГосключ" + Или РеквизитПутьКДанным = "НаборКонстант.ИспользоватьСервисМобильнойПодписи" Или РеквизитПутьКДанным = "" + Или РеквизитПутьКДанным = "РазрешитьДоступКИнтернетСервисамЭлектроннойПодписи" + Или РеквизитПутьКДанным = "РазрешитьДоступКИнтернетСервисам" Тогда + + МодульСервисМобильнойПодписи = ОбщегоНазначения.ОбщийМодуль("СервисМобильнойПодписи"); + ИспользоватьГосключ = МодульСервисМобильнойПодписи.ИспользоватьГосключ(); + Элементы.НастройкиОтправкиВГосключ.Видимость = ИспользоватьГосключ; + Элементы.ПодписантыСервисаМобильнойПодписи.Видимость = ИспользоватьГосключ Или МодульСервисМобильнойПодписи.ИспользоватьСервисМобильнойПодписи(); + + Элементы.ИспользоватьСервисМобильнойПодписи.Видимость = Ложь; + КонецЕсли; + + КонецЕсли; + + Если ОбщегоНазначения.ПодсистемаСуществует("СтандартныеПодсистемы.ЭлектроннаяПодписьСервисаDSS") Тогда + + Если (РеквизитПутьКДанным = "НаборКонстант.ИспользоватьЭлектронныеПодписи" Или РеквизитПутьКДанным = "НаборКонстант.ИспользоватьШифрование" + Или РеквизитПутьКДанным = "НаборКонстант.ИспользоватьСервисDSS" Или РеквизитПутьКДанным = "РазрешитьДоступКИнтернетСервисамЭлектроннойПодписи" + Или РеквизитПутьКДанным = "РазрешитьДоступКИнтернетСервисам" Или РеквизитПутьКДанным = "") Тогда + + ДоступностьОблачнойПодписи = (Форма.НаборКонстант.ИспользоватьЭлектронныеПодписи + Или Форма.НаборКонстант.ИспользоватьШифрование) И (Форма.НаборКонстант.ИспользоватьСервисDSS) + И РазрешенДоступКИнтернетСервисам; + + Если РеквизитПутьКДанным = "РазрешитьДоступКИнтернетСервисамЭлектроннойПодписи" + Или РеквизитПутьКДанным = "РазрешитьДоступКИнтернетСервисам" Тогда + Элементы.ИспользоватьСервисОблачнойПодписи.Доступность = Пользователи.ЭтоПолноправныйПользователь(, Истина) + И РазрешенДоступКИнтернетСервисам; + КонецЕсли; + + Элементы.ОбработкаУправлениеПодключениемDSSСерверыОблачнойПодписи.Доступность = ДоступностьОблачнойПодписи; + Элементы.ОбработкаУправлениеПодключениемDSSУчетныеЗаписиОблачнойПодписи.Доступность = ДоступностьОблачнойПодписи; + + Если ОбщегоНазначения.РазделениеВключено() Тогда + + ЭтоМодельСервисаСДоступнымУсовершенствованием = ОбщиеНастройки.ЭтоМодельСервисаСДоступнымУсовершенствованием; + Элементы.УсовершенствоватьПодписиАвтоматически1.Видимость = Не ЭтоМодельСервисаСДоступнымУсовершенствованием; + Элементы.УсовершенствоватьПодписиАвтоматически.Видимость = ЭтоМодельСервисаСДоступнымУсовершенствованием; + Элементы.ГруппаДобавлятьМеткиАвтоматически.Видимость = Ложь; + Элементы.ТипПодписиКриптографииПоУмолчанию.ОтображениеПодсказки = ОтображениеПодсказки.ОтображатьСнизу; + Элементы.ТипПодписиКриптографииПоУмолчанию.Видимость = Истина; + Элементы.ГруппаАвтоматическаяОбработкаПодписей.ОтображениеПодсказки = ОтображениеПодсказки.Нет; + + ЭлектроннаяПодписьСлужебный.ЗаполнитьСписокТиповПодписейКриптографии( + Элементы.ТипПодписиКриптографииПоУмолчанию.СписокВыбора, "Настройки"); + Элементы.ТипПодписиКриптографииПоУмолчаниюРасширеннаяПодсказка.Заголовок = СтроковыеФункции.ФорматированнаяСтрока( + НСтр( + "ru = 'В приложении в Интернете архивная подпись по умолчанию недоступна, этот тип подписи можно выбрать при подписании сертификатом, установленным на компьютер с помощью приложения электронной подписи.'"), + "Сертификаты"); + + Иначе + + ЭлектроннаяПодписьСлужебный.ЗаполнитьСписокТиповПодписейКриптографии( + Элементы.ТипПодписиКриптографииПоУмолчанию.СписокВыбора, "Настройки"); + Элементы.ТипПодписиКриптографииПоУмолчанию.ОтображениеПодсказки = ОтображениеПодсказки.Нет; + Элементы.ТипПодписиКриптографииПоУмолчанию.Видимость = Истина; + + КонецЕсли; + КонецЕсли; + Иначе + + Элементы.ТипПодписиКриптографииПоУмолчанию.ОтображениеПодсказки = ОтображениеПодсказки.Нет; + + Если РеквизитПутьКДанным = "" Тогда + Элементы.ТипПодписиКриптографииПоУмолчанию.Видимость = Истина; + ЭлектроннаяПодписьСлужебный.ЗаполнитьСписокТиповПодписейКриптографии( + Элементы.ТипПодписиКриптографииПоУмолчанию.СписокВыбора, "Настройки"); + КонецЕсли; + + КонецЕсли; + + // Конец Локализация +КонецПроцедуры + #КонецОбласти // Локализация @@ -825,13 +965,6 @@ КонецПроцедуры -// См. СтандартныеПодсистемыСервер.ПриОпределенииМетодовРазрешенныхДляВызоваКакПроизвольныйКод -Процедура ПриОпределенииМетодовРазрешенныхДляВызоваКакПроизвольныйКод(Методы) Экспорт - - Методы.Вставить("ОбновлениеСостоянияЗаявленияНаВыпускСертификата", Истина); - -КонецПроцедуры - #КонецОбласти // Конец Локализация \ No newline at end of file diff --git a/SSL/src/CommonModules/ЭлектроннаяПодписьПереопределяемый/Module.bsl b/SSL/src/CommonModules/ЭлектроннаяПодписьПереопределяемый/Module.bsl index dc8601cc6..53c05e767 100644 --- a/SSL/src/CommonModules/ЭлектроннаяПодписьПереопределяемый/Module.bsl +++ b/SSL/src/CommonModules/ЭлектроннаяПодписьПереопределяемый/Module.bsl @@ -1,5 +1,5 @@ /////////////////////////////////////////////////////////////////////////////////////////////////////// -// Copyright (c) 2024, ООО 1С-Софт +// Copyright (c) 2025, ООО 1С-Софт // Все права защищены. Эта программа и сопроводительные материалы предоставляются // в соответствии с условиями лицензии Attribution 4.0 International (CC BY 4.0) // Текст лицензии доступен по ссылке: @@ -118,6 +118,15 @@ +КонецПроцедуры + +// См. УправлениеДоступомПереопределяемый.ПриЗаполненииВидовОграниченийПравОбъектовМетаданных. +// Вызывается из подсистемы ЭлектроннаяПодпись для добавления прикладных видов ограничений прав объектов метаданных. +// +Процедура ПриЗаполненииВидовОграниченийПравОбъектовМетаданных(Описание) Экспорт + + + КонецПроцедуры #Область УстаревшиеПроцедурыИФункции diff --git a/SSL/src/CommonModules/ЭлектроннаяПодписьСлужебный/Module.bsl b/SSL/src/CommonModules/ЭлектроннаяПодписьСлужебный/Module.bsl index 8071765e6..656c0b546 100644 --- a/SSL/src/CommonModules/ЭлектроннаяПодписьСлужебный/Module.bsl +++ b/SSL/src/CommonModules/ЭлектроннаяПодписьСлужебный/Module.bsl @@ -1,5 +1,5 @@ /////////////////////////////////////////////////////////////////////////////////////////////////////// -// Copyright (c) 2024, ООО 1С-Софт +// Copyright (c) 2025, ООО 1С-Софт // Все права защищены. Эта программа и сопроводительные материалы предоставляются // в соответствии с условиями лицензии Attribution 4.0 International (CC BY 4.0) // Текст лицензии доступен по ссылке: @@ -598,7 +598,6 @@ КонецФункции - // Определяет доступность электронной подписи для объекта (по его типу). // // Параметры: @@ -943,61 +942,16 @@ КонецЕсли; - Если ОбщегоНазначения.ПодсистемаСуществует("СтандартныеПодсистемы.ЭлектроннаяПодписьСервисаDSS") Тогда - - Если (РеквизитПутьКДанным = "НаборКонстант.ИспользоватьЭлектронныеПодписи" Или РеквизитПутьКДанным = "НаборКонстант.ИспользоватьШифрование" - Или РеквизитПутьКДанным = "НаборКонстант.ИспользоватьСервисDSS" Или РеквизитПутьКДанным = "РазрешитьДоступКИнтернетСервисамЭлектроннойПодписи" - Или РеквизитПутьКДанным = "РазрешитьДоступКИнтернетСервисам" Или РеквизитПутьКДанным = "") Тогда - - ДоступностьОблачнойПодписи = (Форма.НаборКонстант.ИспользоватьЭлектронныеПодписи - Или Форма.НаборКонстант.ИспользоватьШифрование) И (Форма.НаборКонстант.ИспользоватьСервисDSS) - И РазрешенДоступКИнтернетСервисам; - - Если РеквизитПутьКДанным = "РазрешитьДоступКИнтернетСервисамЭлектроннойПодписи" - Или РеквизитПутьКДанным = "РазрешитьДоступКИнтернетСервисам" Тогда - Элементы.ИспользоватьСервисОблачнойПодписи.Доступность = Пользователи.ЭтоПолноправныйПользователь(, Истина) - И РазрешенДоступКИнтернетСервисам; - КонецЕсли; - - Элементы.ОбработкаУправлениеПодключениемDSSСерверыОблачнойПодписи.Доступность = ДоступностьОблачнойПодписи; - Элементы.ОбработкаУправлениеПодключениемDSSУчетныеЗаписиОблачнойПодписи.Доступность = ДоступностьОблачнойПодписи; - - Если ОбщегоНазначения.РазделениеВключено() Тогда - - ЭтоМодельСервисаСДоступнымУсовершенствованием = ОбщиеНастройки.ЭтоМодельСервисаСДоступнымУсовершенствованием; - Элементы.УсовершенствоватьПодписиАвтоматически1.Видимость = Не ЭтоМодельСервисаСДоступнымУсовершенствованием; - Элементы.УсовершенствоватьПодписиАвтоматически.Видимость = ЭтоМодельСервисаСДоступнымУсовершенствованием; - Элементы.ГруппаДобавлятьМеткиАвтоматически.Видимость = Ложь; - Элементы.ТипПодписиКриптографииПоУмолчанию.ОтображениеПодсказки = ОтображениеПодсказки.ОтображатьСнизу; - Элементы.ТипПодписиКриптографииПоУмолчанию.Видимость = Истина; - Элементы.ГруппаАвтоматическаяОбработкаПодписей.ОтображениеПодсказки = ОтображениеПодсказки.Нет; - - ЗаполнитьСписокТиповПодписейКриптографии( - Элементы.ТипПодписиКриптографииПоУмолчанию.СписокВыбора, "Настройки"); - Элементы.ТипПодписиКриптографииПоУмолчаниюРасширеннаяПодсказка.Заголовок = СтроковыеФункции.ФорматированнаяСтрока( - НСтр( - "ru = 'В приложении в Интернете архивная подпись по умолчанию недоступна, этот тип подписи можно выбрать при подписании сертификатом, установленным на компьютер с помощью приложения электронной подписи.'"), - "Сертификаты"); - - Иначе - - ЗаполнитьСписокТиповПодписейКриптографии( - Элементы.ТипПодписиКриптографииПоУмолчанию.СписокВыбора, "Настройки"); - Элементы.ТипПодписиКриптографииПоУмолчанию.ОтображениеПодсказки = ОтображениеПодсказки.Нет; - Элементы.ТипПодписиКриптографииПоУмолчанию.Видимость = Истина; - - КонецЕсли; - КонецЕсли; - Иначе - + СтандартнаяОбработка = Истина; + ЭлектроннаяПодписьЛокализация.ПриНастройкеФормыОбщихНастроек( + Форма, РеквизитПутьКДанным, РазрешенДоступКИнтернетСервисам, ОбщиеНастройки, СтандартнаяОбработка); + Если СтандартнаяОбработка Тогда Элементы.ТипПодписиКриптографииПоУмолчанию.ОтображениеПодсказки = ОтображениеПодсказки.Нет; - Если РеквизитПутьКДанным = "" Тогда Элементы.ТипПодписиКриптографииПоУмолчанию.Видимость = Истина; ЗаполнитьСписокТиповПодписейКриптографии( - Элементы.ТипПодписиКриптографииПоУмолчанию.СписокВыбора, "Настройки"); + Элементы.ТипПодписиКриптографииПоУмолчанию.СписокВыбора, "Настройки"); КонецЕсли; - КонецЕсли; КонецПроцедуры @@ -1165,6 +1119,38 @@ КонецПроцедуры +// Подписывает данные и возвращает подпись с данными или без них. +// +// Параметры: +// Данные - Строка - произвольная строка для подписания, +// - ДвоичныеДанные - двоичные данные для подписания. +// +// ПараметрыCMS - Структура - возвращается функцией ЭлектроннаяПодпись.ПараметрыCMS. +// СертификатКриптографии - СертификатКриптографии - используемый сертификат криптографии. +// МенеджерКриптографии - МенеджерКриптографии - используемый менеджер криптографии. +// +// Возвращаемое значение: +// Строка - строка в формате Base64. +// +Функция ПодписатьCMS(Знач Данные, ПараметрыCMS, СертификатКриптографии, МенеджерКриптографии) Экспорт + + Пароль = МенеджерКриптографии.ПарольДоступаКЗакрытомуКлючу; + + ОбъектКомпоненты = ОбъектВнешнейКомпонентыExtraCryptoAPI(); + + СвойстваКриптопровайдера = СвойстваКриптопровайдера(МенеджерКриптографии); + ОбъектКомпоненты.ПутьККриптопровайдеру = СвойстваКриптопровайдера.Путь; + + АтрибутSignatureValue = РезультатCMSSign(ОбъектКомпоненты, + Данные, + ПараметрыCMS, + СертификатКриптографии, + Пароль); + + Возврат АтрибутSignatureValue; + +КонецФункции + #Область ПоставляемыеДанные // См. ПоставляемыеДанныеПереопределяемый.ПолучитьОбработчикиПоставляемыхДанных @@ -1337,6 +1323,11 @@ Обработчик.НачальноеЗаполнение = Истина; Обработчик.РежимВыполнения = "Оперативно"; + Обработчик = Обработчики.Добавить(); + Обработчик.Версия = "3.1.12.68"; + Обработчик.Процедура = "ЭлектроннаяПодписьСлужебный.ДобавитьРольЧтениеСертификатовКлючейЭлектроннойПодписиИШифрования"; + Обработчик.РежимВыполнения = "Оперативно"; + КонецПроцедуры // См. ОбщегоНазначенияПереопределяемый.ПриДобавленииПереименованийОбъектовМетаданных. @@ -1489,6 +1480,42 @@ КонецПроцедуры +#Область ОбработчикиСобытийПодсистемыУправлениеДоступом + +// См. УправлениеДоступомПереопределяемый.ПриЗаполненииСписковСОграничениемДоступа. +Процедура ПриЗаполненииСписковСОграничениемДоступа(Списки) Экспорт + + Списки.Вставить(Метаданные.Справочники.СертификатыКлючейЭлектроннойПодписиИШифрования, Истина); + + Если Метаданные.Обработки.Найти("ЗаявлениеНаВыпускНовогоКвалифицированногоСертификата") <> Неопределено Тогда + ОбработкаЗаявлениеНаВыпускНовогоКвалифицированногоСертификата = + ОбщегоНазначения.МенеджерОбъектаПоПолномуИмени( + "Обработка.ЗаявлениеНаВыпускНовогоКвалифицированногоСертификата"); + ОбработкаЗаявлениеНаВыпускНовогоКвалифицированногоСертификата.ПриЗаполненииСписковСОграничениемДоступа(Списки); + КонецЕсли; + +КонецПроцедуры + +// См. УправлениеДоступомПереопределяемый.ПриЗаполненииВидовОграниченийПравОбъектовМетаданных. +Процедура ПриЗаполненииВидовОграниченийПравОбъектовМетаданных(Описание) Экспорт + + Описание = Описание + " + |Справочник.СертификатыКлючейЭлектроннойПодписиИШифрования.Чтение.Пользователи + |Справочник.СертификатыКлючейЭлектроннойПодписиИШифрования.Изменение.Пользователи"; + + Если Метаданные.Обработки.Найти("ЗаявлениеНаВыпускНовогоКвалифицированногоСертификата") <> Неопределено Тогда + ОбработкаЗаявлениеНаВыпускНовогоКвалифицированногоСертификата = + ОбщегоНазначения.МенеджерОбъектаПоПолномуИмени( + "Обработка.ЗаявлениеНаВыпускНовогоКвалифицированногоСертификата"); + ОбработкаЗаявлениеНаВыпускНовогоКвалифицированногоСертификата.ПриЗаполненииВидовОграниченийПравОбъектовМетаданных(Описание); + КонецЕсли; + + ЭлектроннаяПодписьПереопределяемый.ПриЗаполненииВидовОграниченийПравОбъектовМетаданных(Описание); + +КонецПроцедуры + +#КонецОбласти + #Область ОбработчикиСобытийПодсистемыТекущиеДела // Параметры: @@ -2349,6 +2376,8 @@ Запрос.УстановитьПараметр("Ссылка", СертификатСсылка); Запрос.УстановитьПараметр("Наименование", Представление); + УстановитьПривилегированныйРежим(Истина); + Запрос.Текст = "ВЫБРАТЬ | ИСТИНА КАК ЗначениеИстина @@ -2363,6 +2392,8 @@ ОбщегоНазначения.СообщитьПользователю(ТекстСообщения,, Поле,, Отказ); КонецЕсли; + УстановитьПривилегированныйРежим(Ложь); + КонецПроцедуры // Только для внутреннего использования. @@ -2463,9 +2494,11 @@ Если ТипЗнч(ДополнительныеПараметры) = Тип("Структура") Тогда ОтборПоОрганизации = ДополнительныеПараметры.ОтборПоОрганизации; ВыполнятьНаСервере = ДополнительныеПараметры.ВыполнятьНаСервере; + ДоступныТолькоСКлючом = ДополнительныеПараметры.ДоступныТолькоСКлючом; Иначе ОтборПоОрганизации = Неопределено; ВыполнятьНаСервере = Неопределено; + ДоступныТолькоСКлючом = Ложь; КонецЕсли; ТаблицаСвойствСертификатов = Новый ТаблицаЗначений; @@ -2559,7 +2592,8 @@ КонецЕсли; - ОбработатьДобавленныеСертификаты(ТаблицаСвойствСертификатов, Не БезОтбора И КромеУжеДобавленных, ОтборПоОрганизации); + ФильтрКромеУжеДобавленных = Не БезОтбора И КромеУжеДобавленных; + ОбработатьДобавленныеСертификаты(ТаблицаСвойствСертификатов, ФильтрКромеУжеДобавленных, ОтборПоОрганизации, ДоступныТолькоСКлючом); ТаблицаСвойствСертификатов.Индексы.Добавить("Представление"); ТаблицаСвойствСертификатов.Сортировать("Представление Возр"); @@ -2864,7 +2898,7 @@ Запрос = Новый Запрос; Запрос.УстановитьПараметр("Отпечаток", Отпечаток); Запрос.Текст = - "ВЫБРАТЬ + "ВЫБРАТЬ РАЗРЕШЕННЫЕ | Сертификаты.Ссылка КАК Ссылка |ИЗ | Справочник.СертификатыКлючейЭлектроннойПодписиИШифрования КАК Сертификаты @@ -3227,6 +3261,8 @@ СохраненныеСвойства.Вставить("ФизическоеЛицо"); СохраненныеСвойства.Вставить("ВводитьПарольВПрограммеЭлектроннойПодписи"); + УстановитьПривилегированныйРежим(Истина); + Запрос = Новый Запрос; Запрос.УстановитьПараметр("Отпечаток", Отпечаток); Запрос.Текст = @@ -3249,6 +3285,9 @@ ПараметрыРеквизитов = Неопределено; // Заполняется в процедуре ПередНачаломРедактированияСертификатаКлюча. Выборка = Запрос.Выполнить().Выбрать(); + + УстановитьПривилегированныйРежим(Ложь); + Если Выборка.Следующий() Тогда ЗаполнитьЗначенияСвойств(СохраненныеСвойства, Выборка); Иначе @@ -4335,38 +4374,6 @@ КонецПроцедуры -// Подписывает данные и возвращает подпись с данными или без них. -// -// Параметры: -// Данные - Строка - произвольная строка для подписания, -// - ДвоичныеДанные - двоичные данные для подписания. -// -// ПараметрыCMS - Структура - возвращается функцией ЭлектроннаяПодпись.ПараметрыCMS. -// СертификатКриптографии - СертификатКриптографии - используемый сертификат криптографии. -// МенеджерКриптографии - МенеджерКриптографии - используемый менеджер криптографии. -// -// Возвращаемое значение: -// Строка - строка в формате Base64. -// -Функция ПодписатьCMS(Знач Данные, ПараметрыCMS, СертификатКриптографии, МенеджерКриптографии) Экспорт - - Пароль = МенеджерКриптографии.ПарольДоступаКЗакрытомуКлючу; - - ОбъектКомпоненты = ОбъектВнешнейКомпонентыExtraCryptoAPI(); - - СвойстваКриптопровайдера = СвойстваКриптопровайдера(МенеджерКриптографии); - ОбъектКомпоненты.ПутьККриптопровайдеру = СвойстваКриптопровайдера.Путь; - - АтрибутSignatureValue = РезультатCMSSign(ОбъектКомпоненты, - Данные, - ПараметрыCMS, - СертификатКриптографии, - Пароль); - - Возврат АтрибутSignatureValue; - -КонецФункции - Функция ПроверитьПодписьCMS(Подпись, Данные, ПараметрыCMS, МенеджерКриптографии) Экспорт ОбъектКомпоненты = ОбъектВнешнейКомпонентыExtraCryptoAPI(); @@ -4746,13 +4753,16 @@ #Область ВспомогательныеПроцедурыИФункции // Для процедуры ОбновитьСписокСертификатов. -Процедура ОбработатьДобавленныеСертификаты(ТаблицаСвойствСертификатов, КромеУжеДобавленных, ОтборПоОрганизации = Неопределено) +Процедура ОбработатьДобавленныеСертификаты(ТаблицаСвойствСертификатов, КромеУжеДобавленных, + ОтборПоОрганизации = Неопределено, ДоступныТолькоСКлючом = Ложь) + + УстановитьПривилегированныйРежим(Истина); Запрос = Новый Запрос; Запрос.УстановитьПараметр("Отпечатки", ТаблицаСвойствСертификатов.Скопировать(, "Отпечаток")); Запрос.Текст = "ВЫБРАТЬ - | Отпечатки.Отпечаток + | Отпечатки.Отпечаток КАК Отпечаток |ПОМЕСТИТЬ Отпечатки |ИЗ | &Отпечатки КАК Отпечатки @@ -4760,15 +4770,16 @@ | |//////////////////////////////////////////////////////////////////////////////// |ВЫБРАТЬ - | Сертификаты.Отпечаток, + | Сертификаты.Отпечаток КАК Отпечаток, | Сертификаты.Наименование КАК Представление, | ЛОЖЬ КАК ЭтоЗаявление, - | Сертификаты.Организация + | Сертификаты.Организация КАК Организация, + | Сертификаты.Ссылка КАК Ссылка |ИЗ | Справочник.СертификатыКлючейЭлектроннойПодписиИШифрования КАК Сертификаты | ВНУТРЕННЕЕ СОЕДИНЕНИЕ Отпечатки КАК Отпечатки | ПО Сертификаты.Отпечаток = Отпечатки.Отпечаток - | И &ДополнительноеСоединение"; + | И &ДополнительноеСоединение"; Если Метаданные.Обработки.Найти("ЗаявлениеНаВыпускНовогоКвалифицированногоСертификата") <> Неопределено Тогда ОбработкаЗаявлениеНаВыпускНовогоКвалифицированногоСертификата = @@ -4782,8 +4793,13 @@ Выборка = Запрос.Выполнить().Выбрать(); + УстановитьПривилегированныйРежим(Ложь); + Пока Выборка.Следующий() Цикл + Строка = ТаблицаСвойствСертификатов.Найти(Выборка.Отпечаток, "Отпечаток"); + ТекущийПользователь = Пользователи.ТекущийПользователь(); + СертификатСсылка = Выборка.Ссылка; Если КромеУжеДобавленных Тогда Если Строка <> Неопределено Тогда // Защита от ошибки в данных (дубли сертификатов). ТаблицаСвойствСертификатов.Удалить(Строка); @@ -4792,11 +4808,36 @@ Если Строка <> Неопределено И Выборка.Организация <> ОтборПоОрганизации Тогда // Защита от ошибки в данных (дубли сертификатов). ТаблицаСвойствСертификатов.Удалить(Строка); КонецЕсли; + КонецЕсли; + + Строка = ТаблицаСвойствСертификатов.Найти(Выборка.Отпечаток, "Отпечаток"); // Повторный поиск, могли удалить ранее. + Если Строка = Неопределено Тогда + Продолжить; + КонецЕсли; + + // Оставляем только доступные пользователю сертификаты. + Если ОбщегоНазначения.ПодсистемаСуществует("СтандартныеПодсистемы.УправлениеДоступом") Тогда + МодульУправлениеДоступом = ОбщегоНазначения.ОбщийМодуль("УправлениеДоступом"); + ЧтениеРазрешено = МодульУправлениеДоступом.ЧтениеРазрешено(СертификатСсылка, ТекущийПользователь); Иначе + ЧтениеРазрешено = ПравоДоступа("Чтение", СертификатСсылка.Метаданные()); + КонецЕсли; + Если ЧтениеРазрешено Тогда // Защита от ошибки в данных (дубли сертификатов). + Если ДоступныТолькоСКлючом И СертификатСсылка.Пользователи.Количество() <> 0 Тогда + СтрокаПользовательСертификата = СертификатСсылка.Пользователи.Найти(ТекущийПользователь, "Пользователь"); + Если СтрокаПользовательСертификата <> Неопределено + И СтрокаПользовательСертификата.БезИспользованияКлюча Тогда + ТаблицаСвойствСертификатов.Удалить(Строка); // Исключаются сертификаты, недоступные для подписания и расшифровки. + Продолжить; + КонецЕсли; + КонецЕсли; Строка.Представление = Выборка.Представление; Строка.ЭтоЗаявление = Выборка.ЭтоЗаявление; Строка.ЕстьВСправочнике = Истина; + Иначе + ТаблицаСвойствСертификатов.Удалить(Строка); КонецЕсли; + КонецЦикла; КонецПроцедуры @@ -5034,7 +5075,7 @@ Запрос = Новый Запрос; Запрос.Параметры.Вставить("Отпечатки", СписокВыбора.ВыгрузитьЗначения()); Запрос.Текст = - "ВЫБРАТЬ + "ВЫБРАТЬ РАЗРЕШЕННЫЕ | Сертификаты.Ссылка КАК Ссылка, | Сертификаты.Наименование КАК Наименование, | Сертификаты.Отпечаток @@ -5055,7 +5096,7 @@ КонецЕсли; ТекстЗапроса = - "ВЫБРАТЬ + "ВЫБРАТЬ РАЗРЕШЕННЫЕ | Сертификаты.Ссылка КАК Ссылка, | Сертификаты.Пользователь КАК Пользователь, | Сертификаты.Наименование КАК Наименование @@ -5065,7 +5106,7 @@ |ГДЕ | Сертификаты.Отозван = ЛОЖЬ | И Сертификаты.Отпечаток В(&Отпечатки) - | И ИСТИНА + | И &ОтборПоОрганизации |; | |//////////////////////////////////////////////////////////////////////////////// @@ -5093,16 +5134,21 @@ | ПО | ВсеСертификаты.Ссылка = СертификатыКлючейЭлектроннойПодписиИШифрованияПользователи.Ссылка | ГДЕ - | СертификатыКлючейЭлектроннойПодписиИШифрованияПользователи.Пользователь = &Пользователь)"; + | СертификатыКлючейЭлектроннойПодписиИШифрованияПользователи.Пользователь = &Пользователь + | И &ОтборБезИспользованияКлюча)"; + + ТекстЗапроса = ?(ОтборПоОрганизации, + СтрЗаменить(ТекстЗапроса, "&ОтборПоОрганизации", "Сертификаты.Организация = &Организация"), + СтрЗаменить(ТекстЗапроса, "&ОтборПоОрганизации", "ИСТИНА")); - Если ОтборПоОрганизации Тогда - ТекстЗапроса = СтрЗаменить(ТекстЗапроса, "ИСТИНА", "Сертификаты.Организация = &Организация"); - КонецЕсли; + ТекстЗапроса = ?(Пользователи.ЭтоПолноправныйПользователь(), + СтрЗаменить(ТекстЗапроса, "&ОтборБезИспользованияКлюча", "ИСТИНА"), + СтрЗаменить(ТекстЗапроса, "&ОтборБезИспользованияКлюча", "СертификатыКлючейЭлектроннойПодписиИШифрованияПользователи.БезИспользованияКлюча = ЛОЖЬ")); Запрос = Новый Запрос(ТекстЗапроса); Запрос.УстановитьПараметр("Пользователь", Пользователи.ТекущийПользователь()); Запрос.УстановитьПараметр("Отпечатки", ОтпечаткиСертификатовНаКлиенте); - Запрос.УстановитьПараметр("Организация", ОтборСертификатов); + Запрос.УстановитьПараметр("Организация", ОтборСертификатов); Выборка = Запрос.Выполнить().Выбрать(); Пока Выборка.Следующий() Цикл @@ -5568,7 +5614,6 @@ КонецФункции // Для процедуры ЗаписатьСертификатПослеПроверки. - Функция ПроверитьШифрованиеИРасшифровку(МенеджерКриптографии, ДвоичныеДанныеСертификата, СертификатКриптографии, ОписаниеПрограммы, ОшибкаНаСервере, ЭтоПолноправныйПользователь) @@ -5753,8 +5798,8 @@ Запрос = Новый Запрос; Запрос.Текст = - "ВЫБРАТЬ - | СертификатыКлючейЭлектроннойПодписиИШифрования.Ссылка + "ВЫБРАТЬ РАЗРЕШЕННЫЕ + | СертификатыКлючейЭлектроннойПодписиИШифрования.Ссылка КАК Ссылка |ПОМЕСТИТЬ СертификатыПользователя |ИЗ | Справочник.СертификатыКлючейЭлектроннойПодписиИШифрования КАК СертификатыКлючейЭлектроннойПодписиИШифрования @@ -5766,14 +5811,13 @@ |ВЫБРАТЬ | СертификатыКлючейЭлектроннойПодписиИШифрованияПользователи.Ссылка |ИЗ - | Справочник.СертификатыКлючейЭлектроннойПодписиИШифрования.Пользователи КАК - | СертификатыКлючейЭлектроннойПодписиИШифрованияПользователи + | Справочник.СертификатыКлючейЭлектроннойПодписиИШифрования.Пользователи КАК СертификатыКлючейЭлектроннойПодписиИШифрованияПользователи |ГДЕ | СертификатыКлючейЭлектроннойПодписиИШифрованияПользователи.Пользователь = &Пользователь |; | |//////////////////////////////////////////////////////////////////////////////// - |ВЫБРАТЬ + |ВЫБРАТЬ РАЗРЕШЕННЫЕ | КОЛИЧЕСТВО(РАЗЛИЧНЫЕ СертификатыКлючейЭлектроннойПодписиИШифрования.Ссылка) КАК Количество |ИЗ | СертификатыПользователя КАК СертификатыПользователя @@ -6195,6 +6239,16 @@ КонецФункции +// Функция - Проверяет наличие прав на добавление сертификатов в справочник. +// +// Возвращаемое значение: +// Булево +// +Функция ЕстьПравоНаДобавлениеСертификатовВСправочник() Экспорт + + Возврат ПравоДоступа("Добавление", Метаданные.Справочники.СертификатыКлючейЭлектроннойПодписиИШифрования); + +КонецФункции #КонецОбласти @@ -8076,6 +8130,42 @@ КонецПроцедуры +// Добавляет роль ЧтениеСертификатовКлючейЭлектроннойПодписиИШифрования во все профили, в которые входят +// роли ДобавлениеИзменениеЭлектронныхПодписей и ШифрованиеИРасшифровкаДанных. +// +Процедура ДобавитьРольЧтениеСертификатовКлючейЭлектроннойПодписиИШифрования() Экспорт + + Если Не ОбщегоНазначения.ПодсистемаСуществует("СтандартныеПодсистемы.УправлениеДоступом") Тогда + Возврат; + КонецЕсли; + + ИмяДобавляемойРоли = Метаданные.Роли.ЧтениеСертификатовКлючейЭлектроннойПодписиИШифрования.Имя; + ИмяРолиДобавлениеИзменениеЭлектронныхПодписей = Метаданные.Роли.ДобавлениеИзменениеЭлектронныхПодписей.Имя; + ИмяРолиШифрованиеИРасшифровкаДанных = Метаданные.Роли.ШифрованиеИРасшифровкаДанных.Имя; + ИмяРолиРасшифровкаДанных = Метаданные.Роли.РасшифровкаДанных.Имя; + + НовыеРолиКДобавлениеИзменениеЭлектронныхПодписей = Новый Массив; + НовыеРолиКДобавлениеИзменениеЭлектронныхПодписей.Добавить(ИмяДобавляемойРоли); + НовыеРолиКДобавлениеИзменениеЭлектронныхПодписей.Добавить(ИмяРолиДобавлениеИзменениеЭлектронныхПодписей); + + НовыеРолиКШифрованиеИРасшифровкаДанных = Новый Массив; + НовыеРолиКШифрованиеИРасшифровкаДанных.Добавить(ИмяДобавляемойРоли); + НовыеРолиКШифрованиеИРасшифровкаДанных.Добавить(ИмяРолиШифрованиеИРасшифровкаДанных); + + НовыеРолиКРасшифровкаДанных = Новый Массив; + НовыеРолиКРасшифровкаДанных.Добавить(ИмяДобавляемойРоли); + НовыеРолиКРасшифровкаДанных.Добавить(ИмяРолиРасшифровкаДанных); + + ЗаменяемыеРоли = Новый Соответствие; + ЗаменяемыеРоли.Вставить(ИмяРолиДобавлениеИзменениеЭлектронныхПодписей, НовыеРолиКДобавлениеИзменениеЭлектронныхПодписей); + ЗаменяемыеРоли.Вставить(ИмяРолиШифрованиеИРасшифровкаДанных, НовыеРолиКШифрованиеИРасшифровкаДанных); + ЗаменяемыеРоли.Вставить(ИмяРолиРасшифровкаДанных, НовыеРолиКРасшифровкаДанных); + + МодульУправлениеДоступом = ОбщегоНазначения.ОбщийМодуль("УправлениеДоступом"); + МодульУправлениеДоступом.ЗаменитьРолиВПрофилях(ЗаменяемыеРоли); + +КонецПроцедуры + #КонецОбласти #Область СодержимоеСертификата @@ -8212,6 +8302,7 @@ Методы.Вставить("ЗаполнитьНастройкиДляУсовершенствованияПодписей"); Методы.Вставить("ВключитьКонстантуРазрешитьДоступКИнтернетСервисам"); Методы.Вставить("ЗаполнитьАдресаСерверовМетокВремени"); + Методы.Вставить("ДобавитьРольЧтениеСертификатовКлючейЭлектроннойПодписиИШифрования"); Методы.Вставить("УсовершенствоватьНаСторонеСервера", Истина); Методы.Вставить("СкачатьФайлСпискаОтзываНаСервере", Истина); diff --git a/SSL/src/CommonModules/ЭлектроннаяПодписьСлужебныйВызовСервера/Module.bsl b/SSL/src/CommonModules/ЭлектроннаяПодписьСлужебныйВызовСервера/Module.bsl index 6d544dcd8..3585ac05e 100644 --- a/SSL/src/CommonModules/ЭлектроннаяПодписьСлужебныйВызовСервера/Module.bsl +++ b/SSL/src/CommonModules/ЭлектроннаяПодписьСлужебныйВызовСервера/Module.bsl @@ -1,5 +1,5 @@ /////////////////////////////////////////////////////////////////////////////////////////////////////// -// Copyright (c) 2024, ООО 1С-Софт +// Copyright (c) 2025, ООО 1С-Софт // Все права защищены. Эта программа и сопроводительные материалы предоставляются // в соответствии с условиями лицензии Attribution 4.0 International (CC BY 4.0) // Текст лицензии доступен по ссылке: @@ -40,6 +40,20 @@ КонецФункции +// Двоичные данные сертификата из справочника +// +// Параметры: +// Сертификат - СправочникСсылка.СертификатыКлючейЭлектроннойПодписиИШифрования +// +// Возвращаемое значение: +// ДвоичныеДанные, Неопределено +// +Функция ДанныеСертификата(Сертификат) Экспорт + + Возврат ОбщегоНазначения.ЗначениеРеквизитаОбъекта(Сертификат, "ДанныеСертификата").Получить(); + +КонецФункции + #КонецОбласти #Область СлужебныеПроцедурыИФункции @@ -140,7 +154,7 @@ |; | |//////////////////////////////////////////////////////////////////////////////// - |ВЫБРАТЬ + |ВЫБРАТЬ РАЗРЕШЕННЫЕ | Отпечатки.Отпечаток КАК Отпечаток, | Сертификаты.Наименование КАК Наименование, | Сертификаты.Организация КАК Организация, @@ -274,7 +288,7 @@ Запрос = Новый Запрос; Запрос.УстановитьПараметр("Отпечаток", Отпечаток); Запрос.Текст = - "ВЫБРАТЬ + "ВЫБРАТЬ РАЗРЕШЕННЫЕ | Сертификаты.Ссылка КАК Ссылка |ИЗ | Справочник.СертификатыКлючейЭлектроннойПодписиИШифрования КАК Сертификаты @@ -981,12 +995,6 @@ КонецФункции -Функция ДанныеСертификата(Сертификат) Экспорт - - Возврат ОбщегоНазначения.ЗначениеРеквизитаОбъекта(Сертификат, "ДанныеСертификата").Получить(); - -КонецФункции - Функция ОшибкаПоКлассификатору(Знач ТекстОшибки, Знач ОшибкаНаСервере = Ложь, Знач ОшибкаПроверкиПодписи = Ложь, УказанСертификат = Ложь) Экспорт diff --git a/SSL/src/CommonModules/ЭлектроннаяПодписьСлужебныйКлиент/Module.bsl b/SSL/src/CommonModules/ЭлектроннаяПодписьСлужебныйКлиент/Module.bsl index 3833d7921..6ce6a3949 100644 --- a/SSL/src/CommonModules/ЭлектроннаяПодписьСлужебныйКлиент/Module.bsl +++ b/SSL/src/CommonModules/ЭлектроннаяПодписьСлужебныйКлиент/Module.bsl @@ -1,5 +1,5 @@ /////////////////////////////////////////////////////////////////////////////////////////////////////// -// Copyright (c) 2024, ООО 1С-Софт +// Copyright (c) 2025, ООО 1С-Софт // Все права защищены. Эта программа и сопроводительные материалы предоставляются // в соответствии с условиями лицензии Attribution 4.0 International (CC BY 4.0) // Текст лицензии доступен по ссылке: @@ -279,6 +279,7 @@ ПараметрыФормы.Вставить("ЗаголовокФормы", ЗаголовокФормы); ПараметрыФормы.Вставить("ЗаголовокОшибки", ЗаголовокОшибки); + ЭлектроннаяПодписьКлиентЛокализация.ПриПолученииОшибокНаКлиенте(ОшибкаНаКлиенте); ПараметрыФормы.Вставить("ОшибкаНаКлиенте", ОшибкаНаКлиенте); ПараметрыФормы.Вставить("ОшибкаНаСервере", ОшибкаНаСервере); @@ -529,6 +530,13 @@ КонецФункции +Функция ТекстОшибкиУстройствоНеПоддерживается() Экспорт + + Возврат СтроковыеФункцииКлиентСервер.ПодставитьПараметрыВСтроку( + НСтр("ru = 'Действие доступно только на компьютерах с операционной системой %1, %2 или %3.'"), + "MacOS", "Windows", "Linux"); +КонецФункции + #КонецОбласти #Область СлужебныеПроцедурыИФункции @@ -555,25 +563,6 @@ КонецФункции -Асинх Функция ПолучитьТокенПоСертификату(Сертификат) Экспорт - - Отпечаток = Base64Строка(Сертификат.Отпечаток); - - Токены = Ждать ЭлектроннаяПодписьКлиентЛокализация.СертификатыНаТокенах(Истина); - Для Каждого Токен Из Токены Цикл - Если Токен.Сертификаты = Неопределено Тогда - Продолжить; - КонецЕсли; - ДанныеСертификата = Токен.Сертификаты.Получить(Отпечаток); - Если ДанныеСертификата <> Неопределено Тогда - Возврат Токен; - КонецЕсли; - КонецЦикла; - - Возврат Неопределено; - -КонецФункции - Функция ПараметрыПодписиНаТокене(Токен, Сертификат, ТипПодписи) Экспорт Структура = Новый Структура; @@ -594,16 +583,76 @@ Структура.Вставить("АлгоритмПодписи", АлгоритмПодписи); Структура.Вставить("ОбъектКомпоненты", Неопределено); Структура.Вставить("ВернутьСертификатыДляПроверки", Ложь); - + Структура.Вставить("ОткрепленнаяПодпись", Истина); + Возврат Структура; КонецФункции -Асинх Функция ПодписьНаТокене(ПараметрыПодписи, Данные) Экспорт +Процедура ДобавитьСертификатСТокенаПослеПолученияПодписи(Результат, Контекст) Экспорт - Возврат Ждать ЭлектроннаяПодписьКлиентЛокализация.ПодписьНаТокене(ПараметрыПодписи, Данные); + Если ТипЗнч(Результат) = Тип("Строка") Тогда + ЭлектроннаяПодписьСлужебныйКлиентСервер.ЗаполнитьОшибкуДобавленияСертификата( + Контекст.ОшибкаНаКлиенте, + Новый Структура("Ссылка, Токен", Контекст.Токен.Представление, Контекст.Токен), + "Подписание", + Результат, + Контекст.ЭтоПолноправныйПользователь); + ВыполнитьОбработкуОповещения(Контекст.ОбработчикЗавершения, Неопределено); + СообщитьОбОшибкеДобавленияСертификата(Контекст); + Возврат; + КонецЕсли; -КонецФункции + Контекст.Вставить("ОписаниеПрограммы", Новый Структура("Ссылка", Неопределено)); + ДобавитьСертификатЦиклПослеПодписания(Результат, Контекст); + +КонецПроцедуры + +Процедура ДобавитьСертификатСТокенаПослеРасшифровки(Результат, Контекст) Экспорт + + Если ТипЗнч(Результат) = Тип("Строка") Тогда + ЭлектроннаяПодписьСлужебныйКлиентСервер.ЗаполнитьОшибкуДобавленияСертификата( + Контекст.ОшибкаНаКлиенте, + Новый Структура("Ссылка, Токен", Контекст.Токен.Представление, Контекст.Токен), + "Расшифровка", + Результат, + Контекст.ЭтоПолноправныйПользователь); + ВыполнитьОбработкуОповещения(Контекст.ОбработчикЗавершения, Неопределено); + СообщитьОбОшибкеДобавленияСертификата(Контекст); + Возврат; + КонецЕсли; + + Контекст.Вставить("ОписаниеПрограммы", Новый Структура("Ссылка", Неопределено)); + ДобавитьСертификатЦиклПослеПодписания(Результат, Контекст); + +КонецПроцедуры + +Процедура ДобавитьСертификатСТокенаПослеШифрования(Результат, Контекст) Экспорт + + Если ТипЗнч(Результат) = Тип("Строка") Тогда + ЭлектроннаяПодписьСлужебныйКлиентСервер.ЗаполнитьОшибкуДобавленияСертификата( + Контекст.ОшибкаНаКлиенте, + Новый Структура("Ссылка, Токен", Контекст.Токен.Представление, Контекст.Токен), + "Шифрование", + Результат, + Контекст.ЭтоПолноправныйПользователь); + ВыполнитьОбработкуОповещения(Контекст.ОбработчикЗавершения, Неопределено); + СообщитьОбОшибкеДобавленияСертификата(Контекст); + Возврат; + КонецЕсли; + + ПараметрыРасшифровкиНаТокене = ПараметрыРасшифровкиНаТокене(Контекст.Токен, Контекст.СертификатКриптографии); + Оповещение = Новый ОписаниеОповещения("ДобавитьСертификатСТокенаПослеРасшифровки", ЭтотОбъект, + Контекст); + + СтандартнаяОбработка = Истина; + ЭлектроннаяПодписьКлиентЛокализация.ПриРасшифровкеНаТокене(Оповещение, ПараметрыРасшифровкиНаТокене, Результат, СтандартнаяОбработка); + Если СтандартнаяОбработка Тогда + ВыполнитьОбработкуОповещения(Контекст.ОбработчикЗавершения, Неопределено); + СообщитьОбОшибкеДобавленияСертификата(Контекст); + КонецЕсли; + +КонецПроцедуры Функция ПараметрыШифрованияНаТокене(Токен, Сертификат, АлгоритмШифрования = Неопределено) Экспорт @@ -1512,7 +1561,17 @@ Если ТипЗнч(Результат) <> Тип("МенеджерКриптографии") Тогда Контекст.Ошибки.Добавить(?(ТипЗнч(Результат) = Тип("Строка"), Результат, Результат.ОписаниеОшибки)); - ПолучитьСертификатПоОтпечаткуНаТокенах(Контекст); + + СтандартнаяОбработка = Истина; + ЭлектроннаяПодписьКлиентЛокализация.ПриПолученииСертификатаПоОтпечаткуНаТокене( + Новый ОписаниеОповещения("ПослеПолученияСертификатаПоОтпечаткуНаТокене", ЭтотОбъект, Контекст), + Контекст.Отпечаток, СтандартнаяОбработка, Истина, Истина); + + Если Не СтандартнаяОбработка Тогда + Возврат; + КонецЕсли; + + ПолучитьСертификатПоОтпечаткуЗавершение(Неопределено, СтрСоединить(Контекст.Ошибки, Символы.ПС), Контекст); Возврат; КонецЕсли; Контекст.Вставить("МенеджерКриптографии", Результат); @@ -1603,28 +1662,27 @@ Возврат; КонецЕсли; - ПолучитьСертификатПоОтпечаткуНаТокенах(Контекст); + СтандартнаяОбработка = Истина; + ЭлектроннаяПодписьКлиентЛокализация.ПриПолученииСертификатаПоОтпечаткуНаТокене( + Новый ОписаниеОповещения("ПослеПолученияСертификатаПоОтпечаткуНаТокене", ЭтотОбъект, Контекст), + Контекст.Отпечаток, СтандартнаяОбработка, Истина, Истина); + + Если Не СтандартнаяОбработка Тогда + Возврат; + КонецЕсли; + + ПолучитьСертификатПоОтпечаткуЗавершение(Неопределено, СтрСоединить(Контекст.Ошибки, Символы.ПС), Контекст); КонецПроцедуры // Продолжение процедуры ПолучитьСертификатПоОтпечатку. -Асинх Процедура ПолучитьСертификатПоОтпечаткуНаТокенах(Контекст) - - Токены = Ждать ЭлектроннаяПодписьКлиентЛокализация.СертификатыНаТокенах(Истина); - Для Каждого Токен Из Токены Цикл - Если Токен.Сертификаты = Неопределено Тогда - Продолжить; - КонецЕсли; - ДанныеСертификата = Токен.Сертификаты.Получить(Контекст.Отпечаток); - Если ДанныеСертификата <> Неопределено Тогда - СертификатКриптографии = Новый СертификатКриптографии; - Ждать СертификатКриптографии.ИнициализироватьАсинх(ДанныеСертификата); - ПолучитьСертификатПоОтпечаткуЗавершение(СертификатКриптографии, "", Контекст); - Возврат; - КонецЕсли; - КонецЦикла; - - ПолучитьСертификатПоОтпечаткуЗавершение(Неопределено, СтрСоединить(Контекст.Ошибки, Символы.ПС), Контекст); +Процедура ПослеПолученияСертификатаПоОтпечаткуНаТокене(Сертификат, Контекст) Экспорт + + Если Сертификат <> Неопределено Тогда + ПолучитьСертификатПоОтпечаткуЗавершение(Сертификат, СтрСоединить(Контекст.Ошибки, Символы.ПС), Контекст); + Иначе + ПолучитьСертификатПоОтпечаткуЗавершение(Неопределено, СтрСоединить(Контекст.Ошибки, Символы.ПС), Контекст); + КонецЕсли; КонецПроцедуры @@ -1967,8 +2025,18 @@ ПараметрыПроверки = ПараметрыПроверкиПодписиНаТокене(Контекст.АлгоритмПодписи); - РезультатМатематическойПроверки = Ждать ЭлектроннаяПодписьКлиентЛокализация.ПроверитьПодпись( - Контекст.ИсходныеДанные, Контекст.Подпись, ПараметрыПроверки); + СтандартнаяОбработка = Истина; + ЭлектроннаяПодписьКлиентЛокализация.ПриПроверкеПодписиНаТокене( + Новый ОписаниеОповещения("ПослеПроверкиПодписиНаТокене", ЭтотОбъект, Контекст), + Контекст.ИсходныеДанные, Контекст.Подпись, ПараметрыПроверки, СтандартнаяОбработка); + + Если СтандартнаяОбработка Тогда + ПослеПроверкиПодписиНаТокене(Неопределено, Контекст); + КонецЕсли; + +КонецПроцедуры + +Асинх Процедура ПослеПроверкиПодписиНаТокене(РезультатМатематическойПроверки, Контекст) Экспорт Если РезультатМатематическойПроверки = Неопределено Тогда ПроверитьПодписьДобавитьСвойстваПодписиВРезультат(Контекст.Подпись, Неопределено, Контекст); @@ -2590,6 +2658,10 @@ Иначе Если ТипЗнч(Результат) = Тип("Структура") Тогда Контекст.ОписаниеОшибкиНаКлиенте = Результат.ОписаниеОшибки; + Иначе + Контекст.ОписаниеОшибкиНаКлиенте = СтроковыеФункцииКлиентСервер.ПодставитьПараметрыВСтроку( + НСтр("ru = 'Не удалось получить менеджер криптографии для алгоритма %1: %2.'"), + Контекст.АлгоритмПодписи, Результат); КонецЕсли; ПроверитьСертификатПослеНеуспешнойПроверки(Контекст); КонецЕсли; @@ -3134,7 +3206,7 @@ Иначе ОписаниеОшибки = ОписаниеОшибок.ОписаниеОшибки; КонецЕсли; - + Если Контекст.ПоказатьОшибку = Истина И ТекстОбщейОшибки <> ТекстОшибкиУстройствоНеПоддерживается() Тогда ПоказатьОшибкуОбращенияКПрограмме(ЗаголовокФормы, "", ОписаниеОшибок, Новый Структура); КонецЕсли; @@ -3571,7 +3643,7 @@ Результат.Ошибка = ТекстОшибкиУстройствоНеПоддерживается(); Возврат Результат; #КонецЕсли - + Если ОбъектКомпоненты = Неопределено Тогда ТекстПояснения = СтроковыеФункцииКлиентСервер.ПодставитьПараметрыВСтроку( @@ -4048,8 +4120,12 @@ ОбработчикЗавершения = Неопределено; Контекст.ПараметрыСоздания.Свойство("ОбработчикЗавершения", ОбработчикЗавершения); - ОткрытьФорму("Справочник.СертификатыКлючейЭлектроннойПодписиИШифрования.Форма.ДобавлениеСертификатаДляШифрования", + Форма = ОткрытьФорму("Справочник.СертификатыКлючейЭлектроннойПодписиИШифрования.Форма.ДобавлениеСертификатаДляШифрования", ПараметрыФормы, , , , , ОбработчикЗавершения); + + Если Не Форма.Открыта() И Не ПустаяСтрока(Форма.ТекстПредупрежденияПриОткрытии) Тогда + ПоказатьПредупреждение(, Форма.ТекстПредупрежденияПриОткрытии); + КонецЕсли; КонецПроцедуры @@ -4145,16 +4221,33 @@ КонецПроцедуры // Продолжение процедуры ПолучитьСвойстваСертификатовНаКлиенте. -Асинх Процедура ПолучитьСвойстваСертификатовНаКлиентеПослеПолученияВсех(Контекст) +Процедура ПолучитьСвойстваСертификатовНаКлиентеПослеПолученияВсех(Контекст) - Контекст = Ждать ЭлектроннаяПодписьКлиентЛокализация.ПолучитьСвойстваСертификатовНаТокенах(Контекст, Ложь); + Оповещение = Новый ОписаниеОповещения("ПослеПолученияСвойствСертификатовНаТокенах", ЭтотОбъект, Контекст); + СтандартнаяОбработка = Истина; + ЭлектроннаяПодписьКлиентЛокализация.ПриПолученииТокенов(Оповещение, Истина, СтандартнаяОбработка); + Если Не СтандартнаяОбработка Тогда + Возврат; + КонецЕсли; + ПолучитьСвойстваСертификатовНаКлиентеВернутьРезультат(Контекст); + +КонецПроцедуры + +Асинх Процедура ПослеПолученияСвойствСертификатовНаТокенах(Токены, Контекст) Экспорт + + Контекст.МассивСертификатов = Ждать ЭлектроннаяПодписьКлиентЛокализация.ДобавитьСертификатыСТокеновВМассив(Токены, Контекст.МассивСертификатов); + ПолучитьСвойстваСертификатовНаКлиентеВернутьРезультат(Контекст); + +КонецПроцедуры + +Процедура ПолучитьСвойстваСертификатовНаКлиентеВернутьРезультат(Контекст) Если Контекст.МассивСертификатов.Количество() = 0 Тогда ВыполнитьОбработкуОповещения(Контекст.Оповещение, Контекст.Результат); Возврат; - КонецЕсли; + КонецЕсли; - ПараметрыДобавленияСвойств = Новый Структура("ТолькоОтпечатки", Контекст.ТолькоОтпечатки); + ПараметрыДобавленияСвойств = Новый Структура("ТолькоОтпечатки", Контекст.ТолькоОтпечатки); ЭлектроннаяПодписьСлужебныйКлиентСервер.ДобавитьСвойстваСертификатов( Контекст.Результат.СвойстваСертификатовНаКлиенте, Контекст.МассивСертификатов, @@ -4353,13 +4446,17 @@ КонецЕсли; Если Не Форма.Открыта() Тогда - Кнопки = Новый СписокЗначений; - Кнопки.Добавить("Открыть", НСтр("ru = 'Открыть'")); - Кнопки.Добавить("Отмена", НСтр("ru = 'Отмена'")); - ПоказатьВопрос( - Новый ОписаниеОповещения("ДобавитьСертификатТолькоДляШифрованияИзФайлаПослеПредупрежденияОСуществующем", - ЭтотОбъект, Форма.Сертификат), - НСтр("ru = 'Сертификат уже добавлен.'"), Кнопки); + Если ПустаяСтрока(Форма.ТекстПредупрежденияПриОткрытии) Тогда + Кнопки = Новый СписокЗначений; + Кнопки.Добавить("Открыть", НСтр("ru = 'Открыть'")); + Кнопки.Добавить("Отмена", НСтр("ru = 'Отмена'")); + ПоказатьВопрос( + Новый ОписаниеОповещения("ДобавитьСертификатТолькоДляШифрованияИзФайлаПослеПредупрежденияОСуществующем", + ЭтотОбъект, Форма.СертификатОтпечаток), + НСтр("ru = 'Сертификат уже добавлен.'"), Кнопки); + Иначе + ПоказатьПредупреждение(, Форма.ТекстПредупрежденияПриОткрытии); + КонецЕсли; КонецЕсли; КонецПроцедуры @@ -5501,10 +5598,13 @@ И Не ИспользоватьСервисОблачнойПодписи() Тогда Если Контекст.Операция = "Подписание" Или Контекст.Операция = "Расшифровка" Тогда - ОтпечаткиСертификатовНаТокенах = Ждать ЭлектроннаяПодписьКлиентЛокализация.ПолучитьОтпечаткиСертификатовНаТокенах(Истина, Ложь); - - Если ОтпечаткиСертификатовНаТокенах.Количество() > 0 Тогда - ВыполнитьОбработкуОповещения(Контекст.Оповещение, Истина); + + Оповещение = Новый ОписаниеОповещения("ПродолжитьОткрытиеПослеПолученияОтпечатковНаТокенах", ЭтотОбъект, + Новый Структура("Результат, Контекст", Результат, Контекст)); + СтандартнаяОбработка = Истина; + ЭлектроннаяПодписьКлиентЛокализация.ПриПолученииОтпечатковСертификатовНаТокенах(Оповещение, Истина, Ложь, + СтандартнаяОбработка); + Если Не СтандартнаяОбработка Тогда Возврат; ИначеЕсли Контекст.Операция = "Подписание" И ЭлектроннаяПодписьКлиент.ОбщиеНастройки().ИспользоватьСервисМобильнойПодписи Тогда ВыполнитьОбработкуОповещения(Контекст.Оповещение, Истина); @@ -5524,6 +5624,23 @@ КонецПроцедуры +// Продолжение процедуры ПродолжитьОткрытиеНачало. +Процедура ПродолжитьОткрытиеПослеПолученияОтпечатковНаТокенах(ОтпечаткиСертификатовНаТокенах, ДополнительныеПараметры) Экспорт + + Контекст = ДополнительныеПараметры.Контекст; + + Если ОтпечаткиСертификатовНаТокенах.Количество() > 0 Тогда + ВыполнитьОбработкуОповещения(Контекст.Оповещение, Истина); + Возврат; + КонецЕсли; + + ПоказатьОшибкуОбращенияКПрограмме( + НСтр("ru = 'Требуется приложение электронной подписи и шифрования'"), "", ДополнительныеПараметры.Результат, + Контекст.ОшибкаНаСервере); + + ВыполнитьОбработкуОповещения(Контекст.Оповещение, Ложь); + +КонецПроцедуры // Только для внутреннего использования. Процедура ПолучитьОтпечаткиСертификатовНаКлиенте(Оповещение, ВключаяПросроченные = Ложь) Экспорт @@ -5542,20 +5659,32 @@ КонецПроцедуры // Продолжение процедуры ПолучитьОтпечаткиСертификатовНаКлиенте. -Асинх Процедура ПолучитьОтпечаткиСертификатовНаКлиентеПослеСозданияМенеджераКриптографии(МенеджерКриптографии, Контекст) Экспорт +Процедура ПолучитьОтпечаткиСертификатовНаКлиентеПослеСозданияМенеджераКриптографии(МенеджерКриптографии, Контекст) Экспорт + + Оповещение = Новый ОписаниеОповещения("ПослеПолученияОтпечатковНаТокенах", ЭтотОбъект, + Новый Структура("Контекст, МенеджерКриптографии", Контекст, МенеджерКриптографии)); + СтандартнаяОбработка = Истина; + ЭлектроннаяПодписьКлиентЛокализация.ПриПолученииОтпечатковСертификатовНаТокенах( + Оповещение, Контекст.ВключаяПросроченные, Ложь, СтандартнаяОбработка); + Если Не СтандартнаяОбработка Тогда + Возврат; + КонецЕсли; + ВыполнитьОбработкуОповещения(Оповещение, Новый Массив); - Массив = Ждать ЭлектроннаяПодписьКлиентЛокализация.ПолучитьОтпечаткиСертификатовНаТокенах(Ложь, Контекст.ВключаяПросроченные); +КонецПроцедуры + +Процедура ПослеПолученияОтпечатковНаТокенах(Массив, ДополнительныеПараметры) Экспорт - Если ТипЗнч(МенеджерКриптографии) <> Тип("МенеджерКриптографии") Тогда - ВыполнитьОбработкуОповещения(Контекст.Оповещение, Массив); + Если ТипЗнч(ДополнительныеПараметры.МенеджерКриптографии) <> Тип("МенеджерКриптографии") Тогда + ВыполнитьОбработкуОповещения(ДополнительныеПараметры.Контекст.Оповещение, Массив); Возврат; КонецЕсли; - Контекст.Вставить("МассивОтпечатков", Массив); + ДополнительныеПараметры.Контекст.Вставить("МассивОтпечатков", Массив); - МенеджерКриптографии.НачатьПолучениеХранилищаСертификатов( + ДополнительныеПараметры.МенеджерКриптографии.НачатьПолучениеХранилищаСертификатов( Новый ОписаниеОповещения( - "ПолучитьОтпечаткиСертификатовНаКлиентеПослеПолученияХранилища", ЭтотОбъект, Контекст), + "ПолучитьОтпечаткиСертификатовНаКлиентеПослеПолученияХранилища", ЭтотОбъект, ДополнительныеПараметры.Контекст), ТипХранилищаСертификатовКриптографии.ПерсональныеСертификаты); КонецПроцедуры @@ -5823,23 +5952,29 @@ Контекст.СвойстваСертификата.Вставить("ДвоичныеДанные", ДанныеСертификата); Если Операция = "Шифрование" Тогда - Токен = Ждать ЭлектроннаяПодписьКлиентЛокализация.ТокенДляШифрования( - Контекст.СертификатКриптографии, АлгоритмШифрования, Контекст.СвойстваСертификата); - Если Токен <> Неопределено Тогда - Контекст.Вставить("МенеджерКриптографии", Токен); - Контекст.Вставить("АлгоритмШифрования", АлгоритмШифрования); - ВыполнитьНаСторонеПодготовкаСертификатовЦиклНачало(Контекст); + + Оповещение = Новый ОписаниеОповещения("ПослеПоискаТокенаДляШифрования", ЭтотОбъект, + Новый Структура("Контекст, АлгоритмШифрования, ОписаниеОшибки", + Контекст, АлгоритмШифрования, ПрограммаПоСертификатуРезультат.Ошибка)); + СтандартнаяОбработка = Истина; + ЭлектроннаяПодписьКлиентЛокализация.ПриПоискеТокенаДляШифрования(Оповещение, СертификатКриптографии, АлгоритмШифрования, + Контекст.СвойстваСертификата, СтандартнаяОбработка); + Если Не СтандартнаяОбработка Тогда Возврат; КонецЕсли; + Иначе - Токен = Ждать ПолучитьТокенПоСертификату(Контекст.СертификатКриптографии); - Если Токен <> Неопределено Тогда - Контекст.Вставить("МенеджерКриптографии", Токен); - Токен.Вставить("Пароль", Контекст.ЗначениеПароля); - Контекст.Удалить("ЗначениеПароля"); - ВыполнитьНаСторонеЦиклЗапуск(Контекст); + + Оповещение = Новый ОписаниеОповещения("ПослеПоискаТокенаПоСертификату", ЭтотОбъект, + Новый Структура("Контекст, АлгоритмШифрования, ОписаниеОшибки", + Контекст, АлгоритмШифрования, ПрограммаПоСертификатуРезультат.Ошибка)); + СтандартнаяОбработка = Истина; + ЭлектроннаяПодписьКлиентЛокализация.ПриПолученииТокенаПоСертификату( + Оповещение, Контекст.СертификатКриптографии, СтандартнаяОбработка, Истина); + Если Не СтандартнаяОбработка Тогда Возврат; КонецЕсли; + КонецЕсли; ОшибкаНаКлиенте = Новый Структура("ОписаниеОшибки", ПрограммаПоСертификатуРезультат.Ошибка); @@ -5869,6 +6004,47 @@ КонецПроцедуры +Асинх Процедура ПослеПоискаТокенаДляШифрования(Токен, ДополнительныеПараметры) Экспорт + + Если Не ЗначениеЗаполнено(Токен) Тогда +#Если МобильныйКлиент Или МобильноеПриложениеКлиент Тогда + ОшибкаНаКлиенте = Новый Структура("ОписаниеОшибки", НСтр("ru = 'Не найден токен для шифрования данных.'")); +#Иначе + ОшибкаНаКлиенте = Новый Структура("ОписаниеОшибки", ДополнительныеПараметры.ОписаниеОшибки); +#КонецЕсли + ОшибкаНаКлиенте.Вставить("Инструкция", Истина); + ВыполнитьНаСторонеПослеЦикла(ОшибкаНаКлиенте, ДополнительныеПараметры.Контекст); + Возврат; + КонецЕсли; + + ДополнительныеПараметры.Контекст.Вставить("МенеджерКриптографии", Токен); + ДополнительныеПараметры.Контекст.Вставить("АлгоритмШифрования", ДополнительныеПараметры.АлгоритмШифрования); + ВыполнитьНаСторонеПодготовкаСертификатовЦиклНачало(ДополнительныеПараметры.Контекст); + +КонецПроцедуры + + +Асинх Процедура ПослеПоискаТокенаПоСертификату(Токен, ДополнительныеПараметры) Экспорт + + Если Не ЗначениеЗаполнено(Токен) Тогда +#Если МобильныйКлиент Или МобильноеПриложениеКлиент Тогда + ОшибкаНаКлиенте = Новый Структура("ОписаниеОшибки", НСтр("ru = 'Не найден токен с указанным сертификатом.'")); +#Иначе + ОшибкаНаКлиенте = Новый Структура("ОписаниеОшибки", ДополнительныеПараметры.ОписаниеОшибки); +#КонецЕсли + + ОшибкаНаКлиенте.Вставить("Инструкция", Истина); + ВыполнитьНаСторонеПослеЦикла(ОшибкаНаКлиенте, ДополнительныеПараметры.Контекст); + Возврат; + КонецЕсли; + + ДополнительныеПараметры.Контекст.Вставить("МенеджерКриптографии", Токен); + Токен.Вставить("Пароль", ДополнительныеПараметры.Контекст.ЗначениеПароля); + ДополнительныеПараметры.Контекст.Удалить("ЗначениеПароля"); + ВыполнитьНаСторонеЦиклЗапуск(ДополнительныеПараметры.Контекст); + +КонецПроцедуры + // Продолжение процедуры ВыполнитьНаСтороне. Процедура ВыполнитьНаСторонеПослеСозданияМенеджераКриптографии(Результат, Контекст) Экспорт @@ -6217,7 +6393,21 @@ ВыполнитьОперациюОблачнойПодписи(Оповещение, Контекст, Данные, ПараметрыОперации); ИначеЕсли ТипЗнч(МенеджерКриптографии) = Тип("Структура") Тогда // Токен - СоздатьПодписьНаТокене(Контекст, Результат.ПараметрыCMS.Открепленная); + + ПараметрыПодписи = ПараметрыПодписиНаТокене(МенеджерКриптографии, Контекст.СертификатКриптографии, + Контекст.ОписаниеДанных.ТипПодписи); + ПараметрыПодписи.Открепленная = Результат.ПараметрыCMS.Открепленная; + СтандартнаяОбработка = Истина; + ОповещениеПослеОперацииНаТокене = Новый ОписаниеОповещения("ПослеПодписанияНаТокене", + ЭтотОбъект, Контекст); + + ЭлектроннаяПодписьКлиентЛокализация.ПриПодписанииНаТокене(ОповещениеПослеОперацииНаТокене, + ПараметрыПодписи, Данные, СтандартнаяОбработка); + Если Не СтандартнаяОбработка Тогда + Возврат; + КонецЕсли; + ВыполнитьОбработкуОповещения(ОповещениеПослеОперацииНаТокене, + НСтр("ru = 'Не найдена процедура подписания для токена.'")); Иначе ОповещениеУспех = Новый ОписаниеОповещения( "ВыполнитьНаСторонеЦиклПослеОперацииНаКлиентеXMLDSig", ЭтотОбъект, Контекст); @@ -6261,7 +6451,22 @@ КонецПопытки; Если ТипЗнч(МенеджерКриптографии) = Тип("Структура") Тогда // Токен - ПодписатьНаТокене(МенеджерКриптографии, Оповещение, Данные, Контекст); + + ПараметрыПодписи = ПараметрыПодписиНаТокене(МенеджерКриптографии, Контекст.СертификатКриптографии, + Контекст.ОписаниеДанных.ТипПодписи); + СтандартнаяОбработка = Истина; + ОповещениеПослеОперацииНаТокене = Новый ОписаниеОповещения("ПослеПодписанияНаТокене", + ЭтотОбъект, Контекст); + + ЭлектроннаяПодписьКлиентЛокализация.ПриПодписанииНаТокене(ОповещениеПослеОперацииНаТокене, + ПараметрыПодписи, Данные, СтандартнаяОбработка); + Если Не СтандартнаяОбработка Тогда + Возврат; + КонецЕсли; + + ВыполнитьОбработкуОповещения(ОповещениеПослеОперацииНаТокене, + НСтр("ru = 'Не найдена процедура подписания для токена.'")); + Иначе Если ЗначениеЗаполнено(НастройкиПодписи.АдресаСерверовМетокВремени) Тогда МенеджерКриптографии.АдресаСерверовМетокВремени = НастройкиПодписи.АдресаСерверовМетокВремени; @@ -6278,7 +6483,21 @@ МодульСервисКриптографииКлиент = ОбщегоНазначенияКлиент.ОбщийМодуль("СервисКриптографииКлиент"); МодульСервисКриптографииКлиент.Зашифровать(Оповещение, Данные, Контекст.СертификатыШифрования, , ПараметрыОперации); ИначеЕсли ТипЗнч(МенеджерКриптографии) = Тип("Структура") Тогда // Токен - ЗашифроватьНаТокене(МенеджерКриптографии, Оповещение, Данные, Контекст); + + ПараметрыШифрования = ПараметрыШифрованияНаТокене(МенеджерКриптографии, + Контекст.СертификатыШифрования, Контекст.АлгоритмШифрования); + + СтандартнаяОбработка = Истина; + ОповещениеПослеОперацииНаТокене = Новый ОписаниеОповещения("ПослеШифрованияНаТокене", ЭтотОбъект, Контекст); + ЭлектроннаяПодписьКлиентЛокализация.ПриШифрованииНаТокене(ОповещениеПослеОперацииНаТокене, + ПараметрыШифрования, Данные, СтандартнаяОбработка); + Если Не СтандартнаяОбработка Тогда + Возврат; + КонецЕсли; + + ВыполнитьОбработкуОповещения(ОповещениеПослеОперацииНаТокене, + НСтр("ru = 'Не найдена процедура шифрования для токена.'")); + Иначе МенеджерКриптографии.НачатьШифрование(Оповещение, Данные, Контекст.СертификатыШифрования); КонецЕсли; @@ -6289,7 +6508,21 @@ МодульСервисКриптографииКлиент = ОбщегоНазначенияКлиент.ОбщийМодуль("СервисКриптографииКлиент"); МодульСервисКриптографииКлиент.Расшифровать(Оповещение, Данные, , ПараметрыОперации); ИначеЕсли ТипЗнч(МенеджерКриптографии) = Тип("Структура") Тогда // Токен - РасшифроватьНаТокене(МенеджерКриптографии, Оповещение, Данные, Контекст); + + ПараметрыРасшифровки = ПараметрыРасшифровкиНаТокене(МенеджерКриптографии, + Контекст.СертификатКриптографии); + ОповещениеПослеОперацииНаТокене = Новый ОписаниеОповещения("ПослеРасшифровкиНаТокене", + ЭтотОбъект, Контекст); + СтандартнаяОбработка = Истина; + ЭлектроннаяПодписьКлиентЛокализация.ПриРасшифровкеНаТокене(ОповещениеПослеОперацииНаТокене, + ПараметрыРасшифровки, Данные, СтандартнаяОбработка); + Если Не СтандартнаяОбработка Тогда + Возврат; + КонецЕсли; + + ВыполнитьОбработкуОповещения(ОповещениеПослеОперацииНаТокене, + НСтр("ru = 'Не найдена процедура расшифровки для токена.'")); + Иначе МенеджерКриптографии.НачатьРасшифровку(Оповещение, Данные); КонецЕсли; @@ -6366,11 +6599,8 @@ КонецПроцедуры -Асинх Процедура ПодписатьНаТокене(Токен, Оповещение, Данные, Контекст) - - ПараметрыПодписи = ПараметрыПодписиНаТокене(Токен, Контекст.СертификатКриптографии, Контекст.ОписаниеДанных.ТипПодписи); - Подпись = Ждать ЭлектроннаяПодписьКлиентЛокализация.ПодписьНаТокене(ПараметрыПодписи, Данные); - +Процедура ПослеПодписанияНаТокене(Подпись,Контекст) Экспорт + Если ТипЗнч(Подпись) = Тип("Строка") Тогда ОшибкаНаКлиенте = Новый Структура("ОписаниеОшибки", Подпись); ВыполнитьНаСторонеПослеЦикла(ОшибкаНаКлиенте, Контекст); @@ -6381,11 +6611,8 @@ КонецПроцедуры -Асинх Процедура ЗашифроватьНаТокене(Токен, Оповещение, Данные, Контекст) - - ПараметрыШифрования = ПараметрыШифрованияНаТокене(Токен, Контекст.СертификатыШифрования, Контекст.АлгоритмШифрования); - ЗашифрованныеДанные = Ждать ЭлектроннаяПодписьКлиентЛокализация.ШифрованиеНаТокене(ПараметрыШифрования, Данные); - +Процедура ПослеШифрованияНаТокене(ЗашифрованныеДанные, Контекст) Экспорт + Если ТипЗнч(ЗашифрованныеДанные) = Тип("Строка") Тогда ОшибкаНаКлиенте = Новый Структура("ОписаниеОшибки", ЗашифрованныеДанные); ВыполнитьНаСторонеПослеЦикла(ОшибкаНаКлиенте, Контекст); @@ -6396,10 +6623,7 @@ КонецПроцедуры -Асинх Процедура РасшифроватьНаТокене(Токен, Оповещение, Данные, Контекст) - - ПараметрыРасшифровки = ПараметрыРасшифровкиНаТокене(Токен, Контекст.СертификатКриптографии); - РасшифрованныеДанные = Ждать ЭлектроннаяПодписьКлиентЛокализация.РасшифровкаНаТокене(ПараметрыРасшифровки, Данные); +Процедура ПослеРасшифровкиНаТокене(РасшифрованныеДанные, Контекст) Экспорт Если ТипЗнч(РасшифрованныеДанные) = Тип("Строка") Тогда ОшибкаНаКлиенте = Новый Структура("ОписаниеОшибки", РасшифрованныеДанные); @@ -6407,6 +6631,12 @@ Возврат; КонецЕсли; + Если Не ЗначениеЗаполнено(РасшифрованныеДанные) Тогда + ОшибкаНаКлиенте = Новый Структура("ОписаниеОшибки", НСтр("ru = 'Получены пустые расшифрованные данные.'")); + ВыполнитьНаСторонеПослеЦикла(ОшибкаНаКлиенте, Контекст); + Возврат; + КонецЕсли; + ВыполнитьНаСторонеЦиклПослеОперацииНаКлиенте(РасшифрованныеДанные, Контекст); КонецПроцедуры @@ -8086,23 +8316,6 @@ КонецПроцедуры -Асинх Процедура СоздатьПодписьНаТокене(Контекст, Открепленная) - - ПараметрыПодписи = ПараметрыПодписиНаТокене(Контекст.Токен, - Контекст.СертификатКриптографии, Контекст.ОписаниеДанных.ТипПодписи); - - ПараметрыПодписи.Открепленная = Открепленная; - Подпись = Ждать ПодписьНаТокене(ПараметрыПодписи, Контекст.ЭлементДанных.Данные.Данные); - - Если ТипЗнч(Подпись) = Тип("Строка") Тогда - ВыполнитьНаСторонеЦиклПослеОшибкиОперацииНаКлиентеXMLDSig(Подпись, Контекст); - Возврат; - КонецЕсли; - - ВыполнитьНаСторонеЦиклПослеОперацииНаКлиентеXMLDSig(Подпись, Контекст); - -КонецПроцедуры - Процедура Подписание_ПослеВыполненияCMSSign_Ошибка(ИнформацияОбОшибке, СтандартнаяОбработка, Контекст) Экспорт СтандартнаяОбработка = Ложь; @@ -9117,6 +9330,7 @@ КонецПроцедуры +// Продолжение процедуры ЭлектроннаяПодписьКлиент.ДобавитьСертификат. Асинх Процедура ДобавитьСертификатСТокена(Контекст) Если Контекст.СертификатКриптографии = Неопределено Тогда @@ -9124,10 +9338,25 @@ Ждать СертификатКриптографии.ИнициализироватьАсинх(Контекст.ДанныеСертификата); Контекст.Вставить("СертификатКриптографии", СертификатКриптографии); КонецЕсли; - - Токен = Ждать ПолучитьТокенПоСертификату(Контекст.СертификатКриптографии); - Если Токен = Неопределено Тогда + Оповещение = Новый ОписаниеОповещения("ДобавитьСертификатСТокенаПослеПолученияТокена", ЭтотОбъект, Контекст); + + СтандартнаяОбработка = Истина; + ЭлектроннаяПодписьКлиентЛокализация.ПриПолученииТокенаПоСертификату( + Оповещение, Контекст.СертификатКриптографии, СтандартнаяОбработка, Истина); + Если Не СтандартнаяОбработка Тогда + Возврат; + КонецЕсли; + + ВыполнитьОбработкуОповещения(Контекст.ОбработчикЗавершения, Неопределено); + СообщитьОбОшибкеДобавленияСертификата(Контекст); + +КонецПроцедуры + +// Продолжение процедуры ЭлектроннаяПодписьКлиент.ДобавитьСертификат. +Процедура ДобавитьСертификатСТокенаПослеПолученияТокена(Токен, Контекст) Экспорт + + Если Не ЗначениеЗаполнено(Токен) Тогда ВыполнитьОбработкуОповещения(Контекст.ОбработчикЗавершения, Неопределено); СообщитьОбОшибкеДобавленияСертификата(Контекст); Возврат; @@ -9136,57 +9365,22 @@ Токен.Вставить("Пароль", Контекст.ПарольСертификата); Контекст.Вставить("Токен", Токен); + СтандартнаяОбработка = Истина; Если Контекст.ДляШифрования = Истина Тогда ПараметрыШифрованияНаТокене = ПараметрыШифрованияНаТокене(Токен, Контекст.СертификатКриптографии); - Результат = Ждать ЭлектроннаяПодписьКлиентЛокализация.ШифрованиеНаТокене(ПараметрыШифрованияНаТокене, Контекст.ДанныеСертификата); - - Если ТипЗнч(Результат) = Тип("Строка") Тогда - ЭлектроннаяПодписьСлужебныйКлиентСервер.ЗаполнитьОшибкуДобавленияСертификата( - Контекст.ОшибкаНаКлиенте, - Новый Структура("Ссылка, Токен", Токен.Представление, Токен), - "Шифрование", - Результат, - Контекст.ЭтоПолноправныйПользователь); - ВыполнитьОбработкуОповещения(Контекст.ОбработчикЗавершения, Неопределено); - СообщитьОбОшибкеДобавленияСертификата(Контекст); - Возврат; - КонецЕсли; - - ПараметрыРасшифровкиНаТокене = ПараметрыРасшифровкиНаТокене(Токен, Контекст.СертификатКриптографии); - Результат = Ждать ЭлектроннаяПодписьКлиентЛокализация.РасшифровкаНаТокене(ПараметрыРасшифровкиНаТокене, Результат); - Если ТипЗнч(Результат) = Тип("Строка") Тогда - ЭлектроннаяПодписьСлужебныйКлиентСервер.ЗаполнитьОшибкуДобавленияСертификата( - Контекст.ОшибкаНаКлиенте, - Новый Структура("Ссылка, Токен", Токен.Представление, Токен), - "Расшифровка", - Результат, - Контекст.ЭтоПолноправныйПользователь); - ВыполнитьОбработкуОповещения(Контекст.ОбработчикЗавершения, Неопределено); - СообщитьОбОшибкеДобавленияСертификата(Контекст); - Возврат; - КонецЕсли; - + ЭлектроннаяПодписьКлиентЛокализация.ПриШифрованииНаТокене(Новый ОписаниеОповещения("ДобавитьСертификатСТокенаПослеШифрования", ЭтотОбъект, + Контекст), ПараметрыШифрованияНаТокене, Контекст.ДанныеСертификата, СтандартнаяОбработка); Иначе ПараметрыПодписи = ПараметрыПодписиНаТокене(Токен, Контекст.СертификатКриптографии, ПредопределенноеЗначение("Перечисление.ТипыПодписиКриптографии.БазоваяCAdESBES")); - - Результат = Ждать ПодписьНаТокене(ПараметрыПодписи, Контекст.ДанныеСертификата); - - Если ТипЗнч(Результат) = Тип("Строка") Тогда - ЭлектроннаяПодписьСлужебныйКлиентСервер.ЗаполнитьОшибкуДобавленияСертификата( - Контекст.ОшибкаНаКлиенте, - Новый Структура("Ссылка, Токен", Токен.Представление, Токен), - "Подписание", - Результат, - Контекст.ЭтоПолноправныйПользователь); - ВыполнитьОбработкуОповещения(Контекст.ОбработчикЗавершения, Неопределено); - СообщитьОбОшибкеДобавленияСертификата(Контекст); - Возврат; - КонецЕсли; + ЭлектроннаяПодписьКлиентЛокализация.ПриПодписанииНаТокене(Новый ОписаниеОповещения("ДобавитьСертификатСТокенаПослеПолученияПодписи", ЭтотОбъект, + Контекст), ПараметрыПодписи, Контекст.ДанныеСертификата, СтандартнаяОбработка); КонецЕсли; - Контекст.Вставить("ОписаниеПрограммы", Новый Структура("Ссылка", Неопределено)); - ДобавитьСертификатЦиклПослеПодписания(Результат, Контекст); + Если СтандартнаяОбработка Тогда + ВыполнитьОбработкуОповещения(Контекст.ОбработчикЗавершения, Неопределено); + СообщитьОбОшибкеДобавленияСертификата(Контекст); + КонецЕсли; КонецПроцедуры @@ -10380,14 +10574,28 @@ СистемнаяИнформация.ИдентификаторКлиента); Если ЗначениеЗаполнено(КаталогЛогаКомпоненты) Тогда + + ЛогКомпоненты = ""; +#Если МобильныйКлиент Или МобильноеПриложениеКлиент Тогда + ИмяОбъекта = ""; + ЭлектроннаяПодписьКлиентЛокализация.ПриПолученииИдентификатораМобильнойКомпоненты(ИмяОбъекта); + Если ЗначениеЗаполнено(ИмяОбъекта) Тогда + ЛогКомпоненты = ОбщегоНазначенияКлиентСервер.ДобавитьКонечныйРазделительПути(КаталогЛогаКомпоненты) + + ИмяОбъекта +".log"; + КонецЕсли; +#Иначе ЛогКомпоненты = ОбщегоНазначенияКлиентСервер.ДобавитьКонечныйРазделительПути(КаталогЛогаКомпоненты) + ЭлектроннаяПодписьСлужебныйКлиентСервер.ОписаниеКомпоненты().ИмяОбъекта + ".log"; - Файл = Новый Файл(ЛогКомпоненты); - Если Ждать Файл.СуществуетАсинх() Тогда - ДвоичныеДанныеФайла = Ждать СоздатьДвоичныеДанныеИзФайлаАсинх(ЛогКомпоненты); - Если ЗначениеЗаполнено(ДвоичныеДанныеФайла) Тогда - Контекст.ДополнительныеФайлы.Добавить( - Новый Структура("Имя, Данные", Файл.ИмяБезРасширения + ".txt", ДвоичныеДанныеФайла)); +#КонецЕсли + + Если ЗначениеЗаполнено(ЛогКомпоненты) Тогда + Файл = Новый Файл(ЛогКомпоненты); + Если Ждать Файл.СуществуетАсинх() Тогда + ДвоичныеДанныеФайла = Ждать СоздатьДвоичныеДанныеИзФайлаАсинх(ЛогКомпоненты); + Если ЗначениеЗаполнено(ДвоичныеДанныеФайла) Тогда + Контекст.ДополнительныеФайлы.Добавить( + Новый Структура("Имя, Данные", Файл.ИмяБезРасширения + ".txt", ДвоичныеДанныеФайла)); + КонецЕсли; КонецЕсли; КонецЕсли; КонецЕсли; @@ -10574,13 +10782,6 @@ КонецФункции -Функция ТекстОшибкиУстройствоНеПоддерживается() - - Возврат СтроковыеФункцииКлиентСервер.ПодставитьПараметрыВСтроку( - НСтр("ru = 'Действие доступно только на компьютерах с операционной системой %1, %2 или %3.'"), - "MacOS", "Windows", "Linux"); -КонецФункции - Процедура ВыполнитьПослеПодключенияКомпоненты(Результат, Контекст) Экспорт Если Результат.Подключено Тогда @@ -11350,6 +11551,12 @@ Результат.Вставить("Токены", Новый Массив); Результат.Вставить("Ошибка", ""); +#Если МобильныйКлиент Или МобильноеПриложениеКлиент Тогда + Результат.Вставить("ПроверкаВыполнена", Истина); + ЗаписатьВКэшУстановленныеКриптопровайдеры(Результат); + Возврат Результат; +#КонецЕсли + Если ОбъектКомпоненты = Неопределено Тогда ТекстПояснения = СтроковыеФункцииКлиентСервер.ПодставитьПараметрыВСтроку( @@ -11420,9 +11627,17 @@ ИмяПараметра = "ЭлектроннаяПодпись.УстановленныеКриптопровайдеры"; + ДобавкаВремени = 1200; + +#Если МобильныйКлиент Или МобильноеПриложениеКлиент Тогда + ЭтоМобильныйКлиент = Истина; +#Иначе + ЭтоМобильныйКлиент = Ложь; +#КонецЕсли + Если ПараметрыПриложения[ИмяПараметра] = Неопределено - Или ПараметрыПриложения[ИмяПараметра].ВремяПроверки + 1200 < ТекущаяДата() // АПК:143 Должна использоваться ТекущаяДата(). - Или ПараметрыПриложения[ИмяПараметра].Ошибка = ТекстОшибкиНеУстановленаКомпонента() И ПредложитьУстановить Тогда + Или Не ЭтоМобильныйКлиент И ПараметрыПриложения[ИмяПараметра].ВремяПроверки + ДобавкаВремени < ТекущаяДата() // АПК:143 Должна использоваться ТекущаяДата(). + Или Не ЭтоМобильныйКлиент И ПараметрыПриложения[ИмяПараметра].Ошибка = ТекстОшибкиНеУстановленаКомпонента() И ПредложитьУстановить Тогда РезультатПроверки = Ждать УстановленныеКриптопровайдеры(Неопределено, ПредложитьУстановить); Возврат РезультатПроверки; diff --git a/SSL/src/CommonModules/ЭлектроннаяПодписьСлужебныйКлиентПовтИсп/Module.bsl b/SSL/src/CommonModules/ЭлектроннаяПодписьСлужебныйКлиентПовтИсп/Module.bsl index c7d278517..e9b52bafa 100644 --- a/SSL/src/CommonModules/ЭлектроннаяПодписьСлужебныйКлиентПовтИсп/Module.bsl +++ b/SSL/src/CommonModules/ЭлектроннаяПодписьСлужебныйКлиентПовтИсп/Module.bsl @@ -1,5 +1,5 @@ /////////////////////////////////////////////////////////////////////////////////////////////////////// -// Copyright (c) 2024, ООО 1С-Софт +// Copyright (c) 2025, ООО 1С-Софт // Все права защищены. Эта программа и сопроводительные материалы предоставляются // в соответствии с условиями лицензии Attribution 4.0 International (CC BY 4.0) // Текст лицензии доступен по ссылке: diff --git a/SSL/src/CommonModules/ЭлектроннаяПодписьСлужебныйКлиентСервер/Module.bsl b/SSL/src/CommonModules/ЭлектроннаяПодписьСлужебныйКлиентСервер/Module.bsl index 445b774ed..f983f3af8 100644 --- a/SSL/src/CommonModules/ЭлектроннаяПодписьСлужебныйКлиентСервер/Module.bsl +++ b/SSL/src/CommonModules/ЭлектроннаяПодписьСлужебныйКлиентСервер/Module.bsl @@ -1,5 +1,5 @@ /////////////////////////////////////////////////////////////////////////////////////////////////////// -// Copyright (c) 2024, ООО 1С-Софт +// Copyright (c) 2025, ООО 1С-Софт // Все права защищены. Эта программа и сопроводительные материалы предоставляются // в соответствии с условиями лицензии Attribution 4.0 International (CC BY 4.0) // Текст лицензии доступен по ссылке: @@ -376,6 +376,33 @@ КонецФункции +// См. ЭлектроннаяПодписьКлиент.НовыйТипПодписи +// +// Возвращаемое значение: +// Строка +// +Функция ПроверятьКвалифицированные() Экспорт + Возврат "ПроверятьКвалифицированные"; +КонецФункции + +// См. ЭлектроннаяПодписьКлиент.НовыйТипПодписи +// +// Возвращаемое значение: +// Строка +// +Функция ТолькоКвалифицированные() Экспорт + Возврат "ТолькоКвалифицированные"; +КонецФункции + +// См. ЭлектроннаяПодписьКлиент.НовыйТипПодписи +// +// Возвращаемое значение: +// Строка +// +Функция НеПроверятьСертификат() Экспорт + Возврат "НеПроверятьСертификат"; +КонецФункции + #КонецОбласти #Область СлужебныеПроцедурыИФункции @@ -509,18 +536,6 @@ КонецФункции -Функция ПроверятьКвалифицированные() Экспорт - Возврат "ПроверятьКвалифицированные"; -КонецФункции - -Функция ТолькоКвалифицированные() Экспорт - Возврат "ТолькоКвалифицированные"; -КонецФункции - -Функция НеПроверятьСертификат() Экспорт - Возврат "НеПроверятьСертификат"; -КонецФункции - Функция ОписаниеПрограммыПоИмениКриптопровайдера(ИмяКриптопровайдера, ОписанияПрограмм, ПрограммыАвто) Экспорт ПрограммаНайдена = Ложь; @@ -2700,11 +2715,9 @@ КонецФункции Функция ДоступныДополнительныеСвойстваСертификата() Экспорт - #Если МобильныйКлиент Тогда Возврат Ложь; #КонецЕсли - СистемнаяИнформация = Новый СистемнаяИнформация(); Версия = ОбщегоНазначенияКлиентСервер.ВерсияКонфигурацииБезНомераСборки(СистемнаяИнформация.ВерсияПриложения); Возврат ОбщегоНазначенияКлиентСервер.СравнитьВерсииБезНомераСборки(Версия, "8.3.27") >= 0; @@ -3265,12 +3278,14 @@ ДатыСертификата.Вставить("ДатаОкончанияЗакрытогоКлюча", Дата(1,1,1)); Если ДоступныДополнительныеСвойстваСертификата() И ТипЗнч(Сертификат) = Тип("СертификатКриптографии") Тогда - Если Сертификат.УниверсальнаяДатаНачалаЗакрытогоКлюча <> Неопределено Тогда - ДатыСертификата.Вставить("ДатаНачалаЗакрытогоКлюча", Сертификат.УниверсальнаяДатаНачалаЗакрытогоКлюча + СвойстваДаты = Новый Структура("УниверсальнаяДатаНачалаЗакрытогоКлюча, УниверсальнаяДатаОкончанияЗакрытогоКлюча"); + ЗаполнитьЗначенияСвойств(СвойстваДаты, Сертификат); + Если СвойстваДаты.УниверсальнаяДатаНачалаЗакрытогоКлюча <> Неопределено Тогда + ДатыСертификата.Вставить("ДатаНачалаЗакрытогоКлюча", СвойстваДаты.УниверсальнаяДатаНачалаЗакрытогоКлюча + РазницаСУниверсальнымВременем); КонецЕсли; - Если Сертификат.УниверсальнаяДатаОкончанияЗакрытогоКлюча <> Неопределено Тогда - ДатыСертификата.Вставить("ДатаОкончанияЗакрытогоКлюча", Сертификат.УниверсальнаяДатаОкончанияЗакрытогоКлюча + Если СвойстваДаты.УниверсальнаяДатаОкончанияЗакрытогоКлюча <> Неопределено Тогда + ДатыСертификата.Вставить("ДатаОкончанияЗакрытогоКлюча", СвойстваДаты.УниверсальнаяДатаОкончанияЗакрытогоКлюча + РазницаСУниверсальнымВременем); ДатыСертификата.Вставить("ДействителенДо", Мин(ДатыСертификата.ДатаОкончания, ДатыСертификата.ДатаОкончанияЗакрытогоКлюча)); diff --git a/SSL/src/CommonModules/ЭлектроннаяПодписьСлужебныйПовтИсп/Module.bsl b/SSL/src/CommonModules/ЭлектроннаяПодписьСлужебныйПовтИсп/Module.bsl index 56fcff9c1..8c7cca608 100644 --- a/SSL/src/CommonModules/ЭлектроннаяПодписьСлужебныйПовтИсп/Module.bsl +++ b/SSL/src/CommonModules/ЭлектроннаяПодписьСлужебныйПовтИсп/Module.bsl @@ -1,5 +1,5 @@ /////////////////////////////////////////////////////////////////////////////////////////////////////// -// Copyright (c) 2024, ООО 1С-Софт +// Copyright (c) 2025, ООО 1С-Софт // Все права защищены. Эта программа и сопроводительные материалы предоставляются // в соответствии с условиями лицензии Attribution 4.0 International (CC BY 4.0) // Текст лицензии доступен по ссылке: diff --git a/SSL/src/CommonModules/ЭлектроннаяПодписьСлужебныйРФ/Module.bsl b/SSL/src/CommonModules/ЭлектроннаяПодписьСлужебныйРФ/Module.bsl index e1088e9bc..7f7c7549a 100644 --- a/SSL/src/CommonModules/ЭлектроннаяПодписьСлужебныйРФ/Module.bsl +++ b/SSL/src/CommonModules/ЭлектроннаяПодписьСлужебныйРФ/Module.bsl @@ -1,5 +1,5 @@ /////////////////////////////////////////////////////////////////////////////////////////////////////// -// Copyright (c) 2024, ООО 1С-Софт +// Copyright (c) 2025, ООО 1С-Софт // Все права защищены. Эта программа и сопроводительные материалы предоставляются // в соответствии с условиями лицензии Attribution 4.0 International (CC BY 4.0) // Текст лицензии доступен по ссылке: @@ -119,7 +119,7 @@ Если ДанныеУдостоверяющихЦентров = Неопределено Или Не ДанныеУдостоверяющихЦентров.Свойство("ДругиеНастройки") - Или ДанныеУдостоверяющихЦентров.ДатыОкончанияДействия.Версия < 32 Тогда + Или ДанныеУдостоверяющихЦентров.ДатыОкончанияДействия.Версия < 35 Тогда ДанныеУдостоверяющихЦентров = ДанныеУдостоверяющихЦентровИзМакета(); Если ДанныеУдостоверяющихЦентров = Неопределено Тогда @@ -600,7 +600,7 @@ // Функция ВерсияКлассификатора() Экспорт - Возврат "3.0.1.75"; + Возврат "3.0.1.77"; КонецФункции diff --git a/SSL/src/CommonModules/ЯндексПереводчик/Module.bsl b/SSL/src/CommonModules/ЯндексПереводчик/Module.bsl index d5cb5bca1..d32de73ae 100644 --- a/SSL/src/CommonModules/ЯндексПереводчик/Module.bsl +++ b/SSL/src/CommonModules/ЯндексПереводчик/Module.bsl @@ -1,5 +1,5 @@ /////////////////////////////////////////////////////////////////////////////////////////////////////// -// Copyright (c) 2024, ООО 1С-Софт +// Copyright (c) 2025, ООО 1С-Софт // Все права защищены. Эта программа и сопроводительные материалы предоставляются // в соответствии с условиями лицензии Attribution 4.0 International (CC BY 4.0) // Текст лицензии доступен по ссылке: diff --git a/SSL/src/CommonPictures/BotMax/BotMax.mdo b/SSL/src/CommonPictures/BotMax/BotMax.mdo new file mode 100644 index 000000000..6dd07862a --- /dev/null +++ b/SSL/src/CommonPictures/BotMax/BotMax.mdo @@ -0,0 +1,8 @@ + + + BotMax + + ru + Bot Max + + diff --git a/SSL/src/CommonPictures/BotMax/Picture.png b/SSL/src/CommonPictures/BotMax/Picture.png new file mode 100644 index 000000000..2137d881f Binary files /dev/null and b/SSL/src/CommonPictures/BotMax/Picture.png differ diff --git a/SSL/src/CommonPictures/Max16/Max16.mdo b/SSL/src/CommonPictures/Max16/Max16.mdo new file mode 100644 index 000000000..08e93ece6 --- /dev/null +++ b/SSL/src/CommonPictures/Max16/Max16.mdo @@ -0,0 +1,8 @@ + + + Max16 + + ru + Max16 + + diff --git a/SSL/src/CommonPictures/Max16/Picture.svg b/SSL/src/CommonPictures/Max16/Picture.svg new file mode 100644 index 000000000..e18c037ec --- /dev/null +++ b/SSL/src/CommonPictures/Max16/Picture.svg @@ -0,0 +1,31 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/SSL/src/CommonPictures/КотОткрытаяАвторизацияПочтовогоСервиса/Picture.svg b/SSL/src/CommonPictures/КотОткрытаяАвторизацияПочтовогоСервиса/Picture.svg new file mode 100644 index 000000000..b5cda6b5a --- /dev/null +++ b/SSL/src/CommonPictures/КотОткрытаяАвторизацияПочтовогоСервиса/Picture.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/SSL/src/CommonPictures/КотОткрытаяАвторизацияПочтовогоСервиса/КотОткрытаяАвторизацияПочтовогоСервиса.mdo b/SSL/src/CommonPictures/КотОткрытаяАвторизацияПочтовогоСервиса/КотОткрытаяАвторизацияПочтовогоСервиса.mdo new file mode 100644 index 000000000..464ec4e45 --- /dev/null +++ b/SSL/src/CommonPictures/КотОткрытаяАвторизацияПочтовогоСервиса/КотОткрытаяАвторизацияПочтовогоСервиса.mdo @@ -0,0 +1,8 @@ + + + КотОткрытаяАвторизацияПочтовогоСервиса + + ru + Кот (открытая авторизация почтового сервиса) + + diff --git a/SSL/src/CommonPictures/ФайловыйАрхив/Picture.svg b/SSL/src/CommonPictures/ФайловыйАрхив/Picture.svg new file mode 100644 index 000000000..0b312192b --- /dev/null +++ b/SSL/src/CommonPictures/ФайловыйАрхив/Picture.svg @@ -0,0 +1,13 @@ + + + + + + + + + + + + + diff --git a/SSL/src/CommonPictures/ФайловыйАрхив/ФайловыйАрхив.mdo b/SSL/src/CommonPictures/ФайловыйАрхив/ФайловыйАрхив.mdo new file mode 100644 index 000000000..1be37bacc --- /dev/null +++ b/SSL/src/CommonPictures/ФайловыйАрхив/ФайловыйАрхив.mdo @@ -0,0 +1,8 @@ + + + ФайловыйАрхив + + ru + Файловый архив + + diff --git a/SSL/src/CommonTemplates/ДанныеПечатиОбщиеРеквизиты/Template.dcs b/SSL/src/CommonTemplates/ДанныеПечатиОбщиеРеквизиты/Template.dcs index 916be079b..47b29efbb 100644 --- a/SSL/src/CommonTemplates/ДанныеПечатиОбщиеРеквизиты/Template.dcs +++ b/SSL/src/CommonTemplates/ДанныеПечатиОбщиеРеквизиты/Template.dcs @@ -128,7 +128,7 @@ <v8:item> <v8:lang>ru</v8:lang> - <v8:content>Общие реквизиты</v8:content> + <v8:content>Общие поля</v8:content> </v8:item> diff --git a/SSL/src/CommonTemplates/ИнструкцияПоСозданиюФаксимильнойПодписиИПечати/Template.mxlx b/SSL/src/CommonTemplates/ИнструкцияПоСозданиюФаксимильнойПодписиИПечати/Template.mxlx index d91f1a4f5..1769d5286 100644 --- a/SSL/src/CommonTemplates/ИнструкцияПоСозданиюФаксимильнойПодписиИПечати/Template.mxlx +++ b/SSL/src/CommonTemplates/ИнструкцияПоСозданиюФаксимильнойПодписиИПечати/Template.mxlx @@ -3433,7 +3433,7 @@ - + 24 diff --git a/SSL/src/Configuration/Configuration.mdo b/SSL/src/Configuration/Configuration.mdo index 5e2f0d1b6..f50b36100 100644 --- a/SSL/src/Configuration/Configuration.mdo +++ b/SSL/src/Configuration/Configuration.mdo @@ -1,17 +1,17 @@ - + БиблиотекаСтандартныхПодсистем ru Библиотека стандартных подсистем, редакция 3.1 - - - - - - - + + + + + + + ManagedApplication PersonalComputer Russian @@ -19,7 +19,7 @@ Role.АдминистраторСистемы Role.ИнтерактивноеОткрытиеВнешнихОтчетовИОбработок Фирма "1С" - 3.1.11.466 + 3.1.12.205 https://downloads.v8.1c.ru/tmplts/ true @@ -125,6 +125,7 @@ StyleItem.РазрешенноеПравоДоступаЦвет StyleItem.РезультатУспехЦвет StyleItem.РольБезИсполнителей + StyleItem.СинхронизацияДанныхЖирныйШрифт StyleItem.СкрытыйВариантОтчетаЦвет StyleItem.СобытиеОтказ StyleItem.ТекстЗапрещеннойЯчейкиЦвет @@ -164,8 +165,10 @@ CommonPicture.BotFatherWebhook CommonPicture.BotFatherWhatsapp CommonPicture.BotFatherВконтакте + CommonPicture.BotMax CommonPicture.GooggleDrive CommonPicture.GoogleMaps + CommonPicture.Max16 CommonPicture.Skype CommonPicture.WebChat16 CommonPicture.Webhook16 @@ -318,6 +321,7 @@ CommonPicture.КонтактнаяИнформацияНеактуально CommonPicture.КонтактнаяИнформацияОтправитьЭлектронноеПисьмо CommonPicture.КонтактнаяИнформацияПерейтиПоСсылке + CommonPicture.КотОткрытаяАвторизацияПочтовогоСервиса CommonPicture.КурсивноеНачертание CommonPicture.Максимум CommonPicture.МенюДополнительныеФункции @@ -698,6 +702,7 @@ CommonPicture.УстановитьПризнакРассмотреноДляВзаимодействия CommonPicture.УстановитьСостояниеОригиналаПервичногоДокумента CommonPicture.УточнитьСостояниеОригиналаПервичногоДокументаПоПечатнымФормам + CommonPicture.ФайловыйАрхив CommonPicture.Факс CommonPicture.ФорматExcel CommonPicture.ФорматExcel2007 @@ -811,9 +816,11 @@ Role.ДобавлениеИзменениеКалендарныхГрафиков Role.ДобавлениеИзменениеКурсовВалют Role.ДобавлениеИзменениеЛичныхВариантовОтчетов + Role.ДобавлениеИзменениеЛичныхСертификатовКлючейЭлектроннойПодписиИШифрования Role.ДобавлениеИзменениеЛичныхШаблоновСообщений Role.ДобавлениеИзменениеМашиночитаемыхДоверенностей Role.ДобавлениеИзменениеНапоминаний + Role.ДобавлениеИзменениеНастроекОтправкиВГосключ Role.ДобавлениеИзменениеОпросов Role.ДобавлениеИзменениеОтветовНаВопросыАнкет Role.ДобавлениеИзменениеПапокИФайлов @@ -882,10 +889,12 @@ Role.ЧтениеЗадач Role.ЧтениеИнформацииОВерсияхОбъектов Role.ЧтениеКурсовВалют + Role.ЧтениеЛичныхСертификатовКлючейЭлектроннойПодписиИШифрования Role.ЧтениеМашиночитаемыхДоверенностей Role.ЧтениеОтветовНаВопросыАнкет Role.ЧтениеРассылокОтчетов Role.ЧтениеРезультатовПроверкиУчета + Role.ЧтениеСертификатовКлючейЭлектроннойПодписиИШифрования Role.ЧтениеСогласийНаОбработкуПерсональныхДанных Role.ЧтениеСостоянийОригиналовПервичныхДокументов Role.ЧтениеУчетныхЗаписейЭлектроннойПочты @@ -1262,6 +1271,7 @@ CommonModule.РаботаСПочтовымиСообщениямиСлужебныйКлиентСервер CommonModule.РаботаСФайлами CommonModule.РаботаСФайламиВТомахСлужебный + CommonModule.РаботаСФайламиВХранилищеДвоичныхДанныхСлужебный CommonModule.РаботаСФайламиКлиент CommonModule.РаботаСФайламиКлиентПереопределяемый CommonModule.РаботаСФайламиКлиентСервер @@ -1275,6 +1285,9 @@ CommonModule.РаботаСФайламиСлужебныйКлиентПовтИсп CommonModule.РаботаСФайламиСлужебныйКлиентСервер CommonModule.РаботаСФайламиСлужебныйПовтИсп + CommonModule.РаботаСФайловымАрхивомКлиентСервер + CommonModule.РаботаСФайловымАрхивомСервер + CommonModule.РаботаСХранилищамиДвоичныхДанныхСервер CommonModule.РассылкаОтчетов CommonModule.РассылкаОтчетовВызовСервера CommonModule.РассылкаОтчетовКлиент @@ -1314,6 +1327,7 @@ CommonModule.СервисМобильнойПодписиПереопределяемый CommonModule.СервисМобильнойПодписиСлужебный CommonModule.СервисМобильнойПодписиСлужебныйВызовСервера + CommonModule.СервисМобильнойПодписиСлужебныйКлиент CommonModule.СклонениеПредставленийОбъектов CommonModule.СклонениеПредставленийОбъектовВызовСервера CommonModule.СклонениеПредставленийОбъектовКлиент @@ -1498,6 +1512,7 @@ XDTOPackage.EnterpriseData_1_19_1 XDTOPackage.EnterpriseData_1_2_3 XDTOPackage.EnterpriseData_1_20_2 + XDTOPackage.EnterpriseData_1_21_1 XDTOPackage.EnterpriseData_1_3_20 XDTOPackage.EnterpriseData_1_4_20 XDTOPackage.EnterpriseData_1_5_22 @@ -1514,11 +1529,14 @@ XDTOPackage.АдминистрированиеОбменаДаннымиУправление_3_0_1_1 XDTOPackage.Адрес XDTOPackage.АдресныйКлассификатор + XDTOPackage.ГосключЗапросНаПодписание XDTOPackage.КонтактнаяИнформация XDTOPackage.МашиночитаемаяДоверенность_EMCHD_1 XDTOPackage.ОбменДаннымиКонтроль XDTOPackage.ОбменДаннымиУправление XDTOPackage.ОбменДаннымиУправление_3_0_1_1 + XDTOPackage.ПодписаниеДокументовГосключ + XDTOPackage.ПодписаниеДокументовГосключЮЛ XDTOPackage.Сообщения WebService.EnterpriseDataExchange_1_0_1_1 WebService.EnterpriseDataUpload_1_0_1_1 @@ -1534,6 +1552,7 @@ WebService.RemoteAdministrationOfExchange_2_4_5_1 WebService.RemoteControl HTTPService.exchange_dsl_1_0_0_1 + HTTPService.ОткрытаяАвторизацияПочтовогоСервиса EventSubscription.ВариантыОтчетовПередУдалениемИдентификатораОбъектаМетаданных EventSubscription.ВариантыОтчетовПриУдаленииПользователя EventSubscription.ВключитьИспользованиеПланаОбмена @@ -1650,6 +1669,7 @@ ScheduledJob.ОчисткаНенужныхФайлов ScheduledJob.ОчисткаУстаревшихВерсийОбъектов ScheduledJob.ОчисткаУстаревшихДанных + ScheduledJob.ПереносФайловМеждуОперационнымХранилищемИФайловымАрхивом ScheduledJob.ПерестроениеАгрегатов ScheduledJob.ПланированиеИзвлеченияТекстаВМоделиСервиса ScheduledJob.ПолучениеИОтправкаЭлектронныхПисем @@ -1659,6 +1679,7 @@ ScheduledJob.ПродлениеДостоверностиПодписей ScheduledJob.РассылкаОтчетов ScheduledJob.РасчетСроковХраненияПерсональныхДанных + ScheduledJob.РезервноеКопированиеВстроенногоХранилищаДвоичныхДанных ScheduledJob.СборИОтправкаОтчетовОбОшибках ScheduledJob.СборИОтправкаСтатистики ScheduledJob.СинхронизацияДанных @@ -1687,6 +1708,7 @@ FunctionalOption.ИспользоватьВерсионированиеОбъекта FunctionalOption.ИспользоватьВерсионированиеОбъектов FunctionalOption.ИспользоватьВнешнихПользователей + FunctionalOption.ИспользоватьГосключ FunctionalOption.ИспользоватьГруппыВнешнихПользователей FunctionalOption.ИспользоватьГруппыПользователей FunctionalOption.ИспользоватьДатуИВремяВСрокахЗадач @@ -1724,6 +1746,7 @@ FunctionalOption.ИспользоватьСценарииВМоделиСервиса FunctionalOption.ИспользоватьУдалениеПомеченныхОбъектов FunctionalOption.ИспользоватьУчетОригиналовПервичныхДокументов + FunctionalOption.ИспользоватьФайловыйАрхив FunctionalOption.ИспользоватьШаблоныСообщений FunctionalOption.ИспользоватьШифрование FunctionalOption.ИспользоватьЭлектроннуюПочтуВШаблонахСообщений @@ -1841,6 +1864,7 @@ CommonCommand.ЗагрузитьПравилаРегистрацииОбъектов CommonCommand.ЗадачиПоБизнесПроцессу CommonCommand.ЗадачиПоПредмету + CommonCommand.ЗарегистрироватьПриложениеВOAuthСервисе CommonCommand.ИсторияИзменений CommonCommand.КартаМаршрутаБизнесПроцесса CommonCommand.МакетыФайловВыгрузки @@ -1930,6 +1954,7 @@ Constant.ИспользоватьБизнесПроцессыИЗадачи Constant.ИспользоватьВерсионированиеОбъектов Constant.ИспользоватьВнешнихПользователей + Constant.ИспользоватьГосключ Constant.ИспользоватьГруппыВнешнихПользователей Constant.ИспользоватьГруппыПользователей Constant.ИспользоватьДатуИВремяВСрокахЗадач @@ -1967,6 +1992,7 @@ Constant.ИспользоватьСкрытиеПерсональныхДанныхСубъектов Constant.ИспользоватьУдалениеПомеченныхОбъектов Constant.ИспользоватьУчетОригиналовПервичныхДокументов + Constant.ИспользоватьФайловыйАрхив Constant.ИспользоватьШаблоныСообщений Constant.ИспользоватьШифрование Constant.ИспользоватьЭлектроннуюПочтуВШаблонахСообщений @@ -1975,6 +2001,8 @@ Constant.ИсточникДанныхАдресногоКлассификатора Constant.КаталогВременныхФайловДляLinux Constant.КаталогВременныхФайловДляWindows + Constant.КаталогРезервныхКопийВстроенногоХранилищаДвоичныхДанныхДляLinux + Constant.КаталогРезервныхКопийВстроенногоХранилищаДвоичныхДанныхДляWindows Constant.КаталогСообщенийОбменаДаннымиДляLinux Constant.КаталогСообщенийОбменаДаннымиДляWindows Constant.КлассификаторОшибокКриптографии @@ -2024,6 +2052,7 @@ Constant.ПроверятьЭлектронныеПодписиНаСервере Constant.ПрофильБезопасностиИнформационнойБазы Constant.ПутьКТомуБезУчетаРегиональныхНастроек + Constant.РазмерПорцииПеремещаемыхФайлов Constant.РазрешенныеНеаккредитованныеУЦ Constant.РазрешитьВыполнениеДООРегламентнымиЗаданиямиВМоделиСервиса Constant.РазрешитьДоступКИнтернетСервисам @@ -2050,6 +2079,7 @@ Constant.СпособХраненияФайлов Constant.СтандартныеПодсистемыВАвтономномРежиме Constant.СтатусОбновленияКонфигурации + Constant.ТекстИнформированияПользователяОНедоступностиФайлаВАрхиве Constant.ТипПодписиКриптографииПоУмолчанию Constant.УсовершенствоватьПодписиАвтоматически Constant.УсовершенствоватьПодписиСДаты @@ -2197,8 +2227,10 @@ Catalog.НаборыГруппДоступа Catalog.НаборыДополнительныхРеквизитовИСведений Catalog.НастройкиАвторизацииИнтернетСервисов + Catalog.НастройкиОтправкиВГосключ Catalog.НастройкиТранспортаСообщенийОбмена Catalog.ОбщиеВнешниеКомпоненты + Catalog.ОбщиеНастройкиАвторизацииИнтернетСервисов Catalog.ПапкиФайлов Catalog.ПапкиЭлектронныхПисем Catalog.ПодписантыСервисаМобильнойПодписи @@ -2262,13 +2294,18 @@ Enum.ВариантыСжатияTIFF Enum.ВидыДнейПроизводственногоКалендаря Enum.ВидыДополнительныхОтчетовИОбработок + Enum.ВидыМобильныхПодписей Enum.ВидыНазначенияДатЗапрета Enum.ВидыПереключателяВАнкетах + Enum.ВидыПодписантовМобильногоСервиса Enum.ВидыПравилДляОбменаДанными + Enum.ВидыРезервныхКопийВстроенногоХранилищаДвоичныхДанных Enum.ВидыСвойств Enum.ВидыТранспортаСообщенийОбмена Enum.ВидыФлажкаВАнкетах + Enum.ВидыХраненияФайлов Enum.ВозможностьПередоверияМЧД + Enum.ДействияВНастройкахРаботыСФайловымАрхивом Enum.ДействияПриОбмене Enum.ДействияПриОбменеВнутренняяПубликация Enum.ДействияСФайламиПоДвойномуЩелчку @@ -2316,6 +2353,7 @@ Enum.СпособыСравненияВерсийФайлов Enum.СпособыУстановкиВремениНапоминания Enum.СпособыУстановкиКурсаВалюты + Enum.СпособыХраненияФайлов Enum.СрокиХраненияВерсий Enum.СтатусыИзвлеченияТекстаФайлов Enum.СтатусыИсходящегоЭлектронногоПисьма @@ -2464,6 +2502,7 @@ DataProcessor.УничтожениеПерсональныхДанных DataProcessor.УправлениеИтогамиИАгрегатами DataProcessor.УправлениеПодключениемDSS + DataProcessor.УправлениеХранилищемДвоичныхДанных DataProcessor.УстановкаОбновлений InformationRegister.АдминистративнаяИерархия InformationRegister.АдресныеОбъекты @@ -2515,7 +2554,9 @@ InformationRegister.ИсторияАдресныхОбъектов InformationRegister.ИсторияМуниципальнойИерархии InformationRegister.ИсторияРассылкиОтчетов + InformationRegister.ИсторияРезервногоКопированияВстроенногоХранилищаДвоичныхДанных InformationRegister.КалендарныеГрафики + InformationRegister.КвартирыОфисыПомещения InformationRegister.КлассификаторыМЧД InformationRegister.КлючиДоступаВнешнихПользователей InformationRegister.КлючиДоступаГруппДоступа @@ -2534,6 +2575,7 @@ InformationRegister.КэшПрограммныхИнтерфейсов InformationRegister.МашиночитаемыеДоверенностиПредставителиИДоверители InformationRegister.МашиночитаемыеДоверенностиСтатусы + InformationRegister.МестаХраненияДвоичныхДанных InformationRegister.МуниципальнаяИерархия InformationRegister.НаборыЗначенийДоступа InformationRegister.НазначениеДополнительныхОбработок @@ -2548,6 +2590,7 @@ InformationRegister.НастройкиОчисткиФайлов InformationRegister.НастройкиПолномочийМЧД InformationRegister.НастройкиПравОбъектов + InformationRegister.НастройкиРаботыСФайловымАрхивом InformationRegister.НастройкиСинхронизацииФайлов InformationRegister.НастройкиТранспортаОбменаОбластейДанных InformationRegister.НастройкиТранспортаОбменаОбластиДанных @@ -2604,6 +2647,7 @@ InformationRegister.РучныеИзмененияГрафиковРаботы InformationRegister.СведенияОПользователях InformationRegister.СведенияОФайлах + InformationRegister.СведенияОХраненииДедуплицированныхФайлов InformationRegister.СвойстваРасширений InformationRegister.СервисМобильнойПодписиСтатусы InformationRegister.СертификатыПолучателейРассылкиОтчетов diff --git a/SSL/src/Configuration/ExternalConnectionModule.bsl b/SSL/src/Configuration/ExternalConnectionModule.bsl index 0bbba1c59..ec51e11e5 100644 --- a/SSL/src/Configuration/ExternalConnectionModule.bsl +++ b/SSL/src/Configuration/ExternalConnectionModule.bsl @@ -1,5 +1,5 @@ /////////////////////////////////////////////////////////////////////////////////////////////////////// -// Copyright (c) 2024, ООО 1С-Софт +// Copyright (c) 2025, ООО 1С-Софт // Все права защищены. Эта программа и сопроводительные материалы предоставляются // в соответствии с условиями лицензии Attribution 4.0 International (CC BY 4.0) // Текст лицензии доступен по ссылке: diff --git a/SSL/src/Configuration/ManagedApplicationModule.bsl b/SSL/src/Configuration/ManagedApplicationModule.bsl index f4b5646bc..9545b92e8 100644 --- a/SSL/src/Configuration/ManagedApplicationModule.bsl +++ b/SSL/src/Configuration/ManagedApplicationModule.bsl @@ -1,5 +1,5 @@ /////////////////////////////////////////////////////////////////////////////////////////////////////// -// Copyright (c) 2024, ООО 1С-Софт +// Copyright (c) 2025, ООО 1С-Софт // Все права защищены. Эта программа и сопроводительные материалы предоставляются // в соответствии с условиями лицензии Attribution 4.0 International (CC BY 4.0) // Текст лицензии доступен по ссылке: @@ -19,7 +19,7 @@ // Пример инициализации: // ИмяПараметра = "СтандартныеПодсистемы.СообщенияДляЖурналаРегистрации"; // Если ПараметрыПриложения[ИмяПараметра] = Неопределено Тогда -// ПараметрыПриложения.Вставить(ИмяПараметра, Новый СписокЗначений); +// ПараметрыПриложения.Вставить(ИмяПараметра, Новый Массив); // КонецЕсли; // // Пример использования: diff --git a/SSL/src/Configuration/OrdinaryApplicationModule.bsl b/SSL/src/Configuration/OrdinaryApplicationModule.bsl index c72b2571e..bb5d2e779 100644 --- a/SSL/src/Configuration/OrdinaryApplicationModule.bsl +++ b/SSL/src/Configuration/OrdinaryApplicationModule.bsl @@ -1,5 +1,5 @@ /////////////////////////////////////////////////////////////////////////////////////////////////////// -// Copyright (c) 2024, ООО 1С-Софт +// Copyright (c) 2025, ООО 1С-Софт // Все права защищены. Эта программа и сопроводительные материалы предоставляются // в соответствии с условиями лицензии Attribution 4.0 International (CC BY 4.0) // Текст лицензии доступен по ссылке: @@ -19,7 +19,7 @@ // Пример инициализации: // ИмяПараметра = "СтандартныеПодсистемы.СообщенияДляЖурналаРегистрации"; // Если ПараметрыПриложения[ИмяПараметра] = Неопределено Тогда -// ПараметрыПриложения.Вставить(ИмяПараметра, Новый СписокЗначений); +// ПараметрыПриложения.Вставить(ИмяПараметра, Новый Массив); // КонецЕсли; // // Пример использования: diff --git a/SSL/src/Configuration/ParentConfigurations.bin b/SSL/src/Configuration/ParentConfigurations.bin index 509022eab..fbea0465e 100644 --- a/SSL/src/Configuration/ParentConfigurations.bin +++ b/SSL/src/Configuration/ParentConfigurations.bin @@ -1 +1 @@ -{6,1,1,fe1a6d34-0ca1-429e-bc7a-4e8eae90f59b,1,e593c960-d377-45f2-afe1-86a99627fee7,"3.1.11.466","Фирма ""1С""","БиблиотекаСтандартныхПодсистем",7969,1,0,45d634d1-7cac-4233-b147-4111d0609d52,45d634d1-7cac-4233-b147-4111d0609d52,1,0,db4a9ccb-9ef5-4b3c-8577-b6fe5db1b62e,db4a9ccb-9ef5-4b3c-8577-b6fe5db1b62e,1,0,9233322b-dfdb-4c66-91fe-1299292d40a5,9233322b-dfdb-4c66-91fe-1299292d40a5,1,0,fa04bf1e-69c0-4998-a939-039fcaba83c8,fa04bf1e-69c0-4998-a939-039fcaba83c8,1,0,7795348b-2f52-47f7-bf00-e11e5e795a43,7795348b-2f52-47f7-bf00-e11e5e795a43,1,0,0421b67e-ed26-491d-ab98-ec59002ed4ce,0421b67e-ed26-491d-ab98-ec59002ed4ce,1,0,bb47ced2-31f9-4870-8633-20b986e53ccc,bb47ced2-31f9-4870-8633-20b986e53ccc,1,0,739c01a9-1125-45ef-ab4e-8c73af4eeff0,739c01a9-1125-45ef-ab4e-8c73af4eeff0,1,0,cdbd26b1-9583-46e8-adf7-8cc705639892,cdbd26b1-9583-46e8-adf7-8cc705639892,1,0,c0e38c3e-7088-4e35-9d84-2d0ab9655402,c0e38c3e-7088-4e35-9d84-2d0ab9655402,1,0,1098786f-dd24-4cce-b212-be0cb5f01735,1098786f-dd24-4cce-b212-be0cb5f01735,1,0,3c0037f3-4422-4836-b116-8c72e32bdd55,3c0037f3-4422-4836-b116-8c72e32bdd55,1,0,6f7c6c31-206b-4010-bdad-1ad2e304f154,6f7c6c31-206b-4010-bdad-1ad2e304f154,1,0,a8659e53-8c6b-4b0c-9736-fe93a91e4d69,a8659e53-8c6b-4b0c-9736-fe93a91e4d69,1,0,fe9a1d1a-19c0-499f-8e1b-09cadabe882f,fe9a1d1a-19c0-499f-8e1b-09cadabe882f,1,0,5b68d479-7880-44de-84e3-7f578b43f0dc,5b68d479-7880-44de-84e3-7f578b43f0dc,1,0,baad68ea-0976-4bdf-8e0e-7ee5c25e3d51,baad68ea-0976-4bdf-8e0e-7ee5c25e3d51,1,0,4cbbdbaf-1f3a-46cd-8c42-28cdcfa32c06,4cbbdbaf-1f3a-46cd-8c42-28cdcfa32c06,1,0,b4629308-42de-4ce8-8591-cf0c2399a9a2,b4629308-42de-4ce8-8591-cf0c2399a9a2,1,0,c7e984ae-1dbb-4041-b18a-bfd0d63a002f,c7e984ae-1dbb-4041-b18a-bfd0d63a002f,1,0,bb0424b8-dfd1-4a27-bd66-9dea3ffc77c4,bb0424b8-dfd1-4a27-bd66-9dea3ffc77c4,1,0,a4ac0a50-ee39-4dc1-b84f-eec8fe485f03,a4ac0a50-ee39-4dc1-b84f-eec8fe485f03,1,0,1861ee4f-fd8c-4afa-8441-c074bf51f67e,1861ee4f-fd8c-4afa-8441-c074bf51f67e,1,0,de7ed8f7-3c02-47e0-aea8-4747ac68a5d5,de7ed8f7-3c02-47e0-aea8-4747ac68a5d5,1,0,b93b8760-6200-40ee-8bdc-875ba80a6155,b93b8760-6200-40ee-8bdc-875ba80a6155,1,0,e8b248d9-9049-456a-9c7d-7a0462cc67ab,e8b248d9-9049-456a-9c7d-7a0462cc67ab,1,0,d4562287-440d-4462-9de2-7097ccbf3764,d4562287-440d-4462-9de2-7097ccbf3764,1,0,1983fe34-c984-4659-ba41-0e94504f8989,1983fe34-c984-4659-ba41-0e94504f8989,1,0,ec797c75-02c5-4cf5-9dd4-26cd46c99519,ec797c75-02c5-4cf5-9dd4-26cd46c99519,1,0,6fccdf59-fc99-4a2b-a144-fffe438a147c,6fccdf59-fc99-4a2b-a144-fffe438a147c,1,0,153e11ac-f898-46a5-98c6-734adb933ca2,153e11ac-f898-46a5-98c6-734adb933ca2,1,0,af8bd73a-d8e8-487d-8f36-d835ab10ea3a,af8bd73a-d8e8-487d-8f36-d835ab10ea3a,1,0,08a413ff-bebd-42e5-8ff3-2115746a0844,08a413ff-bebd-42e5-8ff3-2115746a0844,1,0,7d8acec9-f5a9-411e-921c-446ed0dd3332,7d8acec9-f5a9-411e-921c-446ed0dd3332,1,0,3eca2d7c-5946-4d13-ba84-e3ab5ef38b5b,3eca2d7c-5946-4d13-ba84-e3ab5ef38b5b,1,0,f24de2ea-fcda-4052-b90f-e9d84314c4f2,f24de2ea-fcda-4052-b90f-e9d84314c4f2,1,0,ff8ae395-c740-4a30-a048-0d57eef6267f,ff8ae395-c740-4a30-a048-0d57eef6267f,1,0,51d06532-f61a-4ed5-afaa-cc4563633e0c,51d06532-f61a-4ed5-afaa-cc4563633e0c,1,0,0e49d980-581b-459f-a4b0-024e8c97e4c0,0e49d980-581b-459f-a4b0-024e8c97e4c0,1,0,da9b32e6-5b93-45a6-84b2-238d57541e18,da9b32e6-5b93-45a6-84b2-238d57541e18,1,0,e43d69c8-b284-47da-b236-611bc94a15b6,e43d69c8-b284-47da-b236-611bc94a15b6,1,0,31eeaa05-6c49-41fe-b840-1edbad4ccac7,31eeaa05-6c49-41fe-b840-1edbad4ccac7,1,0,842c8662-8f39-405e-9665-cbdabc116159,842c8662-8f39-405e-9665-cbdabc116159,1,0,a3001de6-272f-444e-a8db-ec8cc3a670a2,a3001de6-272f-444e-a8db-ec8cc3a670a2,1,0,7ee7cccc-4e52-464c-9c20-5c0dfbed7e5f,7ee7cccc-4e52-464c-9c20-5c0dfbed7e5f,1,0,fca4b033-02c4-4d61-9e51-87783c3cef1a,fca4b033-02c4-4d61-9e51-87783c3cef1a,1,0,396ef757-d7f6-411f-8c4c-1acb1106a009,396ef757-d7f6-411f-8c4c-1acb1106a009,1,0,491b9625-62ce-436b-8245-60decacc4552,491b9625-62ce-436b-8245-60decacc4552,1,0,839e29b1-a0d2-40fa-9f3e-46e66b943358,839e29b1-a0d2-40fa-9f3e-46e66b943358,1,0,c56d2cc7-630a-441b-b23f-ba78c34849bd,c56d2cc7-630a-441b-b23f-ba78c34849bd,1,0,9aecf4f5-46ed-4d1c-a584-cd028e467895,9aecf4f5-46ed-4d1c-a584-cd028e467895,1,0,21d92c2f-6c78-43ce-b1f4-59d7845b5a91,21d92c2f-6c78-43ce-b1f4-59d7845b5a91,1,0,a1c379be-43d3-4e02-83bb-d2e7de2d4ae3,a1c379be-43d3-4e02-83bb-d2e7de2d4ae3,1,0,a1f10624-22e9-4a04-b370-fd085bdd0f67,a1f10624-22e9-4a04-b370-fd085bdd0f67,1,0,2a4b10be-3cd7-4755-905f-7b4d02ff6a22,2a4b10be-3cd7-4755-905f-7b4d02ff6a22,1,0,3cffb795-2a28-4beb-92f4-5813f5994022,3cffb795-2a28-4beb-92f4-5813f5994022,1,0,3323ca68-1382-4710-a933-23fc56588935,3323ca68-1382-4710-a933-23fc56588935,1,0,d6b12775-3255-42b8-88b2-62684f873e7d,d6b12775-3255-42b8-88b2-62684f873e7d,1,0,cc23d903-ccc5-42f4-862f-5e7278c4e346,cc23d903-ccc5-42f4-862f-5e7278c4e346,1,0,98f033e0-fa40-46e0-b51a-87a066749a35,98f033e0-fa40-46e0-b51a-87a066749a35,1,0,e8b4cb2d-1180-4101-954a-4cb5464f198c,e8b4cb2d-1180-4101-954a-4cb5464f198c,1,0,a379287d-1ce8-460d-a503-910e728e28f1,a379287d-1ce8-460d-a503-910e728e28f1,1,0,f765c4ba-c677-42ac-8d0c-43bb485405b9,f765c4ba-c677-42ac-8d0c-43bb485405b9,1,0,2fd1287d-d96d-4480-baf7-8815ae5ffbfb,2fd1287d-d96d-4480-baf7-8815ae5ffbfb,1,0,d8c58e53-b7b9-4426-bdfa-d0816adf8cc1,d8c58e53-b7b9-4426-bdfa-d0816adf8cc1,1,0,4009cb3a-6754-481f-911b-907558cea38a,4009cb3a-6754-481f-911b-907558cea38a,1,0,653a7fd8-91c7-49aa-aa63-45da087e0d0a,653a7fd8-91c7-49aa-aa63-45da087e0d0a,1,0,d7cf3981-cf63-4a21-868b-8175a7704a8f,d7cf3981-cf63-4a21-868b-8175a7704a8f,1,0,0ae93712-74e8-41c7-8f2d-4dfc8983697d,0ae93712-74e8-41c7-8f2d-4dfc8983697d,1,0,9e4dfdfa-ec05-4c9e-89bd-fc24f60f2678,9e4dfdfa-ec05-4c9e-89bd-fc24f60f2678,1,0,64f548c8-c1fc-434e-b3ee-5be367ead1db,64f548c8-c1fc-434e-b3ee-5be367ead1db,1,0,cd592a5d-b184-4558-8a28-7079ccf28b89,cd592a5d-b184-4558-8a28-7079ccf28b89,1,0,2009c673-c1a5-45fc-8da2-a36c435085a6,2009c673-c1a5-45fc-8da2-a36c435085a6,1,0,ab7e5f9a-1dfe-4165-a540-21f45ae1d94d,ab7e5f9a-1dfe-4165-a540-21f45ae1d94d,1,0,5d16e042-3889-4851-86f1-bc43bf06ee88,5d16e042-3889-4851-86f1-bc43bf06ee88,1,0,e5a0e7c2-6186-43a3-a1c5-1f16990602a4,e5a0e7c2-6186-43a3-a1c5-1f16990602a4,1,0,3d47838b-e1aa-4acb-96bf-6de2f9be8bdb,3d47838b-e1aa-4acb-96bf-6de2f9be8bdb,1,0,e0d3efe0-a321-4790-ba5d-e549a91a3ec6,e0d3efe0-a321-4790-ba5d-e549a91a3ec6,1,0,e39ecc8a-ce81-483d-85de-b0488c8b7749,e39ecc8a-ce81-483d-85de-b0488c8b7749,1,0,8f3b124f-bf85-4307-8f0c-47be1fb5c8b0,8f3b124f-bf85-4307-8f0c-47be1fb5c8b0,1,0,e15c3525-3453-4b62-834e-7c69f9efea51,e15c3525-3453-4b62-834e-7c69f9efea51,1,0,1514eaff-faea-4d82-9465-d0d5292bb31d,1514eaff-faea-4d82-9465-d0d5292bb31d,1,0,6d39c6df-8cd4-47ad-9125-252b37d94575,6d39c6df-8cd4-47ad-9125-252b37d94575,1,0,bc89af7a-1971-4245-8d88-1a5a50c50a8b,bc89af7a-1971-4245-8d88-1a5a50c50a8b,1,0,ad73f3a3-1dad-4920-af41-bda2b947a2f7,ad73f3a3-1dad-4920-af41-bda2b947a2f7,1,0,98b67b5a-3550-4a64-9e07-07fcc9154c73,98b67b5a-3550-4a64-9e07-07fcc9154c73,1,0,ad7c6165-2e44-4808-a77a-526882cf5dea,ad7c6165-2e44-4808-a77a-526882cf5dea,1,0,fd930b50-4ada-4e7f-8bfd-ed9a7c4e8964,fd930b50-4ada-4e7f-8bfd-ed9a7c4e8964,1,0,1a8a9f48-315d-4d71-b092-0530801f8fec,1a8a9f48-315d-4d71-b092-0530801f8fec,1,0,fa2a9ef2-00a1-44f4-a82c-6c7288dd62dc,fa2a9ef2-00a1-44f4-a82c-6c7288dd62dc,1,0,b7e435a9-6107-4d02-a949-cff793462e31,b7e435a9-6107-4d02-a949-cff793462e31,1,0,f0cda8f5-56f5-423b-8c1c-7113433ebf25,f0cda8f5-56f5-423b-8c1c-7113433ebf25,1,0,1a220e88-428b-4d85-926d-e572bf19997c,1a220e88-428b-4d85-926d-e572bf19997c,1,0,ca0d938b-244e-421f-9fa4-320784b9f416,ca0d938b-244e-421f-9fa4-320784b9f416,1,0,a108b11d-a489-4684-84ea-d5377c7394de,a108b11d-a489-4684-84ea-d5377c7394de,1,0,289a2d84-2477-4177-a6ef-507e2cadeea2,289a2d84-2477-4177-a6ef-507e2cadeea2,1,0,1c877cee-d9b8-48dc-8d79-04d27bb522f7,1c877cee-d9b8-48dc-8d79-04d27bb522f7,1,0,dd911418-ee16-4413-bfe9-4a5a238d3ce1,dd911418-ee16-4413-bfe9-4a5a238d3ce1,1,0,61cd6eab-6bab-4382-986e-4c7fc44f369b,61cd6eab-6bab-4382-986e-4c7fc44f369b,1,0,ea36c426-2b43-4232-9978-0104bafd345d,ea36c426-2b43-4232-9978-0104bafd345d,1,0,757b547b-b79c-459a-a64a-eef19a09a38f,757b547b-b79c-459a-a64a-eef19a09a38f,1,0,3d428bdf-c41b-43ac-957e-2943406c832c,3d428bdf-c41b-43ac-957e-2943406c832c,1,0,85cbc0b7-6aa5-455b-abed-7bc659d9ad51,85cbc0b7-6aa5-455b-abed-7bc659d9ad51,1,0,950f8fd5-fefa-4bfb-97a0-38d77ae830dc,950f8fd5-fefa-4bfb-97a0-38d77ae830dc,1,0,cbbe7903-842c-470e-a2d6-7928df8f13e9,cbbe7903-842c-470e-a2d6-7928df8f13e9,1,0,e02597c4-bf45-4bb6-931d-62d2244f6c58,e02597c4-bf45-4bb6-931d-62d2244f6c58,1,0,75561d71-4b06-40fc-8a46-ed5d33c80dea,75561d71-4b06-40fc-8a46-ed5d33c80dea,1,0,42544966-445d-41b8-b6a0-a52c64758232,42544966-445d-41b8-b6a0-a52c64758232,1,0,a92d8a5c-b595-4c6c-9f1d-5e85b1c996b4,a92d8a5c-b595-4c6c-9f1d-5e85b1c996b4,1,0,bd68dd13-66bb-40ed-8f4b-0767b7063ffd,bd68dd13-66bb-40ed-8f4b-0767b7063ffd,1,0,5578afd2-5aed-4164-8467-52a66f4773c4,5578afd2-5aed-4164-8467-52a66f4773c4,1,0,9eea8645-1ba7-4faf-9c29-868bf99964dd,9eea8645-1ba7-4faf-9c29-868bf99964dd,1,0,e07ac651-07b9-4664-95e8-f3f5a51ea6c8,e07ac651-07b9-4664-95e8-f3f5a51ea6c8,1,0,654523be-93d9-4faa-9a35-ce2fede13820,654523be-93d9-4faa-9a35-ce2fede13820,1,0,0c44fdea-7b81-45be-87f5-d64456a9d379,0c44fdea-7b81-45be-87f5-d64456a9d379,1,0,d9bad22e-4049-4371-86a3-1b00ae6215af,d9bad22e-4049-4371-86a3-1b00ae6215af,1,0,d09d6f21-cdd0-485e-bd2c-92092a1aefef,d09d6f21-cdd0-485e-bd2c-92092a1aefef,1,0,2fc92784-d7b0-4209-ba06-e54bed2f160f,2fc92784-d7b0-4209-ba06-e54bed2f160f,1,0,d5a5f53b-9cd5-4036-a379-31680cec3c24,d5a5f53b-9cd5-4036-a379-31680cec3c24,1,0,85e05ed7-25ed-4148-8247-86ff531ec48d,85e05ed7-25ed-4148-8247-86ff531ec48d,1,0,dcd34215-200c-4d3c-828c-4c3cd8b17a81,dcd34215-200c-4d3c-828c-4c3cd8b17a81,1,0,e5b8ea5c-1d08-4f0a-a8f6-358b41e2e9f2,e5b8ea5c-1d08-4f0a-a8f6-358b41e2e9f2,1,0,4a046c9b-98a0-4d4f-8e0b-b162d3c6bfc5,4a046c9b-98a0-4d4f-8e0b-b162d3c6bfc5,1,0,a4e4c91c-fd95-4369-98e3-51ffba79937b,a4e4c91c-fd95-4369-98e3-51ffba79937b,1,0,0a83f9ec-eabe-4e8f-9fa9-0067acad6fc4,0a83f9ec-eabe-4e8f-9fa9-0067acad6fc4,1,0,d343d4e4-d07f-48c3-9db1-774b0d6c1134,d343d4e4-d07f-48c3-9db1-774b0d6c1134,1,0,14ef2331-6d9b-4cf1-90f3-7d4ac410439d,14ef2331-6d9b-4cf1-90f3-7d4ac410439d,1,0,5797e28d-1318-4728-8b17-bcb78d85349a,5797e28d-1318-4728-8b17-bcb78d85349a,1,0,04ab13b1-ffc2-47f5-aa0d-5850dcbd4a62,04ab13b1-ffc2-47f5-aa0d-5850dcbd4a62,1,0,9f9e6146-17ce-4296-a89f-33dfe4d0468d,9f9e6146-17ce-4296-a89f-33dfe4d0468d,1,0,3cf15377-a5bb-4c37-9780-0dbff8d3d5bb,3cf15377-a5bb-4c37-9780-0dbff8d3d5bb,1,0,3aa020db-a811-4fb9-9ea9-00a3359fbb53,3aa020db-a811-4fb9-9ea9-00a3359fbb53,1,0,968588bb-ee60-4399-955a-3ec4228d3c40,968588bb-ee60-4399-955a-3ec4228d3c40,1,0,b8b37039-8070-4b0c-9270-7e43850a6c01,b8b37039-8070-4b0c-9270-7e43850a6c01,1,0,c90e64cf-f5d4-47b9-8243-7177ac42202e,c90e64cf-f5d4-47b9-8243-7177ac42202e,1,0,23dbb528-7ea8-44ae-a1f2-b7608118666e,23dbb528-7ea8-44ae-a1f2-b7608118666e,1,0,b9627855-6773-4a59-b7d3-f9e2e565cd9e,b9627855-6773-4a59-b7d3-f9e2e565cd9e,1,0,ad87bd29-0ad1-4da4-ac62-38e714e0cb9f,ad87bd29-0ad1-4da4-ac62-38e714e0cb9f,1,0,46692974-34aa-45e1-8fec-9b36064073cd,46692974-34aa-45e1-8fec-9b36064073cd,1,0,a6308250-2b1b-40ef-bd20-589d519e3c38,a6308250-2b1b-40ef-bd20-589d519e3c38,1,0,22eafd3b-dc42-4a99-89af-3cd5311dc29f,22eafd3b-dc42-4a99-89af-3cd5311dc29f,1,0,c67f671a-3c83-44f4-9c6a-e06667ac8da6,c67f671a-3c83-44f4-9c6a-e06667ac8da6,1,0,283ce432-3553-4de9-94a2-ca9a590437f5,283ce432-3553-4de9-94a2-ca9a590437f5,1,0,1fbd4cfa-58cb-41ea-920e-a39cfa6ad90c,1fbd4cfa-58cb-41ea-920e-a39cfa6ad90c,1,0,5a83b75a-38b0-4d15-9c6f-c201fa97e485,5a83b75a-38b0-4d15-9c6f-c201fa97e485,1,0,0da019ca-1fc7-4aff-8998-3ddcccf10872,0da019ca-1fc7-4aff-8998-3ddcccf10872,1,0,7102d4fa-92f2-4fba-ad09-a33dbc71bef2,7102d4fa-92f2-4fba-ad09-a33dbc71bef2,1,0,34b0e268-497d-44d4-b822-84909d0685aa,34b0e268-497d-44d4-b822-84909d0685aa,1,0,8961a859-2203-4678-ae1f-63e2474a787a,8961a859-2203-4678-ae1f-63e2474a787a,1,0,fe63db47-3ece-4518-b6a2-0b6499f60a61,fe63db47-3ece-4518-b6a2-0b6499f60a61,1,0,f6dd250e-75fd-47fc-abcb-79ea19ebd747,f6dd250e-75fd-47fc-abcb-79ea19ebd747,1,0,53c41e6c-89b0-4818-9832-02140373979b,53c41e6c-89b0-4818-9832-02140373979b,1,0,671afc3e-7589-49d8-95a5-1cf195c3b2f8,671afc3e-7589-49d8-95a5-1cf195c3b2f8,1,0,47accdc7-8fa0-4996-9305-c42b6ca12df9,47accdc7-8fa0-4996-9305-c42b6ca12df9,1,0,57e75b31-13b3-46fc-8ec4-7570ab0e9928,57e75b31-13b3-46fc-8ec4-7570ab0e9928,1,0,5abc496c-5745-4220-9fdc-bac092717871,5abc496c-5745-4220-9fdc-bac092717871,1,0,8ad81449-0b75-4775-a841-ca7fc7bf0d43,8ad81449-0b75-4775-a841-ca7fc7bf0d43,1,0,a1bc6cbe-6b80-414c-8a56-ed253d93524b,a1bc6cbe-6b80-414c-8a56-ed253d93524b,1,0,4d2f1acc-e206-4a0c-af9f-e360c4c30c4b,4d2f1acc-e206-4a0c-af9f-e360c4c30c4b,1,0,d81931b7-8ed8-4e4b-ac25-fedff3955ae0,d81931b7-8ed8-4e4b-ac25-fedff3955ae0,1,0,bda7d180-e2b8-4e04-ae3e-fc3f20202f4e,bda7d180-e2b8-4e04-ae3e-fc3f20202f4e,1,0,8375cfc8-0f27-404b-8c27-3268b22614b3,8375cfc8-0f27-404b-8c27-3268b22614b3,1,0,00bc465c-ea1b-4099-a4f1-a69f5b9a36cc,00bc465c-ea1b-4099-a4f1-a69f5b9a36cc,1,0,bbf65684-1382-4224-b1e8-fbfc4a615fbe,bbf65684-1382-4224-b1e8-fbfc4a615fbe,1,0,5e58dfe4-a93c-4910-95e5-765e33cc11ef,5e58dfe4-a93c-4910-95e5-765e33cc11ef,1,0,eced4ded-b59e-412c-a01f-1db3fb0b436a,eced4ded-b59e-412c-a01f-1db3fb0b436a,1,0,405f04ba-1bcd-478c-9ede-0d7a286a051f,405f04ba-1bcd-478c-9ede-0d7a286a051f,1,0,6b29b4b3-df0a-42f7-b89f-809ffbdacf02,6b29b4b3-df0a-42f7-b89f-809ffbdacf02,1,0,43d8dd53-df3e-407e-a3c1-5b893cc1976c,43d8dd53-df3e-407e-a3c1-5b893cc1976c,1,0,7741dfee-c4cc-454d-8e01-99ee82a78b5a,7741dfee-c4cc-454d-8e01-99ee82a78b5a,1,0,67f79e89-b922-4949-aec9-7d411ab727ed,67f79e89-b922-4949-aec9-7d411ab727ed,1,0,61e246f4-fe19-4377-8f69-fd1cb90e3f88,61e246f4-fe19-4377-8f69-fd1cb90e3f88,1,0,05c9e6c3-3e1c-4311-99ac-ec4d59a37205,05c9e6c3-3e1c-4311-99ac-ec4d59a37205,1,0,d437805b-42a9-439d-aef8-abbebe280b69,d437805b-42a9-439d-aef8-abbebe280b69,1,0,b33ccec0-a085-4e91-a26d-c262775d92e8,b33ccec0-a085-4e91-a26d-c262775d92e8,1,0,8adeeac2-d2d0-4d90-b7cb-c7871da477d5,8adeeac2-d2d0-4d90-b7cb-c7871da477d5,1,0,9e082d71-175a-4e80-8cca-6b538d3240eb,9e082d71-175a-4e80-8cca-6b538d3240eb,1,0,b8c4aff0-a36d-4be9-9a5e-b0873d83ff15,b8c4aff0-a36d-4be9-9a5e-b0873d83ff15,1,0,43d91051-d5a2-4d2a-8447-7fa917e5ea38,43d91051-d5a2-4d2a-8447-7fa917e5ea38,1,0,e60e1771-c8c0-44b6-b1d3-24e9529d9bd0,e60e1771-c8c0-44b6-b1d3-24e9529d9bd0,1,0,350535b3-05b5-49e7-b4af-1c2b8e645083,350535b3-05b5-49e7-b4af-1c2b8e645083,1,0,68704139-32bb-4b00-b439-147025d06a35,68704139-32bb-4b00-b439-147025d06a35,1,0,8ddf0059-b3d5-4002-a262-5da622d0ccd1,8ddf0059-b3d5-4002-a262-5da622d0ccd1,1,0,e2b6c06a-8202-4cd3-8282-6111c2160afb,e2b6c06a-8202-4cd3-8282-6111c2160afb,1,0,235139f7-1375-4c6b-b6c6-a2e3ca06edc3,235139f7-1375-4c6b-b6c6-a2e3ca06edc3,1,0,df80f175-7f2b-44f8-90d4-118e2e157356,df80f175-7f2b-44f8-90d4-118e2e157356,1,0,2bfd1161-8b6e-415c-92db-743a95373c7e,2bfd1161-8b6e-415c-92db-743a95373c7e,1,0,5a88f624-7b7e-43fe-8bc4-ae85d832a855,5a88f624-7b7e-43fe-8bc4-ae85d832a855,1,0,42e39ef7-268f-4053-b4e5-4bceab17d3e4,42e39ef7-268f-4053-b4e5-4bceab17d3e4,1,0,1b5b9b46-2bd7-4ba8-8c68-d1178ea72e0f,1b5b9b46-2bd7-4ba8-8c68-d1178ea72e0f,1,0,c79c6554-2934-4c8b-9b16-f07c8702f7b1,c79c6554-2934-4c8b-9b16-f07c8702f7b1,1,0,9125bcb2-0136-4737-ba3f-ec2b0764b4da,9125bcb2-0136-4737-ba3f-ec2b0764b4da,1,0,0302674f-944a-4a45-94c8-a44f93fc5a9a,0302674f-944a-4a45-94c8-a44f93fc5a9a,1,0,69504e02-a88b-4ad6-8890-604928b5a78a,69504e02-a88b-4ad6-8890-604928b5a78a,1,0,b49b47fb-d4dc-4efe-ad07-e8705d787e72,b49b47fb-d4dc-4efe-ad07-e8705d787e72,1,0,7df36398-7752-4f51-9978-1bcb4bcdd062,7df36398-7752-4f51-9978-1bcb4bcdd062,1,0,9fd55b7f-209b-4b74-99d6-965b8f6f2df9,9fd55b7f-209b-4b74-99d6-965b8f6f2df9,1,0,f818fde9-1b06-4507-a69f-4dcb0ce8cd7a,f818fde9-1b06-4507-a69f-4dcb0ce8cd7a,1,0,a6690ef1-b16a-4d58-bc31-a8089b2c00d8,a6690ef1-b16a-4d58-bc31-a8089b2c00d8,1,0,fce03f58-7f68-4d7c-a999-687667c1f03d,fce03f58-7f68-4d7c-a999-687667c1f03d,1,0,316f94ec-81ed-4b5c-aa9d-98d2cfe1c641,316f94ec-81ed-4b5c-aa9d-98d2cfe1c641,1,0,6fc12a2d-a346-48be-8214-c5f3d5208524,6fc12a2d-a346-48be-8214-c5f3d5208524,1,0,67d93adf-c506-4fea-ab1d-b77968a6d041,67d93adf-c506-4fea-ab1d-b77968a6d041,1,0,8dca62d1-49ea-4398-9180-22218a81860a,8dca62d1-49ea-4398-9180-22218a81860a,1,0,f4885af5-6ed6-40e8-81a5-0e9537f943d7,f4885af5-6ed6-40e8-81a5-0e9537f943d7,1,0,716302cc-ad47-4823-a81a-4c58857aa0a4,716302cc-ad47-4823-a81a-4c58857aa0a4,1,0,d0f3824e-ddfb-491d-8aea-e4e4806dc3ee,d0f3824e-ddfb-491d-8aea-e4e4806dc3ee,1,0,367c49cc-0317-4b0d-846c-79e203f800b8,367c49cc-0317-4b0d-846c-79e203f800b8,1,0,7cab0151-f86e-4ada-9ec6-e602749e34fc,7cab0151-f86e-4ada-9ec6-e602749e34fc,1,0,d9be359f-c5cb-4f3e-9ccd-61f38c6bbb26,d9be359f-c5cb-4f3e-9ccd-61f38c6bbb26,1,0,15b5979c-755b-480e-b00a-dcc95f62dfeb,15b5979c-755b-480e-b00a-dcc95f62dfeb,1,0,44cf6d0a-0a5b-4ca1-b91e-af61f40fb825,44cf6d0a-0a5b-4ca1-b91e-af61f40fb825,1,0,dcdf2b25-b024-4a89-b2c4-0a2ee43ef623,dcdf2b25-b024-4a89-b2c4-0a2ee43ef623,1,0,9200527c-b6b9-4962-9440-10449583e1e3,9200527c-b6b9-4962-9440-10449583e1e3,1,0,e8faa1a9-807a-4916-b3c5-76ba2199754c,e8faa1a9-807a-4916-b3c5-76ba2199754c,1,0,99b5c632-61fe-41f5-ac00-ea530633bf28,99b5c632-61fe-41f5-ac00-ea530633bf28,1,0,a3c9c4e7-d36a-4db1-bd95-a50886c4be60,a3c9c4e7-d36a-4db1-bd95-a50886c4be60,1,0,4c53f94e-d7e8-457c-b337-59d3b3c5bf24,4c53f94e-d7e8-457c-b337-59d3b3c5bf24,1,0,bd6d7dcd-421c-402e-b6b8-f6ce6b18c140,bd6d7dcd-421c-402e-b6b8-f6ce6b18c140,1,0,485911f7-a964-450d-82da-cab020836eb2,485911f7-a964-450d-82da-cab020836eb2,1,0,1960b036-b479-4f4f-80c5-23fc82474082,1960b036-b479-4f4f-80c5-23fc82474082,1,0,7707d7b0-bf30-4362-929a-a5de104266fc,7707d7b0-bf30-4362-929a-a5de104266fc,1,0,0da8a402-ea0f-488a-a087-77990e85a643,0da8a402-ea0f-488a-a087-77990e85a643,1,0,484003f5-a6df-48fb-a395-d0e0ebc8cc0d,484003f5-a6df-48fb-a395-d0e0ebc8cc0d,1,0,cedd0b47-07cb-4dae-86b5-31d396b693c7,cedd0b47-07cb-4dae-86b5-31d396b693c7,1,0,8b4614aa-c769-49f4-a281-a0ffb101abf1,8b4614aa-c769-49f4-a281-a0ffb101abf1,1,0,c08391e1-c4e3-42aa-8738-061031d0cb75,c08391e1-c4e3-42aa-8738-061031d0cb75,1,0,ba06091b-b659-4d29-a971-81335cf4060a,ba06091b-b659-4d29-a971-81335cf4060a,1,0,7c376c72-409e-4b5f-a5b6-85b0a1c23f58,7c376c72-409e-4b5f-a5b6-85b0a1c23f58,1,0,b7a0d00f-fbf3-41fe-b72f-c17e163264f9,b7a0d00f-fbf3-41fe-b72f-c17e163264f9,1,0,7bbd6fe8-c2fe-4ed2-abd7-2b3fc5b2f410,7bbd6fe8-c2fe-4ed2-abd7-2b3fc5b2f410,1,0,d61fa2fb-a035-469f-9ae1-b78ecd82c83d,d61fa2fb-a035-469f-9ae1-b78ecd82c83d,1,0,bf4c6723-e586-4643-9f03-9e672afea26f,bf4c6723-e586-4643-9f03-9e672afea26f,1,0,4c3a39e3-40ee-423b-91f0-14b60e045b40,4c3a39e3-40ee-423b-91f0-14b60e045b40,1,0,2f2875d7-7598-4ed5-8cc0-a1982ffb5377,2f2875d7-7598-4ed5-8cc0-a1982ffb5377,1,0,23204b0b-bf77-4f7c-9945-e73ad924ebb4,23204b0b-bf77-4f7c-9945-e73ad924ebb4,1,0,dd9d3586-775b-4d5b-ab2d-78db0870ecdd,dd9d3586-775b-4d5b-ab2d-78db0870ecdd,1,0,44c610c3-9c0b-4bf0-95d6-f17100d3e98d,44c610c3-9c0b-4bf0-95d6-f17100d3e98d,1,0,a54f2d41-a05e-4878-80c6-81ca2899fa4c,a54f2d41-a05e-4878-80c6-81ca2899fa4c,1,0,23a898d9-5bcb-4744-ab6c-97b17dc98f20,23a898d9-5bcb-4744-ab6c-97b17dc98f20,1,0,c83f7826-0fef-4a9b-8d36-dee5d93c7417,c83f7826-0fef-4a9b-8d36-dee5d93c7417,1,0,50a04251-ac9c-4a21-a37f-ebc9ac3ef233,50a04251-ac9c-4a21-a37f-ebc9ac3ef233,1,0,f8f56806-ed7e-4059-a0c8-940538c14c98,f8f56806-ed7e-4059-a0c8-940538c14c98,1,0,9ff9f92b-c509-48da-82ce-15b524a895d6,9ff9f92b-c509-48da-82ce-15b524a895d6,1,0,c8bf96c8-f359-4940-8e87-3d190371d6d3,c8bf96c8-f359-4940-8e87-3d190371d6d3,1,0,477f0b81-0eb1-4de1-8cb5-38f1e0823947,477f0b81-0eb1-4de1-8cb5-38f1e0823947,1,0,d914eaa9-ce85-4df7-a545-2d411ef915b0,d914eaa9-ce85-4df7-a545-2d411ef915b0,1,0,41881344-82b7-4904-9ab8-0207d9bcd0a9,41881344-82b7-4904-9ab8-0207d9bcd0a9,1,0,5c542a16-0f95-43be-85cd-bfd49b15f215,5c542a16-0f95-43be-85cd-bfd49b15f215,1,0,ef4d648f-4cac-4df9-9880-2aa13c422d10,ef4d648f-4cac-4df9-9880-2aa13c422d10,1,0,21032fa5-9426-40bd-91e4-ace1e4ceb013,21032fa5-9426-40bd-91e4-ace1e4ceb013,1,0,7185a8f8-48c4-43a9-b31f-102302b8f152,7185a8f8-48c4-43a9-b31f-102302b8f152,1,0,ddfe5401-e136-4f20-aa65-aeb42a61a1f0,ddfe5401-e136-4f20-aa65-aeb42a61a1f0,1,0,27a80757-c0fd-40c7-ad24-4c819c1ba72b,27a80757-c0fd-40c7-ad24-4c819c1ba72b,1,0,c573a29f-4c39-402d-8af4-e0fff80877f8,c573a29f-4c39-402d-8af4-e0fff80877f8,1,0,7fce9e49-e558-4760-9d95-dde6ac6c1e78,7fce9e49-e558-4760-9d95-dde6ac6c1e78,1,0,e5aba4a3-6056-4ef3-827c-d74283175393,e5aba4a3-6056-4ef3-827c-d74283175393,1,0,edc731ba-532f-4fa1-81a8-58beb3b2dfb1,edc731ba-532f-4fa1-81a8-58beb3b2dfb1,1,0,63039e62-7314-42ff-bdc6-c251f38b3827,63039e62-7314-42ff-bdc6-c251f38b3827,1,0,8a4b7aab-b602-4581-8fa4-fab66791f701,8a4b7aab-b602-4581-8fa4-fab66791f701,1,0,7c92c579-4651-4fe3-90dc-6c9b594b76f0,7c92c579-4651-4fe3-90dc-6c9b594b76f0,1,0,a2be2d7a-cca0-460f-a915-dadfb9cd588b,a2be2d7a-cca0-460f-a915-dadfb9cd588b,1,0,35bac3e3-1329-4aa6-866f-f6fcaed8cd6e,35bac3e3-1329-4aa6-866f-f6fcaed8cd6e,1,0,ed53b24d-5338-4ae1-8659-0ea6450dc7bb,ed53b24d-5338-4ae1-8659-0ea6450dc7bb,1,0,6add2712-48e8-4b22-a7bb-7d8c808ac5fc,6add2712-48e8-4b22-a7bb-7d8c808ac5fc,1,0,1f4408f5-460e-431b-9842-bc6875ccf0ae,1f4408f5-460e-431b-9842-bc6875ccf0ae,1,0,ec09aa2d-758f-4ae8-96b7-0f05b8187dda,ec09aa2d-758f-4ae8-96b7-0f05b8187dda,1,0,7bfc6163-a62f-45e8-9112-40a5d675ba4a,7bfc6163-a62f-45e8-9112-40a5d675ba4a,1,0,542ff510-0245-4a08-80ac-a9941c66ae93,542ff510-0245-4a08-80ac-a9941c66ae93,1,0,03297623-eaa2-4db0-bf1b-ce2076faf20a,03297623-eaa2-4db0-bf1b-ce2076faf20a,1,0,3c6ef64e-c9bd-4cba-98a4-ffcc5b93b6da,3c6ef64e-c9bd-4cba-98a4-ffcc5b93b6da,1,0,700c2edd-c457-47b7-a7d3-5fb3d9078d1f,700c2edd-c457-47b7-a7d3-5fb3d9078d1f,1,0,82a3802c-b6d6-4511-bd8b-eeec003afa33,82a3802c-b6d6-4511-bd8b-eeec003afa33,1,0,8b59dec8-12b8-455f-8dfc-7c3f03b4ffa5,8b59dec8-12b8-455f-8dfc-7c3f03b4ffa5,1,0,b5eb2e12-c39c-44fa-b940-09b4dcd2817c,b5eb2e12-c39c-44fa-b940-09b4dcd2817c,1,0,5d5ffb56-e18b-4831-94f0-d7a76c2eee6f,5d5ffb56-e18b-4831-94f0-d7a76c2eee6f,1,0,590f29f4-2db1-47c6-83a0-f44d4bbe6e3e,590f29f4-2db1-47c6-83a0-f44d4bbe6e3e,1,0,a755cb43-492d-4069-9b6a-29b92ebb5b0e,a755cb43-492d-4069-9b6a-29b92ebb5b0e,1,0,a5df6ca4-8791-4025-a0e6-07d66e0454b7,a5df6ca4-8791-4025-a0e6-07d66e0454b7,1,0,7f7598e5-ca54-487e-b95c-b18d330b034c,7f7598e5-ca54-487e-b95c-b18d330b034c,1,0,86d09107-f511-4148-b5d9-d97e92addfde,86d09107-f511-4148-b5d9-d97e92addfde,1,0,c14c1f91-f4b9-44d6-b560-8dcdb5faf5f9,c14c1f91-f4b9-44d6-b560-8dcdb5faf5f9,1,0,2120ad01-6bff-48bd-bad8-324e1301b112,2120ad01-6bff-48bd-bad8-324e1301b112,1,0,b9255acf-dc35-4225-8d3a-544e66b7334d,b9255acf-dc35-4225-8d3a-544e66b7334d,1,0,55b78834-3d90-4858-a6f7-e0368b1d8c41,55b78834-3d90-4858-a6f7-e0368b1d8c41,1,0,059b9a75-f53a-4518-a48a-afc72ab9ee36,059b9a75-f53a-4518-a48a-afc72ab9ee36,1,0,bc0dcb68-bfb8-49f4-8eb4-2ca953d852bd,bc0dcb68-bfb8-49f4-8eb4-2ca953d852bd,1,0,31e95872-97c7-49e3-bd1b-8df4de07014d,31e95872-97c7-49e3-bd1b-8df4de07014d,1,0,8b9be02b-cd1f-4231-a895-6c9be26348c2,8b9be02b-cd1f-4231-a895-6c9be26348c2,1,0,c52c4b8c-6be7-460a-9b54-6cdf64e3f8fe,c52c4b8c-6be7-460a-9b54-6cdf64e3f8fe,1,0,64e03321-33a4-424d-a101-90f1e0da4c2e,64e03321-33a4-424d-a101-90f1e0da4c2e,1,0,fa4f0b33-5253-4a5f-8121-feae3e1968a6,fa4f0b33-5253-4a5f-8121-feae3e1968a6,1,0,e0d21be2-91dc-4a04-9078-49420ddddcd5,e0d21be2-91dc-4a04-9078-49420ddddcd5,1,0,56c97764-7dba-42e0-8ba0-82712aca20e9,56c97764-7dba-42e0-8ba0-82712aca20e9,1,0,66192ff1-7760-48f6-8ce8-a7dbfe4e8a75,66192ff1-7760-48f6-8ce8-a7dbfe4e8a75,1,0,a1d80053-ef03-4c00-9fc9-266e61aeaffb,a1d80053-ef03-4c00-9fc9-266e61aeaffb,1,0,03ad9b3d-8f3a-4482-a777-f6a3b3d953d6,03ad9b3d-8f3a-4482-a777-f6a3b3d953d6,1,0,3f05dcf9-be52-42e1-b5ff-dea14d97a26f,3f05dcf9-be52-42e1-b5ff-dea14d97a26f,1,0,7f3c6269-ea41-492f-87b7-7eaaf712762e,7f3c6269-ea41-492f-87b7-7eaaf712762e,1,0,a5d037b0-c666-4179-9d6a-5f48c4a126a8,a5d037b0-c666-4179-9d6a-5f48c4a126a8,1,0,f0850411-4dee-4f1d-baec-7d6c96b10637,f0850411-4dee-4f1d-baec-7d6c96b10637,1,0,12f95031-b81f-4802-b2f3-6f70def90db0,12f95031-b81f-4802-b2f3-6f70def90db0,1,0,5732112a-f31d-41cd-9a7f-312a27395502,5732112a-f31d-41cd-9a7f-312a27395502,1,0,bbf8342b-24f0-4d11-bb5a-4c89d5ea7766,bbf8342b-24f0-4d11-bb5a-4c89d5ea7766,1,0,691f9902-6b95-4579-a3d9-3b2b5b548776,691f9902-6b95-4579-a3d9-3b2b5b548776,1,0,c7a8a88f-040a-47a6-8c93-7f3f01544760,c7a8a88f-040a-47a6-8c93-7f3f01544760,1,0,06fc381d-f27a-433c-95c3-e0981e01f22b,06fc381d-f27a-433c-95c3-e0981e01f22b,1,0,6d93ec4f-167a-4804-910b-988ee8aad78e,6d93ec4f-167a-4804-910b-988ee8aad78e,1,0,f646835e-61eb-4ebd-811e-dac5e70bd1b4,f646835e-61eb-4ebd-811e-dac5e70bd1b4,1,0,61b49c4c-3021-4868-834a-9137476ae169,61b49c4c-3021-4868-834a-9137476ae169,1,0,58911911-5192-45fe-87cf-c4a222a521a1,58911911-5192-45fe-87cf-c4a222a521a1,1,0,70067937-9f27-4442-b87b-6c4576ce1b78,70067937-9f27-4442-b87b-6c4576ce1b78,1,0,115d5d06-a2fc-453e-aab5-c869b6d5850b,115d5d06-a2fc-453e-aab5-c869b6d5850b,1,0,d33ca006-d81d-4ef8-8503-7878e81c599f,d33ca006-d81d-4ef8-8503-7878e81c599f,1,0,123bb339-b95e-44c3-b1e9-482dcaa6f297,123bb339-b95e-44c3-b1e9-482dcaa6f297,1,0,f4119605-beb3-46b6-b372-ecdb74f10a33,f4119605-beb3-46b6-b372-ecdb74f10a33,1,0,d2a2e332-a52c-4277-bd19-5ea8ef198469,d2a2e332-a52c-4277-bd19-5ea8ef198469,1,0,e440c594-14bb-4a6e-af53-a4519c7d5548,e440c594-14bb-4a6e-af53-a4519c7d5548,1,0,4165bdaa-8e27-40de-bcdc-0379c34e8868,4165bdaa-8e27-40de-bcdc-0379c34e8868,1,0,a9a3fde2-99d5-4ebf-88b1-eccd9d74276e,a9a3fde2-99d5-4ebf-88b1-eccd9d74276e,1,0,82b05859-4c4d-4d5a-a620-cc6aab10f527,82b05859-4c4d-4d5a-a620-cc6aab10f527,1,0,c5871658-94dd-4df4-9a3f-db5d245dd106,c5871658-94dd-4df4-9a3f-db5d245dd106,1,0,a3131bf3-88b1-431c-a01c-be6e26396f91,a3131bf3-88b1-431c-a01c-be6e26396f91,1,0,5c3edcbd-fb62-471c-b75b-f1a759956ebe,5c3edcbd-fb62-471c-b75b-f1a759956ebe,1,0,e606f8eb-952a-4abb-b1ae-4211204bed84,e606f8eb-952a-4abb-b1ae-4211204bed84,1,0,7ddc3d13-fa6f-4fa9-870e-a34d5b2d9582,7ddc3d13-fa6f-4fa9-870e-a34d5b2d9582,1,0,1c2ad932-150a-4b15-b958-62eaa8a1eebc,1c2ad932-150a-4b15-b958-62eaa8a1eebc,1,0,b4deaebf-2c21-47d7-9436-10c94c94667c,b4deaebf-2c21-47d7-9436-10c94c94667c,1,0,2a12ce95-3214-4bd2-a0e6-c2af41875821,2a12ce95-3214-4bd2-a0e6-c2af41875821,1,0,bf05548c-babf-402b-b698-9a62e7c69add,bf05548c-babf-402b-b698-9a62e7c69add,1,0,f8295f29-2533-4013-981b-240f017d9f7c,f8295f29-2533-4013-981b-240f017d9f7c,1,0,538b316b-3876-4da6-8b97-ad8ef59de17d,538b316b-3876-4da6-8b97-ad8ef59de17d,1,0,f70f09fd-59e1-47b6-aaf3-cb4cc4ceaa7e,f70f09fd-59e1-47b6-aaf3-cb4cc4ceaa7e,1,0,ebc5f182-482b-4dec-9961-ce3a448abd0e,ebc5f182-482b-4dec-9961-ce3a448abd0e,1,0,83e618f5-1bf4-474a-9d65-389f1e4b16c3,83e618f5-1bf4-474a-9d65-389f1e4b16c3,1,0,1357512e-3ed3-455d-bc91-81db3b92f9fe,1357512e-3ed3-455d-bc91-81db3b92f9fe,1,0,82223d0f-41d9-45a6-9612-ae4d8408fa1b,82223d0f-41d9-45a6-9612-ae4d8408fa1b,1,0,3ee058a9-aff5-46f0-8928-8a417e7800d4,3ee058a9-aff5-46f0-8928-8a417e7800d4,1,0,639c2ffc-4514-4b79-89e2-d49caadf828d,639c2ffc-4514-4b79-89e2-d49caadf828d,1,0,c9a03f19-42bb-4e07-8ce8-1b954e431ada,c9a03f19-42bb-4e07-8ce8-1b954e431ada,1,0,ed4edc6f-048a-40d5-8f61-989895c95cf3,ed4edc6f-048a-40d5-8f61-989895c95cf3,1,0,73cc5fea-597f-4490-9c62-b175fdc38fd3,73cc5fea-597f-4490-9c62-b175fdc38fd3,1,0,c2049ace-3095-4dd7-9cc0-7721118451ad,c2049ace-3095-4dd7-9cc0-7721118451ad,1,0,8cb20eb9-306b-4c2a-9a77-6a4632f72b54,8cb20eb9-306b-4c2a-9a77-6a4632f72b54,1,0,87ba683b-b69c-4b23-854c-037b770a3ebb,87ba683b-b69c-4b23-854c-037b770a3ebb,1,0,f3f753ac-b2cb-44ea-a917-811b0ef711f8,f3f753ac-b2cb-44ea-a917-811b0ef711f8,1,0,1357adf5-0f5d-4930-afea-edc89db4d0a6,1357adf5-0f5d-4930-afea-edc89db4d0a6,1,0,505ff816-0d42-458a-b7b5-7d007c15d1be,505ff816-0d42-458a-b7b5-7d007c15d1be,1,0,27811a76-d8bd-43a5-9898-944bdd1388ce,27811a76-d8bd-43a5-9898-944bdd1388ce,1,0,363215fe-59f3-4d9a-a8c7-94049882147a,363215fe-59f3-4d9a-a8c7-94049882147a,1,0,3d4597ca-1c97-4116-b966-87970cd7ebdf,3d4597ca-1c97-4116-b966-87970cd7ebdf,1,0,715f7ba5-ca82-49e6-8671-fc1b55b740b5,715f7ba5-ca82-49e6-8671-fc1b55b740b5,1,0,0add6d62-bf4f-476c-9f6b-37633fcd6b0e,0add6d62-bf4f-476c-9f6b-37633fcd6b0e,1,0,93e495a4-207d-4216-b63e-a8b169b2b801,93e495a4-207d-4216-b63e-a8b169b2b801,1,0,3b47221a-ad5f-419c-b503-a4a88505d336,3b47221a-ad5f-419c-b503-a4a88505d336,1,0,0149a9c0-245b-4dfe-aa98-e8b02ba85c99,0149a9c0-245b-4dfe-aa98-e8b02ba85c99,1,0,94abbe1e-44d8-43c1-90fb-71bc9b6621a9,94abbe1e-44d8-43c1-90fb-71bc9b6621a9,1,0,2edfc563-9fd8-4f7c-8cd4-ba3c27c08840,2edfc563-9fd8-4f7c-8cd4-ba3c27c08840,1,0,d0d052c7-68b9-4b2b-9bbf-4fb083327dca,d0d052c7-68b9-4b2b-9bbf-4fb083327dca,1,0,807194b1-2460-4872-8430-e34f6970178f,807194b1-2460-4872-8430-e34f6970178f,1,0,b0409473-768f-4c29-89d3-6201e8476157,b0409473-768f-4c29-89d3-6201e8476157,1,0,d8415773-616e-43e4-9deb-e92200659d53,d8415773-616e-43e4-9deb-e92200659d53,1,0,b228f0de-7cd7-4337-b021-bc1beb980afd,b228f0de-7cd7-4337-b021-bc1beb980afd,1,0,c9178048-5d75-4d1b-a714-50d772e8d343,c9178048-5d75-4d1b-a714-50d772e8d343,1,0,661b7581-27ad-4cec-8618-9c314cb3a4d5,661b7581-27ad-4cec-8618-9c314cb3a4d5,1,0,310a8f7d-5b1f-428c-885d-1127b7789efd,310a8f7d-5b1f-428c-885d-1127b7789efd,1,0,ee5efc54-aa35-467f-b085-64f24819aaa7,ee5efc54-aa35-467f-b085-64f24819aaa7,1,0,376c8f0b-9d2e-4262-a26f-b63f1163c1c4,376c8f0b-9d2e-4262-a26f-b63f1163c1c4,1,0,d37c82e1-cc9f-492c-a7fb-0e6e9d8f6a72,d37c82e1-cc9f-492c-a7fb-0e6e9d8f6a72,1,0,b7ebf08a-d6be-42db-b28a-460df037d7ba,b7ebf08a-d6be-42db-b28a-460df037d7ba,1,0,ec3c34f6-b3b3-4a96-a231-aaf70db1e73d,ec3c34f6-b3b3-4a96-a231-aaf70db1e73d,1,0,8aa9daa0-e073-49f4-8346-7f2c809fac9a,8aa9daa0-e073-49f4-8346-7f2c809fac9a,1,0,043074cb-64aa-45ed-a2f3-b4fa252431cc,043074cb-64aa-45ed-a2f3-b4fa252431cc,1,0,9cc72214-6e84-45e6-aafd-b36205730faa,9cc72214-6e84-45e6-aafd-b36205730faa,1,0,768eb7d6-d37e-4182-961e-464a5e08781b,768eb7d6-d37e-4182-961e-464a5e08781b,1,0,4df52b04-759d-471d-9de4-3ba4d00d1d22,4df52b04-759d-471d-9de4-3ba4d00d1d22,1,0,5768f558-50b6-4682-960c-6894f6953461,5768f558-50b6-4682-960c-6894f6953461,1,0,74126b65-4f3b-4f8d-b7fc-1d2705822463,74126b65-4f3b-4f8d-b7fc-1d2705822463,1,0,75a4b472-00b6-4b2f-bb6b-03bdc0b05dcf,75a4b472-00b6-4b2f-bb6b-03bdc0b05dcf,1,0,8506ad71-85eb-4f91-b892-4e75318649c8,8506ad71-85eb-4f91-b892-4e75318649c8,1,0,6e3010f5-f725-4361-b853-768412b1ad6f,6e3010f5-f725-4361-b853-768412b1ad6f,1,0,40d8803a-2f6d-4091-be54-9d9827a53e30,40d8803a-2f6d-4091-be54-9d9827a53e30,1,0,ea2b936c-be5c-4316-aca9-4f890f4e6ec9,ea2b936c-be5c-4316-aca9-4f890f4e6ec9,1,0,092501bf-dd8e-4f50-8c58-b1b028b50a5a,092501bf-dd8e-4f50-8c58-b1b028b50a5a,1,0,927cfec6-c1e3-4152-aa2e-afa89359b5eb,927cfec6-c1e3-4152-aa2e-afa89359b5eb,1,0,8e986c32-7296-4329-a908-704398428e4e,8e986c32-7296-4329-a908-704398428e4e,1,0,c5b8870c-14cb-43ae-8d44-d639bd059b0e,c5b8870c-14cb-43ae-8d44-d639bd059b0e,1,0,bc98265e-329d-41d1-9fe8-4c78b7998cd2,bc98265e-329d-41d1-9fe8-4c78b7998cd2,1,0,b44c8a6b-0e3f-446b-95f7-6cb4a58f13e0,b44c8a6b-0e3f-446b-95f7-6cb4a58f13e0,1,0,7601f9c7-2fe7-43fb-a7a9-cf5be4475ce1,7601f9c7-2fe7-43fb-a7a9-cf5be4475ce1,1,0,2da686d3-38b0-4cf1-9962-1440d1afd050,2da686d3-38b0-4cf1-9962-1440d1afd050,1,0,71518348-f155-4616-bbdc-742e36cd3964,71518348-f155-4616-bbdc-742e36cd3964,1,0,723a58ca-9947-4320-9bf4-7c6b58aee2f5,723a58ca-9947-4320-9bf4-7c6b58aee2f5,1,0,2df24487-0b76-451d-a08f-21dc03adefa4,2df24487-0b76-451d-a08f-21dc03adefa4,1,0,00813d65-8dae-45a8-8691-d0b17d6d7754,00813d65-8dae-45a8-8691-d0b17d6d7754,1,0,d88166a7-ef6c-453a-b6cc-1c574cf6ea85,d88166a7-ef6c-453a-b6cc-1c574cf6ea85,1,0,aae1a856-ff88-41bb-a887-1b8c2c3eeab6,aae1a856-ff88-41bb-a887-1b8c2c3eeab6,1,0,cf2b8654-02b6-441e-98a9-cb8bea5cac89,cf2b8654-02b6-441e-98a9-cb8bea5cac89,1,0,2181bde8-031d-425e-875f-0bd153b634f2,2181bde8-031d-425e-875f-0bd153b634f2,1,0,ee1b81ac-0182-48dd-a348-1d8ba38869ca,ee1b81ac-0182-48dd-a348-1d8ba38869ca,1,0,ad385d3e-8201-402a-a1a8-267bc8c6d56b,ad385d3e-8201-402a-a1a8-267bc8c6d56b,1,0,53bb97e3-cd96-462a-b91f-c82678568d9a,53bb97e3-cd96-462a-b91f-c82678568d9a,1,0,32ca3bd6-7b32-4eab-8a4e-aeac26604e08,32ca3bd6-7b32-4eab-8a4e-aeac26604e08,1,0,2a702d37-8e83-4fa0-9969-5d954a7096c1,2a702d37-8e83-4fa0-9969-5d954a7096c1,1,0,71b7225e-6486-4916-85b2-8ec14363ebc8,71b7225e-6486-4916-85b2-8ec14363ebc8,1,0,2df34fcd-3118-4871-95d7-807dece77d3f,2df34fcd-3118-4871-95d7-807dece77d3f,1,0,32db89ab-74d3-4f80-9352-65e405770906,32db89ab-74d3-4f80-9352-65e405770906,1,0,21c22027-2036-4136-a98e-500e5cd679d1,21c22027-2036-4136-a98e-500e5cd679d1,1,0,6fe56db7-0f48-4dd0-b509-5372019ddcc2,6fe56db7-0f48-4dd0-b509-5372019ddcc2,1,0,884990f4-54f1-4b05-a5ed-40ee5a7a549a,884990f4-54f1-4b05-a5ed-40ee5a7a549a,1,0,4cf71e62-c8c2-4bc7-87fc-a89e48f2c007,4cf71e62-c8c2-4bc7-87fc-a89e48f2c007,1,0,e5a9260b-c18b-47bf-bc5a-23294e13025a,e5a9260b-c18b-47bf-bc5a-23294e13025a,1,0,02f00688-a2ed-4f91-bd41-50fc29e13d6c,02f00688-a2ed-4f91-bd41-50fc29e13d6c,1,0,e9f2b435-13e3-401a-9324-ca44986b7676,e9f2b435-13e3-401a-9324-ca44986b7676,1,0,2b854852-ae2d-46d8-8c3b-228af7a3f1db,2b854852-ae2d-46d8-8c3b-228af7a3f1db,1,0,11346c91-ecb6-40e6-a2fb-df7e6f5dbaed,11346c91-ecb6-40e6-a2fb-df7e6f5dbaed,1,0,f4f096ac-45e3-4dfb-8363-be35edceb6c6,f4f096ac-45e3-4dfb-8363-be35edceb6c6,1,0,cb7ff74e-9697-4ea7-88a2-a2f207a5d313,cb7ff74e-9697-4ea7-88a2-a2f207a5d313,1,0,5c3b45fb-0d95-4a15-a42b-5d6baa7a699c,5c3b45fb-0d95-4a15-a42b-5d6baa7a699c,1,0,662940c1-49de-4b94-867b-6c16bf716266,662940c1-49de-4b94-867b-6c16bf716266,1,0,eb2d414c-ba68-47c6-b74b-c8566987b824,eb2d414c-ba68-47c6-b74b-c8566987b824,1,0,ef2706e1-9fc9-42e8-add6-85392a78fff3,ef2706e1-9fc9-42e8-add6-85392a78fff3,1,0,aa609e39-3e3b-4af7-8b79-49293df6b6f2,aa609e39-3e3b-4af7-8b79-49293df6b6f2,1,0,f9188489-ad5e-4eaf-a87a-7191776e4fd4,f9188489-ad5e-4eaf-a87a-7191776e4fd4,1,0,8763c516-04a3-4ca3-9f5d-da3026a46d2a,8763c516-04a3-4ca3-9f5d-da3026a46d2a,1,0,d9fbb0e9-7a19-4742-a958-72c0c3c2307b,d9fbb0e9-7a19-4742-a958-72c0c3c2307b,1,0,d83a4e56-2ab3-44f4-91dc-a6881c62f7c6,d83a4e56-2ab3-44f4-91dc-a6881c62f7c6,1,0,9ea7a191-38bb-40cc-8025-d34a5ed17c7c,9ea7a191-38bb-40cc-8025-d34a5ed17c7c,1,0,c5491956-ebc7-446b-b0b5-4eab34c5a33f,c5491956-ebc7-446b-b0b5-4eab34c5a33f,1,0,2b7de7a1-8e84-4791-9633-7fca8696ff5d,2b7de7a1-8e84-4791-9633-7fca8696ff5d,1,0,97ee6138-4d8a-41d6-8a09-17f8eb306d9a,97ee6138-4d8a-41d6-8a09-17f8eb306d9a,1,0,9abb1972-1c08-44fb-b511-f77d9334d31d,9abb1972-1c08-44fb-b511-f77d9334d31d,1,0,8305c82b-5808-40d6-9668-e54cec298ff1,8305c82b-5808-40d6-9668-e54cec298ff1,1,0,3a8583f1-b6e9-4b4b-9362-4367bc433913,3a8583f1-b6e9-4b4b-9362-4367bc433913,1,0,34aad1b4-550e-4b12-acec-516c8b430cd2,34aad1b4-550e-4b12-acec-516c8b430cd2,1,0,dc16e9b0-0749-4b06-b59d-b2c1031eace6,dc16e9b0-0749-4b06-b59d-b2c1031eace6,1,0,4c3d06cc-22b0-4618-acb5-d1ed387deaa7,4c3d06cc-22b0-4618-acb5-d1ed387deaa7,1,0,216b5d48-5422-4c03-b21d-cdb3e0e35f2c,216b5d48-5422-4c03-b21d-cdb3e0e35f2c,1,0,c067a94e-5bea-4b47-bb57-6cf973a7ad45,c067a94e-5bea-4b47-bb57-6cf973a7ad45,1,0,4c6bc132-e0f6-4eb0-a4aa-bceb103e7f02,4c6bc132-e0f6-4eb0-a4aa-bceb103e7f02,1,0,dc17d8b6-d277-43eb-8823-71d440ae1e90,dc17d8b6-d277-43eb-8823-71d440ae1e90,1,0,c5b8bf21-5c8f-4e5b-8b85-bfac387ce99a,c5b8bf21-5c8f-4e5b-8b85-bfac387ce99a,1,0,27f793d8-da6a-4502-9b7e-82b8af7264d1,27f793d8-da6a-4502-9b7e-82b8af7264d1,1,0,4d3f3c76-999c-4105-8b64-cd4b7bc861b9,4d3f3c76-999c-4105-8b64-cd4b7bc861b9,1,0,efcf8b0f-7124-4096-9f50-b9b95369f196,efcf8b0f-7124-4096-9f50-b9b95369f196,1,0,c1f2db60-011c-4a0b-97bb-42e005ba51c9,c1f2db60-011c-4a0b-97bb-42e005ba51c9,1,0,15111bf5-5bf5-4486-aff0-20ded684b67f,15111bf5-5bf5-4486-aff0-20ded684b67f,1,0,a9221471-3f76-45d2-b467-a1afb8e690f2,a9221471-3f76-45d2-b467-a1afb8e690f2,1,0,2465986e-7519-4638-9f62-5f692bebeeac,2465986e-7519-4638-9f62-5f692bebeeac,1,0,d9a6706e-3dcd-4aec-b9d1-542330ba6e2e,d9a6706e-3dcd-4aec-b9d1-542330ba6e2e,1,0,7cbf0398-2bc7-4f40-9a9e-af4135c6a2d2,7cbf0398-2bc7-4f40-9a9e-af4135c6a2d2,1,0,022f99dd-e1b7-42a7-8141-a8c2e8628901,022f99dd-e1b7-42a7-8141-a8c2e8628901,1,0,cc770616-f6f6-4054-876c-f319b1f8c6cf,cc770616-f6f6-4054-876c-f319b1f8c6cf,1,0,3baffdec-a2cb-48c9-9c21-4fc469e81e3b,3baffdec-a2cb-48c9-9c21-4fc469e81e3b,1,0,046e6f4f-3d92-4b20-b19f-fca608fa0f11,046e6f4f-3d92-4b20-b19f-fca608fa0f11,1,0,74bea66f-15bf-48de-9ff9-f9c35a8bf5cc,74bea66f-15bf-48de-9ff9-f9c35a8bf5cc,1,0,8486e623-1a54-4ad9-ab44-591b6a559bc3,8486e623-1a54-4ad9-ab44-591b6a559bc3,1,0,dce82d28-9a7b-4d4c-af13-90f459cf4af2,dce82d28-9a7b-4d4c-af13-90f459cf4af2,1,0,cb9f2231-49bb-4b14-a124-8996628afead,cb9f2231-49bb-4b14-a124-8996628afead,1,0,6fe9a455-7fef-4a1b-8109-57eafc17e2b6,6fe9a455-7fef-4a1b-8109-57eafc17e2b6,1,0,dc1b8bce-49c5-4fd2-a597-27f1fbc98648,dc1b8bce-49c5-4fd2-a597-27f1fbc98648,1,0,ac4c6275-3c23-4a1f-b19e-c674fd685e8f,ac4c6275-3c23-4a1f-b19e-c674fd685e8f,1,0,2031ed38-6a8e-4ca7-aa97-449ee36ab7a3,2031ed38-6a8e-4ca7-aa97-449ee36ab7a3,1,0,896de79f-3c34-4436-a4e2-4dd4f45c3e20,896de79f-3c34-4436-a4e2-4dd4f45c3e20,1,0,25d118f0-bfb7-4f08-84b1-0511b0fc92e8,25d118f0-bfb7-4f08-84b1-0511b0fc92e8,1,0,e6c42b5d-57fd-42ce-a968-653620e797f6,e6c42b5d-57fd-42ce-a968-653620e797f6,1,0,993193b3-1dd8-4f5b-8ce7-6a0bf8c4330c,993193b3-1dd8-4f5b-8ce7-6a0bf8c4330c,1,0,724fb328-fec6-4afe-bc99-0ff0951b184b,724fb328-fec6-4afe-bc99-0ff0951b184b,1,0,7a0cdc94-9e53-4fcc-ac2f-97ad2ad939f5,7a0cdc94-9e53-4fcc-ac2f-97ad2ad939f5,1,0,f6259a3b-98f5-4649-8fd0-da0a0285f375,f6259a3b-98f5-4649-8fd0-da0a0285f375,1,0,c565bf25-c55e-4324-851a-cec497f5114a,c565bf25-c55e-4324-851a-cec497f5114a,1,0,db6679c4-a647-471a-9f90-40248eb18db9,db6679c4-a647-471a-9f90-40248eb18db9,1,0,455a1ca6-7212-43ac-b5a2-cf85dd2f9c14,455a1ca6-7212-43ac-b5a2-cf85dd2f9c14,1,0,e7c366f7-c8e3-4ffe-bc5e-ca8a4619ec11,e7c366f7-c8e3-4ffe-bc5e-ca8a4619ec11,1,0,2997e4da-d831-48e4-96e2-c29f9d077302,2997e4da-d831-48e4-96e2-c29f9d077302,1,0,30f59002-a23d-4eff-b84f-f280f11b220e,30f59002-a23d-4eff-b84f-f280f11b220e,1,0,b50994d0-23f9-4bf4-93d2-cf9bcffa6fc9,b50994d0-23f9-4bf4-93d2-cf9bcffa6fc9,1,0,5b0e250c-4d2d-4e37-ade1-593854610d3f,5b0e250c-4d2d-4e37-ade1-593854610d3f,1,0,14583452-805e-423d-be9a-e04683c7c46f,14583452-805e-423d-be9a-e04683c7c46f,1,0,148f63d5-23ad-4824-a24c-14d5a54c62d3,148f63d5-23ad-4824-a24c-14d5a54c62d3,1,0,d6cdd049-b31b-48aa-a2aa-a24b0bdf3337,d6cdd049-b31b-48aa-a2aa-a24b0bdf3337,1,0,75378d9c-a364-4b46-a6d1-b745604c46a2,75378d9c-a364-4b46-a6d1-b745604c46a2,1,0,d7376ea8-245a-4342-9a40-c729ca19f966,d7376ea8-245a-4342-9a40-c729ca19f966,1,0,eabfa8b7-fb65-43dd-9308-787f7cce88c9,eabfa8b7-fb65-43dd-9308-787f7cce88c9,1,0,4bf12710-aef2-43ec-b16f-9c6c9e8eb18d,4bf12710-aef2-43ec-b16f-9c6c9e8eb18d,1,0,b1e837ff-0edd-4525-b2e2-92cc7990e00e,b1e837ff-0edd-4525-b2e2-92cc7990e00e,1,0,30213cef-b2bc-4e6c-8094-74a61f28b2ed,30213cef-b2bc-4e6c-8094-74a61f28b2ed,1,0,037fd2f3-27f1-4d8f-a621-82fa5754e8c7,037fd2f3-27f1-4d8f-a621-82fa5754e8c7,1,0,3fc1e50e-b9da-45f7-8e06-57ef6951ca40,3fc1e50e-b9da-45f7-8e06-57ef6951ca40,1,0,66d67f47-ccbb-4d58-aceb-af876f480750,66d67f47-ccbb-4d58-aceb-af876f480750,1,0,71871ca9-095d-4bde-ac80-1371f578cd51,71871ca9-095d-4bde-ac80-1371f578cd51,1,0,6aa8c1d6-9956-4a98-9992-b119ba5ba1c7,6aa8c1d6-9956-4a98-9992-b119ba5ba1c7,1,0,cafbea88-86f0-4a44-98f4-70d1837da452,cafbea88-86f0-4a44-98f4-70d1837da452,1,0,8c72f824-b667-4d74-84aa-30eccfbbd2f0,8c72f824-b667-4d74-84aa-30eccfbbd2f0,1,0,2df403a2-57d8-4578-b017-e7cf9550b708,2df403a2-57d8-4578-b017-e7cf9550b708,1,0,ceb286e9-4e7c-49fa-a695-424073e0dffc,ceb286e9-4e7c-49fa-a695-424073e0dffc,1,0,727689c3-c0d8-496f-a47b-4f3243ad8974,727689c3-c0d8-496f-a47b-4f3243ad8974,1,0,ec7b492d-5d38-4f31-90e0-577ad181514e,ec7b492d-5d38-4f31-90e0-577ad181514e,1,0,5b14d700-bc59-4bdb-8226-554696336e16,5b14d700-bc59-4bdb-8226-554696336e16,1,0,d1771aec-ba78-4b5d-861a-9ac6d8627dea,d1771aec-ba78-4b5d-861a-9ac6d8627dea,1,0,da0686ce-25e2-4d2c-b152-283f5e4cf4b1,da0686ce-25e2-4d2c-b152-283f5e4cf4b1,1,0,07288e13-583c-4caf-983a-76c5d2ebf66f,07288e13-583c-4caf-983a-76c5d2ebf66f,1,0,5e232e6a-7f68-40d2-9555-4a2b3debe095,5e232e6a-7f68-40d2-9555-4a2b3debe095,1,0,efc8ca7d-966d-4c18-acd9-90f22dd75a7a,efc8ca7d-966d-4c18-acd9-90f22dd75a7a,1,0,1780ffa9-1ca3-4bcb-823f-5e582c4cc25e,1780ffa9-1ca3-4bcb-823f-5e582c4cc25e,1,0,2522fce4-d121-482b-a39d-0c1a842d315e,2522fce4-d121-482b-a39d-0c1a842d315e,1,0,4807629d-8421-4bd9-beb4-5b2940197958,4807629d-8421-4bd9-beb4-5b2940197958,1,0,b8d7bdc9-2778-4f36-a0d9-c43fce15eb3c,b8d7bdc9-2778-4f36-a0d9-c43fce15eb3c,1,0,4bad7c64-131a-42cb-9be7-d61f14f456d0,4bad7c64-131a-42cb-9be7-d61f14f456d0,1,0,d46e141b-7a10-4d65-971f-3a35f2114017,d46e141b-7a10-4d65-971f-3a35f2114017,1,0,cd6f96c7-33ee-42b1-bb81-ce7d9652337c,cd6f96c7-33ee-42b1-bb81-ce7d9652337c,1,0,71cad48a-37f2-4894-b876-9d74fa844828,71cad48a-37f2-4894-b876-9d74fa844828,1,0,0f325868-167b-43d5-b17a-eadc606a8f79,0f325868-167b-43d5-b17a-eadc606a8f79,1,0,51ea38c1-3005-4f4b-b813-91c8e2717683,51ea38c1-3005-4f4b-b813-91c8e2717683,1,0,766c7fb5-727e-4975-9ea1-3b0df4739620,766c7fb5-727e-4975-9ea1-3b0df4739620,1,0,ba59393c-c499-4999-91d4-b9e34d94db0e,ba59393c-c499-4999-91d4-b9e34d94db0e,1,0,626da0dd-d75b-4779-be1f-9b71d2f2d4e1,626da0dd-d75b-4779-be1f-9b71d2f2d4e1,1,0,1d4b7f71-6c72-4f41-a2ed-1f2fe2122c04,1d4b7f71-6c72-4f41-a2ed-1f2fe2122c04,1,0,584aa9db-e6b0-49f3-ae9d-5b6c796d015c,584aa9db-e6b0-49f3-ae9d-5b6c796d015c,1,0,fcf6a4cd-d0c9-4f83-b9b0-514baed3ccb9,fcf6a4cd-d0c9-4f83-b9b0-514baed3ccb9,1,0,3f92cffe-b4ea-45e3-b2b9-a9e316405a8c,3f92cffe-b4ea-45e3-b2b9-a9e316405a8c,1,0,913743c3-9529-4c86-b056-93e954df7819,913743c3-9529-4c86-b056-93e954df7819,1,0,a3a9a48b-f241-45b2-b93b-d34bba0a8a66,a3a9a48b-f241-45b2-b93b-d34bba0a8a66,1,0,3b453f76-ab85-4c65-b008-7f8bf44c9631,3b453f76-ab85-4c65-b008-7f8bf44c9631,1,0,ba5574bd-53ca-413f-a245-272f468a80fb,ba5574bd-53ca-413f-a245-272f468a80fb,1,0,772e7011-0019-4edc-b673-b7151cf4fa6c,772e7011-0019-4edc-b673-b7151cf4fa6c,1,0,21ac47fa-12c2-43e2-9b57-afdf521d3485,21ac47fa-12c2-43e2-9b57-afdf521d3485,1,0,e976d3cb-52e1-4f3e-ad01-fcac971a552d,e976d3cb-52e1-4f3e-ad01-fcac971a552d,1,0,f58bffe7-4a02-4c4e-bfed-7895177a400c,f58bffe7-4a02-4c4e-bfed-7895177a400c,1,0,fe285122-2257-4fb2-ab7e-1683c31db1c6,fe285122-2257-4fb2-ab7e-1683c31db1c6,1,0,0facc6eb-a178-45ee-a6bc-4bf085d80453,0facc6eb-a178-45ee-a6bc-4bf085d80453,1,0,f74eef36-9441-4b6f-b21c-de9643832f9f,f74eef36-9441-4b6f-b21c-de9643832f9f,1,0,d1391e3b-ec29-48c8-8bf5-fa4434a909e9,d1391e3b-ec29-48c8-8bf5-fa4434a909e9,1,0,8d1c44d7-52f2-4089-9d77-2f03bf051455,8d1c44d7-52f2-4089-9d77-2f03bf051455,1,0,ac2e5217-aaeb-4b6f-b063-538c84f2da06,ac2e5217-aaeb-4b6f-b063-538c84f2da06,1,0,b5e73fbe-499c-4666-a482-0ef399c97c1e,b5e73fbe-499c-4666-a482-0ef399c97c1e,1,0,a0811e0a-91b6-4c4b-a6d2-a57b9185983b,a0811e0a-91b6-4c4b-a6d2-a57b9185983b,1,0,4ac77dea-3c2b-4566-8857-ba99f7b025c9,4ac77dea-3c2b-4566-8857-ba99f7b025c9,1,0,8e87da88-9fa8-4dd8-b904-622b763239f4,8e87da88-9fa8-4dd8-b904-622b763239f4,1,0,2a7f1ce3-2629-4860-886b-67c9f82eeb29,2a7f1ce3-2629-4860-886b-67c9f82eeb29,1,0,6b5720a8-0bcc-4196-934d-84db9d99ec27,6b5720a8-0bcc-4196-934d-84db9d99ec27,1,0,c0b3e3e9-20bc-42e1-a68f-646a958586d1,c0b3e3e9-20bc-42e1-a68f-646a958586d1,1,0,39496918-7d71-4960-ad8b-0028ae659266,39496918-7d71-4960-ad8b-0028ae659266,1,0,bdf2fd35-2000-45c2-9df6-65031ee0e4af,bdf2fd35-2000-45c2-9df6-65031ee0e4af,1,0,529cc5b5-835f-4e70-9232-a9649fdc7ae5,529cc5b5-835f-4e70-9232-a9649fdc7ae5,1,0,09fec67d-6e45-428c-b858-9ae20979676c,09fec67d-6e45-428c-b858-9ae20979676c,1,0,4875a235-bcc8-47eb-83e3-a66f0f690b97,4875a235-bcc8-47eb-83e3-a66f0f690b97,1,0,58ffc4d9-d711-4b68-905c-d2ac4f78b547,58ffc4d9-d711-4b68-905c-d2ac4f78b547,1,0,114ab2a1-f7c3-4453-a6cc-4c5a23c00cb5,114ab2a1-f7c3-4453-a6cc-4c5a23c00cb5,1,0,93c347d8-66cb-406c-9ee6-b1962482893f,93c347d8-66cb-406c-9ee6-b1962482893f,1,0,cce593b4-6f7c-466d-892c-7fe89fcddf5d,cce593b4-6f7c-466d-892c-7fe89fcddf5d,1,0,86c73514-9a5b-4b0d-a229-fb7ca54f97d9,86c73514-9a5b-4b0d-a229-fb7ca54f97d9,1,0,c62e42e1-297b-412d-a9bd-e612c88025dd,c62e42e1-297b-412d-a9bd-e612c88025dd,1,0,f094db19-fb78-4a8a-89e2-b79fcc2ddcd5,f094db19-fb78-4a8a-89e2-b79fcc2ddcd5,1,0,2b7ba24e-11e3-4447-8e0a-df9e166f56de,2b7ba24e-11e3-4447-8e0a-df9e166f56de,1,0,94ab750f-46b4-427c-a7f2-4e94fb9b0678,94ab750f-46b4-427c-a7f2-4e94fb9b0678,1,0,397d9926-31a3-4c03-acb7-74478f9863e1,397d9926-31a3-4c03-acb7-74478f9863e1,1,0,264dd12a-b4c5-44bf-b3c0-ef9225505f76,264dd12a-b4c5-44bf-b3c0-ef9225505f76,1,0,90b8fdf3-3e42-442f-a002-6a28ad0edc99,90b8fdf3-3e42-442f-a002-6a28ad0edc99,1,0,330a176f-5b61-41f5-84bb-b99a9439c2a0,330a176f-5b61-41f5-84bb-b99a9439c2a0,1,0,d1ba8620-c0c9-4281-afa6-9c9962c338d3,d1ba8620-c0c9-4281-afa6-9c9962c338d3,1,0,92f35bea-50b8-4a1c-8fb2-a8c7df7a50db,92f35bea-50b8-4a1c-8fb2-a8c7df7a50db,1,0,02f1c0db-3217-4c61-aef7-3b87c217739c,02f1c0db-3217-4c61-aef7-3b87c217739c,1,0,82ba8c13-6567-4f0c-be0e-0884ce19bbcc,82ba8c13-6567-4f0c-be0e-0884ce19bbcc,1,0,4bdc1a18-f184-4f95-bda4-8f5c4b7c3aa1,4bdc1a18-f184-4f95-bda4-8f5c4b7c3aa1,1,0,60200fc6-252f-4eaf-88a2-d2cefa25061f,60200fc6-252f-4eaf-88a2-d2cefa25061f,1,0,0798a128-2f87-4173-99ae-115bb8b3a3b8,0798a128-2f87-4173-99ae-115bb8b3a3b8,1,0,40f93527-7bff-4f9c-b855-2b69f7c5eb33,40f93527-7bff-4f9c-b855-2b69f7c5eb33,1,0,697bd1de-bbef-4362-aa39-71f6008f4bd7,697bd1de-bbef-4362-aa39-71f6008f4bd7,1,0,676b2ea2-a559-4685-b5ca-7b619b02f101,676b2ea2-a559-4685-b5ca-7b619b02f101,1,0,c3572d8d-46ff-40bb-800c-2c07f884c219,c3572d8d-46ff-40bb-800c-2c07f884c219,1,0,a3e9afe9-1587-47c7-8e7b-b8df6b3a2664,a3e9afe9-1587-47c7-8e7b-b8df6b3a2664,1,0,0e31d69a-8d2c-4ad0-b3ac-93ba5afcefdf,0e31d69a-8d2c-4ad0-b3ac-93ba5afcefdf,1,0,89574884-bce2-406d-9961-d1656b306eb8,89574884-bce2-406d-9961-d1656b306eb8,1,0,3de28e34-3c1e-4e7f-a720-3418c8c9c496,3de28e34-3c1e-4e7f-a720-3418c8c9c496,1,0,7f2d69b4-2f87-40f4-a78c-fe4cabc2a502,7f2d69b4-2f87-40f4-a78c-fe4cabc2a502,1,0,dacb236e-42a5-47e5-b239-ff18ae48e21e,dacb236e-42a5-47e5-b239-ff18ae48e21e,1,0,5cdb6e71-fd20-461a-83db-d59ccdb5b366,5cdb6e71-fd20-461a-83db-d59ccdb5b366,1,0,388b8576-9ba4-460f-b71b-3d644663656a,388b8576-9ba4-460f-b71b-3d644663656a,1,0,d4d38827-fce6-4c39-a4b4-51c7d7edc475,d4d38827-fce6-4c39-a4b4-51c7d7edc475,1,0,2d40609d-b56f-4082-9a6f-8216817ebd24,2d40609d-b56f-4082-9a6f-8216817ebd24,1,0,62629f36-5d1e-460f-9ac5-983607c40cb2,62629f36-5d1e-460f-9ac5-983607c40cb2,1,0,b238b4b2-beaf-4b5d-a728-8aebac3bacb5,b238b4b2-beaf-4b5d-a728-8aebac3bacb5,1,0,732b19c8-4f22-4748-a796-71538e46fc2f,732b19c8-4f22-4748-a796-71538e46fc2f,1,0,9fb2169b-fc77-4a3f-a1d8-b939079d9d9d,9fb2169b-fc77-4a3f-a1d8-b939079d9d9d,1,0,4b07cdb0-c32e-4751-b317-bee62b43f128,4b07cdb0-c32e-4751-b317-bee62b43f128,1,0,74f02619-7fa8-4c6d-81d6-230156ee45f4,74f02619-7fa8-4c6d-81d6-230156ee45f4,1,0,32cab8f2-cebf-4508-9396-eb41f4e8ba22,32cab8f2-cebf-4508-9396-eb41f4e8ba22,1,0,62ef3558-5ad3-44ab-8578-1acbbfa54135,62ef3558-5ad3-44ab-8578-1acbbfa54135,1,0,a103cca0-8243-40e9-bcdd-97a1cc8a3943,a103cca0-8243-40e9-bcdd-97a1cc8a3943,1,0,80fd89d7-160d-4528-9aa0-05b8dac64b4c,80fd89d7-160d-4528-9aa0-05b8dac64b4c,1,0,b77edd78-2fad-4926-a74f-02f2135356e6,b77edd78-2fad-4926-a74f-02f2135356e6,1,0,57b0b6b2-bbdd-48d2-a52e-e3495e00860e,57b0b6b2-bbdd-48d2-a52e-e3495e00860e,1,0,4eb24fcd-85f6-4fa6-bc9f-baef3861664e,4eb24fcd-85f6-4fa6-bc9f-baef3861664e,1,0,da551cf6-4f86-4e37-8967-a84c80e1fb13,da551cf6-4f86-4e37-8967-a84c80e1fb13,1,0,4f4916dc-b6fe-4f99-9220-bd7c076408ae,4f4916dc-b6fe-4f99-9220-bd7c076408ae,1,0,857daa3a-0058-4464-9173-13a2926812e2,857daa3a-0058-4464-9173-13a2926812e2,1,0,5fb2c120-fd14-4e78-a35f-c8e9478b3235,5fb2c120-fd14-4e78-a35f-c8e9478b3235,1,0,9d514ce1-f9bd-4018-8107-545cdd372fbd,9d514ce1-f9bd-4018-8107-545cdd372fbd,1,0,fe6b732f-3a33-460f-9686-cffdd5f7d99b,fe6b732f-3a33-460f-9686-cffdd5f7d99b,1,0,06250212-aeb1-4cb8-8785-ea71b1dad848,06250212-aeb1-4cb8-8785-ea71b1dad848,1,0,0c068a61-e5e6-4475-96fa-b7c1d825da42,0c068a61-e5e6-4475-96fa-b7c1d825da42,1,0,1047e34d-397a-42cc-80e6-1be755bd6462,1047e34d-397a-42cc-80e6-1be755bd6462,1,0,1cd473c3-4e36-47a9-b466-73d86ec244b0,1cd473c3-4e36-47a9-b466-73d86ec244b0,1,0,c3e31dfd-b79b-49b9-9dc0-e2439bfe5ab7,c3e31dfd-b79b-49b9-9dc0-e2439bfe5ab7,1,0,b406b5f9-eeaf-43a0-8930-067554d783c9,b406b5f9-eeaf-43a0-8930-067554d783c9,1,0,47718840-2939-4e30-a72c-a20c88ac4c17,47718840-2939-4e30-a72c-a20c88ac4c17,1,0,58a38994-9fe4-4783-967d-79d1141b90f3,58a38994-9fe4-4783-967d-79d1141b90f3,1,0,6e23a4b2-f53c-41ea-9fef-8f4561b8e0cc,6e23a4b2-f53c-41ea-9fef-8f4561b8e0cc,1,0,a511f7d7-60ef-4a5c-8f8e-ddbee065eccd,a511f7d7-60ef-4a5c-8f8e-ddbee065eccd,1,0,6fa87b5a-fab0-48b6-b8ab-1aaa8c82d81d,6fa87b5a-fab0-48b6-b8ab-1aaa8c82d81d,1,0,323ef3df-b1cb-4927-a16e-2dbf11e37ae8,323ef3df-b1cb-4927-a16e-2dbf11e37ae8,1,0,e1760aea-29e3-4a45-b02a-b2b96cb73ec4,e1760aea-29e3-4a45-b02a-b2b96cb73ec4,1,0,c2b721a7-1e61-4b72-ba75-f4601d52e98a,c2b721a7-1e61-4b72-ba75-f4601d52e98a,1,0,a4ecd21c-a980-47f8-9944-b1dd7b5a41f3,a4ecd21c-a980-47f8-9944-b1dd7b5a41f3,1,0,dd8c783c-0559-47bb-a089-8fd0783c1a94,dd8c783c-0559-47bb-a089-8fd0783c1a94,1,0,d2855fab-f319-4df8-accc-0727e442bad7,d2855fab-f319-4df8-accc-0727e442bad7,1,0,7c2e35a8-d05d-4e52-baee-a1e13585c502,7c2e35a8-d05d-4e52-baee-a1e13585c502,1,0,5d8b60e5-d407-4d8a-b4fb-e26a36ab8180,5d8b60e5-d407-4d8a-b4fb-e26a36ab8180,1,0,2cea7641-6f1d-4bc7-9d38-8d99f196e0f5,2cea7641-6f1d-4bc7-9d38-8d99f196e0f5,1,0,0093680b-c8bc-472d-8b0d-2e6565fc6c22,0093680b-c8bc-472d-8b0d-2e6565fc6c22,1,0,7fa6a20a-26e2-41ad-be66-a43b50d0bbcd,7fa6a20a-26e2-41ad-be66-a43b50d0bbcd,1,0,5f4456d6-ff0c-425e-9603-c099492d7a6f,5f4456d6-ff0c-425e-9603-c099492d7a6f,1,0,af7c417e-5c10-4146-bde1-40db86c5806f,af7c417e-5c10-4146-bde1-40db86c5806f,1,0,1f018218-2281-4e32-a486-f32386959e5f,1f018218-2281-4e32-a486-f32386959e5f,1,0,7fc26c5a-7d01-487d-aa33-3aa81d51b9a2,7fc26c5a-7d01-487d-aa33-3aa81d51b9a2,1,0,ab5b0155-a4b1-47a1-ad87-12365dde20c1,ab5b0155-a4b1-47a1-ad87-12365dde20c1,1,0,90f3f3c5-4ca9-4c8f-9b73-f67760a6d2f0,90f3f3c5-4ca9-4c8f-9b73-f67760a6d2f0,1,0,f551f78a-2f05-4932-ac33-cfa1b077f46f,f551f78a-2f05-4932-ac33-cfa1b077f46f,1,0,a96091a7-d3a5-4893-8440-f360231bf468,a96091a7-d3a5-4893-8440-f360231bf468,1,0,9ce6eef0-5280-4374-9714-474ac571e4e2,9ce6eef0-5280-4374-9714-474ac571e4e2,1,0,6f21c34c-26aa-493d-aa08-2d4366b4064a,6f21c34c-26aa-493d-aa08-2d4366b4064a,1,0,0f55650a-2422-42a9-8258-61df4c17f1ef,0f55650a-2422-42a9-8258-61df4c17f1ef,1,0,2ef4ea1d-fd86-4ef3-a7e0-73abba89474d,2ef4ea1d-fd86-4ef3-a7e0-73abba89474d,1,0,3eaece9d-c9be-4b0b-a6f6-a3932274b806,3eaece9d-c9be-4b0b-a6f6-a3932274b806,1,0,5d9427ec-981d-4fb5-878b-8dba0d3a5536,5d9427ec-981d-4fb5-878b-8dba0d3a5536,1,0,c5dd6184-96e5-4abc-8c1e-5270e6547ee5,c5dd6184-96e5-4abc-8c1e-5270e6547ee5,1,0,a0047712-5769-495d-97af-20d06751a5b4,a0047712-5769-495d-97af-20d06751a5b4,1,0,e729c3c6-16e5-405b-99b1-a88022300c6d,e729c3c6-16e5-405b-99b1-a88022300c6d,1,0,9c089520-8233-42f6-8eee-9839ac708c6f,9c089520-8233-42f6-8eee-9839ac708c6f,1,0,24f2cfc7-6dc0-400c-8eb2-106ca2ea7034,24f2cfc7-6dc0-400c-8eb2-106ca2ea7034,1,0,5f3ffa44-49be-4da5-ab2a-a35c9bd76dee,5f3ffa44-49be-4da5-ab2a-a35c9bd76dee,1,0,89055896-49dd-4cfd-ab78-8ac3698e12d5,89055896-49dd-4cfd-ab78-8ac3698e12d5,1,0,277ca641-e869-4fcd-8a79-54c451efbbdd,277ca641-e869-4fcd-8a79-54c451efbbdd,1,0,beb07009-6612-4052-a991-888138da8e30,beb07009-6612-4052-a991-888138da8e30,1,0,aeb54e92-a1d0-46a1-b4cb-87d3c29fa30b,aeb54e92-a1d0-46a1-b4cb-87d3c29fa30b,1,0,8395bfb2-3cf4-4bec-b19b-eb6dd3aa7a39,8395bfb2-3cf4-4bec-b19b-eb6dd3aa7a39,1,0,672c4741-6d7b-4d3e-baa7-389bef0625d7,672c4741-6d7b-4d3e-baa7-389bef0625d7,1,0,04398ec0-1c13-43f8-8f5d-7b7619592a4d,04398ec0-1c13-43f8-8f5d-7b7619592a4d,1,0,ce463861-92df-47f2-bd0f-4a2dbf72aacc,ce463861-92df-47f2-bd0f-4a2dbf72aacc,1,0,1220ce92-b964-4fb8-9db0-b4c8c6bdbdf7,1220ce92-b964-4fb8-9db0-b4c8c6bdbdf7,1,0,eca79a64-3d00-4178-b4eb-cf5468622c96,eca79a64-3d00-4178-b4eb-cf5468622c96,1,0,1487d68c-7a2f-48cf-8c80-4074072ed52c,1487d68c-7a2f-48cf-8c80-4074072ed52c,1,0,57502594-74dd-45fe-9234-9a477d5b9741,57502594-74dd-45fe-9234-9a477d5b9741,1,0,6ed8c74c-6b6e-4ed1-95ff-a733f618b213,6ed8c74c-6b6e-4ed1-95ff-a733f618b213,1,0,d97c6536-fd62-4c9a-b83e-490a29a0721b,d97c6536-fd62-4c9a-b83e-490a29a0721b,1,0,93ec2af7-2ca8-4133-8cc0-31073f9bf216,93ec2af7-2ca8-4133-8cc0-31073f9bf216,1,0,60cd8bc4-6a5d-4d36-83d0-76a8477eda6a,60cd8bc4-6a5d-4d36-83d0-76a8477eda6a,1,0,681b27ac-69a5-4c5b-b2c7-285330fe5a4a,681b27ac-69a5-4c5b-b2c7-285330fe5a4a,1,0,6dc4c216-e49f-4833-b45f-6060b67995ef,6dc4c216-e49f-4833-b45f-6060b67995ef,1,0,0753701c-016e-4385-85c0-a485ca50efdc,0753701c-016e-4385-85c0-a485ca50efdc,1,0,c3a6b470-37d5-4499-badb-33b73b52e346,c3a6b470-37d5-4499-badb-33b73b52e346,1,0,24415097-bde5-447a-ac74-bd9bf0eb19fc,24415097-bde5-447a-ac74-bd9bf0eb19fc,1,0,a29d42d6-a448-4940-804d-d1be31da000d,a29d42d6-a448-4940-804d-d1be31da000d,1,0,dd780b76-2a10-40b5-9bcd-7bc8c9b06651,dd780b76-2a10-40b5-9bcd-7bc8c9b06651,1,0,8be6c4a3-d75b-405d-8d98-9baf6f20abb2,8be6c4a3-d75b-405d-8d98-9baf6f20abb2,1,0,7cbd82e3-4bf8-46ab-8504-4bf30523fa2a,7cbd82e3-4bf8-46ab-8504-4bf30523fa2a,1,0,c4b01e52-4136-460d-bd82-970177f1e256,c4b01e52-4136-460d-bd82-970177f1e256,1,0,9533784b-311a-4dbe-b73e-7348aabd387e,9533784b-311a-4dbe-b73e-7348aabd387e,1,0,56bdc69a-d8e8-4da6-a3a5-41ef32bbb626,56bdc69a-d8e8-4da6-a3a5-41ef32bbb626,1,0,c770cd75-f370-4042-9a5a-82b2fc1853cc,c770cd75-f370-4042-9a5a-82b2fc1853cc,1,0,6ee215f9-20ab-4c48-b2c2-cb1869e8906c,6ee215f9-20ab-4c48-b2c2-cb1869e8906c,1,0,b74af9c1-bc44-40ce-b093-d1f548a1742f,b74af9c1-bc44-40ce-b093-d1f548a1742f,1,0,1b401a14-4581-4f24-aaca-5f204f8fcf8b,1b401a14-4581-4f24-aaca-5f204f8fcf8b,1,0,267f7ee6-7b02-4e48-aa1e-145f586edd87,267f7ee6-7b02-4e48-aa1e-145f586edd87,1,0,e1e8ea42-6886-430a-bc59-249259112e6a,e1e8ea42-6886-430a-bc59-249259112e6a,1,0,1e27f3cd-1c9e-4f9f-b2ff-88fb1da37e11,1e27f3cd-1c9e-4f9f-b2ff-88fb1da37e11,1,0,3dcf815c-5c9a-4a78-a42e-7c9ff6faaeb8,3dcf815c-5c9a-4a78-a42e-7c9ff6faaeb8,1,0,1379f050-4f1c-4c41-993e-f7efc71325fb,1379f050-4f1c-4c41-993e-f7efc71325fb,1,0,4655fa12-9169-4d08-bdab-9b3174d0b223,4655fa12-9169-4d08-bdab-9b3174d0b223,1,0,753c70c1-af12-4ec2-ac12-dd1ce33f729f,753c70c1-af12-4ec2-ac12-dd1ce33f729f,1,0,6c07ddfb-8823-4953-9905-9550b847dc3f,6c07ddfb-8823-4953-9905-9550b847dc3f,1,0,2362a8d5-dca2-4527-acc0-63782377f28a,2362a8d5-dca2-4527-acc0-63782377f28a,1,0,dfd6d85c-a734-4458-83b0-87b5949f9c68,dfd6d85c-a734-4458-83b0-87b5949f9c68,1,0,2c2870fd-7a2a-4c0c-8db2-42e961c7be62,2c2870fd-7a2a-4c0c-8db2-42e961c7be62,1,0,46d1eb47-f909-4f07-93f6-d773770a504f,46d1eb47-f909-4f07-93f6-d773770a504f,1,0,600382ec-d6d1-45ad-a052-853dcd4a9b56,600382ec-d6d1-45ad-a052-853dcd4a9b56,1,0,d54d069e-28b2-4a3d-904c-af49eaf0d4d0,d54d069e-28b2-4a3d-904c-af49eaf0d4d0,1,0,36edf443-2719-4860-b8f8-47972361a869,36edf443-2719-4860-b8f8-47972361a869,1,0,95229b1b-6bf5-44c1-89aa-5decf00d6a08,95229b1b-6bf5-44c1-89aa-5decf00d6a08,1,0,00149051-cb5d-404b-9bc7-6347f3f29bf6,00149051-cb5d-404b-9bc7-6347f3f29bf6,1,0,2f62312d-feaa-4fd5-8c31-5490557ff4b3,2f62312d-feaa-4fd5-8c31-5490557ff4b3,1,0,d543b975-4f0c-4bd2-858f-7c9f4e96072a,d543b975-4f0c-4bd2-858f-7c9f4e96072a,1,0,9482e272-b551-4ba5-a27a-06fa0359a8d5,9482e272-b551-4ba5-a27a-06fa0359a8d5,1,0,4e3b0b9f-45b7-48a8-86c6-cc14a921aa78,4e3b0b9f-45b7-48a8-86c6-cc14a921aa78,1,0,79b6ecf5-8a6b-44a4-9587-5f8764463228,79b6ecf5-8a6b-44a4-9587-5f8764463228,1,0,5e4ec9d8-bb60-4dfb-89ba-002527dc149b,5e4ec9d8-bb60-4dfb-89ba-002527dc149b,1,0,6c0cc7b1-d408-4fd1-9b83-71fb5ce001b1,6c0cc7b1-d408-4fd1-9b83-71fb5ce001b1,1,0,a5de65da-c2d5-4219-bc27-a63c4f295b52,a5de65da-c2d5-4219-bc27-a63c4f295b52,1,0,9d6a4fc0-b231-4ef8-8179-9f810ac59cf0,9d6a4fc0-b231-4ef8-8179-9f810ac59cf0,1,0,bf463763-3801-4664-9d04-4d9fd7fe8c43,bf463763-3801-4664-9d04-4d9fd7fe8c43,1,0,c3f59d60-ca4b-4754-9f90-b1e5c76faa80,c3f59d60-ca4b-4754-9f90-b1e5c76faa80,1,0,73cc9301-8ed1-4345-bbdf-ab52b94f4def,73cc9301-8ed1-4345-bbdf-ab52b94f4def,1,0,43a0760f-3635-4e6a-a68a-1a2232245329,43a0760f-3635-4e6a-a68a-1a2232245329,1,0,5c64a4dd-2b9f-4110-abe2-266e6d8638fb,5c64a4dd-2b9f-4110-abe2-266e6d8638fb,1,0,d408d054-86ac-4471-a29d-efed65989899,d408d054-86ac-4471-a29d-efed65989899,1,0,3e979ec3-b544-4e37-8be6-95dce0a2b780,3e979ec3-b544-4e37-8be6-95dce0a2b780,1,0,2444eed3-25c7-4abc-a9a8-f3f3a8201267,2444eed3-25c7-4abc-a9a8-f3f3a8201267,1,0,e91118e9-d054-41a1-bfe9-343179718f33,e91118e9-d054-41a1-bfe9-343179718f33,1,0,042245ef-3a30-46fb-b3e3-6599d5426cbd,042245ef-3a30-46fb-b3e3-6599d5426cbd,1,0,d1034240-ab06-413a-9828-a5c7dc879680,d1034240-ab06-413a-9828-a5c7dc879680,1,0,5dd0f264-6d9f-41e4-92b6-e8b4fa3b4d84,5dd0f264-6d9f-41e4-92b6-e8b4fa3b4d84,1,0,72ea5884-9658-4273-9352-a7e8be81f622,72ea5884-9658-4273-9352-a7e8be81f622,1,0,cd49148c-e385-4b75-a758-a93196e73dba,cd49148c-e385-4b75-a758-a93196e73dba,1,0,ece15c4e-4a4b-421b-9f00-10f698da476b,ece15c4e-4a4b-421b-9f00-10f698da476b,1,0,6cb136cd-dc5c-4d85-8a0d-70b9f8bf70d5,6cb136cd-dc5c-4d85-8a0d-70b9f8bf70d5,1,0,300ecdd6-144f-48c8-9fd4-6166f1de1047,300ecdd6-144f-48c8-9fd4-6166f1de1047,1,0,b6bbfb59-8249-47af-9394-be262f118811,b6bbfb59-8249-47af-9394-be262f118811,1,0,999df397-a730-4110-b253-59fd5583dab9,999df397-a730-4110-b253-59fd5583dab9,1,0,7f7bf652-0375-4f49-94f1-ebe6a00e4e23,7f7bf652-0375-4f49-94f1-ebe6a00e4e23,1,0,12d19666-e996-4b55-b43c-b3a541f849a7,12d19666-e996-4b55-b43c-b3a541f849a7,1,0,15dab650-f7ed-42bc-8ca3-c104c3e68ce4,15dab650-f7ed-42bc-8ca3-c104c3e68ce4,1,0,fb63d488-fb91-4d08-8f8c-f4836538216f,fb63d488-fb91-4d08-8f8c-f4836538216f,1,0,b8be6c09-6880-45d3-a2d1-06ad72d069c9,b8be6c09-6880-45d3-a2d1-06ad72d069c9,1,0,3c1b10c7-3667-43f0-ac03-8cdaa84cb177,3c1b10c7-3667-43f0-ac03-8cdaa84cb177,1,0,148dd521-8754-451b-803b-cbee7c3d3965,148dd521-8754-451b-803b-cbee7c3d3965,1,0,38bc48c7-3938-47be-be3f-844f19561301,38bc48c7-3938-47be-be3f-844f19561301,1,0,4bdd09d5-6bc9-421f-99f0-ae905340f0d4,4bdd09d5-6bc9-421f-99f0-ae905340f0d4,1,0,147038fb-6154-41f3-aad6-547db27d1e43,147038fb-6154-41f3-aad6-547db27d1e43,1,0,832fa9d3-deab-4c57-b6e2-dee5d24d6100,832fa9d3-deab-4c57-b6e2-dee5d24d6100,1,0,dd4270ef-6b4c-491e-8871-959dbec14c53,dd4270ef-6b4c-491e-8871-959dbec14c53,1,0,c2b115d3-04f8-43c8-aed9-c61280b8cc3b,c2b115d3-04f8-43c8-aed9-c61280b8cc3b,1,0,9883862f-c0eb-41fe-9374-05c6d72878bc,9883862f-c0eb-41fe-9374-05c6d72878bc,1,0,61cfdc9a-49c3-4316-b38d-997910cf25c3,61cfdc9a-49c3-4316-b38d-997910cf25c3,1,0,8ccd9be8-ef26-49b9-8cee-03ae4e500386,8ccd9be8-ef26-49b9-8cee-03ae4e500386,1,0,ddca925c-fdcd-40ce-a504-4fca1758de3f,ddca925c-fdcd-40ce-a504-4fca1758de3f,1,0,67feda40-f9d6-4782-bba1-a5e0fccd5350,67feda40-f9d6-4782-bba1-a5e0fccd5350,1,0,9bd92328-8c9c-4882-8956-a1fccf555a64,9bd92328-8c9c-4882-8956-a1fccf555a64,1,0,cafc6b5b-a76a-4b1b-9592-ba440f7bf34f,cafc6b5b-a76a-4b1b-9592-ba440f7bf34f,1,0,e5033559-9d58-4b9b-a739-40c419e82192,e5033559-9d58-4b9b-a739-40c419e82192,1,0,594c79fa-0fdc-41d5-b122-04615dca3752,594c79fa-0fdc-41d5-b122-04615dca3752,1,0,f64de21f-5a7c-4a1a-a929-07fc53049f6c,f64de21f-5a7c-4a1a-a929-07fc53049f6c,1,0,470cdf43-07f4-46d5-aab2-d41f1e5da3cd,470cdf43-07f4-46d5-aab2-d41f1e5da3cd,1,0,ea653eca-f96a-447d-8b09-7a7cb6929ed6,ea653eca-f96a-447d-8b09-7a7cb6929ed6,1,0,4f9b6c01-0919-41ba-91dc-49497d0fecf7,4f9b6c01-0919-41ba-91dc-49497d0fecf7,1,0,e01c575c-51ce-4e06-978b-da59b8bfb029,e01c575c-51ce-4e06-978b-da59b8bfb029,1,0,ea07cd11-418c-4e4f-be9f-c160ee8a64e8,ea07cd11-418c-4e4f-be9f-c160ee8a64e8,1,0,ea868745-71fc-483c-aa6e-f242c06c673f,ea868745-71fc-483c-aa6e-f242c06c673f,1,0,5efc4bc4-b711-4620-8d2e-9d947c6cc141,5efc4bc4-b711-4620-8d2e-9d947c6cc141,1,0,1d8d0eed-caaa-494c-aeea-0df5846fc97a,1d8d0eed-caaa-494c-aeea-0df5846fc97a,1,0,1328947f-91c3-43f4-a11e-f34893d987b3,1328947f-91c3-43f4-a11e-f34893d987b3,1,0,6de9dab4-ee34-4584-a2e7-7a29c86794b0,6de9dab4-ee34-4584-a2e7-7a29c86794b0,1,0,ae52e48c-20ec-43cd-a9a5-b1753558e1d2,ae52e48c-20ec-43cd-a9a5-b1753558e1d2,1,0,5e08154e-bd8b-4e61-8a6c-b5b500f12b99,5e08154e-bd8b-4e61-8a6c-b5b500f12b99,1,0,39af0f4c-0f0d-4e9a-aa63-d0eee3985b4e,39af0f4c-0f0d-4e9a-aa63-d0eee3985b4e,1,0,2b72fe1c-afe1-4905-8db2-2bb1baca6295,2b72fe1c-afe1-4905-8db2-2bb1baca6295,1,0,aa8c4a71-3276-4b83-8be2-3528129e58b3,aa8c4a71-3276-4b83-8be2-3528129e58b3,1,0,4bc4c6db-0ef8-405f-8875-b4cb1540aeb5,4bc4c6db-0ef8-405f-8875-b4cb1540aeb5,1,0,528d3535-f20f-4d3c-8b7d-482d4d626eb0,528d3535-f20f-4d3c-8b7d-482d4d626eb0,1,0,dbd8391c-a174-43d6-a8db-d9ab76b4edbe,dbd8391c-a174-43d6-a8db-d9ab76b4edbe,1,0,e9a2441e-faf9-4158-acc7-b1a6178ae0f3,e9a2441e-faf9-4158-acc7-b1a6178ae0f3,1,0,ea0a498a-a1cb-4f28-88cb-0bc62971172b,ea0a498a-a1cb-4f28-88cb-0bc62971172b,1,0,ce5f5470-b704-4f55-8dc8-17cf2c2b367a,ce5f5470-b704-4f55-8dc8-17cf2c2b367a,1,0,871a75ef-1987-4695-9916-07439aeedc53,871a75ef-1987-4695-9916-07439aeedc53,1,0,ba64deac-5826-43f2-b88a-2e180da87059,ba64deac-5826-43f2-b88a-2e180da87059,1,0,53ee3eb6-d2d1-4fb3-8a78-1fa4543850a1,53ee3eb6-d2d1-4fb3-8a78-1fa4543850a1,1,0,0072986b-0463-4a39-9851-f9adeda99716,0072986b-0463-4a39-9851-f9adeda99716,1,0,fa44433b-1c44-45a0-9487-47aa092442cf,fa44433b-1c44-45a0-9487-47aa092442cf,1,0,041cecfd-cef2-45d9-90e8-afe0d97d2d95,041cecfd-cef2-45d9-90e8-afe0d97d2d95,1,0,0d4a26fb-7176-43f2-8767-d3e227c7306a,0d4a26fb-7176-43f2-8767-d3e227c7306a,1,0,801facc3-3b3b-4d0a-93c6-54a1f3495291,801facc3-3b3b-4d0a-93c6-54a1f3495291,1,0,f10167ac-f7bd-42fb-8daa-864593fcc115,f10167ac-f7bd-42fb-8daa-864593fcc115,1,0,77de81f0-97c5-4751-9f38-f5785c7c45e0,77de81f0-97c5-4751-9f38-f5785c7c45e0,1,0,933cbafc-5667-4a91-8b1d-dca3d7662522,933cbafc-5667-4a91-8b1d-dca3d7662522,1,0,59acaca9-ed29-4927-bee6-287c91934690,59acaca9-ed29-4927-bee6-287c91934690,1,0,9136814a-89e6-4b0f-8ca1-73e4ef29f534,9136814a-89e6-4b0f-8ca1-73e4ef29f534,1,0,d7e4795a-3431-4f7d-9699-4241611adcf0,d7e4795a-3431-4f7d-9699-4241611adcf0,1,0,7e4222fd-fb98-4ae5-9d98-d41c3d572a0c,7e4222fd-fb98-4ae5-9d98-d41c3d572a0c,1,0,37041c83-b1ed-4eec-a011-a2a1788f867e,37041c83-b1ed-4eec-a011-a2a1788f867e,1,0,a138ea0b-b564-46d9-b52a-bc8d2876bc15,a138ea0b-b564-46d9-b52a-bc8d2876bc15,1,0,d9d14a24-c023-4b69-ad57-30d1474e1232,d9d14a24-c023-4b69-ad57-30d1474e1232,1,0,b6e98aee-4936-491d-8c67-8490e1af2e34,b6e98aee-4936-491d-8c67-8490e1af2e34,1,0,0732ab1c-b49a-49ed-8667-65f4427cc301,0732ab1c-b49a-49ed-8667-65f4427cc301,1,0,b292eb46-df87-43c0-9a37-93c5a22af252,b292eb46-df87-43c0-9a37-93c5a22af252,1,0,0943dd00-1653-4760-a9fe-ebc083ffa660,0943dd00-1653-4760-a9fe-ebc083ffa660,1,0,7406da96-2e16-42a0-9522-d76547708eca,7406da96-2e16-42a0-9522-d76547708eca,1,0,ede6a379-b0e5-4b8d-a454-779c0fd8b0b3,ede6a379-b0e5-4b8d-a454-779c0fd8b0b3,1,0,e475a311-7cef-45e2-9ed2-0bded8b5c963,e475a311-7cef-45e2-9ed2-0bded8b5c963,1,0,6179c7bf-08d6-4600-8cdc-ea6d4187bd55,6179c7bf-08d6-4600-8cdc-ea6d4187bd55,1,0,f93c9a7f-0249-421e-b3d0-55f02d130017,f93c9a7f-0249-421e-b3d0-55f02d130017,1,0,062c507a-9d35-4eb5-bb91-d106a535a503,062c507a-9d35-4eb5-bb91-d106a535a503,1,0,ea1284f2-33f1-4e3d-b009-1ffad3aaf300,ea1284f2-33f1-4e3d-b009-1ffad3aaf300,1,0,bd727741-ba99-484d-9d7d-2c2ad7ddd1a5,bd727741-ba99-484d-9d7d-2c2ad7ddd1a5,1,0,90327957-5bdc-4949-883c-9eb50f527b3e,90327957-5bdc-4949-883c-9eb50f527b3e,1,0,031980f5-60e8-426a-9907-3afff75a6b05,031980f5-60e8-426a-9907-3afff75a6b05,1,0,1a26f2d5-2465-484c-9311-12d9b3b92ae3,1a26f2d5-2465-484c-9311-12d9b3b92ae3,1,0,fd317d96-380e-4ee7-a25b-401e8521cc7a,fd317d96-380e-4ee7-a25b-401e8521cc7a,1,0,47091af9-954c-489f-a560-683ca3d6996e,47091af9-954c-489f-a560-683ca3d6996e,1,0,64837ad8-3055-4da3-a39c-0e7db38b6084,64837ad8-3055-4da3-a39c-0e7db38b6084,1,0,695cda1d-b816-4200-9a71-490078a9faa7,695cda1d-b816-4200-9a71-490078a9faa7,1,0,75fc5bea-e239-4de1-ad68-6454876e4b9f,75fc5bea-e239-4de1-ad68-6454876e4b9f,1,0,31ba33d4-5941-4b11-ae99-b15188bfef76,31ba33d4-5941-4b11-ae99-b15188bfef76,1,0,0744e8be-747c-47bb-85f3-58b6f6f9b786,0744e8be-747c-47bb-85f3-58b6f6f9b786,1,0,7142ae5b-ec7b-4a69-9c26-f51e05a4c270,7142ae5b-ec7b-4a69-9c26-f51e05a4c270,1,0,3b380a63-9232-42c2-bfa2-e8fc89448bbd,3b380a63-9232-42c2-bfa2-e8fc89448bbd,1,0,e18b4527-8727-4a10-9e99-a80012debe6c,e18b4527-8727-4a10-9e99-a80012debe6c,1,0,1ed910db-e434-4efd-9b12-c25353a31d5a,1ed910db-e434-4efd-9b12-c25353a31d5a,1,0,10556a26-ea4b-46b4-84d1-175eb13b333f,10556a26-ea4b-46b4-84d1-175eb13b333f,1,0,f1e600b0-55ed-4611-b147-f04d5621796b,f1e600b0-55ed-4611-b147-f04d5621796b,1,0,e3b84128-95e1-45df-84db-5e1791779543,e3b84128-95e1-45df-84db-5e1791779543,1,0,76702e9e-fa7a-4b98-befa-f9b37db2dae0,76702e9e-fa7a-4b98-befa-f9b37db2dae0,1,0,101a4eb3-cdda-47af-8c69-615a6920347a,101a4eb3-cdda-47af-8c69-615a6920347a,1,0,cf19f220-f6d4-4c9e-b5d5-9d94234f0a2c,cf19f220-f6d4-4c9e-b5d5-9d94234f0a2c,1,0,e9d95895-8708-4035-89ad-72573b870491,e9d95895-8708-4035-89ad-72573b870491,1,0,f410a5db-8698-44ca-9ff6-2c530e1f5c2a,f410a5db-8698-44ca-9ff6-2c530e1f5c2a,1,0,f79bada2-838f-4e4f-a017-935cf671a70c,f79bada2-838f-4e4f-a017-935cf671a70c,1,0,312118ff-a2a4-479c-964a-5250cca0cd20,312118ff-a2a4-479c-964a-5250cca0cd20,1,0,355eb7bc-651a-4b24-abcd-61bb83222b7e,355eb7bc-651a-4b24-abcd-61bb83222b7e,1,0,f8d32d21-ea2f-42bb-a785-9bd3cf754cd9,f8d32d21-ea2f-42bb-a785-9bd3cf754cd9,1,0,3f3a0b1b-04ce-47c1-928d-5e3483e9fd73,3f3a0b1b-04ce-47c1-928d-5e3483e9fd73,1,0,8a310493-c06f-46db-b2b5-14d6ed203312,8a310493-c06f-46db-b2b5-14d6ed203312,1,0,caf8f0e8-7a2c-498b-9b74-ed6b87cce670,caf8f0e8-7a2c-498b-9b74-ed6b87cce670,1,0,b68ec95b-64f3-4a2b-9683-231d50f01eeb,b68ec95b-64f3-4a2b-9683-231d50f01eeb,1,0,89318397-b3a6-4468-985b-ed5cb8ab5cdb,89318397-b3a6-4468-985b-ed5cb8ab5cdb,1,0,4e6734a0-3bf8-4e71-bd38-5526819609f4,4e6734a0-3bf8-4e71-bd38-5526819609f4,1,0,5e5b0ad7-ef73-4a73-baf5-360a9244a1cc,5e5b0ad7-ef73-4a73-baf5-360a9244a1cc,1,0,4a008342-f72f-4ca1-bad1-64b59b509911,4a008342-f72f-4ca1-bad1-64b59b509911,1,0,4436b2cf-2d71-401f-99fd-012ff0c91fbd,4436b2cf-2d71-401f-99fd-012ff0c91fbd,1,0,cefa1723-a4d4-44c4-bd57-ffa713f9306c,cefa1723-a4d4-44c4-bd57-ffa713f9306c,1,0,5d75aae8-9d9c-4a47-b8c0-2ce56431fe53,5d75aae8-9d9c-4a47-b8c0-2ce56431fe53,1,0,5396be45-d7c0-43df-aed4-cad062a02b11,5396be45-d7c0-43df-aed4-cad062a02b11,1,0,017e3da8-e48e-488b-9bbf-4fef1a4f3417,017e3da8-e48e-488b-9bbf-4fef1a4f3417,1,0,de4d37c9-b278-4c0c-bc10-1b63ecd72947,de4d37c9-b278-4c0c-bc10-1b63ecd72947,1,0,aebf163d-d8e8-492a-a973-8cb51982d475,aebf163d-d8e8-492a-a973-8cb51982d475,1,0,05d5befc-493c-4939-a364-ccbf5e11f924,05d5befc-493c-4939-a364-ccbf5e11f924,1,0,5a741cf6-8160-4409-9396-2e6d1e67e6fa,5a741cf6-8160-4409-9396-2e6d1e67e6fa,1,0,4920aabf-6f53-4f91-932a-8ace24631a74,4920aabf-6f53-4f91-932a-8ace24631a74,1,0,ce7a7f72-9d7d-4240-b852-e83b4b8d944b,ce7a7f72-9d7d-4240-b852-e83b4b8d944b,1,0,7531fb7c-a4ae-42df-b8e5-d8bfcb66be52,7531fb7c-a4ae-42df-b8e5-d8bfcb66be52,1,0,d9e98c14-9b07-406b-92c8-bec76165e028,d9e98c14-9b07-406b-92c8-bec76165e028,1,0,94d9b16a-136a-4472-a178-baa7824e9681,94d9b16a-136a-4472-a178-baa7824e9681,1,0,7309e58d-b0d4-4e0f-a74d-68cab03fea8e,7309e58d-b0d4-4e0f-a74d-68cab03fea8e,1,0,9bb33b9f-0a27-4edd-b3b2-1c20a75d0f20,9bb33b9f-0a27-4edd-b3b2-1c20a75d0f20,1,0,bbec9c3d-31dd-484e-ab32-41ef845f1370,bbec9c3d-31dd-484e-ab32-41ef845f1370,1,0,8692ba41-d91d-4af0-8aba-69dd5409d593,8692ba41-d91d-4af0-8aba-69dd5409d593,1,0,7abb55d2-eac6-44a0-9ebc-fa26a7f0c028,7abb55d2-eac6-44a0-9ebc-fa26a7f0c028,1,0,bdafe976-c8d6-413a-8d61-765a02014e5d,bdafe976-c8d6-413a-8d61-765a02014e5d,1,0,22ddedc0-a20c-4253-8c1f-22e5ab784987,22ddedc0-a20c-4253-8c1f-22e5ab784987,1,0,6fc11eb6-ee52-425c-a311-516d0edbb680,6fc11eb6-ee52-425c-a311-516d0edbb680,1,0,68e207e7-8c20-426d-8a0e-c3dd4d683631,68e207e7-8c20-426d-8a0e-c3dd4d683631,1,0,6d7fa2f9-7ca4-4ad6-b94b-8267768a0f04,6d7fa2f9-7ca4-4ad6-b94b-8267768a0f04,1,0,5cc3a29d-aa98-42bf-9800-f584229c8e46,5cc3a29d-aa98-42bf-9800-f584229c8e46,1,0,a95b564a-c895-40f2-b947-ea08462bb2a0,a95b564a-c895-40f2-b947-ea08462bb2a0,1,0,1e015740-5b45-4729-9732-57359a7c602f,1e015740-5b45-4729-9732-57359a7c602f,1,0,6eb6003c-71cb-4be8-a375-abd5c9f7336b,6eb6003c-71cb-4be8-a375-abd5c9f7336b,1,0,ca63ca2f-703d-4317-8c5d-0650ea638f3f,ca63ca2f-703d-4317-8c5d-0650ea638f3f,1,0,aa2256c7-9847-40a5-9e49-11c508e0d45b,aa2256c7-9847-40a5-9e49-11c508e0d45b,1,0,a04493f4-508c-4047-b0e3-b7d4bde6427b,a04493f4-508c-4047-b0e3-b7d4bde6427b,1,0,6c138ffd-057f-4f7d-af4d-1b1a589a9057,6c138ffd-057f-4f7d-af4d-1b1a589a9057,1,0,418982cd-d403-47cf-a7ef-993a36104947,418982cd-d403-47cf-a7ef-993a36104947,1,0,485ebc6a-0e3e-4278-8ef1-c6194d6d5015,485ebc6a-0e3e-4278-8ef1-c6194d6d5015,1,0,816c8143-8b02-4f4a-8eb1-44c7fb36afcc,816c8143-8b02-4f4a-8eb1-44c7fb36afcc,1,0,35eea3b8-d017-442a-b5a0-a1571165b9a9,35eea3b8-d017-442a-b5a0-a1571165b9a9,1,0,7e84901c-cb7f-437c-a135-0902cd47acb6,7e84901c-cb7f-437c-a135-0902cd47acb6,1,0,584637f2-9d4f-4972-bbe8-aba9bf0853bc,584637f2-9d4f-4972-bbe8-aba9bf0853bc,1,0,69530795-5a90-47b0-ae8d-a44b420b51f6,69530795-5a90-47b0-ae8d-a44b420b51f6,1,0,da2b47f5-4109-4f72-a4a5-70be24a6881f,da2b47f5-4109-4f72-a4a5-70be24a6881f,1,0,849f034e-85dc-4515-aae6-240c1e0d46d9,849f034e-85dc-4515-aae6-240c1e0d46d9,1,0,5fbea8c7-48e3-4ed0-a8d0-cf942b37a166,5fbea8c7-48e3-4ed0-a8d0-cf942b37a166,1,0,d7f68340-663c-49f2-b02b-e71501515a60,d7f68340-663c-49f2-b02b-e71501515a60,1,0,d85ba2d1-63e9-4680-bd88-6c0c4dba5d0f,d85ba2d1-63e9-4680-bd88-6c0c4dba5d0f,1,0,acfa1919-07ce-4464-8552-6b104e284dca,acfa1919-07ce-4464-8552-6b104e284dca,1,0,cd74d617-8ebe-4a7d-b011-38c98d856d8c,cd74d617-8ebe-4a7d-b011-38c98d856d8c,1,0,f4cff4ff-68e9-4072-971e-1b359d3aa980,f4cff4ff-68e9-4072-971e-1b359d3aa980,1,0,f9a5bd40-7c56-4ced-bddb-a66c1fc31b81,f9a5bd40-7c56-4ced-bddb-a66c1fc31b81,1,0,fdb012c9-583a-42af-95da-070e75a58078,fdb012c9-583a-42af-95da-070e75a58078,1,0,7d069b11-cddd-463d-97be-3cbeaaf0954c,7d069b11-cddd-463d-97be-3cbeaaf0954c,1,0,8c5fae4c-b5b6-4e05-9453-4ac5de07c54c,8c5fae4c-b5b6-4e05-9453-4ac5de07c54c,1,0,5ea4412e-0ce0-4176-917b-37817ed788e1,5ea4412e-0ce0-4176-917b-37817ed788e1,1,0,8242daae-181a-47df-b28e-c1de3fce0359,8242daae-181a-47df-b28e-c1de3fce0359,1,0,bd206271-1388-4759-8992-da81507613be,bd206271-1388-4759-8992-da81507613be,1,0,8de2c020-0ebe-4374-93d7-d2e19ed82470,8de2c020-0ebe-4374-93d7-d2e19ed82470,1,0,d1b950b0-dd66-49f9-998e-3ae5e820ae7f,d1b950b0-dd66-49f9-998e-3ae5e820ae7f,1,0,57e39881-cbf9-4cac-9ed0-bf4a6ea667ee,57e39881-cbf9-4cac-9ed0-bf4a6ea667ee,1,0,b9004626-915c-44c8-9cb7-25e5b627ee83,b9004626-915c-44c8-9cb7-25e5b627ee83,1,0,c45fcf7f-5676-4a96-a73c-a6d9d98ac46b,c45fcf7f-5676-4a96-a73c-a6d9d98ac46b,1,0,1a3eff9b-6598-4e11-9b8f-81249c53abec,1a3eff9b-6598-4e11-9b8f-81249c53abec,1,0,63c6cfad-124d-491a-829d-b298463c95e6,63c6cfad-124d-491a-829d-b298463c95e6,1,0,3da31d2f-24dd-469b-bd3b-073fa3b3d585,3da31d2f-24dd-469b-bd3b-073fa3b3d585,1,0,33b12dd8-7a86-4a51-bd3d-4911ec1ffde4,33b12dd8-7a86-4a51-bd3d-4911ec1ffde4,1,0,11c610f5-0f5d-49aa-9015-4a514dfcf515,11c610f5-0f5d-49aa-9015-4a514dfcf515,1,0,1e020429-ac68-46f4-b34c-c2c4a2b494f6,1e020429-ac68-46f4-b34c-c2c4a2b494f6,1,0,1c1a5bf8-bbe6-4a69-973e-11445175dac2,1c1a5bf8-bbe6-4a69-973e-11445175dac2,1,0,f11ffcfd-3588-4785-b222-cebe80455303,f11ffcfd-3588-4785-b222-cebe80455303,1,0,789a2027-8601-434c-bf47-37696a3966ad,789a2027-8601-434c-bf47-37696a3966ad,1,0,f71eceb3-ef2e-4e6c-bf9c-e7e7d42c1c7c,f71eceb3-ef2e-4e6c-bf9c-e7e7d42c1c7c,1,0,b91b1b08-f35d-40b2-83d8-ecc761124b05,b91b1b08-f35d-40b2-83d8-ecc761124b05,1,0,5fb7ebb4-e2ce-40ae-aa1c-9351dc66919b,5fb7ebb4-e2ce-40ae-aa1c-9351dc66919b,1,0,1c7e9baa-7728-4afd-829a-806cee13ecdb,1c7e9baa-7728-4afd-829a-806cee13ecdb,1,0,5d216c28-0724-4e7d-86cf-b6f75e7e28b7,5d216c28-0724-4e7d-86cf-b6f75e7e28b7,1,0,bfdc6346-db5b-427f-acca-9b48db8fefd0,bfdc6346-db5b-427f-acca-9b48db8fefd0,1,0,1c3f258c-345e-47f6-9e29-98b1222fb348,1c3f258c-345e-47f6-9e29-98b1222fb348,1,0,dfafcdf3-cdeb-4822-9f41-a730d9d3fb24,dfafcdf3-cdeb-4822-9f41-a730d9d3fb24,1,0,4c3085e1-2f86-4af4-a392-ab45e30a7152,4c3085e1-2f86-4af4-a392-ab45e30a7152,1,0,4e6989e6-67ac-4c3c-994d-0c3941cc1156,4e6989e6-67ac-4c3c-994d-0c3941cc1156,1,0,35c938f4-065f-47f5-a75b-637ed0080725,35c938f4-065f-47f5-a75b-637ed0080725,1,0,89cc9ae4-e933-4f4a-849f-48ef67b75819,89cc9ae4-e933-4f4a-849f-48ef67b75819,1,0,36e096be-ee28-437a-b8f2-c1e274c150e3,36e096be-ee28-437a-b8f2-c1e274c150e3,1,0,6e215f9e-4e41-4c11-80de-04023f792ad6,6e215f9e-4e41-4c11-80de-04023f792ad6,1,0,160e9608-7301-4572-af02-6a7cceca1560,160e9608-7301-4572-af02-6a7cceca1560,1,0,4a70416b-6598-4239-be70-2c0c8255388a,4a70416b-6598-4239-be70-2c0c8255388a,1,0,f6b69c2b-e32a-477f-9128-b61d8237290e,f6b69c2b-e32a-477f-9128-b61d8237290e,1,0,f6b8e6ae-7d3e-4f6c-bd74-66ee7593868c,f6b8e6ae-7d3e-4f6c-bd74-66ee7593868c,1,0,1682d528-87bf-48c5-acf9-57ab654a615a,1682d528-87bf-48c5-acf9-57ab654a615a,1,0,e730ea3f-4f2a-4e21-8851-bccc51830cfe,e730ea3f-4f2a-4e21-8851-bccc51830cfe,1,0,193ab4a7-7eee-4374-95cf-2d907a3ba971,193ab4a7-7eee-4374-95cf-2d907a3ba971,1,0,e2779397-46ed-4d95-8529-45896f9567d2,e2779397-46ed-4d95-8529-45896f9567d2,1,0,3002d5d8-1b7d-4252-9e5d-9a533bf03ca8,3002d5d8-1b7d-4252-9e5d-9a533bf03ca8,1,0,e14c0841-226c-4c79-bec9-cfc8d2c3a160,e14c0841-226c-4c79-bec9-cfc8d2c3a160,1,0,d05bbd02-9db3-4830-be9d-7080f3506e01,d05bbd02-9db3-4830-be9d-7080f3506e01,1,0,1ff8210b-26c5-4429-b580-7c6ec7c9b63a,1ff8210b-26c5-4429-b580-7c6ec7c9b63a,1,0,7e3283df-05a6-4dc5-a786-056c71bdbf6f,7e3283df-05a6-4dc5-a786-056c71bdbf6f,1,0,c6af8b0f-3767-4198-88e2-f5763cb0294a,c6af8b0f-3767-4198-88e2-f5763cb0294a,1,0,6f3c5b90-b030-4267-a973-33d12c2c7680,6f3c5b90-b030-4267-a973-33d12c2c7680,1,0,88b879b7-1bb3-4478-b569-35bdb5c56939,88b879b7-1bb3-4478-b569-35bdb5c56939,1,0,b9e93e8f-1d4b-4bbb-ac1b-c8d26cfd1da2,b9e93e8f-1d4b-4bbb-ac1b-c8d26cfd1da2,1,0,7a62d031-c340-4b1e-90af-fff697a2e979,7a62d031-c340-4b1e-90af-fff697a2e979,1,0,faf89779-2290-4d37-b1ea-e81b1b79f74c,faf89779-2290-4d37-b1ea-e81b1b79f74c,1,0,18bf6916-83cc-41e5-a35b-1489450ae632,18bf6916-83cc-41e5-a35b-1489450ae632,1,0,ac847dc9-e222-45cf-af4a-6fa863c919a8,ac847dc9-e222-45cf-af4a-6fa863c919a8,1,0,a5cc5ae2-be80-4957-8aca-9e477433dfcc,a5cc5ae2-be80-4957-8aca-9e477433dfcc,1,0,62fa393c-687c-49bf-8a25-81adc04430fb,62fa393c-687c-49bf-8a25-81adc04430fb,1,0,13fcf1e8-730e-436f-b316-6bcb8301f894,13fcf1e8-730e-436f-b316-6bcb8301f894,1,0,fa548f02-82e0-4897-89e8-0618ebf16919,fa548f02-82e0-4897-89e8-0618ebf16919,1,0,8c28a5b0-517f-48fe-9bde-5e611c319413,8c28a5b0-517f-48fe-9bde-5e611c319413,1,0,904e1209-91d8-49b1-b291-364ef728cbbf,904e1209-91d8-49b1-b291-364ef728cbbf,1,0,4a0d7cd7-8e43-4a1f-88b8-ffc376b38f7c,4a0d7cd7-8e43-4a1f-88b8-ffc376b38f7c,1,0,1198f2ee-b8a8-456d-9461-61bc5d42c7a1,1198f2ee-b8a8-456d-9461-61bc5d42c7a1,1,0,b8ecb7f0-ef40-4d31-9ec2-a731439d3200,b8ecb7f0-ef40-4d31-9ec2-a731439d3200,1,0,e4da2959-0fb0-48fb-a5aa-e7a5589d69c3,e4da2959-0fb0-48fb-a5aa-e7a5589d69c3,1,0,e000d04e-37eb-4d95-a833-b0a9b10ee0b9,e000d04e-37eb-4d95-a833-b0a9b10ee0b9,1,0,23314bcd-2dd4-43f1-9fdb-ae182a48c886,23314bcd-2dd4-43f1-9fdb-ae182a48c886,1,0,c5f86fa3-4a36-4e22-8b57-7088dd250cd3,c5f86fa3-4a36-4e22-8b57-7088dd250cd3,1,0,5b3b3da9-8619-4fbd-b140-3528875cd179,5b3b3da9-8619-4fbd-b140-3528875cd179,1,0,99e5e866-7ac6-4916-ab66-3e2909822c56,99e5e866-7ac6-4916-ab66-3e2909822c56,1,0,03363877-2752-4a03-95f2-d73b732e0bfd,03363877-2752-4a03-95f2-d73b732e0bfd,1,0,0b0d2b7c-d52e-4163-83cf-a7e86bb47c47,0b0d2b7c-d52e-4163-83cf-a7e86bb47c47,1,0,78051e10-74ab-44be-adca-e4c93824a386,78051e10-74ab-44be-adca-e4c93824a386,1,0,73629419-83d8-4727-88a9-76c851d104c9,73629419-83d8-4727-88a9-76c851d104c9,1,0,cadb54f0-dcff-4f96-983e-a309fd72f330,cadb54f0-dcff-4f96-983e-a309fd72f330,1,0,a9c3065b-db68-4f59-9235-33f9fbfdaafd,a9c3065b-db68-4f59-9235-33f9fbfdaafd,1,0,3715cf3d-0abc-4711-8ac9-d41f0be7878f,3715cf3d-0abc-4711-8ac9-d41f0be7878f,1,0,8e8d8078-8b32-4c24-b26e-89a92bf60160,8e8d8078-8b32-4c24-b26e-89a92bf60160,1,0,e6af9db4-b93f-422e-846c-e6c5fd33f992,e6af9db4-b93f-422e-846c-e6c5fd33f992,1,0,2895ac1f-5f15-422d-9d90-2df87255a92a,2895ac1f-5f15-422d-9d90-2df87255a92a,1,0,f96cbb27-7619-41e0-8577-e623ef02dc58,f96cbb27-7619-41e0-8577-e623ef02dc58,1,0,ed5ff5b0-f980-4b9a-9299-eef68e3b42d5,ed5ff5b0-f980-4b9a-9299-eef68e3b42d5,1,0,d74dfd31-2016-435b-8652-15fdbca59490,d74dfd31-2016-435b-8652-15fdbca59490,1,0,ba8111a9-1d33-4615-ad0b-b3e923b2f3bd,ba8111a9-1d33-4615-ad0b-b3e923b2f3bd,1,0,27651e0e-d560-434b-a49c-f473a5b20c4d,27651e0e-d560-434b-a49c-f473a5b20c4d,1,0,dab1491b-0685-442d-b945-2bfde3f37933,dab1491b-0685-442d-b945-2bfde3f37933,1,0,42107b14-9373-418a-a41d-35c87434c51a,42107b14-9373-418a-a41d-35c87434c51a,1,0,24d8ce8d-e94c-4168-abad-d0ce5e6cbf1b,24d8ce8d-e94c-4168-abad-d0ce5e6cbf1b,1,0,8786575a-eab6-46bf-be3a-167e2d5b41dd,8786575a-eab6-46bf-be3a-167e2d5b41dd,1,0,ce85554b-81ba-4149-a951-d09bdc14fa16,ce85554b-81ba-4149-a951-d09bdc14fa16,1,0,23a1ef35-1469-44ea-8535-fa9c7f535cae,23a1ef35-1469-44ea-8535-fa9c7f535cae,1,0,9ff1c73e-71be-4ea6-97fb-e710d995ee62,9ff1c73e-71be-4ea6-97fb-e710d995ee62,1,0,50f7effb-e051-49dd-8b56-0771dda350cc,50f7effb-e051-49dd-8b56-0771dda350cc,1,0,8c7d74bf-2865-47d9-8a16-5b0db1104a3a,8c7d74bf-2865-47d9-8a16-5b0db1104a3a,1,0,2558d812-ac0a-49ba-87db-3f661209a3c4,2558d812-ac0a-49ba-87db-3f661209a3c4,1,0,20d712ef-77c1-4374-92e1-f20a3ebc7eab,20d712ef-77c1-4374-92e1-f20a3ebc7eab,1,0,65d23ce8-e326-45ee-86b0-6dcf35797201,65d23ce8-e326-45ee-86b0-6dcf35797201,1,0,a2683c3f-1b21-47d8-951d-7d30cde51efc,a2683c3f-1b21-47d8-951d-7d30cde51efc,1,0,54c77053-1728-4914-a354-73fe8853a0e1,54c77053-1728-4914-a354-73fe8853a0e1,1,0,21136691-078f-4bf7-bddd-f41416a76d86,21136691-078f-4bf7-bddd-f41416a76d86,1,0,9d669d30-a0af-4095-852a-96b4224ee933,9d669d30-a0af-4095-852a-96b4224ee933,1,0,590aba18-7d56-48e3-9454-5f2882a32f80,590aba18-7d56-48e3-9454-5f2882a32f80,1,0,30a121c7-c4f5-45c4-9504-9778ed85d9e3,30a121c7-c4f5-45c4-9504-9778ed85d9e3,1,0,c68e2157-2541-4f80-966a-d68ce603f131,c68e2157-2541-4f80-966a-d68ce603f131,1,0,18363a37-28b0-488b-a7d6-54d3596d2a6d,18363a37-28b0-488b-a7d6-54d3596d2a6d,1,0,e5f401b5-4672-4529-a8dd-6d819f3f269c,e5f401b5-4672-4529-a8dd-6d819f3f269c,1,0,126d5d78-a2b0-4c16-b429-bf8d251280e7,126d5d78-a2b0-4c16-b429-bf8d251280e7,1,0,f8f96dce-913c-4858-bcb7-dcfe3dc2f72e,f8f96dce-913c-4858-bcb7-dcfe3dc2f72e,1,0,c96b58a2-db6e-4a0f-82fd-fc115a169b18,c96b58a2-db6e-4a0f-82fd-fc115a169b18,1,0,70d93c88-c9e9-4b8e-b8f3-ef07c665ab5d,70d93c88-c9e9-4b8e-b8f3-ef07c665ab5d,1,0,12443114-1931-4eb7-968a-7dbe166b7298,12443114-1931-4eb7-968a-7dbe166b7298,1,0,0080c29d-ec54-43a8-aab8-c67e0279b6b7,0080c29d-ec54-43a8-aab8-c67e0279b6b7,1,0,a0271f6e-dc70-4dfe-a395-203e8a89f933,a0271f6e-dc70-4dfe-a395-203e8a89f933,1,0,e5dfee58-f748-48ee-81a3-7c6133f06365,e5dfee58-f748-48ee-81a3-7c6133f06365,1,0,5e52dfe6-5a98-4a32-9429-5f44bf442367,5e52dfe6-5a98-4a32-9429-5f44bf442367,1,0,9518b3f5-b478-4a82-b884-d2d0947197a6,9518b3f5-b478-4a82-b884-d2d0947197a6,1,0,c1f36917-64aa-4de0-8a30-53bb011f151e,c1f36917-64aa-4de0-8a30-53bb011f151e,1,0,9aa0a0cb-9547-4868-9495-b00f3ecd2b3a,9aa0a0cb-9547-4868-9495-b00f3ecd2b3a,1,0,a9e31d90-fe65-47c3-8109-6e1eae862f53,a9e31d90-fe65-47c3-8109-6e1eae862f53,1,0,68500931-89e0-491e-aba8-b013c9e6f8c3,68500931-89e0-491e-aba8-b013c9e6f8c3,1,0,70b79e56-bb71-4f38-93cf-94dda79d9b4c,70b79e56-bb71-4f38-93cf-94dda79d9b4c,1,0,e678bb94-3cb1-4706-8e76-4fada4d5036c,e678bb94-3cb1-4706-8e76-4fada4d5036c,1,0,5c4c9931-3fb0-47a8-9e4f-d552de12b355,5c4c9931-3fb0-47a8-9e4f-d552de12b355,1,0,dc1d0f97-e2f3-4e1d-b21c-411b46e39848,dc1d0f97-e2f3-4e1d-b21c-411b46e39848,1,0,2a498baf-ec2e-4dda-b568-801bb60db225,2a498baf-ec2e-4dda-b568-801bb60db225,1,0,8a32af97-cdb5-46b4-ab7b-e1509e26ecc3,8a32af97-cdb5-46b4-ab7b-e1509e26ecc3,1,0,9f59f8cd-8d61-4fbc-ae6e-32f28ce0035a,9f59f8cd-8d61-4fbc-ae6e-32f28ce0035a,1,0,f987ca28-545b-4540-9e36-b0daa67dc3cb,f987ca28-545b-4540-9e36-b0daa67dc3cb,1,0,70f156d8-9cb4-442d-a36b-7a43d03bcd12,70f156d8-9cb4-442d-a36b-7a43d03bcd12,1,0,35989876-16b1-4b02-9381-444a06a7a21d,35989876-16b1-4b02-9381-444a06a7a21d,1,0,f7608000-1e8a-4ca4-afb7-e04ef547b70a,f7608000-1e8a-4ca4-afb7-e04ef547b70a,1,0,f0a6de82-45ab-4153-bccf-df82fc960aa1,f0a6de82-45ab-4153-bccf-df82fc960aa1,1,0,26cea519-19d0-4707-be0a-1a43fde6e563,26cea519-19d0-4707-be0a-1a43fde6e563,1,0,9fb3e902-3154-4bab-9bfe-9a266dc49fa5,9fb3e902-3154-4bab-9bfe-9a266dc49fa5,1,0,7ea3206a-2a16-460d-ad6d-849103f50bdb,7ea3206a-2a16-460d-ad6d-849103f50bdb,1,0,eb35bff2-8467-48fe-bf93-ece2aa40f506,eb35bff2-8467-48fe-bf93-ece2aa40f506,1,0,f26bdf61-8dc9-47e3-bc13-e6b7d8252ebd,f26bdf61-8dc9-47e3-bc13-e6b7d8252ebd,1,0,10302ca9-850c-4561-a774-d099c20b1919,10302ca9-850c-4561-a774-d099c20b1919,1,0,c62c30d6-ffac-43e0-bb20-25fa8eeb62fd,c62c30d6-ffac-43e0-bb20-25fa8eeb62fd,1,0,d693bfcf-e117-445b-b0e1-d895bc5227c4,d693bfcf-e117-445b-b0e1-d895bc5227c4,1,0,68cf55da-b29e-4a65-815b-c9cdc8e5888e,68cf55da-b29e-4a65-815b-c9cdc8e5888e,1,0,967bf537-f742-4d9a-95ff-afaa5525a2f0,967bf537-f742-4d9a-95ff-afaa5525a2f0,1,0,a9f927ef-22a2-4d77-8648-4bb25eeaccf2,a9f927ef-22a2-4d77-8648-4bb25eeaccf2,1,0,1041ed81-c1f7-43b2-9087-914865a3076e,1041ed81-c1f7-43b2-9087-914865a3076e,1,0,5d7174d2-42b3-4e12-b705-4209dd73b53b,5d7174d2-42b3-4e12-b705-4209dd73b53b,1,0,b1b5bf08-1c57-4875-87bb-ad1fa1a3251f,b1b5bf08-1c57-4875-87bb-ad1fa1a3251f,1,0,e00dcab4-5e92-44e3-bcdf-a31dd32a195f,e00dcab4-5e92-44e3-bcdf-a31dd32a195f,1,0,0508e7ab-3dd9-42b4-9542-089ce0656bbb,0508e7ab-3dd9-42b4-9542-089ce0656bbb,1,0,cfe59dfd-a509-4f83-b926-b3ff94234a43,cfe59dfd-a509-4f83-b926-b3ff94234a43,1,0,17df1591-61b0-4204-8379-8d1f58445968,17df1591-61b0-4204-8379-8d1f58445968,1,0,9020fa9d-e7de-4574-ab65-db6651b5b610,9020fa9d-e7de-4574-ab65-db6651b5b610,1,0,fd5e72f7-3078-48eb-b01b-1800ffbd86d3,fd5e72f7-3078-48eb-b01b-1800ffbd86d3,1,0,e83ad33d-27df-4181-afd2-b7f416e6e705,e83ad33d-27df-4181-afd2-b7f416e6e705,1,0,ddeec7f4-8bd3-40af-bcac-00d18c0e6d6a,ddeec7f4-8bd3-40af-bcac-00d18c0e6d6a,1,0,f0438b0a-7916-4de4-a3a8-d43407c3295f,f0438b0a-7916-4de4-a3a8-d43407c3295f,1,0,3309648c-aae6-4684-ae8d-7ed636bc3468,3309648c-aae6-4684-ae8d-7ed636bc3468,1,0,f9aa933e-6684-48de-b802-96c8e61b1fe6,f9aa933e-6684-48de-b802-96c8e61b1fe6,1,0,2e3cdbed-3f52-4f6e-883e-9e7d30c67099,2e3cdbed-3f52-4f6e-883e-9e7d30c67099,1,0,f41e5a5b-394b-423a-bee5-ed4d1da0be71,f41e5a5b-394b-423a-bee5-ed4d1da0be71,1,0,23db175f-ddfb-4af7-9c0c-232b6adb7daf,23db175f-ddfb-4af7-9c0c-232b6adb7daf,1,0,9de4d430-95ec-4435-b3e8-4fc85778d517,9de4d430-95ec-4435-b3e8-4fc85778d517,1,0,205b8908-fa21-42bd-bff0-fb95e6787f15,205b8908-fa21-42bd-bff0-fb95e6787f15,1,0,4e309f26-35e8-49d9-bbd1-c7884e666dca,4e309f26-35e8-49d9-bbd1-c7884e666dca,1,0,84f05fe4-51d3-49a8-83e7-1cae2028147e,84f05fe4-51d3-49a8-83e7-1cae2028147e,1,0,8a9ab11b-5bb5-4da9-9053-8f9e8198d019,8a9ab11b-5bb5-4da9-9053-8f9e8198d019,1,0,5320abf1-b09b-4de0-9adf-4cb1da31df6f,5320abf1-b09b-4de0-9adf-4cb1da31df6f,1,0,c382ee3a-d0a8-4ed8-ac88-5558b631f448,c382ee3a-d0a8-4ed8-ac88-5558b631f448,1,0,3916ddbd-9023-42a4-849e-9cda6e591408,3916ddbd-9023-42a4-849e-9cda6e591408,1,0,5e9e42c5-dcbc-422f-acce-4f11a63dbb85,5e9e42c5-dcbc-422f-acce-4f11a63dbb85,1,0,6903ffe4-42c1-4708-a1b0-bb67cd3f9e4c,6903ffe4-42c1-4708-a1b0-bb67cd3f9e4c,1,0,3e453cca-aac3-4ff3-bb15-32c09f43e7b2,3e453cca-aac3-4ff3-bb15-32c09f43e7b2,1,0,49bcd9e6-f312-4bb6-959a-242b73907591,49bcd9e6-f312-4bb6-959a-242b73907591,1,0,8e36227c-c0aa-43c4-93ad-e78701248fb1,8e36227c-c0aa-43c4-93ad-e78701248fb1,1,0,f135b60e-6d28-4ba1-acd7-76090f14855d,f135b60e-6d28-4ba1-acd7-76090f14855d,1,0,5b105084-c4ba-4ff6-9196-8b3e3a9991e2,5b105084-c4ba-4ff6-9196-8b3e3a9991e2,1,0,f78ffd16-5bd4-421a-99af-9cf5f126d960,f78ffd16-5bd4-421a-99af-9cf5f126d960,1,0,2bd23dd2-8107-410f-8137-3d022546594b,2bd23dd2-8107-410f-8137-3d022546594b,1,0,e8cc4e0f-e9c2-4a24-a50e-f5be5ed21019,e8cc4e0f-e9c2-4a24-a50e-f5be5ed21019,1,0,3f09badb-70bd-4996-822f-2e2e9524f09d,3f09badb-70bd-4996-822f-2e2e9524f09d,1,0,aca89232-c531-47ca-a82e-e7bfadd56674,aca89232-c531-47ca-a82e-e7bfadd56674,1,0,4b8927df-e124-4bf6-9d70-6e91b4796d90,4b8927df-e124-4bf6-9d70-6e91b4796d90,1,0,871b63a2-c7a6-4343-8d8b-7dda1b0def87,871b63a2-c7a6-4343-8d8b-7dda1b0def87,1,0,52b45b3d-b01b-4aac-8a1e-e256957c39c3,52b45b3d-b01b-4aac-8a1e-e256957c39c3,1,0,fc78d8df-ab27-4544-a65c-73908b9c5425,fc78d8df-ab27-4544-a65c-73908b9c5425,1,0,87251f18-17da-497a-9b39-f84a388c855c,87251f18-17da-497a-9b39-f84a388c855c,1,0,f8a090d2-b2d1-4ead-a8bf-6325a7552743,f8a090d2-b2d1-4ead-a8bf-6325a7552743,1,0,84f935da-9fe5-44ea-845b-b447b8b0a6f5,84f935da-9fe5-44ea-845b-b447b8b0a6f5,1,0,a4878c33-f156-44cc-b114-5670403075eb,a4878c33-f156-44cc-b114-5670403075eb,1,0,cc567ef8-3e63-4c53-a14a-899221ec9e46,cc567ef8-3e63-4c53-a14a-899221ec9e46,1,0,0f1f8bc8-73ce-4384-9496-9bc2d0e212be,0f1f8bc8-73ce-4384-9496-9bc2d0e212be,1,0,695ad525-d1ba-42fb-adc1-6c44ac433c69,695ad525-d1ba-42fb-adc1-6c44ac433c69,1,0,93afedb2-2d93-4611-b0fd-830bf33789c2,93afedb2-2d93-4611-b0fd-830bf33789c2,1,0,026dadd4-a698-4d56-9b72-7ad9f224e502,026dadd4-a698-4d56-9b72-7ad9f224e502,1,0,d0b49fd9-4054-409f-97a0-a0811ba6c1ab,d0b49fd9-4054-409f-97a0-a0811ba6c1ab,1,0,c7130560-3953-496f-b1d0-cae676fcb5a9,c7130560-3953-496f-b1d0-cae676fcb5a9,1,0,b7d5c226-a787-45e5-b46b-c51b145fcf6a,b7d5c226-a787-45e5-b46b-c51b145fcf6a,1,0,8ca63a1d-4593-4f52-8b5e-4feb9f8487ca,8ca63a1d-4593-4f52-8b5e-4feb9f8487ca,1,0,1e4cc0d6-6e5e-4d16-ba44-060912ec292f,1e4cc0d6-6e5e-4d16-ba44-060912ec292f,1,0,e9311a22-56b5-4607-8eaa-52382ed040c3,e9311a22-56b5-4607-8eaa-52382ed040c3,1,0,dc7b8596-b2c0-415f-95d9-c0aaa96c5675,dc7b8596-b2c0-415f-95d9-c0aaa96c5675,1,0,87e6e315-01e0-41eb-8373-0a60635f2f7a,87e6e315-01e0-41eb-8373-0a60635f2f7a,1,0,0c2f6d9b-2060-4575-86cd-683ebb4bb059,0c2f6d9b-2060-4575-86cd-683ebb4bb059,1,0,84282afa-21f5-40db-9386-e6f741c9a06c,84282afa-21f5-40db-9386-e6f741c9a06c,1,0,9440a132-366f-4fc9-bd72-2544ba2b072a,9440a132-366f-4fc9-bd72-2544ba2b072a,1,0,6f8a9249-457b-47ac-9160-7c566b8d00d5,6f8a9249-457b-47ac-9160-7c566b8d00d5,1,0,2ddd57c1-ab9b-4293-b956-1eb1f7a7a0fc,2ddd57c1-ab9b-4293-b956-1eb1f7a7a0fc,1,0,5bdd3b52-aa26-4610-beb9-3673254ba589,5bdd3b52-aa26-4610-beb9-3673254ba589,1,0,ebe7341e-50ab-4a2a-8299-b01ab00c8300,ebe7341e-50ab-4a2a-8299-b01ab00c8300,1,0,08a97633-888e-4d37-ba24-684070eeea43,08a97633-888e-4d37-ba24-684070eeea43,1,0,73126993-73e6-4734-9e72-287b672f40ad,73126993-73e6-4734-9e72-287b672f40ad,1,0,0b868a9d-984f-483a-9739-c1a73c05602f,0b868a9d-984f-483a-9739-c1a73c05602f,1,0,ec2ec52e-f9e9-4392-8ffb-e89626f2361d,ec2ec52e-f9e9-4392-8ffb-e89626f2361d,1,0,a4de8867-22bf-4fe2-8167-82bd3a56cd57,a4de8867-22bf-4fe2-8167-82bd3a56cd57,1,0,9b77e99b-b1d3-4368-a671-59e0ebba3f0e,9b77e99b-b1d3-4368-a671-59e0ebba3f0e,1,0,ad847998-6e50-4160-81fc-3b58ad68f202,ad847998-6e50-4160-81fc-3b58ad68f202,1,0,b2b98bcf-41da-4643-a6dc-39e5379b99e5,b2b98bcf-41da-4643-a6dc-39e5379b99e5,1,0,fdd9fb90-f5f0-4c08-9341-4374403bc950,fdd9fb90-f5f0-4c08-9341-4374403bc950,1,0,0e2d814a-cc9d-4f91-910d-bda54779e298,0e2d814a-cc9d-4f91-910d-bda54779e298,1,0,8fdfef8d-502e-4d27-a539-e833048fa1eb,8fdfef8d-502e-4d27-a539-e833048fa1eb,1,0,65530aca-7cf2-4a52-b5be-5dcbc15a049e,65530aca-7cf2-4a52-b5be-5dcbc15a049e,1,0,15eb2c2d-305d-42c0-9aec-936b82114bdb,15eb2c2d-305d-42c0-9aec-936b82114bdb,1,0,bb99bc44-f83e-48bb-93fd-7b07ca7da6a7,bb99bc44-f83e-48bb-93fd-7b07ca7da6a7,1,0,7718bd0b-7b8a-4ffc-b228-f05683b5531a,7718bd0b-7b8a-4ffc-b228-f05683b5531a,1,0,0b303d25-e141-431f-828c-1778d3c247f6,0b303d25-e141-431f-828c-1778d3c247f6,1,0,881f53bc-a52e-4312-b09d-3d3f53ddf84b,881f53bc-a52e-4312-b09d-3d3f53ddf84b,1,0,8e247254-f454-4436-9b5b-a8dbb8223cc7,8e247254-f454-4436-9b5b-a8dbb8223cc7,1,0,2e36a7b3-5331-4fab-a0a3-31b42a8387fe,2e36a7b3-5331-4fab-a0a3-31b42a8387fe,1,0,945ae8d2-b74a-41e9-b740-c82acdd40d04,945ae8d2-b74a-41e9-b740-c82acdd40d04,1,0,976533bf-f162-42a1-a47e-6d681ee67b82,976533bf-f162-42a1-a47e-6d681ee67b82,1,0,19bc0dd8-9e6b-4855-bc42-b4e98443163f,19bc0dd8-9e6b-4855-bc42-b4e98443163f,1,0,a61e10af-eaba-4e7a-a641-65d77453a559,a61e10af-eaba-4e7a-a641-65d77453a559,1,0,e1a375da-c16c-4616-8a33-9414c13a48c7,e1a375da-c16c-4616-8a33-9414c13a48c7,1,0,99993a9b-97e9-4606-94fa-2da43a03c3b2,99993a9b-97e9-4606-94fa-2da43a03c3b2,1,0,edf81bbb-905a-474d-959a-db5629a8e104,edf81bbb-905a-474d-959a-db5629a8e104,1,0,4c8eb34e-0bb6-487a-a2ae-24083b1f6d2e,4c8eb34e-0bb6-487a-a2ae-24083b1f6d2e,1,0,b20780cd-53d9-48bb-ac3f-2aa4eb6ab3c5,b20780cd-53d9-48bb-ac3f-2aa4eb6ab3c5,1,0,e9e242b7-0077-4c47-8f45-df50e7cc90cf,e9e242b7-0077-4c47-8f45-df50e7cc90cf,1,0,820383e1-9b95-4c0f-8464-722f1fe64ad5,820383e1-9b95-4c0f-8464-722f1fe64ad5,1,0,3d6cf2ab-29b2-45af-a6e2-8796284acf2d,3d6cf2ab-29b2-45af-a6e2-8796284acf2d,1,0,292bfe6b-703e-40cb-856d-abb470e6709f,292bfe6b-703e-40cb-856d-abb470e6709f,1,0,276c42ca-f5e0-4bb4-9b89-a925def35cb1,276c42ca-f5e0-4bb4-9b89-a925def35cb1,1,0,ddac9d84-61b8-49e7-b468-e4aef4403d64,ddac9d84-61b8-49e7-b468-e4aef4403d64,1,0,ae2eec04-8327-4c51-89d3-eb6b725d6e8b,ae2eec04-8327-4c51-89d3-eb6b725d6e8b,1,0,350b262d-2b1f-43de-9994-6abfd2e4e761,350b262d-2b1f-43de-9994-6abfd2e4e761,1,0,41a9cabc-5667-4ca0-a798-ba0b22bd1aa0,41a9cabc-5667-4ca0-a798-ba0b22bd1aa0,1,0,1bf44c42-87c0-4f2e-846c-b04d0b7e8d7d,1bf44c42-87c0-4f2e-846c-b04d0b7e8d7d,1,0,8811ea1a-1221-47b7-9574-3f36ff15a3cf,8811ea1a-1221-47b7-9574-3f36ff15a3cf,1,0,740a6d15-23e8-43a0-af3c-71a544f8fa4f,740a6d15-23e8-43a0-af3c-71a544f8fa4f,1,0,66b0ee64-b25a-4555-9bc2-88c3cba9f998,66b0ee64-b25a-4555-9bc2-88c3cba9f998,1,0,e461818e-5d2f-49ec-8219-3a765461274a,e461818e-5d2f-49ec-8219-3a765461274a,1,0,1d715463-691b-4c01-ae39-57c261f2a6ad,1d715463-691b-4c01-ae39-57c261f2a6ad,1,0,4c3d007f-a62c-4fd9-beda-58dbf08ad188,4c3d007f-a62c-4fd9-beda-58dbf08ad188,1,0,16080b3d-b385-4e44-af16-d1a357a2b842,16080b3d-b385-4e44-af16-d1a357a2b842,1,0,8de85e8b-6828-44a3-8481-4ff4c8c2b9e2,8de85e8b-6828-44a3-8481-4ff4c8c2b9e2,1,0,c35373a9-f0b0-4ddb-a985-409ac9c64609,c35373a9-f0b0-4ddb-a985-409ac9c64609,1,0,c5b4d6e4-4c99-46cb-98cf-9a0024215a12,c5b4d6e4-4c99-46cb-98cf-9a0024215a12,1,0,c1c40916-fee5-46e3-90fc-10e7595866c9,c1c40916-fee5-46e3-90fc-10e7595866c9,1,0,090e521e-391a-4ce7-9f7c-1c459fd221eb,090e521e-391a-4ce7-9f7c-1c459fd221eb,1,0,87dad256-122b-4d7e-b249-a2c313a9cf33,87dad256-122b-4d7e-b249-a2c313a9cf33,1,0,e7903c89-5282-4771-8f9b-536694b7816e,e7903c89-5282-4771-8f9b-536694b7816e,1,0,57a030fb-ed57-4ffc-a462-c7bbd2435c3d,57a030fb-ed57-4ffc-a462-c7bbd2435c3d,1,0,f20a04a7-84fa-48e3-8ac5-28176c1fcada,f20a04a7-84fa-48e3-8ac5-28176c1fcada,1,0,b722d6e1-fd6f-4bb4-923d-01764393722d,b722d6e1-fd6f-4bb4-923d-01764393722d,1,0,ac5f945e-2d03-44fb-a8cf-5d786194cefd,ac5f945e-2d03-44fb-a8cf-5d786194cefd,1,0,698ec00f-bf75-420e-81ab-a98808daf3f7,698ec00f-bf75-420e-81ab-a98808daf3f7,1,0,f441907c-d02e-431e-baf4-1854e48a1f50,f441907c-d02e-431e-baf4-1854e48a1f50,1,0,4ad722ca-10fc-4a83-91c9-ef0012685f89,4ad722ca-10fc-4a83-91c9-ef0012685f89,1,0,783dd4ba-a597-45ba-8989-2ed5224d62bc,783dd4ba-a597-45ba-8989-2ed5224d62bc,1,0,3b033d29-0de7-49dd-90bc-f414b28426d7,3b033d29-0de7-49dd-90bc-f414b28426d7,1,0,97aaede5-d32f-4eba-b0e0-5ae5f094a8b7,97aaede5-d32f-4eba-b0e0-5ae5f094a8b7,1,0,dad9710a-73ca-4e0d-b98b-75f955d0822d,dad9710a-73ca-4e0d-b98b-75f955d0822d,1,0,d01beeab-7c42-4d5e-a2f6-f190b9f703a5,d01beeab-7c42-4d5e-a2f6-f190b9f703a5,1,0,72c78946-146e-44a2-a547-abf5229e3815,72c78946-146e-44a2-a547-abf5229e3815,1,0,2191939f-6f71-47c9-a3d2-57acbf7f411e,2191939f-6f71-47c9-a3d2-57acbf7f411e,1,0,2ab4f8a1-8c1d-4ae2-93c0-a3556775e0ac,2ab4f8a1-8c1d-4ae2-93c0-a3556775e0ac,1,0,d9020b76-af47-4f08-ad32-8515fa4bda00,d9020b76-af47-4f08-ad32-8515fa4bda00,1,0,4c2562a8-58df-4598-89d7-aaa2b88fdc64,4c2562a8-58df-4598-89d7-aaa2b88fdc64,1,0,0b27acf5-e68b-4a40-990e-aa983f2c2e84,0b27acf5-e68b-4a40-990e-aa983f2c2e84,1,0,8af8b894-8518-45ba-871f-547137c07713,8af8b894-8518-45ba-871f-547137c07713,1,0,6ddd9c1f-daff-494c-bd6f-741bd40881ab,6ddd9c1f-daff-494c-bd6f-741bd40881ab,1,0,683c1238-5828-4ab9-a89e-7a3b31fc7fa5,683c1238-5828-4ab9-a89e-7a3b31fc7fa5,1,0,bea3998a-d1d3-45ed-bebb-412b8a777005,bea3998a-d1d3-45ed-bebb-412b8a777005,1,0,7e9c0fa3-128e-4c3f-a1f7-63cb88a1c0b1,7e9c0fa3-128e-4c3f-a1f7-63cb88a1c0b1,1,0,2ca8bca9-813a-4833-8ef0-a5e83f91c10f,2ca8bca9-813a-4833-8ef0-a5e83f91c10f,1,0,59b34b58-6ac9-467e-963b-0cccbf098797,59b34b58-6ac9-467e-963b-0cccbf098797,1,0,313d9858-3995-4a4c-b2b0-15d2350417b4,313d9858-3995-4a4c-b2b0-15d2350417b4,1,0,75e77f99-b9d1-4bc0-93aa-c77a93d760d3,75e77f99-b9d1-4bc0-93aa-c77a93d760d3,1,0,a2c36563-126d-4c3a-9714-5b7a4903073b,a2c36563-126d-4c3a-9714-5b7a4903073b,1,0,2e4da82c-dddb-4462-b34f-6511cd2a8356,2e4da82c-dddb-4462-b34f-6511cd2a8356,1,0,c7da3115-3cee-4282-a2f2-4e0b5558e4fc,c7da3115-3cee-4282-a2f2-4e0b5558e4fc,1,0,2976c29f-f482-463d-8f6e-6a632fb50893,2976c29f-f482-463d-8f6e-6a632fb50893,1,0,701964a1-7762-45ee-a9a4-41dd9ce94783,701964a1-7762-45ee-a9a4-41dd9ce94783,1,0,55d1909e-f552-441f-8e14-47d2e604cf6a,55d1909e-f552-441f-8e14-47d2e604cf6a,1,0,eae627db-c52b-4e41-94d1-58db28cd0063,eae627db-c52b-4e41-94d1-58db28cd0063,1,0,514e95b8-2fdd-46f7-89bf-7d1a3d9d6e1b,514e95b8-2fdd-46f7-89bf-7d1a3d9d6e1b,1,0,6ca91336-5ccd-4d0b-9602-53f4925c492d,6ca91336-5ccd-4d0b-9602-53f4925c492d,1,0,d853dd5f-d987-4cdb-82b5-5e40a5a5e449,d853dd5f-d987-4cdb-82b5-5e40a5a5e449,1,0,dc16c546-eecc-49fe-a401-e2e3987faa1f,dc16c546-eecc-49fe-a401-e2e3987faa1f,1,0,47058e36-a281-43a5-a41d-691b3ef32b5b,47058e36-a281-43a5-a41d-691b3ef32b5b,1,0,4fc5c023-91e2-4b3e-8f61-4dfe3be78f3a,4fc5c023-91e2-4b3e-8f61-4dfe3be78f3a,1,0,646def82-bc88-4187-8be0-93938656a20f,646def82-bc88-4187-8be0-93938656a20f,1,0,e620e93c-4382-478f-a700-ad2faa67362b,e620e93c-4382-478f-a700-ad2faa67362b,1,0,a07971f5-ed6d-4829-a6bb-4b17cd5c6f6c,a07971f5-ed6d-4829-a6bb-4b17cd5c6f6c,1,0,9c4e28e8-7257-42ed-9fd8-793a0b8eb945,9c4e28e8-7257-42ed-9fd8-793a0b8eb945,1,0,9b7b6d0e-68d6-4a73-837c-2a6fd456b236,9b7b6d0e-68d6-4a73-837c-2a6fd456b236,1,0,7f6222c1-1a50-4565-b66b-bcb430674efc,7f6222c1-1a50-4565-b66b-bcb430674efc,1,0,a4a8693b-dc91-4762-92e6-35360c8768db,a4a8693b-dc91-4762-92e6-35360c8768db,1,0,2ae236ec-28a7-44e0-a0ba-be62fe52d817,2ae236ec-28a7-44e0-a0ba-be62fe52d817,1,0,2fb5650f-a5e5-4db8-a6a7-ca1101b41d3e,2fb5650f-a5e5-4db8-a6a7-ca1101b41d3e,1,0,b0fca543-6951-4233-bdf6-58082b22252a,b0fca543-6951-4233-bdf6-58082b22252a,1,0,4929cf90-54c6-412c-b2fa-dc8230fb8f85,4929cf90-54c6-412c-b2fa-dc8230fb8f85,1,0,52ae6431-afb3-4dea-b106-00e11b174ec7,52ae6431-afb3-4dea-b106-00e11b174ec7,1,0,b18bdc5f-a2b6-4b15-81c3-37b27a5a3176,b18bdc5f-a2b6-4b15-81c3-37b27a5a3176,1,0,c996916d-7f1c-4fbf-939f-3e1bafe81f7d,c996916d-7f1c-4fbf-939f-3e1bafe81f7d,1,0,528d96cc-8838-49ea-8d76-ea56747882e0,528d96cc-8838-49ea-8d76-ea56747882e0,1,0,b9166ea0-cce8-4f76-a9cb-a3d6eb4dfb95,b9166ea0-cce8-4f76-a9cb-a3d6eb4dfb95,1,0,8b83324c-e10e-49d1-99d7-5bc468c25975,8b83324c-e10e-49d1-99d7-5bc468c25975,1,0,ddb75923-27bf-4996-b024-4bc6eb0f59a7,ddb75923-27bf-4996-b024-4bc6eb0f59a7,1,0,fcb46a8a-3461-4ec2-9aa0-685aedb9dd50,fcb46a8a-3461-4ec2-9aa0-685aedb9dd50,1,0,ed137e05-1996-411d-9927-45a3d7e3ee3b,ed137e05-1996-411d-9927-45a3d7e3ee3b,1,0,bdde9030-5718-4f5e-a9e2-f641f4ce69f9,bdde9030-5718-4f5e-a9e2-f641f4ce69f9,1,0,fbebf341-9842-41e1-8e4d-490fa02065ce,fbebf341-9842-41e1-8e4d-490fa02065ce,1,0,3be0acc7-223a-46ec-9ea2-ec99b869fa78,3be0acc7-223a-46ec-9ea2-ec99b869fa78,1,0,067f88f6-ccd2-491e-a466-94345a1f220f,067f88f6-ccd2-491e-a466-94345a1f220f,1,0,517ac144-ecb9-4d14-83ea-01e58f0901fc,517ac144-ecb9-4d14-83ea-01e58f0901fc,1,0,b8cccd45-f98a-4b25-a8b4-be2c1b7ec1da,b8cccd45-f98a-4b25-a8b4-be2c1b7ec1da,1,0,61c1ff46-2a30-43bb-b1df-4db2271b1b12,61c1ff46-2a30-43bb-b1df-4db2271b1b12,1,0,b74a5f88-9e1d-437a-9943-92ac4d7107de,b74a5f88-9e1d-437a-9943-92ac4d7107de,1,0,cf7bc2ca-fb57-4b1a-98cf-f2caa7e611f5,cf7bc2ca-fb57-4b1a-98cf-f2caa7e611f5,1,0,486083d8-33b1-453f-9f05-5ff867e2f4ba,486083d8-33b1-453f-9f05-5ff867e2f4ba,1,0,e5687b69-4d9a-4d21-a506-294941f18056,e5687b69-4d9a-4d21-a506-294941f18056,1,0,e4f9d9f6-38d7-4056-a95a-987ad2da2211,e4f9d9f6-38d7-4056-a95a-987ad2da2211,1,0,22c21c2b-4297-43b2-88f0-9555d22f7a14,22c21c2b-4297-43b2-88f0-9555d22f7a14,1,0,734f61c4-5429-4a09-8697-8949ac5e6bd1,734f61c4-5429-4a09-8697-8949ac5e6bd1,1,0,d04e0e2d-0a5f-4866-b0b3-b582915db899,d04e0e2d-0a5f-4866-b0b3-b582915db899,1,0,19649d3f-52aa-4054-bb84-a6a11d212495,19649d3f-52aa-4054-bb84-a6a11d212495,1,0,640d7486-8abd-40aa-a244-2ed899b7225a,640d7486-8abd-40aa-a244-2ed899b7225a,1,0,58321939-f25a-456d-8dee-97e64743dc2e,58321939-f25a-456d-8dee-97e64743dc2e,1,0,416fba62-70c4-4f8c-b10b-56d47b27ca35,416fba62-70c4-4f8c-b10b-56d47b27ca35,1,0,ec48a164-bc30-4e36-a40a-a3cca07aea0d,ec48a164-bc30-4e36-a40a-a3cca07aea0d,1,0,3174d57f-c6a8-44dc-adc1-47e9a54c844d,3174d57f-c6a8-44dc-adc1-47e9a54c844d,1,0,c05f87b4-ec5f-4d14-981f-02ca8ba89863,c05f87b4-ec5f-4d14-981f-02ca8ba89863,1,0,b7736108-89bd-44eb-89c1-8a5a774058f1,b7736108-89bd-44eb-89c1-8a5a774058f1,1,0,e07841ef-8392-4ceb-936d-fd160b3b03cd,e07841ef-8392-4ceb-936d-fd160b3b03cd,1,0,eee66f49-8954-4674-9e02-6bff6c332d30,eee66f49-8954-4674-9e02-6bff6c332d30,1,0,560a5f44-e4e6-46d9-a9fe-3609842d0e3e,560a5f44-e4e6-46d9-a9fe-3609842d0e3e,1,0,98f68a75-ebf9-4c59-b6a8-b3634089ca6b,98f68a75-ebf9-4c59-b6a8-b3634089ca6b,1,0,875d1fc1-8172-4e48-8192-035882e1665d,875d1fc1-8172-4e48-8192-035882e1665d,1,0,b2bd5a0e-d60c-411d-a001-ecdee0152b1a,b2bd5a0e-d60c-411d-a001-ecdee0152b1a,1,0,26132b28-98cc-4690-92ad-139f91839ba2,26132b28-98cc-4690-92ad-139f91839ba2,1,0,e7415ada-dd47-41f5-b4d5-7e77d1adad33,e7415ada-dd47-41f5-b4d5-7e77d1adad33,1,0,0bd85b79-cc32-4c1d-b629-567a1bdfac56,0bd85b79-cc32-4c1d-b629-567a1bdfac56,1,0,79c15db6-6066-4fe5-b30e-3196b6ca3d66,79c15db6-6066-4fe5-b30e-3196b6ca3d66,1,0,b87ce4f9-aaa6-4a4c-af80-0bd9adc83506,b87ce4f9-aaa6-4a4c-af80-0bd9adc83506,1,0,ca81e0ea-c428-47f9-aedb-078214104a2f,ca81e0ea-c428-47f9-aedb-078214104a2f,1,0,9518d09c-6996-4439-9278-3c71d5ae8fce,9518d09c-6996-4439-9278-3c71d5ae8fce,1,0,9dd6e7d6-cd98-4928-b50c-38bdbc61c211,9dd6e7d6-cd98-4928-b50c-38bdbc61c211,1,0,40cefda6-490e-4962-9747-94b823ea4ed7,40cefda6-490e-4962-9747-94b823ea4ed7,1,0,5fbd9a13-012d-4c36-b72c-da3bc4157cff,5fbd9a13-012d-4c36-b72c-da3bc4157cff,1,0,7e8d7d4f-98f7-4c81-94b1-f2d552b1ae5d,7e8d7d4f-98f7-4c81-94b1-f2d552b1ae5d,1,0,6aa6d14f-cd6c-413a-864e-d847d9ce120b,6aa6d14f-cd6c-413a-864e-d847d9ce120b,1,0,44b8472b-0f70-49cc-8f71-9c9d3e9cfbcc,44b8472b-0f70-49cc-8f71-9c9d3e9cfbcc,1,0,b071a44e-9a34-4af3-a59a-35aa5f3a74b4,b071a44e-9a34-4af3-a59a-35aa5f3a74b4,1,0,35a28677-0653-47f9-82e1-02c4b9266fee,35a28677-0653-47f9-82e1-02c4b9266fee,1,0,461be12a-9f16-4826-978a-436608ca8733,461be12a-9f16-4826-978a-436608ca8733,1,0,9b143299-d300-4b6c-b667-5552fb3bdcde,9b143299-d300-4b6c-b667-5552fb3bdcde,1,0,0de070f4-d8b7-48bb-bfc9-027dd727a4ad,0de070f4-d8b7-48bb-bfc9-027dd727a4ad,1,0,74973d06-f57d-403e-945c-5cd2f4fc4869,74973d06-f57d-403e-945c-5cd2f4fc4869,1,0,259564b8-172e-4eed-9360-d561ec6dad69,259564b8-172e-4eed-9360-d561ec6dad69,1,0,91c799d7-2b3d-4d1a-87ff-221057a428c6,91c799d7-2b3d-4d1a-87ff-221057a428c6,1,0,5a2d5d8a-afd9-4954-9868-7c82bad00426,5a2d5d8a-afd9-4954-9868-7c82bad00426,1,0,bab9810a-d08a-4484-a6d7-74e1c70a9bbc,bab9810a-d08a-4484-a6d7-74e1c70a9bbc,1,0,26aea96b-20f8-4e35-b55f-4fe3602e6597,26aea96b-20f8-4e35-b55f-4fe3602e6597,1,0,a3a3a211-e361-4e41-a6f8-d731a366c163,a3a3a211-e361-4e41-a6f8-d731a366c163,1,0,c40d6fde-4d9a-4d9e-af86-42b7916e2abe,c40d6fde-4d9a-4d9e-af86-42b7916e2abe,1,0,4d5204ae-711d-4c31-8a18-280dbc9d2bf5,4d5204ae-711d-4c31-8a18-280dbc9d2bf5,1,0,ca01417c-0ffd-4e00-91e8-93cd305be82d,ca01417c-0ffd-4e00-91e8-93cd305be82d,1,0,933ae96b-c69e-4396-bbfb-0daa81e529a4,933ae96b-c69e-4396-bbfb-0daa81e529a4,1,0,e1823be2-b646-4a1a-a9a9-c925a12c0586,e1823be2-b646-4a1a-a9a9-c925a12c0586,1,0,909e56e3-981f-430b-b775-18c70b3549e7,909e56e3-981f-430b-b775-18c70b3549e7,1,0,e613a6aa-82cb-40fd-8f28-0a74fe21e6a6,e613a6aa-82cb-40fd-8f28-0a74fe21e6a6,1,0,72d579ee-8cd5-4b08-9f3f-eb15f14ee194,72d579ee-8cd5-4b08-9f3f-eb15f14ee194,1,0,3a587e15-8ea8-4b4a-b9e8-feb2b874f1b0,3a587e15-8ea8-4b4a-b9e8-feb2b874f1b0,1,0,b98ca634-25a5-4366-af04-815ba34c8bb2,b98ca634-25a5-4366-af04-815ba34c8bb2,1,0,447da3d4-5d94-4cd2-8540-53c0836e6173,447da3d4-5d94-4cd2-8540-53c0836e6173,1,0,14d69108-4d26-401a-b7ae-2c86dadf831c,14d69108-4d26-401a-b7ae-2c86dadf831c,1,0,d6251f65-d366-4bc9-a5db-42063fe03594,d6251f65-d366-4bc9-a5db-42063fe03594,1,0,22c60cbc-429f-40d9-bf8b-681b7786c41d,22c60cbc-429f-40d9-bf8b-681b7786c41d,1,0,8d9d2284-e592-44c5-93bb-247037ab6b95,8d9d2284-e592-44c5-93bb-247037ab6b95,1,0,31dd320b-06aa-4314-9914-2c2420f572a1,31dd320b-06aa-4314-9914-2c2420f572a1,1,0,56730848-3bef-4b8c-b449-fe9d09c9c374,56730848-3bef-4b8c-b449-fe9d09c9c374,1,0,43c477d2-1234-4c4a-a18a-022c0ddf2fd5,43c477d2-1234-4c4a-a18a-022c0ddf2fd5,1,0,91d8c5e4-eaec-4951-9224-16882fda08f6,91d8c5e4-eaec-4951-9224-16882fda08f6,1,0,2721688b-9c0a-4069-8a17-4bb014bd7832,2721688b-9c0a-4069-8a17-4bb014bd7832,1,0,4304ffb9-7ede-4c59-bef8-26fe3e8f0103,4304ffb9-7ede-4c59-bef8-26fe3e8f0103,1,0,dc2b7a9e-132b-4a30-b7a8-ec72bf3d2e63,dc2b7a9e-132b-4a30-b7a8-ec72bf3d2e63,1,0,4654d192-74bf-430f-abee-6f4dc431b182,4654d192-74bf-430f-abee-6f4dc431b182,1,0,c4fe10b6-d025-4736-be23-3113bd7fe7b4,c4fe10b6-d025-4736-be23-3113bd7fe7b4,1,0,1ea750ae-5ec4-43c5-b34f-fd28999d41d7,1ea750ae-5ec4-43c5-b34f-fd28999d41d7,1,0,4678c704-933a-45ef-9d41-89b8f39016bb,4678c704-933a-45ef-9d41-89b8f39016bb,1,0,8ceea1e8-42ce-469f-823a-ceffdbd6b112,8ceea1e8-42ce-469f-823a-ceffdbd6b112,1,0,80eb2a49-8c0e-4f92-b99c-7fdadca03e7b,80eb2a49-8c0e-4f92-b99c-7fdadca03e7b,1,0,6fbc9a01-ddcb-47ab-84c0-f08b103be12b,6fbc9a01-ddcb-47ab-84c0-f08b103be12b,1,0,3f7ee937-d853-47b7-a1f5-d821208e3531,3f7ee937-d853-47b7-a1f5-d821208e3531,1,0,086d69d6-e2fa-45cb-84b6-f8f3e2919160,086d69d6-e2fa-45cb-84b6-f8f3e2919160,1,0,0b2b1287-e361-43d4-98c9-99b5c653cdd4,0b2b1287-e361-43d4-98c9-99b5c653cdd4,1,0,2caee148-4962-4947-bca7-9477741b8c1a,2caee148-4962-4947-bca7-9477741b8c1a,1,0,6995ee71-5901-46d9-a5c1-b35d795bda20,6995ee71-5901-46d9-a5c1-b35d795bda20,1,0,543c32a4-ad43-4f60-9b35-77081f841ad9,543c32a4-ad43-4f60-9b35-77081f841ad9,1,0,e93a4293-0497-4f11-b8b9-40300104fb96,e93a4293-0497-4f11-b8b9-40300104fb96,1,0,93531e5d-5dfc-42e8-be52-2e83f37262b0,93531e5d-5dfc-42e8-be52-2e83f37262b0,1,0,61bf78c0-7004-4a74-b362-e979c7316e05,61bf78c0-7004-4a74-b362-e979c7316e05,1,0,285d4d7f-acac-4e66-be6b-97aeecd2e383,285d4d7f-acac-4e66-be6b-97aeecd2e383,1,0,c4351896-eff1-4e4d-8823-028d63a9d6bf,c4351896-eff1-4e4d-8823-028d63a9d6bf,1,0,475f83a2-ba5a-4072-94f8-1324b1f198a4,475f83a2-ba5a-4072-94f8-1324b1f198a4,1,0,a9ae364f-b668-4fb4-b976-f227951ffb6b,a9ae364f-b668-4fb4-b976-f227951ffb6b,1,0,63066bee-d428-4e32-a032-f17475056537,63066bee-d428-4e32-a032-f17475056537,1,0,cd7c15c1-c573-46c9-b109-339b8b54c3ee,cd7c15c1-c573-46c9-b109-339b8b54c3ee,1,0,efd89929-4db9-4c58-b3cb-a8d9a41a1df2,efd89929-4db9-4c58-b3cb-a8d9a41a1df2,1,0,deee8bde-381f-4094-8794-7a06248860dd,deee8bde-381f-4094-8794-7a06248860dd,1,0,8c2a0f6b-492c-4c5a-97c5-da0d07f9d781,8c2a0f6b-492c-4c5a-97c5-da0d07f9d781,1,0,d92cb614-ed09-47db-b70b-d3e533c44c6a,d92cb614-ed09-47db-b70b-d3e533c44c6a,1,0,2757ee75-4b36-4901-bff1-044708754edb,2757ee75-4b36-4901-bff1-044708754edb,1,0,0e6bab27-bf94-4732-8549-dbd9b8a5f4e9,0e6bab27-bf94-4732-8549-dbd9b8a5f4e9,1,0,774c92d6-9b9b-422a-83d7-8d42ae2a9f60,774c92d6-9b9b-422a-83d7-8d42ae2a9f60,1,0,90032ffa-f117-4a34-82f8-cc7e5a22a542,90032ffa-f117-4a34-82f8-cc7e5a22a542,1,0,71144539-6472-4727-8887-0139f6221370,71144539-6472-4727-8887-0139f6221370,1,0,bff07da4-ae19-48a9-806b-14b285d42485,bff07da4-ae19-48a9-806b-14b285d42485,1,0,659cd4f6-d18c-4d75-a7e6-7c124a63ab9a,659cd4f6-d18c-4d75-a7e6-7c124a63ab9a,1,0,b0ccc05d-8d39-4f57-8e87-6846014f92ea,b0ccc05d-8d39-4f57-8e87-6846014f92ea,1,0,49e787c9-753a-468a-b8dd-2e970d9a1fed,49e787c9-753a-468a-b8dd-2e970d9a1fed,1,0,e871dea7-1953-4511-90b0-e0957afac4c0,e871dea7-1953-4511-90b0-e0957afac4c0,1,0,64fbfed7-9dda-481b-a4f7-fe440f24ba7e,64fbfed7-9dda-481b-a4f7-fe440f24ba7e,1,0,b2835a5b-5c91-448c-9eb1-1bb1c9a5e727,b2835a5b-5c91-448c-9eb1-1bb1c9a5e727,1,0,447fb310-0588-4e0d-8f6d-5fc1f3bb1180,447fb310-0588-4e0d-8f6d-5fc1f3bb1180,1,0,d91441cf-d793-4dfa-9225-f0c16818edde,d91441cf-d793-4dfa-9225-f0c16818edde,1,0,8986c155-54be-4b1b-b31a-5c00b88bc40d,8986c155-54be-4b1b-b31a-5c00b88bc40d,1,0,40ae107d-67a8-404c-adf9-1a760bba94ff,40ae107d-67a8-404c-adf9-1a760bba94ff,1,0,42a39785-144c-4d2d-92c6-fd8b345f687b,42a39785-144c-4d2d-92c6-fd8b345f687b,1,0,9c472614-595a-4456-aadd-f629455a754e,9c472614-595a-4456-aadd-f629455a754e,1,0,c205ddad-54ed-476f-85cd-e133313fe3a5,c205ddad-54ed-476f-85cd-e133313fe3a5,1,0,98edbda8-2511-4743-b643-28934af0ed74,98edbda8-2511-4743-b643-28934af0ed74,1,0,db1f2fdc-6862-43c0-aefa-499f8c2b585c,db1f2fdc-6862-43c0-aefa-499f8c2b585c,1,0,235be246-6c28-4771-923d-cffd541ec26e,235be246-6c28-4771-923d-cffd541ec26e,1,0,c9a0afb1-65fa-45ea-aabb-5ec080d9406e,c9a0afb1-65fa-45ea-aabb-5ec080d9406e,1,0,32b07bc0-3b2a-4244-93d4-49f172ad3ffb,32b07bc0-3b2a-4244-93d4-49f172ad3ffb,1,0,7abec628-65c3-4a44-ae11-99c2ffc592a3,7abec628-65c3-4a44-ae11-99c2ffc592a3,1,0,7b263bb6-4a6b-46c6-a1f0-48721ac1694b,7b263bb6-4a6b-46c6-a1f0-48721ac1694b,1,0,80b4e8c4-1fb3-4c3b-883f-93b5e213f46e,80b4e8c4-1fb3-4c3b-883f-93b5e213f46e,1,0,98061bca-6e72-479b-9125-a0f9452f4ed1,98061bca-6e72-479b-9125-a0f9452f4ed1,1,0,4d50203f-4577-4615-8001-4e4ac98fd392,4d50203f-4577-4615-8001-4e4ac98fd392,1,0,5c06642b-9c31-485b-87dd-48c6d7dbd30f,5c06642b-9c31-485b-87dd-48c6d7dbd30f,1,0,eeac3530-8897-4ab6-8fe8-09fcbfcd9fde,eeac3530-8897-4ab6-8fe8-09fcbfcd9fde,1,0,c3e2e470-f0bc-4fda-8c0e-4fb900e564a9,c3e2e470-f0bc-4fda-8c0e-4fb900e564a9,1,0,7fb0f8fd-4673-4f1d-a6ef-bc4ba9a2229f,7fb0f8fd-4673-4f1d-a6ef-bc4ba9a2229f,1,0,8ecf7104-09c7-4fc9-9b7d-2a71073ca3f6,8ecf7104-09c7-4fc9-9b7d-2a71073ca3f6,1,0,d3ade426-79bb-4d74-989f-712532afca29,d3ade426-79bb-4d74-989f-712532afca29,1,0,23387529-3893-473a-8934-8de81380a9ce,23387529-3893-473a-8934-8de81380a9ce,1,0,a16a117c-bc34-4e5d-b8cb-00dd91d7b060,a16a117c-bc34-4e5d-b8cb-00dd91d7b060,1,0,7fc7c59d-3df2-4f71-b6ec-9b85c7f7c4af,7fc7c59d-3df2-4f71-b6ec-9b85c7f7c4af,1,0,e28480c0-84e2-4f39-a1d0-c58ad1709cdc,e28480c0-84e2-4f39-a1d0-c58ad1709cdc,1,0,7172bed5-b12b-4e83-b15d-1d95b63a6272,7172bed5-b12b-4e83-b15d-1d95b63a6272,1,0,25d75a3c-b801-4b1e-aed8-90e667f36c67,25d75a3c-b801-4b1e-aed8-90e667f36c67,1,0,addb3aa1-a9d6-4d30-b5db-7f3ce46bc1b2,addb3aa1-a9d6-4d30-b5db-7f3ce46bc1b2,1,0,63ebf7fd-d514-4fce-abc1-fb3f253d01cd,63ebf7fd-d514-4fce-abc1-fb3f253d01cd,1,0,5730dde8-8334-4184-b1c4-a45e1b5cb154,5730dde8-8334-4184-b1c4-a45e1b5cb154,1,0,a275802f-937a-49f4-92da-fcdd185a036d,a275802f-937a-49f4-92da-fcdd185a036d,1,0,ec6ed9cb-85a2-4303-9906-cfb4ce6500bf,ec6ed9cb-85a2-4303-9906-cfb4ce6500bf,1,0,bf4eb62a-bc74-4845-bad2-58a2a8302a65,bf4eb62a-bc74-4845-bad2-58a2a8302a65,1,0,b66eb190-1c16-4f20-a94f-954bcdf313b8,b66eb190-1c16-4f20-a94f-954bcdf313b8,1,0,49e21b87-beae-4640-a497-ef468da0cbbc,49e21b87-beae-4640-a497-ef468da0cbbc,1,0,08c83b5e-08dd-425d-b024-62af684df926,08c83b5e-08dd-425d-b024-62af684df926,1,0,9e40a2ef-0c96-4455-8ed6-6e09011df3df,9e40a2ef-0c96-4455-8ed6-6e09011df3df,1,0,0de78690-2038-456b-b140-2b2b81f14e44,0de78690-2038-456b-b140-2b2b81f14e44,1,0,b8d07e97-f67d-4669-972a-96ce0f5e8c0d,b8d07e97-f67d-4669-972a-96ce0f5e8c0d,1,0,5c9c5f87-e85f-49b3-a7ca-01e2220d4f39,5c9c5f87-e85f-49b3-a7ca-01e2220d4f39,1,0,b953eafc-20be-4463-8c3e-903184e18402,b953eafc-20be-4463-8c3e-903184e18402,1,0,dcefdde9-645e-43c7-9244-384dadc75439,dcefdde9-645e-43c7-9244-384dadc75439,1,0,8568b969-4d05-42ab-b30a-c937619c7c93,8568b969-4d05-42ab-b30a-c937619c7c93,1,0,1afea577-b99e-41de-b613-47dd0b480a91,1afea577-b99e-41de-b613-47dd0b480a91,1,0,fa787228-aed5-4a16-b958-d102b78bf776,fa787228-aed5-4a16-b958-d102b78bf776,1,0,d511a261-4f9b-44e8-b3a1-1e6d393ec6e1,d511a261-4f9b-44e8-b3a1-1e6d393ec6e1,1,0,be900d20-c02d-476d-9ede-2bc5303ef6cb,be900d20-c02d-476d-9ede-2bc5303ef6cb,1,0,ddce1d3c-4a23-4c92-8083-c395dd3b7f6d,ddce1d3c-4a23-4c92-8083-c395dd3b7f6d,1,0,07b53437-cc8d-4834-a1e0-7007538b6eab,07b53437-cc8d-4834-a1e0-7007538b6eab,1,0,0dbec644-cb98-4368-ab76-5997259cbce7,0dbec644-cb98-4368-ab76-5997259cbce7,1,0,c05a7d33-8a58-4b5f-a433-4ba54c88d5f4,c05a7d33-8a58-4b5f-a433-4ba54c88d5f4,1,0,74b1237b-4a46-438d-9756-b564260df99d,74b1237b-4a46-438d-9756-b564260df99d,1,0,19decf0f-c24e-4551-b3d6-8ebd413cba78,19decf0f-c24e-4551-b3d6-8ebd413cba78,1,0,66a2df23-3a08-40d2-8e6c-2db10a3bca7a,66a2df23-3a08-40d2-8e6c-2db10a3bca7a,1,0,189383a5-0001-4427-9e00-18451e4bfb6e,189383a5-0001-4427-9e00-18451e4bfb6e,1,0,966ecce5-ec91-4f8e-82b2-364b38eb7ff4,966ecce5-ec91-4f8e-82b2-364b38eb7ff4,1,0,5ee4b3ee-b795-48c1-9bad-f4010b559b0e,5ee4b3ee-b795-48c1-9bad-f4010b559b0e,1,0,08dbba81-68fb-49ef-8aac-9631fcfa87c6,08dbba81-68fb-49ef-8aac-9631fcfa87c6,1,0,dd7191b6-cbc0-4b0b-a51a-c27a1e1720fa,dd7191b6-cbc0-4b0b-a51a-c27a1e1720fa,1,0,8170a27d-45e9-48b1-860b-c2d9cc5961cd,8170a27d-45e9-48b1-860b-c2d9cc5961cd,1,0,f1c08fed-f3db-4f72-8a8e-7c626b8cc130,f1c08fed-f3db-4f72-8a8e-7c626b8cc130,1,0,6a8de94b-7b62-4d91-80df-e47c4ef90864,6a8de94b-7b62-4d91-80df-e47c4ef90864,1,0,61cc4ec9-81e7-415b-8adf-3a5e61be505f,61cc4ec9-81e7-415b-8adf-3a5e61be505f,1,0,f41d01ec-983a-4b39-9c11-a6d25d08df4f,f41d01ec-983a-4b39-9c11-a6d25d08df4f,1,0,3247e64e-b57e-4c33-8086-7ab93c5b6371,3247e64e-b57e-4c33-8086-7ab93c5b6371,1,0,91d42c1f-af78-4c21-8071-61a347a94d5d,91d42c1f-af78-4c21-8071-61a347a94d5d,1,0,1ef34700-ce65-4985-b4d6-7133133ef32d,1ef34700-ce65-4985-b4d6-7133133ef32d,1,0,886d99ce-9ea2-4160-8d73-84df7197c030,886d99ce-9ea2-4160-8d73-84df7197c030,1,0,e5dca369-dc9a-4332-a509-f734b8787e13,e5dca369-dc9a-4332-a509-f734b8787e13,1,0,b46d482e-bf89-4bd7-8704-27ae42538afd,b46d482e-bf89-4bd7-8704-27ae42538afd,1,0,692d289b-8bd2-4b88-a8ea-0389c967df63,692d289b-8bd2-4b88-a8ea-0389c967df63,1,0,722af623-156c-4e63-8b2a-93da760f1559,722af623-156c-4e63-8b2a-93da760f1559,1,0,393074c4-0afc-4232-8101-11a4ea6ed28a,393074c4-0afc-4232-8101-11a4ea6ed28a,1,0,5ff23123-450c-40ae-9b79-c540da53e2a0,5ff23123-450c-40ae-9b79-c540da53e2a0,1,0,639339a1-7de5-4b05-adf3-f60e7edd922c,639339a1-7de5-4b05-adf3-f60e7edd922c,1,0,dea9af9d-13c0-40d4-a9b0-1908e0a58795,dea9af9d-13c0-40d4-a9b0-1908e0a58795,1,0,9e9b8c05-787a-43c0-891d-3d9ad7e4976f,9e9b8c05-787a-43c0-891d-3d9ad7e4976f,1,0,b8014eb2-5f9e-43ce-9a3b-f196f880fda5,b8014eb2-5f9e-43ce-9a3b-f196f880fda5,1,0,f72f3c7b-0a24-402e-a024-869f9e932928,f72f3c7b-0a24-402e-a024-869f9e932928,1,0,eec6a9b7-8e3a-4670-bf64-bc708973349d,eec6a9b7-8e3a-4670-bf64-bc708973349d,1,0,15b95954-144e-46b1-a945-39bef6fa9fcb,15b95954-144e-46b1-a945-39bef6fa9fcb,1,0,1b3324f3-0cce-4f14-b61f-26d37effb5f0,1b3324f3-0cce-4f14-b61f-26d37effb5f0,1,0,dbc9346c-6438-4bd2-bffb-e4650ef9cab7,dbc9346c-6438-4bd2-bffb-e4650ef9cab7,1,0,50ef6fc7-edfc-497b-ae9d-fb676934a631,50ef6fc7-edfc-497b-ae9d-fb676934a631,1,0,6f706d33-6fc6-4311-994f-6887c46f3c3b,6f706d33-6fc6-4311-994f-6887c46f3c3b,1,0,0e1a45b0-d95d-415f-b954-5689610aa393,0e1a45b0-d95d-415f-b954-5689610aa393,1,0,9162a85e-a385-42b0-b809-da916fce44b7,9162a85e-a385-42b0-b809-da916fce44b7,1,0,4736b3d3-f696-4bdd-b0e3-0884ea88f623,4736b3d3-f696-4bdd-b0e3-0884ea88f623,1,0,e3ac6312-4397-4012-a3d1-e35071d3fb6b,e3ac6312-4397-4012-a3d1-e35071d3fb6b,1,0,1c32ac14-580d-4ac2-939b-dc5ce64b4f7f,1c32ac14-580d-4ac2-939b-dc5ce64b4f7f,1,0,f6939587-ff87-4eca-ae52-10e1bd2abfce,f6939587-ff87-4eca-ae52-10e1bd2abfce,1,0,a8e4d97f-e2da-4aa8-a221-3cbcc135f403,a8e4d97f-e2da-4aa8-a221-3cbcc135f403,1,0,f2b0eab2-e34b-42f8-9b24-5596b4c17d7f,f2b0eab2-e34b-42f8-9b24-5596b4c17d7f,1,0,3cb575a9-dc82-45e0-81f0-d651e12246da,3cb575a9-dc82-45e0-81f0-d651e12246da,1,0,01a73950-3e8f-4f56-903f-af0d9574e72e,01a73950-3e8f-4f56-903f-af0d9574e72e,1,0,14bd0844-c829-4325-aa7f-0f417bf955dc,14bd0844-c829-4325-aa7f-0f417bf955dc,1,0,7f1cd658-ca10-49c6-80ef-b8956f3269ea,7f1cd658-ca10-49c6-80ef-b8956f3269ea,1,0,b0d9086f-cef7-47a8-ad62-d85fea28ebda,b0d9086f-cef7-47a8-ad62-d85fea28ebda,1,0,49c010fc-f5cc-45f4-ba46-132e7661c3dd,49c010fc-f5cc-45f4-ba46-132e7661c3dd,1,0,23d137ad-5b37-40a9-9c9f-3a2cecfb5abb,23d137ad-5b37-40a9-9c9f-3a2cecfb5abb,1,0,3f3b592d-ca61-40c7-be1f-e5d3224a1eb3,3f3b592d-ca61-40c7-be1f-e5d3224a1eb3,1,0,2c02a558-8d12-44cf-be6b-9c399b9032e5,2c02a558-8d12-44cf-be6b-9c399b9032e5,1,0,322a8a3c-35c0-4aaf-897e-0946561b9636,322a8a3c-35c0-4aaf-897e-0946561b9636,1,0,d94d4931-7c81-4ee8-93ea-b2c54b152fa5,d94d4931-7c81-4ee8-93ea-b2c54b152fa5,1,0,a077a18d-053f-4029-b73d-d606db241fe6,a077a18d-053f-4029-b73d-d606db241fe6,1,0,5a2f2284-4f86-4ee4-8b53-296c2787f320,5a2f2284-4f86-4ee4-8b53-296c2787f320,1,0,aea031ed-44c1-441b-8ed2-3a790c0263ab,aea031ed-44c1-441b-8ed2-3a790c0263ab,1,0,c770bdd5-c7c0-4751-b31d-46c0ea1f49b7,c770bdd5-c7c0-4751-b31d-46c0ea1f49b7,1,0,6afcc089-7f15-42e8-97b5-6aad6cf2e6f9,6afcc089-7f15-42e8-97b5-6aad6cf2e6f9,1,0,cce4c615-dc29-42b3-9d3d-b277dde4a2e4,cce4c615-dc29-42b3-9d3d-b277dde4a2e4,1,0,9c267aa6-5f23-49f6-868a-3324ef2845ff,9c267aa6-5f23-49f6-868a-3324ef2845ff,1,0,495eeeee-d7bf-4063-99e2-86daa066451a,495eeeee-d7bf-4063-99e2-86daa066451a,1,0,b6184698-79e4-4c19-9440-092ccd9dabf8,b6184698-79e4-4c19-9440-092ccd9dabf8,1,0,7d01fc0c-378e-421d-ab70-6a418eed5941,7d01fc0c-378e-421d-ab70-6a418eed5941,1,0,e8b92505-007b-4a95-a7a1-291988090228,e8b92505-007b-4a95-a7a1-291988090228,1,0,6eeb4867-bf9d-48dc-b96b-934a0c293010,6eeb4867-bf9d-48dc-b96b-934a0c293010,1,0,d2816f95-4809-4727-8ab6-8afd375f5a75,d2816f95-4809-4727-8ab6-8afd375f5a75,1,0,1d49b1bb-5f90-46e4-adcf-55ad46442648,1d49b1bb-5f90-46e4-adcf-55ad46442648,1,0,8d4685b7-ba72-4a28-8182-3104e1330567,8d4685b7-ba72-4a28-8182-3104e1330567,1,0,b91b93f0-29ca-452d-97be-7109fb248e22,b91b93f0-29ca-452d-97be-7109fb248e22,1,0,c1f7437a-b278-4941-b580-75c6693155d0,c1f7437a-b278-4941-b580-75c6693155d0,1,0,e1803e54-ec5e-4a82-8097-5e2331820991,e1803e54-ec5e-4a82-8097-5e2331820991,1,0,a6a84818-e14c-4554-ac0a-e522a9615997,a6a84818-e14c-4554-ac0a-e522a9615997,1,0,1bcbf91d-cbbc-4c47-86ed-b2cab62ccbe2,1bcbf91d-cbbc-4c47-86ed-b2cab62ccbe2,1,0,27aebf22-27fe-48d4-a6f4-ea4f6a6714bb,27aebf22-27fe-48d4-a6f4-ea4f6a6714bb,1,0,f69ec1f9-826e-4eb4-b52c-3f6a3dfc3361,f69ec1f9-826e-4eb4-b52c-3f6a3dfc3361,1,0,4cbb0b91-dbdd-472f-93c5-061076b6a8d3,4cbb0b91-dbdd-472f-93c5-061076b6a8d3,1,0,8506dbe9-7066-444b-83b6-fb2d71a336e7,8506dbe9-7066-444b-83b6-fb2d71a336e7,1,0,240b4df5-0d75-4e5a-9ae8-d0bc7cc51722,240b4df5-0d75-4e5a-9ae8-d0bc7cc51722,1,0,932656e8-4011-4250-844b-1fd47abda912,932656e8-4011-4250-844b-1fd47abda912,1,0,6686d828-3129-4d44-a8a2-a64657d424cb,6686d828-3129-4d44-a8a2-a64657d424cb,1,0,90433152-f389-4d45-8ccc-3eb6c7a7e1f0,90433152-f389-4d45-8ccc-3eb6c7a7e1f0,1,0,ce235ab9-1dec-459a-9fec-498c262ece56,ce235ab9-1dec-459a-9fec-498c262ece56,1,0,fb7a9f90-15ef-4121-adff-cd40f699182b,fb7a9f90-15ef-4121-adff-cd40f699182b,1,0,0fa52339-2d11-4c81-92b9-aa27d116134d,0fa52339-2d11-4c81-92b9-aa27d116134d,1,0,26135cf4-fbe1-4f72-a1fd-69e85ec008a6,26135cf4-fbe1-4f72-a1fd-69e85ec008a6,1,0,d83b8068-512d-4c10-88b4-f9b3413a3a81,d83b8068-512d-4c10-88b4-f9b3413a3a81,1,0,b3bbcd07-a593-4591-9d7e-9a990c0acb62,b3bbcd07-a593-4591-9d7e-9a990c0acb62,1,0,b96df5bb-d78a-40ed-a62d-2bf796c59c62,b96df5bb-d78a-40ed-a62d-2bf796c59c62,1,0,073890e5-13eb-4c50-9a6e-3e5507b111b7,073890e5-13eb-4c50-9a6e-3e5507b111b7,1,0,34a4d235-dc56-47e5-91b6-0af887ccdf42,34a4d235-dc56-47e5-91b6-0af887ccdf42,1,0,d60e7164-c686-4c50-b831-a4ee4f505c35,d60e7164-c686-4c50-b831-a4ee4f505c35,1,0,e660c8bf-af5f-4525-a56e-68925d2b96fa,e660c8bf-af5f-4525-a56e-68925d2b96fa,1,0,1a3ad05f-77b5-467e-99fe-c2b5e734ba87,1a3ad05f-77b5-467e-99fe-c2b5e734ba87,1,0,2fad50a6-6a3e-4f87-ab84-907364427a63,2fad50a6-6a3e-4f87-ab84-907364427a63,1,0,e37aa075-143b-44e9-a2e2-77b3e0f76a77,e37aa075-143b-44e9-a2e2-77b3e0f76a77,1,0,1df47f0c-7935-481b-9dfb-1f660ea81a2b,1df47f0c-7935-481b-9dfb-1f660ea81a2b,1,0,258736e4-93c0-4a46-8caa-75be42c9f006,258736e4-93c0-4a46-8caa-75be42c9f006,1,0,3153b2b9-9e3e-4d6b-ab8c-5ccaac78a08a,3153b2b9-9e3e-4d6b-ab8c-5ccaac78a08a,1,0,56d0acf3-c888-4824-a6e4-27d61fa35415,56d0acf3-c888-4824-a6e4-27d61fa35415,1,0,588bd1b2-ee61-4a05-83cd-efb1b82ccb44,588bd1b2-ee61-4a05-83cd-efb1b82ccb44,1,0,439129dd-ad00-484c-b84a-fb325af979ed,439129dd-ad00-484c-b84a-fb325af979ed,1,0,dcae6376-f44c-421e-87f2-df83413c021e,dcae6376-f44c-421e-87f2-df83413c021e,1,0,dbdcdcab-4cd5-44af-b52c-6ce14a26ca9c,dbdcdcab-4cd5-44af-b52c-6ce14a26ca9c,1,0,151f2d0a-cc43-490d-ad7d-71390703aa72,151f2d0a-cc43-490d-ad7d-71390703aa72,1,0,2a515a4f-683b-4674-b097-62dd2d940c39,2a515a4f-683b-4674-b097-62dd2d940c39,1,0,d14058f5-dfd4-47eb-ae6d-01b7062f5940,d14058f5-dfd4-47eb-ae6d-01b7062f5940,1,0,90f358ae-9c80-40cf-8e8f-aa02d78a2cdb,90f358ae-9c80-40cf-8e8f-aa02d78a2cdb,1,0,1681dd7a-de80-4b8d-9657-c9702a19d653,1681dd7a-de80-4b8d-9657-c9702a19d653,1,0,10d796e9-a3d4-4ef0-87d5-8315aa12f1c8,10d796e9-a3d4-4ef0-87d5-8315aa12f1c8,1,0,398cd724-3c08-49b3-a5b4-4186f1d6b32d,398cd724-3c08-49b3-a5b4-4186f1d6b32d,1,0,fdb5b235-1978-4c2a-a03f-02341df00c3c,fdb5b235-1978-4c2a-a03f-02341df00c3c,1,0,9f593f27-8009-40c0-94d6-53f177ce55f4,9f593f27-8009-40c0-94d6-53f177ce55f4,1,0,917f8d67-2c28-4e02-9453-e1ef9297c9a6,917f8d67-2c28-4e02-9453-e1ef9297c9a6,1,0,1d1248ce-c31a-41f9-85b2-0d97ae2bea82,1d1248ce-c31a-41f9-85b2-0d97ae2bea82,1,0,38637f61-399a-4966-9e64-4751aecffa31,38637f61-399a-4966-9e64-4751aecffa31,1,0,0f38a18b-a36c-45fe-86c1-396634aaa5df,0f38a18b-a36c-45fe-86c1-396634aaa5df,1,0,f2b7b8d0-c0f7-46ba-907a-f8dfa76fc2da,f2b7b8d0-c0f7-46ba-907a-f8dfa76fc2da,1,0,a81c783d-2dea-4dde-9ca1-7b23d609eb22,a81c783d-2dea-4dde-9ca1-7b23d609eb22,1,0,836dfba9-c948-409b-825f-f0d869872835,836dfba9-c948-409b-825f-f0d869872835,1,0,137ec4ee-5053-47a7-8f5d-f6e63174608f,137ec4ee-5053-47a7-8f5d-f6e63174608f,1,0,820bb4b4-895b-4ccf-a350-2545bf8a2f7e,820bb4b4-895b-4ccf-a350-2545bf8a2f7e,1,0,4e6d38c5-2a09-4473-9e04-8f631fe88c61,4e6d38c5-2a09-4473-9e04-8f631fe88c61,1,0,4b4f5777-7c36-461e-9d3e-1baaf0497d62,4b4f5777-7c36-461e-9d3e-1baaf0497d62,1,0,8f4d5fc1-5c2c-4202-bb79-a180b03b3267,8f4d5fc1-5c2c-4202-bb79-a180b03b3267,1,0,da881296-fea4-444b-96b2-12cb69d588c7,da881296-fea4-444b-96b2-12cb69d588c7,1,0,03f9d2d0-eae4-4098-a70e-4eb569b11fd9,03f9d2d0-eae4-4098-a70e-4eb569b11fd9,1,0,30031e74-e58a-44a2-98dd-fc8c950831c4,30031e74-e58a-44a2-98dd-fc8c950831c4,1,0,530a3164-4ef1-4b3b-8269-13764ef4bf15,530a3164-4ef1-4b3b-8269-13764ef4bf15,1,0,6df2bb92-558c-4453-9de4-e4176e8f93dc,6df2bb92-558c-4453-9de4-e4176e8f93dc,1,0,141c7b66-d689-4c8e-ace8-b8e1d8c7fbaa,141c7b66-d689-4c8e-ace8-b8e1d8c7fbaa,1,0,3fc019d1-aec8-4835-96c5-3bbf43da0b94,3fc019d1-aec8-4835-96c5-3bbf43da0b94,1,0,5371672a-c8e0-4c12-834e-f23dd885b49a,5371672a-c8e0-4c12-834e-f23dd885b49a,1,0,8583ca82-a4f5-4f2a-9b9a-7807b4560e85,8583ca82-a4f5-4f2a-9b9a-7807b4560e85,1,0,6417d7c8-6436-4907-98eb-44cd7638f3f1,6417d7c8-6436-4907-98eb-44cd7638f3f1,1,0,1f927f76-5523-4880-9d26-d69a059f2b67,1f927f76-5523-4880-9d26-d69a059f2b67,1,0,27a9c1de-90a9-49f8-8b16-f7ef041ae1de,27a9c1de-90a9-49f8-8b16-f7ef041ae1de,1,0,5c45e96f-e245-4d16-9c47-836505582aef,5c45e96f-e245-4d16-9c47-836505582aef,1,0,2c04d747-c363-4218-92c9-5c83393e928b,2c04d747-c363-4218-92c9-5c83393e928b,1,0,093b8255-7ee5-4463-bd20-542b1d63e799,093b8255-7ee5-4463-bd20-542b1d63e799,1,0,5afb95e0-51a3-4a0f-bea7-e06716421974,5afb95e0-51a3-4a0f-bea7-e06716421974,1,0,2bce3fbe-436b-4a9f-8478-5436d61cd57c,2bce3fbe-436b-4a9f-8478-5436d61cd57c,1,0,ba49877b-6e30-4177-a67c-00e65aa498fb,ba49877b-6e30-4177-a67c-00e65aa498fb,1,0,3d02ca78-c396-4797-909c-e6b910c0ff66,3d02ca78-c396-4797-909c-e6b910c0ff66,1,0,25b39aeb-94c3-4199-9d56-5bd87e325bf2,25b39aeb-94c3-4199-9d56-5bd87e325bf2,1,0,b0b63551-4e83-4201-af9a-b4ab150c43a5,b0b63551-4e83-4201-af9a-b4ab150c43a5,1,0,ca85912b-87b4-481e-9184-017364b4603d,ca85912b-87b4-481e-9184-017364b4603d,1,0,2bd80198-4739-4e8f-9af1-40addc91a05b,2bd80198-4739-4e8f-9af1-40addc91a05b,1,0,80c18959-93f0-46e6-90fd-b564efcaa395,80c18959-93f0-46e6-90fd-b564efcaa395,1,0,c53b9e19-54e4-49b4-ac63-eaeee5c2e040,c53b9e19-54e4-49b4-ac63-eaeee5c2e040,1,0,47afc45d-719e-4740-a8aa-6157c4b1aea8,47afc45d-719e-4740-a8aa-6157c4b1aea8,1,0,baec0e60-c410-4b95-8126-f77fd06225b4,baec0e60-c410-4b95-8126-f77fd06225b4,1,0,91275c80-d7f7-47c6-ba76-4a10d394f55b,91275c80-d7f7-47c6-ba76-4a10d394f55b,1,0,b92edc24-fcf7-498d-97a2-0c7f3005c814,b92edc24-fcf7-498d-97a2-0c7f3005c814,1,0,2b97f923-6a4e-4894-9ece-5129d8832864,2b97f923-6a4e-4894-9ece-5129d8832864,1,0,3e2b17cc-e8d1-41fa-9c1a-bbefd1524852,3e2b17cc-e8d1-41fa-9c1a-bbefd1524852,1,0,907a5c35-127a-4b74-9e9b-d0ec3d54ec1a,907a5c35-127a-4b74-9e9b-d0ec3d54ec1a,1,0,1962b038-653d-4834-a2d7-f913adc019a3,1962b038-653d-4834-a2d7-f913adc019a3,1,0,4635f15d-296b-4378-9833-f19e5b91b55b,4635f15d-296b-4378-9833-f19e5b91b55b,1,0,2650db63-ca98-4a8a-8c36-165548aa5279,2650db63-ca98-4a8a-8c36-165548aa5279,1,0,6ebc8b8e-3ac6-4378-81c9-888b683ecd11,6ebc8b8e-3ac6-4378-81c9-888b683ecd11,1,0,6a8fdf0a-5dff-49e4-a423-fc80aceeee27,6a8fdf0a-5dff-49e4-a423-fc80aceeee27,1,0,4b9320f1-c7b1-4c08-a832-64ef108d0d6d,4b9320f1-c7b1-4c08-a832-64ef108d0d6d,1,0,e8c5c961-0633-438d-ba50-d2a774f6b167,e8c5c961-0633-438d-ba50-d2a774f6b167,1,0,48b57d1b-5246-4ce8-9e0f-e369e6add55c,48b57d1b-5246-4ce8-9e0f-e369e6add55c,1,0,b6d891e4-15d6-4b40-b474-a8a1d10231e8,b6d891e4-15d6-4b40-b474-a8a1d10231e8,1,0,e60a7341-3995-4d8c-a3c6-a23ea0137754,e60a7341-3995-4d8c-a3c6-a23ea0137754,1,0,a69525c7-27ff-48df-b26b-325ba580a53e,a69525c7-27ff-48df-b26b-325ba580a53e,1,0,24a7de1c-1c1f-4987-91ff-02f78f15dd9e,24a7de1c-1c1f-4987-91ff-02f78f15dd9e,1,0,8482b31d-0ffa-4a94-9be1-09db8399b70d,8482b31d-0ffa-4a94-9be1-09db8399b70d,1,0,77fe53c2-de9d-4483-97c9-f7d44e137d5e,77fe53c2-de9d-4483-97c9-f7d44e137d5e,1,0,ac7ea771-4b10-4d43-9c0a-9cd36e4c49a4,ac7ea771-4b10-4d43-9c0a-9cd36e4c49a4,1,0,593be64c-6792-46d9-8618-84c50c9ad9e4,593be64c-6792-46d9-8618-84c50c9ad9e4,1,0,208d29cb-040f-4282-b8e8-dda8417b8e92,208d29cb-040f-4282-b8e8-dda8417b8e92,1,0,15a4595f-92d8-4084-bb92-cdc587b3a04e,15a4595f-92d8-4084-bb92-cdc587b3a04e,1,0,e57f4619-b5ed-44de-a186-a13a3897731b,e57f4619-b5ed-44de-a186-a13a3897731b,1,0,3b78a9d0-7382-4115-a7dc-d06c9a1962d1,3b78a9d0-7382-4115-a7dc-d06c9a1962d1,1,0,9935d602-668e-4df9-a338-0f542def878b,9935d602-668e-4df9-a338-0f542def878b,1,0,5e3bb85e-24cf-45fc-9b72-50bec76cb591,5e3bb85e-24cf-45fc-9b72-50bec76cb591,1,0,3913f78f-ce34-4ae3-840a-ccdf06319cbb,3913f78f-ce34-4ae3-840a-ccdf06319cbb,1,0,104cf3e3-2104-4ac2-bdc6-792750a63ea0,104cf3e3-2104-4ac2-bdc6-792750a63ea0,1,0,35dee1ee-ca9e-4b6b-9767-1107283f5a04,35dee1ee-ca9e-4b6b-9767-1107283f5a04,1,0,c86aa97a-5898-4cb2-ae62-598bddf8e99f,c86aa97a-5898-4cb2-ae62-598bddf8e99f,1,0,cb3a5c5b-7bdc-4e12-96f1-11b1213b6853,cb3a5c5b-7bdc-4e12-96f1-11b1213b6853,1,0,e6fe7103-4dfa-4302-a58e-ccd7fac19c9d,e6fe7103-4dfa-4302-a58e-ccd7fac19c9d,1,0,bb3a9973-67ce-479e-8668-c2f3bb20301e,bb3a9973-67ce-479e-8668-c2f3bb20301e,1,0,e5250dfe-dda2-4547-9b9e-2470ea1be1ab,e5250dfe-dda2-4547-9b9e-2470ea1be1ab,1,0,2c3fccc6-c4c0-49ec-bfc2-05ce05f27ea9,2c3fccc6-c4c0-49ec-bfc2-05ce05f27ea9,1,0,37169451-1464-4f24-8ca6-802963ffb636,37169451-1464-4f24-8ca6-802963ffb636,1,0,c3a958b1-590f-4418-a74f-5982b478cf52,c3a958b1-590f-4418-a74f-5982b478cf52,1,0,ef0e618d-0942-460a-ac65-9aca2fed976e,ef0e618d-0942-460a-ac65-9aca2fed976e,1,0,fd1ed7ec-d848-41cd-8ce3-2e5a682abcf0,fd1ed7ec-d848-41cd-8ce3-2e5a682abcf0,1,0,2ac8bd69-9fbf-4f15-b58d-397d9e903532,2ac8bd69-9fbf-4f15-b58d-397d9e903532,1,0,2ff35814-7eaa-4ae5-bbac-f46bebb36c9d,2ff35814-7eaa-4ae5-bbac-f46bebb36c9d,1,0,5b460b92-2c74-4f59-88b2-18d9aac42c04,5b460b92-2c74-4f59-88b2-18d9aac42c04,1,0,db05d35b-5f53-4c27-ba80-b477b9a98299,db05d35b-5f53-4c27-ba80-b477b9a98299,1,0,fa872ae1-b699-46fe-9d6a-e42e1388752b,fa872ae1-b699-46fe-9d6a-e42e1388752b,1,0,1acf34e6-c428-4130-82f0-5160dfcc0858,1acf34e6-c428-4130-82f0-5160dfcc0858,1,0,57046262-b9ce-4670-9cf5-6db9e58dd0d5,57046262-b9ce-4670-9cf5-6db9e58dd0d5,1,0,a9824176-36d5-4be5-9984-f4312ff48515,a9824176-36d5-4be5-9984-f4312ff48515,1,0,8e980ca0-1627-45e8-bd27-5dd1ac199459,8e980ca0-1627-45e8-bd27-5dd1ac199459,1,0,8b653beb-af9f-4f39-b691-ae14f80b7cd6,8b653beb-af9f-4f39-b691-ae14f80b7cd6,1,0,77559c11-713f-454d-aff4-56649e1350e9,77559c11-713f-454d-aff4-56649e1350e9,1,0,0c965703-c1d0-48b7-80f9-b8d869ff98f5,0c965703-c1d0-48b7-80f9-b8d869ff98f5,1,0,51f8d5ff-aec5-4c0a-ad02-df8c6cb1b4ad,51f8d5ff-aec5-4c0a-ad02-df8c6cb1b4ad,1,0,7ba42162-557b-4e34-8aca-0cdee8cb2452,7ba42162-557b-4e34-8aca-0cdee8cb2452,1,0,eee99b8e-29b6-4b7a-81f1-3d91d740c0d7,eee99b8e-29b6-4b7a-81f1-3d91d740c0d7,1,0,ad4f2d1f-1e6f-4f6a-8061-202c0e42a8e4,ad4f2d1f-1e6f-4f6a-8061-202c0e42a8e4,1,0,dd577924-c6cb-4aa9-9db5-366d8958d00f,dd577924-c6cb-4aa9-9db5-366d8958d00f,1,0,8ed8f72e-404a-4be4-a44d-ddebbad5f411,8ed8f72e-404a-4be4-a44d-ddebbad5f411,1,0,e919bc4c-86e6-44f6-be27-5a729b63d042,e919bc4c-86e6-44f6-be27-5a729b63d042,1,0,ec580e4f-1518-4923-a10e-bc1da8688b37,ec580e4f-1518-4923-a10e-bc1da8688b37,1,0,91c3902a-314f-4d40-8bcc-8dd131fed2f4,91c3902a-314f-4d40-8bcc-8dd131fed2f4,1,0,ae2b21c5-9349-49e8-9627-26f05c21f43a,ae2b21c5-9349-49e8-9627-26f05c21f43a,1,0,7e4c0b74-e807-4aa9-ad69-3c85b147bb61,7e4c0b74-e807-4aa9-ad69-3c85b147bb61,1,0,917a19d7-73db-4247-b892-397598d67879,917a19d7-73db-4247-b892-397598d67879,1,0,1f866dc3-a4bc-4e8d-96a3-a26ee073926f,1f866dc3-a4bc-4e8d-96a3-a26ee073926f,1,0,d8066600-c669-449d-a187-fdd3af8f7afa,d8066600-c669-449d-a187-fdd3af8f7afa,1,0,dadf86a6-c118-4827-b1b9-6cfee731242f,dadf86a6-c118-4827-b1b9-6cfee731242f,1,0,45bf7b20-f048-491a-a989-e50bea13d028,45bf7b20-f048-491a-a989-e50bea13d028,1,0,9ad3b432-5b49-44ee-9d8d-83c36458d927,9ad3b432-5b49-44ee-9d8d-83c36458d927,1,0,a9967bff-53b9-4295-a253-3647d956d3cb,a9967bff-53b9-4295-a253-3647d956d3cb,1,0,75f0fd5b-c594-4f3a-8ff2-3fdadf1dc96d,75f0fd5b-c594-4f3a-8ff2-3fdadf1dc96d,1,0,b8a31397-8974-44ec-92b0-7cbdc481cf7e,b8a31397-8974-44ec-92b0-7cbdc481cf7e,1,0,b29c7c0d-03eb-422b-a899-ba9a7eba99f6,b29c7c0d-03eb-422b-a899-ba9a7eba99f6,1,0,fb16c4d5-854c-4525-92be-b21fa2df5b0d,fb16c4d5-854c-4525-92be-b21fa2df5b0d,1,0,5771de21-2086-432b-ad91-de14a39bd5bc,5771de21-2086-432b-ad91-de14a39bd5bc,1,0,b15bcf3b-0228-4d02-8f20-cd6ba82f7585,b15bcf3b-0228-4d02-8f20-cd6ba82f7585,1,0,ed96fbfa-bda7-405c-9073-d0b6feffedad,ed96fbfa-bda7-405c-9073-d0b6feffedad,1,0,50c724cb-dde1-4313-9492-b1750bd0afc1,50c724cb-dde1-4313-9492-b1750bd0afc1,1,0,12901981-6106-4471-ab3a-e127c2bb4ebd,12901981-6106-4471-ab3a-e127c2bb4ebd,1,0,17ad1497-fa0e-469f-b2e2-b94a6f848ec5,17ad1497-fa0e-469f-b2e2-b94a6f848ec5,1,0,d5ea5dea-233d-4106-b9ba-f030d4f762ef,d5ea5dea-233d-4106-b9ba-f030d4f762ef,1,0,903af05e-5ac5-46aa-843b-d74f9e417c1d,903af05e-5ac5-46aa-843b-d74f9e417c1d,1,0,4dc4862e-74c3-469d-863b-09fdbe0d6be0,4dc4862e-74c3-469d-863b-09fdbe0d6be0,1,0,a344290a-c9be-47a7-95ad-ced1b52a0995,a344290a-c9be-47a7-95ad-ced1b52a0995,1,0,a4e56049-4de9-40a3-8197-a5c84a11f516,a4e56049-4de9-40a3-8197-a5c84a11f516,1,0,339c9220-fd5b-45d3-b300-cdcc8788f87e,339c9220-fd5b-45d3-b300-cdcc8788f87e,1,0,02d7d401-3c0c-4fd0-b096-1f73b6ec14c3,02d7d401-3c0c-4fd0-b096-1f73b6ec14c3,1,0,9042a6de-5048-432d-a448-7e21f2d1d24a,9042a6de-5048-432d-a448-7e21f2d1d24a,1,0,350d46bf-114e-48e7-90c6-6708d949f20d,350d46bf-114e-48e7-90c6-6708d949f20d,1,0,d047caa8-7bcf-41ac-a18e-97877d6e0a2a,d047caa8-7bcf-41ac-a18e-97877d6e0a2a,1,0,aac20ff3-5873-432e-b763-14411e623d41,aac20ff3-5873-432e-b763-14411e623d41,1,0,fbc4df3e-c235-4197-8c1f-a5e39ac63a8c,fbc4df3e-c235-4197-8c1f-a5e39ac63a8c,1,0,6df44466-8750-481a-9baf-c924f0d45353,6df44466-8750-481a-9baf-c924f0d45353,1,0,110121eb-a0eb-4662-8911-3dcc3d341a73,110121eb-a0eb-4662-8911-3dcc3d341a73,1,0,f8980c18-6b9c-4e45-919a-22e976d2a846,f8980c18-6b9c-4e45-919a-22e976d2a846,1,0,c946efb7-c67e-49c1-bf56-d3c2d7220acd,c946efb7-c67e-49c1-bf56-d3c2d7220acd,1,0,7ed6bd83-b61d-4db4-8549-acacbdda6ca2,7ed6bd83-b61d-4db4-8549-acacbdda6ca2,1,0,6b7c9f74-f2b6-463e-acb9-9f82901986cf,6b7c9f74-f2b6-463e-acb9-9f82901986cf,1,0,fc4c1d64-132b-4687-a37d-05000fdb4ba5,fc4c1d64-132b-4687-a37d-05000fdb4ba5,1,0,528777cd-090b-4b70-82f5-56def98c5893,528777cd-090b-4b70-82f5-56def98c5893,1,0,49dbe467-8832-4ede-9a05-494248619aeb,49dbe467-8832-4ede-9a05-494248619aeb,1,0,460ed9ca-10c2-491c-a641-b92ffc2a8e7c,460ed9ca-10c2-491c-a641-b92ffc2a8e7c,1,0,bd5fadd3-9264-4c3b-9bd5-51e91847a6fb,bd5fadd3-9264-4c3b-9bd5-51e91847a6fb,1,0,09c73108-8528-4970-9b7f-fff9eda7816a,09c73108-8528-4970-9b7f-fff9eda7816a,1,0,40aa936e-cb1c-4ae9-85f1-6d930a5815cc,40aa936e-cb1c-4ae9-85f1-6d930a5815cc,1,0,f568245a-d158-45dc-af92-2d411f12db7b,f568245a-d158-45dc-af92-2d411f12db7b,1,0,0f17cdac-aa17-45e6-b3d0-220b13345390,0f17cdac-aa17-45e6-b3d0-220b13345390,1,0,c675db75-d0c3-4026-b97c-6b23ecbb336a,c675db75-d0c3-4026-b97c-6b23ecbb336a,1,0,469f67fa-98b0-44b0-abd4-cae136c02834,469f67fa-98b0-44b0-abd4-cae136c02834,1,0,16a18458-999c-420e-80df-8fc10855746c,16a18458-999c-420e-80df-8fc10855746c,1,0,b794f222-0fde-439f-97a3-0da74075b415,b794f222-0fde-439f-97a3-0da74075b415,1,0,3a716aad-9b2c-48a7-b802-80732066391b,3a716aad-9b2c-48a7-b802-80732066391b,1,0,480d959f-aac8-4241-875f-78e1c1f32621,480d959f-aac8-4241-875f-78e1c1f32621,1,0,496e5de8-d75c-4536-9993-75374f070b40,496e5de8-d75c-4536-9993-75374f070b40,1,0,b4e610ba-c9c8-4b25-903b-e567dcbc2556,b4e610ba-c9c8-4b25-903b-e567dcbc2556,1,0,48febdbd-a085-4113-8511-ed7ff6be7d3c,48febdbd-a085-4113-8511-ed7ff6be7d3c,1,0,49413232-c0c3-4983-9d10-291a0399281b,49413232-c0c3-4983-9d10-291a0399281b,1,0,032bb782-96a7-4c1b-8b8f-eb4e18b555b7,032bb782-96a7-4c1b-8b8f-eb4e18b555b7,1,0,b9b076bb-38ab-4a94-8226-41a4d4d7432c,b9b076bb-38ab-4a94-8226-41a4d4d7432c,1,0,e12da8db-4037-473e-ba2b-d0ceb4534dcb,e12da8db-4037-473e-ba2b-d0ceb4534dcb,1,0,789514e5-8ea3-4a5e-88c5-ed89c4135866,789514e5-8ea3-4a5e-88c5-ed89c4135866,1,0,a16768ff-6137-43d8-8784-4805ed83632a,a16768ff-6137-43d8-8784-4805ed83632a,1,0,61971286-9f94-4a27-aa34-e10848adb70a,61971286-9f94-4a27-aa34-e10848adb70a,1,0,1e75d143-3452-496e-a137-6d7f4c4ed019,1e75d143-3452-496e-a137-6d7f4c4ed019,1,0,e0619d14-c658-4eb5-841a-3a029de28be4,e0619d14-c658-4eb5-841a-3a029de28be4,1,0,99a3b660-7875-47f7-9c6c-c552e5673deb,99a3b660-7875-47f7-9c6c-c552e5673deb,1,0,2bdcf3a5-c8e1-492c-afee-f9db68e2fbb6,2bdcf3a5-c8e1-492c-afee-f9db68e2fbb6,1,0,41cbf934-ea54-41df-abf0-09f319d2e67a,41cbf934-ea54-41df-abf0-09f319d2e67a,1,0,47246084-a5f8-4d0f-b4e2-204c1b97483a,47246084-a5f8-4d0f-b4e2-204c1b97483a,1,0,e58233ec-6cfc-4a8b-9929-689fa69cdb07,e58233ec-6cfc-4a8b-9929-689fa69cdb07,1,0,3291a891-a47c-43ca-b088-aecd3867d38c,3291a891-a47c-43ca-b088-aecd3867d38c,1,0,56cde2b4-00f2-49ba-b407-16e241c17fd2,56cde2b4-00f2-49ba-b407-16e241c17fd2,1,0,bd84fb2b-4c52-4e2f-a8c5-f289b8336145,bd84fb2b-4c52-4e2f-a8c5-f289b8336145,1,0,219ed110-f2a0-41c1-ac5a-02301b248c54,219ed110-f2a0-41c1-ac5a-02301b248c54,1,0,1c722dfd-2b07-4985-9188-17353de24771,1c722dfd-2b07-4985-9188-17353de24771,1,0,1a630496-2cdd-4c89-a1aa-ed20545ad133,1a630496-2cdd-4c89-a1aa-ed20545ad133,1,0,b0dd02ee-ea6a-43f2-baa2-abac0a1ab4bb,b0dd02ee-ea6a-43f2-baa2-abac0a1ab4bb,1,0,b19cea0e-e57a-4969-8daf-f48d3d16705f,b19cea0e-e57a-4969-8daf-f48d3d16705f,1,0,d4059340-3361-4baa-ae48-ecbfb9800a2e,d4059340-3361-4baa-ae48-ecbfb9800a2e,1,0,f78f6c43-dd90-4117-acf7-ed5b951cb964,f78f6c43-dd90-4117-acf7-ed5b951cb964,1,0,8eebd519-4989-4784-82b8-39d77eebfb17,8eebd519-4989-4784-82b8-39d77eebfb17,1,0,0a2cb6e3-d9fa-4881-b136-7b6db9efca07,0a2cb6e3-d9fa-4881-b136-7b6db9efca07,1,0,c1561ed9-2fbf-4c12-a484-07f8adbe8fa3,c1561ed9-2fbf-4c12-a484-07f8adbe8fa3,1,0,4527877b-5723-4aa5-8705-98174ac9c337,4527877b-5723-4aa5-8705-98174ac9c337,1,0,d6b21e7b-df57-4280-8c95-c269b5316018,d6b21e7b-df57-4280-8c95-c269b5316018,1,0,808c468b-6322-428d-ac6a-ccf2228b05b6,808c468b-6322-428d-ac6a-ccf2228b05b6,1,0,13664bb2-738f-4d18-b382-a7bcf8105a5a,13664bb2-738f-4d18-b382-a7bcf8105a5a,1,0,f3f56abe-9248-4555-bf99-29560eb4f9ee,f3f56abe-9248-4555-bf99-29560eb4f9ee,1,0,0dbd5d55-a85f-4c7e-ac31-7ba4ab7cc371,0dbd5d55-a85f-4c7e-ac31-7ba4ab7cc371,1,0,dd9d09ef-3b4b-4bb5-9408-9c4080049bb3,dd9d09ef-3b4b-4bb5-9408-9c4080049bb3,1,0,3eb43a06-b32d-4904-8489-6264d0207623,3eb43a06-b32d-4904-8489-6264d0207623,1,0,a18098cf-5a61-46b5-bd55-cc61d15aa6bc,a18098cf-5a61-46b5-bd55-cc61d15aa6bc,1,0,18615fe1-cfee-4888-9c09-88d1c5db39eb,18615fe1-cfee-4888-9c09-88d1c5db39eb,1,0,63e363fa-8b0c-4d48-ab1b-9c953c5ed4c0,63e363fa-8b0c-4d48-ab1b-9c953c5ed4c0,1,0,087c83c0-75e7-476b-b7c6-5be55498a190,087c83c0-75e7-476b-b7c6-5be55498a190,1,0,ec5e5413-9e77-4929-83b8-6fee70688b28,ec5e5413-9e77-4929-83b8-6fee70688b28,1,0,59cd8e3f-ecf3-4e1d-bd98-41551d5d6f68,59cd8e3f-ecf3-4e1d-bd98-41551d5d6f68,1,0,8390c864-2b84-4c45-8583-cb4a4ab49168,8390c864-2b84-4c45-8583-cb4a4ab49168,1,0,1b2fefca-fef5-4319-90cc-325444cb63a6,1b2fefca-fef5-4319-90cc-325444cb63a6,1,0,34a128be-8fbb-4dd8-ac23-9f35041feb63,34a128be-8fbb-4dd8-ac23-9f35041feb63,1,0,baa31006-e0d6-496e-a60e-27b3dfd19397,baa31006-e0d6-496e-a60e-27b3dfd19397,1,0,3007d8ff-3942-45ed-bac5-8a6c40ca060c,3007d8ff-3942-45ed-bac5-8a6c40ca060c,1,0,8bfe1474-fd12-4744-a9ab-3383bfe766b3,8bfe1474-fd12-4744-a9ab-3383bfe766b3,1,0,3af97375-f776-4129-9521-b8d65d795db6,3af97375-f776-4129-9521-b8d65d795db6,1,0,0e98801b-a45b-44cb-a341-7e43d723f6ed,0e98801b-a45b-44cb-a341-7e43d723f6ed,1,0,5b71cd3b-d5b8-4632-9678-0ab1e1d2ea91,5b71cd3b-d5b8-4632-9678-0ab1e1d2ea91,1,0,103ac72d-c386-40ea-89d4-35798d064f1a,103ac72d-c386-40ea-89d4-35798d064f1a,1,0,645ceb40-1e9f-4a67-aa7f-b9002fa066b3,645ceb40-1e9f-4a67-aa7f-b9002fa066b3,1,0,d1fe15e9-8e5c-4819-85cd-24ab31409437,d1fe15e9-8e5c-4819-85cd-24ab31409437,1,0,c8c5bfe9-ead5-4e79-9fd5-60ad275faa1e,c8c5bfe9-ead5-4e79-9fd5-60ad275faa1e,1,0,8f9826b6-890e-4ba3-a1f2-bc9ebb3238dd,8f9826b6-890e-4ba3-a1f2-bc9ebb3238dd,1,0,74f68bda-17b1-4b3c-aa64-b1014300f9b5,74f68bda-17b1-4b3c-aa64-b1014300f9b5,1,0,90a195b0-7f64-4ccb-986e-8c8c2cf12ccd,90a195b0-7f64-4ccb-986e-8c8c2cf12ccd,1,0,9f9d1f8c-7ff9-420f-a426-48f33493d9f2,9f9d1f8c-7ff9-420f-a426-48f33493d9f2,1,0,ab7bc0bc-b4b8-4a4a-aecc-1cbe14fd4975,ab7bc0bc-b4b8-4a4a-aecc-1cbe14fd4975,1,0,9f8d9594-674f-49ef-9fb8-bb64d5c40a37,9f8d9594-674f-49ef-9fb8-bb64d5c40a37,1,0,47ee7d38-9fa9-458d-abee-e11270f79494,47ee7d38-9fa9-458d-abee-e11270f79494,1,0,bb6b83ff-81f4-4c39-ad8e-8cda9ccd9cb9,bb6b83ff-81f4-4c39-ad8e-8cda9ccd9cb9,1,0,076daecf-8fcb-496b-9f13-c4faa3a8a722,076daecf-8fcb-496b-9f13-c4faa3a8a722,1,0,f1a8357b-7083-42b3-ab5d-36223a3dd2a4,f1a8357b-7083-42b3-ab5d-36223a3dd2a4,1,0,296d7725-bdd3-4210-9db9-31de5711ea9b,296d7725-bdd3-4210-9db9-31de5711ea9b,1,0,6ecc5bc2-20b3-46f3-8019-ae1e1f3de319,6ecc5bc2-20b3-46f3-8019-ae1e1f3de319,1,0,1d05f89a-23dd-4d30-8786-abe8a9a39a40,1d05f89a-23dd-4d30-8786-abe8a9a39a40,1,0,245c2c6c-7b7f-4381-9304-1d7287a215fa,245c2c6c-7b7f-4381-9304-1d7287a215fa,1,0,fd17bbe4-34d9-4832-8eea-8eeb82194e4c,fd17bbe4-34d9-4832-8eea-8eeb82194e4c,1,0,d4c72d7f-7e1f-473c-9a2b-fa675fc78731,d4c72d7f-7e1f-473c-9a2b-fa675fc78731,1,0,8bb5be12-98df-4a38-bffe-432fb13d8101,8bb5be12-98df-4a38-bffe-432fb13d8101,1,0,94209023-ce88-401c-9aff-526fb7e43709,94209023-ce88-401c-9aff-526fb7e43709,1,0,22b99094-b52a-4244-ae91-53848d82560b,22b99094-b52a-4244-ae91-53848d82560b,1,0,22c9e2fa-c1f0-41ec-b6f2-9d7357dd3479,22c9e2fa-c1f0-41ec-b6f2-9d7357dd3479,1,0,b0002134-d5c9-4508-9f0e-97f92461b590,b0002134-d5c9-4508-9f0e-97f92461b590,1,0,1506ec71-cb38-4831-a29d-dac2c4deddda,1506ec71-cb38-4831-a29d-dac2c4deddda,1,0,e05fd82b-b77b-4b7f-b300-43653017f341,e05fd82b-b77b-4b7f-b300-43653017f341,1,0,d3b5e5ee-2317-43b4-b669-3af2ce635cf3,d3b5e5ee-2317-43b4-b669-3af2ce635cf3,1,0,f15a0526-c207-42fe-aed9-438ae0c4a4b8,f15a0526-c207-42fe-aed9-438ae0c4a4b8,1,0,9d444a41-7190-48fb-9a4a-08f8e7bc32a3,9d444a41-7190-48fb-9a4a-08f8e7bc32a3,1,0,8583cab0-0620-4346-96e0-bcac40981b8a,8583cab0-0620-4346-96e0-bcac40981b8a,1,0,e1dfba26-c682-42a2-8e15-fe6f535c9ce1,e1dfba26-c682-42a2-8e15-fe6f535c9ce1,1,0,095990b1-187b-400c-941a-275f272239ca,095990b1-187b-400c-941a-275f272239ca,1,0,ba108470-350d-40c3-bb44-9852c2aa8c97,ba108470-350d-40c3-bb44-9852c2aa8c97,1,0,a37c33fa-64b0-4a1b-846a-0a236bad44f8,a37c33fa-64b0-4a1b-846a-0a236bad44f8,1,0,d8481ce1-7f64-47b0-8fc0-6642ae93aca1,d8481ce1-7f64-47b0-8fc0-6642ae93aca1,1,0,a50f4324-da44-449b-b500-74228b2aa7e0,a50f4324-da44-449b-b500-74228b2aa7e0,1,0,04236716-9c36-4a1d-b4fb-4b8c65644ab4,04236716-9c36-4a1d-b4fb-4b8c65644ab4,1,0,97276702-6686-4ac4-8360-d85369a08b20,97276702-6686-4ac4-8360-d85369a08b20,1,0,e5450ee7-e891-4f58-9a01-d2d81d5ddd6d,e5450ee7-e891-4f58-9a01-d2d81d5ddd6d,1,0,068883fe-d7ae-40e7-ad82-864867916daa,068883fe-d7ae-40e7-ad82-864867916daa,1,0,c1b02568-2095-4f83-8543-2402f67dbe3d,c1b02568-2095-4f83-8543-2402f67dbe3d,1,0,8b749b7a-5e68-4523-adc2-8b3c5ce9701c,8b749b7a-5e68-4523-adc2-8b3c5ce9701c,1,0,bf3c7edc-0791-459e-a7ac-b7e8d7ed97fe,bf3c7edc-0791-459e-a7ac-b7e8d7ed97fe,1,0,7dc6d13e-4edf-4e6a-9ee9-4b32ad889ecf,7dc6d13e-4edf-4e6a-9ee9-4b32ad889ecf,1,0,aecbd726-6952-49e6-b544-4c5cc764c24c,aecbd726-6952-49e6-b544-4c5cc764c24c,1,0,d335cfbf-bc78-4274-a178-10f60372474a,d335cfbf-bc78-4274-a178-10f60372474a,1,0,0f4411b3-addf-4fcf-8da8-c5140dea356c,0f4411b3-addf-4fcf-8da8-c5140dea356c,1,0,c501f9ab-d01b-4137-8cd0-e66103117c84,c501f9ab-d01b-4137-8cd0-e66103117c84,1,0,8d5d4e0f-b7b5-4cdc-aedc-571517fa101f,8d5d4e0f-b7b5-4cdc-aedc-571517fa101f,1,0,66e65355-1424-4c74-801c-faf5357257aa,66e65355-1424-4c74-801c-faf5357257aa,1,0,0a93187b-7ae4-4985-8089-3099dfec2b48,0a93187b-7ae4-4985-8089-3099dfec2b48,1,0,044458f3-ed9b-4afb-ae73-8f9162c032bf,044458f3-ed9b-4afb-ae73-8f9162c032bf,1,0,578f618e-5f4a-4e86-959d-39b59e973936,578f618e-5f4a-4e86-959d-39b59e973936,1,0,f74ede2e-2d28-4224-ba44-773eda7760a4,f74ede2e-2d28-4224-ba44-773eda7760a4,1,0,217df06a-1bdf-4394-b617-ed756ff17bc6,217df06a-1bdf-4394-b617-ed756ff17bc6,1,0,a1572e97-a487-497a-9062-49315e237e0f,a1572e97-a487-497a-9062-49315e237e0f,1,0,969cdcb8-0f2a-427f-93a0-e7ae38f465e8,969cdcb8-0f2a-427f-93a0-e7ae38f465e8,1,0,3c5d87a0-cfce-464a-b946-64c5a589a376,3c5d87a0-cfce-464a-b946-64c5a589a376,1,0,2d22c67d-4795-4a6b-bc81-a3ed1eb28367,2d22c67d-4795-4a6b-bc81-a3ed1eb28367,1,0,763de8d1-7f53-41b6-8d97-7da724e9f763,763de8d1-7f53-41b6-8d97-7da724e9f763,1,0,75592ed4-2aab-4dfc-ae7b-d93e2a98370f,75592ed4-2aab-4dfc-ae7b-d93e2a98370f,1,0,4ad59c75-cca4-4968-82e6-babd72d8b318,4ad59c75-cca4-4968-82e6-babd72d8b318,1,0,c248de15-63a2-48ec-8695-7a5213d4fc9b,c248de15-63a2-48ec-8695-7a5213d4fc9b,1,0,272ff0f9-7266-4c22-be12-fe62682b56a5,272ff0f9-7266-4c22-be12-fe62682b56a5,1,0,9f141dd5-d866-4c25-b58a-a7766a08b4e7,9f141dd5-d866-4c25-b58a-a7766a08b4e7,1,0,0570d846-889d-4cfc-98fb-a1ad0181597f,0570d846-889d-4cfc-98fb-a1ad0181597f,1,0,19e17c58-953f-4917-8b6a-c88808fcca36,19e17c58-953f-4917-8b6a-c88808fcca36,1,0,4804316d-3765-4a83-8438-10e8e82656db,4804316d-3765-4a83-8438-10e8e82656db,1,0,59458556-e343-4215-8e6c-69f924ec4183,59458556-e343-4215-8e6c-69f924ec4183,1,0,dd553dca-7eba-41bf-8939-2c61e170ff65,dd553dca-7eba-41bf-8939-2c61e170ff65,1,0,b4ecf3dc-a2aa-406e-a593-1700ea8746bc,b4ecf3dc-a2aa-406e-a593-1700ea8746bc,1,0,933d7ce7-ea82-4b26-8d1b-dc92cb5ac92d,933d7ce7-ea82-4b26-8d1b-dc92cb5ac92d,1,0,8099e978-28cc-4ade-ac5a-3785f3a45f70,8099e978-28cc-4ade-ac5a-3785f3a45f70,1,0,11eff613-8077-41fa-8cb8-5e8dc27d0e4f,11eff613-8077-41fa-8cb8-5e8dc27d0e4f,1,0,fe023ca5-f11a-4b98-99c1-363508e4ea4a,fe023ca5-f11a-4b98-99c1-363508e4ea4a,1,0,6f8d515e-13d9-45f8-9793-3757f5b85f81,6f8d515e-13d9-45f8-9793-3757f5b85f81,1,0,25ec541c-c437-4318-b2a8-5146df6ae080,25ec541c-c437-4318-b2a8-5146df6ae080,1,0,148754ed-3063-40a7-a3c3-8ad105552370,148754ed-3063-40a7-a3c3-8ad105552370,1,0,ab3f0862-c355-4fd7-a2a7-4eb8278de510,ab3f0862-c355-4fd7-a2a7-4eb8278de510,1,0,85bbfe20-a6a4-49ca-8f20-342f4cbe8258,85bbfe20-a6a4-49ca-8f20-342f4cbe8258,1,0,c12c3f3b-3a96-4e70-b131-8d7bd765095f,c12c3f3b-3a96-4e70-b131-8d7bd765095f,1,0,70ee4b32-80d1-4b79-a322-0433f1b8c7f1,70ee4b32-80d1-4b79-a322-0433f1b8c7f1,1,0,c563588c-346e-499e-ae33-9ff3cb62e658,c563588c-346e-499e-ae33-9ff3cb62e658,1,0,40dbc001-97b6-4188-8de9-3adac670bac4,40dbc001-97b6-4188-8de9-3adac670bac4,1,0,58589e42-9ff2-4ad4-bd98-a75ab6873625,58589e42-9ff2-4ad4-bd98-a75ab6873625,1,0,92255ded-6c44-43be-b0b1-fd03c2b78c8b,92255ded-6c44-43be-b0b1-fd03c2b78c8b,1,0,dfe6da42-f024-45c5-beea-ceccaf3a5faa,dfe6da42-f024-45c5-beea-ceccaf3a5faa,1,0,08f3e8f1-284c-4059-864a-42499d48596c,08f3e8f1-284c-4059-864a-42499d48596c,1,0,3d715c1b-9a5e-408d-98d6-5345d274144b,3d715c1b-9a5e-408d-98d6-5345d274144b,1,0,3f88bc69-e140-48b6-a2f9-24f6a391bff2,3f88bc69-e140-48b6-a2f9-24f6a391bff2,1,0,65eb5361-074c-451d-a5d8-d16b6ecccf82,65eb5361-074c-451d-a5d8-d16b6ecccf82,1,0,f7c8cab8-c634-4cf3-9183-c15c915231f8,f7c8cab8-c634-4cf3-9183-c15c915231f8,1,0,563a33a6-9eff-4ff1-9eba-dafc235d2ede,563a33a6-9eff-4ff1-9eba-dafc235d2ede,1,0,fbc21f7d-c272-41ea-b048-c5af294ab5ed,fbc21f7d-c272-41ea-b048-c5af294ab5ed,1,0,088c38fa-1c8f-42e7-aa72-5f5dd8cfc1c6,088c38fa-1c8f-42e7-aa72-5f5dd8cfc1c6,1,0,370f97ee-9aed-4a0a-aefc-647d973e6741,370f97ee-9aed-4a0a-aefc-647d973e6741,1,0,c586d28e-a3ec-4201-8ba0-d453bb7c5293,c586d28e-a3ec-4201-8ba0-d453bb7c5293,1,0,d84f12b0-6e01-4646-9abd-51578716433d,d84f12b0-6e01-4646-9abd-51578716433d,1,0,a4458c18-72eb-4fc0-8dc6-fccab93b0898,a4458c18-72eb-4fc0-8dc6-fccab93b0898,1,0,3a0ceb25-60f5-4fec-ab2e-e667939bfe21,3a0ceb25-60f5-4fec-ab2e-e667939bfe21,1,0,27db4549-df2f-4856-b07f-3c9399cdee9c,27db4549-df2f-4856-b07f-3c9399cdee9c,1,0,f667d49a-8077-450f-9442-2ea4fee7b62d,f667d49a-8077-450f-9442-2ea4fee7b62d,1,0,782b1285-9618-4ec9-b817-ce93e2d24d4d,782b1285-9618-4ec9-b817-ce93e2d24d4d,1,0,dd3e202f-6225-4061-a6ab-f29cd314ab08,dd3e202f-6225-4061-a6ab-f29cd314ab08,1,0,483b7600-e46f-4739-94c8-8637c62750a0,483b7600-e46f-4739-94c8-8637c62750a0,1,0,bdcf5f7a-2888-4143-b46d-1bf0dcc16872,bdcf5f7a-2888-4143-b46d-1bf0dcc16872,1,0,bce8a955-0a0e-4771-9763-4f5d319d9848,bce8a955-0a0e-4771-9763-4f5d319d9848,1,0,090c475c-fb33-46a9-a0ed-fb9d7def2ca5,090c475c-fb33-46a9-a0ed-fb9d7def2ca5,1,0,d10c3389-5bf0-4c73-ab92-786eb19d1676,d10c3389-5bf0-4c73-ab92-786eb19d1676,1,0,c824c20d-7503-4a77-81b8-2a68b20eab68,c824c20d-7503-4a77-81b8-2a68b20eab68,1,0,a0db92c6-b39e-41ab-82e3-161e32f67bda,a0db92c6-b39e-41ab-82e3-161e32f67bda,1,0,88f91187-65d3-4684-992d-20ca29d3755a,88f91187-65d3-4684-992d-20ca29d3755a,1,0,da725701-d4fb-40a4-a63b-feaa8559d8cf,da725701-d4fb-40a4-a63b-feaa8559d8cf,1,0,0a44cfc8-0b55-4aed-990f-e97831494a3c,0a44cfc8-0b55-4aed-990f-e97831494a3c,1,0,c9adbe7c-ca6e-4048-a498-9b48f75d9b45,c9adbe7c-ca6e-4048-a498-9b48f75d9b45,1,0,c7cb80d6-13d9-49af-acdd-6d10dffd1e17,c7cb80d6-13d9-49af-acdd-6d10dffd1e17,1,0,9a3f04d7-b956-4e87-ac28-63f7afba1771,9a3f04d7-b956-4e87-ac28-63f7afba1771,1,0,41b23a18-0c4e-455f-b249-2f2eba8119db,41b23a18-0c4e-455f-b249-2f2eba8119db,1,0,ff697cb8-ab88-4634-94e3-c06a401f71ff,ff697cb8-ab88-4634-94e3-c06a401f71ff,1,0,cf98131d-2b1a-4a07-a8dd-72af01934a8b,cf98131d-2b1a-4a07-a8dd-72af01934a8b,1,0,bef1eead-3f8b-48b7-99f3-46ba332fb60d,bef1eead-3f8b-48b7-99f3-46ba332fb60d,1,0,c1b3d4c8-8c53-4452-bec5-9742bb827d8f,c1b3d4c8-8c53-4452-bec5-9742bb827d8f,1,0,b6e1d584-6817-4f06-b5b2-57037a23ce6f,b6e1d584-6817-4f06-b5b2-57037a23ce6f,1,0,1b5d2ded-3f58-4b3e-8678-48191897e408,1b5d2ded-3f58-4b3e-8678-48191897e408,1,0,62fd5457-0cfd-4273-8965-4b5bf9170209,62fd5457-0cfd-4273-8965-4b5bf9170209,1,0,88701798-0c0e-4d33-a68b-3eddfc25d835,88701798-0c0e-4d33-a68b-3eddfc25d835,1,0,c0d704b5-32de-4bb8-9525-f7d1da828ae5,c0d704b5-32de-4bb8-9525-f7d1da828ae5,1,0,b5b5ee06-4de8-4776-98f0-3e8e1b31985a,b5b5ee06-4de8-4776-98f0-3e8e1b31985a,1,0,2f999502-68e5-4823-8f94-aec98b1a1b1d,2f999502-68e5-4823-8f94-aec98b1a1b1d,1,0,2d064409-7f2a-4d2e-9155-6b34e4373e89,2d064409-7f2a-4d2e-9155-6b34e4373e89,1,0,fc51a562-01bb-47c3-bac5-89f78f64a5f3,fc51a562-01bb-47c3-bac5-89f78f64a5f3,1,0,8a33a6cd-f56d-405b-9515-9fc04d30e27a,8a33a6cd-f56d-405b-9515-9fc04d30e27a,1,0,9b199470-723d-4b72-9fdc-2bed2b7bc483,9b199470-723d-4b72-9fdc-2bed2b7bc483,1,0,5bb9aff1-f4ee-4c02-8e3f-f070bfbb8339,5bb9aff1-f4ee-4c02-8e3f-f070bfbb8339,1,0,6a06f9ee-8832-4e9e-aeba-b4cb9573c048,6a06f9ee-8832-4e9e-aeba-b4cb9573c048,1,0,38fa770e-f38d-4fdf-bb7a-56cfe76a8ab2,38fa770e-f38d-4fdf-bb7a-56cfe76a8ab2,1,0,afc4ce2a-60b6-48d0-ada0-2f651d050888,afc4ce2a-60b6-48d0-ada0-2f651d050888,1,0,5f289266-fc3c-4345-b7ab-cf863e2a6ccd,5f289266-fc3c-4345-b7ab-cf863e2a6ccd,1,0,5932f0d8-9012-4382-8c72-b1a5f4fbc937,5932f0d8-9012-4382-8c72-b1a5f4fbc937,1,0,66f1ff23-8fec-4be4-914c-43b7dee1c2a2,66f1ff23-8fec-4be4-914c-43b7dee1c2a2,1,0,56c3471e-459a-46ba-96ea-9f872b3ad54a,56c3471e-459a-46ba-96ea-9f872b3ad54a,1,0,2113195b-1553-4137-9e45-2cc62c72ee47,2113195b-1553-4137-9e45-2cc62c72ee47,1,0,1250f5b1-c766-434c-8d28-69b74a536294,1250f5b1-c766-434c-8d28-69b74a536294,1,0,80bc9b8b-7b17-4dbb-bca6-8465d6b01e0b,80bc9b8b-7b17-4dbb-bca6-8465d6b01e0b,1,0,6327e23d-6070-4b64-81c6-0d1a33eaae93,6327e23d-6070-4b64-81c6-0d1a33eaae93,1,0,4d086a1f-34e0-43f9-9401-d82e55746a9d,4d086a1f-34e0-43f9-9401-d82e55746a9d,1,0,5a4c543a-27d5-423b-a4d0-3952ea2817af,5a4c543a-27d5-423b-a4d0-3952ea2817af,1,0,6cc8da97-8752-4c6b-88ef-f7e8ff5dd693,6cc8da97-8752-4c6b-88ef-f7e8ff5dd693,1,0,8683dfa2-0ad9-4345-85e8-a6d2e40881e5,8683dfa2-0ad9-4345-85e8-a6d2e40881e5,1,0,e70ec2f5-5723-4fb0-9b81-c0979943a46a,e70ec2f5-5723-4fb0-9b81-c0979943a46a,1,0,eb125af7-4e19-4235-8d03-361b60a8f68a,eb125af7-4e19-4235-8d03-361b60a8f68a,1,0,bcd1077a-2d19-4bc1-bded-a85818765ac1,bcd1077a-2d19-4bc1-bded-a85818765ac1,1,0,b79ce000-28f7-4630-a5a3-cecb9ef8a0a1,b79ce000-28f7-4630-a5a3-cecb9ef8a0a1,1,0,3ff0b4e6-6afa-4aa8-a20e-84a9d2d74f86,3ff0b4e6-6afa-4aa8-a20e-84a9d2d74f86,1,0,eb747bc2-f81f-4ec3-b216-2457a87683ae,eb747bc2-f81f-4ec3-b216-2457a87683ae,1,0,0ad77f2c-24db-4fda-a79f-984c0c8beac0,0ad77f2c-24db-4fda-a79f-984c0c8beac0,1,0,cfb3ea4b-a092-4c5f-aef0-a83ff8829d24,cfb3ea4b-a092-4c5f-aef0-a83ff8829d24,1,0,02bc23cf-c600-4470-bb84-59cdac35eea9,02bc23cf-c600-4470-bb84-59cdac35eea9,1,0,b7753aea-3798-4be9-b9ce-e4145fbea58a,b7753aea-3798-4be9-b9ce-e4145fbea58a,1,0,ce3d12b8-da77-4ac5-a7bf-a02809ed3f1e,ce3d12b8-da77-4ac5-a7bf-a02809ed3f1e,1,0,cf3819dd-6564-47cd-9b22-790433ca9607,cf3819dd-6564-47cd-9b22-790433ca9607,1,0,231f7349-0e98-497a-9df3-8123a5ea20f0,231f7349-0e98-497a-9df3-8123a5ea20f0,1,0,0c7790f8-db18-4d1d-aa34-d0c7097d0576,0c7790f8-db18-4d1d-aa34-d0c7097d0576,1,0,926b936a-4147-40ef-92c7-008713d5a8b4,926b936a-4147-40ef-92c7-008713d5a8b4,1,0,3446ba39-fbd6-462f-af51-add3173ce1fc,3446ba39-fbd6-462f-af51-add3173ce1fc,1,0,7510d830-cf29-408c-9f2a-77e30382beeb,7510d830-cf29-408c-9f2a-77e30382beeb,1,0,133d9c01-751e-47a1-93a5-46cfa1b85a51,133d9c01-751e-47a1-93a5-46cfa1b85a51,1,0,42b81035-bc9b-4b8a-b1ee-55c24c6bb875,42b81035-bc9b-4b8a-b1ee-55c24c6bb875,1,0,c4e58e2b-2a73-44f2-8a4b-dded01944c35,c4e58e2b-2a73-44f2-8a4b-dded01944c35,1,0,ada738c2-8f68-4f25-afc2-ad88164f5fea,ada738c2-8f68-4f25-afc2-ad88164f5fea,1,0,683cc434-af64-4afb-835b-c20e7e17c32e,683cc434-af64-4afb-835b-c20e7e17c32e,1,0,19aad3e9-704b-4057-8a1d-e6131af2da2d,19aad3e9-704b-4057-8a1d-e6131af2da2d,1,0,6522829d-bb7f-4bac-9c66-21d936d9d3c6,6522829d-bb7f-4bac-9c66-21d936d9d3c6,1,0,aa4c2d2c-b1f8-4525-bdef-24b0dce4724a,aa4c2d2c-b1f8-4525-bdef-24b0dce4724a,1,0,f7c432c0-ee57-40f3-98c2-b94401042395,f7c432c0-ee57-40f3-98c2-b94401042395,1,0,b7dd0b15-bbf0-4959-8d63-fb00c2519d3d,b7dd0b15-bbf0-4959-8d63-fb00c2519d3d,1,0,d58fea2a-34b7-4404-9939-faf5bf1f19c6,d58fea2a-34b7-4404-9939-faf5bf1f19c6,1,0,b458ed6f-e0d2-4830-8005-16f08612c76a,b458ed6f-e0d2-4830-8005-16f08612c76a,1,0,988787d0-4704-4aa7-b02f-96492784d667,988787d0-4704-4aa7-b02f-96492784d667,1,0,66d837ed-be23-4e0a-8cbc-c918f234998d,66d837ed-be23-4e0a-8cbc-c918f234998d,1,0,010bcfe3-a299-4333-8faa-96b08356a097,010bcfe3-a299-4333-8faa-96b08356a097,1,0,4735b8d0-5b06-4640-9d68-380ba4165c01,4735b8d0-5b06-4640-9d68-380ba4165c01,1,0,adcaecde-1977-4c6d-a204-12df7d9915e2,adcaecde-1977-4c6d-a204-12df7d9915e2,1,0,348376e0-6e02-4360-95ea-f23086cabd55,348376e0-6e02-4360-95ea-f23086cabd55,1,0,d7cdbc04-3eaa-45b6-b71b-0340bf029752,d7cdbc04-3eaa-45b6-b71b-0340bf029752,1,0,f6d562ac-6bc8-4e82-9ac0-b6fc4ed41677,f6d562ac-6bc8-4e82-9ac0-b6fc4ed41677,1,0,e954636b-2410-4602-8dfd-fde852998f8b,e954636b-2410-4602-8dfd-fde852998f8b,1,0,00f82519-e522-4cf2-92ab-19a13f38baa7,00f82519-e522-4cf2-92ab-19a13f38baa7,1,0,b59f1272-69ab-4d6a-8e4b-43bfe8231c8c,b59f1272-69ab-4d6a-8e4b-43bfe8231c8c,1,0,33df37df-43d0-40d7-95dd-23655b1fdf81,33df37df-43d0-40d7-95dd-23655b1fdf81,1,0,cef5c343-440f-475e-98f1-28da65eabcf3,cef5c343-440f-475e-98f1-28da65eabcf3,1,0,979378ce-8455-4761-ae83-10e747a6656d,979378ce-8455-4761-ae83-10e747a6656d,1,0,de3cb87d-d08f-4f45-aca5-c4c526772eeb,de3cb87d-d08f-4f45-aca5-c4c526772eeb,1,0,509770b5-ddaf-477b-a79c-cec8afbaf9bc,509770b5-ddaf-477b-a79c-cec8afbaf9bc,1,0,25d72d6e-1a64-4366-85af-5789ed7806d3,25d72d6e-1a64-4366-85af-5789ed7806d3,1,0,eedf57b6-8fd6-4e80-bc0c-1583196b34eb,eedf57b6-8fd6-4e80-bc0c-1583196b34eb,1,0,ec7cc726-82a7-455e-b302-0e024d60bbab,ec7cc726-82a7-455e-b302-0e024d60bbab,1,0,1bae5c60-1027-4ff7-a607-d57da0d6e4f7,1bae5c60-1027-4ff7-a607-d57da0d6e4f7,1,0,3d18a46c-1d64-4bec-9a22-07a736abbf8f,3d18a46c-1d64-4bec-9a22-07a736abbf8f,1,0,d5c64b8e-1184-4ec5-8f02-87e037df0034,d5c64b8e-1184-4ec5-8f02-87e037df0034,1,0,6b5fb7ab-d010-483b-939d-c9f9e2d8884f,6b5fb7ab-d010-483b-939d-c9f9e2d8884f,1,0,5b0f5e4e-ef26-415b-830a-6623688e8a78,5b0f5e4e-ef26-415b-830a-6623688e8a78,1,0,b33693ac-6bc1-47e1-81ab-a3278d3596a3,b33693ac-6bc1-47e1-81ab-a3278d3596a3,1,0,caebab45-2be3-4f5d-b06d-d91c5a4122a0,caebab45-2be3-4f5d-b06d-d91c5a4122a0,1,0,7a56e6ee-3518-491f-b5af-4f1aca2462c0,7a56e6ee-3518-491f-b5af-4f1aca2462c0,1,0,61d03f9f-834b-4077-b5c7-0de85ef007d3,61d03f9f-834b-4077-b5c7-0de85ef007d3,1,0,1683afaf-db32-4267-b1d1-959836c50fb5,1683afaf-db32-4267-b1d1-959836c50fb5,1,0,1e50e4de-f091-4ccc-ba2d-8a526c20351e,1e50e4de-f091-4ccc-ba2d-8a526c20351e,1,0,7671eebd-cdf4-43c6-8d0d-2dff2f8ce975,7671eebd-cdf4-43c6-8d0d-2dff2f8ce975,1,0,83342c37-30b6-4f39-a2df-7aab425eb3bf,83342c37-30b6-4f39-a2df-7aab425eb3bf,1,0,896d8858-5574-4e36-abc0-92a2f0b6e905,896d8858-5574-4e36-abc0-92a2f0b6e905,1,0,8767bf87-b364-4e16-8371-40ae96bff7c0,8767bf87-b364-4e16-8371-40ae96bff7c0,1,0,65ba2d12-ce10-4f27-93ba-0668592edfce,65ba2d12-ce10-4f27-93ba-0668592edfce,1,0,45dba1f4-f080-4b99-abe4-63125f84f580,45dba1f4-f080-4b99-abe4-63125f84f580,1,0,24d0e61f-c9af-45f0-b6dd-00d1fefa1720,24d0e61f-c9af-45f0-b6dd-00d1fefa1720,1,0,75088623-2b34-499a-85c9-0c3f78448cf3,75088623-2b34-499a-85c9-0c3f78448cf3,1,0,f151768d-f840-4116-8fb5-bbcc0b5dd2bc,f151768d-f840-4116-8fb5-bbcc0b5dd2bc,1,0,dd6581f7-82fc-469c-ae2f-d270d810e843,dd6581f7-82fc-469c-ae2f-d270d810e843,1,0,ca0258bd-7408-45a6-8c61-6097090dad4a,ca0258bd-7408-45a6-8c61-6097090dad4a,1,0,5080a8ca-a75e-4f4f-885b-62f64434f0f2,5080a8ca-a75e-4f4f-885b-62f64434f0f2,1,0,3adbff51-6a82-40e7-9585-a030b06d0632,3adbff51-6a82-40e7-9585-a030b06d0632,1,0,c27036c4-7077-4464-b24a-46b37db4bfcf,c27036c4-7077-4464-b24a-46b37db4bfcf,1,0,99ce0c09-eae0-430b-9a20-46d96503876b,99ce0c09-eae0-430b-9a20-46d96503876b,1,0,128e9f84-5f92-4ed6-afb9-86b4b244ae58,128e9f84-5f92-4ed6-afb9-86b4b244ae58,1,0,5bff11e0-07d0-43eb-b02d-5dc6f2c9bab1,5bff11e0-07d0-43eb-b02d-5dc6f2c9bab1,1,0,13b4853f-d83d-4e30-80a4-704b740cf76f,13b4853f-d83d-4e30-80a4-704b740cf76f,1,0,32e9be21-ef2f-46fd-96ff-2ba143a8c1d9,32e9be21-ef2f-46fd-96ff-2ba143a8c1d9,1,0,9c81736c-25ce-42eb-9e7a-1fc014cbbc7d,9c81736c-25ce-42eb-9e7a-1fc014cbbc7d,1,0,655ac12f-a0e4-46fb-b11a-eaba635edfae,655ac12f-a0e4-46fb-b11a-eaba635edfae,1,0,7bccc0c6-bc80-4672-8190-4fc94cea4249,7bccc0c6-bc80-4672-8190-4fc94cea4249,1,0,82ebe1f1-2c36-4152-bc02-b8085ad614e3,82ebe1f1-2c36-4152-bc02-b8085ad614e3,1,0,68259658-c149-4a1b-b1d5-b15b232ee334,68259658-c149-4a1b-b1d5-b15b232ee334,1,0,301a9f28-2cd9-4364-9b57-a22b9e6553fa,301a9f28-2cd9-4364-9b57-a22b9e6553fa,1,0,4948d3d3-9267-4f9c-8260-5ebb63ce281f,4948d3d3-9267-4f9c-8260-5ebb63ce281f,1,0,051bc689-9357-463a-93db-55994af23a88,051bc689-9357-463a-93db-55994af23a88,1,0,2d4a8fe5-3371-42f9-8052-ec78d4df0da1,2d4a8fe5-3371-42f9-8052-ec78d4df0da1,1,0,4be19ad6-691e-4224-86ec-bc4d76a15525,4be19ad6-691e-4224-86ec-bc4d76a15525,1,0,cf9ebddd-d421-475f-8d57-6c45d817c4ec,cf9ebddd-d421-475f-8d57-6c45d817c4ec,1,0,6718e0bf-8a9d-4eab-88fd-9cd5f2bc9e58,6718e0bf-8a9d-4eab-88fd-9cd5f2bc9e58,1,0,2811d95d-6ce9-4066-99cb-ea6894b18497,2811d95d-6ce9-4066-99cb-ea6894b18497,1,0,2fcee659-7bd7-4181-9991-ce4723d485cd,2fcee659-7bd7-4181-9991-ce4723d485cd,1,0,79dc0e69-6a17-428f-b36f-9056d0f6864c,79dc0e69-6a17-428f-b36f-9056d0f6864c,1,0,77a94ffd-4847-4180-a587-31dd3c95f62a,77a94ffd-4847-4180-a587-31dd3c95f62a,1,0,de8bb46d-127e-40e6-af46-a7385a37819b,de8bb46d-127e-40e6-af46-a7385a37819b,1,0,95b5ac72-941c-4f6b-aa2d-ce2a1b616d8d,95b5ac72-941c-4f6b-aa2d-ce2a1b616d8d,1,0,ea557343-ae0f-4a2c-a298-573c952a7d63,ea557343-ae0f-4a2c-a298-573c952a7d63,1,0,11d02ccf-173f-447a-aae1-79f373e46e53,11d02ccf-173f-447a-aae1-79f373e46e53,1,0,a16ebbff-31e2-4c6f-99f5-3bd733c18117,a16ebbff-31e2-4c6f-99f5-3bd733c18117,1,0,d5296815-e4e5-4e79-af97-c4f5afb061cb,d5296815-e4e5-4e79-af97-c4f5afb061cb,1,0,9832d04b-cc86-4399-9129-c0c8f4745973,9832d04b-cc86-4399-9129-c0c8f4745973,1,0,ec745935-1cc7-491d-8b60-e42b3f8c618d,ec745935-1cc7-491d-8b60-e42b3f8c618d,1,0,c642227b-d804-4047-a90b-40159660ba4a,c642227b-d804-4047-a90b-40159660ba4a,1,0,99b1ad67-29aa-4550-b70b-685cd44c27d4,99b1ad67-29aa-4550-b70b-685cd44c27d4,1,0,c54578df-a852-445a-94a6-a6654bb1e3a0,c54578df-a852-445a-94a6-a6654bb1e3a0,1,0,18cbf6dc-ec5c-4181-855a-fe779e3f1ad8,18cbf6dc-ec5c-4181-855a-fe779e3f1ad8,1,0,177c8cf2-27ba-4866-8e0f-cdbb611c84ac,177c8cf2-27ba-4866-8e0f-cdbb611c84ac,1,0,f014ebeb-5f33-430f-ae80-96ba7732d931,f014ebeb-5f33-430f-ae80-96ba7732d931,1,0,7782051c-4bc2-4fc2-bfa5-256bd2911abf,7782051c-4bc2-4fc2-bfa5-256bd2911abf,1,0,2a805bb1-54b3-4b0e-ae7f-ad3f9f18ee24,2a805bb1-54b3-4b0e-ae7f-ad3f9f18ee24,1,0,56fd938d-e0df-4e16-a4ad-7eb6d6cc538f,56fd938d-e0df-4e16-a4ad-7eb6d6cc538f,1,0,7c49fa86-1c65-4959-9331-c0f4852934b3,7c49fa86-1c65-4959-9331-c0f4852934b3,1,0,f744e94b-4359-4516-b682-f15775066e7c,f744e94b-4359-4516-b682-f15775066e7c,1,0,ad37361d-a380-42bd-8cae-b80164415edc,ad37361d-a380-42bd-8cae-b80164415edc,1,0,700cedcb-7625-4ed2-93fb-11ae54317367,700cedcb-7625-4ed2-93fb-11ae54317367,1,0,6fd83c31-c8eb-4f01-ba99-17d5690e78fb,6fd83c31-c8eb-4f01-ba99-17d5690e78fb,1,0,19d511f0-7fad-4f81-be73-969cc192d28d,19d511f0-7fad-4f81-be73-969cc192d28d,1,0,55757755-bc7f-42fb-b55a-691137c5c8da,55757755-bc7f-42fb-b55a-691137c5c8da,1,0,f8c04e0d-a578-4350-aebc-fae5a09db697,f8c04e0d-a578-4350-aebc-fae5a09db697,1,0,ab50f182-0fbd-4e05-8580-c59779a9321e,ab50f182-0fbd-4e05-8580-c59779a9321e,1,0,6af7c3b9-9062-48b3-87b0-41558f7f11e0,6af7c3b9-9062-48b3-87b0-41558f7f11e0,1,0,6f85e902-895a-4636-a18f-ea1f7c68f544,6f85e902-895a-4636-a18f-ea1f7c68f544,1,0,ea4cf11a-edfd-439f-bd3d-a1ac088580ea,ea4cf11a-edfd-439f-bd3d-a1ac088580ea,1,0,24116097-a6ec-46d0-936e-74fcb873bd4f,24116097-a6ec-46d0-936e-74fcb873bd4f,1,0,ae7c5ade-a707-4425-864f-06cc2b2a208e,ae7c5ade-a707-4425-864f-06cc2b2a208e,1,0,ec8ee963-dbbe-497a-bc01-6a2c6a5a99cb,ec8ee963-dbbe-497a-bc01-6a2c6a5a99cb,1,0,8573cd5f-0574-4109-b841-567dfd578931,8573cd5f-0574-4109-b841-567dfd578931,1,0,67d95ce8-17af-4b2f-8dfd-2fc902aa9e1d,67d95ce8-17af-4b2f-8dfd-2fc902aa9e1d,1,0,2f60ba06-8830-472d-82e4-9ba1f00c311d,2f60ba06-8830-472d-82e4-9ba1f00c311d,1,0,42872a0b-999d-4a38-a56e-e67e24c0874e,42872a0b-999d-4a38-a56e-e67e24c0874e,1,0,bf36279c-1a85-4c26-9505-a142cba581a0,bf36279c-1a85-4c26-9505-a142cba581a0,1,0,a39c719e-349a-46b7-ae4e-aeaa3e4bebe0,a39c719e-349a-46b7-ae4e-aeaa3e4bebe0,1,0,8e7f7a3e-efa9-4fa5-94c3-4cfce5c8f5ed,8e7f7a3e-efa9-4fa5-94c3-4cfce5c8f5ed,1,0,ec3cf7eb-d1c1-400e-b3f7-11cf304d8e44,ec3cf7eb-d1c1-400e-b3f7-11cf304d8e44,1,0,acea385d-9935-4365-813b-8a121f57cd52,acea385d-9935-4365-813b-8a121f57cd52,1,0,87606a5a-2682-4f1e-ae25-166be2357541,87606a5a-2682-4f1e-ae25-166be2357541,1,0,98652ae9-349d-48f2-8230-b8960e5a495f,98652ae9-349d-48f2-8230-b8960e5a495f,1,0,7691d0bf-e099-4d22-9813-50386f033c46,7691d0bf-e099-4d22-9813-50386f033c46,1,0,c4867f0d-aef9-467e-86e0-5534dc5fa6d7,c4867f0d-aef9-467e-86e0-5534dc5fa6d7,1,0,47c4de6c-9533-4342-8b80-6d31f106742f,47c4de6c-9533-4342-8b80-6d31f106742f,1,0,5fd3f2c8-52cf-411e-822b-a1d417f1c4eb,5fd3f2c8-52cf-411e-822b-a1d417f1c4eb,1,0,32064ccf-dfb1-4dd4-a51a-f505bc370513,32064ccf-dfb1-4dd4-a51a-f505bc370513,1,0,cfa4be49-1a56-4a07-9f00-ab258d7dec5b,cfa4be49-1a56-4a07-9f00-ab258d7dec5b,1,0,72f1df0f-1b00-4873-87ee-7173a266ba19,72f1df0f-1b00-4873-87ee-7173a266ba19,1,0,bb75cb5e-d007-4d1e-a6d4-6bda95c06397,bb75cb5e-d007-4d1e-a6d4-6bda95c06397,1,0,43c621c4-474e-4060-bc1f-3b1c8a59acbd,43c621c4-474e-4060-bc1f-3b1c8a59acbd,1,0,78187acb-b8c2-4fcf-b967-56da82d6b77c,78187acb-b8c2-4fcf-b967-56da82d6b77c,1,0,5f71053f-4f50-44c7-bba8-254861f045ca,5f71053f-4f50-44c7-bba8-254861f045ca,1,0,88d28c9d-48af-46ff-9265-af46d10fd0aa,88d28c9d-48af-46ff-9265-af46d10fd0aa,1,0,63cb3bbe-5271-45a6-a3c0-c8960c707153,63cb3bbe-5271-45a6-a3c0-c8960c707153,1,0,12f96b1b-fc85-4638-9f70-a2e8196587a1,12f96b1b-fc85-4638-9f70-a2e8196587a1,1,0,975bcc47-f4c2-440e-8c3f-4fa42094405c,975bcc47-f4c2-440e-8c3f-4fa42094405c,1,0,1f260296-36b8-4c74-a1e7-5a1d7a23c0bd,1f260296-36b8-4c74-a1e7-5a1d7a23c0bd,1,0,f353fc01-89a8-495b-8c65-6e1719a172a5,f353fc01-89a8-495b-8c65-6e1719a172a5,1,0,4800d51e-8229-4384-ab8d-d1d36cb713f6,4800d51e-8229-4384-ab8d-d1d36cb713f6,1,0,7a59debd-f48b-4f3a-a5e4-05bd7a6e4306,7a59debd-f48b-4f3a-a5e4-05bd7a6e4306,1,0,5353f9f9-abce-4f1b-8ba4-6f185b113b24,5353f9f9-abce-4f1b-8ba4-6f185b113b24,1,0,f68c3405-4ac5-48ab-837d-68e79669be1b,f68c3405-4ac5-48ab-837d-68e79669be1b,1,0,a9b7aa5e-a241-460e-a9dd-981031564377,a9b7aa5e-a241-460e-a9dd-981031564377,1,0,a9ad0892-ed63-4f39-9ba9-31523114365d,a9ad0892-ed63-4f39-9ba9-31523114365d,1,0,ce5abb2b-1586-4972-9a59-8812a0ebc905,ce5abb2b-1586-4972-9a59-8812a0ebc905,1,0,0892456e-4ebf-46ee-a864-3f100510311f,0892456e-4ebf-46ee-a864-3f100510311f,1,0,7ab652b3-635b-4415-97e8-bd0a4aec1c76,7ab652b3-635b-4415-97e8-bd0a4aec1c76,1,0,6cb9cce0-a65a-4280-bae8-69e73b5fd859,6cb9cce0-a65a-4280-bae8-69e73b5fd859,1,0,dedda468-b754-4cf9-bb16-c5d5b1a7d6b7,dedda468-b754-4cf9-bb16-c5d5b1a7d6b7,1,0,8c77d038-4581-4468-b17c-baf6a0d6a039,8c77d038-4581-4468-b17c-baf6a0d6a039,1,0,77ac6bb4-0f72-4d35-9181-4ba58d4606ac,77ac6bb4-0f72-4d35-9181-4ba58d4606ac,1,0,43b9ca4d-8d3f-4fc7-9eb8-84b357c438cb,43b9ca4d-8d3f-4fc7-9eb8-84b357c438cb,1,0,1e439352-5b22-4aed-9b4c-e1648b1f68cc,1e439352-5b22-4aed-9b4c-e1648b1f68cc,1,0,514c3fec-0331-49c6-a6e8-2d826179fe96,514c3fec-0331-49c6-a6e8-2d826179fe96,1,0,ce8e278f-a368-4286-b479-ebad3b23de9c,ce8e278f-a368-4286-b479-ebad3b23de9c,1,0,ff21a413-36bb-4119-8737-80e26c8c875e,ff21a413-36bb-4119-8737-80e26c8c875e,1,0,de94d05d-3ec7-4139-a70b-92d6771e7e72,de94d05d-3ec7-4139-a70b-92d6771e7e72,1,0,3c68204f-d996-4042-b7b8-b480c6d228bd,3c68204f-d996-4042-b7b8-b480c6d228bd,1,0,89054313-4bf5-4d53-bd16-538b910d9e8b,89054313-4bf5-4d53-bd16-538b910d9e8b,1,0,275e5141-5dfa-46ed-a4af-3cad593a0868,275e5141-5dfa-46ed-a4af-3cad593a0868,1,0,028223f2-1af3-444a-8292-8b2a8bd2484d,028223f2-1af3-444a-8292-8b2a8bd2484d,1,0,b8b8f4ae-9964-4176-bcf7-67c1cb51f849,b8b8f4ae-9964-4176-bcf7-67c1cb51f849,1,0,9b179083-eb74-41cd-be0e-5fc717d974a5,9b179083-eb74-41cd-be0e-5fc717d974a5,1,0,5b3b3f45-77f0-4a02-892b-71cdc06a7ecf,5b3b3f45-77f0-4a02-892b-71cdc06a7ecf,1,0,d57a517a-3a81-484d-9b58-f24b969487de,d57a517a-3a81-484d-9b58-f24b969487de,1,0,842d43cd-76fa-4574-9523-58302d789c18,842d43cd-76fa-4574-9523-58302d789c18,1,0,04cecd2d-5913-4c37-916c-9f9dc25c158b,04cecd2d-5913-4c37-916c-9f9dc25c158b,1,0,a1285b03-7c76-4b7d-b60c-fb481f33ded9,a1285b03-7c76-4b7d-b60c-fb481f33ded9,1,0,957a1333-6d31-41ca-9812-919726965044,957a1333-6d31-41ca-9812-919726965044,1,0,36f5ac04-52fb-4cba-a067-7eae0b778599,36f5ac04-52fb-4cba-a067-7eae0b778599,1,0,11c0bc9c-be98-40c6-92da-db68968835d0,11c0bc9c-be98-40c6-92da-db68968835d0,1,0,eccf4f97-a5b5-4587-b9e3-748aa6cad7e3,eccf4f97-a5b5-4587-b9e3-748aa6cad7e3,1,0,6c6fddd7-b1d5-4c6b-badf-54b6a1018dc8,6c6fddd7-b1d5-4c6b-badf-54b6a1018dc8,1,0,1cbca86a-54f4-4db9-b8d4-827acb0ea722,1cbca86a-54f4-4db9-b8d4-827acb0ea722,1,0,fbed8c4f-29ea-4314-81e9-07bc3091f23a,fbed8c4f-29ea-4314-81e9-07bc3091f23a,1,0,46406519-638d-4313-928e-0c4afea091bb,46406519-638d-4313-928e-0c4afea091bb,1,0,6142d817-b170-423a-aa1e-28fcba1f103e,6142d817-b170-423a-aa1e-28fcba1f103e,1,0,f9758cd7-487b-47c8-a372-58fe42a9ef54,f9758cd7-487b-47c8-a372-58fe42a9ef54,1,0,9648577f-e455-461a-ba41-3e3b9b2dc553,9648577f-e455-461a-ba41-3e3b9b2dc553,1,0,8379651d-3fb1-4853-ba75-2a49d04e2d16,8379651d-3fb1-4853-ba75-2a49d04e2d16,1,0,2c35db7c-40cf-4db0-83d9-3caf329adc78,2c35db7c-40cf-4db0-83d9-3caf329adc78,1,0,8fb745b8-5fed-4c1b-90e7-2fabb025b100,8fb745b8-5fed-4c1b-90e7-2fabb025b100,1,0,085b1f70-d560-4fd7-a36c-6d71c40f6870,085b1f70-d560-4fd7-a36c-6d71c40f6870,1,0,a4ed8b24-bd23-45a7-9f34-61b25b91d0c6,a4ed8b24-bd23-45a7-9f34-61b25b91d0c6,1,0,65efaa10-3239-4f0f-a08e-88c89d9d8d5a,65efaa10-3239-4f0f-a08e-88c89d9d8d5a,1,0,93aa5247-6823-4f70-9d47-e5a0f409828a,93aa5247-6823-4f70-9d47-e5a0f409828a,1,0,48659b94-ace8-45f4-a043-6b2731ec6925,48659b94-ace8-45f4-a043-6b2731ec6925,1,0,3a8e60f9-19cb-42a6-a448-ad211261d9b8,3a8e60f9-19cb-42a6-a448-ad211261d9b8,1,0,74320602-094a-4645-b2c9-3053377a3ac3,74320602-094a-4645-b2c9-3053377a3ac3,1,0,3aba26a3-76ee-46c0-9e11-6f64fc754a0d,3aba26a3-76ee-46c0-9e11-6f64fc754a0d,1,0,b066c732-9c5f-4504-894f-96d457b0768f,b066c732-9c5f-4504-894f-96d457b0768f,1,0,9366463d-aa8a-4e89-86d8-c7f746f9551b,9366463d-aa8a-4e89-86d8-c7f746f9551b,1,0,e25da569-d435-45b2-b4e8-fc76d7f1c8df,e25da569-d435-45b2-b4e8-fc76d7f1c8df,1,0,a51a7f57-9c52-4457-819c-13e1b6f886e1,a51a7f57-9c52-4457-819c-13e1b6f886e1,1,0,7d08daba-5e36-4ce3-8a70-17750959b89e,7d08daba-5e36-4ce3-8a70-17750959b89e,1,0,e2c2d915-ae50-4fa0-add3-26ad7dc75efb,e2c2d915-ae50-4fa0-add3-26ad7dc75efb,1,0,39344a8c-2662-48ff-937b-12951bb268fb,39344a8c-2662-48ff-937b-12951bb268fb,1,0,b577663f-ead2-4b18-a4f6-f7f303e89319,b577663f-ead2-4b18-a4f6-f7f303e89319,1,0,43dc335f-5503-47ab-9c6b-0b4c6ab13f57,43dc335f-5503-47ab-9c6b-0b4c6ab13f57,1,0,6cc0a1d7-01eb-4af6-b4ed-4002e2316080,6cc0a1d7-01eb-4af6-b4ed-4002e2316080,1,0,72663843-4010-42ed-989b-0b58bf9f7146,72663843-4010-42ed-989b-0b58bf9f7146,1,0,79da4490-f0b0-48b5-b435-3b2c9ffb0eb3,79da4490-f0b0-48b5-b435-3b2c9ffb0eb3,1,0,3adcceea-867e-4b88-a633-4f8d4ccb43c0,3adcceea-867e-4b88-a633-4f8d4ccb43c0,1,0,a132189c-6584-4bb1-9cfd-1415cd83228a,a132189c-6584-4bb1-9cfd-1415cd83228a,1,0,7ba50e13-0a78-4cca-821f-006b1c83b0b0,7ba50e13-0a78-4cca-821f-006b1c83b0b0,1,0,a3670f95-5abe-49ee-8ea5-d7e4438801ba,a3670f95-5abe-49ee-8ea5-d7e4438801ba,1,0,4443dea1-5143-4e76-97a7-c35dbe1665e4,4443dea1-5143-4e76-97a7-c35dbe1665e4,1,0,0d780521-0767-425a-b44d-315d2dc42d04,0d780521-0767-425a-b44d-315d2dc42d04,1,0,c5b1572d-28f5-42f3-b2e0-8b54f091642e,c5b1572d-28f5-42f3-b2e0-8b54f091642e,1,0,0986c1b6-b677-428d-b49f-a93e40e77171,0986c1b6-b677-428d-b49f-a93e40e77171,1,0,b9c41558-8fe7-45f6-bcb0-5ea3a35264cf,b9c41558-8fe7-45f6-bcb0-5ea3a35264cf,1,0,597c1f9b-3cbd-42bd-b819-f29b3a3f073a,597c1f9b-3cbd-42bd-b819-f29b3a3f073a,1,0,b6662b2e-7e93-4eaa-9e4b-b5647285932b,b6662b2e-7e93-4eaa-9e4b-b5647285932b,1,0,4a180f2c-dc54-4591-8f62-f236d1e07799,4a180f2c-dc54-4591-8f62-f236d1e07799,1,0,3f1578ba-3d55-4eff-bbdd-6329dd5060d5,3f1578ba-3d55-4eff-bbdd-6329dd5060d5,1,0,a9a51e79-4c79-4a43-931b-c0321c1cd65b,a9a51e79-4c79-4a43-931b-c0321c1cd65b,1,0,e8644d90-ec2f-4ac0-8fbd-a7aa95c9bcec,e8644d90-ec2f-4ac0-8fbd-a7aa95c9bcec,1,0,048a1d86-bcf5-47aa-a36c-eb20c3f9f7e5,048a1d86-bcf5-47aa-a36c-eb20c3f9f7e5,1,0,22f2696e-0ac1-4a74-bca9-987b267b2b59,22f2696e-0ac1-4a74-bca9-987b267b2b59,1,0,d705cacc-3485-46d7-9ff4-48c3c0757c81,d705cacc-3485-46d7-9ff4-48c3c0757c81,1,0,98f043ea-633c-4a03-a56f-efbc9e6ef288,98f043ea-633c-4a03-a56f-efbc9e6ef288,1,0,2033b92a-0750-478a-a12d-cf4f74d0a9da,2033b92a-0750-478a-a12d-cf4f74d0a9da,1,0,92fa2196-d8e5-45f9-9d2e-59d837b163ea,92fa2196-d8e5-45f9-9d2e-59d837b163ea,1,0,25dc2290-e283-4449-81c1-1ce15b58067f,25dc2290-e283-4449-81c1-1ce15b58067f,1,0,c534a865-a17f-41e7-88b9-c6af89c9d202,c534a865-a17f-41e7-88b9-c6af89c9d202,1,0,0214bfe6-fb98-4487-8d98-6b10d24a3c4d,0214bfe6-fb98-4487-8d98-6b10d24a3c4d,1,0,0127937c-94c0-43fe-9630-cc2ec6904ad8,0127937c-94c0-43fe-9630-cc2ec6904ad8,1,0,ce7c87b8-e4ab-47e2-b70a-7dcae8bfb8a8,ce7c87b8-e4ab-47e2-b70a-7dcae8bfb8a8,1,0,8df5b3cd-7788-4198-a530-e88be83f1cdf,8df5b3cd-7788-4198-a530-e88be83f1cdf,1,0,ffaeea66-66d5-4741-a9b5-875afebfce7f,ffaeea66-66d5-4741-a9b5-875afebfce7f,1,0,8f6b6576-1d21-46c1-905c-f1685f0eee7a,8f6b6576-1d21-46c1-905c-f1685f0eee7a,1,0,06827a85-a9d1-472e-8087-906ff94a4adc,06827a85-a9d1-472e-8087-906ff94a4adc,1,0,bb3954de-5eaa-4ec0-931b-a1a9f233c120,bb3954de-5eaa-4ec0-931b-a1a9f233c120,1,0,10689022-cbbb-4134-901f-1e778fac2693,10689022-cbbb-4134-901f-1e778fac2693,1,0,f14e363f-512b-4658-afb5-10c3be5ff870,f14e363f-512b-4658-afb5-10c3be5ff870,1,0,4d211427-4494-45d4-ae84-38235f35eaef,4d211427-4494-45d4-ae84-38235f35eaef,1,0,f7784993-d95c-4652-9894-3cf67aeabeb8,f7784993-d95c-4652-9894-3cf67aeabeb8,1,0,485d8b29-79b1-4798-a742-75546ddb7262,485d8b29-79b1-4798-a742-75546ddb7262,1,0,e248de85-8f76-4471-ab3d-d35514b69b78,e248de85-8f76-4471-ab3d-d35514b69b78,1,0,8928ce42-2b12-402f-8115-98b5655db556,8928ce42-2b12-402f-8115-98b5655db556,1,0,9b62c109-7b52-4803-83e6-a5413cd00984,9b62c109-7b52-4803-83e6-a5413cd00984,1,0,cddb4bb0-22ec-49ae-b332-62d7307b93fe,cddb4bb0-22ec-49ae-b332-62d7307b93fe,1,0,72876709-806e-4406-b9c1-b8117f4d750a,72876709-806e-4406-b9c1-b8117f4d750a,1,0,b1efafef-74cc-4d36-a32c-b472712f11f3,b1efafef-74cc-4d36-a32c-b472712f11f3,1,0,ceb05584-1ecd-4681-8575-c0452f95b685,ceb05584-1ecd-4681-8575-c0452f95b685,1,0,03d08c14-f814-4e12-8f96-020c36cca2bf,03d08c14-f814-4e12-8f96-020c36cca2bf,1,0,a1a7aab6-cf35-42ce-97bb-c112638a2748,a1a7aab6-cf35-42ce-97bb-c112638a2748,1,0,c09df096-f9cc-4b2f-a44e-69147339dc8c,c09df096-f9cc-4b2f-a44e-69147339dc8c,1,0,aa4e4f39-3080-4365-89aa-00b030e26eec,aa4e4f39-3080-4365-89aa-00b030e26eec,1,0,84c1ba1c-e5d6-46ec-98a3-589499162e67,84c1ba1c-e5d6-46ec-98a3-589499162e67,1,0,ae910da8-b007-42bb-b41b-633dda961a0d,ae910da8-b007-42bb-b41b-633dda961a0d,1,0,f6cece0a-e20d-4c2a-a2f3-f25212b0d672,f6cece0a-e20d-4c2a-a2f3-f25212b0d672,1,0,8c1d82ad-9c7f-4556-9e53-c13341cc8206,8c1d82ad-9c7f-4556-9e53-c13341cc8206,1,0,28027dd1-2ce9-4b33-88e9-83588f939f18,28027dd1-2ce9-4b33-88e9-83588f939f18,1,0,2df51e39-a084-425c-8454-daa35b592c80,2df51e39-a084-425c-8454-daa35b592c80,1,0,269af6e0-193a-45a5-b5b9-cc886c617db0,269af6e0-193a-45a5-b5b9-cc886c617db0,1,0,c93ebe3e-6608-4150-8b26-93e8f8cb08bf,c93ebe3e-6608-4150-8b26-93e8f8cb08bf,1,0,4045be3f-acf8-46e7-b341-50e43061b3ff,4045be3f-acf8-46e7-b341-50e43061b3ff,1,0,5f69bb2a-c544-4e15-a86b-616ec73d012b,5f69bb2a-c544-4e15-a86b-616ec73d012b,1,0,aed6eda6-07f1-48a2-81f4-8685216ec311,aed6eda6-07f1-48a2-81f4-8685216ec311,1,0,57f8a606-4f73-458e-aca4-0c0d5d713fea,57f8a606-4f73-458e-aca4-0c0d5d713fea,1,0,7382c9ad-82da-4359-9335-3eb32c8e10e6,7382c9ad-82da-4359-9335-3eb32c8e10e6,1,0,66ae4013-378f-4290-b03e-5d88f3d16765,66ae4013-378f-4290-b03e-5d88f3d16765,1,0,acc778b6-29ad-47dd-b148-ee66efb104d5,acc778b6-29ad-47dd-b148-ee66efb104d5,1,0,ca99eea3-74d6-4264-bd83-6c7b77ea3f17,ca99eea3-74d6-4264-bd83-6c7b77ea3f17,1,0,86f962a3-f97f-42f3-8338-4c80de3957ee,86f962a3-f97f-42f3-8338-4c80de3957ee,1,0,aff8c0b5-bb53-4ba1-9c16-2c51bd0092ca,aff8c0b5-bb53-4ba1-9c16-2c51bd0092ca,1,0,a51429e9-238b-44b8-9793-da6cebcd4320,a51429e9-238b-44b8-9793-da6cebcd4320,1,0,ef1a34fa-29c5-4a7e-8f7c-ee3e6e67a345,ef1a34fa-29c5-4a7e-8f7c-ee3e6e67a345,1,0,9026e00d-1d1c-4f48-963b-6b5fcf7edeec,9026e00d-1d1c-4f48-963b-6b5fcf7edeec,1,0,cceb5a44-dea4-4b88-8e79-0b9674992b31,cceb5a44-dea4-4b88-8e79-0b9674992b31,1,0,1b4dc71d-e454-4d1a-a302-ac1726a31f63,1b4dc71d-e454-4d1a-a302-ac1726a31f63,1,0,fa96d6f9-1770-41b4-990d-21b53206454a,fa96d6f9-1770-41b4-990d-21b53206454a,1,0,2ed8bce3-8325-4b3e-b5d8-a4e6039d16b9,2ed8bce3-8325-4b3e-b5d8-a4e6039d16b9,1,0,a64b15fa-fc34-43fe-a366-d27c0f1c3df2,a64b15fa-fc34-43fe-a366-d27c0f1c3df2,1,0,8b13e848-8fd3-4326-bd18-5a5b12ed3dc5,8b13e848-8fd3-4326-bd18-5a5b12ed3dc5,1,0,b9a6b053-2b93-4946-9531-040d3131dcc5,b9a6b053-2b93-4946-9531-040d3131dcc5,1,0,9f36d26e-aa71-44d5-ac27-9aaa643555c3,9f36d26e-aa71-44d5-ac27-9aaa643555c3,1,0,87b8b5d7-d3d6-450a-adb1-5c875257ec80,87b8b5d7-d3d6-450a-adb1-5c875257ec80,1,0,e3640efe-e46c-4588-b251-dda23bf0641d,e3640efe-e46c-4588-b251-dda23bf0641d,1,0,b46b5090-5eb1-4950-9031-8b43f611fa9c,b46b5090-5eb1-4950-9031-8b43f611fa9c,1,0,522a4bff-34d3-46b2-8c66-0b30d881a86e,522a4bff-34d3-46b2-8c66-0b30d881a86e,1,0,3d7908b1-bd82-475e-8488-fafcbe3458ee,3d7908b1-bd82-475e-8488-fafcbe3458ee,1,0,8a6cdb21-4eff-46dc-b928-738199f54581,8a6cdb21-4eff-46dc-b928-738199f54581,1,0,1bac040b-83e4-402f-a9bf-d6a7b10c91e0,1bac040b-83e4-402f-a9bf-d6a7b10c91e0,1,0,e9c632b0-7977-4e44-ac56-882617ad7cdc,e9c632b0-7977-4e44-ac56-882617ad7cdc,1,0,e84acba7-7e0f-43e8-a545-6e53d529d5d4,e84acba7-7e0f-43e8-a545-6e53d529d5d4,1,0,3b089d90-7ece-4b74-a4dc-e436d9d31b3b,3b089d90-7ece-4b74-a4dc-e436d9d31b3b,1,0,0f9c08c2-e7fa-4ea0-a935-f927feb01131,0f9c08c2-e7fa-4ea0-a935-f927feb01131,1,0,6086d53f-f1b2-4126-ab46-64705fe63b87,6086d53f-f1b2-4126-ab46-64705fe63b87,1,0,62a6b1c9-8288-4fa1-a17d-241b85a5e4b0,62a6b1c9-8288-4fa1-a17d-241b85a5e4b0,1,0,57069b56-f732-41c0-9a75-cbdb1e88556c,57069b56-f732-41c0-9a75-cbdb1e88556c,1,0,cf80ff0d-9add-4fa5-bba2-00d43fce5ed8,cf80ff0d-9add-4fa5-bba2-00d43fce5ed8,1,0,d927f1f0-df5f-44a1-bbfd-152ebf1559dd,d927f1f0-df5f-44a1-bbfd-152ebf1559dd,1,0,7ce7aec1-fa24-4dd7-8754-8124e78521bf,7ce7aec1-fa24-4dd7-8754-8124e78521bf,1,0,8b115575-9d8b-42f8-9ec8-0825a4397c7f,8b115575-9d8b-42f8-9ec8-0825a4397c7f,1,0,40fa5847-28f0-41ff-bfb8-ec33c8626d33,40fa5847-28f0-41ff-bfb8-ec33c8626d33,1,0,23e79add-7f1c-422a-9df1-8f76ebf805df,23e79add-7f1c-422a-9df1-8f76ebf805df,1,0,9295d88f-0865-440c-a98a-4710c50211be,9295d88f-0865-440c-a98a-4710c50211be,1,0,90aa51ae-434d-48f4-bfe3-0e1dd3aeea6f,90aa51ae-434d-48f4-bfe3-0e1dd3aeea6f,1,0,5299d417-02c6-4f73-9c0c-8c22d267ab99,5299d417-02c6-4f73-9c0c-8c22d267ab99,1,0,38ac9a13-665a-4201-b5cc-687fe4a01130,38ac9a13-665a-4201-b5cc-687fe4a01130,1,0,003f2b4f-cdaa-4830-992d-9e376949a1b4,003f2b4f-cdaa-4830-992d-9e376949a1b4,1,0,97c59096-b2dc-45d0-a580-b3018a04f9af,97c59096-b2dc-45d0-a580-b3018a04f9af,1,0,f8759ffe-4f6d-48f2-8ae6-51911c5baf4b,f8759ffe-4f6d-48f2-8ae6-51911c5baf4b,1,0,8172256e-f51e-4de0-bd07-3668785f4cb9,8172256e-f51e-4de0-bd07-3668785f4cb9,1,0,5dcd8e28-b058-405a-bac4-defab7d4b789,5dcd8e28-b058-405a-bac4-defab7d4b789,1,0,6fbf63b7-1692-495e-a8ec-bdda182997a3,6fbf63b7-1692-495e-a8ec-bdda182997a3,1,0,4a2c2478-03ad-4521-9356-09ee07fce972,4a2c2478-03ad-4521-9356-09ee07fce972,1,0,077af11c-fd3c-4e87-b169-5f3137464f77,077af11c-fd3c-4e87-b169-5f3137464f77,1,0,ccb54dc9-3d12-43d0-af6a-138d3526f5d5,ccb54dc9-3d12-43d0-af6a-138d3526f5d5,1,0,da8f7f30-eb80-44db-a451-348306c90cd8,da8f7f30-eb80-44db-a451-348306c90cd8,1,0,879304f7-9507-4fb8-9177-355428d6bba9,879304f7-9507-4fb8-9177-355428d6bba9,1,0,efb50581-cc7e-47ac-bfa2-86da2860bf1d,efb50581-cc7e-47ac-bfa2-86da2860bf1d,1,0,6d042890-27b2-4efc-935e-8190bb57c037,6d042890-27b2-4efc-935e-8190bb57c037,1,0,fd07f403-1116-4102-a1bf-35abb03ad493,fd07f403-1116-4102-a1bf-35abb03ad493,1,0,37ea0c64-2fec-4c2e-922b-d3a2f01f3e22,37ea0c64-2fec-4c2e-922b-d3a2f01f3e22,1,0,ba38453b-6225-40b8-80d8-de00dc620d56,ba38453b-6225-40b8-80d8-de00dc620d56,1,0,0722315c-9217-4ecf-80ff-d1ee89f84a53,0722315c-9217-4ecf-80ff-d1ee89f84a53,1,0,b82bcff8-49c9-44a9-8a9f-4428b0cc54a5,b82bcff8-49c9-44a9-8a9f-4428b0cc54a5,1,0,870b4d6d-0b89-4eda-a2b3-5c6db7dbe864,870b4d6d-0b89-4eda-a2b3-5c6db7dbe864,1,0,a2f943a4-05a3-4eb6-9a10-74b6859469a6,a2f943a4-05a3-4eb6-9a10-74b6859469a6,1,0,c172aeaf-b444-47c0-baee-80ccd91fe934,c172aeaf-b444-47c0-baee-80ccd91fe934,1,0,757ea742-8c14-4e0a-a867-432eee5cfc64,757ea742-8c14-4e0a-a867-432eee5cfc64,1,0,b8c36d5a-7966-4978-9225-67502b9c60a4,b8c36d5a-7966-4978-9225-67502b9c60a4,1,0,747f1c23-3c03-456e-864e-fc714484b7d6,747f1c23-3c03-456e-864e-fc714484b7d6,1,0,9847676d-f44d-46a0-83e2-4a43a835caf8,9847676d-f44d-46a0-83e2-4a43a835caf8,1,0,43c18cae-21a9-413b-a350-d5cf826980f0,43c18cae-21a9-413b-a350-d5cf826980f0,1,0,16773cdb-b979-42d5-a2a5-d4b79e8737bd,16773cdb-b979-42d5-a2a5-d4b79e8737bd,1,0,c28a190a-f487-4e99-b8f8-6928268086f8,c28a190a-f487-4e99-b8f8-6928268086f8,1,0,94e02f76-8656-4999-9470-dd996118400c,94e02f76-8656-4999-9470-dd996118400c,1,0,9effd265-3783-44e2-8698-80dd82137546,9effd265-3783-44e2-8698-80dd82137546,1,0,bef52020-98f8-465b-8981-e5f8eed62308,bef52020-98f8-465b-8981-e5f8eed62308,1,0,19897ad0-bdb5-439c-b4a2-a773c0ce5cf5,19897ad0-bdb5-439c-b4a2-a773c0ce5cf5,1,0,82035887-4f22-435b-a43f-b5ef9cb845ce,82035887-4f22-435b-a43f-b5ef9cb845ce,1,0,667b0f85-b82d-4d8e-9d75-b55a9723dce7,667b0f85-b82d-4d8e-9d75-b55a9723dce7,1,0,e731dab7-df9e-48ae-8542-4c0c30666ae9,e731dab7-df9e-48ae-8542-4c0c30666ae9,1,0,f321e378-6d50-4567-8434-813f367d3a65,f321e378-6d50-4567-8434-813f367d3a65,1,0,27246fd8-a8a3-4244-b49a-c0372a812167,27246fd8-a8a3-4244-b49a-c0372a812167,1,0,7d91ff3c-1ec2-41d0-9d38-fa8f8534c55c,7d91ff3c-1ec2-41d0-9d38-fa8f8534c55c,1,0,6da15c1d-e144-472e-9a3a-2797c7df16e4,6da15c1d-e144-472e-9a3a-2797c7df16e4,1,0,350a7b29-4ba3-43c4-b77d-47085f53d760,350a7b29-4ba3-43c4-b77d-47085f53d760,1,0,a151715d-c89e-4e4c-b8fd-d7d6ad71e603,a151715d-c89e-4e4c-b8fd-d7d6ad71e603,1,0,f6d6f1b9-3956-4fdb-bbb0-5d81f083a072,f6d6f1b9-3956-4fdb-bbb0-5d81f083a072,1,0,a5dd4200-0f25-452d-9014-3b1506c31557,a5dd4200-0f25-452d-9014-3b1506c31557,1,0,c48c091c-0d46-4d1f-bc84-72b0537c7ec2,c48c091c-0d46-4d1f-bc84-72b0537c7ec2,1,0,122a94c7-bb89-4f11-b583-b56808c1df47,122a94c7-bb89-4f11-b583-b56808c1df47,1,0,f4371f32-95a5-40f4-bc5e-a5b9a12a86eb,f4371f32-95a5-40f4-bc5e-a5b9a12a86eb,1,0,5f434c45-a5ff-4a07-8662-6a592298c7e9,5f434c45-a5ff-4a07-8662-6a592298c7e9,1,0,0841ebfc-12e6-4b3e-a60f-861b15e1b63c,0841ebfc-12e6-4b3e-a60f-861b15e1b63c,1,0,bde05768-2dd6-4800-985d-27075f610cca,bde05768-2dd6-4800-985d-27075f610cca,1,0,d18956cf-e449-48cc-a127-01b5dc910ea2,d18956cf-e449-48cc-a127-01b5dc910ea2,1,0,8e5487a3-b5e5-40ca-88f3-5b0ea0c4d481,8e5487a3-b5e5-40ca-88f3-5b0ea0c4d481,1,0,5d338e31-a56b-45f0-8a62-0270ca543f6a,5d338e31-a56b-45f0-8a62-0270ca543f6a,1,0,afd8251f-548b-4bb6-8ad0-4f412bec7cb6,afd8251f-548b-4bb6-8ad0-4f412bec7cb6,1,0,e352fc19-96be-4410-a516-bc58cc234422,e352fc19-96be-4410-a516-bc58cc234422,1,0,9b742da4-1696-4c06-9dfa-dd85c9286c74,9b742da4-1696-4c06-9dfa-dd85c9286c74,1,0,5f92f8c8-4d02-41a0-858f-e521f978df9f,5f92f8c8-4d02-41a0-858f-e521f978df9f,1,0,f9da8faf-1462-4ac4-9b63-2a20fc916049,f9da8faf-1462-4ac4-9b63-2a20fc916049,1,0,db1062bc-4164-4095-9640-9804c0ebcd0b,db1062bc-4164-4095-9640-9804c0ebcd0b,1,0,c11d967b-1250-4345-90b0-011a96c5ae5e,c11d967b-1250-4345-90b0-011a96c5ae5e,1,0,ea7c61ff-745c-4908-9a94-bba022d12de4,ea7c61ff-745c-4908-9a94-bba022d12de4,1,0,96cd8b90-5cf3-416c-b3a2-1f62e158b37e,96cd8b90-5cf3-416c-b3a2-1f62e158b37e,1,0,24eed105-f612-4340-ad79-388a7b39b58c,24eed105-f612-4340-ad79-388a7b39b58c,1,0,8e4bd2ac-d555-490e-87ab-1b0cdd6f72e9,8e4bd2ac-d555-490e-87ab-1b0cdd6f72e9,1,0,c7ffd8ab-15e9-4cf1-a7fd-d05534dff000,c7ffd8ab-15e9-4cf1-a7fd-d05534dff000,1,0,53caada5-1d53-45dc-9432-90075ddca890,53caada5-1d53-45dc-9432-90075ddca890,1,0,f00116da-2bf1-4edd-b939-f25d36774f5b,f00116da-2bf1-4edd-b939-f25d36774f5b,1,0,d1472d23-954b-4069-b2d6-df08c6ec0be1,d1472d23-954b-4069-b2d6-df08c6ec0be1,1,0,93fe2ce6-7193-42bc-a966-4653b7989eaa,93fe2ce6-7193-42bc-a966-4653b7989eaa,1,0,65678df4-a323-451f-98ba-305a74fc5805,65678df4-a323-451f-98ba-305a74fc5805,1,0,b1230b96-f4c8-4311-bfc0-df33bcc41394,b1230b96-f4c8-4311-bfc0-df33bcc41394,1,0,a7fe0aa5-722c-4a09-889b-ee422421addc,a7fe0aa5-722c-4a09-889b-ee422421addc,1,0,798bd34c-d0ee-4590-9b1d-8bc47e42ca8c,798bd34c-d0ee-4590-9b1d-8bc47e42ca8c,1,0,b572b1d0-4404-421c-9950-1cc1342ca5f3,b572b1d0-4404-421c-9950-1cc1342ca5f3,1,0,0c838a31-2b08-447c-b39a-a613cfba526c,0c838a31-2b08-447c-b39a-a613cfba526c,1,0,b6a3a9d4-71d2-4eb3-bb6f-6349330ffe3c,b6a3a9d4-71d2-4eb3-bb6f-6349330ffe3c,1,0,02082174-7276-4256-b9bb-9872065a01c4,02082174-7276-4256-b9bb-9872065a01c4,1,0,ddaba839-5ed2-4707-8cb8-ebd5784f642a,ddaba839-5ed2-4707-8cb8-ebd5784f642a,1,0,86c679c0-3531-4622-9a1f-3d9d6ccdd431,86c679c0-3531-4622-9a1f-3d9d6ccdd431,1,0,024b83dd-9f90-4122-8f50-0f2dc32bd76c,024b83dd-9f90-4122-8f50-0f2dc32bd76c,1,0,cba9e94c-e328-42ef-bcd0-92db3f0c048b,cba9e94c-e328-42ef-bcd0-92db3f0c048b,1,0,670c62c1-1a33-4dec-9540-5b4c1fe29074,670c62c1-1a33-4dec-9540-5b4c1fe29074,1,0,cc664d81-d0af-4d25-ae29-64f422e51bf2,cc664d81-d0af-4d25-ae29-64f422e51bf2,1,0,667f0c7e-fa70-49e9-97c9-ad04819fee58,667f0c7e-fa70-49e9-97c9-ad04819fee58,1,0,ae3876e2-bd06-415b-9d9a-b77d787be09e,ae3876e2-bd06-415b-9d9a-b77d787be09e,1,0,ded105e9-b71b-4550-9d9c-9c743dc212d0,ded105e9-b71b-4550-9d9c-9c743dc212d0,1,0,0cf49621-afc5-4c8d-a1b5-f8c30db9f415,0cf49621-afc5-4c8d-a1b5-f8c30db9f415,1,0,4718392b-477c-496b-9d28-ddbdaa7a04f2,4718392b-477c-496b-9d28-ddbdaa7a04f2,1,0,546af6c0-0762-4d2d-9d3b-c6a8f6c57674,546af6c0-0762-4d2d-9d3b-c6a8f6c57674,1,0,879844f0-30b4-47f5-8d2e-5fea29910368,879844f0-30b4-47f5-8d2e-5fea29910368,1,0,303334ba-2785-47fe-a094-84f9dea33be2,303334ba-2785-47fe-a094-84f9dea33be2,1,0,04424730-6992-4a5b-838b-7a7c16dedbd0,04424730-6992-4a5b-838b-7a7c16dedbd0,1,0,17c72b9e-8a7d-4da1-80f7-d8ca21a39010,17c72b9e-8a7d-4da1-80f7-d8ca21a39010,1,0,32850dc1-1484-4b7d-94f4-a08329423e7b,32850dc1-1484-4b7d-94f4-a08329423e7b,1,0,e37a7cf1-a7b5-4b6e-b818-0915598c8505,e37a7cf1-a7b5-4b6e-b818-0915598c8505,1,0,9299b382-fc65-4f89-8329-94fec125761c,9299b382-fc65-4f89-8329-94fec125761c,1,0,240bec31-cd59-477b-8459-8e3278da22dc,240bec31-cd59-477b-8459-8e3278da22dc,1,0,c83739dc-6afc-4687-ab1c-98a7b24b2182,c83739dc-6afc-4687-ab1c-98a7b24b2182,1,0,f3abaf8e-0230-43db-aaf0-716fc02047eb,f3abaf8e-0230-43db-aaf0-716fc02047eb,1,0,b76c3bd6-924a-4378-acbe-6f17232b201b,b76c3bd6-924a-4378-acbe-6f17232b201b,1,0,e0519f0c-9c99-4f5c-a3a9-27adce45737d,e0519f0c-9c99-4f5c-a3a9-27adce45737d,1,0,554320a0-55dc-4289-bb08-63d405cb4ca5,554320a0-55dc-4289-bb08-63d405cb4ca5,1,0,45eec13d-e5e5-4a2e-ad6c-2780bde15ef2,45eec13d-e5e5-4a2e-ad6c-2780bde15ef2,1,0,0874a3c0-0d16-4172-b467-f0666d5fcaee,0874a3c0-0d16-4172-b467-f0666d5fcaee,1,0,9d358304-3fd0-4ec6-9400-cc498ff2f751,9d358304-3fd0-4ec6-9400-cc498ff2f751,1,0,cc380a19-ab29-4f20-93ad-9a58cd4de56e,cc380a19-ab29-4f20-93ad-9a58cd4de56e,1,0,6a5f7521-270e-476e-88ec-a8cf79ea61a6,6a5f7521-270e-476e-88ec-a8cf79ea61a6,1,0,49b887e5-3b2f-42f8-b3f1-ba161ae05b3c,49b887e5-3b2f-42f8-b3f1-ba161ae05b3c,1,0,9bb841e7-e629-4a1f-8ff6-f8bca0b2b133,9bb841e7-e629-4a1f-8ff6-f8bca0b2b133,1,0,74067eee-6cd4-4ae3-becc-457ecb51dc9a,74067eee-6cd4-4ae3-becc-457ecb51dc9a,1,0,e54a8786-86a4-48e3-a210-aaae4e5fce8c,e54a8786-86a4-48e3-a210-aaae4e5fce8c,1,0,1c265c15-6002-416e-8045-81f03c893faf,1c265c15-6002-416e-8045-81f03c893faf,1,0,86c86ea2-d14e-4443-b36c-c1c17c4f768a,86c86ea2-d14e-4443-b36c-c1c17c4f768a,1,0,14512818-58b0-44cc-b00d-d37913c57aad,14512818-58b0-44cc-b00d-d37913c57aad,1,0,077e2c42-bc3b-48bf-bbc2-41effe20f613,077e2c42-bc3b-48bf-bbc2-41effe20f613,1,0,57964dd6-4b0b-4590-bc44-de744cc423af,57964dd6-4b0b-4590-bc44-de744cc423af,1,0,f5bb88eb-c239-4ae3-a297-dfbbd679e008,f5bb88eb-c239-4ae3-a297-dfbbd679e008,1,0,c888ccc1-9116-4b88-b950-aeabd54191c0,c888ccc1-9116-4b88-b950-aeabd54191c0,1,0,ff4d92a7-5fa3-4a46-a6f5-47c3952edb22,ff4d92a7-5fa3-4a46-a6f5-47c3952edb22,1,0,bb350b39-1f4d-460a-98c9-8d2308cf22f0,bb350b39-1f4d-460a-98c9-8d2308cf22f0,1,0,eaeb5aa8-8edf-4f74-8011-2d476f543bf6,eaeb5aa8-8edf-4f74-8011-2d476f543bf6,1,0,b2f17ef1-3f6f-4029-b3e2-28d6b79c5b76,b2f17ef1-3f6f-4029-b3e2-28d6b79c5b76,1,0,364cbfe2-bc44-4387-aa7e-6b4aa086c9e9,364cbfe2-bc44-4387-aa7e-6b4aa086c9e9,1,0,7433b2a9-f634-4af7-ac85-6aa1280ea239,7433b2a9-f634-4af7-ac85-6aa1280ea239,1,0,9f32e85c-2ed6-41db-b0ec-6d8596940e80,9f32e85c-2ed6-41db-b0ec-6d8596940e80,1,0,7adced5f-3a5f-419a-926c-0452aad86c86,7adced5f-3a5f-419a-926c-0452aad86c86,1,0,f259b6b4-d582-429f-a16f-027a6bcb7438,f259b6b4-d582-429f-a16f-027a6bcb7438,1,0,46e0522b-b88b-43b2-9067-a5359e90994b,46e0522b-b88b-43b2-9067-a5359e90994b,1,0,727c7c01-83e6-4d59-afa4-ee36f1cbacf2,727c7c01-83e6-4d59-afa4-ee36f1cbacf2,1,0,7f06703e-24cd-4db7-be88-3fbd65e5c252,7f06703e-24cd-4db7-be88-3fbd65e5c252,1,0,b143bc6d-ead6-41a2-9a15-1a44488c1ce4,b143bc6d-ead6-41a2-9a15-1a44488c1ce4,1,0,72d41d01-9c9d-4fbe-8a39-932d82d171ef,72d41d01-9c9d-4fbe-8a39-932d82d171ef,1,0,f4afd271-64de-4a6d-b0ef-f27db4d66d32,f4afd271-64de-4a6d-b0ef-f27db4d66d32,1,0,b1e7d3c3-9fc1-4364-a8c3-b076080c7472,b1e7d3c3-9fc1-4364-a8c3-b076080c7472,1,0,697d5715-dd04-40be-9b28-539734725158,697d5715-dd04-40be-9b28-539734725158,1,0,d831a8ac-88a4-4191-ab0b-7538dfb3e7d7,d831a8ac-88a4-4191-ab0b-7538dfb3e7d7,1,0,d95fcb37-fc65-466d-93e2-489f41683276,d95fcb37-fc65-466d-93e2-489f41683276,1,0,c6b0d31e-7b68-4c7f-a565-0ac8a7c11143,c6b0d31e-7b68-4c7f-a565-0ac8a7c11143,1,0,a27a9296-46bb-49a1-8308-db675baa81d0,a27a9296-46bb-49a1-8308-db675baa81d0,1,0,2181d197-028b-40b2-bf02-3d85dad1af30,2181d197-028b-40b2-bf02-3d85dad1af30,1,0,1456f317-360c-4190-b2d1-1be7484369a5,1456f317-360c-4190-b2d1-1be7484369a5,1,0,5ac74bb3-a4df-47db-ad87-6cb95b85c51f,5ac74bb3-a4df-47db-ad87-6cb95b85c51f,1,0,4867948f-b027-44ae-b78c-a94e00eed52b,4867948f-b027-44ae-b78c-a94e00eed52b,1,0,aa0c32ae-da52-4df9-8b77-99ea31f8df81,aa0c32ae-da52-4df9-8b77-99ea31f8df81,1,0,d7dcd391-3a0e-4aa9-9b53-467a1de67593,d7dcd391-3a0e-4aa9-9b53-467a1de67593,1,0,3d4cb11a-7ce7-4c46-a427-99d6f41f08bf,3d4cb11a-7ce7-4c46-a427-99d6f41f08bf,1,0,ef044879-e731-418a-b917-6a685f27c5f4,ef044879-e731-418a-b917-6a685f27c5f4,1,0,618d13d5-fd1f-4b70-ad45-dd6a17a50730,618d13d5-fd1f-4b70-ad45-dd6a17a50730,1,0,0248a6c4-7ce5-4898-bb1d-9ad9509e6795,0248a6c4-7ce5-4898-bb1d-9ad9509e6795,1,0,6a5b9e7f-c368-40d8-812a-64f68ea1ef9d,6a5b9e7f-c368-40d8-812a-64f68ea1ef9d,1,0,58037b76-b548-4f07-bd67-67e552a5c6e5,58037b76-b548-4f07-bd67-67e552a5c6e5,1,0,c9646904-3fb4-452c-af50-ddf562b597d0,c9646904-3fb4-452c-af50-ddf562b597d0,1,0,92bac831-04da-4302-ac62-a867e017fef6,92bac831-04da-4302-ac62-a867e017fef6,1,0,68f19104-5fa3-4f28-a84b-bf68c3bed49b,68f19104-5fa3-4f28-a84b-bf68c3bed49b,1,0,4249f45b-b298-4d42-9ca2-bd80b87f2150,4249f45b-b298-4d42-9ca2-bd80b87f2150,1,0,f88ccd7a-8d15-4b24-addf-da522a0b4a43,f88ccd7a-8d15-4b24-addf-da522a0b4a43,1,0,bc039475-c872-4b99-9248-c74aae75f0e1,bc039475-c872-4b99-9248-c74aae75f0e1,1,0,331db120-ba88-4eb3-a8ec-10691be82e2d,331db120-ba88-4eb3-a8ec-10691be82e2d,1,0,349378d1-abe3-44de-84a4-d525b08e0474,349378d1-abe3-44de-84a4-d525b08e0474,1,0,1526b18d-7fab-414e-a5b2-377b67ac0b55,1526b18d-7fab-414e-a5b2-377b67ac0b55,1,0,c561fe6b-53ea-435b-a230-1850e2dc1ff5,c561fe6b-53ea-435b-a230-1850e2dc1ff5,1,0,aba7605f-6baf-42a8-b5ad-8f71c780b81f,aba7605f-6baf-42a8-b5ad-8f71c780b81f,1,0,8fc19eca-1a15-4758-af4b-79637e51edfb,8fc19eca-1a15-4758-af4b-79637e51edfb,1,0,b0e0a273-2613-4d5e-9901-df7893af4c74,b0e0a273-2613-4d5e-9901-df7893af4c74,1,0,f1a56141-f3bd-4075-848b-41c00a81e7a3,f1a56141-f3bd-4075-848b-41c00a81e7a3,1,0,4ad1ef06-d8b4-46da-b536-d23c40e85497,4ad1ef06-d8b4-46da-b536-d23c40e85497,1,0,be9144ce-5560-47bb-8c5e-9beefd15bfc3,be9144ce-5560-47bb-8c5e-9beefd15bfc3,1,0,ad09d1e6-5982-4e1c-864e-452ac5b2915a,ad09d1e6-5982-4e1c-864e-452ac5b2915a,1,0,caea53be-d2f7-4109-8017-d2bfdfde8c6f,caea53be-d2f7-4109-8017-d2bfdfde8c6f,1,0,60f30706-9919-4767-a17c-660754b9d542,60f30706-9919-4767-a17c-660754b9d542,1,0,7de19812-ed6c-41b5-82aa-b9a8e6d808f2,7de19812-ed6c-41b5-82aa-b9a8e6d808f2,1,0,c0bc4cc4-b5ca-47c2-b589-c0d25bb63f1e,c0bc4cc4-b5ca-47c2-b589-c0d25bb63f1e,1,0,35823167-b658-4563-8d01-b0aab05aa619,35823167-b658-4563-8d01-b0aab05aa619,1,0,30be8d71-a9dd-4dd3-8fb4-ea0c8de86358,30be8d71-a9dd-4dd3-8fb4-ea0c8de86358,1,0,9ee03c48-c338-4655-9095-d490231df2a3,9ee03c48-c338-4655-9095-d490231df2a3,1,0,94928ba3-6bbf-4bd3-94cf-9c51b50e005f,94928ba3-6bbf-4bd3-94cf-9c51b50e005f,1,0,3924c17c-6ee3-4406-8023-0a79a242e389,3924c17c-6ee3-4406-8023-0a79a242e389,1,0,84a159ed-bc5f-4497-94d1-94b187b0bffe,84a159ed-bc5f-4497-94d1-94b187b0bffe,1,0,0a126b0d-28c8-4ed4-836f-e39e17693ad0,0a126b0d-28c8-4ed4-836f-e39e17693ad0,1,0,0dcc3bbf-afbe-4a4e-bc4a-17534d5fab28,0dcc3bbf-afbe-4a4e-bc4a-17534d5fab28,1,0,bf75c4de-b36a-4a7f-8d84-9fa3d020a6cb,bf75c4de-b36a-4a7f-8d84-9fa3d020a6cb,1,0,f95adb50-fa0b-434c-93dd-b7fd211220b7,f95adb50-fa0b-434c-93dd-b7fd211220b7,1,0,e590825f-10c6-4fdd-98cd-3da01da2ed4f,e590825f-10c6-4fdd-98cd-3da01da2ed4f,1,0,2233ce53-b8a8-4c83-97a2-683c8575462a,2233ce53-b8a8-4c83-97a2-683c8575462a,1,0,b938ff17-e31c-4762-a96f-e1288f746a1d,b938ff17-e31c-4762-a96f-e1288f746a1d,1,0,d6a5083f-ca9a-42ed-b202-2983e4ba21c2,d6a5083f-ca9a-42ed-b202-2983e4ba21c2,1,0,bd69bf55-dee0-4553-8f90-5fd025c0f773,bd69bf55-dee0-4553-8f90-5fd025c0f773,1,0,2071f210-dc13-43c0-a58e-b982821d6842,2071f210-dc13-43c0-a58e-b982821d6842,1,0,bea697f4-46a8-4698-ac60-64326e442f2b,bea697f4-46a8-4698-ac60-64326e442f2b,1,0,d5588c0d-3e94-485b-a7e9-45f5cf74df9e,d5588c0d-3e94-485b-a7e9-45f5cf74df9e,1,0,f415296e-fceb-4835-abe9-17bb17a5d5e5,f415296e-fceb-4835-abe9-17bb17a5d5e5,1,0,0e805e1f-3797-4ef9-94d3-0ec58ac1b605,0e805e1f-3797-4ef9-94d3-0ec58ac1b605,1,0,8677bd53-5569-4d44-b7ce-d1b3fe12c78d,8677bd53-5569-4d44-b7ce-d1b3fe12c78d,1,0,19056365-9ff1-4733-876e-a7ebdbbe0557,19056365-9ff1-4733-876e-a7ebdbbe0557,1,0,d5678c61-bd11-476e-b564-c529e117acd6,d5678c61-bd11-476e-b564-c529e117acd6,1,0,c8679d82-075c-4556-8231-c004d144fe61,c8679d82-075c-4556-8231-c004d144fe61,1,0,5e09dc5e-bbb7-4c38-b609-940c24f63c84,5e09dc5e-bbb7-4c38-b609-940c24f63c84,1,0,017b28eb-8ba9-465e-a748-20eadbeb4ea2,017b28eb-8ba9-465e-a748-20eadbeb4ea2,1,0,c0bb2d66-94c9-4bc6-afd5-534075e8395b,c0bb2d66-94c9-4bc6-afd5-534075e8395b,1,0,33c93020-b5f0-424e-a8fc-114a6ab04107,33c93020-b5f0-424e-a8fc-114a6ab04107,1,0,db7cc693-1645-4416-a9d9-5a7584cd3bbc,db7cc693-1645-4416-a9d9-5a7584cd3bbc,1,0,c849fb09-7833-49c8-9461-98426dc6c0af,c849fb09-7833-49c8-9461-98426dc6c0af,1,0,6c58fc3a-37f8-44b7-b076-2c10ce09b554,6c58fc3a-37f8-44b7-b076-2c10ce09b554,1,0,f9479915-cdee-40d5-ba53-101132aac672,f9479915-cdee-40d5-ba53-101132aac672,1,0,245c07a9-98b0-452b-b899-dc8751ab7ce0,245c07a9-98b0-452b-b899-dc8751ab7ce0,1,0,b0ca1b85-e1de-4b7c-8261-7f9e8a6a72eb,b0ca1b85-e1de-4b7c-8261-7f9e8a6a72eb,1,0,ae67dfe5-bb36-4400-81f5-8dab1fd0ca6e,ae67dfe5-bb36-4400-81f5-8dab1fd0ca6e,1,0,91d7687b-7627-473f-a08d-433f9d385107,91d7687b-7627-473f-a08d-433f9d385107,1,0,2276a1d4-b4d9-4643-8342-36143ce4eb26,2276a1d4-b4d9-4643-8342-36143ce4eb26,1,0,5510a103-836d-457e-b82b-6f6223efc96b,5510a103-836d-457e-b82b-6f6223efc96b,1,0,83db1b00-e9e3-41da-8a59-47589dcfd618,83db1b00-e9e3-41da-8a59-47589dcfd618,1,0,91d2d798-1498-4c52-aa7b-99db4b992876,91d2d798-1498-4c52-aa7b-99db4b992876,1,0,e85a03d3-e7c7-4058-992a-515a557d9e52,e85a03d3-e7c7-4058-992a-515a557d9e52,1,0,195ea1f8-3e38-4254-a33d-c87424b8f7dc,195ea1f8-3e38-4254-a33d-c87424b8f7dc,1,0,d3a1d247-8f4a-45af-9861-7e313a100209,d3a1d247-8f4a-45af-9861-7e313a100209,1,0,837f27c1-26d7-4f24-a691-55dd9ed04ec5,837f27c1-26d7-4f24-a691-55dd9ed04ec5,1,0,9e2ddfbb-8d6b-4b82-8a2b-62c2ea990b10,9e2ddfbb-8d6b-4b82-8a2b-62c2ea990b10,1,0,5005655f-22b2-49e6-be4f-b15d768d10b2,5005655f-22b2-49e6-be4f-b15d768d10b2,1,0,208040c8-e98b-4c15-a2ec-38d44bfcfa6c,208040c8-e98b-4c15-a2ec-38d44bfcfa6c,1,0,f6811ee2-769e-488d-9ca0-70f1fe521ca9,f6811ee2-769e-488d-9ca0-70f1fe521ca9,1,0,83385f31-2cdf-44a1-85c3-461e4ad5fd45,83385f31-2cdf-44a1-85c3-461e4ad5fd45,1,0,4cc76b9f-aa72-486e-84ee-f0866edfe691,4cc76b9f-aa72-486e-84ee-f0866edfe691,1,0,b55b06db-604e-4fb9-9253-638c747bd8f9,b55b06db-604e-4fb9-9253-638c747bd8f9,1,0,9cd9a3e1-b52c-4151-abd3-2744ed03cc1b,9cd9a3e1-b52c-4151-abd3-2744ed03cc1b,1,0,9aa0c1ef-45b4-405b-ad6f-ebcf876e6318,9aa0c1ef-45b4-405b-ad6f-ebcf876e6318,1,0,deb69010-80b0-4e28-acc7-8c50e8e6f873,deb69010-80b0-4e28-acc7-8c50e8e6f873,1,0,1a9177fe-6699-42b3-9588-eed9c6008c2d,1a9177fe-6699-42b3-9588-eed9c6008c2d,1,0,93848cf6-7a87-42c7-b685-0bc418a2037c,93848cf6-7a87-42c7-b685-0bc418a2037c,1,0,4f49412a-fbbe-4ee1-9c2b-affe5266bba7,4f49412a-fbbe-4ee1-9c2b-affe5266bba7,1,0,ae698468-f42a-4400-aee6-fd849740e634,ae698468-f42a-4400-aee6-fd849740e634,1,0,0b88b50d-6aa1-4364-82bd-1c0c0da93a58,0b88b50d-6aa1-4364-82bd-1c0c0da93a58,1,0,ddec19a2-2a76-4eeb-9cbb-6bc2b4a32bc8,ddec19a2-2a76-4eeb-9cbb-6bc2b4a32bc8,1,0,6438435e-97cc-4bd2-98dc-e21cee55bb0f,6438435e-97cc-4bd2-98dc-e21cee55bb0f,1,0,31b93291-a58f-4176-8318-58200e8bc56e,31b93291-a58f-4176-8318-58200e8bc56e,1,0,293be1bc-49cb-4a99-add8-2a3a46829718,293be1bc-49cb-4a99-add8-2a3a46829718,1,0,00579e31-e97d-4d79-ba25-b8d500a17e7f,00579e31-e97d-4d79-ba25-b8d500a17e7f,1,0,5001bea4-c8f9-4950-9eda-d33125e3bb46,5001bea4-c8f9-4950-9eda-d33125e3bb46,1,0,4ac6d0dd-0007-46b8-bfcc-93c0f85b6b85,4ac6d0dd-0007-46b8-bfcc-93c0f85b6b85,1,0,bc2dd611-b589-4519-b274-40db5c66b378,bc2dd611-b589-4519-b274-40db5c66b378,1,0,e815010d-e03d-46e4-b482-c1556902cc26,e815010d-e03d-46e4-b482-c1556902cc26,1,0,d4ab930a-ddaa-4552-afed-2618af822365,d4ab930a-ddaa-4552-afed-2618af822365,1,0,15cdbaf0-bc17-41c4-a330-d142cac8dc03,15cdbaf0-bc17-41c4-a330-d142cac8dc03,1,0,2388e3f4-b23b-488f-9ea5-d9434efca195,2388e3f4-b23b-488f-9ea5-d9434efca195,1,0,dd03e170-4186-495b-ae1c-fc66385d7ccf,dd03e170-4186-495b-ae1c-fc66385d7ccf,1,0,b2de86fc-f10b-4304-8060-cad903ba37c5,b2de86fc-f10b-4304-8060-cad903ba37c5,1,0,81fbb02e-76b2-4bca-bb3b-871e4e969a3c,81fbb02e-76b2-4bca-bb3b-871e4e969a3c,1,0,cdef5df6-f3a1-4950-b197-4f375914f885,cdef5df6-f3a1-4950-b197-4f375914f885,1,0,c1caff49-dc4b-4b3e-be47-122ea8b70416,c1caff49-dc4b-4b3e-be47-122ea8b70416,1,0,a1185a4c-7351-48b0-b662-61f61a1ad715,a1185a4c-7351-48b0-b662-61f61a1ad715,1,0,52be8b07-6e99-4e64-bbd6-2a1cd5816136,52be8b07-6e99-4e64-bbd6-2a1cd5816136,1,0,bf5faaef-3a03-40bc-8d3a-644c0874b9ce,bf5faaef-3a03-40bc-8d3a-644c0874b9ce,1,0,4ee0c7a4-cc26-438d-8908-f6a900c99d8b,4ee0c7a4-cc26-438d-8908-f6a900c99d8b,1,0,71d03545-df45-4c70-aa0d-3b916f2a9041,71d03545-df45-4c70-aa0d-3b916f2a9041,1,0,cfe452ac-3e0b-4cca-811f-892ab36ed327,cfe452ac-3e0b-4cca-811f-892ab36ed327,1,0,da9b0d3d-27dd-4a85-b0df-ec2f54d884f6,da9b0d3d-27dd-4a85-b0df-ec2f54d884f6,1,0,28a25822-2306-409a-a7c8-6f7e42bf25e8,28a25822-2306-409a-a7c8-6f7e42bf25e8,1,0,89cb31da-a980-4207-a537-85cd47f08d32,89cb31da-a980-4207-a537-85cd47f08d32,1,0,7e16f533-9b83-444b-966b-caed3d83b3a8,7e16f533-9b83-444b-966b-caed3d83b3a8,1,0,a45fa0c3-c363-4465-861f-13cedfeb79dd,a45fa0c3-c363-4465-861f-13cedfeb79dd,1,0,a72517c3-8c91-4e40-81ac-83c762789e87,a72517c3-8c91-4e40-81ac-83c762789e87,1,0,0233b335-7e26-4661-9850-8ab09d3178e3,0233b335-7e26-4661-9850-8ab09d3178e3,1,0,d942d536-5d01-4571-b910-abd973996a38,d942d536-5d01-4571-b910-abd973996a38,1,0,b82a7103-b872-49c3-b632-81d5a0051136,b82a7103-b872-49c3-b632-81d5a0051136,1,0,4b17ac35-78cb-4d01-bb08-659c0a93e8ce,4b17ac35-78cb-4d01-bb08-659c0a93e8ce,1,0,20c2053c-8ebd-4c07-8d95-956b424d047c,20c2053c-8ebd-4c07-8d95-956b424d047c,1,0,7c9dee81-7e85-4d26-84c3-66b0d770ac5a,7c9dee81-7e85-4d26-84c3-66b0d770ac5a,1,0,08fe5e70-ac6b-427a-b6f2-0e2f7848fa6b,08fe5e70-ac6b-427a-b6f2-0e2f7848fa6b,1,0,bef6081e-f377-41d6-83a1-b0e218a3fb46,bef6081e-f377-41d6-83a1-b0e218a3fb46,1,0,9b67bfd5-ef23-4205-b7ba-9466517e9999,9b67bfd5-ef23-4205-b7ba-9466517e9999,1,0,20082776-ce24-41c5-ae11-6fa9bc54db59,20082776-ce24-41c5-ae11-6fa9bc54db59,1,0,ea2c4c8e-23cc-4884-812e-1e959da48afc,ea2c4c8e-23cc-4884-812e-1e959da48afc,1,0,c61e4c12-178d-47aa-a070-333fe5450168,c61e4c12-178d-47aa-a070-333fe5450168,1,0,3ebcff6f-8709-46a2-b354-768e1d1415c5,3ebcff6f-8709-46a2-b354-768e1d1415c5,1,0,9474b4f1-b1bb-4fcf-acdb-a149a09b8490,9474b4f1-b1bb-4fcf-acdb-a149a09b8490,1,0,ea9d67eb-b552-48bd-a108-4938e5541735,ea9d67eb-b552-48bd-a108-4938e5541735,1,0,63fd620c-59a5-493c-a39e-457fad6fe35f,63fd620c-59a5-493c-a39e-457fad6fe35f,1,0,46b0a5b3-1fa7-44ff-a941-c6de47d36e77,46b0a5b3-1fa7-44ff-a941-c6de47d36e77,1,0,75ffd0b9-79be-4600-a310-591fddb6d63e,75ffd0b9-79be-4600-a310-591fddb6d63e,1,0,4883cb3d-4ab3-4e0e-bddb-ae8852547a3c,4883cb3d-4ab3-4e0e-bddb-ae8852547a3c,1,0,85d6d214-2b70-4cc4-ba80-f4325dd4ca65,85d6d214-2b70-4cc4-ba80-f4325dd4ca65,1,0,89888993-3b05-475e-ac76-3cd7ced93250,89888993-3b05-475e-ac76-3cd7ced93250,1,0,129f704b-cc63-4a4e-b6a7-9e53de4537a2,129f704b-cc63-4a4e-b6a7-9e53de4537a2,1,0,ea97b67e-1182-49c3-b95a-8fcce4cd3d09,ea97b67e-1182-49c3-b95a-8fcce4cd3d09,1,0,592f55e1-b004-44ef-878a-6c2016ccbeb0,592f55e1-b004-44ef-878a-6c2016ccbeb0,1,0,19add2bd-eede-4a05-901b-cf8ce49a638f,19add2bd-eede-4a05-901b-cf8ce49a638f,1,0,becf53b6-3fbc-4c70-822f-4a70b0434353,becf53b6-3fbc-4c70-822f-4a70b0434353,1,0,c7f544c6-488e-4178-af0d-d2ae07a8b89a,c7f544c6-488e-4178-af0d-d2ae07a8b89a,1,0,7dc0429d-146a-4c4f-b122-5d5c053bd4ed,7dc0429d-146a-4c4f-b122-5d5c053bd4ed,1,0,f8dc2485-685b-4e41-834a-a2cbbbe4d53b,f8dc2485-685b-4e41-834a-a2cbbbe4d53b,1,0,c38d8135-e11f-4860-b370-84ff279b7fbd,c38d8135-e11f-4860-b370-84ff279b7fbd,1,0,ee0798f5-47a8-4118-a25c-cfd3473007c1,ee0798f5-47a8-4118-a25c-cfd3473007c1,1,0,652ee894-047b-4a5a-a500-2d61b4c4a473,652ee894-047b-4a5a-a500-2d61b4c4a473,1,0,8a95d199-9bd1-4cbb-9d1a-941e80fa2105,8a95d199-9bd1-4cbb-9d1a-941e80fa2105,1,0,33f8cd94-71e7-4703-92c3-22690fbd871a,33f8cd94-71e7-4703-92c3-22690fbd871a,1,0,b6e5de4d-0156-4342-b646-6e6920a4bd3a,b6e5de4d-0156-4342-b646-6e6920a4bd3a,1,0,afba65e1-1a1c-4e28-91a3-29ca8eef2a1f,afba65e1-1a1c-4e28-91a3-29ca8eef2a1f,1,0,c03f9972-5a1f-449b-b170-5a958c2b5846,c03f9972-5a1f-449b-b170-5a958c2b5846,1,0,25896075-2484-4879-8310-7f5680d80b48,25896075-2484-4879-8310-7f5680d80b48,1,0,1e3c444d-6f73-4eb0-a12d-7106daf36b14,1e3c444d-6f73-4eb0-a12d-7106daf36b14,1,0,9043894d-f89a-459f-a4ea-77fe3633aa91,9043894d-f89a-459f-a4ea-77fe3633aa91,1,0,085cbea9-1df1-4ee9-afb7-da2bf313697e,085cbea9-1df1-4ee9-afb7-da2bf313697e,1,0,09858042-6284-4499-8055-c1b5b783ce5f,09858042-6284-4499-8055-c1b5b783ce5f,1,0,38fc1e6e-7cd3-437b-b429-6655be34cd01,38fc1e6e-7cd3-437b-b429-6655be34cd01,1,0,95a71c2e-aa39-42ec-8889-2390a553f146,95a71c2e-aa39-42ec-8889-2390a553f146,1,0,8c4c7982-36cc-4dc9-b055-9954f61e6365,8c4c7982-36cc-4dc9-b055-9954f61e6365,1,0,ba51c7f5-0074-4c99-a27d-ddfd4bfcc068,ba51c7f5-0074-4c99-a27d-ddfd4bfcc068,1,0,e29d96ee-e8fa-4100-8a0e-494398e4ec9d,e29d96ee-e8fa-4100-8a0e-494398e4ec9d,1,0,5f3d5a05-a581-462d-96a2-2750ba0e0481,5f3d5a05-a581-462d-96a2-2750ba0e0481,1,0,477ab478-b336-4bac-898f-e20e3a4039b5,477ab478-b336-4bac-898f-e20e3a4039b5,1,0,a4d767a1-d2e6-4e0a-ab35-9207eef54998,a4d767a1-d2e6-4e0a-ab35-9207eef54998,1,0,e50cb13a-151b-45d2-a7b7-d23440ddfa24,e50cb13a-151b-45d2-a7b7-d23440ddfa24,1,0,cc3a7f15-4db6-445e-b282-f44d0460b7d3,cc3a7f15-4db6-445e-b282-f44d0460b7d3,1,0,0b8bfb71-d430-4bdf-8391-a534b3a15fc3,0b8bfb71-d430-4bdf-8391-a534b3a15fc3,1,0,19ea515f-65f7-4ed9-812b-c97b92e2498f,19ea515f-65f7-4ed9-812b-c97b92e2498f,1,0,0d8770aa-fa6e-471c-92c8-b96576927ef0,0d8770aa-fa6e-471c-92c8-b96576927ef0,1,0,1fe12fa0-af7c-487b-b20d-f41100826e0b,1fe12fa0-af7c-487b-b20d-f41100826e0b,1,0,4f86b052-b81e-49b8-9fa8-82b2ecbc8e01,4f86b052-b81e-49b8-9fa8-82b2ecbc8e01,1,0,e25b2b10-bf08-42db-9642-861efc5e583b,e25b2b10-bf08-42db-9642-861efc5e583b,1,0,b8a32c33-4e15-4c21-baab-64a86d44321b,b8a32c33-4e15-4c21-baab-64a86d44321b,1,0,d7dd9a03-6818-4987-8f39-58e1c906569f,d7dd9a03-6818-4987-8f39-58e1c906569f,1,0,e4216976-2747-4078-81d4-8ffab668c1f7,e4216976-2747-4078-81d4-8ffab668c1f7,1,0,fce028b8-b530-49f0-b6ad-a28d03e19b0f,fce028b8-b530-49f0-b6ad-a28d03e19b0f,1,0,301eea20-0e7f-441e-a531-28b4627dfd93,301eea20-0e7f-441e-a531-28b4627dfd93,1,0,41f87891-ddd5-4e0f-a4f2-8039fb71981b,41f87891-ddd5-4e0f-a4f2-8039fb71981b,1,0,47da49ee-b243-4e78-9c8f-bb26c60e6136,47da49ee-b243-4e78-9c8f-bb26c60e6136,1,0,39bee714-cacd-4d48-97a5-c838660e049a,39bee714-cacd-4d48-97a5-c838660e049a,1,0,9ed2c756-80a1-4559-8494-b7a9b82a4519,9ed2c756-80a1-4559-8494-b7a9b82a4519,1,0,456c5171-4298-4201-9908-79feb376d1b1,456c5171-4298-4201-9908-79feb376d1b1,1,0,69149ce1-d3f8-4e12-be8f-b328ade60882,69149ce1-d3f8-4e12-be8f-b328ade60882,1,0,ff592ecb-eb08-4554-87bf-1d2935b21d3c,ff592ecb-eb08-4554-87bf-1d2935b21d3c,1,0,d975aef4-8da8-4486-baeb-a99c48cff0ec,d975aef4-8da8-4486-baeb-a99c48cff0ec,1,0,75666bb9-f6d3-4dd6-8220-427a81f23fc9,75666bb9-f6d3-4dd6-8220-427a81f23fc9,1,0,9da27139-0bed-47b0-aef6-246929968502,9da27139-0bed-47b0-aef6-246929968502,1,0,7ae5d177-a3e6-4989-b10c-8e0a605c26d9,7ae5d177-a3e6-4989-b10c-8e0a605c26d9,1,0,29f2094a-d0d1-425c-8161-45a9ba186e19,29f2094a-d0d1-425c-8161-45a9ba186e19,1,0,893b2dd9-a939-4799-9b78-50d788a5f3ba,893b2dd9-a939-4799-9b78-50d788a5f3ba,1,0,68229ecd-7ecc-4194-a3e5-f8df39b55d6a,68229ecd-7ecc-4194-a3e5-f8df39b55d6a,1,0,a57f6dc1-59d7-4311-8acd-65ce57a9f386,a57f6dc1-59d7-4311-8acd-65ce57a9f386,1,0,e4842271-4fc0-4e15-afef-876f05af78c0,e4842271-4fc0-4e15-afef-876f05af78c0,1,0,31ee6430-b65d-42fa-859b-c4f1c40686ae,31ee6430-b65d-42fa-859b-c4f1c40686ae,1,0,c59e11f3-6bcb-404a-9d76-1416c12be354,c59e11f3-6bcb-404a-9d76-1416c12be354,1,0,c1a1f12b-3978-4047-956e-a5c7de8371a0,c1a1f12b-3978-4047-956e-a5c7de8371a0,1,0,ac39b903-0c60-417e-a50f-49ed375424f5,ac39b903-0c60-417e-a50f-49ed375424f5,1,0,135d57fe-d420-4bb0-9120-e43fd9b55c16,135d57fe-d420-4bb0-9120-e43fd9b55c16,1,0,9893e2d6-f3f8-4d73-bb06-19bf26d216ab,9893e2d6-f3f8-4d73-bb06-19bf26d216ab,1,0,8cf925d9-6811-4bce-b116-09d6a26ff3cb,8cf925d9-6811-4bce-b116-09d6a26ff3cb,1,0,387d3bbf-cddd-4506-b14f-89c1f37adbbc,387d3bbf-cddd-4506-b14f-89c1f37adbbc,1,0,16392cf6-dd83-4df0-a54b-6efc29778a89,16392cf6-dd83-4df0-a54b-6efc29778a89,1,0,e693cdd0-8ead-4ba5-adec-86bab74ee7cd,e693cdd0-8ead-4ba5-adec-86bab74ee7cd,1,0,a12c0e81-00c3-4126-a001-b4441fd63030,a12c0e81-00c3-4126-a001-b4441fd63030,1,0,36999e1b-865e-41ad-b9d6-1b3ac887acfb,36999e1b-865e-41ad-b9d6-1b3ac887acfb,1,0,10db9f99-c7d1-4b16-9ea2-9bfc2aa4ddb5,10db9f99-c7d1-4b16-9ea2-9bfc2aa4ddb5,1,0,230722e6-942f-4594-be89-eff59c6572bf,230722e6-942f-4594-be89-eff59c6572bf,1,0,237dab99-ed72-432c-ad01-c6045d74f000,237dab99-ed72-432c-ad01-c6045d74f000,1,0,a1130128-cc48-4555-93a2-99e7f74f77dc,a1130128-cc48-4555-93a2-99e7f74f77dc,1,0,af52cd7d-374a-4c46-a74c-305e154dc6f2,af52cd7d-374a-4c46-a74c-305e154dc6f2,1,0,9b4b7424-1af7-4d80-8404-8819fcfeae75,9b4b7424-1af7-4d80-8404-8819fcfeae75,1,0,94e08dcf-3885-4a73-82ab-cb291f1cf95f,94e08dcf-3885-4a73-82ab-cb291f1cf95f,1,0,8947286f-ba4a-44e7-b805-2f096028dc4f,8947286f-ba4a-44e7-b805-2f096028dc4f,1,0,55ce840b-5838-4107-886d-f935b9907bd8,55ce840b-5838-4107-886d-f935b9907bd8,1,0,0b3088c9-7fb9-4979-acce-16d7ae7ba6b7,0b3088c9-7fb9-4979-acce-16d7ae7ba6b7,1,0,f1753bda-16db-4b00-a16a-37ddade8403f,f1753bda-16db-4b00-a16a-37ddade8403f,1,0,2a985b50-a4b1-4932-8af6-51eee8e78ac8,2a985b50-a4b1-4932-8af6-51eee8e78ac8,1,0,e353db15-71c5-4b68-9ffb-9800800a59dc,e353db15-71c5-4b68-9ffb-9800800a59dc,1,0,976d9ba7-d9c7-4a9e-ad5d-53cb5bca8984,976d9ba7-d9c7-4a9e-ad5d-53cb5bca8984,1,0,fe9eca7c-6e3d-4c3f-b98d-abd8ab05d35e,fe9eca7c-6e3d-4c3f-b98d-abd8ab05d35e,1,0,a1875d63-4303-46f1-bdea-fc529b5891f3,a1875d63-4303-46f1-bdea-fc529b5891f3,1,0,e05b6f44-8244-4e94-a6d3-57450f8b47dc,e05b6f44-8244-4e94-a6d3-57450f8b47dc,1,0,59123b12-6052-4480-9c86-f4de1b5cdc04,59123b12-6052-4480-9c86-f4de1b5cdc04,1,0,19b98b60-deb1-4642-8159-2a11332558e2,19b98b60-deb1-4642-8159-2a11332558e2,1,0,133f181a-fade-4182-826d-904fac780326,133f181a-fade-4182-826d-904fac780326,1,0,a687748a-0b2a-4277-b935-07616d28430d,a687748a-0b2a-4277-b935-07616d28430d,1,0,f60cb71a-f451-426a-aa3a-aa266b8da149,f60cb71a-f451-426a-aa3a-aa266b8da149,1,0,641ebe22-7135-4adb-bbd6-e0c37d246a2d,641ebe22-7135-4adb-bbd6-e0c37d246a2d,1,0,f71ba01e-9f6b-4241-8048-4368c8888756,f71ba01e-9f6b-4241-8048-4368c8888756,1,0,9059defa-047f-4dac-9749-3d0a6a77308a,9059defa-047f-4dac-9749-3d0a6a77308a,1,0,6010c27f-e857-4fc3-be13-1eea51f02ea7,6010c27f-e857-4fc3-be13-1eea51f02ea7,1,0,973609a2-5b5d-45c4-9606-a13d0de1a09b,973609a2-5b5d-45c4-9606-a13d0de1a09b,1,0,6aa814fa-417e-428c-951e-6efd9d0775da,6aa814fa-417e-428c-951e-6efd9d0775da,1,0,a247efe1-8608-4780-9cc8-54e29944475b,a247efe1-8608-4780-9cc8-54e29944475b,1,0,4b8c3c82-6e8f-469e-8a80-144361d1d0b2,4b8c3c82-6e8f-469e-8a80-144361d1d0b2,1,0,a8f162e9-3f59-41a5-b82f-da20928213c7,a8f162e9-3f59-41a5-b82f-da20928213c7,1,0,7ad16fb4-17eb-4812-8015-9447d92e08ce,7ad16fb4-17eb-4812-8015-9447d92e08ce,1,0,ade68dfd-5037-4fd7-b043-9514e3fe6342,ade68dfd-5037-4fd7-b043-9514e3fe6342,1,0,7b008aad-9d05-43e1-8295-62ae58cfff42,7b008aad-9d05-43e1-8295-62ae58cfff42,1,0,fdaf9255-d621-4a98-9530-f618ed440795,fdaf9255-d621-4a98-9530-f618ed440795,1,0,48cefa96-46c7-4870-a096-951dcbae479a,48cefa96-46c7-4870-a096-951dcbae479a,1,0,d74e01cc-941b-4974-8771-0bd2e0d86724,d74e01cc-941b-4974-8771-0bd2e0d86724,1,0,0daac965-2026-4acc-8ba1-3c1f01779257,0daac965-2026-4acc-8ba1-3c1f01779257,1,0,65a331c0-7501-49f6-8027-35b703d11834,65a331c0-7501-49f6-8027-35b703d11834,1,0,5e4ee280-3dd2-4f68-be6c-fb5343438817,5e4ee280-3dd2-4f68-be6c-fb5343438817,1,0,75d1b6df-ede3-4172-987f-fe1551f686ee,75d1b6df-ede3-4172-987f-fe1551f686ee,1,0,c67fab0a-704f-43ae-bd03-4b5b1a880b24,c67fab0a-704f-43ae-bd03-4b5b1a880b24,1,0,81979741-65c9-48a5-9f69-e0d0f0c8ddaa,81979741-65c9-48a5-9f69-e0d0f0c8ddaa,1,0,87553d04-a72a-40b1-9005-85ea0efebf5d,87553d04-a72a-40b1-9005-85ea0efebf5d,1,0,c1703a14-61a0-4461-8ad8-7173e2c431fe,c1703a14-61a0-4461-8ad8-7173e2c431fe,1,0,aecf5653-3005-43f2-ab49-40977e70f02b,aecf5653-3005-43f2-ab49-40977e70f02b,1,0,8bd56034-6d56-4c2f-8e7f-4c0fff49ac39,8bd56034-6d56-4c2f-8e7f-4c0fff49ac39,1,0,845530cd-36fb-44c3-b30a-730985c9ca2d,845530cd-36fb-44c3-b30a-730985c9ca2d,1,0,9e90d9f7-5301-44b3-9eba-45fee5a69a0b,9e90d9f7-5301-44b3-9eba-45fee5a69a0b,1,0,475f8577-a141-496b-94e1-53215c0dd017,475f8577-a141-496b-94e1-53215c0dd017,1,0,97638762-c01e-4c8f-88e2-b356e517e18f,97638762-c01e-4c8f-88e2-b356e517e18f,1,0,074e34f2-e9be-4bd3-beca-8b916772e2be,074e34f2-e9be-4bd3-beca-8b916772e2be,1,0,28fecf1b-7cab-4087-b66e-2052edb8ce3a,28fecf1b-7cab-4087-b66e-2052edb8ce3a,1,0,6527be82-a665-4f8a-818b-a35b96b3484b,6527be82-a665-4f8a-818b-a35b96b3484b,1,0,d85b00b7-b0d8-4b91-8d7f-0c2da524d446,d85b00b7-b0d8-4b91-8d7f-0c2da524d446,1,0,cc906f05-5ea6-43cb-a084-c4ee51ca4bd5,cc906f05-5ea6-43cb-a084-c4ee51ca4bd5,1,0,83e30f0b-67b2-411b-9624-ac4c4bd7f94a,83e30f0b-67b2-411b-9624-ac4c4bd7f94a,1,0,12285a8d-5b3b-4a72-8e31-366afd1c2ca3,12285a8d-5b3b-4a72-8e31-366afd1c2ca3,1,0,c79ba5a5-e6d9-4a3f-ab23-eca876607f7f,c79ba5a5-e6d9-4a3f-ab23-eca876607f7f,1,0,ce5549bd-ba99-4259-86a3-36521bad59f5,ce5549bd-ba99-4259-86a3-36521bad59f5,1,0,f5417147-4d2a-4e49-911b-2bb5eccb8441,f5417147-4d2a-4e49-911b-2bb5eccb8441,1,0,20fbed2b-4393-4de0-a71d-017a336bdac0,20fbed2b-4393-4de0-a71d-017a336bdac0,1,0,2ca4fc58-798b-4fc3-8673-27688ce7a1f2,2ca4fc58-798b-4fc3-8673-27688ce7a1f2,1,0,fbbb2449-9a07-4229-8ea5-bee0afab5f56,fbbb2449-9a07-4229-8ea5-bee0afab5f56,1,0,9fdddb51-0605-4f64-8d2e-aa7dbcd37262,9fdddb51-0605-4f64-8d2e-aa7dbcd37262,1,0,3f3f1b41-57a9-4a82-bdfa-89a6653479ab,3f3f1b41-57a9-4a82-bdfa-89a6653479ab,1,0,fd12fbe2-56a2-4c9e-a072-989d826a5ea3,fd12fbe2-56a2-4c9e-a072-989d826a5ea3,1,0,f38b6034-5246-42a7-8f3c-51eaf3e5399c,f38b6034-5246-42a7-8f3c-51eaf3e5399c,1,0,08552af7-3c44-42c6-94c5-63a2316127fc,08552af7-3c44-42c6-94c5-63a2316127fc,1,0,41f6f6d1-b7cf-4477-907b-ce69fc08c799,41f6f6d1-b7cf-4477-907b-ce69fc08c799,1,0,9f1a61dd-b04f-48ae-b0c0-17cf23bdb04b,9f1a61dd-b04f-48ae-b0c0-17cf23bdb04b,1,0,0d124daf-dc52-4391-a2d9-3c43a45c422c,0d124daf-dc52-4391-a2d9-3c43a45c422c,1,0,a300ecc3-8031-4a50-a17d-b08cf3a72139,a300ecc3-8031-4a50-a17d-b08cf3a72139,1,0,e7e78b7e-b103-40d6-8064-f84e2d86ca3d,e7e78b7e-b103-40d6-8064-f84e2d86ca3d,1,0,dc14a27a-2299-4bd5-8c0e-5f84adae507a,dc14a27a-2299-4bd5-8c0e-5f84adae507a,1,0,bf20e6ce-bbe6-4523-9381-f9cb6cad348c,bf20e6ce-bbe6-4523-9381-f9cb6cad348c,1,0,9c443dd3-4acb-4c5a-9c4b-af8b0c87e861,9c443dd3-4acb-4c5a-9c4b-af8b0c87e861,1,0,98153b59-8cc6-4dc7-b945-99c1146d07da,98153b59-8cc6-4dc7-b945-99c1146d07da,1,0,52f3e20c-1cf7-4284-a083-6539782f4bc3,52f3e20c-1cf7-4284-a083-6539782f4bc3,1,0,657b8663-713c-4a80-81e1-8c0166742a35,657b8663-713c-4a80-81e1-8c0166742a35,1,0,0d1e5608-0462-4069-ad7b-1c4b3bc1a256,0d1e5608-0462-4069-ad7b-1c4b3bc1a256,1,0,8d8ac8f0-37e1-4637-87c7-5af82d05202b,8d8ac8f0-37e1-4637-87c7-5af82d05202b,1,0,8dad7f71-63cb-449a-bafd-79bd63f10310,8dad7f71-63cb-449a-bafd-79bd63f10310,1,0,866438d1-1223-4768-9c96-e6cb12f1a4d5,866438d1-1223-4768-9c96-e6cb12f1a4d5,1,0,d416cc2a-425f-4c01-a550-5a755ed78cc8,d416cc2a-425f-4c01-a550-5a755ed78cc8,1,0,df9db8d5-c5c2-4a9d-88fe-77247b2c417e,df9db8d5-c5c2-4a9d-88fe-77247b2c417e,1,0,6b70f7e1-8bdb-4fc4-9b95-0e045bfa288c,6b70f7e1-8bdb-4fc4-9b95-0e045bfa288c,1,0,a890be6b-f050-4ea4-a388-570948ffd22b,a890be6b-f050-4ea4-a388-570948ffd22b,1,0,9039f720-5728-4918-87d5-8b2d07cabcfd,9039f720-5728-4918-87d5-8b2d07cabcfd,1,0,b00c31d6-4fc6-4189-9f72-f91742ec705f,b00c31d6-4fc6-4189-9f72-f91742ec705f,1,0,1333101b-82e8-41a9-a793-5af5dcd6f68a,1333101b-82e8-41a9-a793-5af5dcd6f68a,1,0,ae039438-89af-4217-910d-476115f51ab2,ae039438-89af-4217-910d-476115f51ab2,1,0,aaaa7d41-3399-41b5-b882-58af38121494,aaaa7d41-3399-41b5-b882-58af38121494,1,0,0f25646a-90f9-4747-a778-7efdaabc284c,0f25646a-90f9-4747-a778-7efdaabc284c,1,0,2b43d8e1-86b1-4f3a-aad8-f0f6eb1f1de9,2b43d8e1-86b1-4f3a-aad8-f0f6eb1f1de9,1,0,3705a086-46e6-4090-a52a-535908eea8a5,3705a086-46e6-4090-a52a-535908eea8a5,1,0,9b9cd161-5bee-4433-a0ec-b67deb099b5e,9b9cd161-5bee-4433-a0ec-b67deb099b5e,1,0,ca179cb5-65e1-4a55-bf12-096b926accb0,ca179cb5-65e1-4a55-bf12-096b926accb0,1,0,a6587758-f7af-4f85-81b4-4312c725824e,a6587758-f7af-4f85-81b4-4312c725824e,1,0,5d336d1e-24f9-404a-9671-3bcdc7c48a25,5d336d1e-24f9-404a-9671-3bcdc7c48a25,1,0,d508b3e9-4dac-40a3-9a0b-1cc76b4196ea,d508b3e9-4dac-40a3-9a0b-1cc76b4196ea,1,0,63470706-f14b-4733-87c2-d1173f5d7e7a,63470706-f14b-4733-87c2-d1173f5d7e7a,1,0,472ce1c2-9e83-418b-b1ec-e15e126bc919,472ce1c2-9e83-418b-b1ec-e15e126bc919,1,0,9fe30414-8261-4403-a854-f22b61824f69,9fe30414-8261-4403-a854-f22b61824f69,1,0,07bb26ac-bd97-465f-a192-db7fedbb579b,07bb26ac-bd97-465f-a192-db7fedbb579b,1,0,76cdcc51-0e6a-4f9c-a115-1864998c2add,76cdcc51-0e6a-4f9c-a115-1864998c2add,1,0,71c3e5d3-7504-433f-9d48-7c287b2b863b,71c3e5d3-7504-433f-9d48-7c287b2b863b,1,0,0894db61-51f6-4068-9634-e55d95e2a8ac,0894db61-51f6-4068-9634-e55d95e2a8ac,1,0,0d8c215d-1210-47a2-897d-a3257b9f849a,0d8c215d-1210-47a2-897d-a3257b9f849a,1,0,ea2e9a4e-eca1-4a6e-b7a6-8922a11334aa,ea2e9a4e-eca1-4a6e-b7a6-8922a11334aa,1,0,c971e0ba-53b8-4454-92f7-40b0d639058a,c971e0ba-53b8-4454-92f7-40b0d639058a,1,0,9d8496ea-fc0c-410d-994d-7480350d71d3,9d8496ea-fc0c-410d-994d-7480350d71d3,1,0,0f0456a8-ca04-4de4-9d9b-e8b0fdb8b860,0f0456a8-ca04-4de4-9d9b-e8b0fdb8b860,1,0,ed297409-6215-4fd4-b47d-a2247e0343da,ed297409-6215-4fd4-b47d-a2247e0343da,1,0,5b62e0d1-8dba-47db-8dbb-517ad935fa0d,5b62e0d1-8dba-47db-8dbb-517ad935fa0d,1,0,f1560584-99a3-48ac-b736-e7d33affe474,f1560584-99a3-48ac-b736-e7d33affe474,1,0,e7a63151-fc1a-4563-8768-26d854ab012b,e7a63151-fc1a-4563-8768-26d854ab012b,1,0,e7d0cc1f-f3ee-486e-b1f3-db8e6a6162cc,e7d0cc1f-f3ee-486e-b1f3-db8e6a6162cc,1,0,c54f31ce-114b-46d3-b4c6-12c8f07727ca,c54f31ce-114b-46d3-b4c6-12c8f07727ca,1,0,73c7750f-8291-4e19-8551-635cd6b94215,73c7750f-8291-4e19-8551-635cd6b94215,1,0,5a9c82c1-d0cd-48ff-b91c-38b950591e4c,5a9c82c1-d0cd-48ff-b91c-38b950591e4c,1,0,a1463001-f3d8-4064-95e4-cf49aedc2a8c,a1463001-f3d8-4064-95e4-cf49aedc2a8c,1,0,59855d19-29cd-4efd-a453-b19e574113ef,59855d19-29cd-4efd-a453-b19e574113ef,1,0,249b6436-bd44-4950-b118-7f40f7aaf794,249b6436-bd44-4950-b118-7f40f7aaf794,1,0,6a9f1485-21a4-41e8-b8a7-26340eff5085,6a9f1485-21a4-41e8-b8a7-26340eff5085,1,0,630845af-a7dc-4d1e-8c1a-44fa65aab036,630845af-a7dc-4d1e-8c1a-44fa65aab036,1,0,65dd4904-0837-4de5-a5e5-601151055d94,65dd4904-0837-4de5-a5e5-601151055d94,1,0,2063d4ea-5f58-4cf9-84de-1f8f59d87748,2063d4ea-5f58-4cf9-84de-1f8f59d87748,1,0,4642db34-b98d-4b4e-823e-ef7d6de5fc02,4642db34-b98d-4b4e-823e-ef7d6de5fc02,1,0,cfce9728-f37a-4ddc-adc1-4569900462b8,cfce9728-f37a-4ddc-adc1-4569900462b8,1,0,d20739a3-a149-4b64-b9ca-4a76aca06cb8,d20739a3-a149-4b64-b9ca-4a76aca06cb8,1,0,99c5e87a-f096-4315-8fbe-f596ea9c176f,99c5e87a-f096-4315-8fbe-f596ea9c176f,1,0,9dd57f32-90a1-4a1d-bc2a-c1b12461d963,9dd57f32-90a1-4a1d-bc2a-c1b12461d963,1,0,ce6d1259-af90-482b-b19a-405512321bd9,ce6d1259-af90-482b-b19a-405512321bd9,1,0,e984fbf9-6b89-4d38-8938-b2b0e6623c7a,e984fbf9-6b89-4d38-8938-b2b0e6623c7a,1,0,9b76ded4-814a-4267-99c5-2c8fb05ee352,9b76ded4-814a-4267-99c5-2c8fb05ee352,1,0,df48bfa3-5502-4a61-a79f-1dea043dac36,df48bfa3-5502-4a61-a79f-1dea043dac36,1,0,adee37e6-f087-422f-91b3-681f3d73189c,adee37e6-f087-422f-91b3-681f3d73189c,1,0,eb276904-cad7-4401-bb78-2d13946291f1,eb276904-cad7-4401-bb78-2d13946291f1,1,0,171a64b6-39d2-455f-b304-1c6ea8d85494,171a64b6-39d2-455f-b304-1c6ea8d85494,1,0,79ff04ac-4625-469b-916e-938f04de4dd2,79ff04ac-4625-469b-916e-938f04de4dd2,1,0,c5e9f987-4466-4161-8e36-278b0b3ce056,c5e9f987-4466-4161-8e36-278b0b3ce056,1,0,db445527-7bd2-448b-bf87-5ac0c10d742d,db445527-7bd2-448b-bf87-5ac0c10d742d,1,0,b6566d54-e821-4a2a-a447-0f533f35de91,b6566d54-e821-4a2a-a447-0f533f35de91,1,0,46568b9a-a765-4037-8a86-b184a570ab37,46568b9a-a765-4037-8a86-b184a570ab37,1,0,4fcc7278-2fec-49ee-b0ef-c7d5f5f698a4,4fcc7278-2fec-49ee-b0ef-c7d5f5f698a4,1,0,547a6dec-6fe8-439d-a8d9-ac2612af20d2,547a6dec-6fe8-439d-a8d9-ac2612af20d2,1,0,2bc2c4b7-dacb-4cb3-b5b2-712b19bebcd7,2bc2c4b7-dacb-4cb3-b5b2-712b19bebcd7,1,0,1e633034-6dcc-4564-9f40-348c32143314,1e633034-6dcc-4564-9f40-348c32143314,1,0,a43fbfd8-6324-4192-a1a6-5628a7edb4d2,a43fbfd8-6324-4192-a1a6-5628a7edb4d2,1,0,84395058-d46a-428c-b782-a9fa89fea14a,84395058-d46a-428c-b782-a9fa89fea14a,1,0,c3c1a825-6b35-4b09-8043-63f75b575707,c3c1a825-6b35-4b09-8043-63f75b575707,1,0,5465466d-48be-493a-aadc-e97046b010cc,5465466d-48be-493a-aadc-e97046b010cc,1,0,fa61df43-49e7-4d5f-a0b9-f35af199f9f5,fa61df43-49e7-4d5f-a0b9-f35af199f9f5,1,0,0b92cced-d818-400c-82b6-7726e912a478,0b92cced-d818-400c-82b6-7726e912a478,1,0,5feb9b74-3d94-4202-a96a-170968f54194,5feb9b74-3d94-4202-a96a-170968f54194,1,0,cc9679a5-1ed2-4290-8c9b-8a2f6614d053,cc9679a5-1ed2-4290-8c9b-8a2f6614d053,1,0,d8621f68-106e-4058-963f-56010491ae2e,d8621f68-106e-4058-963f-56010491ae2e,1,0,4766c40e-6330-4c1d-a64f-0c8c672886a4,4766c40e-6330-4c1d-a64f-0c8c672886a4,1,0,766c9bee-b0fc-4a7f-b88e-cd8c4aad73b8,766c9bee-b0fc-4a7f-b88e-cd8c4aad73b8,1,0,1f3057c2-135f-44b2-9f86-34481fbc5596,1f3057c2-135f-44b2-9f86-34481fbc5596,1,0,f8f0d92c-b7f0-496c-8d33-f8a57dfa16f2,f8f0d92c-b7f0-496c-8d33-f8a57dfa16f2,1,0,f2e2df50-52fc-4e95-909b-80fc91a68f62,f2e2df50-52fc-4e95-909b-80fc91a68f62,1,0,1a1d8dd0-1559-426c-ad3c-baa6eb3a53db,1a1d8dd0-1559-426c-ad3c-baa6eb3a53db,1,0,7a944c45-9b3d-411f-b2ef-de3c896092bb,7a944c45-9b3d-411f-b2ef-de3c896092bb,1,0,d2762764-b5c0-4aeb-8e89-3371972f22d8,d2762764-b5c0-4aeb-8e89-3371972f22d8,1,0,54f3902b-f29a-4f04-8c9d-68c318fcd076,54f3902b-f29a-4f04-8c9d-68c318fcd076,1,0,573f1753-9194-4aaf-9217-5cac70ff108f,573f1753-9194-4aaf-9217-5cac70ff108f,1,0,323997ca-488d-4d84-aa44-da60b6b4d414,323997ca-488d-4d84-aa44-da60b6b4d414,1,0,1f7ec25a-05b1-468b-8857-2bb1aed3678a,1f7ec25a-05b1-468b-8857-2bb1aed3678a,1,0,50d3e00e-1a83-4bd5-91db-0561560caf42,50d3e00e-1a83-4bd5-91db-0561560caf42,1,0,c8ba4901-7f70-4353-b039-d75f1cb3f5b7,c8ba4901-7f70-4353-b039-d75f1cb3f5b7,1,0,c121b8bc-ecbf-4775-b210-3c1e3502a6ac,c121b8bc-ecbf-4775-b210-3c1e3502a6ac,1,0,9f4d5fe5-9bda-4ba9-a313-db1ab0ea14d1,9f4d5fe5-9bda-4ba9-a313-db1ab0ea14d1,1,0,44afff59-0590-4929-93b8-7b49735f21b5,44afff59-0590-4929-93b8-7b49735f21b5,1,0,905624ea-b253-413f-b651-1eb2c5a7d52a,905624ea-b253-413f-b651-1eb2c5a7d52a,1,0,b639ed30-3e37-4c65-a39f-00fe735950eb,b639ed30-3e37-4c65-a39f-00fe735950eb,1,0,76ef7f67-0ce8-4ee2-9134-e793c41b8de3,76ef7f67-0ce8-4ee2-9134-e793c41b8de3,1,0,f137eb0f-bde7-412d-9229-d7a4f9456e6c,f137eb0f-bde7-412d-9229-d7a4f9456e6c,1,0,90880131-8065-4a7e-a0fa-ecff9e27363c,90880131-8065-4a7e-a0fa-ecff9e27363c,1,0,57e9fcea-342c-4089-bd10-befb3faf0dbd,57e9fcea-342c-4089-bd10-befb3faf0dbd,1,0,e624feb5-4630-447b-870c-7e1460296294,e624feb5-4630-447b-870c-7e1460296294,1,0,f85ff11a-163e-4d18-98bc-b0ebe83d34e4,f85ff11a-163e-4d18-98bc-b0ebe83d34e4,1,0,51a0444d-13c8-45a8-97f6-f3f976964bf8,51a0444d-13c8-45a8-97f6-f3f976964bf8,1,0,9892f922-8745-4164-a200-94b5edc1ea0a,9892f922-8745-4164-a200-94b5edc1ea0a,1,0,38eb3fd1-57be-4dc2-bed4-d8107086bf2a,38eb3fd1-57be-4dc2-bed4-d8107086bf2a,1,0,6b6d541b-5dc1-4150-b8d1-5844a694ac6a,6b6d541b-5dc1-4150-b8d1-5844a694ac6a,1,0,2b1619a6-c841-4963-8c51-c1d8d6ba3746,2b1619a6-c841-4963-8c51-c1d8d6ba3746,1,0,eab50f82-4612-47fd-a5c2-9678016a1937,eab50f82-4612-47fd-a5c2-9678016a1937,1,0,2609ba3c-e4de-45b3-86e0-93db39a21eee,2609ba3c-e4de-45b3-86e0-93db39a21eee,1,0,00dcfeab-7ba1-4a50-996e-4fd693dd0514,00dcfeab-7ba1-4a50-996e-4fd693dd0514,1,0,d21971c9-9aa6-448a-ab37-49ad0b0547ec,d21971c9-9aa6-448a-ab37-49ad0b0547ec,1,0,627438b8-c738-4e02-a0e7-cfd7fbf8eca1,627438b8-c738-4e02-a0e7-cfd7fbf8eca1,1,0,3e4361e9-2baf-407b-9320-b2a265b44e46,3e4361e9-2baf-407b-9320-b2a265b44e46,1,0,a5902ed4-a8f1-460e-aced-0094b2c384a3,a5902ed4-a8f1-460e-aced-0094b2c384a3,1,0,85b591b4-a93d-4fcb-bdc7-e6d44436e511,85b591b4-a93d-4fcb-bdc7-e6d44436e511,1,0,00418e6c-77b2-4753-b9ff-3a8013436f8a,00418e6c-77b2-4753-b9ff-3a8013436f8a,1,0,e2c76c41-4c47-4588-a081-7bd81ac1698b,e2c76c41-4c47-4588-a081-7bd81ac1698b,1,0,8deaa3d0-b36b-4f20-a9a8-11d829f5ef9d,8deaa3d0-b36b-4f20-a9a8-11d829f5ef9d,1,0,26986f8d-d56d-4641-9184-2632d0881cca,26986f8d-d56d-4641-9184-2632d0881cca,1,0,92bec607-7217-42f6-8eb9-ace759672336,92bec607-7217-42f6-8eb9-ace759672336,1,0,144676de-f369-49f1-bb21-d60e073936df,144676de-f369-49f1-bb21-d60e073936df,1,0,d5537afb-df5f-4edf-a3d3-ff6b2a908ad9,d5537afb-df5f-4edf-a3d3-ff6b2a908ad9,1,0,38bf6d3b-5435-4bac-b9fc-23b80afeb760,38bf6d3b-5435-4bac-b9fc-23b80afeb760,1,0,644cf757-bff9-4e2e-b72b-1e736c42d4c3,644cf757-bff9-4e2e-b72b-1e736c42d4c3,1,0,a3c9a7eb-2104-4402-954c-3e12de4a7de3,a3c9a7eb-2104-4402-954c-3e12de4a7de3,1,0,a2a51b70-9570-4f53-9d30-e9a9b099a475,a2a51b70-9570-4f53-9d30-e9a9b099a475,1,0,556a0e57-5b3b-4303-a013-0bd296c506b8,556a0e57-5b3b-4303-a013-0bd296c506b8,1,0,969f7e7d-5108-4bb5-9087-386bcd182ea1,969f7e7d-5108-4bb5-9087-386bcd182ea1,1,0,fabbac92-cb98-4087-b3fa-387482ed0d86,fabbac92-cb98-4087-b3fa-387482ed0d86,1,0,bbbc2d1f-2f78-4b7e-b5fb-ca7c74051221,bbbc2d1f-2f78-4b7e-b5fb-ca7c74051221,1,0,304525f8-c697-4835-b0a6-4ed3cbcaf3c6,304525f8-c697-4835-b0a6-4ed3cbcaf3c6,1,0,a96ce77e-7f3a-467a-8bf7-9a640222cf40,a96ce77e-7f3a-467a-8bf7-9a640222cf40,1,0,fdcbe67c-55fb-444d-bed8-cee956ca3530,fdcbe67c-55fb-444d-bed8-cee956ca3530,1,0,e09534e3-ac6e-42a6-86e8-564acb20089a,e09534e3-ac6e-42a6-86e8-564acb20089a,1,0,5e380276-2a08-435c-927e-a7f56f5a4dbc,5e380276-2a08-435c-927e-a7f56f5a4dbc,1,0,6ff5b3cb-efff-430d-bf0a-957405f116ca,6ff5b3cb-efff-430d-bf0a-957405f116ca,1,0,d06e845a-9f54-40dd-b0df-6988def62017,d06e845a-9f54-40dd-b0df-6988def62017,1,0,63223883-06cf-4d01-be95-5e410cc58a22,63223883-06cf-4d01-be95-5e410cc58a22,1,0,1929139f-dabb-4c40-9423-158093360889,1929139f-dabb-4c40-9423-158093360889,1,0,dad92df4-685b-4260-b35f-4d031262dfea,dad92df4-685b-4260-b35f-4d031262dfea,1,0,4399c19a-ddba-42e9-88b4-c5c28abad237,4399c19a-ddba-42e9-88b4-c5c28abad237,1,0,982315ba-df74-4a31-8929-71d1e5e6f147,982315ba-df74-4a31-8929-71d1e5e6f147,1,0,e4703f32-ad6e-4803-8776-7d32c57d3549,e4703f32-ad6e-4803-8776-7d32c57d3549,1,0,8d1c01a9-9806-4e5d-bafb-ce6af11d5650,8d1c01a9-9806-4e5d-bafb-ce6af11d5650,1,0,b8b267e3-75af-4140-b515-d99e8e748e84,b8b267e3-75af-4140-b515-d99e8e748e84,1,0,ff976027-75e8-475c-abfa-876d36733c13,ff976027-75e8-475c-abfa-876d36733c13,1,0,7452d9c0-cb03-4d1b-afd4-8855950f2ad8,7452d9c0-cb03-4d1b-afd4-8855950f2ad8,1,0,32d4a42d-6e4d-49db-b5bc-1ea6dbe9fe4d,32d4a42d-6e4d-49db-b5bc-1ea6dbe9fe4d,1,0,40c8b547-35d0-4dbd-8fa1-ba108c3022b1,40c8b547-35d0-4dbd-8fa1-ba108c3022b1,1,0,3f823f5b-e5a8-40af-8fc3-e4c6ffb18fa3,3f823f5b-e5a8-40af-8fc3-e4c6ffb18fa3,1,0,c0218ef0-4aa1-4ff1-963b-e6ab1001ae9e,c0218ef0-4aa1-4ff1-963b-e6ab1001ae9e,1,0,0a1837b6-9a0a-4a86-b929-89d032d41383,0a1837b6-9a0a-4a86-b929-89d032d41383,1,0,62ff29be-7d52-4c63-8726-c55bf69a64de,62ff29be-7d52-4c63-8726-c55bf69a64de,1,0,e55d259f-cfaa-46f9-92c4-687e1ff3b89d,e55d259f-cfaa-46f9-92c4-687e1ff3b89d,1,0,123b8af3-8724-4f77-b1d6-6768832a43a7,123b8af3-8724-4f77-b1d6-6768832a43a7,1,0,cb81fb9f-16a2-4265-92a9-b827ca2fd588,cb81fb9f-16a2-4265-92a9-b827ca2fd588,1,0,cf13e2d9-72a0-47c0-bae2-f674024bbdb2,cf13e2d9-72a0-47c0-bae2-f674024bbdb2,1,0,62d4d073-80df-41e6-a915-43a4f5575206,62d4d073-80df-41e6-a915-43a4f5575206,1,0,145ecede-baae-4725-832a-5387794922ed,145ecede-baae-4725-832a-5387794922ed,1,0,540be4e1-6eae-48e2-a645-8bd0a1259c65,540be4e1-6eae-48e2-a645-8bd0a1259c65,1,0,2fa09d14-6d28-4bfb-87c3-894e66ab6bca,2fa09d14-6d28-4bfb-87c3-894e66ab6bca,1,0,f772abd3-8ea0-41e9-aaca-c5375778941a,f772abd3-8ea0-41e9-aaca-c5375778941a,1,0,cfa1b3e7-747b-409a-8bb5-6d41b85b7105,cfa1b3e7-747b-409a-8bb5-6d41b85b7105,1,0,a1e494f8-96a4-41bd-9234-b87e8d8742c5,a1e494f8-96a4-41bd-9234-b87e8d8742c5,1,0,35bc58df-8aff-48dd-83a9-b60b0461f94d,35bc58df-8aff-48dd-83a9-b60b0461f94d,1,0,b322b047-16eb-4500-826a-6dfebb7d997a,b322b047-16eb-4500-826a-6dfebb7d997a,1,0,83ead93b-4ff6-487d-934e-25088944fccc,83ead93b-4ff6-487d-934e-25088944fccc,1,0,764c76cc-0473-4633-868d-02f96aa43c10,764c76cc-0473-4633-868d-02f96aa43c10,1,0,c8da922f-e31e-49b0-b90e-1c060424bde5,c8da922f-e31e-49b0-b90e-1c060424bde5,1,0,7b01236c-5ab7-43fa-aa0e-1ae55c8a4efe,7b01236c-5ab7-43fa-aa0e-1ae55c8a4efe,1,0,eca025d2-4fe9-4542-b9f5-46ae2631256e,eca025d2-4fe9-4542-b9f5-46ae2631256e,1,0,0bd92b85-3844-43c2-a846-119993806041,0bd92b85-3844-43c2-a846-119993806041,1,0,9416a741-5106-454e-b953-81f3d99d5e71,9416a741-5106-454e-b953-81f3d99d5e71,1,0,30f6aedf-946f-400c-822d-5fa375b8fb1d,30f6aedf-946f-400c-822d-5fa375b8fb1d,1,0,46e313f7-54da-4884-89e8-cdba6ae30d30,46e313f7-54da-4884-89e8-cdba6ae30d30,1,0,feb1a5c1-c805-4079-8f05-8a44f51b0b02,feb1a5c1-c805-4079-8f05-8a44f51b0b02,1,0,ff7916bd-cbd1-4d9e-8aab-bad9fffaa0d4,ff7916bd-cbd1-4d9e-8aab-bad9fffaa0d4,1,0,1f55f330-7c0a-4a29-905f-51d664515bc5,1f55f330-7c0a-4a29-905f-51d664515bc5,1,0,308781d9-ea18-4c30-ba95-ef822e7ef739,308781d9-ea18-4c30-ba95-ef822e7ef739,1,0,a7f3ee04-4ffe-4a21-b2ad-92cd3f4acd8f,a7f3ee04-4ffe-4a21-b2ad-92cd3f4acd8f,1,0,6106e958-354c-4211-992c-3c3819e8828e,6106e958-354c-4211-992c-3c3819e8828e,1,0,9d6d77a9-1f55-4162-93a5-14bb3f3febaf,9d6d77a9-1f55-4162-93a5-14bb3f3febaf,1,0,61789ea5-aad2-4b3b-a1c7-3ff7409379eb,61789ea5-aad2-4b3b-a1c7-3ff7409379eb,1,0,2cd04d4c-2619-40c9-adf4-7bb281f045b6,2cd04d4c-2619-40c9-adf4-7bb281f045b6,1,0,1d6b8425-360c-4ab1-9bab-cc9a3b590bb2,1d6b8425-360c-4ab1-9bab-cc9a3b590bb2,1,0,9f67d228-79aa-44e6-8dc7-fae4fbdfef2a,9f67d228-79aa-44e6-8dc7-fae4fbdfef2a,1,0,231d3950-f363-4e63-83cd-8ddb81507c27,231d3950-f363-4e63-83cd-8ddb81507c27,1,0,87429f11-bf95-4013-bf13-da904570f88d,87429f11-bf95-4013-bf13-da904570f88d,1,0,6173cab2-e0f5-40c1-8e74-4f41fc8bd68f,6173cab2-e0f5-40c1-8e74-4f41fc8bd68f,1,0,feb41347-62db-41cf-ace0-d8b9de361af3,feb41347-62db-41cf-ace0-d8b9de361af3,1,0,5a088468-4065-4e0c-9b84-1162de8d3fdd,5a088468-4065-4e0c-9b84-1162de8d3fdd,1,0,dbdf3ae7-a0af-44b9-8e3d-c402d98cda03,dbdf3ae7-a0af-44b9-8e3d-c402d98cda03,1,0,f3ae1a2c-e0ca-461b-ba5a-76a6423c6325,f3ae1a2c-e0ca-461b-ba5a-76a6423c6325,1,0,b233d29c-3979-4ef6-b7f0-89ca88f65e82,b233d29c-3979-4ef6-b7f0-89ca88f65e82,1,0,684ca876-644e-43f5-b96a-1561fb5b1935,684ca876-644e-43f5-b96a-1561fb5b1935,1,0,5f91b00f-d8fc-4d63-8486-66339357ab22,5f91b00f-d8fc-4d63-8486-66339357ab22,1,0,16d44ab1-4bce-4df8-a215-6ed5173c75a8,16d44ab1-4bce-4df8-a215-6ed5173c75a8,1,0,86a9d7ab-7a96-4c58-8073-ca4b2b99cceb,86a9d7ab-7a96-4c58-8073-ca4b2b99cceb,1,0,1ae1a239-0d88-4467-af33-32bcfe6cf61d,1ae1a239-0d88-4467-af33-32bcfe6cf61d,1,0,375977c1-5745-4e78-a4df-cef966c0ccf8,375977c1-5745-4e78-a4df-cef966c0ccf8,1,0,2582a714-a6d6-4d37-b9a7-5e89e18b0f27,2582a714-a6d6-4d37-b9a7-5e89e18b0f27,1,0,c3796d85-2a24-43c4-9673-64e56249a1d0,c3796d85-2a24-43c4-9673-64e56249a1d0,1,0,c234a467-ad6c-41d0-ac9e-8592acd8d9d2,c234a467-ad6c-41d0-ac9e-8592acd8d9d2,1,0,fc1066b5-20d4-4c73-85f8-9889e554d6e1,fc1066b5-20d4-4c73-85f8-9889e554d6e1,1,0,a9b6b5fd-1862-4207-87e8-5c25a8f86c57,a9b6b5fd-1862-4207-87e8-5c25a8f86c57,1,0,731211c2-ef90-4883-9525-83cd91b742ac,731211c2-ef90-4883-9525-83cd91b742ac,1,0,0adf02da-940a-4bfc-afa5-59605494a169,0adf02da-940a-4bfc-afa5-59605494a169,1,0,8361991a-0f30-4a03-9a4c-90556b744f53,8361991a-0f30-4a03-9a4c-90556b744f53,1,0,5a3cc2a8-f519-45ac-af9b-c57a4f1acdc0,5a3cc2a8-f519-45ac-af9b-c57a4f1acdc0,1,0,08427a9a-fb3a-4bc1-b2e2-72e4f89680cd,08427a9a-fb3a-4bc1-b2e2-72e4f89680cd,1,0,259cb8f5-9e78-4b2f-941b-ccb4b1112c8b,259cb8f5-9e78-4b2f-941b-ccb4b1112c8b,1,0,24f9d1a6-73d0-4cc7-b3ca-d36c5c7a9892,24f9d1a6-73d0-4cc7-b3ca-d36c5c7a9892,1,0,73c1a829-0191-486b-97a0-7f333c6f8011,73c1a829-0191-486b-97a0-7f333c6f8011,1,0,db28f23f-a771-46c0-96e8-5e4389b28b8b,db28f23f-a771-46c0-96e8-5e4389b28b8b,1,0,5504f5d1-35d8-4a47-a0e1-003fe00395c1,5504f5d1-35d8-4a47-a0e1-003fe00395c1,1,0,56242b05-d722-4d4a-82d9-517e0e169d0b,56242b05-d722-4d4a-82d9-517e0e169d0b,1,0,f9196766-4ae2-4a73-bed6-4a8838323e02,f9196766-4ae2-4a73-bed6-4a8838323e02,1,0,4eeda6df-fb48-4c88-853f-9c35e2b3a3cf,4eeda6df-fb48-4c88-853f-9c35e2b3a3cf,1,0,52fd1e04-44b6-4405-a2de-ec5c0cf66b64,52fd1e04-44b6-4405-a2de-ec5c0cf66b64,1,0,9a647b38-73da-4491-997b-773059cfd1c9,9a647b38-73da-4491-997b-773059cfd1c9,1,0,50a1e3bf-8624-4474-854e-21b89aaf97ed,50a1e3bf-8624-4474-854e-21b89aaf97ed,1,0,503b3eab-b7f1-4ede-8845-3290a834cec7,503b3eab-b7f1-4ede-8845-3290a834cec7,1,0,847b97a3-d0bc-45e2-b06c-932bb22d8eca,847b97a3-d0bc-45e2-b06c-932bb22d8eca,1,0,6c7b82ca-37b0-4f67-b7fa-ab1b77c0fb61,6c7b82ca-37b0-4f67-b7fa-ab1b77c0fb61,1,0,3116fa60-bc42-4dea-aa03-387896168690,3116fa60-bc42-4dea-aa03-387896168690,1,0,ca797560-8802-4bdc-b21f-7a7fd795beae,ca797560-8802-4bdc-b21f-7a7fd795beae,1,0,7b074b91-3c8e-48b3-8858-b6ea1c531f66,7b074b91-3c8e-48b3-8858-b6ea1c531f66,1,0,3df19dbf-efe7-4e31-99ad-fafb59ec1329,3df19dbf-efe7-4e31-99ad-fafb59ec1329,1,0,baf12d47-fbfe-4563-aa23-26d9f7e83169,baf12d47-fbfe-4563-aa23-26d9f7e83169,1,0,e2046f49-6fea-4bf4-92b0-92f3c8357bcf,e2046f49-6fea-4bf4-92b0-92f3c8357bcf,1,0,0ba11486-1972-4434-ab1a-5bb75cc05e9f,0ba11486-1972-4434-ab1a-5bb75cc05e9f,1,0,4ed9c555-7dd0-4577-bf62-152b4c5ec9f2,4ed9c555-7dd0-4577-bf62-152b4c5ec9f2,1,0,c1c62215-41b8-40bc-a806-1347db5b03e9,c1c62215-41b8-40bc-a806-1347db5b03e9,1,0,a24322f3-c7a5-4b25-bad6-9c75712a3e58,a24322f3-c7a5-4b25-bad6-9c75712a3e58,1,0,679d2b3b-a354-4dec-b49d-ab1163756e3a,679d2b3b-a354-4dec-b49d-ab1163756e3a,1,0,665e96bc-8ec1-4008-b9bd-db95a234b9b8,665e96bc-8ec1-4008-b9bd-db95a234b9b8,1,0,a8021ff9-f0ae-49ab-b8ac-5e3d8fe90d82,a8021ff9-f0ae-49ab-b8ac-5e3d8fe90d82,1,0,f09b09ce-9e3c-406a-8508-b6e7e6ec966e,f09b09ce-9e3c-406a-8508-b6e7e6ec966e,1,0,9bf55587-1ffe-42bc-b8e8-3f956956f689,9bf55587-1ffe-42bc-b8e8-3f956956f689,1,0,2f67931e-543f-457e-80fd-78ca754e2e9c,2f67931e-543f-457e-80fd-78ca754e2e9c,1,0,595e5752-36a7-4bba-8a40-26920acae01d,595e5752-36a7-4bba-8a40-26920acae01d,1,0,28801fba-c429-4afa-bdcd-b3ec3ec22fda,28801fba-c429-4afa-bdcd-b3ec3ec22fda,1,0,d1a873ae-d45b-4600-9419-e701dce3da02,d1a873ae-d45b-4600-9419-e701dce3da02,1,0,e3a31f0d-a98f-43c6-bc39-087095ae8c39,e3a31f0d-a98f-43c6-bc39-087095ae8c39,1,0,e39d8ff3-52db-4ba4-b4ea-42d5ee787076,e39d8ff3-52db-4ba4-b4ea-42d5ee787076,1,0,b1c1c2eb-f9cd-468a-8398-b0b7f611f832,b1c1c2eb-f9cd-468a-8398-b0b7f611f832,1,0,4bb0f7c3-62f3-4352-9bc8-e243dd18fe4a,4bb0f7c3-62f3-4352-9bc8-e243dd18fe4a,1,0,bc106ef9-3eeb-40d4-aa59-ae1855ba1744,bc106ef9-3eeb-40d4-aa59-ae1855ba1744,1,0,73d8b319-9bea-4638-a602-23c12f37c227,73d8b319-9bea-4638-a602-23c12f37c227,1,0,a43e9de0-2921-4c58-a5f8-7446258be967,a43e9de0-2921-4c58-a5f8-7446258be967,1,0,307656e3-df7f-46e7-946c-bbd439265c95,307656e3-df7f-46e7-946c-bbd439265c95,1,0,eb3dfdc7-58b8-4b1f-b079-368c262364c9,eb3dfdc7-58b8-4b1f-b079-368c262364c9,1,0,5030a318-f8f7-4ec7-80d6-6eee0772562f,5030a318-f8f7-4ec7-80d6-6eee0772562f,1,0,242e911d-e49c-4b8a-8543-cc2e079220fd,242e911d-e49c-4b8a-8543-cc2e079220fd,1,0,9ea39d31-3775-4fb8-a3f3-202e54354d49,9ea39d31-3775-4fb8-a3f3-202e54354d49,1,0,73044e20-148c-46e9-b5b5-973c91de0d61,73044e20-148c-46e9-b5b5-973c91de0d61,1,0,24cff6c8-6c20-4383-b97c-6afa52738960,24cff6c8-6c20-4383-b97c-6afa52738960,1,0,462e2694-750d-49ef-93ac-17a7779be68d,462e2694-750d-49ef-93ac-17a7779be68d,1,0,c24ff02e-5afc-45df-81cf-64ea2b261c2d,c24ff02e-5afc-45df-81cf-64ea2b261c2d,1,0,5d9d88ea-b2e4-425c-bb4d-a005e867d56c,5d9d88ea-b2e4-425c-bb4d-a005e867d56c,1,0,b76d342c-0f9d-4eb0-b49e-a9f472a4dd0d,b76d342c-0f9d-4eb0-b49e-a9f472a4dd0d,1,0,85639a53-b367-49ce-84f2-4e21d81c489b,85639a53-b367-49ce-84f2-4e21d81c489b,1,0,24b59586-178e-4efc-90ae-529553f3bb6c,24b59586-178e-4efc-90ae-529553f3bb6c,1,0,20e75dd5-222a-4100-aa43-3684991e3f21,20e75dd5-222a-4100-aa43-3684991e3f21,1,0,3c611832-4bc2-4229-a27d-d5dc82f3a498,3c611832-4bc2-4229-a27d-d5dc82f3a498,1,0,50e9eb52-02e3-44ff-9c9e-e76dbe38da63,50e9eb52-02e3-44ff-9c9e-e76dbe38da63,1,0,5dadc422-1fbd-4918-9db3-09ec72c3404e,5dadc422-1fbd-4918-9db3-09ec72c3404e,1,0,ffdaf8a0-7a8f-4756-bdfc-a0c6ae6c3869,ffdaf8a0-7a8f-4756-bdfc-a0c6ae6c3869,1,0,ab1bcabf-ffb0-4914-8ad0-b94b5aaeab1d,ab1bcabf-ffb0-4914-8ad0-b94b5aaeab1d,1,0,c5478d09-c8d3-4cc6-878e-27656ecc8409,c5478d09-c8d3-4cc6-878e-27656ecc8409,1,0,01b97d2f-40b9-4f12-8bc5-ab75fd160b7c,01b97d2f-40b9-4f12-8bc5-ab75fd160b7c,1,0,75974146-5b1a-412c-b7d5-1575704bbdab,75974146-5b1a-412c-b7d5-1575704bbdab,1,0,949f87cb-258c-4b6b-95ee-8a7491a4b64e,949f87cb-258c-4b6b-95ee-8a7491a4b64e,1,0,8a348012-99dc-4dc9-8bec-0df3caf4cdc5,8a348012-99dc-4dc9-8bec-0df3caf4cdc5,1,0,5c089988-5381-41ed-9f05-f85db46b8d94,5c089988-5381-41ed-9f05-f85db46b8d94,1,0,85a36352-1569-4ce4-aeba-477db524c36d,85a36352-1569-4ce4-aeba-477db524c36d,1,0,ebfb6f80-88f5-4046-8ae7-e11a7b0c1beb,ebfb6f80-88f5-4046-8ae7-e11a7b0c1beb,1,0,d99991b8-3a81-4e18-b0ad-05fc3e3a199b,d99991b8-3a81-4e18-b0ad-05fc3e3a199b,1,0,dd383422-dddb-4a81-9326-015fd345b5c1,dd383422-dddb-4a81-9326-015fd345b5c1,1,0,b2e656c1-f4ff-4d95-b066-4ee11ce4dea8,b2e656c1-f4ff-4d95-b066-4ee11ce4dea8,1,0,2d86d1fc-5367-47b8-804e-7f9c5fc8f3b1,2d86d1fc-5367-47b8-804e-7f9c5fc8f3b1,1,0,aa299fc6-051f-487c-ada4-451e08c4763c,aa299fc6-051f-487c-ada4-451e08c4763c,1,0,782cb93d-36e6-4923-b2b6-75caa3459cd6,782cb93d-36e6-4923-b2b6-75caa3459cd6,1,0,800ef5f0-fdd1-4f8b-8c0b-9744952bfb5b,800ef5f0-fdd1-4f8b-8c0b-9744952bfb5b,1,0,b51eaf45-baa1-4d1c-bcb7-a89bb8bcc26a,b51eaf45-baa1-4d1c-bcb7-a89bb8bcc26a,1,0,0f314b6b-5ed1-46ed-bdfd-cf53330c2783,0f314b6b-5ed1-46ed-bdfd-cf53330c2783,1,0,322645d4-e3fb-467b-a55d-d8e74cff2ea3,322645d4-e3fb-467b-a55d-d8e74cff2ea3,1,0,5ea29362-0ab7-4ca3-865e-bf93db5ca24b,5ea29362-0ab7-4ca3-865e-bf93db5ca24b,1,0,8363bd46-1ea5-44f0-858a-05bc03f6020e,8363bd46-1ea5-44f0-858a-05bc03f6020e,1,0,0f039952-09d3-49c8-b909-e8333a3fc8f9,0f039952-09d3-49c8-b909-e8333a3fc8f9,1,0,d8fc4644-5351-443c-8b5d-5de2c4b855d1,d8fc4644-5351-443c-8b5d-5de2c4b855d1,1,0,64ff6058-c6f3-4682-b9a1-11ec438fa447,64ff6058-c6f3-4682-b9a1-11ec438fa447,1,0,9cd2fc77-a4b0-457e-a6b0-63dbf521bf90,9cd2fc77-a4b0-457e-a6b0-63dbf521bf90,1,0,a321b6db-391b-4c65-8d27-ce486d10055e,a321b6db-391b-4c65-8d27-ce486d10055e,1,0,71dfde27-3762-4dd0-9252-6e703ce1b101,71dfde27-3762-4dd0-9252-6e703ce1b101,1,0,ced01234-9417-49ce-adf0-8cdd15e6dd7d,ced01234-9417-49ce-adf0-8cdd15e6dd7d,1,0,c1272bfc-196a-4f99-935f-e2516bc138d2,c1272bfc-196a-4f99-935f-e2516bc138d2,1,0,313e0688-745a-4385-b040-7ef8317a0eb7,313e0688-745a-4385-b040-7ef8317a0eb7,1,0,7fe61c5d-30bc-440d-9e40-12ff3b296616,7fe61c5d-30bc-440d-9e40-12ff3b296616,1,0,37c37f15-f84b-456b-aab6-729562dc0908,37c37f15-f84b-456b-aab6-729562dc0908,1,0,996c7873-1cc9-44f6-915b-5c6ed7ef2370,996c7873-1cc9-44f6-915b-5c6ed7ef2370,1,0,8dc08932-0988-4e82-8a5f-385c0694f9ff,8dc08932-0988-4e82-8a5f-385c0694f9ff,1,0,13dee5d8-f165-48de-9ccb-3ef0239f4b27,13dee5d8-f165-48de-9ccb-3ef0239f4b27,1,0,2767473e-79fb-4c7c-a7d1-a83a8f2df71d,2767473e-79fb-4c7c-a7d1-a83a8f2df71d,1,0,0eea37cc-47f8-4819-85da-d4991f4e58ed,0eea37cc-47f8-4819-85da-d4991f4e58ed,1,0,45a2569e-820c-4d7d-ba74-4a781d26bb2b,45a2569e-820c-4d7d-ba74-4a781d26bb2b,1,0,8a13c899-1659-48cf-9aa2-07ca99547b7b,8a13c899-1659-48cf-9aa2-07ca99547b7b,1,0,eb3f959c-94a4-4e77-b9f9-e81954254079,eb3f959c-94a4-4e77-b9f9-e81954254079,1,0,91a0ceed-03ce-4914-9cd1-dec49bba336f,91a0ceed-03ce-4914-9cd1-dec49bba336f,1,0,99387869-f8b1-4269-bd26-e39380d17b69,99387869-f8b1-4269-bd26-e39380d17b69,1,0,4b2acdb9-fefd-4735-9dfd-d7d141967f3c,4b2acdb9-fefd-4735-9dfd-d7d141967f3c,1,0,bc07d643-a044-4882-b95b-2173a197fd0e,bc07d643-a044-4882-b95b-2173a197fd0e,1,0,826c2821-147d-4aaf-910c-acfbdb58a29f,826c2821-147d-4aaf-910c-acfbdb58a29f,1,0,aeea0075-bdeb-41b7-b9cc-1da7b500455f,aeea0075-bdeb-41b7-b9cc-1da7b500455f,1,0,11c086b0-c646-4701-983d-c38758286354,11c086b0-c646-4701-983d-c38758286354,1,0,21fad9b6-44df-417c-ba18-de4b8af98a34,21fad9b6-44df-417c-ba18-de4b8af98a34,1,0,f5ef3f75-7d12-4284-844f-54d19d1f7e2f,f5ef3f75-7d12-4284-844f-54d19d1f7e2f,1,0,7974e41d-5af3-4636-b405-c9405d89fb53,7974e41d-5af3-4636-b405-c9405d89fb53,1,0,36d6b0e1-5e10-408a-8eb1-09839e57690f,36d6b0e1-5e10-408a-8eb1-09839e57690f,1,0,6423b849-7ca4-4501-8856-445157d7e5df,6423b849-7ca4-4501-8856-445157d7e5df,1,0,0819e2b0-1eb0-41b3-ab89-0974bd926fb6,0819e2b0-1eb0-41b3-ab89-0974bd926fb6,1,0,e814287f-1c13-4f74-9507-d22a62394fd2,e814287f-1c13-4f74-9507-d22a62394fd2,1,0,417ac987-7369-45af-b670-fdffb048f33d,417ac987-7369-45af-b670-fdffb048f33d,1,0,640a5d72-dbc7-421b-afdb-cc3a4622ae04,640a5d72-dbc7-421b-afdb-cc3a4622ae04,1,0,79da84c1-5ac2-4472-8eb9-f0484b9582c2,79da84c1-5ac2-4472-8eb9-f0484b9582c2,1,0,2d0b161b-7d69-4ec4-a483-79bd458cb62c,2d0b161b-7d69-4ec4-a483-79bd458cb62c,1,0,f178bc1b-ebea-4fa9-8861-fe0d91f103e4,f178bc1b-ebea-4fa9-8861-fe0d91f103e4,1,0,e33a9c94-7e98-4b38-ba20-4546a90b2937,e33a9c94-7e98-4b38-ba20-4546a90b2937,1,0,1610e73c-58df-41cc-8349-51b920806821,1610e73c-58df-41cc-8349-51b920806821,1,0,ae37f465-1ee5-4f06-a834-deea9e9e0eb3,ae37f465-1ee5-4f06-a834-deea9e9e0eb3,1,0,c6ccf82f-f130-4037-9e89-1e0365b996a4,c6ccf82f-f130-4037-9e89-1e0365b996a4,1,0,c532963e-0d92-44b9-9cfc-43ed2744ccf9,c532963e-0d92-44b9-9cfc-43ed2744ccf9,1,0,6aff2855-24d4-4f90-b617-53326efdd1bd,6aff2855-24d4-4f90-b617-53326efdd1bd,1,0,0107a9c7-4c85-49c4-918a-925d85d57a0b,0107a9c7-4c85-49c4-918a-925d85d57a0b,1,0,6e1efa55-969b-4c2b-8af2-b11d672db5f0,6e1efa55-969b-4c2b-8af2-b11d672db5f0,1,0,e5b578a1-e33b-4d49-8064-427aa928a844,e5b578a1-e33b-4d49-8064-427aa928a844,1,0,f74e97ad-fef6-4122-a056-86f2d59dfdaf,f74e97ad-fef6-4122-a056-86f2d59dfdaf,1,0,60340efe-6a9e-4676-856f-87bfae5409f7,60340efe-6a9e-4676-856f-87bfae5409f7,1,0,ac9f4c2e-316b-4f96-8fe6-fb5a5a7e48ed,ac9f4c2e-316b-4f96-8fe6-fb5a5a7e48ed,1,0,da808c0e-b1b0-4d46-8c63-2bbe7d0dca9d,da808c0e-b1b0-4d46-8c63-2bbe7d0dca9d,1,0,b848d70a-9d08-4b1a-8df1-17697432516d,b848d70a-9d08-4b1a-8df1-17697432516d,1,0,9a30b92d-0c5b-4e11-a741-2b6efa8ac229,9a30b92d-0c5b-4e11-a741-2b6efa8ac229,1,0,92876c9e-52ff-480d-9878-5766f4f9d12c,92876c9e-52ff-480d-9878-5766f4f9d12c,1,0,b729d739-5249-4765-85ee-fd792bb22911,b729d739-5249-4765-85ee-fd792bb22911,1,0,d65c4485-7bac-4206-9a6c-7156f4bb876d,d65c4485-7bac-4206-9a6c-7156f4bb876d,1,0,d431d1e2-13dc-495c-9de1-b5ec872eceed,d431d1e2-13dc-495c-9de1-b5ec872eceed,1,0,e8bec681-d269-41ba-9184-556cbcc27d74,e8bec681-d269-41ba-9184-556cbcc27d74,1,0,b8aaef91-f72c-4127-a494-771c13694ca4,b8aaef91-f72c-4127-a494-771c13694ca4,1,0,433a114f-3198-4ef6-bbf8-ce9b54fdb736,433a114f-3198-4ef6-bbf8-ce9b54fdb736,1,0,02ac711c-e38e-422e-ac28-ba1b298df9cc,02ac711c-e38e-422e-ac28-ba1b298df9cc,1,0,3e090261-4aa2-4ece-9f77-62df83c890b3,3e090261-4aa2-4ece-9f77-62df83c890b3,1,0,9292034c-24e8-49a7-9b77-7974e117847d,9292034c-24e8-49a7-9b77-7974e117847d,1,0,3327b7d4-62fc-44cc-83b4-c449bfa4e706,3327b7d4-62fc-44cc-83b4-c449bfa4e706,1,0,43ecee25-68eb-48cf-bbaa-aee71052438f,43ecee25-68eb-48cf-bbaa-aee71052438f,1,0,93799f8b-0188-4546-8815-35e733bcc2b1,93799f8b-0188-4546-8815-35e733bcc2b1,1,0,9dc3a563-11bb-40a7-8431-c1d4367ccbaf,9dc3a563-11bb-40a7-8431-c1d4367ccbaf,1,0,c9ea4e72-5f01-42ae-88e3-52e49757b26f,c9ea4e72-5f01-42ae-88e3-52e49757b26f,1,0,38d92d75-c8b8-42d6-9e0a-6dc0811a8652,38d92d75-c8b8-42d6-9e0a-6dc0811a8652,1,0,0f564dbe-6a6e-48df-9718-5cea5d608ee6,0f564dbe-6a6e-48df-9718-5cea5d608ee6,1,0,a623fef1-96eb-41ba-93fe-09162698f419,a623fef1-96eb-41ba-93fe-09162698f419,1,0,45a8d7cb-c927-4a4e-a653-13fd9b1eda10,45a8d7cb-c927-4a4e-a653-13fd9b1eda10,1,0,d8e1f92f-9efa-422d-bb21-43bd1a363cec,d8e1f92f-9efa-422d-bb21-43bd1a363cec,1,0,c1416383-bd7e-4dc4-ad88-d98ac87157fd,c1416383-bd7e-4dc4-ad88-d98ac87157fd,1,0,5e8bddc7-7836-4ec8-b6e1-0c15d228f47e,5e8bddc7-7836-4ec8-b6e1-0c15d228f47e,1,0,d5d9976a-4cc0-43f7-afd6-d43cebb07940,d5d9976a-4cc0-43f7-afd6-d43cebb07940,1,0,899f1526-d6bc-42ef-852e-7297a06db9e3,899f1526-d6bc-42ef-852e-7297a06db9e3,1,0,1b4feda1-e555-4b85-b236-b21153a7246f,1b4feda1-e555-4b85-b236-b21153a7246f,1,0,61d3cef4-2c42-417d-a762-a2d2f5a28924,61d3cef4-2c42-417d-a762-a2d2f5a28924,1,0,793d7af5-b499-4646-9e8e-a5728bf71338,793d7af5-b499-4646-9e8e-a5728bf71338,1,0,e4850e53-03b0-43ba-8365-feb89eb38102,e4850e53-03b0-43ba-8365-feb89eb38102,1,0,c694c132-1ddb-4273-818a-d3cca88c082a,c694c132-1ddb-4273-818a-d3cca88c082a,1,0,cd4da06e-c06b-4233-befc-1bc4c4db58e3,cd4da06e-c06b-4233-befc-1bc4c4db58e3,1,0,918a01fe-f753-4a4a-9200-55bbd6edaf5f,918a01fe-f753-4a4a-9200-55bbd6edaf5f,1,0,51a8a209-2a9d-419f-9fda-f7aeac68bdbe,51a8a209-2a9d-419f-9fda-f7aeac68bdbe,1,0,ef43961f-8cac-4f3f-bcee-c6bc51c4148c,ef43961f-8cac-4f3f-bcee-c6bc51c4148c,1,0,7ab6acda-6732-4582-8092-d43f9a98a28d,7ab6acda-6732-4582-8092-d43f9a98a28d,1,0,5ab1d405-bfc3-4440-8cdd-3a63013b064d,5ab1d405-bfc3-4440-8cdd-3a63013b064d,1,0,d6704410-6297-481e-a6cb-6d6aa566b4f8,d6704410-6297-481e-a6cb-6d6aa566b4f8,1,0,398937ca-b035-43bd-b0da-8c5153a87cb8,398937ca-b035-43bd-b0da-8c5153a87cb8,1,0,5b441321-bd1e-4c56-8f09-365b05985eed,5b441321-bd1e-4c56-8f09-365b05985eed,1,0,6bcba052-4d81-409d-b1a2-eed6be6fb024,6bcba052-4d81-409d-b1a2-eed6be6fb024,1,0,559f1e66-e8da-437a-aa27-d0e1be6619b6,559f1e66-e8da-437a-aa27-d0e1be6619b6,1,0,704d69cd-d921-4957-a004-43bd7eb4d979,704d69cd-d921-4957-a004-43bd7eb4d979,1,0,f1594682-16ac-408c-8307-a7a8db79b09f,f1594682-16ac-408c-8307-a7a8db79b09f,1,0,863aebd2-ce32-4f1f-bb3d-d6062ab187fd,863aebd2-ce32-4f1f-bb3d-d6062ab187fd,1,0,4cb814d8-cb1b-4366-b500-e820ad526b0c,4cb814d8-cb1b-4366-b500-e820ad526b0c,1,0,7da5f3b4-6330-4112-9d3a-7bb42996aa4a,7da5f3b4-6330-4112-9d3a-7bb42996aa4a,1,0,6c43df9f-ca36-415b-afec-302807820d73,6c43df9f-ca36-415b-afec-302807820d73,1,0,c7fb7551-806a-40b2-8879-14cd897b60d8,c7fb7551-806a-40b2-8879-14cd897b60d8,1,0,68337023-d573-4d04-95b6-44f73258c2a4,68337023-d573-4d04-95b6-44f73258c2a4,1,0,7cf39337-b722-486f-8e37-a62239d0ccd2,7cf39337-b722-486f-8e37-a62239d0ccd2,1,0,2571cfaf-d876-4385-a60a-1488aacf7080,2571cfaf-d876-4385-a60a-1488aacf7080,1,0,4ea1dd0a-6eab-48e4-a6a7-314d0e211d6c,4ea1dd0a-6eab-48e4-a6a7-314d0e211d6c,1,0,44398566-3189-4584-8f8a-9deb1d07ce41,44398566-3189-4584-8f8a-9deb1d07ce41,1,0,6f4e3082-9c8c-4289-8cc2-704c8d2763ce,6f4e3082-9c8c-4289-8cc2-704c8d2763ce,1,0,accfa63a-479d-4996-95bc-cdf5acdf203c,accfa63a-479d-4996-95bc-cdf5acdf203c,1,0,351998e0-8939-4dd4-a833-f4756bcc53b8,351998e0-8939-4dd4-a833-f4756bcc53b8,1,0,093332f5-3eb4-478c-ac95-59dcdc96765a,093332f5-3eb4-478c-ac95-59dcdc96765a,1,0,cd69bad8-524e-4be4-88cc-7732a88b38b8,cd69bad8-524e-4be4-88cc-7732a88b38b8,1,0,0a32248c-6994-4988-90d1-30882bc9da6b,0a32248c-6994-4988-90d1-30882bc9da6b,1,0,b57b53cb-6972-4bda-ae46-96571be1ebec,b57b53cb-6972-4bda-ae46-96571be1ebec,1,0,1a1a9636-fb72-4e4a-af96-5858442b1e61,1a1a9636-fb72-4e4a-af96-5858442b1e61,1,0,bca9cf34-9e11-4014-976a-28c4330b136e,bca9cf34-9e11-4014-976a-28c4330b136e,1,0,65fffe1a-6f36-4f50-975f-4471ad29d3ec,65fffe1a-6f36-4f50-975f-4471ad29d3ec,1,0,8fe5dad5-686a-4631-ae05-2917c33f7d83,8fe5dad5-686a-4631-ae05-2917c33f7d83,1,0,edef86c6-73bf-4e47-b62d-b2b548a732cd,edef86c6-73bf-4e47-b62d-b2b548a732cd,1,0,a1715044-d76f-4238-ba3e-989d04078d83,a1715044-d76f-4238-ba3e-989d04078d83,1,0,e72e59c0-391d-497e-9407-063e0edf573e,e72e59c0-391d-497e-9407-063e0edf573e,1,0,ae8a1e69-ee1c-4efa-8d63-0279b18617f6,ae8a1e69-ee1c-4efa-8d63-0279b18617f6,1,0,a7ec91a5-2ed4-4ecd-b794-fcd3bb5ea4a2,a7ec91a5-2ed4-4ecd-b794-fcd3bb5ea4a2,1,0,299c47a7-0b30-4f62-8f5c-f087ad6411fb,299c47a7-0b30-4f62-8f5c-f087ad6411fb,1,0,4d4724df-24fb-4c59-9d04-3f984906214a,4d4724df-24fb-4c59-9d04-3f984906214a,1,0,95b10bc8-39ef-43f5-b74e-f36cfa9bc806,95b10bc8-39ef-43f5-b74e-f36cfa9bc806,1,0,cb9b73ee-8531-48d9-9266-9aaa4336a612,cb9b73ee-8531-48d9-9266-9aaa4336a612,1,0,b7b80237-d642-4c21-a9ee-64fc4ed20d2f,b7b80237-d642-4c21-a9ee-64fc4ed20d2f,1,0,d042687f-0725-4611-a868-f5b4f6a3a3a8,d042687f-0725-4611-a868-f5b4f6a3a3a8,1,0,bb143340-7fff-49ef-b121-355c96613f78,bb143340-7fff-49ef-b121-355c96613f78,1,0,cd5fbbcb-19b8-4c0b-93c7-ebdf642826db,cd5fbbcb-19b8-4c0b-93c7-ebdf642826db,1,0,f2f69644-80dc-4b5e-a208-ed1de131e25e,f2f69644-80dc-4b5e-a208-ed1de131e25e,1,0,73060f72-6d08-47da-aac8-d4d2ed8f871c,73060f72-6d08-47da-aac8-d4d2ed8f871c,1,0,82e8ac21-c2aa-47de-89ae-ea6cc10cc862,82e8ac21-c2aa-47de-89ae-ea6cc10cc862,1,0,13b27ec3-2be9-4959-92e5-94ba7bb64f03,13b27ec3-2be9-4959-92e5-94ba7bb64f03,1,0,9f832f4b-ae60-4d81-9ffd-6e00f7e02560,9f832f4b-ae60-4d81-9ffd-6e00f7e02560,1,0,6f6ef6ac-5bb7-41e4-b6d5-0f068e8cb176,6f6ef6ac-5bb7-41e4-b6d5-0f068e8cb176,1,0,821225ea-1bad-49a6-a422-80d8a09baf13,821225ea-1bad-49a6-a422-80d8a09baf13,1,0,d0106f3a-8490-4277-a278-75c318ec252c,d0106f3a-8490-4277-a278-75c318ec252c,1,0,5035aa55-d557-419a-89e2-10ed0f8d109b,5035aa55-d557-419a-89e2-10ed0f8d109b,1,0,5f93d2af-64ff-41cc-8403-4a0e83160fea,5f93d2af-64ff-41cc-8403-4a0e83160fea,1,0,c12c90e4-7c40-489b-b14b-6b9442016e0f,c12c90e4-7c40-489b-b14b-6b9442016e0f,1,0,6371e288-3502-4d66-9006-b5a36107c0b7,6371e288-3502-4d66-9006-b5a36107c0b7,1,0,245814f7-028c-4c13-98eb-15412e851f81,245814f7-028c-4c13-98eb-15412e851f81,1,0,0132e564-2cd3-4930-8962-1068532f4be4,0132e564-2cd3-4930-8962-1068532f4be4,1,0,57d0f9b0-18d0-48ba-9f3c-d106f66ac602,57d0f9b0-18d0-48ba-9f3c-d106f66ac602,1,0,76c802c1-1442-412f-ba91-5864c7a2f8f9,76c802c1-1442-412f-ba91-5864c7a2f8f9,1,0,3a7cfd4c-c943-43c2-a8d5-6d8ab3a10fc9,3a7cfd4c-c943-43c2-a8d5-6d8ab3a10fc9,1,0,36b8b08f-0da3-4dbd-9aa8-73220ca9101d,36b8b08f-0da3-4dbd-9aa8-73220ca9101d,1,0,7021fca5-d612-43e1-927b-7f822153cf75,7021fca5-d612-43e1-927b-7f822153cf75,1,0,9fd16d51-91bb-4973-a7c4-cf4db87da8bf,9fd16d51-91bb-4973-a7c4-cf4db87da8bf,1,0,ee0a8d23-660a-492b-a813-b57394acee05,ee0a8d23-660a-492b-a813-b57394acee05,1,0,d1eda8f4-ffdd-445a-882c-6124d9f7fcf2,d1eda8f4-ffdd-445a-882c-6124d9f7fcf2,1,0,11c5930d-f882-46bd-9e7b-63e5344f6604,11c5930d-f882-46bd-9e7b-63e5344f6604,1,0,ade21e2e-349f-414b-8f35-6ae3b6a4064d,ade21e2e-349f-414b-8f35-6ae3b6a4064d,1,0,cce823c6-3bd5-4e46-91f6-8715cb72b1d5,cce823c6-3bd5-4e46-91f6-8715cb72b1d5,1,0,f3a8dd22-4469-4a3b-a7dd-78a5624b7bf0,f3a8dd22-4469-4a3b-a7dd-78a5624b7bf0,1,0,83f51efe-e2af-459a-b59f-2c036124ac23,83f51efe-e2af-459a-b59f-2c036124ac23,1,0,6ed466d7-e016-4d9c-9c0e-8deed48cbd70,6ed466d7-e016-4d9c-9c0e-8deed48cbd70,1,0,b03829e9-ba22-4584-85f0-c36d63f48242,b03829e9-ba22-4584-85f0-c36d63f48242,1,0,084a7c95-a59b-4861-b8b3-b5710a57ac60,084a7c95-a59b-4861-b8b3-b5710a57ac60,1,0,efcea6da-6746-4e00-913a-14cab38b5d84,efcea6da-6746-4e00-913a-14cab38b5d84,1,0,aff367fb-7fca-44d0-adf9-3731f14834f6,aff367fb-7fca-44d0-adf9-3731f14834f6,1,0,a2782760-dd4c-44d2-a785-814d6f610455,a2782760-dd4c-44d2-a785-814d6f610455,1,0,245162d8-6ae1-47e5-a0c9-0d5f2e5d8ea8,245162d8-6ae1-47e5-a0c9-0d5f2e5d8ea8,1,0,6581ac1f-11ef-42b8-9f3b-590bb7546e63,6581ac1f-11ef-42b8-9f3b-590bb7546e63,1,0,ce952e88-35b7-4506-81ac-d7081e50a650,ce952e88-35b7-4506-81ac-d7081e50a650,1,0,5d7a53fa-1a89-4e6e-868c-4077bd84c0ce,5d7a53fa-1a89-4e6e-868c-4077bd84c0ce,1,0,3bf1281f-7570-4633-86b9-3e953a7e6647,3bf1281f-7570-4633-86b9-3e953a7e6647,1,0,715dc289-5b14-4ee0-8716-9c15958b9069,715dc289-5b14-4ee0-8716-9c15958b9069,1,0,92707138-5004-4378-8477-f909166d319d,92707138-5004-4378-8477-f909166d319d,1,0,43661775-43bb-4d9e-bfbb-c46e7d194ca3,43661775-43bb-4d9e-bfbb-c46e7d194ca3,1,0,532637ef-be0d-4f42-9747-a88e17eb3def,532637ef-be0d-4f42-9747-a88e17eb3def,1,0,61127152-3e24-40b4-8a23-5eb6cae568ff,61127152-3e24-40b4-8a23-5eb6cae568ff,1,0,ffd987e3-e8af-4d46-881e-1e312e74dbac,ffd987e3-e8af-4d46-881e-1e312e74dbac,1,0,ad1142ed-183d-47a3-800c-997a3770e11e,ad1142ed-183d-47a3-800c-997a3770e11e,1,0,ebef37c6-4808-4683-93be-036ce19cafd5,ebef37c6-4808-4683-93be-036ce19cafd5,1,0,66364cd4-aaa5-421d-96d6-3c283c14650d,66364cd4-aaa5-421d-96d6-3c283c14650d,1,0,fdbbbf8b-dacf-436e-8d8b-1e2b8e854b17,fdbbbf8b-dacf-436e-8d8b-1e2b8e854b17,1,0,3c54d440-e908-43d6-a5cc-bb64620c82d7,3c54d440-e908-43d6-a5cc-bb64620c82d7,1,0,23a240a2-52ee-46ab-89d9-50dcee2cc8d2,23a240a2-52ee-46ab-89d9-50dcee2cc8d2,1,0,bf1dd911-8ee1-407b-acae-10c85b74baf3,bf1dd911-8ee1-407b-acae-10c85b74baf3,1,0,e924058f-25c3-4744-a565-836b824991b7,e924058f-25c3-4744-a565-836b824991b7,1,0,bc6a47a1-a3f3-4d7e-9dad-099bd3dba751,bc6a47a1-a3f3-4d7e-9dad-099bd3dba751,1,0,518dcd70-4ccf-4866-a94f-7ceec7dd2801,518dcd70-4ccf-4866-a94f-7ceec7dd2801,1,0,f9950ab5-1077-4033-bbbf-53899a1bcf33,f9950ab5-1077-4033-bbbf-53899a1bcf33,1,0,8f16763b-86f0-4ad0-b786-cce7dcb3460e,8f16763b-86f0-4ad0-b786-cce7dcb3460e,1,0,0481bc65-6a32-46b9-ae87-993ba52a29a5,0481bc65-6a32-46b9-ae87-993ba52a29a5,1,0,36ebebbb-dff1-4dbd-870b-58bd4a71fa1f,36ebebbb-dff1-4dbd-870b-58bd4a71fa1f,1,0,dbc5f419-63b0-4cbe-90ff-c0101105e46c,dbc5f419-63b0-4cbe-90ff-c0101105e46c,1,0,c708f6e9-b7a0-4046-90f3-83527da7b872,c708f6e9-b7a0-4046-90f3-83527da7b872,1,0,0006b44a-3a0c-4be4-8dd0-bd0db9ddcc4d,0006b44a-3a0c-4be4-8dd0-bd0db9ddcc4d,1,0,14256e0a-a947-42a3-8e36-47bfbb052a0c,14256e0a-a947-42a3-8e36-47bfbb052a0c,1,0,1b1aa77a-d14b-4751-a7da-0b5bac4db461,1b1aa77a-d14b-4751-a7da-0b5bac4db461,1,0,c0dcdb22-6719-4597-a781-bca1370909e5,c0dcdb22-6719-4597-a781-bca1370909e5,1,0,7ebf99c3-33d2-4e4c-ac45-ca4ed0c3c100,7ebf99c3-33d2-4e4c-ac45-ca4ed0c3c100,1,0,7a34f723-cd14-4949-a40f-7ce579bf0449,7a34f723-cd14-4949-a40f-7ce579bf0449,1,0,5cdc9ac7-bba9-4ed1-845a-607976fc4679,5cdc9ac7-bba9-4ed1-845a-607976fc4679,1,0,86c22871-6d1c-44e0-8ade-ce4bdeb23321,86c22871-6d1c-44e0-8ade-ce4bdeb23321,1,0,da51de81-4d4f-46b5-a308-7b50db6c45a7,da51de81-4d4f-46b5-a308-7b50db6c45a7,1,0,c2a8c2d3-ff13-4a13-acd4-797118c4e767,c2a8c2d3-ff13-4a13-acd4-797118c4e767,1,0,bc6adf75-8666-49f3-9703-b0014dfee123,bc6adf75-8666-49f3-9703-b0014dfee123,1,0,30632f54-b779-4857-a5cc-c53fe8887ee5,30632f54-b779-4857-a5cc-c53fe8887ee5,1,0,07629bf6-5544-4de9-b1d8-851cb03766cb,07629bf6-5544-4de9-b1d8-851cb03766cb,1,0,d449a85f-2e26-4512-b98c-7be3007966ed,d449a85f-2e26-4512-b98c-7be3007966ed,1,0,581be829-b097-4f95-a0c4-7ca3f13c29fc,581be829-b097-4f95-a0c4-7ca3f13c29fc,1,0,dd978355-1fb7-44a0-ba88-4e72e9cd67a9,dd978355-1fb7-44a0-ba88-4e72e9cd67a9,1,0,087480bb-8c89-4b00-a29b-b7e29926478d,087480bb-8c89-4b00-a29b-b7e29926478d,1,0,685373b7-638a-439a-8cba-703d56e4e404,685373b7-638a-439a-8cba-703d56e4e404,1,0,eafaec9c-030b-4e5f-8fa8-e17dad2feec9,eafaec9c-030b-4e5f-8fa8-e17dad2feec9,1,0,df22b227-b2c3-4e65-9706-7582f99fe59c,df22b227-b2c3-4e65-9706-7582f99fe59c,1,0,35828c88-f1ec-42e7-b189-78748931ee4a,35828c88-f1ec-42e7-b189-78748931ee4a,1,0,8a41b8f1-93fc-44e6-bf45-0d1fa9d24f4a,8a41b8f1-93fc-44e6-bf45-0d1fa9d24f4a,1,0,1cfba08f-d5e5-4833-b494-a25d0477e9c3,1cfba08f-d5e5-4833-b494-a25d0477e9c3,1,0,ae22743b-6d21-4fbb-bb4c-fee53e2b87cb,ae22743b-6d21-4fbb-bb4c-fee53e2b87cb,1,0,921a0a14-8c06-4894-95ce-423000769364,921a0a14-8c06-4894-95ce-423000769364,1,0,3805ee39-a48a-499a-9ef8-9c2a5985404f,3805ee39-a48a-499a-9ef8-9c2a5985404f,1,0,07ccfe87-e1ab-4da7-92cb-a612e0972b0b,07ccfe87-e1ab-4da7-92cb-a612e0972b0b,1,0,08c2f92c-eb05-49e7-bfc9-4a89607b9864,08c2f92c-eb05-49e7-bfc9-4a89607b9864,1,0,6d751379-89a7-49b5-93e5-578329c63d9c,6d751379-89a7-49b5-93e5-578329c63d9c,1,0,c3f156ef-947e-4ebb-883f-4f099a116063,c3f156ef-947e-4ebb-883f-4f099a116063,1,0,5e3ab0a3-c0a6-4f41-85d3-2eede4abb555,5e3ab0a3-c0a6-4f41-85d3-2eede4abb555,1,0,a065ffc3-f50b-4a78-9b84-bfc4e5515a4b,a065ffc3-f50b-4a78-9b84-bfc4e5515a4b,1,0,4cba5a06-1484-4dd1-8e35-2d702c7d96d0,4cba5a06-1484-4dd1-8e35-2d702c7d96d0,1,0,e98e9e56-2995-430c-bd3b-f1070aec15a5,e98e9e56-2995-430c-bd3b-f1070aec15a5,1,0,d35c51b0-4cb7-4f9c-8aac-6a25a1b49adf,d35c51b0-4cb7-4f9c-8aac-6a25a1b49adf,1,0,8a7546f4-bfc9-4732-bf60-43a41e2c8753,8a7546f4-bfc9-4732-bf60-43a41e2c8753,1,0,16244165-d5a4-4012-8bb5-7f5fee1111af,16244165-d5a4-4012-8bb5-7f5fee1111af,1,0,290b72ad-004f-46ab-be5e-47557543b965,290b72ad-004f-46ab-be5e-47557543b965,1,0,e1b2ccf9-5a8f-4008-86f3-d2c7cf5581d1,e1b2ccf9-5a8f-4008-86f3-d2c7cf5581d1,1,0,fa0e0792-bffb-47ce-866f-9e8dbdab17a4,fa0e0792-bffb-47ce-866f-9e8dbdab17a4,1,0,263bcd20-9878-48d4-aac4-b371ec49d8d6,263bcd20-9878-48d4-aac4-b371ec49d8d6,1,0,da1d8660-2757-4cea-bae0-c2210b9406ae,da1d8660-2757-4cea-bae0-c2210b9406ae,1,0,d60329c6-8f48-481d-82e7-18da355cb09c,d60329c6-8f48-481d-82e7-18da355cb09c,1,0,67a04d72-afea-487a-b629-e4b7dfc1df32,67a04d72-afea-487a-b629-e4b7dfc1df32,1,0,c4b14162-b25b-4099-9ec3-7251848ef08a,c4b14162-b25b-4099-9ec3-7251848ef08a,1,0,8eb5ba97-eb38-4357-8bfc-e9618280800d,8eb5ba97-eb38-4357-8bfc-e9618280800d,1,0,b72f73d5-e274-472b-871b-16af72dab603,b72f73d5-e274-472b-871b-16af72dab603,1,0,b008d184-0b61-460d-9490-89ecc1cd58ba,b008d184-0b61-460d-9490-89ecc1cd58ba,1,0,c8340e2f-6958-4bcd-8e17-499c4adfe60b,c8340e2f-6958-4bcd-8e17-499c4adfe60b,1,0,c72831cd-d064-4fe8-9603-64e6d7b8ac4d,c72831cd-d064-4fe8-9603-64e6d7b8ac4d,1,0,03f68d82-752c-45d1-bf9a-60ecd21a2c81,03f68d82-752c-45d1-bf9a-60ecd21a2c81,1,0,307e8938-e347-4eff-b2fb-fd0b8f4aa27f,307e8938-e347-4eff-b2fb-fd0b8f4aa27f,1,0,d4fffc79-2841-49a9-a382-e9e4138984df,d4fffc79-2841-49a9-a382-e9e4138984df,1,0,84e4c572-5b32-46e0-82a0-0c76d4ef5d73,84e4c572-5b32-46e0-82a0-0c76d4ef5d73,1,0,9f41f903-d316-4189-8dc0-603ea9036c1c,9f41f903-d316-4189-8dc0-603ea9036c1c,1,0,e19e70d6-8707-4dde-ae69-7bd97035ca03,e19e70d6-8707-4dde-ae69-7bd97035ca03,1,0,425b5272-1130-457d-8a05-aee8fad681d9,425b5272-1130-457d-8a05-aee8fad681d9,1,0,8d583436-f2a6-4a33-8137-1376f5754643,8d583436-f2a6-4a33-8137-1376f5754643,1,0,4a864e74-41ce-4673-a080-bc3c2ba1b8ee,4a864e74-41ce-4673-a080-bc3c2ba1b8ee,1,0,d279958e-6dd4-4bb0-a65f-c8768b4c4d96,d279958e-6dd4-4bb0-a65f-c8768b4c4d96,1,0,8f09cbed-6f24-461f-9b35-31c64310e74a,8f09cbed-6f24-461f-9b35-31c64310e74a,1,0,2d66502d-77ab-4cc9-9ccf-5433458fae9f,2d66502d-77ab-4cc9-9ccf-5433458fae9f,1,0,cff48da7-3c46-4602-83e8-90c9ea53e107,cff48da7-3c46-4602-83e8-90c9ea53e107,1,0,7155472d-c791-402c-96e1-d25612024c88,7155472d-c791-402c-96e1-d25612024c88,1,0,fb90c261-24a7-4cef-8a2c-85c0e4fdd64a,fb90c261-24a7-4cef-8a2c-85c0e4fdd64a,1,0,9005911d-ea81-48b6-bf50-1a328ff4d7be,9005911d-ea81-48b6-bf50-1a328ff4d7be,1,0,7df12006-c0c0-42a6-b852-bdced72c62e3,7df12006-c0c0-42a6-b852-bdced72c62e3,1,0,9c00987d-3c55-40eb-bae8-f36e71e4ef87,9c00987d-3c55-40eb-bae8-f36e71e4ef87,1,0,29273130-5142-48c9-8399-00e5ab4b6203,29273130-5142-48c9-8399-00e5ab4b6203,1,0,9e14cd7e-1293-4008-baf8-88df6a98abf7,9e14cd7e-1293-4008-baf8-88df6a98abf7,1,0,211d226f-dac6-43d5-8720-952da4339e35,211d226f-dac6-43d5-8720-952da4339e35,1,0,df67cdcd-20ff-46d4-902b-dc4d81ee46bd,df67cdcd-20ff-46d4-902b-dc4d81ee46bd,1,0,98e3aace-52a6-4911-8205-92165adca6de,98e3aace-52a6-4911-8205-92165adca6de,1,0,91f4dbf9-d539-4239-a95d-c1d9e14e50f8,91f4dbf9-d539-4239-a95d-c1d9e14e50f8,1,0,577e5fea-b792-4c8b-b3b3-a03a14b64b04,577e5fea-b792-4c8b-b3b3-a03a14b64b04,1,0,ba5ec2d6-1791-42b5-8e6f-04d1d18e9469,ba5ec2d6-1791-42b5-8e6f-04d1d18e9469,1,0,b18d312b-f9c3-4f37-ac77-d499e949f154,b18d312b-f9c3-4f37-ac77-d499e949f154,1,0,ace2beea-d393-412f-8b71-b845b665e2c4,ace2beea-d393-412f-8b71-b845b665e2c4,1,0,463b8966-a5f9-4a80-82b9-1608a1622e13,463b8966-a5f9-4a80-82b9-1608a1622e13,1,0,f02e807c-6cd3-4a4f-8dad-73bd56ee98ff,f02e807c-6cd3-4a4f-8dad-73bd56ee98ff,1,0,eefd00fe-3241-498f-aeb4-d429a86ab563,eefd00fe-3241-498f-aeb4-d429a86ab563,1,0,802d3489-318f-467d-a9f4-d7c644edac60,802d3489-318f-467d-a9f4-d7c644edac60,1,0,3fd4bc77-2a1b-4750-a54a-4171c8d40027,3fd4bc77-2a1b-4750-a54a-4171c8d40027,1,0,5b27fde9-fa80-48b1-aea1-73e132b9a944,5b27fde9-fa80-48b1-aea1-73e132b9a944,1,0,00bf04d6-6a8e-4b13-94cf-36c1c6090cd8,00bf04d6-6a8e-4b13-94cf-36c1c6090cd8,1,0,a747ec6b-f230-49b4-a929-7ed1ba87b078,a747ec6b-f230-49b4-a929-7ed1ba87b078,1,0,796f8fb4-d9cd-40ae-936b-8a70d2eb1121,796f8fb4-d9cd-40ae-936b-8a70d2eb1121,1,0,01cb357c-af28-4855-afae-45b6df19b344,01cb357c-af28-4855-afae-45b6df19b344,1,0,26e58429-1e08-454a-b4d7-2470390149fb,26e58429-1e08-454a-b4d7-2470390149fb,1,0,daa42bf5-9c32-4913-bc27-38f77ccc1a9f,daa42bf5-9c32-4913-bc27-38f77ccc1a9f,1,0,7620b61a-b0d1-4c71-bc80-72c48e17b96d,7620b61a-b0d1-4c71-bc80-72c48e17b96d,1,0,4802e016-a9e9-47d0-916b-b42194a1f388,4802e016-a9e9-47d0-916b-b42194a1f388,1,0,a1740d1f-1b8f-4db5-be5e-0eac44e934b8,a1740d1f-1b8f-4db5-be5e-0eac44e934b8,1,0,4062674a-4a81-494d-82bc-4984cd7c7903,4062674a-4a81-494d-82bc-4984cd7c7903,1,0,782a8801-06ca-4d63-bf8b-63d2320766d8,782a8801-06ca-4d63-bf8b-63d2320766d8,1,0,93a73123-d98c-4286-9269-7bfcedd115e8,93a73123-d98c-4286-9269-7bfcedd115e8,1,0,c5985c02-1824-4ce9-b415-1621dd2ee864,c5985c02-1824-4ce9-b415-1621dd2ee864,1,0,993ce747-cdc9-445f-ad7d-daf53cd5f7e9,993ce747-cdc9-445f-ad7d-daf53cd5f7e9,1,0,e819aaf6-3dfb-492a-8a4a-50a7c6854790,e819aaf6-3dfb-492a-8a4a-50a7c6854790,1,0,62b95ba1-f213-42fb-90f3-a03e8094bc9e,62b95ba1-f213-42fb-90f3-a03e8094bc9e,1,0,619b534d-5605-40d3-9b8c-4443a21d7795,619b534d-5605-40d3-9b8c-4443a21d7795,1,0,a010bbf4-d547-4576-9797-28e3096ffed3,a010bbf4-d547-4576-9797-28e3096ffed3,1,0,a44c3eb2-1054-41ca-82e8-fc35336e7009,a44c3eb2-1054-41ca-82e8-fc35336e7009,1,0,01f67911-4ca7-4668-b970-62c299b98e56,01f67911-4ca7-4668-b970-62c299b98e56,1,0,20c89c94-f77f-4e14-8c97-2a70c1419ce3,20c89c94-f77f-4e14-8c97-2a70c1419ce3,1,0,aa509aa3-dd45-41f3-82c7-59662c2e2c47,aa509aa3-dd45-41f3-82c7-59662c2e2c47,1,0,c4552529-e69e-4c5c-bd66-04b2f7dac281,c4552529-e69e-4c5c-bd66-04b2f7dac281,1,0,381b49ba-793a-4418-9fd4-598844fb72a6,381b49ba-793a-4418-9fd4-598844fb72a6,1,0,1aee302d-df31-49ea-b542-436dc1d79ae1,1aee302d-df31-49ea-b542-436dc1d79ae1,1,0,593509da-d33c-49ff-a62c-a28cbc4651c1,593509da-d33c-49ff-a62c-a28cbc4651c1,1,0,5e346a0b-a322-4565-adb9-70131fb05fa3,5e346a0b-a322-4565-adb9-70131fb05fa3,1,0,9a69c559-194b-4f74-9879-82740260f5f6,9a69c559-194b-4f74-9879-82740260f5f6,1,0,93bf1dcf-670d-4c8b-bdbf-e43c2edf8056,93bf1dcf-670d-4c8b-bdbf-e43c2edf8056,1,0,8a06f980-78f3-42f4-9d96-da2e0f0f36a7,8a06f980-78f3-42f4-9d96-da2e0f0f36a7,1,0,fee2aa74-7a81-4ab2-a457-2edf8ac1aa2d,fee2aa74-7a81-4ab2-a457-2edf8ac1aa2d,1,0,2e19fb7b-270f-4181-b4a1-640280bbbc5c,2e19fb7b-270f-4181-b4a1-640280bbbc5c,1,0,3981b13c-f8e1-44cc-a8e8-59ee9635d029,3981b13c-f8e1-44cc-a8e8-59ee9635d029,1,0,cf69b045-665d-4f6c-827f-5044beacd125,cf69b045-665d-4f6c-827f-5044beacd125,1,0,aa773eef-0c4a-49be-9f5e-9131bc041415,aa773eef-0c4a-49be-9f5e-9131bc041415,1,0,9b31e474-01d4-4c3b-a633-3a2ff3917d62,9b31e474-01d4-4c3b-a633-3a2ff3917d62,1,0,1c09bf33-9b54-4bfd-bc92-e7324025fab0,1c09bf33-9b54-4bfd-bc92-e7324025fab0,1,0,8d7750e9-899f-4434-8702-44cd02681779,8d7750e9-899f-4434-8702-44cd02681779,1,0,d85244dc-c417-4e69-9aa7-7ad313ecb940,d85244dc-c417-4e69-9aa7-7ad313ecb940,1,0,3bebf5e9-68bb-48dc-a39d-cbdca2dbecb1,3bebf5e9-68bb-48dc-a39d-cbdca2dbecb1,1,0,cd392ef0-dedb-4f83-9a2c-a24190ee0dc0,cd392ef0-dedb-4f83-9a2c-a24190ee0dc0,1,0,bb2f0c1c-3cfb-4a26-b6de-5bbeb5614587,bb2f0c1c-3cfb-4a26-b6de-5bbeb5614587,1,0,0713de12-87d5-4877-bd8a-2b6466df67df,0713de12-87d5-4877-bd8a-2b6466df67df,1,0,b3f188f4-d83e-4e97-b7d3-fc384b46a80a,b3f188f4-d83e-4e97-b7d3-fc384b46a80a,1,0,b848aafc-44fb-4dfe-8eec-233dc08fbbb6,b848aafc-44fb-4dfe-8eec-233dc08fbbb6,1,0,c4d7c569-4649-4f98-a048-45f3c5933670,c4d7c569-4649-4f98-a048-45f3c5933670,1,0,6dc05d69-bd54-4e8a-8985-c2ddfa0aaffb,6dc05d69-bd54-4e8a-8985-c2ddfa0aaffb,1,0,ad08b104-01f8-4900-a06c-baa1d55eba84,ad08b104-01f8-4900-a06c-baa1d55eba84,1,0,9352d10d-188f-4074-8dd1-7be5c11525e3,9352d10d-188f-4074-8dd1-7be5c11525e3,1,0,1933634a-6f10-48e7-99f0-60ac338f7832,1933634a-6f10-48e7-99f0-60ac338f7832,1,0,655deec5-c079-4748-8521-b3f10c243394,655deec5-c079-4748-8521-b3f10c243394,1,0,f6d4d818-d54c-4337-82cf-abd5e6dbe770,f6d4d818-d54c-4337-82cf-abd5e6dbe770,1,0,656c447b-291f-4e62-81ac-1c004841aa72,656c447b-291f-4e62-81ac-1c004841aa72,1,0,c9a06c8d-2f6d-4e03-bc62-a1a19f17faf3,c9a06c8d-2f6d-4e03-bc62-a1a19f17faf3,1,0,5ba93404-58ad-4321-9a62-27db828f75f6,5ba93404-58ad-4321-9a62-27db828f75f6,1,0,3da20e86-1d83-4935-b425-a91392dc8f35,3da20e86-1d83-4935-b425-a91392dc8f35,1,0,b56f25d2-72a9-4d80-8998-77ac3097c873,b56f25d2-72a9-4d80-8998-77ac3097c873,1,0,03bd775a-e0a1-4205-82ce-6068e73ad134,03bd775a-e0a1-4205-82ce-6068e73ad134,1,0,40bed47b-7754-4a70-b51a-47385fd46e83,40bed47b-7754-4a70-b51a-47385fd46e83,1,0,773ef914-5e7e-4ec1-bcdb-b2d111b560e6,773ef914-5e7e-4ec1-bcdb-b2d111b560e6,1,0,1e5a4f93-1ab9-4775-9538-2a1772215d89,1e5a4f93-1ab9-4775-9538-2a1772215d89,1,0,c25db165-0734-4fef-b161-e5164954a616,c25db165-0734-4fef-b161-e5164954a616,1,0,37e3d914-643e-4963-b4a0-7bc6727c0c9b,37e3d914-643e-4963-b4a0-7bc6727c0c9b,1,0,b6902500-3e03-4e83-a077-00500abc00b6,b6902500-3e03-4e83-a077-00500abc00b6,1,0,d253aa54-a447-44aa-bb13-82fd1ce22af4,d253aa54-a447-44aa-bb13-82fd1ce22af4,1,0,8936f114-7a0e-4a4c-8752-ccacab410778,8936f114-7a0e-4a4c-8752-ccacab410778,1,0,55649242-42fd-468f-a1e4-f6cd8871f7a4,55649242-42fd-468f-a1e4-f6cd8871f7a4,1,0,980e0883-cd8f-48c8-896f-ef185650f5c2,980e0883-cd8f-48c8-896f-ef185650f5c2,1,0,06ca1680-e641-499c-94ad-2d5ce5561747,06ca1680-e641-499c-94ad-2d5ce5561747,1,0,35bbf75b-99d0-447b-acb0-a3d2c98bea56,35bbf75b-99d0-447b-acb0-a3d2c98bea56,1,0,b6a1652b-6ee8-4cab-9681-c722b60f1e2e,b6a1652b-6ee8-4cab-9681-c722b60f1e2e,1,0,c31e34db-41ff-4db3-a4d0-f780f67070f6,c31e34db-41ff-4db3-a4d0-f780f67070f6,1,0,7a014fcb-a4b8-4c1c-b0de-21907a917c25,7a014fcb-a4b8-4c1c-b0de-21907a917c25,1,0,1688ef5d-72df-4bc4-a879-89033d466ad7,1688ef5d-72df-4bc4-a879-89033d466ad7,1,0,d3b09b09-df2d-40e5-86ce-84dab4898231,d3b09b09-df2d-40e5-86ce-84dab4898231,1,0,344cb0de-315d-4d05-93f8-8a1f53208470,344cb0de-315d-4d05-93f8-8a1f53208470,1,0,cd869887-0b0e-43db-8b51-04fe4a1341d5,cd869887-0b0e-43db-8b51-04fe4a1341d5,1,0,98aa5d5e-6c0e-4b9b-a3fa-335635d15217,98aa5d5e-6c0e-4b9b-a3fa-335635d15217,1,0,a7973409-b18e-4b88-ad50-e2ae89470d8f,a7973409-b18e-4b88-ad50-e2ae89470d8f,1,0,a537875e-492e-4cf2-96e9-e2e97bb206da,a537875e-492e-4cf2-96e9-e2e97bb206da,1,0,cd8fd85f-f02e-4f11-b4b4-40670febfaca,cd8fd85f-f02e-4f11-b4b4-40670febfaca,1,0,3f023afb-c02a-42ee-9afe-0f47ef3fe721,3f023afb-c02a-42ee-9afe-0f47ef3fe721,1,0,d7fe80d3-7fcf-427e-a991-5384f0c3947e,d7fe80d3-7fcf-427e-a991-5384f0c3947e,1,0,085a08f3-9d93-429d-9b1b-9065ab8363f7,085a08f3-9d93-429d-9b1b-9065ab8363f7,1,0,a530c0a1-c1d2-40bb-9d0e-320074dbb684,a530c0a1-c1d2-40bb-9d0e-320074dbb684,1,0,55c63580-16f1-4d6f-a40b-e630f71ebb98,55c63580-16f1-4d6f-a40b-e630f71ebb98,1,0,16939af9-e459-43da-8e0d-5d5891af6e0c,16939af9-e459-43da-8e0d-5d5891af6e0c,1,0,1d736a09-6c8f-433a-bf5b-201996bf4c62,1d736a09-6c8f-433a-bf5b-201996bf4c62,1,0,157988ad-d482-41df-b3e3-f2a0383d7130,157988ad-d482-41df-b3e3-f2a0383d7130,1,0,33af87a9-db69-41da-a33a-0435da2155e3,33af87a9-db69-41da-a33a-0435da2155e3,1,0,c95831b4-7d1d-4a9a-b5d0-caa03c4f4eca,c95831b4-7d1d-4a9a-b5d0-caa03c4f4eca,1,0,81b63f1d-2c65-4efb-8599-8a4d97b612ab,81b63f1d-2c65-4efb-8599-8a4d97b612ab,1,0,4b13a2c6-a6ce-47a0-8d9e-1a5dbe8d4b00,4b13a2c6-a6ce-47a0-8d9e-1a5dbe8d4b00,1,0,d1dde981-615a-461f-b0c5-a85f51003a2c,d1dde981-615a-461f-b0c5-a85f51003a2c,1,0,f5970c48-63d7-4064-bdfc-482b72939347,f5970c48-63d7-4064-bdfc-482b72939347,1,0,5c8039c0-34d8-4443-bd8f-dfe3dc2977a8,5c8039c0-34d8-4443-bd8f-dfe3dc2977a8,1,0,210972af-8687-4526-b288-60e7ee76cd61,210972af-8687-4526-b288-60e7ee76cd61,1,0,335f379a-2974-44ce-a668-e7ffe2ce6263,335f379a-2974-44ce-a668-e7ffe2ce6263,1,0,7edd75a2-9d03-4330-9185-28d0f0d4a2e4,7edd75a2-9d03-4330-9185-28d0f0d4a2e4,1,0,f7cc4f9e-cf9a-41f5-865f-d64108b981a5,f7cc4f9e-cf9a-41f5-865f-d64108b981a5,1,0,b58f8947-344c-4902-832c-d8004da55c34,b58f8947-344c-4902-832c-d8004da55c34,1,0,35cccc1d-3d67-4d39-aa79-2c30a5347587,35cccc1d-3d67-4d39-aa79-2c30a5347587,1,0,b6ee01eb-31ab-4f39-b4ff-37a04e3c7f35,b6ee01eb-31ab-4f39-b4ff-37a04e3c7f35,1,0,0776dfb2-67e0-4e11-9f94-abde790ff7e2,0776dfb2-67e0-4e11-9f94-abde790ff7e2,1,0,9c92b833-7406-48e2-9f59-69d575a3898f,9c92b833-7406-48e2-9f59-69d575a3898f,1,0,0cc5334f-8147-455c-8262-540324415812,0cc5334f-8147-455c-8262-540324415812,1,0,f3c4e6db-7c4e-4027-8bfd-f7854d566fc1,f3c4e6db-7c4e-4027-8bfd-f7854d566fc1,1,0,0eeb2f75-7092-4487-891f-cdbc9aa978cb,0eeb2f75-7092-4487-891f-cdbc9aa978cb,1,0,4ac60443-c7cb-492f-98b4-7e48bf9bfaa6,4ac60443-c7cb-492f-98b4-7e48bf9bfaa6,1,0,22979d50-ea57-4fab-9673-1b537838aead,22979d50-ea57-4fab-9673-1b537838aead,1,0,14676ee5-c247-46c6-a37e-c4362de79bb9,14676ee5-c247-46c6-a37e-c4362de79bb9,1,0,9fa36fe3-814e-4472-94ee-5d9d2b230b24,9fa36fe3-814e-4472-94ee-5d9d2b230b24,1,0,4b59dc62-0352-45a8-b33b-c42f4eea75ee,4b59dc62-0352-45a8-b33b-c42f4eea75ee,1,0,ea8a50ce-f09c-49f7-be58-ff2864e4eaa3,ea8a50ce-f09c-49f7-be58-ff2864e4eaa3,1,0,2020d672-bef4-4b30-885e-7f41364e412b,2020d672-bef4-4b30-885e-7f41364e412b,1,0,c292ddbc-9402-4c43-93d8-f8efafa6456e,c292ddbc-9402-4c43-93d8-f8efafa6456e,1,0,0281cbd6-972d-4632-9a6a-f8791e2534ee,0281cbd6-972d-4632-9a6a-f8791e2534ee,1,0,bae01f18-b6f3-44e4-93c3-ffcb3ef01b98,bae01f18-b6f3-44e4-93c3-ffcb3ef01b98,1,0,98d66bf0-617a-40aa-97bd-896d37a966ab,98d66bf0-617a-40aa-97bd-896d37a966ab,1,0,1847bb2f-8309-4c49-b752-ef7ec16d4230,1847bb2f-8309-4c49-b752-ef7ec16d4230,1,0,ca23f432-e2a3-4385-8cc1-7e9c96f9d7a1,ca23f432-e2a3-4385-8cc1-7e9c96f9d7a1,1,0,e1856045-f394-45b8-9f0c-298812f1f514,e1856045-f394-45b8-9f0c-298812f1f514,1,0,eb175c1d-7fcb-4807-82e3-688639468116,eb175c1d-7fcb-4807-82e3-688639468116,1,0,4ed9c099-700f-409b-bd91-e24719046953,4ed9c099-700f-409b-bd91-e24719046953,1,0,85b935b4-5eec-40cf-9d99-02cb3f599492,85b935b4-5eec-40cf-9d99-02cb3f599492,1,0,5764a412-4a20-4b2e-9905-ce74a9cac3ae,5764a412-4a20-4b2e-9905-ce74a9cac3ae,1,0,c4330791-d8f7-400f-b270-dee567e7a695,c4330791-d8f7-400f-b270-dee567e7a695,1,0,aab8ec4d-51de-4c1a-9794-266c119332d1,aab8ec4d-51de-4c1a-9794-266c119332d1,1,0,77cb6e52-37a9-423c-8260-6998161adcb5,77cb6e52-37a9-423c-8260-6998161adcb5,1,0,de258ab8-2d16-4c69-9490-5819b7ae3d08,de258ab8-2d16-4c69-9490-5819b7ae3d08,1,0,f7aacf70-0b59-410a-9929-ab4ab8a2431c,f7aacf70-0b59-410a-9929-ab4ab8a2431c,1,0,5bb6ba7a-ed61-4cdd-b3db-ec9da292e7a4,5bb6ba7a-ed61-4cdd-b3db-ec9da292e7a4,1,0,b37a9edd-b6bc-40eb-b5de-f54968abc119,b37a9edd-b6bc-40eb-b5de-f54968abc119,1,0,52338832-b15a-4e56-b13d-141141677008,52338832-b15a-4e56-b13d-141141677008,1,0,e9616402-88cc-44ae-96ca-ba20cf7d38ad,e9616402-88cc-44ae-96ca-ba20cf7d38ad,1,0,1b8212d7-b834-460c-9a2b-68a5de889e5b,1b8212d7-b834-460c-9a2b-68a5de889e5b,1,0,edb423a4-89d3-408e-aafb-d57e8ee70bc0,edb423a4-89d3-408e-aafb-d57e8ee70bc0,1,0,6278dff7-da49-457f-9896-94e3ca3be75d,6278dff7-da49-457f-9896-94e3ca3be75d,1,0,c232a478-2e10-4d0c-9733-fbfc7db1ab74,c232a478-2e10-4d0c-9733-fbfc7db1ab74,1,0,2f25ecec-fe3e-463c-b538-9815d96c52c6,2f25ecec-fe3e-463c-b538-9815d96c52c6,1,0,a816deca-4863-44e2-a8ff-89bfa5fbb0ac,a816deca-4863-44e2-a8ff-89bfa5fbb0ac,1,0,157f3df0-97b7-461b-bd3e-1f2e12658adf,157f3df0-97b7-461b-bd3e-1f2e12658adf,1,0,d2d6968c-fbe6-4e09-9cdb-653ca9a97fcc,d2d6968c-fbe6-4e09-9cdb-653ca9a97fcc,1,0,ea6f491e-9ec9-456d-ae30-4a258d87dff6,ea6f491e-9ec9-456d-ae30-4a258d87dff6,1,0,c67cddce-64d0-45eb-8abb-5c76bbe27f93,c67cddce-64d0-45eb-8abb-5c76bbe27f93,1,0,4f1aa113-6d77-46c8-ac21-9e5545553499,4f1aa113-6d77-46c8-ac21-9e5545553499,1,0,6ccec21e-f26f-482c-9ce2-1f058fc492c1,6ccec21e-f26f-482c-9ce2-1f058fc492c1,1,0,6278272c-687e-46d6-9f6f-16c5ddf369bb,6278272c-687e-46d6-9f6f-16c5ddf369bb,1,0,46af6cac-4731-4ac0-a38e-fcc8a45d06bf,46af6cac-4731-4ac0-a38e-fcc8a45d06bf,1,0,fe9d7083-82f6-4390-b5a5-46c666463289,fe9d7083-82f6-4390-b5a5-46c666463289,1,0,cc194484-b3fc-4e89-8f72-de3f0e23019e,cc194484-b3fc-4e89-8f72-de3f0e23019e,1,0,9cb89abd-efb7-418e-9819-a4085c2ad61c,9cb89abd-efb7-418e-9819-a4085c2ad61c,1,0,3b615ad8-edcf-4339-9e67-3c3afadfc77f,3b615ad8-edcf-4339-9e67-3c3afadfc77f,1,0,9bc3a840-eeb9-444b-9f8a-05a8dd13e3dc,9bc3a840-eeb9-444b-9f8a-05a8dd13e3dc,1,0,5c66c80c-cad1-47ac-b7bb-a20323fe271a,5c66c80c-cad1-47ac-b7bb-a20323fe271a,1,0,e39114e4-2d69-47ad-a888-2d0ccd9f62c5,e39114e4-2d69-47ad-a888-2d0ccd9f62c5,1,0,44169edb-23f3-4937-a277-7024182d7281,44169edb-23f3-4937-a277-7024182d7281,1,0,3942118c-09ec-40cf-8de8-4321367981f1,3942118c-09ec-40cf-8de8-4321367981f1,1,0,36ace6cf-6493-4325-89ff-3c07faae09b4,36ace6cf-6493-4325-89ff-3c07faae09b4,1,0,80cf9060-8f0c-4cb1-b476-6da83c725db7,80cf9060-8f0c-4cb1-b476-6da83c725db7,1,0,bd35d814-a9d2-4f0b-9f41-e7e9d6c53b7d,bd35d814-a9d2-4f0b-9f41-e7e9d6c53b7d,1,0,b5cd0ae6-2a12-44d6-8897-587f7e31159b,b5cd0ae6-2a12-44d6-8897-587f7e31159b,1,0,7fdb2c9d-8a8b-43c9-a228-db99fef599d5,7fdb2c9d-8a8b-43c9-a228-db99fef599d5,1,0,1de28303-2d0f-46e9-bbad-e40759fb0d3e,1de28303-2d0f-46e9-bbad-e40759fb0d3e,1,0,fd265d8a-1b99-4434-9bc5-6ef22a4437a2,fd265d8a-1b99-4434-9bc5-6ef22a4437a2,1,0,bf49b842-d162-4690-bec1-acf4207db565,bf49b842-d162-4690-bec1-acf4207db565,1,0,9a9ba19a-3a90-438e-9b5b-8a03bb2820da,9a9ba19a-3a90-438e-9b5b-8a03bb2820da,1,0,0d671808-63e8-4ad3-8d83-a69aa0049862,0d671808-63e8-4ad3-8d83-a69aa0049862,1,0,545857ca-2617-4b44-9e35-1b10837059ca,545857ca-2617-4b44-9e35-1b10837059ca,1,0,4c8a84a0-1d8b-4a00-bd3c-38c8d1deaffd,4c8a84a0-1d8b-4a00-bd3c-38c8d1deaffd,1,0,9acdec8d-e59e-47f1-b97c-a8050e590f81,9acdec8d-e59e-47f1-b97c-a8050e590f81,1,0,872c3f9c-a484-467b-b5fe-b008fee5152e,872c3f9c-a484-467b-b5fe-b008fee5152e,1,0,10c678a1-7a8b-4941-b625-ee2de92ee4d5,10c678a1-7a8b-4941-b625-ee2de92ee4d5,1,0,93873fe8-10c0-4f7b-ad20-278e887f69e9,93873fe8-10c0-4f7b-ad20-278e887f69e9,1,0,13b4aa30-d586-4b26-af0e-32f0d691fec9,13b4aa30-d586-4b26-af0e-32f0d691fec9,1,0,d6d67cc5-e003-4aaa-88ae-d084dae2dc26,d6d67cc5-e003-4aaa-88ae-d084dae2dc26,1,0,60f2c9f3-3090-442c-8991-0396b8f8b195,60f2c9f3-3090-442c-8991-0396b8f8b195,1,0,628dfa98-d8e1-4c27-bf15-928aa9dd24fd,628dfa98-d8e1-4c27-bf15-928aa9dd24fd,1,0,64eba6dc-31e1-4acc-9897-1108ba5a4415,64eba6dc-31e1-4acc-9897-1108ba5a4415,1,0,5eb4aac3-8a26-44f1-9e89-ffef42dbdb2d,5eb4aac3-8a26-44f1-9e89-ffef42dbdb2d,1,0,95d28431-cf31-4b32-976d-4e6a18e1b225,95d28431-cf31-4b32-976d-4e6a18e1b225,1,0,304b45ef-1530-4f20-98c0-081c554e0360,304b45ef-1530-4f20-98c0-081c554e0360,1,0,de84e787-12a1-4f47-bdd0-85d0aeaad98a,de84e787-12a1-4f47-bdd0-85d0aeaad98a,1,0,1490798d-5cd9-4448-be69-10773ab486ee,1490798d-5cd9-4448-be69-10773ab486ee,1,0,6fa88af0-dfcc-4dcf-ab61-0c7cb03a47f7,6fa88af0-dfcc-4dcf-ab61-0c7cb03a47f7,1,0,c59644a2-5ef5-43e8-a94f-682dddd562d4,c59644a2-5ef5-43e8-a94f-682dddd562d4,1,0,d2906b4a-ddcd-4512-910a-fc6f6c4fbc21,d2906b4a-ddcd-4512-910a-fc6f6c4fbc21,1,0,6cc3fe24-0a59-4eb6-ac6d-d1b56fabbad9,6cc3fe24-0a59-4eb6-ac6d-d1b56fabbad9,1,0,ce877e78-2e91-471e-831f-171fc5b72d54,ce877e78-2e91-471e-831f-171fc5b72d54,1,0,3b50cd97-4362-4cc5-ab2c-49506aea1508,3b50cd97-4362-4cc5-ab2c-49506aea1508,1,0,56c84cd4-33c2-4529-abf3-2a542a8cfa60,56c84cd4-33c2-4529-abf3-2a542a8cfa60,1,0,dc496b24-d0e5-46b7-9c03-c470e17afb38,dc496b24-d0e5-46b7-9c03-c470e17afb38,1,0,870cb1fb-6dea-4ae2-8952-64215ab2b695,870cb1fb-6dea-4ae2-8952-64215ab2b695,1,0,4fcb5267-e015-4da1-8871-23944f21a0c5,4fcb5267-e015-4da1-8871-23944f21a0c5,1,0,dc244cd9-aec7-431d-a346-032aeae17fd8,dc244cd9-aec7-431d-a346-032aeae17fd8,1,0,043e9792-b553-4785-99bb-006d79ef0a78,043e9792-b553-4785-99bb-006d79ef0a78,1,0,054ad80c-d2f6-4219-add1-ea2becedd04f,054ad80c-d2f6-4219-add1-ea2becedd04f,1,0,aa0a7164-37f4-4175-9fa8-1f90b4bb29e1,aa0a7164-37f4-4175-9fa8-1f90b4bb29e1,1,0,e774b5b1-b8bf-4b25-845a-745d1e009917,e774b5b1-b8bf-4b25-845a-745d1e009917,1,0,319899d0-2c05-4601-a888-2b92ee445be4,319899d0-2c05-4601-a888-2b92ee445be4,1,0,ddca48c8-3254-4683-93db-c4939a2d6e72,ddca48c8-3254-4683-93db-c4939a2d6e72,1,0,f8bd3b36-b0a2-46b0-9a8c-84ea1e72dda4,f8bd3b36-b0a2-46b0-9a8c-84ea1e72dda4,1,0,d46d2f66-f041-4012-b52a-fea74eed0ec6,d46d2f66-f041-4012-b52a-fea74eed0ec6,1,0,40aa4771-78be-485a-bfb3-108d9b3234da,40aa4771-78be-485a-bfb3-108d9b3234da,1,0,07f2081c-f723-4656-83c5-16b092bd00b8,07f2081c-f723-4656-83c5-16b092bd00b8,1,0,1d60586d-8548-416d-b862-e510121da339,1d60586d-8548-416d-b862-e510121da339,1,0,7e252088-1a99-4442-a136-e2b13afcde23,7e252088-1a99-4442-a136-e2b13afcde23,1,0,ca6f8fcf-2950-4468-abee-8e84ecb4aa33,ca6f8fcf-2950-4468-abee-8e84ecb4aa33,1,0,9668096a-74bf-41e2-a150-bfbea5216d10,9668096a-74bf-41e2-a150-bfbea5216d10,1,0,2aeb05ee-1aa7-4bd1-a5b1-7f8d6a6b23de,2aeb05ee-1aa7-4bd1-a5b1-7f8d6a6b23de,1,0,bc5216fe-94a4-4f55-ab91-462278c748c4,bc5216fe-94a4-4f55-ab91-462278c748c4,1,0,a8ac92ab-a476-4e79-8a3f-40e67d09a1bf,a8ac92ab-a476-4e79-8a3f-40e67d09a1bf,1,0,1621383d-36a8-4215-9f63-bdff10d2730a,1621383d-36a8-4215-9f63-bdff10d2730a,1,0,85ca3f27-36af-4ae6-9240-a7f9698b12ca,85ca3f27-36af-4ae6-9240-a7f9698b12ca,1,0,d9cc0bdf-ec8a-41e6-a04d-f87a277dc07e,d9cc0bdf-ec8a-41e6-a04d-f87a277dc07e,1,0,e7d74349-6636-485f-888d-57086beb7574,e7d74349-6636-485f-888d-57086beb7574,1,0,93210c19-7351-4415-9fe0-f646919594d9,93210c19-7351-4415-9fe0-f646919594d9,1,0,d77c2205-28a0-4069-b616-df456cd415a6,d77c2205-28a0-4069-b616-df456cd415a6,1,0,ade8ef52-e3cb-4b26-9d7e-ec1f1cdc19f0,ade8ef52-e3cb-4b26-9d7e-ec1f1cdc19f0,1,0,20cbe469-17f9-44da-8317-91feef8c5d46,20cbe469-17f9-44da-8317-91feef8c5d46,1,0,e4fc1eae-ecdc-42ac-b338-e695b663d642,e4fc1eae-ecdc-42ac-b338-e695b663d642,1,0,c1720905-2d51-4b90-9a3b-fdc001e8cea7,c1720905-2d51-4b90-9a3b-fdc001e8cea7,1,0,4becceed-362f-4412-90ee-769cc69742d7,4becceed-362f-4412-90ee-769cc69742d7,1,0,d6b23426-6972-4ff2-82bb-b2780dd732cb,d6b23426-6972-4ff2-82bb-b2780dd732cb,1,0,20992e23-f94b-459c-8af9-58a5986bacd0,20992e23-f94b-459c-8af9-58a5986bacd0,1,0,b1a939b9-cd2a-44c6-b1db-09356ab0303d,b1a939b9-cd2a-44c6-b1db-09356ab0303d,1,0,a7801847-a4c8-46ec-b873-c199191b9b2b,a7801847-a4c8-46ec-b873-c199191b9b2b,1,0,080a53d6-6c03-48f7-93bf-dec49afc14b7,080a53d6-6c03-48f7-93bf-dec49afc14b7,1,0,8ba908dc-6020-4b01-9a28-b3816b8cc118,8ba908dc-6020-4b01-9a28-b3816b8cc118,1,0,53d89038-48f5-4b64-9a1b-0a8d8dc788d2,53d89038-48f5-4b64-9a1b-0a8d8dc788d2,1,0,710202be-238f-42fe-9a6e-72726762a80c,710202be-238f-42fe-9a6e-72726762a80c,1,0,5299473d-0fb5-4795-a432-33ebf7051e49,5299473d-0fb5-4795-a432-33ebf7051e49,1,0,fbfaffab-a28c-49a4-bc14-e87317036f2f,fbfaffab-a28c-49a4-bc14-e87317036f2f,1,0,6e6c51d9-afba-4699-9eb8-f60163508072,6e6c51d9-afba-4699-9eb8-f60163508072,1,0,4c3afb2f-51be-4980-9ef9-d3fd3ce44ecb,4c3afb2f-51be-4980-9ef9-d3fd3ce44ecb,1,0,4ddabc05-424e-41fa-871f-dbba5b517795,4ddabc05-424e-41fa-871f-dbba5b517795,1,0,19b869c1-5eb4-43e3-99be-7e03385fa053,19b869c1-5eb4-43e3-99be-7e03385fa053,1,0,2421d94f-0bfd-47a1-b179-3a5d983e09c8,2421d94f-0bfd-47a1-b179-3a5d983e09c8,1,0,94c39b62-ddb2-4503-9fd1-206b54d899de,94c39b62-ddb2-4503-9fd1-206b54d899de,1,0,8b4fd3db-66d6-4290-9814-2c2492f733cb,8b4fd3db-66d6-4290-9814-2c2492f733cb,1,0,4969bc1b-217f-44a3-82cf-97c56f51a25e,4969bc1b-217f-44a3-82cf-97c56f51a25e,1,0,f6a8ff93-b1b5-499c-91a2-172000e5c776,f6a8ff93-b1b5-499c-91a2-172000e5c776,1,0,d903569d-911d-4277-a26f-afe2bf67eb09,d903569d-911d-4277-a26f-afe2bf67eb09,1,0,b5ac7de5-565f-4637-b267-dde3637e336b,b5ac7de5-565f-4637-b267-dde3637e336b,1,0,d4a6ab09-259f-4476-834c-a2b57cdeac05,d4a6ab09-259f-4476-834c-a2b57cdeac05,1,0,a56ff7f4-2259-455f-b707-b98aacd7d0b2,a56ff7f4-2259-455f-b707-b98aacd7d0b2,1,0,8c9636c3-0a84-4575-b4c7-6d8bb588e1b0,8c9636c3-0a84-4575-b4c7-6d8bb588e1b0,1,0,76e03401-7c07-4037-a464-d7377852de1d,76e03401-7c07-4037-a464-d7377852de1d,1,0,dc8239e8-fddf-411e-b51a-4230b63236cd,dc8239e8-fddf-411e-b51a-4230b63236cd,1,0,3b861376-2864-4de8-ba59-2a2835d7eaf6,3b861376-2864-4de8-ba59-2a2835d7eaf6,1,0,02910dcd-9e66-4239-a421-8067faf59577,02910dcd-9e66-4239-a421-8067faf59577,1,0,76d5a67f-bb11-4937-a66d-cdce28165562,76d5a67f-bb11-4937-a66d-cdce28165562,1,0,b99a23a5-bfbf-46ec-8268-ff89afdfc63a,b99a23a5-bfbf-46ec-8268-ff89afdfc63a,1,0,cdb93924-62ce-4268-9915-e6c67c1b9cb8,cdb93924-62ce-4268-9915-e6c67c1b9cb8,1,0,1139b6c7-7b55-45b4-98cf-ccac3bfaaa6c,1139b6c7-7b55-45b4-98cf-ccac3bfaaa6c,1,0,33c39990-f4fc-4629-83ba-b43b05a40ca6,33c39990-f4fc-4629-83ba-b43b05a40ca6,1,0,0a136ad9-22ad-4ba7-a31a-40a193b49d26,0a136ad9-22ad-4ba7-a31a-40a193b49d26,1,0,208c7b8c-3df9-4441-8ebf-34ffa81572a2,208c7b8c-3df9-4441-8ebf-34ffa81572a2,1,0,8c17fd7c-74d7-496a-a843-42022afb0707,8c17fd7c-74d7-496a-a843-42022afb0707,1,0,710059de-c70e-4b6e-b2a0-11197139144d,710059de-c70e-4b6e-b2a0-11197139144d,1,0,091ccac1-9a63-4a89-bb0c-333b274b0c70,091ccac1-9a63-4a89-bb0c-333b274b0c70,1,0,849f00c3-2f18-414c-97f6-32a99173fab9,849f00c3-2f18-414c-97f6-32a99173fab9,1,0,b456d820-8034-4381-960d-66d9f86b0a4b,b456d820-8034-4381-960d-66d9f86b0a4b,1,0,bd55fd03-cf67-4333-a554-98e03d18f780,bd55fd03-cf67-4333-a554-98e03d18f780,1,0,6eac5f7b-0952-4c94-9028-529b14ffcd4f,6eac5f7b-0952-4c94-9028-529b14ffcd4f,1,0,a587cade-4c91-4769-9c6a-a4fb4fe94196,a587cade-4c91-4769-9c6a-a4fb4fe94196,1,0,1a7c774d-5b86-4051-b797-3081e19fa30a,1a7c774d-5b86-4051-b797-3081e19fa30a,1,0,00949768-5833-4fe2-8752-b009d1bceef8,00949768-5833-4fe2-8752-b009d1bceef8,1,0,167455d1-6658-409f-834c-f6ccfe7b25de,167455d1-6658-409f-834c-f6ccfe7b25de,1,0,1300c46e-24d4-45cf-a899-3d26b5cf0b50,1300c46e-24d4-45cf-a899-3d26b5cf0b50,1,0,4cde6fdc-85fa-4c00-896c-51a68f5f10a5,4cde6fdc-85fa-4c00-896c-51a68f5f10a5,1,0,f41de07b-cba3-4bb8-9ec0-64ec59753f84,f41de07b-cba3-4bb8-9ec0-64ec59753f84,1,0,f78a5650-4d6c-4c17-95e0-e95cf8d9ad4b,f78a5650-4d6c-4c17-95e0-e95cf8d9ad4b,1,0,c5b3ca21-8f7b-4933-853c-7d95b17b5631,c5b3ca21-8f7b-4933-853c-7d95b17b5631,1,0,8b0faa1e-09da-4ba4-894e-e86abc5d39df,8b0faa1e-09da-4ba4-894e-e86abc5d39df,1,0,cb50b309-1b6c-400c-9e9e-67204dcccaae,cb50b309-1b6c-400c-9e9e-67204dcccaae,1,0,e2b482cb-6954-4e6a-abe9-d0a01f64b73a,e2b482cb-6954-4e6a-abe9-d0a01f64b73a,1,0,2a6e1f2b-7378-456b-9657-9e971eaff716,2a6e1f2b-7378-456b-9657-9e971eaff716,1,0,c3cdea20-3055-4b4e-a531-a02d4f3ed294,c3cdea20-3055-4b4e-a531-a02d4f3ed294,1,0,225a011b-337d-4c83-9771-95eebce18024,225a011b-337d-4c83-9771-95eebce18024,1,0,ffd14055-0847-48da-8807-0ba07decf6a5,ffd14055-0847-48da-8807-0ba07decf6a5,1,0,ee808b7e-8313-4838-8a5a-9b49e3ce7e3e,ee808b7e-8313-4838-8a5a-9b49e3ce7e3e,1,0,a8450a10-c18c-4b99-828b-870f38c32991,a8450a10-c18c-4b99-828b-870f38c32991,1,0,ad5e61a9-2f12-4629-9d7b-7882cc885992,ad5e61a9-2f12-4629-9d7b-7882cc885992,1,0,68a66e43-123c-4dc4-8eb7-3b728a6dbf40,68a66e43-123c-4dc4-8eb7-3b728a6dbf40,1,0,b016e858-7a3b-473a-a9b7-a6c718d0a028,b016e858-7a3b-473a-a9b7-a6c718d0a028,1,0,7db81d96-e359-4157-b5cb-3b50622d6556,7db81d96-e359-4157-b5cb-3b50622d6556,1,0,aa09ff66-3f4a-4746-9a99-697a2915b3fc,aa09ff66-3f4a-4746-9a99-697a2915b3fc,1,0,21305c37-31fb-46f3-85bc-8743c22faa02,21305c37-31fb-46f3-85bc-8743c22faa02,1,0,c5bace94-8fbc-4ad1-9567-a41332e8f00a,c5bace94-8fbc-4ad1-9567-a41332e8f00a,1,0,9fc40f79-c538-4ea5-a939-67bdd540d805,9fc40f79-c538-4ea5-a939-67bdd540d805,1,0,70443b2a-04db-4573-a4ea-e35078b383d7,70443b2a-04db-4573-a4ea-e35078b383d7,1,0,fb760c8a-d0bd-4445-9d68-85e5145d0182,fb760c8a-d0bd-4445-9d68-85e5145d0182,1,0,ecf54919-4cf2-4b30-9efa-de517d823555,ecf54919-4cf2-4b30-9efa-de517d823555,1,0,a4814357-6575-4a55-808f-4a4c94047110,a4814357-6575-4a55-808f-4a4c94047110,1,0,b142e431-66bd-4e28-a159-40df0c12fee2,b142e431-66bd-4e28-a159-40df0c12fee2,1,0,e7255edf-1584-4330-99aa-d379e75570a5,e7255edf-1584-4330-99aa-d379e75570a5,1,0,47707f66-74e7-4557-a0bf-8ddcd4e97e01,47707f66-74e7-4557-a0bf-8ddcd4e97e01,1,0,1e6fbe07-560c-4aa5-bd5d-32b5b1aed16f,1e6fbe07-560c-4aa5-bd5d-32b5b1aed16f,1,0,0d87a82d-fc3f-4395-9480-29cc5d45e11c,0d87a82d-fc3f-4395-9480-29cc5d45e11c,1,0,f6aa1c0d-a49e-4b22-8c2f-37d74272ca28,f6aa1c0d-a49e-4b22-8c2f-37d74272ca28,1,0,159d89e8-7215-4fc9-8455-7ecd4d4c7bfd,159d89e8-7215-4fc9-8455-7ecd4d4c7bfd,1,0,006cb169-055c-4f47-bdc9-0de36d6a4b7d,006cb169-055c-4f47-bdc9-0de36d6a4b7d,1,0,c26d2798-4c23-4060-8893-4403f14e43d3,c26d2798-4c23-4060-8893-4403f14e43d3,1,0,6cbdbace-b430-4e44-a325-77c61a1575ce,6cbdbace-b430-4e44-a325-77c61a1575ce,1,0,cf48bf76-6cc9-4493-b64e-5d265ef2ee71,cf48bf76-6cc9-4493-b64e-5d265ef2ee71,1,0,46417026-c44a-4a06-af41-9cf6495a33b4,46417026-c44a-4a06-af41-9cf6495a33b4,1,0,363c15f3-660e-4e19-b3cc-37c5d05e8d22,363c15f3-660e-4e19-b3cc-37c5d05e8d22,1,0,eeb4b6f1-2476-467d-9862-6fe9d3013b2c,eeb4b6f1-2476-467d-9862-6fe9d3013b2c,1,0,59d5cd7d-7f53-4015-89d9-bb8ad89f8c04,59d5cd7d-7f53-4015-89d9-bb8ad89f8c04,1,0,9d7f7dde-fea8-4064-abe2-bb7d04500cb2,9d7f7dde-fea8-4064-abe2-bb7d04500cb2,1,0,9eab48bf-3297-4f81-a448-a3a746d1ce83,9eab48bf-3297-4f81-a448-a3a746d1ce83,1,0,93701593-5ac8-4266-b471-7e9ed35a9c3e,93701593-5ac8-4266-b471-7e9ed35a9c3e,1,0,0fdb864e-ede9-4777-835c-0804968ee544,0fdb864e-ede9-4777-835c-0804968ee544,1,0,04c45a51-4a8e-48fa-a39c-f67ce2079fc4,04c45a51-4a8e-48fa-a39c-f67ce2079fc4,1,0,b46546fe-3d6b-473f-a7cb-ff3b3ae0bafe,b46546fe-3d6b-473f-a7cb-ff3b3ae0bafe,1,0,e7b1810c-8e6c-4759-9e6f-c754b5a1ac77,e7b1810c-8e6c-4759-9e6f-c754b5a1ac77,1,0,5dee9814-fe38-4631-8148-8d6c87ef6f47,5dee9814-fe38-4631-8148-8d6c87ef6f47,1,0,37d17053-5c2b-4972-b6a5-a589f2ddbde6,37d17053-5c2b-4972-b6a5-a589f2ddbde6,1,0,c349968a-3f87-425b-8efb-d847934dee4b,c349968a-3f87-425b-8efb-d847934dee4b,1,0,3bb8dc33-970c-4c58-9036-ce716d963847,3bb8dc33-970c-4c58-9036-ce716d963847,1,0,fae0d2e0-1bcd-4a77-86d6-407ca05c1c95,fae0d2e0-1bcd-4a77-86d6-407ca05c1c95,1,0,b3ff39fa-f665-4d01-9a2a-69722e6b1071,b3ff39fa-f665-4d01-9a2a-69722e6b1071,1,0,0abacb0a-ce00-474e-8aec-35685c51ddef,0abacb0a-ce00-474e-8aec-35685c51ddef,1,0,ae407b17-03aa-4268-8603-58d6714dae89,ae407b17-03aa-4268-8603-58d6714dae89,1,0,9a5b9bf4-71b8-41f2-8e23-8c396357f0a5,9a5b9bf4-71b8-41f2-8e23-8c396357f0a5,1,0,5c0ce79b-97a9-4917-9b02-a4548a97d5a1,5c0ce79b-97a9-4917-9b02-a4548a97d5a1,1,0,c552cfac-d3ef-4b63-a0b9-7c79261ff9f3,c552cfac-d3ef-4b63-a0b9-7c79261ff9f3,1,0,5bb6e52c-ac26-4143-8e90-f04f703f823b,5bb6e52c-ac26-4143-8e90-f04f703f823b,1,0,25c6d686-9bc6-43c8-86db-1710766bc1ee,25c6d686-9bc6-43c8-86db-1710766bc1ee,1,0,3878a70e-fa4d-4d8a-91db-2bbdbe13feb9,3878a70e-fa4d-4d8a-91db-2bbdbe13feb9,1,0,6ca2d621-853a-4b53-a3b0-061da5524290,6ca2d621-853a-4b53-a3b0-061da5524290,1,0,f4103457-2765-4211-89f8-c2c57869598a,f4103457-2765-4211-89f8-c2c57869598a,1,0,ea6c4b2f-7868-415c-8904-0c5506cf9d45,ea6c4b2f-7868-415c-8904-0c5506cf9d45,1,0,920d734e-20dd-4b71-a7fc-537c1b23f174,920d734e-20dd-4b71-a7fc-537c1b23f174,1,0,1cfaf89d-6c62-4b85-a45d-e50350fa5ae8,1cfaf89d-6c62-4b85-a45d-e50350fa5ae8,1,0,859f35fb-5da1-4550-a36e-737b1d7b5422,859f35fb-5da1-4550-a36e-737b1d7b5422,1,0,91754d23-296c-4755-adc5-4b88f8fcf6b6,91754d23-296c-4755-adc5-4b88f8fcf6b6,1,0,b8180633-7a9d-42ff-b198-3eb756bd05c8,b8180633-7a9d-42ff-b198-3eb756bd05c8,1,0,b4510c25-a894-412e-9113-ab4d535e15ea,b4510c25-a894-412e-9113-ab4d535e15ea,1,0,6eca2b00-c653-458d-ac62-aa69b061cc78,6eca2b00-c653-458d-ac62-aa69b061cc78,1,0,21792a76-1282-4c6d-8c32-26a468e5593c,21792a76-1282-4c6d-8c32-26a468e5593c,1,0,9009e776-984c-40a2-95a3-47cca31c1c24,9009e776-984c-40a2-95a3-47cca31c1c24,1,0,5e55970c-677a-4a7c-b680-c9031a0f67b4,5e55970c-677a-4a7c-b680-c9031a0f67b4,1,0,67156421-16b3-46b5-84ff-88c5fc7b29a6,67156421-16b3-46b5-84ff-88c5fc7b29a6,1,0,091eec4c-e917-4a27-aef2-cb4383271be4,091eec4c-e917-4a27-aef2-cb4383271be4,1,0,4a5d3625-a72c-4a28-84a5-ecc68da4fce0,4a5d3625-a72c-4a28-84a5-ecc68da4fce0,1,0,bbb0fff9-daea-44c9-b439-9f3882eed850,bbb0fff9-daea-44c9-b439-9f3882eed850,1,0,75f22162-7081-43c3-b509-e4d3e00b0f86,75f22162-7081-43c3-b509-e4d3e00b0f86,1,0,eb91d8ca-b473-462c-a244-5956558b6737,eb91d8ca-b473-462c-a244-5956558b6737,1,0,579baaa4-6493-4d99-8744-6399757295c7,579baaa4-6493-4d99-8744-6399757295c7,1,0,ae6d0e12-8857-476c-b4b2-f03295cbed3e,ae6d0e12-8857-476c-b4b2-f03295cbed3e,1,0,cc8e3172-491d-45d8-a7eb-fc6c400845cb,cc8e3172-491d-45d8-a7eb-fc6c400845cb,1,0,d7cfc87f-ac09-44aa-91d9-6511c408c5cb,d7cfc87f-ac09-44aa-91d9-6511c408c5cb,1,0,7ee1e0d0-9735-45da-bd24-c0dbabfd5b1e,7ee1e0d0-9735-45da-bd24-c0dbabfd5b1e,1,0,bd0e3bd4-1207-41ea-8dfc-afa8f7d08cc2,bd0e3bd4-1207-41ea-8dfc-afa8f7d08cc2,1,0,51d83895-5692-4479-9612-07c790d19dff,51d83895-5692-4479-9612-07c790d19dff,1,0,9c1325af-7492-42be-b3af-51b692534510,9c1325af-7492-42be-b3af-51b692534510,1,0,dface15c-cd65-4fb1-b4dd-b513086d3f8e,dface15c-cd65-4fb1-b4dd-b513086d3f8e,1,0,d854b528-8456-4453-9c2d-4f96caf10481,d854b528-8456-4453-9c2d-4f96caf10481,1,0,622d6de2-7404-41cc-961b-131d078d7ab4,622d6de2-7404-41cc-961b-131d078d7ab4,1,0,245f870e-a53a-4d86-aa0a-c0c7709b8acb,245f870e-a53a-4d86-aa0a-c0c7709b8acb,1,0,476f6bfa-b10c-4e0f-8499-23c652715b3f,476f6bfa-b10c-4e0f-8499-23c652715b3f,1,0,65c9754b-53f6-4616-a9d4-74826f7b0ced,65c9754b-53f6-4616-a9d4-74826f7b0ced,1,0,eca2b076-d218-4d1c-948b-7894edf9fa49,eca2b076-d218-4d1c-948b-7894edf9fa49,1,0,d6969c1e-e13c-4542-abb7-9cf6bb50b8e2,d6969c1e-e13c-4542-abb7-9cf6bb50b8e2,1,0,ccd91f94-d3f1-4aa3-90cf-081d72c4cab1,ccd91f94-d3f1-4aa3-90cf-081d72c4cab1,1,0,aa7d5ca4-3c02-4ca1-a790-2435ee9f9f02,aa7d5ca4-3c02-4ca1-a790-2435ee9f9f02,1,0,b7e85f5c-4312-44c6-895a-3f636a8c78d8,b7e85f5c-4312-44c6-895a-3f636a8c78d8,1,0,3b6e7ee6-0ef5-464a-a01a-6143479c7a61,3b6e7ee6-0ef5-464a-a01a-6143479c7a61,1,0,1969e8d1-0a82-44cb-a0d4-e5badb1d28d4,1969e8d1-0a82-44cb-a0d4-e5badb1d28d4,1,0,a1afacc5-f49a-4df2-a44d-479594d50179,a1afacc5-f49a-4df2-a44d-479594d50179,1,0,fe70eba3-7477-4a38-a511-d69960abb928,fe70eba3-7477-4a38-a511-d69960abb928,1,0,6534ea96-2145-49e6-9739-f59459dc7f6b,6534ea96-2145-49e6-9739-f59459dc7f6b,1,0,f49bffa0-cad6-4801-b82e-21aa580e72e6,f49bffa0-cad6-4801-b82e-21aa580e72e6,1,0,bbbfb817-8db3-4415-86c3-af028276d6e9,bbbfb817-8db3-4415-86c3-af028276d6e9,1,0,6a91112c-f6cc-47a0-9d26-a36c7702af7d,6a91112c-f6cc-47a0-9d26-a36c7702af7d,1,0,40a59681-f31d-4fb9-9301-67c1430590e0,40a59681-f31d-4fb9-9301-67c1430590e0,1,0,ae3358ad-ea3a-4b73-a305-02a152863978,ae3358ad-ea3a-4b73-a305-02a152863978,1,0,cb92dc2e-6053-4233-a408-4464514b1257,cb92dc2e-6053-4233-a408-4464514b1257,1,0,8cd65ad3-a7a3-46f6-9061-e8751fd5073e,8cd65ad3-a7a3-46f6-9061-e8751fd5073e,1,0,85550a7a-8fe0-4296-ace5-63cf053536b4,85550a7a-8fe0-4296-ace5-63cf053536b4,1,0,cf1bd9cd-2ef2-4868-b6c0-5160860690f7,cf1bd9cd-2ef2-4868-b6c0-5160860690f7,1,0,9c3bc502-bcb1-4c90-ae43-53c798958339,9c3bc502-bcb1-4c90-ae43-53c798958339,1,0,3f8b6411-6606-4d27-891e-7c77be47c5f9,3f8b6411-6606-4d27-891e-7c77be47c5f9,1,0,cfc0adf6-87b4-4c8a-91e2-46c2616b319b,cfc0adf6-87b4-4c8a-91e2-46c2616b319b,1,0,bed3f0b2-40c6-4323-9bca-cb8864e38ec0,bed3f0b2-40c6-4323-9bca-cb8864e38ec0,1,0,5eb4ca7f-027a-4860-a167-e6b424527e7a,5eb4ca7f-027a-4860-a167-e6b424527e7a,1,0,f9b98ba5-1fa8-42a4-b1a2-dd71874083cb,f9b98ba5-1fa8-42a4-b1a2-dd71874083cb,1,0,6871015f-d959-4a77-a091-a23cb4ebd8f9,6871015f-d959-4a77-a091-a23cb4ebd8f9,1,0,e5e1631b-a494-4e73-b356-b4330b84cc88,e5e1631b-a494-4e73-b356-b4330b84cc88,1,0,778c28e6-4548-45f3-a1bc-cb1dbf0cb388,778c28e6-4548-45f3-a1bc-cb1dbf0cb388,1,0,a2d6f2d9-0610-4ca9-bc15-58e341a049a4,a2d6f2d9-0610-4ca9-bc15-58e341a049a4,1,0,4dbf114a-5402-40b0-9cab-19601aa8328e,4dbf114a-5402-40b0-9cab-19601aa8328e,1,0,a0856ca2-6a66-4108-b6d4-82443cdccca6,a0856ca2-6a66-4108-b6d4-82443cdccca6,1,0,378b0708-a0a1-4c82-b55a-796acb27e696,378b0708-a0a1-4c82-b55a-796acb27e696,1,0,8e462c0e-c67a-45e9-9871-1f976b01632d,8e462c0e-c67a-45e9-9871-1f976b01632d,1,0,c5335e1f-3e47-46b7-b695-0653f825d855,c5335e1f-3e47-46b7-b695-0653f825d855,1,0,d7faad11-1e35-460c-8943-49370f328c03,d7faad11-1e35-460c-8943-49370f328c03,1,0,e4726010-85c5-4ccc-b574-4b3b55f0d391,e4726010-85c5-4ccc-b574-4b3b55f0d391,1,0,5d6770f2-9b3d-45c7-9e34-4c8626e482cf,5d6770f2-9b3d-45c7-9e34-4c8626e482cf,1,0,b01ace0e-7f21-4b6b-b751-074dcd9a8f54,b01ace0e-7f21-4b6b-b751-074dcd9a8f54,1,0,1f4f839a-4e19-45b8-a988-13ee604c269c,1f4f839a-4e19-45b8-a988-13ee604c269c,1,0,b3aa97e1-baef-45f4-9179-052f35527a5e,b3aa97e1-baef-45f4-9179-052f35527a5e,1,0,d613941f-ed4c-4957-b469-ea6b0d2a121d,d613941f-ed4c-4957-b469-ea6b0d2a121d,1,0,0d8d08e3-194f-416c-a1e0-aa92b40b7911,0d8d08e3-194f-416c-a1e0-aa92b40b7911,1,0,af0178fe-eb3a-485b-9acf-35c8702aa330,af0178fe-eb3a-485b-9acf-35c8702aa330,1,0,201d323b-4c0c-4c93-ae43-43a378ec0d9e,201d323b-4c0c-4c93-ae43-43a378ec0d9e,1,0,9e2c01b1-ccfe-4a68-a6af-8284e3e2396f,9e2c01b1-ccfe-4a68-a6af-8284e3e2396f,1,0,c513ceb0-0855-43ce-a311-c9bea88e2563,c513ceb0-0855-43ce-a311-c9bea88e2563,1,0,974bfc13-85c2-454a-b562-e72384eb4c31,974bfc13-85c2-454a-b562-e72384eb4c31,1,0,69cd6adc-b129-4fbc-804d-8d5aaef77280,69cd6adc-b129-4fbc-804d-8d5aaef77280,1,0,3431a3de-cb9d-46dc-b597-3203831796a9,3431a3de-cb9d-46dc-b597-3203831796a9,1,0,f3866271-04ed-4963-852e-cf41e9e18e1d,f3866271-04ed-4963-852e-cf41e9e18e1d,1,0,b77e5ec2-35cd-43ae-957f-af35214fa621,b77e5ec2-35cd-43ae-957f-af35214fa621,1,0,4a04d83d-cadd-4f36-9ec8-f926259c18ba,4a04d83d-cadd-4f36-9ec8-f926259c18ba,1,0,85e670c0-1616-4611-984c-3d40e890b2e9,85e670c0-1616-4611-984c-3d40e890b2e9,1,0,48ed25b0-afb9-414b-9a4e-8647fbdd95c3,48ed25b0-afb9-414b-9a4e-8647fbdd95c3,1,0,1e3a1148-1e9c-47b0-8f3c-f218c3b0094f,1e3a1148-1e9c-47b0-8f3c-f218c3b0094f,1,0,f1693207-2637-412a-972f-2bc79b9c7fc8,f1693207-2637-412a-972f-2bc79b9c7fc8,1,0,da59378e-0a97-4cff-977b-cc51967068ee,da59378e-0a97-4cff-977b-cc51967068ee,1,0,bbaad46d-f60d-49e6-a077-075366bca47e,bbaad46d-f60d-49e6-a077-075366bca47e,1,0,0d9f5703-91e4-4769-bedd-5bd974f2f617,0d9f5703-91e4-4769-bedd-5bd974f2f617,1,0,926cdf17-1929-43d6-8205-858aab558ad9,926cdf17-1929-43d6-8205-858aab558ad9,1,0,5ec6838f-2d70-4f91-b41b-16adfe8ed587,5ec6838f-2d70-4f91-b41b-16adfe8ed587,1,0,6420ad7e-61ca-4af9-9715-f2b0c3e2c58f,6420ad7e-61ca-4af9-9715-f2b0c3e2c58f,1,0,bee8b8a0-f058-44cb-822c-620351567627,bee8b8a0-f058-44cb-822c-620351567627,1,0,26365e29-903b-47fd-ad96-e0d87f5d6e87,26365e29-903b-47fd-ad96-e0d87f5d6e87,1,0,569180cb-ce54-4267-94b9-332e35e3c17d,569180cb-ce54-4267-94b9-332e35e3c17d,1,0,55bce105-51c0-452e-9eec-b960fe740db2,55bce105-51c0-452e-9eec-b960fe740db2,1,0,776c171d-5dd5-4965-94dc-c2fe6792d5f2,776c171d-5dd5-4965-94dc-c2fe6792d5f2,1,0,86bb1105-702a-47be-906a-1821a69b1b6c,86bb1105-702a-47be-906a-1821a69b1b6c,1,0,40653767-9542-44e9-a84b-ffee75584638,40653767-9542-44e9-a84b-ffee75584638,1,0,49bd152e-479a-46fe-b3af-26ed9181dc34,49bd152e-479a-46fe-b3af-26ed9181dc34,1,0,0a742dd2-1ff4-42de-b303-f2bb01b36fe2,0a742dd2-1ff4-42de-b303-f2bb01b36fe2,1,0,69e13959-51ad-4ac2-9cfc-17ac28b78c78,69e13959-51ad-4ac2-9cfc-17ac28b78c78,1,0,f890ca1b-f2c2-4630-9002-301b759ca6d9,f890ca1b-f2c2-4630-9002-301b759ca6d9,1,0,08c8a9bf-7b89-4d0e-a496-4c7efeca0577,08c8a9bf-7b89-4d0e-a496-4c7efeca0577,1,0,f6c2b015-9cfc-40d2-a93f-b0e88db4a23f,f6c2b015-9cfc-40d2-a93f-b0e88db4a23f,1,0,103f3d8f-e47a-4772-bdd7-dd5f8508d22b,103f3d8f-e47a-4772-bdd7-dd5f8508d22b,1,0,ba8ea271-8716-49ef-8b10-f4b5798c1f62,ba8ea271-8716-49ef-8b10-f4b5798c1f62,1,0,3633c30c-9479-4801-89cc-a5734a41e465,3633c30c-9479-4801-89cc-a5734a41e465,1,0,f295c68d-7e29-48b8-a95a-56e96d9843c1,f295c68d-7e29-48b8-a95a-56e96d9843c1,1,0,7ebe16ee-8e5d-4b05-89b5-9539f73be90c,7ebe16ee-8e5d-4b05-89b5-9539f73be90c,1,0,ea5d0221-fb1e-4626-862a-9c1209365d8f,ea5d0221-fb1e-4626-862a-9c1209365d8f,1,0,12bce69b-933c-4ce4-9d29-a47f3db0226e,12bce69b-933c-4ce4-9d29-a47f3db0226e,1,0,82dcd6a3-c35b-421c-a8f9-77855ad2abca,82dcd6a3-c35b-421c-a8f9-77855ad2abca,1,0,ad0b1720-282e-49d4-af80-324a887963c3,ad0b1720-282e-49d4-af80-324a887963c3,1,0,9ec6fc35-e84e-4f82-b616-5c02e945cc8f,9ec6fc35-e84e-4f82-b616-5c02e945cc8f,1,0,a666af62-aa5d-4b2b-b9e5-017d1c93ae6a,a666af62-aa5d-4b2b-b9e5-017d1c93ae6a,1,0,dea6b05f-d3e1-4ff4-8f71-6a0c18134e94,dea6b05f-d3e1-4ff4-8f71-6a0c18134e94,1,0,fcb97a46-d5fd-4bb5-b899-17723a9fe346,fcb97a46-d5fd-4bb5-b899-17723a9fe346,1,0,20adf54c-044c-4bea-8028-b6d20917a030,20adf54c-044c-4bea-8028-b6d20917a030,1,0,fbaa5b0a-56dc-4bf1-b1b2-e48073f63d13,fbaa5b0a-56dc-4bf1-b1b2-e48073f63d13,1,0,2e54b3e8-6672-48d5-802a-23d5144fed79,2e54b3e8-6672-48d5-802a-23d5144fed79,1,0,2a7c4ae2-aab3-48b3-b04f-7be6989939e8,2a7c4ae2-aab3-48b3-b04f-7be6989939e8,1,0,a92acf0e-9132-4456-9a82-1543d98ca453,a92acf0e-9132-4456-9a82-1543d98ca453,1,0,f98bcdb8-6eed-4b4f-b3da-d80b5e8bed44,f98bcdb8-6eed-4b4f-b3da-d80b5e8bed44,1,0,daad5f66-3bb4-4389-bca1-bf528ad993a3,daad5f66-3bb4-4389-bca1-bf528ad993a3,1,0,ad043f15-b2c9-4a05-82b9-6428708584b2,ad043f15-b2c9-4a05-82b9-6428708584b2,1,0,d2fd8650-d13a-411d-8206-61b16016bd82,d2fd8650-d13a-411d-8206-61b16016bd82,1,0,643f4f37-fa02-4976-8701-7a5a44b0109a,643f4f37-fa02-4976-8701-7a5a44b0109a,1,0,278a0559-07b2-4ee3-a821-c0395f9a33c1,278a0559-07b2-4ee3-a821-c0395f9a33c1,1,0,7604b15a-8c5e-4515-84b9-c1d36f9efd0a,7604b15a-8c5e-4515-84b9-c1d36f9efd0a,1,0,54d9f5bb-599c-4d4b-b616-1445e7461813,54d9f5bb-599c-4d4b-b616-1445e7461813,1,0,7d0dbd52-8bb0-4d72-87fa-2d7066e5e189,7d0dbd52-8bb0-4d72-87fa-2d7066e5e189,1,0,a2c42946-1cdb-457a-a45b-97781cfb4a15,a2c42946-1cdb-457a-a45b-97781cfb4a15,1,0,a1a44832-6026-47ae-affd-5b6d52e84307,a1a44832-6026-47ae-affd-5b6d52e84307,1,0,e0e12708-da10-4f81-9e56-5876ddc77084,e0e12708-da10-4f81-9e56-5876ddc77084,1,0,63ad43fe-a050-47f7-af4f-099aa10255af,63ad43fe-a050-47f7-af4f-099aa10255af,1,0,4033eb31-8281-402a-afff-431fa36e589e,4033eb31-8281-402a-afff-431fa36e589e,1,0,5a1e1da5-7307-4f48-bb1c-2977fc4d7cef,5a1e1da5-7307-4f48-bb1c-2977fc4d7cef,1,0,f59488c7-4643-4988-8043-5c9724e04279,f59488c7-4643-4988-8043-5c9724e04279,1,0,cfe022b5-7647-4b5c-a2bd-f5d313f4a9db,cfe022b5-7647-4b5c-a2bd-f5d313f4a9db,1,0,b67a509d-bb0f-427e-b447-4d4617078d6a,b67a509d-bb0f-427e-b447-4d4617078d6a,1,0,968ecfca-cf06-4952-83c1-a151e46c78a9,968ecfca-cf06-4952-83c1-a151e46c78a9,1,0,4945c734-a47d-44e9-8a7f-94b31911c1ce,4945c734-a47d-44e9-8a7f-94b31911c1ce,1,0,20a194e9-06cf-4013-bfa4-bc15554a54d0,20a194e9-06cf-4013-bfa4-bc15554a54d0,1,0,ab4f3d3d-bb5a-4dbc-b699-808458036b00,ab4f3d3d-bb5a-4dbc-b699-808458036b00,1,0,09761456-2273-437f-9316-0391cfaa81b3,09761456-2273-437f-9316-0391cfaa81b3,1,0,93922abc-98b9-4b3d-a5c8-7294378a69e1,93922abc-98b9-4b3d-a5c8-7294378a69e1,1,0,3c0a9c45-8e57-43fa-8ae3-26b15571f2cd,3c0a9c45-8e57-43fa-8ae3-26b15571f2cd,1,0,85223d37-2503-4783-94dc-fe6265e718d5,85223d37-2503-4783-94dc-fe6265e718d5,1,0,0918cd76-56e5-4314-8a1c-c21d023ba6f8,0918cd76-56e5-4314-8a1c-c21d023ba6f8,1,0,9db21c2e-79fa-44e4-902e-416abfccb54a,9db21c2e-79fa-44e4-902e-416abfccb54a,1,0,fb082db3-197b-4d1e-b9ea-362624d547ee,fb082db3-197b-4d1e-b9ea-362624d547ee,1,0,c09dcf00-a45a-4487-99c5-d3a37956ec88,c09dcf00-a45a-4487-99c5-d3a37956ec88,1,0,531a5a0c-6ac9-4e93-8caa-42d9aad0bc82,531a5a0c-6ac9-4e93-8caa-42d9aad0bc82,1,0,2714e1b6-6b02-43a1-bc94-2934b429ed35,2714e1b6-6b02-43a1-bc94-2934b429ed35,1,0,e33c73b2-ef0b-49b7-a65f-ab2c814ad256,e33c73b2-ef0b-49b7-a65f-ab2c814ad256,1,0,4c7016da-9991-4917-8eaa-e760cc9e29d1,4c7016da-9991-4917-8eaa-e760cc9e29d1,1,0,febb3770-5c11-4ada-9e49-a27950bdaddf,febb3770-5c11-4ada-9e49-a27950bdaddf,1,0,d7b57669-e538-4e54-ab1b-8428f0586466,d7b57669-e538-4e54-ab1b-8428f0586466,1,0,223e4ccf-5638-4576-bd88-7c54be68de47,223e4ccf-5638-4576-bd88-7c54be68de47,1,0,e3bae40b-5316-4392-8c82-b601922a6582,e3bae40b-5316-4392-8c82-b601922a6582,1,0,26806602-54be-4b2f-96ae-3e2a31616a4e,26806602-54be-4b2f-96ae-3e2a31616a4e,1,0,738fc48f-5160-4786-84bb-053c188662ce,738fc48f-5160-4786-84bb-053c188662ce,1,0,6e883b67-f74c-4791-8fb3-446534e3a6db,6e883b67-f74c-4791-8fb3-446534e3a6db,1,0,24fed307-445d-44b5-8964-9d08d1003061,24fed307-445d-44b5-8964-9d08d1003061,1,0,8e4c2dbe-15b7-4e04-9f07-892d70741a97,8e4c2dbe-15b7-4e04-9f07-892d70741a97,1,0,67691860-e374-451f-aee3-05a35df2a477,67691860-e374-451f-aee3-05a35df2a477,1,0,4337d956-809f-4140-a7bb-5f5c00a65ccb,4337d956-809f-4140-a7bb-5f5c00a65ccb,1,0,dbed7302-370e-4e0f-b505-3a86fe4c4ebd,dbed7302-370e-4e0f-b505-3a86fe4c4ebd,1,0,9c484a15-039e-416d-af97-4c2bd90fd873,9c484a15-039e-416d-af97-4c2bd90fd873,1,0,534855e3-4cf2-471c-b982-7138917050c9,534855e3-4cf2-471c-b982-7138917050c9,1,0,4c72b944-d000-4920-aec8-54029f88ddf4,4c72b944-d000-4920-aec8-54029f88ddf4,1,0,b4033d05-05c2-4617-80d9-abfa389c47f4,b4033d05-05c2-4617-80d9-abfa389c47f4,1,0,0f46b124-1575-4984-9bc1-b5e4696efc74,0f46b124-1575-4984-9bc1-b5e4696efc74,1,0,a0183a0b-1459-4b32-924c-6ea156f02125,a0183a0b-1459-4b32-924c-6ea156f02125,1,0,fc2dc619-41e0-4cce-a080-d5c8de5029a8,fc2dc619-41e0-4cce-a080-d5c8de5029a8,1,0,9609e5fb-fd11-463c-8679-9b10fc0993ed,9609e5fb-fd11-463c-8679-9b10fc0993ed,1,0,f438b941-2aae-4c67-81dc-340f6acc25b1,f438b941-2aae-4c67-81dc-340f6acc25b1,1,0,48075630-2041-48c3-9eb0-d2107cfcb249,48075630-2041-48c3-9eb0-d2107cfcb249,1,0,7d7e7e13-eb42-420d-9bfc-14fab901c3c1,7d7e7e13-eb42-420d-9bfc-14fab901c3c1,1,0,aa29e1be-4e99-4136-8dc1-0124908979ad,aa29e1be-4e99-4136-8dc1-0124908979ad,1,0,0d76799d-7fc7-446b-88fb-dca839de00a5,0d76799d-7fc7-446b-88fb-dca839de00a5,1,0,cb5674c3-0d91-4948-bafd-d9ef44a2a69d,cb5674c3-0d91-4948-bafd-d9ef44a2a69d,1,0,ea4a869c-861c-412c-a3be-de1c57d1a251,ea4a869c-861c-412c-a3be-de1c57d1a251,1,0,eeafcc8c-fbe2-4bb4-8b8a-cf663208258d,eeafcc8c-fbe2-4bb4-8b8a-cf663208258d,1,0,6a3bd39a-59cb-4763-b49f-7ab67167a8b7,6a3bd39a-59cb-4763-b49f-7ab67167a8b7,1,0,6c1d8f6c-db33-46dc-8824-aceacb4bf9c1,6c1d8f6c-db33-46dc-8824-aceacb4bf9c1,1,0,67e8b7dc-e0d7-44a9-81d0-6b31bb318145,67e8b7dc-e0d7-44a9-81d0-6b31bb318145,1,0,50ac390d-324f-40bd-b3df-0468a63b94b6,50ac390d-324f-40bd-b3df-0468a63b94b6,1,0,80337710-2c60-45c4-ae1f-bb42731fb611,80337710-2c60-45c4-ae1f-bb42731fb611,1,0,9dcf467e-7701-4c7b-b747-95f4d9b9295c,9dcf467e-7701-4c7b-b747-95f4d9b9295c,1,0,dd07b255-25af-466e-a224-c561a8ca567b,dd07b255-25af-466e-a224-c561a8ca567b,1,0,80641554-046e-4c4a-8544-a35b4c554dad,80641554-046e-4c4a-8544-a35b4c554dad,1,0,4d9df55f-724d-4792-96a7-885df898e7cc,4d9df55f-724d-4792-96a7-885df898e7cc,1,0,77149f7a-8a76-4569-9487-991c41e132ef,77149f7a-8a76-4569-9487-991c41e132ef,1,0,1e9e115a-e65b-4346-b0d3-47cf1dbe75f2,1e9e115a-e65b-4346-b0d3-47cf1dbe75f2,1,0,9e1be65e-986f-4d21-91f0-15c66db0c947,9e1be65e-986f-4d21-91f0-15c66db0c947,1,0,67993b79-6aca-4641-b2e2-0a15f44e47d5,67993b79-6aca-4641-b2e2-0a15f44e47d5,1,0,d2fe4578-a1f8-4586-b052-fa71d25365c9,d2fe4578-a1f8-4586-b052-fa71d25365c9,1,0,f31f3dab-5796-47ac-a54d-3081f8cad817,f31f3dab-5796-47ac-a54d-3081f8cad817,1,0,cd59707e-b9e4-4038-8203-ae22a8060e8d,cd59707e-b9e4-4038-8203-ae22a8060e8d,1,0,db497857-33d3-49a1-b328-dfc62c973ecb,db497857-33d3-49a1-b328-dfc62c973ecb,1,0,139c001c-7b07-465a-9187-399ad32d294f,139c001c-7b07-465a-9187-399ad32d294f,1,0,50591ed3-06db-48f0-8e2b-a70b8ea2d09f,50591ed3-06db-48f0-8e2b-a70b8ea2d09f,1,0,5d228ce4-069e-4f98-beed-b8e1de17c3d9,5d228ce4-069e-4f98-beed-b8e1de17c3d9,1,0,9770fc09-87bf-4fce-9b0d-410efd30edae,9770fc09-87bf-4fce-9b0d-410efd30edae,1,0,3d73d5ff-995e-40ed-a401-cec2a3d12c8f,3d73d5ff-995e-40ed-a401-cec2a3d12c8f,1,0,20156709-1481-4007-8e89-9ce79fc589fc,20156709-1481-4007-8e89-9ce79fc589fc,1,0,fbcda361-0ef2-47b4-ba1c-1d1952898bd3,fbcda361-0ef2-47b4-ba1c-1d1952898bd3,1,0,7e7c5abd-b645-4de5-a40e-5805ec4456e2,7e7c5abd-b645-4de5-a40e-5805ec4456e2,1,0,763a16c3-a728-4b65-a485-705990310b4a,763a16c3-a728-4b65-a485-705990310b4a,1,0,65338920-c744-4d1e-b351-848b90a3feda,65338920-c744-4d1e-b351-848b90a3feda,1,0,2aedb1ac-caf1-45c7-913e-82a36637d5d4,2aedb1ac-caf1-45c7-913e-82a36637d5d4,1,0,65f3ad72-ed03-482b-a2f1-05053eef408a,65f3ad72-ed03-482b-a2f1-05053eef408a,1,0,e177e258-7d0c-4fe1-80e5-3b89de9e23d9,e177e258-7d0c-4fe1-80e5-3b89de9e23d9,1,0,3f25ac9f-c6b4-4ccc-bec4-a90c99403823,3f25ac9f-c6b4-4ccc-bec4-a90c99403823,1,0,56177464-5e9f-4598-96bc-eb311993c503,56177464-5e9f-4598-96bc-eb311993c503,1,0,c2308e60-2844-4bd8-bc8a-c9c20e5fc62d,c2308e60-2844-4bd8-bc8a-c9c20e5fc62d,1,0,bdfe65f4-4174-4e66-915c-943137981cf0,bdfe65f4-4174-4e66-915c-943137981cf0,1,0,5271de2d-d3a0-4128-90e0-cd8e1ea2ad30,5271de2d-d3a0-4128-90e0-cd8e1ea2ad30,1,0,c895d58a-5be1-4157-81af-f4f6db9b4b9e,c895d58a-5be1-4157-81af-f4f6db9b4b9e,1,0,0d89036c-af6e-4709-847c-0dab74a33d72,0d89036c-af6e-4709-847c-0dab74a33d72,1,0,7d223aab-d4f6-41d5-a701-6fe03517cf50,7d223aab-d4f6-41d5-a701-6fe03517cf50,1,0,631cdd15-eb1f-4903-9073-4de3911ba2e6,631cdd15-eb1f-4903-9073-4de3911ba2e6,1,0,6b10ab0a-8d4e-4847-9ce7-663fb4770c35,6b10ab0a-8d4e-4847-9ce7-663fb4770c35,1,0,42630eee-ce93-40a8-b96e-3eb759f48976,42630eee-ce93-40a8-b96e-3eb759f48976,1,0,174e0187-cf34-4949-8dc2-a1f9aece78dc,174e0187-cf34-4949-8dc2-a1f9aece78dc,1,0,5d9f2db6-704d-45cb-96c3-e59e47ad4fea,5d9f2db6-704d-45cb-96c3-e59e47ad4fea,1,0,e4dbeb50-292f-452f-a0da-a55e5ea936e4,e4dbeb50-292f-452f-a0da-a55e5ea936e4,1,0,8ce6cc1a-8570-4704-b9a3-44e815b2e753,8ce6cc1a-8570-4704-b9a3-44e815b2e753,1,0,71aa2bf7-85c9-40f3-a9b0-f6d666eddd28,71aa2bf7-85c9-40f3-a9b0-f6d666eddd28,1,0,497cbe4d-586d-48a2-8e98-d20e3e09ed42,497cbe4d-586d-48a2-8e98-d20e3e09ed42,1,0,38b7679d-3739-4572-baf2-d8c7b2a94f0a,38b7679d-3739-4572-baf2-d8c7b2a94f0a,1,0,1470f052-f032-46bc-b1ee-54555e725dfd,1470f052-f032-46bc-b1ee-54555e725dfd,1,0,4019a5e9-1f50-44b9-98ba-87c07a0ce4e5,4019a5e9-1f50-44b9-98ba-87c07a0ce4e5,1,0,7d336fdd-5cbf-4c92-a783-f451f7590502,7d336fdd-5cbf-4c92-a783-f451f7590502,1,0,ee8af8ee-e49a-4511-9a91-48814ab99d23,ee8af8ee-e49a-4511-9a91-48814ab99d23,1,0,3a7d9d49-b5e5-4c5c-958e-a4c6afda8b9d,3a7d9d49-b5e5-4c5c-958e-a4c6afda8b9d,1,0,bc10ad8f-383c-469a-8c0e-60805161055b,bc10ad8f-383c-469a-8c0e-60805161055b,1,0,86760ecb-2ddd-40ce-bc4f-94c23027a55e,86760ecb-2ddd-40ce-bc4f-94c23027a55e,1,0,6fbf844e-ee8d-490f-9177-6392d262312f,6fbf844e-ee8d-490f-9177-6392d262312f,1,0,703a3e8a-0204-4e8f-8fa0-a2ed1aeb7662,703a3e8a-0204-4e8f-8fa0-a2ed1aeb7662,1,0,f5d90a5a-1adb-49d6-8640-2e4054bdb99f,f5d90a5a-1adb-49d6-8640-2e4054bdb99f,1,0,37722a34-1148-4cc8-95e6-4645ae9cca98,37722a34-1148-4cc8-95e6-4645ae9cca98,1,0,11f32e0f-7d16-4ebd-9cef-fffd2d64e70a,11f32e0f-7d16-4ebd-9cef-fffd2d64e70a,1,0,cc34bd23-de0a-4b09-8333-e4693576b9f4,cc34bd23-de0a-4b09-8333-e4693576b9f4,1,0,b16d5e79-9d7e-4d3e-9be8-3b2a932abf78,b16d5e79-9d7e-4d3e-9be8-3b2a932abf78,1,0,903af13a-1f73-4145-a3d0-971c3be5fbe6,903af13a-1f73-4145-a3d0-971c3be5fbe6,1,0,fb42ad06-d5a4-40ea-817c-fa7ff385d8db,fb42ad06-d5a4-40ea-817c-fa7ff385d8db,1,0,bc110a6a-26fa-4aa1-a2ef-bdaeaa0a33af,bc110a6a-26fa-4aa1-a2ef-bdaeaa0a33af,1,0,953dbad6-4f5c-4319-874a-db358a77d001,953dbad6-4f5c-4319-874a-db358a77d001,1,0,05243f56-7e9b-4a61-8efb-1b5e525fff21,05243f56-7e9b-4a61-8efb-1b5e525fff21,1,0,7aa86a2d-2b47-447e-8901-806411011279,7aa86a2d-2b47-447e-8901-806411011279,1,0,fca0dfad-f853-4694-9ce9-53a3a10f59b7,fca0dfad-f853-4694-9ce9-53a3a10f59b7,1,0,934b8380-c6e0-49f8-a6c2-91c0ddb2f95e,934b8380-c6e0-49f8-a6c2-91c0ddb2f95e,1,0,57f4ee70-185e-4f2a-91a6-6c0bf93c1000,57f4ee70-185e-4f2a-91a6-6c0bf93c1000,1,0,b4cb92fb-ad82-44ed-9203-397b412b3453,b4cb92fb-ad82-44ed-9203-397b412b3453,1,0,69ceac29-06d3-45f2-b914-7966465cd0d3,69ceac29-06d3-45f2-b914-7966465cd0d3,1,0,b690721d-960b-4374-8d2c-feed3a2b354b,b690721d-960b-4374-8d2c-feed3a2b354b,1,0,271243d3-1871-4a0a-bf7f-63bacacf0a59,271243d3-1871-4a0a-bf7f-63bacacf0a59,1,0,b1ed134b-f2aa-4b06-b7a2-0e524ead04df,b1ed134b-f2aa-4b06-b7a2-0e524ead04df,1,0,5b379a72-8605-4e88-84cb-14272a3b8f5f,5b379a72-8605-4e88-84cb-14272a3b8f5f,1,0,1281fe19-bbca-4a4f-84d8-14187e62000f,1281fe19-bbca-4a4f-84d8-14187e62000f,1,0,ec44f92a-06bf-4a53-a7ba-fbe9846a68a6,ec44f92a-06bf-4a53-a7ba-fbe9846a68a6,1,0,94819f9d-8a93-4a44-b1db-af0f095c7c1d,94819f9d-8a93-4a44-b1db-af0f095c7c1d,1,0,1eb8721d-bbeb-4cca-9e4f-e8386949c93c,1eb8721d-bbeb-4cca-9e4f-e8386949c93c,1,0,0012d153-685c-48ef-9623-8aeff3795aa6,0012d153-685c-48ef-9623-8aeff3795aa6,1,0,8483a18c-ec6f-455c-9568-2019025a25d2,8483a18c-ec6f-455c-9568-2019025a25d2,1,0,9b7051d5-abc4-416c-a0e6-515d120d78e4,9b7051d5-abc4-416c-a0e6-515d120d78e4,1,0,86d1bc4e-f08d-48c7-8b3a-3c5feb0c843c,86d1bc4e-f08d-48c7-8b3a-3c5feb0c843c,1,0,869938e6-6310-4326-bd15-5b91fe2e0911,869938e6-6310-4326-bd15-5b91fe2e0911,1,0,8ed7254b-bbf8-49d9-8a73-9a91316fd02d,8ed7254b-bbf8-49d9-8a73-9a91316fd02d,1,0,ab6d8fdd-7788-474d-9645-53008d7fa603,ab6d8fdd-7788-474d-9645-53008d7fa603,1,0,a156521a-ece1-49d3-8056-1c3508273c45,a156521a-ece1-49d3-8056-1c3508273c45,1,0,075d39e0-a77a-4d0b-9260-7524fb5b2d0c,075d39e0-a77a-4d0b-9260-7524fb5b2d0c,1,0,10018f80-3138-4089-bf9a-a5f178f1e295,10018f80-3138-4089-bf9a-a5f178f1e295,1,0,43aba109-4b7f-45ef-9c30-8b754e81911b,43aba109-4b7f-45ef-9c30-8b754e81911b,1,0,4ccd72e1-7fd7-4a3b-8428-71b44992937e,4ccd72e1-7fd7-4a3b-8428-71b44992937e,1,0,46077650-2b2c-4319-8279-41f277971669,46077650-2b2c-4319-8279-41f277971669,1,0,4afe733d-64a0-4ea5-9d12-6e2c86eb91e4,4afe733d-64a0-4ea5-9d12-6e2c86eb91e4,1,0,612f3b95-d7db-4b33-92b5-4873205b424b,612f3b95-d7db-4b33-92b5-4873205b424b,1,0,d7afa1a6-0ac9-4527-8f1c-5317ce259b52,d7afa1a6-0ac9-4527-8f1c-5317ce259b52,1,0,d0b79c3d-b0c5-4eb3-9971-1def1c88698f,d0b79c3d-b0c5-4eb3-9971-1def1c88698f,1,0,e82ebd72-7b5a-4f45-b853-1001bf680a05,e82ebd72-7b5a-4f45-b853-1001bf680a05,1,0,a74879b8-c080-4cc0-b44f-2b7c4dae87fe,a74879b8-c080-4cc0-b44f-2b7c4dae87fe,1,0,e9e9b733-e97a-430d-95ce-45ea27751f64,e9e9b733-e97a-430d-95ce-45ea27751f64,1,0,9f81693c-4ddd-47ec-b111-d073e1510752,9f81693c-4ddd-47ec-b111-d073e1510752,1,0,8a2811be-64c5-44ba-a52c-482c125eb092,8a2811be-64c5-44ba-a52c-482c125eb092,1,0,5245bee4-ebb7-45d1-b40a-2a06900e55b1,5245bee4-ebb7-45d1-b40a-2a06900e55b1,1,0,cc8cdc82-ee97-4426-b889-95d2286af37c,cc8cdc82-ee97-4426-b889-95d2286af37c,1,0,149104f3-a4c7-47e5-8057-b5bcc754a4f2,149104f3-a4c7-47e5-8057-b5bcc754a4f2,1,0,86ffe9a7-9b3e-49ab-bd88-20269fec56bc,86ffe9a7-9b3e-49ab-bd88-20269fec56bc,1,0,3dd50c66-27f7-4f1e-86e9-c709995c8609,3dd50c66-27f7-4f1e-86e9-c709995c8609,1,0,45c0003f-0ed7-4582-b84e-217fdc4ddeaf,45c0003f-0ed7-4582-b84e-217fdc4ddeaf,1,0,ed1369c5-c274-45bd-ae91-7648565ae09f,ed1369c5-c274-45bd-ae91-7648565ae09f,1,0,8d0fce61-a22f-4033-9e03-3f00c4a21722,8d0fce61-a22f-4033-9e03-3f00c4a21722,1,0,bfb3f026-e940-49c3-ac30-408186f9e11e,bfb3f026-e940-49c3-ac30-408186f9e11e,1,0,e1dc83eb-a8cd-454b-8de8-cff2049be78c,e1dc83eb-a8cd-454b-8de8-cff2049be78c,1,0,9edd9288-1463-4d67-b9f0-40f351d978e9,9edd9288-1463-4d67-b9f0-40f351d978e9,1,0,c9db6c68-965f-4567-b26e-5d497a389de1,c9db6c68-965f-4567-b26e-5d497a389de1,1,0,4da2f65d-56bd-4140-9b31-e5ccac4a800a,4da2f65d-56bd-4140-9b31-e5ccac4a800a,1,0,eb163bba-b94c-4a78-9c2d-7b519325e3d4,eb163bba-b94c-4a78-9c2d-7b519325e3d4,1,0,58cdbd20-a7f4-4c4c-8a4e-638714cc2699,58cdbd20-a7f4-4c4c-8a4e-638714cc2699,1,0,616cd2cc-eaf4-4586-bca1-c044429b491a,616cd2cc-eaf4-4586-bca1-c044429b491a,1,0,939bdb9a-294b-4b42-a56f-030f69bc29c4,939bdb9a-294b-4b42-a56f-030f69bc29c4,1,0,ee7a763b-bcbf-4ff3-89af-eb7965b33515,ee7a763b-bcbf-4ff3-89af-eb7965b33515,1,0,e72b3ae6-00e9-45d7-a4f3-bc8a5a2f5ae4,e72b3ae6-00e9-45d7-a4f3-bc8a5a2f5ae4,1,0,4b8fdb79-a9a0-4a53-9a95-82b8f64b1aa2,4b8fdb79-a9a0-4a53-9a95-82b8f64b1aa2,1,0,d5523a3a-2fb4-4f6c-a76c-08864db125d9,d5523a3a-2fb4-4f6c-a76c-08864db125d9,1,0,28f646f0-1ffc-495b-98d8-f9687172e22a,28f646f0-1ffc-495b-98d8-f9687172e22a,1,0,ecfc26a8-6353-4c78-b469-7ef5b548aa33,ecfc26a8-6353-4c78-b469-7ef5b548aa33,1,0,6ed475b1-7b4f-41d8-957b-18e82addd4d9,6ed475b1-7b4f-41d8-957b-18e82addd4d9,1,0,7be76d5d-7585-4766-8690-9d3c9fc56787,7be76d5d-7585-4766-8690-9d3c9fc56787,1,0,22a6d909-b793-4540-8f4e-605e0448bf2a,22a6d909-b793-4540-8f4e-605e0448bf2a,1,0,2e01082e-9b7b-47f5-900f-1c2e8dfb3f20,2e01082e-9b7b-47f5-900f-1c2e8dfb3f20,1,0,16547db4-7d90-451b-b0a0-33a59837d1f6,16547db4-7d90-451b-b0a0-33a59837d1f6,1,0,f008b0a5-266c-47ab-a15d-95e23bf7041b,f008b0a5-266c-47ab-a15d-95e23bf7041b,1,0,2918a7ba-1b7f-4f1b-8237-d4bc09bcc35a,2918a7ba-1b7f-4f1b-8237-d4bc09bcc35a,1,0,81d900be-ddc1-417f-ae2c-1aacf040de9a,81d900be-ddc1-417f-ae2c-1aacf040de9a,1,0,c65f69ce-be78-4e8d-b91d-293c4108ce77,c65f69ce-be78-4e8d-b91d-293c4108ce77,1,0,521a5717-0b38-401d-bd72-30cee219bd14,521a5717-0b38-401d-bd72-30cee219bd14,1,0,977c30dc-6f27-4931-9fd5-d12ed147e3ec,977c30dc-6f27-4931-9fd5-d12ed147e3ec,1,0,eea4f72e-dd1b-46c7-b270-876a482236b3,eea4f72e-dd1b-46c7-b270-876a482236b3,1,0,25e8d286-dfbb-4fdf-974b-fe3f6f76eac0,25e8d286-dfbb-4fdf-974b-fe3f6f76eac0,1,0,2d249dad-8b4f-462b-ab13-892639a6e071,2d249dad-8b4f-462b-ab13-892639a6e071,1,0,f6249bf4-d2e7-48f3-808f-d776915d14cb,f6249bf4-d2e7-48f3-808f-d776915d14cb,1,0,75f11ecd-c87a-4a14-a7ca-c755f63d7cf8,75f11ecd-c87a-4a14-a7ca-c755f63d7cf8,1,0,883cdeb0-e747-4157-bbe7-0ebc423a82af,883cdeb0-e747-4157-bbe7-0ebc423a82af,1,0,ba62ac73-91da-4dad-abc7-3cf8acf7e315,ba62ac73-91da-4dad-abc7-3cf8acf7e315,1,0,6a71416d-dba1-4883-9264-597ecf9d6270,6a71416d-dba1-4883-9264-597ecf9d6270,1,0,ce3fc202-7893-4d1b-9c8f-1b3349a5c147,ce3fc202-7893-4d1b-9c8f-1b3349a5c147,1,0,6593baab-fce0-49ed-867e-be242bfc08d7,6593baab-fce0-49ed-867e-be242bfc08d7,1,0,403390cf-d3f8-4dfa-b83d-e2fca4ee0dff,403390cf-d3f8-4dfa-b83d-e2fca4ee0dff,1,0,57aed64d-da61-4c18-af21-dab3afdc5c03,57aed64d-da61-4c18-af21-dab3afdc5c03,1,0,452822b4-a590-44db-ab77-d8c01f7300e7,452822b4-a590-44db-ab77-d8c01f7300e7,1,0,e1132cbb-7045-47e2-bbc7-6e92e4dff131,e1132cbb-7045-47e2-bbc7-6e92e4dff131,1,0,62a71ba7-3226-4d10-8cc9-ac9908a00ae7,62a71ba7-3226-4d10-8cc9-ac9908a00ae7,1,0,f5ad6743-b19b-44c4-b3d1-2e39d74a4abd,f5ad6743-b19b-44c4-b3d1-2e39d74a4abd,1,0,85d7ea13-c521-44b8-9dce-5e57529a21db,85d7ea13-c521-44b8-9dce-5e57529a21db,1,0,4b89b7fb-31d9-43c7-9f7e-b0c31fa3331d,4b89b7fb-31d9-43c7-9f7e-b0c31fa3331d,1,0,6ce1d71d-7548-4ee7-be78-21ae23d5a08d,6ce1d71d-7548-4ee7-be78-21ae23d5a08d,1,0,19b29d30-e395-42f2-b700-7474bb2cdcb7,19b29d30-e395-42f2-b700-7474bb2cdcb7,1,0,0c38782c-6559-4f1c-88af-aa022285ffbd,0c38782c-6559-4f1c-88af-aa022285ffbd,1,0,eed23203-924d-4092-a1a8-a7cdd72489e5,eed23203-924d-4092-a1a8-a7cdd72489e5,1,0,b0deb957-624b-4bcb-824c-76aedf1affe9,b0deb957-624b-4bcb-824c-76aedf1affe9,1,0,9934e608-593d-45d0-9df3-539f0c8fc385,9934e608-593d-45d0-9df3-539f0c8fc385,1,0,80da4126-4319-425f-8427-7d60652cf754,80da4126-4319-425f-8427-7d60652cf754,1,0,05236ace-bcdd-4eb8-a1fb-5843ee311d10,05236ace-bcdd-4eb8-a1fb-5843ee311d10,1,0,993d8672-af86-4179-a9ef-228303748bcd,993d8672-af86-4179-a9ef-228303748bcd,1,0,0f1b284c-6c9e-4799-bc47-3326c4b7bec2,0f1b284c-6c9e-4799-bc47-3326c4b7bec2,1,0,449060fd-4711-4b9e-93e0-11b35c314fb3,449060fd-4711-4b9e-93e0-11b35c314fb3,1,0,e7efa9d5-ea93-4070-87bb-a4d95116d1b4,e7efa9d5-ea93-4070-87bb-a4d95116d1b4,1,0,0614d340-6524-4715-978d-87ab21377e72,0614d340-6524-4715-978d-87ab21377e72,1,0,d47daac5-ec3b-4d4e-8b01-045a37f7074d,d47daac5-ec3b-4d4e-8b01-045a37f7074d,1,0,9d6ed3b9-35cd-47c0-9dfc-732e5066a071,9d6ed3b9-35cd-47c0-9dfc-732e5066a071,1,0,912cbd30-1ed5-4888-a4b6-98e9215b28e9,912cbd30-1ed5-4888-a4b6-98e9215b28e9,1,0,abf093ce-be63-487d-8be4-be282aa475be,abf093ce-be63-487d-8be4-be282aa475be,1,0,7a910ad6-b922-4716-8140-1540d76296b2,7a910ad6-b922-4716-8140-1540d76296b2,1,0,3fa9aa34-382c-49fa-87d8-34bedcde5836,3fa9aa34-382c-49fa-87d8-34bedcde5836,1,0,ae4825b1-dd4e-4d0e-8133-da6d1a441c36,ae4825b1-dd4e-4d0e-8133-da6d1a441c36,1,0,f7e6da22-c2b7-47c9-8062-e612a56ae61c,f7e6da22-c2b7-47c9-8062-e612a56ae61c,1,0,5189beb9-b939-4f97-aca0-c2f3492ac8b9,5189beb9-b939-4f97-aca0-c2f3492ac8b9,1,0,0b139d7a-b583-4082-b9f2-8f3fb444bd51,0b139d7a-b583-4082-b9f2-8f3fb444bd51,1,0,b8931f98-c1d7-4e9b-be43-065064e7ba95,b8931f98-c1d7-4e9b-be43-065064e7ba95,1,0,ab2b472d-97d5-4c33-86fd-e2cdaedf3f3d,ab2b472d-97d5-4c33-86fd-e2cdaedf3f3d,1,0,60848308-931c-4da3-aa4b-37f6fb4b194f,60848308-931c-4da3-aa4b-37f6fb4b194f,1,0,0761c32c-1de6-4c40-9178-64aeb46b6622,0761c32c-1de6-4c40-9178-64aeb46b6622,1,0,08af8da8-d44b-46f0-a8d3-60421e7b5a1a,08af8da8-d44b-46f0-a8d3-60421e7b5a1a,1,0,54b14504-503b-45f6-9b5d-785b49829425,54b14504-503b-45f6-9b5d-785b49829425,1,0,80d3ee33-1cdc-4af6-85c2-787094526592,80d3ee33-1cdc-4af6-85c2-787094526592,1,0,c8b28660-6cb0-4ef5-85c2-a75da863ba96,c8b28660-6cb0-4ef5-85c2-a75da863ba96,1,0,1cd607b4-49fc-460e-a014-6afe50083b47,1cd607b4-49fc-460e-a014-6afe50083b47,1,0,a215e767-36e9-4408-9d18-7b4be757022a,a215e767-36e9-4408-9d18-7b4be757022a,1,0,a3e262bc-9f0d-480d-a1d1-c2326105d22d,a3e262bc-9f0d-480d-a1d1-c2326105d22d,1,0,8eae0c79-288b-4773-90bb-49299ad45628,8eae0c79-288b-4773-90bb-49299ad45628,1,0,2faa5594-f1b4-4312-b674-82fdf9623105,2faa5594-f1b4-4312-b674-82fdf9623105,1,0,185c1ad3-b5db-49b6-9342-d08e1bf64903,185c1ad3-b5db-49b6-9342-d08e1bf64903,1,0,3c69a4ad-001d-4421-88f6-412e15d710d6,3c69a4ad-001d-4421-88f6-412e15d710d6,1,0,d0373603-5abb-4f7b-8d2f-9f7fb52615aa,d0373603-5abb-4f7b-8d2f-9f7fb52615aa,1,0,f20a35fe-6029-4dc8-b6b4-b098dbce12e8,f20a35fe-6029-4dc8-b6b4-b098dbce12e8,1,0,6a68a08a-ea37-4573-ab9f-ec822f6d250b,6a68a08a-ea37-4573-ab9f-ec822f6d250b,1,0,00e87d04-8104-420b-b2c6-7304889a75b2,00e87d04-8104-420b-b2c6-7304889a75b2,1,0,bde86820-f7bb-463b-97d0-bfa5f8323af0,bde86820-f7bb-463b-97d0-bfa5f8323af0,1,0,b9b24093-810c-4158-846d-e2c7aea54d36,b9b24093-810c-4158-846d-e2c7aea54d36,1,0,289a6aac-dc4e-4fae-8815-853e78d450bb,289a6aac-dc4e-4fae-8815-853e78d450bb,1,0,557e7d89-83ed-45d0-86cc-6e355f14025d,557e7d89-83ed-45d0-86cc-6e355f14025d,1,0,d681b26b-dd8d-46d7-986e-10f05c37a1e4,d681b26b-dd8d-46d7-986e-10f05c37a1e4,1,0,4d3c216e-c04f-4884-8681-1c861c50ce7d,4d3c216e-c04f-4884-8681-1c861c50ce7d,1,0,4a41eee0-c973-4824-a07c-9fcf731f055e,4a41eee0-c973-4824-a07c-9fcf731f055e,1,0,ee756c33-f408-4449-a6bb-3186a0421362,ee756c33-f408-4449-a6bb-3186a0421362,1,0,fbfa8f64-52e4-48f6-b0fb-fd06976dd93d,fbfa8f64-52e4-48f6-b0fb-fd06976dd93d,1,0,6ff66622-4d20-4696-9fe9-4b4faeb21d96,6ff66622-4d20-4696-9fe9-4b4faeb21d96,1,0,46237eec-c206-4d21-883c-27599b9ed38c,46237eec-c206-4d21-883c-27599b9ed38c,1,0,92cbfe14-35c5-440b-9a13-ef8c8ab0630a,92cbfe14-35c5-440b-9a13-ef8c8ab0630a,1,0,8ce759ff-f579-461c-bb1e-9ac2b01e88df,8ce759ff-f579-461c-bb1e-9ac2b01e88df,1,0,8b451909-2c15-48f2-b869-65e7031cc542,8b451909-2c15-48f2-b869-65e7031cc542,1,0,ab6ff81a-56aa-4742-afe4-d7a652e9d2de,ab6ff81a-56aa-4742-afe4-d7a652e9d2de,1,0,7b377fca-4466-476f-9eb2-0b00141103d6,7b377fca-4466-476f-9eb2-0b00141103d6,1,0,9ce5eceb-f366-4035-956e-62721358b154,9ce5eceb-f366-4035-956e-62721358b154,1,0,8b5358e9-5810-45a7-a49e-fe7fe63c73f3,8b5358e9-5810-45a7-a49e-fe7fe63c73f3,1,0,23afa5f6-9c3f-4f79-885b-b20785fc5e45,23afa5f6-9c3f-4f79-885b-b20785fc5e45,1,0,379a8bf7-b760-43d6-b5c4-6393b00e294f,379a8bf7-b760-43d6-b5c4-6393b00e294f,1,0,e44b737f-9076-4070-94ba-ed0b00e60393,e44b737f-9076-4070-94ba-ed0b00e60393,1,0,5582e533-b908-40c9-8c81-876906f0d47e,5582e533-b908-40c9-8c81-876906f0d47e,1,0,71656b8b-2d9b-4ac9-884d-72f47b9c69b7,71656b8b-2d9b-4ac9-884d-72f47b9c69b7,1,0,e0797541-88c2-4ad9-9ff4-d56899e6a6ee,e0797541-88c2-4ad9-9ff4-d56899e6a6ee,1,0,794f5fb5-3b8f-4f45-9250-7a3b9d1db383,794f5fb5-3b8f-4f45-9250-7a3b9d1db383,1,0,f7a89bfc-e3c9-4894-a2df-6c229b4e0fd8,f7a89bfc-e3c9-4894-a2df-6c229b4e0fd8,1,0,1e8b70ce-27fc-418f-b3f3-e6efbce9f7a2,1e8b70ce-27fc-418f-b3f3-e6efbce9f7a2,1,0,d915d338-3e4c-45c3-aef5-a07cf41b05f6,d915d338-3e4c-45c3-aef5-a07cf41b05f6,1,0,28080e64-cd09-410d-9e3e-3ffdb43d3ace,28080e64-cd09-410d-9e3e-3ffdb43d3ace,1,0,9cfd3d38-4e0e-40f4-ae77-7a997646e4b2,9cfd3d38-4e0e-40f4-ae77-7a997646e4b2,1,0,fb7011ca-4e05-45d8-9698-09406a4c033f,fb7011ca-4e05-45d8-9698-09406a4c033f,1,0,8b20dcaa-5ec3-4ce7-ac37-3ea6f2a2bfe9,8b20dcaa-5ec3-4ce7-ac37-3ea6f2a2bfe9,1,0,5b4ba51e-7757-4a01-aecd-a2c326dcfffe,5b4ba51e-7757-4a01-aecd-a2c326dcfffe,1,0,85565415-40b8-47e9-9c5d-3bb72824fdd3,85565415-40b8-47e9-9c5d-3bb72824fdd3,1,0,978640a2-5c4b-4e21-857e-34f00840fba8,978640a2-5c4b-4e21-857e-34f00840fba8,1,0,da2913e3-a29b-423f-9aae-08fed56a7d90,da2913e3-a29b-423f-9aae-08fed56a7d90,1,0,149e72b8-cc03-4b4f-8ca4-07987600c34d,149e72b8-cc03-4b4f-8ca4-07987600c34d,1,0,7649bd7b-fe8c-4338-80fc-153160a5e538,7649bd7b-fe8c-4338-80fc-153160a5e538,1,0,7779cd6d-8fa1-49cb-9bbc-9dfd0979f3f4,7779cd6d-8fa1-49cb-9bbc-9dfd0979f3f4,1,0,3dec1ae7-90bb-45ab-aa04-48cfbc14742e,3dec1ae7-90bb-45ab-aa04-48cfbc14742e,1,0,6137605e-4850-44ec-b4ee-048bd8e0ec3a,6137605e-4850-44ec-b4ee-048bd8e0ec3a,1,0,ee28aa9b-0f31-4d8b-8444-43b8bc88bd23,ee28aa9b-0f31-4d8b-8444-43b8bc88bd23,1,0,0e6e9372-beb4-478e-9428-71b19a60739b,0e6e9372-beb4-478e-9428-71b19a60739b,1,0,a805d33c-2cb0-4862-943f-06ded997b940,a805d33c-2cb0-4862-943f-06ded997b940,1,0,32b11498-542f-46b2-829f-1525936ab7fa,32b11498-542f-46b2-829f-1525936ab7fa,1,0,64afa916-4750-4008-8c6c-2a470fb11283,64afa916-4750-4008-8c6c-2a470fb11283,1,0,f4a85bfb-40c7-4f81-af32-d07b96c53ad0,f4a85bfb-40c7-4f81-af32-d07b96c53ad0,1,0,35354abc-9a76-4ee8-8796-c24b37365ea0,35354abc-9a76-4ee8-8796-c24b37365ea0,1,0,eabb04a7-2ae0-44ad-bd3a-9118b0c3886c,eabb04a7-2ae0-44ad-bd3a-9118b0c3886c,1,0,7078977f-31bf-427e-ac37-e309d81fe999,7078977f-31bf-427e-ac37-e309d81fe999,1,0,bb39ae51-be82-4bb5-a30e-2bf2b53be59e,bb39ae51-be82-4bb5-a30e-2bf2b53be59e,1,0,d8854555-9e15-4d82-a1fd-656a848a8e8a,d8854555-9e15-4d82-a1fd-656a848a8e8a,1,0,87ed7963-c2e4-4515-b768-47cf72442fd0,87ed7963-c2e4-4515-b768-47cf72442fd0,1,0,53191842-ea05-4491-84d7-071cd201992d,53191842-ea05-4491-84d7-071cd201992d,1,0,86c70449-4cf7-4baf-9742-b82b134ed929,86c70449-4cf7-4baf-9742-b82b134ed929,1,0,af3b1881-163a-4c07-a1d9-77ceadf59c77,af3b1881-163a-4c07-a1d9-77ceadf59c77,1,0,d3443b92-32f5-4ac0-8356-062647efe3d8,d3443b92-32f5-4ac0-8356-062647efe3d8,1,0,b78be6fb-7db8-48c8-ba7b-aab1fea34890,b78be6fb-7db8-48c8-ba7b-aab1fea34890,1,0,bd27276a-e80c-4135-b341-f99a816ffe86,bd27276a-e80c-4135-b341-f99a816ffe86,1,0,35306678-147c-4ad1-a3c6-c80a11afa22f,35306678-147c-4ad1-a3c6-c80a11afa22f,1,0,0da75726-ae71-4d83-a696-a774c787a8a2,0da75726-ae71-4d83-a696-a774c787a8a2,1,0,5b30b0e9-f986-49b8-8668-5bb0e09f0cfe,5b30b0e9-f986-49b8-8668-5bb0e09f0cfe,1,0,896a7267-0198-4cbb-b6e6-7aa157c0cc61,896a7267-0198-4cbb-b6e6-7aa157c0cc61,1,0,2005bf54-219b-4111-bff1-e12e2c6dca3e,2005bf54-219b-4111-bff1-e12e2c6dca3e,1,0,abab8f73-d705-4350-b44d-f912649a2190,abab8f73-d705-4350-b44d-f912649a2190,1,0,20c9c25c-f8c9-429f-84bd-543cb809abef,20c9c25c-f8c9-429f-84bd-543cb809abef,1,0,dc5f451e-3275-43a8-9f48-45b83220d461,dc5f451e-3275-43a8-9f48-45b83220d461,1,0,028f5e81-61df-4d13-876d-781c5fd18ee6,028f5e81-61df-4d13-876d-781c5fd18ee6,1,0,3cbb59ef-7f64-4590-8a54-ba01e78283c3,3cbb59ef-7f64-4590-8a54-ba01e78283c3,1,0,a5b83672-2ead-4d0a-a4e5-ddd991f1addc,a5b83672-2ead-4d0a-a4e5-ddd991f1addc,1,0,388eb513-fadb-40cd-8a7b-33b904dd758e,388eb513-fadb-40cd-8a7b-33b904dd758e,1,0,0613c6aa-e1fe-4632-a396-a17ec773158f,0613c6aa-e1fe-4632-a396-a17ec773158f,1,0,1a330987-4c79-4ab7-b250-db8d32c78751,1a330987-4c79-4ab7-b250-db8d32c78751,1,0,b7295e8e-0aa4-4a49-81ea-0594a358e9ca,b7295e8e-0aa4-4a49-81ea-0594a358e9ca,1,0,555062ed-9a04-41d8-877f-0a667e9a08cd,555062ed-9a04-41d8-877f-0a667e9a08cd,1,0,5b1db523-b5cb-4ff8-8662-5feeb4282b4a,5b1db523-b5cb-4ff8-8662-5feeb4282b4a,1,0,ac160e1c-fef7-4625-84e0-964b397f6bdb,ac160e1c-fef7-4625-84e0-964b397f6bdb,1,0,b8946d9c-dda8-4b94-8cbf-db62b647c53e,b8946d9c-dda8-4b94-8cbf-db62b647c53e,1,0,24215916-7732-4030-9f88-163f644e94f7,24215916-7732-4030-9f88-163f644e94f7,1,0,69697945-9748-4cea-a20f-e244b46de2e8,69697945-9748-4cea-a20f-e244b46de2e8,1,0,68538fd1-262c-43ea-b09f-8a66643a0062,68538fd1-262c-43ea-b09f-8a66643a0062,1,0,d042a8e1-a7b9-4f26-abc4-d618bc73e9f5,d042a8e1-a7b9-4f26-abc4-d618bc73e9f5,1,0,82ad24cc-d9f8-440b-a720-e204101d85da,82ad24cc-d9f8-440b-a720-e204101d85da,1,0,aa63c001-c3da-4179-8fd8-fe2ff510511e,aa63c001-c3da-4179-8fd8-fe2ff510511e,1,0,b2e894b0-6443-4a52-95b6-6b564f809680,b2e894b0-6443-4a52-95b6-6b564f809680,1,0,8010065f-aec8-4768-85ec-9eb7b2b01e7e,8010065f-aec8-4768-85ec-9eb7b2b01e7e,1,0,a44348cb-e20c-4afd-8483-3b9c735b352c,a44348cb-e20c-4afd-8483-3b9c735b352c,1,0,ebfe4c74-6e16-4b64-8a52-cea95c446903,ebfe4c74-6e16-4b64-8a52-cea95c446903,1,0,ea9ed37c-7f58-43a8-990c-f1feb5d2d275,ea9ed37c-7f58-43a8-990c-f1feb5d2d275,1,0,d912e472-9553-4b96-8b16-7aaff6c14239,d912e472-9553-4b96-8b16-7aaff6c14239,1,0,b04018b5-a74d-43c9-8519-6cc8aa23fe09,b04018b5-a74d-43c9-8519-6cc8aa23fe09,1,0,8f5af22e-3e73-4a4f-b91e-eccd0f5084fd,8f5af22e-3e73-4a4f-b91e-eccd0f5084fd,1,0,9283277f-2b75-4c3a-810a-8d4071b3afcc,9283277f-2b75-4c3a-810a-8d4071b3afcc,1,0,d03d5b18-57a2-43c0-99ea-8ad9d5788179,d03d5b18-57a2-43c0-99ea-8ad9d5788179,1,0,c491a7fc-14f9-498a-b7dd-575dfc66878e,c491a7fc-14f9-498a-b7dd-575dfc66878e,1,0,ec966ef2-b291-4937-a164-5c2b461871f8,ec966ef2-b291-4937-a164-5c2b461871f8,1,0,db15f8eb-4736-4b47-9cee-3e6883f0888c,db15f8eb-4736-4b47-9cee-3e6883f0888c,1,0,59064eb2-2770-4f1c-96bd-801926fe68ef,59064eb2-2770-4f1c-96bd-801926fe68ef,1,0,df81cc63-26f2-4e66-bf0b-fd083a6a7d7b,df81cc63-26f2-4e66-bf0b-fd083a6a7d7b,1,0,8a8848b8-345a-452d-bf95-28f9c91c7e95,8a8848b8-345a-452d-bf95-28f9c91c7e95,1,0,440ecfe8-72fd-447b-8680-c4a8c43f2c72,440ecfe8-72fd-447b-8680-c4a8c43f2c72,1,0,5afe3a0f-1bbc-4f04-87b3-f98d54b65a42,5afe3a0f-1bbc-4f04-87b3-f98d54b65a42,1,0,ee9e8f50-4d4f-43aa-99eb-cda2308c903e,ee9e8f50-4d4f-43aa-99eb-cda2308c903e,1,0,4ff043c1-6c0b-4889-a684-23da5a35b9c2,4ff043c1-6c0b-4889-a684-23da5a35b9c2,1,0,6fe56ecb-c969-4c03-8e6b-65395c29e817,6fe56ecb-c969-4c03-8e6b-65395c29e817,1,0,48627a8d-b108-43b8-a58e-fd98e4220639,48627a8d-b108-43b8-a58e-fd98e4220639,1,0,2a8eb62d-2795-48ab-ae02-68527996f411,2a8eb62d-2795-48ab-ae02-68527996f411,1,0,d3bf09be-0f21-4dc3-a525-1c4dc75928ea,d3bf09be-0f21-4dc3-a525-1c4dc75928ea,1,0,5ca880c5-7c34-4c31-a2b8-46265ddea7d4,5ca880c5-7c34-4c31-a2b8-46265ddea7d4,1,0,a9441693-87ca-4157-98e1-63375852755c,a9441693-87ca-4157-98e1-63375852755c,1,0,6303ea55-e8ed-4acc-9717-941eefafc2a9,6303ea55-e8ed-4acc-9717-941eefafc2a9,1,0,5b4e1b83-fc10-4acc-bef7-81c73dbbc453,5b4e1b83-fc10-4acc-bef7-81c73dbbc453,1,0,d0b17206-3949-4513-a47f-02e1a8ba369a,d0b17206-3949-4513-a47f-02e1a8ba369a,1,0,cb4f20d4-13e6-4c27-b491-da7931f4bf05,cb4f20d4-13e6-4c27-b491-da7931f4bf05,1,0,6b2340d7-687f-43a3-8eb8-8ddb86712466,6b2340d7-687f-43a3-8eb8-8ddb86712466,1,0,9846e2f6-d82a-42a6-bf50-2a9cdf750a8f,9846e2f6-d82a-42a6-bf50-2a9cdf750a8f,1,0,9328da5c-4689-4a60-8136-ae9eac46ab38,9328da5c-4689-4a60-8136-ae9eac46ab38,1,0,ca5d586f-81bb-40ee-b3bd-de854857c984,ca5d586f-81bb-40ee-b3bd-de854857c984,1,0,32c10512-7bb8-423b-9503-ab2fa41386a4,32c10512-7bb8-423b-9503-ab2fa41386a4,1,0,888edfc4-8140-4675-b267-c32bf1d8d29d,888edfc4-8140-4675-b267-c32bf1d8d29d,1,0,2abbd53a-0ead-42af-8df6-fde663aea300,2abbd53a-0ead-42af-8df6-fde663aea300,1,0,24611bf9-5492-443a-935c-a0058e86493f,24611bf9-5492-443a-935c-a0058e86493f,1,0,42641296-64da-46e0-a407-de2d492f9c90,42641296-64da-46e0-a407-de2d492f9c90,1,0,b834af0b-086c-445d-a271-7e178c324551,b834af0b-086c-445d-a271-7e178c324551,1,0,ec34befe-3c0b-4a75-b943-840c52e7dda5,ec34befe-3c0b-4a75-b943-840c52e7dda5,1,0,7f18eb86-e9ac-4cb8-a9aa-389f61dff582,7f18eb86-e9ac-4cb8-a9aa-389f61dff582,1,0,b5e81952-e469-4f26-b8d2-90e7d9e7bc1d,b5e81952-e469-4f26-b8d2-90e7d9e7bc1d,1,0,6733f1bd-7878-4a33-8995-c07526e87c1a,6733f1bd-7878-4a33-8995-c07526e87c1a,1,0,f7e73257-fae1-465a-ae74-faaa0273a416,f7e73257-fae1-465a-ae74-faaa0273a416,1,0,73f89524-dbe8-426f-8ee6-1277eb1967cc,73f89524-dbe8-426f-8ee6-1277eb1967cc,1,0,ee7d970c-cef7-4740-a357-1fe78f88a6e6,ee7d970c-cef7-4740-a357-1fe78f88a6e6,1,0,13beb01d-dd08-4a6d-863b-651e70bbf51f,13beb01d-dd08-4a6d-863b-651e70bbf51f,1,0,94bc76ae-72a0-418f-98c4-ae0a0326a2da,94bc76ae-72a0-418f-98c4-ae0a0326a2da,1,0,784475ff-eec5-462a-a511-ba31f8374c2e,784475ff-eec5-462a-a511-ba31f8374c2e,1,0,b5b56a64-5550-4da9-8872-d42ab871d21c,b5b56a64-5550-4da9-8872-d42ab871d21c,1,0,e9939b36-bceb-40e2-a182-1d5cc248f353,e9939b36-bceb-40e2-a182-1d5cc248f353,1,0,619d3ac6-40fe-485d-a407-fe065f16b186,619d3ac6-40fe-485d-a407-fe065f16b186,1,0,ecaa0af8-549c-4c07-82ff-1c4e02ff15b8,ecaa0af8-549c-4c07-82ff-1c4e02ff15b8,1,0,45a8c780-c067-40d7-bbe9-81f854aacf7a,45a8c780-c067-40d7-bbe9-81f854aacf7a,1,0,57885cac-059a-4a08-aa2c-43b116d2c777,57885cac-059a-4a08-aa2c-43b116d2c777,1,0,c0403df4-b1f2-4d7e-adb5-9ed881c1359b,c0403df4-b1f2-4d7e-adb5-9ed881c1359b,1,0,27e0b5d9-1a4c-45b8-8969-d1d1c39129c1,27e0b5d9-1a4c-45b8-8969-d1d1c39129c1,1,0,626cbb27-6af2-4a9a-959e-15af4417e489,626cbb27-6af2-4a9a-959e-15af4417e489,1,0,e7b0ae70-0192-456c-9dc5-e66049fa9df2,e7b0ae70-0192-456c-9dc5-e66049fa9df2,1,0,68944d09-618e-4fa3-a7af-8c84218e0ac7,68944d09-618e-4fa3-a7af-8c84218e0ac7,1,0,91b12ce3-e8ba-4c9d-9daa-1d5532500314,91b12ce3-e8ba-4c9d-9daa-1d5532500314,1,0,733dc291-0bef-4fe8-ac9f-63440f0c2ad0,733dc291-0bef-4fe8-ac9f-63440f0c2ad0,1,0,356a8091-4c0b-41d0-b8d2-963b3a807469,356a8091-4c0b-41d0-b8d2-963b3a807469,1,0,5b7b7dc3-dbef-4854-9395-30a3ae4d751c,5b7b7dc3-dbef-4854-9395-30a3ae4d751c,1,0,cb57aabc-eeef-42b4-9bc2-873cebd9618c,cb57aabc-eeef-42b4-9bc2-873cebd9618c,1,0,2fcd2c85-6778-42fa-9bdd-a6ba47497ec0,2fcd2c85-6778-42fa-9bdd-a6ba47497ec0,1,0,52f30ed7-aa16-4ce2-9684-e50229ab0015,52f30ed7-aa16-4ce2-9684-e50229ab0015,1,0,79c2e2bd-f923-42ec-8bdc-3e517e08ee7c,79c2e2bd-f923-42ec-8bdc-3e517e08ee7c,1,0,54ecaf7b-9bc5-483c-96e1-270bcd323590,54ecaf7b-9bc5-483c-96e1-270bcd323590,1,0,f00e93bf-6e3b-4819-a4e1-33471a6d0fff,f00e93bf-6e3b-4819-a4e1-33471a6d0fff,1,0,2a1f77ba-fa2e-4281-8e68-7ec4ca0261b7,2a1f77ba-fa2e-4281-8e68-7ec4ca0261b7,1,0,58f6f8fa-7473-40f5-973a-6279335d8f33,58f6f8fa-7473-40f5-973a-6279335d8f33,1,0,ec0c3187-de61-4bc8-a52a-7617f47ffb6d,ec0c3187-de61-4bc8-a52a-7617f47ffb6d,1,0,1e71ec59-55a4-45e8-a8c9-f70c2cb56589,1e71ec59-55a4-45e8-a8c9-f70c2cb56589,1,0,fa3632fe-185b-49aa-85ae-dfb721835d40,fa3632fe-185b-49aa-85ae-dfb721835d40,1,0,a4f15108-477c-465e-aaea-cb495ef52cf5,a4f15108-477c-465e-aaea-cb495ef52cf5,1,0,9cda5c2c-f401-4f63-b445-cef160296e48,9cda5c2c-f401-4f63-b445-cef160296e48,1,0,e8ae4a26-3127-43ae-af7a-c2e278d2611d,e8ae4a26-3127-43ae-af7a-c2e278d2611d,1,0,b923c78f-d074-41b4-b832-086686258f19,b923c78f-d074-41b4-b832-086686258f19,1,0,8ff96413-6fdd-4b8d-a181-ea0d8633defc,8ff96413-6fdd-4b8d-a181-ea0d8633defc,1,0,54604ed2-766b-4308-b99e-447817d82799,54604ed2-766b-4308-b99e-447817d82799,1,0,7abdb07b-edbc-4c3b-aa53-afaa92dc9071,7abdb07b-edbc-4c3b-aa53-afaa92dc9071,1,0,ee008096-1ae8-4a64-9d3d-14cb15c8be70,ee008096-1ae8-4a64-9d3d-14cb15c8be70,1,0,a0a85b22-63ee-4a05-8b0d-1feb9ee07b0a,a0a85b22-63ee-4a05-8b0d-1feb9ee07b0a,1,0,a4754a7b-971f-4517-963e-b7cb9d57f86d,a4754a7b-971f-4517-963e-b7cb9d57f86d,1,0,f48b4475-2cd9-41df-962a-6529f84985ca,f48b4475-2cd9-41df-962a-6529f84985ca,1,0,2fbfe405-48e6-4abf-99c2-7f1f66a62b48,2fbfe405-48e6-4abf-99c2-7f1f66a62b48,1,0,5e6637c7-19b5-4ac2-a8e9-d119e49f444e,5e6637c7-19b5-4ac2-a8e9-d119e49f444e,1,0,bf94feb9-edf7-4df8-b5f5-805613663a0a,bf94feb9-edf7-4df8-b5f5-805613663a0a,1,0,6d852a13-c85e-4e84-8396-f91c1ed0596e,6d852a13-c85e-4e84-8396-f91c1ed0596e,1,0,9c2d5313-a4fd-417e-a340-ad4980d0028b,9c2d5313-a4fd-417e-a340-ad4980d0028b,1,0,4fb4a280-9426-4c41-a9ba-11f9d01a0740,4fb4a280-9426-4c41-a9ba-11f9d01a0740,1,0,1591ee7e-870c-4bf7-9450-be84f1b2506f,1591ee7e-870c-4bf7-9450-be84f1b2506f,1,0,526c688e-a4d4-45f7-8bba-b8ceff38fe27,526c688e-a4d4-45f7-8bba-b8ceff38fe27,1,0,7e32c295-a769-4cff-a3eb-992f7031475f,7e32c295-a769-4cff-a3eb-992f7031475f,1,0,5a398637-a06c-4442-9093-a864fa7f049f,5a398637-a06c-4442-9093-a864fa7f049f,1,0,fe4aa694-76c4-49c9-96ce-a2476f4ff58b,fe4aa694-76c4-49c9-96ce-a2476f4ff58b,1,0,115a6019-ef87-4126-8ebf-070c1e882940,115a6019-ef87-4126-8ebf-070c1e882940,1,0,162ce023-b2e1-41dc-bcaf-b8e30caccce0,162ce023-b2e1-41dc-bcaf-b8e30caccce0,1,0,67efa786-312f-4c9c-b970-0320e92069af,67efa786-312f-4c9c-b970-0320e92069af,1,0,5b952e35-1037-4447-8293-6d8889692c8b,5b952e35-1037-4447-8293-6d8889692c8b,1,0,2bc2ca58-6cc0-4d4b-8672-f9328c86c2c1,2bc2ca58-6cc0-4d4b-8672-f9328c86c2c1,1,0,bf1ab189-634d-4b31-82e3-35fb15305da9,bf1ab189-634d-4b31-82e3-35fb15305da9,1,0,046d2201-5fe3-4451-9db0-6f784efadaf8,046d2201-5fe3-4451-9db0-6f784efadaf8,1,0,bb532d83-69d8-4733-9d18-21d34ee0330a,bb532d83-69d8-4733-9d18-21d34ee0330a,1,0,c2a8f4a7-882a-4262-ad9d-0f8ad9821488,c2a8f4a7-882a-4262-ad9d-0f8ad9821488,1,0,05bc8b4e-8c90-4502-8b16-7b1e7625d569,05bc8b4e-8c90-4502-8b16-7b1e7625d569,1,0,ce34d88d-3017-4197-a962-ea23a6a96d32,ce34d88d-3017-4197-a962-ea23a6a96d32,1,0,2cbc16da-aa67-4ad6-82f8-fa6922447be6,2cbc16da-aa67-4ad6-82f8-fa6922447be6,1,0,19d7a1ba-c343-4575-95da-53dac6d4b2cb,19d7a1ba-c343-4575-95da-53dac6d4b2cb,1,0,6cc8b3a0-3377-4b39-b6b0-69c862a15465,6cc8b3a0-3377-4b39-b6b0-69c862a15465,1,0,acb193f4-52e5-4572-a79b-b825a2f6525f,acb193f4-52e5-4572-a79b-b825a2f6525f,1,0,5d46f719-e468-48e2-b4ec-acb85c710451,5d46f719-e468-48e2-b4ec-acb85c710451,1,0,9fb13bfe-80c7-43c3-b0da-9185ab197ce2,9fb13bfe-80c7-43c3-b0da-9185ab197ce2,1,0,cd80a520-1d1c-4d80-8a4a-360ac1ca98d8,cd80a520-1d1c-4d80-8a4a-360ac1ca98d8,1,0,e9aef0c8-9dc4-4c4a-8288-8b2d9860624d,e9aef0c8-9dc4-4c4a-8288-8b2d9860624d,1,0,733d4494-01e2-46f5-a49b-f289267a90c9,733d4494-01e2-46f5-a49b-f289267a90c9,1,0,1e14d062-1d5a-4939-8ce6-4d9514990376,1e14d062-1d5a-4939-8ce6-4d9514990376,1,0,f86f24d2-9a83-47ae-9d95-b49a0a295770,f86f24d2-9a83-47ae-9d95-b49a0a295770,1,0,8368e1fa-da0c-4a9b-9d50-a122933c7899,8368e1fa-da0c-4a9b-9d50-a122933c7899,1,0,37986729-a275-4e86-8613-faee9a4f2525,37986729-a275-4e86-8613-faee9a4f2525,1,0,0f0ac56d-b068-46f2-8440-731683c2b42a,0f0ac56d-b068-46f2-8440-731683c2b42a,1,0,5814cb3a-8f7c-45b4-a590-b69d4912120f,5814cb3a-8f7c-45b4-a590-b69d4912120f,1,0,f06c8396-65ec-4ece-aed0-d45b2d8969b5,f06c8396-65ec-4ece-aed0-d45b2d8969b5,1,0,1faeab7f-7bd7-496d-8882-4aab6c425854,1faeab7f-7bd7-496d-8882-4aab6c425854,1,0,5c17a594-eb0b-4cdf-af35-0eaba968e065,5c17a594-eb0b-4cdf-af35-0eaba968e065,1,0,af922fb8-a99c-4154-89fe-d30a4d13024a,af922fb8-a99c-4154-89fe-d30a4d13024a,1,0,24c2f463-2bbb-471f-a409-507afad52caf,24c2f463-2bbb-471f-a409-507afad52caf,1,0,cbb07013-9ae1-43ec-8142-a724d788cb67,cbb07013-9ae1-43ec-8142-a724d788cb67,1,0,2403ac84-b513-4aa0-9a68-8d1ad705ce24,2403ac84-b513-4aa0-9a68-8d1ad705ce24,1,0,c1bcfc01-529c-4774-a79b-052eee157f2d,c1bcfc01-529c-4774-a79b-052eee157f2d,1,0,952b49e0-e1a1-4130-8fb2-083e3988255c,952b49e0-e1a1-4130-8fb2-083e3988255c,1,0,367b227f-f66e-4cec-9fc3-850bca8bc6c8,367b227f-f66e-4cec-9fc3-850bca8bc6c8,1,0,1a3a8a3a-dc34-4491-883d-57c3fb69840a,1a3a8a3a-dc34-4491-883d-57c3fb69840a,1,0,7fcb9d79-1144-4099-8d7f-309d3bf045a5,7fcb9d79-1144-4099-8d7f-309d3bf045a5,1,0,db418313-8583-48a9-9fec-e2c5de4fdf76,db418313-8583-48a9-9fec-e2c5de4fdf76,1,0,6277a3b5-b158-4b58-a92b-5efdf2dabac0,6277a3b5-b158-4b58-a92b-5efdf2dabac0,1,0,2f26970e-b964-43e2-8d6d-999bbc577689,2f26970e-b964-43e2-8d6d-999bbc577689,1,0,65a50026-88e7-45dd-bb0c-f212218ca093,65a50026-88e7-45dd-bb0c-f212218ca093,1,0,ed9e5fbe-1db8-4fb9-a9fa-bb1927cae196,ed9e5fbe-1db8-4fb9-a9fa-bb1927cae196,1,0,1dd2b2c4-00aa-4029-ba32-fe82aa5c6cbe,1dd2b2c4-00aa-4029-ba32-fe82aa5c6cbe,1,0,2f4ea53a-c84d-4d5f-ae7a-817a20ccd96a,2f4ea53a-c84d-4d5f-ae7a-817a20ccd96a,1,0,b2a39c8a-d884-4dfe-a593-e6788dabbd6b,b2a39c8a-d884-4dfe-a593-e6788dabbd6b,1,0,3d0afdb2-ab8f-43c0-920a-88ed85545b2f,3d0afdb2-ab8f-43c0-920a-88ed85545b2f,1,0,17477f72-0622-445c-9cb7-2c5a5a65bbe0,17477f72-0622-445c-9cb7-2c5a5a65bbe0,1,0,01a1fd57-6c09-4a5b-9f75-da4366159423,01a1fd57-6c09-4a5b-9f75-da4366159423,1,0,71d79b25-3682-4f2c-b6b2-a307e3e72844,71d79b25-3682-4f2c-b6b2-a307e3e72844,1,0,45c1ed0d-202e-4289-820f-e1de0f544386,45c1ed0d-202e-4289-820f-e1de0f544386,1,0,e889e80f-97c9-43c6-8268-d652764fcafb,e889e80f-97c9-43c6-8268-d652764fcafb,1,0,4eb48d3a-e2d5-4db5-b08b-4b6ccc701f77,4eb48d3a-e2d5-4db5-b08b-4b6ccc701f77,1,0,95ccaaf2-f6ca-4540-8a39-3c90121c4236,95ccaaf2-f6ca-4540-8a39-3c90121c4236,1,0,7c920b8b-1dbf-4f7e-99af-1ca784a59a64,7c920b8b-1dbf-4f7e-99af-1ca784a59a64,1,0,f47a9bec-2a9f-4955-a432-acb63a5b0e46,f47a9bec-2a9f-4955-a432-acb63a5b0e46,1,0,1ba73b6b-cb72-4370-a268-279dcd7a54b9,1ba73b6b-cb72-4370-a268-279dcd7a54b9,1,0,49de6b63-a845-4b5a-9818-18a3e0bb6fe8,49de6b63-a845-4b5a-9818-18a3e0bb6fe8,1,0,b787818e-5572-4ef2-ba54-1e9b69569824,b787818e-5572-4ef2-ba54-1e9b69569824,1,0,1e13bd37-61b5-4901-a607-e00e5d1900a8,1e13bd37-61b5-4901-a607-e00e5d1900a8,1,0,395b43e4-c18b-4f68-b99c-aed8d4b8cac9,395b43e4-c18b-4f68-b99c-aed8d4b8cac9,1,0,231d7b21-c00c-4782-b610-d56593be436f,231d7b21-c00c-4782-b610-d56593be436f,1,0,79250d1a-77ff-4015-a5b5-83460b1611e2,79250d1a-77ff-4015-a5b5-83460b1611e2,1,0,60018ee0-71ec-4975-a95d-f6f188748ff2,60018ee0-71ec-4975-a95d-f6f188748ff2,1,0,68d35468-279a-43ef-9d71-fed44a792177,68d35468-279a-43ef-9d71-fed44a792177,1,0,77bec3d8-582a-4156-861b-4902008f014c,77bec3d8-582a-4156-861b-4902008f014c,1,0,2ad1caba-7a89-4389-934f-419970260961,2ad1caba-7a89-4389-934f-419970260961,1,0,bfc1a708-662d-4dc1-82b4-7b09bb1b0751,bfc1a708-662d-4dc1-82b4-7b09bb1b0751,1,0,f88c4a72-368c-4f45-bb2c-d18f214a5079,f88c4a72-368c-4f45-bb2c-d18f214a5079,1,0,611876ba-7e6e-40c3-89a9-bb9b19cd1bfb,611876ba-7e6e-40c3-89a9-bb9b19cd1bfb,1,0,9dc2e313-c086-4fd9-83e8-911859ef480d,9dc2e313-c086-4fd9-83e8-911859ef480d,1,0,8a14ced0-9e45-4b3a-a135-11413c3a33c2,8a14ced0-9e45-4b3a-a135-11413c3a33c2,1,0,af7377db-0b27-42f7-a639-e2feb4015412,af7377db-0b27-42f7-a639-e2feb4015412,1,0,e1a200e2-64f3-434c-ae0d-5f24b9d65c9b,e1a200e2-64f3-434c-ae0d-5f24b9d65c9b,1,0,ab7db146-f26a-418a-8c45-e2513bf84e08,ab7db146-f26a-418a-8c45-e2513bf84e08,1,0,ece3bd8d-6616-44d5-9c14-6b3557738872,ece3bd8d-6616-44d5-9c14-6b3557738872,1,0,663a80ba-b97e-4265-a627-4a7d273f9472,663a80ba-b97e-4265-a627-4a7d273f9472,1,0,bf3304c0-5078-478f-bbf8-6178264c5f26,bf3304c0-5078-478f-bbf8-6178264c5f26,1,0,fbf754c3-ab89-4704-b01a-67f8bcea0c7c,fbf754c3-ab89-4704-b01a-67f8bcea0c7c,1,0,3b0afd55-f08d-4d59-b6df-d7c4d1c52446,3b0afd55-f08d-4d59-b6df-d7c4d1c52446,1,0,4893ad50-df19-4d86-9469-40491ba733c9,4893ad50-df19-4d86-9469-40491ba733c9,1,0,25a65c1e-8e67-4135-843d-1e0da72dfd64,25a65c1e-8e67-4135-843d-1e0da72dfd64,1,0,5724fbd5-4d91-4e6d-ae24-8925a4d83c83,5724fbd5-4d91-4e6d-ae24-8925a4d83c83,1,0,29a6416e-b0f5-4111-8f86-1ba80244e73a,29a6416e-b0f5-4111-8f86-1ba80244e73a,1,0,0f49085a-9b83-4256-be60-f341b2ef132e,0f49085a-9b83-4256-be60-f341b2ef132e,1,0,f44c66d6-cfe2-482f-a921-de3db3cd09ea,f44c66d6-cfe2-482f-a921-de3db3cd09ea,1,0,5ec1b7af-f4bc-4ec1-8f43-85c4f9d146a0,5ec1b7af-f4bc-4ec1-8f43-85c4f9d146a0,1,0,c521bd61-386e-41c8-bcc3-29d54b63cc32,c521bd61-386e-41c8-bcc3-29d54b63cc32,1,0,d46e3424-6d30-4229-9a56-ab256517534a,d46e3424-6d30-4229-9a56-ab256517534a,1,0,09d3633d-8e8c-47f3-8f34-d70eb94577e1,09d3633d-8e8c-47f3-8f34-d70eb94577e1,1,0,fe868143-363b-4da1-889b-98d4dd10a1fd,fe868143-363b-4da1-889b-98d4dd10a1fd,1,0,b791a549-ae94-46f2-8f04-771fdeb4cc54,b791a549-ae94-46f2-8f04-771fdeb4cc54,1,0,4681cb63-c581-4c08-b18c-016d9b478ef2,4681cb63-c581-4c08-b18c-016d9b478ef2,1,0,041c364f-0498-494f-9e41-82cb416c0862,041c364f-0498-494f-9e41-82cb416c0862,1,0,ec37d236-db36-44ef-afc2-267af1f40c1f,ec37d236-db36-44ef-afc2-267af1f40c1f,1,0,913830c8-da01-4b7e-9d83-d406c2fefd49,913830c8-da01-4b7e-9d83-d406c2fefd49,1,0,293cda8c-1cc8-42c0-a68f-d22163aed4f1,293cda8c-1cc8-42c0-a68f-d22163aed4f1,1,0,d835f08d-79c6-4e79-a7c1-f00dc05778b9,d835f08d-79c6-4e79-a7c1-f00dc05778b9,1,0,653dbf7d-a213-42c7-98da-9e639f41bb02,653dbf7d-a213-42c7-98da-9e639f41bb02,1,0,8a0f16a1-63c4-4ea4-a2f1-7b08e75efbd5,8a0f16a1-63c4-4ea4-a2f1-7b08e75efbd5,1,0,5adaafcf-3d67-418d-b47d-d0d8c65f1f46,5adaafcf-3d67-418d-b47d-d0d8c65f1f46,1,0,ee0275e4-a497-4623-9d2f-6308ea2e70ca,ee0275e4-a497-4623-9d2f-6308ea2e70ca,1,0,5e48841c-0a65-457f-8952-fa97aae3207d,5e48841c-0a65-457f-8952-fa97aae3207d,1,0,f68ec923-89c8-4c83-80a2-2d5e096dbbd8,f68ec923-89c8-4c83-80a2-2d5e096dbbd8,1,0,f278bdf8-543a-4427-b2f1-3670c61502ae,f278bdf8-543a-4427-b2f1-3670c61502ae,1,0,f0cebe1f-8b1a-482c-9224-63df4fd36524,f0cebe1f-8b1a-482c-9224-63df4fd36524,1,0,00ce0cd2-9840-49a0-b9df-dc64becd3e65,00ce0cd2-9840-49a0-b9df-dc64becd3e65,1,0,db6f11c0-8530-43c1-811a-48797be89ec1,db6f11c0-8530-43c1-811a-48797be89ec1,1,0,c2782a2b-f910-4d4d-ba1b-49ef7854bae0,c2782a2b-f910-4d4d-ba1b-49ef7854bae0,1,0,ca8c4c19-9f92-45a7-b5bd-1ae06e3c9171,ca8c4c19-9f92-45a7-b5bd-1ae06e3c9171,1,0,9f1c8979-2b3d-4a96-af6c-4577541696a3,9f1c8979-2b3d-4a96-af6c-4577541696a3,1,0,32371dfd-c890-4bed-bd68-45db299c9caf,32371dfd-c890-4bed-bd68-45db299c9caf,1,0,eeb298cf-8df3-41fe-bb48-9c83a24a8206,eeb298cf-8df3-41fe-bb48-9c83a24a8206,1,0,04055821-03ce-4049-af2c-8670c80517f6,04055821-03ce-4049-af2c-8670c80517f6,1,0,0101305d-62eb-4802-9cd4-d615a518d842,0101305d-62eb-4802-9cd4-d615a518d842,1,0,898d2ba7-631a-4e7a-9bdf-cd2ef411e57a,898d2ba7-631a-4e7a-9bdf-cd2ef411e57a,1,0,1d429511-9446-4102-95f4-df676125e14c,1d429511-9446-4102-95f4-df676125e14c,1,0,bf1fc624-60d7-4a04-bb3a-b6e2882bebfe,bf1fc624-60d7-4a04-bb3a-b6e2882bebfe,1,0,7c424424-9660-462d-9cf2-4c1e6bd284fa,7c424424-9660-462d-9cf2-4c1e6bd284fa,1,0,e118f957-ab2c-473b-ab64-37032f727416,e118f957-ab2c-473b-ab64-37032f727416,1,0,e770e26e-a3a4-487d-b3bb-aeb63d8b7323,e770e26e-a3a4-487d-b3bb-aeb63d8b7323,1,0,21f64e5f-dc94-4ce9-b836-e75646ae3325,21f64e5f-dc94-4ce9-b836-e75646ae3325,1,0,82e8a180-f2e1-406c-9609-89d33504aff2,82e8a180-f2e1-406c-9609-89d33504aff2,1,0,e7437c81-3d5b-466e-880c-8febe4a68e88,e7437c81-3d5b-466e-880c-8febe4a68e88,1,0,99bc26f9-ba56-4c63-9fd1-c2f3d630b93c,99bc26f9-ba56-4c63-9fd1-c2f3d630b93c,1,0,307771e6-bcf7-4016-b369-e1655bbe9e94,307771e6-bcf7-4016-b369-e1655bbe9e94,1,0,bf8c60f7-7dea-4a2c-8ce2-7001a6a37bfa,bf8c60f7-7dea-4a2c-8ce2-7001a6a37bfa,1,0,38fc6a54-846c-40b0-9254-3261f540bf18,38fc6a54-846c-40b0-9254-3261f540bf18,1,0,d9134d0c-56cd-4b8f-ab11-ae37fc306801,d9134d0c-56cd-4b8f-ab11-ae37fc306801,1,0,9408d0ee-bd61-4b95-ac7c-98de139b5f9e,9408d0ee-bd61-4b95-ac7c-98de139b5f9e,1,0,8f2af24b-f5fa-4f6d-831e-28453bdedefc,8f2af24b-f5fa-4f6d-831e-28453bdedefc,1,0,d119e21d-0087-4f22-b3bd-b14707b65330,d119e21d-0087-4f22-b3bd-b14707b65330,1,0,dc9b4072-11de-40fe-bf2a-f7b15af0a250,dc9b4072-11de-40fe-bf2a-f7b15af0a250,1,0,e2cf5ca9-c2a0-4506-89e6-318cad0a48a3,e2cf5ca9-c2a0-4506-89e6-318cad0a48a3,1,0,aa0e290d-21ab-4197-b8f3-cf1f97ab1b98,aa0e290d-21ab-4197-b8f3-cf1f97ab1b98,1,0,eefa9859-4168-4a10-923f-e4a713c99a3b,eefa9859-4168-4a10-923f-e4a713c99a3b,1,0,5aecdfd1-1cd7-4523-be23-7e32fcb01a94,5aecdfd1-1cd7-4523-be23-7e32fcb01a94,1,0,932b1c1a-72eb-49cd-8218-d0ced9c454d8,932b1c1a-72eb-49cd-8218-d0ced9c454d8,1,0,96d70dc4-02bd-47ad-9465-81de6ff5bdc9,96d70dc4-02bd-47ad-9465-81de6ff5bdc9,1,0,38acaf7a-5a77-40bf-ba2a-17b31cccd37d,38acaf7a-5a77-40bf-ba2a-17b31cccd37d,1,0,cb604857-8e49-4f2f-b5c8-2a7d8a3cf8e4,cb604857-8e49-4f2f-b5c8-2a7d8a3cf8e4,1,0,f33e9c76-e523-4f4e-ab4b-3fc1b256d8dd,f33e9c76-e523-4f4e-ab4b-3fc1b256d8dd,1,0,5dd336c4-88c5-4f53-acf0-5f86a658c528,5dd336c4-88c5-4f53-acf0-5f86a658c528,1,0,c723112b-286d-46f1-989d-81252062a025,c723112b-286d-46f1-989d-81252062a025,1,0,67e8b47e-4bad-4b2f-b196-8a9708893051,67e8b47e-4bad-4b2f-b196-8a9708893051,1,0,39bddcde-697c-4e77-adfd-e4a77529ea97,39bddcde-697c-4e77-adfd-e4a77529ea97,1,0,a3b15381-bf9b-4b26-96eb-392fa2cc8223,a3b15381-bf9b-4b26-96eb-392fa2cc8223,1,0,a583e53a-3f3c-48c7-8928-37ce40b2bafe,a583e53a-3f3c-48c7-8928-37ce40b2bafe,1,0,a844dd4a-274a-4894-9446-031dbe006084,a844dd4a-274a-4894-9446-031dbe006084,1,0,9a740f81-5437-47af-8ed9-ea62edcb2ea1,9a740f81-5437-47af-8ed9-ea62edcb2ea1,1,0,cdf54c86-0a1c-4f74-93ee-6d8d8db0a778,cdf54c86-0a1c-4f74-93ee-6d8d8db0a778,1,0,77bdd30f-4933-4bda-9c7a-b0a097da0910,77bdd30f-4933-4bda-9c7a-b0a097da0910,1,0,a8d52851-4293-4fe4-b2cb-f9c8c166ed97,a8d52851-4293-4fe4-b2cb-f9c8c166ed97,1,0,d4879ecc-8f1a-4183-99a8-d6dfc1eed3f8,d4879ecc-8f1a-4183-99a8-d6dfc1eed3f8,1,0,8e9eb604-5f15-4ef5-8906-5bcd57b3d099,8e9eb604-5f15-4ef5-8906-5bcd57b3d099,1,0,a682e9e1-284f-4e32-86b2-6736f159f585,a682e9e1-284f-4e32-86b2-6736f159f585,1,0,84f0bd89-9b86-440f-b942-9b685e22233e,84f0bd89-9b86-440f-b942-9b685e22233e,1,0,f2d508b3-9425-4ce6-86d8-5893ca4a8cd6,f2d508b3-9425-4ce6-86d8-5893ca4a8cd6,1,0,ce61612f-bcbb-4a02-bca0-d88e0ee42bd7,ce61612f-bcbb-4a02-bca0-d88e0ee42bd7,1,0,c1c35035-44cc-4aa1-ae8e-db3513ddc5f3,c1c35035-44cc-4aa1-ae8e-db3513ddc5f3,1,0,ac52baa1-02cb-4ce8-8f4f-1f9441b1cda0,ac52baa1-02cb-4ce8-8f4f-1f9441b1cda0,1,0,fabf8a0b-366f-4f23-9377-315534bb854b,fabf8a0b-366f-4f23-9377-315534bb854b,1,0,7aac6439-64c9-4492-b866-bf91dda82d06,7aac6439-64c9-4492-b866-bf91dda82d06,1,0,6ffe3723-c6df-497b-a3ff-d817fbabfd8c,6ffe3723-c6df-497b-a3ff-d817fbabfd8c,1,0,528a82b7-ef06-4d90-bb32-bd6d76ed6c74,528a82b7-ef06-4d90-bb32-bd6d76ed6c74,1,0,08b86f29-64ef-467a-af1a-d27ffdf621ba,08b86f29-64ef-467a-af1a-d27ffdf621ba,1,0,6483d1ab-c53d-4985-ad7e-b799adbcd9da,6483d1ab-c53d-4985-ad7e-b799adbcd9da,1,0,82f66233-ed13-49ae-ab72-7cf91c88c760,82f66233-ed13-49ae-ab72-7cf91c88c760,1,0,75cddbcd-e960-4164-81d8-ac0a2a36e95b,75cddbcd-e960-4164-81d8-ac0a2a36e95b,1,0,e14d57f4-ae4a-4644-9ec1-a6af1b3e4c41,e14d57f4-ae4a-4644-9ec1-a6af1b3e4c41,1,0,314f8451-ba96-46cd-bf9f-3a87df7d2a5b,314f8451-ba96-46cd-bf9f-3a87df7d2a5b,1,0,d9151001-a911-45c1-a8e6-dcf0da623ed3,d9151001-a911-45c1-a8e6-dcf0da623ed3,1,0,42f4ad3c-3724-4032-82f0-10c8dbe6cc9f,42f4ad3c-3724-4032-82f0-10c8dbe6cc9f,1,0,bbd8b83d-413a-4ffc-8351-e0ec4f4ae619,bbd8b83d-413a-4ffc-8351-e0ec4f4ae619,1,0,c49cef0d-3b71-4e66-9e35-72b94920dae5,c49cef0d-3b71-4e66-9e35-72b94920dae5,1,0,30e06f80-b6d0-4fa9-a346-8e17dbe2fb68,30e06f80-b6d0-4fa9-a346-8e17dbe2fb68,1,0,e589a693-ff50-4c36-ae26-a8fcae966d57,e589a693-ff50-4c36-ae26-a8fcae966d57,1,0,8bacb87e-c2e9-41f5-bae1-c3a6b0e8179f,8bacb87e-c2e9-41f5-bae1-c3a6b0e8179f,1,0,90f023f5-5b48-4f98-bfc6-b704277a355d,90f023f5-5b48-4f98-bfc6-b704277a355d,1,0,99485603-706d-4301-be25-82b1c0ee8f4d,99485603-706d-4301-be25-82b1c0ee8f4d,1,0,e7a28021-c75e-41b2-9974-cf4beee34d28,e7a28021-c75e-41b2-9974-cf4beee34d28,1,0,21e3bdf3-7cec-42de-8ef3-5815b9a1b747,21e3bdf3-7cec-42de-8ef3-5815b9a1b747,1,0,2a603c61-4cbf-4c6d-a0b2-40c835d36737,2a603c61-4cbf-4c6d-a0b2-40c835d36737,1,0,a8d7f071-401b-499e-957c-d077d8002e54,a8d7f071-401b-499e-957c-d077d8002e54,1,0,b6206c73-cf17-4e74-a14d-f2a2ef2b2cc1,b6206c73-cf17-4e74-a14d-f2a2ef2b2cc1,1,0,b363f72f-3629-453c-9f7d-9828ef6de733,b363f72f-3629-453c-9f7d-9828ef6de733,1,0,211a539b-4be9-4816-98f6-f756e65eafd8,211a539b-4be9-4816-98f6-f756e65eafd8,1,0,e2d8167d-3ebf-4771-b9e0-e6382d68cc18,e2d8167d-3ebf-4771-b9e0-e6382d68cc18,1,0,e9b9da80-7806-4c9c-a002-01cfa3109169,e9b9da80-7806-4c9c-a002-01cfa3109169,1,0,a271041d-0203-4ecd-bb39-70256c50192e,a271041d-0203-4ecd-bb39-70256c50192e,1,0,c6c26c3c-de7a-4ed4-944d-ada62cf1ab8f,c6c26c3c-de7a-4ed4-944d-ada62cf1ab8f,1,0,a54872fc-4e7e-4829-8564-1b2e7f0ee134,a54872fc-4e7e-4829-8564-1b2e7f0ee134,1,0,fe10d76e-3f80-4529-83a8-74c452a781f6,fe10d76e-3f80-4529-83a8-74c452a781f6,1,0,e3d1a7f5-ba86-414e-b2d2-89cc9db51667,e3d1a7f5-ba86-414e-b2d2-89cc9db51667,1,0,13333d66-ff04-49ec-973a-1229da8c9f50,13333d66-ff04-49ec-973a-1229da8c9f50,1,0,cb8ab5b6-876f-4aae-952f-2284bf0f539d,cb8ab5b6-876f-4aae-952f-2284bf0f539d,1,0,c9281eef-2e73-4b0f-ab72-7b4f6f10d787,c9281eef-2e73-4b0f-ab72-7b4f6f10d787,1,0,4a6fde33-6a58-4827-bdf9-b5e28e8cff6b,4a6fde33-6a58-4827-bdf9-b5e28e8cff6b,1,0,e2eadc5b-1b78-4ae4-8a55-a42402bb458b,e2eadc5b-1b78-4ae4-8a55-a42402bb458b,1,0,1e7effa9-3d8c-4d6c-bad2-98a3fd57ff33,1e7effa9-3d8c-4d6c-bad2-98a3fd57ff33,1,0,4c353b16-e6b6-4bd2-9d22-ce50a6281402,4c353b16-e6b6-4bd2-9d22-ce50a6281402,1,0,31f12f68-e5f7-4078-aca4-ebe32699fd6c,31f12f68-e5f7-4078-aca4-ebe32699fd6c,1,0,7e67f946-a80f-428e-a0eb-22c1a58b6fcf,7e67f946-a80f-428e-a0eb-22c1a58b6fcf,1,0,040cd37a-d272-4a87-b125-25d2cb8a2f9e,040cd37a-d272-4a87-b125-25d2cb8a2f9e,1,0,0f3e12fd-d60c-4323-8010-3f2951012d36,0f3e12fd-d60c-4323-8010-3f2951012d36,1,0,cf8c78d6-e1e0-4953-9928-b8d333e2c1ca,cf8c78d6-e1e0-4953-9928-b8d333e2c1ca,1,0,970421ca-4cb5-41f1-8e83-91ea4481ba9a,970421ca-4cb5-41f1-8e83-91ea4481ba9a,1,0,eb7aed6a-718d-4439-bea6-e7ede4987e3d,eb7aed6a-718d-4439-bea6-e7ede4987e3d,1,0,51ab4435-d8a2-4f54-b2ff-9465b0a4eef3,51ab4435-d8a2-4f54-b2ff-9465b0a4eef3,1,0,2f9d50bd-3e82-4321-81e6-2290b5a8a25e,2f9d50bd-3e82-4321-81e6-2290b5a8a25e,1,0,63a34a52-83e7-4644-8a70-9a845b5b18f2,63a34a52-83e7-4644-8a70-9a845b5b18f2,1,0,6f612a9e-c264-4856-98cf-e1a5b8ff7c97,6f612a9e-c264-4856-98cf-e1a5b8ff7c97,1,0,6d7b4670-9c33-41da-afca-bf1e01447623,6d7b4670-9c33-41da-afca-bf1e01447623,1,0,de31505e-3190-4b8c-81e9-8e2c2c7a1809,de31505e-3190-4b8c-81e9-8e2c2c7a1809,1,0,a07f12e8-f62c-4325-b0f4-df68b4b13e45,a07f12e8-f62c-4325-b0f4-df68b4b13e45,1,0,960dc389-b6bb-40ad-bcf7-a07b8c25d6f5,960dc389-b6bb-40ad-bcf7-a07b8c25d6f5,1,0,d8d61ffe-518a-4f06-ba47-238c0973a01a,d8d61ffe-518a-4f06-ba47-238c0973a01a,1,0,12b82221-3a4e-4d65-b1eb-001cc22725a7,12b82221-3a4e-4d65-b1eb-001cc22725a7,1,0,b301cd92-809f-4b0e-966b-8ab95e85ecb3,b301cd92-809f-4b0e-966b-8ab95e85ecb3,1,0,f0c12406-79a9-48e3-b470-b2148d3c9990,f0c12406-79a9-48e3-b470-b2148d3c9990,1,0,a587b305-efbf-43be-bf2e-95c4a33e9f3b,a587b305-efbf-43be-bf2e-95c4a33e9f3b,1,0,ba156cdc-ac78-4827-9598-f0bb7cc7569c,ba156cdc-ac78-4827-9598-f0bb7cc7569c,1,0,c7e646e7-c353-4549-ac4a-1b088be7f684,c7e646e7-c353-4549-ac4a-1b088be7f684,1,0,1db14384-34b2-422d-a7ee-fc930f48cfd1,1db14384-34b2-422d-a7ee-fc930f48cfd1,1,0,4b792d87-b16f-47b1-85a8-781365c2f135,4b792d87-b16f-47b1-85a8-781365c2f135,1,0,73eff626-a363-4a5a-879e-61ef6ce0726f,73eff626-a363-4a5a-879e-61ef6ce0726f,1,0,acf15b79-a6c4-4c46-8013-50d3b223baf6,acf15b79-a6c4-4c46-8013-50d3b223baf6,1,0,f6a29b80-e4c3-4c4f-8e2c-d4dda851d813,f6a29b80-e4c3-4c4f-8e2c-d4dda851d813,1,0,2d8d5d74-2bc0-4282-af66-e4a37694c147,2d8d5d74-2bc0-4282-af66-e4a37694c147,1,0,cfd31341-287b-4684-9ac0-b28b4e066f15,cfd31341-287b-4684-9ac0-b28b4e066f15,1,0,81de1b0b-7f2d-4098-ae99-061c6a90dc29,81de1b0b-7f2d-4098-ae99-061c6a90dc29,1,0,77c8a065-a8aa-4f39-93b6-c88f4c38ec66,77c8a065-a8aa-4f39-93b6-c88f4c38ec66,1,0,366fa6da-d3bf-4bb0-9a55-a307f9edee6a,366fa6da-d3bf-4bb0-9a55-a307f9edee6a,1,0,dd0610c8-cd87-4fe2-8a1f-70157132785b,dd0610c8-cd87-4fe2-8a1f-70157132785b,1,0,f829e2a9-5bdb-4171-8b32-8d10d5968813,f829e2a9-5bdb-4171-8b32-8d10d5968813,1,0,647ba8f8-57f7-4c19-af59-525517c1e392,647ba8f8-57f7-4c19-af59-525517c1e392,1,0,39062cb3-4ae8-4c0d-889b-038a55179946,39062cb3-4ae8-4c0d-889b-038a55179946,1,0,c62d4212-36ca-4afb-bac9-269b6f64ca51,c62d4212-36ca-4afb-bac9-269b6f64ca51,1,0,5cec5e16-46ad-4f8c-b869-f5b1cc487884,5cec5e16-46ad-4f8c-b869-f5b1cc487884,1,0,ca0363bb-81c2-4fce-b2f0-e8f42d118a74,ca0363bb-81c2-4fce-b2f0-e8f42d118a74,1,0,7aacdf81-49fd-47a3-a36a-c483f1b05872,7aacdf81-49fd-47a3-a36a-c483f1b05872,1,0,857015e2-afb2-403d-bfb7-7acb5080797b,857015e2-afb2-403d-bfb7-7acb5080797b,1,0,100ec1d0-3719-4feb-8a66-02f2c89fcd36,100ec1d0-3719-4feb-8a66-02f2c89fcd36,1,0,5657286b-114b-41de-ab7d-45d0f0d95e2d,5657286b-114b-41de-ab7d-45d0f0d95e2d,1,0,42a0271e-6783-44db-95c1-09805ae01f58,42a0271e-6783-44db-95c1-09805ae01f58,1,0,8628783e-4fad-4dff-8220-9e0ddc8580f8,8628783e-4fad-4dff-8220-9e0ddc8580f8,1,0,356fc245-3034-42d1-84d0-632c6dc7a3d5,356fc245-3034-42d1-84d0-632c6dc7a3d5,1,0,07462664-6b58-4f5a-9b3f-2e5c376f17df,07462664-6b58-4f5a-9b3f-2e5c376f17df,1,0,6f23e946-f700-424b-b9bf-3a9c8846908d,6f23e946-f700-424b-b9bf-3a9c8846908d,1,0,f3ef5989-a848-4a7f-8ac5-0eca882a6aa1,f3ef5989-a848-4a7f-8ac5-0eca882a6aa1,1,0,4f5087ab-cc60-4d1e-ba83-a319536bf8ba,4f5087ab-cc60-4d1e-ba83-a319536bf8ba,1,0,2aafb1a1-4321-47e9-9783-03ab616a2873,2aafb1a1-4321-47e9-9783-03ab616a2873,1,0,71109997-6da0-4eaf-bbf2-f94fa24f37cc,71109997-6da0-4eaf-bbf2-f94fa24f37cc,1,0,a3deeef2-f8a2-462f-a57f-87d89e4ec12a,a3deeef2-f8a2-462f-a57f-87d89e4ec12a,1,0,d601281c-379d-4a9d-843e-478fd6567415,d601281c-379d-4a9d-843e-478fd6567415,1,0,fd9b3f7d-d25d-4ecb-8b87-218d5ccf1f7b,fd9b3f7d-d25d-4ecb-8b87-218d5ccf1f7b,1,0,427e6f15-334e-42be-9554-895d8f7ebfc6,427e6f15-334e-42be-9554-895d8f7ebfc6,1,0,02abb5e3-9d4e-4c45-af19-71796966ed19,02abb5e3-9d4e-4c45-af19-71796966ed19,1,0,e85a4314-7b63-4294-9bd0-ff77e3ae7c1e,e85a4314-7b63-4294-9bd0-ff77e3ae7c1e,1,0,36bc8523-41a5-48ff-9bd0-758d078c4408,36bc8523-41a5-48ff-9bd0-758d078c4408,1,0,94ca1b45-3cf0-4857-8299-999c93f4fb56,94ca1b45-3cf0-4857-8299-999c93f4fb56,1,0,ee8419c6-79ca-4546-9a66-bacaa08d2a73,ee8419c6-79ca-4546-9a66-bacaa08d2a73,1,0,e36ddb60-2f21-4c5f-b96c-947bcf2af42a,e36ddb60-2f21-4c5f-b96c-947bcf2af42a,1,0,d4a0ca3b-3985-4ba2-9e96-1c5baed28b46,d4a0ca3b-3985-4ba2-9e96-1c5baed28b46,1,0,ada11ea2-94d5-4172-a383-a51774599568,ada11ea2-94d5-4172-a383-a51774599568,1,0,50515bbc-43ee-4b00-bfc5-105b7981bd8f,50515bbc-43ee-4b00-bfc5-105b7981bd8f,1,0,1ea080b0-0a11-4152-b8bb-4918bc142a23,1ea080b0-0a11-4152-b8bb-4918bc142a23,1,0,a21cd1c1-4649-4dc2-9dbd-a913f2d6ca75,a21cd1c1-4649-4dc2-9dbd-a913f2d6ca75,1,0,6930e471-7935-4d68-a980-2acde93ba801,6930e471-7935-4d68-a980-2acde93ba801,1,0,2c425fa5-b10b-4a6f-926a-5cb4c1f2d491,2c425fa5-b10b-4a6f-926a-5cb4c1f2d491,1,0,5135cc48-c749-4acb-a225-d110f386f482,5135cc48-c749-4acb-a225-d110f386f482,1,0,15e6f31b-556a-4f47-9f40-2f69ac7fcb43,15e6f31b-556a-4f47-9f40-2f69ac7fcb43,1,0,53c4c3b2-9257-4d02-8df8-6b55fe9abdae,53c4c3b2-9257-4d02-8df8-6b55fe9abdae,1,0,d2dba2ae-e987-4c9d-a289-3dc19afa87cd,d2dba2ae-e987-4c9d-a289-3dc19afa87cd,1,0,2e9fa546-96fb-4ecb-b933-7921e131e89b,2e9fa546-96fb-4ecb-b933-7921e131e89b,1,0,4645b1ad-eb8f-484c-b29c-2093d9ef9dba,4645b1ad-eb8f-484c-b29c-2093d9ef9dba,1,0,637a132b-1a88-44ba-b45f-ed4ed1ac1001,637a132b-1a88-44ba-b45f-ed4ed1ac1001,1,0,c3efa853-cd29-4618-929f-e3bec33dfd65,c3efa853-cd29-4618-929f-e3bec33dfd65,1,0,62185c28-3d24-487a-9441-b309dcf11e31,62185c28-3d24-487a-9441-b309dcf11e31,1,0,9f264aeb-664d-4724-8248-11873d63ef3b,9f264aeb-664d-4724-8248-11873d63ef3b,1,0,b926d058-53a9-4eea-b4f9-98e77f798dd9,b926d058-53a9-4eea-b4f9-98e77f798dd9,1,0,495e2c77-4868-4191-ac18-f94e55a5982e,495e2c77-4868-4191-ac18-f94e55a5982e,1,0,20191a65-322c-457d-85f5-ed1258b6fe8e,20191a65-322c-457d-85f5-ed1258b6fe8e,1,0,d71ca3bc-e41a-44d9-afe4-c68f1211b3a1,d71ca3bc-e41a-44d9-afe4-c68f1211b3a1,1,0,23b46ecd-14dc-4cc5-8ff0-c676a8337aee,23b46ecd-14dc-4cc5-8ff0-c676a8337aee,1,0,769c60aa-44f4-4c98-a461-d3f5c2b67f61,769c60aa-44f4-4c98-a461-d3f5c2b67f61,1,0,f9809c99-0eaa-4249-967c-a4bef4763277,f9809c99-0eaa-4249-967c-a4bef4763277,1,0,37fa88a0-f2c1-455f-a28d-74165e8b933d,37fa88a0-f2c1-455f-a28d-74165e8b933d,1,0,e4476f09-909b-49f7-8e01-72eea8ceaca6,e4476f09-909b-49f7-8e01-72eea8ceaca6,1,0,2861412c-46f0-454e-b81d-fe081afb5c7a,2861412c-46f0-454e-b81d-fe081afb5c7a,1,0,2b4ece05-b694-42e9-8239-55722fd84294,2b4ece05-b694-42e9-8239-55722fd84294,1,0,6564ce89-134f-4726-8693-fd93aad46180,6564ce89-134f-4726-8693-fd93aad46180,1,0,0d743731-da5d-4c99-b19f-e93c69b77e14,0d743731-da5d-4c99-b19f-e93c69b77e14,1,0,d6f15367-23e2-4766-bc7c-8acd0063aa0c,d6f15367-23e2-4766-bc7c-8acd0063aa0c,1,0,966b1bde-5b0c-446d-b38b-dc037e2ff7ad,966b1bde-5b0c-446d-b38b-dc037e2ff7ad,1,0,fa4c5665-4d73-4db2-a055-8c1c8a302f82,fa4c5665-4d73-4db2-a055-8c1c8a302f82,1,0,e3e0caa1-6d3f-45a6-9043-d58a34f35b8f,e3e0caa1-6d3f-45a6-9043-d58a34f35b8f,1,0,9100b286-8ae9-4de3-b116-5ce0fa95b80c,9100b286-8ae9-4de3-b116-5ce0fa95b80c,1,0,3d315df6-e000-4cbd-810d-0b26c0d1bc54,3d315df6-e000-4cbd-810d-0b26c0d1bc54,1,0,fa429302-ccaf-4c89-8a11-3a1d30817c00,fa429302-ccaf-4c89-8a11-3a1d30817c00,1,0,9b4c49ce-93da-439a-8d67-f3774e92800a,9b4c49ce-93da-439a-8d67-f3774e92800a,1,0,5f8fa827-7017-4b45-b458-3571b8b611f5,5f8fa827-7017-4b45-b458-3571b8b611f5,1,0,79749167-2912-4e06-9deb-7915a1b4390d,79749167-2912-4e06-9deb-7915a1b4390d,1,0,1c93fcd3-53a1-403f-a30b-454fbc941d55,1c93fcd3-53a1-403f-a30b-454fbc941d55,1,0,0fc54be4-2e19-45cf-b62f-7cbc70a70d5f,0fc54be4-2e19-45cf-b62f-7cbc70a70d5f,1,0,adec3963-b22f-4463-a3f4-c9ec27d187a8,adec3963-b22f-4463-a3f4-c9ec27d187a8,1,0,d8dae0c8-8e11-44bf-bf60-d316220f3e82,d8dae0c8-8e11-44bf-bf60-d316220f3e82,1,0,12afec4d-1728-4aa8-86e5-23cd2f1572b3,12afec4d-1728-4aa8-86e5-23cd2f1572b3,1,0,16bc197b-5a2f-43f4-8ba0-ffabd9289f5c,16bc197b-5a2f-43f4-8ba0-ffabd9289f5c,1,0,ee0c3960-d1bf-411f-a51f-e6e27dabea87,ee0c3960-d1bf-411f-a51f-e6e27dabea87,1,0,d7fb9441-1aef-4257-af3f-7f16340ac85e,d7fb9441-1aef-4257-af3f-7f16340ac85e,1,0,d07c094c-2795-4e0c-b030-bdb82be7ba6d,d07c094c-2795-4e0c-b030-bdb82be7ba6d,1,0,62637860-2013-4f9d-9aed-7cbb0dce8983,62637860-2013-4f9d-9aed-7cbb0dce8983,1,0,331217f6-7ec2-425d-93bd-f2979c5f2e05,331217f6-7ec2-425d-93bd-f2979c5f2e05,1,0,7d5b2b73-27e6-4a61-9558-eb2410eb9f2f,7d5b2b73-27e6-4a61-9558-eb2410eb9f2f,1,0,d754ed75-2a32-4b86-a153-7b50c39f9836,d754ed75-2a32-4b86-a153-7b50c39f9836,1,0,b81f3ee1-66f7-4626-a35b-ef85388c678e,b81f3ee1-66f7-4626-a35b-ef85388c678e,1,0,2ad04793-c162-4915-a260-ca4da535cdac,2ad04793-c162-4915-a260-ca4da535cdac,1,0,78942e92-a31c-4824-a614-a6e07ae26171,78942e92-a31c-4824-a614-a6e07ae26171,1,0,6568d853-dfe5-4064-aa73-c1f546e951b4,6568d853-dfe5-4064-aa73-c1f546e951b4,1,0,7cee27a7-9827-47f8-96f3-d4f1f3dcabe9,7cee27a7-9827-47f8-96f3-d4f1f3dcabe9,1,0,9bfba5cd-551a-4685-99dd-ebfd9f7fd7d1,9bfba5cd-551a-4685-99dd-ebfd9f7fd7d1,1,0,bbe718b2-6b4c-4d78-a408-5369d356a1e6,bbe718b2-6b4c-4d78-a408-5369d356a1e6,1,0,4ecd85c4-5be7-4e6b-8c53-7dd32bd4d707,4ecd85c4-5be7-4e6b-8c53-7dd32bd4d707,1,0,eb7623df-b4e3-4272-9f92-42a9214f9f17,eb7623df-b4e3-4272-9f92-42a9214f9f17,1,0,a5f5bc90-e670-4ee7-95fe-067fe1b129f7,a5f5bc90-e670-4ee7-95fe-067fe1b129f7,1,0,f790f620-2247-4a04-b0ad-8aa591655948,f790f620-2247-4a04-b0ad-8aa591655948,1,0,6d9d9087-91ad-4368-9087-0af8f83fdc9e,6d9d9087-91ad-4368-9087-0af8f83fdc9e,1,0,61fdb27e-b449-40a7-8ecd-7e3e8ae3aa23,61fdb27e-b449-40a7-8ecd-7e3e8ae3aa23,1,0,c7e4e97f-fb85-4e95-bfdf-7706e867d89b,c7e4e97f-fb85-4e95-bfdf-7706e867d89b,1,0,b08fd921-c3d6-44eb-9401-fec5acab5d22,b08fd921-c3d6-44eb-9401-fec5acab5d22,1,0,f4f185af-5507-427c-b82b-515ea71f3fc1,f4f185af-5507-427c-b82b-515ea71f3fc1,1,0,1611855a-abf4-4269-aed3-3f78dce7bea5,1611855a-abf4-4269-aed3-3f78dce7bea5,1,0,c5bd277c-b258-43af-9c80-3e328b1581f5,c5bd277c-b258-43af-9c80-3e328b1581f5,1,0,96dac7e8-5113-4217-ac0a-fffea4acc410,96dac7e8-5113-4217-ac0a-fffea4acc410,1,0,d6fa2b86-1c3b-4c14-8a66-b6dbd40bca19,d6fa2b86-1c3b-4c14-8a66-b6dbd40bca19,1,0,f9cefef4-2182-42ca-93ef-b6a51d6555cc,f9cefef4-2182-42ca-93ef-b6a51d6555cc,1,0,71e1c7de-7367-424c-ae07-6ec04b408b83,71e1c7de-7367-424c-ae07-6ec04b408b83,1,0,b3956392-199c-4934-80d1-8cdab453d879,b3956392-199c-4934-80d1-8cdab453d879,1,0,5e26aeb7-617c-4983-b40d-5a61c77aa6a4,5e26aeb7-617c-4983-b40d-5a61c77aa6a4,1,0,d1bd7448-aa5f-43fc-9735-224f36960c3e,d1bd7448-aa5f-43fc-9735-224f36960c3e,1,0,94dbfc4c-d530-4fbd-b7cf-a58a56289b97,94dbfc4c-d530-4fbd-b7cf-a58a56289b97,1,0,6fa25c57-411d-4f9c-9c3e-c7ea1b1f7195,6fa25c57-411d-4f9c-9c3e-c7ea1b1f7195,1,0,1bfa15cf-222e-4e5b-beb7-7a50f8131799,1bfa15cf-222e-4e5b-beb7-7a50f8131799,1,0,8227471b-8ffb-4ba7-b4da-b21570582876,8227471b-8ffb-4ba7-b4da-b21570582876,1,0,ea7ab9fa-5119-4773-b17d-fc74c7479d3d,ea7ab9fa-5119-4773-b17d-fc74c7479d3d,1,0,3e0fe508-87fa-47af-a47f-c0630a186900,3e0fe508-87fa-47af-a47f-c0630a186900,1,0,09740271-b8a8-4949-a116-b64449d80036,09740271-b8a8-4949-a116-b64449d80036,1,0,c8fedc0b-33d6-46a5-b4fc-a3cd728f5fd7,c8fedc0b-33d6-46a5-b4fc-a3cd728f5fd7,1,0,25864028-1a53-4a8d-b6e4-189fa62c62f5,25864028-1a53-4a8d-b6e4-189fa62c62f5,1,0,e923beae-0bd8-4119-a802-fd6bfb729f10,e923beae-0bd8-4119-a802-fd6bfb729f10,1,0,ecb7dd1b-46d6-46b5-a51f-699f068ad6a0,ecb7dd1b-46d6-46b5-a51f-699f068ad6a0,1,0,67c1269a-79e6-44d9-9254-671c50fb3974,67c1269a-79e6-44d9-9254-671c50fb3974,1,0,5d455d2a-910d-48c7-bc74-ba5ad7855110,5d455d2a-910d-48c7-bc74-ba5ad7855110,1,0,7cf3feea-75e2-42cc-9c89-4a9182034910,7cf3feea-75e2-42cc-9c89-4a9182034910,1,0,930a0156-feb3-4e14-96a5-cd183a4891f4,930a0156-feb3-4e14-96a5-cd183a4891f4,1,0,cd5c52d4-f832-4a3b-b4c7-b4f3e0c98222,cd5c52d4-f832-4a3b-b4c7-b4f3e0c98222,1,0,e268a337-f576-4ec2-8a22-0500b79b2441,e268a337-f576-4ec2-8a22-0500b79b2441,1,0,eb33a8fa-75a6-4926-a025-05bc0abe4374,eb33a8fa-75a6-4926-a025-05bc0abe4374,1,0,c352da94-ea64-44b1-b2df-2c4ed9e2efc5,c352da94-ea64-44b1-b2df-2c4ed9e2efc5,1,0,6babd40a-8b8f-454b-b4a4-7cf2854f49a2,6babd40a-8b8f-454b-b4a4-7cf2854f49a2,1,0,bf480259-6e72-4ad1-ac41-0b0d41a75387,bf480259-6e72-4ad1-ac41-0b0d41a75387,1,0,a41f060a-f0f6-4940-960b-5056082b2c45,a41f060a-f0f6-4940-960b-5056082b2c45,1,0,5d45a926-513f-4bbc-a002-54a2db94b297,5d45a926-513f-4bbc-a002-54a2db94b297,1,0,73f5ce9e-d5a7-45c0-965a-8af1d776a98a,73f5ce9e-d5a7-45c0-965a-8af1d776a98a,1,0,073e14d4-5d43-428b-a9a7-985d173e94c7,073e14d4-5d43-428b-a9a7-985d173e94c7,1,0,61dc318a-c17d-402e-bf64-a0c0a63a1c93,61dc318a-c17d-402e-bf64-a0c0a63a1c93,1,0,c4b0c101-8cd9-441c-b94c-9dfa1ad58d45,c4b0c101-8cd9-441c-b94c-9dfa1ad58d45,1,0,2394775b-8910-4667-9c74-e1606e0b13bc,2394775b-8910-4667-9c74-e1606e0b13bc,1,0,43c88ffd-a036-4563-890b-bdc60180e841,43c88ffd-a036-4563-890b-bdc60180e841,1,0,af6e5e8e-6482-4820-a810-9e275ae039bf,af6e5e8e-6482-4820-a810-9e275ae039bf,1,0,fe3ccb8b-fee7-4825-a7bc-4b0fd432d382,fe3ccb8b-fee7-4825-a7bc-4b0fd432d382,1,0,7690620b-21d9-463a-8c22-60844927b4a0,7690620b-21d9-463a-8c22-60844927b4a0,1,0,e7f96a15-9f62-4a7f-85f3-06ba5d30b130,e7f96a15-9f62-4a7f-85f3-06ba5d30b130,1,0,b1db3255-38da-4684-b44e-4e2e9ee1dc35,b1db3255-38da-4684-b44e-4e2e9ee1dc35,1,0,4761f89b-7894-4dca-83b0-3be2d0828781,4761f89b-7894-4dca-83b0-3be2d0828781,1,0,573ff1f2-0ef5-4962-a0f6-eb84d430fe03,573ff1f2-0ef5-4962-a0f6-eb84d430fe03,1,0,7236d52f-9068-45ad-8b92-a7319e737e08,7236d52f-9068-45ad-8b92-a7319e737e08,1,0,3b0b708f-1b6c-4eb2-a2ad-86c088d9f1bf,3b0b708f-1b6c-4eb2-a2ad-86c088d9f1bf,1,0,9db23e96-d13a-4847-941a-462f64d0619d,9db23e96-d13a-4847-941a-462f64d0619d,1,0,7575fd54-c91b-4220-a2ef-2cf533f60426,7575fd54-c91b-4220-a2ef-2cf533f60426,1,0,1b751f19-bb0c-40c2-a5d1-068544c36c6b,1b751f19-bb0c-40c2-a5d1-068544c36c6b,1,0,26e2c83b-8873-4ad3-9c50-e94421473a43,26e2c83b-8873-4ad3-9c50-e94421473a43,1,0,f0b2ec05-8e01-4ccf-b927-671329a9013b,f0b2ec05-8e01-4ccf-b927-671329a9013b,1,0,ab442b11-2482-4f80-ac82-01966e0657ec,ab442b11-2482-4f80-ac82-01966e0657ec,1,0,14fe4d39-81a1-470e-9724-6642ce34ad89,14fe4d39-81a1-470e-9724-6642ce34ad89,1,0,457578ab-dfe2-4419-8d8a-64283b341f42,457578ab-dfe2-4419-8d8a-64283b341f42,1,0,67ef6671-f537-46bf-88e6-f5bcf34a17a4,67ef6671-f537-46bf-88e6-f5bcf34a17a4,1,0,de778ca7-feaf-4531-80ae-11a534c56928,de778ca7-feaf-4531-80ae-11a534c56928,1,0,0dfbe7a9-9c2e-4cbd-ac53-3b547fd73e91,0dfbe7a9-9c2e-4cbd-ac53-3b547fd73e91,1,0,0a76a84d-e883-477e-8b87-7bf984cdc1cf,0a76a84d-e883-477e-8b87-7bf984cdc1cf,1,0,2b6c4184-6d7d-48e5-bd4e-ad31e63398d6,2b6c4184-6d7d-48e5-bd4e-ad31e63398d6,1,0,86df8648-e195-4661-99ee-6052788eb276,86df8648-e195-4661-99ee-6052788eb276,1,0,a22cf6e9-1157-4be5-8d30-aa9bbf2b5e6e,a22cf6e9-1157-4be5-8d30-aa9bbf2b5e6e,1,0,35133725-9647-42dc-a76a-2e62b2918ac4,35133725-9647-42dc-a76a-2e62b2918ac4,1,0,c7b883dc-6c26-4eb5-bc19-7919ad57da27,c7b883dc-6c26-4eb5-bc19-7919ad57da27,1,0,7fc37008-c378-4a70-a9a9-07543c7248a6,7fc37008-c378-4a70-a9a9-07543c7248a6,1,0,6410853e-a17e-44db-b8cc-bfefd7c4d239,6410853e-a17e-44db-b8cc-bfefd7c4d239,1,0,df042e4e-01a6-4480-a9c5-c0d7a454bb41,df042e4e-01a6-4480-a9c5-c0d7a454bb41,1,0,5a4abb96-8a18-4249-9fbb-7270fe2ba25b,5a4abb96-8a18-4249-9fbb-7270fe2ba25b,1,0,6852c584-d989-418d-8d18-255492891ef0,6852c584-d989-418d-8d18-255492891ef0,1,0,6a4972f1-012c-438b-b1d3-81e7f6da3ddd,6a4972f1-012c-438b-b1d3-81e7f6da3ddd,1,0,ff7cfd75-e0ba-49a3-92e1-33ea26df46e2,ff7cfd75-e0ba-49a3-92e1-33ea26df46e2,1,0,bc37fc81-6a86-4e72-b75a-abb75bddc4b3,bc37fc81-6a86-4e72-b75a-abb75bddc4b3,1,0,ff830967-faa9-415f-aa6e-8d27779f91f8,ff830967-faa9-415f-aa6e-8d27779f91f8,1,0,34dd0dd6-880c-4a90-9b9c-0503c8dc4ef3,34dd0dd6-880c-4a90-9b9c-0503c8dc4ef3,1,0,88618d0f-97af-4055-a490-561d4b8065a7,88618d0f-97af-4055-a490-561d4b8065a7,1,0,faffa228-4f4f-43f6-99b9-ed8c93af85c0,faffa228-4f4f-43f6-99b9-ed8c93af85c0,1,0,7b816ca0-ba60-4637-8348-23b26ad23e3f,7b816ca0-ba60-4637-8348-23b26ad23e3f,1,0,814a6db4-a43c-44e6-ac44-11983642c5ad,814a6db4-a43c-44e6-ac44-11983642c5ad,1,0,0bd74786-e018-4a66-b994-cdb439c57657,0bd74786-e018-4a66-b994-cdb439c57657,1,0,f50fcf2b-90bb-4d73-9fda-f4575e7682fa,f50fcf2b-90bb-4d73-9fda-f4575e7682fa,1,0,a01b8078-a6cd-4184-9317-2f1e0bcefb3a,a01b8078-a6cd-4184-9317-2f1e0bcefb3a,1,0,54a279b1-9e6a-49b0-8fda-e2807cf3a2a3,54a279b1-9e6a-49b0-8fda-e2807cf3a2a3,1,0,09502176-c53d-4525-b8ed-32d0a2e21a5d,09502176-c53d-4525-b8ed-32d0a2e21a5d,1,0,75ad984e-d41f-4591-b207-e8a4b05757a7,75ad984e-d41f-4591-b207-e8a4b05757a7,1,0,3f020f90-7aeb-4b21-ad71-4572ac796d4c,3f020f90-7aeb-4b21-ad71-4572ac796d4c,1,0,759e2ba0-2941-4cc1-8409-50b8a3620058,759e2ba0-2941-4cc1-8409-50b8a3620058,1,0,491cf25d-091e-4e09-b145-92d7073326cf,491cf25d-091e-4e09-b145-92d7073326cf,1,0,9b9d4d10-a4f2-4b0d-a63a-15d55f30fb26,9b9d4d10-a4f2-4b0d-a63a-15d55f30fb26,1,0,579f18ce-a7ce-4eb8-a4e3-a134a9a27bc1,579f18ce-a7ce-4eb8-a4e3-a134a9a27bc1,1,0,e7d05eca-2fdd-4cbb-8e2c-537525326ffe,e7d05eca-2fdd-4cbb-8e2c-537525326ffe,1,0,900bc96e-fbcc-473e-970c-96f561420f8e,900bc96e-fbcc-473e-970c-96f561420f8e,1,0,c3bb7b85-1e90-45c4-9bc1-39bbd253d498,c3bb7b85-1e90-45c4-9bc1-39bbd253d498,1,0,21d5a0b0-9a2b-4989-a50a-781645513179,21d5a0b0-9a2b-4989-a50a-781645513179,1,0,3255033a-e922-412e-a825-a3e8bd284703,3255033a-e922-412e-a825-a3e8bd284703,1,0,1aa65c35-e8a0-4c8a-90a3-48b62314cb19,1aa65c35-e8a0-4c8a-90a3-48b62314cb19,1,0,f250f992-ad5a-4dab-ad38-240604adb0c4,f250f992-ad5a-4dab-ad38-240604adb0c4,1,0,c4a7efca-f27d-4fdd-86ab-cc22a2a96fb2,c4a7efca-f27d-4fdd-86ab-cc22a2a96fb2,1,0,e63671f6-c96d-4ea4-8300-af7dbd0d016f,e63671f6-c96d-4ea4-8300-af7dbd0d016f,1,0,2c511469-0df6-470f-a808-decb275e8b1a,2c511469-0df6-470f-a808-decb275e8b1a,1,0,1bbb289c-a78a-47d0-b082-c2225ae1dc83,1bbb289c-a78a-47d0-b082-c2225ae1dc83,1,0,99b40f9f-f8f1-4779-8afc-59d30612f3d6,99b40f9f-f8f1-4779-8afc-59d30612f3d6,1,0,6131e875-3254-4281-9343-9118564c5451,6131e875-3254-4281-9343-9118564c5451,1,0,69622ff8-8a23-42fc-b63d-5097e3f636ac,69622ff8-8a23-42fc-b63d-5097e3f636ac,1,0,b88450cc-0dd4-4881-b3d9-a9e4e07e08f5,b88450cc-0dd4-4881-b3d9-a9e4e07e08f5,1,0,ef326bd8-1570-455e-ae8c-063b5578ad15,ef326bd8-1570-455e-ae8c-063b5578ad15,1,0,efd4e0a3-2f98-40ef-8089-c853cd588fa6,efd4e0a3-2f98-40ef-8089-c853cd588fa6,1,0,3713c76d-6ff7-4d45-9f15-d061bdf7dee2,3713c76d-6ff7-4d45-9f15-d061bdf7dee2,1,0,cb6d4979-2d70-4ceb-af08-deb2b19daf14,cb6d4979-2d70-4ceb-af08-deb2b19daf14,1,0,bf30b754-84fb-4104-b52b-a4f7df6fba12,bf30b754-84fb-4104-b52b-a4f7df6fba12,1,0,7bbd0835-b3e9-40cb-a424-670828b60bbb,7bbd0835-b3e9-40cb-a424-670828b60bbb,1,0,3e2138ea-48f9-4a60-8f22-53933bea49db,3e2138ea-48f9-4a60-8f22-53933bea49db,1,0,16bda2eb-eab8-4230-b89f-517fb943e009,16bda2eb-eab8-4230-b89f-517fb943e009,1,0,00964512-297f-4b8b-8def-8e4fc0eba991,00964512-297f-4b8b-8def-8e4fc0eba991,1,0,4185fea3-baba-4ba5-8019-9023b3011d4d,4185fea3-baba-4ba5-8019-9023b3011d4d,1,0,ea790035-92d6-445e-9fa3-08e565634d2b,ea790035-92d6-445e-9fa3-08e565634d2b,1,0,cce8900a-51eb-487d-b380-227d1b9d3943,cce8900a-51eb-487d-b380-227d1b9d3943,1,0,c043c36c-90c6-483b-bc20-7c2d85109b90,c043c36c-90c6-483b-bc20-7c2d85109b90,1,0,a1e619a6-3bb2-468d-a225-c88ccc3b71f5,a1e619a6-3bb2-468d-a225-c88ccc3b71f5,1,0,91d2d40a-c271-412c-b344-1fc98b94ba21,91d2d40a-c271-412c-b344-1fc98b94ba21,1,0,7ce47046-aee8-4809-bac9-a98930a844e1,7ce47046-aee8-4809-bac9-a98930a844e1,1,0,f480b8b9-ecec-4207-a0aa-12c5be4c2250,f480b8b9-ecec-4207-a0aa-12c5be4c2250,1,0,32717d25-6644-4903-8950-03e4c9b1a8fe,32717d25-6644-4903-8950-03e4c9b1a8fe,1,0,3644d8f3-db88-4fce-a851-39c115acfe03,3644d8f3-db88-4fce-a851-39c115acfe03,1,0,4653da74-34b2-47b9-ad88-efd761d6f1e9,4653da74-34b2-47b9-ad88-efd761d6f1e9,1,0,abf8a23d-45c3-4feb-8df2-279b709d7722,abf8a23d-45c3-4feb-8df2-279b709d7722,1,0,b0cd056f-c601-4d07-89c4-f7137b88bab6,b0cd056f-c601-4d07-89c4-f7137b88bab6,1,0,5cc3ebef-8f09-443c-b131-e5c3a9f7d260,5cc3ebef-8f09-443c-b131-e5c3a9f7d260,1,0,b9a21b8f-8a95-4c86-9ab2-ee6c90164e18,b9a21b8f-8a95-4c86-9ab2-ee6c90164e18,1,0,96ed4d39-3bdc-480f-af86-218f22000514,96ed4d39-3bdc-480f-af86-218f22000514,1,0,c9f72e74-22ac-4dc0-8462-0aa7819a9342,c9f72e74-22ac-4dc0-8462-0aa7819a9342,1,0,ca650484-293f-403a-b916-5ec7c3a8969e,ca650484-293f-403a-b916-5ec7c3a8969e,1,0,b71e706d-623e-4039-9bf0-24f151d861d8,b71e706d-623e-4039-9bf0-24f151d861d8,1,0,528f4823-33d8-49bd-a8fe-756a08a107c2,528f4823-33d8-49bd-a8fe-756a08a107c2,1,0,4869095b-b76e-45ca-b77d-0e74f59673f0,4869095b-b76e-45ca-b77d-0e74f59673f0,1,0,bcca2442-448b-4760-923b-cc9621ecb441,bcca2442-448b-4760-923b-cc9621ecb441,1,0,ba7657df-429a-4737-b787-19ef09fdebb2,ba7657df-429a-4737-b787-19ef09fdebb2,1,0,867d72be-f406-45a5-a511-b90459683f11,867d72be-f406-45a5-a511-b90459683f11,1,0,88b22e62-c144-401f-9635-3fb4d914772e,88b22e62-c144-401f-9635-3fb4d914772e,1,0,efeb2914-6604-403a-a11e-5cb995ab2bc9,efeb2914-6604-403a-a11e-5cb995ab2bc9,1,0,4c2dd77f-adc7-4f11-8e8f-1f8e41e6c84b,4c2dd77f-adc7-4f11-8e8f-1f8e41e6c84b,1,0,8f2b8a8e-4cd3-45e3-89ae-1cc4bd0ff30a,8f2b8a8e-4cd3-45e3-89ae-1cc4bd0ff30a,1,0,24b3aecc-f92f-475b-862e-83dd6d6aa2b9,24b3aecc-f92f-475b-862e-83dd6d6aa2b9,1,0,8525d945-08aa-4928-8dca-4e172ea94328,8525d945-08aa-4928-8dca-4e172ea94328,1,0,de506523-241a-4845-9259-37066afbf16a,de506523-241a-4845-9259-37066afbf16a,1,0,0510206f-eef0-4a5e-aeb7-d53c26d34adb,0510206f-eef0-4a5e-aeb7-d53c26d34adb,1,0,e616e007-43e7-4740-a083-b85f5435718a,e616e007-43e7-4740-a083-b85f5435718a,1,0,82be906c-bb06-40ea-b908-54574b0b4848,82be906c-bb06-40ea-b908-54574b0b4848,1,0,727da5b1-e054-4832-8e44-f5d5e56f52e5,727da5b1-e054-4832-8e44-f5d5e56f52e5,1,0,6135ffd5-1510-4aa8-8bf5-d7c0ca624414,6135ffd5-1510-4aa8-8bf5-d7c0ca624414,1,0,1f8cb390-2cbb-4a88-96ee-b31695b73d78,1f8cb390-2cbb-4a88-96ee-b31695b73d78,1,0,6feaad7c-9680-4341-b215-14581e2e2b37,6feaad7c-9680-4341-b215-14581e2e2b37,1,0,d5656a92-adfb-4733-830d-2b1565798b1f,d5656a92-adfb-4733-830d-2b1565798b1f,1,0,2ee0d56b-cd7c-42db-8fb6-c1567fe1967d,2ee0d56b-cd7c-42db-8fb6-c1567fe1967d,1,0,b0f6ea83-2849-4151-930d-692866919db3,b0f6ea83-2849-4151-930d-692866919db3,1,0,0abf70e0-0d81-4d85-a288-a2134da5fbf1,0abf70e0-0d81-4d85-a288-a2134da5fbf1,1,0,392fc734-4251-4d28-bfd1-d6f2f33ec0e5,392fc734-4251-4d28-bfd1-d6f2f33ec0e5,1,0,f66cb2da-3b3c-481f-823a-506f8290f619,f66cb2da-3b3c-481f-823a-506f8290f619,1,0,b80ddaf8-c5c3-4bde-98ed-74a1a0446f38,b80ddaf8-c5c3-4bde-98ed-74a1a0446f38,1,0,e4f16dbf-609d-4a34-a0bf-b20e5925c1ba,e4f16dbf-609d-4a34-a0bf-b20e5925c1ba,1,0,0bdcf045-5132-4a68-839c-a30515dc569e,0bdcf045-5132-4a68-839c-a30515dc569e,1,0,683861f9-9a5f-47db-8b03-959f839d5a3a,683861f9-9a5f-47db-8b03-959f839d5a3a,1,0,56fda0b0-c0ae-4ea2-8f77-df22a9ca3e87,56fda0b0-c0ae-4ea2-8f77-df22a9ca3e87,1,0,125be5bf-f410-451d-aa96-22fabc6a4d8a,125be5bf-f410-451d-aa96-22fabc6a4d8a,1,0,e5017fd0-ecea-48ae-99c8-7fc8c4f1d72b,e5017fd0-ecea-48ae-99c8-7fc8c4f1d72b,1,0,0a46166a-4562-4a50-b139-39dbe8a1fc84,0a46166a-4562-4a50-b139-39dbe8a1fc84,1,0,9aa6d1d1-75ad-40e4-b01f-274826c0c9da,9aa6d1d1-75ad-40e4-b01f-274826c0c9da,1,0,6ce64d65-f710-4d3f-a85f-26ce6915451e,6ce64d65-f710-4d3f-a85f-26ce6915451e,1,0,33eb9806-e34f-42a0-9825-3ff2de92c503,33eb9806-e34f-42a0-9825-3ff2de92c503,1,0,4905fcc5-9bd7-4b1b-b51d-882b11ee3d74,4905fcc5-9bd7-4b1b-b51d-882b11ee3d74,1,0,bcb58235-7cd7-4c15-a1eb-194ee38259e6,bcb58235-7cd7-4c15-a1eb-194ee38259e6,1,0,e19aefe7-634d-4218-8d40-75802d1691e0,e19aefe7-634d-4218-8d40-75802d1691e0,1,0,b885dbb2-6e18-46a6-929c-3d6d392343ad,b885dbb2-6e18-46a6-929c-3d6d392343ad,1,0,d31e24cf-7493-45dc-ba81-3a00618e53bc,d31e24cf-7493-45dc-ba81-3a00618e53bc,1,0,03f32b08-1b71-47cb-ba1d-965037df4d64,03f32b08-1b71-47cb-ba1d-965037df4d64,1,0,4ec26e3d-6c38-4c90-9f91-c2235f8b4154,4ec26e3d-6c38-4c90-9f91-c2235f8b4154,1,0,ce2a8ff8-94fd-4ce2-9caa-4711e9b79ee9,ce2a8ff8-94fd-4ce2-9caa-4711e9b79ee9,1,0,f942d212-9be0-4d80-84b6-5b63070e33e4,f942d212-9be0-4d80-84b6-5b63070e33e4,1,0,bea6bbc1-c1e4-4306-a0ca-efd47b9a8b23,bea6bbc1-c1e4-4306-a0ca-efd47b9a8b23,1,0,19a0b881-302e-4d0e-ace0-29a9d8379a48,19a0b881-302e-4d0e-ace0-29a9d8379a48,1,0,64c91eaa-084f-4801-8dbf-4e075c689c2b,64c91eaa-084f-4801-8dbf-4e075c689c2b,1,0,c01bb4de-06f7-4c3d-8ea3-d861f89948c0,c01bb4de-06f7-4c3d-8ea3-d861f89948c0,1,0,3c8c4f7b-d267-422c-becd-b6e8a9d6fe49,3c8c4f7b-d267-422c-becd-b6e8a9d6fe49,1,0,3aa12805-823a-439b-b039-fb9940aee312,3aa12805-823a-439b-b039-fb9940aee312,1,0,87d53573-f266-4b74-94af-041ae4b6518f,87d53573-f266-4b74-94af-041ae4b6518f,1,0,65a8545a-e73c-4c6a-8f87-7734d7ff5c03,65a8545a-e73c-4c6a-8f87-7734d7ff5c03,1,0,801cf1f7-2c65-4126-a3e9-b66abfdde67a,801cf1f7-2c65-4126-a3e9-b66abfdde67a,1,0,b991eefb-0d97-48a1-89c8-3d83b3b8d97a,b991eefb-0d97-48a1-89c8-3d83b3b8d97a,1,0,29c2bc01-8838-4459-8ac2-79862aa1dbc9,29c2bc01-8838-4459-8ac2-79862aa1dbc9,1,0,ad556c33-6811-48b4-ae90-57700a4d3fd6,ad556c33-6811-48b4-ae90-57700a4d3fd6,1,0,6e0833f4-3b57-4a5f-810f-9e2a492335df,6e0833f4-3b57-4a5f-810f-9e2a492335df,1,0,78ccdf33-9c2b-4931-afa3-5d652f2bcbc5,78ccdf33-9c2b-4931-afa3-5d652f2bcbc5,1,0,977bc9d8-9843-4343-85af-11a3d91f9966,977bc9d8-9843-4343-85af-11a3d91f9966,1,0,02ff9ef0-1057-4bc2-b745-1c2ae41835e3,02ff9ef0-1057-4bc2-b745-1c2ae41835e3,1,0,5a86abe7-db6c-43a3-9bcd-9b3647519c6b,5a86abe7-db6c-43a3-9bcd-9b3647519c6b,1,0,a6582448-734d-4a4c-a32c-c4755ca1bc93,a6582448-734d-4a4c-a32c-c4755ca1bc93,1,0,6a0b9a91-51a0-4ef4-b630-4f1b5a1da2b7,6a0b9a91-51a0-4ef4-b630-4f1b5a1da2b7,1,0,53327cc4-22b0-40f9-bae7-db483f85901c,53327cc4-22b0-40f9-bae7-db483f85901c,1,0,098d904d-95c9-459e-86d0-357ba9a40191,098d904d-95c9-459e-86d0-357ba9a40191,1,0,e9ab9d00-6e42-439b-8efc-fcacf727016d,e9ab9d00-6e42-439b-8efc-fcacf727016d,1,0,2d58033f-e15d-4a91-8165-dd311025c7c4,2d58033f-e15d-4a91-8165-dd311025c7c4,1,0,49cb3a36-90b3-4154-b571-265fc5cee21e,49cb3a36-90b3-4154-b571-265fc5cee21e,1,0,10472d2c-18ca-49b0-bd9d-c750db8498c5,10472d2c-18ca-49b0-bd9d-c750db8498c5,1,0,8efe5daf-272d-4255-b5c4-66dca7463b50,8efe5daf-272d-4255-b5c4-66dca7463b50,1,0,65af25a6-f699-4c40-b13e-3b7dff3f16fe,65af25a6-f699-4c40-b13e-3b7dff3f16fe,1,0,c4d2486d-289c-4812-b223-5ccfcd7f29e3,c4d2486d-289c-4812-b223-5ccfcd7f29e3,1,0,f9229c3e-4a47-49a4-8b14-908218012ff7,f9229c3e-4a47-49a4-8b14-908218012ff7,1,0,7c8b9203-2808-4a78-a2b1-b7a71b4f13f6,7c8b9203-2808-4a78-a2b1-b7a71b4f13f6,1,0,b9743978-ba6d-4892-bb32-f24d4a47dd50,b9743978-ba6d-4892-bb32-f24d4a47dd50,1,0,c43accb9-f33d-437f-b305-0595f8fe3032,c43accb9-f33d-437f-b305-0595f8fe3032,1,0,084a398b-836e-424c-af93-22aa39d5a15a,084a398b-836e-424c-af93-22aa39d5a15a,1,0,7da57c89-af2c-445a-96f7-39250f70306f,7da57c89-af2c-445a-96f7-39250f70306f,1,0,b5b94d94-25f7-4cfa-b1e9-6009fb848763,b5b94d94-25f7-4cfa-b1e9-6009fb848763,1,0,a2accf54-5966-42e8-ab2e-e56e415963ee,a2accf54-5966-42e8-ab2e-e56e415963ee,1,0,d8eb5329-5900-4b5d-b45e-458513dddfef,d8eb5329-5900-4b5d-b45e-458513dddfef,1,0,6d521e58-24a3-4f19-b4b0-dff84f7ca86b,6d521e58-24a3-4f19-b4b0-dff84f7ca86b,1,0,8c413fa5-9e24-4b81-aa55-0e78c5e3e20f,8c413fa5-9e24-4b81-aa55-0e78c5e3e20f,1,0,a4322f22-7de0-4018-8e06-9f1aa7cf0c07,a4322f22-7de0-4018-8e06-9f1aa7cf0c07,1,0,eaaed107-69d4-4963-be83-74519e331715,eaaed107-69d4-4963-be83-74519e331715,1,0,38cddf96-8703-4396-8c73-47fb22828a48,38cddf96-8703-4396-8c73-47fb22828a48,1,0,2c2cb793-0177-4983-91ca-9c292c5b10f1,2c2cb793-0177-4983-91ca-9c292c5b10f1,1,0,2a2e7f51-a4e5-48ec-b969-b1fca18ba9b5,2a2e7f51-a4e5-48ec-b969-b1fca18ba9b5,1,0,221fa473-3327-44e6-a033-6fdfd2be713c,221fa473-3327-44e6-a033-6fdfd2be713c,1,0,7a5973f0-7e29-44af-8e7b-70af71f704a4,7a5973f0-7e29-44af-8e7b-70af71f704a4,1,0,2b2bf0f7-0946-4492-bba0-27f007a70e64,2b2bf0f7-0946-4492-bba0-27f007a70e64,1,0,22c9a703-5ed3-4156-8fa6-476b1c1452f1,22c9a703-5ed3-4156-8fa6-476b1c1452f1,1,0,8be10d88-8c37-4444-9c89-6cbbe9913bda,8be10d88-8c37-4444-9c89-6cbbe9913bda,1,0,27089e8e-2c75-431c-b808-5d4dcba3cdca,27089e8e-2c75-431c-b808-5d4dcba3cdca,1,0,9ab3980e-a480-4f90-a8cc-bde99d5ace35,9ab3980e-a480-4f90-a8cc-bde99d5ace35,1,0,ec928563-6e35-4b84-b477-90d2481cec1c,ec928563-6e35-4b84-b477-90d2481cec1c,1,0,5d3e9678-20fe-4128-867a-3f7addaa7831,5d3e9678-20fe-4128-867a-3f7addaa7831,1,0,bb878f73-8a0f-459a-9076-ce57fe7957dc,bb878f73-8a0f-459a-9076-ce57fe7957dc,1,0,cb1d4a41-20a9-4d76-8798-d47d8858bff1,cb1d4a41-20a9-4d76-8798-d47d8858bff1,1,0,a2b4110b-4d9c-40fd-ab46-bfa08d2eb993,a2b4110b-4d9c-40fd-ab46-bfa08d2eb993,1,0,4f262b7f-927e-45f2-ad90-9d5e1b3155d1,4f262b7f-927e-45f2-ad90-9d5e1b3155d1,1,0,9f4b8e36-83ff-4694-8540-b5f47b18395f,9f4b8e36-83ff-4694-8540-b5f47b18395f,1,0,b4c026eb-4271-4366-b529-1cdfe2874563,b4c026eb-4271-4366-b529-1cdfe2874563,1,0,314b0da2-24d3-48cc-8532-d36c45eb3bf8,314b0da2-24d3-48cc-8532-d36c45eb3bf8,1,0,2e3ac3fb-9f0e-463f-95c2-9f661ce2e015,2e3ac3fb-9f0e-463f-95c2-9f661ce2e015,1,0,4077e700-ec20-4afa-8155-bf7e516a70cb,4077e700-ec20-4afa-8155-bf7e516a70cb,1,0,5198c6db-2100-4902-82c8-85c8ea555e78,5198c6db-2100-4902-82c8-85c8ea555e78,1,0,b99f2a63-54e8-490b-a0a4-1941fbc38b3f,b99f2a63-54e8-490b-a0a4-1941fbc38b3f,1,0,f0b1e9f4-2e07-44e6-88d2-c11457135781,f0b1e9f4-2e07-44e6-88d2-c11457135781,1,0,e010c0f9-f770-4fdc-8607-50838c0262ef,e010c0f9-f770-4fdc-8607-50838c0262ef,1,0,f935399f-3554-4c08-b0a6-eba13074e1b7,f935399f-3554-4c08-b0a6-eba13074e1b7,1,0,10008125-3aeb-4912-8ad6-d92d283ea09a,10008125-3aeb-4912-8ad6-d92d283ea09a,1,0,765f9584-fefa-4695-b130-dd54c3b0d79d,765f9584-fefa-4695-b130-dd54c3b0d79d,1,0,dd050ca0-8335-4654-ab5c-7babcb4824ef,dd050ca0-8335-4654-ab5c-7babcb4824ef,1,0,706cbf55-626d-4cab-b589-a2464368f6c1,706cbf55-626d-4cab-b589-a2464368f6c1,1,0,d22a0a50-220d-459e-a23a-39730a1e67c4,d22a0a50-220d-459e-a23a-39730a1e67c4,1,0,2c1c9284-ba8b-4282-a89c-429f02ea41f6,2c1c9284-ba8b-4282-a89c-429f02ea41f6,1,0,8c241467-76f7-4161-a8a1-5da4a6576b75,8c241467-76f7-4161-a8a1-5da4a6576b75,1,0,1d3b9eff-5d0b-437b-932f-0ec466e092b2,1d3b9eff-5d0b-437b-932f-0ec466e092b2,1,0,fd7e5257-024c-46de-9ff3-edd302fadba5,fd7e5257-024c-46de-9ff3-edd302fadba5,1,0,a4168057-d99f-4b55-b762-214f95ae3a30,a4168057-d99f-4b55-b762-214f95ae3a30,1,0,ab4fe549-1c07-42d9-b412-8b89ed115591,ab4fe549-1c07-42d9-b412-8b89ed115591,1,0,0335804e-efe5-4fb9-9ae9-2ddca73d77f3,0335804e-efe5-4fb9-9ae9-2ddca73d77f3,1,0,b49c589d-b45d-4aff-8899-72cfe433e9a6,b49c589d-b45d-4aff-8899-72cfe433e9a6,1,0,f71a8d47-6a6c-4b7e-90b3-5b7a3be3ccd3,f71a8d47-6a6c-4b7e-90b3-5b7a3be3ccd3,1,0,273ad3f7-c645-434d-93b0-e832134f3043,273ad3f7-c645-434d-93b0-e832134f3043,1,0,d320803b-1de4-4e66-b455-0afe39be5c41,d320803b-1de4-4e66-b455-0afe39be5c41,1,0,67e85b9a-a138-49ea-b474-04475f0f8c90,67e85b9a-a138-49ea-b474-04475f0f8c90,1,0,5d990585-02dd-4a13-8dfa-920df7d1dbb0,5d990585-02dd-4a13-8dfa-920df7d1dbb0,1,0,788a98e0-194f-466c-b4fa-bafd527aae26,788a98e0-194f-466c-b4fa-bafd527aae26,1,0,07820e9e-9d6b-4c37-909e-90dbd33e30c0,07820e9e-9d6b-4c37-909e-90dbd33e30c0,1,0,364218e0-87ba-4008-a3e3-e2351a5e04b8,364218e0-87ba-4008-a3e3-e2351a5e04b8,1,0,143f6db9-a4dc-4039-90d0-6161394a3e2f,143f6db9-a4dc-4039-90d0-6161394a3e2f,1,0,97e853dc-065f-4c6d-84cb-3d3aff367b22,97e853dc-065f-4c6d-84cb-3d3aff367b22,1,0,2f1fdf47-2627-496f-9e1f-77019abb2104,2f1fdf47-2627-496f-9e1f-77019abb2104,1,0,c996532a-8795-4136-8a40-9bb4b263277c,c996532a-8795-4136-8a40-9bb4b263277c,1,0,64c77788-fc49-4979-8163-949a891bd8b7,64c77788-fc49-4979-8163-949a891bd8b7,1,0,c39750ca-e33f-40c2-b830-119423d9a2ae,c39750ca-e33f-40c2-b830-119423d9a2ae,1,0,9372ff6b-27b6-48f3-a2a2-762e7c485766,9372ff6b-27b6-48f3-a2a2-762e7c485766,1,0,f454595a-4a3d-451b-8e8b-b17aa8314591,f454595a-4a3d-451b-8e8b-b17aa8314591,1,0,d3b7f89e-eb04-404e-bcc1-1d3557fb8d1a,d3b7f89e-eb04-404e-bcc1-1d3557fb8d1a,1,0,442f9d7b-ae8f-4074-8ece-d5aa1c66e35c,442f9d7b-ae8f-4074-8ece-d5aa1c66e35c,1,0,bc708da8-7fc6-4da1-8129-9ef6a86667af,bc708da8-7fc6-4da1-8129-9ef6a86667af,1,0,061842fe-4077-4d6e-aefe-de79409da730,061842fe-4077-4d6e-aefe-de79409da730,1,0,86249619-8981-4fc4-85fc-ce30e4b9d542,86249619-8981-4fc4-85fc-ce30e4b9d542,1,0,da6e4bff-9835-4b92-b62b-291a5d6c86fe,da6e4bff-9835-4b92-b62b-291a5d6c86fe,1,0,98aa8a80-29fa-4a54-8d0e-90d413d63da1,98aa8a80-29fa-4a54-8d0e-90d413d63da1,1,0,60af0c11-852e-4b45-afb7-251d75a87150,60af0c11-852e-4b45-afb7-251d75a87150,1,0,37e81463-a558-4b03-b0e4-82ac0e99c80c,37e81463-a558-4b03-b0e4-82ac0e99c80c,1,0,fd9177e4-1277-4f77-be3e-07e169fad918,fd9177e4-1277-4f77-be3e-07e169fad918,1,0,2177e3f0-0689-43ec-b79a-52d95f59a75a,2177e3f0-0689-43ec-b79a-52d95f59a75a,1,0,b7cfe3ee-1d3c-4c04-993a-014e9040e7ac,b7cfe3ee-1d3c-4c04-993a-014e9040e7ac,1,0,8be35c43-32e6-418d-b3d6-e53ef56babb7,8be35c43-32e6-418d-b3d6-e53ef56babb7,1,0,3e4f5fd0-af15-41ae-896e-458ce9fb7e4d,3e4f5fd0-af15-41ae-896e-458ce9fb7e4d,1,0,935d01e1-232b-480e-a6bf-c21c617c6348,935d01e1-232b-480e-a6bf-c21c617c6348,1,0,9bc7cc99-1237-4f9c-8a4e-f3ab459186ef,9bc7cc99-1237-4f9c-8a4e-f3ab459186ef,1,0,05c702a1-2c74-45d5-b2ee-fdd795b0945a,05c702a1-2c74-45d5-b2ee-fdd795b0945a,1,0,5ede72fd-2510-4c06-b625-be740bb04e29,5ede72fd-2510-4c06-b625-be740bb04e29,1,0,17f37228-b0cd-420d-bc82-b18dc04c03c9,17f37228-b0cd-420d-bc82-b18dc04c03c9,1,0,3f9b66ea-7db2-434d-8e3b-00df8eb11dbd,3f9b66ea-7db2-434d-8e3b-00df8eb11dbd,1,0,d43fb14b-2051-4ba5-8379-af6996e603b3,d43fb14b-2051-4ba5-8379-af6996e603b3,1,0,cfb01fef-b70d-41ac-82b9-d6d2e9644388,cfb01fef-b70d-41ac-82b9-d6d2e9644388,1,0,91dee0d3-14b5-4aa1-9058-8f949e7df923,91dee0d3-14b5-4aa1-9058-8f949e7df923,1,0,3fadaeb7-2c41-42a4-bfa8-c585602b1028,3fadaeb7-2c41-42a4-bfa8-c585602b1028,1,0,171a0dfc-032e-4eaf-81a2-e5e0dfde8d56,171a0dfc-032e-4eaf-81a2-e5e0dfde8d56,1,0,083c709b-ed8c-47e4-a190-421e14259e73,083c709b-ed8c-47e4-a190-421e14259e73,1,0,b98dacc7-29e1-426b-a664-0a988f18186c,b98dacc7-29e1-426b-a664-0a988f18186c,1,0,d678856d-6e7c-443f-a6e3-350bbe8af659,d678856d-6e7c-443f-a6e3-350bbe8af659,1,0,d0979762-22ce-41be-b7a4-5e9ac149d94b,d0979762-22ce-41be-b7a4-5e9ac149d94b,1,0,ae23e70c-479e-47ad-9bfa-58560a903410,ae23e70c-479e-47ad-9bfa-58560a903410,1,0,c0d83781-bbda-43f7-bf0e-5defa3d47143,c0d83781-bbda-43f7-bf0e-5defa3d47143,1,0,21fa5fdd-acbc-403b-9acb-bbf95284bd20,21fa5fdd-acbc-403b-9acb-bbf95284bd20,1,0,576a01e3-4d6d-4241-a3c4-7661ba129bcb,576a01e3-4d6d-4241-a3c4-7661ba129bcb,1,0,9f7290dd-19f4-4163-9795-fe562e84f06d,9f7290dd-19f4-4163-9795-fe562e84f06d,1,0,c3b5c81f-b787-4f63-8cba-79def0921477,c3b5c81f-b787-4f63-8cba-79def0921477,1,0,1f0cb3d4-1344-451b-a257-be3cd854acfd,1f0cb3d4-1344-451b-a257-be3cd854acfd,1,0,0131fe59-ce47-48b7-8f7e-1544bf0fa031,0131fe59-ce47-48b7-8f7e-1544bf0fa031,1,0,c8b0a1be-97c6-4a16-b1dd-31901ac61cdc,c8b0a1be-97c6-4a16-b1dd-31901ac61cdc,1,0,372150e2-526e-4424-8c54-e4b16bdd25b5,372150e2-526e-4424-8c54-e4b16bdd25b5,1,0,2f9c347d-ee82-49f2-a5eb-97f55374856f,2f9c347d-ee82-49f2-a5eb-97f55374856f,1,0,752dc569-cf84-42d7-911d-49d455f7214e,752dc569-cf84-42d7-911d-49d455f7214e,1,0,fecab2b9-27e1-44d6-9082-79c3569b7477,fecab2b9-27e1-44d6-9082-79c3569b7477,1,0,07ae092f-8517-47b7-b54c-5dbcb6506929,07ae092f-8517-47b7-b54c-5dbcb6506929,1,0,db4c25bb-d199-43ec-833d-82972de04a41,db4c25bb-d199-43ec-833d-82972de04a41,1,0,43d19685-0794-41f2-9171-bf565133718d,43d19685-0794-41f2-9171-bf565133718d,1,0,b68c15c4-4966-4f13-8912-2d479b65089a,b68c15c4-4966-4f13-8912-2d479b65089a,1,0,8f6770c2-654c-4cc7-8ed5-15b5b2e3109a,8f6770c2-654c-4cc7-8ed5-15b5b2e3109a,1,0,a89ee622-6942-411a-8566-f03d139c9e5b,a89ee622-6942-411a-8566-f03d139c9e5b,1,0,f87e3935-dae1-4192-b6a7-05e3c700c590,f87e3935-dae1-4192-b6a7-05e3c700c590,1,0,ee635706-6ee2-4956-8d58-a235f64687f6,ee635706-6ee2-4956-8d58-a235f64687f6,1,0,a5a40ca7-d665-420b-a516-1355019d6901,a5a40ca7-d665-420b-a516-1355019d6901,1,0,198ea989-5001-47ac-86b8-aa2585a5f7d7,198ea989-5001-47ac-86b8-aa2585a5f7d7,1,0,4abe448b-a225-4ac2-8cc9-c3c6c0e9b1ac,4abe448b-a225-4ac2-8cc9-c3c6c0e9b1ac,1,0,fb84c5f7-11da-4b17-979e-41e27a74e789,fb84c5f7-11da-4b17-979e-41e27a74e789,1,0,adf9304c-ccf8-492e-95b1-0754764586a2,adf9304c-ccf8-492e-95b1-0754764586a2,1,0,fd175112-ec8f-4088-9b21-d8135056f0c5,fd175112-ec8f-4088-9b21-d8135056f0c5,1,0,ddd82a66-1eda-409f-b6c0-e22c4bd2c1b7,ddd82a66-1eda-409f-b6c0-e22c4bd2c1b7,1,0,6e0fa31a-5081-4fc7-b5ec-563c6e4ad001,6e0fa31a-5081-4fc7-b5ec-563c6e4ad001,1,0,52606e9e-1f82-414c-897f-f3ca923fa480,52606e9e-1f82-414c-897f-f3ca923fa480,1,0,eefa26d9-bb15-4911-8772-99e49a20c57d,eefa26d9-bb15-4911-8772-99e49a20c57d,1,0,5068e74a-10e7-4035-97b0-14c91566defe,5068e74a-10e7-4035-97b0-14c91566defe,1,0,df76a1b7-312a-4e77-bac1-79befadb4495,df76a1b7-312a-4e77-bac1-79befadb4495,1,0,ab39fad8-1039-491e-982a-c49637770ec0,ab39fad8-1039-491e-982a-c49637770ec0,1,0,7d93a6ba-3ca7-45ab-a540-743c79587535,7d93a6ba-3ca7-45ab-a540-743c79587535,1,0,76b58810-0527-4dfc-8858-bac68e7e65f3,76b58810-0527-4dfc-8858-bac68e7e65f3,1,0,aba97fd9-f05e-45cd-8404-ed702070e17a,aba97fd9-f05e-45cd-8404-ed702070e17a,1,0,f5c415cd-429b-469f-9332-c43ab5d1c8d6,f5c415cd-429b-469f-9332-c43ab5d1c8d6,1,0,6de34ed8-5d6c-4bb6-af94-328e692b862e,6de34ed8-5d6c-4bb6-af94-328e692b862e,1,0,e705bde3-45c3-4ffd-a767-0320c6cc8b91,e705bde3-45c3-4ffd-a767-0320c6cc8b91,1,0,504280a1-a451-4547-ae71-e217f8fdf8f6,504280a1-a451-4547-ae71-e217f8fdf8f6,1,0,b071a9fe-0e9f-4ded-8dab-b1388fd12897,b071a9fe-0e9f-4ded-8dab-b1388fd12897,1,0,a2accd5e-e6f5-4d5f-8243-51aadfa88b00,a2accd5e-e6f5-4d5f-8243-51aadfa88b00,1,0,68deecfd-7564-487f-aaa5-e3cbe122475d,68deecfd-7564-487f-aaa5-e3cbe122475d,1,0,f280872c-7ab3-47fe-a171-2b0e273cf4e7,f280872c-7ab3-47fe-a171-2b0e273cf4e7,1,0,c6fda056-0949-4c8d-83bc-2091e0712674,c6fda056-0949-4c8d-83bc-2091e0712674,1,0,1dc9239f-197d-4497-a947-d03cca15b858,1dc9239f-197d-4497-a947-d03cca15b858,1,0,458e9c6b-b828-404b-be5a-c6c0aeea34c9,458e9c6b-b828-404b-be5a-c6c0aeea34c9,1,0,7262eb4d-2d2d-454c-beaa-974645813af7,7262eb4d-2d2d-454c-beaa-974645813af7,1,0,45fa9f17-eeb1-43e2-b78c-f81a341f1bff,45fa9f17-eeb1-43e2-b78c-f81a341f1bff,1,0,e402b02e-fb2b-4ccc-aa30-ef1a9cb7e17b,e402b02e-fb2b-4ccc-aa30-ef1a9cb7e17b,1,0,10d1e6bf-5ec8-44d8-ae31-0d22bccb5f60,10d1e6bf-5ec8-44d8-ae31-0d22bccb5f60,1,0,7fddef11-7b49-4911-8c66-8d2f94d3cbbd,7fddef11-7b49-4911-8c66-8d2f94d3cbbd,1,0,be438a36-2036-4f27-a9a3-37fb5ba5d6ab,be438a36-2036-4f27-a9a3-37fb5ba5d6ab,1,0,fabf9c9e-d35c-42e0-a949-6c54cb24990f,fabf9c9e-d35c-42e0-a949-6c54cb24990f,1,0,e47df890-3925-4410-ae48-63cb8e3d94f8,e47df890-3925-4410-ae48-63cb8e3d94f8,1,0,49221b2f-aae2-4bee-9a1a-18263fc74244,49221b2f-aae2-4bee-9a1a-18263fc74244,1,0,da0cd264-da2f-4044-af28-c91d2efe1d5c,da0cd264-da2f-4044-af28-c91d2efe1d5c,1,0,f1b1db38-2d9f-4409-a6d6-fd7192b1f102,f1b1db38-2d9f-4409-a6d6-fd7192b1f102,1,0,fad26b16-8638-496b-bd12-381fc6f5b71f,fad26b16-8638-496b-bd12-381fc6f5b71f,1,0,ed3cfb74-a37a-4314-a2d7-4ce717a2edd9,ed3cfb74-a37a-4314-a2d7-4ce717a2edd9,1,0,324a56c9-02d9-4177-af84-a817b8c41169,324a56c9-02d9-4177-af84-a817b8c41169,1,0,64ed8c1a-6446-4f0d-a2ef-c599e84c4909,64ed8c1a-6446-4f0d-a2ef-c599e84c4909,1,0,52fc85fb-309b-4739-bbd3-c3966657e973,52fc85fb-309b-4739-bbd3-c3966657e973,1,0,87081ab5-bdd5-4daa-88ef-8a2cba8c7d53,87081ab5-bdd5-4daa-88ef-8a2cba8c7d53,1,0,be3cfba8-e6f6-4202-ab0f-96c00fbf7462,be3cfba8-e6f6-4202-ab0f-96c00fbf7462,1,0,64ef1b5c-ec04-45eb-9998-bc573f4038d7,64ef1b5c-ec04-45eb-9998-bc573f4038d7,1,0,4fde5159-8f21-4151-8dbd-b2cd376d9392,4fde5159-8f21-4151-8dbd-b2cd376d9392,1,0,3ea799a6-6642-4388-b0a3-c2962e71ff51,3ea799a6-6642-4388-b0a3-c2962e71ff51,1,0,1e44abfe-c173-4802-b535-96849d384983,1e44abfe-c173-4802-b535-96849d384983,1,0,2751a509-037b-49aa-9ca8-e87057d6d82c,2751a509-037b-49aa-9ca8-e87057d6d82c,1,0,35f62549-eb6a-4284-a6e3-406b0d9df0cf,35f62549-eb6a-4284-a6e3-406b0d9df0cf,1,0,cee94c04-7a46-47a5-bdd5-6f0dbd884e97,cee94c04-7a46-47a5-bdd5-6f0dbd884e97,1,0,fd66995b-ee76-41d3-983f-33d84bdcbbd4,fd66995b-ee76-41d3-983f-33d84bdcbbd4,1,0,73e97918-b34e-4ad2-8591-4c219eb92f2c,73e97918-b34e-4ad2-8591-4c219eb92f2c,1,0,445cf7eb-35d0-48f8-9579-c2ec574ef324,445cf7eb-35d0-48f8-9579-c2ec574ef324,1,0,1025657e-afd2-4c7b-96d5-ccbedaca4619,1025657e-afd2-4c7b-96d5-ccbedaca4619,1,0,64839c78-b2fa-4d80-bee0-b3d3a7e5db35,64839c78-b2fa-4d80-bee0-b3d3a7e5db35,1,0,e754ad5c-cf3c-4198-af81-128475924cb0,e754ad5c-cf3c-4198-af81-128475924cb0,1,0,ed65d504-b210-4014-85ec-275ad633ef04,ed65d504-b210-4014-85ec-275ad633ef04,1,0,dc31edb1-273e-4b1a-8e69-32393479ff36,dc31edb1-273e-4b1a-8e69-32393479ff36,1,0,b369842d-c20e-4b68-9d0e-701707584b2f,b369842d-c20e-4b68-9d0e-701707584b2f,1,0,de23a2ca-4607-4488-be7b-23ea28875d02,de23a2ca-4607-4488-be7b-23ea28875d02,1,0,c0049c93-a264-44f6-8740-36a055a5b472,c0049c93-a264-44f6-8740-36a055a5b472,1,0,3c3bad38-ebd2-456d-86d9-b024c3afaedd,3c3bad38-ebd2-456d-86d9-b024c3afaedd,1,0,6b07201f-e728-4beb-a607-b05c68a645ca,6b07201f-e728-4beb-a607-b05c68a645ca,1,0,5c31cd2e-9247-4357-8c4b-3995470f00fc,5c31cd2e-9247-4357-8c4b-3995470f00fc,1,0,3ab0649b-239f-4466-b897-73c0ab628927,3ab0649b-239f-4466-b897-73c0ab628927,1,0,4c697110-8941-4d6d-ba03-f2b9e96ff82e,4c697110-8941-4d6d-ba03-f2b9e96ff82e,1,0,7ea4112d-fc41-4f1e-bd22-f04adeac1d8f,7ea4112d-fc41-4f1e-bd22-f04adeac1d8f,1,0,b172631b-da0d-42f4-ae6b-ae122a46cced,b172631b-da0d-42f4-ae6b-ae122a46cced,1,0,1a25e744-37ae-46ca-a328-ff8eced21a82,1a25e744-37ae-46ca-a328-ff8eced21a82,1,0,dddabe54-a93b-4e4b-acbb-cc522e4d7c28,dddabe54-a93b-4e4b-acbb-cc522e4d7c28,1,0,46169f0b-8514-40a1-9d27-8489cab72503,46169f0b-8514-40a1-9d27-8489cab72503,1,0,d9cf39cc-8652-4c4d-bc5b-b4e455c0083f,d9cf39cc-8652-4c4d-bc5b-b4e455c0083f,1,0,4b0d7d39-5f79-4a21-b0bb-d3142a3bc8a9,4b0d7d39-5f79-4a21-b0bb-d3142a3bc8a9,1,0,c90243af-582c-4f5a-88e7-e0cbc0555fcb,c90243af-582c-4f5a-88e7-e0cbc0555fcb,1,0,14bf4066-15cb-4165-b854-45443ee27da1,14bf4066-15cb-4165-b854-45443ee27da1,1,0,a0861dd3-ced5-485e-8719-0ad0bc3adc0d,a0861dd3-ced5-485e-8719-0ad0bc3adc0d,1,0,5a94a307-3f54-4753-8ef5-ce9f88417827,5a94a307-3f54-4753-8ef5-ce9f88417827,1,0,0f09b6b8-72ac-4461-96c4-683be403e2ff,0f09b6b8-72ac-4461-96c4-683be403e2ff,1,0,b73d0f07-9c6e-41b1-9acc-8e83dacd7528,b73d0f07-9c6e-41b1-9acc-8e83dacd7528,1,0,19d1d74a-de5f-475a-896c-a32b7d28f918,19d1d74a-de5f-475a-896c-a32b7d28f918,1,0,316553f3-bed7-4517-86ed-6520c1e536d9,316553f3-bed7-4517-86ed-6520c1e536d9,1,0,1255dbc8-29fc-4cd1-a2ed-a97c626dea5c,1255dbc8-29fc-4cd1-a2ed-a97c626dea5c,1,0,ee538127-bfa3-487a-9595-e69968595113,ee538127-bfa3-487a-9595-e69968595113,1,0,6b297ab7-7ff9-45a7-9075-ca3a1878cb2b,6b297ab7-7ff9-45a7-9075-ca3a1878cb2b,1,0,4427cab9-4eea-4415-98ef-6021a447c60c,4427cab9-4eea-4415-98ef-6021a447c60c,1,0,fe46b4da-d865-468f-badd-83644bf88faa,fe46b4da-d865-468f-badd-83644bf88faa,1,0,2851c9d4-4366-4488-926d-a7fcd3b1548c,2851c9d4-4366-4488-926d-a7fcd3b1548c,1,0,31116aa2-cfbc-48e8-886b-45c1c17508fd,31116aa2-cfbc-48e8-886b-45c1c17508fd,1,0,6aa819d3-c56d-4561-a2e4-a1188ab1295a,6aa819d3-c56d-4561-a2e4-a1188ab1295a,1,0,2ddf344d-7065-40d5-9306-23870d8fc04a,2ddf344d-7065-40d5-9306-23870d8fc04a,1,0,c630ab2d-0a20-4136-88b6-220b2cad6a71,c630ab2d-0a20-4136-88b6-220b2cad6a71,1,0,00cd1dea-bc54-475c-956d-dc5221104932,00cd1dea-bc54-475c-956d-dc5221104932,1,0,c343495b-5947-4fe7-a94b-d1f2b2455b4f,c343495b-5947-4fe7-a94b-d1f2b2455b4f,1,0,fbce7316-bb9a-40c1-af3c-352f4b559ab6,fbce7316-bb9a-40c1-af3c-352f4b559ab6,1,0,a3721457-b33b-4742-b6e1-531af10969d1,a3721457-b33b-4742-b6e1-531af10969d1,1,0,9619a603-e578-4f30-bcc6-adfddfa915c0,9619a603-e578-4f30-bcc6-adfddfa915c0,1,0,3807f865-dd2c-44f7-9238-3db191f0a186,3807f865-dd2c-44f7-9238-3db191f0a186,1,0,4a55351b-77e2-4c7c-a7d7-aac213d3c2a7,4a55351b-77e2-4c7c-a7d7-aac213d3c2a7,1,0,f79ac41b-6ab2-4afc-aa98-b70b72d78bb4,f79ac41b-6ab2-4afc-aa98-b70b72d78bb4,1,0,2c5a56d3-386e-45df-adc2-4471f52f9bdc,2c5a56d3-386e-45df-adc2-4471f52f9bdc,1,0,8f184df5-bfe8-4df3-bc7c-18218cef7650,8f184df5-bfe8-4df3-bc7c-18218cef7650,1,0,387e273a-889f-454b-8b43-feaa12025fde,387e273a-889f-454b-8b43-feaa12025fde,1,0,22474ca3-565b-4b67-a5b4-b0b959306d10,22474ca3-565b-4b67-a5b4-b0b959306d10,1,0,1c38ad75-b294-4c05-89ce-69ce4d9a291f,1c38ad75-b294-4c05-89ce-69ce4d9a291f,1,0,078d1e8f-6d27-4761-9532-b1e7a60e4c13,078d1e8f-6d27-4761-9532-b1e7a60e4c13,1,0,4262193c-58ad-47c6-8088-735d8cd037ea,4262193c-58ad-47c6-8088-735d8cd037ea,1,0,36a2b5f9-ded5-4fc3-a7bd-e12b37cd6bab,36a2b5f9-ded5-4fc3-a7bd-e12b37cd6bab,1,0,de6d1aad-39eb-46ce-87aa-d29812bb37bf,de6d1aad-39eb-46ce-87aa-d29812bb37bf,1,0,4ad859ec-cc75-4bac-9e89-397798450e48,4ad859ec-cc75-4bac-9e89-397798450e48,1,0,d93ab94c-0f55-4b80-b226-41b44c73b3ea,d93ab94c-0f55-4b80-b226-41b44c73b3ea,1,0,94cbed80-5a35-471f-b354-439a11629210,94cbed80-5a35-471f-b354-439a11629210,1,0,1162cc0a-42e5-47cb-9507-68459579f110,1162cc0a-42e5-47cb-9507-68459579f110,1,0,17f9f188-d3fd-4fe1-a00c-b0dde64a0f9e,17f9f188-d3fd-4fe1-a00c-b0dde64a0f9e,1,0,bb49dc80-4934-4f44-8f27-9a363dca8dc4,bb49dc80-4934-4f44-8f27-9a363dca8dc4,1,0,7338e497-03a7-4ed4-85a2-ca802c065a9f,7338e497-03a7-4ed4-85a2-ca802c065a9f,1,0,49fe879c-8972-4c9a-bb08-e3e5b2e5ff84,49fe879c-8972-4c9a-bb08-e3e5b2e5ff84,1,0,5249687b-9ff4-46f5-be15-dbb5d5047fd1,5249687b-9ff4-46f5-be15-dbb5d5047fd1,1,0,d33df51c-3dcd-496c-90f2-7ee05582bdf7,d33df51c-3dcd-496c-90f2-7ee05582bdf7,1,0,24b39ebd-2424-4939-8e3e-d09eb674d409,24b39ebd-2424-4939-8e3e-d09eb674d409,1,0,08c751bb-9e57-4536-901e-bb316c8e96d7,08c751bb-9e57-4536-901e-bb316c8e96d7,1,0,de0afa6f-07c6-441c-a4ca-e7ed709a8da5,de0afa6f-07c6-441c-a4ca-e7ed709a8da5,1,0,034cdcef-08e5-4751-9885-400aa69e0b94,034cdcef-08e5-4751-9885-400aa69e0b94,1,0,3e44d463-f253-4a64-8d68-631fcb66935c,3e44d463-f253-4a64-8d68-631fcb66935c,1,0,653d6483-029b-4453-a7d0-3a3c6d9d0b05,653d6483-029b-4453-a7d0-3a3c6d9d0b05,1,0,ac507771-50bd-4f8b-b72f-5954562c9131,ac507771-50bd-4f8b-b72f-5954562c9131,1,0,efefebea-2032-4006-b9ca-50a23b7da1ef,efefebea-2032-4006-b9ca-50a23b7da1ef,1,0,4c794d37-3352-4acb-a939-5e90fb682db8,4c794d37-3352-4acb-a939-5e90fb682db8,1,0,5f3fea83-6ca8-481b-9e2b-789a6fd01e2e,5f3fea83-6ca8-481b-9e2b-789a6fd01e2e,1,0,008f5068-da9c-4dac-9c0a-a50366d27cbb,008f5068-da9c-4dac-9c0a-a50366d27cbb,1,0,950b3ee3-070f-4946-8b9b-0aa2058de986,950b3ee3-070f-4946-8b9b-0aa2058de986,1,0,bd04a870-0943-4bdb-9e30-50a69daa8a13,bd04a870-0943-4bdb-9e30-50a69daa8a13,1,0,573c2153-7069-4589-8a2a-4517edca877d,573c2153-7069-4589-8a2a-4517edca877d,1,0,0a2f03c1-87d7-4589-9c47-8dd67faa1759,0a2f03c1-87d7-4589-9c47-8dd67faa1759,1,0,d1475ede-879c-4085-9980-2edaaf0eb0e9,d1475ede-879c-4085-9980-2edaaf0eb0e9,1,0,54eac28f-da81-4939-b2f9-924d3c215de5,54eac28f-da81-4939-b2f9-924d3c215de5,1,0,20d34659-1bde-4af0-be2c-da922e4ace6e,20d34659-1bde-4af0-be2c-da922e4ace6e,1,0,dec45aee-a4a8-473c-904e-15d5ff31efc3,dec45aee-a4a8-473c-904e-15d5ff31efc3,1,0,8b9318e5-c6ce-4253-9759-8ddd42468775,8b9318e5-c6ce-4253-9759-8ddd42468775,1,0,e79dd738-4e6c-411a-97a2-d0acbe4918ee,e79dd738-4e6c-411a-97a2-d0acbe4918ee,1,0,571a910a-67c7-4fe9-b06e-78893498a606,571a910a-67c7-4fe9-b06e-78893498a606,1,0,86f98256-87d1-4922-8d70-a5d2cad1c385,86f98256-87d1-4922-8d70-a5d2cad1c385,1,0,05faa67b-195a-4f46-8e47-30c4208cbc64,05faa67b-195a-4f46-8e47-30c4208cbc64,1,0,be75d0b2-c9db-4dab-9e32-dbe26d667508,be75d0b2-c9db-4dab-9e32-dbe26d667508,1,0,299c014f-996a-4a99-a5be-a7cfd5ee45e4,299c014f-996a-4a99-a5be-a7cfd5ee45e4,1,0,2569b69d-006f-478e-83b7-9163048b34bb,2569b69d-006f-478e-83b7-9163048b34bb,1,0,1ee47933-8117-4d47-9245-476c0ed3a373,1ee47933-8117-4d47-9245-476c0ed3a373,1,0,31cac1e9-eb16-489c-9322-30d1e27a80b3,31cac1e9-eb16-489c-9322-30d1e27a80b3,1,0,0d100e33-7941-41c1-962d-7672c874e9c5,0d100e33-7941-41c1-962d-7672c874e9c5,1,0,c5ac53c9-c9b2-4b90-a21e-10f1daa756c5,c5ac53c9-c9b2-4b90-a21e-10f1daa756c5,1,0,6e61d717-de36-4dce-8af9-b6c14ed76acb,6e61d717-de36-4dce-8af9-b6c14ed76acb,1,0,474518fe-9cb5-4a12-9388-bc7a64511617,474518fe-9cb5-4a12-9388-bc7a64511617,1,0,64337614-b1c9-4931-b576-448721fa4602,64337614-b1c9-4931-b576-448721fa4602,1,0,1d73b59c-0594-4ed3-b584-cf1261941e1d,1d73b59c-0594-4ed3-b584-cf1261941e1d,1,0,8ff2547f-d596-4fa1-9e12-079e1cc4c057,8ff2547f-d596-4fa1-9e12-079e1cc4c057,1,0,1ab0c8f8-b908-4618-ae88-af37b8f1224e,1ab0c8f8-b908-4618-ae88-af37b8f1224e,1,0,bd3ec5a9-161d-487e-ab1d-e5e15a6e3a7b,bd3ec5a9-161d-487e-ab1d-e5e15a6e3a7b,1,0,8d812412-6e01-4063-81ae-4b8f3a071b11,8d812412-6e01-4063-81ae-4b8f3a071b11,1,0,9a3094c0-fa79-4ad6-8fa1-c9f58f37c06f,9a3094c0-fa79-4ad6-8fa1-c9f58f37c06f,1,0,84d3ea39-442c-4b2f-8331-1cccfc429b32,84d3ea39-442c-4b2f-8331-1cccfc429b32,1,0,fda24f7a-e953-4e0f-9fb3-911f05bf0d2d,fda24f7a-e953-4e0f-9fb3-911f05bf0d2d,1,0,f237e5f9-da2a-445a-bd09-86ded0235cae,f237e5f9-da2a-445a-bd09-86ded0235cae,1,0,c4ac43ef-7d79-46f0-a885-8bc954d9d078,c4ac43ef-7d79-46f0-a885-8bc954d9d078,1,0,cd2c6006-1cbe-41ae-9ef9-c6b2af5064ee,cd2c6006-1cbe-41ae-9ef9-c6b2af5064ee,1,0,a2e426b0-3804-4914-9431-3f6ecff92ee9,a2e426b0-3804-4914-9431-3f6ecff92ee9,1,0,05507f2b-eed8-4da4-8efc-77d9d8e2daca,05507f2b-eed8-4da4-8efc-77d9d8e2daca,1,0,0440ed06-3f42-48a8-9431-fd608920b577,0440ed06-3f42-48a8-9431-fd608920b577,1,0,37be75c9-bf1a-437a-ab05-f9e3aac6f440,37be75c9-bf1a-437a-ab05-f9e3aac6f440,1,0,b85b3a58-95e4-4698-b1ae-037901ecc1b1,b85b3a58-95e4-4698-b1ae-037901ecc1b1,1,0,b77d748a-d180-432d-91c3-774e6ccf7efa,b77d748a-d180-432d-91c3-774e6ccf7efa,1,0,e5b9c1b0-4690-442c-b160-e6c587e42e57,e5b9c1b0-4690-442c-b160-e6c587e42e57,1,0,e3adb576-6b33-475b-976b-7a6783de3184,e3adb576-6b33-475b-976b-7a6783de3184,1,0,c6cef8db-0689-42a6-9f43-c86b7c3cf0e9,c6cef8db-0689-42a6-9f43-c86b7c3cf0e9,1,0,78f5a205-dffb-4009-897a-e8f36372f33c,78f5a205-dffb-4009-897a-e8f36372f33c,1,0,f7597041-f182-42fb-803a-2521c70d627d,f7597041-f182-42fb-803a-2521c70d627d,1,0,ce988b8a-d0c1-400a-9466-aa757501bb58,ce988b8a-d0c1-400a-9466-aa757501bb58,1,0,ab98d665-8da8-406e-9e0e-3e130ab393ef,ab98d665-8da8-406e-9e0e-3e130ab393ef,1,0,9e823bb6-b0c0-439e-81e4-ebd46b79b99c,9e823bb6-b0c0-439e-81e4-ebd46b79b99c,1,0,ea8beea1-7d80-4613-b2f9-79ee612e977a,ea8beea1-7d80-4613-b2f9-79ee612e977a,1,0,afd62a32-fdbb-429a-9a64-89c61a07e018,afd62a32-fdbb-429a-9a64-89c61a07e018,1,0,027cef43-99bd-48d3-a1a3-2102ac003742,027cef43-99bd-48d3-a1a3-2102ac003742,1,0,00197ea9-de76-4e2a-97bc-93e44053e35e,00197ea9-de76-4e2a-97bc-93e44053e35e,1,0,540a47b8-f6d4-4531-ac87-3f7cfbef4c8c,540a47b8-f6d4-4531-ac87-3f7cfbef4c8c,1,0,a51f7c6f-2631-4d23-becc-c0e8b711fddd,a51f7c6f-2631-4d23-becc-c0e8b711fddd,1,0,37806357-d92c-4bea-a5ef-77f138578fda,37806357-d92c-4bea-a5ef-77f138578fda,1,0,91b100e6-fbbe-4bb0-8d51-d12595a2a3e8,91b100e6-fbbe-4bb0-8d51-d12595a2a3e8,1,0,0a880538-f97f-448e-a4a9-82b0194dbe28,0a880538-f97f-448e-a4a9-82b0194dbe28,1,0,24b4dd9e-825f-471b-b15d-ae21a508d183,24b4dd9e-825f-471b-b15d-ae21a508d183,1,0,179868b7-d342-4df0-9386-c114d75faf3a,179868b7-d342-4df0-9386-c114d75faf3a,1,0,bbc4cc8c-31c2-4fcf-b86c-9ec65b2772b0,bbc4cc8c-31c2-4fcf-b86c-9ec65b2772b0,1,0,929e9199-dfd5-497d-ad77-6638d20c7336,929e9199-dfd5-497d-ad77-6638d20c7336,1,0,4d1546ee-30ff-4cf7-afd3-60b565e3cb53,4d1546ee-30ff-4cf7-afd3-60b565e3cb53,1,0,aaf51715-f468-4856-b9ae-fd66bc143633,aaf51715-f468-4856-b9ae-fd66bc143633,1,0,e9650eea-d35a-4abc-977c-fb9b2abba0e5,e9650eea-d35a-4abc-977c-fb9b2abba0e5,1,0,b00626a3-5438-40c4-8ca9-5609e9dfe476,b00626a3-5438-40c4-8ca9-5609e9dfe476,1,0,b537f309-f957-4804-9f0f-03a71aedf694,b537f309-f957-4804-9f0f-03a71aedf694,1,0,4d72bd30-8d60-4f84-9ad8-83489d9cb3fb,4d72bd30-8d60-4f84-9ad8-83489d9cb3fb,1,0,7e4afed8-5c56-4765-bcd0-a40e6121ba22,7e4afed8-5c56-4765-bcd0-a40e6121ba22,1,0,155660a1-8a63-4562-a715-d75a8af7176b,155660a1-8a63-4562-a715-d75a8af7176b,1,0,878fe826-fa99-44ad-9891-5eada9744017,878fe826-fa99-44ad-9891-5eada9744017,1,0,0d61712a-dfaf-46f1-b728-62993dd94fbe,0d61712a-dfaf-46f1-b728-62993dd94fbe,1,0,3a6cf496-09b9-4947-9df5-06d23b474558,3a6cf496-09b9-4947-9df5-06d23b474558,1,0,625b498a-33d1-4162-9525-fb7790cbb6a8,625b498a-33d1-4162-9525-fb7790cbb6a8,1,0,28223f7b-d15a-4f12-b57c-1f6d08a902f9,28223f7b-d15a-4f12-b57c-1f6d08a902f9,1,0,dd9eb5b7-5aed-4e51-9939-9ff14492d240,dd9eb5b7-5aed-4e51-9939-9ff14492d240,1,0,b2a14899-d589-4990-b85e-7bffb427e8af,b2a14899-d589-4990-b85e-7bffb427e8af,1,0,0981d114-05bd-4ee1-a8fd-398fa6620d0b,0981d114-05bd-4ee1-a8fd-398fa6620d0b,1,0,3210ba40-382e-4917-ad0f-9bd88d23dc25,3210ba40-382e-4917-ad0f-9bd88d23dc25,1,0,835e3ead-d01f-410b-937a-902dd5e66aec,835e3ead-d01f-410b-937a-902dd5e66aec,1,0,40141982-d1d6-416f-844e-19143a407ff9,40141982-d1d6-416f-844e-19143a407ff9,1,0,f5c4d4ad-dda6-4dc3-b112-61f776006f3c,f5c4d4ad-dda6-4dc3-b112-61f776006f3c,1,0,466d9fd7-188e-4f3b-a673-35db9075d537,466d9fd7-188e-4f3b-a673-35db9075d537,1,0,1c2e2c7d-c9d2-46a6-81f9-30078ca511c7,1c2e2c7d-c9d2-46a6-81f9-30078ca511c7,1,0,09d3717a-d6f9-42fd-ae9e-df5658fa3981,09d3717a-d6f9-42fd-ae9e-df5658fa3981,1,0,9b26aa5f-1e77-4261-adf6-6f2f24f5af33,9b26aa5f-1e77-4261-adf6-6f2f24f5af33,1,0,b6b5e6c1-3967-4c2f-b8bc-0acc96afe240,b6b5e6c1-3967-4c2f-b8bc-0acc96afe240,1,0,de355360-f87a-4b0d-a37c-d0a091e7e984,de355360-f87a-4b0d-a37c-d0a091e7e984,1,0,8819399f-4803-413c-ad5e-7fa2c8878e5f,8819399f-4803-413c-ad5e-7fa2c8878e5f,1,0,99ff834a-f030-4af3-9b7d-f92a03f7c6f4,99ff834a-f030-4af3-9b7d-f92a03f7c6f4,1,0,afea5f32-22ff-4940-8156-3ec8b9c7bbb9,afea5f32-22ff-4940-8156-3ec8b9c7bbb9,1,0,fa01c28c-44d1-4fa9-b167-73d6cecb7730,fa01c28c-44d1-4fa9-b167-73d6cecb7730,1,0,d82c675e-7d38-417c-9cfc-6af0e86addfd,d82c675e-7d38-417c-9cfc-6af0e86addfd,1,0,319c4428-9463-4aa4-a87a-2749c49f4069,319c4428-9463-4aa4-a87a-2749c49f4069,1,0,497deeb7-0630-4f72-bcdb-ebacf8963d79,497deeb7-0630-4f72-bcdb-ebacf8963d79,1,0,ef471953-7c99-40f9-a31d-f50ed8ba3fc5,ef471953-7c99-40f9-a31d-f50ed8ba3fc5,1,0,1e70a177-cacc-4416-aef0-2a8df235ae77,1e70a177-cacc-4416-aef0-2a8df235ae77,1,0,98393093-7ba6-4b4d-86be-ee5826cd8cd5,98393093-7ba6-4b4d-86be-ee5826cd8cd5,1,0,87de486d-3f35-4432-a7cd-9d3832db63cf,87de486d-3f35-4432-a7cd-9d3832db63cf,1,0,246f17a0-93a7-4e2c-8fa6-f57405f0abeb,246f17a0-93a7-4e2c-8fa6-f57405f0abeb,1,0,ea6c4830-a34d-4026-a0ca-5cf7e44f089d,ea6c4830-a34d-4026-a0ca-5cf7e44f089d,1,0,bb7ce04a-8143-4c0b-a196-1b57f1640142,bb7ce04a-8143-4c0b-a196-1b57f1640142,1,0,4872f12c-705c-4dd3-802f-d27496a0d634,4872f12c-705c-4dd3-802f-d27496a0d634,1,0,3bacfd93-dfc7-4154-9d3f-b61ddc5c6721,3bacfd93-dfc7-4154-9d3f-b61ddc5c6721,1,0,fc65918a-2ad1-47b1-980d-5afe63579964,fc65918a-2ad1-47b1-980d-5afe63579964,1,0,7ece6efe-16a1-4294-8c28-3fa6427ba9f0,7ece6efe-16a1-4294-8c28-3fa6427ba9f0,1,0,61094d92-b1e6-45b9-9258-38a7bb1d6469,61094d92-b1e6-45b9-9258-38a7bb1d6469,1,0,4791b5d4-3568-4420-8c25-89ecce7c6353,4791b5d4-3568-4420-8c25-89ecce7c6353,1,0,0c0bbfba-c1c4-4bb5-a813-10da4bef7911,0c0bbfba-c1c4-4bb5-a813-10da4bef7911,1,0,f9ada91a-e673-4821-9bce-cb0dd75ca28b,f9ada91a-e673-4821-9bce-cb0dd75ca28b,1,0,9fcf68bb-43e2-4cd1-89ec-8797ad9c0e8b,9fcf68bb-43e2-4cd1-89ec-8797ad9c0e8b,1,0,90ce635a-0277-4056-980d-d1a16d91cb30,90ce635a-0277-4056-980d-d1a16d91cb30,1,0,e61a8360-a0f8-4d86-b91a-2ae9b8552bf0,e61a8360-a0f8-4d86-b91a-2ae9b8552bf0,1,0,1e77e873-632c-482b-8f46-8f8cc3cc8cef,1e77e873-632c-482b-8f46-8f8cc3cc8cef,1,0,00605607-03ab-43fc-ba08-9fc32f582d0a,00605607-03ab-43fc-ba08-9fc32f582d0a,1,0,5ab0a910-74ab-4af0-b5a3-40845a789fde,5ab0a910-74ab-4af0-b5a3-40845a789fde,1,0,bb659006-c11e-4427-8d86-229ba43ef679,bb659006-c11e-4427-8d86-229ba43ef679,1,0,766208a3-2780-427b-a7d3-93abe99d236b,766208a3-2780-427b-a7d3-93abe99d236b,1,0,63ce4c3c-5bad-409c-904f-18f34cf1da78,63ce4c3c-5bad-409c-904f-18f34cf1da78,1,0,62bddcee-bef6-42cc-9ba3-e99b8160dcc2,62bddcee-bef6-42cc-9ba3-e99b8160dcc2,1,0,26ac22f9-0bbb-4671-b446-626e345e2461,26ac22f9-0bbb-4671-b446-626e345e2461,1,0,0d63ee6d-e17f-4a86-b384-adf9793f3331,0d63ee6d-e17f-4a86-b384-adf9793f3331,1,0,f152945b-2a7b-449e-a915-176166af7bac,f152945b-2a7b-449e-a915-176166af7bac,1,0,77f5d86a-7fae-4490-9740-0e31102dab5c,77f5d86a-7fae-4490-9740-0e31102dab5c,1,0,5a54bc1a-d178-412c-bf4a-cf92d7f141aa,5a54bc1a-d178-412c-bf4a-cf92d7f141aa,1,0,24be43ec-d39e-46aa-9c11-2536b835e515,24be43ec-d39e-46aa-9c11-2536b835e515,1,0,c9ca80ef-c7b7-4425-b5c0-3d13af82f291,c9ca80ef-c7b7-4425-b5c0-3d13af82f291,1,0,df9af3ee-6a69-4a03-8ff5-0735e9a38013,df9af3ee-6a69-4a03-8ff5-0735e9a38013,1,0,1b27eb77-d535-43a5-8ae1-fa2fec15d92c,1b27eb77-d535-43a5-8ae1-fa2fec15d92c,1,0,7743fe24-b941-4dad-bc76-05fb6b26b1d7,7743fe24-b941-4dad-bc76-05fb6b26b1d7,1,0,5bf2da0d-f318-4036-9234-8a3a6eca88b2,5bf2da0d-f318-4036-9234-8a3a6eca88b2,1,0,288525fc-d3fa-4c8e-a1d7-d2d1ef4cd0ef,288525fc-d3fa-4c8e-a1d7-d2d1ef4cd0ef,1,0,c3634571-6fe5-45ab-9362-161305eef661,c3634571-6fe5-45ab-9362-161305eef661,1,0,ec11342f-594f-416f-a10f-bd1bfa695c08,ec11342f-594f-416f-a10f-bd1bfa695c08,1,0,31c3ac44-204e-43fd-bca3-fd18fa091c58,31c3ac44-204e-43fd-bca3-fd18fa091c58,1,0,74f03c35-5da0-406e-a938-e8e5d49975ef,74f03c35-5da0-406e-a938-e8e5d49975ef,1,0,c9ab3890-6d16-431f-ab2b-b5058e6202a4,c9ab3890-6d16-431f-ab2b-b5058e6202a4,1,0,5ee9eed7-3c6c-4264-ab9a-6f24f9c80598,5ee9eed7-3c6c-4264-ab9a-6f24f9c80598,1,0,3c33adc7-abea-4e0f-9e5d-d8f10abb63df,3c33adc7-abea-4e0f-9e5d-d8f10abb63df,1,0,4090c6f7-1d25-4b17-9baa-18daa0640b0f,4090c6f7-1d25-4b17-9baa-18daa0640b0f,1,0,26125e58-dfc8-4bbb-a3a4-80616471746e,26125e58-dfc8-4bbb-a3a4-80616471746e,1,0,b1c699cd-efdc-461c-ad37-10bfd4bc9674,b1c699cd-efdc-461c-ad37-10bfd4bc9674,1,0,6add1920-5073-4b1e-b7e0-13bf1e65e4c3,6add1920-5073-4b1e-b7e0-13bf1e65e4c3,1,0,f12c946c-98e4-4da6-8a88-c555e9dc3bdd,f12c946c-98e4-4da6-8a88-c555e9dc3bdd,1,0,ec5718b7-1c4d-4bdc-9426-40a339bb29cf,ec5718b7-1c4d-4bdc-9426-40a339bb29cf,1,0,ecd8772d-e33f-426f-a87a-e28bd94d5fdf,ecd8772d-e33f-426f-a87a-e28bd94d5fdf,1,0,96661303-1286-4f84-93b7-0e6da2bd7893,96661303-1286-4f84-93b7-0e6da2bd7893,1,0,68076431-36e6-46dc-92cb-e0d8e605bf66,68076431-36e6-46dc-92cb-e0d8e605bf66,1,0,239fa55a-6572-4e5c-9918-c2e14063c76d,239fa55a-6572-4e5c-9918-c2e14063c76d,1,0,8211a1b6-c3b1-466b-8d11-22603fb50c7a,8211a1b6-c3b1-466b-8d11-22603fb50c7a,1,0,7e7dfcb5-04eb-40f4-8f4c-f29644e81473,7e7dfcb5-04eb-40f4-8f4c-f29644e81473,1,0,daef68a3-c6c3-450d-b8fd-7af2a2f5572e,daef68a3-c6c3-450d-b8fd-7af2a2f5572e,1,0,a83cb338-5707-42c9-9e88-11f6c68fcc32,a83cb338-5707-42c9-9e88-11f6c68fcc32,1,0,e0c54cdd-32ab-4c83-a0cd-454139416a58,e0c54cdd-32ab-4c83-a0cd-454139416a58,1,0,85488f67-4b7b-4803-bd21-664a4409cee6,85488f67-4b7b-4803-bd21-664a4409cee6,1,0,79d80ade-cdc1-4445-8bfd-f27dd3627083,79d80ade-cdc1-4445-8bfd-f27dd3627083,1,0,2b56997c-c791-4afe-942c-526421242b97,2b56997c-c791-4afe-942c-526421242b97,1,0,36b15776-5211-4afa-9b6c-c042121218c0,36b15776-5211-4afa-9b6c-c042121218c0,1,0,422a0e10-361f-46ba-b92e-3088d81e12a4,422a0e10-361f-46ba-b92e-3088d81e12a4,1,0,f37b7b25-abd2-4e19-9712-78aafceb4f43,f37b7b25-abd2-4e19-9712-78aafceb4f43,1,0,7cd4c6ea-5795-4bea-a159-1e66650c42fe,7cd4c6ea-5795-4bea-a159-1e66650c42fe,1,0,091fcffa-da7e-4375-bf0b-11cc4950b5ad,091fcffa-da7e-4375-bf0b-11cc4950b5ad,1,0,57e91491-73b6-43f7-b7f8-26efec56ce9e,57e91491-73b6-43f7-b7f8-26efec56ce9e,1,0,43b8af02-21f6-41c0-8e6d-758411f5188e,43b8af02-21f6-41c0-8e6d-758411f5188e,1,0,9952a9cc-6d02-4d84-9bca-76c67c6af29a,9952a9cc-6d02-4d84-9bca-76c67c6af29a,1,0,3bd83ceb-9f87-49e2-9e3e-1c43efeaba9b,3bd83ceb-9f87-49e2-9e3e-1c43efeaba9b,1,0,35c9e0e3-e454-4b5e-a39d-8a5f396ab841,35c9e0e3-e454-4b5e-a39d-8a5f396ab841,1,0,da031ebd-4aba-40e6-acb9-245cf73c4423,da031ebd-4aba-40e6-acb9-245cf73c4423,1,0,59d47246-e522-4baa-96b3-d7e93279e3ec,59d47246-e522-4baa-96b3-d7e93279e3ec,1,0,c222b2c0-5e92-4022-b2f7-49967b5a9de3,c222b2c0-5e92-4022-b2f7-49967b5a9de3,1,0,e9bf314a-a4d1-4fb8-a84c-84ac7df6c456,e9bf314a-a4d1-4fb8-a84c-84ac7df6c456,1,0,47432cc4-7373-4234-b812-49f7e279a6f0,47432cc4-7373-4234-b812-49f7e279a6f0,1,0,2dec3aa6-f4e3-4574-91e7-1270d3c4f184,2dec3aa6-f4e3-4574-91e7-1270d3c4f184,1,0,ce1523eb-89b3-45ec-903a-9e5fa397e44e,ce1523eb-89b3-45ec-903a-9e5fa397e44e,1,0,3984249d-d8f7-4cee-939e-88fda2f9cfa4,3984249d-d8f7-4cee-939e-88fda2f9cfa4,1,0,a0548550-f136-4c70-8ef7-f3fd8d74f8f7,a0548550-f136-4c70-8ef7-f3fd8d74f8f7,1,0,9d793866-7b33-45a3-a7bf-02dc6e810a78,9d793866-7b33-45a3-a7bf-02dc6e810a78,1,0,7bdd965e-1f6b-45d6-be1c-3ccf0d72db35,7bdd965e-1f6b-45d6-be1c-3ccf0d72db35,1,0,7bc35350-6452-44b0-ba62-ad5446e1e507,7bc35350-6452-44b0-ba62-ad5446e1e507,1,0,ce40340d-f5c9-404c-9d68-8bf5a27d3fd4,ce40340d-f5c9-404c-9d68-8bf5a27d3fd4,1,0,36e39b8e-68ae-4a6e-9c64-39d4298fe6cf,36e39b8e-68ae-4a6e-9c64-39d4298fe6cf,1,0,d687f818-f5cf-46ef-9079-58424d5f0855,d687f818-f5cf-46ef-9079-58424d5f0855,1,0,afd574d1-81af-45c3-aea6-b1e0d2c19863,afd574d1-81af-45c3-aea6-b1e0d2c19863,1,0,f93741c9-ab94-464b-b0d4-4af99c9f92d5,f93741c9-ab94-464b-b0d4-4af99c9f92d5,1,0,0fddbd8d-12dd-4af1-9e34-feebf4bc38b1,0fddbd8d-12dd-4af1-9e34-feebf4bc38b1,1,0,2e9548a6-1fd8-4430-8864-91bde0d2a7a1,2e9548a6-1fd8-4430-8864-91bde0d2a7a1,1,0,c59fd3f8-c734-49d3-90ba-e608a22ac981,c59fd3f8-c734-49d3-90ba-e608a22ac981,1,0,b26235ed-374c-44ab-8b3c-01d7c4d82d4c,b26235ed-374c-44ab-8b3c-01d7c4d82d4c,1,0,5056db9f-9ebe-4cca-98f0-5f4817a1cba4,5056db9f-9ebe-4cca-98f0-5f4817a1cba4,1,0,475f76ea-f494-41f1-9b65-f39907e5a427,475f76ea-f494-41f1-9b65-f39907e5a427,1,0,986280d1-41bb-4b15-a5ae-516d6a04c1f4,986280d1-41bb-4b15-a5ae-516d6a04c1f4,1,0,43bfd29a-d254-4c33-8639-200b483578c1,43bfd29a-d254-4c33-8639-200b483578c1,1,0,6a274167-7f80-4613-9890-259ffd8ccfc4,6a274167-7f80-4613-9890-259ffd8ccfc4,1,0,00696255-ea14-4fee-8633-0962f3c441d1,00696255-ea14-4fee-8633-0962f3c441d1,1,0,4e90e1ab-b1ec-4795-ad45-1db151a5492c,4e90e1ab-b1ec-4795-ad45-1db151a5492c,1,0,91791e56-ca80-4d90-b8a8-16145f6a9721,91791e56-ca80-4d90-b8a8-16145f6a9721,1,0,b242c6a2-5ac9-4edb-b5dd-24eda8162151,b242c6a2-5ac9-4edb-b5dd-24eda8162151,1,0,8d080f3c-06ed-48bf-9709-eea73d676741,8d080f3c-06ed-48bf-9709-eea73d676741,1,0,57b31a5d-9fdc-43d2-ae81-67157822c4b6,57b31a5d-9fdc-43d2-ae81-67157822c4b6,1,0,d4e2da66-9a70-459f-a873-cb4ad71d17b2,d4e2da66-9a70-459f-a873-cb4ad71d17b2,1,0,a84a91d2-d326-4bf4-82e6-d573ee35d090,a84a91d2-d326-4bf4-82e6-d573ee35d090,1,0,fef27478-ddfd-4ad9-8161-148761f29698,fef27478-ddfd-4ad9-8161-148761f29698,1,0,39cbda23-db3f-4ddd-8981-8540247406db,39cbda23-db3f-4ddd-8981-8540247406db,1,0,c8a18d99-62ff-45a4-acb5-48e3310c1b53,c8a18d99-62ff-45a4-acb5-48e3310c1b53,1,0,a6eb0cb1-80f0-4390-80ff-7af53f8e63c3,a6eb0cb1-80f0-4390-80ff-7af53f8e63c3,1,0,3500c6fa-813a-49dd-a4bf-163500db5b7f,3500c6fa-813a-49dd-a4bf-163500db5b7f,1,0,1d02493a-dd89-4a51-b75e-9c49f9818b95,1d02493a-dd89-4a51-b75e-9c49f9818b95,1,0,2845c5d1-e836-4499-bcae-f3c8fdae75ee,2845c5d1-e836-4499-bcae-f3c8fdae75ee,1,0,fe4e8e4e-9471-4583-b9b3-576007db08ee,fe4e8e4e-9471-4583-b9b3-576007db08ee,1,0,49deaaa8-6d50-4b25-8153-6712d88fb0fb,49deaaa8-6d50-4b25-8153-6712d88fb0fb,1,0,1eeb7634-e924-4ad8-92e0-1c54c22b1ba6,1eeb7634-e924-4ad8-92e0-1c54c22b1ba6,1,0,46a06de8-06fd-4b49-835f-4f24b832b3c4,46a06de8-06fd-4b49-835f-4f24b832b3c4,1,0,3845a567-4375-4c3a-af61-5b82674060ab,3845a567-4375-4c3a-af61-5b82674060ab,1,0,ab210fb8-4fc4-47f8-b8ef-3a00eeb0ab8b,ab210fb8-4fc4-47f8-b8ef-3a00eeb0ab8b,1,0,a835a3a7-989b-4247-b836-d23bba2f391a,a835a3a7-989b-4247-b836-d23bba2f391a,1,0,58f5c354-8f1d-4064-ba35-527ea3d2f4a9,58f5c354-8f1d-4064-ba35-527ea3d2f4a9,1,0,9b149c20-9328-4e2d-a34b-95c883ae4dcc,9b149c20-9328-4e2d-a34b-95c883ae4dcc,1,0,dd6fdc0d-49bb-4fa1-aa17-bd9dc38a0992,dd6fdc0d-49bb-4fa1-aa17-bd9dc38a0992,1,0,f8dbf226-ea56-4b15-baf1-a41fceba2a32,f8dbf226-ea56-4b15-baf1-a41fceba2a32,1,0,1422999b-9977-4bed-9990-b46bd0ec7471,1422999b-9977-4bed-9990-b46bd0ec7471,1,0,4c48db2f-2b79-4c6f-b8ee-002810c6190c,4c48db2f-2b79-4c6f-b8ee-002810c6190c,1,0,d0d90cbf-21fc-47cb-8e1c-549e67a1bf0c,d0d90cbf-21fc-47cb-8e1c-549e67a1bf0c,1,0,cf48ae02-ecb0-4db9-92da-585f89cddb70,cf48ae02-ecb0-4db9-92da-585f89cddb70,1,0,5650c5c7-3f43-4ec9-8b64-003c5467d06a,5650c5c7-3f43-4ec9-8b64-003c5467d06a,1,0,5bac3798-1193-4d74-bbdd-40aba11d742c,5bac3798-1193-4d74-bbdd-40aba11d742c,1,0,514f3514-ba90-493e-b0dd-2d02c6ba4d1d,514f3514-ba90-493e-b0dd-2d02c6ba4d1d,1,0,032de836-80a8-46ce-9e40-b3b6ac5f9e1e,032de836-80a8-46ce-9e40-b3b6ac5f9e1e,1,0,962c2c55-6a16-46f6-9ce0-67d1984b530e,962c2c55-6a16-46f6-9ce0-67d1984b530e,1,0,27e906c2-ea0e-489e-b869-547c48c29518,27e906c2-ea0e-489e-b869-547c48c29518,1,0,553ebd03-267b-4ced-805e-be7eca6db18f,553ebd03-267b-4ced-805e-be7eca6db18f,1,0,8bf95fa7-1067-45b3-82ea-286192f97e06,8bf95fa7-1067-45b3-82ea-286192f97e06,1,0,73996d67-4d70-4ce5-a58a-d70f44484f1e,73996d67-4d70-4ce5-a58a-d70f44484f1e,1,0,5e86a443-bd0f-411d-b1b9-41bfa0cf1a2f,5e86a443-bd0f-411d-b1b9-41bfa0cf1a2f,1,0,fcaecd43-b938-4680-93be-963db5218f35,fcaecd43-b938-4680-93be-963db5218f35,1,0,63415525-46a2-4d70-bdab-665945a9185c,63415525-46a2-4d70-bdab-665945a9185c,1,0,27e37fde-daf0-47fa-865c-3cd86151f5be,27e37fde-daf0-47fa-865c-3cd86151f5be,1,0,b3b63074-984a-48d2-ba5b-d69dd0b8067e,b3b63074-984a-48d2-ba5b-d69dd0b8067e,1,0,fc4a9f03-c81f-4201-814c-c6d5a5029168,fc4a9f03-c81f-4201-814c-c6d5a5029168,1,0,abba612c-137a-4dff-89f3-445945c30859,abba612c-137a-4dff-89f3-445945c30859,1,0,c4753515-a483-453e-a48b-b12d8ef48fd9,c4753515-a483-453e-a48b-b12d8ef48fd9,1,0,9b0e9fec-8261-4e20-9556-754a46d11c12,9b0e9fec-8261-4e20-9556-754a46d11c12,1,0,2d9048eb-abdf-4980-96ed-788fbb0f4ea7,2d9048eb-abdf-4980-96ed-788fbb0f4ea7,1,0,98c3bc52-2351-460c-8b8e-0d3f45ca3131,98c3bc52-2351-460c-8b8e-0d3f45ca3131,1,0,d1ade16c-bd56-46e5-874f-3117c5653192,d1ade16c-bd56-46e5-874f-3117c5653192,1,0,339398c0-6407-483c-82f7-266ef08b8657,339398c0-6407-483c-82f7-266ef08b8657,1,0,4f0a8f8c-68cb-4afe-b487-64e7ceeef9ab,4f0a8f8c-68cb-4afe-b487-64e7ceeef9ab,1,0,764bf84f-3aa5-4023-a15a-b546f8837141,764bf84f-3aa5-4023-a15a-b546f8837141,1,0,b1ff31b9-c9f2-4be4-ac9a-62faa1d1eb81,b1ff31b9-c9f2-4be4-ac9a-62faa1d1eb81,1,0,c14ea7a0-1fb6-4d54-82d6-7f12f11b0c0b,c14ea7a0-1fb6-4d54-82d6-7f12f11b0c0b,1,0,29645810-44aa-402c-9561-7819d6f4a7ab,29645810-44aa-402c-9561-7819d6f4a7ab,1,0,46bf4911-5200-44ac-9b4d-eb0089c12e34,46bf4911-5200-44ac-9b4d-eb0089c12e34,1,0,6e1685bd-7269-401c-b36e-def6a36b41d5,6e1685bd-7269-401c-b36e-def6a36b41d5,1,0,9d77103a-9921-4f6c-98fc-d7f42f0f2d8d,9d77103a-9921-4f6c-98fc-d7f42f0f2d8d,1,0,e03b6592-b597-4795-a78e-775d4f2258db,e03b6592-b597-4795-a78e-775d4f2258db,1,0,6ae9e86a-a42f-4de0-a891-6abe1ed16cdd,6ae9e86a-a42f-4de0-a891-6abe1ed16cdd,1,0,3b207d5f-6584-4cf2-9173-20235484f9f4,3b207d5f-6584-4cf2-9173-20235484f9f4,1,0,878d9efe-b0e7-487f-b8f7-83470c131e09,878d9efe-b0e7-487f-b8f7-83470c131e09,1,0,dc72eb52-527f-438d-8750-c9f8f885d4ca,dc72eb52-527f-438d-8750-c9f8f885d4ca,1,0,0fd93c83-0c22-4ac0-b0a2-f9f9fe35a478,0fd93c83-0c22-4ac0-b0a2-f9f9fe35a478,1,0,45b9ede4-3776-4d26-974b-0ce724f62af6,45b9ede4-3776-4d26-974b-0ce724f62af6,1,0,a75aa04b-a04e-4c21-8a4c-c8cfefcd7c52,a75aa04b-a04e-4c21-8a4c-c8cfefcd7c52,1,0,d35a861d-bc36-4811-97c9-4a9bc58a89f4,d35a861d-bc36-4811-97c9-4a9bc58a89f4,1,0,3b02a8f9-572a-44d4-b8ee-6e1a7459e235,3b02a8f9-572a-44d4-b8ee-6e1a7459e235,1,0,609c7552-ad78-489c-93e2-51b672e82082,609c7552-ad78-489c-93e2-51b672e82082,1,0,8270573d-8ed6-449d-853b-462d2dabaaa9,8270573d-8ed6-449d-853b-462d2dabaaa9,1,0,baeec6cd-b220-4240-95f2-3a0c1ee06c2e,baeec6cd-b220-4240-95f2-3a0c1ee06c2e,1,0,f2502463-67e4-4bfe-8ad5-fb80aa73975a,f2502463-67e4-4bfe-8ad5-fb80aa73975a,1,0,59e885e6-d978-40c2-95b6-35fc61074fb4,59e885e6-d978-40c2-95b6-35fc61074fb4,1,0,267dc512-9ee1-4bc1-9034-3effb7fb2949,267dc512-9ee1-4bc1-9034-3effb7fb2949,1,0,0f211e73-5be9-4015-93e7-ccf63e793cb6,0f211e73-5be9-4015-93e7-ccf63e793cb6,1,0,6574d8f4-fb97-4a26-b166-711fad63aa07,6574d8f4-fb97-4a26-b166-711fad63aa07,1,0,fb3eddaf-3241-4d59-8314-97a5ae9258c4,fb3eddaf-3241-4d59-8314-97a5ae9258c4,1,0,a3b0494c-f436-45ea-9577-4c0c86b057c9,a3b0494c-f436-45ea-9577-4c0c86b057c9,1,0,5101c142-b25c-4bef-80e7-7407f2c15c90,5101c142-b25c-4bef-80e7-7407f2c15c90,1,0,6d7872f1-fd54-41c4-8253-5f2b125f31ae,6d7872f1-fd54-41c4-8253-5f2b125f31ae,1,0,0c218200-27a8-4f71-9b09-3632dd453644,0c218200-27a8-4f71-9b09-3632dd453644,1,0,2d8a74e5-eb29-448b-b4c0-1f41fa171b5e,2d8a74e5-eb29-448b-b4c0-1f41fa171b5e,1,0,b5d30250-18ab-4af1-b99a-ff5dba334d1f,b5d30250-18ab-4af1-b99a-ff5dba334d1f,1,0,2111e188-6b21-4a43-8e5d-befa17c4bbb8,2111e188-6b21-4a43-8e5d-befa17c4bbb8,1,0,bdd6a82e-c5c5-4ce6-b7ea-51e5c831e937,bdd6a82e-c5c5-4ce6-b7ea-51e5c831e937,1,0,a5b110af-ca1e-4cc0-bfd7-7bf0829905df,a5b110af-ca1e-4cc0-bfd7-7bf0829905df,1,0,a018eb35-75b5-47ce-af7d-5e59b27c753f,a018eb35-75b5-47ce-af7d-5e59b27c753f,1,0,a20d8863-4208-4865-be46-e00ed44389e5,a20d8863-4208-4865-be46-e00ed44389e5,1,0,519c3950-0907-49d8-ab35-1d1bf15d4602,519c3950-0907-49d8-ab35-1d1bf15d4602,1,0,55372293-0f58-463e-9a7d-404b338b4155,55372293-0f58-463e-9a7d-404b338b4155,1,0,feecc066-7dec-45ff-a88a-41221a05d0f4,feecc066-7dec-45ff-a88a-41221a05d0f4,1,0,b2dbc40b-e5bd-40fa-9365-374c25a4d961,b2dbc40b-e5bd-40fa-9365-374c25a4d961,1,0,fd9ce2ed-8f31-4b75-8a62-6563f4de92fd,fd9ce2ed-8f31-4b75-8a62-6563f4de92fd,1,0,936f1aa5-7516-444b-b451-1162fa5d705f,936f1aa5-7516-444b-b451-1162fa5d705f,1,0,dd8e0f41-51a3-4bf2-a32e-084f9ad09be7,dd8e0f41-51a3-4bf2-a32e-084f9ad09be7,1,0,9e323b0d-4e3b-45d4-9705-aa30e63014f5,9e323b0d-4e3b-45d4-9705-aa30e63014f5,1,0,5afa798a-958e-4e0c-a380-0104f4c037a7,5afa798a-958e-4e0c-a380-0104f4c037a7,1,0,c0295fd9-c749-41b3-8d0d-6af16f484b1f,c0295fd9-c749-41b3-8d0d-6af16f484b1f,1,0,bd32a863-3090-432d-89c4-356ba86a0bdc,bd32a863-3090-432d-89c4-356ba86a0bdc,1,0,4621bf5a-46b5-4b82-8ae4-cc8e11e81ba0,4621bf5a-46b5-4b82-8ae4-cc8e11e81ba0,1,0,ed5465b4-a556-4078-ab18-49fef2afba2e,ed5465b4-a556-4078-ab18-49fef2afba2e,1,0,7368ab8f-59d5-4270-a43b-0f3e422169ed,7368ab8f-59d5-4270-a43b-0f3e422169ed,1,0,eeb0571b-1b74-4889-b8b5-f94186d692d7,eeb0571b-1b74-4889-b8b5-f94186d692d7,1,0,9ef3b72c-caa3-486b-9917-04c00f6689c1,9ef3b72c-caa3-486b-9917-04c00f6689c1,1,0,cb3039d8-4b11-4d03-b0ca-eae5dfc01b0a,cb3039d8-4b11-4d03-b0ca-eae5dfc01b0a,1,0,9245417f-f247-47ba-a1b4-a17ec2e8776c,9245417f-f247-47ba-a1b4-a17ec2e8776c,1,0,a4b721d7-b119-47eb-80e0-7db34c83964f,a4b721d7-b119-47eb-80e0-7db34c83964f,1,0,512629d1-e8b7-4f66-b613-b8c0cb9c250b,512629d1-e8b7-4f66-b613-b8c0cb9c250b,1,0,b7cf4684-4432-4658-9c06-b315d470a3a6,b7cf4684-4432-4658-9c06-b315d470a3a6,1,0,d3bc8211-54d8-47dd-aecf-5da72b65195f,d3bc8211-54d8-47dd-aecf-5da72b65195f,1,0,33f11da8-f670-4ec3-9d40-96fce031c60f,33f11da8-f670-4ec3-9d40-96fce031c60f,1,0,97cbd5b5-5a39-418c-93b5-f9934fa1ba4e,97cbd5b5-5a39-418c-93b5-f9934fa1ba4e,1,0,3734619b-7059-4547-8b97-0b3393389d4d,3734619b-7059-4547-8b97-0b3393389d4d,1,0,a30bf95f-aabd-4da0-8287-61e08f9362fb,a30bf95f-aabd-4da0-8287-61e08f9362fb,1,0,f5a7df18-2ddb-4053-9aeb-57fc37ae557e,f5a7df18-2ddb-4053-9aeb-57fc37ae557e,1,0,4078867c-2972-47f9-bebd-935a6f1cc667,4078867c-2972-47f9-bebd-935a6f1cc667,1,0,8502fe39-c241-4be5-a313-fd887bbbdfa1,8502fe39-c241-4be5-a313-fd887bbbdfa1,1,0,67a71201-13e5-42a3-902f-fb3a59710dfb,67a71201-13e5-42a3-902f-fb3a59710dfb,1,0,3a79a951-a997-4596-ab62-ba376d67725d,3a79a951-a997-4596-ab62-ba376d67725d,1,0,dd4fe688-c113-4ac5-8114-b89cf1b0eb55,dd4fe688-c113-4ac5-8114-b89cf1b0eb55,1,0,c2f246fa-81a3-436c-9f7d-4c8eb7103bf1,c2f246fa-81a3-436c-9f7d-4c8eb7103bf1,1,0,c3e9225a-7fab-499f-baca-eca56914f1ea,c3e9225a-7fab-499f-baca-eca56914f1ea,1,0,5072ce03-c5b6-4e2b-8a29-d3a8e0b907d2,5072ce03-c5b6-4e2b-8a29-d3a8e0b907d2,1,0,b0e9e59d-9636-492c-91d0-71d43b6d6694,b0e9e59d-9636-492c-91d0-71d43b6d6694,1,0,d5fa6b14-d0a4-4d97-ae24-70fed456f07f,d5fa6b14-d0a4-4d97-ae24-70fed456f07f,1,0,54957cc3-685b-4d6d-a0e8-14d51f54224e,54957cc3-685b-4d6d-a0e8-14d51f54224e,1,0,f725ada3-78ef-4e6d-9466-b7047cf695e0,f725ada3-78ef-4e6d-9466-b7047cf695e0,1,0,4f741112-f127-479e-939b-a2c6e36bb57f,4f741112-f127-479e-939b-a2c6e36bb57f,1,0,e169580b-be49-4e39-9cc8-f9942b2d5b8a,e169580b-be49-4e39-9cc8-f9942b2d5b8a,1,0,cacbaa6b-ba3f-43af-9c7b-12fd9f124184,cacbaa6b-ba3f-43af-9c7b-12fd9f124184,1,0,b2de5117-88eb-47ed-bcd4-7001c4549658,b2de5117-88eb-47ed-bcd4-7001c4549658,1,0,884c28de-434f-440a-8c63-67e659c097ad,884c28de-434f-440a-8c63-67e659c097ad,1,0,92ead3b5-8c55-4e4d-bd47-009e025b22f8,92ead3b5-8c55-4e4d-bd47-009e025b22f8,1,0,50d8e365-aa58-4b60-8992-01943379d485,50d8e365-aa58-4b60-8992-01943379d485,1,0,9bb58c7c-d87d-435b-adf6-09c8f75d47b2,9bb58c7c-d87d-435b-adf6-09c8f75d47b2,1,0,b3f7f763-bea9-4f59-9450-df95e5c3d89d,b3f7f763-bea9-4f59-9450-df95e5c3d89d,1,0,9111e28e-c1c7-414b-9288-61bd06a04d04,9111e28e-c1c7-414b-9288-61bd06a04d04,1,0,bcd705ba-c9ac-4e73-94b1-7632c0f06c04,bcd705ba-c9ac-4e73-94b1-7632c0f06c04,1,0,fec102ea-a3f6-49b5-b4b8-6884b0654129,fec102ea-a3f6-49b5-b4b8-6884b0654129,1,0,246571fb-38c7-4da6-929d-d8b44bc3437c,246571fb-38c7-4da6-929d-d8b44bc3437c,1,0,047fd6d7-5e30-4184-a09a-6525de526cc7,047fd6d7-5e30-4184-a09a-6525de526cc7,1,0,beb44b02-5d5e-4127-aee7-e184a43a4210,beb44b02-5d5e-4127-aee7-e184a43a4210,1,0,1dedfbc2-9250-4229-a6ea-5e085f33e7c3,1dedfbc2-9250-4229-a6ea-5e085f33e7c3,1,0,e24641ed-3e92-46d7-852b-9958ab7bc520,e24641ed-3e92-46d7-852b-9958ab7bc520,1,0,bc2aa3f9-ef2c-49a5-8cd9-ddd8a8cbe19d,bc2aa3f9-ef2c-49a5-8cd9-ddd8a8cbe19d,1,0,b6ac4cd6-c68f-4464-88e9-a8d335d581c6,b6ac4cd6-c68f-4464-88e9-a8d335d581c6,1,0,2c61114f-abd7-4415-8cdf-4fe95d9fe354,2c61114f-abd7-4415-8cdf-4fe95d9fe354,1,0,abd7a766-5cc1-48db-8d29-797e9d666a78,abd7a766-5cc1-48db-8d29-797e9d666a78,1,0,1704b5e3-8e77-4df6-9223-e6e5c41a280d,1704b5e3-8e77-4df6-9223-e6e5c41a280d,1,0,62eca88f-025d-44de-b92c-46cd8bc7e4a1,62eca88f-025d-44de-b92c-46cd8bc7e4a1,1,0,8fbf9432-77e8-4951-87a1-4368e3a5e117,8fbf9432-77e8-4951-87a1-4368e3a5e117,1,0,55d47b57-3cc0-41cc-ac43-aecaecca7416,55d47b57-3cc0-41cc-ac43-aecaecca7416,1,0,fbd5d6d8-05cd-43a3-85da-8dcbeee08333,fbd5d6d8-05cd-43a3-85da-8dcbeee08333,1,0,b0dde395-8498-4469-9507-d290798117d7,b0dde395-8498-4469-9507-d290798117d7,1,0,999616ea-0faa-4ae2-9841-6a6997ea6694,999616ea-0faa-4ae2-9841-6a6997ea6694,1,0,c5f91669-13d8-4f0a-a054-2701078da38a,c5f91669-13d8-4f0a-a054-2701078da38a,1,0,34f9872b-e02e-4093-ba06-3cb5b8995850,34f9872b-e02e-4093-ba06-3cb5b8995850,1,0,18515c19-c9ef-4c9f-8d12-4f58ffa251e8,18515c19-c9ef-4c9f-8d12-4f58ffa251e8,1,0,3afe11f6-7424-4b41-a42f-91db33756fa3,3afe11f6-7424-4b41-a42f-91db33756fa3,1,0,94e68502-adf1-476e-be2f-8418385959fa,94e68502-adf1-476e-be2f-8418385959fa,1,0,bf80ccc5-f907-4e7f-a007-6030c7ba682e,bf80ccc5-f907-4e7f-a007-6030c7ba682e,1,0,134bbd7c-cadd-4395-b7a4-0249dfe7d0b1,134bbd7c-cadd-4395-b7a4-0249dfe7d0b1,1,0,05f1f184-50cb-47c5-b3a8-62be6a9780c1,05f1f184-50cb-47c5-b3a8-62be6a9780c1,1,0,f908b81e-f5ba-46ca-b7c0-8cb43ab23901,f908b81e-f5ba-46ca-b7c0-8cb43ab23901,1,0,3c305f89-e453-46c7-987b-f01dc964efdb,3c305f89-e453-46c7-987b-f01dc964efdb,1,0,1809ff43-2af2-44d1-ac7b-91d5bbe4f0ce,1809ff43-2af2-44d1-ac7b-91d5bbe4f0ce,1,0,bf40c9ed-b7db-4200-9646-c4e751fc2014,bf40c9ed-b7db-4200-9646-c4e751fc2014,1,0,2bf9c338-d31e-467e-8281-d1d6a3a6b2e2,2bf9c338-d31e-467e-8281-d1d6a3a6b2e2,1,0,3c2c192e-4869-4cc6-ba47-1fadac5b9678,3c2c192e-4869-4cc6-ba47-1fadac5b9678,1,0,58c3936c-4db0-45c8-a22e-b5dd49a61497,58c3936c-4db0-45c8-a22e-b5dd49a61497,1,0,9aa607bc-5870-436a-bbe1-296560393e3b,9aa607bc-5870-436a-bbe1-296560393e3b,1,0,1635be16-4861-4a7d-babc-4caff448a7f7,1635be16-4861-4a7d-babc-4caff448a7f7,1,0,9e399087-c957-4a7a-ab9d-2b689736caab,9e399087-c957-4a7a-ab9d-2b689736caab,1,0,e7542e37-a2f0-43b5-852e-4e2b24b1b71f,e7542e37-a2f0-43b5-852e-4e2b24b1b71f,1,0,3e94649c-7d69-4fb4-ada1-ae00eabf02b6,3e94649c-7d69-4fb4-ada1-ae00eabf02b6,1,0,2b7372be-af0d-464e-8d09-8172229790af,2b7372be-af0d-464e-8d09-8172229790af,1,0,d85346db-be25-4dab-a2db-647c3d40dd17,d85346db-be25-4dab-a2db-647c3d40dd17,1,0,d51ce1df-6172-4682-9986-131e7daba89e,d51ce1df-6172-4682-9986-131e7daba89e,1,0,6a8b224c-6ce6-4ede-bd36-eb16baebd008,6a8b224c-6ce6-4ede-bd36-eb16baebd008,1,0,1666a55d-9e90-419f-9a57-cb05c6b20bf7,1666a55d-9e90-419f-9a57-cb05c6b20bf7,1,0,b2752418-7166-48b6-a95d-2c9d488b9c7b,b2752418-7166-48b6-a95d-2c9d488b9c7b,1,0,f4147cac-f195-4308-9ccf-07e640196716,f4147cac-f195-4308-9ccf-07e640196716,1,0,2204ae4b-c41f-4125-998e-0fae12d2e9e3,2204ae4b-c41f-4125-998e-0fae12d2e9e3,1,0,52846ee8-d0ca-4c65-8f62-a3f6bea93a8b,52846ee8-d0ca-4c65-8f62-a3f6bea93a8b,1,0,aa3b0ce8-651b-4685-8744-19db537d94c4,aa3b0ce8-651b-4685-8744-19db537d94c4,1,0,0b8998f0-0f59-4223-8b54-ea360aa9513d,0b8998f0-0f59-4223-8b54-ea360aa9513d,1,0,1102079f-d424-4ebb-8496-d48f596c5c62,1102079f-d424-4ebb-8496-d48f596c5c62,1,0,c7bafd34-5b15-42ec-b329-0be3002775ad,c7bafd34-5b15-42ec-b329-0be3002775ad,1,0,6feb2278-9149-47f8-a0ec-eb4bd9f44716,6feb2278-9149-47f8-a0ec-eb4bd9f44716,1,0,e99606f3-cf75-44b2-ad50-c88a8c3d189c,e99606f3-cf75-44b2-ad50-c88a8c3d189c,1,0,b4fa35f9-cb7e-46a8-b32b-801d212c8fcf,b4fa35f9-cb7e-46a8-b32b-801d212c8fcf,1,0,c960082b-8c16-4d7b-b7fd-b1f2bfe07e0b,c960082b-8c16-4d7b-b7fd-b1f2bfe07e0b,1,0,cd6770d5-cd3c-47af-bc46-c865993adf63,cd6770d5-cd3c-47af-bc46-c865993adf63,1,0,97ec899d-a2a0-4691-83ff-25b78dd49ef6,97ec899d-a2a0-4691-83ff-25b78dd49ef6,1,0,411db885-f761-44e5-bdd1-9fdf9e741ac1,411db885-f761-44e5-bdd1-9fdf9e741ac1,1,0,269ada84-71a9-4b4b-9604-caa40c5b7067,269ada84-71a9-4b4b-9604-caa40c5b7067,1,0,ea13607a-3e05-4468-9932-41b6d51cfedf,ea13607a-3e05-4468-9932-41b6d51cfedf,1,0,99c00352-cafe-4430-8c8d-2850a13bb6cc,99c00352-cafe-4430-8c8d-2850a13bb6cc,1,0,22fc6da4-3891-4f35-9dfe-c6d359c7e09e,22fc6da4-3891-4f35-9dfe-c6d359c7e09e,1,0,9f9936fc-54a0-4812-b12d-2f8f91551440,9f9936fc-54a0-4812-b12d-2f8f91551440,1,0,2eeea138-481c-4fde-9e8a-709d751cc469,2eeea138-481c-4fde-9e8a-709d751cc469,1,0,70a3df8f-c12a-4185-81c4-39a5114ef7a9,70a3df8f-c12a-4185-81c4-39a5114ef7a9,1,0,bd362ff9-3dec-4a4b-9595-8609de76e842,bd362ff9-3dec-4a4b-9595-8609de76e842,1,0,76cc9ae1-7ac2-4b99-8def-f21dc55ad07d,76cc9ae1-7ac2-4b99-8def-f21dc55ad07d,1,0,43e37533-ed38-4000-a387-5749f8d9aaf3,43e37533-ed38-4000-a387-5749f8d9aaf3,1,0,e93bdb44-64b3-43d8-b15a-c561dbb91974,e93bdb44-64b3-43d8-b15a-c561dbb91974,1,0,928e0e05-b946-48c8-9619-2d93eb94b036,928e0e05-b946-48c8-9619-2d93eb94b036,1,0,99e701f7-9206-4b20-bb32-e60c9a1d570e,99e701f7-9206-4b20-bb32-e60c9a1d570e,1,0,a7c7c835-5402-4bdd-a0e3-d21746174d5a,a7c7c835-5402-4bdd-a0e3-d21746174d5a,1,0,54766e6b-cf49-4c58-b5e5-dcb6362ac5e2,54766e6b-cf49-4c58-b5e5-dcb6362ac5e2,1,0,f2210cf1-f9f5-41ed-8b4d-937778da842b,f2210cf1-f9f5-41ed-8b4d-937778da842b,1,0,07e81872-afac-4720-86b4-91e7bf4a2881,07e81872-afac-4720-86b4-91e7bf4a2881,1,0,d4b49ed0-3d3f-4b68-bc1e-949e8e338e9a,d4b49ed0-3d3f-4b68-bc1e-949e8e338e9a,1,0,542a53f5-56c5-4ca9-90d1-d689532c69fd,542a53f5-56c5-4ca9-90d1-d689532c69fd,1,0,02c5f3b2-d691-4eaf-84fd-763770e4b1cb,02c5f3b2-d691-4eaf-84fd-763770e4b1cb,1,0,845262f8-8208-4c90-98ec-c85dd5734cf0,845262f8-8208-4c90-98ec-c85dd5734cf0,1,0,532dfa48-39b0-4d0f-9f8c-b51ca27e47a9,532dfa48-39b0-4d0f-9f8c-b51ca27e47a9,1,0,17bc0f34-c35b-4beb-be5f-8e8d8f06c053,17bc0f34-c35b-4beb-be5f-8e8d8f06c053,1,0,f91813e6-b75c-43fb-8da3-a0d958dc6fa0,f91813e6-b75c-43fb-8da3-a0d958dc6fa0,1,0,ad066c0d-4f4c-48af-9cc8-bb835372150a,ad066c0d-4f4c-48af-9cc8-bb835372150a,1,0,a2145e81-239e-4267-8a43-ea3f7babe878,a2145e81-239e-4267-8a43-ea3f7babe878,1,0,a3720a0f-cf95-4acb-89dc-c4e6e38f72ca,a3720a0f-cf95-4acb-89dc-c4e6e38f72ca,1,0,fb26953e-1aa3-4f69-8b9b-ad99e3431e12,fb26953e-1aa3-4f69-8b9b-ad99e3431e12,1,0,39598414-9c1d-46ec-a534-8bd43e622e45,39598414-9c1d-46ec-a534-8bd43e622e45,1,0,b552c510-4fd4-4c16-9022-dc5babcafc52,b552c510-4fd4-4c16-9022-dc5babcafc52,1,0,3892c06d-28f1-4238-a929-201316cac1ed,3892c06d-28f1-4238-a929-201316cac1ed,1,0,c13dea2e-17fa-4a5f-a70f-96e623db8a6b,c13dea2e-17fa-4a5f-a70f-96e623db8a6b,1,0,ecc0ac05-9813-482d-bc39-0be1490d3f8b,ecc0ac05-9813-482d-bc39-0be1490d3f8b,1,0,866f53c8-4f1e-484a-a809-6130f7eef872,866f53c8-4f1e-484a-a809-6130f7eef872,1,0,339e8cba-a92e-42f6-8d00-3b8b56ce3b0f,339e8cba-a92e-42f6-8d00-3b8b56ce3b0f,1,0,567c68fd-74c7-4b6e-9119-56ac8d78073c,567c68fd-74c7-4b6e-9119-56ac8d78073c,1,0,ce87e3e8-2d05-415b-bd27-c366ca871097,ce87e3e8-2d05-415b-bd27-c366ca871097,1,0,b4233d51-daa9-47ff-8b51-f65c31fc8037,b4233d51-daa9-47ff-8b51-f65c31fc8037,1,0,99410b31-9fbe-42bf-875c-9d0425e1b7b2,99410b31-9fbe-42bf-875c-9d0425e1b7b2,1,0,bc79b15c-5bde-4587-a1ed-b5c4909eec5d,bc79b15c-5bde-4587-a1ed-b5c4909eec5d,1,0,3326bbcb-b277-44db-a252-2448119e8146,3326bbcb-b277-44db-a252-2448119e8146,1,0,61cac5f7-320c-4098-9078-44fadcdeb219,61cac5f7-320c-4098-9078-44fadcdeb219,1,0,304304b1-36a4-42bb-8ab9-b23b59795001,304304b1-36a4-42bb-8ab9-b23b59795001,1,0,a22d1a4f-cb7c-4bcc-b258-ecca282fb071,a22d1a4f-cb7c-4bcc-b258-ecca282fb071,1,0,e5beda2c-f4e2-4a6b-a1d0-a877eb0c9f5b,e5beda2c-f4e2-4a6b-a1d0-a877eb0c9f5b,1,0,cd454738-62dd-4f95-af33-b52750678428,cd454738-62dd-4f95-af33-b52750678428,1,0,2a479b8f-7569-43d0-8ca3-9001d6ec57f0,2a479b8f-7569-43d0-8ca3-9001d6ec57f0,1,0,e4abafc6-f859-4d96-9818-5b9bf8d66d69,e4abafc6-f859-4d96-9818-5b9bf8d66d69,1,0,535acd2c-26d2-4f32-9ae6-cc1956317c59,535acd2c-26d2-4f32-9ae6-cc1956317c59,1,0,801adeeb-8a7f-44c1-b649-a7dfffc7b65d,801adeeb-8a7f-44c1-b649-a7dfffc7b65d,1,0,ac4e0868-ba49-46b4-8872-d42483a5591f,ac4e0868-ba49-46b4-8872-d42483a5591f,1,0,45e6c4a6-1d63-4b94-a7d2-fbd3fb68061b,45e6c4a6-1d63-4b94-a7d2-fbd3fb68061b,1,0,0493dcf1-5f94-41f9-a4c7-a52e12a29068,0493dcf1-5f94-41f9-a4c7-a52e12a29068,1,0,ca4c0299-625a-4b03-be0e-36ffb45c6d08,ca4c0299-625a-4b03-be0e-36ffb45c6d08,1,0,7fa1119b-4321-4b8f-a879-1d940084145a,7fa1119b-4321-4b8f-a879-1d940084145a,1,0,5d9c0841-6ea6-48dc-a53b-9f19894750f8,5d9c0841-6ea6-48dc-a53b-9f19894750f8,1,0,86b5303b-d967-4bc6-b2da-066c5a58613f,86b5303b-d967-4bc6-b2da-066c5a58613f,1,0,853b824d-9377-475f-913e-d02bd60f5f64,853b824d-9377-475f-913e-d02bd60f5f64,1,0,d5a73869-381e-4878-8db7-596643937202,d5a73869-381e-4878-8db7-596643937202,1,0,c91de10a-d370-4495-9d9e-98581e566385,c91de10a-d370-4495-9d9e-98581e566385,1,0,3a93f1d2-3e9c-41a9-9d53-314538a96bb2,3a93f1d2-3e9c-41a9-9d53-314538a96bb2,1,0,8bc4bece-027f-460c-ade0-d7c7d3d9a6b7,8bc4bece-027f-460c-ade0-d7c7d3d9a6b7,1,0,dd73a8d8-a6db-4d3c-a808-d82bad8876b9,dd73a8d8-a6db-4d3c-a808-d82bad8876b9,1,0,11a93e3a-3c5b-4242-913c-02474a383344,11a93e3a-3c5b-4242-913c-02474a383344,1,0,ddd2861c-592b-4879-b9de-4b05a22c0b43,ddd2861c-592b-4879-b9de-4b05a22c0b43,1,0,5b383021-a800-4f0b-b8a3-d344389bff6c,5b383021-a800-4f0b-b8a3-d344389bff6c,1,0,8fe71bce-a61a-4a2e-bd18-81c7a7bb4456,8fe71bce-a61a-4a2e-bd18-81c7a7bb4456,1,0,11e708d8-82f4-4d45-a77d-7b9d23c0ef54,11e708d8-82f4-4d45-a77d-7b9d23c0ef54,1,0,8a57d427-a34e-4121-84e6-1a86a9f9092d,8a57d427-a34e-4121-84e6-1a86a9f9092d,1,0,dbc1bf11-e92a-4f4e-90d4-6a3ccdaec7e5,dbc1bf11-e92a-4f4e-90d4-6a3ccdaec7e5,1,0,29ec9423-25ef-4cf2-ad6a-58f854c3e22b,29ec9423-25ef-4cf2-ad6a-58f854c3e22b,1,0,2607e4d1-4fc0-4270-ad45-2c95d4aa04da,2607e4d1-4fc0-4270-ad45-2c95d4aa04da,1,0,b4b4bd5d-a860-4994-90b7-0c60ab680c4e,b4b4bd5d-a860-4994-90b7-0c60ab680c4e,1,0,68447105-a784-4803-8eb8-3701b0fc819d,68447105-a784-4803-8eb8-3701b0fc819d,1,0,ec892726-dee3-4edb-ad71-020404b09477,ec892726-dee3-4edb-ad71-020404b09477,1,0,ca47123d-90f5-4d1d-be06-34b505b01d81,ca47123d-90f5-4d1d-be06-34b505b01d81,1,0,5fb5320c-cd7c-4f28-ad6a-8670a60a9e11,5fb5320c-cd7c-4f28-ad6a-8670a60a9e11,1,0,59dee70d-aeca-470a-b3c4-e43bb16c5753,59dee70d-aeca-470a-b3c4-e43bb16c5753,1,0,82777e92-0681-44bf-b51e-4d98fcd5d5bd,82777e92-0681-44bf-b51e-4d98fcd5d5bd,1,0,2e0b331d-92d4-4250-94c6-9ced8cdcb1e4,2e0b331d-92d4-4250-94c6-9ced8cdcb1e4,1,0,cee126de-d567-44d3-b14c-35da6e501324,cee126de-d567-44d3-b14c-35da6e501324,1,0,4599ef83-5f1e-44af-ae0c-67988656a99e,4599ef83-5f1e-44af-ae0c-67988656a99e,1,0,acb0d7eb-2ed9-4419-b79d-7dc661d70c30,acb0d7eb-2ed9-4419-b79d-7dc661d70c30,1,0,e1b94dcf-ec37-4b2d-a7af-120eeee40944,e1b94dcf-ec37-4b2d-a7af-120eeee40944,1,0,7d2a37b1-a1a0-435a-846a-95e255655044,7d2a37b1-a1a0-435a-846a-95e255655044,1,0,109db64c-00dc-490e-99a5-4430d9344e99,109db64c-00dc-490e-99a5-4430d9344e99,1,0,85837a55-fed5-4b7b-a622-30d728b9a677,85837a55-fed5-4b7b-a622-30d728b9a677,1,0,0fd79cdb-dc7a-40ca-a3bc-2c7a7b4691bb,0fd79cdb-dc7a-40ca-a3bc-2c7a7b4691bb,1,0,6ede8b5c-7df0-44a5-9136-8109bbd8b5a9,6ede8b5c-7df0-44a5-9136-8109bbd8b5a9,1,0,325bacdd-793f-47d8-b987-57e9d5f2782b,325bacdd-793f-47d8-b987-57e9d5f2782b,1,0,80395d47-70d7-4d8d-9b18-93283fba80c2,80395d47-70d7-4d8d-9b18-93283fba80c2,1,0,8b621ec9-24c9-4166-90ce-29c5ad30f78b,8b621ec9-24c9-4166-90ce-29c5ad30f78b,1,0,cc98670a-7b18-4973-b211-90261c5c8c10,cc98670a-7b18-4973-b211-90261c5c8c10,1,0,da9821c3-4b16-48b7-9088-d3cf8ac536a6,da9821c3-4b16-48b7-9088-d3cf8ac536a6,1,0,fb36c775-1124-4ba6-8af8-133bf66fcb54,fb36c775-1124-4ba6-8af8-133bf66fcb54,1,0,51f9aff4-71da-4b1b-b48b-04122a17d855,51f9aff4-71da-4b1b-b48b-04122a17d855,1,0,d5142574-a040-4dd0-a482-cdc61c1d86ab,d5142574-a040-4dd0-a482-cdc61c1d86ab,1,0,62957889-503f-4923-a372-29776dc3b5e5,62957889-503f-4923-a372-29776dc3b5e5,1,0,90385850-d37b-4b2e-ac87-95c17f32197c,90385850-d37b-4b2e-ac87-95c17f32197c,1,0,b9e5bb39-ed0a-4e12-b7e4-2d9b5015bf9c,b9e5bb39-ed0a-4e12-b7e4-2d9b5015bf9c,1,0,dbced4aa-6432-4f0c-a99a-5a3e7b0f6755,dbced4aa-6432-4f0c-a99a-5a3e7b0f6755,1,0,6b28a716-2fb1-47f7-a7d6-f2fe7edb32c3,6b28a716-2fb1-47f7-a7d6-f2fe7edb32c3,1,0,e849e46c-2ce6-427b-92bc-06d7997f59bf,e849e46c-2ce6-427b-92bc-06d7997f59bf,1,0,5a971dc0-28bf-4426-9426-9f456aea080a,5a971dc0-28bf-4426-9426-9f456aea080a,1,0,f480ac52-e2f1-4ed0-a0b1-20a622f77302,f480ac52-e2f1-4ed0-a0b1-20a622f77302,1,0,5c63e7cd-ecdb-45ae-a589-f6c38f5a8e76,5c63e7cd-ecdb-45ae-a589-f6c38f5a8e76,1,0,b9b0fbdc-8fda-46d1-bb3e-561a03604971,b9b0fbdc-8fda-46d1-bb3e-561a03604971,1,0,eadfdbe3-bc85-4084-aef6-4cfd258ee6f1,eadfdbe3-bc85-4084-aef6-4cfd258ee6f1,1,0,672c2936-9771-4e32-a970-7ac7f12a21e8,672c2936-9771-4e32-a970-7ac7f12a21e8,1,0,73afaad8-dfa9-43e3-bdaf-543c3545d788,73afaad8-dfa9-43e3-bdaf-543c3545d788,1,0,c264441d-4805-4968-baa2-37b8970049c7,c264441d-4805-4968-baa2-37b8970049c7,1,0,88f34f9f-121b-43e2-9280-ec2b414681ad,88f34f9f-121b-43e2-9280-ec2b414681ad,1,0,4f0bda80-2246-43be-95f8-ae8480682cd5,4f0bda80-2246-43be-95f8-ae8480682cd5,1,0,ac4fa2a4-93a1-4aa6-986a-5f576457fc8a,ac4fa2a4-93a1-4aa6-986a-5f576457fc8a,1,0,6f683f46-9eef-4e78-bc2f-7174238bf53c,6f683f46-9eef-4e78-bc2f-7174238bf53c,1,0,7d1ed38b-98cf-4a0e-a605-680bb580d904,7d1ed38b-98cf-4a0e-a605-680bb580d904,1,0,b769eda0-11de-401c-a68b-4fce4555d4fc,b769eda0-11de-401c-a68b-4fce4555d4fc,1,0,fd7a668f-3099-4e15-956a-92c6295dd4d5,fd7a668f-3099-4e15-956a-92c6295dd4d5,1,0,afcbd830-ec5f-4865-a176-ea3014dff908,afcbd830-ec5f-4865-a176-ea3014dff908,1,0,dc5fc801-14e4-42e8-b396-76eb30b69eea,dc5fc801-14e4-42e8-b396-76eb30b69eea,1,0,485b9f00-475a-49e5-ade2-b2e05d94ecf0,485b9f00-475a-49e5-ade2-b2e05d94ecf0,1,0,310aef5a-84d9-4a68-af78-d623beff8a88,310aef5a-84d9-4a68-af78-d623beff8a88,1,0,398bf9d1-c353-461e-a1be-683047dcbe41,398bf9d1-c353-461e-a1be-683047dcbe41,1,0,f36150de-33af-4410-8a4c-8c9f4b545793,f36150de-33af-4410-8a4c-8c9f4b545793,1,0,62f97480-7d4a-48f3-9d1d-612909b242c9,62f97480-7d4a-48f3-9d1d-612909b242c9,1,0,2b4f6e2f-6cc4-4c7c-98a6-786f3793366b,2b4f6e2f-6cc4-4c7c-98a6-786f3793366b,1,0,3068be84-a401-4701-8ac9-411fae130f84,3068be84-a401-4701-8ac9-411fae130f84,1,0,957394a7-e5b8-47fc-8680-1e71efe2be7d,957394a7-e5b8-47fc-8680-1e71efe2be7d,1,0,ba49a9e4-6ec1-43ff-92cd-9dbf221bbf09,ba49a9e4-6ec1-43ff-92cd-9dbf221bbf09,1,0,4f25ef45-c8d9-401d-b0e8-2217ac310f04,4f25ef45-c8d9-401d-b0e8-2217ac310f04,1,0,504ca240-b5ae-433e-ae5f-d818263eea23,504ca240-b5ae-433e-ae5f-d818263eea23,1,0,32461819-9437-417d-8d1e-851c9a2dcee2,32461819-9437-417d-8d1e-851c9a2dcee2,1,0,74228950-8a4b-4dd6-a053-8650de202521,74228950-8a4b-4dd6-a053-8650de202521,1,0,6b9ce91e-08b9-4972-9878-1724c67b68ec,6b9ce91e-08b9-4972-9878-1724c67b68ec,1,0,640814f2-6082-475e-8006-25fd5b24afdb,640814f2-6082-475e-8006-25fd5b24afdb,1,0,6fcd2a3a-4d66-40e3-bde0-5c274b43783f,6fcd2a3a-4d66-40e3-bde0-5c274b43783f,1,0,569047c2-0879-4fba-a814-44812d21043b,569047c2-0879-4fba-a814-44812d21043b,1,0,0c3c4494-c037-431e-9eeb-9b6cfd7372c3,0c3c4494-c037-431e-9eeb-9b6cfd7372c3,1,0,80512d95-5458-4934-98ae-a7b58099196b,80512d95-5458-4934-98ae-a7b58099196b,1,0,6f2354cd-4a34-4921-96bb-b786486f85cf,6f2354cd-4a34-4921-96bb-b786486f85cf,1,0,f1b66ea8-262d-4b38-a039-b83a843f6ee8,f1b66ea8-262d-4b38-a039-b83a843f6ee8,1,0,bcae6e05-f1fd-413e-9eef-2e1cee42a962,bcae6e05-f1fd-413e-9eef-2e1cee42a962,1,0,40da1bca-ebb3-4c64-bf54-1f37b71d47b6,40da1bca-ebb3-4c64-bf54-1f37b71d47b6,1,0,778b4c8f-7a1e-4b4b-9f68-12cbf52bf195,778b4c8f-7a1e-4b4b-9f68-12cbf52bf195,1,0,91562fe8-e630-4bcb-a14e-c0e1e129141a,91562fe8-e630-4bcb-a14e-c0e1e129141a,1,0,c261abfd-3828-47b5-aa32-dfdd3a1636ad,c261abfd-3828-47b5-aa32-dfdd3a1636ad,1,0,e9aa6dab-0d96-42ce-9bd6-b8b10d755f8c,e9aa6dab-0d96-42ce-9bd6-b8b10d755f8c,1,0,1db1cb24-f364-4b91-bc96-c216764207a0,1db1cb24-f364-4b91-bc96-c216764207a0,1,0,64d7c8a7-1c15-4afb-ad97-abf8729c604e,64d7c8a7-1c15-4afb-ad97-abf8729c604e,1,0,a3cbbc8a-4afd-48c5-91d4-4849d18905c1,a3cbbc8a-4afd-48c5-91d4-4849d18905c1,1,0,5d6b29dc-38af-4dce-b79c-ce8f23afb3b1,5d6b29dc-38af-4dce-b79c-ce8f23afb3b1,1,0,c04b685a-0d2d-404c-a74a-775ffab298ce,c04b685a-0d2d-404c-a74a-775ffab298ce,1,0,5fe6967d-e333-464b-a89e-8c868c0ce37d,5fe6967d-e333-464b-a89e-8c868c0ce37d,1,0,5aef2892-7a87-4d3b-bb46-8340a7fb97a8,5aef2892-7a87-4d3b-bb46-8340a7fb97a8,1,0,8efa4c12-b5ba-4dfd-bdc9-e824402fc4b1,8efa4c12-b5ba-4dfd-bdc9-e824402fc4b1,1,0,0384ec55-dc18-40ae-ae83-7defc28d8f3f,0384ec55-dc18-40ae-ae83-7defc28d8f3f,1,0,54e57825-c6f3-44c3-9457-bc24317e23c2,54e57825-c6f3-44c3-9457-bc24317e23c2,1,0,84da1ef8-1784-4dfc-b17a-7728aa7ff62a,84da1ef8-1784-4dfc-b17a-7728aa7ff62a,1,0,9155c95b-6afb-41bb-bd0b-d37e503fc163,9155c95b-6afb-41bb-bd0b-d37e503fc163,1,0,d917c19e-be15-41cc-9c8a-a97c8de85309,d917c19e-be15-41cc-9c8a-a97c8de85309,1,0,54b5b44c-5f24-4b2a-982c-4489b18db7f0,54b5b44c-5f24-4b2a-982c-4489b18db7f0,1,0,5bc04a9a-6a0a-4607-b8eb-743b87143ae7,5bc04a9a-6a0a-4607-b8eb-743b87143ae7,1,0,e8045f52-7b27-48b0-b009-d488718b3bef,e8045f52-7b27-48b0-b009-d488718b3bef,1,0,1796bcbb-a629-4509-95c9-78562689f809,1796bcbb-a629-4509-95c9-78562689f809,1,0,cd9799c9-f5bf-4537-8885-06fb6e6b8f93,cd9799c9-f5bf-4537-8885-06fb6e6b8f93,1,0,d19e8fcc-62cc-4ce4-81bc-ead33a2714df,d19e8fcc-62cc-4ce4-81bc-ead33a2714df,1,0,1aa6b483-0f87-4ed3-94ea-8b81813532d6,1aa6b483-0f87-4ed3-94ea-8b81813532d6,1,0,0f79d87e-3311-4281-8f46-6154e708b930,0f79d87e-3311-4281-8f46-6154e708b930,1,0,af062541-4dec-4856-9be9-dec804fbae0b,af062541-4dec-4856-9be9-dec804fbae0b,1,0,e057e428-99c1-419d-a169-697c1e825e94,e057e428-99c1-419d-a169-697c1e825e94,1,0,784a60bd-4070-476d-9b8b-f607c76dc52b,784a60bd-4070-476d-9b8b-f607c76dc52b,1,0,904d5bd0-3843-4aaa-86a3-f8e12282e5c0,904d5bd0-3843-4aaa-86a3-f8e12282e5c0,1,0,90420fe9-f75a-4bcc-8e1a-9d665a61ecef,90420fe9-f75a-4bcc-8e1a-9d665a61ecef,1,0,748f7ddb-4cdc-46e5-9108-f7a550b33537,748f7ddb-4cdc-46e5-9108-f7a550b33537,1,0,0534460b-0548-45f0-ac79-aa4bc109655c,0534460b-0548-45f0-ac79-aa4bc109655c,1,0,47907538-9357-4885-8b50-17f2e16c260f,47907538-9357-4885-8b50-17f2e16c260f,1,0,17e1840f-fef3-4f17-8476-273e6af24cb4,17e1840f-fef3-4f17-8476-273e6af24cb4,1,0,a64566fa-b706-49bc-8277-4531145c400e,a64566fa-b706-49bc-8277-4531145c400e,1,0,a8f32b13-249c-4ce6-a521-f06a87f2e670,a8f32b13-249c-4ce6-a521-f06a87f2e670,1,0,815775e4-cfb7-495b-87c4-d134b90d93d4,815775e4-cfb7-495b-87c4-d134b90d93d4,1,0,e867f2f1-0550-4d15-9e40-ba36c9aabfbd,e867f2f1-0550-4d15-9e40-ba36c9aabfbd,1,0,8bdbb9ef-3a91-4374-b3c5-9447005bb1b7,8bdbb9ef-3a91-4374-b3c5-9447005bb1b7,1,0,7a27b378-89ac-4cad-8c69-a0cd14812d7e,7a27b378-89ac-4cad-8c69-a0cd14812d7e,1,0,d2433a11-8e1d-4e4c-966d-37cde6283f72,d2433a11-8e1d-4e4c-966d-37cde6283f72,1,0,59eb5919-3c33-48bf-b322-ec78018e4142,59eb5919-3c33-48bf-b322-ec78018e4142,1,0,63f308a5-b955-48a5-8052-50c5bede65d0,63f308a5-b955-48a5-8052-50c5bede65d0,1,0,1b614b97-5c1d-497a-9574-40114059f836,1b614b97-5c1d-497a-9574-40114059f836,1,0,477dfea4-e401-4cf0-b0a8-2df7c3836c58,477dfea4-e401-4cf0-b0a8-2df7c3836c58,1,0,294c000f-6979-4ed1-bbc7-7402facd9185,294c000f-6979-4ed1-bbc7-7402facd9185,1,0,db607fbc-f785-47d5-9550-577424aa3fe9,db607fbc-f785-47d5-9550-577424aa3fe9,1,0,b7111ddf-a623-4bae-90aa-636148492ca2,b7111ddf-a623-4bae-90aa-636148492ca2,1,0,905d9dcd-5793-4362-8fe8-2edce8c35e32,905d9dcd-5793-4362-8fe8-2edce8c35e32,1,0,a96cb6fd-54e0-4514-9210-7f4636acd336,a96cb6fd-54e0-4514-9210-7f4636acd336,1,0,3580e7a7-95d1-4a8e-bc12-a1449fe03757,3580e7a7-95d1-4a8e-bc12-a1449fe03757,1,0,13759790-6c70-4323-9321-a68b90c51663,13759790-6c70-4323-9321-a68b90c51663,1,0,d9704b20-c29c-4e7f-b777-0ac9080a5631,d9704b20-c29c-4e7f-b777-0ac9080a5631,1,0,c1372891-0f55-4868-ab97-906eff52be0e,c1372891-0f55-4868-ab97-906eff52be0e,1,0,33e96bda-1708-4ee4-8d4d-3b919bda3e38,33e96bda-1708-4ee4-8d4d-3b919bda3e38,1,0,53fb35a7-44ab-42e7-8dba-6fa08bf5ba2c,53fb35a7-44ab-42e7-8dba-6fa08bf5ba2c,1,0,93fcaa62-2a19-468b-9128-c7930583fbfd,93fcaa62-2a19-468b-9128-c7930583fbfd,1,0,2d885109-4c96-41c0-a996-785bfd793c2d,2d885109-4c96-41c0-a996-785bfd793c2d,1,0,e870a1bd-0c08-4d1e-832a-357922983c19,e870a1bd-0c08-4d1e-832a-357922983c19,1,0,9f71aeac-f889-40dc-91bd-d670da4efd2b,9f71aeac-f889-40dc-91bd-d670da4efd2b,1,0,62f8a9b2-9e56-4d5c-a7e2-a85f5b27a5b7,62f8a9b2-9e56-4d5c-a7e2-a85f5b27a5b7,1,0,614ef0bd-3298-408b-bf71-37df8ee60702,614ef0bd-3298-408b-bf71-37df8ee60702,1,0,26ff1be6-f72a-456a-9dce-302029752603,26ff1be6-f72a-456a-9dce-302029752603,1,0,db850a08-0c99-4a57-9b04-38be64bd38fb,db850a08-0c99-4a57-9b04-38be64bd38fb,1,0,abeca127-5ae9-46af-a5e8-d6438fd68367,abeca127-5ae9-46af-a5e8-d6438fd68367,1,0,bce81631-9f6d-42b3-b4b6-2199afb08f2f,bce81631-9f6d-42b3-b4b6-2199afb08f2f,1,0,67d6878f-3e47-4142-8f98-c5a207f0b8a8,67d6878f-3e47-4142-8f98-c5a207f0b8a8,1,0,7f4b872f-0e50-49dd-984d-f5fc3ac3f2f0,7f4b872f-0e50-49dd-984d-f5fc3ac3f2f0,1,0,68636657-4d46-4c2a-9b2f-11521a55dfb4,68636657-4d46-4c2a-9b2f-11521a55dfb4,1,0,18a83f43-dc84-4f8a-9580-681b19f571c4,18a83f43-dc84-4f8a-9580-681b19f571c4,1,0,01c588b0-d0ce-4978-b04d-084e6a00fcc7,01c588b0-d0ce-4978-b04d-084e6a00fcc7,1,0,a23642d9-8c4f-44a5-8865-bfb286e47c55,a23642d9-8c4f-44a5-8865-bfb286e47c55,1,0,7b37e038-dcef-41e1-b6e7-ed73c6958415,7b37e038-dcef-41e1-b6e7-ed73c6958415,1,0,24df2d14-5ebf-4ded-ba14-5daee7a0c536,24df2d14-5ebf-4ded-ba14-5daee7a0c536,1,0,13d6e2e9-b268-4c1b-8b8b-30c5296cfe4c,13d6e2e9-b268-4c1b-8b8b-30c5296cfe4c,1,0,03bb028a-ee8c-411e-8382-653046f803c6,03bb028a-ee8c-411e-8382-653046f803c6,1,0,c4fa80ca-32d6-4a44-9fe2-7ffd67e1cb30,c4fa80ca-32d6-4a44-9fe2-7ffd67e1cb30,1,0,8aa73dfd-41ac-4f79-bf73-cd2da51b1232,8aa73dfd-41ac-4f79-bf73-cd2da51b1232,1,0,38d5ed93-133b-44fe-827a-69a6cfc0461d,38d5ed93-133b-44fe-827a-69a6cfc0461d,1,0,436a9c94-55f6-4463-becd-573189753ee7,436a9c94-55f6-4463-becd-573189753ee7,1,0,50bf4050-390c-419c-8f55-82a540093ab1,50bf4050-390c-419c-8f55-82a540093ab1,1,0,cae8a6f2-bbe9-4b73-b839-9bf8e5e2818d,cae8a6f2-bbe9-4b73-b839-9bf8e5e2818d,1,0,0a79ee40-e6d6-4dbf-8378-98c2ec1e8ef9,0a79ee40-e6d6-4dbf-8378-98c2ec1e8ef9,1,0,5148d263-de26-4c92-b090-ae59f42dfb05,5148d263-de26-4c92-b090-ae59f42dfb05,1,0,dbefe81f-85cf-4d84-9600-b359598c2543,dbefe81f-85cf-4d84-9600-b359598c2543,1,0,1a624a06-93b8-4d1f-8c14-2061e1e7927c,1a624a06-93b8-4d1f-8c14-2061e1e7927c,1,0,4ad54ca8-8e4a-4a35-9537-0395851fcdfb,4ad54ca8-8e4a-4a35-9537-0395851fcdfb,1,0,3e427c09-79ed-45f7-b4c9-d9aa7ccc01b2,3e427c09-79ed-45f7-b4c9-d9aa7ccc01b2,1,0,1a4dd1f5-c2d6-4e06-b428-ab7870810bf3,1a4dd1f5-c2d6-4e06-b428-ab7870810bf3,1,0,d5967e0f-03cd-4190-a702-7e9290eae1eb,d5967e0f-03cd-4190-a702-7e9290eae1eb,1,0,78fdbce8-8479-4edd-89c0-1bbaf8ffd482,78fdbce8-8479-4edd-89c0-1bbaf8ffd482,1,0,8eb18de5-8283-4d0c-bb11-b882e78181d5,8eb18de5-8283-4d0c-bb11-b882e78181d5,1,0,27b27cc5-d1ad-4a2a-bcf4-ec2ebb3eba43,27b27cc5-d1ad-4a2a-bcf4-ec2ebb3eba43,1,0,7059b117-714c-4710-aebe-76f88c4d41d5,7059b117-714c-4710-aebe-76f88c4d41d5,1,0,ea050453-4947-40dc-aa2a-503ddd1a235a,ea050453-4947-40dc-aa2a-503ddd1a235a,1,0,37d0e6d4-702e-46f5-ae87-4d393fa0c701,37d0e6d4-702e-46f5-ae87-4d393fa0c701,1,0,1e963c1e-f914-46e1-81d3-90d126fc6f8d,1e963c1e-f914-46e1-81d3-90d126fc6f8d,1,0,3a62d88e-9298-42c0-bd87-c749ecd01d19,3a62d88e-9298-42c0-bd87-c749ecd01d19,1,0,abbf064e-c6ea-4712-930b-a9fef42e0ee1,abbf064e-c6ea-4712-930b-a9fef42e0ee1,1,0,fc13dd80-ce44-4ed1-a9d7-dae44602b954,fc13dd80-ce44-4ed1-a9d7-dae44602b954,1,0,a3fe224e-c3ef-4e30-90e4-c4ed5eb11824,a3fe224e-c3ef-4e30-90e4-c4ed5eb11824,1,0,433b23a1-a863-4775-b2f2-1384e8f3cbbb,433b23a1-a863-4775-b2f2-1384e8f3cbbb,1,0,a1677c47-b9a4-427a-972d-9bb2293445b6,a1677c47-b9a4-427a-972d-9bb2293445b6,1,0,e4a328c0-e73b-465d-ae36-38e5a71690fa,e4a328c0-e73b-465d-ae36-38e5a71690fa,1,0,bf66612b-aec4-414b-bee6-9bcab145c7cc,bf66612b-aec4-414b-bee6-9bcab145c7cc,1,0,811f356f-554a-4a63-90b6-dedb5fec7c05,811f356f-554a-4a63-90b6-dedb5fec7c05,1,0,85bebd81-a355-4010-889b-cff6f72dafcb,85bebd81-a355-4010-889b-cff6f72dafcb,1,0,49521f36-fd1b-47dd-81cc-48b6fb651e22,49521f36-fd1b-47dd-81cc-48b6fb651e22,1,0,1491cc2a-b3be-4bcc-a181-ce68d4b5d4cb,1491cc2a-b3be-4bcc-a181-ce68d4b5d4cb,1,0,bc946e21-53bb-4332-8c63-7b0aa78826eb,bc946e21-53bb-4332-8c63-7b0aa78826eb,1,0,4be2bdad-9a43-4593-acbc-a02e9144a89f,4be2bdad-9a43-4593-acbc-a02e9144a89f,1,0,64a86d5d-f925-45ee-82da-76df1cc20729,64a86d5d-f925-45ee-82da-76df1cc20729,1,0,eb4455f2-a5a0-44fb-8302-7312bc32df66,eb4455f2-a5a0-44fb-8302-7312bc32df66,1,0,cd6d2ab5-8e5c-4db3-8c8c-0526046a9b68,cd6d2ab5-8e5c-4db3-8c8c-0526046a9b68,1,0,9f20e59e-7db8-466f-b965-7045fc3f1489,9f20e59e-7db8-466f-b965-7045fc3f1489,1,0,cb057756-d3f7-4c50-a9d0-bac9ca2abd46,cb057756-d3f7-4c50-a9d0-bac9ca2abd46,1,0,89ac3d39-1915-4e67-a4e4-5a67a155cb75,89ac3d39-1915-4e67-a4e4-5a67a155cb75,1,0,d27b637d-5a51-49ff-bf73-343891534586,d27b637d-5a51-49ff-bf73-343891534586,1,0,b5a073a2-54e2-47c9-b533-f75fd2c9f343,b5a073a2-54e2-47c9-b533-f75fd2c9f343,1,0,0c8571be-f9b6-4292-add9-980cfe7fa2ec,0c8571be-f9b6-4292-add9-980cfe7fa2ec,1,0,989b8ccd-bc05-48c1-9969-b3733028b65f,989b8ccd-bc05-48c1-9969-b3733028b65f,1,0,6c70b13d-f9d0-459f-8d38-c01c11f356f1,6c70b13d-f9d0-459f-8d38-c01c11f356f1,1,0,45ca19df-90f3-4143-a659-bc0cb97efee9,45ca19df-90f3-4143-a659-bc0cb97efee9,1,0,6fe997a3-d729-420b-b2b2-558e9a1031ee,6fe997a3-d729-420b-b2b2-558e9a1031ee,1,0,4e1b48b1-c998-4f99-94e7-50af22059bfa,4e1b48b1-c998-4f99-94e7-50af22059bfa,1,0,bbaed1bd-0eb7-4f2b-b844-ab79c1d0a091,bbaed1bd-0eb7-4f2b-b844-ab79c1d0a091,1,0,2e7fbea4-57ac-4633-bb39-8725e57bc7ba,2e7fbea4-57ac-4633-bb39-8725e57bc7ba,1,0,83ae9b22-20ff-4e94-9282-19daf2274328,83ae9b22-20ff-4e94-9282-19daf2274328,1,0,dcad5d84-6643-4f0b-9e6e-73fe343db4a7,dcad5d84-6643-4f0b-9e6e-73fe343db4a7,1,0,e1ca1374-6dad-46d3-bb72-b67f3e6b1809,e1ca1374-6dad-46d3-bb72-b67f3e6b1809,1,0,a92b2b70-7e69-49d1-b921-c9d1b0718f94,a92b2b70-7e69-49d1-b921-c9d1b0718f94,1,0,d57a3300-0f9f-4fe5-b627-01c96b723053,d57a3300-0f9f-4fe5-b627-01c96b723053,1,0,ccfdf89b-f63e-4e46-b942-0d145695fdc6,ccfdf89b-f63e-4e46-b942-0d145695fdc6,1,0,6d40a555-9c20-4643-b689-2f61df772f78,6d40a555-9c20-4643-b689-2f61df772f78,1,0,19f690a3-d27b-43c1-94b7-585fc628da05,19f690a3-d27b-43c1-94b7-585fc628da05,1,0,d375fac5-098c-42b5-a0bd-9a4ae7516ada,d375fac5-098c-42b5-a0bd-9a4ae7516ada,1,0,29034f3e-d2eb-44e0-ac85-f2ffaf14eb90,29034f3e-d2eb-44e0-ac85-f2ffaf14eb90,1,0,ce65563d-03dc-46d8-96d4-c2d4ae2a2960,ce65563d-03dc-46d8-96d4-c2d4ae2a2960,1,0,5079f17e-dfd6-43f4-83fa-6ac408e5bd3b,5079f17e-dfd6-43f4-83fa-6ac408e5bd3b,1,0,7a4346c3-f1aa-4ce0-886e-76cd9abf563c,7a4346c3-f1aa-4ce0-886e-76cd9abf563c,1,0,cf783265-a4cb-436f-963a-1ff8220ae246,cf783265-a4cb-436f-963a-1ff8220ae246,1,0,3560f949-48f9-4fca-9fe2-81efc1ec0eee,3560f949-48f9-4fca-9fe2-81efc1ec0eee,1,0,662078f0-b75d-4c44-896f-7b7f74fd1ed4,662078f0-b75d-4c44-896f-7b7f74fd1ed4,1,0,4fa11304-fbd4-4c90-909d-5024283a6868,4fa11304-fbd4-4c90-909d-5024283a6868,1,0,207290c2-5221-48ad-99aa-bb0f7955df3f,207290c2-5221-48ad-99aa-bb0f7955df3f,1,0,162137ef-dea2-4ace-9e67-897dad0e7c3d,162137ef-dea2-4ace-9e67-897dad0e7c3d,1,0,d91a016e-cca9-4976-9c53-2c96fa95cf1a,d91a016e-cca9-4976-9c53-2c96fa95cf1a,1,0,012fb2f1-1c15-4800-8968-78a90c2a1348,012fb2f1-1c15-4800-8968-78a90c2a1348,1,0,a29a36aa-3c90-4be9-8ffc-20237721d1d0,a29a36aa-3c90-4be9-8ffc-20237721d1d0,1,0,aec8f9e6-d177-45f5-ba55-2d662428c2ae,aec8f9e6-d177-45f5-ba55-2d662428c2ae,1,0,b0bf8af5-d824-459c-bc40-17495406af3c,b0bf8af5-d824-459c-bc40-17495406af3c,1,0,7dfdd08b-7cd9-480c-829d-97f5e7152eec,7dfdd08b-7cd9-480c-829d-97f5e7152eec,1,0,64752b64-80ae-4537-986a-d61423dc546b,64752b64-80ae-4537-986a-d61423dc546b,1,0,2c37e123-ea35-4501-93e1-2fa295444bec,2c37e123-ea35-4501-93e1-2fa295444bec,1,0,c8bd3ac8-3b49-46bb-aadd-7270ad2868fc,c8bd3ac8-3b49-46bb-aadd-7270ad2868fc,1,0,a997a430-3ea8-4fde-9f53-7b507a04c215,a997a430-3ea8-4fde-9f53-7b507a04c215,1,0,f648e19d-026b-4fa7-8e70-1866b27b94f8,f648e19d-026b-4fa7-8e70-1866b27b94f8,1,0,d32081fc-47d3-4e66-837e-705c94ba8ca8,d32081fc-47d3-4e66-837e-705c94ba8ca8,1,0,69c207c2-7699-4467-b127-286ecd6d0f29,69c207c2-7699-4467-b127-286ecd6d0f29,1,0,70a06a02-8fb8-4a39-9e50-b7c27c41f49f,70a06a02-8fb8-4a39-9e50-b7c27c41f49f,1,0,810755ad-e921-4250-a0d3-af77fe1b6c79,810755ad-e921-4250-a0d3-af77fe1b6c79,1,0,f0f2f6de-b5ca-416c-b2e7-70a2df0993a1,f0f2f6de-b5ca-416c-b2e7-70a2df0993a1,1,0,99a40d71-f47a-4c04-9137-d297eda2fad9,99a40d71-f47a-4c04-9137-d297eda2fad9,1,0,33fa908a-5516-43c8-94d3-28c60eba8d66,33fa908a-5516-43c8-94d3-28c60eba8d66,1,0,f3750ea4-5f9e-4ab3-9495-3f182ecff407,f3750ea4-5f9e-4ab3-9495-3f182ecff407,1,0,14002d51-87d4-4647-92ef-a9b1935cb666,14002d51-87d4-4647-92ef-a9b1935cb666,1,0,e941a39d-1f3c-4e6e-af17-75f92a15dd40,e941a39d-1f3c-4e6e-af17-75f92a15dd40,1,0,d9bbedcb-4872-4183-83c2-6c2aae9634b0,d9bbedcb-4872-4183-83c2-6c2aae9634b0,1,0,72c695c3-66f6-4aa8-8a39-737ec6967a1d,72c695c3-66f6-4aa8-8a39-737ec6967a1d,1,0,2beef1e0-7a59-407e-b454-ee2ec38ca4b3,2beef1e0-7a59-407e-b454-ee2ec38ca4b3,1,0,b57a1d6f-8375-4d57-a2c1-f53e25318ddb,b57a1d6f-8375-4d57-a2c1-f53e25318ddb,1,0,d5d11480-d5c7-4569-80c1-f872655ff084,d5d11480-d5c7-4569-80c1-f872655ff084,1,0,b1e45d36-08e9-430e-976b-03e6e3320c6a,b1e45d36-08e9-430e-976b-03e6e3320c6a,1,0,b5384eb7-40e4-4437-b96b-eab9b7b5b8f2,b5384eb7-40e4-4437-b96b-eab9b7b5b8f2,1,0,8e21374f-5a65-406c-856d-2040607da4bc,8e21374f-5a65-406c-856d-2040607da4bc,1,0,7904d64a-2c30-4434-8924-b4817b727db9,7904d64a-2c30-4434-8924-b4817b727db9,1,0,c550a43a-1240-4f29-9045-a262f37f703a,c550a43a-1240-4f29-9045-a262f37f703a,1,0,86b1feed-ed65-4672-a49a-c52282b40be3,86b1feed-ed65-4672-a49a-c52282b40be3,1,0,85ac42d7-400a-4469-8fcd-e6a14f258792,85ac42d7-400a-4469-8fcd-e6a14f258792,1,0,ec681c28-661c-43e3-9285-9fc606f2d24c,ec681c28-661c-43e3-9285-9fc606f2d24c,1,0,be0fbbfc-5873-41a6-80ef-35ed1b8adb4c,be0fbbfc-5873-41a6-80ef-35ed1b8adb4c,1,0,413c2d03-f717-4503-9723-c605114b2799,413c2d03-f717-4503-9723-c605114b2799,1,0,1b63cbbb-77b1-4e78-a4c7-ddea8ea7294d,1b63cbbb-77b1-4e78-a4c7-ddea8ea7294d,1,0,3e5f5167-8978-4191-b0f6-6a262b848b95,3e5f5167-8978-4191-b0f6-6a262b848b95,1,0,ae3aef9e-df3b-4ebc-912d-2bc581063745,ae3aef9e-df3b-4ebc-912d-2bc581063745,1,0,4ae40e81-f2ab-4ac4-89e5-73545db42de9,4ae40e81-f2ab-4ac4-89e5-73545db42de9,1,0,5c4ecf15-b92d-4610-b2bb-f2331c5c7528,5c4ecf15-b92d-4610-b2bb-f2331c5c7528,1,0,a8c09e65-6e10-4772-b264-6ead83d52fe3,a8c09e65-6e10-4772-b264-6ead83d52fe3,1,0,8850b346-364d-457b-9554-acce031394fe,8850b346-364d-457b-9554-acce031394fe,1,0,797f4377-ee0f-4a2d-be90-a74ac10ef682,797f4377-ee0f-4a2d-be90-a74ac10ef682,1,0,f401c5be-2698-452d-8908-08faad120a47,f401c5be-2698-452d-8908-08faad120a47,1,0,98de52ae-dfab-480b-a167-4cf2a3962ed1,98de52ae-dfab-480b-a167-4cf2a3962ed1,1,0,efa5c204-b827-4860-aadd-3737c8fc5f6b,efa5c204-b827-4860-aadd-3737c8fc5f6b,1,0,ef438c21-9d10-4116-8fc7-03927062db59,ef438c21-9d10-4116-8fc7-03927062db59,1,0,7ffa25d5-5199-4e08-af76-969c17709ad4,7ffa25d5-5199-4e08-af76-969c17709ad4,1,0,a93180c6-fcb7-4b28-b954-d2f2831f1832,a93180c6-fcb7-4b28-b954-d2f2831f1832,1,0,b46fff37-cc0e-4ff4-8fde-6bd9d9b895ec,b46fff37-cc0e-4ff4-8fde-6bd9d9b895ec,1,0,eeeede5e-9534-498e-b820-87a5f919c068,eeeede5e-9534-498e-b820-87a5f919c068,1,0,8b1f81e0-1eb0-4aae-9bb6-b25d97a6c9c2,8b1f81e0-1eb0-4aae-9bb6-b25d97a6c9c2,1,0,55ecc3a2-3d94-4201-8a29-06469e0b1a17,55ecc3a2-3d94-4201-8a29-06469e0b1a17,1,0,4123c760-0e30-48d0-8211-1db84f53314b,4123c760-0e30-48d0-8211-1db84f53314b,1,0,a086da23-29d8-4d02-846b-5d171e14d730,a086da23-29d8-4d02-846b-5d171e14d730,1,0,9ec76352-5e4a-485d-bd93-eb739869e406,9ec76352-5e4a-485d-bd93-eb739869e406,1,0,6d3619e3-d125-44b6-9b51-ebf9505b04d2,6d3619e3-d125-44b6-9b51-ebf9505b04d2,1,0,9d2c802c-c946-44e5-b9bc-13ef534968cd,9d2c802c-c946-44e5-b9bc-13ef534968cd,1,0,8046b46e-d855-4a80-8270-72a104e4a941,8046b46e-d855-4a80-8270-72a104e4a941,1,0,4524e15c-4c35-4e1d-910f-5859b5702dff,4524e15c-4c35-4e1d-910f-5859b5702dff,1,0,e200002c-9f3a-49d9-bba1-dca11555511d,e200002c-9f3a-49d9-bba1-dca11555511d,1,0,efa0f74a-7ec0-42f4-a948-7ce3890559d8,efa0f74a-7ec0-42f4-a948-7ce3890559d8,1,0,97e11b91-9590-44b3-afcd-f465ce23e509,97e11b91-9590-44b3-afcd-f465ce23e509,1,0,301c1fc5-ca0a-4fac-ac51-c2e42fb3c2a8,301c1fc5-ca0a-4fac-ac51-c2e42fb3c2a8,1,0,6f2d0c99-3354-4924-959c-59320e1b0063,6f2d0c99-3354-4924-959c-59320e1b0063,1,0,aee8df57-983b-440d-9c02-cace7e632f15,aee8df57-983b-440d-9c02-cace7e632f15,1,0,6e9648dd-388f-4563-88b0-feddc6e9ce8e,6e9648dd-388f-4563-88b0-feddc6e9ce8e,1,0,eb975d96-d230-4454-8f14-6bf5522e06d2,eb975d96-d230-4454-8f14-6bf5522e06d2,1,0,6aa6513c-6f3b-4897-96fd-4a08aeb9eb1e,6aa6513c-6f3b-4897-96fd-4a08aeb9eb1e,1,0,c29d3ae4-9458-46b8-a09b-012e5d435d43,c29d3ae4-9458-46b8-a09b-012e5d435d43,1,0,dad62d28-168c-4659-a800-e484772d9003,dad62d28-168c-4659-a800-e484772d9003,1,0,4cada7d2-f1b1-4914-95fc-c5e1431c13a7,4cada7d2-f1b1-4914-95fc-c5e1431c13a7,1,0,ecbe1ead-4e4b-49db-b7f1-c097c9df2fb9,ecbe1ead-4e4b-49db-b7f1-c097c9df2fb9,1,0,be026f77-285b-4470-8a4e-c68f6e9859e2,be026f77-285b-4470-8a4e-c68f6e9859e2,1,0,a9d54a18-9c35-471b-ad8b-44ba743b7977,a9d54a18-9c35-471b-ad8b-44ba743b7977,1,0,4f75014c-831f-4de5-8b6e-94874ce274ce,4f75014c-831f-4de5-8b6e-94874ce274ce,1,0,c9f74923-95e1-4f5c-8649-3543fae6b116,c9f74923-95e1-4f5c-8649-3543fae6b116,1,0,b00616bb-406d-4e8e-80a0-f0c14cc850c0,b00616bb-406d-4e8e-80a0-f0c14cc850c0,1,0,d60aae4f-7c61-416c-bbc9-e7c95d757848,d60aae4f-7c61-416c-bbc9-e7c95d757848,1,0,c8a0da4e-0b0f-4def-a61e-5f6e04468e01,c8a0da4e-0b0f-4def-a61e-5f6e04468e01,1,0,a55e9aef-79ad-4cb6-b80a-c7f769bebbea,a55e9aef-79ad-4cb6-b80a-c7f769bebbea,1,0,c26283d2-dda1-438c-a444-05bdd2797691,c26283d2-dda1-438c-a444-05bdd2797691,1,0,3ae1ecf1-e062-4e89-96d6-9ac88bbc8aa8,3ae1ecf1-e062-4e89-96d6-9ac88bbc8aa8,1,0,62f9c12c-1837-4320-99b0-8f7ae44af735,62f9c12c-1837-4320-99b0-8f7ae44af735,1,0,ae352e0c-9f89-4ed9-ab45-f4e9040f7858,ae352e0c-9f89-4ed9-ab45-f4e9040f7858,1,0,853a5fdc-3621-442c-abd3-2fd266fddd84,853a5fdc-3621-442c-abd3-2fd266fddd84,1,0,daaff4d7-bc0b-4ab5-a277-fc02472f76ed,daaff4d7-bc0b-4ab5-a277-fc02472f76ed,1,0,bc3183cb-8691-4fa5-b154-3645f3cd8944,bc3183cb-8691-4fa5-b154-3645f3cd8944,1,0,33c9ebee-7b42-4010-a5c9-71ca7479d95c,33c9ebee-7b42-4010-a5c9-71ca7479d95c,1,0,cf202dca-e0ee-45c8-8792-46fc2f126e68,cf202dca-e0ee-45c8-8792-46fc2f126e68,1,0,be150cca-e977-4663-af19-79d8b0f91b3d,be150cca-e977-4663-af19-79d8b0f91b3d,1,0,f12857d7-bcae-4c6c-9169-2a0b1f9e9e6a,f12857d7-bcae-4c6c-9169-2a0b1f9e9e6a,1,0,1c13d12d-5c96-4d96-a07d-ec4a766c86ac,1c13d12d-5c96-4d96-a07d-ec4a766c86ac,1,0,018390b5-06d9-4d04-abad-1de1ccf0843c,018390b5-06d9-4d04-abad-1de1ccf0843c,1,0,a8b828da-6172-4732-a01e-c5127175cd60,a8b828da-6172-4732-a01e-c5127175cd60,1,0,6279f4bc-b77f-4618-9ce3-d50efc798871,6279f4bc-b77f-4618-9ce3-d50efc798871,1,0,fb05b40b-8cf5-4821-afcb-f00a77458a9b,fb05b40b-8cf5-4821-afcb-f00a77458a9b,1,0,37c68cb5-6aaf-4e57-b68c-1a5b5db252b7,37c68cb5-6aaf-4e57-b68c-1a5b5db252b7,1,0,3967bec7-9af5-40bf-9e22-a0f6b13cc795,3967bec7-9af5-40bf-9e22-a0f6b13cc795,1,0,eab9da25-07b6-4c60-9a83-08e8277d0ae7,eab9da25-07b6-4c60-9a83-08e8277d0ae7,1,0,b79ed991-f5d9-42b6-8f0b-0df49e550ced,b79ed991-f5d9-42b6-8f0b-0df49e550ced,1,0,ac50e8d6-fe0b-45a4-b0dd-cc81d7fd7357,ac50e8d6-fe0b-45a4-b0dd-cc81d7fd7357,1,0,f58a3df1-ddf3-45c8-b470-cc026cb0537f,f58a3df1-ddf3-45c8-b470-cc026cb0537f,1,0,c4e9954b-59d8-46e3-ada8-bda66e8aaceb,c4e9954b-59d8-46e3-ada8-bda66e8aaceb,1,0,9ac5a405-4eb7-4013-8bbd-5d1b6d0929ab,9ac5a405-4eb7-4013-8bbd-5d1b6d0929ab,1,0,568c16cf-c3fc-4e16-8f05-e00be8e136c2,568c16cf-c3fc-4e16-8f05-e00be8e136c2,1,0,b36ad726-fb8f-4974-986a-33f997e3fc64,b36ad726-fb8f-4974-986a-33f997e3fc64,1,0,e196c73e-c09b-4aed-b403-2b97a8bf6e47,e196c73e-c09b-4aed-b403-2b97a8bf6e47,1,0,27fdab52-f1ab-48d3-b117-06afcf319eaa,27fdab52-f1ab-48d3-b117-06afcf319eaa,1,0,bf3530c3-3244-4528-a846-ea175af53804,bf3530c3-3244-4528-a846-ea175af53804,1,0,5bdfff5e-f04c-4fe3-ae92-10a99da3a6a8,5bdfff5e-f04c-4fe3-ae92-10a99da3a6a8,1,0,3d0ae989-2d16-42df-a442-7bde817ec1b2,3d0ae989-2d16-42df-a442-7bde817ec1b2,1,0,f3d1adac-197a-4194-89fe-7178f8ccd788,f3d1adac-197a-4194-89fe-7178f8ccd788,1,0,7077b04e-75c0-414d-b295-d28aeda2bdd4,7077b04e-75c0-414d-b295-d28aeda2bdd4,1,0,c8330995-22f4-4be6-beff-64f87c6f09ed,c8330995-22f4-4be6-beff-64f87c6f09ed,1,0,56b6b570-764b-4220-9b5f-70753b0fadbd,56b6b570-764b-4220-9b5f-70753b0fadbd,1,0,588f481e-4486-4649-b584-08f7e3ab8cde,588f481e-4486-4649-b584-08f7e3ab8cde,1,0,5dfe90e2-cb1a-4510-b22c-af94ca06dd7b,5dfe90e2-cb1a-4510-b22c-af94ca06dd7b,1,0,70c217b8-ddf0-4b7c-80b0-f5a76dbbcec7,70c217b8-ddf0-4b7c-80b0-f5a76dbbcec7,1,0,74e3e5c4-7dec-4fde-975b-01e7f4002a87,74e3e5c4-7dec-4fde-975b-01e7f4002a87,1,0,689b382f-308e-4558-817c-819ceb59f61e,689b382f-308e-4558-817c-819ceb59f61e,1,0,ed96d8d2-3164-4a85-8408-06d9a1f0c2ce,ed96d8d2-3164-4a85-8408-06d9a1f0c2ce,1,0,2482e800-50c9-4c7c-909f-18ba2e30ff31,2482e800-50c9-4c7c-909f-18ba2e30ff31,1,0,fdb20bf0-6dc5-4ce6-acdc-4def1cc23a67,fdb20bf0-6dc5-4ce6-acdc-4def1cc23a67,1,0,b528d506-be3f-47f2-880b-af7093c71649,b528d506-be3f-47f2-880b-af7093c71649,1,0,7f3f55d5-b1f5-4b6b-b189-ff5715341489,7f3f55d5-b1f5-4b6b-b189-ff5715341489,1,0,5a32d342-8b80-4069-98c3-cf392f473b06,5a32d342-8b80-4069-98c3-cf392f473b06,1,0,888c5a1f-5329-40da-9102-eac26657a7d9,888c5a1f-5329-40da-9102-eac26657a7d9,1,0,75daf728-ee8c-41a4-a249-8db123bb802e,75daf728-ee8c-41a4-a249-8db123bb802e,1,0,0b154103-47b5-4c54-a4ea-60aa41190940,0b154103-47b5-4c54-a4ea-60aa41190940,1,0,1eb52621-8915-46f4-b1bb-db04bb58b065,1eb52621-8915-46f4-b1bb-db04bb58b065,1,0,d0fcb0f9-6d6c-444a-8b32-4287a963f72b,d0fcb0f9-6d6c-444a-8b32-4287a963f72b,1,0,1d583292-1820-498a-890a-66f5b154e698,1d583292-1820-498a-890a-66f5b154e698,1,0,a3b0430c-743d-4351-a928-9be3c8db9a0b,a3b0430c-743d-4351-a928-9be3c8db9a0b,1,0,f094241b-ae82-426c-92b0-18be87566ad6,f094241b-ae82-426c-92b0-18be87566ad6,1,0,1a570b62-6644-4427-a432-c6823c7d522a,1a570b62-6644-4427-a432-c6823c7d522a,1,0,7bae5ebc-85a5-43eb-8dfa-bc75cd54c013,7bae5ebc-85a5-43eb-8dfa-bc75cd54c013,1,0,0b2c1689-22ba-4ed6-80f3-10475f11db1a,0b2c1689-22ba-4ed6-80f3-10475f11db1a,1,0,46bbfede-5b4d-44fc-90ec-f6f3598340c4,46bbfede-5b4d-44fc-90ec-f6f3598340c4,1,0,acc6358f-be29-4931-8ed2-b769a48cee08,acc6358f-be29-4931-8ed2-b769a48cee08,1,0,51c58d33-32f7-401a-84d4-5a942129fbd5,51c58d33-32f7-401a-84d4-5a942129fbd5,1,0,07d5174e-8422-471f-a435-bf51d5af1bf0,07d5174e-8422-471f-a435-bf51d5af1bf0,1,0,e58672f5-84c9-462f-b5a6-7f15a6f2f797,e58672f5-84c9-462f-b5a6-7f15a6f2f797,1,0,4fbb189a-ecf0-483f-a904-0c34b1c23433,4fbb189a-ecf0-483f-a904-0c34b1c23433,1,0,2a34c9e8-eb4f-4600-988e-594ac7399abc,2a34c9e8-eb4f-4600-988e-594ac7399abc,1,0,256618cc-0956-4cda-9691-e4ced68a791f,256618cc-0956-4cda-9691-e4ced68a791f,1,0,e20593fd-b3e3-41d2-8c8d-97b5d6148fa4,e20593fd-b3e3-41d2-8c8d-97b5d6148fa4,1,0,4b9771a7-b924-4e61-8468-4633e3c54706,4b9771a7-b924-4e61-8468-4633e3c54706,1,0,bc846fc8-3c67-45f8-9c5c-69bf1190baf9,bc846fc8-3c67-45f8-9c5c-69bf1190baf9,1,0,667de710-cee5-4a97-8434-641d199f3b68,667de710-cee5-4a97-8434-641d199f3b68,1,0,e9a2320b-71a1-4974-8b5a-1990062ec7df,e9a2320b-71a1-4974-8b5a-1990062ec7df,1,0,2e459a7c-c448-4db4-ae21-e59646527030,2e459a7c-c448-4db4-ae21-e59646527030,1,0,891194d9-9f02-4b22-89cd-941181c83ecb,891194d9-9f02-4b22-89cd-941181c83ecb,1,0,a4d3b738-9ae3-46a9-ac21-7ac3d081c727,a4d3b738-9ae3-46a9-ac21-7ac3d081c727,1,0,f6e85eeb-d81b-4526-9a33-ab77bd447236,f6e85eeb-d81b-4526-9a33-ab77bd447236,1,0,470e37fe-d149-4007-b397-12fc84f93041,470e37fe-d149-4007-b397-12fc84f93041,1,0,f8d9068d-8a4e-4b23-b5ca-5b9ddce1f60f,f8d9068d-8a4e-4b23-b5ca-5b9ddce1f60f,1,0,7175cfa0-885c-4807-98ec-af255dcd55d9,7175cfa0-885c-4807-98ec-af255dcd55d9,1,0,f5b66759-8102-4cba-a3fd-ee96db5bc809,f5b66759-8102-4cba-a3fd-ee96db5bc809,1,0,af6bccbb-a6cb-41ee-bc4e-f2d6a5e0f419,af6bccbb-a6cb-41ee-bc4e-f2d6a5e0f419,1,0,d08679db-f83f-476e-b8c4-f3f52c3cf6fd,d08679db-f83f-476e-b8c4-f3f52c3cf6fd,1,0,fad0898f-5769-46ab-bc5e-301924b851a0,fad0898f-5769-46ab-bc5e-301924b851a0,1,0,e0227e4b-be22-4614-8980-5d573fae705d,e0227e4b-be22-4614-8980-5d573fae705d,1,0,7a7b7882-a4c1-40c8-a807-cb2d71d054cc,7a7b7882-a4c1-40c8-a807-cb2d71d054cc,1,0,6f36007b-04dc-4007-abf7-e20fbd126b97,6f36007b-04dc-4007-abf7-e20fbd126b97,1,0,791dbdee-56f6-4fe3-ada4-965c9111d69e,791dbdee-56f6-4fe3-ada4-965c9111d69e,1,0,66ef1631-277b-4c22-99d7-1434b4dbbb3f,66ef1631-277b-4c22-99d7-1434b4dbbb3f,1,0,aa6444a8-6c17-4207-a623-9b734e08e30e,aa6444a8-6c17-4207-a623-9b734e08e30e,1,0,898535ff-50cd-464a-aadc-5e4f9de15b04,898535ff-50cd-464a-aadc-5e4f9de15b04,1,0,385e209d-65aa-43b1-8591-f92544882740,385e209d-65aa-43b1-8591-f92544882740,1,0,e33c736b-f1a3-4cb4-b78b-65fd2d44b10f,e33c736b-f1a3-4cb4-b78b-65fd2d44b10f,1,0,7cfa5a37-b9f8-43e4-ae33-e3a7251dd052,7cfa5a37-b9f8-43e4-ae33-e3a7251dd052,1,0,2f8a5b9d-ab86-492b-85d1-5a28535b2ebc,2f8a5b9d-ab86-492b-85d1-5a28535b2ebc,1,0,737f6f1b-9ffc-4916-b378-7321eab1f886,737f6f1b-9ffc-4916-b378-7321eab1f886,1,0,8381bc76-0e0f-4196-9911-ec05730cb1c9,8381bc76-0e0f-4196-9911-ec05730cb1c9,1,0,01dedf5b-2cce-4d24-81ea-2e3af82f5794,01dedf5b-2cce-4d24-81ea-2e3af82f5794,1,0,771a1900-46be-49fe-a02d-584780de8363,771a1900-46be-49fe-a02d-584780de8363,1,0,f81b1f2d-6fde-4861-8fee-1dbe6acf3985,f81b1f2d-6fde-4861-8fee-1dbe6acf3985,1,0,b62eecf6-6ee3-4a70-a4d6-3f064ae35c43,b62eecf6-6ee3-4a70-a4d6-3f064ae35c43,1,0,9bf2525c-e8fc-44e6-ac14-7df3208dbb0f,9bf2525c-e8fc-44e6-ac14-7df3208dbb0f,1,0,a2faa3f8-5064-4fbf-a90e-26d15c021cd3,a2faa3f8-5064-4fbf-a90e-26d15c021cd3,1,0,527ea8ca-e723-454a-8e9e-f2e7a38e62ee,527ea8ca-e723-454a-8e9e-f2e7a38e62ee,1,0,ef257b20-da10-4cda-8b9d-7de2d68a2f71,ef257b20-da10-4cda-8b9d-7de2d68a2f71,1,0,de0d41b7-acc0-4ebc-8933-d6b5ad351860,de0d41b7-acc0-4ebc-8933-d6b5ad351860,1,0,acd30e63-68dc-4ab2-a6fe-16eb69d09271,acd30e63-68dc-4ab2-a6fe-16eb69d09271,1,0,04013c34-8d59-4f87-b272-732d5a6dd675,04013c34-8d59-4f87-b272-732d5a6dd675,1,0,f9df9b6b-5051-46ef-bb1f-1974f41054a7,f9df9b6b-5051-46ef-bb1f-1974f41054a7,1,0,9ef5dd5e-1f26-4187-90a0-a3ac7aaabc1d,9ef5dd5e-1f26-4187-90a0-a3ac7aaabc1d,1,0,1a354069-07ea-40e0-bbac-e1b6232750c2,1a354069-07ea-40e0-bbac-e1b6232750c2,1,0,df31548b-0b8e-412b-999a-761970ae3c23,df31548b-0b8e-412b-999a-761970ae3c23,1,0,05135747-43e7-4b61-bc30-57b3289ea923,05135747-43e7-4b61-bc30-57b3289ea923,1,0,6d63728d-3384-4131-b890-1b82d14a04b7,6d63728d-3384-4131-b890-1b82d14a04b7,1,0,13b3c973-6be3-4898-89d5-20852cd14e46,13b3c973-6be3-4898-89d5-20852cd14e46,1,0,d978d078-4fd8-40b9-90c2-047cdaf94cba,d978d078-4fd8-40b9-90c2-047cdaf94cba,1,0,8640eacd-e6f9-4b0b-8511-c6ad2336ec6c,8640eacd-e6f9-4b0b-8511-c6ad2336ec6c,1,0,b374e22f-17f3-4186-af1f-fa35d1a7e559,b374e22f-17f3-4186-af1f-fa35d1a7e559,1,0,53555ee4-f99d-4935-a884-89313aa3ca6a,53555ee4-f99d-4935-a884-89313aa3ca6a,1,0,51811ea1-2ce7-4ea2-9ff0-e8ed4c5ca94c,51811ea1-2ce7-4ea2-9ff0-e8ed4c5ca94c,1,0,e030f3d6-84dc-4c07-9760-6f010a6dd3be,e030f3d6-84dc-4c07-9760-6f010a6dd3be,1,0,bd3df097-9807-4a42-9959-60cca34966c5,bd3df097-9807-4a42-9959-60cca34966c5,1,0,ae1192da-f17d-4527-b9cb-4f4cce810985,ae1192da-f17d-4527-b9cb-4f4cce810985,1,0,f38bb317-8a59-4786-be76-e1d4e534628d,f38bb317-8a59-4786-be76-e1d4e534628d,1,0,25741b39-1c6b-4851-8584-9711d25ef05a,25741b39-1c6b-4851-8584-9711d25ef05a,1,0,f4554046-493e-4960-94df-0a8b9d02f474,f4554046-493e-4960-94df-0a8b9d02f474,1,0,06abad33-2d69-4e8b-a16c-8aa0d4422d5a,06abad33-2d69-4e8b-a16c-8aa0d4422d5a,1,0,9222a6c0-b785-4811-bfb6-44ac44a55925,9222a6c0-b785-4811-bfb6-44ac44a55925,1,0,ea84021d-2431-44ad-a446-f1fb979c9e96,ea84021d-2431-44ad-a446-f1fb979c9e96,1,0,d86acdeb-fa70-4d1c-bd0c-1b4ea30c03dd,d86acdeb-fa70-4d1c-bd0c-1b4ea30c03dd,1,0,8fa21575-177f-4b7c-94b5-dfeefe737cb4,8fa21575-177f-4b7c-94b5-dfeefe737cb4,1,0,6da034af-0481-4a3c-aff9-c50ced6f21d4,6da034af-0481-4a3c-aff9-c50ced6f21d4,1,0,d07016c8-7d97-42cd-865b-85b49075adfb,d07016c8-7d97-42cd-865b-85b49075adfb,1,0,491a2337-1bf9-45c1-8ae6-95605ef41992,491a2337-1bf9-45c1-8ae6-95605ef41992,1,0,c3f2a760-610a-40e0-945b-1f9f6369444d,c3f2a760-610a-40e0-945b-1f9f6369444d,1,0,9202335d-50bb-4282-9438-24c7fb9cf637,9202335d-50bb-4282-9438-24c7fb9cf637,1,0,a62906e5-27f8-4e72-8769-9a3eed6997d7,a62906e5-27f8-4e72-8769-9a3eed6997d7,1,0,783536d7-c0db-44c9-96e8-58b57804d7c8,783536d7-c0db-44c9-96e8-58b57804d7c8,1,0,a8295435-c2c4-4aff-874b-7412556aa76d,a8295435-c2c4-4aff-874b-7412556aa76d,1,0,f6c4e24b-172b-4ba3-8e3e-988306ade660,f6c4e24b-172b-4ba3-8e3e-988306ade660,1,0,9baab24c-a5a3-46f4-ad17-a28d4a49f851,9baab24c-a5a3-46f4-ad17-a28d4a49f851,1,0,6900c947-150c-4842-b37d-99f9b704f0a5,6900c947-150c-4842-b37d-99f9b704f0a5,1,0,d1952319-0e42-4684-a386-fbe7c24526c2,d1952319-0e42-4684-a386-fbe7c24526c2,1,0,01cd59fc-8577-4b3c-9d69-6db75e81e7c4,01cd59fc-8577-4b3c-9d69-6db75e81e7c4,1,0,83b47a9d-d44b-4c40-becd-df74f9cb2e91,83b47a9d-d44b-4c40-becd-df74f9cb2e91,1,0,d03e636e-ff88-4e96-bf3c-d795d10cbcb0,d03e636e-ff88-4e96-bf3c-d795d10cbcb0,1,0,86e2a2eb-160f-4e93-a449-b2f726286d1b,86e2a2eb-160f-4e93-a449-b2f726286d1b,1,0,8e6e1f24-83bf-42c2-9eda-b3874c7910c3,8e6e1f24-83bf-42c2-9eda-b3874c7910c3,1,0,364184c2-ec71-44be-b40c-ba719b4ab0e1,364184c2-ec71-44be-b40c-ba719b4ab0e1,1,0,7ef46c54-ec0c-4211-a750-e5949956b593,7ef46c54-ec0c-4211-a750-e5949956b593,1,0,04823681-875e-459a-b3cf-051c89527f38,04823681-875e-459a-b3cf-051c89527f38,1,0,8e115a0c-a17c-4d7e-bd2c-305fb53d09ca,8e115a0c-a17c-4d7e-bd2c-305fb53d09ca,1,0,38265f08-3301-40d1-b630-a319c983e826,38265f08-3301-40d1-b630-a319c983e826,1,0,5175c496-bac7-4c57-9628-793b727aecd0,5175c496-bac7-4c57-9628-793b727aecd0,1,0,1453309e-77d0-444d-ac3f-fd7c2cb65c0c,1453309e-77d0-444d-ac3f-fd7c2cb65c0c,1,0,fc42df4a-93f0-461f-acfe-fea09158030f,fc42df4a-93f0-461f-acfe-fea09158030f,1,0,9f0a7909-0b97-48a7-964f-a52cb3c19c4e,9f0a7909-0b97-48a7-964f-a52cb3c19c4e,1,0,6d002aef-00c9-4069-80df-153151218831,6d002aef-00c9-4069-80df-153151218831,1,0,4fec3a6c-5a99-4763-aa07-d5de8712559e,4fec3a6c-5a99-4763-aa07-d5de8712559e,1,0,968a1202-d271-43e0-bfd4-d38e49ceadd4,968a1202-d271-43e0-bfd4-d38e49ceadd4,1,0,c80e2ef7-93b6-4cef-806a-2dfcf2fd80e6,c80e2ef7-93b6-4cef-806a-2dfcf2fd80e6,1,0,b3b4fbf1-cbf0-4ee2-a490-4d657693479b,b3b4fbf1-cbf0-4ee2-a490-4d657693479b,1,0,ea61e442-273e-4ce4-a806-8090893729ba,ea61e442-273e-4ce4-a806-8090893729ba,1,0,aef03c0b-2846-43b7-b382-9a51ec783e85,aef03c0b-2846-43b7-b382-9a51ec783e85,1,0,e7100f2b-d169-4635-ab87-7a2225ff12ee,e7100f2b-d169-4635-ab87-7a2225ff12ee,1,0,c0804a4a-64d5-457f-a542-8e5badccbdf1,c0804a4a-64d5-457f-a542-8e5badccbdf1,1,0,d6bd5459-6f95-4f9c-8d84-c67bdc716acf,d6bd5459-6f95-4f9c-8d84-c67bdc716acf,1,0,4a2d2790-debf-4dc2-8216-878d8808d161,4a2d2790-debf-4dc2-8216-878d8808d161,1,0,6dcbb379-d4f5-418a-a3ab-bb7c0e169058,6dcbb379-d4f5-418a-a3ab-bb7c0e169058,1,0,4507a92e-abb6-4329-88b2-3429bc694bc6,4507a92e-abb6-4329-88b2-3429bc694bc6,1,0,2694c1b4-536b-4187-adf6-0f8757aaae76,2694c1b4-536b-4187-adf6-0f8757aaae76,1,0,e523f88b-b3de-476e-a3cc-592970492dec,e523f88b-b3de-476e-a3cc-592970492dec,1,0,0e2107e2-8648-4b2e-9dfb-c23b1ff5b007,0e2107e2-8648-4b2e-9dfb-c23b1ff5b007,1,0,efb6b3b6-d57b-469f-a7c2-f4e0308d0c7f,efb6b3b6-d57b-469f-a7c2-f4e0308d0c7f,1,0,ea0843f4-60fb-4d44-abf4-0021867c636b,ea0843f4-60fb-4d44-abf4-0021867c636b,1,0,59aadc03-adbc-481f-89bc-d7f391789522,59aadc03-adbc-481f-89bc-d7f391789522,1,0,254f6ccd-0451-4231-91c9-4abe57b647be,254f6ccd-0451-4231-91c9-4abe57b647be,1,0,1e2d790c-0076-413a-b5fb-f25c01ab6ad5,1e2d790c-0076-413a-b5fb-f25c01ab6ad5,1,0,0dcc537b-76b3-4e73-b060-6cbdcf6345db,0dcc537b-76b3-4e73-b060-6cbdcf6345db,1,0,ae662b53-e11e-4b59-be52-b9d4ab00c4a4,ae662b53-e11e-4b59-be52-b9d4ab00c4a4,1,0,ce55df94-71e4-46ac-9b3b-bdae5d336b0a,ce55df94-71e4-46ac-9b3b-bdae5d336b0a,1,0,7601fa7e-079a-4347-abea-e161b2d00783,7601fa7e-079a-4347-abea-e161b2d00783,1,0,ee84cb40-f82d-4558-91be-229d68ad9f4a,ee84cb40-f82d-4558-91be-229d68ad9f4a,1,0,101a7eff-9556-4165-879a-a7c8a852e236,101a7eff-9556-4165-879a-a7c8a852e236,1,0,01775932-3603-4efc-9235-abdb97490dea,01775932-3603-4efc-9235-abdb97490dea,1,0,7637844b-4059-4f8a-8436-b4f4e8cb4f74,7637844b-4059-4f8a-8436-b4f4e8cb4f74,1,0,b6bb4cbe-b6fa-4d28-b372-0b959951ad4d,b6bb4cbe-b6fa-4d28-b372-0b959951ad4d,1,0,0ee5b788-61dc-464b-86da-f985df7704b6,0ee5b788-61dc-464b-86da-f985df7704b6,1,0,1c2da2ac-e797-11e6-0489-a8667f21fde4,1c2da2ac-e797-11e6-0489-a8667f21fde4,1,0,2375c6a8-9799-4b7c-a48d-091a90c67693,2375c6a8-9799-4b7c-a48d-091a90c67693,1,0,3d3c3360-4502-4ad4-bbe9-35d4ba9b54b3,3d3c3360-4502-4ad4-bbe9-35d4ba9b54b3,1,0,df7892fe-e796-11e6-0489-a8667f21fde4,df7892fe-e796-11e6-0489-a8667f21fde4,1,0,9b0671c6-6e92-42e6-9cf4-13d4be11f27d,9b0671c6-6e92-42e6-9cf4-13d4be11f27d,1,0,63c6522f-be04-422a-b4f4-0f55f58b09a8,63c6522f-be04-422a-b4f4-0f55f58b09a8,1,0,be919dc1-a377-43e1-82e6-ce946cabdd55,be919dc1-a377-43e1-82e6-ce946cabdd55,1,0,6b17a0fc-4d6f-4189-9067-c58a95f04dd7,6b17a0fc-4d6f-4189-9067-c58a95f04dd7,1,0,9ded532e-9e60-4895-a4c5-4ea6697aa83c,9ded532e-9e60-4895-a4c5-4ea6697aa83c,1,0,106c5159-ffc7-4059-b3e3-acf74326a44f,106c5159-ffc7-4059-b3e3-acf74326a44f,1,0,d39fd717-1a69-4fd3-889e-4fa9abefea1c,d39fd717-1a69-4fd3-889e-4fa9abefea1c,1,0,fae8b26c-e796-11e6-0489-a8667f21fde4,fae8b26c-e796-11e6-0489-a8667f21fde4,1,0,5b85e6df-7493-4201-97ad-2aea14de6006,5b85e6df-7493-4201-97ad-2aea14de6006,1,0,061e6c0f-ba52-40ec-96ad-2eba3eee3097,061e6c0f-ba52-40ec-96ad-2eba3eee3097,1,0,d77e3c65-e9fd-4ba7-885f-a8a2f4c827d2,d77e3c65-e9fd-4ba7-885f-a8a2f4c827d2,1,0,4fb86bf3-02ad-4f0e-85a9-98be6c350a06,4fb86bf3-02ad-4f0e-85a9-98be6c350a06,1,0,4840753b-e2e1-4e67-b35f-2f5eab7754f5,4840753b-e2e1-4e67-b35f-2f5eab7754f5,1,0,4095c9e7-83ab-4db9-a2d0-a9f4ef9ee53e,4095c9e7-83ab-4db9-a2d0-a9f4ef9ee53e,1,0,6ffd9c17-d90b-4d19-b337-0fbc2c717557,6ffd9c17-d90b-4d19-b337-0fbc2c717557,1,0,9a11a6bd-0c13-4be2-9e34-b12b7554f3c9,9a11a6bd-0c13-4be2-9e34-b12b7554f3c9,1,0,3bb83275-7a0e-420f-8c6b-028038f11a8c,3bb83275-7a0e-420f-8c6b-028038f11a8c,1,0,e1950a23-f6e7-48af-b78a-77aa61f08ece,e1950a23-f6e7-48af-b78a-77aa61f08ece,1,0,1cc3d7c4-9178-4a40-86ea-2bbc1f5aa69f,1cc3d7c4-9178-4a40-86ea-2bbc1f5aa69f,1,0,3eba3f44-b58b-4541-be75-a72a059ef371,3eba3f44-b58b-4541-be75-a72a059ef371,1,0,7e73f7e0-6a6c-425b-9ac3-375b12383f3f,7e73f7e0-6a6c-425b-9ac3-375b12383f3f,1,0,0a7d282e-45bb-4a87-b325-1659519867fb,0a7d282e-45bb-4a87-b325-1659519867fb,1,0,790735cf-f6e2-4b0d-bb16-c5b9ea95efae,790735cf-f6e2-4b0d-bb16-c5b9ea95efae,1,0,9167a91a-0fe6-45b5-ab9d-e2c9eaa93f67,9167a91a-0fe6-45b5-ab9d-e2c9eaa93f67,1,0,02597e1e-6c6a-4bd8-a8f8-1b6d62a8f21a,02597e1e-6c6a-4bd8-a8f8-1b6d62a8f21a,1,0,5d726fa3-bde0-4d97-a577-415857bbb5c1,5d726fa3-bde0-4d97-a577-415857bbb5c1,1,0,f63d0e2d-4685-4ac5-b22c-1b83e3ab955f,f63d0e2d-4685-4ac5-b22c-1b83e3ab955f,1,0,49068231-202c-4ac6-a39a-69207cb597dd,49068231-202c-4ac6-a39a-69207cb597dd,1,0,5a470575-e012-42ad-9ad7-53930a8e843f,5a470575-e012-42ad-9ad7-53930a8e843f,1,0,5872d4ed-6503-422d-bcf9-63a8df3e777d,5872d4ed-6503-422d-bcf9-63a8df3e777d,1,0,e21cda29-2579-485e-a207-20b76f719c80,e21cda29-2579-485e-a207-20b76f719c80,1,0,1b232a57-2833-42c6-b318-38dae2af1ab2,1b232a57-2833-42c6-b318-38dae2af1ab2,1,0,007ade8c-b102-408b-b877-b531e046560b,007ade8c-b102-408b-b877-b531e046560b,1,0,a8dfea6c-0c21-456d-96ab-f4bb5d579b13,a8dfea6c-0c21-456d-96ab-f4bb5d579b13,1,0,305f1ef1-4f9c-40a2-a978-3a4c0ecf75d4,305f1ef1-4f9c-40a2-a978-3a4c0ecf75d4,1,0,eb69c41a-392d-43bb-9b67-a0adcb651b1e,eb69c41a-392d-43bb-9b67-a0adcb651b1e,1,0,93b01c88-48a2-4753-b443-0e9892395a8f,93b01c88-48a2-4753-b443-0e9892395a8f,1,0,0b7f8e05-bb34-47cc-9775-04362e814316,0b7f8e05-bb34-47cc-9775-04362e814316,1,0,e71e0297-3709-4247-933e-18a6350cbf39,e71e0297-3709-4247-933e-18a6350cbf39,1,0,fbe493f8-cf58-4ca8-b7fb-3923771dd5e9,fbe493f8-cf58-4ca8-b7fb-3923771dd5e9,1,0,0b32e372-c6ad-4dda-acd1-8b5d58537d37,0b32e372-c6ad-4dda-acd1-8b5d58537d37,1,0,602dac6f-abe6-407a-92d3-7f1613e5dda6,602dac6f-abe6-407a-92d3-7f1613e5dda6,1,0,db03a88b-2804-45c2-9089-7ddb87ef2f18,db03a88b-2804-45c2-9089-7ddb87ef2f18,1,0,df6417d1-c722-4a87-a543-5d2c31795b20,df6417d1-c722-4a87-a543-5d2c31795b20,1,0,f2f210f3-a114-4788-9172-9133dc95b832,f2f210f3-a114-4788-9172-9133dc95b832,1,0,526a85c9-3a8d-4044-adb9-fd0689c70601,526a85c9-3a8d-4044-adb9-fd0689c70601,1,0,c4203772-580c-4db1-9bde-8925faa90688,c4203772-580c-4db1-9bde-8925faa90688,1,0,f64a91c4-f5cb-4e8e-8387-9f242ce6de44,f64a91c4-f5cb-4e8e-8387-9f242ce6de44,1,0,dc024d33-1715-40da-9c00-443d25a31ebc,dc024d33-1715-40da-9c00-443d25a31ebc,1,0,16b68fad-30fb-4c1d-ab96-2d14a2e6ae03,16b68fad-30fb-4c1d-ab96-2d14a2e6ae03,1,0,d029aa93-fea4-40e4-8cfb-2dc96544829b,d029aa93-fea4-40e4-8cfb-2dc96544829b,1,0,f8f585d1-01a0-4892-8852-c692ffaa1344,f8f585d1-01a0-4892-8852-c692ffaa1344,1,0,35c237a7-71e1-415c-809d-e99babee4e0e,35c237a7-71e1-415c-809d-e99babee4e0e,1,0,2116119f-7637-45a1-8e59-c9149619413b,2116119f-7637-45a1-8e59-c9149619413b,1,0,43882a2c-b625-4cfb-8220-3d12bfee09e4,43882a2c-b625-4cfb-8220-3d12bfee09e4,1,0,90639fdb-144d-495a-a097-76c45107fc97,90639fdb-144d-495a-a097-76c45107fc97,1,0,24ce9257-6dcf-4ba6-839e-1e635c069e75,24ce9257-6dcf-4ba6-839e-1e635c069e75,1,0,ecb2048d-4c1d-4194-a728-604734683b3b,ecb2048d-4c1d-4194-a728-604734683b3b,1,0,b33e046c-b580-4c90-940d-71f38d9ceff2,b33e046c-b580-4c90-940d-71f38d9ceff2,1,0,84d76e6b-0418-47d0-9df2-95e0116517be,84d76e6b-0418-47d0-9df2-95e0116517be,1,0,c076b7fd-7e17-4811-82e7-047e2bf43bb0,c076b7fd-7e17-4811-82e7-047e2bf43bb0,1,0,84b28732-9001-4798-b613-35ea65c26cce,84b28732-9001-4798-b613-35ea65c26cce,1,0,f2ec9416-3830-4607-90f3-f77fc53c9c70,f2ec9416-3830-4607-90f3-f77fc53c9c70,1,0,3057de81-eb41-4161-9dc2-5445699906af,3057de81-eb41-4161-9dc2-5445699906af,1,0,984ed6c0-e25b-46ff-9b3c-6bc0370071da,984ed6c0-e25b-46ff-9b3c-6bc0370071da,1,0,35fe84b6-7d3c-4729-a75c-a5f3ef122124,35fe84b6-7d3c-4729-a75c-a5f3ef122124,1,0,f7d5815e-511e-48c2-bc31-f9987423439b,f7d5815e-511e-48c2-bc31-f9987423439b,1,0,c9b46771-b627-413d-afbb-dd733e0f1a1d,c9b46771-b627-413d-afbb-dd733e0f1a1d,1,0,49192a55-34fe-4db3-8ef9-a0d7af2766c9,49192a55-34fe-4db3-8ef9-a0d7af2766c9,1,0,31001011-bdbb-4499-a613-72d0305acd9d,31001011-bdbb-4499-a613-72d0305acd9d,1,0,f660bf92-7de1-4a22-9cea-777069e4679d,f660bf92-7de1-4a22-9cea-777069e4679d,1,0,54f3fbe7-ac93-44f6-ba6e-37cb99f3569c,54f3fbe7-ac93-44f6-ba6e-37cb99f3569c,1,0,8b0fb329-098b-46db-8766-bc034d6f20a8,8b0fb329-098b-46db-8766-bc034d6f20a8,1,0,c630e43c-98a6-4059-9b14-25d267410ba6,c630e43c-98a6-4059-9b14-25d267410ba6,1,0,d01089f3-427f-4624-955d-1a5a96098141,d01089f3-427f-4624-955d-1a5a96098141,1,0,6520d7f5-7326-4921-b8c1-6e6fbc56089c,6520d7f5-7326-4921-b8c1-6e6fbc56089c,1,0,766f2abe-1dfd-4e16-bffd-83f44d25d82a,766f2abe-1dfd-4e16-bffd-83f44d25d82a,1,0,0e7a34a8-ce5a-4767-8283-fd094e13d969,0e7a34a8-ce5a-4767-8283-fd094e13d969,1,0,20feb794-eb05-46a6-90e7-ca4e2376d7b2,20feb794-eb05-46a6-90e7-ca4e2376d7b2,1,0,8deb4f57-18fc-4db0-ad0f-82d60af3d80b,8deb4f57-18fc-4db0-ad0f-82d60af3d80b,1,0,2f484aa4-452a-46af-a707-a5a6917bc0db,2f484aa4-452a-46af-a707-a5a6917bc0db,1,0,fd6ff934-6f11-4182-b0cb-6926902d33c0,fd6ff934-6f11-4182-b0cb-6926902d33c0,1,0,315af891-2075-4833-a404-6c0f2004ee53,315af891-2075-4833-a404-6c0f2004ee53,1,0,5725db77-bfbf-4d85-9565-163b309a53ee,5725db77-bfbf-4d85-9565-163b309a53ee,1,0,99a7142c-b3c7-4221-abf8-6831a3cbc16e,99a7142c-b3c7-4221-abf8-6831a3cbc16e,1,0,d367a1a1-5a54-4bf9-96c7-d55667e2fb16,d367a1a1-5a54-4bf9-96c7-d55667e2fb16,1,0,2e09abe1-0934-42ae-970f-5e001c35c31a,2e09abe1-0934-42ae-970f-5e001c35c31a,1,0,587d48a3-5627-4481-b13e-c22740b57d8a,587d48a3-5627-4481-b13e-c22740b57d8a,1,0,1f3e3089-1e04-4147-8ece-aa96a76467dd,1f3e3089-1e04-4147-8ece-aa96a76467dd,1,0,22a213b5-ed72-4181-8ff8-89f860c87aa1,22a213b5-ed72-4181-8ff8-89f860c87aa1,1,0,4c56cbff-653e-4f16-b702-c77190d7eb7f,4c56cbff-653e-4f16-b702-c77190d7eb7f,1,0,172ff335-c7ae-4905-b705-2a1475b95713,172ff335-c7ae-4905-b705-2a1475b95713,1,0,db4c311d-ee62-4d47-ac31-5a20cadb7ed1,db4c311d-ee62-4d47-ac31-5a20cadb7ed1,1,0,1d852dc0-90c9-4568-84f9-b1d822573b6b,1d852dc0-90c9-4568-84f9-b1d822573b6b,1,0,24f85dbd-59be-4b8d-bea8-7ff8ddb7486a,24f85dbd-59be-4b8d-bea8-7ff8ddb7486a,1,0,c997f56c-ef9c-434e-bc4e-7fc5f885aaba,c997f56c-ef9c-434e-bc4e-7fc5f885aaba,1,0,37c8f5e1-3513-47f8-896d-a54d11b83dcd,37c8f5e1-3513-47f8-896d-a54d11b83dcd,1,0,9e07733c-39f0-491b-91e1-bf2782d957dd,9e07733c-39f0-491b-91e1-bf2782d957dd,1,0,cc584a1d-dc91-4693-a5c9-6e8c6607e9d8,cc584a1d-dc91-4693-a5c9-6e8c6607e9d8,1,0,5902d979-1235-4d5a-ace7-93261bdeb725,5902d979-1235-4d5a-ace7-93261bdeb725,1,0,5a090286-7969-44c9-815b-fc58aeb5d8d3,5a090286-7969-44c9-815b-fc58aeb5d8d3,1,0,8e87cf35-af54-4fa2-9428-460b765b282b,8e87cf35-af54-4fa2-9428-460b765b282b,1,0,73380bb1-bee3-4b73-a3df-1dbea99011d2,73380bb1-bee3-4b73-a3df-1dbea99011d2,1,0,8be29533-38de-413d-b420-7dac2e80af6c,8be29533-38de-413d-b420-7dac2e80af6c,1,0,82a77018-8e38-41dd-9d1f-3130bc29a707,82a77018-8e38-41dd-9d1f-3130bc29a707,1,0,4d75aaef-532e-4ed3-8153-083f04f05cc1,4d75aaef-532e-4ed3-8153-083f04f05cc1,1,0,3854a0ba-e156-4ba3-a301-b1a41ac386c4,3854a0ba-e156-4ba3-a301-b1a41ac386c4,1,0,f8136f59-ef0c-4c0f-8207-f7a4000e4f0c,f8136f59-ef0c-4c0f-8207-f7a4000e4f0c,1,0,c2321963-cd86-45ec-b323-3fdb5932da3a,c2321963-cd86-45ec-b323-3fdb5932da3a,1,0,d5af38bf-6261-4177-8f74-998a85f0ef39,d5af38bf-6261-4177-8f74-998a85f0ef39,1,0,42bbd9f7-ef72-440f-9eb1-fcb3bdc1d91e,42bbd9f7-ef72-440f-9eb1-fcb3bdc1d91e,1,0,c6a4d03d-f3b2-449c-8a2b-deb542dd2c99,c6a4d03d-f3b2-449c-8a2b-deb542dd2c99,1,0,4b714d9c-26f4-46e8-ac79-471522b3853b,4b714d9c-26f4-46e8-ac79-471522b3853b,1,0,411489de-f907-4d60-a776-64bb0aa12a0e,411489de-f907-4d60-a776-64bb0aa12a0e,1,0,58d9ba60-a0c7-405d-a76e-0b0a796daaf3,58d9ba60-a0c7-405d-a76e-0b0a796daaf3,1,0,9c47670e-9eb9-49ec-876c-cd545aaa093c,9c47670e-9eb9-49ec-876c-cd545aaa093c,1,0,f57e74e6-75e8-4136-911e-86793036a077,f57e74e6-75e8-4136-911e-86793036a077,1,0,8492ee20-3f15-45d8-b70d-19b5cd6f1ae3,8492ee20-3f15-45d8-b70d-19b5cd6f1ae3,1,0,3ba8c378-ef3d-4646-90b3-6d8078aa623e,3ba8c378-ef3d-4646-90b3-6d8078aa623e,1,0,b96b2e45-8fb3-4d48-ab53-d3bbf6ef0284,b96b2e45-8fb3-4d48-ab53-d3bbf6ef0284,1,0,5ac38b5a-92e5-47eb-b956-24d9f010cb9f,5ac38b5a-92e5-47eb-b956-24d9f010cb9f,1,0,d61ca454-505b-4fd6-be15-d7ed948a5ff6,d61ca454-505b-4fd6-be15-d7ed948a5ff6,1,0,c0f5bbe1-3247-4bbe-a28e-8c55748e7d42,c0f5bbe1-3247-4bbe-a28e-8c55748e7d42,1,0,7347d709-bb61-4354-aa79-86ed8025d6d4,7347d709-bb61-4354-aa79-86ed8025d6d4,1,0,2dd7eb87-8130-425a-be13-85235508cde6,2dd7eb87-8130-425a-be13-85235508cde6,1,0,8a62c997-4fda-4464-90bd-ab719161949f,8a62c997-4fda-4464-90bd-ab719161949f,1,0,28af52dd-3144-428b-956d-b6f27863ec4a,28af52dd-3144-428b-956d-b6f27863ec4a,1,0,8ac94328-2300-4681-9c35-fd7e2f830310,8ac94328-2300-4681-9c35-fd7e2f830310,1,0,da0ee165-1917-466b-ac5c-16c28e2318bb,da0ee165-1917-466b-ac5c-16c28e2318bb,1,0,4868cb2e-0892-42bc-9de1-73cb8a15a96f,4868cb2e-0892-42bc-9de1-73cb8a15a96f,1,0,e8b80879-33b3-4c45-ad68-1acabcf91faf,e8b80879-33b3-4c45-ad68-1acabcf91faf,1,0,4a87fafc-7ca7-478e-bb31-358c2b85fa92,4a87fafc-7ca7-478e-bb31-358c2b85fa92,1,0,239601eb-e8de-4d58-a32a-01ee52f6e698,239601eb-e8de-4d58-a32a-01ee52f6e698,1,0,11370667-bec5-4a2d-8aa1-97f4d795718f,11370667-bec5-4a2d-8aa1-97f4d795718f,1,0,2032162d-fbb5-4e6a-be72-cda79869b9ff,2032162d-fbb5-4e6a-be72-cda79869b9ff,1,0,95a8e790-25ef-4ef3-a44a-f150bf1ceb1f,95a8e790-25ef-4ef3-a44a-f150bf1ceb1f,1,0,10543f9a-4e3f-427a-b36a-9c66709dd6fb,10543f9a-4e3f-427a-b36a-9c66709dd6fb,1,0,973967e5-1702-4fb8-ba36-70fd5b3b7e7c,973967e5-1702-4fb8-ba36-70fd5b3b7e7c,1,0,96ab5424-7be1-416d-b74d-d0c815726b1f,96ab5424-7be1-416d-b74d-d0c815726b1f,1,0,3714e794-ddef-4ad9-a933-6130bbc84545,3714e794-ddef-4ad9-a933-6130bbc84545,1,0,282b089c-7411-40d6-9a0a-ceaf6abb5586,282b089c-7411-40d6-9a0a-ceaf6abb5586,1,0,678188aa-76e7-49bc-a4be-1c55ccd625b1,678188aa-76e7-49bc-a4be-1c55ccd625b1,1,0,6c27eece-2f8e-48eb-b9c7-f9c414ee15bd,6c27eece-2f8e-48eb-b9c7-f9c414ee15bd,1,0,b3415b4a-d8de-4536-aa4b-82e75fd986ee,b3415b4a-d8de-4536-aa4b-82e75fd986ee,1,0,acc996ab-672a-4602-b7ad-8eee83557e61,acc996ab-672a-4602-b7ad-8eee83557e61,1,0,bf9e9c2f-e5dc-4f82-8e9a-7f35e3ad9a0b,bf9e9c2f-e5dc-4f82-8e9a-7f35e3ad9a0b,1,0,371361b6-15fd-4e62-9f60-cc8ee3fbacf0,371361b6-15fd-4e62-9f60-cc8ee3fbacf0,1,0,97745768-ed35-44f1-beba-abb8b28a29ae,97745768-ed35-44f1-beba-abb8b28a29ae,1,0,69364942-bcd1-4b06-9b57-fa59b4e7c552,69364942-bcd1-4b06-9b57-fa59b4e7c552,1,0,ab201c5f-4134-42cf-a528-c1c4df02f2d7,ab201c5f-4134-42cf-a528-c1c4df02f2d7,1,0,303fb7b5-6a23-40ea-ae12-b54f4ebae026,303fb7b5-6a23-40ea-ae12-b54f4ebae026,1,0,634cd26b-78f1-4446-8aad-b96ed16e5329,634cd26b-78f1-4446-8aad-b96ed16e5329,1,0,d8e62f1a-92ca-4971-9609-e79da798c083,d8e62f1a-92ca-4971-9609-e79da798c083,1,0,eb74ebf0-a9c6-4c4c-b279-5a46f40ea0d3,eb74ebf0-a9c6-4c4c-b279-5a46f40ea0d3,1,0,d5e1806b-9827-40ab-9cfa-23c22456d137,d5e1806b-9827-40ab-9cfa-23c22456d137,1,0,b57b186a-ec1e-46a2-87ae-6ba27793ebf6,b57b186a-ec1e-46a2-87ae-6ba27793ebf6,1,0,d24170d7-5477-4ec8-acd2-0de8bd2067d6,d24170d7-5477-4ec8-acd2-0de8bd2067d6,1,0,f047da82-7574-4da4-b54e-480195280a11,f047da82-7574-4da4-b54e-480195280a11,1,0,a469f018-da26-485f-87c3-f580321a34f0,a469f018-da26-485f-87c3-f580321a34f0,1,0,adcb0dca-d810-461e-8f45-1d3cd6ffad4d,adcb0dca-d810-461e-8f45-1d3cd6ffad4d,1,0,388f7571-8f1b-45c5-a8b8-45d648f2f5dd,388f7571-8f1b-45c5-a8b8-45d648f2f5dd,1,0,886df9ab-09b4-4c7a-bd44-6afeab68d831,886df9ab-09b4-4c7a-bd44-6afeab68d831,1,0,9e16edb6-d841-48fa-bfe1-f9aabdcf9e46,9e16edb6-d841-48fa-bfe1-f9aabdcf9e46,1,0,628de771-c19c-4474-989f-8fb6cd7756a2,628de771-c19c-4474-989f-8fb6cd7756a2,1,0,6b0ddefa-ee70-4b27-989f-e23c734ab943,6b0ddefa-ee70-4b27-989f-e23c734ab943,1,0,ee873280-28ea-41fb-af52-c10c2018cbe4,ee873280-28ea-41fb-af52-c10c2018cbe4,1,0,6789e57b-1293-442c-97d0-b8007367602e,6789e57b-1293-442c-97d0-b8007367602e,1,0,0f193c89-b664-448e-bed3-2147430367f7,0f193c89-b664-448e-bed3-2147430367f7,1,0,4c9b2506-75a8-47d3-a5d5-d946088ba14a,4c9b2506-75a8-47d3-a5d5-d946088ba14a,1,0,36eacaa1-2efd-49c0-82de-2f8972535bf2,36eacaa1-2efd-49c0-82de-2f8972535bf2,1,0,0a7e5d85-3f94-4d93-8478-6d34f3b3ea33,0a7e5d85-3f94-4d93-8478-6d34f3b3ea33,1,0,9f7b9fd8-4bdd-4492-abf7-09b3f7f23e16,9f7b9fd8-4bdd-4492-abf7-09b3f7f23e16,1,0,72ee9a03-a320-4e60-be04-0ee813ea567f,72ee9a03-a320-4e60-be04-0ee813ea567f,1,0,f6f52cc8-23a3-4402-b1eb-0e41584c802a,f6f52cc8-23a3-4402-b1eb-0e41584c802a,1,0,8398e065-8b4b-4901-b057-2a048776bafe,8398e065-8b4b-4901-b057-2a048776bafe,1,0,073c56ca-bf45-422d-957a-f9c57aeee4d0,073c56ca-bf45-422d-957a-f9c57aeee4d0,1,0,d73e084f-9201-40c8-8ad4-f61b6cbb47c9,d73e084f-9201-40c8-8ad4-f61b6cbb47c9,1,0,52f065fe-556a-47cd-82b1-c56d7894df30,52f065fe-556a-47cd-82b1-c56d7894df30,1,0,186efec4-1343-4234-a9b6-c8d8096faf76,186efec4-1343-4234-a9b6-c8d8096faf76,1,0,6b15631a-0c98-4771-ba87-9d6f5795df63,6b15631a-0c98-4771-ba87-9d6f5795df63,1,0,ed72e5ef-a8b9-404b-a8b4-cb587c7f3018,ed72e5ef-a8b9-404b-a8b4-cb587c7f3018,1,0,51d30e7e-54b4-40be-a5bc-46fec691a425,51d30e7e-54b4-40be-a5bc-46fec691a425,1,0,bdff2b56-efbc-44ce-8141-7df2b095de37,bdff2b56-efbc-44ce-8141-7df2b095de37,1,0,be158212-2b71-43b1-8dda-f34ea30f16e7,be158212-2b71-43b1-8dda-f34ea30f16e7,1,0,68598d98-0c59-4cda-b0b2-6901d3aff88b,68598d98-0c59-4cda-b0b2-6901d3aff88b,1,0,219c1375-f26e-4698-aa82-4b9d735df783,219c1375-f26e-4698-aa82-4b9d735df783,1,0,ff5121c1-7f11-48cd-a9df-3588cf9f6d21,ff5121c1-7f11-48cd-a9df-3588cf9f6d21,1,0,32012b27-1b43-49be-b9af-df0c877e7a4c,32012b27-1b43-49be-b9af-df0c877e7a4c,1,0,e97d5152-9e58-4a91-a691-b4d358f1c89d,e97d5152-9e58-4a91-a691-b4d358f1c89d,1,0,1de4d7ee-7ddd-44db-bf7f-1b99b653652c,1de4d7ee-7ddd-44db-bf7f-1b99b653652c,1,0,dfe624ac-9f49-46dd-b821-1f1f5b5e0d15,dfe624ac-9f49-46dd-b821-1f1f5b5e0d15,1,0,296c478b-4103-46cb-9d14-97f59034ffd4,296c478b-4103-46cb-9d14-97f59034ffd4,1,0,fb918a68-f86d-46c0-9078-61d2b32b5aef,fb918a68-f86d-46c0-9078-61d2b32b5aef,1,0,9ca4d0c4-f5d3-4748-bf73-f3cd1bc4ac46,9ca4d0c4-f5d3-4748-bf73-f3cd1bc4ac46,1,0,1ddfc773-4f3c-4764-978e-585aab4666de,1ddfc773-4f3c-4764-978e-585aab4666de,1,0,e424d122-1dbb-4545-975c-177997129f2e,e424d122-1dbb-4545-975c-177997129f2e,1,0,c83bc626-dfdd-4451-92b0-b53eed40f534,c83bc626-dfdd-4451-92b0-b53eed40f534,1,0,7b9b1d11-4f78-4113-8fca-1a3a30953aef,7b9b1d11-4f78-4113-8fca-1a3a30953aef,1,0,7f84cb85-c3e4-4b53-b829-3b1e216f978a,7f84cb85-c3e4-4b53-b829-3b1e216f978a,1,0,7e621ecc-7d2b-42bf-a502-f8e59de56b63,7e621ecc-7d2b-42bf-a502-f8e59de56b63,1,0,798fd445-d02e-4e97-890a-0283f33317cf,798fd445-d02e-4e97-890a-0283f33317cf,1,0,095583ca-010d-43ad-8c7a-8938fa4cb761,095583ca-010d-43ad-8c7a-8938fa4cb761,1,0,178d210c-e847-4805-a8d4-31acdf4983af,178d210c-e847-4805-a8d4-31acdf4983af,1,0,aa214d9f-23b1-4996-8a43-9010dceeb53d,aa214d9f-23b1-4996-8a43-9010dceeb53d,1,0,26a5527e-dc2b-45a4-a51c-b1dfb31fa8a2,26a5527e-dc2b-45a4-a51c-b1dfb31fa8a2,1,0,aefc3149-90ee-4ccc-8fb6-b1f6096237f6,aefc3149-90ee-4ccc-8fb6-b1f6096237f6,1,0,d9d103bd-1dd6-48a9-8869-6c8485705393,d9d103bd-1dd6-48a9-8869-6c8485705393,1,0,cf2f7e1f-9b0b-4ae9-9c94-99d80bf95eae,cf2f7e1f-9b0b-4ae9-9c94-99d80bf95eae,1,0,ff0e8487-bdbf-4b21-877e-00008c81bc09,ff0e8487-bdbf-4b21-877e-00008c81bc09,1,0,39c9f8ac-56a0-4057-8359-7228bf97184a,39c9f8ac-56a0-4057-8359-7228bf97184a,1,0,763fbb4c-cab2-4c71-ba16-7e2ce8c3dc97,763fbb4c-cab2-4c71-ba16-7e2ce8c3dc97,1,0,2c0dd892-1d3e-4497-850b-080bdb9c59d8,2c0dd892-1d3e-4497-850b-080bdb9c59d8,1,0,3b727d49-c9ed-4d9e-af61-c13b9a170c75,3b727d49-c9ed-4d9e-af61-c13b9a170c75,1,0,1b264744-bdcd-4c5c-932b-0ac4b990dd78,1b264744-bdcd-4c5c-932b-0ac4b990dd78,1,0,a2dbf20e-1fe9-463d-8fd4-76ce2e4854d1,a2dbf20e-1fe9-463d-8fd4-76ce2e4854d1,1,0,37bde288-8e02-4127-bd80-de8ae7590a14,37bde288-8e02-4127-bd80-de8ae7590a14,1,0,a9b8e517-78cd-4428-b2fc-9e16af0069d7,a9b8e517-78cd-4428-b2fc-9e16af0069d7,1,0,5c592024-c009-4674-bbb8-283669e673ef,5c592024-c009-4674-bbb8-283669e673ef,1,0,e76f16b9-77a0-4033-90d0-6e04e4494747,e76f16b9-77a0-4033-90d0-6e04e4494747,1,0,cfb221fc-8639-4e15-9a78-f7837d657a99,cfb221fc-8639-4e15-9a78-f7837d657a99,1,0,4e61c8c3-756e-4937-adf6-6a1e9a89fc6a,4e61c8c3-756e-4937-adf6-6a1e9a89fc6a,1,0,022147c1-1ebe-4c8d-b367-4c47115b101d,022147c1-1ebe-4c8d-b367-4c47115b101d,1,0,2975d4c8-90d8-4791-8bc2-4adaa328ddc0,2975d4c8-90d8-4791-8bc2-4adaa328ddc0,1,0,fca6b230-a38e-4791-9cc5-3d215f79dc6f,fca6b230-a38e-4791-9cc5-3d215f79dc6f,1,0,04e87de4-940a-4533-8c81-8f145b201dc0,04e87de4-940a-4533-8c81-8f145b201dc0,1,0,573ef4f4-e9e6-4b7c-944d-30808a6a00b7,573ef4f4-e9e6-4b7c-944d-30808a6a00b7,1,0,fa488af9-a5ec-47d8-8661-fa5058a60a6b,fa488af9-a5ec-47d8-8661-fa5058a60a6b,1,0,97cc84c6-3565-474c-a028-83acb5390446,97cc84c6-3565-474c-a028-83acb5390446,1,0,9bf07c3e-7fdf-4a4f-ab00-98c7668349bd,9bf07c3e-7fdf-4a4f-ab00-98c7668349bd,1,0,ebbf6957-6ff6-4dc2-9e20-23d1da091f05,ebbf6957-6ff6-4dc2-9e20-23d1da091f05,1,0,9b80acf6-6bf0-42c4-abb3-2fa2fcf4088c,9b80acf6-6bf0-42c4-abb3-2fa2fcf4088c,1,0,1dcec107-9d5f-4b69-ad65-cc4cb1f27a9c,1dcec107-9d5f-4b69-ad65-cc4cb1f27a9c,1,0,b366d7eb-626c-4c0c-b4cc-c392763e6e94,b366d7eb-626c-4c0c-b4cc-c392763e6e94,1,0,4c7e24aa-726a-4595-82ad-ef1e525b14fa,4c7e24aa-726a-4595-82ad-ef1e525b14fa,1,0,aed2ceeb-cc0f-4bdc-bb94-2e15cd68aa96,aed2ceeb-cc0f-4bdc-bb94-2e15cd68aa96,1,0,04b5ae71-7fa4-4a64-b406-59dc603b80c5,04b5ae71-7fa4-4a64-b406-59dc603b80c5,1,0,f23a2023-f776-40db-8689-1fc3f7ebc482,f23a2023-f776-40db-8689-1fc3f7ebc482,1,0,ca6013dd-6178-4139-9a8d-407e9acb0578,ca6013dd-6178-4139-9a8d-407e9acb0578,1,0,e3a5de01-ece0-466d-8415-56391ace87a8,e3a5de01-ece0-466d-8415-56391ace87a8,1,0,411191b2-0ca7-4f61-a2c5-b63632558f2b,411191b2-0ca7-4f61-a2c5-b63632558f2b,1,0,92e39f71-ee94-48c7-ba3f-b08f3c6f9fb5,92e39f71-ee94-48c7-ba3f-b08f3c6f9fb5,1,0,deddee3c-5014-492e-8602-4835ada77e15,deddee3c-5014-492e-8602-4835ada77e15,1,0,a1e3b188-39d5-4f3d-bdbd-cfe61ac96c52,a1e3b188-39d5-4f3d-bdbd-cfe61ac96c52,1,0,407236b2-543d-4faa-9d8e-5fcb548f9818,407236b2-543d-4faa-9d8e-5fcb548f9818,1,0,af5da854-1b45-43a6-9ca7-f998dca3f869,af5da854-1b45-43a6-9ca7-f998dca3f869,1,0,955cf6fa-7723-4f7c-9666-59be7415bbc5,955cf6fa-7723-4f7c-9666-59be7415bbc5,1,0,1415ba25-2477-4d93-b248-95235d5086ed,1415ba25-2477-4d93-b248-95235d5086ed,1,0,4f158e2f-bd70-4cb1-8200-4e5c6a98bdf6,4f158e2f-bd70-4cb1-8200-4e5c6a98bdf6,1,0,52895190-0133-4244-82b2-18b30a97e16f,52895190-0133-4244-82b2-18b30a97e16f,1,0,1e7684f0-1b3b-4a32-8602-dd0672c5a800,1e7684f0-1b3b-4a32-8602-dd0672c5a800,1,0,ab178a93-8570-43b6-ae42-f34a7cc4f359,ab178a93-8570-43b6-ae42-f34a7cc4f359,1,0,4c82f31d-7a98-47dd-89dc-1846cb15bf3b,4c82f31d-7a98-47dd-89dc-1846cb15bf3b,1,0,168e3189-2676-4cdb-bc9d-78d85df51faf,168e3189-2676-4cdb-bc9d-78d85df51faf,1,0,ecf1a87f-4ca4-4efb-a84c-b2db1b0e8829,ecf1a87f-4ca4-4efb-a84c-b2db1b0e8829,1,0,c4b691fb-d511-4950-835c-d6e9c65ecbc2,c4b691fb-d511-4950-835c-d6e9c65ecbc2,1,0,14e20d48-635e-4c52-9099-e743323fc190,14e20d48-635e-4c52-9099-e743323fc190,1,0,2b849698-22df-4729-bad9-a5646f1ea63b,2b849698-22df-4729-bad9-a5646f1ea63b,1,0,bd60dac1-8f7d-42e6-b85a-6e80b06b13b8,bd60dac1-8f7d-42e6-b85a-6e80b06b13b8,1,0,697369c0-3b4f-43a1-8683-a042fc3463ee,697369c0-3b4f-43a1-8683-a042fc3463ee,1,0,87a37483-7341-44e3-9e1a-e2c523f0f415,87a37483-7341-44e3-9e1a-e2c523f0f415,1,0,ac497cd0-b2a2-412e-96bf-ab12b4035065,ac497cd0-b2a2-412e-96bf-ab12b4035065,1,0,4ac50294-dbb1-4df8-badc-8b8fd8068d47,4ac50294-dbb1-4df8-badc-8b8fd8068d47,1,0,706331e2-2d1a-492a-a9af-22fbb80bfd45,706331e2-2d1a-492a-a9af-22fbb80bfd45,1,0,4110db29-d80a-409c-a578-7c96305899f6,4110db29-d80a-409c-a578-7c96305899f6,1,0,e47ed32b-d914-4596-bd08-a6022f3662a8,e47ed32b-d914-4596-bd08-a6022f3662a8,1,0,c37a660e-16c5-495e-9486-e61bcb693fa0,c37a660e-16c5-495e-9486-e61bcb693fa0,1,0,8f44ebad-1160-474e-a566-fb9da55ffcba,8f44ebad-1160-474e-a566-fb9da55ffcba,1,0,11cf336e-7890-4972-bf71-32d7416ff647,11cf336e-7890-4972-bf71-32d7416ff647,1,0,4c4d61a6-6bb6-4a15-9a81-25fdcf96ec4b,4c4d61a6-6bb6-4a15-9a81-25fdcf96ec4b,1,0,880658c1-dbab-4333-b51f-efd8b3039a34,880658c1-dbab-4333-b51f-efd8b3039a34,1,0,64484611-b32c-4155-a063-7df5a3f924dd,64484611-b32c-4155-a063-7df5a3f924dd,1,0,7ef8627b-f924-4fef-982f-2f6bcb4e935b,7ef8627b-f924-4fef-982f-2f6bcb4e935b,1,0,2f2ac0db-db86-4ed2-a55a-b245b4d00d70,2f2ac0db-db86-4ed2-a55a-b245b4d00d70,1,0,821b93bd-f0dd-4468-972a-d9b2b4de72f1,821b93bd-f0dd-4468-972a-d9b2b4de72f1,1,0,56900066-90e3-40c0-b64a-8f7964a4dfc1,56900066-90e3-40c0-b64a-8f7964a4dfc1,1,0,56f0c4d6-9b13-486a-9586-05e657dca8be,56f0c4d6-9b13-486a-9586-05e657dca8be,1,0,c795c0d3-6a0d-4311-9821-df320663727e,c795c0d3-6a0d-4311-9821-df320663727e,1,0,512b8d89-8798-4549-9e79-b9c3f7d9098f,512b8d89-8798-4549-9e79-b9c3f7d9098f,1,0,e1fe71f8-f37c-4705-aca1-c25e2bdc5db6,e1fe71f8-f37c-4705-aca1-c25e2bdc5db6,1,0,7f356abf-9045-4a76-89f3-8b52d467122a,7f356abf-9045-4a76-89f3-8b52d467122a,1,0,625a61ac-4ad0-4b31-aa67-9f864154b9c4,625a61ac-4ad0-4b31-aa67-9f864154b9c4,1,0,e38fb48f-0e16-44d9-bf3f-21c804c404e0,e38fb48f-0e16-44d9-bf3f-21c804c404e0,1,0,e4ea640f-e3a4-44ad-b17d-51f32136372e,e4ea640f-e3a4-44ad-b17d-51f32136372e,1,0,02b13a31-1790-4a4f-bab7-bdd8deb0ef3c,02b13a31-1790-4a4f-bab7-bdd8deb0ef3c,1,0,dec6dbe4-f184-4059-b1f0-e0d5a388dbb7,dec6dbe4-f184-4059-b1f0-e0d5a388dbb7,1,0,38313034-c287-4269-81bf-d7cfee9cf29b,38313034-c287-4269-81bf-d7cfee9cf29b,1,0,fa5c43be-9b2f-42b2-99f7-59034cc4e395,fa5c43be-9b2f-42b2-99f7-59034cc4e395,1,0,656505ca-cd6b-4d75-b81c-66d3e160122d,656505ca-cd6b-4d75-b81c-66d3e160122d,1,0,be3bb034-7366-4fd5-9d45-7325e0f774c8,be3bb034-7366-4fd5-9d45-7325e0f774c8,1,0,f0d66d6d-503a-4bbd-bebb-e9567fc4621a,f0d66d6d-503a-4bbd-bebb-e9567fc4621a,1,0,e6437578-db9f-4074-8e93-63dff0a24a92,e6437578-db9f-4074-8e93-63dff0a24a92,1,0,8db31f1e-339d-4fd4-a1b1-da72725d4208,8db31f1e-339d-4fd4-a1b1-da72725d4208,1,0,526e3084-c8b9-4244-b9db-8f0404f8cc77,526e3084-c8b9-4244-b9db-8f0404f8cc77,1,0,d60de62d-ebd5-4da6-91d8-675a0578142f,d60de62d-ebd5-4da6-91d8-675a0578142f,1,0,13e25baf-1855-469a-95a3-2db880220e76,13e25baf-1855-469a-95a3-2db880220e76,1,0,ed0f4f30-22b6-47c6-bd94-999c10a5c172,ed0f4f30-22b6-47c6-bd94-999c10a5c172,1,0,7c97287d-bf6c-44dc-b05a-5f950a6fbf7b,7c97287d-bf6c-44dc-b05a-5f950a6fbf7b,1,0,cca3e7a0-3691-4e1e-a362-3d29d237c196,cca3e7a0-3691-4e1e-a362-3d29d237c196,1,0,05fbb101-b84d-476f-9f26-0c546f630050,05fbb101-b84d-476f-9f26-0c546f630050,1,0,922fd510-be67-4d31-bfd1-7598820572df,922fd510-be67-4d31-bfd1-7598820572df,1,0,4c1af4ee-345d-47aa-a2a5-2c31df127bf0,4c1af4ee-345d-47aa-a2a5-2c31df127bf0,1,0,4f657e5a-20fe-4de9-9189-30a4c82cd23d,4f657e5a-20fe-4de9-9189-30a4c82cd23d,1,0,1829f072-ef4e-4123-b47b-079058102e61,1829f072-ef4e-4123-b47b-079058102e61,1,0,d9baa5aa-4e9f-4b0a-834c-d97fa390b1bb,d9baa5aa-4e9f-4b0a-834c-d97fa390b1bb,1,0,9c3f0bdb-7a16-4357-9850-e8a82b806c08,9c3f0bdb-7a16-4357-9850-e8a82b806c08,1,0,49474d66-f4cc-4393-8e0b-7ce2c481af95,49474d66-f4cc-4393-8e0b-7ce2c481af95,1,0,6ff9b259-9b5c-4192-98c5-4a86596fd05d,6ff9b259-9b5c-4192-98c5-4a86596fd05d,1,0,06026ec1-4279-443b-b6ab-07903eae3b87,06026ec1-4279-443b-b6ab-07903eae3b87,1,0,6037b758-6b54-464a-96ec-459378989622,6037b758-6b54-464a-96ec-459378989622,1,0,292a40d8-3ccd-4639-9675-be55064e91b3,292a40d8-3ccd-4639-9675-be55064e91b3,1,0,b140657d-9ed6-4fc0-9109-744ad9be6a08,b140657d-9ed6-4fc0-9109-744ad9be6a08,1,0,b4030e31-f5b3-470c-96b6-b9b1fc372999,b4030e31-f5b3-470c-96b6-b9b1fc372999,1,0,85bb3b43-8447-4c70-90c6-5e8749b9e614,85bb3b43-8447-4c70-90c6-5e8749b9e614,1,0,4fa8e2f8-76f4-4fc5-9f20-22e0aececd7b,4fa8e2f8-76f4-4fc5-9f20-22e0aececd7b,1,0,c7399954-299a-428b-951c-44e2faf731ab,c7399954-299a-428b-951c-44e2faf731ab,1,0,2cbb84a7-b9f8-4ae1-8d56-60b6b0d50afc,2cbb84a7-b9f8-4ae1-8d56-60b6b0d50afc,1,0,77e0b88d-538a-43e9-a775-4afa373866f8,77e0b88d-538a-43e9-a775-4afa373866f8,1,0,91906c04-c6ea-4352-9c4a-01f48d3bd16c,91906c04-c6ea-4352-9c4a-01f48d3bd16c,1,0,fe5578e0-9a2e-4619-b561-7361f03a1d6d,fe5578e0-9a2e-4619-b561-7361f03a1d6d,1,0,63451376-d478-43d3-a733-9eea6804f088,63451376-d478-43d3-a733-9eea6804f088,1,0,9770cb3a-d9fe-41c6-8d60-5f4f95937a85,9770cb3a-d9fe-41c6-8d60-5f4f95937a85,1,0,adbec7ec-6e2b-4ea0-93f0-1335ad7ea187,adbec7ec-6e2b-4ea0-93f0-1335ad7ea187,1,0,0325780d-6e29-4fe8-a1e0-1a475577c20c,0325780d-6e29-4fe8-a1e0-1a475577c20c,1,0,fc150263-af73-43f7-ae0e-3693a123d7af,fc150263-af73-43f7-ae0e-3693a123d7af,1,0,8de3b943-ff47-4646-b76d-03f534771f69,8de3b943-ff47-4646-b76d-03f534771f69,1,0,c93c9176-3466-4b26-9e8f-47490188d981,c93c9176-3466-4b26-9e8f-47490188d981,1,0,3ca53b9b-293d-4706-b9d6-b4a7f8b3fc6b,3ca53b9b-293d-4706-b9d6-b4a7f8b3fc6b,1,0,c2a57f4f-7c15-4f71-8856-062078744444,c2a57f4f-7c15-4f71-8856-062078744444,1,0,aab354e1-9052-477a-9b98-c5f9ac578620,aab354e1-9052-477a-9b98-c5f9ac578620,1,0,6e8a4d6d-80ba-4142-bd8d-afa383de837b,6e8a4d6d-80ba-4142-bd8d-afa383de837b,1,0,e2d6f66e-6b41-4d12-85ca-0af7c2693534,e2d6f66e-6b41-4d12-85ca-0af7c2693534,1,0,c9e4e4fb-7d8c-4d0b-afc7-6ecb9f2b5abd,c9e4e4fb-7d8c-4d0b-afc7-6ecb9f2b5abd,1,0,b20e0d82-85c1-4f9c-afd1-55f7b71b06ac,b20e0d82-85c1-4f9c-afd1-55f7b71b06ac,1,0,88315362-844d-4698-860d-24901e51332d,88315362-844d-4698-860d-24901e51332d,1,0,82a00b83-499b-4146-9cfa-e676833401fb,82a00b83-499b-4146-9cfa-e676833401fb,1,0,5cf49504-22dc-4e8b-b572-eb6525977925,5cf49504-22dc-4e8b-b572-eb6525977925,1,0,a34acd7f-ee67-4cde-a2e7-890f009b1195,a34acd7f-ee67-4cde-a2e7-890f009b1195,1,0,bceb2a25-ab97-4e1c-a193-a1efd2d058c7,bceb2a25-ab97-4e1c-a193-a1efd2d058c7,1,0,5b50b928-4ec0-4ebb-871b-18e3041b8f24,5b50b928-4ec0-4ebb-871b-18e3041b8f24,1,0,d32be162-d81e-4249-87c4-b08b2084cf90,d32be162-d81e-4249-87c4-b08b2084cf90,1,0,6caadb60-e172-4f3a-9dd1-85125773c169,6caadb60-e172-4f3a-9dd1-85125773c169,1,0,6febb670-c7a2-4e3a-8d39-8b045f8b9e48,6febb670-c7a2-4e3a-8d39-8b045f8b9e48,1,0,7dca913d-e37a-4740-8e3d-677d379605ee,7dca913d-e37a-4740-8e3d-677d379605ee,1,0,bd1cf7ef-f3e2-4441-836b-16f2cc227aa9,bd1cf7ef-f3e2-4441-836b-16f2cc227aa9,1,0,e62845df-704f-4ad5-b227-e0128877a814,e62845df-704f-4ad5-b227-e0128877a814,1,0,4f1393e4-9db5-43d6-b47e-caa1aad9b35c,4f1393e4-9db5-43d6-b47e-caa1aad9b35c,1,0,e62e60ea-9f0c-4a7e-869f-4639f31f826c,e62e60ea-9f0c-4a7e-869f-4639f31f826c,1,0,c9035b0f-cfc4-4761-9ba0-a8aacfaa9c72,c9035b0f-cfc4-4761-9ba0-a8aacfaa9c72,1,0,7efb0bf4-d40c-417b-b9bc-f4a5af66ec09,7efb0bf4-d40c-417b-b9bc-f4a5af66ec09,1,0,4cd4694f-17f8-43ba-8940-07628bd937fe,4cd4694f-17f8-43ba-8940-07628bd937fe,1,0,9b9e81f9-e23f-4c77-bf6f-edbce8ebabfa,9b9e81f9-e23f-4c77-bf6f-edbce8ebabfa,1,0,fb5e93bb-e1ff-47a6-a362-ea94e6cbac65,fb5e93bb-e1ff-47a6-a362-ea94e6cbac65,1,0,7df6c94b-3cfe-4764-988e-858d733e35d9,7df6c94b-3cfe-4764-988e-858d733e35d9,1,0,8b251c7d-2d55-4734-a1da-7f1115d95080,8b251c7d-2d55-4734-a1da-7f1115d95080,1,0,87b3153d-bef0-4441-8b1c-a5fc7ba4c36a,87b3153d-bef0-4441-8b1c-a5fc7ba4c36a,1,0,5a8c3621-595a-4168-8bba-a7f8d499e47e,5a8c3621-595a-4168-8bba-a7f8d499e47e,1,0,fc4cfed6-e492-4420-b357-8143a8c2a41a,fc4cfed6-e492-4420-b357-8143a8c2a41a,1,0,4311a250-64af-443e-a711-93b7c41175cf,4311a250-64af-443e-a711-93b7c41175cf,1,0,804b6c57-1d7b-4927-be5b-84b7959fe55e,804b6c57-1d7b-4927-be5b-84b7959fe55e,1,0,f2655d85-79ea-4736-8f41-94a4f9b2b998,f2655d85-79ea-4736-8f41-94a4f9b2b998,1,0,21258174-3a95-4c10-bb8f-4d6db0c5ae0e,21258174-3a95-4c10-bb8f-4d6db0c5ae0e,1,0,a8eb5ed9-df99-405b-afad-eeaa98956eee,a8eb5ed9-df99-405b-afad-eeaa98956eee,1,0,a64d4b1b-fae4-43ae-ae98-bdc4e59a94c1,a64d4b1b-fae4-43ae-ae98-bdc4e59a94c1,1,0,26a1279f-91f0-4632-ad7c-21cf2f524208,26a1279f-91f0-4632-ad7c-21cf2f524208,1,0,bf751ed0-ee47-4eaf-81bd-f0da00bef343,bf751ed0-ee47-4eaf-81bd-f0da00bef343,1,0,14b65111-4c0e-4521-9fcd-2a8d4aaa6b4b,14b65111-4c0e-4521-9fcd-2a8d4aaa6b4b,1,0,1f1def7c-e0ee-4963-afea-1751bf1b812c,1f1def7c-e0ee-4963-afea-1751bf1b812c,1,0,9a4c0898-ab56-425c-8191-5ab90f4e12bf,9a4c0898-ab56-425c-8191-5ab90f4e12bf,1,0,6841ec47-7a84-441a-b975-69d089072ce7,6841ec47-7a84-441a-b975-69d089072ce7,1,0,ead4001a-0d8a-4b95-8212-2a40e5aa6659,ead4001a-0d8a-4b95-8212-2a40e5aa6659,1,0,22165c8a-2179-4cd5-b195-bd2721e9e232,22165c8a-2179-4cd5-b195-bd2721e9e232,1,0,b28c3a8f-8cad-45eb-90d3-6d90a0b3f881,b28c3a8f-8cad-45eb-90d3-6d90a0b3f881,1,0,3c5974ec-f76d-401c-a8e4-d51c7cd4c4fb,3c5974ec-f76d-401c-a8e4-d51c7cd4c4fb,1,0,609a9bc9-4225-4fe1-91fa-90c9c2e5cfba,609a9bc9-4225-4fe1-91fa-90c9c2e5cfba,1,0,d22ed498-c7df-45bb-869f-f16d3aa2d3d3,d22ed498-c7df-45bb-869f-f16d3aa2d3d3,1,0,4a966f6e-87dd-4dae-9cc0-dbabee9424dc,4a966f6e-87dd-4dae-9cc0-dbabee9424dc,1,0,9d9debfd-4a10-4f09-9d09-2aa5e058b525,9d9debfd-4a10-4f09-9d09-2aa5e058b525,1,0,fc19586c-d89c-495c-b473-6f85967ed48e,fc19586c-d89c-495c-b473-6f85967ed48e,1,0,2ac7c701-a281-4e77-a5f8-294526021e2d,2ac7c701-a281-4e77-a5f8-294526021e2d,1,0,979df549-889d-496a-b6ce-c56d54c771b5,979df549-889d-496a-b6ce-c56d54c771b5,1,0,91b320d8-3426-44d3-97d7-c200287d7343,91b320d8-3426-44d3-97d7-c200287d7343,1,0,b9297f72-b40a-4adb-9975-bb693d4834a4,b9297f72-b40a-4adb-9975-bb693d4834a4,1,0,41cf3916-216f-4c4e-a587-82777f4263e0,41cf3916-216f-4c4e-a587-82777f4263e0,1,0,2ce3a350-86f1-4275-8299-3c3693ca11fa,2ce3a350-86f1-4275-8299-3c3693ca11fa,1,0,59f0ed15-c84c-4f41-bdd4-26317e4e914d,59f0ed15-c84c-4f41-bdd4-26317e4e914d,1,0,4b5ff142-47b8-4548-b6f9-56ebcbd40e35,4b5ff142-47b8-4548-b6f9-56ebcbd40e35,1,0,8fef790c-a3f4-460c-9093-5065cbdba196,8fef790c-a3f4-460c-9093-5065cbdba196,1,0,79bd24d0-61a9-4558-90ac-4e726066789c,79bd24d0-61a9-4558-90ac-4e726066789c,1,0,d843cbd7-e2b5-4c50-8ed2-7cb0baac8ecc,d843cbd7-e2b5-4c50-8ed2-7cb0baac8ecc,1,0,ef356548-51a4-4b09-b37d-ede5b8f3edb6,ef356548-51a4-4b09-b37d-ede5b8f3edb6,1,0,53c0d900-5e96-4381-a1ed-4424a5799608,53c0d900-5e96-4381-a1ed-4424a5799608,1,0,64fe317a-7d0e-4758-b5cf-0d871d2bf4ad,64fe317a-7d0e-4758-b5cf-0d871d2bf4ad,1,0,abfb7ac3-ebfa-4275-a039-a6b94bb9a76f,abfb7ac3-ebfa-4275-a039-a6b94bb9a76f,1,0,45ca9e20-1246-4400-a019-ffb521af6ea7,45ca9e20-1246-4400-a019-ffb521af6ea7,1,0,73eed854-5c3a-4a10-9bfa-793fd517f303,73eed854-5c3a-4a10-9bfa-793fd517f303,1,0,c3eb2836-ea4d-48cc-a03f-3a0c30f67e7f,c3eb2836-ea4d-48cc-a03f-3a0c30f67e7f,1,0,9134dc40-a8f1-4c60-9431-27cb98be5ecd,9134dc40-a8f1-4c60-9431-27cb98be5ecd,1,0,16c4622a-33af-4a95-b44e-0861a6df21d2,16c4622a-33af-4a95-b44e-0861a6df21d2,1,0,d8cac67b-cce2-4a00-a8df-c6570c50153f,d8cac67b-cce2-4a00-a8df-c6570c50153f,1,0,37213c65-bf26-4e50-a2fa-58eb45439b58,37213c65-bf26-4e50-a2fa-58eb45439b58,1,0,e43c08a9-6496-4c8e-bfe2-9d728e31d63d,e43c08a9-6496-4c8e-bfe2-9d728e31d63d,1,0,b6b31892-73ee-4c9b-92b0-2735536c4938,b6b31892-73ee-4c9b-92b0-2735536c4938,1,0,deb8b883-142e-47d0-a722-7c734a0cf9b3,deb8b883-142e-47d0-a722-7c734a0cf9b3,1,0,a6794f74-08a4-4b73-add7-e6d0d1b6e7a3,a6794f74-08a4-4b73-add7-e6d0d1b6e7a3,1,0,29233058-ccb1-4110-a9bc-cdb4c531f35a,29233058-ccb1-4110-a9bc-cdb4c531f35a,1,0,cf3729b2-9ee6-437c-81df-83966793be50,cf3729b2-9ee6-437c-81df-83966793be50,1,0,429d08b7-0b98-4f9b-a053-d04dd84a7026,429d08b7-0b98-4f9b-a053-d04dd84a7026,1,0,b64fd964-cee8-4619-872f-82d2fdc14240,b64fd964-cee8-4619-872f-82d2fdc14240,1,0,5ce7846d-9806-40f5-8631-4e14deb8bc95,5ce7846d-9806-40f5-8631-4e14deb8bc95,1,0,79528a0e-1e48-4d14-bd28-756fd5db57b9,79528a0e-1e48-4d14-bd28-756fd5db57b9,1,0,4eeab8c2-d901-4b95-adea-4a08f79d0fa2,4eeab8c2-d901-4b95-adea-4a08f79d0fa2,1,0,d9426219-4b37-4776-8d5d-acab5825e789,d9426219-4b37-4776-8d5d-acab5825e789,1,0,7ce1f9eb-ac51-46fd-adc5-c8b9bfb32e44,7ce1f9eb-ac51-46fd-adc5-c8b9bfb32e44,1,0,4fef5026-1cba-4c33-ae75-5f9570a8e6b6,4fef5026-1cba-4c33-ae75-5f9570a8e6b6,1,0,243ee3d4-4130-41ea-a37c-c7b39a5e73fa,243ee3d4-4130-41ea-a37c-c7b39a5e73fa,1,0,29e7299a-ce80-497a-8102-615d0a001ea8,29e7299a-ce80-497a-8102-615d0a001ea8,1,0,f9e48170-62eb-4d6b-b861-c7af1b4a38c3,f9e48170-62eb-4d6b-b861-c7af1b4a38c3,1,0,9bcc8f9a-ec12-45f2-8a32-6946d556f57a,9bcc8f9a-ec12-45f2-8a32-6946d556f57a,1,0,adc2cc11-b647-453f-a98e-8a73b7c368c7,adc2cc11-b647-453f-a98e-8a73b7c368c7,1,0,905b787b-c638-4703-af70-416a2ce43b50,905b787b-c638-4703-af70-416a2ce43b50,1,0,d7ea882a-6ef9-407f-b0e9-7bb42cf5ef17,d7ea882a-6ef9-407f-b0e9-7bb42cf5ef17,1,0,4522c564-61da-40da-a749-5312121a331d,4522c564-61da-40da-a749-5312121a331d,1,0,9394c709-6cbe-4ef6-bc8c-cba8af65821e,9394c709-6cbe-4ef6-bc8c-cba8af65821e,1,0,2943b572-7411-4f92-a6cc-7ee552b85223,2943b572-7411-4f92-a6cc-7ee552b85223,1,0,28478e7a-e8aa-40aa-866c-a3624f903141,28478e7a-e8aa-40aa-866c-a3624f903141,1,0,f692ab21-a8de-4feb-914f-4beef350543a,f692ab21-a8de-4feb-914f-4beef350543a,1,0,a5663ce2-587d-4255-b30e-6979c909cc05,a5663ce2-587d-4255-b30e-6979c909cc05,1,0,942b3e77-2a66-4879-972d-b5d25a706f9a,942b3e77-2a66-4879-972d-b5d25a706f9a,1,0,49f67edf-49e7-4198-9f9a-7bddf0a89248,49f67edf-49e7-4198-9f9a-7bddf0a89248,1,0,0ec0b1a0-5f0d-4a14-9a84-49098befa0af,0ec0b1a0-5f0d-4a14-9a84-49098befa0af,1,0,c644ab9b-7bcb-4bfa-b8ba-4c5f7689c91c,c644ab9b-7bcb-4bfa-b8ba-4c5f7689c91c,1,0,dabb3395-6100-4f53-913d-e0230e81b494,dabb3395-6100-4f53-913d-e0230e81b494,1,0,e0a3fae1-1582-4c7a-acd8-870b558acec4,e0a3fae1-1582-4c7a-acd8-870b558acec4,1,0,4f06c867-6fec-4a4d-a360-6d8e98e4e7a4,4f06c867-6fec-4a4d-a360-6d8e98e4e7a4,1,0,34ee9617-9935-425f-9637-bdffd5a64042,34ee9617-9935-425f-9637-bdffd5a64042,1,0,3e6160f4-eed6-4dd6-a8fb-96c1a90d39be,3e6160f4-eed6-4dd6-a8fb-96c1a90d39be,1,0,778cd9f9-7afd-4eb7-bd4e-90ff7d9cf4f0,778cd9f9-7afd-4eb7-bd4e-90ff7d9cf4f0,1,0,fb8f3edd-bf12-4312-8ffe-7bbd627fa52b,fb8f3edd-bf12-4312-8ffe-7bbd627fa52b,1,0,6ddad5e2-b2c3-47bc-b339-54ccd7391e33,6ddad5e2-b2c3-47bc-b339-54ccd7391e33,1,0,761ca1c1-c843-47a1-bacc-2f9d1d68634d,761ca1c1-c843-47a1-bacc-2f9d1d68634d,1,0,af4a815b-d9d4-4fe6-9b2b-3932381e7346,af4a815b-d9d4-4fe6-9b2b-3932381e7346,1,0,9dbca72a-fb38-4d86-a3ff-83f7edc0fdb4,9dbca72a-fb38-4d86-a3ff-83f7edc0fdb4,1,0,fab77796-a103-40a6-95bd-238979fc345d,fab77796-a103-40a6-95bd-238979fc345d,1,0,6fad175b-eaf0-4e45-aaa1-c1ebc98e0ed0,6fad175b-eaf0-4e45-aaa1-c1ebc98e0ed0,1,0,0ef5e38c-6f7c-46e7-9c14-4fde6814f93f,0ef5e38c-6f7c-46e7-9c14-4fde6814f93f,1,0,f306dafa-350e-4ff9-bfe2-211be647afe8,f306dafa-350e-4ff9-bfe2-211be647afe8,1,0,6d447b01-21ae-4cc1-9262-4ec4ed5e04f5,6d447b01-21ae-4cc1-9262-4ec4ed5e04f5,1,0,dcd64d40-e57f-4cb5-9ccd-67b27ac546d4,dcd64d40-e57f-4cb5-9ccd-67b27ac546d4,1,0,8d0ad48c-6e27-44c2-87f6-62eef78b6427,8d0ad48c-6e27-44c2-87f6-62eef78b6427,1,0,e4fb3b42-60f6-4413-bba8-6e507b13d5d3,e4fb3b42-60f6-4413-bba8-6e507b13d5d3,1,0,a5e3b305-392c-40a2-9b66-7fdc72c041a3,a5e3b305-392c-40a2-9b66-7fdc72c041a3,1,0,266d41c0-92a1-4d42-bf5b-60a1bddb8912,266d41c0-92a1-4d42-bf5b-60a1bddb8912,1,0,1aad9f99-422a-40e8-83da-6e29b8a4e85a,1aad9f99-422a-40e8-83da-6e29b8a4e85a,1,0,d9010dc7-b0de-4079-944d-fbec7ba5997f,d9010dc7-b0de-4079-944d-fbec7ba5997f,1,0,5defd7f7-cc7d-4e7b-83e3-755f8a2514ea,5defd7f7-cc7d-4e7b-83e3-755f8a2514ea,1,0,744ca01b-41b6-4c30-a280-85e44ad456ba,744ca01b-41b6-4c30-a280-85e44ad456ba,1,0,779856af-2c4a-4643-9bea-a04aa24ee488,779856af-2c4a-4643-9bea-a04aa24ee488,1,0,5c6f12f3-7cb6-4b10-9859-7b72bae3fc76,5c6f12f3-7cb6-4b10-9859-7b72bae3fc76,1,0,d00313c8-ee4a-4463-8d5b-7e87e4e14986,d00313c8-ee4a-4463-8d5b-7e87e4e14986,1,0,6db400f2-873a-44a2-9274-2cd7883bfd87,6db400f2-873a-44a2-9274-2cd7883bfd87,1,0,3b925fd2-adb8-451a-8675-7b081fc7c570,3b925fd2-adb8-451a-8675-7b081fc7c570,1,0,70e9e13d-8f87-4a5b-9c80-49d2cff1a290,70e9e13d-8f87-4a5b-9c80-49d2cff1a290,1,0,04b7e8b2-6bc1-49dc-9476-7eadf94b9188,04b7e8b2-6bc1-49dc-9476-7eadf94b9188,1,0,135c86fc-2979-4833-9107-38d749a9f82f,135c86fc-2979-4833-9107-38d749a9f82f,1,0,78288ff9-d838-4970-84bd-9a6b229e6ef0,78288ff9-d838-4970-84bd-9a6b229e6ef0,1,0,8310f927-1123-4b4b-a65e-0ff29be73329,8310f927-1123-4b4b-a65e-0ff29be73329,1,0,80a9df2d-593d-483d-8d69-28b1c08ec648,80a9df2d-593d-483d-8d69-28b1c08ec648,1,0,4a749e8c-cb35-4bc4-9b31-fb5bc0eab474,4a749e8c-cb35-4bc4-9b31-fb5bc0eab474,1,0,da4a0c05-2285-434b-b7f8-83b2a0d7f23d,da4a0c05-2285-434b-b7f8-83b2a0d7f23d,1,0,8afa9a0e-04c1-4cac-82bb-6767cc0594d9,8afa9a0e-04c1-4cac-82bb-6767cc0594d9,1,0,ecbe625a-55eb-437a-8dee-33fb034d4c0d,ecbe625a-55eb-437a-8dee-33fb034d4c0d,1,0,5d4cefac-5dc4-4d73-8b4b-900a8464fbb2,5d4cefac-5dc4-4d73-8b4b-900a8464fbb2,1,0,948b10b3-0d7c-4dca-8816-75eb86e7881b,948b10b3-0d7c-4dca-8816-75eb86e7881b,1,0,9de91b5a-98e4-414b-b650-b669b0159b49,9de91b5a-98e4-414b-b650-b669b0159b49,1,0,3de3948d-40ff-4e0d-8445-9bf49c916161,3de3948d-40ff-4e0d-8445-9bf49c916161,1,0,73a093ea-1927-483b-b6f5-8f0cbd253753,73a093ea-1927-483b-b6f5-8f0cbd253753,1,0,345f04c0-0274-4e79-b523-f1fa3cf0d92a,345f04c0-0274-4e79-b523-f1fa3cf0d92a,1,0,f3a14787-de1b-4b65-8cb1-bc33a785821c,f3a14787-de1b-4b65-8cb1-bc33a785821c,1,0,ec61075e-fbcb-494a-b790-81548a212d2b,ec61075e-fbcb-494a-b790-81548a212d2b,1,0,0c444045-302b-4dbd-a9a3-81fd40004948,0c444045-302b-4dbd-a9a3-81fd40004948,1,0,f9c0862c-34a2-41a3-ae46-b6a8e1ad1b08,f9c0862c-34a2-41a3-ae46-b6a8e1ad1b08,1,0,1528b799-1c0f-4244-85e8-e738b827934a,1528b799-1c0f-4244-85e8-e738b827934a,1,0,45d79e4d-8c2a-432b-abb8-fb9046abea40,45d79e4d-8c2a-432b-abb8-fb9046abea40,1,0,8f4d2fa9-c6ed-4f85-b3ef-f9214468ffc4,8f4d2fa9-c6ed-4f85-b3ef-f9214468ffc4,1,0,cb73c8c2-3b09-42e9-ac26-1bd51854efb6,cb73c8c2-3b09-42e9-ac26-1bd51854efb6,1,0,bd0f9ec3-156a-4a6f-a52b-1213ec825bc0,bd0f9ec3-156a-4a6f-a52b-1213ec825bc0,1,0,71e52f63-04db-4336-ace6-b143d0a7d250,71e52f63-04db-4336-ace6-b143d0a7d250,1,0,ab4dbaff-cee6-47b3-9d69-13ac5c906f95,ab4dbaff-cee6-47b3-9d69-13ac5c906f95,1,0,82d5ed02-654f-4b86-b995-baf64a147a12,82d5ed02-654f-4b86-b995-baf64a147a12,1,0,ba96177b-d10c-4ad2-9851-dea312eeafd2,ba96177b-d10c-4ad2-9851-dea312eeafd2,1,0,7652c0d3-1b6e-4e0d-96d0-7bbdff808ce9,7652c0d3-1b6e-4e0d-96d0-7bbdff808ce9,1,0,caa287fe-4f60-4243-a6fe-8b2bd607205f,caa287fe-4f60-4243-a6fe-8b2bd607205f,1,0,ba6e2356-8b0e-4af6-9941-3b808e17c570,ba6e2356-8b0e-4af6-9941-3b808e17c570,1,0,f2f90525-566b-4add-ae3e-cc683dee6209,f2f90525-566b-4add-ae3e-cc683dee6209,1,0,59561ccb-5412-4f8a-8961-3d43639e4742,59561ccb-5412-4f8a-8961-3d43639e4742,1,0,8ce1e84a-9e69-4a75-9c3e-481ba3b5eaae,8ce1e84a-9e69-4a75-9c3e-481ba3b5eaae,1,0,0ec665f2-bbde-4e41-8cd0-2578253ecdf3,0ec665f2-bbde-4e41-8cd0-2578253ecdf3,1,0,e82ab008-d6b9-4f02-b4a5-0c0c57b06988,e82ab008-d6b9-4f02-b4a5-0c0c57b06988,1,0,50d2d02d-b812-4c2b-964a-4c2ded54284f,50d2d02d-b812-4c2b-964a-4c2ded54284f,1,0,5503d2c4-0b5e-4ba1-a26d-2f63628b25c8,5503d2c4-0b5e-4ba1-a26d-2f63628b25c8,1,0,53f519d2-0ee6-4314-a986-2f456722f2ae,53f519d2-0ee6-4314-a986-2f456722f2ae,1,0,c94a168f-e10f-4b09-8a82-7e53c056a643,c94a168f-e10f-4b09-8a82-7e53c056a643,1,0,35f56bf0-bb91-4ff4-ade4-fa06296e68a2,35f56bf0-bb91-4ff4-ade4-fa06296e68a2,1,0,a22ba49d-7a11-4dc7-8b0e-874da6f0874d,a22ba49d-7a11-4dc7-8b0e-874da6f0874d,1,0,888e5183-a152-435f-b105-6b924e0d4f4f,888e5183-a152-435f-b105-6b924e0d4f4f,1,0,58f5bd13-9ed7-44ad-b86f-10acc628156f,58f5bd13-9ed7-44ad-b86f-10acc628156f,1,0,f69a29cd-035f-4d16-8bec-150f563691b9,f69a29cd-035f-4d16-8bec-150f563691b9,1,0,6d4e26f4-4cc4-4445-ad7b-547cd0afc750,6d4e26f4-4cc4-4445-ad7b-547cd0afc750,1,0,5736ef36-69eb-4406-a98e-1e4b4227a10d,5736ef36-69eb-4406-a98e-1e4b4227a10d,1,0,0ab0a57c-24c6-4ba8-9be1-5773fd82367e,0ab0a57c-24c6-4ba8-9be1-5773fd82367e,1,0,9964f9e3-613c-479f-8557-742e409da4ab,9964f9e3-613c-479f-8557-742e409da4ab,1,0,ea6d3ce8-cbac-438a-92f1-b246d558fecd,ea6d3ce8-cbac-438a-92f1-b246d558fecd,1,0,84a655d4-49fb-44bb-bdc5-59776046e66b,84a655d4-49fb-44bb-bdc5-59776046e66b,1,0,8d5d9ad3-31a7-4877-b053-64edb7332af4,8d5d9ad3-31a7-4877-b053-64edb7332af4,1,0,3dbcdc42-8583-49e4-9c57-a1b06071be66,3dbcdc42-8583-49e4-9c57-a1b06071be66,1,0,79529e32-4c86-41e3-84ec-17f72b022855,79529e32-4c86-41e3-84ec-17f72b022855,1,0,6ef107de-6385-4448-9ef8-82110452a2b6,6ef107de-6385-4448-9ef8-82110452a2b6,1,0,832cee98-f382-490f-9423-07fe6671c4ba,832cee98-f382-490f-9423-07fe6671c4ba,1,0,3ce07fcb-f1a4-41db-891a-547311567ce0,3ce07fcb-f1a4-41db-891a-547311567ce0,1,0,3bcc76a7-f28a-4d28-a95e-af7ac1138993,3bcc76a7-f28a-4d28-a95e-af7ac1138993,1,0,50b4bf05-7810-4068-8be9-0be410d9b9db,50b4bf05-7810-4068-8be9-0be410d9b9db,1,0,f9f021ca-8b3e-4d10-9538-1bce7e851fdd,f9f021ca-8b3e-4d10-9538-1bce7e851fdd,1,0,bb7cf0f8-56b0-4c0d-b206-79051ba83f6d,bb7cf0f8-56b0-4c0d-b206-79051ba83f6d,1,0,ab057ce4-ac51-4465-8aad-eadc9088c62d,ab057ce4-ac51-4465-8aad-eadc9088c62d,1,0,52231550-161f-4ac9-86f8-f6b2a6e6283a,52231550-161f-4ac9-86f8-f6b2a6e6283a,1,0,6cdb0a08-84fd-43c4-bc4a-2c1f1357cf5a,6cdb0a08-84fd-43c4-bc4a-2c1f1357cf5a,1,0,133e9b99-37a3-44c9-b5ab-873f196de023,133e9b99-37a3-44c9-b5ab-873f196de023,1,0,fc959221-6313-45d9-b2c4-85befaede226,fc959221-6313-45d9-b2c4-85befaede226,1,0,6ffa8536-7639-4e9a-9f6d-4eda71f5ca3b,6ffa8536-7639-4e9a-9f6d-4eda71f5ca3b,1,0,5206d407-ac91-477e-80e7-97c312da934c,5206d407-ac91-477e-80e7-97c312da934c,1,0,15b53eaa-cb35-4385-9515-c2ec6e1fdb4b,15b53eaa-cb35-4385-9515-c2ec6e1fdb4b,1,0,ccb8a530-260a-4488-b1d9-c67325c69bf4,ccb8a530-260a-4488-b1d9-c67325c69bf4,1,0,c869c1b7-3c04-4e5e-a033-d3f2fb0af03c,c869c1b7-3c04-4e5e-a033-d3f2fb0af03c,1,0,23f93492-59f5-491b-8708-45096934c7e6,23f93492-59f5-491b-8708-45096934c7e6,1,0,30f5471a-17fb-4184-9798-4f8e3ef0cccb,30f5471a-17fb-4184-9798-4f8e3ef0cccb,1,0,27abda4c-a43c-49b4-90cd-db780afe0c45,27abda4c-a43c-49b4-90cd-db780afe0c45,1,0,450a36cb-9bc1-4c5b-ae21-0e023f3eb951,450a36cb-9bc1-4c5b-ae21-0e023f3eb951,1,0,1a28db16-d410-4101-bf31-21cefa880dae,1a28db16-d410-4101-bf31-21cefa880dae,1,0,2b85bcf6-85b0-4efb-bada-b65414a8d264,2b85bcf6-85b0-4efb-bada-b65414a8d264,1,0,cf027de4-59c9-4b8f-9695-b1d4d16548fe,cf027de4-59c9-4b8f-9695-b1d4d16548fe,1,0,d33ceaee-a374-40a3-9406-cbcbf82fd8ae,d33ceaee-a374-40a3-9406-cbcbf82fd8ae,1,0,0b13cad5-91ae-4cd1-a620-9a315ae8024c,0b13cad5-91ae-4cd1-a620-9a315ae8024c,1,0,d0634a8e-676f-4f49-9a38-7cb80cfa9fdf,d0634a8e-676f-4f49-9a38-7cb80cfa9fdf,1,0,59bb5271-4cc7-45aa-8e2a-f556a4afa2dc,59bb5271-4cc7-45aa-8e2a-f556a4afa2dc,1,0,81dd61e5-fe02-4272-a525-affda9b606ca,81dd61e5-fe02-4272-a525-affda9b606ca,1,0,8de7b423-b7d1-46fe-b1dc-fb936736b864,8de7b423-b7d1-46fe-b1dc-fb936736b864,1,0,f565876c-0326-4b12-895e-c248b9e64115,f565876c-0326-4b12-895e-c248b9e64115,1,0,62f075c5-1ad0-4a29-9f40-567b9fa70cdf,62f075c5-1ad0-4a29-9f40-567b9fa70cdf,1,0,88cefe4a-a6c5-4753-935e-f956d9de9f77,88cefe4a-a6c5-4753-935e-f956d9de9f77,1,0,882e78b7-90bd-4b95-8852-146bdb51ec15,882e78b7-90bd-4b95-8852-146bdb51ec15,1,0,ae4435c3-62c0-4f08-b526-7f9571eed8ae,ae4435c3-62c0-4f08-b526-7f9571eed8ae,1,0,91a1bd81-e6fa-476c-85e6-317a91f6c8bc,91a1bd81-e6fa-476c-85e6-317a91f6c8bc,1,0,f799e1d1-bb78-4a7a-bb1a-d79ba29acd0c,f799e1d1-bb78-4a7a-bb1a-d79ba29acd0c,1,0,c7b46558-d688-4c42-ae52-f98de7923176,c7b46558-d688-4c42-ae52-f98de7923176,1,0,31fdbb46-1df1-4b74-a54e-b922260dcca6,31fdbb46-1df1-4b74-a54e-b922260dcca6,1,0,ee494dc9-549b-4595-97d1-ca73bacff954,ee494dc9-549b-4595-97d1-ca73bacff954,1,0,0f6f8fd9-b3af-4d06-bc47-bdad238d15b7,0f6f8fd9-b3af-4d06-bc47-bdad238d15b7,1,0,460e76d2-4ed6-464e-bf9c-a6bcf920aaf2,460e76d2-4ed6-464e-bf9c-a6bcf920aaf2,1,0,47a24216-3299-470b-a18c-d8c1258fff24,47a24216-3299-470b-a18c-d8c1258fff24,1,0,72dcfd46-491e-4f88-a0ea-57919f8fbdea,72dcfd46-491e-4f88-a0ea-57919f8fbdea,1,0,fa7a11cc-7ee0-4550-8d0d-9c7464d57a37,fa7a11cc-7ee0-4550-8d0d-9c7464d57a37,1,0,8317ac49-890d-4921-8c0d-1bfc676f0b40,8317ac49-890d-4921-8c0d-1bfc676f0b40,1,0,f9161bc3-9a1c-4870-8681-8e97d8ce838a,f9161bc3-9a1c-4870-8681-8e97d8ce838a,1,0,5e53ccc6-5ab4-4f9d-b524-0081d345d7a2,5e53ccc6-5ab4-4f9d-b524-0081d345d7a2,1,0,c3b3805b-3501-47a7-b280-46180049b235,c3b3805b-3501-47a7-b280-46180049b235,1,0,29af05c2-37de-495b-b3cf-477d452abe5e,29af05c2-37de-495b-b3cf-477d452abe5e,1,0,0c732569-a50f-4be3-a214-0843c6a3da47,0c732569-a50f-4be3-a214-0843c6a3da47,1,0,f55d74bf-5824-4228-9683-31f7c7fdf74d,f55d74bf-5824-4228-9683-31f7c7fdf74d,1,0,5e922083-0ceb-449a-8201-7dd27a46f2fc,5e922083-0ceb-449a-8201-7dd27a46f2fc,1,0,0d142fcd-a596-4cdf-a3f6-c31becdb7b59,0d142fcd-a596-4cdf-a3f6-c31becdb7b59,1,0,c30c6860-befb-497e-b432-3dba0f86c540,c30c6860-befb-497e-b432-3dba0f86c540,1,0,d97e78c7-f2c1-4e0e-9c9b-d2dd6a94da22,d97e78c7-f2c1-4e0e-9c9b-d2dd6a94da22,1,0,e757303e-c61a-4e42-9829-c5a36dba9414,e757303e-c61a-4e42-9829-c5a36dba9414,1,0,cb3bb725-ed7a-4cde-a0ac-26a0b168c0ea,cb3bb725-ed7a-4cde-a0ac-26a0b168c0ea,1,0,977748b7-13d3-41ef-8206-82595ed8fc0c,977748b7-13d3-41ef-8206-82595ed8fc0c,1,0,091de87c-0801-4bd3-aaaa-ed37bc4cd161,091de87c-0801-4bd3-aaaa-ed37bc4cd161,1,0,e9b5a16c-d445-4e62-9a1b-bbea46850646,e9b5a16c-d445-4e62-9a1b-bbea46850646,1,0,9a6bfcbe-6ac7-4839-bfb9-a11b97e64185,9a6bfcbe-6ac7-4839-bfb9-a11b97e64185,1,0,b53c545c-3b1c-4315-a213-4f2b2c7128aa,b53c545c-3b1c-4315-a213-4f2b2c7128aa,1,0,02a84df9-2171-43e6-8135-a74edd384826,02a84df9-2171-43e6-8135-a74edd384826,1,0,ff36356d-cb1d-4316-896a-c6ae83b92437,ff36356d-cb1d-4316-896a-c6ae83b92437,1,0,465cce6a-7064-4b0a-932c-40f842042f33,465cce6a-7064-4b0a-932c-40f842042f33,1,0,f9cd82e7-8252-4bb6-8e08-23ab45ed3976,f9cd82e7-8252-4bb6-8e08-23ab45ed3976,1,0,e67dff00-92e2-4f58-a950-d5bbca9291c5,e67dff00-92e2-4f58-a950-d5bbca9291c5,1,0,e1964724-804a-4ecc-be9e-5b84e58f2b84,e1964724-804a-4ecc-be9e-5b84e58f2b84,1,0,46e961c2-cd45-4d76-a6ad-c1d5c8dc95cc,46e961c2-cd45-4d76-a6ad-c1d5c8dc95cc,1,0,bf3cb513-2856-472b-8713-7bf8ba70cdce,bf3cb513-2856-472b-8713-7bf8ba70cdce,1,0,de4815c8-0853-47e0-862b-b60119c674f6,de4815c8-0853-47e0-862b-b60119c674f6,1,0,dbe02a79-3179-42bb-a8e8-dd9bf3ff705c,dbe02a79-3179-42bb-a8e8-dd9bf3ff705c,1,0,8f17ec3f-6d62-46b8-baef-b20430e948ce,8f17ec3f-6d62-46b8-baef-b20430e948ce,1,0,ea1298d0-9396-4a50-b83e-24064e8dd99d,ea1298d0-9396-4a50-b83e-24064e8dd99d,1,0,038dbb00-e4c6-4e64-b861-3a0764f54ab3,038dbb00-e4c6-4e64-b861-3a0764f54ab3,1,0,1c291f7d-a493-4297-8aaa-912896800066,1c291f7d-a493-4297-8aaa-912896800066,1,0,69149801-a825-4ed2-b077-c26660dff271,69149801-a825-4ed2-b077-c26660dff271,1,0,12146ed3-c159-4d6b-ae1a-1ecd30e5a87e,12146ed3-c159-4d6b-ae1a-1ecd30e5a87e,1,0,518ab687-b84a-40c8-8547-aee4257c1b71,518ab687-b84a-40c8-8547-aee4257c1b71,1,0,5cec0949-bfe8-4f7e-98c1-0c402be3ea09,5cec0949-bfe8-4f7e-98c1-0c402be3ea09,1,0,7732ef07-16eb-46a0-9645-7de95c5482af,7732ef07-16eb-46a0-9645-7de95c5482af,1,0,3fbd3448-b23c-4a83-b2dd-7c193f4239da,3fbd3448-b23c-4a83-b2dd-7c193f4239da,1,0,75dac536-b316-4b04-a57b-03656c678bec,75dac536-b316-4b04-a57b-03656c678bec,1,0,a07d6c85-159d-4d09-b117-561a1e20329f,a07d6c85-159d-4d09-b117-561a1e20329f,1,0,8a2f9733-4f83-41f2-9d74-dca7161a4b41,8a2f9733-4f83-41f2-9d74-dca7161a4b41,1,0,fbd2d900-1e0d-48f3-9793-0186ee49915c,fbd2d900-1e0d-48f3-9793-0186ee49915c,1,0,436b558e-6547-4ba6-8cee-954fe36743ea,436b558e-6547-4ba6-8cee-954fe36743ea,1,0,6120bb6e-b177-48bf-b467-02bab0d4cc0d,6120bb6e-b177-48bf-b467-02bab0d4cc0d,1,0,a5af4715-6c4f-484b-9599-5b1b9147713f,a5af4715-6c4f-484b-9599-5b1b9147713f,1,0,307b6e66-6fef-4777-b20a-37898928932f,307b6e66-6fef-4777-b20a-37898928932f,1,0,a69494c0-dcce-4359-aa82-c1cfae8a43eb,a69494c0-dcce-4359-aa82-c1cfae8a43eb,1,0,2b243d49-5500-403a-b177-ac1c70bb889d,2b243d49-5500-403a-b177-ac1c70bb889d,1,0,51c040c6-e7a4-4e0e-b479-039636fdb6ec,51c040c6-e7a4-4e0e-b479-039636fdb6ec,1,0,8ede4c18-ebf0-4c39-9e82-c59df8d62ca7,8ede4c18-ebf0-4c39-9e82-c59df8d62ca7,1,0,b2c200a7-b9cc-4d84-b839-e69f2a14a8f5,b2c200a7-b9cc-4d84-b839-e69f2a14a8f5,1,0,8a50e7f2-97a9-4ed8-a46f-6413f7fcf8cd,8a50e7f2-97a9-4ed8-a46f-6413f7fcf8cd,1,0,4a69a70d-1b4c-4999-a3dd-ae1deb331fea,4a69a70d-1b4c-4999-a3dd-ae1deb331fea,1,0,3a36e0f5-a645-47f1-99ae-5b0493d604ad,3a36e0f5-a645-47f1-99ae-5b0493d604ad,1,0,57f762f7-b8e4-498b-a3dc-3d40c94855ec,57f762f7-b8e4-498b-a3dc-3d40c94855ec,1,0,ca7d4086-de35-40fd-af65-73369d452135,ca7d4086-de35-40fd-af65-73369d452135,1,0,563c0f5c-e0b4-4229-a3f6-183091060aa4,563c0f5c-e0b4-4229-a3f6-183091060aa4,1,0,bf967588-ea8f-49a3-9331-af2331ffa162,bf967588-ea8f-49a3-9331-af2331ffa162,1,0,d59c2725-5d98-495e-9f86-f5d38dbfad90,d59c2725-5d98-495e-9f86-f5d38dbfad90,1,0,176f8835-73d2-4fbe-9d2a-0a4c79d3b871,176f8835-73d2-4fbe-9d2a-0a4c79d3b871,1,0,0ba68198-983d-409b-be27-96f1572b3f12,0ba68198-983d-409b-be27-96f1572b3f12,1,0,9cd1e8dd-e2be-48a9-b32d-43688e1748bc,9cd1e8dd-e2be-48a9-b32d-43688e1748bc,1,0,decb27a8-7dd3-4601-a694-30429e638b39,decb27a8-7dd3-4601-a694-30429e638b39,1,0,922ac6c0-a6a8-444e-9aad-27dc0f49b32e,922ac6c0-a6a8-444e-9aad-27dc0f49b32e,1,0,d7a128e4-f31f-4b09-8424-e816ab59d5c3,d7a128e4-f31f-4b09-8424-e816ab59d5c3,1,0,0ce6e252-8d6e-4bfe-b8cc-daf3434fa51e,0ce6e252-8d6e-4bfe-b8cc-daf3434fa51e,1,0,aa9513b4-f575-4030-a7f9-ac09aa319e98,aa9513b4-f575-4030-a7f9-ac09aa319e98,1,0,f01afc5e-91b8-4cc2-b63a-c245e5e36d01,f01afc5e-91b8-4cc2-b63a-c245e5e36d01,1,0,028cbc0e-023d-40ad-86c3-5e6f8dc96c57,028cbc0e-023d-40ad-86c3-5e6f8dc96c57,1,0,d03f66b1-48a3-434b-bb58-9fd53c183514,d03f66b1-48a3-434b-bb58-9fd53c183514,1,0,a469e55e-d7ca-4c27-b350-fafe7364c18f,a469e55e-d7ca-4c27-b350-fafe7364c18f,1,0,b4dde44e-57d5-4c3a-bb9b-643787ce07b0,b4dde44e-57d5-4c3a-bb9b-643787ce07b0,1,0,d2160866-78ca-424a-92b9-d389fb341ee0,d2160866-78ca-424a-92b9-d389fb341ee0,1,0,73b36823-72a4-4286-8ee2-02b2f086d5ea,73b36823-72a4-4286-8ee2-02b2f086d5ea,1,0,90a7425e-3fc9-41ec-9373-f410936e1b53,90a7425e-3fc9-41ec-9373-f410936e1b53,1,0,509cdfc8-fad3-4628-869c-6c03d9519d69,509cdfc8-fad3-4628-869c-6c03d9519d69,1,0,c69f8196-5d7e-4ca9-a84e-c85d9ecf8777,c69f8196-5d7e-4ca9-a84e-c85d9ecf8777,1,0,663cf316-3077-4fac-b821-94bd5cdde65c,663cf316-3077-4fac-b821-94bd5cdde65c,1,0,4b37d2c0-4181-4c47-951c-987017972bf7,4b37d2c0-4181-4c47-951c-987017972bf7,1,0,8ae35de6-c7f0-4839-bc27-cc8619e30a43,8ae35de6-c7f0-4839-bc27-cc8619e30a43,1,0,9ef01e37-030a-44b7-824b-110e0f5a88f3,9ef01e37-030a-44b7-824b-110e0f5a88f3,1,0,98bf409f-de8d-4306-b290-716b006e6fd8,98bf409f-de8d-4306-b290-716b006e6fd8,1,0,c15f648b-3aed-4734-bcd2-524e2d3336c0,c15f648b-3aed-4734-bcd2-524e2d3336c0,1,0,600ac5b6-d3ac-4262-820d-5a989fa7f44d,600ac5b6-d3ac-4262-820d-5a989fa7f44d,1,0,3c671c62-5614-4c1b-a823-ac4922c9daf7,3c671c62-5614-4c1b-a823-ac4922c9daf7,1,0,c347e3a2-d6d9-46a0-971f-ec56a45dcbe8,c347e3a2-d6d9-46a0-971f-ec56a45dcbe8,1,0,455c94b6-6b10-405f-a198-f680c7ad5ffe,455c94b6-6b10-405f-a198-f680c7ad5ffe,1,0,d16a63b9-2b84-447e-9c32-1d8f7c4c5a11,d16a63b9-2b84-447e-9c32-1d8f7c4c5a11,1,0,48cc3006-9f06-4be1-aec4-5c04308200d5,48cc3006-9f06-4be1-aec4-5c04308200d5,1,0,bae8ba70-a19e-41fa-b11c-6513453bd3ac,bae8ba70-a19e-41fa-b11c-6513453bd3ac,1,0,f4a9a13e-91b0-4440-8662-25acf099220e,f4a9a13e-91b0-4440-8662-25acf099220e,1,0,ff87a40b-07da-4951-b469-a75d418e88b3,ff87a40b-07da-4951-b469-a75d418e88b3,1,0,708b4656-7d14-491f-95b5-8fe3f0d6d44b,708b4656-7d14-491f-95b5-8fe3f0d6d44b,1,0,331db59d-ef90-4255-89c2-d7fdd6bc5c4c,331db59d-ef90-4255-89c2-d7fdd6bc5c4c,1,0,e520fbbb-3521-4707-bbe7-c8ead04fb2dc,e520fbbb-3521-4707-bbe7-c8ead04fb2dc,1,0,a87faa63-4e1c-440c-b852-0e4e1485a047,a87faa63-4e1c-440c-b852-0e4e1485a047,1,0,36244ad9-5b3a-431e-9dbf-b05ee9da1188,36244ad9-5b3a-431e-9dbf-b05ee9da1188,1,0,6cf7fd67-e426-4fe3-a49d-fbcfae5fb52d,6cf7fd67-e426-4fe3-a49d-fbcfae5fb52d,1,0,92c4d60b-22df-4fef-a5b9-a97bc63b4858,92c4d60b-22df-4fef-a5b9-a97bc63b4858,1,0,8264b98b-7eec-4651-96fc-02620c87f274,8264b98b-7eec-4651-96fc-02620c87f274,1,0,bcd6e5f0-a800-4f21-ad75-24c428157cee,bcd6e5f0-a800-4f21-ad75-24c428157cee,1,0,9f351f0a-2d43-4215-8d74-040911230683,9f351f0a-2d43-4215-8d74-040911230683,1,0,6a9c1bd4-b550-4911-a8d1-321a7713a5a5,6a9c1bd4-b550-4911-a8d1-321a7713a5a5,1,0,019fa716-e91a-4116-abcf-c87349c153a4,019fa716-e91a-4116-abcf-c87349c153a4,1,0,f9fed640-0121-4c36-a822-0db7a9155adc,f9fed640-0121-4c36-a822-0db7a9155adc,1,0,e418d7c4-7322-41b1-a8df-d86a11f7711c,e418d7c4-7322-41b1-a8df-d86a11f7711c,1,0,b8a6ea0c-cb94-44af-8e40-55defed295d1,b8a6ea0c-cb94-44af-8e40-55defed295d1,1,0,3fcdfe26-1668-4aa7-bb10-ef8d8bd0ae39,3fcdfe26-1668-4aa7-bb10-ef8d8bd0ae39,1,0,a0ebcc8a-267b-4f95-a986-46db8fb5df4d,a0ebcc8a-267b-4f95-a986-46db8fb5df4d,1,0,9c890915-1ae3-457e-8a3d-7b39f181304b,9c890915-1ae3-457e-8a3d-7b39f181304b,1,0,3ad5d8a7-3071-46aa-aebf-306bdb67983b,3ad5d8a7-3071-46aa-aebf-306bdb67983b,1,0,ab7ef662-71c1-4d51-9f0f-ea8c5ea3df8a,ab7ef662-71c1-4d51-9f0f-ea8c5ea3df8a,1,0,cb954476-c551-4a06-9bcd-18d67ba47dc8,cb954476-c551-4a06-9bcd-18d67ba47dc8,1,0,79201015-bfae-463e-81f1-0ae2d3066f3f,79201015-bfae-463e-81f1-0ae2d3066f3f,1,0,bed8af4e-fa3a-4b25-ba6e-5b7b4a6cd363,bed8af4e-fa3a-4b25-ba6e-5b7b4a6cd363,1,0,951927d4-7bfc-4edb-b97f-dcc29a937400,951927d4-7bfc-4edb-b97f-dcc29a937400,1,0,71309e88-d514-40f3-a329-b2a420e75504,71309e88-d514-40f3-a329-b2a420e75504,1,0,1ea3178b-73dd-4063-9140-c61687a4b1b8,1ea3178b-73dd-4063-9140-c61687a4b1b8,1,0,85fd7ef4-2886-4e2c-a6eb-63d0b0b9cd55,85fd7ef4-2886-4e2c-a6eb-63d0b0b9cd55,1,0,696723be-7b4f-4321-956e-eff07ea9f5fa,696723be-7b4f-4321-956e-eff07ea9f5fa,1,0,616c27dc-5c59-4469-97a7-27e0752bd3a7,616c27dc-5c59-4469-97a7-27e0752bd3a7,1,0,f7323121-74bc-441c-a3e9-dd5cb4f0accd,f7323121-74bc-441c-a3e9-dd5cb4f0accd,1,0,5225b4da-431e-469d-a30c-31fa434b7e86,5225b4da-431e-469d-a30c-31fa434b7e86,1,0,68dcbdd5-c1fd-472f-873c-359d3a237b8c,68dcbdd5-c1fd-472f-873c-359d3a237b8c,1,0,3c6e831c-c934-46bb-8040-edd6de81ba1b,3c6e831c-c934-46bb-8040-edd6de81ba1b,1,0,3c737aff-9581-409a-9a6e-d5e3c133d8df,3c737aff-9581-409a-9a6e-d5e3c133d8df,1,0,916a9ea9-309d-4a7a-9ded-63bda01a39d4,916a9ea9-309d-4a7a-9ded-63bda01a39d4,1,0,2197147c-f67c-4e92-9e69-2c9900144e82,2197147c-f67c-4e92-9e69-2c9900144e82,1,0,7692e2fd-9ab5-45ee-9a4c-380107769ef7,7692e2fd-9ab5-45ee-9a4c-380107769ef7,1,0,6586260a-3abd-4283-b710-bc2ae3b965d8,6586260a-3abd-4283-b710-bc2ae3b965d8,1,0,2af20999-4b9a-44c7-9edf-40446e083796,2af20999-4b9a-44c7-9edf-40446e083796,1,0,100acfa0-d5f3-4a20-8a05-9d9d00aff2c9,100acfa0-d5f3-4a20-8a05-9d9d00aff2c9,1,0,ccdaa099-3739-4731-b028-3cb4e75834a5,ccdaa099-3739-4731-b028-3cb4e75834a5,1,0,dcbcf7e3-83ab-4460-8ee7-dfc55a0342e7,dcbcf7e3-83ab-4460-8ee7-dfc55a0342e7,1,0,4aa2e369-4871-4f28-ab0b-94323bb7e856,4aa2e369-4871-4f28-ab0b-94323bb7e856,1,0,a2961e9e-8361-4416-b736-1b59c9306526,a2961e9e-8361-4416-b736-1b59c9306526,1,0,ee07ebbe-b34d-4c42-a4b4-d5e14ef4c103,ee07ebbe-b34d-4c42-a4b4-d5e14ef4c103,1,0,1d44bf7e-3dc9-4ca4-86c8-bdabdb5650b8,1d44bf7e-3dc9-4ca4-86c8-bdabdb5650b8,1,0,d4757882-e0bd-4f54-962b-32d49c90fb60,d4757882-e0bd-4f54-962b-32d49c90fb60,1,0,6e650778-3ddd-44ca-bd7f-ffa5e8f4cce4,6e650778-3ddd-44ca-bd7f-ffa5e8f4cce4,1,0,ec81b967-a4a1-48ac-beda-cdc00f1222a0,ec81b967-a4a1-48ac-beda-cdc00f1222a0,1,0,0040f7b0-3499-41bd-94bf-d63679d9d9c1,0040f7b0-3499-41bd-94bf-d63679d9d9c1,1,0,e5c31a93-cda7-4972-a13b-8cb864cc40ed,e5c31a93-cda7-4972-a13b-8cb864cc40ed,1,0,e2a5f14f-9b64-4d1c-9c66-332ea0157cc2,e2a5f14f-9b64-4d1c-9c66-332ea0157cc2,1,0,0fdbd1ab-716d-46b5-aa75-fb09812ced5b,0fdbd1ab-716d-46b5-aa75-fb09812ced5b,1,0,b26ab92b-9739-4eb4-b855-be6850274432,b26ab92b-9739-4eb4-b855-be6850274432,1,0,17944416-85a5-49e4-9fa8-652c671c3df0,17944416-85a5-49e4-9fa8-652c671c3df0,1,0,b7936cda-654e-4707-af76-385a63243cdf,b7936cda-654e-4707-af76-385a63243cdf,1,0,192844c3-7cb9-4477-a4af-0edb8ce5129d,192844c3-7cb9-4477-a4af-0edb8ce5129d,1,0,33324481-55d1-475f-9f12-7542a05429a2,33324481-55d1-475f-9f12-7542a05429a2,1,0,07b7591f-dcfc-483f-85f6-b5a08d952fe2,07b7591f-dcfc-483f-85f6-b5a08d952fe2,1,0,866c418f-332e-415a-bb8e-794d38f15080,866c418f-332e-415a-bb8e-794d38f15080,1,0,a34b8fdc-e756-4065-b68a-12a07fa7c40e,a34b8fdc-e756-4065-b68a-12a07fa7c40e,1,0,b853debb-d715-4296-9070-45cc5dae571d,b853debb-d715-4296-9070-45cc5dae571d,1,0,fc406b50-f267-44b8-a833-ba7e8880903e,fc406b50-f267-44b8-a833-ba7e8880903e,1,0,6517bf8b-d2fd-4b6b-a4a5-b3086ebad8de,6517bf8b-d2fd-4b6b-a4a5-b3086ebad8de,1,0,391a1891-85a2-45b8-a747-3ecd705fc75b,391a1891-85a2-45b8-a747-3ecd705fc75b,1,0,05681509-254d-4232-af69-62a63ed05716,05681509-254d-4232-af69-62a63ed05716,1,0,cc815221-3d2a-4ea3-b1e6-6cb9fb410bd9,cc815221-3d2a-4ea3-b1e6-6cb9fb410bd9,1,0,b9ef62f6-9b1d-4d13-8016-73ed531d195a,b9ef62f6-9b1d-4d13-8016-73ed531d195a,1,0,742ed6d8-0f8d-4569-b30f-9ff3804cc3b7,742ed6d8-0f8d-4569-b30f-9ff3804cc3b7,1,0,229fe764-87f5-4d19-b042-c31fef5cddd6,229fe764-87f5-4d19-b042-c31fef5cddd6,1,0,74cd7504-d34f-42ff-90ff-7abcd54e8b6c,74cd7504-d34f-42ff-90ff-7abcd54e8b6c,1,0,e932800c-fd81-417d-a601-c774b888d66a,e932800c-fd81-417d-a601-c774b888d66a,1,0,a2335b6f-1dbb-4722-979b-8bed83aa8c94,a2335b6f-1dbb-4722-979b-8bed83aa8c94,1,0,211cf921-d880-4f74-b8ee-5312dea28613,211cf921-d880-4f74-b8ee-5312dea28613,1,0,2fd3a396-b8ae-409e-9373-02a039393a80,2fd3a396-b8ae-409e-9373-02a039393a80,1,0,61ae74be-64b2-4bf2-aa63-8fe3dc7ed47d,61ae74be-64b2-4bf2-aa63-8fe3dc7ed47d,1,0,346ef414-b20b-4095-86fe-18ca21c9887f,346ef414-b20b-4095-86fe-18ca21c9887f,1,0,c01ab97b-4964-4f7d-b749-56c0b94feb93,c01ab97b-4964-4f7d-b749-56c0b94feb93,1,0,0cc63813-cf16-4a99-b3bd-18a773091230,0cc63813-cf16-4a99-b3bd-18a773091230,1,0,4fc00971-c980-468a-9690-5cd520d12eb0,4fc00971-c980-468a-9690-5cd520d12eb0,1,0,85972c27-4f39-4982-9307-7877e87ef87b,85972c27-4f39-4982-9307-7877e87ef87b,1,0,96afdffb-7595-4c49-9e86-8296f50bd2f5,96afdffb-7595-4c49-9e86-8296f50bd2f5,1,0,823d5b5e-e9bf-40f0-9dcd-579bb53847bb,823d5b5e-e9bf-40f0-9dcd-579bb53847bb,1,0,e125d3e0-950f-42ee-8904-bd26091afa55,e125d3e0-950f-42ee-8904-bd26091afa55,1,0,2b4797a5-074a-4a01-b99f-1c5590cfde40,2b4797a5-074a-4a01-b99f-1c5590cfde40,1,0,718e53d2-24ec-40fb-9def-825441ada46c,718e53d2-24ec-40fb-9def-825441ada46c,1,0,4c0a7fd6-8f09-41d6-949f-65ce708c1256,4c0a7fd6-8f09-41d6-949f-65ce708c1256,1,0,792abc06-b52a-4691-ba92-96ed73ca702a,792abc06-b52a-4691-ba92-96ed73ca702a,1,0,148dbe44-86d1-4362-b9db-8ff68cd2b34d,148dbe44-86d1-4362-b9db-8ff68cd2b34d,1,0,1fbc893e-3000-4fac-88f5-c82251835d65,1fbc893e-3000-4fac-88f5-c82251835d65,1,0,05852816-63ec-4179-abca-66372bbfb04c,05852816-63ec-4179-abca-66372bbfb04c,1,0,0165f721-b011-4524-bfd5-81e35092f2be,0165f721-b011-4524-bfd5-81e35092f2be,1,0,e74925d4-1979-4600-8560-0932d26450ad,e74925d4-1979-4600-8560-0932d26450ad,1,0,aa108131-151d-4356-8a24-345e4ec74281,aa108131-151d-4356-8a24-345e4ec74281,1,0,284b77a8-d9f4-44c4-a2dc-91c1f8bd5808,284b77a8-d9f4-44c4-a2dc-91c1f8bd5808,1,0,e3251f1a-3c80-4c86-9960-270920bd512f,e3251f1a-3c80-4c86-9960-270920bd512f,1,0,3c3d5474-977b-4df9-88de-042e997bd10d,3c3d5474-977b-4df9-88de-042e997bd10d,1,0,4b88d172-5a44-4011-bb38-e94bf7a9c879,4b88d172-5a44-4011-bb38-e94bf7a9c879,1,0,3bced2d4-e3d7-4489-a26d-f84620b096f4,3bced2d4-e3d7-4489-a26d-f84620b096f4,1,0,e8c048fc-0f39-4778-aaf3-d6bff5acb06a,e8c048fc-0f39-4778-aaf3-d6bff5acb06a,1,0,c7efb89b-f9e5-4b58-b7a0-502cea8cf1d4,c7efb89b-f9e5-4b58-b7a0-502cea8cf1d4,1,0,cd133f15-aa45-4ec9-93c2-2f0f66baf3f3,cd133f15-aa45-4ec9-93c2-2f0f66baf3f3,1,0,18436045-1008-4114-8032-274fea0f4627,18436045-1008-4114-8032-274fea0f4627,1,0,cad93727-cffb-44a6-aaee-be73a078e802,cad93727-cffb-44a6-aaee-be73a078e802,1,0,c034f410-ff8e-45d7-925f-94448f88a7af,c034f410-ff8e-45d7-925f-94448f88a7af,1,0,0027727b-3917-4010-9953-1649266e8ed7,0027727b-3917-4010-9953-1649266e8ed7,1,0,b088786a-046f-458c-8e7a-5bebf8df8b34,b088786a-046f-458c-8e7a-5bebf8df8b34,1,0,6d015113-1e32-4f5e-aacd-8134d7307125,6d015113-1e32-4f5e-aacd-8134d7307125,1,0,58230238-d2f2-422e-90cb-de355996eb19,58230238-d2f2-422e-90cb-de355996eb19,1,0,3d907678-628d-4fb2-85c2-149839024c08,3d907678-628d-4fb2-85c2-149839024c08,1,0,71384d10-6acf-4139-b766-cb8b5796f1a7,71384d10-6acf-4139-b766-cb8b5796f1a7,1,0,a8f149d7-e9bc-4695-b4f4-88434e31aafb,a8f149d7-e9bc-4695-b4f4-88434e31aafb,1,0,10dcbcc6-7793-4da7-a9a5-e4f124209d3e,10dcbcc6-7793-4da7-a9a5-e4f124209d3e,1,0,11ba510f-cb57-43d0-9897-c49e10b67ccd,11ba510f-cb57-43d0-9897-c49e10b67ccd,1,0,9d92af67-c88d-4429-9e85-0b5bf04c4b79,9d92af67-c88d-4429-9e85-0b5bf04c4b79,1,0,b009bc99-ea12-46db-a7f8-cb3e285b20d0,b009bc99-ea12-46db-a7f8-cb3e285b20d0,1,0,43523bbb-c923-4a20-bcb5-50d30cc826ee,43523bbb-c923-4a20-bcb5-50d30cc826ee,1,0,c89d9aad-3364-45df-88b5-b23ae76edbba,c89d9aad-3364-45df-88b5-b23ae76edbba,1,0,9a2f2cd1-4c9f-460b-b3b7-64706a0164ab,9a2f2cd1-4c9f-460b-b3b7-64706a0164ab,1,0,7e4b9dce-e332-4d35-8b5f-d3f88918989d,7e4b9dce-e332-4d35-8b5f-d3f88918989d,1,0,15cd04c9-c12a-44ea-a397-d2adbac99c5b,15cd04c9-c12a-44ea-a397-d2adbac99c5b,1,0,182f92f5-0a8e-4f6a-9f9e-7878fafd0a2a,182f92f5-0a8e-4f6a-9f9e-7878fafd0a2a,1,0,45ca26ef-2a9f-4f24-a81b-2fe10c02ed9f,45ca26ef-2a9f-4f24-a81b-2fe10c02ed9f,1,0,56aa4b2f-5b7e-457d-a59d-837405f17fde,56aa4b2f-5b7e-457d-a59d-837405f17fde,1,0,819e2442-cb5a-4826-8a66-b34a3270e8e0,819e2442-cb5a-4826-8a66-b34a3270e8e0,1,0,49987536-3ab9-4a68-83a2-5dc3cd5d58fb,49987536-3ab9-4a68-83a2-5dc3cd5d58fb,1,0,8e4eec45-6ad3-4ac8-940a-b3130f504685,8e4eec45-6ad3-4ac8-940a-b3130f504685,1,0,ccdfef4b-a022-4bde-9c6c-84129b2bad65,ccdfef4b-a022-4bde-9c6c-84129b2bad65,1,0,965cd747-2231-4396-9584-93525db96fab,965cd747-2231-4396-9584-93525db96fab,1,0,419ea30e-3eaf-4af9-8914-493e93d3a743,419ea30e-3eaf-4af9-8914-493e93d3a743,1,0,f9ff4d55-a9d0-4ce7-8808-88dd17b57cce,f9ff4d55-a9d0-4ce7-8808-88dd17b57cce,1,0,430cf66c-5cfc-4fd4-bbf3-d9df6070e115,430cf66c-5cfc-4fd4-bbf3-d9df6070e115,1,0,95adcac2-bc88-46bc-aae5-d13cfb9a170c,95adcac2-bc88-46bc-aae5-d13cfb9a170c,1,0,d845ca4c-3af2-4322-8565-64f3aee61e3a,d845ca4c-3af2-4322-8565-64f3aee61e3a,1,0,6321fc1e-c1d7-4b49-b730-258857b2d936,6321fc1e-c1d7-4b49-b730-258857b2d936,1,0,f48abfe8-e400-4544-a80a-d1cb0b7d3ea8,f48abfe8-e400-4544-a80a-d1cb0b7d3ea8,1,0,ce40016b-7ca7-4803-81fa-5df0b92dbc54,ce40016b-7ca7-4803-81fa-5df0b92dbc54,1,0,b58b711b-8e9a-44a0-b62d-6b6362177a4b,b58b711b-8e9a-44a0-b62d-6b6362177a4b,1,0,f7c0af11-1b64-4504-a8db-0fd09c2ce20f,f7c0af11-1b64-4504-a8db-0fd09c2ce20f,1,0,b3c7cd75-fb40-4121-a727-d557fe66a5e0,b3c7cd75-fb40-4121-a727-d557fe66a5e0,1,0,38be384a-3abb-4f4d-b8b7-164c2c8d8b28,38be384a-3abb-4f4d-b8b7-164c2c8d8b28,1,0,8c697e44-1a1d-4c4a-b141-5254cfb229a5,8c697e44-1a1d-4c4a-b141-5254cfb229a5,1,0,96fe619a-b819-4f96-9788-e1f4ef57833a,96fe619a-b819-4f96-9788-e1f4ef57833a,1,0,94dff2da-f721-411a-9fc0-5d013b685dcc,94dff2da-f721-411a-9fc0-5d013b685dcc,1,0,9343fc5f-7b08-4be5-8cd5-dbed635b819d,9343fc5f-7b08-4be5-8cd5-dbed635b819d,1,0,99e87e66-1b07-451b-a476-f5213cbd7150,99e87e66-1b07-451b-a476-f5213cbd7150,1,0,c3317f75-f6ad-41f6-97f1-77074c3ff62a,c3317f75-f6ad-41f6-97f1-77074c3ff62a,1,0,8800dec9-84f8-4643-8742-1d76fe575f58,8800dec9-84f8-4643-8742-1d76fe575f58,1,0,62903794-3b41-4d21-b800-1c26dbeda3ce,62903794-3b41-4d21-b800-1c26dbeda3ce,1,0,9bda4a0b-e8a7-4acf-9f07-4033b3a84ebc,9bda4a0b-e8a7-4acf-9f07-4033b3a84ebc,1,0,4ba2e55e-29bc-4fbe-83e8-8bfa36abfdab,4ba2e55e-29bc-4fbe-83e8-8bfa36abfdab,1,0,93de88de-0069-4aa8-96b2-d5709e4def2f,93de88de-0069-4aa8-96b2-d5709e4def2f,1,0,9f94fadf-ac9d-4e57-9fe4-41ce8cfbec6a,9f94fadf-ac9d-4e57-9fe4-41ce8cfbec6a,1,0,12d4ffc8-592e-42a7-b8c6-20bd58f6da90,12d4ffc8-592e-42a7-b8c6-20bd58f6da90,1,0,3a8d9010-8785-4d8d-b908-b821d7d681c9,3a8d9010-8785-4d8d-b908-b821d7d681c9,1,0,2568a935-ea49-4b99-aa9c-de27de6a0e81,2568a935-ea49-4b99-aa9c-de27de6a0e81,1,0,de2bdd4f-93f2-4341-86d6-7082fc286a5c,de2bdd4f-93f2-4341-86d6-7082fc286a5c,1,0,ba96ec0e-931e-45be-a782-e68ba4fedddb,ba96ec0e-931e-45be-a782-e68ba4fedddb,1,0,9af5882f-3a42-4fae-83df-6aa8de577112,9af5882f-3a42-4fae-83df-6aa8de577112,1,0,79bc5e39-3017-48bf-8e42-fa34e8b581ef,79bc5e39-3017-48bf-8e42-fa34e8b581ef,1,0,fe6e207f-d306-4470-8441-ffd3f3710d31,fe6e207f-d306-4470-8441-ffd3f3710d31,1,0,7451af80-7387-4e8d-a3da-2ae0540c3fd4,7451af80-7387-4e8d-a3da-2ae0540c3fd4,1,0,1c1e01f2-b2b3-480d-ae51-2db27b82dedd,1c1e01f2-b2b3-480d-ae51-2db27b82dedd,1,0,df459525-4e4d-4819-b996-5a6379b22a88,df459525-4e4d-4819-b996-5a6379b22a88,1,0,ed1d69f4-b09f-430a-bb2e-a23fe4dedf6b,ed1d69f4-b09f-430a-bb2e-a23fe4dedf6b,1,0,e67b4a32-4bac-450e-be6d-88c262383f31,e67b4a32-4bac-450e-be6d-88c262383f31,1,0,28bb77d5-cc8e-4f91-830e-d5052224ed97,28bb77d5-cc8e-4f91-830e-d5052224ed97,1,0,874868a1-e4a3-4c78-8db4-5b103c9cc541,874868a1-e4a3-4c78-8db4-5b103c9cc541,1,0,d397d41e-6113-4f4e-99de-5d445649a4c3,d397d41e-6113-4f4e-99de-5d445649a4c3,1,0,2125956a-c910-4467-96f7-846441d17b02,2125956a-c910-4467-96f7-846441d17b02,1,0,3d0c7eb6-6d5e-46b4-b4c3-140a5b5ce6cf,3d0c7eb6-6d5e-46b4-b4c3-140a5b5ce6cf,1,0,da9028f5-04bb-4782-bd3a-0d17f4e1534e,da9028f5-04bb-4782-bd3a-0d17f4e1534e,1,0,45a74cbe-e001-4a6e-b0bf-b1e8947fb409,45a74cbe-e001-4a6e-b0bf-b1e8947fb409,1,0,8b83bb54-4c23-4bd8-bd00-374a7a101cfa,8b83bb54-4c23-4bd8-bd00-374a7a101cfa,1,0,6c4c3eca-8b02-451b-af52-93073c3da146,6c4c3eca-8b02-451b-af52-93073c3da146,1,0,095c281c-3903-465d-baea-af1e6abf8019,095c281c-3903-465d-baea-af1e6abf8019,1,0,440d115d-a769-427e-891a-88d65fba2057,440d115d-a769-427e-891a-88d65fba2057,1,0,f7932210-027e-4fad-b7f7-3530789ce803,f7932210-027e-4fad-b7f7-3530789ce803,1,0,7bbfd95e-39a1-485b-930f-c9210c18dcd0,7bbfd95e-39a1-485b-930f-c9210c18dcd0,1,0,4975d3d6-b5a2-41c6-973b-6817013a388d,4975d3d6-b5a2-41c6-973b-6817013a388d,1,0,18ebc799-9724-4ffb-855e-b09a0723869e,18ebc799-9724-4ffb-855e-b09a0723869e,1,0,a06b8ef5-83e6-4fc6-91e1-256004134d69,a06b8ef5-83e6-4fc6-91e1-256004134d69,1,0,1d6a68ec-917f-4c3b-b970-797a6921cbc9,1d6a68ec-917f-4c3b-b970-797a6921cbc9,1,0,ae29eb40-5c8f-4ab4-8556-f98d45e8effe,ae29eb40-5c8f-4ab4-8556-f98d45e8effe,1,0,5b663988-3599-46dc-8d59-4c82ceac537c,5b663988-3599-46dc-8d59-4c82ceac537c,1,0,0f5f136c-688b-491e-a72b-3d9c2e609f0e,0f5f136c-688b-491e-a72b-3d9c2e609f0e,1,0,5573b405-6ac4-4632-b8d6-5d1cbdb63b97,5573b405-6ac4-4632-b8d6-5d1cbdb63b97,1,0,679cc0df-df5c-4c33-8c64-c0b6cee39116,679cc0df-df5c-4c33-8c64-c0b6cee39116,1,0,b156752b-f25c-4f35-9474-8ac3636597f5,b156752b-f25c-4f35-9474-8ac3636597f5,1,0,bdc51d67-5fc2-4d28-8875-69e33e625be6,bdc51d67-5fc2-4d28-8875-69e33e625be6,1,0,94ca9aa0-f61f-496b-8fef-9e6fb7bd8f87,94ca9aa0-f61f-496b-8fef-9e6fb7bd8f87,1,0,b494ca7b-6548-4fa2-932c-acdf8c62a78a,b494ca7b-6548-4fa2-932c-acdf8c62a78a,1,0,2d279292-f9d6-4d5a-aaeb-f82f6485ac54,2d279292-f9d6-4d5a-aaeb-f82f6485ac54,1,0,f335aa38-4e9e-4653-9a76-b6d4ae178c93,f335aa38-4e9e-4653-9a76-b6d4ae178c93,1,0,a62894bc-fab4-4ed4-a57d-cbe725527198,a62894bc-fab4-4ed4-a57d-cbe725527198,1,0,d4e567c7-55f1-4564-b066-f5b2355ad82c,d4e567c7-55f1-4564-b066-f5b2355ad82c,1,0,57d1bde3-eaa7-476b-aecb-f78e0e97c765,57d1bde3-eaa7-476b-aecb-f78e0e97c765,1,0,89cf2cd8-dc43-4742-af5a-5975e9546786,89cf2cd8-dc43-4742-af5a-5975e9546786,1,0,089ae618-cd90-482a-b4a2-45a04aaecc0c,089ae618-cd90-482a-b4a2-45a04aaecc0c,1,0,d1beef4e-9c78-49f5-9e52-1568fadf861d,d1beef4e-9c78-49f5-9e52-1568fadf861d,1,0,e6032a40-6195-4889-99f5-f7f4c74d4e8f,e6032a40-6195-4889-99f5-f7f4c74d4e8f,1,0,f9f12c11-04e8-4999-b1ab-ddea896638a2,f9f12c11-04e8-4999-b1ab-ddea896638a2,1,0,47ae26c4-1c47-4d9d-a0b8-a9899d08a4ce,47ae26c4-1c47-4d9d-a0b8-a9899d08a4ce,1,0,83245a76-8502-47a4-98ae-2ffadb78a029,83245a76-8502-47a4-98ae-2ffadb78a029,1,0,c9d5a41d-a2d9-4ec6-9a51-e4d254df1927,c9d5a41d-a2d9-4ec6-9a51-e4d254df1927,1,0,22d7df25-5885-4ad6-bb29-28257256da22,22d7df25-5885-4ad6-bb29-28257256da22,1,0,3bb85423-6ce7-416f-884a-89c75deed890,3bb85423-6ce7-416f-884a-89c75deed890,1,0,132c8921-189a-4c00-a8a4-417728520203,132c8921-189a-4c00-a8a4-417728520203,1,0,18535b06-82f0-4179-af3c-975a5ba85872,18535b06-82f0-4179-af3c-975a5ba85872,1,0,1d0981b4-cf7c-4094-a597-d709a8573d71,1d0981b4-cf7c-4094-a597-d709a8573d71,1,0,b5bb5376-27a6-43f2-9e91-bf7c913b89fd,b5bb5376-27a6-43f2-9e91-bf7c913b89fd,1,0,24861cd2-2be0-4454-8154-2201e63be266,24861cd2-2be0-4454-8154-2201e63be266,1,0,2e364599-aad9-4d1d-a4df-6cbd3ed768e7,2e364599-aad9-4d1d-a4df-6cbd3ed768e7,1,0,c14cac09-820e-47ae-81bb-eb497950d40c,c14cac09-820e-47ae-81bb-eb497950d40c,1,0,201cd431-6027-466c-abec-09ff65f42244,201cd431-6027-466c-abec-09ff65f42244,1,0,1018c5d8-8aed-49ba-a27c-a44bddd96144,1018c5d8-8aed-49ba-a27c-a44bddd96144,1,0,a81e5d20-9c42-462d-83a3-f86522c473f5,a81e5d20-9c42-462d-83a3-f86522c473f5,1,0,1ce4440e-3709-4cb1-8505-2379d5146be3,1ce4440e-3709-4cb1-8505-2379d5146be3,1,0,a26d8489-88a8-438e-bb58-c7b5a742a243,a26d8489-88a8-438e-bb58-c7b5a742a243,1,0,67dc31fa-cc64-4d29-96aa-65a7fd480790,67dc31fa-cc64-4d29-96aa-65a7fd480790,1,0,17f0e86d-8661-492c-85fa-2ce3cd1a57d5,17f0e86d-8661-492c-85fa-2ce3cd1a57d5,1,0,9728fd22-163c-443d-a89f-79d15c51c086,9728fd22-163c-443d-a89f-79d15c51c086,1,0,7030a503-e97c-4cb8-b6cd-79dbd08fd2cc,7030a503-e97c-4cb8-b6cd-79dbd08fd2cc,1,0,0a7c25db-dba6-44d3-b994-d672c4f33f1f,0a7c25db-dba6-44d3-b994-d672c4f33f1f,1,0,618b565c-f80f-4e58-94f1-227d4bdc8fe7,618b565c-f80f-4e58-94f1-227d4bdc8fe7,1,0,e36ed6bf-7bb2-419f-b3d4-fe6f7e75188d,e36ed6bf-7bb2-419f-b3d4-fe6f7e75188d,1,0,018bd653-a526-4e2c-8483-1192ae997458,018bd653-a526-4e2c-8483-1192ae997458,1,0,788a38ca-6ef8-4a05-a0c7-032766b135d9,788a38ca-6ef8-4a05-a0c7-032766b135d9,1,0,82e0e020-d6a7-45ae-bdbd-d29aacff313a,82e0e020-d6a7-45ae-bdbd-d29aacff313a,1,0,31ac5bc1-3642-456b-aaed-d604669556f6,31ac5bc1-3642-456b-aaed-d604669556f6,1,0,3157f1b3-5d78-4fe4-89bf-afca0026a8d5,3157f1b3-5d78-4fe4-89bf-afca0026a8d5,1,0,317e6068-5c8e-4455-932c-f5ae09e398c3,317e6068-5c8e-4455-932c-f5ae09e398c3,1,0,8424768a-3673-4e7c-840f-836515f85ba9,8424768a-3673-4e7c-840f-836515f85ba9,1,0,37ba6039-9162-4c7e-9975-de3aec39664f,37ba6039-9162-4c7e-9975-de3aec39664f,1,0,1ed0209f-4e11-452b-8520-66bf02186f1a,1ed0209f-4e11-452b-8520-66bf02186f1a,1,0,d1e25f7f-f2c5-48bf-a7f4-4cd40d992e53,d1e25f7f-f2c5-48bf-a7f4-4cd40d992e53,1,0,4d7f4a37-8426-4f06-9b64-cae252cb8e9e,4d7f4a37-8426-4f06-9b64-cae252cb8e9e,1,0,ae5b5521-a525-402d-99b0-e83a7b2caaa4,ae5b5521-a525-402d-99b0-e83a7b2caaa4,1,0,3858dbf0-cb6b-4c67-9dd9-eb900c3688f4,3858dbf0-cb6b-4c67-9dd9-eb900c3688f4,1,0,a04a50db-cb4a-496e-8c25-5591d863a7d5,a04a50db-cb4a-496e-8c25-5591d863a7d5,1,0,17aadd5f-cda2-4785-a07f-3ab4b04434a6,17aadd5f-cda2-4785-a07f-3ab4b04434a6,1,0,71bc35e6-0fec-4e54-af2d-23d1357d1c3b,71bc35e6-0fec-4e54-af2d-23d1357d1c3b,1,0,1832336e-32f6-42c4-9087-8614ead52bb3,1832336e-32f6-42c4-9087-8614ead52bb3,1,0,ff9f7b5c-70f4-4eed-8216-64448e7da76f,ff9f7b5c-70f4-4eed-8216-64448e7da76f,1,0,44ac2869-990d-4cac-a14b-c1a28854341e,44ac2869-990d-4cac-a14b-c1a28854341e,1,0,d5df31c3-89f9-469c-80a9-fb4706d30bc4,d5df31c3-89f9-469c-80a9-fb4706d30bc4,1,0,7e4f56cf-cd89-4cd0-b566-20c42ac5f99e,7e4f56cf-cd89-4cd0-b566-20c42ac5f99e,1,0,815035c6-14be-45f1-ab58-a3ac51848db5,815035c6-14be-45f1-ab58-a3ac51848db5,1,0,db0abb94-e1cd-41f2-becd-4630ad7bbe22,db0abb94-e1cd-41f2-becd-4630ad7bbe22,1,0,5dc728d2-eb61-4524-b4e3-5ac8aeabab29,5dc728d2-eb61-4524-b4e3-5ac8aeabab29,1,0,9823a704-8602-430e-b1f3-0893b2285401,9823a704-8602-430e-b1f3-0893b2285401,1,0,b39b8193-1d46-46b6-844e-112f9fcd7f9b,b39b8193-1d46-46b6-844e-112f9fcd7f9b,1,0,ed216057-b1ce-489c-a120-581043f6d438,ed216057-b1ce-489c-a120-581043f6d438,1,0,65ad33ce-edab-4f8b-8f44-1a5634d87191,65ad33ce-edab-4f8b-8f44-1a5634d87191,1,0,bcd727b5-4678-41e9-85d5-98d4157cdd77,bcd727b5-4678-41e9-85d5-98d4157cdd77,1,0,38c6dd83-2a70-4c4a-9f29-3b2b54a15501,38c6dd83-2a70-4c4a-9f29-3b2b54a15501,1,0,f403fcb3-a4f8-479d-9fa1-85d458b9a4b5,f403fcb3-a4f8-479d-9fa1-85d458b9a4b5,1,0,c56d3cfe-6ae1-4fe3-abdc-2d845049ddde,c56d3cfe-6ae1-4fe3-abdc-2d845049ddde,1,0,66f1dc54-f28c-4fb7-a6c9-f839d656e87c,66f1dc54-f28c-4fb7-a6c9-f839d656e87c,1,0,b8e3d08d-d442-4ffa-83d8-f372a7d2d340,b8e3d08d-d442-4ffa-83d8-f372a7d2d340,1,0,ebba727b-8155-4dd8-8ea0-207ca396566b,ebba727b-8155-4dd8-8ea0-207ca396566b,1,0,e4166141-f18f-4d27-beb5-9e30fe30f842,e4166141-f18f-4d27-beb5-9e30fe30f842,1,0,b62434ac-ef9f-4fe7-8279-357e0dd760ac,b62434ac-ef9f-4fe7-8279-357e0dd760ac,1,0,eb1c7d02-f5fc-4b37-9b32-7dd828958d76,eb1c7d02-f5fc-4b37-9b32-7dd828958d76,1,0,db2f20a7-e01f-4c03-9343-a815e1b46b50,db2f20a7-e01f-4c03-9343-a815e1b46b50,1,0,cf122ec9-d781-434c-9742-300e701317d6,cf122ec9-d781-434c-9742-300e701317d6,1,0,2aa2a968-2cac-4883-9bc8-5a3ccbd2e7a9,2aa2a968-2cac-4883-9bc8-5a3ccbd2e7a9,1,0,7d1361af-c5d3-4312-ab5e-ba00bf3418f2,7d1361af-c5d3-4312-ab5e-ba00bf3418f2,1,0,d7fdb3d5-3c18-4d9c-938a-2fbe8a96e877,d7fdb3d5-3c18-4d9c-938a-2fbe8a96e877,1,0,b8658e11-42b6-41bb-b384-5380e2228338,b8658e11-42b6-41bb-b384-5380e2228338,1,0,40c0919f-2c53-4502-af06-745dfa47fd8e,40c0919f-2c53-4502-af06-745dfa47fd8e,1,0,b01e4e7f-1b01-4c19-ab4b-7a8c1f6b0d22,b01e4e7f-1b01-4c19-ab4b-7a8c1f6b0d22,1,0,662a2803-da19-40c7-a906-e20d0843f67f,662a2803-da19-40c7-a906-e20d0843f67f,1,0,327c0731-1496-4463-837f-8f9c3e4c1a49,327c0731-1496-4463-837f-8f9c3e4c1a49,1,0,d74a37c2-7f50-40da-b7f8-29f79ae7230c,d74a37c2-7f50-40da-b7f8-29f79ae7230c,1,0,37a677e7-6661-41b5-ba68-740361168ccf,37a677e7-6661-41b5-ba68-740361168ccf,1,0,2a41d20d-d57a-4ce8-832f-c1b83099e563,2a41d20d-d57a-4ce8-832f-c1b83099e563,1,0,a0701ad3-572a-4806-91c0-6c5fff8dd350,a0701ad3-572a-4806-91c0-6c5fff8dd350,1,0,c9f268d1-6d2a-47d5-9371-f951b95d24a6,c9f268d1-6d2a-47d5-9371-f951b95d24a6,1,0,86b155be-d611-46b4-8275-bb19a2fa20ba,86b155be-d611-46b4-8275-bb19a2fa20ba,1,0,fedb2d36-bb2e-49dd-9d52-afcc41f3636b,fedb2d36-bb2e-49dd-9d52-afcc41f3636b,1,0,5d74d2d1-a2af-4a52-a884-a60e6b07ffac,5d74d2d1-a2af-4a52-a884-a60e6b07ffac,1,0,69e67507-e063-4221-9b84-2ee9d8903c1a,69e67507-e063-4221-9b84-2ee9d8903c1a,1,0,a649cb56-2a53-4508-8bf4-9aa01373ede2,a649cb56-2a53-4508-8bf4-9aa01373ede2,1,0,7e572d75-3a89-43c0-ad68-18498d67f8ca,7e572d75-3a89-43c0-ad68-18498d67f8ca,1,0,3c159a42-d9f9-4de4-a86f-893b1fc65b46,3c159a42-d9f9-4de4-a86f-893b1fc65b46,1,0,545cd0e7-4125-48f1-9123-0bc39e436e5e,545cd0e7-4125-48f1-9123-0bc39e436e5e,1,0,9a17eec6-b517-4133-8d25-bb953d84461f,9a17eec6-b517-4133-8d25-bb953d84461f,1,0,a0a61d7f-879d-4e92-98a3-5291c834c341,a0a61d7f-879d-4e92-98a3-5291c834c341,1,0,7bf60016-2edc-443b-98b4-0864b548c482,7bf60016-2edc-443b-98b4-0864b548c482,1,0,74139209-f345-4fd9-9ade-15cc4d399836,74139209-f345-4fd9-9ade-15cc4d399836,1,0,e39de1c5-b43b-4f71-aa32-c03b8afd6f65,e39de1c5-b43b-4f71-aa32-c03b8afd6f65,1,0,d5b6aad4-b1bd-464b-aca0-f8455d6388b4,d5b6aad4-b1bd-464b-aca0-f8455d6388b4,1,0,033ab408-fa51-4af2-a82c-f3167de00681,033ab408-fa51-4af2-a82c-f3167de00681,1,0,f7267120-f367-4d47-be5e-e2aa7a2ada46,f7267120-f367-4d47-be5e-e2aa7a2ada46,1,0,911b4ba4-1902-4c69-a4c9-963ab93d35b0,911b4ba4-1902-4c69-a4c9-963ab93d35b0,1,0,70cf60eb-a5f8-4573-a28b-6844721459de,70cf60eb-a5f8-4573-a28b-6844721459de,1,0,e2666bd9-bf44-408b-98fa-b9be26bde33f,e2666bd9-bf44-408b-98fa-b9be26bde33f,1,0,9151fa13-6612-4c4c-a264-3fd669205de7,9151fa13-6612-4c4c-a264-3fd669205de7,1,0,fee8fd9d-be7d-4560-9b96-819ffd497c88,fee8fd9d-be7d-4560-9b96-819ffd497c88,1,0,c86135b4-063c-4ca8-99e2-35c61026b43f,c86135b4-063c-4ca8-99e2-35c61026b43f,1,0,186792a9-0a07-4b6d-a9a0-337221f6b009,186792a9-0a07-4b6d-a9a0-337221f6b009,1,0,49163bf6-4a6a-4da9-a0ed-257c22224b47,49163bf6-4a6a-4da9-a0ed-257c22224b47,1,0,74c71abe-90eb-4c05-a4a6-375a93e7b99c,74c71abe-90eb-4c05-a4a6-375a93e7b99c,1,0,d36efd98-34a7-41b4-99b6-34c09e71525a,d36efd98-34a7-41b4-99b6-34c09e71525a,1,0,e73a6a9d-8ddd-4531-9f17-745117d9da9b,e73a6a9d-8ddd-4531-9f17-745117d9da9b,1,0,9dd4e17c-d10b-435e-8665-08997edc3e7e,9dd4e17c-d10b-435e-8665-08997edc3e7e,1,0,cafd44e1-8509-4550-8329-ff8cab0c31ae,cafd44e1-8509-4550-8329-ff8cab0c31ae,1,0,ee0412d3-58e7-4715-8774-d49778e1ef73,ee0412d3-58e7-4715-8774-d49778e1ef73,1,0,ea31df21-1402-417a-9788-b17a7116e842,ea31df21-1402-417a-9788-b17a7116e842,1,0,7a93efb9-62bb-437a-8095-b26a2c8ce8ed,7a93efb9-62bb-437a-8095-b26a2c8ce8ed,1,0,e964753f-7f4c-4f9f-bd17-cdac317c1d35,e964753f-7f4c-4f9f-bd17-cdac317c1d35,1,0,20c2aba0-e2b2-4e4f-9d48-1515c0ae7b4d,20c2aba0-e2b2-4e4f-9d48-1515c0ae7b4d,1,0,43c22498-3fd6-4038-a291-05f0db9ab66a,43c22498-3fd6-4038-a291-05f0db9ab66a,1,0,4ffc9d16-c450-4ecb-b8f6-9ec6fe37fc75,4ffc9d16-c450-4ecb-b8f6-9ec6fe37fc75,1,0,ee6e5e56-5848-46b6-89bf-b9345a57d94c,ee6e5e56-5848-46b6-89bf-b9345a57d94c,1,0,8817c872-bdee-4577-bcc3-4046edc72803,8817c872-bdee-4577-bcc3-4046edc72803,1,0,5b88c214-4e4e-45c2-b8c5-14eb852e9900,5b88c214-4e4e-45c2-b8c5-14eb852e9900,1,0,851118bb-7e22-4c3c-a050-51b89216df86,851118bb-7e22-4c3c-a050-51b89216df86,1,0,4575003b-10c6-4d8e-bc5e-c643f38b24d9,4575003b-10c6-4d8e-bc5e-c643f38b24d9,1,0,b3fd4c7b-b7ae-40b9-bbe0-42fae0bc6bf5,b3fd4c7b-b7ae-40b9-bbe0-42fae0bc6bf5,1,0,e68e3408-ae45-4d3f-8cbf-e1f517cd4dec,e68e3408-ae45-4d3f-8cbf-e1f517cd4dec,1,0,6252386c-865f-41cc-aef4-1d8bf7087798,6252386c-865f-41cc-aef4-1d8bf7087798,1,0,9d256a1d-5a06-4716-9d83-c5877a5ffc14,9d256a1d-5a06-4716-9d83-c5877a5ffc14,1,0,63623218-8035-4ad9-b4db-a1f917c5641a,63623218-8035-4ad9-b4db-a1f917c5641a,1,0,d58babbe-6f59-4027-86db-54343d11e1c8,d58babbe-6f59-4027-86db-54343d11e1c8,1,0,a4cc0476-99a7-4b61-a382-2a6bb8d2043e,a4cc0476-99a7-4b61-a382-2a6bb8d2043e,1,0,8dbca9a8-97c0-4c95-b0a6-1c3f54e6fbab,8dbca9a8-97c0-4c95-b0a6-1c3f54e6fbab,1,0,4d23fa01-b9ef-419c-8806-e0b0fad14be0,4d23fa01-b9ef-419c-8806-e0b0fad14be0,1,0,3eb4e1a4-8653-410f-ae73-b25c03348880,3eb4e1a4-8653-410f-ae73-b25c03348880,1,0,105cd740-1f60-45e1-871c-adeecd291b0d,105cd740-1f60-45e1-871c-adeecd291b0d,1,0,95aec7d2-179b-4ea3-a3df-3d737b713564,95aec7d2-179b-4ea3-a3df-3d737b713564,1,0,4bd1cae4-d5b5-444e-9cf5-67a969714293,4bd1cae4-d5b5-444e-9cf5-67a969714293,1,0,b1a330d7-9b88-44e9-aba6-41ce5e5e669c,b1a330d7-9b88-44e9-aba6-41ce5e5e669c,1,0,f279a625-b88f-43b4-bce9-de1186fe7d7e,f279a625-b88f-43b4-bce9-de1186fe7d7e,1,0,a2f19cb2-9f2e-442b-b9f2-e5253c70871c,a2f19cb2-9f2e-442b-b9f2-e5253c70871c,1,0,0c67453e-038b-46f3-8c13-2786e8622ad8,0c67453e-038b-46f3-8c13-2786e8622ad8,1,0,8ff1dc4d-b46c-4519-80fe-19448e620e74,8ff1dc4d-b46c-4519-80fe-19448e620e74,1,0,7cd5ca8c-cc97-4664-964e-152fdcb5bdef,7cd5ca8c-cc97-4664-964e-152fdcb5bdef,1,0,be0a5f9a-ffab-41d8-b55a-a61355f5d269,be0a5f9a-ffab-41d8-b55a-a61355f5d269,1,0,9286105d-9aa9-44f9-ae63-bbbcec64eade,9286105d-9aa9-44f9-ae63-bbbcec64eade,1,0,99fc224a-2a61-441a-85e9-d69df6aa8b5e,99fc224a-2a61-441a-85e9-d69df6aa8b5e,1,0,a528c26f-3ceb-4ae4-8420-edfbdea6e1ac,a528c26f-3ceb-4ae4-8420-edfbdea6e1ac,1,0,d009782b-d73e-42d1-9979-2cbaf20ee98e,d009782b-d73e-42d1-9979-2cbaf20ee98e,1,0,1ef6282c-ae81-4d76-8e3e-99fec58fc7bd,1ef6282c-ae81-4d76-8e3e-99fec58fc7bd,1,0,88d8edf7-654f-4627-b68d-c7e929726da6,88d8edf7-654f-4627-b68d-c7e929726da6,1,0,483720db-6c9e-4179-b5c7-56159c9b6073,483720db-6c9e-4179-b5c7-56159c9b6073,1,0,e603a2c2-5acc-4657-9a0e-d98ab57a67ef,e603a2c2-5acc-4657-9a0e-d98ab57a67ef,1,0,ce165482-5e10-4ced-8d5c-1a3af8ba778a,ce165482-5e10-4ced-8d5c-1a3af8ba778a,1,0,222fdf9c-7bfe-4f81-ae59-3c6309754d43,222fdf9c-7bfe-4f81-ae59-3c6309754d43,1,0,eaaf0aee-07d6-4c49-bc84-5c86e71bb51e,eaaf0aee-07d6-4c49-bc84-5c86e71bb51e,1,0,0cee4741-eadb-4dfa-8993-fcb514acd2cd,0cee4741-eadb-4dfa-8993-fcb514acd2cd,1,0,c496cc40-f9cb-4334-80a1-d4ff98d58798,c496cc40-f9cb-4334-80a1-d4ff98d58798,1,0,a4d1aa8f-d4e9-48df-a194-4d05f21084c8,a4d1aa8f-d4e9-48df-a194-4d05f21084c8,1,0,22855103-c30a-4da1-aa25-6295e3f1f145,22855103-c30a-4da1-aa25-6295e3f1f145,1,0,80a7a699-6633-4109-a78d-d86f50d9f922,80a7a699-6633-4109-a78d-d86f50d9f922,1,0,7e26e712-cd36-4773-abae-21fe999a197f,7e26e712-cd36-4773-abae-21fe999a197f,1,0,bd676e43-b35a-41e0-83a9-8a9da8778f8e,bd676e43-b35a-41e0-83a9-8a9da8778f8e,1,0,44984353-2eae-40e4-86cc-1295812d9e12,44984353-2eae-40e4-86cc-1295812d9e12,1,0,ba64a0ae-5ae4-4e68-9088-dd3dff34e503,ba64a0ae-5ae4-4e68-9088-dd3dff34e503,1,0,56ce3bfc-2d87-4826-b6db-b63b5d415f48,56ce3bfc-2d87-4826-b6db-b63b5d415f48,1,0,51c76e26-1a34-4f2f-8887-88c8fcc0eb6d,51c76e26-1a34-4f2f-8887-88c8fcc0eb6d,1,0,67e291ab-0805-4add-8344-5a2bfc39b555,67e291ab-0805-4add-8344-5a2bfc39b555,1,0,ee5e9079-9586-47e8-84c1-bcb78a17e82e,ee5e9079-9586-47e8-84c1-bcb78a17e82e,1,0,4d49e173-27c1-42da-8597-bcf06946800d,4d49e173-27c1-42da-8597-bcf06946800d,1,0,3cbe38b2-4443-414e-8e6d-174bd2e6a925,3cbe38b2-4443-414e-8e6d-174bd2e6a925,1,0,796a2fcd-caa8-431c-8d22-320479ecc5fd,796a2fcd-caa8-431c-8d22-320479ecc5fd,1,0,2e882442-45ce-41af-a76b-b00a74021cba,2e882442-45ce-41af-a76b-b00a74021cba,1,0,457b37a9-d6dd-40bb-9eea-06a5dfbaf777,457b37a9-d6dd-40bb-9eea-06a5dfbaf777,1,0,d4beb157-c999-46c2-ac4b-5ec6846a717d,d4beb157-c999-46c2-ac4b-5ec6846a717d,1,0,9eed26c8-8874-4814-b232-44a8f594fabe,9eed26c8-8874-4814-b232-44a8f594fabe,1,0,487ec60f-c31c-4c74-ba24-efcfc3908320,487ec60f-c31c-4c74-ba24-efcfc3908320,1,0,5af3a256-2bdb-4d87-a2e6-348f072f099d,5af3a256-2bdb-4d87-a2e6-348f072f099d,1,0,c232ad3b-79ea-45fa-85f1-6229474b967c,c232ad3b-79ea-45fa-85f1-6229474b967c,1,0,4d596b46-4654-46b8-a015-cecfc86780fc,4d596b46-4654-46b8-a015-cecfc86780fc,1,0,c94decc9-4fb7-4f47-a7e6-ab8944798a24,c94decc9-4fb7-4f47-a7e6-ab8944798a24,1,0,0ec45124-506d-4a1f-b6e3-1620f34fa817,0ec45124-506d-4a1f-b6e3-1620f34fa817,1,0,36f99889-4bc1-40cd-904a-a463c44f7b0b,36f99889-4bc1-40cd-904a-a463c44f7b0b,1,0,88fafb0d-d624-4b91-8c68-c354817ccddb,88fafb0d-d624-4b91-8c68-c354817ccddb,1,0,f4a3e032-61fb-4004-bd4d-6eaffb53437b,f4a3e032-61fb-4004-bd4d-6eaffb53437b,1,0,9126b840-ddcc-4054-aa16-4156288a379e,9126b840-ddcc-4054-aa16-4156288a379e,1,0,a6facfdb-7529-479c-9bb3-e63316b032f4,a6facfdb-7529-479c-9bb3-e63316b032f4,1,0,1725c619-9c4a-40ac-9044-00fee71945a4,1725c619-9c4a-40ac-9044-00fee71945a4,1,0,45a85e25-7c33-4ff5-87a0-2a0b4cda8130,45a85e25-7c33-4ff5-87a0-2a0b4cda8130,1,0,e95b126d-797d-4071-b7b4-b14aaf595f2d,e95b126d-797d-4071-b7b4-b14aaf595f2d,1,0,9241ea3c-633f-4469-9e70-c5a20e464da8,9241ea3c-633f-4469-9e70-c5a20e464da8,1,0,bbadbe1b-cb33-4cc5-84c8-a4fdfc8a2247,bbadbe1b-cb33-4cc5-84c8-a4fdfc8a2247,1,0,961ae0fb-7f7b-414d-8fbf-32b893b41085,961ae0fb-7f7b-414d-8fbf-32b893b41085,1,0,10adf8c8-6f5f-477f-b244-4452b774b766,10adf8c8-6f5f-477f-b244-4452b774b766,1,0,ac9dcb8c-d4f5-4f0d-affb-e4187eafdf14,ac9dcb8c-d4f5-4f0d-affb-e4187eafdf14,1,0,04ec5e44-8469-4e9c-8021-83d258f2ec54,04ec5e44-8469-4e9c-8021-83d258f2ec54,1,0,cff36ede-0bd1-424b-8c75-b9695133f32e,cff36ede-0bd1-424b-8c75-b9695133f32e,1,0,9d872d99-eac7-43ee-8ce2-c9d31a76bd75,9d872d99-eac7-43ee-8ce2-c9d31a76bd75,1,0,77e5bd01-35f3-4072-bc7a-8730e6dcbab3,77e5bd01-35f3-4072-bc7a-8730e6dcbab3,1,0,58b33683-1916-4aef-9b98-5569ef7782ed,58b33683-1916-4aef-9b98-5569ef7782ed,1,0,d3e1f622-f438-4cad-94ae-0272f51610f7,d3e1f622-f438-4cad-94ae-0272f51610f7,1,0,8569cd73-d40d-4d92-83e0-8ece0c03a86a,8569cd73-d40d-4d92-83e0-8ece0c03a86a,1,0,9ebe2809-be6b-4c91-9443-b237fb7ad43c,9ebe2809-be6b-4c91-9443-b237fb7ad43c,1,0,bf29c091-de15-4cd4-be0e-a9785f97d444,bf29c091-de15-4cd4-be0e-a9785f97d444,1,0,060b2bb4-ca03-4da9-930f-7f91f6299a35,060b2bb4-ca03-4da9-930f-7f91f6299a35,1,0,394b1a1c-a7ae-41b7-a346-4bac99fa567d,394b1a1c-a7ae-41b7-a346-4bac99fa567d,1,0,9a5fa511-59e8-4a1b-a101-f276f0b7b261,9a5fa511-59e8-4a1b-a101-f276f0b7b261,1,0,ccfe4e36-80b6-419f-8bb3-c1046203d023,ccfe4e36-80b6-419f-8bb3-c1046203d023,1,0,94b2e060-53b7-4b40-af05-30bea3520330,94b2e060-53b7-4b40-af05-30bea3520330,1,0,0f634f7e-7d6b-43e4-8e5e-a31ed05898ea,0f634f7e-7d6b-43e4-8e5e-a31ed05898ea,1,0,41b0dabd-85a3-4819-84dd-371eaf4f996e,41b0dabd-85a3-4819-84dd-371eaf4f996e,1,0,86a5ba4d-0681-4ddc-a505-0f537528e1a3,86a5ba4d-0681-4ddc-a505-0f537528e1a3,1,0,12d936f5-932b-4561-b934-c8444808a450,12d936f5-932b-4561-b934-c8444808a450,1,0,2ccb06ca-9bb7-4b74-9a96-c109bb117984,2ccb06ca-9bb7-4b74-9a96-c109bb117984,1,0,ac1a661d-db18-4576-80a9-a19d4140c05e,ac1a661d-db18-4576-80a9-a19d4140c05e,1,0,acd89f6c-a25f-47b9-ac21-036bfafcc0fc,acd89f6c-a25f-47b9-ac21-036bfafcc0fc,1,0,aa114d56-2faf-4925-8319-f0aa3993e9ee,aa114d56-2faf-4925-8319-f0aa3993e9ee,1,0,c3ffeb09-121b-4d77-9c15-def4648b4f3c,c3ffeb09-121b-4d77-9c15-def4648b4f3c,1,0,c2de0724-04c1-4adb-b62a-b7ba727dbe67,c2de0724-04c1-4adb-b62a-b7ba727dbe67,1,0,4ae26777-69ff-4a55-942b-0bad8ab7a70a,4ae26777-69ff-4a55-942b-0bad8ab7a70a,1,0,a0d8fb0a-0e90-4140-8687-e249b153dc66,a0d8fb0a-0e90-4140-8687-e249b153dc66,1,0,917c6f60-2a07-4587-9496-d393aff93953,917c6f60-2a07-4587-9496-d393aff93953,1,0,4bac50a2-762a-44e6-b8c5-3b09ef1a3f5e,4bac50a2-762a-44e6-b8c5-3b09ef1a3f5e,1,0,14361dbe-00dd-496b-adf4-7f35553bb48c,14361dbe-00dd-496b-adf4-7f35553bb48c,1,0,9de12434-34a3-4f73-848e-d0798f6d6c83,9de12434-34a3-4f73-848e-d0798f6d6c83,1,0,64c4af68-7657-458e-a129-14a3dd8a0262,64c4af68-7657-458e-a129-14a3dd8a0262,1,0,9fe72d73-4c95-47e0-bf92-dcb714d747c6,9fe72d73-4c95-47e0-bf92-dcb714d747c6,1,0,fe00e64f-2fa9-44a7-9bd7-854ebb6c0185,fe00e64f-2fa9-44a7-9bd7-854ebb6c0185,1,0,4d84bb11-e06e-4ed9-915b-76ee0e385a8b,4d84bb11-e06e-4ed9-915b-76ee0e385a8b,1,0,2b94076d-39ee-45ad-9ba5-435115cf5d4f,2b94076d-39ee-45ad-9ba5-435115cf5d4f,1,0,72ace16c-e90a-4d05-bc23-4351d4c87683,72ace16c-e90a-4d05-bc23-4351d4c87683,1,0,bd86e378-84bb-486a-be7b-319a3fe3b70b,bd86e378-84bb-486a-be7b-319a3fe3b70b,1,0,ef3bc279-6721-4949-8dc0-f96141f7f05c,ef3bc279-6721-4949-8dc0-f96141f7f05c,1,0,f81c7e21-48ad-4b64-975d-e62d34c7235a,f81c7e21-48ad-4b64-975d-e62d34c7235a,1,0,d0523c14-585e-45d3-9735-891235631004,d0523c14-585e-45d3-9735-891235631004,1,0,db5fde74-275f-4d82-825c-5c245a7fef6b,db5fde74-275f-4d82-825c-5c245a7fef6b,1,0,e4e534e9-7ccc-4ced-b961-613989a6194b,e4e534e9-7ccc-4ced-b961-613989a6194b,1,0,cc925b83-839b-48da-8f62-7f8cde76ac2a,cc925b83-839b-48da-8f62-7f8cde76ac2a,1,0,7d06f855-8a6a-45e0-a1c2-fd5f03d2a8ed,7d06f855-8a6a-45e0-a1c2-fd5f03d2a8ed,1,0,f9681a4d-d47c-4a8d-a8a3-4aafc751e61b,f9681a4d-d47c-4a8d-a8a3-4aafc751e61b,1,0,e6e76d04-8adc-4462-8919-0979258e5a7b,e6e76d04-8adc-4462-8919-0979258e5a7b,1,0,6ee85be2-55f6-4d4b-abf1-0d1d25f61ea3,6ee85be2-55f6-4d4b-abf1-0d1d25f61ea3,1,0,f850e1d5-5108-4ca8-b397-983627e4871b,f850e1d5-5108-4ca8-b397-983627e4871b,1,0,b6f8bc3e-f0cd-43ef-b060-d701cd446197,b6f8bc3e-f0cd-43ef-b060-d701cd446197,1,0,4f10e5f9-6cfd-4fa9-9c72-d19a484a796c,4f10e5f9-6cfd-4fa9-9c72-d19a484a796c,1,0,b94e805f-e1ab-4870-b855-98aa401864b2,b94e805f-e1ab-4870-b855-98aa401864b2,1,0,62f9fe19-3d64-4506-a0bc-dbfe47b4df64,62f9fe19-3d64-4506-a0bc-dbfe47b4df64,1,0,ff8eedeb-fc3e-4bee-852b-6da6d59ff38c,ff8eedeb-fc3e-4bee-852b-6da6d59ff38c,1,0,a98bd18f-ccda-41a2-a1b2-8b37cc1f6c36,a98bd18f-ccda-41a2-a1b2-8b37cc1f6c36,1,0,45af8f5d-d505-466b-a798-19f2219a180c,45af8f5d-d505-466b-a798-19f2219a180c,1,0,8a8229bc-f70a-4434-bacc-8a81fc58154b,8a8229bc-f70a-4434-bacc-8a81fc58154b,1,0,6324ad14-82ca-467b-b6b7-8d5f6049ca65,6324ad14-82ca-467b-b6b7-8d5f6049ca65,1,0,273446f0-f28b-4ce2-874c-3c6a57299b71,273446f0-f28b-4ce2-874c-3c6a57299b71,1,0,eb2f7449-ee42-43ec-b59c-3e07a6e3c139,eb2f7449-ee42-43ec-b59c-3e07a6e3c139,1,0,f8a7913a-2c64-47e1-8ae9-622fc6e9477e,f8a7913a-2c64-47e1-8ae9-622fc6e9477e,1,0,9b46a2b4-223d-4527-a94e-37ecd4fe72d7,9b46a2b4-223d-4527-a94e-37ecd4fe72d7,1,0,7a4e17bf-3649-4982-a9c6-5982390f1f1d,7a4e17bf-3649-4982-a9c6-5982390f1f1d,1,0,722be6e0-2698-431b-9206-777a36e6742f,722be6e0-2698-431b-9206-777a36e6742f,1,0,75bb0122-26bd-40be-8de8-7a57680c85ae,75bb0122-26bd-40be-8de8-7a57680c85ae,1,0,28dd22df-07cc-4e6d-89b2-b15a13f76615,28dd22df-07cc-4e6d-89b2-b15a13f76615,1,0,0c98b025-5adb-44dc-ab14-4c6517cc230b,0c98b025-5adb-44dc-ab14-4c6517cc230b,1,0,da2f09bd-109f-43aa-a90b-f033d17ed689,da2f09bd-109f-43aa-a90b-f033d17ed689,1,0,c4b3cb31-356e-4868-921c-f6710349def8,c4b3cb31-356e-4868-921c-f6710349def8,1,0,f98a7b6d-f364-4b84-9aeb-8dd822ef582f,f98a7b6d-f364-4b84-9aeb-8dd822ef582f,1,0,44526cb1-561d-4b87-a628-d79cc64ccdec,44526cb1-561d-4b87-a628-d79cc64ccdec,1,0,5e4dbba3-07df-4e30-be14-d9244f5ec21c,5e4dbba3-07df-4e30-be14-d9244f5ec21c,1,0,c8116351-4487-40f3-ae04-1e0741cc5df6,c8116351-4487-40f3-ae04-1e0741cc5df6,1,0,a6be80f7-d6aa-4371-a180-3d355080d849,a6be80f7-d6aa-4371-a180-3d355080d849,1,0,b37722c3-e29f-4a40-b4eb-0317919fc7a5,b37722c3-e29f-4a40-b4eb-0317919fc7a5,1,0,b1b1cd90-094d-428b-a6bc-156521c1c54d,b1b1cd90-094d-428b-a6bc-156521c1c54d,1,0,4f79ef7c-79be-4a69-acc0-bd591c712d03,4f79ef7c-79be-4a69-acc0-bd591c712d03,1,0,a0dd2129-d3a1-4bca-b555-72b065be1c13,a0dd2129-d3a1-4bca-b555-72b065be1c13,1,0,dc5e8229-e301-477c-846e-2e7078e3ee5f,dc5e8229-e301-477c-846e-2e7078e3ee5f,1,0,24836e44-8fdd-44bd-91d8-4ddab2caf485,24836e44-8fdd-44bd-91d8-4ddab2caf485,1,0,3727bcfe-4d75-4270-86e7-4a66ab14866c,3727bcfe-4d75-4270-86e7-4a66ab14866c,1,0,870a4708-0b5a-4fa3-9978-d94b161d289a,870a4708-0b5a-4fa3-9978-d94b161d289a,1,0,30e9f89d-7b94-488e-9963-886c271b1af7,30e9f89d-7b94-488e-9963-886c271b1af7,1,0,96229b23-74a9-4fe1-a89e-b71f499cd65a,96229b23-74a9-4fe1-a89e-b71f499cd65a,1,0,15000713-0142-42e9-8bb3-cbb0587200d4,15000713-0142-42e9-8bb3-cbb0587200d4,1,0,d5ae7e0b-c230-402f-9d4f-e52c2b9aa240,d5ae7e0b-c230-402f-9d4f-e52c2b9aa240,1,0,0d199fdc-d2af-4159-91d6-6f15266f9ce8,0d199fdc-d2af-4159-91d6-6f15266f9ce8,1,0,91af7a52-0825-4af5-94df-cc501e0123cd,91af7a52-0825-4af5-94df-cc501e0123cd,1,0,1c2cc78a-2ae6-4996-a743-7b55aecbe84c,1c2cc78a-2ae6-4996-a743-7b55aecbe84c,1,0,9292bf81-5668-4d52-a4ec-a93bc4b0ad3b,9292bf81-5668-4d52-a4ec-a93bc4b0ad3b,1,0,9693cc78-852e-445b-a7d2-f1689fa9eeec,9693cc78-852e-445b-a7d2-f1689fa9eeec,1,0,eb33e555-db41-462a-a45d-c7e0945cece8,eb33e555-db41-462a-a45d-c7e0945cece8,1,0,9cfd517c-1008-483a-9f65-7d15feb2cefc,9cfd517c-1008-483a-9f65-7d15feb2cefc,1,0,d66adc5e-25a3-472e-b0a4-5f22f88d7a0f,d66adc5e-25a3-472e-b0a4-5f22f88d7a0f,1,0,ae48d48f-cd39-4821-a4b7-9394b2a77ef6,ae48d48f-cd39-4821-a4b7-9394b2a77ef6,1,0,f34d3a69-533e-49df-b91d-f7f7f49c5fb1,f34d3a69-533e-49df-b91d-f7f7f49c5fb1,1,0,1d76f613-f4f6-4772-8c16-d97b3104a553,1d76f613-f4f6-4772-8c16-d97b3104a553,1,0,3e58d607-b906-449f-b044-9c130a487b86,3e58d607-b906-449f-b044-9c130a487b86,1,0,7a911212-7fde-4ea8-a1fa-229116b60895,7a911212-7fde-4ea8-a1fa-229116b60895,1,0,f4580043-5bc2-4295-8523-909302009b44,f4580043-5bc2-4295-8523-909302009b44,1,0,dc8af632-a5a4-4270-ba5f-2d3ba506f7e3,dc8af632-a5a4-4270-ba5f-2d3ba506f7e3,1,0,81936ac2-32fe-4e14-897b-0aba92b90c05,81936ac2-32fe-4e14-897b-0aba92b90c05,1,0,9f88e355-3f8f-4fcd-b45f-39c3d45490f5,9f88e355-3f8f-4fcd-b45f-39c3d45490f5,1,0,2e233e3c-687c-4516-87c6-5d6c5f9f04a2,2e233e3c-687c-4516-87c6-5d6c5f9f04a2,1,0,2afdcde7-46ef-4624-8b84-c6381ff2f3a4,2afdcde7-46ef-4624-8b84-c6381ff2f3a4,1,0,2d279d24-1953-4a2f-8206-77481d2fd718,2d279d24-1953-4a2f-8206-77481d2fd718,1,0,aa6abffe-1b09-48f9-9aee-4f234db6b2a2,aa6abffe-1b09-48f9-9aee-4f234db6b2a2,1,0,0a920200-77d0-42ea-abf6-0d40d63289b0,0a920200-77d0-42ea-abf6-0d40d63289b0,1,0,c850bafc-4073-44ef-b148-194f87c46f0e,c850bafc-4073-44ef-b148-194f87c46f0e,1,0,6d1dd726-815d-476e-b668-95cff4182e54,6d1dd726-815d-476e-b668-95cff4182e54,1,0,12f4a0ed-4798-4467-8834-de3eb385e22d,12f4a0ed-4798-4467-8834-de3eb385e22d,1,0,5710809e-4c41-42ab-952f-f7778fe9be0f,5710809e-4c41-42ab-952f-f7778fe9be0f,1,0,0811f6c2-6bb3-43b8-9944-910adc4c6f23,0811f6c2-6bb3-43b8-9944-910adc4c6f23,1,0,c1646df4-9fce-44f0-9cc3-a5dab0bbef2e,c1646df4-9fce-44f0-9cc3-a5dab0bbef2e,1,0,c86b02ab-3532-4f4c-b993-e237ed0d4d12,c86b02ab-3532-4f4c-b993-e237ed0d4d12,1,0,46c3341c-352c-43fb-b338-15c8ad487fbf,46c3341c-352c-43fb-b338-15c8ad487fbf,1,0,a2a8b35e-04e5-4176-8d3b-2cd4dfb6d653,a2a8b35e-04e5-4176-8d3b-2cd4dfb6d653,1,0,ea7ad7f5-e502-49a9-b4a6-e9adceb15057,ea7ad7f5-e502-49a9-b4a6-e9adceb15057,1,0,f9450d6a-849c-4621-b528-9cafc4819b44,f9450d6a-849c-4621-b528-9cafc4819b44,1,0,5b7cac99-2fca-4dbb-8d49-b84f310a2496,5b7cac99-2fca-4dbb-8d49-b84f310a2496,1,0,a4673d5c-9dae-48f7-9c91-53c1302a266a,a4673d5c-9dae-48f7-9c91-53c1302a266a,1,0,1a2a0dd2-b0dc-41e1-8c4f-f275f025bad2,1a2a0dd2-b0dc-41e1-8c4f-f275f025bad2,1,0,c255932e-fc34-402c-a6e9-2fda1ffbcdf2,c255932e-fc34-402c-a6e9-2fda1ffbcdf2,1,0,0d323d88-2823-493e-8c1e-b2b9f3dcdd3e,0d323d88-2823-493e-8c1e-b2b9f3dcdd3e,1,0,3f410b53-e762-41fe-9469-d538dfec3a9a,3f410b53-e762-41fe-9469-d538dfec3a9a,1,0,bb11c22e-0fbd-4985-be67-0866df7f7e61,bb11c22e-0fbd-4985-be67-0866df7f7e61,1,0,92ea60c0-1027-4337-9130-40028951f09b,92ea60c0-1027-4337-9130-40028951f09b,1,0,46710ce6-0f82-4c4c-91e8-f8ee726e00ce,46710ce6-0f82-4c4c-91e8-f8ee726e00ce,1,0,d64f18a4-ff93-4284-9eca-085109eafd24,d64f18a4-ff93-4284-9eca-085109eafd24,1,0,6381b8d2-7722-45c7-8800-19f6574d7d7a,6381b8d2-7722-45c7-8800-19f6574d7d7a,1,0,bf428e7a-2970-4bab-8c8e-35ea16151c0e,bf428e7a-2970-4bab-8c8e-35ea16151c0e,1,0,232dbd5f-b7f1-4463-946c-b8fbf93ac466,232dbd5f-b7f1-4463-946c-b8fbf93ac466,1,0,a1a74b34-4174-4769-8f03-bd4a32e83418,a1a74b34-4174-4769-8f03-bd4a32e83418,1,0,32fd1fe7-34d3-43ed-baba-16ccd43aa25a,32fd1fe7-34d3-43ed-baba-16ccd43aa25a,1,0,8f4d1259-abdc-4495-8e1e-8c8abcd336ca,8f4d1259-abdc-4495-8e1e-8c8abcd336ca,1,0,7086199b-20ec-4a74-a52f-71824134e8c5,7086199b-20ec-4a74-a52f-71824134e8c5,1,0,1731708f-53cb-4b00-b90e-f581b4baa845,1731708f-53cb-4b00-b90e-f581b4baa845,1,0,d4b0feca-c00a-4d48-9f23-d92277ea6483,d4b0feca-c00a-4d48-9f23-d92277ea6483,1,0,00b2a0b3-6af8-4ea4-aa38-d1e078d5cbff,00b2a0b3-6af8-4ea4-aa38-d1e078d5cbff,1,0,20f7fdd2-30f6-4a52-a63b-7d2c326c0e83,20f7fdd2-30f6-4a52-a63b-7d2c326c0e83,1,0,23cb5bc2-9638-4d1c-b4bc-d5297e271570,23cb5bc2-9638-4d1c-b4bc-d5297e271570,1,0,6e547ccb-6d5a-4f7c-aaf0-568c22d2c276,6e547ccb-6d5a-4f7c-aaf0-568c22d2c276,1,0,04b7389d-697d-4b0d-a239-ac8c674cc46f,04b7389d-697d-4b0d-a239-ac8c674cc46f,1,0,a1cf5173-2e86-4ed7-9a0b-1bd5e578326a,a1cf5173-2e86-4ed7-9a0b-1bd5e578326a,1,0,864cad61-8280-415d-8fe1-bcb39d56670a,864cad61-8280-415d-8fe1-bcb39d56670a,1,0,b106bd29-5dc7-44d7-94d0-00f61499392e,b106bd29-5dc7-44d7-94d0-00f61499392e,1,0,a4febff8-0566-4977-bf55-1d574568fe9f,a4febff8-0566-4977-bf55-1d574568fe9f,1,0,5199cc65-bed1-40b9-96fe-cf6d855a8b91,5199cc65-bed1-40b9-96fe-cf6d855a8b91,1,0,f518add9-5c26-4dac-ab2e-b30fe3fbd347,f518add9-5c26-4dac-ab2e-b30fe3fbd347,1,0,23f53317-7aa8-4816-8a69-3d39d5e76da0,23f53317-7aa8-4816-8a69-3d39d5e76da0,1,0,9ade5155-fa6d-4999-b019-a5e7e235a158,9ade5155-fa6d-4999-b019-a5e7e235a158,1,0,8b302c5e-b255-4cb5-94d9-0dfef4250097,8b302c5e-b255-4cb5-94d9-0dfef4250097,1,0,08eb74b6-1e1c-4004-a0f8-b6f1fdfc68ef,08eb74b6-1e1c-4004-a0f8-b6f1fdfc68ef,1,0,d4eb3e9a-feb5-42d9-841b-ff20288228b6,d4eb3e9a-feb5-42d9-841b-ff20288228b6,1,0,49d713b8-6a61-4bd1-9650-0de1869967d2,49d713b8-6a61-4bd1-9650-0de1869967d2,1,0,4738ffd0-3c3b-4e5f-8773-0c9a80efdfbf,4738ffd0-3c3b-4e5f-8773-0c9a80efdfbf,1,0,bd0e4aeb-19f9-48fc-b838-38d785004360,bd0e4aeb-19f9-48fc-b838-38d785004360,1,0,3d1bae2a-4dfd-48e5-bfe9-b7e30c8475f6,3d1bae2a-4dfd-48e5-bfe9-b7e30c8475f6,1,0,0f2ec7ac-6d3f-4fcf-af3d-b0bfaa187a4b,0f2ec7ac-6d3f-4fcf-af3d-b0bfaa187a4b,1,0,6d351276-2c04-4198-a3e4-865881c12f5c,6d351276-2c04-4198-a3e4-865881c12f5c,1,0,73b1d2e2-0eeb-45dc-8ca3-3bda594d6823,73b1d2e2-0eeb-45dc-8ca3-3bda594d6823,1,0,5c4abd61-2f29-499e-a2ca-d133e9eeeaea,5c4abd61-2f29-499e-a2ca-d133e9eeeaea,1,0,8e07a76d-db30-491c-b296-181c8e689382,8e07a76d-db30-491c-b296-181c8e689382,1,0,4f1752ae-42d0-477d-854b-de143c428a85,4f1752ae-42d0-477d-854b-de143c428a85,1,0,29674b66-c542-4a34-8caa-8e57a51bd190,29674b66-c542-4a34-8caa-8e57a51bd190,1,0,1a41acdd-3503-4c69-b93b-eb1cb6749712,1a41acdd-3503-4c69-b93b-eb1cb6749712,1,0,0e45c53e-7571-49bf-b673-cff53d32af89,0e45c53e-7571-49bf-b673-cff53d32af89,1,0,169b0670-8fa7-48d1-b6b1-2cf581b18390,169b0670-8fa7-48d1-b6b1-2cf581b18390,1,0,2e239650-973b-4908-b91e-477062046528,2e239650-973b-4908-b91e-477062046528,1,0,4692eeee-5b73-42f3-ad39-794141af9e2b,4692eeee-5b73-42f3-ad39-794141af9e2b,1,0,093a2243-329b-49b2-b6cd-80a1f7e4634a,093a2243-329b-49b2-b6cd-80a1f7e4634a,1,0,0ddeed48-b98a-47c3-84a2-2eac065be06c,0ddeed48-b98a-47c3-84a2-2eac065be06c,1,0,7987fe2c-d7cc-4fd2-ac4e-610bfb1ab6d2,7987fe2c-d7cc-4fd2-ac4e-610bfb1ab6d2,1,0,fc18d95e-a51d-45c0-83b0-09aeb2b5b03a,fc18d95e-a51d-45c0-83b0-09aeb2b5b03a,1,0,47714327-dd28-4e32-a1c9-20ee47d9afd0,47714327-dd28-4e32-a1c9-20ee47d9afd0,1,0,4d76ef7a-f1a6-4147-84f4-6e1717dfd77e,4d76ef7a-f1a6-4147-84f4-6e1717dfd77e,1,0,d1eb0aa7-b485-4f3a-846d-be069ca807c0,d1eb0aa7-b485-4f3a-846d-be069ca807c0,1,0,afde7867-15d3-43fa-b439-6d9e40df580b,afde7867-15d3-43fa-b439-6d9e40df580b,1,0,a676ff94-a0d1-4de9-8690-ec67f2c891d8,a676ff94-a0d1-4de9-8690-ec67f2c891d8,1,0,012bf716-3672-462e-b390-7bb4384ab4b1,012bf716-3672-462e-b390-7bb4384ab4b1,1,0,65342599-ff37-4f99-8e40-f05d87403bcf,65342599-ff37-4f99-8e40-f05d87403bcf,1,0,3a3f505a-7a50-4111-8029-5b9057fed232,3a3f505a-7a50-4111-8029-5b9057fed232,1,0,1d66cd80-fd61-4bf2-a7f9-34b33443e1ea,1d66cd80-fd61-4bf2-a7f9-34b33443e1ea,1,0,7b638691-416d-4484-81f4-e4c796a92818,7b638691-416d-4484-81f4-e4c796a92818,1,0,03ab92e2-81a3-4e38-84a8-85c1d78d51e9,03ab92e2-81a3-4e38-84a8-85c1d78d51e9,1,0,ef09e296-af08-44ff-8303-4833b23a12c3,ef09e296-af08-44ff-8303-4833b23a12c3,1,0,8984f28e-8c83-499a-838c-5f51410d7b0e,8984f28e-8c83-499a-838c-5f51410d7b0e,1,0,73bf8c40-76ee-4c61-b56a-898bcd6da1ca,73bf8c40-76ee-4c61-b56a-898bcd6da1ca,1,0,434a0471-1389-4764-a901-69249e1fdc38,434a0471-1389-4764-a901-69249e1fdc38,1,0,7b6c1d9f-968e-4126-990e-fa2787ad83b2,7b6c1d9f-968e-4126-990e-fa2787ad83b2,1,0,b89108a9-8b4e-4b34-8f72-4eb502963743,b89108a9-8b4e-4b34-8f72-4eb502963743,1,0,398b93b1-620d-4942-ba44-7ea0f9cc14f0,398b93b1-620d-4942-ba44-7ea0f9cc14f0,1,0,7b06537e-d818-41b3-acc5-b6b63b543be8,7b06537e-d818-41b3-acc5-b6b63b543be8,1,0,74226c30-5f9b-4e47-b7cc-35e92139cbfa,74226c30-5f9b-4e47-b7cc-35e92139cbfa,1,0,09f812cb-770c-4f85-87f0-db35952c764e,09f812cb-770c-4f85-87f0-db35952c764e,1,0,8bbbcfd9-b6da-41f6-b543-863b12b9fb59,8bbbcfd9-b6da-41f6-b543-863b12b9fb59,1,0,eb48f8a9-1644-432d-a8a8-e63bc013a2fe,eb48f8a9-1644-432d-a8a8-e63bc013a2fe,1,0,36951804-70a4-45fa-9fad-1c37fd3ce7b7,36951804-70a4-45fa-9fad-1c37fd3ce7b7,1,0,d0031774-fa35-469f-9f8a-3aaa920928a0,d0031774-fa35-469f-9f8a-3aaa920928a0,1,0,6da02618-2454-48fe-b1dc-399d0d40d043,6da02618-2454-48fe-b1dc-399d0d40d043,1,0,5a080203-ecd2-4f40-ac64-c8024eda595e,5a080203-ecd2-4f40-ac64-c8024eda595e,1,0,3eabcb69-398b-43f5-bf53-c20f90bee5c4,3eabcb69-398b-43f5-bf53-c20f90bee5c4,1,0,9c33639e-529a-490f-9365-80778b54c3f7,9c33639e-529a-490f-9365-80778b54c3f7,1,0,561b97a0-9d42-4735-a606-8d5b5862689f,561b97a0-9d42-4735-a606-8d5b5862689f,1,0,10d5c0c2-301f-4477-a88f-254f99a30fa0,10d5c0c2-301f-4477-a88f-254f99a30fa0,1,0,84ba4ba7-2743-438a-8b65-cc14090f8a92,84ba4ba7-2743-438a-8b65-cc14090f8a92,1,0,cdc4312c-b1af-407c-bfc3-28db04915aa6,cdc4312c-b1af-407c-bfc3-28db04915aa6,1,0,97b76ee8-c73f-456b-9008-b453bd376317,97b76ee8-c73f-456b-9008-b453bd376317,1,0,ee305e39-978b-4069-a4e6-05e761a5d6ae,ee305e39-978b-4069-a4e6-05e761a5d6ae,1,0,965650ae-8a6e-469a-869a-0ce821818058,965650ae-8a6e-469a-869a-0ce821818058,1,0,00fde8e2-3eb3-484a-a960-a390cbdaa16a,00fde8e2-3eb3-484a-a960-a390cbdaa16a,1,0,c7a82aa5-043c-46a2-9f5a-cba098ca36bd,c7a82aa5-043c-46a2-9f5a-cba098ca36bd,1,0,94744edd-61d0-4329-95d8-fc19dc7c6af1,94744edd-61d0-4329-95d8-fc19dc7c6af1,1,0,43bbf87f-8f21-49b9-be2f-eceb64c2c650,43bbf87f-8f21-49b9-be2f-eceb64c2c650,1,0,69db1a1c-3e9d-4e3c-b31e-731f2b8635b9,69db1a1c-3e9d-4e3c-b31e-731f2b8635b9,1,0,621b1881-9a7f-4fa4-a373-46467743e29c,621b1881-9a7f-4fa4-a373-46467743e29c,1,0,932ef5a0-4bad-424d-9772-ad8393c12006,932ef5a0-4bad-424d-9772-ad8393c12006,1,0,6e82e4ec-cf8e-4e9f-aaed-69b146c2ed84,6e82e4ec-cf8e-4e9f-aaed-69b146c2ed84,1,0,35dbc542-3ad9-4a72-9863-229a67cda425,35dbc542-3ad9-4a72-9863-229a67cda425,1,0,8e4277e9-983a-4d43-b08e-a4f918df87bf,8e4277e9-983a-4d43-b08e-a4f918df87bf,1,0,ea232693-49b2-4e10-9349-66e26760602c,ea232693-49b2-4e10-9349-66e26760602c,1,0,110e76d3-26ad-4392-9f82-255d792478a1,110e76d3-26ad-4392-9f82-255d792478a1,1,0,9117730e-1d3f-47b6-84fc-7a02377f86a0,9117730e-1d3f-47b6-84fc-7a02377f86a0,1,0,0a7eec2f-41c6-4d77-98a4-5e0bfc698997,0a7eec2f-41c6-4d77-98a4-5e0bfc698997,1,0,ec06e6a7-7894-4411-9b54-f811837b8a2e,ec06e6a7-7894-4411-9b54-f811837b8a2e,1,0,f43f3a1b-7f71-4a4f-9ec2-5f4d7d77efca,f43f3a1b-7f71-4a4f-9ec2-5f4d7d77efca,1,0,0947bd87-9542-4d2b-8439-9f6ccdb2c9cc,0947bd87-9542-4d2b-8439-9f6ccdb2c9cc,1,0,c0e2673a-1846-4ae5-933a-4e33b73a866b,c0e2673a-1846-4ae5-933a-4e33b73a866b,1,0,3996aff6-b6ce-4f6b-a2f3-1b0bf8b1d0c2,3996aff6-b6ce-4f6b-a2f3-1b0bf8b1d0c2,1,0,f5fadf27-b8ca-421b-8a73-c3f10aef248b,f5fadf27-b8ca-421b-8a73-c3f10aef248b,1,0,006fa20c-ba4b-4003-a743-b47c4b7bd815,006fa20c-ba4b-4003-a743-b47c4b7bd815,1,0,4ecd2da3-4d0c-416b-ae97-66f6f753226b,4ecd2da3-4d0c-416b-ae97-66f6f753226b,1,0,ec680d71-eb28-4b42-a664-c6137c259eaa,ec680d71-eb28-4b42-a664-c6137c259eaa,1,0,efa1d27f-0620-4b3a-b058-12f160008478,efa1d27f-0620-4b3a-b058-12f160008478,1,0,2dd0ec2e-457d-4147-b806-ff3d6fa091fb,2dd0ec2e-457d-4147-b806-ff3d6fa091fb,1,0,005d4afc-7d09-4cef-acaa-50d49e455df0,005d4afc-7d09-4cef-acaa-50d49e455df0,1,0,d773673e-992d-4f22-9fb3-acfb8863217d,d773673e-992d-4f22-9fb3-acfb8863217d,1,0,6cf00002-d685-4340-a873-196126a19664,6cf00002-d685-4340-a873-196126a19664,1,0,e422c08d-f54f-4a49-b0c5-a50bf63973c9,e422c08d-f54f-4a49-b0c5-a50bf63973c9,1,0,8288078e-0d2f-47c5-8e58-c5a17a76cc11,8288078e-0d2f-47c5-8e58-c5a17a76cc11,1,0,82abcc34-c8aa-42a0-b2fe-f66b7cafc2a0,82abcc34-c8aa-42a0-b2fe-f66b7cafc2a0,1,0,1908b558-9619-477e-ab33-0c731adf2b0e,1908b558-9619-477e-ab33-0c731adf2b0e,1,0,2bed313f-06ac-43a1-a0bd-008c5457deb1,2bed313f-06ac-43a1-a0bd-008c5457deb1,1,0,304feda3-6d33-466c-9e0d-9cea97d763be,304feda3-6d33-466c-9e0d-9cea97d763be,1,0,d6d20d2e-ac18-4bed-aa98-2466871996ac,d6d20d2e-ac18-4bed-aa98-2466871996ac,1,0,53617fbd-4c88-4b13-b3f5-acc78064fdea,53617fbd-4c88-4b13-b3f5-acc78064fdea,1,0,fae5d2ca-4a2d-4ba3-945c-d6545a6b57f1,fae5d2ca-4a2d-4ba3-945c-d6545a6b57f1,1,0,7a043029-1b09-4c11-adfd-9f0588e323e8,7a043029-1b09-4c11-adfd-9f0588e323e8,1,0,ecaf5d2f-0cea-4ad0-8550-51be37cead5c,ecaf5d2f-0cea-4ad0-8550-51be37cead5c,1,0,448e7386-cc56-4578-9c57-ef270980a0ff,448e7386-cc56-4578-9c57-ef270980a0ff,1,0,c2cdc60c-157d-450f-b3ba-2b6242459ebb,c2cdc60c-157d-450f-b3ba-2b6242459ebb,1,0,186f87ca-b9d5-48fa-b196-eed2794bade4,186f87ca-b9d5-48fa-b196-eed2794bade4,1,0,b87d9e04-9e12-42a5-b9fd-ea9a9bab59eb,b87d9e04-9e12-42a5-b9fd-ea9a9bab59eb,1,0,65b653b7-1298-40e4-9d69-2ce7810d5985,65b653b7-1298-40e4-9d69-2ce7810d5985,1,0,5fd170a9-44fc-4d18-9e51-2dbf09ca902e,5fd170a9-44fc-4d18-9e51-2dbf09ca902e,1,0,66359bb1-8692-415a-86d9-f40545f88d3a,66359bb1-8692-415a-86d9-f40545f88d3a,1,0,83be7bdf-e915-440f-a39f-1bb74db34b3e,83be7bdf-e915-440f-a39f-1bb74db34b3e,1,0,190b6efe-e67e-4274-abb9-263178a6ec4a,190b6efe-e67e-4274-abb9-263178a6ec4a,1,0,1363523a-929e-49ac-ae39-d43acf9f0478,1363523a-929e-49ac-ae39-d43acf9f0478,1,0,f6ff0bb8-c1fd-4eae-b919-6d10d4504f0c,f6ff0bb8-c1fd-4eae-b919-6d10d4504f0c,1,0,2876c476-8280-426d-8bf9-c93beda0ddd5,2876c476-8280-426d-8bf9-c93beda0ddd5,1,0,963e0813-4f6b-4d31-b66d-77125c47ce19,963e0813-4f6b-4d31-b66d-77125c47ce19,1,0,a720abc8-dcf0-4684-8d94-22d394a8e4df,a720abc8-dcf0-4684-8d94-22d394a8e4df,1,0,e40f53de-c27b-4e74-8241-f784d7ca5c84,e40f53de-c27b-4e74-8241-f784d7ca5c84,1,0,ef38b84d-277e-48c2-8826-330132eb6807,ef38b84d-277e-48c2-8826-330132eb6807,1,0,67a50910-059a-4724-84e0-c21bc3ac74c2,67a50910-059a-4724-84e0-c21bc3ac74c2,1,0,fdd83a89-a2fe-40d8-a531-a10bfeb36a1d,fdd83a89-a2fe-40d8-a531-a10bfeb36a1d,1,0,d9f76f2f-2b32-4986-8987-a585f831d951,d9f76f2f-2b32-4986-8987-a585f831d951,1,0,b1a96083-1c12-43f4-ba61-3a0588fc7310,b1a96083-1c12-43f4-ba61-3a0588fc7310,1,0,2e37c7d0-b97f-4c72-821e-b2bb77fb3140,2e37c7d0-b97f-4c72-821e-b2bb77fb3140,1,0,0d190f8b-87c5-4dd1-bcfb-609ec3a44f72,0d190f8b-87c5-4dd1-bcfb-609ec3a44f72,1,0,53a2f4b2-e8ea-4347-b4c7-b73f4ea8f9b7,53a2f4b2-e8ea-4347-b4c7-b73f4ea8f9b7,1,0,6b814a99-441e-4a51-997b-1c56bc40b134,6b814a99-441e-4a51-997b-1c56bc40b134,1,0,590dd4d6-ad10-44d6-b046-6ea879ca59bf,590dd4d6-ad10-44d6-b046-6ea879ca59bf,1,0,9388e5d5-3a02-4019-a060-141f8a3bb055,9388e5d5-3a02-4019-a060-141f8a3bb055,1,0,c1b000a1-8094-4a06-805f-b84d4e9c6dc0,c1b000a1-8094-4a06-805f-b84d4e9c6dc0,1,0,5eb1717c-3696-48bb-88a9-b667ea687860,5eb1717c-3696-48bb-88a9-b667ea687860,1,0,95705445-29b4-4d51-857b-a9cf161a3cc6,95705445-29b4-4d51-857b-a9cf161a3cc6,1,0,9e78a2b9-44fc-4971-801d-1ddd4bb09cfd,9e78a2b9-44fc-4971-801d-1ddd4bb09cfd,1,0,2c0d11fc-b927-4b5d-a16c-d60e69580824,2c0d11fc-b927-4b5d-a16c-d60e69580824,1,0,ee49981d-91f6-4002-9205-b8a53e6f54e0,ee49981d-91f6-4002-9205-b8a53e6f54e0,1,0,64a74365-ca32-4b7d-af8e-695624e3dcb6,64a74365-ca32-4b7d-af8e-695624e3dcb6,1,0,ed1b3c28-99be-49e9-90eb-81e24c8323a5,ed1b3c28-99be-49e9-90eb-81e24c8323a5,1,0,1e20958d-79dc-4c53-b09f-e627c6463fca,1e20958d-79dc-4c53-b09f-e627c6463fca,1,0,0efdbcc2-e5a8-4b00-a72a-2823fb0b2658,0efdbcc2-e5a8-4b00-a72a-2823fb0b2658,1,0,0fa7190d-bafd-4113-a623-9d7d818f70c7,0fa7190d-bafd-4113-a623-9d7d818f70c7,1,0,5251e744-666e-48a0-a5b4-9cef313c7631,5251e744-666e-48a0-a5b4-9cef313c7631,1,0,d3aca87c-2b47-48da-82dd-18ca867c8463,d3aca87c-2b47-48da-82dd-18ca867c8463,1,0,669b81a6-6526-4b5c-aafa-1988ae5253ce,669b81a6-6526-4b5c-aafa-1988ae5253ce,1,0,ab138a0c-71fe-4ca2-9d82-21f5830dde24,ab138a0c-71fe-4ca2-9d82-21f5830dde24,1,0,ffa6c000-ec84-4749-8ffe-42b0599751cd,ffa6c000-ec84-4749-8ffe-42b0599751cd,1,0,740bde9c-9fe1-4183-ab01-3fbe91d33b61,740bde9c-9fe1-4183-ab01-3fbe91d33b61,1,0,e8e19542-c5c8-418b-8a83-20336fd9075a,e8e19542-c5c8-418b-8a83-20336fd9075a,1,0,1117fce9-6e77-4d1d-aa86-49e7baddfe4b,1117fce9-6e77-4d1d-aa86-49e7baddfe4b,1,0,23f96afc-28e2-470d-9732-220f8867fc23,23f96afc-28e2-470d-9732-220f8867fc23,1,0,aef883c7-c1f5-46ff-a95a-6828d3509069,aef883c7-c1f5-46ff-a95a-6828d3509069,1,0,36b3b988-bf64-4466-9887-93583f59833d,36b3b988-bf64-4466-9887-93583f59833d,1,0,c2997234-864c-408c-94d3-85a2a1820a16,c2997234-864c-408c-94d3-85a2a1820a16,1,0,9d5b351e-5533-4e9f-a23f-d0f7b03d72ca,9d5b351e-5533-4e9f-a23f-d0f7b03d72ca,1,0,d5775cec-e600-4259-82fc-f313cee1cd6f,d5775cec-e600-4259-82fc-f313cee1cd6f,1,0,df918f4e-1a0a-4a7a-997b-f4757185b691,df918f4e-1a0a-4a7a-997b-f4757185b691,1,0,4e305be6-8bbf-4215-aeea-1283aba6d19e,4e305be6-8bbf-4215-aeea-1283aba6d19e,1,0,ebedc283-5eb0-459b-b686-f8643666b8b8,ebedc283-5eb0-459b-b686-f8643666b8b8,1,0,6a6afffd-cfed-4801-8b59-34d27e46565c,6a6afffd-cfed-4801-8b59-34d27e46565c,1,0,a469b12d-4537-419c-91e0-37abc9d31505,a469b12d-4537-419c-91e0-37abc9d31505,1,0,6f312bda-1f4d-48a6-bd95-f23f34f0ea4b,6f312bda-1f4d-48a6-bd95-f23f34f0ea4b,1,0,82c42232-531e-403f-8599-cc21a248fa2c,82c42232-531e-403f-8599-cc21a248fa2c,1,0,9104b791-9ac4-41ba-a7f0-9e609db3b578,9104b791-9ac4-41ba-a7f0-9e609db3b578,1,0,2d3721d1-816f-4e84-9df1-863cb269d83d,2d3721d1-816f-4e84-9df1-863cb269d83d,1,0,5ffc2b03-28c0-45da-ab3e-e4c5d449a898,5ffc2b03-28c0-45da-ab3e-e4c5d449a898,1,0,5c1a1206-0521-44db-8cdd-3e132f2e5a34,5c1a1206-0521-44db-8cdd-3e132f2e5a34,1,0,a630b2d5-2a8e-471e-a7ca-2498e15ace47,a630b2d5-2a8e-471e-a7ca-2498e15ace47,1,0,ba0855a3-8384-4681-a6f0-6373f23cf52d,ba0855a3-8384-4681-a6f0-6373f23cf52d,1,0,62c4aa38-8768-4a3e-84d1-94fa65b23686,62c4aa38-8768-4a3e-84d1-94fa65b23686,1,0,5c1b06a9-f216-4e73-82f9-1febbdef34d8,5c1b06a9-f216-4e73-82f9-1febbdef34d8,1,0,b732a9da-9739-4c68-a37a-7a81b2c65e49,b732a9da-9739-4c68-a37a-7a81b2c65e49,1,0,bd1e5dbf-310b-44d5-ba84-cccf898c1ec7,bd1e5dbf-310b-44d5-ba84-cccf898c1ec7,1,0,cd20376f-f106-4e20-8575-ceb42b45b8b8,cd20376f-f106-4e20-8575-ceb42b45b8b8,1,0,bf1c6099-2d52-44ea-b873-d3e7d2e94c1e,bf1c6099-2d52-44ea-b873-d3e7d2e94c1e,1,0,5ce71d76-53c2-475a-91f8-8f90e305489a,5ce71d76-53c2-475a-91f8-8f90e305489a,1,0,1a5499ca-600e-4541-8da4-5239f11bfb3b,1a5499ca-600e-4541-8da4-5239f11bfb3b,1,0,b81d7b9e-2adc-4a27-b7ae-13c8ecafd7ba,b81d7b9e-2adc-4a27-b7ae-13c8ecafd7ba,1,0,323207f8-b964-462f-a0f0-4a69ddf90ac0,323207f8-b964-462f-a0f0-4a69ddf90ac0,1,0,5c22f549-a8c2-4068-90bc-974472eb6071,5c22f549-a8c2-4068-90bc-974472eb6071,1,0,0b09cf2f-1759-4362-b997-29e09ac00445,0b09cf2f-1759-4362-b997-29e09ac00445,1,0,f6a9eb9c-a1c2-4114-b155-3ce94c7b7f20,f6a9eb9c-a1c2-4114-b155-3ce94c7b7f20,1,0,828ddf5d-ca09-4baf-897f-77d569e02a6b,828ddf5d-ca09-4baf-897f-77d569e02a6b,1,0,8ef2c1d3-173f-4db8-b2c7-5d5234709b8e,8ef2c1d3-173f-4db8-b2c7-5d5234709b8e,1,0,8856015c-a695-4b1a-99ef-770263f9dc4a,8856015c-a695-4b1a-99ef-770263f9dc4a,1,0,183ec2b5-e173-4885-9e26-1098ffa15020,183ec2b5-e173-4885-9e26-1098ffa15020,1,0,74702fdf-bfc5-4658-ba58-e39bcfbaa647,74702fdf-bfc5-4658-ba58-e39bcfbaa647,1,0,2f436ec3-6a04-4d2c-998a-c60ea875ca86,2f436ec3-6a04-4d2c-998a-c60ea875ca86,1,0,c91f630a-286c-4eb8-b87e-6e6bc7670482,c91f630a-286c-4eb8-b87e-6e6bc7670482,1,0,8ace2dbf-ed9d-46fd-bda7-d884da77e30c,8ace2dbf-ed9d-46fd-bda7-d884da77e30c,1,0,ba59bf05-b815-4679-94ce-601923d60461,ba59bf05-b815-4679-94ce-601923d60461,1,0,65ff172c-3892-4dd2-821b-5d6293805528,65ff172c-3892-4dd2-821b-5d6293805528,1,0,00c47343-9f64-4368-896e-85f1639e4dae,00c47343-9f64-4368-896e-85f1639e4dae,1,0,afc02a73-15bd-4ab1-97bb-5cea6206a44f,afc02a73-15bd-4ab1-97bb-5cea6206a44f,1,0,27a9ef3c-902c-49e3-ab84-ba51185ab111,27a9ef3c-902c-49e3-ab84-ba51185ab111,1,0,20ba43f5-348f-41e4-b365-ff9485a3951d,20ba43f5-348f-41e4-b365-ff9485a3951d,1,0,2f6bc78d-d2ed-491f-bc66-3f95e2ca574c,2f6bc78d-d2ed-491f-bc66-3f95e2ca574c,1,0,bf3e3395-3e41-49c2-b59e-fdcdc3ef956f,bf3e3395-3e41-49c2-b59e-fdcdc3ef956f,1,0,164db402-4516-4d99-80d2-6cb7b6fd7698,164db402-4516-4d99-80d2-6cb7b6fd7698,1,0,93b18f0a-7aa1-42db-809b-1e543cda57de,93b18f0a-7aa1-42db-809b-1e543cda57de,1,0,a8e04267-5a28-40af-8d45-e65375cd8273,a8e04267-5a28-40af-8d45-e65375cd8273,1,0,6a947b2d-3e6b-42c8-a9fd-4c5a71d600a9,6a947b2d-3e6b-42c8-a9fd-4c5a71d600a9,1,0,ae641a80-4ada-4592-ace9-29a82e6700e4,ae641a80-4ada-4592-ace9-29a82e6700e4,1,0,c6bf0d10-5406-44e8-b3f3-74b7db2b71e6,c6bf0d10-5406-44e8-b3f3-74b7db2b71e6,1,0,8d653af4-ac00-4ca9-a9e6-4e1a888c6dfb,8d653af4-ac00-4ca9-a9e6-4e1a888c6dfb,1,0,703453e8-cb49-491b-8e19-a17b89894d1e,703453e8-cb49-491b-8e19-a17b89894d1e,1,0,f0b0608c-178f-4dea-b461-0d8f00d79d30,f0b0608c-178f-4dea-b461-0d8f00d79d30,1,0,ed2dba0c-7fe3-4d24-b6a6-b104beadc286,ed2dba0c-7fe3-4d24-b6a6-b104beadc286,1,0,a4c98768-c9fc-4f95-b89b-bb1cb0e8fade,a4c98768-c9fc-4f95-b89b-bb1cb0e8fade,1,0,5546b9a9-a4fe-4a2b-9492-883bcb37a210,5546b9a9-a4fe-4a2b-9492-883bcb37a210,1,0,6fb76c5f-844f-4cbc-ae7c-4ac834fddfc9,6fb76c5f-844f-4cbc-ae7c-4ac834fddfc9,1,0,275a5772-8428-497a-81ef-c919f15fcccd,275a5772-8428-497a-81ef-c919f15fcccd,1,0,8df6e7e6-2a1e-4cf3-bdc9-60e52ea3f625,8df6e7e6-2a1e-4cf3-bdc9-60e52ea3f625,1,0,b5278cbd-1771-4739-9013-a28682689778,b5278cbd-1771-4739-9013-a28682689778,1,0,a52f2de4-f414-4837-9b1a-6d8f282e1327,a52f2de4-f414-4837-9b1a-6d8f282e1327,1,0,82573440-0ef5-4c07-bb1e-fe90295981d2,82573440-0ef5-4c07-bb1e-fe90295981d2,1,0,804be484-09cf-45a4-bd1f-c8850067e2b2,804be484-09cf-45a4-bd1f-c8850067e2b2,1,0,f1a145ce-a199-475c-ab8a-065c11a27277,f1a145ce-a199-475c-ab8a-065c11a27277,1,0,8d509c4e-fcea-4ccd-aec4-e146f2d4319b,8d509c4e-fcea-4ccd-aec4-e146f2d4319b,1,0,d126a11e-c770-4309-941f-cbcdd5cbad5d,d126a11e-c770-4309-941f-cbcdd5cbad5d,1,0,f4d88096-bff9-416a-8f75-9143ede1213f,f4d88096-bff9-416a-8f75-9143ede1213f,1,0,6b0721fe-d27f-4d1a-b377-26fce2ed1687,6b0721fe-d27f-4d1a-b377-26fce2ed1687,1,0,25c97480-330c-42f2-a2a5-031062a3a683,25c97480-330c-42f2-a2a5-031062a3a683,1,0,a2fb1bf9-d29a-4bfe-95f1-10883fa019b3,a2fb1bf9-d29a-4bfe-95f1-10883fa019b3,1,0,6adc3aa8-8784-467d-8e12-b60418a5c729,6adc3aa8-8784-467d-8e12-b60418a5c729,1,0,265206ed-4d41-497e-a483-c14052134500,265206ed-4d41-497e-a483-c14052134500,1,0,bf070420-9eb7-4372-96a6-b0d00ac3ce8c,bf070420-9eb7-4372-96a6-b0d00ac3ce8c,1,0,10336352-f3a1-4bc3-bdec-1a2eef15f176,10336352-f3a1-4bc3-bdec-1a2eef15f176,1,0,cacabf2f-6d1c-4c33-80c7-c27a5e757cc9,cacabf2f-6d1c-4c33-80c7-c27a5e757cc9,1,0,3b7c713e-81ae-4adc-9519-99c936599ef7,3b7c713e-81ae-4adc-9519-99c936599ef7,1,0,1c8ffbbd-035c-45cf-8ec8-dc5d26d7f673,1c8ffbbd-035c-45cf-8ec8-dc5d26d7f673,1,0,ecda2c4b-6411-4b47-ab59-1918bad5acdd,ecda2c4b-6411-4b47-ab59-1918bad5acdd,1,0,a9a05a66-0a1c-4e53-9d09-1abe8f45e354,a9a05a66-0a1c-4e53-9d09-1abe8f45e354,1,0,2c811ee8-f50d-4c39-82ee-0492feb1c431,2c811ee8-f50d-4c39-82ee-0492feb1c431,1,0,399f679b-f48a-4d4e-b890-5eab9e4598c3,399f679b-f48a-4d4e-b890-5eab9e4598c3,1,0,da9ca4c4-c291-4f8b-accd-bc1b123ed4f8,da9ca4c4-c291-4f8b-accd-bc1b123ed4f8,1,0,9ad1ea04-1aee-4a80-b4df-60526cdf3ad0,9ad1ea04-1aee-4a80-b4df-60526cdf3ad0,1,0,b65954b9-39f9-4f7c-8af2-939af0694368,b65954b9-39f9-4f7c-8af2-939af0694368,1,0,3a984dac-c971-42c3-9736-a45c46b55f01,3a984dac-c971-42c3-9736-a45c46b55f01,1,0,edaa4ad4-4dd9-4225-85e8-b0d74d167985,edaa4ad4-4dd9-4225-85e8-b0d74d167985,1,0,c060feda-b1ec-4db3-b16e-d19b36833a2c,c060feda-b1ec-4db3-b16e-d19b36833a2c,1,0,2116217b-1660-499f-953d-f685738b0f30,2116217b-1660-499f-953d-f685738b0f30,1,0,45b46613-13cc-4888-9bb7-53780402206f,45b46613-13cc-4888-9bb7-53780402206f,1,0,5c224274-5495-49bc-b124-e6d649b09d57,5c224274-5495-49bc-b124-e6d649b09d57,1,0,0a92df3d-fb51-4fba-938c-55846929bd5f,0a92df3d-fb51-4fba-938c-55846929bd5f,1,0,1d005a8d-aaac-4442-a7dc-12634d03f6f3,1d005a8d-aaac-4442-a7dc-12634d03f6f3,1,0,348d0ad2-f64e-4ea0-8b8e-11bbc10926f7,348d0ad2-f64e-4ea0-8b8e-11bbc10926f7,1,0,7f7eb00d-7a38-4025-8853-9d1cf2dab1e3,7f7eb00d-7a38-4025-8853-9d1cf2dab1e3,1,0,36221881-a9c8-4b91-acac-44f7c065c05a,36221881-a9c8-4b91-acac-44f7c065c05a,1,0,3fdcf013-38e0-4a30-9ae8-19100e6704ba,3fdcf013-38e0-4a30-9ae8-19100e6704ba,1,0,876e31ff-ab7b-4ea4-b491-161963727dd1,876e31ff-ab7b-4ea4-b491-161963727dd1,1,0,bb43995b-68b4-41a1-8458-e10a2d8925f1,bb43995b-68b4-41a1-8458-e10a2d8925f1,1,0,61730dd9-fed7-43ce-8f38-724cac8f3d08,61730dd9-fed7-43ce-8f38-724cac8f3d08,1,0,b6424caf-3db8-4cfe-b92d-7435c23606a5,b6424caf-3db8-4cfe-b92d-7435c23606a5,1,0,e6a494b8-27e7-46a6-9435-7be6e150a69e,e6a494b8-27e7-46a6-9435-7be6e150a69e,1,0,133dc852-59d3-4351-934d-8845f8a38431,133dc852-59d3-4351-934d-8845f8a38431,1,0,55dbaaf1-554d-46e2-b42a-ce6a8bf20dfb,55dbaaf1-554d-46e2-b42a-ce6a8bf20dfb,1,0,b67914a8-d483-4bed-bd4d-a4aadd4998a4,b67914a8-d483-4bed-bd4d-a4aadd4998a4,1,0,707a8a49-fec5-454c-9e80-c3da829d395c,707a8a49-fec5-454c-9e80-c3da829d395c,1,0,b5ea4aff-11be-4232-94a2-cb92801b6c49,b5ea4aff-11be-4232-94a2-cb92801b6c49,1,0,6f630213-c16c-421c-a160-09e3c729ab26,6f630213-c16c-421c-a160-09e3c729ab26,1,0,878c638c-7c84-4914-896a-d4fdf0d759ef,878c638c-7c84-4914-896a-d4fdf0d759ef,1,0,6065653e-b7a9-4033-9617-f64430c57d89,6065653e-b7a9-4033-9617-f64430c57d89,1,0,9ec63da6-1f53-417f-9c7d-6879eaa56a7e,9ec63da6-1f53-417f-9c7d-6879eaa56a7e,1,0,00d1d85b-c258-4f10-9d13-a99375a29fc1,00d1d85b-c258-4f10-9d13-a99375a29fc1,1,0,f6d79449-eca9-4d13-9ddc-8b36ae9e729e,f6d79449-eca9-4d13-9ddc-8b36ae9e729e,1,0,b9d56dc6-3a10-4795-9ca3-dbf69310813e,b9d56dc6-3a10-4795-9ca3-dbf69310813e,1,0,f4b53ce1-8c1b-4f57-b5de-acb4692a37d8,f4b53ce1-8c1b-4f57-b5de-acb4692a37d8,1,0,9b18e04f-036d-43ae-b949-9432f96d71d9,9b18e04f-036d-43ae-b949-9432f96d71d9,1,0,e99a1f54-4001-45ee-81e3-472656c05f57,e99a1f54-4001-45ee-81e3-472656c05f57,1,0,b104e7b9-8a41-4154-a84b-d1bb12fab939,b104e7b9-8a41-4154-a84b-d1bb12fab939,1,0,86b835c4-341e-4b0d-99e5-2369684ff3f4,86b835c4-341e-4b0d-99e5-2369684ff3f4,1,0,55c48fa8-8d12-4378-97a0-c0ed683f6b83,55c48fa8-8d12-4378-97a0-c0ed683f6b83,1,0,b0f74a92-f5e4-4859-9a72-643ddb5315cb,b0f74a92-f5e4-4859-9a72-643ddb5315cb,1,0,1864093d-62ac-4b12-ad16-c460432c99f6,1864093d-62ac-4b12-ad16-c460432c99f6,1,0,6eb78c87-24ed-43a8-800d-ccde02358b32,6eb78c87-24ed-43a8-800d-ccde02358b32,1,0,787d5fec-c476-4519-884b-f62492fc8396,787d5fec-c476-4519-884b-f62492fc8396,1,0,59ebd5fb-d782-46ea-b693-7885d2ababa8,59ebd5fb-d782-46ea-b693-7885d2ababa8,1,0,39a39567-43d8-47c5-9f17-0a11f31e129a,39a39567-43d8-47c5-9f17-0a11f31e129a,1,0,b24e8ff0-eb86-4ce6-84f5-49134b48f031,b24e8ff0-eb86-4ce6-84f5-49134b48f031,1,0,52ab6aea-e6a0-43f0-9cc8-f7c9126635cc,52ab6aea-e6a0-43f0-9cc8-f7c9126635cc,1,0,e983f539-e369-491e-9cee-510518187870,e983f539-e369-491e-9cee-510518187870,1,0,876b23bf-2f48-4916-ad0f-4de8306e1864,876b23bf-2f48-4916-ad0f-4de8306e1864,1,0,9a402a9c-a31f-4082-91d5-b4fe7576a5c2,9a402a9c-a31f-4082-91d5-b4fe7576a5c2,1,0,e7c63a25-c804-4bc4-a6f1-81009dd889e2,e7c63a25-c804-4bc4-a6f1-81009dd889e2,1,0,e99a1b17-0e37-489a-bc39-3dd2e23b0861,e99a1b17-0e37-489a-bc39-3dd2e23b0861,1,0,7ccd86cd-4294-4f6c-84f4-98e25e479f4d,7ccd86cd-4294-4f6c-84f4-98e25e479f4d,1,0,4c1576c4-b327-4ec1-87bc-662c5aba343b,4c1576c4-b327-4ec1-87bc-662c5aba343b,1,0,70e710c5-42df-465f-a9c5-8345c87e1f19,70e710c5-42df-465f-a9c5-8345c87e1f19,1,0,0f694ef1-4a97-4aed-ab4b-0b2c18ea7e17,0f694ef1-4a97-4aed-ab4b-0b2c18ea7e17,1,0,14facdfb-9835-4bb6-98a8-5a6ca9a5d2f8,14facdfb-9835-4bb6-98a8-5a6ca9a5d2f8,1,0,4492ac73-eb91-41f8-98f1-54c2b3ad212a,4492ac73-eb91-41f8-98f1-54c2b3ad212a,1,0,869b43fb-968f-4fe0-b945-5030c90a38f2,869b43fb-968f-4fe0-b945-5030c90a38f2,1,0,af071a52-212b-4131-98e6-81f6048a70e6,af071a52-212b-4131-98e6-81f6048a70e6,1,0,37210dde-9a2f-475c-8341-578ac99f0e17,37210dde-9a2f-475c-8341-578ac99f0e17,1,0,e5094d4f-ee61-4142-a97b-d96172350f65,e5094d4f-ee61-4142-a97b-d96172350f65,1,0,3a8fffb6-a732-440c-afb9-d1c699ea53b6,3a8fffb6-a732-440c-afb9-d1c699ea53b6,1,0,b0650787-8ff5-4407-b491-bcdc2f61fd58,b0650787-8ff5-4407-b491-bcdc2f61fd58,1,0,33dd6bba-0044-4e2f-ae9e-c8a26079ab2a,33dd6bba-0044-4e2f-ae9e-c8a26079ab2a,1,0,3f289f67-dfc7-4f2d-90e4-b47aff76ecdb,3f289f67-dfc7-4f2d-90e4-b47aff76ecdb,1,0,9aadad98-69f5-41ce-ad1c-0afd8c610d86,9aadad98-69f5-41ce-ad1c-0afd8c610d86,1,0,706a3db0-9d4f-4c08-91cd-3ccaa6d06d3b,706a3db0-9d4f-4c08-91cd-3ccaa6d06d3b,1,0,3d662173-e19d-4077-9a08-8c8899226e24,3d662173-e19d-4077-9a08-8c8899226e24,1,0,69fd1e6e-7302-4ca8-8419-ec567ae66bef,69fd1e6e-7302-4ca8-8419-ec567ae66bef,1,0,0eee931a-57bb-4844-8e6e-eaca342640a0,0eee931a-57bb-4844-8e6e-eaca342640a0,1,0,20c57e30-5856-4801-9e77-8006471d89f8,20c57e30-5856-4801-9e77-8006471d89f8,1,0,64eff9f4-c57b-40a0-bd83-7e371fd010ce,64eff9f4-c57b-40a0-bd83-7e371fd010ce,1,0,4a3fe393-8aea-4394-8c10-a234f1f191ad,4a3fe393-8aea-4394-8c10-a234f1f191ad,1,0,6f9a3d00-d935-4fa6-9fd2-14700226daff,6f9a3d00-d935-4fa6-9fd2-14700226daff,1,0,d792831c-698d-40c6-96c2-dd0ae6f30707,d792831c-698d-40c6-96c2-dd0ae6f30707,1,0,a1d91c5f-1acd-4b46-887e-d06e7260dd20,a1d91c5f-1acd-4b46-887e-d06e7260dd20,1,0,3fd26019-c464-4c73-b18e-0888740b1747,3fd26019-c464-4c73-b18e-0888740b1747,1,0,1c2103d3-3feb-4412-98c4-c731f22eef2b,1c2103d3-3feb-4412-98c4-c731f22eef2b,1,0,569bb515-cec2-4da0-80f0-34dae50206e0,569bb515-cec2-4da0-80f0-34dae50206e0,1,0,a21989bd-a57f-4969-be3b-d8b39ead4145,a21989bd-a57f-4969-be3b-d8b39ead4145,1,0,c4aee120-cdbb-4b48-a1c7-99cccbafb120,c4aee120-cdbb-4b48-a1c7-99cccbafb120,1,0,6b3e07d5-9299-4933-b3fa-c3cc5f5aa7c9,6b3e07d5-9299-4933-b3fa-c3cc5f5aa7c9,1,0,a3667b25-7c18-446d-a318-685a4fe4bf89,a3667b25-7c18-446d-a318-685a4fe4bf89,1,0,fd271670-bde6-4351-abec-eb82548c6c98,fd271670-bde6-4351-abec-eb82548c6c98,1,0,498b012b-bb63-490e-8100-1d33dc84b400,498b012b-bb63-490e-8100-1d33dc84b400,1,0,8103f12c-ed50-4052-8117-33b6d11ef620,8103f12c-ed50-4052-8117-33b6d11ef620,1,0,4f8653e4-3f58-4bad-8ded-424fe7b1d18a,4f8653e4-3f58-4bad-8ded-424fe7b1d18a,1,0,799b3dda-fbfc-4dea-a577-30321e64f4d5,799b3dda-fbfc-4dea-a577-30321e64f4d5,1,0,7c7857b6-90e8-4b3f-9902-fd81bf68d133,7c7857b6-90e8-4b3f-9902-fd81bf68d133,1,0,617de19c-bf01-4900-832a-c169e9faeb79,617de19c-bf01-4900-832a-c169e9faeb79,1,0,70b73fd0-f5dc-411e-9bbb-10a538e8281b,70b73fd0-f5dc-411e-9bbb-10a538e8281b,1,0,758f44ad-54da-4f72-accf-0afecc4f4827,758f44ad-54da-4f72-accf-0afecc4f4827,1,0,05ee4a7c-63e6-4587-8be7-e206345e3471,05ee4a7c-63e6-4587-8be7-e206345e3471,1,0,98d5e98b-0382-4b28-a5d9-24392925664a,98d5e98b-0382-4b28-a5d9-24392925664a,1,0,7c424a77-2a83-4a85-8b7d-e8bb6d013c77,7c424a77-2a83-4a85-8b7d-e8bb6d013c77,1,0,2a77eb39-0487-4fb0-8d5b-d4a27592ea60,2a77eb39-0487-4fb0-8d5b-d4a27592ea60,1,0,19a18193-c5d3-4e56-86c5-5a81c525e9ad,19a18193-c5d3-4e56-86c5-5a81c525e9ad,1,0,c208fcc0-d7b2-435b-963a-e18c97727f8f,c208fcc0-d7b2-435b-963a-e18c97727f8f,1,0,ac5db038-8bc3-45ff-9e8d-04ea9fef6d43,ac5db038-8bc3-45ff-9e8d-04ea9fef6d43,1,0,bf11f7b1-6332-4499-ba48-b94bc10ef869,bf11f7b1-6332-4499-ba48-b94bc10ef869,1,0,4de445f0-7c27-4540-a5a8-9c3ca2a13fd2,4de445f0-7c27-4540-a5a8-9c3ca2a13fd2,1,0,2977fedd-2c56-4d21-8eb1-a424e1b17cb3,2977fedd-2c56-4d21-8eb1-a424e1b17cb3,1,0,0b8a2936-07c5-4b90-80e6-5a058e546de6,0b8a2936-07c5-4b90-80e6-5a058e546de6,1,0,34524248-668e-48e5-a801-f489cd664de8,34524248-668e-48e5-a801-f489cd664de8,1,0,ae0891ae-ecd2-4072-8d2b-0556030c9dfd,ae0891ae-ecd2-4072-8d2b-0556030c9dfd,1,0,e8f36bca-738b-471c-b8d3-8a484978934a,e8f36bca-738b-471c-b8d3-8a484978934a,1,0,336cb96e-8867-4c9d-b74c-b4287ac9212a,336cb96e-8867-4c9d-b74c-b4287ac9212a,1,0,fc7dbc20-7bef-4cbc-9b32-5d86cef5532c,fc7dbc20-7bef-4cbc-9b32-5d86cef5532c,1,0,29f616a6-b914-4ffb-8a86-1ae17089e2f7,29f616a6-b914-4ffb-8a86-1ae17089e2f7,1,0,c50075b0-e8e2-4a6c-92ef-05882aa3cfea,c50075b0-e8e2-4a6c-92ef-05882aa3cfea,1,0,5a1058fc-35f6-43c2-95e5-ae678e19e7d6,5a1058fc-35f6-43c2-95e5-ae678e19e7d6,1,0,05c27c89-2c26-4252-842d-9aa43ba0ea2f,05c27c89-2c26-4252-842d-9aa43ba0ea2f,1,0,7c1e16c2-201d-4a3f-b0f4-9d66f5f8a68b,7c1e16c2-201d-4a3f-b0f4-9d66f5f8a68b,1,0,f092729c-6b5d-4709-8b28-15e06129731d,f092729c-6b5d-4709-8b28-15e06129731d,1,0,c03be2f7-d681-417d-975a-5c8c7b716659,c03be2f7-d681-417d-975a-5c8c7b716659,1,0,fca7af5f-bdc0-4264-be68-5e5e38545368,fca7af5f-bdc0-4264-be68-5e5e38545368,1,0,a3fc0bce-a87e-4c15-b57b-f285a694bcdf,a3fc0bce-a87e-4c15-b57b-f285a694bcdf,1,0,ae124745-edfb-11e6-4681-a8667f21fde4,ae124745-edfb-11e6-4681-a8667f21fde4,1,0,f6fcf9c2-edfb-11e6-4681-a8667f21fde4,f6fcf9c2-edfb-11e6-4681-a8667f21fde4,1,0,ec70cf10-edfb-11e6-4681-a8667f21fde4,ec70cf10-edfb-11e6-4681-a8667f21fde4,1,0,7c47f039-1ca9-4c6f-ac36-f4cb59b48b65,7c47f039-1ca9-4c6f-ac36-f4cb59b48b65,1,0,0b7cee9b-3870-49f5-a58e-063cf5353467,0b7cee9b-3870-49f5-a58e-063cf5353467,1,0,d392a791-af74-40c9-ab20-6ed6aeabe864,d392a791-af74-40c9-ab20-6ed6aeabe864,1,0,974d2430-1ff6-4be9-a5aa-aa896e9a66d4,974d2430-1ff6-4be9-a5aa-aa896e9a66d4,1,0,1612570d-b069-405a-9dd3-80b8175fb468,1612570d-b069-405a-9dd3-80b8175fb468,1,0,bea50ff1-49e9-4a2d-beed-8a8594bd57ff,bea50ff1-49e9-4a2d-beed-8a8594bd57ff,1,0,3c429fe8-e663-4a58-817f-8f8382697dbb,3c429fe8-e663-4a58-817f-8f8382697dbb,1,0,c37be0c3-d2db-4e63-a8cb-7956a5396650,c37be0c3-d2db-4e63-a8cb-7956a5396650,1,0,83180e0d-fc4b-41ec-9a17-5af555a4776f,83180e0d-fc4b-41ec-9a17-5af555a4776f,1,0,27c52afc-7127-41e1-af8a-1b1bd2c9bfa8,27c52afc-7127-41e1-af8a-1b1bd2c9bfa8,1,0,7f68e4c1-c4f7-4c6c-8f0a-225e544e07ee,7f68e4c1-c4f7-4c6c-8f0a-225e544e07ee,1,0,561ed574-617d-4a46-b32b-f022e07846c8,561ed574-617d-4a46-b32b-f022e07846c8,1,0,cba706bf-a9a7-4dda-9c5a-a26e85119396,cba706bf-a9a7-4dda-9c5a-a26e85119396,1,0,159a4eb5-00cd-426c-86e3-09cd3f569f22,159a4eb5-00cd-426c-86e3-09cd3f569f22,1,0,f03cdb56-ef3f-461f-91b1-cdcaed2786e8,f03cdb56-ef3f-461f-91b1-cdcaed2786e8,1,0,3e8c6546-416c-4437-8c85-2cf591b4fc3f,3e8c6546-416c-4437-8c85-2cf591b4fc3f,1,0,038e5027-3cc5-4ea2-b0b5-28a7544ad53e,038e5027-3cc5-4ea2-b0b5-28a7544ad53e,1,0,9a0b27db-e4ac-496b-b6de-876b90381527,9a0b27db-e4ac-496b-b6de-876b90381527,1,0,2ded5135-b6c3-46dd-b563-7b6fab986d23,2ded5135-b6c3-46dd-b563-7b6fab986d23,1,0,14215720-ccb3-4e5a-8345-cd42c96a3e77,14215720-ccb3-4e5a-8345-cd42c96a3e77,1,0,24fa0604-b6a5-49ad-9d03-b2cf8e81dad8,24fa0604-b6a5-49ad-9d03-b2cf8e81dad8,1,0,0690a5c7-bc25-4101-afa5-69c095d415c2,0690a5c7-bc25-4101-afa5-69c095d415c2,1,0,2ad7b509-4cd1-456a-a6ae-94649fdf8c3e,2ad7b509-4cd1-456a-a6ae-94649fdf8c3e,1,0,79013bba-a0f2-481c-a63e-095a54ee52aa,79013bba-a0f2-481c-a63e-095a54ee52aa,1,0,8523c346-f144-41b8-a702-2d588e7097c2,8523c346-f144-41b8-a702-2d588e7097c2,1,0,93969a30-d9d7-4f2f-85fa-57a4eb7495bf,93969a30-d9d7-4f2f-85fa-57a4eb7495bf,1,0,9fb73c9b-05de-4474-8a28-7e3fd5b2b143,9fb73c9b-05de-4474-8a28-7e3fd5b2b143,1,0,fa2bd6a6-bb46-4e21-8684-248578310164,fa2bd6a6-bb46-4e21-8684-248578310164,1,0,f7cf3b42-39c0-48db-b8ca-fe9ea267a45a,f7cf3b42-39c0-48db-b8ca-fe9ea267a45a,1,0,3a0c06eb-f6d5-46c3-b0b9-c8d98e572093,3a0c06eb-f6d5-46c3-b0b9-c8d98e572093,1,0,88ccac36-169d-48f8-bc68-15e3bb775b79,88ccac36-169d-48f8-bc68-15e3bb775b79,1,0,a1640988-bd60-43b3-86f1-184b9db275c6,a1640988-bd60-43b3-86f1-184b9db275c6,1,0,300a02f7-8062-4843-b11e-0321f8b40f4d,300a02f7-8062-4843-b11e-0321f8b40f4d,1,0,c8015ae6-31a7-49f4-a9e6-5d13774f64e5,c8015ae6-31a7-49f4-a9e6-5d13774f64e5,1,0,970430c4-37fc-476c-a3f6-5f6bebd2e663,970430c4-37fc-476c-a3f6-5f6bebd2e663,1,0,4cddde4a-42d5-44d0-a693-ea90eab9b169,4cddde4a-42d5-44d0-a693-ea90eab9b169,1,0,d9d612bb-6d04-4186-b243-f99aded0ba43,d9d612bb-6d04-4186-b243-f99aded0ba43,1,0,15db8b7b-59f5-4551-b2bd-b24801f056b5,15db8b7b-59f5-4551-b2bd-b24801f056b5,1,0,88d2236b-794b-485a-b075-f1a54cadcd3a,88d2236b-794b-485a-b075-f1a54cadcd3a,1,0,b7f9553f-6219-4401-a6f4-9debd47186d2,b7f9553f-6219-4401-a6f4-9debd47186d2,1,0,26a7e044-a583-40af-9daa-5aea628c8f19,26a7e044-a583-40af-9daa-5aea628c8f19,1,0,548717ca-0645-49b4-9580-c77cd4d03ebb,548717ca-0645-49b4-9580-c77cd4d03ebb,1,0,29c337bd-9811-4fce-91bb-20c253d2d14a,29c337bd-9811-4fce-91bb-20c253d2d14a,1,0,b451f2fc-ced2-418a-a803-4fe99488b394,b451f2fc-ced2-418a-a803-4fe99488b394,1,0,62269222-67a7-489e-ba59-4294902275bc,62269222-67a7-489e-ba59-4294902275bc,1,0,fed1b714-a2c9-42cf-9ced-35ed895e4167,fed1b714-a2c9-42cf-9ced-35ed895e4167,1,0,6f334263-10c8-4187-9a84-d2fd1afadc48,6f334263-10c8-4187-9a84-d2fd1afadc48,1,0,f5674a0d-a106-4cc0-a402-b378280eab3d,f5674a0d-a106-4cc0-a402-b378280eab3d,1,0,9a68a81b-c6bd-4353-baf4-da8a21f98fb9,9a68a81b-c6bd-4353-baf4-da8a21f98fb9,1,0,8db2b1d8-c415-4846-bd1a-9fec1b105ff0,8db2b1d8-c415-4846-bd1a-9fec1b105ff0,1,0,3ed20a3b-031c-4f2b-a66a-14cceed80407,3ed20a3b-031c-4f2b-a66a-14cceed80407,1,0,3831a5d8-12d5-4730-ac2e-e11f084dc684,3831a5d8-12d5-4730-ac2e-e11f084dc684,1,0,b6dce793-c652-48de-b2da-1dc3e89e1521,b6dce793-c652-48de-b2da-1dc3e89e1521,1,0,41990cad-a43e-46fd-b9bc-e8acc1d6e937,41990cad-a43e-46fd-b9bc-e8acc1d6e937,1,0,3bcce139-d42e-45c2-ace8-28aa34e01a38,3bcce139-d42e-45c2-ace8-28aa34e01a38,1,0,2e6a596c-c203-48b3-af11-bf0aef0f70a1,2e6a596c-c203-48b3-af11-bf0aef0f70a1,1,0,82eb7d08-12ad-42a2-9257-91b93f7cc890,82eb7d08-12ad-42a2-9257-91b93f7cc890,1,0,50754c7d-9c8a-497c-a4c8-76d7400b3412,50754c7d-9c8a-497c-a4c8-76d7400b3412,1,0,193f2d79-83a7-4044-89c6-0b5d7c7cf80a,193f2d79-83a7-4044-89c6-0b5d7c7cf80a,1,0,93070fc1-4204-43b7-b8eb-1bf905f5fa3f,93070fc1-4204-43b7-b8eb-1bf905f5fa3f,1,0,d29ba846-bc42-4364-b69d-4b56532920e0,d29ba846-bc42-4364-b69d-4b56532920e0,1,0,83239cd4-50cb-4281-8be3-fd89e410c15c,83239cd4-50cb-4281-8be3-fd89e410c15c,1,0,fa99302b-3e86-4330-b9ff-c38d933f81f0,fa99302b-3e86-4330-b9ff-c38d933f81f0,1,0,fb9c08ee-92e9-4bd9-8794-ef0f221eee99,fb9c08ee-92e9-4bd9-8794-ef0f221eee99,1,0,e4cd44e6-1255-490f-96d9-f805ac92cf67,e4cd44e6-1255-490f-96d9-f805ac92cf67,1,0,8ae9be37-cda5-4b66-8a97-5e77d2a2c75f,8ae9be37-cda5-4b66-8a97-5e77d2a2c75f,1,0,5a9011fc-c023-47fb-a999-2c6ca33a04b9,5a9011fc-c023-47fb-a999-2c6ca33a04b9,1,0,ab574fa5-0730-4456-b741-111e5ea8a896,ab574fa5-0730-4456-b741-111e5ea8a896,1,0,b8d5adf0-dc2f-4041-bc97-cb2442f00054,b8d5adf0-dc2f-4041-bc97-cb2442f00054,1,0,398199c4-4830-48e9-89c5-45c2c5a30ee6,398199c4-4830-48e9-89c5-45c2c5a30ee6,1,0,546ba3bb-4614-423f-954c-466530f42784,546ba3bb-4614-423f-954c-466530f42784,1,0,e5bc54f0-d7d0-471c-adda-a0e73e0dd3cf,e5bc54f0-d7d0-471c-adda-a0e73e0dd3cf,1,0,af447f33-ef41-4eda-96ec-5bac26fff33e,af447f33-ef41-4eda-96ec-5bac26fff33e,1,0,f0c83fc5-6e9a-4185-ab43-2b419ace7909,f0c83fc5-6e9a-4185-ab43-2b419ace7909,1,0,4bd15718-6a0e-4a86-921a-09d38ba4be4c,4bd15718-6a0e-4a86-921a-09d38ba4be4c,1,0,32586ba6-8922-4321-b134-70d1b77a16a4,32586ba6-8922-4321-b134-70d1b77a16a4,1,0,a21cf522-d657-49ba-a198-01ff1de5e3f0,a21cf522-d657-49ba-a198-01ff1de5e3f0,1,0,4dc698da-8471-4b3f-816d-f1467cd2e5f1,4dc698da-8471-4b3f-816d-f1467cd2e5f1,1,0,7ceb2f18-4dae-4b13-a5be-e949be165b4e,7ceb2f18-4dae-4b13-a5be-e949be165b4e,1,0,c4f94f6d-e33f-4226-bf47-c4b544098082,c4f94f6d-e33f-4226-bf47-c4b544098082,1,0,0abca5b8-4974-48aa-bf5d-dbbe2c2ea0e6,0abca5b8-4974-48aa-bf5d-dbbe2c2ea0e6,1,0,fc67b510-3fb4-4305-92d2-c252bc718f03,fc67b510-3fb4-4305-92d2-c252bc718f03,1,0,ed98a7b2-ad31-401f-a65e-dfbcc8e5a4a8,ed98a7b2-ad31-401f-a65e-dfbcc8e5a4a8,1,0,9a5e3d2c-ab69-4f9d-a56f-20bb5f0be1e2,9a5e3d2c-ab69-4f9d-a56f-20bb5f0be1e2,1,0,cf1f7915-94ad-47e7-8676-73271d0cf71e,cf1f7915-94ad-47e7-8676-73271d0cf71e,1,0,fceb6e4a-bd51-4193-a542-70d2317af669,fceb6e4a-bd51-4193-a542-70d2317af669,1,0,f9f991a6-ddf3-4953-8a1f-e6c0e1a7f4e9,f9f991a6-ddf3-4953-8a1f-e6c0e1a7f4e9,1,0,80847d57-1795-46c7-a106-926e1f43ac1e,80847d57-1795-46c7-a106-926e1f43ac1e,1,0,38685415-dc87-48b4-8cc4-f85b438f2ec2,38685415-dc87-48b4-8cc4-f85b438f2ec2,1,0,110eff8b-aeec-4ba5-b710-fefc1bd60284,110eff8b-aeec-4ba5-b710-fefc1bd60284,1,0,0a8a6bb9-8b6a-43cf-9d46-b18a8a9591d8,0a8a6bb9-8b6a-43cf-9d46-b18a8a9591d8,1,0,75eca481-002b-4046-898d-dfac9357611f,75eca481-002b-4046-898d-dfac9357611f,1,0,5d81af5c-3133-4e21-9ea4-ffe3d3ca9769,5d81af5c-3133-4e21-9ea4-ffe3d3ca9769,1,0,0f83d532-f675-4aea-802e-d640cc53e4a9,0f83d532-f675-4aea-802e-d640cc53e4a9,1,0,75b0d16b-4acd-4870-8e9d-f2764171e747,75b0d16b-4acd-4870-8e9d-f2764171e747,1,0,8f2cd606-d326-4c92-bfff-e5ec8b5057b5,8f2cd606-d326-4c92-bfff-e5ec8b5057b5,1,0,ed56abb2-66c6-412e-bead-9b23c59bd49a,ed56abb2-66c6-412e-bead-9b23c59bd49a,1,0,47ad737d-c9d3-4d4d-8d4d-b550412062c4,47ad737d-c9d3-4d4d-8d4d-b550412062c4,1,0,204f67e9-204d-47b6-afdd-8e880b7563bc,204f67e9-204d-47b6-afdd-8e880b7563bc,1,0,4da10de3-d999-4acd-bf5a-b1c60cf01b32,4da10de3-d999-4acd-bf5a-b1c60cf01b32,1,0,5e52263e-856f-43da-96ca-d4f06127f604,5e52263e-856f-43da-96ca-d4f06127f604,1,0,ab6f18fe-4ce4-4ecb-945b-bf71ef793549,ab6f18fe-4ce4-4ecb-945b-bf71ef793549,1,0,57904a00-a127-4add-a9fb-639e17c80e33,57904a00-a127-4add-a9fb-639e17c80e33,1,0,2f2f70b7-8f78-4eee-acb7-fe103827e88a,2f2f70b7-8f78-4eee-acb7-fe103827e88a,1,0,f6e8a922-c28b-49b2-ace5-0c812946270d,f6e8a922-c28b-49b2-ace5-0c812946270d,1,0,3d9d472e-a914-4f76-b087-19d4cfe19c19,3d9d472e-a914-4f76-b087-19d4cfe19c19,1,0,81225721-7e65-451d-9175-76fddc50f0c4,81225721-7e65-451d-9175-76fddc50f0c4,1,0,4a6bfd2c-0690-4504-9952-10e7c31156e9,4a6bfd2c-0690-4504-9952-10e7c31156e9,1,0,8f2dfd13-5e16-4fdd-be02-033d27b43317,8f2dfd13-5e16-4fdd-be02-033d27b43317,1,0,2c3849f2-46cc-4350-a6c5-f5587af2c699,2c3849f2-46cc-4350-a6c5-f5587af2c699,1,0,0110decc-d06e-43cf-9d01-30d412edcdd7,0110decc-d06e-43cf-9d01-30d412edcdd7,1,0,3ea32a24-d37b-4fad-937a-9d1357d649a9,3ea32a24-d37b-4fad-937a-9d1357d649a9,1,0,2856ee9a-0fea-4684-b7b8-4844773eae07,2856ee9a-0fea-4684-b7b8-4844773eae07,1,0,84e09840-8d67-416f-87a2-7f03c04180c9,84e09840-8d67-416f-87a2-7f03c04180c9,1,0,0388f22d-f91d-45c9-a8ae-900a24cbfe67,0388f22d-f91d-45c9-a8ae-900a24cbfe67,1,0,60fa2562-4914-46d6-a00a-1bb6e2803263,60fa2562-4914-46d6-a00a-1bb6e2803263,1,0,0d61a8d4-2dc8-435e-a238-416d7640576f,0d61a8d4-2dc8-435e-a238-416d7640576f,1,0,5ea899d4-e076-4a1c-838c-e369abc4705f,5ea899d4-e076-4a1c-838c-e369abc4705f,1,0,f2bf5f4a-e53b-4300-bbc7-97ac2e06f3c2,f2bf5f4a-e53b-4300-bbc7-97ac2e06f3c2,1,0,ab2e75f0-8da7-4b38-8f30-537424b719db,ab2e75f0-8da7-4b38-8f30-537424b719db,1,0,db344a42-61b8-4544-9aa1-8840ab8a70f0,db344a42-61b8-4544-9aa1-8840ab8a70f0,1,0,bd029e3f-a6bd-4be9-81f3-f3ea84f424ce,bd029e3f-a6bd-4be9-81f3-f3ea84f424ce,1,0,043bd776-5a7b-45ff-8b4a-5eed2bba0054,043bd776-5a7b-45ff-8b4a-5eed2bba0054,1,0,6a708860-e3b6-46ea-bea5-0d3e426c72f6,6a708860-e3b6-46ea-bea5-0d3e426c72f6,1,0,7c9e30d0-4a25-4d1d-a5ad-c48b231f453c,7c9e30d0-4a25-4d1d-a5ad-c48b231f453c,1,0,f53a3a46-edad-4cc0-8814-3755c2ea2c03,f53a3a46-edad-4cc0-8814-3755c2ea2c03,1,0,0a60b201-23f7-483b-ac16-5d270f32344e,0a60b201-23f7-483b-ac16-5d270f32344e,1,0,78058cd3-eb56-483c-96f5-1bf8883abc76,78058cd3-eb56-483c-96f5-1bf8883abc76,1,0,cd1fbfdd-d05e-4c22-aa04-83e9d36fb557,cd1fbfdd-d05e-4c22-aa04-83e9d36fb557,1,0,cb2245e0-f9fe-4571-9fb4-3f8744e60f14,cb2245e0-f9fe-4571-9fb4-3f8744e60f14,1,0,38f3f056-5f03-40c8-91f7-25a74af8fd52,38f3f056-5f03-40c8-91f7-25a74af8fd52,1,0,36e04436-2e6b-4ab9-a0ce-1048482f8fb6,36e04436-2e6b-4ab9-a0ce-1048482f8fb6,1,0,f4b1f17d-d050-4c88-936e-0dd354065a28,f4b1f17d-d050-4c88-936e-0dd354065a28,1,0,29af5a21-4a97-4abe-8b77-6c29b1901e93,29af5a21-4a97-4abe-8b77-6c29b1901e93,1,0,8227aa4a-f331-42a7-b93a-e2a762bc69e4,8227aa4a-f331-42a7-b93a-e2a762bc69e4,1,0,6dd4f085-22c0-4349-9688-9bb999ed6475,6dd4f085-22c0-4349-9688-9bb999ed6475,1,0,2c7614e6-011f-4582-b3af-ace9528cada0,2c7614e6-011f-4582-b3af-ace9528cada0,1,0,93b083af-4b66-4798-86e8-d944beb3f2cc,93b083af-4b66-4798-86e8-d944beb3f2cc,1,0,7bd62ac6-8c6b-417e-ab7b-b4ee3d5608b7,7bd62ac6-8c6b-417e-ab7b-b4ee3d5608b7,1,0,61f56559-b00d-45c2-bb6b-0bc3faac82ce,61f56559-b00d-45c2-bb6b-0bc3faac82ce,1,0,e54bb072-bdec-4594-96fe-f8123db1fee0,e54bb072-bdec-4594-96fe-f8123db1fee0,1,0,3c39794f-355a-430e-a9f9-1d221b1d8ae9,3c39794f-355a-430e-a9f9-1d221b1d8ae9,1,0,79fa67a5-23c5-4bc0-81da-1e4ab6d30443,79fa67a5-23c5-4bc0-81da-1e4ab6d30443,1,0,cf3aeebc-5e44-46e2-a197-1d7f6a51dc13,cf3aeebc-5e44-46e2-a197-1d7f6a51dc13,1,0,ff8dc41e-3f85-4e09-be21-3856c6e5597f,ff8dc41e-3f85-4e09-be21-3856c6e5597f,1,0,7b56f878-66a1-4f42-b425-56a4b5fb3997,7b56f878-66a1-4f42-b425-56a4b5fb3997,1,0,a7994208-7282-4ab4-8312-24254c0d8243,a7994208-7282-4ab4-8312-24254c0d8243,1,0,2f3b80b1-4cbf-42ce-862d-1b918b739bf3,2f3b80b1-4cbf-42ce-862d-1b918b739bf3,1,0,267f2bb2-0eba-43c2-bb01-f28d3f163465,267f2bb2-0eba-43c2-bb01-f28d3f163465,1,0,735eb95a-f4a9-4a90-a9a0-ab269b89f4de,735eb95a-f4a9-4a90-a9a0-ab269b89f4de,1,0,49f4a74c-abc2-446f-8f3c-de7bc02d84bf,49f4a74c-abc2-446f-8f3c-de7bc02d84bf,1,0,9d55341b-ceb2-4400-aeb6-3b579d9c6f2b,9d55341b-ceb2-4400-aeb6-3b579d9c6f2b,1,0,ab1efcef-f81b-45e5-893d-56e75c1e0a6f,ab1efcef-f81b-45e5-893d-56e75c1e0a6f,1,0,bbefbf22-6d11-4639-b53e-b72e94ff307c,bbefbf22-6d11-4639-b53e-b72e94ff307c,1,0,dca6a730-8a3f-4b78-926b-2287e21a25a1,dca6a730-8a3f-4b78-926b-2287e21a25a1,1,0,bdec80e6-4aef-4603-98dc-3332abda955c,bdec80e6-4aef-4603-98dc-3332abda955c,1,0,8be7adcd-b49a-4192-9f62-e0b0089b0386,8be7adcd-b49a-4192-9f62-e0b0089b0386,1,0,e4e8e36b-6060-43f3-8b05-bbbf61c3decc,e4e8e36b-6060-43f3-8b05-bbbf61c3decc,1,0,a53447c8-0299-4cf0-a6f9-5a3af423be38,a53447c8-0299-4cf0-a6f9-5a3af423be38,1,0,4f8a2980-bdb4-4a4f-82ec-2822dc1adc49,4f8a2980-bdb4-4a4f-82ec-2822dc1adc49,1,0,91b5a3ca-5f7b-462d-b322-ab8e938add40,91b5a3ca-5f7b-462d-b322-ab8e938add40,1,0,8db8d80c-bf04-4252-8371-46a1dd7e2720,8db8d80c-bf04-4252-8371-46a1dd7e2720,1,0,6fdb4b65-1caf-4472-8135-c6a479bda6d4,6fdb4b65-1caf-4472-8135-c6a479bda6d4,1,0,b5a8b32f-8f8d-4e13-9113-94e66f5c9621,b5a8b32f-8f8d-4e13-9113-94e66f5c9621,1,0,9b8cf6f0-2b56-4954-b982-db18ad78c5ef,9b8cf6f0-2b56-4954-b982-db18ad78c5ef,1,0,1e869478-9bff-4854-9f9c-699b7d1c8faa,1e869478-9bff-4854-9f9c-699b7d1c8faa,1,0,b8fe43d1-b9a7-4ec1-94bd-1e7fad424f8d,b8fe43d1-b9a7-4ec1-94bd-1e7fad424f8d,1,0,f64089ee-72dd-4fcf-8926-31e95c6fcf77,f64089ee-72dd-4fcf-8926-31e95c6fcf77,1,0,5d93aea8-3f41-4e77-bed5-4b2377cbfe0e,5d93aea8-3f41-4e77-bed5-4b2377cbfe0e,1,0,e1e151cc-7b8a-4125-804f-c902a522ed81,e1e151cc-7b8a-4125-804f-c902a522ed81,1,0,f475494e-fe94-4902-b2da-3ade01eba5bb,f475494e-fe94-4902-b2da-3ade01eba5bb,1,0,fbb814b2-cb2f-474d-9c96-5571cef3030e,fbb814b2-cb2f-474d-9c96-5571cef3030e,1,0,4e892154-3279-492c-9eae-124304225c5d,4e892154-3279-492c-9eae-124304225c5d,1,0,53a6ffa4-31f8-4717-9ecc-2852e6e4cce9,53a6ffa4-31f8-4717-9ecc-2852e6e4cce9,1,0,575a135a-6ffd-4ae8-a597-7e584df9bac4,575a135a-6ffd-4ae8-a597-7e584df9bac4,1,0,693a7196-f525-4bd2-a417-e902977f21cb,693a7196-f525-4bd2-a417-e902977f21cb,1,0,9bb39184-08b7-440e-a8f8-5caf0083ba0f,9bb39184-08b7-440e-a8f8-5caf0083ba0f,1,0,f2aa4137-07b6-4fc7-8009-8127762dc698,f2aa4137-07b6-4fc7-8009-8127762dc698,1,0,d48e817e-f6a4-47e5-a052-35d09e066490,d48e817e-f6a4-47e5-a052-35d09e066490,1,0,7bf36370-3761-4fd5-bea5-90fa142a9d57,7bf36370-3761-4fd5-bea5-90fa142a9d57,1,0,3b81427f-cf64-4a5e-adb3-5415d515fecd,3b81427f-cf64-4a5e-adb3-5415d515fecd,1,0,e9f2b604-7181-476d-8b34-3a544cbb353d,e9f2b604-7181-476d-8b34-3a544cbb353d,1,0,73773919-d01c-41dd-bb31-9c66648ac0ff,73773919-d01c-41dd-bb31-9c66648ac0ff,1,0,5d1afad0-3d7e-4214-b52a-72c184490084,5d1afad0-3d7e-4214-b52a-72c184490084,1,0,5f7901a1-f992-42fa-9ddb-d63574da3b56,5f7901a1-f992-42fa-9ddb-d63574da3b56,1,0,26abd45a-12b3-4312-88fb-53c90a6e6679,26abd45a-12b3-4312-88fb-53c90a6e6679,1,0,1541ad74-3e73-4699-bccf-c13313fbedfe,1541ad74-3e73-4699-bccf-c13313fbedfe,1,0,1037ecb7-6819-4ba2-8c93-eccbbdf825be,1037ecb7-6819-4ba2-8c93-eccbbdf825be,1,0,823f925c-b71f-42b1-a71e-0aab823f59c6,823f925c-b71f-42b1-a71e-0aab823f59c6,1,0,1f03420b-0480-451a-9263-8431ff0b0c73,1f03420b-0480-451a-9263-8431ff0b0c73,1,0,2bf547e4-d295-4f69-9dbf-9a9d91b2db98,2bf547e4-d295-4f69-9dbf-9a9d91b2db98,1,0,46506a80-495e-4f06-a191-54ccf5d6cc3f,46506a80-495e-4f06-a191-54ccf5d6cc3f,1,0,b9788ea3-b910-4b5b-96c3-921d62745b6e,b9788ea3-b910-4b5b-96c3-921d62745b6e,1,0,0646de72-49fd-466d-af0f-843bfa527049,0646de72-49fd-466d-af0f-843bfa527049,1,0,3bce82a2-efba-4866-950c-5804853b5fe2,3bce82a2-efba-4866-950c-5804853b5fe2,1,0,ee0e428a-bee7-4169-9b6e-63704f3d1a8e,ee0e428a-bee7-4169-9b6e-63704f3d1a8e,1,0,5fa8756c-871d-460f-b70a-0797de0d5563,5fa8756c-871d-460f-b70a-0797de0d5563,1,0,cc63becf-0e32-48d8-b4c1-430abaa83e9e,cc63becf-0e32-48d8-b4c1-430abaa83e9e,1,0,f46ae351-0ac5-4597-a6a9-1394cd5ec83f,f46ae351-0ac5-4597-a6a9-1394cd5ec83f,1,0,d57f644e-40e5-46a3-874c-5addd52ec3f6,d57f644e-40e5-46a3-874c-5addd52ec3f6,1,0,5ef18079-798a-4924-98a7-8ba4ff13303f,5ef18079-798a-4924-98a7-8ba4ff13303f,1,0,16835f10-559e-420b-9a67-03aac0e947c4,16835f10-559e-420b-9a67-03aac0e947c4,1,0,0292ed74-c47c-4a44-b6db-0e9b6828bec2,0292ed74-c47c-4a44-b6db-0e9b6828bec2,1,0,bfafc36e-2d45-4716-b7be-a89b69575066,bfafc36e-2d45-4716-b7be-a89b69575066,1,0,75cb904b-b3f1-4f0d-85d9-a186262028ff,75cb904b-b3f1-4f0d-85d9-a186262028ff,1,0,82cfb1ad-5ba0-425c-b75e-6281862faec8,82cfb1ad-5ba0-425c-b75e-6281862faec8,1,0,de64596c-a7c1-4d1d-9264-5817e47ab6d3,de64596c-a7c1-4d1d-9264-5817e47ab6d3,1,0,7c3463c8-ea36-415a-8e9d-dc7bd927b9d1,7c3463c8-ea36-415a-8e9d-dc7bd927b9d1,1,0,260f4fb1-02cb-4c32-ba4b-5aa202cd0311,260f4fb1-02cb-4c32-ba4b-5aa202cd0311,1,0,be2b4dba-e77e-4947-bd2f-0710b357ca2a,be2b4dba-e77e-4947-bd2f-0710b357ca2a,1,0,df750e63-50fc-4085-b8b8-f05e4751ff51,df750e63-50fc-4085-b8b8-f05e4751ff51,1,0,86182e9a-89e0-40d7-b2d7-fcd92ee42942,86182e9a-89e0-40d7-b2d7-fcd92ee42942,1,0,091cb921-c7e3-4a5f-97b7-34e625159b9c,091cb921-c7e3-4a5f-97b7-34e625159b9c,1,0,f6118cdd-1dcd-464e-a49d-e95c69466750,f6118cdd-1dcd-464e-a49d-e95c69466750,1,0,39932897-959b-41a6-94ad-61426abfdbd9,39932897-959b-41a6-94ad-61426abfdbd9,1,0,c56ea6f3-1032-4b7a-a20e-e912196da1cd,c56ea6f3-1032-4b7a-a20e-e912196da1cd,1,0,b69b611d-18d3-4e78-8a09-f010bcf9c261,b69b611d-18d3-4e78-8a09-f010bcf9c261,1,0,e8e087c1-9131-4037-8562-8bce8c38f78c,e8e087c1-9131-4037-8562-8bce8c38f78c,1,0,3b1c9126-9b9f-4658-967c-cc9ef5b1000f,3b1c9126-9b9f-4658-967c-cc9ef5b1000f,1,0,6adaef8e-82b6-4664-9748-4f41b170d91a,6adaef8e-82b6-4664-9748-4f41b170d91a,1,0,20d655a7-788c-48bc-83ae-25003106bedb,20d655a7-788c-48bc-83ae-25003106bedb,1,0,7bfb78de-899f-4a4d-a8b2-ebadeccf3921,7bfb78de-899f-4a4d-a8b2-ebadeccf3921,1,0,68a72014-4b2e-4347-aaa7-54d95b8eb919,68a72014-4b2e-4347-aaa7-54d95b8eb919,1,0,379c9295-d0d5-418d-82f3-5ae19985cc53,379c9295-d0d5-418d-82f3-5ae19985cc53,1,0,25830f5b-27e2-4eff-9728-b21eb498727d,25830f5b-27e2-4eff-9728-b21eb498727d,1,0,af02f534-8508-4f9f-bcc1-0c6f3d696971,af02f534-8508-4f9f-bcc1-0c6f3d696971,1,0,dd345cfb-ea0c-4ea8-9b35-22547b000275,dd345cfb-ea0c-4ea8-9b35-22547b000275,1,0,a71d9c41-7510-4d38-90df-1034977b8f45,a71d9c41-7510-4d38-90df-1034977b8f45,1,0,a0febcb5-12dd-4405-b503-4436899704dc,a0febcb5-12dd-4405-b503-4436899704dc,1,0,86a871da-3725-43a1-a7c3-98acd187011b,86a871da-3725-43a1-a7c3-98acd187011b,1,0,2447cfeb-d877-4222-8ac2-b0026b85f932,2447cfeb-d877-4222-8ac2-b0026b85f932,1,0,fb94e9cb-1f27-42a6-a701-18bbe5888e70,fb94e9cb-1f27-42a6-a701-18bbe5888e70,1,0,2e26e32e-a0c6-4460-99de-865622202166,2e26e32e-a0c6-4460-99de-865622202166,1,0,c9489a6e-45af-4877-9788-158071571a0a,c9489a6e-45af-4877-9788-158071571a0a,1,0,23959912-f8fc-42bc-9ec2-1d520ebc5dad,23959912-f8fc-42bc-9ec2-1d520ebc5dad,1,0,4770398f-8013-4d43-93ce-ec1165e40c4e,4770398f-8013-4d43-93ce-ec1165e40c4e,1,0,9a706997-90cb-430d-972c-d2bad87c4a79,9a706997-90cb-430d-972c-d2bad87c4a79,1,0,6f661660-b9c4-41d4-99a8-e08006cfe9c8,6f661660-b9c4-41d4-99a8-e08006cfe9c8,1,0,199e79fa-54d6-4748-aaaa-9c55283582a3,199e79fa-54d6-4748-aaaa-9c55283582a3,1,0,5ef026c2-2ef4-45d6-9792-5ba0d298714b,5ef026c2-2ef4-45d6-9792-5ba0d298714b,1,0,45d61391-4cf7-4f45-8775-ada582c42400,45d61391-4cf7-4f45-8775-ada582c42400,1,0,78b2a913-2ab9-455d-85a3-504f0f468468,78b2a913-2ab9-455d-85a3-504f0f468468,1,0,8c7e1080-fbb2-4a9c-b740-b3e9eb996565,8c7e1080-fbb2-4a9c-b740-b3e9eb996565,1,0,560b5b12-4dee-4c69-ab6b-7680757a2797,560b5b12-4dee-4c69-ab6b-7680757a2797,1,0,3cfb1ce0-de42-4914-85c0-807d0c10f77e,3cfb1ce0-de42-4914-85c0-807d0c10f77e,1,0,a27244c2-ac65-423f-afce-42efd288a83d,a27244c2-ac65-423f-afce-42efd288a83d,1,0,d4002184-8e08-4dcc-9070-62f595e82e23,d4002184-8e08-4dcc-9070-62f595e82e23,1,0,62163fda-1a09-4d4f-b290-76ff324042ab,62163fda-1a09-4d4f-b290-76ff324042ab,1,0,f2816dd2-47dd-41e8-9709-6dac1e4f4d21,f2816dd2-47dd-41e8-9709-6dac1e4f4d21,1,0,6e6a1557-06fa-45c0-ad98-c43809553cd7,6e6a1557-06fa-45c0-ad98-c43809553cd7,1,0,179f7436-e328-42b8-9382-19ee6f10c768,179f7436-e328-42b8-9382-19ee6f10c768,1,0,2093344a-47d4-43ac-98df-29c4dff7fca9,2093344a-47d4-43ac-98df-29c4dff7fca9,1,0,3343cb0c-0f80-4ef9-9871-3db9f2299186,3343cb0c-0f80-4ef9-9871-3db9f2299186,1,0,791d7289-b188-4120-a5f5-f5eb1fd675bf,791d7289-b188-4120-a5f5-f5eb1fd675bf,1,0,e996d749-1aa5-4fe5-b87b-3d8d06144d93,e996d749-1aa5-4fe5-b87b-3d8d06144d93,1,0,6613153f-4f81-4bac-8144-7562cce67f55,6613153f-4f81-4bac-8144-7562cce67f55,1,0,488ce902-b60e-4255-8aec-92dafd1d5dd0,488ce902-b60e-4255-8aec-92dafd1d5dd0,1,0,411779cc-de2c-4731-acc0-631a01367eb5,411779cc-de2c-4731-acc0-631a01367eb5,1,0,30794af1-3180-4ed5-b11d-ca139acb22fa,30794af1-3180-4ed5-b11d-ca139acb22fa,1,0,39aeb27d-62d2-480a-aa6b-33e2363194d1,39aeb27d-62d2-480a-aa6b-33e2363194d1,1,0,e69be74a-0e2c-4a7b-8814-ab15ab28f948,e69be74a-0e2c-4a7b-8814-ab15ab28f948,1,0,60410722-dca9-4c3a-a9c4-33fcd45fe584,60410722-dca9-4c3a-a9c4-33fcd45fe584,1,0,3f200f5a-01bd-4304-9c57-18703cac9ec9,3f200f5a-01bd-4304-9c57-18703cac9ec9,1,0,aa89881f-f111-4384-911c-847b04bb56dd,aa89881f-f111-4384-911c-847b04bb56dd,1,0,444d9e3b-c702-4ad6-a929-a220eff0f6e7,444d9e3b-c702-4ad6-a929-a220eff0f6e7,1,0,022c4519-1cdb-45b6-a699-89fd6688999c,022c4519-1cdb-45b6-a699-89fd6688999c,1,0,fb5b79a2-caec-4c6e-a112-27e78a184d5e,fb5b79a2-caec-4c6e-a112-27e78a184d5e,1,0,fa523958-ce1e-42e1-ae00-2dcb401b7eda,fa523958-ce1e-42e1-ae00-2dcb401b7eda,1,0,1518bca2-a004-4566-8991-7c60e6745a49,1518bca2-a004-4566-8991-7c60e6745a49,1,0,ed8618e2-3ce6-4956-856a-9f40279b4da6,ed8618e2-3ce6-4956-856a-9f40279b4da6,1,0,733f6bc2-544d-4fac-bca8-11b981b95a03,733f6bc2-544d-4fac-bca8-11b981b95a03,1,0,3d140a17-40b4-46a7-a846-78f2f77d49f2,3d140a17-40b4-46a7-a846-78f2f77d49f2,1,0,965646a5-5e5b-49cd-864a-c3870844cfdb,965646a5-5e5b-49cd-864a-c3870844cfdb,1,0,27c88cf7-c0ed-44af-bb70-f14269ce1e87,27c88cf7-c0ed-44af-bb70-f14269ce1e87,1,0,0333cd9e-392d-40b2-869d-ad47119e0384,0333cd9e-392d-40b2-869d-ad47119e0384,1,0,82cc8820-0b92-4bb7-b097-7ac79e922f01,82cc8820-0b92-4bb7-b097-7ac79e922f01,1,0,25451a36-c842-44a5-94f4-7e540050b825,25451a36-c842-44a5-94f4-7e540050b825,1,0,8e0340c9-6469-4fc9-b19a-4be4e0e6ee82,8e0340c9-6469-4fc9-b19a-4be4e0e6ee82,1,0,f2267d6c-6972-4621-b677-87798056363b,f2267d6c-6972-4621-b677-87798056363b,1,0,243d201b-3714-4700-b410-c74c9093e6f6,243d201b-3714-4700-b410-c74c9093e6f6,1,0,e1e9862e-c87b-400f-bca1-b1380cb98ddc,e1e9862e-c87b-400f-bca1-b1380cb98ddc,1,0,de3cb50c-ef99-419e-b922-c6a453da6a5b,de3cb50c-ef99-419e-b922-c6a453da6a5b,1,0,d4ca4802-756a-494c-bab3-e77e0777a3fa,d4ca4802-756a-494c-bab3-e77e0777a3fa,1,0,134c1054-8d65-405f-ba3b-5beeca803a72,134c1054-8d65-405f-ba3b-5beeca803a72,1,0,cfa1669b-5310-4171-83fd-4dff3c6ac345,cfa1669b-5310-4171-83fd-4dff3c6ac345,1,0,9ec26d14-b09d-4fd7-9c43-062c0120cf3d,9ec26d14-b09d-4fd7-9c43-062c0120cf3d,1,0,aec7df6a-21a1-495d-b0a9-3769e1069888,aec7df6a-21a1-495d-b0a9-3769e1069888,1,0,463b98bf-b4d4-4edb-995d-0a75ff29b60d,463b98bf-b4d4-4edb-995d-0a75ff29b60d,1,0,317f88a7-12a4-4d21-b637-3050525406f4,317f88a7-12a4-4d21-b637-3050525406f4,1,0,2d9d2319-68fb-436d-b431-98858b88a75a,2d9d2319-68fb-436d-b431-98858b88a75a,1,0,9016988e-1aea-460a-b5eb-644dc5923d87,9016988e-1aea-460a-b5eb-644dc5923d87,1,0,8593c908-9f6f-42df-9fd4-e41ccffba315,8593c908-9f6f-42df-9fd4-e41ccffba315,1,0,d6eb3484-b0ab-40e3-aa95-c18a40259f77,d6eb3484-b0ab-40e3-aa95-c18a40259f77,1,0,08ec3f2e-e523-4e37-8d44-fbc52c66263c,08ec3f2e-e523-4e37-8d44-fbc52c66263c,1,0,7300e566-06ea-42a3-b046-477ee9883559,7300e566-06ea-42a3-b046-477ee9883559,1,0,72ef831d-9d37-4b7f-8b71-fb9dd0ab6038,72ef831d-9d37-4b7f-8b71-fb9dd0ab6038,1,0,a0ff40b4-5815-445e-ad67-f524dfa3aaa7,a0ff40b4-5815-445e-ad67-f524dfa3aaa7,1,0,4d7ef262-8449-4511-a408-e5d322ce3d78,4d7ef262-8449-4511-a408-e5d322ce3d78,1,0,3f8130d4-12b2-4a2b-8f75-9ca8289624c8,3f8130d4-12b2-4a2b-8f75-9ca8289624c8,1,0,02877723-66fb-4984-b760-511d1c6c29f0,02877723-66fb-4984-b760-511d1c6c29f0,1,0,ec0bc645-5abf-423f-a517-2aa7adf9044c,ec0bc645-5abf-423f-a517-2aa7adf9044c,1,0,d8430167-5d4e-4603-9797-36781210cdff,d8430167-5d4e-4603-9797-36781210cdff,1,0,c4b3f94d-6f5f-457b-a425-56c0f745c75f,c4b3f94d-6f5f-457b-a425-56c0f745c75f,1,0,0db78226-37d0-4016-b4c9-5134af1aabc7,0db78226-37d0-4016-b4c9-5134af1aabc7,1,0,8d6b4d23-a260-4352-9975-c13ce3e05220,8d6b4d23-a260-4352-9975-c13ce3e05220,1,0,e0be0bc7-def6-4ae9-9a33-9689aa829b5e,e0be0bc7-def6-4ae9-9a33-9689aa829b5e,1,0,97d4ffd0-07ef-4dc2-8fbc-449c3c8453ef,97d4ffd0-07ef-4dc2-8fbc-449c3c8453ef,1,0,6f5ac40b-ea22-47cf-acf2-614406669a72,6f5ac40b-ea22-47cf-acf2-614406669a72,1,0,b6caaa9e-a9d1-4519-a61f-7fa0ab0ff201,b6caaa9e-a9d1-4519-a61f-7fa0ab0ff201,1,0,488d2644-6fef-488a-af38-40f59c0e0d8c,488d2644-6fef-488a-af38-40f59c0e0d8c,1,0,5d76a28c-5d6c-49cb-8b91-2527e8d06aba,5d76a28c-5d6c-49cb-8b91-2527e8d06aba,1,0,688d86cd-1044-4b77-bb63-2c05aaafbcd0,688d86cd-1044-4b77-bb63-2c05aaafbcd0,1,0,f1efef30-8651-4728-becd-abe3f9026a43,f1efef30-8651-4728-becd-abe3f9026a43,1,0,c2612e22-4f0d-4713-b4eb-decd9780d088,c2612e22-4f0d-4713-b4eb-decd9780d088,1,0,11b1410f-8e14-4b2f-8890-177f4875020e,11b1410f-8e14-4b2f-8890-177f4875020e,1,0,2276b2b0-1705-4014-956f-5087e9dd5c1e,2276b2b0-1705-4014-956f-5087e9dd5c1e,1,0,f72b9d4b-7196-45a3-9349-e32fc91e875a,f72b9d4b-7196-45a3-9349-e32fc91e875a,1,0,6c509dcc-4529-4ac3-86fe-26f807991b1c,6c509dcc-4529-4ac3-86fe-26f807991b1c,1,0,529c8887-f691-4ba8-aeaf-937858d61c30,529c8887-f691-4ba8-aeaf-937858d61c30,1,0,43435d30-8c25-4757-9a29-9173415959ff,43435d30-8c25-4757-9a29-9173415959ff,1,0,4aef5419-7cf5-4443-b773-9273c983844f,4aef5419-7cf5-4443-b773-9273c983844f,1,0,b090cfa5-1bd8-43aa-84d6-6e04375c4b57,b090cfa5-1bd8-43aa-84d6-6e04375c4b57,1,0,9378d484-2143-45eb-a71e-651055611789,9378d484-2143-45eb-a71e-651055611789,1,0,a2d24b4d-6039-49ab-8cc2-14d03a2d5546,a2d24b4d-6039-49ab-8cc2-14d03a2d5546,1,0,c5d0eafb-469e-4a24-8b5e-ce25fb627d3d,c5d0eafb-469e-4a24-8b5e-ce25fb627d3d,1,0,2bb5c23c-ad87-4b66-b766-d2e3f82715bd,2bb5c23c-ad87-4b66-b766-d2e3f82715bd,1,0,d01871bb-492e-4ab8-ada9-e9d8ec1adbce,d01871bb-492e-4ab8-ada9-e9d8ec1adbce,1,0,dd931c85-8c19-42a8-a39e-7af0c5bd346c,dd931c85-8c19-42a8-a39e-7af0c5bd346c,1,0,4fa153eb-1efb-43e5-ac09-e5431d4800df,4fa153eb-1efb-43e5-ac09-e5431d4800df,1,0,ada760f3-6a9f-4b81-afc1-98eb164af747,ada760f3-6a9f-4b81-afc1-98eb164af747,1,0,262dea64-4ccd-4b97-ac7e-ec1dbdd9ac98,262dea64-4ccd-4b97-ac7e-ec1dbdd9ac98,1,0,8a0d4f7f-7a80-4e5d-8238-05fc169e0319,8a0d4f7f-7a80-4e5d-8238-05fc169e0319,1,0,8e9f9baf-8d12-46cc-915f-f6f290af5512,8e9f9baf-8d12-46cc-915f-f6f290af5512,1,0,a8e14d2e-911d-4096-9027-deb7a08838e0,a8e14d2e-911d-4096-9027-deb7a08838e0,1,0,c51d8ae2-66fe-4052-8ee4-980855b1f90c,c51d8ae2-66fe-4052-8ee4-980855b1f90c,1,0,27610803-846f-40bd-b817-f73708f1fdb7,27610803-846f-40bd-b817-f73708f1fdb7,1,0,4e2a3873-0317-44be-8dbb-e4cefc0361a8,4e2a3873-0317-44be-8dbb-e4cefc0361a8,1,0,5808331f-9ab4-4a23-a592-1f65087f3214,5808331f-9ab4-4a23-a592-1f65087f3214,1,0,9316738d-3d38-4068-818e-a001355b19fb,9316738d-3d38-4068-818e-a001355b19fb,1,0,d86d766f-021a-4c11-b9e8-403af08918cc,d86d766f-021a-4c11-b9e8-403af08918cc,1,0,2cedfef0-5d93-475a-b2dd-ee36e553e6e1,2cedfef0-5d93-475a-b2dd-ee36e553e6e1,1,0,29200d04-d7da-435a-89e6-858c11a1a98c,29200d04-d7da-435a-89e6-858c11a1a98c,1,0,8e5f6c70-04b3-46a1-94ef-82c9f6019f8f,8e5f6c70-04b3-46a1-94ef-82c9f6019f8f,1,0,6c119ef2-d24b-4c3d-ad07-611bed89cab1,6c119ef2-d24b-4c3d-ad07-611bed89cab1,1,0,13b1cb1f-88df-4ff8-b4cc-0473e4f96005,13b1cb1f-88df-4ff8-b4cc-0473e4f96005,1,0,0e861ad8-6fa3-4b0f-a9b0-6c91df1dfc6b,0e861ad8-6fa3-4b0f-a9b0-6c91df1dfc6b,1,0,27df6c22-85d7-4cb6-be19-82af76c84bf9,27df6c22-85d7-4cb6-be19-82af76c84bf9,1,0,d5b23aac-ea1c-497e-bed7-8685bb682e36,d5b23aac-ea1c-497e-bed7-8685bb682e36,1,0,6da15163-dd4c-4981-82e8-ad3bd2f516aa,6da15163-dd4c-4981-82e8-ad3bd2f516aa,1,0,e3000fff-aaba-4396-8026-768108ea8f2b,e3000fff-aaba-4396-8026-768108ea8f2b,1,0,c49054f1-3a96-4bf1-917e-f11407c67b5b,c49054f1-3a96-4bf1-917e-f11407c67b5b,1,0,01ede889-689f-45f3-b9a3-5e4c1188bea1,01ede889-689f-45f3-b9a3-5e4c1188bea1,1,0,a05f99a4-c764-4283-9fbb-6e641c3a15ae,a05f99a4-c764-4283-9fbb-6e641c3a15ae,1,0,cbe31324-feba-4137-9b82-b1b2afbcfb9d,cbe31324-feba-4137-9b82-b1b2afbcfb9d,1,0,03e80316-735f-4087-afe9-218d41dce028,03e80316-735f-4087-afe9-218d41dce028,1,0,eca391b3-ee95-47ab-a3d6-a80c745f99e7,eca391b3-ee95-47ab-a3d6-a80c745f99e7,1,0,b3035b26-9ead-4082-90b0-7dd61b4a6990,b3035b26-9ead-4082-90b0-7dd61b4a6990,1,0,cd68ac77-8df5-42d4-b729-da73cae0a78b,cd68ac77-8df5-42d4-b729-da73cae0a78b,1,0,1fc05949-c1ba-4363-8353-6902bc041021,1fc05949-c1ba-4363-8353-6902bc041021,1,0,d6e61d59-fe83-4a9e-aa15-e072a39fd8fd,d6e61d59-fe83-4a9e-aa15-e072a39fd8fd,1,0,614fc08c-78b6-4d49-9488-05fcf9b76d58,614fc08c-78b6-4d49-9488-05fcf9b76d58,1,0,d983cae8-edbb-4f26-9c0a-2f701cb11046,d983cae8-edbb-4f26-9c0a-2f701cb11046,1,0,40e2fb30-bb03-4178-a8eb-ddf48337ef23,40e2fb30-bb03-4178-a8eb-ddf48337ef23,1,0,1026fbcb-acd8-40dc-b638-6e02c6378c55,1026fbcb-acd8-40dc-b638-6e02c6378c55,1,0,dc9e2ba6-f4f1-493f-9054-cac633f239dd,dc9e2ba6-f4f1-493f-9054-cac633f239dd,1,0,7b95d0b1-c7b2-43b4-9119-320cb8912032,7b95d0b1-c7b2-43b4-9119-320cb8912032,1,0,004582b7-00aa-405e-8e24-ce76c945edae,004582b7-00aa-405e-8e24-ce76c945edae,1,0,97a9b005-a836-4308-8e63-0e00f6890baa,97a9b005-a836-4308-8e63-0e00f6890baa,1,0,98c34ada-0b78-41db-9183-6d7b9e466bde,98c34ada-0b78-41db-9183-6d7b9e466bde,1,0,fb688339-918e-40a1-8721-a26f3077973e,fb688339-918e-40a1-8721-a26f3077973e,1,0,1f56de63-81eb-4de5-ad20-01cb6f84e5b0,1f56de63-81eb-4de5-ad20-01cb6f84e5b0,1,0,dea1f169-5426-4623-9e5e-3c8c2360858f,dea1f169-5426-4623-9e5e-3c8c2360858f,1,0,039b1cc5-a831-41fb-933a-b9c0fb9c9f55,039b1cc5-a831-41fb-933a-b9c0fb9c9f55,1,0,4dea2614-6251-45c3-9abe-34b7595c71a2,4dea2614-6251-45c3-9abe-34b7595c71a2,1,0,e31cfba9-0f49-485f-8d6f-797b32667642,e31cfba9-0f49-485f-8d6f-797b32667642,1,0,de183413-490a-4266-95fa-ea0057adeee3,de183413-490a-4266-95fa-ea0057adeee3,1,0,fd81a8df-0f9f-4543-a35c-0cb1bb804b5b,fd81a8df-0f9f-4543-a35c-0cb1bb804b5b,1,0,129f7771-7285-4842-a139-ca927d086184,129f7771-7285-4842-a139-ca927d086184,1,0,b50f3157-3c3a-4553-a16a-7fcd660e2824,b50f3157-3c3a-4553-a16a-7fcd660e2824,1,0,895aea8f-4c4e-44e5-b720-0a2e683191b3,895aea8f-4c4e-44e5-b720-0a2e683191b3,1,0,a3b14a36-049d-4f94-bafc-cf7b874f9bf0,a3b14a36-049d-4f94-bafc-cf7b874f9bf0,1,0,6c954862-62d0-4901-8448-ea62a1174660,6c954862-62d0-4901-8448-ea62a1174660,1,0,19858faf-2bc5-4cfb-b258-cb101ab66e87,19858faf-2bc5-4cfb-b258-cb101ab66e87,1,0,308358bc-773a-43fa-adff-dcc5884a2bd4,308358bc-773a-43fa-adff-dcc5884a2bd4,1,0,ed541a1c-a842-40a9-b357-612db71ec32c,ed541a1c-a842-40a9-b357-612db71ec32c,1,0,b0e37495-7d9e-41d0-8225-652f9ac328cf,b0e37495-7d9e-41d0-8225-652f9ac328cf,1,0,3bd2e1c8-9ef3-449b-acf6-397b90669c49,3bd2e1c8-9ef3-449b-acf6-397b90669c49,1,0,cb334191-2ff3-439e-bdaf-4b8fe6561c3b,cb334191-2ff3-439e-bdaf-4b8fe6561c3b,1,0,5f3a30b0-1ba8-423c-9bc2-f9a87cafe818,5f3a30b0-1ba8-423c-9bc2-f9a87cafe818,1,0,766d8852-3bb4-4a6c-81c0-911722af4e8e,766d8852-3bb4-4a6c-81c0-911722af4e8e,1,0,54bfe81c-06b2-45a8-8bc1-bd22240cfe32,54bfe81c-06b2-45a8-8bc1-bd22240cfe32,1,0,46f71ecc-5cee-4b8d-9f6d-d38a86787a76,46f71ecc-5cee-4b8d-9f6d-d38a86787a76,1,0,b896cd10-5da4-4c90-b2cf-5b98bd173122,b896cd10-5da4-4c90-b2cf-5b98bd173122,1,0,216410ad-91e5-4c41-b08b-905faa830410,216410ad-91e5-4c41-b08b-905faa830410,1,0,df2bf85a-9e42-40d2-ae10-d8f5dbf06e61,df2bf85a-9e42-40d2-ae10-d8f5dbf06e61,1,0,1e0a3a73-3fd9-43f7-8ee5-e54565264232,1e0a3a73-3fd9-43f7-8ee5-e54565264232,1,0,0f4de605-5df9-4bb9-92e8-f37c6903396e,0f4de605-5df9-4bb9-92e8-f37c6903396e,1,0,66c8a1f2-248d-4b2a-b427-38fb4f63410a,66c8a1f2-248d-4b2a-b427-38fb4f63410a,1,0,a4b3ed40-b440-49f4-ab22-53fdad8c66c6,a4b3ed40-b440-49f4-ab22-53fdad8c66c6,1,0,f6dae699-06eb-41ef-878b-3fdfe1b1f213,f6dae699-06eb-41ef-878b-3fdfe1b1f213,1,0,fe6de86a-54c9-4ae2-9f17-cfce38b7b560,fe6de86a-54c9-4ae2-9f17-cfce38b7b560,1,0,9ba59a76-ed54-4d17-83f1-f315a5722a1e,9ba59a76-ed54-4d17-83f1-f315a5722a1e,1,0,a680795f-a870-4642-b45d-12ed24a12395,a680795f-a870-4642-b45d-12ed24a12395,1,0,54936c70-5a08-40fa-8f85-da07dd6a29ec,54936c70-5a08-40fa-8f85-da07dd6a29ec,1,0,8d8f40e2-9897-425e-b08e-58bf46566c30,8d8f40e2-9897-425e-b08e-58bf46566c30,1,0,1bab3154-9f5c-402b-93ae-5da019e96d2b,1bab3154-9f5c-402b-93ae-5da019e96d2b,1,0,5c802dcc-411e-4413-ad88-465127ad0004,5c802dcc-411e-4413-ad88-465127ad0004,1,0,abf392d3-9ded-4dcd-9490-14b6a05329b7,abf392d3-9ded-4dcd-9490-14b6a05329b7,1,0,8e760cb3-50bb-4e19-8887-da538aebef07,8e760cb3-50bb-4e19-8887-da538aebef07,1,0,22db835c-014c-4ff0-90ef-0654e250ff77,22db835c-014c-4ff0-90ef-0654e250ff77,1,0,a81aa069-c1b5-4096-ac8d-660eb0de3561,a81aa069-c1b5-4096-ac8d-660eb0de3561,1,0,8efcb583-4088-4e2d-8ad6-0f3abba7cbb5,8efcb583-4088-4e2d-8ad6-0f3abba7cbb5,1,0,9717140f-0721-47b0-8cab-a9a5dfefad9d,9717140f-0721-47b0-8cab-a9a5dfefad9d,1,0,ebe6f782-635b-457a-bfaa-5b78ac44584b,ebe6f782-635b-457a-bfaa-5b78ac44584b,1,0,644d553d-8286-420a-aa6a-b9c8a2be896f,644d553d-8286-420a-aa6a-b9c8a2be896f,1,0,8842c0e3-2e20-4f37-ae7c-f5449004994b,8842c0e3-2e20-4f37-ae7c-f5449004994b,1,0,5b2cc44b-69cb-495c-a26b-003a495df40b,5b2cc44b-69cb-495c-a26b-003a495df40b,1,0,30250d93-10ff-45c9-920b-5fed3f9d8093,30250d93-10ff-45c9-920b-5fed3f9d8093,1,0,ecaba9aa-fca7-42f5-a4fe-d8176cf875b9,ecaba9aa-fca7-42f5-a4fe-d8176cf875b9,1,0,4378ab20-5467-476b-8f04-4b6876efdee6,4378ab20-5467-476b-8f04-4b6876efdee6,1,0,55e47901-c79c-41c5-9d7f-6b6846ed2782,55e47901-c79c-41c5-9d7f-6b6846ed2782,1,0,911f8810-e96e-4f02-9377-47e49919f87e,911f8810-e96e-4f02-9377-47e49919f87e,1,0,cde46d6d-9f8a-45b6-98a7-9411030ccd72,cde46d6d-9f8a-45b6-98a7-9411030ccd72,1,0,ff1a4c30-03ff-4bdd-9df2-a2579aeb4157,ff1a4c30-03ff-4bdd-9df2-a2579aeb4157,1,0,224b9439-4b30-4b64-8edf-e7718ee90a7d,224b9439-4b30-4b64-8edf-e7718ee90a7d,1,0,74dc2374-daf1-4a8a-ba10-d3aced96af3b,74dc2374-daf1-4a8a-ba10-d3aced96af3b,1,0,15f1a3a8-5d42-486d-95f9-3d43ff1d5d56,15f1a3a8-5d42-486d-95f9-3d43ff1d5d56,1,0,e28e953f-93b3-4d4d-9ee4-c56df26037eb,e28e953f-93b3-4d4d-9ee4-c56df26037eb,1,0,578e0fd2-997c-437a-befc-33d128097a7e,578e0fd2-997c-437a-befc-33d128097a7e,1,0,14089231-31a8-4471-b85b-064836794ff3,14089231-31a8-4471-b85b-064836794ff3,1,0,014de276-fb2f-4deb-873f-475729be0f66,014de276-fb2f-4deb-873f-475729be0f66,1,0,40a60ff7-96ca-485b-a2d9-640a208a7de6,40a60ff7-96ca-485b-a2d9-640a208a7de6,1,0,03e6caa4-eaa2-43aa-bdd1-768f9cce7848,03e6caa4-eaa2-43aa-bdd1-768f9cce7848,1,0,ac028c56-b2a8-4a9b-a325-554c636f838e,ac028c56-b2a8-4a9b-a325-554c636f838e,1,0,0ed85f4c-c002-49b6-99b9-0c3c4b7f940e,0ed85f4c-c002-49b6-99b9-0c3c4b7f940e,1,0,f99e98ac-cd94-4989-8c02-ef8b323c6815,f99e98ac-cd94-4989-8c02-ef8b323c6815,1,0,e2562347-4549-4111-862e-86c20a6daade,e2562347-4549-4111-862e-86c20a6daade,1,0,b270fc64-15c6-41ed-ad09-44c833ca7c41,b270fc64-15c6-41ed-ad09-44c833ca7c41,1,0,4c3312fd-5613-4e9b-ae7c-572fa1887ded,4c3312fd-5613-4e9b-ae7c-572fa1887ded,1,0,6c8c9618-287a-41ab-890c-60250925ad52,6c8c9618-287a-41ab-890c-60250925ad52,1,0,55b9650e-098b-4d44-9fb5-d525b46f014b,55b9650e-098b-4d44-9fb5-d525b46f014b,1,0,5b7b32ec-3d0e-42e9-bd13-5d2b8cc1942d,5b7b32ec-3d0e-42e9-bd13-5d2b8cc1942d,1,0,bc55dc06-a769-40be-9c99-0794bdd2dbea,bc55dc06-a769-40be-9c99-0794bdd2dbea,1,0,feb5f490-e791-11e6-508c-a8667f21fde4,feb5f490-e791-11e6-508c-a8667f21fde4,1,0,7861e179-96d2-422f-a7c2-b38b59074956,7861e179-96d2-422f-a7c2-b38b59074956,1,0,0b2416bc-f322-45b3-8c3f-2c8a206c55a1,0b2416bc-f322-45b3-8c3f-2c8a206c55a1,1,0,6962f838-e792-11e6-508c-a8667f21fde4,6962f838-e792-11e6-508c-a8667f21fde4,1,0,3797b4c6-e336-4cbe-8d0b-0902e1247b42,3797b4c6-e336-4cbe-8d0b-0902e1247b42,1,0,67ebc493-d29a-4614-890a-feb8b5bd884b,67ebc493-d29a-4614-890a-feb8b5bd884b,1,0,dc79e5e2-37d1-4f19-9500-15c1d9be10eb,dc79e5e2-37d1-4f19-9500-15c1d9be10eb,1,0,dba6cb38-79c6-4060-87c5-a993548f36c4,dba6cb38-79c6-4060-87c5-a993548f36c4,1,0,6b44227a-e226-4bcb-8638-06b49f830669,6b44227a-e226-4bcb-8638-06b49f830669,1,0,f2406400-87e9-4df2-bcd3-8f1e3ad62088,f2406400-87e9-4df2-bcd3-8f1e3ad62088,1,0,4f2b6bf8-e792-11e6-508c-a8667f21fde4,4f2b6bf8-e792-11e6-508c-a8667f21fde4,1,0,ecaacedb-bf2d-4736-a9e1-fa89cda85ee6,ecaacedb-bf2d-4736-a9e1-fa89cda85ee6,1,0,a5623e87-3102-4521-b4ab-c41bf2403a1a,a5623e87-3102-4521-b4ab-c41bf2403a1a,1,0,599b1692-5f4e-42ef-ae1a-822ff527a415,599b1692-5f4e-42ef-ae1a-822ff527a415,1,0,ee9abe8a-b3a2-48a9-9157-ea537e83b7e7,ee9abe8a-b3a2-48a9-9157-ea537e83b7e7,1,0,4bb7372a-87a9-426e-b09f-fc0110455b10,4bb7372a-87a9-426e-b09f-fc0110455b10,1,0,ac853a0f-c185-4cdb-9f09-c921770937b5,ac853a0f-c185-4cdb-9f09-c921770937b5,1,0,920a7940-4d12-476d-a909-2231787839a9,920a7940-4d12-476d-a909-2231787839a9,1,0,168fce48-2413-45fc-ad21-9b465121d81b,168fce48-2413-45fc-ad21-9b465121d81b,1,0,d65c8992-aabc-4b67-9893-01862231ebe1,d65c8992-aabc-4b67-9893-01862231ebe1,1,0,23f70675-6a05-4b50-ad68-c55ddc93e857,23f70675-6a05-4b50-ad68-c55ddc93e857,1,0,b3aeeb3c-622d-4e0c-8c13-199f0e431a7d,b3aeeb3c-622d-4e0c-8c13-199f0e431a7d,1,0,ad14c4d1-bc11-44b6-a32c-c00fb89a9ea5,ad14c4d1-bc11-44b6-a32c-c00fb89a9ea5,1,0,83c860a2-d0d7-4b7c-a127-78d86b155cfa,83c860a2-d0d7-4b7c-a127-78d86b155cfa,1,0,06e45039-8bc4-44dd-8a93-2cec34ad51ee,06e45039-8bc4-44dd-8a93-2cec34ad51ee,1,0,46e01647-cbdd-4387-affc-29b92ede8644,46e01647-cbdd-4387-affc-29b92ede8644,1,0,faa44953-118b-4027-a913-c485bca7a93f,faa44953-118b-4027-a913-c485bca7a93f,1,0,c9bd0dcd-98ec-4dc9-869a-e735fd269046,c9bd0dcd-98ec-4dc9-869a-e735fd269046,1,0,d039bfa4-39a0-43d4-ab6a-0697f9d2b375,d039bfa4-39a0-43d4-ab6a-0697f9d2b375,1,0,09072c75-75c7-4050-b674-9454558a1f87,09072c75-75c7-4050-b674-9454558a1f87,1,0,f0c8d2d2-d597-4f09-8257-0fa7524f1e44,f0c8d2d2-d597-4f09-8257-0fa7524f1e44,1,0,3e2f75ab-4143-48ca-83db-3006cb2a8584,3e2f75ab-4143-48ca-83db-3006cb2a8584,1,0,91a82492-5e27-46b6-b1a8-48e89a437715,91a82492-5e27-46b6-b1a8-48e89a437715,1,0,53bc7bfd-8786-464f-a615-ceae2971cbc9,53bc7bfd-8786-464f-a615-ceae2971cbc9,1,0,aa77817b-bd2f-4757-99b0-5e67a1b032d3,aa77817b-bd2f-4757-99b0-5e67a1b032d3,1,0,8cc27936-976d-4f31-91c6-644d15b69c55,8cc27936-976d-4f31-91c6-644d15b69c55,1,0,cf9de063-89f4-4632-b7a1-0cfbea6df643,cf9de063-89f4-4632-b7a1-0cfbea6df643,1,0,ee3bab2c-bd6a-4a33-89a2-78b4dd89bb88,ee3bab2c-bd6a-4a33-89a2-78b4dd89bb88,1,0,2478fb43-57a3-4348-b3d4-61f015e4e231,2478fb43-57a3-4348-b3d4-61f015e4e231,1,0,daa99b45-b2d2-47bc-9d7e-2d21b1a3dfd8,daa99b45-b2d2-47bc-9d7e-2d21b1a3dfd8,1,0,0449c160-01e5-4fe4-8759-5b93c484b467,0449c160-01e5-4fe4-8759-5b93c484b467,1,0,0684e4ba-28c7-4032-a43f-a3a4a37ec50b,0684e4ba-28c7-4032-a43f-a3a4a37ec50b,1,0,bcac012d-b4a9-49bb-9c54-722c741d183c,bcac012d-b4a9-49bb-9c54-722c741d183c,1,0,5370d079-975f-4f7c-95c3-7868147ecc76,5370d079-975f-4f7c-95c3-7868147ecc76,1,0,4dd66f76-e4e0-4f84-9fad-bb922cd51503,4dd66f76-e4e0-4f84-9fad-bb922cd51503,1,0,e76a411a-121b-4791-a785-dd54795eaa7f,e76a411a-121b-4791-a785-dd54795eaa7f,1,0,66844ae3-f098-462c-aef8-1fd38c403760,66844ae3-f098-462c-aef8-1fd38c403760,1,0,be96718a-223d-4597-bccf-2fb7d16dbbcc,be96718a-223d-4597-bccf-2fb7d16dbbcc,1,0,e59e9cfc-43b2-4bdf-a512-b6f87f781cee,e59e9cfc-43b2-4bdf-a512-b6f87f781cee,1,0,eb551461-ae0d-41dd-89fa-2f6e7f3c4840,eb551461-ae0d-41dd-89fa-2f6e7f3c4840,1,0,acec1961-a953-4f7b-b42b-baa1b8b3be14,acec1961-a953-4f7b-b42b-baa1b8b3be14,1,0,eb6394d4-1679-4494-8d23-419f5a714cdc,eb6394d4-1679-4494-8d23-419f5a714cdc,1,0,ffb3c2e4-bb9b-4d12-80bb-79e3c6d5700d,ffb3c2e4-bb9b-4d12-80bb-79e3c6d5700d,1,0,178342fd-1ba5-422d-89d2-4f486e45dae9,178342fd-1ba5-422d-89d2-4f486e45dae9,1,0,7e9fadd6-d0ad-4856-a195-1058f00bf488,7e9fadd6-d0ad-4856-a195-1058f00bf488,1,0,3370d43e-8e97-4411-8123-2bb2bcf60a75,3370d43e-8e97-4411-8123-2bb2bcf60a75,1,0,d9d377c9-406f-4bc9-8076-1f049348b816,d9d377c9-406f-4bc9-8076-1f049348b816,1,0,dcfcb108-3761-43d9-ad2a-29633bd1ae47,dcfcb108-3761-43d9-ad2a-29633bd1ae47,1,0,bac41d45-249f-40b4-a013-008e261369c8,bac41d45-249f-40b4-a013-008e261369c8,1,0,84e34b4a-02e8-4676-8b81-771ddf3c2931,84e34b4a-02e8-4676-8b81-771ddf3c2931,1,0,0aa6a024-66ae-4592-87d6-f7cb2a59f906,0aa6a024-66ae-4592-87d6-f7cb2a59f906,1,0,734b4dc5-dc91-4945-a2d7-cefe56a6e0a6,734b4dc5-dc91-4945-a2d7-cefe56a6e0a6,1,0,bb2dcb37-410d-4a6c-9ace-1f04177d6e88,bb2dcb37-410d-4a6c-9ace-1f04177d6e88,1,0,cb6ecc18-a14f-4c3c-a39d-2cd2d1ab4e03,cb6ecc18-a14f-4c3c-a39d-2cd2d1ab4e03,1,0,f71ac535-74a5-4001-a613-455a9e1bf734,f71ac535-74a5-4001-a613-455a9e1bf734,1,0,55a42b83-b6d2-409b-a8ff-7849b08e07ed,55a42b83-b6d2-409b-a8ff-7849b08e07ed,1,0,61889399-ecc2-442c-a790-a8b27a7a540c,61889399-ecc2-442c-a790-a8b27a7a540c,1,0,ecd3a928-3e59-439c-8f58-ba360f2a8b3c,ecd3a928-3e59-439c-8f58-ba360f2a8b3c,1,0,079ba95c-8293-47e2-b8bd-7acf73c2d880,079ba95c-8293-47e2-b8bd-7acf73c2d880,1,0,fbe1dcf7-c11d-4395-ab3a-c2f986c25419,fbe1dcf7-c11d-4395-ab3a-c2f986c25419,1,0,a5f264a8-a547-4653-abb1-eb1666d527dc,a5f264a8-a547-4653-abb1-eb1666d527dc,1,0,dabae379-6356-497a-aab5-cf102f16a72a,dabae379-6356-497a-aab5-cf102f16a72a,1,0,337370e0-1021-4887-9d38-6c3833c90a5b,337370e0-1021-4887-9d38-6c3833c90a5b,1,0,0ff569eb-d5b8-4ab1-ac77-5e5afd6d44d0,0ff569eb-d5b8-4ab1-ac77-5e5afd6d44d0,1,0,d6f01f1c-801b-4776-ae11-48236103f76a,d6f01f1c-801b-4776-ae11-48236103f76a,1,0,b6fe68cf-657b-40e0-af2e-247607a86519,b6fe68cf-657b-40e0-af2e-247607a86519,1,0,9b0b8191-94b7-428f-be86-e9e4cd24a72f,9b0b8191-94b7-428f-be86-e9e4cd24a72f,1,0,a923dbcb-7146-4445-ad17-f4a32c16a837,a923dbcb-7146-4445-ad17-f4a32c16a837,1,0,41dec792-1d1a-4e06-a54b-a86193b98225,41dec792-1d1a-4e06-a54b-a86193b98225,1,0,52257beb-3e0c-4681-b430-9690398cd13a,52257beb-3e0c-4681-b430-9690398cd13a,1,0,135e637c-c28e-4547-8da2-d897dca54cb2,135e637c-c28e-4547-8da2-d897dca54cb2,1,0,245be006-6d0a-4c9e-97c5-f3c2ddd734f7,245be006-6d0a-4c9e-97c5-f3c2ddd734f7,1,0,56d97df6-9c8b-4fc5-a7a6-52107d38dcd5,56d97df6-9c8b-4fc5-a7a6-52107d38dcd5,1,0,a0be938b-139e-41bd-b067-f5241ff68c90,a0be938b-139e-41bd-b067-f5241ff68c90,1,0,f0402893-724d-4ccd-87f6-d567839b3e70,f0402893-724d-4ccd-87f6-d567839b3e70,1,0,64c84fff-dba1-4f17-bc89-1c69a6f54bea,64c84fff-dba1-4f17-bc89-1c69a6f54bea,1,0,08077c47-4ffd-46f5-9ef5-528ac27bdc75,08077c47-4ffd-46f5-9ef5-528ac27bdc75,1,0,d5a2c4ea-21ce-4673-9aef-9a5eb80a4632,d5a2c4ea-21ce-4673-9aef-9a5eb80a4632,1,0,27089712-b7d7-4a2f-9851-1826d8965f5b,27089712-b7d7-4a2f-9851-1826d8965f5b,1,0,511727f3-b757-4e5b-b7d7-166917029787,511727f3-b757-4e5b-b7d7-166917029787,1,0,a92b3f49-e28a-4f14-8320-7a96d9d08987,a92b3f49-e28a-4f14-8320-7a96d9d08987,1,0,1c34696a-0444-4d3c-8331-17a1b5013368,1c34696a-0444-4d3c-8331-17a1b5013368,1,0,a0b74de9-06b5-416c-9dd0-2f9dc209fe91,a0b74de9-06b5-416c-9dd0-2f9dc209fe91,1,0,5356543a-db9a-4265-b83f-31d45544c8e6,5356543a-db9a-4265-b83f-31d45544c8e6,1,0,857dd311-9c6d-4dba-82d8-283d7b05b09e,857dd311-9c6d-4dba-82d8-283d7b05b09e,1,0,1055d15b-8cb5-4ff0-a526-7fd20a08a96c,1055d15b-8cb5-4ff0-a526-7fd20a08a96c,1,0,8064eb3a-d56c-4517-9db0-b7300149c7c4,8064eb3a-d56c-4517-9db0-b7300149c7c4,1,0,fe926c88-d792-4db3-abcf-3c94dfdcc407,fe926c88-d792-4db3-abcf-3c94dfdcc407,1,0,b1c3a6c1-5245-4a65-8a45-13948be6f6a1,b1c3a6c1-5245-4a65-8a45-13948be6f6a1,1,0,bcbdba9e-0b29-4ea7-a7d5-1de819bf86ec,bcbdba9e-0b29-4ea7-a7d5-1de819bf86ec,1,0,e0c51555-1614-4aa7-a075-c5e1251579ba,e0c51555-1614-4aa7-a075-c5e1251579ba,1,0,c75a1c6d-fa33-4b57-b359-6253aff5f3e7,c75a1c6d-fa33-4b57-b359-6253aff5f3e7,1,0,af88ea84-5742-4c9f-9a02-6d0f25186f72,af88ea84-5742-4c9f-9a02-6d0f25186f72,1,0,51363236-c8eb-4eb7-9692-5c18edc9a5a8,51363236-c8eb-4eb7-9692-5c18edc9a5a8,1,0,e97edb4a-468d-499d-924d-aa4e5ee16548,e97edb4a-468d-499d-924d-aa4e5ee16548,1,0,24366a86-0dae-4a68-a180-d8ea7656a286,24366a86-0dae-4a68-a180-d8ea7656a286,1,0,cb65fbad-69a0-47d8-b4a9-da49274c3eb7,cb65fbad-69a0-47d8-b4a9-da49274c3eb7,1,0,3c03f78e-c904-47da-a0a1-db5d6b9f7254,3c03f78e-c904-47da-a0a1-db5d6b9f7254,1,0,3bf03ed7-6581-4a11-8fc8-748f46c8dad7,3bf03ed7-6581-4a11-8fc8-748f46c8dad7,1,0,0f28c616-162c-4dba-bd22-f7ea5d23ea5a,0f28c616-162c-4dba-bd22-f7ea5d23ea5a,1,0,39bf2771-1d8b-44bb-8d8b-54d046589ebe,39bf2771-1d8b-44bb-8d8b-54d046589ebe,1,0,872521e3-413c-45ac-a6ea-39fe1324bae8,872521e3-413c-45ac-a6ea-39fe1324bae8,1,0,f237a21e-066a-48e6-a5c4-5dc2487c7a3b,f237a21e-066a-48e6-a5c4-5dc2487c7a3b,1,0,8adebe50-a946-40c2-9258-b17efe787e0e,8adebe50-a946-40c2-9258-b17efe787e0e,1,0,8cad6cfd-91d0-4563-800a-d60c8a1b6a03,8cad6cfd-91d0-4563-800a-d60c8a1b6a03,1,0,81ef02df-498d-4af0-8254-dc6730cbf140,81ef02df-498d-4af0-8254-dc6730cbf140,1,0,79ad09ba-875a-46bd-9cd9-9d084bf4f6ea,79ad09ba-875a-46bd-9cd9-9d084bf4f6ea,1,0,2902460a-ed86-41cf-8e8f-895adab9a72f,2902460a-ed86-41cf-8e8f-895adab9a72f,1,0,d12c7296-36ab-41e0-83ef-143484958597,d12c7296-36ab-41e0-83ef-143484958597,1,0,2b6c3bcd-7d2a-4e95-8066-99374002689b,2b6c3bcd-7d2a-4e95-8066-99374002689b,1,0,402f2fe0-4d08-4701-9c8f-0c2bb75815ef,402f2fe0-4d08-4701-9c8f-0c2bb75815ef,1,0,1a4ed7cf-3294-4a5c-9650-75b61d6b2531,1a4ed7cf-3294-4a5c-9650-75b61d6b2531,1,0,73cc5b8b-4cba-4988-b2c6-d974dde9723d,73cc5b8b-4cba-4988-b2c6-d974dde9723d,1,0,1b9bbdb1-b8c0-4459-8b5c-656055482f00,1b9bbdb1-b8c0-4459-8b5c-656055482f00,1,0,d6b72e00-018a-4fdc-b6a4-06dcecf89809,d6b72e00-018a-4fdc-b6a4-06dcecf89809,1,0,9f816562-57f0-473f-8c85-14f7521ffd7f,9f816562-57f0-473f-8c85-14f7521ffd7f,1,0,14077038-2e41-4a05-a476-99f6f88a5c29,14077038-2e41-4a05-a476-99f6f88a5c29,1,0,917b0acc-88fe-4afc-b19b-6da69e060393,917b0acc-88fe-4afc-b19b-6da69e060393,1,0,a091b76e-8ba4-4534-bbb0-9990e69b8603,a091b76e-8ba4-4534-bbb0-9990e69b8603,1,0,867ee5d2-7566-4052-a311-b56e7e46b90d,867ee5d2-7566-4052-a311-b56e7e46b90d,1,0,8f51328b-73a8-46fb-b6db-7b7a84c05c2a,8f51328b-73a8-46fb-b6db-7b7a84c05c2a,1,0,0f0f5b42-2407-44e6-85d7-26ace96b2cd9,0f0f5b42-2407-44e6-85d7-26ace96b2cd9,1,0,ffec426d-2556-46d6-b313-aeca43581865,ffec426d-2556-46d6-b313-aeca43581865,1,0,f32e0941-2061-4e12-bdae-fcb65f91ac28,f32e0941-2061-4e12-bdae-fcb65f91ac28,1,0,6f0e0f44-db5a-4a13-9131-866b77b90f14,6f0e0f44-db5a-4a13-9131-866b77b90f14,1,0,9415e0aa-391f-4798-ad7d-3b854a756de8,9415e0aa-391f-4798-ad7d-3b854a756de8,1,0,f82d5bd6-4c74-4c23-978c-565aae3d752a,f82d5bd6-4c74-4c23-978c-565aae3d752a,1,0,7fba41a5-4faa-412b-b367-b30ced0314c0,7fba41a5-4faa-412b-b367-b30ced0314c0,1,0,37333d0b-3589-4b8b-bf6c-e605e0287b66,37333d0b-3589-4b8b-bf6c-e605e0287b66,1,0,1813c469-da20-46a6-8947-6815b66f64c1,1813c469-da20-46a6-8947-6815b66f64c1,1,0,64e702e9-8934-4356-a1b2-be0e8b390630,64e702e9-8934-4356-a1b2-be0e8b390630,1,0,74880ac4-bdd3-48e6-82a0-a2103da42723,74880ac4-bdd3-48e6-82a0-a2103da42723,1,0,ad083c26-7461-4e94-b524-0174242fbd91,ad083c26-7461-4e94-b524-0174242fbd91,1,0,5ce39370-f918-493f-bb24-53346b6fd836,5ce39370-f918-493f-bb24-53346b6fd836,1,0,84f22fd2-e0d0-42ce-8628-1b13c021a4cb,84f22fd2-e0d0-42ce-8628-1b13c021a4cb,1,0,0e3d2750-bb4c-42b9-9829-60f1480ced9c,0e3d2750-bb4c-42b9-9829-60f1480ced9c,1,0,ddc6761c-a32a-41e1-b110-fdc39ad440d3,ddc6761c-a32a-41e1-b110-fdc39ad440d3,1,0,0b322ee2-b018-4d00-8f05-62ee16e519ff,0b322ee2-b018-4d00-8f05-62ee16e519ff,1,0,0866e282-055a-49bb-9aa5-b1af7c74c344,0866e282-055a-49bb-9aa5-b1af7c74c344,1,0,dad11c2e-08fc-4a6b-8829-8be6c64c15fc,dad11c2e-08fc-4a6b-8829-8be6c64c15fc,1,0,a76b1fd1-ba00-40e6-8756-f17fee449818,a76b1fd1-ba00-40e6-8756-f17fee449818,1,0,5c913626-48d1-4e0a-a423-64078ce59c7b,5c913626-48d1-4e0a-a423-64078ce59c7b,1,0,0a4e6b7a-b380-4547-bc3c-5d6895a5d19a,0a4e6b7a-b380-4547-bc3c-5d6895a5d19a,1,0,7b0ec304-1904-413e-a9c6-ff62e87107dd,7b0ec304-1904-413e-a9c6-ff62e87107dd,1,0,d4dd8c96-914d-496f-b735-ef85ec473605,d4dd8c96-914d-496f-b735-ef85ec473605,1,0,62517db4-59e6-4945-bcd6-b3f1845572bf,62517db4-59e6-4945-bcd6-b3f1845572bf,1,0,a6a9dd40-24cd-4d40-a12d-44f94f8c05a7,a6a9dd40-24cd-4d40-a12d-44f94f8c05a7,1,0,f0f72149-0e7f-441a-b70d-8f47d4977927,f0f72149-0e7f-441a-b70d-8f47d4977927,1,0,776efc3e-ac27-4550-bafd-6e91aa987af2,776efc3e-ac27-4550-bafd-6e91aa987af2,1,0,9f478c85-b72c-40ae-aa08-7ddf73b5b15c,9f478c85-b72c-40ae-aa08-7ddf73b5b15c,1,0,cc438366-85ea-48be-8b74-d05cddb1fc51,cc438366-85ea-48be-8b74-d05cddb1fc51,1,0,4688fd3b-4a92-4ed8-b111-0cf22a729b1c,4688fd3b-4a92-4ed8-b111-0cf22a729b1c,1,0,92029d1f-0472-4aaa-8fd6-9fb3c3cf414e,92029d1f-0472-4aaa-8fd6-9fb3c3cf414e,1,0,3271b800-1825-422f-97bb-757baf403e90,3271b800-1825-422f-97bb-757baf403e90,1,0,6fd6efc1-facc-4ece-a5b3-3dce6acca81d,6fd6efc1-facc-4ece-a5b3-3dce6acca81d,1,0,4ee82868-7a20-4c3a-91f9-42a6bf53ac37,4ee82868-7a20-4c3a-91f9-42a6bf53ac37,1,0,a040c756-4687-4bfd-a690-b122d3c490e5,a040c756-4687-4bfd-a690-b122d3c490e5,1,0,bd5940d5-13fd-4f59-bb6c-614f93f9c8e4,bd5940d5-13fd-4f59-bb6c-614f93f9c8e4,1,0,961a9801-3956-4ea0-b0d3-908f09bf4929,961a9801-3956-4ea0-b0d3-908f09bf4929,1,0,6fac5c14-e126-4342-9078-edf1d0efcbf2,6fac5c14-e126-4342-9078-edf1d0efcbf2,1,0,0a3325a1-21c4-4997-882f-4ac2edc175f0,0a3325a1-21c4-4997-882f-4ac2edc175f0,1,0,71102d3f-f020-4d6f-9582-9a7eefb4e797,71102d3f-f020-4d6f-9582-9a7eefb4e797,1,0,53ef6849-a3f3-4171-9167-f349f2d6a736,53ef6849-a3f3-4171-9167-f349f2d6a736,1,0,3f588bd3-d461-42b7-8ab1-386af6399d56,3f588bd3-d461-42b7-8ab1-386af6399d56,1,0,c04ff85e-b4af-4a9f-b0e9-c5c65e3d10a1,c04ff85e-b4af-4a9f-b0e9-c5c65e3d10a1,1,0,8c576405-29c1-46b1-ab2e-40e52c21cab0,8c576405-29c1-46b1-ab2e-40e52c21cab0,1,0,b33a89da-8589-4902-83fa-6545e5fce23e,b33a89da-8589-4902-83fa-6545e5fce23e,1,0,f0620d5a-e1fe-419f-af37-e0f462f97e8d,f0620d5a-e1fe-419f-af37-e0f462f97e8d,1,0,3e2f2ae1-c809-43fc-8276-b0a16a92858c,3e2f2ae1-c809-43fc-8276-b0a16a92858c,1,0,b58942ca-1367-4e1d-b5b4-7d973d0fecd8,b58942ca-1367-4e1d-b5b4-7d973d0fecd8,1,0,1a7c7427-bead-4655-9dd6-df6e722663c5,1a7c7427-bead-4655-9dd6-df6e722663c5,1,0,3ad08f4a-6202-4099-b6cc-bc116e6731a0,3ad08f4a-6202-4099-b6cc-bc116e6731a0,1,0,fd96c8ab-602a-4735-b168-52b501e80351,fd96c8ab-602a-4735-b168-52b501e80351,1,0,b1dc619d-8d91-4f7a-aa50-1d07ff9aebdc,b1dc619d-8d91-4f7a-aa50-1d07ff9aebdc,1,0,370f0c75-d2c5-4be5-a633-4bcc77998ece,370f0c75-d2c5-4be5-a633-4bcc77998ece,1,0,f80b505f-b4ff-45fb-bd88-74b274ae9d2b,f80b505f-b4ff-45fb-bd88-74b274ae9d2b,1,0,2139532c-f6cb-4393-936e-cc912e5adca9,2139532c-f6cb-4393-936e-cc912e5adca9,1,0,755c3eca-4956-4a44-9b38-c11dae00b87f,755c3eca-4956-4a44-9b38-c11dae00b87f,1,0,f57c558c-2c94-4b9d-8697-448d0548ab1a,f57c558c-2c94-4b9d-8697-448d0548ab1a,1,0,a310c09f-4d3a-4d3a-9ad5-7a5735a33a1d,a310c09f-4d3a-4d3a-9ad5-7a5735a33a1d,1,0,c32db021-eca1-4b67-aa85-3d6e28c51b53,c32db021-eca1-4b67-aa85-3d6e28c51b53,1,0,e9ed0ee4-3fbe-4093-9078-cb265ed6842c,e9ed0ee4-3fbe-4093-9078-cb265ed6842c,1,0,02466dcf-02a1-4853-814f-a913a9baba45,02466dcf-02a1-4853-814f-a913a9baba45,1,0,c4a40dc9-b619-4219-9d9a-e11f49a14fb1,c4a40dc9-b619-4219-9d9a-e11f49a14fb1,1,0,62b75eb2-42e1-4484-a77f-b676dd36f3d4,62b75eb2-42e1-4484-a77f-b676dd36f3d4,1,0,5e28e22a-dd6e-4703-92bd-13f5cb0dc023,5e28e22a-dd6e-4703-92bd-13f5cb0dc023,1,0,856510ee-74f5-44e9-a3c0-1c60cfb7a787,856510ee-74f5-44e9-a3c0-1c60cfb7a787,1,0,28b761c6-c286-4125-a4ed-da602e49950f,28b761c6-c286-4125-a4ed-da602e49950f,1,0,4ac66a22-c736-4e06-a8aa-ef4a71788c65,4ac66a22-c736-4e06-a8aa-ef4a71788c65,1,0,9cfe9281-8840-4077-824d-a2c9cbb0b730,9cfe9281-8840-4077-824d-a2c9cbb0b730,1,0,76389fa9-b9e0-492e-9c93-24b5f3bf094c,76389fa9-b9e0-492e-9c93-24b5f3bf094c,1,0,23e3de37-9315-45e6-bbfd-60aae28c25ae,23e3de37-9315-45e6-bbfd-60aae28c25ae,1,0,a9957f43-8b6f-4d98-a2d8-77b78047494c,a9957f43-8b6f-4d98-a2d8-77b78047494c,1,0,e470e15d-1b06-43cb-a9f9-ba489e2f596f,e470e15d-1b06-43cb-a9f9-ba489e2f596f,1,0,0408002c-9255-43a2-8022-82f02ee0e8f4,0408002c-9255-43a2-8022-82f02ee0e8f4,1,0,88f44c9b-216d-4d7e-bc88-1e6b253ed01e,88f44c9b-216d-4d7e-bc88-1e6b253ed01e,1,0,1851afd4-5324-45c1-b754-54e65943f945,1851afd4-5324-45c1-b754-54e65943f945,1,0,bc5eca9b-32d8-44e0-a127-8ad1f47d7957,bc5eca9b-32d8-44e0-a127-8ad1f47d7957,1,0,6e5307ea-8fbf-4177-bcc8-f163a6ce1b40,6e5307ea-8fbf-4177-bcc8-f163a6ce1b40,1,0,0fa77ef7-a836-4459-9bca-6010d0bdfc7f,0fa77ef7-a836-4459-9bca-6010d0bdfc7f,1,0,c322dc4a-30f3-4d23-9824-4a01c496408d,c322dc4a-30f3-4d23-9824-4a01c496408d,1,0,dcff004c-1b61-4a19-b977-ea21bf688614,dcff004c-1b61-4a19-b977-ea21bf688614,0,0,0,1,0,0,0,1,0,1,0,1,1,1,1} \ No newline at end of file +{6,1,1,ff823434-cd1a-417e-9d66-b8c4aff95f9a,1,843c679d-b1b6-4b0b-b31a-2dcf21c549c7,"3.1.12.205","Фирма ""1С""","БиблиотекаСтандартныхПодсистем",8119,1,0,c54171b8-bd7d-45c2-bd64-9266fb74f943,c54171b8-bd7d-45c2-bd64-9266fb74f943,1,0,db4a9ccb-9ef5-4b3c-8577-b6fe5db1b62e,db4a9ccb-9ef5-4b3c-8577-b6fe5db1b62e,1,0,9233322b-dfdb-4c66-91fe-1299292d40a5,9233322b-dfdb-4c66-91fe-1299292d40a5,1,0,fa04bf1e-69c0-4998-a939-039fcaba83c8,fa04bf1e-69c0-4998-a939-039fcaba83c8,1,0,7795348b-2f52-47f7-bf00-e11e5e795a43,7795348b-2f52-47f7-bf00-e11e5e795a43,1,0,0421b67e-ed26-491d-ab98-ec59002ed4ce,0421b67e-ed26-491d-ab98-ec59002ed4ce,1,0,bb47ced2-31f9-4870-8633-20b986e53ccc,bb47ced2-31f9-4870-8633-20b986e53ccc,1,0,739c01a9-1125-45ef-ab4e-8c73af4eeff0,739c01a9-1125-45ef-ab4e-8c73af4eeff0,1,0,cdbd26b1-9583-46e8-adf7-8cc705639892,cdbd26b1-9583-46e8-adf7-8cc705639892,1,0,c0e38c3e-7088-4e35-9d84-2d0ab9655402,c0e38c3e-7088-4e35-9d84-2d0ab9655402,1,0,1098786f-dd24-4cce-b212-be0cb5f01735,1098786f-dd24-4cce-b212-be0cb5f01735,1,0,3c0037f3-4422-4836-b116-8c72e32bdd55,3c0037f3-4422-4836-b116-8c72e32bdd55,1,0,6f7c6c31-206b-4010-bdad-1ad2e304f154,6f7c6c31-206b-4010-bdad-1ad2e304f154,1,0,a8659e53-8c6b-4b0c-9736-fe93a91e4d69,a8659e53-8c6b-4b0c-9736-fe93a91e4d69,1,0,fe9a1d1a-19c0-499f-8e1b-09cadabe882f,fe9a1d1a-19c0-499f-8e1b-09cadabe882f,1,0,5b68d479-7880-44de-84e3-7f578b43f0dc,5b68d479-7880-44de-84e3-7f578b43f0dc,1,0,baad68ea-0976-4bdf-8e0e-7ee5c25e3d51,baad68ea-0976-4bdf-8e0e-7ee5c25e3d51,1,0,4cbbdbaf-1f3a-46cd-8c42-28cdcfa32c06,4cbbdbaf-1f3a-46cd-8c42-28cdcfa32c06,1,0,b4629308-42de-4ce8-8591-cf0c2399a9a2,b4629308-42de-4ce8-8591-cf0c2399a9a2,1,0,c7e984ae-1dbb-4041-b18a-bfd0d63a002f,c7e984ae-1dbb-4041-b18a-bfd0d63a002f,1,0,bb0424b8-dfd1-4a27-bd66-9dea3ffc77c4,bb0424b8-dfd1-4a27-bd66-9dea3ffc77c4,1,0,a4ac0a50-ee39-4dc1-b84f-eec8fe485f03,a4ac0a50-ee39-4dc1-b84f-eec8fe485f03,1,0,1861ee4f-fd8c-4afa-8441-c074bf51f67e,1861ee4f-fd8c-4afa-8441-c074bf51f67e,1,0,de7ed8f7-3c02-47e0-aea8-4747ac68a5d5,de7ed8f7-3c02-47e0-aea8-4747ac68a5d5,1,0,b93b8760-6200-40ee-8bdc-875ba80a6155,b93b8760-6200-40ee-8bdc-875ba80a6155,1,0,e8b248d9-9049-456a-9c7d-7a0462cc67ab,e8b248d9-9049-456a-9c7d-7a0462cc67ab,1,0,d4562287-440d-4462-9de2-7097ccbf3764,d4562287-440d-4462-9de2-7097ccbf3764,1,0,1983fe34-c984-4659-ba41-0e94504f8989,1983fe34-c984-4659-ba41-0e94504f8989,1,0,ec797c75-02c5-4cf5-9dd4-26cd46c99519,ec797c75-02c5-4cf5-9dd4-26cd46c99519,1,0,6fccdf59-fc99-4a2b-a144-fffe438a147c,6fccdf59-fc99-4a2b-a144-fffe438a147c,1,0,153e11ac-f898-46a5-98c6-734adb933ca2,153e11ac-f898-46a5-98c6-734adb933ca2,1,0,af8bd73a-d8e8-487d-8f36-d835ab10ea3a,af8bd73a-d8e8-487d-8f36-d835ab10ea3a,1,0,08a413ff-bebd-42e5-8ff3-2115746a0844,08a413ff-bebd-42e5-8ff3-2115746a0844,1,0,7d8acec9-f5a9-411e-921c-446ed0dd3332,7d8acec9-f5a9-411e-921c-446ed0dd3332,1,0,3eca2d7c-5946-4d13-ba84-e3ab5ef38b5b,3eca2d7c-5946-4d13-ba84-e3ab5ef38b5b,1,0,f24de2ea-fcda-4052-b90f-e9d84314c4f2,f24de2ea-fcda-4052-b90f-e9d84314c4f2,1,0,ff8ae395-c740-4a30-a048-0d57eef6267f,ff8ae395-c740-4a30-a048-0d57eef6267f,1,0,51d06532-f61a-4ed5-afaa-cc4563633e0c,51d06532-f61a-4ed5-afaa-cc4563633e0c,1,0,0e49d980-581b-459f-a4b0-024e8c97e4c0,0e49d980-581b-459f-a4b0-024e8c97e4c0,1,0,da9b32e6-5b93-45a6-84b2-238d57541e18,da9b32e6-5b93-45a6-84b2-238d57541e18,1,0,e43d69c8-b284-47da-b236-611bc94a15b6,e43d69c8-b284-47da-b236-611bc94a15b6,1,0,31eeaa05-6c49-41fe-b840-1edbad4ccac7,31eeaa05-6c49-41fe-b840-1edbad4ccac7,1,0,842c8662-8f39-405e-9665-cbdabc116159,842c8662-8f39-405e-9665-cbdabc116159,1,0,a3001de6-272f-444e-a8db-ec8cc3a670a2,a3001de6-272f-444e-a8db-ec8cc3a670a2,1,0,7ee7cccc-4e52-464c-9c20-5c0dfbed7e5f,7ee7cccc-4e52-464c-9c20-5c0dfbed7e5f,1,0,fca4b033-02c4-4d61-9e51-87783c3cef1a,fca4b033-02c4-4d61-9e51-87783c3cef1a,1,0,396ef757-d7f6-411f-8c4c-1acb1106a009,396ef757-d7f6-411f-8c4c-1acb1106a009,1,0,491b9625-62ce-436b-8245-60decacc4552,491b9625-62ce-436b-8245-60decacc4552,1,0,839e29b1-a0d2-40fa-9f3e-46e66b943358,839e29b1-a0d2-40fa-9f3e-46e66b943358,1,0,c56d2cc7-630a-441b-b23f-ba78c34849bd,c56d2cc7-630a-441b-b23f-ba78c34849bd,1,0,9aecf4f5-46ed-4d1c-a584-cd028e467895,9aecf4f5-46ed-4d1c-a584-cd028e467895,1,0,21d92c2f-6c78-43ce-b1f4-59d7845b5a91,21d92c2f-6c78-43ce-b1f4-59d7845b5a91,1,0,a1c379be-43d3-4e02-83bb-d2e7de2d4ae3,a1c379be-43d3-4e02-83bb-d2e7de2d4ae3,1,0,a1f10624-22e9-4a04-b370-fd085bdd0f67,a1f10624-22e9-4a04-b370-fd085bdd0f67,1,0,2a4b10be-3cd7-4755-905f-7b4d02ff6a22,2a4b10be-3cd7-4755-905f-7b4d02ff6a22,1,0,3cffb795-2a28-4beb-92f4-5813f5994022,3cffb795-2a28-4beb-92f4-5813f5994022,1,0,3323ca68-1382-4710-a933-23fc56588935,3323ca68-1382-4710-a933-23fc56588935,1,0,d6b12775-3255-42b8-88b2-62684f873e7d,d6b12775-3255-42b8-88b2-62684f873e7d,1,0,cc23d903-ccc5-42f4-862f-5e7278c4e346,cc23d903-ccc5-42f4-862f-5e7278c4e346,1,0,98f033e0-fa40-46e0-b51a-87a066749a35,98f033e0-fa40-46e0-b51a-87a066749a35,1,0,e8b4cb2d-1180-4101-954a-4cb5464f198c,e8b4cb2d-1180-4101-954a-4cb5464f198c,1,0,a379287d-1ce8-460d-a503-910e728e28f1,a379287d-1ce8-460d-a503-910e728e28f1,1,0,f765c4ba-c677-42ac-8d0c-43bb485405b9,f765c4ba-c677-42ac-8d0c-43bb485405b9,1,0,2fd1287d-d96d-4480-baf7-8815ae5ffbfb,2fd1287d-d96d-4480-baf7-8815ae5ffbfb,1,0,d8c58e53-b7b9-4426-bdfa-d0816adf8cc1,d8c58e53-b7b9-4426-bdfa-d0816adf8cc1,1,0,4009cb3a-6754-481f-911b-907558cea38a,4009cb3a-6754-481f-911b-907558cea38a,1,0,653a7fd8-91c7-49aa-aa63-45da087e0d0a,653a7fd8-91c7-49aa-aa63-45da087e0d0a,1,0,d7cf3981-cf63-4a21-868b-8175a7704a8f,d7cf3981-cf63-4a21-868b-8175a7704a8f,1,0,0ae93712-74e8-41c7-8f2d-4dfc8983697d,0ae93712-74e8-41c7-8f2d-4dfc8983697d,1,0,9e4dfdfa-ec05-4c9e-89bd-fc24f60f2678,9e4dfdfa-ec05-4c9e-89bd-fc24f60f2678,1,0,64f548c8-c1fc-434e-b3ee-5be367ead1db,64f548c8-c1fc-434e-b3ee-5be367ead1db,1,0,cd592a5d-b184-4558-8a28-7079ccf28b89,cd592a5d-b184-4558-8a28-7079ccf28b89,1,0,2009c673-c1a5-45fc-8da2-a36c435085a6,2009c673-c1a5-45fc-8da2-a36c435085a6,1,0,ab7e5f9a-1dfe-4165-a540-21f45ae1d94d,ab7e5f9a-1dfe-4165-a540-21f45ae1d94d,1,0,5d16e042-3889-4851-86f1-bc43bf06ee88,5d16e042-3889-4851-86f1-bc43bf06ee88,1,0,e5a0e7c2-6186-43a3-a1c5-1f16990602a4,e5a0e7c2-6186-43a3-a1c5-1f16990602a4,1,0,3d47838b-e1aa-4acb-96bf-6de2f9be8bdb,3d47838b-e1aa-4acb-96bf-6de2f9be8bdb,1,0,1a8a9f48-315d-4d71-b092-0530801f8fec,1a8a9f48-315d-4d71-b092-0530801f8fec,1,0,e0d3efe0-a321-4790-ba5d-e549a91a3ec6,e0d3efe0-a321-4790-ba5d-e549a91a3ec6,1,0,e39ecc8a-ce81-483d-85de-b0488c8b7749,e39ecc8a-ce81-483d-85de-b0488c8b7749,1,0,8f3b124f-bf85-4307-8f0c-47be1fb5c8b0,8f3b124f-bf85-4307-8f0c-47be1fb5c8b0,1,0,e15c3525-3453-4b62-834e-7c69f9efea51,e15c3525-3453-4b62-834e-7c69f9efea51,1,0,1514eaff-faea-4d82-9465-d0d5292bb31d,1514eaff-faea-4d82-9465-d0d5292bb31d,1,0,6d39c6df-8cd4-47ad-9125-252b37d94575,6d39c6df-8cd4-47ad-9125-252b37d94575,1,0,bc89af7a-1971-4245-8d88-1a5a50c50a8b,bc89af7a-1971-4245-8d88-1a5a50c50a8b,1,0,ad73f3a3-1dad-4920-af41-bda2b947a2f7,ad73f3a3-1dad-4920-af41-bda2b947a2f7,1,0,98b67b5a-3550-4a64-9e07-07fcc9154c73,98b67b5a-3550-4a64-9e07-07fcc9154c73,1,0,ad7c6165-2e44-4808-a77a-526882cf5dea,ad7c6165-2e44-4808-a77a-526882cf5dea,1,0,fd930b50-4ada-4e7f-8bfd-ed9a7c4e8964,fd930b50-4ada-4e7f-8bfd-ed9a7c4e8964,1,0,fa2a9ef2-00a1-44f4-a82c-6c7288dd62dc,fa2a9ef2-00a1-44f4-a82c-6c7288dd62dc,1,0,b7e435a9-6107-4d02-a949-cff793462e31,b7e435a9-6107-4d02-a949-cff793462e31,1,0,f0cda8f5-56f5-423b-8c1c-7113433ebf25,f0cda8f5-56f5-423b-8c1c-7113433ebf25,1,0,1a220e88-428b-4d85-926d-e572bf19997c,1a220e88-428b-4d85-926d-e572bf19997c,1,0,ca0d938b-244e-421f-9fa4-320784b9f416,ca0d938b-244e-421f-9fa4-320784b9f416,1,0,a108b11d-a489-4684-84ea-d5377c7394de,a108b11d-a489-4684-84ea-d5377c7394de,1,0,289a2d84-2477-4177-a6ef-507e2cadeea2,289a2d84-2477-4177-a6ef-507e2cadeea2,1,0,1c877cee-d9b8-48dc-8d79-04d27bb522f7,1c877cee-d9b8-48dc-8d79-04d27bb522f7,1,0,dd911418-ee16-4413-bfe9-4a5a238d3ce1,dd911418-ee16-4413-bfe9-4a5a238d3ce1,1,0,61cd6eab-6bab-4382-986e-4c7fc44f369b,61cd6eab-6bab-4382-986e-4c7fc44f369b,1,0,ea36c426-2b43-4232-9978-0104bafd345d,ea36c426-2b43-4232-9978-0104bafd345d,1,0,757b547b-b79c-459a-a64a-eef19a09a38f,757b547b-b79c-459a-a64a-eef19a09a38f,1,0,3d428bdf-c41b-43ac-957e-2943406c832c,3d428bdf-c41b-43ac-957e-2943406c832c,1,0,85cbc0b7-6aa5-455b-abed-7bc659d9ad51,85cbc0b7-6aa5-455b-abed-7bc659d9ad51,1,0,950f8fd5-fefa-4bfb-97a0-38d77ae830dc,950f8fd5-fefa-4bfb-97a0-38d77ae830dc,1,0,cbbe7903-842c-470e-a2d6-7928df8f13e9,cbbe7903-842c-470e-a2d6-7928df8f13e9,1,0,e02597c4-bf45-4bb6-931d-62d2244f6c58,e02597c4-bf45-4bb6-931d-62d2244f6c58,1,0,75561d71-4b06-40fc-8a46-ed5d33c80dea,75561d71-4b06-40fc-8a46-ed5d33c80dea,1,0,42544966-445d-41b8-b6a0-a52c64758232,42544966-445d-41b8-b6a0-a52c64758232,1,0,a92d8a5c-b595-4c6c-9f1d-5e85b1c996b4,a92d8a5c-b595-4c6c-9f1d-5e85b1c996b4,1,0,bd68dd13-66bb-40ed-8f4b-0767b7063ffd,bd68dd13-66bb-40ed-8f4b-0767b7063ffd,1,0,5578afd2-5aed-4164-8467-52a66f4773c4,5578afd2-5aed-4164-8467-52a66f4773c4,1,0,9eea8645-1ba7-4faf-9c29-868bf99964dd,9eea8645-1ba7-4faf-9c29-868bf99964dd,1,0,e07ac651-07b9-4664-95e8-f3f5a51ea6c8,e07ac651-07b9-4664-95e8-f3f5a51ea6c8,1,0,654523be-93d9-4faa-9a35-ce2fede13820,654523be-93d9-4faa-9a35-ce2fede13820,1,0,0c44fdea-7b81-45be-87f5-d64456a9d379,0c44fdea-7b81-45be-87f5-d64456a9d379,1,0,d9bad22e-4049-4371-86a3-1b00ae6215af,d9bad22e-4049-4371-86a3-1b00ae6215af,1,0,d09d6f21-cdd0-485e-bd2c-92092a1aefef,d09d6f21-cdd0-485e-bd2c-92092a1aefef,1,0,2fc92784-d7b0-4209-ba06-e54bed2f160f,2fc92784-d7b0-4209-ba06-e54bed2f160f,1,0,d5a5f53b-9cd5-4036-a379-31680cec3c24,d5a5f53b-9cd5-4036-a379-31680cec3c24,1,0,85e05ed7-25ed-4148-8247-86ff531ec48d,85e05ed7-25ed-4148-8247-86ff531ec48d,1,0,dcd34215-200c-4d3c-828c-4c3cd8b17a81,dcd34215-200c-4d3c-828c-4c3cd8b17a81,1,0,e5b8ea5c-1d08-4f0a-a8f6-358b41e2e9f2,e5b8ea5c-1d08-4f0a-a8f6-358b41e2e9f2,1,0,4a046c9b-98a0-4d4f-8e0b-b162d3c6bfc5,4a046c9b-98a0-4d4f-8e0b-b162d3c6bfc5,1,0,a4e4c91c-fd95-4369-98e3-51ffba79937b,a4e4c91c-fd95-4369-98e3-51ffba79937b,1,0,0a83f9ec-eabe-4e8f-9fa9-0067acad6fc4,0a83f9ec-eabe-4e8f-9fa9-0067acad6fc4,1,0,d343d4e4-d07f-48c3-9db1-774b0d6c1134,d343d4e4-d07f-48c3-9db1-774b0d6c1134,1,0,14ef2331-6d9b-4cf1-90f3-7d4ac410439d,14ef2331-6d9b-4cf1-90f3-7d4ac410439d,1,0,5797e28d-1318-4728-8b17-bcb78d85349a,5797e28d-1318-4728-8b17-bcb78d85349a,1,0,04ab13b1-ffc2-47f5-aa0d-5850dcbd4a62,04ab13b1-ffc2-47f5-aa0d-5850dcbd4a62,1,0,9f9e6146-17ce-4296-a89f-33dfe4d0468d,9f9e6146-17ce-4296-a89f-33dfe4d0468d,1,0,3cf15377-a5bb-4c37-9780-0dbff8d3d5bb,3cf15377-a5bb-4c37-9780-0dbff8d3d5bb,1,0,3aa020db-a811-4fb9-9ea9-00a3359fbb53,3aa020db-a811-4fb9-9ea9-00a3359fbb53,1,0,968588bb-ee60-4399-955a-3ec4228d3c40,968588bb-ee60-4399-955a-3ec4228d3c40,1,0,b8b37039-8070-4b0c-9270-7e43850a6c01,b8b37039-8070-4b0c-9270-7e43850a6c01,1,0,c90e64cf-f5d4-47b9-8243-7177ac42202e,c90e64cf-f5d4-47b9-8243-7177ac42202e,1,0,23dbb528-7ea8-44ae-a1f2-b7608118666e,23dbb528-7ea8-44ae-a1f2-b7608118666e,1,0,b9627855-6773-4a59-b7d3-f9e2e565cd9e,b9627855-6773-4a59-b7d3-f9e2e565cd9e,1,0,ad87bd29-0ad1-4da4-ac62-38e714e0cb9f,ad87bd29-0ad1-4da4-ac62-38e714e0cb9f,1,0,46692974-34aa-45e1-8fec-9b36064073cd,46692974-34aa-45e1-8fec-9b36064073cd,1,0,a6308250-2b1b-40ef-bd20-589d519e3c38,a6308250-2b1b-40ef-bd20-589d519e3c38,1,0,22eafd3b-dc42-4a99-89af-3cd5311dc29f,22eafd3b-dc42-4a99-89af-3cd5311dc29f,1,0,c67f671a-3c83-44f4-9c6a-e06667ac8da6,c67f671a-3c83-44f4-9c6a-e06667ac8da6,1,0,283ce432-3553-4de9-94a2-ca9a590437f5,283ce432-3553-4de9-94a2-ca9a590437f5,1,0,1fbd4cfa-58cb-41ea-920e-a39cfa6ad90c,1fbd4cfa-58cb-41ea-920e-a39cfa6ad90c,1,0,5a83b75a-38b0-4d15-9c6f-c201fa97e485,5a83b75a-38b0-4d15-9c6f-c201fa97e485,1,0,0da019ca-1fc7-4aff-8998-3ddcccf10872,0da019ca-1fc7-4aff-8998-3ddcccf10872,1,0,7102d4fa-92f2-4fba-ad09-a33dbc71bef2,7102d4fa-92f2-4fba-ad09-a33dbc71bef2,1,0,b73ca324-2d38-4fdd-b620-c2ffc8354c41,b73ca324-2d38-4fdd-b620-c2ffc8354c41,1,0,34b0e268-497d-44d4-b822-84909d0685aa,34b0e268-497d-44d4-b822-84909d0685aa,1,0,8961a859-2203-4678-ae1f-63e2474a787a,8961a859-2203-4678-ae1f-63e2474a787a,1,0,fe63db47-3ece-4518-b6a2-0b6499f60a61,fe63db47-3ece-4518-b6a2-0b6499f60a61,1,0,f6dd250e-75fd-47fc-abcb-79ea19ebd747,f6dd250e-75fd-47fc-abcb-79ea19ebd747,1,0,53c41e6c-89b0-4818-9832-02140373979b,53c41e6c-89b0-4818-9832-02140373979b,1,0,671afc3e-7589-49d8-95a5-1cf195c3b2f8,671afc3e-7589-49d8-95a5-1cf195c3b2f8,1,0,47accdc7-8fa0-4996-9305-c42b6ca12df9,47accdc7-8fa0-4996-9305-c42b6ca12df9,1,0,57e75b31-13b3-46fc-8ec4-7570ab0e9928,57e75b31-13b3-46fc-8ec4-7570ab0e9928,1,0,5abc496c-5745-4220-9fdc-bac092717871,5abc496c-5745-4220-9fdc-bac092717871,1,0,8ad81449-0b75-4775-a841-ca7fc7bf0d43,8ad81449-0b75-4775-a841-ca7fc7bf0d43,1,0,a1bc6cbe-6b80-414c-8a56-ed253d93524b,a1bc6cbe-6b80-414c-8a56-ed253d93524b,1,0,4d2f1acc-e206-4a0c-af9f-e360c4c30c4b,4d2f1acc-e206-4a0c-af9f-e360c4c30c4b,1,0,d81931b7-8ed8-4e4b-ac25-fedff3955ae0,d81931b7-8ed8-4e4b-ac25-fedff3955ae0,1,0,bda7d180-e2b8-4e04-ae3e-fc3f20202f4e,bda7d180-e2b8-4e04-ae3e-fc3f20202f4e,1,0,8375cfc8-0f27-404b-8c27-3268b22614b3,8375cfc8-0f27-404b-8c27-3268b22614b3,1,0,00bc465c-ea1b-4099-a4f1-a69f5b9a36cc,00bc465c-ea1b-4099-a4f1-a69f5b9a36cc,1,0,bbf65684-1382-4224-b1e8-fbfc4a615fbe,bbf65684-1382-4224-b1e8-fbfc4a615fbe,1,0,5e58dfe4-a93c-4910-95e5-765e33cc11ef,5e58dfe4-a93c-4910-95e5-765e33cc11ef,1,0,eced4ded-b59e-412c-a01f-1db3fb0b436a,eced4ded-b59e-412c-a01f-1db3fb0b436a,1,0,405f04ba-1bcd-478c-9ede-0d7a286a051f,405f04ba-1bcd-478c-9ede-0d7a286a051f,1,0,6b29b4b3-df0a-42f7-b89f-809ffbdacf02,6b29b4b3-df0a-42f7-b89f-809ffbdacf02,1,0,43d8dd53-df3e-407e-a3c1-5b893cc1976c,43d8dd53-df3e-407e-a3c1-5b893cc1976c,1,0,7741dfee-c4cc-454d-8e01-99ee82a78b5a,7741dfee-c4cc-454d-8e01-99ee82a78b5a,1,0,67f79e89-b922-4949-aec9-7d411ab727ed,67f79e89-b922-4949-aec9-7d411ab727ed,1,0,61e246f4-fe19-4377-8f69-fd1cb90e3f88,61e246f4-fe19-4377-8f69-fd1cb90e3f88,1,0,05c9e6c3-3e1c-4311-99ac-ec4d59a37205,05c9e6c3-3e1c-4311-99ac-ec4d59a37205,1,0,d437805b-42a9-439d-aef8-abbebe280b69,d437805b-42a9-439d-aef8-abbebe280b69,1,0,b33ccec0-a085-4e91-a26d-c262775d92e8,b33ccec0-a085-4e91-a26d-c262775d92e8,1,0,8adeeac2-d2d0-4d90-b7cb-c7871da477d5,8adeeac2-d2d0-4d90-b7cb-c7871da477d5,1,0,9e082d71-175a-4e80-8cca-6b538d3240eb,9e082d71-175a-4e80-8cca-6b538d3240eb,1,0,b8c4aff0-a36d-4be9-9a5e-b0873d83ff15,b8c4aff0-a36d-4be9-9a5e-b0873d83ff15,1,0,43d91051-d5a2-4d2a-8447-7fa917e5ea38,43d91051-d5a2-4d2a-8447-7fa917e5ea38,1,0,e60e1771-c8c0-44b6-b1d3-24e9529d9bd0,e60e1771-c8c0-44b6-b1d3-24e9529d9bd0,1,0,350535b3-05b5-49e7-b4af-1c2b8e645083,350535b3-05b5-49e7-b4af-1c2b8e645083,1,0,68704139-32bb-4b00-b439-147025d06a35,68704139-32bb-4b00-b439-147025d06a35,1,0,8ddf0059-b3d5-4002-a262-5da622d0ccd1,8ddf0059-b3d5-4002-a262-5da622d0ccd1,1,0,e2b6c06a-8202-4cd3-8282-6111c2160afb,e2b6c06a-8202-4cd3-8282-6111c2160afb,1,0,235139f7-1375-4c6b-b6c6-a2e3ca06edc3,235139f7-1375-4c6b-b6c6-a2e3ca06edc3,1,0,df80f175-7f2b-44f8-90d4-118e2e157356,df80f175-7f2b-44f8-90d4-118e2e157356,1,0,984108a2-b514-4cc9-861a-1e7404ac9064,984108a2-b514-4cc9-861a-1e7404ac9064,1,0,2bfd1161-8b6e-415c-92db-743a95373c7e,2bfd1161-8b6e-415c-92db-743a95373c7e,1,0,5a88f624-7b7e-43fe-8bc4-ae85d832a855,5a88f624-7b7e-43fe-8bc4-ae85d832a855,1,0,6b8b9cc6-cba3-49b2-bf4a-43ce44a82fc1,6b8b9cc6-cba3-49b2-bf4a-43ce44a82fc1,1,0,42e39ef7-268f-4053-b4e5-4bceab17d3e4,42e39ef7-268f-4053-b4e5-4bceab17d3e4,1,0,1b5b9b46-2bd7-4ba8-8c68-d1178ea72e0f,1b5b9b46-2bd7-4ba8-8c68-d1178ea72e0f,1,0,c79c6554-2934-4c8b-9b16-f07c8702f7b1,c79c6554-2934-4c8b-9b16-f07c8702f7b1,1,0,9125bcb2-0136-4737-ba3f-ec2b0764b4da,9125bcb2-0136-4737-ba3f-ec2b0764b4da,1,0,0302674f-944a-4a45-94c8-a44f93fc5a9a,0302674f-944a-4a45-94c8-a44f93fc5a9a,1,0,69504e02-a88b-4ad6-8890-604928b5a78a,69504e02-a88b-4ad6-8890-604928b5a78a,1,0,b49b47fb-d4dc-4efe-ad07-e8705d787e72,b49b47fb-d4dc-4efe-ad07-e8705d787e72,1,0,7df36398-7752-4f51-9978-1bcb4bcdd062,7df36398-7752-4f51-9978-1bcb4bcdd062,1,0,9fd55b7f-209b-4b74-99d6-965b8f6f2df9,9fd55b7f-209b-4b74-99d6-965b8f6f2df9,1,0,f818fde9-1b06-4507-a69f-4dcb0ce8cd7a,f818fde9-1b06-4507-a69f-4dcb0ce8cd7a,1,0,a6690ef1-b16a-4d58-bc31-a8089b2c00d8,a6690ef1-b16a-4d58-bc31-a8089b2c00d8,1,0,fce03f58-7f68-4d7c-a999-687667c1f03d,fce03f58-7f68-4d7c-a999-687667c1f03d,1,0,316f94ec-81ed-4b5c-aa9d-98d2cfe1c641,316f94ec-81ed-4b5c-aa9d-98d2cfe1c641,1,0,6fc12a2d-a346-48be-8214-c5f3d5208524,6fc12a2d-a346-48be-8214-c5f3d5208524,1,0,67d93adf-c506-4fea-ab1d-b77968a6d041,67d93adf-c506-4fea-ab1d-b77968a6d041,1,0,8dca62d1-49ea-4398-9180-22218a81860a,8dca62d1-49ea-4398-9180-22218a81860a,1,0,f4885af5-6ed6-40e8-81a5-0e9537f943d7,f4885af5-6ed6-40e8-81a5-0e9537f943d7,1,0,716302cc-ad47-4823-a81a-4c58857aa0a4,716302cc-ad47-4823-a81a-4c58857aa0a4,1,0,d0f3824e-ddfb-491d-8aea-e4e4806dc3ee,d0f3824e-ddfb-491d-8aea-e4e4806dc3ee,1,0,367c49cc-0317-4b0d-846c-79e203f800b8,367c49cc-0317-4b0d-846c-79e203f800b8,1,0,7cab0151-f86e-4ada-9ec6-e602749e34fc,7cab0151-f86e-4ada-9ec6-e602749e34fc,1,0,d9be359f-c5cb-4f3e-9ccd-61f38c6bbb26,d9be359f-c5cb-4f3e-9ccd-61f38c6bbb26,1,0,15b5979c-755b-480e-b00a-dcc95f62dfeb,15b5979c-755b-480e-b00a-dcc95f62dfeb,1,0,44cf6d0a-0a5b-4ca1-b91e-af61f40fb825,44cf6d0a-0a5b-4ca1-b91e-af61f40fb825,1,0,dcdf2b25-b024-4a89-b2c4-0a2ee43ef623,dcdf2b25-b024-4a89-b2c4-0a2ee43ef623,1,0,9200527c-b6b9-4962-9440-10449583e1e3,9200527c-b6b9-4962-9440-10449583e1e3,1,0,e8faa1a9-807a-4916-b3c5-76ba2199754c,e8faa1a9-807a-4916-b3c5-76ba2199754c,1,0,99b5c632-61fe-41f5-ac00-ea530633bf28,99b5c632-61fe-41f5-ac00-ea530633bf28,1,0,a3c9c4e7-d36a-4db1-bd95-a50886c4be60,a3c9c4e7-d36a-4db1-bd95-a50886c4be60,1,0,4c53f94e-d7e8-457c-b337-59d3b3c5bf24,4c53f94e-d7e8-457c-b337-59d3b3c5bf24,1,0,bd6d7dcd-421c-402e-b6b8-f6ce6b18c140,bd6d7dcd-421c-402e-b6b8-f6ce6b18c140,1,0,485911f7-a964-450d-82da-cab020836eb2,485911f7-a964-450d-82da-cab020836eb2,1,0,1960b036-b479-4f4f-80c5-23fc82474082,1960b036-b479-4f4f-80c5-23fc82474082,1,0,7707d7b0-bf30-4362-929a-a5de104266fc,7707d7b0-bf30-4362-929a-a5de104266fc,1,0,0da8a402-ea0f-488a-a087-77990e85a643,0da8a402-ea0f-488a-a087-77990e85a643,1,0,484003f5-a6df-48fb-a395-d0e0ebc8cc0d,484003f5-a6df-48fb-a395-d0e0ebc8cc0d,1,0,cedd0b47-07cb-4dae-86b5-31d396b693c7,cedd0b47-07cb-4dae-86b5-31d396b693c7,1,0,8b4614aa-c769-49f4-a281-a0ffb101abf1,8b4614aa-c769-49f4-a281-a0ffb101abf1,1,0,c08391e1-c4e3-42aa-8738-061031d0cb75,c08391e1-c4e3-42aa-8738-061031d0cb75,1,0,ba06091b-b659-4d29-a971-81335cf4060a,ba06091b-b659-4d29-a971-81335cf4060a,1,0,7c376c72-409e-4b5f-a5b6-85b0a1c23f58,7c376c72-409e-4b5f-a5b6-85b0a1c23f58,1,0,b7a0d00f-fbf3-41fe-b72f-c17e163264f9,b7a0d00f-fbf3-41fe-b72f-c17e163264f9,1,0,7bbd6fe8-c2fe-4ed2-abd7-2b3fc5b2f410,7bbd6fe8-c2fe-4ed2-abd7-2b3fc5b2f410,1,0,d61fa2fb-a035-469f-9ae1-b78ecd82c83d,d61fa2fb-a035-469f-9ae1-b78ecd82c83d,1,0,bf4c6723-e586-4643-9f03-9e672afea26f,bf4c6723-e586-4643-9f03-9e672afea26f,1,0,4c3a39e3-40ee-423b-91f0-14b60e045b40,4c3a39e3-40ee-423b-91f0-14b60e045b40,1,0,2f2875d7-7598-4ed5-8cc0-a1982ffb5377,2f2875d7-7598-4ed5-8cc0-a1982ffb5377,1,0,23204b0b-bf77-4f7c-9945-e73ad924ebb4,23204b0b-bf77-4f7c-9945-e73ad924ebb4,1,0,dd9d3586-775b-4d5b-ab2d-78db0870ecdd,dd9d3586-775b-4d5b-ab2d-78db0870ecdd,1,0,44c610c3-9c0b-4bf0-95d6-f17100d3e98d,44c610c3-9c0b-4bf0-95d6-f17100d3e98d,1,0,a54f2d41-a05e-4878-80c6-81ca2899fa4c,a54f2d41-a05e-4878-80c6-81ca2899fa4c,1,0,23a898d9-5bcb-4744-ab6c-97b17dc98f20,23a898d9-5bcb-4744-ab6c-97b17dc98f20,1,0,c83f7826-0fef-4a9b-8d36-dee5d93c7417,c83f7826-0fef-4a9b-8d36-dee5d93c7417,1,0,50a04251-ac9c-4a21-a37f-ebc9ac3ef233,50a04251-ac9c-4a21-a37f-ebc9ac3ef233,1,0,f8f56806-ed7e-4059-a0c8-940538c14c98,f8f56806-ed7e-4059-a0c8-940538c14c98,1,0,9ff9f92b-c509-48da-82ce-15b524a895d6,9ff9f92b-c509-48da-82ce-15b524a895d6,1,0,c8bf96c8-f359-4940-8e87-3d190371d6d3,c8bf96c8-f359-4940-8e87-3d190371d6d3,1,0,477f0b81-0eb1-4de1-8cb5-38f1e0823947,477f0b81-0eb1-4de1-8cb5-38f1e0823947,1,0,d914eaa9-ce85-4df7-a545-2d411ef915b0,d914eaa9-ce85-4df7-a545-2d411ef915b0,1,0,41881344-82b7-4904-9ab8-0207d9bcd0a9,41881344-82b7-4904-9ab8-0207d9bcd0a9,1,0,5c542a16-0f95-43be-85cd-bfd49b15f215,5c542a16-0f95-43be-85cd-bfd49b15f215,1,0,ef4d648f-4cac-4df9-9880-2aa13c422d10,ef4d648f-4cac-4df9-9880-2aa13c422d10,1,0,21032fa5-9426-40bd-91e4-ace1e4ceb013,21032fa5-9426-40bd-91e4-ace1e4ceb013,1,0,7185a8f8-48c4-43a9-b31f-102302b8f152,7185a8f8-48c4-43a9-b31f-102302b8f152,1,0,ddfe5401-e136-4f20-aa65-aeb42a61a1f0,ddfe5401-e136-4f20-aa65-aeb42a61a1f0,1,0,27a80757-c0fd-40c7-ad24-4c819c1ba72b,27a80757-c0fd-40c7-ad24-4c819c1ba72b,1,0,c573a29f-4c39-402d-8af4-e0fff80877f8,c573a29f-4c39-402d-8af4-e0fff80877f8,1,0,7fce9e49-e558-4760-9d95-dde6ac6c1e78,7fce9e49-e558-4760-9d95-dde6ac6c1e78,1,0,e5aba4a3-6056-4ef3-827c-d74283175393,e5aba4a3-6056-4ef3-827c-d74283175393,1,0,edc731ba-532f-4fa1-81a8-58beb3b2dfb1,edc731ba-532f-4fa1-81a8-58beb3b2dfb1,1,0,63039e62-7314-42ff-bdc6-c251f38b3827,63039e62-7314-42ff-bdc6-c251f38b3827,1,0,8a4b7aab-b602-4581-8fa4-fab66791f701,8a4b7aab-b602-4581-8fa4-fab66791f701,1,0,7c92c579-4651-4fe3-90dc-6c9b594b76f0,7c92c579-4651-4fe3-90dc-6c9b594b76f0,1,0,a2be2d7a-cca0-460f-a915-dadfb9cd588b,a2be2d7a-cca0-460f-a915-dadfb9cd588b,1,0,35bac3e3-1329-4aa6-866f-f6fcaed8cd6e,35bac3e3-1329-4aa6-866f-f6fcaed8cd6e,1,0,ed53b24d-5338-4ae1-8659-0ea6450dc7bb,ed53b24d-5338-4ae1-8659-0ea6450dc7bb,1,0,6add2712-48e8-4b22-a7bb-7d8c808ac5fc,6add2712-48e8-4b22-a7bb-7d8c808ac5fc,1,0,1f4408f5-460e-431b-9842-bc6875ccf0ae,1f4408f5-460e-431b-9842-bc6875ccf0ae,1,0,ec09aa2d-758f-4ae8-96b7-0f05b8187dda,ec09aa2d-758f-4ae8-96b7-0f05b8187dda,1,0,7bfc6163-a62f-45e8-9112-40a5d675ba4a,7bfc6163-a62f-45e8-9112-40a5d675ba4a,1,0,542ff510-0245-4a08-80ac-a9941c66ae93,542ff510-0245-4a08-80ac-a9941c66ae93,1,0,03297623-eaa2-4db0-bf1b-ce2076faf20a,03297623-eaa2-4db0-bf1b-ce2076faf20a,1,0,3c6ef64e-c9bd-4cba-98a4-ffcc5b93b6da,3c6ef64e-c9bd-4cba-98a4-ffcc5b93b6da,1,0,700c2edd-c457-47b7-a7d3-5fb3d9078d1f,700c2edd-c457-47b7-a7d3-5fb3d9078d1f,1,0,82a3802c-b6d6-4511-bd8b-eeec003afa33,82a3802c-b6d6-4511-bd8b-eeec003afa33,1,0,8b59dec8-12b8-455f-8dfc-7c3f03b4ffa5,8b59dec8-12b8-455f-8dfc-7c3f03b4ffa5,1,0,b5eb2e12-c39c-44fa-b940-09b4dcd2817c,b5eb2e12-c39c-44fa-b940-09b4dcd2817c,1,0,5d5ffb56-e18b-4831-94f0-d7a76c2eee6f,5d5ffb56-e18b-4831-94f0-d7a76c2eee6f,1,0,590f29f4-2db1-47c6-83a0-f44d4bbe6e3e,590f29f4-2db1-47c6-83a0-f44d4bbe6e3e,1,0,a755cb43-492d-4069-9b6a-29b92ebb5b0e,a755cb43-492d-4069-9b6a-29b92ebb5b0e,1,0,a5df6ca4-8791-4025-a0e6-07d66e0454b7,a5df6ca4-8791-4025-a0e6-07d66e0454b7,1,0,7f7598e5-ca54-487e-b95c-b18d330b034c,7f7598e5-ca54-487e-b95c-b18d330b034c,1,0,86d09107-f511-4148-b5d9-d97e92addfde,86d09107-f511-4148-b5d9-d97e92addfde,1,0,c14c1f91-f4b9-44d6-b560-8dcdb5faf5f9,c14c1f91-f4b9-44d6-b560-8dcdb5faf5f9,1,0,2120ad01-6bff-48bd-bad8-324e1301b112,2120ad01-6bff-48bd-bad8-324e1301b112,1,0,b9255acf-dc35-4225-8d3a-544e66b7334d,b9255acf-dc35-4225-8d3a-544e66b7334d,1,0,55b78834-3d90-4858-a6f7-e0368b1d8c41,55b78834-3d90-4858-a6f7-e0368b1d8c41,1,0,059b9a75-f53a-4518-a48a-afc72ab9ee36,059b9a75-f53a-4518-a48a-afc72ab9ee36,1,0,bc0dcb68-bfb8-49f4-8eb4-2ca953d852bd,bc0dcb68-bfb8-49f4-8eb4-2ca953d852bd,1,0,31e95872-97c7-49e3-bd1b-8df4de07014d,31e95872-97c7-49e3-bd1b-8df4de07014d,1,0,8b9be02b-cd1f-4231-a895-6c9be26348c2,8b9be02b-cd1f-4231-a895-6c9be26348c2,1,0,c52c4b8c-6be7-460a-9b54-6cdf64e3f8fe,c52c4b8c-6be7-460a-9b54-6cdf64e3f8fe,1,0,64e03321-33a4-424d-a101-90f1e0da4c2e,64e03321-33a4-424d-a101-90f1e0da4c2e,1,0,fa4f0b33-5253-4a5f-8121-feae3e1968a6,fa4f0b33-5253-4a5f-8121-feae3e1968a6,1,0,e0d21be2-91dc-4a04-9078-49420ddddcd5,e0d21be2-91dc-4a04-9078-49420ddddcd5,1,0,56c97764-7dba-42e0-8ba0-82712aca20e9,56c97764-7dba-42e0-8ba0-82712aca20e9,1,0,66192ff1-7760-48f6-8ce8-a7dbfe4e8a75,66192ff1-7760-48f6-8ce8-a7dbfe4e8a75,1,0,a1d80053-ef03-4c00-9fc9-266e61aeaffb,a1d80053-ef03-4c00-9fc9-266e61aeaffb,1,0,03ad9b3d-8f3a-4482-a777-f6a3b3d953d6,03ad9b3d-8f3a-4482-a777-f6a3b3d953d6,1,0,3f05dcf9-be52-42e1-b5ff-dea14d97a26f,3f05dcf9-be52-42e1-b5ff-dea14d97a26f,1,0,7f3c6269-ea41-492f-87b7-7eaaf712762e,7f3c6269-ea41-492f-87b7-7eaaf712762e,1,0,a5d037b0-c666-4179-9d6a-5f48c4a126a8,a5d037b0-c666-4179-9d6a-5f48c4a126a8,1,0,f0850411-4dee-4f1d-baec-7d6c96b10637,f0850411-4dee-4f1d-baec-7d6c96b10637,1,0,12f95031-b81f-4802-b2f3-6f70def90db0,12f95031-b81f-4802-b2f3-6f70def90db0,1,0,5732112a-f31d-41cd-9a7f-312a27395502,5732112a-f31d-41cd-9a7f-312a27395502,1,0,bbf8342b-24f0-4d11-bb5a-4c89d5ea7766,bbf8342b-24f0-4d11-bb5a-4c89d5ea7766,1,0,691f9902-6b95-4579-a3d9-3b2b5b548776,691f9902-6b95-4579-a3d9-3b2b5b548776,1,0,c7a8a88f-040a-47a6-8c93-7f3f01544760,c7a8a88f-040a-47a6-8c93-7f3f01544760,1,0,06fc381d-f27a-433c-95c3-e0981e01f22b,06fc381d-f27a-433c-95c3-e0981e01f22b,1,0,6d93ec4f-167a-4804-910b-988ee8aad78e,6d93ec4f-167a-4804-910b-988ee8aad78e,1,0,f646835e-61eb-4ebd-811e-dac5e70bd1b4,f646835e-61eb-4ebd-811e-dac5e70bd1b4,1,0,61b49c4c-3021-4868-834a-9137476ae169,61b49c4c-3021-4868-834a-9137476ae169,1,0,58911911-5192-45fe-87cf-c4a222a521a1,58911911-5192-45fe-87cf-c4a222a521a1,1,0,70067937-9f27-4442-b87b-6c4576ce1b78,70067937-9f27-4442-b87b-6c4576ce1b78,1,0,115d5d06-a2fc-453e-aab5-c869b6d5850b,115d5d06-a2fc-453e-aab5-c869b6d5850b,1,0,d33ca006-d81d-4ef8-8503-7878e81c599f,d33ca006-d81d-4ef8-8503-7878e81c599f,1,0,123bb339-b95e-44c3-b1e9-482dcaa6f297,123bb339-b95e-44c3-b1e9-482dcaa6f297,1,0,f4119605-beb3-46b6-b372-ecdb74f10a33,f4119605-beb3-46b6-b372-ecdb74f10a33,1,0,d2a2e332-a52c-4277-bd19-5ea8ef198469,d2a2e332-a52c-4277-bd19-5ea8ef198469,1,0,e440c594-14bb-4a6e-af53-a4519c7d5548,e440c594-14bb-4a6e-af53-a4519c7d5548,1,0,4165bdaa-8e27-40de-bcdc-0379c34e8868,4165bdaa-8e27-40de-bcdc-0379c34e8868,1,0,a9a3fde2-99d5-4ebf-88b1-eccd9d74276e,a9a3fde2-99d5-4ebf-88b1-eccd9d74276e,1,0,82b05859-4c4d-4d5a-a620-cc6aab10f527,82b05859-4c4d-4d5a-a620-cc6aab10f527,1,0,c5871658-94dd-4df4-9a3f-db5d245dd106,c5871658-94dd-4df4-9a3f-db5d245dd106,1,0,a3131bf3-88b1-431c-a01c-be6e26396f91,a3131bf3-88b1-431c-a01c-be6e26396f91,1,0,5c3edcbd-fb62-471c-b75b-f1a759956ebe,5c3edcbd-fb62-471c-b75b-f1a759956ebe,1,0,e606f8eb-952a-4abb-b1ae-4211204bed84,e606f8eb-952a-4abb-b1ae-4211204bed84,1,0,7ddc3d13-fa6f-4fa9-870e-a34d5b2d9582,7ddc3d13-fa6f-4fa9-870e-a34d5b2d9582,1,0,1c2ad932-150a-4b15-b958-62eaa8a1eebc,1c2ad932-150a-4b15-b958-62eaa8a1eebc,1,0,b4deaebf-2c21-47d7-9436-10c94c94667c,b4deaebf-2c21-47d7-9436-10c94c94667c,1,0,2a12ce95-3214-4bd2-a0e6-c2af41875821,2a12ce95-3214-4bd2-a0e6-c2af41875821,1,0,bf05548c-babf-402b-b698-9a62e7c69add,bf05548c-babf-402b-b698-9a62e7c69add,1,0,f8295f29-2533-4013-981b-240f017d9f7c,f8295f29-2533-4013-981b-240f017d9f7c,1,0,538b316b-3876-4da6-8b97-ad8ef59de17d,538b316b-3876-4da6-8b97-ad8ef59de17d,1,0,f70f09fd-59e1-47b6-aaf3-cb4cc4ceaa7e,f70f09fd-59e1-47b6-aaf3-cb4cc4ceaa7e,1,0,ebc5f182-482b-4dec-9961-ce3a448abd0e,ebc5f182-482b-4dec-9961-ce3a448abd0e,1,0,83e618f5-1bf4-474a-9d65-389f1e4b16c3,83e618f5-1bf4-474a-9d65-389f1e4b16c3,1,0,1357512e-3ed3-455d-bc91-81db3b92f9fe,1357512e-3ed3-455d-bc91-81db3b92f9fe,1,0,82223d0f-41d9-45a6-9612-ae4d8408fa1b,82223d0f-41d9-45a6-9612-ae4d8408fa1b,1,0,3ee058a9-aff5-46f0-8928-8a417e7800d4,3ee058a9-aff5-46f0-8928-8a417e7800d4,1,0,639c2ffc-4514-4b79-89e2-d49caadf828d,639c2ffc-4514-4b79-89e2-d49caadf828d,1,0,c9a03f19-42bb-4e07-8ce8-1b954e431ada,c9a03f19-42bb-4e07-8ce8-1b954e431ada,1,0,6c726d0b-8e8f-4336-bea7-0f893e32b171,6c726d0b-8e8f-4336-bea7-0f893e32b171,1,0,ed4edc6f-048a-40d5-8f61-989895c95cf3,ed4edc6f-048a-40d5-8f61-989895c95cf3,1,0,73cc5fea-597f-4490-9c62-b175fdc38fd3,73cc5fea-597f-4490-9c62-b175fdc38fd3,1,0,c2049ace-3095-4dd7-9cc0-7721118451ad,c2049ace-3095-4dd7-9cc0-7721118451ad,1,0,8cb20eb9-306b-4c2a-9a77-6a4632f72b54,8cb20eb9-306b-4c2a-9a77-6a4632f72b54,1,0,87ba683b-b69c-4b23-854c-037b770a3ebb,87ba683b-b69c-4b23-854c-037b770a3ebb,1,0,f3f753ac-b2cb-44ea-a917-811b0ef711f8,f3f753ac-b2cb-44ea-a917-811b0ef711f8,1,0,1357adf5-0f5d-4930-afea-edc89db4d0a6,1357adf5-0f5d-4930-afea-edc89db4d0a6,1,0,505ff816-0d42-458a-b7b5-7d007c15d1be,505ff816-0d42-458a-b7b5-7d007c15d1be,1,0,27811a76-d8bd-43a5-9898-944bdd1388ce,27811a76-d8bd-43a5-9898-944bdd1388ce,1,0,363215fe-59f3-4d9a-a8c7-94049882147a,363215fe-59f3-4d9a-a8c7-94049882147a,1,0,3d4597ca-1c97-4116-b966-87970cd7ebdf,3d4597ca-1c97-4116-b966-87970cd7ebdf,1,0,715f7ba5-ca82-49e6-8671-fc1b55b740b5,715f7ba5-ca82-49e6-8671-fc1b55b740b5,1,0,0add6d62-bf4f-476c-9f6b-37633fcd6b0e,0add6d62-bf4f-476c-9f6b-37633fcd6b0e,1,0,93e495a4-207d-4216-b63e-a8b169b2b801,93e495a4-207d-4216-b63e-a8b169b2b801,1,0,3b47221a-ad5f-419c-b503-a4a88505d336,3b47221a-ad5f-419c-b503-a4a88505d336,1,0,0149a9c0-245b-4dfe-aa98-e8b02ba85c99,0149a9c0-245b-4dfe-aa98-e8b02ba85c99,1,0,94abbe1e-44d8-43c1-90fb-71bc9b6621a9,94abbe1e-44d8-43c1-90fb-71bc9b6621a9,1,0,2edfc563-9fd8-4f7c-8cd4-ba3c27c08840,2edfc563-9fd8-4f7c-8cd4-ba3c27c08840,1,0,d0d052c7-68b9-4b2b-9bbf-4fb083327dca,d0d052c7-68b9-4b2b-9bbf-4fb083327dca,1,0,807194b1-2460-4872-8430-e34f6970178f,807194b1-2460-4872-8430-e34f6970178f,1,0,b0409473-768f-4c29-89d3-6201e8476157,b0409473-768f-4c29-89d3-6201e8476157,1,0,d8415773-616e-43e4-9deb-e92200659d53,d8415773-616e-43e4-9deb-e92200659d53,1,0,b228f0de-7cd7-4337-b021-bc1beb980afd,b228f0de-7cd7-4337-b021-bc1beb980afd,1,0,c9178048-5d75-4d1b-a714-50d772e8d343,c9178048-5d75-4d1b-a714-50d772e8d343,1,0,661b7581-27ad-4cec-8618-9c314cb3a4d5,661b7581-27ad-4cec-8618-9c314cb3a4d5,1,0,310a8f7d-5b1f-428c-885d-1127b7789efd,310a8f7d-5b1f-428c-885d-1127b7789efd,1,0,ee5efc54-aa35-467f-b085-64f24819aaa7,ee5efc54-aa35-467f-b085-64f24819aaa7,1,0,376c8f0b-9d2e-4262-a26f-b63f1163c1c4,376c8f0b-9d2e-4262-a26f-b63f1163c1c4,1,0,d37c82e1-cc9f-492c-a7fb-0e6e9d8f6a72,d37c82e1-cc9f-492c-a7fb-0e6e9d8f6a72,1,0,b7ebf08a-d6be-42db-b28a-460df037d7ba,b7ebf08a-d6be-42db-b28a-460df037d7ba,1,0,ec3c34f6-b3b3-4a96-a231-aaf70db1e73d,ec3c34f6-b3b3-4a96-a231-aaf70db1e73d,1,0,8aa9daa0-e073-49f4-8346-7f2c809fac9a,8aa9daa0-e073-49f4-8346-7f2c809fac9a,1,0,043074cb-64aa-45ed-a2f3-b4fa252431cc,043074cb-64aa-45ed-a2f3-b4fa252431cc,1,0,9cc72214-6e84-45e6-aafd-b36205730faa,9cc72214-6e84-45e6-aafd-b36205730faa,1,0,768eb7d6-d37e-4182-961e-464a5e08781b,768eb7d6-d37e-4182-961e-464a5e08781b,1,0,4df52b04-759d-471d-9de4-3ba4d00d1d22,4df52b04-759d-471d-9de4-3ba4d00d1d22,1,0,5768f558-50b6-4682-960c-6894f6953461,5768f558-50b6-4682-960c-6894f6953461,1,0,74126b65-4f3b-4f8d-b7fc-1d2705822463,74126b65-4f3b-4f8d-b7fc-1d2705822463,1,0,75a4b472-00b6-4b2f-bb6b-03bdc0b05dcf,75a4b472-00b6-4b2f-bb6b-03bdc0b05dcf,1,0,8506ad71-85eb-4f91-b892-4e75318649c8,8506ad71-85eb-4f91-b892-4e75318649c8,1,0,6e3010f5-f725-4361-b853-768412b1ad6f,6e3010f5-f725-4361-b853-768412b1ad6f,1,0,40d8803a-2f6d-4091-be54-9d9827a53e30,40d8803a-2f6d-4091-be54-9d9827a53e30,1,0,ea2b936c-be5c-4316-aca9-4f890f4e6ec9,ea2b936c-be5c-4316-aca9-4f890f4e6ec9,1,0,092501bf-dd8e-4f50-8c58-b1b028b50a5a,092501bf-dd8e-4f50-8c58-b1b028b50a5a,1,0,927cfec6-c1e3-4152-aa2e-afa89359b5eb,927cfec6-c1e3-4152-aa2e-afa89359b5eb,1,0,8e986c32-7296-4329-a908-704398428e4e,8e986c32-7296-4329-a908-704398428e4e,1,0,c5b8870c-14cb-43ae-8d44-d639bd059b0e,c5b8870c-14cb-43ae-8d44-d639bd059b0e,1,0,bc98265e-329d-41d1-9fe8-4c78b7998cd2,bc98265e-329d-41d1-9fe8-4c78b7998cd2,1,0,b44c8a6b-0e3f-446b-95f7-6cb4a58f13e0,b44c8a6b-0e3f-446b-95f7-6cb4a58f13e0,1,0,7601f9c7-2fe7-43fb-a7a9-cf5be4475ce1,7601f9c7-2fe7-43fb-a7a9-cf5be4475ce1,1,0,2da686d3-38b0-4cf1-9962-1440d1afd050,2da686d3-38b0-4cf1-9962-1440d1afd050,1,0,71518348-f155-4616-bbdc-742e36cd3964,71518348-f155-4616-bbdc-742e36cd3964,1,0,723a58ca-9947-4320-9bf4-7c6b58aee2f5,723a58ca-9947-4320-9bf4-7c6b58aee2f5,1,0,2df24487-0b76-451d-a08f-21dc03adefa4,2df24487-0b76-451d-a08f-21dc03adefa4,1,0,00813d65-8dae-45a8-8691-d0b17d6d7754,00813d65-8dae-45a8-8691-d0b17d6d7754,1,0,d88166a7-ef6c-453a-b6cc-1c574cf6ea85,d88166a7-ef6c-453a-b6cc-1c574cf6ea85,1,0,aae1a856-ff88-41bb-a887-1b8c2c3eeab6,aae1a856-ff88-41bb-a887-1b8c2c3eeab6,1,0,cf2b8654-02b6-441e-98a9-cb8bea5cac89,cf2b8654-02b6-441e-98a9-cb8bea5cac89,1,0,2181bde8-031d-425e-875f-0bd153b634f2,2181bde8-031d-425e-875f-0bd153b634f2,1,0,ee1b81ac-0182-48dd-a348-1d8ba38869ca,ee1b81ac-0182-48dd-a348-1d8ba38869ca,1,0,ad385d3e-8201-402a-a1a8-267bc8c6d56b,ad385d3e-8201-402a-a1a8-267bc8c6d56b,1,0,53bb97e3-cd96-462a-b91f-c82678568d9a,53bb97e3-cd96-462a-b91f-c82678568d9a,1,0,32ca3bd6-7b32-4eab-8a4e-aeac26604e08,32ca3bd6-7b32-4eab-8a4e-aeac26604e08,1,0,2a702d37-8e83-4fa0-9969-5d954a7096c1,2a702d37-8e83-4fa0-9969-5d954a7096c1,1,0,71b7225e-6486-4916-85b2-8ec14363ebc8,71b7225e-6486-4916-85b2-8ec14363ebc8,1,0,2df34fcd-3118-4871-95d7-807dece77d3f,2df34fcd-3118-4871-95d7-807dece77d3f,1,0,32db89ab-74d3-4f80-9352-65e405770906,32db89ab-74d3-4f80-9352-65e405770906,1,0,21c22027-2036-4136-a98e-500e5cd679d1,21c22027-2036-4136-a98e-500e5cd679d1,1,0,6fe56db7-0f48-4dd0-b509-5372019ddcc2,6fe56db7-0f48-4dd0-b509-5372019ddcc2,1,0,884990f4-54f1-4b05-a5ed-40ee5a7a549a,884990f4-54f1-4b05-a5ed-40ee5a7a549a,1,0,4cf71e62-c8c2-4bc7-87fc-a89e48f2c007,4cf71e62-c8c2-4bc7-87fc-a89e48f2c007,1,0,e5a9260b-c18b-47bf-bc5a-23294e13025a,e5a9260b-c18b-47bf-bc5a-23294e13025a,1,0,02f00688-a2ed-4f91-bd41-50fc29e13d6c,02f00688-a2ed-4f91-bd41-50fc29e13d6c,1,0,e9f2b435-13e3-401a-9324-ca44986b7676,e9f2b435-13e3-401a-9324-ca44986b7676,1,0,2b854852-ae2d-46d8-8c3b-228af7a3f1db,2b854852-ae2d-46d8-8c3b-228af7a3f1db,1,0,11346c91-ecb6-40e6-a2fb-df7e6f5dbaed,11346c91-ecb6-40e6-a2fb-df7e6f5dbaed,1,0,f4f096ac-45e3-4dfb-8363-be35edceb6c6,f4f096ac-45e3-4dfb-8363-be35edceb6c6,1,0,cb7ff74e-9697-4ea7-88a2-a2f207a5d313,cb7ff74e-9697-4ea7-88a2-a2f207a5d313,1,0,5c3b45fb-0d95-4a15-a42b-5d6baa7a699c,5c3b45fb-0d95-4a15-a42b-5d6baa7a699c,1,0,662940c1-49de-4b94-867b-6c16bf716266,662940c1-49de-4b94-867b-6c16bf716266,1,0,eb2d414c-ba68-47c6-b74b-c8566987b824,eb2d414c-ba68-47c6-b74b-c8566987b824,1,0,ef2706e1-9fc9-42e8-add6-85392a78fff3,ef2706e1-9fc9-42e8-add6-85392a78fff3,1,0,aa609e39-3e3b-4af7-8b79-49293df6b6f2,aa609e39-3e3b-4af7-8b79-49293df6b6f2,1,0,f9188489-ad5e-4eaf-a87a-7191776e4fd4,f9188489-ad5e-4eaf-a87a-7191776e4fd4,1,0,8763c516-04a3-4ca3-9f5d-da3026a46d2a,8763c516-04a3-4ca3-9f5d-da3026a46d2a,1,0,d9fbb0e9-7a19-4742-a958-72c0c3c2307b,d9fbb0e9-7a19-4742-a958-72c0c3c2307b,1,0,d83a4e56-2ab3-44f4-91dc-a6881c62f7c6,d83a4e56-2ab3-44f4-91dc-a6881c62f7c6,1,0,9ea7a191-38bb-40cc-8025-d34a5ed17c7c,9ea7a191-38bb-40cc-8025-d34a5ed17c7c,1,0,c5491956-ebc7-446b-b0b5-4eab34c5a33f,c5491956-ebc7-446b-b0b5-4eab34c5a33f,1,0,2b7de7a1-8e84-4791-9633-7fca8696ff5d,2b7de7a1-8e84-4791-9633-7fca8696ff5d,1,0,97ee6138-4d8a-41d6-8a09-17f8eb306d9a,97ee6138-4d8a-41d6-8a09-17f8eb306d9a,1,0,9abb1972-1c08-44fb-b511-f77d9334d31d,9abb1972-1c08-44fb-b511-f77d9334d31d,1,0,8305c82b-5808-40d6-9668-e54cec298ff1,8305c82b-5808-40d6-9668-e54cec298ff1,1,0,3a8583f1-b6e9-4b4b-9362-4367bc433913,3a8583f1-b6e9-4b4b-9362-4367bc433913,1,0,34aad1b4-550e-4b12-acec-516c8b430cd2,34aad1b4-550e-4b12-acec-516c8b430cd2,1,0,dc16e9b0-0749-4b06-b59d-b2c1031eace6,dc16e9b0-0749-4b06-b59d-b2c1031eace6,1,0,4c3d06cc-22b0-4618-acb5-d1ed387deaa7,4c3d06cc-22b0-4618-acb5-d1ed387deaa7,1,0,216b5d48-5422-4c03-b21d-cdb3e0e35f2c,216b5d48-5422-4c03-b21d-cdb3e0e35f2c,1,0,c067a94e-5bea-4b47-bb57-6cf973a7ad45,c067a94e-5bea-4b47-bb57-6cf973a7ad45,1,0,4c6bc132-e0f6-4eb0-a4aa-bceb103e7f02,4c6bc132-e0f6-4eb0-a4aa-bceb103e7f02,1,0,dc17d8b6-d277-43eb-8823-71d440ae1e90,dc17d8b6-d277-43eb-8823-71d440ae1e90,1,0,c5b8bf21-5c8f-4e5b-8b85-bfac387ce99a,c5b8bf21-5c8f-4e5b-8b85-bfac387ce99a,1,0,27f793d8-da6a-4502-9b7e-82b8af7264d1,27f793d8-da6a-4502-9b7e-82b8af7264d1,1,0,4d3f3c76-999c-4105-8b64-cd4b7bc861b9,4d3f3c76-999c-4105-8b64-cd4b7bc861b9,1,0,efcf8b0f-7124-4096-9f50-b9b95369f196,efcf8b0f-7124-4096-9f50-b9b95369f196,1,0,c1f2db60-011c-4a0b-97bb-42e005ba51c9,c1f2db60-011c-4a0b-97bb-42e005ba51c9,1,0,15111bf5-5bf5-4486-aff0-20ded684b67f,15111bf5-5bf5-4486-aff0-20ded684b67f,1,0,a9221471-3f76-45d2-b467-a1afb8e690f2,a9221471-3f76-45d2-b467-a1afb8e690f2,1,0,2465986e-7519-4638-9f62-5f692bebeeac,2465986e-7519-4638-9f62-5f692bebeeac,1,0,d9a6706e-3dcd-4aec-b9d1-542330ba6e2e,d9a6706e-3dcd-4aec-b9d1-542330ba6e2e,1,0,7cbf0398-2bc7-4f40-9a9e-af4135c6a2d2,7cbf0398-2bc7-4f40-9a9e-af4135c6a2d2,1,0,022f99dd-e1b7-42a7-8141-a8c2e8628901,022f99dd-e1b7-42a7-8141-a8c2e8628901,1,0,cc770616-f6f6-4054-876c-f319b1f8c6cf,cc770616-f6f6-4054-876c-f319b1f8c6cf,1,0,3baffdec-a2cb-48c9-9c21-4fc469e81e3b,3baffdec-a2cb-48c9-9c21-4fc469e81e3b,1,0,046e6f4f-3d92-4b20-b19f-fca608fa0f11,046e6f4f-3d92-4b20-b19f-fca608fa0f11,1,0,74bea66f-15bf-48de-9ff9-f9c35a8bf5cc,74bea66f-15bf-48de-9ff9-f9c35a8bf5cc,1,0,8486e623-1a54-4ad9-ab44-591b6a559bc3,8486e623-1a54-4ad9-ab44-591b6a559bc3,1,0,dce82d28-9a7b-4d4c-af13-90f459cf4af2,dce82d28-9a7b-4d4c-af13-90f459cf4af2,1,0,cb9f2231-49bb-4b14-a124-8996628afead,cb9f2231-49bb-4b14-a124-8996628afead,1,0,6fe9a455-7fef-4a1b-8109-57eafc17e2b6,6fe9a455-7fef-4a1b-8109-57eafc17e2b6,1,0,dc1b8bce-49c5-4fd2-a597-27f1fbc98648,dc1b8bce-49c5-4fd2-a597-27f1fbc98648,1,0,ac4c6275-3c23-4a1f-b19e-c674fd685e8f,ac4c6275-3c23-4a1f-b19e-c674fd685e8f,1,0,2031ed38-6a8e-4ca7-aa97-449ee36ab7a3,2031ed38-6a8e-4ca7-aa97-449ee36ab7a3,1,0,896de79f-3c34-4436-a4e2-4dd4f45c3e20,896de79f-3c34-4436-a4e2-4dd4f45c3e20,1,0,25d118f0-bfb7-4f08-84b1-0511b0fc92e8,25d118f0-bfb7-4f08-84b1-0511b0fc92e8,1,0,e6c42b5d-57fd-42ce-a968-653620e797f6,e6c42b5d-57fd-42ce-a968-653620e797f6,1,0,993193b3-1dd8-4f5b-8ce7-6a0bf8c4330c,993193b3-1dd8-4f5b-8ce7-6a0bf8c4330c,1,0,724fb328-fec6-4afe-bc99-0ff0951b184b,724fb328-fec6-4afe-bc99-0ff0951b184b,1,0,7a0cdc94-9e53-4fcc-ac2f-97ad2ad939f5,7a0cdc94-9e53-4fcc-ac2f-97ad2ad939f5,1,0,f6259a3b-98f5-4649-8fd0-da0a0285f375,f6259a3b-98f5-4649-8fd0-da0a0285f375,1,0,c565bf25-c55e-4324-851a-cec497f5114a,c565bf25-c55e-4324-851a-cec497f5114a,1,0,db6679c4-a647-471a-9f90-40248eb18db9,db6679c4-a647-471a-9f90-40248eb18db9,1,0,455a1ca6-7212-43ac-b5a2-cf85dd2f9c14,455a1ca6-7212-43ac-b5a2-cf85dd2f9c14,1,0,e7c366f7-c8e3-4ffe-bc5e-ca8a4619ec11,e7c366f7-c8e3-4ffe-bc5e-ca8a4619ec11,1,0,2997e4da-d831-48e4-96e2-c29f9d077302,2997e4da-d831-48e4-96e2-c29f9d077302,1,0,30f59002-a23d-4eff-b84f-f280f11b220e,30f59002-a23d-4eff-b84f-f280f11b220e,1,0,b50994d0-23f9-4bf4-93d2-cf9bcffa6fc9,b50994d0-23f9-4bf4-93d2-cf9bcffa6fc9,1,0,5b0e250c-4d2d-4e37-ade1-593854610d3f,5b0e250c-4d2d-4e37-ade1-593854610d3f,1,0,14583452-805e-423d-be9a-e04683c7c46f,14583452-805e-423d-be9a-e04683c7c46f,1,0,148f63d5-23ad-4824-a24c-14d5a54c62d3,148f63d5-23ad-4824-a24c-14d5a54c62d3,1,0,d6cdd049-b31b-48aa-a2aa-a24b0bdf3337,d6cdd049-b31b-48aa-a2aa-a24b0bdf3337,1,0,75378d9c-a364-4b46-a6d1-b745604c46a2,75378d9c-a364-4b46-a6d1-b745604c46a2,1,0,d7376ea8-245a-4342-9a40-c729ca19f966,d7376ea8-245a-4342-9a40-c729ca19f966,1,0,eabfa8b7-fb65-43dd-9308-787f7cce88c9,eabfa8b7-fb65-43dd-9308-787f7cce88c9,1,0,4bf12710-aef2-43ec-b16f-9c6c9e8eb18d,4bf12710-aef2-43ec-b16f-9c6c9e8eb18d,1,0,b1e837ff-0edd-4525-b2e2-92cc7990e00e,b1e837ff-0edd-4525-b2e2-92cc7990e00e,1,0,30213cef-b2bc-4e6c-8094-74a61f28b2ed,30213cef-b2bc-4e6c-8094-74a61f28b2ed,1,0,037fd2f3-27f1-4d8f-a621-82fa5754e8c7,037fd2f3-27f1-4d8f-a621-82fa5754e8c7,1,0,3fc1e50e-b9da-45f7-8e06-57ef6951ca40,3fc1e50e-b9da-45f7-8e06-57ef6951ca40,1,0,66d67f47-ccbb-4d58-aceb-af876f480750,66d67f47-ccbb-4d58-aceb-af876f480750,1,0,71871ca9-095d-4bde-ac80-1371f578cd51,71871ca9-095d-4bde-ac80-1371f578cd51,1,0,6aa8c1d6-9956-4a98-9992-b119ba5ba1c7,6aa8c1d6-9956-4a98-9992-b119ba5ba1c7,1,0,cafbea88-86f0-4a44-98f4-70d1837da452,cafbea88-86f0-4a44-98f4-70d1837da452,1,0,8c72f824-b667-4d74-84aa-30eccfbbd2f0,8c72f824-b667-4d74-84aa-30eccfbbd2f0,1,0,2df403a2-57d8-4578-b017-e7cf9550b708,2df403a2-57d8-4578-b017-e7cf9550b708,1,0,ceb286e9-4e7c-49fa-a695-424073e0dffc,ceb286e9-4e7c-49fa-a695-424073e0dffc,1,0,727689c3-c0d8-496f-a47b-4f3243ad8974,727689c3-c0d8-496f-a47b-4f3243ad8974,1,0,ec7b492d-5d38-4f31-90e0-577ad181514e,ec7b492d-5d38-4f31-90e0-577ad181514e,1,0,5b14d700-bc59-4bdb-8226-554696336e16,5b14d700-bc59-4bdb-8226-554696336e16,1,0,d1771aec-ba78-4b5d-861a-9ac6d8627dea,d1771aec-ba78-4b5d-861a-9ac6d8627dea,1,0,da0686ce-25e2-4d2c-b152-283f5e4cf4b1,da0686ce-25e2-4d2c-b152-283f5e4cf4b1,1,0,07288e13-583c-4caf-983a-76c5d2ebf66f,07288e13-583c-4caf-983a-76c5d2ebf66f,1,0,5e232e6a-7f68-40d2-9555-4a2b3debe095,5e232e6a-7f68-40d2-9555-4a2b3debe095,1,0,efc8ca7d-966d-4c18-acd9-90f22dd75a7a,efc8ca7d-966d-4c18-acd9-90f22dd75a7a,1,0,1780ffa9-1ca3-4bcb-823f-5e582c4cc25e,1780ffa9-1ca3-4bcb-823f-5e582c4cc25e,1,0,2522fce4-d121-482b-a39d-0c1a842d315e,2522fce4-d121-482b-a39d-0c1a842d315e,1,0,4807629d-8421-4bd9-beb4-5b2940197958,4807629d-8421-4bd9-beb4-5b2940197958,1,0,b8d7bdc9-2778-4f36-a0d9-c43fce15eb3c,b8d7bdc9-2778-4f36-a0d9-c43fce15eb3c,1,0,4bad7c64-131a-42cb-9be7-d61f14f456d0,4bad7c64-131a-42cb-9be7-d61f14f456d0,1,0,d46e141b-7a10-4d65-971f-3a35f2114017,d46e141b-7a10-4d65-971f-3a35f2114017,1,0,cd6f96c7-33ee-42b1-bb81-ce7d9652337c,cd6f96c7-33ee-42b1-bb81-ce7d9652337c,1,0,71cad48a-37f2-4894-b876-9d74fa844828,71cad48a-37f2-4894-b876-9d74fa844828,1,0,0f325868-167b-43d5-b17a-eadc606a8f79,0f325868-167b-43d5-b17a-eadc606a8f79,1,0,51ea38c1-3005-4f4b-b813-91c8e2717683,51ea38c1-3005-4f4b-b813-91c8e2717683,1,0,766c7fb5-727e-4975-9ea1-3b0df4739620,766c7fb5-727e-4975-9ea1-3b0df4739620,1,0,ba59393c-c499-4999-91d4-b9e34d94db0e,ba59393c-c499-4999-91d4-b9e34d94db0e,1,0,626da0dd-d75b-4779-be1f-9b71d2f2d4e1,626da0dd-d75b-4779-be1f-9b71d2f2d4e1,1,0,1d4b7f71-6c72-4f41-a2ed-1f2fe2122c04,1d4b7f71-6c72-4f41-a2ed-1f2fe2122c04,1,0,584aa9db-e6b0-49f3-ae9d-5b6c796d015c,584aa9db-e6b0-49f3-ae9d-5b6c796d015c,1,0,fcf6a4cd-d0c9-4f83-b9b0-514baed3ccb9,fcf6a4cd-d0c9-4f83-b9b0-514baed3ccb9,1,0,3f92cffe-b4ea-45e3-b2b9-a9e316405a8c,3f92cffe-b4ea-45e3-b2b9-a9e316405a8c,1,0,913743c3-9529-4c86-b056-93e954df7819,913743c3-9529-4c86-b056-93e954df7819,1,0,a3a9a48b-f241-45b2-b93b-d34bba0a8a66,a3a9a48b-f241-45b2-b93b-d34bba0a8a66,1,0,3b453f76-ab85-4c65-b008-7f8bf44c9631,3b453f76-ab85-4c65-b008-7f8bf44c9631,1,0,ba5574bd-53ca-413f-a245-272f468a80fb,ba5574bd-53ca-413f-a245-272f468a80fb,1,0,772e7011-0019-4edc-b673-b7151cf4fa6c,772e7011-0019-4edc-b673-b7151cf4fa6c,1,0,21ac47fa-12c2-43e2-9b57-afdf521d3485,21ac47fa-12c2-43e2-9b57-afdf521d3485,1,0,e976d3cb-52e1-4f3e-ad01-fcac971a552d,e976d3cb-52e1-4f3e-ad01-fcac971a552d,1,0,f58bffe7-4a02-4c4e-bfed-7895177a400c,f58bffe7-4a02-4c4e-bfed-7895177a400c,1,0,fe285122-2257-4fb2-ab7e-1683c31db1c6,fe285122-2257-4fb2-ab7e-1683c31db1c6,1,0,0facc6eb-a178-45ee-a6bc-4bf085d80453,0facc6eb-a178-45ee-a6bc-4bf085d80453,1,0,f74eef36-9441-4b6f-b21c-de9643832f9f,f74eef36-9441-4b6f-b21c-de9643832f9f,1,0,d1391e3b-ec29-48c8-8bf5-fa4434a909e9,d1391e3b-ec29-48c8-8bf5-fa4434a909e9,1,0,8d1c44d7-52f2-4089-9d77-2f03bf051455,8d1c44d7-52f2-4089-9d77-2f03bf051455,1,0,ac2e5217-aaeb-4b6f-b063-538c84f2da06,ac2e5217-aaeb-4b6f-b063-538c84f2da06,1,0,b5e73fbe-499c-4666-a482-0ef399c97c1e,b5e73fbe-499c-4666-a482-0ef399c97c1e,1,0,a0811e0a-91b6-4c4b-a6d2-a57b9185983b,a0811e0a-91b6-4c4b-a6d2-a57b9185983b,1,0,4ac77dea-3c2b-4566-8857-ba99f7b025c9,4ac77dea-3c2b-4566-8857-ba99f7b025c9,1,0,8e87da88-9fa8-4dd8-b904-622b763239f4,8e87da88-9fa8-4dd8-b904-622b763239f4,1,0,2a7f1ce3-2629-4860-886b-67c9f82eeb29,2a7f1ce3-2629-4860-886b-67c9f82eeb29,1,0,6b5720a8-0bcc-4196-934d-84db9d99ec27,6b5720a8-0bcc-4196-934d-84db9d99ec27,1,0,c0b3e3e9-20bc-42e1-a68f-646a958586d1,c0b3e3e9-20bc-42e1-a68f-646a958586d1,1,0,39496918-7d71-4960-ad8b-0028ae659266,39496918-7d71-4960-ad8b-0028ae659266,1,0,bdf2fd35-2000-45c2-9df6-65031ee0e4af,bdf2fd35-2000-45c2-9df6-65031ee0e4af,1,0,529cc5b5-835f-4e70-9232-a9649fdc7ae5,529cc5b5-835f-4e70-9232-a9649fdc7ae5,1,0,09fec67d-6e45-428c-b858-9ae20979676c,09fec67d-6e45-428c-b858-9ae20979676c,1,0,4875a235-bcc8-47eb-83e3-a66f0f690b97,4875a235-bcc8-47eb-83e3-a66f0f690b97,1,0,58ffc4d9-d711-4b68-905c-d2ac4f78b547,58ffc4d9-d711-4b68-905c-d2ac4f78b547,1,0,114ab2a1-f7c3-4453-a6cc-4c5a23c00cb5,114ab2a1-f7c3-4453-a6cc-4c5a23c00cb5,1,0,93c347d8-66cb-406c-9ee6-b1962482893f,93c347d8-66cb-406c-9ee6-b1962482893f,1,0,cce593b4-6f7c-466d-892c-7fe89fcddf5d,cce593b4-6f7c-466d-892c-7fe89fcddf5d,1,0,86c73514-9a5b-4b0d-a229-fb7ca54f97d9,86c73514-9a5b-4b0d-a229-fb7ca54f97d9,1,0,c62e42e1-297b-412d-a9bd-e612c88025dd,c62e42e1-297b-412d-a9bd-e612c88025dd,1,0,f094db19-fb78-4a8a-89e2-b79fcc2ddcd5,f094db19-fb78-4a8a-89e2-b79fcc2ddcd5,1,0,2b7ba24e-11e3-4447-8e0a-df9e166f56de,2b7ba24e-11e3-4447-8e0a-df9e166f56de,1,0,94ab750f-46b4-427c-a7f2-4e94fb9b0678,94ab750f-46b4-427c-a7f2-4e94fb9b0678,1,0,397d9926-31a3-4c03-acb7-74478f9863e1,397d9926-31a3-4c03-acb7-74478f9863e1,1,0,264dd12a-b4c5-44bf-b3c0-ef9225505f76,264dd12a-b4c5-44bf-b3c0-ef9225505f76,1,0,90b8fdf3-3e42-442f-a002-6a28ad0edc99,90b8fdf3-3e42-442f-a002-6a28ad0edc99,1,0,330a176f-5b61-41f5-84bb-b99a9439c2a0,330a176f-5b61-41f5-84bb-b99a9439c2a0,1,0,d1ba8620-c0c9-4281-afa6-9c9962c338d3,d1ba8620-c0c9-4281-afa6-9c9962c338d3,1,0,92f35bea-50b8-4a1c-8fb2-a8c7df7a50db,92f35bea-50b8-4a1c-8fb2-a8c7df7a50db,1,0,02f1c0db-3217-4c61-aef7-3b87c217739c,02f1c0db-3217-4c61-aef7-3b87c217739c,1,0,82ba8c13-6567-4f0c-be0e-0884ce19bbcc,82ba8c13-6567-4f0c-be0e-0884ce19bbcc,1,0,4bdc1a18-f184-4f95-bda4-8f5c4b7c3aa1,4bdc1a18-f184-4f95-bda4-8f5c4b7c3aa1,1,0,60200fc6-252f-4eaf-88a2-d2cefa25061f,60200fc6-252f-4eaf-88a2-d2cefa25061f,1,0,0798a128-2f87-4173-99ae-115bb8b3a3b8,0798a128-2f87-4173-99ae-115bb8b3a3b8,1,0,40f93527-7bff-4f9c-b855-2b69f7c5eb33,40f93527-7bff-4f9c-b855-2b69f7c5eb33,1,0,697bd1de-bbef-4362-aa39-71f6008f4bd7,697bd1de-bbef-4362-aa39-71f6008f4bd7,1,0,676b2ea2-a559-4685-b5ca-7b619b02f101,676b2ea2-a559-4685-b5ca-7b619b02f101,1,0,c3572d8d-46ff-40bb-800c-2c07f884c219,c3572d8d-46ff-40bb-800c-2c07f884c219,1,0,a3e9afe9-1587-47c7-8e7b-b8df6b3a2664,a3e9afe9-1587-47c7-8e7b-b8df6b3a2664,1,0,0e31d69a-8d2c-4ad0-b3ac-93ba5afcefdf,0e31d69a-8d2c-4ad0-b3ac-93ba5afcefdf,1,0,89574884-bce2-406d-9961-d1656b306eb8,89574884-bce2-406d-9961-d1656b306eb8,1,0,3de28e34-3c1e-4e7f-a720-3418c8c9c496,3de28e34-3c1e-4e7f-a720-3418c8c9c496,1,0,7f2d69b4-2f87-40f4-a78c-fe4cabc2a502,7f2d69b4-2f87-40f4-a78c-fe4cabc2a502,1,0,dacb236e-42a5-47e5-b239-ff18ae48e21e,dacb236e-42a5-47e5-b239-ff18ae48e21e,1,0,5cdb6e71-fd20-461a-83db-d59ccdb5b366,5cdb6e71-fd20-461a-83db-d59ccdb5b366,1,0,388b8576-9ba4-460f-b71b-3d644663656a,388b8576-9ba4-460f-b71b-3d644663656a,1,0,d4d38827-fce6-4c39-a4b4-51c7d7edc475,d4d38827-fce6-4c39-a4b4-51c7d7edc475,1,0,2d40609d-b56f-4082-9a6f-8216817ebd24,2d40609d-b56f-4082-9a6f-8216817ebd24,1,0,62629f36-5d1e-460f-9ac5-983607c40cb2,62629f36-5d1e-460f-9ac5-983607c40cb2,1,0,b238b4b2-beaf-4b5d-a728-8aebac3bacb5,b238b4b2-beaf-4b5d-a728-8aebac3bacb5,1,0,732b19c8-4f22-4748-a796-71538e46fc2f,732b19c8-4f22-4748-a796-71538e46fc2f,1,0,9fb2169b-fc77-4a3f-a1d8-b939079d9d9d,9fb2169b-fc77-4a3f-a1d8-b939079d9d9d,1,0,4b07cdb0-c32e-4751-b317-bee62b43f128,4b07cdb0-c32e-4751-b317-bee62b43f128,1,0,74f02619-7fa8-4c6d-81d6-230156ee45f4,74f02619-7fa8-4c6d-81d6-230156ee45f4,1,0,32cab8f2-cebf-4508-9396-eb41f4e8ba22,32cab8f2-cebf-4508-9396-eb41f4e8ba22,1,0,62ef3558-5ad3-44ab-8578-1acbbfa54135,62ef3558-5ad3-44ab-8578-1acbbfa54135,1,0,a103cca0-8243-40e9-bcdd-97a1cc8a3943,a103cca0-8243-40e9-bcdd-97a1cc8a3943,1,0,80fd89d7-160d-4528-9aa0-05b8dac64b4c,80fd89d7-160d-4528-9aa0-05b8dac64b4c,1,0,b77edd78-2fad-4926-a74f-02f2135356e6,b77edd78-2fad-4926-a74f-02f2135356e6,1,0,57b0b6b2-bbdd-48d2-a52e-e3495e00860e,57b0b6b2-bbdd-48d2-a52e-e3495e00860e,1,0,4eb24fcd-85f6-4fa6-bc9f-baef3861664e,4eb24fcd-85f6-4fa6-bc9f-baef3861664e,1,0,da551cf6-4f86-4e37-8967-a84c80e1fb13,da551cf6-4f86-4e37-8967-a84c80e1fb13,1,0,4f4916dc-b6fe-4f99-9220-bd7c076408ae,4f4916dc-b6fe-4f99-9220-bd7c076408ae,1,0,857daa3a-0058-4464-9173-13a2926812e2,857daa3a-0058-4464-9173-13a2926812e2,1,0,5fb2c120-fd14-4e78-a35f-c8e9478b3235,5fb2c120-fd14-4e78-a35f-c8e9478b3235,1,0,9d514ce1-f9bd-4018-8107-545cdd372fbd,9d514ce1-f9bd-4018-8107-545cdd372fbd,1,0,fe6b732f-3a33-460f-9686-cffdd5f7d99b,fe6b732f-3a33-460f-9686-cffdd5f7d99b,1,0,06250212-aeb1-4cb8-8785-ea71b1dad848,06250212-aeb1-4cb8-8785-ea71b1dad848,1,0,0c068a61-e5e6-4475-96fa-b7c1d825da42,0c068a61-e5e6-4475-96fa-b7c1d825da42,1,0,1047e34d-397a-42cc-80e6-1be755bd6462,1047e34d-397a-42cc-80e6-1be755bd6462,1,0,1cd473c3-4e36-47a9-b466-73d86ec244b0,1cd473c3-4e36-47a9-b466-73d86ec244b0,1,0,c3e31dfd-b79b-49b9-9dc0-e2439bfe5ab7,c3e31dfd-b79b-49b9-9dc0-e2439bfe5ab7,1,0,b406b5f9-eeaf-43a0-8930-067554d783c9,b406b5f9-eeaf-43a0-8930-067554d783c9,1,0,47718840-2939-4e30-a72c-a20c88ac4c17,47718840-2939-4e30-a72c-a20c88ac4c17,1,0,58a38994-9fe4-4783-967d-79d1141b90f3,58a38994-9fe4-4783-967d-79d1141b90f3,1,0,6e23a4b2-f53c-41ea-9fef-8f4561b8e0cc,6e23a4b2-f53c-41ea-9fef-8f4561b8e0cc,1,0,a511f7d7-60ef-4a5c-8f8e-ddbee065eccd,a511f7d7-60ef-4a5c-8f8e-ddbee065eccd,1,0,6fa87b5a-fab0-48b6-b8ab-1aaa8c82d81d,6fa87b5a-fab0-48b6-b8ab-1aaa8c82d81d,1,0,323ef3df-b1cb-4927-a16e-2dbf11e37ae8,323ef3df-b1cb-4927-a16e-2dbf11e37ae8,1,0,e1760aea-29e3-4a45-b02a-b2b96cb73ec4,e1760aea-29e3-4a45-b02a-b2b96cb73ec4,1,0,c2b721a7-1e61-4b72-ba75-f4601d52e98a,c2b721a7-1e61-4b72-ba75-f4601d52e98a,1,0,a4ecd21c-a980-47f8-9944-b1dd7b5a41f3,a4ecd21c-a980-47f8-9944-b1dd7b5a41f3,1,0,dd8c783c-0559-47bb-a089-8fd0783c1a94,dd8c783c-0559-47bb-a089-8fd0783c1a94,1,0,d2855fab-f319-4df8-accc-0727e442bad7,d2855fab-f319-4df8-accc-0727e442bad7,1,0,7c2e35a8-d05d-4e52-baee-a1e13585c502,7c2e35a8-d05d-4e52-baee-a1e13585c502,1,0,5d8b60e5-d407-4d8a-b4fb-e26a36ab8180,5d8b60e5-d407-4d8a-b4fb-e26a36ab8180,1,0,2cea7641-6f1d-4bc7-9d38-8d99f196e0f5,2cea7641-6f1d-4bc7-9d38-8d99f196e0f5,1,0,0093680b-c8bc-472d-8b0d-2e6565fc6c22,0093680b-c8bc-472d-8b0d-2e6565fc6c22,1,0,7fa6a20a-26e2-41ad-be66-a43b50d0bbcd,7fa6a20a-26e2-41ad-be66-a43b50d0bbcd,1,0,5f4456d6-ff0c-425e-9603-c099492d7a6f,5f4456d6-ff0c-425e-9603-c099492d7a6f,1,0,af7c417e-5c10-4146-bde1-40db86c5806f,af7c417e-5c10-4146-bde1-40db86c5806f,1,0,1f018218-2281-4e32-a486-f32386959e5f,1f018218-2281-4e32-a486-f32386959e5f,1,0,7fc26c5a-7d01-487d-aa33-3aa81d51b9a2,7fc26c5a-7d01-487d-aa33-3aa81d51b9a2,1,0,ab5b0155-a4b1-47a1-ad87-12365dde20c1,ab5b0155-a4b1-47a1-ad87-12365dde20c1,1,0,90f3f3c5-4ca9-4c8f-9b73-f67760a6d2f0,90f3f3c5-4ca9-4c8f-9b73-f67760a6d2f0,1,0,f551f78a-2f05-4932-ac33-cfa1b077f46f,f551f78a-2f05-4932-ac33-cfa1b077f46f,1,0,a96091a7-d3a5-4893-8440-f360231bf468,a96091a7-d3a5-4893-8440-f360231bf468,1,0,9ce6eef0-5280-4374-9714-474ac571e4e2,9ce6eef0-5280-4374-9714-474ac571e4e2,1,0,6f21c34c-26aa-493d-aa08-2d4366b4064a,6f21c34c-26aa-493d-aa08-2d4366b4064a,1,0,0f55650a-2422-42a9-8258-61df4c17f1ef,0f55650a-2422-42a9-8258-61df4c17f1ef,1,0,2ef4ea1d-fd86-4ef3-a7e0-73abba89474d,2ef4ea1d-fd86-4ef3-a7e0-73abba89474d,1,0,3eaece9d-c9be-4b0b-a6f6-a3932274b806,3eaece9d-c9be-4b0b-a6f6-a3932274b806,1,0,5d9427ec-981d-4fb5-878b-8dba0d3a5536,5d9427ec-981d-4fb5-878b-8dba0d3a5536,1,0,c5dd6184-96e5-4abc-8c1e-5270e6547ee5,c5dd6184-96e5-4abc-8c1e-5270e6547ee5,1,0,a0047712-5769-495d-97af-20d06751a5b4,a0047712-5769-495d-97af-20d06751a5b4,1,0,e729c3c6-16e5-405b-99b1-a88022300c6d,e729c3c6-16e5-405b-99b1-a88022300c6d,1,0,9c089520-8233-42f6-8eee-9839ac708c6f,9c089520-8233-42f6-8eee-9839ac708c6f,1,0,24f2cfc7-6dc0-400c-8eb2-106ca2ea7034,24f2cfc7-6dc0-400c-8eb2-106ca2ea7034,1,0,5f3ffa44-49be-4da5-ab2a-a35c9bd76dee,5f3ffa44-49be-4da5-ab2a-a35c9bd76dee,1,0,89055896-49dd-4cfd-ab78-8ac3698e12d5,89055896-49dd-4cfd-ab78-8ac3698e12d5,1,0,277ca641-e869-4fcd-8a79-54c451efbbdd,277ca641-e869-4fcd-8a79-54c451efbbdd,1,0,beb07009-6612-4052-a991-888138da8e30,beb07009-6612-4052-a991-888138da8e30,1,0,aeb54e92-a1d0-46a1-b4cb-87d3c29fa30b,aeb54e92-a1d0-46a1-b4cb-87d3c29fa30b,1,0,8395bfb2-3cf4-4bec-b19b-eb6dd3aa7a39,8395bfb2-3cf4-4bec-b19b-eb6dd3aa7a39,1,0,672c4741-6d7b-4d3e-baa7-389bef0625d7,672c4741-6d7b-4d3e-baa7-389bef0625d7,1,0,04398ec0-1c13-43f8-8f5d-7b7619592a4d,04398ec0-1c13-43f8-8f5d-7b7619592a4d,1,0,ce463861-92df-47f2-bd0f-4a2dbf72aacc,ce463861-92df-47f2-bd0f-4a2dbf72aacc,1,0,1220ce92-b964-4fb8-9db0-b4c8c6bdbdf7,1220ce92-b964-4fb8-9db0-b4c8c6bdbdf7,1,0,eca79a64-3d00-4178-b4eb-cf5468622c96,eca79a64-3d00-4178-b4eb-cf5468622c96,1,0,1487d68c-7a2f-48cf-8c80-4074072ed52c,1487d68c-7a2f-48cf-8c80-4074072ed52c,1,0,57502594-74dd-45fe-9234-9a477d5b9741,57502594-74dd-45fe-9234-9a477d5b9741,1,0,6ed8c74c-6b6e-4ed1-95ff-a733f618b213,6ed8c74c-6b6e-4ed1-95ff-a733f618b213,1,0,d97c6536-fd62-4c9a-b83e-490a29a0721b,d97c6536-fd62-4c9a-b83e-490a29a0721b,1,0,93ec2af7-2ca8-4133-8cc0-31073f9bf216,93ec2af7-2ca8-4133-8cc0-31073f9bf216,1,0,60cd8bc4-6a5d-4d36-83d0-76a8477eda6a,60cd8bc4-6a5d-4d36-83d0-76a8477eda6a,1,0,681b27ac-69a5-4c5b-b2c7-285330fe5a4a,681b27ac-69a5-4c5b-b2c7-285330fe5a4a,1,0,6dc4c216-e49f-4833-b45f-6060b67995ef,6dc4c216-e49f-4833-b45f-6060b67995ef,1,0,0753701c-016e-4385-85c0-a485ca50efdc,0753701c-016e-4385-85c0-a485ca50efdc,1,0,c3a6b470-37d5-4499-badb-33b73b52e346,c3a6b470-37d5-4499-badb-33b73b52e346,1,0,24415097-bde5-447a-ac74-bd9bf0eb19fc,24415097-bde5-447a-ac74-bd9bf0eb19fc,1,0,a29d42d6-a448-4940-804d-d1be31da000d,a29d42d6-a448-4940-804d-d1be31da000d,1,0,dd780b76-2a10-40b5-9bcd-7bc8c9b06651,dd780b76-2a10-40b5-9bcd-7bc8c9b06651,1,0,8be6c4a3-d75b-405d-8d98-9baf6f20abb2,8be6c4a3-d75b-405d-8d98-9baf6f20abb2,1,0,7cbd82e3-4bf8-46ab-8504-4bf30523fa2a,7cbd82e3-4bf8-46ab-8504-4bf30523fa2a,1,0,c4b01e52-4136-460d-bd82-970177f1e256,c4b01e52-4136-460d-bd82-970177f1e256,1,0,9533784b-311a-4dbe-b73e-7348aabd387e,9533784b-311a-4dbe-b73e-7348aabd387e,1,0,56bdc69a-d8e8-4da6-a3a5-41ef32bbb626,56bdc69a-d8e8-4da6-a3a5-41ef32bbb626,1,0,c770cd75-f370-4042-9a5a-82b2fc1853cc,c770cd75-f370-4042-9a5a-82b2fc1853cc,1,0,6ee215f9-20ab-4c48-b2c2-cb1869e8906c,6ee215f9-20ab-4c48-b2c2-cb1869e8906c,1,0,b74af9c1-bc44-40ce-b093-d1f548a1742f,b74af9c1-bc44-40ce-b093-d1f548a1742f,1,0,1b401a14-4581-4f24-aaca-5f204f8fcf8b,1b401a14-4581-4f24-aaca-5f204f8fcf8b,1,0,267f7ee6-7b02-4e48-aa1e-145f586edd87,267f7ee6-7b02-4e48-aa1e-145f586edd87,1,0,e1e8ea42-6886-430a-bc59-249259112e6a,e1e8ea42-6886-430a-bc59-249259112e6a,1,0,1e27f3cd-1c9e-4f9f-b2ff-88fb1da37e11,1e27f3cd-1c9e-4f9f-b2ff-88fb1da37e11,1,0,3dcf815c-5c9a-4a78-a42e-7c9ff6faaeb8,3dcf815c-5c9a-4a78-a42e-7c9ff6faaeb8,1,0,1379f050-4f1c-4c41-993e-f7efc71325fb,1379f050-4f1c-4c41-993e-f7efc71325fb,1,0,4655fa12-9169-4d08-bdab-9b3174d0b223,4655fa12-9169-4d08-bdab-9b3174d0b223,1,0,753c70c1-af12-4ec2-ac12-dd1ce33f729f,753c70c1-af12-4ec2-ac12-dd1ce33f729f,1,0,6c07ddfb-8823-4953-9905-9550b847dc3f,6c07ddfb-8823-4953-9905-9550b847dc3f,1,0,2362a8d5-dca2-4527-acc0-63782377f28a,2362a8d5-dca2-4527-acc0-63782377f28a,1,0,dfd6d85c-a734-4458-83b0-87b5949f9c68,dfd6d85c-a734-4458-83b0-87b5949f9c68,1,0,2c2870fd-7a2a-4c0c-8db2-42e961c7be62,2c2870fd-7a2a-4c0c-8db2-42e961c7be62,1,0,46d1eb47-f909-4f07-93f6-d773770a504f,46d1eb47-f909-4f07-93f6-d773770a504f,1,0,600382ec-d6d1-45ad-a052-853dcd4a9b56,600382ec-d6d1-45ad-a052-853dcd4a9b56,1,0,d54d069e-28b2-4a3d-904c-af49eaf0d4d0,d54d069e-28b2-4a3d-904c-af49eaf0d4d0,1,0,36edf443-2719-4860-b8f8-47972361a869,36edf443-2719-4860-b8f8-47972361a869,1,0,95229b1b-6bf5-44c1-89aa-5decf00d6a08,95229b1b-6bf5-44c1-89aa-5decf00d6a08,1,0,00149051-cb5d-404b-9bc7-6347f3f29bf6,00149051-cb5d-404b-9bc7-6347f3f29bf6,1,0,2f62312d-feaa-4fd5-8c31-5490557ff4b3,2f62312d-feaa-4fd5-8c31-5490557ff4b3,1,0,d543b975-4f0c-4bd2-858f-7c9f4e96072a,d543b975-4f0c-4bd2-858f-7c9f4e96072a,1,0,9482e272-b551-4ba5-a27a-06fa0359a8d5,9482e272-b551-4ba5-a27a-06fa0359a8d5,1,0,4e3b0b9f-45b7-48a8-86c6-cc14a921aa78,4e3b0b9f-45b7-48a8-86c6-cc14a921aa78,1,0,79b6ecf5-8a6b-44a4-9587-5f8764463228,79b6ecf5-8a6b-44a4-9587-5f8764463228,1,0,5e4ec9d8-bb60-4dfb-89ba-002527dc149b,5e4ec9d8-bb60-4dfb-89ba-002527dc149b,1,0,6c0cc7b1-d408-4fd1-9b83-71fb5ce001b1,6c0cc7b1-d408-4fd1-9b83-71fb5ce001b1,1,0,a5de65da-c2d5-4219-bc27-a63c4f295b52,a5de65da-c2d5-4219-bc27-a63c4f295b52,1,0,9d6a4fc0-b231-4ef8-8179-9f810ac59cf0,9d6a4fc0-b231-4ef8-8179-9f810ac59cf0,1,0,bf463763-3801-4664-9d04-4d9fd7fe8c43,bf463763-3801-4664-9d04-4d9fd7fe8c43,1,0,c3f59d60-ca4b-4754-9f90-b1e5c76faa80,c3f59d60-ca4b-4754-9f90-b1e5c76faa80,1,0,73cc9301-8ed1-4345-bbdf-ab52b94f4def,73cc9301-8ed1-4345-bbdf-ab52b94f4def,1,0,43a0760f-3635-4e6a-a68a-1a2232245329,43a0760f-3635-4e6a-a68a-1a2232245329,1,0,5c64a4dd-2b9f-4110-abe2-266e6d8638fb,5c64a4dd-2b9f-4110-abe2-266e6d8638fb,1,0,d408d054-86ac-4471-a29d-efed65989899,d408d054-86ac-4471-a29d-efed65989899,1,0,3e979ec3-b544-4e37-8be6-95dce0a2b780,3e979ec3-b544-4e37-8be6-95dce0a2b780,1,0,2444eed3-25c7-4abc-a9a8-f3f3a8201267,2444eed3-25c7-4abc-a9a8-f3f3a8201267,1,0,e91118e9-d054-41a1-bfe9-343179718f33,e91118e9-d054-41a1-bfe9-343179718f33,1,0,042245ef-3a30-46fb-b3e3-6599d5426cbd,042245ef-3a30-46fb-b3e3-6599d5426cbd,1,0,d1034240-ab06-413a-9828-a5c7dc879680,d1034240-ab06-413a-9828-a5c7dc879680,1,0,5dd0f264-6d9f-41e4-92b6-e8b4fa3b4d84,5dd0f264-6d9f-41e4-92b6-e8b4fa3b4d84,1,0,72ea5884-9658-4273-9352-a7e8be81f622,72ea5884-9658-4273-9352-a7e8be81f622,1,0,cd49148c-e385-4b75-a758-a93196e73dba,cd49148c-e385-4b75-a758-a93196e73dba,1,0,ece15c4e-4a4b-421b-9f00-10f698da476b,ece15c4e-4a4b-421b-9f00-10f698da476b,1,0,6cb136cd-dc5c-4d85-8a0d-70b9f8bf70d5,6cb136cd-dc5c-4d85-8a0d-70b9f8bf70d5,1,0,300ecdd6-144f-48c8-9fd4-6166f1de1047,300ecdd6-144f-48c8-9fd4-6166f1de1047,1,0,b6bbfb59-8249-47af-9394-be262f118811,b6bbfb59-8249-47af-9394-be262f118811,1,0,999df397-a730-4110-b253-59fd5583dab9,999df397-a730-4110-b253-59fd5583dab9,1,0,7f7bf652-0375-4f49-94f1-ebe6a00e4e23,7f7bf652-0375-4f49-94f1-ebe6a00e4e23,1,0,c415f1af-7fa9-4a20-890a-c491fad78cb9,c415f1af-7fa9-4a20-890a-c491fad78cb9,1,0,12d19666-e996-4b55-b43c-b3a541f849a7,12d19666-e996-4b55-b43c-b3a541f849a7,1,0,15dab650-f7ed-42bc-8ca3-c104c3e68ce4,15dab650-f7ed-42bc-8ca3-c104c3e68ce4,1,0,fb63d488-fb91-4d08-8f8c-f4836538216f,fb63d488-fb91-4d08-8f8c-f4836538216f,1,0,b8be6c09-6880-45d3-a2d1-06ad72d069c9,b8be6c09-6880-45d3-a2d1-06ad72d069c9,1,0,3c1b10c7-3667-43f0-ac03-8cdaa84cb177,3c1b10c7-3667-43f0-ac03-8cdaa84cb177,1,0,148dd521-8754-451b-803b-cbee7c3d3965,148dd521-8754-451b-803b-cbee7c3d3965,1,0,38bc48c7-3938-47be-be3f-844f19561301,38bc48c7-3938-47be-be3f-844f19561301,1,0,4bdd09d5-6bc9-421f-99f0-ae905340f0d4,4bdd09d5-6bc9-421f-99f0-ae905340f0d4,1,0,147038fb-6154-41f3-aad6-547db27d1e43,147038fb-6154-41f3-aad6-547db27d1e43,1,0,832fa9d3-deab-4c57-b6e2-dee5d24d6100,832fa9d3-deab-4c57-b6e2-dee5d24d6100,1,0,dd4270ef-6b4c-491e-8871-959dbec14c53,dd4270ef-6b4c-491e-8871-959dbec14c53,1,0,c2b115d3-04f8-43c8-aed9-c61280b8cc3b,c2b115d3-04f8-43c8-aed9-c61280b8cc3b,1,0,9883862f-c0eb-41fe-9374-05c6d72878bc,9883862f-c0eb-41fe-9374-05c6d72878bc,1,0,61cfdc9a-49c3-4316-b38d-997910cf25c3,61cfdc9a-49c3-4316-b38d-997910cf25c3,1,0,8ccd9be8-ef26-49b9-8cee-03ae4e500386,8ccd9be8-ef26-49b9-8cee-03ae4e500386,1,0,ddca925c-fdcd-40ce-a504-4fca1758de3f,ddca925c-fdcd-40ce-a504-4fca1758de3f,1,0,67feda40-f9d6-4782-bba1-a5e0fccd5350,67feda40-f9d6-4782-bba1-a5e0fccd5350,1,0,9bd92328-8c9c-4882-8956-a1fccf555a64,9bd92328-8c9c-4882-8956-a1fccf555a64,1,0,cafc6b5b-a76a-4b1b-9592-ba440f7bf34f,cafc6b5b-a76a-4b1b-9592-ba440f7bf34f,1,0,e5033559-9d58-4b9b-a739-40c419e82192,e5033559-9d58-4b9b-a739-40c419e82192,1,0,594c79fa-0fdc-41d5-b122-04615dca3752,594c79fa-0fdc-41d5-b122-04615dca3752,1,0,f64de21f-5a7c-4a1a-a929-07fc53049f6c,f64de21f-5a7c-4a1a-a929-07fc53049f6c,1,0,470cdf43-07f4-46d5-aab2-d41f1e5da3cd,470cdf43-07f4-46d5-aab2-d41f1e5da3cd,1,0,ea653eca-f96a-447d-8b09-7a7cb6929ed6,ea653eca-f96a-447d-8b09-7a7cb6929ed6,1,0,4f9b6c01-0919-41ba-91dc-49497d0fecf7,4f9b6c01-0919-41ba-91dc-49497d0fecf7,1,0,e01c575c-51ce-4e06-978b-da59b8bfb029,e01c575c-51ce-4e06-978b-da59b8bfb029,1,0,ea07cd11-418c-4e4f-be9f-c160ee8a64e8,ea07cd11-418c-4e4f-be9f-c160ee8a64e8,1,0,ea868745-71fc-483c-aa6e-f242c06c673f,ea868745-71fc-483c-aa6e-f242c06c673f,1,0,5efc4bc4-b711-4620-8d2e-9d947c6cc141,5efc4bc4-b711-4620-8d2e-9d947c6cc141,1,0,1d8d0eed-caaa-494c-aeea-0df5846fc97a,1d8d0eed-caaa-494c-aeea-0df5846fc97a,1,0,1328947f-91c3-43f4-a11e-f34893d987b3,1328947f-91c3-43f4-a11e-f34893d987b3,1,0,6de9dab4-ee34-4584-a2e7-7a29c86794b0,6de9dab4-ee34-4584-a2e7-7a29c86794b0,1,0,ae52e48c-20ec-43cd-a9a5-b1753558e1d2,ae52e48c-20ec-43cd-a9a5-b1753558e1d2,1,0,5e08154e-bd8b-4e61-8a6c-b5b500f12b99,5e08154e-bd8b-4e61-8a6c-b5b500f12b99,1,0,39af0f4c-0f0d-4e9a-aa63-d0eee3985b4e,39af0f4c-0f0d-4e9a-aa63-d0eee3985b4e,1,0,2b72fe1c-afe1-4905-8db2-2bb1baca6295,2b72fe1c-afe1-4905-8db2-2bb1baca6295,1,0,aa8c4a71-3276-4b83-8be2-3528129e58b3,aa8c4a71-3276-4b83-8be2-3528129e58b3,1,0,4bc4c6db-0ef8-405f-8875-b4cb1540aeb5,4bc4c6db-0ef8-405f-8875-b4cb1540aeb5,1,0,528d3535-f20f-4d3c-8b7d-482d4d626eb0,528d3535-f20f-4d3c-8b7d-482d4d626eb0,1,0,dbd8391c-a174-43d6-a8db-d9ab76b4edbe,dbd8391c-a174-43d6-a8db-d9ab76b4edbe,1,0,e9a2441e-faf9-4158-acc7-b1a6178ae0f3,e9a2441e-faf9-4158-acc7-b1a6178ae0f3,1,0,ea0a498a-a1cb-4f28-88cb-0bc62971172b,ea0a498a-a1cb-4f28-88cb-0bc62971172b,1,0,ce5f5470-b704-4f55-8dc8-17cf2c2b367a,ce5f5470-b704-4f55-8dc8-17cf2c2b367a,1,0,871a75ef-1987-4695-9916-07439aeedc53,871a75ef-1987-4695-9916-07439aeedc53,1,0,ba64deac-5826-43f2-b88a-2e180da87059,ba64deac-5826-43f2-b88a-2e180da87059,1,0,53ee3eb6-d2d1-4fb3-8a78-1fa4543850a1,53ee3eb6-d2d1-4fb3-8a78-1fa4543850a1,1,0,0072986b-0463-4a39-9851-f9adeda99716,0072986b-0463-4a39-9851-f9adeda99716,1,0,fa44433b-1c44-45a0-9487-47aa092442cf,fa44433b-1c44-45a0-9487-47aa092442cf,1,0,041cecfd-cef2-45d9-90e8-afe0d97d2d95,041cecfd-cef2-45d9-90e8-afe0d97d2d95,1,0,0d4a26fb-7176-43f2-8767-d3e227c7306a,0d4a26fb-7176-43f2-8767-d3e227c7306a,1,0,801facc3-3b3b-4d0a-93c6-54a1f3495291,801facc3-3b3b-4d0a-93c6-54a1f3495291,1,0,f10167ac-f7bd-42fb-8daa-864593fcc115,f10167ac-f7bd-42fb-8daa-864593fcc115,1,0,77de81f0-97c5-4751-9f38-f5785c7c45e0,77de81f0-97c5-4751-9f38-f5785c7c45e0,1,0,933cbafc-5667-4a91-8b1d-dca3d7662522,933cbafc-5667-4a91-8b1d-dca3d7662522,1,0,59acaca9-ed29-4927-bee6-287c91934690,59acaca9-ed29-4927-bee6-287c91934690,1,0,9136814a-89e6-4b0f-8ca1-73e4ef29f534,9136814a-89e6-4b0f-8ca1-73e4ef29f534,1,0,d7e4795a-3431-4f7d-9699-4241611adcf0,d7e4795a-3431-4f7d-9699-4241611adcf0,1,0,7e4222fd-fb98-4ae5-9d98-d41c3d572a0c,7e4222fd-fb98-4ae5-9d98-d41c3d572a0c,1,0,37041c83-b1ed-4eec-a011-a2a1788f867e,37041c83-b1ed-4eec-a011-a2a1788f867e,1,0,a138ea0b-b564-46d9-b52a-bc8d2876bc15,a138ea0b-b564-46d9-b52a-bc8d2876bc15,1,0,d9d14a24-c023-4b69-ad57-30d1474e1232,d9d14a24-c023-4b69-ad57-30d1474e1232,1,0,b6e98aee-4936-491d-8c67-8490e1af2e34,b6e98aee-4936-491d-8c67-8490e1af2e34,1,0,0732ab1c-b49a-49ed-8667-65f4427cc301,0732ab1c-b49a-49ed-8667-65f4427cc301,1,0,b292eb46-df87-43c0-9a37-93c5a22af252,b292eb46-df87-43c0-9a37-93c5a22af252,1,0,0943dd00-1653-4760-a9fe-ebc083ffa660,0943dd00-1653-4760-a9fe-ebc083ffa660,1,0,7406da96-2e16-42a0-9522-d76547708eca,7406da96-2e16-42a0-9522-d76547708eca,1,0,ede6a379-b0e5-4b8d-a454-779c0fd8b0b3,ede6a379-b0e5-4b8d-a454-779c0fd8b0b3,1,0,e475a311-7cef-45e2-9ed2-0bded8b5c963,e475a311-7cef-45e2-9ed2-0bded8b5c963,1,0,6179c7bf-08d6-4600-8cdc-ea6d4187bd55,6179c7bf-08d6-4600-8cdc-ea6d4187bd55,1,0,f93c9a7f-0249-421e-b3d0-55f02d130017,f93c9a7f-0249-421e-b3d0-55f02d130017,1,0,062c507a-9d35-4eb5-bb91-d106a535a503,062c507a-9d35-4eb5-bb91-d106a535a503,1,0,ea1284f2-33f1-4e3d-b009-1ffad3aaf300,ea1284f2-33f1-4e3d-b009-1ffad3aaf300,1,0,bd727741-ba99-484d-9d7d-2c2ad7ddd1a5,bd727741-ba99-484d-9d7d-2c2ad7ddd1a5,1,0,90327957-5bdc-4949-883c-9eb50f527b3e,90327957-5bdc-4949-883c-9eb50f527b3e,1,0,031980f5-60e8-426a-9907-3afff75a6b05,031980f5-60e8-426a-9907-3afff75a6b05,1,0,1a26f2d5-2465-484c-9311-12d9b3b92ae3,1a26f2d5-2465-484c-9311-12d9b3b92ae3,1,0,fd317d96-380e-4ee7-a25b-401e8521cc7a,fd317d96-380e-4ee7-a25b-401e8521cc7a,1,0,47091af9-954c-489f-a560-683ca3d6996e,47091af9-954c-489f-a560-683ca3d6996e,1,0,64837ad8-3055-4da3-a39c-0e7db38b6084,64837ad8-3055-4da3-a39c-0e7db38b6084,1,0,695cda1d-b816-4200-9a71-490078a9faa7,695cda1d-b816-4200-9a71-490078a9faa7,1,0,75fc5bea-e239-4de1-ad68-6454876e4b9f,75fc5bea-e239-4de1-ad68-6454876e4b9f,1,0,31ba33d4-5941-4b11-ae99-b15188bfef76,31ba33d4-5941-4b11-ae99-b15188bfef76,1,0,0744e8be-747c-47bb-85f3-58b6f6f9b786,0744e8be-747c-47bb-85f3-58b6f6f9b786,1,0,7142ae5b-ec7b-4a69-9c26-f51e05a4c270,7142ae5b-ec7b-4a69-9c26-f51e05a4c270,1,0,3b380a63-9232-42c2-bfa2-e8fc89448bbd,3b380a63-9232-42c2-bfa2-e8fc89448bbd,1,0,e18b4527-8727-4a10-9e99-a80012debe6c,e18b4527-8727-4a10-9e99-a80012debe6c,1,0,1ed910db-e434-4efd-9b12-c25353a31d5a,1ed910db-e434-4efd-9b12-c25353a31d5a,1,0,10556a26-ea4b-46b4-84d1-175eb13b333f,10556a26-ea4b-46b4-84d1-175eb13b333f,1,0,f1e600b0-55ed-4611-b147-f04d5621796b,f1e600b0-55ed-4611-b147-f04d5621796b,1,0,e3b84128-95e1-45df-84db-5e1791779543,e3b84128-95e1-45df-84db-5e1791779543,1,0,76702e9e-fa7a-4b98-befa-f9b37db2dae0,76702e9e-fa7a-4b98-befa-f9b37db2dae0,1,0,101a4eb3-cdda-47af-8c69-615a6920347a,101a4eb3-cdda-47af-8c69-615a6920347a,1,0,cf19f220-f6d4-4c9e-b5d5-9d94234f0a2c,cf19f220-f6d4-4c9e-b5d5-9d94234f0a2c,1,0,e9d95895-8708-4035-89ad-72573b870491,e9d95895-8708-4035-89ad-72573b870491,1,0,f410a5db-8698-44ca-9ff6-2c530e1f5c2a,f410a5db-8698-44ca-9ff6-2c530e1f5c2a,1,0,f79bada2-838f-4e4f-a017-935cf671a70c,f79bada2-838f-4e4f-a017-935cf671a70c,1,0,312118ff-a2a4-479c-964a-5250cca0cd20,312118ff-a2a4-479c-964a-5250cca0cd20,1,0,355eb7bc-651a-4b24-abcd-61bb83222b7e,355eb7bc-651a-4b24-abcd-61bb83222b7e,1,0,f8d32d21-ea2f-42bb-a785-9bd3cf754cd9,f8d32d21-ea2f-42bb-a785-9bd3cf754cd9,1,0,3f3a0b1b-04ce-47c1-928d-5e3483e9fd73,3f3a0b1b-04ce-47c1-928d-5e3483e9fd73,1,0,8a310493-c06f-46db-b2b5-14d6ed203312,8a310493-c06f-46db-b2b5-14d6ed203312,1,0,caf8f0e8-7a2c-498b-9b74-ed6b87cce670,caf8f0e8-7a2c-498b-9b74-ed6b87cce670,1,0,b68ec95b-64f3-4a2b-9683-231d50f01eeb,b68ec95b-64f3-4a2b-9683-231d50f01eeb,1,0,89318397-b3a6-4468-985b-ed5cb8ab5cdb,89318397-b3a6-4468-985b-ed5cb8ab5cdb,1,0,4e6734a0-3bf8-4e71-bd38-5526819609f4,4e6734a0-3bf8-4e71-bd38-5526819609f4,1,0,5e5b0ad7-ef73-4a73-baf5-360a9244a1cc,5e5b0ad7-ef73-4a73-baf5-360a9244a1cc,1,0,4a008342-f72f-4ca1-bad1-64b59b509911,4a008342-f72f-4ca1-bad1-64b59b509911,1,0,4436b2cf-2d71-401f-99fd-012ff0c91fbd,4436b2cf-2d71-401f-99fd-012ff0c91fbd,1,0,cefa1723-a4d4-44c4-bd57-ffa713f9306c,cefa1723-a4d4-44c4-bd57-ffa713f9306c,1,0,5d75aae8-9d9c-4a47-b8c0-2ce56431fe53,5d75aae8-9d9c-4a47-b8c0-2ce56431fe53,1,0,5396be45-d7c0-43df-aed4-cad062a02b11,5396be45-d7c0-43df-aed4-cad062a02b11,1,0,017e3da8-e48e-488b-9bbf-4fef1a4f3417,017e3da8-e48e-488b-9bbf-4fef1a4f3417,1,0,de4d37c9-b278-4c0c-bc10-1b63ecd72947,de4d37c9-b278-4c0c-bc10-1b63ecd72947,1,0,05b94d2f-50de-4649-8602-554690250e86,05b94d2f-50de-4649-8602-554690250e86,1,0,aebf163d-d8e8-492a-a973-8cb51982d475,aebf163d-d8e8-492a-a973-8cb51982d475,1,0,05d5befc-493c-4939-a364-ccbf5e11f924,05d5befc-493c-4939-a364-ccbf5e11f924,1,0,5a741cf6-8160-4409-9396-2e6d1e67e6fa,5a741cf6-8160-4409-9396-2e6d1e67e6fa,1,0,5dad2aa7-cbfe-4299-b390-35a37e40edda,5dad2aa7-cbfe-4299-b390-35a37e40edda,1,0,4920aabf-6f53-4f91-932a-8ace24631a74,4920aabf-6f53-4f91-932a-8ace24631a74,1,0,ce7a7f72-9d7d-4240-b852-e83b4b8d944b,ce7a7f72-9d7d-4240-b852-e83b4b8d944b,1,0,7531fb7c-a4ae-42df-b8e5-d8bfcb66be52,7531fb7c-a4ae-42df-b8e5-d8bfcb66be52,1,0,d9e98c14-9b07-406b-92c8-bec76165e028,d9e98c14-9b07-406b-92c8-bec76165e028,1,0,94d9b16a-136a-4472-a178-baa7824e9681,94d9b16a-136a-4472-a178-baa7824e9681,1,0,7309e58d-b0d4-4e0f-a74d-68cab03fea8e,7309e58d-b0d4-4e0f-a74d-68cab03fea8e,1,0,9bb33b9f-0a27-4edd-b3b2-1c20a75d0f20,9bb33b9f-0a27-4edd-b3b2-1c20a75d0f20,1,0,bbec9c3d-31dd-484e-ab32-41ef845f1370,bbec9c3d-31dd-484e-ab32-41ef845f1370,1,0,8692ba41-d91d-4af0-8aba-69dd5409d593,8692ba41-d91d-4af0-8aba-69dd5409d593,1,0,7abb55d2-eac6-44a0-9ebc-fa26a7f0c028,7abb55d2-eac6-44a0-9ebc-fa26a7f0c028,1,0,bdafe976-c8d6-413a-8d61-765a02014e5d,bdafe976-c8d6-413a-8d61-765a02014e5d,1,0,22ddedc0-a20c-4253-8c1f-22e5ab784987,22ddedc0-a20c-4253-8c1f-22e5ab784987,1,0,6fc11eb6-ee52-425c-a311-516d0edbb680,6fc11eb6-ee52-425c-a311-516d0edbb680,1,0,68e207e7-8c20-426d-8a0e-c3dd4d683631,68e207e7-8c20-426d-8a0e-c3dd4d683631,1,0,6d7fa2f9-7ca4-4ad6-b94b-8267768a0f04,6d7fa2f9-7ca4-4ad6-b94b-8267768a0f04,1,0,5cc3a29d-aa98-42bf-9800-f584229c8e46,5cc3a29d-aa98-42bf-9800-f584229c8e46,1,0,a95b564a-c895-40f2-b947-ea08462bb2a0,a95b564a-c895-40f2-b947-ea08462bb2a0,1,0,1e015740-5b45-4729-9732-57359a7c602f,1e015740-5b45-4729-9732-57359a7c602f,1,0,6eb6003c-71cb-4be8-a375-abd5c9f7336b,6eb6003c-71cb-4be8-a375-abd5c9f7336b,1,0,ca63ca2f-703d-4317-8c5d-0650ea638f3f,ca63ca2f-703d-4317-8c5d-0650ea638f3f,1,0,aa2256c7-9847-40a5-9e49-11c508e0d45b,aa2256c7-9847-40a5-9e49-11c508e0d45b,1,0,a04493f4-508c-4047-b0e3-b7d4bde6427b,a04493f4-508c-4047-b0e3-b7d4bde6427b,1,0,6c138ffd-057f-4f7d-af4d-1b1a589a9057,6c138ffd-057f-4f7d-af4d-1b1a589a9057,1,0,418982cd-d403-47cf-a7ef-993a36104947,418982cd-d403-47cf-a7ef-993a36104947,1,0,485ebc6a-0e3e-4278-8ef1-c6194d6d5015,485ebc6a-0e3e-4278-8ef1-c6194d6d5015,1,0,816c8143-8b02-4f4a-8eb1-44c7fb36afcc,816c8143-8b02-4f4a-8eb1-44c7fb36afcc,1,0,35eea3b8-d017-442a-b5a0-a1571165b9a9,35eea3b8-d017-442a-b5a0-a1571165b9a9,1,0,7e84901c-cb7f-437c-a135-0902cd47acb6,7e84901c-cb7f-437c-a135-0902cd47acb6,1,0,584637f2-9d4f-4972-bbe8-aba9bf0853bc,584637f2-9d4f-4972-bbe8-aba9bf0853bc,1,0,69530795-5a90-47b0-ae8d-a44b420b51f6,69530795-5a90-47b0-ae8d-a44b420b51f6,1,0,da2b47f5-4109-4f72-a4a5-70be24a6881f,da2b47f5-4109-4f72-a4a5-70be24a6881f,1,0,849f034e-85dc-4515-aae6-240c1e0d46d9,849f034e-85dc-4515-aae6-240c1e0d46d9,1,0,5fbea8c7-48e3-4ed0-a8d0-cf942b37a166,5fbea8c7-48e3-4ed0-a8d0-cf942b37a166,1,0,d7f68340-663c-49f2-b02b-e71501515a60,d7f68340-663c-49f2-b02b-e71501515a60,1,0,d85ba2d1-63e9-4680-bd88-6c0c4dba5d0f,d85ba2d1-63e9-4680-bd88-6c0c4dba5d0f,1,0,acfa1919-07ce-4464-8552-6b104e284dca,acfa1919-07ce-4464-8552-6b104e284dca,1,0,cd74d617-8ebe-4a7d-b011-38c98d856d8c,cd74d617-8ebe-4a7d-b011-38c98d856d8c,1,0,f4cff4ff-68e9-4072-971e-1b359d3aa980,f4cff4ff-68e9-4072-971e-1b359d3aa980,1,0,f9a5bd40-7c56-4ced-bddb-a66c1fc31b81,f9a5bd40-7c56-4ced-bddb-a66c1fc31b81,1,0,fdb012c9-583a-42af-95da-070e75a58078,fdb012c9-583a-42af-95da-070e75a58078,1,0,7d069b11-cddd-463d-97be-3cbeaaf0954c,7d069b11-cddd-463d-97be-3cbeaaf0954c,1,0,8c5fae4c-b5b6-4e05-9453-4ac5de07c54c,8c5fae4c-b5b6-4e05-9453-4ac5de07c54c,1,0,5ea4412e-0ce0-4176-917b-37817ed788e1,5ea4412e-0ce0-4176-917b-37817ed788e1,1,0,8242daae-181a-47df-b28e-c1de3fce0359,8242daae-181a-47df-b28e-c1de3fce0359,1,0,bd206271-1388-4759-8992-da81507613be,bd206271-1388-4759-8992-da81507613be,1,0,8de2c020-0ebe-4374-93d7-d2e19ed82470,8de2c020-0ebe-4374-93d7-d2e19ed82470,1,0,d1b950b0-dd66-49f9-998e-3ae5e820ae7f,d1b950b0-dd66-49f9-998e-3ae5e820ae7f,1,0,57e39881-cbf9-4cac-9ed0-bf4a6ea667ee,57e39881-cbf9-4cac-9ed0-bf4a6ea667ee,1,0,b9004626-915c-44c8-9cb7-25e5b627ee83,b9004626-915c-44c8-9cb7-25e5b627ee83,1,0,c45fcf7f-5676-4a96-a73c-a6d9d98ac46b,c45fcf7f-5676-4a96-a73c-a6d9d98ac46b,1,0,1a3eff9b-6598-4e11-9b8f-81249c53abec,1a3eff9b-6598-4e11-9b8f-81249c53abec,1,0,63c6cfad-124d-491a-829d-b298463c95e6,63c6cfad-124d-491a-829d-b298463c95e6,1,0,3da31d2f-24dd-469b-bd3b-073fa3b3d585,3da31d2f-24dd-469b-bd3b-073fa3b3d585,1,0,33b12dd8-7a86-4a51-bd3d-4911ec1ffde4,33b12dd8-7a86-4a51-bd3d-4911ec1ffde4,1,0,11c610f5-0f5d-49aa-9015-4a514dfcf515,11c610f5-0f5d-49aa-9015-4a514dfcf515,1,0,1e020429-ac68-46f4-b34c-c2c4a2b494f6,1e020429-ac68-46f4-b34c-c2c4a2b494f6,1,0,1c1a5bf8-bbe6-4a69-973e-11445175dac2,1c1a5bf8-bbe6-4a69-973e-11445175dac2,1,0,f11ffcfd-3588-4785-b222-cebe80455303,f11ffcfd-3588-4785-b222-cebe80455303,1,0,789a2027-8601-434c-bf47-37696a3966ad,789a2027-8601-434c-bf47-37696a3966ad,1,0,f71eceb3-ef2e-4e6c-bf9c-e7e7d42c1c7c,f71eceb3-ef2e-4e6c-bf9c-e7e7d42c1c7c,1,0,b91b1b08-f35d-40b2-83d8-ecc761124b05,b91b1b08-f35d-40b2-83d8-ecc761124b05,1,0,5fb7ebb4-e2ce-40ae-aa1c-9351dc66919b,5fb7ebb4-e2ce-40ae-aa1c-9351dc66919b,1,0,1c7e9baa-7728-4afd-829a-806cee13ecdb,1c7e9baa-7728-4afd-829a-806cee13ecdb,1,0,5d216c28-0724-4e7d-86cf-b6f75e7e28b7,5d216c28-0724-4e7d-86cf-b6f75e7e28b7,1,0,bfdc6346-db5b-427f-acca-9b48db8fefd0,bfdc6346-db5b-427f-acca-9b48db8fefd0,1,0,1c3f258c-345e-47f6-9e29-98b1222fb348,1c3f258c-345e-47f6-9e29-98b1222fb348,1,0,dfafcdf3-cdeb-4822-9f41-a730d9d3fb24,dfafcdf3-cdeb-4822-9f41-a730d9d3fb24,1,0,4c3085e1-2f86-4af4-a392-ab45e30a7152,4c3085e1-2f86-4af4-a392-ab45e30a7152,1,0,83bc48a5-4e73-41eb-9554-1bf483435d7d,83bc48a5-4e73-41eb-9554-1bf483435d7d,1,0,4e6989e6-67ac-4c3c-994d-0c3941cc1156,4e6989e6-67ac-4c3c-994d-0c3941cc1156,1,0,35c938f4-065f-47f5-a75b-637ed0080725,35c938f4-065f-47f5-a75b-637ed0080725,1,0,89cc9ae4-e933-4f4a-849f-48ef67b75819,89cc9ae4-e933-4f4a-849f-48ef67b75819,1,0,36e096be-ee28-437a-b8f2-c1e274c150e3,36e096be-ee28-437a-b8f2-c1e274c150e3,1,0,e9d2e69e-e7a5-4bbf-adfc-9fc224952de2,e9d2e69e-e7a5-4bbf-adfc-9fc224952de2,1,0,6e215f9e-4e41-4c11-80de-04023f792ad6,6e215f9e-4e41-4c11-80de-04023f792ad6,1,0,160e9608-7301-4572-af02-6a7cceca1560,160e9608-7301-4572-af02-6a7cceca1560,1,0,4a70416b-6598-4239-be70-2c0c8255388a,4a70416b-6598-4239-be70-2c0c8255388a,1,0,f6b69c2b-e32a-477f-9128-b61d8237290e,f6b69c2b-e32a-477f-9128-b61d8237290e,1,0,f6b8e6ae-7d3e-4f6c-bd74-66ee7593868c,f6b8e6ae-7d3e-4f6c-bd74-66ee7593868c,1,0,1682d528-87bf-48c5-acf9-57ab654a615a,1682d528-87bf-48c5-acf9-57ab654a615a,1,0,e730ea3f-4f2a-4e21-8851-bccc51830cfe,e730ea3f-4f2a-4e21-8851-bccc51830cfe,1,0,193ab4a7-7eee-4374-95cf-2d907a3ba971,193ab4a7-7eee-4374-95cf-2d907a3ba971,1,0,e2779397-46ed-4d95-8529-45896f9567d2,e2779397-46ed-4d95-8529-45896f9567d2,1,0,3002d5d8-1b7d-4252-9e5d-9a533bf03ca8,3002d5d8-1b7d-4252-9e5d-9a533bf03ca8,1,0,e14c0841-226c-4c79-bec9-cfc8d2c3a160,e14c0841-226c-4c79-bec9-cfc8d2c3a160,1,0,d05bbd02-9db3-4830-be9d-7080f3506e01,d05bbd02-9db3-4830-be9d-7080f3506e01,1,0,1ff8210b-26c5-4429-b580-7c6ec7c9b63a,1ff8210b-26c5-4429-b580-7c6ec7c9b63a,1,0,7e3283df-05a6-4dc5-a786-056c71bdbf6f,7e3283df-05a6-4dc5-a786-056c71bdbf6f,1,0,c6af8b0f-3767-4198-88e2-f5763cb0294a,c6af8b0f-3767-4198-88e2-f5763cb0294a,1,0,6f3c5b90-b030-4267-a973-33d12c2c7680,6f3c5b90-b030-4267-a973-33d12c2c7680,1,0,88b879b7-1bb3-4478-b569-35bdb5c56939,88b879b7-1bb3-4478-b569-35bdb5c56939,1,0,b9e93e8f-1d4b-4bbb-ac1b-c8d26cfd1da2,b9e93e8f-1d4b-4bbb-ac1b-c8d26cfd1da2,1,0,7a62d031-c340-4b1e-90af-fff697a2e979,7a62d031-c340-4b1e-90af-fff697a2e979,1,0,faf89779-2290-4d37-b1ea-e81b1b79f74c,faf89779-2290-4d37-b1ea-e81b1b79f74c,1,0,18bf6916-83cc-41e5-a35b-1489450ae632,18bf6916-83cc-41e5-a35b-1489450ae632,1,0,ac847dc9-e222-45cf-af4a-6fa863c919a8,ac847dc9-e222-45cf-af4a-6fa863c919a8,1,0,a5cc5ae2-be80-4957-8aca-9e477433dfcc,a5cc5ae2-be80-4957-8aca-9e477433dfcc,1,0,62fa393c-687c-49bf-8a25-81adc04430fb,62fa393c-687c-49bf-8a25-81adc04430fb,1,0,13fcf1e8-730e-436f-b316-6bcb8301f894,13fcf1e8-730e-436f-b316-6bcb8301f894,1,0,fa548f02-82e0-4897-89e8-0618ebf16919,fa548f02-82e0-4897-89e8-0618ebf16919,1,0,8c28a5b0-517f-48fe-9bde-5e611c319413,8c28a5b0-517f-48fe-9bde-5e611c319413,1,0,904e1209-91d8-49b1-b291-364ef728cbbf,904e1209-91d8-49b1-b291-364ef728cbbf,1,0,4a0d7cd7-8e43-4a1f-88b8-ffc376b38f7c,4a0d7cd7-8e43-4a1f-88b8-ffc376b38f7c,1,0,1198f2ee-b8a8-456d-9461-61bc5d42c7a1,1198f2ee-b8a8-456d-9461-61bc5d42c7a1,1,0,b8ecb7f0-ef40-4d31-9ec2-a731439d3200,b8ecb7f0-ef40-4d31-9ec2-a731439d3200,1,0,e4da2959-0fb0-48fb-a5aa-e7a5589d69c3,e4da2959-0fb0-48fb-a5aa-e7a5589d69c3,1,0,e000d04e-37eb-4d95-a833-b0a9b10ee0b9,e000d04e-37eb-4d95-a833-b0a9b10ee0b9,1,0,23314bcd-2dd4-43f1-9fdb-ae182a48c886,23314bcd-2dd4-43f1-9fdb-ae182a48c886,1,0,c5f86fa3-4a36-4e22-8b57-7088dd250cd3,c5f86fa3-4a36-4e22-8b57-7088dd250cd3,1,0,5b3b3da9-8619-4fbd-b140-3528875cd179,5b3b3da9-8619-4fbd-b140-3528875cd179,1,0,99e5e866-7ac6-4916-ab66-3e2909822c56,99e5e866-7ac6-4916-ab66-3e2909822c56,1,0,03363877-2752-4a03-95f2-d73b732e0bfd,03363877-2752-4a03-95f2-d73b732e0bfd,1,0,0b0d2b7c-d52e-4163-83cf-a7e86bb47c47,0b0d2b7c-d52e-4163-83cf-a7e86bb47c47,1,0,78051e10-74ab-44be-adca-e4c93824a386,78051e10-74ab-44be-adca-e4c93824a386,1,0,73629419-83d8-4727-88a9-76c851d104c9,73629419-83d8-4727-88a9-76c851d104c9,1,0,cadb54f0-dcff-4f96-983e-a309fd72f330,cadb54f0-dcff-4f96-983e-a309fd72f330,1,0,a9c3065b-db68-4f59-9235-33f9fbfdaafd,a9c3065b-db68-4f59-9235-33f9fbfdaafd,1,0,3715cf3d-0abc-4711-8ac9-d41f0be7878f,3715cf3d-0abc-4711-8ac9-d41f0be7878f,1,0,8e8d8078-8b32-4c24-b26e-89a92bf60160,8e8d8078-8b32-4c24-b26e-89a92bf60160,1,0,e6af9db4-b93f-422e-846c-e6c5fd33f992,e6af9db4-b93f-422e-846c-e6c5fd33f992,1,0,2895ac1f-5f15-422d-9d90-2df87255a92a,2895ac1f-5f15-422d-9d90-2df87255a92a,1,0,f96cbb27-7619-41e0-8577-e623ef02dc58,f96cbb27-7619-41e0-8577-e623ef02dc58,1,0,ed5ff5b0-f980-4b9a-9299-eef68e3b42d5,ed5ff5b0-f980-4b9a-9299-eef68e3b42d5,1,0,d74dfd31-2016-435b-8652-15fdbca59490,d74dfd31-2016-435b-8652-15fdbca59490,1,0,ba8111a9-1d33-4615-ad0b-b3e923b2f3bd,ba8111a9-1d33-4615-ad0b-b3e923b2f3bd,1,0,27651e0e-d560-434b-a49c-f473a5b20c4d,27651e0e-d560-434b-a49c-f473a5b20c4d,1,0,dab1491b-0685-442d-b945-2bfde3f37933,dab1491b-0685-442d-b945-2bfde3f37933,1,0,42107b14-9373-418a-a41d-35c87434c51a,42107b14-9373-418a-a41d-35c87434c51a,1,0,24d8ce8d-e94c-4168-abad-d0ce5e6cbf1b,24d8ce8d-e94c-4168-abad-d0ce5e6cbf1b,1,0,8786575a-eab6-46bf-be3a-167e2d5b41dd,8786575a-eab6-46bf-be3a-167e2d5b41dd,1,0,ce85554b-81ba-4149-a951-d09bdc14fa16,ce85554b-81ba-4149-a951-d09bdc14fa16,1,0,23a1ef35-1469-44ea-8535-fa9c7f535cae,23a1ef35-1469-44ea-8535-fa9c7f535cae,1,0,9ff1c73e-71be-4ea6-97fb-e710d995ee62,9ff1c73e-71be-4ea6-97fb-e710d995ee62,1,0,50f7effb-e051-49dd-8b56-0771dda350cc,50f7effb-e051-49dd-8b56-0771dda350cc,1,0,8c7d74bf-2865-47d9-8a16-5b0db1104a3a,8c7d74bf-2865-47d9-8a16-5b0db1104a3a,1,0,2558d812-ac0a-49ba-87db-3f661209a3c4,2558d812-ac0a-49ba-87db-3f661209a3c4,1,0,20d712ef-77c1-4374-92e1-f20a3ebc7eab,20d712ef-77c1-4374-92e1-f20a3ebc7eab,1,0,65d23ce8-e326-45ee-86b0-6dcf35797201,65d23ce8-e326-45ee-86b0-6dcf35797201,1,0,a2683c3f-1b21-47d8-951d-7d30cde51efc,a2683c3f-1b21-47d8-951d-7d30cde51efc,1,0,54c77053-1728-4914-a354-73fe8853a0e1,54c77053-1728-4914-a354-73fe8853a0e1,1,0,21136691-078f-4bf7-bddd-f41416a76d86,21136691-078f-4bf7-bddd-f41416a76d86,1,0,9d669d30-a0af-4095-852a-96b4224ee933,9d669d30-a0af-4095-852a-96b4224ee933,1,0,590aba18-7d56-48e3-9454-5f2882a32f80,590aba18-7d56-48e3-9454-5f2882a32f80,1,0,30a121c7-c4f5-45c4-9504-9778ed85d9e3,30a121c7-c4f5-45c4-9504-9778ed85d9e3,1,0,c68e2157-2541-4f80-966a-d68ce603f131,c68e2157-2541-4f80-966a-d68ce603f131,1,0,18363a37-28b0-488b-a7d6-54d3596d2a6d,18363a37-28b0-488b-a7d6-54d3596d2a6d,1,0,e5f401b5-4672-4529-a8dd-6d819f3f269c,e5f401b5-4672-4529-a8dd-6d819f3f269c,1,0,126d5d78-a2b0-4c16-b429-bf8d251280e7,126d5d78-a2b0-4c16-b429-bf8d251280e7,1,0,f8f96dce-913c-4858-bcb7-dcfe3dc2f72e,f8f96dce-913c-4858-bcb7-dcfe3dc2f72e,1,0,c96b58a2-db6e-4a0f-82fd-fc115a169b18,c96b58a2-db6e-4a0f-82fd-fc115a169b18,1,0,70d93c88-c9e9-4b8e-b8f3-ef07c665ab5d,70d93c88-c9e9-4b8e-b8f3-ef07c665ab5d,1,0,12443114-1931-4eb7-968a-7dbe166b7298,12443114-1931-4eb7-968a-7dbe166b7298,1,0,0080c29d-ec54-43a8-aab8-c67e0279b6b7,0080c29d-ec54-43a8-aab8-c67e0279b6b7,1,0,a0271f6e-dc70-4dfe-a395-203e8a89f933,a0271f6e-dc70-4dfe-a395-203e8a89f933,1,0,e5dfee58-f748-48ee-81a3-7c6133f06365,e5dfee58-f748-48ee-81a3-7c6133f06365,1,0,5e52dfe6-5a98-4a32-9429-5f44bf442367,5e52dfe6-5a98-4a32-9429-5f44bf442367,1,0,9518b3f5-b478-4a82-b884-d2d0947197a6,9518b3f5-b478-4a82-b884-d2d0947197a6,1,0,c1f36917-64aa-4de0-8a30-53bb011f151e,c1f36917-64aa-4de0-8a30-53bb011f151e,1,0,9aa0a0cb-9547-4868-9495-b00f3ecd2b3a,9aa0a0cb-9547-4868-9495-b00f3ecd2b3a,1,0,a9e31d90-fe65-47c3-8109-6e1eae862f53,a9e31d90-fe65-47c3-8109-6e1eae862f53,1,0,68500931-89e0-491e-aba8-b013c9e6f8c3,68500931-89e0-491e-aba8-b013c9e6f8c3,1,0,70b79e56-bb71-4f38-93cf-94dda79d9b4c,70b79e56-bb71-4f38-93cf-94dda79d9b4c,1,0,e678bb94-3cb1-4706-8e76-4fada4d5036c,e678bb94-3cb1-4706-8e76-4fada4d5036c,1,0,5c4c9931-3fb0-47a8-9e4f-d552de12b355,5c4c9931-3fb0-47a8-9e4f-d552de12b355,1,0,dc1d0f97-e2f3-4e1d-b21c-411b46e39848,dc1d0f97-e2f3-4e1d-b21c-411b46e39848,1,0,2a498baf-ec2e-4dda-b568-801bb60db225,2a498baf-ec2e-4dda-b568-801bb60db225,1,0,8a32af97-cdb5-46b4-ab7b-e1509e26ecc3,8a32af97-cdb5-46b4-ab7b-e1509e26ecc3,1,0,9f59f8cd-8d61-4fbc-ae6e-32f28ce0035a,9f59f8cd-8d61-4fbc-ae6e-32f28ce0035a,1,0,f987ca28-545b-4540-9e36-b0daa67dc3cb,f987ca28-545b-4540-9e36-b0daa67dc3cb,1,0,70f156d8-9cb4-442d-a36b-7a43d03bcd12,70f156d8-9cb4-442d-a36b-7a43d03bcd12,1,0,35989876-16b1-4b02-9381-444a06a7a21d,35989876-16b1-4b02-9381-444a06a7a21d,1,0,f7608000-1e8a-4ca4-afb7-e04ef547b70a,f7608000-1e8a-4ca4-afb7-e04ef547b70a,1,0,f0a6de82-45ab-4153-bccf-df82fc960aa1,f0a6de82-45ab-4153-bccf-df82fc960aa1,1,0,26cea519-19d0-4707-be0a-1a43fde6e563,26cea519-19d0-4707-be0a-1a43fde6e563,1,0,9fb3e902-3154-4bab-9bfe-9a266dc49fa5,9fb3e902-3154-4bab-9bfe-9a266dc49fa5,1,0,7ea3206a-2a16-460d-ad6d-849103f50bdb,7ea3206a-2a16-460d-ad6d-849103f50bdb,1,0,eb35bff2-8467-48fe-bf93-ece2aa40f506,eb35bff2-8467-48fe-bf93-ece2aa40f506,1,0,f26bdf61-8dc9-47e3-bc13-e6b7d8252ebd,f26bdf61-8dc9-47e3-bc13-e6b7d8252ebd,1,0,10302ca9-850c-4561-a774-d099c20b1919,10302ca9-850c-4561-a774-d099c20b1919,1,0,c62c30d6-ffac-43e0-bb20-25fa8eeb62fd,c62c30d6-ffac-43e0-bb20-25fa8eeb62fd,1,0,d693bfcf-e117-445b-b0e1-d895bc5227c4,d693bfcf-e117-445b-b0e1-d895bc5227c4,1,0,68cf55da-b29e-4a65-815b-c9cdc8e5888e,68cf55da-b29e-4a65-815b-c9cdc8e5888e,1,0,967bf537-f742-4d9a-95ff-afaa5525a2f0,967bf537-f742-4d9a-95ff-afaa5525a2f0,1,0,a9f927ef-22a2-4d77-8648-4bb25eeaccf2,a9f927ef-22a2-4d77-8648-4bb25eeaccf2,1,0,1041ed81-c1f7-43b2-9087-914865a3076e,1041ed81-c1f7-43b2-9087-914865a3076e,1,0,5d7174d2-42b3-4e12-b705-4209dd73b53b,5d7174d2-42b3-4e12-b705-4209dd73b53b,1,0,b1b5bf08-1c57-4875-87bb-ad1fa1a3251f,b1b5bf08-1c57-4875-87bb-ad1fa1a3251f,1,0,e00dcab4-5e92-44e3-bcdf-a31dd32a195f,e00dcab4-5e92-44e3-bcdf-a31dd32a195f,1,0,0508e7ab-3dd9-42b4-9542-089ce0656bbb,0508e7ab-3dd9-42b4-9542-089ce0656bbb,1,0,cfe59dfd-a509-4f83-b926-b3ff94234a43,cfe59dfd-a509-4f83-b926-b3ff94234a43,1,0,17df1591-61b0-4204-8379-8d1f58445968,17df1591-61b0-4204-8379-8d1f58445968,1,0,9020fa9d-e7de-4574-ab65-db6651b5b610,9020fa9d-e7de-4574-ab65-db6651b5b610,1,0,fd5e72f7-3078-48eb-b01b-1800ffbd86d3,fd5e72f7-3078-48eb-b01b-1800ffbd86d3,1,0,e83ad33d-27df-4181-afd2-b7f416e6e705,e83ad33d-27df-4181-afd2-b7f416e6e705,1,0,ddeec7f4-8bd3-40af-bcac-00d18c0e6d6a,ddeec7f4-8bd3-40af-bcac-00d18c0e6d6a,1,0,f0438b0a-7916-4de4-a3a8-d43407c3295f,f0438b0a-7916-4de4-a3a8-d43407c3295f,1,0,3309648c-aae6-4684-ae8d-7ed636bc3468,3309648c-aae6-4684-ae8d-7ed636bc3468,1,0,f9aa933e-6684-48de-b802-96c8e61b1fe6,f9aa933e-6684-48de-b802-96c8e61b1fe6,1,0,2e3cdbed-3f52-4f6e-883e-9e7d30c67099,2e3cdbed-3f52-4f6e-883e-9e7d30c67099,1,0,f41e5a5b-394b-423a-bee5-ed4d1da0be71,f41e5a5b-394b-423a-bee5-ed4d1da0be71,1,0,23db175f-ddfb-4af7-9c0c-232b6adb7daf,23db175f-ddfb-4af7-9c0c-232b6adb7daf,1,0,9de4d430-95ec-4435-b3e8-4fc85778d517,9de4d430-95ec-4435-b3e8-4fc85778d517,1,0,205b8908-fa21-42bd-bff0-fb95e6787f15,205b8908-fa21-42bd-bff0-fb95e6787f15,1,0,4e309f26-35e8-49d9-bbd1-c7884e666dca,4e309f26-35e8-49d9-bbd1-c7884e666dca,1,0,84f05fe4-51d3-49a8-83e7-1cae2028147e,84f05fe4-51d3-49a8-83e7-1cae2028147e,1,0,8a9ab11b-5bb5-4da9-9053-8f9e8198d019,8a9ab11b-5bb5-4da9-9053-8f9e8198d019,1,0,5320abf1-b09b-4de0-9adf-4cb1da31df6f,5320abf1-b09b-4de0-9adf-4cb1da31df6f,1,0,c382ee3a-d0a8-4ed8-ac88-5558b631f448,c382ee3a-d0a8-4ed8-ac88-5558b631f448,1,0,3916ddbd-9023-42a4-849e-9cda6e591408,3916ddbd-9023-42a4-849e-9cda6e591408,1,0,5e9e42c5-dcbc-422f-acce-4f11a63dbb85,5e9e42c5-dcbc-422f-acce-4f11a63dbb85,1,0,6903ffe4-42c1-4708-a1b0-bb67cd3f9e4c,6903ffe4-42c1-4708-a1b0-bb67cd3f9e4c,1,0,3e453cca-aac3-4ff3-bb15-32c09f43e7b2,3e453cca-aac3-4ff3-bb15-32c09f43e7b2,1,0,49bcd9e6-f312-4bb6-959a-242b73907591,49bcd9e6-f312-4bb6-959a-242b73907591,1,0,8e36227c-c0aa-43c4-93ad-e78701248fb1,8e36227c-c0aa-43c4-93ad-e78701248fb1,1,0,f135b60e-6d28-4ba1-acd7-76090f14855d,f135b60e-6d28-4ba1-acd7-76090f14855d,1,0,5b105084-c4ba-4ff6-9196-8b3e3a9991e2,5b105084-c4ba-4ff6-9196-8b3e3a9991e2,1,0,f78ffd16-5bd4-421a-99af-9cf5f126d960,f78ffd16-5bd4-421a-99af-9cf5f126d960,1,0,2bd23dd2-8107-410f-8137-3d022546594b,2bd23dd2-8107-410f-8137-3d022546594b,1,0,e8cc4e0f-e9c2-4a24-a50e-f5be5ed21019,e8cc4e0f-e9c2-4a24-a50e-f5be5ed21019,1,0,3f09badb-70bd-4996-822f-2e2e9524f09d,3f09badb-70bd-4996-822f-2e2e9524f09d,1,0,aca89232-c531-47ca-a82e-e7bfadd56674,aca89232-c531-47ca-a82e-e7bfadd56674,1,0,4b8927df-e124-4bf6-9d70-6e91b4796d90,4b8927df-e124-4bf6-9d70-6e91b4796d90,1,0,871b63a2-c7a6-4343-8d8b-7dda1b0def87,871b63a2-c7a6-4343-8d8b-7dda1b0def87,1,0,52b45b3d-b01b-4aac-8a1e-e256957c39c3,52b45b3d-b01b-4aac-8a1e-e256957c39c3,1,0,fc78d8df-ab27-4544-a65c-73908b9c5425,fc78d8df-ab27-4544-a65c-73908b9c5425,1,0,87251f18-17da-497a-9b39-f84a388c855c,87251f18-17da-497a-9b39-f84a388c855c,1,0,f8a090d2-b2d1-4ead-a8bf-6325a7552743,f8a090d2-b2d1-4ead-a8bf-6325a7552743,1,0,84f935da-9fe5-44ea-845b-b447b8b0a6f5,84f935da-9fe5-44ea-845b-b447b8b0a6f5,1,0,a4878c33-f156-44cc-b114-5670403075eb,a4878c33-f156-44cc-b114-5670403075eb,1,0,cc567ef8-3e63-4c53-a14a-899221ec9e46,cc567ef8-3e63-4c53-a14a-899221ec9e46,1,0,0f1f8bc8-73ce-4384-9496-9bc2d0e212be,0f1f8bc8-73ce-4384-9496-9bc2d0e212be,1,0,695ad525-d1ba-42fb-adc1-6c44ac433c69,695ad525-d1ba-42fb-adc1-6c44ac433c69,1,0,93afedb2-2d93-4611-b0fd-830bf33789c2,93afedb2-2d93-4611-b0fd-830bf33789c2,1,0,026dadd4-a698-4d56-9b72-7ad9f224e502,026dadd4-a698-4d56-9b72-7ad9f224e502,1,0,d0b49fd9-4054-409f-97a0-a0811ba6c1ab,d0b49fd9-4054-409f-97a0-a0811ba6c1ab,1,0,c7130560-3953-496f-b1d0-cae676fcb5a9,c7130560-3953-496f-b1d0-cae676fcb5a9,1,0,b7d5c226-a787-45e5-b46b-c51b145fcf6a,b7d5c226-a787-45e5-b46b-c51b145fcf6a,1,0,8ca63a1d-4593-4f52-8b5e-4feb9f8487ca,8ca63a1d-4593-4f52-8b5e-4feb9f8487ca,1,0,1e4cc0d6-6e5e-4d16-ba44-060912ec292f,1e4cc0d6-6e5e-4d16-ba44-060912ec292f,1,0,e9311a22-56b5-4607-8eaa-52382ed040c3,e9311a22-56b5-4607-8eaa-52382ed040c3,1,0,dc7b8596-b2c0-415f-95d9-c0aaa96c5675,dc7b8596-b2c0-415f-95d9-c0aaa96c5675,1,0,87e6e315-01e0-41eb-8373-0a60635f2f7a,87e6e315-01e0-41eb-8373-0a60635f2f7a,1,0,0c2f6d9b-2060-4575-86cd-683ebb4bb059,0c2f6d9b-2060-4575-86cd-683ebb4bb059,1,0,84282afa-21f5-40db-9386-e6f741c9a06c,84282afa-21f5-40db-9386-e6f741c9a06c,1,0,9440a132-366f-4fc9-bd72-2544ba2b072a,9440a132-366f-4fc9-bd72-2544ba2b072a,1,0,6f8a9249-457b-47ac-9160-7c566b8d00d5,6f8a9249-457b-47ac-9160-7c566b8d00d5,1,0,2ddd57c1-ab9b-4293-b956-1eb1f7a7a0fc,2ddd57c1-ab9b-4293-b956-1eb1f7a7a0fc,1,0,5bdd3b52-aa26-4610-beb9-3673254ba589,5bdd3b52-aa26-4610-beb9-3673254ba589,1,0,ebe7341e-50ab-4a2a-8299-b01ab00c8300,ebe7341e-50ab-4a2a-8299-b01ab00c8300,1,0,08a97633-888e-4d37-ba24-684070eeea43,08a97633-888e-4d37-ba24-684070eeea43,1,0,73126993-73e6-4734-9e72-287b672f40ad,73126993-73e6-4734-9e72-287b672f40ad,1,0,0b868a9d-984f-483a-9739-c1a73c05602f,0b868a9d-984f-483a-9739-c1a73c05602f,1,0,ec2ec52e-f9e9-4392-8ffb-e89626f2361d,ec2ec52e-f9e9-4392-8ffb-e89626f2361d,1,0,a4de8867-22bf-4fe2-8167-82bd3a56cd57,a4de8867-22bf-4fe2-8167-82bd3a56cd57,1,0,9b77e99b-b1d3-4368-a671-59e0ebba3f0e,9b77e99b-b1d3-4368-a671-59e0ebba3f0e,1,0,ad847998-6e50-4160-81fc-3b58ad68f202,ad847998-6e50-4160-81fc-3b58ad68f202,1,0,b2b98bcf-41da-4643-a6dc-39e5379b99e5,b2b98bcf-41da-4643-a6dc-39e5379b99e5,1,0,fdd9fb90-f5f0-4c08-9341-4374403bc950,fdd9fb90-f5f0-4c08-9341-4374403bc950,1,0,0e2d814a-cc9d-4f91-910d-bda54779e298,0e2d814a-cc9d-4f91-910d-bda54779e298,1,0,8fdfef8d-502e-4d27-a539-e833048fa1eb,8fdfef8d-502e-4d27-a539-e833048fa1eb,1,0,65530aca-7cf2-4a52-b5be-5dcbc15a049e,65530aca-7cf2-4a52-b5be-5dcbc15a049e,1,0,15eb2c2d-305d-42c0-9aec-936b82114bdb,15eb2c2d-305d-42c0-9aec-936b82114bdb,1,0,bb99bc44-f83e-48bb-93fd-7b07ca7da6a7,bb99bc44-f83e-48bb-93fd-7b07ca7da6a7,1,0,7718bd0b-7b8a-4ffc-b228-f05683b5531a,7718bd0b-7b8a-4ffc-b228-f05683b5531a,1,0,0b303d25-e141-431f-828c-1778d3c247f6,0b303d25-e141-431f-828c-1778d3c247f6,1,0,881f53bc-a52e-4312-b09d-3d3f53ddf84b,881f53bc-a52e-4312-b09d-3d3f53ddf84b,1,0,8e247254-f454-4436-9b5b-a8dbb8223cc7,8e247254-f454-4436-9b5b-a8dbb8223cc7,1,0,2e36a7b3-5331-4fab-a0a3-31b42a8387fe,2e36a7b3-5331-4fab-a0a3-31b42a8387fe,1,0,945ae8d2-b74a-41e9-b740-c82acdd40d04,945ae8d2-b74a-41e9-b740-c82acdd40d04,1,0,976533bf-f162-42a1-a47e-6d681ee67b82,976533bf-f162-42a1-a47e-6d681ee67b82,1,0,19bc0dd8-9e6b-4855-bc42-b4e98443163f,19bc0dd8-9e6b-4855-bc42-b4e98443163f,1,0,a61e10af-eaba-4e7a-a641-65d77453a559,a61e10af-eaba-4e7a-a641-65d77453a559,1,0,e1a375da-c16c-4616-8a33-9414c13a48c7,e1a375da-c16c-4616-8a33-9414c13a48c7,1,0,99993a9b-97e9-4606-94fa-2da43a03c3b2,99993a9b-97e9-4606-94fa-2da43a03c3b2,1,0,edf81bbb-905a-474d-959a-db5629a8e104,edf81bbb-905a-474d-959a-db5629a8e104,1,0,4c8eb34e-0bb6-487a-a2ae-24083b1f6d2e,4c8eb34e-0bb6-487a-a2ae-24083b1f6d2e,1,0,b20780cd-53d9-48bb-ac3f-2aa4eb6ab3c5,b20780cd-53d9-48bb-ac3f-2aa4eb6ab3c5,1,0,e9e242b7-0077-4c47-8f45-df50e7cc90cf,e9e242b7-0077-4c47-8f45-df50e7cc90cf,1,0,820383e1-9b95-4c0f-8464-722f1fe64ad5,820383e1-9b95-4c0f-8464-722f1fe64ad5,1,0,3d6cf2ab-29b2-45af-a6e2-8796284acf2d,3d6cf2ab-29b2-45af-a6e2-8796284acf2d,1,0,292bfe6b-703e-40cb-856d-abb470e6709f,292bfe6b-703e-40cb-856d-abb470e6709f,1,0,276c42ca-f5e0-4bb4-9b89-a925def35cb1,276c42ca-f5e0-4bb4-9b89-a925def35cb1,1,0,ddac9d84-61b8-49e7-b468-e4aef4403d64,ddac9d84-61b8-49e7-b468-e4aef4403d64,1,0,ae2eec04-8327-4c51-89d3-eb6b725d6e8b,ae2eec04-8327-4c51-89d3-eb6b725d6e8b,1,0,350b262d-2b1f-43de-9994-6abfd2e4e761,350b262d-2b1f-43de-9994-6abfd2e4e761,1,0,41a9cabc-5667-4ca0-a798-ba0b22bd1aa0,41a9cabc-5667-4ca0-a798-ba0b22bd1aa0,1,0,1bf44c42-87c0-4f2e-846c-b04d0b7e8d7d,1bf44c42-87c0-4f2e-846c-b04d0b7e8d7d,1,0,8811ea1a-1221-47b7-9574-3f36ff15a3cf,8811ea1a-1221-47b7-9574-3f36ff15a3cf,1,0,740a6d15-23e8-43a0-af3c-71a544f8fa4f,740a6d15-23e8-43a0-af3c-71a544f8fa4f,1,0,66b0ee64-b25a-4555-9bc2-88c3cba9f998,66b0ee64-b25a-4555-9bc2-88c3cba9f998,1,0,e461818e-5d2f-49ec-8219-3a765461274a,e461818e-5d2f-49ec-8219-3a765461274a,1,0,1d715463-691b-4c01-ae39-57c261f2a6ad,1d715463-691b-4c01-ae39-57c261f2a6ad,1,0,4c3d007f-a62c-4fd9-beda-58dbf08ad188,4c3d007f-a62c-4fd9-beda-58dbf08ad188,1,0,16080b3d-b385-4e44-af16-d1a357a2b842,16080b3d-b385-4e44-af16-d1a357a2b842,1,0,8de85e8b-6828-44a3-8481-4ff4c8c2b9e2,8de85e8b-6828-44a3-8481-4ff4c8c2b9e2,1,0,c35373a9-f0b0-4ddb-a985-409ac9c64609,c35373a9-f0b0-4ddb-a985-409ac9c64609,1,0,c5b4d6e4-4c99-46cb-98cf-9a0024215a12,c5b4d6e4-4c99-46cb-98cf-9a0024215a12,1,0,c1c40916-fee5-46e3-90fc-10e7595866c9,c1c40916-fee5-46e3-90fc-10e7595866c9,1,0,090e521e-391a-4ce7-9f7c-1c459fd221eb,090e521e-391a-4ce7-9f7c-1c459fd221eb,1,0,87dad256-122b-4d7e-b249-a2c313a9cf33,87dad256-122b-4d7e-b249-a2c313a9cf33,1,0,e7903c89-5282-4771-8f9b-536694b7816e,e7903c89-5282-4771-8f9b-536694b7816e,1,0,57a030fb-ed57-4ffc-a462-c7bbd2435c3d,57a030fb-ed57-4ffc-a462-c7bbd2435c3d,1,0,f20a04a7-84fa-48e3-8ac5-28176c1fcada,f20a04a7-84fa-48e3-8ac5-28176c1fcada,1,0,b722d6e1-fd6f-4bb4-923d-01764393722d,b722d6e1-fd6f-4bb4-923d-01764393722d,1,0,ac5f945e-2d03-44fb-a8cf-5d786194cefd,ac5f945e-2d03-44fb-a8cf-5d786194cefd,1,0,698ec00f-bf75-420e-81ab-a98808daf3f7,698ec00f-bf75-420e-81ab-a98808daf3f7,1,0,f441907c-d02e-431e-baf4-1854e48a1f50,f441907c-d02e-431e-baf4-1854e48a1f50,1,0,4ad722ca-10fc-4a83-91c9-ef0012685f89,4ad722ca-10fc-4a83-91c9-ef0012685f89,1,0,783dd4ba-a597-45ba-8989-2ed5224d62bc,783dd4ba-a597-45ba-8989-2ed5224d62bc,1,0,3b033d29-0de7-49dd-90bc-f414b28426d7,3b033d29-0de7-49dd-90bc-f414b28426d7,1,0,97aaede5-d32f-4eba-b0e0-5ae5f094a8b7,97aaede5-d32f-4eba-b0e0-5ae5f094a8b7,1,0,dad9710a-73ca-4e0d-b98b-75f955d0822d,dad9710a-73ca-4e0d-b98b-75f955d0822d,1,0,d01beeab-7c42-4d5e-a2f6-f190b9f703a5,d01beeab-7c42-4d5e-a2f6-f190b9f703a5,1,0,72c78946-146e-44a2-a547-abf5229e3815,72c78946-146e-44a2-a547-abf5229e3815,1,0,2191939f-6f71-47c9-a3d2-57acbf7f411e,2191939f-6f71-47c9-a3d2-57acbf7f411e,1,0,2ab4f8a1-8c1d-4ae2-93c0-a3556775e0ac,2ab4f8a1-8c1d-4ae2-93c0-a3556775e0ac,1,0,d9020b76-af47-4f08-ad32-8515fa4bda00,d9020b76-af47-4f08-ad32-8515fa4bda00,1,0,4c2562a8-58df-4598-89d7-aaa2b88fdc64,4c2562a8-58df-4598-89d7-aaa2b88fdc64,1,0,0b27acf5-e68b-4a40-990e-aa983f2c2e84,0b27acf5-e68b-4a40-990e-aa983f2c2e84,1,0,8af8b894-8518-45ba-871f-547137c07713,8af8b894-8518-45ba-871f-547137c07713,1,0,6ddd9c1f-daff-494c-bd6f-741bd40881ab,6ddd9c1f-daff-494c-bd6f-741bd40881ab,1,0,683c1238-5828-4ab9-a89e-7a3b31fc7fa5,683c1238-5828-4ab9-a89e-7a3b31fc7fa5,1,0,bea3998a-d1d3-45ed-bebb-412b8a777005,bea3998a-d1d3-45ed-bebb-412b8a777005,1,0,7e9c0fa3-128e-4c3f-a1f7-63cb88a1c0b1,7e9c0fa3-128e-4c3f-a1f7-63cb88a1c0b1,1,0,2ca8bca9-813a-4833-8ef0-a5e83f91c10f,2ca8bca9-813a-4833-8ef0-a5e83f91c10f,1,0,59b34b58-6ac9-467e-963b-0cccbf098797,59b34b58-6ac9-467e-963b-0cccbf098797,1,0,313d9858-3995-4a4c-b2b0-15d2350417b4,313d9858-3995-4a4c-b2b0-15d2350417b4,1,0,75e77f99-b9d1-4bc0-93aa-c77a93d760d3,75e77f99-b9d1-4bc0-93aa-c77a93d760d3,1,0,a2c36563-126d-4c3a-9714-5b7a4903073b,a2c36563-126d-4c3a-9714-5b7a4903073b,1,0,2e4da82c-dddb-4462-b34f-6511cd2a8356,2e4da82c-dddb-4462-b34f-6511cd2a8356,1,0,c7da3115-3cee-4282-a2f2-4e0b5558e4fc,c7da3115-3cee-4282-a2f2-4e0b5558e4fc,1,0,2976c29f-f482-463d-8f6e-6a632fb50893,2976c29f-f482-463d-8f6e-6a632fb50893,1,0,701964a1-7762-45ee-a9a4-41dd9ce94783,701964a1-7762-45ee-a9a4-41dd9ce94783,1,0,55d1909e-f552-441f-8e14-47d2e604cf6a,55d1909e-f552-441f-8e14-47d2e604cf6a,1,0,eae627db-c52b-4e41-94d1-58db28cd0063,eae627db-c52b-4e41-94d1-58db28cd0063,1,0,514e95b8-2fdd-46f7-89bf-7d1a3d9d6e1b,514e95b8-2fdd-46f7-89bf-7d1a3d9d6e1b,1,0,6ca91336-5ccd-4d0b-9602-53f4925c492d,6ca91336-5ccd-4d0b-9602-53f4925c492d,1,0,d853dd5f-d987-4cdb-82b5-5e40a5a5e449,d853dd5f-d987-4cdb-82b5-5e40a5a5e449,1,0,dc16c546-eecc-49fe-a401-e2e3987faa1f,dc16c546-eecc-49fe-a401-e2e3987faa1f,1,0,47058e36-a281-43a5-a41d-691b3ef32b5b,47058e36-a281-43a5-a41d-691b3ef32b5b,1,0,4fc5c023-91e2-4b3e-8f61-4dfe3be78f3a,4fc5c023-91e2-4b3e-8f61-4dfe3be78f3a,1,0,646def82-bc88-4187-8be0-93938656a20f,646def82-bc88-4187-8be0-93938656a20f,1,0,e620e93c-4382-478f-a700-ad2faa67362b,e620e93c-4382-478f-a700-ad2faa67362b,1,0,a07971f5-ed6d-4829-a6bb-4b17cd5c6f6c,a07971f5-ed6d-4829-a6bb-4b17cd5c6f6c,1,0,9c4e28e8-7257-42ed-9fd8-793a0b8eb945,9c4e28e8-7257-42ed-9fd8-793a0b8eb945,1,0,9b7b6d0e-68d6-4a73-837c-2a6fd456b236,9b7b6d0e-68d6-4a73-837c-2a6fd456b236,1,0,7f6222c1-1a50-4565-b66b-bcb430674efc,7f6222c1-1a50-4565-b66b-bcb430674efc,1,0,a4a8693b-dc91-4762-92e6-35360c8768db,a4a8693b-dc91-4762-92e6-35360c8768db,1,0,2ae236ec-28a7-44e0-a0ba-be62fe52d817,2ae236ec-28a7-44e0-a0ba-be62fe52d817,1,0,2fb5650f-a5e5-4db8-a6a7-ca1101b41d3e,2fb5650f-a5e5-4db8-a6a7-ca1101b41d3e,1,0,b0fca543-6951-4233-bdf6-58082b22252a,b0fca543-6951-4233-bdf6-58082b22252a,1,0,4929cf90-54c6-412c-b2fa-dc8230fb8f85,4929cf90-54c6-412c-b2fa-dc8230fb8f85,1,0,52ae6431-afb3-4dea-b106-00e11b174ec7,52ae6431-afb3-4dea-b106-00e11b174ec7,1,0,b18bdc5f-a2b6-4b15-81c3-37b27a5a3176,b18bdc5f-a2b6-4b15-81c3-37b27a5a3176,1,0,c996916d-7f1c-4fbf-939f-3e1bafe81f7d,c996916d-7f1c-4fbf-939f-3e1bafe81f7d,1,0,528d96cc-8838-49ea-8d76-ea56747882e0,528d96cc-8838-49ea-8d76-ea56747882e0,1,0,b9166ea0-cce8-4f76-a9cb-a3d6eb4dfb95,b9166ea0-cce8-4f76-a9cb-a3d6eb4dfb95,1,0,8b83324c-e10e-49d1-99d7-5bc468c25975,8b83324c-e10e-49d1-99d7-5bc468c25975,1,0,ddb75923-27bf-4996-b024-4bc6eb0f59a7,ddb75923-27bf-4996-b024-4bc6eb0f59a7,1,0,fcb46a8a-3461-4ec2-9aa0-685aedb9dd50,fcb46a8a-3461-4ec2-9aa0-685aedb9dd50,1,0,ed137e05-1996-411d-9927-45a3d7e3ee3b,ed137e05-1996-411d-9927-45a3d7e3ee3b,1,0,bdde9030-5718-4f5e-a9e2-f641f4ce69f9,bdde9030-5718-4f5e-a9e2-f641f4ce69f9,1,0,fbebf341-9842-41e1-8e4d-490fa02065ce,fbebf341-9842-41e1-8e4d-490fa02065ce,1,0,3be0acc7-223a-46ec-9ea2-ec99b869fa78,3be0acc7-223a-46ec-9ea2-ec99b869fa78,1,0,067f88f6-ccd2-491e-a466-94345a1f220f,067f88f6-ccd2-491e-a466-94345a1f220f,1,0,517ac144-ecb9-4d14-83ea-01e58f0901fc,517ac144-ecb9-4d14-83ea-01e58f0901fc,1,0,b8cccd45-f98a-4b25-a8b4-be2c1b7ec1da,b8cccd45-f98a-4b25-a8b4-be2c1b7ec1da,1,0,61c1ff46-2a30-43bb-b1df-4db2271b1b12,61c1ff46-2a30-43bb-b1df-4db2271b1b12,1,0,b74a5f88-9e1d-437a-9943-92ac4d7107de,b74a5f88-9e1d-437a-9943-92ac4d7107de,1,0,cf7bc2ca-fb57-4b1a-98cf-f2caa7e611f5,cf7bc2ca-fb57-4b1a-98cf-f2caa7e611f5,1,0,486083d8-33b1-453f-9f05-5ff867e2f4ba,486083d8-33b1-453f-9f05-5ff867e2f4ba,1,0,e5687b69-4d9a-4d21-a506-294941f18056,e5687b69-4d9a-4d21-a506-294941f18056,1,0,e4f9d9f6-38d7-4056-a95a-987ad2da2211,e4f9d9f6-38d7-4056-a95a-987ad2da2211,1,0,22c21c2b-4297-43b2-88f0-9555d22f7a14,22c21c2b-4297-43b2-88f0-9555d22f7a14,1,0,734f61c4-5429-4a09-8697-8949ac5e6bd1,734f61c4-5429-4a09-8697-8949ac5e6bd1,1,0,d04e0e2d-0a5f-4866-b0b3-b582915db899,d04e0e2d-0a5f-4866-b0b3-b582915db899,1,0,19649d3f-52aa-4054-bb84-a6a11d212495,19649d3f-52aa-4054-bb84-a6a11d212495,1,0,640d7486-8abd-40aa-a244-2ed899b7225a,640d7486-8abd-40aa-a244-2ed899b7225a,1,0,58321939-f25a-456d-8dee-97e64743dc2e,58321939-f25a-456d-8dee-97e64743dc2e,1,0,416fba62-70c4-4f8c-b10b-56d47b27ca35,416fba62-70c4-4f8c-b10b-56d47b27ca35,1,0,ec48a164-bc30-4e36-a40a-a3cca07aea0d,ec48a164-bc30-4e36-a40a-a3cca07aea0d,1,0,3174d57f-c6a8-44dc-adc1-47e9a54c844d,3174d57f-c6a8-44dc-adc1-47e9a54c844d,1,0,c05f87b4-ec5f-4d14-981f-02ca8ba89863,c05f87b4-ec5f-4d14-981f-02ca8ba89863,1,0,b7736108-89bd-44eb-89c1-8a5a774058f1,b7736108-89bd-44eb-89c1-8a5a774058f1,1,0,e07841ef-8392-4ceb-936d-fd160b3b03cd,e07841ef-8392-4ceb-936d-fd160b3b03cd,1,0,eee66f49-8954-4674-9e02-6bff6c332d30,eee66f49-8954-4674-9e02-6bff6c332d30,1,0,560a5f44-e4e6-46d9-a9fe-3609842d0e3e,560a5f44-e4e6-46d9-a9fe-3609842d0e3e,1,0,98f68a75-ebf9-4c59-b6a8-b3634089ca6b,98f68a75-ebf9-4c59-b6a8-b3634089ca6b,1,0,875d1fc1-8172-4e48-8192-035882e1665d,875d1fc1-8172-4e48-8192-035882e1665d,1,0,b2bd5a0e-d60c-411d-a001-ecdee0152b1a,b2bd5a0e-d60c-411d-a001-ecdee0152b1a,1,0,26132b28-98cc-4690-92ad-139f91839ba2,26132b28-98cc-4690-92ad-139f91839ba2,1,0,e7415ada-dd47-41f5-b4d5-7e77d1adad33,e7415ada-dd47-41f5-b4d5-7e77d1adad33,1,0,0bd85b79-cc32-4c1d-b629-567a1bdfac56,0bd85b79-cc32-4c1d-b629-567a1bdfac56,1,0,79c15db6-6066-4fe5-b30e-3196b6ca3d66,79c15db6-6066-4fe5-b30e-3196b6ca3d66,1,0,b87ce4f9-aaa6-4a4c-af80-0bd9adc83506,b87ce4f9-aaa6-4a4c-af80-0bd9adc83506,1,0,ca81e0ea-c428-47f9-aedb-078214104a2f,ca81e0ea-c428-47f9-aedb-078214104a2f,1,0,9518d09c-6996-4439-9278-3c71d5ae8fce,9518d09c-6996-4439-9278-3c71d5ae8fce,1,0,9dd6e7d6-cd98-4928-b50c-38bdbc61c211,9dd6e7d6-cd98-4928-b50c-38bdbc61c211,1,0,40cefda6-490e-4962-9747-94b823ea4ed7,40cefda6-490e-4962-9747-94b823ea4ed7,1,0,5fbd9a13-012d-4c36-b72c-da3bc4157cff,5fbd9a13-012d-4c36-b72c-da3bc4157cff,1,0,7e8d7d4f-98f7-4c81-94b1-f2d552b1ae5d,7e8d7d4f-98f7-4c81-94b1-f2d552b1ae5d,1,0,6aa6d14f-cd6c-413a-864e-d847d9ce120b,6aa6d14f-cd6c-413a-864e-d847d9ce120b,1,0,44b8472b-0f70-49cc-8f71-9c9d3e9cfbcc,44b8472b-0f70-49cc-8f71-9c9d3e9cfbcc,1,0,b071a44e-9a34-4af3-a59a-35aa5f3a74b4,b071a44e-9a34-4af3-a59a-35aa5f3a74b4,1,0,35a28677-0653-47f9-82e1-02c4b9266fee,35a28677-0653-47f9-82e1-02c4b9266fee,1,0,461be12a-9f16-4826-978a-436608ca8733,461be12a-9f16-4826-978a-436608ca8733,1,0,9b143299-d300-4b6c-b667-5552fb3bdcde,9b143299-d300-4b6c-b667-5552fb3bdcde,1,0,0de070f4-d8b7-48bb-bfc9-027dd727a4ad,0de070f4-d8b7-48bb-bfc9-027dd727a4ad,1,0,74973d06-f57d-403e-945c-5cd2f4fc4869,74973d06-f57d-403e-945c-5cd2f4fc4869,1,0,259564b8-172e-4eed-9360-d561ec6dad69,259564b8-172e-4eed-9360-d561ec6dad69,1,0,91c799d7-2b3d-4d1a-87ff-221057a428c6,91c799d7-2b3d-4d1a-87ff-221057a428c6,1,0,5a2d5d8a-afd9-4954-9868-7c82bad00426,5a2d5d8a-afd9-4954-9868-7c82bad00426,1,0,bab9810a-d08a-4484-a6d7-74e1c70a9bbc,bab9810a-d08a-4484-a6d7-74e1c70a9bbc,1,0,26aea96b-20f8-4e35-b55f-4fe3602e6597,26aea96b-20f8-4e35-b55f-4fe3602e6597,1,0,a3a3a211-e361-4e41-a6f8-d731a366c163,a3a3a211-e361-4e41-a6f8-d731a366c163,1,0,c40d6fde-4d9a-4d9e-af86-42b7916e2abe,c40d6fde-4d9a-4d9e-af86-42b7916e2abe,1,0,4d5204ae-711d-4c31-8a18-280dbc9d2bf5,4d5204ae-711d-4c31-8a18-280dbc9d2bf5,1,0,ca01417c-0ffd-4e00-91e8-93cd305be82d,ca01417c-0ffd-4e00-91e8-93cd305be82d,1,0,933ae96b-c69e-4396-bbfb-0daa81e529a4,933ae96b-c69e-4396-bbfb-0daa81e529a4,1,0,e1823be2-b646-4a1a-a9a9-c925a12c0586,e1823be2-b646-4a1a-a9a9-c925a12c0586,1,0,909e56e3-981f-430b-b775-18c70b3549e7,909e56e3-981f-430b-b775-18c70b3549e7,1,0,e613a6aa-82cb-40fd-8f28-0a74fe21e6a6,e613a6aa-82cb-40fd-8f28-0a74fe21e6a6,1,0,72d579ee-8cd5-4b08-9f3f-eb15f14ee194,72d579ee-8cd5-4b08-9f3f-eb15f14ee194,1,0,3a587e15-8ea8-4b4a-b9e8-feb2b874f1b0,3a587e15-8ea8-4b4a-b9e8-feb2b874f1b0,1,0,b98ca634-25a5-4366-af04-815ba34c8bb2,b98ca634-25a5-4366-af04-815ba34c8bb2,1,0,447da3d4-5d94-4cd2-8540-53c0836e6173,447da3d4-5d94-4cd2-8540-53c0836e6173,1,0,14d69108-4d26-401a-b7ae-2c86dadf831c,14d69108-4d26-401a-b7ae-2c86dadf831c,1,0,d6251f65-d366-4bc9-a5db-42063fe03594,d6251f65-d366-4bc9-a5db-42063fe03594,1,0,22c60cbc-429f-40d9-bf8b-681b7786c41d,22c60cbc-429f-40d9-bf8b-681b7786c41d,1,0,8d9d2284-e592-44c5-93bb-247037ab6b95,8d9d2284-e592-44c5-93bb-247037ab6b95,1,0,31dd320b-06aa-4314-9914-2c2420f572a1,31dd320b-06aa-4314-9914-2c2420f572a1,1,0,56730848-3bef-4b8c-b449-fe9d09c9c374,56730848-3bef-4b8c-b449-fe9d09c9c374,1,0,43c477d2-1234-4c4a-a18a-022c0ddf2fd5,43c477d2-1234-4c4a-a18a-022c0ddf2fd5,1,0,91d8c5e4-eaec-4951-9224-16882fda08f6,91d8c5e4-eaec-4951-9224-16882fda08f6,1,0,2721688b-9c0a-4069-8a17-4bb014bd7832,2721688b-9c0a-4069-8a17-4bb014bd7832,1,0,4304ffb9-7ede-4c59-bef8-26fe3e8f0103,4304ffb9-7ede-4c59-bef8-26fe3e8f0103,1,0,dc2b7a9e-132b-4a30-b7a8-ec72bf3d2e63,dc2b7a9e-132b-4a30-b7a8-ec72bf3d2e63,1,0,4654d192-74bf-430f-abee-6f4dc431b182,4654d192-74bf-430f-abee-6f4dc431b182,1,0,c4fe10b6-d025-4736-be23-3113bd7fe7b4,c4fe10b6-d025-4736-be23-3113bd7fe7b4,1,0,1ea750ae-5ec4-43c5-b34f-fd28999d41d7,1ea750ae-5ec4-43c5-b34f-fd28999d41d7,1,0,4678c704-933a-45ef-9d41-89b8f39016bb,4678c704-933a-45ef-9d41-89b8f39016bb,1,0,8ceea1e8-42ce-469f-823a-ceffdbd6b112,8ceea1e8-42ce-469f-823a-ceffdbd6b112,1,0,80eb2a49-8c0e-4f92-b99c-7fdadca03e7b,80eb2a49-8c0e-4f92-b99c-7fdadca03e7b,1,0,6fbc9a01-ddcb-47ab-84c0-f08b103be12b,6fbc9a01-ddcb-47ab-84c0-f08b103be12b,1,0,3f7ee937-d853-47b7-a1f5-d821208e3531,3f7ee937-d853-47b7-a1f5-d821208e3531,1,0,086d69d6-e2fa-45cb-84b6-f8f3e2919160,086d69d6-e2fa-45cb-84b6-f8f3e2919160,1,0,0b2b1287-e361-43d4-98c9-99b5c653cdd4,0b2b1287-e361-43d4-98c9-99b5c653cdd4,1,0,2caee148-4962-4947-bca7-9477741b8c1a,2caee148-4962-4947-bca7-9477741b8c1a,1,0,6995ee71-5901-46d9-a5c1-b35d795bda20,6995ee71-5901-46d9-a5c1-b35d795bda20,1,0,543c32a4-ad43-4f60-9b35-77081f841ad9,543c32a4-ad43-4f60-9b35-77081f841ad9,1,0,676fede8-3391-427d-a16c-ce542c935ce3,676fede8-3391-427d-a16c-ce542c935ce3,1,0,e93a4293-0497-4f11-b8b9-40300104fb96,e93a4293-0497-4f11-b8b9-40300104fb96,1,0,93531e5d-5dfc-42e8-be52-2e83f37262b0,93531e5d-5dfc-42e8-be52-2e83f37262b0,1,0,61bf78c0-7004-4a74-b362-e979c7316e05,61bf78c0-7004-4a74-b362-e979c7316e05,1,0,285d4d7f-acac-4e66-be6b-97aeecd2e383,285d4d7f-acac-4e66-be6b-97aeecd2e383,1,0,c4351896-eff1-4e4d-8823-028d63a9d6bf,c4351896-eff1-4e4d-8823-028d63a9d6bf,1,0,475f83a2-ba5a-4072-94f8-1324b1f198a4,475f83a2-ba5a-4072-94f8-1324b1f198a4,1,0,a9ae364f-b668-4fb4-b976-f227951ffb6b,a9ae364f-b668-4fb4-b976-f227951ffb6b,1,0,63066bee-d428-4e32-a032-f17475056537,63066bee-d428-4e32-a032-f17475056537,1,0,cd7c15c1-c573-46c9-b109-339b8b54c3ee,cd7c15c1-c573-46c9-b109-339b8b54c3ee,1,0,efd89929-4db9-4c58-b3cb-a8d9a41a1df2,efd89929-4db9-4c58-b3cb-a8d9a41a1df2,1,0,deee8bde-381f-4094-8794-7a06248860dd,deee8bde-381f-4094-8794-7a06248860dd,1,0,8c2a0f6b-492c-4c5a-97c5-da0d07f9d781,8c2a0f6b-492c-4c5a-97c5-da0d07f9d781,1,0,d92cb614-ed09-47db-b70b-d3e533c44c6a,d92cb614-ed09-47db-b70b-d3e533c44c6a,1,0,60f945c5-5992-443d-99ad-984375e09cae,60f945c5-5992-443d-99ad-984375e09cae,1,0,e3a76b35-5e1f-4355-b248-0954c6edf5f4,e3a76b35-5e1f-4355-b248-0954c6edf5f4,1,0,ab96aeaa-46f0-45cb-9060-9365a4519942,ab96aeaa-46f0-45cb-9060-9365a4519942,1,0,2757ee75-4b36-4901-bff1-044708754edb,2757ee75-4b36-4901-bff1-044708754edb,1,0,0e6bab27-bf94-4732-8549-dbd9b8a5f4e9,0e6bab27-bf94-4732-8549-dbd9b8a5f4e9,1,0,774c92d6-9b9b-422a-83d7-8d42ae2a9f60,774c92d6-9b9b-422a-83d7-8d42ae2a9f60,1,0,90032ffa-f117-4a34-82f8-cc7e5a22a542,90032ffa-f117-4a34-82f8-cc7e5a22a542,1,0,71144539-6472-4727-8887-0139f6221370,71144539-6472-4727-8887-0139f6221370,1,0,bff07da4-ae19-48a9-806b-14b285d42485,bff07da4-ae19-48a9-806b-14b285d42485,1,0,659cd4f6-d18c-4d75-a7e6-7c124a63ab9a,659cd4f6-d18c-4d75-a7e6-7c124a63ab9a,1,0,b0ccc05d-8d39-4f57-8e87-6846014f92ea,b0ccc05d-8d39-4f57-8e87-6846014f92ea,1,0,49e787c9-753a-468a-b8dd-2e970d9a1fed,49e787c9-753a-468a-b8dd-2e970d9a1fed,1,0,e871dea7-1953-4511-90b0-e0957afac4c0,e871dea7-1953-4511-90b0-e0957afac4c0,1,0,64fbfed7-9dda-481b-a4f7-fe440f24ba7e,64fbfed7-9dda-481b-a4f7-fe440f24ba7e,1,0,b2835a5b-5c91-448c-9eb1-1bb1c9a5e727,b2835a5b-5c91-448c-9eb1-1bb1c9a5e727,1,0,447fb310-0588-4e0d-8f6d-5fc1f3bb1180,447fb310-0588-4e0d-8f6d-5fc1f3bb1180,1,0,d91441cf-d793-4dfa-9225-f0c16818edde,d91441cf-d793-4dfa-9225-f0c16818edde,1,0,8986c155-54be-4b1b-b31a-5c00b88bc40d,8986c155-54be-4b1b-b31a-5c00b88bc40d,1,0,40ae107d-67a8-404c-adf9-1a760bba94ff,40ae107d-67a8-404c-adf9-1a760bba94ff,1,0,42a39785-144c-4d2d-92c6-fd8b345f687b,42a39785-144c-4d2d-92c6-fd8b345f687b,1,0,9c472614-595a-4456-aadd-f629455a754e,9c472614-595a-4456-aadd-f629455a754e,1,0,c205ddad-54ed-476f-85cd-e133313fe3a5,c205ddad-54ed-476f-85cd-e133313fe3a5,1,0,98edbda8-2511-4743-b643-28934af0ed74,98edbda8-2511-4743-b643-28934af0ed74,1,0,db1f2fdc-6862-43c0-aefa-499f8c2b585c,db1f2fdc-6862-43c0-aefa-499f8c2b585c,1,0,235be246-6c28-4771-923d-cffd541ec26e,235be246-6c28-4771-923d-cffd541ec26e,1,0,c9a0afb1-65fa-45ea-aabb-5ec080d9406e,c9a0afb1-65fa-45ea-aabb-5ec080d9406e,1,0,32b07bc0-3b2a-4244-93d4-49f172ad3ffb,32b07bc0-3b2a-4244-93d4-49f172ad3ffb,1,0,7abec628-65c3-4a44-ae11-99c2ffc592a3,7abec628-65c3-4a44-ae11-99c2ffc592a3,1,0,7b263bb6-4a6b-46c6-a1f0-48721ac1694b,7b263bb6-4a6b-46c6-a1f0-48721ac1694b,1,0,80b4e8c4-1fb3-4c3b-883f-93b5e213f46e,80b4e8c4-1fb3-4c3b-883f-93b5e213f46e,1,0,98061bca-6e72-479b-9125-a0f9452f4ed1,98061bca-6e72-479b-9125-a0f9452f4ed1,1,0,4d50203f-4577-4615-8001-4e4ac98fd392,4d50203f-4577-4615-8001-4e4ac98fd392,1,0,5c06642b-9c31-485b-87dd-48c6d7dbd30f,5c06642b-9c31-485b-87dd-48c6d7dbd30f,1,0,eeac3530-8897-4ab6-8fe8-09fcbfcd9fde,eeac3530-8897-4ab6-8fe8-09fcbfcd9fde,1,0,c3e2e470-f0bc-4fda-8c0e-4fb900e564a9,c3e2e470-f0bc-4fda-8c0e-4fb900e564a9,1,0,7fb0f8fd-4673-4f1d-a6ef-bc4ba9a2229f,7fb0f8fd-4673-4f1d-a6ef-bc4ba9a2229f,1,0,8ecf7104-09c7-4fc9-9b7d-2a71073ca3f6,8ecf7104-09c7-4fc9-9b7d-2a71073ca3f6,1,0,d3ade426-79bb-4d74-989f-712532afca29,d3ade426-79bb-4d74-989f-712532afca29,1,0,23387529-3893-473a-8934-8de81380a9ce,23387529-3893-473a-8934-8de81380a9ce,1,0,a16a117c-bc34-4e5d-b8cb-00dd91d7b060,a16a117c-bc34-4e5d-b8cb-00dd91d7b060,1,0,7fc7c59d-3df2-4f71-b6ec-9b85c7f7c4af,7fc7c59d-3df2-4f71-b6ec-9b85c7f7c4af,1,0,e28480c0-84e2-4f39-a1d0-c58ad1709cdc,e28480c0-84e2-4f39-a1d0-c58ad1709cdc,1,0,479c93bf-ccb0-4d92-981c-5bb68422d3e0,479c93bf-ccb0-4d92-981c-5bb68422d3e0,1,0,7172bed5-b12b-4e83-b15d-1d95b63a6272,7172bed5-b12b-4e83-b15d-1d95b63a6272,1,0,25d75a3c-b801-4b1e-aed8-90e667f36c67,25d75a3c-b801-4b1e-aed8-90e667f36c67,1,0,addb3aa1-a9d6-4d30-b5db-7f3ce46bc1b2,addb3aa1-a9d6-4d30-b5db-7f3ce46bc1b2,1,0,63ebf7fd-d514-4fce-abc1-fb3f253d01cd,63ebf7fd-d514-4fce-abc1-fb3f253d01cd,1,0,5730dde8-8334-4184-b1c4-a45e1b5cb154,5730dde8-8334-4184-b1c4-a45e1b5cb154,1,0,a275802f-937a-49f4-92da-fcdd185a036d,a275802f-937a-49f4-92da-fcdd185a036d,1,0,ec6ed9cb-85a2-4303-9906-cfb4ce6500bf,ec6ed9cb-85a2-4303-9906-cfb4ce6500bf,1,0,bf4eb62a-bc74-4845-bad2-58a2a8302a65,bf4eb62a-bc74-4845-bad2-58a2a8302a65,1,0,b66eb190-1c16-4f20-a94f-954bcdf313b8,b66eb190-1c16-4f20-a94f-954bcdf313b8,1,0,49e21b87-beae-4640-a497-ef468da0cbbc,49e21b87-beae-4640-a497-ef468da0cbbc,1,0,08c83b5e-08dd-425d-b024-62af684df926,08c83b5e-08dd-425d-b024-62af684df926,1,0,9e40a2ef-0c96-4455-8ed6-6e09011df3df,9e40a2ef-0c96-4455-8ed6-6e09011df3df,1,0,0de78690-2038-456b-b140-2b2b81f14e44,0de78690-2038-456b-b140-2b2b81f14e44,1,0,b8d07e97-f67d-4669-972a-96ce0f5e8c0d,b8d07e97-f67d-4669-972a-96ce0f5e8c0d,1,0,5c9c5f87-e85f-49b3-a7ca-01e2220d4f39,5c9c5f87-e85f-49b3-a7ca-01e2220d4f39,1,0,b953eafc-20be-4463-8c3e-903184e18402,b953eafc-20be-4463-8c3e-903184e18402,1,0,dcefdde9-645e-43c7-9244-384dadc75439,dcefdde9-645e-43c7-9244-384dadc75439,1,0,8568b969-4d05-42ab-b30a-c937619c7c93,8568b969-4d05-42ab-b30a-c937619c7c93,1,0,1afea577-b99e-41de-b613-47dd0b480a91,1afea577-b99e-41de-b613-47dd0b480a91,1,0,fa787228-aed5-4a16-b958-d102b78bf776,fa787228-aed5-4a16-b958-d102b78bf776,1,0,d511a261-4f9b-44e8-b3a1-1e6d393ec6e1,d511a261-4f9b-44e8-b3a1-1e6d393ec6e1,1,0,be900d20-c02d-476d-9ede-2bc5303ef6cb,be900d20-c02d-476d-9ede-2bc5303ef6cb,1,0,ddce1d3c-4a23-4c92-8083-c395dd3b7f6d,ddce1d3c-4a23-4c92-8083-c395dd3b7f6d,1,0,07b53437-cc8d-4834-a1e0-7007538b6eab,07b53437-cc8d-4834-a1e0-7007538b6eab,1,0,0dbec644-cb98-4368-ab76-5997259cbce7,0dbec644-cb98-4368-ab76-5997259cbce7,1,0,c05a7d33-8a58-4b5f-a433-4ba54c88d5f4,c05a7d33-8a58-4b5f-a433-4ba54c88d5f4,1,0,74b1237b-4a46-438d-9756-b564260df99d,74b1237b-4a46-438d-9756-b564260df99d,1,0,19decf0f-c24e-4551-b3d6-8ebd413cba78,19decf0f-c24e-4551-b3d6-8ebd413cba78,1,0,66a2df23-3a08-40d2-8e6c-2db10a3bca7a,66a2df23-3a08-40d2-8e6c-2db10a3bca7a,1,0,189383a5-0001-4427-9e00-18451e4bfb6e,189383a5-0001-4427-9e00-18451e4bfb6e,1,0,966ecce5-ec91-4f8e-82b2-364b38eb7ff4,966ecce5-ec91-4f8e-82b2-364b38eb7ff4,1,0,5ee4b3ee-b795-48c1-9bad-f4010b559b0e,5ee4b3ee-b795-48c1-9bad-f4010b559b0e,1,0,08dbba81-68fb-49ef-8aac-9631fcfa87c6,08dbba81-68fb-49ef-8aac-9631fcfa87c6,1,0,dd7191b6-cbc0-4b0b-a51a-c27a1e1720fa,dd7191b6-cbc0-4b0b-a51a-c27a1e1720fa,1,0,8170a27d-45e9-48b1-860b-c2d9cc5961cd,8170a27d-45e9-48b1-860b-c2d9cc5961cd,1,0,f1c08fed-f3db-4f72-8a8e-7c626b8cc130,f1c08fed-f3db-4f72-8a8e-7c626b8cc130,1,0,6a8de94b-7b62-4d91-80df-e47c4ef90864,6a8de94b-7b62-4d91-80df-e47c4ef90864,1,0,61cc4ec9-81e7-415b-8adf-3a5e61be505f,61cc4ec9-81e7-415b-8adf-3a5e61be505f,1,0,f41d01ec-983a-4b39-9c11-a6d25d08df4f,f41d01ec-983a-4b39-9c11-a6d25d08df4f,1,0,3247e64e-b57e-4c33-8086-7ab93c5b6371,3247e64e-b57e-4c33-8086-7ab93c5b6371,1,0,91d42c1f-af78-4c21-8071-61a347a94d5d,91d42c1f-af78-4c21-8071-61a347a94d5d,1,0,1ef34700-ce65-4985-b4d6-7133133ef32d,1ef34700-ce65-4985-b4d6-7133133ef32d,1,0,886d99ce-9ea2-4160-8d73-84df7197c030,886d99ce-9ea2-4160-8d73-84df7197c030,1,0,e5dca369-dc9a-4332-a509-f734b8787e13,e5dca369-dc9a-4332-a509-f734b8787e13,1,0,b46d482e-bf89-4bd7-8704-27ae42538afd,b46d482e-bf89-4bd7-8704-27ae42538afd,1,0,692d289b-8bd2-4b88-a8ea-0389c967df63,692d289b-8bd2-4b88-a8ea-0389c967df63,1,0,722af623-156c-4e63-8b2a-93da760f1559,722af623-156c-4e63-8b2a-93da760f1559,1,0,393074c4-0afc-4232-8101-11a4ea6ed28a,393074c4-0afc-4232-8101-11a4ea6ed28a,1,0,5ff23123-450c-40ae-9b79-c540da53e2a0,5ff23123-450c-40ae-9b79-c540da53e2a0,1,0,639339a1-7de5-4b05-adf3-f60e7edd922c,639339a1-7de5-4b05-adf3-f60e7edd922c,1,0,dea9af9d-13c0-40d4-a9b0-1908e0a58795,dea9af9d-13c0-40d4-a9b0-1908e0a58795,1,0,9e9b8c05-787a-43c0-891d-3d9ad7e4976f,9e9b8c05-787a-43c0-891d-3d9ad7e4976f,1,0,b8014eb2-5f9e-43ce-9a3b-f196f880fda5,b8014eb2-5f9e-43ce-9a3b-f196f880fda5,1,0,f72f3c7b-0a24-402e-a024-869f9e932928,f72f3c7b-0a24-402e-a024-869f9e932928,1,0,eec6a9b7-8e3a-4670-bf64-bc708973349d,eec6a9b7-8e3a-4670-bf64-bc708973349d,1,0,15b95954-144e-46b1-a945-39bef6fa9fcb,15b95954-144e-46b1-a945-39bef6fa9fcb,1,0,1b3324f3-0cce-4f14-b61f-26d37effb5f0,1b3324f3-0cce-4f14-b61f-26d37effb5f0,1,0,dbc9346c-6438-4bd2-bffb-e4650ef9cab7,dbc9346c-6438-4bd2-bffb-e4650ef9cab7,1,0,50ef6fc7-edfc-497b-ae9d-fb676934a631,50ef6fc7-edfc-497b-ae9d-fb676934a631,1,0,6f706d33-6fc6-4311-994f-6887c46f3c3b,6f706d33-6fc6-4311-994f-6887c46f3c3b,1,0,0e1a45b0-d95d-415f-b954-5689610aa393,0e1a45b0-d95d-415f-b954-5689610aa393,1,0,9162a85e-a385-42b0-b809-da916fce44b7,9162a85e-a385-42b0-b809-da916fce44b7,1,0,4736b3d3-f696-4bdd-b0e3-0884ea88f623,4736b3d3-f696-4bdd-b0e3-0884ea88f623,1,0,e3ac6312-4397-4012-a3d1-e35071d3fb6b,e3ac6312-4397-4012-a3d1-e35071d3fb6b,1,0,1c32ac14-580d-4ac2-939b-dc5ce64b4f7f,1c32ac14-580d-4ac2-939b-dc5ce64b4f7f,1,0,f6939587-ff87-4eca-ae52-10e1bd2abfce,f6939587-ff87-4eca-ae52-10e1bd2abfce,1,0,a8e4d97f-e2da-4aa8-a221-3cbcc135f403,a8e4d97f-e2da-4aa8-a221-3cbcc135f403,1,0,f2b0eab2-e34b-42f8-9b24-5596b4c17d7f,f2b0eab2-e34b-42f8-9b24-5596b4c17d7f,1,0,3cb575a9-dc82-45e0-81f0-d651e12246da,3cb575a9-dc82-45e0-81f0-d651e12246da,1,0,01a73950-3e8f-4f56-903f-af0d9574e72e,01a73950-3e8f-4f56-903f-af0d9574e72e,1,0,14bd0844-c829-4325-aa7f-0f417bf955dc,14bd0844-c829-4325-aa7f-0f417bf955dc,1,0,7f1cd658-ca10-49c6-80ef-b8956f3269ea,7f1cd658-ca10-49c6-80ef-b8956f3269ea,1,0,b0d9086f-cef7-47a8-ad62-d85fea28ebda,b0d9086f-cef7-47a8-ad62-d85fea28ebda,1,0,49c010fc-f5cc-45f4-ba46-132e7661c3dd,49c010fc-f5cc-45f4-ba46-132e7661c3dd,1,0,23d137ad-5b37-40a9-9c9f-3a2cecfb5abb,23d137ad-5b37-40a9-9c9f-3a2cecfb5abb,1,0,3f3b592d-ca61-40c7-be1f-e5d3224a1eb3,3f3b592d-ca61-40c7-be1f-e5d3224a1eb3,1,0,2c02a558-8d12-44cf-be6b-9c399b9032e5,2c02a558-8d12-44cf-be6b-9c399b9032e5,1,0,322a8a3c-35c0-4aaf-897e-0946561b9636,322a8a3c-35c0-4aaf-897e-0946561b9636,1,0,d94d4931-7c81-4ee8-93ea-b2c54b152fa5,d94d4931-7c81-4ee8-93ea-b2c54b152fa5,1,0,a077a18d-053f-4029-b73d-d606db241fe6,a077a18d-053f-4029-b73d-d606db241fe6,1,0,5a2f2284-4f86-4ee4-8b53-296c2787f320,5a2f2284-4f86-4ee4-8b53-296c2787f320,1,0,aea031ed-44c1-441b-8ed2-3a790c0263ab,aea031ed-44c1-441b-8ed2-3a790c0263ab,1,0,c770bdd5-c7c0-4751-b31d-46c0ea1f49b7,c770bdd5-c7c0-4751-b31d-46c0ea1f49b7,1,0,6afcc089-7f15-42e8-97b5-6aad6cf2e6f9,6afcc089-7f15-42e8-97b5-6aad6cf2e6f9,1,0,cce4c615-dc29-42b3-9d3d-b277dde4a2e4,cce4c615-dc29-42b3-9d3d-b277dde4a2e4,1,0,9c267aa6-5f23-49f6-868a-3324ef2845ff,9c267aa6-5f23-49f6-868a-3324ef2845ff,1,0,495eeeee-d7bf-4063-99e2-86daa066451a,495eeeee-d7bf-4063-99e2-86daa066451a,1,0,b6184698-79e4-4c19-9440-092ccd9dabf8,b6184698-79e4-4c19-9440-092ccd9dabf8,1,0,7d01fc0c-378e-421d-ab70-6a418eed5941,7d01fc0c-378e-421d-ab70-6a418eed5941,1,0,e8b92505-007b-4a95-a7a1-291988090228,e8b92505-007b-4a95-a7a1-291988090228,1,0,6eeb4867-bf9d-48dc-b96b-934a0c293010,6eeb4867-bf9d-48dc-b96b-934a0c293010,1,0,d2816f95-4809-4727-8ab6-8afd375f5a75,d2816f95-4809-4727-8ab6-8afd375f5a75,1,0,1d49b1bb-5f90-46e4-adcf-55ad46442648,1d49b1bb-5f90-46e4-adcf-55ad46442648,1,0,8d4685b7-ba72-4a28-8182-3104e1330567,8d4685b7-ba72-4a28-8182-3104e1330567,1,0,b91b93f0-29ca-452d-97be-7109fb248e22,b91b93f0-29ca-452d-97be-7109fb248e22,1,0,c1f7437a-b278-4941-b580-75c6693155d0,c1f7437a-b278-4941-b580-75c6693155d0,1,0,e1803e54-ec5e-4a82-8097-5e2331820991,e1803e54-ec5e-4a82-8097-5e2331820991,1,0,a6a84818-e14c-4554-ac0a-e522a9615997,a6a84818-e14c-4554-ac0a-e522a9615997,1,0,1bcbf91d-cbbc-4c47-86ed-b2cab62ccbe2,1bcbf91d-cbbc-4c47-86ed-b2cab62ccbe2,1,0,27aebf22-27fe-48d4-a6f4-ea4f6a6714bb,27aebf22-27fe-48d4-a6f4-ea4f6a6714bb,1,0,f69ec1f9-826e-4eb4-b52c-3f6a3dfc3361,f69ec1f9-826e-4eb4-b52c-3f6a3dfc3361,1,0,4cbb0b91-dbdd-472f-93c5-061076b6a8d3,4cbb0b91-dbdd-472f-93c5-061076b6a8d3,1,0,8506dbe9-7066-444b-83b6-fb2d71a336e7,8506dbe9-7066-444b-83b6-fb2d71a336e7,1,0,240b4df5-0d75-4e5a-9ae8-d0bc7cc51722,240b4df5-0d75-4e5a-9ae8-d0bc7cc51722,1,0,932656e8-4011-4250-844b-1fd47abda912,932656e8-4011-4250-844b-1fd47abda912,1,0,6686d828-3129-4d44-a8a2-a64657d424cb,6686d828-3129-4d44-a8a2-a64657d424cb,1,0,90433152-f389-4d45-8ccc-3eb6c7a7e1f0,90433152-f389-4d45-8ccc-3eb6c7a7e1f0,1,0,ce235ab9-1dec-459a-9fec-498c262ece56,ce235ab9-1dec-459a-9fec-498c262ece56,1,0,fb7a9f90-15ef-4121-adff-cd40f699182b,fb7a9f90-15ef-4121-adff-cd40f699182b,1,0,0fa52339-2d11-4c81-92b9-aa27d116134d,0fa52339-2d11-4c81-92b9-aa27d116134d,1,0,26135cf4-fbe1-4f72-a1fd-69e85ec008a6,26135cf4-fbe1-4f72-a1fd-69e85ec008a6,1,0,d83b8068-512d-4c10-88b4-f9b3413a3a81,d83b8068-512d-4c10-88b4-f9b3413a3a81,1,0,b3bbcd07-a593-4591-9d7e-9a990c0acb62,b3bbcd07-a593-4591-9d7e-9a990c0acb62,1,0,b96df5bb-d78a-40ed-a62d-2bf796c59c62,b96df5bb-d78a-40ed-a62d-2bf796c59c62,1,0,073890e5-13eb-4c50-9a6e-3e5507b111b7,073890e5-13eb-4c50-9a6e-3e5507b111b7,1,0,34a4d235-dc56-47e5-91b6-0af887ccdf42,34a4d235-dc56-47e5-91b6-0af887ccdf42,1,0,d60e7164-c686-4c50-b831-a4ee4f505c35,d60e7164-c686-4c50-b831-a4ee4f505c35,1,0,e660c8bf-af5f-4525-a56e-68925d2b96fa,e660c8bf-af5f-4525-a56e-68925d2b96fa,1,0,1a3ad05f-77b5-467e-99fe-c2b5e734ba87,1a3ad05f-77b5-467e-99fe-c2b5e734ba87,1,0,2fad50a6-6a3e-4f87-ab84-907364427a63,2fad50a6-6a3e-4f87-ab84-907364427a63,1,0,e37aa075-143b-44e9-a2e2-77b3e0f76a77,e37aa075-143b-44e9-a2e2-77b3e0f76a77,1,0,1df47f0c-7935-481b-9dfb-1f660ea81a2b,1df47f0c-7935-481b-9dfb-1f660ea81a2b,1,0,258736e4-93c0-4a46-8caa-75be42c9f006,258736e4-93c0-4a46-8caa-75be42c9f006,1,0,3153b2b9-9e3e-4d6b-ab8c-5ccaac78a08a,3153b2b9-9e3e-4d6b-ab8c-5ccaac78a08a,1,0,56d0acf3-c888-4824-a6e4-27d61fa35415,56d0acf3-c888-4824-a6e4-27d61fa35415,1,0,588bd1b2-ee61-4a05-83cd-efb1b82ccb44,588bd1b2-ee61-4a05-83cd-efb1b82ccb44,1,0,439129dd-ad00-484c-b84a-fb325af979ed,439129dd-ad00-484c-b84a-fb325af979ed,1,0,dcae6376-f44c-421e-87f2-df83413c021e,dcae6376-f44c-421e-87f2-df83413c021e,1,0,dbdcdcab-4cd5-44af-b52c-6ce14a26ca9c,dbdcdcab-4cd5-44af-b52c-6ce14a26ca9c,1,0,151f2d0a-cc43-490d-ad7d-71390703aa72,151f2d0a-cc43-490d-ad7d-71390703aa72,1,0,2a515a4f-683b-4674-b097-62dd2d940c39,2a515a4f-683b-4674-b097-62dd2d940c39,1,0,d14058f5-dfd4-47eb-ae6d-01b7062f5940,d14058f5-dfd4-47eb-ae6d-01b7062f5940,1,0,90f358ae-9c80-40cf-8e8f-aa02d78a2cdb,90f358ae-9c80-40cf-8e8f-aa02d78a2cdb,1,0,1681dd7a-de80-4b8d-9657-c9702a19d653,1681dd7a-de80-4b8d-9657-c9702a19d653,1,0,10d796e9-a3d4-4ef0-87d5-8315aa12f1c8,10d796e9-a3d4-4ef0-87d5-8315aa12f1c8,1,0,398cd724-3c08-49b3-a5b4-4186f1d6b32d,398cd724-3c08-49b3-a5b4-4186f1d6b32d,1,0,fdb5b235-1978-4c2a-a03f-02341df00c3c,fdb5b235-1978-4c2a-a03f-02341df00c3c,1,0,9f593f27-8009-40c0-94d6-53f177ce55f4,9f593f27-8009-40c0-94d6-53f177ce55f4,1,0,917f8d67-2c28-4e02-9453-e1ef9297c9a6,917f8d67-2c28-4e02-9453-e1ef9297c9a6,1,0,1d1248ce-c31a-41f9-85b2-0d97ae2bea82,1d1248ce-c31a-41f9-85b2-0d97ae2bea82,1,0,38637f61-399a-4966-9e64-4751aecffa31,38637f61-399a-4966-9e64-4751aecffa31,1,0,0f38a18b-a36c-45fe-86c1-396634aaa5df,0f38a18b-a36c-45fe-86c1-396634aaa5df,1,0,f2b7b8d0-c0f7-46ba-907a-f8dfa76fc2da,f2b7b8d0-c0f7-46ba-907a-f8dfa76fc2da,1,0,a81c783d-2dea-4dde-9ca1-7b23d609eb22,a81c783d-2dea-4dde-9ca1-7b23d609eb22,1,0,836dfba9-c948-409b-825f-f0d869872835,836dfba9-c948-409b-825f-f0d869872835,1,0,137ec4ee-5053-47a7-8f5d-f6e63174608f,137ec4ee-5053-47a7-8f5d-f6e63174608f,1,0,820bb4b4-895b-4ccf-a350-2545bf8a2f7e,820bb4b4-895b-4ccf-a350-2545bf8a2f7e,1,0,4e6d38c5-2a09-4473-9e04-8f631fe88c61,4e6d38c5-2a09-4473-9e04-8f631fe88c61,1,0,4b4f5777-7c36-461e-9d3e-1baaf0497d62,4b4f5777-7c36-461e-9d3e-1baaf0497d62,1,0,8f4d5fc1-5c2c-4202-bb79-a180b03b3267,8f4d5fc1-5c2c-4202-bb79-a180b03b3267,1,0,da881296-fea4-444b-96b2-12cb69d588c7,da881296-fea4-444b-96b2-12cb69d588c7,1,0,03f9d2d0-eae4-4098-a70e-4eb569b11fd9,03f9d2d0-eae4-4098-a70e-4eb569b11fd9,1,0,30031e74-e58a-44a2-98dd-fc8c950831c4,30031e74-e58a-44a2-98dd-fc8c950831c4,1,0,530a3164-4ef1-4b3b-8269-13764ef4bf15,530a3164-4ef1-4b3b-8269-13764ef4bf15,1,0,6df2bb92-558c-4453-9de4-e4176e8f93dc,6df2bb92-558c-4453-9de4-e4176e8f93dc,1,0,141c7b66-d689-4c8e-ace8-b8e1d8c7fbaa,141c7b66-d689-4c8e-ace8-b8e1d8c7fbaa,1,0,3fc019d1-aec8-4835-96c5-3bbf43da0b94,3fc019d1-aec8-4835-96c5-3bbf43da0b94,1,0,5371672a-c8e0-4c12-834e-f23dd885b49a,5371672a-c8e0-4c12-834e-f23dd885b49a,1,0,8583ca82-a4f5-4f2a-9b9a-7807b4560e85,8583ca82-a4f5-4f2a-9b9a-7807b4560e85,1,0,6417d7c8-6436-4907-98eb-44cd7638f3f1,6417d7c8-6436-4907-98eb-44cd7638f3f1,1,0,1f927f76-5523-4880-9d26-d69a059f2b67,1f927f76-5523-4880-9d26-d69a059f2b67,1,0,27a9c1de-90a9-49f8-8b16-f7ef041ae1de,27a9c1de-90a9-49f8-8b16-f7ef041ae1de,1,0,5c45e96f-e245-4d16-9c47-836505582aef,5c45e96f-e245-4d16-9c47-836505582aef,1,0,2c04d747-c363-4218-92c9-5c83393e928b,2c04d747-c363-4218-92c9-5c83393e928b,1,0,093b8255-7ee5-4463-bd20-542b1d63e799,093b8255-7ee5-4463-bd20-542b1d63e799,1,0,5afb95e0-51a3-4a0f-bea7-e06716421974,5afb95e0-51a3-4a0f-bea7-e06716421974,1,0,2bce3fbe-436b-4a9f-8478-5436d61cd57c,2bce3fbe-436b-4a9f-8478-5436d61cd57c,1,0,ba49877b-6e30-4177-a67c-00e65aa498fb,ba49877b-6e30-4177-a67c-00e65aa498fb,1,0,3d02ca78-c396-4797-909c-e6b910c0ff66,3d02ca78-c396-4797-909c-e6b910c0ff66,1,0,25b39aeb-94c3-4199-9d56-5bd87e325bf2,25b39aeb-94c3-4199-9d56-5bd87e325bf2,1,0,b0b63551-4e83-4201-af9a-b4ab150c43a5,b0b63551-4e83-4201-af9a-b4ab150c43a5,1,0,ca85912b-87b4-481e-9184-017364b4603d,ca85912b-87b4-481e-9184-017364b4603d,1,0,2bd80198-4739-4e8f-9af1-40addc91a05b,2bd80198-4739-4e8f-9af1-40addc91a05b,1,0,80c18959-93f0-46e6-90fd-b564efcaa395,80c18959-93f0-46e6-90fd-b564efcaa395,1,0,c53b9e19-54e4-49b4-ac63-eaeee5c2e040,c53b9e19-54e4-49b4-ac63-eaeee5c2e040,1,0,47afc45d-719e-4740-a8aa-6157c4b1aea8,47afc45d-719e-4740-a8aa-6157c4b1aea8,1,0,baec0e60-c410-4b95-8126-f77fd06225b4,baec0e60-c410-4b95-8126-f77fd06225b4,1,0,91275c80-d7f7-47c6-ba76-4a10d394f55b,91275c80-d7f7-47c6-ba76-4a10d394f55b,1,0,b92edc24-fcf7-498d-97a2-0c7f3005c814,b92edc24-fcf7-498d-97a2-0c7f3005c814,1,0,2b97f923-6a4e-4894-9ece-5129d8832864,2b97f923-6a4e-4894-9ece-5129d8832864,1,0,3e2b17cc-e8d1-41fa-9c1a-bbefd1524852,3e2b17cc-e8d1-41fa-9c1a-bbefd1524852,1,0,907a5c35-127a-4b74-9e9b-d0ec3d54ec1a,907a5c35-127a-4b74-9e9b-d0ec3d54ec1a,1,0,1962b038-653d-4834-a2d7-f913adc019a3,1962b038-653d-4834-a2d7-f913adc019a3,1,0,4635f15d-296b-4378-9833-f19e5b91b55b,4635f15d-296b-4378-9833-f19e5b91b55b,1,0,2650db63-ca98-4a8a-8c36-165548aa5279,2650db63-ca98-4a8a-8c36-165548aa5279,1,0,6ebc8b8e-3ac6-4378-81c9-888b683ecd11,6ebc8b8e-3ac6-4378-81c9-888b683ecd11,1,0,c376f25a-31f6-4b80-a9dc-2270906d211f,c376f25a-31f6-4b80-a9dc-2270906d211f,1,0,6a8fdf0a-5dff-49e4-a423-fc80aceeee27,6a8fdf0a-5dff-49e4-a423-fc80aceeee27,1,0,4b9320f1-c7b1-4c08-a832-64ef108d0d6d,4b9320f1-c7b1-4c08-a832-64ef108d0d6d,1,0,e8c5c961-0633-438d-ba50-d2a774f6b167,e8c5c961-0633-438d-ba50-d2a774f6b167,1,0,48b57d1b-5246-4ce8-9e0f-e369e6add55c,48b57d1b-5246-4ce8-9e0f-e369e6add55c,1,0,b6d891e4-15d6-4b40-b474-a8a1d10231e8,b6d891e4-15d6-4b40-b474-a8a1d10231e8,1,0,e60a7341-3995-4d8c-a3c6-a23ea0137754,e60a7341-3995-4d8c-a3c6-a23ea0137754,1,0,a69525c7-27ff-48df-b26b-325ba580a53e,a69525c7-27ff-48df-b26b-325ba580a53e,1,0,24a7de1c-1c1f-4987-91ff-02f78f15dd9e,24a7de1c-1c1f-4987-91ff-02f78f15dd9e,1,0,8482b31d-0ffa-4a94-9be1-09db8399b70d,8482b31d-0ffa-4a94-9be1-09db8399b70d,1,0,77fe53c2-de9d-4483-97c9-f7d44e137d5e,77fe53c2-de9d-4483-97c9-f7d44e137d5e,1,0,ac7ea771-4b10-4d43-9c0a-9cd36e4c49a4,ac7ea771-4b10-4d43-9c0a-9cd36e4c49a4,1,0,593be64c-6792-46d9-8618-84c50c9ad9e4,593be64c-6792-46d9-8618-84c50c9ad9e4,1,0,208d29cb-040f-4282-b8e8-dda8417b8e92,208d29cb-040f-4282-b8e8-dda8417b8e92,1,0,15a4595f-92d8-4084-bb92-cdc587b3a04e,15a4595f-92d8-4084-bb92-cdc587b3a04e,1,0,e57f4619-b5ed-44de-a186-a13a3897731b,e57f4619-b5ed-44de-a186-a13a3897731b,1,0,3b78a9d0-7382-4115-a7dc-d06c9a1962d1,3b78a9d0-7382-4115-a7dc-d06c9a1962d1,1,0,9aa84ee8-1c35-4498-bae9-40e209c2878c,9aa84ee8-1c35-4498-bae9-40e209c2878c,1,0,9935d602-668e-4df9-a338-0f542def878b,9935d602-668e-4df9-a338-0f542def878b,1,0,5e3bb85e-24cf-45fc-9b72-50bec76cb591,5e3bb85e-24cf-45fc-9b72-50bec76cb591,1,0,3913f78f-ce34-4ae3-840a-ccdf06319cbb,3913f78f-ce34-4ae3-840a-ccdf06319cbb,1,0,104cf3e3-2104-4ac2-bdc6-792750a63ea0,104cf3e3-2104-4ac2-bdc6-792750a63ea0,1,0,35dee1ee-ca9e-4b6b-9767-1107283f5a04,35dee1ee-ca9e-4b6b-9767-1107283f5a04,1,0,896d94fa-faca-4eda-8595-3cfcd586f42c,896d94fa-faca-4eda-8595-3cfcd586f42c,1,0,06c52476-a09e-4e40-b870-a69f063f4029,06c52476-a09e-4e40-b870-a69f063f4029,1,0,c86aa97a-5898-4cb2-ae62-598bddf8e99f,c86aa97a-5898-4cb2-ae62-598bddf8e99f,1,0,cb3a5c5b-7bdc-4e12-96f1-11b1213b6853,cb3a5c5b-7bdc-4e12-96f1-11b1213b6853,1,0,e6fe7103-4dfa-4302-a58e-ccd7fac19c9d,e6fe7103-4dfa-4302-a58e-ccd7fac19c9d,1,0,bb3a9973-67ce-479e-8668-c2f3bb20301e,bb3a9973-67ce-479e-8668-c2f3bb20301e,1,0,e5250dfe-dda2-4547-9b9e-2470ea1be1ab,e5250dfe-dda2-4547-9b9e-2470ea1be1ab,1,0,2c3fccc6-c4c0-49ec-bfc2-05ce05f27ea9,2c3fccc6-c4c0-49ec-bfc2-05ce05f27ea9,1,0,37169451-1464-4f24-8ca6-802963ffb636,37169451-1464-4f24-8ca6-802963ffb636,1,0,c3a958b1-590f-4418-a74f-5982b478cf52,c3a958b1-590f-4418-a74f-5982b478cf52,1,0,ef0e618d-0942-460a-ac65-9aca2fed976e,ef0e618d-0942-460a-ac65-9aca2fed976e,1,0,fd1ed7ec-d848-41cd-8ce3-2e5a682abcf0,fd1ed7ec-d848-41cd-8ce3-2e5a682abcf0,1,0,2ac8bd69-9fbf-4f15-b58d-397d9e903532,2ac8bd69-9fbf-4f15-b58d-397d9e903532,1,0,2ff35814-7eaa-4ae5-bbac-f46bebb36c9d,2ff35814-7eaa-4ae5-bbac-f46bebb36c9d,1,0,5b460b92-2c74-4f59-88b2-18d9aac42c04,5b460b92-2c74-4f59-88b2-18d9aac42c04,1,0,db05d35b-5f53-4c27-ba80-b477b9a98299,db05d35b-5f53-4c27-ba80-b477b9a98299,1,0,fa872ae1-b699-46fe-9d6a-e42e1388752b,fa872ae1-b699-46fe-9d6a-e42e1388752b,1,0,1acf34e6-c428-4130-82f0-5160dfcc0858,1acf34e6-c428-4130-82f0-5160dfcc0858,1,0,57046262-b9ce-4670-9cf5-6db9e58dd0d5,57046262-b9ce-4670-9cf5-6db9e58dd0d5,1,0,a9824176-36d5-4be5-9984-f4312ff48515,a9824176-36d5-4be5-9984-f4312ff48515,1,0,8e980ca0-1627-45e8-bd27-5dd1ac199459,8e980ca0-1627-45e8-bd27-5dd1ac199459,1,0,8b653beb-af9f-4f39-b691-ae14f80b7cd6,8b653beb-af9f-4f39-b691-ae14f80b7cd6,1,0,77559c11-713f-454d-aff4-56649e1350e9,77559c11-713f-454d-aff4-56649e1350e9,1,0,0c965703-c1d0-48b7-80f9-b8d869ff98f5,0c965703-c1d0-48b7-80f9-b8d869ff98f5,1,0,51f8d5ff-aec5-4c0a-ad02-df8c6cb1b4ad,51f8d5ff-aec5-4c0a-ad02-df8c6cb1b4ad,1,0,7ba42162-557b-4e34-8aca-0cdee8cb2452,7ba42162-557b-4e34-8aca-0cdee8cb2452,1,0,eee99b8e-29b6-4b7a-81f1-3d91d740c0d7,eee99b8e-29b6-4b7a-81f1-3d91d740c0d7,1,0,ad4f2d1f-1e6f-4f6a-8061-202c0e42a8e4,ad4f2d1f-1e6f-4f6a-8061-202c0e42a8e4,1,0,dd577924-c6cb-4aa9-9db5-366d8958d00f,dd577924-c6cb-4aa9-9db5-366d8958d00f,1,0,8ed8f72e-404a-4be4-a44d-ddebbad5f411,8ed8f72e-404a-4be4-a44d-ddebbad5f411,1,0,e919bc4c-86e6-44f6-be27-5a729b63d042,e919bc4c-86e6-44f6-be27-5a729b63d042,1,0,ec580e4f-1518-4923-a10e-bc1da8688b37,ec580e4f-1518-4923-a10e-bc1da8688b37,1,0,91c3902a-314f-4d40-8bcc-8dd131fed2f4,91c3902a-314f-4d40-8bcc-8dd131fed2f4,1,0,ae2b21c5-9349-49e8-9627-26f05c21f43a,ae2b21c5-9349-49e8-9627-26f05c21f43a,1,0,7e4c0b74-e807-4aa9-ad69-3c85b147bb61,7e4c0b74-e807-4aa9-ad69-3c85b147bb61,1,0,917a19d7-73db-4247-b892-397598d67879,917a19d7-73db-4247-b892-397598d67879,1,0,1f866dc3-a4bc-4e8d-96a3-a26ee073926f,1f866dc3-a4bc-4e8d-96a3-a26ee073926f,1,0,d8066600-c669-449d-a187-fdd3af8f7afa,d8066600-c669-449d-a187-fdd3af8f7afa,1,0,dadf86a6-c118-4827-b1b9-6cfee731242f,dadf86a6-c118-4827-b1b9-6cfee731242f,1,0,45bf7b20-f048-491a-a989-e50bea13d028,45bf7b20-f048-491a-a989-e50bea13d028,1,0,9ad3b432-5b49-44ee-9d8d-83c36458d927,9ad3b432-5b49-44ee-9d8d-83c36458d927,1,0,a9967bff-53b9-4295-a253-3647d956d3cb,a9967bff-53b9-4295-a253-3647d956d3cb,1,0,75f0fd5b-c594-4f3a-8ff2-3fdadf1dc96d,75f0fd5b-c594-4f3a-8ff2-3fdadf1dc96d,1,0,b8a31397-8974-44ec-92b0-7cbdc481cf7e,b8a31397-8974-44ec-92b0-7cbdc481cf7e,1,0,b29c7c0d-03eb-422b-a899-ba9a7eba99f6,b29c7c0d-03eb-422b-a899-ba9a7eba99f6,1,0,fb16c4d5-854c-4525-92be-b21fa2df5b0d,fb16c4d5-854c-4525-92be-b21fa2df5b0d,1,0,5771de21-2086-432b-ad91-de14a39bd5bc,5771de21-2086-432b-ad91-de14a39bd5bc,1,0,b15bcf3b-0228-4d02-8f20-cd6ba82f7585,b15bcf3b-0228-4d02-8f20-cd6ba82f7585,1,0,ed96fbfa-bda7-405c-9073-d0b6feffedad,ed96fbfa-bda7-405c-9073-d0b6feffedad,1,0,50c724cb-dde1-4313-9492-b1750bd0afc1,50c724cb-dde1-4313-9492-b1750bd0afc1,1,0,12901981-6106-4471-ab3a-e127c2bb4ebd,12901981-6106-4471-ab3a-e127c2bb4ebd,1,0,17ad1497-fa0e-469f-b2e2-b94a6f848ec5,17ad1497-fa0e-469f-b2e2-b94a6f848ec5,1,0,d5ea5dea-233d-4106-b9ba-f030d4f762ef,d5ea5dea-233d-4106-b9ba-f030d4f762ef,1,0,903af05e-5ac5-46aa-843b-d74f9e417c1d,903af05e-5ac5-46aa-843b-d74f9e417c1d,1,0,4dc4862e-74c3-469d-863b-09fdbe0d6be0,4dc4862e-74c3-469d-863b-09fdbe0d6be0,1,0,a344290a-c9be-47a7-95ad-ced1b52a0995,a344290a-c9be-47a7-95ad-ced1b52a0995,1,0,a4e56049-4de9-40a3-8197-a5c84a11f516,a4e56049-4de9-40a3-8197-a5c84a11f516,1,0,339c9220-fd5b-45d3-b300-cdcc8788f87e,339c9220-fd5b-45d3-b300-cdcc8788f87e,1,0,02d7d401-3c0c-4fd0-b096-1f73b6ec14c3,02d7d401-3c0c-4fd0-b096-1f73b6ec14c3,1,0,9042a6de-5048-432d-a448-7e21f2d1d24a,9042a6de-5048-432d-a448-7e21f2d1d24a,1,0,350d46bf-114e-48e7-90c6-6708d949f20d,350d46bf-114e-48e7-90c6-6708d949f20d,1,0,d047caa8-7bcf-41ac-a18e-97877d6e0a2a,d047caa8-7bcf-41ac-a18e-97877d6e0a2a,1,0,aac20ff3-5873-432e-b763-14411e623d41,aac20ff3-5873-432e-b763-14411e623d41,1,0,fbc4df3e-c235-4197-8c1f-a5e39ac63a8c,fbc4df3e-c235-4197-8c1f-a5e39ac63a8c,1,0,6df44466-8750-481a-9baf-c924f0d45353,6df44466-8750-481a-9baf-c924f0d45353,1,0,110121eb-a0eb-4662-8911-3dcc3d341a73,110121eb-a0eb-4662-8911-3dcc3d341a73,1,0,f8980c18-6b9c-4e45-919a-22e976d2a846,f8980c18-6b9c-4e45-919a-22e976d2a846,1,0,c946efb7-c67e-49c1-bf56-d3c2d7220acd,c946efb7-c67e-49c1-bf56-d3c2d7220acd,1,0,7ed6bd83-b61d-4db4-8549-acacbdda6ca2,7ed6bd83-b61d-4db4-8549-acacbdda6ca2,1,0,6b7c9f74-f2b6-463e-acb9-9f82901986cf,6b7c9f74-f2b6-463e-acb9-9f82901986cf,1,0,fc4c1d64-132b-4687-a37d-05000fdb4ba5,fc4c1d64-132b-4687-a37d-05000fdb4ba5,1,0,528777cd-090b-4b70-82f5-56def98c5893,528777cd-090b-4b70-82f5-56def98c5893,1,0,49dbe467-8832-4ede-9a05-494248619aeb,49dbe467-8832-4ede-9a05-494248619aeb,1,0,460ed9ca-10c2-491c-a641-b92ffc2a8e7c,460ed9ca-10c2-491c-a641-b92ffc2a8e7c,1,0,bd5fadd3-9264-4c3b-9bd5-51e91847a6fb,bd5fadd3-9264-4c3b-9bd5-51e91847a6fb,1,0,09c73108-8528-4970-9b7f-fff9eda7816a,09c73108-8528-4970-9b7f-fff9eda7816a,1,0,40aa936e-cb1c-4ae9-85f1-6d930a5815cc,40aa936e-cb1c-4ae9-85f1-6d930a5815cc,1,0,f568245a-d158-45dc-af92-2d411f12db7b,f568245a-d158-45dc-af92-2d411f12db7b,1,0,0f17cdac-aa17-45e6-b3d0-220b13345390,0f17cdac-aa17-45e6-b3d0-220b13345390,1,0,c675db75-d0c3-4026-b97c-6b23ecbb336a,c675db75-d0c3-4026-b97c-6b23ecbb336a,1,0,469f67fa-98b0-44b0-abd4-cae136c02834,469f67fa-98b0-44b0-abd4-cae136c02834,1,0,16a18458-999c-420e-80df-8fc10855746c,16a18458-999c-420e-80df-8fc10855746c,1,0,b794f222-0fde-439f-97a3-0da74075b415,b794f222-0fde-439f-97a3-0da74075b415,1,0,3a716aad-9b2c-48a7-b802-80732066391b,3a716aad-9b2c-48a7-b802-80732066391b,1,0,480d959f-aac8-4241-875f-78e1c1f32621,480d959f-aac8-4241-875f-78e1c1f32621,1,0,496e5de8-d75c-4536-9993-75374f070b40,496e5de8-d75c-4536-9993-75374f070b40,1,0,b4e610ba-c9c8-4b25-903b-e567dcbc2556,b4e610ba-c9c8-4b25-903b-e567dcbc2556,1,0,48febdbd-a085-4113-8511-ed7ff6be7d3c,48febdbd-a085-4113-8511-ed7ff6be7d3c,1,0,49413232-c0c3-4983-9d10-291a0399281b,49413232-c0c3-4983-9d10-291a0399281b,1,0,032bb782-96a7-4c1b-8b8f-eb4e18b555b7,032bb782-96a7-4c1b-8b8f-eb4e18b555b7,1,0,b9b076bb-38ab-4a94-8226-41a4d4d7432c,b9b076bb-38ab-4a94-8226-41a4d4d7432c,1,0,e12da8db-4037-473e-ba2b-d0ceb4534dcb,e12da8db-4037-473e-ba2b-d0ceb4534dcb,1,0,789514e5-8ea3-4a5e-88c5-ed89c4135866,789514e5-8ea3-4a5e-88c5-ed89c4135866,1,0,a16768ff-6137-43d8-8784-4805ed83632a,a16768ff-6137-43d8-8784-4805ed83632a,1,0,61971286-9f94-4a27-aa34-e10848adb70a,61971286-9f94-4a27-aa34-e10848adb70a,1,0,1e75d143-3452-496e-a137-6d7f4c4ed019,1e75d143-3452-496e-a137-6d7f4c4ed019,1,0,e0619d14-c658-4eb5-841a-3a029de28be4,e0619d14-c658-4eb5-841a-3a029de28be4,1,0,99a3b660-7875-47f7-9c6c-c552e5673deb,99a3b660-7875-47f7-9c6c-c552e5673deb,1,0,2bdcf3a5-c8e1-492c-afee-f9db68e2fbb6,2bdcf3a5-c8e1-492c-afee-f9db68e2fbb6,1,0,41cbf934-ea54-41df-abf0-09f319d2e67a,41cbf934-ea54-41df-abf0-09f319d2e67a,1,0,47246084-a5f8-4d0f-b4e2-204c1b97483a,47246084-a5f8-4d0f-b4e2-204c1b97483a,1,0,e58233ec-6cfc-4a8b-9929-689fa69cdb07,e58233ec-6cfc-4a8b-9929-689fa69cdb07,1,0,3291a891-a47c-43ca-b088-aecd3867d38c,3291a891-a47c-43ca-b088-aecd3867d38c,1,0,56cde2b4-00f2-49ba-b407-16e241c17fd2,56cde2b4-00f2-49ba-b407-16e241c17fd2,1,0,bd84fb2b-4c52-4e2f-a8c5-f289b8336145,bd84fb2b-4c52-4e2f-a8c5-f289b8336145,1,0,219ed110-f2a0-41c1-ac5a-02301b248c54,219ed110-f2a0-41c1-ac5a-02301b248c54,1,0,1c722dfd-2b07-4985-9188-17353de24771,1c722dfd-2b07-4985-9188-17353de24771,1,0,1a630496-2cdd-4c89-a1aa-ed20545ad133,1a630496-2cdd-4c89-a1aa-ed20545ad133,1,0,b0dd02ee-ea6a-43f2-baa2-abac0a1ab4bb,b0dd02ee-ea6a-43f2-baa2-abac0a1ab4bb,1,0,b19cea0e-e57a-4969-8daf-f48d3d16705f,b19cea0e-e57a-4969-8daf-f48d3d16705f,1,0,d4059340-3361-4baa-ae48-ecbfb9800a2e,d4059340-3361-4baa-ae48-ecbfb9800a2e,1,0,f78f6c43-dd90-4117-acf7-ed5b951cb964,f78f6c43-dd90-4117-acf7-ed5b951cb964,1,0,8eebd519-4989-4784-82b8-39d77eebfb17,8eebd519-4989-4784-82b8-39d77eebfb17,1,0,0a2cb6e3-d9fa-4881-b136-7b6db9efca07,0a2cb6e3-d9fa-4881-b136-7b6db9efca07,1,0,c1561ed9-2fbf-4c12-a484-07f8adbe8fa3,c1561ed9-2fbf-4c12-a484-07f8adbe8fa3,1,0,4527877b-5723-4aa5-8705-98174ac9c337,4527877b-5723-4aa5-8705-98174ac9c337,1,0,d6b21e7b-df57-4280-8c95-c269b5316018,d6b21e7b-df57-4280-8c95-c269b5316018,1,0,808c468b-6322-428d-ac6a-ccf2228b05b6,808c468b-6322-428d-ac6a-ccf2228b05b6,1,0,13664bb2-738f-4d18-b382-a7bcf8105a5a,13664bb2-738f-4d18-b382-a7bcf8105a5a,1,0,f3f56abe-9248-4555-bf99-29560eb4f9ee,f3f56abe-9248-4555-bf99-29560eb4f9ee,1,0,0dbd5d55-a85f-4c7e-ac31-7ba4ab7cc371,0dbd5d55-a85f-4c7e-ac31-7ba4ab7cc371,1,0,dd9d09ef-3b4b-4bb5-9408-9c4080049bb3,dd9d09ef-3b4b-4bb5-9408-9c4080049bb3,1,0,3eb43a06-b32d-4904-8489-6264d0207623,3eb43a06-b32d-4904-8489-6264d0207623,1,0,a18098cf-5a61-46b5-bd55-cc61d15aa6bc,a18098cf-5a61-46b5-bd55-cc61d15aa6bc,1,0,18615fe1-cfee-4888-9c09-88d1c5db39eb,18615fe1-cfee-4888-9c09-88d1c5db39eb,1,0,63e363fa-8b0c-4d48-ab1b-9c953c5ed4c0,63e363fa-8b0c-4d48-ab1b-9c953c5ed4c0,1,0,087c83c0-75e7-476b-b7c6-5be55498a190,087c83c0-75e7-476b-b7c6-5be55498a190,1,0,ec5e5413-9e77-4929-83b8-6fee70688b28,ec5e5413-9e77-4929-83b8-6fee70688b28,1,0,59cd8e3f-ecf3-4e1d-bd98-41551d5d6f68,59cd8e3f-ecf3-4e1d-bd98-41551d5d6f68,1,0,8390c864-2b84-4c45-8583-cb4a4ab49168,8390c864-2b84-4c45-8583-cb4a4ab49168,1,0,1b2fefca-fef5-4319-90cc-325444cb63a6,1b2fefca-fef5-4319-90cc-325444cb63a6,1,0,34a128be-8fbb-4dd8-ac23-9f35041feb63,34a128be-8fbb-4dd8-ac23-9f35041feb63,1,0,baa31006-e0d6-496e-a60e-27b3dfd19397,baa31006-e0d6-496e-a60e-27b3dfd19397,1,0,3007d8ff-3942-45ed-bac5-8a6c40ca060c,3007d8ff-3942-45ed-bac5-8a6c40ca060c,1,0,8bfe1474-fd12-4744-a9ab-3383bfe766b3,8bfe1474-fd12-4744-a9ab-3383bfe766b3,1,0,3af97375-f776-4129-9521-b8d65d795db6,3af97375-f776-4129-9521-b8d65d795db6,1,0,0e98801b-a45b-44cb-a341-7e43d723f6ed,0e98801b-a45b-44cb-a341-7e43d723f6ed,1,0,5b71cd3b-d5b8-4632-9678-0ab1e1d2ea91,5b71cd3b-d5b8-4632-9678-0ab1e1d2ea91,1,0,103ac72d-c386-40ea-89d4-35798d064f1a,103ac72d-c386-40ea-89d4-35798d064f1a,1,0,645ceb40-1e9f-4a67-aa7f-b9002fa066b3,645ceb40-1e9f-4a67-aa7f-b9002fa066b3,1,0,d1fe15e9-8e5c-4819-85cd-24ab31409437,d1fe15e9-8e5c-4819-85cd-24ab31409437,1,0,c8c5bfe9-ead5-4e79-9fd5-60ad275faa1e,c8c5bfe9-ead5-4e79-9fd5-60ad275faa1e,1,0,8f9826b6-890e-4ba3-a1f2-bc9ebb3238dd,8f9826b6-890e-4ba3-a1f2-bc9ebb3238dd,1,0,74f68bda-17b1-4b3c-aa64-b1014300f9b5,74f68bda-17b1-4b3c-aa64-b1014300f9b5,1,0,90a195b0-7f64-4ccb-986e-8c8c2cf12ccd,90a195b0-7f64-4ccb-986e-8c8c2cf12ccd,1,0,9f9d1f8c-7ff9-420f-a426-48f33493d9f2,9f9d1f8c-7ff9-420f-a426-48f33493d9f2,1,0,ab7bc0bc-b4b8-4a4a-aecc-1cbe14fd4975,ab7bc0bc-b4b8-4a4a-aecc-1cbe14fd4975,1,0,9f8d9594-674f-49ef-9fb8-bb64d5c40a37,9f8d9594-674f-49ef-9fb8-bb64d5c40a37,1,0,47ee7d38-9fa9-458d-abee-e11270f79494,47ee7d38-9fa9-458d-abee-e11270f79494,1,0,bb6b83ff-81f4-4c39-ad8e-8cda9ccd9cb9,bb6b83ff-81f4-4c39-ad8e-8cda9ccd9cb9,1,0,076daecf-8fcb-496b-9f13-c4faa3a8a722,076daecf-8fcb-496b-9f13-c4faa3a8a722,1,0,f1a8357b-7083-42b3-ab5d-36223a3dd2a4,f1a8357b-7083-42b3-ab5d-36223a3dd2a4,1,0,296d7725-bdd3-4210-9db9-31de5711ea9b,296d7725-bdd3-4210-9db9-31de5711ea9b,1,0,6ecc5bc2-20b3-46f3-8019-ae1e1f3de319,6ecc5bc2-20b3-46f3-8019-ae1e1f3de319,1,0,1d05f89a-23dd-4d30-8786-abe8a9a39a40,1d05f89a-23dd-4d30-8786-abe8a9a39a40,1,0,245c2c6c-7b7f-4381-9304-1d7287a215fa,245c2c6c-7b7f-4381-9304-1d7287a215fa,1,0,fd17bbe4-34d9-4832-8eea-8eeb82194e4c,fd17bbe4-34d9-4832-8eea-8eeb82194e4c,1,0,d4c72d7f-7e1f-473c-9a2b-fa675fc78731,d4c72d7f-7e1f-473c-9a2b-fa675fc78731,1,0,8bb5be12-98df-4a38-bffe-432fb13d8101,8bb5be12-98df-4a38-bffe-432fb13d8101,1,0,94209023-ce88-401c-9aff-526fb7e43709,94209023-ce88-401c-9aff-526fb7e43709,1,0,22b99094-b52a-4244-ae91-53848d82560b,22b99094-b52a-4244-ae91-53848d82560b,1,0,22c9e2fa-c1f0-41ec-b6f2-9d7357dd3479,22c9e2fa-c1f0-41ec-b6f2-9d7357dd3479,1,0,b0002134-d5c9-4508-9f0e-97f92461b590,b0002134-d5c9-4508-9f0e-97f92461b590,1,0,1506ec71-cb38-4831-a29d-dac2c4deddda,1506ec71-cb38-4831-a29d-dac2c4deddda,1,0,e05fd82b-b77b-4b7f-b300-43653017f341,e05fd82b-b77b-4b7f-b300-43653017f341,1,0,d3b5e5ee-2317-43b4-b669-3af2ce635cf3,d3b5e5ee-2317-43b4-b669-3af2ce635cf3,1,0,f15a0526-c207-42fe-aed9-438ae0c4a4b8,f15a0526-c207-42fe-aed9-438ae0c4a4b8,1,0,9d444a41-7190-48fb-9a4a-08f8e7bc32a3,9d444a41-7190-48fb-9a4a-08f8e7bc32a3,1,0,8583cab0-0620-4346-96e0-bcac40981b8a,8583cab0-0620-4346-96e0-bcac40981b8a,1,0,e1dfba26-c682-42a2-8e15-fe6f535c9ce1,e1dfba26-c682-42a2-8e15-fe6f535c9ce1,1,0,095990b1-187b-400c-941a-275f272239ca,095990b1-187b-400c-941a-275f272239ca,1,0,ba108470-350d-40c3-bb44-9852c2aa8c97,ba108470-350d-40c3-bb44-9852c2aa8c97,1,0,a37c33fa-64b0-4a1b-846a-0a236bad44f8,a37c33fa-64b0-4a1b-846a-0a236bad44f8,1,0,d8481ce1-7f64-47b0-8fc0-6642ae93aca1,d8481ce1-7f64-47b0-8fc0-6642ae93aca1,1,0,a50f4324-da44-449b-b500-74228b2aa7e0,a50f4324-da44-449b-b500-74228b2aa7e0,1,0,04236716-9c36-4a1d-b4fb-4b8c65644ab4,04236716-9c36-4a1d-b4fb-4b8c65644ab4,1,0,97276702-6686-4ac4-8360-d85369a08b20,97276702-6686-4ac4-8360-d85369a08b20,1,0,e5450ee7-e891-4f58-9a01-d2d81d5ddd6d,e5450ee7-e891-4f58-9a01-d2d81d5ddd6d,1,0,068883fe-d7ae-40e7-ad82-864867916daa,068883fe-d7ae-40e7-ad82-864867916daa,1,0,c1b02568-2095-4f83-8543-2402f67dbe3d,c1b02568-2095-4f83-8543-2402f67dbe3d,1,0,8b749b7a-5e68-4523-adc2-8b3c5ce9701c,8b749b7a-5e68-4523-adc2-8b3c5ce9701c,1,0,bf3c7edc-0791-459e-a7ac-b7e8d7ed97fe,bf3c7edc-0791-459e-a7ac-b7e8d7ed97fe,1,0,7dc6d13e-4edf-4e6a-9ee9-4b32ad889ecf,7dc6d13e-4edf-4e6a-9ee9-4b32ad889ecf,1,0,aecbd726-6952-49e6-b544-4c5cc764c24c,aecbd726-6952-49e6-b544-4c5cc764c24c,1,0,d335cfbf-bc78-4274-a178-10f60372474a,d335cfbf-bc78-4274-a178-10f60372474a,1,0,0f4411b3-addf-4fcf-8da8-c5140dea356c,0f4411b3-addf-4fcf-8da8-c5140dea356c,1,0,c501f9ab-d01b-4137-8cd0-e66103117c84,c501f9ab-d01b-4137-8cd0-e66103117c84,1,0,8d5d4e0f-b7b5-4cdc-aedc-571517fa101f,8d5d4e0f-b7b5-4cdc-aedc-571517fa101f,1,0,66e65355-1424-4c74-801c-faf5357257aa,66e65355-1424-4c74-801c-faf5357257aa,1,0,0a93187b-7ae4-4985-8089-3099dfec2b48,0a93187b-7ae4-4985-8089-3099dfec2b48,1,0,044458f3-ed9b-4afb-ae73-8f9162c032bf,044458f3-ed9b-4afb-ae73-8f9162c032bf,1,0,578f618e-5f4a-4e86-959d-39b59e973936,578f618e-5f4a-4e86-959d-39b59e973936,1,0,f74ede2e-2d28-4224-ba44-773eda7760a4,f74ede2e-2d28-4224-ba44-773eda7760a4,1,0,217df06a-1bdf-4394-b617-ed756ff17bc6,217df06a-1bdf-4394-b617-ed756ff17bc6,1,0,a1572e97-a487-497a-9062-49315e237e0f,a1572e97-a487-497a-9062-49315e237e0f,1,0,969cdcb8-0f2a-427f-93a0-e7ae38f465e8,969cdcb8-0f2a-427f-93a0-e7ae38f465e8,1,0,3c5d87a0-cfce-464a-b946-64c5a589a376,3c5d87a0-cfce-464a-b946-64c5a589a376,1,0,2d22c67d-4795-4a6b-bc81-a3ed1eb28367,2d22c67d-4795-4a6b-bc81-a3ed1eb28367,1,0,763de8d1-7f53-41b6-8d97-7da724e9f763,763de8d1-7f53-41b6-8d97-7da724e9f763,1,0,75592ed4-2aab-4dfc-ae7b-d93e2a98370f,75592ed4-2aab-4dfc-ae7b-d93e2a98370f,1,0,4ad59c75-cca4-4968-82e6-babd72d8b318,4ad59c75-cca4-4968-82e6-babd72d8b318,1,0,c248de15-63a2-48ec-8695-7a5213d4fc9b,c248de15-63a2-48ec-8695-7a5213d4fc9b,1,0,272ff0f9-7266-4c22-be12-fe62682b56a5,272ff0f9-7266-4c22-be12-fe62682b56a5,1,0,9f141dd5-d866-4c25-b58a-a7766a08b4e7,9f141dd5-d866-4c25-b58a-a7766a08b4e7,1,0,0570d846-889d-4cfc-98fb-a1ad0181597f,0570d846-889d-4cfc-98fb-a1ad0181597f,1,0,19e17c58-953f-4917-8b6a-c88808fcca36,19e17c58-953f-4917-8b6a-c88808fcca36,1,0,4804316d-3765-4a83-8438-10e8e82656db,4804316d-3765-4a83-8438-10e8e82656db,1,0,59458556-e343-4215-8e6c-69f924ec4183,59458556-e343-4215-8e6c-69f924ec4183,1,0,dd553dca-7eba-41bf-8939-2c61e170ff65,dd553dca-7eba-41bf-8939-2c61e170ff65,1,0,b4ecf3dc-a2aa-406e-a593-1700ea8746bc,b4ecf3dc-a2aa-406e-a593-1700ea8746bc,1,0,933d7ce7-ea82-4b26-8d1b-dc92cb5ac92d,933d7ce7-ea82-4b26-8d1b-dc92cb5ac92d,1,0,8099e978-28cc-4ade-ac5a-3785f3a45f70,8099e978-28cc-4ade-ac5a-3785f3a45f70,1,0,11eff613-8077-41fa-8cb8-5e8dc27d0e4f,11eff613-8077-41fa-8cb8-5e8dc27d0e4f,1,0,fe023ca5-f11a-4b98-99c1-363508e4ea4a,fe023ca5-f11a-4b98-99c1-363508e4ea4a,1,0,6f8d515e-13d9-45f8-9793-3757f5b85f81,6f8d515e-13d9-45f8-9793-3757f5b85f81,1,0,25ec541c-c437-4318-b2a8-5146df6ae080,25ec541c-c437-4318-b2a8-5146df6ae080,1,0,148754ed-3063-40a7-a3c3-8ad105552370,148754ed-3063-40a7-a3c3-8ad105552370,1,0,ab3f0862-c355-4fd7-a2a7-4eb8278de510,ab3f0862-c355-4fd7-a2a7-4eb8278de510,1,0,85bbfe20-a6a4-49ca-8f20-342f4cbe8258,85bbfe20-a6a4-49ca-8f20-342f4cbe8258,1,0,c12c3f3b-3a96-4e70-b131-8d7bd765095f,c12c3f3b-3a96-4e70-b131-8d7bd765095f,1,0,70ee4b32-80d1-4b79-a322-0433f1b8c7f1,70ee4b32-80d1-4b79-a322-0433f1b8c7f1,1,0,c563588c-346e-499e-ae33-9ff3cb62e658,c563588c-346e-499e-ae33-9ff3cb62e658,1,0,40dbc001-97b6-4188-8de9-3adac670bac4,40dbc001-97b6-4188-8de9-3adac670bac4,1,0,58589e42-9ff2-4ad4-bd98-a75ab6873625,58589e42-9ff2-4ad4-bd98-a75ab6873625,1,0,92255ded-6c44-43be-b0b1-fd03c2b78c8b,92255ded-6c44-43be-b0b1-fd03c2b78c8b,1,0,dfe6da42-f024-45c5-beea-ceccaf3a5faa,dfe6da42-f024-45c5-beea-ceccaf3a5faa,1,0,08f3e8f1-284c-4059-864a-42499d48596c,08f3e8f1-284c-4059-864a-42499d48596c,1,0,3d715c1b-9a5e-408d-98d6-5345d274144b,3d715c1b-9a5e-408d-98d6-5345d274144b,1,0,3f88bc69-e140-48b6-a2f9-24f6a391bff2,3f88bc69-e140-48b6-a2f9-24f6a391bff2,1,0,65eb5361-074c-451d-a5d8-d16b6ecccf82,65eb5361-074c-451d-a5d8-d16b6ecccf82,1,0,f7c8cab8-c634-4cf3-9183-c15c915231f8,f7c8cab8-c634-4cf3-9183-c15c915231f8,1,0,563a33a6-9eff-4ff1-9eba-dafc235d2ede,563a33a6-9eff-4ff1-9eba-dafc235d2ede,1,0,fbc21f7d-c272-41ea-b048-c5af294ab5ed,fbc21f7d-c272-41ea-b048-c5af294ab5ed,1,0,088c38fa-1c8f-42e7-aa72-5f5dd8cfc1c6,088c38fa-1c8f-42e7-aa72-5f5dd8cfc1c6,1,0,370f97ee-9aed-4a0a-aefc-647d973e6741,370f97ee-9aed-4a0a-aefc-647d973e6741,1,0,c586d28e-a3ec-4201-8ba0-d453bb7c5293,c586d28e-a3ec-4201-8ba0-d453bb7c5293,1,0,d84f12b0-6e01-4646-9abd-51578716433d,d84f12b0-6e01-4646-9abd-51578716433d,1,0,a4458c18-72eb-4fc0-8dc6-fccab93b0898,a4458c18-72eb-4fc0-8dc6-fccab93b0898,1,0,3a0ceb25-60f5-4fec-ab2e-e667939bfe21,3a0ceb25-60f5-4fec-ab2e-e667939bfe21,1,0,27db4549-df2f-4856-b07f-3c9399cdee9c,27db4549-df2f-4856-b07f-3c9399cdee9c,1,0,f667d49a-8077-450f-9442-2ea4fee7b62d,f667d49a-8077-450f-9442-2ea4fee7b62d,1,0,782b1285-9618-4ec9-b817-ce93e2d24d4d,782b1285-9618-4ec9-b817-ce93e2d24d4d,1,0,dd3e202f-6225-4061-a6ab-f29cd314ab08,dd3e202f-6225-4061-a6ab-f29cd314ab08,1,0,483b7600-e46f-4739-94c8-8637c62750a0,483b7600-e46f-4739-94c8-8637c62750a0,1,0,bdcf5f7a-2888-4143-b46d-1bf0dcc16872,bdcf5f7a-2888-4143-b46d-1bf0dcc16872,1,0,bce8a955-0a0e-4771-9763-4f5d319d9848,bce8a955-0a0e-4771-9763-4f5d319d9848,1,0,090c475c-fb33-46a9-a0ed-fb9d7def2ca5,090c475c-fb33-46a9-a0ed-fb9d7def2ca5,1,0,d10c3389-5bf0-4c73-ab92-786eb19d1676,d10c3389-5bf0-4c73-ab92-786eb19d1676,1,0,c824c20d-7503-4a77-81b8-2a68b20eab68,c824c20d-7503-4a77-81b8-2a68b20eab68,1,0,a0db92c6-b39e-41ab-82e3-161e32f67bda,a0db92c6-b39e-41ab-82e3-161e32f67bda,1,0,88f91187-65d3-4684-992d-20ca29d3755a,88f91187-65d3-4684-992d-20ca29d3755a,1,0,da725701-d4fb-40a4-a63b-feaa8559d8cf,da725701-d4fb-40a4-a63b-feaa8559d8cf,1,0,0a44cfc8-0b55-4aed-990f-e97831494a3c,0a44cfc8-0b55-4aed-990f-e97831494a3c,1,0,c9adbe7c-ca6e-4048-a498-9b48f75d9b45,c9adbe7c-ca6e-4048-a498-9b48f75d9b45,1,0,c7cb80d6-13d9-49af-acdd-6d10dffd1e17,c7cb80d6-13d9-49af-acdd-6d10dffd1e17,1,0,9a3f04d7-b956-4e87-ac28-63f7afba1771,9a3f04d7-b956-4e87-ac28-63f7afba1771,1,0,41b23a18-0c4e-455f-b249-2f2eba8119db,41b23a18-0c4e-455f-b249-2f2eba8119db,1,0,ff697cb8-ab88-4634-94e3-c06a401f71ff,ff697cb8-ab88-4634-94e3-c06a401f71ff,1,0,cf98131d-2b1a-4a07-a8dd-72af01934a8b,cf98131d-2b1a-4a07-a8dd-72af01934a8b,1,0,bef1eead-3f8b-48b7-99f3-46ba332fb60d,bef1eead-3f8b-48b7-99f3-46ba332fb60d,1,0,c1b3d4c8-8c53-4452-bec5-9742bb827d8f,c1b3d4c8-8c53-4452-bec5-9742bb827d8f,1,0,b6e1d584-6817-4f06-b5b2-57037a23ce6f,b6e1d584-6817-4f06-b5b2-57037a23ce6f,1,0,1b5d2ded-3f58-4b3e-8678-48191897e408,1b5d2ded-3f58-4b3e-8678-48191897e408,1,0,62fd5457-0cfd-4273-8965-4b5bf9170209,62fd5457-0cfd-4273-8965-4b5bf9170209,1,0,88701798-0c0e-4d33-a68b-3eddfc25d835,88701798-0c0e-4d33-a68b-3eddfc25d835,1,0,c0d704b5-32de-4bb8-9525-f7d1da828ae5,c0d704b5-32de-4bb8-9525-f7d1da828ae5,1,0,b5b5ee06-4de8-4776-98f0-3e8e1b31985a,b5b5ee06-4de8-4776-98f0-3e8e1b31985a,1,0,2f999502-68e5-4823-8f94-aec98b1a1b1d,2f999502-68e5-4823-8f94-aec98b1a1b1d,1,0,2d064409-7f2a-4d2e-9155-6b34e4373e89,2d064409-7f2a-4d2e-9155-6b34e4373e89,1,0,fc51a562-01bb-47c3-bac5-89f78f64a5f3,fc51a562-01bb-47c3-bac5-89f78f64a5f3,1,0,8a33a6cd-f56d-405b-9515-9fc04d30e27a,8a33a6cd-f56d-405b-9515-9fc04d30e27a,1,0,9b199470-723d-4b72-9fdc-2bed2b7bc483,9b199470-723d-4b72-9fdc-2bed2b7bc483,1,0,5bb9aff1-f4ee-4c02-8e3f-f070bfbb8339,5bb9aff1-f4ee-4c02-8e3f-f070bfbb8339,1,0,6a06f9ee-8832-4e9e-aeba-b4cb9573c048,6a06f9ee-8832-4e9e-aeba-b4cb9573c048,1,0,38fa770e-f38d-4fdf-bb7a-56cfe76a8ab2,38fa770e-f38d-4fdf-bb7a-56cfe76a8ab2,1,0,afc4ce2a-60b6-48d0-ada0-2f651d050888,afc4ce2a-60b6-48d0-ada0-2f651d050888,1,0,5f289266-fc3c-4345-b7ab-cf863e2a6ccd,5f289266-fc3c-4345-b7ab-cf863e2a6ccd,1,0,5932f0d8-9012-4382-8c72-b1a5f4fbc937,5932f0d8-9012-4382-8c72-b1a5f4fbc937,1,0,66f1ff23-8fec-4be4-914c-43b7dee1c2a2,66f1ff23-8fec-4be4-914c-43b7dee1c2a2,1,0,56c3471e-459a-46ba-96ea-9f872b3ad54a,56c3471e-459a-46ba-96ea-9f872b3ad54a,1,0,2113195b-1553-4137-9e45-2cc62c72ee47,2113195b-1553-4137-9e45-2cc62c72ee47,1,0,1250f5b1-c766-434c-8d28-69b74a536294,1250f5b1-c766-434c-8d28-69b74a536294,1,0,80bc9b8b-7b17-4dbb-bca6-8465d6b01e0b,80bc9b8b-7b17-4dbb-bca6-8465d6b01e0b,1,0,6327e23d-6070-4b64-81c6-0d1a33eaae93,6327e23d-6070-4b64-81c6-0d1a33eaae93,1,0,4d086a1f-34e0-43f9-9401-d82e55746a9d,4d086a1f-34e0-43f9-9401-d82e55746a9d,1,0,5a4c543a-27d5-423b-a4d0-3952ea2817af,5a4c543a-27d5-423b-a4d0-3952ea2817af,1,0,6cc8da97-8752-4c6b-88ef-f7e8ff5dd693,6cc8da97-8752-4c6b-88ef-f7e8ff5dd693,1,0,8683dfa2-0ad9-4345-85e8-a6d2e40881e5,8683dfa2-0ad9-4345-85e8-a6d2e40881e5,1,0,e70ec2f5-5723-4fb0-9b81-c0979943a46a,e70ec2f5-5723-4fb0-9b81-c0979943a46a,1,0,eb125af7-4e19-4235-8d03-361b60a8f68a,eb125af7-4e19-4235-8d03-361b60a8f68a,1,0,bcd1077a-2d19-4bc1-bded-a85818765ac1,bcd1077a-2d19-4bc1-bded-a85818765ac1,1,0,b79ce000-28f7-4630-a5a3-cecb9ef8a0a1,b79ce000-28f7-4630-a5a3-cecb9ef8a0a1,1,0,3ff0b4e6-6afa-4aa8-a20e-84a9d2d74f86,3ff0b4e6-6afa-4aa8-a20e-84a9d2d74f86,1,0,eb747bc2-f81f-4ec3-b216-2457a87683ae,eb747bc2-f81f-4ec3-b216-2457a87683ae,1,0,0ad77f2c-24db-4fda-a79f-984c0c8beac0,0ad77f2c-24db-4fda-a79f-984c0c8beac0,1,0,cfb3ea4b-a092-4c5f-aef0-a83ff8829d24,cfb3ea4b-a092-4c5f-aef0-a83ff8829d24,1,0,02bc23cf-c600-4470-bb84-59cdac35eea9,02bc23cf-c600-4470-bb84-59cdac35eea9,1,0,b7753aea-3798-4be9-b9ce-e4145fbea58a,b7753aea-3798-4be9-b9ce-e4145fbea58a,1,0,ce3d12b8-da77-4ac5-a7bf-a02809ed3f1e,ce3d12b8-da77-4ac5-a7bf-a02809ed3f1e,1,0,cf3819dd-6564-47cd-9b22-790433ca9607,cf3819dd-6564-47cd-9b22-790433ca9607,1,0,231f7349-0e98-497a-9df3-8123a5ea20f0,231f7349-0e98-497a-9df3-8123a5ea20f0,1,0,0c7790f8-db18-4d1d-aa34-d0c7097d0576,0c7790f8-db18-4d1d-aa34-d0c7097d0576,1,0,926b936a-4147-40ef-92c7-008713d5a8b4,926b936a-4147-40ef-92c7-008713d5a8b4,1,0,3446ba39-fbd6-462f-af51-add3173ce1fc,3446ba39-fbd6-462f-af51-add3173ce1fc,1,0,7510d830-cf29-408c-9f2a-77e30382beeb,7510d830-cf29-408c-9f2a-77e30382beeb,1,0,133d9c01-751e-47a1-93a5-46cfa1b85a51,133d9c01-751e-47a1-93a5-46cfa1b85a51,1,0,42b81035-bc9b-4b8a-b1ee-55c24c6bb875,42b81035-bc9b-4b8a-b1ee-55c24c6bb875,1,0,c4e58e2b-2a73-44f2-8a4b-dded01944c35,c4e58e2b-2a73-44f2-8a4b-dded01944c35,1,0,ada738c2-8f68-4f25-afc2-ad88164f5fea,ada738c2-8f68-4f25-afc2-ad88164f5fea,1,0,683cc434-af64-4afb-835b-c20e7e17c32e,683cc434-af64-4afb-835b-c20e7e17c32e,1,0,19aad3e9-704b-4057-8a1d-e6131af2da2d,19aad3e9-704b-4057-8a1d-e6131af2da2d,1,0,6522829d-bb7f-4bac-9c66-21d936d9d3c6,6522829d-bb7f-4bac-9c66-21d936d9d3c6,1,0,aa4c2d2c-b1f8-4525-bdef-24b0dce4724a,aa4c2d2c-b1f8-4525-bdef-24b0dce4724a,1,0,f7c432c0-ee57-40f3-98c2-b94401042395,f7c432c0-ee57-40f3-98c2-b94401042395,1,0,b7dd0b15-bbf0-4959-8d63-fb00c2519d3d,b7dd0b15-bbf0-4959-8d63-fb00c2519d3d,1,0,d58fea2a-34b7-4404-9939-faf5bf1f19c6,d58fea2a-34b7-4404-9939-faf5bf1f19c6,1,0,b458ed6f-e0d2-4830-8005-16f08612c76a,b458ed6f-e0d2-4830-8005-16f08612c76a,1,0,988787d0-4704-4aa7-b02f-96492784d667,988787d0-4704-4aa7-b02f-96492784d667,1,0,66d837ed-be23-4e0a-8cbc-c918f234998d,66d837ed-be23-4e0a-8cbc-c918f234998d,1,0,010bcfe3-a299-4333-8faa-96b08356a097,010bcfe3-a299-4333-8faa-96b08356a097,1,0,4735b8d0-5b06-4640-9d68-380ba4165c01,4735b8d0-5b06-4640-9d68-380ba4165c01,1,0,adcaecde-1977-4c6d-a204-12df7d9915e2,adcaecde-1977-4c6d-a204-12df7d9915e2,1,0,348376e0-6e02-4360-95ea-f23086cabd55,348376e0-6e02-4360-95ea-f23086cabd55,1,0,d7cdbc04-3eaa-45b6-b71b-0340bf029752,d7cdbc04-3eaa-45b6-b71b-0340bf029752,1,0,f6d562ac-6bc8-4e82-9ac0-b6fc4ed41677,f6d562ac-6bc8-4e82-9ac0-b6fc4ed41677,1,0,e954636b-2410-4602-8dfd-fde852998f8b,e954636b-2410-4602-8dfd-fde852998f8b,1,0,00f82519-e522-4cf2-92ab-19a13f38baa7,00f82519-e522-4cf2-92ab-19a13f38baa7,1,0,b59f1272-69ab-4d6a-8e4b-43bfe8231c8c,b59f1272-69ab-4d6a-8e4b-43bfe8231c8c,1,0,33df37df-43d0-40d7-95dd-23655b1fdf81,33df37df-43d0-40d7-95dd-23655b1fdf81,1,0,cef5c343-440f-475e-98f1-28da65eabcf3,cef5c343-440f-475e-98f1-28da65eabcf3,1,0,979378ce-8455-4761-ae83-10e747a6656d,979378ce-8455-4761-ae83-10e747a6656d,1,0,de3cb87d-d08f-4f45-aca5-c4c526772eeb,de3cb87d-d08f-4f45-aca5-c4c526772eeb,1,0,509770b5-ddaf-477b-a79c-cec8afbaf9bc,509770b5-ddaf-477b-a79c-cec8afbaf9bc,1,0,25d72d6e-1a64-4366-85af-5789ed7806d3,25d72d6e-1a64-4366-85af-5789ed7806d3,1,0,eedf57b6-8fd6-4e80-bc0c-1583196b34eb,eedf57b6-8fd6-4e80-bc0c-1583196b34eb,1,0,ec7cc726-82a7-455e-b302-0e024d60bbab,ec7cc726-82a7-455e-b302-0e024d60bbab,1,0,1bae5c60-1027-4ff7-a607-d57da0d6e4f7,1bae5c60-1027-4ff7-a607-d57da0d6e4f7,1,0,3d18a46c-1d64-4bec-9a22-07a736abbf8f,3d18a46c-1d64-4bec-9a22-07a736abbf8f,1,0,d5c64b8e-1184-4ec5-8f02-87e037df0034,d5c64b8e-1184-4ec5-8f02-87e037df0034,1,0,6b5fb7ab-d010-483b-939d-c9f9e2d8884f,6b5fb7ab-d010-483b-939d-c9f9e2d8884f,1,0,5b0f5e4e-ef26-415b-830a-6623688e8a78,5b0f5e4e-ef26-415b-830a-6623688e8a78,1,0,b33693ac-6bc1-47e1-81ab-a3278d3596a3,b33693ac-6bc1-47e1-81ab-a3278d3596a3,1,0,caebab45-2be3-4f5d-b06d-d91c5a4122a0,caebab45-2be3-4f5d-b06d-d91c5a4122a0,1,0,7a56e6ee-3518-491f-b5af-4f1aca2462c0,7a56e6ee-3518-491f-b5af-4f1aca2462c0,1,0,61d03f9f-834b-4077-b5c7-0de85ef007d3,61d03f9f-834b-4077-b5c7-0de85ef007d3,1,0,1683afaf-db32-4267-b1d1-959836c50fb5,1683afaf-db32-4267-b1d1-959836c50fb5,1,0,1e50e4de-f091-4ccc-ba2d-8a526c20351e,1e50e4de-f091-4ccc-ba2d-8a526c20351e,1,0,7671eebd-cdf4-43c6-8d0d-2dff2f8ce975,7671eebd-cdf4-43c6-8d0d-2dff2f8ce975,1,0,83342c37-30b6-4f39-a2df-7aab425eb3bf,83342c37-30b6-4f39-a2df-7aab425eb3bf,1,0,896d8858-5574-4e36-abc0-92a2f0b6e905,896d8858-5574-4e36-abc0-92a2f0b6e905,1,0,8767bf87-b364-4e16-8371-40ae96bff7c0,8767bf87-b364-4e16-8371-40ae96bff7c0,1,0,65ba2d12-ce10-4f27-93ba-0668592edfce,65ba2d12-ce10-4f27-93ba-0668592edfce,1,0,45dba1f4-f080-4b99-abe4-63125f84f580,45dba1f4-f080-4b99-abe4-63125f84f580,1,0,24d0e61f-c9af-45f0-b6dd-00d1fefa1720,24d0e61f-c9af-45f0-b6dd-00d1fefa1720,1,0,75088623-2b34-499a-85c9-0c3f78448cf3,75088623-2b34-499a-85c9-0c3f78448cf3,1,0,f151768d-f840-4116-8fb5-bbcc0b5dd2bc,f151768d-f840-4116-8fb5-bbcc0b5dd2bc,1,0,dd6581f7-82fc-469c-ae2f-d270d810e843,dd6581f7-82fc-469c-ae2f-d270d810e843,1,0,ca0258bd-7408-45a6-8c61-6097090dad4a,ca0258bd-7408-45a6-8c61-6097090dad4a,1,0,5080a8ca-a75e-4f4f-885b-62f64434f0f2,5080a8ca-a75e-4f4f-885b-62f64434f0f2,1,0,3adbff51-6a82-40e7-9585-a030b06d0632,3adbff51-6a82-40e7-9585-a030b06d0632,1,0,c27036c4-7077-4464-b24a-46b37db4bfcf,c27036c4-7077-4464-b24a-46b37db4bfcf,1,0,99ce0c09-eae0-430b-9a20-46d96503876b,99ce0c09-eae0-430b-9a20-46d96503876b,1,0,128e9f84-5f92-4ed6-afb9-86b4b244ae58,128e9f84-5f92-4ed6-afb9-86b4b244ae58,1,0,5bff11e0-07d0-43eb-b02d-5dc6f2c9bab1,5bff11e0-07d0-43eb-b02d-5dc6f2c9bab1,1,0,13b4853f-d83d-4e30-80a4-704b740cf76f,13b4853f-d83d-4e30-80a4-704b740cf76f,1,0,32e9be21-ef2f-46fd-96ff-2ba143a8c1d9,32e9be21-ef2f-46fd-96ff-2ba143a8c1d9,1,0,9c81736c-25ce-42eb-9e7a-1fc014cbbc7d,9c81736c-25ce-42eb-9e7a-1fc014cbbc7d,1,0,655ac12f-a0e4-46fb-b11a-eaba635edfae,655ac12f-a0e4-46fb-b11a-eaba635edfae,1,0,7bccc0c6-bc80-4672-8190-4fc94cea4249,7bccc0c6-bc80-4672-8190-4fc94cea4249,1,0,82ebe1f1-2c36-4152-bc02-b8085ad614e3,82ebe1f1-2c36-4152-bc02-b8085ad614e3,1,0,68259658-c149-4a1b-b1d5-b15b232ee334,68259658-c149-4a1b-b1d5-b15b232ee334,1,0,301a9f28-2cd9-4364-9b57-a22b9e6553fa,301a9f28-2cd9-4364-9b57-a22b9e6553fa,1,0,4948d3d3-9267-4f9c-8260-5ebb63ce281f,4948d3d3-9267-4f9c-8260-5ebb63ce281f,1,0,051bc689-9357-463a-93db-55994af23a88,051bc689-9357-463a-93db-55994af23a88,1,0,2d4a8fe5-3371-42f9-8052-ec78d4df0da1,2d4a8fe5-3371-42f9-8052-ec78d4df0da1,1,0,4be19ad6-691e-4224-86ec-bc4d76a15525,4be19ad6-691e-4224-86ec-bc4d76a15525,1,0,cf9ebddd-d421-475f-8d57-6c45d817c4ec,cf9ebddd-d421-475f-8d57-6c45d817c4ec,1,0,6718e0bf-8a9d-4eab-88fd-9cd5f2bc9e58,6718e0bf-8a9d-4eab-88fd-9cd5f2bc9e58,1,0,2811d95d-6ce9-4066-99cb-ea6894b18497,2811d95d-6ce9-4066-99cb-ea6894b18497,1,0,2fcee659-7bd7-4181-9991-ce4723d485cd,2fcee659-7bd7-4181-9991-ce4723d485cd,1,0,79dc0e69-6a17-428f-b36f-9056d0f6864c,79dc0e69-6a17-428f-b36f-9056d0f6864c,1,0,77a94ffd-4847-4180-a587-31dd3c95f62a,77a94ffd-4847-4180-a587-31dd3c95f62a,1,0,de8bb46d-127e-40e6-af46-a7385a37819b,de8bb46d-127e-40e6-af46-a7385a37819b,1,0,95b5ac72-941c-4f6b-aa2d-ce2a1b616d8d,95b5ac72-941c-4f6b-aa2d-ce2a1b616d8d,1,0,ea557343-ae0f-4a2c-a298-573c952a7d63,ea557343-ae0f-4a2c-a298-573c952a7d63,1,0,11d02ccf-173f-447a-aae1-79f373e46e53,11d02ccf-173f-447a-aae1-79f373e46e53,1,0,a16ebbff-31e2-4c6f-99f5-3bd733c18117,a16ebbff-31e2-4c6f-99f5-3bd733c18117,1,0,d5296815-e4e5-4e79-af97-c4f5afb061cb,d5296815-e4e5-4e79-af97-c4f5afb061cb,1,0,9832d04b-cc86-4399-9129-c0c8f4745973,9832d04b-cc86-4399-9129-c0c8f4745973,1,0,ec745935-1cc7-491d-8b60-e42b3f8c618d,ec745935-1cc7-491d-8b60-e42b3f8c618d,1,0,c642227b-d804-4047-a90b-40159660ba4a,c642227b-d804-4047-a90b-40159660ba4a,1,0,99b1ad67-29aa-4550-b70b-685cd44c27d4,99b1ad67-29aa-4550-b70b-685cd44c27d4,1,0,c54578df-a852-445a-94a6-a6654bb1e3a0,c54578df-a852-445a-94a6-a6654bb1e3a0,1,0,18cbf6dc-ec5c-4181-855a-fe779e3f1ad8,18cbf6dc-ec5c-4181-855a-fe779e3f1ad8,1,0,177c8cf2-27ba-4866-8e0f-cdbb611c84ac,177c8cf2-27ba-4866-8e0f-cdbb611c84ac,1,0,f014ebeb-5f33-430f-ae80-96ba7732d931,f014ebeb-5f33-430f-ae80-96ba7732d931,1,0,7782051c-4bc2-4fc2-bfa5-256bd2911abf,7782051c-4bc2-4fc2-bfa5-256bd2911abf,1,0,2a805bb1-54b3-4b0e-ae7f-ad3f9f18ee24,2a805bb1-54b3-4b0e-ae7f-ad3f9f18ee24,1,0,56fd938d-e0df-4e16-a4ad-7eb6d6cc538f,56fd938d-e0df-4e16-a4ad-7eb6d6cc538f,1,0,7c49fa86-1c65-4959-9331-c0f4852934b3,7c49fa86-1c65-4959-9331-c0f4852934b3,1,0,f744e94b-4359-4516-b682-f15775066e7c,f744e94b-4359-4516-b682-f15775066e7c,1,0,ad37361d-a380-42bd-8cae-b80164415edc,ad37361d-a380-42bd-8cae-b80164415edc,1,0,700cedcb-7625-4ed2-93fb-11ae54317367,700cedcb-7625-4ed2-93fb-11ae54317367,1,0,6fd83c31-c8eb-4f01-ba99-17d5690e78fb,6fd83c31-c8eb-4f01-ba99-17d5690e78fb,1,0,19d511f0-7fad-4f81-be73-969cc192d28d,19d511f0-7fad-4f81-be73-969cc192d28d,1,0,55757755-bc7f-42fb-b55a-691137c5c8da,55757755-bc7f-42fb-b55a-691137c5c8da,1,0,f8c04e0d-a578-4350-aebc-fae5a09db697,f8c04e0d-a578-4350-aebc-fae5a09db697,1,0,ab50f182-0fbd-4e05-8580-c59779a9321e,ab50f182-0fbd-4e05-8580-c59779a9321e,1,0,6af7c3b9-9062-48b3-87b0-41558f7f11e0,6af7c3b9-9062-48b3-87b0-41558f7f11e0,1,0,6f85e902-895a-4636-a18f-ea1f7c68f544,6f85e902-895a-4636-a18f-ea1f7c68f544,1,0,ea4cf11a-edfd-439f-bd3d-a1ac088580ea,ea4cf11a-edfd-439f-bd3d-a1ac088580ea,1,0,24116097-a6ec-46d0-936e-74fcb873bd4f,24116097-a6ec-46d0-936e-74fcb873bd4f,1,0,ae7c5ade-a707-4425-864f-06cc2b2a208e,ae7c5ade-a707-4425-864f-06cc2b2a208e,1,0,ec8ee963-dbbe-497a-bc01-6a2c6a5a99cb,ec8ee963-dbbe-497a-bc01-6a2c6a5a99cb,1,0,8573cd5f-0574-4109-b841-567dfd578931,8573cd5f-0574-4109-b841-567dfd578931,1,0,67d95ce8-17af-4b2f-8dfd-2fc902aa9e1d,67d95ce8-17af-4b2f-8dfd-2fc902aa9e1d,1,0,2f60ba06-8830-472d-82e4-9ba1f00c311d,2f60ba06-8830-472d-82e4-9ba1f00c311d,1,0,42872a0b-999d-4a38-a56e-e67e24c0874e,42872a0b-999d-4a38-a56e-e67e24c0874e,1,0,bf36279c-1a85-4c26-9505-a142cba581a0,bf36279c-1a85-4c26-9505-a142cba581a0,1,0,a39c719e-349a-46b7-ae4e-aeaa3e4bebe0,a39c719e-349a-46b7-ae4e-aeaa3e4bebe0,1,0,8e7f7a3e-efa9-4fa5-94c3-4cfce5c8f5ed,8e7f7a3e-efa9-4fa5-94c3-4cfce5c8f5ed,1,0,ec3cf7eb-d1c1-400e-b3f7-11cf304d8e44,ec3cf7eb-d1c1-400e-b3f7-11cf304d8e44,1,0,acea385d-9935-4365-813b-8a121f57cd52,acea385d-9935-4365-813b-8a121f57cd52,1,0,87606a5a-2682-4f1e-ae25-166be2357541,87606a5a-2682-4f1e-ae25-166be2357541,1,0,98652ae9-349d-48f2-8230-b8960e5a495f,98652ae9-349d-48f2-8230-b8960e5a495f,1,0,7691d0bf-e099-4d22-9813-50386f033c46,7691d0bf-e099-4d22-9813-50386f033c46,1,0,c4867f0d-aef9-467e-86e0-5534dc5fa6d7,c4867f0d-aef9-467e-86e0-5534dc5fa6d7,1,0,47c4de6c-9533-4342-8b80-6d31f106742f,47c4de6c-9533-4342-8b80-6d31f106742f,1,0,5fd3f2c8-52cf-411e-822b-a1d417f1c4eb,5fd3f2c8-52cf-411e-822b-a1d417f1c4eb,1,0,32064ccf-dfb1-4dd4-a51a-f505bc370513,32064ccf-dfb1-4dd4-a51a-f505bc370513,1,0,cfa4be49-1a56-4a07-9f00-ab258d7dec5b,cfa4be49-1a56-4a07-9f00-ab258d7dec5b,1,0,72f1df0f-1b00-4873-87ee-7173a266ba19,72f1df0f-1b00-4873-87ee-7173a266ba19,1,0,bb75cb5e-d007-4d1e-a6d4-6bda95c06397,bb75cb5e-d007-4d1e-a6d4-6bda95c06397,1,0,43c621c4-474e-4060-bc1f-3b1c8a59acbd,43c621c4-474e-4060-bc1f-3b1c8a59acbd,1,0,78187acb-b8c2-4fcf-b967-56da82d6b77c,78187acb-b8c2-4fcf-b967-56da82d6b77c,1,0,5f71053f-4f50-44c7-bba8-254861f045ca,5f71053f-4f50-44c7-bba8-254861f045ca,1,0,88d28c9d-48af-46ff-9265-af46d10fd0aa,88d28c9d-48af-46ff-9265-af46d10fd0aa,1,0,63cb3bbe-5271-45a6-a3c0-c8960c707153,63cb3bbe-5271-45a6-a3c0-c8960c707153,1,0,12f96b1b-fc85-4638-9f70-a2e8196587a1,12f96b1b-fc85-4638-9f70-a2e8196587a1,1,0,975bcc47-f4c2-440e-8c3f-4fa42094405c,975bcc47-f4c2-440e-8c3f-4fa42094405c,1,0,1f260296-36b8-4c74-a1e7-5a1d7a23c0bd,1f260296-36b8-4c74-a1e7-5a1d7a23c0bd,1,0,f353fc01-89a8-495b-8c65-6e1719a172a5,f353fc01-89a8-495b-8c65-6e1719a172a5,1,0,4800d51e-8229-4384-ab8d-d1d36cb713f6,4800d51e-8229-4384-ab8d-d1d36cb713f6,1,0,7a59debd-f48b-4f3a-a5e4-05bd7a6e4306,7a59debd-f48b-4f3a-a5e4-05bd7a6e4306,1,0,5353f9f9-abce-4f1b-8ba4-6f185b113b24,5353f9f9-abce-4f1b-8ba4-6f185b113b24,1,0,f68c3405-4ac5-48ab-837d-68e79669be1b,f68c3405-4ac5-48ab-837d-68e79669be1b,1,0,a9b7aa5e-a241-460e-a9dd-981031564377,a9b7aa5e-a241-460e-a9dd-981031564377,1,0,a9ad0892-ed63-4f39-9ba9-31523114365d,a9ad0892-ed63-4f39-9ba9-31523114365d,1,0,ce5abb2b-1586-4972-9a59-8812a0ebc905,ce5abb2b-1586-4972-9a59-8812a0ebc905,1,0,0892456e-4ebf-46ee-a864-3f100510311f,0892456e-4ebf-46ee-a864-3f100510311f,1,0,7ab652b3-635b-4415-97e8-bd0a4aec1c76,7ab652b3-635b-4415-97e8-bd0a4aec1c76,1,0,6cb9cce0-a65a-4280-bae8-69e73b5fd859,6cb9cce0-a65a-4280-bae8-69e73b5fd859,1,0,dedda468-b754-4cf9-bb16-c5d5b1a7d6b7,dedda468-b754-4cf9-bb16-c5d5b1a7d6b7,1,0,8c77d038-4581-4468-b17c-baf6a0d6a039,8c77d038-4581-4468-b17c-baf6a0d6a039,1,0,77ac6bb4-0f72-4d35-9181-4ba58d4606ac,77ac6bb4-0f72-4d35-9181-4ba58d4606ac,1,0,43b9ca4d-8d3f-4fc7-9eb8-84b357c438cb,43b9ca4d-8d3f-4fc7-9eb8-84b357c438cb,1,0,1e439352-5b22-4aed-9b4c-e1648b1f68cc,1e439352-5b22-4aed-9b4c-e1648b1f68cc,1,0,514c3fec-0331-49c6-a6e8-2d826179fe96,514c3fec-0331-49c6-a6e8-2d826179fe96,1,0,ce8e278f-a368-4286-b479-ebad3b23de9c,ce8e278f-a368-4286-b479-ebad3b23de9c,1,0,ff21a413-36bb-4119-8737-80e26c8c875e,ff21a413-36bb-4119-8737-80e26c8c875e,1,0,de94d05d-3ec7-4139-a70b-92d6771e7e72,de94d05d-3ec7-4139-a70b-92d6771e7e72,1,0,3c68204f-d996-4042-b7b8-b480c6d228bd,3c68204f-d996-4042-b7b8-b480c6d228bd,1,0,89054313-4bf5-4d53-bd16-538b910d9e8b,89054313-4bf5-4d53-bd16-538b910d9e8b,1,0,275e5141-5dfa-46ed-a4af-3cad593a0868,275e5141-5dfa-46ed-a4af-3cad593a0868,1,0,028223f2-1af3-444a-8292-8b2a8bd2484d,028223f2-1af3-444a-8292-8b2a8bd2484d,1,0,b8b8f4ae-9964-4176-bcf7-67c1cb51f849,b8b8f4ae-9964-4176-bcf7-67c1cb51f849,1,0,9b179083-eb74-41cd-be0e-5fc717d974a5,9b179083-eb74-41cd-be0e-5fc717d974a5,1,0,5b3b3f45-77f0-4a02-892b-71cdc06a7ecf,5b3b3f45-77f0-4a02-892b-71cdc06a7ecf,1,0,d57a517a-3a81-484d-9b58-f24b969487de,d57a517a-3a81-484d-9b58-f24b969487de,1,0,842d43cd-76fa-4574-9523-58302d789c18,842d43cd-76fa-4574-9523-58302d789c18,1,0,04cecd2d-5913-4c37-916c-9f9dc25c158b,04cecd2d-5913-4c37-916c-9f9dc25c158b,1,0,a1285b03-7c76-4b7d-b60c-fb481f33ded9,a1285b03-7c76-4b7d-b60c-fb481f33ded9,1,0,957a1333-6d31-41ca-9812-919726965044,957a1333-6d31-41ca-9812-919726965044,1,0,36f5ac04-52fb-4cba-a067-7eae0b778599,36f5ac04-52fb-4cba-a067-7eae0b778599,1,0,11c0bc9c-be98-40c6-92da-db68968835d0,11c0bc9c-be98-40c6-92da-db68968835d0,1,0,eccf4f97-a5b5-4587-b9e3-748aa6cad7e3,eccf4f97-a5b5-4587-b9e3-748aa6cad7e3,1,0,6c6fddd7-b1d5-4c6b-badf-54b6a1018dc8,6c6fddd7-b1d5-4c6b-badf-54b6a1018dc8,1,0,1cbca86a-54f4-4db9-b8d4-827acb0ea722,1cbca86a-54f4-4db9-b8d4-827acb0ea722,1,0,fbed8c4f-29ea-4314-81e9-07bc3091f23a,fbed8c4f-29ea-4314-81e9-07bc3091f23a,1,0,46406519-638d-4313-928e-0c4afea091bb,46406519-638d-4313-928e-0c4afea091bb,1,0,6142d817-b170-423a-aa1e-28fcba1f103e,6142d817-b170-423a-aa1e-28fcba1f103e,1,0,f9758cd7-487b-47c8-a372-58fe42a9ef54,f9758cd7-487b-47c8-a372-58fe42a9ef54,1,0,9648577f-e455-461a-ba41-3e3b9b2dc553,9648577f-e455-461a-ba41-3e3b9b2dc553,1,0,8379651d-3fb1-4853-ba75-2a49d04e2d16,8379651d-3fb1-4853-ba75-2a49d04e2d16,1,0,2c35db7c-40cf-4db0-83d9-3caf329adc78,2c35db7c-40cf-4db0-83d9-3caf329adc78,1,0,8fb745b8-5fed-4c1b-90e7-2fabb025b100,8fb745b8-5fed-4c1b-90e7-2fabb025b100,1,0,085b1f70-d560-4fd7-a36c-6d71c40f6870,085b1f70-d560-4fd7-a36c-6d71c40f6870,1,0,a4ed8b24-bd23-45a7-9f34-61b25b91d0c6,a4ed8b24-bd23-45a7-9f34-61b25b91d0c6,1,0,65efaa10-3239-4f0f-a08e-88c89d9d8d5a,65efaa10-3239-4f0f-a08e-88c89d9d8d5a,1,0,93aa5247-6823-4f70-9d47-e5a0f409828a,93aa5247-6823-4f70-9d47-e5a0f409828a,1,0,48659b94-ace8-45f4-a043-6b2731ec6925,48659b94-ace8-45f4-a043-6b2731ec6925,1,0,3a8e60f9-19cb-42a6-a448-ad211261d9b8,3a8e60f9-19cb-42a6-a448-ad211261d9b8,1,0,74320602-094a-4645-b2c9-3053377a3ac3,74320602-094a-4645-b2c9-3053377a3ac3,1,0,3aba26a3-76ee-46c0-9e11-6f64fc754a0d,3aba26a3-76ee-46c0-9e11-6f64fc754a0d,1,0,b066c732-9c5f-4504-894f-96d457b0768f,b066c732-9c5f-4504-894f-96d457b0768f,1,0,9366463d-aa8a-4e89-86d8-c7f746f9551b,9366463d-aa8a-4e89-86d8-c7f746f9551b,1,0,e25da569-d435-45b2-b4e8-fc76d7f1c8df,e25da569-d435-45b2-b4e8-fc76d7f1c8df,1,0,a51a7f57-9c52-4457-819c-13e1b6f886e1,a51a7f57-9c52-4457-819c-13e1b6f886e1,1,0,7d08daba-5e36-4ce3-8a70-17750959b89e,7d08daba-5e36-4ce3-8a70-17750959b89e,1,0,e2c2d915-ae50-4fa0-add3-26ad7dc75efb,e2c2d915-ae50-4fa0-add3-26ad7dc75efb,1,0,39344a8c-2662-48ff-937b-12951bb268fb,39344a8c-2662-48ff-937b-12951bb268fb,1,0,b577663f-ead2-4b18-a4f6-f7f303e89319,b577663f-ead2-4b18-a4f6-f7f303e89319,1,0,43dc335f-5503-47ab-9c6b-0b4c6ab13f57,43dc335f-5503-47ab-9c6b-0b4c6ab13f57,1,0,6cc0a1d7-01eb-4af6-b4ed-4002e2316080,6cc0a1d7-01eb-4af6-b4ed-4002e2316080,1,0,72663843-4010-42ed-989b-0b58bf9f7146,72663843-4010-42ed-989b-0b58bf9f7146,1,0,79da4490-f0b0-48b5-b435-3b2c9ffb0eb3,79da4490-f0b0-48b5-b435-3b2c9ffb0eb3,1,0,3adcceea-867e-4b88-a633-4f8d4ccb43c0,3adcceea-867e-4b88-a633-4f8d4ccb43c0,1,0,a132189c-6584-4bb1-9cfd-1415cd83228a,a132189c-6584-4bb1-9cfd-1415cd83228a,1,0,7ba50e13-0a78-4cca-821f-006b1c83b0b0,7ba50e13-0a78-4cca-821f-006b1c83b0b0,1,0,a3670f95-5abe-49ee-8ea5-d7e4438801ba,a3670f95-5abe-49ee-8ea5-d7e4438801ba,1,0,4443dea1-5143-4e76-97a7-c35dbe1665e4,4443dea1-5143-4e76-97a7-c35dbe1665e4,1,0,0d780521-0767-425a-b44d-315d2dc42d04,0d780521-0767-425a-b44d-315d2dc42d04,1,0,c5b1572d-28f5-42f3-b2e0-8b54f091642e,c5b1572d-28f5-42f3-b2e0-8b54f091642e,1,0,0986c1b6-b677-428d-b49f-a93e40e77171,0986c1b6-b677-428d-b49f-a93e40e77171,1,0,b9c41558-8fe7-45f6-bcb0-5ea3a35264cf,b9c41558-8fe7-45f6-bcb0-5ea3a35264cf,1,0,597c1f9b-3cbd-42bd-b819-f29b3a3f073a,597c1f9b-3cbd-42bd-b819-f29b3a3f073a,1,0,b6662b2e-7e93-4eaa-9e4b-b5647285932b,b6662b2e-7e93-4eaa-9e4b-b5647285932b,1,0,4a180f2c-dc54-4591-8f62-f236d1e07799,4a180f2c-dc54-4591-8f62-f236d1e07799,1,0,3f1578ba-3d55-4eff-bbdd-6329dd5060d5,3f1578ba-3d55-4eff-bbdd-6329dd5060d5,1,0,a9a51e79-4c79-4a43-931b-c0321c1cd65b,a9a51e79-4c79-4a43-931b-c0321c1cd65b,1,0,e8644d90-ec2f-4ac0-8fbd-a7aa95c9bcec,e8644d90-ec2f-4ac0-8fbd-a7aa95c9bcec,1,0,048a1d86-bcf5-47aa-a36c-eb20c3f9f7e5,048a1d86-bcf5-47aa-a36c-eb20c3f9f7e5,1,0,22f2696e-0ac1-4a74-bca9-987b267b2b59,22f2696e-0ac1-4a74-bca9-987b267b2b59,1,0,d705cacc-3485-46d7-9ff4-48c3c0757c81,d705cacc-3485-46d7-9ff4-48c3c0757c81,1,0,98f043ea-633c-4a03-a56f-efbc9e6ef288,98f043ea-633c-4a03-a56f-efbc9e6ef288,1,0,2033b92a-0750-478a-a12d-cf4f74d0a9da,2033b92a-0750-478a-a12d-cf4f74d0a9da,1,0,92fa2196-d8e5-45f9-9d2e-59d837b163ea,92fa2196-d8e5-45f9-9d2e-59d837b163ea,1,0,25dc2290-e283-4449-81c1-1ce15b58067f,25dc2290-e283-4449-81c1-1ce15b58067f,1,0,c534a865-a17f-41e7-88b9-c6af89c9d202,c534a865-a17f-41e7-88b9-c6af89c9d202,1,0,0214bfe6-fb98-4487-8d98-6b10d24a3c4d,0214bfe6-fb98-4487-8d98-6b10d24a3c4d,1,0,0127937c-94c0-43fe-9630-cc2ec6904ad8,0127937c-94c0-43fe-9630-cc2ec6904ad8,1,0,ce7c87b8-e4ab-47e2-b70a-7dcae8bfb8a8,ce7c87b8-e4ab-47e2-b70a-7dcae8bfb8a8,1,0,8df5b3cd-7788-4198-a530-e88be83f1cdf,8df5b3cd-7788-4198-a530-e88be83f1cdf,1,0,ffaeea66-66d5-4741-a9b5-875afebfce7f,ffaeea66-66d5-4741-a9b5-875afebfce7f,1,0,8f6b6576-1d21-46c1-905c-f1685f0eee7a,8f6b6576-1d21-46c1-905c-f1685f0eee7a,1,0,06827a85-a9d1-472e-8087-906ff94a4adc,06827a85-a9d1-472e-8087-906ff94a4adc,1,0,bb3954de-5eaa-4ec0-931b-a1a9f233c120,bb3954de-5eaa-4ec0-931b-a1a9f233c120,1,0,10689022-cbbb-4134-901f-1e778fac2693,10689022-cbbb-4134-901f-1e778fac2693,1,0,f14e363f-512b-4658-afb5-10c3be5ff870,f14e363f-512b-4658-afb5-10c3be5ff870,1,0,4d211427-4494-45d4-ae84-38235f35eaef,4d211427-4494-45d4-ae84-38235f35eaef,1,0,f7784993-d95c-4652-9894-3cf67aeabeb8,f7784993-d95c-4652-9894-3cf67aeabeb8,1,0,485d8b29-79b1-4798-a742-75546ddb7262,485d8b29-79b1-4798-a742-75546ddb7262,1,0,e248de85-8f76-4471-ab3d-d35514b69b78,e248de85-8f76-4471-ab3d-d35514b69b78,1,0,8928ce42-2b12-402f-8115-98b5655db556,8928ce42-2b12-402f-8115-98b5655db556,1,0,9b62c109-7b52-4803-83e6-a5413cd00984,9b62c109-7b52-4803-83e6-a5413cd00984,1,0,cddb4bb0-22ec-49ae-b332-62d7307b93fe,cddb4bb0-22ec-49ae-b332-62d7307b93fe,1,0,72876709-806e-4406-b9c1-b8117f4d750a,72876709-806e-4406-b9c1-b8117f4d750a,1,0,b1efafef-74cc-4d36-a32c-b472712f11f3,b1efafef-74cc-4d36-a32c-b472712f11f3,1,0,ceb05584-1ecd-4681-8575-c0452f95b685,ceb05584-1ecd-4681-8575-c0452f95b685,1,0,03d08c14-f814-4e12-8f96-020c36cca2bf,03d08c14-f814-4e12-8f96-020c36cca2bf,1,0,a1a7aab6-cf35-42ce-97bb-c112638a2748,a1a7aab6-cf35-42ce-97bb-c112638a2748,1,0,c09df096-f9cc-4b2f-a44e-69147339dc8c,c09df096-f9cc-4b2f-a44e-69147339dc8c,1,0,aa4e4f39-3080-4365-89aa-00b030e26eec,aa4e4f39-3080-4365-89aa-00b030e26eec,1,0,84c1ba1c-e5d6-46ec-98a3-589499162e67,84c1ba1c-e5d6-46ec-98a3-589499162e67,1,0,ae910da8-b007-42bb-b41b-633dda961a0d,ae910da8-b007-42bb-b41b-633dda961a0d,1,0,f6cece0a-e20d-4c2a-a2f3-f25212b0d672,f6cece0a-e20d-4c2a-a2f3-f25212b0d672,1,0,8c1d82ad-9c7f-4556-9e53-c13341cc8206,8c1d82ad-9c7f-4556-9e53-c13341cc8206,1,0,28027dd1-2ce9-4b33-88e9-83588f939f18,28027dd1-2ce9-4b33-88e9-83588f939f18,1,0,2df51e39-a084-425c-8454-daa35b592c80,2df51e39-a084-425c-8454-daa35b592c80,1,0,269af6e0-193a-45a5-b5b9-cc886c617db0,269af6e0-193a-45a5-b5b9-cc886c617db0,1,0,c93ebe3e-6608-4150-8b26-93e8f8cb08bf,c93ebe3e-6608-4150-8b26-93e8f8cb08bf,1,0,4045be3f-acf8-46e7-b341-50e43061b3ff,4045be3f-acf8-46e7-b341-50e43061b3ff,1,0,5f69bb2a-c544-4e15-a86b-616ec73d012b,5f69bb2a-c544-4e15-a86b-616ec73d012b,1,0,aed6eda6-07f1-48a2-81f4-8685216ec311,aed6eda6-07f1-48a2-81f4-8685216ec311,1,0,57f8a606-4f73-458e-aca4-0c0d5d713fea,57f8a606-4f73-458e-aca4-0c0d5d713fea,1,0,7382c9ad-82da-4359-9335-3eb32c8e10e6,7382c9ad-82da-4359-9335-3eb32c8e10e6,1,0,66ae4013-378f-4290-b03e-5d88f3d16765,66ae4013-378f-4290-b03e-5d88f3d16765,1,0,acc778b6-29ad-47dd-b148-ee66efb104d5,acc778b6-29ad-47dd-b148-ee66efb104d5,1,0,ca99eea3-74d6-4264-bd83-6c7b77ea3f17,ca99eea3-74d6-4264-bd83-6c7b77ea3f17,1,0,86f962a3-f97f-42f3-8338-4c80de3957ee,86f962a3-f97f-42f3-8338-4c80de3957ee,1,0,aff8c0b5-bb53-4ba1-9c16-2c51bd0092ca,aff8c0b5-bb53-4ba1-9c16-2c51bd0092ca,1,0,a51429e9-238b-44b8-9793-da6cebcd4320,a51429e9-238b-44b8-9793-da6cebcd4320,1,0,ef1a34fa-29c5-4a7e-8f7c-ee3e6e67a345,ef1a34fa-29c5-4a7e-8f7c-ee3e6e67a345,1,0,9026e00d-1d1c-4f48-963b-6b5fcf7edeec,9026e00d-1d1c-4f48-963b-6b5fcf7edeec,1,0,cceb5a44-dea4-4b88-8e79-0b9674992b31,cceb5a44-dea4-4b88-8e79-0b9674992b31,1,0,1b4dc71d-e454-4d1a-a302-ac1726a31f63,1b4dc71d-e454-4d1a-a302-ac1726a31f63,1,0,fa96d6f9-1770-41b4-990d-21b53206454a,fa96d6f9-1770-41b4-990d-21b53206454a,1,0,2ed8bce3-8325-4b3e-b5d8-a4e6039d16b9,2ed8bce3-8325-4b3e-b5d8-a4e6039d16b9,1,0,8b987786-276d-41f9-9a76-b2bf5522568c,8b987786-276d-41f9-9a76-b2bf5522568c,1,0,2253b155-a656-4fa3-bfd0-771ac5bf4cd7,2253b155-a656-4fa3-bfd0-771ac5bf4cd7,1,0,ff13c826-11ed-49ad-b4f9-eab0648cdc95,ff13c826-11ed-49ad-b4f9-eab0648cdc95,1,0,dda40f8b-1b12-4ac7-b228-e340ae1831a9,dda40f8b-1b12-4ac7-b228-e340ae1831a9,1,0,baf54006-7a8f-4233-b7a7-016dd2971e05,baf54006-7a8f-4233-b7a7-016dd2971e05,1,0,a64b15fa-fc34-43fe-a366-d27c0f1c3df2,a64b15fa-fc34-43fe-a366-d27c0f1c3df2,1,0,8b13e848-8fd3-4326-bd18-5a5b12ed3dc5,8b13e848-8fd3-4326-bd18-5a5b12ed3dc5,1,0,b9a6b053-2b93-4946-9531-040d3131dcc5,b9a6b053-2b93-4946-9531-040d3131dcc5,1,0,9f36d26e-aa71-44d5-ac27-9aaa643555c3,9f36d26e-aa71-44d5-ac27-9aaa643555c3,1,0,87b8b5d7-d3d6-450a-adb1-5c875257ec80,87b8b5d7-d3d6-450a-adb1-5c875257ec80,1,0,e3640efe-e46c-4588-b251-dda23bf0641d,e3640efe-e46c-4588-b251-dda23bf0641d,1,0,b46b5090-5eb1-4950-9031-8b43f611fa9c,b46b5090-5eb1-4950-9031-8b43f611fa9c,1,0,522a4bff-34d3-46b2-8c66-0b30d881a86e,522a4bff-34d3-46b2-8c66-0b30d881a86e,1,0,3d7908b1-bd82-475e-8488-fafcbe3458ee,3d7908b1-bd82-475e-8488-fafcbe3458ee,1,0,8a6cdb21-4eff-46dc-b928-738199f54581,8a6cdb21-4eff-46dc-b928-738199f54581,1,0,1bac040b-83e4-402f-a9bf-d6a7b10c91e0,1bac040b-83e4-402f-a9bf-d6a7b10c91e0,1,0,e9c632b0-7977-4e44-ac56-882617ad7cdc,e9c632b0-7977-4e44-ac56-882617ad7cdc,1,0,e84acba7-7e0f-43e8-a545-6e53d529d5d4,e84acba7-7e0f-43e8-a545-6e53d529d5d4,1,0,3b089d90-7ece-4b74-a4dc-e436d9d31b3b,3b089d90-7ece-4b74-a4dc-e436d9d31b3b,1,0,0f9c08c2-e7fa-4ea0-a935-f927feb01131,0f9c08c2-e7fa-4ea0-a935-f927feb01131,1,0,6086d53f-f1b2-4126-ab46-64705fe63b87,6086d53f-f1b2-4126-ab46-64705fe63b87,1,0,62a6b1c9-8288-4fa1-a17d-241b85a5e4b0,62a6b1c9-8288-4fa1-a17d-241b85a5e4b0,1,0,57069b56-f732-41c0-9a75-cbdb1e88556c,57069b56-f732-41c0-9a75-cbdb1e88556c,1,0,cf80ff0d-9add-4fa5-bba2-00d43fce5ed8,cf80ff0d-9add-4fa5-bba2-00d43fce5ed8,1,0,d927f1f0-df5f-44a1-bbfd-152ebf1559dd,d927f1f0-df5f-44a1-bbfd-152ebf1559dd,1,0,7ce7aec1-fa24-4dd7-8754-8124e78521bf,7ce7aec1-fa24-4dd7-8754-8124e78521bf,1,0,8b115575-9d8b-42f8-9ec8-0825a4397c7f,8b115575-9d8b-42f8-9ec8-0825a4397c7f,1,0,40fa5847-28f0-41ff-bfb8-ec33c8626d33,40fa5847-28f0-41ff-bfb8-ec33c8626d33,1,0,23e79add-7f1c-422a-9df1-8f76ebf805df,23e79add-7f1c-422a-9df1-8f76ebf805df,1,0,9295d88f-0865-440c-a98a-4710c50211be,9295d88f-0865-440c-a98a-4710c50211be,1,0,90aa51ae-434d-48f4-bfe3-0e1dd3aeea6f,90aa51ae-434d-48f4-bfe3-0e1dd3aeea6f,1,0,5299d417-02c6-4f73-9c0c-8c22d267ab99,5299d417-02c6-4f73-9c0c-8c22d267ab99,1,0,38ac9a13-665a-4201-b5cc-687fe4a01130,38ac9a13-665a-4201-b5cc-687fe4a01130,1,0,003f2b4f-cdaa-4830-992d-9e376949a1b4,003f2b4f-cdaa-4830-992d-9e376949a1b4,1,0,97c59096-b2dc-45d0-a580-b3018a04f9af,97c59096-b2dc-45d0-a580-b3018a04f9af,1,0,f8759ffe-4f6d-48f2-8ae6-51911c5baf4b,f8759ffe-4f6d-48f2-8ae6-51911c5baf4b,1,0,8172256e-f51e-4de0-bd07-3668785f4cb9,8172256e-f51e-4de0-bd07-3668785f4cb9,1,0,5dcd8e28-b058-405a-bac4-defab7d4b789,5dcd8e28-b058-405a-bac4-defab7d4b789,1,0,6fbf63b7-1692-495e-a8ec-bdda182997a3,6fbf63b7-1692-495e-a8ec-bdda182997a3,1,0,4a2c2478-03ad-4521-9356-09ee07fce972,4a2c2478-03ad-4521-9356-09ee07fce972,1,0,077af11c-fd3c-4e87-b169-5f3137464f77,077af11c-fd3c-4e87-b169-5f3137464f77,1,0,ccb54dc9-3d12-43d0-af6a-138d3526f5d5,ccb54dc9-3d12-43d0-af6a-138d3526f5d5,1,0,da8f7f30-eb80-44db-a451-348306c90cd8,da8f7f30-eb80-44db-a451-348306c90cd8,1,0,879304f7-9507-4fb8-9177-355428d6bba9,879304f7-9507-4fb8-9177-355428d6bba9,1,0,efb50581-cc7e-47ac-bfa2-86da2860bf1d,efb50581-cc7e-47ac-bfa2-86da2860bf1d,1,0,6d042890-27b2-4efc-935e-8190bb57c037,6d042890-27b2-4efc-935e-8190bb57c037,1,0,fd07f403-1116-4102-a1bf-35abb03ad493,fd07f403-1116-4102-a1bf-35abb03ad493,1,0,37ea0c64-2fec-4c2e-922b-d3a2f01f3e22,37ea0c64-2fec-4c2e-922b-d3a2f01f3e22,1,0,ba38453b-6225-40b8-80d8-de00dc620d56,ba38453b-6225-40b8-80d8-de00dc620d56,1,0,0722315c-9217-4ecf-80ff-d1ee89f84a53,0722315c-9217-4ecf-80ff-d1ee89f84a53,1,0,b82bcff8-49c9-44a9-8a9f-4428b0cc54a5,b82bcff8-49c9-44a9-8a9f-4428b0cc54a5,1,0,870b4d6d-0b89-4eda-a2b3-5c6db7dbe864,870b4d6d-0b89-4eda-a2b3-5c6db7dbe864,1,0,a2f943a4-05a3-4eb6-9a10-74b6859469a6,a2f943a4-05a3-4eb6-9a10-74b6859469a6,1,0,c172aeaf-b444-47c0-baee-80ccd91fe934,c172aeaf-b444-47c0-baee-80ccd91fe934,1,0,757ea742-8c14-4e0a-a867-432eee5cfc64,757ea742-8c14-4e0a-a867-432eee5cfc64,1,0,b8c36d5a-7966-4978-9225-67502b9c60a4,b8c36d5a-7966-4978-9225-67502b9c60a4,1,0,747f1c23-3c03-456e-864e-fc714484b7d6,747f1c23-3c03-456e-864e-fc714484b7d6,1,0,9847676d-f44d-46a0-83e2-4a43a835caf8,9847676d-f44d-46a0-83e2-4a43a835caf8,1,0,43c18cae-21a9-413b-a350-d5cf826980f0,43c18cae-21a9-413b-a350-d5cf826980f0,1,0,16773cdb-b979-42d5-a2a5-d4b79e8737bd,16773cdb-b979-42d5-a2a5-d4b79e8737bd,1,0,c28a190a-f487-4e99-b8f8-6928268086f8,c28a190a-f487-4e99-b8f8-6928268086f8,1,0,94e02f76-8656-4999-9470-dd996118400c,94e02f76-8656-4999-9470-dd996118400c,1,0,9effd265-3783-44e2-8698-80dd82137546,9effd265-3783-44e2-8698-80dd82137546,1,0,bef52020-98f8-465b-8981-e5f8eed62308,bef52020-98f8-465b-8981-e5f8eed62308,1,0,19897ad0-bdb5-439c-b4a2-a773c0ce5cf5,19897ad0-bdb5-439c-b4a2-a773c0ce5cf5,1,0,82035887-4f22-435b-a43f-b5ef9cb845ce,82035887-4f22-435b-a43f-b5ef9cb845ce,1,0,667b0f85-b82d-4d8e-9d75-b55a9723dce7,667b0f85-b82d-4d8e-9d75-b55a9723dce7,1,0,e731dab7-df9e-48ae-8542-4c0c30666ae9,e731dab7-df9e-48ae-8542-4c0c30666ae9,1,0,f321e378-6d50-4567-8434-813f367d3a65,f321e378-6d50-4567-8434-813f367d3a65,1,0,27246fd8-a8a3-4244-b49a-c0372a812167,27246fd8-a8a3-4244-b49a-c0372a812167,1,0,7d91ff3c-1ec2-41d0-9d38-fa8f8534c55c,7d91ff3c-1ec2-41d0-9d38-fa8f8534c55c,1,0,6da15c1d-e144-472e-9a3a-2797c7df16e4,6da15c1d-e144-472e-9a3a-2797c7df16e4,1,0,350a7b29-4ba3-43c4-b77d-47085f53d760,350a7b29-4ba3-43c4-b77d-47085f53d760,1,0,a151715d-c89e-4e4c-b8fd-d7d6ad71e603,a151715d-c89e-4e4c-b8fd-d7d6ad71e603,1,0,f6d6f1b9-3956-4fdb-bbb0-5d81f083a072,f6d6f1b9-3956-4fdb-bbb0-5d81f083a072,1,0,a5dd4200-0f25-452d-9014-3b1506c31557,a5dd4200-0f25-452d-9014-3b1506c31557,1,0,c48c091c-0d46-4d1f-bc84-72b0537c7ec2,c48c091c-0d46-4d1f-bc84-72b0537c7ec2,1,0,122a94c7-bb89-4f11-b583-b56808c1df47,122a94c7-bb89-4f11-b583-b56808c1df47,1,0,f4371f32-95a5-40f4-bc5e-a5b9a12a86eb,f4371f32-95a5-40f4-bc5e-a5b9a12a86eb,1,0,5f434c45-a5ff-4a07-8662-6a592298c7e9,5f434c45-a5ff-4a07-8662-6a592298c7e9,1,0,0841ebfc-12e6-4b3e-a60f-861b15e1b63c,0841ebfc-12e6-4b3e-a60f-861b15e1b63c,1,0,bde05768-2dd6-4800-985d-27075f610cca,bde05768-2dd6-4800-985d-27075f610cca,1,0,d18956cf-e449-48cc-a127-01b5dc910ea2,d18956cf-e449-48cc-a127-01b5dc910ea2,1,0,8e5487a3-b5e5-40ca-88f3-5b0ea0c4d481,8e5487a3-b5e5-40ca-88f3-5b0ea0c4d481,1,0,5d338e31-a56b-45f0-8a62-0270ca543f6a,5d338e31-a56b-45f0-8a62-0270ca543f6a,1,0,afd8251f-548b-4bb6-8ad0-4f412bec7cb6,afd8251f-548b-4bb6-8ad0-4f412bec7cb6,1,0,e352fc19-96be-4410-a516-bc58cc234422,e352fc19-96be-4410-a516-bc58cc234422,1,0,9b742da4-1696-4c06-9dfa-dd85c9286c74,9b742da4-1696-4c06-9dfa-dd85c9286c74,1,0,5f92f8c8-4d02-41a0-858f-e521f978df9f,5f92f8c8-4d02-41a0-858f-e521f978df9f,1,0,f9da8faf-1462-4ac4-9b63-2a20fc916049,f9da8faf-1462-4ac4-9b63-2a20fc916049,1,0,db1062bc-4164-4095-9640-9804c0ebcd0b,db1062bc-4164-4095-9640-9804c0ebcd0b,1,0,c11d967b-1250-4345-90b0-011a96c5ae5e,c11d967b-1250-4345-90b0-011a96c5ae5e,1,0,ea7c61ff-745c-4908-9a94-bba022d12de4,ea7c61ff-745c-4908-9a94-bba022d12de4,1,0,96cd8b90-5cf3-416c-b3a2-1f62e158b37e,96cd8b90-5cf3-416c-b3a2-1f62e158b37e,1,0,24eed105-f612-4340-ad79-388a7b39b58c,24eed105-f612-4340-ad79-388a7b39b58c,1,0,8e4bd2ac-d555-490e-87ab-1b0cdd6f72e9,8e4bd2ac-d555-490e-87ab-1b0cdd6f72e9,1,0,c7ffd8ab-15e9-4cf1-a7fd-d05534dff000,c7ffd8ab-15e9-4cf1-a7fd-d05534dff000,1,0,53caada5-1d53-45dc-9432-90075ddca890,53caada5-1d53-45dc-9432-90075ddca890,1,0,f00116da-2bf1-4edd-b939-f25d36774f5b,f00116da-2bf1-4edd-b939-f25d36774f5b,1,0,d1472d23-954b-4069-b2d6-df08c6ec0be1,d1472d23-954b-4069-b2d6-df08c6ec0be1,1,0,93fe2ce6-7193-42bc-a966-4653b7989eaa,93fe2ce6-7193-42bc-a966-4653b7989eaa,1,0,65678df4-a323-451f-98ba-305a74fc5805,65678df4-a323-451f-98ba-305a74fc5805,1,0,b1230b96-f4c8-4311-bfc0-df33bcc41394,b1230b96-f4c8-4311-bfc0-df33bcc41394,1,0,a7fe0aa5-722c-4a09-889b-ee422421addc,a7fe0aa5-722c-4a09-889b-ee422421addc,1,0,798bd34c-d0ee-4590-9b1d-8bc47e42ca8c,798bd34c-d0ee-4590-9b1d-8bc47e42ca8c,1,0,b572b1d0-4404-421c-9950-1cc1342ca5f3,b572b1d0-4404-421c-9950-1cc1342ca5f3,1,0,0c838a31-2b08-447c-b39a-a613cfba526c,0c838a31-2b08-447c-b39a-a613cfba526c,1,0,b6a3a9d4-71d2-4eb3-bb6f-6349330ffe3c,b6a3a9d4-71d2-4eb3-bb6f-6349330ffe3c,1,0,02082174-7276-4256-b9bb-9872065a01c4,02082174-7276-4256-b9bb-9872065a01c4,1,0,ddaba839-5ed2-4707-8cb8-ebd5784f642a,ddaba839-5ed2-4707-8cb8-ebd5784f642a,1,0,86c679c0-3531-4622-9a1f-3d9d6ccdd431,86c679c0-3531-4622-9a1f-3d9d6ccdd431,1,0,024b83dd-9f90-4122-8f50-0f2dc32bd76c,024b83dd-9f90-4122-8f50-0f2dc32bd76c,1,0,cba9e94c-e328-42ef-bcd0-92db3f0c048b,cba9e94c-e328-42ef-bcd0-92db3f0c048b,1,0,670c62c1-1a33-4dec-9540-5b4c1fe29074,670c62c1-1a33-4dec-9540-5b4c1fe29074,1,0,cc664d81-d0af-4d25-ae29-64f422e51bf2,cc664d81-d0af-4d25-ae29-64f422e51bf2,1,0,667f0c7e-fa70-49e9-97c9-ad04819fee58,667f0c7e-fa70-49e9-97c9-ad04819fee58,1,0,ae3876e2-bd06-415b-9d9a-b77d787be09e,ae3876e2-bd06-415b-9d9a-b77d787be09e,1,0,ded105e9-b71b-4550-9d9c-9c743dc212d0,ded105e9-b71b-4550-9d9c-9c743dc212d0,1,0,0cf49621-afc5-4c8d-a1b5-f8c30db9f415,0cf49621-afc5-4c8d-a1b5-f8c30db9f415,1,0,4718392b-477c-496b-9d28-ddbdaa7a04f2,4718392b-477c-496b-9d28-ddbdaa7a04f2,1,0,546af6c0-0762-4d2d-9d3b-c6a8f6c57674,546af6c0-0762-4d2d-9d3b-c6a8f6c57674,1,0,c45db006-3be6-4954-aee3-f6ab95d42f3e,c45db006-3be6-4954-aee3-f6ab95d42f3e,1,0,879844f0-30b4-47f5-8d2e-5fea29910368,879844f0-30b4-47f5-8d2e-5fea29910368,1,0,303334ba-2785-47fe-a094-84f9dea33be2,303334ba-2785-47fe-a094-84f9dea33be2,1,0,04424730-6992-4a5b-838b-7a7c16dedbd0,04424730-6992-4a5b-838b-7a7c16dedbd0,1,0,17c72b9e-8a7d-4da1-80f7-d8ca21a39010,17c72b9e-8a7d-4da1-80f7-d8ca21a39010,1,0,32850dc1-1484-4b7d-94f4-a08329423e7b,32850dc1-1484-4b7d-94f4-a08329423e7b,1,0,e37a7cf1-a7b5-4b6e-b818-0915598c8505,e37a7cf1-a7b5-4b6e-b818-0915598c8505,1,0,9299b382-fc65-4f89-8329-94fec125761c,9299b382-fc65-4f89-8329-94fec125761c,1,0,240bec31-cd59-477b-8459-8e3278da22dc,240bec31-cd59-477b-8459-8e3278da22dc,1,0,c83739dc-6afc-4687-ab1c-98a7b24b2182,c83739dc-6afc-4687-ab1c-98a7b24b2182,1,0,00f17bff-317e-4903-8c1e-d7b7e95375cd,00f17bff-317e-4903-8c1e-d7b7e95375cd,1,0,f3abaf8e-0230-43db-aaf0-716fc02047eb,f3abaf8e-0230-43db-aaf0-716fc02047eb,1,0,b76c3bd6-924a-4378-acbe-6f17232b201b,b76c3bd6-924a-4378-acbe-6f17232b201b,1,0,e0519f0c-9c99-4f5c-a3a9-27adce45737d,e0519f0c-9c99-4f5c-a3a9-27adce45737d,1,0,554320a0-55dc-4289-bb08-63d405cb4ca5,554320a0-55dc-4289-bb08-63d405cb4ca5,1,0,45eec13d-e5e5-4a2e-ad6c-2780bde15ef2,45eec13d-e5e5-4a2e-ad6c-2780bde15ef2,1,0,0874a3c0-0d16-4172-b467-f0666d5fcaee,0874a3c0-0d16-4172-b467-f0666d5fcaee,1,0,9d358304-3fd0-4ec6-9400-cc498ff2f751,9d358304-3fd0-4ec6-9400-cc498ff2f751,1,0,cc380a19-ab29-4f20-93ad-9a58cd4de56e,cc380a19-ab29-4f20-93ad-9a58cd4de56e,1,0,6a5f7521-270e-476e-88ec-a8cf79ea61a6,6a5f7521-270e-476e-88ec-a8cf79ea61a6,1,0,49b887e5-3b2f-42f8-b3f1-ba161ae05b3c,49b887e5-3b2f-42f8-b3f1-ba161ae05b3c,1,0,9bb841e7-e629-4a1f-8ff6-f8bca0b2b133,9bb841e7-e629-4a1f-8ff6-f8bca0b2b133,1,0,74067eee-6cd4-4ae3-becc-457ecb51dc9a,74067eee-6cd4-4ae3-becc-457ecb51dc9a,1,0,e54a8786-86a4-48e3-a210-aaae4e5fce8c,e54a8786-86a4-48e3-a210-aaae4e5fce8c,1,0,1c265c15-6002-416e-8045-81f03c893faf,1c265c15-6002-416e-8045-81f03c893faf,1,0,86c86ea2-d14e-4443-b36c-c1c17c4f768a,86c86ea2-d14e-4443-b36c-c1c17c4f768a,1,0,14512818-58b0-44cc-b00d-d37913c57aad,14512818-58b0-44cc-b00d-d37913c57aad,1,0,077e2c42-bc3b-48bf-bbc2-41effe20f613,077e2c42-bc3b-48bf-bbc2-41effe20f613,1,0,57964dd6-4b0b-4590-bc44-de744cc423af,57964dd6-4b0b-4590-bc44-de744cc423af,1,0,f5bb88eb-c239-4ae3-a297-dfbbd679e008,f5bb88eb-c239-4ae3-a297-dfbbd679e008,1,0,c888ccc1-9116-4b88-b950-aeabd54191c0,c888ccc1-9116-4b88-b950-aeabd54191c0,1,0,ff4d92a7-5fa3-4a46-a6f5-47c3952edb22,ff4d92a7-5fa3-4a46-a6f5-47c3952edb22,1,0,bb350b39-1f4d-460a-98c9-8d2308cf22f0,bb350b39-1f4d-460a-98c9-8d2308cf22f0,1,0,eaeb5aa8-8edf-4f74-8011-2d476f543bf6,eaeb5aa8-8edf-4f74-8011-2d476f543bf6,1,0,b2f17ef1-3f6f-4029-b3e2-28d6b79c5b76,b2f17ef1-3f6f-4029-b3e2-28d6b79c5b76,1,0,364cbfe2-bc44-4387-aa7e-6b4aa086c9e9,364cbfe2-bc44-4387-aa7e-6b4aa086c9e9,1,0,7433b2a9-f634-4af7-ac85-6aa1280ea239,7433b2a9-f634-4af7-ac85-6aa1280ea239,1,0,9f32e85c-2ed6-41db-b0ec-6d8596940e80,9f32e85c-2ed6-41db-b0ec-6d8596940e80,1,0,7adced5f-3a5f-419a-926c-0452aad86c86,7adced5f-3a5f-419a-926c-0452aad86c86,1,0,f259b6b4-d582-429f-a16f-027a6bcb7438,f259b6b4-d582-429f-a16f-027a6bcb7438,1,0,46e0522b-b88b-43b2-9067-a5359e90994b,46e0522b-b88b-43b2-9067-a5359e90994b,1,0,727c7c01-83e6-4d59-afa4-ee36f1cbacf2,727c7c01-83e6-4d59-afa4-ee36f1cbacf2,1,0,7f06703e-24cd-4db7-be88-3fbd65e5c252,7f06703e-24cd-4db7-be88-3fbd65e5c252,1,0,b143bc6d-ead6-41a2-9a15-1a44488c1ce4,b143bc6d-ead6-41a2-9a15-1a44488c1ce4,1,0,72d41d01-9c9d-4fbe-8a39-932d82d171ef,72d41d01-9c9d-4fbe-8a39-932d82d171ef,1,0,f4afd271-64de-4a6d-b0ef-f27db4d66d32,f4afd271-64de-4a6d-b0ef-f27db4d66d32,1,0,b1e7d3c3-9fc1-4364-a8c3-b076080c7472,b1e7d3c3-9fc1-4364-a8c3-b076080c7472,1,0,697d5715-dd04-40be-9b28-539734725158,697d5715-dd04-40be-9b28-539734725158,1,0,d831a8ac-88a4-4191-ab0b-7538dfb3e7d7,d831a8ac-88a4-4191-ab0b-7538dfb3e7d7,1,0,d95fcb37-fc65-466d-93e2-489f41683276,d95fcb37-fc65-466d-93e2-489f41683276,1,0,c6b0d31e-7b68-4c7f-a565-0ac8a7c11143,c6b0d31e-7b68-4c7f-a565-0ac8a7c11143,1,0,a27a9296-46bb-49a1-8308-db675baa81d0,a27a9296-46bb-49a1-8308-db675baa81d0,1,0,64c1a39e-f10a-4baa-8294-0058471d6716,64c1a39e-f10a-4baa-8294-0058471d6716,1,0,2181d197-028b-40b2-bf02-3d85dad1af30,2181d197-028b-40b2-bf02-3d85dad1af30,1,0,1456f317-360c-4190-b2d1-1be7484369a5,1456f317-360c-4190-b2d1-1be7484369a5,1,0,5ac74bb3-a4df-47db-ad87-6cb95b85c51f,5ac74bb3-a4df-47db-ad87-6cb95b85c51f,1,0,4867948f-b027-44ae-b78c-a94e00eed52b,4867948f-b027-44ae-b78c-a94e00eed52b,1,0,aa0c32ae-da52-4df9-8b77-99ea31f8df81,aa0c32ae-da52-4df9-8b77-99ea31f8df81,1,0,d7dcd391-3a0e-4aa9-9b53-467a1de67593,d7dcd391-3a0e-4aa9-9b53-467a1de67593,1,0,3d4cb11a-7ce7-4c46-a427-99d6f41f08bf,3d4cb11a-7ce7-4c46-a427-99d6f41f08bf,1,0,ef044879-e731-418a-b917-6a685f27c5f4,ef044879-e731-418a-b917-6a685f27c5f4,1,0,618d13d5-fd1f-4b70-ad45-dd6a17a50730,618d13d5-fd1f-4b70-ad45-dd6a17a50730,1,0,0248a6c4-7ce5-4898-bb1d-9ad9509e6795,0248a6c4-7ce5-4898-bb1d-9ad9509e6795,1,0,6a5b9e7f-c368-40d8-812a-64f68ea1ef9d,6a5b9e7f-c368-40d8-812a-64f68ea1ef9d,1,0,58037b76-b548-4f07-bd67-67e552a5c6e5,58037b76-b548-4f07-bd67-67e552a5c6e5,1,0,c9646904-3fb4-452c-af50-ddf562b597d0,c9646904-3fb4-452c-af50-ddf562b597d0,1,0,92bac831-04da-4302-ac62-a867e017fef6,92bac831-04da-4302-ac62-a867e017fef6,1,0,68f19104-5fa3-4f28-a84b-bf68c3bed49b,68f19104-5fa3-4f28-a84b-bf68c3bed49b,1,0,4249f45b-b298-4d42-9ca2-bd80b87f2150,4249f45b-b298-4d42-9ca2-bd80b87f2150,1,0,f88ccd7a-8d15-4b24-addf-da522a0b4a43,f88ccd7a-8d15-4b24-addf-da522a0b4a43,1,0,bc039475-c872-4b99-9248-c74aae75f0e1,bc039475-c872-4b99-9248-c74aae75f0e1,1,0,331db120-ba88-4eb3-a8ec-10691be82e2d,331db120-ba88-4eb3-a8ec-10691be82e2d,1,0,349378d1-abe3-44de-84a4-d525b08e0474,349378d1-abe3-44de-84a4-d525b08e0474,1,0,1526b18d-7fab-414e-a5b2-377b67ac0b55,1526b18d-7fab-414e-a5b2-377b67ac0b55,1,0,c561fe6b-53ea-435b-a230-1850e2dc1ff5,c561fe6b-53ea-435b-a230-1850e2dc1ff5,1,0,aba7605f-6baf-42a8-b5ad-8f71c780b81f,aba7605f-6baf-42a8-b5ad-8f71c780b81f,1,0,8fc19eca-1a15-4758-af4b-79637e51edfb,8fc19eca-1a15-4758-af4b-79637e51edfb,1,0,b0e0a273-2613-4d5e-9901-df7893af4c74,b0e0a273-2613-4d5e-9901-df7893af4c74,1,0,f1a56141-f3bd-4075-848b-41c00a81e7a3,f1a56141-f3bd-4075-848b-41c00a81e7a3,1,0,4ad1ef06-d8b4-46da-b536-d23c40e85497,4ad1ef06-d8b4-46da-b536-d23c40e85497,1,0,be9144ce-5560-47bb-8c5e-9beefd15bfc3,be9144ce-5560-47bb-8c5e-9beefd15bfc3,1,0,ad09d1e6-5982-4e1c-864e-452ac5b2915a,ad09d1e6-5982-4e1c-864e-452ac5b2915a,1,0,caea53be-d2f7-4109-8017-d2bfdfde8c6f,caea53be-d2f7-4109-8017-d2bfdfde8c6f,1,0,60f30706-9919-4767-a17c-660754b9d542,60f30706-9919-4767-a17c-660754b9d542,1,0,7de19812-ed6c-41b5-82aa-b9a8e6d808f2,7de19812-ed6c-41b5-82aa-b9a8e6d808f2,1,0,c0bc4cc4-b5ca-47c2-b589-c0d25bb63f1e,c0bc4cc4-b5ca-47c2-b589-c0d25bb63f1e,1,0,35823167-b658-4563-8d01-b0aab05aa619,35823167-b658-4563-8d01-b0aab05aa619,1,0,30be8d71-a9dd-4dd3-8fb4-ea0c8de86358,30be8d71-a9dd-4dd3-8fb4-ea0c8de86358,1,0,9ee03c48-c338-4655-9095-d490231df2a3,9ee03c48-c338-4655-9095-d490231df2a3,1,0,94928ba3-6bbf-4bd3-94cf-9c51b50e005f,94928ba3-6bbf-4bd3-94cf-9c51b50e005f,1,0,cddf1acd-3081-4fdc-9b5e-f5c4bf6c2e99,cddf1acd-3081-4fdc-9b5e-f5c4bf6c2e99,1,0,3924c17c-6ee3-4406-8023-0a79a242e389,3924c17c-6ee3-4406-8023-0a79a242e389,1,0,84a159ed-bc5f-4497-94d1-94b187b0bffe,84a159ed-bc5f-4497-94d1-94b187b0bffe,1,0,0a126b0d-28c8-4ed4-836f-e39e17693ad0,0a126b0d-28c8-4ed4-836f-e39e17693ad0,1,0,0dcc3bbf-afbe-4a4e-bc4a-17534d5fab28,0dcc3bbf-afbe-4a4e-bc4a-17534d5fab28,1,0,bf75c4de-b36a-4a7f-8d84-9fa3d020a6cb,bf75c4de-b36a-4a7f-8d84-9fa3d020a6cb,1,0,f95adb50-fa0b-434c-93dd-b7fd211220b7,f95adb50-fa0b-434c-93dd-b7fd211220b7,1,0,e590825f-10c6-4fdd-98cd-3da01da2ed4f,e590825f-10c6-4fdd-98cd-3da01da2ed4f,1,0,2233ce53-b8a8-4c83-97a2-683c8575462a,2233ce53-b8a8-4c83-97a2-683c8575462a,1,0,b938ff17-e31c-4762-a96f-e1288f746a1d,b938ff17-e31c-4762-a96f-e1288f746a1d,1,0,d6a5083f-ca9a-42ed-b202-2983e4ba21c2,d6a5083f-ca9a-42ed-b202-2983e4ba21c2,1,0,bd69bf55-dee0-4553-8f90-5fd025c0f773,bd69bf55-dee0-4553-8f90-5fd025c0f773,1,0,2071f210-dc13-43c0-a58e-b982821d6842,2071f210-dc13-43c0-a58e-b982821d6842,1,0,bea697f4-46a8-4698-ac60-64326e442f2b,bea697f4-46a8-4698-ac60-64326e442f2b,1,0,d5588c0d-3e94-485b-a7e9-45f5cf74df9e,d5588c0d-3e94-485b-a7e9-45f5cf74df9e,1,0,f415296e-fceb-4835-abe9-17bb17a5d5e5,f415296e-fceb-4835-abe9-17bb17a5d5e5,1,0,0e805e1f-3797-4ef9-94d3-0ec58ac1b605,0e805e1f-3797-4ef9-94d3-0ec58ac1b605,1,0,8677bd53-5569-4d44-b7ce-d1b3fe12c78d,8677bd53-5569-4d44-b7ce-d1b3fe12c78d,1,0,19056365-9ff1-4733-876e-a7ebdbbe0557,19056365-9ff1-4733-876e-a7ebdbbe0557,1,0,d5678c61-bd11-476e-b564-c529e117acd6,d5678c61-bd11-476e-b564-c529e117acd6,1,0,c8679d82-075c-4556-8231-c004d144fe61,c8679d82-075c-4556-8231-c004d144fe61,1,0,5e09dc5e-bbb7-4c38-b609-940c24f63c84,5e09dc5e-bbb7-4c38-b609-940c24f63c84,1,0,017b28eb-8ba9-465e-a748-20eadbeb4ea2,017b28eb-8ba9-465e-a748-20eadbeb4ea2,1,0,c0bb2d66-94c9-4bc6-afd5-534075e8395b,c0bb2d66-94c9-4bc6-afd5-534075e8395b,1,0,33c93020-b5f0-424e-a8fc-114a6ab04107,33c93020-b5f0-424e-a8fc-114a6ab04107,1,0,db7cc693-1645-4416-a9d9-5a7584cd3bbc,db7cc693-1645-4416-a9d9-5a7584cd3bbc,1,0,c849fb09-7833-49c8-9461-98426dc6c0af,c849fb09-7833-49c8-9461-98426dc6c0af,1,0,6c58fc3a-37f8-44b7-b076-2c10ce09b554,6c58fc3a-37f8-44b7-b076-2c10ce09b554,1,0,f9479915-cdee-40d5-ba53-101132aac672,f9479915-cdee-40d5-ba53-101132aac672,1,0,245c07a9-98b0-452b-b899-dc8751ab7ce0,245c07a9-98b0-452b-b899-dc8751ab7ce0,1,0,b0ca1b85-e1de-4b7c-8261-7f9e8a6a72eb,b0ca1b85-e1de-4b7c-8261-7f9e8a6a72eb,1,0,ae67dfe5-bb36-4400-81f5-8dab1fd0ca6e,ae67dfe5-bb36-4400-81f5-8dab1fd0ca6e,1,0,91d7687b-7627-473f-a08d-433f9d385107,91d7687b-7627-473f-a08d-433f9d385107,1,0,2276a1d4-b4d9-4643-8342-36143ce4eb26,2276a1d4-b4d9-4643-8342-36143ce4eb26,1,0,5510a103-836d-457e-b82b-6f6223efc96b,5510a103-836d-457e-b82b-6f6223efc96b,1,0,83db1b00-e9e3-41da-8a59-47589dcfd618,83db1b00-e9e3-41da-8a59-47589dcfd618,1,0,91d2d798-1498-4c52-aa7b-99db4b992876,91d2d798-1498-4c52-aa7b-99db4b992876,1,0,e85a03d3-e7c7-4058-992a-515a557d9e52,e85a03d3-e7c7-4058-992a-515a557d9e52,1,0,195ea1f8-3e38-4254-a33d-c87424b8f7dc,195ea1f8-3e38-4254-a33d-c87424b8f7dc,1,0,d3a1d247-8f4a-45af-9861-7e313a100209,d3a1d247-8f4a-45af-9861-7e313a100209,1,0,837f27c1-26d7-4f24-a691-55dd9ed04ec5,837f27c1-26d7-4f24-a691-55dd9ed04ec5,1,0,9e2ddfbb-8d6b-4b82-8a2b-62c2ea990b10,9e2ddfbb-8d6b-4b82-8a2b-62c2ea990b10,1,0,5005655f-22b2-49e6-be4f-b15d768d10b2,5005655f-22b2-49e6-be4f-b15d768d10b2,1,0,208040c8-e98b-4c15-a2ec-38d44bfcfa6c,208040c8-e98b-4c15-a2ec-38d44bfcfa6c,1,0,f6811ee2-769e-488d-9ca0-70f1fe521ca9,f6811ee2-769e-488d-9ca0-70f1fe521ca9,1,0,83385f31-2cdf-44a1-85c3-461e4ad5fd45,83385f31-2cdf-44a1-85c3-461e4ad5fd45,1,0,4cc76b9f-aa72-486e-84ee-f0866edfe691,4cc76b9f-aa72-486e-84ee-f0866edfe691,1,0,b55b06db-604e-4fb9-9253-638c747bd8f9,b55b06db-604e-4fb9-9253-638c747bd8f9,1,0,9cd9a3e1-b52c-4151-abd3-2744ed03cc1b,9cd9a3e1-b52c-4151-abd3-2744ed03cc1b,1,0,9aa0c1ef-45b4-405b-ad6f-ebcf876e6318,9aa0c1ef-45b4-405b-ad6f-ebcf876e6318,1,0,deb69010-80b0-4e28-acc7-8c50e8e6f873,deb69010-80b0-4e28-acc7-8c50e8e6f873,1,0,1a9177fe-6699-42b3-9588-eed9c6008c2d,1a9177fe-6699-42b3-9588-eed9c6008c2d,1,0,93848cf6-7a87-42c7-b685-0bc418a2037c,93848cf6-7a87-42c7-b685-0bc418a2037c,1,0,4f49412a-fbbe-4ee1-9c2b-affe5266bba7,4f49412a-fbbe-4ee1-9c2b-affe5266bba7,1,0,ae698468-f42a-4400-aee6-fd849740e634,ae698468-f42a-4400-aee6-fd849740e634,1,0,0b88b50d-6aa1-4364-82bd-1c0c0da93a58,0b88b50d-6aa1-4364-82bd-1c0c0da93a58,1,0,ddec19a2-2a76-4eeb-9cbb-6bc2b4a32bc8,ddec19a2-2a76-4eeb-9cbb-6bc2b4a32bc8,1,0,6438435e-97cc-4bd2-98dc-e21cee55bb0f,6438435e-97cc-4bd2-98dc-e21cee55bb0f,1,0,31b93291-a58f-4176-8318-58200e8bc56e,31b93291-a58f-4176-8318-58200e8bc56e,1,0,293be1bc-49cb-4a99-add8-2a3a46829718,293be1bc-49cb-4a99-add8-2a3a46829718,1,0,00579e31-e97d-4d79-ba25-b8d500a17e7f,00579e31-e97d-4d79-ba25-b8d500a17e7f,1,0,5001bea4-c8f9-4950-9eda-d33125e3bb46,5001bea4-c8f9-4950-9eda-d33125e3bb46,1,0,4ac6d0dd-0007-46b8-bfcc-93c0f85b6b85,4ac6d0dd-0007-46b8-bfcc-93c0f85b6b85,1,0,bc2dd611-b589-4519-b274-40db5c66b378,bc2dd611-b589-4519-b274-40db5c66b378,1,0,e815010d-e03d-46e4-b482-c1556902cc26,e815010d-e03d-46e4-b482-c1556902cc26,1,0,d4ab930a-ddaa-4552-afed-2618af822365,d4ab930a-ddaa-4552-afed-2618af822365,1,0,15cdbaf0-bc17-41c4-a330-d142cac8dc03,15cdbaf0-bc17-41c4-a330-d142cac8dc03,1,0,2388e3f4-b23b-488f-9ea5-d9434efca195,2388e3f4-b23b-488f-9ea5-d9434efca195,1,0,dd03e170-4186-495b-ae1c-fc66385d7ccf,dd03e170-4186-495b-ae1c-fc66385d7ccf,1,0,b2de86fc-f10b-4304-8060-cad903ba37c5,b2de86fc-f10b-4304-8060-cad903ba37c5,1,0,81fbb02e-76b2-4bca-bb3b-871e4e969a3c,81fbb02e-76b2-4bca-bb3b-871e4e969a3c,1,0,cdef5df6-f3a1-4950-b197-4f375914f885,cdef5df6-f3a1-4950-b197-4f375914f885,1,0,c1caff49-dc4b-4b3e-be47-122ea8b70416,c1caff49-dc4b-4b3e-be47-122ea8b70416,1,0,a1185a4c-7351-48b0-b662-61f61a1ad715,a1185a4c-7351-48b0-b662-61f61a1ad715,1,0,52be8b07-6e99-4e64-bbd6-2a1cd5816136,52be8b07-6e99-4e64-bbd6-2a1cd5816136,1,0,bf5faaef-3a03-40bc-8d3a-644c0874b9ce,bf5faaef-3a03-40bc-8d3a-644c0874b9ce,1,0,4ee0c7a4-cc26-438d-8908-f6a900c99d8b,4ee0c7a4-cc26-438d-8908-f6a900c99d8b,1,0,71d03545-df45-4c70-aa0d-3b916f2a9041,71d03545-df45-4c70-aa0d-3b916f2a9041,1,0,cfe452ac-3e0b-4cca-811f-892ab36ed327,cfe452ac-3e0b-4cca-811f-892ab36ed327,1,0,da9b0d3d-27dd-4a85-b0df-ec2f54d884f6,da9b0d3d-27dd-4a85-b0df-ec2f54d884f6,1,0,28a25822-2306-409a-a7c8-6f7e42bf25e8,28a25822-2306-409a-a7c8-6f7e42bf25e8,1,0,89cb31da-a980-4207-a537-85cd47f08d32,89cb31da-a980-4207-a537-85cd47f08d32,1,0,7e16f533-9b83-444b-966b-caed3d83b3a8,7e16f533-9b83-444b-966b-caed3d83b3a8,1,0,a45fa0c3-c363-4465-861f-13cedfeb79dd,a45fa0c3-c363-4465-861f-13cedfeb79dd,1,0,a72517c3-8c91-4e40-81ac-83c762789e87,a72517c3-8c91-4e40-81ac-83c762789e87,1,0,0233b335-7e26-4661-9850-8ab09d3178e3,0233b335-7e26-4661-9850-8ab09d3178e3,1,0,d942d536-5d01-4571-b910-abd973996a38,d942d536-5d01-4571-b910-abd973996a38,1,0,b82a7103-b872-49c3-b632-81d5a0051136,b82a7103-b872-49c3-b632-81d5a0051136,1,0,4b17ac35-78cb-4d01-bb08-659c0a93e8ce,4b17ac35-78cb-4d01-bb08-659c0a93e8ce,1,0,20c2053c-8ebd-4c07-8d95-956b424d047c,20c2053c-8ebd-4c07-8d95-956b424d047c,1,0,7c9dee81-7e85-4d26-84c3-66b0d770ac5a,7c9dee81-7e85-4d26-84c3-66b0d770ac5a,1,0,08fe5e70-ac6b-427a-b6f2-0e2f7848fa6b,08fe5e70-ac6b-427a-b6f2-0e2f7848fa6b,1,0,bef6081e-f377-41d6-83a1-b0e218a3fb46,bef6081e-f377-41d6-83a1-b0e218a3fb46,1,0,9b67bfd5-ef23-4205-b7ba-9466517e9999,9b67bfd5-ef23-4205-b7ba-9466517e9999,1,0,20082776-ce24-41c5-ae11-6fa9bc54db59,20082776-ce24-41c5-ae11-6fa9bc54db59,1,0,ea2c4c8e-23cc-4884-812e-1e959da48afc,ea2c4c8e-23cc-4884-812e-1e959da48afc,1,0,c61e4c12-178d-47aa-a070-333fe5450168,c61e4c12-178d-47aa-a070-333fe5450168,1,0,3ebcff6f-8709-46a2-b354-768e1d1415c5,3ebcff6f-8709-46a2-b354-768e1d1415c5,1,0,9474b4f1-b1bb-4fcf-acdb-a149a09b8490,9474b4f1-b1bb-4fcf-acdb-a149a09b8490,1,0,ea9d67eb-b552-48bd-a108-4938e5541735,ea9d67eb-b552-48bd-a108-4938e5541735,1,0,63fd620c-59a5-493c-a39e-457fad6fe35f,63fd620c-59a5-493c-a39e-457fad6fe35f,1,0,46b0a5b3-1fa7-44ff-a941-c6de47d36e77,46b0a5b3-1fa7-44ff-a941-c6de47d36e77,1,0,75ffd0b9-79be-4600-a310-591fddb6d63e,75ffd0b9-79be-4600-a310-591fddb6d63e,1,0,4883cb3d-4ab3-4e0e-bddb-ae8852547a3c,4883cb3d-4ab3-4e0e-bddb-ae8852547a3c,1,0,85d6d214-2b70-4cc4-ba80-f4325dd4ca65,85d6d214-2b70-4cc4-ba80-f4325dd4ca65,1,0,89888993-3b05-475e-ac76-3cd7ced93250,89888993-3b05-475e-ac76-3cd7ced93250,1,0,129f704b-cc63-4a4e-b6a7-9e53de4537a2,129f704b-cc63-4a4e-b6a7-9e53de4537a2,1,0,ea97b67e-1182-49c3-b95a-8fcce4cd3d09,ea97b67e-1182-49c3-b95a-8fcce4cd3d09,1,0,592f55e1-b004-44ef-878a-6c2016ccbeb0,592f55e1-b004-44ef-878a-6c2016ccbeb0,1,0,19add2bd-eede-4a05-901b-cf8ce49a638f,19add2bd-eede-4a05-901b-cf8ce49a638f,1,0,becf53b6-3fbc-4c70-822f-4a70b0434353,becf53b6-3fbc-4c70-822f-4a70b0434353,1,0,c7f544c6-488e-4178-af0d-d2ae07a8b89a,c7f544c6-488e-4178-af0d-d2ae07a8b89a,1,0,7dc0429d-146a-4c4f-b122-5d5c053bd4ed,7dc0429d-146a-4c4f-b122-5d5c053bd4ed,1,0,f8dc2485-685b-4e41-834a-a2cbbbe4d53b,f8dc2485-685b-4e41-834a-a2cbbbe4d53b,1,0,c38d8135-e11f-4860-b370-84ff279b7fbd,c38d8135-e11f-4860-b370-84ff279b7fbd,1,0,ee0798f5-47a8-4118-a25c-cfd3473007c1,ee0798f5-47a8-4118-a25c-cfd3473007c1,1,0,652ee894-047b-4a5a-a500-2d61b4c4a473,652ee894-047b-4a5a-a500-2d61b4c4a473,1,0,8a95d199-9bd1-4cbb-9d1a-941e80fa2105,8a95d199-9bd1-4cbb-9d1a-941e80fa2105,1,0,ce720daf-78ea-4fab-91bc-0c15a18c355b,ce720daf-78ea-4fab-91bc-0c15a18c355b,1,0,33f8cd94-71e7-4703-92c3-22690fbd871a,33f8cd94-71e7-4703-92c3-22690fbd871a,1,0,b6e5de4d-0156-4342-b646-6e6920a4bd3a,b6e5de4d-0156-4342-b646-6e6920a4bd3a,1,0,afba65e1-1a1c-4e28-91a3-29ca8eef2a1f,afba65e1-1a1c-4e28-91a3-29ca8eef2a1f,1,0,c03f9972-5a1f-449b-b170-5a958c2b5846,c03f9972-5a1f-449b-b170-5a958c2b5846,1,0,25896075-2484-4879-8310-7f5680d80b48,25896075-2484-4879-8310-7f5680d80b48,1,0,1e3c444d-6f73-4eb0-a12d-7106daf36b14,1e3c444d-6f73-4eb0-a12d-7106daf36b14,1,0,9043894d-f89a-459f-a4ea-77fe3633aa91,9043894d-f89a-459f-a4ea-77fe3633aa91,1,0,085cbea9-1df1-4ee9-afb7-da2bf313697e,085cbea9-1df1-4ee9-afb7-da2bf313697e,1,0,09858042-6284-4499-8055-c1b5b783ce5f,09858042-6284-4499-8055-c1b5b783ce5f,1,0,38fc1e6e-7cd3-437b-b429-6655be34cd01,38fc1e6e-7cd3-437b-b429-6655be34cd01,1,0,95a71c2e-aa39-42ec-8889-2390a553f146,95a71c2e-aa39-42ec-8889-2390a553f146,1,0,8c4c7982-36cc-4dc9-b055-9954f61e6365,8c4c7982-36cc-4dc9-b055-9954f61e6365,1,0,ba51c7f5-0074-4c99-a27d-ddfd4bfcc068,ba51c7f5-0074-4c99-a27d-ddfd4bfcc068,1,0,e29d96ee-e8fa-4100-8a0e-494398e4ec9d,e29d96ee-e8fa-4100-8a0e-494398e4ec9d,1,0,5f3d5a05-a581-462d-96a2-2750ba0e0481,5f3d5a05-a581-462d-96a2-2750ba0e0481,1,0,477ab478-b336-4bac-898f-e20e3a4039b5,477ab478-b336-4bac-898f-e20e3a4039b5,1,0,a4d767a1-d2e6-4e0a-ab35-9207eef54998,a4d767a1-d2e6-4e0a-ab35-9207eef54998,1,0,e50cb13a-151b-45d2-a7b7-d23440ddfa24,e50cb13a-151b-45d2-a7b7-d23440ddfa24,1,0,cc3a7f15-4db6-445e-b282-f44d0460b7d3,cc3a7f15-4db6-445e-b282-f44d0460b7d3,1,0,0b8bfb71-d430-4bdf-8391-a534b3a15fc3,0b8bfb71-d430-4bdf-8391-a534b3a15fc3,1,0,19ea515f-65f7-4ed9-812b-c97b92e2498f,19ea515f-65f7-4ed9-812b-c97b92e2498f,1,0,0d8770aa-fa6e-471c-92c8-b96576927ef0,0d8770aa-fa6e-471c-92c8-b96576927ef0,1,0,1fe12fa0-af7c-487b-b20d-f41100826e0b,1fe12fa0-af7c-487b-b20d-f41100826e0b,1,0,4f86b052-b81e-49b8-9fa8-82b2ecbc8e01,4f86b052-b81e-49b8-9fa8-82b2ecbc8e01,1,0,e25b2b10-bf08-42db-9642-861efc5e583b,e25b2b10-bf08-42db-9642-861efc5e583b,1,0,b8a32c33-4e15-4c21-baab-64a86d44321b,b8a32c33-4e15-4c21-baab-64a86d44321b,1,0,d7dd9a03-6818-4987-8f39-58e1c906569f,d7dd9a03-6818-4987-8f39-58e1c906569f,1,0,e4216976-2747-4078-81d4-8ffab668c1f7,e4216976-2747-4078-81d4-8ffab668c1f7,1,0,fce028b8-b530-49f0-b6ad-a28d03e19b0f,fce028b8-b530-49f0-b6ad-a28d03e19b0f,1,0,301eea20-0e7f-441e-a531-28b4627dfd93,301eea20-0e7f-441e-a531-28b4627dfd93,1,0,41f87891-ddd5-4e0f-a4f2-8039fb71981b,41f87891-ddd5-4e0f-a4f2-8039fb71981b,1,0,47da49ee-b243-4e78-9c8f-bb26c60e6136,47da49ee-b243-4e78-9c8f-bb26c60e6136,1,0,39bee714-cacd-4d48-97a5-c838660e049a,39bee714-cacd-4d48-97a5-c838660e049a,1,0,9ed2c756-80a1-4559-8494-b7a9b82a4519,9ed2c756-80a1-4559-8494-b7a9b82a4519,1,0,456c5171-4298-4201-9908-79feb376d1b1,456c5171-4298-4201-9908-79feb376d1b1,1,0,69149ce1-d3f8-4e12-be8f-b328ade60882,69149ce1-d3f8-4e12-be8f-b328ade60882,1,0,ff592ecb-eb08-4554-87bf-1d2935b21d3c,ff592ecb-eb08-4554-87bf-1d2935b21d3c,1,0,d975aef4-8da8-4486-baeb-a99c48cff0ec,d975aef4-8da8-4486-baeb-a99c48cff0ec,1,0,75666bb9-f6d3-4dd6-8220-427a81f23fc9,75666bb9-f6d3-4dd6-8220-427a81f23fc9,1,0,9da27139-0bed-47b0-aef6-246929968502,9da27139-0bed-47b0-aef6-246929968502,1,0,7ae5d177-a3e6-4989-b10c-8e0a605c26d9,7ae5d177-a3e6-4989-b10c-8e0a605c26d9,1,0,29f2094a-d0d1-425c-8161-45a9ba186e19,29f2094a-d0d1-425c-8161-45a9ba186e19,1,0,893b2dd9-a939-4799-9b78-50d788a5f3ba,893b2dd9-a939-4799-9b78-50d788a5f3ba,1,0,68229ecd-7ecc-4194-a3e5-f8df39b55d6a,68229ecd-7ecc-4194-a3e5-f8df39b55d6a,1,0,a57f6dc1-59d7-4311-8acd-65ce57a9f386,a57f6dc1-59d7-4311-8acd-65ce57a9f386,1,0,e4842271-4fc0-4e15-afef-876f05af78c0,e4842271-4fc0-4e15-afef-876f05af78c0,1,0,31ee6430-b65d-42fa-859b-c4f1c40686ae,31ee6430-b65d-42fa-859b-c4f1c40686ae,1,0,c59e11f3-6bcb-404a-9d76-1416c12be354,c59e11f3-6bcb-404a-9d76-1416c12be354,1,0,c1a1f12b-3978-4047-956e-a5c7de8371a0,c1a1f12b-3978-4047-956e-a5c7de8371a0,1,0,ac39b903-0c60-417e-a50f-49ed375424f5,ac39b903-0c60-417e-a50f-49ed375424f5,1,0,135d57fe-d420-4bb0-9120-e43fd9b55c16,135d57fe-d420-4bb0-9120-e43fd9b55c16,1,0,9893e2d6-f3f8-4d73-bb06-19bf26d216ab,9893e2d6-f3f8-4d73-bb06-19bf26d216ab,1,0,8cf925d9-6811-4bce-b116-09d6a26ff3cb,8cf925d9-6811-4bce-b116-09d6a26ff3cb,1,0,387d3bbf-cddd-4506-b14f-89c1f37adbbc,387d3bbf-cddd-4506-b14f-89c1f37adbbc,1,0,16392cf6-dd83-4df0-a54b-6efc29778a89,16392cf6-dd83-4df0-a54b-6efc29778a89,1,0,e693cdd0-8ead-4ba5-adec-86bab74ee7cd,e693cdd0-8ead-4ba5-adec-86bab74ee7cd,1,0,a12c0e81-00c3-4126-a001-b4441fd63030,a12c0e81-00c3-4126-a001-b4441fd63030,1,0,36999e1b-865e-41ad-b9d6-1b3ac887acfb,36999e1b-865e-41ad-b9d6-1b3ac887acfb,1,0,10db9f99-c7d1-4b16-9ea2-9bfc2aa4ddb5,10db9f99-c7d1-4b16-9ea2-9bfc2aa4ddb5,1,0,230722e6-942f-4594-be89-eff59c6572bf,230722e6-942f-4594-be89-eff59c6572bf,1,0,237dab99-ed72-432c-ad01-c6045d74f000,237dab99-ed72-432c-ad01-c6045d74f000,1,0,a1130128-cc48-4555-93a2-99e7f74f77dc,a1130128-cc48-4555-93a2-99e7f74f77dc,1,0,af52cd7d-374a-4c46-a74c-305e154dc6f2,af52cd7d-374a-4c46-a74c-305e154dc6f2,1,0,9b4b7424-1af7-4d80-8404-8819fcfeae75,9b4b7424-1af7-4d80-8404-8819fcfeae75,1,0,94e08dcf-3885-4a73-82ab-cb291f1cf95f,94e08dcf-3885-4a73-82ab-cb291f1cf95f,1,0,8947286f-ba4a-44e7-b805-2f096028dc4f,8947286f-ba4a-44e7-b805-2f096028dc4f,1,0,55ce840b-5838-4107-886d-f935b9907bd8,55ce840b-5838-4107-886d-f935b9907bd8,1,0,0b3088c9-7fb9-4979-acce-16d7ae7ba6b7,0b3088c9-7fb9-4979-acce-16d7ae7ba6b7,1,0,f1753bda-16db-4b00-a16a-37ddade8403f,f1753bda-16db-4b00-a16a-37ddade8403f,1,0,2a985b50-a4b1-4932-8af6-51eee8e78ac8,2a985b50-a4b1-4932-8af6-51eee8e78ac8,1,0,e353db15-71c5-4b68-9ffb-9800800a59dc,e353db15-71c5-4b68-9ffb-9800800a59dc,1,0,976d9ba7-d9c7-4a9e-ad5d-53cb5bca8984,976d9ba7-d9c7-4a9e-ad5d-53cb5bca8984,1,0,fe9eca7c-6e3d-4c3f-b98d-abd8ab05d35e,fe9eca7c-6e3d-4c3f-b98d-abd8ab05d35e,1,0,a1875d63-4303-46f1-bdea-fc529b5891f3,a1875d63-4303-46f1-bdea-fc529b5891f3,1,0,e05b6f44-8244-4e94-a6d3-57450f8b47dc,e05b6f44-8244-4e94-a6d3-57450f8b47dc,1,0,59123b12-6052-4480-9c86-f4de1b5cdc04,59123b12-6052-4480-9c86-f4de1b5cdc04,1,0,19b98b60-deb1-4642-8159-2a11332558e2,19b98b60-deb1-4642-8159-2a11332558e2,1,0,133f181a-fade-4182-826d-904fac780326,133f181a-fade-4182-826d-904fac780326,1,0,a687748a-0b2a-4277-b935-07616d28430d,a687748a-0b2a-4277-b935-07616d28430d,1,0,f60cb71a-f451-426a-aa3a-aa266b8da149,f60cb71a-f451-426a-aa3a-aa266b8da149,1,0,641ebe22-7135-4adb-bbd6-e0c37d246a2d,641ebe22-7135-4adb-bbd6-e0c37d246a2d,1,0,f71ba01e-9f6b-4241-8048-4368c8888756,f71ba01e-9f6b-4241-8048-4368c8888756,1,0,9059defa-047f-4dac-9749-3d0a6a77308a,9059defa-047f-4dac-9749-3d0a6a77308a,1,0,6010c27f-e857-4fc3-be13-1eea51f02ea7,6010c27f-e857-4fc3-be13-1eea51f02ea7,1,0,973609a2-5b5d-45c4-9606-a13d0de1a09b,973609a2-5b5d-45c4-9606-a13d0de1a09b,1,0,6aa814fa-417e-428c-951e-6efd9d0775da,6aa814fa-417e-428c-951e-6efd9d0775da,1,0,a247efe1-8608-4780-9cc8-54e29944475b,a247efe1-8608-4780-9cc8-54e29944475b,1,0,4b8c3c82-6e8f-469e-8a80-144361d1d0b2,4b8c3c82-6e8f-469e-8a80-144361d1d0b2,1,0,a8f162e9-3f59-41a5-b82f-da20928213c7,a8f162e9-3f59-41a5-b82f-da20928213c7,1,0,7b776038-602c-443b-86f4-f347e01c0f91,7b776038-602c-443b-86f4-f347e01c0f91,1,0,7ad16fb4-17eb-4812-8015-9447d92e08ce,7ad16fb4-17eb-4812-8015-9447d92e08ce,1,0,ade68dfd-5037-4fd7-b043-9514e3fe6342,ade68dfd-5037-4fd7-b043-9514e3fe6342,1,0,7b008aad-9d05-43e1-8295-62ae58cfff42,7b008aad-9d05-43e1-8295-62ae58cfff42,1,0,fdaf9255-d621-4a98-9530-f618ed440795,fdaf9255-d621-4a98-9530-f618ed440795,1,0,48cefa96-46c7-4870-a096-951dcbae479a,48cefa96-46c7-4870-a096-951dcbae479a,1,0,d74e01cc-941b-4974-8771-0bd2e0d86724,d74e01cc-941b-4974-8771-0bd2e0d86724,1,0,0daac965-2026-4acc-8ba1-3c1f01779257,0daac965-2026-4acc-8ba1-3c1f01779257,1,0,65a331c0-7501-49f6-8027-35b703d11834,65a331c0-7501-49f6-8027-35b703d11834,1,0,5e4ee280-3dd2-4f68-be6c-fb5343438817,5e4ee280-3dd2-4f68-be6c-fb5343438817,1,0,75d1b6df-ede3-4172-987f-fe1551f686ee,75d1b6df-ede3-4172-987f-fe1551f686ee,1,0,c67fab0a-704f-43ae-bd03-4b5b1a880b24,c67fab0a-704f-43ae-bd03-4b5b1a880b24,1,0,81979741-65c9-48a5-9f69-e0d0f0c8ddaa,81979741-65c9-48a5-9f69-e0d0f0c8ddaa,1,0,87553d04-a72a-40b1-9005-85ea0efebf5d,87553d04-a72a-40b1-9005-85ea0efebf5d,1,0,c1703a14-61a0-4461-8ad8-7173e2c431fe,c1703a14-61a0-4461-8ad8-7173e2c431fe,1,0,aecf5653-3005-43f2-ab49-40977e70f02b,aecf5653-3005-43f2-ab49-40977e70f02b,1,0,8bd56034-6d56-4c2f-8e7f-4c0fff49ac39,8bd56034-6d56-4c2f-8e7f-4c0fff49ac39,1,0,845530cd-36fb-44c3-b30a-730985c9ca2d,845530cd-36fb-44c3-b30a-730985c9ca2d,1,0,9e90d9f7-5301-44b3-9eba-45fee5a69a0b,9e90d9f7-5301-44b3-9eba-45fee5a69a0b,1,0,475f8577-a141-496b-94e1-53215c0dd017,475f8577-a141-496b-94e1-53215c0dd017,1,0,97638762-c01e-4c8f-88e2-b356e517e18f,97638762-c01e-4c8f-88e2-b356e517e18f,1,0,074e34f2-e9be-4bd3-beca-8b916772e2be,074e34f2-e9be-4bd3-beca-8b916772e2be,1,0,28fecf1b-7cab-4087-b66e-2052edb8ce3a,28fecf1b-7cab-4087-b66e-2052edb8ce3a,1,0,6527be82-a665-4f8a-818b-a35b96b3484b,6527be82-a665-4f8a-818b-a35b96b3484b,1,0,d85b00b7-b0d8-4b91-8d7f-0c2da524d446,d85b00b7-b0d8-4b91-8d7f-0c2da524d446,1,0,cc906f05-5ea6-43cb-a084-c4ee51ca4bd5,cc906f05-5ea6-43cb-a084-c4ee51ca4bd5,1,0,83e30f0b-67b2-411b-9624-ac4c4bd7f94a,83e30f0b-67b2-411b-9624-ac4c4bd7f94a,1,0,12285a8d-5b3b-4a72-8e31-366afd1c2ca3,12285a8d-5b3b-4a72-8e31-366afd1c2ca3,1,0,c79ba5a5-e6d9-4a3f-ab23-eca876607f7f,c79ba5a5-e6d9-4a3f-ab23-eca876607f7f,1,0,ce5549bd-ba99-4259-86a3-36521bad59f5,ce5549bd-ba99-4259-86a3-36521bad59f5,1,0,f5417147-4d2a-4e49-911b-2bb5eccb8441,f5417147-4d2a-4e49-911b-2bb5eccb8441,1,0,20fbed2b-4393-4de0-a71d-017a336bdac0,20fbed2b-4393-4de0-a71d-017a336bdac0,1,0,2ca4fc58-798b-4fc3-8673-27688ce7a1f2,2ca4fc58-798b-4fc3-8673-27688ce7a1f2,1,0,fbbb2449-9a07-4229-8ea5-bee0afab5f56,fbbb2449-9a07-4229-8ea5-bee0afab5f56,1,0,9fdddb51-0605-4f64-8d2e-aa7dbcd37262,9fdddb51-0605-4f64-8d2e-aa7dbcd37262,1,0,3f3f1b41-57a9-4a82-bdfa-89a6653479ab,3f3f1b41-57a9-4a82-bdfa-89a6653479ab,1,0,fd12fbe2-56a2-4c9e-a072-989d826a5ea3,fd12fbe2-56a2-4c9e-a072-989d826a5ea3,1,0,f38b6034-5246-42a7-8f3c-51eaf3e5399c,f38b6034-5246-42a7-8f3c-51eaf3e5399c,1,0,c82bac79-b205-44c1-92e1-665d4702d6b1,c82bac79-b205-44c1-92e1-665d4702d6b1,1,0,08552af7-3c44-42c6-94c5-63a2316127fc,08552af7-3c44-42c6-94c5-63a2316127fc,1,0,41f6f6d1-b7cf-4477-907b-ce69fc08c799,41f6f6d1-b7cf-4477-907b-ce69fc08c799,1,0,9f1a61dd-b04f-48ae-b0c0-17cf23bdb04b,9f1a61dd-b04f-48ae-b0c0-17cf23bdb04b,1,0,0d124daf-dc52-4391-a2d9-3c43a45c422c,0d124daf-dc52-4391-a2d9-3c43a45c422c,1,0,a300ecc3-8031-4a50-a17d-b08cf3a72139,a300ecc3-8031-4a50-a17d-b08cf3a72139,1,0,e7e78b7e-b103-40d6-8064-f84e2d86ca3d,e7e78b7e-b103-40d6-8064-f84e2d86ca3d,1,0,dc14a27a-2299-4bd5-8c0e-5f84adae507a,dc14a27a-2299-4bd5-8c0e-5f84adae507a,1,0,bf20e6ce-bbe6-4523-9381-f9cb6cad348c,bf20e6ce-bbe6-4523-9381-f9cb6cad348c,1,0,e4ae4245-6c03-46e7-bcb4-3a2c1a360209,e4ae4245-6c03-46e7-bcb4-3a2c1a360209,1,0,a397f0fd-74c7-4572-a9b7-1a7f571203ff,a397f0fd-74c7-4572-a9b7-1a7f571203ff,1,0,9c443dd3-4acb-4c5a-9c4b-af8b0c87e861,9c443dd3-4acb-4c5a-9c4b-af8b0c87e861,1,0,98153b59-8cc6-4dc7-b945-99c1146d07da,98153b59-8cc6-4dc7-b945-99c1146d07da,1,0,52f3e20c-1cf7-4284-a083-6539782f4bc3,52f3e20c-1cf7-4284-a083-6539782f4bc3,1,0,657b8663-713c-4a80-81e1-8c0166742a35,657b8663-713c-4a80-81e1-8c0166742a35,1,0,0d1e5608-0462-4069-ad7b-1c4b3bc1a256,0d1e5608-0462-4069-ad7b-1c4b3bc1a256,1,0,8d8ac8f0-37e1-4637-87c7-5af82d05202b,8d8ac8f0-37e1-4637-87c7-5af82d05202b,1,0,8dad7f71-63cb-449a-bafd-79bd63f10310,8dad7f71-63cb-449a-bafd-79bd63f10310,1,0,866438d1-1223-4768-9c96-e6cb12f1a4d5,866438d1-1223-4768-9c96-e6cb12f1a4d5,1,0,d416cc2a-425f-4c01-a550-5a755ed78cc8,d416cc2a-425f-4c01-a550-5a755ed78cc8,1,0,df9db8d5-c5c2-4a9d-88fe-77247b2c417e,df9db8d5-c5c2-4a9d-88fe-77247b2c417e,1,0,6b70f7e1-8bdb-4fc4-9b95-0e045bfa288c,6b70f7e1-8bdb-4fc4-9b95-0e045bfa288c,1,0,a890be6b-f050-4ea4-a388-570948ffd22b,a890be6b-f050-4ea4-a388-570948ffd22b,1,0,9039f720-5728-4918-87d5-8b2d07cabcfd,9039f720-5728-4918-87d5-8b2d07cabcfd,1,0,b00c31d6-4fc6-4189-9f72-f91742ec705f,b00c31d6-4fc6-4189-9f72-f91742ec705f,1,0,1333101b-82e8-41a9-a793-5af5dcd6f68a,1333101b-82e8-41a9-a793-5af5dcd6f68a,1,0,ae039438-89af-4217-910d-476115f51ab2,ae039438-89af-4217-910d-476115f51ab2,1,0,aaaa7d41-3399-41b5-b882-58af38121494,aaaa7d41-3399-41b5-b882-58af38121494,1,0,0f25646a-90f9-4747-a778-7efdaabc284c,0f25646a-90f9-4747-a778-7efdaabc284c,1,0,2b43d8e1-86b1-4f3a-aad8-f0f6eb1f1de9,2b43d8e1-86b1-4f3a-aad8-f0f6eb1f1de9,1,0,3705a086-46e6-4090-a52a-535908eea8a5,3705a086-46e6-4090-a52a-535908eea8a5,1,0,9b9cd161-5bee-4433-a0ec-b67deb099b5e,9b9cd161-5bee-4433-a0ec-b67deb099b5e,1,0,ca179cb5-65e1-4a55-bf12-096b926accb0,ca179cb5-65e1-4a55-bf12-096b926accb0,1,0,a6587758-f7af-4f85-81b4-4312c725824e,a6587758-f7af-4f85-81b4-4312c725824e,1,0,5d336d1e-24f9-404a-9671-3bcdc7c48a25,5d336d1e-24f9-404a-9671-3bcdc7c48a25,1,0,d508b3e9-4dac-40a3-9a0b-1cc76b4196ea,d508b3e9-4dac-40a3-9a0b-1cc76b4196ea,1,0,63470706-f14b-4733-87c2-d1173f5d7e7a,63470706-f14b-4733-87c2-d1173f5d7e7a,1,0,472ce1c2-9e83-418b-b1ec-e15e126bc919,472ce1c2-9e83-418b-b1ec-e15e126bc919,1,0,9fe30414-8261-4403-a854-f22b61824f69,9fe30414-8261-4403-a854-f22b61824f69,1,0,07bb26ac-bd97-465f-a192-db7fedbb579b,07bb26ac-bd97-465f-a192-db7fedbb579b,1,0,76cdcc51-0e6a-4f9c-a115-1864998c2add,76cdcc51-0e6a-4f9c-a115-1864998c2add,1,0,71c3e5d3-7504-433f-9d48-7c287b2b863b,71c3e5d3-7504-433f-9d48-7c287b2b863b,1,0,0894db61-51f6-4068-9634-e55d95e2a8ac,0894db61-51f6-4068-9634-e55d95e2a8ac,1,0,0d8c215d-1210-47a2-897d-a3257b9f849a,0d8c215d-1210-47a2-897d-a3257b9f849a,1,0,ea2e9a4e-eca1-4a6e-b7a6-8922a11334aa,ea2e9a4e-eca1-4a6e-b7a6-8922a11334aa,1,0,c971e0ba-53b8-4454-92f7-40b0d639058a,c971e0ba-53b8-4454-92f7-40b0d639058a,1,0,9d8496ea-fc0c-410d-994d-7480350d71d3,9d8496ea-fc0c-410d-994d-7480350d71d3,1,0,0f0456a8-ca04-4de4-9d9b-e8b0fdb8b860,0f0456a8-ca04-4de4-9d9b-e8b0fdb8b860,1,0,ed297409-6215-4fd4-b47d-a2247e0343da,ed297409-6215-4fd4-b47d-a2247e0343da,1,0,5b62e0d1-8dba-47db-8dbb-517ad935fa0d,5b62e0d1-8dba-47db-8dbb-517ad935fa0d,1,0,f1560584-99a3-48ac-b736-e7d33affe474,f1560584-99a3-48ac-b736-e7d33affe474,1,0,e7a63151-fc1a-4563-8768-26d854ab012b,e7a63151-fc1a-4563-8768-26d854ab012b,1,0,e7d0cc1f-f3ee-486e-b1f3-db8e6a6162cc,e7d0cc1f-f3ee-486e-b1f3-db8e6a6162cc,1,0,c54f31ce-114b-46d3-b4c6-12c8f07727ca,c54f31ce-114b-46d3-b4c6-12c8f07727ca,1,0,73c7750f-8291-4e19-8551-635cd6b94215,73c7750f-8291-4e19-8551-635cd6b94215,1,0,5a9c82c1-d0cd-48ff-b91c-38b950591e4c,5a9c82c1-d0cd-48ff-b91c-38b950591e4c,1,0,a1463001-f3d8-4064-95e4-cf49aedc2a8c,a1463001-f3d8-4064-95e4-cf49aedc2a8c,1,0,59855d19-29cd-4efd-a453-b19e574113ef,59855d19-29cd-4efd-a453-b19e574113ef,1,0,249b6436-bd44-4950-b118-7f40f7aaf794,249b6436-bd44-4950-b118-7f40f7aaf794,1,0,6a9f1485-21a4-41e8-b8a7-26340eff5085,6a9f1485-21a4-41e8-b8a7-26340eff5085,1,0,12478caa-f2b8-41e6-8a2d-0e0c7d5b88f5,12478caa-f2b8-41e6-8a2d-0e0c7d5b88f5,1,0,630845af-a7dc-4d1e-8c1a-44fa65aab036,630845af-a7dc-4d1e-8c1a-44fa65aab036,1,0,65dd4904-0837-4de5-a5e5-601151055d94,65dd4904-0837-4de5-a5e5-601151055d94,1,0,2063d4ea-5f58-4cf9-84de-1f8f59d87748,2063d4ea-5f58-4cf9-84de-1f8f59d87748,1,0,4642db34-b98d-4b4e-823e-ef7d6de5fc02,4642db34-b98d-4b4e-823e-ef7d6de5fc02,1,0,cfce9728-f37a-4ddc-adc1-4569900462b8,cfce9728-f37a-4ddc-adc1-4569900462b8,1,0,d20739a3-a149-4b64-b9ca-4a76aca06cb8,d20739a3-a149-4b64-b9ca-4a76aca06cb8,1,0,99c5e87a-f096-4315-8fbe-f596ea9c176f,99c5e87a-f096-4315-8fbe-f596ea9c176f,1,0,9dd57f32-90a1-4a1d-bc2a-c1b12461d963,9dd57f32-90a1-4a1d-bc2a-c1b12461d963,1,0,ce6d1259-af90-482b-b19a-405512321bd9,ce6d1259-af90-482b-b19a-405512321bd9,1,0,e984fbf9-6b89-4d38-8938-b2b0e6623c7a,e984fbf9-6b89-4d38-8938-b2b0e6623c7a,1,0,9b76ded4-814a-4267-99c5-2c8fb05ee352,9b76ded4-814a-4267-99c5-2c8fb05ee352,1,0,df48bfa3-5502-4a61-a79f-1dea043dac36,df48bfa3-5502-4a61-a79f-1dea043dac36,1,0,adee37e6-f087-422f-91b3-681f3d73189c,adee37e6-f087-422f-91b3-681f3d73189c,1,0,eb276904-cad7-4401-bb78-2d13946291f1,eb276904-cad7-4401-bb78-2d13946291f1,1,0,171a64b6-39d2-455f-b304-1c6ea8d85494,171a64b6-39d2-455f-b304-1c6ea8d85494,1,0,79ff04ac-4625-469b-916e-938f04de4dd2,79ff04ac-4625-469b-916e-938f04de4dd2,1,0,c5e9f987-4466-4161-8e36-278b0b3ce056,c5e9f987-4466-4161-8e36-278b0b3ce056,1,0,db445527-7bd2-448b-bf87-5ac0c10d742d,db445527-7bd2-448b-bf87-5ac0c10d742d,1,0,b6566d54-e821-4a2a-a447-0f533f35de91,b6566d54-e821-4a2a-a447-0f533f35de91,1,0,46568b9a-a765-4037-8a86-b184a570ab37,46568b9a-a765-4037-8a86-b184a570ab37,1,0,4fcc7278-2fec-49ee-b0ef-c7d5f5f698a4,4fcc7278-2fec-49ee-b0ef-c7d5f5f698a4,1,0,547a6dec-6fe8-439d-a8d9-ac2612af20d2,547a6dec-6fe8-439d-a8d9-ac2612af20d2,1,0,2bc2c4b7-dacb-4cb3-b5b2-712b19bebcd7,2bc2c4b7-dacb-4cb3-b5b2-712b19bebcd7,1,0,1e633034-6dcc-4564-9f40-348c32143314,1e633034-6dcc-4564-9f40-348c32143314,1,0,a43fbfd8-6324-4192-a1a6-5628a7edb4d2,a43fbfd8-6324-4192-a1a6-5628a7edb4d2,1,0,84395058-d46a-428c-b782-a9fa89fea14a,84395058-d46a-428c-b782-a9fa89fea14a,1,0,28905d61-3775-4653-9609-dabf8465fc44,28905d61-3775-4653-9609-dabf8465fc44,1,0,c3c1a825-6b35-4b09-8043-63f75b575707,c3c1a825-6b35-4b09-8043-63f75b575707,1,0,5465466d-48be-493a-aadc-e97046b010cc,5465466d-48be-493a-aadc-e97046b010cc,1,0,fa61df43-49e7-4d5f-a0b9-f35af199f9f5,fa61df43-49e7-4d5f-a0b9-f35af199f9f5,1,0,0b92cced-d818-400c-82b6-7726e912a478,0b92cced-d818-400c-82b6-7726e912a478,1,0,5feb9b74-3d94-4202-a96a-170968f54194,5feb9b74-3d94-4202-a96a-170968f54194,1,0,cc9679a5-1ed2-4290-8c9b-8a2f6614d053,cc9679a5-1ed2-4290-8c9b-8a2f6614d053,1,0,d8621f68-106e-4058-963f-56010491ae2e,d8621f68-106e-4058-963f-56010491ae2e,1,0,4766c40e-6330-4c1d-a64f-0c8c672886a4,4766c40e-6330-4c1d-a64f-0c8c672886a4,1,0,766c9bee-b0fc-4a7f-b88e-cd8c4aad73b8,766c9bee-b0fc-4a7f-b88e-cd8c4aad73b8,1,0,1f3057c2-135f-44b2-9f86-34481fbc5596,1f3057c2-135f-44b2-9f86-34481fbc5596,1,0,f8f0d92c-b7f0-496c-8d33-f8a57dfa16f2,f8f0d92c-b7f0-496c-8d33-f8a57dfa16f2,1,0,f2e2df50-52fc-4e95-909b-80fc91a68f62,f2e2df50-52fc-4e95-909b-80fc91a68f62,1,0,1a1d8dd0-1559-426c-ad3c-baa6eb3a53db,1a1d8dd0-1559-426c-ad3c-baa6eb3a53db,1,0,7a944c45-9b3d-411f-b2ef-de3c896092bb,7a944c45-9b3d-411f-b2ef-de3c896092bb,1,0,d2762764-b5c0-4aeb-8e89-3371972f22d8,d2762764-b5c0-4aeb-8e89-3371972f22d8,1,0,54f3902b-f29a-4f04-8c9d-68c318fcd076,54f3902b-f29a-4f04-8c9d-68c318fcd076,1,0,573f1753-9194-4aaf-9217-5cac70ff108f,573f1753-9194-4aaf-9217-5cac70ff108f,1,0,323997ca-488d-4d84-aa44-da60b6b4d414,323997ca-488d-4d84-aa44-da60b6b4d414,1,0,1f7ec25a-05b1-468b-8857-2bb1aed3678a,1f7ec25a-05b1-468b-8857-2bb1aed3678a,1,0,50d3e00e-1a83-4bd5-91db-0561560caf42,50d3e00e-1a83-4bd5-91db-0561560caf42,1,0,c8ba4901-7f70-4353-b039-d75f1cb3f5b7,c8ba4901-7f70-4353-b039-d75f1cb3f5b7,1,0,c121b8bc-ecbf-4775-b210-3c1e3502a6ac,c121b8bc-ecbf-4775-b210-3c1e3502a6ac,1,0,9f4d5fe5-9bda-4ba9-a313-db1ab0ea14d1,9f4d5fe5-9bda-4ba9-a313-db1ab0ea14d1,1,0,44afff59-0590-4929-93b8-7b49735f21b5,44afff59-0590-4929-93b8-7b49735f21b5,1,0,905624ea-b253-413f-b651-1eb2c5a7d52a,905624ea-b253-413f-b651-1eb2c5a7d52a,1,0,b639ed30-3e37-4c65-a39f-00fe735950eb,b639ed30-3e37-4c65-a39f-00fe735950eb,1,0,76ef7f67-0ce8-4ee2-9134-e793c41b8de3,76ef7f67-0ce8-4ee2-9134-e793c41b8de3,1,0,f137eb0f-bde7-412d-9229-d7a4f9456e6c,f137eb0f-bde7-412d-9229-d7a4f9456e6c,1,0,90880131-8065-4a7e-a0fa-ecff9e27363c,90880131-8065-4a7e-a0fa-ecff9e27363c,1,0,57e9fcea-342c-4089-bd10-befb3faf0dbd,57e9fcea-342c-4089-bd10-befb3faf0dbd,1,0,e624feb5-4630-447b-870c-7e1460296294,e624feb5-4630-447b-870c-7e1460296294,1,0,f85ff11a-163e-4d18-98bc-b0ebe83d34e4,f85ff11a-163e-4d18-98bc-b0ebe83d34e4,1,0,51a0444d-13c8-45a8-97f6-f3f976964bf8,51a0444d-13c8-45a8-97f6-f3f976964bf8,1,0,9892f922-8745-4164-a200-94b5edc1ea0a,9892f922-8745-4164-a200-94b5edc1ea0a,1,0,38eb3fd1-57be-4dc2-bed4-d8107086bf2a,38eb3fd1-57be-4dc2-bed4-d8107086bf2a,1,0,6b6d541b-5dc1-4150-b8d1-5844a694ac6a,6b6d541b-5dc1-4150-b8d1-5844a694ac6a,1,0,2b1619a6-c841-4963-8c51-c1d8d6ba3746,2b1619a6-c841-4963-8c51-c1d8d6ba3746,1,0,eab50f82-4612-47fd-a5c2-9678016a1937,eab50f82-4612-47fd-a5c2-9678016a1937,1,0,2609ba3c-e4de-45b3-86e0-93db39a21eee,2609ba3c-e4de-45b3-86e0-93db39a21eee,1,0,00dcfeab-7ba1-4a50-996e-4fd693dd0514,00dcfeab-7ba1-4a50-996e-4fd693dd0514,1,0,d21971c9-9aa6-448a-ab37-49ad0b0547ec,d21971c9-9aa6-448a-ab37-49ad0b0547ec,1,0,627438b8-c738-4e02-a0e7-cfd7fbf8eca1,627438b8-c738-4e02-a0e7-cfd7fbf8eca1,1,0,3e4361e9-2baf-407b-9320-b2a265b44e46,3e4361e9-2baf-407b-9320-b2a265b44e46,1,0,a5902ed4-a8f1-460e-aced-0094b2c384a3,a5902ed4-a8f1-460e-aced-0094b2c384a3,1,0,85b591b4-a93d-4fcb-bdc7-e6d44436e511,85b591b4-a93d-4fcb-bdc7-e6d44436e511,1,0,00418e6c-77b2-4753-b9ff-3a8013436f8a,00418e6c-77b2-4753-b9ff-3a8013436f8a,1,0,e2c76c41-4c47-4588-a081-7bd81ac1698b,e2c76c41-4c47-4588-a081-7bd81ac1698b,1,0,8deaa3d0-b36b-4f20-a9a8-11d829f5ef9d,8deaa3d0-b36b-4f20-a9a8-11d829f5ef9d,1,0,26986f8d-d56d-4641-9184-2632d0881cca,26986f8d-d56d-4641-9184-2632d0881cca,1,0,92bec607-7217-42f6-8eb9-ace759672336,92bec607-7217-42f6-8eb9-ace759672336,1,0,144676de-f369-49f1-bb21-d60e073936df,144676de-f369-49f1-bb21-d60e073936df,1,0,d5537afb-df5f-4edf-a3d3-ff6b2a908ad9,d5537afb-df5f-4edf-a3d3-ff6b2a908ad9,1,0,38bf6d3b-5435-4bac-b9fc-23b80afeb760,38bf6d3b-5435-4bac-b9fc-23b80afeb760,1,0,644cf757-bff9-4e2e-b72b-1e736c42d4c3,644cf757-bff9-4e2e-b72b-1e736c42d4c3,1,0,a3c9a7eb-2104-4402-954c-3e12de4a7de3,a3c9a7eb-2104-4402-954c-3e12de4a7de3,1,0,a2a51b70-9570-4f53-9d30-e9a9b099a475,a2a51b70-9570-4f53-9d30-e9a9b099a475,1,0,556a0e57-5b3b-4303-a013-0bd296c506b8,556a0e57-5b3b-4303-a013-0bd296c506b8,1,0,969f7e7d-5108-4bb5-9087-386bcd182ea1,969f7e7d-5108-4bb5-9087-386bcd182ea1,1,0,fabbac92-cb98-4087-b3fa-387482ed0d86,fabbac92-cb98-4087-b3fa-387482ed0d86,1,0,bbbc2d1f-2f78-4b7e-b5fb-ca7c74051221,bbbc2d1f-2f78-4b7e-b5fb-ca7c74051221,1,0,304525f8-c697-4835-b0a6-4ed3cbcaf3c6,304525f8-c697-4835-b0a6-4ed3cbcaf3c6,1,0,a96ce77e-7f3a-467a-8bf7-9a640222cf40,a96ce77e-7f3a-467a-8bf7-9a640222cf40,1,0,fdcbe67c-55fb-444d-bed8-cee956ca3530,fdcbe67c-55fb-444d-bed8-cee956ca3530,1,0,e09534e3-ac6e-42a6-86e8-564acb20089a,e09534e3-ac6e-42a6-86e8-564acb20089a,1,0,5e380276-2a08-435c-927e-a7f56f5a4dbc,5e380276-2a08-435c-927e-a7f56f5a4dbc,1,0,6ff5b3cb-efff-430d-bf0a-957405f116ca,6ff5b3cb-efff-430d-bf0a-957405f116ca,1,0,d06e845a-9f54-40dd-b0df-6988def62017,d06e845a-9f54-40dd-b0df-6988def62017,1,0,63223883-06cf-4d01-be95-5e410cc58a22,63223883-06cf-4d01-be95-5e410cc58a22,1,0,1929139f-dabb-4c40-9423-158093360889,1929139f-dabb-4c40-9423-158093360889,1,0,dad92df4-685b-4260-b35f-4d031262dfea,dad92df4-685b-4260-b35f-4d031262dfea,1,0,4399c19a-ddba-42e9-88b4-c5c28abad237,4399c19a-ddba-42e9-88b4-c5c28abad237,1,0,982315ba-df74-4a31-8929-71d1e5e6f147,982315ba-df74-4a31-8929-71d1e5e6f147,1,0,e4703f32-ad6e-4803-8776-7d32c57d3549,e4703f32-ad6e-4803-8776-7d32c57d3549,1,0,8d1c01a9-9806-4e5d-bafb-ce6af11d5650,8d1c01a9-9806-4e5d-bafb-ce6af11d5650,1,0,b8b267e3-75af-4140-b515-d99e8e748e84,b8b267e3-75af-4140-b515-d99e8e748e84,1,0,ff976027-75e8-475c-abfa-876d36733c13,ff976027-75e8-475c-abfa-876d36733c13,1,0,7452d9c0-cb03-4d1b-afd4-8855950f2ad8,7452d9c0-cb03-4d1b-afd4-8855950f2ad8,1,0,32d4a42d-6e4d-49db-b5bc-1ea6dbe9fe4d,32d4a42d-6e4d-49db-b5bc-1ea6dbe9fe4d,1,0,40c8b547-35d0-4dbd-8fa1-ba108c3022b1,40c8b547-35d0-4dbd-8fa1-ba108c3022b1,1,0,3f823f5b-e5a8-40af-8fc3-e4c6ffb18fa3,3f823f5b-e5a8-40af-8fc3-e4c6ffb18fa3,1,0,c0218ef0-4aa1-4ff1-963b-e6ab1001ae9e,c0218ef0-4aa1-4ff1-963b-e6ab1001ae9e,1,0,0a1837b6-9a0a-4a86-b929-89d032d41383,0a1837b6-9a0a-4a86-b929-89d032d41383,1,0,62ff29be-7d52-4c63-8726-c55bf69a64de,62ff29be-7d52-4c63-8726-c55bf69a64de,1,0,e55d259f-cfaa-46f9-92c4-687e1ff3b89d,e55d259f-cfaa-46f9-92c4-687e1ff3b89d,1,0,123b8af3-8724-4f77-b1d6-6768832a43a7,123b8af3-8724-4f77-b1d6-6768832a43a7,1,0,cb81fb9f-16a2-4265-92a9-b827ca2fd588,cb81fb9f-16a2-4265-92a9-b827ca2fd588,1,0,cf13e2d9-72a0-47c0-bae2-f674024bbdb2,cf13e2d9-72a0-47c0-bae2-f674024bbdb2,1,0,62d4d073-80df-41e6-a915-43a4f5575206,62d4d073-80df-41e6-a915-43a4f5575206,1,0,145ecede-baae-4725-832a-5387794922ed,145ecede-baae-4725-832a-5387794922ed,1,0,540be4e1-6eae-48e2-a645-8bd0a1259c65,540be4e1-6eae-48e2-a645-8bd0a1259c65,1,0,2fa09d14-6d28-4bfb-87c3-894e66ab6bca,2fa09d14-6d28-4bfb-87c3-894e66ab6bca,1,0,f772abd3-8ea0-41e9-aaca-c5375778941a,f772abd3-8ea0-41e9-aaca-c5375778941a,1,0,cfa1b3e7-747b-409a-8bb5-6d41b85b7105,cfa1b3e7-747b-409a-8bb5-6d41b85b7105,1,0,a1e494f8-96a4-41bd-9234-b87e8d8742c5,a1e494f8-96a4-41bd-9234-b87e8d8742c5,1,0,35bc58df-8aff-48dd-83a9-b60b0461f94d,35bc58df-8aff-48dd-83a9-b60b0461f94d,1,0,b322b047-16eb-4500-826a-6dfebb7d997a,b322b047-16eb-4500-826a-6dfebb7d997a,1,0,83ead93b-4ff6-487d-934e-25088944fccc,83ead93b-4ff6-487d-934e-25088944fccc,1,0,764c76cc-0473-4633-868d-02f96aa43c10,764c76cc-0473-4633-868d-02f96aa43c10,1,0,c8da922f-e31e-49b0-b90e-1c060424bde5,c8da922f-e31e-49b0-b90e-1c060424bde5,1,0,7b01236c-5ab7-43fa-aa0e-1ae55c8a4efe,7b01236c-5ab7-43fa-aa0e-1ae55c8a4efe,1,0,eca025d2-4fe9-4542-b9f5-46ae2631256e,eca025d2-4fe9-4542-b9f5-46ae2631256e,1,0,0bd92b85-3844-43c2-a846-119993806041,0bd92b85-3844-43c2-a846-119993806041,1,0,9416a741-5106-454e-b953-81f3d99d5e71,9416a741-5106-454e-b953-81f3d99d5e71,1,0,30f6aedf-946f-400c-822d-5fa375b8fb1d,30f6aedf-946f-400c-822d-5fa375b8fb1d,1,0,46e313f7-54da-4884-89e8-cdba6ae30d30,46e313f7-54da-4884-89e8-cdba6ae30d30,1,0,feb1a5c1-c805-4079-8f05-8a44f51b0b02,feb1a5c1-c805-4079-8f05-8a44f51b0b02,1,0,ff7916bd-cbd1-4d9e-8aab-bad9fffaa0d4,ff7916bd-cbd1-4d9e-8aab-bad9fffaa0d4,1,0,1f55f330-7c0a-4a29-905f-51d664515bc5,1f55f330-7c0a-4a29-905f-51d664515bc5,1,0,308781d9-ea18-4c30-ba95-ef822e7ef739,308781d9-ea18-4c30-ba95-ef822e7ef739,1,0,a7f3ee04-4ffe-4a21-b2ad-92cd3f4acd8f,a7f3ee04-4ffe-4a21-b2ad-92cd3f4acd8f,1,0,6106e958-354c-4211-992c-3c3819e8828e,6106e958-354c-4211-992c-3c3819e8828e,1,0,9d6d77a9-1f55-4162-93a5-14bb3f3febaf,9d6d77a9-1f55-4162-93a5-14bb3f3febaf,1,0,61789ea5-aad2-4b3b-a1c7-3ff7409379eb,61789ea5-aad2-4b3b-a1c7-3ff7409379eb,1,0,2cd04d4c-2619-40c9-adf4-7bb281f045b6,2cd04d4c-2619-40c9-adf4-7bb281f045b6,1,0,1d6b8425-360c-4ab1-9bab-cc9a3b590bb2,1d6b8425-360c-4ab1-9bab-cc9a3b590bb2,1,0,9f67d228-79aa-44e6-8dc7-fae4fbdfef2a,9f67d228-79aa-44e6-8dc7-fae4fbdfef2a,1,0,231d3950-f363-4e63-83cd-8ddb81507c27,231d3950-f363-4e63-83cd-8ddb81507c27,1,0,87429f11-bf95-4013-bf13-da904570f88d,87429f11-bf95-4013-bf13-da904570f88d,1,0,6173cab2-e0f5-40c1-8e74-4f41fc8bd68f,6173cab2-e0f5-40c1-8e74-4f41fc8bd68f,1,0,feb41347-62db-41cf-ace0-d8b9de361af3,feb41347-62db-41cf-ace0-d8b9de361af3,1,0,5a088468-4065-4e0c-9b84-1162de8d3fdd,5a088468-4065-4e0c-9b84-1162de8d3fdd,1,0,dbdf3ae7-a0af-44b9-8e3d-c402d98cda03,dbdf3ae7-a0af-44b9-8e3d-c402d98cda03,1,0,f3ae1a2c-e0ca-461b-ba5a-76a6423c6325,f3ae1a2c-e0ca-461b-ba5a-76a6423c6325,1,0,b233d29c-3979-4ef6-b7f0-89ca88f65e82,b233d29c-3979-4ef6-b7f0-89ca88f65e82,1,0,684ca876-644e-43f5-b96a-1561fb5b1935,684ca876-644e-43f5-b96a-1561fb5b1935,1,0,5f91b00f-d8fc-4d63-8486-66339357ab22,5f91b00f-d8fc-4d63-8486-66339357ab22,1,0,16d44ab1-4bce-4df8-a215-6ed5173c75a8,16d44ab1-4bce-4df8-a215-6ed5173c75a8,1,0,86a9d7ab-7a96-4c58-8073-ca4b2b99cceb,86a9d7ab-7a96-4c58-8073-ca4b2b99cceb,1,0,1ae1a239-0d88-4467-af33-32bcfe6cf61d,1ae1a239-0d88-4467-af33-32bcfe6cf61d,1,0,375977c1-5745-4e78-a4df-cef966c0ccf8,375977c1-5745-4e78-a4df-cef966c0ccf8,1,0,2582a714-a6d6-4d37-b9a7-5e89e18b0f27,2582a714-a6d6-4d37-b9a7-5e89e18b0f27,1,0,c3796d85-2a24-43c4-9673-64e56249a1d0,c3796d85-2a24-43c4-9673-64e56249a1d0,1,0,c234a467-ad6c-41d0-ac9e-8592acd8d9d2,c234a467-ad6c-41d0-ac9e-8592acd8d9d2,1,0,fc1066b5-20d4-4c73-85f8-9889e554d6e1,fc1066b5-20d4-4c73-85f8-9889e554d6e1,1,0,a9b6b5fd-1862-4207-87e8-5c25a8f86c57,a9b6b5fd-1862-4207-87e8-5c25a8f86c57,1,0,731211c2-ef90-4883-9525-83cd91b742ac,731211c2-ef90-4883-9525-83cd91b742ac,1,0,0adf02da-940a-4bfc-afa5-59605494a169,0adf02da-940a-4bfc-afa5-59605494a169,1,0,8361991a-0f30-4a03-9a4c-90556b744f53,8361991a-0f30-4a03-9a4c-90556b744f53,1,0,5a3cc2a8-f519-45ac-af9b-c57a4f1acdc0,5a3cc2a8-f519-45ac-af9b-c57a4f1acdc0,1,0,08427a9a-fb3a-4bc1-b2e2-72e4f89680cd,08427a9a-fb3a-4bc1-b2e2-72e4f89680cd,1,0,259cb8f5-9e78-4b2f-941b-ccb4b1112c8b,259cb8f5-9e78-4b2f-941b-ccb4b1112c8b,1,0,24f9d1a6-73d0-4cc7-b3ca-d36c5c7a9892,24f9d1a6-73d0-4cc7-b3ca-d36c5c7a9892,1,0,73c1a829-0191-486b-97a0-7f333c6f8011,73c1a829-0191-486b-97a0-7f333c6f8011,1,0,db28f23f-a771-46c0-96e8-5e4389b28b8b,db28f23f-a771-46c0-96e8-5e4389b28b8b,1,0,5504f5d1-35d8-4a47-a0e1-003fe00395c1,5504f5d1-35d8-4a47-a0e1-003fe00395c1,1,0,56242b05-d722-4d4a-82d9-517e0e169d0b,56242b05-d722-4d4a-82d9-517e0e169d0b,1,0,f9196766-4ae2-4a73-bed6-4a8838323e02,f9196766-4ae2-4a73-bed6-4a8838323e02,1,0,4eeda6df-fb48-4c88-853f-9c35e2b3a3cf,4eeda6df-fb48-4c88-853f-9c35e2b3a3cf,1,0,52fd1e04-44b6-4405-a2de-ec5c0cf66b64,52fd1e04-44b6-4405-a2de-ec5c0cf66b64,1,0,9a647b38-73da-4491-997b-773059cfd1c9,9a647b38-73da-4491-997b-773059cfd1c9,1,0,50a1e3bf-8624-4474-854e-21b89aaf97ed,50a1e3bf-8624-4474-854e-21b89aaf97ed,1,0,503b3eab-b7f1-4ede-8845-3290a834cec7,503b3eab-b7f1-4ede-8845-3290a834cec7,1,0,847b97a3-d0bc-45e2-b06c-932bb22d8eca,847b97a3-d0bc-45e2-b06c-932bb22d8eca,1,0,6c7b82ca-37b0-4f67-b7fa-ab1b77c0fb61,6c7b82ca-37b0-4f67-b7fa-ab1b77c0fb61,1,0,3116fa60-bc42-4dea-aa03-387896168690,3116fa60-bc42-4dea-aa03-387896168690,1,0,ca797560-8802-4bdc-b21f-7a7fd795beae,ca797560-8802-4bdc-b21f-7a7fd795beae,1,0,7b074b91-3c8e-48b3-8858-b6ea1c531f66,7b074b91-3c8e-48b3-8858-b6ea1c531f66,1,0,3df19dbf-efe7-4e31-99ad-fafb59ec1329,3df19dbf-efe7-4e31-99ad-fafb59ec1329,1,0,baf12d47-fbfe-4563-aa23-26d9f7e83169,baf12d47-fbfe-4563-aa23-26d9f7e83169,1,0,e2046f49-6fea-4bf4-92b0-92f3c8357bcf,e2046f49-6fea-4bf4-92b0-92f3c8357bcf,1,0,0ba11486-1972-4434-ab1a-5bb75cc05e9f,0ba11486-1972-4434-ab1a-5bb75cc05e9f,1,0,4ed9c555-7dd0-4577-bf62-152b4c5ec9f2,4ed9c555-7dd0-4577-bf62-152b4c5ec9f2,1,0,c1c62215-41b8-40bc-a806-1347db5b03e9,c1c62215-41b8-40bc-a806-1347db5b03e9,1,0,a24322f3-c7a5-4b25-bad6-9c75712a3e58,a24322f3-c7a5-4b25-bad6-9c75712a3e58,1,0,679d2b3b-a354-4dec-b49d-ab1163756e3a,679d2b3b-a354-4dec-b49d-ab1163756e3a,1,0,665e96bc-8ec1-4008-b9bd-db95a234b9b8,665e96bc-8ec1-4008-b9bd-db95a234b9b8,1,0,a8021ff9-f0ae-49ab-b8ac-5e3d8fe90d82,a8021ff9-f0ae-49ab-b8ac-5e3d8fe90d82,1,0,f09b09ce-9e3c-406a-8508-b6e7e6ec966e,f09b09ce-9e3c-406a-8508-b6e7e6ec966e,1,0,9bf55587-1ffe-42bc-b8e8-3f956956f689,9bf55587-1ffe-42bc-b8e8-3f956956f689,1,0,2f67931e-543f-457e-80fd-78ca754e2e9c,2f67931e-543f-457e-80fd-78ca754e2e9c,1,0,595e5752-36a7-4bba-8a40-26920acae01d,595e5752-36a7-4bba-8a40-26920acae01d,1,0,28801fba-c429-4afa-bdcd-b3ec3ec22fda,28801fba-c429-4afa-bdcd-b3ec3ec22fda,1,0,d1a873ae-d45b-4600-9419-e701dce3da02,d1a873ae-d45b-4600-9419-e701dce3da02,1,0,e3a31f0d-a98f-43c6-bc39-087095ae8c39,e3a31f0d-a98f-43c6-bc39-087095ae8c39,1,0,e39d8ff3-52db-4ba4-b4ea-42d5ee787076,e39d8ff3-52db-4ba4-b4ea-42d5ee787076,1,0,b1c1c2eb-f9cd-468a-8398-b0b7f611f832,b1c1c2eb-f9cd-468a-8398-b0b7f611f832,1,0,4bb0f7c3-62f3-4352-9bc8-e243dd18fe4a,4bb0f7c3-62f3-4352-9bc8-e243dd18fe4a,1,0,bc106ef9-3eeb-40d4-aa59-ae1855ba1744,bc106ef9-3eeb-40d4-aa59-ae1855ba1744,1,0,73d8b319-9bea-4638-a602-23c12f37c227,73d8b319-9bea-4638-a602-23c12f37c227,1,0,a43e9de0-2921-4c58-a5f8-7446258be967,a43e9de0-2921-4c58-a5f8-7446258be967,1,0,307656e3-df7f-46e7-946c-bbd439265c95,307656e3-df7f-46e7-946c-bbd439265c95,1,0,eb3dfdc7-58b8-4b1f-b079-368c262364c9,eb3dfdc7-58b8-4b1f-b079-368c262364c9,1,0,5030a318-f8f7-4ec7-80d6-6eee0772562f,5030a318-f8f7-4ec7-80d6-6eee0772562f,1,0,242e911d-e49c-4b8a-8543-cc2e079220fd,242e911d-e49c-4b8a-8543-cc2e079220fd,1,0,9ea39d31-3775-4fb8-a3f3-202e54354d49,9ea39d31-3775-4fb8-a3f3-202e54354d49,1,0,73044e20-148c-46e9-b5b5-973c91de0d61,73044e20-148c-46e9-b5b5-973c91de0d61,1,0,24cff6c8-6c20-4383-b97c-6afa52738960,24cff6c8-6c20-4383-b97c-6afa52738960,1,0,462e2694-750d-49ef-93ac-17a7779be68d,462e2694-750d-49ef-93ac-17a7779be68d,1,0,c24ff02e-5afc-45df-81cf-64ea2b261c2d,c24ff02e-5afc-45df-81cf-64ea2b261c2d,1,0,5d9d88ea-b2e4-425c-bb4d-a005e867d56c,5d9d88ea-b2e4-425c-bb4d-a005e867d56c,1,0,b76d342c-0f9d-4eb0-b49e-a9f472a4dd0d,b76d342c-0f9d-4eb0-b49e-a9f472a4dd0d,1,0,85639a53-b367-49ce-84f2-4e21d81c489b,85639a53-b367-49ce-84f2-4e21d81c489b,1,0,24b59586-178e-4efc-90ae-529553f3bb6c,24b59586-178e-4efc-90ae-529553f3bb6c,1,0,20e75dd5-222a-4100-aa43-3684991e3f21,20e75dd5-222a-4100-aa43-3684991e3f21,1,0,3c611832-4bc2-4229-a27d-d5dc82f3a498,3c611832-4bc2-4229-a27d-d5dc82f3a498,1,0,50e9eb52-02e3-44ff-9c9e-e76dbe38da63,50e9eb52-02e3-44ff-9c9e-e76dbe38da63,1,0,5dadc422-1fbd-4918-9db3-09ec72c3404e,5dadc422-1fbd-4918-9db3-09ec72c3404e,1,0,ffdaf8a0-7a8f-4756-bdfc-a0c6ae6c3869,ffdaf8a0-7a8f-4756-bdfc-a0c6ae6c3869,1,0,d970abc7-4437-4fc4-87d1-bab2ddde8884,d970abc7-4437-4fc4-87d1-bab2ddde8884,1,0,ee83328e-91d2-4022-b1d3-d7d137098ee9,ee83328e-91d2-4022-b1d3-d7d137098ee9,1,0,ab1bcabf-ffb0-4914-8ad0-b94b5aaeab1d,ab1bcabf-ffb0-4914-8ad0-b94b5aaeab1d,1,0,c5478d09-c8d3-4cc6-878e-27656ecc8409,c5478d09-c8d3-4cc6-878e-27656ecc8409,1,0,01b97d2f-40b9-4f12-8bc5-ab75fd160b7c,01b97d2f-40b9-4f12-8bc5-ab75fd160b7c,1,0,75974146-5b1a-412c-b7d5-1575704bbdab,75974146-5b1a-412c-b7d5-1575704bbdab,1,0,949f87cb-258c-4b6b-95ee-8a7491a4b64e,949f87cb-258c-4b6b-95ee-8a7491a4b64e,1,0,8a348012-99dc-4dc9-8bec-0df3caf4cdc5,8a348012-99dc-4dc9-8bec-0df3caf4cdc5,1,0,5c089988-5381-41ed-9f05-f85db46b8d94,5c089988-5381-41ed-9f05-f85db46b8d94,1,0,85a36352-1569-4ce4-aeba-477db524c36d,85a36352-1569-4ce4-aeba-477db524c36d,1,0,ebfb6f80-88f5-4046-8ae7-e11a7b0c1beb,ebfb6f80-88f5-4046-8ae7-e11a7b0c1beb,1,0,d99991b8-3a81-4e18-b0ad-05fc3e3a199b,d99991b8-3a81-4e18-b0ad-05fc3e3a199b,1,0,dd383422-dddb-4a81-9326-015fd345b5c1,dd383422-dddb-4a81-9326-015fd345b5c1,1,0,b2e656c1-f4ff-4d95-b066-4ee11ce4dea8,b2e656c1-f4ff-4d95-b066-4ee11ce4dea8,1,0,2d86d1fc-5367-47b8-804e-7f9c5fc8f3b1,2d86d1fc-5367-47b8-804e-7f9c5fc8f3b1,1,0,aa299fc6-051f-487c-ada4-451e08c4763c,aa299fc6-051f-487c-ada4-451e08c4763c,1,0,782cb93d-36e6-4923-b2b6-75caa3459cd6,782cb93d-36e6-4923-b2b6-75caa3459cd6,1,0,800ef5f0-fdd1-4f8b-8c0b-9744952bfb5b,800ef5f0-fdd1-4f8b-8c0b-9744952bfb5b,1,0,b51eaf45-baa1-4d1c-bcb7-a89bb8bcc26a,b51eaf45-baa1-4d1c-bcb7-a89bb8bcc26a,1,0,0f314b6b-5ed1-46ed-bdfd-cf53330c2783,0f314b6b-5ed1-46ed-bdfd-cf53330c2783,1,0,322645d4-e3fb-467b-a55d-d8e74cff2ea3,322645d4-e3fb-467b-a55d-d8e74cff2ea3,1,0,5ea29362-0ab7-4ca3-865e-bf93db5ca24b,5ea29362-0ab7-4ca3-865e-bf93db5ca24b,1,0,8363bd46-1ea5-44f0-858a-05bc03f6020e,8363bd46-1ea5-44f0-858a-05bc03f6020e,1,0,0f039952-09d3-49c8-b909-e8333a3fc8f9,0f039952-09d3-49c8-b909-e8333a3fc8f9,1,0,d8fc4644-5351-443c-8b5d-5de2c4b855d1,d8fc4644-5351-443c-8b5d-5de2c4b855d1,1,0,64ff6058-c6f3-4682-b9a1-11ec438fa447,64ff6058-c6f3-4682-b9a1-11ec438fa447,1,0,9cd2fc77-a4b0-457e-a6b0-63dbf521bf90,9cd2fc77-a4b0-457e-a6b0-63dbf521bf90,1,0,a321b6db-391b-4c65-8d27-ce486d10055e,a321b6db-391b-4c65-8d27-ce486d10055e,1,0,71dfde27-3762-4dd0-9252-6e703ce1b101,71dfde27-3762-4dd0-9252-6e703ce1b101,1,0,ced01234-9417-49ce-adf0-8cdd15e6dd7d,ced01234-9417-49ce-adf0-8cdd15e6dd7d,1,0,c1272bfc-196a-4f99-935f-e2516bc138d2,c1272bfc-196a-4f99-935f-e2516bc138d2,1,0,313e0688-745a-4385-b040-7ef8317a0eb7,313e0688-745a-4385-b040-7ef8317a0eb7,1,0,7fe61c5d-30bc-440d-9e40-12ff3b296616,7fe61c5d-30bc-440d-9e40-12ff3b296616,1,0,37c37f15-f84b-456b-aab6-729562dc0908,37c37f15-f84b-456b-aab6-729562dc0908,1,0,996c7873-1cc9-44f6-915b-5c6ed7ef2370,996c7873-1cc9-44f6-915b-5c6ed7ef2370,1,0,8dc08932-0988-4e82-8a5f-385c0694f9ff,8dc08932-0988-4e82-8a5f-385c0694f9ff,1,0,13dee5d8-f165-48de-9ccb-3ef0239f4b27,13dee5d8-f165-48de-9ccb-3ef0239f4b27,1,0,2767473e-79fb-4c7c-a7d1-a83a8f2df71d,2767473e-79fb-4c7c-a7d1-a83a8f2df71d,1,0,0eea37cc-47f8-4819-85da-d4991f4e58ed,0eea37cc-47f8-4819-85da-d4991f4e58ed,1,0,45a2569e-820c-4d7d-ba74-4a781d26bb2b,45a2569e-820c-4d7d-ba74-4a781d26bb2b,1,0,8a13c899-1659-48cf-9aa2-07ca99547b7b,8a13c899-1659-48cf-9aa2-07ca99547b7b,1,0,eb3f959c-94a4-4e77-b9f9-e81954254079,eb3f959c-94a4-4e77-b9f9-e81954254079,1,0,91a0ceed-03ce-4914-9cd1-dec49bba336f,91a0ceed-03ce-4914-9cd1-dec49bba336f,1,0,99387869-f8b1-4269-bd26-e39380d17b69,99387869-f8b1-4269-bd26-e39380d17b69,1,0,4b2acdb9-fefd-4735-9dfd-d7d141967f3c,4b2acdb9-fefd-4735-9dfd-d7d141967f3c,1,0,bc07d643-a044-4882-b95b-2173a197fd0e,bc07d643-a044-4882-b95b-2173a197fd0e,1,0,826c2821-147d-4aaf-910c-acfbdb58a29f,826c2821-147d-4aaf-910c-acfbdb58a29f,1,0,aeea0075-bdeb-41b7-b9cc-1da7b500455f,aeea0075-bdeb-41b7-b9cc-1da7b500455f,1,0,11c086b0-c646-4701-983d-c38758286354,11c086b0-c646-4701-983d-c38758286354,1,0,21fad9b6-44df-417c-ba18-de4b8af98a34,21fad9b6-44df-417c-ba18-de4b8af98a34,1,0,f5ef3f75-7d12-4284-844f-54d19d1f7e2f,f5ef3f75-7d12-4284-844f-54d19d1f7e2f,1,0,7974e41d-5af3-4636-b405-c9405d89fb53,7974e41d-5af3-4636-b405-c9405d89fb53,1,0,36d6b0e1-5e10-408a-8eb1-09839e57690f,36d6b0e1-5e10-408a-8eb1-09839e57690f,1,0,6423b849-7ca4-4501-8856-445157d7e5df,6423b849-7ca4-4501-8856-445157d7e5df,1,0,0819e2b0-1eb0-41b3-ab89-0974bd926fb6,0819e2b0-1eb0-41b3-ab89-0974bd926fb6,1,0,e814287f-1c13-4f74-9507-d22a62394fd2,e814287f-1c13-4f74-9507-d22a62394fd2,1,0,417ac987-7369-45af-b670-fdffb048f33d,417ac987-7369-45af-b670-fdffb048f33d,1,0,640a5d72-dbc7-421b-afdb-cc3a4622ae04,640a5d72-dbc7-421b-afdb-cc3a4622ae04,1,0,79da84c1-5ac2-4472-8eb9-f0484b9582c2,79da84c1-5ac2-4472-8eb9-f0484b9582c2,1,0,2d0b161b-7d69-4ec4-a483-79bd458cb62c,2d0b161b-7d69-4ec4-a483-79bd458cb62c,1,0,f178bc1b-ebea-4fa9-8861-fe0d91f103e4,f178bc1b-ebea-4fa9-8861-fe0d91f103e4,1,0,e33a9c94-7e98-4b38-ba20-4546a90b2937,e33a9c94-7e98-4b38-ba20-4546a90b2937,1,0,1610e73c-58df-41cc-8349-51b920806821,1610e73c-58df-41cc-8349-51b920806821,1,0,ae37f465-1ee5-4f06-a834-deea9e9e0eb3,ae37f465-1ee5-4f06-a834-deea9e9e0eb3,1,0,c6ccf82f-f130-4037-9e89-1e0365b996a4,c6ccf82f-f130-4037-9e89-1e0365b996a4,1,0,c532963e-0d92-44b9-9cfc-43ed2744ccf9,c532963e-0d92-44b9-9cfc-43ed2744ccf9,1,0,6aff2855-24d4-4f90-b617-53326efdd1bd,6aff2855-24d4-4f90-b617-53326efdd1bd,1,0,0107a9c7-4c85-49c4-918a-925d85d57a0b,0107a9c7-4c85-49c4-918a-925d85d57a0b,1,0,6e1efa55-969b-4c2b-8af2-b11d672db5f0,6e1efa55-969b-4c2b-8af2-b11d672db5f0,1,0,e5b578a1-e33b-4d49-8064-427aa928a844,e5b578a1-e33b-4d49-8064-427aa928a844,1,0,f74e97ad-fef6-4122-a056-86f2d59dfdaf,f74e97ad-fef6-4122-a056-86f2d59dfdaf,1,0,60340efe-6a9e-4676-856f-87bfae5409f7,60340efe-6a9e-4676-856f-87bfae5409f7,1,0,ac9f4c2e-316b-4f96-8fe6-fb5a5a7e48ed,ac9f4c2e-316b-4f96-8fe6-fb5a5a7e48ed,1,0,da808c0e-b1b0-4d46-8c63-2bbe7d0dca9d,da808c0e-b1b0-4d46-8c63-2bbe7d0dca9d,1,0,b848d70a-9d08-4b1a-8df1-17697432516d,b848d70a-9d08-4b1a-8df1-17697432516d,1,0,9a30b92d-0c5b-4e11-a741-2b6efa8ac229,9a30b92d-0c5b-4e11-a741-2b6efa8ac229,1,0,92876c9e-52ff-480d-9878-5766f4f9d12c,92876c9e-52ff-480d-9878-5766f4f9d12c,1,0,b729d739-5249-4765-85ee-fd792bb22911,b729d739-5249-4765-85ee-fd792bb22911,1,0,d65c4485-7bac-4206-9a6c-7156f4bb876d,d65c4485-7bac-4206-9a6c-7156f4bb876d,1,0,d431d1e2-13dc-495c-9de1-b5ec872eceed,d431d1e2-13dc-495c-9de1-b5ec872eceed,1,0,e8bec681-d269-41ba-9184-556cbcc27d74,e8bec681-d269-41ba-9184-556cbcc27d74,1,0,b8aaef91-f72c-4127-a494-771c13694ca4,b8aaef91-f72c-4127-a494-771c13694ca4,1,0,433a114f-3198-4ef6-bbf8-ce9b54fdb736,433a114f-3198-4ef6-bbf8-ce9b54fdb736,1,0,02ac711c-e38e-422e-ac28-ba1b298df9cc,02ac711c-e38e-422e-ac28-ba1b298df9cc,1,0,3e090261-4aa2-4ece-9f77-62df83c890b3,3e090261-4aa2-4ece-9f77-62df83c890b3,1,0,9292034c-24e8-49a7-9b77-7974e117847d,9292034c-24e8-49a7-9b77-7974e117847d,1,0,3327b7d4-62fc-44cc-83b4-c449bfa4e706,3327b7d4-62fc-44cc-83b4-c449bfa4e706,1,0,43ecee25-68eb-48cf-bbaa-aee71052438f,43ecee25-68eb-48cf-bbaa-aee71052438f,1,0,93799f8b-0188-4546-8815-35e733bcc2b1,93799f8b-0188-4546-8815-35e733bcc2b1,1,0,9dc3a563-11bb-40a7-8431-c1d4367ccbaf,9dc3a563-11bb-40a7-8431-c1d4367ccbaf,1,0,c9ea4e72-5f01-42ae-88e3-52e49757b26f,c9ea4e72-5f01-42ae-88e3-52e49757b26f,1,0,38d92d75-c8b8-42d6-9e0a-6dc0811a8652,38d92d75-c8b8-42d6-9e0a-6dc0811a8652,1,0,0f564dbe-6a6e-48df-9718-5cea5d608ee6,0f564dbe-6a6e-48df-9718-5cea5d608ee6,1,0,a623fef1-96eb-41ba-93fe-09162698f419,a623fef1-96eb-41ba-93fe-09162698f419,1,0,45a8d7cb-c927-4a4e-a653-13fd9b1eda10,45a8d7cb-c927-4a4e-a653-13fd9b1eda10,1,0,d8e1f92f-9efa-422d-bb21-43bd1a363cec,d8e1f92f-9efa-422d-bb21-43bd1a363cec,1,0,c1416383-bd7e-4dc4-ad88-d98ac87157fd,c1416383-bd7e-4dc4-ad88-d98ac87157fd,1,0,5e8bddc7-7836-4ec8-b6e1-0c15d228f47e,5e8bddc7-7836-4ec8-b6e1-0c15d228f47e,1,0,d5d9976a-4cc0-43f7-afd6-d43cebb07940,d5d9976a-4cc0-43f7-afd6-d43cebb07940,1,0,899f1526-d6bc-42ef-852e-7297a06db9e3,899f1526-d6bc-42ef-852e-7297a06db9e3,1,0,1b4feda1-e555-4b85-b236-b21153a7246f,1b4feda1-e555-4b85-b236-b21153a7246f,1,0,61d3cef4-2c42-417d-a762-a2d2f5a28924,61d3cef4-2c42-417d-a762-a2d2f5a28924,1,0,793d7af5-b499-4646-9e8e-a5728bf71338,793d7af5-b499-4646-9e8e-a5728bf71338,1,0,e4850e53-03b0-43ba-8365-feb89eb38102,e4850e53-03b0-43ba-8365-feb89eb38102,1,0,c694c132-1ddb-4273-818a-d3cca88c082a,c694c132-1ddb-4273-818a-d3cca88c082a,1,0,cd4da06e-c06b-4233-befc-1bc4c4db58e3,cd4da06e-c06b-4233-befc-1bc4c4db58e3,1,0,918a01fe-f753-4a4a-9200-55bbd6edaf5f,918a01fe-f753-4a4a-9200-55bbd6edaf5f,1,0,51a8a209-2a9d-419f-9fda-f7aeac68bdbe,51a8a209-2a9d-419f-9fda-f7aeac68bdbe,1,0,ef43961f-8cac-4f3f-bcee-c6bc51c4148c,ef43961f-8cac-4f3f-bcee-c6bc51c4148c,1,0,7ab6acda-6732-4582-8092-d43f9a98a28d,7ab6acda-6732-4582-8092-d43f9a98a28d,1,0,5ab1d405-bfc3-4440-8cdd-3a63013b064d,5ab1d405-bfc3-4440-8cdd-3a63013b064d,1,0,d6704410-6297-481e-a6cb-6d6aa566b4f8,d6704410-6297-481e-a6cb-6d6aa566b4f8,1,0,398937ca-b035-43bd-b0da-8c5153a87cb8,398937ca-b035-43bd-b0da-8c5153a87cb8,1,0,5b441321-bd1e-4c56-8f09-365b05985eed,5b441321-bd1e-4c56-8f09-365b05985eed,1,0,6bcba052-4d81-409d-b1a2-eed6be6fb024,6bcba052-4d81-409d-b1a2-eed6be6fb024,1,0,559f1e66-e8da-437a-aa27-d0e1be6619b6,559f1e66-e8da-437a-aa27-d0e1be6619b6,1,0,704d69cd-d921-4957-a004-43bd7eb4d979,704d69cd-d921-4957-a004-43bd7eb4d979,1,0,f1594682-16ac-408c-8307-a7a8db79b09f,f1594682-16ac-408c-8307-a7a8db79b09f,1,0,863aebd2-ce32-4f1f-bb3d-d6062ab187fd,863aebd2-ce32-4f1f-bb3d-d6062ab187fd,1,0,4cb814d8-cb1b-4366-b500-e820ad526b0c,4cb814d8-cb1b-4366-b500-e820ad526b0c,1,0,7da5f3b4-6330-4112-9d3a-7bb42996aa4a,7da5f3b4-6330-4112-9d3a-7bb42996aa4a,1,0,6c43df9f-ca36-415b-afec-302807820d73,6c43df9f-ca36-415b-afec-302807820d73,1,0,c7fb7551-806a-40b2-8879-14cd897b60d8,c7fb7551-806a-40b2-8879-14cd897b60d8,1,0,68337023-d573-4d04-95b6-44f73258c2a4,68337023-d573-4d04-95b6-44f73258c2a4,1,0,7cf39337-b722-486f-8e37-a62239d0ccd2,7cf39337-b722-486f-8e37-a62239d0ccd2,1,0,2571cfaf-d876-4385-a60a-1488aacf7080,2571cfaf-d876-4385-a60a-1488aacf7080,1,0,4ea1dd0a-6eab-48e4-a6a7-314d0e211d6c,4ea1dd0a-6eab-48e4-a6a7-314d0e211d6c,1,0,44398566-3189-4584-8f8a-9deb1d07ce41,44398566-3189-4584-8f8a-9deb1d07ce41,1,0,6f4e3082-9c8c-4289-8cc2-704c8d2763ce,6f4e3082-9c8c-4289-8cc2-704c8d2763ce,1,0,accfa63a-479d-4996-95bc-cdf5acdf203c,accfa63a-479d-4996-95bc-cdf5acdf203c,1,0,351998e0-8939-4dd4-a833-f4756bcc53b8,351998e0-8939-4dd4-a833-f4756bcc53b8,1,0,093332f5-3eb4-478c-ac95-59dcdc96765a,093332f5-3eb4-478c-ac95-59dcdc96765a,1,0,cd69bad8-524e-4be4-88cc-7732a88b38b8,cd69bad8-524e-4be4-88cc-7732a88b38b8,1,0,0a32248c-6994-4988-90d1-30882bc9da6b,0a32248c-6994-4988-90d1-30882bc9da6b,1,0,b57b53cb-6972-4bda-ae46-96571be1ebec,b57b53cb-6972-4bda-ae46-96571be1ebec,1,0,1a1a9636-fb72-4e4a-af96-5858442b1e61,1a1a9636-fb72-4e4a-af96-5858442b1e61,1,0,bca9cf34-9e11-4014-976a-28c4330b136e,bca9cf34-9e11-4014-976a-28c4330b136e,1,0,65fffe1a-6f36-4f50-975f-4471ad29d3ec,65fffe1a-6f36-4f50-975f-4471ad29d3ec,1,0,8fe5dad5-686a-4631-ae05-2917c33f7d83,8fe5dad5-686a-4631-ae05-2917c33f7d83,1,0,edef86c6-73bf-4e47-b62d-b2b548a732cd,edef86c6-73bf-4e47-b62d-b2b548a732cd,1,0,a1715044-d76f-4238-ba3e-989d04078d83,a1715044-d76f-4238-ba3e-989d04078d83,1,0,e72e59c0-391d-497e-9407-063e0edf573e,e72e59c0-391d-497e-9407-063e0edf573e,1,0,ae8a1e69-ee1c-4efa-8d63-0279b18617f6,ae8a1e69-ee1c-4efa-8d63-0279b18617f6,1,0,a7ec91a5-2ed4-4ecd-b794-fcd3bb5ea4a2,a7ec91a5-2ed4-4ecd-b794-fcd3bb5ea4a2,1,0,299c47a7-0b30-4f62-8f5c-f087ad6411fb,299c47a7-0b30-4f62-8f5c-f087ad6411fb,1,0,4d4724df-24fb-4c59-9d04-3f984906214a,4d4724df-24fb-4c59-9d04-3f984906214a,1,0,95b10bc8-39ef-43f5-b74e-f36cfa9bc806,95b10bc8-39ef-43f5-b74e-f36cfa9bc806,1,0,cb9b73ee-8531-48d9-9266-9aaa4336a612,cb9b73ee-8531-48d9-9266-9aaa4336a612,1,0,b7b80237-d642-4c21-a9ee-64fc4ed20d2f,b7b80237-d642-4c21-a9ee-64fc4ed20d2f,1,0,d042687f-0725-4611-a868-f5b4f6a3a3a8,d042687f-0725-4611-a868-f5b4f6a3a3a8,1,0,bb143340-7fff-49ef-b121-355c96613f78,bb143340-7fff-49ef-b121-355c96613f78,1,0,cd5fbbcb-19b8-4c0b-93c7-ebdf642826db,cd5fbbcb-19b8-4c0b-93c7-ebdf642826db,1,0,f2f69644-80dc-4b5e-a208-ed1de131e25e,f2f69644-80dc-4b5e-a208-ed1de131e25e,1,0,73060f72-6d08-47da-aac8-d4d2ed8f871c,73060f72-6d08-47da-aac8-d4d2ed8f871c,1,0,82e8ac21-c2aa-47de-89ae-ea6cc10cc862,82e8ac21-c2aa-47de-89ae-ea6cc10cc862,1,0,13b27ec3-2be9-4959-92e5-94ba7bb64f03,13b27ec3-2be9-4959-92e5-94ba7bb64f03,1,0,9f832f4b-ae60-4d81-9ffd-6e00f7e02560,9f832f4b-ae60-4d81-9ffd-6e00f7e02560,1,0,6f6ef6ac-5bb7-41e4-b6d5-0f068e8cb176,6f6ef6ac-5bb7-41e4-b6d5-0f068e8cb176,1,0,821225ea-1bad-49a6-a422-80d8a09baf13,821225ea-1bad-49a6-a422-80d8a09baf13,1,0,d0106f3a-8490-4277-a278-75c318ec252c,d0106f3a-8490-4277-a278-75c318ec252c,1,0,5035aa55-d557-419a-89e2-10ed0f8d109b,5035aa55-d557-419a-89e2-10ed0f8d109b,1,0,5f93d2af-64ff-41cc-8403-4a0e83160fea,5f93d2af-64ff-41cc-8403-4a0e83160fea,1,0,c12c90e4-7c40-489b-b14b-6b9442016e0f,c12c90e4-7c40-489b-b14b-6b9442016e0f,1,0,6371e288-3502-4d66-9006-b5a36107c0b7,6371e288-3502-4d66-9006-b5a36107c0b7,1,0,245814f7-028c-4c13-98eb-15412e851f81,245814f7-028c-4c13-98eb-15412e851f81,1,0,0132e564-2cd3-4930-8962-1068532f4be4,0132e564-2cd3-4930-8962-1068532f4be4,1,0,57d0f9b0-18d0-48ba-9f3c-d106f66ac602,57d0f9b0-18d0-48ba-9f3c-d106f66ac602,1,0,76c802c1-1442-412f-ba91-5864c7a2f8f9,76c802c1-1442-412f-ba91-5864c7a2f8f9,1,0,3a7cfd4c-c943-43c2-a8d5-6d8ab3a10fc9,3a7cfd4c-c943-43c2-a8d5-6d8ab3a10fc9,1,0,36b8b08f-0da3-4dbd-9aa8-73220ca9101d,36b8b08f-0da3-4dbd-9aa8-73220ca9101d,1,0,7021fca5-d612-43e1-927b-7f822153cf75,7021fca5-d612-43e1-927b-7f822153cf75,1,0,9fd16d51-91bb-4973-a7c4-cf4db87da8bf,9fd16d51-91bb-4973-a7c4-cf4db87da8bf,1,0,ee0a8d23-660a-492b-a813-b57394acee05,ee0a8d23-660a-492b-a813-b57394acee05,1,0,d1eda8f4-ffdd-445a-882c-6124d9f7fcf2,d1eda8f4-ffdd-445a-882c-6124d9f7fcf2,1,0,11c5930d-f882-46bd-9e7b-63e5344f6604,11c5930d-f882-46bd-9e7b-63e5344f6604,1,0,ade21e2e-349f-414b-8f35-6ae3b6a4064d,ade21e2e-349f-414b-8f35-6ae3b6a4064d,1,0,cce823c6-3bd5-4e46-91f6-8715cb72b1d5,cce823c6-3bd5-4e46-91f6-8715cb72b1d5,1,0,f3a8dd22-4469-4a3b-a7dd-78a5624b7bf0,f3a8dd22-4469-4a3b-a7dd-78a5624b7bf0,1,0,83f51efe-e2af-459a-b59f-2c036124ac23,83f51efe-e2af-459a-b59f-2c036124ac23,1,0,6ed466d7-e016-4d9c-9c0e-8deed48cbd70,6ed466d7-e016-4d9c-9c0e-8deed48cbd70,1,0,b03829e9-ba22-4584-85f0-c36d63f48242,b03829e9-ba22-4584-85f0-c36d63f48242,1,0,084a7c95-a59b-4861-b8b3-b5710a57ac60,084a7c95-a59b-4861-b8b3-b5710a57ac60,1,0,efcea6da-6746-4e00-913a-14cab38b5d84,efcea6da-6746-4e00-913a-14cab38b5d84,1,0,aff367fb-7fca-44d0-adf9-3731f14834f6,aff367fb-7fca-44d0-adf9-3731f14834f6,1,0,a2782760-dd4c-44d2-a785-814d6f610455,a2782760-dd4c-44d2-a785-814d6f610455,1,0,245162d8-6ae1-47e5-a0c9-0d5f2e5d8ea8,245162d8-6ae1-47e5-a0c9-0d5f2e5d8ea8,1,0,6581ac1f-11ef-42b8-9f3b-590bb7546e63,6581ac1f-11ef-42b8-9f3b-590bb7546e63,1,0,ce952e88-35b7-4506-81ac-d7081e50a650,ce952e88-35b7-4506-81ac-d7081e50a650,1,0,5d7a53fa-1a89-4e6e-868c-4077bd84c0ce,5d7a53fa-1a89-4e6e-868c-4077bd84c0ce,1,0,3bf1281f-7570-4633-86b9-3e953a7e6647,3bf1281f-7570-4633-86b9-3e953a7e6647,1,0,715dc289-5b14-4ee0-8716-9c15958b9069,715dc289-5b14-4ee0-8716-9c15958b9069,1,0,92707138-5004-4378-8477-f909166d319d,92707138-5004-4378-8477-f909166d319d,1,0,43661775-43bb-4d9e-bfbb-c46e7d194ca3,43661775-43bb-4d9e-bfbb-c46e7d194ca3,1,0,532637ef-be0d-4f42-9747-a88e17eb3def,532637ef-be0d-4f42-9747-a88e17eb3def,1,0,61127152-3e24-40b4-8a23-5eb6cae568ff,61127152-3e24-40b4-8a23-5eb6cae568ff,1,0,ffd987e3-e8af-4d46-881e-1e312e74dbac,ffd987e3-e8af-4d46-881e-1e312e74dbac,1,0,ad1142ed-183d-47a3-800c-997a3770e11e,ad1142ed-183d-47a3-800c-997a3770e11e,1,0,ebef37c6-4808-4683-93be-036ce19cafd5,ebef37c6-4808-4683-93be-036ce19cafd5,1,0,66364cd4-aaa5-421d-96d6-3c283c14650d,66364cd4-aaa5-421d-96d6-3c283c14650d,1,0,fdbbbf8b-dacf-436e-8d8b-1e2b8e854b17,fdbbbf8b-dacf-436e-8d8b-1e2b8e854b17,1,0,3c54d440-e908-43d6-a5cc-bb64620c82d7,3c54d440-e908-43d6-a5cc-bb64620c82d7,1,0,23a240a2-52ee-46ab-89d9-50dcee2cc8d2,23a240a2-52ee-46ab-89d9-50dcee2cc8d2,1,0,bf1dd911-8ee1-407b-acae-10c85b74baf3,bf1dd911-8ee1-407b-acae-10c85b74baf3,1,0,e924058f-25c3-4744-a565-836b824991b7,e924058f-25c3-4744-a565-836b824991b7,1,0,bc6a47a1-a3f3-4d7e-9dad-099bd3dba751,bc6a47a1-a3f3-4d7e-9dad-099bd3dba751,1,0,518dcd70-4ccf-4866-a94f-7ceec7dd2801,518dcd70-4ccf-4866-a94f-7ceec7dd2801,1,0,f9950ab5-1077-4033-bbbf-53899a1bcf33,f9950ab5-1077-4033-bbbf-53899a1bcf33,1,0,8f16763b-86f0-4ad0-b786-cce7dcb3460e,8f16763b-86f0-4ad0-b786-cce7dcb3460e,1,0,0481bc65-6a32-46b9-ae87-993ba52a29a5,0481bc65-6a32-46b9-ae87-993ba52a29a5,1,0,36ebebbb-dff1-4dbd-870b-58bd4a71fa1f,36ebebbb-dff1-4dbd-870b-58bd4a71fa1f,1,0,dbc5f419-63b0-4cbe-90ff-c0101105e46c,dbc5f419-63b0-4cbe-90ff-c0101105e46c,1,0,c708f6e9-b7a0-4046-90f3-83527da7b872,c708f6e9-b7a0-4046-90f3-83527da7b872,1,0,0006b44a-3a0c-4be4-8dd0-bd0db9ddcc4d,0006b44a-3a0c-4be4-8dd0-bd0db9ddcc4d,1,0,14256e0a-a947-42a3-8e36-47bfbb052a0c,14256e0a-a947-42a3-8e36-47bfbb052a0c,1,0,1b1aa77a-d14b-4751-a7da-0b5bac4db461,1b1aa77a-d14b-4751-a7da-0b5bac4db461,1,0,c0dcdb22-6719-4597-a781-bca1370909e5,c0dcdb22-6719-4597-a781-bca1370909e5,1,0,7ebf99c3-33d2-4e4c-ac45-ca4ed0c3c100,7ebf99c3-33d2-4e4c-ac45-ca4ed0c3c100,1,0,7a34f723-cd14-4949-a40f-7ce579bf0449,7a34f723-cd14-4949-a40f-7ce579bf0449,1,0,5cdc9ac7-bba9-4ed1-845a-607976fc4679,5cdc9ac7-bba9-4ed1-845a-607976fc4679,1,0,86c22871-6d1c-44e0-8ade-ce4bdeb23321,86c22871-6d1c-44e0-8ade-ce4bdeb23321,1,0,da51de81-4d4f-46b5-a308-7b50db6c45a7,da51de81-4d4f-46b5-a308-7b50db6c45a7,1,0,c2a8c2d3-ff13-4a13-acd4-797118c4e767,c2a8c2d3-ff13-4a13-acd4-797118c4e767,1,0,bc6adf75-8666-49f3-9703-b0014dfee123,bc6adf75-8666-49f3-9703-b0014dfee123,1,0,30632f54-b779-4857-a5cc-c53fe8887ee5,30632f54-b779-4857-a5cc-c53fe8887ee5,1,0,07629bf6-5544-4de9-b1d8-851cb03766cb,07629bf6-5544-4de9-b1d8-851cb03766cb,1,0,d449a85f-2e26-4512-b98c-7be3007966ed,d449a85f-2e26-4512-b98c-7be3007966ed,1,0,581be829-b097-4f95-a0c4-7ca3f13c29fc,581be829-b097-4f95-a0c4-7ca3f13c29fc,1,0,dd978355-1fb7-44a0-ba88-4e72e9cd67a9,dd978355-1fb7-44a0-ba88-4e72e9cd67a9,1,0,087480bb-8c89-4b00-a29b-b7e29926478d,087480bb-8c89-4b00-a29b-b7e29926478d,1,0,685373b7-638a-439a-8cba-703d56e4e404,685373b7-638a-439a-8cba-703d56e4e404,1,0,eafaec9c-030b-4e5f-8fa8-e17dad2feec9,eafaec9c-030b-4e5f-8fa8-e17dad2feec9,1,0,df22b227-b2c3-4e65-9706-7582f99fe59c,df22b227-b2c3-4e65-9706-7582f99fe59c,1,0,35828c88-f1ec-42e7-b189-78748931ee4a,35828c88-f1ec-42e7-b189-78748931ee4a,1,0,8a41b8f1-93fc-44e6-bf45-0d1fa9d24f4a,8a41b8f1-93fc-44e6-bf45-0d1fa9d24f4a,1,0,1cfba08f-d5e5-4833-b494-a25d0477e9c3,1cfba08f-d5e5-4833-b494-a25d0477e9c3,1,0,ae22743b-6d21-4fbb-bb4c-fee53e2b87cb,ae22743b-6d21-4fbb-bb4c-fee53e2b87cb,1,0,921a0a14-8c06-4894-95ce-423000769364,921a0a14-8c06-4894-95ce-423000769364,1,0,3805ee39-a48a-499a-9ef8-9c2a5985404f,3805ee39-a48a-499a-9ef8-9c2a5985404f,1,0,07ccfe87-e1ab-4da7-92cb-a612e0972b0b,07ccfe87-e1ab-4da7-92cb-a612e0972b0b,1,0,08c2f92c-eb05-49e7-bfc9-4a89607b9864,08c2f92c-eb05-49e7-bfc9-4a89607b9864,1,0,6d751379-89a7-49b5-93e5-578329c63d9c,6d751379-89a7-49b5-93e5-578329c63d9c,1,0,c3f156ef-947e-4ebb-883f-4f099a116063,c3f156ef-947e-4ebb-883f-4f099a116063,1,0,5e3ab0a3-c0a6-4f41-85d3-2eede4abb555,5e3ab0a3-c0a6-4f41-85d3-2eede4abb555,1,0,a065ffc3-f50b-4a78-9b84-bfc4e5515a4b,a065ffc3-f50b-4a78-9b84-bfc4e5515a4b,1,0,4cba5a06-1484-4dd1-8e35-2d702c7d96d0,4cba5a06-1484-4dd1-8e35-2d702c7d96d0,1,0,e98e9e56-2995-430c-bd3b-f1070aec15a5,e98e9e56-2995-430c-bd3b-f1070aec15a5,1,0,d35c51b0-4cb7-4f9c-8aac-6a25a1b49adf,d35c51b0-4cb7-4f9c-8aac-6a25a1b49adf,1,0,8a7546f4-bfc9-4732-bf60-43a41e2c8753,8a7546f4-bfc9-4732-bf60-43a41e2c8753,1,0,16244165-d5a4-4012-8bb5-7f5fee1111af,16244165-d5a4-4012-8bb5-7f5fee1111af,1,0,290b72ad-004f-46ab-be5e-47557543b965,290b72ad-004f-46ab-be5e-47557543b965,1,0,e1b2ccf9-5a8f-4008-86f3-d2c7cf5581d1,e1b2ccf9-5a8f-4008-86f3-d2c7cf5581d1,1,0,fa0e0792-bffb-47ce-866f-9e8dbdab17a4,fa0e0792-bffb-47ce-866f-9e8dbdab17a4,1,0,263bcd20-9878-48d4-aac4-b371ec49d8d6,263bcd20-9878-48d4-aac4-b371ec49d8d6,1,0,da1d8660-2757-4cea-bae0-c2210b9406ae,da1d8660-2757-4cea-bae0-c2210b9406ae,1,0,d60329c6-8f48-481d-82e7-18da355cb09c,d60329c6-8f48-481d-82e7-18da355cb09c,1,0,67a04d72-afea-487a-b629-e4b7dfc1df32,67a04d72-afea-487a-b629-e4b7dfc1df32,1,0,c4b14162-b25b-4099-9ec3-7251848ef08a,c4b14162-b25b-4099-9ec3-7251848ef08a,1,0,8eb5ba97-eb38-4357-8bfc-e9618280800d,8eb5ba97-eb38-4357-8bfc-e9618280800d,1,0,b72f73d5-e274-472b-871b-16af72dab603,b72f73d5-e274-472b-871b-16af72dab603,1,0,b008d184-0b61-460d-9490-89ecc1cd58ba,b008d184-0b61-460d-9490-89ecc1cd58ba,1,0,c8340e2f-6958-4bcd-8e17-499c4adfe60b,c8340e2f-6958-4bcd-8e17-499c4adfe60b,1,0,c72831cd-d064-4fe8-9603-64e6d7b8ac4d,c72831cd-d064-4fe8-9603-64e6d7b8ac4d,1,0,03f68d82-752c-45d1-bf9a-60ecd21a2c81,03f68d82-752c-45d1-bf9a-60ecd21a2c81,1,0,307e8938-e347-4eff-b2fb-fd0b8f4aa27f,307e8938-e347-4eff-b2fb-fd0b8f4aa27f,1,0,d4fffc79-2841-49a9-a382-e9e4138984df,d4fffc79-2841-49a9-a382-e9e4138984df,1,0,84e4c572-5b32-46e0-82a0-0c76d4ef5d73,84e4c572-5b32-46e0-82a0-0c76d4ef5d73,1,0,9f41f903-d316-4189-8dc0-603ea9036c1c,9f41f903-d316-4189-8dc0-603ea9036c1c,1,0,e19e70d6-8707-4dde-ae69-7bd97035ca03,e19e70d6-8707-4dde-ae69-7bd97035ca03,1,0,425b5272-1130-457d-8a05-aee8fad681d9,425b5272-1130-457d-8a05-aee8fad681d9,1,0,8d583436-f2a6-4a33-8137-1376f5754643,8d583436-f2a6-4a33-8137-1376f5754643,1,0,4a864e74-41ce-4673-a080-bc3c2ba1b8ee,4a864e74-41ce-4673-a080-bc3c2ba1b8ee,1,0,d279958e-6dd4-4bb0-a65f-c8768b4c4d96,d279958e-6dd4-4bb0-a65f-c8768b4c4d96,1,0,8f09cbed-6f24-461f-9b35-31c64310e74a,8f09cbed-6f24-461f-9b35-31c64310e74a,1,0,2d66502d-77ab-4cc9-9ccf-5433458fae9f,2d66502d-77ab-4cc9-9ccf-5433458fae9f,1,0,cff48da7-3c46-4602-83e8-90c9ea53e107,cff48da7-3c46-4602-83e8-90c9ea53e107,1,0,7155472d-c791-402c-96e1-d25612024c88,7155472d-c791-402c-96e1-d25612024c88,1,0,fb90c261-24a7-4cef-8a2c-85c0e4fdd64a,fb90c261-24a7-4cef-8a2c-85c0e4fdd64a,1,0,9005911d-ea81-48b6-bf50-1a328ff4d7be,9005911d-ea81-48b6-bf50-1a328ff4d7be,1,0,7df12006-c0c0-42a6-b852-bdced72c62e3,7df12006-c0c0-42a6-b852-bdced72c62e3,1,0,9c00987d-3c55-40eb-bae8-f36e71e4ef87,9c00987d-3c55-40eb-bae8-f36e71e4ef87,1,0,29273130-5142-48c9-8399-00e5ab4b6203,29273130-5142-48c9-8399-00e5ab4b6203,1,0,9e14cd7e-1293-4008-baf8-88df6a98abf7,9e14cd7e-1293-4008-baf8-88df6a98abf7,1,0,211d226f-dac6-43d5-8720-952da4339e35,211d226f-dac6-43d5-8720-952da4339e35,1,0,df67cdcd-20ff-46d4-902b-dc4d81ee46bd,df67cdcd-20ff-46d4-902b-dc4d81ee46bd,1,0,98e3aace-52a6-4911-8205-92165adca6de,98e3aace-52a6-4911-8205-92165adca6de,1,0,91f4dbf9-d539-4239-a95d-c1d9e14e50f8,91f4dbf9-d539-4239-a95d-c1d9e14e50f8,1,0,577e5fea-b792-4c8b-b3b3-a03a14b64b04,577e5fea-b792-4c8b-b3b3-a03a14b64b04,1,0,ba5ec2d6-1791-42b5-8e6f-04d1d18e9469,ba5ec2d6-1791-42b5-8e6f-04d1d18e9469,1,0,b18d312b-f9c3-4f37-ac77-d499e949f154,b18d312b-f9c3-4f37-ac77-d499e949f154,1,0,ace2beea-d393-412f-8b71-b845b665e2c4,ace2beea-d393-412f-8b71-b845b665e2c4,1,0,463b8966-a5f9-4a80-82b9-1608a1622e13,463b8966-a5f9-4a80-82b9-1608a1622e13,1,0,f02e807c-6cd3-4a4f-8dad-73bd56ee98ff,f02e807c-6cd3-4a4f-8dad-73bd56ee98ff,1,0,eefd00fe-3241-498f-aeb4-d429a86ab563,eefd00fe-3241-498f-aeb4-d429a86ab563,1,0,802d3489-318f-467d-a9f4-d7c644edac60,802d3489-318f-467d-a9f4-d7c644edac60,1,0,3fd4bc77-2a1b-4750-a54a-4171c8d40027,3fd4bc77-2a1b-4750-a54a-4171c8d40027,1,0,5b27fde9-fa80-48b1-aea1-73e132b9a944,5b27fde9-fa80-48b1-aea1-73e132b9a944,1,0,00bf04d6-6a8e-4b13-94cf-36c1c6090cd8,00bf04d6-6a8e-4b13-94cf-36c1c6090cd8,1,0,a747ec6b-f230-49b4-a929-7ed1ba87b078,a747ec6b-f230-49b4-a929-7ed1ba87b078,1,0,796f8fb4-d9cd-40ae-936b-8a70d2eb1121,796f8fb4-d9cd-40ae-936b-8a70d2eb1121,1,0,01cb357c-af28-4855-afae-45b6df19b344,01cb357c-af28-4855-afae-45b6df19b344,1,0,26e58429-1e08-454a-b4d7-2470390149fb,26e58429-1e08-454a-b4d7-2470390149fb,1,0,daa42bf5-9c32-4913-bc27-38f77ccc1a9f,daa42bf5-9c32-4913-bc27-38f77ccc1a9f,1,0,7620b61a-b0d1-4c71-bc80-72c48e17b96d,7620b61a-b0d1-4c71-bc80-72c48e17b96d,1,0,4802e016-a9e9-47d0-916b-b42194a1f388,4802e016-a9e9-47d0-916b-b42194a1f388,1,0,a1740d1f-1b8f-4db5-be5e-0eac44e934b8,a1740d1f-1b8f-4db5-be5e-0eac44e934b8,1,0,4062674a-4a81-494d-82bc-4984cd7c7903,4062674a-4a81-494d-82bc-4984cd7c7903,1,0,782a8801-06ca-4d63-bf8b-63d2320766d8,782a8801-06ca-4d63-bf8b-63d2320766d8,1,0,93a73123-d98c-4286-9269-7bfcedd115e8,93a73123-d98c-4286-9269-7bfcedd115e8,1,0,c5985c02-1824-4ce9-b415-1621dd2ee864,c5985c02-1824-4ce9-b415-1621dd2ee864,1,0,993ce747-cdc9-445f-ad7d-daf53cd5f7e9,993ce747-cdc9-445f-ad7d-daf53cd5f7e9,1,0,e819aaf6-3dfb-492a-8a4a-50a7c6854790,e819aaf6-3dfb-492a-8a4a-50a7c6854790,1,0,62b95ba1-f213-42fb-90f3-a03e8094bc9e,62b95ba1-f213-42fb-90f3-a03e8094bc9e,1,0,619b534d-5605-40d3-9b8c-4443a21d7795,619b534d-5605-40d3-9b8c-4443a21d7795,1,0,a010bbf4-d547-4576-9797-28e3096ffed3,a010bbf4-d547-4576-9797-28e3096ffed3,1,0,a44c3eb2-1054-41ca-82e8-fc35336e7009,a44c3eb2-1054-41ca-82e8-fc35336e7009,1,0,01f67911-4ca7-4668-b970-62c299b98e56,01f67911-4ca7-4668-b970-62c299b98e56,1,0,20c89c94-f77f-4e14-8c97-2a70c1419ce3,20c89c94-f77f-4e14-8c97-2a70c1419ce3,1,0,aa509aa3-dd45-41f3-82c7-59662c2e2c47,aa509aa3-dd45-41f3-82c7-59662c2e2c47,1,0,c4552529-e69e-4c5c-bd66-04b2f7dac281,c4552529-e69e-4c5c-bd66-04b2f7dac281,1,0,381b49ba-793a-4418-9fd4-598844fb72a6,381b49ba-793a-4418-9fd4-598844fb72a6,1,0,1aee302d-df31-49ea-b542-436dc1d79ae1,1aee302d-df31-49ea-b542-436dc1d79ae1,1,0,593509da-d33c-49ff-a62c-a28cbc4651c1,593509da-d33c-49ff-a62c-a28cbc4651c1,1,0,5e346a0b-a322-4565-adb9-70131fb05fa3,5e346a0b-a322-4565-adb9-70131fb05fa3,1,0,9a69c559-194b-4f74-9879-82740260f5f6,9a69c559-194b-4f74-9879-82740260f5f6,1,0,93bf1dcf-670d-4c8b-bdbf-e43c2edf8056,93bf1dcf-670d-4c8b-bdbf-e43c2edf8056,1,0,8a06f980-78f3-42f4-9d96-da2e0f0f36a7,8a06f980-78f3-42f4-9d96-da2e0f0f36a7,1,0,fee2aa74-7a81-4ab2-a457-2edf8ac1aa2d,fee2aa74-7a81-4ab2-a457-2edf8ac1aa2d,1,0,2e19fb7b-270f-4181-b4a1-640280bbbc5c,2e19fb7b-270f-4181-b4a1-640280bbbc5c,1,0,3981b13c-f8e1-44cc-a8e8-59ee9635d029,3981b13c-f8e1-44cc-a8e8-59ee9635d029,1,0,cf69b045-665d-4f6c-827f-5044beacd125,cf69b045-665d-4f6c-827f-5044beacd125,1,0,aa773eef-0c4a-49be-9f5e-9131bc041415,aa773eef-0c4a-49be-9f5e-9131bc041415,1,0,9b31e474-01d4-4c3b-a633-3a2ff3917d62,9b31e474-01d4-4c3b-a633-3a2ff3917d62,1,0,1c09bf33-9b54-4bfd-bc92-e7324025fab0,1c09bf33-9b54-4bfd-bc92-e7324025fab0,1,0,8d7750e9-899f-4434-8702-44cd02681779,8d7750e9-899f-4434-8702-44cd02681779,1,0,d85244dc-c417-4e69-9aa7-7ad313ecb940,d85244dc-c417-4e69-9aa7-7ad313ecb940,1,0,3bebf5e9-68bb-48dc-a39d-cbdca2dbecb1,3bebf5e9-68bb-48dc-a39d-cbdca2dbecb1,1,0,cd392ef0-dedb-4f83-9a2c-a24190ee0dc0,cd392ef0-dedb-4f83-9a2c-a24190ee0dc0,1,0,bb2f0c1c-3cfb-4a26-b6de-5bbeb5614587,bb2f0c1c-3cfb-4a26-b6de-5bbeb5614587,1,0,0713de12-87d5-4877-bd8a-2b6466df67df,0713de12-87d5-4877-bd8a-2b6466df67df,1,0,b3f188f4-d83e-4e97-b7d3-fc384b46a80a,b3f188f4-d83e-4e97-b7d3-fc384b46a80a,1,0,b848aafc-44fb-4dfe-8eec-233dc08fbbb6,b848aafc-44fb-4dfe-8eec-233dc08fbbb6,1,0,c4d7c569-4649-4f98-a048-45f3c5933670,c4d7c569-4649-4f98-a048-45f3c5933670,1,0,6dc05d69-bd54-4e8a-8985-c2ddfa0aaffb,6dc05d69-bd54-4e8a-8985-c2ddfa0aaffb,1,0,ad08b104-01f8-4900-a06c-baa1d55eba84,ad08b104-01f8-4900-a06c-baa1d55eba84,1,0,9352d10d-188f-4074-8dd1-7be5c11525e3,9352d10d-188f-4074-8dd1-7be5c11525e3,1,0,1933634a-6f10-48e7-99f0-60ac338f7832,1933634a-6f10-48e7-99f0-60ac338f7832,1,0,655deec5-c079-4748-8521-b3f10c243394,655deec5-c079-4748-8521-b3f10c243394,1,0,f6d4d818-d54c-4337-82cf-abd5e6dbe770,f6d4d818-d54c-4337-82cf-abd5e6dbe770,1,0,656c447b-291f-4e62-81ac-1c004841aa72,656c447b-291f-4e62-81ac-1c004841aa72,1,0,c9a06c8d-2f6d-4e03-bc62-a1a19f17faf3,c9a06c8d-2f6d-4e03-bc62-a1a19f17faf3,1,0,5ba93404-58ad-4321-9a62-27db828f75f6,5ba93404-58ad-4321-9a62-27db828f75f6,1,0,3da20e86-1d83-4935-b425-a91392dc8f35,3da20e86-1d83-4935-b425-a91392dc8f35,1,0,b56f25d2-72a9-4d80-8998-77ac3097c873,b56f25d2-72a9-4d80-8998-77ac3097c873,1,0,03bd775a-e0a1-4205-82ce-6068e73ad134,03bd775a-e0a1-4205-82ce-6068e73ad134,1,0,40bed47b-7754-4a70-b51a-47385fd46e83,40bed47b-7754-4a70-b51a-47385fd46e83,1,0,773ef914-5e7e-4ec1-bcdb-b2d111b560e6,773ef914-5e7e-4ec1-bcdb-b2d111b560e6,1,0,1e5a4f93-1ab9-4775-9538-2a1772215d89,1e5a4f93-1ab9-4775-9538-2a1772215d89,1,0,c25db165-0734-4fef-b161-e5164954a616,c25db165-0734-4fef-b161-e5164954a616,1,0,37e3d914-643e-4963-b4a0-7bc6727c0c9b,37e3d914-643e-4963-b4a0-7bc6727c0c9b,1,0,b6902500-3e03-4e83-a077-00500abc00b6,b6902500-3e03-4e83-a077-00500abc00b6,1,0,d253aa54-a447-44aa-bb13-82fd1ce22af4,d253aa54-a447-44aa-bb13-82fd1ce22af4,1,0,8936f114-7a0e-4a4c-8752-ccacab410778,8936f114-7a0e-4a4c-8752-ccacab410778,1,0,55649242-42fd-468f-a1e4-f6cd8871f7a4,55649242-42fd-468f-a1e4-f6cd8871f7a4,1,0,980e0883-cd8f-48c8-896f-ef185650f5c2,980e0883-cd8f-48c8-896f-ef185650f5c2,1,0,06ca1680-e641-499c-94ad-2d5ce5561747,06ca1680-e641-499c-94ad-2d5ce5561747,1,0,35bbf75b-99d0-447b-acb0-a3d2c98bea56,35bbf75b-99d0-447b-acb0-a3d2c98bea56,1,0,b6a1652b-6ee8-4cab-9681-c722b60f1e2e,b6a1652b-6ee8-4cab-9681-c722b60f1e2e,1,0,c31e34db-41ff-4db3-a4d0-f780f67070f6,c31e34db-41ff-4db3-a4d0-f780f67070f6,1,0,7a014fcb-a4b8-4c1c-b0de-21907a917c25,7a014fcb-a4b8-4c1c-b0de-21907a917c25,1,0,1688ef5d-72df-4bc4-a879-89033d466ad7,1688ef5d-72df-4bc4-a879-89033d466ad7,1,0,d3b09b09-df2d-40e5-86ce-84dab4898231,d3b09b09-df2d-40e5-86ce-84dab4898231,1,0,344cb0de-315d-4d05-93f8-8a1f53208470,344cb0de-315d-4d05-93f8-8a1f53208470,1,0,cd869887-0b0e-43db-8b51-04fe4a1341d5,cd869887-0b0e-43db-8b51-04fe4a1341d5,1,0,98aa5d5e-6c0e-4b9b-a3fa-335635d15217,98aa5d5e-6c0e-4b9b-a3fa-335635d15217,1,0,a7973409-b18e-4b88-ad50-e2ae89470d8f,a7973409-b18e-4b88-ad50-e2ae89470d8f,1,0,a537875e-492e-4cf2-96e9-e2e97bb206da,a537875e-492e-4cf2-96e9-e2e97bb206da,1,0,cd8fd85f-f02e-4f11-b4b4-40670febfaca,cd8fd85f-f02e-4f11-b4b4-40670febfaca,1,0,3f023afb-c02a-42ee-9afe-0f47ef3fe721,3f023afb-c02a-42ee-9afe-0f47ef3fe721,1,0,d7fe80d3-7fcf-427e-a991-5384f0c3947e,d7fe80d3-7fcf-427e-a991-5384f0c3947e,1,0,085a08f3-9d93-429d-9b1b-9065ab8363f7,085a08f3-9d93-429d-9b1b-9065ab8363f7,1,0,a530c0a1-c1d2-40bb-9d0e-320074dbb684,a530c0a1-c1d2-40bb-9d0e-320074dbb684,1,0,55c63580-16f1-4d6f-a40b-e630f71ebb98,55c63580-16f1-4d6f-a40b-e630f71ebb98,1,0,16939af9-e459-43da-8e0d-5d5891af6e0c,16939af9-e459-43da-8e0d-5d5891af6e0c,1,0,1d736a09-6c8f-433a-bf5b-201996bf4c62,1d736a09-6c8f-433a-bf5b-201996bf4c62,1,0,157988ad-d482-41df-b3e3-f2a0383d7130,157988ad-d482-41df-b3e3-f2a0383d7130,1,0,33af87a9-db69-41da-a33a-0435da2155e3,33af87a9-db69-41da-a33a-0435da2155e3,1,0,c95831b4-7d1d-4a9a-b5d0-caa03c4f4eca,c95831b4-7d1d-4a9a-b5d0-caa03c4f4eca,1,0,81b63f1d-2c65-4efb-8599-8a4d97b612ab,81b63f1d-2c65-4efb-8599-8a4d97b612ab,1,0,4b13a2c6-a6ce-47a0-8d9e-1a5dbe8d4b00,4b13a2c6-a6ce-47a0-8d9e-1a5dbe8d4b00,1,0,d1dde981-615a-461f-b0c5-a85f51003a2c,d1dde981-615a-461f-b0c5-a85f51003a2c,1,0,f5970c48-63d7-4064-bdfc-482b72939347,f5970c48-63d7-4064-bdfc-482b72939347,1,0,5c8039c0-34d8-4443-bd8f-dfe3dc2977a8,5c8039c0-34d8-4443-bd8f-dfe3dc2977a8,1,0,210972af-8687-4526-b288-60e7ee76cd61,210972af-8687-4526-b288-60e7ee76cd61,1,0,335f379a-2974-44ce-a668-e7ffe2ce6263,335f379a-2974-44ce-a668-e7ffe2ce6263,1,0,7edd75a2-9d03-4330-9185-28d0f0d4a2e4,7edd75a2-9d03-4330-9185-28d0f0d4a2e4,1,0,f7cc4f9e-cf9a-41f5-865f-d64108b981a5,f7cc4f9e-cf9a-41f5-865f-d64108b981a5,1,0,b58f8947-344c-4902-832c-d8004da55c34,b58f8947-344c-4902-832c-d8004da55c34,1,0,35cccc1d-3d67-4d39-aa79-2c30a5347587,35cccc1d-3d67-4d39-aa79-2c30a5347587,1,0,b6ee01eb-31ab-4f39-b4ff-37a04e3c7f35,b6ee01eb-31ab-4f39-b4ff-37a04e3c7f35,1,0,0776dfb2-67e0-4e11-9f94-abde790ff7e2,0776dfb2-67e0-4e11-9f94-abde790ff7e2,1,0,9c92b833-7406-48e2-9f59-69d575a3898f,9c92b833-7406-48e2-9f59-69d575a3898f,1,0,0cc5334f-8147-455c-8262-540324415812,0cc5334f-8147-455c-8262-540324415812,1,0,f3c4e6db-7c4e-4027-8bfd-f7854d566fc1,f3c4e6db-7c4e-4027-8bfd-f7854d566fc1,1,0,0eeb2f75-7092-4487-891f-cdbc9aa978cb,0eeb2f75-7092-4487-891f-cdbc9aa978cb,1,0,4ac60443-c7cb-492f-98b4-7e48bf9bfaa6,4ac60443-c7cb-492f-98b4-7e48bf9bfaa6,1,0,22979d50-ea57-4fab-9673-1b537838aead,22979d50-ea57-4fab-9673-1b537838aead,1,0,14676ee5-c247-46c6-a37e-c4362de79bb9,14676ee5-c247-46c6-a37e-c4362de79bb9,1,0,9fa36fe3-814e-4472-94ee-5d9d2b230b24,9fa36fe3-814e-4472-94ee-5d9d2b230b24,1,0,4b59dc62-0352-45a8-b33b-c42f4eea75ee,4b59dc62-0352-45a8-b33b-c42f4eea75ee,1,0,ea8a50ce-f09c-49f7-be58-ff2864e4eaa3,ea8a50ce-f09c-49f7-be58-ff2864e4eaa3,1,0,2020d672-bef4-4b30-885e-7f41364e412b,2020d672-bef4-4b30-885e-7f41364e412b,1,0,c292ddbc-9402-4c43-93d8-f8efafa6456e,c292ddbc-9402-4c43-93d8-f8efafa6456e,1,0,0281cbd6-972d-4632-9a6a-f8791e2534ee,0281cbd6-972d-4632-9a6a-f8791e2534ee,1,0,bae01f18-b6f3-44e4-93c3-ffcb3ef01b98,bae01f18-b6f3-44e4-93c3-ffcb3ef01b98,1,0,98d66bf0-617a-40aa-97bd-896d37a966ab,98d66bf0-617a-40aa-97bd-896d37a966ab,1,0,1847bb2f-8309-4c49-b752-ef7ec16d4230,1847bb2f-8309-4c49-b752-ef7ec16d4230,1,0,ca23f432-e2a3-4385-8cc1-7e9c96f9d7a1,ca23f432-e2a3-4385-8cc1-7e9c96f9d7a1,1,0,e1856045-f394-45b8-9f0c-298812f1f514,e1856045-f394-45b8-9f0c-298812f1f514,1,0,eb175c1d-7fcb-4807-82e3-688639468116,eb175c1d-7fcb-4807-82e3-688639468116,1,0,4ed9c099-700f-409b-bd91-e24719046953,4ed9c099-700f-409b-bd91-e24719046953,1,0,85b935b4-5eec-40cf-9d99-02cb3f599492,85b935b4-5eec-40cf-9d99-02cb3f599492,1,0,5764a412-4a20-4b2e-9905-ce74a9cac3ae,5764a412-4a20-4b2e-9905-ce74a9cac3ae,1,0,c4330791-d8f7-400f-b270-dee567e7a695,c4330791-d8f7-400f-b270-dee567e7a695,1,0,aab8ec4d-51de-4c1a-9794-266c119332d1,aab8ec4d-51de-4c1a-9794-266c119332d1,1,0,77cb6e52-37a9-423c-8260-6998161adcb5,77cb6e52-37a9-423c-8260-6998161adcb5,1,0,de258ab8-2d16-4c69-9490-5819b7ae3d08,de258ab8-2d16-4c69-9490-5819b7ae3d08,1,0,f7aacf70-0b59-410a-9929-ab4ab8a2431c,f7aacf70-0b59-410a-9929-ab4ab8a2431c,1,0,5bb6ba7a-ed61-4cdd-b3db-ec9da292e7a4,5bb6ba7a-ed61-4cdd-b3db-ec9da292e7a4,1,0,b37a9edd-b6bc-40eb-b5de-f54968abc119,b37a9edd-b6bc-40eb-b5de-f54968abc119,1,0,52338832-b15a-4e56-b13d-141141677008,52338832-b15a-4e56-b13d-141141677008,1,0,e9616402-88cc-44ae-96ca-ba20cf7d38ad,e9616402-88cc-44ae-96ca-ba20cf7d38ad,1,0,1b8212d7-b834-460c-9a2b-68a5de889e5b,1b8212d7-b834-460c-9a2b-68a5de889e5b,1,0,edb423a4-89d3-408e-aafb-d57e8ee70bc0,edb423a4-89d3-408e-aafb-d57e8ee70bc0,1,0,6278dff7-da49-457f-9896-94e3ca3be75d,6278dff7-da49-457f-9896-94e3ca3be75d,1,0,c232a478-2e10-4d0c-9733-fbfc7db1ab74,c232a478-2e10-4d0c-9733-fbfc7db1ab74,1,0,2f25ecec-fe3e-463c-b538-9815d96c52c6,2f25ecec-fe3e-463c-b538-9815d96c52c6,1,0,a816deca-4863-44e2-a8ff-89bfa5fbb0ac,a816deca-4863-44e2-a8ff-89bfa5fbb0ac,1,0,157f3df0-97b7-461b-bd3e-1f2e12658adf,157f3df0-97b7-461b-bd3e-1f2e12658adf,1,0,d2d6968c-fbe6-4e09-9cdb-653ca9a97fcc,d2d6968c-fbe6-4e09-9cdb-653ca9a97fcc,1,0,ea6f491e-9ec9-456d-ae30-4a258d87dff6,ea6f491e-9ec9-456d-ae30-4a258d87dff6,1,0,c67cddce-64d0-45eb-8abb-5c76bbe27f93,c67cddce-64d0-45eb-8abb-5c76bbe27f93,1,0,4f1aa113-6d77-46c8-ac21-9e5545553499,4f1aa113-6d77-46c8-ac21-9e5545553499,1,0,6ccec21e-f26f-482c-9ce2-1f058fc492c1,6ccec21e-f26f-482c-9ce2-1f058fc492c1,1,0,6278272c-687e-46d6-9f6f-16c5ddf369bb,6278272c-687e-46d6-9f6f-16c5ddf369bb,1,0,46af6cac-4731-4ac0-a38e-fcc8a45d06bf,46af6cac-4731-4ac0-a38e-fcc8a45d06bf,1,0,fe9d7083-82f6-4390-b5a5-46c666463289,fe9d7083-82f6-4390-b5a5-46c666463289,1,0,cc194484-b3fc-4e89-8f72-de3f0e23019e,cc194484-b3fc-4e89-8f72-de3f0e23019e,1,0,9cb89abd-efb7-418e-9819-a4085c2ad61c,9cb89abd-efb7-418e-9819-a4085c2ad61c,1,0,3b615ad8-edcf-4339-9e67-3c3afadfc77f,3b615ad8-edcf-4339-9e67-3c3afadfc77f,1,0,9bc3a840-eeb9-444b-9f8a-05a8dd13e3dc,9bc3a840-eeb9-444b-9f8a-05a8dd13e3dc,1,0,5c66c80c-cad1-47ac-b7bb-a20323fe271a,5c66c80c-cad1-47ac-b7bb-a20323fe271a,1,0,e39114e4-2d69-47ad-a888-2d0ccd9f62c5,e39114e4-2d69-47ad-a888-2d0ccd9f62c5,1,0,44169edb-23f3-4937-a277-7024182d7281,44169edb-23f3-4937-a277-7024182d7281,1,0,3942118c-09ec-40cf-8de8-4321367981f1,3942118c-09ec-40cf-8de8-4321367981f1,1,0,36ace6cf-6493-4325-89ff-3c07faae09b4,36ace6cf-6493-4325-89ff-3c07faae09b4,1,0,80cf9060-8f0c-4cb1-b476-6da83c725db7,80cf9060-8f0c-4cb1-b476-6da83c725db7,1,0,bd35d814-a9d2-4f0b-9f41-e7e9d6c53b7d,bd35d814-a9d2-4f0b-9f41-e7e9d6c53b7d,1,0,b5cd0ae6-2a12-44d6-8897-587f7e31159b,b5cd0ae6-2a12-44d6-8897-587f7e31159b,1,0,7fdb2c9d-8a8b-43c9-a228-db99fef599d5,7fdb2c9d-8a8b-43c9-a228-db99fef599d5,1,0,1de28303-2d0f-46e9-bbad-e40759fb0d3e,1de28303-2d0f-46e9-bbad-e40759fb0d3e,1,0,fd265d8a-1b99-4434-9bc5-6ef22a4437a2,fd265d8a-1b99-4434-9bc5-6ef22a4437a2,1,0,bf49b842-d162-4690-bec1-acf4207db565,bf49b842-d162-4690-bec1-acf4207db565,1,0,9a9ba19a-3a90-438e-9b5b-8a03bb2820da,9a9ba19a-3a90-438e-9b5b-8a03bb2820da,1,0,0d671808-63e8-4ad3-8d83-a69aa0049862,0d671808-63e8-4ad3-8d83-a69aa0049862,1,0,545857ca-2617-4b44-9e35-1b10837059ca,545857ca-2617-4b44-9e35-1b10837059ca,1,0,4c8a84a0-1d8b-4a00-bd3c-38c8d1deaffd,4c8a84a0-1d8b-4a00-bd3c-38c8d1deaffd,1,0,9acdec8d-e59e-47f1-b97c-a8050e590f81,9acdec8d-e59e-47f1-b97c-a8050e590f81,1,0,872c3f9c-a484-467b-b5fe-b008fee5152e,872c3f9c-a484-467b-b5fe-b008fee5152e,1,0,10c678a1-7a8b-4941-b625-ee2de92ee4d5,10c678a1-7a8b-4941-b625-ee2de92ee4d5,1,0,93873fe8-10c0-4f7b-ad20-278e887f69e9,93873fe8-10c0-4f7b-ad20-278e887f69e9,1,0,13b4aa30-d586-4b26-af0e-32f0d691fec9,13b4aa30-d586-4b26-af0e-32f0d691fec9,1,0,d6d67cc5-e003-4aaa-88ae-d084dae2dc26,d6d67cc5-e003-4aaa-88ae-d084dae2dc26,1,0,60f2c9f3-3090-442c-8991-0396b8f8b195,60f2c9f3-3090-442c-8991-0396b8f8b195,1,0,628dfa98-d8e1-4c27-bf15-928aa9dd24fd,628dfa98-d8e1-4c27-bf15-928aa9dd24fd,1,0,64eba6dc-31e1-4acc-9897-1108ba5a4415,64eba6dc-31e1-4acc-9897-1108ba5a4415,1,0,5eb4aac3-8a26-44f1-9e89-ffef42dbdb2d,5eb4aac3-8a26-44f1-9e89-ffef42dbdb2d,1,0,95d28431-cf31-4b32-976d-4e6a18e1b225,95d28431-cf31-4b32-976d-4e6a18e1b225,1,0,304b45ef-1530-4f20-98c0-081c554e0360,304b45ef-1530-4f20-98c0-081c554e0360,1,0,de84e787-12a1-4f47-bdd0-85d0aeaad98a,de84e787-12a1-4f47-bdd0-85d0aeaad98a,1,0,1490798d-5cd9-4448-be69-10773ab486ee,1490798d-5cd9-4448-be69-10773ab486ee,1,0,6fa88af0-dfcc-4dcf-ab61-0c7cb03a47f7,6fa88af0-dfcc-4dcf-ab61-0c7cb03a47f7,1,0,c59644a2-5ef5-43e8-a94f-682dddd562d4,c59644a2-5ef5-43e8-a94f-682dddd562d4,1,0,d2906b4a-ddcd-4512-910a-fc6f6c4fbc21,d2906b4a-ddcd-4512-910a-fc6f6c4fbc21,1,0,6cc3fe24-0a59-4eb6-ac6d-d1b56fabbad9,6cc3fe24-0a59-4eb6-ac6d-d1b56fabbad9,1,0,ce877e78-2e91-471e-831f-171fc5b72d54,ce877e78-2e91-471e-831f-171fc5b72d54,1,0,3b50cd97-4362-4cc5-ab2c-49506aea1508,3b50cd97-4362-4cc5-ab2c-49506aea1508,1,0,56c84cd4-33c2-4529-abf3-2a542a8cfa60,56c84cd4-33c2-4529-abf3-2a542a8cfa60,1,0,dc496b24-d0e5-46b7-9c03-c470e17afb38,dc496b24-d0e5-46b7-9c03-c470e17afb38,1,0,870cb1fb-6dea-4ae2-8952-64215ab2b695,870cb1fb-6dea-4ae2-8952-64215ab2b695,1,0,4fcb5267-e015-4da1-8871-23944f21a0c5,4fcb5267-e015-4da1-8871-23944f21a0c5,1,0,dc244cd9-aec7-431d-a346-032aeae17fd8,dc244cd9-aec7-431d-a346-032aeae17fd8,1,0,043e9792-b553-4785-99bb-006d79ef0a78,043e9792-b553-4785-99bb-006d79ef0a78,1,0,054ad80c-d2f6-4219-add1-ea2becedd04f,054ad80c-d2f6-4219-add1-ea2becedd04f,1,0,aa0a7164-37f4-4175-9fa8-1f90b4bb29e1,aa0a7164-37f4-4175-9fa8-1f90b4bb29e1,1,0,e774b5b1-b8bf-4b25-845a-745d1e009917,e774b5b1-b8bf-4b25-845a-745d1e009917,1,0,319899d0-2c05-4601-a888-2b92ee445be4,319899d0-2c05-4601-a888-2b92ee445be4,1,0,ddca48c8-3254-4683-93db-c4939a2d6e72,ddca48c8-3254-4683-93db-c4939a2d6e72,1,0,f8bd3b36-b0a2-46b0-9a8c-84ea1e72dda4,f8bd3b36-b0a2-46b0-9a8c-84ea1e72dda4,1,0,d46d2f66-f041-4012-b52a-fea74eed0ec6,d46d2f66-f041-4012-b52a-fea74eed0ec6,1,0,40aa4771-78be-485a-bfb3-108d9b3234da,40aa4771-78be-485a-bfb3-108d9b3234da,1,0,07f2081c-f723-4656-83c5-16b092bd00b8,07f2081c-f723-4656-83c5-16b092bd00b8,1,0,1d60586d-8548-416d-b862-e510121da339,1d60586d-8548-416d-b862-e510121da339,1,0,7e252088-1a99-4442-a136-e2b13afcde23,7e252088-1a99-4442-a136-e2b13afcde23,1,0,ca6f8fcf-2950-4468-abee-8e84ecb4aa33,ca6f8fcf-2950-4468-abee-8e84ecb4aa33,1,0,9668096a-74bf-41e2-a150-bfbea5216d10,9668096a-74bf-41e2-a150-bfbea5216d10,1,0,2aeb05ee-1aa7-4bd1-a5b1-7f8d6a6b23de,2aeb05ee-1aa7-4bd1-a5b1-7f8d6a6b23de,1,0,bc5216fe-94a4-4f55-ab91-462278c748c4,bc5216fe-94a4-4f55-ab91-462278c748c4,1,0,a8ac92ab-a476-4e79-8a3f-40e67d09a1bf,a8ac92ab-a476-4e79-8a3f-40e67d09a1bf,1,0,1621383d-36a8-4215-9f63-bdff10d2730a,1621383d-36a8-4215-9f63-bdff10d2730a,1,0,85ca3f27-36af-4ae6-9240-a7f9698b12ca,85ca3f27-36af-4ae6-9240-a7f9698b12ca,1,0,d9cc0bdf-ec8a-41e6-a04d-f87a277dc07e,d9cc0bdf-ec8a-41e6-a04d-f87a277dc07e,1,0,e7d74349-6636-485f-888d-57086beb7574,e7d74349-6636-485f-888d-57086beb7574,1,0,93210c19-7351-4415-9fe0-f646919594d9,93210c19-7351-4415-9fe0-f646919594d9,1,0,d77c2205-28a0-4069-b616-df456cd415a6,d77c2205-28a0-4069-b616-df456cd415a6,1,0,ade8ef52-e3cb-4b26-9d7e-ec1f1cdc19f0,ade8ef52-e3cb-4b26-9d7e-ec1f1cdc19f0,1,0,20cbe469-17f9-44da-8317-91feef8c5d46,20cbe469-17f9-44da-8317-91feef8c5d46,1,0,e4fc1eae-ecdc-42ac-b338-e695b663d642,e4fc1eae-ecdc-42ac-b338-e695b663d642,1,0,c1720905-2d51-4b90-9a3b-fdc001e8cea7,c1720905-2d51-4b90-9a3b-fdc001e8cea7,1,0,4becceed-362f-4412-90ee-769cc69742d7,4becceed-362f-4412-90ee-769cc69742d7,1,0,d6b23426-6972-4ff2-82bb-b2780dd732cb,d6b23426-6972-4ff2-82bb-b2780dd732cb,1,0,20992e23-f94b-459c-8af9-58a5986bacd0,20992e23-f94b-459c-8af9-58a5986bacd0,1,0,b1a939b9-cd2a-44c6-b1db-09356ab0303d,b1a939b9-cd2a-44c6-b1db-09356ab0303d,1,0,a7801847-a4c8-46ec-b873-c199191b9b2b,a7801847-a4c8-46ec-b873-c199191b9b2b,1,0,080a53d6-6c03-48f7-93bf-dec49afc14b7,080a53d6-6c03-48f7-93bf-dec49afc14b7,1,0,8ba908dc-6020-4b01-9a28-b3816b8cc118,8ba908dc-6020-4b01-9a28-b3816b8cc118,1,0,53d89038-48f5-4b64-9a1b-0a8d8dc788d2,53d89038-48f5-4b64-9a1b-0a8d8dc788d2,1,0,710202be-238f-42fe-9a6e-72726762a80c,710202be-238f-42fe-9a6e-72726762a80c,1,0,5299473d-0fb5-4795-a432-33ebf7051e49,5299473d-0fb5-4795-a432-33ebf7051e49,1,0,fbfaffab-a28c-49a4-bc14-e87317036f2f,fbfaffab-a28c-49a4-bc14-e87317036f2f,1,0,6e6c51d9-afba-4699-9eb8-f60163508072,6e6c51d9-afba-4699-9eb8-f60163508072,1,0,4c3afb2f-51be-4980-9ef9-d3fd3ce44ecb,4c3afb2f-51be-4980-9ef9-d3fd3ce44ecb,1,0,4ddabc05-424e-41fa-871f-dbba5b517795,4ddabc05-424e-41fa-871f-dbba5b517795,1,0,19b869c1-5eb4-43e3-99be-7e03385fa053,19b869c1-5eb4-43e3-99be-7e03385fa053,1,0,2421d94f-0bfd-47a1-b179-3a5d983e09c8,2421d94f-0bfd-47a1-b179-3a5d983e09c8,1,0,94c39b62-ddb2-4503-9fd1-206b54d899de,94c39b62-ddb2-4503-9fd1-206b54d899de,1,0,8b4fd3db-66d6-4290-9814-2c2492f733cb,8b4fd3db-66d6-4290-9814-2c2492f733cb,1,0,4969bc1b-217f-44a3-82cf-97c56f51a25e,4969bc1b-217f-44a3-82cf-97c56f51a25e,1,0,f6a8ff93-b1b5-499c-91a2-172000e5c776,f6a8ff93-b1b5-499c-91a2-172000e5c776,1,0,d903569d-911d-4277-a26f-afe2bf67eb09,d903569d-911d-4277-a26f-afe2bf67eb09,1,0,b5ac7de5-565f-4637-b267-dde3637e336b,b5ac7de5-565f-4637-b267-dde3637e336b,1,0,d4a6ab09-259f-4476-834c-a2b57cdeac05,d4a6ab09-259f-4476-834c-a2b57cdeac05,1,0,a56ff7f4-2259-455f-b707-b98aacd7d0b2,a56ff7f4-2259-455f-b707-b98aacd7d0b2,1,0,8c9636c3-0a84-4575-b4c7-6d8bb588e1b0,8c9636c3-0a84-4575-b4c7-6d8bb588e1b0,1,0,76e03401-7c07-4037-a464-d7377852de1d,76e03401-7c07-4037-a464-d7377852de1d,1,0,dc8239e8-fddf-411e-b51a-4230b63236cd,dc8239e8-fddf-411e-b51a-4230b63236cd,1,0,3b861376-2864-4de8-ba59-2a2835d7eaf6,3b861376-2864-4de8-ba59-2a2835d7eaf6,1,0,02910dcd-9e66-4239-a421-8067faf59577,02910dcd-9e66-4239-a421-8067faf59577,1,0,76d5a67f-bb11-4937-a66d-cdce28165562,76d5a67f-bb11-4937-a66d-cdce28165562,1,0,b99a23a5-bfbf-46ec-8268-ff89afdfc63a,b99a23a5-bfbf-46ec-8268-ff89afdfc63a,1,0,cdb93924-62ce-4268-9915-e6c67c1b9cb8,cdb93924-62ce-4268-9915-e6c67c1b9cb8,1,0,1139b6c7-7b55-45b4-98cf-ccac3bfaaa6c,1139b6c7-7b55-45b4-98cf-ccac3bfaaa6c,1,0,33c39990-f4fc-4629-83ba-b43b05a40ca6,33c39990-f4fc-4629-83ba-b43b05a40ca6,1,0,0a136ad9-22ad-4ba7-a31a-40a193b49d26,0a136ad9-22ad-4ba7-a31a-40a193b49d26,1,0,208c7b8c-3df9-4441-8ebf-34ffa81572a2,208c7b8c-3df9-4441-8ebf-34ffa81572a2,1,0,8c17fd7c-74d7-496a-a843-42022afb0707,8c17fd7c-74d7-496a-a843-42022afb0707,1,0,710059de-c70e-4b6e-b2a0-11197139144d,710059de-c70e-4b6e-b2a0-11197139144d,1,0,091ccac1-9a63-4a89-bb0c-333b274b0c70,091ccac1-9a63-4a89-bb0c-333b274b0c70,1,0,849f00c3-2f18-414c-97f6-32a99173fab9,849f00c3-2f18-414c-97f6-32a99173fab9,1,0,b456d820-8034-4381-960d-66d9f86b0a4b,b456d820-8034-4381-960d-66d9f86b0a4b,1,0,bd55fd03-cf67-4333-a554-98e03d18f780,bd55fd03-cf67-4333-a554-98e03d18f780,1,0,6eac5f7b-0952-4c94-9028-529b14ffcd4f,6eac5f7b-0952-4c94-9028-529b14ffcd4f,1,0,a587cade-4c91-4769-9c6a-a4fb4fe94196,a587cade-4c91-4769-9c6a-a4fb4fe94196,1,0,1a7c774d-5b86-4051-b797-3081e19fa30a,1a7c774d-5b86-4051-b797-3081e19fa30a,1,0,00949768-5833-4fe2-8752-b009d1bceef8,00949768-5833-4fe2-8752-b009d1bceef8,1,0,167455d1-6658-409f-834c-f6ccfe7b25de,167455d1-6658-409f-834c-f6ccfe7b25de,1,0,1300c46e-24d4-45cf-a899-3d26b5cf0b50,1300c46e-24d4-45cf-a899-3d26b5cf0b50,1,0,4cde6fdc-85fa-4c00-896c-51a68f5f10a5,4cde6fdc-85fa-4c00-896c-51a68f5f10a5,1,0,f41de07b-cba3-4bb8-9ec0-64ec59753f84,f41de07b-cba3-4bb8-9ec0-64ec59753f84,1,0,f78a5650-4d6c-4c17-95e0-e95cf8d9ad4b,f78a5650-4d6c-4c17-95e0-e95cf8d9ad4b,1,0,c5b3ca21-8f7b-4933-853c-7d95b17b5631,c5b3ca21-8f7b-4933-853c-7d95b17b5631,1,0,8b0faa1e-09da-4ba4-894e-e86abc5d39df,8b0faa1e-09da-4ba4-894e-e86abc5d39df,1,0,cb50b309-1b6c-400c-9e9e-67204dcccaae,cb50b309-1b6c-400c-9e9e-67204dcccaae,1,0,e2b482cb-6954-4e6a-abe9-d0a01f64b73a,e2b482cb-6954-4e6a-abe9-d0a01f64b73a,1,0,2a6e1f2b-7378-456b-9657-9e971eaff716,2a6e1f2b-7378-456b-9657-9e971eaff716,1,0,c3cdea20-3055-4b4e-a531-a02d4f3ed294,c3cdea20-3055-4b4e-a531-a02d4f3ed294,1,0,225a011b-337d-4c83-9771-95eebce18024,225a011b-337d-4c83-9771-95eebce18024,1,0,ffd14055-0847-48da-8807-0ba07decf6a5,ffd14055-0847-48da-8807-0ba07decf6a5,1,0,ee808b7e-8313-4838-8a5a-9b49e3ce7e3e,ee808b7e-8313-4838-8a5a-9b49e3ce7e3e,1,0,a8450a10-c18c-4b99-828b-870f38c32991,a8450a10-c18c-4b99-828b-870f38c32991,1,0,ad5e61a9-2f12-4629-9d7b-7882cc885992,ad5e61a9-2f12-4629-9d7b-7882cc885992,1,0,68a66e43-123c-4dc4-8eb7-3b728a6dbf40,68a66e43-123c-4dc4-8eb7-3b728a6dbf40,1,0,b016e858-7a3b-473a-a9b7-a6c718d0a028,b016e858-7a3b-473a-a9b7-a6c718d0a028,1,0,7db81d96-e359-4157-b5cb-3b50622d6556,7db81d96-e359-4157-b5cb-3b50622d6556,1,0,aa09ff66-3f4a-4746-9a99-697a2915b3fc,aa09ff66-3f4a-4746-9a99-697a2915b3fc,1,0,21305c37-31fb-46f3-85bc-8743c22faa02,21305c37-31fb-46f3-85bc-8743c22faa02,1,0,c5bace94-8fbc-4ad1-9567-a41332e8f00a,c5bace94-8fbc-4ad1-9567-a41332e8f00a,1,0,9fc40f79-c538-4ea5-a939-67bdd540d805,9fc40f79-c538-4ea5-a939-67bdd540d805,1,0,70443b2a-04db-4573-a4ea-e35078b383d7,70443b2a-04db-4573-a4ea-e35078b383d7,1,0,fb760c8a-d0bd-4445-9d68-85e5145d0182,fb760c8a-d0bd-4445-9d68-85e5145d0182,1,0,ecf54919-4cf2-4b30-9efa-de517d823555,ecf54919-4cf2-4b30-9efa-de517d823555,1,0,a4814357-6575-4a55-808f-4a4c94047110,a4814357-6575-4a55-808f-4a4c94047110,1,0,087ce10b-cdd0-4a50-9c56-619f607736c4,087ce10b-cdd0-4a50-9c56-619f607736c4,1,0,2dd0c153-e748-4968-9818-d9185aa50227,2dd0c153-e748-4968-9818-d9185aa50227,1,0,f2ca1c54-597b-40bf-b5a4-b7db94ca4a4d,f2ca1c54-597b-40bf-b5a4-b7db94ca4a4d,1,0,722f9634-bcc6-41eb-91bb-e297f0d696ea,722f9634-bcc6-41eb-91bb-e297f0d696ea,1,0,eeed03fe-470f-4020-a092-dd74015f632f,eeed03fe-470f-4020-a092-dd74015f632f,1,0,48686092-9c7d-4a4e-8161-b578b22b4079,48686092-9c7d-4a4e-8161-b578b22b4079,1,0,522e31f3-8271-4ad8-868a-f9dbcb80cb26,522e31f3-8271-4ad8-868a-f9dbcb80cb26,1,0,9998b1ce-dad9-49b7-afce-77cf41a08cdd,9998b1ce-dad9-49b7-afce-77cf41a08cdd,1,0,2f6f9461-7c01-421e-83d5-e27088888c1f,2f6f9461-7c01-421e-83d5-e27088888c1f,1,0,a739ab4c-6ca4-475f-a78d-ad3fbf17ff50,a739ab4c-6ca4-475f-a78d-ad3fbf17ff50,1,0,4efd60a8-7449-4616-8c43-baabb2621a36,4efd60a8-7449-4616-8c43-baabb2621a36,1,0,18b7e891-0dee-4306-90a6-b948119b8b0a,18b7e891-0dee-4306-90a6-b948119b8b0a,1,0,10076664-a649-4dc1-ba17-2692576bd8f4,10076664-a649-4dc1-ba17-2692576bd8f4,1,0,3b89af63-924c-4406-9cbe-1d546cf805be,3b89af63-924c-4406-9cbe-1d546cf805be,1,0,3ab122eb-0af1-4e85-8cc7-06387aa522ad,3ab122eb-0af1-4e85-8cc7-06387aa522ad,1,0,269ea7f4-0d68-433e-94a9-c9fda7c3db25,269ea7f4-0d68-433e-94a9-c9fda7c3db25,1,0,08da0908-ce37-44a3-8ec1-fe42d179d412,08da0908-ce37-44a3-8ec1-fe42d179d412,1,0,481cf23e-e64d-4ee2-98b2-b201cf682411,481cf23e-e64d-4ee2-98b2-b201cf682411,1,0,b142e431-66bd-4e28-a159-40df0c12fee2,b142e431-66bd-4e28-a159-40df0c12fee2,1,0,e7255edf-1584-4330-99aa-d379e75570a5,e7255edf-1584-4330-99aa-d379e75570a5,1,0,47707f66-74e7-4557-a0bf-8ddcd4e97e01,47707f66-74e7-4557-a0bf-8ddcd4e97e01,1,0,1e6fbe07-560c-4aa5-bd5d-32b5b1aed16f,1e6fbe07-560c-4aa5-bd5d-32b5b1aed16f,1,0,0d87a82d-fc3f-4395-9480-29cc5d45e11c,0d87a82d-fc3f-4395-9480-29cc5d45e11c,1,0,f6aa1c0d-a49e-4b22-8c2f-37d74272ca28,f6aa1c0d-a49e-4b22-8c2f-37d74272ca28,1,0,159d89e8-7215-4fc9-8455-7ecd4d4c7bfd,159d89e8-7215-4fc9-8455-7ecd4d4c7bfd,1,0,006cb169-055c-4f47-bdc9-0de36d6a4b7d,006cb169-055c-4f47-bdc9-0de36d6a4b7d,1,0,c26d2798-4c23-4060-8893-4403f14e43d3,c26d2798-4c23-4060-8893-4403f14e43d3,1,0,6cbdbace-b430-4e44-a325-77c61a1575ce,6cbdbace-b430-4e44-a325-77c61a1575ce,1,0,cf48bf76-6cc9-4493-b64e-5d265ef2ee71,cf48bf76-6cc9-4493-b64e-5d265ef2ee71,1,0,46417026-c44a-4a06-af41-9cf6495a33b4,46417026-c44a-4a06-af41-9cf6495a33b4,1,0,363c15f3-660e-4e19-b3cc-37c5d05e8d22,363c15f3-660e-4e19-b3cc-37c5d05e8d22,1,0,eeb4b6f1-2476-467d-9862-6fe9d3013b2c,eeb4b6f1-2476-467d-9862-6fe9d3013b2c,1,0,59d5cd7d-7f53-4015-89d9-bb8ad89f8c04,59d5cd7d-7f53-4015-89d9-bb8ad89f8c04,1,0,9d7f7dde-fea8-4064-abe2-bb7d04500cb2,9d7f7dde-fea8-4064-abe2-bb7d04500cb2,1,0,9eab48bf-3297-4f81-a448-a3a746d1ce83,9eab48bf-3297-4f81-a448-a3a746d1ce83,1,0,b276ded6-5c85-418c-bc6a-25532a71c805,b276ded6-5c85-418c-bc6a-25532a71c805,1,0,c9ccdf76-ba2b-4b46-82fd-0b2d7f2f81e8,c9ccdf76-ba2b-4b46-82fd-0b2d7f2f81e8,1,0,95253762-f034-4cd1-9ba5-04b79da77a96,95253762-f034-4cd1-9ba5-04b79da77a96,1,0,0b7dd6ee-213e-4c5d-8289-4e7ec76704cc,0b7dd6ee-213e-4c5d-8289-4e7ec76704cc,1,0,c282eac5-3252-4700-beb0-44a8bd2c3d0b,c282eac5-3252-4700-beb0-44a8bd2c3d0b,1,0,27a080e8-6e2e-45b6-b7ea-d31792771d76,27a080e8-6e2e-45b6-b7ea-d31792771d76,1,0,4c0facaf-bf9e-4bd9-8dfb-c53a2a083c7a,4c0facaf-bf9e-4bd9-8dfb-c53a2a083c7a,1,0,d73c7884-f1b7-4949-ac00-adbd9986f56d,d73c7884-f1b7-4949-ac00-adbd9986f56d,1,0,af9e6f80-52ec-4014-8956-2cb9fa65b488,af9e6f80-52ec-4014-8956-2cb9fa65b488,1,0,421b09f0-d8fe-4920-96ad-5b37519c853b,421b09f0-d8fe-4920-96ad-5b37519c853b,1,0,e491415c-5001-4151-afe6-16385f952231,e491415c-5001-4151-afe6-16385f952231,1,0,3af0fc6f-52d3-41cd-938e-9d2d307fbffa,3af0fc6f-52d3-41cd-938e-9d2d307fbffa,1,0,abb4837d-ad77-4718-8fe6-3f993b1b4eb9,abb4837d-ad77-4718-8fe6-3f993b1b4eb9,1,0,41c39035-dbe9-48ab-8501-c250dbf22868,41c39035-dbe9-48ab-8501-c250dbf22868,1,0,cb7b934a-34e5-44f7-a9ec-838b87740c1e,cb7b934a-34e5-44f7-a9ec-838b87740c1e,1,0,93701593-5ac8-4266-b471-7e9ed35a9c3e,93701593-5ac8-4266-b471-7e9ed35a9c3e,1,0,0fdb864e-ede9-4777-835c-0804968ee544,0fdb864e-ede9-4777-835c-0804968ee544,1,0,04c45a51-4a8e-48fa-a39c-f67ce2079fc4,04c45a51-4a8e-48fa-a39c-f67ce2079fc4,1,0,b46546fe-3d6b-473f-a7cb-ff3b3ae0bafe,b46546fe-3d6b-473f-a7cb-ff3b3ae0bafe,1,0,e7b1810c-8e6c-4759-9e6f-c754b5a1ac77,e7b1810c-8e6c-4759-9e6f-c754b5a1ac77,1,0,5dee9814-fe38-4631-8148-8d6c87ef6f47,5dee9814-fe38-4631-8148-8d6c87ef6f47,1,0,37d17053-5c2b-4972-b6a5-a589f2ddbde6,37d17053-5c2b-4972-b6a5-a589f2ddbde6,1,0,c349968a-3f87-425b-8efb-d847934dee4b,c349968a-3f87-425b-8efb-d847934dee4b,1,0,3bb8dc33-970c-4c58-9036-ce716d963847,3bb8dc33-970c-4c58-9036-ce716d963847,1,0,fae0d2e0-1bcd-4a77-86d6-407ca05c1c95,fae0d2e0-1bcd-4a77-86d6-407ca05c1c95,1,0,b3ff39fa-f665-4d01-9a2a-69722e6b1071,b3ff39fa-f665-4d01-9a2a-69722e6b1071,1,0,0abacb0a-ce00-474e-8aec-35685c51ddef,0abacb0a-ce00-474e-8aec-35685c51ddef,1,0,ae407b17-03aa-4268-8603-58d6714dae89,ae407b17-03aa-4268-8603-58d6714dae89,1,0,9a5b9bf4-71b8-41f2-8e23-8c396357f0a5,9a5b9bf4-71b8-41f2-8e23-8c396357f0a5,1,0,5c0ce79b-97a9-4917-9b02-a4548a97d5a1,5c0ce79b-97a9-4917-9b02-a4548a97d5a1,1,0,c552cfac-d3ef-4b63-a0b9-7c79261ff9f3,c552cfac-d3ef-4b63-a0b9-7c79261ff9f3,1,0,5bb6e52c-ac26-4143-8e90-f04f703f823b,5bb6e52c-ac26-4143-8e90-f04f703f823b,1,0,25c6d686-9bc6-43c8-86db-1710766bc1ee,25c6d686-9bc6-43c8-86db-1710766bc1ee,1,0,3878a70e-fa4d-4d8a-91db-2bbdbe13feb9,3878a70e-fa4d-4d8a-91db-2bbdbe13feb9,1,0,6ca2d621-853a-4b53-a3b0-061da5524290,6ca2d621-853a-4b53-a3b0-061da5524290,1,0,f4103457-2765-4211-89f8-c2c57869598a,f4103457-2765-4211-89f8-c2c57869598a,1,0,42b7af2f-7725-46f4-a8dc-f7b291b6270e,42b7af2f-7725-46f4-a8dc-f7b291b6270e,1,0,b8180633-7a9d-42ff-b198-3eb756bd05c8,b8180633-7a9d-42ff-b198-3eb756bd05c8,1,0,bafeeecc-ee89-43f9-b23f-c2d8d82ac03e,bafeeecc-ee89-43f9-b23f-c2d8d82ac03e,1,0,ea6c4b2f-7868-415c-8904-0c5506cf9d45,ea6c4b2f-7868-415c-8904-0c5506cf9d45,1,0,920d734e-20dd-4b71-a7fc-537c1b23f174,920d734e-20dd-4b71-a7fc-537c1b23f174,1,0,1cfaf89d-6c62-4b85-a45d-e50350fa5ae8,1cfaf89d-6c62-4b85-a45d-e50350fa5ae8,1,0,859f35fb-5da1-4550-a36e-737b1d7b5422,859f35fb-5da1-4550-a36e-737b1d7b5422,1,0,91754d23-296c-4755-adc5-4b88f8fcf6b6,91754d23-296c-4755-adc5-4b88f8fcf6b6,1,0,b4510c25-a894-412e-9113-ab4d535e15ea,b4510c25-a894-412e-9113-ab4d535e15ea,1,0,6eca2b00-c653-458d-ac62-aa69b061cc78,6eca2b00-c653-458d-ac62-aa69b061cc78,1,0,21792a76-1282-4c6d-8c32-26a468e5593c,21792a76-1282-4c6d-8c32-26a468e5593c,1,0,9009e776-984c-40a2-95a3-47cca31c1c24,9009e776-984c-40a2-95a3-47cca31c1c24,1,0,0bec9a82-9e92-4d95-818c-679668b1c432,0bec9a82-9e92-4d95-818c-679668b1c432,1,0,56c8b623-c575-4d54-8feb-bbf53f984755,56c8b623-c575-4d54-8feb-bbf53f984755,1,0,e8036f4a-3619-4530-894e-a004743d99a7,e8036f4a-3619-4530-894e-a004743d99a7,1,0,9387861d-d92c-4c0f-8162-631c579c80f2,9387861d-d92c-4c0f-8162-631c579c80f2,1,0,5e55970c-677a-4a7c-b680-c9031a0f67b4,5e55970c-677a-4a7c-b680-c9031a0f67b4,1,0,67156421-16b3-46b5-84ff-88c5fc7b29a6,67156421-16b3-46b5-84ff-88c5fc7b29a6,1,0,091eec4c-e917-4a27-aef2-cb4383271be4,091eec4c-e917-4a27-aef2-cb4383271be4,1,0,4a5d3625-a72c-4a28-84a5-ecc68da4fce0,4a5d3625-a72c-4a28-84a5-ecc68da4fce0,1,0,bbb0fff9-daea-44c9-b439-9f3882eed850,bbb0fff9-daea-44c9-b439-9f3882eed850,1,0,75f22162-7081-43c3-b509-e4d3e00b0f86,75f22162-7081-43c3-b509-e4d3e00b0f86,1,0,eb91d8ca-b473-462c-a244-5956558b6737,eb91d8ca-b473-462c-a244-5956558b6737,1,0,80f2f3e5-a4e4-4cf1-8795-6d35bad62e9b,80f2f3e5-a4e4-4cf1-8795-6d35bad62e9b,1,0,579baaa4-6493-4d99-8744-6399757295c7,579baaa4-6493-4d99-8744-6399757295c7,1,0,ae6d0e12-8857-476c-b4b2-f03295cbed3e,ae6d0e12-8857-476c-b4b2-f03295cbed3e,1,0,cc8e3172-491d-45d8-a7eb-fc6c400845cb,cc8e3172-491d-45d8-a7eb-fc6c400845cb,1,0,d7cfc87f-ac09-44aa-91d9-6511c408c5cb,d7cfc87f-ac09-44aa-91d9-6511c408c5cb,1,0,7ee1e0d0-9735-45da-bd24-c0dbabfd5b1e,7ee1e0d0-9735-45da-bd24-c0dbabfd5b1e,1,0,bd0e3bd4-1207-41ea-8dfc-afa8f7d08cc2,bd0e3bd4-1207-41ea-8dfc-afa8f7d08cc2,1,0,51d83895-5692-4479-9612-07c790d19dff,51d83895-5692-4479-9612-07c790d19dff,1,0,9c1325af-7492-42be-b3af-51b692534510,9c1325af-7492-42be-b3af-51b692534510,1,0,dface15c-cd65-4fb1-b4dd-b513086d3f8e,dface15c-cd65-4fb1-b4dd-b513086d3f8e,1,0,d854b528-8456-4453-9c2d-4f96caf10481,d854b528-8456-4453-9c2d-4f96caf10481,1,0,622d6de2-7404-41cc-961b-131d078d7ab4,622d6de2-7404-41cc-961b-131d078d7ab4,1,0,245f870e-a53a-4d86-aa0a-c0c7709b8acb,245f870e-a53a-4d86-aa0a-c0c7709b8acb,1,0,476f6bfa-b10c-4e0f-8499-23c652715b3f,476f6bfa-b10c-4e0f-8499-23c652715b3f,1,0,65c9754b-53f6-4616-a9d4-74826f7b0ced,65c9754b-53f6-4616-a9d4-74826f7b0ced,1,0,eca2b076-d218-4d1c-948b-7894edf9fa49,eca2b076-d218-4d1c-948b-7894edf9fa49,1,0,d6969c1e-e13c-4542-abb7-9cf6bb50b8e2,d6969c1e-e13c-4542-abb7-9cf6bb50b8e2,1,0,ccd91f94-d3f1-4aa3-90cf-081d72c4cab1,ccd91f94-d3f1-4aa3-90cf-081d72c4cab1,1,0,aa7d5ca4-3c02-4ca1-a790-2435ee9f9f02,aa7d5ca4-3c02-4ca1-a790-2435ee9f9f02,1,0,b7e85f5c-4312-44c6-895a-3f636a8c78d8,b7e85f5c-4312-44c6-895a-3f636a8c78d8,1,0,3b6e7ee6-0ef5-464a-a01a-6143479c7a61,3b6e7ee6-0ef5-464a-a01a-6143479c7a61,1,0,1969e8d1-0a82-44cb-a0d4-e5badb1d28d4,1969e8d1-0a82-44cb-a0d4-e5badb1d28d4,1,0,a1afacc5-f49a-4df2-a44d-479594d50179,a1afacc5-f49a-4df2-a44d-479594d50179,1,0,fe70eba3-7477-4a38-a511-d69960abb928,fe70eba3-7477-4a38-a511-d69960abb928,1,0,6534ea96-2145-49e6-9739-f59459dc7f6b,6534ea96-2145-49e6-9739-f59459dc7f6b,1,0,f49bffa0-cad6-4801-b82e-21aa580e72e6,f49bffa0-cad6-4801-b82e-21aa580e72e6,1,0,bbbfb817-8db3-4415-86c3-af028276d6e9,bbbfb817-8db3-4415-86c3-af028276d6e9,1,0,6a91112c-f6cc-47a0-9d26-a36c7702af7d,6a91112c-f6cc-47a0-9d26-a36c7702af7d,1,0,40a59681-f31d-4fb9-9301-67c1430590e0,40a59681-f31d-4fb9-9301-67c1430590e0,1,0,ae3358ad-ea3a-4b73-a305-02a152863978,ae3358ad-ea3a-4b73-a305-02a152863978,1,0,cb92dc2e-6053-4233-a408-4464514b1257,cb92dc2e-6053-4233-a408-4464514b1257,1,0,8cd65ad3-a7a3-46f6-9061-e8751fd5073e,8cd65ad3-a7a3-46f6-9061-e8751fd5073e,1,0,85550a7a-8fe0-4296-ace5-63cf053536b4,85550a7a-8fe0-4296-ace5-63cf053536b4,1,0,cf1bd9cd-2ef2-4868-b6c0-5160860690f7,cf1bd9cd-2ef2-4868-b6c0-5160860690f7,1,0,9c3bc502-bcb1-4c90-ae43-53c798958339,9c3bc502-bcb1-4c90-ae43-53c798958339,1,0,3f8b6411-6606-4d27-891e-7c77be47c5f9,3f8b6411-6606-4d27-891e-7c77be47c5f9,1,0,cfc0adf6-87b4-4c8a-91e2-46c2616b319b,cfc0adf6-87b4-4c8a-91e2-46c2616b319b,1,0,bed3f0b2-40c6-4323-9bca-cb8864e38ec0,bed3f0b2-40c6-4323-9bca-cb8864e38ec0,1,0,5eb4ca7f-027a-4860-a167-e6b424527e7a,5eb4ca7f-027a-4860-a167-e6b424527e7a,1,0,f9b98ba5-1fa8-42a4-b1a2-dd71874083cb,f9b98ba5-1fa8-42a4-b1a2-dd71874083cb,1,0,6871015f-d959-4a77-a091-a23cb4ebd8f9,6871015f-d959-4a77-a091-a23cb4ebd8f9,1,0,e5e1631b-a494-4e73-b356-b4330b84cc88,e5e1631b-a494-4e73-b356-b4330b84cc88,1,0,778c28e6-4548-45f3-a1bc-cb1dbf0cb388,778c28e6-4548-45f3-a1bc-cb1dbf0cb388,1,0,a2d6f2d9-0610-4ca9-bc15-58e341a049a4,a2d6f2d9-0610-4ca9-bc15-58e341a049a4,1,0,4dbf114a-5402-40b0-9cab-19601aa8328e,4dbf114a-5402-40b0-9cab-19601aa8328e,1,0,a0856ca2-6a66-4108-b6d4-82443cdccca6,a0856ca2-6a66-4108-b6d4-82443cdccca6,1,0,378b0708-a0a1-4c82-b55a-796acb27e696,378b0708-a0a1-4c82-b55a-796acb27e696,1,0,8e462c0e-c67a-45e9-9871-1f976b01632d,8e462c0e-c67a-45e9-9871-1f976b01632d,1,0,c5335e1f-3e47-46b7-b695-0653f825d855,c5335e1f-3e47-46b7-b695-0653f825d855,1,0,d7faad11-1e35-460c-8943-49370f328c03,d7faad11-1e35-460c-8943-49370f328c03,1,0,e4726010-85c5-4ccc-b574-4b3b55f0d391,e4726010-85c5-4ccc-b574-4b3b55f0d391,1,0,5d6770f2-9b3d-45c7-9e34-4c8626e482cf,5d6770f2-9b3d-45c7-9e34-4c8626e482cf,1,0,b01ace0e-7f21-4b6b-b751-074dcd9a8f54,b01ace0e-7f21-4b6b-b751-074dcd9a8f54,1,0,1f4f839a-4e19-45b8-a988-13ee604c269c,1f4f839a-4e19-45b8-a988-13ee604c269c,1,0,b3aa97e1-baef-45f4-9179-052f35527a5e,b3aa97e1-baef-45f4-9179-052f35527a5e,1,0,d613941f-ed4c-4957-b469-ea6b0d2a121d,d613941f-ed4c-4957-b469-ea6b0d2a121d,1,0,0d8d08e3-194f-416c-a1e0-aa92b40b7911,0d8d08e3-194f-416c-a1e0-aa92b40b7911,1,0,af0178fe-eb3a-485b-9acf-35c8702aa330,af0178fe-eb3a-485b-9acf-35c8702aa330,1,0,201d323b-4c0c-4c93-ae43-43a378ec0d9e,201d323b-4c0c-4c93-ae43-43a378ec0d9e,1,0,9e2c01b1-ccfe-4a68-a6af-8284e3e2396f,9e2c01b1-ccfe-4a68-a6af-8284e3e2396f,1,0,c513ceb0-0855-43ce-a311-c9bea88e2563,c513ceb0-0855-43ce-a311-c9bea88e2563,1,0,974bfc13-85c2-454a-b562-e72384eb4c31,974bfc13-85c2-454a-b562-e72384eb4c31,1,0,69cd6adc-b129-4fbc-804d-8d5aaef77280,69cd6adc-b129-4fbc-804d-8d5aaef77280,1,0,3431a3de-cb9d-46dc-b597-3203831796a9,3431a3de-cb9d-46dc-b597-3203831796a9,1,0,f3866271-04ed-4963-852e-cf41e9e18e1d,f3866271-04ed-4963-852e-cf41e9e18e1d,1,0,b77e5ec2-35cd-43ae-957f-af35214fa621,b77e5ec2-35cd-43ae-957f-af35214fa621,1,0,4a04d83d-cadd-4f36-9ec8-f926259c18ba,4a04d83d-cadd-4f36-9ec8-f926259c18ba,1,0,85e670c0-1616-4611-984c-3d40e890b2e9,85e670c0-1616-4611-984c-3d40e890b2e9,1,0,48ed25b0-afb9-414b-9a4e-8647fbdd95c3,48ed25b0-afb9-414b-9a4e-8647fbdd95c3,1,0,1e3a1148-1e9c-47b0-8f3c-f218c3b0094f,1e3a1148-1e9c-47b0-8f3c-f218c3b0094f,1,0,f1693207-2637-412a-972f-2bc79b9c7fc8,f1693207-2637-412a-972f-2bc79b9c7fc8,1,0,da59378e-0a97-4cff-977b-cc51967068ee,da59378e-0a97-4cff-977b-cc51967068ee,1,0,bbaad46d-f60d-49e6-a077-075366bca47e,bbaad46d-f60d-49e6-a077-075366bca47e,1,0,0d9f5703-91e4-4769-bedd-5bd974f2f617,0d9f5703-91e4-4769-bedd-5bd974f2f617,1,0,926cdf17-1929-43d6-8205-858aab558ad9,926cdf17-1929-43d6-8205-858aab558ad9,1,0,5ec6838f-2d70-4f91-b41b-16adfe8ed587,5ec6838f-2d70-4f91-b41b-16adfe8ed587,1,0,6420ad7e-61ca-4af9-9715-f2b0c3e2c58f,6420ad7e-61ca-4af9-9715-f2b0c3e2c58f,1,0,bee8b8a0-f058-44cb-822c-620351567627,bee8b8a0-f058-44cb-822c-620351567627,1,0,26365e29-903b-47fd-ad96-e0d87f5d6e87,26365e29-903b-47fd-ad96-e0d87f5d6e87,1,0,569180cb-ce54-4267-94b9-332e35e3c17d,569180cb-ce54-4267-94b9-332e35e3c17d,1,0,55bce105-51c0-452e-9eec-b960fe740db2,55bce105-51c0-452e-9eec-b960fe740db2,1,0,776c171d-5dd5-4965-94dc-c2fe6792d5f2,776c171d-5dd5-4965-94dc-c2fe6792d5f2,1,0,86bb1105-702a-47be-906a-1821a69b1b6c,86bb1105-702a-47be-906a-1821a69b1b6c,1,0,40653767-9542-44e9-a84b-ffee75584638,40653767-9542-44e9-a84b-ffee75584638,1,0,49bd152e-479a-46fe-b3af-26ed9181dc34,49bd152e-479a-46fe-b3af-26ed9181dc34,1,0,0a742dd2-1ff4-42de-b303-f2bb01b36fe2,0a742dd2-1ff4-42de-b303-f2bb01b36fe2,1,0,69e13959-51ad-4ac2-9cfc-17ac28b78c78,69e13959-51ad-4ac2-9cfc-17ac28b78c78,1,0,f890ca1b-f2c2-4630-9002-301b759ca6d9,f890ca1b-f2c2-4630-9002-301b759ca6d9,1,0,08c8a9bf-7b89-4d0e-a496-4c7efeca0577,08c8a9bf-7b89-4d0e-a496-4c7efeca0577,1,0,f6c2b015-9cfc-40d2-a93f-b0e88db4a23f,f6c2b015-9cfc-40d2-a93f-b0e88db4a23f,1,0,103f3d8f-e47a-4772-bdd7-dd5f8508d22b,103f3d8f-e47a-4772-bdd7-dd5f8508d22b,1,0,ba8ea271-8716-49ef-8b10-f4b5798c1f62,ba8ea271-8716-49ef-8b10-f4b5798c1f62,1,0,3633c30c-9479-4801-89cc-a5734a41e465,3633c30c-9479-4801-89cc-a5734a41e465,1,0,f295c68d-7e29-48b8-a95a-56e96d9843c1,f295c68d-7e29-48b8-a95a-56e96d9843c1,1,0,7ebe16ee-8e5d-4b05-89b5-9539f73be90c,7ebe16ee-8e5d-4b05-89b5-9539f73be90c,1,0,ea5d0221-fb1e-4626-862a-9c1209365d8f,ea5d0221-fb1e-4626-862a-9c1209365d8f,1,0,12bce69b-933c-4ce4-9d29-a47f3db0226e,12bce69b-933c-4ce4-9d29-a47f3db0226e,1,0,82dcd6a3-c35b-421c-a8f9-77855ad2abca,82dcd6a3-c35b-421c-a8f9-77855ad2abca,1,0,ad0b1720-282e-49d4-af80-324a887963c3,ad0b1720-282e-49d4-af80-324a887963c3,1,0,9ec6fc35-e84e-4f82-b616-5c02e945cc8f,9ec6fc35-e84e-4f82-b616-5c02e945cc8f,1,0,a666af62-aa5d-4b2b-b9e5-017d1c93ae6a,a666af62-aa5d-4b2b-b9e5-017d1c93ae6a,1,0,dea6b05f-d3e1-4ff4-8f71-6a0c18134e94,dea6b05f-d3e1-4ff4-8f71-6a0c18134e94,1,0,fcb97a46-d5fd-4bb5-b899-17723a9fe346,fcb97a46-d5fd-4bb5-b899-17723a9fe346,1,0,20adf54c-044c-4bea-8028-b6d20917a030,20adf54c-044c-4bea-8028-b6d20917a030,1,0,fbaa5b0a-56dc-4bf1-b1b2-e48073f63d13,fbaa5b0a-56dc-4bf1-b1b2-e48073f63d13,1,0,2e54b3e8-6672-48d5-802a-23d5144fed79,2e54b3e8-6672-48d5-802a-23d5144fed79,1,0,2a7c4ae2-aab3-48b3-b04f-7be6989939e8,2a7c4ae2-aab3-48b3-b04f-7be6989939e8,1,0,a92acf0e-9132-4456-9a82-1543d98ca453,a92acf0e-9132-4456-9a82-1543d98ca453,1,0,f98bcdb8-6eed-4b4f-b3da-d80b5e8bed44,f98bcdb8-6eed-4b4f-b3da-d80b5e8bed44,1,0,daad5f66-3bb4-4389-bca1-bf528ad993a3,daad5f66-3bb4-4389-bca1-bf528ad993a3,1,0,ad043f15-b2c9-4a05-82b9-6428708584b2,ad043f15-b2c9-4a05-82b9-6428708584b2,1,0,d2fd8650-d13a-411d-8206-61b16016bd82,d2fd8650-d13a-411d-8206-61b16016bd82,1,0,643f4f37-fa02-4976-8701-7a5a44b0109a,643f4f37-fa02-4976-8701-7a5a44b0109a,1,0,278a0559-07b2-4ee3-a821-c0395f9a33c1,278a0559-07b2-4ee3-a821-c0395f9a33c1,1,0,7604b15a-8c5e-4515-84b9-c1d36f9efd0a,7604b15a-8c5e-4515-84b9-c1d36f9efd0a,1,0,54d9f5bb-599c-4d4b-b616-1445e7461813,54d9f5bb-599c-4d4b-b616-1445e7461813,1,0,7d0dbd52-8bb0-4d72-87fa-2d7066e5e189,7d0dbd52-8bb0-4d72-87fa-2d7066e5e189,1,0,a2c42946-1cdb-457a-a45b-97781cfb4a15,a2c42946-1cdb-457a-a45b-97781cfb4a15,1,0,a1a44832-6026-47ae-affd-5b6d52e84307,a1a44832-6026-47ae-affd-5b6d52e84307,1,0,e0e12708-da10-4f81-9e56-5876ddc77084,e0e12708-da10-4f81-9e56-5876ddc77084,1,0,63ad43fe-a050-47f7-af4f-099aa10255af,63ad43fe-a050-47f7-af4f-099aa10255af,1,0,4033eb31-8281-402a-afff-431fa36e589e,4033eb31-8281-402a-afff-431fa36e589e,1,0,5a1e1da5-7307-4f48-bb1c-2977fc4d7cef,5a1e1da5-7307-4f48-bb1c-2977fc4d7cef,1,0,f59488c7-4643-4988-8043-5c9724e04279,f59488c7-4643-4988-8043-5c9724e04279,1,0,cfe022b5-7647-4b5c-a2bd-f5d313f4a9db,cfe022b5-7647-4b5c-a2bd-f5d313f4a9db,1,0,b67a509d-bb0f-427e-b447-4d4617078d6a,b67a509d-bb0f-427e-b447-4d4617078d6a,1,0,968ecfca-cf06-4952-83c1-a151e46c78a9,968ecfca-cf06-4952-83c1-a151e46c78a9,1,0,4945c734-a47d-44e9-8a7f-94b31911c1ce,4945c734-a47d-44e9-8a7f-94b31911c1ce,1,0,20a194e9-06cf-4013-bfa4-bc15554a54d0,20a194e9-06cf-4013-bfa4-bc15554a54d0,1,0,ab4f3d3d-bb5a-4dbc-b699-808458036b00,ab4f3d3d-bb5a-4dbc-b699-808458036b00,1,0,09761456-2273-437f-9316-0391cfaa81b3,09761456-2273-437f-9316-0391cfaa81b3,1,0,93922abc-98b9-4b3d-a5c8-7294378a69e1,93922abc-98b9-4b3d-a5c8-7294378a69e1,1,0,3c0a9c45-8e57-43fa-8ae3-26b15571f2cd,3c0a9c45-8e57-43fa-8ae3-26b15571f2cd,1,0,85223d37-2503-4783-94dc-fe6265e718d5,85223d37-2503-4783-94dc-fe6265e718d5,1,0,0918cd76-56e5-4314-8a1c-c21d023ba6f8,0918cd76-56e5-4314-8a1c-c21d023ba6f8,1,0,9db21c2e-79fa-44e4-902e-416abfccb54a,9db21c2e-79fa-44e4-902e-416abfccb54a,1,0,fb082db3-197b-4d1e-b9ea-362624d547ee,fb082db3-197b-4d1e-b9ea-362624d547ee,1,0,c09dcf00-a45a-4487-99c5-d3a37956ec88,c09dcf00-a45a-4487-99c5-d3a37956ec88,1,0,531a5a0c-6ac9-4e93-8caa-42d9aad0bc82,531a5a0c-6ac9-4e93-8caa-42d9aad0bc82,1,0,2714e1b6-6b02-43a1-bc94-2934b429ed35,2714e1b6-6b02-43a1-bc94-2934b429ed35,1,0,e33c73b2-ef0b-49b7-a65f-ab2c814ad256,e33c73b2-ef0b-49b7-a65f-ab2c814ad256,1,0,4c7016da-9991-4917-8eaa-e760cc9e29d1,4c7016da-9991-4917-8eaa-e760cc9e29d1,1,0,febb3770-5c11-4ada-9e49-a27950bdaddf,febb3770-5c11-4ada-9e49-a27950bdaddf,1,0,d7b57669-e538-4e54-ab1b-8428f0586466,d7b57669-e538-4e54-ab1b-8428f0586466,1,0,223e4ccf-5638-4576-bd88-7c54be68de47,223e4ccf-5638-4576-bd88-7c54be68de47,1,0,e3bae40b-5316-4392-8c82-b601922a6582,e3bae40b-5316-4392-8c82-b601922a6582,1,0,26806602-54be-4b2f-96ae-3e2a31616a4e,26806602-54be-4b2f-96ae-3e2a31616a4e,1,0,738fc48f-5160-4786-84bb-053c188662ce,738fc48f-5160-4786-84bb-053c188662ce,1,0,6e883b67-f74c-4791-8fb3-446534e3a6db,6e883b67-f74c-4791-8fb3-446534e3a6db,1,0,24fed307-445d-44b5-8964-9d08d1003061,24fed307-445d-44b5-8964-9d08d1003061,1,0,8e4c2dbe-15b7-4e04-9f07-892d70741a97,8e4c2dbe-15b7-4e04-9f07-892d70741a97,1,0,67691860-e374-451f-aee3-05a35df2a477,67691860-e374-451f-aee3-05a35df2a477,1,0,4337d956-809f-4140-a7bb-5f5c00a65ccb,4337d956-809f-4140-a7bb-5f5c00a65ccb,1,0,dbed7302-370e-4e0f-b505-3a86fe4c4ebd,dbed7302-370e-4e0f-b505-3a86fe4c4ebd,1,0,9c484a15-039e-416d-af97-4c2bd90fd873,9c484a15-039e-416d-af97-4c2bd90fd873,1,0,534855e3-4cf2-471c-b982-7138917050c9,534855e3-4cf2-471c-b982-7138917050c9,1,0,4c72b944-d000-4920-aec8-54029f88ddf4,4c72b944-d000-4920-aec8-54029f88ddf4,1,0,b4033d05-05c2-4617-80d9-abfa389c47f4,b4033d05-05c2-4617-80d9-abfa389c47f4,1,0,0f46b124-1575-4984-9bc1-b5e4696efc74,0f46b124-1575-4984-9bc1-b5e4696efc74,1,0,a0183a0b-1459-4b32-924c-6ea156f02125,a0183a0b-1459-4b32-924c-6ea156f02125,1,0,fc2dc619-41e0-4cce-a080-d5c8de5029a8,fc2dc619-41e0-4cce-a080-d5c8de5029a8,1,0,9609e5fb-fd11-463c-8679-9b10fc0993ed,9609e5fb-fd11-463c-8679-9b10fc0993ed,1,0,f438b941-2aae-4c67-81dc-340f6acc25b1,f438b941-2aae-4c67-81dc-340f6acc25b1,1,0,48075630-2041-48c3-9eb0-d2107cfcb249,48075630-2041-48c3-9eb0-d2107cfcb249,1,0,7d7e7e13-eb42-420d-9bfc-14fab901c3c1,7d7e7e13-eb42-420d-9bfc-14fab901c3c1,1,0,aa29e1be-4e99-4136-8dc1-0124908979ad,aa29e1be-4e99-4136-8dc1-0124908979ad,1,0,0d76799d-7fc7-446b-88fb-dca839de00a5,0d76799d-7fc7-446b-88fb-dca839de00a5,1,0,cb5674c3-0d91-4948-bafd-d9ef44a2a69d,cb5674c3-0d91-4948-bafd-d9ef44a2a69d,1,0,ea4a869c-861c-412c-a3be-de1c57d1a251,ea4a869c-861c-412c-a3be-de1c57d1a251,1,0,eeafcc8c-fbe2-4bb4-8b8a-cf663208258d,eeafcc8c-fbe2-4bb4-8b8a-cf663208258d,1,0,6a3bd39a-59cb-4763-b49f-7ab67167a8b7,6a3bd39a-59cb-4763-b49f-7ab67167a8b7,1,0,6c1d8f6c-db33-46dc-8824-aceacb4bf9c1,6c1d8f6c-db33-46dc-8824-aceacb4bf9c1,1,0,67e8b7dc-e0d7-44a9-81d0-6b31bb318145,67e8b7dc-e0d7-44a9-81d0-6b31bb318145,1,0,50ac390d-324f-40bd-b3df-0468a63b94b6,50ac390d-324f-40bd-b3df-0468a63b94b6,1,0,80337710-2c60-45c4-ae1f-bb42731fb611,80337710-2c60-45c4-ae1f-bb42731fb611,1,0,9dcf467e-7701-4c7b-b747-95f4d9b9295c,9dcf467e-7701-4c7b-b747-95f4d9b9295c,1,0,dd07b255-25af-466e-a224-c561a8ca567b,dd07b255-25af-466e-a224-c561a8ca567b,1,0,80641554-046e-4c4a-8544-a35b4c554dad,80641554-046e-4c4a-8544-a35b4c554dad,1,0,4d9df55f-724d-4792-96a7-885df898e7cc,4d9df55f-724d-4792-96a7-885df898e7cc,1,0,77149f7a-8a76-4569-9487-991c41e132ef,77149f7a-8a76-4569-9487-991c41e132ef,1,0,1e9e115a-e65b-4346-b0d3-47cf1dbe75f2,1e9e115a-e65b-4346-b0d3-47cf1dbe75f2,1,0,9e1be65e-986f-4d21-91f0-15c66db0c947,9e1be65e-986f-4d21-91f0-15c66db0c947,1,0,67993b79-6aca-4641-b2e2-0a15f44e47d5,67993b79-6aca-4641-b2e2-0a15f44e47d5,1,0,d2fe4578-a1f8-4586-b052-fa71d25365c9,d2fe4578-a1f8-4586-b052-fa71d25365c9,1,0,f31f3dab-5796-47ac-a54d-3081f8cad817,f31f3dab-5796-47ac-a54d-3081f8cad817,1,0,cd59707e-b9e4-4038-8203-ae22a8060e8d,cd59707e-b9e4-4038-8203-ae22a8060e8d,1,0,db497857-33d3-49a1-b328-dfc62c973ecb,db497857-33d3-49a1-b328-dfc62c973ecb,1,0,139c001c-7b07-465a-9187-399ad32d294f,139c001c-7b07-465a-9187-399ad32d294f,1,0,50591ed3-06db-48f0-8e2b-a70b8ea2d09f,50591ed3-06db-48f0-8e2b-a70b8ea2d09f,1,0,5d228ce4-069e-4f98-beed-b8e1de17c3d9,5d228ce4-069e-4f98-beed-b8e1de17c3d9,1,0,9770fc09-87bf-4fce-9b0d-410efd30edae,9770fc09-87bf-4fce-9b0d-410efd30edae,1,0,3d73d5ff-995e-40ed-a401-cec2a3d12c8f,3d73d5ff-995e-40ed-a401-cec2a3d12c8f,1,0,20156709-1481-4007-8e89-9ce79fc589fc,20156709-1481-4007-8e89-9ce79fc589fc,1,0,fbcda361-0ef2-47b4-ba1c-1d1952898bd3,fbcda361-0ef2-47b4-ba1c-1d1952898bd3,1,0,7e7c5abd-b645-4de5-a40e-5805ec4456e2,7e7c5abd-b645-4de5-a40e-5805ec4456e2,1,0,763a16c3-a728-4b65-a485-705990310b4a,763a16c3-a728-4b65-a485-705990310b4a,1,0,65338920-c744-4d1e-b351-848b90a3feda,65338920-c744-4d1e-b351-848b90a3feda,1,0,2aedb1ac-caf1-45c7-913e-82a36637d5d4,2aedb1ac-caf1-45c7-913e-82a36637d5d4,1,0,65f3ad72-ed03-482b-a2f1-05053eef408a,65f3ad72-ed03-482b-a2f1-05053eef408a,1,0,e177e258-7d0c-4fe1-80e5-3b89de9e23d9,e177e258-7d0c-4fe1-80e5-3b89de9e23d9,1,0,3f25ac9f-c6b4-4ccc-bec4-a90c99403823,3f25ac9f-c6b4-4ccc-bec4-a90c99403823,1,0,56177464-5e9f-4598-96bc-eb311993c503,56177464-5e9f-4598-96bc-eb311993c503,1,0,c2308e60-2844-4bd8-bc8a-c9c20e5fc62d,c2308e60-2844-4bd8-bc8a-c9c20e5fc62d,1,0,bdfe65f4-4174-4e66-915c-943137981cf0,bdfe65f4-4174-4e66-915c-943137981cf0,1,0,5271de2d-d3a0-4128-90e0-cd8e1ea2ad30,5271de2d-d3a0-4128-90e0-cd8e1ea2ad30,1,0,c895d58a-5be1-4157-81af-f4f6db9b4b9e,c895d58a-5be1-4157-81af-f4f6db9b4b9e,1,0,0d89036c-af6e-4709-847c-0dab74a33d72,0d89036c-af6e-4709-847c-0dab74a33d72,1,0,7d223aab-d4f6-41d5-a701-6fe03517cf50,7d223aab-d4f6-41d5-a701-6fe03517cf50,1,0,631cdd15-eb1f-4903-9073-4de3911ba2e6,631cdd15-eb1f-4903-9073-4de3911ba2e6,1,0,6b10ab0a-8d4e-4847-9ce7-663fb4770c35,6b10ab0a-8d4e-4847-9ce7-663fb4770c35,1,0,42630eee-ce93-40a8-b96e-3eb759f48976,42630eee-ce93-40a8-b96e-3eb759f48976,1,0,174e0187-cf34-4949-8dc2-a1f9aece78dc,174e0187-cf34-4949-8dc2-a1f9aece78dc,1,0,5d9f2db6-704d-45cb-96c3-e59e47ad4fea,5d9f2db6-704d-45cb-96c3-e59e47ad4fea,1,0,e4dbeb50-292f-452f-a0da-a55e5ea936e4,e4dbeb50-292f-452f-a0da-a55e5ea936e4,1,0,8ce6cc1a-8570-4704-b9a3-44e815b2e753,8ce6cc1a-8570-4704-b9a3-44e815b2e753,1,0,71aa2bf7-85c9-40f3-a9b0-f6d666eddd28,71aa2bf7-85c9-40f3-a9b0-f6d666eddd28,1,0,497cbe4d-586d-48a2-8e98-d20e3e09ed42,497cbe4d-586d-48a2-8e98-d20e3e09ed42,1,0,38b7679d-3739-4572-baf2-d8c7b2a94f0a,38b7679d-3739-4572-baf2-d8c7b2a94f0a,1,0,1470f052-f032-46bc-b1ee-54555e725dfd,1470f052-f032-46bc-b1ee-54555e725dfd,1,0,4019a5e9-1f50-44b9-98ba-87c07a0ce4e5,4019a5e9-1f50-44b9-98ba-87c07a0ce4e5,1,0,7d336fdd-5cbf-4c92-a783-f451f7590502,7d336fdd-5cbf-4c92-a783-f451f7590502,1,0,ee8af8ee-e49a-4511-9a91-48814ab99d23,ee8af8ee-e49a-4511-9a91-48814ab99d23,1,0,3a7d9d49-b5e5-4c5c-958e-a4c6afda8b9d,3a7d9d49-b5e5-4c5c-958e-a4c6afda8b9d,1,0,bc10ad8f-383c-469a-8c0e-60805161055b,bc10ad8f-383c-469a-8c0e-60805161055b,1,0,86760ecb-2ddd-40ce-bc4f-94c23027a55e,86760ecb-2ddd-40ce-bc4f-94c23027a55e,1,0,6fbf844e-ee8d-490f-9177-6392d262312f,6fbf844e-ee8d-490f-9177-6392d262312f,1,0,703a3e8a-0204-4e8f-8fa0-a2ed1aeb7662,703a3e8a-0204-4e8f-8fa0-a2ed1aeb7662,1,0,f5d90a5a-1adb-49d6-8640-2e4054bdb99f,f5d90a5a-1adb-49d6-8640-2e4054bdb99f,1,0,37722a34-1148-4cc8-95e6-4645ae9cca98,37722a34-1148-4cc8-95e6-4645ae9cca98,1,0,11f32e0f-7d16-4ebd-9cef-fffd2d64e70a,11f32e0f-7d16-4ebd-9cef-fffd2d64e70a,1,0,cc34bd23-de0a-4b09-8333-e4693576b9f4,cc34bd23-de0a-4b09-8333-e4693576b9f4,1,0,b16d5e79-9d7e-4d3e-9be8-3b2a932abf78,b16d5e79-9d7e-4d3e-9be8-3b2a932abf78,1,0,903af13a-1f73-4145-a3d0-971c3be5fbe6,903af13a-1f73-4145-a3d0-971c3be5fbe6,1,0,fb42ad06-d5a4-40ea-817c-fa7ff385d8db,fb42ad06-d5a4-40ea-817c-fa7ff385d8db,1,0,bc110a6a-26fa-4aa1-a2ef-bdaeaa0a33af,bc110a6a-26fa-4aa1-a2ef-bdaeaa0a33af,1,0,953dbad6-4f5c-4319-874a-db358a77d001,953dbad6-4f5c-4319-874a-db358a77d001,1,0,05243f56-7e9b-4a61-8efb-1b5e525fff21,05243f56-7e9b-4a61-8efb-1b5e525fff21,1,0,7aa86a2d-2b47-447e-8901-806411011279,7aa86a2d-2b47-447e-8901-806411011279,1,0,fca0dfad-f853-4694-9ce9-53a3a10f59b7,fca0dfad-f853-4694-9ce9-53a3a10f59b7,1,0,934b8380-c6e0-49f8-a6c2-91c0ddb2f95e,934b8380-c6e0-49f8-a6c2-91c0ddb2f95e,1,0,57f4ee70-185e-4f2a-91a6-6c0bf93c1000,57f4ee70-185e-4f2a-91a6-6c0bf93c1000,1,0,b4cb92fb-ad82-44ed-9203-397b412b3453,b4cb92fb-ad82-44ed-9203-397b412b3453,1,0,69ceac29-06d3-45f2-b914-7966465cd0d3,69ceac29-06d3-45f2-b914-7966465cd0d3,1,0,b690721d-960b-4374-8d2c-feed3a2b354b,b690721d-960b-4374-8d2c-feed3a2b354b,1,0,271243d3-1871-4a0a-bf7f-63bacacf0a59,271243d3-1871-4a0a-bf7f-63bacacf0a59,1,0,b1ed134b-f2aa-4b06-b7a2-0e524ead04df,b1ed134b-f2aa-4b06-b7a2-0e524ead04df,1,0,5b379a72-8605-4e88-84cb-14272a3b8f5f,5b379a72-8605-4e88-84cb-14272a3b8f5f,1,0,1281fe19-bbca-4a4f-84d8-14187e62000f,1281fe19-bbca-4a4f-84d8-14187e62000f,1,0,ec44f92a-06bf-4a53-a7ba-fbe9846a68a6,ec44f92a-06bf-4a53-a7ba-fbe9846a68a6,1,0,94819f9d-8a93-4a44-b1db-af0f095c7c1d,94819f9d-8a93-4a44-b1db-af0f095c7c1d,1,0,1eb8721d-bbeb-4cca-9e4f-e8386949c93c,1eb8721d-bbeb-4cca-9e4f-e8386949c93c,1,0,0012d153-685c-48ef-9623-8aeff3795aa6,0012d153-685c-48ef-9623-8aeff3795aa6,1,0,8483a18c-ec6f-455c-9568-2019025a25d2,8483a18c-ec6f-455c-9568-2019025a25d2,1,0,9b7051d5-abc4-416c-a0e6-515d120d78e4,9b7051d5-abc4-416c-a0e6-515d120d78e4,1,0,86d1bc4e-f08d-48c7-8b3a-3c5feb0c843c,86d1bc4e-f08d-48c7-8b3a-3c5feb0c843c,1,0,869938e6-6310-4326-bd15-5b91fe2e0911,869938e6-6310-4326-bd15-5b91fe2e0911,1,0,8ed7254b-bbf8-49d9-8a73-9a91316fd02d,8ed7254b-bbf8-49d9-8a73-9a91316fd02d,1,0,ab6d8fdd-7788-474d-9645-53008d7fa603,ab6d8fdd-7788-474d-9645-53008d7fa603,1,0,a156521a-ece1-49d3-8056-1c3508273c45,a156521a-ece1-49d3-8056-1c3508273c45,1,0,075d39e0-a77a-4d0b-9260-7524fb5b2d0c,075d39e0-a77a-4d0b-9260-7524fb5b2d0c,1,0,10018f80-3138-4089-bf9a-a5f178f1e295,10018f80-3138-4089-bf9a-a5f178f1e295,1,0,43aba109-4b7f-45ef-9c30-8b754e81911b,43aba109-4b7f-45ef-9c30-8b754e81911b,1,0,4ccd72e1-7fd7-4a3b-8428-71b44992937e,4ccd72e1-7fd7-4a3b-8428-71b44992937e,1,0,46077650-2b2c-4319-8279-41f277971669,46077650-2b2c-4319-8279-41f277971669,1,0,4afe733d-64a0-4ea5-9d12-6e2c86eb91e4,4afe733d-64a0-4ea5-9d12-6e2c86eb91e4,1,0,612f3b95-d7db-4b33-92b5-4873205b424b,612f3b95-d7db-4b33-92b5-4873205b424b,1,0,d7afa1a6-0ac9-4527-8f1c-5317ce259b52,d7afa1a6-0ac9-4527-8f1c-5317ce259b52,1,0,d0b79c3d-b0c5-4eb3-9971-1def1c88698f,d0b79c3d-b0c5-4eb3-9971-1def1c88698f,1,0,e82ebd72-7b5a-4f45-b853-1001bf680a05,e82ebd72-7b5a-4f45-b853-1001bf680a05,1,0,a74879b8-c080-4cc0-b44f-2b7c4dae87fe,a74879b8-c080-4cc0-b44f-2b7c4dae87fe,1,0,e9e9b733-e97a-430d-95ce-45ea27751f64,e9e9b733-e97a-430d-95ce-45ea27751f64,1,0,9f81693c-4ddd-47ec-b111-d073e1510752,9f81693c-4ddd-47ec-b111-d073e1510752,1,0,8a2811be-64c5-44ba-a52c-482c125eb092,8a2811be-64c5-44ba-a52c-482c125eb092,1,0,5245bee4-ebb7-45d1-b40a-2a06900e55b1,5245bee4-ebb7-45d1-b40a-2a06900e55b1,1,0,cc8cdc82-ee97-4426-b889-95d2286af37c,cc8cdc82-ee97-4426-b889-95d2286af37c,1,0,149104f3-a4c7-47e5-8057-b5bcc754a4f2,149104f3-a4c7-47e5-8057-b5bcc754a4f2,1,0,86ffe9a7-9b3e-49ab-bd88-20269fec56bc,86ffe9a7-9b3e-49ab-bd88-20269fec56bc,1,0,3dd50c66-27f7-4f1e-86e9-c709995c8609,3dd50c66-27f7-4f1e-86e9-c709995c8609,1,0,45c0003f-0ed7-4582-b84e-217fdc4ddeaf,45c0003f-0ed7-4582-b84e-217fdc4ddeaf,1,0,ed1369c5-c274-45bd-ae91-7648565ae09f,ed1369c5-c274-45bd-ae91-7648565ae09f,1,0,8d0fce61-a22f-4033-9e03-3f00c4a21722,8d0fce61-a22f-4033-9e03-3f00c4a21722,1,0,bfb3f026-e940-49c3-ac30-408186f9e11e,bfb3f026-e940-49c3-ac30-408186f9e11e,1,0,e1dc83eb-a8cd-454b-8de8-cff2049be78c,e1dc83eb-a8cd-454b-8de8-cff2049be78c,1,0,9edd9288-1463-4d67-b9f0-40f351d978e9,9edd9288-1463-4d67-b9f0-40f351d978e9,1,0,c9db6c68-965f-4567-b26e-5d497a389de1,c9db6c68-965f-4567-b26e-5d497a389de1,1,0,4da2f65d-56bd-4140-9b31-e5ccac4a800a,4da2f65d-56bd-4140-9b31-e5ccac4a800a,1,0,eb163bba-b94c-4a78-9c2d-7b519325e3d4,eb163bba-b94c-4a78-9c2d-7b519325e3d4,1,0,58cdbd20-a7f4-4c4c-8a4e-638714cc2699,58cdbd20-a7f4-4c4c-8a4e-638714cc2699,1,0,616cd2cc-eaf4-4586-bca1-c044429b491a,616cd2cc-eaf4-4586-bca1-c044429b491a,1,0,939bdb9a-294b-4b42-a56f-030f69bc29c4,939bdb9a-294b-4b42-a56f-030f69bc29c4,1,0,ee7a763b-bcbf-4ff3-89af-eb7965b33515,ee7a763b-bcbf-4ff3-89af-eb7965b33515,1,0,e72b3ae6-00e9-45d7-a4f3-bc8a5a2f5ae4,e72b3ae6-00e9-45d7-a4f3-bc8a5a2f5ae4,1,0,4b8fdb79-a9a0-4a53-9a95-82b8f64b1aa2,4b8fdb79-a9a0-4a53-9a95-82b8f64b1aa2,1,0,d5523a3a-2fb4-4f6c-a76c-08864db125d9,d5523a3a-2fb4-4f6c-a76c-08864db125d9,1,0,28f646f0-1ffc-495b-98d8-f9687172e22a,28f646f0-1ffc-495b-98d8-f9687172e22a,1,0,ecfc26a8-6353-4c78-b469-7ef5b548aa33,ecfc26a8-6353-4c78-b469-7ef5b548aa33,1,0,6ed475b1-7b4f-41d8-957b-18e82addd4d9,6ed475b1-7b4f-41d8-957b-18e82addd4d9,1,0,7be76d5d-7585-4766-8690-9d3c9fc56787,7be76d5d-7585-4766-8690-9d3c9fc56787,1,0,22a6d909-b793-4540-8f4e-605e0448bf2a,22a6d909-b793-4540-8f4e-605e0448bf2a,1,0,2e01082e-9b7b-47f5-900f-1c2e8dfb3f20,2e01082e-9b7b-47f5-900f-1c2e8dfb3f20,1,0,16547db4-7d90-451b-b0a0-33a59837d1f6,16547db4-7d90-451b-b0a0-33a59837d1f6,1,0,f008b0a5-266c-47ab-a15d-95e23bf7041b,f008b0a5-266c-47ab-a15d-95e23bf7041b,1,0,2918a7ba-1b7f-4f1b-8237-d4bc09bcc35a,2918a7ba-1b7f-4f1b-8237-d4bc09bcc35a,1,0,81d900be-ddc1-417f-ae2c-1aacf040de9a,81d900be-ddc1-417f-ae2c-1aacf040de9a,1,0,c65f69ce-be78-4e8d-b91d-293c4108ce77,c65f69ce-be78-4e8d-b91d-293c4108ce77,1,0,521a5717-0b38-401d-bd72-30cee219bd14,521a5717-0b38-401d-bd72-30cee219bd14,1,0,977c30dc-6f27-4931-9fd5-d12ed147e3ec,977c30dc-6f27-4931-9fd5-d12ed147e3ec,1,0,eea4f72e-dd1b-46c7-b270-876a482236b3,eea4f72e-dd1b-46c7-b270-876a482236b3,1,0,25e8d286-dfbb-4fdf-974b-fe3f6f76eac0,25e8d286-dfbb-4fdf-974b-fe3f6f76eac0,1,0,2d249dad-8b4f-462b-ab13-892639a6e071,2d249dad-8b4f-462b-ab13-892639a6e071,1,0,f6249bf4-d2e7-48f3-808f-d776915d14cb,f6249bf4-d2e7-48f3-808f-d776915d14cb,1,0,75f11ecd-c87a-4a14-a7ca-c755f63d7cf8,75f11ecd-c87a-4a14-a7ca-c755f63d7cf8,1,0,883cdeb0-e747-4157-bbe7-0ebc423a82af,883cdeb0-e747-4157-bbe7-0ebc423a82af,1,0,ba62ac73-91da-4dad-abc7-3cf8acf7e315,ba62ac73-91da-4dad-abc7-3cf8acf7e315,1,0,6a71416d-dba1-4883-9264-597ecf9d6270,6a71416d-dba1-4883-9264-597ecf9d6270,1,0,ce3fc202-7893-4d1b-9c8f-1b3349a5c147,ce3fc202-7893-4d1b-9c8f-1b3349a5c147,1,0,6593baab-fce0-49ed-867e-be242bfc08d7,6593baab-fce0-49ed-867e-be242bfc08d7,1,0,403390cf-d3f8-4dfa-b83d-e2fca4ee0dff,403390cf-d3f8-4dfa-b83d-e2fca4ee0dff,1,0,57aed64d-da61-4c18-af21-dab3afdc5c03,57aed64d-da61-4c18-af21-dab3afdc5c03,1,0,452822b4-a590-44db-ab77-d8c01f7300e7,452822b4-a590-44db-ab77-d8c01f7300e7,1,0,e1132cbb-7045-47e2-bbc7-6e92e4dff131,e1132cbb-7045-47e2-bbc7-6e92e4dff131,1,0,62a71ba7-3226-4d10-8cc9-ac9908a00ae7,62a71ba7-3226-4d10-8cc9-ac9908a00ae7,1,0,f5ad6743-b19b-44c4-b3d1-2e39d74a4abd,f5ad6743-b19b-44c4-b3d1-2e39d74a4abd,1,0,85d7ea13-c521-44b8-9dce-5e57529a21db,85d7ea13-c521-44b8-9dce-5e57529a21db,1,0,4b89b7fb-31d9-43c7-9f7e-b0c31fa3331d,4b89b7fb-31d9-43c7-9f7e-b0c31fa3331d,1,0,6ce1d71d-7548-4ee7-be78-21ae23d5a08d,6ce1d71d-7548-4ee7-be78-21ae23d5a08d,1,0,19b29d30-e395-42f2-b700-7474bb2cdcb7,19b29d30-e395-42f2-b700-7474bb2cdcb7,1,0,0c38782c-6559-4f1c-88af-aa022285ffbd,0c38782c-6559-4f1c-88af-aa022285ffbd,1,0,eed23203-924d-4092-a1a8-a7cdd72489e5,eed23203-924d-4092-a1a8-a7cdd72489e5,1,0,26593d71-6002-4217-9661-8e649c899456,26593d71-6002-4217-9661-8e649c899456,1,0,b0deb957-624b-4bcb-824c-76aedf1affe9,b0deb957-624b-4bcb-824c-76aedf1affe9,1,0,9934e608-593d-45d0-9df3-539f0c8fc385,9934e608-593d-45d0-9df3-539f0c8fc385,1,0,80da4126-4319-425f-8427-7d60652cf754,80da4126-4319-425f-8427-7d60652cf754,1,0,05236ace-bcdd-4eb8-a1fb-5843ee311d10,05236ace-bcdd-4eb8-a1fb-5843ee311d10,1,0,993d8672-af86-4179-a9ef-228303748bcd,993d8672-af86-4179-a9ef-228303748bcd,1,0,0f1b284c-6c9e-4799-bc47-3326c4b7bec2,0f1b284c-6c9e-4799-bc47-3326c4b7bec2,1,0,449060fd-4711-4b9e-93e0-11b35c314fb3,449060fd-4711-4b9e-93e0-11b35c314fb3,1,0,e7efa9d5-ea93-4070-87bb-a4d95116d1b4,e7efa9d5-ea93-4070-87bb-a4d95116d1b4,1,0,0614d340-6524-4715-978d-87ab21377e72,0614d340-6524-4715-978d-87ab21377e72,1,0,d47daac5-ec3b-4d4e-8b01-045a37f7074d,d47daac5-ec3b-4d4e-8b01-045a37f7074d,1,0,9d6ed3b9-35cd-47c0-9dfc-732e5066a071,9d6ed3b9-35cd-47c0-9dfc-732e5066a071,1,0,912cbd30-1ed5-4888-a4b6-98e9215b28e9,912cbd30-1ed5-4888-a4b6-98e9215b28e9,1,0,abf093ce-be63-487d-8be4-be282aa475be,abf093ce-be63-487d-8be4-be282aa475be,1,0,7a910ad6-b922-4716-8140-1540d76296b2,7a910ad6-b922-4716-8140-1540d76296b2,1,0,3fa9aa34-382c-49fa-87d8-34bedcde5836,3fa9aa34-382c-49fa-87d8-34bedcde5836,1,0,ae4825b1-dd4e-4d0e-8133-da6d1a441c36,ae4825b1-dd4e-4d0e-8133-da6d1a441c36,1,0,f7e6da22-c2b7-47c9-8062-e612a56ae61c,f7e6da22-c2b7-47c9-8062-e612a56ae61c,1,0,5189beb9-b939-4f97-aca0-c2f3492ac8b9,5189beb9-b939-4f97-aca0-c2f3492ac8b9,1,0,0b139d7a-b583-4082-b9f2-8f3fb444bd51,0b139d7a-b583-4082-b9f2-8f3fb444bd51,1,0,b8931f98-c1d7-4e9b-be43-065064e7ba95,b8931f98-c1d7-4e9b-be43-065064e7ba95,1,0,ab2b472d-97d5-4c33-86fd-e2cdaedf3f3d,ab2b472d-97d5-4c33-86fd-e2cdaedf3f3d,1,0,60848308-931c-4da3-aa4b-37f6fb4b194f,60848308-931c-4da3-aa4b-37f6fb4b194f,1,0,0761c32c-1de6-4c40-9178-64aeb46b6622,0761c32c-1de6-4c40-9178-64aeb46b6622,1,0,08af8da8-d44b-46f0-a8d3-60421e7b5a1a,08af8da8-d44b-46f0-a8d3-60421e7b5a1a,1,0,54b14504-503b-45f6-9b5d-785b49829425,54b14504-503b-45f6-9b5d-785b49829425,1,0,80d3ee33-1cdc-4af6-85c2-787094526592,80d3ee33-1cdc-4af6-85c2-787094526592,1,0,c8b28660-6cb0-4ef5-85c2-a75da863ba96,c8b28660-6cb0-4ef5-85c2-a75da863ba96,1,0,1cd607b4-49fc-460e-a014-6afe50083b47,1cd607b4-49fc-460e-a014-6afe50083b47,1,0,a215e767-36e9-4408-9d18-7b4be757022a,a215e767-36e9-4408-9d18-7b4be757022a,1,0,a3e262bc-9f0d-480d-a1d1-c2326105d22d,a3e262bc-9f0d-480d-a1d1-c2326105d22d,1,0,8eae0c79-288b-4773-90bb-49299ad45628,8eae0c79-288b-4773-90bb-49299ad45628,1,0,2faa5594-f1b4-4312-b674-82fdf9623105,2faa5594-f1b4-4312-b674-82fdf9623105,1,0,185c1ad3-b5db-49b6-9342-d08e1bf64903,185c1ad3-b5db-49b6-9342-d08e1bf64903,1,0,3c69a4ad-001d-4421-88f6-412e15d710d6,3c69a4ad-001d-4421-88f6-412e15d710d6,1,0,d0373603-5abb-4f7b-8d2f-9f7fb52615aa,d0373603-5abb-4f7b-8d2f-9f7fb52615aa,1,0,f20a35fe-6029-4dc8-b6b4-b098dbce12e8,f20a35fe-6029-4dc8-b6b4-b098dbce12e8,1,0,6a68a08a-ea37-4573-ab9f-ec822f6d250b,6a68a08a-ea37-4573-ab9f-ec822f6d250b,1,0,00e87d04-8104-420b-b2c6-7304889a75b2,00e87d04-8104-420b-b2c6-7304889a75b2,1,0,bde86820-f7bb-463b-97d0-bfa5f8323af0,bde86820-f7bb-463b-97d0-bfa5f8323af0,1,0,b9b24093-810c-4158-846d-e2c7aea54d36,b9b24093-810c-4158-846d-e2c7aea54d36,1,0,289a6aac-dc4e-4fae-8815-853e78d450bb,289a6aac-dc4e-4fae-8815-853e78d450bb,1,0,557e7d89-83ed-45d0-86cc-6e355f14025d,557e7d89-83ed-45d0-86cc-6e355f14025d,1,0,d681b26b-dd8d-46d7-986e-10f05c37a1e4,d681b26b-dd8d-46d7-986e-10f05c37a1e4,1,0,4d3c216e-c04f-4884-8681-1c861c50ce7d,4d3c216e-c04f-4884-8681-1c861c50ce7d,1,0,4a41eee0-c973-4824-a07c-9fcf731f055e,4a41eee0-c973-4824-a07c-9fcf731f055e,1,0,ee756c33-f408-4449-a6bb-3186a0421362,ee756c33-f408-4449-a6bb-3186a0421362,1,0,fbfa8f64-52e4-48f6-b0fb-fd06976dd93d,fbfa8f64-52e4-48f6-b0fb-fd06976dd93d,1,0,6ff66622-4d20-4696-9fe9-4b4faeb21d96,6ff66622-4d20-4696-9fe9-4b4faeb21d96,1,0,46237eec-c206-4d21-883c-27599b9ed38c,46237eec-c206-4d21-883c-27599b9ed38c,1,0,92cbfe14-35c5-440b-9a13-ef8c8ab0630a,92cbfe14-35c5-440b-9a13-ef8c8ab0630a,1,0,8ce759ff-f579-461c-bb1e-9ac2b01e88df,8ce759ff-f579-461c-bb1e-9ac2b01e88df,1,0,8b451909-2c15-48f2-b869-65e7031cc542,8b451909-2c15-48f2-b869-65e7031cc542,1,0,ab6ff81a-56aa-4742-afe4-d7a652e9d2de,ab6ff81a-56aa-4742-afe4-d7a652e9d2de,1,0,7b377fca-4466-476f-9eb2-0b00141103d6,7b377fca-4466-476f-9eb2-0b00141103d6,1,0,9ce5eceb-f366-4035-956e-62721358b154,9ce5eceb-f366-4035-956e-62721358b154,1,0,8b5358e9-5810-45a7-a49e-fe7fe63c73f3,8b5358e9-5810-45a7-a49e-fe7fe63c73f3,1,0,23afa5f6-9c3f-4f79-885b-b20785fc5e45,23afa5f6-9c3f-4f79-885b-b20785fc5e45,1,0,379a8bf7-b760-43d6-b5c4-6393b00e294f,379a8bf7-b760-43d6-b5c4-6393b00e294f,1,0,e44b737f-9076-4070-94ba-ed0b00e60393,e44b737f-9076-4070-94ba-ed0b00e60393,1,0,5582e533-b908-40c9-8c81-876906f0d47e,5582e533-b908-40c9-8c81-876906f0d47e,1,0,71656b8b-2d9b-4ac9-884d-72f47b9c69b7,71656b8b-2d9b-4ac9-884d-72f47b9c69b7,1,0,e0797541-88c2-4ad9-9ff4-d56899e6a6ee,e0797541-88c2-4ad9-9ff4-d56899e6a6ee,1,0,794f5fb5-3b8f-4f45-9250-7a3b9d1db383,794f5fb5-3b8f-4f45-9250-7a3b9d1db383,1,0,f7a89bfc-e3c9-4894-a2df-6c229b4e0fd8,f7a89bfc-e3c9-4894-a2df-6c229b4e0fd8,1,0,1e8b70ce-27fc-418f-b3f3-e6efbce9f7a2,1e8b70ce-27fc-418f-b3f3-e6efbce9f7a2,1,0,d915d338-3e4c-45c3-aef5-a07cf41b05f6,d915d338-3e4c-45c3-aef5-a07cf41b05f6,1,0,28080e64-cd09-410d-9e3e-3ffdb43d3ace,28080e64-cd09-410d-9e3e-3ffdb43d3ace,1,0,9cfd3d38-4e0e-40f4-ae77-7a997646e4b2,9cfd3d38-4e0e-40f4-ae77-7a997646e4b2,1,0,fb7011ca-4e05-45d8-9698-09406a4c033f,fb7011ca-4e05-45d8-9698-09406a4c033f,1,0,8b20dcaa-5ec3-4ce7-ac37-3ea6f2a2bfe9,8b20dcaa-5ec3-4ce7-ac37-3ea6f2a2bfe9,1,0,5b4ba51e-7757-4a01-aecd-a2c326dcfffe,5b4ba51e-7757-4a01-aecd-a2c326dcfffe,1,0,85565415-40b8-47e9-9c5d-3bb72824fdd3,85565415-40b8-47e9-9c5d-3bb72824fdd3,1,0,978640a2-5c4b-4e21-857e-34f00840fba8,978640a2-5c4b-4e21-857e-34f00840fba8,1,0,da2913e3-a29b-423f-9aae-08fed56a7d90,da2913e3-a29b-423f-9aae-08fed56a7d90,1,0,149e72b8-cc03-4b4f-8ca4-07987600c34d,149e72b8-cc03-4b4f-8ca4-07987600c34d,1,0,7649bd7b-fe8c-4338-80fc-153160a5e538,7649bd7b-fe8c-4338-80fc-153160a5e538,1,0,7779cd6d-8fa1-49cb-9bbc-9dfd0979f3f4,7779cd6d-8fa1-49cb-9bbc-9dfd0979f3f4,1,0,3dec1ae7-90bb-45ab-aa04-48cfbc14742e,3dec1ae7-90bb-45ab-aa04-48cfbc14742e,1,0,6137605e-4850-44ec-b4ee-048bd8e0ec3a,6137605e-4850-44ec-b4ee-048bd8e0ec3a,1,0,ee28aa9b-0f31-4d8b-8444-43b8bc88bd23,ee28aa9b-0f31-4d8b-8444-43b8bc88bd23,1,0,0e6e9372-beb4-478e-9428-71b19a60739b,0e6e9372-beb4-478e-9428-71b19a60739b,1,0,a805d33c-2cb0-4862-943f-06ded997b940,a805d33c-2cb0-4862-943f-06ded997b940,1,0,32b11498-542f-46b2-829f-1525936ab7fa,32b11498-542f-46b2-829f-1525936ab7fa,1,0,64afa916-4750-4008-8c6c-2a470fb11283,64afa916-4750-4008-8c6c-2a470fb11283,1,0,f4a85bfb-40c7-4f81-af32-d07b96c53ad0,f4a85bfb-40c7-4f81-af32-d07b96c53ad0,1,0,35354abc-9a76-4ee8-8796-c24b37365ea0,35354abc-9a76-4ee8-8796-c24b37365ea0,1,0,eabb04a7-2ae0-44ad-bd3a-9118b0c3886c,eabb04a7-2ae0-44ad-bd3a-9118b0c3886c,1,0,7078977f-31bf-427e-ac37-e309d81fe999,7078977f-31bf-427e-ac37-e309d81fe999,1,0,bb39ae51-be82-4bb5-a30e-2bf2b53be59e,bb39ae51-be82-4bb5-a30e-2bf2b53be59e,1,0,d8854555-9e15-4d82-a1fd-656a848a8e8a,d8854555-9e15-4d82-a1fd-656a848a8e8a,1,0,87ed7963-c2e4-4515-b768-47cf72442fd0,87ed7963-c2e4-4515-b768-47cf72442fd0,1,0,53191842-ea05-4491-84d7-071cd201992d,53191842-ea05-4491-84d7-071cd201992d,1,0,86c70449-4cf7-4baf-9742-b82b134ed929,86c70449-4cf7-4baf-9742-b82b134ed929,1,0,af3b1881-163a-4c07-a1d9-77ceadf59c77,af3b1881-163a-4c07-a1d9-77ceadf59c77,1,0,d3443b92-32f5-4ac0-8356-062647efe3d8,d3443b92-32f5-4ac0-8356-062647efe3d8,1,0,b78be6fb-7db8-48c8-ba7b-aab1fea34890,b78be6fb-7db8-48c8-ba7b-aab1fea34890,1,0,bd27276a-e80c-4135-b341-f99a816ffe86,bd27276a-e80c-4135-b341-f99a816ffe86,1,0,35306678-147c-4ad1-a3c6-c80a11afa22f,35306678-147c-4ad1-a3c6-c80a11afa22f,1,0,0da75726-ae71-4d83-a696-a774c787a8a2,0da75726-ae71-4d83-a696-a774c787a8a2,1,0,5b30b0e9-f986-49b8-8668-5bb0e09f0cfe,5b30b0e9-f986-49b8-8668-5bb0e09f0cfe,1,0,896a7267-0198-4cbb-b6e6-7aa157c0cc61,896a7267-0198-4cbb-b6e6-7aa157c0cc61,1,0,2005bf54-219b-4111-bff1-e12e2c6dca3e,2005bf54-219b-4111-bff1-e12e2c6dca3e,1,0,abab8f73-d705-4350-b44d-f912649a2190,abab8f73-d705-4350-b44d-f912649a2190,1,0,20c9c25c-f8c9-429f-84bd-543cb809abef,20c9c25c-f8c9-429f-84bd-543cb809abef,1,0,dc5f451e-3275-43a8-9f48-45b83220d461,dc5f451e-3275-43a8-9f48-45b83220d461,1,0,028f5e81-61df-4d13-876d-781c5fd18ee6,028f5e81-61df-4d13-876d-781c5fd18ee6,1,0,3cbb59ef-7f64-4590-8a54-ba01e78283c3,3cbb59ef-7f64-4590-8a54-ba01e78283c3,1,0,a5b83672-2ead-4d0a-a4e5-ddd991f1addc,a5b83672-2ead-4d0a-a4e5-ddd991f1addc,1,0,388eb513-fadb-40cd-8a7b-33b904dd758e,388eb513-fadb-40cd-8a7b-33b904dd758e,1,0,0613c6aa-e1fe-4632-a396-a17ec773158f,0613c6aa-e1fe-4632-a396-a17ec773158f,1,0,1a330987-4c79-4ab7-b250-db8d32c78751,1a330987-4c79-4ab7-b250-db8d32c78751,1,0,b7295e8e-0aa4-4a49-81ea-0594a358e9ca,b7295e8e-0aa4-4a49-81ea-0594a358e9ca,1,0,555062ed-9a04-41d8-877f-0a667e9a08cd,555062ed-9a04-41d8-877f-0a667e9a08cd,1,0,5b1db523-b5cb-4ff8-8662-5feeb4282b4a,5b1db523-b5cb-4ff8-8662-5feeb4282b4a,1,0,ac160e1c-fef7-4625-84e0-964b397f6bdb,ac160e1c-fef7-4625-84e0-964b397f6bdb,1,0,b8946d9c-dda8-4b94-8cbf-db62b647c53e,b8946d9c-dda8-4b94-8cbf-db62b647c53e,1,0,24215916-7732-4030-9f88-163f644e94f7,24215916-7732-4030-9f88-163f644e94f7,1,0,69697945-9748-4cea-a20f-e244b46de2e8,69697945-9748-4cea-a20f-e244b46de2e8,1,0,68538fd1-262c-43ea-b09f-8a66643a0062,68538fd1-262c-43ea-b09f-8a66643a0062,1,0,d042a8e1-a7b9-4f26-abc4-d618bc73e9f5,d042a8e1-a7b9-4f26-abc4-d618bc73e9f5,1,0,82ad24cc-d9f8-440b-a720-e204101d85da,82ad24cc-d9f8-440b-a720-e204101d85da,1,0,aa63c001-c3da-4179-8fd8-fe2ff510511e,aa63c001-c3da-4179-8fd8-fe2ff510511e,1,0,b2e894b0-6443-4a52-95b6-6b564f809680,b2e894b0-6443-4a52-95b6-6b564f809680,1,0,8010065f-aec8-4768-85ec-9eb7b2b01e7e,8010065f-aec8-4768-85ec-9eb7b2b01e7e,1,0,a44348cb-e20c-4afd-8483-3b9c735b352c,a44348cb-e20c-4afd-8483-3b9c735b352c,1,0,ebfe4c74-6e16-4b64-8a52-cea95c446903,ebfe4c74-6e16-4b64-8a52-cea95c446903,1,0,ea9ed37c-7f58-43a8-990c-f1feb5d2d275,ea9ed37c-7f58-43a8-990c-f1feb5d2d275,1,0,d912e472-9553-4b96-8b16-7aaff6c14239,d912e472-9553-4b96-8b16-7aaff6c14239,1,0,b04018b5-a74d-43c9-8519-6cc8aa23fe09,b04018b5-a74d-43c9-8519-6cc8aa23fe09,1,0,8f5af22e-3e73-4a4f-b91e-eccd0f5084fd,8f5af22e-3e73-4a4f-b91e-eccd0f5084fd,1,0,9283277f-2b75-4c3a-810a-8d4071b3afcc,9283277f-2b75-4c3a-810a-8d4071b3afcc,1,0,d03d5b18-57a2-43c0-99ea-8ad9d5788179,d03d5b18-57a2-43c0-99ea-8ad9d5788179,1,0,c491a7fc-14f9-498a-b7dd-575dfc66878e,c491a7fc-14f9-498a-b7dd-575dfc66878e,1,0,ec966ef2-b291-4937-a164-5c2b461871f8,ec966ef2-b291-4937-a164-5c2b461871f8,1,0,7104fb23-acc0-40d1-8d09-a34d6ddc2956,7104fb23-acc0-40d1-8d09-a34d6ddc2956,1,0,4d79a071-a752-4af1-8733-cb07f3bf4a0a,4d79a071-a752-4af1-8733-cb07f3bf4a0a,1,0,3a7392ab-48e3-475b-9857-d1f59c8c1990,3a7392ab-48e3-475b-9857-d1f59c8c1990,1,0,db15f8eb-4736-4b47-9cee-3e6883f0888c,db15f8eb-4736-4b47-9cee-3e6883f0888c,1,0,59064eb2-2770-4f1c-96bd-801926fe68ef,59064eb2-2770-4f1c-96bd-801926fe68ef,1,0,df81cc63-26f2-4e66-bf0b-fd083a6a7d7b,df81cc63-26f2-4e66-bf0b-fd083a6a7d7b,1,0,8a8848b8-345a-452d-bf95-28f9c91c7e95,8a8848b8-345a-452d-bf95-28f9c91c7e95,1,0,a873e79e-78ca-4893-9267-8cb8bc2c8312,a873e79e-78ca-4893-9267-8cb8bc2c8312,1,0,440ecfe8-72fd-447b-8680-c4a8c43f2c72,440ecfe8-72fd-447b-8680-c4a8c43f2c72,1,0,5afe3a0f-1bbc-4f04-87b3-f98d54b65a42,5afe3a0f-1bbc-4f04-87b3-f98d54b65a42,1,0,ee9e8f50-4d4f-43aa-99eb-cda2308c903e,ee9e8f50-4d4f-43aa-99eb-cda2308c903e,1,0,4ff043c1-6c0b-4889-a684-23da5a35b9c2,4ff043c1-6c0b-4889-a684-23da5a35b9c2,1,0,6fe56ecb-c969-4c03-8e6b-65395c29e817,6fe56ecb-c969-4c03-8e6b-65395c29e817,1,0,48627a8d-b108-43b8-a58e-fd98e4220639,48627a8d-b108-43b8-a58e-fd98e4220639,1,0,2a8eb62d-2795-48ab-ae02-68527996f411,2a8eb62d-2795-48ab-ae02-68527996f411,1,0,d3bf09be-0f21-4dc3-a525-1c4dc75928ea,d3bf09be-0f21-4dc3-a525-1c4dc75928ea,1,0,5ca880c5-7c34-4c31-a2b8-46265ddea7d4,5ca880c5-7c34-4c31-a2b8-46265ddea7d4,1,0,a9441693-87ca-4157-98e1-63375852755c,a9441693-87ca-4157-98e1-63375852755c,1,0,6303ea55-e8ed-4acc-9717-941eefafc2a9,6303ea55-e8ed-4acc-9717-941eefafc2a9,1,0,5b4e1b83-fc10-4acc-bef7-81c73dbbc453,5b4e1b83-fc10-4acc-bef7-81c73dbbc453,1,0,d0b17206-3949-4513-a47f-02e1a8ba369a,d0b17206-3949-4513-a47f-02e1a8ba369a,1,0,cb4f20d4-13e6-4c27-b491-da7931f4bf05,cb4f20d4-13e6-4c27-b491-da7931f4bf05,1,0,6b2340d7-687f-43a3-8eb8-8ddb86712466,6b2340d7-687f-43a3-8eb8-8ddb86712466,1,0,9846e2f6-d82a-42a6-bf50-2a9cdf750a8f,9846e2f6-d82a-42a6-bf50-2a9cdf750a8f,1,0,9328da5c-4689-4a60-8136-ae9eac46ab38,9328da5c-4689-4a60-8136-ae9eac46ab38,1,0,ca5d586f-81bb-40ee-b3bd-de854857c984,ca5d586f-81bb-40ee-b3bd-de854857c984,1,0,32c10512-7bb8-423b-9503-ab2fa41386a4,32c10512-7bb8-423b-9503-ab2fa41386a4,1,0,888edfc4-8140-4675-b267-c32bf1d8d29d,888edfc4-8140-4675-b267-c32bf1d8d29d,1,0,2abbd53a-0ead-42af-8df6-fde663aea300,2abbd53a-0ead-42af-8df6-fde663aea300,1,0,24611bf9-5492-443a-935c-a0058e86493f,24611bf9-5492-443a-935c-a0058e86493f,1,0,42641296-64da-46e0-a407-de2d492f9c90,42641296-64da-46e0-a407-de2d492f9c90,1,0,b834af0b-086c-445d-a271-7e178c324551,b834af0b-086c-445d-a271-7e178c324551,1,0,ec34befe-3c0b-4a75-b943-840c52e7dda5,ec34befe-3c0b-4a75-b943-840c52e7dda5,1,0,7f18eb86-e9ac-4cb8-a9aa-389f61dff582,7f18eb86-e9ac-4cb8-a9aa-389f61dff582,1,0,b5e81952-e469-4f26-b8d2-90e7d9e7bc1d,b5e81952-e469-4f26-b8d2-90e7d9e7bc1d,1,0,6733f1bd-7878-4a33-8995-c07526e87c1a,6733f1bd-7878-4a33-8995-c07526e87c1a,1,0,f7e73257-fae1-465a-ae74-faaa0273a416,f7e73257-fae1-465a-ae74-faaa0273a416,1,0,73f89524-dbe8-426f-8ee6-1277eb1967cc,73f89524-dbe8-426f-8ee6-1277eb1967cc,1,0,ee7d970c-cef7-4740-a357-1fe78f88a6e6,ee7d970c-cef7-4740-a357-1fe78f88a6e6,1,0,13beb01d-dd08-4a6d-863b-651e70bbf51f,13beb01d-dd08-4a6d-863b-651e70bbf51f,1,0,94bc76ae-72a0-418f-98c4-ae0a0326a2da,94bc76ae-72a0-418f-98c4-ae0a0326a2da,1,0,784475ff-eec5-462a-a511-ba31f8374c2e,784475ff-eec5-462a-a511-ba31f8374c2e,1,0,b5b56a64-5550-4da9-8872-d42ab871d21c,b5b56a64-5550-4da9-8872-d42ab871d21c,1,0,e9939b36-bceb-40e2-a182-1d5cc248f353,e9939b36-bceb-40e2-a182-1d5cc248f353,1,0,619d3ac6-40fe-485d-a407-fe065f16b186,619d3ac6-40fe-485d-a407-fe065f16b186,1,0,ecaa0af8-549c-4c07-82ff-1c4e02ff15b8,ecaa0af8-549c-4c07-82ff-1c4e02ff15b8,1,0,45a8c780-c067-40d7-bbe9-81f854aacf7a,45a8c780-c067-40d7-bbe9-81f854aacf7a,1,0,57885cac-059a-4a08-aa2c-43b116d2c777,57885cac-059a-4a08-aa2c-43b116d2c777,1,0,c0403df4-b1f2-4d7e-adb5-9ed881c1359b,c0403df4-b1f2-4d7e-adb5-9ed881c1359b,1,0,27e0b5d9-1a4c-45b8-8969-d1d1c39129c1,27e0b5d9-1a4c-45b8-8969-d1d1c39129c1,1,0,626cbb27-6af2-4a9a-959e-15af4417e489,626cbb27-6af2-4a9a-959e-15af4417e489,1,0,e7b0ae70-0192-456c-9dc5-e66049fa9df2,e7b0ae70-0192-456c-9dc5-e66049fa9df2,1,0,68944d09-618e-4fa3-a7af-8c84218e0ac7,68944d09-618e-4fa3-a7af-8c84218e0ac7,1,0,91b12ce3-e8ba-4c9d-9daa-1d5532500314,91b12ce3-e8ba-4c9d-9daa-1d5532500314,1,0,733dc291-0bef-4fe8-ac9f-63440f0c2ad0,733dc291-0bef-4fe8-ac9f-63440f0c2ad0,1,0,356a8091-4c0b-41d0-b8d2-963b3a807469,356a8091-4c0b-41d0-b8d2-963b3a807469,1,0,5b7b7dc3-dbef-4854-9395-30a3ae4d751c,5b7b7dc3-dbef-4854-9395-30a3ae4d751c,1,0,cb57aabc-eeef-42b4-9bc2-873cebd9618c,cb57aabc-eeef-42b4-9bc2-873cebd9618c,1,0,2fcd2c85-6778-42fa-9bdd-a6ba47497ec0,2fcd2c85-6778-42fa-9bdd-a6ba47497ec0,1,0,52f30ed7-aa16-4ce2-9684-e50229ab0015,52f30ed7-aa16-4ce2-9684-e50229ab0015,1,0,79c2e2bd-f923-42ec-8bdc-3e517e08ee7c,79c2e2bd-f923-42ec-8bdc-3e517e08ee7c,1,0,54ecaf7b-9bc5-483c-96e1-270bcd323590,54ecaf7b-9bc5-483c-96e1-270bcd323590,1,0,f00e93bf-6e3b-4819-a4e1-33471a6d0fff,f00e93bf-6e3b-4819-a4e1-33471a6d0fff,1,0,2a1f77ba-fa2e-4281-8e68-7ec4ca0261b7,2a1f77ba-fa2e-4281-8e68-7ec4ca0261b7,1,0,58f6f8fa-7473-40f5-973a-6279335d8f33,58f6f8fa-7473-40f5-973a-6279335d8f33,1,0,ec0c3187-de61-4bc8-a52a-7617f47ffb6d,ec0c3187-de61-4bc8-a52a-7617f47ffb6d,1,0,1e71ec59-55a4-45e8-a8c9-f70c2cb56589,1e71ec59-55a4-45e8-a8c9-f70c2cb56589,1,0,fa3632fe-185b-49aa-85ae-dfb721835d40,fa3632fe-185b-49aa-85ae-dfb721835d40,1,0,a4f15108-477c-465e-aaea-cb495ef52cf5,a4f15108-477c-465e-aaea-cb495ef52cf5,1,0,9cda5c2c-f401-4f63-b445-cef160296e48,9cda5c2c-f401-4f63-b445-cef160296e48,1,0,e8ae4a26-3127-43ae-af7a-c2e278d2611d,e8ae4a26-3127-43ae-af7a-c2e278d2611d,1,0,b923c78f-d074-41b4-b832-086686258f19,b923c78f-d074-41b4-b832-086686258f19,1,0,8ff96413-6fdd-4b8d-a181-ea0d8633defc,8ff96413-6fdd-4b8d-a181-ea0d8633defc,1,0,54604ed2-766b-4308-b99e-447817d82799,54604ed2-766b-4308-b99e-447817d82799,1,0,7abdb07b-edbc-4c3b-aa53-afaa92dc9071,7abdb07b-edbc-4c3b-aa53-afaa92dc9071,1,0,ee008096-1ae8-4a64-9d3d-14cb15c8be70,ee008096-1ae8-4a64-9d3d-14cb15c8be70,1,0,a0a85b22-63ee-4a05-8b0d-1feb9ee07b0a,a0a85b22-63ee-4a05-8b0d-1feb9ee07b0a,1,0,a4754a7b-971f-4517-963e-b7cb9d57f86d,a4754a7b-971f-4517-963e-b7cb9d57f86d,1,0,f48b4475-2cd9-41df-962a-6529f84985ca,f48b4475-2cd9-41df-962a-6529f84985ca,1,0,2fbfe405-48e6-4abf-99c2-7f1f66a62b48,2fbfe405-48e6-4abf-99c2-7f1f66a62b48,1,0,5e6637c7-19b5-4ac2-a8e9-d119e49f444e,5e6637c7-19b5-4ac2-a8e9-d119e49f444e,1,0,bf94feb9-edf7-4df8-b5f5-805613663a0a,bf94feb9-edf7-4df8-b5f5-805613663a0a,1,0,6d852a13-c85e-4e84-8396-f91c1ed0596e,6d852a13-c85e-4e84-8396-f91c1ed0596e,1,0,9c2d5313-a4fd-417e-a340-ad4980d0028b,9c2d5313-a4fd-417e-a340-ad4980d0028b,1,0,4fb4a280-9426-4c41-a9ba-11f9d01a0740,4fb4a280-9426-4c41-a9ba-11f9d01a0740,1,0,1591ee7e-870c-4bf7-9450-be84f1b2506f,1591ee7e-870c-4bf7-9450-be84f1b2506f,1,0,526c688e-a4d4-45f7-8bba-b8ceff38fe27,526c688e-a4d4-45f7-8bba-b8ceff38fe27,1,0,7e32c295-a769-4cff-a3eb-992f7031475f,7e32c295-a769-4cff-a3eb-992f7031475f,1,0,5a398637-a06c-4442-9093-a864fa7f049f,5a398637-a06c-4442-9093-a864fa7f049f,1,0,fe4aa694-76c4-49c9-96ce-a2476f4ff58b,fe4aa694-76c4-49c9-96ce-a2476f4ff58b,1,0,115a6019-ef87-4126-8ebf-070c1e882940,115a6019-ef87-4126-8ebf-070c1e882940,1,0,162ce023-b2e1-41dc-bcaf-b8e30caccce0,162ce023-b2e1-41dc-bcaf-b8e30caccce0,1,0,67efa786-312f-4c9c-b970-0320e92069af,67efa786-312f-4c9c-b970-0320e92069af,1,0,5b952e35-1037-4447-8293-6d8889692c8b,5b952e35-1037-4447-8293-6d8889692c8b,1,0,2bc2ca58-6cc0-4d4b-8672-f9328c86c2c1,2bc2ca58-6cc0-4d4b-8672-f9328c86c2c1,1,0,bf1ab189-634d-4b31-82e3-35fb15305da9,bf1ab189-634d-4b31-82e3-35fb15305da9,1,0,046d2201-5fe3-4451-9db0-6f784efadaf8,046d2201-5fe3-4451-9db0-6f784efadaf8,1,0,bb532d83-69d8-4733-9d18-21d34ee0330a,bb532d83-69d8-4733-9d18-21d34ee0330a,1,0,c2a8f4a7-882a-4262-ad9d-0f8ad9821488,c2a8f4a7-882a-4262-ad9d-0f8ad9821488,1,0,05bc8b4e-8c90-4502-8b16-7b1e7625d569,05bc8b4e-8c90-4502-8b16-7b1e7625d569,1,0,ce34d88d-3017-4197-a962-ea23a6a96d32,ce34d88d-3017-4197-a962-ea23a6a96d32,1,0,2cbc16da-aa67-4ad6-82f8-fa6922447be6,2cbc16da-aa67-4ad6-82f8-fa6922447be6,1,0,19d7a1ba-c343-4575-95da-53dac6d4b2cb,19d7a1ba-c343-4575-95da-53dac6d4b2cb,1,0,6cc8b3a0-3377-4b39-b6b0-69c862a15465,6cc8b3a0-3377-4b39-b6b0-69c862a15465,1,0,acb193f4-52e5-4572-a79b-b825a2f6525f,acb193f4-52e5-4572-a79b-b825a2f6525f,1,0,5d46f719-e468-48e2-b4ec-acb85c710451,5d46f719-e468-48e2-b4ec-acb85c710451,1,0,9fb13bfe-80c7-43c3-b0da-9185ab197ce2,9fb13bfe-80c7-43c3-b0da-9185ab197ce2,1,0,cd80a520-1d1c-4d80-8a4a-360ac1ca98d8,cd80a520-1d1c-4d80-8a4a-360ac1ca98d8,1,0,e9aef0c8-9dc4-4c4a-8288-8b2d9860624d,e9aef0c8-9dc4-4c4a-8288-8b2d9860624d,1,0,733d4494-01e2-46f5-a49b-f289267a90c9,733d4494-01e2-46f5-a49b-f289267a90c9,1,0,1e14d062-1d5a-4939-8ce6-4d9514990376,1e14d062-1d5a-4939-8ce6-4d9514990376,1,0,f86f24d2-9a83-47ae-9d95-b49a0a295770,f86f24d2-9a83-47ae-9d95-b49a0a295770,1,0,8368e1fa-da0c-4a9b-9d50-a122933c7899,8368e1fa-da0c-4a9b-9d50-a122933c7899,1,0,37986729-a275-4e86-8613-faee9a4f2525,37986729-a275-4e86-8613-faee9a4f2525,1,0,0f0ac56d-b068-46f2-8440-731683c2b42a,0f0ac56d-b068-46f2-8440-731683c2b42a,1,0,5814cb3a-8f7c-45b4-a590-b69d4912120f,5814cb3a-8f7c-45b4-a590-b69d4912120f,1,0,f06c8396-65ec-4ece-aed0-d45b2d8969b5,f06c8396-65ec-4ece-aed0-d45b2d8969b5,1,0,1faeab7f-7bd7-496d-8882-4aab6c425854,1faeab7f-7bd7-496d-8882-4aab6c425854,1,0,5c17a594-eb0b-4cdf-af35-0eaba968e065,5c17a594-eb0b-4cdf-af35-0eaba968e065,1,0,af922fb8-a99c-4154-89fe-d30a4d13024a,af922fb8-a99c-4154-89fe-d30a4d13024a,1,0,24c2f463-2bbb-471f-a409-507afad52caf,24c2f463-2bbb-471f-a409-507afad52caf,1,0,cbb07013-9ae1-43ec-8142-a724d788cb67,cbb07013-9ae1-43ec-8142-a724d788cb67,1,0,2403ac84-b513-4aa0-9a68-8d1ad705ce24,2403ac84-b513-4aa0-9a68-8d1ad705ce24,1,0,c1bcfc01-529c-4774-a79b-052eee157f2d,c1bcfc01-529c-4774-a79b-052eee157f2d,1,0,952b49e0-e1a1-4130-8fb2-083e3988255c,952b49e0-e1a1-4130-8fb2-083e3988255c,1,0,367b227f-f66e-4cec-9fc3-850bca8bc6c8,367b227f-f66e-4cec-9fc3-850bca8bc6c8,1,0,1a3a8a3a-dc34-4491-883d-57c3fb69840a,1a3a8a3a-dc34-4491-883d-57c3fb69840a,1,0,7fcb9d79-1144-4099-8d7f-309d3bf045a5,7fcb9d79-1144-4099-8d7f-309d3bf045a5,1,0,db418313-8583-48a9-9fec-e2c5de4fdf76,db418313-8583-48a9-9fec-e2c5de4fdf76,1,0,6277a3b5-b158-4b58-a92b-5efdf2dabac0,6277a3b5-b158-4b58-a92b-5efdf2dabac0,1,0,2f26970e-b964-43e2-8d6d-999bbc577689,2f26970e-b964-43e2-8d6d-999bbc577689,1,0,65a50026-88e7-45dd-bb0c-f212218ca093,65a50026-88e7-45dd-bb0c-f212218ca093,1,0,ed9e5fbe-1db8-4fb9-a9fa-bb1927cae196,ed9e5fbe-1db8-4fb9-a9fa-bb1927cae196,1,0,1dd2b2c4-00aa-4029-ba32-fe82aa5c6cbe,1dd2b2c4-00aa-4029-ba32-fe82aa5c6cbe,1,0,2f4ea53a-c84d-4d5f-ae7a-817a20ccd96a,2f4ea53a-c84d-4d5f-ae7a-817a20ccd96a,1,0,b2a39c8a-d884-4dfe-a593-e6788dabbd6b,b2a39c8a-d884-4dfe-a593-e6788dabbd6b,1,0,3d0afdb2-ab8f-43c0-920a-88ed85545b2f,3d0afdb2-ab8f-43c0-920a-88ed85545b2f,1,0,17477f72-0622-445c-9cb7-2c5a5a65bbe0,17477f72-0622-445c-9cb7-2c5a5a65bbe0,1,0,01a1fd57-6c09-4a5b-9f75-da4366159423,01a1fd57-6c09-4a5b-9f75-da4366159423,1,0,71d79b25-3682-4f2c-b6b2-a307e3e72844,71d79b25-3682-4f2c-b6b2-a307e3e72844,1,0,45c1ed0d-202e-4289-820f-e1de0f544386,45c1ed0d-202e-4289-820f-e1de0f544386,1,0,e889e80f-97c9-43c6-8268-d652764fcafb,e889e80f-97c9-43c6-8268-d652764fcafb,1,0,4eb48d3a-e2d5-4db5-b08b-4b6ccc701f77,4eb48d3a-e2d5-4db5-b08b-4b6ccc701f77,1,0,95ccaaf2-f6ca-4540-8a39-3c90121c4236,95ccaaf2-f6ca-4540-8a39-3c90121c4236,1,0,7c920b8b-1dbf-4f7e-99af-1ca784a59a64,7c920b8b-1dbf-4f7e-99af-1ca784a59a64,1,0,f47a9bec-2a9f-4955-a432-acb63a5b0e46,f47a9bec-2a9f-4955-a432-acb63a5b0e46,1,0,1ba73b6b-cb72-4370-a268-279dcd7a54b9,1ba73b6b-cb72-4370-a268-279dcd7a54b9,1,0,49de6b63-a845-4b5a-9818-18a3e0bb6fe8,49de6b63-a845-4b5a-9818-18a3e0bb6fe8,1,0,b787818e-5572-4ef2-ba54-1e9b69569824,b787818e-5572-4ef2-ba54-1e9b69569824,1,0,1e13bd37-61b5-4901-a607-e00e5d1900a8,1e13bd37-61b5-4901-a607-e00e5d1900a8,1,0,395b43e4-c18b-4f68-b99c-aed8d4b8cac9,395b43e4-c18b-4f68-b99c-aed8d4b8cac9,1,0,231d7b21-c00c-4782-b610-d56593be436f,231d7b21-c00c-4782-b610-d56593be436f,1,0,79250d1a-77ff-4015-a5b5-83460b1611e2,79250d1a-77ff-4015-a5b5-83460b1611e2,1,0,60018ee0-71ec-4975-a95d-f6f188748ff2,60018ee0-71ec-4975-a95d-f6f188748ff2,1,0,68d35468-279a-43ef-9d71-fed44a792177,68d35468-279a-43ef-9d71-fed44a792177,1,0,77bec3d8-582a-4156-861b-4902008f014c,77bec3d8-582a-4156-861b-4902008f014c,1,0,2ad1caba-7a89-4389-934f-419970260961,2ad1caba-7a89-4389-934f-419970260961,1,0,bfc1a708-662d-4dc1-82b4-7b09bb1b0751,bfc1a708-662d-4dc1-82b4-7b09bb1b0751,1,0,f88c4a72-368c-4f45-bb2c-d18f214a5079,f88c4a72-368c-4f45-bb2c-d18f214a5079,1,0,611876ba-7e6e-40c3-89a9-bb9b19cd1bfb,611876ba-7e6e-40c3-89a9-bb9b19cd1bfb,1,0,9dc2e313-c086-4fd9-83e8-911859ef480d,9dc2e313-c086-4fd9-83e8-911859ef480d,1,0,8a14ced0-9e45-4b3a-a135-11413c3a33c2,8a14ced0-9e45-4b3a-a135-11413c3a33c2,1,0,af7377db-0b27-42f7-a639-e2feb4015412,af7377db-0b27-42f7-a639-e2feb4015412,1,0,e1a200e2-64f3-434c-ae0d-5f24b9d65c9b,e1a200e2-64f3-434c-ae0d-5f24b9d65c9b,1,0,ab7db146-f26a-418a-8c45-e2513bf84e08,ab7db146-f26a-418a-8c45-e2513bf84e08,1,0,ece3bd8d-6616-44d5-9c14-6b3557738872,ece3bd8d-6616-44d5-9c14-6b3557738872,1,0,663a80ba-b97e-4265-a627-4a7d273f9472,663a80ba-b97e-4265-a627-4a7d273f9472,1,0,bf3304c0-5078-478f-bbf8-6178264c5f26,bf3304c0-5078-478f-bbf8-6178264c5f26,1,0,fbf754c3-ab89-4704-b01a-67f8bcea0c7c,fbf754c3-ab89-4704-b01a-67f8bcea0c7c,1,0,3b0afd55-f08d-4d59-b6df-d7c4d1c52446,3b0afd55-f08d-4d59-b6df-d7c4d1c52446,1,0,4893ad50-df19-4d86-9469-40491ba733c9,4893ad50-df19-4d86-9469-40491ba733c9,1,0,25a65c1e-8e67-4135-843d-1e0da72dfd64,25a65c1e-8e67-4135-843d-1e0da72dfd64,1,0,5724fbd5-4d91-4e6d-ae24-8925a4d83c83,5724fbd5-4d91-4e6d-ae24-8925a4d83c83,1,0,29a6416e-b0f5-4111-8f86-1ba80244e73a,29a6416e-b0f5-4111-8f86-1ba80244e73a,1,0,0f49085a-9b83-4256-be60-f341b2ef132e,0f49085a-9b83-4256-be60-f341b2ef132e,1,0,f44c66d6-cfe2-482f-a921-de3db3cd09ea,f44c66d6-cfe2-482f-a921-de3db3cd09ea,1,0,5ec1b7af-f4bc-4ec1-8f43-85c4f9d146a0,5ec1b7af-f4bc-4ec1-8f43-85c4f9d146a0,1,0,c521bd61-386e-41c8-bcc3-29d54b63cc32,c521bd61-386e-41c8-bcc3-29d54b63cc32,1,0,d46e3424-6d30-4229-9a56-ab256517534a,d46e3424-6d30-4229-9a56-ab256517534a,1,0,09d3633d-8e8c-47f3-8f34-d70eb94577e1,09d3633d-8e8c-47f3-8f34-d70eb94577e1,1,0,fe868143-363b-4da1-889b-98d4dd10a1fd,fe868143-363b-4da1-889b-98d4dd10a1fd,1,0,b791a549-ae94-46f2-8f04-771fdeb4cc54,b791a549-ae94-46f2-8f04-771fdeb4cc54,1,0,4681cb63-c581-4c08-b18c-016d9b478ef2,4681cb63-c581-4c08-b18c-016d9b478ef2,1,0,041c364f-0498-494f-9e41-82cb416c0862,041c364f-0498-494f-9e41-82cb416c0862,1,0,ec37d236-db36-44ef-afc2-267af1f40c1f,ec37d236-db36-44ef-afc2-267af1f40c1f,1,0,913830c8-da01-4b7e-9d83-d406c2fefd49,913830c8-da01-4b7e-9d83-d406c2fefd49,1,0,293cda8c-1cc8-42c0-a68f-d22163aed4f1,293cda8c-1cc8-42c0-a68f-d22163aed4f1,1,0,d835f08d-79c6-4e79-a7c1-f00dc05778b9,d835f08d-79c6-4e79-a7c1-f00dc05778b9,1,0,653dbf7d-a213-42c7-98da-9e639f41bb02,653dbf7d-a213-42c7-98da-9e639f41bb02,1,0,8a0f16a1-63c4-4ea4-a2f1-7b08e75efbd5,8a0f16a1-63c4-4ea4-a2f1-7b08e75efbd5,1,0,5adaafcf-3d67-418d-b47d-d0d8c65f1f46,5adaafcf-3d67-418d-b47d-d0d8c65f1f46,1,0,ee0275e4-a497-4623-9d2f-6308ea2e70ca,ee0275e4-a497-4623-9d2f-6308ea2e70ca,1,0,5e48841c-0a65-457f-8952-fa97aae3207d,5e48841c-0a65-457f-8952-fa97aae3207d,1,0,f68ec923-89c8-4c83-80a2-2d5e096dbbd8,f68ec923-89c8-4c83-80a2-2d5e096dbbd8,1,0,f278bdf8-543a-4427-b2f1-3670c61502ae,f278bdf8-543a-4427-b2f1-3670c61502ae,1,0,f0cebe1f-8b1a-482c-9224-63df4fd36524,f0cebe1f-8b1a-482c-9224-63df4fd36524,1,0,00ce0cd2-9840-49a0-b9df-dc64becd3e65,00ce0cd2-9840-49a0-b9df-dc64becd3e65,1,0,db6f11c0-8530-43c1-811a-48797be89ec1,db6f11c0-8530-43c1-811a-48797be89ec1,1,0,c2782a2b-f910-4d4d-ba1b-49ef7854bae0,c2782a2b-f910-4d4d-ba1b-49ef7854bae0,1,0,ca8c4c19-9f92-45a7-b5bd-1ae06e3c9171,ca8c4c19-9f92-45a7-b5bd-1ae06e3c9171,1,0,9f1c8979-2b3d-4a96-af6c-4577541696a3,9f1c8979-2b3d-4a96-af6c-4577541696a3,1,0,32371dfd-c890-4bed-bd68-45db299c9caf,32371dfd-c890-4bed-bd68-45db299c9caf,1,0,eeb298cf-8df3-41fe-bb48-9c83a24a8206,eeb298cf-8df3-41fe-bb48-9c83a24a8206,1,0,04055821-03ce-4049-af2c-8670c80517f6,04055821-03ce-4049-af2c-8670c80517f6,1,0,0101305d-62eb-4802-9cd4-d615a518d842,0101305d-62eb-4802-9cd4-d615a518d842,1,0,898d2ba7-631a-4e7a-9bdf-cd2ef411e57a,898d2ba7-631a-4e7a-9bdf-cd2ef411e57a,1,0,1d429511-9446-4102-95f4-df676125e14c,1d429511-9446-4102-95f4-df676125e14c,1,0,bf1fc624-60d7-4a04-bb3a-b6e2882bebfe,bf1fc624-60d7-4a04-bb3a-b6e2882bebfe,1,0,7c424424-9660-462d-9cf2-4c1e6bd284fa,7c424424-9660-462d-9cf2-4c1e6bd284fa,1,0,e118f957-ab2c-473b-ab64-37032f727416,e118f957-ab2c-473b-ab64-37032f727416,1,0,e770e26e-a3a4-487d-b3bb-aeb63d8b7323,e770e26e-a3a4-487d-b3bb-aeb63d8b7323,1,0,21f64e5f-dc94-4ce9-b836-e75646ae3325,21f64e5f-dc94-4ce9-b836-e75646ae3325,1,0,82e8a180-f2e1-406c-9609-89d33504aff2,82e8a180-f2e1-406c-9609-89d33504aff2,1,0,e7437c81-3d5b-466e-880c-8febe4a68e88,e7437c81-3d5b-466e-880c-8febe4a68e88,1,0,99bc26f9-ba56-4c63-9fd1-c2f3d630b93c,99bc26f9-ba56-4c63-9fd1-c2f3d630b93c,1,0,307771e6-bcf7-4016-b369-e1655bbe9e94,307771e6-bcf7-4016-b369-e1655bbe9e94,1,0,bf8c60f7-7dea-4a2c-8ce2-7001a6a37bfa,bf8c60f7-7dea-4a2c-8ce2-7001a6a37bfa,1,0,38fc6a54-846c-40b0-9254-3261f540bf18,38fc6a54-846c-40b0-9254-3261f540bf18,1,0,d9134d0c-56cd-4b8f-ab11-ae37fc306801,d9134d0c-56cd-4b8f-ab11-ae37fc306801,1,0,9408d0ee-bd61-4b95-ac7c-98de139b5f9e,9408d0ee-bd61-4b95-ac7c-98de139b5f9e,1,0,8f2af24b-f5fa-4f6d-831e-28453bdedefc,8f2af24b-f5fa-4f6d-831e-28453bdedefc,1,0,d119e21d-0087-4f22-b3bd-b14707b65330,d119e21d-0087-4f22-b3bd-b14707b65330,1,0,dc9b4072-11de-40fe-bf2a-f7b15af0a250,dc9b4072-11de-40fe-bf2a-f7b15af0a250,1,0,e2cf5ca9-c2a0-4506-89e6-318cad0a48a3,e2cf5ca9-c2a0-4506-89e6-318cad0a48a3,1,0,aa0e290d-21ab-4197-b8f3-cf1f97ab1b98,aa0e290d-21ab-4197-b8f3-cf1f97ab1b98,1,0,eefa9859-4168-4a10-923f-e4a713c99a3b,eefa9859-4168-4a10-923f-e4a713c99a3b,1,0,5aecdfd1-1cd7-4523-be23-7e32fcb01a94,5aecdfd1-1cd7-4523-be23-7e32fcb01a94,1,0,932b1c1a-72eb-49cd-8218-d0ced9c454d8,932b1c1a-72eb-49cd-8218-d0ced9c454d8,1,0,96d70dc4-02bd-47ad-9465-81de6ff5bdc9,96d70dc4-02bd-47ad-9465-81de6ff5bdc9,1,0,38acaf7a-5a77-40bf-ba2a-17b31cccd37d,38acaf7a-5a77-40bf-ba2a-17b31cccd37d,1,0,cb604857-8e49-4f2f-b5c8-2a7d8a3cf8e4,cb604857-8e49-4f2f-b5c8-2a7d8a3cf8e4,1,0,f33e9c76-e523-4f4e-ab4b-3fc1b256d8dd,f33e9c76-e523-4f4e-ab4b-3fc1b256d8dd,1,0,5dd336c4-88c5-4f53-acf0-5f86a658c528,5dd336c4-88c5-4f53-acf0-5f86a658c528,1,0,c723112b-286d-46f1-989d-81252062a025,c723112b-286d-46f1-989d-81252062a025,1,0,67e8b47e-4bad-4b2f-b196-8a9708893051,67e8b47e-4bad-4b2f-b196-8a9708893051,1,0,39bddcde-697c-4e77-adfd-e4a77529ea97,39bddcde-697c-4e77-adfd-e4a77529ea97,1,0,a3b15381-bf9b-4b26-96eb-392fa2cc8223,a3b15381-bf9b-4b26-96eb-392fa2cc8223,1,0,a583e53a-3f3c-48c7-8928-37ce40b2bafe,a583e53a-3f3c-48c7-8928-37ce40b2bafe,1,0,a844dd4a-274a-4894-9446-031dbe006084,a844dd4a-274a-4894-9446-031dbe006084,1,0,9a740f81-5437-47af-8ed9-ea62edcb2ea1,9a740f81-5437-47af-8ed9-ea62edcb2ea1,1,0,cdf54c86-0a1c-4f74-93ee-6d8d8db0a778,cdf54c86-0a1c-4f74-93ee-6d8d8db0a778,1,0,77bdd30f-4933-4bda-9c7a-b0a097da0910,77bdd30f-4933-4bda-9c7a-b0a097da0910,1,0,a8d52851-4293-4fe4-b2cb-f9c8c166ed97,a8d52851-4293-4fe4-b2cb-f9c8c166ed97,1,0,d4879ecc-8f1a-4183-99a8-d6dfc1eed3f8,d4879ecc-8f1a-4183-99a8-d6dfc1eed3f8,1,0,8e9eb604-5f15-4ef5-8906-5bcd57b3d099,8e9eb604-5f15-4ef5-8906-5bcd57b3d099,1,0,a682e9e1-284f-4e32-86b2-6736f159f585,a682e9e1-284f-4e32-86b2-6736f159f585,1,0,84f0bd89-9b86-440f-b942-9b685e22233e,84f0bd89-9b86-440f-b942-9b685e22233e,1,0,f2d508b3-9425-4ce6-86d8-5893ca4a8cd6,f2d508b3-9425-4ce6-86d8-5893ca4a8cd6,1,0,ce61612f-bcbb-4a02-bca0-d88e0ee42bd7,ce61612f-bcbb-4a02-bca0-d88e0ee42bd7,1,0,c1c35035-44cc-4aa1-ae8e-db3513ddc5f3,c1c35035-44cc-4aa1-ae8e-db3513ddc5f3,1,0,ac52baa1-02cb-4ce8-8f4f-1f9441b1cda0,ac52baa1-02cb-4ce8-8f4f-1f9441b1cda0,1,0,fabf8a0b-366f-4f23-9377-315534bb854b,fabf8a0b-366f-4f23-9377-315534bb854b,1,0,7aac6439-64c9-4492-b866-bf91dda82d06,7aac6439-64c9-4492-b866-bf91dda82d06,1,0,6ffe3723-c6df-497b-a3ff-d817fbabfd8c,6ffe3723-c6df-497b-a3ff-d817fbabfd8c,1,0,528a82b7-ef06-4d90-bb32-bd6d76ed6c74,528a82b7-ef06-4d90-bb32-bd6d76ed6c74,1,0,08b86f29-64ef-467a-af1a-d27ffdf621ba,08b86f29-64ef-467a-af1a-d27ffdf621ba,1,0,6483d1ab-c53d-4985-ad7e-b799adbcd9da,6483d1ab-c53d-4985-ad7e-b799adbcd9da,1,0,82f66233-ed13-49ae-ab72-7cf91c88c760,82f66233-ed13-49ae-ab72-7cf91c88c760,1,0,75cddbcd-e960-4164-81d8-ac0a2a36e95b,75cddbcd-e960-4164-81d8-ac0a2a36e95b,1,0,e14d57f4-ae4a-4644-9ec1-a6af1b3e4c41,e14d57f4-ae4a-4644-9ec1-a6af1b3e4c41,1,0,314f8451-ba96-46cd-bf9f-3a87df7d2a5b,314f8451-ba96-46cd-bf9f-3a87df7d2a5b,1,0,d9151001-a911-45c1-a8e6-dcf0da623ed3,d9151001-a911-45c1-a8e6-dcf0da623ed3,1,0,42f4ad3c-3724-4032-82f0-10c8dbe6cc9f,42f4ad3c-3724-4032-82f0-10c8dbe6cc9f,1,0,bbd8b83d-413a-4ffc-8351-e0ec4f4ae619,bbd8b83d-413a-4ffc-8351-e0ec4f4ae619,1,0,c49cef0d-3b71-4e66-9e35-72b94920dae5,c49cef0d-3b71-4e66-9e35-72b94920dae5,1,0,30e06f80-b6d0-4fa9-a346-8e17dbe2fb68,30e06f80-b6d0-4fa9-a346-8e17dbe2fb68,1,0,e589a693-ff50-4c36-ae26-a8fcae966d57,e589a693-ff50-4c36-ae26-a8fcae966d57,1,0,8bacb87e-c2e9-41f5-bae1-c3a6b0e8179f,8bacb87e-c2e9-41f5-bae1-c3a6b0e8179f,1,0,90f023f5-5b48-4f98-bfc6-b704277a355d,90f023f5-5b48-4f98-bfc6-b704277a355d,1,0,99485603-706d-4301-be25-82b1c0ee8f4d,99485603-706d-4301-be25-82b1c0ee8f4d,1,0,e7a28021-c75e-41b2-9974-cf4beee34d28,e7a28021-c75e-41b2-9974-cf4beee34d28,1,0,21e3bdf3-7cec-42de-8ef3-5815b9a1b747,21e3bdf3-7cec-42de-8ef3-5815b9a1b747,1,0,2a603c61-4cbf-4c6d-a0b2-40c835d36737,2a603c61-4cbf-4c6d-a0b2-40c835d36737,1,0,a8d7f071-401b-499e-957c-d077d8002e54,a8d7f071-401b-499e-957c-d077d8002e54,1,0,b6206c73-cf17-4e74-a14d-f2a2ef2b2cc1,b6206c73-cf17-4e74-a14d-f2a2ef2b2cc1,1,0,b363f72f-3629-453c-9f7d-9828ef6de733,b363f72f-3629-453c-9f7d-9828ef6de733,1,0,211a539b-4be9-4816-98f6-f756e65eafd8,211a539b-4be9-4816-98f6-f756e65eafd8,1,0,e2d8167d-3ebf-4771-b9e0-e6382d68cc18,e2d8167d-3ebf-4771-b9e0-e6382d68cc18,1,0,e9b9da80-7806-4c9c-a002-01cfa3109169,e9b9da80-7806-4c9c-a002-01cfa3109169,1,0,a271041d-0203-4ecd-bb39-70256c50192e,a271041d-0203-4ecd-bb39-70256c50192e,1,0,c6c26c3c-de7a-4ed4-944d-ada62cf1ab8f,c6c26c3c-de7a-4ed4-944d-ada62cf1ab8f,1,0,a54872fc-4e7e-4829-8564-1b2e7f0ee134,a54872fc-4e7e-4829-8564-1b2e7f0ee134,1,0,fe10d76e-3f80-4529-83a8-74c452a781f6,fe10d76e-3f80-4529-83a8-74c452a781f6,1,0,e3d1a7f5-ba86-414e-b2d2-89cc9db51667,e3d1a7f5-ba86-414e-b2d2-89cc9db51667,1,0,13333d66-ff04-49ec-973a-1229da8c9f50,13333d66-ff04-49ec-973a-1229da8c9f50,1,0,cb8ab5b6-876f-4aae-952f-2284bf0f539d,cb8ab5b6-876f-4aae-952f-2284bf0f539d,1,0,c9281eef-2e73-4b0f-ab72-7b4f6f10d787,c9281eef-2e73-4b0f-ab72-7b4f6f10d787,1,0,4a6fde33-6a58-4827-bdf9-b5e28e8cff6b,4a6fde33-6a58-4827-bdf9-b5e28e8cff6b,1,0,e2eadc5b-1b78-4ae4-8a55-a42402bb458b,e2eadc5b-1b78-4ae4-8a55-a42402bb458b,1,0,1e7effa9-3d8c-4d6c-bad2-98a3fd57ff33,1e7effa9-3d8c-4d6c-bad2-98a3fd57ff33,1,0,4c353b16-e6b6-4bd2-9d22-ce50a6281402,4c353b16-e6b6-4bd2-9d22-ce50a6281402,1,0,31f12f68-e5f7-4078-aca4-ebe32699fd6c,31f12f68-e5f7-4078-aca4-ebe32699fd6c,1,0,7e67f946-a80f-428e-a0eb-22c1a58b6fcf,7e67f946-a80f-428e-a0eb-22c1a58b6fcf,1,0,040cd37a-d272-4a87-b125-25d2cb8a2f9e,040cd37a-d272-4a87-b125-25d2cb8a2f9e,1,0,0f3e12fd-d60c-4323-8010-3f2951012d36,0f3e12fd-d60c-4323-8010-3f2951012d36,1,0,cf8c78d6-e1e0-4953-9928-b8d333e2c1ca,cf8c78d6-e1e0-4953-9928-b8d333e2c1ca,1,0,970421ca-4cb5-41f1-8e83-91ea4481ba9a,970421ca-4cb5-41f1-8e83-91ea4481ba9a,1,0,eb7aed6a-718d-4439-bea6-e7ede4987e3d,eb7aed6a-718d-4439-bea6-e7ede4987e3d,1,0,51ab4435-d8a2-4f54-b2ff-9465b0a4eef3,51ab4435-d8a2-4f54-b2ff-9465b0a4eef3,1,0,2f9d50bd-3e82-4321-81e6-2290b5a8a25e,2f9d50bd-3e82-4321-81e6-2290b5a8a25e,1,0,63a34a52-83e7-4644-8a70-9a845b5b18f2,63a34a52-83e7-4644-8a70-9a845b5b18f2,1,0,6f612a9e-c264-4856-98cf-e1a5b8ff7c97,6f612a9e-c264-4856-98cf-e1a5b8ff7c97,1,0,6d7b4670-9c33-41da-afca-bf1e01447623,6d7b4670-9c33-41da-afca-bf1e01447623,1,0,de31505e-3190-4b8c-81e9-8e2c2c7a1809,de31505e-3190-4b8c-81e9-8e2c2c7a1809,1,0,a07f12e8-f62c-4325-b0f4-df68b4b13e45,a07f12e8-f62c-4325-b0f4-df68b4b13e45,1,0,960dc389-b6bb-40ad-bcf7-a07b8c25d6f5,960dc389-b6bb-40ad-bcf7-a07b8c25d6f5,1,0,d8d61ffe-518a-4f06-ba47-238c0973a01a,d8d61ffe-518a-4f06-ba47-238c0973a01a,1,0,12b82221-3a4e-4d65-b1eb-001cc22725a7,12b82221-3a4e-4d65-b1eb-001cc22725a7,1,0,b301cd92-809f-4b0e-966b-8ab95e85ecb3,b301cd92-809f-4b0e-966b-8ab95e85ecb3,1,0,f0c12406-79a9-48e3-b470-b2148d3c9990,f0c12406-79a9-48e3-b470-b2148d3c9990,1,0,a587b305-efbf-43be-bf2e-95c4a33e9f3b,a587b305-efbf-43be-bf2e-95c4a33e9f3b,1,0,ba156cdc-ac78-4827-9598-f0bb7cc7569c,ba156cdc-ac78-4827-9598-f0bb7cc7569c,1,0,c7e646e7-c353-4549-ac4a-1b088be7f684,c7e646e7-c353-4549-ac4a-1b088be7f684,1,0,1db14384-34b2-422d-a7ee-fc930f48cfd1,1db14384-34b2-422d-a7ee-fc930f48cfd1,1,0,4b792d87-b16f-47b1-85a8-781365c2f135,4b792d87-b16f-47b1-85a8-781365c2f135,1,0,73eff626-a363-4a5a-879e-61ef6ce0726f,73eff626-a363-4a5a-879e-61ef6ce0726f,1,0,acf15b79-a6c4-4c46-8013-50d3b223baf6,acf15b79-a6c4-4c46-8013-50d3b223baf6,1,0,f6a29b80-e4c3-4c4f-8e2c-d4dda851d813,f6a29b80-e4c3-4c4f-8e2c-d4dda851d813,1,0,2d8d5d74-2bc0-4282-af66-e4a37694c147,2d8d5d74-2bc0-4282-af66-e4a37694c147,1,0,cfd31341-287b-4684-9ac0-b28b4e066f15,cfd31341-287b-4684-9ac0-b28b4e066f15,1,0,81de1b0b-7f2d-4098-ae99-061c6a90dc29,81de1b0b-7f2d-4098-ae99-061c6a90dc29,1,0,77c8a065-a8aa-4f39-93b6-c88f4c38ec66,77c8a065-a8aa-4f39-93b6-c88f4c38ec66,1,0,366fa6da-d3bf-4bb0-9a55-a307f9edee6a,366fa6da-d3bf-4bb0-9a55-a307f9edee6a,1,0,dd0610c8-cd87-4fe2-8a1f-70157132785b,dd0610c8-cd87-4fe2-8a1f-70157132785b,1,0,f829e2a9-5bdb-4171-8b32-8d10d5968813,f829e2a9-5bdb-4171-8b32-8d10d5968813,1,0,647ba8f8-57f7-4c19-af59-525517c1e392,647ba8f8-57f7-4c19-af59-525517c1e392,1,0,39062cb3-4ae8-4c0d-889b-038a55179946,39062cb3-4ae8-4c0d-889b-038a55179946,1,0,c62d4212-36ca-4afb-bac9-269b6f64ca51,c62d4212-36ca-4afb-bac9-269b6f64ca51,1,0,5cec5e16-46ad-4f8c-b869-f5b1cc487884,5cec5e16-46ad-4f8c-b869-f5b1cc487884,1,0,ca0363bb-81c2-4fce-b2f0-e8f42d118a74,ca0363bb-81c2-4fce-b2f0-e8f42d118a74,1,0,7aacdf81-49fd-47a3-a36a-c483f1b05872,7aacdf81-49fd-47a3-a36a-c483f1b05872,1,0,857015e2-afb2-403d-bfb7-7acb5080797b,857015e2-afb2-403d-bfb7-7acb5080797b,1,0,100ec1d0-3719-4feb-8a66-02f2c89fcd36,100ec1d0-3719-4feb-8a66-02f2c89fcd36,1,0,5657286b-114b-41de-ab7d-45d0f0d95e2d,5657286b-114b-41de-ab7d-45d0f0d95e2d,1,0,42a0271e-6783-44db-95c1-09805ae01f58,42a0271e-6783-44db-95c1-09805ae01f58,1,0,8628783e-4fad-4dff-8220-9e0ddc8580f8,8628783e-4fad-4dff-8220-9e0ddc8580f8,1,0,356fc245-3034-42d1-84d0-632c6dc7a3d5,356fc245-3034-42d1-84d0-632c6dc7a3d5,1,0,07462664-6b58-4f5a-9b3f-2e5c376f17df,07462664-6b58-4f5a-9b3f-2e5c376f17df,1,0,6f23e946-f700-424b-b9bf-3a9c8846908d,6f23e946-f700-424b-b9bf-3a9c8846908d,1,0,f3ef5989-a848-4a7f-8ac5-0eca882a6aa1,f3ef5989-a848-4a7f-8ac5-0eca882a6aa1,1,0,4f5087ab-cc60-4d1e-ba83-a319536bf8ba,4f5087ab-cc60-4d1e-ba83-a319536bf8ba,1,0,2aafb1a1-4321-47e9-9783-03ab616a2873,2aafb1a1-4321-47e9-9783-03ab616a2873,1,0,71109997-6da0-4eaf-bbf2-f94fa24f37cc,71109997-6da0-4eaf-bbf2-f94fa24f37cc,1,0,a3deeef2-f8a2-462f-a57f-87d89e4ec12a,a3deeef2-f8a2-462f-a57f-87d89e4ec12a,1,0,d601281c-379d-4a9d-843e-478fd6567415,d601281c-379d-4a9d-843e-478fd6567415,1,0,fd9b3f7d-d25d-4ecb-8b87-218d5ccf1f7b,fd9b3f7d-d25d-4ecb-8b87-218d5ccf1f7b,1,0,427e6f15-334e-42be-9554-895d8f7ebfc6,427e6f15-334e-42be-9554-895d8f7ebfc6,1,0,02abb5e3-9d4e-4c45-af19-71796966ed19,02abb5e3-9d4e-4c45-af19-71796966ed19,1,0,e85a4314-7b63-4294-9bd0-ff77e3ae7c1e,e85a4314-7b63-4294-9bd0-ff77e3ae7c1e,1,0,36bc8523-41a5-48ff-9bd0-758d078c4408,36bc8523-41a5-48ff-9bd0-758d078c4408,1,0,94ca1b45-3cf0-4857-8299-999c93f4fb56,94ca1b45-3cf0-4857-8299-999c93f4fb56,1,0,ee8419c6-79ca-4546-9a66-bacaa08d2a73,ee8419c6-79ca-4546-9a66-bacaa08d2a73,1,0,e36ddb60-2f21-4c5f-b96c-947bcf2af42a,e36ddb60-2f21-4c5f-b96c-947bcf2af42a,1,0,d4a0ca3b-3985-4ba2-9e96-1c5baed28b46,d4a0ca3b-3985-4ba2-9e96-1c5baed28b46,1,0,ada11ea2-94d5-4172-a383-a51774599568,ada11ea2-94d5-4172-a383-a51774599568,1,0,50515bbc-43ee-4b00-bfc5-105b7981bd8f,50515bbc-43ee-4b00-bfc5-105b7981bd8f,1,0,1ea080b0-0a11-4152-b8bb-4918bc142a23,1ea080b0-0a11-4152-b8bb-4918bc142a23,1,0,a21cd1c1-4649-4dc2-9dbd-a913f2d6ca75,a21cd1c1-4649-4dc2-9dbd-a913f2d6ca75,1,0,6930e471-7935-4d68-a980-2acde93ba801,6930e471-7935-4d68-a980-2acde93ba801,1,0,2c425fa5-b10b-4a6f-926a-5cb4c1f2d491,2c425fa5-b10b-4a6f-926a-5cb4c1f2d491,1,0,5135cc48-c749-4acb-a225-d110f386f482,5135cc48-c749-4acb-a225-d110f386f482,1,0,15e6f31b-556a-4f47-9f40-2f69ac7fcb43,15e6f31b-556a-4f47-9f40-2f69ac7fcb43,1,0,53c4c3b2-9257-4d02-8df8-6b55fe9abdae,53c4c3b2-9257-4d02-8df8-6b55fe9abdae,1,0,d2dba2ae-e987-4c9d-a289-3dc19afa87cd,d2dba2ae-e987-4c9d-a289-3dc19afa87cd,1,0,2e9fa546-96fb-4ecb-b933-7921e131e89b,2e9fa546-96fb-4ecb-b933-7921e131e89b,1,0,4645b1ad-eb8f-484c-b29c-2093d9ef9dba,4645b1ad-eb8f-484c-b29c-2093d9ef9dba,1,0,637a132b-1a88-44ba-b45f-ed4ed1ac1001,637a132b-1a88-44ba-b45f-ed4ed1ac1001,1,0,c3efa853-cd29-4618-929f-e3bec33dfd65,c3efa853-cd29-4618-929f-e3bec33dfd65,1,0,62185c28-3d24-487a-9441-b309dcf11e31,62185c28-3d24-487a-9441-b309dcf11e31,1,0,9f264aeb-664d-4724-8248-11873d63ef3b,9f264aeb-664d-4724-8248-11873d63ef3b,1,0,b926d058-53a9-4eea-b4f9-98e77f798dd9,b926d058-53a9-4eea-b4f9-98e77f798dd9,1,0,495e2c77-4868-4191-ac18-f94e55a5982e,495e2c77-4868-4191-ac18-f94e55a5982e,1,0,20191a65-322c-457d-85f5-ed1258b6fe8e,20191a65-322c-457d-85f5-ed1258b6fe8e,1,0,d71ca3bc-e41a-44d9-afe4-c68f1211b3a1,d71ca3bc-e41a-44d9-afe4-c68f1211b3a1,1,0,23b46ecd-14dc-4cc5-8ff0-c676a8337aee,23b46ecd-14dc-4cc5-8ff0-c676a8337aee,1,0,769c60aa-44f4-4c98-a461-d3f5c2b67f61,769c60aa-44f4-4c98-a461-d3f5c2b67f61,1,0,f9809c99-0eaa-4249-967c-a4bef4763277,f9809c99-0eaa-4249-967c-a4bef4763277,1,0,37fa88a0-f2c1-455f-a28d-74165e8b933d,37fa88a0-f2c1-455f-a28d-74165e8b933d,1,0,e4476f09-909b-49f7-8e01-72eea8ceaca6,e4476f09-909b-49f7-8e01-72eea8ceaca6,1,0,2861412c-46f0-454e-b81d-fe081afb5c7a,2861412c-46f0-454e-b81d-fe081afb5c7a,1,0,2b4ece05-b694-42e9-8239-55722fd84294,2b4ece05-b694-42e9-8239-55722fd84294,1,0,6564ce89-134f-4726-8693-fd93aad46180,6564ce89-134f-4726-8693-fd93aad46180,1,0,0d743731-da5d-4c99-b19f-e93c69b77e14,0d743731-da5d-4c99-b19f-e93c69b77e14,1,0,d6f15367-23e2-4766-bc7c-8acd0063aa0c,d6f15367-23e2-4766-bc7c-8acd0063aa0c,1,0,966b1bde-5b0c-446d-b38b-dc037e2ff7ad,966b1bde-5b0c-446d-b38b-dc037e2ff7ad,1,0,fa4c5665-4d73-4db2-a055-8c1c8a302f82,fa4c5665-4d73-4db2-a055-8c1c8a302f82,1,0,e3e0caa1-6d3f-45a6-9043-d58a34f35b8f,e3e0caa1-6d3f-45a6-9043-d58a34f35b8f,1,0,9100b286-8ae9-4de3-b116-5ce0fa95b80c,9100b286-8ae9-4de3-b116-5ce0fa95b80c,1,0,3d315df6-e000-4cbd-810d-0b26c0d1bc54,3d315df6-e000-4cbd-810d-0b26c0d1bc54,1,0,fa429302-ccaf-4c89-8a11-3a1d30817c00,fa429302-ccaf-4c89-8a11-3a1d30817c00,1,0,9b4c49ce-93da-439a-8d67-f3774e92800a,9b4c49ce-93da-439a-8d67-f3774e92800a,1,0,5f8fa827-7017-4b45-b458-3571b8b611f5,5f8fa827-7017-4b45-b458-3571b8b611f5,1,0,79749167-2912-4e06-9deb-7915a1b4390d,79749167-2912-4e06-9deb-7915a1b4390d,1,0,1c93fcd3-53a1-403f-a30b-454fbc941d55,1c93fcd3-53a1-403f-a30b-454fbc941d55,1,0,0fc54be4-2e19-45cf-b62f-7cbc70a70d5f,0fc54be4-2e19-45cf-b62f-7cbc70a70d5f,1,0,adec3963-b22f-4463-a3f4-c9ec27d187a8,adec3963-b22f-4463-a3f4-c9ec27d187a8,1,0,d8dae0c8-8e11-44bf-bf60-d316220f3e82,d8dae0c8-8e11-44bf-bf60-d316220f3e82,1,0,12afec4d-1728-4aa8-86e5-23cd2f1572b3,12afec4d-1728-4aa8-86e5-23cd2f1572b3,1,0,16bc197b-5a2f-43f4-8ba0-ffabd9289f5c,16bc197b-5a2f-43f4-8ba0-ffabd9289f5c,1,0,ee0c3960-d1bf-411f-a51f-e6e27dabea87,ee0c3960-d1bf-411f-a51f-e6e27dabea87,1,0,d7fb9441-1aef-4257-af3f-7f16340ac85e,d7fb9441-1aef-4257-af3f-7f16340ac85e,1,0,d07c094c-2795-4e0c-b030-bdb82be7ba6d,d07c094c-2795-4e0c-b030-bdb82be7ba6d,1,0,62637860-2013-4f9d-9aed-7cbb0dce8983,62637860-2013-4f9d-9aed-7cbb0dce8983,1,0,331217f6-7ec2-425d-93bd-f2979c5f2e05,331217f6-7ec2-425d-93bd-f2979c5f2e05,1,0,7d5b2b73-27e6-4a61-9558-eb2410eb9f2f,7d5b2b73-27e6-4a61-9558-eb2410eb9f2f,1,0,d754ed75-2a32-4b86-a153-7b50c39f9836,d754ed75-2a32-4b86-a153-7b50c39f9836,1,0,b81f3ee1-66f7-4626-a35b-ef85388c678e,b81f3ee1-66f7-4626-a35b-ef85388c678e,1,0,2ad04793-c162-4915-a260-ca4da535cdac,2ad04793-c162-4915-a260-ca4da535cdac,1,0,78942e92-a31c-4824-a614-a6e07ae26171,78942e92-a31c-4824-a614-a6e07ae26171,1,0,6568d853-dfe5-4064-aa73-c1f546e951b4,6568d853-dfe5-4064-aa73-c1f546e951b4,1,0,7cee27a7-9827-47f8-96f3-d4f1f3dcabe9,7cee27a7-9827-47f8-96f3-d4f1f3dcabe9,1,0,9bfba5cd-551a-4685-99dd-ebfd9f7fd7d1,9bfba5cd-551a-4685-99dd-ebfd9f7fd7d1,1,0,bbe718b2-6b4c-4d78-a408-5369d356a1e6,bbe718b2-6b4c-4d78-a408-5369d356a1e6,1,0,4ecd85c4-5be7-4e6b-8c53-7dd32bd4d707,4ecd85c4-5be7-4e6b-8c53-7dd32bd4d707,1,0,eb7623df-b4e3-4272-9f92-42a9214f9f17,eb7623df-b4e3-4272-9f92-42a9214f9f17,1,0,a5f5bc90-e670-4ee7-95fe-067fe1b129f7,a5f5bc90-e670-4ee7-95fe-067fe1b129f7,1,0,f790f620-2247-4a04-b0ad-8aa591655948,f790f620-2247-4a04-b0ad-8aa591655948,1,0,6d9d9087-91ad-4368-9087-0af8f83fdc9e,6d9d9087-91ad-4368-9087-0af8f83fdc9e,1,0,61fdb27e-b449-40a7-8ecd-7e3e8ae3aa23,61fdb27e-b449-40a7-8ecd-7e3e8ae3aa23,1,0,c7e4e97f-fb85-4e95-bfdf-7706e867d89b,c7e4e97f-fb85-4e95-bfdf-7706e867d89b,1,0,b08fd921-c3d6-44eb-9401-fec5acab5d22,b08fd921-c3d6-44eb-9401-fec5acab5d22,1,0,f4f185af-5507-427c-b82b-515ea71f3fc1,f4f185af-5507-427c-b82b-515ea71f3fc1,1,0,1611855a-abf4-4269-aed3-3f78dce7bea5,1611855a-abf4-4269-aed3-3f78dce7bea5,1,0,c5bd277c-b258-43af-9c80-3e328b1581f5,c5bd277c-b258-43af-9c80-3e328b1581f5,1,0,96dac7e8-5113-4217-ac0a-fffea4acc410,96dac7e8-5113-4217-ac0a-fffea4acc410,1,0,d6fa2b86-1c3b-4c14-8a66-b6dbd40bca19,d6fa2b86-1c3b-4c14-8a66-b6dbd40bca19,1,0,f9cefef4-2182-42ca-93ef-b6a51d6555cc,f9cefef4-2182-42ca-93ef-b6a51d6555cc,1,0,71e1c7de-7367-424c-ae07-6ec04b408b83,71e1c7de-7367-424c-ae07-6ec04b408b83,1,0,b3956392-199c-4934-80d1-8cdab453d879,b3956392-199c-4934-80d1-8cdab453d879,1,0,5e26aeb7-617c-4983-b40d-5a61c77aa6a4,5e26aeb7-617c-4983-b40d-5a61c77aa6a4,1,0,d1bd7448-aa5f-43fc-9735-224f36960c3e,d1bd7448-aa5f-43fc-9735-224f36960c3e,1,0,94dbfc4c-d530-4fbd-b7cf-a58a56289b97,94dbfc4c-d530-4fbd-b7cf-a58a56289b97,1,0,6fa25c57-411d-4f9c-9c3e-c7ea1b1f7195,6fa25c57-411d-4f9c-9c3e-c7ea1b1f7195,1,0,1bfa15cf-222e-4e5b-beb7-7a50f8131799,1bfa15cf-222e-4e5b-beb7-7a50f8131799,1,0,8227471b-8ffb-4ba7-b4da-b21570582876,8227471b-8ffb-4ba7-b4da-b21570582876,1,0,ea7ab9fa-5119-4773-b17d-fc74c7479d3d,ea7ab9fa-5119-4773-b17d-fc74c7479d3d,1,0,3e0fe508-87fa-47af-a47f-c0630a186900,3e0fe508-87fa-47af-a47f-c0630a186900,1,0,09740271-b8a8-4949-a116-b64449d80036,09740271-b8a8-4949-a116-b64449d80036,1,0,c8fedc0b-33d6-46a5-b4fc-a3cd728f5fd7,c8fedc0b-33d6-46a5-b4fc-a3cd728f5fd7,1,0,25864028-1a53-4a8d-b6e4-189fa62c62f5,25864028-1a53-4a8d-b6e4-189fa62c62f5,1,0,e923beae-0bd8-4119-a802-fd6bfb729f10,e923beae-0bd8-4119-a802-fd6bfb729f10,1,0,ecb7dd1b-46d6-46b5-a51f-699f068ad6a0,ecb7dd1b-46d6-46b5-a51f-699f068ad6a0,1,0,67c1269a-79e6-44d9-9254-671c50fb3974,67c1269a-79e6-44d9-9254-671c50fb3974,1,0,5d455d2a-910d-48c7-bc74-ba5ad7855110,5d455d2a-910d-48c7-bc74-ba5ad7855110,1,0,7cf3feea-75e2-42cc-9c89-4a9182034910,7cf3feea-75e2-42cc-9c89-4a9182034910,1,0,930a0156-feb3-4e14-96a5-cd183a4891f4,930a0156-feb3-4e14-96a5-cd183a4891f4,1,0,cd5c52d4-f832-4a3b-b4c7-b4f3e0c98222,cd5c52d4-f832-4a3b-b4c7-b4f3e0c98222,1,0,e268a337-f576-4ec2-8a22-0500b79b2441,e268a337-f576-4ec2-8a22-0500b79b2441,1,0,eb33a8fa-75a6-4926-a025-05bc0abe4374,eb33a8fa-75a6-4926-a025-05bc0abe4374,1,0,c352da94-ea64-44b1-b2df-2c4ed9e2efc5,c352da94-ea64-44b1-b2df-2c4ed9e2efc5,1,0,6babd40a-8b8f-454b-b4a4-7cf2854f49a2,6babd40a-8b8f-454b-b4a4-7cf2854f49a2,1,0,bf480259-6e72-4ad1-ac41-0b0d41a75387,bf480259-6e72-4ad1-ac41-0b0d41a75387,1,0,a41f060a-f0f6-4940-960b-5056082b2c45,a41f060a-f0f6-4940-960b-5056082b2c45,1,0,5d45a926-513f-4bbc-a002-54a2db94b297,5d45a926-513f-4bbc-a002-54a2db94b297,1,0,73f5ce9e-d5a7-45c0-965a-8af1d776a98a,73f5ce9e-d5a7-45c0-965a-8af1d776a98a,1,0,073e14d4-5d43-428b-a9a7-985d173e94c7,073e14d4-5d43-428b-a9a7-985d173e94c7,1,0,61dc318a-c17d-402e-bf64-a0c0a63a1c93,61dc318a-c17d-402e-bf64-a0c0a63a1c93,1,0,c4b0c101-8cd9-441c-b94c-9dfa1ad58d45,c4b0c101-8cd9-441c-b94c-9dfa1ad58d45,1,0,2394775b-8910-4667-9c74-e1606e0b13bc,2394775b-8910-4667-9c74-e1606e0b13bc,1,0,43c88ffd-a036-4563-890b-bdc60180e841,43c88ffd-a036-4563-890b-bdc60180e841,1,0,af6e5e8e-6482-4820-a810-9e275ae039bf,af6e5e8e-6482-4820-a810-9e275ae039bf,1,0,fe3ccb8b-fee7-4825-a7bc-4b0fd432d382,fe3ccb8b-fee7-4825-a7bc-4b0fd432d382,1,0,7690620b-21d9-463a-8c22-60844927b4a0,7690620b-21d9-463a-8c22-60844927b4a0,1,0,e7f96a15-9f62-4a7f-85f3-06ba5d30b130,e7f96a15-9f62-4a7f-85f3-06ba5d30b130,1,0,b1db3255-38da-4684-b44e-4e2e9ee1dc35,b1db3255-38da-4684-b44e-4e2e9ee1dc35,1,0,4761f89b-7894-4dca-83b0-3be2d0828781,4761f89b-7894-4dca-83b0-3be2d0828781,1,0,573ff1f2-0ef5-4962-a0f6-eb84d430fe03,573ff1f2-0ef5-4962-a0f6-eb84d430fe03,1,0,7236d52f-9068-45ad-8b92-a7319e737e08,7236d52f-9068-45ad-8b92-a7319e737e08,1,0,3b0b708f-1b6c-4eb2-a2ad-86c088d9f1bf,3b0b708f-1b6c-4eb2-a2ad-86c088d9f1bf,1,0,9db23e96-d13a-4847-941a-462f64d0619d,9db23e96-d13a-4847-941a-462f64d0619d,1,0,7575fd54-c91b-4220-a2ef-2cf533f60426,7575fd54-c91b-4220-a2ef-2cf533f60426,1,0,1b751f19-bb0c-40c2-a5d1-068544c36c6b,1b751f19-bb0c-40c2-a5d1-068544c36c6b,1,0,26e2c83b-8873-4ad3-9c50-e94421473a43,26e2c83b-8873-4ad3-9c50-e94421473a43,1,0,f0b2ec05-8e01-4ccf-b927-671329a9013b,f0b2ec05-8e01-4ccf-b927-671329a9013b,1,0,ab442b11-2482-4f80-ac82-01966e0657ec,ab442b11-2482-4f80-ac82-01966e0657ec,1,0,14fe4d39-81a1-470e-9724-6642ce34ad89,14fe4d39-81a1-470e-9724-6642ce34ad89,1,0,457578ab-dfe2-4419-8d8a-64283b341f42,457578ab-dfe2-4419-8d8a-64283b341f42,1,0,67ef6671-f537-46bf-88e6-f5bcf34a17a4,67ef6671-f537-46bf-88e6-f5bcf34a17a4,1,0,de778ca7-feaf-4531-80ae-11a534c56928,de778ca7-feaf-4531-80ae-11a534c56928,1,0,0dfbe7a9-9c2e-4cbd-ac53-3b547fd73e91,0dfbe7a9-9c2e-4cbd-ac53-3b547fd73e91,1,0,0a76a84d-e883-477e-8b87-7bf984cdc1cf,0a76a84d-e883-477e-8b87-7bf984cdc1cf,1,0,2b6c4184-6d7d-48e5-bd4e-ad31e63398d6,2b6c4184-6d7d-48e5-bd4e-ad31e63398d6,1,0,86df8648-e195-4661-99ee-6052788eb276,86df8648-e195-4661-99ee-6052788eb276,1,0,a22cf6e9-1157-4be5-8d30-aa9bbf2b5e6e,a22cf6e9-1157-4be5-8d30-aa9bbf2b5e6e,1,0,35133725-9647-42dc-a76a-2e62b2918ac4,35133725-9647-42dc-a76a-2e62b2918ac4,1,0,c7b883dc-6c26-4eb5-bc19-7919ad57da27,c7b883dc-6c26-4eb5-bc19-7919ad57da27,1,0,7fc37008-c378-4a70-a9a9-07543c7248a6,7fc37008-c378-4a70-a9a9-07543c7248a6,1,0,6410853e-a17e-44db-b8cc-bfefd7c4d239,6410853e-a17e-44db-b8cc-bfefd7c4d239,1,0,df042e4e-01a6-4480-a9c5-c0d7a454bb41,df042e4e-01a6-4480-a9c5-c0d7a454bb41,1,0,5a4abb96-8a18-4249-9fbb-7270fe2ba25b,5a4abb96-8a18-4249-9fbb-7270fe2ba25b,1,0,6852c584-d989-418d-8d18-255492891ef0,6852c584-d989-418d-8d18-255492891ef0,1,0,6a4972f1-012c-438b-b1d3-81e7f6da3ddd,6a4972f1-012c-438b-b1d3-81e7f6da3ddd,1,0,ff7cfd75-e0ba-49a3-92e1-33ea26df46e2,ff7cfd75-e0ba-49a3-92e1-33ea26df46e2,1,0,bc37fc81-6a86-4e72-b75a-abb75bddc4b3,bc37fc81-6a86-4e72-b75a-abb75bddc4b3,1,0,ff830967-faa9-415f-aa6e-8d27779f91f8,ff830967-faa9-415f-aa6e-8d27779f91f8,1,0,34dd0dd6-880c-4a90-9b9c-0503c8dc4ef3,34dd0dd6-880c-4a90-9b9c-0503c8dc4ef3,1,0,88618d0f-97af-4055-a490-561d4b8065a7,88618d0f-97af-4055-a490-561d4b8065a7,1,0,faffa228-4f4f-43f6-99b9-ed8c93af85c0,faffa228-4f4f-43f6-99b9-ed8c93af85c0,1,0,7b816ca0-ba60-4637-8348-23b26ad23e3f,7b816ca0-ba60-4637-8348-23b26ad23e3f,1,0,814a6db4-a43c-44e6-ac44-11983642c5ad,814a6db4-a43c-44e6-ac44-11983642c5ad,1,0,0bd74786-e018-4a66-b994-cdb439c57657,0bd74786-e018-4a66-b994-cdb439c57657,1,0,f50fcf2b-90bb-4d73-9fda-f4575e7682fa,f50fcf2b-90bb-4d73-9fda-f4575e7682fa,1,0,a01b8078-a6cd-4184-9317-2f1e0bcefb3a,a01b8078-a6cd-4184-9317-2f1e0bcefb3a,1,0,54a279b1-9e6a-49b0-8fda-e2807cf3a2a3,54a279b1-9e6a-49b0-8fda-e2807cf3a2a3,1,0,09502176-c53d-4525-b8ed-32d0a2e21a5d,09502176-c53d-4525-b8ed-32d0a2e21a5d,1,0,75ad984e-d41f-4591-b207-e8a4b05757a7,75ad984e-d41f-4591-b207-e8a4b05757a7,1,0,3f020f90-7aeb-4b21-ad71-4572ac796d4c,3f020f90-7aeb-4b21-ad71-4572ac796d4c,1,0,759e2ba0-2941-4cc1-8409-50b8a3620058,759e2ba0-2941-4cc1-8409-50b8a3620058,1,0,491cf25d-091e-4e09-b145-92d7073326cf,491cf25d-091e-4e09-b145-92d7073326cf,1,0,9b9d4d10-a4f2-4b0d-a63a-15d55f30fb26,9b9d4d10-a4f2-4b0d-a63a-15d55f30fb26,1,0,579f18ce-a7ce-4eb8-a4e3-a134a9a27bc1,579f18ce-a7ce-4eb8-a4e3-a134a9a27bc1,1,0,e7d05eca-2fdd-4cbb-8e2c-537525326ffe,e7d05eca-2fdd-4cbb-8e2c-537525326ffe,1,0,900bc96e-fbcc-473e-970c-96f561420f8e,900bc96e-fbcc-473e-970c-96f561420f8e,1,0,c3bb7b85-1e90-45c4-9bc1-39bbd253d498,c3bb7b85-1e90-45c4-9bc1-39bbd253d498,1,0,21d5a0b0-9a2b-4989-a50a-781645513179,21d5a0b0-9a2b-4989-a50a-781645513179,1,0,3255033a-e922-412e-a825-a3e8bd284703,3255033a-e922-412e-a825-a3e8bd284703,1,0,1aa65c35-e8a0-4c8a-90a3-48b62314cb19,1aa65c35-e8a0-4c8a-90a3-48b62314cb19,1,0,f250f992-ad5a-4dab-ad38-240604adb0c4,f250f992-ad5a-4dab-ad38-240604adb0c4,1,0,c4a7efca-f27d-4fdd-86ab-cc22a2a96fb2,c4a7efca-f27d-4fdd-86ab-cc22a2a96fb2,1,0,e63671f6-c96d-4ea4-8300-af7dbd0d016f,e63671f6-c96d-4ea4-8300-af7dbd0d016f,1,0,2c511469-0df6-470f-a808-decb275e8b1a,2c511469-0df6-470f-a808-decb275e8b1a,1,0,1bbb289c-a78a-47d0-b082-c2225ae1dc83,1bbb289c-a78a-47d0-b082-c2225ae1dc83,1,0,99b40f9f-f8f1-4779-8afc-59d30612f3d6,99b40f9f-f8f1-4779-8afc-59d30612f3d6,1,0,6131e875-3254-4281-9343-9118564c5451,6131e875-3254-4281-9343-9118564c5451,1,0,69622ff8-8a23-42fc-b63d-5097e3f636ac,69622ff8-8a23-42fc-b63d-5097e3f636ac,1,0,b88450cc-0dd4-4881-b3d9-a9e4e07e08f5,b88450cc-0dd4-4881-b3d9-a9e4e07e08f5,1,0,ef326bd8-1570-455e-ae8c-063b5578ad15,ef326bd8-1570-455e-ae8c-063b5578ad15,1,0,efd4e0a3-2f98-40ef-8089-c853cd588fa6,efd4e0a3-2f98-40ef-8089-c853cd588fa6,1,0,3713c76d-6ff7-4d45-9f15-d061bdf7dee2,3713c76d-6ff7-4d45-9f15-d061bdf7dee2,1,0,cb6d4979-2d70-4ceb-af08-deb2b19daf14,cb6d4979-2d70-4ceb-af08-deb2b19daf14,1,0,bf30b754-84fb-4104-b52b-a4f7df6fba12,bf30b754-84fb-4104-b52b-a4f7df6fba12,1,0,7bbd0835-b3e9-40cb-a424-670828b60bbb,7bbd0835-b3e9-40cb-a424-670828b60bbb,1,0,3e2138ea-48f9-4a60-8f22-53933bea49db,3e2138ea-48f9-4a60-8f22-53933bea49db,1,0,16bda2eb-eab8-4230-b89f-517fb943e009,16bda2eb-eab8-4230-b89f-517fb943e009,1,0,00964512-297f-4b8b-8def-8e4fc0eba991,00964512-297f-4b8b-8def-8e4fc0eba991,1,0,4185fea3-baba-4ba5-8019-9023b3011d4d,4185fea3-baba-4ba5-8019-9023b3011d4d,1,0,ea790035-92d6-445e-9fa3-08e565634d2b,ea790035-92d6-445e-9fa3-08e565634d2b,1,0,cce8900a-51eb-487d-b380-227d1b9d3943,cce8900a-51eb-487d-b380-227d1b9d3943,1,0,c043c36c-90c6-483b-bc20-7c2d85109b90,c043c36c-90c6-483b-bc20-7c2d85109b90,1,0,a1e619a6-3bb2-468d-a225-c88ccc3b71f5,a1e619a6-3bb2-468d-a225-c88ccc3b71f5,1,0,91d2d40a-c271-412c-b344-1fc98b94ba21,91d2d40a-c271-412c-b344-1fc98b94ba21,1,0,7ce47046-aee8-4809-bac9-a98930a844e1,7ce47046-aee8-4809-bac9-a98930a844e1,1,0,f480b8b9-ecec-4207-a0aa-12c5be4c2250,f480b8b9-ecec-4207-a0aa-12c5be4c2250,1,0,32717d25-6644-4903-8950-03e4c9b1a8fe,32717d25-6644-4903-8950-03e4c9b1a8fe,1,0,3644d8f3-db88-4fce-a851-39c115acfe03,3644d8f3-db88-4fce-a851-39c115acfe03,1,0,4653da74-34b2-47b9-ad88-efd761d6f1e9,4653da74-34b2-47b9-ad88-efd761d6f1e9,1,0,abf8a23d-45c3-4feb-8df2-279b709d7722,abf8a23d-45c3-4feb-8df2-279b709d7722,1,0,b0cd056f-c601-4d07-89c4-f7137b88bab6,b0cd056f-c601-4d07-89c4-f7137b88bab6,1,0,5cc3ebef-8f09-443c-b131-e5c3a9f7d260,5cc3ebef-8f09-443c-b131-e5c3a9f7d260,1,0,b9a21b8f-8a95-4c86-9ab2-ee6c90164e18,b9a21b8f-8a95-4c86-9ab2-ee6c90164e18,1,0,96ed4d39-3bdc-480f-af86-218f22000514,96ed4d39-3bdc-480f-af86-218f22000514,1,0,c9f72e74-22ac-4dc0-8462-0aa7819a9342,c9f72e74-22ac-4dc0-8462-0aa7819a9342,1,0,ca650484-293f-403a-b916-5ec7c3a8969e,ca650484-293f-403a-b916-5ec7c3a8969e,1,0,b71e706d-623e-4039-9bf0-24f151d861d8,b71e706d-623e-4039-9bf0-24f151d861d8,1,0,528f4823-33d8-49bd-a8fe-756a08a107c2,528f4823-33d8-49bd-a8fe-756a08a107c2,1,0,4869095b-b76e-45ca-b77d-0e74f59673f0,4869095b-b76e-45ca-b77d-0e74f59673f0,1,0,bcca2442-448b-4760-923b-cc9621ecb441,bcca2442-448b-4760-923b-cc9621ecb441,1,0,ba7657df-429a-4737-b787-19ef09fdebb2,ba7657df-429a-4737-b787-19ef09fdebb2,1,0,867d72be-f406-45a5-a511-b90459683f11,867d72be-f406-45a5-a511-b90459683f11,1,0,88b22e62-c144-401f-9635-3fb4d914772e,88b22e62-c144-401f-9635-3fb4d914772e,1,0,efeb2914-6604-403a-a11e-5cb995ab2bc9,efeb2914-6604-403a-a11e-5cb995ab2bc9,1,0,4c2dd77f-adc7-4f11-8e8f-1f8e41e6c84b,4c2dd77f-adc7-4f11-8e8f-1f8e41e6c84b,1,0,8f2b8a8e-4cd3-45e3-89ae-1cc4bd0ff30a,8f2b8a8e-4cd3-45e3-89ae-1cc4bd0ff30a,1,0,24b3aecc-f92f-475b-862e-83dd6d6aa2b9,24b3aecc-f92f-475b-862e-83dd6d6aa2b9,1,0,8525d945-08aa-4928-8dca-4e172ea94328,8525d945-08aa-4928-8dca-4e172ea94328,1,0,de506523-241a-4845-9259-37066afbf16a,de506523-241a-4845-9259-37066afbf16a,1,0,0510206f-eef0-4a5e-aeb7-d53c26d34adb,0510206f-eef0-4a5e-aeb7-d53c26d34adb,1,0,e616e007-43e7-4740-a083-b85f5435718a,e616e007-43e7-4740-a083-b85f5435718a,1,0,82be906c-bb06-40ea-b908-54574b0b4848,82be906c-bb06-40ea-b908-54574b0b4848,1,0,727da5b1-e054-4832-8e44-f5d5e56f52e5,727da5b1-e054-4832-8e44-f5d5e56f52e5,1,0,6135ffd5-1510-4aa8-8bf5-d7c0ca624414,6135ffd5-1510-4aa8-8bf5-d7c0ca624414,1,0,1f8cb390-2cbb-4a88-96ee-b31695b73d78,1f8cb390-2cbb-4a88-96ee-b31695b73d78,1,0,6feaad7c-9680-4341-b215-14581e2e2b37,6feaad7c-9680-4341-b215-14581e2e2b37,1,0,d5656a92-adfb-4733-830d-2b1565798b1f,d5656a92-adfb-4733-830d-2b1565798b1f,1,0,2ee0d56b-cd7c-42db-8fb6-c1567fe1967d,2ee0d56b-cd7c-42db-8fb6-c1567fe1967d,1,0,b0f6ea83-2849-4151-930d-692866919db3,b0f6ea83-2849-4151-930d-692866919db3,1,0,0abf70e0-0d81-4d85-a288-a2134da5fbf1,0abf70e0-0d81-4d85-a288-a2134da5fbf1,1,0,392fc734-4251-4d28-bfd1-d6f2f33ec0e5,392fc734-4251-4d28-bfd1-d6f2f33ec0e5,1,0,f66cb2da-3b3c-481f-823a-506f8290f619,f66cb2da-3b3c-481f-823a-506f8290f619,1,0,b80ddaf8-c5c3-4bde-98ed-74a1a0446f38,b80ddaf8-c5c3-4bde-98ed-74a1a0446f38,1,0,e4f16dbf-609d-4a34-a0bf-b20e5925c1ba,e4f16dbf-609d-4a34-a0bf-b20e5925c1ba,1,0,0bdcf045-5132-4a68-839c-a30515dc569e,0bdcf045-5132-4a68-839c-a30515dc569e,1,0,683861f9-9a5f-47db-8b03-959f839d5a3a,683861f9-9a5f-47db-8b03-959f839d5a3a,1,0,56fda0b0-c0ae-4ea2-8f77-df22a9ca3e87,56fda0b0-c0ae-4ea2-8f77-df22a9ca3e87,1,0,125be5bf-f410-451d-aa96-22fabc6a4d8a,125be5bf-f410-451d-aa96-22fabc6a4d8a,1,0,e5017fd0-ecea-48ae-99c8-7fc8c4f1d72b,e5017fd0-ecea-48ae-99c8-7fc8c4f1d72b,1,0,0a46166a-4562-4a50-b139-39dbe8a1fc84,0a46166a-4562-4a50-b139-39dbe8a1fc84,1,0,9aa6d1d1-75ad-40e4-b01f-274826c0c9da,9aa6d1d1-75ad-40e4-b01f-274826c0c9da,1,0,6ce64d65-f710-4d3f-a85f-26ce6915451e,6ce64d65-f710-4d3f-a85f-26ce6915451e,1,0,33eb9806-e34f-42a0-9825-3ff2de92c503,33eb9806-e34f-42a0-9825-3ff2de92c503,1,0,4905fcc5-9bd7-4b1b-b51d-882b11ee3d74,4905fcc5-9bd7-4b1b-b51d-882b11ee3d74,1,0,bcb58235-7cd7-4c15-a1eb-194ee38259e6,bcb58235-7cd7-4c15-a1eb-194ee38259e6,1,0,e19aefe7-634d-4218-8d40-75802d1691e0,e19aefe7-634d-4218-8d40-75802d1691e0,1,0,b885dbb2-6e18-46a6-929c-3d6d392343ad,b885dbb2-6e18-46a6-929c-3d6d392343ad,1,0,d31e24cf-7493-45dc-ba81-3a00618e53bc,d31e24cf-7493-45dc-ba81-3a00618e53bc,1,0,03f32b08-1b71-47cb-ba1d-965037df4d64,03f32b08-1b71-47cb-ba1d-965037df4d64,1,0,4ec26e3d-6c38-4c90-9f91-c2235f8b4154,4ec26e3d-6c38-4c90-9f91-c2235f8b4154,1,0,ce2a8ff8-94fd-4ce2-9caa-4711e9b79ee9,ce2a8ff8-94fd-4ce2-9caa-4711e9b79ee9,1,0,f942d212-9be0-4d80-84b6-5b63070e33e4,f942d212-9be0-4d80-84b6-5b63070e33e4,1,0,bea6bbc1-c1e4-4306-a0ca-efd47b9a8b23,bea6bbc1-c1e4-4306-a0ca-efd47b9a8b23,1,0,19a0b881-302e-4d0e-ace0-29a9d8379a48,19a0b881-302e-4d0e-ace0-29a9d8379a48,1,0,64c91eaa-084f-4801-8dbf-4e075c689c2b,64c91eaa-084f-4801-8dbf-4e075c689c2b,1,0,c01bb4de-06f7-4c3d-8ea3-d861f89948c0,c01bb4de-06f7-4c3d-8ea3-d861f89948c0,1,0,3c8c4f7b-d267-422c-becd-b6e8a9d6fe49,3c8c4f7b-d267-422c-becd-b6e8a9d6fe49,1,0,3aa12805-823a-439b-b039-fb9940aee312,3aa12805-823a-439b-b039-fb9940aee312,1,0,87d53573-f266-4b74-94af-041ae4b6518f,87d53573-f266-4b74-94af-041ae4b6518f,1,0,65a8545a-e73c-4c6a-8f87-7734d7ff5c03,65a8545a-e73c-4c6a-8f87-7734d7ff5c03,1,0,801cf1f7-2c65-4126-a3e9-b66abfdde67a,801cf1f7-2c65-4126-a3e9-b66abfdde67a,1,0,b991eefb-0d97-48a1-89c8-3d83b3b8d97a,b991eefb-0d97-48a1-89c8-3d83b3b8d97a,1,0,29c2bc01-8838-4459-8ac2-79862aa1dbc9,29c2bc01-8838-4459-8ac2-79862aa1dbc9,1,0,ad556c33-6811-48b4-ae90-57700a4d3fd6,ad556c33-6811-48b4-ae90-57700a4d3fd6,1,0,6e0833f4-3b57-4a5f-810f-9e2a492335df,6e0833f4-3b57-4a5f-810f-9e2a492335df,1,0,78ccdf33-9c2b-4931-afa3-5d652f2bcbc5,78ccdf33-9c2b-4931-afa3-5d652f2bcbc5,1,0,977bc9d8-9843-4343-85af-11a3d91f9966,977bc9d8-9843-4343-85af-11a3d91f9966,1,0,02ff9ef0-1057-4bc2-b745-1c2ae41835e3,02ff9ef0-1057-4bc2-b745-1c2ae41835e3,1,0,5a86abe7-db6c-43a3-9bcd-9b3647519c6b,5a86abe7-db6c-43a3-9bcd-9b3647519c6b,1,0,a6582448-734d-4a4c-a32c-c4755ca1bc93,a6582448-734d-4a4c-a32c-c4755ca1bc93,1,0,6a0b9a91-51a0-4ef4-b630-4f1b5a1da2b7,6a0b9a91-51a0-4ef4-b630-4f1b5a1da2b7,1,0,53327cc4-22b0-40f9-bae7-db483f85901c,53327cc4-22b0-40f9-bae7-db483f85901c,1,0,098d904d-95c9-459e-86d0-357ba9a40191,098d904d-95c9-459e-86d0-357ba9a40191,1,0,e9ab9d00-6e42-439b-8efc-fcacf727016d,e9ab9d00-6e42-439b-8efc-fcacf727016d,1,0,2d58033f-e15d-4a91-8165-dd311025c7c4,2d58033f-e15d-4a91-8165-dd311025c7c4,1,0,49cb3a36-90b3-4154-b571-265fc5cee21e,49cb3a36-90b3-4154-b571-265fc5cee21e,1,0,10472d2c-18ca-49b0-bd9d-c750db8498c5,10472d2c-18ca-49b0-bd9d-c750db8498c5,1,0,8efe5daf-272d-4255-b5c4-66dca7463b50,8efe5daf-272d-4255-b5c4-66dca7463b50,1,0,65af25a6-f699-4c40-b13e-3b7dff3f16fe,65af25a6-f699-4c40-b13e-3b7dff3f16fe,1,0,c4d2486d-289c-4812-b223-5ccfcd7f29e3,c4d2486d-289c-4812-b223-5ccfcd7f29e3,1,0,f9229c3e-4a47-49a4-8b14-908218012ff7,f9229c3e-4a47-49a4-8b14-908218012ff7,1,0,7c8b9203-2808-4a78-a2b1-b7a71b4f13f6,7c8b9203-2808-4a78-a2b1-b7a71b4f13f6,1,0,b9743978-ba6d-4892-bb32-f24d4a47dd50,b9743978-ba6d-4892-bb32-f24d4a47dd50,1,0,c43accb9-f33d-437f-b305-0595f8fe3032,c43accb9-f33d-437f-b305-0595f8fe3032,1,0,084a398b-836e-424c-af93-22aa39d5a15a,084a398b-836e-424c-af93-22aa39d5a15a,1,0,7da57c89-af2c-445a-96f7-39250f70306f,7da57c89-af2c-445a-96f7-39250f70306f,1,0,b5b94d94-25f7-4cfa-b1e9-6009fb848763,b5b94d94-25f7-4cfa-b1e9-6009fb848763,1,0,a2accf54-5966-42e8-ab2e-e56e415963ee,a2accf54-5966-42e8-ab2e-e56e415963ee,1,0,d8eb5329-5900-4b5d-b45e-458513dddfef,d8eb5329-5900-4b5d-b45e-458513dddfef,1,0,6d521e58-24a3-4f19-b4b0-dff84f7ca86b,6d521e58-24a3-4f19-b4b0-dff84f7ca86b,1,0,8c413fa5-9e24-4b81-aa55-0e78c5e3e20f,8c413fa5-9e24-4b81-aa55-0e78c5e3e20f,1,0,a4322f22-7de0-4018-8e06-9f1aa7cf0c07,a4322f22-7de0-4018-8e06-9f1aa7cf0c07,1,0,eaaed107-69d4-4963-be83-74519e331715,eaaed107-69d4-4963-be83-74519e331715,1,0,38cddf96-8703-4396-8c73-47fb22828a48,38cddf96-8703-4396-8c73-47fb22828a48,1,0,2c2cb793-0177-4983-91ca-9c292c5b10f1,2c2cb793-0177-4983-91ca-9c292c5b10f1,1,0,2a2e7f51-a4e5-48ec-b969-b1fca18ba9b5,2a2e7f51-a4e5-48ec-b969-b1fca18ba9b5,1,0,221fa473-3327-44e6-a033-6fdfd2be713c,221fa473-3327-44e6-a033-6fdfd2be713c,1,0,7a5973f0-7e29-44af-8e7b-70af71f704a4,7a5973f0-7e29-44af-8e7b-70af71f704a4,1,0,2b2bf0f7-0946-4492-bba0-27f007a70e64,2b2bf0f7-0946-4492-bba0-27f007a70e64,1,0,22c9a703-5ed3-4156-8fa6-476b1c1452f1,22c9a703-5ed3-4156-8fa6-476b1c1452f1,1,0,8be10d88-8c37-4444-9c89-6cbbe9913bda,8be10d88-8c37-4444-9c89-6cbbe9913bda,1,0,27089e8e-2c75-431c-b808-5d4dcba3cdca,27089e8e-2c75-431c-b808-5d4dcba3cdca,1,0,9ab3980e-a480-4f90-a8cc-bde99d5ace35,9ab3980e-a480-4f90-a8cc-bde99d5ace35,1,0,ec928563-6e35-4b84-b477-90d2481cec1c,ec928563-6e35-4b84-b477-90d2481cec1c,1,0,5d3e9678-20fe-4128-867a-3f7addaa7831,5d3e9678-20fe-4128-867a-3f7addaa7831,1,0,bb878f73-8a0f-459a-9076-ce57fe7957dc,bb878f73-8a0f-459a-9076-ce57fe7957dc,1,0,cb1d4a41-20a9-4d76-8798-d47d8858bff1,cb1d4a41-20a9-4d76-8798-d47d8858bff1,1,0,a2b4110b-4d9c-40fd-ab46-bfa08d2eb993,a2b4110b-4d9c-40fd-ab46-bfa08d2eb993,1,0,4f262b7f-927e-45f2-ad90-9d5e1b3155d1,4f262b7f-927e-45f2-ad90-9d5e1b3155d1,1,0,9f4b8e36-83ff-4694-8540-b5f47b18395f,9f4b8e36-83ff-4694-8540-b5f47b18395f,1,0,b4c026eb-4271-4366-b529-1cdfe2874563,b4c026eb-4271-4366-b529-1cdfe2874563,1,0,314b0da2-24d3-48cc-8532-d36c45eb3bf8,314b0da2-24d3-48cc-8532-d36c45eb3bf8,1,0,2e3ac3fb-9f0e-463f-95c2-9f661ce2e015,2e3ac3fb-9f0e-463f-95c2-9f661ce2e015,1,0,4077e700-ec20-4afa-8155-bf7e516a70cb,4077e700-ec20-4afa-8155-bf7e516a70cb,1,0,5198c6db-2100-4902-82c8-85c8ea555e78,5198c6db-2100-4902-82c8-85c8ea555e78,1,0,b99f2a63-54e8-490b-a0a4-1941fbc38b3f,b99f2a63-54e8-490b-a0a4-1941fbc38b3f,1,0,f0b1e9f4-2e07-44e6-88d2-c11457135781,f0b1e9f4-2e07-44e6-88d2-c11457135781,1,0,e010c0f9-f770-4fdc-8607-50838c0262ef,e010c0f9-f770-4fdc-8607-50838c0262ef,1,0,f935399f-3554-4c08-b0a6-eba13074e1b7,f935399f-3554-4c08-b0a6-eba13074e1b7,1,0,10008125-3aeb-4912-8ad6-d92d283ea09a,10008125-3aeb-4912-8ad6-d92d283ea09a,1,0,765f9584-fefa-4695-b130-dd54c3b0d79d,765f9584-fefa-4695-b130-dd54c3b0d79d,1,0,dd050ca0-8335-4654-ab5c-7babcb4824ef,dd050ca0-8335-4654-ab5c-7babcb4824ef,1,0,706cbf55-626d-4cab-b589-a2464368f6c1,706cbf55-626d-4cab-b589-a2464368f6c1,1,0,d22a0a50-220d-459e-a23a-39730a1e67c4,d22a0a50-220d-459e-a23a-39730a1e67c4,1,0,2c1c9284-ba8b-4282-a89c-429f02ea41f6,2c1c9284-ba8b-4282-a89c-429f02ea41f6,1,0,8c241467-76f7-4161-a8a1-5da4a6576b75,8c241467-76f7-4161-a8a1-5da4a6576b75,1,0,1d3b9eff-5d0b-437b-932f-0ec466e092b2,1d3b9eff-5d0b-437b-932f-0ec466e092b2,1,0,fd7e5257-024c-46de-9ff3-edd302fadba5,fd7e5257-024c-46de-9ff3-edd302fadba5,1,0,a4168057-d99f-4b55-b762-214f95ae3a30,a4168057-d99f-4b55-b762-214f95ae3a30,1,0,ab4fe549-1c07-42d9-b412-8b89ed115591,ab4fe549-1c07-42d9-b412-8b89ed115591,1,0,0335804e-efe5-4fb9-9ae9-2ddca73d77f3,0335804e-efe5-4fb9-9ae9-2ddca73d77f3,1,0,b49c589d-b45d-4aff-8899-72cfe433e9a6,b49c589d-b45d-4aff-8899-72cfe433e9a6,1,0,f71a8d47-6a6c-4b7e-90b3-5b7a3be3ccd3,f71a8d47-6a6c-4b7e-90b3-5b7a3be3ccd3,1,0,273ad3f7-c645-434d-93b0-e832134f3043,273ad3f7-c645-434d-93b0-e832134f3043,1,0,d320803b-1de4-4e66-b455-0afe39be5c41,d320803b-1de4-4e66-b455-0afe39be5c41,1,0,67e85b9a-a138-49ea-b474-04475f0f8c90,67e85b9a-a138-49ea-b474-04475f0f8c90,1,0,5d990585-02dd-4a13-8dfa-920df7d1dbb0,5d990585-02dd-4a13-8dfa-920df7d1dbb0,1,0,788a98e0-194f-466c-b4fa-bafd527aae26,788a98e0-194f-466c-b4fa-bafd527aae26,1,0,07820e9e-9d6b-4c37-909e-90dbd33e30c0,07820e9e-9d6b-4c37-909e-90dbd33e30c0,1,0,364218e0-87ba-4008-a3e3-e2351a5e04b8,364218e0-87ba-4008-a3e3-e2351a5e04b8,1,0,143f6db9-a4dc-4039-90d0-6161394a3e2f,143f6db9-a4dc-4039-90d0-6161394a3e2f,1,0,97e853dc-065f-4c6d-84cb-3d3aff367b22,97e853dc-065f-4c6d-84cb-3d3aff367b22,1,0,2f1fdf47-2627-496f-9e1f-77019abb2104,2f1fdf47-2627-496f-9e1f-77019abb2104,1,0,c996532a-8795-4136-8a40-9bb4b263277c,c996532a-8795-4136-8a40-9bb4b263277c,1,0,64c77788-fc49-4979-8163-949a891bd8b7,64c77788-fc49-4979-8163-949a891bd8b7,1,0,c39750ca-e33f-40c2-b830-119423d9a2ae,c39750ca-e33f-40c2-b830-119423d9a2ae,1,0,9372ff6b-27b6-48f3-a2a2-762e7c485766,9372ff6b-27b6-48f3-a2a2-762e7c485766,1,0,f454595a-4a3d-451b-8e8b-b17aa8314591,f454595a-4a3d-451b-8e8b-b17aa8314591,1,0,d3b7f89e-eb04-404e-bcc1-1d3557fb8d1a,d3b7f89e-eb04-404e-bcc1-1d3557fb8d1a,1,0,442f9d7b-ae8f-4074-8ece-d5aa1c66e35c,442f9d7b-ae8f-4074-8ece-d5aa1c66e35c,1,0,bc708da8-7fc6-4da1-8129-9ef6a86667af,bc708da8-7fc6-4da1-8129-9ef6a86667af,1,0,061842fe-4077-4d6e-aefe-de79409da730,061842fe-4077-4d6e-aefe-de79409da730,1,0,86249619-8981-4fc4-85fc-ce30e4b9d542,86249619-8981-4fc4-85fc-ce30e4b9d542,1,0,da6e4bff-9835-4b92-b62b-291a5d6c86fe,da6e4bff-9835-4b92-b62b-291a5d6c86fe,1,0,98aa8a80-29fa-4a54-8d0e-90d413d63da1,98aa8a80-29fa-4a54-8d0e-90d413d63da1,1,0,60af0c11-852e-4b45-afb7-251d75a87150,60af0c11-852e-4b45-afb7-251d75a87150,1,0,37e81463-a558-4b03-b0e4-82ac0e99c80c,37e81463-a558-4b03-b0e4-82ac0e99c80c,1,0,fd9177e4-1277-4f77-be3e-07e169fad918,fd9177e4-1277-4f77-be3e-07e169fad918,1,0,2177e3f0-0689-43ec-b79a-52d95f59a75a,2177e3f0-0689-43ec-b79a-52d95f59a75a,1,0,b7cfe3ee-1d3c-4c04-993a-014e9040e7ac,b7cfe3ee-1d3c-4c04-993a-014e9040e7ac,1,0,8be35c43-32e6-418d-b3d6-e53ef56babb7,8be35c43-32e6-418d-b3d6-e53ef56babb7,1,0,3e4f5fd0-af15-41ae-896e-458ce9fb7e4d,3e4f5fd0-af15-41ae-896e-458ce9fb7e4d,1,0,935d01e1-232b-480e-a6bf-c21c617c6348,935d01e1-232b-480e-a6bf-c21c617c6348,1,0,9bc7cc99-1237-4f9c-8a4e-f3ab459186ef,9bc7cc99-1237-4f9c-8a4e-f3ab459186ef,1,0,05c702a1-2c74-45d5-b2ee-fdd795b0945a,05c702a1-2c74-45d5-b2ee-fdd795b0945a,1,0,5ede72fd-2510-4c06-b625-be740bb04e29,5ede72fd-2510-4c06-b625-be740bb04e29,1,0,17f37228-b0cd-420d-bc82-b18dc04c03c9,17f37228-b0cd-420d-bc82-b18dc04c03c9,1,0,3f9b66ea-7db2-434d-8e3b-00df8eb11dbd,3f9b66ea-7db2-434d-8e3b-00df8eb11dbd,1,0,d43fb14b-2051-4ba5-8379-af6996e603b3,d43fb14b-2051-4ba5-8379-af6996e603b3,1,0,cfb01fef-b70d-41ac-82b9-d6d2e9644388,cfb01fef-b70d-41ac-82b9-d6d2e9644388,1,0,91dee0d3-14b5-4aa1-9058-8f949e7df923,91dee0d3-14b5-4aa1-9058-8f949e7df923,1,0,3fadaeb7-2c41-42a4-bfa8-c585602b1028,3fadaeb7-2c41-42a4-bfa8-c585602b1028,1,0,171a0dfc-032e-4eaf-81a2-e5e0dfde8d56,171a0dfc-032e-4eaf-81a2-e5e0dfde8d56,1,0,083c709b-ed8c-47e4-a190-421e14259e73,083c709b-ed8c-47e4-a190-421e14259e73,1,0,b98dacc7-29e1-426b-a664-0a988f18186c,b98dacc7-29e1-426b-a664-0a988f18186c,1,0,d678856d-6e7c-443f-a6e3-350bbe8af659,d678856d-6e7c-443f-a6e3-350bbe8af659,1,0,d0979762-22ce-41be-b7a4-5e9ac149d94b,d0979762-22ce-41be-b7a4-5e9ac149d94b,1,0,ae23e70c-479e-47ad-9bfa-58560a903410,ae23e70c-479e-47ad-9bfa-58560a903410,1,0,c0d83781-bbda-43f7-bf0e-5defa3d47143,c0d83781-bbda-43f7-bf0e-5defa3d47143,1,0,21fa5fdd-acbc-403b-9acb-bbf95284bd20,21fa5fdd-acbc-403b-9acb-bbf95284bd20,1,0,576a01e3-4d6d-4241-a3c4-7661ba129bcb,576a01e3-4d6d-4241-a3c4-7661ba129bcb,1,0,9f7290dd-19f4-4163-9795-fe562e84f06d,9f7290dd-19f4-4163-9795-fe562e84f06d,1,0,c3b5c81f-b787-4f63-8cba-79def0921477,c3b5c81f-b787-4f63-8cba-79def0921477,1,0,1f0cb3d4-1344-451b-a257-be3cd854acfd,1f0cb3d4-1344-451b-a257-be3cd854acfd,1,0,0131fe59-ce47-48b7-8f7e-1544bf0fa031,0131fe59-ce47-48b7-8f7e-1544bf0fa031,1,0,c8b0a1be-97c6-4a16-b1dd-31901ac61cdc,c8b0a1be-97c6-4a16-b1dd-31901ac61cdc,1,0,372150e2-526e-4424-8c54-e4b16bdd25b5,372150e2-526e-4424-8c54-e4b16bdd25b5,1,0,2f9c347d-ee82-49f2-a5eb-97f55374856f,2f9c347d-ee82-49f2-a5eb-97f55374856f,1,0,752dc569-cf84-42d7-911d-49d455f7214e,752dc569-cf84-42d7-911d-49d455f7214e,1,0,fecab2b9-27e1-44d6-9082-79c3569b7477,fecab2b9-27e1-44d6-9082-79c3569b7477,1,0,07ae092f-8517-47b7-b54c-5dbcb6506929,07ae092f-8517-47b7-b54c-5dbcb6506929,1,0,db4c25bb-d199-43ec-833d-82972de04a41,db4c25bb-d199-43ec-833d-82972de04a41,1,0,43d19685-0794-41f2-9171-bf565133718d,43d19685-0794-41f2-9171-bf565133718d,1,0,b68c15c4-4966-4f13-8912-2d479b65089a,b68c15c4-4966-4f13-8912-2d479b65089a,1,0,8f6770c2-654c-4cc7-8ed5-15b5b2e3109a,8f6770c2-654c-4cc7-8ed5-15b5b2e3109a,1,0,a89ee622-6942-411a-8566-f03d139c9e5b,a89ee622-6942-411a-8566-f03d139c9e5b,1,0,956d5336-d3c7-400b-b9a0-de4a788f9bb9,956d5336-d3c7-400b-b9a0-de4a788f9bb9,1,0,bda0a5dd-591b-4eee-bcce-028a9b82d0a1,bda0a5dd-591b-4eee-bcce-028a9b82d0a1,1,0,a178040b-c86c-4d5f-a501-fa529605058e,a178040b-c86c-4d5f-a501-fa529605058e,1,0,9d0e899f-8133-4045-8394-84eaa0981d31,9d0e899f-8133-4045-8394-84eaa0981d31,1,0,f87e3935-dae1-4192-b6a7-05e3c700c590,f87e3935-dae1-4192-b6a7-05e3c700c590,1,0,ee635706-6ee2-4956-8d58-a235f64687f6,ee635706-6ee2-4956-8d58-a235f64687f6,1,0,a5a40ca7-d665-420b-a516-1355019d6901,a5a40ca7-d665-420b-a516-1355019d6901,1,0,198ea989-5001-47ac-86b8-aa2585a5f7d7,198ea989-5001-47ac-86b8-aa2585a5f7d7,1,0,4abe448b-a225-4ac2-8cc9-c3c6c0e9b1ac,4abe448b-a225-4ac2-8cc9-c3c6c0e9b1ac,1,0,fb84c5f7-11da-4b17-979e-41e27a74e789,fb84c5f7-11da-4b17-979e-41e27a74e789,1,0,e3aa159b-0dcd-4a4f-aab8-74da6e8dd868,e3aa159b-0dcd-4a4f-aab8-74da6e8dd868,1,0,2438847d-76f6-467b-84c6-a4e03e3b024d,2438847d-76f6-467b-84c6-a4e03e3b024d,1,0,29e85fdd-5039-4c6c-a58c-97515b1f963d,29e85fdd-5039-4c6c-a58c-97515b1f963d,1,0,f1723542-d89b-4f3f-96de-38f41fa8c946,f1723542-d89b-4f3f-96de-38f41fa8c946,1,0,adf9304c-ccf8-492e-95b1-0754764586a2,adf9304c-ccf8-492e-95b1-0754764586a2,1,0,fd175112-ec8f-4088-9b21-d8135056f0c5,fd175112-ec8f-4088-9b21-d8135056f0c5,1,0,ddd82a66-1eda-409f-b6c0-e22c4bd2c1b7,ddd82a66-1eda-409f-b6c0-e22c4bd2c1b7,1,0,a2ced049-f868-4e81-b6af-eeaa363d3e1c,a2ced049-f868-4e81-b6af-eeaa363d3e1c,1,0,ea4e9e3a-5408-42fc-a5f8-48ecdd1c8b0e,ea4e9e3a-5408-42fc-a5f8-48ecdd1c8b0e,1,0,a3e962c2-d2eb-4f4c-9445-d7e6bc672591,a3e962c2-d2eb-4f4c-9445-d7e6bc672591,1,0,6e0fa31a-5081-4fc7-b5ec-563c6e4ad001,6e0fa31a-5081-4fc7-b5ec-563c6e4ad001,1,0,52606e9e-1f82-414c-897f-f3ca923fa480,52606e9e-1f82-414c-897f-f3ca923fa480,1,0,eefa26d9-bb15-4911-8772-99e49a20c57d,eefa26d9-bb15-4911-8772-99e49a20c57d,1,0,5068e74a-10e7-4035-97b0-14c91566defe,5068e74a-10e7-4035-97b0-14c91566defe,1,0,df76a1b7-312a-4e77-bac1-79befadb4495,df76a1b7-312a-4e77-bac1-79befadb4495,1,0,ab39fad8-1039-491e-982a-c49637770ec0,ab39fad8-1039-491e-982a-c49637770ec0,1,0,7d93a6ba-3ca7-45ab-a540-743c79587535,7d93a6ba-3ca7-45ab-a540-743c79587535,1,0,76b58810-0527-4dfc-8858-bac68e7e65f3,76b58810-0527-4dfc-8858-bac68e7e65f3,1,0,aba97fd9-f05e-45cd-8404-ed702070e17a,aba97fd9-f05e-45cd-8404-ed702070e17a,1,0,f5c415cd-429b-469f-9332-c43ab5d1c8d6,f5c415cd-429b-469f-9332-c43ab5d1c8d6,1,0,6de34ed8-5d6c-4bb6-af94-328e692b862e,6de34ed8-5d6c-4bb6-af94-328e692b862e,1,0,e705bde3-45c3-4ffd-a767-0320c6cc8b91,e705bde3-45c3-4ffd-a767-0320c6cc8b91,1,0,504280a1-a451-4547-ae71-e217f8fdf8f6,504280a1-a451-4547-ae71-e217f8fdf8f6,1,0,b071a9fe-0e9f-4ded-8dab-b1388fd12897,b071a9fe-0e9f-4ded-8dab-b1388fd12897,1,0,a2accd5e-e6f5-4d5f-8243-51aadfa88b00,a2accd5e-e6f5-4d5f-8243-51aadfa88b00,1,0,1123e146-6d46-4252-ba60-521454688460,1123e146-6d46-4252-ba60-521454688460,1,0,4d90d7f7-eec0-490d-96b7-8f965767a06d,4d90d7f7-eec0-490d-96b7-8f965767a06d,1,0,ebadd534-011d-41b1-94bf-38da4717b4af,ebadd534-011d-41b1-94bf-38da4717b4af,1,0,68deecfd-7564-487f-aaa5-e3cbe122475d,68deecfd-7564-487f-aaa5-e3cbe122475d,1,0,f280872c-7ab3-47fe-a171-2b0e273cf4e7,f280872c-7ab3-47fe-a171-2b0e273cf4e7,1,0,c6fda056-0949-4c8d-83bc-2091e0712674,c6fda056-0949-4c8d-83bc-2091e0712674,1,0,1dc9239f-197d-4497-a947-d03cca15b858,1dc9239f-197d-4497-a947-d03cca15b858,1,0,d3d4a50e-d1dc-4cda-8c42-2b6dffe4abca,d3d4a50e-d1dc-4cda-8c42-2b6dffe4abca,1,0,6909f796-93d2-4b01-9319-e160cb9d5a96,6909f796-93d2-4b01-9319-e160cb9d5a96,1,0,86b7bfa1-7c39-4c27-aaf2-7464fb96181b,86b7bfa1-7c39-4c27-aaf2-7464fb96181b,1,0,458e9c6b-b828-404b-be5a-c6c0aeea34c9,458e9c6b-b828-404b-be5a-c6c0aeea34c9,1,0,7262eb4d-2d2d-454c-beaa-974645813af7,7262eb4d-2d2d-454c-beaa-974645813af7,1,0,45fa9f17-eeb1-43e2-b78c-f81a341f1bff,45fa9f17-eeb1-43e2-b78c-f81a341f1bff,1,0,e402b02e-fb2b-4ccc-aa30-ef1a9cb7e17b,e402b02e-fb2b-4ccc-aa30-ef1a9cb7e17b,1,0,10d1e6bf-5ec8-44d8-ae31-0d22bccb5f60,10d1e6bf-5ec8-44d8-ae31-0d22bccb5f60,1,0,7fddef11-7b49-4911-8c66-8d2f94d3cbbd,7fddef11-7b49-4911-8c66-8d2f94d3cbbd,1,0,be438a36-2036-4f27-a9a3-37fb5ba5d6ab,be438a36-2036-4f27-a9a3-37fb5ba5d6ab,1,0,fabf9c9e-d35c-42e0-a949-6c54cb24990f,fabf9c9e-d35c-42e0-a949-6c54cb24990f,1,0,e47df890-3925-4410-ae48-63cb8e3d94f8,e47df890-3925-4410-ae48-63cb8e3d94f8,1,0,49221b2f-aae2-4bee-9a1a-18263fc74244,49221b2f-aae2-4bee-9a1a-18263fc74244,1,0,da0cd264-da2f-4044-af28-c91d2efe1d5c,da0cd264-da2f-4044-af28-c91d2efe1d5c,1,0,f1b1db38-2d9f-4409-a6d6-fd7192b1f102,f1b1db38-2d9f-4409-a6d6-fd7192b1f102,1,0,fad26b16-8638-496b-bd12-381fc6f5b71f,fad26b16-8638-496b-bd12-381fc6f5b71f,1,0,ed3cfb74-a37a-4314-a2d7-4ce717a2edd9,ed3cfb74-a37a-4314-a2d7-4ce717a2edd9,1,0,324a56c9-02d9-4177-af84-a817b8c41169,324a56c9-02d9-4177-af84-a817b8c41169,1,0,64ed8c1a-6446-4f0d-a2ef-c599e84c4909,64ed8c1a-6446-4f0d-a2ef-c599e84c4909,1,0,52fc85fb-309b-4739-bbd3-c3966657e973,52fc85fb-309b-4739-bbd3-c3966657e973,1,0,87081ab5-bdd5-4daa-88ef-8a2cba8c7d53,87081ab5-bdd5-4daa-88ef-8a2cba8c7d53,1,0,be3cfba8-e6f6-4202-ab0f-96c00fbf7462,be3cfba8-e6f6-4202-ab0f-96c00fbf7462,1,0,64ef1b5c-ec04-45eb-9998-bc573f4038d7,64ef1b5c-ec04-45eb-9998-bc573f4038d7,1,0,4fde5159-8f21-4151-8dbd-b2cd376d9392,4fde5159-8f21-4151-8dbd-b2cd376d9392,1,0,3ea799a6-6642-4388-b0a3-c2962e71ff51,3ea799a6-6642-4388-b0a3-c2962e71ff51,1,0,1e44abfe-c173-4802-b535-96849d384983,1e44abfe-c173-4802-b535-96849d384983,1,0,2751a509-037b-49aa-9ca8-e87057d6d82c,2751a509-037b-49aa-9ca8-e87057d6d82c,1,0,35f62549-eb6a-4284-a6e3-406b0d9df0cf,35f62549-eb6a-4284-a6e3-406b0d9df0cf,1,0,cee94c04-7a46-47a5-bdd5-6f0dbd884e97,cee94c04-7a46-47a5-bdd5-6f0dbd884e97,1,0,fd66995b-ee76-41d3-983f-33d84bdcbbd4,fd66995b-ee76-41d3-983f-33d84bdcbbd4,1,0,73e97918-b34e-4ad2-8591-4c219eb92f2c,73e97918-b34e-4ad2-8591-4c219eb92f2c,1,0,445cf7eb-35d0-48f8-9579-c2ec574ef324,445cf7eb-35d0-48f8-9579-c2ec574ef324,1,0,1025657e-afd2-4c7b-96d5-ccbedaca4619,1025657e-afd2-4c7b-96d5-ccbedaca4619,1,0,64839c78-b2fa-4d80-bee0-b3d3a7e5db35,64839c78-b2fa-4d80-bee0-b3d3a7e5db35,1,0,e754ad5c-cf3c-4198-af81-128475924cb0,e754ad5c-cf3c-4198-af81-128475924cb0,1,0,ed65d504-b210-4014-85ec-275ad633ef04,ed65d504-b210-4014-85ec-275ad633ef04,1,0,dc31edb1-273e-4b1a-8e69-32393479ff36,dc31edb1-273e-4b1a-8e69-32393479ff36,1,0,b369842d-c20e-4b68-9d0e-701707584b2f,b369842d-c20e-4b68-9d0e-701707584b2f,1,0,de23a2ca-4607-4488-be7b-23ea28875d02,de23a2ca-4607-4488-be7b-23ea28875d02,1,0,c0049c93-a264-44f6-8740-36a055a5b472,c0049c93-a264-44f6-8740-36a055a5b472,1,0,3c3bad38-ebd2-456d-86d9-b024c3afaedd,3c3bad38-ebd2-456d-86d9-b024c3afaedd,1,0,6b07201f-e728-4beb-a607-b05c68a645ca,6b07201f-e728-4beb-a607-b05c68a645ca,1,0,5c31cd2e-9247-4357-8c4b-3995470f00fc,5c31cd2e-9247-4357-8c4b-3995470f00fc,1,0,3ab0649b-239f-4466-b897-73c0ab628927,3ab0649b-239f-4466-b897-73c0ab628927,1,0,4c697110-8941-4d6d-ba03-f2b9e96ff82e,4c697110-8941-4d6d-ba03-f2b9e96ff82e,1,0,7ea4112d-fc41-4f1e-bd22-f04adeac1d8f,7ea4112d-fc41-4f1e-bd22-f04adeac1d8f,1,0,b172631b-da0d-42f4-ae6b-ae122a46cced,b172631b-da0d-42f4-ae6b-ae122a46cced,1,0,1a25e744-37ae-46ca-a328-ff8eced21a82,1a25e744-37ae-46ca-a328-ff8eced21a82,1,0,dddabe54-a93b-4e4b-acbb-cc522e4d7c28,dddabe54-a93b-4e4b-acbb-cc522e4d7c28,1,0,46169f0b-8514-40a1-9d27-8489cab72503,46169f0b-8514-40a1-9d27-8489cab72503,1,0,d9cf39cc-8652-4c4d-bc5b-b4e455c0083f,d9cf39cc-8652-4c4d-bc5b-b4e455c0083f,1,0,4b0d7d39-5f79-4a21-b0bb-d3142a3bc8a9,4b0d7d39-5f79-4a21-b0bb-d3142a3bc8a9,1,0,c90243af-582c-4f5a-88e7-e0cbc0555fcb,c90243af-582c-4f5a-88e7-e0cbc0555fcb,1,0,14bf4066-15cb-4165-b854-45443ee27da1,14bf4066-15cb-4165-b854-45443ee27da1,1,0,a0861dd3-ced5-485e-8719-0ad0bc3adc0d,a0861dd3-ced5-485e-8719-0ad0bc3adc0d,1,0,5a94a307-3f54-4753-8ef5-ce9f88417827,5a94a307-3f54-4753-8ef5-ce9f88417827,1,0,0f09b6b8-72ac-4461-96c4-683be403e2ff,0f09b6b8-72ac-4461-96c4-683be403e2ff,1,0,b73d0f07-9c6e-41b1-9acc-8e83dacd7528,b73d0f07-9c6e-41b1-9acc-8e83dacd7528,1,0,19d1d74a-de5f-475a-896c-a32b7d28f918,19d1d74a-de5f-475a-896c-a32b7d28f918,1,0,316553f3-bed7-4517-86ed-6520c1e536d9,316553f3-bed7-4517-86ed-6520c1e536d9,1,0,1255dbc8-29fc-4cd1-a2ed-a97c626dea5c,1255dbc8-29fc-4cd1-a2ed-a97c626dea5c,1,0,ee538127-bfa3-487a-9595-e69968595113,ee538127-bfa3-487a-9595-e69968595113,1,0,6b297ab7-7ff9-45a7-9075-ca3a1878cb2b,6b297ab7-7ff9-45a7-9075-ca3a1878cb2b,1,0,4427cab9-4eea-4415-98ef-6021a447c60c,4427cab9-4eea-4415-98ef-6021a447c60c,1,0,fe46b4da-d865-468f-badd-83644bf88faa,fe46b4da-d865-468f-badd-83644bf88faa,1,0,2851c9d4-4366-4488-926d-a7fcd3b1548c,2851c9d4-4366-4488-926d-a7fcd3b1548c,1,0,31116aa2-cfbc-48e8-886b-45c1c17508fd,31116aa2-cfbc-48e8-886b-45c1c17508fd,1,0,6aa819d3-c56d-4561-a2e4-a1188ab1295a,6aa819d3-c56d-4561-a2e4-a1188ab1295a,1,0,2ddf344d-7065-40d5-9306-23870d8fc04a,2ddf344d-7065-40d5-9306-23870d8fc04a,1,0,c630ab2d-0a20-4136-88b6-220b2cad6a71,c630ab2d-0a20-4136-88b6-220b2cad6a71,1,0,00cd1dea-bc54-475c-956d-dc5221104932,00cd1dea-bc54-475c-956d-dc5221104932,1,0,c343495b-5947-4fe7-a94b-d1f2b2455b4f,c343495b-5947-4fe7-a94b-d1f2b2455b4f,1,0,fbce7316-bb9a-40c1-af3c-352f4b559ab6,fbce7316-bb9a-40c1-af3c-352f4b559ab6,1,0,a3721457-b33b-4742-b6e1-531af10969d1,a3721457-b33b-4742-b6e1-531af10969d1,1,0,9619a603-e578-4f30-bcc6-adfddfa915c0,9619a603-e578-4f30-bcc6-adfddfa915c0,1,0,3807f865-dd2c-44f7-9238-3db191f0a186,3807f865-dd2c-44f7-9238-3db191f0a186,1,0,4a55351b-77e2-4c7c-a7d7-aac213d3c2a7,4a55351b-77e2-4c7c-a7d7-aac213d3c2a7,1,0,f79ac41b-6ab2-4afc-aa98-b70b72d78bb4,f79ac41b-6ab2-4afc-aa98-b70b72d78bb4,1,0,2c5a56d3-386e-45df-adc2-4471f52f9bdc,2c5a56d3-386e-45df-adc2-4471f52f9bdc,1,0,8f184df5-bfe8-4df3-bc7c-18218cef7650,8f184df5-bfe8-4df3-bc7c-18218cef7650,1,0,387e273a-889f-454b-8b43-feaa12025fde,387e273a-889f-454b-8b43-feaa12025fde,1,0,22474ca3-565b-4b67-a5b4-b0b959306d10,22474ca3-565b-4b67-a5b4-b0b959306d10,1,0,1c38ad75-b294-4c05-89ce-69ce4d9a291f,1c38ad75-b294-4c05-89ce-69ce4d9a291f,1,0,078d1e8f-6d27-4761-9532-b1e7a60e4c13,078d1e8f-6d27-4761-9532-b1e7a60e4c13,1,0,4262193c-58ad-47c6-8088-735d8cd037ea,4262193c-58ad-47c6-8088-735d8cd037ea,1,0,36a2b5f9-ded5-4fc3-a7bd-e12b37cd6bab,36a2b5f9-ded5-4fc3-a7bd-e12b37cd6bab,1,0,de6d1aad-39eb-46ce-87aa-d29812bb37bf,de6d1aad-39eb-46ce-87aa-d29812bb37bf,1,0,4ad859ec-cc75-4bac-9e89-397798450e48,4ad859ec-cc75-4bac-9e89-397798450e48,1,0,d93ab94c-0f55-4b80-b226-41b44c73b3ea,d93ab94c-0f55-4b80-b226-41b44c73b3ea,1,0,94cbed80-5a35-471f-b354-439a11629210,94cbed80-5a35-471f-b354-439a11629210,1,0,1162cc0a-42e5-47cb-9507-68459579f110,1162cc0a-42e5-47cb-9507-68459579f110,1,0,17f9f188-d3fd-4fe1-a00c-b0dde64a0f9e,17f9f188-d3fd-4fe1-a00c-b0dde64a0f9e,1,0,bb49dc80-4934-4f44-8f27-9a363dca8dc4,bb49dc80-4934-4f44-8f27-9a363dca8dc4,1,0,7338e497-03a7-4ed4-85a2-ca802c065a9f,7338e497-03a7-4ed4-85a2-ca802c065a9f,1,0,49fe879c-8972-4c9a-bb08-e3e5b2e5ff84,49fe879c-8972-4c9a-bb08-e3e5b2e5ff84,1,0,5249687b-9ff4-46f5-be15-dbb5d5047fd1,5249687b-9ff4-46f5-be15-dbb5d5047fd1,1,0,d33df51c-3dcd-496c-90f2-7ee05582bdf7,d33df51c-3dcd-496c-90f2-7ee05582bdf7,1,0,24b39ebd-2424-4939-8e3e-d09eb674d409,24b39ebd-2424-4939-8e3e-d09eb674d409,1,0,08c751bb-9e57-4536-901e-bb316c8e96d7,08c751bb-9e57-4536-901e-bb316c8e96d7,1,0,de0afa6f-07c6-441c-a4ca-e7ed709a8da5,de0afa6f-07c6-441c-a4ca-e7ed709a8da5,1,0,034cdcef-08e5-4751-9885-400aa69e0b94,034cdcef-08e5-4751-9885-400aa69e0b94,1,0,3e44d463-f253-4a64-8d68-631fcb66935c,3e44d463-f253-4a64-8d68-631fcb66935c,1,0,653d6483-029b-4453-a7d0-3a3c6d9d0b05,653d6483-029b-4453-a7d0-3a3c6d9d0b05,1,0,ac507771-50bd-4f8b-b72f-5954562c9131,ac507771-50bd-4f8b-b72f-5954562c9131,1,0,efefebea-2032-4006-b9ca-50a23b7da1ef,efefebea-2032-4006-b9ca-50a23b7da1ef,1,0,4c794d37-3352-4acb-a939-5e90fb682db8,4c794d37-3352-4acb-a939-5e90fb682db8,1,0,5f3fea83-6ca8-481b-9e2b-789a6fd01e2e,5f3fea83-6ca8-481b-9e2b-789a6fd01e2e,1,0,008f5068-da9c-4dac-9c0a-a50366d27cbb,008f5068-da9c-4dac-9c0a-a50366d27cbb,1,0,950b3ee3-070f-4946-8b9b-0aa2058de986,950b3ee3-070f-4946-8b9b-0aa2058de986,1,0,bd04a870-0943-4bdb-9e30-50a69daa8a13,bd04a870-0943-4bdb-9e30-50a69daa8a13,1,0,573c2153-7069-4589-8a2a-4517edca877d,573c2153-7069-4589-8a2a-4517edca877d,1,0,0a2f03c1-87d7-4589-9c47-8dd67faa1759,0a2f03c1-87d7-4589-9c47-8dd67faa1759,1,0,d1475ede-879c-4085-9980-2edaaf0eb0e9,d1475ede-879c-4085-9980-2edaaf0eb0e9,1,0,54eac28f-da81-4939-b2f9-924d3c215de5,54eac28f-da81-4939-b2f9-924d3c215de5,1,0,20d34659-1bde-4af0-be2c-da922e4ace6e,20d34659-1bde-4af0-be2c-da922e4ace6e,1,0,dec45aee-a4a8-473c-904e-15d5ff31efc3,dec45aee-a4a8-473c-904e-15d5ff31efc3,1,0,8b9318e5-c6ce-4253-9759-8ddd42468775,8b9318e5-c6ce-4253-9759-8ddd42468775,1,0,e79dd738-4e6c-411a-97a2-d0acbe4918ee,e79dd738-4e6c-411a-97a2-d0acbe4918ee,1,0,571a910a-67c7-4fe9-b06e-78893498a606,571a910a-67c7-4fe9-b06e-78893498a606,1,0,86f98256-87d1-4922-8d70-a5d2cad1c385,86f98256-87d1-4922-8d70-a5d2cad1c385,1,0,05faa67b-195a-4f46-8e47-30c4208cbc64,05faa67b-195a-4f46-8e47-30c4208cbc64,1,0,be75d0b2-c9db-4dab-9e32-dbe26d667508,be75d0b2-c9db-4dab-9e32-dbe26d667508,1,0,299c014f-996a-4a99-a5be-a7cfd5ee45e4,299c014f-996a-4a99-a5be-a7cfd5ee45e4,1,0,2569b69d-006f-478e-83b7-9163048b34bb,2569b69d-006f-478e-83b7-9163048b34bb,1,0,1ee47933-8117-4d47-9245-476c0ed3a373,1ee47933-8117-4d47-9245-476c0ed3a373,1,0,31cac1e9-eb16-489c-9322-30d1e27a80b3,31cac1e9-eb16-489c-9322-30d1e27a80b3,1,0,0d100e33-7941-41c1-962d-7672c874e9c5,0d100e33-7941-41c1-962d-7672c874e9c5,1,0,c5ac53c9-c9b2-4b90-a21e-10f1daa756c5,c5ac53c9-c9b2-4b90-a21e-10f1daa756c5,1,0,6e61d717-de36-4dce-8af9-b6c14ed76acb,6e61d717-de36-4dce-8af9-b6c14ed76acb,1,0,474518fe-9cb5-4a12-9388-bc7a64511617,474518fe-9cb5-4a12-9388-bc7a64511617,1,0,64337614-b1c9-4931-b576-448721fa4602,64337614-b1c9-4931-b576-448721fa4602,1,0,1d73b59c-0594-4ed3-b584-cf1261941e1d,1d73b59c-0594-4ed3-b584-cf1261941e1d,1,0,8ff2547f-d596-4fa1-9e12-079e1cc4c057,8ff2547f-d596-4fa1-9e12-079e1cc4c057,1,0,1ab0c8f8-b908-4618-ae88-af37b8f1224e,1ab0c8f8-b908-4618-ae88-af37b8f1224e,1,0,bd3ec5a9-161d-487e-ab1d-e5e15a6e3a7b,bd3ec5a9-161d-487e-ab1d-e5e15a6e3a7b,1,0,8d812412-6e01-4063-81ae-4b8f3a071b11,8d812412-6e01-4063-81ae-4b8f3a071b11,1,0,9a3094c0-fa79-4ad6-8fa1-c9f58f37c06f,9a3094c0-fa79-4ad6-8fa1-c9f58f37c06f,1,0,84d3ea39-442c-4b2f-8331-1cccfc429b32,84d3ea39-442c-4b2f-8331-1cccfc429b32,1,0,fda24f7a-e953-4e0f-9fb3-911f05bf0d2d,fda24f7a-e953-4e0f-9fb3-911f05bf0d2d,1,0,f237e5f9-da2a-445a-bd09-86ded0235cae,f237e5f9-da2a-445a-bd09-86ded0235cae,1,0,c4ac43ef-7d79-46f0-a885-8bc954d9d078,c4ac43ef-7d79-46f0-a885-8bc954d9d078,1,0,cd2c6006-1cbe-41ae-9ef9-c6b2af5064ee,cd2c6006-1cbe-41ae-9ef9-c6b2af5064ee,1,0,a2e426b0-3804-4914-9431-3f6ecff92ee9,a2e426b0-3804-4914-9431-3f6ecff92ee9,1,0,05507f2b-eed8-4da4-8efc-77d9d8e2daca,05507f2b-eed8-4da4-8efc-77d9d8e2daca,1,0,0440ed06-3f42-48a8-9431-fd608920b577,0440ed06-3f42-48a8-9431-fd608920b577,1,0,37be75c9-bf1a-437a-ab05-f9e3aac6f440,37be75c9-bf1a-437a-ab05-f9e3aac6f440,1,0,b85b3a58-95e4-4698-b1ae-037901ecc1b1,b85b3a58-95e4-4698-b1ae-037901ecc1b1,1,0,b77d748a-d180-432d-91c3-774e6ccf7efa,b77d748a-d180-432d-91c3-774e6ccf7efa,1,0,e5b9c1b0-4690-442c-b160-e6c587e42e57,e5b9c1b0-4690-442c-b160-e6c587e42e57,1,0,e3adb576-6b33-475b-976b-7a6783de3184,e3adb576-6b33-475b-976b-7a6783de3184,1,0,c6cef8db-0689-42a6-9f43-c86b7c3cf0e9,c6cef8db-0689-42a6-9f43-c86b7c3cf0e9,1,0,78f5a205-dffb-4009-897a-e8f36372f33c,78f5a205-dffb-4009-897a-e8f36372f33c,1,0,f7597041-f182-42fb-803a-2521c70d627d,f7597041-f182-42fb-803a-2521c70d627d,1,0,ce988b8a-d0c1-400a-9466-aa757501bb58,ce988b8a-d0c1-400a-9466-aa757501bb58,1,0,ab98d665-8da8-406e-9e0e-3e130ab393ef,ab98d665-8da8-406e-9e0e-3e130ab393ef,1,0,9e823bb6-b0c0-439e-81e4-ebd46b79b99c,9e823bb6-b0c0-439e-81e4-ebd46b79b99c,1,0,ea8beea1-7d80-4613-b2f9-79ee612e977a,ea8beea1-7d80-4613-b2f9-79ee612e977a,1,0,afd62a32-fdbb-429a-9a64-89c61a07e018,afd62a32-fdbb-429a-9a64-89c61a07e018,1,0,027cef43-99bd-48d3-a1a3-2102ac003742,027cef43-99bd-48d3-a1a3-2102ac003742,1,0,00197ea9-de76-4e2a-97bc-93e44053e35e,00197ea9-de76-4e2a-97bc-93e44053e35e,1,0,540a47b8-f6d4-4531-ac87-3f7cfbef4c8c,540a47b8-f6d4-4531-ac87-3f7cfbef4c8c,1,0,a51f7c6f-2631-4d23-becc-c0e8b711fddd,a51f7c6f-2631-4d23-becc-c0e8b711fddd,1,0,37806357-d92c-4bea-a5ef-77f138578fda,37806357-d92c-4bea-a5ef-77f138578fda,1,0,91b100e6-fbbe-4bb0-8d51-d12595a2a3e8,91b100e6-fbbe-4bb0-8d51-d12595a2a3e8,1,0,0a880538-f97f-448e-a4a9-82b0194dbe28,0a880538-f97f-448e-a4a9-82b0194dbe28,1,0,24b4dd9e-825f-471b-b15d-ae21a508d183,24b4dd9e-825f-471b-b15d-ae21a508d183,1,0,179868b7-d342-4df0-9386-c114d75faf3a,179868b7-d342-4df0-9386-c114d75faf3a,1,0,bbc4cc8c-31c2-4fcf-b86c-9ec65b2772b0,bbc4cc8c-31c2-4fcf-b86c-9ec65b2772b0,1,0,929e9199-dfd5-497d-ad77-6638d20c7336,929e9199-dfd5-497d-ad77-6638d20c7336,1,0,4d1546ee-30ff-4cf7-afd3-60b565e3cb53,4d1546ee-30ff-4cf7-afd3-60b565e3cb53,1,0,aaf51715-f468-4856-b9ae-fd66bc143633,aaf51715-f468-4856-b9ae-fd66bc143633,1,0,e9650eea-d35a-4abc-977c-fb9b2abba0e5,e9650eea-d35a-4abc-977c-fb9b2abba0e5,1,0,b00626a3-5438-40c4-8ca9-5609e9dfe476,b00626a3-5438-40c4-8ca9-5609e9dfe476,1,0,b537f309-f957-4804-9f0f-03a71aedf694,b537f309-f957-4804-9f0f-03a71aedf694,1,0,4d72bd30-8d60-4f84-9ad8-83489d9cb3fb,4d72bd30-8d60-4f84-9ad8-83489d9cb3fb,1,0,7e4afed8-5c56-4765-bcd0-a40e6121ba22,7e4afed8-5c56-4765-bcd0-a40e6121ba22,1,0,155660a1-8a63-4562-a715-d75a8af7176b,155660a1-8a63-4562-a715-d75a8af7176b,1,0,878fe826-fa99-44ad-9891-5eada9744017,878fe826-fa99-44ad-9891-5eada9744017,1,0,0d61712a-dfaf-46f1-b728-62993dd94fbe,0d61712a-dfaf-46f1-b728-62993dd94fbe,1,0,3a6cf496-09b9-4947-9df5-06d23b474558,3a6cf496-09b9-4947-9df5-06d23b474558,1,0,625b498a-33d1-4162-9525-fb7790cbb6a8,625b498a-33d1-4162-9525-fb7790cbb6a8,1,0,28223f7b-d15a-4f12-b57c-1f6d08a902f9,28223f7b-d15a-4f12-b57c-1f6d08a902f9,1,0,dd9eb5b7-5aed-4e51-9939-9ff14492d240,dd9eb5b7-5aed-4e51-9939-9ff14492d240,1,0,b2a14899-d589-4990-b85e-7bffb427e8af,b2a14899-d589-4990-b85e-7bffb427e8af,1,0,0981d114-05bd-4ee1-a8fd-398fa6620d0b,0981d114-05bd-4ee1-a8fd-398fa6620d0b,1,0,3210ba40-382e-4917-ad0f-9bd88d23dc25,3210ba40-382e-4917-ad0f-9bd88d23dc25,1,0,835e3ead-d01f-410b-937a-902dd5e66aec,835e3ead-d01f-410b-937a-902dd5e66aec,1,0,40141982-d1d6-416f-844e-19143a407ff9,40141982-d1d6-416f-844e-19143a407ff9,1,0,f5c4d4ad-dda6-4dc3-b112-61f776006f3c,f5c4d4ad-dda6-4dc3-b112-61f776006f3c,1,0,466d9fd7-188e-4f3b-a673-35db9075d537,466d9fd7-188e-4f3b-a673-35db9075d537,1,0,1c2e2c7d-c9d2-46a6-81f9-30078ca511c7,1c2e2c7d-c9d2-46a6-81f9-30078ca511c7,1,0,09d3717a-d6f9-42fd-ae9e-df5658fa3981,09d3717a-d6f9-42fd-ae9e-df5658fa3981,1,0,9b26aa5f-1e77-4261-adf6-6f2f24f5af33,9b26aa5f-1e77-4261-adf6-6f2f24f5af33,1,0,b6b5e6c1-3967-4c2f-b8bc-0acc96afe240,b6b5e6c1-3967-4c2f-b8bc-0acc96afe240,1,0,de355360-f87a-4b0d-a37c-d0a091e7e984,de355360-f87a-4b0d-a37c-d0a091e7e984,1,0,8819399f-4803-413c-ad5e-7fa2c8878e5f,8819399f-4803-413c-ad5e-7fa2c8878e5f,1,0,99ff834a-f030-4af3-9b7d-f92a03f7c6f4,99ff834a-f030-4af3-9b7d-f92a03f7c6f4,1,0,afea5f32-22ff-4940-8156-3ec8b9c7bbb9,afea5f32-22ff-4940-8156-3ec8b9c7bbb9,1,0,fa01c28c-44d1-4fa9-b167-73d6cecb7730,fa01c28c-44d1-4fa9-b167-73d6cecb7730,1,0,d82c675e-7d38-417c-9cfc-6af0e86addfd,d82c675e-7d38-417c-9cfc-6af0e86addfd,1,0,319c4428-9463-4aa4-a87a-2749c49f4069,319c4428-9463-4aa4-a87a-2749c49f4069,1,0,497deeb7-0630-4f72-bcdb-ebacf8963d79,497deeb7-0630-4f72-bcdb-ebacf8963d79,1,0,ef471953-7c99-40f9-a31d-f50ed8ba3fc5,ef471953-7c99-40f9-a31d-f50ed8ba3fc5,1,0,1e70a177-cacc-4416-aef0-2a8df235ae77,1e70a177-cacc-4416-aef0-2a8df235ae77,1,0,98393093-7ba6-4b4d-86be-ee5826cd8cd5,98393093-7ba6-4b4d-86be-ee5826cd8cd5,1,0,87de486d-3f35-4432-a7cd-9d3832db63cf,87de486d-3f35-4432-a7cd-9d3832db63cf,1,0,246f17a0-93a7-4e2c-8fa6-f57405f0abeb,246f17a0-93a7-4e2c-8fa6-f57405f0abeb,1,0,ea6c4830-a34d-4026-a0ca-5cf7e44f089d,ea6c4830-a34d-4026-a0ca-5cf7e44f089d,1,0,bb7ce04a-8143-4c0b-a196-1b57f1640142,bb7ce04a-8143-4c0b-a196-1b57f1640142,1,0,4872f12c-705c-4dd3-802f-d27496a0d634,4872f12c-705c-4dd3-802f-d27496a0d634,1,0,3bacfd93-dfc7-4154-9d3f-b61ddc5c6721,3bacfd93-dfc7-4154-9d3f-b61ddc5c6721,1,0,fc65918a-2ad1-47b1-980d-5afe63579964,fc65918a-2ad1-47b1-980d-5afe63579964,1,0,7ece6efe-16a1-4294-8c28-3fa6427ba9f0,7ece6efe-16a1-4294-8c28-3fa6427ba9f0,1,0,61094d92-b1e6-45b9-9258-38a7bb1d6469,61094d92-b1e6-45b9-9258-38a7bb1d6469,1,0,4791b5d4-3568-4420-8c25-89ecce7c6353,4791b5d4-3568-4420-8c25-89ecce7c6353,1,0,0c0bbfba-c1c4-4bb5-a813-10da4bef7911,0c0bbfba-c1c4-4bb5-a813-10da4bef7911,1,0,f9ada91a-e673-4821-9bce-cb0dd75ca28b,f9ada91a-e673-4821-9bce-cb0dd75ca28b,1,0,9fcf68bb-43e2-4cd1-89ec-8797ad9c0e8b,9fcf68bb-43e2-4cd1-89ec-8797ad9c0e8b,1,0,90ce635a-0277-4056-980d-d1a16d91cb30,90ce635a-0277-4056-980d-d1a16d91cb30,1,0,e61a8360-a0f8-4d86-b91a-2ae9b8552bf0,e61a8360-a0f8-4d86-b91a-2ae9b8552bf0,1,0,1e77e873-632c-482b-8f46-8f8cc3cc8cef,1e77e873-632c-482b-8f46-8f8cc3cc8cef,1,0,00605607-03ab-43fc-ba08-9fc32f582d0a,00605607-03ab-43fc-ba08-9fc32f582d0a,1,0,5ab0a910-74ab-4af0-b5a3-40845a789fde,5ab0a910-74ab-4af0-b5a3-40845a789fde,1,0,bb659006-c11e-4427-8d86-229ba43ef679,bb659006-c11e-4427-8d86-229ba43ef679,1,0,766208a3-2780-427b-a7d3-93abe99d236b,766208a3-2780-427b-a7d3-93abe99d236b,1,0,63ce4c3c-5bad-409c-904f-18f34cf1da78,63ce4c3c-5bad-409c-904f-18f34cf1da78,1,0,62bddcee-bef6-42cc-9ba3-e99b8160dcc2,62bddcee-bef6-42cc-9ba3-e99b8160dcc2,1,0,26ac22f9-0bbb-4671-b446-626e345e2461,26ac22f9-0bbb-4671-b446-626e345e2461,1,0,0d63ee6d-e17f-4a86-b384-adf9793f3331,0d63ee6d-e17f-4a86-b384-adf9793f3331,1,0,f152945b-2a7b-449e-a915-176166af7bac,f152945b-2a7b-449e-a915-176166af7bac,1,0,77f5d86a-7fae-4490-9740-0e31102dab5c,77f5d86a-7fae-4490-9740-0e31102dab5c,1,0,5a54bc1a-d178-412c-bf4a-cf92d7f141aa,5a54bc1a-d178-412c-bf4a-cf92d7f141aa,1,0,24be43ec-d39e-46aa-9c11-2536b835e515,24be43ec-d39e-46aa-9c11-2536b835e515,1,0,c9ca80ef-c7b7-4425-b5c0-3d13af82f291,c9ca80ef-c7b7-4425-b5c0-3d13af82f291,1,0,df9af3ee-6a69-4a03-8ff5-0735e9a38013,df9af3ee-6a69-4a03-8ff5-0735e9a38013,1,0,1b27eb77-d535-43a5-8ae1-fa2fec15d92c,1b27eb77-d535-43a5-8ae1-fa2fec15d92c,1,0,7743fe24-b941-4dad-bc76-05fb6b26b1d7,7743fe24-b941-4dad-bc76-05fb6b26b1d7,1,0,5bf2da0d-f318-4036-9234-8a3a6eca88b2,5bf2da0d-f318-4036-9234-8a3a6eca88b2,1,0,288525fc-d3fa-4c8e-a1d7-d2d1ef4cd0ef,288525fc-d3fa-4c8e-a1d7-d2d1ef4cd0ef,1,0,c3634571-6fe5-45ab-9362-161305eef661,c3634571-6fe5-45ab-9362-161305eef661,1,0,ec11342f-594f-416f-a10f-bd1bfa695c08,ec11342f-594f-416f-a10f-bd1bfa695c08,1,0,31c3ac44-204e-43fd-bca3-fd18fa091c58,31c3ac44-204e-43fd-bca3-fd18fa091c58,1,0,74f03c35-5da0-406e-a938-e8e5d49975ef,74f03c35-5da0-406e-a938-e8e5d49975ef,1,0,c9ab3890-6d16-431f-ab2b-b5058e6202a4,c9ab3890-6d16-431f-ab2b-b5058e6202a4,1,0,5ee9eed7-3c6c-4264-ab9a-6f24f9c80598,5ee9eed7-3c6c-4264-ab9a-6f24f9c80598,1,0,ab3221d4-3ca7-4ddd-8d62-7d24f219e28f,ab3221d4-3ca7-4ddd-8d62-7d24f219e28f,1,0,a1029dc6-0dec-47bd-9cd7-a3ffefc6efc4,a1029dc6-0dec-47bd-9cd7-a3ffefc6efc4,1,0,e53e73e5-2d9f-4ae4-88c0-adbcfa4f8b8c,e53e73e5-2d9f-4ae4-88c0-adbcfa4f8b8c,1,0,36f250c0-a591-4b8c-adbc-1ced113ad89a,36f250c0-a591-4b8c-adbc-1ced113ad89a,1,0,3c33adc7-abea-4e0f-9e5d-d8f10abb63df,3c33adc7-abea-4e0f-9e5d-d8f10abb63df,1,0,4090c6f7-1d25-4b17-9baa-18daa0640b0f,4090c6f7-1d25-4b17-9baa-18daa0640b0f,1,0,26125e58-dfc8-4bbb-a3a4-80616471746e,26125e58-dfc8-4bbb-a3a4-80616471746e,1,0,b1c699cd-efdc-461c-ad37-10bfd4bc9674,b1c699cd-efdc-461c-ad37-10bfd4bc9674,1,0,6add1920-5073-4b1e-b7e0-13bf1e65e4c3,6add1920-5073-4b1e-b7e0-13bf1e65e4c3,1,0,f12c946c-98e4-4da6-8a88-c555e9dc3bdd,f12c946c-98e4-4da6-8a88-c555e9dc3bdd,1,0,ec5718b7-1c4d-4bdc-9426-40a339bb29cf,ec5718b7-1c4d-4bdc-9426-40a339bb29cf,1,0,ecd8772d-e33f-426f-a87a-e28bd94d5fdf,ecd8772d-e33f-426f-a87a-e28bd94d5fdf,1,0,96661303-1286-4f84-93b7-0e6da2bd7893,96661303-1286-4f84-93b7-0e6da2bd7893,1,0,68076431-36e6-46dc-92cb-e0d8e605bf66,68076431-36e6-46dc-92cb-e0d8e605bf66,1,0,239fa55a-6572-4e5c-9918-c2e14063c76d,239fa55a-6572-4e5c-9918-c2e14063c76d,1,0,8211a1b6-c3b1-466b-8d11-22603fb50c7a,8211a1b6-c3b1-466b-8d11-22603fb50c7a,1,0,7e7dfcb5-04eb-40f4-8f4c-f29644e81473,7e7dfcb5-04eb-40f4-8f4c-f29644e81473,1,0,daef68a3-c6c3-450d-b8fd-7af2a2f5572e,daef68a3-c6c3-450d-b8fd-7af2a2f5572e,1,0,a83cb338-5707-42c9-9e88-11f6c68fcc32,a83cb338-5707-42c9-9e88-11f6c68fcc32,1,0,e0c54cdd-32ab-4c83-a0cd-454139416a58,e0c54cdd-32ab-4c83-a0cd-454139416a58,1,0,85488f67-4b7b-4803-bd21-664a4409cee6,85488f67-4b7b-4803-bd21-664a4409cee6,1,0,79d80ade-cdc1-4445-8bfd-f27dd3627083,79d80ade-cdc1-4445-8bfd-f27dd3627083,1,0,2b56997c-c791-4afe-942c-526421242b97,2b56997c-c791-4afe-942c-526421242b97,1,0,36b15776-5211-4afa-9b6c-c042121218c0,36b15776-5211-4afa-9b6c-c042121218c0,1,0,422a0e10-361f-46ba-b92e-3088d81e12a4,422a0e10-361f-46ba-b92e-3088d81e12a4,1,0,f37b7b25-abd2-4e19-9712-78aafceb4f43,f37b7b25-abd2-4e19-9712-78aafceb4f43,1,0,7cd4c6ea-5795-4bea-a159-1e66650c42fe,7cd4c6ea-5795-4bea-a159-1e66650c42fe,1,0,091fcffa-da7e-4375-bf0b-11cc4950b5ad,091fcffa-da7e-4375-bf0b-11cc4950b5ad,1,0,57e91491-73b6-43f7-b7f8-26efec56ce9e,57e91491-73b6-43f7-b7f8-26efec56ce9e,1,0,43b8af02-21f6-41c0-8e6d-758411f5188e,43b8af02-21f6-41c0-8e6d-758411f5188e,1,0,9952a9cc-6d02-4d84-9bca-76c67c6af29a,9952a9cc-6d02-4d84-9bca-76c67c6af29a,1,0,3bd83ceb-9f87-49e2-9e3e-1c43efeaba9b,3bd83ceb-9f87-49e2-9e3e-1c43efeaba9b,1,0,35c9e0e3-e454-4b5e-a39d-8a5f396ab841,35c9e0e3-e454-4b5e-a39d-8a5f396ab841,1,0,da031ebd-4aba-40e6-acb9-245cf73c4423,da031ebd-4aba-40e6-acb9-245cf73c4423,1,0,59d47246-e522-4baa-96b3-d7e93279e3ec,59d47246-e522-4baa-96b3-d7e93279e3ec,1,0,c222b2c0-5e92-4022-b2f7-49967b5a9de3,c222b2c0-5e92-4022-b2f7-49967b5a9de3,1,0,e9bf314a-a4d1-4fb8-a84c-84ac7df6c456,e9bf314a-a4d1-4fb8-a84c-84ac7df6c456,1,0,47432cc4-7373-4234-b812-49f7e279a6f0,47432cc4-7373-4234-b812-49f7e279a6f0,1,0,2dec3aa6-f4e3-4574-91e7-1270d3c4f184,2dec3aa6-f4e3-4574-91e7-1270d3c4f184,1,0,ce1523eb-89b3-45ec-903a-9e5fa397e44e,ce1523eb-89b3-45ec-903a-9e5fa397e44e,1,0,3984249d-d8f7-4cee-939e-88fda2f9cfa4,3984249d-d8f7-4cee-939e-88fda2f9cfa4,1,0,a0548550-f136-4c70-8ef7-f3fd8d74f8f7,a0548550-f136-4c70-8ef7-f3fd8d74f8f7,1,0,9d793866-7b33-45a3-a7bf-02dc6e810a78,9d793866-7b33-45a3-a7bf-02dc6e810a78,1,0,7bdd965e-1f6b-45d6-be1c-3ccf0d72db35,7bdd965e-1f6b-45d6-be1c-3ccf0d72db35,1,0,7bc35350-6452-44b0-ba62-ad5446e1e507,7bc35350-6452-44b0-ba62-ad5446e1e507,1,0,ce40340d-f5c9-404c-9d68-8bf5a27d3fd4,ce40340d-f5c9-404c-9d68-8bf5a27d3fd4,1,0,36e39b8e-68ae-4a6e-9c64-39d4298fe6cf,36e39b8e-68ae-4a6e-9c64-39d4298fe6cf,1,0,d687f818-f5cf-46ef-9079-58424d5f0855,d687f818-f5cf-46ef-9079-58424d5f0855,1,0,afd574d1-81af-45c3-aea6-b1e0d2c19863,afd574d1-81af-45c3-aea6-b1e0d2c19863,1,0,f93741c9-ab94-464b-b0d4-4af99c9f92d5,f93741c9-ab94-464b-b0d4-4af99c9f92d5,1,0,0fddbd8d-12dd-4af1-9e34-feebf4bc38b1,0fddbd8d-12dd-4af1-9e34-feebf4bc38b1,1,0,2e9548a6-1fd8-4430-8864-91bde0d2a7a1,2e9548a6-1fd8-4430-8864-91bde0d2a7a1,1,0,c59fd3f8-c734-49d3-90ba-e608a22ac981,c59fd3f8-c734-49d3-90ba-e608a22ac981,1,0,b26235ed-374c-44ab-8b3c-01d7c4d82d4c,b26235ed-374c-44ab-8b3c-01d7c4d82d4c,1,0,5056db9f-9ebe-4cca-98f0-5f4817a1cba4,5056db9f-9ebe-4cca-98f0-5f4817a1cba4,1,0,475f76ea-f494-41f1-9b65-f39907e5a427,475f76ea-f494-41f1-9b65-f39907e5a427,1,0,986280d1-41bb-4b15-a5ae-516d6a04c1f4,986280d1-41bb-4b15-a5ae-516d6a04c1f4,1,0,43bfd29a-d254-4c33-8639-200b483578c1,43bfd29a-d254-4c33-8639-200b483578c1,1,0,6a274167-7f80-4613-9890-259ffd8ccfc4,6a274167-7f80-4613-9890-259ffd8ccfc4,1,0,00696255-ea14-4fee-8633-0962f3c441d1,00696255-ea14-4fee-8633-0962f3c441d1,1,0,4e90e1ab-b1ec-4795-ad45-1db151a5492c,4e90e1ab-b1ec-4795-ad45-1db151a5492c,1,0,91791e56-ca80-4d90-b8a8-16145f6a9721,91791e56-ca80-4d90-b8a8-16145f6a9721,1,0,b242c6a2-5ac9-4edb-b5dd-24eda8162151,b242c6a2-5ac9-4edb-b5dd-24eda8162151,1,0,8d080f3c-06ed-48bf-9709-eea73d676741,8d080f3c-06ed-48bf-9709-eea73d676741,1,0,57b31a5d-9fdc-43d2-ae81-67157822c4b6,57b31a5d-9fdc-43d2-ae81-67157822c4b6,1,0,d4e2da66-9a70-459f-a873-cb4ad71d17b2,d4e2da66-9a70-459f-a873-cb4ad71d17b2,1,0,a84a91d2-d326-4bf4-82e6-d573ee35d090,a84a91d2-d326-4bf4-82e6-d573ee35d090,1,0,fef27478-ddfd-4ad9-8161-148761f29698,fef27478-ddfd-4ad9-8161-148761f29698,1,0,39cbda23-db3f-4ddd-8981-8540247406db,39cbda23-db3f-4ddd-8981-8540247406db,1,0,c8a18d99-62ff-45a4-acb5-48e3310c1b53,c8a18d99-62ff-45a4-acb5-48e3310c1b53,1,0,a6eb0cb1-80f0-4390-80ff-7af53f8e63c3,a6eb0cb1-80f0-4390-80ff-7af53f8e63c3,1,0,3500c6fa-813a-49dd-a4bf-163500db5b7f,3500c6fa-813a-49dd-a4bf-163500db5b7f,1,0,1d02493a-dd89-4a51-b75e-9c49f9818b95,1d02493a-dd89-4a51-b75e-9c49f9818b95,1,0,2845c5d1-e836-4499-bcae-f3c8fdae75ee,2845c5d1-e836-4499-bcae-f3c8fdae75ee,1,0,fe4e8e4e-9471-4583-b9b3-576007db08ee,fe4e8e4e-9471-4583-b9b3-576007db08ee,1,0,49deaaa8-6d50-4b25-8153-6712d88fb0fb,49deaaa8-6d50-4b25-8153-6712d88fb0fb,1,0,1eeb7634-e924-4ad8-92e0-1c54c22b1ba6,1eeb7634-e924-4ad8-92e0-1c54c22b1ba6,1,0,46a06de8-06fd-4b49-835f-4f24b832b3c4,46a06de8-06fd-4b49-835f-4f24b832b3c4,1,0,3845a567-4375-4c3a-af61-5b82674060ab,3845a567-4375-4c3a-af61-5b82674060ab,1,0,ab210fb8-4fc4-47f8-b8ef-3a00eeb0ab8b,ab210fb8-4fc4-47f8-b8ef-3a00eeb0ab8b,1,0,a835a3a7-989b-4247-b836-d23bba2f391a,a835a3a7-989b-4247-b836-d23bba2f391a,1,0,58f5c354-8f1d-4064-ba35-527ea3d2f4a9,58f5c354-8f1d-4064-ba35-527ea3d2f4a9,1,0,9b149c20-9328-4e2d-a34b-95c883ae4dcc,9b149c20-9328-4e2d-a34b-95c883ae4dcc,1,0,dd6fdc0d-49bb-4fa1-aa17-bd9dc38a0992,dd6fdc0d-49bb-4fa1-aa17-bd9dc38a0992,1,0,f8dbf226-ea56-4b15-baf1-a41fceba2a32,f8dbf226-ea56-4b15-baf1-a41fceba2a32,1,0,1422999b-9977-4bed-9990-b46bd0ec7471,1422999b-9977-4bed-9990-b46bd0ec7471,1,0,4c48db2f-2b79-4c6f-b8ee-002810c6190c,4c48db2f-2b79-4c6f-b8ee-002810c6190c,1,0,d0d90cbf-21fc-47cb-8e1c-549e67a1bf0c,d0d90cbf-21fc-47cb-8e1c-549e67a1bf0c,1,0,cf48ae02-ecb0-4db9-92da-585f89cddb70,cf48ae02-ecb0-4db9-92da-585f89cddb70,1,0,5650c5c7-3f43-4ec9-8b64-003c5467d06a,5650c5c7-3f43-4ec9-8b64-003c5467d06a,1,0,5bac3798-1193-4d74-bbdd-40aba11d742c,5bac3798-1193-4d74-bbdd-40aba11d742c,1,0,514f3514-ba90-493e-b0dd-2d02c6ba4d1d,514f3514-ba90-493e-b0dd-2d02c6ba4d1d,1,0,032de836-80a8-46ce-9e40-b3b6ac5f9e1e,032de836-80a8-46ce-9e40-b3b6ac5f9e1e,1,0,962c2c55-6a16-46f6-9ce0-67d1984b530e,962c2c55-6a16-46f6-9ce0-67d1984b530e,1,0,27e906c2-ea0e-489e-b869-547c48c29518,27e906c2-ea0e-489e-b869-547c48c29518,1,0,553ebd03-267b-4ced-805e-be7eca6db18f,553ebd03-267b-4ced-805e-be7eca6db18f,1,0,8bf95fa7-1067-45b3-82ea-286192f97e06,8bf95fa7-1067-45b3-82ea-286192f97e06,1,0,73996d67-4d70-4ce5-a58a-d70f44484f1e,73996d67-4d70-4ce5-a58a-d70f44484f1e,1,0,5e86a443-bd0f-411d-b1b9-41bfa0cf1a2f,5e86a443-bd0f-411d-b1b9-41bfa0cf1a2f,1,0,fcaecd43-b938-4680-93be-963db5218f35,fcaecd43-b938-4680-93be-963db5218f35,1,0,63415525-46a2-4d70-bdab-665945a9185c,63415525-46a2-4d70-bdab-665945a9185c,1,0,27e37fde-daf0-47fa-865c-3cd86151f5be,27e37fde-daf0-47fa-865c-3cd86151f5be,1,0,b3b63074-984a-48d2-ba5b-d69dd0b8067e,b3b63074-984a-48d2-ba5b-d69dd0b8067e,1,0,fc4a9f03-c81f-4201-814c-c6d5a5029168,fc4a9f03-c81f-4201-814c-c6d5a5029168,1,0,abba612c-137a-4dff-89f3-445945c30859,abba612c-137a-4dff-89f3-445945c30859,1,0,c4753515-a483-453e-a48b-b12d8ef48fd9,c4753515-a483-453e-a48b-b12d8ef48fd9,1,0,9b0e9fec-8261-4e20-9556-754a46d11c12,9b0e9fec-8261-4e20-9556-754a46d11c12,1,0,2d9048eb-abdf-4980-96ed-788fbb0f4ea7,2d9048eb-abdf-4980-96ed-788fbb0f4ea7,1,0,98c3bc52-2351-460c-8b8e-0d3f45ca3131,98c3bc52-2351-460c-8b8e-0d3f45ca3131,1,0,d1ade16c-bd56-46e5-874f-3117c5653192,d1ade16c-bd56-46e5-874f-3117c5653192,1,0,339398c0-6407-483c-82f7-266ef08b8657,339398c0-6407-483c-82f7-266ef08b8657,1,0,4f0a8f8c-68cb-4afe-b487-64e7ceeef9ab,4f0a8f8c-68cb-4afe-b487-64e7ceeef9ab,1,0,764bf84f-3aa5-4023-a15a-b546f8837141,764bf84f-3aa5-4023-a15a-b546f8837141,1,0,b1ff31b9-c9f2-4be4-ac9a-62faa1d1eb81,b1ff31b9-c9f2-4be4-ac9a-62faa1d1eb81,1,0,c14ea7a0-1fb6-4d54-82d6-7f12f11b0c0b,c14ea7a0-1fb6-4d54-82d6-7f12f11b0c0b,1,0,29645810-44aa-402c-9561-7819d6f4a7ab,29645810-44aa-402c-9561-7819d6f4a7ab,1,0,46bf4911-5200-44ac-9b4d-eb0089c12e34,46bf4911-5200-44ac-9b4d-eb0089c12e34,1,0,6e1685bd-7269-401c-b36e-def6a36b41d5,6e1685bd-7269-401c-b36e-def6a36b41d5,1,0,9d77103a-9921-4f6c-98fc-d7f42f0f2d8d,9d77103a-9921-4f6c-98fc-d7f42f0f2d8d,1,0,e03b6592-b597-4795-a78e-775d4f2258db,e03b6592-b597-4795-a78e-775d4f2258db,1,0,6ae9e86a-a42f-4de0-a891-6abe1ed16cdd,6ae9e86a-a42f-4de0-a891-6abe1ed16cdd,1,0,3b207d5f-6584-4cf2-9173-20235484f9f4,3b207d5f-6584-4cf2-9173-20235484f9f4,1,0,878d9efe-b0e7-487f-b8f7-83470c131e09,878d9efe-b0e7-487f-b8f7-83470c131e09,1,0,dc72eb52-527f-438d-8750-c9f8f885d4ca,dc72eb52-527f-438d-8750-c9f8f885d4ca,1,0,0fd93c83-0c22-4ac0-b0a2-f9f9fe35a478,0fd93c83-0c22-4ac0-b0a2-f9f9fe35a478,1,0,45b9ede4-3776-4d26-974b-0ce724f62af6,45b9ede4-3776-4d26-974b-0ce724f62af6,1,0,a75aa04b-a04e-4c21-8a4c-c8cfefcd7c52,a75aa04b-a04e-4c21-8a4c-c8cfefcd7c52,1,0,d35a861d-bc36-4811-97c9-4a9bc58a89f4,d35a861d-bc36-4811-97c9-4a9bc58a89f4,1,0,3b02a8f9-572a-44d4-b8ee-6e1a7459e235,3b02a8f9-572a-44d4-b8ee-6e1a7459e235,1,0,609c7552-ad78-489c-93e2-51b672e82082,609c7552-ad78-489c-93e2-51b672e82082,1,0,8270573d-8ed6-449d-853b-462d2dabaaa9,8270573d-8ed6-449d-853b-462d2dabaaa9,1,0,baeec6cd-b220-4240-95f2-3a0c1ee06c2e,baeec6cd-b220-4240-95f2-3a0c1ee06c2e,1,0,f2502463-67e4-4bfe-8ad5-fb80aa73975a,f2502463-67e4-4bfe-8ad5-fb80aa73975a,1,0,59e885e6-d978-40c2-95b6-35fc61074fb4,59e885e6-d978-40c2-95b6-35fc61074fb4,1,0,267dc512-9ee1-4bc1-9034-3effb7fb2949,267dc512-9ee1-4bc1-9034-3effb7fb2949,1,0,0f211e73-5be9-4015-93e7-ccf63e793cb6,0f211e73-5be9-4015-93e7-ccf63e793cb6,1,0,6574d8f4-fb97-4a26-b166-711fad63aa07,6574d8f4-fb97-4a26-b166-711fad63aa07,1,0,fb3eddaf-3241-4d59-8314-97a5ae9258c4,fb3eddaf-3241-4d59-8314-97a5ae9258c4,1,0,c2d1db76-93d3-4781-9c57-889f923e51de,c2d1db76-93d3-4781-9c57-889f923e51de,1,0,d7813707-822b-4e27-9ed9-d37d2d8c70e6,d7813707-822b-4e27-9ed9-d37d2d8c70e6,1,0,f874497f-9f25-4c02-a5d2-b2b3b08995b7,f874497f-9f25-4c02-a5d2-b2b3b08995b7,1,0,a3b0494c-f436-45ea-9577-4c0c86b057c9,a3b0494c-f436-45ea-9577-4c0c86b057c9,1,0,5101c142-b25c-4bef-80e7-7407f2c15c90,5101c142-b25c-4bef-80e7-7407f2c15c90,1,0,6d7872f1-fd54-41c4-8253-5f2b125f31ae,6d7872f1-fd54-41c4-8253-5f2b125f31ae,1,0,0c218200-27a8-4f71-9b09-3632dd453644,0c218200-27a8-4f71-9b09-3632dd453644,1,0,2d8a74e5-eb29-448b-b4c0-1f41fa171b5e,2d8a74e5-eb29-448b-b4c0-1f41fa171b5e,1,0,b5d30250-18ab-4af1-b99a-ff5dba334d1f,b5d30250-18ab-4af1-b99a-ff5dba334d1f,1,0,2111e188-6b21-4a43-8e5d-befa17c4bbb8,2111e188-6b21-4a43-8e5d-befa17c4bbb8,1,0,bdd6a82e-c5c5-4ce6-b7ea-51e5c831e937,bdd6a82e-c5c5-4ce6-b7ea-51e5c831e937,1,0,a5b110af-ca1e-4cc0-bfd7-7bf0829905df,a5b110af-ca1e-4cc0-bfd7-7bf0829905df,1,0,a018eb35-75b5-47ce-af7d-5e59b27c753f,a018eb35-75b5-47ce-af7d-5e59b27c753f,1,0,a20d8863-4208-4865-be46-e00ed44389e5,a20d8863-4208-4865-be46-e00ed44389e5,1,0,519c3950-0907-49d8-ab35-1d1bf15d4602,519c3950-0907-49d8-ab35-1d1bf15d4602,1,0,55372293-0f58-463e-9a7d-404b338b4155,55372293-0f58-463e-9a7d-404b338b4155,1,0,feecc066-7dec-45ff-a88a-41221a05d0f4,feecc066-7dec-45ff-a88a-41221a05d0f4,1,0,b2dbc40b-e5bd-40fa-9365-374c25a4d961,b2dbc40b-e5bd-40fa-9365-374c25a4d961,1,0,fd9ce2ed-8f31-4b75-8a62-6563f4de92fd,fd9ce2ed-8f31-4b75-8a62-6563f4de92fd,1,0,936f1aa5-7516-444b-b451-1162fa5d705f,936f1aa5-7516-444b-b451-1162fa5d705f,1,0,dd8e0f41-51a3-4bf2-a32e-084f9ad09be7,dd8e0f41-51a3-4bf2-a32e-084f9ad09be7,1,0,9e323b0d-4e3b-45d4-9705-aa30e63014f5,9e323b0d-4e3b-45d4-9705-aa30e63014f5,1,0,5afa798a-958e-4e0c-a380-0104f4c037a7,5afa798a-958e-4e0c-a380-0104f4c037a7,1,0,c0295fd9-c749-41b3-8d0d-6af16f484b1f,c0295fd9-c749-41b3-8d0d-6af16f484b1f,1,0,bd32a863-3090-432d-89c4-356ba86a0bdc,bd32a863-3090-432d-89c4-356ba86a0bdc,1,0,4621bf5a-46b5-4b82-8ae4-cc8e11e81ba0,4621bf5a-46b5-4b82-8ae4-cc8e11e81ba0,1,0,ed5465b4-a556-4078-ab18-49fef2afba2e,ed5465b4-a556-4078-ab18-49fef2afba2e,1,0,7368ab8f-59d5-4270-a43b-0f3e422169ed,7368ab8f-59d5-4270-a43b-0f3e422169ed,1,0,eeb0571b-1b74-4889-b8b5-f94186d692d7,eeb0571b-1b74-4889-b8b5-f94186d692d7,1,0,9ef3b72c-caa3-486b-9917-04c00f6689c1,9ef3b72c-caa3-486b-9917-04c00f6689c1,1,0,cb3039d8-4b11-4d03-b0ca-eae5dfc01b0a,cb3039d8-4b11-4d03-b0ca-eae5dfc01b0a,1,0,9245417f-f247-47ba-a1b4-a17ec2e8776c,9245417f-f247-47ba-a1b4-a17ec2e8776c,1,0,a4b721d7-b119-47eb-80e0-7db34c83964f,a4b721d7-b119-47eb-80e0-7db34c83964f,1,0,512629d1-e8b7-4f66-b613-b8c0cb9c250b,512629d1-e8b7-4f66-b613-b8c0cb9c250b,1,0,b7cf4684-4432-4658-9c06-b315d470a3a6,b7cf4684-4432-4658-9c06-b315d470a3a6,1,0,d3bc8211-54d8-47dd-aecf-5da72b65195f,d3bc8211-54d8-47dd-aecf-5da72b65195f,1,0,33f11da8-f670-4ec3-9d40-96fce031c60f,33f11da8-f670-4ec3-9d40-96fce031c60f,1,0,97cbd5b5-5a39-418c-93b5-f9934fa1ba4e,97cbd5b5-5a39-418c-93b5-f9934fa1ba4e,1,0,3734619b-7059-4547-8b97-0b3393389d4d,3734619b-7059-4547-8b97-0b3393389d4d,1,0,a30bf95f-aabd-4da0-8287-61e08f9362fb,a30bf95f-aabd-4da0-8287-61e08f9362fb,1,0,f5a7df18-2ddb-4053-9aeb-57fc37ae557e,f5a7df18-2ddb-4053-9aeb-57fc37ae557e,1,0,4078867c-2972-47f9-bebd-935a6f1cc667,4078867c-2972-47f9-bebd-935a6f1cc667,1,0,8502fe39-c241-4be5-a313-fd887bbbdfa1,8502fe39-c241-4be5-a313-fd887bbbdfa1,1,0,67a71201-13e5-42a3-902f-fb3a59710dfb,67a71201-13e5-42a3-902f-fb3a59710dfb,1,0,3a79a951-a997-4596-ab62-ba376d67725d,3a79a951-a997-4596-ab62-ba376d67725d,1,0,dd4fe688-c113-4ac5-8114-b89cf1b0eb55,dd4fe688-c113-4ac5-8114-b89cf1b0eb55,1,0,c2f246fa-81a3-436c-9f7d-4c8eb7103bf1,c2f246fa-81a3-436c-9f7d-4c8eb7103bf1,1,0,c3e9225a-7fab-499f-baca-eca56914f1ea,c3e9225a-7fab-499f-baca-eca56914f1ea,1,0,5072ce03-c5b6-4e2b-8a29-d3a8e0b907d2,5072ce03-c5b6-4e2b-8a29-d3a8e0b907d2,1,0,b0e9e59d-9636-492c-91d0-71d43b6d6694,b0e9e59d-9636-492c-91d0-71d43b6d6694,1,0,d5fa6b14-d0a4-4d97-ae24-70fed456f07f,d5fa6b14-d0a4-4d97-ae24-70fed456f07f,1,0,54957cc3-685b-4d6d-a0e8-14d51f54224e,54957cc3-685b-4d6d-a0e8-14d51f54224e,1,0,f725ada3-78ef-4e6d-9466-b7047cf695e0,f725ada3-78ef-4e6d-9466-b7047cf695e0,1,0,4f741112-f127-479e-939b-a2c6e36bb57f,4f741112-f127-479e-939b-a2c6e36bb57f,1,0,e169580b-be49-4e39-9cc8-f9942b2d5b8a,e169580b-be49-4e39-9cc8-f9942b2d5b8a,1,0,cacbaa6b-ba3f-43af-9c7b-12fd9f124184,cacbaa6b-ba3f-43af-9c7b-12fd9f124184,1,0,b2de5117-88eb-47ed-bcd4-7001c4549658,b2de5117-88eb-47ed-bcd4-7001c4549658,1,0,884c28de-434f-440a-8c63-67e659c097ad,884c28de-434f-440a-8c63-67e659c097ad,1,0,92ead3b5-8c55-4e4d-bd47-009e025b22f8,92ead3b5-8c55-4e4d-bd47-009e025b22f8,1,0,50d8e365-aa58-4b60-8992-01943379d485,50d8e365-aa58-4b60-8992-01943379d485,1,0,9bb58c7c-d87d-435b-adf6-09c8f75d47b2,9bb58c7c-d87d-435b-adf6-09c8f75d47b2,1,0,b3f7f763-bea9-4f59-9450-df95e5c3d89d,b3f7f763-bea9-4f59-9450-df95e5c3d89d,1,0,9111e28e-c1c7-414b-9288-61bd06a04d04,9111e28e-c1c7-414b-9288-61bd06a04d04,1,0,bcd705ba-c9ac-4e73-94b1-7632c0f06c04,bcd705ba-c9ac-4e73-94b1-7632c0f06c04,1,0,fec102ea-a3f6-49b5-b4b8-6884b0654129,fec102ea-a3f6-49b5-b4b8-6884b0654129,1,0,246571fb-38c7-4da6-929d-d8b44bc3437c,246571fb-38c7-4da6-929d-d8b44bc3437c,1,0,047fd6d7-5e30-4184-a09a-6525de526cc7,047fd6d7-5e30-4184-a09a-6525de526cc7,1,0,beb44b02-5d5e-4127-aee7-e184a43a4210,beb44b02-5d5e-4127-aee7-e184a43a4210,1,0,1dedfbc2-9250-4229-a6ea-5e085f33e7c3,1dedfbc2-9250-4229-a6ea-5e085f33e7c3,1,0,e24641ed-3e92-46d7-852b-9958ab7bc520,e24641ed-3e92-46d7-852b-9958ab7bc520,1,0,bc2aa3f9-ef2c-49a5-8cd9-ddd8a8cbe19d,bc2aa3f9-ef2c-49a5-8cd9-ddd8a8cbe19d,1,0,b6ac4cd6-c68f-4464-88e9-a8d335d581c6,b6ac4cd6-c68f-4464-88e9-a8d335d581c6,1,0,2c61114f-abd7-4415-8cdf-4fe95d9fe354,2c61114f-abd7-4415-8cdf-4fe95d9fe354,1,0,abd7a766-5cc1-48db-8d29-797e9d666a78,abd7a766-5cc1-48db-8d29-797e9d666a78,1,0,1704b5e3-8e77-4df6-9223-e6e5c41a280d,1704b5e3-8e77-4df6-9223-e6e5c41a280d,1,0,62eca88f-025d-44de-b92c-46cd8bc7e4a1,62eca88f-025d-44de-b92c-46cd8bc7e4a1,1,0,8fbf9432-77e8-4951-87a1-4368e3a5e117,8fbf9432-77e8-4951-87a1-4368e3a5e117,1,0,55d47b57-3cc0-41cc-ac43-aecaecca7416,55d47b57-3cc0-41cc-ac43-aecaecca7416,1,0,fbd5d6d8-05cd-43a3-85da-8dcbeee08333,fbd5d6d8-05cd-43a3-85da-8dcbeee08333,1,0,b0dde395-8498-4469-9507-d290798117d7,b0dde395-8498-4469-9507-d290798117d7,1,0,999616ea-0faa-4ae2-9841-6a6997ea6694,999616ea-0faa-4ae2-9841-6a6997ea6694,1,0,c5f91669-13d8-4f0a-a054-2701078da38a,c5f91669-13d8-4f0a-a054-2701078da38a,1,0,34f9872b-e02e-4093-ba06-3cb5b8995850,34f9872b-e02e-4093-ba06-3cb5b8995850,1,0,18515c19-c9ef-4c9f-8d12-4f58ffa251e8,18515c19-c9ef-4c9f-8d12-4f58ffa251e8,1,0,3afe11f6-7424-4b41-a42f-91db33756fa3,3afe11f6-7424-4b41-a42f-91db33756fa3,1,0,94e68502-adf1-476e-be2f-8418385959fa,94e68502-adf1-476e-be2f-8418385959fa,1,0,bf80ccc5-f907-4e7f-a007-6030c7ba682e,bf80ccc5-f907-4e7f-a007-6030c7ba682e,1,0,134bbd7c-cadd-4395-b7a4-0249dfe7d0b1,134bbd7c-cadd-4395-b7a4-0249dfe7d0b1,1,0,05f1f184-50cb-47c5-b3a8-62be6a9780c1,05f1f184-50cb-47c5-b3a8-62be6a9780c1,1,0,f908b81e-f5ba-46ca-b7c0-8cb43ab23901,f908b81e-f5ba-46ca-b7c0-8cb43ab23901,1,0,3c305f89-e453-46c7-987b-f01dc964efdb,3c305f89-e453-46c7-987b-f01dc964efdb,1,0,1809ff43-2af2-44d1-ac7b-91d5bbe4f0ce,1809ff43-2af2-44d1-ac7b-91d5bbe4f0ce,1,0,bf40c9ed-b7db-4200-9646-c4e751fc2014,bf40c9ed-b7db-4200-9646-c4e751fc2014,1,0,2bf9c338-d31e-467e-8281-d1d6a3a6b2e2,2bf9c338-d31e-467e-8281-d1d6a3a6b2e2,1,0,3c2c192e-4869-4cc6-ba47-1fadac5b9678,3c2c192e-4869-4cc6-ba47-1fadac5b9678,1,0,58c3936c-4db0-45c8-a22e-b5dd49a61497,58c3936c-4db0-45c8-a22e-b5dd49a61497,1,0,9aa607bc-5870-436a-bbe1-296560393e3b,9aa607bc-5870-436a-bbe1-296560393e3b,1,0,1635be16-4861-4a7d-babc-4caff448a7f7,1635be16-4861-4a7d-babc-4caff448a7f7,1,0,9e399087-c957-4a7a-ab9d-2b689736caab,9e399087-c957-4a7a-ab9d-2b689736caab,1,0,e7542e37-a2f0-43b5-852e-4e2b24b1b71f,e7542e37-a2f0-43b5-852e-4e2b24b1b71f,1,0,3e94649c-7d69-4fb4-ada1-ae00eabf02b6,3e94649c-7d69-4fb4-ada1-ae00eabf02b6,1,0,2b7372be-af0d-464e-8d09-8172229790af,2b7372be-af0d-464e-8d09-8172229790af,1,0,d85346db-be25-4dab-a2db-647c3d40dd17,d85346db-be25-4dab-a2db-647c3d40dd17,1,0,d51ce1df-6172-4682-9986-131e7daba89e,d51ce1df-6172-4682-9986-131e7daba89e,1,0,6a8b224c-6ce6-4ede-bd36-eb16baebd008,6a8b224c-6ce6-4ede-bd36-eb16baebd008,1,0,1666a55d-9e90-419f-9a57-cb05c6b20bf7,1666a55d-9e90-419f-9a57-cb05c6b20bf7,1,0,b2752418-7166-48b6-a95d-2c9d488b9c7b,b2752418-7166-48b6-a95d-2c9d488b9c7b,1,0,f4147cac-f195-4308-9ccf-07e640196716,f4147cac-f195-4308-9ccf-07e640196716,1,0,2204ae4b-c41f-4125-998e-0fae12d2e9e3,2204ae4b-c41f-4125-998e-0fae12d2e9e3,1,0,52846ee8-d0ca-4c65-8f62-a3f6bea93a8b,52846ee8-d0ca-4c65-8f62-a3f6bea93a8b,1,0,aa3b0ce8-651b-4685-8744-19db537d94c4,aa3b0ce8-651b-4685-8744-19db537d94c4,1,0,0b8998f0-0f59-4223-8b54-ea360aa9513d,0b8998f0-0f59-4223-8b54-ea360aa9513d,1,0,1102079f-d424-4ebb-8496-d48f596c5c62,1102079f-d424-4ebb-8496-d48f596c5c62,1,0,c7bafd34-5b15-42ec-b329-0be3002775ad,c7bafd34-5b15-42ec-b329-0be3002775ad,1,0,6feb2278-9149-47f8-a0ec-eb4bd9f44716,6feb2278-9149-47f8-a0ec-eb4bd9f44716,1,0,e99606f3-cf75-44b2-ad50-c88a8c3d189c,e99606f3-cf75-44b2-ad50-c88a8c3d189c,1,0,b4fa35f9-cb7e-46a8-b32b-801d212c8fcf,b4fa35f9-cb7e-46a8-b32b-801d212c8fcf,1,0,c960082b-8c16-4d7b-b7fd-b1f2bfe07e0b,c960082b-8c16-4d7b-b7fd-b1f2bfe07e0b,1,0,cd6770d5-cd3c-47af-bc46-c865993adf63,cd6770d5-cd3c-47af-bc46-c865993adf63,1,0,97ec899d-a2a0-4691-83ff-25b78dd49ef6,97ec899d-a2a0-4691-83ff-25b78dd49ef6,1,0,411db885-f761-44e5-bdd1-9fdf9e741ac1,411db885-f761-44e5-bdd1-9fdf9e741ac1,1,0,269ada84-71a9-4b4b-9604-caa40c5b7067,269ada84-71a9-4b4b-9604-caa40c5b7067,1,0,ea13607a-3e05-4468-9932-41b6d51cfedf,ea13607a-3e05-4468-9932-41b6d51cfedf,1,0,99c00352-cafe-4430-8c8d-2850a13bb6cc,99c00352-cafe-4430-8c8d-2850a13bb6cc,1,0,22fc6da4-3891-4f35-9dfe-c6d359c7e09e,22fc6da4-3891-4f35-9dfe-c6d359c7e09e,1,0,9f9936fc-54a0-4812-b12d-2f8f91551440,9f9936fc-54a0-4812-b12d-2f8f91551440,1,0,2eeea138-481c-4fde-9e8a-709d751cc469,2eeea138-481c-4fde-9e8a-709d751cc469,1,0,70a3df8f-c12a-4185-81c4-39a5114ef7a9,70a3df8f-c12a-4185-81c4-39a5114ef7a9,1,0,bd362ff9-3dec-4a4b-9595-8609de76e842,bd362ff9-3dec-4a4b-9595-8609de76e842,1,0,76cc9ae1-7ac2-4b99-8def-f21dc55ad07d,76cc9ae1-7ac2-4b99-8def-f21dc55ad07d,1,0,43e37533-ed38-4000-a387-5749f8d9aaf3,43e37533-ed38-4000-a387-5749f8d9aaf3,1,0,e93bdb44-64b3-43d8-b15a-c561dbb91974,e93bdb44-64b3-43d8-b15a-c561dbb91974,1,0,928e0e05-b946-48c8-9619-2d93eb94b036,928e0e05-b946-48c8-9619-2d93eb94b036,1,0,99e701f7-9206-4b20-bb32-e60c9a1d570e,99e701f7-9206-4b20-bb32-e60c9a1d570e,1,0,a7c7c835-5402-4bdd-a0e3-d21746174d5a,a7c7c835-5402-4bdd-a0e3-d21746174d5a,1,0,54766e6b-cf49-4c58-b5e5-dcb6362ac5e2,54766e6b-cf49-4c58-b5e5-dcb6362ac5e2,1,0,f2210cf1-f9f5-41ed-8b4d-937778da842b,f2210cf1-f9f5-41ed-8b4d-937778da842b,1,0,07e81872-afac-4720-86b4-91e7bf4a2881,07e81872-afac-4720-86b4-91e7bf4a2881,1,0,d4b49ed0-3d3f-4b68-bc1e-949e8e338e9a,d4b49ed0-3d3f-4b68-bc1e-949e8e338e9a,1,0,542a53f5-56c5-4ca9-90d1-d689532c69fd,542a53f5-56c5-4ca9-90d1-d689532c69fd,1,0,02c5f3b2-d691-4eaf-84fd-763770e4b1cb,02c5f3b2-d691-4eaf-84fd-763770e4b1cb,1,0,845262f8-8208-4c90-98ec-c85dd5734cf0,845262f8-8208-4c90-98ec-c85dd5734cf0,1,0,532dfa48-39b0-4d0f-9f8c-b51ca27e47a9,532dfa48-39b0-4d0f-9f8c-b51ca27e47a9,1,0,17bc0f34-c35b-4beb-be5f-8e8d8f06c053,17bc0f34-c35b-4beb-be5f-8e8d8f06c053,1,0,f91813e6-b75c-43fb-8da3-a0d958dc6fa0,f91813e6-b75c-43fb-8da3-a0d958dc6fa0,1,0,ad066c0d-4f4c-48af-9cc8-bb835372150a,ad066c0d-4f4c-48af-9cc8-bb835372150a,1,0,a2145e81-239e-4267-8a43-ea3f7babe878,a2145e81-239e-4267-8a43-ea3f7babe878,1,0,a3720a0f-cf95-4acb-89dc-c4e6e38f72ca,a3720a0f-cf95-4acb-89dc-c4e6e38f72ca,1,0,fb26953e-1aa3-4f69-8b9b-ad99e3431e12,fb26953e-1aa3-4f69-8b9b-ad99e3431e12,1,0,39598414-9c1d-46ec-a534-8bd43e622e45,39598414-9c1d-46ec-a534-8bd43e622e45,1,0,b552c510-4fd4-4c16-9022-dc5babcafc52,b552c510-4fd4-4c16-9022-dc5babcafc52,1,0,3892c06d-28f1-4238-a929-201316cac1ed,3892c06d-28f1-4238-a929-201316cac1ed,1,0,c13dea2e-17fa-4a5f-a70f-96e623db8a6b,c13dea2e-17fa-4a5f-a70f-96e623db8a6b,1,0,ecc0ac05-9813-482d-bc39-0be1490d3f8b,ecc0ac05-9813-482d-bc39-0be1490d3f8b,1,0,866f53c8-4f1e-484a-a809-6130f7eef872,866f53c8-4f1e-484a-a809-6130f7eef872,1,0,339e8cba-a92e-42f6-8d00-3b8b56ce3b0f,339e8cba-a92e-42f6-8d00-3b8b56ce3b0f,1,0,567c68fd-74c7-4b6e-9119-56ac8d78073c,567c68fd-74c7-4b6e-9119-56ac8d78073c,1,0,ce87e3e8-2d05-415b-bd27-c366ca871097,ce87e3e8-2d05-415b-bd27-c366ca871097,1,0,b4233d51-daa9-47ff-8b51-f65c31fc8037,b4233d51-daa9-47ff-8b51-f65c31fc8037,1,0,99410b31-9fbe-42bf-875c-9d0425e1b7b2,99410b31-9fbe-42bf-875c-9d0425e1b7b2,1,0,bc79b15c-5bde-4587-a1ed-b5c4909eec5d,bc79b15c-5bde-4587-a1ed-b5c4909eec5d,1,0,3326bbcb-b277-44db-a252-2448119e8146,3326bbcb-b277-44db-a252-2448119e8146,1,0,61cac5f7-320c-4098-9078-44fadcdeb219,61cac5f7-320c-4098-9078-44fadcdeb219,1,0,304304b1-36a4-42bb-8ab9-b23b59795001,304304b1-36a4-42bb-8ab9-b23b59795001,1,0,a22d1a4f-cb7c-4bcc-b258-ecca282fb071,a22d1a4f-cb7c-4bcc-b258-ecca282fb071,1,0,e5beda2c-f4e2-4a6b-a1d0-a877eb0c9f5b,e5beda2c-f4e2-4a6b-a1d0-a877eb0c9f5b,1,0,cd454738-62dd-4f95-af33-b52750678428,cd454738-62dd-4f95-af33-b52750678428,1,0,2a479b8f-7569-43d0-8ca3-9001d6ec57f0,2a479b8f-7569-43d0-8ca3-9001d6ec57f0,1,0,e4abafc6-f859-4d96-9818-5b9bf8d66d69,e4abafc6-f859-4d96-9818-5b9bf8d66d69,1,0,535acd2c-26d2-4f32-9ae6-cc1956317c59,535acd2c-26d2-4f32-9ae6-cc1956317c59,1,0,801adeeb-8a7f-44c1-b649-a7dfffc7b65d,801adeeb-8a7f-44c1-b649-a7dfffc7b65d,1,0,ac4e0868-ba49-46b4-8872-d42483a5591f,ac4e0868-ba49-46b4-8872-d42483a5591f,1,0,45e6c4a6-1d63-4b94-a7d2-fbd3fb68061b,45e6c4a6-1d63-4b94-a7d2-fbd3fb68061b,1,0,0493dcf1-5f94-41f9-a4c7-a52e12a29068,0493dcf1-5f94-41f9-a4c7-a52e12a29068,1,0,ca4c0299-625a-4b03-be0e-36ffb45c6d08,ca4c0299-625a-4b03-be0e-36ffb45c6d08,1,0,7fa1119b-4321-4b8f-a879-1d940084145a,7fa1119b-4321-4b8f-a879-1d940084145a,1,0,5d9c0841-6ea6-48dc-a53b-9f19894750f8,5d9c0841-6ea6-48dc-a53b-9f19894750f8,1,0,86b5303b-d967-4bc6-b2da-066c5a58613f,86b5303b-d967-4bc6-b2da-066c5a58613f,1,0,853b824d-9377-475f-913e-d02bd60f5f64,853b824d-9377-475f-913e-d02bd60f5f64,1,0,d5a73869-381e-4878-8db7-596643937202,d5a73869-381e-4878-8db7-596643937202,1,0,c91de10a-d370-4495-9d9e-98581e566385,c91de10a-d370-4495-9d9e-98581e566385,1,0,3a93f1d2-3e9c-41a9-9d53-314538a96bb2,3a93f1d2-3e9c-41a9-9d53-314538a96bb2,1,0,8bc4bece-027f-460c-ade0-d7c7d3d9a6b7,8bc4bece-027f-460c-ade0-d7c7d3d9a6b7,1,0,dd73a8d8-a6db-4d3c-a808-d82bad8876b9,dd73a8d8-a6db-4d3c-a808-d82bad8876b9,1,0,11a93e3a-3c5b-4242-913c-02474a383344,11a93e3a-3c5b-4242-913c-02474a383344,1,0,ddd2861c-592b-4879-b9de-4b05a22c0b43,ddd2861c-592b-4879-b9de-4b05a22c0b43,1,0,5b383021-a800-4f0b-b8a3-d344389bff6c,5b383021-a800-4f0b-b8a3-d344389bff6c,1,0,8fe71bce-a61a-4a2e-bd18-81c7a7bb4456,8fe71bce-a61a-4a2e-bd18-81c7a7bb4456,1,0,11e708d8-82f4-4d45-a77d-7b9d23c0ef54,11e708d8-82f4-4d45-a77d-7b9d23c0ef54,1,0,8a57d427-a34e-4121-84e6-1a86a9f9092d,8a57d427-a34e-4121-84e6-1a86a9f9092d,1,0,dbc1bf11-e92a-4f4e-90d4-6a3ccdaec7e5,dbc1bf11-e92a-4f4e-90d4-6a3ccdaec7e5,1,0,29ec9423-25ef-4cf2-ad6a-58f854c3e22b,29ec9423-25ef-4cf2-ad6a-58f854c3e22b,1,0,2607e4d1-4fc0-4270-ad45-2c95d4aa04da,2607e4d1-4fc0-4270-ad45-2c95d4aa04da,1,0,b4b4bd5d-a860-4994-90b7-0c60ab680c4e,b4b4bd5d-a860-4994-90b7-0c60ab680c4e,1,0,68447105-a784-4803-8eb8-3701b0fc819d,68447105-a784-4803-8eb8-3701b0fc819d,1,0,ec892726-dee3-4edb-ad71-020404b09477,ec892726-dee3-4edb-ad71-020404b09477,1,0,ca47123d-90f5-4d1d-be06-34b505b01d81,ca47123d-90f5-4d1d-be06-34b505b01d81,1,0,5fb5320c-cd7c-4f28-ad6a-8670a60a9e11,5fb5320c-cd7c-4f28-ad6a-8670a60a9e11,1,0,59dee70d-aeca-470a-b3c4-e43bb16c5753,59dee70d-aeca-470a-b3c4-e43bb16c5753,1,0,82777e92-0681-44bf-b51e-4d98fcd5d5bd,82777e92-0681-44bf-b51e-4d98fcd5d5bd,1,0,2e0b331d-92d4-4250-94c6-9ced8cdcb1e4,2e0b331d-92d4-4250-94c6-9ced8cdcb1e4,1,0,cee126de-d567-44d3-b14c-35da6e501324,cee126de-d567-44d3-b14c-35da6e501324,1,0,4599ef83-5f1e-44af-ae0c-67988656a99e,4599ef83-5f1e-44af-ae0c-67988656a99e,1,0,acb0d7eb-2ed9-4419-b79d-7dc661d70c30,acb0d7eb-2ed9-4419-b79d-7dc661d70c30,1,0,e1b94dcf-ec37-4b2d-a7af-120eeee40944,e1b94dcf-ec37-4b2d-a7af-120eeee40944,1,0,7d2a37b1-a1a0-435a-846a-95e255655044,7d2a37b1-a1a0-435a-846a-95e255655044,1,0,109db64c-00dc-490e-99a5-4430d9344e99,109db64c-00dc-490e-99a5-4430d9344e99,1,0,85837a55-fed5-4b7b-a622-30d728b9a677,85837a55-fed5-4b7b-a622-30d728b9a677,1,0,0fd79cdb-dc7a-40ca-a3bc-2c7a7b4691bb,0fd79cdb-dc7a-40ca-a3bc-2c7a7b4691bb,1,0,6ede8b5c-7df0-44a5-9136-8109bbd8b5a9,6ede8b5c-7df0-44a5-9136-8109bbd8b5a9,1,0,325bacdd-793f-47d8-b987-57e9d5f2782b,325bacdd-793f-47d8-b987-57e9d5f2782b,1,0,80395d47-70d7-4d8d-9b18-93283fba80c2,80395d47-70d7-4d8d-9b18-93283fba80c2,1,0,8b621ec9-24c9-4166-90ce-29c5ad30f78b,8b621ec9-24c9-4166-90ce-29c5ad30f78b,1,0,cc98670a-7b18-4973-b211-90261c5c8c10,cc98670a-7b18-4973-b211-90261c5c8c10,1,0,da9821c3-4b16-48b7-9088-d3cf8ac536a6,da9821c3-4b16-48b7-9088-d3cf8ac536a6,1,0,fb36c775-1124-4ba6-8af8-133bf66fcb54,fb36c775-1124-4ba6-8af8-133bf66fcb54,1,0,51f9aff4-71da-4b1b-b48b-04122a17d855,51f9aff4-71da-4b1b-b48b-04122a17d855,1,0,d5142574-a040-4dd0-a482-cdc61c1d86ab,d5142574-a040-4dd0-a482-cdc61c1d86ab,1,0,62957889-503f-4923-a372-29776dc3b5e5,62957889-503f-4923-a372-29776dc3b5e5,1,0,90385850-d37b-4b2e-ac87-95c17f32197c,90385850-d37b-4b2e-ac87-95c17f32197c,1,0,b9e5bb39-ed0a-4e12-b7e4-2d9b5015bf9c,b9e5bb39-ed0a-4e12-b7e4-2d9b5015bf9c,1,0,dbced4aa-6432-4f0c-a99a-5a3e7b0f6755,dbced4aa-6432-4f0c-a99a-5a3e7b0f6755,1,0,6b28a716-2fb1-47f7-a7d6-f2fe7edb32c3,6b28a716-2fb1-47f7-a7d6-f2fe7edb32c3,1,0,e849e46c-2ce6-427b-92bc-06d7997f59bf,e849e46c-2ce6-427b-92bc-06d7997f59bf,1,0,5a971dc0-28bf-4426-9426-9f456aea080a,5a971dc0-28bf-4426-9426-9f456aea080a,1,0,f480ac52-e2f1-4ed0-a0b1-20a622f77302,f480ac52-e2f1-4ed0-a0b1-20a622f77302,1,0,5c63e7cd-ecdb-45ae-a589-f6c38f5a8e76,5c63e7cd-ecdb-45ae-a589-f6c38f5a8e76,1,0,b9b0fbdc-8fda-46d1-bb3e-561a03604971,b9b0fbdc-8fda-46d1-bb3e-561a03604971,1,0,eadfdbe3-bc85-4084-aef6-4cfd258ee6f1,eadfdbe3-bc85-4084-aef6-4cfd258ee6f1,1,0,672c2936-9771-4e32-a970-7ac7f12a21e8,672c2936-9771-4e32-a970-7ac7f12a21e8,1,0,73afaad8-dfa9-43e3-bdaf-543c3545d788,73afaad8-dfa9-43e3-bdaf-543c3545d788,1,0,c264441d-4805-4968-baa2-37b8970049c7,c264441d-4805-4968-baa2-37b8970049c7,1,0,88f34f9f-121b-43e2-9280-ec2b414681ad,88f34f9f-121b-43e2-9280-ec2b414681ad,1,0,4f0bda80-2246-43be-95f8-ae8480682cd5,4f0bda80-2246-43be-95f8-ae8480682cd5,1,0,ac4fa2a4-93a1-4aa6-986a-5f576457fc8a,ac4fa2a4-93a1-4aa6-986a-5f576457fc8a,1,0,6f683f46-9eef-4e78-bc2f-7174238bf53c,6f683f46-9eef-4e78-bc2f-7174238bf53c,1,0,7d1ed38b-98cf-4a0e-a605-680bb580d904,7d1ed38b-98cf-4a0e-a605-680bb580d904,1,0,b769eda0-11de-401c-a68b-4fce4555d4fc,b769eda0-11de-401c-a68b-4fce4555d4fc,1,0,fd7a668f-3099-4e15-956a-92c6295dd4d5,fd7a668f-3099-4e15-956a-92c6295dd4d5,1,0,afcbd830-ec5f-4865-a176-ea3014dff908,afcbd830-ec5f-4865-a176-ea3014dff908,1,0,dc5fc801-14e4-42e8-b396-76eb30b69eea,dc5fc801-14e4-42e8-b396-76eb30b69eea,1,0,485b9f00-475a-49e5-ade2-b2e05d94ecf0,485b9f00-475a-49e5-ade2-b2e05d94ecf0,1,0,310aef5a-84d9-4a68-af78-d623beff8a88,310aef5a-84d9-4a68-af78-d623beff8a88,1,0,398bf9d1-c353-461e-a1be-683047dcbe41,398bf9d1-c353-461e-a1be-683047dcbe41,1,0,f36150de-33af-4410-8a4c-8c9f4b545793,f36150de-33af-4410-8a4c-8c9f4b545793,1,0,62f97480-7d4a-48f3-9d1d-612909b242c9,62f97480-7d4a-48f3-9d1d-612909b242c9,1,0,2b4f6e2f-6cc4-4c7c-98a6-786f3793366b,2b4f6e2f-6cc4-4c7c-98a6-786f3793366b,1,0,3068be84-a401-4701-8ac9-411fae130f84,3068be84-a401-4701-8ac9-411fae130f84,1,0,957394a7-e5b8-47fc-8680-1e71efe2be7d,957394a7-e5b8-47fc-8680-1e71efe2be7d,1,0,ba49a9e4-6ec1-43ff-92cd-9dbf221bbf09,ba49a9e4-6ec1-43ff-92cd-9dbf221bbf09,1,0,4f25ef45-c8d9-401d-b0e8-2217ac310f04,4f25ef45-c8d9-401d-b0e8-2217ac310f04,1,0,504ca240-b5ae-433e-ae5f-d818263eea23,504ca240-b5ae-433e-ae5f-d818263eea23,1,0,32461819-9437-417d-8d1e-851c9a2dcee2,32461819-9437-417d-8d1e-851c9a2dcee2,1,0,74228950-8a4b-4dd6-a053-8650de202521,74228950-8a4b-4dd6-a053-8650de202521,1,0,6b9ce91e-08b9-4972-9878-1724c67b68ec,6b9ce91e-08b9-4972-9878-1724c67b68ec,1,0,640814f2-6082-475e-8006-25fd5b24afdb,640814f2-6082-475e-8006-25fd5b24afdb,1,0,6fcd2a3a-4d66-40e3-bde0-5c274b43783f,6fcd2a3a-4d66-40e3-bde0-5c274b43783f,1,0,569047c2-0879-4fba-a814-44812d21043b,569047c2-0879-4fba-a814-44812d21043b,1,0,0c3c4494-c037-431e-9eeb-9b6cfd7372c3,0c3c4494-c037-431e-9eeb-9b6cfd7372c3,1,0,80512d95-5458-4934-98ae-a7b58099196b,80512d95-5458-4934-98ae-a7b58099196b,1,0,6f2354cd-4a34-4921-96bb-b786486f85cf,6f2354cd-4a34-4921-96bb-b786486f85cf,1,0,f1b66ea8-262d-4b38-a039-b83a843f6ee8,f1b66ea8-262d-4b38-a039-b83a843f6ee8,1,0,bcae6e05-f1fd-413e-9eef-2e1cee42a962,bcae6e05-f1fd-413e-9eef-2e1cee42a962,1,0,40da1bca-ebb3-4c64-bf54-1f37b71d47b6,40da1bca-ebb3-4c64-bf54-1f37b71d47b6,1,0,778b4c8f-7a1e-4b4b-9f68-12cbf52bf195,778b4c8f-7a1e-4b4b-9f68-12cbf52bf195,1,0,91562fe8-e630-4bcb-a14e-c0e1e129141a,91562fe8-e630-4bcb-a14e-c0e1e129141a,1,0,c261abfd-3828-47b5-aa32-dfdd3a1636ad,c261abfd-3828-47b5-aa32-dfdd3a1636ad,1,0,e9aa6dab-0d96-42ce-9bd6-b8b10d755f8c,e9aa6dab-0d96-42ce-9bd6-b8b10d755f8c,1,0,1db1cb24-f364-4b91-bc96-c216764207a0,1db1cb24-f364-4b91-bc96-c216764207a0,1,0,64d7c8a7-1c15-4afb-ad97-abf8729c604e,64d7c8a7-1c15-4afb-ad97-abf8729c604e,1,0,a3cbbc8a-4afd-48c5-91d4-4849d18905c1,a3cbbc8a-4afd-48c5-91d4-4849d18905c1,1,0,5d6b29dc-38af-4dce-b79c-ce8f23afb3b1,5d6b29dc-38af-4dce-b79c-ce8f23afb3b1,1,0,c04b685a-0d2d-404c-a74a-775ffab298ce,c04b685a-0d2d-404c-a74a-775ffab298ce,1,0,5fe6967d-e333-464b-a89e-8c868c0ce37d,5fe6967d-e333-464b-a89e-8c868c0ce37d,1,0,5aef2892-7a87-4d3b-bb46-8340a7fb97a8,5aef2892-7a87-4d3b-bb46-8340a7fb97a8,1,0,8efa4c12-b5ba-4dfd-bdc9-e824402fc4b1,8efa4c12-b5ba-4dfd-bdc9-e824402fc4b1,1,0,0384ec55-dc18-40ae-ae83-7defc28d8f3f,0384ec55-dc18-40ae-ae83-7defc28d8f3f,1,0,54e57825-c6f3-44c3-9457-bc24317e23c2,54e57825-c6f3-44c3-9457-bc24317e23c2,1,0,84da1ef8-1784-4dfc-b17a-7728aa7ff62a,84da1ef8-1784-4dfc-b17a-7728aa7ff62a,1,0,9155c95b-6afb-41bb-bd0b-d37e503fc163,9155c95b-6afb-41bb-bd0b-d37e503fc163,1,0,d917c19e-be15-41cc-9c8a-a97c8de85309,d917c19e-be15-41cc-9c8a-a97c8de85309,1,0,54b5b44c-5f24-4b2a-982c-4489b18db7f0,54b5b44c-5f24-4b2a-982c-4489b18db7f0,1,0,5bc04a9a-6a0a-4607-b8eb-743b87143ae7,5bc04a9a-6a0a-4607-b8eb-743b87143ae7,1,0,e8045f52-7b27-48b0-b009-d488718b3bef,e8045f52-7b27-48b0-b009-d488718b3bef,1,0,1796bcbb-a629-4509-95c9-78562689f809,1796bcbb-a629-4509-95c9-78562689f809,1,0,cd9799c9-f5bf-4537-8885-06fb6e6b8f93,cd9799c9-f5bf-4537-8885-06fb6e6b8f93,1,0,d19e8fcc-62cc-4ce4-81bc-ead33a2714df,d19e8fcc-62cc-4ce4-81bc-ead33a2714df,1,0,1aa6b483-0f87-4ed3-94ea-8b81813532d6,1aa6b483-0f87-4ed3-94ea-8b81813532d6,1,0,0f79d87e-3311-4281-8f46-6154e708b930,0f79d87e-3311-4281-8f46-6154e708b930,1,0,e057e428-99c1-419d-a169-697c1e825e94,e057e428-99c1-419d-a169-697c1e825e94,1,0,784a60bd-4070-476d-9b8b-f607c76dc52b,784a60bd-4070-476d-9b8b-f607c76dc52b,1,0,904d5bd0-3843-4aaa-86a3-f8e12282e5c0,904d5bd0-3843-4aaa-86a3-f8e12282e5c0,1,0,90420fe9-f75a-4bcc-8e1a-9d665a61ecef,90420fe9-f75a-4bcc-8e1a-9d665a61ecef,1,0,748f7ddb-4cdc-46e5-9108-f7a550b33537,748f7ddb-4cdc-46e5-9108-f7a550b33537,1,0,0534460b-0548-45f0-ac79-aa4bc109655c,0534460b-0548-45f0-ac79-aa4bc109655c,1,0,47907538-9357-4885-8b50-17f2e16c260f,47907538-9357-4885-8b50-17f2e16c260f,1,0,17e1840f-fef3-4f17-8476-273e6af24cb4,17e1840f-fef3-4f17-8476-273e6af24cb4,1,0,a64566fa-b706-49bc-8277-4531145c400e,a64566fa-b706-49bc-8277-4531145c400e,1,0,a8f32b13-249c-4ce6-a521-f06a87f2e670,a8f32b13-249c-4ce6-a521-f06a87f2e670,1,0,815775e4-cfb7-495b-87c4-d134b90d93d4,815775e4-cfb7-495b-87c4-d134b90d93d4,1,0,e867f2f1-0550-4d15-9e40-ba36c9aabfbd,e867f2f1-0550-4d15-9e40-ba36c9aabfbd,1,0,8bdbb9ef-3a91-4374-b3c5-9447005bb1b7,8bdbb9ef-3a91-4374-b3c5-9447005bb1b7,1,0,7a27b378-89ac-4cad-8c69-a0cd14812d7e,7a27b378-89ac-4cad-8c69-a0cd14812d7e,1,0,d2433a11-8e1d-4e4c-966d-37cde6283f72,d2433a11-8e1d-4e4c-966d-37cde6283f72,1,0,59eb5919-3c33-48bf-b322-ec78018e4142,59eb5919-3c33-48bf-b322-ec78018e4142,1,0,63f308a5-b955-48a5-8052-50c5bede65d0,63f308a5-b955-48a5-8052-50c5bede65d0,1,0,1b614b97-5c1d-497a-9574-40114059f836,1b614b97-5c1d-497a-9574-40114059f836,1,0,477dfea4-e401-4cf0-b0a8-2df7c3836c58,477dfea4-e401-4cf0-b0a8-2df7c3836c58,1,0,294c000f-6979-4ed1-bbc7-7402facd9185,294c000f-6979-4ed1-bbc7-7402facd9185,1,0,db607fbc-f785-47d5-9550-577424aa3fe9,db607fbc-f785-47d5-9550-577424aa3fe9,1,0,b7111ddf-a623-4bae-90aa-636148492ca2,b7111ddf-a623-4bae-90aa-636148492ca2,1,0,905d9dcd-5793-4362-8fe8-2edce8c35e32,905d9dcd-5793-4362-8fe8-2edce8c35e32,1,0,a96cb6fd-54e0-4514-9210-7f4636acd336,a96cb6fd-54e0-4514-9210-7f4636acd336,1,0,3580e7a7-95d1-4a8e-bc12-a1449fe03757,3580e7a7-95d1-4a8e-bc12-a1449fe03757,1,0,13759790-6c70-4323-9321-a68b90c51663,13759790-6c70-4323-9321-a68b90c51663,1,0,d9704b20-c29c-4e7f-b777-0ac9080a5631,d9704b20-c29c-4e7f-b777-0ac9080a5631,1,0,c1372891-0f55-4868-ab97-906eff52be0e,c1372891-0f55-4868-ab97-906eff52be0e,1,0,33e96bda-1708-4ee4-8d4d-3b919bda3e38,33e96bda-1708-4ee4-8d4d-3b919bda3e38,1,0,53fb35a7-44ab-42e7-8dba-6fa08bf5ba2c,53fb35a7-44ab-42e7-8dba-6fa08bf5ba2c,1,0,93fcaa62-2a19-468b-9128-c7930583fbfd,93fcaa62-2a19-468b-9128-c7930583fbfd,1,0,2d885109-4c96-41c0-a996-785bfd793c2d,2d885109-4c96-41c0-a996-785bfd793c2d,1,0,e870a1bd-0c08-4d1e-832a-357922983c19,e870a1bd-0c08-4d1e-832a-357922983c19,1,0,9f71aeac-f889-40dc-91bd-d670da4efd2b,9f71aeac-f889-40dc-91bd-d670da4efd2b,1,0,62f8a9b2-9e56-4d5c-a7e2-a85f5b27a5b7,62f8a9b2-9e56-4d5c-a7e2-a85f5b27a5b7,1,0,614ef0bd-3298-408b-bf71-37df8ee60702,614ef0bd-3298-408b-bf71-37df8ee60702,1,0,26ff1be6-f72a-456a-9dce-302029752603,26ff1be6-f72a-456a-9dce-302029752603,1,0,db850a08-0c99-4a57-9b04-38be64bd38fb,db850a08-0c99-4a57-9b04-38be64bd38fb,1,0,abeca127-5ae9-46af-a5e8-d6438fd68367,abeca127-5ae9-46af-a5e8-d6438fd68367,1,0,bce81631-9f6d-42b3-b4b6-2199afb08f2f,bce81631-9f6d-42b3-b4b6-2199afb08f2f,1,0,67d6878f-3e47-4142-8f98-c5a207f0b8a8,67d6878f-3e47-4142-8f98-c5a207f0b8a8,1,0,7f4b872f-0e50-49dd-984d-f5fc3ac3f2f0,7f4b872f-0e50-49dd-984d-f5fc3ac3f2f0,1,0,68636657-4d46-4c2a-9b2f-11521a55dfb4,68636657-4d46-4c2a-9b2f-11521a55dfb4,1,0,18a83f43-dc84-4f8a-9580-681b19f571c4,18a83f43-dc84-4f8a-9580-681b19f571c4,1,0,01c588b0-d0ce-4978-b04d-084e6a00fcc7,01c588b0-d0ce-4978-b04d-084e6a00fcc7,1,0,a23642d9-8c4f-44a5-8865-bfb286e47c55,a23642d9-8c4f-44a5-8865-bfb286e47c55,1,0,7b37e038-dcef-41e1-b6e7-ed73c6958415,7b37e038-dcef-41e1-b6e7-ed73c6958415,1,0,24df2d14-5ebf-4ded-ba14-5daee7a0c536,24df2d14-5ebf-4ded-ba14-5daee7a0c536,1,0,13d6e2e9-b268-4c1b-8b8b-30c5296cfe4c,13d6e2e9-b268-4c1b-8b8b-30c5296cfe4c,1,0,03bb028a-ee8c-411e-8382-653046f803c6,03bb028a-ee8c-411e-8382-653046f803c6,1,0,c4fa80ca-32d6-4a44-9fe2-7ffd67e1cb30,c4fa80ca-32d6-4a44-9fe2-7ffd67e1cb30,1,0,8aa73dfd-41ac-4f79-bf73-cd2da51b1232,8aa73dfd-41ac-4f79-bf73-cd2da51b1232,1,0,38d5ed93-133b-44fe-827a-69a6cfc0461d,38d5ed93-133b-44fe-827a-69a6cfc0461d,1,0,436a9c94-55f6-4463-becd-573189753ee7,436a9c94-55f6-4463-becd-573189753ee7,1,0,50bf4050-390c-419c-8f55-82a540093ab1,50bf4050-390c-419c-8f55-82a540093ab1,1,0,cae8a6f2-bbe9-4b73-b839-9bf8e5e2818d,cae8a6f2-bbe9-4b73-b839-9bf8e5e2818d,1,0,0a79ee40-e6d6-4dbf-8378-98c2ec1e8ef9,0a79ee40-e6d6-4dbf-8378-98c2ec1e8ef9,1,0,5148d263-de26-4c92-b090-ae59f42dfb05,5148d263-de26-4c92-b090-ae59f42dfb05,1,0,dbefe81f-85cf-4d84-9600-b359598c2543,dbefe81f-85cf-4d84-9600-b359598c2543,1,0,1a624a06-93b8-4d1f-8c14-2061e1e7927c,1a624a06-93b8-4d1f-8c14-2061e1e7927c,1,0,4ad54ca8-8e4a-4a35-9537-0395851fcdfb,4ad54ca8-8e4a-4a35-9537-0395851fcdfb,1,0,3e427c09-79ed-45f7-b4c9-d9aa7ccc01b2,3e427c09-79ed-45f7-b4c9-d9aa7ccc01b2,1,0,1a4dd1f5-c2d6-4e06-b428-ab7870810bf3,1a4dd1f5-c2d6-4e06-b428-ab7870810bf3,1,0,d5967e0f-03cd-4190-a702-7e9290eae1eb,d5967e0f-03cd-4190-a702-7e9290eae1eb,1,0,78fdbce8-8479-4edd-89c0-1bbaf8ffd482,78fdbce8-8479-4edd-89c0-1bbaf8ffd482,1,0,8eb18de5-8283-4d0c-bb11-b882e78181d5,8eb18de5-8283-4d0c-bb11-b882e78181d5,1,0,27b27cc5-d1ad-4a2a-bcf4-ec2ebb3eba43,27b27cc5-d1ad-4a2a-bcf4-ec2ebb3eba43,1,0,7059b117-714c-4710-aebe-76f88c4d41d5,7059b117-714c-4710-aebe-76f88c4d41d5,1,0,ea050453-4947-40dc-aa2a-503ddd1a235a,ea050453-4947-40dc-aa2a-503ddd1a235a,1,0,37d0e6d4-702e-46f5-ae87-4d393fa0c701,37d0e6d4-702e-46f5-ae87-4d393fa0c701,1,0,1e963c1e-f914-46e1-81d3-90d126fc6f8d,1e963c1e-f914-46e1-81d3-90d126fc6f8d,1,0,3a62d88e-9298-42c0-bd87-c749ecd01d19,3a62d88e-9298-42c0-bd87-c749ecd01d19,1,0,abbf064e-c6ea-4712-930b-a9fef42e0ee1,abbf064e-c6ea-4712-930b-a9fef42e0ee1,1,0,fc13dd80-ce44-4ed1-a9d7-dae44602b954,fc13dd80-ce44-4ed1-a9d7-dae44602b954,1,0,a3fe224e-c3ef-4e30-90e4-c4ed5eb11824,a3fe224e-c3ef-4e30-90e4-c4ed5eb11824,1,0,433b23a1-a863-4775-b2f2-1384e8f3cbbb,433b23a1-a863-4775-b2f2-1384e8f3cbbb,1,0,a1677c47-b9a4-427a-972d-9bb2293445b6,a1677c47-b9a4-427a-972d-9bb2293445b6,1,0,e4a328c0-e73b-465d-ae36-38e5a71690fa,e4a328c0-e73b-465d-ae36-38e5a71690fa,1,0,bf66612b-aec4-414b-bee6-9bcab145c7cc,bf66612b-aec4-414b-bee6-9bcab145c7cc,1,0,811f356f-554a-4a63-90b6-dedb5fec7c05,811f356f-554a-4a63-90b6-dedb5fec7c05,1,0,85bebd81-a355-4010-889b-cff6f72dafcb,85bebd81-a355-4010-889b-cff6f72dafcb,1,0,49521f36-fd1b-47dd-81cc-48b6fb651e22,49521f36-fd1b-47dd-81cc-48b6fb651e22,1,0,1491cc2a-b3be-4bcc-a181-ce68d4b5d4cb,1491cc2a-b3be-4bcc-a181-ce68d4b5d4cb,1,0,bc946e21-53bb-4332-8c63-7b0aa78826eb,bc946e21-53bb-4332-8c63-7b0aa78826eb,1,0,4be2bdad-9a43-4593-acbc-a02e9144a89f,4be2bdad-9a43-4593-acbc-a02e9144a89f,1,0,64a86d5d-f925-45ee-82da-76df1cc20729,64a86d5d-f925-45ee-82da-76df1cc20729,1,0,eb4455f2-a5a0-44fb-8302-7312bc32df66,eb4455f2-a5a0-44fb-8302-7312bc32df66,1,0,cd6d2ab5-8e5c-4db3-8c8c-0526046a9b68,cd6d2ab5-8e5c-4db3-8c8c-0526046a9b68,1,0,9f20e59e-7db8-466f-b965-7045fc3f1489,9f20e59e-7db8-466f-b965-7045fc3f1489,1,0,cb057756-d3f7-4c50-a9d0-bac9ca2abd46,cb057756-d3f7-4c50-a9d0-bac9ca2abd46,1,0,89ac3d39-1915-4e67-a4e4-5a67a155cb75,89ac3d39-1915-4e67-a4e4-5a67a155cb75,1,0,d27b637d-5a51-49ff-bf73-343891534586,d27b637d-5a51-49ff-bf73-343891534586,1,0,b5a073a2-54e2-47c9-b533-f75fd2c9f343,b5a073a2-54e2-47c9-b533-f75fd2c9f343,1,0,0c8571be-f9b6-4292-add9-980cfe7fa2ec,0c8571be-f9b6-4292-add9-980cfe7fa2ec,1,0,989b8ccd-bc05-48c1-9969-b3733028b65f,989b8ccd-bc05-48c1-9969-b3733028b65f,1,0,6c70b13d-f9d0-459f-8d38-c01c11f356f1,6c70b13d-f9d0-459f-8d38-c01c11f356f1,1,0,45ca19df-90f3-4143-a659-bc0cb97efee9,45ca19df-90f3-4143-a659-bc0cb97efee9,1,0,6fe997a3-d729-420b-b2b2-558e9a1031ee,6fe997a3-d729-420b-b2b2-558e9a1031ee,1,0,4e1b48b1-c998-4f99-94e7-50af22059bfa,4e1b48b1-c998-4f99-94e7-50af22059bfa,1,0,bbaed1bd-0eb7-4f2b-b844-ab79c1d0a091,bbaed1bd-0eb7-4f2b-b844-ab79c1d0a091,1,0,2e7fbea4-57ac-4633-bb39-8725e57bc7ba,2e7fbea4-57ac-4633-bb39-8725e57bc7ba,1,0,83ae9b22-20ff-4e94-9282-19daf2274328,83ae9b22-20ff-4e94-9282-19daf2274328,1,0,dcad5d84-6643-4f0b-9e6e-73fe343db4a7,dcad5d84-6643-4f0b-9e6e-73fe343db4a7,1,0,e1ca1374-6dad-46d3-bb72-b67f3e6b1809,e1ca1374-6dad-46d3-bb72-b67f3e6b1809,1,0,a92b2b70-7e69-49d1-b921-c9d1b0718f94,a92b2b70-7e69-49d1-b921-c9d1b0718f94,1,0,d57a3300-0f9f-4fe5-b627-01c96b723053,d57a3300-0f9f-4fe5-b627-01c96b723053,1,0,ccfdf89b-f63e-4e46-b942-0d145695fdc6,ccfdf89b-f63e-4e46-b942-0d145695fdc6,1,0,6d40a555-9c20-4643-b689-2f61df772f78,6d40a555-9c20-4643-b689-2f61df772f78,1,0,19f690a3-d27b-43c1-94b7-585fc628da05,19f690a3-d27b-43c1-94b7-585fc628da05,1,0,d375fac5-098c-42b5-a0bd-9a4ae7516ada,d375fac5-098c-42b5-a0bd-9a4ae7516ada,1,0,29034f3e-d2eb-44e0-ac85-f2ffaf14eb90,29034f3e-d2eb-44e0-ac85-f2ffaf14eb90,1,0,ce65563d-03dc-46d8-96d4-c2d4ae2a2960,ce65563d-03dc-46d8-96d4-c2d4ae2a2960,1,0,5079f17e-dfd6-43f4-83fa-6ac408e5bd3b,5079f17e-dfd6-43f4-83fa-6ac408e5bd3b,1,0,7a4346c3-f1aa-4ce0-886e-76cd9abf563c,7a4346c3-f1aa-4ce0-886e-76cd9abf563c,1,0,cf783265-a4cb-436f-963a-1ff8220ae246,cf783265-a4cb-436f-963a-1ff8220ae246,1,0,3560f949-48f9-4fca-9fe2-81efc1ec0eee,3560f949-48f9-4fca-9fe2-81efc1ec0eee,1,0,662078f0-b75d-4c44-896f-7b7f74fd1ed4,662078f0-b75d-4c44-896f-7b7f74fd1ed4,1,0,4fa11304-fbd4-4c90-909d-5024283a6868,4fa11304-fbd4-4c90-909d-5024283a6868,1,0,207290c2-5221-48ad-99aa-bb0f7955df3f,207290c2-5221-48ad-99aa-bb0f7955df3f,1,0,162137ef-dea2-4ace-9e67-897dad0e7c3d,162137ef-dea2-4ace-9e67-897dad0e7c3d,1,0,d91a016e-cca9-4976-9c53-2c96fa95cf1a,d91a016e-cca9-4976-9c53-2c96fa95cf1a,1,0,012fb2f1-1c15-4800-8968-78a90c2a1348,012fb2f1-1c15-4800-8968-78a90c2a1348,1,0,a29a36aa-3c90-4be9-8ffc-20237721d1d0,a29a36aa-3c90-4be9-8ffc-20237721d1d0,1,0,aec8f9e6-d177-45f5-ba55-2d662428c2ae,aec8f9e6-d177-45f5-ba55-2d662428c2ae,1,0,b0bf8af5-d824-459c-bc40-17495406af3c,b0bf8af5-d824-459c-bc40-17495406af3c,1,0,7dfdd08b-7cd9-480c-829d-97f5e7152eec,7dfdd08b-7cd9-480c-829d-97f5e7152eec,1,0,64752b64-80ae-4537-986a-d61423dc546b,64752b64-80ae-4537-986a-d61423dc546b,1,0,2c37e123-ea35-4501-93e1-2fa295444bec,2c37e123-ea35-4501-93e1-2fa295444bec,1,0,c8bd3ac8-3b49-46bb-aadd-7270ad2868fc,c8bd3ac8-3b49-46bb-aadd-7270ad2868fc,1,0,a997a430-3ea8-4fde-9f53-7b507a04c215,a997a430-3ea8-4fde-9f53-7b507a04c215,1,0,f648e19d-026b-4fa7-8e70-1866b27b94f8,f648e19d-026b-4fa7-8e70-1866b27b94f8,1,0,d32081fc-47d3-4e66-837e-705c94ba8ca8,d32081fc-47d3-4e66-837e-705c94ba8ca8,1,0,69c207c2-7699-4467-b127-286ecd6d0f29,69c207c2-7699-4467-b127-286ecd6d0f29,1,0,70a06a02-8fb8-4a39-9e50-b7c27c41f49f,70a06a02-8fb8-4a39-9e50-b7c27c41f49f,1,0,810755ad-e921-4250-a0d3-af77fe1b6c79,810755ad-e921-4250-a0d3-af77fe1b6c79,1,0,f0f2f6de-b5ca-416c-b2e7-70a2df0993a1,f0f2f6de-b5ca-416c-b2e7-70a2df0993a1,1,0,99a40d71-f47a-4c04-9137-d297eda2fad9,99a40d71-f47a-4c04-9137-d297eda2fad9,1,0,33fa908a-5516-43c8-94d3-28c60eba8d66,33fa908a-5516-43c8-94d3-28c60eba8d66,1,0,f3750ea4-5f9e-4ab3-9495-3f182ecff407,f3750ea4-5f9e-4ab3-9495-3f182ecff407,1,0,14002d51-87d4-4647-92ef-a9b1935cb666,14002d51-87d4-4647-92ef-a9b1935cb666,1,0,e941a39d-1f3c-4e6e-af17-75f92a15dd40,e941a39d-1f3c-4e6e-af17-75f92a15dd40,1,0,d9bbedcb-4872-4183-83c2-6c2aae9634b0,d9bbedcb-4872-4183-83c2-6c2aae9634b0,1,0,72c695c3-66f6-4aa8-8a39-737ec6967a1d,72c695c3-66f6-4aa8-8a39-737ec6967a1d,1,0,2beef1e0-7a59-407e-b454-ee2ec38ca4b3,2beef1e0-7a59-407e-b454-ee2ec38ca4b3,1,0,b57a1d6f-8375-4d57-a2c1-f53e25318ddb,b57a1d6f-8375-4d57-a2c1-f53e25318ddb,1,0,d5d11480-d5c7-4569-80c1-f872655ff084,d5d11480-d5c7-4569-80c1-f872655ff084,1,0,b1e45d36-08e9-430e-976b-03e6e3320c6a,b1e45d36-08e9-430e-976b-03e6e3320c6a,1,0,b5384eb7-40e4-4437-b96b-eab9b7b5b8f2,b5384eb7-40e4-4437-b96b-eab9b7b5b8f2,1,0,8e21374f-5a65-406c-856d-2040607da4bc,8e21374f-5a65-406c-856d-2040607da4bc,1,0,7904d64a-2c30-4434-8924-b4817b727db9,7904d64a-2c30-4434-8924-b4817b727db9,1,0,c550a43a-1240-4f29-9045-a262f37f703a,c550a43a-1240-4f29-9045-a262f37f703a,1,0,86b1feed-ed65-4672-a49a-c52282b40be3,86b1feed-ed65-4672-a49a-c52282b40be3,1,0,85ac42d7-400a-4469-8fcd-e6a14f258792,85ac42d7-400a-4469-8fcd-e6a14f258792,1,0,ec681c28-661c-43e3-9285-9fc606f2d24c,ec681c28-661c-43e3-9285-9fc606f2d24c,1,0,be0fbbfc-5873-41a6-80ef-35ed1b8adb4c,be0fbbfc-5873-41a6-80ef-35ed1b8adb4c,1,0,413c2d03-f717-4503-9723-c605114b2799,413c2d03-f717-4503-9723-c605114b2799,1,0,1b63cbbb-77b1-4e78-a4c7-ddea8ea7294d,1b63cbbb-77b1-4e78-a4c7-ddea8ea7294d,1,0,3e5f5167-8978-4191-b0f6-6a262b848b95,3e5f5167-8978-4191-b0f6-6a262b848b95,1,0,ae3aef9e-df3b-4ebc-912d-2bc581063745,ae3aef9e-df3b-4ebc-912d-2bc581063745,1,0,4ae40e81-f2ab-4ac4-89e5-73545db42de9,4ae40e81-f2ab-4ac4-89e5-73545db42de9,1,0,5c4ecf15-b92d-4610-b2bb-f2331c5c7528,5c4ecf15-b92d-4610-b2bb-f2331c5c7528,1,0,a8c09e65-6e10-4772-b264-6ead83d52fe3,a8c09e65-6e10-4772-b264-6ead83d52fe3,1,0,8850b346-364d-457b-9554-acce031394fe,8850b346-364d-457b-9554-acce031394fe,1,0,797f4377-ee0f-4a2d-be90-a74ac10ef682,797f4377-ee0f-4a2d-be90-a74ac10ef682,1,0,f401c5be-2698-452d-8908-08faad120a47,f401c5be-2698-452d-8908-08faad120a47,1,0,98de52ae-dfab-480b-a167-4cf2a3962ed1,98de52ae-dfab-480b-a167-4cf2a3962ed1,1,0,efa5c204-b827-4860-aadd-3737c8fc5f6b,efa5c204-b827-4860-aadd-3737c8fc5f6b,1,0,ef438c21-9d10-4116-8fc7-03927062db59,ef438c21-9d10-4116-8fc7-03927062db59,1,0,7ffa25d5-5199-4e08-af76-969c17709ad4,7ffa25d5-5199-4e08-af76-969c17709ad4,1,0,a93180c6-fcb7-4b28-b954-d2f2831f1832,a93180c6-fcb7-4b28-b954-d2f2831f1832,1,0,b46fff37-cc0e-4ff4-8fde-6bd9d9b895ec,b46fff37-cc0e-4ff4-8fde-6bd9d9b895ec,1,0,eeeede5e-9534-498e-b820-87a5f919c068,eeeede5e-9534-498e-b820-87a5f919c068,1,0,8b1f81e0-1eb0-4aae-9bb6-b25d97a6c9c2,8b1f81e0-1eb0-4aae-9bb6-b25d97a6c9c2,1,0,55ecc3a2-3d94-4201-8a29-06469e0b1a17,55ecc3a2-3d94-4201-8a29-06469e0b1a17,1,0,4123c760-0e30-48d0-8211-1db84f53314b,4123c760-0e30-48d0-8211-1db84f53314b,1,0,a086da23-29d8-4d02-846b-5d171e14d730,a086da23-29d8-4d02-846b-5d171e14d730,1,0,9ec76352-5e4a-485d-bd93-eb739869e406,9ec76352-5e4a-485d-bd93-eb739869e406,1,0,6d3619e3-d125-44b6-9b51-ebf9505b04d2,6d3619e3-d125-44b6-9b51-ebf9505b04d2,1,0,9d2c802c-c946-44e5-b9bc-13ef534968cd,9d2c802c-c946-44e5-b9bc-13ef534968cd,1,0,8046b46e-d855-4a80-8270-72a104e4a941,8046b46e-d855-4a80-8270-72a104e4a941,1,0,4524e15c-4c35-4e1d-910f-5859b5702dff,4524e15c-4c35-4e1d-910f-5859b5702dff,1,0,e200002c-9f3a-49d9-bba1-dca11555511d,e200002c-9f3a-49d9-bba1-dca11555511d,1,0,efa0f74a-7ec0-42f4-a948-7ce3890559d8,efa0f74a-7ec0-42f4-a948-7ce3890559d8,1,0,97e11b91-9590-44b3-afcd-f465ce23e509,97e11b91-9590-44b3-afcd-f465ce23e509,1,0,301c1fc5-ca0a-4fac-ac51-c2e42fb3c2a8,301c1fc5-ca0a-4fac-ac51-c2e42fb3c2a8,1,0,6f2d0c99-3354-4924-959c-59320e1b0063,6f2d0c99-3354-4924-959c-59320e1b0063,1,0,aee8df57-983b-440d-9c02-cace7e632f15,aee8df57-983b-440d-9c02-cace7e632f15,1,0,6e9648dd-388f-4563-88b0-feddc6e9ce8e,6e9648dd-388f-4563-88b0-feddc6e9ce8e,1,0,eb975d96-d230-4454-8f14-6bf5522e06d2,eb975d96-d230-4454-8f14-6bf5522e06d2,1,0,6aa6513c-6f3b-4897-96fd-4a08aeb9eb1e,6aa6513c-6f3b-4897-96fd-4a08aeb9eb1e,1,0,c29d3ae4-9458-46b8-a09b-012e5d435d43,c29d3ae4-9458-46b8-a09b-012e5d435d43,1,0,dad62d28-168c-4659-a800-e484772d9003,dad62d28-168c-4659-a800-e484772d9003,1,0,4cada7d2-f1b1-4914-95fc-c5e1431c13a7,4cada7d2-f1b1-4914-95fc-c5e1431c13a7,1,0,ecbe1ead-4e4b-49db-b7f1-c097c9df2fb9,ecbe1ead-4e4b-49db-b7f1-c097c9df2fb9,1,0,be026f77-285b-4470-8a4e-c68f6e9859e2,be026f77-285b-4470-8a4e-c68f6e9859e2,1,0,a9d54a18-9c35-471b-ad8b-44ba743b7977,a9d54a18-9c35-471b-ad8b-44ba743b7977,1,0,4f75014c-831f-4de5-8b6e-94874ce274ce,4f75014c-831f-4de5-8b6e-94874ce274ce,1,0,c9f74923-95e1-4f5c-8649-3543fae6b116,c9f74923-95e1-4f5c-8649-3543fae6b116,1,0,b00616bb-406d-4e8e-80a0-f0c14cc850c0,b00616bb-406d-4e8e-80a0-f0c14cc850c0,1,0,d60aae4f-7c61-416c-bbc9-e7c95d757848,d60aae4f-7c61-416c-bbc9-e7c95d757848,1,0,c8a0da4e-0b0f-4def-a61e-5f6e04468e01,c8a0da4e-0b0f-4def-a61e-5f6e04468e01,1,0,a55e9aef-79ad-4cb6-b80a-c7f769bebbea,a55e9aef-79ad-4cb6-b80a-c7f769bebbea,1,0,c26283d2-dda1-438c-a444-05bdd2797691,c26283d2-dda1-438c-a444-05bdd2797691,1,0,3ae1ecf1-e062-4e89-96d6-9ac88bbc8aa8,3ae1ecf1-e062-4e89-96d6-9ac88bbc8aa8,1,0,62f9c12c-1837-4320-99b0-8f7ae44af735,62f9c12c-1837-4320-99b0-8f7ae44af735,1,0,ae352e0c-9f89-4ed9-ab45-f4e9040f7858,ae352e0c-9f89-4ed9-ab45-f4e9040f7858,1,0,853a5fdc-3621-442c-abd3-2fd266fddd84,853a5fdc-3621-442c-abd3-2fd266fddd84,1,0,daaff4d7-bc0b-4ab5-a277-fc02472f76ed,daaff4d7-bc0b-4ab5-a277-fc02472f76ed,1,0,bc3183cb-8691-4fa5-b154-3645f3cd8944,bc3183cb-8691-4fa5-b154-3645f3cd8944,1,0,33c9ebee-7b42-4010-a5c9-71ca7479d95c,33c9ebee-7b42-4010-a5c9-71ca7479d95c,1,0,cf202dca-e0ee-45c8-8792-46fc2f126e68,cf202dca-e0ee-45c8-8792-46fc2f126e68,1,0,be150cca-e977-4663-af19-79d8b0f91b3d,be150cca-e977-4663-af19-79d8b0f91b3d,1,0,f12857d7-bcae-4c6c-9169-2a0b1f9e9e6a,f12857d7-bcae-4c6c-9169-2a0b1f9e9e6a,1,0,1c13d12d-5c96-4d96-a07d-ec4a766c86ac,1c13d12d-5c96-4d96-a07d-ec4a766c86ac,1,0,018390b5-06d9-4d04-abad-1de1ccf0843c,018390b5-06d9-4d04-abad-1de1ccf0843c,1,0,a8b828da-6172-4732-a01e-c5127175cd60,a8b828da-6172-4732-a01e-c5127175cd60,1,0,6279f4bc-b77f-4618-9ce3-d50efc798871,6279f4bc-b77f-4618-9ce3-d50efc798871,1,0,fb05b40b-8cf5-4821-afcb-f00a77458a9b,fb05b40b-8cf5-4821-afcb-f00a77458a9b,1,0,37c68cb5-6aaf-4e57-b68c-1a5b5db252b7,37c68cb5-6aaf-4e57-b68c-1a5b5db252b7,1,0,3967bec7-9af5-40bf-9e22-a0f6b13cc795,3967bec7-9af5-40bf-9e22-a0f6b13cc795,1,0,eab9da25-07b6-4c60-9a83-08e8277d0ae7,eab9da25-07b6-4c60-9a83-08e8277d0ae7,1,0,b79ed991-f5d9-42b6-8f0b-0df49e550ced,b79ed991-f5d9-42b6-8f0b-0df49e550ced,1,0,ac50e8d6-fe0b-45a4-b0dd-cc81d7fd7357,ac50e8d6-fe0b-45a4-b0dd-cc81d7fd7357,1,0,f58a3df1-ddf3-45c8-b470-cc026cb0537f,f58a3df1-ddf3-45c8-b470-cc026cb0537f,1,0,c4e9954b-59d8-46e3-ada8-bda66e8aaceb,c4e9954b-59d8-46e3-ada8-bda66e8aaceb,1,0,9ac5a405-4eb7-4013-8bbd-5d1b6d0929ab,9ac5a405-4eb7-4013-8bbd-5d1b6d0929ab,1,0,568c16cf-c3fc-4e16-8f05-e00be8e136c2,568c16cf-c3fc-4e16-8f05-e00be8e136c2,1,0,b36ad726-fb8f-4974-986a-33f997e3fc64,b36ad726-fb8f-4974-986a-33f997e3fc64,1,0,e196c73e-c09b-4aed-b403-2b97a8bf6e47,e196c73e-c09b-4aed-b403-2b97a8bf6e47,1,0,27fdab52-f1ab-48d3-b117-06afcf319eaa,27fdab52-f1ab-48d3-b117-06afcf319eaa,1,0,bf3530c3-3244-4528-a846-ea175af53804,bf3530c3-3244-4528-a846-ea175af53804,1,0,5bdfff5e-f04c-4fe3-ae92-10a99da3a6a8,5bdfff5e-f04c-4fe3-ae92-10a99da3a6a8,1,0,3d0ae989-2d16-42df-a442-7bde817ec1b2,3d0ae989-2d16-42df-a442-7bde817ec1b2,1,0,f3d1adac-197a-4194-89fe-7178f8ccd788,f3d1adac-197a-4194-89fe-7178f8ccd788,1,0,7077b04e-75c0-414d-b295-d28aeda2bdd4,7077b04e-75c0-414d-b295-d28aeda2bdd4,1,0,c8330995-22f4-4be6-beff-64f87c6f09ed,c8330995-22f4-4be6-beff-64f87c6f09ed,1,0,56b6b570-764b-4220-9b5f-70753b0fadbd,56b6b570-764b-4220-9b5f-70753b0fadbd,1,0,588f481e-4486-4649-b584-08f7e3ab8cde,588f481e-4486-4649-b584-08f7e3ab8cde,1,0,5dfe90e2-cb1a-4510-b22c-af94ca06dd7b,5dfe90e2-cb1a-4510-b22c-af94ca06dd7b,1,0,70c217b8-ddf0-4b7c-80b0-f5a76dbbcec7,70c217b8-ddf0-4b7c-80b0-f5a76dbbcec7,1,0,74e3e5c4-7dec-4fde-975b-01e7f4002a87,74e3e5c4-7dec-4fde-975b-01e7f4002a87,1,0,689b382f-308e-4558-817c-819ceb59f61e,689b382f-308e-4558-817c-819ceb59f61e,1,0,ed96d8d2-3164-4a85-8408-06d9a1f0c2ce,ed96d8d2-3164-4a85-8408-06d9a1f0c2ce,1,0,2482e800-50c9-4c7c-909f-18ba2e30ff31,2482e800-50c9-4c7c-909f-18ba2e30ff31,1,0,fdb20bf0-6dc5-4ce6-acdc-4def1cc23a67,fdb20bf0-6dc5-4ce6-acdc-4def1cc23a67,1,0,b528d506-be3f-47f2-880b-af7093c71649,b528d506-be3f-47f2-880b-af7093c71649,1,0,7f3f55d5-b1f5-4b6b-b189-ff5715341489,7f3f55d5-b1f5-4b6b-b189-ff5715341489,1,0,5a32d342-8b80-4069-98c3-cf392f473b06,5a32d342-8b80-4069-98c3-cf392f473b06,1,0,888c5a1f-5329-40da-9102-eac26657a7d9,888c5a1f-5329-40da-9102-eac26657a7d9,1,0,75daf728-ee8c-41a4-a249-8db123bb802e,75daf728-ee8c-41a4-a249-8db123bb802e,1,0,0b154103-47b5-4c54-a4ea-60aa41190940,0b154103-47b5-4c54-a4ea-60aa41190940,1,0,1eb52621-8915-46f4-b1bb-db04bb58b065,1eb52621-8915-46f4-b1bb-db04bb58b065,1,0,d0fcb0f9-6d6c-444a-8b32-4287a963f72b,d0fcb0f9-6d6c-444a-8b32-4287a963f72b,1,0,1d583292-1820-498a-890a-66f5b154e698,1d583292-1820-498a-890a-66f5b154e698,1,0,a3b0430c-743d-4351-a928-9be3c8db9a0b,a3b0430c-743d-4351-a928-9be3c8db9a0b,1,0,f094241b-ae82-426c-92b0-18be87566ad6,f094241b-ae82-426c-92b0-18be87566ad6,1,0,1a570b62-6644-4427-a432-c6823c7d522a,1a570b62-6644-4427-a432-c6823c7d522a,1,0,7bae5ebc-85a5-43eb-8dfa-bc75cd54c013,7bae5ebc-85a5-43eb-8dfa-bc75cd54c013,1,0,0b2c1689-22ba-4ed6-80f3-10475f11db1a,0b2c1689-22ba-4ed6-80f3-10475f11db1a,1,0,46bbfede-5b4d-44fc-90ec-f6f3598340c4,46bbfede-5b4d-44fc-90ec-f6f3598340c4,1,0,acc6358f-be29-4931-8ed2-b769a48cee08,acc6358f-be29-4931-8ed2-b769a48cee08,1,0,51c58d33-32f7-401a-84d4-5a942129fbd5,51c58d33-32f7-401a-84d4-5a942129fbd5,1,0,07d5174e-8422-471f-a435-bf51d5af1bf0,07d5174e-8422-471f-a435-bf51d5af1bf0,1,0,e58672f5-84c9-462f-b5a6-7f15a6f2f797,e58672f5-84c9-462f-b5a6-7f15a6f2f797,1,0,4fbb189a-ecf0-483f-a904-0c34b1c23433,4fbb189a-ecf0-483f-a904-0c34b1c23433,1,0,2a34c9e8-eb4f-4600-988e-594ac7399abc,2a34c9e8-eb4f-4600-988e-594ac7399abc,1,0,256618cc-0956-4cda-9691-e4ced68a791f,256618cc-0956-4cda-9691-e4ced68a791f,1,0,e20593fd-b3e3-41d2-8c8d-97b5d6148fa4,e20593fd-b3e3-41d2-8c8d-97b5d6148fa4,1,0,4b9771a7-b924-4e61-8468-4633e3c54706,4b9771a7-b924-4e61-8468-4633e3c54706,1,0,bc846fc8-3c67-45f8-9c5c-69bf1190baf9,bc846fc8-3c67-45f8-9c5c-69bf1190baf9,1,0,667de710-cee5-4a97-8434-641d199f3b68,667de710-cee5-4a97-8434-641d199f3b68,1,0,e9a2320b-71a1-4974-8b5a-1990062ec7df,e9a2320b-71a1-4974-8b5a-1990062ec7df,1,0,2e459a7c-c448-4db4-ae21-e59646527030,2e459a7c-c448-4db4-ae21-e59646527030,1,0,891194d9-9f02-4b22-89cd-941181c83ecb,891194d9-9f02-4b22-89cd-941181c83ecb,1,0,a4d3b738-9ae3-46a9-ac21-7ac3d081c727,a4d3b738-9ae3-46a9-ac21-7ac3d081c727,1,0,f6e85eeb-d81b-4526-9a33-ab77bd447236,f6e85eeb-d81b-4526-9a33-ab77bd447236,1,0,470e37fe-d149-4007-b397-12fc84f93041,470e37fe-d149-4007-b397-12fc84f93041,1,0,f8d9068d-8a4e-4b23-b5ca-5b9ddce1f60f,f8d9068d-8a4e-4b23-b5ca-5b9ddce1f60f,1,0,7175cfa0-885c-4807-98ec-af255dcd55d9,7175cfa0-885c-4807-98ec-af255dcd55d9,1,0,f5b66759-8102-4cba-a3fd-ee96db5bc809,f5b66759-8102-4cba-a3fd-ee96db5bc809,1,0,af6bccbb-a6cb-41ee-bc4e-f2d6a5e0f419,af6bccbb-a6cb-41ee-bc4e-f2d6a5e0f419,1,0,d08679db-f83f-476e-b8c4-f3f52c3cf6fd,d08679db-f83f-476e-b8c4-f3f52c3cf6fd,1,0,fad0898f-5769-46ab-bc5e-301924b851a0,fad0898f-5769-46ab-bc5e-301924b851a0,1,0,e0227e4b-be22-4614-8980-5d573fae705d,e0227e4b-be22-4614-8980-5d573fae705d,1,0,7a7b7882-a4c1-40c8-a807-cb2d71d054cc,7a7b7882-a4c1-40c8-a807-cb2d71d054cc,1,0,6f36007b-04dc-4007-abf7-e20fbd126b97,6f36007b-04dc-4007-abf7-e20fbd126b97,1,0,791dbdee-56f6-4fe3-ada4-965c9111d69e,791dbdee-56f6-4fe3-ada4-965c9111d69e,1,0,66ef1631-277b-4c22-99d7-1434b4dbbb3f,66ef1631-277b-4c22-99d7-1434b4dbbb3f,1,0,aa6444a8-6c17-4207-a623-9b734e08e30e,aa6444a8-6c17-4207-a623-9b734e08e30e,1,0,898535ff-50cd-464a-aadc-5e4f9de15b04,898535ff-50cd-464a-aadc-5e4f9de15b04,1,0,385e209d-65aa-43b1-8591-f92544882740,385e209d-65aa-43b1-8591-f92544882740,1,0,e33c736b-f1a3-4cb4-b78b-65fd2d44b10f,e33c736b-f1a3-4cb4-b78b-65fd2d44b10f,1,0,7cfa5a37-b9f8-43e4-ae33-e3a7251dd052,7cfa5a37-b9f8-43e4-ae33-e3a7251dd052,1,0,2f8a5b9d-ab86-492b-85d1-5a28535b2ebc,2f8a5b9d-ab86-492b-85d1-5a28535b2ebc,1,0,737f6f1b-9ffc-4916-b378-7321eab1f886,737f6f1b-9ffc-4916-b378-7321eab1f886,1,0,8381bc76-0e0f-4196-9911-ec05730cb1c9,8381bc76-0e0f-4196-9911-ec05730cb1c9,1,0,01dedf5b-2cce-4d24-81ea-2e3af82f5794,01dedf5b-2cce-4d24-81ea-2e3af82f5794,1,0,771a1900-46be-49fe-a02d-584780de8363,771a1900-46be-49fe-a02d-584780de8363,1,0,f81b1f2d-6fde-4861-8fee-1dbe6acf3985,f81b1f2d-6fde-4861-8fee-1dbe6acf3985,1,0,b62eecf6-6ee3-4a70-a4d6-3f064ae35c43,b62eecf6-6ee3-4a70-a4d6-3f064ae35c43,1,0,9bf2525c-e8fc-44e6-ac14-7df3208dbb0f,9bf2525c-e8fc-44e6-ac14-7df3208dbb0f,1,0,a2faa3f8-5064-4fbf-a90e-26d15c021cd3,a2faa3f8-5064-4fbf-a90e-26d15c021cd3,1,0,527ea8ca-e723-454a-8e9e-f2e7a38e62ee,527ea8ca-e723-454a-8e9e-f2e7a38e62ee,1,0,ef257b20-da10-4cda-8b9d-7de2d68a2f71,ef257b20-da10-4cda-8b9d-7de2d68a2f71,1,0,de0d41b7-acc0-4ebc-8933-d6b5ad351860,de0d41b7-acc0-4ebc-8933-d6b5ad351860,1,0,acd30e63-68dc-4ab2-a6fe-16eb69d09271,acd30e63-68dc-4ab2-a6fe-16eb69d09271,1,0,04013c34-8d59-4f87-b272-732d5a6dd675,04013c34-8d59-4f87-b272-732d5a6dd675,1,0,f9df9b6b-5051-46ef-bb1f-1974f41054a7,f9df9b6b-5051-46ef-bb1f-1974f41054a7,1,0,9ef5dd5e-1f26-4187-90a0-a3ac7aaabc1d,9ef5dd5e-1f26-4187-90a0-a3ac7aaabc1d,1,0,1a354069-07ea-40e0-bbac-e1b6232750c2,1a354069-07ea-40e0-bbac-e1b6232750c2,1,0,df31548b-0b8e-412b-999a-761970ae3c23,df31548b-0b8e-412b-999a-761970ae3c23,1,0,05135747-43e7-4b61-bc30-57b3289ea923,05135747-43e7-4b61-bc30-57b3289ea923,1,0,6d63728d-3384-4131-b890-1b82d14a04b7,6d63728d-3384-4131-b890-1b82d14a04b7,1,0,13b3c973-6be3-4898-89d5-20852cd14e46,13b3c973-6be3-4898-89d5-20852cd14e46,1,0,d978d078-4fd8-40b9-90c2-047cdaf94cba,d978d078-4fd8-40b9-90c2-047cdaf94cba,1,0,8640eacd-e6f9-4b0b-8511-c6ad2336ec6c,8640eacd-e6f9-4b0b-8511-c6ad2336ec6c,1,0,b374e22f-17f3-4186-af1f-fa35d1a7e559,b374e22f-17f3-4186-af1f-fa35d1a7e559,1,0,53555ee4-f99d-4935-a884-89313aa3ca6a,53555ee4-f99d-4935-a884-89313aa3ca6a,1,0,51811ea1-2ce7-4ea2-9ff0-e8ed4c5ca94c,51811ea1-2ce7-4ea2-9ff0-e8ed4c5ca94c,1,0,e030f3d6-84dc-4c07-9760-6f010a6dd3be,e030f3d6-84dc-4c07-9760-6f010a6dd3be,1,0,bd3df097-9807-4a42-9959-60cca34966c5,bd3df097-9807-4a42-9959-60cca34966c5,1,0,098211f6-8009-421e-a11a-1fdb6df42c4d,098211f6-8009-421e-a11a-1fdb6df42c4d,1,0,ae1192da-f17d-4527-b9cb-4f4cce810985,ae1192da-f17d-4527-b9cb-4f4cce810985,1,0,f38bb317-8a59-4786-be76-e1d4e534628d,f38bb317-8a59-4786-be76-e1d4e534628d,1,0,25741b39-1c6b-4851-8584-9711d25ef05a,25741b39-1c6b-4851-8584-9711d25ef05a,1,0,f4554046-493e-4960-94df-0a8b9d02f474,f4554046-493e-4960-94df-0a8b9d02f474,1,0,06abad33-2d69-4e8b-a16c-8aa0d4422d5a,06abad33-2d69-4e8b-a16c-8aa0d4422d5a,1,0,9222a6c0-b785-4811-bfb6-44ac44a55925,9222a6c0-b785-4811-bfb6-44ac44a55925,1,0,ea84021d-2431-44ad-a446-f1fb979c9e96,ea84021d-2431-44ad-a446-f1fb979c9e96,1,0,d86acdeb-fa70-4d1c-bd0c-1b4ea30c03dd,d86acdeb-fa70-4d1c-bd0c-1b4ea30c03dd,1,0,8fa21575-177f-4b7c-94b5-dfeefe737cb4,8fa21575-177f-4b7c-94b5-dfeefe737cb4,1,0,6da034af-0481-4a3c-aff9-c50ced6f21d4,6da034af-0481-4a3c-aff9-c50ced6f21d4,1,0,d07016c8-7d97-42cd-865b-85b49075adfb,d07016c8-7d97-42cd-865b-85b49075adfb,1,0,491a2337-1bf9-45c1-8ae6-95605ef41992,491a2337-1bf9-45c1-8ae6-95605ef41992,1,0,c3f2a760-610a-40e0-945b-1f9f6369444d,c3f2a760-610a-40e0-945b-1f9f6369444d,1,0,9202335d-50bb-4282-9438-24c7fb9cf637,9202335d-50bb-4282-9438-24c7fb9cf637,1,0,a62906e5-27f8-4e72-8769-9a3eed6997d7,a62906e5-27f8-4e72-8769-9a3eed6997d7,1,0,783536d7-c0db-44c9-96e8-58b57804d7c8,783536d7-c0db-44c9-96e8-58b57804d7c8,1,0,a8295435-c2c4-4aff-874b-7412556aa76d,a8295435-c2c4-4aff-874b-7412556aa76d,1,0,f6c4e24b-172b-4ba3-8e3e-988306ade660,f6c4e24b-172b-4ba3-8e3e-988306ade660,1,0,9baab24c-a5a3-46f4-ad17-a28d4a49f851,9baab24c-a5a3-46f4-ad17-a28d4a49f851,1,0,6900c947-150c-4842-b37d-99f9b704f0a5,6900c947-150c-4842-b37d-99f9b704f0a5,1,0,d1952319-0e42-4684-a386-fbe7c24526c2,d1952319-0e42-4684-a386-fbe7c24526c2,1,0,01cd59fc-8577-4b3c-9d69-6db75e81e7c4,01cd59fc-8577-4b3c-9d69-6db75e81e7c4,1,0,83b47a9d-d44b-4c40-becd-df74f9cb2e91,83b47a9d-d44b-4c40-becd-df74f9cb2e91,1,0,d03e636e-ff88-4e96-bf3c-d795d10cbcb0,d03e636e-ff88-4e96-bf3c-d795d10cbcb0,1,0,86e2a2eb-160f-4e93-a449-b2f726286d1b,86e2a2eb-160f-4e93-a449-b2f726286d1b,1,0,8e6e1f24-83bf-42c2-9eda-b3874c7910c3,8e6e1f24-83bf-42c2-9eda-b3874c7910c3,1,0,364184c2-ec71-44be-b40c-ba719b4ab0e1,364184c2-ec71-44be-b40c-ba719b4ab0e1,1,0,7ef46c54-ec0c-4211-a750-e5949956b593,7ef46c54-ec0c-4211-a750-e5949956b593,1,0,04823681-875e-459a-b3cf-051c89527f38,04823681-875e-459a-b3cf-051c89527f38,1,0,8e115a0c-a17c-4d7e-bd2c-305fb53d09ca,8e115a0c-a17c-4d7e-bd2c-305fb53d09ca,1,0,38265f08-3301-40d1-b630-a319c983e826,38265f08-3301-40d1-b630-a319c983e826,1,0,5175c496-bac7-4c57-9628-793b727aecd0,5175c496-bac7-4c57-9628-793b727aecd0,1,0,1453309e-77d0-444d-ac3f-fd7c2cb65c0c,1453309e-77d0-444d-ac3f-fd7c2cb65c0c,1,0,fc42df4a-93f0-461f-acfe-fea09158030f,fc42df4a-93f0-461f-acfe-fea09158030f,1,0,9f0a7909-0b97-48a7-964f-a52cb3c19c4e,9f0a7909-0b97-48a7-964f-a52cb3c19c4e,1,0,6d002aef-00c9-4069-80df-153151218831,6d002aef-00c9-4069-80df-153151218831,1,0,4fec3a6c-5a99-4763-aa07-d5de8712559e,4fec3a6c-5a99-4763-aa07-d5de8712559e,1,0,968a1202-d271-43e0-bfd4-d38e49ceadd4,968a1202-d271-43e0-bfd4-d38e49ceadd4,1,0,c80e2ef7-93b6-4cef-806a-2dfcf2fd80e6,c80e2ef7-93b6-4cef-806a-2dfcf2fd80e6,1,0,b3b4fbf1-cbf0-4ee2-a490-4d657693479b,b3b4fbf1-cbf0-4ee2-a490-4d657693479b,1,0,ea61e442-273e-4ce4-a806-8090893729ba,ea61e442-273e-4ce4-a806-8090893729ba,1,0,aef03c0b-2846-43b7-b382-9a51ec783e85,aef03c0b-2846-43b7-b382-9a51ec783e85,1,0,e7100f2b-d169-4635-ab87-7a2225ff12ee,e7100f2b-d169-4635-ab87-7a2225ff12ee,1,0,c0804a4a-64d5-457f-a542-8e5badccbdf1,c0804a4a-64d5-457f-a542-8e5badccbdf1,1,0,d6bd5459-6f95-4f9c-8d84-c67bdc716acf,d6bd5459-6f95-4f9c-8d84-c67bdc716acf,1,0,4a2d2790-debf-4dc2-8216-878d8808d161,4a2d2790-debf-4dc2-8216-878d8808d161,1,0,6dcbb379-d4f5-418a-a3ab-bb7c0e169058,6dcbb379-d4f5-418a-a3ab-bb7c0e169058,1,0,4507a92e-abb6-4329-88b2-3429bc694bc6,4507a92e-abb6-4329-88b2-3429bc694bc6,1,0,2694c1b4-536b-4187-adf6-0f8757aaae76,2694c1b4-536b-4187-adf6-0f8757aaae76,1,0,e523f88b-b3de-476e-a3cc-592970492dec,e523f88b-b3de-476e-a3cc-592970492dec,1,0,0e2107e2-8648-4b2e-9dfb-c23b1ff5b007,0e2107e2-8648-4b2e-9dfb-c23b1ff5b007,1,0,efb6b3b6-d57b-469f-a7c2-f4e0308d0c7f,efb6b3b6-d57b-469f-a7c2-f4e0308d0c7f,1,0,ea0843f4-60fb-4d44-abf4-0021867c636b,ea0843f4-60fb-4d44-abf4-0021867c636b,1,0,59aadc03-adbc-481f-89bc-d7f391789522,59aadc03-adbc-481f-89bc-d7f391789522,1,0,254f6ccd-0451-4231-91c9-4abe57b647be,254f6ccd-0451-4231-91c9-4abe57b647be,1,0,1e2d790c-0076-413a-b5fb-f25c01ab6ad5,1e2d790c-0076-413a-b5fb-f25c01ab6ad5,1,0,0dcc537b-76b3-4e73-b060-6cbdcf6345db,0dcc537b-76b3-4e73-b060-6cbdcf6345db,1,0,ae662b53-e11e-4b59-be52-b9d4ab00c4a4,ae662b53-e11e-4b59-be52-b9d4ab00c4a4,1,0,ce55df94-71e4-46ac-9b3b-bdae5d336b0a,ce55df94-71e4-46ac-9b3b-bdae5d336b0a,1,0,7601fa7e-079a-4347-abea-e161b2d00783,7601fa7e-079a-4347-abea-e161b2d00783,1,0,ee84cb40-f82d-4558-91be-229d68ad9f4a,ee84cb40-f82d-4558-91be-229d68ad9f4a,1,0,101a7eff-9556-4165-879a-a7c8a852e236,101a7eff-9556-4165-879a-a7c8a852e236,1,0,01775932-3603-4efc-9235-abdb97490dea,01775932-3603-4efc-9235-abdb97490dea,1,0,7637844b-4059-4f8a-8436-b4f4e8cb4f74,7637844b-4059-4f8a-8436-b4f4e8cb4f74,1,0,b6bb4cbe-b6fa-4d28-b372-0b959951ad4d,b6bb4cbe-b6fa-4d28-b372-0b959951ad4d,1,0,0ee5b788-61dc-464b-86da-f985df7704b6,0ee5b788-61dc-464b-86da-f985df7704b6,1,0,1c2da2ac-e797-11e6-0489-a8667f21fde4,1c2da2ac-e797-11e6-0489-a8667f21fde4,1,0,2375c6a8-9799-4b7c-a48d-091a90c67693,2375c6a8-9799-4b7c-a48d-091a90c67693,1,0,3d3c3360-4502-4ad4-bbe9-35d4ba9b54b3,3d3c3360-4502-4ad4-bbe9-35d4ba9b54b3,1,0,df7892fe-e796-11e6-0489-a8667f21fde4,df7892fe-e796-11e6-0489-a8667f21fde4,1,0,9b0671c6-6e92-42e6-9cf4-13d4be11f27d,9b0671c6-6e92-42e6-9cf4-13d4be11f27d,1,0,63c6522f-be04-422a-b4f4-0f55f58b09a8,63c6522f-be04-422a-b4f4-0f55f58b09a8,1,0,be919dc1-a377-43e1-82e6-ce946cabdd55,be919dc1-a377-43e1-82e6-ce946cabdd55,1,0,6b17a0fc-4d6f-4189-9067-c58a95f04dd7,6b17a0fc-4d6f-4189-9067-c58a95f04dd7,1,0,9ded532e-9e60-4895-a4c5-4ea6697aa83c,9ded532e-9e60-4895-a4c5-4ea6697aa83c,1,0,106c5159-ffc7-4059-b3e3-acf74326a44f,106c5159-ffc7-4059-b3e3-acf74326a44f,1,0,d39fd717-1a69-4fd3-889e-4fa9abefea1c,d39fd717-1a69-4fd3-889e-4fa9abefea1c,1,0,fae8b26c-e796-11e6-0489-a8667f21fde4,fae8b26c-e796-11e6-0489-a8667f21fde4,1,0,5b85e6df-7493-4201-97ad-2aea14de6006,5b85e6df-7493-4201-97ad-2aea14de6006,1,0,061e6c0f-ba52-40ec-96ad-2eba3eee3097,061e6c0f-ba52-40ec-96ad-2eba3eee3097,1,0,d77e3c65-e9fd-4ba7-885f-a8a2f4c827d2,d77e3c65-e9fd-4ba7-885f-a8a2f4c827d2,1,0,4fb86bf3-02ad-4f0e-85a9-98be6c350a06,4fb86bf3-02ad-4f0e-85a9-98be6c350a06,1,0,4840753b-e2e1-4e67-b35f-2f5eab7754f5,4840753b-e2e1-4e67-b35f-2f5eab7754f5,1,0,4095c9e7-83ab-4db9-a2d0-a9f4ef9ee53e,4095c9e7-83ab-4db9-a2d0-a9f4ef9ee53e,1,0,6ffd9c17-d90b-4d19-b337-0fbc2c717557,6ffd9c17-d90b-4d19-b337-0fbc2c717557,1,0,9a11a6bd-0c13-4be2-9e34-b12b7554f3c9,9a11a6bd-0c13-4be2-9e34-b12b7554f3c9,1,0,3bb83275-7a0e-420f-8c6b-028038f11a8c,3bb83275-7a0e-420f-8c6b-028038f11a8c,1,0,e1950a23-f6e7-48af-b78a-77aa61f08ece,e1950a23-f6e7-48af-b78a-77aa61f08ece,1,0,1cc3d7c4-9178-4a40-86ea-2bbc1f5aa69f,1cc3d7c4-9178-4a40-86ea-2bbc1f5aa69f,1,0,3eba3f44-b58b-4541-be75-a72a059ef371,3eba3f44-b58b-4541-be75-a72a059ef371,1,0,7e73f7e0-6a6c-425b-9ac3-375b12383f3f,7e73f7e0-6a6c-425b-9ac3-375b12383f3f,1,0,0a7d282e-45bb-4a87-b325-1659519867fb,0a7d282e-45bb-4a87-b325-1659519867fb,1,0,790735cf-f6e2-4b0d-bb16-c5b9ea95efae,790735cf-f6e2-4b0d-bb16-c5b9ea95efae,1,0,9167a91a-0fe6-45b5-ab9d-e2c9eaa93f67,9167a91a-0fe6-45b5-ab9d-e2c9eaa93f67,1,0,02597e1e-6c6a-4bd8-a8f8-1b6d62a8f21a,02597e1e-6c6a-4bd8-a8f8-1b6d62a8f21a,1,0,5d726fa3-bde0-4d97-a577-415857bbb5c1,5d726fa3-bde0-4d97-a577-415857bbb5c1,1,0,f63d0e2d-4685-4ac5-b22c-1b83e3ab955f,f63d0e2d-4685-4ac5-b22c-1b83e3ab955f,1,0,49068231-202c-4ac6-a39a-69207cb597dd,49068231-202c-4ac6-a39a-69207cb597dd,1,0,5a470575-e012-42ad-9ad7-53930a8e843f,5a470575-e012-42ad-9ad7-53930a8e843f,1,0,5872d4ed-6503-422d-bcf9-63a8df3e777d,5872d4ed-6503-422d-bcf9-63a8df3e777d,1,0,e21cda29-2579-485e-a207-20b76f719c80,e21cda29-2579-485e-a207-20b76f719c80,1,0,1b232a57-2833-42c6-b318-38dae2af1ab2,1b232a57-2833-42c6-b318-38dae2af1ab2,1,0,007ade8c-b102-408b-b877-b531e046560b,007ade8c-b102-408b-b877-b531e046560b,1,0,a8dfea6c-0c21-456d-96ab-f4bb5d579b13,a8dfea6c-0c21-456d-96ab-f4bb5d579b13,1,0,305f1ef1-4f9c-40a2-a978-3a4c0ecf75d4,305f1ef1-4f9c-40a2-a978-3a4c0ecf75d4,1,0,eb69c41a-392d-43bb-9b67-a0adcb651b1e,eb69c41a-392d-43bb-9b67-a0adcb651b1e,1,0,93b01c88-48a2-4753-b443-0e9892395a8f,93b01c88-48a2-4753-b443-0e9892395a8f,1,0,0b7f8e05-bb34-47cc-9775-04362e814316,0b7f8e05-bb34-47cc-9775-04362e814316,1,0,e71e0297-3709-4247-933e-18a6350cbf39,e71e0297-3709-4247-933e-18a6350cbf39,1,0,fbe493f8-cf58-4ca8-b7fb-3923771dd5e9,fbe493f8-cf58-4ca8-b7fb-3923771dd5e9,1,0,0b32e372-c6ad-4dda-acd1-8b5d58537d37,0b32e372-c6ad-4dda-acd1-8b5d58537d37,1,0,602dac6f-abe6-407a-92d3-7f1613e5dda6,602dac6f-abe6-407a-92d3-7f1613e5dda6,1,0,db03a88b-2804-45c2-9089-7ddb87ef2f18,db03a88b-2804-45c2-9089-7ddb87ef2f18,1,0,df6417d1-c722-4a87-a543-5d2c31795b20,df6417d1-c722-4a87-a543-5d2c31795b20,1,0,f2f210f3-a114-4788-9172-9133dc95b832,f2f210f3-a114-4788-9172-9133dc95b832,1,0,526a85c9-3a8d-4044-adb9-fd0689c70601,526a85c9-3a8d-4044-adb9-fd0689c70601,1,0,c4203772-580c-4db1-9bde-8925faa90688,c4203772-580c-4db1-9bde-8925faa90688,1,0,f64a91c4-f5cb-4e8e-8387-9f242ce6de44,f64a91c4-f5cb-4e8e-8387-9f242ce6de44,1,0,dc024d33-1715-40da-9c00-443d25a31ebc,dc024d33-1715-40da-9c00-443d25a31ebc,1,0,16b68fad-30fb-4c1d-ab96-2d14a2e6ae03,16b68fad-30fb-4c1d-ab96-2d14a2e6ae03,1,0,d029aa93-fea4-40e4-8cfb-2dc96544829b,d029aa93-fea4-40e4-8cfb-2dc96544829b,1,0,f8f585d1-01a0-4892-8852-c692ffaa1344,f8f585d1-01a0-4892-8852-c692ffaa1344,1,0,35c237a7-71e1-415c-809d-e99babee4e0e,35c237a7-71e1-415c-809d-e99babee4e0e,1,0,2116119f-7637-45a1-8e59-c9149619413b,2116119f-7637-45a1-8e59-c9149619413b,1,0,43882a2c-b625-4cfb-8220-3d12bfee09e4,43882a2c-b625-4cfb-8220-3d12bfee09e4,1,0,90639fdb-144d-495a-a097-76c45107fc97,90639fdb-144d-495a-a097-76c45107fc97,1,0,24ce9257-6dcf-4ba6-839e-1e635c069e75,24ce9257-6dcf-4ba6-839e-1e635c069e75,1,0,ecb2048d-4c1d-4194-a728-604734683b3b,ecb2048d-4c1d-4194-a728-604734683b3b,1,0,b33e046c-b580-4c90-940d-71f38d9ceff2,b33e046c-b580-4c90-940d-71f38d9ceff2,1,0,84d76e6b-0418-47d0-9df2-95e0116517be,84d76e6b-0418-47d0-9df2-95e0116517be,1,0,c076b7fd-7e17-4811-82e7-047e2bf43bb0,c076b7fd-7e17-4811-82e7-047e2bf43bb0,1,0,84b28732-9001-4798-b613-35ea65c26cce,84b28732-9001-4798-b613-35ea65c26cce,1,0,f2ec9416-3830-4607-90f3-f77fc53c9c70,f2ec9416-3830-4607-90f3-f77fc53c9c70,1,0,3057de81-eb41-4161-9dc2-5445699906af,3057de81-eb41-4161-9dc2-5445699906af,1,0,984ed6c0-e25b-46ff-9b3c-6bc0370071da,984ed6c0-e25b-46ff-9b3c-6bc0370071da,1,0,35fe84b6-7d3c-4729-a75c-a5f3ef122124,35fe84b6-7d3c-4729-a75c-a5f3ef122124,1,0,f7d5815e-511e-48c2-bc31-f9987423439b,f7d5815e-511e-48c2-bc31-f9987423439b,1,0,c9b46771-b627-413d-afbb-dd733e0f1a1d,c9b46771-b627-413d-afbb-dd733e0f1a1d,1,0,49192a55-34fe-4db3-8ef9-a0d7af2766c9,49192a55-34fe-4db3-8ef9-a0d7af2766c9,1,0,31001011-bdbb-4499-a613-72d0305acd9d,31001011-bdbb-4499-a613-72d0305acd9d,1,0,f660bf92-7de1-4a22-9cea-777069e4679d,f660bf92-7de1-4a22-9cea-777069e4679d,1,0,54f3fbe7-ac93-44f6-ba6e-37cb99f3569c,54f3fbe7-ac93-44f6-ba6e-37cb99f3569c,1,0,8b0fb329-098b-46db-8766-bc034d6f20a8,8b0fb329-098b-46db-8766-bc034d6f20a8,1,0,c630e43c-98a6-4059-9b14-25d267410ba6,c630e43c-98a6-4059-9b14-25d267410ba6,1,0,d01089f3-427f-4624-955d-1a5a96098141,d01089f3-427f-4624-955d-1a5a96098141,1,0,6520d7f5-7326-4921-b8c1-6e6fbc56089c,6520d7f5-7326-4921-b8c1-6e6fbc56089c,1,0,78d00cfd-90fe-403a-bab6-2ae5d02fd4d7,78d00cfd-90fe-403a-bab6-2ae5d02fd4d7,1,0,056f7ce9-0264-43f9-bd46-7a25a1f6a75a,056f7ce9-0264-43f9-bd46-7a25a1f6a75a,1,0,1d9b990d-9ffc-455a-93f8-0ce1d47445de,1d9b990d-9ffc-455a-93f8-0ce1d47445de,1,0,766f2abe-1dfd-4e16-bffd-83f44d25d82a,766f2abe-1dfd-4e16-bffd-83f44d25d82a,1,0,0e7a34a8-ce5a-4767-8283-fd094e13d969,0e7a34a8-ce5a-4767-8283-fd094e13d969,1,0,9c448266-9ab9-4968-a493-c9a90fb3372d,9c448266-9ab9-4968-a493-c9a90fb3372d,1,0,20feb794-eb05-46a6-90e7-ca4e2376d7b2,20feb794-eb05-46a6-90e7-ca4e2376d7b2,1,0,8deb4f57-18fc-4db0-ad0f-82d60af3d80b,8deb4f57-18fc-4db0-ad0f-82d60af3d80b,1,0,2f484aa4-452a-46af-a707-a5a6917bc0db,2f484aa4-452a-46af-a707-a5a6917bc0db,1,0,fd6ff934-6f11-4182-b0cb-6926902d33c0,fd6ff934-6f11-4182-b0cb-6926902d33c0,1,0,315af891-2075-4833-a404-6c0f2004ee53,315af891-2075-4833-a404-6c0f2004ee53,1,0,5725db77-bfbf-4d85-9565-163b309a53ee,5725db77-bfbf-4d85-9565-163b309a53ee,1,0,99a7142c-b3c7-4221-abf8-6831a3cbc16e,99a7142c-b3c7-4221-abf8-6831a3cbc16e,1,0,d367a1a1-5a54-4bf9-96c7-d55667e2fb16,d367a1a1-5a54-4bf9-96c7-d55667e2fb16,1,0,2e09abe1-0934-42ae-970f-5e001c35c31a,2e09abe1-0934-42ae-970f-5e001c35c31a,1,0,587d48a3-5627-4481-b13e-c22740b57d8a,587d48a3-5627-4481-b13e-c22740b57d8a,1,0,1f3e3089-1e04-4147-8ece-aa96a76467dd,1f3e3089-1e04-4147-8ece-aa96a76467dd,1,0,22a213b5-ed72-4181-8ff8-89f860c87aa1,22a213b5-ed72-4181-8ff8-89f860c87aa1,1,0,4c56cbff-653e-4f16-b702-c77190d7eb7f,4c56cbff-653e-4f16-b702-c77190d7eb7f,1,0,172ff335-c7ae-4905-b705-2a1475b95713,172ff335-c7ae-4905-b705-2a1475b95713,1,0,db4c311d-ee62-4d47-ac31-5a20cadb7ed1,db4c311d-ee62-4d47-ac31-5a20cadb7ed1,1,0,1d852dc0-90c9-4568-84f9-b1d822573b6b,1d852dc0-90c9-4568-84f9-b1d822573b6b,1,0,24f85dbd-59be-4b8d-bea8-7ff8ddb7486a,24f85dbd-59be-4b8d-bea8-7ff8ddb7486a,1,0,c997f56c-ef9c-434e-bc4e-7fc5f885aaba,c997f56c-ef9c-434e-bc4e-7fc5f885aaba,1,0,37c8f5e1-3513-47f8-896d-a54d11b83dcd,37c8f5e1-3513-47f8-896d-a54d11b83dcd,1,0,9e07733c-39f0-491b-91e1-bf2782d957dd,9e07733c-39f0-491b-91e1-bf2782d957dd,1,0,cc584a1d-dc91-4693-a5c9-6e8c6607e9d8,cc584a1d-dc91-4693-a5c9-6e8c6607e9d8,1,0,5902d979-1235-4d5a-ace7-93261bdeb725,5902d979-1235-4d5a-ace7-93261bdeb725,1,0,5a090286-7969-44c9-815b-fc58aeb5d8d3,5a090286-7969-44c9-815b-fc58aeb5d8d3,1,0,8e87cf35-af54-4fa2-9428-460b765b282b,8e87cf35-af54-4fa2-9428-460b765b282b,1,0,73380bb1-bee3-4b73-a3df-1dbea99011d2,73380bb1-bee3-4b73-a3df-1dbea99011d2,1,0,8be29533-38de-413d-b420-7dac2e80af6c,8be29533-38de-413d-b420-7dac2e80af6c,1,0,82a77018-8e38-41dd-9d1f-3130bc29a707,82a77018-8e38-41dd-9d1f-3130bc29a707,1,0,4d75aaef-532e-4ed3-8153-083f04f05cc1,4d75aaef-532e-4ed3-8153-083f04f05cc1,1,0,3854a0ba-e156-4ba3-a301-b1a41ac386c4,3854a0ba-e156-4ba3-a301-b1a41ac386c4,1,0,f8136f59-ef0c-4c0f-8207-f7a4000e4f0c,f8136f59-ef0c-4c0f-8207-f7a4000e4f0c,1,0,d382cc0d-7f35-4d46-94e8-9861845301ef,d382cc0d-7f35-4d46-94e8-9861845301ef,1,0,c2321963-cd86-45ec-b323-3fdb5932da3a,c2321963-cd86-45ec-b323-3fdb5932da3a,1,0,d5af38bf-6261-4177-8f74-998a85f0ef39,d5af38bf-6261-4177-8f74-998a85f0ef39,1,0,42bbd9f7-ef72-440f-9eb1-fcb3bdc1d91e,42bbd9f7-ef72-440f-9eb1-fcb3bdc1d91e,1,0,c6a4d03d-f3b2-449c-8a2b-deb542dd2c99,c6a4d03d-f3b2-449c-8a2b-deb542dd2c99,1,0,4b714d9c-26f4-46e8-ac79-471522b3853b,4b714d9c-26f4-46e8-ac79-471522b3853b,1,0,411489de-f907-4d60-a776-64bb0aa12a0e,411489de-f907-4d60-a776-64bb0aa12a0e,1,0,58d9ba60-a0c7-405d-a76e-0b0a796daaf3,58d9ba60-a0c7-405d-a76e-0b0a796daaf3,1,0,9c47670e-9eb9-49ec-876c-cd545aaa093c,9c47670e-9eb9-49ec-876c-cd545aaa093c,1,0,f57e74e6-75e8-4136-911e-86793036a077,f57e74e6-75e8-4136-911e-86793036a077,1,0,8492ee20-3f15-45d8-b70d-19b5cd6f1ae3,8492ee20-3f15-45d8-b70d-19b5cd6f1ae3,1,0,3ba8c378-ef3d-4646-90b3-6d8078aa623e,3ba8c378-ef3d-4646-90b3-6d8078aa623e,1,0,b96b2e45-8fb3-4d48-ab53-d3bbf6ef0284,b96b2e45-8fb3-4d48-ab53-d3bbf6ef0284,1,0,5ac38b5a-92e5-47eb-b956-24d9f010cb9f,5ac38b5a-92e5-47eb-b956-24d9f010cb9f,1,0,d61ca454-505b-4fd6-be15-d7ed948a5ff6,d61ca454-505b-4fd6-be15-d7ed948a5ff6,1,0,c0f5bbe1-3247-4bbe-a28e-8c55748e7d42,c0f5bbe1-3247-4bbe-a28e-8c55748e7d42,1,0,7347d709-bb61-4354-aa79-86ed8025d6d4,7347d709-bb61-4354-aa79-86ed8025d6d4,1,0,2dd7eb87-8130-425a-be13-85235508cde6,2dd7eb87-8130-425a-be13-85235508cde6,1,0,8a62c997-4fda-4464-90bd-ab719161949f,8a62c997-4fda-4464-90bd-ab719161949f,1,0,28af52dd-3144-428b-956d-b6f27863ec4a,28af52dd-3144-428b-956d-b6f27863ec4a,1,0,8ac94328-2300-4681-9c35-fd7e2f830310,8ac94328-2300-4681-9c35-fd7e2f830310,1,0,da0ee165-1917-466b-ac5c-16c28e2318bb,da0ee165-1917-466b-ac5c-16c28e2318bb,1,0,4868cb2e-0892-42bc-9de1-73cb8a15a96f,4868cb2e-0892-42bc-9de1-73cb8a15a96f,1,0,e8b80879-33b3-4c45-ad68-1acabcf91faf,e8b80879-33b3-4c45-ad68-1acabcf91faf,1,0,4a87fafc-7ca7-478e-bb31-358c2b85fa92,4a87fafc-7ca7-478e-bb31-358c2b85fa92,1,0,239601eb-e8de-4d58-a32a-01ee52f6e698,239601eb-e8de-4d58-a32a-01ee52f6e698,1,0,11370667-bec5-4a2d-8aa1-97f4d795718f,11370667-bec5-4a2d-8aa1-97f4d795718f,1,0,2032162d-fbb5-4e6a-be72-cda79869b9ff,2032162d-fbb5-4e6a-be72-cda79869b9ff,1,0,95a8e790-25ef-4ef3-a44a-f150bf1ceb1f,95a8e790-25ef-4ef3-a44a-f150bf1ceb1f,1,0,10543f9a-4e3f-427a-b36a-9c66709dd6fb,10543f9a-4e3f-427a-b36a-9c66709dd6fb,1,0,973967e5-1702-4fb8-ba36-70fd5b3b7e7c,973967e5-1702-4fb8-ba36-70fd5b3b7e7c,1,0,96ab5424-7be1-416d-b74d-d0c815726b1f,96ab5424-7be1-416d-b74d-d0c815726b1f,1,0,3714e794-ddef-4ad9-a933-6130bbc84545,3714e794-ddef-4ad9-a933-6130bbc84545,1,0,282b089c-7411-40d6-9a0a-ceaf6abb5586,282b089c-7411-40d6-9a0a-ceaf6abb5586,1,0,678188aa-76e7-49bc-a4be-1c55ccd625b1,678188aa-76e7-49bc-a4be-1c55ccd625b1,1,0,6c27eece-2f8e-48eb-b9c7-f9c414ee15bd,6c27eece-2f8e-48eb-b9c7-f9c414ee15bd,1,0,b3415b4a-d8de-4536-aa4b-82e75fd986ee,b3415b4a-d8de-4536-aa4b-82e75fd986ee,1,0,acc996ab-672a-4602-b7ad-8eee83557e61,acc996ab-672a-4602-b7ad-8eee83557e61,1,0,bf9e9c2f-e5dc-4f82-8e9a-7f35e3ad9a0b,bf9e9c2f-e5dc-4f82-8e9a-7f35e3ad9a0b,1,0,371361b6-15fd-4e62-9f60-cc8ee3fbacf0,371361b6-15fd-4e62-9f60-cc8ee3fbacf0,1,0,97745768-ed35-44f1-beba-abb8b28a29ae,97745768-ed35-44f1-beba-abb8b28a29ae,1,0,69364942-bcd1-4b06-9b57-fa59b4e7c552,69364942-bcd1-4b06-9b57-fa59b4e7c552,1,0,ab201c5f-4134-42cf-a528-c1c4df02f2d7,ab201c5f-4134-42cf-a528-c1c4df02f2d7,1,0,303fb7b5-6a23-40ea-ae12-b54f4ebae026,303fb7b5-6a23-40ea-ae12-b54f4ebae026,1,0,634cd26b-78f1-4446-8aad-b96ed16e5329,634cd26b-78f1-4446-8aad-b96ed16e5329,1,0,d8e62f1a-92ca-4971-9609-e79da798c083,d8e62f1a-92ca-4971-9609-e79da798c083,1,0,eb74ebf0-a9c6-4c4c-b279-5a46f40ea0d3,eb74ebf0-a9c6-4c4c-b279-5a46f40ea0d3,1,0,d5e1806b-9827-40ab-9cfa-23c22456d137,d5e1806b-9827-40ab-9cfa-23c22456d137,1,0,b57b186a-ec1e-46a2-87ae-6ba27793ebf6,b57b186a-ec1e-46a2-87ae-6ba27793ebf6,1,0,d24170d7-5477-4ec8-acd2-0de8bd2067d6,d24170d7-5477-4ec8-acd2-0de8bd2067d6,1,0,f047da82-7574-4da4-b54e-480195280a11,f047da82-7574-4da4-b54e-480195280a11,1,0,a469f018-da26-485f-87c3-f580321a34f0,a469f018-da26-485f-87c3-f580321a34f0,1,0,adcb0dca-d810-461e-8f45-1d3cd6ffad4d,adcb0dca-d810-461e-8f45-1d3cd6ffad4d,1,0,388f7571-8f1b-45c5-a8b8-45d648f2f5dd,388f7571-8f1b-45c5-a8b8-45d648f2f5dd,1,0,886df9ab-09b4-4c7a-bd44-6afeab68d831,886df9ab-09b4-4c7a-bd44-6afeab68d831,1,0,9e16edb6-d841-48fa-bfe1-f9aabdcf9e46,9e16edb6-d841-48fa-bfe1-f9aabdcf9e46,1,0,628de771-c19c-4474-989f-8fb6cd7756a2,628de771-c19c-4474-989f-8fb6cd7756a2,1,0,6b0ddefa-ee70-4b27-989f-e23c734ab943,6b0ddefa-ee70-4b27-989f-e23c734ab943,1,0,ee873280-28ea-41fb-af52-c10c2018cbe4,ee873280-28ea-41fb-af52-c10c2018cbe4,1,0,6789e57b-1293-442c-97d0-b8007367602e,6789e57b-1293-442c-97d0-b8007367602e,1,0,0f193c89-b664-448e-bed3-2147430367f7,0f193c89-b664-448e-bed3-2147430367f7,1,0,4c9b2506-75a8-47d3-a5d5-d946088ba14a,4c9b2506-75a8-47d3-a5d5-d946088ba14a,1,0,36eacaa1-2efd-49c0-82de-2f8972535bf2,36eacaa1-2efd-49c0-82de-2f8972535bf2,1,0,0a7e5d85-3f94-4d93-8478-6d34f3b3ea33,0a7e5d85-3f94-4d93-8478-6d34f3b3ea33,1,0,9f7b9fd8-4bdd-4492-abf7-09b3f7f23e16,9f7b9fd8-4bdd-4492-abf7-09b3f7f23e16,1,0,72ee9a03-a320-4e60-be04-0ee813ea567f,72ee9a03-a320-4e60-be04-0ee813ea567f,1,0,f6f52cc8-23a3-4402-b1eb-0e41584c802a,f6f52cc8-23a3-4402-b1eb-0e41584c802a,1,0,8398e065-8b4b-4901-b057-2a048776bafe,8398e065-8b4b-4901-b057-2a048776bafe,1,0,073c56ca-bf45-422d-957a-f9c57aeee4d0,073c56ca-bf45-422d-957a-f9c57aeee4d0,1,0,d73e084f-9201-40c8-8ad4-f61b6cbb47c9,d73e084f-9201-40c8-8ad4-f61b6cbb47c9,1,0,52f065fe-556a-47cd-82b1-c56d7894df30,52f065fe-556a-47cd-82b1-c56d7894df30,1,0,186efec4-1343-4234-a9b6-c8d8096faf76,186efec4-1343-4234-a9b6-c8d8096faf76,1,0,6b15631a-0c98-4771-ba87-9d6f5795df63,6b15631a-0c98-4771-ba87-9d6f5795df63,1,0,ed72e5ef-a8b9-404b-a8b4-cb587c7f3018,ed72e5ef-a8b9-404b-a8b4-cb587c7f3018,1,0,51d30e7e-54b4-40be-a5bc-46fec691a425,51d30e7e-54b4-40be-a5bc-46fec691a425,1,0,bdff2b56-efbc-44ce-8141-7df2b095de37,bdff2b56-efbc-44ce-8141-7df2b095de37,1,0,be158212-2b71-43b1-8dda-f34ea30f16e7,be158212-2b71-43b1-8dda-f34ea30f16e7,1,0,68598d98-0c59-4cda-b0b2-6901d3aff88b,68598d98-0c59-4cda-b0b2-6901d3aff88b,1,0,219c1375-f26e-4698-aa82-4b9d735df783,219c1375-f26e-4698-aa82-4b9d735df783,1,0,ff5121c1-7f11-48cd-a9df-3588cf9f6d21,ff5121c1-7f11-48cd-a9df-3588cf9f6d21,1,0,32012b27-1b43-49be-b9af-df0c877e7a4c,32012b27-1b43-49be-b9af-df0c877e7a4c,1,0,e97d5152-9e58-4a91-a691-b4d358f1c89d,e97d5152-9e58-4a91-a691-b4d358f1c89d,1,0,1de4d7ee-7ddd-44db-bf7f-1b99b653652c,1de4d7ee-7ddd-44db-bf7f-1b99b653652c,1,0,dfe624ac-9f49-46dd-b821-1f1f5b5e0d15,dfe624ac-9f49-46dd-b821-1f1f5b5e0d15,1,0,296c478b-4103-46cb-9d14-97f59034ffd4,296c478b-4103-46cb-9d14-97f59034ffd4,1,0,fb918a68-f86d-46c0-9078-61d2b32b5aef,fb918a68-f86d-46c0-9078-61d2b32b5aef,1,0,9ca4d0c4-f5d3-4748-bf73-f3cd1bc4ac46,9ca4d0c4-f5d3-4748-bf73-f3cd1bc4ac46,1,0,1ddfc773-4f3c-4764-978e-585aab4666de,1ddfc773-4f3c-4764-978e-585aab4666de,1,0,e424d122-1dbb-4545-975c-177997129f2e,e424d122-1dbb-4545-975c-177997129f2e,1,0,c83bc626-dfdd-4451-92b0-b53eed40f534,c83bc626-dfdd-4451-92b0-b53eed40f534,1,0,7b9b1d11-4f78-4113-8fca-1a3a30953aef,7b9b1d11-4f78-4113-8fca-1a3a30953aef,1,0,7f84cb85-c3e4-4b53-b829-3b1e216f978a,7f84cb85-c3e4-4b53-b829-3b1e216f978a,1,0,7e621ecc-7d2b-42bf-a502-f8e59de56b63,7e621ecc-7d2b-42bf-a502-f8e59de56b63,1,0,798fd445-d02e-4e97-890a-0283f33317cf,798fd445-d02e-4e97-890a-0283f33317cf,1,0,095583ca-010d-43ad-8c7a-8938fa4cb761,095583ca-010d-43ad-8c7a-8938fa4cb761,1,0,178d210c-e847-4805-a8d4-31acdf4983af,178d210c-e847-4805-a8d4-31acdf4983af,1,0,aa214d9f-23b1-4996-8a43-9010dceeb53d,aa214d9f-23b1-4996-8a43-9010dceeb53d,1,0,26a5527e-dc2b-45a4-a51c-b1dfb31fa8a2,26a5527e-dc2b-45a4-a51c-b1dfb31fa8a2,1,0,aefc3149-90ee-4ccc-8fb6-b1f6096237f6,aefc3149-90ee-4ccc-8fb6-b1f6096237f6,1,0,d9d103bd-1dd6-48a9-8869-6c8485705393,d9d103bd-1dd6-48a9-8869-6c8485705393,1,0,cf2f7e1f-9b0b-4ae9-9c94-99d80bf95eae,cf2f7e1f-9b0b-4ae9-9c94-99d80bf95eae,1,0,ff0e8487-bdbf-4b21-877e-00008c81bc09,ff0e8487-bdbf-4b21-877e-00008c81bc09,1,0,39c9f8ac-56a0-4057-8359-7228bf97184a,39c9f8ac-56a0-4057-8359-7228bf97184a,1,0,763fbb4c-cab2-4c71-ba16-7e2ce8c3dc97,763fbb4c-cab2-4c71-ba16-7e2ce8c3dc97,1,0,2c0dd892-1d3e-4497-850b-080bdb9c59d8,2c0dd892-1d3e-4497-850b-080bdb9c59d8,1,0,3b727d49-c9ed-4d9e-af61-c13b9a170c75,3b727d49-c9ed-4d9e-af61-c13b9a170c75,1,0,1b264744-bdcd-4c5c-932b-0ac4b990dd78,1b264744-bdcd-4c5c-932b-0ac4b990dd78,1,0,a2dbf20e-1fe9-463d-8fd4-76ce2e4854d1,a2dbf20e-1fe9-463d-8fd4-76ce2e4854d1,1,0,37bde288-8e02-4127-bd80-de8ae7590a14,37bde288-8e02-4127-bd80-de8ae7590a14,1,0,a9b8e517-78cd-4428-b2fc-9e16af0069d7,a9b8e517-78cd-4428-b2fc-9e16af0069d7,1,0,5c592024-c009-4674-bbb8-283669e673ef,5c592024-c009-4674-bbb8-283669e673ef,1,0,e76f16b9-77a0-4033-90d0-6e04e4494747,e76f16b9-77a0-4033-90d0-6e04e4494747,1,0,cfb221fc-8639-4e15-9a78-f7837d657a99,cfb221fc-8639-4e15-9a78-f7837d657a99,1,0,4e61c8c3-756e-4937-adf6-6a1e9a89fc6a,4e61c8c3-756e-4937-adf6-6a1e9a89fc6a,1,0,022147c1-1ebe-4c8d-b367-4c47115b101d,022147c1-1ebe-4c8d-b367-4c47115b101d,1,0,2975d4c8-90d8-4791-8bc2-4adaa328ddc0,2975d4c8-90d8-4791-8bc2-4adaa328ddc0,1,0,fca6b230-a38e-4791-9cc5-3d215f79dc6f,fca6b230-a38e-4791-9cc5-3d215f79dc6f,1,0,04e87de4-940a-4533-8c81-8f145b201dc0,04e87de4-940a-4533-8c81-8f145b201dc0,1,0,573ef4f4-e9e6-4b7c-944d-30808a6a00b7,573ef4f4-e9e6-4b7c-944d-30808a6a00b7,1,0,fa488af9-a5ec-47d8-8661-fa5058a60a6b,fa488af9-a5ec-47d8-8661-fa5058a60a6b,1,0,97cc84c6-3565-474c-a028-83acb5390446,97cc84c6-3565-474c-a028-83acb5390446,1,0,9bf07c3e-7fdf-4a4f-ab00-98c7668349bd,9bf07c3e-7fdf-4a4f-ab00-98c7668349bd,1,0,ebbf6957-6ff6-4dc2-9e20-23d1da091f05,ebbf6957-6ff6-4dc2-9e20-23d1da091f05,1,0,9b80acf6-6bf0-42c4-abb3-2fa2fcf4088c,9b80acf6-6bf0-42c4-abb3-2fa2fcf4088c,1,0,1dcec107-9d5f-4b69-ad65-cc4cb1f27a9c,1dcec107-9d5f-4b69-ad65-cc4cb1f27a9c,1,0,b366d7eb-626c-4c0c-b4cc-c392763e6e94,b366d7eb-626c-4c0c-b4cc-c392763e6e94,1,0,4c7e24aa-726a-4595-82ad-ef1e525b14fa,4c7e24aa-726a-4595-82ad-ef1e525b14fa,1,0,aed2ceeb-cc0f-4bdc-bb94-2e15cd68aa96,aed2ceeb-cc0f-4bdc-bb94-2e15cd68aa96,1,0,04b5ae71-7fa4-4a64-b406-59dc603b80c5,04b5ae71-7fa4-4a64-b406-59dc603b80c5,1,0,f23a2023-f776-40db-8689-1fc3f7ebc482,f23a2023-f776-40db-8689-1fc3f7ebc482,1,0,ca6013dd-6178-4139-9a8d-407e9acb0578,ca6013dd-6178-4139-9a8d-407e9acb0578,1,0,e3a5de01-ece0-466d-8415-56391ace87a8,e3a5de01-ece0-466d-8415-56391ace87a8,1,0,411191b2-0ca7-4f61-a2c5-b63632558f2b,411191b2-0ca7-4f61-a2c5-b63632558f2b,1,0,92e39f71-ee94-48c7-ba3f-b08f3c6f9fb5,92e39f71-ee94-48c7-ba3f-b08f3c6f9fb5,1,0,deddee3c-5014-492e-8602-4835ada77e15,deddee3c-5014-492e-8602-4835ada77e15,1,0,a1e3b188-39d5-4f3d-bdbd-cfe61ac96c52,a1e3b188-39d5-4f3d-bdbd-cfe61ac96c52,1,0,407236b2-543d-4faa-9d8e-5fcb548f9818,407236b2-543d-4faa-9d8e-5fcb548f9818,1,0,af5da854-1b45-43a6-9ca7-f998dca3f869,af5da854-1b45-43a6-9ca7-f998dca3f869,1,0,955cf6fa-7723-4f7c-9666-59be7415bbc5,955cf6fa-7723-4f7c-9666-59be7415bbc5,1,0,1415ba25-2477-4d93-b248-95235d5086ed,1415ba25-2477-4d93-b248-95235d5086ed,1,0,4f158e2f-bd70-4cb1-8200-4e5c6a98bdf6,4f158e2f-bd70-4cb1-8200-4e5c6a98bdf6,1,0,52895190-0133-4244-82b2-18b30a97e16f,52895190-0133-4244-82b2-18b30a97e16f,1,0,1e7684f0-1b3b-4a32-8602-dd0672c5a800,1e7684f0-1b3b-4a32-8602-dd0672c5a800,1,0,ab178a93-8570-43b6-ae42-f34a7cc4f359,ab178a93-8570-43b6-ae42-f34a7cc4f359,1,0,4c82f31d-7a98-47dd-89dc-1846cb15bf3b,4c82f31d-7a98-47dd-89dc-1846cb15bf3b,1,0,168e3189-2676-4cdb-bc9d-78d85df51faf,168e3189-2676-4cdb-bc9d-78d85df51faf,1,0,ecf1a87f-4ca4-4efb-a84c-b2db1b0e8829,ecf1a87f-4ca4-4efb-a84c-b2db1b0e8829,1,0,c4b691fb-d511-4950-835c-d6e9c65ecbc2,c4b691fb-d511-4950-835c-d6e9c65ecbc2,1,0,14e20d48-635e-4c52-9099-e743323fc190,14e20d48-635e-4c52-9099-e743323fc190,1,0,2b849698-22df-4729-bad9-a5646f1ea63b,2b849698-22df-4729-bad9-a5646f1ea63b,1,0,bd60dac1-8f7d-42e6-b85a-6e80b06b13b8,bd60dac1-8f7d-42e6-b85a-6e80b06b13b8,1,0,697369c0-3b4f-43a1-8683-a042fc3463ee,697369c0-3b4f-43a1-8683-a042fc3463ee,1,0,87a37483-7341-44e3-9e1a-e2c523f0f415,87a37483-7341-44e3-9e1a-e2c523f0f415,1,0,ac497cd0-b2a2-412e-96bf-ab12b4035065,ac497cd0-b2a2-412e-96bf-ab12b4035065,1,0,4ac50294-dbb1-4df8-badc-8b8fd8068d47,4ac50294-dbb1-4df8-badc-8b8fd8068d47,1,0,706331e2-2d1a-492a-a9af-22fbb80bfd45,706331e2-2d1a-492a-a9af-22fbb80bfd45,1,0,4110db29-d80a-409c-a578-7c96305899f6,4110db29-d80a-409c-a578-7c96305899f6,1,0,e47ed32b-d914-4596-bd08-a6022f3662a8,e47ed32b-d914-4596-bd08-a6022f3662a8,1,0,cfe544fd-0429-4d94-a0e0-f6d3150aa4cd,cfe544fd-0429-4d94-a0e0-f6d3150aa4cd,1,0,ce6cecd3-772e-45ed-9eea-d434a4d5276b,ce6cecd3-772e-45ed-9eea-d434a4d5276b,1,0,c37a660e-16c5-495e-9486-e61bcb693fa0,c37a660e-16c5-495e-9486-e61bcb693fa0,1,0,8f44ebad-1160-474e-a566-fb9da55ffcba,8f44ebad-1160-474e-a566-fb9da55ffcba,1,0,11cf336e-7890-4972-bf71-32d7416ff647,11cf336e-7890-4972-bf71-32d7416ff647,1,0,4c4d61a6-6bb6-4a15-9a81-25fdcf96ec4b,4c4d61a6-6bb6-4a15-9a81-25fdcf96ec4b,1,0,880658c1-dbab-4333-b51f-efd8b3039a34,880658c1-dbab-4333-b51f-efd8b3039a34,1,0,64484611-b32c-4155-a063-7df5a3f924dd,64484611-b32c-4155-a063-7df5a3f924dd,1,0,7ef8627b-f924-4fef-982f-2f6bcb4e935b,7ef8627b-f924-4fef-982f-2f6bcb4e935b,1,0,2f2ac0db-db86-4ed2-a55a-b245b4d00d70,2f2ac0db-db86-4ed2-a55a-b245b4d00d70,1,0,821b93bd-f0dd-4468-972a-d9b2b4de72f1,821b93bd-f0dd-4468-972a-d9b2b4de72f1,1,0,56900066-90e3-40c0-b64a-8f7964a4dfc1,56900066-90e3-40c0-b64a-8f7964a4dfc1,1,0,56f0c4d6-9b13-486a-9586-05e657dca8be,56f0c4d6-9b13-486a-9586-05e657dca8be,1,0,c795c0d3-6a0d-4311-9821-df320663727e,c795c0d3-6a0d-4311-9821-df320663727e,1,0,512b8d89-8798-4549-9e79-b9c3f7d9098f,512b8d89-8798-4549-9e79-b9c3f7d9098f,1,0,e1fe71f8-f37c-4705-aca1-c25e2bdc5db6,e1fe71f8-f37c-4705-aca1-c25e2bdc5db6,1,0,7f356abf-9045-4a76-89f3-8b52d467122a,7f356abf-9045-4a76-89f3-8b52d467122a,1,0,625a61ac-4ad0-4b31-aa67-9f864154b9c4,625a61ac-4ad0-4b31-aa67-9f864154b9c4,1,0,e38fb48f-0e16-44d9-bf3f-21c804c404e0,e38fb48f-0e16-44d9-bf3f-21c804c404e0,1,0,e4ea640f-e3a4-44ad-b17d-51f32136372e,e4ea640f-e3a4-44ad-b17d-51f32136372e,1,0,02b13a31-1790-4a4f-bab7-bdd8deb0ef3c,02b13a31-1790-4a4f-bab7-bdd8deb0ef3c,1,0,dec6dbe4-f184-4059-b1f0-e0d5a388dbb7,dec6dbe4-f184-4059-b1f0-e0d5a388dbb7,1,0,38313034-c287-4269-81bf-d7cfee9cf29b,38313034-c287-4269-81bf-d7cfee9cf29b,1,0,fa5c43be-9b2f-42b2-99f7-59034cc4e395,fa5c43be-9b2f-42b2-99f7-59034cc4e395,1,0,656505ca-cd6b-4d75-b81c-66d3e160122d,656505ca-cd6b-4d75-b81c-66d3e160122d,1,0,be3bb034-7366-4fd5-9d45-7325e0f774c8,be3bb034-7366-4fd5-9d45-7325e0f774c8,1,0,f0d66d6d-503a-4bbd-bebb-e9567fc4621a,f0d66d6d-503a-4bbd-bebb-e9567fc4621a,1,0,e6437578-db9f-4074-8e93-63dff0a24a92,e6437578-db9f-4074-8e93-63dff0a24a92,1,0,8db31f1e-339d-4fd4-a1b1-da72725d4208,8db31f1e-339d-4fd4-a1b1-da72725d4208,1,0,526e3084-c8b9-4244-b9db-8f0404f8cc77,526e3084-c8b9-4244-b9db-8f0404f8cc77,1,0,d60de62d-ebd5-4da6-91d8-675a0578142f,d60de62d-ebd5-4da6-91d8-675a0578142f,1,0,13e25baf-1855-469a-95a3-2db880220e76,13e25baf-1855-469a-95a3-2db880220e76,1,0,ed0f4f30-22b6-47c6-bd94-999c10a5c172,ed0f4f30-22b6-47c6-bd94-999c10a5c172,1,0,7c97287d-bf6c-44dc-b05a-5f950a6fbf7b,7c97287d-bf6c-44dc-b05a-5f950a6fbf7b,1,0,cca3e7a0-3691-4e1e-a362-3d29d237c196,cca3e7a0-3691-4e1e-a362-3d29d237c196,1,0,05fbb101-b84d-476f-9f26-0c546f630050,05fbb101-b84d-476f-9f26-0c546f630050,1,0,922fd510-be67-4d31-bfd1-7598820572df,922fd510-be67-4d31-bfd1-7598820572df,1,0,4c1af4ee-345d-47aa-a2a5-2c31df127bf0,4c1af4ee-345d-47aa-a2a5-2c31df127bf0,1,0,4f657e5a-20fe-4de9-9189-30a4c82cd23d,4f657e5a-20fe-4de9-9189-30a4c82cd23d,1,0,1829f072-ef4e-4123-b47b-079058102e61,1829f072-ef4e-4123-b47b-079058102e61,1,0,d9baa5aa-4e9f-4b0a-834c-d97fa390b1bb,d9baa5aa-4e9f-4b0a-834c-d97fa390b1bb,1,0,9c3f0bdb-7a16-4357-9850-e8a82b806c08,9c3f0bdb-7a16-4357-9850-e8a82b806c08,1,0,49474d66-f4cc-4393-8e0b-7ce2c481af95,49474d66-f4cc-4393-8e0b-7ce2c481af95,1,0,6ff9b259-9b5c-4192-98c5-4a86596fd05d,6ff9b259-9b5c-4192-98c5-4a86596fd05d,1,0,06026ec1-4279-443b-b6ab-07903eae3b87,06026ec1-4279-443b-b6ab-07903eae3b87,1,0,6037b758-6b54-464a-96ec-459378989622,6037b758-6b54-464a-96ec-459378989622,1,0,292a40d8-3ccd-4639-9675-be55064e91b3,292a40d8-3ccd-4639-9675-be55064e91b3,1,0,b140657d-9ed6-4fc0-9109-744ad9be6a08,b140657d-9ed6-4fc0-9109-744ad9be6a08,1,0,b4030e31-f5b3-470c-96b6-b9b1fc372999,b4030e31-f5b3-470c-96b6-b9b1fc372999,1,0,85bb3b43-8447-4c70-90c6-5e8749b9e614,85bb3b43-8447-4c70-90c6-5e8749b9e614,1,0,4fa8e2f8-76f4-4fc5-9f20-22e0aececd7b,4fa8e2f8-76f4-4fc5-9f20-22e0aececd7b,1,0,c7399954-299a-428b-951c-44e2faf731ab,c7399954-299a-428b-951c-44e2faf731ab,1,0,2cbb84a7-b9f8-4ae1-8d56-60b6b0d50afc,2cbb84a7-b9f8-4ae1-8d56-60b6b0d50afc,1,0,77e0b88d-538a-43e9-a775-4afa373866f8,77e0b88d-538a-43e9-a775-4afa373866f8,1,0,91906c04-c6ea-4352-9c4a-01f48d3bd16c,91906c04-c6ea-4352-9c4a-01f48d3bd16c,1,0,fe5578e0-9a2e-4619-b561-7361f03a1d6d,fe5578e0-9a2e-4619-b561-7361f03a1d6d,1,0,63451376-d478-43d3-a733-9eea6804f088,63451376-d478-43d3-a733-9eea6804f088,1,0,9770cb3a-d9fe-41c6-8d60-5f4f95937a85,9770cb3a-d9fe-41c6-8d60-5f4f95937a85,1,0,adbec7ec-6e2b-4ea0-93f0-1335ad7ea187,adbec7ec-6e2b-4ea0-93f0-1335ad7ea187,1,0,0325780d-6e29-4fe8-a1e0-1a475577c20c,0325780d-6e29-4fe8-a1e0-1a475577c20c,1,0,fc150263-af73-43f7-ae0e-3693a123d7af,fc150263-af73-43f7-ae0e-3693a123d7af,1,0,8de3b943-ff47-4646-b76d-03f534771f69,8de3b943-ff47-4646-b76d-03f534771f69,1,0,c93c9176-3466-4b26-9e8f-47490188d981,c93c9176-3466-4b26-9e8f-47490188d981,1,0,3ca53b9b-293d-4706-b9d6-b4a7f8b3fc6b,3ca53b9b-293d-4706-b9d6-b4a7f8b3fc6b,1,0,c2a57f4f-7c15-4f71-8856-062078744444,c2a57f4f-7c15-4f71-8856-062078744444,1,0,aab354e1-9052-477a-9b98-c5f9ac578620,aab354e1-9052-477a-9b98-c5f9ac578620,1,0,6e8a4d6d-80ba-4142-bd8d-afa383de837b,6e8a4d6d-80ba-4142-bd8d-afa383de837b,1,0,e2d6f66e-6b41-4d12-85ca-0af7c2693534,e2d6f66e-6b41-4d12-85ca-0af7c2693534,1,0,c9e4e4fb-7d8c-4d0b-afc7-6ecb9f2b5abd,c9e4e4fb-7d8c-4d0b-afc7-6ecb9f2b5abd,1,0,b20e0d82-85c1-4f9c-afd1-55f7b71b06ac,b20e0d82-85c1-4f9c-afd1-55f7b71b06ac,1,0,88315362-844d-4698-860d-24901e51332d,88315362-844d-4698-860d-24901e51332d,1,0,82a00b83-499b-4146-9cfa-e676833401fb,82a00b83-499b-4146-9cfa-e676833401fb,1,0,5cf49504-22dc-4e8b-b572-eb6525977925,5cf49504-22dc-4e8b-b572-eb6525977925,1,0,a34acd7f-ee67-4cde-a2e7-890f009b1195,a34acd7f-ee67-4cde-a2e7-890f009b1195,1,0,bceb2a25-ab97-4e1c-a193-a1efd2d058c7,bceb2a25-ab97-4e1c-a193-a1efd2d058c7,1,0,5b50b928-4ec0-4ebb-871b-18e3041b8f24,5b50b928-4ec0-4ebb-871b-18e3041b8f24,1,0,d32be162-d81e-4249-87c4-b08b2084cf90,d32be162-d81e-4249-87c4-b08b2084cf90,1,0,6caadb60-e172-4f3a-9dd1-85125773c169,6caadb60-e172-4f3a-9dd1-85125773c169,1,0,6febb670-c7a2-4e3a-8d39-8b045f8b9e48,6febb670-c7a2-4e3a-8d39-8b045f8b9e48,1,0,7dca913d-e37a-4740-8e3d-677d379605ee,7dca913d-e37a-4740-8e3d-677d379605ee,1,0,bd1cf7ef-f3e2-4441-836b-16f2cc227aa9,bd1cf7ef-f3e2-4441-836b-16f2cc227aa9,1,0,e62845df-704f-4ad5-b227-e0128877a814,e62845df-704f-4ad5-b227-e0128877a814,1,0,4f1393e4-9db5-43d6-b47e-caa1aad9b35c,4f1393e4-9db5-43d6-b47e-caa1aad9b35c,1,0,e62e60ea-9f0c-4a7e-869f-4639f31f826c,e62e60ea-9f0c-4a7e-869f-4639f31f826c,1,0,c9035b0f-cfc4-4761-9ba0-a8aacfaa9c72,c9035b0f-cfc4-4761-9ba0-a8aacfaa9c72,1,0,7efb0bf4-d40c-417b-b9bc-f4a5af66ec09,7efb0bf4-d40c-417b-b9bc-f4a5af66ec09,1,0,4cd4694f-17f8-43ba-8940-07628bd937fe,4cd4694f-17f8-43ba-8940-07628bd937fe,1,0,9b9e81f9-e23f-4c77-bf6f-edbce8ebabfa,9b9e81f9-e23f-4c77-bf6f-edbce8ebabfa,1,0,fb5e93bb-e1ff-47a6-a362-ea94e6cbac65,fb5e93bb-e1ff-47a6-a362-ea94e6cbac65,1,0,7df6c94b-3cfe-4764-988e-858d733e35d9,7df6c94b-3cfe-4764-988e-858d733e35d9,1,0,8b251c7d-2d55-4734-a1da-7f1115d95080,8b251c7d-2d55-4734-a1da-7f1115d95080,1,0,87b3153d-bef0-4441-8b1c-a5fc7ba4c36a,87b3153d-bef0-4441-8b1c-a5fc7ba4c36a,1,0,5a8c3621-595a-4168-8bba-a7f8d499e47e,5a8c3621-595a-4168-8bba-a7f8d499e47e,1,0,fc4cfed6-e492-4420-b357-8143a8c2a41a,fc4cfed6-e492-4420-b357-8143a8c2a41a,1,0,4311a250-64af-443e-a711-93b7c41175cf,4311a250-64af-443e-a711-93b7c41175cf,1,0,804b6c57-1d7b-4927-be5b-84b7959fe55e,804b6c57-1d7b-4927-be5b-84b7959fe55e,1,0,f2655d85-79ea-4736-8f41-94a4f9b2b998,f2655d85-79ea-4736-8f41-94a4f9b2b998,1,0,21258174-3a95-4c10-bb8f-4d6db0c5ae0e,21258174-3a95-4c10-bb8f-4d6db0c5ae0e,1,0,a8eb5ed9-df99-405b-afad-eeaa98956eee,a8eb5ed9-df99-405b-afad-eeaa98956eee,1,0,a64d4b1b-fae4-43ae-ae98-bdc4e59a94c1,a64d4b1b-fae4-43ae-ae98-bdc4e59a94c1,1,0,26a1279f-91f0-4632-ad7c-21cf2f524208,26a1279f-91f0-4632-ad7c-21cf2f524208,1,0,bf751ed0-ee47-4eaf-81bd-f0da00bef343,bf751ed0-ee47-4eaf-81bd-f0da00bef343,1,0,14b65111-4c0e-4521-9fcd-2a8d4aaa6b4b,14b65111-4c0e-4521-9fcd-2a8d4aaa6b4b,1,0,1f1def7c-e0ee-4963-afea-1751bf1b812c,1f1def7c-e0ee-4963-afea-1751bf1b812c,1,0,9a4c0898-ab56-425c-8191-5ab90f4e12bf,9a4c0898-ab56-425c-8191-5ab90f4e12bf,1,0,6841ec47-7a84-441a-b975-69d089072ce7,6841ec47-7a84-441a-b975-69d089072ce7,1,0,ead4001a-0d8a-4b95-8212-2a40e5aa6659,ead4001a-0d8a-4b95-8212-2a40e5aa6659,1,0,22165c8a-2179-4cd5-b195-bd2721e9e232,22165c8a-2179-4cd5-b195-bd2721e9e232,1,0,b28c3a8f-8cad-45eb-90d3-6d90a0b3f881,b28c3a8f-8cad-45eb-90d3-6d90a0b3f881,1,0,3c5974ec-f76d-401c-a8e4-d51c7cd4c4fb,3c5974ec-f76d-401c-a8e4-d51c7cd4c4fb,1,0,609a9bc9-4225-4fe1-91fa-90c9c2e5cfba,609a9bc9-4225-4fe1-91fa-90c9c2e5cfba,1,0,d22ed498-c7df-45bb-869f-f16d3aa2d3d3,d22ed498-c7df-45bb-869f-f16d3aa2d3d3,1,0,4a966f6e-87dd-4dae-9cc0-dbabee9424dc,4a966f6e-87dd-4dae-9cc0-dbabee9424dc,1,0,9d9debfd-4a10-4f09-9d09-2aa5e058b525,9d9debfd-4a10-4f09-9d09-2aa5e058b525,1,0,fc19586c-d89c-495c-b473-6f85967ed48e,fc19586c-d89c-495c-b473-6f85967ed48e,1,0,2ac7c701-a281-4e77-a5f8-294526021e2d,2ac7c701-a281-4e77-a5f8-294526021e2d,1,0,979df549-889d-496a-b6ce-c56d54c771b5,979df549-889d-496a-b6ce-c56d54c771b5,1,0,91b320d8-3426-44d3-97d7-c200287d7343,91b320d8-3426-44d3-97d7-c200287d7343,1,0,b9297f72-b40a-4adb-9975-bb693d4834a4,b9297f72-b40a-4adb-9975-bb693d4834a4,1,0,41cf3916-216f-4c4e-a587-82777f4263e0,41cf3916-216f-4c4e-a587-82777f4263e0,1,0,2ce3a350-86f1-4275-8299-3c3693ca11fa,2ce3a350-86f1-4275-8299-3c3693ca11fa,1,0,59f0ed15-c84c-4f41-bdd4-26317e4e914d,59f0ed15-c84c-4f41-bdd4-26317e4e914d,1,0,4b5ff142-47b8-4548-b6f9-56ebcbd40e35,4b5ff142-47b8-4548-b6f9-56ebcbd40e35,1,0,8fef790c-a3f4-460c-9093-5065cbdba196,8fef790c-a3f4-460c-9093-5065cbdba196,1,0,79bd24d0-61a9-4558-90ac-4e726066789c,79bd24d0-61a9-4558-90ac-4e726066789c,1,0,d843cbd7-e2b5-4c50-8ed2-7cb0baac8ecc,d843cbd7-e2b5-4c50-8ed2-7cb0baac8ecc,1,0,ef356548-51a4-4b09-b37d-ede5b8f3edb6,ef356548-51a4-4b09-b37d-ede5b8f3edb6,1,0,53c0d900-5e96-4381-a1ed-4424a5799608,53c0d900-5e96-4381-a1ed-4424a5799608,1,0,64fe317a-7d0e-4758-b5cf-0d871d2bf4ad,64fe317a-7d0e-4758-b5cf-0d871d2bf4ad,1,0,abfb7ac3-ebfa-4275-a039-a6b94bb9a76f,abfb7ac3-ebfa-4275-a039-a6b94bb9a76f,1,0,45ca9e20-1246-4400-a019-ffb521af6ea7,45ca9e20-1246-4400-a019-ffb521af6ea7,1,0,73eed854-5c3a-4a10-9bfa-793fd517f303,73eed854-5c3a-4a10-9bfa-793fd517f303,1,0,c3eb2836-ea4d-48cc-a03f-3a0c30f67e7f,c3eb2836-ea4d-48cc-a03f-3a0c30f67e7f,1,0,9134dc40-a8f1-4c60-9431-27cb98be5ecd,9134dc40-a8f1-4c60-9431-27cb98be5ecd,1,0,16c4622a-33af-4a95-b44e-0861a6df21d2,16c4622a-33af-4a95-b44e-0861a6df21d2,1,0,d8cac67b-cce2-4a00-a8df-c6570c50153f,d8cac67b-cce2-4a00-a8df-c6570c50153f,1,0,37213c65-bf26-4e50-a2fa-58eb45439b58,37213c65-bf26-4e50-a2fa-58eb45439b58,1,0,e43c08a9-6496-4c8e-bfe2-9d728e31d63d,e43c08a9-6496-4c8e-bfe2-9d728e31d63d,1,0,b6b31892-73ee-4c9b-92b0-2735536c4938,b6b31892-73ee-4c9b-92b0-2735536c4938,1,0,deb8b883-142e-47d0-a722-7c734a0cf9b3,deb8b883-142e-47d0-a722-7c734a0cf9b3,1,0,a6794f74-08a4-4b73-add7-e6d0d1b6e7a3,a6794f74-08a4-4b73-add7-e6d0d1b6e7a3,1,0,29233058-ccb1-4110-a9bc-cdb4c531f35a,29233058-ccb1-4110-a9bc-cdb4c531f35a,1,0,cf3729b2-9ee6-437c-81df-83966793be50,cf3729b2-9ee6-437c-81df-83966793be50,1,0,429d08b7-0b98-4f9b-a053-d04dd84a7026,429d08b7-0b98-4f9b-a053-d04dd84a7026,1,0,b64fd964-cee8-4619-872f-82d2fdc14240,b64fd964-cee8-4619-872f-82d2fdc14240,1,0,5ce7846d-9806-40f5-8631-4e14deb8bc95,5ce7846d-9806-40f5-8631-4e14deb8bc95,1,0,79528a0e-1e48-4d14-bd28-756fd5db57b9,79528a0e-1e48-4d14-bd28-756fd5db57b9,1,0,4eeab8c2-d901-4b95-adea-4a08f79d0fa2,4eeab8c2-d901-4b95-adea-4a08f79d0fa2,1,0,d9426219-4b37-4776-8d5d-acab5825e789,d9426219-4b37-4776-8d5d-acab5825e789,1,0,7ce1f9eb-ac51-46fd-adc5-c8b9bfb32e44,7ce1f9eb-ac51-46fd-adc5-c8b9bfb32e44,1,0,4fef5026-1cba-4c33-ae75-5f9570a8e6b6,4fef5026-1cba-4c33-ae75-5f9570a8e6b6,1,0,243ee3d4-4130-41ea-a37c-c7b39a5e73fa,243ee3d4-4130-41ea-a37c-c7b39a5e73fa,1,0,29e7299a-ce80-497a-8102-615d0a001ea8,29e7299a-ce80-497a-8102-615d0a001ea8,1,0,f9e48170-62eb-4d6b-b861-c7af1b4a38c3,f9e48170-62eb-4d6b-b861-c7af1b4a38c3,1,0,9bcc8f9a-ec12-45f2-8a32-6946d556f57a,9bcc8f9a-ec12-45f2-8a32-6946d556f57a,1,0,adc2cc11-b647-453f-a98e-8a73b7c368c7,adc2cc11-b647-453f-a98e-8a73b7c368c7,1,0,905b787b-c638-4703-af70-416a2ce43b50,905b787b-c638-4703-af70-416a2ce43b50,1,0,d7ea882a-6ef9-407f-b0e9-7bb42cf5ef17,d7ea882a-6ef9-407f-b0e9-7bb42cf5ef17,1,0,4522c564-61da-40da-a749-5312121a331d,4522c564-61da-40da-a749-5312121a331d,1,0,9394c709-6cbe-4ef6-bc8c-cba8af65821e,9394c709-6cbe-4ef6-bc8c-cba8af65821e,1,0,2943b572-7411-4f92-a6cc-7ee552b85223,2943b572-7411-4f92-a6cc-7ee552b85223,1,0,28478e7a-e8aa-40aa-866c-a3624f903141,28478e7a-e8aa-40aa-866c-a3624f903141,1,0,f692ab21-a8de-4feb-914f-4beef350543a,f692ab21-a8de-4feb-914f-4beef350543a,1,0,a5663ce2-587d-4255-b30e-6979c909cc05,a5663ce2-587d-4255-b30e-6979c909cc05,1,0,942b3e77-2a66-4879-972d-b5d25a706f9a,942b3e77-2a66-4879-972d-b5d25a706f9a,1,0,49f67edf-49e7-4198-9f9a-7bddf0a89248,49f67edf-49e7-4198-9f9a-7bddf0a89248,1,0,0ec0b1a0-5f0d-4a14-9a84-49098befa0af,0ec0b1a0-5f0d-4a14-9a84-49098befa0af,1,0,c644ab9b-7bcb-4bfa-b8ba-4c5f7689c91c,c644ab9b-7bcb-4bfa-b8ba-4c5f7689c91c,1,0,dabb3395-6100-4f53-913d-e0230e81b494,dabb3395-6100-4f53-913d-e0230e81b494,1,0,e0a3fae1-1582-4c7a-acd8-870b558acec4,e0a3fae1-1582-4c7a-acd8-870b558acec4,1,0,4f06c867-6fec-4a4d-a360-6d8e98e4e7a4,4f06c867-6fec-4a4d-a360-6d8e98e4e7a4,1,0,34ee9617-9935-425f-9637-bdffd5a64042,34ee9617-9935-425f-9637-bdffd5a64042,1,0,3e6160f4-eed6-4dd6-a8fb-96c1a90d39be,3e6160f4-eed6-4dd6-a8fb-96c1a90d39be,1,0,778cd9f9-7afd-4eb7-bd4e-90ff7d9cf4f0,778cd9f9-7afd-4eb7-bd4e-90ff7d9cf4f0,1,0,fb8f3edd-bf12-4312-8ffe-7bbd627fa52b,fb8f3edd-bf12-4312-8ffe-7bbd627fa52b,1,0,6ddad5e2-b2c3-47bc-b339-54ccd7391e33,6ddad5e2-b2c3-47bc-b339-54ccd7391e33,1,0,761ca1c1-c843-47a1-bacc-2f9d1d68634d,761ca1c1-c843-47a1-bacc-2f9d1d68634d,1,0,af4a815b-d9d4-4fe6-9b2b-3932381e7346,af4a815b-d9d4-4fe6-9b2b-3932381e7346,1,0,9dbca72a-fb38-4d86-a3ff-83f7edc0fdb4,9dbca72a-fb38-4d86-a3ff-83f7edc0fdb4,1,0,fab77796-a103-40a6-95bd-238979fc345d,fab77796-a103-40a6-95bd-238979fc345d,1,0,6fad175b-eaf0-4e45-aaa1-c1ebc98e0ed0,6fad175b-eaf0-4e45-aaa1-c1ebc98e0ed0,1,0,0ef5e38c-6f7c-46e7-9c14-4fde6814f93f,0ef5e38c-6f7c-46e7-9c14-4fde6814f93f,1,0,f306dafa-350e-4ff9-bfe2-211be647afe8,f306dafa-350e-4ff9-bfe2-211be647afe8,1,0,6d447b01-21ae-4cc1-9262-4ec4ed5e04f5,6d447b01-21ae-4cc1-9262-4ec4ed5e04f5,1,0,dcd64d40-e57f-4cb5-9ccd-67b27ac546d4,dcd64d40-e57f-4cb5-9ccd-67b27ac546d4,1,0,8d0ad48c-6e27-44c2-87f6-62eef78b6427,8d0ad48c-6e27-44c2-87f6-62eef78b6427,1,0,e4fb3b42-60f6-4413-bba8-6e507b13d5d3,e4fb3b42-60f6-4413-bba8-6e507b13d5d3,1,0,a5e3b305-392c-40a2-9b66-7fdc72c041a3,a5e3b305-392c-40a2-9b66-7fdc72c041a3,1,0,266d41c0-92a1-4d42-bf5b-60a1bddb8912,266d41c0-92a1-4d42-bf5b-60a1bddb8912,1,0,1aad9f99-422a-40e8-83da-6e29b8a4e85a,1aad9f99-422a-40e8-83da-6e29b8a4e85a,1,0,d9010dc7-b0de-4079-944d-fbec7ba5997f,d9010dc7-b0de-4079-944d-fbec7ba5997f,1,0,5defd7f7-cc7d-4e7b-83e3-755f8a2514ea,5defd7f7-cc7d-4e7b-83e3-755f8a2514ea,1,0,744ca01b-41b6-4c30-a280-85e44ad456ba,744ca01b-41b6-4c30-a280-85e44ad456ba,1,0,779856af-2c4a-4643-9bea-a04aa24ee488,779856af-2c4a-4643-9bea-a04aa24ee488,1,0,5c6f12f3-7cb6-4b10-9859-7b72bae3fc76,5c6f12f3-7cb6-4b10-9859-7b72bae3fc76,1,0,d00313c8-ee4a-4463-8d5b-7e87e4e14986,d00313c8-ee4a-4463-8d5b-7e87e4e14986,1,0,6db400f2-873a-44a2-9274-2cd7883bfd87,6db400f2-873a-44a2-9274-2cd7883bfd87,1,0,3b925fd2-adb8-451a-8675-7b081fc7c570,3b925fd2-adb8-451a-8675-7b081fc7c570,1,0,70e9e13d-8f87-4a5b-9c80-49d2cff1a290,70e9e13d-8f87-4a5b-9c80-49d2cff1a290,1,0,04b7e8b2-6bc1-49dc-9476-7eadf94b9188,04b7e8b2-6bc1-49dc-9476-7eadf94b9188,1,0,135c86fc-2979-4833-9107-38d749a9f82f,135c86fc-2979-4833-9107-38d749a9f82f,1,0,78288ff9-d838-4970-84bd-9a6b229e6ef0,78288ff9-d838-4970-84bd-9a6b229e6ef0,1,0,8310f927-1123-4b4b-a65e-0ff29be73329,8310f927-1123-4b4b-a65e-0ff29be73329,1,0,80a9df2d-593d-483d-8d69-28b1c08ec648,80a9df2d-593d-483d-8d69-28b1c08ec648,1,0,faf980ca-0ed2-47dd-8199-9d1a03f3b69f,faf980ca-0ed2-47dd-8199-9d1a03f3b69f,1,0,830addc3-1e87-428b-94fc-cee5e902849c,830addc3-1e87-428b-94fc-cee5e902849c,1,0,a59d1aef-bd47-4d7a-a80d-a413820434e0,a59d1aef-bd47-4d7a-a80d-a413820434e0,1,0,f66cc29a-6b07-4722-a223-1215371d7ee4,f66cc29a-6b07-4722-a223-1215371d7ee4,1,0,94ce7902-6c67-4ebc-9ff1-a661eb8d4843,94ce7902-6c67-4ebc-9ff1-a661eb8d4843,1,0,4a749e8c-cb35-4bc4-9b31-fb5bc0eab474,4a749e8c-cb35-4bc4-9b31-fb5bc0eab474,1,0,da4a0c05-2285-434b-b7f8-83b2a0d7f23d,da4a0c05-2285-434b-b7f8-83b2a0d7f23d,1,0,8afa9a0e-04c1-4cac-82bb-6767cc0594d9,8afa9a0e-04c1-4cac-82bb-6767cc0594d9,1,0,ecbe625a-55eb-437a-8dee-33fb034d4c0d,ecbe625a-55eb-437a-8dee-33fb034d4c0d,1,0,5d4cefac-5dc4-4d73-8b4b-900a8464fbb2,5d4cefac-5dc4-4d73-8b4b-900a8464fbb2,1,0,948b10b3-0d7c-4dca-8816-75eb86e7881b,948b10b3-0d7c-4dca-8816-75eb86e7881b,1,0,9de91b5a-98e4-414b-b650-b669b0159b49,9de91b5a-98e4-414b-b650-b669b0159b49,1,0,3de3948d-40ff-4e0d-8445-9bf49c916161,3de3948d-40ff-4e0d-8445-9bf49c916161,1,0,73a093ea-1927-483b-b6f5-8f0cbd253753,73a093ea-1927-483b-b6f5-8f0cbd253753,1,0,345f04c0-0274-4e79-b523-f1fa3cf0d92a,345f04c0-0274-4e79-b523-f1fa3cf0d92a,1,0,f3a14787-de1b-4b65-8cb1-bc33a785821c,f3a14787-de1b-4b65-8cb1-bc33a785821c,1,0,ec61075e-fbcb-494a-b790-81548a212d2b,ec61075e-fbcb-494a-b790-81548a212d2b,1,0,0c444045-302b-4dbd-a9a3-81fd40004948,0c444045-302b-4dbd-a9a3-81fd40004948,1,0,f9c0862c-34a2-41a3-ae46-b6a8e1ad1b08,f9c0862c-34a2-41a3-ae46-b6a8e1ad1b08,1,0,1528b799-1c0f-4244-85e8-e738b827934a,1528b799-1c0f-4244-85e8-e738b827934a,1,0,45d79e4d-8c2a-432b-abb8-fb9046abea40,45d79e4d-8c2a-432b-abb8-fb9046abea40,1,0,8f4d2fa9-c6ed-4f85-b3ef-f9214468ffc4,8f4d2fa9-c6ed-4f85-b3ef-f9214468ffc4,1,0,cb73c8c2-3b09-42e9-ac26-1bd51854efb6,cb73c8c2-3b09-42e9-ac26-1bd51854efb6,1,0,bd0f9ec3-156a-4a6f-a52b-1213ec825bc0,bd0f9ec3-156a-4a6f-a52b-1213ec825bc0,1,0,71e52f63-04db-4336-ace6-b143d0a7d250,71e52f63-04db-4336-ace6-b143d0a7d250,1,0,ab4dbaff-cee6-47b3-9d69-13ac5c906f95,ab4dbaff-cee6-47b3-9d69-13ac5c906f95,1,0,82d5ed02-654f-4b86-b995-baf64a147a12,82d5ed02-654f-4b86-b995-baf64a147a12,1,0,ba96177b-d10c-4ad2-9851-dea312eeafd2,ba96177b-d10c-4ad2-9851-dea312eeafd2,1,0,7652c0d3-1b6e-4e0d-96d0-7bbdff808ce9,7652c0d3-1b6e-4e0d-96d0-7bbdff808ce9,1,0,caa287fe-4f60-4243-a6fe-8b2bd607205f,caa287fe-4f60-4243-a6fe-8b2bd607205f,1,0,ba6e2356-8b0e-4af6-9941-3b808e17c570,ba6e2356-8b0e-4af6-9941-3b808e17c570,1,0,f2f90525-566b-4add-ae3e-cc683dee6209,f2f90525-566b-4add-ae3e-cc683dee6209,1,0,59561ccb-5412-4f8a-8961-3d43639e4742,59561ccb-5412-4f8a-8961-3d43639e4742,1,0,8ce1e84a-9e69-4a75-9c3e-481ba3b5eaae,8ce1e84a-9e69-4a75-9c3e-481ba3b5eaae,1,0,0ec665f2-bbde-4e41-8cd0-2578253ecdf3,0ec665f2-bbde-4e41-8cd0-2578253ecdf3,1,0,e82ab008-d6b9-4f02-b4a5-0c0c57b06988,e82ab008-d6b9-4f02-b4a5-0c0c57b06988,1,0,50d2d02d-b812-4c2b-964a-4c2ded54284f,50d2d02d-b812-4c2b-964a-4c2ded54284f,1,0,5503d2c4-0b5e-4ba1-a26d-2f63628b25c8,5503d2c4-0b5e-4ba1-a26d-2f63628b25c8,1,0,53f519d2-0ee6-4314-a986-2f456722f2ae,53f519d2-0ee6-4314-a986-2f456722f2ae,1,0,c94a168f-e10f-4b09-8a82-7e53c056a643,c94a168f-e10f-4b09-8a82-7e53c056a643,1,0,35f56bf0-bb91-4ff4-ade4-fa06296e68a2,35f56bf0-bb91-4ff4-ade4-fa06296e68a2,1,0,a22ba49d-7a11-4dc7-8b0e-874da6f0874d,a22ba49d-7a11-4dc7-8b0e-874da6f0874d,1,0,888e5183-a152-435f-b105-6b924e0d4f4f,888e5183-a152-435f-b105-6b924e0d4f4f,1,0,58f5bd13-9ed7-44ad-b86f-10acc628156f,58f5bd13-9ed7-44ad-b86f-10acc628156f,1,0,f69a29cd-035f-4d16-8bec-150f563691b9,f69a29cd-035f-4d16-8bec-150f563691b9,1,0,6d4e26f4-4cc4-4445-ad7b-547cd0afc750,6d4e26f4-4cc4-4445-ad7b-547cd0afc750,1,0,5736ef36-69eb-4406-a98e-1e4b4227a10d,5736ef36-69eb-4406-a98e-1e4b4227a10d,1,0,0ab0a57c-24c6-4ba8-9be1-5773fd82367e,0ab0a57c-24c6-4ba8-9be1-5773fd82367e,1,0,9964f9e3-613c-479f-8557-742e409da4ab,9964f9e3-613c-479f-8557-742e409da4ab,1,0,ea6d3ce8-cbac-438a-92f1-b246d558fecd,ea6d3ce8-cbac-438a-92f1-b246d558fecd,1,0,84a655d4-49fb-44bb-bdc5-59776046e66b,84a655d4-49fb-44bb-bdc5-59776046e66b,1,0,8d5d9ad3-31a7-4877-b053-64edb7332af4,8d5d9ad3-31a7-4877-b053-64edb7332af4,1,0,3dbcdc42-8583-49e4-9c57-a1b06071be66,3dbcdc42-8583-49e4-9c57-a1b06071be66,1,0,79529e32-4c86-41e3-84ec-17f72b022855,79529e32-4c86-41e3-84ec-17f72b022855,1,0,6ef107de-6385-4448-9ef8-82110452a2b6,6ef107de-6385-4448-9ef8-82110452a2b6,1,0,832cee98-f382-490f-9423-07fe6671c4ba,832cee98-f382-490f-9423-07fe6671c4ba,1,0,3ce07fcb-f1a4-41db-891a-547311567ce0,3ce07fcb-f1a4-41db-891a-547311567ce0,1,0,3bcc76a7-f28a-4d28-a95e-af7ac1138993,3bcc76a7-f28a-4d28-a95e-af7ac1138993,1,0,50b4bf05-7810-4068-8be9-0be410d9b9db,50b4bf05-7810-4068-8be9-0be410d9b9db,1,0,f9f021ca-8b3e-4d10-9538-1bce7e851fdd,f9f021ca-8b3e-4d10-9538-1bce7e851fdd,1,0,bb7cf0f8-56b0-4c0d-b206-79051ba83f6d,bb7cf0f8-56b0-4c0d-b206-79051ba83f6d,1,0,ab057ce4-ac51-4465-8aad-eadc9088c62d,ab057ce4-ac51-4465-8aad-eadc9088c62d,1,0,52231550-161f-4ac9-86f8-f6b2a6e6283a,52231550-161f-4ac9-86f8-f6b2a6e6283a,1,0,6cdb0a08-84fd-43c4-bc4a-2c1f1357cf5a,6cdb0a08-84fd-43c4-bc4a-2c1f1357cf5a,1,0,133e9b99-37a3-44c9-b5ab-873f196de023,133e9b99-37a3-44c9-b5ab-873f196de023,1,0,fc959221-6313-45d9-b2c4-85befaede226,fc959221-6313-45d9-b2c4-85befaede226,1,0,6ffa8536-7639-4e9a-9f6d-4eda71f5ca3b,6ffa8536-7639-4e9a-9f6d-4eda71f5ca3b,1,0,5206d407-ac91-477e-80e7-97c312da934c,5206d407-ac91-477e-80e7-97c312da934c,1,0,15b53eaa-cb35-4385-9515-c2ec6e1fdb4b,15b53eaa-cb35-4385-9515-c2ec6e1fdb4b,1,0,ccb8a530-260a-4488-b1d9-c67325c69bf4,ccb8a530-260a-4488-b1d9-c67325c69bf4,1,0,c869c1b7-3c04-4e5e-a033-d3f2fb0af03c,c869c1b7-3c04-4e5e-a033-d3f2fb0af03c,1,0,23f93492-59f5-491b-8708-45096934c7e6,23f93492-59f5-491b-8708-45096934c7e6,1,0,30f5471a-17fb-4184-9798-4f8e3ef0cccb,30f5471a-17fb-4184-9798-4f8e3ef0cccb,1,0,27abda4c-a43c-49b4-90cd-db780afe0c45,27abda4c-a43c-49b4-90cd-db780afe0c45,1,0,450a36cb-9bc1-4c5b-ae21-0e023f3eb951,450a36cb-9bc1-4c5b-ae21-0e023f3eb951,1,0,1a28db16-d410-4101-bf31-21cefa880dae,1a28db16-d410-4101-bf31-21cefa880dae,1,0,2b85bcf6-85b0-4efb-bada-b65414a8d264,2b85bcf6-85b0-4efb-bada-b65414a8d264,1,0,cf027de4-59c9-4b8f-9695-b1d4d16548fe,cf027de4-59c9-4b8f-9695-b1d4d16548fe,1,0,d33ceaee-a374-40a3-9406-cbcbf82fd8ae,d33ceaee-a374-40a3-9406-cbcbf82fd8ae,1,0,0b13cad5-91ae-4cd1-a620-9a315ae8024c,0b13cad5-91ae-4cd1-a620-9a315ae8024c,1,0,d0634a8e-676f-4f49-9a38-7cb80cfa9fdf,d0634a8e-676f-4f49-9a38-7cb80cfa9fdf,1,0,59bb5271-4cc7-45aa-8e2a-f556a4afa2dc,59bb5271-4cc7-45aa-8e2a-f556a4afa2dc,1,0,81dd61e5-fe02-4272-a525-affda9b606ca,81dd61e5-fe02-4272-a525-affda9b606ca,1,0,8de7b423-b7d1-46fe-b1dc-fb936736b864,8de7b423-b7d1-46fe-b1dc-fb936736b864,1,0,f565876c-0326-4b12-895e-c248b9e64115,f565876c-0326-4b12-895e-c248b9e64115,1,0,62f075c5-1ad0-4a29-9f40-567b9fa70cdf,62f075c5-1ad0-4a29-9f40-567b9fa70cdf,1,0,88cefe4a-a6c5-4753-935e-f956d9de9f77,88cefe4a-a6c5-4753-935e-f956d9de9f77,1,0,882e78b7-90bd-4b95-8852-146bdb51ec15,882e78b7-90bd-4b95-8852-146bdb51ec15,1,0,ae4435c3-62c0-4f08-b526-7f9571eed8ae,ae4435c3-62c0-4f08-b526-7f9571eed8ae,1,0,91a1bd81-e6fa-476c-85e6-317a91f6c8bc,91a1bd81-e6fa-476c-85e6-317a91f6c8bc,1,0,f799e1d1-bb78-4a7a-bb1a-d79ba29acd0c,f799e1d1-bb78-4a7a-bb1a-d79ba29acd0c,1,0,c7b46558-d688-4c42-ae52-f98de7923176,c7b46558-d688-4c42-ae52-f98de7923176,1,0,31fdbb46-1df1-4b74-a54e-b922260dcca6,31fdbb46-1df1-4b74-a54e-b922260dcca6,1,0,ee494dc9-549b-4595-97d1-ca73bacff954,ee494dc9-549b-4595-97d1-ca73bacff954,1,0,0f6f8fd9-b3af-4d06-bc47-bdad238d15b7,0f6f8fd9-b3af-4d06-bc47-bdad238d15b7,1,0,460e76d2-4ed6-464e-bf9c-a6bcf920aaf2,460e76d2-4ed6-464e-bf9c-a6bcf920aaf2,1,0,47a24216-3299-470b-a18c-d8c1258fff24,47a24216-3299-470b-a18c-d8c1258fff24,1,0,72dcfd46-491e-4f88-a0ea-57919f8fbdea,72dcfd46-491e-4f88-a0ea-57919f8fbdea,1,0,fa7a11cc-7ee0-4550-8d0d-9c7464d57a37,fa7a11cc-7ee0-4550-8d0d-9c7464d57a37,1,0,8317ac49-890d-4921-8c0d-1bfc676f0b40,8317ac49-890d-4921-8c0d-1bfc676f0b40,1,0,f9161bc3-9a1c-4870-8681-8e97d8ce838a,f9161bc3-9a1c-4870-8681-8e97d8ce838a,1,0,5e53ccc6-5ab4-4f9d-b524-0081d345d7a2,5e53ccc6-5ab4-4f9d-b524-0081d345d7a2,1,0,c3b3805b-3501-47a7-b280-46180049b235,c3b3805b-3501-47a7-b280-46180049b235,1,0,29af05c2-37de-495b-b3cf-477d452abe5e,29af05c2-37de-495b-b3cf-477d452abe5e,1,0,0c732569-a50f-4be3-a214-0843c6a3da47,0c732569-a50f-4be3-a214-0843c6a3da47,1,0,f55d74bf-5824-4228-9683-31f7c7fdf74d,f55d74bf-5824-4228-9683-31f7c7fdf74d,1,0,5e922083-0ceb-449a-8201-7dd27a46f2fc,5e922083-0ceb-449a-8201-7dd27a46f2fc,1,0,0d142fcd-a596-4cdf-a3f6-c31becdb7b59,0d142fcd-a596-4cdf-a3f6-c31becdb7b59,1,0,c30c6860-befb-497e-b432-3dba0f86c540,c30c6860-befb-497e-b432-3dba0f86c540,1,0,d97e78c7-f2c1-4e0e-9c9b-d2dd6a94da22,d97e78c7-f2c1-4e0e-9c9b-d2dd6a94da22,1,0,e757303e-c61a-4e42-9829-c5a36dba9414,e757303e-c61a-4e42-9829-c5a36dba9414,1,0,cb3bb725-ed7a-4cde-a0ac-26a0b168c0ea,cb3bb725-ed7a-4cde-a0ac-26a0b168c0ea,1,0,977748b7-13d3-41ef-8206-82595ed8fc0c,977748b7-13d3-41ef-8206-82595ed8fc0c,1,0,091de87c-0801-4bd3-aaaa-ed37bc4cd161,091de87c-0801-4bd3-aaaa-ed37bc4cd161,1,0,e9b5a16c-d445-4e62-9a1b-bbea46850646,e9b5a16c-d445-4e62-9a1b-bbea46850646,1,0,9a6bfcbe-6ac7-4839-bfb9-a11b97e64185,9a6bfcbe-6ac7-4839-bfb9-a11b97e64185,1,0,b53c545c-3b1c-4315-a213-4f2b2c7128aa,b53c545c-3b1c-4315-a213-4f2b2c7128aa,1,0,02a84df9-2171-43e6-8135-a74edd384826,02a84df9-2171-43e6-8135-a74edd384826,1,0,ff36356d-cb1d-4316-896a-c6ae83b92437,ff36356d-cb1d-4316-896a-c6ae83b92437,1,0,465cce6a-7064-4b0a-932c-40f842042f33,465cce6a-7064-4b0a-932c-40f842042f33,1,0,f9cd82e7-8252-4bb6-8e08-23ab45ed3976,f9cd82e7-8252-4bb6-8e08-23ab45ed3976,1,0,e67dff00-92e2-4f58-a950-d5bbca9291c5,e67dff00-92e2-4f58-a950-d5bbca9291c5,1,0,e1964724-804a-4ecc-be9e-5b84e58f2b84,e1964724-804a-4ecc-be9e-5b84e58f2b84,1,0,46e961c2-cd45-4d76-a6ad-c1d5c8dc95cc,46e961c2-cd45-4d76-a6ad-c1d5c8dc95cc,1,0,bf3cb513-2856-472b-8713-7bf8ba70cdce,bf3cb513-2856-472b-8713-7bf8ba70cdce,1,0,de4815c8-0853-47e0-862b-b60119c674f6,de4815c8-0853-47e0-862b-b60119c674f6,1,0,dbe02a79-3179-42bb-a8e8-dd9bf3ff705c,dbe02a79-3179-42bb-a8e8-dd9bf3ff705c,1,0,8f17ec3f-6d62-46b8-baef-b20430e948ce,8f17ec3f-6d62-46b8-baef-b20430e948ce,1,0,ea1298d0-9396-4a50-b83e-24064e8dd99d,ea1298d0-9396-4a50-b83e-24064e8dd99d,1,0,038dbb00-e4c6-4e64-b861-3a0764f54ab3,038dbb00-e4c6-4e64-b861-3a0764f54ab3,1,0,1c291f7d-a493-4297-8aaa-912896800066,1c291f7d-a493-4297-8aaa-912896800066,1,0,69149801-a825-4ed2-b077-c26660dff271,69149801-a825-4ed2-b077-c26660dff271,1,0,12146ed3-c159-4d6b-ae1a-1ecd30e5a87e,12146ed3-c159-4d6b-ae1a-1ecd30e5a87e,1,0,518ab687-b84a-40c8-8547-aee4257c1b71,518ab687-b84a-40c8-8547-aee4257c1b71,1,0,5cec0949-bfe8-4f7e-98c1-0c402be3ea09,5cec0949-bfe8-4f7e-98c1-0c402be3ea09,1,0,7732ef07-16eb-46a0-9645-7de95c5482af,7732ef07-16eb-46a0-9645-7de95c5482af,1,0,3fbd3448-b23c-4a83-b2dd-7c193f4239da,3fbd3448-b23c-4a83-b2dd-7c193f4239da,1,0,75dac536-b316-4b04-a57b-03656c678bec,75dac536-b316-4b04-a57b-03656c678bec,1,0,a07d6c85-159d-4d09-b117-561a1e20329f,a07d6c85-159d-4d09-b117-561a1e20329f,1,0,8a2f9733-4f83-41f2-9d74-dca7161a4b41,8a2f9733-4f83-41f2-9d74-dca7161a4b41,1,0,fbd2d900-1e0d-48f3-9793-0186ee49915c,fbd2d900-1e0d-48f3-9793-0186ee49915c,1,0,436b558e-6547-4ba6-8cee-954fe36743ea,436b558e-6547-4ba6-8cee-954fe36743ea,1,0,6120bb6e-b177-48bf-b467-02bab0d4cc0d,6120bb6e-b177-48bf-b467-02bab0d4cc0d,1,0,a5af4715-6c4f-484b-9599-5b1b9147713f,a5af4715-6c4f-484b-9599-5b1b9147713f,1,0,307b6e66-6fef-4777-b20a-37898928932f,307b6e66-6fef-4777-b20a-37898928932f,1,0,a69494c0-dcce-4359-aa82-c1cfae8a43eb,a69494c0-dcce-4359-aa82-c1cfae8a43eb,1,0,2b243d49-5500-403a-b177-ac1c70bb889d,2b243d49-5500-403a-b177-ac1c70bb889d,1,0,51c040c6-e7a4-4e0e-b479-039636fdb6ec,51c040c6-e7a4-4e0e-b479-039636fdb6ec,1,0,8ede4c18-ebf0-4c39-9e82-c59df8d62ca7,8ede4c18-ebf0-4c39-9e82-c59df8d62ca7,1,0,b2c200a7-b9cc-4d84-b839-e69f2a14a8f5,b2c200a7-b9cc-4d84-b839-e69f2a14a8f5,1,0,8a50e7f2-97a9-4ed8-a46f-6413f7fcf8cd,8a50e7f2-97a9-4ed8-a46f-6413f7fcf8cd,1,0,4a69a70d-1b4c-4999-a3dd-ae1deb331fea,4a69a70d-1b4c-4999-a3dd-ae1deb331fea,1,0,3a36e0f5-a645-47f1-99ae-5b0493d604ad,3a36e0f5-a645-47f1-99ae-5b0493d604ad,1,0,57f762f7-b8e4-498b-a3dc-3d40c94855ec,57f762f7-b8e4-498b-a3dc-3d40c94855ec,1,0,ca7d4086-de35-40fd-af65-73369d452135,ca7d4086-de35-40fd-af65-73369d452135,1,0,563c0f5c-e0b4-4229-a3f6-183091060aa4,563c0f5c-e0b4-4229-a3f6-183091060aa4,1,0,bf967588-ea8f-49a3-9331-af2331ffa162,bf967588-ea8f-49a3-9331-af2331ffa162,1,0,d59c2725-5d98-495e-9f86-f5d38dbfad90,d59c2725-5d98-495e-9f86-f5d38dbfad90,1,0,176f8835-73d2-4fbe-9d2a-0a4c79d3b871,176f8835-73d2-4fbe-9d2a-0a4c79d3b871,1,0,0ba68198-983d-409b-be27-96f1572b3f12,0ba68198-983d-409b-be27-96f1572b3f12,1,0,9cd1e8dd-e2be-48a9-b32d-43688e1748bc,9cd1e8dd-e2be-48a9-b32d-43688e1748bc,1,0,decb27a8-7dd3-4601-a694-30429e638b39,decb27a8-7dd3-4601-a694-30429e638b39,1,0,922ac6c0-a6a8-444e-9aad-27dc0f49b32e,922ac6c0-a6a8-444e-9aad-27dc0f49b32e,1,0,d7a128e4-f31f-4b09-8424-e816ab59d5c3,d7a128e4-f31f-4b09-8424-e816ab59d5c3,1,0,0ce6e252-8d6e-4bfe-b8cc-daf3434fa51e,0ce6e252-8d6e-4bfe-b8cc-daf3434fa51e,1,0,aa9513b4-f575-4030-a7f9-ac09aa319e98,aa9513b4-f575-4030-a7f9-ac09aa319e98,1,0,f01afc5e-91b8-4cc2-b63a-c245e5e36d01,f01afc5e-91b8-4cc2-b63a-c245e5e36d01,1,0,028cbc0e-023d-40ad-86c3-5e6f8dc96c57,028cbc0e-023d-40ad-86c3-5e6f8dc96c57,1,0,d03f66b1-48a3-434b-bb58-9fd53c183514,d03f66b1-48a3-434b-bb58-9fd53c183514,1,0,a469e55e-d7ca-4c27-b350-fafe7364c18f,a469e55e-d7ca-4c27-b350-fafe7364c18f,1,0,b4dde44e-57d5-4c3a-bb9b-643787ce07b0,b4dde44e-57d5-4c3a-bb9b-643787ce07b0,1,0,d2160866-78ca-424a-92b9-d389fb341ee0,d2160866-78ca-424a-92b9-d389fb341ee0,1,0,73b36823-72a4-4286-8ee2-02b2f086d5ea,73b36823-72a4-4286-8ee2-02b2f086d5ea,1,0,90a7425e-3fc9-41ec-9373-f410936e1b53,90a7425e-3fc9-41ec-9373-f410936e1b53,1,0,509cdfc8-fad3-4628-869c-6c03d9519d69,509cdfc8-fad3-4628-869c-6c03d9519d69,1,0,c69f8196-5d7e-4ca9-a84e-c85d9ecf8777,c69f8196-5d7e-4ca9-a84e-c85d9ecf8777,1,0,663cf316-3077-4fac-b821-94bd5cdde65c,663cf316-3077-4fac-b821-94bd5cdde65c,1,0,4b37d2c0-4181-4c47-951c-987017972bf7,4b37d2c0-4181-4c47-951c-987017972bf7,1,0,8ae35de6-c7f0-4839-bc27-cc8619e30a43,8ae35de6-c7f0-4839-bc27-cc8619e30a43,1,0,9ef01e37-030a-44b7-824b-110e0f5a88f3,9ef01e37-030a-44b7-824b-110e0f5a88f3,1,0,98bf409f-de8d-4306-b290-716b006e6fd8,98bf409f-de8d-4306-b290-716b006e6fd8,1,0,c15f648b-3aed-4734-bcd2-524e2d3336c0,c15f648b-3aed-4734-bcd2-524e2d3336c0,1,0,600ac5b6-d3ac-4262-820d-5a989fa7f44d,600ac5b6-d3ac-4262-820d-5a989fa7f44d,1,0,3c671c62-5614-4c1b-a823-ac4922c9daf7,3c671c62-5614-4c1b-a823-ac4922c9daf7,1,0,c347e3a2-d6d9-46a0-971f-ec56a45dcbe8,c347e3a2-d6d9-46a0-971f-ec56a45dcbe8,1,0,455c94b6-6b10-405f-a198-f680c7ad5ffe,455c94b6-6b10-405f-a198-f680c7ad5ffe,1,0,d16a63b9-2b84-447e-9c32-1d8f7c4c5a11,d16a63b9-2b84-447e-9c32-1d8f7c4c5a11,1,0,48cc3006-9f06-4be1-aec4-5c04308200d5,48cc3006-9f06-4be1-aec4-5c04308200d5,1,0,bae8ba70-a19e-41fa-b11c-6513453bd3ac,bae8ba70-a19e-41fa-b11c-6513453bd3ac,1,0,f4a9a13e-91b0-4440-8662-25acf099220e,f4a9a13e-91b0-4440-8662-25acf099220e,1,0,ff87a40b-07da-4951-b469-a75d418e88b3,ff87a40b-07da-4951-b469-a75d418e88b3,1,0,708b4656-7d14-491f-95b5-8fe3f0d6d44b,708b4656-7d14-491f-95b5-8fe3f0d6d44b,1,0,331db59d-ef90-4255-89c2-d7fdd6bc5c4c,331db59d-ef90-4255-89c2-d7fdd6bc5c4c,1,0,e520fbbb-3521-4707-bbe7-c8ead04fb2dc,e520fbbb-3521-4707-bbe7-c8ead04fb2dc,1,0,a87faa63-4e1c-440c-b852-0e4e1485a047,a87faa63-4e1c-440c-b852-0e4e1485a047,1,0,36244ad9-5b3a-431e-9dbf-b05ee9da1188,36244ad9-5b3a-431e-9dbf-b05ee9da1188,1,0,6cf7fd67-e426-4fe3-a49d-fbcfae5fb52d,6cf7fd67-e426-4fe3-a49d-fbcfae5fb52d,1,0,92c4d60b-22df-4fef-a5b9-a97bc63b4858,92c4d60b-22df-4fef-a5b9-a97bc63b4858,1,0,8264b98b-7eec-4651-96fc-02620c87f274,8264b98b-7eec-4651-96fc-02620c87f274,1,0,bcd6e5f0-a800-4f21-ad75-24c428157cee,bcd6e5f0-a800-4f21-ad75-24c428157cee,1,0,9f351f0a-2d43-4215-8d74-040911230683,9f351f0a-2d43-4215-8d74-040911230683,1,0,6a9c1bd4-b550-4911-a8d1-321a7713a5a5,6a9c1bd4-b550-4911-a8d1-321a7713a5a5,1,0,019fa716-e91a-4116-abcf-c87349c153a4,019fa716-e91a-4116-abcf-c87349c153a4,1,0,f9fed640-0121-4c36-a822-0db7a9155adc,f9fed640-0121-4c36-a822-0db7a9155adc,1,0,e418d7c4-7322-41b1-a8df-d86a11f7711c,e418d7c4-7322-41b1-a8df-d86a11f7711c,1,0,b8a6ea0c-cb94-44af-8e40-55defed295d1,b8a6ea0c-cb94-44af-8e40-55defed295d1,1,0,3fcdfe26-1668-4aa7-bb10-ef8d8bd0ae39,3fcdfe26-1668-4aa7-bb10-ef8d8bd0ae39,1,0,a0ebcc8a-267b-4f95-a986-46db8fb5df4d,a0ebcc8a-267b-4f95-a986-46db8fb5df4d,1,0,9c890915-1ae3-457e-8a3d-7b39f181304b,9c890915-1ae3-457e-8a3d-7b39f181304b,1,0,3ad5d8a7-3071-46aa-aebf-306bdb67983b,3ad5d8a7-3071-46aa-aebf-306bdb67983b,1,0,ab7ef662-71c1-4d51-9f0f-ea8c5ea3df8a,ab7ef662-71c1-4d51-9f0f-ea8c5ea3df8a,1,0,cb954476-c551-4a06-9bcd-18d67ba47dc8,cb954476-c551-4a06-9bcd-18d67ba47dc8,1,0,79201015-bfae-463e-81f1-0ae2d3066f3f,79201015-bfae-463e-81f1-0ae2d3066f3f,1,0,bed8af4e-fa3a-4b25-ba6e-5b7b4a6cd363,bed8af4e-fa3a-4b25-ba6e-5b7b4a6cd363,1,0,951927d4-7bfc-4edb-b97f-dcc29a937400,951927d4-7bfc-4edb-b97f-dcc29a937400,1,0,71309e88-d514-40f3-a329-b2a420e75504,71309e88-d514-40f3-a329-b2a420e75504,1,0,1ea3178b-73dd-4063-9140-c61687a4b1b8,1ea3178b-73dd-4063-9140-c61687a4b1b8,1,0,85fd7ef4-2886-4e2c-a6eb-63d0b0b9cd55,85fd7ef4-2886-4e2c-a6eb-63d0b0b9cd55,1,0,696723be-7b4f-4321-956e-eff07ea9f5fa,696723be-7b4f-4321-956e-eff07ea9f5fa,1,0,616c27dc-5c59-4469-97a7-27e0752bd3a7,616c27dc-5c59-4469-97a7-27e0752bd3a7,1,0,f7323121-74bc-441c-a3e9-dd5cb4f0accd,f7323121-74bc-441c-a3e9-dd5cb4f0accd,1,0,5225b4da-431e-469d-a30c-31fa434b7e86,5225b4da-431e-469d-a30c-31fa434b7e86,1,0,68dcbdd5-c1fd-472f-873c-359d3a237b8c,68dcbdd5-c1fd-472f-873c-359d3a237b8c,1,0,3c6e831c-c934-46bb-8040-edd6de81ba1b,3c6e831c-c934-46bb-8040-edd6de81ba1b,1,0,3c737aff-9581-409a-9a6e-d5e3c133d8df,3c737aff-9581-409a-9a6e-d5e3c133d8df,1,0,916a9ea9-309d-4a7a-9ded-63bda01a39d4,916a9ea9-309d-4a7a-9ded-63bda01a39d4,1,0,2197147c-f67c-4e92-9e69-2c9900144e82,2197147c-f67c-4e92-9e69-2c9900144e82,1,0,7692e2fd-9ab5-45ee-9a4c-380107769ef7,7692e2fd-9ab5-45ee-9a4c-380107769ef7,1,0,6586260a-3abd-4283-b710-bc2ae3b965d8,6586260a-3abd-4283-b710-bc2ae3b965d8,1,0,2af20999-4b9a-44c7-9edf-40446e083796,2af20999-4b9a-44c7-9edf-40446e083796,1,0,100acfa0-d5f3-4a20-8a05-9d9d00aff2c9,100acfa0-d5f3-4a20-8a05-9d9d00aff2c9,1,0,ccdaa099-3739-4731-b028-3cb4e75834a5,ccdaa099-3739-4731-b028-3cb4e75834a5,1,0,dcbcf7e3-83ab-4460-8ee7-dfc55a0342e7,dcbcf7e3-83ab-4460-8ee7-dfc55a0342e7,1,0,4aa2e369-4871-4f28-ab0b-94323bb7e856,4aa2e369-4871-4f28-ab0b-94323bb7e856,1,0,a2961e9e-8361-4416-b736-1b59c9306526,a2961e9e-8361-4416-b736-1b59c9306526,1,0,ee07ebbe-b34d-4c42-a4b4-d5e14ef4c103,ee07ebbe-b34d-4c42-a4b4-d5e14ef4c103,1,0,1d44bf7e-3dc9-4ca4-86c8-bdabdb5650b8,1d44bf7e-3dc9-4ca4-86c8-bdabdb5650b8,1,0,d4757882-e0bd-4f54-962b-32d49c90fb60,d4757882-e0bd-4f54-962b-32d49c90fb60,1,0,6e650778-3ddd-44ca-bd7f-ffa5e8f4cce4,6e650778-3ddd-44ca-bd7f-ffa5e8f4cce4,1,0,ec81b967-a4a1-48ac-beda-cdc00f1222a0,ec81b967-a4a1-48ac-beda-cdc00f1222a0,1,0,0040f7b0-3499-41bd-94bf-d63679d9d9c1,0040f7b0-3499-41bd-94bf-d63679d9d9c1,1,0,e5c31a93-cda7-4972-a13b-8cb864cc40ed,e5c31a93-cda7-4972-a13b-8cb864cc40ed,1,0,e2a5f14f-9b64-4d1c-9c66-332ea0157cc2,e2a5f14f-9b64-4d1c-9c66-332ea0157cc2,1,0,0fdbd1ab-716d-46b5-aa75-fb09812ced5b,0fdbd1ab-716d-46b5-aa75-fb09812ced5b,1,0,b26ab92b-9739-4eb4-b855-be6850274432,b26ab92b-9739-4eb4-b855-be6850274432,1,0,17944416-85a5-49e4-9fa8-652c671c3df0,17944416-85a5-49e4-9fa8-652c671c3df0,1,0,b7936cda-654e-4707-af76-385a63243cdf,b7936cda-654e-4707-af76-385a63243cdf,1,0,192844c3-7cb9-4477-a4af-0edb8ce5129d,192844c3-7cb9-4477-a4af-0edb8ce5129d,1,0,33324481-55d1-475f-9f12-7542a05429a2,33324481-55d1-475f-9f12-7542a05429a2,1,0,07b7591f-dcfc-483f-85f6-b5a08d952fe2,07b7591f-dcfc-483f-85f6-b5a08d952fe2,1,0,866c418f-332e-415a-bb8e-794d38f15080,866c418f-332e-415a-bb8e-794d38f15080,1,0,a34b8fdc-e756-4065-b68a-12a07fa7c40e,a34b8fdc-e756-4065-b68a-12a07fa7c40e,1,0,b853debb-d715-4296-9070-45cc5dae571d,b853debb-d715-4296-9070-45cc5dae571d,1,0,fc406b50-f267-44b8-a833-ba7e8880903e,fc406b50-f267-44b8-a833-ba7e8880903e,1,0,6517bf8b-d2fd-4b6b-a4a5-b3086ebad8de,6517bf8b-d2fd-4b6b-a4a5-b3086ebad8de,1,0,391a1891-85a2-45b8-a747-3ecd705fc75b,391a1891-85a2-45b8-a747-3ecd705fc75b,1,0,05681509-254d-4232-af69-62a63ed05716,05681509-254d-4232-af69-62a63ed05716,1,0,cc815221-3d2a-4ea3-b1e6-6cb9fb410bd9,cc815221-3d2a-4ea3-b1e6-6cb9fb410bd9,1,0,b9ef62f6-9b1d-4d13-8016-73ed531d195a,b9ef62f6-9b1d-4d13-8016-73ed531d195a,1,0,742ed6d8-0f8d-4569-b30f-9ff3804cc3b7,742ed6d8-0f8d-4569-b30f-9ff3804cc3b7,1,0,229fe764-87f5-4d19-b042-c31fef5cddd6,229fe764-87f5-4d19-b042-c31fef5cddd6,1,0,74cd7504-d34f-42ff-90ff-7abcd54e8b6c,74cd7504-d34f-42ff-90ff-7abcd54e8b6c,1,0,e932800c-fd81-417d-a601-c774b888d66a,e932800c-fd81-417d-a601-c774b888d66a,1,0,a2335b6f-1dbb-4722-979b-8bed83aa8c94,a2335b6f-1dbb-4722-979b-8bed83aa8c94,1,0,211cf921-d880-4f74-b8ee-5312dea28613,211cf921-d880-4f74-b8ee-5312dea28613,1,0,2fd3a396-b8ae-409e-9373-02a039393a80,2fd3a396-b8ae-409e-9373-02a039393a80,1,0,61ae74be-64b2-4bf2-aa63-8fe3dc7ed47d,61ae74be-64b2-4bf2-aa63-8fe3dc7ed47d,1,0,346ef414-b20b-4095-86fe-18ca21c9887f,346ef414-b20b-4095-86fe-18ca21c9887f,1,0,c01ab97b-4964-4f7d-b749-56c0b94feb93,c01ab97b-4964-4f7d-b749-56c0b94feb93,1,0,0cc63813-cf16-4a99-b3bd-18a773091230,0cc63813-cf16-4a99-b3bd-18a773091230,1,0,4fc00971-c980-468a-9690-5cd520d12eb0,4fc00971-c980-468a-9690-5cd520d12eb0,1,0,85972c27-4f39-4982-9307-7877e87ef87b,85972c27-4f39-4982-9307-7877e87ef87b,1,0,96afdffb-7595-4c49-9e86-8296f50bd2f5,96afdffb-7595-4c49-9e86-8296f50bd2f5,1,0,823d5b5e-e9bf-40f0-9dcd-579bb53847bb,823d5b5e-e9bf-40f0-9dcd-579bb53847bb,1,0,e125d3e0-950f-42ee-8904-bd26091afa55,e125d3e0-950f-42ee-8904-bd26091afa55,1,0,2b4797a5-074a-4a01-b99f-1c5590cfde40,2b4797a5-074a-4a01-b99f-1c5590cfde40,1,0,718e53d2-24ec-40fb-9def-825441ada46c,718e53d2-24ec-40fb-9def-825441ada46c,1,0,4c0a7fd6-8f09-41d6-949f-65ce708c1256,4c0a7fd6-8f09-41d6-949f-65ce708c1256,1,0,792abc06-b52a-4691-ba92-96ed73ca702a,792abc06-b52a-4691-ba92-96ed73ca702a,1,0,148dbe44-86d1-4362-b9db-8ff68cd2b34d,148dbe44-86d1-4362-b9db-8ff68cd2b34d,1,0,1fbc893e-3000-4fac-88f5-c82251835d65,1fbc893e-3000-4fac-88f5-c82251835d65,1,0,05852816-63ec-4179-abca-66372bbfb04c,05852816-63ec-4179-abca-66372bbfb04c,1,0,0165f721-b011-4524-bfd5-81e35092f2be,0165f721-b011-4524-bfd5-81e35092f2be,1,0,e74925d4-1979-4600-8560-0932d26450ad,e74925d4-1979-4600-8560-0932d26450ad,1,0,aa108131-151d-4356-8a24-345e4ec74281,aa108131-151d-4356-8a24-345e4ec74281,1,0,284b77a8-d9f4-44c4-a2dc-91c1f8bd5808,284b77a8-d9f4-44c4-a2dc-91c1f8bd5808,1,0,e3251f1a-3c80-4c86-9960-270920bd512f,e3251f1a-3c80-4c86-9960-270920bd512f,1,0,3c3d5474-977b-4df9-88de-042e997bd10d,3c3d5474-977b-4df9-88de-042e997bd10d,1,0,4b88d172-5a44-4011-bb38-e94bf7a9c879,4b88d172-5a44-4011-bb38-e94bf7a9c879,1,0,3bced2d4-e3d7-4489-a26d-f84620b096f4,3bced2d4-e3d7-4489-a26d-f84620b096f4,1,0,e8c048fc-0f39-4778-aaf3-d6bff5acb06a,e8c048fc-0f39-4778-aaf3-d6bff5acb06a,1,0,c7efb89b-f9e5-4b58-b7a0-502cea8cf1d4,c7efb89b-f9e5-4b58-b7a0-502cea8cf1d4,1,0,cd133f15-aa45-4ec9-93c2-2f0f66baf3f3,cd133f15-aa45-4ec9-93c2-2f0f66baf3f3,1,0,18436045-1008-4114-8032-274fea0f4627,18436045-1008-4114-8032-274fea0f4627,1,0,cad93727-cffb-44a6-aaee-be73a078e802,cad93727-cffb-44a6-aaee-be73a078e802,1,0,c034f410-ff8e-45d7-925f-94448f88a7af,c034f410-ff8e-45d7-925f-94448f88a7af,1,0,0027727b-3917-4010-9953-1649266e8ed7,0027727b-3917-4010-9953-1649266e8ed7,1,0,b088786a-046f-458c-8e7a-5bebf8df8b34,b088786a-046f-458c-8e7a-5bebf8df8b34,1,0,6d015113-1e32-4f5e-aacd-8134d7307125,6d015113-1e32-4f5e-aacd-8134d7307125,1,0,58230238-d2f2-422e-90cb-de355996eb19,58230238-d2f2-422e-90cb-de355996eb19,1,0,3d907678-628d-4fb2-85c2-149839024c08,3d907678-628d-4fb2-85c2-149839024c08,1,0,71384d10-6acf-4139-b766-cb8b5796f1a7,71384d10-6acf-4139-b766-cb8b5796f1a7,1,0,a8f149d7-e9bc-4695-b4f4-88434e31aafb,a8f149d7-e9bc-4695-b4f4-88434e31aafb,1,0,10dcbcc6-7793-4da7-a9a5-e4f124209d3e,10dcbcc6-7793-4da7-a9a5-e4f124209d3e,1,0,11ba510f-cb57-43d0-9897-c49e10b67ccd,11ba510f-cb57-43d0-9897-c49e10b67ccd,1,0,9d92af67-c88d-4429-9e85-0b5bf04c4b79,9d92af67-c88d-4429-9e85-0b5bf04c4b79,1,0,b009bc99-ea12-46db-a7f8-cb3e285b20d0,b009bc99-ea12-46db-a7f8-cb3e285b20d0,1,0,43523bbb-c923-4a20-bcb5-50d30cc826ee,43523bbb-c923-4a20-bcb5-50d30cc826ee,1,0,c89d9aad-3364-45df-88b5-b23ae76edbba,c89d9aad-3364-45df-88b5-b23ae76edbba,1,0,9a2f2cd1-4c9f-460b-b3b7-64706a0164ab,9a2f2cd1-4c9f-460b-b3b7-64706a0164ab,1,0,7e4b9dce-e332-4d35-8b5f-d3f88918989d,7e4b9dce-e332-4d35-8b5f-d3f88918989d,1,0,15cd04c9-c12a-44ea-a397-d2adbac99c5b,15cd04c9-c12a-44ea-a397-d2adbac99c5b,1,0,182f92f5-0a8e-4f6a-9f9e-7878fafd0a2a,182f92f5-0a8e-4f6a-9f9e-7878fafd0a2a,1,0,45ca26ef-2a9f-4f24-a81b-2fe10c02ed9f,45ca26ef-2a9f-4f24-a81b-2fe10c02ed9f,1,0,56aa4b2f-5b7e-457d-a59d-837405f17fde,56aa4b2f-5b7e-457d-a59d-837405f17fde,1,0,819e2442-cb5a-4826-8a66-b34a3270e8e0,819e2442-cb5a-4826-8a66-b34a3270e8e0,1,0,49987536-3ab9-4a68-83a2-5dc3cd5d58fb,49987536-3ab9-4a68-83a2-5dc3cd5d58fb,1,0,8e4eec45-6ad3-4ac8-940a-b3130f504685,8e4eec45-6ad3-4ac8-940a-b3130f504685,1,0,ccdfef4b-a022-4bde-9c6c-84129b2bad65,ccdfef4b-a022-4bde-9c6c-84129b2bad65,1,0,965cd747-2231-4396-9584-93525db96fab,965cd747-2231-4396-9584-93525db96fab,1,0,419ea30e-3eaf-4af9-8914-493e93d3a743,419ea30e-3eaf-4af9-8914-493e93d3a743,1,0,f9ff4d55-a9d0-4ce7-8808-88dd17b57cce,f9ff4d55-a9d0-4ce7-8808-88dd17b57cce,1,0,430cf66c-5cfc-4fd4-bbf3-d9df6070e115,430cf66c-5cfc-4fd4-bbf3-d9df6070e115,1,0,95adcac2-bc88-46bc-aae5-d13cfb9a170c,95adcac2-bc88-46bc-aae5-d13cfb9a170c,1,0,d845ca4c-3af2-4322-8565-64f3aee61e3a,d845ca4c-3af2-4322-8565-64f3aee61e3a,1,0,6321fc1e-c1d7-4b49-b730-258857b2d936,6321fc1e-c1d7-4b49-b730-258857b2d936,1,0,f48abfe8-e400-4544-a80a-d1cb0b7d3ea8,f48abfe8-e400-4544-a80a-d1cb0b7d3ea8,1,0,ce40016b-7ca7-4803-81fa-5df0b92dbc54,ce40016b-7ca7-4803-81fa-5df0b92dbc54,1,0,b58b711b-8e9a-44a0-b62d-6b6362177a4b,b58b711b-8e9a-44a0-b62d-6b6362177a4b,1,0,f7c0af11-1b64-4504-a8db-0fd09c2ce20f,f7c0af11-1b64-4504-a8db-0fd09c2ce20f,1,0,b3c7cd75-fb40-4121-a727-d557fe66a5e0,b3c7cd75-fb40-4121-a727-d557fe66a5e0,1,0,38be384a-3abb-4f4d-b8b7-164c2c8d8b28,38be384a-3abb-4f4d-b8b7-164c2c8d8b28,1,0,8c697e44-1a1d-4c4a-b141-5254cfb229a5,8c697e44-1a1d-4c4a-b141-5254cfb229a5,1,0,96fe619a-b819-4f96-9788-e1f4ef57833a,96fe619a-b819-4f96-9788-e1f4ef57833a,1,0,94dff2da-f721-411a-9fc0-5d013b685dcc,94dff2da-f721-411a-9fc0-5d013b685dcc,1,0,9343fc5f-7b08-4be5-8cd5-dbed635b819d,9343fc5f-7b08-4be5-8cd5-dbed635b819d,1,0,99e87e66-1b07-451b-a476-f5213cbd7150,99e87e66-1b07-451b-a476-f5213cbd7150,1,0,c3317f75-f6ad-41f6-97f1-77074c3ff62a,c3317f75-f6ad-41f6-97f1-77074c3ff62a,1,0,8800dec9-84f8-4643-8742-1d76fe575f58,8800dec9-84f8-4643-8742-1d76fe575f58,1,0,62903794-3b41-4d21-b800-1c26dbeda3ce,62903794-3b41-4d21-b800-1c26dbeda3ce,1,0,9bda4a0b-e8a7-4acf-9f07-4033b3a84ebc,9bda4a0b-e8a7-4acf-9f07-4033b3a84ebc,1,0,4ba2e55e-29bc-4fbe-83e8-8bfa36abfdab,4ba2e55e-29bc-4fbe-83e8-8bfa36abfdab,1,0,93de88de-0069-4aa8-96b2-d5709e4def2f,93de88de-0069-4aa8-96b2-d5709e4def2f,1,0,9f94fadf-ac9d-4e57-9fe4-41ce8cfbec6a,9f94fadf-ac9d-4e57-9fe4-41ce8cfbec6a,1,0,12d4ffc8-592e-42a7-b8c6-20bd58f6da90,12d4ffc8-592e-42a7-b8c6-20bd58f6da90,1,0,3a8d9010-8785-4d8d-b908-b821d7d681c9,3a8d9010-8785-4d8d-b908-b821d7d681c9,1,0,2568a935-ea49-4b99-aa9c-de27de6a0e81,2568a935-ea49-4b99-aa9c-de27de6a0e81,1,0,de2bdd4f-93f2-4341-86d6-7082fc286a5c,de2bdd4f-93f2-4341-86d6-7082fc286a5c,1,0,ba96ec0e-931e-45be-a782-e68ba4fedddb,ba96ec0e-931e-45be-a782-e68ba4fedddb,1,0,9af5882f-3a42-4fae-83df-6aa8de577112,9af5882f-3a42-4fae-83df-6aa8de577112,1,0,79bc5e39-3017-48bf-8e42-fa34e8b581ef,79bc5e39-3017-48bf-8e42-fa34e8b581ef,1,0,fe6e207f-d306-4470-8441-ffd3f3710d31,fe6e207f-d306-4470-8441-ffd3f3710d31,1,0,7451af80-7387-4e8d-a3da-2ae0540c3fd4,7451af80-7387-4e8d-a3da-2ae0540c3fd4,1,0,1c1e01f2-b2b3-480d-ae51-2db27b82dedd,1c1e01f2-b2b3-480d-ae51-2db27b82dedd,1,0,df459525-4e4d-4819-b996-5a6379b22a88,df459525-4e4d-4819-b996-5a6379b22a88,1,0,ed1d69f4-b09f-430a-bb2e-a23fe4dedf6b,ed1d69f4-b09f-430a-bb2e-a23fe4dedf6b,1,0,e67b4a32-4bac-450e-be6d-88c262383f31,e67b4a32-4bac-450e-be6d-88c262383f31,1,0,28bb77d5-cc8e-4f91-830e-d5052224ed97,28bb77d5-cc8e-4f91-830e-d5052224ed97,1,0,874868a1-e4a3-4c78-8db4-5b103c9cc541,874868a1-e4a3-4c78-8db4-5b103c9cc541,1,0,d397d41e-6113-4f4e-99de-5d445649a4c3,d397d41e-6113-4f4e-99de-5d445649a4c3,1,0,2125956a-c910-4467-96f7-846441d17b02,2125956a-c910-4467-96f7-846441d17b02,1,0,3d0c7eb6-6d5e-46b4-b4c3-140a5b5ce6cf,3d0c7eb6-6d5e-46b4-b4c3-140a5b5ce6cf,1,0,da9028f5-04bb-4782-bd3a-0d17f4e1534e,da9028f5-04bb-4782-bd3a-0d17f4e1534e,1,0,45a74cbe-e001-4a6e-b0bf-b1e8947fb409,45a74cbe-e001-4a6e-b0bf-b1e8947fb409,1,0,8b83bb54-4c23-4bd8-bd00-374a7a101cfa,8b83bb54-4c23-4bd8-bd00-374a7a101cfa,1,0,6c4c3eca-8b02-451b-af52-93073c3da146,6c4c3eca-8b02-451b-af52-93073c3da146,1,0,095c281c-3903-465d-baea-af1e6abf8019,095c281c-3903-465d-baea-af1e6abf8019,1,0,440d115d-a769-427e-891a-88d65fba2057,440d115d-a769-427e-891a-88d65fba2057,1,0,f7932210-027e-4fad-b7f7-3530789ce803,f7932210-027e-4fad-b7f7-3530789ce803,1,0,7bbfd95e-39a1-485b-930f-c9210c18dcd0,7bbfd95e-39a1-485b-930f-c9210c18dcd0,1,0,4975d3d6-b5a2-41c6-973b-6817013a388d,4975d3d6-b5a2-41c6-973b-6817013a388d,1,0,18ebc799-9724-4ffb-855e-b09a0723869e,18ebc799-9724-4ffb-855e-b09a0723869e,1,0,a06b8ef5-83e6-4fc6-91e1-256004134d69,a06b8ef5-83e6-4fc6-91e1-256004134d69,1,0,1d6a68ec-917f-4c3b-b970-797a6921cbc9,1d6a68ec-917f-4c3b-b970-797a6921cbc9,1,0,ae29eb40-5c8f-4ab4-8556-f98d45e8effe,ae29eb40-5c8f-4ab4-8556-f98d45e8effe,1,0,5b663988-3599-46dc-8d59-4c82ceac537c,5b663988-3599-46dc-8d59-4c82ceac537c,1,0,0f5f136c-688b-491e-a72b-3d9c2e609f0e,0f5f136c-688b-491e-a72b-3d9c2e609f0e,1,0,5573b405-6ac4-4632-b8d6-5d1cbdb63b97,5573b405-6ac4-4632-b8d6-5d1cbdb63b97,1,0,679cc0df-df5c-4c33-8c64-c0b6cee39116,679cc0df-df5c-4c33-8c64-c0b6cee39116,1,0,b156752b-f25c-4f35-9474-8ac3636597f5,b156752b-f25c-4f35-9474-8ac3636597f5,1,0,bdc51d67-5fc2-4d28-8875-69e33e625be6,bdc51d67-5fc2-4d28-8875-69e33e625be6,1,0,94ca9aa0-f61f-496b-8fef-9e6fb7bd8f87,94ca9aa0-f61f-496b-8fef-9e6fb7bd8f87,1,0,b494ca7b-6548-4fa2-932c-acdf8c62a78a,b494ca7b-6548-4fa2-932c-acdf8c62a78a,1,0,2d279292-f9d6-4d5a-aaeb-f82f6485ac54,2d279292-f9d6-4d5a-aaeb-f82f6485ac54,1,0,f335aa38-4e9e-4653-9a76-b6d4ae178c93,f335aa38-4e9e-4653-9a76-b6d4ae178c93,1,0,a62894bc-fab4-4ed4-a57d-cbe725527198,a62894bc-fab4-4ed4-a57d-cbe725527198,1,0,d4e567c7-55f1-4564-b066-f5b2355ad82c,d4e567c7-55f1-4564-b066-f5b2355ad82c,1,0,57d1bde3-eaa7-476b-aecb-f78e0e97c765,57d1bde3-eaa7-476b-aecb-f78e0e97c765,1,0,89cf2cd8-dc43-4742-af5a-5975e9546786,89cf2cd8-dc43-4742-af5a-5975e9546786,1,0,089ae618-cd90-482a-b4a2-45a04aaecc0c,089ae618-cd90-482a-b4a2-45a04aaecc0c,1,0,d1beef4e-9c78-49f5-9e52-1568fadf861d,d1beef4e-9c78-49f5-9e52-1568fadf861d,1,0,e6032a40-6195-4889-99f5-f7f4c74d4e8f,e6032a40-6195-4889-99f5-f7f4c74d4e8f,1,0,f9f12c11-04e8-4999-b1ab-ddea896638a2,f9f12c11-04e8-4999-b1ab-ddea896638a2,1,0,47ae26c4-1c47-4d9d-a0b8-a9899d08a4ce,47ae26c4-1c47-4d9d-a0b8-a9899d08a4ce,1,0,83245a76-8502-47a4-98ae-2ffadb78a029,83245a76-8502-47a4-98ae-2ffadb78a029,1,0,c9d5a41d-a2d9-4ec6-9a51-e4d254df1927,c9d5a41d-a2d9-4ec6-9a51-e4d254df1927,1,0,22d7df25-5885-4ad6-bb29-28257256da22,22d7df25-5885-4ad6-bb29-28257256da22,1,0,3bb85423-6ce7-416f-884a-89c75deed890,3bb85423-6ce7-416f-884a-89c75deed890,1,0,132c8921-189a-4c00-a8a4-417728520203,132c8921-189a-4c00-a8a4-417728520203,1,0,18535b06-82f0-4179-af3c-975a5ba85872,18535b06-82f0-4179-af3c-975a5ba85872,1,0,1d0981b4-cf7c-4094-a597-d709a8573d71,1d0981b4-cf7c-4094-a597-d709a8573d71,1,0,b5bb5376-27a6-43f2-9e91-bf7c913b89fd,b5bb5376-27a6-43f2-9e91-bf7c913b89fd,1,0,24861cd2-2be0-4454-8154-2201e63be266,24861cd2-2be0-4454-8154-2201e63be266,1,0,2e364599-aad9-4d1d-a4df-6cbd3ed768e7,2e364599-aad9-4d1d-a4df-6cbd3ed768e7,1,0,c14cac09-820e-47ae-81bb-eb497950d40c,c14cac09-820e-47ae-81bb-eb497950d40c,1,0,201cd431-6027-466c-abec-09ff65f42244,201cd431-6027-466c-abec-09ff65f42244,1,0,1018c5d8-8aed-49ba-a27c-a44bddd96144,1018c5d8-8aed-49ba-a27c-a44bddd96144,1,0,a81e5d20-9c42-462d-83a3-f86522c473f5,a81e5d20-9c42-462d-83a3-f86522c473f5,1,0,1ce4440e-3709-4cb1-8505-2379d5146be3,1ce4440e-3709-4cb1-8505-2379d5146be3,1,0,a26d8489-88a8-438e-bb58-c7b5a742a243,a26d8489-88a8-438e-bb58-c7b5a742a243,1,0,67dc31fa-cc64-4d29-96aa-65a7fd480790,67dc31fa-cc64-4d29-96aa-65a7fd480790,1,0,17f0e86d-8661-492c-85fa-2ce3cd1a57d5,17f0e86d-8661-492c-85fa-2ce3cd1a57d5,1,0,9728fd22-163c-443d-a89f-79d15c51c086,9728fd22-163c-443d-a89f-79d15c51c086,1,0,7030a503-e97c-4cb8-b6cd-79dbd08fd2cc,7030a503-e97c-4cb8-b6cd-79dbd08fd2cc,1,0,0a7c25db-dba6-44d3-b994-d672c4f33f1f,0a7c25db-dba6-44d3-b994-d672c4f33f1f,1,0,618b565c-f80f-4e58-94f1-227d4bdc8fe7,618b565c-f80f-4e58-94f1-227d4bdc8fe7,1,0,e36ed6bf-7bb2-419f-b3d4-fe6f7e75188d,e36ed6bf-7bb2-419f-b3d4-fe6f7e75188d,1,0,018bd653-a526-4e2c-8483-1192ae997458,018bd653-a526-4e2c-8483-1192ae997458,1,0,788a38ca-6ef8-4a05-a0c7-032766b135d9,788a38ca-6ef8-4a05-a0c7-032766b135d9,1,0,82e0e020-d6a7-45ae-bdbd-d29aacff313a,82e0e020-d6a7-45ae-bdbd-d29aacff313a,1,0,31ac5bc1-3642-456b-aaed-d604669556f6,31ac5bc1-3642-456b-aaed-d604669556f6,1,0,3157f1b3-5d78-4fe4-89bf-afca0026a8d5,3157f1b3-5d78-4fe4-89bf-afca0026a8d5,1,0,317e6068-5c8e-4455-932c-f5ae09e398c3,317e6068-5c8e-4455-932c-f5ae09e398c3,1,0,8424768a-3673-4e7c-840f-836515f85ba9,8424768a-3673-4e7c-840f-836515f85ba9,1,0,37ba6039-9162-4c7e-9975-de3aec39664f,37ba6039-9162-4c7e-9975-de3aec39664f,1,0,1ed0209f-4e11-452b-8520-66bf02186f1a,1ed0209f-4e11-452b-8520-66bf02186f1a,1,0,d1e25f7f-f2c5-48bf-a7f4-4cd40d992e53,d1e25f7f-f2c5-48bf-a7f4-4cd40d992e53,1,0,4d7f4a37-8426-4f06-9b64-cae252cb8e9e,4d7f4a37-8426-4f06-9b64-cae252cb8e9e,1,0,ae5b5521-a525-402d-99b0-e83a7b2caaa4,ae5b5521-a525-402d-99b0-e83a7b2caaa4,1,0,3858dbf0-cb6b-4c67-9dd9-eb900c3688f4,3858dbf0-cb6b-4c67-9dd9-eb900c3688f4,1,0,a04a50db-cb4a-496e-8c25-5591d863a7d5,a04a50db-cb4a-496e-8c25-5591d863a7d5,1,0,30f1ee41-0099-4757-90c2-4a56a676d969,30f1ee41-0099-4757-90c2-4a56a676d969,1,0,e9ae70e5-2f8b-41f6-b356-0f900fcc0dce,e9ae70e5-2f8b-41f6-b356-0f900fcc0dce,1,0,78ad3716-547c-43cd-bfff-02accdb595a6,78ad3716-547c-43cd-bfff-02accdb595a6,1,0,79c946da-7d75-4055-98b1-6cdebe2583bf,79c946da-7d75-4055-98b1-6cdebe2583bf,1,0,17aadd5f-cda2-4785-a07f-3ab4b04434a6,17aadd5f-cda2-4785-a07f-3ab4b04434a6,1,0,71bc35e6-0fec-4e54-af2d-23d1357d1c3b,71bc35e6-0fec-4e54-af2d-23d1357d1c3b,1,0,1832336e-32f6-42c4-9087-8614ead52bb3,1832336e-32f6-42c4-9087-8614ead52bb3,1,0,ff9f7b5c-70f4-4eed-8216-64448e7da76f,ff9f7b5c-70f4-4eed-8216-64448e7da76f,1,0,44ac2869-990d-4cac-a14b-c1a28854341e,44ac2869-990d-4cac-a14b-c1a28854341e,1,0,d5df31c3-89f9-469c-80a9-fb4706d30bc4,d5df31c3-89f9-469c-80a9-fb4706d30bc4,1,0,b10348eb-6d25-48d7-9267-36cb3de6ebee,b10348eb-6d25-48d7-9267-36cb3de6ebee,1,0,13be8980-1bf6-40f6-933f-6e7e1434548e,13be8980-1bf6-40f6-933f-6e7e1434548e,1,0,48e45f36-f83a-4a93-b657-573aeb3f1de1,48e45f36-f83a-4a93-b657-573aeb3f1de1,1,0,027effdc-8d1c-470b-8675-155102a52f74,027effdc-8d1c-470b-8675-155102a52f74,1,0,7e4f56cf-cd89-4cd0-b566-20c42ac5f99e,7e4f56cf-cd89-4cd0-b566-20c42ac5f99e,1,0,815035c6-14be-45f1-ab58-a3ac51848db5,815035c6-14be-45f1-ab58-a3ac51848db5,1,0,db0abb94-e1cd-41f2-becd-4630ad7bbe22,db0abb94-e1cd-41f2-becd-4630ad7bbe22,1,0,5dc728d2-eb61-4524-b4e3-5ac8aeabab29,5dc728d2-eb61-4524-b4e3-5ac8aeabab29,1,0,9823a704-8602-430e-b1f3-0893b2285401,9823a704-8602-430e-b1f3-0893b2285401,1,0,b39b8193-1d46-46b6-844e-112f9fcd7f9b,b39b8193-1d46-46b6-844e-112f9fcd7f9b,1,0,ed216057-b1ce-489c-a120-581043f6d438,ed216057-b1ce-489c-a120-581043f6d438,1,0,65ad33ce-edab-4f8b-8f44-1a5634d87191,65ad33ce-edab-4f8b-8f44-1a5634d87191,1,0,bcd727b5-4678-41e9-85d5-98d4157cdd77,bcd727b5-4678-41e9-85d5-98d4157cdd77,1,0,38c6dd83-2a70-4c4a-9f29-3b2b54a15501,38c6dd83-2a70-4c4a-9f29-3b2b54a15501,1,0,f403fcb3-a4f8-479d-9fa1-85d458b9a4b5,f403fcb3-a4f8-479d-9fa1-85d458b9a4b5,1,0,c56d3cfe-6ae1-4fe3-abdc-2d845049ddde,c56d3cfe-6ae1-4fe3-abdc-2d845049ddde,1,0,66f1dc54-f28c-4fb7-a6c9-f839d656e87c,66f1dc54-f28c-4fb7-a6c9-f839d656e87c,1,0,b8e3d08d-d442-4ffa-83d8-f372a7d2d340,b8e3d08d-d442-4ffa-83d8-f372a7d2d340,1,0,ebba727b-8155-4dd8-8ea0-207ca396566b,ebba727b-8155-4dd8-8ea0-207ca396566b,1,0,e4166141-f18f-4d27-beb5-9e30fe30f842,e4166141-f18f-4d27-beb5-9e30fe30f842,1,0,b62434ac-ef9f-4fe7-8279-357e0dd760ac,b62434ac-ef9f-4fe7-8279-357e0dd760ac,1,0,eb1c7d02-f5fc-4b37-9b32-7dd828958d76,eb1c7d02-f5fc-4b37-9b32-7dd828958d76,1,0,db2f20a7-e01f-4c03-9343-a815e1b46b50,db2f20a7-e01f-4c03-9343-a815e1b46b50,1,0,cf122ec9-d781-434c-9742-300e701317d6,cf122ec9-d781-434c-9742-300e701317d6,1,0,2aa2a968-2cac-4883-9bc8-5a3ccbd2e7a9,2aa2a968-2cac-4883-9bc8-5a3ccbd2e7a9,1,0,7d1361af-c5d3-4312-ab5e-ba00bf3418f2,7d1361af-c5d3-4312-ab5e-ba00bf3418f2,1,0,d7fdb3d5-3c18-4d9c-938a-2fbe8a96e877,d7fdb3d5-3c18-4d9c-938a-2fbe8a96e877,1,0,b8658e11-42b6-41bb-b384-5380e2228338,b8658e11-42b6-41bb-b384-5380e2228338,1,0,40c0919f-2c53-4502-af06-745dfa47fd8e,40c0919f-2c53-4502-af06-745dfa47fd8e,1,0,b01e4e7f-1b01-4c19-ab4b-7a8c1f6b0d22,b01e4e7f-1b01-4c19-ab4b-7a8c1f6b0d22,1,0,662a2803-da19-40c7-a906-e20d0843f67f,662a2803-da19-40c7-a906-e20d0843f67f,1,0,327c0731-1496-4463-837f-8f9c3e4c1a49,327c0731-1496-4463-837f-8f9c3e4c1a49,1,0,d74a37c2-7f50-40da-b7f8-29f79ae7230c,d74a37c2-7f50-40da-b7f8-29f79ae7230c,1,0,37a677e7-6661-41b5-ba68-740361168ccf,37a677e7-6661-41b5-ba68-740361168ccf,1,0,2a41d20d-d57a-4ce8-832f-c1b83099e563,2a41d20d-d57a-4ce8-832f-c1b83099e563,1,0,a0701ad3-572a-4806-91c0-6c5fff8dd350,a0701ad3-572a-4806-91c0-6c5fff8dd350,1,0,c9f268d1-6d2a-47d5-9371-f951b95d24a6,c9f268d1-6d2a-47d5-9371-f951b95d24a6,1,0,86b155be-d611-46b4-8275-bb19a2fa20ba,86b155be-d611-46b4-8275-bb19a2fa20ba,1,0,fedb2d36-bb2e-49dd-9d52-afcc41f3636b,fedb2d36-bb2e-49dd-9d52-afcc41f3636b,1,0,5d74d2d1-a2af-4a52-a884-a60e6b07ffac,5d74d2d1-a2af-4a52-a884-a60e6b07ffac,1,0,69e67507-e063-4221-9b84-2ee9d8903c1a,69e67507-e063-4221-9b84-2ee9d8903c1a,1,0,a649cb56-2a53-4508-8bf4-9aa01373ede2,a649cb56-2a53-4508-8bf4-9aa01373ede2,1,0,7e572d75-3a89-43c0-ad68-18498d67f8ca,7e572d75-3a89-43c0-ad68-18498d67f8ca,1,0,3c159a42-d9f9-4de4-a86f-893b1fc65b46,3c159a42-d9f9-4de4-a86f-893b1fc65b46,1,0,545cd0e7-4125-48f1-9123-0bc39e436e5e,545cd0e7-4125-48f1-9123-0bc39e436e5e,1,0,9a17eec6-b517-4133-8d25-bb953d84461f,9a17eec6-b517-4133-8d25-bb953d84461f,1,0,a0a61d7f-879d-4e92-98a3-5291c834c341,a0a61d7f-879d-4e92-98a3-5291c834c341,1,0,7bf60016-2edc-443b-98b4-0864b548c482,7bf60016-2edc-443b-98b4-0864b548c482,1,0,74139209-f345-4fd9-9ade-15cc4d399836,74139209-f345-4fd9-9ade-15cc4d399836,1,0,e39de1c5-b43b-4f71-aa32-c03b8afd6f65,e39de1c5-b43b-4f71-aa32-c03b8afd6f65,1,0,d5b6aad4-b1bd-464b-aca0-f8455d6388b4,d5b6aad4-b1bd-464b-aca0-f8455d6388b4,1,0,033ab408-fa51-4af2-a82c-f3167de00681,033ab408-fa51-4af2-a82c-f3167de00681,1,0,f7267120-f367-4d47-be5e-e2aa7a2ada46,f7267120-f367-4d47-be5e-e2aa7a2ada46,1,0,911b4ba4-1902-4c69-a4c9-963ab93d35b0,911b4ba4-1902-4c69-a4c9-963ab93d35b0,1,0,70cf60eb-a5f8-4573-a28b-6844721459de,70cf60eb-a5f8-4573-a28b-6844721459de,1,0,e2666bd9-bf44-408b-98fa-b9be26bde33f,e2666bd9-bf44-408b-98fa-b9be26bde33f,1,0,9151fa13-6612-4c4c-a264-3fd669205de7,9151fa13-6612-4c4c-a264-3fd669205de7,1,0,fee8fd9d-be7d-4560-9b96-819ffd497c88,fee8fd9d-be7d-4560-9b96-819ffd497c88,1,0,c86135b4-063c-4ca8-99e2-35c61026b43f,c86135b4-063c-4ca8-99e2-35c61026b43f,1,0,186792a9-0a07-4b6d-a9a0-337221f6b009,186792a9-0a07-4b6d-a9a0-337221f6b009,1,0,49163bf6-4a6a-4da9-a0ed-257c22224b47,49163bf6-4a6a-4da9-a0ed-257c22224b47,1,0,74c71abe-90eb-4c05-a4a6-375a93e7b99c,74c71abe-90eb-4c05-a4a6-375a93e7b99c,1,0,d36efd98-34a7-41b4-99b6-34c09e71525a,d36efd98-34a7-41b4-99b6-34c09e71525a,1,0,e73a6a9d-8ddd-4531-9f17-745117d9da9b,e73a6a9d-8ddd-4531-9f17-745117d9da9b,1,0,9dd4e17c-d10b-435e-8665-08997edc3e7e,9dd4e17c-d10b-435e-8665-08997edc3e7e,1,0,cafd44e1-8509-4550-8329-ff8cab0c31ae,cafd44e1-8509-4550-8329-ff8cab0c31ae,1,0,ee0412d3-58e7-4715-8774-d49778e1ef73,ee0412d3-58e7-4715-8774-d49778e1ef73,1,0,ea31df21-1402-417a-9788-b17a7116e842,ea31df21-1402-417a-9788-b17a7116e842,1,0,7a93efb9-62bb-437a-8095-b26a2c8ce8ed,7a93efb9-62bb-437a-8095-b26a2c8ce8ed,1,0,e964753f-7f4c-4f9f-bd17-cdac317c1d35,e964753f-7f4c-4f9f-bd17-cdac317c1d35,1,0,20c2aba0-e2b2-4e4f-9d48-1515c0ae7b4d,20c2aba0-e2b2-4e4f-9d48-1515c0ae7b4d,1,0,43c22498-3fd6-4038-a291-05f0db9ab66a,43c22498-3fd6-4038-a291-05f0db9ab66a,1,0,4ffc9d16-c450-4ecb-b8f6-9ec6fe37fc75,4ffc9d16-c450-4ecb-b8f6-9ec6fe37fc75,1,0,ee6e5e56-5848-46b6-89bf-b9345a57d94c,ee6e5e56-5848-46b6-89bf-b9345a57d94c,1,0,8817c872-bdee-4577-bcc3-4046edc72803,8817c872-bdee-4577-bcc3-4046edc72803,1,0,5b88c214-4e4e-45c2-b8c5-14eb852e9900,5b88c214-4e4e-45c2-b8c5-14eb852e9900,1,0,851118bb-7e22-4c3c-a050-51b89216df86,851118bb-7e22-4c3c-a050-51b89216df86,1,0,4575003b-10c6-4d8e-bc5e-c643f38b24d9,4575003b-10c6-4d8e-bc5e-c643f38b24d9,1,0,b3fd4c7b-b7ae-40b9-bbe0-42fae0bc6bf5,b3fd4c7b-b7ae-40b9-bbe0-42fae0bc6bf5,1,0,e68e3408-ae45-4d3f-8cbf-e1f517cd4dec,e68e3408-ae45-4d3f-8cbf-e1f517cd4dec,1,0,6252386c-865f-41cc-aef4-1d8bf7087798,6252386c-865f-41cc-aef4-1d8bf7087798,1,0,9d256a1d-5a06-4716-9d83-c5877a5ffc14,9d256a1d-5a06-4716-9d83-c5877a5ffc14,1,0,63623218-8035-4ad9-b4db-a1f917c5641a,63623218-8035-4ad9-b4db-a1f917c5641a,1,0,d58babbe-6f59-4027-86db-54343d11e1c8,d58babbe-6f59-4027-86db-54343d11e1c8,1,0,a4cc0476-99a7-4b61-a382-2a6bb8d2043e,a4cc0476-99a7-4b61-a382-2a6bb8d2043e,1,0,8dbca9a8-97c0-4c95-b0a6-1c3f54e6fbab,8dbca9a8-97c0-4c95-b0a6-1c3f54e6fbab,1,0,4d23fa01-b9ef-419c-8806-e0b0fad14be0,4d23fa01-b9ef-419c-8806-e0b0fad14be0,1,0,3eb4e1a4-8653-410f-ae73-b25c03348880,3eb4e1a4-8653-410f-ae73-b25c03348880,1,0,105cd740-1f60-45e1-871c-adeecd291b0d,105cd740-1f60-45e1-871c-adeecd291b0d,1,0,95aec7d2-179b-4ea3-a3df-3d737b713564,95aec7d2-179b-4ea3-a3df-3d737b713564,1,0,4bd1cae4-d5b5-444e-9cf5-67a969714293,4bd1cae4-d5b5-444e-9cf5-67a969714293,1,0,b1a330d7-9b88-44e9-aba6-41ce5e5e669c,b1a330d7-9b88-44e9-aba6-41ce5e5e669c,1,0,f279a625-b88f-43b4-bce9-de1186fe7d7e,f279a625-b88f-43b4-bce9-de1186fe7d7e,1,0,a2f19cb2-9f2e-442b-b9f2-e5253c70871c,a2f19cb2-9f2e-442b-b9f2-e5253c70871c,1,0,0c67453e-038b-46f3-8c13-2786e8622ad8,0c67453e-038b-46f3-8c13-2786e8622ad8,1,0,8ff1dc4d-b46c-4519-80fe-19448e620e74,8ff1dc4d-b46c-4519-80fe-19448e620e74,1,0,7cd5ca8c-cc97-4664-964e-152fdcb5bdef,7cd5ca8c-cc97-4664-964e-152fdcb5bdef,1,0,be0a5f9a-ffab-41d8-b55a-a61355f5d269,be0a5f9a-ffab-41d8-b55a-a61355f5d269,1,0,9286105d-9aa9-44f9-ae63-bbbcec64eade,9286105d-9aa9-44f9-ae63-bbbcec64eade,1,0,99fc224a-2a61-441a-85e9-d69df6aa8b5e,99fc224a-2a61-441a-85e9-d69df6aa8b5e,1,0,a528c26f-3ceb-4ae4-8420-edfbdea6e1ac,a528c26f-3ceb-4ae4-8420-edfbdea6e1ac,1,0,d009782b-d73e-42d1-9979-2cbaf20ee98e,d009782b-d73e-42d1-9979-2cbaf20ee98e,1,0,1ef6282c-ae81-4d76-8e3e-99fec58fc7bd,1ef6282c-ae81-4d76-8e3e-99fec58fc7bd,1,0,88d8edf7-654f-4627-b68d-c7e929726da6,88d8edf7-654f-4627-b68d-c7e929726da6,1,0,483720db-6c9e-4179-b5c7-56159c9b6073,483720db-6c9e-4179-b5c7-56159c9b6073,1,0,e603a2c2-5acc-4657-9a0e-d98ab57a67ef,e603a2c2-5acc-4657-9a0e-d98ab57a67ef,1,0,ce165482-5e10-4ced-8d5c-1a3af8ba778a,ce165482-5e10-4ced-8d5c-1a3af8ba778a,1,0,222fdf9c-7bfe-4f81-ae59-3c6309754d43,222fdf9c-7bfe-4f81-ae59-3c6309754d43,1,0,eaaf0aee-07d6-4c49-bc84-5c86e71bb51e,eaaf0aee-07d6-4c49-bc84-5c86e71bb51e,1,0,0cee4741-eadb-4dfa-8993-fcb514acd2cd,0cee4741-eadb-4dfa-8993-fcb514acd2cd,1,0,c496cc40-f9cb-4334-80a1-d4ff98d58798,c496cc40-f9cb-4334-80a1-d4ff98d58798,1,0,a4d1aa8f-d4e9-48df-a194-4d05f21084c8,a4d1aa8f-d4e9-48df-a194-4d05f21084c8,1,0,22855103-c30a-4da1-aa25-6295e3f1f145,22855103-c30a-4da1-aa25-6295e3f1f145,1,0,80a7a699-6633-4109-a78d-d86f50d9f922,80a7a699-6633-4109-a78d-d86f50d9f922,1,0,7e26e712-cd36-4773-abae-21fe999a197f,7e26e712-cd36-4773-abae-21fe999a197f,1,0,bd676e43-b35a-41e0-83a9-8a9da8778f8e,bd676e43-b35a-41e0-83a9-8a9da8778f8e,1,0,44984353-2eae-40e4-86cc-1295812d9e12,44984353-2eae-40e4-86cc-1295812d9e12,1,0,ba64a0ae-5ae4-4e68-9088-dd3dff34e503,ba64a0ae-5ae4-4e68-9088-dd3dff34e503,1,0,56ce3bfc-2d87-4826-b6db-b63b5d415f48,56ce3bfc-2d87-4826-b6db-b63b5d415f48,1,0,51c76e26-1a34-4f2f-8887-88c8fcc0eb6d,51c76e26-1a34-4f2f-8887-88c8fcc0eb6d,1,0,67e291ab-0805-4add-8344-5a2bfc39b555,67e291ab-0805-4add-8344-5a2bfc39b555,1,0,ee5e9079-9586-47e8-84c1-bcb78a17e82e,ee5e9079-9586-47e8-84c1-bcb78a17e82e,1,0,4d49e173-27c1-42da-8597-bcf06946800d,4d49e173-27c1-42da-8597-bcf06946800d,1,0,3cbe38b2-4443-414e-8e6d-174bd2e6a925,3cbe38b2-4443-414e-8e6d-174bd2e6a925,1,0,f5a9b299-f2c7-4e2e-822e-428cd20ebf5a,f5a9b299-f2c7-4e2e-822e-428cd20ebf5a,1,0,3a6bcb6d-b2e2-4ec1-9c6f-23ad96a9349b,3a6bcb6d-b2e2-4ec1-9c6f-23ad96a9349b,1,0,796a2fcd-caa8-431c-8d22-320479ecc5fd,796a2fcd-caa8-431c-8d22-320479ecc5fd,1,0,2e882442-45ce-41af-a76b-b00a74021cba,2e882442-45ce-41af-a76b-b00a74021cba,1,0,457b37a9-d6dd-40bb-9eea-06a5dfbaf777,457b37a9-d6dd-40bb-9eea-06a5dfbaf777,1,0,d4beb157-c999-46c2-ac4b-5ec6846a717d,d4beb157-c999-46c2-ac4b-5ec6846a717d,1,0,9eed26c8-8874-4814-b232-44a8f594fabe,9eed26c8-8874-4814-b232-44a8f594fabe,1,0,487ec60f-c31c-4c74-ba24-efcfc3908320,487ec60f-c31c-4c74-ba24-efcfc3908320,1,0,5af3a256-2bdb-4d87-a2e6-348f072f099d,5af3a256-2bdb-4d87-a2e6-348f072f099d,1,0,c232ad3b-79ea-45fa-85f1-6229474b967c,c232ad3b-79ea-45fa-85f1-6229474b967c,1,0,4d596b46-4654-46b8-a015-cecfc86780fc,4d596b46-4654-46b8-a015-cecfc86780fc,1,0,c94decc9-4fb7-4f47-a7e6-ab8944798a24,c94decc9-4fb7-4f47-a7e6-ab8944798a24,1,0,0ec45124-506d-4a1f-b6e3-1620f34fa817,0ec45124-506d-4a1f-b6e3-1620f34fa817,1,0,36f99889-4bc1-40cd-904a-a463c44f7b0b,36f99889-4bc1-40cd-904a-a463c44f7b0b,1,0,04775eaf-62e0-4a8a-b63d-8672b6d22f6c,04775eaf-62e0-4a8a-b63d-8672b6d22f6c,1,0,50993690-85a7-4926-8968-88d55b156700,50993690-85a7-4926-8968-88d55b156700,1,0,962c0184-c0a0-4f80-9f3c-02d64e19e43f,962c0184-c0a0-4f80-9f3c-02d64e19e43f,1,0,86595a62-421a-419a-afda-947fdd16ef7f,86595a62-421a-419a-afda-947fdd16ef7f,1,0,186aaaea-9816-4b08-944a-a1d33cd1819f,186aaaea-9816-4b08-944a-a1d33cd1819f,1,0,88fafb0d-d624-4b91-8c68-c354817ccddb,88fafb0d-d624-4b91-8c68-c354817ccddb,1,0,f4a3e032-61fb-4004-bd4d-6eaffb53437b,f4a3e032-61fb-4004-bd4d-6eaffb53437b,1,0,9126b840-ddcc-4054-aa16-4156288a379e,9126b840-ddcc-4054-aa16-4156288a379e,1,0,a6facfdb-7529-479c-9bb3-e63316b032f4,a6facfdb-7529-479c-9bb3-e63316b032f4,1,0,1725c619-9c4a-40ac-9044-00fee71945a4,1725c619-9c4a-40ac-9044-00fee71945a4,1,0,45a85e25-7c33-4ff5-87a0-2a0b4cda8130,45a85e25-7c33-4ff5-87a0-2a0b4cda8130,1,0,e95b126d-797d-4071-b7b4-b14aaf595f2d,e95b126d-797d-4071-b7b4-b14aaf595f2d,1,0,9241ea3c-633f-4469-9e70-c5a20e464da8,9241ea3c-633f-4469-9e70-c5a20e464da8,1,0,bbadbe1b-cb33-4cc5-84c8-a4fdfc8a2247,bbadbe1b-cb33-4cc5-84c8-a4fdfc8a2247,1,0,961ae0fb-7f7b-414d-8fbf-32b893b41085,961ae0fb-7f7b-414d-8fbf-32b893b41085,1,0,10adf8c8-6f5f-477f-b244-4452b774b766,10adf8c8-6f5f-477f-b244-4452b774b766,1,0,ac9dcb8c-d4f5-4f0d-affb-e4187eafdf14,ac9dcb8c-d4f5-4f0d-affb-e4187eafdf14,1,0,04ec5e44-8469-4e9c-8021-83d258f2ec54,04ec5e44-8469-4e9c-8021-83d258f2ec54,1,0,cff36ede-0bd1-424b-8c75-b9695133f32e,cff36ede-0bd1-424b-8c75-b9695133f32e,1,0,9d872d99-eac7-43ee-8ce2-c9d31a76bd75,9d872d99-eac7-43ee-8ce2-c9d31a76bd75,1,0,77e5bd01-35f3-4072-bc7a-8730e6dcbab3,77e5bd01-35f3-4072-bc7a-8730e6dcbab3,1,0,58b33683-1916-4aef-9b98-5569ef7782ed,58b33683-1916-4aef-9b98-5569ef7782ed,1,0,d3e1f622-f438-4cad-94ae-0272f51610f7,d3e1f622-f438-4cad-94ae-0272f51610f7,1,0,8569cd73-d40d-4d92-83e0-8ece0c03a86a,8569cd73-d40d-4d92-83e0-8ece0c03a86a,1,0,9ebe2809-be6b-4c91-9443-b237fb7ad43c,9ebe2809-be6b-4c91-9443-b237fb7ad43c,1,0,bf29c091-de15-4cd4-be0e-a9785f97d444,bf29c091-de15-4cd4-be0e-a9785f97d444,1,0,060b2bb4-ca03-4da9-930f-7f91f6299a35,060b2bb4-ca03-4da9-930f-7f91f6299a35,1,0,394b1a1c-a7ae-41b7-a346-4bac99fa567d,394b1a1c-a7ae-41b7-a346-4bac99fa567d,1,0,9a5fa511-59e8-4a1b-a101-f276f0b7b261,9a5fa511-59e8-4a1b-a101-f276f0b7b261,1,0,ccfe4e36-80b6-419f-8bb3-c1046203d023,ccfe4e36-80b6-419f-8bb3-c1046203d023,1,0,94b2e060-53b7-4b40-af05-30bea3520330,94b2e060-53b7-4b40-af05-30bea3520330,1,0,0f634f7e-7d6b-43e4-8e5e-a31ed05898ea,0f634f7e-7d6b-43e4-8e5e-a31ed05898ea,1,0,41b0dabd-85a3-4819-84dd-371eaf4f996e,41b0dabd-85a3-4819-84dd-371eaf4f996e,1,0,86a5ba4d-0681-4ddc-a505-0f537528e1a3,86a5ba4d-0681-4ddc-a505-0f537528e1a3,1,0,12d936f5-932b-4561-b934-c8444808a450,12d936f5-932b-4561-b934-c8444808a450,1,0,2ccb06ca-9bb7-4b74-9a96-c109bb117984,2ccb06ca-9bb7-4b74-9a96-c109bb117984,1,0,ac1a661d-db18-4576-80a9-a19d4140c05e,ac1a661d-db18-4576-80a9-a19d4140c05e,1,0,acd89f6c-a25f-47b9-ac21-036bfafcc0fc,acd89f6c-a25f-47b9-ac21-036bfafcc0fc,1,0,aa114d56-2faf-4925-8319-f0aa3993e9ee,aa114d56-2faf-4925-8319-f0aa3993e9ee,1,0,c3ffeb09-121b-4d77-9c15-def4648b4f3c,c3ffeb09-121b-4d77-9c15-def4648b4f3c,1,0,c2de0724-04c1-4adb-b62a-b7ba727dbe67,c2de0724-04c1-4adb-b62a-b7ba727dbe67,1,0,4ae26777-69ff-4a55-942b-0bad8ab7a70a,4ae26777-69ff-4a55-942b-0bad8ab7a70a,1,0,a0d8fb0a-0e90-4140-8687-e249b153dc66,a0d8fb0a-0e90-4140-8687-e249b153dc66,1,0,917c6f60-2a07-4587-9496-d393aff93953,917c6f60-2a07-4587-9496-d393aff93953,1,0,4bac50a2-762a-44e6-b8c5-3b09ef1a3f5e,4bac50a2-762a-44e6-b8c5-3b09ef1a3f5e,1,0,14361dbe-00dd-496b-adf4-7f35553bb48c,14361dbe-00dd-496b-adf4-7f35553bb48c,1,0,9de12434-34a3-4f73-848e-d0798f6d6c83,9de12434-34a3-4f73-848e-d0798f6d6c83,1,0,64c4af68-7657-458e-a129-14a3dd8a0262,64c4af68-7657-458e-a129-14a3dd8a0262,1,0,9fe72d73-4c95-47e0-bf92-dcb714d747c6,9fe72d73-4c95-47e0-bf92-dcb714d747c6,1,0,fe00e64f-2fa9-44a7-9bd7-854ebb6c0185,fe00e64f-2fa9-44a7-9bd7-854ebb6c0185,1,0,4d84bb11-e06e-4ed9-915b-76ee0e385a8b,4d84bb11-e06e-4ed9-915b-76ee0e385a8b,1,0,2b94076d-39ee-45ad-9ba5-435115cf5d4f,2b94076d-39ee-45ad-9ba5-435115cf5d4f,1,0,72ace16c-e90a-4d05-bc23-4351d4c87683,72ace16c-e90a-4d05-bc23-4351d4c87683,1,0,bd86e378-84bb-486a-be7b-319a3fe3b70b,bd86e378-84bb-486a-be7b-319a3fe3b70b,1,0,ef3bc279-6721-4949-8dc0-f96141f7f05c,ef3bc279-6721-4949-8dc0-f96141f7f05c,1,0,f81c7e21-48ad-4b64-975d-e62d34c7235a,f81c7e21-48ad-4b64-975d-e62d34c7235a,1,0,d0523c14-585e-45d3-9735-891235631004,d0523c14-585e-45d3-9735-891235631004,1,0,db5fde74-275f-4d82-825c-5c245a7fef6b,db5fde74-275f-4d82-825c-5c245a7fef6b,1,0,e4e534e9-7ccc-4ced-b961-613989a6194b,e4e534e9-7ccc-4ced-b961-613989a6194b,1,0,cc925b83-839b-48da-8f62-7f8cde76ac2a,cc925b83-839b-48da-8f62-7f8cde76ac2a,1,0,7d06f855-8a6a-45e0-a1c2-fd5f03d2a8ed,7d06f855-8a6a-45e0-a1c2-fd5f03d2a8ed,1,0,f9681a4d-d47c-4a8d-a8a3-4aafc751e61b,f9681a4d-d47c-4a8d-a8a3-4aafc751e61b,1,0,e6e76d04-8adc-4462-8919-0979258e5a7b,e6e76d04-8adc-4462-8919-0979258e5a7b,1,0,6ee85be2-55f6-4d4b-abf1-0d1d25f61ea3,6ee85be2-55f6-4d4b-abf1-0d1d25f61ea3,1,0,f850e1d5-5108-4ca8-b397-983627e4871b,f850e1d5-5108-4ca8-b397-983627e4871b,1,0,b6f8bc3e-f0cd-43ef-b060-d701cd446197,b6f8bc3e-f0cd-43ef-b060-d701cd446197,1,0,4f10e5f9-6cfd-4fa9-9c72-d19a484a796c,4f10e5f9-6cfd-4fa9-9c72-d19a484a796c,1,0,b94e805f-e1ab-4870-b855-98aa401864b2,b94e805f-e1ab-4870-b855-98aa401864b2,1,0,62f9fe19-3d64-4506-a0bc-dbfe47b4df64,62f9fe19-3d64-4506-a0bc-dbfe47b4df64,1,0,ff8eedeb-fc3e-4bee-852b-6da6d59ff38c,ff8eedeb-fc3e-4bee-852b-6da6d59ff38c,1,0,a98bd18f-ccda-41a2-a1b2-8b37cc1f6c36,a98bd18f-ccda-41a2-a1b2-8b37cc1f6c36,1,0,45af8f5d-d505-466b-a798-19f2219a180c,45af8f5d-d505-466b-a798-19f2219a180c,1,0,8a8229bc-f70a-4434-bacc-8a81fc58154b,8a8229bc-f70a-4434-bacc-8a81fc58154b,1,0,6324ad14-82ca-467b-b6b7-8d5f6049ca65,6324ad14-82ca-467b-b6b7-8d5f6049ca65,1,0,273446f0-f28b-4ce2-874c-3c6a57299b71,273446f0-f28b-4ce2-874c-3c6a57299b71,1,0,eb2f7449-ee42-43ec-b59c-3e07a6e3c139,eb2f7449-ee42-43ec-b59c-3e07a6e3c139,1,0,f8a7913a-2c64-47e1-8ae9-622fc6e9477e,f8a7913a-2c64-47e1-8ae9-622fc6e9477e,1,0,9b46a2b4-223d-4527-a94e-37ecd4fe72d7,9b46a2b4-223d-4527-a94e-37ecd4fe72d7,1,0,7a4e17bf-3649-4982-a9c6-5982390f1f1d,7a4e17bf-3649-4982-a9c6-5982390f1f1d,1,0,722be6e0-2698-431b-9206-777a36e6742f,722be6e0-2698-431b-9206-777a36e6742f,1,0,75bb0122-26bd-40be-8de8-7a57680c85ae,75bb0122-26bd-40be-8de8-7a57680c85ae,1,0,28dd22df-07cc-4e6d-89b2-b15a13f76615,28dd22df-07cc-4e6d-89b2-b15a13f76615,1,0,0c98b025-5adb-44dc-ab14-4c6517cc230b,0c98b025-5adb-44dc-ab14-4c6517cc230b,1,0,da2f09bd-109f-43aa-a90b-f033d17ed689,da2f09bd-109f-43aa-a90b-f033d17ed689,1,0,c4b3cb31-356e-4868-921c-f6710349def8,c4b3cb31-356e-4868-921c-f6710349def8,1,0,f98a7b6d-f364-4b84-9aeb-8dd822ef582f,f98a7b6d-f364-4b84-9aeb-8dd822ef582f,1,0,44526cb1-561d-4b87-a628-d79cc64ccdec,44526cb1-561d-4b87-a628-d79cc64ccdec,1,0,5e4dbba3-07df-4e30-be14-d9244f5ec21c,5e4dbba3-07df-4e30-be14-d9244f5ec21c,1,0,c8116351-4487-40f3-ae04-1e0741cc5df6,c8116351-4487-40f3-ae04-1e0741cc5df6,1,0,a6be80f7-d6aa-4371-a180-3d355080d849,a6be80f7-d6aa-4371-a180-3d355080d849,1,0,b37722c3-e29f-4a40-b4eb-0317919fc7a5,b37722c3-e29f-4a40-b4eb-0317919fc7a5,1,0,b1b1cd90-094d-428b-a6bc-156521c1c54d,b1b1cd90-094d-428b-a6bc-156521c1c54d,1,0,4f79ef7c-79be-4a69-acc0-bd591c712d03,4f79ef7c-79be-4a69-acc0-bd591c712d03,1,0,a0dd2129-d3a1-4bca-b555-72b065be1c13,a0dd2129-d3a1-4bca-b555-72b065be1c13,1,0,dc5e8229-e301-477c-846e-2e7078e3ee5f,dc5e8229-e301-477c-846e-2e7078e3ee5f,1,0,24836e44-8fdd-44bd-91d8-4ddab2caf485,24836e44-8fdd-44bd-91d8-4ddab2caf485,1,0,3727bcfe-4d75-4270-86e7-4a66ab14866c,3727bcfe-4d75-4270-86e7-4a66ab14866c,1,0,870a4708-0b5a-4fa3-9978-d94b161d289a,870a4708-0b5a-4fa3-9978-d94b161d289a,1,0,30e9f89d-7b94-488e-9963-886c271b1af7,30e9f89d-7b94-488e-9963-886c271b1af7,1,0,96229b23-74a9-4fe1-a89e-b71f499cd65a,96229b23-74a9-4fe1-a89e-b71f499cd65a,1,0,15000713-0142-42e9-8bb3-cbb0587200d4,15000713-0142-42e9-8bb3-cbb0587200d4,1,0,d5ae7e0b-c230-402f-9d4f-e52c2b9aa240,d5ae7e0b-c230-402f-9d4f-e52c2b9aa240,1,0,0d199fdc-d2af-4159-91d6-6f15266f9ce8,0d199fdc-d2af-4159-91d6-6f15266f9ce8,1,0,91af7a52-0825-4af5-94df-cc501e0123cd,91af7a52-0825-4af5-94df-cc501e0123cd,1,0,1c2cc78a-2ae6-4996-a743-7b55aecbe84c,1c2cc78a-2ae6-4996-a743-7b55aecbe84c,1,0,9292bf81-5668-4d52-a4ec-a93bc4b0ad3b,9292bf81-5668-4d52-a4ec-a93bc4b0ad3b,1,0,9693cc78-852e-445b-a7d2-f1689fa9eeec,9693cc78-852e-445b-a7d2-f1689fa9eeec,1,0,eb33e555-db41-462a-a45d-c7e0945cece8,eb33e555-db41-462a-a45d-c7e0945cece8,1,0,9cfd517c-1008-483a-9f65-7d15feb2cefc,9cfd517c-1008-483a-9f65-7d15feb2cefc,1,0,d66adc5e-25a3-472e-b0a4-5f22f88d7a0f,d66adc5e-25a3-472e-b0a4-5f22f88d7a0f,1,0,ae48d48f-cd39-4821-a4b7-9394b2a77ef6,ae48d48f-cd39-4821-a4b7-9394b2a77ef6,1,0,f34d3a69-533e-49df-b91d-f7f7f49c5fb1,f34d3a69-533e-49df-b91d-f7f7f49c5fb1,1,0,1d76f613-f4f6-4772-8c16-d97b3104a553,1d76f613-f4f6-4772-8c16-d97b3104a553,1,0,3e58d607-b906-449f-b044-9c130a487b86,3e58d607-b906-449f-b044-9c130a487b86,1,0,7a911212-7fde-4ea8-a1fa-229116b60895,7a911212-7fde-4ea8-a1fa-229116b60895,1,0,f4580043-5bc2-4295-8523-909302009b44,f4580043-5bc2-4295-8523-909302009b44,1,0,dc8af632-a5a4-4270-ba5f-2d3ba506f7e3,dc8af632-a5a4-4270-ba5f-2d3ba506f7e3,1,0,81936ac2-32fe-4e14-897b-0aba92b90c05,81936ac2-32fe-4e14-897b-0aba92b90c05,1,0,9f88e355-3f8f-4fcd-b45f-39c3d45490f5,9f88e355-3f8f-4fcd-b45f-39c3d45490f5,1,0,31769047-ed17-429b-a253-0b3566e0f331,31769047-ed17-429b-a253-0b3566e0f331,1,0,f26dd63b-6147-4fe6-85e2-44ff084e1410,f26dd63b-6147-4fe6-85e2-44ff084e1410,1,0,2f9fe65d-d43e-4612-b636-0495c2cada53,2f9fe65d-d43e-4612-b636-0495c2cada53,1,0,f4cd33e9-74a8-42ab-9070-68de79b996f5,f4cd33e9-74a8-42ab-9070-68de79b996f5,1,0,7c9867b1-fb68-4312-bc37-cdca7d49803f,7c9867b1-fb68-4312-bc37-cdca7d49803f,1,0,823d372f-2340-498a-8ff4-bebf9bf366e2,823d372f-2340-498a-8ff4-bebf9bf366e2,1,0,a840bc3a-da2a-4093-ab99-ae9897001277,a840bc3a-da2a-4093-ab99-ae9897001277,1,0,2e233e3c-687c-4516-87c6-5d6c5f9f04a2,2e233e3c-687c-4516-87c6-5d6c5f9f04a2,1,0,2afdcde7-46ef-4624-8b84-c6381ff2f3a4,2afdcde7-46ef-4624-8b84-c6381ff2f3a4,1,0,2d279d24-1953-4a2f-8206-77481d2fd718,2d279d24-1953-4a2f-8206-77481d2fd718,1,0,aa6abffe-1b09-48f9-9aee-4f234db6b2a2,aa6abffe-1b09-48f9-9aee-4f234db6b2a2,1,0,0a920200-77d0-42ea-abf6-0d40d63289b0,0a920200-77d0-42ea-abf6-0d40d63289b0,1,0,c850bafc-4073-44ef-b148-194f87c46f0e,c850bafc-4073-44ef-b148-194f87c46f0e,1,0,6d1dd726-815d-476e-b668-95cff4182e54,6d1dd726-815d-476e-b668-95cff4182e54,1,0,12f4a0ed-4798-4467-8834-de3eb385e22d,12f4a0ed-4798-4467-8834-de3eb385e22d,1,0,5710809e-4c41-42ab-952f-f7778fe9be0f,5710809e-4c41-42ab-952f-f7778fe9be0f,1,0,0811f6c2-6bb3-43b8-9944-910adc4c6f23,0811f6c2-6bb3-43b8-9944-910adc4c6f23,1,0,c1646df4-9fce-44f0-9cc3-a5dab0bbef2e,c1646df4-9fce-44f0-9cc3-a5dab0bbef2e,1,0,c86b02ab-3532-4f4c-b993-e237ed0d4d12,c86b02ab-3532-4f4c-b993-e237ed0d4d12,1,0,46c3341c-352c-43fb-b338-15c8ad487fbf,46c3341c-352c-43fb-b338-15c8ad487fbf,1,0,a2a8b35e-04e5-4176-8d3b-2cd4dfb6d653,a2a8b35e-04e5-4176-8d3b-2cd4dfb6d653,1,0,ea7ad7f5-e502-49a9-b4a6-e9adceb15057,ea7ad7f5-e502-49a9-b4a6-e9adceb15057,1,0,f9450d6a-849c-4621-b528-9cafc4819b44,f9450d6a-849c-4621-b528-9cafc4819b44,1,0,5b7cac99-2fca-4dbb-8d49-b84f310a2496,5b7cac99-2fca-4dbb-8d49-b84f310a2496,1,0,a4673d5c-9dae-48f7-9c91-53c1302a266a,a4673d5c-9dae-48f7-9c91-53c1302a266a,1,0,1a2a0dd2-b0dc-41e1-8c4f-f275f025bad2,1a2a0dd2-b0dc-41e1-8c4f-f275f025bad2,1,0,c255932e-fc34-402c-a6e9-2fda1ffbcdf2,c255932e-fc34-402c-a6e9-2fda1ffbcdf2,1,0,0d323d88-2823-493e-8c1e-b2b9f3dcdd3e,0d323d88-2823-493e-8c1e-b2b9f3dcdd3e,1,0,3f410b53-e762-41fe-9469-d538dfec3a9a,3f410b53-e762-41fe-9469-d538dfec3a9a,1,0,bb11c22e-0fbd-4985-be67-0866df7f7e61,bb11c22e-0fbd-4985-be67-0866df7f7e61,1,0,92ea60c0-1027-4337-9130-40028951f09b,92ea60c0-1027-4337-9130-40028951f09b,1,0,46710ce6-0f82-4c4c-91e8-f8ee726e00ce,46710ce6-0f82-4c4c-91e8-f8ee726e00ce,1,0,d64f18a4-ff93-4284-9eca-085109eafd24,d64f18a4-ff93-4284-9eca-085109eafd24,1,0,6381b8d2-7722-45c7-8800-19f6574d7d7a,6381b8d2-7722-45c7-8800-19f6574d7d7a,1,0,bf428e7a-2970-4bab-8c8e-35ea16151c0e,bf428e7a-2970-4bab-8c8e-35ea16151c0e,1,0,232dbd5f-b7f1-4463-946c-b8fbf93ac466,232dbd5f-b7f1-4463-946c-b8fbf93ac466,1,0,a1a74b34-4174-4769-8f03-bd4a32e83418,a1a74b34-4174-4769-8f03-bd4a32e83418,1,0,32fd1fe7-34d3-43ed-baba-16ccd43aa25a,32fd1fe7-34d3-43ed-baba-16ccd43aa25a,1,0,8f4d1259-abdc-4495-8e1e-8c8abcd336ca,8f4d1259-abdc-4495-8e1e-8c8abcd336ca,1,0,7086199b-20ec-4a74-a52f-71824134e8c5,7086199b-20ec-4a74-a52f-71824134e8c5,1,0,1731708f-53cb-4b00-b90e-f581b4baa845,1731708f-53cb-4b00-b90e-f581b4baa845,1,0,d4b0feca-c00a-4d48-9f23-d92277ea6483,d4b0feca-c00a-4d48-9f23-d92277ea6483,1,0,00b2a0b3-6af8-4ea4-aa38-d1e078d5cbff,00b2a0b3-6af8-4ea4-aa38-d1e078d5cbff,1,0,20f7fdd2-30f6-4a52-a63b-7d2c326c0e83,20f7fdd2-30f6-4a52-a63b-7d2c326c0e83,1,0,23cb5bc2-9638-4d1c-b4bc-d5297e271570,23cb5bc2-9638-4d1c-b4bc-d5297e271570,1,0,6e547ccb-6d5a-4f7c-aaf0-568c22d2c276,6e547ccb-6d5a-4f7c-aaf0-568c22d2c276,1,0,04b7389d-697d-4b0d-a239-ac8c674cc46f,04b7389d-697d-4b0d-a239-ac8c674cc46f,1,0,a1cf5173-2e86-4ed7-9a0b-1bd5e578326a,a1cf5173-2e86-4ed7-9a0b-1bd5e578326a,1,0,864cad61-8280-415d-8fe1-bcb39d56670a,864cad61-8280-415d-8fe1-bcb39d56670a,1,0,b106bd29-5dc7-44d7-94d0-00f61499392e,b106bd29-5dc7-44d7-94d0-00f61499392e,1,0,a4febff8-0566-4977-bf55-1d574568fe9f,a4febff8-0566-4977-bf55-1d574568fe9f,1,0,5199cc65-bed1-40b9-96fe-cf6d855a8b91,5199cc65-bed1-40b9-96fe-cf6d855a8b91,1,0,f518add9-5c26-4dac-ab2e-b30fe3fbd347,f518add9-5c26-4dac-ab2e-b30fe3fbd347,1,0,23f53317-7aa8-4816-8a69-3d39d5e76da0,23f53317-7aa8-4816-8a69-3d39d5e76da0,1,0,9ade5155-fa6d-4999-b019-a5e7e235a158,9ade5155-fa6d-4999-b019-a5e7e235a158,1,0,8b302c5e-b255-4cb5-94d9-0dfef4250097,8b302c5e-b255-4cb5-94d9-0dfef4250097,1,0,08eb74b6-1e1c-4004-a0f8-b6f1fdfc68ef,08eb74b6-1e1c-4004-a0f8-b6f1fdfc68ef,1,0,d4eb3e9a-feb5-42d9-841b-ff20288228b6,d4eb3e9a-feb5-42d9-841b-ff20288228b6,1,0,49d713b8-6a61-4bd1-9650-0de1869967d2,49d713b8-6a61-4bd1-9650-0de1869967d2,1,0,4738ffd0-3c3b-4e5f-8773-0c9a80efdfbf,4738ffd0-3c3b-4e5f-8773-0c9a80efdfbf,1,0,bd0e4aeb-19f9-48fc-b838-38d785004360,bd0e4aeb-19f9-48fc-b838-38d785004360,1,0,3d1bae2a-4dfd-48e5-bfe9-b7e30c8475f6,3d1bae2a-4dfd-48e5-bfe9-b7e30c8475f6,1,0,0f2ec7ac-6d3f-4fcf-af3d-b0bfaa187a4b,0f2ec7ac-6d3f-4fcf-af3d-b0bfaa187a4b,1,0,6d351276-2c04-4198-a3e4-865881c12f5c,6d351276-2c04-4198-a3e4-865881c12f5c,1,0,73b1d2e2-0eeb-45dc-8ca3-3bda594d6823,73b1d2e2-0eeb-45dc-8ca3-3bda594d6823,1,0,5c4abd61-2f29-499e-a2ca-d133e9eeeaea,5c4abd61-2f29-499e-a2ca-d133e9eeeaea,1,0,8e07a76d-db30-491c-b296-181c8e689382,8e07a76d-db30-491c-b296-181c8e689382,1,0,4f1752ae-42d0-477d-854b-de143c428a85,4f1752ae-42d0-477d-854b-de143c428a85,1,0,29674b66-c542-4a34-8caa-8e57a51bd190,29674b66-c542-4a34-8caa-8e57a51bd190,1,0,1a41acdd-3503-4c69-b93b-eb1cb6749712,1a41acdd-3503-4c69-b93b-eb1cb6749712,1,0,0e45c53e-7571-49bf-b673-cff53d32af89,0e45c53e-7571-49bf-b673-cff53d32af89,1,0,169b0670-8fa7-48d1-b6b1-2cf581b18390,169b0670-8fa7-48d1-b6b1-2cf581b18390,1,0,2e239650-973b-4908-b91e-477062046528,2e239650-973b-4908-b91e-477062046528,1,0,4692eeee-5b73-42f3-ad39-794141af9e2b,4692eeee-5b73-42f3-ad39-794141af9e2b,1,0,093a2243-329b-49b2-b6cd-80a1f7e4634a,093a2243-329b-49b2-b6cd-80a1f7e4634a,1,0,0ddeed48-b98a-47c3-84a2-2eac065be06c,0ddeed48-b98a-47c3-84a2-2eac065be06c,1,0,7987fe2c-d7cc-4fd2-ac4e-610bfb1ab6d2,7987fe2c-d7cc-4fd2-ac4e-610bfb1ab6d2,1,0,fc18d95e-a51d-45c0-83b0-09aeb2b5b03a,fc18d95e-a51d-45c0-83b0-09aeb2b5b03a,1,0,47714327-dd28-4e32-a1c9-20ee47d9afd0,47714327-dd28-4e32-a1c9-20ee47d9afd0,1,0,4d76ef7a-f1a6-4147-84f4-6e1717dfd77e,4d76ef7a-f1a6-4147-84f4-6e1717dfd77e,1,0,d1eb0aa7-b485-4f3a-846d-be069ca807c0,d1eb0aa7-b485-4f3a-846d-be069ca807c0,1,0,afde7867-15d3-43fa-b439-6d9e40df580b,afde7867-15d3-43fa-b439-6d9e40df580b,1,0,a676ff94-a0d1-4de9-8690-ec67f2c891d8,a676ff94-a0d1-4de9-8690-ec67f2c891d8,1,0,012bf716-3672-462e-b390-7bb4384ab4b1,012bf716-3672-462e-b390-7bb4384ab4b1,1,0,65342599-ff37-4f99-8e40-f05d87403bcf,65342599-ff37-4f99-8e40-f05d87403bcf,1,0,3a3f505a-7a50-4111-8029-5b9057fed232,3a3f505a-7a50-4111-8029-5b9057fed232,1,0,1d66cd80-fd61-4bf2-a7f9-34b33443e1ea,1d66cd80-fd61-4bf2-a7f9-34b33443e1ea,1,0,7b638691-416d-4484-81f4-e4c796a92818,7b638691-416d-4484-81f4-e4c796a92818,1,0,03ab92e2-81a3-4e38-84a8-85c1d78d51e9,03ab92e2-81a3-4e38-84a8-85c1d78d51e9,1,0,ef09e296-af08-44ff-8303-4833b23a12c3,ef09e296-af08-44ff-8303-4833b23a12c3,1,0,8984f28e-8c83-499a-838c-5f51410d7b0e,8984f28e-8c83-499a-838c-5f51410d7b0e,1,0,73bf8c40-76ee-4c61-b56a-898bcd6da1ca,73bf8c40-76ee-4c61-b56a-898bcd6da1ca,1,0,434a0471-1389-4764-a901-69249e1fdc38,434a0471-1389-4764-a901-69249e1fdc38,1,0,7b6c1d9f-968e-4126-990e-fa2787ad83b2,7b6c1d9f-968e-4126-990e-fa2787ad83b2,1,0,b89108a9-8b4e-4b34-8f72-4eb502963743,b89108a9-8b4e-4b34-8f72-4eb502963743,1,0,398b93b1-620d-4942-ba44-7ea0f9cc14f0,398b93b1-620d-4942-ba44-7ea0f9cc14f0,1,0,7b06537e-d818-41b3-acc5-b6b63b543be8,7b06537e-d818-41b3-acc5-b6b63b543be8,1,0,74226c30-5f9b-4e47-b7cc-35e92139cbfa,74226c30-5f9b-4e47-b7cc-35e92139cbfa,1,0,09f812cb-770c-4f85-87f0-db35952c764e,09f812cb-770c-4f85-87f0-db35952c764e,1,0,8bbbcfd9-b6da-41f6-b543-863b12b9fb59,8bbbcfd9-b6da-41f6-b543-863b12b9fb59,1,0,eb48f8a9-1644-432d-a8a8-e63bc013a2fe,eb48f8a9-1644-432d-a8a8-e63bc013a2fe,1,0,36951804-70a4-45fa-9fad-1c37fd3ce7b7,36951804-70a4-45fa-9fad-1c37fd3ce7b7,1,0,d0031774-fa35-469f-9f8a-3aaa920928a0,d0031774-fa35-469f-9f8a-3aaa920928a0,1,0,6da02618-2454-48fe-b1dc-399d0d40d043,6da02618-2454-48fe-b1dc-399d0d40d043,1,0,5a080203-ecd2-4f40-ac64-c8024eda595e,5a080203-ecd2-4f40-ac64-c8024eda595e,1,0,3eabcb69-398b-43f5-bf53-c20f90bee5c4,3eabcb69-398b-43f5-bf53-c20f90bee5c4,1,0,9c33639e-529a-490f-9365-80778b54c3f7,9c33639e-529a-490f-9365-80778b54c3f7,1,0,561b97a0-9d42-4735-a606-8d5b5862689f,561b97a0-9d42-4735-a606-8d5b5862689f,1,0,10d5c0c2-301f-4477-a88f-254f99a30fa0,10d5c0c2-301f-4477-a88f-254f99a30fa0,1,0,84ba4ba7-2743-438a-8b65-cc14090f8a92,84ba4ba7-2743-438a-8b65-cc14090f8a92,1,0,cdc4312c-b1af-407c-bfc3-28db04915aa6,cdc4312c-b1af-407c-bfc3-28db04915aa6,1,0,97b76ee8-c73f-456b-9008-b453bd376317,97b76ee8-c73f-456b-9008-b453bd376317,1,0,ee305e39-978b-4069-a4e6-05e761a5d6ae,ee305e39-978b-4069-a4e6-05e761a5d6ae,1,0,965650ae-8a6e-469a-869a-0ce821818058,965650ae-8a6e-469a-869a-0ce821818058,1,0,00fde8e2-3eb3-484a-a960-a390cbdaa16a,00fde8e2-3eb3-484a-a960-a390cbdaa16a,1,0,c7a82aa5-043c-46a2-9f5a-cba098ca36bd,c7a82aa5-043c-46a2-9f5a-cba098ca36bd,1,0,94744edd-61d0-4329-95d8-fc19dc7c6af1,94744edd-61d0-4329-95d8-fc19dc7c6af1,1,0,43bbf87f-8f21-49b9-be2f-eceb64c2c650,43bbf87f-8f21-49b9-be2f-eceb64c2c650,1,0,69db1a1c-3e9d-4e3c-b31e-731f2b8635b9,69db1a1c-3e9d-4e3c-b31e-731f2b8635b9,1,0,621b1881-9a7f-4fa4-a373-46467743e29c,621b1881-9a7f-4fa4-a373-46467743e29c,1,0,932ef5a0-4bad-424d-9772-ad8393c12006,932ef5a0-4bad-424d-9772-ad8393c12006,1,0,6e82e4ec-cf8e-4e9f-aaed-69b146c2ed84,6e82e4ec-cf8e-4e9f-aaed-69b146c2ed84,1,0,35dbc542-3ad9-4a72-9863-229a67cda425,35dbc542-3ad9-4a72-9863-229a67cda425,1,0,8e4277e9-983a-4d43-b08e-a4f918df87bf,8e4277e9-983a-4d43-b08e-a4f918df87bf,1,0,ea232693-49b2-4e10-9349-66e26760602c,ea232693-49b2-4e10-9349-66e26760602c,1,0,110e76d3-26ad-4392-9f82-255d792478a1,110e76d3-26ad-4392-9f82-255d792478a1,1,0,9117730e-1d3f-47b6-84fc-7a02377f86a0,9117730e-1d3f-47b6-84fc-7a02377f86a0,1,0,0a7eec2f-41c6-4d77-98a4-5e0bfc698997,0a7eec2f-41c6-4d77-98a4-5e0bfc698997,1,0,ec06e6a7-7894-4411-9b54-f811837b8a2e,ec06e6a7-7894-4411-9b54-f811837b8a2e,1,0,f43f3a1b-7f71-4a4f-9ec2-5f4d7d77efca,f43f3a1b-7f71-4a4f-9ec2-5f4d7d77efca,1,0,0947bd87-9542-4d2b-8439-9f6ccdb2c9cc,0947bd87-9542-4d2b-8439-9f6ccdb2c9cc,1,0,c0e2673a-1846-4ae5-933a-4e33b73a866b,c0e2673a-1846-4ae5-933a-4e33b73a866b,1,0,3996aff6-b6ce-4f6b-a2f3-1b0bf8b1d0c2,3996aff6-b6ce-4f6b-a2f3-1b0bf8b1d0c2,1,0,f5fadf27-b8ca-421b-8a73-c3f10aef248b,f5fadf27-b8ca-421b-8a73-c3f10aef248b,1,0,006fa20c-ba4b-4003-a743-b47c4b7bd815,006fa20c-ba4b-4003-a743-b47c4b7bd815,1,0,4ecd2da3-4d0c-416b-ae97-66f6f753226b,4ecd2da3-4d0c-416b-ae97-66f6f753226b,1,0,ec680d71-eb28-4b42-a664-c6137c259eaa,ec680d71-eb28-4b42-a664-c6137c259eaa,1,0,efa1d27f-0620-4b3a-b058-12f160008478,efa1d27f-0620-4b3a-b058-12f160008478,1,0,2dd0ec2e-457d-4147-b806-ff3d6fa091fb,2dd0ec2e-457d-4147-b806-ff3d6fa091fb,1,0,005d4afc-7d09-4cef-acaa-50d49e455df0,005d4afc-7d09-4cef-acaa-50d49e455df0,1,0,d773673e-992d-4f22-9fb3-acfb8863217d,d773673e-992d-4f22-9fb3-acfb8863217d,1,0,6cf00002-d685-4340-a873-196126a19664,6cf00002-d685-4340-a873-196126a19664,1,0,e422c08d-f54f-4a49-b0c5-a50bf63973c9,e422c08d-f54f-4a49-b0c5-a50bf63973c9,1,0,8288078e-0d2f-47c5-8e58-c5a17a76cc11,8288078e-0d2f-47c5-8e58-c5a17a76cc11,1,0,82abcc34-c8aa-42a0-b2fe-f66b7cafc2a0,82abcc34-c8aa-42a0-b2fe-f66b7cafc2a0,1,0,1908b558-9619-477e-ab33-0c731adf2b0e,1908b558-9619-477e-ab33-0c731adf2b0e,1,0,2bed313f-06ac-43a1-a0bd-008c5457deb1,2bed313f-06ac-43a1-a0bd-008c5457deb1,1,0,304feda3-6d33-466c-9e0d-9cea97d763be,304feda3-6d33-466c-9e0d-9cea97d763be,1,0,d6d20d2e-ac18-4bed-aa98-2466871996ac,d6d20d2e-ac18-4bed-aa98-2466871996ac,1,0,53617fbd-4c88-4b13-b3f5-acc78064fdea,53617fbd-4c88-4b13-b3f5-acc78064fdea,1,0,fae5d2ca-4a2d-4ba3-945c-d6545a6b57f1,fae5d2ca-4a2d-4ba3-945c-d6545a6b57f1,1,0,7a043029-1b09-4c11-adfd-9f0588e323e8,7a043029-1b09-4c11-adfd-9f0588e323e8,1,0,ecaf5d2f-0cea-4ad0-8550-51be37cead5c,ecaf5d2f-0cea-4ad0-8550-51be37cead5c,1,0,448e7386-cc56-4578-9c57-ef270980a0ff,448e7386-cc56-4578-9c57-ef270980a0ff,1,0,c2cdc60c-157d-450f-b3ba-2b6242459ebb,c2cdc60c-157d-450f-b3ba-2b6242459ebb,1,0,186f87ca-b9d5-48fa-b196-eed2794bade4,186f87ca-b9d5-48fa-b196-eed2794bade4,1,0,b87d9e04-9e12-42a5-b9fd-ea9a9bab59eb,b87d9e04-9e12-42a5-b9fd-ea9a9bab59eb,1,0,65b653b7-1298-40e4-9d69-2ce7810d5985,65b653b7-1298-40e4-9d69-2ce7810d5985,1,0,5fd170a9-44fc-4d18-9e51-2dbf09ca902e,5fd170a9-44fc-4d18-9e51-2dbf09ca902e,1,0,66359bb1-8692-415a-86d9-f40545f88d3a,66359bb1-8692-415a-86d9-f40545f88d3a,1,0,83be7bdf-e915-440f-a39f-1bb74db34b3e,83be7bdf-e915-440f-a39f-1bb74db34b3e,1,0,190b6efe-e67e-4274-abb9-263178a6ec4a,190b6efe-e67e-4274-abb9-263178a6ec4a,1,0,1363523a-929e-49ac-ae39-d43acf9f0478,1363523a-929e-49ac-ae39-d43acf9f0478,1,0,f6ff0bb8-c1fd-4eae-b919-6d10d4504f0c,f6ff0bb8-c1fd-4eae-b919-6d10d4504f0c,1,0,2876c476-8280-426d-8bf9-c93beda0ddd5,2876c476-8280-426d-8bf9-c93beda0ddd5,1,0,963e0813-4f6b-4d31-b66d-77125c47ce19,963e0813-4f6b-4d31-b66d-77125c47ce19,1,0,a720abc8-dcf0-4684-8d94-22d394a8e4df,a720abc8-dcf0-4684-8d94-22d394a8e4df,1,0,e40f53de-c27b-4e74-8241-f784d7ca5c84,e40f53de-c27b-4e74-8241-f784d7ca5c84,1,0,ef38b84d-277e-48c2-8826-330132eb6807,ef38b84d-277e-48c2-8826-330132eb6807,1,0,67a50910-059a-4724-84e0-c21bc3ac74c2,67a50910-059a-4724-84e0-c21bc3ac74c2,1,0,fdd83a89-a2fe-40d8-a531-a10bfeb36a1d,fdd83a89-a2fe-40d8-a531-a10bfeb36a1d,1,0,d9f76f2f-2b32-4986-8987-a585f831d951,d9f76f2f-2b32-4986-8987-a585f831d951,1,0,b1a96083-1c12-43f4-ba61-3a0588fc7310,b1a96083-1c12-43f4-ba61-3a0588fc7310,1,0,2e37c7d0-b97f-4c72-821e-b2bb77fb3140,2e37c7d0-b97f-4c72-821e-b2bb77fb3140,1,0,0d190f8b-87c5-4dd1-bcfb-609ec3a44f72,0d190f8b-87c5-4dd1-bcfb-609ec3a44f72,1,0,53a2f4b2-e8ea-4347-b4c7-b73f4ea8f9b7,53a2f4b2-e8ea-4347-b4c7-b73f4ea8f9b7,1,0,6b814a99-441e-4a51-997b-1c56bc40b134,6b814a99-441e-4a51-997b-1c56bc40b134,1,0,590dd4d6-ad10-44d6-b046-6ea879ca59bf,590dd4d6-ad10-44d6-b046-6ea879ca59bf,1,0,9388e5d5-3a02-4019-a060-141f8a3bb055,9388e5d5-3a02-4019-a060-141f8a3bb055,1,0,c1b000a1-8094-4a06-805f-b84d4e9c6dc0,c1b000a1-8094-4a06-805f-b84d4e9c6dc0,1,0,5eb1717c-3696-48bb-88a9-b667ea687860,5eb1717c-3696-48bb-88a9-b667ea687860,1,0,95705445-29b4-4d51-857b-a9cf161a3cc6,95705445-29b4-4d51-857b-a9cf161a3cc6,1,0,9e78a2b9-44fc-4971-801d-1ddd4bb09cfd,9e78a2b9-44fc-4971-801d-1ddd4bb09cfd,1,0,2c0d11fc-b927-4b5d-a16c-d60e69580824,2c0d11fc-b927-4b5d-a16c-d60e69580824,1,0,ee49981d-91f6-4002-9205-b8a53e6f54e0,ee49981d-91f6-4002-9205-b8a53e6f54e0,1,0,64a74365-ca32-4b7d-af8e-695624e3dcb6,64a74365-ca32-4b7d-af8e-695624e3dcb6,1,0,ed1b3c28-99be-49e9-90eb-81e24c8323a5,ed1b3c28-99be-49e9-90eb-81e24c8323a5,1,0,1e20958d-79dc-4c53-b09f-e627c6463fca,1e20958d-79dc-4c53-b09f-e627c6463fca,1,0,0efdbcc2-e5a8-4b00-a72a-2823fb0b2658,0efdbcc2-e5a8-4b00-a72a-2823fb0b2658,1,0,0fa7190d-bafd-4113-a623-9d7d818f70c7,0fa7190d-bafd-4113-a623-9d7d818f70c7,1,0,5251e744-666e-48a0-a5b4-9cef313c7631,5251e744-666e-48a0-a5b4-9cef313c7631,1,0,d3aca87c-2b47-48da-82dd-18ca867c8463,d3aca87c-2b47-48da-82dd-18ca867c8463,1,0,669b81a6-6526-4b5c-aafa-1988ae5253ce,669b81a6-6526-4b5c-aafa-1988ae5253ce,1,0,ab138a0c-71fe-4ca2-9d82-21f5830dde24,ab138a0c-71fe-4ca2-9d82-21f5830dde24,1,0,ffa6c000-ec84-4749-8ffe-42b0599751cd,ffa6c000-ec84-4749-8ffe-42b0599751cd,1,0,740bde9c-9fe1-4183-ab01-3fbe91d33b61,740bde9c-9fe1-4183-ab01-3fbe91d33b61,1,0,e8e19542-c5c8-418b-8a83-20336fd9075a,e8e19542-c5c8-418b-8a83-20336fd9075a,1,0,1117fce9-6e77-4d1d-aa86-49e7baddfe4b,1117fce9-6e77-4d1d-aa86-49e7baddfe4b,1,0,23f96afc-28e2-470d-9732-220f8867fc23,23f96afc-28e2-470d-9732-220f8867fc23,1,0,aef883c7-c1f5-46ff-a95a-6828d3509069,aef883c7-c1f5-46ff-a95a-6828d3509069,1,0,36b3b988-bf64-4466-9887-93583f59833d,36b3b988-bf64-4466-9887-93583f59833d,1,0,c2997234-864c-408c-94d3-85a2a1820a16,c2997234-864c-408c-94d3-85a2a1820a16,1,0,9d5b351e-5533-4e9f-a23f-d0f7b03d72ca,9d5b351e-5533-4e9f-a23f-d0f7b03d72ca,1,0,d5775cec-e600-4259-82fc-f313cee1cd6f,d5775cec-e600-4259-82fc-f313cee1cd6f,1,0,df918f4e-1a0a-4a7a-997b-f4757185b691,df918f4e-1a0a-4a7a-997b-f4757185b691,1,0,4e305be6-8bbf-4215-aeea-1283aba6d19e,4e305be6-8bbf-4215-aeea-1283aba6d19e,1,0,ebedc283-5eb0-459b-b686-f8643666b8b8,ebedc283-5eb0-459b-b686-f8643666b8b8,1,0,6a6afffd-cfed-4801-8b59-34d27e46565c,6a6afffd-cfed-4801-8b59-34d27e46565c,1,0,a469b12d-4537-419c-91e0-37abc9d31505,a469b12d-4537-419c-91e0-37abc9d31505,1,0,6f312bda-1f4d-48a6-bd95-f23f34f0ea4b,6f312bda-1f4d-48a6-bd95-f23f34f0ea4b,1,0,82c42232-531e-403f-8599-cc21a248fa2c,82c42232-531e-403f-8599-cc21a248fa2c,1,0,9104b791-9ac4-41ba-a7f0-9e609db3b578,9104b791-9ac4-41ba-a7f0-9e609db3b578,1,0,2d3721d1-816f-4e84-9df1-863cb269d83d,2d3721d1-816f-4e84-9df1-863cb269d83d,1,0,5ffc2b03-28c0-45da-ab3e-e4c5d449a898,5ffc2b03-28c0-45da-ab3e-e4c5d449a898,1,0,5c1a1206-0521-44db-8cdd-3e132f2e5a34,5c1a1206-0521-44db-8cdd-3e132f2e5a34,1,0,a630b2d5-2a8e-471e-a7ca-2498e15ace47,a630b2d5-2a8e-471e-a7ca-2498e15ace47,1,0,ba0855a3-8384-4681-a6f0-6373f23cf52d,ba0855a3-8384-4681-a6f0-6373f23cf52d,1,0,62c4aa38-8768-4a3e-84d1-94fa65b23686,62c4aa38-8768-4a3e-84d1-94fa65b23686,1,0,5c1b06a9-f216-4e73-82f9-1febbdef34d8,5c1b06a9-f216-4e73-82f9-1febbdef34d8,1,0,b732a9da-9739-4c68-a37a-7a81b2c65e49,b732a9da-9739-4c68-a37a-7a81b2c65e49,1,0,bd1e5dbf-310b-44d5-ba84-cccf898c1ec7,bd1e5dbf-310b-44d5-ba84-cccf898c1ec7,1,0,cd20376f-f106-4e20-8575-ceb42b45b8b8,cd20376f-f106-4e20-8575-ceb42b45b8b8,1,0,bf1c6099-2d52-44ea-b873-d3e7d2e94c1e,bf1c6099-2d52-44ea-b873-d3e7d2e94c1e,1,0,5ce71d76-53c2-475a-91f8-8f90e305489a,5ce71d76-53c2-475a-91f8-8f90e305489a,1,0,1a5499ca-600e-4541-8da4-5239f11bfb3b,1a5499ca-600e-4541-8da4-5239f11bfb3b,1,0,b81d7b9e-2adc-4a27-b7ae-13c8ecafd7ba,b81d7b9e-2adc-4a27-b7ae-13c8ecafd7ba,1,0,323207f8-b964-462f-a0f0-4a69ddf90ac0,323207f8-b964-462f-a0f0-4a69ddf90ac0,1,0,5c22f549-a8c2-4068-90bc-974472eb6071,5c22f549-a8c2-4068-90bc-974472eb6071,1,0,0b09cf2f-1759-4362-b997-29e09ac00445,0b09cf2f-1759-4362-b997-29e09ac00445,1,0,f6a9eb9c-a1c2-4114-b155-3ce94c7b7f20,f6a9eb9c-a1c2-4114-b155-3ce94c7b7f20,1,0,828ddf5d-ca09-4baf-897f-77d569e02a6b,828ddf5d-ca09-4baf-897f-77d569e02a6b,1,0,8ef2c1d3-173f-4db8-b2c7-5d5234709b8e,8ef2c1d3-173f-4db8-b2c7-5d5234709b8e,1,0,8856015c-a695-4b1a-99ef-770263f9dc4a,8856015c-a695-4b1a-99ef-770263f9dc4a,1,0,183ec2b5-e173-4885-9e26-1098ffa15020,183ec2b5-e173-4885-9e26-1098ffa15020,1,0,74702fdf-bfc5-4658-ba58-e39bcfbaa647,74702fdf-bfc5-4658-ba58-e39bcfbaa647,1,0,2f436ec3-6a04-4d2c-998a-c60ea875ca86,2f436ec3-6a04-4d2c-998a-c60ea875ca86,1,0,c91f630a-286c-4eb8-b87e-6e6bc7670482,c91f630a-286c-4eb8-b87e-6e6bc7670482,1,0,8ace2dbf-ed9d-46fd-bda7-d884da77e30c,8ace2dbf-ed9d-46fd-bda7-d884da77e30c,1,0,ba59bf05-b815-4679-94ce-601923d60461,ba59bf05-b815-4679-94ce-601923d60461,1,0,65ff172c-3892-4dd2-821b-5d6293805528,65ff172c-3892-4dd2-821b-5d6293805528,1,0,00c47343-9f64-4368-896e-85f1639e4dae,00c47343-9f64-4368-896e-85f1639e4dae,1,0,afc02a73-15bd-4ab1-97bb-5cea6206a44f,afc02a73-15bd-4ab1-97bb-5cea6206a44f,1,0,27a9ef3c-902c-49e3-ab84-ba51185ab111,27a9ef3c-902c-49e3-ab84-ba51185ab111,1,0,20ba43f5-348f-41e4-b365-ff9485a3951d,20ba43f5-348f-41e4-b365-ff9485a3951d,1,0,2f6bc78d-d2ed-491f-bc66-3f95e2ca574c,2f6bc78d-d2ed-491f-bc66-3f95e2ca574c,1,0,bf3e3395-3e41-49c2-b59e-fdcdc3ef956f,bf3e3395-3e41-49c2-b59e-fdcdc3ef956f,1,0,164db402-4516-4d99-80d2-6cb7b6fd7698,164db402-4516-4d99-80d2-6cb7b6fd7698,1,0,93b18f0a-7aa1-42db-809b-1e543cda57de,93b18f0a-7aa1-42db-809b-1e543cda57de,1,0,a8e04267-5a28-40af-8d45-e65375cd8273,a8e04267-5a28-40af-8d45-e65375cd8273,1,0,6a947b2d-3e6b-42c8-a9fd-4c5a71d600a9,6a947b2d-3e6b-42c8-a9fd-4c5a71d600a9,1,0,ae641a80-4ada-4592-ace9-29a82e6700e4,ae641a80-4ada-4592-ace9-29a82e6700e4,1,0,c6bf0d10-5406-44e8-b3f3-74b7db2b71e6,c6bf0d10-5406-44e8-b3f3-74b7db2b71e6,1,0,8d653af4-ac00-4ca9-a9e6-4e1a888c6dfb,8d653af4-ac00-4ca9-a9e6-4e1a888c6dfb,1,0,703453e8-cb49-491b-8e19-a17b89894d1e,703453e8-cb49-491b-8e19-a17b89894d1e,1,0,f0b0608c-178f-4dea-b461-0d8f00d79d30,f0b0608c-178f-4dea-b461-0d8f00d79d30,1,0,ed2dba0c-7fe3-4d24-b6a6-b104beadc286,ed2dba0c-7fe3-4d24-b6a6-b104beadc286,1,0,a4c98768-c9fc-4f95-b89b-bb1cb0e8fade,a4c98768-c9fc-4f95-b89b-bb1cb0e8fade,1,0,5546b9a9-a4fe-4a2b-9492-883bcb37a210,5546b9a9-a4fe-4a2b-9492-883bcb37a210,1,0,6fb76c5f-844f-4cbc-ae7c-4ac834fddfc9,6fb76c5f-844f-4cbc-ae7c-4ac834fddfc9,1,0,275a5772-8428-497a-81ef-c919f15fcccd,275a5772-8428-497a-81ef-c919f15fcccd,1,0,8df6e7e6-2a1e-4cf3-bdc9-60e52ea3f625,8df6e7e6-2a1e-4cf3-bdc9-60e52ea3f625,1,0,b5278cbd-1771-4739-9013-a28682689778,b5278cbd-1771-4739-9013-a28682689778,1,0,a52f2de4-f414-4837-9b1a-6d8f282e1327,a52f2de4-f414-4837-9b1a-6d8f282e1327,1,0,82573440-0ef5-4c07-bb1e-fe90295981d2,82573440-0ef5-4c07-bb1e-fe90295981d2,1,0,804be484-09cf-45a4-bd1f-c8850067e2b2,804be484-09cf-45a4-bd1f-c8850067e2b2,1,0,f1a145ce-a199-475c-ab8a-065c11a27277,f1a145ce-a199-475c-ab8a-065c11a27277,1,0,8d509c4e-fcea-4ccd-aec4-e146f2d4319b,8d509c4e-fcea-4ccd-aec4-e146f2d4319b,1,0,d126a11e-c770-4309-941f-cbcdd5cbad5d,d126a11e-c770-4309-941f-cbcdd5cbad5d,1,0,f4d88096-bff9-416a-8f75-9143ede1213f,f4d88096-bff9-416a-8f75-9143ede1213f,1,0,6b0721fe-d27f-4d1a-b377-26fce2ed1687,6b0721fe-d27f-4d1a-b377-26fce2ed1687,1,0,25c97480-330c-42f2-a2a5-031062a3a683,25c97480-330c-42f2-a2a5-031062a3a683,1,0,a2fb1bf9-d29a-4bfe-95f1-10883fa019b3,a2fb1bf9-d29a-4bfe-95f1-10883fa019b3,1,0,6adc3aa8-8784-467d-8e12-b60418a5c729,6adc3aa8-8784-467d-8e12-b60418a5c729,1,0,265206ed-4d41-497e-a483-c14052134500,265206ed-4d41-497e-a483-c14052134500,1,0,bf070420-9eb7-4372-96a6-b0d00ac3ce8c,bf070420-9eb7-4372-96a6-b0d00ac3ce8c,1,0,10336352-f3a1-4bc3-bdec-1a2eef15f176,10336352-f3a1-4bc3-bdec-1a2eef15f176,1,0,cacabf2f-6d1c-4c33-80c7-c27a5e757cc9,cacabf2f-6d1c-4c33-80c7-c27a5e757cc9,1,0,3b7c713e-81ae-4adc-9519-99c936599ef7,3b7c713e-81ae-4adc-9519-99c936599ef7,1,0,1c8ffbbd-035c-45cf-8ec8-dc5d26d7f673,1c8ffbbd-035c-45cf-8ec8-dc5d26d7f673,1,0,ecda2c4b-6411-4b47-ab59-1918bad5acdd,ecda2c4b-6411-4b47-ab59-1918bad5acdd,1,0,a9a05a66-0a1c-4e53-9d09-1abe8f45e354,a9a05a66-0a1c-4e53-9d09-1abe8f45e354,1,0,2c811ee8-f50d-4c39-82ee-0492feb1c431,2c811ee8-f50d-4c39-82ee-0492feb1c431,1,0,399f679b-f48a-4d4e-b890-5eab9e4598c3,399f679b-f48a-4d4e-b890-5eab9e4598c3,1,0,da9ca4c4-c291-4f8b-accd-bc1b123ed4f8,da9ca4c4-c291-4f8b-accd-bc1b123ed4f8,1,0,9ad1ea04-1aee-4a80-b4df-60526cdf3ad0,9ad1ea04-1aee-4a80-b4df-60526cdf3ad0,1,0,b65954b9-39f9-4f7c-8af2-939af0694368,b65954b9-39f9-4f7c-8af2-939af0694368,1,0,3a984dac-c971-42c3-9736-a45c46b55f01,3a984dac-c971-42c3-9736-a45c46b55f01,1,0,edaa4ad4-4dd9-4225-85e8-b0d74d167985,edaa4ad4-4dd9-4225-85e8-b0d74d167985,1,0,c060feda-b1ec-4db3-b16e-d19b36833a2c,c060feda-b1ec-4db3-b16e-d19b36833a2c,1,0,2116217b-1660-499f-953d-f685738b0f30,2116217b-1660-499f-953d-f685738b0f30,1,0,45b46613-13cc-4888-9bb7-53780402206f,45b46613-13cc-4888-9bb7-53780402206f,1,0,5c224274-5495-49bc-b124-e6d649b09d57,5c224274-5495-49bc-b124-e6d649b09d57,1,0,0a92df3d-fb51-4fba-938c-55846929bd5f,0a92df3d-fb51-4fba-938c-55846929bd5f,1,0,1d005a8d-aaac-4442-a7dc-12634d03f6f3,1d005a8d-aaac-4442-a7dc-12634d03f6f3,1,0,348d0ad2-f64e-4ea0-8b8e-11bbc10926f7,348d0ad2-f64e-4ea0-8b8e-11bbc10926f7,1,0,7f7eb00d-7a38-4025-8853-9d1cf2dab1e3,7f7eb00d-7a38-4025-8853-9d1cf2dab1e3,1,0,36221881-a9c8-4b91-acac-44f7c065c05a,36221881-a9c8-4b91-acac-44f7c065c05a,1,0,3fdcf013-38e0-4a30-9ae8-19100e6704ba,3fdcf013-38e0-4a30-9ae8-19100e6704ba,1,0,876e31ff-ab7b-4ea4-b491-161963727dd1,876e31ff-ab7b-4ea4-b491-161963727dd1,1,0,bb43995b-68b4-41a1-8458-e10a2d8925f1,bb43995b-68b4-41a1-8458-e10a2d8925f1,1,0,61730dd9-fed7-43ce-8f38-724cac8f3d08,61730dd9-fed7-43ce-8f38-724cac8f3d08,1,0,b6424caf-3db8-4cfe-b92d-7435c23606a5,b6424caf-3db8-4cfe-b92d-7435c23606a5,1,0,e6a494b8-27e7-46a6-9435-7be6e150a69e,e6a494b8-27e7-46a6-9435-7be6e150a69e,1,0,133dc852-59d3-4351-934d-8845f8a38431,133dc852-59d3-4351-934d-8845f8a38431,1,0,55dbaaf1-554d-46e2-b42a-ce6a8bf20dfb,55dbaaf1-554d-46e2-b42a-ce6a8bf20dfb,1,0,b67914a8-d483-4bed-bd4d-a4aadd4998a4,b67914a8-d483-4bed-bd4d-a4aadd4998a4,1,0,707a8a49-fec5-454c-9e80-c3da829d395c,707a8a49-fec5-454c-9e80-c3da829d395c,1,0,b5ea4aff-11be-4232-94a2-cb92801b6c49,b5ea4aff-11be-4232-94a2-cb92801b6c49,1,0,6f630213-c16c-421c-a160-09e3c729ab26,6f630213-c16c-421c-a160-09e3c729ab26,1,0,878c638c-7c84-4914-896a-d4fdf0d759ef,878c638c-7c84-4914-896a-d4fdf0d759ef,1,0,6065653e-b7a9-4033-9617-f64430c57d89,6065653e-b7a9-4033-9617-f64430c57d89,1,0,9ec63da6-1f53-417f-9c7d-6879eaa56a7e,9ec63da6-1f53-417f-9c7d-6879eaa56a7e,1,0,00d1d85b-c258-4f10-9d13-a99375a29fc1,00d1d85b-c258-4f10-9d13-a99375a29fc1,1,0,f6d79449-eca9-4d13-9ddc-8b36ae9e729e,f6d79449-eca9-4d13-9ddc-8b36ae9e729e,1,0,b9d56dc6-3a10-4795-9ca3-dbf69310813e,b9d56dc6-3a10-4795-9ca3-dbf69310813e,1,0,f4b53ce1-8c1b-4f57-b5de-acb4692a37d8,f4b53ce1-8c1b-4f57-b5de-acb4692a37d8,1,0,9b18e04f-036d-43ae-b949-9432f96d71d9,9b18e04f-036d-43ae-b949-9432f96d71d9,1,0,e99a1f54-4001-45ee-81e3-472656c05f57,e99a1f54-4001-45ee-81e3-472656c05f57,1,0,b104e7b9-8a41-4154-a84b-d1bb12fab939,b104e7b9-8a41-4154-a84b-d1bb12fab939,1,0,86b835c4-341e-4b0d-99e5-2369684ff3f4,86b835c4-341e-4b0d-99e5-2369684ff3f4,1,0,55c48fa8-8d12-4378-97a0-c0ed683f6b83,55c48fa8-8d12-4378-97a0-c0ed683f6b83,1,0,b0f74a92-f5e4-4859-9a72-643ddb5315cb,b0f74a92-f5e4-4859-9a72-643ddb5315cb,1,0,1864093d-62ac-4b12-ad16-c460432c99f6,1864093d-62ac-4b12-ad16-c460432c99f6,1,0,6eb78c87-24ed-43a8-800d-ccde02358b32,6eb78c87-24ed-43a8-800d-ccde02358b32,1,0,787d5fec-c476-4519-884b-f62492fc8396,787d5fec-c476-4519-884b-f62492fc8396,1,0,59ebd5fb-d782-46ea-b693-7885d2ababa8,59ebd5fb-d782-46ea-b693-7885d2ababa8,1,0,39a39567-43d8-47c5-9f17-0a11f31e129a,39a39567-43d8-47c5-9f17-0a11f31e129a,1,0,b24e8ff0-eb86-4ce6-84f5-49134b48f031,b24e8ff0-eb86-4ce6-84f5-49134b48f031,1,0,52ab6aea-e6a0-43f0-9cc8-f7c9126635cc,52ab6aea-e6a0-43f0-9cc8-f7c9126635cc,1,0,e983f539-e369-491e-9cee-510518187870,e983f539-e369-491e-9cee-510518187870,1,0,876b23bf-2f48-4916-ad0f-4de8306e1864,876b23bf-2f48-4916-ad0f-4de8306e1864,1,0,9a402a9c-a31f-4082-91d5-b4fe7576a5c2,9a402a9c-a31f-4082-91d5-b4fe7576a5c2,1,0,e7c63a25-c804-4bc4-a6f1-81009dd889e2,e7c63a25-c804-4bc4-a6f1-81009dd889e2,1,0,e99a1b17-0e37-489a-bc39-3dd2e23b0861,e99a1b17-0e37-489a-bc39-3dd2e23b0861,1,0,7ccd86cd-4294-4f6c-84f4-98e25e479f4d,7ccd86cd-4294-4f6c-84f4-98e25e479f4d,1,0,4c1576c4-b327-4ec1-87bc-662c5aba343b,4c1576c4-b327-4ec1-87bc-662c5aba343b,1,0,70e710c5-42df-465f-a9c5-8345c87e1f19,70e710c5-42df-465f-a9c5-8345c87e1f19,1,0,0f694ef1-4a97-4aed-ab4b-0b2c18ea7e17,0f694ef1-4a97-4aed-ab4b-0b2c18ea7e17,1,0,14facdfb-9835-4bb6-98a8-5a6ca9a5d2f8,14facdfb-9835-4bb6-98a8-5a6ca9a5d2f8,1,0,4492ac73-eb91-41f8-98f1-54c2b3ad212a,4492ac73-eb91-41f8-98f1-54c2b3ad212a,1,0,869b43fb-968f-4fe0-b945-5030c90a38f2,869b43fb-968f-4fe0-b945-5030c90a38f2,1,0,af071a52-212b-4131-98e6-81f6048a70e6,af071a52-212b-4131-98e6-81f6048a70e6,1,0,37210dde-9a2f-475c-8341-578ac99f0e17,37210dde-9a2f-475c-8341-578ac99f0e17,1,0,e5094d4f-ee61-4142-a97b-d96172350f65,e5094d4f-ee61-4142-a97b-d96172350f65,1,0,3a8fffb6-a732-440c-afb9-d1c699ea53b6,3a8fffb6-a732-440c-afb9-d1c699ea53b6,1,0,b0650787-8ff5-4407-b491-bcdc2f61fd58,b0650787-8ff5-4407-b491-bcdc2f61fd58,1,0,33dd6bba-0044-4e2f-ae9e-c8a26079ab2a,33dd6bba-0044-4e2f-ae9e-c8a26079ab2a,1,0,3f289f67-dfc7-4f2d-90e4-b47aff76ecdb,3f289f67-dfc7-4f2d-90e4-b47aff76ecdb,1,0,9aadad98-69f5-41ce-ad1c-0afd8c610d86,9aadad98-69f5-41ce-ad1c-0afd8c610d86,1,0,706a3db0-9d4f-4c08-91cd-3ccaa6d06d3b,706a3db0-9d4f-4c08-91cd-3ccaa6d06d3b,1,0,3d662173-e19d-4077-9a08-8c8899226e24,3d662173-e19d-4077-9a08-8c8899226e24,1,0,69fd1e6e-7302-4ca8-8419-ec567ae66bef,69fd1e6e-7302-4ca8-8419-ec567ae66bef,1,0,0eee931a-57bb-4844-8e6e-eaca342640a0,0eee931a-57bb-4844-8e6e-eaca342640a0,1,0,20c57e30-5856-4801-9e77-8006471d89f8,20c57e30-5856-4801-9e77-8006471d89f8,1,0,64eff9f4-c57b-40a0-bd83-7e371fd010ce,64eff9f4-c57b-40a0-bd83-7e371fd010ce,1,0,4a3fe393-8aea-4394-8c10-a234f1f191ad,4a3fe393-8aea-4394-8c10-a234f1f191ad,1,0,6f9a3d00-d935-4fa6-9fd2-14700226daff,6f9a3d00-d935-4fa6-9fd2-14700226daff,1,0,d792831c-698d-40c6-96c2-dd0ae6f30707,d792831c-698d-40c6-96c2-dd0ae6f30707,1,0,a1d91c5f-1acd-4b46-887e-d06e7260dd20,a1d91c5f-1acd-4b46-887e-d06e7260dd20,1,0,3fd26019-c464-4c73-b18e-0888740b1747,3fd26019-c464-4c73-b18e-0888740b1747,1,0,1c2103d3-3feb-4412-98c4-c731f22eef2b,1c2103d3-3feb-4412-98c4-c731f22eef2b,1,0,569bb515-cec2-4da0-80f0-34dae50206e0,569bb515-cec2-4da0-80f0-34dae50206e0,1,0,a21989bd-a57f-4969-be3b-d8b39ead4145,a21989bd-a57f-4969-be3b-d8b39ead4145,1,0,c4aee120-cdbb-4b48-a1c7-99cccbafb120,c4aee120-cdbb-4b48-a1c7-99cccbafb120,1,0,6b3e07d5-9299-4933-b3fa-c3cc5f5aa7c9,6b3e07d5-9299-4933-b3fa-c3cc5f5aa7c9,1,0,a3667b25-7c18-446d-a318-685a4fe4bf89,a3667b25-7c18-446d-a318-685a4fe4bf89,1,0,fd271670-bde6-4351-abec-eb82548c6c98,fd271670-bde6-4351-abec-eb82548c6c98,1,0,498b012b-bb63-490e-8100-1d33dc84b400,498b012b-bb63-490e-8100-1d33dc84b400,1,0,8103f12c-ed50-4052-8117-33b6d11ef620,8103f12c-ed50-4052-8117-33b6d11ef620,1,0,4f8653e4-3f58-4bad-8ded-424fe7b1d18a,4f8653e4-3f58-4bad-8ded-424fe7b1d18a,1,0,799b3dda-fbfc-4dea-a577-30321e64f4d5,799b3dda-fbfc-4dea-a577-30321e64f4d5,1,0,7c7857b6-90e8-4b3f-9902-fd81bf68d133,7c7857b6-90e8-4b3f-9902-fd81bf68d133,1,0,617de19c-bf01-4900-832a-c169e9faeb79,617de19c-bf01-4900-832a-c169e9faeb79,1,0,70b73fd0-f5dc-411e-9bbb-10a538e8281b,70b73fd0-f5dc-411e-9bbb-10a538e8281b,1,0,758f44ad-54da-4f72-accf-0afecc4f4827,758f44ad-54da-4f72-accf-0afecc4f4827,1,0,05ee4a7c-63e6-4587-8be7-e206345e3471,05ee4a7c-63e6-4587-8be7-e206345e3471,1,0,98d5e98b-0382-4b28-a5d9-24392925664a,98d5e98b-0382-4b28-a5d9-24392925664a,1,0,7c424a77-2a83-4a85-8b7d-e8bb6d013c77,7c424a77-2a83-4a85-8b7d-e8bb6d013c77,1,0,2a77eb39-0487-4fb0-8d5b-d4a27592ea60,2a77eb39-0487-4fb0-8d5b-d4a27592ea60,1,0,19a18193-c5d3-4e56-86c5-5a81c525e9ad,19a18193-c5d3-4e56-86c5-5a81c525e9ad,1,0,c208fcc0-d7b2-435b-963a-e18c97727f8f,c208fcc0-d7b2-435b-963a-e18c97727f8f,1,0,ac5db038-8bc3-45ff-9e8d-04ea9fef6d43,ac5db038-8bc3-45ff-9e8d-04ea9fef6d43,1,0,bf11f7b1-6332-4499-ba48-b94bc10ef869,bf11f7b1-6332-4499-ba48-b94bc10ef869,1,0,4de445f0-7c27-4540-a5a8-9c3ca2a13fd2,4de445f0-7c27-4540-a5a8-9c3ca2a13fd2,1,0,2977fedd-2c56-4d21-8eb1-a424e1b17cb3,2977fedd-2c56-4d21-8eb1-a424e1b17cb3,1,0,0b8a2936-07c5-4b90-80e6-5a058e546de6,0b8a2936-07c5-4b90-80e6-5a058e546de6,1,0,34524248-668e-48e5-a801-f489cd664de8,34524248-668e-48e5-a801-f489cd664de8,1,0,ae0891ae-ecd2-4072-8d2b-0556030c9dfd,ae0891ae-ecd2-4072-8d2b-0556030c9dfd,1,0,e8f36bca-738b-471c-b8d3-8a484978934a,e8f36bca-738b-471c-b8d3-8a484978934a,1,0,336cb96e-8867-4c9d-b74c-b4287ac9212a,336cb96e-8867-4c9d-b74c-b4287ac9212a,1,0,fc7dbc20-7bef-4cbc-9b32-5d86cef5532c,fc7dbc20-7bef-4cbc-9b32-5d86cef5532c,1,0,29f616a6-b914-4ffb-8a86-1ae17089e2f7,29f616a6-b914-4ffb-8a86-1ae17089e2f7,1,0,c50075b0-e8e2-4a6c-92ef-05882aa3cfea,c50075b0-e8e2-4a6c-92ef-05882aa3cfea,1,0,5a1058fc-35f6-43c2-95e5-ae678e19e7d6,5a1058fc-35f6-43c2-95e5-ae678e19e7d6,1,0,05c27c89-2c26-4252-842d-9aa43ba0ea2f,05c27c89-2c26-4252-842d-9aa43ba0ea2f,1,0,7c1e16c2-201d-4a3f-b0f4-9d66f5f8a68b,7c1e16c2-201d-4a3f-b0f4-9d66f5f8a68b,1,0,f092729c-6b5d-4709-8b28-15e06129731d,f092729c-6b5d-4709-8b28-15e06129731d,1,0,c03be2f7-d681-417d-975a-5c8c7b716659,c03be2f7-d681-417d-975a-5c8c7b716659,1,0,fca7af5f-bdc0-4264-be68-5e5e38545368,fca7af5f-bdc0-4264-be68-5e5e38545368,1,0,a3fc0bce-a87e-4c15-b57b-f285a694bcdf,a3fc0bce-a87e-4c15-b57b-f285a694bcdf,1,0,ae124745-edfb-11e6-4681-a8667f21fde4,ae124745-edfb-11e6-4681-a8667f21fde4,1,0,f6fcf9c2-edfb-11e6-4681-a8667f21fde4,f6fcf9c2-edfb-11e6-4681-a8667f21fde4,1,0,ec70cf10-edfb-11e6-4681-a8667f21fde4,ec70cf10-edfb-11e6-4681-a8667f21fde4,1,0,7c47f039-1ca9-4c6f-ac36-f4cb59b48b65,7c47f039-1ca9-4c6f-ac36-f4cb59b48b65,1,0,0b7cee9b-3870-49f5-a58e-063cf5353467,0b7cee9b-3870-49f5-a58e-063cf5353467,1,0,d392a791-af74-40c9-ab20-6ed6aeabe864,d392a791-af74-40c9-ab20-6ed6aeabe864,1,0,974d2430-1ff6-4be9-a5aa-aa896e9a66d4,974d2430-1ff6-4be9-a5aa-aa896e9a66d4,1,0,1612570d-b069-405a-9dd3-80b8175fb468,1612570d-b069-405a-9dd3-80b8175fb468,1,0,34fd7dcb-e73c-42ca-8cf8-d837ad965541,34fd7dcb-e73c-42ca-8cf8-d837ad965541,1,0,3c429fe8-e663-4a58-817f-8f8382697dbb,3c429fe8-e663-4a58-817f-8f8382697dbb,1,0,c37be0c3-d2db-4e63-a8cb-7956a5396650,c37be0c3-d2db-4e63-a8cb-7956a5396650,1,0,83180e0d-fc4b-41ec-9a17-5af555a4776f,83180e0d-fc4b-41ec-9a17-5af555a4776f,1,0,27c52afc-7127-41e1-af8a-1b1bd2c9bfa8,27c52afc-7127-41e1-af8a-1b1bd2c9bfa8,1,0,7f68e4c1-c4f7-4c6c-8f0a-225e544e07ee,7f68e4c1-c4f7-4c6c-8f0a-225e544e07ee,1,0,561ed574-617d-4a46-b32b-f022e07846c8,561ed574-617d-4a46-b32b-f022e07846c8,1,0,cba706bf-a9a7-4dda-9c5a-a26e85119396,cba706bf-a9a7-4dda-9c5a-a26e85119396,1,0,159a4eb5-00cd-426c-86e3-09cd3f569f22,159a4eb5-00cd-426c-86e3-09cd3f569f22,1,0,f03cdb56-ef3f-461f-91b1-cdcaed2786e8,f03cdb56-ef3f-461f-91b1-cdcaed2786e8,1,0,3e8c6546-416c-4437-8c85-2cf591b4fc3f,3e8c6546-416c-4437-8c85-2cf591b4fc3f,1,0,038e5027-3cc5-4ea2-b0b5-28a7544ad53e,038e5027-3cc5-4ea2-b0b5-28a7544ad53e,1,0,9a0b27db-e4ac-496b-b6de-876b90381527,9a0b27db-e4ac-496b-b6de-876b90381527,1,0,2ded5135-b6c3-46dd-b563-7b6fab986d23,2ded5135-b6c3-46dd-b563-7b6fab986d23,1,0,14215720-ccb3-4e5a-8345-cd42c96a3e77,14215720-ccb3-4e5a-8345-cd42c96a3e77,1,0,24fa0604-b6a5-49ad-9d03-b2cf8e81dad8,24fa0604-b6a5-49ad-9d03-b2cf8e81dad8,1,0,0690a5c7-bc25-4101-afa5-69c095d415c2,0690a5c7-bc25-4101-afa5-69c095d415c2,1,0,2ad7b509-4cd1-456a-a6ae-94649fdf8c3e,2ad7b509-4cd1-456a-a6ae-94649fdf8c3e,1,0,79013bba-a0f2-481c-a63e-095a54ee52aa,79013bba-a0f2-481c-a63e-095a54ee52aa,1,0,8523c346-f144-41b8-a702-2d588e7097c2,8523c346-f144-41b8-a702-2d588e7097c2,1,0,93969a30-d9d7-4f2f-85fa-57a4eb7495bf,93969a30-d9d7-4f2f-85fa-57a4eb7495bf,1,0,9fb73c9b-05de-4474-8a28-7e3fd5b2b143,9fb73c9b-05de-4474-8a28-7e3fd5b2b143,1,0,fa2bd6a6-bb46-4e21-8684-248578310164,fa2bd6a6-bb46-4e21-8684-248578310164,1,0,f7cf3b42-39c0-48db-b8ca-fe9ea267a45a,f7cf3b42-39c0-48db-b8ca-fe9ea267a45a,1,0,3a0c06eb-f6d5-46c3-b0b9-c8d98e572093,3a0c06eb-f6d5-46c3-b0b9-c8d98e572093,1,0,88ccac36-169d-48f8-bc68-15e3bb775b79,88ccac36-169d-48f8-bc68-15e3bb775b79,1,0,a1640988-bd60-43b3-86f1-184b9db275c6,a1640988-bd60-43b3-86f1-184b9db275c6,1,0,300a02f7-8062-4843-b11e-0321f8b40f4d,300a02f7-8062-4843-b11e-0321f8b40f4d,1,0,c8015ae6-31a7-49f4-a9e6-5d13774f64e5,c8015ae6-31a7-49f4-a9e6-5d13774f64e5,1,0,970430c4-37fc-476c-a3f6-5f6bebd2e663,970430c4-37fc-476c-a3f6-5f6bebd2e663,1,0,4cddde4a-42d5-44d0-a693-ea90eab9b169,4cddde4a-42d5-44d0-a693-ea90eab9b169,1,0,d9d612bb-6d04-4186-b243-f99aded0ba43,d9d612bb-6d04-4186-b243-f99aded0ba43,1,0,15db8b7b-59f5-4551-b2bd-b24801f056b5,15db8b7b-59f5-4551-b2bd-b24801f056b5,1,0,88d2236b-794b-485a-b075-f1a54cadcd3a,88d2236b-794b-485a-b075-f1a54cadcd3a,1,0,b7f9553f-6219-4401-a6f4-9debd47186d2,b7f9553f-6219-4401-a6f4-9debd47186d2,1,0,26a7e044-a583-40af-9daa-5aea628c8f19,26a7e044-a583-40af-9daa-5aea628c8f19,1,0,548717ca-0645-49b4-9580-c77cd4d03ebb,548717ca-0645-49b4-9580-c77cd4d03ebb,1,0,29c337bd-9811-4fce-91bb-20c253d2d14a,29c337bd-9811-4fce-91bb-20c253d2d14a,1,0,b451f2fc-ced2-418a-a803-4fe99488b394,b451f2fc-ced2-418a-a803-4fe99488b394,1,0,62269222-67a7-489e-ba59-4294902275bc,62269222-67a7-489e-ba59-4294902275bc,1,0,fed1b714-a2c9-42cf-9ced-35ed895e4167,fed1b714-a2c9-42cf-9ced-35ed895e4167,1,0,6f334263-10c8-4187-9a84-d2fd1afadc48,6f334263-10c8-4187-9a84-d2fd1afadc48,1,0,f5674a0d-a106-4cc0-a402-b378280eab3d,f5674a0d-a106-4cc0-a402-b378280eab3d,1,0,9a68a81b-c6bd-4353-baf4-da8a21f98fb9,9a68a81b-c6bd-4353-baf4-da8a21f98fb9,1,0,8db2b1d8-c415-4846-bd1a-9fec1b105ff0,8db2b1d8-c415-4846-bd1a-9fec1b105ff0,1,0,3ed20a3b-031c-4f2b-a66a-14cceed80407,3ed20a3b-031c-4f2b-a66a-14cceed80407,1,0,3831a5d8-12d5-4730-ac2e-e11f084dc684,3831a5d8-12d5-4730-ac2e-e11f084dc684,1,0,b6dce793-c652-48de-b2da-1dc3e89e1521,b6dce793-c652-48de-b2da-1dc3e89e1521,1,0,41990cad-a43e-46fd-b9bc-e8acc1d6e937,41990cad-a43e-46fd-b9bc-e8acc1d6e937,1,0,3bcce139-d42e-45c2-ace8-28aa34e01a38,3bcce139-d42e-45c2-ace8-28aa34e01a38,1,0,2e6a596c-c203-48b3-af11-bf0aef0f70a1,2e6a596c-c203-48b3-af11-bf0aef0f70a1,1,0,82eb7d08-12ad-42a2-9257-91b93f7cc890,82eb7d08-12ad-42a2-9257-91b93f7cc890,1,0,50754c7d-9c8a-497c-a4c8-76d7400b3412,50754c7d-9c8a-497c-a4c8-76d7400b3412,1,0,193f2d79-83a7-4044-89c6-0b5d7c7cf80a,193f2d79-83a7-4044-89c6-0b5d7c7cf80a,1,0,93070fc1-4204-43b7-b8eb-1bf905f5fa3f,93070fc1-4204-43b7-b8eb-1bf905f5fa3f,1,0,d29ba846-bc42-4364-b69d-4b56532920e0,d29ba846-bc42-4364-b69d-4b56532920e0,1,0,83239cd4-50cb-4281-8be3-fd89e410c15c,83239cd4-50cb-4281-8be3-fd89e410c15c,1,0,fa99302b-3e86-4330-b9ff-c38d933f81f0,fa99302b-3e86-4330-b9ff-c38d933f81f0,1,0,fb9c08ee-92e9-4bd9-8794-ef0f221eee99,fb9c08ee-92e9-4bd9-8794-ef0f221eee99,1,0,e4cd44e6-1255-490f-96d9-f805ac92cf67,e4cd44e6-1255-490f-96d9-f805ac92cf67,1,0,8ae9be37-cda5-4b66-8a97-5e77d2a2c75f,8ae9be37-cda5-4b66-8a97-5e77d2a2c75f,1,0,5a9011fc-c023-47fb-a999-2c6ca33a04b9,5a9011fc-c023-47fb-a999-2c6ca33a04b9,1,0,ab574fa5-0730-4456-b741-111e5ea8a896,ab574fa5-0730-4456-b741-111e5ea8a896,1,0,b8d5adf0-dc2f-4041-bc97-cb2442f00054,b8d5adf0-dc2f-4041-bc97-cb2442f00054,1,0,398199c4-4830-48e9-89c5-45c2c5a30ee6,398199c4-4830-48e9-89c5-45c2c5a30ee6,1,0,546ba3bb-4614-423f-954c-466530f42784,546ba3bb-4614-423f-954c-466530f42784,1,0,e5bc54f0-d7d0-471c-adda-a0e73e0dd3cf,e5bc54f0-d7d0-471c-adda-a0e73e0dd3cf,1,0,af447f33-ef41-4eda-96ec-5bac26fff33e,af447f33-ef41-4eda-96ec-5bac26fff33e,1,0,f0c83fc5-6e9a-4185-ab43-2b419ace7909,f0c83fc5-6e9a-4185-ab43-2b419ace7909,1,0,4bd15718-6a0e-4a86-921a-09d38ba4be4c,4bd15718-6a0e-4a86-921a-09d38ba4be4c,1,0,32586ba6-8922-4321-b134-70d1b77a16a4,32586ba6-8922-4321-b134-70d1b77a16a4,1,0,a21cf522-d657-49ba-a198-01ff1de5e3f0,a21cf522-d657-49ba-a198-01ff1de5e3f0,1,0,4dc698da-8471-4b3f-816d-f1467cd2e5f1,4dc698da-8471-4b3f-816d-f1467cd2e5f1,1,0,7ceb2f18-4dae-4b13-a5be-e949be165b4e,7ceb2f18-4dae-4b13-a5be-e949be165b4e,1,0,c4f94f6d-e33f-4226-bf47-c4b544098082,c4f94f6d-e33f-4226-bf47-c4b544098082,1,0,0abca5b8-4974-48aa-bf5d-dbbe2c2ea0e6,0abca5b8-4974-48aa-bf5d-dbbe2c2ea0e6,1,0,fc67b510-3fb4-4305-92d2-c252bc718f03,fc67b510-3fb4-4305-92d2-c252bc718f03,1,0,ed98a7b2-ad31-401f-a65e-dfbcc8e5a4a8,ed98a7b2-ad31-401f-a65e-dfbcc8e5a4a8,1,0,9a5e3d2c-ab69-4f9d-a56f-20bb5f0be1e2,9a5e3d2c-ab69-4f9d-a56f-20bb5f0be1e2,1,0,cf1f7915-94ad-47e7-8676-73271d0cf71e,cf1f7915-94ad-47e7-8676-73271d0cf71e,1,0,fceb6e4a-bd51-4193-a542-70d2317af669,fceb6e4a-bd51-4193-a542-70d2317af669,1,0,f9f991a6-ddf3-4953-8a1f-e6c0e1a7f4e9,f9f991a6-ddf3-4953-8a1f-e6c0e1a7f4e9,1,0,80847d57-1795-46c7-a106-926e1f43ac1e,80847d57-1795-46c7-a106-926e1f43ac1e,1,0,38685415-dc87-48b4-8cc4-f85b438f2ec2,38685415-dc87-48b4-8cc4-f85b438f2ec2,1,0,110eff8b-aeec-4ba5-b710-fefc1bd60284,110eff8b-aeec-4ba5-b710-fefc1bd60284,1,0,0a8a6bb9-8b6a-43cf-9d46-b18a8a9591d8,0a8a6bb9-8b6a-43cf-9d46-b18a8a9591d8,1,0,75eca481-002b-4046-898d-dfac9357611f,75eca481-002b-4046-898d-dfac9357611f,1,0,5d81af5c-3133-4e21-9ea4-ffe3d3ca9769,5d81af5c-3133-4e21-9ea4-ffe3d3ca9769,1,0,0f83d532-f675-4aea-802e-d640cc53e4a9,0f83d532-f675-4aea-802e-d640cc53e4a9,1,0,75b0d16b-4acd-4870-8e9d-f2764171e747,75b0d16b-4acd-4870-8e9d-f2764171e747,1,0,8f2cd606-d326-4c92-bfff-e5ec8b5057b5,8f2cd606-d326-4c92-bfff-e5ec8b5057b5,1,0,ed56abb2-66c6-412e-bead-9b23c59bd49a,ed56abb2-66c6-412e-bead-9b23c59bd49a,1,0,47ad737d-c9d3-4d4d-8d4d-b550412062c4,47ad737d-c9d3-4d4d-8d4d-b550412062c4,1,0,204f67e9-204d-47b6-afdd-8e880b7563bc,204f67e9-204d-47b6-afdd-8e880b7563bc,1,0,4da10de3-d999-4acd-bf5a-b1c60cf01b32,4da10de3-d999-4acd-bf5a-b1c60cf01b32,1,0,5e52263e-856f-43da-96ca-d4f06127f604,5e52263e-856f-43da-96ca-d4f06127f604,1,0,ab6f18fe-4ce4-4ecb-945b-bf71ef793549,ab6f18fe-4ce4-4ecb-945b-bf71ef793549,1,0,57904a00-a127-4add-a9fb-639e17c80e33,57904a00-a127-4add-a9fb-639e17c80e33,1,0,2f2f70b7-8f78-4eee-acb7-fe103827e88a,2f2f70b7-8f78-4eee-acb7-fe103827e88a,1,0,f6e8a922-c28b-49b2-ace5-0c812946270d,f6e8a922-c28b-49b2-ace5-0c812946270d,1,0,3d9d472e-a914-4f76-b087-19d4cfe19c19,3d9d472e-a914-4f76-b087-19d4cfe19c19,1,0,81225721-7e65-451d-9175-76fddc50f0c4,81225721-7e65-451d-9175-76fddc50f0c4,1,0,4a6bfd2c-0690-4504-9952-10e7c31156e9,4a6bfd2c-0690-4504-9952-10e7c31156e9,1,0,8f2dfd13-5e16-4fdd-be02-033d27b43317,8f2dfd13-5e16-4fdd-be02-033d27b43317,1,0,2c3849f2-46cc-4350-a6c5-f5587af2c699,2c3849f2-46cc-4350-a6c5-f5587af2c699,1,0,0110decc-d06e-43cf-9d01-30d412edcdd7,0110decc-d06e-43cf-9d01-30d412edcdd7,1,0,3ea32a24-d37b-4fad-937a-9d1357d649a9,3ea32a24-d37b-4fad-937a-9d1357d649a9,1,0,2856ee9a-0fea-4684-b7b8-4844773eae07,2856ee9a-0fea-4684-b7b8-4844773eae07,1,0,84e09840-8d67-416f-87a2-7f03c04180c9,84e09840-8d67-416f-87a2-7f03c04180c9,1,0,0388f22d-f91d-45c9-a8ae-900a24cbfe67,0388f22d-f91d-45c9-a8ae-900a24cbfe67,1,0,60fa2562-4914-46d6-a00a-1bb6e2803263,60fa2562-4914-46d6-a00a-1bb6e2803263,1,0,0d61a8d4-2dc8-435e-a238-416d7640576f,0d61a8d4-2dc8-435e-a238-416d7640576f,1,0,5ea899d4-e076-4a1c-838c-e369abc4705f,5ea899d4-e076-4a1c-838c-e369abc4705f,1,0,f2bf5f4a-e53b-4300-bbc7-97ac2e06f3c2,f2bf5f4a-e53b-4300-bbc7-97ac2e06f3c2,1,0,ab2e75f0-8da7-4b38-8f30-537424b719db,ab2e75f0-8da7-4b38-8f30-537424b719db,1,0,db344a42-61b8-4544-9aa1-8840ab8a70f0,db344a42-61b8-4544-9aa1-8840ab8a70f0,1,0,bd029e3f-a6bd-4be9-81f3-f3ea84f424ce,bd029e3f-a6bd-4be9-81f3-f3ea84f424ce,1,0,043bd776-5a7b-45ff-8b4a-5eed2bba0054,043bd776-5a7b-45ff-8b4a-5eed2bba0054,1,0,6a708860-e3b6-46ea-bea5-0d3e426c72f6,6a708860-e3b6-46ea-bea5-0d3e426c72f6,1,0,7c9e30d0-4a25-4d1d-a5ad-c48b231f453c,7c9e30d0-4a25-4d1d-a5ad-c48b231f453c,1,0,f53a3a46-edad-4cc0-8814-3755c2ea2c03,f53a3a46-edad-4cc0-8814-3755c2ea2c03,1,0,0a60b201-23f7-483b-ac16-5d270f32344e,0a60b201-23f7-483b-ac16-5d270f32344e,1,0,78058cd3-eb56-483c-96f5-1bf8883abc76,78058cd3-eb56-483c-96f5-1bf8883abc76,1,0,e73bbd28-2b9e-49d1-aa6e-74d9377d1db8,e73bbd28-2b9e-49d1-aa6e-74d9377d1db8,1,0,6f4915cd-cab9-44e6-ba01-02e24b7aeba1,6f4915cd-cab9-44e6-ba01-02e24b7aeba1,1,0,cd1fbfdd-d05e-4c22-aa04-83e9d36fb557,cd1fbfdd-d05e-4c22-aa04-83e9d36fb557,1,0,efd6be72-f98e-4baf-8166-f9f401d547a7,efd6be72-f98e-4baf-8166-f9f401d547a7,1,0,0627989d-55de-4335-943f-4be63f7a06d6,0627989d-55de-4335-943f-4be63f7a06d6,1,0,661fccba-ae03-4762-92d6-e1507973ffb3,661fccba-ae03-4762-92d6-e1507973ffb3,1,0,394abb13-7fe8-4b00-a8e0-ae3941cdb385,394abb13-7fe8-4b00-a8e0-ae3941cdb385,1,0,f58eb52e-2767-4d4f-93d7-922f1d293c4f,f58eb52e-2767-4d4f-93d7-922f1d293c4f,1,0,cb2245e0-f9fe-4571-9fb4-3f8744e60f14,cb2245e0-f9fe-4571-9fb4-3f8744e60f14,1,0,38f3f056-5f03-40c8-91f7-25a74af8fd52,38f3f056-5f03-40c8-91f7-25a74af8fd52,1,0,36e04436-2e6b-4ab9-a0ce-1048482f8fb6,36e04436-2e6b-4ab9-a0ce-1048482f8fb6,1,0,f4b1f17d-d050-4c88-936e-0dd354065a28,f4b1f17d-d050-4c88-936e-0dd354065a28,1,0,29af5a21-4a97-4abe-8b77-6c29b1901e93,29af5a21-4a97-4abe-8b77-6c29b1901e93,1,0,8227aa4a-f331-42a7-b93a-e2a762bc69e4,8227aa4a-f331-42a7-b93a-e2a762bc69e4,1,0,6dd4f085-22c0-4349-9688-9bb999ed6475,6dd4f085-22c0-4349-9688-9bb999ed6475,1,0,2c7614e6-011f-4582-b3af-ace9528cada0,2c7614e6-011f-4582-b3af-ace9528cada0,1,0,93b083af-4b66-4798-86e8-d944beb3f2cc,93b083af-4b66-4798-86e8-d944beb3f2cc,1,0,7bd62ac6-8c6b-417e-ab7b-b4ee3d5608b7,7bd62ac6-8c6b-417e-ab7b-b4ee3d5608b7,1,0,61f56559-b00d-45c2-bb6b-0bc3faac82ce,61f56559-b00d-45c2-bb6b-0bc3faac82ce,1,0,e54bb072-bdec-4594-96fe-f8123db1fee0,e54bb072-bdec-4594-96fe-f8123db1fee0,1,0,3c39794f-355a-430e-a9f9-1d221b1d8ae9,3c39794f-355a-430e-a9f9-1d221b1d8ae9,1,0,79fa67a5-23c5-4bc0-81da-1e4ab6d30443,79fa67a5-23c5-4bc0-81da-1e4ab6d30443,1,0,cf3aeebc-5e44-46e2-a197-1d7f6a51dc13,cf3aeebc-5e44-46e2-a197-1d7f6a51dc13,1,0,ff8dc41e-3f85-4e09-be21-3856c6e5597f,ff8dc41e-3f85-4e09-be21-3856c6e5597f,1,0,2bd86a50-dc01-481e-a44b-8d7d0d5c7308,2bd86a50-dc01-481e-a44b-8d7d0d5c7308,1,0,7b56f878-66a1-4f42-b425-56a4b5fb3997,7b56f878-66a1-4f42-b425-56a4b5fb3997,1,0,a7994208-7282-4ab4-8312-24254c0d8243,a7994208-7282-4ab4-8312-24254c0d8243,1,0,2f3b80b1-4cbf-42ce-862d-1b918b739bf3,2f3b80b1-4cbf-42ce-862d-1b918b739bf3,1,0,267f2bb2-0eba-43c2-bb01-f28d3f163465,267f2bb2-0eba-43c2-bb01-f28d3f163465,1,0,735eb95a-f4a9-4a90-a9a0-ab269b89f4de,735eb95a-f4a9-4a90-a9a0-ab269b89f4de,1,0,49f4a74c-abc2-446f-8f3c-de7bc02d84bf,49f4a74c-abc2-446f-8f3c-de7bc02d84bf,1,0,9d55341b-ceb2-4400-aeb6-3b579d9c6f2b,9d55341b-ceb2-4400-aeb6-3b579d9c6f2b,1,0,ab1efcef-f81b-45e5-893d-56e75c1e0a6f,ab1efcef-f81b-45e5-893d-56e75c1e0a6f,1,0,bbefbf22-6d11-4639-b53e-b72e94ff307c,bbefbf22-6d11-4639-b53e-b72e94ff307c,1,0,dca6a730-8a3f-4b78-926b-2287e21a25a1,dca6a730-8a3f-4b78-926b-2287e21a25a1,1,0,bdec80e6-4aef-4603-98dc-3332abda955c,bdec80e6-4aef-4603-98dc-3332abda955c,1,0,8be7adcd-b49a-4192-9f62-e0b0089b0386,8be7adcd-b49a-4192-9f62-e0b0089b0386,1,0,e4e8e36b-6060-43f3-8b05-bbbf61c3decc,e4e8e36b-6060-43f3-8b05-bbbf61c3decc,1,0,a53447c8-0299-4cf0-a6f9-5a3af423be38,a53447c8-0299-4cf0-a6f9-5a3af423be38,1,0,4f8a2980-bdb4-4a4f-82ec-2822dc1adc49,4f8a2980-bdb4-4a4f-82ec-2822dc1adc49,1,0,91b5a3ca-5f7b-462d-b322-ab8e938add40,91b5a3ca-5f7b-462d-b322-ab8e938add40,1,0,8db8d80c-bf04-4252-8371-46a1dd7e2720,8db8d80c-bf04-4252-8371-46a1dd7e2720,1,0,6fdb4b65-1caf-4472-8135-c6a479bda6d4,6fdb4b65-1caf-4472-8135-c6a479bda6d4,1,0,b5a8b32f-8f8d-4e13-9113-94e66f5c9621,b5a8b32f-8f8d-4e13-9113-94e66f5c9621,1,0,9b8cf6f0-2b56-4954-b982-db18ad78c5ef,9b8cf6f0-2b56-4954-b982-db18ad78c5ef,1,0,1e869478-9bff-4854-9f9c-699b7d1c8faa,1e869478-9bff-4854-9f9c-699b7d1c8faa,1,0,b8fe43d1-b9a7-4ec1-94bd-1e7fad424f8d,b8fe43d1-b9a7-4ec1-94bd-1e7fad424f8d,1,0,f64089ee-72dd-4fcf-8926-31e95c6fcf77,f64089ee-72dd-4fcf-8926-31e95c6fcf77,1,0,5d93aea8-3f41-4e77-bed5-4b2377cbfe0e,5d93aea8-3f41-4e77-bed5-4b2377cbfe0e,1,0,e1e151cc-7b8a-4125-804f-c902a522ed81,e1e151cc-7b8a-4125-804f-c902a522ed81,1,0,f475494e-fe94-4902-b2da-3ade01eba5bb,f475494e-fe94-4902-b2da-3ade01eba5bb,1,0,fbb814b2-cb2f-474d-9c96-5571cef3030e,fbb814b2-cb2f-474d-9c96-5571cef3030e,1,0,4e892154-3279-492c-9eae-124304225c5d,4e892154-3279-492c-9eae-124304225c5d,1,0,53a6ffa4-31f8-4717-9ecc-2852e6e4cce9,53a6ffa4-31f8-4717-9ecc-2852e6e4cce9,1,0,575a135a-6ffd-4ae8-a597-7e584df9bac4,575a135a-6ffd-4ae8-a597-7e584df9bac4,1,0,693a7196-f525-4bd2-a417-e902977f21cb,693a7196-f525-4bd2-a417-e902977f21cb,1,0,9bb39184-08b7-440e-a8f8-5caf0083ba0f,9bb39184-08b7-440e-a8f8-5caf0083ba0f,1,0,f2aa4137-07b6-4fc7-8009-8127762dc698,f2aa4137-07b6-4fc7-8009-8127762dc698,1,0,d48e817e-f6a4-47e5-a052-35d09e066490,d48e817e-f6a4-47e5-a052-35d09e066490,1,0,7bf36370-3761-4fd5-bea5-90fa142a9d57,7bf36370-3761-4fd5-bea5-90fa142a9d57,1,0,3b81427f-cf64-4a5e-adb3-5415d515fecd,3b81427f-cf64-4a5e-adb3-5415d515fecd,1,0,e9f2b604-7181-476d-8b34-3a544cbb353d,e9f2b604-7181-476d-8b34-3a544cbb353d,1,0,73773919-d01c-41dd-bb31-9c66648ac0ff,73773919-d01c-41dd-bb31-9c66648ac0ff,1,0,5d1afad0-3d7e-4214-b52a-72c184490084,5d1afad0-3d7e-4214-b52a-72c184490084,1,0,5f7901a1-f992-42fa-9ddb-d63574da3b56,5f7901a1-f992-42fa-9ddb-d63574da3b56,1,0,26abd45a-12b3-4312-88fb-53c90a6e6679,26abd45a-12b3-4312-88fb-53c90a6e6679,1,0,1541ad74-3e73-4699-bccf-c13313fbedfe,1541ad74-3e73-4699-bccf-c13313fbedfe,1,0,1037ecb7-6819-4ba2-8c93-eccbbdf825be,1037ecb7-6819-4ba2-8c93-eccbbdf825be,1,0,823f925c-b71f-42b1-a71e-0aab823f59c6,823f925c-b71f-42b1-a71e-0aab823f59c6,1,0,1f03420b-0480-451a-9263-8431ff0b0c73,1f03420b-0480-451a-9263-8431ff0b0c73,1,0,2bf547e4-d295-4f69-9dbf-9a9d91b2db98,2bf547e4-d295-4f69-9dbf-9a9d91b2db98,1,0,46506a80-495e-4f06-a191-54ccf5d6cc3f,46506a80-495e-4f06-a191-54ccf5d6cc3f,1,0,b9788ea3-b910-4b5b-96c3-921d62745b6e,b9788ea3-b910-4b5b-96c3-921d62745b6e,1,0,0646de72-49fd-466d-af0f-843bfa527049,0646de72-49fd-466d-af0f-843bfa527049,1,0,3bce82a2-efba-4866-950c-5804853b5fe2,3bce82a2-efba-4866-950c-5804853b5fe2,1,0,ee0e428a-bee7-4169-9b6e-63704f3d1a8e,ee0e428a-bee7-4169-9b6e-63704f3d1a8e,1,0,5fa8756c-871d-460f-b70a-0797de0d5563,5fa8756c-871d-460f-b70a-0797de0d5563,1,0,cc63becf-0e32-48d8-b4c1-430abaa83e9e,cc63becf-0e32-48d8-b4c1-430abaa83e9e,1,0,f46ae351-0ac5-4597-a6a9-1394cd5ec83f,f46ae351-0ac5-4597-a6a9-1394cd5ec83f,1,0,d57f644e-40e5-46a3-874c-5addd52ec3f6,d57f644e-40e5-46a3-874c-5addd52ec3f6,1,0,5ef18079-798a-4924-98a7-8ba4ff13303f,5ef18079-798a-4924-98a7-8ba4ff13303f,1,0,16835f10-559e-420b-9a67-03aac0e947c4,16835f10-559e-420b-9a67-03aac0e947c4,1,0,0292ed74-c47c-4a44-b6db-0e9b6828bec2,0292ed74-c47c-4a44-b6db-0e9b6828bec2,1,0,bfafc36e-2d45-4716-b7be-a89b69575066,bfafc36e-2d45-4716-b7be-a89b69575066,1,0,75cb904b-b3f1-4f0d-85d9-a186262028ff,75cb904b-b3f1-4f0d-85d9-a186262028ff,1,0,82cfb1ad-5ba0-425c-b75e-6281862faec8,82cfb1ad-5ba0-425c-b75e-6281862faec8,1,0,de64596c-a7c1-4d1d-9264-5817e47ab6d3,de64596c-a7c1-4d1d-9264-5817e47ab6d3,1,0,7c3463c8-ea36-415a-8e9d-dc7bd927b9d1,7c3463c8-ea36-415a-8e9d-dc7bd927b9d1,1,0,260f4fb1-02cb-4c32-ba4b-5aa202cd0311,260f4fb1-02cb-4c32-ba4b-5aa202cd0311,1,0,be2b4dba-e77e-4947-bd2f-0710b357ca2a,be2b4dba-e77e-4947-bd2f-0710b357ca2a,1,0,df750e63-50fc-4085-b8b8-f05e4751ff51,df750e63-50fc-4085-b8b8-f05e4751ff51,1,0,86182e9a-89e0-40d7-b2d7-fcd92ee42942,86182e9a-89e0-40d7-b2d7-fcd92ee42942,1,0,091cb921-c7e3-4a5f-97b7-34e625159b9c,091cb921-c7e3-4a5f-97b7-34e625159b9c,1,0,f6118cdd-1dcd-464e-a49d-e95c69466750,f6118cdd-1dcd-464e-a49d-e95c69466750,1,0,39932897-959b-41a6-94ad-61426abfdbd9,39932897-959b-41a6-94ad-61426abfdbd9,1,0,c56ea6f3-1032-4b7a-a20e-e912196da1cd,c56ea6f3-1032-4b7a-a20e-e912196da1cd,1,0,b69b611d-18d3-4e78-8a09-f010bcf9c261,b69b611d-18d3-4e78-8a09-f010bcf9c261,1,0,e8e087c1-9131-4037-8562-8bce8c38f78c,e8e087c1-9131-4037-8562-8bce8c38f78c,1,0,3b1c9126-9b9f-4658-967c-cc9ef5b1000f,3b1c9126-9b9f-4658-967c-cc9ef5b1000f,1,0,6adaef8e-82b6-4664-9748-4f41b170d91a,6adaef8e-82b6-4664-9748-4f41b170d91a,1,0,20d655a7-788c-48bc-83ae-25003106bedb,20d655a7-788c-48bc-83ae-25003106bedb,1,0,7bfb78de-899f-4a4d-a8b2-ebadeccf3921,7bfb78de-899f-4a4d-a8b2-ebadeccf3921,1,0,68a72014-4b2e-4347-aaa7-54d95b8eb919,68a72014-4b2e-4347-aaa7-54d95b8eb919,1,0,379c9295-d0d5-418d-82f3-5ae19985cc53,379c9295-d0d5-418d-82f3-5ae19985cc53,1,0,25830f5b-27e2-4eff-9728-b21eb498727d,25830f5b-27e2-4eff-9728-b21eb498727d,1,0,af02f534-8508-4f9f-bcc1-0c6f3d696971,af02f534-8508-4f9f-bcc1-0c6f3d696971,1,0,dd345cfb-ea0c-4ea8-9b35-22547b000275,dd345cfb-ea0c-4ea8-9b35-22547b000275,1,0,a71d9c41-7510-4d38-90df-1034977b8f45,a71d9c41-7510-4d38-90df-1034977b8f45,1,0,5fed5325-5686-4cc1-9743-eb8b448ea13a,5fed5325-5686-4cc1-9743-eb8b448ea13a,1,0,86a871da-3725-43a1-a7c3-98acd187011b,86a871da-3725-43a1-a7c3-98acd187011b,1,0,2447cfeb-d877-4222-8ac2-b0026b85f932,2447cfeb-d877-4222-8ac2-b0026b85f932,1,0,fb94e9cb-1f27-42a6-a701-18bbe5888e70,fb94e9cb-1f27-42a6-a701-18bbe5888e70,1,0,2e26e32e-a0c6-4460-99de-865622202166,2e26e32e-a0c6-4460-99de-865622202166,1,0,c9489a6e-45af-4877-9788-158071571a0a,c9489a6e-45af-4877-9788-158071571a0a,1,0,23959912-f8fc-42bc-9ec2-1d520ebc5dad,23959912-f8fc-42bc-9ec2-1d520ebc5dad,1,0,4770398f-8013-4d43-93ce-ec1165e40c4e,4770398f-8013-4d43-93ce-ec1165e40c4e,1,0,9a706997-90cb-430d-972c-d2bad87c4a79,9a706997-90cb-430d-972c-d2bad87c4a79,1,0,6f661660-b9c4-41d4-99a8-e08006cfe9c8,6f661660-b9c4-41d4-99a8-e08006cfe9c8,1,0,199e79fa-54d6-4748-aaaa-9c55283582a3,199e79fa-54d6-4748-aaaa-9c55283582a3,1,0,5ef026c2-2ef4-45d6-9792-5ba0d298714b,5ef026c2-2ef4-45d6-9792-5ba0d298714b,1,0,45d61391-4cf7-4f45-8775-ada582c42400,45d61391-4cf7-4f45-8775-ada582c42400,1,0,78b2a913-2ab9-455d-85a3-504f0f468468,78b2a913-2ab9-455d-85a3-504f0f468468,1,0,8c7e1080-fbb2-4a9c-b740-b3e9eb996565,8c7e1080-fbb2-4a9c-b740-b3e9eb996565,1,0,560b5b12-4dee-4c69-ab6b-7680757a2797,560b5b12-4dee-4c69-ab6b-7680757a2797,1,0,3cfb1ce0-de42-4914-85c0-807d0c10f77e,3cfb1ce0-de42-4914-85c0-807d0c10f77e,1,0,a27244c2-ac65-423f-afce-42efd288a83d,a27244c2-ac65-423f-afce-42efd288a83d,1,0,d4002184-8e08-4dcc-9070-62f595e82e23,d4002184-8e08-4dcc-9070-62f595e82e23,1,0,62163fda-1a09-4d4f-b290-76ff324042ab,62163fda-1a09-4d4f-b290-76ff324042ab,1,0,f2816dd2-47dd-41e8-9709-6dac1e4f4d21,f2816dd2-47dd-41e8-9709-6dac1e4f4d21,1,0,6e6a1557-06fa-45c0-ad98-c43809553cd7,6e6a1557-06fa-45c0-ad98-c43809553cd7,1,0,179f7436-e328-42b8-9382-19ee6f10c768,179f7436-e328-42b8-9382-19ee6f10c768,1,0,2093344a-47d4-43ac-98df-29c4dff7fca9,2093344a-47d4-43ac-98df-29c4dff7fca9,1,0,3343cb0c-0f80-4ef9-9871-3db9f2299186,3343cb0c-0f80-4ef9-9871-3db9f2299186,1,0,791d7289-b188-4120-a5f5-f5eb1fd675bf,791d7289-b188-4120-a5f5-f5eb1fd675bf,1,0,e996d749-1aa5-4fe5-b87b-3d8d06144d93,e996d749-1aa5-4fe5-b87b-3d8d06144d93,1,0,6613153f-4f81-4bac-8144-7562cce67f55,6613153f-4f81-4bac-8144-7562cce67f55,1,0,488ce902-b60e-4255-8aec-92dafd1d5dd0,488ce902-b60e-4255-8aec-92dafd1d5dd0,1,0,411779cc-de2c-4731-acc0-631a01367eb5,411779cc-de2c-4731-acc0-631a01367eb5,1,0,30794af1-3180-4ed5-b11d-ca139acb22fa,30794af1-3180-4ed5-b11d-ca139acb22fa,1,0,39aeb27d-62d2-480a-aa6b-33e2363194d1,39aeb27d-62d2-480a-aa6b-33e2363194d1,1,0,e69be74a-0e2c-4a7b-8814-ab15ab28f948,e69be74a-0e2c-4a7b-8814-ab15ab28f948,1,0,60410722-dca9-4c3a-a9c4-33fcd45fe584,60410722-dca9-4c3a-a9c4-33fcd45fe584,1,0,3f200f5a-01bd-4304-9c57-18703cac9ec9,3f200f5a-01bd-4304-9c57-18703cac9ec9,1,0,aa89881f-f111-4384-911c-847b04bb56dd,aa89881f-f111-4384-911c-847b04bb56dd,1,0,444d9e3b-c702-4ad6-a929-a220eff0f6e7,444d9e3b-c702-4ad6-a929-a220eff0f6e7,1,0,022c4519-1cdb-45b6-a699-89fd6688999c,022c4519-1cdb-45b6-a699-89fd6688999c,1,0,fb5b79a2-caec-4c6e-a112-27e78a184d5e,fb5b79a2-caec-4c6e-a112-27e78a184d5e,1,0,fa523958-ce1e-42e1-ae00-2dcb401b7eda,fa523958-ce1e-42e1-ae00-2dcb401b7eda,1,0,1518bca2-a004-4566-8991-7c60e6745a49,1518bca2-a004-4566-8991-7c60e6745a49,1,0,ed8618e2-3ce6-4956-856a-9f40279b4da6,ed8618e2-3ce6-4956-856a-9f40279b4da6,1,0,733f6bc2-544d-4fac-bca8-11b981b95a03,733f6bc2-544d-4fac-bca8-11b981b95a03,1,0,3d140a17-40b4-46a7-a846-78f2f77d49f2,3d140a17-40b4-46a7-a846-78f2f77d49f2,1,0,965646a5-5e5b-49cd-864a-c3870844cfdb,965646a5-5e5b-49cd-864a-c3870844cfdb,1,0,27c88cf7-c0ed-44af-bb70-f14269ce1e87,27c88cf7-c0ed-44af-bb70-f14269ce1e87,1,0,0333cd9e-392d-40b2-869d-ad47119e0384,0333cd9e-392d-40b2-869d-ad47119e0384,1,0,82cc8820-0b92-4bb7-b097-7ac79e922f01,82cc8820-0b92-4bb7-b097-7ac79e922f01,1,0,25451a36-c842-44a5-94f4-7e540050b825,25451a36-c842-44a5-94f4-7e540050b825,1,0,8e0340c9-6469-4fc9-b19a-4be4e0e6ee82,8e0340c9-6469-4fc9-b19a-4be4e0e6ee82,1,0,f2267d6c-6972-4621-b677-87798056363b,f2267d6c-6972-4621-b677-87798056363b,1,0,243d201b-3714-4700-b410-c74c9093e6f6,243d201b-3714-4700-b410-c74c9093e6f6,1,0,e1e9862e-c87b-400f-bca1-b1380cb98ddc,e1e9862e-c87b-400f-bca1-b1380cb98ddc,1,0,de3cb50c-ef99-419e-b922-c6a453da6a5b,de3cb50c-ef99-419e-b922-c6a453da6a5b,1,0,d4ca4802-756a-494c-bab3-e77e0777a3fa,d4ca4802-756a-494c-bab3-e77e0777a3fa,1,0,134c1054-8d65-405f-ba3b-5beeca803a72,134c1054-8d65-405f-ba3b-5beeca803a72,1,0,cfa1669b-5310-4171-83fd-4dff3c6ac345,cfa1669b-5310-4171-83fd-4dff3c6ac345,1,0,9ec26d14-b09d-4fd7-9c43-062c0120cf3d,9ec26d14-b09d-4fd7-9c43-062c0120cf3d,1,0,aec7df6a-21a1-495d-b0a9-3769e1069888,aec7df6a-21a1-495d-b0a9-3769e1069888,1,0,463b98bf-b4d4-4edb-995d-0a75ff29b60d,463b98bf-b4d4-4edb-995d-0a75ff29b60d,1,0,317f88a7-12a4-4d21-b637-3050525406f4,317f88a7-12a4-4d21-b637-3050525406f4,1,0,2d9d2319-68fb-436d-b431-98858b88a75a,2d9d2319-68fb-436d-b431-98858b88a75a,1,0,9016988e-1aea-460a-b5eb-644dc5923d87,9016988e-1aea-460a-b5eb-644dc5923d87,1,0,8593c908-9f6f-42df-9fd4-e41ccffba315,8593c908-9f6f-42df-9fd4-e41ccffba315,1,0,d6eb3484-b0ab-40e3-aa95-c18a40259f77,d6eb3484-b0ab-40e3-aa95-c18a40259f77,1,0,08ec3f2e-e523-4e37-8d44-fbc52c66263c,08ec3f2e-e523-4e37-8d44-fbc52c66263c,1,0,7300e566-06ea-42a3-b046-477ee9883559,7300e566-06ea-42a3-b046-477ee9883559,1,0,72ef831d-9d37-4b7f-8b71-fb9dd0ab6038,72ef831d-9d37-4b7f-8b71-fb9dd0ab6038,1,0,a0ff40b4-5815-445e-ad67-f524dfa3aaa7,a0ff40b4-5815-445e-ad67-f524dfa3aaa7,1,0,4d7ef262-8449-4511-a408-e5d322ce3d78,4d7ef262-8449-4511-a408-e5d322ce3d78,1,0,3f8130d4-12b2-4a2b-8f75-9ca8289624c8,3f8130d4-12b2-4a2b-8f75-9ca8289624c8,1,0,02877723-66fb-4984-b760-511d1c6c29f0,02877723-66fb-4984-b760-511d1c6c29f0,1,0,ec0bc645-5abf-423f-a517-2aa7adf9044c,ec0bc645-5abf-423f-a517-2aa7adf9044c,1,0,d8430167-5d4e-4603-9797-36781210cdff,d8430167-5d4e-4603-9797-36781210cdff,1,0,c4b3f94d-6f5f-457b-a425-56c0f745c75f,c4b3f94d-6f5f-457b-a425-56c0f745c75f,1,0,0db78226-37d0-4016-b4c9-5134af1aabc7,0db78226-37d0-4016-b4c9-5134af1aabc7,1,0,8d6b4d23-a260-4352-9975-c13ce3e05220,8d6b4d23-a260-4352-9975-c13ce3e05220,1,0,e0be0bc7-def6-4ae9-9a33-9689aa829b5e,e0be0bc7-def6-4ae9-9a33-9689aa829b5e,1,0,97d4ffd0-07ef-4dc2-8fbc-449c3c8453ef,97d4ffd0-07ef-4dc2-8fbc-449c3c8453ef,1,0,6f5ac40b-ea22-47cf-acf2-614406669a72,6f5ac40b-ea22-47cf-acf2-614406669a72,1,0,b6caaa9e-a9d1-4519-a61f-7fa0ab0ff201,b6caaa9e-a9d1-4519-a61f-7fa0ab0ff201,1,0,488d2644-6fef-488a-af38-40f59c0e0d8c,488d2644-6fef-488a-af38-40f59c0e0d8c,1,0,5d76a28c-5d6c-49cb-8b91-2527e8d06aba,5d76a28c-5d6c-49cb-8b91-2527e8d06aba,1,0,688d86cd-1044-4b77-bb63-2c05aaafbcd0,688d86cd-1044-4b77-bb63-2c05aaafbcd0,1,0,f1efef30-8651-4728-becd-abe3f9026a43,f1efef30-8651-4728-becd-abe3f9026a43,1,0,c2612e22-4f0d-4713-b4eb-decd9780d088,c2612e22-4f0d-4713-b4eb-decd9780d088,1,0,11b1410f-8e14-4b2f-8890-177f4875020e,11b1410f-8e14-4b2f-8890-177f4875020e,1,0,2276b2b0-1705-4014-956f-5087e9dd5c1e,2276b2b0-1705-4014-956f-5087e9dd5c1e,1,0,f72b9d4b-7196-45a3-9349-e32fc91e875a,f72b9d4b-7196-45a3-9349-e32fc91e875a,1,0,6c509dcc-4529-4ac3-86fe-26f807991b1c,6c509dcc-4529-4ac3-86fe-26f807991b1c,1,0,529c8887-f691-4ba8-aeaf-937858d61c30,529c8887-f691-4ba8-aeaf-937858d61c30,1,0,43435d30-8c25-4757-9a29-9173415959ff,43435d30-8c25-4757-9a29-9173415959ff,1,0,4aef5419-7cf5-4443-b773-9273c983844f,4aef5419-7cf5-4443-b773-9273c983844f,1,0,b090cfa5-1bd8-43aa-84d6-6e04375c4b57,b090cfa5-1bd8-43aa-84d6-6e04375c4b57,1,0,9378d484-2143-45eb-a71e-651055611789,9378d484-2143-45eb-a71e-651055611789,1,0,a2d24b4d-6039-49ab-8cc2-14d03a2d5546,a2d24b4d-6039-49ab-8cc2-14d03a2d5546,1,0,c5d0eafb-469e-4a24-8b5e-ce25fb627d3d,c5d0eafb-469e-4a24-8b5e-ce25fb627d3d,1,0,2bb5c23c-ad87-4b66-b766-d2e3f82715bd,2bb5c23c-ad87-4b66-b766-d2e3f82715bd,1,0,d01871bb-492e-4ab8-ada9-e9d8ec1adbce,d01871bb-492e-4ab8-ada9-e9d8ec1adbce,1,0,dd931c85-8c19-42a8-a39e-7af0c5bd346c,dd931c85-8c19-42a8-a39e-7af0c5bd346c,1,0,4fa153eb-1efb-43e5-ac09-e5431d4800df,4fa153eb-1efb-43e5-ac09-e5431d4800df,1,0,ada760f3-6a9f-4b81-afc1-98eb164af747,ada760f3-6a9f-4b81-afc1-98eb164af747,1,0,262dea64-4ccd-4b97-ac7e-ec1dbdd9ac98,262dea64-4ccd-4b97-ac7e-ec1dbdd9ac98,1,0,8a0d4f7f-7a80-4e5d-8238-05fc169e0319,8a0d4f7f-7a80-4e5d-8238-05fc169e0319,1,0,8e9f9baf-8d12-46cc-915f-f6f290af5512,8e9f9baf-8d12-46cc-915f-f6f290af5512,1,0,a8e14d2e-911d-4096-9027-deb7a08838e0,a8e14d2e-911d-4096-9027-deb7a08838e0,1,0,c51d8ae2-66fe-4052-8ee4-980855b1f90c,c51d8ae2-66fe-4052-8ee4-980855b1f90c,1,0,27610803-846f-40bd-b817-f73708f1fdb7,27610803-846f-40bd-b817-f73708f1fdb7,1,0,4e2a3873-0317-44be-8dbb-e4cefc0361a8,4e2a3873-0317-44be-8dbb-e4cefc0361a8,1,0,5808331f-9ab4-4a23-a592-1f65087f3214,5808331f-9ab4-4a23-a592-1f65087f3214,1,0,9316738d-3d38-4068-818e-a001355b19fb,9316738d-3d38-4068-818e-a001355b19fb,1,0,d86d766f-021a-4c11-b9e8-403af08918cc,d86d766f-021a-4c11-b9e8-403af08918cc,1,0,2cedfef0-5d93-475a-b2dd-ee36e553e6e1,2cedfef0-5d93-475a-b2dd-ee36e553e6e1,1,0,29200d04-d7da-435a-89e6-858c11a1a98c,29200d04-d7da-435a-89e6-858c11a1a98c,1,0,8e5f6c70-04b3-46a1-94ef-82c9f6019f8f,8e5f6c70-04b3-46a1-94ef-82c9f6019f8f,1,0,6c119ef2-d24b-4c3d-ad07-611bed89cab1,6c119ef2-d24b-4c3d-ad07-611bed89cab1,1,0,13b1cb1f-88df-4ff8-b4cc-0473e4f96005,13b1cb1f-88df-4ff8-b4cc-0473e4f96005,1,0,0e861ad8-6fa3-4b0f-a9b0-6c91df1dfc6b,0e861ad8-6fa3-4b0f-a9b0-6c91df1dfc6b,1,0,27df6c22-85d7-4cb6-be19-82af76c84bf9,27df6c22-85d7-4cb6-be19-82af76c84bf9,1,0,d5b23aac-ea1c-497e-bed7-8685bb682e36,d5b23aac-ea1c-497e-bed7-8685bb682e36,1,0,6da15163-dd4c-4981-82e8-ad3bd2f516aa,6da15163-dd4c-4981-82e8-ad3bd2f516aa,1,0,e3000fff-aaba-4396-8026-768108ea8f2b,e3000fff-aaba-4396-8026-768108ea8f2b,1,0,c49054f1-3a96-4bf1-917e-f11407c67b5b,c49054f1-3a96-4bf1-917e-f11407c67b5b,1,0,01ede889-689f-45f3-b9a3-5e4c1188bea1,01ede889-689f-45f3-b9a3-5e4c1188bea1,1,0,a05f99a4-c764-4283-9fbb-6e641c3a15ae,a05f99a4-c764-4283-9fbb-6e641c3a15ae,1,0,cbe31324-feba-4137-9b82-b1b2afbcfb9d,cbe31324-feba-4137-9b82-b1b2afbcfb9d,1,0,03e80316-735f-4087-afe9-218d41dce028,03e80316-735f-4087-afe9-218d41dce028,1,0,eca391b3-ee95-47ab-a3d6-a80c745f99e7,eca391b3-ee95-47ab-a3d6-a80c745f99e7,1,0,b3035b26-9ead-4082-90b0-7dd61b4a6990,b3035b26-9ead-4082-90b0-7dd61b4a6990,1,0,cd68ac77-8df5-42d4-b729-da73cae0a78b,cd68ac77-8df5-42d4-b729-da73cae0a78b,1,0,1fc05949-c1ba-4363-8353-6902bc041021,1fc05949-c1ba-4363-8353-6902bc041021,1,0,d6e61d59-fe83-4a9e-aa15-e072a39fd8fd,d6e61d59-fe83-4a9e-aa15-e072a39fd8fd,1,0,c2bd9967-76bb-4291-928b-6ef463be9666,c2bd9967-76bb-4291-928b-6ef463be9666,1,0,a865b603-d062-4c0f-8ce7-a6a746aa96d5,a865b603-d062-4c0f-8ce7-a6a746aa96d5,1,0,f8460057-d4e6-4075-8ed1-6e9f5b65f68d,f8460057-d4e6-4075-8ed1-6e9f5b65f68d,1,0,614fc08c-78b6-4d49-9488-05fcf9b76d58,614fc08c-78b6-4d49-9488-05fcf9b76d58,1,0,d983cae8-edbb-4f26-9c0a-2f701cb11046,d983cae8-edbb-4f26-9c0a-2f701cb11046,1,0,40e2fb30-bb03-4178-a8eb-ddf48337ef23,40e2fb30-bb03-4178-a8eb-ddf48337ef23,1,0,1026fbcb-acd8-40dc-b638-6e02c6378c55,1026fbcb-acd8-40dc-b638-6e02c6378c55,1,0,dc9e2ba6-f4f1-493f-9054-cac633f239dd,dc9e2ba6-f4f1-493f-9054-cac633f239dd,1,0,7b95d0b1-c7b2-43b4-9119-320cb8912032,7b95d0b1-c7b2-43b4-9119-320cb8912032,1,0,004582b7-00aa-405e-8e24-ce76c945edae,004582b7-00aa-405e-8e24-ce76c945edae,1,0,97a9b005-a836-4308-8e63-0e00f6890baa,97a9b005-a836-4308-8e63-0e00f6890baa,1,0,98c34ada-0b78-41db-9183-6d7b9e466bde,98c34ada-0b78-41db-9183-6d7b9e466bde,1,0,fb688339-918e-40a1-8721-a26f3077973e,fb688339-918e-40a1-8721-a26f3077973e,1,0,1f56de63-81eb-4de5-ad20-01cb6f84e5b0,1f56de63-81eb-4de5-ad20-01cb6f84e5b0,1,0,dea1f169-5426-4623-9e5e-3c8c2360858f,dea1f169-5426-4623-9e5e-3c8c2360858f,1,0,039b1cc5-a831-41fb-933a-b9c0fb9c9f55,039b1cc5-a831-41fb-933a-b9c0fb9c9f55,1,0,4dea2614-6251-45c3-9abe-34b7595c71a2,4dea2614-6251-45c3-9abe-34b7595c71a2,1,0,e31cfba9-0f49-485f-8d6f-797b32667642,e31cfba9-0f49-485f-8d6f-797b32667642,1,0,de183413-490a-4266-95fa-ea0057adeee3,de183413-490a-4266-95fa-ea0057adeee3,1,0,fd81a8df-0f9f-4543-a35c-0cb1bb804b5b,fd81a8df-0f9f-4543-a35c-0cb1bb804b5b,1,0,129f7771-7285-4842-a139-ca927d086184,129f7771-7285-4842-a139-ca927d086184,1,0,b50f3157-3c3a-4553-a16a-7fcd660e2824,b50f3157-3c3a-4553-a16a-7fcd660e2824,1,0,895aea8f-4c4e-44e5-b720-0a2e683191b3,895aea8f-4c4e-44e5-b720-0a2e683191b3,1,0,a3b14a36-049d-4f94-bafc-cf7b874f9bf0,a3b14a36-049d-4f94-bafc-cf7b874f9bf0,1,0,6c954862-62d0-4901-8448-ea62a1174660,6c954862-62d0-4901-8448-ea62a1174660,1,0,19858faf-2bc5-4cfb-b258-cb101ab66e87,19858faf-2bc5-4cfb-b258-cb101ab66e87,1,0,308358bc-773a-43fa-adff-dcc5884a2bd4,308358bc-773a-43fa-adff-dcc5884a2bd4,1,0,ed541a1c-a842-40a9-b357-612db71ec32c,ed541a1c-a842-40a9-b357-612db71ec32c,1,0,b0e37495-7d9e-41d0-8225-652f9ac328cf,b0e37495-7d9e-41d0-8225-652f9ac328cf,1,0,3bd2e1c8-9ef3-449b-acf6-397b90669c49,3bd2e1c8-9ef3-449b-acf6-397b90669c49,1,0,cb334191-2ff3-439e-bdaf-4b8fe6561c3b,cb334191-2ff3-439e-bdaf-4b8fe6561c3b,1,0,5f3a30b0-1ba8-423c-9bc2-f9a87cafe818,5f3a30b0-1ba8-423c-9bc2-f9a87cafe818,1,0,766d8852-3bb4-4a6c-81c0-911722af4e8e,766d8852-3bb4-4a6c-81c0-911722af4e8e,1,0,54bfe81c-06b2-45a8-8bc1-bd22240cfe32,54bfe81c-06b2-45a8-8bc1-bd22240cfe32,1,0,46f71ecc-5cee-4b8d-9f6d-d38a86787a76,46f71ecc-5cee-4b8d-9f6d-d38a86787a76,1,0,b896cd10-5da4-4c90-b2cf-5b98bd173122,b896cd10-5da4-4c90-b2cf-5b98bd173122,1,0,216410ad-91e5-4c41-b08b-905faa830410,216410ad-91e5-4c41-b08b-905faa830410,1,0,df2bf85a-9e42-40d2-ae10-d8f5dbf06e61,df2bf85a-9e42-40d2-ae10-d8f5dbf06e61,1,0,1e0a3a73-3fd9-43f7-8ee5-e54565264232,1e0a3a73-3fd9-43f7-8ee5-e54565264232,1,0,0f4de605-5df9-4bb9-92e8-f37c6903396e,0f4de605-5df9-4bb9-92e8-f37c6903396e,1,0,66c8a1f2-248d-4b2a-b427-38fb4f63410a,66c8a1f2-248d-4b2a-b427-38fb4f63410a,1,0,a4b3ed40-b440-49f4-ab22-53fdad8c66c6,a4b3ed40-b440-49f4-ab22-53fdad8c66c6,1,0,f6dae699-06eb-41ef-878b-3fdfe1b1f213,f6dae699-06eb-41ef-878b-3fdfe1b1f213,1,0,fe6de86a-54c9-4ae2-9f17-cfce38b7b560,fe6de86a-54c9-4ae2-9f17-cfce38b7b560,1,0,9ba59a76-ed54-4d17-83f1-f315a5722a1e,9ba59a76-ed54-4d17-83f1-f315a5722a1e,1,0,a680795f-a870-4642-b45d-12ed24a12395,a680795f-a870-4642-b45d-12ed24a12395,1,0,54936c70-5a08-40fa-8f85-da07dd6a29ec,54936c70-5a08-40fa-8f85-da07dd6a29ec,1,0,8d8f40e2-9897-425e-b08e-58bf46566c30,8d8f40e2-9897-425e-b08e-58bf46566c30,1,0,1bab3154-9f5c-402b-93ae-5da019e96d2b,1bab3154-9f5c-402b-93ae-5da019e96d2b,1,0,5c802dcc-411e-4413-ad88-465127ad0004,5c802dcc-411e-4413-ad88-465127ad0004,1,0,abf392d3-9ded-4dcd-9490-14b6a05329b7,abf392d3-9ded-4dcd-9490-14b6a05329b7,1,0,8e760cb3-50bb-4e19-8887-da538aebef07,8e760cb3-50bb-4e19-8887-da538aebef07,1,0,22db835c-014c-4ff0-90ef-0654e250ff77,22db835c-014c-4ff0-90ef-0654e250ff77,1,0,a81aa069-c1b5-4096-ac8d-660eb0de3561,a81aa069-c1b5-4096-ac8d-660eb0de3561,1,0,8efcb583-4088-4e2d-8ad6-0f3abba7cbb5,8efcb583-4088-4e2d-8ad6-0f3abba7cbb5,1,0,9717140f-0721-47b0-8cab-a9a5dfefad9d,9717140f-0721-47b0-8cab-a9a5dfefad9d,1,0,ebe6f782-635b-457a-bfaa-5b78ac44584b,ebe6f782-635b-457a-bfaa-5b78ac44584b,1,0,644d553d-8286-420a-aa6a-b9c8a2be896f,644d553d-8286-420a-aa6a-b9c8a2be896f,1,0,8842c0e3-2e20-4f37-ae7c-f5449004994b,8842c0e3-2e20-4f37-ae7c-f5449004994b,1,0,5b2cc44b-69cb-495c-a26b-003a495df40b,5b2cc44b-69cb-495c-a26b-003a495df40b,1,0,30250d93-10ff-45c9-920b-5fed3f9d8093,30250d93-10ff-45c9-920b-5fed3f9d8093,1,0,ecaba9aa-fca7-42f5-a4fe-d8176cf875b9,ecaba9aa-fca7-42f5-a4fe-d8176cf875b9,1,0,4378ab20-5467-476b-8f04-4b6876efdee6,4378ab20-5467-476b-8f04-4b6876efdee6,1,0,55e47901-c79c-41c5-9d7f-6b6846ed2782,55e47901-c79c-41c5-9d7f-6b6846ed2782,1,0,911f8810-e96e-4f02-9377-47e49919f87e,911f8810-e96e-4f02-9377-47e49919f87e,1,0,cde46d6d-9f8a-45b6-98a7-9411030ccd72,cde46d6d-9f8a-45b6-98a7-9411030ccd72,1,0,ff1a4c30-03ff-4bdd-9df2-a2579aeb4157,ff1a4c30-03ff-4bdd-9df2-a2579aeb4157,1,0,224b9439-4b30-4b64-8edf-e7718ee90a7d,224b9439-4b30-4b64-8edf-e7718ee90a7d,1,0,74dc2374-daf1-4a8a-ba10-d3aced96af3b,74dc2374-daf1-4a8a-ba10-d3aced96af3b,1,0,15f1a3a8-5d42-486d-95f9-3d43ff1d5d56,15f1a3a8-5d42-486d-95f9-3d43ff1d5d56,1,0,e28e953f-93b3-4d4d-9ee4-c56df26037eb,e28e953f-93b3-4d4d-9ee4-c56df26037eb,1,0,578e0fd2-997c-437a-befc-33d128097a7e,578e0fd2-997c-437a-befc-33d128097a7e,1,0,14089231-31a8-4471-b85b-064836794ff3,14089231-31a8-4471-b85b-064836794ff3,1,0,014de276-fb2f-4deb-873f-475729be0f66,014de276-fb2f-4deb-873f-475729be0f66,1,0,40a60ff7-96ca-485b-a2d9-640a208a7de6,40a60ff7-96ca-485b-a2d9-640a208a7de6,1,0,03e6caa4-eaa2-43aa-bdd1-768f9cce7848,03e6caa4-eaa2-43aa-bdd1-768f9cce7848,1,0,ac028c56-b2a8-4a9b-a325-554c636f838e,ac028c56-b2a8-4a9b-a325-554c636f838e,1,0,0ed85f4c-c002-49b6-99b9-0c3c4b7f940e,0ed85f4c-c002-49b6-99b9-0c3c4b7f940e,1,0,f99e98ac-cd94-4989-8c02-ef8b323c6815,f99e98ac-cd94-4989-8c02-ef8b323c6815,1,0,e2562347-4549-4111-862e-86c20a6daade,e2562347-4549-4111-862e-86c20a6daade,1,0,b270fc64-15c6-41ed-ad09-44c833ca7c41,b270fc64-15c6-41ed-ad09-44c833ca7c41,1,0,4c3312fd-5613-4e9b-ae7c-572fa1887ded,4c3312fd-5613-4e9b-ae7c-572fa1887ded,1,0,6c8c9618-287a-41ab-890c-60250925ad52,6c8c9618-287a-41ab-890c-60250925ad52,1,0,55b9650e-098b-4d44-9fb5-d525b46f014b,55b9650e-098b-4d44-9fb5-d525b46f014b,1,0,5b7b32ec-3d0e-42e9-bd13-5d2b8cc1942d,5b7b32ec-3d0e-42e9-bd13-5d2b8cc1942d,1,0,bc55dc06-a769-40be-9c99-0794bdd2dbea,bc55dc06-a769-40be-9c99-0794bdd2dbea,1,0,feb5f490-e791-11e6-508c-a8667f21fde4,feb5f490-e791-11e6-508c-a8667f21fde4,1,0,7861e179-96d2-422f-a7c2-b38b59074956,7861e179-96d2-422f-a7c2-b38b59074956,1,0,0b2416bc-f322-45b3-8c3f-2c8a206c55a1,0b2416bc-f322-45b3-8c3f-2c8a206c55a1,1,0,6962f838-e792-11e6-508c-a8667f21fde4,6962f838-e792-11e6-508c-a8667f21fde4,1,0,3797b4c6-e336-4cbe-8d0b-0902e1247b42,3797b4c6-e336-4cbe-8d0b-0902e1247b42,1,0,67ebc493-d29a-4614-890a-feb8b5bd884b,67ebc493-d29a-4614-890a-feb8b5bd884b,1,0,dc79e5e2-37d1-4f19-9500-15c1d9be10eb,dc79e5e2-37d1-4f19-9500-15c1d9be10eb,1,0,dba6cb38-79c6-4060-87c5-a993548f36c4,dba6cb38-79c6-4060-87c5-a993548f36c4,1,0,6b44227a-e226-4bcb-8638-06b49f830669,6b44227a-e226-4bcb-8638-06b49f830669,1,0,f2406400-87e9-4df2-bcd3-8f1e3ad62088,f2406400-87e9-4df2-bcd3-8f1e3ad62088,1,0,4f2b6bf8-e792-11e6-508c-a8667f21fde4,4f2b6bf8-e792-11e6-508c-a8667f21fde4,1,0,ecaacedb-bf2d-4736-a9e1-fa89cda85ee6,ecaacedb-bf2d-4736-a9e1-fa89cda85ee6,1,0,a5623e87-3102-4521-b4ab-c41bf2403a1a,a5623e87-3102-4521-b4ab-c41bf2403a1a,1,0,599b1692-5f4e-42ef-ae1a-822ff527a415,599b1692-5f4e-42ef-ae1a-822ff527a415,1,0,ee9abe8a-b3a2-48a9-9157-ea537e83b7e7,ee9abe8a-b3a2-48a9-9157-ea537e83b7e7,1,0,4bb7372a-87a9-426e-b09f-fc0110455b10,4bb7372a-87a9-426e-b09f-fc0110455b10,1,0,ac853a0f-c185-4cdb-9f09-c921770937b5,ac853a0f-c185-4cdb-9f09-c921770937b5,1,0,920a7940-4d12-476d-a909-2231787839a9,920a7940-4d12-476d-a909-2231787839a9,1,0,168fce48-2413-45fc-ad21-9b465121d81b,168fce48-2413-45fc-ad21-9b465121d81b,1,0,d65c8992-aabc-4b67-9893-01862231ebe1,d65c8992-aabc-4b67-9893-01862231ebe1,1,0,23f70675-6a05-4b50-ad68-c55ddc93e857,23f70675-6a05-4b50-ad68-c55ddc93e857,1,0,b3aeeb3c-622d-4e0c-8c13-199f0e431a7d,b3aeeb3c-622d-4e0c-8c13-199f0e431a7d,1,0,ad14c4d1-bc11-44b6-a32c-c00fb89a9ea5,ad14c4d1-bc11-44b6-a32c-c00fb89a9ea5,1,0,83c860a2-d0d7-4b7c-a127-78d86b155cfa,83c860a2-d0d7-4b7c-a127-78d86b155cfa,1,0,06e45039-8bc4-44dd-8a93-2cec34ad51ee,06e45039-8bc4-44dd-8a93-2cec34ad51ee,1,0,46e01647-cbdd-4387-affc-29b92ede8644,46e01647-cbdd-4387-affc-29b92ede8644,1,0,faa44953-118b-4027-a913-c485bca7a93f,faa44953-118b-4027-a913-c485bca7a93f,1,0,c9bd0dcd-98ec-4dc9-869a-e735fd269046,c9bd0dcd-98ec-4dc9-869a-e735fd269046,1,0,d039bfa4-39a0-43d4-ab6a-0697f9d2b375,d039bfa4-39a0-43d4-ab6a-0697f9d2b375,1,0,09072c75-75c7-4050-b674-9454558a1f87,09072c75-75c7-4050-b674-9454558a1f87,1,0,f0c8d2d2-d597-4f09-8257-0fa7524f1e44,f0c8d2d2-d597-4f09-8257-0fa7524f1e44,1,0,3e2f75ab-4143-48ca-83db-3006cb2a8584,3e2f75ab-4143-48ca-83db-3006cb2a8584,1,0,91a82492-5e27-46b6-b1a8-48e89a437715,91a82492-5e27-46b6-b1a8-48e89a437715,1,0,53bc7bfd-8786-464f-a615-ceae2971cbc9,53bc7bfd-8786-464f-a615-ceae2971cbc9,1,0,aa77817b-bd2f-4757-99b0-5e67a1b032d3,aa77817b-bd2f-4757-99b0-5e67a1b032d3,1,0,8cc27936-976d-4f31-91c6-644d15b69c55,8cc27936-976d-4f31-91c6-644d15b69c55,1,0,cf9de063-89f4-4632-b7a1-0cfbea6df643,cf9de063-89f4-4632-b7a1-0cfbea6df643,1,0,ee3bab2c-bd6a-4a33-89a2-78b4dd89bb88,ee3bab2c-bd6a-4a33-89a2-78b4dd89bb88,1,0,2478fb43-57a3-4348-b3d4-61f015e4e231,2478fb43-57a3-4348-b3d4-61f015e4e231,1,0,daa99b45-b2d2-47bc-9d7e-2d21b1a3dfd8,daa99b45-b2d2-47bc-9d7e-2d21b1a3dfd8,1,0,0449c160-01e5-4fe4-8759-5b93c484b467,0449c160-01e5-4fe4-8759-5b93c484b467,1,0,0684e4ba-28c7-4032-a43f-a3a4a37ec50b,0684e4ba-28c7-4032-a43f-a3a4a37ec50b,1,0,bcac012d-b4a9-49bb-9c54-722c741d183c,bcac012d-b4a9-49bb-9c54-722c741d183c,1,0,5370d079-975f-4f7c-95c3-7868147ecc76,5370d079-975f-4f7c-95c3-7868147ecc76,1,0,4dd66f76-e4e0-4f84-9fad-bb922cd51503,4dd66f76-e4e0-4f84-9fad-bb922cd51503,1,0,e76a411a-121b-4791-a785-dd54795eaa7f,e76a411a-121b-4791-a785-dd54795eaa7f,1,0,66844ae3-f098-462c-aef8-1fd38c403760,66844ae3-f098-462c-aef8-1fd38c403760,1,0,be96718a-223d-4597-bccf-2fb7d16dbbcc,be96718a-223d-4597-bccf-2fb7d16dbbcc,1,0,e59e9cfc-43b2-4bdf-a512-b6f87f781cee,e59e9cfc-43b2-4bdf-a512-b6f87f781cee,1,0,eb551461-ae0d-41dd-89fa-2f6e7f3c4840,eb551461-ae0d-41dd-89fa-2f6e7f3c4840,1,0,acec1961-a953-4f7b-b42b-baa1b8b3be14,acec1961-a953-4f7b-b42b-baa1b8b3be14,1,0,eb6394d4-1679-4494-8d23-419f5a714cdc,eb6394d4-1679-4494-8d23-419f5a714cdc,1,0,ffb3c2e4-bb9b-4d12-80bb-79e3c6d5700d,ffb3c2e4-bb9b-4d12-80bb-79e3c6d5700d,1,0,178342fd-1ba5-422d-89d2-4f486e45dae9,178342fd-1ba5-422d-89d2-4f486e45dae9,1,0,7e9fadd6-d0ad-4856-a195-1058f00bf488,7e9fadd6-d0ad-4856-a195-1058f00bf488,1,0,3370d43e-8e97-4411-8123-2bb2bcf60a75,3370d43e-8e97-4411-8123-2bb2bcf60a75,1,0,d9d377c9-406f-4bc9-8076-1f049348b816,d9d377c9-406f-4bc9-8076-1f049348b816,1,0,dcfcb108-3761-43d9-ad2a-29633bd1ae47,dcfcb108-3761-43d9-ad2a-29633bd1ae47,1,0,bac41d45-249f-40b4-a013-008e261369c8,bac41d45-249f-40b4-a013-008e261369c8,1,0,84e34b4a-02e8-4676-8b81-771ddf3c2931,84e34b4a-02e8-4676-8b81-771ddf3c2931,1,0,0aa6a024-66ae-4592-87d6-f7cb2a59f906,0aa6a024-66ae-4592-87d6-f7cb2a59f906,1,0,734b4dc5-dc91-4945-a2d7-cefe56a6e0a6,734b4dc5-dc91-4945-a2d7-cefe56a6e0a6,1,0,bb2dcb37-410d-4a6c-9ace-1f04177d6e88,bb2dcb37-410d-4a6c-9ace-1f04177d6e88,1,0,cb6ecc18-a14f-4c3c-a39d-2cd2d1ab4e03,cb6ecc18-a14f-4c3c-a39d-2cd2d1ab4e03,1,0,f71ac535-74a5-4001-a613-455a9e1bf734,f71ac535-74a5-4001-a613-455a9e1bf734,1,0,55a42b83-b6d2-409b-a8ff-7849b08e07ed,55a42b83-b6d2-409b-a8ff-7849b08e07ed,1,0,61889399-ecc2-442c-a790-a8b27a7a540c,61889399-ecc2-442c-a790-a8b27a7a540c,1,0,ecd3a928-3e59-439c-8f58-ba360f2a8b3c,ecd3a928-3e59-439c-8f58-ba360f2a8b3c,1,0,079ba95c-8293-47e2-b8bd-7acf73c2d880,079ba95c-8293-47e2-b8bd-7acf73c2d880,1,0,fbe1dcf7-c11d-4395-ab3a-c2f986c25419,fbe1dcf7-c11d-4395-ab3a-c2f986c25419,1,0,a5f264a8-a547-4653-abb1-eb1666d527dc,a5f264a8-a547-4653-abb1-eb1666d527dc,1,0,dabae379-6356-497a-aab5-cf102f16a72a,dabae379-6356-497a-aab5-cf102f16a72a,1,0,337370e0-1021-4887-9d38-6c3833c90a5b,337370e0-1021-4887-9d38-6c3833c90a5b,1,0,0ff569eb-d5b8-4ab1-ac77-5e5afd6d44d0,0ff569eb-d5b8-4ab1-ac77-5e5afd6d44d0,1,0,d6f01f1c-801b-4776-ae11-48236103f76a,d6f01f1c-801b-4776-ae11-48236103f76a,1,0,b6fe68cf-657b-40e0-af2e-247607a86519,b6fe68cf-657b-40e0-af2e-247607a86519,1,0,9b0b8191-94b7-428f-be86-e9e4cd24a72f,9b0b8191-94b7-428f-be86-e9e4cd24a72f,1,0,a923dbcb-7146-4445-ad17-f4a32c16a837,a923dbcb-7146-4445-ad17-f4a32c16a837,1,0,41dec792-1d1a-4e06-a54b-a86193b98225,41dec792-1d1a-4e06-a54b-a86193b98225,1,0,52257beb-3e0c-4681-b430-9690398cd13a,52257beb-3e0c-4681-b430-9690398cd13a,1,0,135e637c-c28e-4547-8da2-d897dca54cb2,135e637c-c28e-4547-8da2-d897dca54cb2,1,0,245be006-6d0a-4c9e-97c5-f3c2ddd734f7,245be006-6d0a-4c9e-97c5-f3c2ddd734f7,1,0,56d97df6-9c8b-4fc5-a7a6-52107d38dcd5,56d97df6-9c8b-4fc5-a7a6-52107d38dcd5,1,0,a0be938b-139e-41bd-b067-f5241ff68c90,a0be938b-139e-41bd-b067-f5241ff68c90,1,0,f0402893-724d-4ccd-87f6-d567839b3e70,f0402893-724d-4ccd-87f6-d567839b3e70,1,0,64c84fff-dba1-4f17-bc89-1c69a6f54bea,64c84fff-dba1-4f17-bc89-1c69a6f54bea,1,0,08077c47-4ffd-46f5-9ef5-528ac27bdc75,08077c47-4ffd-46f5-9ef5-528ac27bdc75,1,0,d5a2c4ea-21ce-4673-9aef-9a5eb80a4632,d5a2c4ea-21ce-4673-9aef-9a5eb80a4632,1,0,27089712-b7d7-4a2f-9851-1826d8965f5b,27089712-b7d7-4a2f-9851-1826d8965f5b,1,0,511727f3-b757-4e5b-b7d7-166917029787,511727f3-b757-4e5b-b7d7-166917029787,1,0,a92b3f49-e28a-4f14-8320-7a96d9d08987,a92b3f49-e28a-4f14-8320-7a96d9d08987,1,0,1c34696a-0444-4d3c-8331-17a1b5013368,1c34696a-0444-4d3c-8331-17a1b5013368,1,0,a0b74de9-06b5-416c-9dd0-2f9dc209fe91,a0b74de9-06b5-416c-9dd0-2f9dc209fe91,1,0,5356543a-db9a-4265-b83f-31d45544c8e6,5356543a-db9a-4265-b83f-31d45544c8e6,1,0,857dd311-9c6d-4dba-82d8-283d7b05b09e,857dd311-9c6d-4dba-82d8-283d7b05b09e,1,0,1055d15b-8cb5-4ff0-a526-7fd20a08a96c,1055d15b-8cb5-4ff0-a526-7fd20a08a96c,1,0,8064eb3a-d56c-4517-9db0-b7300149c7c4,8064eb3a-d56c-4517-9db0-b7300149c7c4,1,0,fe926c88-d792-4db3-abcf-3c94dfdcc407,fe926c88-d792-4db3-abcf-3c94dfdcc407,1,0,b1c3a6c1-5245-4a65-8a45-13948be6f6a1,b1c3a6c1-5245-4a65-8a45-13948be6f6a1,1,0,bcbdba9e-0b29-4ea7-a7d5-1de819bf86ec,bcbdba9e-0b29-4ea7-a7d5-1de819bf86ec,1,0,e0c51555-1614-4aa7-a075-c5e1251579ba,e0c51555-1614-4aa7-a075-c5e1251579ba,1,0,c75a1c6d-fa33-4b57-b359-6253aff5f3e7,c75a1c6d-fa33-4b57-b359-6253aff5f3e7,1,0,af88ea84-5742-4c9f-9a02-6d0f25186f72,af88ea84-5742-4c9f-9a02-6d0f25186f72,1,0,51363236-c8eb-4eb7-9692-5c18edc9a5a8,51363236-c8eb-4eb7-9692-5c18edc9a5a8,1,0,e97edb4a-468d-499d-924d-aa4e5ee16548,e97edb4a-468d-499d-924d-aa4e5ee16548,1,0,24366a86-0dae-4a68-a180-d8ea7656a286,24366a86-0dae-4a68-a180-d8ea7656a286,1,0,cb65fbad-69a0-47d8-b4a9-da49274c3eb7,cb65fbad-69a0-47d8-b4a9-da49274c3eb7,1,0,3c03f78e-c904-47da-a0a1-db5d6b9f7254,3c03f78e-c904-47da-a0a1-db5d6b9f7254,1,0,3bf03ed7-6581-4a11-8fc8-748f46c8dad7,3bf03ed7-6581-4a11-8fc8-748f46c8dad7,1,0,0f28c616-162c-4dba-bd22-f7ea5d23ea5a,0f28c616-162c-4dba-bd22-f7ea5d23ea5a,1,0,39bf2771-1d8b-44bb-8d8b-54d046589ebe,39bf2771-1d8b-44bb-8d8b-54d046589ebe,1,0,872521e3-413c-45ac-a6ea-39fe1324bae8,872521e3-413c-45ac-a6ea-39fe1324bae8,1,0,f237a21e-066a-48e6-a5c4-5dc2487c7a3b,f237a21e-066a-48e6-a5c4-5dc2487c7a3b,1,0,8adebe50-a946-40c2-9258-b17efe787e0e,8adebe50-a946-40c2-9258-b17efe787e0e,1,0,8cad6cfd-91d0-4563-800a-d60c8a1b6a03,8cad6cfd-91d0-4563-800a-d60c8a1b6a03,1,0,81ef02df-498d-4af0-8254-dc6730cbf140,81ef02df-498d-4af0-8254-dc6730cbf140,1,0,79ad09ba-875a-46bd-9cd9-9d084bf4f6ea,79ad09ba-875a-46bd-9cd9-9d084bf4f6ea,1,0,2902460a-ed86-41cf-8e8f-895adab9a72f,2902460a-ed86-41cf-8e8f-895adab9a72f,1,0,d12c7296-36ab-41e0-83ef-143484958597,d12c7296-36ab-41e0-83ef-143484958597,1,0,2b6c3bcd-7d2a-4e95-8066-99374002689b,2b6c3bcd-7d2a-4e95-8066-99374002689b,1,0,402f2fe0-4d08-4701-9c8f-0c2bb75815ef,402f2fe0-4d08-4701-9c8f-0c2bb75815ef,1,0,1a4ed7cf-3294-4a5c-9650-75b61d6b2531,1a4ed7cf-3294-4a5c-9650-75b61d6b2531,1,0,73cc5b8b-4cba-4988-b2c6-d974dde9723d,73cc5b8b-4cba-4988-b2c6-d974dde9723d,1,0,1b9bbdb1-b8c0-4459-8b5c-656055482f00,1b9bbdb1-b8c0-4459-8b5c-656055482f00,1,0,d6b72e00-018a-4fdc-b6a4-06dcecf89809,d6b72e00-018a-4fdc-b6a4-06dcecf89809,1,0,9f816562-57f0-473f-8c85-14f7521ffd7f,9f816562-57f0-473f-8c85-14f7521ffd7f,1,0,14077038-2e41-4a05-a476-99f6f88a5c29,14077038-2e41-4a05-a476-99f6f88a5c29,1,0,917b0acc-88fe-4afc-b19b-6da69e060393,917b0acc-88fe-4afc-b19b-6da69e060393,1,0,a091b76e-8ba4-4534-bbb0-9990e69b8603,a091b76e-8ba4-4534-bbb0-9990e69b8603,1,0,867ee5d2-7566-4052-a311-b56e7e46b90d,867ee5d2-7566-4052-a311-b56e7e46b90d,1,0,8f51328b-73a8-46fb-b6db-7b7a84c05c2a,8f51328b-73a8-46fb-b6db-7b7a84c05c2a,1,0,0f0f5b42-2407-44e6-85d7-26ace96b2cd9,0f0f5b42-2407-44e6-85d7-26ace96b2cd9,1,0,ffec426d-2556-46d6-b313-aeca43581865,ffec426d-2556-46d6-b313-aeca43581865,1,0,f32e0941-2061-4e12-bdae-fcb65f91ac28,f32e0941-2061-4e12-bdae-fcb65f91ac28,1,0,6f0e0f44-db5a-4a13-9131-866b77b90f14,6f0e0f44-db5a-4a13-9131-866b77b90f14,1,0,9415e0aa-391f-4798-ad7d-3b854a756de8,9415e0aa-391f-4798-ad7d-3b854a756de8,1,0,f82d5bd6-4c74-4c23-978c-565aae3d752a,f82d5bd6-4c74-4c23-978c-565aae3d752a,1,0,7fba41a5-4faa-412b-b367-b30ced0314c0,7fba41a5-4faa-412b-b367-b30ced0314c0,1,0,37333d0b-3589-4b8b-bf6c-e605e0287b66,37333d0b-3589-4b8b-bf6c-e605e0287b66,1,0,1813c469-da20-46a6-8947-6815b66f64c1,1813c469-da20-46a6-8947-6815b66f64c1,1,0,64e702e9-8934-4356-a1b2-be0e8b390630,64e702e9-8934-4356-a1b2-be0e8b390630,1,0,74880ac4-bdd3-48e6-82a0-a2103da42723,74880ac4-bdd3-48e6-82a0-a2103da42723,1,0,ad083c26-7461-4e94-b524-0174242fbd91,ad083c26-7461-4e94-b524-0174242fbd91,1,0,5ce39370-f918-493f-bb24-53346b6fd836,5ce39370-f918-493f-bb24-53346b6fd836,1,0,84f22fd2-e0d0-42ce-8628-1b13c021a4cb,84f22fd2-e0d0-42ce-8628-1b13c021a4cb,1,0,0e3d2750-bb4c-42b9-9829-60f1480ced9c,0e3d2750-bb4c-42b9-9829-60f1480ced9c,1,0,ddc6761c-a32a-41e1-b110-fdc39ad440d3,ddc6761c-a32a-41e1-b110-fdc39ad440d3,1,0,0b322ee2-b018-4d00-8f05-62ee16e519ff,0b322ee2-b018-4d00-8f05-62ee16e519ff,1,0,0866e282-055a-49bb-9aa5-b1af7c74c344,0866e282-055a-49bb-9aa5-b1af7c74c344,1,0,dad11c2e-08fc-4a6b-8829-8be6c64c15fc,dad11c2e-08fc-4a6b-8829-8be6c64c15fc,1,0,a76b1fd1-ba00-40e6-8756-f17fee449818,a76b1fd1-ba00-40e6-8756-f17fee449818,1,0,5c913626-48d1-4e0a-a423-64078ce59c7b,5c913626-48d1-4e0a-a423-64078ce59c7b,1,0,0a4e6b7a-b380-4547-bc3c-5d6895a5d19a,0a4e6b7a-b380-4547-bc3c-5d6895a5d19a,1,0,7b0ec304-1904-413e-a9c6-ff62e87107dd,7b0ec304-1904-413e-a9c6-ff62e87107dd,1,0,d4dd8c96-914d-496f-b735-ef85ec473605,d4dd8c96-914d-496f-b735-ef85ec473605,1,0,62517db4-59e6-4945-bcd6-b3f1845572bf,62517db4-59e6-4945-bcd6-b3f1845572bf,1,0,a6a9dd40-24cd-4d40-a12d-44f94f8c05a7,a6a9dd40-24cd-4d40-a12d-44f94f8c05a7,1,0,f0f72149-0e7f-441a-b70d-8f47d4977927,f0f72149-0e7f-441a-b70d-8f47d4977927,1,0,776efc3e-ac27-4550-bafd-6e91aa987af2,776efc3e-ac27-4550-bafd-6e91aa987af2,1,0,9f478c85-b72c-40ae-aa08-7ddf73b5b15c,9f478c85-b72c-40ae-aa08-7ddf73b5b15c,1,0,cc438366-85ea-48be-8b74-d05cddb1fc51,cc438366-85ea-48be-8b74-d05cddb1fc51,1,0,4688fd3b-4a92-4ed8-b111-0cf22a729b1c,4688fd3b-4a92-4ed8-b111-0cf22a729b1c,1,0,92029d1f-0472-4aaa-8fd6-9fb3c3cf414e,92029d1f-0472-4aaa-8fd6-9fb3c3cf414e,1,0,3271b800-1825-422f-97bb-757baf403e90,3271b800-1825-422f-97bb-757baf403e90,1,0,6fd6efc1-facc-4ece-a5b3-3dce6acca81d,6fd6efc1-facc-4ece-a5b3-3dce6acca81d,1,0,4ee82868-7a20-4c3a-91f9-42a6bf53ac37,4ee82868-7a20-4c3a-91f9-42a6bf53ac37,1,0,a040c756-4687-4bfd-a690-b122d3c490e5,a040c756-4687-4bfd-a690-b122d3c490e5,1,0,bd5940d5-13fd-4f59-bb6c-614f93f9c8e4,bd5940d5-13fd-4f59-bb6c-614f93f9c8e4,1,0,961a9801-3956-4ea0-b0d3-908f09bf4929,961a9801-3956-4ea0-b0d3-908f09bf4929,1,0,6fac5c14-e126-4342-9078-edf1d0efcbf2,6fac5c14-e126-4342-9078-edf1d0efcbf2,1,0,0a3325a1-21c4-4997-882f-4ac2edc175f0,0a3325a1-21c4-4997-882f-4ac2edc175f0,1,0,71102d3f-f020-4d6f-9582-9a7eefb4e797,71102d3f-f020-4d6f-9582-9a7eefb4e797,1,0,53ef6849-a3f3-4171-9167-f349f2d6a736,53ef6849-a3f3-4171-9167-f349f2d6a736,1,0,3f588bd3-d461-42b7-8ab1-386af6399d56,3f588bd3-d461-42b7-8ab1-386af6399d56,1,0,c04ff85e-b4af-4a9f-b0e9-c5c65e3d10a1,c04ff85e-b4af-4a9f-b0e9-c5c65e3d10a1,1,0,8c576405-29c1-46b1-ab2e-40e52c21cab0,8c576405-29c1-46b1-ab2e-40e52c21cab0,1,0,b33a89da-8589-4902-83fa-6545e5fce23e,b33a89da-8589-4902-83fa-6545e5fce23e,1,0,f0620d5a-e1fe-419f-af37-e0f462f97e8d,f0620d5a-e1fe-419f-af37-e0f462f97e8d,1,0,3e2f2ae1-c809-43fc-8276-b0a16a92858c,3e2f2ae1-c809-43fc-8276-b0a16a92858c,1,0,b58942ca-1367-4e1d-b5b4-7d973d0fecd8,b58942ca-1367-4e1d-b5b4-7d973d0fecd8,1,0,1a7c7427-bead-4655-9dd6-df6e722663c5,1a7c7427-bead-4655-9dd6-df6e722663c5,1,0,3ad08f4a-6202-4099-b6cc-bc116e6731a0,3ad08f4a-6202-4099-b6cc-bc116e6731a0,1,0,fd96c8ab-602a-4735-b168-52b501e80351,fd96c8ab-602a-4735-b168-52b501e80351,1,0,b1dc619d-8d91-4f7a-aa50-1d07ff9aebdc,b1dc619d-8d91-4f7a-aa50-1d07ff9aebdc,1,0,370f0c75-d2c5-4be5-a633-4bcc77998ece,370f0c75-d2c5-4be5-a633-4bcc77998ece,1,0,f80b505f-b4ff-45fb-bd88-74b274ae9d2b,f80b505f-b4ff-45fb-bd88-74b274ae9d2b,1,0,2139532c-f6cb-4393-936e-cc912e5adca9,2139532c-f6cb-4393-936e-cc912e5adca9,1,0,755c3eca-4956-4a44-9b38-c11dae00b87f,755c3eca-4956-4a44-9b38-c11dae00b87f,1,0,f57c558c-2c94-4b9d-8697-448d0548ab1a,f57c558c-2c94-4b9d-8697-448d0548ab1a,1,0,a310c09f-4d3a-4d3a-9ad5-7a5735a33a1d,a310c09f-4d3a-4d3a-9ad5-7a5735a33a1d,1,0,c32db021-eca1-4b67-aa85-3d6e28c51b53,c32db021-eca1-4b67-aa85-3d6e28c51b53,1,0,e9ed0ee4-3fbe-4093-9078-cb265ed6842c,e9ed0ee4-3fbe-4093-9078-cb265ed6842c,1,0,02466dcf-02a1-4853-814f-a913a9baba45,02466dcf-02a1-4853-814f-a913a9baba45,1,0,c4a40dc9-b619-4219-9d9a-e11f49a14fb1,c4a40dc9-b619-4219-9d9a-e11f49a14fb1,1,0,62b75eb2-42e1-4484-a77f-b676dd36f3d4,62b75eb2-42e1-4484-a77f-b676dd36f3d4,1,0,5e28e22a-dd6e-4703-92bd-13f5cb0dc023,5e28e22a-dd6e-4703-92bd-13f5cb0dc023,1,0,856510ee-74f5-44e9-a3c0-1c60cfb7a787,856510ee-74f5-44e9-a3c0-1c60cfb7a787,1,0,28b761c6-c286-4125-a4ed-da602e49950f,28b761c6-c286-4125-a4ed-da602e49950f,1,0,4ac66a22-c736-4e06-a8aa-ef4a71788c65,4ac66a22-c736-4e06-a8aa-ef4a71788c65,1,0,9cfe9281-8840-4077-824d-a2c9cbb0b730,9cfe9281-8840-4077-824d-a2c9cbb0b730,1,0,76389fa9-b9e0-492e-9c93-24b5f3bf094c,76389fa9-b9e0-492e-9c93-24b5f3bf094c,1,0,23e3de37-9315-45e6-bbfd-60aae28c25ae,23e3de37-9315-45e6-bbfd-60aae28c25ae,1,0,a9957f43-8b6f-4d98-a2d8-77b78047494c,a9957f43-8b6f-4d98-a2d8-77b78047494c,1,0,e470e15d-1b06-43cb-a9f9-ba489e2f596f,e470e15d-1b06-43cb-a9f9-ba489e2f596f,1,0,0408002c-9255-43a2-8022-82f02ee0e8f4,0408002c-9255-43a2-8022-82f02ee0e8f4,1,0,88f44c9b-216d-4d7e-bc88-1e6b253ed01e,88f44c9b-216d-4d7e-bc88-1e6b253ed01e,1,0,1851afd4-5324-45c1-b754-54e65943f945,1851afd4-5324-45c1-b754-54e65943f945,1,0,bc5eca9b-32d8-44e0-a127-8ad1f47d7957,bc5eca9b-32d8-44e0-a127-8ad1f47d7957,1,0,6e5307ea-8fbf-4177-bcc8-f163a6ce1b40,6e5307ea-8fbf-4177-bcc8-f163a6ce1b40,1,0,0fa77ef7-a836-4459-9bca-6010d0bdfc7f,0fa77ef7-a836-4459-9bca-6010d0bdfc7f,1,0,c322dc4a-30f3-4d23-9824-4a01c496408d,c322dc4a-30f3-4d23-9824-4a01c496408d,1,0,dcff004c-1b61-4a19-b977-ea21bf688614,dcff004c-1b61-4a19-b977-ea21bf688614,0,0,0,1,0,0,0,1,0,1,0,1,1,1,1} \ No newline at end of file diff --git a/SSL/src/Configuration/SessionModule.bsl b/SSL/src/Configuration/SessionModule.bsl index c7ee7b0c5..682e7bb98 100644 --- a/SSL/src/Configuration/SessionModule.bsl +++ b/SSL/src/Configuration/SessionModule.bsl @@ -1,5 +1,5 @@ /////////////////////////////////////////////////////////////////////////////////////////////////////// -// Copyright (c) 2024, ООО 1С-Софт +// Copyright (c) 2025, ООО 1С-Софт // Все права защищены. Эта программа и сопроводительные материалы предоставляются // в соответствии с условиями лицензии Attribution 4.0 International (CC BY 4.0) // Текст лицензии доступен по ссылке: diff --git a/SSL/src/Constants/АвтоматическиНастраиватьРазрешенияВПрофиляхБезопасности/ValueManagerModule.bsl b/SSL/src/Constants/АвтоматическиНастраиватьРазрешенияВПрофиляхБезопасности/ValueManagerModule.bsl index 10cdb69a3..22862153d 100644 --- a/SSL/src/Constants/АвтоматическиНастраиватьРазрешенияВПрофиляхБезопасности/ValueManagerModule.bsl +++ b/SSL/src/Constants/АвтоматическиНастраиватьРазрешенияВПрофиляхБезопасности/ValueManagerModule.bsl @@ -1,5 +1,5 @@ /////////////////////////////////////////////////////////////////////////////////////////////////////// -// Copyright (c) 2024, ООО 1С-Софт +// Copyright (c) 2025, ООО 1С-Софт // Все права защищены. Эта программа и сопроводительные материалы предоставляются // в соответствии с условиями лицензии Attribution 4.0 International (CC BY 4.0) // Текст лицензии доступен по ссылке: diff --git a/SSL/src/Constants/АдресаСерверовМетокВремени/ValueManagerModule.bsl b/SSL/src/Constants/АдресаСерверовМетокВремени/ValueManagerModule.bsl index 6713beba0..fde7159e1 100644 --- a/SSL/src/Constants/АдресаСерверовМетокВремени/ValueManagerModule.bsl +++ b/SSL/src/Constants/АдресаСерверовМетокВремени/ValueManagerModule.bsl @@ -1,5 +1,5 @@ /////////////////////////////////////////////////////////////////////////////////////////////////////// -// Copyright (c) 2024, ООО 1С-Софт +// Copyright (c) 2025, ООО 1С-Софт // Все права защищены. Эта программа и сопроводительные материалы предоставляются // в соответствии с условиями лицензии Attribution 4.0 International (CC BY 4.0) // Текст лицензии доступен по ссылке: diff --git a/SSL/src/Constants/ВыполнятьЗамерыПроизводительности/ValueManagerModule.bsl b/SSL/src/Constants/ВыполнятьЗамерыПроизводительности/ValueManagerModule.bsl index 5ca1a6182..fbf08bb92 100644 --- a/SSL/src/Constants/ВыполнятьЗамерыПроизводительности/ValueManagerModule.bsl +++ b/SSL/src/Constants/ВыполнятьЗамерыПроизводительности/ValueManagerModule.bsl @@ -1,5 +1,5 @@ /////////////////////////////////////////////////////////////////////////////////////////////////////// -// Copyright (c) 2024, ООО 1С-Софт +// Copyright (c) 2025, ООО 1С-Софт // Все права защищены. Эта программа и сопроводительные материалы предоставляются // в соответствии с условиями лицензии Attribution 4.0 International (CC BY 4.0) // Текст лицензии доступен по ссылке: diff --git a/SSL/src/Constants/ДобавлятьМеткиВремениАвтоматически/ValueManagerModule.bsl b/SSL/src/Constants/ДобавлятьМеткиВремениАвтоматически/ValueManagerModule.bsl index 6f018b46b..5606b9ada 100644 --- a/SSL/src/Constants/ДобавлятьМеткиВремениАвтоматически/ValueManagerModule.bsl +++ b/SSL/src/Constants/ДобавлятьМеткиВремениАвтоматически/ValueManagerModule.bsl @@ -1,5 +1,5 @@ /////////////////////////////////////////////////////////////////////////////////////////////////////// -// Copyright (c) 2024, ООО 1С-Софт +// Copyright (c) 2025, ООО 1С-Софт // Все права защищены. Эта программа и сопроводительные материалы предоставляются // в соответствии с условиями лицензии Attribution 4.0 International (CC BY 4.0) // Текст лицензии доступен по ссылке: diff --git a/SSL/src/Constants/ДоставлятьСерверныеОповещенияБезСистемыВзаимодействия/ValueManagerModule.bsl b/SSL/src/Constants/ДоставлятьСерверныеОповещенияБезСистемыВзаимодействия/ValueManagerModule.bsl index a7cbf2e36..b647460a7 100644 --- a/SSL/src/Constants/ДоставлятьСерверныеОповещенияБезСистемыВзаимодействия/ValueManagerModule.bsl +++ b/SSL/src/Constants/ДоставлятьСерверныеОповещенияБезСистемыВзаимодействия/ValueManagerModule.bsl @@ -1,5 +1,5 @@ /////////////////////////////////////////////////////////////////////////////////////////////////////// -// Copyright (c) 2024, ООО 1С-Софт +// Copyright (c) 2025, ООО 1С-Софт // Все права защищены. Эта программа и сопроводительные материалы предоставляются // в соответствии с условиями лицензии Attribution 4.0 International (CC BY 4.0) // Текст лицензии доступен по ссылке: diff --git a/SSL/src/Constants/ИспользованиеКаталогаДополнительныхОтчетовИОбработокВМоделиСервиса/ValueManagerModule.bsl b/SSL/src/Constants/ИспользованиеКаталогаДополнительныхОтчетовИОбработокВМоделиСервиса/ValueManagerModule.bsl index 4d06311e1..e1139409c 100644 --- a/SSL/src/Constants/ИспользованиеКаталогаДополнительныхОтчетовИОбработокВМоделиСервиса/ValueManagerModule.bsl +++ b/SSL/src/Constants/ИспользованиеКаталогаДополнительныхОтчетовИОбработокВМоделиСервиса/ValueManagerModule.bsl @@ -1,5 +1,5 @@ /////////////////////////////////////////////////////////////////////////////////////////////////////// -// Copyright (c) 2024, ООО 1С-Софт +// Copyright (c) 2025, ООО 1С-Софт // Все права защищены. Эта программа и сопроводительные материалы предоставляются // в соответствии с условиями лицензии Attribution 4.0 International (CC BY 4.0) // Текст лицензии доступен по ссылке: diff --git a/SSL/src/Constants/ИспользоватьБизнесПроцессыИЗадачи/ValueManagerModule.bsl b/SSL/src/Constants/ИспользоватьБизнесПроцессыИЗадачи/ValueManagerModule.bsl index 5e9612d08..f7afdc0eb 100644 --- a/SSL/src/Constants/ИспользоватьБизнесПроцессыИЗадачи/ValueManagerModule.bsl +++ b/SSL/src/Constants/ИспользоватьБизнесПроцессыИЗадачи/ValueManagerModule.bsl @@ -1,5 +1,5 @@ /////////////////////////////////////////////////////////////////////////////////////////////////////// -// Copyright (c) 2024, ООО 1С-Софт +// Copyright (c) 2025, ООО 1С-Софт // Все права защищены. Эта программа и сопроводительные материалы предоставляются // в соответствии с условиями лицензии Attribution 4.0 International (CC BY 4.0) // Текст лицензии доступен по ссылке: diff --git a/SSL/src/Constants/ИспользоватьВнешнихПользователей/ValueManagerModule.bsl b/SSL/src/Constants/ИспользоватьВнешнихПользователей/ValueManagerModule.bsl index fdf5475b8..2cb5bfe8b 100644 --- a/SSL/src/Constants/ИспользоватьВнешнихПользователей/ValueManagerModule.bsl +++ b/SSL/src/Constants/ИспользоватьВнешнихПользователей/ValueManagerModule.bsl @@ -1,5 +1,5 @@ /////////////////////////////////////////////////////////////////////////////////////////////////////// -// Copyright (c) 2024, ООО 1С-Софт +// Copyright (c) 2025, ООО 1С-Софт // Все права защищены. Эта программа и сопроводительные материалы предоставляются // в соответствии с условиями лицензии Attribution 4.0 International (CC BY 4.0) // Текст лицензии доступен по ссылке: diff --git a/SSL/src/Constants/ИспользоватьГосключ/ИспользоватьГосключ.mdo b/SSL/src/Constants/ИспользоватьГосключ/ИспользоватьГосключ.mdo new file mode 100644 index 000000000..e449afb1b --- /dev/null +++ b/SSL/src/Constants/ИспользоватьГосключ/ИспользоватьГосключ.mdo @@ -0,0 +1,20 @@ + + + + + + + + ИспользоватьГосключ + + ru + Использовать госключ + + + Boolean + + true + + + Managed + diff --git a/SSL/src/Constants/ИспользоватьГруппыВнешнихПользователей/ManagerModule.bsl b/SSL/src/Constants/ИспользоватьГруппыВнешнихПользователей/ManagerModule.bsl index 698a89ba5..7c6e40a55 100644 --- a/SSL/src/Constants/ИспользоватьГруппыВнешнихПользователей/ManagerModule.bsl +++ b/SSL/src/Constants/ИспользоватьГруппыВнешнихПользователей/ManagerModule.bsl @@ -1,5 +1,5 @@ /////////////////////////////////////////////////////////////////////////////////////////////////////// -// Copyright (c) 2024, ООО 1С-Софт +// Copyright (c) 2025, ООО 1С-Софт // Все права защищены. Эта программа и сопроводительные материалы предоставляются // в соответствии с условиями лицензии Attribution 4.0 International (CC BY 4.0) // Текст лицензии доступен по ссылке: diff --git a/SSL/src/Constants/ИспользоватьГруппыВнешнихПользователей/ValueManagerModule.bsl b/SSL/src/Constants/ИспользоватьГруппыВнешнихПользователей/ValueManagerModule.bsl index 7c3db84b9..da0c778ce 100644 --- a/SSL/src/Constants/ИспользоватьГруппыВнешнихПользователей/ValueManagerModule.bsl +++ b/SSL/src/Constants/ИспользоватьГруппыВнешнихПользователей/ValueManagerModule.bsl @@ -1,5 +1,5 @@ /////////////////////////////////////////////////////////////////////////////////////////////////////// -// Copyright (c) 2024, ООО 1С-Софт +// Copyright (c) 2025, ООО 1С-Софт // Все права защищены. Эта программа и сопроводительные материалы предоставляются // в соответствии с условиями лицензии Attribution 4.0 International (CC BY 4.0) // Текст лицензии доступен по ссылке: diff --git a/SSL/src/Constants/ИспользоватьГруппыПользователей/ValueManagerModule.bsl b/SSL/src/Constants/ИспользоватьГруппыПользователей/ValueManagerModule.bsl index 45649d523..34a04174f 100644 --- a/SSL/src/Constants/ИспользоватьГруппыПользователей/ValueManagerModule.bsl +++ b/SSL/src/Constants/ИспользоватьГруппыПользователей/ValueManagerModule.bsl @@ -1,5 +1,5 @@ /////////////////////////////////////////////////////////////////////////////////////////////////////// -// Copyright (c) 2024, ООО 1С-Софт +// Copyright (c) 2025, ООО 1С-Софт // Все права защищены. Эта программа и сопроводительные материалы предоставляются // в соответствии с условиями лицензии Attribution 4.0 International (CC BY 4.0) // Текст лицензии доступен по ссылке: diff --git a/SSL/src/Constants/ИспользоватьДатуИВремяВСрокахЗадач/ValueManagerModule.bsl b/SSL/src/Constants/ИспользоватьДатуИВремяВСрокахЗадач/ValueManagerModule.bsl index 711c91147..b9a5f1499 100644 --- a/SSL/src/Constants/ИспользоватьДатуИВремяВСрокахЗадач/ValueManagerModule.bsl +++ b/SSL/src/Constants/ИспользоватьДатуИВремяВСрокахЗадач/ValueManagerModule.bsl @@ -1,5 +1,5 @@ /////////////////////////////////////////////////////////////////////////////////////////////////////// -// Copyright (c) 2024, ООО 1С-Софт +// Copyright (c) 2025, ООО 1С-Софт // Все права защищены. Эта программа и сопроводительные материалы предоставляются // в соответствии с условиями лицензии Attribution 4.0 International (CC BY 4.0) // Текст лицензии доступен по ссылке: diff --git a/SSL/src/Constants/ИспользоватьДатыЗапретаЗагрузки/ValueManagerModule.bsl b/SSL/src/Constants/ИспользоватьДатыЗапретаЗагрузки/ValueManagerModule.bsl index 50007cec7..bf8ab696e 100644 --- a/SSL/src/Constants/ИспользоватьДатыЗапретаЗагрузки/ValueManagerModule.bsl +++ b/SSL/src/Constants/ИспользоватьДатыЗапретаЗагрузки/ValueManagerModule.bsl @@ -1,5 +1,5 @@ /////////////////////////////////////////////////////////////////////////////////////////////////////// -// Copyright (c) 2024, ООО 1С-Софт +// Copyright (c) 2025, ООО 1С-Софт // Все права защищены. Эта программа и сопроводительные материалы предоставляются // в соответствии с условиями лицензии Attribution 4.0 International (CC BY 4.0) // Текст лицензии доступен по ссылке: diff --git a/SSL/src/Constants/ИспользоватьДатыЗапретаИзменения/ValueManagerModule.bsl b/SSL/src/Constants/ИспользоватьДатыЗапретаИзменения/ValueManagerModule.bsl index 4fc1ef760..bd2eb4dac 100644 --- a/SSL/src/Constants/ИспользоватьДатыЗапретаИзменения/ValueManagerModule.bsl +++ b/SSL/src/Constants/ИспользоватьДатыЗапретаИзменения/ValueManagerModule.bsl @@ -1,5 +1,5 @@ /////////////////////////////////////////////////////////////////////////////////////////////////////// -// Copyright (c) 2024, ООО 1С-Софт +// Copyright (c) 2025, ООО 1С-Софт // Все права защищены. Эта программа и сопроводительные материалы предоставляются // в соответствии с условиями лицензии Attribution 4.0 International (CC BY 4.0) // Текст лицензии доступен по ссылке: diff --git a/SSL/src/Constants/ИспользоватьДополнительныеОтчетыИОбработки/ValueManagerModule.bsl b/SSL/src/Constants/ИспользоватьДополнительныеОтчетыИОбработки/ValueManagerModule.bsl index eba5d3d9c..c1c5180fe 100644 --- a/SSL/src/Constants/ИспользоватьДополнительныеОтчетыИОбработки/ValueManagerModule.bsl +++ b/SSL/src/Constants/ИспользоватьДополнительныеОтчетыИОбработки/ValueManagerModule.bsl @@ -1,5 +1,5 @@ /////////////////////////////////////////////////////////////////////////////////////////////////////// -// Copyright (c) 2024, ООО 1С-Софт +// Copyright (c) 2025, ООО 1С-Софт // Все права защищены. Эта программа и сопроводительные материалы предоставляются // в соответствии с условиями лицензии Attribution 4.0 International (CC BY 4.0) // Текст лицензии доступен по ссылке: diff --git a/SSL/src/Constants/ИспользоватьДополнительныеРеквизитыИСведения/ValueManagerModule.bsl b/SSL/src/Constants/ИспользоватьДополнительныеРеквизитыИСведения/ValueManagerModule.bsl index 4058471b4..d7692750e 100644 --- a/SSL/src/Constants/ИспользоватьДополнительныеРеквизитыИСведения/ValueManagerModule.bsl +++ b/SSL/src/Constants/ИспользоватьДополнительныеРеквизитыИСведения/ValueManagerModule.bsl @@ -1,5 +1,5 @@ /////////////////////////////////////////////////////////////////////////////////////////////////////// -// Copyright (c) 2024, ООО 1С-Софт +// Copyright (c) 2025, ООО 1С-Софт // Все права защищены. Эта программа и сопроводительные материалы предоставляются // в соответствии с условиями лицензии Attribution 4.0 International (CC BY 4.0) // Текст лицензии доступен по ссылке: diff --git a/SSL/src/Constants/ИспользоватьЗаметки/ValueManagerModule.bsl b/SSL/src/Constants/ИспользоватьЗаметки/ValueManagerModule.bsl index b2900bcce..83092ba5f 100644 --- a/SSL/src/Constants/ИспользоватьЗаметки/ValueManagerModule.bsl +++ b/SSL/src/Constants/ИспользоватьЗаметки/ValueManagerModule.bsl @@ -1,5 +1,5 @@ /////////////////////////////////////////////////////////////////////////////////////////////////////// -// Copyright (c) 2024, ООО 1С-Софт +// Copyright (c) 2025, ООО 1С-Софт // Все права защищены. Эта программа и сопроводительные материалы предоставляются // в соответствии с условиями лицензии Attribution 4.0 International (CC BY 4.0) // Текст лицензии доступен по ссылке: diff --git a/SSL/src/Constants/ИспользоватьНапоминанияПользователя/ValueManagerModule.bsl b/SSL/src/Constants/ИспользоватьНапоминанияПользователя/ValueManagerModule.bsl index 73b782e84..f4c95f3cf 100644 --- a/SSL/src/Constants/ИспользоватьНапоминанияПользователя/ValueManagerModule.bsl +++ b/SSL/src/Constants/ИспользоватьНапоминанияПользователя/ValueManagerModule.bsl @@ -1,5 +1,5 @@ /////////////////////////////////////////////////////////////////////////////////////////////////////// -// Copyright (c) 2024, ООО 1С-Софт +// Copyright (c) 2025, ООО 1С-Софт // Все права защищены. Эта программа и сопроводительные материалы предоставляются // в соответствии с условиями лицензии Attribution 4.0 International (CC BY 4.0) // Текст лицензии доступен по ссылке: diff --git a/SSL/src/Constants/ИспользоватьПолнотекстовыйПоиск/ValueManagerModule.bsl b/SSL/src/Constants/ИспользоватьПолнотекстовыйПоиск/ValueManagerModule.bsl index 3d877f953..ee5cfae8e 100644 --- a/SSL/src/Constants/ИспользоватьПолнотекстовыйПоиск/ValueManagerModule.bsl +++ b/SSL/src/Constants/ИспользоватьПолнотекстовыйПоиск/ValueManagerModule.bsl @@ -1,5 +1,5 @@ /////////////////////////////////////////////////////////////////////////////////////////////////////// -// Copyright (c) 2024, ООО 1С-Софт +// Copyright (c) 2025, ООО 1С-Софт // Все права защищены. Эта программа и сопроводительные материалы предоставляются // в соответствии с условиями лицензии Attribution 4.0 International (CC BY 4.0) // Текст лицензии доступен по ссылке: diff --git a/SSL/src/Constants/ИспользоватьПочтовыйКлиент/ValueManagerModule.bsl b/SSL/src/Constants/ИспользоватьПочтовыйКлиент/ValueManagerModule.bsl index de75e9277..58a67c85c 100644 --- a/SSL/src/Constants/ИспользоватьПочтовыйКлиент/ValueManagerModule.bsl +++ b/SSL/src/Constants/ИспользоватьПочтовыйКлиент/ValueManagerModule.bsl @@ -1,5 +1,5 @@ /////////////////////////////////////////////////////////////////////////////////////////////////////// -// Copyright (c) 2024, ООО 1С-Софт +// Copyright (c) 2025, ООО 1С-Софт // Все права защищены. Эта программа и сопроводительные материалы предоставляются // в соответствии с условиями лицензии Attribution 4.0 International (CC BY 4.0) // Текст лицензии доступен по ссылке: diff --git a/SSL/src/Constants/ИспользоватьРазделениеПоОбластямДанных/ValueManagerModule.bsl b/SSL/src/Constants/ИспользоватьРазделениеПоОбластямДанных/ValueManagerModule.bsl index 638e07b5e..35a2b405c 100644 --- a/SSL/src/Constants/ИспользоватьРазделениеПоОбластямДанных/ValueManagerModule.bsl +++ b/SSL/src/Constants/ИспользоватьРазделениеПоОбластямДанных/ValueManagerModule.bsl @@ -1,5 +1,5 @@ /////////////////////////////////////////////////////////////////////////////////////////////////////// -// Copyright (c) 2024, ООО 1С-Софт +// Copyright (c) 2025, ООО 1С-Софт // Все права защищены. Эта программа и сопроводительные материалы предоставляются // в соответствии с условиями лицензии Attribution 4.0 International (CC BY 4.0) // Текст лицензии доступен по ссылке: diff --git a/SSL/src/Constants/ИспользоватьСервисDSS/ValueManagerModule.bsl b/SSL/src/Constants/ИспользоватьСервисDSS/ValueManagerModule.bsl index b069fb2e5..bf650f852 100644 --- a/SSL/src/Constants/ИспользоватьСервисDSS/ValueManagerModule.bsl +++ b/SSL/src/Constants/ИспользоватьСервисDSS/ValueManagerModule.bsl @@ -1,5 +1,5 @@ /////////////////////////////////////////////////////////////////////////////////////////////////////// -// Copyright (c) 2024, ООО 1С-Софт +// Copyright (c) 2025, ООО 1С-Софт // Все права защищены. Эта программа и сопроводительные материалы предоставляются // в соответствии с условиями лицензии Attribution 4.0 International (CC BY 4.0) // Текст лицензии доступен по ссылке: diff --git a/SSL/src/Constants/ИспользоватьСинхронизациюДанных/ValueManagerModule.bsl b/SSL/src/Constants/ИспользоватьСинхронизациюДанных/ValueManagerModule.bsl index 371c5784d..ffa0325f2 100644 --- a/SSL/src/Constants/ИспользоватьСинхронизациюДанных/ValueManagerModule.bsl +++ b/SSL/src/Constants/ИспользоватьСинхронизациюДанных/ValueManagerModule.bsl @@ -1,5 +1,5 @@ /////////////////////////////////////////////////////////////////////////////////////////////////////// -// Copyright (c) 2024, ООО 1С-Софт +// Copyright (c) 2025, ООО 1С-Софт // Все права защищены. Эта программа и сопроводительные материалы предоставляются // в соответствии с условиями лицензии Attribution 4.0 International (CC BY 4.0) // Текст лицензии доступен по ссылке: diff --git a/SSL/src/Constants/ИспользоватьФайловыйАрхив/ИспользоватьФайловыйАрхив.mdo b/SSL/src/Constants/ИспользоватьФайловыйАрхив/ИспользоватьФайловыйАрхив.mdo new file mode 100644 index 000000000..2734ea029 --- /dev/null +++ b/SSL/src/Constants/ИспользоватьФайловыйАрхив/ИспользоватьФайловыйАрхив.mdo @@ -0,0 +1,20 @@ + + + + + + + + ИспользоватьФайловыйАрхив + + ru + Использовать файловый архив + + + Boolean + + true + + + Managed + diff --git a/SSL/src/Constants/ИспользоватьШаблоныСообщений/ValueManagerModule.bsl b/SSL/src/Constants/ИспользоватьШаблоныСообщений/ValueManagerModule.bsl index c3c1c1a1c..5b10ececf 100644 --- a/SSL/src/Constants/ИспользоватьШаблоныСообщений/ValueManagerModule.bsl +++ b/SSL/src/Constants/ИспользоватьШаблоныСообщений/ValueManagerModule.bsl @@ -1,5 +1,5 @@ /////////////////////////////////////////////////////////////////////////////////////////////////////// -// Copyright (c) 2024, ООО 1С-Софт +// Copyright (c) 2025, ООО 1С-Софт // Все права защищены. Эта программа и сопроводительные материалы предоставляются // в соответствии с условиями лицензии Attribution 4.0 International (CC BY 4.0) // Текст лицензии доступен по ссылке: diff --git a/SSL/src/Constants/ИспользуютсяПрофилиБезопасности/ValueManagerModule.bsl b/SSL/src/Constants/ИспользуютсяПрофилиБезопасности/ValueManagerModule.bsl index 84f65f9b7..f6cc0ef2c 100644 --- a/SSL/src/Constants/ИспользуютсяПрофилиБезопасности/ValueManagerModule.bsl +++ b/SSL/src/Constants/ИспользуютсяПрофилиБезопасности/ValueManagerModule.bsl @@ -1,5 +1,5 @@ /////////////////////////////////////////////////////////////////////////////////////////////////////// -// Copyright (c) 2024, ООО 1С-Софт +// Copyright (c) 2025, ООО 1С-Софт // Все права защищены. Эта программа и сопроводительные материалы предоставляются // в соответствии с условиями лицензии Attribution 4.0 International (CC BY 4.0) // Текст лицензии доступен по ссылке: diff --git a/SSL/src/Constants/КаталогРезервныхКопийВстроенногоХранилищаДвоичныхДанныхДляLinux/КаталогРезервныхКопийВстроенногоХранилищаДвоичныхДанныхДляLinux.mdo b/SSL/src/Constants/КаталогРезервныхКопийВстроенногоХранилищаДвоичныхДанныхДляLinux/КаталогРезервныхКопийВстроенногоХранилищаДвоичныхДанныхДляLinux.mdo new file mode 100644 index 000000000..d9073f5bb --- /dev/null +++ b/SSL/src/Constants/КаталогРезервныхКопийВстроенногоХранилищаДвоичныхДанныхДляLinux/КаталогРезервныхКопийВстроенногоХранилищаДвоичныхДанныхДляLinux.mdo @@ -0,0 +1,21 @@ + + + + + + + + КаталогРезервныхКопийВстроенногоХранилищаДвоичныхДанныхДляLinux + + ru + Каталог резервных копий встроенного хранилища двоичных данных для Linux + + + String + + + true + + + Managed + diff --git a/SSL/src/Constants/КаталогРезервныхКопийВстроенногоХранилищаДвоичныхДанныхДляWindows/КаталогРезервныхКопийВстроенногоХранилищаДвоичныхДанныхДляWindows.mdo b/SSL/src/Constants/КаталогРезервныхКопийВстроенногоХранилищаДвоичныхДанныхДляWindows/КаталогРезервныхКопийВстроенногоХранилищаДвоичныхДанныхДляWindows.mdo new file mode 100644 index 000000000..b03cb5e1f --- /dev/null +++ b/SSL/src/Constants/КаталогРезервныхКопийВстроенногоХранилищаДвоичныхДанныхДляWindows/КаталогРезервныхКопийВстроенногоХранилищаДвоичныхДанныхДляWindows.mdo @@ -0,0 +1,21 @@ + + + + + + + + КаталогРезервныхКопийВстроенногоХранилищаДвоичныхДанныхДляWindows + + ru + Каталог резервных копий встроенного хранилища двоичных данных для Windows + + + String + + + true + + + Managed + diff --git a/SSL/src/Constants/КаталогСообщенийОбменаДаннымиДляLinux/ValueManagerModule.bsl b/SSL/src/Constants/КаталогСообщенийОбменаДаннымиДляLinux/ValueManagerModule.bsl index 2d8221d60..6d38e0b8b 100644 --- a/SSL/src/Constants/КаталогСообщенийОбменаДаннымиДляLinux/ValueManagerModule.bsl +++ b/SSL/src/Constants/КаталогСообщенийОбменаДаннымиДляLinux/ValueManagerModule.bsl @@ -1,5 +1,5 @@ /////////////////////////////////////////////////////////////////////////////////////////////////////// -// Copyright (c) 2024, ООО 1С-Софт +// Copyright (c) 2025, ООО 1С-Софт // Все права защищены. Эта программа и сопроводительные материалы предоставляются // в соответствии с условиями лицензии Attribution 4.0 International (CC BY 4.0) // Текст лицензии доступен по ссылке: diff --git a/SSL/src/Constants/КаталогСообщенийОбменаДаннымиДляWindows/ValueManagerModule.bsl b/SSL/src/Constants/КаталогСообщенийОбменаДаннымиДляWindows/ValueManagerModule.bsl index 2d8221d60..6d38e0b8b 100644 --- a/SSL/src/Constants/КаталогСообщенийОбменаДаннымиДляWindows/ValueManagerModule.bsl +++ b/SSL/src/Constants/КаталогСообщенийОбменаДаннымиДляWindows/ValueManagerModule.bsl @@ -1,5 +1,5 @@ /////////////////////////////////////////////////////////////////////////////////////////////////////// -// Copyright (c) 2024, ООО 1С-Софт +// Copyright (c) 2025, ООО 1С-Софт // Все права защищены. Эта программа и сопроводительные материалы предоставляются // в соответствии с условиями лицензии Attribution 4.0 International (CC BY 4.0) // Текст лицензии доступен по ссылке: diff --git a/SSL/src/Constants/КоличествоПотоковДлительныхОпераций/ValueManagerModule.bsl b/SSL/src/Constants/КоличествоПотоковДлительныхОпераций/ValueManagerModule.bsl index d45a38192..0a26a5cba 100644 --- a/SSL/src/Constants/КоличествоПотоковДлительныхОпераций/ValueManagerModule.bsl +++ b/SSL/src/Constants/КоличествоПотоковДлительныхОпераций/ValueManagerModule.bsl @@ -1,5 +1,5 @@ /////////////////////////////////////////////////////////////////////////////////////////////////////// -// Copyright (c) 2024, ООО 1С-Софт +// Copyright (c) 2025, ООО 1С-Софт // Все права защищены. Эта программа и сопроводительные материалы предоставляются // в соответствии с условиями лицензии Attribution 4.0 International (CC BY 4.0) // Текст лицензии доступен по ссылке: diff --git a/SSL/src/Constants/НастройкиВходаПользователей/ValueManagerModule.bsl b/SSL/src/Constants/НастройкиВходаПользователей/ValueManagerModule.bsl index 92b5ae0ca..4ea9687cf 100644 --- a/SSL/src/Constants/НастройкиВходаПользователей/ValueManagerModule.bsl +++ b/SSL/src/Constants/НастройкиВходаПользователей/ValueManagerModule.bsl @@ -1,5 +1,5 @@ /////////////////////////////////////////////////////////////////////////////////////////////////////// -// Copyright (c) 2024, ООО 1С-Софт +// Copyright (c) 2025, ООО 1С-Софт // Все права защищены. Эта программа и сопроводительные материалы предоставляются // в соответствии с условиями лицензии Attribution 4.0 International (CC BY 4.0) // Текст лицензии доступен по ссылке: diff --git a/SSL/src/Constants/НастройкиРегистрацииСобытийДоступаКДанным/ValueManagerModule.bsl b/SSL/src/Constants/НастройкиРегистрацииСобытийДоступаКДанным/ValueManagerModule.bsl index 6752c4680..3e5ebd85e 100644 --- a/SSL/src/Constants/НастройкиРегистрацииСобытийДоступаКДанным/ValueManagerModule.bsl +++ b/SSL/src/Constants/НастройкиРегистрацииСобытийДоступаКДанным/ValueManagerModule.bsl @@ -1,5 +1,5 @@ /////////////////////////////////////////////////////////////////////////////////////////////////////// -// Copyright (c) 2024, ООО 1С-Софт +// Copyright (c) 2025, ООО 1С-Софт // Все права защищены. Эта программа и сопроводительные материалы предоставляются // в соответствии с условиями лицензии Attribution 4.0 International (CC BY 4.0) // Текст лицензии доступен по ссылке: diff --git a/SSL/src/Constants/НезависимоеИспользованиеДополнительныхОтчетовИОбработокВМоделиСервиса/ValueManagerModule.bsl b/SSL/src/Constants/НезависимоеИспользованиеДополнительныхОтчетовИОбработокВМоделиСервиса/ValueManagerModule.bsl index 4d06311e1..e1139409c 100644 --- a/SSL/src/Constants/НезависимоеИспользованиеДополнительныхОтчетовИОбработокВМоделиСервиса/ValueManagerModule.bsl +++ b/SSL/src/Constants/НезависимоеИспользованиеДополнительныхОтчетовИОбработокВМоделиСервиса/ValueManagerModule.bsl @@ -1,5 +1,5 @@ /////////////////////////////////////////////////////////////////////////////////////////////////////// -// Copyright (c) 2024, ООО 1С-Софт +// Copyright (c) 2025, ООО 1С-Софт // Все права защищены. Эта программа и сопроводительные материалы предоставляются // в соответствии с условиями лицензии Attribution 4.0 International (CC BY 4.0) // Текст лицензии доступен по ссылке: diff --git a/SSL/src/Constants/ОграничиватьДоступНаУровнеЗаписей/ValueManagerModule.bsl b/SSL/src/Constants/ОграничиватьДоступНаУровнеЗаписей/ValueManagerModule.bsl index ba7aea22d..3ba429cf5 100644 --- a/SSL/src/Constants/ОграничиватьДоступНаУровнеЗаписей/ValueManagerModule.bsl +++ b/SSL/src/Constants/ОграничиватьДоступНаУровнеЗаписей/ValueManagerModule.bsl @@ -1,5 +1,5 @@ /////////////////////////////////////////////////////////////////////////////////////////////////////// -// Copyright (c) 2024, ООО 1С-Софт +// Copyright (c) 2025, ООО 1С-Софт // Все права защищены. Эта программа и сопроводительные материалы предоставляются // в соответствии с условиями лицензии Attribution 4.0 International (CC BY 4.0) // Текст лицензии доступен по ссылке: @@ -23,12 +23,14 @@ Возврат; КонецЕсли; - СтароеЗначение = Константы.ОграничиватьДоступНаУровнеЗаписей.Получить(); + СтароеЗначение = УправлениеДоступомСлужебный.КонстантаОграничиватьДоступНаУровнеЗаписей(); Если Значение = СтароеЗначение Тогда Возврат; КонецЕсли; + УправлениеДоступомСлужебный.ПроверитьОграничениеДоступаОтключено(); + Если ОбщегоНазначения.ЭтоАвтономноеРабочееМесто() Тогда ТекстОшибки = НСтр("ru = 'Изменение ограничения доступа на уровне записей следует выполнить в приложении в сервисе.'"); @@ -68,7 +70,12 @@ // Только для внутреннего использования. Процедура ЗарегистрироватьИзменениеПриПолученииДанных(ЭлементДанных) Экспорт - Если ЭлементДанных.Значение = Константы.ОграничиватьДоступНаУровнеЗаписей.Получить() Тогда + ТекущееЗначение = УправлениеДоступомСлужебный.КонстантаОграничиватьДоступНаУровнеЗаписей(); + + Если ЭлементДанных.Значение = ТекущееЗначение + Или УправлениеДоступомСлужебный.ОтключеноОграничениеНаУровнеЗаписей() + Или ОбщегоНазначения.РазделениеВключено() Тогда + // Изменение настроек прав в АРМ заблокированы и не загружаются в область данных. Возврат; КонецЕсли; @@ -82,6 +89,7 @@ Если ОбщегоНазначения.РазделениеВключено() Тогда // Изменение настроек прав в АРМ заблокированы и не загружаются в область данных. + ПользователиСлужебный.ЗарегистрироватьСсылки("ОграничиватьДоступНаУровнеЗаписей", Null); Возврат; КонецЕсли; @@ -90,8 +98,10 @@ Возврат; КонецЕсли; - УправлениеДоступомСлужебный.ПриИзмененииОграниченияДоступаНаУровнеЗаписей( - Константы.ОграничиватьДоступНаУровнеЗаписей.Получить()); + ТекущееЗначение = УправлениеДоступомСлужебный.КонстантаОграничиватьДоступНаУровнеЗаписей(); + Если Не УправлениеДоступомСлужебный.ОтключеноОграничениеНаУровнеЗаписей() Тогда + УправлениеДоступомСлужебный.ПриИзмененииОграниченияДоступаНаУровнеЗаписей(ТекущееЗначение); + КонецЕсли; ПользователиСлужебный.ЗарегистрироватьСсылки("ОграничиватьДоступНаУровнеЗаписей", Null); diff --git a/SSL/src/Constants/ОграничиватьДоступНаУровнеЗаписейУниверсально/ValueManagerModule.bsl b/SSL/src/Constants/ОграничиватьДоступНаУровнеЗаписейУниверсально/ValueManagerModule.bsl index 5d867409d..7e5b50d2d 100644 --- a/SSL/src/Constants/ОграничиватьДоступНаУровнеЗаписейУниверсально/ValueManagerModule.bsl +++ b/SSL/src/Constants/ОграничиватьДоступНаУровнеЗаписейУниверсально/ValueManagerModule.bsl @@ -1,5 +1,5 @@ /////////////////////////////////////////////////////////////////////////////////////////////////////// -// Copyright (c) 2024, ООО 1С-Софт +// Copyright (c) 2025, ООО 1С-Софт // Все права защищены. Эта программа и сопроводительные материалы предоставляются // в соответствии с условиями лицензии Attribution 4.0 International (CC BY 4.0) // Текст лицензии доступен по ссылке: diff --git a/SSL/src/Constants/ОтправлятьПисьмаВФорматеHTML/ValueManagerModule.bsl b/SSL/src/Constants/ОтправлятьПисьмаВФорматеHTML/ValueManagerModule.bsl index d6e9f1a2b..89ed21042 100644 --- a/SSL/src/Constants/ОтправлятьПисьмаВФорматеHTML/ValueManagerModule.bsl +++ b/SSL/src/Constants/ОтправлятьПисьмаВФорматеHTML/ValueManagerModule.bsl @@ -1,5 +1,5 @@ /////////////////////////////////////////////////////////////////////////////////////////////////////// -// Copyright (c) 2024, ООО 1С-Софт +// Copyright (c) 2025, ООО 1С-Софт // Все права защищены. Эта программа и сопроводительные материалы предоставляются // в соответствии с условиями лицензии Attribution 4.0 International (CC BY 4.0) // Текст лицензии доступен по ссылке: diff --git a/SSL/src/Constants/ПервоеОбновлениеДоступаЗавершилось/ValueManagerModule.bsl b/SSL/src/Constants/ПервоеОбновлениеДоступаЗавершилось/ValueManagerModule.bsl index bfedd2228..585d09b56 100644 --- a/SSL/src/Constants/ПервоеОбновлениеДоступаЗавершилось/ValueManagerModule.bsl +++ b/SSL/src/Constants/ПервоеОбновлениеДоступаЗавершилось/ValueManagerModule.bsl @@ -1,5 +1,5 @@ /////////////////////////////////////////////////////////////////////////////////////////////////////// -// Copyright (c) 2024, ООО 1С-Софт +// Copyright (c) 2025, ООО 1С-Софт // Все права защищены. Эта программа и сопроводительные материалы предоставляются // в соответствии с условиями лицензии Attribution 4.0 International (CC BY 4.0) // Текст лицензии доступен по ссылке: diff --git a/SSL/src/Constants/ПрофильБезопасностиИнформационнойБазы/ValueManagerModule.bsl b/SSL/src/Constants/ПрофильБезопасностиИнформационнойБазы/ValueManagerModule.bsl index 250c693ed..d9792a533 100644 --- a/SSL/src/Constants/ПрофильБезопасностиИнформационнойБазы/ValueManagerModule.bsl +++ b/SSL/src/Constants/ПрофильБезопасностиИнформационнойБазы/ValueManagerModule.bsl @@ -1,5 +1,5 @@ /////////////////////////////////////////////////////////////////////////////////////////////////////// -// Copyright (c) 2024, ООО 1С-Софт +// Copyright (c) 2025, ООО 1С-Софт // Все права защищены. Эта программа и сопроводительные материалы предоставляются // в соответствии с условиями лицензии Attribution 4.0 International (CC BY 4.0) // Текст лицензии доступен по ссылке: diff --git a/SSL/src/Constants/ПутьКТомуБезУчетаРегиональныхНастроек/ValueManagerModule.bsl b/SSL/src/Constants/ПутьКТомуБезУчетаРегиональныхНастроек/ValueManagerModule.bsl index cf79d1bcc..ccd3a2063 100644 --- a/SSL/src/Constants/ПутьКТомуБезУчетаРегиональныхНастроек/ValueManagerModule.bsl +++ b/SSL/src/Constants/ПутьКТомуБезУчетаРегиональныхНастроек/ValueManagerModule.bsl @@ -1,5 +1,5 @@ /////////////////////////////////////////////////////////////////////////////////////////////////////// -// Copyright (c) 2024, ООО 1С-Софт +// Copyright (c) 2025, ООО 1С-Софт // Все права защищены. Эта программа и сопроводительные материалы предоставляются // в соответствии с условиями лицензии Attribution 4.0 International (CC BY 4.0) // Текст лицензии доступен по ссылке: diff --git a/SSL/src/Constants/РазмерПорцииПеремещаемыхФайлов/РазмерПорцииПеремещаемыхФайлов.mdo b/SSL/src/Constants/РазмерПорцииПеремещаемыхФайлов/РазмерПорцииПеремещаемыхФайлов.mdo new file mode 100644 index 000000000..b472adc2c --- /dev/null +++ b/SSL/src/Constants/РазмерПорцииПеремещаемыхФайлов/РазмерПорцииПеремещаемыхФайлов.mdo @@ -0,0 +1,24 @@ + + + + + + + + РазмерПорцииПеремещаемыхФайлов + + ru + Размер порции перемещаемых файлов + + + Number + + 3 + true + + + true + + + Managed + diff --git a/SSL/src/Constants/РегистрироватьИзмененияПравДоступа/ValueManagerModule.bsl b/SSL/src/Constants/РегистрироватьИзмененияПравДоступа/ValueManagerModule.bsl index 4a4048bfc..5e6d7e40c 100644 --- a/SSL/src/Constants/РегистрироватьИзмененияПравДоступа/ValueManagerModule.bsl +++ b/SSL/src/Constants/РегистрироватьИзмененияПравДоступа/ValueManagerModule.bsl @@ -1,5 +1,5 @@ /////////////////////////////////////////////////////////////////////////////////////////////////////// -// Copyright (c) 2024, ООО 1С-Софт +// Copyright (c) 2025, ООО 1С-Софт // Все права защищены. Эта программа и сопроводительные материалы предоставляются // в соответствии с условиями лицензии Attribution 4.0 International (CC BY 4.0) // Текст лицензии доступен по ссылке: diff --git a/SSL/src/Constants/РегистрироватьПоказателиСерверныхОповещений/ValueManagerModule.bsl b/SSL/src/Constants/РегистрироватьПоказателиСерверныхОповещений/ValueManagerModule.bsl index 87f3b813d..c3fe0f479 100644 --- a/SSL/src/Constants/РегистрироватьПоказателиСерверныхОповещений/ValueManagerModule.bsl +++ b/SSL/src/Constants/РегистрироватьПоказателиСерверныхОповещений/ValueManagerModule.bsl @@ -1,5 +1,5 @@ /////////////////////////////////////////////////////////////////////////////////////////////////////// -// Copyright (c) 2024, ООО 1С-Софт +// Copyright (c) 2025, ООО 1С-Софт // Все права защищены. Эта программа и сопроводительные материалы предоставляются // в соответствии с условиями лицензии Attribution 4.0 International (CC BY 4.0) // Текст лицензии доступен по ссылке: diff --git a/SSL/src/Constants/СинхронизироватьФайлы/ValueManagerModule.bsl b/SSL/src/Constants/СинхронизироватьФайлы/ValueManagerModule.bsl index bd7a5b79b..7059ce817 100644 --- a/SSL/src/Constants/СинхронизироватьФайлы/ValueManagerModule.bsl +++ b/SSL/src/Constants/СинхронизироватьФайлы/ValueManagerModule.bsl @@ -1,5 +1,5 @@ /////////////////////////////////////////////////////////////////////////////////////////////////////// -// Copyright (c) 2024, ООО 1С-Софт +// Copyright (c) 2025, ООО 1С-Софт // Все права защищены. Эта программа и сопроводительные материалы предоставляются // в соответствии с условиями лицензии Attribution 4.0 International (CC BY 4.0) // Текст лицензии доступен по ссылке: diff --git a/SSL/src/Constants/СпособХраненияФайлов/СпособХраненияФайлов.mdo b/SSL/src/Constants/СпособХраненияФайлов/СпособХраненияФайлов.mdo index a286fd20b..cd034ab19 100644 --- a/SSL/src/Constants/СпособХраненияФайлов/СпособХраненияФайлов.mdo +++ b/SSL/src/Constants/СпособХраненияФайлов/СпособХраненияФайлов.mdo @@ -10,7 +10,7 @@ ru Способ хранения файлов - Способы хранения: "ВИнформационнойБазе", "ВТомахНаДиске", "ВИнформационнойБазеИТомахНаДиске" + Способы хранения: "ВИнформационнойБазе", "ВТомахНаДиске", "ВИнформационнойБазеИТомахНаДиске", "ВоВстроенномХранилищеДвоичныхДанных", "ВоВнешнемХранилищеДвоичныхДанных" String diff --git a/SSL/src/Constants/ТекстИнформированияПользователяОНедоступностиФайлаВАрхиве/ТекстИнформированияПользователяОНедоступностиФайлаВАрхиве.mdo b/SSL/src/Constants/ТекстИнформированияПользователяОНедоступностиФайлаВАрхиве/ТекстИнформированияПользователяОНедоступностиФайлаВАрхиве.mdo new file mode 100644 index 000000000..74565c2e3 --- /dev/null +++ b/SSL/src/Constants/ТекстИнформированияПользователяОНедоступностиФайлаВАрхиве/ТекстИнформированияПользователяОНедоступностиФайлаВАрхиве.mdo @@ -0,0 +1,23 @@ + + + + + + + + ТекстИнформированияПользователяОНедоступностиФайлаВАрхиве + + ru + Текст информирования пользователя о недоступности файла в архиве + + + String + + 1000 + + + true + + + Managed + diff --git a/SSL/src/Constants/ТипПодписиКриптографииПоУмолчанию/ValueManagerModule.bsl b/SSL/src/Constants/ТипПодписиКриптографииПоУмолчанию/ValueManagerModule.bsl index ec29b31f1..adda93aea 100644 --- a/SSL/src/Constants/ТипПодписиКриптографииПоУмолчанию/ValueManagerModule.bsl +++ b/SSL/src/Constants/ТипПодписиКриптографииПоУмолчанию/ValueManagerModule.bsl @@ -1,5 +1,5 @@ /////////////////////////////////////////////////////////////////////////////////////////////////////// -// Copyright (c) 2024, ООО 1С-Софт +// Copyright (c) 2025, ООО 1С-Софт // Все права защищены. Эта программа и сопроводительные материалы предоставляются // в соответствии с условиями лицензии Attribution 4.0 International (CC BY 4.0) // Текст лицензии доступен по ссылке: diff --git a/SSL/src/Constants/УсовершенствоватьПодписиАвтоматически/ValueManagerModule.bsl b/SSL/src/Constants/УсовершенствоватьПодписиАвтоматически/ValueManagerModule.bsl index d651447a3..98a93e9e1 100644 --- a/SSL/src/Constants/УсовершенствоватьПодписиАвтоматически/ValueManagerModule.bsl +++ b/SSL/src/Constants/УсовершенствоватьПодписиАвтоматически/ValueManagerModule.bsl @@ -1,5 +1,5 @@ /////////////////////////////////////////////////////////////////////////////////////////////////////// -// Copyright (c) 2024, ООО 1С-Софт +// Copyright (c) 2025, ООО 1С-Софт // Все права защищены. Эта программа и сопроводительные материалы предоставляются // в соответствии с условиями лицензии Attribution 4.0 International (CC BY 4.0) // Текст лицензии доступен по ссылке: diff --git a/SSL/src/Constants/ЭтоАвтономноеРабочееМесто/ValueManagerModule.bsl b/SSL/src/Constants/ЭтоАвтономноеРабочееМесто/ValueManagerModule.bsl index fa58fb7ff..daebf4fd9 100644 --- a/SSL/src/Constants/ЭтоАвтономноеРабочееМесто/ValueManagerModule.bsl +++ b/SSL/src/Constants/ЭтоАвтономноеРабочееМесто/ValueManagerModule.bsl @@ -1,5 +1,5 @@ /////////////////////////////////////////////////////////////////////////////////////////////////////// -// Copyright (c) 2024, ООО 1С-Софт +// Copyright (c) 2025, ООО 1С-Софт // Все права защищены. Эта программа и сопроводительные материалы предоставляются // в соответствии с условиями лицензии Attribution 4.0 International (CC BY 4.0) // Текст лицензии доступен по ссылке: diff --git a/SSL/src/DataProcessors/АвтоматическоеИзвлечениеТекстов/Commands/АвтоматическоеИзвлечениеТекстов/CommandModule.bsl b/SSL/src/DataProcessors/АвтоматическоеИзвлечениеТекстов/Commands/АвтоматическоеИзвлечениеТекстов/CommandModule.bsl index 3e4d60839..53c2228be 100644 --- a/SSL/src/DataProcessors/АвтоматическоеИзвлечениеТекстов/Commands/АвтоматическоеИзвлечениеТекстов/CommandModule.bsl +++ b/SSL/src/DataProcessors/АвтоматическоеИзвлечениеТекстов/Commands/АвтоматическоеИзвлечениеТекстов/CommandModule.bsl @@ -1,5 +1,5 @@ /////////////////////////////////////////////////////////////////////////////////////////////////////// -// Copyright (c) 2024, ООО 1С-Софт +// Copyright (c) 2025, ООО 1С-Софт // Все права защищены. Эта программа и сопроводительные материалы предоставляются // в соответствии с условиями лицензии Attribution 4.0 International (CC BY 4.0) // Текст лицензии доступен по ссылке: diff --git a/SSL/src/DataProcessors/АвтоматическоеИзвлечениеТекстов/Forms/Форма/Module.bsl b/SSL/src/DataProcessors/АвтоматическоеИзвлечениеТекстов/Forms/Форма/Module.bsl index 9bfa1bc28..767de8d7b 100644 --- a/SSL/src/DataProcessors/АвтоматическоеИзвлечениеТекстов/Forms/Форма/Module.bsl +++ b/SSL/src/DataProcessors/АвтоматическоеИзвлечениеТекстов/Forms/Форма/Module.bsl @@ -1,5 +1,5 @@ /////////////////////////////////////////////////////////////////////////////////////////////////////// -// Copyright (c) 2024, ООО 1С-Софт +// Copyright (c) 2025, ООО 1С-Софт // Все права защищены. Эта программа и сопроводительные материалы предоставляются // в соответствии с условиями лицензии Attribution 4.0 International (CC BY 4.0) // Текст лицензии доступен по ссылке: diff --git a/SSL/src/DataProcessors/АктивныеПользователи/Commands/АктивныеПользователи/CommandModule.bsl b/SSL/src/DataProcessors/АктивныеПользователи/Commands/АктивныеПользователи/CommandModule.bsl index 6df7987ae..ca85893fc 100644 --- a/SSL/src/DataProcessors/АктивныеПользователи/Commands/АктивныеПользователи/CommandModule.bsl +++ b/SSL/src/DataProcessors/АктивныеПользователи/Commands/АктивныеПользователи/CommandModule.bsl @@ -1,5 +1,5 @@ /////////////////////////////////////////////////////////////////////////////////////////////////////// -// Copyright (c) 2024, ООО 1С-Софт +// Copyright (c) 2025, ООО 1С-Софт // Все права защищены. Эта программа и сопроводительные материалы предоставляются // в соответствии с условиями лицензии Attribution 4.0 International (CC BY 4.0) // Текст лицензии доступен по ссылке: diff --git a/SSL/src/DataProcessors/АктивныеПользователи/Forms/АктивныеПользователи/Module.bsl b/SSL/src/DataProcessors/АктивныеПользователи/Forms/АктивныеПользователи/Module.bsl index 9deaa9f34..3734306f3 100644 --- a/SSL/src/DataProcessors/АктивныеПользователи/Forms/АктивныеПользователи/Module.bsl +++ b/SSL/src/DataProcessors/АктивныеПользователи/Forms/АктивныеПользователи/Module.bsl @@ -1,5 +1,5 @@ /////////////////////////////////////////////////////////////////////////////////////////////////////// -// Copyright (c) 2024, ООО 1С-Софт +// Copyright (c) 2025, ООО 1С-Софт // Все права защищены. Эта программа и сопроводительные материалы предоставляются // в соответствии с условиями лицензии Attribution 4.0 International (CC BY 4.0) // Текст лицензии доступен по ссылке: diff --git a/SSL/src/DataProcessors/БлокировкаРаботыПользователей/Forms/БлокировкаСоединенийСИнформационнойБазой/Module.bsl b/SSL/src/DataProcessors/БлокировкаРаботыПользователей/Forms/БлокировкаСоединенийСИнформационнойБазой/Module.bsl index 4aa145cc9..c2b9bbad6 100644 --- a/SSL/src/DataProcessors/БлокировкаРаботыПользователей/Forms/БлокировкаСоединенийСИнформационнойБазой/Module.bsl +++ b/SSL/src/DataProcessors/БлокировкаРаботыПользователей/Forms/БлокировкаСоединенийСИнформационнойБазой/Module.bsl @@ -1,5 +1,5 @@ /////////////////////////////////////////////////////////////////////////////////////////////////////// -// Copyright (c) 2024, ООО 1С-Софт +// Copyright (c) 2025, ООО 1С-Софт // Все права защищены. Эта программа и сопроводительные материалы предоставляются // в соответствии с условиями лицензии Attribution 4.0 International (CC BY 4.0) // Текст лицензии доступен по ссылке: diff --git a/SSL/src/DataProcessors/БлокировкаРаботыПользователей/Forms/ОшибкаУстановкиМонопольногоРежима/Module.bsl b/SSL/src/DataProcessors/БлокировкаРаботыПользователей/Forms/ОшибкаУстановкиМонопольногоРежима/Module.bsl index b44e6c25c..835a5a07b 100644 --- a/SSL/src/DataProcessors/БлокировкаРаботыПользователей/Forms/ОшибкаУстановкиМонопольногоРежима/Module.bsl +++ b/SSL/src/DataProcessors/БлокировкаРаботыПользователей/Forms/ОшибкаУстановкиМонопольногоРежима/Module.bsl @@ -1,5 +1,5 @@ /////////////////////////////////////////////////////////////////////////////////////////////////////// -// Copyright (c) 2024, ООО 1С-Софт +// Copyright (c) 2025, ООО 1С-Софт // Все права защищены. Эта программа и сопроводительные материалы предоставляются // в соответствии с условиями лицензии Attribution 4.0 International (CC BY 4.0) // Текст лицензии доступен по ссылке: diff --git a/SSL/src/DataProcessors/БлокировкаРаботыПользователей/ObjectModule.bsl b/SSL/src/DataProcessors/БлокировкаРаботыПользователей/ObjectModule.bsl index d1e077fbe..111750fe8 100644 --- a/SSL/src/DataProcessors/БлокировкаРаботыПользователей/ObjectModule.bsl +++ b/SSL/src/DataProcessors/БлокировкаРаботыПользователей/ObjectModule.bsl @@ -1,5 +1,5 @@ /////////////////////////////////////////////////////////////////////////////////////////////////////// -// Copyright (c) 2024, ООО 1С-Софт +// Copyright (c) 2025, ООО 1С-Софт // Все права защищены. Эта программа и сопроводительные материалы предоставляются // в соответствии с условиями лицензии Attribution 4.0 International (CC BY 4.0) // Текст лицензии доступен по ссылке: diff --git a/SSL/src/DataProcessors/ВводКонтактнойИнформации/Forms/ВводАдреса/Module.bsl b/SSL/src/DataProcessors/ВводКонтактнойИнформации/Forms/ВводАдреса/Module.bsl index 211d8d10e..26b02261b 100644 --- a/SSL/src/DataProcessors/ВводКонтактнойИнформации/Forms/ВводАдреса/Module.bsl +++ b/SSL/src/DataProcessors/ВводКонтактнойИнформации/Forms/ВводАдреса/Module.bsl @@ -1,5 +1,5 @@ /////////////////////////////////////////////////////////////////////////////////////////////////////// -// Copyright (c) 2024, ООО 1С-Софт +// Copyright (c) 2025, ООО 1С-Софт // Все права защищены. Эта программа и сопроводительные материалы предоставляются // в соответствии с условиями лицензии Attribution 4.0 International (CC BY 4.0) // Текст лицензии доступен по ссылке: @@ -53,8 +53,14 @@ Если ПустаяСтрока(ЗначениеКонтактнойИнформации) Тогда НаселенныйПунктДетально = УправлениеКонтактнойИнформацией.ОписаниеНовойКонтактнойИнформации(Перечисления.ТипыКонтактнойИнформации.Адрес); // Новый адрес - НаселенныйПунктДетально.addressType = УправлениеКонтактнойИнформациейКлиентСервер.ИностранныйАдрес(); - НаселенныйПунктДетально.value = Параметры.Представление; + + Если ЗначениеЗаполнено(Параметры.Представление) Тогда + НаселенныйПунктДетально.value = Параметры.Представление; + НаселенныйПунктДетально.addressType = УправлениеКонтактнойИнформациейКлиентСервер.АдресВСвободнойФорме(); + Иначе + НаселенныйПунктДетально.addressType = УправлениеКонтактнойИнформациейКлиентСервер.ИностранныйАдрес(); + КонецЕсли; + ИначеЕсли УправлениеКонтактнойИнформациейКлиентСервер.ЭтоКонтактнаяИнформацияВJSON(ЗначениеКонтактнойИнформации) Тогда ДанныеАдреса = УправлениеКонтактнойИнформациейСлужебный.JSONВКонтактнуюИнформациюПоПолям(ЗначениеКонтактнойИнформации, Перечисления.ТипыКонтактнойИнформации.Адрес); НаселенныйПунктДетально = ПодготовитьАдресДляВвода(ДанныеАдреса); diff --git a/SSL/src/DataProcessors/ВводКонтактнойИнформации/Forms/ВводТелефона/Module.bsl b/SSL/src/DataProcessors/ВводКонтактнойИнформации/Forms/ВводТелефона/Module.bsl index 9ac08c089..adb9f079d 100644 --- a/SSL/src/DataProcessors/ВводКонтактнойИнформации/Forms/ВводТелефона/Module.bsl +++ b/SSL/src/DataProcessors/ВводКонтактнойИнформации/Forms/ВводТелефона/Module.bsl @@ -1,5 +1,5 @@ /////////////////////////////////////////////////////////////////////////////////////////////////////// -// Copyright (c) 2024, ООО 1С-Софт +// Copyright (c) 2025, ООО 1С-Софт // Все права защищены. Эта программа и сопроводительные материалы предоставляются // в соответствии с условиями лицензии Attribution 4.0 International (CC BY 4.0) // Текст лицензии доступен по ссылке: diff --git a/SSL/src/DataProcessors/ВводКонтактнойИнформации/Forms/ВебСайт/Module.bsl b/SSL/src/DataProcessors/ВводКонтактнойИнформации/Forms/ВебСайт/Module.bsl index 37a310f5a..a1425bab9 100644 --- a/SSL/src/DataProcessors/ВводКонтактнойИнформации/Forms/ВебСайт/Module.bsl +++ b/SSL/src/DataProcessors/ВводКонтактнойИнформации/Forms/ВебСайт/Module.bsl @@ -1,5 +1,5 @@ /////////////////////////////////////////////////////////////////////////////////////////////////////// -// Copyright (c) 2024, ООО 1С-Софт +// Copyright (c) 2025, ООО 1С-Софт // Все права защищены. Эта программа и сопроводительные материалы предоставляются // в соответствии с условиями лицензии Attribution 4.0 International (CC BY 4.0) // Текст лицензии доступен по ссылке: diff --git a/SSL/src/DataProcessors/ВводКонтактнойИнформации/Forms/ИсторияКонтактнойИнформации/Module.bsl b/SSL/src/DataProcessors/ВводКонтактнойИнформации/Forms/ИсторияКонтактнойИнформации/Module.bsl index 5c73fa50a..3a8775012 100644 --- a/SSL/src/DataProcessors/ВводКонтактнойИнформации/Forms/ИсторияКонтактнойИнформации/Module.bsl +++ b/SSL/src/DataProcessors/ВводКонтактнойИнформации/Forms/ИсторияКонтактнойИнформации/Module.bsl @@ -1,5 +1,5 @@ /////////////////////////////////////////////////////////////////////////////////////////////////////// -// Copyright (c) 2024, ООО 1С-Софт +// Copyright (c) 2025, ООО 1С-Софт // Все права защищены. Эта программа и сопроводительные материалы предоставляются // в соответствии с условиями лицензии Attribution 4.0 International (CC BY 4.0) // Текст лицензии доступен по ссылке: diff --git a/SSL/src/DataProcessors/ВводКонтактнойИнформации/ManagerModule.bsl b/SSL/src/DataProcessors/ВводКонтактнойИнформации/ManagerModule.bsl index a1eb147b2..e20a671c9 100644 --- a/SSL/src/DataProcessors/ВводКонтактнойИнформации/ManagerModule.bsl +++ b/SSL/src/DataProcessors/ВводКонтактнойИнформации/ManagerModule.bsl @@ -1,5 +1,5 @@ /////////////////////////////////////////////////////////////////////////////////////////////////////// -// Copyright (c) 2024, ООО 1С-Софт +// Copyright (c) 2025, ООО 1С-Софт // Все права защищены. Эта программа и сопроводительные материалы предоставляются // в соответствии с условиями лицензии Attribution 4.0 International (CC BY 4.0) // Текст лицензии доступен по ссылке: diff --git a/SSL/src/DataProcessors/ВыгрузкаЗагрузкаEnterpriseData/Commands/ЗагрузкаДанныхEnterpriseData/CommandModule.bsl b/SSL/src/DataProcessors/ВыгрузкаЗагрузкаEnterpriseData/Commands/ЗагрузкаДанныхEnterpriseData/CommandModule.bsl index 672f06aa7..34f99b41e 100644 --- a/SSL/src/DataProcessors/ВыгрузкаЗагрузкаEnterpriseData/Commands/ЗагрузкаДанныхEnterpriseData/CommandModule.bsl +++ b/SSL/src/DataProcessors/ВыгрузкаЗагрузкаEnterpriseData/Commands/ЗагрузкаДанныхEnterpriseData/CommandModule.bsl @@ -1,5 +1,5 @@ /////////////////////////////////////////////////////////////////////////////////////////////////////// -// Copyright (c) 2024, ООО 1С-Софт +// Copyright (c) 2025, ООО 1С-Софт // Все права защищены. Эта программа и сопроводительные материалы предоставляются // в соответствии с условиями лицензии Attribution 4.0 International (CC BY 4.0) // Текст лицензии доступен по ссылке: diff --git a/SSL/src/DataProcessors/ВыгрузкаЗагрузкаEnterpriseData/Forms/РедактированиеПериодаИОтбора/Help/ru.html b/SSL/src/DataProcessors/ВыгрузкаЗагрузкаEnterpriseData/Forms/РедактированиеПериодаИОтбора/Help/ru.html index 98bd61671..d45e10dd4 100644 --- a/SSL/src/DataProcessors/ВыгрузкаЗагрузкаEnterpriseData/Forms/РедактированиеПериодаИОтбора/Help/ru.html +++ b/SSL/src/DataProcessors/ВыгрузкаЗагрузкаEnterpriseData/Forms/РедактированиеПериодаИОтбора/Help/ru.html @@ -2,17 +2,28 @@

              Предназначена для отбора данных при интерактивной синхронизации данных.

              Отбор данных для выгрузки

              • Для документов используется период отбора. В поле За период нажмите  Выбрать, укажите период. Даты можно указать вручную или выбрать из календаря. С помощью ссылки Показать стандартные периоды можно быстро подобрать период. -
              • Нажмите Добавить условие. -
              • Выберите Поле для отбора. -
              • Выберите Вид сравнения. -
                • Виды сравнения Равно, Не равно, В группе, Не в группе предполагают выбор одного значения. С помощью видов сравнения Равно или В группе программа отберет только те записи, которые будут полностью соответствовать указанному значению. -
                • Виды сравнения В списке, В группе из списка, Не в списке, Не в группе из списка предполагают выбор нескольких значений. Виды сравнения В группе из списка или Не в группе из списка доступны, если в списках для выбора значений имеются группы. -
                • С помощью видов сравнения В списке или В группе из списка будут отобраны элементы, которые содержат то или иное значение, перечисленное в списке. -
                • Виды сравнения Не равно, Не в группе, Не в списке, Не в группе из списка являются отрицанием соответствующих видов сравнения. В результате выполнения условий с такими видами сравнения будут отобраны все элементы, кроме тех, которые указаны. -
                • Для видов сравнения Заполнено и Не заполнено не требуется выбор значения. С помощью вида сравнения Заполнено, например, можно отобрать документы, в которых не проставлена цена на товар.
              • Укажите Значение. +
              • +
              • Нажмите Добавить условие. +
              • +
              • Выберите Поле для отбора. +
              • +
              • Выберите Вид сравнения. +
                • Виды сравнения Равно, Не равно, В группе, Не в группе предполагают выбор одного значения. С помощью видов сравнения Равно или В группе приложение отберет только те записи, которые будут полностью соответствовать указанному значению. +
                • +
                • Виды сравнения В списке, В группе из списка, Не в списке, Не в группе из списка предполагают выбор нескольких значений. Виды сравнения В группе из списка или Не в группе из списка доступны, если в списках для выбора значений имеются группы. +
                • +
                • С помощью видов сравнения В списке или В группе из списка будут отобраны элементы, которые содержат то или иное значение, перечисленное в списке. +
                • +
                • Виды сравнения Не равно, Не в группе, Не в списке, Не в группе из списка являются отрицанием соответствующих видов сравнения. В результате выполнения условий с такими видами сравнения будут отобраны все элементы, кроме тех, которые указаны. +
                • +
                • Для видов сравнения Заполнено и Не заполнено не требуется выбор значения. С помощью вида сравнения Заполнено, например, можно отобрать документы, в которых не проставлена цена на товар.
              • +
              • Укажите Значение.
                • В зависимости от вида сравнения значение можно написать вручную или выбрать из списка. -
                • С помощью команды Еще - Использовать в качестве значения поле можно указать в качестве значения поле документа или элемента списка. Выберите поле из предложенного списка.

              Группировка условий

              +
            • +
            • С помощью команды Еще - Использовать в качестве значения поле можно указать в качестве значения поле документа или элемента списка. Выберите поле из предложенного списка.

          Группировка условий

          • При необходимости условий для отбора может быть несколько, в этом случае они группируются с помощью логических операций И, Или, Не с помощью кнопки Сгруппировать условия. Условия для группировки можно выделить, а затем нажать кнопку. В этом случае все выбранные условия сразу попадут в группу. -
          •  Для отмены группировки условий выделите их, выполните команду Еще - Разгруппировать. -
          • Можно создать группы для условий с помощью команды Еще - Добавить новую группу, а затем уже перетащить туда нужные условия с помощью мыши или создать в группе новые условия.

          См. также:

          + +
        •  Для отмены группировки условий выделите их, выполните команду Еще - Разгруппировать. +
        • +
        • Можно создать группы для условий с помощью команды Еще - Добавить новую группу, а затем уже перетащить туда нужные условия с помощью мыши или создать в группе новые условия.
        • См. также:

          \ No newline at end of file diff --git a/SSL/src/DataProcessors/ВыгрузкаЗагрузкаEnterpriseData/Forms/РедактированиеПериодаИОтбора/Module.bsl b/SSL/src/DataProcessors/ВыгрузкаЗагрузкаEnterpriseData/Forms/РедактированиеПериодаИОтбора/Module.bsl index 8a7227f59..f16ceb9fc 100644 --- a/SSL/src/DataProcessors/ВыгрузкаЗагрузкаEnterpriseData/Forms/РедактированиеПериодаИОтбора/Module.bsl +++ b/SSL/src/DataProcessors/ВыгрузкаЗагрузкаEnterpriseData/Forms/РедактированиеПериодаИОтбора/Module.bsl @@ -1,5 +1,5 @@ /////////////////////////////////////////////////////////////////////////////////////////////////////// -// Copyright (c) 2024, ООО 1С-Софт +// Copyright (c) 2025, ООО 1С-Софт // Все права защищены. Эта программа и сопроводительные материалы предоставляются // в соответствии с условиями лицензии Attribution 4.0 International (CC BY 4.0) // Текст лицензии доступен по ссылке: diff --git a/SSL/src/DataProcessors/ВыгрузкаЗагрузкаEnterpriseData/Forms/Форма/Module.bsl b/SSL/src/DataProcessors/ВыгрузкаЗагрузкаEnterpriseData/Forms/Форма/Module.bsl index 29ae82b88..e8b3cf439 100644 --- a/SSL/src/DataProcessors/ВыгрузкаЗагрузкаEnterpriseData/Forms/Форма/Module.bsl +++ b/SSL/src/DataProcessors/ВыгрузкаЗагрузкаEnterpriseData/Forms/Форма/Module.bsl @@ -1,5 +1,5 @@ /////////////////////////////////////////////////////////////////////////////////////////////////////// -// Copyright (c) 2024, ООО 1С-Софт +// Copyright (c) 2025, ООО 1С-Софт // Все права защищены. Эта программа и сопроводительные материалы предоставляются // в соответствии с условиями лицензии Attribution 4.0 International (CC BY 4.0) // Текст лицензии доступен по ссылке: @@ -31,11 +31,11 @@ ВариантОткрытияФормы = ?(Параметры.Свойство("ТолькоЗагрузка"), "ТолькоЗагрузка", ""); Если ВариантОткрытияФормы = "ТолькоЗагрузка" Тогда - ЭтотОбъект.Заголовок = НСтр("ru = 'Загрузка данных EnterpriseData'"); + Заголовок = НСтр("ru = 'Загрузка данных EnterpriseData'"); Элементы.НадписьЗагрузкаВстроеннойОбработкой.Видимость = Истина; Иначе Элементы.НадписьЗагрузкаВстроеннойОбработкой.Видимость = Ложь; - ЭтотОбъект.Заголовок = НСтр("ru = 'Выгрузка и загрузка данных EnterpriseData'"); + Заголовок = НСтр("ru = 'Выгрузка и загрузка данных EnterpriseData'"); КонецЕсли; МетаОбработкаИмя = ОбработкаОбъект.Метаданные().Имя; @@ -1055,7 +1055,7 @@ ЗаписьXML = Новый ЗаписьXML; ЗаписьXML.УстановитьСтроку("UTF-8"); - ПрочитатУзел(ЧтениеXML, ЗаписьXML); + ПрочитатьУзел(ЧтениеXML, ЗаписьXML); Текст = ЗаписьXML.Закрыть(); НоваяСтрокаОтбораСКД.Отбор = ОбщегоНазначения.ЗначениеИзСтрокиXML(Текст); @@ -1072,7 +1072,7 @@ КонецПроцедуры &НаСервере -Процедура ПрочитатУзел(ЧтениеXML, ЗаписьXML) +Процедура ПрочитатьУзел(ЧтениеXML, ЗаписьXML) ЗаписьXML.ЗаписатьНачалоЭлемента(ЧтениеXML.Имя); Для Сч = 0 По ЧтениеXML.КоличествоАтрибутов() - 1 Цикл @@ -1084,7 +1084,7 @@ Пока ЧтениеXML.Прочитать() Цикл Если ЧтениеXML.ТипУзла = ТипУзлаXML.НачалоЭлемента Тогда - ПрочитатУзел(ЧтениеXML, ЗаписьXML) + ПрочитатьУзел(ЧтениеXML, ЗаписьXML) ИначеЕсли ЧтениеXML.ТипУзла = ТипУзлаXML.Текст Тогда ЗаписьXML.ЗаписатьТекст(ЧтениеXML.Значение); ИначеЕсли ЧтениеXML.ТипУзла = ТипУзлаXML.КонецЭлемента Тогда diff --git a/SSL/src/DataProcessors/ВыгрузкаЗагрузкаEnterpriseData/ObjectModule.bsl b/SSL/src/DataProcessors/ВыгрузкаЗагрузкаEnterpriseData/ObjectModule.bsl index 3c6190c4b..b9957bab5 100644 --- a/SSL/src/DataProcessors/ВыгрузкаЗагрузкаEnterpriseData/ObjectModule.bsl +++ b/SSL/src/DataProcessors/ВыгрузкаЗагрузкаEnterpriseData/ObjectModule.bsl @@ -1,5 +1,5 @@ /////////////////////////////////////////////////////////////////////////////////////////////////////// -// Copyright (c) 2024, ООО 1С-Софт +// Copyright (c) 2025, ООО 1С-Софт // Все права защищены. Эта программа и сопроводительные материалы предоставляются // в соответствии с условиями лицензии Attribution 4.0 International (CC BY 4.0) // Текст лицензии доступен по ссылке: diff --git a/SSL/src/DataProcessors/ВыгрузкаЗагрузкаEnterpriseData/Templates/СхемаКомпоновкиДанных/Template.dcs b/SSL/src/DataProcessors/ВыгрузкаЗагрузкаEnterpriseData/Templates/СхемаКомпоновкиДанных/Template.dcs index 7613ad35a..22185cba9 100644 --- a/SSL/src/DataProcessors/ВыгрузкаЗагрузкаEnterpriseData/Templates/СхемаКомпоновкиДанных/Template.dcs +++ b/SSL/src/DataProcessors/ВыгрузкаЗагрузкаEnterpriseData/Templates/СхемаКомпоновкиДанных/Template.dcs @@ -91,6 +91,12 @@ Тип Тип + + <v8:item> + <v8:lang>ru</v8:lang> + <v8:content>Тип</v8:content> + </v8:item> + ОбщийИсточникДанных ВЫБРАТЬ diff --git a/SSL/src/DataProcessors/ВыгрузкаЗагрузкаДанныхСверткаСсылокНаПользователейВРазделенныхДанных/ManagerModule.bsl b/SSL/src/DataProcessors/ВыгрузкаЗагрузкаДанныхСверткаСсылокНаПользователейВРазделенныхДанных/ManagerModule.bsl index 33a73833d..1bb2821d8 100644 --- a/SSL/src/DataProcessors/ВыгрузкаЗагрузкаДанныхСверткаСсылокНаПользователейВРазделенныхДанных/ManagerModule.bsl +++ b/SSL/src/DataProcessors/ВыгрузкаЗагрузкаДанныхСверткаСсылокНаПользователейВРазделенныхДанных/ManagerModule.bsl @@ -1,5 +1,5 @@ /////////////////////////////////////////////////////////////////////////////////////////////////////// -// Copyright (c) 2024, ООО 1С-Софт +// Copyright (c) 2025, ООО 1С-Софт // Все права защищены. Эта программа и сопроводительные материалы предоставляются // в соответствии с условиями лицензии Attribution 4.0 International (CC BY 4.0) // Текст лицензии доступен по ссылке: diff --git a/SSL/src/DataProcessors/ВыгрузкаЗагрузкаДанныхСверткаСсылокНаПользователейВРазделенныхДанных/ObjectModule.bsl b/SSL/src/DataProcessors/ВыгрузкаЗагрузкаДанныхСверткаСсылокНаПользователейВРазделенныхДанных/ObjectModule.bsl index e58aa32ae..baeb1486e 100644 --- a/SSL/src/DataProcessors/ВыгрузкаЗагрузкаДанныхСверткаСсылокНаПользователейВРазделенныхДанных/ObjectModule.bsl +++ b/SSL/src/DataProcessors/ВыгрузкаЗагрузкаДанныхСверткаСсылокНаПользователейВРазделенныхДанных/ObjectModule.bsl @@ -1,5 +1,5 @@ /////////////////////////////////////////////////////////////////////////////////////////////////////// -// Copyright (c) 2024, ООО 1С-Софт +// Copyright (c) 2025, ООО 1С-Софт // Все права защищены. Эта программа и сопроводительные материалы предоставляются // в соответствии с условиями лицензии Attribution 4.0 International (CC BY 4.0) // Текст лицензии доступен по ссылке: diff --git a/SSL/src/DataProcessors/ВыполнениеОбменаДанными/Forms/Форма/Module.bsl b/SSL/src/DataProcessors/ВыполнениеОбменаДанными/Forms/Форма/Module.bsl index 3b2e9af5f..30048bc0a 100644 --- a/SSL/src/DataProcessors/ВыполнениеОбменаДанными/Forms/Форма/Module.bsl +++ b/SSL/src/DataProcessors/ВыполнениеОбменаДанными/Forms/Форма/Module.bsl @@ -1,5 +1,5 @@ /////////////////////////////////////////////////////////////////////////////////////////////////////// -// Copyright (c) 2024, ООО 1С-Софт +// Copyright (c) 2025, ООО 1С-Софт // Все права защищены. Эта программа и сопроводительные материалы предоставляются // в соответствии с условиями лицензии Attribution 4.0 International (CC BY 4.0) // Текст лицензии доступен по ссылке: @@ -498,8 +498,7 @@ // ПЕРЕОПРЕДЕЛЯЕМАЯ ЧАСТЬ //////////////////////////////////////////////////////////////////////////////// -//////////////////////////////////////////////////////////////////////////////// -// РАЗДЕЛ ПРОЦЕДУРЫ И ФУНКЦИИ +#Область РазделПроцедурыИФункции &НаКлиенте Процедура ЗапуститьПереходДалее() @@ -1056,8 +1055,7 @@ КонецФункции -//////////////////////////////////////////////////////////////////////////////// -// Страницы обмена через Веб-сервис +#Область СтраницыОбменаЧерезВебСервис &НаКлиенте Процедура АвторизацияЗавершение(Результат, ДополнительныеПараметры) Экспорт @@ -1072,8 +1070,11 @@ КонецПроцедуры -//////////////////////////////////////////////////////////////////////////////// -// РАЗДЕЛ ОБРАБОТКИ ФОНОВЫХ ЗАДАНИЙ +#КонецОбласти + +#КонецОбласти + +#Область РазделОбработкиФоновыхЗаданий &НаКлиенте Процедура ФоновоеЗаданиеЗапуститьНаКлиенте(Действие, ИмяЗадания, Отказ) @@ -1342,8 +1343,9 @@ КонецПроцедуры -//////////////////////////////////////////////////////////////////////////////// -// РАЗДЕЛ ИНИЦИАЛИЗАЦИИ ПЕРЕХОДОВ +#КонецОбласти + +#Область ИнициализацияПереходов &НаСервере Процедура ЗаполнитьТаблицуПереходов() @@ -1410,8 +1412,9 @@ КонецПроцедуры -//////////////////////////////////////////////////////////////////////////////// -// РАЗДЕЛ ОБРАБОТЧИКОВ СОБЫТИЙ ПЕРЕХОДОВ +#КонецОбласти + +#Область РазделОбработчиковСобытийПереходов //////////////////////////////////////////////////////////////////////////////// // Общие страницы обмена @@ -1431,4 +1434,6 @@ +#КонецОбласти + #КонецОбласти \ No newline at end of file diff --git a/SSL/src/DataProcessors/ВыполнениеОбменаДанными/ManagerModule.bsl b/SSL/src/DataProcessors/ВыполнениеОбменаДанными/ManagerModule.bsl index bbd781692..1d4a31bc6 100644 --- a/SSL/src/DataProcessors/ВыполнениеОбменаДанными/ManagerModule.bsl +++ b/SSL/src/DataProcessors/ВыполнениеОбменаДанными/ManagerModule.bsl @@ -1,5 +1,5 @@ /////////////////////////////////////////////////////////////////////////////////////////////////////// -// Copyright (c) 2024, ООО 1С-Софт +// Copyright (c) 2025, ООО 1С-Софт // Все права защищены. Эта программа и сопроводительные материалы предоставляются // в соответствии с условиями лицензии Attribution 4.0 International (CC BY 4.0) // Текст лицензии доступен по ссылке: diff --git a/SSL/src/DataProcessors/ГрупповоеИзменениеРеквизитов/Commands/ГрупповоеИзменениеРеквизитов/CommandModule.bsl b/SSL/src/DataProcessors/ГрупповоеИзменениеРеквизитов/Commands/ГрупповоеИзменениеРеквизитов/CommandModule.bsl index d509026c8..7c6487242 100644 --- a/SSL/src/DataProcessors/ГрупповоеИзменениеРеквизитов/Commands/ГрупповоеИзменениеРеквизитов/CommandModule.bsl +++ b/SSL/src/DataProcessors/ГрупповоеИзменениеРеквизитов/Commands/ГрупповоеИзменениеРеквизитов/CommandModule.bsl @@ -1,5 +1,5 @@ /////////////////////////////////////////////////////////////////////////////////////////////////////// -// Copyright (c) 2024, ООО 1С-Софт +// Copyright (c) 2025, ООО 1С-Софт // Все права защищены. Эта программа и сопроводительные материалы предоставляются // в соответствии с условиями лицензии Attribution 4.0 International (CC BY 4.0) // Текст лицензии доступен по ссылке: diff --git a/SSL/src/DataProcessors/ГрупповоеИзменениеРеквизитов/Forms/ВыборВидаОбъектов/Module.bsl b/SSL/src/DataProcessors/ГрупповоеИзменениеРеквизитов/Forms/ВыборВидаОбъектов/Module.bsl index da7192d79..6c5e2f74e 100644 --- a/SSL/src/DataProcessors/ГрупповоеИзменениеРеквизитов/Forms/ВыборВидаОбъектов/Module.bsl +++ b/SSL/src/DataProcessors/ГрупповоеИзменениеРеквизитов/Forms/ВыборВидаОбъектов/Module.bsl @@ -1,5 +1,5 @@ /////////////////////////////////////////////////////////////////////////////////////////////////////// -// Copyright (c) 2024, ООО 1С-Софт +// Copyright (c) 2025, ООО 1С-Софт // Все права защищены. Эта программа и сопроводительные материалы предоставляются // в соответствии с условиями лицензии Attribution 4.0 International (CC BY 4.0) // Текст лицензии доступен по ссылке: diff --git a/SSL/src/DataProcessors/ГрупповоеИзменениеРеквизитов/Forms/ВыбранныеЭлементы/Module.bsl b/SSL/src/DataProcessors/ГрупповоеИзменениеРеквизитов/Forms/ВыбранныеЭлементы/Module.bsl index 7061b60e2..b331ffd2c 100644 --- a/SSL/src/DataProcessors/ГрупповоеИзменениеРеквизитов/Forms/ВыбранныеЭлементы/Module.bsl +++ b/SSL/src/DataProcessors/ГрупповоеИзменениеРеквизитов/Forms/ВыбранныеЭлементы/Module.bsl @@ -1,5 +1,5 @@ /////////////////////////////////////////////////////////////////////////////////////////////////////// -// Copyright (c) 2024, ООО 1С-Софт +// Copyright (c) 2025, ООО 1С-Софт // Все права защищены. Эта программа и сопроводительные материалы предоставляются // в соответствии с условиями лицензии Attribution 4.0 International (CC BY 4.0) // Текст лицензии доступен по ссылке: diff --git a/SSL/src/DataProcessors/ГрупповоеИзменениеРеквизитов/Forms/ДополнительныеПараметры/Module.bsl b/SSL/src/DataProcessors/ГрупповоеИзменениеРеквизитов/Forms/ДополнительныеПараметры/Module.bsl index 4935dff0b..a68c4e2ad 100644 --- a/SSL/src/DataProcessors/ГрупповоеИзменениеРеквизитов/Forms/ДополнительныеПараметры/Module.bsl +++ b/SSL/src/DataProcessors/ГрупповоеИзменениеРеквизитов/Forms/ДополнительныеПараметры/Module.bsl @@ -1,5 +1,5 @@ /////////////////////////////////////////////////////////////////////////////////////////////////////// -// Copyright (c) 2024, ООО 1С-Софт +// Copyright (c) 2025, ООО 1С-Софт // Все права защищены. Эта программа и сопроводительные материалы предоставляются // в соответствии с условиями лицензии Attribution 4.0 International (CC BY 4.0) // Текст лицензии доступен по ссылке: diff --git a/SSL/src/DataProcessors/ГрупповоеИзменениеРеквизитов/Forms/РедактированиеФормулы/Module.bsl b/SSL/src/DataProcessors/ГрупповоеИзменениеРеквизитов/Forms/РедактированиеФормулы/Module.bsl index 0035a3a27..295cb601b 100644 --- a/SSL/src/DataProcessors/ГрупповоеИзменениеРеквизитов/Forms/РедактированиеФормулы/Module.bsl +++ b/SSL/src/DataProcessors/ГрупповоеИзменениеРеквизитов/Forms/РедактированиеФормулы/Module.bsl @@ -1,5 +1,5 @@ /////////////////////////////////////////////////////////////////////////////////////////////////////// -// Copyright (c) 2024, ООО 1С-Софт +// Copyright (c) 2025, ООО 1С-Софт // Все права защищены. Эта программа и сопроводительные материалы предоставляются // в соответствии с условиями лицензии Attribution 4.0 International (CC BY 4.0) // Текст лицензии доступен по ссылке: diff --git a/SSL/src/DataProcessors/ГрупповоеИзменениеРеквизитов/Forms/Форма/Module.bsl b/SSL/src/DataProcessors/ГрупповоеИзменениеРеквизитов/Forms/Форма/Module.bsl index 9f6534b47..ab797b25b 100644 --- a/SSL/src/DataProcessors/ГрупповоеИзменениеРеквизитов/Forms/Форма/Module.bsl +++ b/SSL/src/DataProcessors/ГрупповоеИзменениеРеквизитов/Forms/Форма/Module.bsl @@ -1,5 +1,5 @@ /////////////////////////////////////////////////////////////////////////////////////////////////////// -// Copyright (c) 2024, ООО 1С-Софт +// Copyright (c) 2025, ООО 1С-Софт // Все права защищены. Эта программа и сопроводительные материалы предоставляются // в соответствии с условиями лицензии Attribution 4.0 International (CC BY 4.0) // Текст лицензии доступен по ссылке: diff --git a/SSL/src/DataProcessors/ГрупповоеИзменениеРеквизитов/ObjectModule.bsl b/SSL/src/DataProcessors/ГрупповоеИзменениеРеквизитов/ObjectModule.bsl index 09b7b4af3..9eef6e1c4 100644 --- a/SSL/src/DataProcessors/ГрупповоеИзменениеРеквизитов/ObjectModule.bsl +++ b/SSL/src/DataProcessors/ГрупповоеИзменениеРеквизитов/ObjectModule.bsl @@ -1,5 +1,5 @@ /////////////////////////////////////////////////////////////////////////////////////////////////////// -// Copyright (c) 2024, ООО 1С-Софт +// Copyright (c) 2025, ООО 1С-Софт // Все права защищены. Эта программа и сопроводительные материалы предоставляются // в соответствии с условиями лицензии Attribution 4.0 International (CC BY 4.0) // Текст лицензии доступен по ссылке: diff --git a/SSL/src/DataProcessors/ДоступныеАнкеты/Forms/АрхивАнкет/Module.bsl b/SSL/src/DataProcessors/ДоступныеАнкеты/Forms/АрхивАнкет/Module.bsl index 7fe69a764..9b5856872 100644 --- a/SSL/src/DataProcessors/ДоступныеАнкеты/Forms/АрхивАнкет/Module.bsl +++ b/SSL/src/DataProcessors/ДоступныеАнкеты/Forms/АрхивАнкет/Module.bsl @@ -1,5 +1,5 @@ /////////////////////////////////////////////////////////////////////////////////////////////////////// -// Copyright (c) 2024, ООО 1С-Софт +// Copyright (c) 2025, ООО 1С-Софт // Все права защищены. Эта программа и сопроводительные материалы предоставляются // в соответствии с условиями лицензии Attribution 4.0 International (CC BY 4.0) // Текст лицензии доступен по ссылке: diff --git a/SSL/src/DataProcessors/ДоступныеАнкеты/Forms/Форма/Module.bsl b/SSL/src/DataProcessors/ДоступныеАнкеты/Forms/Форма/Module.bsl index 17385a5a6..974878340 100644 --- a/SSL/src/DataProcessors/ДоступныеАнкеты/Forms/Форма/Module.bsl +++ b/SSL/src/DataProcessors/ДоступныеАнкеты/Forms/Форма/Module.bsl @@ -1,5 +1,5 @@ /////////////////////////////////////////////////////////////////////////////////////////////////////// -// Copyright (c) 2024, ООО 1С-Софт +// Copyright (c) 2025, ООО 1С-Софт // Все права защищены. Эта программа и сопроводительные материалы предоставляются // в соответствии с условиями лицензии Attribution 4.0 International (CC BY 4.0) // Текст лицензии доступен по ссылке: diff --git a/SSL/src/DataProcessors/ЖурналРегистрации/Commands/ЖурналДоступаКДанным/CommandModule.bsl b/SSL/src/DataProcessors/ЖурналРегистрации/Commands/ЖурналДоступаКДанным/CommandModule.bsl index 9078ffbd1..e5b837b64 100644 --- a/SSL/src/DataProcessors/ЖурналРегистрации/Commands/ЖурналДоступаКДанным/CommandModule.bsl +++ b/SSL/src/DataProcessors/ЖурналРегистрации/Commands/ЖурналДоступаКДанным/CommandModule.bsl @@ -1,5 +1,5 @@ /////////////////////////////////////////////////////////////////////////////////////////////////////// -// Copyright (c) 2024, ООО 1С-Софт +// Copyright (c) 2025, ООО 1С-Софт // Все права защищены. Эта программа и сопроводительные материалы предоставляются // в соответствии с условиями лицензии Attribution 4.0 International (CC BY 4.0) // Текст лицензии доступен по ссылке: diff --git a/SSL/src/DataProcessors/ЖурналРегистрации/Commands/ЖурналРегистрации/CommandModule.bsl b/SSL/src/DataProcessors/ЖурналРегистрации/Commands/ЖурналРегистрации/CommandModule.bsl index 3954a44d1..12ba3a95f 100644 --- a/SSL/src/DataProcessors/ЖурналРегистрации/Commands/ЖурналРегистрации/CommandModule.bsl +++ b/SSL/src/DataProcessors/ЖурналРегистрации/Commands/ЖурналРегистрации/CommandModule.bsl @@ -1,5 +1,5 @@ /////////////////////////////////////////////////////////////////////////////////////////////////////// -// Copyright (c) 2024, ООО 1С-Софт +// Copyright (c) 2025, ООО 1С-Софт // Все права защищены. Эта программа и сопроводительные материалы предоставляются // в соответствии с условиями лицензии Attribution 4.0 International (CC BY 4.0) // Текст лицензии доступен по ссылке: diff --git a/SSL/src/DataProcessors/ЖурналРегистрации/Forms/ЖурналРегистрации/Module.bsl b/SSL/src/DataProcessors/ЖурналРегистрации/Forms/ЖурналРегистрации/Module.bsl index 54237df2f..bd51146f3 100644 --- a/SSL/src/DataProcessors/ЖурналРегистрации/Forms/ЖурналРегистрации/Module.bsl +++ b/SSL/src/DataProcessors/ЖурналРегистрации/Forms/ЖурналРегистрации/Module.bsl @@ -1,5 +1,5 @@ /////////////////////////////////////////////////////////////////////////////////////////////////////// -// Copyright (c) 2024, ООО 1С-Софт +// Copyright (c) 2025, ООО 1С-Софт // Все права защищены. Эта программа и сопроводительные материалы предоставляются // в соответствии с условиями лицензии Attribution 4.0 International (CC BY 4.0) // Текст лицензии доступен по ссылке: diff --git a/SSL/src/DataProcessors/ЖурналРегистрации/Forms/ОтборЖурналаРегистрации/Module.bsl b/SSL/src/DataProcessors/ЖурналРегистрации/Forms/ОтборЖурналаРегистрации/Module.bsl index edb67711d..5d9f479d0 100644 --- a/SSL/src/DataProcessors/ЖурналРегистрации/Forms/ОтборЖурналаРегистрации/Module.bsl +++ b/SSL/src/DataProcessors/ЖурналРегистрации/Forms/ОтборЖурналаРегистрации/Module.bsl @@ -1,5 +1,5 @@ /////////////////////////////////////////////////////////////////////////////////////////////////////// -// Copyright (c) 2024, ООО 1С-Софт +// Copyright (c) 2025, ООО 1С-Софт // Все права защищены. Эта программа и сопроводительные материалы предоставляются // в соответствии с условиями лицензии Attribution 4.0 International (CC BY 4.0) // Текст лицензии доступен по ссылке: diff --git a/SSL/src/DataProcessors/ЖурналРегистрации/Forms/РазделениеДанныхСеанса/Module.bsl b/SSL/src/DataProcessors/ЖурналРегистрации/Forms/РазделениеДанныхСеанса/Module.bsl index 75fa731d9..02d66d000 100644 --- a/SSL/src/DataProcessors/ЖурналРегистрации/Forms/РазделениеДанныхСеанса/Module.bsl +++ b/SSL/src/DataProcessors/ЖурналРегистрации/Forms/РазделениеДанныхСеанса/Module.bsl @@ -1,5 +1,5 @@ /////////////////////////////////////////////////////////////////////////////////////////////////////// -// Copyright (c) 2024, ООО 1С-Софт +// Copyright (c) 2025, ООО 1С-Софт // Все права защищены. Эта программа и сопроводительные материалы предоставляются // в соответствии с условиями лицензии Attribution 4.0 International (CC BY 4.0) // Текст лицензии доступен по ссылке: diff --git a/SSL/src/DataProcessors/ЖурналРегистрации/Forms/РедакторСоставаСвойства/Module.bsl b/SSL/src/DataProcessors/ЖурналРегистрации/Forms/РедакторСоставаСвойства/Module.bsl index 32661fae5..6160d1006 100644 --- a/SSL/src/DataProcessors/ЖурналРегистрации/Forms/РедакторСоставаСвойства/Module.bsl +++ b/SSL/src/DataProcessors/ЖурналРегистрации/Forms/РедакторСоставаСвойства/Module.bsl @@ -1,5 +1,5 @@ /////////////////////////////////////////////////////////////////////////////////////////////////////// -// Copyright (c) 2024, ООО 1С-Софт +// Copyright (c) 2025, ООО 1С-Софт // Все права защищены. Эта программа и сопроводительные материалы предоставляются // в соответствии с условиями лицензии Attribution 4.0 International (CC BY 4.0) // Текст лицензии доступен по ссылке: diff --git a/SSL/src/DataProcessors/ЖурналРегистрации/Forms/Событие/Module.bsl b/SSL/src/DataProcessors/ЖурналРегистрации/Forms/Событие/Module.bsl index dc2becb84..4f40b030c 100644 --- a/SSL/src/DataProcessors/ЖурналРегистрации/Forms/Событие/Module.bsl +++ b/SSL/src/DataProcessors/ЖурналРегистрации/Forms/Событие/Module.bsl @@ -1,5 +1,5 @@ /////////////////////////////////////////////////////////////////////////////////////////////////////// -// Copyright (c) 2024, ООО 1С-Софт +// Copyright (c) 2025, ООО 1С-Софт // Все права защищены. Эта программа и сопроводительные материалы предоставляются // в соответствии с условиями лицензии Attribution 4.0 International (CC BY 4.0) // Текст лицензии доступен по ссылке: diff --git a/SSL/src/DataProcessors/ЖурналРегистрации/ManagerModule.bsl b/SSL/src/DataProcessors/ЖурналРегистрации/ManagerModule.bsl index 3a3833b72..1f883694b 100644 --- a/SSL/src/DataProcessors/ЖурналРегистрации/ManagerModule.bsl +++ b/SSL/src/DataProcessors/ЖурналРегистрации/ManagerModule.bsl @@ -1,5 +1,5 @@ /////////////////////////////////////////////////////////////////////////////////////////////////////// -// Copyright (c) 2024, ООО 1С-Софт +// Copyright (c) 2025, ООО 1С-Софт // Все права защищены. Эта программа и сопроводительные материалы предоставляются // в соответствии с условиями лицензии Attribution 4.0 International (CC BY 4.0) // Текст лицензии доступен по ссылке: diff --git a/SSL/src/DataProcessors/ЗагрузкаДанныхИзФайла/Commands/ЗагрузкаДанныхИзФайла/CommandModule.bsl b/SSL/src/DataProcessors/ЗагрузкаДанныхИзФайла/Commands/ЗагрузкаДанныхИзФайла/CommandModule.bsl index eb37380f8..84af7e53f 100644 --- a/SSL/src/DataProcessors/ЗагрузкаДанныхИзФайла/Commands/ЗагрузкаДанныхИзФайла/CommandModule.bsl +++ b/SSL/src/DataProcessors/ЗагрузкаДанныхИзФайла/Commands/ЗагрузкаДанныхИзФайла/CommandModule.bsl @@ -1,5 +1,5 @@ /////////////////////////////////////////////////////////////////////////////////////////////////////// -// Copyright (c) 2024, ООО 1С-Софт +// Copyright (c) 2025, ООО 1С-Софт // Все права защищены. Эта программа и сопроводительные материалы предоставляются // в соответствии с условиями лицензии Attribution 4.0 International (CC BY 4.0) // Текст лицензии доступен по ссылке: diff --git a/SSL/src/DataProcessors/ЗагрузкаДанныхИзФайла/Forms/ВыборКолонок/Module.bsl b/SSL/src/DataProcessors/ЗагрузкаДанныхИзФайла/Forms/ВыборКолонок/Module.bsl index 2ccaede10..345341501 100644 --- a/SSL/src/DataProcessors/ЗагрузкаДанныхИзФайла/Forms/ВыборКолонок/Module.bsl +++ b/SSL/src/DataProcessors/ЗагрузкаДанныхИзФайла/Forms/ВыборКолонок/Module.bsl @@ -1,5 +1,5 @@ /////////////////////////////////////////////////////////////////////////////////////////////////////// -// Copyright (c) 2024, ООО 1С-Софт +// Copyright (c) 2025, ООО 1С-Софт // Все права защищены. Эта программа и сопроводительные материалы предоставляются // в соответствии с условиями лицензии Attribution 4.0 International (CC BY 4.0) // Текст лицензии доступен по ссылке: diff --git a/SSL/src/DataProcessors/ЗагрузкаДанныхИзФайла/Forms/ЗагрузкаДанныхИзФайла/Module.bsl b/SSL/src/DataProcessors/ЗагрузкаДанныхИзФайла/Forms/ЗагрузкаДанныхИзФайла/Module.bsl index 351c76f78..c45519c08 100644 --- a/SSL/src/DataProcessors/ЗагрузкаДанныхИзФайла/Forms/ЗагрузкаДанныхИзФайла/Module.bsl +++ b/SSL/src/DataProcessors/ЗагрузкаДанныхИзФайла/Forms/ЗагрузкаДанныхИзФайла/Module.bsl @@ -1,5 +1,5 @@ /////////////////////////////////////////////////////////////////////////////////////////////////////// -// Copyright (c) 2024, ООО 1С-Софт +// Copyright (c) 2025, ООО 1С-Софт // Все права защищены. Эта программа и сопроводительные материалы предоставляются // в соответствии с условиями лицензии Attribution 4.0 International (CC BY 4.0) // Текст лицензии доступен по ссылке: diff --git a/SSL/src/DataProcessors/ЗагрузкаДанныхИзФайла/Forms/РазрешенияНеоднозначностей/Module.bsl b/SSL/src/DataProcessors/ЗагрузкаДанныхИзФайла/Forms/РазрешенияНеоднозначностей/Module.bsl index 117c1e7f4..7e1d9a390 100644 --- a/SSL/src/DataProcessors/ЗагрузкаДанныхИзФайла/Forms/РазрешенияНеоднозначностей/Module.bsl +++ b/SSL/src/DataProcessors/ЗагрузкаДанныхИзФайла/Forms/РазрешенияНеоднозначностей/Module.bsl @@ -1,5 +1,5 @@ /////////////////////////////////////////////////////////////////////////////////////////////////////// -// Copyright (c) 2024, ООО 1С-Софт +// Copyright (c) 2025, ООО 1С-Софт // Все права защищены. Эта программа и сопроводительные материалы предоставляются // в соответствии с условиями лицензии Attribution 4.0 International (CC BY 4.0) // Текст лицензии доступен по ссылке: diff --git a/SSL/src/DataProcessors/ЗагрузкаДанныхИзФайла/Forms/РасширениеФайла/Module.bsl b/SSL/src/DataProcessors/ЗагрузкаДанныхИзФайла/Forms/РасширениеФайла/Module.bsl index 983d7deec..825dcde52 100644 --- a/SSL/src/DataProcessors/ЗагрузкаДанныхИзФайла/Forms/РасширениеФайла/Module.bsl +++ b/SSL/src/DataProcessors/ЗагрузкаДанныхИзФайла/Forms/РасширениеФайла/Module.bsl @@ -1,5 +1,5 @@ /////////////////////////////////////////////////////////////////////////////////////////////////////// -// Copyright (c) 2024, ООО 1С-Софт +// Copyright (c) 2025, ООО 1С-Софт // Все права защищены. Эта программа и сопроводительные материалы предоставляются // в соответствии с условиями лицензии Attribution 4.0 International (CC BY 4.0) // Текст лицензии доступен по ссылке: diff --git a/SSL/src/DataProcessors/ЗагрузкаДанныхИзФайла/Forms/РедактированиеБланка/Module.bsl b/SSL/src/DataProcessors/ЗагрузкаДанныхИзФайла/Forms/РедактированиеБланка/Module.bsl index 7b496c581..c6bba8e72 100644 --- a/SSL/src/DataProcessors/ЗагрузкаДанныхИзФайла/Forms/РедактированиеБланка/Module.bsl +++ b/SSL/src/DataProcessors/ЗагрузкаДанныхИзФайла/Forms/РедактированиеБланка/Module.bsl @@ -1,5 +1,5 @@ /////////////////////////////////////////////////////////////////////////////////////////////////////// -// Copyright (c) 2024, ООО 1С-Софт +// Copyright (c) 2025, ООО 1С-Софт // Все права защищены. Эта программа и сопроводительные материалы предоставляются // в соответствии с условиями лицензии Attribution 4.0 International (CC BY 4.0) // Текст лицензии доступен по ссылке: diff --git a/SSL/src/DataProcessors/ЗагрузкаДанныхИзФайла/ManagerModule.bsl b/SSL/src/DataProcessors/ЗагрузкаДанныхИзФайла/ManagerModule.bsl index 92af01efe..e1b85a983 100644 --- a/SSL/src/DataProcessors/ЗагрузкаДанныхИзФайла/ManagerModule.bsl +++ b/SSL/src/DataProcessors/ЗагрузкаДанныхИзФайла/ManagerModule.bsl @@ -1,5 +1,5 @@ /////////////////////////////////////////////////////////////////////////////////////////////////////// -// Copyright (c) 2024, ООО 1С-Софт +// Copyright (c) 2025, ООО 1С-Софт // Все права защищены. Эта программа и сопроводительные материалы предоставляются // в соответствии с условиями лицензии Attribution 4.0 International (CC BY 4.0) // Текст лицензии доступен по ссылке: diff --git a/SSL/src/DataProcessors/ЗагрузкаКлассификатораБанков/Commands/ЗагрузкаКлассификатораБанков/CommandModule.bsl b/SSL/src/DataProcessors/ЗагрузкаКлассификатораБанков/Commands/ЗагрузкаКлассификатораБанков/CommandModule.bsl index 8728c6656..77adb7ba9 100644 --- a/SSL/src/DataProcessors/ЗагрузкаКлассификатораБанков/Commands/ЗагрузкаКлассификатораБанков/CommandModule.bsl +++ b/SSL/src/DataProcessors/ЗагрузкаКлассификатораБанков/Commands/ЗагрузкаКлассификатораБанков/CommandModule.bsl @@ -1,5 +1,5 @@ /////////////////////////////////////////////////////////////////////////////////////////////////////// -// Copyright (c) 2024, ООО 1С-Софт +// Copyright (c) 2025, ООО 1С-Софт // Все права защищены. Эта программа и сопроводительные материалы предоставляются // в соответствии с условиями лицензии Attribution 4.0 International (CC BY 4.0) // Текст лицензии доступен по ссылке: diff --git a/SSL/src/DataProcessors/ЗагрузкаКлассификатораБанков/Forms/Форма/Module.bsl b/SSL/src/DataProcessors/ЗагрузкаКлассификатораБанков/Forms/Форма/Module.bsl index 77f08b563..811501cb3 100644 --- a/SSL/src/DataProcessors/ЗагрузкаКлассификатораБанков/Forms/Форма/Module.bsl +++ b/SSL/src/DataProcessors/ЗагрузкаКлассификатораБанков/Forms/Форма/Module.bsl @@ -1,5 +1,5 @@ /////////////////////////////////////////////////////////////////////////////////////////////////////// -// Copyright (c) 2024, ООО 1С-Софт +// Copyright (c) 2025, ООО 1С-Софт // Все права защищены. Эта программа и сопроводительные материалы предоставляются // в соответствии с условиями лицензии Attribution 4.0 International (CC BY 4.0) // Текст лицензии доступен по ссылке: diff --git a/SSL/src/DataProcessors/ЗагрузкаКлассификатораБанков/ManagerModule.bsl b/SSL/src/DataProcessors/ЗагрузкаКлассификатораБанков/ManagerModule.bsl index 2e9997969..358fe7066 100644 --- a/SSL/src/DataProcessors/ЗагрузкаКлассификатораБанков/ManagerModule.bsl +++ b/SSL/src/DataProcessors/ЗагрузкаКлассификатораБанков/ManagerModule.bsl @@ -1,5 +1,5 @@ /////////////////////////////////////////////////////////////////////////////////////////////////////// -// Copyright (c) 2024, ООО 1С-Софт +// Copyright (c) 2025, ООО 1С-Софт // Все права защищены. Эта программа и сопроводительные материалы предоставляются // в соответствии с условиями лицензии Attribution 4.0 International (CC BY 4.0) // Текст лицензии доступен по ссылке: diff --git a/SSL/src/DataProcessors/ЗагрузкаКурсовВалют/Forms/ПараметрыПрописиВалюты_ru/Module.bsl b/SSL/src/DataProcessors/ЗагрузкаКурсовВалют/Forms/ПараметрыПрописиВалюты_ru/Module.bsl index dece2c720..21d1d3d87 100644 --- a/SSL/src/DataProcessors/ЗагрузкаКурсовВалют/Forms/ПараметрыПрописиВалюты_ru/Module.bsl +++ b/SSL/src/DataProcessors/ЗагрузкаКурсовВалют/Forms/ПараметрыПрописиВалюты_ru/Module.bsl @@ -1,5 +1,5 @@ /////////////////////////////////////////////////////////////////////////////////////////////////////// -// Copyright (c) 2024, ООО 1С-Софт +// Copyright (c) 2025, ООО 1С-Софт // Все права защищены. Эта программа и сопроводительные материалы предоставляются // в соответствии с условиями лицензии Attribution 4.0 International (CC BY 4.0) // Текст лицензии доступен по ссылке: diff --git a/SSL/src/DataProcessors/ЗагрузкаКурсовВалют/Forms/ПодборВалютИзКлассификатора/Module.bsl b/SSL/src/DataProcessors/ЗагрузкаКурсовВалют/Forms/ПодборВалютИзКлассификатора/Module.bsl index 4cb92aba5..cc9d93b89 100644 --- a/SSL/src/DataProcessors/ЗагрузкаКурсовВалют/Forms/ПодборВалютИзКлассификатора/Module.bsl +++ b/SSL/src/DataProcessors/ЗагрузкаКурсовВалют/Forms/ПодборВалютИзКлассификатора/Module.bsl @@ -1,5 +1,5 @@ /////////////////////////////////////////////////////////////////////////////////////////////////////// -// Copyright (c) 2024, ООО 1С-Софт +// Copyright (c) 2025, ООО 1С-Софт // Все права защищены. Эта программа и сопроводительные материалы предоставляются // в соответствии с условиями лицензии Attribution 4.0 International (CC BY 4.0) // Текст лицензии доступен по ссылке: diff --git a/SSL/src/DataProcessors/ЗагрузкаКурсовВалют/Forms/СообщенияОбОшибках/Module.bsl b/SSL/src/DataProcessors/ЗагрузкаКурсовВалют/Forms/СообщенияОбОшибках/Module.bsl index da45f2342..5f9b175be 100644 --- a/SSL/src/DataProcessors/ЗагрузкаКурсовВалют/Forms/СообщенияОбОшибках/Module.bsl +++ b/SSL/src/DataProcessors/ЗагрузкаКурсовВалют/Forms/СообщенияОбОшибках/Module.bsl @@ -1,5 +1,5 @@ /////////////////////////////////////////////////////////////////////////////////////////////////////// -// Copyright (c) 2024, ООО 1С-Софт +// Copyright (c) 2025, ООО 1С-Софт // Все права защищены. Эта программа и сопроводительные материалы предоставляются // в соответствии с условиями лицензии Attribution 4.0 International (CC BY 4.0) // Текст лицензии доступен по ссылке: diff --git a/SSL/src/DataProcessors/ЗагрузкаКурсовВалют/Forms/Форма/Module.bsl b/SSL/src/DataProcessors/ЗагрузкаКурсовВалют/Forms/Форма/Module.bsl index f371e3e3d..425d933f2 100644 --- a/SSL/src/DataProcessors/ЗагрузкаКурсовВалют/Forms/Форма/Module.bsl +++ b/SSL/src/DataProcessors/ЗагрузкаКурсовВалют/Forms/Форма/Module.bsl @@ -1,5 +1,5 @@ /////////////////////////////////////////////////////////////////////////////////////////////////////// -// Copyright (c) 2024, ООО 1С-Софт +// Copyright (c) 2025, ООО 1С-Софт // Все права защищены. Эта программа и сопроводительные материалы предоставляются // в соответствии с условиями лицензии Attribution 4.0 International (CC BY 4.0) // Текст лицензии доступен по ссылке: diff --git a/SSL/src/DataProcessors/ЗагрузкаКурсовВалют/ManagerModule.bsl b/SSL/src/DataProcessors/ЗагрузкаКурсовВалют/ManagerModule.bsl index 258d4561d..20dac207c 100644 --- a/SSL/src/DataProcessors/ЗагрузкаКурсовВалют/ManagerModule.bsl +++ b/SSL/src/DataProcessors/ЗагрузкаКурсовВалют/ManagerModule.bsl @@ -1,5 +1,5 @@ /////////////////////////////////////////////////////////////////////////////////////////////////////// -// Copyright (c) 2024, ООО 1С-Софт +// Copyright (c) 2025, ООО 1С-Софт // Все права защищены. Эта программа и сопроводительные материалы предоставляются // в соответствии с условиями лицензии Attribution 4.0 International (CC BY 4.0) // Текст лицензии доступен по ссылке: diff --git a/SSL/src/DataProcessors/ЗагрузкаПравилРегистрацииОбъектов/Forms/Форма/Module.bsl b/SSL/src/DataProcessors/ЗагрузкаПравилРегистрацииОбъектов/Forms/Форма/Module.bsl index 556f9cdd3..0d039b0d3 100644 --- a/SSL/src/DataProcessors/ЗагрузкаПравилРегистрацииОбъектов/Forms/Форма/Module.bsl +++ b/SSL/src/DataProcessors/ЗагрузкаПравилРегистрацииОбъектов/Forms/Форма/Module.bsl @@ -1,5 +1,5 @@ /////////////////////////////////////////////////////////////////////////////////////////////////////// -// Copyright (c) 2024, ООО 1С-Софт +// Copyright (c) 2025, ООО 1С-Софт // Все права защищены. Эта программа и сопроводительные материалы предоставляются // в соответствии с условиями лицензии Attribution 4.0 International (CC BY 4.0) // Текст лицензии доступен по ссылке: diff --git a/SSL/src/DataProcessors/ЗагрузкаПравилРегистрацииОбъектов/ManagerModule.bsl b/SSL/src/DataProcessors/ЗагрузкаПравилРегистрацииОбъектов/ManagerModule.bsl index fd382623b..e6ef4ab95 100644 --- a/SSL/src/DataProcessors/ЗагрузкаПравилРегистрацииОбъектов/ManagerModule.bsl +++ b/SSL/src/DataProcessors/ЗагрузкаПравилРегистрацииОбъектов/ManagerModule.bsl @@ -1,5 +1,5 @@ /////////////////////////////////////////////////////////////////////////////////////////////////////// -// Copyright (c) 2024, ООО 1С-Софт +// Copyright (c) 2025, ООО 1С-Софт // Все права защищены. Эта программа и сопроводительные материалы предоставляются // в соответствии с условиями лицензии Attribution 4.0 International (CC BY 4.0) // Текст лицензии доступен по ссылке: @@ -13,7 +13,7 @@ // Инициализирует колонки таблицы правил регистрации объектов. // // Возвращаемое значение: -// ТаблицаЗначений - с колонками: +// ТаблицаЗначений: // * ОбъектНастройки - Строка // * ОбъектМетаданныхИмя - Строка // * ИмяПланаОбмена - Строка @@ -75,7 +75,7 @@ // Инициализирует колонки таблицы правил регистрации по свойствам плана обмена. // // Возвращаемое значение: -// ДеревоЗначений - с колонками: +// ДеревоЗначений: // * ЭтоГруппа - Булево // * БулевоЗначениеГруппы - Строка // * СвойствоОбъекта - Строка @@ -112,7 +112,7 @@ // Инициализирует колонки таблицы правил регистрации по свойствам объекта. // // Возвращаемое значение: -// ДеревоЗначений - с колонками: +// ДеревоЗначений: // * ЭтоГруппа - Булево // * ЭтоОператорИ - Булево // * СвойствоОбъекта - Строка diff --git a/SSL/src/DataProcessors/ЗагрузкаПравилРегистрацииОбъектов/ObjectModule.bsl b/SSL/src/DataProcessors/ЗагрузкаПравилРегистрацииОбъектов/ObjectModule.bsl index b4e7011ad..68f4cb9d4 100644 --- a/SSL/src/DataProcessors/ЗагрузкаПравилРегистрацииОбъектов/ObjectModule.bsl +++ b/SSL/src/DataProcessors/ЗагрузкаПравилРегистрацииОбъектов/ObjectModule.bsl @@ -1,5 +1,5 @@ /////////////////////////////////////////////////////////////////////////////////////////////////////// -// Copyright (c) 2024, ООО 1С-Софт +// Copyright (c) 2025, ООО 1С-Софт // Все права защищены. Эта программа и сопроводительные материалы предоставляются // в соответствии с условиями лицензии Attribution 4.0 International (CC BY 4.0) // Текст лицензии доступен по ссылке: @@ -30,8 +30,7 @@ #Область СлужебныеПроцедурыИФункции -//////////////////////////////////////////////////////////////////////////////// -// Экспортные служебные процедуры и функции. +#Область ЭкспортныеСлужебныеПроцедурыИФункции // Выполняет синтаксический анализ XML-файла с правилами регистрации. Заполняет значения коллекций по данным файла; // Подготавливает зачитанные правила для проигрывателя ПРО ("компиляция" правил). @@ -110,8 +109,9 @@ Формат(Регистрация.ДатаВремяСоздания, "ДЛФ=DD")); КонецФункции -//////////////////////////////////////////////////////////////////////////////// -// Загрузка правил регистрации объектов (ПРО). +#КонецОбласти + +#Область ЗагрузкаПравилРегистрацииОбъектовПРО Процедура ЗагрузитьРегистрациюИзФайла(ИмяФайла, ТолькоИнформация) @@ -687,8 +687,9 @@ КонецПроцедуры -//////////////////////////////////////////////////////////////////////////////// -// Компиляция правил регистрации объектов (ПРО) по свойствам Плана обмена. +#КонецОбласти + +#Область КомпиляцияПравилРегистрацииОбъектовПРОПоСвойствамПланаОбмена Процедура ПодготовитьПравилоРегистрацииПоСвойствамПланаОбмена(ПРО) Экспорт @@ -897,8 +898,9 @@ КонецФункции -//////////////////////////////////////////////////////////////////////////////// -// Компиляция правил регистрации объектов (ПРО) по свойствам Объекта. +#КонецОбласти + +#Область КомпиляцияПравилРегистрацииОбъектовПРОПоСвойствамОбъекта Процедура ПодготовитьПравилоРегистрацииПоСвойствамОбъекта(ПРО) @@ -935,8 +937,9 @@ КонецПроцедуры -//////////////////////////////////////////////////////////////////////////////// -// Вспомогательные служебные процедуры и функции. +#КонецОбласти + +#Область ВспомогательныеСлужебныеПроцедурыИФункции Процедура СообщитьОбОшибкеОбработки(Код = -1, ОписаниеОшибки = "") @@ -1047,8 +1050,9 @@ КонецФункции -//////////////////////////////////////////////////////////////////////////////// -// Для работы с объектом XMLЧтение. +#КонецОбласти + +#Область ДляРаботыСОбъектомXMLЧтение // Читает значение атрибута по имени из указанного объекта, приводит значение // к указанному примитивному типу. @@ -1171,8 +1175,9 @@ КонецПроцедуры -//////////////////////////////////////////////////////////////////////////////// -// Локальные служебные функции-свойства. +#КонецОбласти + +#Область ЛокальныеСлужебныеФункцииСвойства Функция КлючСообщенияЖурналаРегистрации() @@ -1180,8 +1185,9 @@ КонецФункции -//////////////////////////////////////////////////////////////////////////////// -// Инициализация реквизитов и модульных переменных. +#КонецОбласти + +#Область ИнициализацияРеквизитовИМодульныхПеременных // Инициализирует реквизиты обработки и модульные переменные. // @@ -1253,6 +1259,8 @@ #КонецОбласти +#КонецОбласти + #Область Инициализация ИнициализацияРеквизитовИМодульныхПеременных(); diff --git a/SSL/src/DataProcessors/ЗаменаИОбъединениеЭлементов/Forms/ЗаменаЭлементов/Module.bsl b/SSL/src/DataProcessors/ЗаменаИОбъединениеЭлементов/Forms/ЗаменаЭлементов/Module.bsl index 4d62e168c..492a46db4 100644 --- a/SSL/src/DataProcessors/ЗаменаИОбъединениеЭлементов/Forms/ЗаменаЭлементов/Module.bsl +++ b/SSL/src/DataProcessors/ЗаменаИОбъединениеЭлементов/Forms/ЗаменаЭлементов/Module.bsl @@ -1,5 +1,5 @@ /////////////////////////////////////////////////////////////////////////////////////////////////////// -// Copyright (c) 2024, ООО 1С-Софт +// Copyright (c) 2025, ООО 1С-Софт // Все права защищены. Эта программа и сопроводительные материалы предоставляются // в соответствии с условиями лицензии Attribution 4.0 International (CC BY 4.0) // Текст лицензии доступен по ссылке: diff --git a/SSL/src/DataProcessors/ЗаменаИОбъединениеЭлементов/Forms/ОбъединениеЭлементов/Module.bsl b/SSL/src/DataProcessors/ЗаменаИОбъединениеЭлементов/Forms/ОбъединениеЭлементов/Module.bsl index bc136ef9b..53d7d8729 100644 --- a/SSL/src/DataProcessors/ЗаменаИОбъединениеЭлементов/Forms/ОбъединениеЭлементов/Module.bsl +++ b/SSL/src/DataProcessors/ЗаменаИОбъединениеЭлементов/Forms/ОбъединениеЭлементов/Module.bsl @@ -1,5 +1,5 @@ /////////////////////////////////////////////////////////////////////////////////////////////////////// -// Copyright (c) 2024, ООО 1С-Софт +// Copyright (c) 2025, ООО 1С-Софт // Все права защищены. Эта программа и сопроводительные материалы предоставляются // в соответствии с условиями лицензии Attribution 4.0 International (CC BY 4.0) // Текст лицензии доступен по ссылке: diff --git a/SSL/src/DataProcessors/ЗаменаИОбъединениеЭлементов/ManagerModule.bsl b/SSL/src/DataProcessors/ЗаменаИОбъединениеЭлементов/ManagerModule.bsl index 4b9a09743..2ca37792f 100644 --- a/SSL/src/DataProcessors/ЗаменаИОбъединениеЭлементов/ManagerModule.bsl +++ b/SSL/src/DataProcessors/ЗаменаИОбъединениеЭлементов/ManagerModule.bsl @@ -1,5 +1,5 @@ /////////////////////////////////////////////////////////////////////////////////////////////////////// -// Copyright (c) 2024, ООО 1С-Софт +// Copyright (c) 2025, ООО 1С-Софт // Все права защищены. Эта программа и сопроводительные материалы предоставляются // в соответствии с условиями лицензии Attribution 4.0 International (CC BY 4.0) // Текст лицензии доступен по ссылке: diff --git a/SSL/src/DataProcessors/ЗаполнениеГрафиковРаботы/ManagerModule.bsl b/SSL/src/DataProcessors/ЗаполнениеГрафиковРаботы/ManagerModule.bsl index 53070fd99..96f7ee7ab 100644 --- a/SSL/src/DataProcessors/ЗаполнениеГрафиковРаботы/ManagerModule.bsl +++ b/SSL/src/DataProcessors/ЗаполнениеГрафиковРаботы/ManagerModule.bsl @@ -1,5 +1,5 @@ /////////////////////////////////////////////////////////////////////////////////////////////////////// -// Copyright (c) 2024, ООО 1С-Софт +// Copyright (c) 2025, ООО 1С-Софт // Все права защищены. Эта программа и сопроводительные материалы предоставляются // в соответствии с условиями лицензии Attribution 4.0 International (CC BY 4.0) // Текст лицензии доступен по ссылке: diff --git a/SSL/src/DataProcessors/ЗаполнениеКалендарныхГрафиков/Forms/ПодборКалендарейИзКлассификатора/Module.bsl b/SSL/src/DataProcessors/ЗаполнениеКалендарныхГрафиков/Forms/ПодборКалендарейИзКлассификатора/Module.bsl index 0cf1d4ed3..7914274b9 100644 --- a/SSL/src/DataProcessors/ЗаполнениеКалендарныхГрафиков/Forms/ПодборКалендарейИзКлассификатора/Module.bsl +++ b/SSL/src/DataProcessors/ЗаполнениеКалендарныхГрафиков/Forms/ПодборКалендарейИзКлассификатора/Module.bsl @@ -1,5 +1,5 @@ /////////////////////////////////////////////////////////////////////////////////////////////////////// -// Copyright (c) 2024, ООО 1С-Софт +// Copyright (c) 2025, ООО 1С-Софт // Все права защищены. Эта программа и сопроводительные материалы предоставляются // в соответствии с условиями лицензии Attribution 4.0 International (CC BY 4.0) // Текст лицензии доступен по ссылке: diff --git a/SSL/src/DataProcessors/ЗаполнениеКалендарныхГрафиков/ManagerModule.bsl b/SSL/src/DataProcessors/ЗаполнениеКалендарныхГрафиков/ManagerModule.bsl index da1f547ad..e99441f87 100644 --- a/SSL/src/DataProcessors/ЗаполнениеКалендарныхГрафиков/ManagerModule.bsl +++ b/SSL/src/DataProcessors/ЗаполнениеКалендарныхГрафиков/ManagerModule.bsl @@ -1,5 +1,5 @@ /////////////////////////////////////////////////////////////////////////////////////////////////////// -// Copyright (c) 2024, ООО 1С-Софт +// Copyright (c) 2025, ООО 1С-Софт // Все права защищены. Эта программа и сопроводительные материалы предоставляются // в соответствии с условиями лицензии Attribution 4.0 International (CC BY 4.0) // Текст лицензии доступен по ссылке: @@ -45,19 +45,19 @@ Функция ВерсияКалендарей() Экспорт - Возврат 112; + Возврат 117; КонецФункции Функция ВерсияОбновленияПроизводственныхКалендарей() Экспорт - Возврат "3.1.11.421"; + Возврат "3.1.12.186"; КонецФункции Функция ВерсияОбновленияДанныхПроизводственныхКалендарей() Экспорт - Возврат "3.1.11.466"; + Возврат "3.1.12.205"; КонецФункции diff --git a/SSL/src/DataProcessors/ЗаполнениеКалендарныхГрафиков/Templates/ДанныеПроизводственныхКалендарей/Template.txt b/SSL/src/DataProcessors/ЗаполнениеКалендарныхГрафиков/Templates/ДанныеПроизводственныхКалендарей/Template.txt index 406b7893b..07368a464 100644 --- a/SSL/src/DataProcessors/ЗаполнениеКалендарныхГрафиков/Templates/ДанныеПроизводственныхКалендарей/Template.txt +++ b/SSL/src/DataProcessors/ЗаполнениеКалендарныхГрафиков/Templates/ДанныеПроизводственныхКалендарей/Template.txt @@ -69,11 +69,14 @@ - + + + + @@ -153,6 +156,7 @@ + @@ -176,6 +180,8 @@ + + @@ -296,6 +302,7 @@ + @@ -303,6 +310,9 @@ + + + @@ -453,6 +463,14 @@ + + + + + + + + @@ -546,13 +564,17 @@ - - + + - - + + + + + + @@ -626,6 +648,11 @@ + + + + + @@ -645,6 +672,7 @@ + @@ -690,6 +718,9 @@ + + + @@ -772,6 +803,8 @@ + + @@ -857,11 +890,17 @@ - - + + + + + + + + @@ -990,6 +1029,10 @@ + + + + @@ -1012,12 +1055,18 @@ + + + + + + @@ -1037,6 +1086,10 @@ + + + + @@ -1051,6 +1104,7 @@ + @@ -1063,6 +1117,12 @@ + + + + + + @@ -1083,6 +1143,10 @@ + + + + @@ -1103,6 +1167,10 @@ + + + + @@ -1126,6 +1194,8 @@ + + @@ -1153,6 +1223,12 @@ + + + + + + @@ -1179,6 +1255,8 @@ + + @@ -1255,6 +1333,8 @@ + + @@ -1279,6 +1359,11 @@ + + + + + @@ -1312,6 +1397,12 @@ + + + + + + @@ -1342,6 +1433,10 @@ + + + + @@ -1378,6 +1473,8 @@ + + @@ -1986,4 +2083,28 @@ + + + + + + + + + + + + + + + + + + + + + + + + \ No newline at end of file diff --git a/SSL/src/DataProcessors/ЗаполнениеКалендарныхГрафиков/Templates/ПроизводственныеКалендари/Template.txt b/SSL/src/DataProcessors/ЗаполнениеКалендарныхГрафиков/Templates/ПроизводственныеКалендари/Template.txt index 35d7727c7..bd3afbc23 100644 --- a/SSL/src/DataProcessors/ЗаполнениеКалендарныхГрафиков/Templates/ПроизводственныеКалендари/Template.txt +++ b/SSL/src/DataProcessors/ЗаполнениеКалендарныхГрафиков/Templates/ПроизводственныеКалендари/Template.txt @@ -22,6 +22,7 @@ + diff --git a/SSL/src/DataProcessors/ЗащитаПерсональныхДанных/Commands/ЗащитаПерсональныхДанных/CommandModule.bsl b/SSL/src/DataProcessors/ЗащитаПерсональныхДанных/Commands/ЗащитаПерсональныхДанных/CommandModule.bsl index 529518596..6e3986c7c 100644 --- a/SSL/src/DataProcessors/ЗащитаПерсональныхДанных/Commands/ЗащитаПерсональныхДанных/CommandModule.bsl +++ b/SSL/src/DataProcessors/ЗащитаПерсональныхДанных/Commands/ЗащитаПерсональныхДанных/CommandModule.bsl @@ -1,5 +1,5 @@ /////////////////////////////////////////////////////////////////////////////////////////////////////// -// Copyright (c) 2024, ООО 1С-Софт +// Copyright (c) 2025, ООО 1С-Софт // Все права защищены. Эта программа и сопроводительные материалы предоставляются // в соответствии с условиями лицензии Attribution 4.0 International (CC BY 4.0) // Текст лицензии доступен по ссылке: diff --git a/SSL/src/DataProcessors/ЗащитаПерсональныхДанных/Forms/Форма/Module.bsl b/SSL/src/DataProcessors/ЗащитаПерсональныхДанных/Forms/Форма/Module.bsl index 24f574564..791670ca9 100644 --- a/SSL/src/DataProcessors/ЗащитаПерсональныхДанных/Forms/Форма/Module.bsl +++ b/SSL/src/DataProcessors/ЗащитаПерсональныхДанных/Forms/Форма/Module.bsl @@ -1,5 +1,5 @@ /////////////////////////////////////////////////////////////////////////////////////////////////////// -// Copyright (c) 2024, ООО 1С-Софт +// Copyright (c) 2025, ООО 1С-Софт // Все права защищены. Эта программа и сопроводительные материалы предоставляются // в соответствии с условиями лицензии Attribution 4.0 International (CC BY 4.0) // Текст лицензии доступен по ссылке: diff --git a/SSL/src/DataProcessors/ЗащитаПерсональныхДанных/ManagerModule.bsl b/SSL/src/DataProcessors/ЗащитаПерсональныхДанных/ManagerModule.bsl index bc9581297..3af073a00 100644 --- a/SSL/src/DataProcessors/ЗащитаПерсональныхДанных/ManagerModule.bsl +++ b/SSL/src/DataProcessors/ЗащитаПерсональныхДанных/ManagerModule.bsl @@ -1,5 +1,5 @@ /////////////////////////////////////////////////////////////////////////////////////////////////////// -// Copyright (c) 2024, ООО 1С-Софт +// Copyright (c) 2025, ООО 1С-Софт // Все права защищены. Эта программа и сопроводительные материалы предоставляются // в соответствии с условиями лицензии Attribution 4.0 International (CC BY 4.0) // Текст лицензии доступен по ссылке: diff --git a/SSL/src/DataProcessors/ЗаявлениеНаВыпускНовогоКвалифицированногоСертификата/Forms/Информация/Module.bsl b/SSL/src/DataProcessors/ЗаявлениеНаВыпускНовогоКвалифицированногоСертификата/Forms/Информация/Module.bsl index a46fab40a..5c11e6ec1 100644 --- a/SSL/src/DataProcessors/ЗаявлениеНаВыпускНовогоКвалифицированногоСертификата/Forms/Информация/Module.bsl +++ b/SSL/src/DataProcessors/ЗаявлениеНаВыпускНовогоКвалифицированногоСертификата/Forms/Информация/Module.bsl @@ -1,5 +1,5 @@ /////////////////////////////////////////////////////////////////////////////////////////////////////// -// Copyright (c) 2024, ООО 1С-Софт +// Copyright (c) 2025, ООО 1С-Софт // Все права защищены. Эта программа и сопроводительные материалы предоставляются // в соответствии с условиями лицензии Attribution 4.0 International (CC BY 4.0) // Текст лицензии доступен по ссылке: @@ -136,8 +136,12 @@ ПечатнаяФорма.ТабличныйДокумент = Параметры.СодержаниеСертификата; ПечатнаяФорма.ИмяФайлаПечатнойФормы = НазваниеПечатнойФормы; + ПараметрыПечати = МодульУправлениеПечатьюКлиент.ПараметрыПечати(); + ПараметрыПечати.ВладелецФормы = ЭтотОбъект; + ПараметрыПечати.ЗаголовокФормы = НазваниеПечатнойФормы; + ОбластиОбъектов = Новый СписокЗначений; - МодульУправлениеПечатьюКлиент.ПечатьДокументов(КоллекцияПечатныхФорм, ОбластиОбъектов); + МодульУправлениеПечатьюКлиент.ПечатьДокументов(КоллекцияПечатныхФорм, ОбластиОбъектов, ПараметрыПечати); КонецПроцедуры diff --git a/SSL/src/DataProcessors/ЗаявлениеНаВыпускНовогоКвалифицированногоСертификата/Forms/ИнформацияОДоступностиВыпуска/Module.bsl b/SSL/src/DataProcessors/ЗаявлениеНаВыпускНовогоКвалифицированногоСертификата/Forms/ИнформацияОДоступностиВыпуска/Module.bsl index 5783c91c4..338ef6370 100644 --- a/SSL/src/DataProcessors/ЗаявлениеНаВыпускНовогоКвалифицированногоСертификата/Forms/ИнформацияОДоступностиВыпуска/Module.bsl +++ b/SSL/src/DataProcessors/ЗаявлениеНаВыпускНовогоКвалифицированногоСертификата/Forms/ИнформацияОДоступностиВыпуска/Module.bsl @@ -1,5 +1,5 @@ /////////////////////////////////////////////////////////////////////////////////////////////////////// -// Copyright (c) 2024, ООО 1С-Софт +// Copyright (c) 2025, ООО 1С-Софт // Все права защищены. Эта программа и сопроводительные материалы предоставляются // в соответствии с условиями лицензии Attribution 4.0 International (CC BY 4.0) // Текст лицензии доступен по ссылке: diff --git a/SSL/src/DataProcessors/ЗаявлениеНаВыпускНовогоКвалифицированногоСертификата/Forms/СведенияОВладельцеСертификата/Module.bsl b/SSL/src/DataProcessors/ЗаявлениеНаВыпускНовогоКвалифицированногоСертификата/Forms/СведенияОВладельцеСертификата/Module.bsl index eadce6d70..e505adadb 100644 --- a/SSL/src/DataProcessors/ЗаявлениеНаВыпускНовогоКвалифицированногоСертификата/Forms/СведенияОВладельцеСертификата/Module.bsl +++ b/SSL/src/DataProcessors/ЗаявлениеНаВыпускНовогоКвалифицированногоСертификата/Forms/СведенияОВладельцеСертификата/Module.bsl @@ -1,5 +1,5 @@ /////////////////////////////////////////////////////////////////////////////////////////////////////// -// Copyright (c) 2024, ООО 1С-Софт +// Copyright (c) 2025, ООО 1С-Софт // Все права защищены. Эта программа и сопроводительные материалы предоставляются // в соответствии с условиями лицензии Attribution 4.0 International (CC BY 4.0) // Текст лицензии доступен по ссылке: diff --git a/SSL/src/DataProcessors/ЗаявлениеНаВыпускНовогоКвалифицированногоСертификата/Forms/СведенияОбОрганизации/Module.bsl b/SSL/src/DataProcessors/ЗаявлениеНаВыпускНовогоКвалифицированногоСертификата/Forms/СведенияОбОрганизации/Module.bsl index 24eb764c0..85e83cbc1 100644 --- a/SSL/src/DataProcessors/ЗаявлениеНаВыпускНовогоКвалифицированногоСертификата/Forms/СведенияОбОрганизации/Module.bsl +++ b/SSL/src/DataProcessors/ЗаявлениеНаВыпускНовогоКвалифицированногоСертификата/Forms/СведенияОбОрганизации/Module.bsl @@ -1,5 +1,5 @@ /////////////////////////////////////////////////////////////////////////////////////////////////////// -// Copyright (c) 2024, ООО 1С-Софт +// Copyright (c) 2025, ООО 1С-Софт // Все права защищены. Эта программа и сопроводительные материалы предоставляются // в соответствии с условиями лицензии Attribution 4.0 International (CC BY 4.0) // Текст лицензии доступен по ссылке: diff --git a/SSL/src/DataProcessors/ЗаявлениеНаВыпускНовогоКвалифицированногоСертификата/Forms/ТехническаяИнформация/Module.bsl b/SSL/src/DataProcessors/ЗаявлениеНаВыпускНовогоКвалифицированногоСертификата/Forms/ТехническаяИнформация/Module.bsl index 799156f64..8cbc6fdf6 100644 --- a/SSL/src/DataProcessors/ЗаявлениеНаВыпускНовогоКвалифицированногоСертификата/Forms/ТехническаяИнформация/Module.bsl +++ b/SSL/src/DataProcessors/ЗаявлениеНаВыпускНовогоКвалифицированногоСертификата/Forms/ТехническаяИнформация/Module.bsl @@ -1,5 +1,5 @@ /////////////////////////////////////////////////////////////////////////////////////////////////////// -// Copyright (c) 2024, ООО 1С-Софт +// Copyright (c) 2025, ООО 1С-Софт // Все права защищены. Эта программа и сопроводительные материалы предоставляются // в соответствии с условиями лицензии Attribution 4.0 International (CC BY 4.0) // Текст лицензии доступен по ссылке: diff --git a/SSL/src/DataProcessors/ЗаявлениеНаВыпускНовогоКвалифицированногоСертификата/Forms/Форма/Module.bsl b/SSL/src/DataProcessors/ЗаявлениеНаВыпускНовогоКвалифицированногоСертификата/Forms/Форма/Module.bsl index 3f4bfc06e..9ec434503 100644 --- a/SSL/src/DataProcessors/ЗаявлениеНаВыпускНовогоКвалифицированногоСертификата/Forms/Форма/Module.bsl +++ b/SSL/src/DataProcessors/ЗаявлениеНаВыпускНовогоКвалифицированногоСертификата/Forms/Форма/Module.bsl @@ -1,5 +1,5 @@ /////////////////////////////////////////////////////////////////////////////////////////////////////// -// Copyright (c) 2024, ООО 1С-Софт +// Copyright (c) 2025, ООО 1С-Софт // Все права защищены. Эта программа и сопроводительные материалы предоставляются // в соответствии с условиями лицензии Attribution 4.0 International (CC BY 4.0) // Текст лицензии доступен по ссылке: @@ -1238,7 +1238,7 @@ Запрос = Новый Запрос; Запрос.Текст = - "ВЫБРАТЬ + "ВЫБРАТЬ РАЗРЕШЕННЫЕ | СертификатыКлючейЭлектроннойПодписиИШифрования.Фамилия КАК Фамилия, | СертификатыКлючейЭлектроннойПодписиИШифрования.Имя КАК Имя, | СертификатыКлючейЭлектроннойПодписиИШифрования.Отчество КАК Отчество, @@ -1357,7 +1357,7 @@ Запрос = Новый Запрос; Запрос.Текст = - "ВЫБРАТЬ + "ВЫБРАТЬ РАЗРЕШЕННЫЕ | ЕСТЬNULL(ЗаявленияНаВыпускСертификата.ИдентификаторАбонента, Неопределено) КАК ИдентификаторАбонента, | СертификатыКлючейЭлектроннойПодписиИШифрования.ДействителенДо КАК ДействителенДо, | СертификатыКлючейЭлектроннойПодписиИШифрования.Ссылка КАК Ссылка, @@ -2735,7 +2735,7 @@ Запрос = Новый Запрос; Запрос.Текст = - "ВЫБРАТЬ + "ВЫБРАТЬ РАЗРЕШЕННЫЕ | ЗаявленияНаВыпускСертификата.СодержаниеЗаявления КАК СодержаниеЗаявления |ИЗ | РегистрСведений.ЗаявленияНаВыпускСертификата КАК ЗаявленияНаВыпускСертификата @@ -3532,8 +3532,8 @@ Макет.Параметры.ПериодДействияЗакрытогоКлюча = СтроковыеФункцииКлиентСервер.ПодставитьПараметрыВСтроку( НСтр("ru = '%1 по %2'"), Формат(СертификатКриптографии.УниверсальнаяДатаНачалаЗакрытогоКлюча, НСтр( - "ru = 'ДФ=''dd MMMM yyyy ""г."" H:mm:ss'''")), Формат( - СертификатКриптографии.УниверсальнаяДатаОкончанияЗакрытогоКлюча, НСтр("ru = 'ДФ=''dd MMMM yyyy ""г."" H:mm:ss'''"))); + "ru = 'ДФ=''dd MMMM yyyy ""г."" H:mm:ss ""UTC""'''")), Формат( + СертификатКриптографии.УниверсальнаяДатаОкончанияЗакрытогоКлюча, НСтр("ru = 'ДФ=''dd MMMM yyyy ""г."" H:mm:ss ""UTC""'''"))); КонецЕсли; Макет.Параметры.Алгоритм = ЭлектроннаяПодписьСлужебныйКлиентСервер.ПредставлениеАлгоритмаПодписи( @@ -3549,10 +3549,10 @@ Макет.Параметры.ПериодДействияЗакрытогоКлюча = СтроковыеФункцииКлиентСервер.ПодставитьПараметрыВСтроку( НСтр("ru = '%1 по %2'"), Формат(СвойстваСертификата.ДатаНачалаЗакрытогоКлюча - ЭлектроннаяПодписьСлужебный.РазницаСУниверсальнымВременем(), НСтр( - "ru = 'ДФ=''dd MMMM yyyy ""г."" H:mm:ss'''")), Формат( + "ru = 'ДФ=''dd MMMM yyyy ""г."" H:mm:ss ""UTC""'''")), Формат( СвойстваСертификата.ДатаОкончанияЗакрытогоКлюча - ЭлектроннаяПодписьСлужебный.РазницаСУниверсальнымВременем(), НСтр( - "ru = 'ДФ=''dd MMMM yyyy ""г."" H:mm:ss'''"))); + "ru = 'ДФ=''dd MMMM yyyy ""г."" H:mm:ss ""UTC""'''"))); КонецЕсли; @@ -3579,8 +3579,8 @@ Макет.Параметры.СерийныйНомер = СвойстваСертификата.СерийныйНомер; Макет.Параметры.ПериодДействия = СтроковыеФункцииКлиентСервер.ПодставитьПараметрыВСтроку( НСтр("ru = '%1 по %2'"), - Формат(СертификатКриптографии.ДатаНачала, НСтр("ru = 'ДФ=''dd MMMM yyyy ""г."" H:mm:ss'''")), - Формат(СертификатКриптографии.ДатаОкончания, НСтр("ru = 'ДФ=''dd MMMM yyyy ""г."" H:mm:ss'''"))); + Формат(СертификатКриптографии.ДатаНачала, НСтр("ru = 'ДФ=''dd MMMM yyyy ""г."" H:mm:ss ""UTC""'''")), + Формат(СертификатКриптографии.ДатаОкончания, НСтр("ru = 'ДФ=''dd MMMM yyyy ""г."" H:mm:ss ""UTC""'''"))); Макет.Параметры.НаименованиеУЦ = СвойстваИздателяСертификата.ОбщееИмя; Макет.Параметры.АдресУЦ = АдресИзСертификатаКриптографии(СвойстваИздателяСертификата); @@ -3677,8 +3677,12 @@ ПечатнаяФорма.ТабличныйДокумент = ТабличныйДокумент; ПечатнаяФорма.ИмяФайлаПечатнойФормы = НазваниеПечатнойФормы; + ПараметрыПечати = МодульУправлениеПечатьюКлиент.ПараметрыПечати(); + ПараметрыПечати.ВладелецФормы = ЭтотОбъект; + ПараметрыПечати.ЗаголовокФормы = НазваниеПечатнойФормы; + ОбластиОбъектов = Новый СписокЗначений; - МодульУправлениеПечатьюКлиент.ПечатьДокументов(КоллекцияПечатныхФорм, ОбластиОбъектов); + МодульУправлениеПечатьюКлиент.ПечатьДокументов(КоллекцияПечатныхФорм, ОбластиОбъектов, ПараметрыПечати); КонецПроцедуры @@ -3775,8 +3779,7 @@ Ждать ОбъектКомпоненты.ПолучитьСписокОшибокАсинх(); ОписаниеОповещения = Новый ОписаниеОповещения("ПродолжитьПослеВводаПинКода", ЭтотОбъект, Контекст); - ОткрытьФорму("Обработка.ЗаявлениеНаВыпускНовогоКвалифицированногоСертификата.Форма.ВводПинКода",, ЭтотОбъект, Истина, - ,, ОписаниеОповещения, РежимОткрытияОкнаФормы.БлокироватьОкноВладельца); + ЭлектроннаяПодписьКлиентЛокализация.ВвестиПинКодТокена(ОписаниеОповещения); КонецПроцедуры @@ -7378,8 +7381,7 @@ Контекст.Вставить("ДанныеСертификата", ДД); ОписаниеОповещения = Новый ОписаниеОповещения("ПродолжитьУстановкуПослеВводаПинКода", ЭтотОбъект, Контекст); - ОткрытьФорму("Обработка.ЗаявлениеНаВыпускНовогоКвалифицированногоСертификата.Форма.ВводПинКода",, ЭтотОбъект, Истина, - ,, ОписаниеОповещения, РежимОткрытияОкнаФормы.БлокироватьОкноВладельца); + ЭлектроннаяПодписьКлиентЛокализация.ВвестиПинКодТокена(ОписаниеОповещения); КонецПроцедуры diff --git a/SSL/src/DataProcessors/ЗаявлениеНаВыпускНовогоКвалифицированногоСертификата/Forms/ФормаСоглашения/Module.bsl b/SSL/src/DataProcessors/ЗаявлениеНаВыпускНовогоКвалифицированногоСертификата/Forms/ФормаСоглашения/Module.bsl index 43b1c157d..ba8429b09 100644 --- a/SSL/src/DataProcessors/ЗаявлениеНаВыпускНовогоКвалифицированногоСертификата/Forms/ФормаСоглашения/Module.bsl +++ b/SSL/src/DataProcessors/ЗаявлениеНаВыпускНовогоКвалифицированногоСертификата/Forms/ФормаСоглашения/Module.bsl @@ -1,5 +1,5 @@ /////////////////////////////////////////////////////////////////////////////////////////////////////// -// Copyright (c) 2024, ООО 1С-Софт +// Copyright (c) 2025, ООО 1С-Софт // Все права защищены. Эта программа и сопроводительные материалы предоставляются // в соответствии с условиями лицензии Attribution 4.0 International (CC BY 4.0) // Текст лицензии доступен по ссылке: diff --git a/SSL/src/DataProcessors/ЗаявлениеНаВыпускНовогоКвалифицированногоСертификата/ManagerModule.bsl b/SSL/src/DataProcessors/ЗаявлениеНаВыпускНовогоКвалифицированногоСертификата/ManagerModule.bsl index b875a9ade..a82453d89 100644 --- a/SSL/src/DataProcessors/ЗаявлениеНаВыпускНовогоКвалифицированногоСертификата/ManagerModule.bsl +++ b/SSL/src/DataProcessors/ЗаявлениеНаВыпускНовогоКвалифицированногоСертификата/ManagerModule.bsl @@ -1,5 +1,5 @@ /////////////////////////////////////////////////////////////////////////////////////////////////////// -// Copyright (c) 2024, ООО 1С-Софт +// Copyright (c) 2025, ООО 1С-Софт // Все права защищены. Эта программа и сопроводительные материалы предоставляются // в соответствии с условиями лицензии Attribution 4.0 International (CC BY 4.0) // Текст лицензии доступен по ссылке: @@ -89,7 +89,7 @@ СписокСертификатов = Новый СписокЗначений; Запрос = Новый Запрос; - Запрос.Текст = "ВЫБРАТЬ + Запрос.Текст = "ВЫБРАТЬ РАЗРЕШЕННЫЕ | ЗаявленияНаВыпускСертификата.Сертификат, | ЗаявленияНаВыпускСертификата.СостояниеЗаявления, | Представление(ЗаявленияНаВыпускСертификата.Сертификат) КАК Представление @@ -1170,7 +1170,7 @@ Запрос = Новый Запрос; Запрос.Текст = - "ВЫБРАТЬ + "ВЫБРАТЬ РАЗРЕШЕННЫЕ | Сертификаты.Ссылка КАК Ссылка, | Сертификаты.Наименование КАК Представление, | Сертификаты.Организация КАК Организация @@ -1280,7 +1280,7 @@ Функция РезультатЗапросаПоЗаявлению(Сертификат) Запрос = Новый Запрос; Запрос.Текст = - "ВЫБРАТЬ + "ВЫБРАТЬ РАЗРЕШЕННЫЕ | СертификатыКлючейЭлектроннойПодписиИШифрования.ПометкаУдаления, | ЗаявленияНаВыпускСертификата.СостояниеЗаявления, | ЗаявленияНаВыпускСертификата.ДатаОтправки, @@ -1422,7 +1422,7 @@ Запрос = Новый Запрос; Запрос.Текст = - "ВЫБРАТЬ + "ВЫБРАТЬ РАЗРЕШЕННЫЕ | СертификатыКлючейЭлектроннойПодписиИШифрования.Ссылка |ПОМЕСТИТЬ СертификатыПользователя |ИЗ @@ -1447,7 +1447,7 @@ |; | |//////////////////////////////////////////////////////////////////////////////// - |ВЫБРАТЬ + |ВЫБРАТЬ РАЗРЕШЕННЫЕ | КОЛИЧЕСТВО(РАЗЛИЧНЫЕ СертификатыПользователя.Ссылка) КАК Количество |ИЗ | РегистрСведений.ЗаявленияНаВыпускСертификата КАК ЗаявленияНаВыпускСертификата @@ -1461,7 +1461,7 @@ СостоянияЗаявления.Добавить(Перечисления.СостоянияЗаявленияНаВыпускСертификата.Отклонено); Запрос.УстановитьПараметр("Пользователь", Пользователи.ТекущийПользователь()); Запрос.УстановитьПараметр("СостоянияЗаявления", СостоянияЗаявления); - + Возврат Запрос.Выполнить().Выгрузить()[0].Количество; КонецФункции @@ -1552,6 +1552,25 @@ КонецПроцедуры +#КонецОбласти + +#Область ОбработчикиСобытийПодсистемыУправлениеДоступом + +// См. УправлениеДоступомПереопределяемый.ПриЗаполненииСписковСОграничениемДоступа. +Процедура ПриЗаполненииСписковСОграничениемДоступа(Списки) Экспорт + + Списки.Вставить(Метаданные.РегистрыСведений.ЗаявленияНаВыпускСертификата, Истина); + +КонецПроцедуры + +// См. УправлениеДоступомПереопределяемый.ПриЗаполненииВидовОграниченийПравОбъектовМетаданных. +Процедура ПриЗаполненииВидовОграниченийПравОбъектовМетаданных(Описание) Экспорт + + Описание = Описание + " + |РегистрСведений.ЗаявленияНаВыпускСертификата.Чтение.Пользователи + |РегистрСведений.ЗаявленияНаВыпускСертификата.Изменение.Пользователи"; + +КонецПроцедуры #КонецОбласти diff --git a/SSL/src/DataProcessors/ЗаявлениеНаВыпускНовогоКвалифицированногоСертификата/ЗаявлениеНаВыпускНовогоКвалифицированногоСертификата.mdo b/SSL/src/DataProcessors/ЗаявлениеНаВыпускНовогоКвалифицированногоСертификата/ЗаявлениеНаВыпускНовогоКвалифицированногоСертификата.mdo index ae65c3831..02efc4be6 100644 --- a/SSL/src/DataProcessors/ЗаявлениеНаВыпускНовогоКвалифицированногоСертификата/ЗаявлениеНаВыпускНовогоКвалифицированногоСертификата.mdo +++ b/SSL/src/DataProcessors/ЗаявлениеНаВыпускНовогоКвалифицированногоСертификата/ЗаявлениеНаВыпускНовогоКвалифицированногоСертификата.mdo @@ -79,15 +79,6 @@ PersonalComputer MobileDevice - - ВводПинКода - - ru - Ввод пин кода - - PersonalComputer - MobileDevice - ИндивидуальныйПредприниматель diff --git a/SSL/src/DataProcessors/ИнтерактивноеИзменениеВыгрузки/Forms/ВыборВидаОбъектаСоставаУзла/Module.bsl b/SSL/src/DataProcessors/ИнтерактивноеИзменениеВыгрузки/Forms/ВыборВидаОбъектаСоставаУзла/Module.bsl index ed6402d83..0b3af9318 100644 --- a/SSL/src/DataProcessors/ИнтерактивноеИзменениеВыгрузки/Forms/ВыборВидаОбъектаСоставаУзла/Module.bsl +++ b/SSL/src/DataProcessors/ИнтерактивноеИзменениеВыгрузки/Forms/ВыборВидаОбъектаСоставаУзла/Module.bsl @@ -1,5 +1,5 @@ /////////////////////////////////////////////////////////////////////////////////////////////////////// -// Copyright (c) 2024, ООО 1С-Софт +// Copyright (c) 2025, ООО 1С-Софт // Все права защищены. Эта программа и сопроводительные материалы предоставляются // в соответствии с условиями лицензии Attribution 4.0 International (CC BY 4.0) // Текст лицензии доступен по ссылке: diff --git a/SSL/src/DataProcessors/ИнтерактивноеИзменениеВыгрузки/Forms/ОбщиеПараметрыСинхронизации/Module.bsl b/SSL/src/DataProcessors/ИнтерактивноеИзменениеВыгрузки/Forms/ОбщиеПараметрыСинхронизации/Module.bsl index 27f27db24..e31f03e51 100644 --- a/SSL/src/DataProcessors/ИнтерактивноеИзменениеВыгрузки/Forms/ОбщиеПараметрыСинхронизации/Module.bsl +++ b/SSL/src/DataProcessors/ИнтерактивноеИзменениеВыгрузки/Forms/ОбщиеПараметрыСинхронизации/Module.bsl @@ -1,5 +1,5 @@ /////////////////////////////////////////////////////////////////////////////////////////////////////// -// Copyright (c) 2024, ООО 1С-Софт +// Copyright (c) 2025, ООО 1С-Софт // Все права защищены. Эта программа и сопроводительные материалы предоставляются // в соответствии с условиями лицензии Attribution 4.0 International (CC BY 4.0) // Текст лицензии доступен по ссылке: diff --git a/SSL/src/DataProcessors/ИнтерактивноеИзменениеВыгрузки/Forms/РедактированиеПериодаИОтбора/Help/ru.html b/SSL/src/DataProcessors/ИнтерактивноеИзменениеВыгрузки/Forms/РедактированиеПериодаИОтбора/Help/ru.html index 98bd61671..d45e10dd4 100644 --- a/SSL/src/DataProcessors/ИнтерактивноеИзменениеВыгрузки/Forms/РедактированиеПериодаИОтбора/Help/ru.html +++ b/SSL/src/DataProcessors/ИнтерактивноеИзменениеВыгрузки/Forms/РедактированиеПериодаИОтбора/Help/ru.html @@ -2,17 +2,28 @@

          Предназначена для отбора данных при интерактивной синхронизации данных.

          Отбор данных для выгрузки

          • Для документов используется период отбора. В поле За период нажмите  Выбрать, укажите период. Даты можно указать вручную или выбрать из календаря. С помощью ссылки Показать стандартные периоды можно быстро подобрать период. -
          • Нажмите Добавить условие. -
          • Выберите Поле для отбора. -
          • Выберите Вид сравнения. -
            • Виды сравнения Равно, Не равно, В группе, Не в группе предполагают выбор одного значения. С помощью видов сравнения Равно или В группе программа отберет только те записи, которые будут полностью соответствовать указанному значению. -
            • Виды сравнения В списке, В группе из списка, Не в списке, Не в группе из списка предполагают выбор нескольких значений. Виды сравнения В группе из списка или Не в группе из списка доступны, если в списках для выбора значений имеются группы. -
            • С помощью видов сравнения В списке или В группе из списка будут отобраны элементы, которые содержат то или иное значение, перечисленное в списке. -
            • Виды сравнения Не равно, Не в группе, Не в списке, Не в группе из списка являются отрицанием соответствующих видов сравнения. В результате выполнения условий с такими видами сравнения будут отобраны все элементы, кроме тех, которые указаны. -
            • Для видов сравнения Заполнено и Не заполнено не требуется выбор значения. С помощью вида сравнения Заполнено, например, можно отобрать документы, в которых не проставлена цена на товар.
          • Укажите Значение. +
          • +
          • Нажмите Добавить условие. +
          • +
          • Выберите Поле для отбора. +
          • +
          • Выберите Вид сравнения. +
            • Виды сравнения Равно, Не равно, В группе, Не в группе предполагают выбор одного значения. С помощью видов сравнения Равно или В группе приложение отберет только те записи, которые будут полностью соответствовать указанному значению. +
            • +
            • Виды сравнения В списке, В группе из списка, Не в списке, Не в группе из списка предполагают выбор нескольких значений. Виды сравнения В группе из списка или Не в группе из списка доступны, если в списках для выбора значений имеются группы. +
            • +
            • С помощью видов сравнения В списке или В группе из списка будут отобраны элементы, которые содержат то или иное значение, перечисленное в списке. +
            • +
            • Виды сравнения Не равно, Не в группе, Не в списке, Не в группе из списка являются отрицанием соответствующих видов сравнения. В результате выполнения условий с такими видами сравнения будут отобраны все элементы, кроме тех, которые указаны. +
            • +
            • Для видов сравнения Заполнено и Не заполнено не требуется выбор значения. С помощью вида сравнения Заполнено, например, можно отобрать документы, в которых не проставлена цена на товар.
          • +
          • Укажите Значение.
            • В зависимости от вида сравнения значение можно написать вручную или выбрать из списка. -
            • С помощью команды Еще - Использовать в качестве значения поле можно указать в качестве значения поле документа или элемента списка. Выберите поле из предложенного списка.

          Группировка условий

          + +
        • С помощью команды Еще - Использовать в качестве значения поле можно указать в качестве значения поле документа или элемента списка. Выберите поле из предложенного списка.
        • Группировка условий

          • При необходимости условий для отбора может быть несколько, в этом случае они группируются с помощью логических операций И, Или, Не с помощью кнопки Сгруппировать условия. Условия для группировки можно выделить, а затем нажать кнопку. В этом случае все выбранные условия сразу попадут в группу. -
          •  Для отмены группировки условий выделите их, выполните команду Еще - Разгруппировать. -
          • Можно создать группы для условий с помощью команды Еще - Добавить новую группу, а затем уже перетащить туда нужные условия с помощью мыши или создать в группе новые условия.

          См. также:

          + +
        •  Для отмены группировки условий выделите их, выполните команду Еще - Разгруппировать. +
        • +
        • Можно создать группы для условий с помощью команды Еще - Добавить новую группу, а затем уже перетащить туда нужные условия с помощью мыши или создать в группе новые условия.
        • См. также:

          \ No newline at end of file diff --git a/SSL/src/DataProcessors/ИнтерактивноеИзменениеВыгрузки/Forms/РедактированиеПериодаИОтбора/Module.bsl b/SSL/src/DataProcessors/ИнтерактивноеИзменениеВыгрузки/Forms/РедактированиеПериодаИОтбора/Module.bsl index d443499b8..cb47965f6 100644 --- a/SSL/src/DataProcessors/ИнтерактивноеИзменениеВыгрузки/Forms/РедактированиеПериодаИОтбора/Module.bsl +++ b/SSL/src/DataProcessors/ИнтерактивноеИзменениеВыгрузки/Forms/РедактированиеПериодаИОтбора/Module.bsl @@ -1,5 +1,5 @@ /////////////////////////////////////////////////////////////////////////////////////////////////////// -// Copyright (c) 2024, ООО 1С-Софт +// Copyright (c) 2025, ООО 1С-Софт // Все права защищены. Эта программа и сопроводительные материалы предоставляются // в соответствии с условиями лицензии Attribution 4.0 International (CC BY 4.0) // Текст лицензии доступен по ссылке: diff --git a/SSL/src/DataProcessors/ИнтерактивноеИзменениеВыгрузки/Forms/РедактированиеСоставаНастроек/Module.bsl b/SSL/src/DataProcessors/ИнтерактивноеИзменениеВыгрузки/Forms/РедактированиеСоставаНастроек/Module.bsl index 6b34ad5c7..53893b00b 100644 --- a/SSL/src/DataProcessors/ИнтерактивноеИзменениеВыгрузки/Forms/РедактированиеСоставаНастроек/Module.bsl +++ b/SSL/src/DataProcessors/ИнтерактивноеИзменениеВыгрузки/Forms/РедактированиеСоставаНастроек/Module.bsl @@ -1,5 +1,5 @@ /////////////////////////////////////////////////////////////////////////////////////////////////////// -// Copyright (c) 2024, ООО 1С-Софт +// Copyright (c) 2025, ООО 1С-Софт // Все права защищены. Эта программа и сопроводительные материалы предоставляются // в соответствии с условиями лицензии Attribution 4.0 International (CC BY 4.0) // Текст лицензии доступен по ссылке: diff --git a/SSL/src/DataProcessors/ИнтерактивноеИзменениеВыгрузки/Forms/СоставВыгрузки/Help/ru.html b/SSL/src/DataProcessors/ИнтерактивноеИзменениеВыгрузки/Forms/СоставВыгрузки/Help/ru.html index 24bb08ca6..1940d66dc 100644 --- a/SSL/src/DataProcessors/ИнтерактивноеИзменениеВыгрузки/Forms/СоставВыгрузки/Help/ru.html +++ b/SSL/src/DataProcessors/ИнтерактивноеИзменениеВыгрузки/Forms/СоставВыгрузки/Help/ru.html @@ -1,15 +1,20 @@

          Отчет предназначен для выдачи статистики по составу отправляемых данных при синхронизации. 

          Отчет можно посмотреть по ссылке Отчет о составе отправляемых данных из Помощника интерактивной синхронизации. Формируется автоматически.

          -

          В заголовке отчета выводится наименование программы, с которой производится синхронизация данных, а также дата и время формирования отчета.

          +

          В заголовке отчета выводится наименование приложения, с которого производится синхронизация данных, а также дата и время формирования отчета.

          Состоит из колонок:

          -
          • Данные - перечень объектов программы (списков и документов), которые участвуют в синхронизации. -
          • Выбрано: +
            • Данные - перечень объектов приложения (списков и документов), которые участвуют в синхронизации. +
            • +
            • Выбрано:
              • По общим правилам; -
              • Дополнительно - выбрано на странице Помощника интерактивной синхронизации;
            • Всего объектов в базе; -
            • Не будет отправлено - количество элементов в выбранных объектах, которые не будут отправлены; -
            • Будет отправлено - количество элементов в выбранных объектах, которые будут отправлены. 

            В отчете подсчитывается общее количество отправляемых элементов.

            +
          • +
          • Дополнительно - выбрано на странице Помощника интерактивной синхронизации;
          +
        • Всего объектов в приложении; +
        • +
        • Не будет отправлено - количество элементов в выбранных объектах, которые не будут отправлены; +
        • +
        • Будет отправлено - количество элементов в выбранных объектах, которые будут отправлены. 
        • В отчете подсчитывается общее количество отправляемых элементов.

          В состав отправляемых данных могут быть включены дополнительные объекты для обеспечения целостности данных.

          В нижней части списка приводятся также:

          -

          Правила синхронизации данных - подробная формулировка правил синхронизации, которые были приняты для этой информационной базы;

          +

          Правила синхронизации данных - подробная формулировка правил синхронизации, которые были приняты для этого приложения;

          Добавленные дополнительно данные - список данных, которые были добавлены на соответствующей странице Помощника.

          \ No newline at end of file diff --git a/SSL/src/DataProcessors/ИнтерактивноеИзменениеВыгрузки/Forms/СоставВыгрузки/Module.bsl b/SSL/src/DataProcessors/ИнтерактивноеИзменениеВыгрузки/Forms/СоставВыгрузки/Module.bsl index be03aa541..fe9aea0ad 100644 --- a/SSL/src/DataProcessors/ИнтерактивноеИзменениеВыгрузки/Forms/СоставВыгрузки/Module.bsl +++ b/SSL/src/DataProcessors/ИнтерактивноеИзменениеВыгрузки/Forms/СоставВыгрузки/Module.bsl @@ -1,5 +1,5 @@ /////////////////////////////////////////////////////////////////////////////////////////////////////// -// Copyright (c) 2024, ООО 1С-Софт +// Copyright (c) 2025, ООО 1С-Софт // Все права защищены. Эта программа и сопроводительные материалы предоставляются // в соответствии с условиями лицензии Attribution 4.0 International (CC BY 4.0) // Текст лицензии доступен по ссылке: diff --git a/SSL/src/DataProcessors/ИнтерактивноеИзменениеВыгрузки/Forms/Форма/Module.bsl b/SSL/src/DataProcessors/ИнтерактивноеИзменениеВыгрузки/Forms/Форма/Module.bsl index df5215579..e0545e827 100644 --- a/SSL/src/DataProcessors/ИнтерактивноеИзменениеВыгрузки/Forms/Форма/Module.bsl +++ b/SSL/src/DataProcessors/ИнтерактивноеИзменениеВыгрузки/Forms/Форма/Module.bsl @@ -1,5 +1,5 @@ /////////////////////////////////////////////////////////////////////////////////////////////////////// -// Copyright (c) 2024, ООО 1С-Софт +// Copyright (c) 2025, ООО 1С-Софт // Все права защищены. Эта программа и сопроводительные материалы предоставляются // в соответствии с условиями лицензии Attribution 4.0 International (CC BY 4.0) // Текст лицензии доступен по ссылке: diff --git a/SSL/src/DataProcessors/ИнтерактивноеИзменениеВыгрузки/Help/ru.html b/SSL/src/DataProcessors/ИнтерактивноеИзменениеВыгрузки/Help/ru.html index cd1efb02a..c0e2139c8 100644 --- a/SSL/src/DataProcessors/ИнтерактивноеИзменениеВыгрузки/Help/ru.html +++ b/SSL/src/DataProcessors/ИнтерактивноеИзменениеВыгрузки/Help/ru.html @@ -1,15 +1,20 @@ -

          Предназначена для отбора данных, которые будут отправлены при синхронизации данных в другую программу.

          +

          Предназначена для отбора данных, которые будут отправлены при синхронизации данных в другое приложение.

          Открыть список можно, нажав на ссылку в поле С отбором для добавления данных на странице Данные для отправки Помощника интерактивной синхронизации данных. 

          Отправляемые данные

          -
          • Нажмите Подобрать, для того чтобы выбрать данные для отправки и заполнить список. Объекты программы для выбора выводятся в виде дерева. Выделите нужные, нажмите Выбрать. Данные размещаются в списке для отправки. -
          • Для удаления данных из списка нажмите Еще - Удалить. -
          • Список отправляемых данных состоит из колонок: -
            • Данные для отправки - выбранные для отправки объекты программы перечисляются в этой колонке; -
            • Отбор - По умолчанию выбраны Все объекты (ссылка). Нажмите ссылку, для того чтобы отобрать нужные элементы выбранных списков. -
            • К отправке/всего - подсчитывается количество выбранных элементов и общее количество элементов списков. Нажмите на ссылку Будет отправлено внизу списка, для того чтобы пересчитать выбранные элементы.
          • Нажмите ОК для подтверждения своего выбора и возвращения в Помощник для продолжения настройки синхронизации данных.

          Просмотр состава данных выгрузки

          +
          • Нажмите Подобрать, для того чтобы выбрать данные для отправки и заполнить список. Объекты приложения для выбора выводятся в виде дерева. Выделите нужные, нажмите Выбрать. Данные размещаются в списке для отправки. +
          • +
          • Для удаления данных из списка нажмите Еще - Удалить. +
          • +
          • Список отправляемых данных состоит из колонок: +
            • Данные для отправки - выбранные для отправки объекты приложения перечисляются в этой колонке; +
            • +
            • Отбор - По умолчанию выбраны Все объекты (ссылка). Нажмите ссылку, для того чтобы отобрать нужные элементы выбранных списков. +
            • +
            • К отправке/всего - подсчитывается количество выбранных элементов и общее количество элементов списков. Нажмите на ссылку Будет отправлено внизу списка, для того чтобы пересчитать выбранные элементы.
          • +
          • Нажмите ОК для подтверждения своего выбора и возвращения в Помощник для продолжения настройки синхронизации данных.

          Просмотр состава данных выгрузки

          Сохранение настроек выгрузки и их использование

          • -
            С помощью кнопки Настройки можно сохранить введенные настройки для отбора данных или использовать ранее сохраненные. Программа предлагает использовать предыдущие настройки, например сохраненную автоматически, для этого выберите из предлагаемого списка значение Последняя отправка. Можно выбрать из списка ранее сохраненную настройку. Можно сохранить свои настройки. Для этого нажмите Сохранить текущую настройку. Напишите наименование сохраняемой настройки, нажмите Сохранить.

          Подсчет количества отправляемых объектов

          +
          С помощью кнопки Настройки можно сохранить введенные настройки для отбора данных или использовать ранее сохраненные. Приложение предлагает использовать предыдущие настройки, например сохраненную автоматически, для этого выберите из предлагаемого списка значение Последняя отправка. Можно выбрать из списка ранее сохраненную настройку. Можно сохранить свои настройки. Для этого нажмите Сохранить текущую настройку. Напишите наименование сохраняемой настройки, нажмите Сохранить.

          Подсчет количества отправляемых объектов

          • В нижней части списка в поле Будет отправлено нажмите на ссылку, для того чтобы рассчитать количество отправляемых объектов. После подсчета в колонке списка К отправке/Всего соответственно проставляется количество элементов и ссылка принимает значение итоговой суммы отправляемых элементов.
          \ No newline at end of file diff --git a/SSL/src/DataProcessors/ИнтерактивноеИзменениеВыгрузки/ObjectModule.bsl b/SSL/src/DataProcessors/ИнтерактивноеИзменениеВыгрузки/ObjectModule.bsl index 08ff91ec4..e28052717 100644 --- a/SSL/src/DataProcessors/ИнтерактивноеИзменениеВыгрузки/ObjectModule.bsl +++ b/SSL/src/DataProcessors/ИнтерактивноеИзменениеВыгрузки/ObjectModule.bsl @@ -1,5 +1,5 @@ /////////////////////////////////////////////////////////////////////////////////////////////////////// -// Copyright (c) 2024, ООО 1С-Софт +// Copyright (c) 2025, ООО 1С-Софт // Все права защищены. Эта программа и сопроводительные материалы предоставляются // в соответствии с условиями лицензии Attribution 4.0 International (CC BY 4.0) // Текст лицензии доступен по ссылке: @@ -1257,7 +1257,7 @@ // Возвращает структуру с реквизитами объекта. // // Возвращаемое значение: -// Структура - Этот объект в структуру для фонового: +// Структура - этот объект в структуру для фонового: // * КомпоновщикОтбораВсехДокументов - КомпоновщикМакетаКомпоновкиДанных // * НастройкиКомпоновщикаОтбораВсехДокументов - НастройкиКомпоновкиДанных // diff --git a/SSL/src/DataProcessors/ИнтерактивноеИзменениеВыгрузки/Templates/СхемаКомпоновкиДанных/Template.dcs b/SSL/src/DataProcessors/ИнтерактивноеИзменениеВыгрузки/Templates/СхемаКомпоновкиДанных/Template.dcs index f769dd35d..15dd43204 100644 --- a/SSL/src/DataProcessors/ИнтерактивноеИзменениеВыгрузки/Templates/СхемаКомпоновкиДанных/Template.dcs +++ b/SSL/src/DataProcessors/ИнтерактивноеИзменениеВыгрузки/Templates/СхемаКомпоновкиДанных/Template.dcs @@ -156,6 +156,12 @@ Тип Тип + + <v8:item> + <v8:lang>ru</v8:lang> + <v8:content>Тип</v8:content> + </v8:item> + ОбщийИсточникДанных ВЫБРАТЬ diff --git a/SSL/src/DataProcessors/ИнформацияПриЗапуске/Commands/ИнформацияПриЗапуске/CommandModule.bsl b/SSL/src/DataProcessors/ИнформацияПриЗапуске/Commands/ИнформацияПриЗапуске/CommandModule.bsl index b7870f14d..5c088cde3 100644 --- a/SSL/src/DataProcessors/ИнформацияПриЗапуске/Commands/ИнформацияПриЗапуске/CommandModule.bsl +++ b/SSL/src/DataProcessors/ИнформацияПриЗапуске/Commands/ИнформацияПриЗапуске/CommandModule.bsl @@ -1,5 +1,5 @@ /////////////////////////////////////////////////////////////////////////////////////////////////////// -// Copyright (c) 2024, ООО 1С-Софт +// Copyright (c) 2025, ООО 1С-Софт // Все права защищены. Эта программа и сопроводительные материалы предоставляются // в соответствии с условиями лицензии Attribution 4.0 International (CC BY 4.0) // Текст лицензии доступен по ссылке: diff --git a/SSL/src/DataProcessors/ИнформацияПриЗапуске/Forms/Форма/Module.bsl b/SSL/src/DataProcessors/ИнформацияПриЗапуске/Forms/Форма/Module.bsl index 9f9aa2e44..f41247397 100644 --- a/SSL/src/DataProcessors/ИнформацияПриЗапуске/Forms/Форма/Module.bsl +++ b/SSL/src/DataProcessors/ИнформацияПриЗапуске/Forms/Форма/Module.bsl @@ -1,5 +1,5 @@ /////////////////////////////////////////////////////////////////////////////////////////////////////// -// Copyright (c) 2024, ООО 1С-Софт +// Copyright (c) 2025, ООО 1С-Софт // Все права защищены. Эта программа и сопроводительные материалы предоставляются // в соответствии с условиями лицензии Attribution 4.0 International (CC BY 4.0) // Текст лицензии доступен по ссылке: diff --git a/SSL/src/DataProcessors/КартаМаршрутаБизнесПроцесса/Forms/Форма/Module.bsl b/SSL/src/DataProcessors/КартаМаршрутаБизнесПроцесса/Forms/Форма/Module.bsl index 0d10469ac..0580628f2 100644 --- a/SSL/src/DataProcessors/КартаМаршрутаБизнесПроцесса/Forms/Форма/Module.bsl +++ b/SSL/src/DataProcessors/КартаМаршрутаБизнесПроцесса/Forms/Форма/Module.bsl @@ -1,5 +1,5 @@ /////////////////////////////////////////////////////////////////////////////////////////////////////// -// Copyright (c) 2024, ООО 1С-Софт +// Copyright (c) 2025, ООО 1С-Софт // Все права защищены. Эта программа и сопроводительные материалы предоставляются // в соответствии с условиями лицензии Attribution 4.0 International (CC BY 4.0) // Текст лицензии доступен по ссылке: diff --git a/SSL/src/DataProcessors/КонвертацияОбъектовXDTO/ObjectModule.bsl b/SSL/src/DataProcessors/КонвертацияОбъектовXDTO/ObjectModule.bsl index 885cc168c..ad23abc4e 100644 --- a/SSL/src/DataProcessors/КонвертацияОбъектовXDTO/ObjectModule.bsl +++ b/SSL/src/DataProcessors/КонвертацияОбъектовXDTO/ObjectModule.bsl @@ -1,5 +1,5 @@ /////////////////////////////////////////////////////////////////////////////////////////////////////// -// Copyright (c) 2024, ООО 1С-Софт +// Copyright (c) 2025, ООО 1С-Софт // Все права защищены. Эта программа и сопроводительные материалы предоставляются // в соответствии с условиями лицензии Attribution 4.0 International (CC BY 4.0) // Текст лицензии доступен по ссылке: @@ -163,6 +163,16 @@ ПолеОбработкаДляЗагрузкиДанных = ОбработкаДляЗагрузкиДанных; КомпонентыОбмена = ОбменДаннымиXDTOСервер.ИнициализироватьКомпонентыОбмена("Отправка"); + + ДополнительныеПараметрыКонвертации = Новый Структура("ФильтрВыборкиИзменений,ИспользоватьКвитирование"); + ЗаполнитьЗначенияСвойств(ДополнительныеПараметрыКонвертации, Параметры); + + Если ДополнительныеПараметрыКонвертации.ФильтрВыборкиИзменений <> Неопределено Тогда + КомпонентыОбмена.ФильтрВыборкиИзменений = ОбщегоНазначения.СкопироватьРекурсивно(ДополнительныеПараметрыКонвертации.ФильтрВыборкиИзменений); + КонецЕсли; + Если ДополнительныеПараметрыКонвертации.ИспользоватьКвитирование <> Неопределено Тогда + КомпонентыОбмена.ИспользоватьКвитирование = ДополнительныеПараметрыКонвертации.ИспользоватьКвитирование; + КонецЕсли; #Область НастройкаКомпонентовОбменаНаРаботуСУзлом КомпонентыОбмена.УзелКорреспондента = УзелДляОбмена; @@ -251,12 +261,14 @@ КонецПопытки; Если КомпонентыОбмена.ЭтоОбменЧерезПланОбмена Тогда - РазблокироватьДанныеДляРедактирования(КомпонентыОбмена.УзелКорреспондента); + Если КомпонентыОбмена.ИспользоватьКвитирование Тогда + РазблокироватьДанныеДляРедактирования(КомпонентыОбмена.УзелКорреспондента); + КонецЕсли; КонецЕсли; Если КомпонентыОбмена.ФлагОшибки Тогда - Если Не Пустаястрока(ИмяФайлаОбмена) Тогда + Если Не ПустаяСтрока(ИмяФайлаОбмена) Тогда Попытка УдалитьФайлы(ИмяФайлаОбмена); Исключение @@ -437,26 +449,28 @@ // Проверка данных From / NewFrom. ПроверитьКодыУзлов(РезультатАнализаДанныхКЗагрузке, КомпонентыОбмена.УзелКорреспондента); - // Запишем информацию о номере входящего сообщения. - НачатьТранзакцию(); - Попытка - БлокировкаДанных = Новый БлокировкаДанных; - - ЭлементБлокировкиДанных = БлокировкаДанных.Добавить("ПланОбмена." + ОбменДаннымиПовтИсп.ПолучитьИмяПланаОбмена(КомпонентыОбмена.УзелКорреспондента)); - ЭлементБлокировкиДанных.УстановитьЗначение("Ссылка", КомпонентыОбмена.УзелКорреспондента); - - БлокировкаДанных.Заблокировать(); - - ОбъектУзла = КомпонентыОбмена.УзелКорреспондента.ПолучитьОбъект(); - ОбъектУзла.НомерПринятого = КомпонентыОбмена.НомерВходящегоСообщения; - ОбъектУзла.ДополнительныеСвойства.Вставить("ПолучениеСообщенияОбмена"); - ОбъектУзла.Записать(); - - ЗафиксироватьТранзакцию(); - Исключение - ОтменитьТранзакцию(); - ВызватьИсключение; - КонецПопытки; + Если КомпонентыОбмена.ИспользоватьКвитирование Тогда + // Запишем информацию о номере входящего сообщения. + НачатьТранзакцию(); + Попытка + БлокировкаДанных = Новый БлокировкаДанных; + + ЭлементБлокировкиДанных = БлокировкаДанных.Добавить("ПланОбмена." + ОбменДаннымиПовтИсп.ПолучитьИмяПланаОбмена(КомпонентыОбмена.УзелКорреспондента)); + ЭлементБлокировкиДанных.УстановитьЗначение("Ссылка", КомпонентыОбмена.УзелКорреспондента); + + БлокировкаДанных.Заблокировать(); + + ОбъектУзла = КомпонентыОбмена.УзелКорреспондента.ПолучитьОбъект(); + ОбъектУзла.НомерПринятого = КомпонентыОбмена.НомерВходящегоСообщения; + ОбъектУзла.ДополнительныеСвойства.Вставить("ПолучениеСообщенияОбмена"); + ОбъектУзла.Записать(); + + ЗафиксироватьТранзакцию(); + Исключение + ОтменитьТранзакцию(); + ВызватьИсключение; + КонецПопытки; + КонецЕсли; КонецЕсли; diff --git a/SSL/src/DataProcessors/КонвертацияОбъектовИнформационныхБаз/Forms/Форма/Module.bsl b/SSL/src/DataProcessors/КонвертацияОбъектовИнформационныхБаз/Forms/Форма/Module.bsl index 556f9cdd3..0d039b0d3 100644 --- a/SSL/src/DataProcessors/КонвертацияОбъектовИнформационныхБаз/Forms/Форма/Module.bsl +++ b/SSL/src/DataProcessors/КонвертацияОбъектовИнформационныхБаз/Forms/Форма/Module.bsl @@ -1,5 +1,5 @@ /////////////////////////////////////////////////////////////////////////////////////////////////////// -// Copyright (c) 2024, ООО 1С-Софт +// Copyright (c) 2025, ООО 1С-Софт // Все права защищены. Эта программа и сопроводительные материалы предоставляются // в соответствии с условиями лицензии Attribution 4.0 International (CC BY 4.0) // Текст лицензии доступен по ссылке: diff --git a/SSL/src/DataProcessors/КонвертацияОбъектовИнформационныхБаз/ObjectModule.bsl b/SSL/src/DataProcessors/КонвертацияОбъектовИнформационныхБаз/ObjectModule.bsl index b0c4f88af..0d70f5fe8 100644 --- a/SSL/src/DataProcessors/КонвертацияОбъектовИнформационныхБаз/ObjectModule.bsl +++ b/SSL/src/DataProcessors/КонвертацияОбъектовИнформационныхБаз/ObjectModule.bsl @@ -1,5 +1,5 @@ /////////////////////////////////////////////////////////////////////////////////////////////////////// -// Copyright (c) 2024, ООО 1С-Софт +// Copyright (c) 2025, ООО 1С-Софт // Все права защищены. Эта программа и сопроводительные материалы предоставляются // в соответствии с условиями лицензии Attribution 4.0 International (CC BY 4.0) // Текст лицензии доступен по ссылке: @@ -20,8 +20,7 @@ // ПВД - правило выгрузки данных. // ПОД - правило очистки данных. -//////////////////////////////////////////////////////////////////////////////// -// ЭКСПОРТНЫЕ ПЕРЕМЕННЫЕ +#Область ЭкспортныеПеременные Перем КлючСообщенияЖурналаРегистрации Экспорт; // строка сообщения для фиксации ошибок в журнале регистрации. @@ -29,8 +28,9 @@ Перем Запросы Экспорт; // Структура, содержащая используемые запросы. -//////////////////////////////////////////////////////////////////////////////// -// ВСПОМОГАТЕЛЬНЫЕ ПЕРЕМЕННЫЕ МОДУЛЯ ДЛЯ НАПИСАНИЯ АЛГОРИТМОВ (ОБЩИЕ ДЛЯ ВЫГРУЗКИ И ЗАГРУЗКИ) +#КонецОбласти + +#Область ВспомогательныеПеременныеМодуляДляНаписанияАлгоритмовОбщиеДляВыгрузкиИЗагрузки Перем Конвертация; // Структура свойств конвертации (Имя, Ид, обработчики событий обмена). @@ -52,14 +52,16 @@ Перем ФлагКомментироватьОбработкуОбъектов; -//////////////////////////////////////////////////////////////////////////////// -// ПЕРЕМЕННЫЕ ОТЛАДКИ ОБРАБОТЧИКОВ +#КонецОбласти + +#Область ПеременныеОтладкиОбработчиков Перем ОбработкаВыгрузки; Перем ОбработкаЗагрузки; -//////////////////////////////////////////////////////////////////////////////// -// ФЛАГИ НАЛИЧИЯ ГЛОБАЛЬНЫХ ОБРАБОТЧИКОВ СОБЫТИЙ +#КонецОбласти + +#Область ФлагиНаличияГлобальныхОбработчиковСобытий Перем ЕстьГлобальныйОбработчикПередВыгрузкойОбъекта; Перем ЕстьГлобальныйОбработчикПослеВыгрузкиОбъекта; @@ -69,8 +71,9 @@ Перем ЕстьГлобальныйОбработчикПередЗагрузкойОбъекта; Перем ЕстьГлобальныйОбработчикПослеЗагрузкиОбъекта; -//////////////////////////////////////////////////////////////////////////////// -// ПЕРЕМЕННЫЕ ОБРАБОТОК ОБМЕНА (ОБЩИЕ ДЛЯ ВЫГРУЗКИ И ЗАГРУЗКИ) +#КонецОбласти + +#Область ПеременныеОбработокОбменаОбщиеДляВыгрузкиИЗагрузки Перем ТипСтрока; // Тип("Строка") @@ -111,8 +114,9 @@ Перем СообщенияОбОшибках; // Соответствие. Ключ - код ошибки, Значение - описание ошибки. -//////////////////////////////////////////////////////////////////////////////// -// ПЕРЕМЕННЫЕ МОДУЛЯ ОБРАБОТКИ ВЫГРУЗКИ +#КонецОбласти + +#Область ПеременныеМодуляОбработкиВыгрузки Перем СчетчикНПП; // Число @@ -137,8 +141,9 @@ Перем КоличествоОбъектовКВыгрузке; //Общее количество объектов подлежащих выгрузке. -//////////////////////////////////////////////////////////////////////////////// -// ПЕРЕМЕННЫЕ МОДУЛЯ ОБРАБОТКИ ЗАГРУЗКИ +#КонецОбласти + +#Область ПеременныеМодуляОбработкиЗагрузки Перем КоличествоВыполненныхОтложенныхДвиженийДокументов; Перем НомерПоследнегоПоискаПоСсылке; @@ -172,8 +177,9 @@ Перем КоличествоОбъектовКЗагрузке; Перем РазмерФайлаСообщенияОбмена; -//////////////////////////////////////////////////////////////////////////////// -// ПЕРЕМЕННЫЕ ДЛЯ ЗНАЧЕНИЙ СВОЙСТВ +#КонецОбласти + +#Область ПеременныеДляЗначенийСвойств Перем ПолеФлагОшибки; Перем ПолеРезультатВыполненияОбмена; @@ -223,6 +229,8 @@ #КонецОбласти +#КонецОбласти + #Область ПрограммныйИнтерфейс #Область ЭкспортныеСвойства @@ -13384,7 +13392,7 @@ #Область ПроцедурыИФункцииКомпиляцииПравилОбменаВСтруктуру // Параметры: -// Источник - Строка - Имя временного файла с правилами +// Источник - Строка - имя временного файла с правилами // // Возвращаемое значение: // - Неопределено @@ -14377,8 +14385,7 @@ КонецФункции -//////////////////////////////////////////////////////////////////////////////// -// Глобальные обработчики +#Область ГлобальныеОбработчики Процедура ВыполнитьОбработчик_Конвертация_ПослеЗагрузкиПравилОбмена() @@ -14622,8 +14629,9 @@ КонецПроцедуры -//////////////////////////////////////////////////////////////////////////////// -// Обработчики ПКО +#КонецОбласти + +#Область ОбработчикиПКО Процедура ВыполнитьОбработчик_ПКО_ПередВыгрузкойОбъекта(ФайлОбмена, Источник, ВходящиеДанные, ИсходящиеДанные, ИмяПКО, ПКО, ВыгруженныеОбъекты, Отказ, КлючВыгружаемыхДанных, @@ -14880,8 +14888,9 @@ КонецПроцедуры -//////////////////////////////////////////////////////////////////////////////// -// Обработчики ПКС +#КонецОбласти + +#Область ОбработчикиПКС Процедура ВыполнитьОбработчик_ПКС_ПередВыгрузкойСвойства(ФайлОбмена, Источник, Приемник, ВходящиеДанные, ИсходящиеДанные, ПКС, ПКО, ОбъектКоллекции, Отказ, Значение, ТипПриемника, ИмяПКО, @@ -15038,8 +15047,9 @@ КонецПроцедуры -//////////////////////////////////////////////////////////////////////////////// -// Обработчики ПКГС +#КонецОбласти + +#Область ОбработчикиПКГС Процедура ВыполнитьОбработчик_ПКГС_ПередОбработкойВыгрузки(ФайлОбмена, Источник, Приемник, ВходящиеДанные, ИсходящиеДанные, ПКО, ПКГС, Отказ, КоллекцияОбъектов, НеЗамещать, УзелКоллекцииСвойств, НеОчищать) @@ -15212,8 +15222,9 @@ КонецПроцедуры -//////////////////////////////////////////////////////////////////////////////// -// Обработчики ПВД +#КонецОбласти + +#Область ОбработчикиПВД Процедура ВыполнитьОбработчик_ПВД_ПередОбработкойПравила(Отказ, ИмяПКО, Правило, ИсходящиеДанные, ВыборкаДанных) @@ -15299,8 +15310,9 @@ КонецПроцедуры -//////////////////////////////////////////////////////////////////////////////// -// Обработчики ПОД +#КонецОбласти + +#Область ОбработчикиПОД Процедура ВыполнитьОбработчик_ПОД_ПередОбработкойПравила(Правило, Отказ, ИсходящиеДанные, ВыборкаДанных) @@ -15352,8 +15364,9 @@ КонецПроцедуры -//////////////////////////////////////////////////////////////////////////////// -// Обработчики Параметров +#КонецОбласти + +#Область ОбработчикиПараметров Процедура ВыполнитьОбработчик_Параметры_ПослеЗагрузкиПараметра(Имя, Значение) @@ -15374,6 +15387,8 @@ #КонецОбласти +#КонецОбласти + #Область Константы Функция ВерсияФорматаСообщенияОбмена() @@ -18187,4 +18202,4 @@ #Иначе ВызватьИсключение НСтр("ru = 'Недопустимый вызов объекта на клиенте.'"); -#КонецЕсли +#КонецЕсли \ No newline at end of file diff --git a/SSL/src/DataProcessors/КонвертацияОбъектовРаспределенныхИнформационныхБаз/Forms/Форма/Module.bsl b/SSL/src/DataProcessors/КонвертацияОбъектовРаспределенныхИнформационныхБаз/Forms/Форма/Module.bsl index 556f9cdd3..0d039b0d3 100644 --- a/SSL/src/DataProcessors/КонвертацияОбъектовРаспределенныхИнформационныхБаз/Forms/Форма/Module.bsl +++ b/SSL/src/DataProcessors/КонвертацияОбъектовРаспределенныхИнформационныхБаз/Forms/Форма/Module.bsl @@ -1,5 +1,5 @@ /////////////////////////////////////////////////////////////////////////////////////////////////////// -// Copyright (c) 2024, ООО 1С-Софт +// Copyright (c) 2025, ООО 1С-Софт // Все права защищены. Эта программа и сопроводительные материалы предоставляются // в соответствии с условиями лицензии Attribution 4.0 International (CC BY 4.0) // Текст лицензии доступен по ссылке: diff --git a/SSL/src/DataProcessors/КонвертацияОбъектовРаспределенныхИнформационныхБаз/ObjectModule.bsl b/SSL/src/DataProcessors/КонвертацияОбъектовРаспределенныхИнформационныхБаз/ObjectModule.bsl index ed9f64a08..08176c785 100644 --- a/SSL/src/DataProcessors/КонвертацияОбъектовРаспределенныхИнформационныхБаз/ObjectModule.bsl +++ b/SSL/src/DataProcessors/КонвертацияОбъектовРаспределенныхИнформационныхБаз/ObjectModule.bsl @@ -1,5 +1,5 @@ /////////////////////////////////////////////////////////////////////////////////////////////////////// -// Copyright (c) 2024, ООО 1С-Софт +// Copyright (c) 2025, ООО 1С-Софт // Все права защищены. Эта программа и сопроводительные материалы предоставляются // в соответствии с условиями лицензии Attribution 4.0 International (CC BY 4.0) // Текст лицензии доступен по ссылке: @@ -10,8 +10,7 @@ #Область СлужебныеПроцедурыИФункции -//////////////////////////////////////////////////////////////////////////////// -// Экспортные служебные процедуры и функции. +#Область ЭкспортныеСлужебныеПроцедурыИФункции // Выполняет загрузку данных из файла сообщения обмена. // @@ -599,13 +598,37 @@ Объект.ИмяПредопределенныхДанных = Данные.ИмяПредопределенныхДанных; Объект.ДополнительныеСвойства.Вставить("ПропуститьЗаписьВерсииОбъекта"); Объект.ДополнительныеСвойства.Вставить("ЗагрузкаПриоритетныхДанных"); - ОбновлениеИнформационнойБазы.ЗаписатьДанные(Объект, Ложь); + + ОбновлениеИнформационнойБазы.ЗаписатьДанные(Объект, Ложь); ИначеЕсли Объект.ИмяПредопределенныхДанных <> Данные.ИмяПредопределенныхДанных Тогда - Объект.ИмяПредопределенныхДанных = Данные.ИмяПредопределенныхДанных; - Объект.ДополнительныеСвойства.Вставить("ПропуститьЗаписьВерсииОбъекта"); - Объект.ДополнительныеСвойства.Вставить("ЗагрузкаПриоритетныхДанных"); - ОбновлениеИнформационнойБазы.ЗаписатьДанные(Объект, Ложь); + + НачатьТранзакцию(); + + Попытка + Блокировка = Новый БлокировкаДанных; + ЭлементБлокировки = Блокировка.Добавить(ОбщегоНазначения.ИмяТаблицыПоСсылке(Объект.Ссылка)); + ЭлементБлокировки.УстановитьЗначение("Ссылка", Объект.Ссылка); + Блокировка.Заблокировать(); + + Объект.ИмяПредопределенныхДанных = Данные.ИмяПредопределенныхДанных; + Объект.ДополнительныеСвойства.Вставить("ПропуститьЗаписьВерсииОбъекта"); + Объект.ДополнительныеСвойства.Вставить("ЗагрузкаПриоритетныхДанных"); + + ЗаблокироватьДанныеДляРедактирования(Объект.Ссылка); + + ОбновлениеИнформационнойБазы.ЗаписатьДанные(Объект, Ложь); + + ЗафиксироватьТранзакцию(); + Исключение + ОтменитьТранзакцию(); + + СообщениеОбОшибке = ОбработкаОшибок.ПодробноеПредставлениеОшибки(ИнформацияОбОшибке()); + + Событие = НСтр("ru = 'Предопределенные элементы.Запись'", ОбщегоНазначения.КодОсновногоЯзыка()); + + ЗаписьЖурналаРегистрации(Событие, УровеньЖурналаРегистрации.Ошибка, , , СообщениеОбОшибке); + КонецПопытки; Иначе // Если предопределенный элемент существует предварительная загрузка не требуется. @@ -789,8 +812,9 @@ КонецПроцедуры -//////////////////////////////////////////////////////////////////////////////// -// Локальные служебные функции-свойства. +#КонецОбласти + +#Область ЛокальныеСлужебныеФункцииСвойства Функция ИмяФайлаСообщенияОбмена() @@ -804,8 +828,9 @@ КонецФункции -//////////////////////////////////////////////////////////////////////////////// -// Описания ошибок контекста выполнения. +#КонецОбласти + +#Область ОписанияОшибокКонтекстаВыполнения Функция ОшибкаОткрытияФайлаСообщенияОбмена() @@ -891,6 +916,8 @@ #КонецОбласти +#КонецОбласти + #Иначе ВызватьИсключение НСтр("ru = 'Недопустимый вызов объекта на клиенте.'"); #КонецЕсли \ No newline at end of file diff --git a/SSL/src/DataProcessors/КонструкторФормул/Forms/РедактированиеФормулы/Module.bsl b/SSL/src/DataProcessors/КонструкторФормул/Forms/РедактированиеФормулы/Module.bsl index 828ed6c7d..2d3470712 100644 --- a/SSL/src/DataProcessors/КонструкторФормул/Forms/РедактированиеФормулы/Module.bsl +++ b/SSL/src/DataProcessors/КонструкторФормул/Forms/РедактированиеФормулы/Module.bsl @@ -1,5 +1,5 @@ /////////////////////////////////////////////////////////////////////////////////////////////////////// -// Copyright (c) 2024, ООО 1С-Софт +// Copyright (c) 2025, ООО 1С-Софт // Все права защищены. Эта программа и сопроводительные материалы предоставляются // в соответствии с условиями лицензии Attribution 4.0 International (CC BY 4.0) // Текст лицензии доступен по ссылке: diff --git a/SSL/src/DataProcessors/ЛегальностьПолученияОбновлений/Forms/ПроверкаЛегальностиПолученияОбновления/Module.bsl b/SSL/src/DataProcessors/ЛегальностьПолученияОбновлений/Forms/ПроверкаЛегальностиПолученияОбновления/Module.bsl index 117e0f5bb..59d75bc0b 100644 --- a/SSL/src/DataProcessors/ЛегальностьПолученияОбновлений/Forms/ПроверкаЛегальностиПолученияОбновления/Module.bsl +++ b/SSL/src/DataProcessors/ЛегальностьПолученияОбновлений/Forms/ПроверкаЛегальностиПолученияОбновления/Module.bsl @@ -1,5 +1,5 @@ /////////////////////////////////////////////////////////////////////////////////////////////////////// -// Copyright (c) 2024, ООО 1С-Софт +// Copyright (c) 2025, ООО 1С-Софт // Все права защищены. Эта программа и сопроводительные материалы предоставляются // в соответствии с условиями лицензии Attribution 4.0 International (CC BY 4.0) // Текст лицензии доступен по ссылке: diff --git a/SSL/src/DataProcessors/ЛегальностьПолученияОбновлений/ManagerModule.bsl b/SSL/src/DataProcessors/ЛегальностьПолученияОбновлений/ManagerModule.bsl index 23695ffdb..1006eadb5 100644 --- a/SSL/src/DataProcessors/ЛегальностьПолученияОбновлений/ManagerModule.bsl +++ b/SSL/src/DataProcessors/ЛегальностьПолученияОбновлений/ManagerModule.bsl @@ -1,5 +1,5 @@ /////////////////////////////////////////////////////////////////////////////////////////////////////// -// Copyright (c) 2024, ООО 1С-Софт +// Copyright (c) 2025, ООО 1С-Софт // Все права защищены. Эта программа и сопроводительные материалы предоставляются // в соответствии с условиями лицензии Attribution 4.0 International (CC BY 4.0) // Текст лицензии доступен по ссылке: diff --git a/SSL/src/DataProcessors/НастройкаРазрешенийНаИспользованиеВнешнихРесурсов/Commands/НастройкиИспользованияПрофилейБезопасности/CommandModule.bsl b/SSL/src/DataProcessors/НастройкаРазрешенийНаИспользованиеВнешнихРесурсов/Commands/НастройкиИспользованияПрофилейБезопасности/CommandModule.bsl index 36fec7bf0..f6059e7ea 100644 --- a/SSL/src/DataProcessors/НастройкаРазрешенийНаИспользованиеВнешнихРесурсов/Commands/НастройкиИспользованияПрофилейБезопасности/CommandModule.bsl +++ b/SSL/src/DataProcessors/НастройкаРазрешенийНаИспользованиеВнешнихРесурсов/Commands/НастройкиИспользованияПрофилейБезопасности/CommandModule.bsl @@ -1,5 +1,5 @@ /////////////////////////////////////////////////////////////////////////////////////////////////////// -// Copyright (c) 2024, ООО 1С-Софт +// Copyright (c) 2025, ООО 1С-Софт // Все права защищены. Эта программа и сопроводительные материалы предоставляются // в соответствии с условиями лицензии Attribution 4.0 International (CC BY 4.0) // Текст лицензии доступен по ссылке: diff --git a/SSL/src/DataProcessors/НастройкаРазрешенийНаИспользованиеВнешнихРесурсов/Forms/ЗавершениеЗапросаРазрешений/Module.bsl b/SSL/src/DataProcessors/НастройкаРазрешенийНаИспользованиеВнешнихРесурсов/Forms/ЗавершениеЗапросаРазрешений/Module.bsl index bafa28f6f..7aa5ee016 100644 --- a/SSL/src/DataProcessors/НастройкаРазрешенийНаИспользованиеВнешнихРесурсов/Forms/ЗавершениеЗапросаРазрешений/Module.bsl +++ b/SSL/src/DataProcessors/НастройкаРазрешенийНаИспользованиеВнешнихРесурсов/Forms/ЗавершениеЗапросаРазрешений/Module.bsl @@ -1,5 +1,5 @@ /////////////////////////////////////////////////////////////////////////////////////////////////////// -// Copyright (c) 2024, ООО 1С-Софт +// Copyright (c) 2025, ООО 1С-Софт // Все права защищены. Эта программа и сопроводительные материалы предоставляются // в соответствии с условиями лицензии Attribution 4.0 International (CC BY 4.0) // Текст лицензии доступен по ссылке: diff --git a/SSL/src/DataProcessors/НастройкаРазрешенийНаИспользованиеВнешнихРесурсов/Forms/ИнициализацияЗапросаРазрешений/Module.bsl b/SSL/src/DataProcessors/НастройкаРазрешенийНаИспользованиеВнешнихРесурсов/Forms/ИнициализацияЗапросаРазрешений/Module.bsl index f001444cf..a80d79b33 100644 --- a/SSL/src/DataProcessors/НастройкаРазрешенийНаИспользованиеВнешнихРесурсов/Forms/ИнициализацияЗапросаРазрешений/Module.bsl +++ b/SSL/src/DataProcessors/НастройкаРазрешенийНаИспользованиеВнешнихРесурсов/Forms/ИнициализацияЗапросаРазрешений/Module.bsl @@ -1,5 +1,5 @@ /////////////////////////////////////////////////////////////////////////////////////////////////////// -// Copyright (c) 2024, ООО 1С-Софт +// Copyright (c) 2025, ООО 1С-Софт // Все права защищены. Эта программа и сопроводительные материалы предоставляются // в соответствии с условиями лицензии Attribution 4.0 International (CC BY 4.0) // Текст лицензии доступен по ссылке: diff --git a/SSL/src/DataProcessors/НастройкаРазрешенийНаИспользованиеВнешнихРесурсов/Forms/НастройкаРазрешенийНаИспользованиеВнешнихРесурсов/Module.bsl b/SSL/src/DataProcessors/НастройкаРазрешенийНаИспользованиеВнешнихРесурсов/Forms/НастройкаРазрешенийНаИспользованиеВнешнихРесурсов/Module.bsl index bd86a24ee..6099dc422 100644 --- a/SSL/src/DataProcessors/НастройкаРазрешенийНаИспользованиеВнешнихРесурсов/Forms/НастройкаРазрешенийНаИспользованиеВнешнихРесурсов/Module.bsl +++ b/SSL/src/DataProcessors/НастройкаРазрешенийНаИспользованиеВнешнихРесурсов/Forms/НастройкаРазрешенийНаИспользованиеВнешнихРесурсов/Module.bsl @@ -1,5 +1,5 @@ /////////////////////////////////////////////////////////////////////////////////////////////////////// -// Copyright (c) 2024, ООО 1С-Софт +// Copyright (c) 2025, ООО 1С-Софт // Все права защищены. Эта программа и сопроводительные материалы предоставляются // в соответствии с условиями лицензии Attribution 4.0 International (CC BY 4.0) // Текст лицензии доступен по ссылке: diff --git a/SSL/src/DataProcessors/НастройкаРазрешенийНаИспользованиеВнешнихРесурсов/Forms/НастройкиИспользованияПрофилейБезопасности/Module.bsl b/SSL/src/DataProcessors/НастройкаРазрешенийНаИспользованиеВнешнихРесурсов/Forms/НастройкиИспользованияПрофилейБезопасности/Module.bsl index 1dcb4c703..3fd46c657 100644 --- a/SSL/src/DataProcessors/НастройкаРазрешенийНаИспользованиеВнешнихРесурсов/Forms/НастройкиИспользованияПрофилейБезопасности/Module.bsl +++ b/SSL/src/DataProcessors/НастройкаРазрешенийНаИспользованиеВнешнихРесурсов/Forms/НастройкиИспользованияПрофилейБезопасности/Module.bsl @@ -1,5 +1,5 @@ /////////////////////////////////////////////////////////////////////////////////////////////////////// -// Copyright (c) 2024, ООО 1С-Софт +// Copyright (c) 2025, ООО 1С-Софт // Все права защищены. Эта программа и сопроводительные материалы предоставляются // в соответствии с условиями лицензии Attribution 4.0 International (CC BY 4.0) // Текст лицензии доступен по ссылке: diff --git a/SSL/src/DataProcessors/НастройкаРазрешенийНаИспользованиеВнешнихРесурсов/Forms/ОткрытиеВнешнейОбработкиИлиОтчетаСВыборомБезопасногоРежима/Module.bsl b/SSL/src/DataProcessors/НастройкаРазрешенийНаИспользованиеВнешнихРесурсов/Forms/ОткрытиеВнешнейОбработкиИлиОтчетаСВыборомБезопасногоРежима/Module.bsl index 78dfcff27..6a08ecb12 100644 --- a/SSL/src/DataProcessors/НастройкаРазрешенийНаИспользованиеВнешнихРесурсов/Forms/ОткрытиеВнешнейОбработкиИлиОтчетаСВыборомБезопасногоРежима/Module.bsl +++ b/SSL/src/DataProcessors/НастройкаРазрешенийНаИспользованиеВнешнихРесурсов/Forms/ОткрытиеВнешнейОбработкиИлиОтчетаСВыборомБезопасногоРежима/Module.bsl @@ -1,5 +1,5 @@ /////////////////////////////////////////////////////////////////////////////////////////////////////// -// Copyright (c) 2024, ООО 1С-Софт +// Copyright (c) 2025, ООО 1С-Софт // Все права защищены. Эта программа и сопроводительные материалы предоставляются // в соответствии с условиями лицензии Attribution 4.0 International (CC BY 4.0) // Текст лицензии доступен по ссылке: diff --git a/SSL/src/DataProcessors/НастройкаРазрешенийНаИспользованиеВнешнихРесурсов/Forms/Форма/Module.bsl b/SSL/src/DataProcessors/НастройкаРазрешенийНаИспользованиеВнешнихРесурсов/Forms/Форма/Module.bsl index e8a338b97..e6cd6d94d 100644 --- a/SSL/src/DataProcessors/НастройкаРазрешенийНаИспользованиеВнешнихРесурсов/Forms/Форма/Module.bsl +++ b/SSL/src/DataProcessors/НастройкаРазрешенийНаИспользованиеВнешнихРесурсов/Forms/Форма/Module.bsl @@ -1,5 +1,5 @@ /////////////////////////////////////////////////////////////////////////////////////////////////////// -// Copyright (c) 2024, ООО 1С-Софт +// Copyright (c) 2025, ООО 1С-Софт // Все права защищены. Эта программа и сопроводительные материалы предоставляются // в соответствии с условиями лицензии Attribution 4.0 International (CC BY 4.0) // Текст лицензии доступен по ссылке: diff --git a/SSL/src/DataProcessors/НастройкаРазрешенийНаИспользованиеВнешнихРесурсов/ManagerModule.bsl b/SSL/src/DataProcessors/НастройкаРазрешенийНаИспользованиеВнешнихРесурсов/ManagerModule.bsl index 1198ab1c7..aa16839a1 100644 --- a/SSL/src/DataProcessors/НастройкаРазрешенийНаИспользованиеВнешнихРесурсов/ManagerModule.bsl +++ b/SSL/src/DataProcessors/НастройкаРазрешенийНаИспользованиеВнешнихРесурсов/ManagerModule.bsl @@ -1,5 +1,5 @@ /////////////////////////////////////////////////////////////////////////////////////////////////////// -// Copyright (c) 2024, ООО 1С-Софт +// Copyright (c) 2025, ООО 1С-Софт // Все права защищены. Эта программа и сопроводительные материалы предоставляются // в соответствии с условиями лицензии Attribution 4.0 International (CC BY 4.0) // Текст лицензии доступен по ссылке: diff --git a/SSL/src/DataProcessors/НастройкаРазрешенийНаИспользованиеВнешнихРесурсов/ObjectModule.bsl b/SSL/src/DataProcessors/НастройкаРазрешенийНаИспользованиеВнешнихРесурсов/ObjectModule.bsl index 6422d9282..41dc8aa35 100644 --- a/SSL/src/DataProcessors/НастройкаРазрешенийНаИспользованиеВнешнихРесурсов/ObjectModule.bsl +++ b/SSL/src/DataProcessors/НастройкаРазрешенийНаИспользованиеВнешнихРесурсов/ObjectModule.bsl @@ -1,5 +1,5 @@ /////////////////////////////////////////////////////////////////////////////////////////////////////// -// Copyright (c) 2024, ООО 1С-Софт +// Copyright (c) 2025, ООО 1С-Софт // Все права защищены. Эта программа и сопроводительные материалы предоставляются // в соответствии с условиями лицензии Attribution 4.0 International (CC BY 4.0) // Текст лицензии доступен по ссылке: diff --git a/SSL/src/DataProcessors/НастройкаРезервногоКопированияИБ/Forms/НастройкаРезервногоКопирования/Module.bsl b/SSL/src/DataProcessors/НастройкаРезервногоКопированияИБ/Forms/НастройкаРезервногоКопирования/Module.bsl index fd78da33b..34bf60093 100644 --- a/SSL/src/DataProcessors/НастройкаРезервногоКопированияИБ/Forms/НастройкаРезервногоКопирования/Module.bsl +++ b/SSL/src/DataProcessors/НастройкаРезервногоКопированияИБ/Forms/НастройкаРезервногоКопирования/Module.bsl @@ -1,5 +1,5 @@ /////////////////////////////////////////////////////////////////////////////////////////////////////// -// Copyright (c) 2024, ООО 1С-Софт +// Copyright (c) 2025, ООО 1С-Софт // Все права защищены. Эта программа и сопроводительные материалы предоставляются // в соответствии с условиями лицензии Attribution 4.0 International (CC BY 4.0) // Текст лицензии доступен по ссылке: diff --git a/SSL/src/DataProcessors/НастройкаРезервногоКопированияИБ/Forms/НастройкаРезервногоКопированияКлиентСервер/Module.bsl b/SSL/src/DataProcessors/НастройкаРезервногоКопированияИБ/Forms/НастройкаРезервногоКопированияКлиентСервер/Module.bsl index daf93a45d..df94d55fc 100644 --- a/SSL/src/DataProcessors/НастройкаРезервногоКопированияИБ/Forms/НастройкаРезервногоКопированияКлиентСервер/Module.bsl +++ b/SSL/src/DataProcessors/НастройкаРезервногоКопированияИБ/Forms/НастройкаРезервногоКопированияКлиентСервер/Module.bsl @@ -1,5 +1,5 @@ /////////////////////////////////////////////////////////////////////////////////////////////////////// -// Copyright (c) 2024, ООО 1С-Софт +// Copyright (c) 2025, ООО 1С-Софт // Все права защищены. Эта программа и сопроводительные материалы предоставляются // в соответствии с условиями лицензии Attribution 4.0 International (CC BY 4.0) // Текст лицензии доступен по ссылке: diff --git a/SSL/src/DataProcessors/НастройкаРезервногоКопированияИБ/ManagerModule.bsl b/SSL/src/DataProcessors/НастройкаРезервногоКопированияИБ/ManagerModule.bsl index a02994724..db776024e 100644 --- a/SSL/src/DataProcessors/НастройкаРезервногоКопированияИБ/ManagerModule.bsl +++ b/SSL/src/DataProcessors/НастройкаРезервногоКопированияИБ/ManagerModule.bsl @@ -1,5 +1,5 @@ /////////////////////////////////////////////////////////////////////////////////////////////////////// -// Copyright (c) 2024, ООО 1С-Софт +// Copyright (c) 2025, ООО 1С-Софт // Все права защищены. Эта программа и сопроводительные материалы предоставляются // в соответствии с условиями лицензии Attribution 4.0 International (CC BY 4.0) // Текст лицензии доступен по ссылке: diff --git a/SSL/src/DataProcessors/НастройкаСтандартногоИнтерфейсаOData/Commands/НастройкиСтандартногоИнтерфейсаOData/CommandModule.bsl b/SSL/src/DataProcessors/НастройкаСтандартногоИнтерфейсаOData/Commands/НастройкиСтандартногоИнтерфейсаOData/CommandModule.bsl index 778553e12..004f1dca9 100644 --- a/SSL/src/DataProcessors/НастройкаСтандартногоИнтерфейсаOData/Commands/НастройкиСтандартногоИнтерфейсаOData/CommandModule.bsl +++ b/SSL/src/DataProcessors/НастройкаСтандартногоИнтерфейсаOData/Commands/НастройкиСтандартногоИнтерфейсаOData/CommandModule.bsl @@ -1,5 +1,5 @@ /////////////////////////////////////////////////////////////////////////////////////////////////////// -// Copyright (c) 2024, ООО 1С-Софт +// Copyright (c) 2025, ООО 1С-Софт // Все права защищены. Эта программа и сопроводительные материалы предоставляются // в соответствии с условиями лицензии Attribution 4.0 International (CC BY 4.0) // Текст лицензии доступен по ссылке: diff --git a/SSL/src/DataProcessors/НастройкаСтандартногоИнтерфейсаOData/Forms/ЗависимостиОбъектаМетаданных/Module.bsl b/SSL/src/DataProcessors/НастройкаСтандартногоИнтерфейсаOData/Forms/ЗависимостиОбъектаМетаданных/Module.bsl index 220bf3b1e..06c662bea 100644 --- a/SSL/src/DataProcessors/НастройкаСтандартногоИнтерфейсаOData/Forms/ЗависимостиОбъектаМетаданных/Module.bsl +++ b/SSL/src/DataProcessors/НастройкаСтандартногоИнтерфейсаOData/Forms/ЗависимостиОбъектаМетаданных/Module.bsl @@ -1,5 +1,5 @@ /////////////////////////////////////////////////////////////////////////////////////////////////////// -// Copyright (c) 2024, ООО 1С-Софт +// Copyright (c) 2025, ООО 1С-Софт // Все права защищены. Эта программа и сопроводительные материалы предоставляются // в соответствии с условиями лицензии Attribution 4.0 International (CC BY 4.0) // Текст лицензии доступен по ссылке: diff --git a/SSL/src/DataProcessors/НастройкаСтандартногоИнтерфейсаOData/Forms/НастройкаИспользованияСтандартногоИнтерфейсаOData/Module.bsl b/SSL/src/DataProcessors/НастройкаСтандартногоИнтерфейсаOData/Forms/НастройкаИспользованияСтандартногоИнтерфейсаOData/Module.bsl index 6fcbc8103..7044a380e 100644 --- a/SSL/src/DataProcessors/НастройкаСтандартногоИнтерфейсаOData/Forms/НастройкаИспользованияСтандартногоИнтерфейсаOData/Module.bsl +++ b/SSL/src/DataProcessors/НастройкаСтандартногоИнтерфейсаOData/Forms/НастройкаИспользованияСтандартногоИнтерфейсаOData/Module.bsl @@ -1,5 +1,5 @@ /////////////////////////////////////////////////////////////////////////////////////////////////////// -// Copyright (c) 2024, ООО 1С-Софт +// Copyright (c) 2025, ООО 1С-Софт // Все права защищены. Эта программа и сопроводительные материалы предоставляются // в соответствии с условиями лицензии Attribution 4.0 International (CC BY 4.0) // Текст лицензии доступен по ссылке: diff --git a/SSL/src/DataProcessors/НастройкаСтандартногоИнтерфейсаOData/ManagerModule.bsl b/SSL/src/DataProcessors/НастройкаСтандартногоИнтерфейсаOData/ManagerModule.bsl index 0a40a9092..77e1fa666 100644 --- a/SSL/src/DataProcessors/НастройкаСтандартногоИнтерфейсаOData/ManagerModule.bsl +++ b/SSL/src/DataProcessors/НастройкаСтандартногоИнтерфейсаOData/ManagerModule.bsl @@ -1,5 +1,5 @@ /////////////////////////////////////////////////////////////////////////////////////////////////////// -// Copyright (c) 2024, ООО 1С-Софт +// Copyright (c) 2025, ООО 1С-Софт // Все права защищены. Эта программа и сопроводительные материалы предоставляются // в соответствии с условиями лицензии Attribution 4.0 International (CC BY 4.0) // Текст лицензии доступен по ссылке: diff --git a/SSL/src/DataProcessors/НастройкаСтандартногоИнтерфейсаOData/ObjectModule.bsl b/SSL/src/DataProcessors/НастройкаСтандартногоИнтерфейсаOData/ObjectModule.bsl index dc26f91fb..14c663325 100644 --- a/SSL/src/DataProcessors/НастройкаСтандартногоИнтерфейсаOData/ObjectModule.bsl +++ b/SSL/src/DataProcessors/НастройкаСтандартногоИнтерфейсаOData/ObjectModule.bsl @@ -1,5 +1,5 @@ /////////////////////////////////////////////////////////////////////////////////////////////////////// -// Copyright (c) 2024, ООО 1С-Софт +// Copyright (c) 2025, ООО 1С-Софт // Все права защищены. Эта программа и сопроводительные материалы предоставляются // в соответствии с условиями лицензии Attribution 4.0 International (CC BY 4.0) // Текст лицензии доступен по ссылке: diff --git a/SSL/src/DataProcessors/НастройкиПользователей/Commands/КопированиеНастроекПользователей/CommandModule.bsl b/SSL/src/DataProcessors/НастройкиПользователей/Commands/КопированиеНастроекПользователей/CommandModule.bsl index d06ae839c..960069118 100644 --- a/SSL/src/DataProcessors/НастройкиПользователей/Commands/КопированиеНастроекПользователей/CommandModule.bsl +++ b/SSL/src/DataProcessors/НастройкиПользователей/Commands/КопированиеНастроекПользователей/CommandModule.bsl @@ -1,5 +1,5 @@ /////////////////////////////////////////////////////////////////////////////////////////////////////// -// Copyright (c) 2024, ООО 1С-Софт +// Copyright (c) 2025, ООО 1С-Софт // Все права защищены. Эта программа и сопроводительные материалы предоставляются // в соответствии с условиями лицензии Attribution 4.0 International (CC BY 4.0) // Текст лицензии доступен по ссылке: diff --git a/SSL/src/DataProcessors/НастройкиПользователей/Commands/НастройкиПользователя/CommandModule.bsl b/SSL/src/DataProcessors/НастройкиПользователей/Commands/НастройкиПользователя/CommandModule.bsl index cfb74b437..6e33fc24b 100644 --- a/SSL/src/DataProcessors/НастройкиПользователей/Commands/НастройкиПользователя/CommandModule.bsl +++ b/SSL/src/DataProcessors/НастройкиПользователей/Commands/НастройкиПользователя/CommandModule.bsl @@ -1,5 +1,5 @@ /////////////////////////////////////////////////////////////////////////////////////////////////////// -// Copyright (c) 2024, ООО 1С-Софт +// Copyright (c) 2025, ООО 1С-Софт // Все права защищены. Эта программа и сопроводительные материалы предоставляются // в соответствии с условиями лицензии Attribution 4.0 International (CC BY 4.0) // Текст лицензии доступен по ссылке: diff --git a/SSL/src/DataProcessors/НастройкиПользователей/Commands/ОчисткаНастроекПользователей/CommandModule.bsl b/SSL/src/DataProcessors/НастройкиПользователей/Commands/ОчисткаНастроекПользователей/CommandModule.bsl index af44b2553..312e8c757 100644 --- a/SSL/src/DataProcessors/НастройкиПользователей/Commands/ОчисткаНастроекПользователей/CommandModule.bsl +++ b/SSL/src/DataProcessors/НастройкиПользователей/Commands/ОчисткаНастроекПользователей/CommandModule.bsl @@ -1,5 +1,5 @@ /////////////////////////////////////////////////////////////////////////////////////////////////////// -// Copyright (c) 2024, ООО 1С-Софт +// Copyright (c) 2025, ООО 1С-Софт // Все права защищены. Эта программа и сопроводительные материалы предоставляются // в соответствии с условиями лицензии Attribution 4.0 International (CC BY 4.0) // Текст лицензии доступен по ссылке: diff --git a/SSL/src/DataProcessors/НастройкиПользователей/Forms/ВыборНастроек/Module.bsl b/SSL/src/DataProcessors/НастройкиПользователей/Forms/ВыборНастроек/Module.bsl index 7f5105bd6..3cac4130a 100644 --- a/SSL/src/DataProcessors/НастройкиПользователей/Forms/ВыборНастроек/Module.bsl +++ b/SSL/src/DataProcessors/НастройкиПользователей/Forms/ВыборНастроек/Module.bsl @@ -1,5 +1,5 @@ /////////////////////////////////////////////////////////////////////////////////////////////////////// -// Copyright (c) 2024, ООО 1С-Софт +// Copyright (c) 2025, ООО 1С-Софт // Все права защищены. Эта программа и сопроводительные материалы предоставляются // в соответствии с условиями лицензии Attribution 4.0 International (CC BY 4.0) // Текст лицензии доступен по ссылке: diff --git a/SSL/src/DataProcessors/НастройкиПользователей/Forms/ВыборПользователей/Module.bsl b/SSL/src/DataProcessors/НастройкиПользователей/Forms/ВыборПользователей/Module.bsl index 8c021e6cc..afac949ef 100644 --- a/SSL/src/DataProcessors/НастройкиПользователей/Forms/ВыборПользователей/Module.bsl +++ b/SSL/src/DataProcessors/НастройкиПользователей/Forms/ВыборПользователей/Module.bsl @@ -1,5 +1,5 @@ /////////////////////////////////////////////////////////////////////////////////////////////////////// -// Copyright (c) 2024, ООО 1С-Софт +// Copyright (c) 2025, ООО 1С-Софт // Все права защищены. Эта программа и сопроводительные материалы предоставляются // в соответствии с условиями лицензии Attribution 4.0 International (CC BY 4.0) // Текст лицензии доступен по ссылке: diff --git a/SSL/src/DataProcessors/НастройкиПользователей/Forms/КопированиеНастроекПользователей/Module.bsl b/SSL/src/DataProcessors/НастройкиПользователей/Forms/КопированиеНастроекПользователей/Module.bsl index c3e5bfae3..7a1da3344 100644 --- a/SSL/src/DataProcessors/НастройкиПользователей/Forms/КопированиеНастроекПользователей/Module.bsl +++ b/SSL/src/DataProcessors/НастройкиПользователей/Forms/КопированиеНастроекПользователей/Module.bsl @@ -1,5 +1,5 @@ /////////////////////////////////////////////////////////////////////////////////////////////////////// -// Copyright (c) 2024, ООО 1С-Софт +// Copyright (c) 2025, ООО 1С-Софт // Все права защищены. Эта программа и сопроводительные материалы предоставляются // в соответствии с условиями лицензии Attribution 4.0 International (CC BY 4.0) // Текст лицензии доступен по ссылке: diff --git a/SSL/src/DataProcessors/НастройкиПользователей/Forms/НастройкиПользователей/Module.bsl b/SSL/src/DataProcessors/НастройкиПользователей/Forms/НастройкиПользователей/Module.bsl index cd307536d..0563f4c0c 100644 --- a/SSL/src/DataProcessors/НастройкиПользователей/Forms/НастройкиПользователей/Module.bsl +++ b/SSL/src/DataProcessors/НастройкиПользователей/Forms/НастройкиПользователей/Module.bsl @@ -1,5 +1,5 @@ /////////////////////////////////////////////////////////////////////////////////////////////////////// -// Copyright (c) 2024, ООО 1С-Софт +// Copyright (c) 2025, ООО 1С-Софт // Все права защищены. Эта программа и сопроводительные материалы предоставляются // в соответствии с условиями лицензии Attribution 4.0 International (CC BY 4.0) // Текст лицензии доступен по ссылке: diff --git a/SSL/src/DataProcessors/НастройкиПользователей/Forms/ОчисткаНастроекПользователей/Module.bsl b/SSL/src/DataProcessors/НастройкиПользователей/Forms/ОчисткаНастроекПользователей/Module.bsl index d2f85ffb4..fcf8183f0 100644 --- a/SSL/src/DataProcessors/НастройкиПользователей/Forms/ОчисткаНастроекПользователей/Module.bsl +++ b/SSL/src/DataProcessors/НастройкиПользователей/Forms/ОчисткаНастроекПользователей/Module.bsl @@ -1,5 +1,5 @@ /////////////////////////////////////////////////////////////////////////////////////////////////////// -// Copyright (c) 2024, ООО 1С-Софт +// Copyright (c) 2025, ООО 1С-Софт // Все права защищены. Эта программа и сопроводительные материалы предоставляются // в соответствии с условиями лицензии Attribution 4.0 International (CC BY 4.0) // Текст лицензии доступен по ссылке: diff --git a/SSL/src/DataProcessors/НастройкиПользователей/Forms/ПредупреждениеОКопированииНастроек/Module.bsl b/SSL/src/DataProcessors/НастройкиПользователей/Forms/ПредупреждениеОКопированииНастроек/Module.bsl index 66a859ae5..93f507973 100644 --- a/SSL/src/DataProcessors/НастройкиПользователей/Forms/ПредупреждениеОКопированииНастроек/Module.bsl +++ b/SSL/src/DataProcessors/НастройкиПользователей/Forms/ПредупреждениеОКопированииНастроек/Module.bsl @@ -1,5 +1,5 @@ /////////////////////////////////////////////////////////////////////////////////////////////////////// -// Copyright (c) 2024, ООО 1С-Софт +// Copyright (c) 2025, ООО 1С-Софт // Все права защищены. Эта программа и сопроводительные материалы предоставляются // в соответствии с условиями лицензии Attribution 4.0 International (CC BY 4.0) // Текст лицензии доступен по ссылке: diff --git a/SSL/src/DataProcessors/НастройкиПользователей/ManagerModule.bsl b/SSL/src/DataProcessors/НастройкиПользователей/ManagerModule.bsl index c0c38c5f1..5b1d64b5a 100644 --- a/SSL/src/DataProcessors/НастройкиПользователей/ManagerModule.bsl +++ b/SSL/src/DataProcessors/НастройкиПользователей/ManagerModule.bsl @@ -1,5 +1,5 @@ /////////////////////////////////////////////////////////////////////////////////////////////////////// -// Copyright (c) 2024, ООО 1С-Софт +// Copyright (c) 2025, ООО 1С-Софт // Все права защищены. Эта программа и сопроводительные материалы предоставляются // в соответствии с условиями лицензии Attribution 4.0 International (CC BY 4.0) // Текст лицензии доступен по ссылке: @@ -486,7 +486,7 @@ ИменаПользователейИБ.Вставить(ВРег(ПользовательИБ.Имя), Истина); КонецЦикла; Выборка = Хранилище.Выбрать(); - Пока СледующаяНастройка(Выборка, "ПриОшибкеУдалить", Хранилище) Цикл + Пока Выборка.Следующий() Цикл Если ИменаПользователейИБ.Получить(ВРег(Выборка.Пользователь)) = Неопределено Тогда Хранилище.Удалить(Выборка.КлючОбъекта, Выборка.КлючНастроек, Выборка.Пользователь); Продолжить; @@ -498,7 +498,7 @@ ИмяПользователяИБ = ИмяПользователяИБ(Источник); Отбор = Новый Структура("Пользователь", ИмяПользователяИБ); Выборка = Хранилище.Выбрать(Отбор); - Пока СледующаяНастройка(Выборка, "ПриОшибкеУдалить", Хранилище) Цикл + Пока Выборка.Следующий() Цикл УдалитьУстаревшуюНастройку(Выборка, Хранилище, Контекст); КонецЦикла; КонецЦикла; @@ -734,7 +734,7 @@ ВыборкаНастроек = МенеджерНастроек.Выбрать(Отбор); - Пока СледующаяНастройка(ВыборкаНастроек) Цикл + Пока ВыборкаНастроек.Следующий() Цикл Если Не ПолучитьИзбранное И СтрНайти(ВыборкаНастроек.КлючОбъекта, "ИзбранноеРаботыПользователя") <> 0 Тогда @@ -788,38 +788,6 @@ КонецФункции -Функция СледующаяНастройка(Выборка, ОбработкаОшибок = "ПриОшибкеПропустить", Хранилище = Неопределено) - - ЕстьОшибка = Ложь; - Попытка - ЕстьСледующий = Выборка.Следующий(); - Исключение - ИнформацияОбОшибке = ИнформацияОбОшибке(); - Если ИнформацияОбОшибке.ЯвляетсяОшибкойКатегории(КатегорияОшибки.НарушениеПравДоступа) Тогда - ВызватьИсключение; - КонецЕсли; - ЕстьОшибка = Истина; - КонецПопытки; - - Если ЕстьОшибка Тогда - Возврат ЕстьСледующий; - КонецЕсли; - - Если Не ЕстьСледующий Или Не ЕстьОшибка Тогда - Возврат ЕстьСледующий; - КонецЕсли; - - Если ОбработкаОшибок = "ПриОшибкеПропустить" Тогда - Возврат СледующаяНастройка(Выборка, ОбработкаОшибок, Хранилище); - ИначеЕсли ОбработкаОшибок = "ПриОшибкеУдалить" Тогда - Хранилище.Удалить(Выборка.КлючОбъекта, Выборка.КлючНастроек, Выборка.Пользователь); - Возврат СледующаяНастройка(Выборка, ОбработкаОшибок, Хранилище); - КонецЕсли; - - Возврат ЕстьСледующий; - -КонецФункции - // Копирует пользовательские настройки. // // Параметры: @@ -1873,7 +1841,7 @@ Отбор.Вставить("Пользователь", Пользователь); ВыборкаНастроек = МенеджерНастроек.Выбрать(Отбор); - Пока СледующаяНастройка(ВыборкаНастроек) Цикл + Пока ВыборкаНастроек.Следующий() Цикл НоваяСтрока = Настройки.Добавить(); НоваяСтрока.КлючОбъекта = ВыборкаНастроек.КлючОбъекта; diff --git a/SSL/src/DataProcessors/НастройкиЦентраМониторинга/Commands/НастройкаОтправкиОтчетовОбОшибках/CommandModule.bsl b/SSL/src/DataProcessors/НастройкиЦентраМониторинга/Commands/НастройкаОтправкиОтчетовОбОшибках/CommandModule.bsl index 92a4a9aa4..58a456ebf 100644 --- a/SSL/src/DataProcessors/НастройкиЦентраМониторинга/Commands/НастройкаОтправкиОтчетовОбОшибках/CommandModule.bsl +++ b/SSL/src/DataProcessors/НастройкиЦентраМониторинга/Commands/НастройкаОтправкиОтчетовОбОшибках/CommandModule.bsl @@ -1,5 +1,5 @@ /////////////////////////////////////////////////////////////////////////////////////////////////////// -// Copyright (c) 2024, ООО 1С-Софт +// Copyright (c) 2025, ООО 1С-Софт // Все права защищены. Эта программа и сопроводительные материалы предоставляются // в соответствии с условиями лицензии Attribution 4.0 International (CC BY 4.0) // Текст лицензии доступен по ссылке: diff --git a/SSL/src/DataProcessors/НастройкиЦентраМониторинга/Commands/ПроблемыПроизводительности/CommandModule.bsl b/SSL/src/DataProcessors/НастройкиЦентраМониторинга/Commands/ПроблемыПроизводительности/CommandModule.bsl index 0cee6251c..ab6793244 100644 --- a/SSL/src/DataProcessors/НастройкиЦентраМониторинга/Commands/ПроблемыПроизводительности/CommandModule.bsl +++ b/SSL/src/DataProcessors/НастройкиЦентраМониторинга/Commands/ПроблемыПроизводительности/CommandModule.bsl @@ -1,5 +1,5 @@ /////////////////////////////////////////////////////////////////////////////////////////////////////// -// Copyright (c) 2024, ООО 1С-Софт +// Copyright (c) 2025, ООО 1С-Софт // Все права защищены. Эта программа и сопроводительные материалы предоставляются // в соответствии с условиями лицензии Attribution 4.0 International (CC BY 4.0) // Текст лицензии доступен по ссылке: diff --git a/SSL/src/DataProcessors/НастройкиЦентраМониторинга/Forms/ЗапросНаОтправкуОтчетовОбОшибках/Module.bsl b/SSL/src/DataProcessors/НастройкиЦентраМониторинга/Forms/ЗапросНаОтправкуОтчетовОбОшибках/Module.bsl index 7393bae41..f21f445a0 100644 --- a/SSL/src/DataProcessors/НастройкиЦентраМониторинга/Forms/ЗапросНаОтправкуОтчетовОбОшибках/Module.bsl +++ b/SSL/src/DataProcessors/НастройкиЦентраМониторинга/Forms/ЗапросНаОтправкуОтчетовОбОшибках/Module.bsl @@ -1,5 +1,5 @@ /////////////////////////////////////////////////////////////////////////////////////////////////////// -// Copyright (c) 2024, ООО 1С-Софт +// Copyright (c) 2025, ООО 1С-Софт // Все права защищены. Эта программа и сопроводительные материалы предоставляются // в соответствии с условиями лицензии Attribution 4.0 International (CC BY 4.0) // Текст лицензии доступен по ссылке: diff --git a/SSL/src/DataProcessors/НастройкиЦентраМониторинга/Forms/ЗапросНаСборИОтправкуОтчетовОбОшибках/Module.bsl b/SSL/src/DataProcessors/НастройкиЦентраМониторинга/Forms/ЗапросНаСборИОтправкуОтчетовОбОшибках/Module.bsl index 472bfbafe..25089790f 100644 --- a/SSL/src/DataProcessors/НастройкиЦентраМониторинга/Forms/ЗапросНаСборИОтправкуОтчетовОбОшибках/Module.bsl +++ b/SSL/src/DataProcessors/НастройкиЦентраМониторинга/Forms/ЗапросНаСборИОтправкуОтчетовОбОшибках/Module.bsl @@ -1,5 +1,5 @@ /////////////////////////////////////////////////////////////////////////////////////////////////////// -// Copyright (c) 2024, ООО 1С-Софт +// Copyright (c) 2025, ООО 1С-Софт // Все права защищены. Эта программа и сопроводительные материалы предоставляются // в соответствии с условиями лицензии Attribution 4.0 International (CC BY 4.0) // Текст лицензии доступен по ссылке: diff --git a/SSL/src/DataProcessors/НастройкиЦентраМониторинга/Forms/НастройкиЦентраМониторинга/Module.bsl b/SSL/src/DataProcessors/НастройкиЦентраМониторинга/Forms/НастройкиЦентраМониторинга/Module.bsl index 1e9bbb6ec..dfc9c6c73 100644 --- a/SSL/src/DataProcessors/НастройкиЦентраМониторинга/Forms/НастройкиЦентраМониторинга/Module.bsl +++ b/SSL/src/DataProcessors/НастройкиЦентраМониторинга/Forms/НастройкиЦентраМониторинга/Module.bsl @@ -1,5 +1,5 @@ /////////////////////////////////////////////////////////////////////////////////////////////////////// -// Copyright (c) 2024, ООО 1С-Софт +// Copyright (c) 2025, ООО 1С-Софт // Все права защищены. Эта программа и сопроводительные материалы предоставляются // в соответствии с условиями лицензии Attribution 4.0 International (CC BY 4.0) // Текст лицензии доступен по ссылке: diff --git a/SSL/src/DataProcessors/НастройкиЦентраМониторинга/Forms/ОтправкаКонтактнойИнформации/Module.bsl b/SSL/src/DataProcessors/НастройкиЦентраМониторинга/Forms/ОтправкаКонтактнойИнформации/Module.bsl index 56f06b2c4..136bd44e9 100644 --- a/SSL/src/DataProcessors/НастройкиЦентраМониторинга/Forms/ОтправкаКонтактнойИнформации/Module.bsl +++ b/SSL/src/DataProcessors/НастройкиЦентраМониторинга/Forms/ОтправкаКонтактнойИнформации/Module.bsl @@ -1,5 +1,5 @@ /////////////////////////////////////////////////////////////////////////////////////////////////////// -// Copyright (c) 2024, ООО 1С-Софт +// Copyright (c) 2025, ООО 1С-Софт // Все права защищены. Эта программа и сопроводительные материалы предоставляются // в соответствии с условиями лицензии Attribution 4.0 International (CC BY 4.0) // Текст лицензии доступен по ссылке: diff --git a/SSL/src/DataProcessors/НерекомендуемаяВерсияПлатформы/Forms/НеобходимоОбновитьПлатформу/Module.bsl b/SSL/src/DataProcessors/НерекомендуемаяВерсияПлатформы/Forms/НеобходимоОбновитьПлатформу/Module.bsl index 6b35a8422..08cda4ac4 100644 --- a/SSL/src/DataProcessors/НерекомендуемаяВерсияПлатформы/Forms/НеобходимоОбновитьПлатформу/Module.bsl +++ b/SSL/src/DataProcessors/НерекомендуемаяВерсияПлатформы/Forms/НеобходимоОбновитьПлатформу/Module.bsl @@ -1,5 +1,5 @@ /////////////////////////////////////////////////////////////////////////////////////////////////////// -// Copyright (c) 2024, ООО 1С-Софт +// Copyright (c) 2025, ООО 1С-Софт // Все права защищены. Эта программа и сопроводительные материалы предоставляются // в соответствии с условиями лицензии Attribution 4.0 International (CC BY 4.0) // Текст лицензии доступен по ссылке: diff --git a/SSL/src/DataProcessors/НерекомендуемаяВерсияПлатформы/Forms/НерекомендуемаяВерсияПлатформы/Module.bsl b/SSL/src/DataProcessors/НерекомендуемаяВерсияПлатформы/Forms/НерекомендуемаяВерсияПлатформы/Module.bsl index 359ddf2a7..34e8fd34c 100644 --- a/SSL/src/DataProcessors/НерекомендуемаяВерсияПлатформы/Forms/НерекомендуемаяВерсияПлатформы/Module.bsl +++ b/SSL/src/DataProcessors/НерекомендуемаяВерсияПлатформы/Forms/НерекомендуемаяВерсияПлатформы/Module.bsl @@ -1,5 +1,5 @@ /////////////////////////////////////////////////////////////////////////////////////////////////////// -// Copyright (c) 2024, ООО 1С-Софт +// Copyright (c) 2025, ООО 1С-Софт // Все права защищены. Эта программа и сопроводительные материалы предоставляются // в соответствии с условиями лицензии Attribution 4.0 International (CC BY 4.0) // Текст лицензии доступен по ссылке: diff --git a/SSL/src/DataProcessors/НерекомендуемаяВерсияПлатформы/Forms/ПорядокОбновленияПлатформы/Module.bsl b/SSL/src/DataProcessors/НерекомендуемаяВерсияПлатформы/Forms/ПорядокОбновленияПлатформы/Module.bsl index 920047811..7eb657686 100644 --- a/SSL/src/DataProcessors/НерекомендуемаяВерсияПлатформы/Forms/ПорядокОбновленияПлатформы/Module.bsl +++ b/SSL/src/DataProcessors/НерекомендуемаяВерсияПлатформы/Forms/ПорядокОбновленияПлатформы/Module.bsl @@ -1,5 +1,5 @@ /////////////////////////////////////////////////////////////////////////////////////////////////////// -// Copyright (c) 2024, ООО 1С-Софт +// Copyright (c) 2025, ООО 1С-Софт // Все права защищены. Эта программа и сопроводительные материалы предоставляются // в соответствии с условиями лицензии Attribution 4.0 International (CC BY 4.0) // Текст лицензии доступен по ссылке: diff --git a/SSL/src/DataProcessors/ОписаниеОбработчиковОбновления/Commands/ОписаниеОбработчиковОбновления/CommandModule.bsl b/SSL/src/DataProcessors/ОписаниеОбработчиковОбновления/Commands/ОписаниеОбработчиковОбновления/CommandModule.bsl index 1fc70c8dd..59effa8bd 100644 --- a/SSL/src/DataProcessors/ОписаниеОбработчиковОбновления/Commands/ОписаниеОбработчиковОбновления/CommandModule.bsl +++ b/SSL/src/DataProcessors/ОписаниеОбработчиковОбновления/Commands/ОписаниеОбработчиковОбновления/CommandModule.bsl @@ -1,5 +1,5 @@ /////////////////////////////////////////////////////////////////////////////////////////////////////// -// Copyright (c) 2024, ООО 1С-Софт +// Copyright (c) 2025, ООО 1С-Софт // Все права защищены. Эта программа и сопроводительные материалы предоставляются // в соответствии с условиями лицензии Attribution 4.0 International (CC BY 4.0) // Текст лицензии доступен по ссылке: diff --git a/SSL/src/DataProcessors/ОписаниеОбработчиковОбновления/Forms/ОбъектыПересеченияОбработчика/Module.bsl b/SSL/src/DataProcessors/ОписаниеОбработчиковОбновления/Forms/ОбъектыПересеченияОбработчика/Module.bsl index b7e959b97..3828c686f 100644 --- a/SSL/src/DataProcessors/ОписаниеОбработчиковОбновления/Forms/ОбъектыПересеченияОбработчика/Module.bsl +++ b/SSL/src/DataProcessors/ОписаниеОбработчиковОбновления/Forms/ОбъектыПересеченияОбработчика/Module.bsl @@ -1,5 +1,5 @@ /////////////////////////////////////////////////////////////////////////////////////////////////////// -// Copyright (c) 2024, ООО 1С-Софт +// Copyright (c) 2025, ООО 1С-Софт // Все права защищены. Эта программа и сопроводительные материалы предоставляются // в соответствии с условиями лицензии Attribution 4.0 International (CC BY 4.0) // Текст лицензии доступен по ссылке: diff --git a/SSL/src/DataProcessors/ОписаниеОбработчиковОбновления/Forms/ФормаВыбораИдентификаторовОбъектовМетаданных/Module.bsl b/SSL/src/DataProcessors/ОписаниеОбработчиковОбновления/Forms/ФормаВыбораИдентификаторовОбъектовМетаданных/Module.bsl index 1286578a3..3f00808bf 100644 --- a/SSL/src/DataProcessors/ОписаниеОбработчиковОбновления/Forms/ФормаВыбораИдентификаторовОбъектовМетаданных/Module.bsl +++ b/SSL/src/DataProcessors/ОписаниеОбработчиковОбновления/Forms/ФормаВыбораИдентификаторовОбъектовМетаданных/Module.bsl @@ -1,5 +1,5 @@ /////////////////////////////////////////////////////////////////////////////////////////////////////// -// Copyright (c) 2024, ООО 1С-Софт +// Copyright (c) 2025, ООО 1С-Софт // Все права защищены. Эта программа и сопроводительные материалы предоставляются // в соответствии с условиями лицензии Attribution 4.0 International (CC BY 4.0) // Текст лицензии доступен по ссылке: diff --git a/SSL/src/DataProcessors/ОписаниеОбработчиковОбновления/Forms/ФормаОбработчика/Module.bsl b/SSL/src/DataProcessors/ОписаниеОбработчиковОбновления/Forms/ФормаОбработчика/Module.bsl index 06cf4f25c..1c61c69ee 100644 --- a/SSL/src/DataProcessors/ОписаниеОбработчиковОбновления/Forms/ФормаОбработчика/Module.bsl +++ b/SSL/src/DataProcessors/ОписаниеОбработчиковОбновления/Forms/ФормаОбработчика/Module.bsl @@ -1,5 +1,5 @@ /////////////////////////////////////////////////////////////////////////////////////////////////////// -// Copyright (c) 2024, ООО 1С-Софт +// Copyright (c) 2025, ООО 1С-Софт // Все права защищены. Эта программа и сопроводительные материалы предоставляются // в соответствии с условиями лицензии Attribution 4.0 International (CC BY 4.0) // Текст лицензии доступен по ссылке: diff --git a/SSL/src/DataProcessors/ОписаниеОбработчиковОбновления/Forms/ФормаСпискаОбработчиков/Module.bsl b/SSL/src/DataProcessors/ОписаниеОбработчиковОбновления/Forms/ФормаСпискаОбработчиков/Module.bsl index 9646429bf..836265c4a 100644 --- a/SSL/src/DataProcessors/ОписаниеОбработчиковОбновления/Forms/ФормаСпискаОбработчиков/Module.bsl +++ b/SSL/src/DataProcessors/ОписаниеОбработчиковОбновления/Forms/ФормаСпискаОбработчиков/Module.bsl @@ -1,5 +1,5 @@ /////////////////////////////////////////////////////////////////////////////////////////////////////// -// Copyright (c) 2024, ООО 1С-Софт +// Copyright (c) 2025, ООО 1С-Софт // Все права защищены. Эта программа и сопроводительные материалы предоставляются // в соответствии с условиями лицензии Attribution 4.0 International (CC BY 4.0) // Текст лицензии доступен по ссылке: diff --git a/SSL/src/DataProcessors/ОписаниеОбработчиковОбновления/ManagerModule.bsl b/SSL/src/DataProcessors/ОписаниеОбработчиковОбновления/ManagerModule.bsl index dde75a984..624e51613 100644 --- a/SSL/src/DataProcessors/ОписаниеОбработчиковОбновления/ManagerModule.bsl +++ b/SSL/src/DataProcessors/ОписаниеОбработчиковОбновления/ManagerModule.bsl @@ -1,5 +1,5 @@ /////////////////////////////////////////////////////////////////////////////////////////////////////// -// Copyright (c) 2024, ООО 1С-Софт +// Copyright (c) 2025, ООО 1С-Софт // Все права защищены. Эта программа и сопроводительные материалы предоставляются // в соответствии с условиями лицензии Attribution 4.0 International (CC BY 4.0) // Текст лицензии доступен по ссылке: diff --git a/SSL/src/DataProcessors/ОписаниеОбработчиковОбновления/ObjectModule.bsl b/SSL/src/DataProcessors/ОписаниеОбработчиковОбновления/ObjectModule.bsl index c80b7691d..e84fc78e5 100644 --- a/SSL/src/DataProcessors/ОписаниеОбработчиковОбновления/ObjectModule.bsl +++ b/SSL/src/DataProcessors/ОписаниеОбработчиковОбновления/ObjectModule.bsl @@ -1,5 +1,5 @@ /////////////////////////////////////////////////////////////////////////////////////////////////////// -// Copyright (c) 2024, ООО 1С-Софт +// Copyright (c) 2025, ООО 1С-Софт // Все права защищены. Эта программа и сопроводительные материалы предоставляются // в соответствии с условиями лицензии Attribution 4.0 International (CC BY 4.0) // Текст лицензии доступен по ссылке: diff --git a/SSL/src/DataProcessors/ОтложеннаяЗаписьУзла/Forms/Форма/Module.bsl b/SSL/src/DataProcessors/ОтложеннаяЗаписьУзла/Forms/Форма/Module.bsl index 75abb3370..44d9b55cf 100644 --- a/SSL/src/DataProcessors/ОтложеннаяЗаписьУзла/Forms/Форма/Module.bsl +++ b/SSL/src/DataProcessors/ОтложеннаяЗаписьУзла/Forms/Форма/Module.bsl @@ -1,5 +1,5 @@ /////////////////////////////////////////////////////////////////////////////////////////////////////// -// Copyright (c) 2024, ООО 1С-Софт +// Copyright (c) 2025, ООО 1С-Софт // Все права защищены. Эта программа и сопроводительные материалы предоставляются // в соответствии с условиями лицензии Attribution 4.0 International (CC BY 4.0) // Текст лицензии доступен по ссылке: @@ -81,6 +81,10 @@ &НаКлиенте Процедура ОбработатьРезультат(Результат, ДополнительныеПараметры) Экспорт + Если Результат = Неопределено Тогда + Возврат; + КонецЕсли; + Если Результат.Статус = "Выполнено" Тогда Элементы.ПанельОсновная.ТекущаяСтраница = Элементы.СтраницаОкончание; diff --git a/SSL/src/DataProcessors/ОтложеннаяЗаписьУзла/ManagerModule.bsl b/SSL/src/DataProcessors/ОтложеннаяЗаписьУзла/ManagerModule.bsl index 31e4c3351..44e956a8b 100644 --- a/SSL/src/DataProcessors/ОтложеннаяЗаписьУзла/ManagerModule.bsl +++ b/SSL/src/DataProcessors/ОтложеннаяЗаписьУзла/ManagerModule.bsl @@ -1,5 +1,5 @@ /////////////////////////////////////////////////////////////////////////////////////////////////////// -// Copyright (c) 2024, ООО 1С-Софт +// Copyright (c) 2025, ООО 1С-Софт // Все права защищены. Эта программа и сопроводительные материалы предоставляются // в соответствии с условиями лицензии Attribution 4.0 International (CC BY 4.0) // Текст лицензии доступен по ссылке: diff --git a/SSL/src/DataProcessors/ОценкаПроизводительности/Commands/ИмпортЗамеровПроизводительности/CommandModule.bsl b/SSL/src/DataProcessors/ОценкаПроизводительности/Commands/ИмпортЗамеровПроизводительности/CommandModule.bsl index 484c27696..806cc432b 100644 --- a/SSL/src/DataProcessors/ОценкаПроизводительности/Commands/ИмпортЗамеровПроизводительности/CommandModule.bsl +++ b/SSL/src/DataProcessors/ОценкаПроизводительности/Commands/ИмпортЗамеровПроизводительности/CommandModule.bsl @@ -1,5 +1,5 @@ /////////////////////////////////////////////////////////////////////////////////////////////////////// -// Copyright (c) 2024, ООО 1С-Софт +// Copyright (c) 2025, ООО 1С-Софт // Все права защищены. Эта программа и сопроводительные материалы предоставляются // в соответствии с условиями лицензии Attribution 4.0 International (CC BY 4.0) // Текст лицензии доступен по ссылке: diff --git a/SSL/src/DataProcessors/ОценкаПроизводительности/Commands/НастройкиОценкиПроизводительности/CommandModule.bsl b/SSL/src/DataProcessors/ОценкаПроизводительности/Commands/НастройкиОценкиПроизводительности/CommandModule.bsl index 2506c57f4..6527eb9f9 100644 --- a/SSL/src/DataProcessors/ОценкаПроизводительности/Commands/НастройкиОценкиПроизводительности/CommandModule.bsl +++ b/SSL/src/DataProcessors/ОценкаПроизводительности/Commands/НастройкиОценкиПроизводительности/CommandModule.bsl @@ -1,5 +1,5 @@ /////////////////////////////////////////////////////////////////////////////////////////////////////// -// Copyright (c) 2024, ООО 1С-Софт +// Copyright (c) 2025, ООО 1С-Софт // Все права защищены. Эта программа и сопроводительные материалы предоставляются // в соответствии с условиями лицензии Attribution 4.0 International (CC BY 4.0) // Текст лицензии доступен по ссылке: diff --git a/SSL/src/DataProcessors/ОценкаПроизводительности/Commands/ПодборЦелевогоВремени/CommandModule.bsl b/SSL/src/DataProcessors/ОценкаПроизводительности/Commands/ПодборЦелевогоВремени/CommandModule.bsl index b055fc3fa..b5aefb68f 100644 --- a/SSL/src/DataProcessors/ОценкаПроизводительности/Commands/ПодборЦелевогоВремени/CommandModule.bsl +++ b/SSL/src/DataProcessors/ОценкаПроизводительности/Commands/ПодборЦелевогоВремени/CommandModule.bsl @@ -1,5 +1,5 @@ /////////////////////////////////////////////////////////////////////////////////////////////////////// -// Copyright (c) 2024, ООО 1С-Софт +// Copyright (c) 2025, ООО 1С-Софт // Все права защищены. Эта программа и сопроводительные материалы предоставляются // в соответствии с условиями лицензии Attribution 4.0 International (CC BY 4.0) // Текст лицензии доступен по ссылке: diff --git a/SSL/src/DataProcessors/ОценкаПроизводительности/Commands/ЭкспортЗамеровПроизводительности/CommandModule.bsl b/SSL/src/DataProcessors/ОценкаПроизводительности/Commands/ЭкспортЗамеровПроизводительности/CommandModule.bsl index 4f1882a7e..ba715b20b 100644 --- a/SSL/src/DataProcessors/ОценкаПроизводительности/Commands/ЭкспортЗамеровПроизводительности/CommandModule.bsl +++ b/SSL/src/DataProcessors/ОценкаПроизводительности/Commands/ЭкспортЗамеровПроизводительности/CommandModule.bsl @@ -1,5 +1,5 @@ /////////////////////////////////////////////////////////////////////////////////////////////////////// -// Copyright (c) 2024, ООО 1С-Софт +// Copyright (c) 2025, ООО 1С-Софт // Все права защищены. Эта программа и сопроводительные материалы предоставляются // в соответствии с условиями лицензии Attribution 4.0 International (CC BY 4.0) // Текст лицензии доступен по ссылке: diff --git a/SSL/src/DataProcessors/ОценкаПроизводительности/Forms/АвтоматическийЭкспортЗамеровПроизводительности/Module.bsl b/SSL/src/DataProcessors/ОценкаПроизводительности/Forms/АвтоматическийЭкспортЗамеровПроизводительности/Module.bsl index 7625b9b62..e89cf5b96 100644 --- a/SSL/src/DataProcessors/ОценкаПроизводительности/Forms/АвтоматическийЭкспортЗамеровПроизводительности/Module.bsl +++ b/SSL/src/DataProcessors/ОценкаПроизводительности/Forms/АвтоматическийЭкспортЗамеровПроизводительности/Module.bsl @@ -1,5 +1,5 @@ /////////////////////////////////////////////////////////////////////////////////////////////////////// -// Copyright (c) 2024, ООО 1С-Софт +// Copyright (c) 2025, ООО 1С-Софт // Все права защищены. Эта программа и сопроводительные материалы предоставляются // в соответствии с условиями лицензии Attribution 4.0 International (CC BY 4.0) // Текст лицензии доступен по ссылке: diff --git a/SSL/src/DataProcessors/ОценкаПроизводительности/Forms/ИмпортЗамеровПроизводительности/Module.bsl b/SSL/src/DataProcessors/ОценкаПроизводительности/Forms/ИмпортЗамеровПроизводительности/Module.bsl index 4816271dd..67c4f8fe8 100644 --- a/SSL/src/DataProcessors/ОценкаПроизводительности/Forms/ИмпортЗамеровПроизводительности/Module.bsl +++ b/SSL/src/DataProcessors/ОценкаПроизводительности/Forms/ИмпортЗамеровПроизводительности/Module.bsl @@ -1,5 +1,5 @@ /////////////////////////////////////////////////////////////////////////////////////////////////////// -// Copyright (c) 2024, ООО 1С-Софт +// Copyright (c) 2025, ООО 1С-Софт // Все права защищены. Эта программа и сопроводительные материалы предоставляются // в соответствии с условиями лицензии Attribution 4.0 International (CC BY 4.0) // Текст лицензии доступен по ссылке: diff --git a/SSL/src/DataProcessors/ОценкаПроизводительности/Forms/ПодборЦелевогоВремениКлючевойОперации/Module.bsl b/SSL/src/DataProcessors/ОценкаПроизводительности/Forms/ПодборЦелевогоВремениКлючевойОперации/Module.bsl index 4b0905cc9..6b538371f 100644 --- a/SSL/src/DataProcessors/ОценкаПроизводительности/Forms/ПодборЦелевогоВремениКлючевойОперации/Module.bsl +++ b/SSL/src/DataProcessors/ОценкаПроизводительности/Forms/ПодборЦелевогоВремениКлючевойОперации/Module.bsl @@ -1,5 +1,5 @@ /////////////////////////////////////////////////////////////////////////////////////////////////////// -// Copyright (c) 2024, ООО 1С-Софт +// Copyright (c) 2025, ООО 1С-Софт // Все права защищены. Эта программа и сопроводительные материалы предоставляются // в соответствии с условиями лицензии Attribution 4.0 International (CC BY 4.0) // Текст лицензии доступен по ссылке: diff --git a/SSL/src/DataProcessors/ОценкаПроизводительности/Forms/ЭкспортЗамеровПроизводительности/Module.bsl b/SSL/src/DataProcessors/ОценкаПроизводительности/Forms/ЭкспортЗамеровПроизводительности/Module.bsl index d64971400..bf20d1bf5 100644 --- a/SSL/src/DataProcessors/ОценкаПроизводительности/Forms/ЭкспортЗамеровПроизводительности/Module.bsl +++ b/SSL/src/DataProcessors/ОценкаПроизводительности/Forms/ЭкспортЗамеровПроизводительности/Module.bsl @@ -1,5 +1,5 @@ /////////////////////////////////////////////////////////////////////////////////////////////////////// -// Copyright (c) 2024, ООО 1С-Софт +// Copyright (c) 2025, ООО 1С-Софт // Все права защищены. Эта программа и сопроводительные материалы предоставляются // в соответствии с условиями лицензии Attribution 4.0 International (CC BY 4.0) // Текст лицензии доступен по ссылке: diff --git a/SSL/src/DataProcessors/ПанельАдминистрированияБСП/Commands/ИнтернетПоддержкаИСервисы/CommandModule.bsl b/SSL/src/DataProcessors/ПанельАдминистрированияБСП/Commands/ИнтернетПоддержкаИСервисы/CommandModule.bsl index 32ae8ae1a..2353b8daa 100644 --- a/SSL/src/DataProcessors/ПанельАдминистрированияБСП/Commands/ИнтернетПоддержкаИСервисы/CommandModule.bsl +++ b/SSL/src/DataProcessors/ПанельАдминистрированияБСП/Commands/ИнтернетПоддержкаИСервисы/CommandModule.bsl @@ -1,5 +1,5 @@ /////////////////////////////////////////////////////////////////////////////////////////////////////// -// Copyright (c) 2024, ООО 1С-Софт +// Copyright (c) 2025, ООО 1С-Софт // Все права защищены. Эта программа и сопроводительные материалы предоставляются // в соответствии с условиями лицензии Attribution 4.0 International (CC BY 4.0) // Текст лицензии доступен по ссылке: diff --git a/SSL/src/DataProcessors/ПанельАдминистрированияБСП/Commands/НастройкиПользователейИПрав/CommandModule.bsl b/SSL/src/DataProcessors/ПанельАдминистрированияБСП/Commands/НастройкиПользователейИПрав/CommandModule.bsl index 3366e9f1f..39e4b7bae 100644 --- a/SSL/src/DataProcessors/ПанельАдминистрированияБСП/Commands/НастройкиПользователейИПрав/CommandModule.bsl +++ b/SSL/src/DataProcessors/ПанельАдминистрированияБСП/Commands/НастройкиПользователейИПрав/CommandModule.bsl @@ -1,5 +1,5 @@ /////////////////////////////////////////////////////////////////////////////////////////////////////// -// Copyright (c) 2024, ООО 1С-Софт +// Copyright (c) 2025, ООО 1С-Софт // Все права защищены. Эта программа и сопроводительные материалы предоставляются // в соответствии с условиями лицензии Attribution 4.0 International (CC BY 4.0) // Текст лицензии доступен по ссылке: diff --git a/SSL/src/DataProcessors/ПанельАдминистрированияБСП/Commands/НастройкиРаботыСФайлами/CommandModule.bsl b/SSL/src/DataProcessors/ПанельАдминистрированияБСП/Commands/НастройкиРаботыСФайлами/CommandModule.bsl index be556efa5..340c064f9 100644 --- a/SSL/src/DataProcessors/ПанельАдминистрированияБСП/Commands/НастройкиРаботыСФайлами/CommandModule.bsl +++ b/SSL/src/DataProcessors/ПанельАдминистрированияБСП/Commands/НастройкиРаботыСФайлами/CommandModule.bsl @@ -1,5 +1,5 @@ /////////////////////////////////////////////////////////////////////////////////////////////////////// -// Copyright (c) 2024, ООО 1С-Софт +// Copyright (c) 2025, ООО 1С-Софт // Все права защищены. Эта программа и сопроводительные материалы предоставляются // в соответствии с условиями лицензии Attribution 4.0 International (CC BY 4.0) // Текст лицензии доступен по ссылке: diff --git a/SSL/src/DataProcessors/ПанельАдминистрированияБСП/Commands/Обслуживание/CommandModule.bsl b/SSL/src/DataProcessors/ПанельАдминистрированияБСП/Commands/Обслуживание/CommandModule.bsl index af680991c..e2811732f 100644 --- a/SSL/src/DataProcessors/ПанельАдминистрированияБСП/Commands/Обслуживание/CommandModule.bsl +++ b/SSL/src/DataProcessors/ПанельАдминистрированияБСП/Commands/Обслуживание/CommandModule.bsl @@ -1,5 +1,5 @@ /////////////////////////////////////////////////////////////////////////////////////////////////////// -// Copyright (c) 2024, ООО 1С-Софт +// Copyright (c) 2025, ООО 1С-Софт // Все права защищены. Эта программа и сопроводительные материалы предоставляются // в соответствии с условиями лицензии Attribution 4.0 International (CC BY 4.0) // Текст лицензии доступен по ссылке: diff --git a/SSL/src/DataProcessors/ПанельАдминистрированияБСП/Commands/ОбщиеНастройки/CommandModule.bsl b/SSL/src/DataProcessors/ПанельАдминистрированияБСП/Commands/ОбщиеНастройки/CommandModule.bsl index e85aa5d7f..7a65427a8 100644 --- a/SSL/src/DataProcessors/ПанельАдминистрированияБСП/Commands/ОбщиеНастройки/CommandModule.bsl +++ b/SSL/src/DataProcessors/ПанельАдминистрированияБСП/Commands/ОбщиеНастройки/CommandModule.bsl @@ -1,5 +1,5 @@ /////////////////////////////////////////////////////////////////////////////////////////////////////// -// Copyright (c) 2024, ООО 1С-Софт +// Copyright (c) 2025, ООО 1С-Софт // Все права защищены. Эта программа и сопроводительные материалы предоставляются // в соответствии с условиями лицензии Attribution 4.0 International (CC BY 4.0) // Текст лицензии доступен по ссылке: diff --git a/SSL/src/DataProcessors/ПанельАдминистрированияБСП/Commands/Органайзер/CommandModule.bsl b/SSL/src/DataProcessors/ПанельАдминистрированияБСП/Commands/Органайзер/CommandModule.bsl index 60f7dacaf..da2349b3a 100644 --- a/SSL/src/DataProcessors/ПанельАдминистрированияБСП/Commands/Органайзер/CommandModule.bsl +++ b/SSL/src/DataProcessors/ПанельАдминистрированияБСП/Commands/Органайзер/CommandModule.bsl @@ -1,5 +1,5 @@ /////////////////////////////////////////////////////////////////////////////////////////////////////// -// Copyright (c) 2024, ООО 1С-Софт +// Copyright (c) 2025, ООО 1С-Софт // Все права защищены. Эта программа и сопроводительные материалы предоставляются // в соответствии с условиями лицензии Attribution 4.0 International (CC BY 4.0) // Текст лицензии доступен по ссылке: diff --git a/SSL/src/DataProcessors/ПанельАдминистрированияБСП/Commands/ПечатныеФормыОтчетыИОбработки/CommandModule.bsl b/SSL/src/DataProcessors/ПанельАдминистрированияБСП/Commands/ПечатныеФормыОтчетыИОбработки/CommandModule.bsl index dcaa09c16..1c33d1002 100644 --- a/SSL/src/DataProcessors/ПанельАдминистрированияБСП/Commands/ПечатныеФормыОтчетыИОбработки/CommandModule.bsl +++ b/SSL/src/DataProcessors/ПанельАдминистрированияБСП/Commands/ПечатныеФормыОтчетыИОбработки/CommandModule.bsl @@ -1,5 +1,5 @@ /////////////////////////////////////////////////////////////////////////////////////////////////////// -// Copyright (c) 2024, ООО 1С-Софт +// Copyright (c) 2025, ООО 1С-Софт // Все права защищены. Эта программа и сопроводительные материалы предоставляются // в соответствии с условиями лицензии Attribution 4.0 International (CC BY 4.0) // Текст лицензии доступен по ссылке: diff --git a/SSL/src/DataProcessors/ПанельАдминистрированияБСП/Commands/СинхронизацияДанных/CommandModule.bsl b/SSL/src/DataProcessors/ПанельАдминистрированияБСП/Commands/СинхронизацияДанных/CommandModule.bsl index 701cba905..f802079b5 100644 --- a/SSL/src/DataProcessors/ПанельАдминистрированияБСП/Commands/СинхронизацияДанных/CommandModule.bsl +++ b/SSL/src/DataProcessors/ПанельАдминистрированияБСП/Commands/СинхронизацияДанных/CommandModule.bsl @@ -1,5 +1,5 @@ /////////////////////////////////////////////////////////////////////////////////////////////////////// -// Copyright (c) 2024, ООО 1С-Софт +// Copyright (c) 2025, ООО 1С-Софт // Все права защищены. Эта программа и сопроводительные материалы предоставляются // в соответствии с условиями лицензии Attribution 4.0 International (CC BY 4.0) // Текст лицензии доступен по ссылке: diff --git a/SSL/src/DataProcessors/ПанельАдминистрированияБСП/Forms/ИнтернетПоддержкаИСервисы/Module.bsl b/SSL/src/DataProcessors/ПанельАдминистрированияБСП/Forms/ИнтернетПоддержкаИСервисы/Module.bsl index 46acf7e15..50a30a155 100644 --- a/SSL/src/DataProcessors/ПанельАдминистрированияБСП/Forms/ИнтернетПоддержкаИСервисы/Module.bsl +++ b/SSL/src/DataProcessors/ПанельАдминистрированияБСП/Forms/ИнтернетПоддержкаИСервисы/Module.bsl @@ -1,5 +1,5 @@ /////////////////////////////////////////////////////////////////////////////////////////////////////// -// Copyright (c) 2024, ООО 1С-Софт +// Copyright (c) 2025, ООО 1С-Софт // Все права защищены. Эта программа и сопроводительные материалы предоставляются // в соответствии с условиями лицензии Attribution 4.0 International (CC BY 4.0) // Текст лицензии доступен по ссылке: diff --git a/SSL/src/DataProcessors/ПанельАдминистрированияБСП/Forms/НастройкиПользователейИПрав/Help/ru.html b/SSL/src/DataProcessors/ПанельАдминистрированияБСП/Forms/НастройкиПользователейИПрав/Help/ru.html index 0ae773c02..4d01c4b70 100644 --- a/SSL/src/DataProcessors/ПанельАдминистрированияБСП/Forms/НастройкиПользователейИПрав/Help/ru.html +++ b/SSL/src/DataProcessors/ПанельАдминистрированияБСП/Forms/НастройкиПользователейИПрав/Help/ru.html @@ -28,7 +28,8 @@ TD {
        • Вариант работы - выберите с помощью выпадающего меню:
          • Производительный - является основным для любых видов приложений.
          • Стандартный - является устаревшим и сохранен для обеспечения совместимости с ранними версиями приложения. В данном режиме недоступны или ограниченно доступны такие возможности, как отчет о правах на конкретный документ, сведения об ограничениях доступа и другие.
        • В Производительном режиме работы становится доступной следующая возможность:
        • -
          • Обновление доступа на уровне записей - перейдите по ссылке для отслеживания хода обновления прав доступа. Также для нештатных случаев позволяет обновить доступ отдельных объектов и запланировать обновление доступа к требуемым спискам.

          Персональные настройки пользователей

          +
          • Обновление доступа на уровне записей - перейдите по ссылке для отслеживания хода обновления прав доступа. Также для нештатных случаев позволяет обновить доступ отдельных объектов и запланировать обновление доступа к требуемым спискам.
          • +
          • В отдельных типовых решениях или вариантах их поставки (например, в базовых версиях), использование ограничений доступа (RLS) может быть отключено, например, когда не требуется или не поддерживается. В этом случае остается только настройка групп доступа и профилей для удобной установки прав пользователям. 

          Персональные настройки пользователей

          • Копирование настроек - копирование настроек контекста работы приложения от одного пользователя другим. Это бывает полезно при вводе нового пользователя.
          • Очистка настроек - очистка настроек пользователя, группы пользователей или всех пользователей. Это восстанавливает целостность настроек и в некоторых случаях помогает нормализовать работу сеансов этого пользователя в приложении. diff --git a/SSL/src/DataProcessors/ПанельАдминистрированияБСП/Forms/НастройкиПользователейИПрав/Module.bsl b/SSL/src/DataProcessors/ПанельАдминистрированияБСП/Forms/НастройкиПользователейИПрав/Module.bsl index b0e60a4ce..103d49de2 100644 --- a/SSL/src/DataProcessors/ПанельАдминистрированияБСП/Forms/НастройкиПользователейИПрав/Module.bsl +++ b/SSL/src/DataProcessors/ПанельАдминистрированияБСП/Forms/НастройкиПользователейИПрав/Module.bsl @@ -1,5 +1,5 @@ /////////////////////////////////////////////////////////////////////////////////////////////////////// -// Copyright (c) 2024, ООО 1С-Софт +// Copyright (c) 2025, ООО 1С-Софт // Все права защищены. Эта программа и сопроводительные материалы предоставляются // в соответствии с условиями лицензии Attribution 4.0 International (CC BY 4.0) // Текст лицензии доступен по ссылке: @@ -46,17 +46,37 @@ УпрощенныйИнтерфейс = МодульУправлениеДоступомСлужебный.УпрощенныйИнтерфейсНастройкиПравДоступа(); Элементы.ОткрытьГруппыДоступа.Видимость = Не УпрощенныйИнтерфейс; Элементы.ИспользоватьГруппыПользователей.Видимость = Не УпрощенныйИнтерфейс; - Элементы.ОграничиватьДоступНаУровнеЗаписейУниверсально.Видимость - = МодульУправлениеДоступомСлужебный.ВариантВстроенногоЯзыкаРусский() - И Пользователи.ЭтоПолноправныйПользователь(); - Элементы.ОбновлениеДоступаНаУровнеЗаписей.Видимость = - МодульУправлениеДоступомСлужебный.ОграничиватьДоступНаУровнеЗаписейУниверсально(Истина); + ОтключеноОграничениеНаУровнеЗаписей = МодульУправлениеДоступомСлужебный.ОтключеноОграничениеНаУровнеЗаписей(); + ОтключенСтандартныйВариант = МодульУправлениеДоступомСлужебный.ОтключенСтандартныйВариант(); + Элементы.ОграничиватьДоступНаУровнеЗаписей.Видимость = + Не ОтключеноОграничениеНаУровнеЗаписей; + Элементы.ОграничиватьДоступНаУровнеЗаписейУниверсально.Видимость = + Не ОтключеноОграничениеНаУровнеЗаписей + И Не ОтключенСтандартныйВариант + И МодульУправлениеДоступомСлужебный.ВариантВстроенногоЯзыкаРусский() + И Пользователи.ЭтоПолноправныйПользователь(); + Элементы.ОбновлениеДоступаНаУровнеЗаписей.Видимость = + Не ОтключеноОграничениеНаУровнеЗаписей + И МодульУправлениеДоступомСлужебный.ОграничиватьДоступНаУровнеЗаписейУниверсально(Истина); Если ОбщегоНазначения.ЭтоПодчиненныйУзелРИБ() Тогда Элементы.ОграничиватьДоступНаУровнеЗаписей.Доступность = Ложь; Элементы.ОграничиватьДоступНаУровнеЗаписейУниверсально.Доступность = Ложь; КонецЕсли; ОбновитьВидимостьПредупрежденияСтандартныйВариантУстарел(ЭтотОбъект); + Если ОтключеноОграничениеНаУровнеЗаписей Тогда + Для Каждого ПодчиненныйЭлемент Из Элементы.ГруппаГруппыДоступа.ПодчиненныеЭлементы Цикл + Если ПодчиненныйЭлемент <> Элементы.ГруппаГруппыДоступаПрофилиИОграничениеНаУровнеЗаписей Тогда + ПодчиненныйЭлемент.Видимость = Ложь; + КонецЕсли; + КонецЦикла; + Для Каждого ПодчиненныйЭлемент Из Элементы.ГруппаГруппыДоступаПрофилиИОграничениеНаУровнеЗаписей.ПодчиненныеЭлементы Цикл + Если ПодчиненныйЭлемент <> Элементы.ГруппаГруппыДоступаИОграничениеНаУровнеЗаписей + И ПодчиненныйЭлемент <> Элементы.ГруппаПрофилиГруппДоступа Тогда + ПодчиненныйЭлемент.Видимость = Ложь; + КонецЕсли; + КонецЦикла; + КонецЕсли; ПоддерживаетсяРегистрацияИзмененийПраваДоступа = МодульУправлениеДоступомСлужебный.ПоддерживаетсяРегистрацияИзмененийПраваДоступа(); Иначе diff --git a/SSL/src/DataProcessors/ПанельАдминистрированияБСП/Forms/НастройкиРаботыСФайлами/Form.form b/SSL/src/DataProcessors/ПанельАдминистрированияБСП/Forms/НастройкиРаботыСФайлами/Form.form index a4553b1a1..6e43a70b3 100644 --- a/SSL/src/DataProcessors/ПанельАдминистрированияБСП/Forms/НастройкиРаботыСФайлами/Form.form +++ b/SSL/src/DataProcessors/ПанельАдминистрированияБСП/Forms/НастройкиРаботыСФайлами/Form.form @@ -325,7 +325,7 @@ Left true - 30 + 35 true true true @@ -334,7 +334,7 @@ ru - в информационной базе + в базе данных ВИнформационнойБазе @@ -343,7 +343,7 @@ ru - в томах на сервере + в томах (в сетевых каталогах) ВТомахНаДиске @@ -352,7 +352,7 @@ ru - в информационной базе и томах на сервере + в базе данных или в томах ВИнформационнойБазеИТомахНаДиске @@ -2616,6 +2616,298 @@ Auto + + ГруппаФайловыйАрхив + 2231 + + ГруппаОбщиеНастройкиФайловогоАрхива + 2233 + + ИспользоватьФайловыйАрхив + 2235 + + <key>ru</key> + <value>Использовать файловый архив</value> + + true + true + + true + + + ИспользоватьФайловыйАрхив + + + OnChange + ИспользоватьФайловыйАрхивПриИзменении + + + ИспользоватьФайловыйАрхивРасширеннаяПодсказка + 2237 + Label + true + true + + Left + + + + ИспользоватьФайловыйАрхивКонтекстноеМеню + 2236 + true + + CheckBoxField + Enter + true + Left + true + + + + НастройкаРаботыСФайловымАрхивом + 2238 + + <key>ru</key> + <value>Настройка работы с файловым архивом</value> + + true + true + + true + + + НастройкаРаботыСФайловымАрхивомРасширеннаяПодсказка + 2239 + Label + true + true + + Left + + + Hyperlink + Form.Command.НастройкаРаботыСФайловымАрхивом + Normal + Auto + true + UserCmds + Auto + + + СправочникТомаХраненияФайловАрхивные + 2240 + + <key>ru</key> + <value>Тома архивного хранения</value> + + true + true + + true + + + СправочникТомаХраненияФайловАрхивныеРасширеннаяПодсказка + 2241 + Label + true + true + + Left + + + Hyperlink + Form.Command.СправочникТомаХраненияФайловАрхивные + Normal + Auto + true + true + UserCmds + Auto + + true + true + + true + + + <key>ru</key> + <value>Общие настройки файлового архива</value> + + + ГруппаОбщиеНастройкиФайловогоАрхиваРасширеннаяПодсказка + 2234 + Label + true + true + + Left + + + UsualGroup + + AlwaysHorizontal + Auto + WeakSeparation + true + true + Auto + Auto + + + + ГруппаТекстИнформированияПользователя + 2242 + + ТекстИнформированияПользователяОНедоступностиФайлаВАрхиве + 2244 + + <key>ru</key> + <value>Текст информирования пользователя</value> + + true + true + + true + + + НаборКонстант.ТекстИнформированияПользователяОНедоступностиФайлаВАрхиве + + + OnChange + ТекстИнформированияПользователяОНедоступностиФайлаВАрхивеПриИзменении + + + ТекстИнформированияПользователяОНедоступностиФайлаВАрхивеРасширеннаяПодсказка + 2246 + Label + true + true + + Left + + + + ТекстИнформированияПользователяОНедоступностиФайлаВАрхивеКонтекстноеМеню + 2245 + true + + InputField + Enter + true + Left + true + + 62 + 2 + true + true + false + true + true + true + true + true + true + Normal + + + + ПояснениеВоВстроенномХранилищеДвоичныхДанных + 2247 + + <key>ru</key> + <value>Текст информирования пользователя в ситуации, когда недоступен файл, перенесенный в файловый архив.</value> + + true + true + + true + + + ПояснениеВоВстроенномХранилищеДвоичныхДанныхРасширеннаяПодсказка + 2249 + Label + true + true + + Left + + + + ПояснениеВоВстроенномХранилищеДвоичныхДанныхКонтекстноеМеню + 2248 + true + + Label + true + + Style.ПоясняющийТекст + + + Left + + + true + true + + true + + + <key>ru</key> + <value>Текст информирования пользователя</value> + + + ГруппаТекстИнформированияПользователяРасширеннаяПодсказка + 2243 + Label + true + true + + Left + + + UsualGroup + + Vertical + Auto + WeakSeparation + true + true + Auto + Auto + + + true + true + + true + + + <key>ru</key> + <value>Файловый архив</value> + + + ГруппаФайловыйАрхивРасширеннаяПодсказка + 2232 + Label + true + true + + Left + + + UsualGroup + + Vertical + Auto + WeakSeparation + true + true + auto + Auto + Auto + + ФормаКоманднаяПанель -1 @@ -2716,6 +3008,9 @@ НаборКонстант.ИспользоватьСинхронизациюДанных + + НаборКонстант.ИспользоватьФайловыйАрхив + НаборКонстант.ИспользоватьЭлектронныеПодписи @@ -2749,6 +3044,9 @@ НаборКонстант.СписокРасширенийФайловOpenDocumentОбластиДанных + + НаборКонстант.ТекстИнформированияПользователяОНедоступностиФайлаВАрхиве + НаборКонстант.ХранитьФайлыВТомахНаДиске @@ -2901,6 +3199,36 @@ true + + ДоступныХранилищаДвоичныхДанных + 7 + + Boolean + + + true + + + true + + + + ИспользоватьФайловыйАрхив + + <key>ru</key> + <value>Использовать файловый архив</value> + + 8 + + Boolean + + + true + + + true + + СправочникТомаХраненияФайлов @@ -3007,6 +3335,50 @@ <currentRowUse>Auto</currentRowUse> <selectedRowsUse>Auto</selectedRowsUse> </formCommands> + <formCommands> + <name>СправочникТомаХраненияФайловАрхивные</name> + <title> + <key>ru</key> + <value>Справочник тома хранения файлов архивные</value> + + 3 + + ru + Справочник тома хранения файлов архивные + + + true + + + + СправочникТомаХраненияФайловАрхивные + + + Auto + Auto + + + НастройкаРаботыСФайловымАрхивом + + <key>ru</key> + <value>Настройка работы с файловым архивом</value> + + 4 + + ru + Настройка работы с файловым архивом + + + true + + + + НастройкаРаботыСФайловымАрхивом + + + Auto + Auto + diff --git a/SSL/src/DataProcessors/ПанельАдминистрированияБСП/Forms/НастройкиРаботыСФайлами/Help/ru.html b/SSL/src/DataProcessors/ПанельАдминистрированияБСП/Forms/НастройкиРаботыСФайлами/Help/ru.html index 23d32f5d7..7d9c1a6be 100644 --- a/SSL/src/DataProcessors/ПанельАдминистрированияБСП/Forms/НастройкиРаботыСФайлами/Help/ru.html +++ b/SSL/src/DataProcessors/ПанельАдминистрированияБСП/Forms/НастройкиРаботыСФайлами/Help/ru.html @@ -7,11 +7,12 @@ TD {

            В данной панели осуществляется настройка параметров загрузки, хранения и обработки файлов.

            Нажмите на ссылку Файлы для того, чтобы перейти в список файлов, а также задать структуру папок файлов и прав доступа к ним.

            -
            • В поле Хранить файлы можно указать вариант хранения файлов:
            • -
              • в информационной базе - в данном случай файлы хранятся в приложении. Также если выбран данный вариант хранения файлов, то для того чтобы уменьшить нагрузку на информационную базу можно Выполнить дедупликацию для устранения дублей файлов;
              • -
              • в томах на сервере - в данном случае файлы не будут храниться в приложении; -
              • -
              • в информационной базе и томах на сервере.
            Если хотя бы часть файлов хранится в томах, то становятся доступными команды:
              • Тома хранения файлов - переход к настройке подключения к томам (папкам) хранения файлов на файловом сервере.
              • +
                • В поле Хранить файлы можно выбрать вариант хранения файлов:
                • +
                  • в базе данных -  файлы хранятся в приложении. Если выбран данный вариант хранения файлов, то для того чтобы уменьшить нагрузку на информационную базу рекомендуется Выполнить дедупликацию для устранения дублей файлов;
                  • +
                  • в томах (в сетевых каталогах) - файлы хранятся в сетевых каталогах файловой системы, что снижает нагрузку на приложение. 
                  • +
                  • в базе данных или в томах - комбинированный режим, позволяющий гибко распределять файлы между базой данных и томами в зависимости от требований.
                  • +
                  • во встроенном хранилище двоичных данных (КОРП) - хранение двоичных данных в файловом хранилище. Доступно только в клиент-серверном варианте при использовании корпоративной лицензии платформы 1С:Предприятие.
                  • +
                  • во внешнем хранилище двоичных данных (КОРП) - хранение во внешнем S3-совместимом хранилище. Доступно только в клиент-серверном варианте при использовании корпоративной лицензии платформы 1С:Предприятие.
                Если хотя бы часть файлов хранится в томах, то становятся доступными команды:
                  • Тома хранения файлов - переход к настройке подключения к томам (папкам) хранения файлов на файловом сервере.в данном случае
                  • С помощью ссылки Перенос файлов можно перейти к настройкам и перенести файлы. При смене способа хранения файлов автоматический перенос файлов не происходит, нужно перенести файлы вручную.
                  • Создавать подкаталоги с именами справочников-владельцев файлов - если флажок включен, то файлы в томах будут размещены в подкаталогах с именами списков, документов и т.д., к которым присоединены файлы. Например, для точной настройки правил резервного копирования файлов в томах.
                  • Если выбран вариант Хранить файлы в информационной базе и томах на сервере, можно указать, какие типы файлов будут храниться в информационной базе:
                  • @@ -42,8 +43,19 @@ TD {
                    Все данные находятся в одном месте - в информационной базе;
                  • -
                    Для резервного копирования достаточно стандартных средств платформы 1С:Предприятия или СУБД.

                  Необходимо помнить, что хранение файлов в информационной базе подходит только для баз с небольшим количеством (объемом) файлов. Для того чтобы сэкономить до 30% места в базе воспользуйтесь дедупликацией файлов по команде Выполнить дедупликацию.

                  -

                  Правила хранения файлов в томах

                  +
                  Для резервного копирования достаточно стандартных средств платформы 1С:Предприятия или СУБД.

                Необходимо помнить, что хранение файлов в информационной базе подходит только для баз с небольшим количеством (объемом) файлов. Для того чтобы сэкономить до 30% места в базе воспользуйтесь дедупликацией файлов по команде Выполнить дедупликацию.

                +

                Преимущества хранения файлов во встроенном или внешнем S3(Simple Storage Service) хранилище двоичных данных

                +

                +Хранилище двоичных данных - механизм платформы 1С:Предприятие для размещения больших двоичных данных (сканов документов, фотографий, аудио- и видеозаписей) в специализированном хранилище вместо базы данных. +

                +
                • Сокращение времени обновления и обслуживания базы данных
                • +
                • Упрощение масштабирования системы
                • +
                • Ускорение создания резервных копий и восстановления из них
                • +
                • Снижение нагрузки на аппаратные ресурсы
                • +

                Для работы с хранилищем двоичных данных не требуется программирование. Технический специалист с помощью стандартных функций платформы может включить использование хранилища для информационной базы и задать минимальный размер данных. +В качестве хранилища может использоваться каталог файловой системы (встроенное хранилище) или внешнее S3-совместимое хранилище.

                +

                Хранилище двоичных данных доступно только при работе в клиент-серверном режиме. +

                Правила хранения файлов в томах

                • Переключение флажка Хранить файлы в томах на сервере обратной силы не имеет. Если хранение файлов в томах отключили, то новые файлы добавляются в саму ИБ, а старые остаются томах. При этом папка с томом будет продолжать использоваться до того, пока в базе есть хотя бы один файл. Файлы, ранее сохраненные в тома, открываются из этих томов.
                • diff --git a/SSL/src/DataProcessors/ПанельАдминистрированияБСП/Forms/НастройкиРаботыСФайлами/Module.bsl b/SSL/src/DataProcessors/ПанельАдминистрированияБСП/Forms/НастройкиРаботыСФайлами/Module.bsl index 13c162643..069486f91 100644 --- a/SSL/src/DataProcessors/ПанельАдминистрированияБСП/Forms/НастройкиРаботыСФайлами/Module.bsl +++ b/SSL/src/DataProcessors/ПанельАдминистрированияБСП/Forms/НастройкиРаботыСФайлами/Module.bsl @@ -1,5 +1,5 @@ /////////////////////////////////////////////////////////////////////////////////////////////////////// -// Copyright (c) 2024, ООО 1С-Софт +// Copyright (c) 2025, ООО 1С-Софт // Все права защищены. Эта программа и сопроводительные материалы предоставляются // в соответствии с условиями лицензии Attribution 4.0 International (CC BY 4.0) // Текст лицензии доступен по ссылке: @@ -20,7 +20,11 @@ &НаСервере Процедура ПриСозданииНаСервере(Отказ, СтандартнаяОбработка) - + + ДоступныХранилищаДвоичныхДанных = РаботаСФайловымАрхивомСервер.ДоступныХранилищаДвоичныхДанных(); + + СпособХраненияФайловНастроитьСписокВыбора(); + МаксимальныйРазмерФайла = РаботаСФайлами.МаксимальныйРазмерФайлаОбщий() / (1024*1024); МаксимальныйРазмерФайлаОбластиДанных = РаботаСФайлами.МаксимальныйРазмерФайла() / (1024*1024); @@ -51,11 +55,19 @@ Элементы.ГруппаДедупликация.Видимость = НаборКонстант.СпособХраненияФайлов <> "ВТомахНаДиске" И Не ДедупликацияВыполнена(); ЗначениеСпособаХраненияФайлов = НаборКонстант.СпособХраненияФайлов; УстановитьДоступностьНастроекХраненияВТомах(); + ИспользоватьФайловыйАрхив = НаборКонстант.ИспользоватьФайловыйАрхив; Иначе Элементы.ГруппаДедупликация.Видимость = Ложь; КонецЕсли; - + + ДоступноИспользованиеФайловогоАрхива = ЭтоАдминистраторСистемы И РаботаСФайловымАрхивомСервер.ДоступенФайловыйАрхив(); + Элементы.ГруппаФайловыйАрхив.Видимость = ДоступноИспользованиеФайловогоАрхива; + Если ДоступноИспользованиеФайловогоАрхива Тогда + УстановитьДоступностьНастроекУправленияФайловымАрхивом(); + КонецЕсли; + УстановитьДоступность(); + НастройкиПрограммыПереопределяемый.НастройкиРаботыСФайламиПриСозданииНаСервере(ЭтотОбъект); Если ОбщегоНазначения.ЭтоМобильныйКлиент() Тогда @@ -93,28 +105,28 @@ &НаКлиенте Процедура СпособХраненияФайловПриИзменении(Элемент) - + Если НаборКонстант.СпособХраненияФайлов = ЗначениеСпособаХраненияФайлов Тогда Возврат; КонецЕсли; - НаборКонстант.ХранитьФайлыВТомахНаДиске = НаборКонстант.СпособХраненияФайлов <> "ВИнформационнойБазе"; - + НаборКонстант.ХранитьФайлыВТомахНаДиске = ЭтоСпособХранениеФайловНаДиске(НаборКонстант.СпособХраненияФайлов); + ОбработкаОповещения = Новый ОписаниеОповещения( "СпособХраненияФайловПриИзмененииЗавершение", ЭтотОбъект, Элемент); - - Если ЗначениеСпособаХраненияФайлов <> "ВИнформационнойБазе" + + Если ЭтоСпособХранениеФайловНаДиске(ЗначениеСпособаХраненияФайлов) И НаборКонстант.ХранитьФайлыВТомахНаДиске Тогда ВыполнитьОбработкуОповещения(ОбработкаОповещения, КодВозвратаДиалога.ОК); Возврат; КонецЕсли; - + Попытка - + ЗапросыНаИспользованиеВнешнихРесурсов = ЗапросыНаИспользованиеВнешнихРесурсовТомовХраненияФайлов( НаборКонстант.ХранитьФайлыВТомахНаДиске); - + Если ОбщегоНазначенияКлиент.ПодсистемаСуществует("СтандартныеПодсистемы.ПрофилиБезопасности") Тогда МодульРаботаВБезопасномРежимеКлиент = ОбщегоНазначенияКлиент.ОбщийМодуль("РаботаВБезопасномРежимеКлиент"); МодульРаботаВБезопасномРежимеКлиент.ПрименитьЗапросыНаИспользованиеВнешнихРесурсов( @@ -122,14 +134,14 @@ Иначе ВыполнитьОбработкуОповещения(ОбработкаОповещения, КодВозвратаДиалога.ОК); КонецЕсли; - + Исключение - + НаборКонстант.СпособХраненияФайлов = ЗначениеСпособаХраненияФайлов; - НаборКонстант.ХранитьФайлыВТомахНаДиске = ЗначениеСпособаХраненияФайлов <> "ВИнформационнойБазе"; + НаборКонстант.ХранитьФайлыВТомахНаДиске = ЭтоСпособХранениеФайловНаДиске(ЗначениеСпособаХраненияФайлов); ВызватьИсключение; - - КонецПопытки; + + КонецПопытки; КонецПроцедуры @@ -256,6 +268,24 @@ #КонецОбласти +#Область ПараметрыРаботыСФайловымАрхивом + +&НаКлиенте +Процедура ИспользоватьФайловыйАрхивПриИзменении(Элемент) + + Подключаемый_ПриИзмененииРеквизита(Элемент); + +КонецПроцедуры + +&НаКлиенте +Процедура ТекстИнформированияПользователяОНедоступностиФайлаВАрхивеПриИзменении(Элемент) + + Подключаемый_ПриИзмененииРеквизита(Элемент); + +КонецПроцедуры + +#КонецОбласти + #КонецОбласти #Область ОбработчикиКомандФормы @@ -269,9 +299,10 @@ &НаКлиенте Процедура СправочникТомаХраненияФайлов(Команда) - - ОткрытьФорму("Справочник.ТомаХраненияФайлов.ФормаСписка", , ЭтотОбъект); - + + ВидТомаХраненияФайлов = ОбщегоНазначенияКлиент.ПредопределенныйЭлемент("Перечисление.ВидыХраненияФайлов.ОперационноеХранение"); + ОткрытьФормуСпискаСправочникаТомаХраненияФайловСОтборомПоВидуТомаХраненияФайлов(ЭтотОбъект, ВидТомаХраненияФайлов); + КонецПроцедуры &НаКлиенте @@ -317,28 +348,59 @@ КонецПроцедуры +&НаКлиенте +Процедура СправочникТомаХраненияФайловАрхивные(Команда) + + ВидТомаХраненияФайлов = ОбщегоНазначенияКлиент.ПредопределенныйЭлемент("Перечисление.ВидыХраненияФайлов.АрхивноеХранение"); + ОткрытьФормуСпискаСправочникаТомаХраненияФайловСОтборомПоВидуТомаХраненияФайлов(ЭтотОбъект, ВидТомаХраненияФайлов); + +КонецПроцедуры + +&НаКлиенте +Процедура НастройкаРаботыСФайловымАрхивом(Команда) + + ПараметрыФормы = Новый Структура; + ПараметрыФормы.Вставить("РазрешеноОткрытиеФормы", Истина); + + ОткрытьФорму("РегистрСведений.НастройкиРаботыСФайловымАрхивом.ФормаСписка", ПараметрыФормы, ЭтотОбъект); + +КонецПроцедуры #КонецОбласти #Область СлужебныеПроцедурыИФункции &НаКлиенте Процедура СпособХраненияФайловПриИзмененииЗавершение(Ответ, Элемент) Экспорт - + Если Ответ <> КодВозвратаДиалога.ОК Тогда НаборКонстант.СпособХраненияФайлов = ЗначениеСпособаХраненияФайлов; - НаборКонстант.ХранитьФайлыВТомахНаДиске = ЗначениеСпособаХраненияФайлов <> "ВИнформационнойБазе"; + НаборКонстант.ХранитьФайлыВТомахНаДиске = ЭтоСпособХранениеФайловНаДиске(ЗначениеСпособаХраненияФайлов); Возврат; КонецЕсли; - - Если ЗначениеСпособаХраненияФайлов = "ВИнформационнойБазе" - И НаборКонстант.ХранитьФайлыВТомахНаДиске - И Не ЕстьТомаХраненияФайлов() Тогда - - ПоказатьПредупреждение(, НСтр("ru = 'Включено хранение файлов в томах на файловом сервере, но тома еще не настроены. - |Добавляемые файлы будут сохраняться в информационной базе до тех пор, пока не будет настроен хотя бы один том хранения файлов.'")); - КонецЕсли; + + ИзменятьСоставХранимыхДанных = Ложь; - ПриИзмененииСпособаХраненияФайловНаСервере(); + Если Не ДоступныХранилищаДвоичныхДанных Тогда + Если ЗначениеСпособаХраненияФайлов = "ВИнформационнойБазе" + И НаборКонстант.ХранитьФайлыВТомахНаДиске + И Не ЕстьТомаХраненияФайлов("ВТомахНаДиске") Тогда + + ПоказатьПредупреждение(, НСтр("ru = 'Включено хранение файлов в томах на файловом сервере, но тома еще не настроены. + |Добавляемые файлы будут сохраняться в информационной базе до тех пор, пока не будет настроен хотя бы один том хранения файлов.'")); + КонецЕсли; + Иначе + + ИзменятьСоставХранимыхДанных = Истина; + + Если РаботаСФайловымАрхивомКлиентСервер.СпособХраненияИспользуетТома(НаборКонстант.СпособХраненияФайлов) Тогда + Если Не ЕстьТомаХраненияФайлов(НаборКонстант.СпособХраненияФайлов) Тогда + ТекстПредупреждения = ПолучитьТекстПредупрежденияПоСпособуХраненияФайлов(НаборКонстант.СпособХраненияФайлов); + ПоказатьПредупреждение(, НСтр("ru = '" + ТекстПредупреждения + "'")); + КонецЕсли; + КонецЕсли; + КонецЕсли; + + ПриИзмененииСпособаХраненияФайловНаСервере(ИзменятьСоставХранимыхДанных); ОбновитьПовторноИспользуемыеЗначения(); ПослеИзмененияРеквизита("СпособХраненияФайлов", Ложь); ПослеИзмененияРеквизита("ХранитьФайлыВТомахНаДиске"); @@ -424,11 +486,26 @@ КонецФункции &НаСервере -Процедура ПриИзмененииСпособаХраненияФайловНаСервере() +Процедура ПриИзмененииСпособаХраненияФайловНаСервере(Знач ИзменятьСоставХранимыхДанных = Ложь) + + НачатьТранзакцию(); + Попытка + Константы.СпособХраненияФайлов.Установить(НаборКонстант.СпособХраненияФайлов); + Константы.ХранитьФайлыВТомахНаДиске.Установить(НаборКонстант.ХранитьФайлыВТомахНаДиске); + + Если ИзменятьСоставХранимыхДанных Тогда + ИзменитьСоставХранимыхДанных(НаборКонстант.СпособХраненияФайлов); + КонецЕсли; + ЗафиксироватьТранзакцию(); + Исключение + ОтменитьТранзакцию(); + НаборКонстант.СпособХраненияФайлов = ЗначениеСпособаХраненияФайлов; + НаборКонстант.ХранитьФайлыВТомахНаДиске = РаботаСФайламиКлиентСервер.ХранитьФайлыВТомах(ЗначениеСпособаХраненияФайлов); + + ВызватьИсключение; + КонецПопытки; ЗначениеСпособаХраненияФайлов = НаборКонстант.СпособХраненияФайлов; - Константы.СпособХраненияФайлов.Установить(НаборКонстант.СпособХраненияФайлов); - Константы.ХранитьФайлыВТомахНаДиске.Установить(НаборКонстант.ХранитьФайлыВТомахНаДиске); УстановитьДоступность("НаборКонстант.СпособХраненияФайлов"); ОбновитьПовторноИспользуемыеЗначения(); @@ -459,14 +536,21 @@ Элементы.ГруппаКомментарийРазрешитьЗагрузкуИзИнтернетаВСинхронизации.Видимость = Не РазрешитьДоступКИнтернетСервисам; КонецЕсли; - + + Если РеквизитПутьКДанным = "ИспользоватьФайловыйАрхив" Тогда + УстановитьДоступностьНастроекУправленияФайловымАрхивом(); + КонецЕсли; + КонецПроцедуры &НаСервере Процедура УстановитьДоступностьНастроекХраненияВТомах() - - Элементы.ГруппаУправлениеТомамиФайлов.Доступность = НаборКонстант.ХранитьФайлыВТомахНаДиске; - Элементы.СправочникТомаХраненияФайлов.Доступность = НаборКонстант.ХранитьФайлыВТомахНаДиске; + + СпособХраненияИспользуетТома = РаботаСФайловымАрхивомКлиентСервер.СпособХраненияИспользуетТома(НаборКонстант.СпособХраненияФайлов); + + Элементы.ГруппаУправлениеТомамиФайлов.Доступность = СпособХраненияИспользуетТома; + Элементы.СправочникТомаХраненияФайлов.Доступность = СпособХраненияИспользуетТома; + Элементы.СоздаватьПодкаталогиСИменамиВладельцев.Доступность = НаборКонстант.ХранитьФайлыВТомахНаДиске; Элементы.ГруппаУправлениеРазмеромФайловВИБ.Доступность = НаборКонстант.СпособХраненияФайлов = "ВИнформационнойБазеИТомахНаДиске"; @@ -498,6 +582,11 @@ ИначеЕсли РеквизитПутьКДанным = "ЗапрещатьЗагрузкуФайловПоРасширению" Тогда НаборКонстант.ЗапрещатьЗагрузкуФайловПоРасширению = ЗапрещатьЗагрузкуФайловПоРасширению; КонстантаИмя = "ЗапрещатьЗагрузкуФайловПоРасширению"; + ИначеЕсли РеквизитПутьКДанным = "ИспользоватьФайловыйАрхив" Тогда + НаборКонстант.ИспользоватьФайловыйАрхив = ИспользоватьФайловыйАрхив; + КонстантаИмя = "ИспользоватьФайловыйАрхив"; + + ПриИзмененииИспользованияФайловогоАрхива(ИспользоватьФайловыйАрхив); КонецЕсли; Иначе @@ -533,11 +622,9 @@ ИмяСправочника = "ТомаХраненияФайлов"; Если Включение Тогда - Справочники[ИмяСправочника].ДобавитьЗапросыНаИспользованиеВнешнихРесурсовВсехТомов( - ЗапросыНаИспользование); + Справочники[ИмяСправочника].ДобавитьЗапросыНаИспользованиеВнешнихРесурсовВсехТомов(ЗапросыНаИспользование); Иначе - Справочники[ИмяСправочника].ДобавитьЗапросыНаОтменуИспользованияВнешнихРесурсовВсехТомов( - ЗапросыНаИспользование); + Справочники[ИмяСправочника].ДобавитьЗапросыНаОтменуИспользованияВнешнихРесурсовВсехТомов(ЗапросыНаИспользование); КонецЕсли; Возврат ЗапросыНаИспользование; @@ -545,10 +632,22 @@ КонецФункции &НаСервереБезКонтекста -Функция ЕстьТомаХраненияФайлов() - - Возврат РаботаСФайламиВТомахСлужебный.ЕстьТомаХраненияФайлов(); - +Функция ЕстьТомаХраненияФайлов(Знач ОбрабатываемыйСпособХраненияФайлов = Неопределено) + + Если ОбрабатываемыйСпособХраненияФайлов = Неопределено Тогда + + ВидТомаХраненияФайлов = Неопределено; + СпособХраненияФайлов = Неопределено; + Иначе + + ВидТомаХраненияФайлов = Перечисления.ВидыХраненияФайлов.ОперационноеХранение; + + СпособХраненияФайлов = РаботаСФайловымАрхивомСервер.СпособХраненияДляПодбораТомовХранения(ОбрабатываемыйСпособХраненияФайлов); + + КонецЕсли; + + Возврат РаботаСФайламиВТомахСлужебный.ЕстьТомаХраненияФайлов(ВидТомаХраненияФайлов, СпособХраненияФайлов); + КонецФункции &НаСервере @@ -622,4 +721,152 @@ КонецФункции +&НаКлиенте +Процедура ОткрытьФормуСпискаСправочникаТомаХраненияФайловСОтборомПоВидуТомаХраненияФайлов(ФормаВладелец, ЗначениеДляОтбора) + + ПараметрыФормы = Новый Структура("Отбор, ЗначениеОтбораПоВидуТомаХраненияФайлов", Новый Структура("ВидТомаХраненияФайлов", ЗначениеДляОтбора), ЗначениеДляОтбора); + ОткрытьФорму("Справочник.ТомаХраненияФайлов.ФормаСписка", ПараметрыФормы, ФормаВладелец, Истина); + +КонецПроцедуры + +&НаСервере +Процедура СпособХраненияФайловНастроитьСписокВыбора() + + Если Не РаботаСФайловымАрхивомСервер.ДоступныИзмененияВСпособахХраненияФайлов() Тогда + Возврат; + КонецЕсли; + + Если Элементы.Найти("СпособХраненияФайлов") = Неопределено Тогда + Возврат; + КонецЕсли; + + ИзменяемыеСпособыХранения = Новый Структура; + ИзменяемыеСпособыХранения.Вставить("ВТомахНаДиске" , НСтр("ru = 'в томах (в сетевых каталогах)'")); + ИзменяемыеСпособыХранения.Вставить("ВИнформационнойБазе" , НСтр("ru = 'в базе данных'")); + ИзменяемыеСпособыХранения.Вставить("ВИнформационнойБазеИТомахНаДиске" , НСтр("ru = 'в базе данных или в томах'")); + + СписокВыбораСпособХраненияФайлов = Элементы.СпособХраненияФайлов.СписокВыбора; + + Для Каждого ИзменяемыйСпособХранения Из ИзменяемыеСпособыХранения Цикл + РезультатПоиска = СписокВыбораСпособХраненияФайлов.НайтиПоЗначению(ИзменяемыйСпособХранения.Ключ); + Если РезультатПоиска <> Неопределено Тогда + РезультатПоиска.Представление = ИзменяемыйСпособХранения.Значение; + КонецЕсли; + КонецЦикла; + + Если Не ДоступныХранилищаДвоичныхДанных Тогда + Возврат; + КонецЕсли; + + СписокВыбораСпособХраненияФайлов.Добавить("ВоВстроенномХранилищеДвоичныхДанных" , НСтр("ru = 'во встроенном хранилище двоичных данных (КОРП)'")); + СписокВыбораСпособХраненияФайлов.Добавить("ВоВнешнемХранилищеДвоичныхДанных" , НСтр("ru = 'во внешнем хранилище двоичных данных (КОРП)'")); + +КонецПроцедуры + +&НаКлиенте +Функция ЭтоСпособХранениеФайловНаДиске(ПроверяемыйСпособХраненияФайлов) + + Возврат РаботаСФайламиКлиентСервер.ХранитьФайлыВТомах(ПроверяемыйСпособХраненияФайлов); + +КонецФункции + +&НаКлиенте +Функция ПолучитьТекстПредупрежденияПоСпособуХраненияФайлов(ОбрабатываемыйСпособХраненияФайлов) + + Результат = ""; + + Если ОбрабатываемыйСпособХраненияФайлов = "ВТомахНаДиске" Тогда + + Результат = НСтр("ru = 'Включено хранение файлов в томах на файловом сервере, но тома еще не настроены.'"); + + ИначеЕсли ОбрабатываемыйСпособХраненияФайлов = "ВИнформационнойБазеИТомахНаДиске" Тогда + + Результат = НСтр("ru = 'Включено хранение файлов в базе данных и внешних местах хранения, но тома хранения файлов еще не настроены.'"); + + ИначеЕсли ОбрабатываемыйСпособХраненияФайлов = "ВоВстроенномХранилищеДвоичныхДанных" Тогда + + Результат = НСтр("ru = 'Включено хранение файлов во встроенном хранилище двоичных данных, но том хранения файлов еще не настроен.'"); + + ИначеЕсли ОбрабатываемыйСпособХраненияФайлов = "ВоВнешнемХранилищеДвоичныхДанных" Тогда + + Результат = НСтр("ru = 'Включено хранение файлов во внешнем хранилище двоичных данных, но том хранения файлов еще не настроен.'"); + + КонецЕсли; + + Если Не ПустаяСтрока(Результат) Тогда + + ШаблонСообщения = НСтр("ru = '%1 + |Добавляемые файлы будут сохраняться в информационной базе до тех пор, пока не будет настроен хотя бы один том хранения файлов.'"); + + Результат = СтроковыеФункцииКлиентСервер.ПодставитьПараметрыВСтроку(ШаблонСообщения, Результат); + + КонецЕсли; + + Возврат Результат; + +КонецФункции + +&НаСервереБезКонтекста +Процедура ИзменитьСоставХранимыхДанных(СпособХраненияФайлов) + + АтрибутыДляНастройкиСоставаХранимыхДанных = РаботаСФайловымАрхивомСервер.ИменаРеквизитовХраненияФайловПоСпособуХранения(СпособХраненияФайлов); + + Если НужноИзменитьСоставХранимыхДанных(СпособХраненияФайлов, АтрибутыДляНастройкиСоставаХранимыхДанных) Тогда + РаботаСХранилищамиДвоичныхДанныхСервер.ВыполнитьНастройкуСоставаХранимыхДанныхДляРеквизитов(АтрибутыДляНастройкиСоставаХранимыхДанных); + КонецЕсли; + +КонецПроцедуры + +&НаСервереБезКонтекста +Функция НужноИзменитьСоставХранимыхДанных(СпособХраненияФайлов, РеквизитыДляХраненияФайлов) + + Если РаботаСХранилищамиДвоичныхДанныхСервер.ХранилищаДвоичныхДанныхОтсутствуют() Тогда + Возврат Ложь; + КонецЕсли; + + Для Каждого ИмяРеквизитаХраненияФайлов Из РеквизитыДляХраненияФайлов Цикл + + Если РаботаСХранилищамиДвоичныхДанныхСервер.НужноВыполнитьНастройкуСоставаХранимыхДанныхДляРеквизита(ИмяРеквизитаХраненияФайлов, СпособХраненияФайлов) Тогда + Возврат Истина; + КонецЕсли; + + КонецЦикла; + + Возврат Ложь; + +КонецФункции + +&НаСервере +Процедура УстановитьДоступностьНастроекУправленияФайловымАрхивом() + + Элементы.НастройкаРаботыСФайловымАрхивом .Доступность = ИспользоватьФайловыйАрхив; + Элементы.СправочникТомаХраненияФайловАрхивные .Доступность = ИспользоватьФайловыйАрхив; + Элементы.ТекстИнформированияПользователяОНедоступностиФайлаВАрхиве .Доступность = ИспользоватьФайловыйАрхив; + +КонецПроцедуры + +&НаСервереБезКонтекста +Процедура ПриИзмененииИспользованияФайловогоАрхива(ИспользоватьФайловыйАрхив) + + ПараметрыЗадания = Новый Структура; + ПараметрыЗадания.Вставить("Метаданные", Метаданные.РегламентныеЗадания.ПереносФайловМеждуОперационнымХранилищемИФайловымАрхивом); + Если Не ОбщегоНазначения.РазделениеВключено() Тогда + ПараметрыЗадания.Вставить("ИмяМетода", Метаданные.РегламентныеЗадания.ПереносФайловМеждуОперационнымХранилищемИФайловымАрхивом.ИмяМетода); + КонецЕсли; + + УстановитьПривилегированныйРежим(Истина); + + СписокЗаданий = РегламентныеЗаданияСервер.НайтиЗадания(ПараметрыЗадания); + ИмяПараметра = "Использование"; + Если СписокЗаданий.Количество() = 0 Тогда + ПараметрыЗадания.Вставить(ИмяПараметра, ИспользоватьФайловыйАрхив); + РегламентныеЗаданияСервер.ДобавитьЗадание(ПараметрыЗадания); + Иначе + ПараметрыЗадания = Новый Структура(ИмяПараметра, ИспользоватьФайловыйАрхив); + Для Каждого Задание Из СписокЗаданий Цикл + РегламентныеЗаданияСервер.ИзменитьЗадание(Задание, ПараметрыЗадания); + КонецЦикла; + КонецЕсли; +КонецПроцедуры + #КонецОбласти \ No newline at end of file diff --git a/SSL/src/DataProcessors/ПанельАдминистрированияБСП/Forms/НастройкиРаботыСФайламиВМоделиСервиса/Module.bsl b/SSL/src/DataProcessors/ПанельАдминистрированияБСП/Forms/НастройкиРаботыСФайламиВМоделиСервиса/Module.bsl index 64d172cd1..fa3c0b85e 100644 --- a/SSL/src/DataProcessors/ПанельАдминистрированияБСП/Forms/НастройкиРаботыСФайламиВМоделиСервиса/Module.bsl +++ b/SSL/src/DataProcessors/ПанельАдминистрированияБСП/Forms/НастройкиРаботыСФайламиВМоделиСервиса/Module.bsl @@ -1,5 +1,5 @@ /////////////////////////////////////////////////////////////////////////////////////////////////////// -// Copyright (c) 2024, ООО 1С-Софт +// Copyright (c) 2025, ООО 1С-Софт // Все права защищены. Эта программа и сопроводительные материалы предоставляются // в соответствии с условиями лицензии Attribution 4.0 International (CC BY 4.0) // Текст лицензии доступен по ссылке: diff --git a/SSL/src/DataProcessors/ПанельАдминистрированияБСП/Forms/Обслуживание/Module.bsl b/SSL/src/DataProcessors/ПанельАдминистрированияБСП/Forms/Обслуживание/Module.bsl index 642872275..fff0d4762 100644 --- a/SSL/src/DataProcessors/ПанельАдминистрированияБСП/Forms/Обслуживание/Module.bsl +++ b/SSL/src/DataProcessors/ПанельАдминистрированияБСП/Forms/Обслуживание/Module.bsl @@ -1,5 +1,5 @@ /////////////////////////////////////////////////////////////////////////////////////////////////////// -// Copyright (c) 2024, ООО 1С-Софт +// Copyright (c) 2025, ООО 1С-Софт // Все права защищены. Эта программа и сопроводительные материалы предоставляются // в соответствии с условиями лицензии Attribution 4.0 International (CC BY 4.0) // Текст лицензии доступен по ссылке: diff --git a/SSL/src/DataProcessors/ПанельАдминистрированияБСП/Forms/ОбщиеНастройки/Form.form b/SSL/src/DataProcessors/ПанельАдминистрированияБСП/Forms/ОбщиеНастройки/Form.form index ef0e16c15..2dc792b04 100644 --- a/SSL/src/DataProcessors/ПанельАдминистрированияБСП/Forms/ОбщиеНастройки/Form.form +++ b/SSL/src/DataProcessors/ПанельАдминистрированияБСП/Forms/ОбщиеНастройки/Form.form @@ -2164,7 +2164,7 @@ 2225 <key>ru</key> - <value>Усовершенствовать подписи до выбранного типа</value> + <value>Усовершенствовать подписи до выбранного типа.</value> Label true @@ -2970,6 +2970,267 @@ Auto + + ГруппаМобильнаяПодпись + 2294 + + ГруппаНастройкиМобильнойПодписи + 2302 + + ИспользоватьГосключ + 2296 + + <key>ru</key> + <value>Госключ</value> + + true + true + + true + + + НаборКонстант.ИспользоватьГосключ + + Right + ShowBottom + + OnChange + Подключаемый_ПриИзмененииРеквизита + + + ИспользоватьГосключРасширеннаяПодсказка + 2298 + + <key>ru</key> + <value>Отправлять документы на подписание в мобильное приложение Госключ (Госуслуги).</value> + + Label + 43 + true + + Left + + + + ИспользоватьГосключКонтекстноеМеню + 2297 + true + + CheckBoxField + Enter + true + Left + true + + + + ИспользоватьСервисМобильнойПодписи + 2299 + + <key>ru</key> + <value>Моя подпись (ФНС)</value> + + true + true + + true + + + НаборКонстант.ИспользоватьСервисМобильнойПодписи + + Right + ShowBottom + + OnChange + Подключаемый_ПриИзмененииРеквизита + + + ИспользоватьСервисМобильнойПодписиРасширеннаяПодсказка + 2301 + + <key>ru</key> + <value>Отправлять документы на подпись в мобильное приложение Моя подпись (ФНС).</value> + + Label + 43 + true + + Left + + + + ИспользоватьСервисМобильнойПодписиКонтекстноеМеню + 2300 + true + + CheckBoxField + Enter + true + Left + true + + + true + true + + true + + + <key>ru</key> + <value>Настройки мобильной подписи</value> + + + ГруппаНастройкиМобильнойПодписиРасширеннаяПодсказка + 2303 + Label + true + true + + Left + + + UsualGroup + + HorizontalIfPossible + Auto + WeakSeparation + true + true + Auto + Auto + + + + ГруппаУчетныеЗаписиМобильнойПодписи + 2304 + + НастройкиОтправкиВГосключ + 2306 + + <key>ru</key> + <value>Настройки отправки в Госключ</value> + + true + true + + true + + + НастройкиОтправкиВГосключРасширеннаяПодсказка + 2307 + + <key>ru</key> + <value>Настройки доступа сотрудников организаций для отправки документов на подписание в Госключ.</value> + + Label + 43 + true + + Left + + + Hyperlink + Catalog.НастройкиОтправкиВГосключ.Command.НастройкиОтправкиВГосключ + Normal + Auto + true + true + UserCmds + ShowBottom + Auto + + + ПодписантыСервисаМобильнойПодписи + 2308 + true + true + + true + + + ПодписантыСервисаМобильнойПодписиРасширеннаяПодсказка + 2309 + + <key>ru</key> + <value>Настройки получателей документов на подписание в мобильном приложении.</value> + + Label + 43 + true + + Left + + + Hyperlink + Catalog.ПодписантыСервисаМобильнойПодписи.Command.ПодписантыСервисаМобильнойПодписи + Normal + Auto + true + true + UserCmds + ShowBottom + Auto + + true + true + + true + + + <key>ru</key> + <value>Учетные записи мобильной подписи</value> + + + ГруппаУчетныеЗаписиМобильнойПодписиРасширеннаяПодсказка + 2305 + Label + true + true + + Left + + + UsualGroup + + HorizontalIfPossible + Auto + WeakSeparation + true + true + Auto + Auto + + + true + true + + true + + + <key>ru</key> + <value>Мобильная подпись</value> + + + ГруппаМобильнаяПодписьРасширеннаяПодсказка + 2295 + Label + true + true + + Left + + + UsualGroup + + Vertical + Auto + WeakSeparation + true + true + Auto + Auto + + ГруппаОблачнаяПодпись 2113 @@ -4058,12 +4319,18 @@ НаборКонстант.ИзвлекатьТекстыФайловНаСервере + + НаборКонстант.ИспользоватьГосключ + НаборКонстант.ИспользоватьПолнотекстовыйПоиск НаборКонстант.ИспользоватьРазделениеПоОбластямДанных + + НаборКонстант.ИспользоватьСервисМобильнойПодписи +
                  true
                  diff --git a/SSL/src/DataProcessors/ПанельАдминистрированияБСП/Forms/ОбщиеНастройки/Module.bsl b/SSL/src/DataProcessors/ПанельАдминистрированияБСП/Forms/ОбщиеНастройки/Module.bsl index 373500b79..8c9e9d37c 100644 --- a/SSL/src/DataProcessors/ПанельАдминистрированияБСП/Forms/ОбщиеНастройки/Module.bsl +++ b/SSL/src/DataProcessors/ПанельАдминистрированияБСП/Forms/ОбщиеНастройки/Module.bsl @@ -1,5 +1,5 @@ /////////////////////////////////////////////////////////////////////////////////////////////////////// -// Copyright (c) 2024, ООО 1С-Софт +// Copyright (c) 2025, ООО 1С-Софт // Все права защищены. Эта программа и сопроводительные материалы предоставляются // в соответствии с условиями лицензии Attribution 4.0 International (CC BY 4.0) // Текст лицензии доступен по ссылке: @@ -37,6 +37,12 @@ КонецЕсли; Если ОбщегоНазначения.ПодсистемаСуществует("СтандартныеПодсистемы.ЭлектроннаяПодпись") Тогда + + Если ОбщегоНазначения.ПодсистемаСуществует("СтандартныеПодсистемы.СервисМобильнойПодписи") Тогда + Элементы.ГруппаМобильнаяПодпись.Видимость = Истина; + Иначе + Элементы.ГруппаМобильнаяПодпись.Видимость = Ложь; + КонецЕсли; Элементы.СоздаватьЭлектронныеПодписиНаСервере.Видимость = Не ОбщегоНазначения.РазделениеВключено(); @@ -426,7 +432,6 @@ КонецПроцедуры - #КонецОбласти #Область ОбработчикиКомандФормы diff --git a/SSL/src/DataProcessors/ПанельАдминистрированияБСП/Forms/Органайзер/Form.form b/SSL/src/DataProcessors/ПанельАдминистрированияБСП/Forms/Органайзер/Form.form index 7ed3c3e05..99ba7f74d 100644 --- a/SSL/src/DataProcessors/ПанельАдминистрированияБСП/Forms/Органайзер/Form.form +++ b/SSL/src/DataProcessors/ПанельАдминистрированияБСП/Forms/Органайзер/Form.form @@ -613,38 +613,135 @@ Группа6 1591 - ГруппаОткрытьНастройкиСистемнойУчетнойЗаписиЭП - 1303 - - ОткрытьНастройкиСистемнойУчетнойЗаписиЭП - 1302 + ГруппаНастройкиУчетнойЗаписи + 1812 + + ГруппаОткрытьНастройкиСистемнойУчетнойЗаписиЭП + 1303 + + ОткрытьНастройкиСистемнойУчетнойЗаписиЭП + 1302 + true + true + + true + + + ОткрытьНастройкиСистемнойУчетнойЗаписиЭПРасширеннаяПодсказка + 1659 + + <key>ru</key> + <value>Электронная почта для рассылки уведомлений из приложения.</value> + + Label + true + + Left + + + Hyperlink + CommonCommand.НастройкаСистемнойУчетнойЗаписиЭлектроннойПочты + Normal + Auto + true + true + UserCmds + ShowBottom + Auto + true true true + + <key>ru</key> + <value>Открыть настройки системной учетной записи ЭП</value> + + 43 + false - ОткрытьНастройкиСистемнойУчетнойЗаписиЭПРасширеннаяПодсказка - 1659 - - <key>ru</key> - <value>Электронная почта для рассылки уведомлений из приложения.</value> - + ГруппаОткрытьНастройкиСистемнойУчетнойЗаписиЭПРасширеннаяПодсказка + 1658 Label + true true Left - Hyperlink - CommonCommand.НастройкаСистемнойУчетнойЗаписиЭлектроннойПочты - Normal - Auto - true - true - UserCmds - ShowBottom - Auto + UsualGroup + + Vertical + true + true + Auto + Auto + + + + ГруппаОткрытьУчетныеЗаписиЭлектроннойПочты + 1307 + + ОткрытьУчетныеЗаписиЭлектроннойПочты + 1306 + true + true + + true + + + ОткрытьУчетныеЗаписиЭлектроннойПочтыРасширеннаяПодсказка + 1662 + + <key>ru</key> + <value>Настройка учетных записей электронной почты.</value> + + Label + true + + Left + + + Hyperlink + Catalog.УчетныеЗаписиЭлектроннойПочты.StandardCommand.OpenList + Normal + Auto + true + true + UserCmds + ShowBottom + Auto + + true + true + + true + + + <key>ru</key> + <value>Открыть учетные записи электронной почты</value> + + 43 + false + + ГруппаОткрытьУчетныеЗаписиЭлектроннойПочтыРасширеннаяПодсказка + 1661 + Label + true + true + + Left + + + UsualGroup + + Vertical + true + true + Auto + Auto + true true @@ -653,13 +750,11 @@ <key>ru</key> - <value>Открыть настройки системной учетной записи ЭП</value> + <value>Настройки учетной записи</value> - 43 - false - ГруппаОткрытьНастройкиСистемнойУчетнойЗаписиЭПРасширеннаяПодсказка - 1658 + ГруппаНастройкиУчетнойЗаписиРасширеннаяПодсказка + 1813 Label true true @@ -669,7 +764,8 @@ UsualGroup - Vertical + AlwaysHorizontal + Auto true true Auto @@ -677,38 +773,143 @@ - ГруппаОткрытьУчетныеЗаписиЭлектроннойПочты - 1307 - - ОткрытьУчетныеЗаписиЭлектроннойПочты - 1306 + ГруппаНастройкиПриложения + 1814 + + ГруппаЗарегистрироватьПриложениеВOAuthСервисе + 1816 + + ЗарегистрироватьПриложениеВOAuthСервисе + 1818 + + <key>ru</key> + <value>Зарегистрировать приложение в OAuth-сервисе</value> + + true + true + + true + + + ЗарегистрироватьПриложениеВOAuthСервисеРасширеннаяПодсказка + 1819 + + <key>ru</key> + <value>Приложение для авторизации по протоколу OAuth 2.0.</value> + + Label + true + + Left + + + Hyperlink + CommonCommand.ЗарегистрироватьПриложениеВOAuthСервисе + Normal + Auto + true + true + UserCmds + ShowBottom + Auto + true true true + + <key>ru</key> + <value>Зарегистрировать приложение в OAuth-сервисе</value> + + 43 + false - ОткрытьУчетныеЗаписиЭлектроннойПочтыРасширеннаяПодсказка - 1662 - - <key>ru</key> - <value>Настройка учетных записей электронной почты.</value> - + ГруппаЗарегистрироватьПриложениеВOAuthСервисеРасширеннаяПодсказка + 1817 Label + true true Left - Hyperlink - Catalog.УчетныеЗаписиЭлектроннойПочты.StandardCommand.OpenList - Normal - Auto - true - true - UserCmds - ShowBottom - Auto + UsualGroup + + Vertical + true + true + Auto + Auto + + + + ГруппаНастройкиАвторизацииИнтернетСервисов + 1820 + + НастройкиАвторизацииИнтернетСервисов + 1822 + + <key>ru</key> + <value>Настройки авторизации Интернет-сервисов</value> + + true + true + + true + + + НастройкиАвторизацииИнтернетСервисовРасширеннаяПодсказка + 1823 + + <key>ru</key> + <value>Настройка приложений для работы по протоколу OAuth 2.0.</value> + + Label + true + + Left + + + Hyperlink + Catalog.НастройкиАвторизацииИнтернетСервисов.StandardCommand.OpenList + Normal + Auto + true + true + UserCmds + ShowBottom + Auto + + true + true + + true + + + <key>ru</key> + <value>Настройки авторизации Интернет-сервисов</value> + + 43 + false + + ГруппаНастройкиАвторизацииИнтернетСервисовРасширеннаяПодсказка + 1821 + Label + true + true + + Left + + + UsualGroup + + Vertical + true + true + Auto + Auto + true true @@ -717,13 +918,11 @@ <key>ru</key> - <value>Открыть учетные записи электронной почты</value> + <value>Настройки приложения</value> - 43 - false - ГруппаОткрытьУчетныеЗаписиЭлектроннойПочтыРасширеннаяПодсказка - 1661 + ГруппаНастройкиПриложенияРасширеннаяПодсказка + 1815 Label true true @@ -733,7 +932,8 @@ UsualGroup - Vertical + AlwaysHorizontal + Auto true true Auto @@ -761,7 +961,7 @@ UsualGroup - HorizontalIfPossible + Vertical NormalSeparation true true diff --git a/SSL/src/DataProcessors/ПанельАдминистрированияБСП/Forms/Органайзер/Module.bsl b/SSL/src/DataProcessors/ПанельАдминистрированияБСП/Forms/Органайзер/Module.bsl index 86a6262b8..3af8859d2 100644 --- a/SSL/src/DataProcessors/ПанельАдминистрированияБСП/Forms/Органайзер/Module.bsl +++ b/SSL/src/DataProcessors/ПанельАдминистрированияБСП/Forms/Органайзер/Module.bsl @@ -1,5 +1,5 @@ /////////////////////////////////////////////////////////////////////////////////////////////////////// -// Copyright (c) 2024, ООО 1С-Софт +// Copyright (c) 2025, ООО 1С-Софт // Все права защищены. Эта программа и сопроводительные материалы предоставляются // в соответствии с условиями лицензии Attribution 4.0 International (CC BY 4.0) // Текст лицензии доступен по ссылке: diff --git a/SSL/src/DataProcessors/ПанельАдминистрированияБСП/Forms/ПечатныеФормыОтчетыИОбработки/Module.bsl b/SSL/src/DataProcessors/ПанельАдминистрированияБСП/Forms/ПечатныеФормыОтчетыИОбработки/Module.bsl index c350f498d..04cc55f25 100644 --- a/SSL/src/DataProcessors/ПанельАдминистрированияБСП/Forms/ПечатныеФормыОтчетыИОбработки/Module.bsl +++ b/SSL/src/DataProcessors/ПанельАдминистрированияБСП/Forms/ПечатныеФормыОтчетыИОбработки/Module.bsl @@ -1,5 +1,5 @@ /////////////////////////////////////////////////////////////////////////////////////////////////////// -// Copyright (c) 2024, ООО 1С-Софт +// Copyright (c) 2025, ООО 1С-Софт // Все права защищены. Эта программа и сопроводительные материалы предоставляются // в соответствии с условиями лицензии Attribution 4.0 International (CC BY 4.0) // Текст лицензии доступен по ссылке: diff --git a/SSL/src/DataProcessors/ПанельАдминистрированияБСП/Forms/СинхронизацияДанных/Module.bsl b/SSL/src/DataProcessors/ПанельАдминистрированияБСП/Forms/СинхронизацияДанных/Module.bsl index 11f677da3..6b35f9f90 100644 --- a/SSL/src/DataProcessors/ПанельАдминистрированияБСП/Forms/СинхронизацияДанных/Module.bsl +++ b/SSL/src/DataProcessors/ПанельАдминистрированияБСП/Forms/СинхронизацияДанных/Module.bsl @@ -1,5 +1,5 @@ /////////////////////////////////////////////////////////////////////////////////////////////////////// -// Copyright (c) 2024, ООО 1С-Софт +// Copyright (c) 2025, ООО 1С-Софт // Все права защищены. Эта программа и сопроводительные материалы предоставляются // в соответствии с условиями лицензии Attribution 4.0 International (CC BY 4.0) // Текст лицензии доступен по ссылке: diff --git a/SSL/src/DataProcessors/ПанельАдминистрированияБСП/Forms/Форма/Module.bsl b/SSL/src/DataProcessors/ПанельАдминистрированияБСП/Forms/Форма/Module.bsl index 63c616ef6..9ddfbeacf 100644 --- a/SSL/src/DataProcessors/ПанельАдминистрированияБСП/Forms/Форма/Module.bsl +++ b/SSL/src/DataProcessors/ПанельАдминистрированияБСП/Forms/Форма/Module.bsl @@ -1,5 +1,5 @@ /////////////////////////////////////////////////////////////////////////////////////////////////////// -// Copyright (c) 2024, ООО 1С-Софт +// Copyright (c) 2025, ООО 1С-Софт // Все права защищены. Эта программа и сопроводительные материалы предоставляются // в соответствии с условиями лицензии Attribution 4.0 International (CC BY 4.0) // Текст лицензии доступен по ссылке: diff --git a/SSL/src/DataProcessors/ПанельАдминистрированияБСП/ManagerModule.bsl b/SSL/src/DataProcessors/ПанельАдминистрированияБСП/ManagerModule.bsl index 66e5e91b4..7a07a309e 100644 --- a/SSL/src/DataProcessors/ПанельАдминистрированияБСП/ManagerModule.bsl +++ b/SSL/src/DataProcessors/ПанельАдминистрированияБСП/ManagerModule.bsl @@ -1,5 +1,5 @@ /////////////////////////////////////////////////////////////////////////////////////////////////////// -// Copyright (c) 2024, ООО 1С-Софт +// Copyright (c) 2025, ООО 1С-Софт // Все права защищены. Эта программа и сопроводительные материалы предоставляются // в соответствии с условиями лицензии Attribution 4.0 International (CC BY 4.0) // Текст лицензии доступен по ссылке: diff --git a/SSL/src/DataProcessors/ПанельАдминистрированияБСПВМоделиСервиса/Forms/СинхронизацияДанныхДляАдминистратораСервиса/Help/ru.html b/SSL/src/DataProcessors/ПанельАдминистрированияБСПВМоделиСервиса/Forms/СинхронизацияДанныхДляАдминистратораСервиса/Help/ru.html index a9b1cc37b..eb39f5500 100644 --- a/SSL/src/DataProcessors/ПанельАдминистрированияБСПВМоделиСервиса/Forms/СинхронизацияДанныхДляАдминистратораСервиса/Help/ru.html +++ b/SSL/src/DataProcessors/ПанельАдминистрированияБСПВМоделиСервиса/Forms/СинхронизацияДанныхДляАдминистратораСервиса/Help/ru.html @@ -5,13 +5,13 @@ TD { VERTICAL-ALIGN: top } -

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

                  +

                  В данной панели осуществляется настройка синхронизации данных для приложения.

                • Каталог временных файлов Windows
                • Путь к единому каталогу временных файлов всех серверов кластера, который будет использоваться для серверов, работающих под управлением ОС Windows.
                • Каталог временных файлов Linux
                • Путь к единому каталогу временных файлов всех серверов кластера, который будет использоваться для серверов, работающих под управлением ОС Linux.
                  -

                  Каталоги временных файлов можно не заполнять, когда в кластере 1С:Предприятия работает только один сервер или программа работает в файловом режиме.
                  Если все сервера кластера работают под управлением операционных систем одного семейства (Windows/Linux), то второе поле заполнять не обязательно.

                  +

                  Каталоги временных файлов можно не заполнять, когда в кластере 1С:Предприятия работает только один сервер или приложение работает в файловом режиме.
                  Если все сервера кластера работают под управлением операционных систем одного семейства (Windows/Linux), то второе поле заполнять не обязательно.

                  Каталог должен быть доступен на чтение и запись для всех серверов кластера. В том числе - для всех пользователей операционных систем, от имени которых запускаются сервера 1С:Предприятия. Так же UNC путь к нему должен быть одинаковым для всех серверов одного семейства - для этого каталог необходимо подключать к серверам под одним именем.

                  В поле Каталог временных файлов Linux можно указать только локальный путь, например /home/path.

                  Чтобы использовать UNC путь, нужно сделать на него ссылку. Для этого под правами администратора (root) сделайте следующее:

                  diff --git a/SSL/src/DataProcessors/ПанельАдминистрированияБСПВМоделиСервиса/Forms/СинхронизацияДанныхДляАдминистратораСервиса/Module.bsl b/SSL/src/DataProcessors/ПанельАдминистрированияБСПВМоделиСервиса/Forms/СинхронизацияДанныхДляАдминистратораСервиса/Module.bsl index 5e51994f6..430aaa784 100644 --- a/SSL/src/DataProcessors/ПанельАдминистрированияБСПВМоделиСервиса/Forms/СинхронизацияДанныхДляАдминистратораСервиса/Module.bsl +++ b/SSL/src/DataProcessors/ПанельАдминистрированияБСПВМоделиСервиса/Forms/СинхронизацияДанныхДляАдминистратораСервиса/Module.bsl @@ -1,5 +1,5 @@ /////////////////////////////////////////////////////////////////////////////////////////////////////// -// Copyright (c) 2024, ООО 1С-Софт +// Copyright (c) 2025, ООО 1С-Софт // Все права защищены. Эта программа и сопроводительные материалы предоставляются // в соответствии с условиями лицензии Attribution 4.0 International (CC BY 4.0) // Текст лицензии доступен по ссылке: @@ -156,8 +156,7 @@ #Область СлужебныеПроцедурыИФункции -//////////////////////////////////////////////////////////////////////////////// -// Клиент +#Область Клиент &НаКлиенте Процедура Подключаемый_ПриИзмененииРеквизита(Элемент, НеобходимоОбновлятьИнтерфейс = Истина) @@ -186,8 +185,9 @@ КонецПроцедуры -//////////////////////////////////////////////////////////////////////////////// -// Вызов сервера +#КонецОбласти + +#Область ВызовСервера &НаСервере Функция ПриИзмененииРеквизитаСервер(ИмяЭлемента) @@ -200,8 +200,9 @@ КонецФункции -//////////////////////////////////////////////////////////////////////////////// -// Сервер +#КонецОбласти + +#Область Сервер &НаСервере Функция СохранитьЗначениеРеквизита(РеквизитПутьКДанным) @@ -243,3 +244,5 @@ #КонецОбласти + +#КонецОбласти \ No newline at end of file diff --git a/SSL/src/DataProcessors/ПереносФайлов/Commands/ПереносФайлов/CommandModule.bsl b/SSL/src/DataProcessors/ПереносФайлов/Commands/ПереносФайлов/CommandModule.bsl index 06a64adab..3996d7e54 100644 --- a/SSL/src/DataProcessors/ПереносФайлов/Commands/ПереносФайлов/CommandModule.bsl +++ b/SSL/src/DataProcessors/ПереносФайлов/Commands/ПереносФайлов/CommandModule.bsl @@ -1,5 +1,5 @@ /////////////////////////////////////////////////////////////////////////////////////////////////////// -// Copyright (c) 2024, ООО 1С-Софт +// Copyright (c) 2025, ООО 1С-Софт // Все права защищены. Эта программа и сопроводительные материалы предоставляются // в соответствии с условиями лицензии Attribution 4.0 International (CC BY 4.0) // Текст лицензии доступен по ссылке: diff --git a/SSL/src/DataProcessors/ПереносФайлов/Forms/Форма/Form.form b/SSL/src/DataProcessors/ПереносФайлов/Forms/Форма/Form.form index d80ac6c59..55d746910 100644 --- a/SSL/src/DataProcessors/ПереносФайлов/Forms/Форма/Form.form +++ b/SSL/src/DataProcessors/ПереносФайлов/Forms/Форма/Form.form @@ -55,7 +55,7 @@ ru - Из информационной базы в тома + Из базы данных в тома ПеренестиВТома @@ -64,7 +64,7 @@ ru - Из томов в информационную базу + Из томов в базу данных ПеренестиВБазу @@ -164,6 +164,22 @@ true true true + + Отбор.СпособХраненияФайлов + + + Enum.СпособыХраненияФайлов.EnumValue.ВСетевыхКаталогах + + + + + Отбор.ВидТомаХраненияФайлов + + + Enum.ВидыХраненияФайлов.EnumValue.ОперационноеХранение + + + Normal @@ -282,6 +298,22 @@ true true true + + Отбор.СпособХраненияФайлов + + + Enum.СпособыХраненияФайлов.EnumValue.ВСетевыхКаталогах + + + + + Отбор.ВидТомаХраненияФайлов + + + Enum.ВидыХраненияФайлов.EnumValue.ОперационноеХранение + + + Normal diff --git a/SSL/src/DataProcessors/ПереносФайлов/Forms/Форма/Module.bsl b/SSL/src/DataProcessors/ПереносФайлов/Forms/Форма/Module.bsl index 24d7319ec..52da2e0e2 100644 --- a/SSL/src/DataProcessors/ПереносФайлов/Forms/Форма/Module.bsl +++ b/SSL/src/DataProcessors/ПереносФайлов/Forms/Форма/Module.bsl @@ -1,5 +1,5 @@ /////////////////////////////////////////////////////////////////////////////////////////////////////// -// Copyright (c) 2024, ООО 1С-Софт +// Copyright (c) 2025, ООО 1С-Софт // Все права защищены. Эта программа и сопроводительные материалы предоставляются // в соответствии с условиями лицензии Attribution 4.0 International (CC BY 4.0) // Текст лицензии доступен по ссылке: diff --git a/SSL/src/DataProcessors/ПереносФайлов/Forms/ФормаОтчета/Module.bsl b/SSL/src/DataProcessors/ПереносФайлов/Forms/ФормаОтчета/Module.bsl index d778affee..020bcc3ae 100644 --- a/SSL/src/DataProcessors/ПереносФайлов/Forms/ФормаОтчета/Module.bsl +++ b/SSL/src/DataProcessors/ПереносФайлов/Forms/ФормаОтчета/Module.bsl @@ -1,5 +1,5 @@ /////////////////////////////////////////////////////////////////////////////////////////////////////// -// Copyright (c) 2024, ООО 1С-Софт +// Copyright (c) 2025, ООО 1С-Софт // Все права защищены. Эта программа и сопроводительные материалы предоставляются // в соответствии с условиями лицензии Attribution 4.0 International (CC BY 4.0) // Текст лицензии доступен по ссылке: diff --git a/SSL/src/DataProcessors/ПереносФайлов/ManagerModule.bsl b/SSL/src/DataProcessors/ПереносФайлов/ManagerModule.bsl index f0a037403..f78c4910f 100644 --- a/SSL/src/DataProcessors/ПереносФайлов/ManagerModule.bsl +++ b/SSL/src/DataProcessors/ПереносФайлов/ManagerModule.bsl @@ -1,5 +1,5 @@ /////////////////////////////////////////////////////////////////////////////////////////////////////// -// Copyright (c) 2024, ООО 1С-Софт +// Copyright (c) 2025, ООО 1С-Софт // Все права защищены. Эта программа и сопроводительные материалы предоставляются // в соответствии с условиями лицензии Attribution 4.0 International (CC BY 4.0) // Текст лицензии доступен по ссылке: @@ -189,16 +189,21 @@ КонецПроцедуры Процедура ПеренестиВБазу(ФайлОбъект, СвойстваТома, Параметры) + ДанныеФайла = РаботаСФайламиВТомахСлужебный.ДанныеФайла(ФайлОбъект.Ссылка); - РаботаСФайламиСлужебный.ЗаписатьФайлВИнформационнуюБазу(ФайлОбъект.Ссылка, ДанныеФайла); - + ПутьКФайлу = РаботаСФайламиВТомахСлужебный.ПолноеИмяФайлаВТоме( Новый Структура("Том, ПутьКФайлу", ФайлОбъект.Том, ФайлОбъект.ПутьКФайлу)); - + ФайлОбъект.Том = Неопределено; ФайлОбъект.ПутьКФайлу = ""; ФайлОбъект.ТипХраненияФайла = Перечисления.ТипыХраненияФайлов.ВИнформационнойБазе; - ФайлОбъект.Записать(); + ФайлОбъект.Записать(); + + ПараметрыЗаписиВИБ = РаботаСФайловымАрхивомСервер.ЗаполненныеПараметрыЗаписиВИнформационнуюБазу(ФайлОбъект); + + РаботаСФайламиСлужебный.ЗаписатьФайлВИнформационнуюБазу(ФайлОбъект.Ссылка, ДанныеФайла, ПараметрыЗаписиВИБ); + РаботаСФайламиВТомахСлужебный.УдалитьФайл(ПутьКФайлу); КонецПроцедуры @@ -213,7 +218,7 @@ // * ПодробноеПредставлениеОшибки - Строка // * Версия - ОпределяемыйТип.ПрисоединенныйФайл // -Функция ОшибкаПереноса(ФайлСсылка, ИнформацияОбОшибке) +Функция ОшибкаПереноса(ФайлСсылка, ИнформацияОбОшибке) Экспорт ОписаниеОшибки = Новый Структура; ОписаниеОшибки.Вставить("ИмяФайла",""); diff --git a/SSL/src/DataProcessors/ПодключениеОбсуждений/Commands/НастройкиСообщенийИзДругихПриложений/CommandModule.bsl b/SSL/src/DataProcessors/ПодключениеОбсуждений/Commands/НастройкиСообщенийИзДругихПриложений/CommandModule.bsl index cff2ceee5..3521c2d38 100644 --- a/SSL/src/DataProcessors/ПодключениеОбсуждений/Commands/НастройкиСообщенийИзДругихПриложений/CommandModule.bsl +++ b/SSL/src/DataProcessors/ПодключениеОбсуждений/Commands/НастройкиСообщенийИзДругихПриложений/CommandModule.bsl @@ -1,5 +1,5 @@ /////////////////////////////////////////////////////////////////////////////////////////////////////// -// Copyright (c) 2024, ООО 1С-Софт +// Copyright (c) 2025, ООО 1С-Софт // Все права защищены. Эта программа и сопроводительные материалы предоставляются // в соответствии с условиями лицензии Attribution 4.0 International (CC BY 4.0) // Текст лицензии доступен по ссылке: diff --git a/SSL/src/DataProcessors/ПодключениеОбсуждений/Commands/ОтключениеОбсуждений/CommandModule.bsl b/SSL/src/DataProcessors/ПодключениеОбсуждений/Commands/ОтключениеОбсуждений/CommandModule.bsl index 82812f3b3..3ece7633d 100644 --- a/SSL/src/DataProcessors/ПодключениеОбсуждений/Commands/ОтключениеОбсуждений/CommandModule.bsl +++ b/SSL/src/DataProcessors/ПодключениеОбсуждений/Commands/ОтключениеОбсуждений/CommandModule.bsl @@ -1,5 +1,5 @@ /////////////////////////////////////////////////////////////////////////////////////////////////////// -// Copyright (c) 2024, ООО 1С-Софт +// Copyright (c) 2025, ООО 1С-Софт // Все права защищены. Эта программа и сопроводительные материалы предоставляются // в соответствии с условиями лицензии Attribution 4.0 International (CC BY 4.0) // Текст лицензии доступен по ссылке: diff --git a/SSL/src/DataProcessors/ПодключениеОбсуждений/Forms/НастройкиСообщенийИзДругихПриложений/Form.form b/SSL/src/DataProcessors/ПодключениеОбсуждений/Forms/НастройкиСообщенийИзДругихПриложений/Form.form index 1ddb76f76..70d32a884 100644 --- a/SSL/src/DataProcessors/ПодключениеОбсуждений/Forms/НастройкиСообщенийИзДругихПриложений/Form.form +++ b/SSL/src/DataProcessors/ПодключениеОбсуждений/Forms/НастройкиСообщенийИзДругихПриложений/Form.form @@ -242,6 +242,39 @@ ПодменюСоздать 29 + + ФормаСоздатьБотаMax + 54 + + <key>ru</key> + <value>Чат Max</value> + + true + true + + true + + + ФормаСоздатьБотаMaxРасширеннаяПодсказка + 55 + Label + true + true + + Left + + + Form.Command.СоздатьБотаMax + Normal + Auto + true + true + UserCmds + + CommonPicture.Max16 + + Auto + ФормаСоздатьБотаTelegram 31 @@ -678,6 +711,24 @@ Auto Auto + + СоздатьБотаMax + + <key>ru</key> + <value>Чат Max</value> + + 7 + + true + + + + СоздатьБотаMax + + + Auto + Auto + diff --git a/SSL/src/DataProcessors/ПодключениеОбсуждений/Forms/НастройкиСообщенийИзДругихПриложений/Help/ru.html b/SSL/src/DataProcessors/ПодключениеОбсуждений/Forms/НастройкиСообщенийИзДругихПриложений/Help/ru.html index 3603f2cd1..0e5ca24d4 100644 --- a/SSL/src/DataProcessors/ПодключениеОбсуждений/Forms/НастройкиСообщенийИзДругихПриложений/Help/ru.html +++ b/SSL/src/DataProcessors/ПодключениеОбсуждений/Forms/НастройкиСообщенийИзДругихПриложений/Help/ru.html @@ -1,39 +1,150 @@ - -

                  Предназначены для организации обсуждений с помощью внешних приложений.

                  -

                  С помощью кнопки Создать выберите и настройте нужный чат.

                  -

                  Чат Telegram

                  -
                  • Перейдите в Telegram.
                  • -
                  • Следуя указаниям приложения создайте бот.
                  • -
                  • Выберите боту Имя и произведите необходимые настройки в Telegram.
                  • -
                  • После успешного создания бота укажите Наименование бота и Токен.
                  • -
                  • С помощью кнопки Подобрать выберите из списка пользователей, которые будут получать и отправлять сообщения в Telegram.

                  Чат Вконтакте

                  -
                  • Перейдите в социальную сеть Вконтакте.
                  • -
                  • Следуя указаниям приложения создайте сообщество (группу).
                  • -
                  • Выберите сообществу Имя и произведите необходимые настройки во Вконтакте.
                  • -
                  • После успешного создания чата заполните поля Наименование, Ключ и Ключ Группу.
                  • -
                  • С помощью кнопки Подобрать выберите из списка пользователей, которые будут получать и отправлять сообщения в приложении.
                  • -
                  • Нажмите кнопку Активировать.

                  Чат WhatsApp

                  -
                  • Предварительно заключите договор с провайдером WhatsApp Business API - компанией "Девино Телеком".
                  • -
                  • После заключения договора получите у менеджера "Девино Телеком" Ключ (token) и Имя канала.
                  • -
                  • После настройки интеграции необходимо передать навигационную ссылку точки подключения менеджеру "Девино Телеком".
                  • -
                  • Заполните поля Наименование, Ключ, Имя канала.
                  • -
                  • Точка подключения заполняется автоматически.
                  • -
                  • С помощью кнопки Подобрать выберите из списка пользователей, которые будут получать и отправлять сообщения от лица аккаунта WhatsApp.

                  Чат на сайте

                  -
                  Чат можно интегрировать с корпоративным сайтом или интернет-магазином, что обеспечит непрерывность коммуникации и автоматизирует общение с посетителями даже в нерабочее время благодаря использованию бота.
                  -
                  • На вкладке Основное заполните поле Наименование.
                  • -
                  • Точка подключения заполняется автоматически после успешной активации.
                  • -
                  • С помощью кнопки Подобрать выберите из списка пользователей, которые будут получать и отправлять сообщения.
                  • -
                  • Настройте (при необходимости) на соответствующей вкладке Параметры отображения, например, внешний вид, расположение окна чата и т.д.
                  • -
                  • Нажмите кнопку Активировать.
                  • -
                  • Обратитесь к техническому специалисту, ответственному за сопровождение сайта, сообщите ему Точку подключения.

                  Интеграция Webhook

                  -
                  Webhook - это механизм, который позволяет различным сервисам и приложениям обмениваться данными в режиме реального времени. Интеграция с Webhook обеспечивает одностороннюю коммуникацию от внешнего приложения в Систему взаимодействия. С помощью интеграции можно создать новые сценарии взаимодействия, например, информировать пользователей о новых заказах через сайт интернет-магазина.
                  -
                  • Заполните Наименование бота в 1С.
                  • -
                  • С помощью кнопки Подобрать выберите из списка пользователей, которые будут получать сообщения.
                  • -
                  • Нажмите кнопку Активировать.
                  • -
                  • Точка подключения заполняется автоматически после успешной активации.
                  • -
                  • Обратитесь к техническому специалисту, ответственному за сопровождение сайта, сообщите ему Точку подключения.

                  -
                  Если все было корректно настроено, должны приходить сообщения из приложений.
                  - \ No newline at end of file + + +

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

                  + +

                  С помощью кнопки Создать выберите и настройте нужный чат. Для каждого типа чата предусмотрены свои параметры подключения.

                  + +

                  Чат Max

                  +
                  • Для получения сообщений из Max необходим бот, с которым будут общаться ваши контакты.
                  • + +
                  • Если у вас в Max еще нет бота, создайте его на платформе Max для партнеров для вашей организации. 
                  • + +
                  • Перед настройкой рекомендуется ознакомиться с инструкциями: + +
                  • + +
                  • Заполните поля настройки чата: + +
                    • Наименование — произвольное название бота в Max для отображения в списке;
                    • + +
                    • Токен — ключ доступа, выданный на платформе Max для партнеров после создания бота.
                    • +
                  • + +
                  • В поле Кто получает и отправляет сообщения от лица бота Max с помощью кнопки Подобрать выберите пользователей приложения, которые будут работать с сообщениями из Max.
                  • + +
                  • После заполнения всех данных нажмите кнопку Активировать для включения интеграции.
                  • +

                  Чат Telegram

                  +
                  • Перейдите в Telegram. Для создания бота напишите пользователю @BotFather и следуйте его инструкциям.
                  • + +
                  • Подробные настройки бота описаны в официальной документации: Боты: информация для разработчиков.
                  • + +
                  • Выберите боту Имя и произведите необходимые настройки в Telegram.
                  • + +
                  • После успешного создания бота укажите Наименование бота и Токен (полученный от @BotFather).
                  • + +
                  • С помощью кнопки Подобрать выберите из списка пользователей, которые будут получать и отправлять сообщения в Telegram.
                  • +

                  Чат Вконтакте

                  +
                  • Перейдите в социальную сеть Вконтакте.
                  • + +
                  • Следуя указаниям приложения, создайте сообщество (группу).
                  • + +
                  • Выберите сообществу Имя и произведите необходимые настройки во Вконтакте (в разделе "Работа с API").
                  • + +
                  • После успешного создания чата заполните поля: + +
                    • Наименование — название чата в программе;
                    • + +
                    • Ключ — ключ доступа сообщества;
                    • + +
                    • Ключ группы — идентификатор группы.
                    • +
                  • + +
                  • С помощью кнопки Подобрать выберите из списка пользователей, которые будут получать и отправлять сообщения в приложении.
                  • + +
                  • Нажмите кнопку Активировать.
                  • +

                  Чат WhatsApp

                  +
                  • Предварительно заключите договор с провайдером WhatsApp Business API — компанией "Девино Телеком".
                  • + +
                  • Подробная инструкция по подключению доступна на официальном сайте: Инструкция по подключению к WhatsApp Business API через провайдера «Девино Телеком».
                  • + +
                  • После заключения договора получите у менеджера "Девино Телеком": + +
                    • Ключ (token);
                    • + +
                    • Имя канала.
                    • +
                  • + +
                  • После настройки интеграции необходимо передать навигационную ссылку точки подключения менеджеру "Девино Телеком".
                  • + +
                  • Заполните поля: + +
                    • Наименование — название чата в программе;
                    • + +
                    • Ключ — полученный токен доступа;
                    • + +
                    • Имя канала — название канала WhatsApp.
                    • +
                  • + +
                  • Точка подключения заполняется автоматически.
                  • + +
                  • С помощью кнопки Подобрать выберите из списка пользователей, которые будут получать и отправлять сообщения от лица аккаунта WhatsApp.
                  • +

                  Чат на сайте

                  +
                  Чат можно интегрировать с корпоративным сайтом или интернет-магазином, что обеспечит непрерывность коммуникации и автоматизирует общение с посетителями даже в нерабочее время благодаря использованию бота. Подробная документация доступна на ИТС: Руководство разработчика. Система взаимодействия.
                  +
                  • На вкладке Основное заполните поле Наименование.
                  • + +
                  • Точка подключения заполняется автоматически после успешной активации.
                  • + +
                  • С помощью кнопки Подобрать выберите из списка пользователей, которые будут получать и отправлять сообщения.
                  • + +
                  • Настройте (при необходимости) на соответствующей вкладке Параметры отображения, например, внешний вид, расположение окна чата и т.д.
                  • + +
                  • Нажмите кнопку Активировать.
                  • + +
                  • Обратитесь к техническому специалисту, ответственному за сопровождение сайта, сообщите ему Точку подключения.
                  • +

                  Интеграция Webhook

                  +
                  Webhook — это механизм, который позволяет различным сервисам и приложениям обмениваться данными в режиме реального времени. Интеграция с Webhook обеспечивает одностороннюю коммуникацию от внешнего приложения в Систему взаимодействия. С помощью интеграции можно создать новые сценарии взаимодействия, например, информировать пользователей о новых заказах через сайт интернет-магазина. Подробнее см. в документации на ИТС: Руководство разработчика. Интеграция с Webhook.
                  +
                  • Заполните Наименование бота в 1С.
                  • + +
                  • С помощью кнопки Подобрать выберите из списка пользователей, которые будут получать сообщения.
                  • + +
                  • Нажмите кнопку Активировать.
                  • + +
                  • Точка подключения заполняется автоматически после успешной активации.
                  • + +
                  • Обратитесь к техническому специалисту, ответственному за сопровождение сайта, сообщите ему Точку подключения.
                  • +
                  + Если все было корректно настроено, в программу должны приходить сообщения из подключенных внешних приложений. +
                  + +

                  См. также:

                  + \ No newline at end of file diff --git a/SSL/src/DataProcessors/ПодключениеОбсуждений/Forms/НастройкиСообщенийИзДругихПриложений/Module.bsl b/SSL/src/DataProcessors/ПодключениеОбсуждений/Forms/НастройкиСообщенийИзДругихПриложений/Module.bsl index 36b7c8a60..f30407404 100644 --- a/SSL/src/DataProcessors/ПодключениеОбсуждений/Forms/НастройкиСообщенийИзДругихПриложений/Module.bsl +++ b/SSL/src/DataProcessors/ПодключениеОбсуждений/Forms/НастройкиСообщенийИзДругихПриложений/Module.bsl @@ -1,5 +1,5 @@ /////////////////////////////////////////////////////////////////////////////////////////////////////// -// Copyright (c) 2024, ООО 1С-Софт +// Copyright (c) 2025, ООО 1С-Софт // Все права защищены. Эта программа и сопроводительные материалы предоставляются // в соответствии с условиями лицензии Attribution 4.0 International (CC BY 4.0) // Текст лицензии доступен по ссылке: @@ -15,6 +15,16 @@ ДоступныеИнтеграции = ОбсужденияСлужебный.ДоступныеИнтеграции(); ДоступныеКомандыСоздания = Новый Соответствие; + ТипВнешнейСистемы = ТипыВнешнихСистем.Max; + ИнтеграцияДоступна = ДоступныеИнтеграции.Найти(ТипВнешнейСистемы) <> Неопределено; + ДоступныеКомандыСоздания["СоздатьБотаMax"] = ИнтеграцияДоступна; + Если ИнтеграцияДоступна Тогда + Подключение = СписокПодключений.ПолучитьЭлементы().Добавить(); + Подключение.Наименование = НСтр("ru='Чаты Max'"); + Подключение.Активно = -1; + Подключение.Тип = ТипВнешнейСистемы; + КонецЕсли; + ТипВнешнейСистемы = ТипыВнешнихСистем.Telegram; ИнтеграцияДоступна = ДоступныеИнтеграции.Найти(ТипВнешнейСистемы) <> Неопределено; ДоступныеКомандыСоздания["СоздатьБотаTelegram"] = ИнтеграцияДоступна; @@ -74,6 +84,14 @@ #Область ОбработчикиКомандФормы +&НаКлиенте +Процедура СоздатьБотаMax(Команда) + Оповещение = Новый ОписаниеОповещения("ПослеИзмененияИнтеграции", ЭтотОбъект); + ОбсужденияСлужебныйКлиент.ПоказатьИнформациюОбИнтеграции(ЭтотОбъект, + Новый Структура("Тип", ОбсужденияСлужебныйКлиентСервер.ТипыВнешнихСистем().Max), + Оповещение); +КонецПроцедуры + &НаКлиенте Процедура СоздатьБотаTelegram(Команда) Оповещение = Новый ОписаниеОповещения("ПослеИзмененияИнтеграции", ЭтотОбъект); diff --git a/SSL/src/DataProcessors/ПодключениеОбсуждений/Forms/СозданиеБотаMax/Form.form b/SSL/src/DataProcessors/ПодключениеОбсуждений/Forms/СозданиеБотаMax/Form.form new file mode 100644 index 000000000..17d5c513e --- /dev/null +++ b/SSL/src/DataProcessors/ПодключениеОбсуждений/Forms/СозданиеБотаMax/Form.form @@ -0,0 +1,677 @@ + + + + <key>ru</key> + <value>Подключение чата Max</value> + + + ГруппаОписание + 1 + + Логотип + 5 + + <key>ru</key> + <value>Логотип</value> + + true + true + + true + + + ЛоготипРасширеннаяПодсказка + 7 + Label + true + true + + Left + + + + ЛоготипКонтекстноеМеню + 6 + true + + 13 + true + 5 + true + false + Center + Center + + + CommonPicture.BotMax + + Proportionally + AsFileRef + + + + Инструкция + 8 + + <key>ru</key> + <value><color #000000>Для получения сообщений из Max необходим бот, с которым будут общаться ваши контакты.</> + +<color #000000>Если у вас в Max еще нет бота, то создайте его на платформе </><link https://business.max.ru/self>Max для партнеров</><color #000000> для вашей организации.</> + +<color #000000>● </><link https://dev.max.ru/docs/maxbusiness/connection>Как создать профиль организации</> +<color #000000>● </><link https://dev.max.ru/docs/chatbots/bots-create>Как создать бота и получить токен</></value> + + true + true + + true + + + ИнструкцияРасширеннаяПодсказка + 10 + Label + true + true + + Left + + + + ИнструкцияКонтекстноеМеню + 9 + true + + true + Label + true + true + + Left + + + true + true + + true + + + <key>ru</key> + <value>Описание</value> + + Center + + ГруппаОписаниеРасширеннаяПодсказка + 2 + Label + true + true + + Left + + + UsualGroup + + HorizontalIfPossible + Center + true + true + Auto + Auto + + + + ГруппаПараметры + 3 + + ИмяБота + 11 + + <key>ru</key> + <value>Наименование</value> + + true + true + + true + + + Наименование + + + ИмяБотаРасширеннаяПодсказка + 13 + Label + true + true + + Left + + + + ИмяБотаКонтекстноеМеню + 12 + true + + InputField + Enter + true + Left + true + + true + true + true + true + true + true + Normal + + ru + Наименование бота в Max + + + + + Токен + 14 + + <key>ru</key> + <value>Токен</value> + + true + true + + true + + + Токен + + Button + + ТокенРасширеннаяПодсказка + 16 + Label + true + true + + Left + + + + ТокенКонтекстноеМеню + 15 + true + + InputField + Enter + true + Left + true + + true + true + true + true + true + true + Normal + + ru + Токен, выданный на платформе Max для партнеров + + + + true + true + + true + + + <key>ru</key> + <value>Параметры</value> + + + ГруппаПараметрыРасширеннаяПодсказка + 4 + Label + true + true + + Left + + + UsualGroup + + Vertical + NormalSeparation + true + true + Auto + Auto + + + + Участники + 17 + + <key>ru</key> + <value>Кто получает и отправляет сообщения от лица бота Max</value> + + true + true + + true + + + Участники + + + УчастникиПользователь + 30 + + <key>ru</key> + <value>Участники обсуждения</value> + + true + true + + true + + + Участники.Пользователь + + + УчастникиПользовательРасширеннаяПодсказка + 32 + Label + true + true + + Left + + + + УчастникиПользовательКонтекстноеМеню + 31 + true + + InputField + Enter + true + Left + true + + true + true + true + true + true + true + Normal + + + + УчастникиКоманднаяПанель + 18 + + ОтветственныеПодобрать + 33 + + <key>ru</key> + <value>Подобрать</value> + + true + true + + true + + + ОтветственныеПодобратьРасширеннаяПодсказка + 34 + Label + true + true + + Left + + + Form.Command.Подобрать + Normal + Auto + true + true + UserCmds + Auto + + Left + + + ChoiceProcessing + УчастникиОбработкаВыбора + + + УчастникиСтрокаПоиска + 21 + + УчастникиСтрокаПоискаРасширеннаяПодсказка + 23 + Label + true + true + + Left + + + + УчастникиСтрокаПоискаКонтекстноеМеню + 22 + true + + Участники + + true + + + + УчастникиСостояниеПросмотра + 27 + + УчастникиСостояниеПросмотраРасширеннаяПодсказка + 29 + Label + true + true + + Left + + + + УчастникиСостояниеПросмотраКонтекстноеМеню + 28 + true + + ViewStatusAddition + Участники + + true + + + + УчастникиУправлениеПоиском + 24 + + УчастникиУправлениеПоискомРасширеннаяПодсказка + 26 + Label + true + true + + Left + + + + УчастникиУправлениеПоискомКонтекстноеМеню + 25 + true + + SearchControlAddition + Участники + + true + + + + УчастникиРасширеннаяПодсказка + 20 + Label + true + true + + Left + + + + УчастникиКонтекстноеМеню + 19 + true + + true + true + true + true + true + MultiRow + 1 + 1 + AutoUse + AutoUse + true + true + Auto + Auto + true + true + AsFileRef + true + + + Bottom + true + + ФормаКоманднаяПанель + -1 + + Отключить + 37 + + <key>ru</key> + <value>Отключить</value> + + true + + true + + + ОтключитьРасширеннаяПодсказка + 38 + Label + true + true + + Left + + + Form.Command.Отключить + Normal + Auto + true + true + UserCmds + Auto + + + Закрыть + 35 + + <key>ru</key> + <value>Активировать</value> + + true + true + + true + + + ЗакрытьРасширеннаяПодсказка + 36 + Label + true + true + + Left + + + Form.Command.Активировать + Auto + true + true + true + UserCmds + Auto + + Right + + + OnCreateAtServer + ПриСозданииНаСервере + + LockOwner + true + true + Vertical + true + true + true + auto + true + + Наименование + + <key>ru</key> + <value>Наименование</value> + + 1 + + String + + + + true + + + true + + ShowError + + + Токен + + <key>ru</key> + <value>Токен</value> + + 2 + + String + + + + true + + + true + + ShowError + + + Участники + + <key>ru</key> + <value>Участники</value> + + 3 + + ValueTable + + + true + + + true + + ShowError + + Пользователь + + <key>ru</key> + <value>Участники обсуждения</value> + + 4 + + CatalogRef.Пользователи + + + true + + + true + + + + + Подобрать + + <key>ru</key> + <value>Подобрать</value> + + 1 + + true + + + + Подобрать + + + Auto + Auto + + + Активировать + + <key>ru</key> + <value>Активировать</value> + + 2 + + true + + + + АктивироватьБота + + + Auto + Auto + + + Отключить + + <key>ru</key> + <value>Отключить</value> + + 3 + + ru + Отключить + + + true + + + + Отключить + + + Auto + Auto + + + Идентификатор + + true + + + + + + diff --git a/SSL/src/DataProcessors/ПодключениеОбсуждений/Forms/СозданиеБотаMax/Module.bsl b/SSL/src/DataProcessors/ПодключениеОбсуждений/Forms/СозданиеБотаMax/Module.bsl new file mode 100644 index 000000000..8cfd42dae --- /dev/null +++ b/SSL/src/DataProcessors/ПодключениеОбсуждений/Forms/СозданиеБотаMax/Module.bsl @@ -0,0 +1,119 @@ +/////////////////////////////////////////////////////////////////////////////////////////////////////// +// Copyright (c) 2025, ООО 1С-Софт +// Все права защищены. Эта программа и сопроводительные материалы предоставляются +// в соответствии с условиями лицензии Attribution 4.0 International (CC BY 4.0) +// Текст лицензии доступен по ссылке: +// https://creativecommons.org/licenses/by/4.0/legalcode +/////////////////////////////////////////////////////////////////////////////////////////////////////// + +#Область ОбработчикиСобытийФормы + +&НаСервере +Процедура ПриСозданииНаСервере(Отказ, СтандартнаяОбработка) + + Если Параметры.Идентификатор <> Неопределено Тогда + ОписаниеИнтеграции = СистемаВзаимодействия.ПолучитьИнтеграцию(Параметры.Идентификатор); + + Если ОписаниеИнтеграции <> Неопределено Тогда + Наименование = ОписаниеИнтеграции.Представление; + Токен = ОписаниеИнтеграции.ПараметрыВнешнейСистемы.Получить("token"); + + Участники.Очистить(); + Для каждого ПользовательИБ Из Обсуждения.ПользователиИнформационнойБазы(ОписаниеИнтеграции.Участники) Цикл + Участники.Добавить().Пользователь = ПользовательИБ.Значение; + КонецЦикла; + КонецЕсли; + + Если ОписаниеИнтеграции.Использование Тогда + Элементы.Закрыть.Заголовок = НСтр("ru='Записать и закрыть'"); + Элементы.Отключить.Видимость = Истина; + КонецЕсли; + + КонецЕсли; + + ОбсужденияЛокализация.ПриЗаполненииИнструкцииДляПодключенияИнтеграции(Элементы.Инструкция.Заголовок, + ОбсужденияСлужебныйКлиентСервер.ТипыВнешнихСистем().Max); + +КонецПроцедуры + +#КонецОбласти + +#Область ОбработчикиКомандФормы + +&НаКлиенте +Процедура Подобрать(Команда) + ОбсужденияСлужебныйКлиент.НачатьПодборУчастниковОбсуждения(Элементы.Участники); +КонецПроцедуры + +&НаКлиенте +Процедура АктивироватьБота(Команда) + Если Не ПроверитьЗаполнение() Тогда + Возврат; + КонецЕсли; + + Попытка + АктивироватьСервер(); + Исключение + ИнформацияОбОшибке = ИнформацияОбОшибке(); + Уточнение = ОбщегоНазначенияКлиентСервер.УточнениеИсключения(ИнформацияОбОшибке, + НСтр("ru='Не удалось активировать чат-бот по причине:'"), Истина); + ВызватьИсключение(Уточнение.Текст, Уточнение.Категория,,, ИнформацияОбОшибке); + КонецПопытки; + Закрыть(Истина); +КонецПроцедуры + +&НаСервере +Процедура АктивироватьСервер() + + ПараметрыИнтеграции = ОбсужденияСлужебный.ПараметрыИнтеграции(); + ПараметрыИнтеграции.Идентификатор = Параметры.Идентификатор; + ПараметрыИнтеграции.Ключ = Наименование; + ПараметрыИнтеграции.Тип = ОбсужденияСлужебныйКлиентСервер.ТипыВнешнихСистем().Max; + ПараметрыИнтеграции.Участники = Участники.Выгрузить(,"Пользователь").ВыгрузитьКолонку("Пользователь"); + ПараметрыИнтеграции.token = Токен; + + Попытка + ОбсужденияСлужебный.СоздатьИзменитьИнтеграцию(ПараметрыИнтеграции); + Исключение + ЗаписьЖурналаРегистрации(ОбсужденияСлужебный.СобытиеЖурналаРегистрации(), + УровеньЖурналаРегистрации.Ошибка,,, + ОбработкаОшибок.ПодробноеПредставлениеОшибки(ИнформацияОбОшибке())); + ВызватьИсключение; + КонецПопытки; + +КонецПроцедуры + +&НаКлиенте +Процедура УчастникиОбработкаВыбора(Элемент, ВыбранноеЗначение, СтандартнаяОбработка) + СтандартнаяОбработка = Ложь; + Если ВыбранноеЗначение = Неопределено Тогда + Возврат; + КонецЕсли; + + Для каждого ПодобранныйПользователь Из ВыбранноеЗначение Цикл + Если Участники.НайтиСтроки(Новый Структура("Пользователь", ПодобранныйПользователь)).Количество() = 0 Тогда + Участники.Добавить().Пользователь = ПодобранныйПользователь; + КонецЕсли; + КонецЦикла; +КонецПроцедуры + +&НаКлиенте +Процедура Отключить(Команда) + Попытка + ОтключитьСервер(); + Исключение + ИнформацияОбОшибке = ИнформацияОбОшибке(); + Уточнение = ОбщегоНазначенияКлиентСервер.УточнениеИсключения(ИнформацияОбОшибке, + НСтр("ru='Не удалось отключить чат-бот по причине:'"), Истина); + ВызватьИсключение(Уточнение.Текст, Уточнение.Категория,,, ИнформацияОбОшибке); + КонецПопытки; + Закрыть(Истина); +КонецПроцедуры + +&НаСервере +Процедура ОтключитьСервер() + ОбсужденияСлужебный.ОтключитьИнтеграцию(Параметры.Идентификатор); +КонецПроцедуры + +#КонецОбласти + diff --git a/SSL/src/DataProcessors/ПодключениеОбсуждений/Forms/СозданиеБотаTelegram/Module.bsl b/SSL/src/DataProcessors/ПодключениеОбсуждений/Forms/СозданиеБотаTelegram/Module.bsl index db15ee327..48fa381a0 100644 --- a/SSL/src/DataProcessors/ПодключениеОбсуждений/Forms/СозданиеБотаTelegram/Module.bsl +++ b/SSL/src/DataProcessors/ПодключениеОбсуждений/Forms/СозданиеБотаTelegram/Module.bsl @@ -1,5 +1,5 @@ /////////////////////////////////////////////////////////////////////////////////////////////////////// -// Copyright (c) 2024, ООО 1С-Софт +// Copyright (c) 2025, ООО 1С-Софт // Все права защищены. Эта программа и сопроводительные материалы предоставляются // в соответствии с условиями лицензии Attribution 4.0 International (CC BY 4.0) // Текст лицензии доступен по ссылке: diff --git a/SSL/src/DataProcessors/ПодключениеОбсуждений/Forms/СозданиеБотаWebhook/Module.bsl b/SSL/src/DataProcessors/ПодключениеОбсуждений/Forms/СозданиеБотаWebhook/Module.bsl index 76533c1d0..d8c974bdc 100644 --- a/SSL/src/DataProcessors/ПодключениеОбсуждений/Forms/СозданиеБотаWebhook/Module.bsl +++ b/SSL/src/DataProcessors/ПодключениеОбсуждений/Forms/СозданиеБотаWebhook/Module.bsl @@ -1,5 +1,5 @@ /////////////////////////////////////////////////////////////////////////////////////////////////////// -// Copyright (c) 2024, ООО 1С-Софт +// Copyright (c) 2025, ООО 1С-Софт // Все права защищены. Эта программа и сопроводительные материалы предоставляются // в соответствии с условиями лицензии Attribution 4.0 International (CC BY 4.0) // Текст лицензии доступен по ссылке: diff --git a/SSL/src/DataProcessors/ПодключениеОбсуждений/Forms/СозданиеБотаWhatsApp/Module.bsl b/SSL/src/DataProcessors/ПодключениеОбсуждений/Forms/СозданиеБотаWhatsApp/Module.bsl index 95f5ba56d..8e2d77843 100644 --- a/SSL/src/DataProcessors/ПодключениеОбсуждений/Forms/СозданиеБотаWhatsApp/Module.bsl +++ b/SSL/src/DataProcessors/ПодключениеОбсуждений/Forms/СозданиеБотаWhatsApp/Module.bsl @@ -1,5 +1,5 @@ /////////////////////////////////////////////////////////////////////////////////////////////////////// -// Copyright (c) 2024, ООО 1С-Софт +// Copyright (c) 2025, ООО 1С-Софт // Все права защищены. Эта программа и сопроводительные материалы предоставляются // в соответствии с условиями лицензии Attribution 4.0 International (CC BY 4.0) // Текст лицензии доступен по ссылке: diff --git a/SSL/src/DataProcessors/ПодключениеОбсуждений/Forms/СозданиеБотаВКонтакте/Module.bsl b/SSL/src/DataProcessors/ПодключениеОбсуждений/Forms/СозданиеБотаВКонтакте/Module.bsl index 58b93afb9..add40157c 100644 --- a/SSL/src/DataProcessors/ПодключениеОбсуждений/Forms/СозданиеБотаВКонтакте/Module.bsl +++ b/SSL/src/DataProcessors/ПодключениеОбсуждений/Forms/СозданиеБотаВКонтакте/Module.bsl @@ -1,5 +1,5 @@ /////////////////////////////////////////////////////////////////////////////////////////////////////// -// Copyright (c) 2024, ООО 1С-Софт +// Copyright (c) 2025, ООО 1С-Софт // Все права защищены. Эта программа и сопроводительные материалы предоставляются // в соответствии с условиями лицензии Attribution 4.0 International (CC BY 4.0) // Текст лицензии доступен по ссылке: diff --git a/SSL/src/DataProcessors/ПодключениеОбсуждений/Forms/СозданиеБотаВебЧат/Module.bsl b/SSL/src/DataProcessors/ПодключениеОбсуждений/Forms/СозданиеБотаВебЧат/Module.bsl index fd9755337..b63019faf 100644 --- a/SSL/src/DataProcessors/ПодключениеОбсуждений/Forms/СозданиеБотаВебЧат/Module.bsl +++ b/SSL/src/DataProcessors/ПодключениеОбсуждений/Forms/СозданиеБотаВебЧат/Module.bsl @@ -1,5 +1,5 @@ /////////////////////////////////////////////////////////////////////////////////////////////////////// -// Copyright (c) 2024, ООО 1С-Софт +// Copyright (c) 2025, ООО 1С-Софт // Все права защищены. Эта программа и сопроводительные материалы предоставляются // в соответствии с условиями лицензии Attribution 4.0 International (CC BY 4.0) // Текст лицензии доступен по ссылке: diff --git a/SSL/src/DataProcessors/ПодключениеОбсуждений/Forms/Форма/Module.bsl b/SSL/src/DataProcessors/ПодключениеОбсуждений/Forms/Форма/Module.bsl index 763bc8f08..3ff8af236 100644 --- a/SSL/src/DataProcessors/ПодключениеОбсуждений/Forms/Форма/Module.bsl +++ b/SSL/src/DataProcessors/ПодключениеОбсуждений/Forms/Форма/Module.bsl @@ -1,5 +1,5 @@ /////////////////////////////////////////////////////////////////////////////////////////////////////// -// Copyright (c) 2024, ООО 1С-Софт +// Copyright (c) 2025, ООО 1С-Софт // Все права защищены. Эта программа и сопроводительные материалы предоставляются // в соответствии с условиями лицензии Attribution 4.0 International (CC BY 4.0) // Текст лицензии доступен по ссылке: diff --git a/SSL/src/DataProcessors/ПодключениеОбсуждений/ПодключениеОбсуждений.mdo b/SSL/src/DataProcessors/ПодключениеОбсуждений/ПодключениеОбсуждений.mdo index bcd200ec0..1ad48a856 100644 --- a/SSL/src/DataProcessors/ПодключениеОбсуждений/ПодключениеОбсуждений.mdo +++ b/SSL/src/DataProcessors/ПодключениеОбсуждений/ПодключениеОбсуждений.mdo @@ -90,6 +90,15 @@ PersonalComputer MobileDevice + + СозданиеБотаMax + + ru + Создание бота Max + + PersonalComputer + MobileDevice + МакетОтображенияВебЧата diff --git a/SSL/src/DataProcessors/ПоискИУдалениеДублей/Commands/ПоискИУдалениеДублей/CommandModule.bsl b/SSL/src/DataProcessors/ПоискИУдалениеДублей/Commands/ПоискИУдалениеДублей/CommandModule.bsl index fe5a220dd..fba76a601 100644 --- a/SSL/src/DataProcessors/ПоискИУдалениеДублей/Commands/ПоискИУдалениеДублей/CommandModule.bsl +++ b/SSL/src/DataProcessors/ПоискИУдалениеДублей/Commands/ПоискИУдалениеДублей/CommandModule.bsl @@ -1,5 +1,5 @@ /////////////////////////////////////////////////////////////////////////////////////////////////////// -// Copyright (c) 2024, ООО 1С-Софт +// Copyright (c) 2025, ООО 1С-Софт // Все права защищены. Эта программа и сопроводительные материалы предоставляются // в соответствии с условиями лицензии Attribution 4.0 International (CC BY 4.0) // Текст лицензии доступен по ссылке: diff --git a/SSL/src/DataProcessors/ПоискИУдалениеДублей/Forms/ОбластьПоискаДублей/Module.bsl b/SSL/src/DataProcessors/ПоискИУдалениеДублей/Forms/ОбластьПоискаДублей/Module.bsl index 760eb35da..37882510e 100644 --- a/SSL/src/DataProcessors/ПоискИУдалениеДублей/Forms/ОбластьПоискаДублей/Module.bsl +++ b/SSL/src/DataProcessors/ПоискИУдалениеДублей/Forms/ОбластьПоискаДублей/Module.bsl @@ -1,5 +1,5 @@ /////////////////////////////////////////////////////////////////////////////////////////////////////// -// Copyright (c) 2024, ООО 1С-Софт +// Copyright (c) 2025, ООО 1С-Софт // Все права защищены. Эта программа и сопроводительные материалы предоставляются // в соответствии с условиями лицензии Attribution 4.0 International (CC BY 4.0) // Текст лицензии доступен по ссылке: diff --git a/SSL/src/DataProcessors/ПоискИУдалениеДублей/Forms/ПоискДублей/Module.bsl b/SSL/src/DataProcessors/ПоискИУдалениеДублей/Forms/ПоискДублей/Module.bsl index 64edd84cd..cafae1a39 100644 --- a/SSL/src/DataProcessors/ПоискИУдалениеДублей/Forms/ПоискДублей/Module.bsl +++ b/SSL/src/DataProcessors/ПоискИУдалениеДублей/Forms/ПоискДублей/Module.bsl @@ -1,5 +1,5 @@ /////////////////////////////////////////////////////////////////////////////////////////////////////// -// Copyright (c) 2024, ООО 1С-Софт +// Copyright (c) 2025, ООО 1С-Софт // Все права защищены. Эта программа и сопроводительные материалы предоставляются // в соответствии с условиями лицензии Attribution 4.0 International (CC BY 4.0) // Текст лицензии доступен по ссылке: diff --git a/SSL/src/DataProcessors/ПоискИУдалениеДублей/Forms/ПравилаОтбора/Module.bsl b/SSL/src/DataProcessors/ПоискИУдалениеДублей/Forms/ПравилаОтбора/Module.bsl index 4106acf7f..ea6e87876 100644 --- a/SSL/src/DataProcessors/ПоискИУдалениеДублей/Forms/ПравилаОтбора/Module.bsl +++ b/SSL/src/DataProcessors/ПоискИУдалениеДублей/Forms/ПравилаОтбора/Module.bsl @@ -1,5 +1,5 @@ /////////////////////////////////////////////////////////////////////////////////////////////////////// -// Copyright (c) 2024, ООО 1С-Софт +// Copyright (c) 2025, ООО 1С-Софт // Все права защищены. Эта программа и сопроводительные материалы предоставляются // в соответствии с условиями лицензии Attribution 4.0 International (CC BY 4.0) // Текст лицензии доступен по ссылке: diff --git a/SSL/src/DataProcessors/ПоискИУдалениеДублей/Forms/ПравилаПоиска/Module.bsl b/SSL/src/DataProcessors/ПоискИУдалениеДублей/Forms/ПравилаПоиска/Module.bsl index 24fee7d58..29e7bac64 100644 --- a/SSL/src/DataProcessors/ПоискИУдалениеДублей/Forms/ПравилаПоиска/Module.bsl +++ b/SSL/src/DataProcessors/ПоискИУдалениеДублей/Forms/ПравилаПоиска/Module.bsl @@ -1,5 +1,5 @@ /////////////////////////////////////////////////////////////////////////////////////////////////////// -// Copyright (c) 2024, ООО 1С-Софт +// Copyright (c) 2025, ООО 1С-Софт // Все права защищены. Эта программа и сопроводительные материалы предоставляются // в соответствии с условиями лицензии Attribution 4.0 International (CC BY 4.0) // Текст лицензии доступен по ссылке: diff --git a/SSL/src/DataProcessors/ПоискИУдалениеДублей/ObjectModule.bsl b/SSL/src/DataProcessors/ПоискИУдалениеДублей/ObjectModule.bsl index 556353bc5..86c6c1473 100644 --- a/SSL/src/DataProcessors/ПоискИУдалениеДублей/ObjectModule.bsl +++ b/SSL/src/DataProcessors/ПоискИУдалениеДублей/ObjectModule.bsl @@ -1,5 +1,5 @@ /////////////////////////////////////////////////////////////////////////////////////////////////////// -// Copyright (c) 2024, ООО 1С-Софт +// Copyright (c) 2025, ООО 1С-Софт // Все права защищены. Эта программа и сопроводительные материалы предоставляются // в соответствии с условиями лицензии Attribution 4.0 International (CC BY 4.0) // Текст лицензии доступен по ссылке: diff --git a/SSL/src/DataProcessors/ПолнотекстовыйПоискВДанных/Commands/ПолнотекстовыйПоиск/CommandModule.bsl b/SSL/src/DataProcessors/ПолнотекстовыйПоискВДанных/Commands/ПолнотекстовыйПоиск/CommandModule.bsl index e2747e538..036b2d5cd 100644 --- a/SSL/src/DataProcessors/ПолнотекстовыйПоискВДанных/Commands/ПолнотекстовыйПоиск/CommandModule.bsl +++ b/SSL/src/DataProcessors/ПолнотекстовыйПоискВДанных/Commands/ПолнотекстовыйПоиск/CommandModule.bsl @@ -1,5 +1,5 @@ /////////////////////////////////////////////////////////////////////////////////////////////////////// -// Copyright (c) 2024, ООО 1С-Софт +// Copyright (c) 2025, ООО 1С-Софт // Все права защищены. Эта программа и сопроводительные материалы предоставляются // в соответствии с условиями лицензии Attribution 4.0 International (CC BY 4.0) // Текст лицензии доступен по ссылке: diff --git a/SSL/src/DataProcessors/ПолнотекстовыйПоискВДанных/Forms/ВыборОбластиПоиска/Module.bsl b/SSL/src/DataProcessors/ПолнотекстовыйПоискВДанных/Forms/ВыборОбластиПоиска/Module.bsl index 823b4222a..eba07c435 100644 --- a/SSL/src/DataProcessors/ПолнотекстовыйПоискВДанных/Forms/ВыборОбластиПоиска/Module.bsl +++ b/SSL/src/DataProcessors/ПолнотекстовыйПоискВДанных/Forms/ВыборОбластиПоиска/Module.bsl @@ -1,5 +1,5 @@ /////////////////////////////////////////////////////////////////////////////////////////////////////// -// Copyright (c) 2024, ООО 1С-Софт +// Copyright (c) 2025, ООО 1С-Софт // Все права защищены. Эта программа и сопроводительные материалы предоставляются // в соответствии с условиями лицензии Attribution 4.0 International (CC BY 4.0) // Текст лицензии доступен по ссылке: diff --git a/SSL/src/DataProcessors/ПолнотекстовыйПоискВДанных/Forms/Поиск/Module.bsl b/SSL/src/DataProcessors/ПолнотекстовыйПоискВДанных/Forms/Поиск/Module.bsl index 2c32223f5..9cd1efb7e 100644 --- a/SSL/src/DataProcessors/ПолнотекстовыйПоискВДанных/Forms/Поиск/Module.bsl +++ b/SSL/src/DataProcessors/ПолнотекстовыйПоискВДанных/Forms/Поиск/Module.bsl @@ -1,5 +1,5 @@ /////////////////////////////////////////////////////////////////////////////////////////////////////// -// Copyright (c) 2024, ООО 1С-Софт +// Copyright (c) 2025, ООО 1С-Софт // Все права защищены. Эта программа и сопроводительные материалы предоставляются // в соответствии с условиями лицензии Attribution 4.0 International (CC BY 4.0) // Текст лицензии доступен по ссылке: diff --git a/SSL/src/DataProcessors/ПолнотекстовыйПоискВДанных/Forms/УправлениеПолнотекстовымПоискомИИзвлечениемТекстов/Module.bsl b/SSL/src/DataProcessors/ПолнотекстовыйПоискВДанных/Forms/УправлениеПолнотекстовымПоискомИИзвлечениемТекстов/Module.bsl index e94a89b27..34ff5d56e 100644 --- a/SSL/src/DataProcessors/ПолнотекстовыйПоискВДанных/Forms/УправлениеПолнотекстовымПоискомИИзвлечениемТекстов/Module.bsl +++ b/SSL/src/DataProcessors/ПолнотекстовыйПоискВДанных/Forms/УправлениеПолнотекстовымПоискомИИзвлечениемТекстов/Module.bsl @@ -1,5 +1,5 @@ /////////////////////////////////////////////////////////////////////////////////////////////////////// -// Copyright (c) 2024, ООО 1С-Софт +// Copyright (c) 2025, ООО 1С-Софт // Все права защищены. Эта программа и сопроводительные материалы предоставляются // в соответствии с условиями лицензии Attribution 4.0 International (CC BY 4.0) // Текст лицензии доступен по ссылке: diff --git a/SSL/src/DataProcessors/ПолнотекстовыйПоискВДанных/ManagerModule.bsl b/SSL/src/DataProcessors/ПолнотекстовыйПоискВДанных/ManagerModule.bsl index c93d21de4..290965358 100644 --- a/SSL/src/DataProcessors/ПолнотекстовыйПоискВДанных/ManagerModule.bsl +++ b/SSL/src/DataProcessors/ПолнотекстовыйПоискВДанных/ManagerModule.bsl @@ -1,5 +1,5 @@ /////////////////////////////////////////////////////////////////////////////////////////////////////// -// Copyright (c) 2024, ООО 1С-Софт +// Copyright (c) 2025, ООО 1С-Софт // Все права защищены. Эта программа и сопроводительные материалы предоставляются // в соответствии с условиями лицензии Attribution 4.0 International (CC BY 4.0) // Текст лицензии доступен по ссылке: diff --git a/SSL/src/DataProcessors/ПомощникИнтерактивногоОбменаДанными/Forms/ВыгрузкаДанныхДляСопоставления/Module.bsl b/SSL/src/DataProcessors/ПомощникИнтерактивногоОбменаДанными/Forms/ВыгрузкаДанныхДляСопоставления/Module.bsl index ef3a9a96c..c375631cb 100644 --- a/SSL/src/DataProcessors/ПомощникИнтерактивногоОбменаДанными/Forms/ВыгрузкаДанныхДляСопоставления/Module.bsl +++ b/SSL/src/DataProcessors/ПомощникИнтерактивногоОбменаДанными/Forms/ВыгрузкаДанныхДляСопоставления/Module.bsl @@ -1,5 +1,5 @@ /////////////////////////////////////////////////////////////////////////////////////////////////////// -// Copyright (c) 2024, ООО 1С-Софт +// Copyright (c) 2025, ООО 1С-Софт // Все права защищены. Эта программа и сопроводительные материалы предоставляются // в соответствии с условиями лицензии Attribution 4.0 International (CC BY 4.0) // Текст лицензии доступен по ссылке: diff --git a/SSL/src/DataProcessors/ПомощникИнтерактивногоОбменаДанными/Forms/Форма/Module.bsl b/SSL/src/DataProcessors/ПомощникИнтерактивногоОбменаДанными/Forms/Форма/Module.bsl index 5299b3f5a..91d85d432 100644 --- a/SSL/src/DataProcessors/ПомощникИнтерактивногоОбменаДанными/Forms/Форма/Module.bsl +++ b/SSL/src/DataProcessors/ПомощникИнтерактивногоОбменаДанными/Forms/Форма/Module.bsl @@ -1,5 +1,5 @@ /////////////////////////////////////////////////////////////////////////////////////////////////////// -// Copyright (c) 2024, ООО 1С-Софт +// Copyright (c) 2025, ООО 1С-Софт // Все права защищены. Эта программа и сопроводительные материалы предоставляются // в соответствии с условиями лицензии Attribution 4.0 International (CC BY 4.0) // Текст лицензии доступен по ссылке: @@ -252,8 +252,7 @@ #Область ОбработчикиСобытийЭлементовШапкиФормы -//////////////////////////////////////////////////////////////////////////////// -// Страница СтраницаИнформацииСтатистики +#Область СтраницаСтраницаИнформацииСтатистики &НаКлиенте Процедура ЗакончитьСопоставлениеДанныхПриИзменении(Элемент) @@ -269,8 +268,9 @@ КонецПроцедуры -//////////////////////////////////////////////////////////////////////////////// -// Страница СтраницаВопросОСоставеВыгрузки +#КонецОбласти + +#Область СтраницаСтраницаВопросОСоставеВыгрузки &НаКлиенте Процедура ДополнениеВыгрузкиВариантВыгрузкиПриИзменении(Элемент) @@ -296,6 +296,8 @@ #КонецОбласти +#КонецОбласти + #Область ОбработчикиСобытийЭлементовТаблицыФормыДеревоИнформацииСтатистики &НаКлиенте @@ -375,8 +377,7 @@ КонецПроцедуры -//////////////////////////////////////////////////////////////////////////////// -// Страница СтраницаИнформацииСтатистики +#Область СтраницаСтраницаИнформацииСтатистики &НаКлиенте Процедура ОбновитьИнформациюСопоставленияПолностью(Команда) @@ -489,8 +490,9 @@ КонецПроцедуры -//////////////////////////////////////////////////////////////////////////////// -// Страница СтраницаОкончанияСопоставления +#КонецОбласти + +#Область СтраницаСтраницаОкончанияСопоставления &НаКлиенте Процедура ПерейтиВЖурналРегистрацииСобытийЗагрузкиДанных(Команда) @@ -506,8 +508,9 @@ КонецПроцедуры -//////////////////////////////////////////////////////////////////////////////// -// Страница СтраницаВопросОСоставеВыгрузки +#КонецОбласти + +#Область СтраницаСтраницаВопросОСоставеВыгрузки &НаКлиенте Процедура ДополнениеВыгрузкиОбщийОтборДокументов(Команда) @@ -563,6 +566,8 @@ #КонецОбласти +#КонецОбласти + #Область СлужебныеПроцедурыИФункции //////////////////////////////////////////////////////////////////////////////// @@ -1261,8 +1266,8 @@ // Получаем настройки в виде структуры, настройки будут неявно сохранены во временном хранилище формы. НастройкиДополненияВыгрузки = ОбменДаннымиСервер.ИнтерактивноеИзменениеВыгрузки( - Объект.УзелИнформационнойБазы, ЭтотОбъект.УникальныйИдентификатор, ДополнениеВыгрузкиРасширенныйРежим); - + Объект.УзелИнформационнойБазы, УникальныйИдентификатор, ДополнениеВыгрузкиРасширенныйРежим); + // Настраиваем форму. // Преобразуем в реквизит формы типа ОбработкаОбъект. Используется для упрощения связи данных с формой. ОбменДаннымиСервер.ИнтерактивноеИзменениеВыгрузкиРеквизитПоНастройкам(ЭтотОбъект, НастройкиДополненияВыгрузки, "ДополнениеВыгрузки"); @@ -1556,8 +1561,7 @@ #КонецОбласти -//////////////////////////////////////////////////////////////////////////////// -// Обработчики ожидания +#Область ОбработчикиОжидания &НаКлиенте Процедура ОбработчикОжиданияДлительнойОперации() @@ -1586,8 +1590,9 @@ КонецПроцедуры -//////////////////////////////////////////////////////////////////////////////// -// Процедуры и функции мастера. +#КонецОбласти + +#Область ПроцедурыИФункцииМастера &НаКлиенте Функция ПолучитьКлючиВыделенныхСтрок(ВыделенныеСтроки) @@ -1682,8 +1687,9 @@ КонецПроцедуры -//////////////////////////////////////////////////////////////////////////////// -// РАЗДЕЛ ОБРАБОТКИ ФОНОВЫХ ЗАДАНИЙ +#КонецОбласти + +#Область РазделОбработкиФоновыхЗаданий &НаКлиенте Функция ПараметрыФоновогоЗадания() @@ -1824,13 +1830,14 @@ #КонецОбласти +#КонецОбласти + //////////////////////////////////////////////////////////////////////////////// // РАЗДЕЛ ОБРАБОТЧИКОВ СОБЫТИЙ ПЕРЕХОДОВ #Область ОбработчикиСобытийПереходов -//////////////////////////////////////////////////////////////////////////////// -// Страницы проверки запущенной синхронизации. +#Область СтраницыПроверкиЗапущеннойСинхронизации &НаКлиенте Функция Подключаемый_СтраницаПроверкаЗадачОбмена_ПриОткрытии(Отказ, ПропуститьСтраницу, ЭтоПереходДалее) @@ -1891,8 +1898,9 @@ КонецПроцедуры -//////////////////////////////////////////////////////////////////////////////// -// Страницы обработки получения данных (транспорт сообщения обмена). +#КонецОбласти + +#Область СтраницыОбработкиПолученияДанныхТранспортСообщенияОбмена &НаКлиенте Функция Подключаемый_СтраницаОжиданияАнализаДанных_ПриОткрытии(Отказ, ПропуститьСтраницу, ЭтоПереходДалее) @@ -2008,8 +2016,9 @@ КонецПроцедуры -//////////////////////////////////////////////////////////////////////////////// -// Страницы анализа данных (автоматическое сопоставление данных). +#КонецОбласти + +#Область СтраницыАнализаДанныхАвтоматическоеСопоставлениеДанных &НаКлиенте Функция Подключаемый_СтраницаАнализДанных_ПриОткрытии(Отказ, ПропуститьСтраницу, ЭтоПереходДалее) @@ -2063,7 +2072,7 @@ КонецЕсли; Если ЗакрытьФормуБезусловно Тогда - ЭтотОбъект.Закрыть(); + Закрыть(); КонецЕсли; Если Не ПропуститьПолучениеДанных Тогда @@ -2143,8 +2152,9 @@ КонецПроцедуры -//////////////////////////////////////////////////////////////////////////////// -// Страницы обработки сопоставления данных (интерактивное сопоставление данных). +#КонецОбласти + +#Область СтраницыОбработкиСопоставленияДанныхИнтерактивноеСопоставлениеДанных &НаКлиенте Функция Подключаемый_СтраницаИнформацииСтатистики_ПриОткрытии(Отказ, ПропуститьСтраницу, ЭтоПереходДалее) @@ -2217,8 +2227,9 @@ КонецПроцедуры -//////////////////////////////////////////////////////////////////////////////// -// Страницы обработки загрузки данных +#КонецОбласти + +#Область СтраницыОбработкиЗагрузкиДанных &НаКлиенте Функция Подключаемый_ЗагрузкаДанных_ПриОткрытии(Отказ, ПропуститьСтраницу, ЭтоПереходДалее) @@ -2295,8 +2306,9 @@ КонецПроцедуры -//////////////////////////////////////////////////////////////////////////////// -// Страницы дополнительной выгрузки (регистрация к выгрузке дополнительных данных). +#КонецОбласти + +#Область СтраницыДополнительнойВыгрузкиРегистрацияКВыгрузкеДополнительныхДанных &НаКлиенте Функция Подключаемый_СтраницаВопросОСоставеВыгрузки_ПриОткрытии(Отказ, ПропуститьСтраницу, ЭтоПереходДалее) @@ -2439,8 +2451,9 @@ КонецПроцедуры -//////////////////////////////////////////////////////////////////////////////// -// Страницы обработки выгрузки данных +#КонецОбласти + +#Область СтраницыОбработкиВыгрузкиДанных &НаКлиенте Функция Подключаемый_ВыгрузкаДанных_ПриОткрытии(Отказ, ПропуститьСтраницу, ЭтоПереходДалее) @@ -2724,8 +2737,9 @@ КонецПроцедуры -//////////////////////////////////////////////////////////////////////////////// -// Страницы итоговой информации +#КонецОбласти + +#Область СтраницыИтоговойИнформации &НаКлиенте Функция Подключаемый_СтраницаОкончанияСопоставления_ПриОткрытии(Отказ, ПропуститьСтраницу, Знач ЭтоПереходДалее) @@ -2742,8 +2756,11 @@ #КонецОбласти -//////////////////////////////////////////////////////////////////////////////// -// РАЗДЕЛ ИНИЦИАЛИЗАЦИИ ПЕРЕХОДОВ +#КонецОбласти + +#КонецОбласти + +#Область ИнициализацияПереходов &НаСервере Процедура ЗаполнитьТаблицуПереходов() diff --git a/SSL/src/DataProcessors/ПомощникИнтерактивногоОбменаДанными/Help/ru.html b/SSL/src/DataProcessors/ПомощникИнтерактивногоОбменаДанными/Help/ru.html index 858e426e8..2cff30475 100644 --- a/SSL/src/DataProcessors/ПомощникИнтерактивногоОбменаДанными/Help/ru.html +++ b/SSL/src/DataProcessors/ПомощникИнтерактивногоОбменаДанными/Help/ru.html @@ -1,12 +1,12 @@ -

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

                  +

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

                  Режим интерактивной синхронизации данных следует использовать в случае, когда до начала синхронизации один и тот же объект мог быть введен независимо в обеих обменивающихся ИБ. Другими словами, интерактивный режим синхронизации данных следует выбирать при первой синхронизации данных между ИБ, учет в которых уже ведется. Поскольку вероятность существования в таких ИБ одних и тех же объектов очень высока. В этом случае интерактивный режим позволит такие объекты сопоставить вручную.

                  Открыть помощник можно, нажав кнопку  Запустить синхронизацию в списке Синхронизация данных.

                  Параметры подключения

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

                  Сопоставление данных

                  -
                  • На второй странице помощника отображается статистика сопоставления объектов. Перед открытием страницы программа выполняет попытку сопоставить данные автоматически. +
                    • На второй странице помощника отображается статистика сопоставления объектов. Перед открытием страницы приложение выполняет попытку сопоставить данные автоматически.
                    • Автоматическое сопоставление выполняется по заданным по умолчанию полям сопоставления, при этом соблюдаются самые строгие правила сопоставления. Рекомендуется выполнить проверку результатов автоматического сопоставления данных. В списке выводится:
                      • @@ -14,7 +14,7 @@
                      •  - имеются вопросы по сопоставлению объектов;
                      • -
                        В этой программе, шт.
                        +
                        В этом приложении, шт.
                      • @@ -34,11 +34,11 @@
                        Перечисленные команды доступны для вызова из контекстного меню таблицы статистики сопоставления. При вызове из контекстного меню эти команды актуальны для множества выделенных строк таблицы.
                      • -
                        После того как прошло сопоставление, программа запоминает правила и эта страница уже не выводится.
                        +
                        После того как прошло сопоставление, приложение запоминает правила и эта страница уже не выводится.
                      • Нажмите кнопку Далее для перехода к синхронизации данных.

                      Данные для отправки

                      -
                      • На третьей странице помощника следует указать данные для отправки в другую программу. Если данные не указывать, то по умолчанию будут отправлены данные, измененные с момента последней сессии синхронизации. +
                        • На третьей странице помощника следует указать данные для отправки в другое приложение. Если данные не указывать, то по умолчанию будут отправлены данные, измененные с момента последней сессии синхронизации.
                        • По умолчанию переключатель установлен в положение положении Не добавлять - в этом случае будут отправлены данные согласно общим настройкам.
                        • @@ -52,7 +52,7 @@
                        • Для того чтобы отправить дополнительные данные, включите переключатель Добавить данные.
                          • -
                            Их следует отобрать, для этого перейдите по ссылке, которая по умолчанию принимает значение Дополнительные данные не выбраны. Подберите Отправляемые данные из предлагаемых программой списков, нажмите ОК. После этого ссылка принимает значение перечисления выбранных данных.
                        • +
                          Их следует отобрать, для этого перейдите по ссылке, которая по умолчанию принимает значение Дополнительные данные не выбраны. Подберите Отправляемые данные из предлагаемых приложением списков, нажмите ОК. После этого ссылка принимает значение перечисления выбранных данных.
                      • Статистику по отправляемым данным можно просмотреть, нажав на ссылку Отчет о составе отправляемых данных.
                      • @@ -61,7 +61,7 @@
                      • Нажмите Далее, для того чтобы начать синхронизацию данных с выбранными параметрами.

                      Синхронизация данных завершена

                      -
                      • На заключительной странице помощника программа выводит сообщения о состоянии синхронизации: +
                        • На заключительной странице помощника приложение выводит сообщения о состоянии синхронизации:
                          • Не удалось получить данные или Данные успешно получены и т.д.
                          • Не удалось отправить данные или Данные успешно отправлены и т.д. diff --git a/SSL/src/DataProcessors/ПомощникИнтерактивногоОбменаДанными/ManagerModule.bsl b/SSL/src/DataProcessors/ПомощникИнтерактивногоОбменаДанными/ManagerModule.bsl index f0b7ef29f..0593ab6c4 100644 --- a/SSL/src/DataProcessors/ПомощникИнтерактивногоОбменаДанными/ManagerModule.bsl +++ b/SSL/src/DataProcessors/ПомощникИнтерактивногоОбменаДанными/ManagerModule.bsl @@ -1,5 +1,5 @@ /////////////////////////////////////////////////////////////////////////////////////////////////////// -// Copyright (c) 2024, ООО 1С-Софт +// Copyright (c) 2025, ООО 1С-Софт // Все права защищены. Эта программа и сопроводительные материалы предоставляются // в соответствии с условиями лицензии Attribution 4.0 International (CC BY 4.0) // Текст лицензии доступен по ссылке: @@ -92,7 +92,7 @@ Иначе ПараметрыИнициализации = ТранспортСообщенийОбмена.ПараметрыИнициализации(); - ПараметрыИнициализации.Корреспондент = Параметры.УзелИнформационнойбазы; + ПараметрыИнициализации.Корреспондент = Параметры.УзелИнформационнойБазы; ЗаполнитьЗначенияСвойств(ПараметрыИнициализации, Параметры); Транспорт = ТранспортСообщенийОбмена.Инициализация(ПараметрыИнициализации); @@ -174,7 +174,7 @@ // ИнформацияСтатистики - ТаблицаЗначений // // Возвращаемое значение: -// Булево - Все данные сопоставлены +// Булево - все данные сопоставлены // Функция ВсеДанныеСопоставлены(ИнформацияСтатистики) Экспорт @@ -188,7 +188,7 @@ // ИнформацияСтатистики - ТаблицаЗначений // // Возвращаемое значение: -// Булево - Есть не сопоставленная НСИ +// Булево - есть не сопоставленная НСИ // Функция ЕстьНеСопоставленнаяНСИ(ИнформацияСтатистики) Экспорт Возврат (ИнформацияСтатистики.НайтиСтроки(Новый Структура("ИндексКартинки, ЭтоНСИ", 1, Истина)).Количество() > 0); diff --git a/SSL/src/DataProcessors/ПомощникИнтерактивногоОбменаДанными/ObjectModule.bsl b/SSL/src/DataProcessors/ПомощникИнтерактивногоОбменаДанными/ObjectModule.bsl index c4e5f7cfb..41c38879f 100644 --- a/SSL/src/DataProcessors/ПомощникИнтерактивногоОбменаДанными/ObjectModule.bsl +++ b/SSL/src/DataProcessors/ПомощникИнтерактивногоОбменаДанными/ObjectModule.bsl @@ -1,5 +1,5 @@ /////////////////////////////////////////////////////////////////////////////////////////////////////// -// Copyright (c) 2024, ООО 1С-Софт +// Copyright (c) 2025, ООО 1С-Софт // Все права защищены. Эта программа и сопроводительные материалы предоставляются // в соответствии с условиями лицензии Attribution 4.0 International (CC BY 4.0) // Текст лицензии доступен по ссылке: @@ -10,8 +10,7 @@ #Область СлужебныеПроцедурыИФункции -//////////////////////////////////////////////////////////////////////////////// -// Экспортные служебные процедуры и функции. +#Область ЭкспортныеСлужебныеПроцедурыИФункции // Получает статистику сопоставления объектов для строк таблицы ИнформацияСтатистики. // @@ -295,8 +294,10 @@ КонецЕсли; Возврат Истина; КонецФункции -//////////////////////////////////////////////////////////////////////////////// -// Функции-свойства + +#КонецОбласти + +#Область ФункцииСвойства // Данные табличной части ИнформацияСтатистики. // @@ -311,6 +312,8 @@ #КонецОбласти +#КонецОбласти + #Иначе ВызватьИсключение НСтр("ru = 'Недопустимый вызов объекта на клиенте.'"); #КонецЕсли \ No newline at end of file diff --git a/SSL/src/DataProcessors/ПомощникИнтерактивногоОбменаДаннымиВМоделиСервиса/ManagerModule.bsl b/SSL/src/DataProcessors/ПомощникИнтерактивногоОбменаДаннымиВМоделиСервиса/ManagerModule.bsl index ba3c30b25..e7ebfdd44 100644 --- a/SSL/src/DataProcessors/ПомощникИнтерактивногоОбменаДаннымиВМоделиСервиса/ManagerModule.bsl +++ b/SSL/src/DataProcessors/ПомощникИнтерактивногоОбменаДаннымиВМоделиСервиса/ManagerModule.bsl @@ -1,5 +1,5 @@ /////////////////////////////////////////////////////////////////////////////////////////////////////// -// Copyright (c) 2024, ООО 1С-Софт +// Copyright (c) 2025, ООО 1С-Софт // Все права защищены. Эта программа и сопроводительные материалы предоставляются // в соответствии с условиями лицензии Attribution 4.0 International (CC BY 4.0) // Текст лицензии доступен по ссылке: diff --git a/SSL/src/DataProcessors/ПомощникНастройкиСинхронизацииДанныхМеждуПриложениямиВИнтернете/ManagerModule.bsl b/SSL/src/DataProcessors/ПомощникНастройкиСинхронизацииДанныхМеждуПриложениямиВИнтернете/ManagerModule.bsl index f5e924d24..8b339308e 100644 --- a/SSL/src/DataProcessors/ПомощникНастройкиСинхронизацииДанныхМеждуПриложениямиВИнтернете/ManagerModule.bsl +++ b/SSL/src/DataProcessors/ПомощникНастройкиСинхронизацииДанныхМеждуПриложениямиВИнтернете/ManagerModule.bsl @@ -1,5 +1,5 @@ /////////////////////////////////////////////////////////////////////////////////////////////////////// -// Copyright (c) 2024, ООО 1С-Софт +// Copyright (c) 2025, ООО 1С-Софт // Все права защищены. Эта программа и сопроводительные материалы предоставляются // в соответствии с условиями лицензии Attribution 4.0 International (CC BY 4.0) // Текст лицензии доступен по ссылке: diff --git a/SSL/src/DataProcessors/ПомощникСозданияАвтономногоРабочегоМеста/Forms/ДополнительноеОписание/Module.bsl b/SSL/src/DataProcessors/ПомощникСозданияАвтономногоРабочегоМеста/Forms/ДополнительноеОписание/Module.bsl index 2d2904e31..fdf1f9d92 100644 --- a/SSL/src/DataProcessors/ПомощникСозданияАвтономногоРабочегоМеста/Forms/ДополнительноеОписание/Module.bsl +++ b/SSL/src/DataProcessors/ПомощникСозданияАвтономногоРабочегоМеста/Forms/ДополнительноеОписание/Module.bsl @@ -1,5 +1,5 @@ /////////////////////////////////////////////////////////////////////////////////////////////////////// -// Copyright (c) 2024, ООО 1С-Софт +// Copyright (c) 2025, ООО 1С-Софт // Все права защищены. Эта программа и сопроводительные материалы предоставляются // в соответствии с условиями лицензии Attribution 4.0 International (CC BY 4.0) // Текст лицензии доступен по ссылке: diff --git a/SSL/src/DataProcessors/ПомощникСозданияАвтономногоРабочегоМеста/Forms/НастройкаНаСторонеСервиса/Module.bsl b/SSL/src/DataProcessors/ПомощникСозданияАвтономногоРабочегоМеста/Forms/НастройкаНаСторонеСервиса/Module.bsl index 206216dbe..6b98b17ad 100644 --- a/SSL/src/DataProcessors/ПомощникСозданияАвтономногоРабочегоМеста/Forms/НастройкаНаСторонеСервиса/Module.bsl +++ b/SSL/src/DataProcessors/ПомощникСозданияАвтономногоРабочегоМеста/Forms/НастройкаНаСторонеСервиса/Module.bsl @@ -1,5 +1,5 @@ /////////////////////////////////////////////////////////////////////////////////////////////////////// -// Copyright (c) 2024, ООО 1С-Софт +// Copyright (c) 2025, ООО 1С-Софт // Все права защищены. Эта программа и сопроводительные материалы предоставляются // в соответствии с условиями лицензии Attribution 4.0 International (CC BY 4.0) // Текст лицензии доступен по ссылке: @@ -372,8 +372,7 @@ КонецФункции -//////////////////////////////////////////////////////////////////////////////// -// Поставляемая часть +#Область ПоставляемаяЧасть &НаКлиенте Процедура ИзменитьПорядковыйНомерПерехода(Итератор) @@ -681,8 +680,9 @@ КонецПроцедуры -//////////////////////////////////////////////////////////////////////////////// -// Переопределяемая часть - Служебные процедуры и функции +#КонецОбласти + +#Область ПереопределяемаяЧастьСлужебныеПроцедурыИФункции &НаСервере Процедура СоздатьНачальныйОбразАвтономногоРабочегоМестаНаСервере(Отказ) @@ -865,8 +865,9 @@ Возврат Результат; КонецФункции -//////////////////////////////////////////////////////////////////////////////// -// Переопределяемая часть - Обработчики событий переходов +#КонецОбласти + +#Область ПереопределяемаяЧастьОбработчикиСобытийПереходов &НаКлиенте Функция Подключаемый_НастройкаВыгрузки_ПриПереходеДалее(Отказ) @@ -960,8 +961,9 @@ КонецФункции -//////////////////////////////////////////////////////////////////////////////// -// Переопределяемая часть - Инициализация переходов помощника +#КонецОбласти + +#Область ПереопределяемаяЧастьИнициализацияПереходовПомощника &НаСервере Процедура СценарийСозданияАвтономногоРабочегоМеста() @@ -996,3 +998,5 @@ КонецПроцедуры #КонецОбласти + +#КонецОбласти \ No newline at end of file diff --git a/SSL/src/DataProcessors/ПомощникСозданияАвтономногоРабочегоМеста/ObjectModule.bsl b/SSL/src/DataProcessors/ПомощникСозданияАвтономногоРабочегоМеста/ObjectModule.bsl index f1502fc3a..73a788c28 100644 --- a/SSL/src/DataProcessors/ПомощникСозданияАвтономногоРабочегоМеста/ObjectModule.bsl +++ b/SSL/src/DataProcessors/ПомощникСозданияАвтономногоРабочегоМеста/ObjectModule.bsl @@ -1,5 +1,5 @@ /////////////////////////////////////////////////////////////////////////////////////////////////////// -// Copyright (c) 2024, ООО 1С-Софт +// Copyright (c) 2025, ООО 1С-Софт // Все права защищены. Эта программа и сопроводительные материалы предоставляются // в соответствии с условиями лицензии Attribution 4.0 International (CC BY 4.0) // Текст лицензии доступен по ссылке: diff --git a/SSL/src/DataProcessors/ПомощникСозданияОбменаДанными/Forms/ВыборТипаТранспорта/Form.form b/SSL/src/DataProcessors/ПомощникСозданияОбменаДанными/Forms/ВыборТипаТранспорта/Form.form index 96fa0bc87..2f03112f0 100644 --- a/SSL/src/DataProcessors/ПомощникСозданияОбменаДанными/Forms/ВыборТипаТранспорта/Form.form +++ b/SSL/src/DataProcessors/ПомощникСозданияОбменаДанными/Forms/ВыборТипаТранспорта/Form.form @@ -1800,6 +1800,34 @@ Auto Auto + + ИмяПланаОбмена + + String + + + + + ИдентификаторТранспорта + + String + + + + + ИдентификаторНастройки + + String + + + + + ВариантРаботыМастера + + String + + + diff --git a/SSL/src/DataProcessors/ПомощникСозданияОбменаДанными/Forms/ВыборТипаТранспорта/Module.bsl b/SSL/src/DataProcessors/ПомощникСозданияОбменаДанными/Forms/ВыборТипаТранспорта/Module.bsl index e2b76618e..14364e222 100644 --- a/SSL/src/DataProcessors/ПомощникСозданияОбменаДанными/Forms/ВыборТипаТранспорта/Module.bsl +++ b/SSL/src/DataProcessors/ПомощникСозданияОбменаДанными/Forms/ВыборТипаТранспорта/Module.bsl @@ -1,5 +1,5 @@ /////////////////////////////////////////////////////////////////////////////////////////////////////// -// Copyright (c) 2024, ООО 1С-Софт +// Copyright (c) 2025, ООО 1С-Софт // Все права защищены. Эта программа и сопроводительные материалы предоставляются // в соответствии с условиями лицензии Attribution 4.0 International (CC BY 4.0) // Текст лицензии доступен по ссылке: @@ -191,8 +191,8 @@ ОтборЭлемента.ЛевоеЗначение = Новый ПолеКомпоновкиДанных("ТаблицаНоваяНастройка.Выбран"); ОтборЭлемента.ВидСравнения = ВидСравненияКомпоновкиДанных.Равно; ОтборЭлемента.ПравоеЗначение = Истина; - - Элемент.Оформление.УстановитьЗначениеПараметра("Шрифт", Новый Шрифт(,,Истина)); + + Элемент.Оформление.УстановитьЗначениеПараметра("Шрифт", ШрифтыСтиля.СинхронизацияДанныхЖирныйШрифт); // ТаблицаПродолжениеНастройки Элемент = УсловноеОформление.Элементы.Добавить(); @@ -205,24 +205,24 @@ ОтборЭлемента.ВидСравнения = ВидСравненияКомпоновкиДанных.Равно; ОтборЭлемента.ПравоеЗначение = Истина; - Элемент.Оформление.УстановитьЗначениеПараметра("Шрифт", Новый Шрифт(,,Истина)); + Элемент.Оформление.УстановитьЗначениеПараметра("Шрифт", ШрифтыСтиля.СинхронизацияДанныхЖирныйШрифт); КонецПроцедуры &НаСервере Процедура ИнициализацияРеквизитовФормы() - Если Не Параметры.Свойство("ИмяПланаОбмена") Тогда + Если ПустаяСтрока(Параметры.ИмяПланаОбмена) Тогда ВызватьИсключение НСтр("ru = 'Эта форма не предназначена для непосредственного открытия.'", ОбщегоНазначения.КодОсновногоЯзыка()); КонецЕсли; - Параметры.Свойство("ИмяПланаОбмена", ИмяПланаОбмена); - Параметры.Свойство("ИдентификаторТранспорта", ИдентификаторТранспорта); - Параметры.Свойство("ИдентификаторНастройки", ИдентификаторНастройки); - Параметры.Свойство("ВариантРаботыМастера", ВариантРаботыМастера); + ИмяПланаОбмена = Параметры.ИмяПланаОбмена; + ИдентификаторТранспорта = Параметры.ИдентификаторТранспорта; + ИдентификаторНастройки = Параметры.ИдентификаторНастройки; + ВариантРаботыМастера = Параметры.ВариантРаботыМастера; Корреспондент = ПланыОбмена[ИмяПланаОбмена].ПустаяСсылка(); @@ -312,7 +312,7 @@ КонецПроцедуры &НаСервере -Функция ПрочитатьИПроверитьНастройкиПодключения(ИмяФайлаНастроек, Адрес, СообщениеОбОшибке) +Функция ПрочитатьИПроверитьНастройкиПодключения(Знач ИмяФайлаНастроек, Знач Адрес, СообщениеОбОшибке) ИмяВременногоФайла = ПолучитьИмяВременногоФайла(); diff --git a/SSL/src/DataProcessors/ПомощникСозданияОбменаДанными/Forms/ЗагрузкаНастроекXDTO/Module.bsl b/SSL/src/DataProcessors/ПомощникСозданияОбменаДанными/Forms/ЗагрузкаНастроекXDTO/Module.bsl index 8d9174251..3f80a4d1d 100644 --- a/SSL/src/DataProcessors/ПомощникСозданияОбменаДанными/Forms/ЗагрузкаНастроекXDTO/Module.bsl +++ b/SSL/src/DataProcessors/ПомощникСозданияОбменаДанными/Forms/ЗагрузкаНастроекXDTO/Module.bsl @@ -1,5 +1,5 @@ /////////////////////////////////////////////////////////////////////////////////////////////////////// -// Copyright (c) 2024, ООО 1С-Софт +// Copyright (c) 2025, ООО 1С-Софт // Все права защищены. Эта программа и сопроводительные материалы предоставляются // в соответствии с условиями лицензии Attribution 4.0 International (CC BY 4.0) // Текст лицензии доступен по ссылке: diff --git a/SSL/src/DataProcessors/ПомощникСозданияОбменаДанными/Forms/ИзменениеПрефиксаУзлаИБ/Module.bsl b/SSL/src/DataProcessors/ПомощникСозданияОбменаДанными/Forms/ИзменениеПрефиксаУзлаИБ/Module.bsl index 720c41fe6..e62b25f56 100644 --- a/SSL/src/DataProcessors/ПомощникСозданияОбменаДанными/Forms/ИзменениеПрефиксаУзлаИБ/Module.bsl +++ b/SSL/src/DataProcessors/ПомощникСозданияОбменаДанными/Forms/ИзменениеПрефиксаУзлаИБ/Module.bsl @@ -1,5 +1,5 @@ /////////////////////////////////////////////////////////////////////////////////////////////////////// -// Copyright (c) 2024, ООО 1С-Софт +// Copyright (c) 2025, ООО 1С-Софт // Все права защищены. Эта программа и сопроводительные материалы предоставляются // в соответствии с условиями лицензии Attribution 4.0 International (CC BY 4.0) // Текст лицензии доступен по ссылке: diff --git a/SSL/src/DataProcessors/ПомощникСозданияОбменаДанными/Forms/НастройкаОбщихПараметров/Form.form b/SSL/src/DataProcessors/ПомощникСозданияОбменаДанными/Forms/НастройкаОбщихПараметров/Form.form index f89ffc9b6..1169b54f1 100644 --- a/SSL/src/DataProcessors/ПомощникСозданияОбменаДанными/Forms/НастройкаОбщихПараметров/Form.form +++ b/SSL/src/DataProcessors/ПомощникСозданияОбменаДанными/Forms/НастройкаОбщихПараметров/Form.form @@ -8,7 +8,7 @@ ПанельОсновная 1 - СтраницаПолучениеПараметровКорреспондетна + СтраницаПолучениеПараметровКорреспондента 35 ДекорацияПроверкаПодключенияOnlineОжиданиеКартинка @@ -86,10 +86,10 @@ <key>ru</key> - <value>Страница получение параметров корреспондетна</value> + <value>Страница получение параметров корреспондента</value> - СтраницаПолучениеПараметровКорреспондетнаРасширеннаяПодсказка + СтраницаПолучениеПараметровКорреспондентаРасширеннаяПодсказка 36 Label true diff --git a/SSL/src/DataProcessors/ПомощникСозданияОбменаДанными/Forms/НастройкаОбщихПараметров/Module.bsl b/SSL/src/DataProcessors/ПомощникСозданияОбменаДанными/Forms/НастройкаОбщихПараметров/Module.bsl index 817ecd910..8d0ff9482 100644 --- a/SSL/src/DataProcessors/ПомощникСозданияОбменаДанными/Forms/НастройкаОбщихПараметров/Module.bsl +++ b/SSL/src/DataProcessors/ПомощникСозданияОбменаДанными/Forms/НастройкаОбщихПараметров/Module.bsl @@ -1,5 +1,5 @@ /////////////////////////////////////////////////////////////////////////////////////////////////////// -// Copyright (c) 2024, ООО 1С-Софт +// Copyright (c) 2025, ООО 1С-Софт // Все права защищены. Эта программа и сопроводительные материалы предоставляются // в соответствии с условиями лицензии Attribution 4.0 International (CC BY 4.0) // Текст лицензии доступен по ссылке: @@ -514,7 +514,7 @@ // Получение параметров корреспондента &НаКлиенте -Функция Подключаемый_ПолучениеПараметровКорреспондетна_ПриОткрытии(Отказ, ПропуститьСтраницу, Знач ЭтоПереходДалее) Экспорт +Функция Подключаемый_ПолучениеПараметровКорреспондента_ПриОткрытии(Отказ, ПропуститьСтраницу, Знач ЭтоПереходДалее) ФоновоеЗадание = ПолучениеПараметровКорреспондентаНачало(); @@ -548,6 +548,10 @@ &НаКлиенте Процедура ПолучениеПараметровКорреспондентаЗавершение(ФоновоеЗадание, ДополнительныеПараметры) Экспорт + Если ФоновоеЗадание = Неопределено Тогда + Возврат; + КонецЕсли; + Если ФоновоеЗадание.Статус = "Ошибка" Тогда СообщениеОбОшибке = ФоновоеЗадание.ПодробноеПредставлениеОшибки; КонецЕсли; @@ -904,9 +908,9 @@ Переход = ТаблицаПереходов.Добавить(); Переход.ПорядковыйНомерПерехода = 1; - Переход.ИмяОсновнойСтраницы = "СтраницаПолучениеПараметровКорреспондетна"; + Переход.ИмяОсновнойСтраницы = "СтраницаПолучениеПараметровКорреспондента"; Переход.ИмяСтраницыНавигации = "СтраницаНавигацииОжидание"; - Переход.ИмяОбработчикаПриОткрытии = "Подключаемый_ПолучениеПараметровКорреспондетна_ПриОткрытии"; + Переход.ИмяОбработчикаПриОткрытии = "Подключаемый_ПолучениеПараметровКорреспондента_ПриОткрытии"; Переход = ТаблицаПереходов.Добавить(); Переход.ПорядковыйНомерПерехода = 2; diff --git a/SSL/src/DataProcessors/ПомощникСозданияОбменаДанными/Forms/НастройкаСинхронизации/Form.form b/SSL/src/DataProcessors/ПомощникСозданияОбменаДанными/Forms/НастройкаСинхронизации/Form.form index 2d92fc3d5..1a0aa5e0e 100644 --- a/SSL/src/DataProcessors/ПомощникСозданияОбменаДанными/Forms/НастройкаСинхронизации/Form.form +++ b/SSL/src/DataProcessors/ПомощникСозданияОбменаДанными/Forms/НастройкаСинхронизации/Form.form @@ -450,7 +450,7 @@ <key>ru</key> - <value>Выбратьтип подключения</value> + <value>Выбор типа подключения</value> ГруппаВыборТипаТранспортаРасширеннаяПодсказка diff --git a/SSL/src/DataProcessors/ПомощникСозданияОбменаДанными/Forms/НастройкаСинхронизации/Module.bsl b/SSL/src/DataProcessors/ПомощникСозданияОбменаДанными/Forms/НастройкаСинхронизации/Module.bsl index 80dcad1f6..d43dfe327 100644 --- a/SSL/src/DataProcessors/ПомощникСозданияОбменаДанными/Forms/НастройкаСинхронизации/Module.bsl +++ b/SSL/src/DataProcessors/ПомощникСозданияОбменаДанными/Forms/НастройкаСинхронизации/Module.bsl @@ -1,5 +1,5 @@ /////////////////////////////////////////////////////////////////////////////////////////////////////// -// Copyright (c) 2024, ООО 1С-Софт +// Copyright (c) 2025, ООО 1С-Софт // Все права защищены. Эта программа и сопроводительные материалы предоставляются // в соответствии с условиями лицензии Attribution 4.0 International (CC BY 4.0) // Текст лицензии доступен по ссылке: @@ -174,7 +174,7 @@ ПараметрыФормы.Вставить("ПродолжениеНастройкиВПодчиненномУзлеРИБ"); КонецЕсли; - ОповещениеОЗакрытии = Новый ОписаниеОповещения("НастройкаОбщихПараметровЗавершение", ЭтотОбъект); + ОповещениеОЗакрытии = Новый ОписаниеОповещения("НастроитьОбщиеПараметрыЗавершение", ЭтотОбъект); ОткрытьФорму("Обработка.ПомощникСозданияОбменаДанными.Форма.НастройкаОбщихПараметров", ПараметрыФормы, ЭтаФорма,,,, ОповещениеОЗакрытии, РежимОткрытияОкнаФормы.БлокироватьОкноВладельца); @@ -400,7 +400,7 @@ КонецЦикла; ЕстьНастройкиТранспорта = ЗначениеЗаполнено(Объект.НастройкиТранспорта); - + Если Объект.ВариантРаботыМастера = "ПродолжитьНастройкуОбменаДанными" Тогда ТекущийЭтапНастройки = "ВыборТипаТранспорта"; КонецЕсли; @@ -430,7 +430,7 @@ КонецФункции &НаКлиенте -Процедура НастройкаОбщихПараметровЗавершение(РезультатЗакрытия, ДополнительныеПараметры) Экспорт +Процедура НастроитьОбщиеПараметрыЗавершение(РезультатЗакрытия, ДополнительныеПараметры) Экспорт Если РезультатЗакрытия = Неопределено Тогда Возврат; diff --git a/SSL/src/DataProcessors/ПомощникСозданияОбменаДанными/Forms/НоваяСинхронизацияДанных/Module.bsl b/SSL/src/DataProcessors/ПомощникСозданияОбменаДанными/Forms/НоваяСинхронизацияДанных/Module.bsl index fcb548f65..7876fdb7f 100644 --- a/SSL/src/DataProcessors/ПомощникСозданияОбменаДанными/Forms/НоваяСинхронизацияДанных/Module.bsl +++ b/SSL/src/DataProcessors/ПомощникСозданияОбменаДанными/Forms/НоваяСинхронизацияДанных/Module.bsl @@ -1,5 +1,5 @@ /////////////////////////////////////////////////////////////////////////////////////////////////////// -// Copyright (c) 2024, ООО 1С-Софт +// Copyright (c) 2025, ООО 1С-Софт // Все права защищены. Эта программа и сопроводительные материалы предоставляются // в соответствии с условиями лицензии Attribution 4.0 International (CC BY 4.0) // Текст лицензии доступен по ссылке: diff --git a/SSL/src/DataProcessors/ПомощникСозданияОбменаДанными/Forms/НовыйКодПредопределенногоУзла/Module.bsl b/SSL/src/DataProcessors/ПомощникСозданияОбменаДанными/Forms/НовыйКодПредопределенногоУзла/Module.bsl index 66e88691b..42edbcc0e 100644 --- a/SSL/src/DataProcessors/ПомощникСозданияОбменаДанными/Forms/НовыйКодПредопределенногоУзла/Module.bsl +++ b/SSL/src/DataProcessors/ПомощникСозданияОбменаДанными/Forms/НовыйКодПредопределенногоУзла/Module.bsl @@ -1,5 +1,5 @@ /////////////////////////////////////////////////////////////////////////////////////////////////////// -// Copyright (c) 2024, ООО 1С-Софт +// Copyright (c) 2025, ООО 1С-Софт // Все права защищены. Эта программа и сопроводительные материалы предоставляются // в соответствии с условиями лицензии Attribution 4.0 International (CC BY 4.0) // Текст лицензии доступен по ссылке: @@ -18,7 +18,7 @@ КонецЕсли; - Если Общегоназначения.РазделениеВключено() Тогда + Если ОбщегоНазначения.РазделениеВключено() Тогда Элементы.ФормаУстановитьНовыйКод.Доступность = Ложь; Элементы.ГруппаПанель.ТекущаяСтраница = Элементы.СтраницаРаботаВСервисе; diff --git a/SSL/src/DataProcessors/ПомощникСозданияОбменаДанными/Forms/ПереходНаИнтернетСоединение/Module.bsl b/SSL/src/DataProcessors/ПомощникСозданияОбменаДанными/Forms/ПереходНаИнтернетСоединение/Module.bsl index 741baedc5..d97abc7ba 100644 --- a/SSL/src/DataProcessors/ПомощникСозданияОбменаДанными/Forms/ПереходНаИнтернетСоединение/Module.bsl +++ b/SSL/src/DataProcessors/ПомощникСозданияОбменаДанными/Forms/ПереходНаИнтернетСоединение/Module.bsl @@ -1,5 +1,5 @@ /////////////////////////////////////////////////////////////////////////////////////////////////////// -// Copyright (c) 2024, ООО 1С-Софт +// Copyright (c) 2025, ООО 1С-Софт // Все права защищены. Эта программа и сопроводительные материалы предоставляются // в соответствии с условиями лицензии Attribution 4.0 International (CC BY 4.0) // Текст лицензии доступен по ссылке: diff --git a/SSL/src/DataProcessors/ПомощникСозданияОбменаДанными/Forms/ПовторнаяСинхронизацияДанныхПередЗапуском/Form.form b/SSL/src/DataProcessors/ПомощникСозданияОбменаДанными/Forms/ПовторнаяСинхронизацияДанныхПередЗапуском/Form.form index d2b8a493d..28f23b401 100644 --- a/SSL/src/DataProcessors/ПомощникСозданияОбменаДанными/Forms/ПовторнаяСинхронизацияДанныхПередЗапуском/Form.form +++ b/SSL/src/DataProcessors/ПомощникСозданияОбменаДанными/Forms/ПовторнаяСинхронизацияДанныхПередЗапуском/Form.form @@ -52,7 +52,7 @@ <key>ru</key> <value>Нажмите <b>Синхронизировать</><b> </><b>и</><b> </><b>продолжить,</> чтобы получить -обновление приложения еще раз (рекомендуется). +обновление приложения еще раз (рекомендуется) или загрузите сообщение из архива. </value> true @@ -84,10 +84,10 @@ ГруппаСообщениеИзАрхива - 89 + 79 ЗаглушкаСообщениеИзАрхива - 91 + 81 true true @@ -95,7 +95,7 @@ ЗаглушкаСообщениеИзАрхиваРасширеннаяПодсказка - 93 + 83 Label true true @@ -105,7 +105,7 @@ ЗаглушкаСообщениеИзАрхиваКонтекстноеМеню - 92 + 82 true Label @@ -117,7 +117,7 @@ ПродолжитьЗагрузкуСообщениемИзАрхива - 94 + 86 <key>ru</key> <value>Продолжить загрузку сообщением из архива</value> @@ -137,7 +137,7 @@ </handlers> <extendedTooltip> <name>ПродолжитьЗагрузкуСообщениемИзАрхиваРасширеннаяПодсказка</name> - <id>96</id> + <id>88</id> <type>Label</type> <autoMaxWidth>true</autoMaxWidth> <autoMaxHeight>true</autoMaxHeight> @@ -147,7 +147,7 @@ </extendedTooltip> <contextMenu> <name>ПродолжитьЗагрузкуСообщениемИзАрхиваКонтекстноеМеню</name> - <id>95</id> + <id>87</id> <autoFill>true</autoFill> </contextMenu> <type>CheckBoxField</type> @@ -159,7 +159,7 @@ </items> <items xsi:type="form:Button"> <name>ОткрытьСообщениеИзАрхива</name> - <id>97</id> + <id>84</id> <title> <key>ru</key> <value><Сообщение в архиве отсутствует></value> @@ -171,7 +171,7 @@ </userVisible> <extendedTooltip> <name>ОткрытьСообщениеИзАрхиваРасширеннаяПодсказка</name> - <id>98</id> + <id>85</id> <type>Label</type> <autoMaxWidth>true</autoMaxWidth> <autoMaxHeight>true</autoMaxHeight> @@ -199,7 +199,7 @@ ГруппаСообщениеИзАрхиваРасширеннаяПодсказка - 90 + 80 Label true true @@ -1106,7 +1106,7 @@ ПериодЗаписиАрхивногоСообщения - 17 + 15 Date @@ -1124,7 +1124,7 @@ ru Продолжить загрузку сообщением из архива - 18 + 16 Boolean @@ -1135,6 +1135,28 @@ true + + ПараметрыОбработчикаОжиданияОбмена + 19 + + + true + + + true + + + + ПараметрыОбработчикаОбмена + 20 + + + true + + + true + + СинхронизироватьИПродолжить @@ -1251,7 +1273,7 @@ <key>ru</key> <value>Открыть сообщение из архива</value> - 7 + 6 true diff --git a/SSL/src/DataProcessors/ПомощникСозданияОбменаДанными/Forms/ПовторнаяСинхронизацияДанныхПередЗапуском/Module.bsl b/SSL/src/DataProcessors/ПомощникСозданияОбменаДанными/Forms/ПовторнаяСинхронизацияДанныхПередЗапуском/Module.bsl index 94003fd38..fb5da598b 100644 --- a/SSL/src/DataProcessors/ПомощникСозданияОбменаДанными/Forms/ПовторнаяСинхронизацияДанныхПередЗапуском/Module.bsl +++ b/SSL/src/DataProcessors/ПомощникСозданияОбменаДанными/Forms/ПовторнаяСинхронизацияДанныхПередЗапуском/Module.bsl @@ -1,5 +1,5 @@ /////////////////////////////////////////////////////////////////////////////////////////////////////// -// Copyright (c) 2024, ООО 1С-Софт +// Copyright (c) 2025, ООО 1С-Софт // Все права защищены. Эта программа и сопроводительные материалы предоставляются // в соответствии с условиями лицензии Attribution 4.0 International (CC BY 4.0) // Текст лицензии доступен по ссылке: @@ -48,9 +48,9 @@ &НаКлиенте Процедура ПриОткрытии(Отказ) - + ПодключитьОбработчикОжидания("ЗаполнитьИнформациюОСообщенииИзАрхива", 60, Ложь); - + КонецПроцедуры #КонецОбласти @@ -85,7 +85,6 @@ ТекстПредупреждения = ""; ЕстьОшибки = Ложь; - ДлительнаяОперация = Ложь; ПроверитьНеобходимостьОбновления(); @@ -104,12 +103,6 @@ КонецЕсли; - Если Не ДлительнаяОперация Тогда - - СинхронизироватьИПродолжитьЗавершение(); - - КонецЕсли; - КонецПроцедуры &НаКлиенте @@ -124,8 +117,15 @@ &НаКлиенте Процедура ЗавершитьРаботу(Команда) + Если ЗначениеЗаполнено(ПараметрыОбработчикаОбмена) Тогда + ОтменитьВыполнениеЗадания(ПараметрыОбработчикаОбмена.ИдентификаторОперации); + КонецЕсли; + + ОтключитьОбработчикОжидания("ПриОжиданииЗагрузкиСообщенияОбменаДаннымиБезОбновленияИБ"); + ОтключитьОбработчикОжидания("ПриОжиданииЗагрузкиСообщенияОбменаДаннымиСОбновлением"); + Закрыть(); - + КонецПроцедуры &НаКлиенте @@ -166,24 +166,128 @@ ПараметрыЗаписи, ЭтотОбъект, УникальныйИдентификатор); - + КонецПроцедуры #КонецОбласти #Область СлужебныеПроцедурыИФункции -//////////////////////////////////////////////////////////////////////////////// -// Сценарий без обновления информационной базы. +#Область СценарийБезОбновленияИнформационнойБазы &НаКлиенте Процедура СинхронизироватьИПродолжитьБезОбновленияИБ() - ЗагрузитьСообщениеОбменаДаннымиБезОбновления(); - СинхронизироватьИПродолжитьБезОбновленияИБЗавершение(); + ПодключитьОбработчикОжидания("ПриНачалеЗагрузкиСообщенияОбменаДаннымиБезОбновленияИБ", 0.1, Истина); + + НастройкаЭлементовФормыДлительнойОперации(Истина); + +КонецПроцедуры + +&НаКлиенте +Процедура ПриНачалеЗагрузкиСообщенияОбменаДаннымиБезОбновленияИБ() + + ПродолжитьОжидание = Истина; + ПриНачалеЗагрузкиСообщенияОбменаДаннымиБезОбновленияИБНаСервере(ПродолжитьОжидание); + + Если ПродолжитьОжидание Тогда + ОбменДаннымиКлиент.ИнициализироватьПараметрыОбработчикаОжидания( + ПараметрыОбработчикаОжиданияОбмена); + + ПодключитьОбработчикОжидания("ПриОжиданииЗагрузкиСообщенияОбменаДаннымиБезОбновленияИБ", + ПараметрыОбработчикаОжиданияОбмена.ТекущийИнтервал, Истина); + Иначе + ПодключитьОбработчикОжидания("ПриЗавершенииЗагрузкиСообщенияОбменаДаннымиБезОбновленияИБ", 0.1, Истина); + КонецЕсли; + +КонецПроцедуры + +&НаСервере +Процедура ПриНачалеЗагрузкиСообщенияОбменаДаннымиБезОбновленияИБНаСервере(ПродолжитьОжидание) + + ДанныеАутентификации = Новый Структура; + + Если ЭтоАвтономноеРабочееМесто Тогда + ДанныеАутентификации.Вставить("ИмяПользователя", ИмяПользователя); + ДанныеАутентификации.Вставить("Пароль", Пароль); + КонецЕсли; + + ПараметрыПроцедуры = Новый Структура; + ПараметрыПроцедуры.Вставить("ПродолжитьЗагрузкуСообщениемИзАрхива", ПродолжитьЗагрузкуСообщениемИзАрхива); + ПараметрыПроцедуры.Вставить("УзелИнформационнойБазы", УзелИнформационнойБазы); + ПараметрыПроцедуры.Вставить("ДанныеАутентификации", ДанныеАутентификации); + ПараметрыПроцедуры.Вставить("ЕстьОшибки", Ложь); + + ДатаНачалаОперации = ТекущаяДатаСеанса(); + + ПараметрыОбработчикаОбмена = Неопределено; + + МодульПомощникСозданияОбменаДанными = ОбменДаннымиСервер.МодульПомощникСозданияОбменаДанными(); + МодульПомощникСозданияОбменаДанными.ПриНачалеЗагрузкиСообщенияОбменаДаннымиБезОбновленияИБ(ПараметрыПроцедуры, + ПараметрыОбработчикаОбмена, ПродолжитьОжидание); КонецПроцедуры +&НаКлиенте +Процедура ПриОжиданииЗагрузкиСообщенияОбменаДаннымиБезОбновленияИБ() + + ПродолжитьОжидание = Ложь; + ПриОжиданииЗагрузкиСообщенияОбменаДаннымиБезОбновленияИБНаСервере(ПараметрыОбработчикаОбмена, ПродолжитьОжидание); + + Если ПродолжитьОжидание Тогда + ОбменДаннымиКлиент.ОбновитьПараметрыОбработчикаОжидания(ПараметрыОбработчикаОжиданияОбмена); + + ПодключитьОбработчикОжидания("ПриОжиданииЗагрузкиСообщенияОбменаДаннымиБезОбновленияИБ", + ПараметрыОбработчикаОжиданияОбмена.ТекущийИнтервал, Истина); + Иначе + ПодключитьОбработчикОжидания("ПриЗавершенииЗагрузкиСообщенияОбменаДаннымиБезОбновленияИБ", 0.1, Истина); + КонецЕсли; + +КонецПроцедуры + +&НаСервереБезКонтекста +Процедура ПриОжиданииЗагрузкиСообщенияОбменаДаннымиБезОбновленияИБНаСервере(ПараметрыОбработчика, ПродолжитьОжидание) + + МодульПомощникСозданияОбменаДанными = ОбменДаннымиСервер.МодульПомощникСозданияОбменаДанными(); + МодульПомощникСозданияОбменаДанными.ПриОжиданииЗагрузкиСообщенияПередОбновлениемИнформационнойБазы(ПараметрыОбработчика, ПродолжитьОжидание); + +КонецПроцедуры + +&НаКлиенте +Процедура ПриЗавершенииЗагрузкиСообщенияОбменаДаннымиБезОбновленияИБ() + + СообщениеОбОшибке = ""; + + ПриЗавершенииЗагрузкиСообщенияОбменаДаннымиБезОбновленияИБНаСервере(ПараметрыОбработчикаОбмена, СообщениеОбОшибке); + + Если Не ПустаяСтрока(СообщениеОбОшибке) Тогда + ОбщегоНазначенияКлиент.СообщитьПользователю(СообщениеОбОшибке,,,, ЕстьОшибки); + КонецЕсли; + + СинхронизироватьИПродолжитьБезОбновленияИБЗавершение(); + + СинхронизироватьИПродолжитьЗавершение(); + +КонецПроцедуры + +&НаСервереБезКонтекста +Процедура ПриЗавершенииЗагрузкиСообщенияОбменаДаннымиБезОбновленияИБНаСервере(ПараметрыОбработчика, СообщениеОбОшибке) + + СтатусЗавершения = Неопределено; + + МодульПомощникСозданияОбменаДанными = ОбменДаннымиСервер.МодульПомощникСозданияОбменаДанными(); + МодульПомощникСозданияОбменаДанными.ПриЗавершенииЗагрузкиСообщенияПередОбновлениемИнформационнойБазы(ПараметрыОбработчика, СтатусЗавершения); + + Если СтатусЗавершения.Отказ Тогда + СообщениеОбОшибке = СтатусЗавершения.СообщениеОбОшибке; + Иначе + Если СтатусЗавершения.Результат <> Неопределено И СтатусЗавершения.Результат.Отказ Тогда + СообщениеОбОшибке = СтатусЗавершения.Результат.СообщениеОбОшибке; + КонецЕсли; + КонецЕсли; + +КонецПроцедуры + &НаСервере Процедура СинхронизироватьИПродолжитьБезОбновленияИБЗавершение() @@ -201,23 +305,7 @@ Если Не ЕстьОшибки Тогда - ОбменДаннымиСервер.УстановитьРежимЗагрузкиСообщенияОбменаДаннымиПередЗапуском("ЗагрузкаРазрешена", Ложь); - - // Если сообщение загружено успешно, тогда повторная загрузка более не требуется. - Если Константы.ЗагрузитьСообщениеОбменаДанными.Получить() Тогда - Константы.ЗагрузитьСообщениеОбменаДанными.Установить(Ложь); - КонецЕсли; - Константы.ПовторитьЗагрузкуСообщенияОбменаДаннымиПередЗапуском.Установить(Ложь); - - Попытка - ВыгрузитьСообщениеПослеОбновленияИнформационнойБазы(); - Исключение - // Если выгрузка не удалась все равно можно продолжить запуск и - // сделать выгрузку в режиме 1С:Предприятия. - КлючСообщенияЖурналаРегистрации = ОбменДаннымиСервер.СобытиеЖурналаРегистрацииОбменДанными(); - ЗаписьЖурналаРегистрации(КлючСообщенияЖурналаРегистрации, - УровеньЖурналаРегистрации.Ошибка,,, ОбработкаОшибок.ПодробноеПредставлениеОшибки(ИнформацияОбОшибке())); - КонецПопытки; + Возврат; ИначеЕсли КонфигурацияИзменена() Тогда Если НЕ Константы.ЗагрузитьСообщениеОбменаДанными.Получить() Тогда @@ -240,142 +328,123 @@ КонецПроцедуры -&НаСервере -Процедура ВыгрузитьСообщениеПослеОбновленияИнформационнойБазы() - - // После успешной загрузки и обновления ИБ режим повтора можно отключить. - ОбменДаннымиСервер.ОтключитьПовторениеЗагрузкиСообщенияОбменаДаннымиПередЗапуском(); - - Попытка - Если ПолучитьФункциональнуюОпцию("ИспользоватьСинхронизациюДанных") Тогда - - УзелИнформационнойБазы = ОбменДаннымиСервер.ГлавныйУзел(); - - Если УзелИнформационнойБазы <> Неопределено Тогда - - ВыполнитьВыгрузку = Истина; - - ИдентификаторТранспорта = ТранспортСообщенийОбмена.ТранспортПоУмолчанию(УзелИнформационнойБазы); - - Если ВыполнитьВыгрузку Тогда - - ДанныеАутентификации = Новый Структура; - Если ЭтоАвтономноеРабочееМесто Тогда - ДанныеАутентификации.Вставить("ИмяПользователя", ИмяПользователя); - ДанныеАутентификации.Вставить("Пароль", Пароль); - КонецЕсли; - - // Только выгрузка. - Отказ = Ложь; - - ПараметрыОбмена = ОбменДаннымиСервер.ПараметрыОбмена(); - ПараметрыОбмена.ИдентификаторТранспорта = ИдентификаторТранспорта; - ПараметрыОбмена.ВыполнятьЗагрузку = Ложь; - ПараметрыОбмена.ВыполнятьВыгрузку = Истина; - ПараметрыОбмена.ДанныеАутентификации = ДанныеАутентификации; - ПараметрыОбмена.ИнтервалОжиданияНаСервере = 15; - - ОбменДаннымиСервер.ВыполнитьОбменДаннымиДляУзлаИнформационнойБазы(УзелИнформационнойБазы, ПараметрыОбмена, Отказ); - - КонецЕсли; - - КонецЕсли; - - КонецЕсли; - - Исключение - ЗаписьЖурналаРегистрации(ОбменДаннымиСервер.СобытиеЖурналаРегистрацииОбменДанными(), - УровеньЖурналаРегистрации.Ошибка,,, ОбработкаОшибок.ПодробноеПредставлениеОшибки(ИнформацияОбОшибке())); - КонецПопытки; - -КонецПроцедуры +#КонецОбласти -&НаСервере -Процедура ЗагрузитьСообщениеОбменаДаннымиБезОбновления() - - Попытка - ЗагрузитьСообщениеПередОбновлениемИнформационнойБазы(); - Исключение - ЗаписьЖурналаРегистрации(ОбменДаннымиСервер.СобытиеЖурналаРегистрацииОбменДанными(), - УровеньЖурналаРегистрации.Ошибка,,, ОбработкаОшибок.ПодробноеПредставлениеОшибки(ИнформацияОбОшибке())); - ЕстьОшибки = Истина; - КонецПопытки; - - УстановитьОтображениеЭлементовФормы(); - -КонецПроцедуры - -&НаСервере -Процедура ЗагрузитьСообщениеПередОбновлениемИнформационнойБазы() - - Если ОбменДаннымиСлужебный.РежимЗагрузкиСообщенияОбменаДаннымиПередЗапуском( - "ПропуститьЗагрузкуСообщенияОбменаДаннымиПередЗапуском") Тогда - Возврат; - КонецЕсли; - - Если ПолучитьФункциональнуюОпцию("ИспользоватьСинхронизациюДанных") Тогда - - Если УзелИнформационнойБазы <> Неопределено Тогда - - УстановитьПривилегированныйРежим(Истина); - ОбменДаннымиСервер.УстановитьРежимЗагрузкиСообщенияОбменаДаннымиПередЗапуском("ЗагрузкаРазрешена", Истина); - УстановитьПривилегированныйРежим(Ложь); - - // Обновление правил регистрации объектов выполняем до загрузки данных. - ОбменДаннымиСервер.ВыполнитьОбновлениеПравилДляОбменаДанными(); - - ИдентификаторТранспорта = ТранспортСообщенийОбмена.ТранспортПоУмолчанию(УзелИнформационнойБазы); - - ДатаНачалаОперации = ТекущаяДатаСеанса(); - - ДанныеАутентификации = Новый Структура; - Если ЭтоАвтономноеРабочееМесто Тогда - ДанныеАутентификации.Вставить("ИмяПользователя", ИмяПользователя); - ДанныеАутентификации.Вставить("Пароль", Пароль); - КонецЕсли; - - Если ПродолжитьЗагрузкуСообщениемИзАрхива Тогда - СохранитьСообщениеИзАрхиваВКэш(); - КонецЕсли; - - // Только загрузка. - ПараметрыОбмена = ОбменДаннымиСервер.ПараметрыОбмена(); - ПараметрыОбмена.ИдентификаторТранспорта = ИдентификаторТранспорта; - ПараметрыОбмена.ВыполнятьЗагрузку = Истина; - ПараметрыОбмена.ВыполнятьВыгрузку = Ложь; - - ПараметрыОбмена.ДлительнаяОперацияРазрешена = ДлительнаяОперацияРазрешена; - ПараметрыОбмена.ДлительнаяОперация = ДлительнаяОперация; - ПараметрыОбмена.ИдентификаторОперации = ИдентификаторОперации; - ПараметрыОбмена.ИдентификаторФайла = ИдентификаторФайла; - ПараметрыОбмена.ДанныеАутентификации = ДанныеАутентификации; - ПараметрыОбмена.ИнтервалОжиданияНаСервере = 15; - - ОбменДаннымиСервер.ВыполнитьОбменДаннымиДляУзлаИнформационнойБазы(УзелИнформационнойБазы, ПараметрыОбмена, ЕстьОшибки); - - ДлительнаяОперацияРазрешена = ПараметрыОбмена.ДлительнаяОперацияРазрешена; - ДлительнаяОперация = ПараметрыОбмена.ДлительнаяОперация; - ИдентификаторОперации = ПараметрыОбмена.ИдентификаторОперации; - ИдентификаторФайла = ПараметрыОбмена.ИдентификаторФайла; - ДанныеАутентификации = ПараметрыОбмена.ДанныеАутентификации; - - КонецЕсли; - - КонецЕсли; - -КонецПроцедуры - -//////////////////////////////////////////////////////////////////////////////// -// Сценарий с обновлением информационной базы. +#Область СценарийСОбновлениемИнформационнойБазы &НаКлиенте Процедура СинхронизироватьИПродолжитьСОбновлениемИБ() - ЗагрузитьСообщениеОбменаДаннымиСОбновлением(); - СинхронизироватьИПродолжитьСОбновлениемИБЗавершение(); + ПодключитьОбработчикОжидания("ПриНачалеЗагрузкиСообщенияОбменаДаннымиСОбновлением", 0.1, Истина); + + НастройкаЭлементовФормыДлительнойОперации(Истина); КонецПроцедуры +&НаКлиенте +Процедура ПриНачалеЗагрузкиСообщенияОбменаДаннымиСОбновлением() + + ПродолжитьОжидание = Истина; + ПриНачалеЗагрузкиСообщенияОбменаДаннымиСОбновлениемНаСервере(ПродолжитьОжидание); + + Если ПродолжитьОжидание Тогда + ОбменДаннымиКлиент.ИнициализироватьПараметрыОбработчикаОжидания( + ПараметрыОбработчикаОжиданияОбмена); + + ПодключитьОбработчикОжидания("ПриОжиданииЗагрузкиСообщенияОбменаДаннымиСОбновлением", + ПараметрыОбработчикаОжиданияОбмена.ТекущийИнтервал, Истина); + Иначе + ПодключитьОбработчикОжидания("ПриЗавершенииЗагрузкиСообщенияОбменаДаннымиСОбновлением", 0.1, Истина); + КонецЕсли; + +КонецПроцедуры + +&НаСервере +Процедура ПриНачалеЗагрузкиСообщенияОбменаДаннымиСОбновлениемНаСервере(ПродолжитьОжидание) + + ДанныеАутентификации = Новый Структура; + + Если ЭтоАвтономноеРабочееМесто Тогда + ДанныеАутентификации.Вставить("ИмяПользователя", ИмяПользователя); + ДанныеАутентификации.Вставить("Пароль", Пароль); + КонецЕсли; + + ПараметрыПроцедуры = Новый Структура; + ПараметрыПроцедуры.Вставить("ПродолжитьЗагрузкуСообщениемИзАрхива", ПродолжитьЗагрузкуСообщениемИзАрхива); + ПараметрыПроцедуры.Вставить("УзелИнформационнойБазы", УзелИнформационнойБазы); + ПараметрыПроцедуры.Вставить("ДанныеАутентификации", ДанныеАутентификации); + ПараметрыПроцедуры.Вставить("ЕстьОшибки", ЕстьОшибки); + + ДатаНачалаОперации = ТекущаяДатаСеанса(); + + ПараметрыОбработчикаОбмена = Неопределено; + + МодульПомощникСозданияОбменаДанными = ОбменДаннымиСервер.МодульПомощникСозданияОбменаДанными(); + МодульПомощникСозданияОбменаДанными.ПриНачалеЗагрузкиСообщенияОбменаДаннымиСОбновлением(ПараметрыПроцедуры, + ПараметрыОбработчикаОбмена, ПродолжитьОжидание); + +КонецПроцедуры + +&НаКлиенте +Процедура ПриОжиданииЗагрузкиСообщенияОбменаДаннымиСОбновлением() + + ПродолжитьОжидание = Ложь; + ПриОжиданииЗагрузкиСообщенияОбменаДаннымиСОбновлениемНаСервере(ПараметрыОбработчикаОбмена, ПродолжитьОжидание); + + Если ПродолжитьОжидание Тогда + ОбменДаннымиКлиент.ОбновитьПараметрыОбработчикаОжидания(ПараметрыОбработчикаОжиданияОбмена); + + ПодключитьОбработчикОжидания("ПриОжиданииЗагрузкиСообщенияОбменаДаннымиСОбновлением", + ПараметрыОбработчикаОжиданияОбмена.ТекущийИнтервал, Истина); + Иначе + ПодключитьОбработчикОжидания("ПриЗавершенииЗагрузкиСообщенияОбменаДаннымиСОбновлением", 0.1, Истина); + КонецЕсли; + +КонецПроцедуры + +&НаСервереБезКонтекста +Процедура ПриОжиданииЗагрузкиСообщенияОбменаДаннымиСОбновлениемНаСервере(ПараметрыОбработчика, ПродолжитьОжидание) + + МодульПомощникСозданияОбменаДанными = ОбменДаннымиСервер.МодульПомощникСозданияОбменаДанными(); + МодульПомощникСозданияОбменаДанными.ПриОжиданииЗагрузкиСообщенияОбменаДаннымиСОбновлением(ПараметрыОбработчика, ПродолжитьОжидание); + +КонецПроцедуры + +&НаКлиенте +Процедура ПриЗавершенииЗагрузкиСообщенияОбменаДаннымиСОбновлением() + + СообщениеОбОшибке = ""; + + ПриЗавершенииЗагрузкиСообщенияОбменаДаннымиСОбновлениемНаСервере(ПараметрыОбработчикаОбмена, СообщениеОбОшибке); + + Если Не ПустаяСтрока(СообщениеОбОшибке) Тогда + ОбщегоНазначенияКлиент.СообщитьПользователю(СообщениеОбОшибке,,,, ЕстьОшибки); + КонецЕсли; + + СинхронизироватьИПродолжитьСОбновлениемИБЗавершение(); + + СинхронизироватьИПродолжитьЗавершение(); + +КонецПроцедуры + +&НаСервереБезКонтекста +Процедура ПриЗавершенииЗагрузкиСообщенияОбменаДаннымиСОбновлениемНаСервере(ПараметрыОбработчика, СообщениеОбОшибке) + + СтатусЗавершения = Неопределено; + + МодульПомощникСозданияОбменаДанными = ОбменДаннымиСервер.МодульПомощникСозданияОбменаДанными(); + МодульПомощникСозданияОбменаДанными.ПриЗавершенииЗагрузкиСообщенияОбменаДаннымиСОбновлением(ПараметрыОбработчика, СтатусЗавершения); + + Если СтатусЗавершения.Отказ Тогда + СообщениеОбОшибке = СтатусЗавершения.СообщениеОбОшибке; + Иначе + Если СтатусЗавершения.Результат <> Неопределено И СтатусЗавершения.Результат.Отказ Тогда + СообщениеОбОшибке = СтатусЗавершения.Результат.СообщениеОбОшибке; + КонецЕсли; + КонецЕсли; + +КонецПроцедуры + &НаСервере Процедура СинхронизироватьИПродолжитьСОбновлениемИБЗавершение() @@ -413,108 +482,9 @@ КонецПроцедуры -&НаСервере -Процедура ЗагрузитьСообщениеОбменаДаннымиСОбновлением() - - Попытка - ЗагрузитьПриоритетныеДанныеВПодчиненныйУзелРИБ(); - Исключение - ЗаписьЖурналаРегистрации(ОбменДаннымиСервер.СобытиеЖурналаРегистрацииОбменДанными(), - УровеньЖурналаРегистрации.Ошибка,,, ОбработкаОшибок.ПодробноеПредставлениеОшибки(ИнформацияОбОшибке())); - ЕстьОшибки = Истина; - КонецПопытки; - - УстановитьОтображениеЭлементовФормы(); - -КонецПроцедуры +#КонецОбласти -&НаСервере -Процедура ЗагрузитьПриоритетныеДанныеВПодчиненныйУзелРИБ() - - Если ОбменДаннымиСлужебный.РежимЗагрузкиСообщенияОбменаДаннымиПередЗапуском( - "ПропуститьЗагрузкуСообщенияОбменаДаннымиПередЗапуском") Тогда - Возврат; - КонецЕсли; - - Если ОбменДаннымиСлужебный.РежимЗагрузкиСообщенияОбменаДаннымиПередЗапуском( - "ПропуститьЗагрузкуПриоритетныхДанныхПередЗапуском") Тогда - Возврат; - КонецЕсли; - - УстановитьПривилегированныйРежим(Истина); - ОбменДаннымиСервер.УстановитьРежимЗагрузкиСообщенияОбменаДаннымиПередЗапуском("ЗагрузкаРазрешена", Истина); - УстановитьПривилегированныйРежим(Ложь); - - ПроверитьИспользованиеСинхронизацииДанных(); - - Если ПолучитьФункциональнуюОпцию("ИспользоватьСинхронизациюДанных") Тогда - - УзелИнформационнойБазы = ОбменДаннымиСервер.ГлавныйУзел(); - - Если УзелИнформационнойБазы <> Неопределено Тогда - - ИдентификаторТранспорта = ТранспортСообщенийОбмена.ТранспортПоУмолчанию(УзелИнформационнойБазы); - Если ИдентификаторТранспорта = Неопределено Тогда - - Справочники.НастройкиТранспортаСообщенийОбмена.ОбработатьДанныеДляПереходаНаНовуюВерсию(); - ИдентификаторТранспорта = ТранспортСообщенийОбмена.ТранспортПоУмолчанию(УзелИнформационнойБазы); - - КонецЕсли; - - ИмяПараметра = "СтандартныеПодсистемы.ОбменДанными.ПравилаРегистрации." - + ОбменДаннымиПовтИсп.ПолучитьИмяПланаОбмена(УзелИнформационнойБазы); - ПравилаРегистрацииОбновлены = СтандартныеПодсистемыСервер.ПараметрРаботыПрограммы(ИмяПараметра); - Если ПравилаРегистрацииОбновлены = Неопределено Тогда - ОбменДаннымиСервер.ВыполнитьОбновлениеПравилДляОбменаДанными(); - КонецЕсли; - ПравилаРегистрацииОбновлены = СтандартныеПодсистемыСервер.ПараметрРаботыПрограммы(ИмяПараметра); - Если ПравилаРегистрацииОбновлены = Неопределено Тогда - ВызватьИсключение СтроковыеФункцииКлиентСервер.ПодставитьПараметрыВСтроку( - НСтр("ru = 'Не выполнено обновление кэша правил регистрации данных для плана обмена ""%1""'"), - ОбменДаннымиПовтИсп.ПолучитьИмяПланаОбмена(УзелИнформационнойБазы)); - КонецЕсли; - - ДатаНачалаОперации = ТекущаяДатаСеанса(); - - ДанныеАутентификации = Новый Структура; - Если ЭтоАвтономноеРабочееМесто Тогда - ДанныеАутентификации.Вставить("ИмяПользователя", ИмяПользователя); - ДанныеАутентификации.Вставить("Пароль", Пароль); - КонецЕсли; - - Если ПродолжитьЗагрузкуСообщениемИзАрхива Тогда - СохранитьСообщениеИзАрхиваВКэш(); - КонецЕсли; - - // Загрузка только параметров работы программы. - ПараметрыОбмена = ОбменДаннымиСервер.ПараметрыОбмена(); - ПараметрыОбмена.ИдентификаторТранспорта = ИдентификаторТранспорта; - ПараметрыОбмена.ВыполнятьЗагрузку = Истина; - ПараметрыОбмена.ВыполнятьВыгрузку = Ложь; - ПараметрыОбмена.ТолькоПараметры = Истина; - - ПараметрыОбмена.ДлительнаяОперацияРазрешена = ДлительнаяОперацияРазрешена; - ПараметрыОбмена.ДлительнаяОперация = ДлительнаяОперация; - ПараметрыОбмена.ИдентификаторОперации = ИдентификаторОперации; - ПараметрыОбмена.ИдентификаторФайла = ИдентификаторФайла; - ПараметрыОбмена.ДанныеАутентификации = ДанныеАутентификации; - ПараметрыОбмена.ИнтервалОжиданияНаСервере = 15; - - ОбменДаннымиСервер.ВыполнитьОбменДаннымиДляУзлаИнформационнойБазы(УзелИнформационнойБазы, ПараметрыОбмена, ЕстьОшибки); - - ДлительнаяОперацияРазрешена = ПараметрыОбмена.ДлительнаяОперацияРазрешена; - ДлительнаяОперация = ПараметрыОбмена.ДлительнаяОперация; - ИдентификаторОперации = ПараметрыОбмена.ИдентификаторОперации; - ИдентификаторФайла = ПараметрыОбмена.ИдентификаторФайла; - - КонецЕсли; - - КонецЕсли; - -КонецПроцедуры - -//////////////////////////////////////////////////////////////////////////////// -// Сценарий без синхронизации +#Область СценарийБезСинхронизации &НаСервере Процедура НеСинхронизироватьИПродолжитьНаСервере() @@ -533,8 +503,7 @@ КонецПроцедуры -//////////////////////////////////////////////////////////////////////////////// -// Служебные процедуры и функции. +#КонецОбласти &НаСервере Процедура ПроверитьНеобходимостьОбновления() @@ -557,12 +526,13 @@ УстановитьОтображениеЭлементовФормы(); Если ПустаяСтрока(ТекстПредупреждения) Тогда + ПоказатьОповещениеПользователя(НСтр("ru = 'Автономная работа'"), , НСтр("ru = 'Повторная синхронизация данных завершена.'"), БиблиотекаКартинок.Информация32, СтатусОповещенияПользователя.Важное); - + Закрыть("Продолжить"); Иначе ПоказатьПредупреждение(, ТекстПредупреждения); @@ -582,37 +552,6 @@ КонецПроцедуры -&НаСервере -Процедура ПроверитьИспользованиеСинхронизацииДанных() - - Если НЕ ПолучитьФункциональнуюОпцию("ИспользоватьСинхронизациюДанных") Тогда - - Если ОбщегоНазначения.РазделениеВключено() Тогда - - ИспользоватьСинхронизациюДанных = Константы.ИспользоватьСинхронизациюДанных.СоздатьМенеджерЗначения(); - ИспользоватьСинхронизациюДанных.ДополнительныеСвойства.Вставить("ОтключитьМеханизмРегистрацииОбъектов"); - ИспользоватьСинхронизациюДанных.ОбменДанными.Загрузка = Истина; - ИспользоватьСинхронизациюДанных.Значение = Истина; - ИспользоватьСинхронизациюДанных.Записать(); - - Иначе - - Если ОбменДаннымиСервер.ПолучитьИспользуемыеПланыОбмена().Количество() > 0 Тогда - - ИспользоватьСинхронизациюДанных = Константы.ИспользоватьСинхронизациюДанных.СоздатьМенеджерЗначения(); - ИспользоватьСинхронизациюДанных.ДополнительныеСвойства.Вставить("ОтключитьМеханизмРегистрацииОбъектов"); - ИспользоватьСинхронизациюДанных.ОбменДанными.Загрузка = Истина; - ИспользоватьСинхронизациюДанных.Значение = Истина; - ИспользоватьСинхронизациюДанных.Записать(); - - КонецЕсли; - - КонецЕсли; - - КонецЕсли; - -КонецПроцедуры - &НаСервере Процедура УстановитьОтображениеЭлементовФормы() @@ -667,14 +606,29 @@ Элементы.ПродолжитьЗагрузкуСообщениемИзАрхива.ТолькоПросмотр = Ложь; ПериодЗаписиАрхивногоСообщения = Выборка.Период; - КонецЕсли; + КонецЕсли; КонецПроцедуры -&НаСервере -Процедура СохранитьСообщениеИзАрхиваВКэш() +&НаКлиенте +Процедура НастройкаЭлементовФормыДлительнойОперации(ДлительнаяОперацияВыполняется) + + Если ДлительнаяОперацияВыполняется Тогда + Элементы.ПанельОсновная.ТекущаяСтраница = Элементы.ДлительнаяОперация; + Элементы.ГруппаКнопокОсновная.Видимость = Ложь; + Элементы.ГруппаКнопокДлительнаяОперация.Видимость = Истина; + Иначе + Элементы.ПанельОсновная.ТекущаяСтраница = Элементы.Начало; + Элементы.ГруппаКнопокОсновная.Видимость = Истина; + Элементы.ГруппаКнопокДлительнаяОперация.Видимость = Ложь; + КонецЕсли; - ОбменДаннымиСервер.СохранитьСообщениеИзАрхиваВКэш(УзелИнформационнойБазы); +КонецПроцедуры + +&НаСервереБезКонтекста +Процедура ОтменитьВыполнениеЗадания(Знач ИДЗадания) + + ДлительныеОперации.ОтменитьВыполнениеЗадания(ИДЗадания); КонецПроцедуры diff --git a/SSL/src/DataProcessors/ПомощникСозданияОбменаДанными/Forms/УдалениеНастройкиСинхронизации/Module.bsl b/SSL/src/DataProcessors/ПомощникСозданияОбменаДанными/Forms/УдалениеНастройкиСинхронизации/Module.bsl index 10993689e..80e493bd4 100644 --- a/SSL/src/DataProcessors/ПомощникСозданияОбменаДанными/Forms/УдалениеНастройкиСинхронизации/Module.bsl +++ b/SSL/src/DataProcessors/ПомощникСозданияОбменаДанными/Forms/УдалениеНастройкиСинхронизации/Module.bsl @@ -1,5 +1,5 @@ /////////////////////////////////////////////////////////////////////////////////////////////////////// -// Copyright (c) 2024, ООО 1С-Софт +// Copyright (c) 2025, ООО 1С-Софт // Все права защищены. Эта программа и сопроводительные материалы предоставляются // в соответствии с условиями лицензии Attribution 4.0 International (CC BY 4.0) // Текст лицензии доступен по ссылке: diff --git a/SSL/src/DataProcessors/ПомощникСозданияОбменаДанными/Help/ru.html b/SSL/src/DataProcessors/ПомощникСозданияОбменаДанными/Help/ru.html index d857fc5c2..d03794682 100644 --- a/SSL/src/DataProcessors/ПомощникСозданияОбменаДанными/Help/ru.html +++ b/SSL/src/DataProcessors/ПомощникСозданияОбменаДанными/Help/ru.html @@ -1,132 +1,209 @@ -

                            Предназначен для настройки синхронизации данных. Возможна настройка синхронизации данных между двумя программами по правилам обмена, без использования правил обмена или организация совместной работы в распределенной информационной базе (РИБ).

                            +

                            Предназначен для настройки синхронизации данных. Возможна настройка синхронизации данных между двумя приложениями по правилам обмена, без использования правил обмена или организация совместной работы в распределенной информационной базе (РИБ).

                            Выбор типа синхронизации данных

                            Выберите нужный раздел списка:

                            -
                            • Обмен данных с другими программами; +
                              • Обмен данных с другими приложениями;
                                • Без использования правил обмена; -
                                • Полная синхронизация; -
                                • Получение данных; -
                                • Полная синхронизация данных через EnterpriseData. При настройке обмена с использованием обычных каналов связи (файл, ftp, e-mail) в программе-источнике не получится настроить правила отправки и получения данных, пока не будут выполнены настройки в программе-приемнике. -
                                • Полная синхронизация с поддержкой обратной совместимости; -
                                • Синхронизация данных через универсальный формат;
                              • Распределенные информационные базы.

                              Этапы настройки параметров синхронизации данных между двумя программами

                              -
                              • Настройка синхронизации данных выполняется в два этапа. Первый шаг настройки синхронизации данных выполняется в текущей программе, затем необходимо перейти в другую программу и закончить в ней настройку синхронизации данных. Для передачи информации между этапами настройки синхронизации данных используется временный файл с настройками. Настройки правил отправки и получения данных выполняются в каждой из обменивающихся программ вне зависимости от выбранного варианта подключения. -
                              • Во время настройки определяются следующие параметры: +
                              • +
                              • Полная синхронизация; +
                              • +
                              • Получение данных; +
                              • +
                              • Полная синхронизация данных через EnterpriseData. При настройке обмена с использованием обычных каналов связи (файл, ftp, e-mail) в приложении-источнике не получится настроить правила отправки и получения данных, пока не будут выполнены настройки в приложении-приемнике. +
                              • +
                              • Полная синхронизация с поддержкой обратной совместимости; +
                              • +
                              • Синхронизация данных через универсальный формат EnterpriseData;
                            • +
                            • Распределенные информационные базы.

                            Этапы настройки параметров синхронизации данных между двумя приложениями

                            +
                            • Настройка синхронизации данных выполняется в два этапа. Первый шаг настройки синхронизации данных выполняется в текущем приложении, затем необходимо перейти в другое приложение и закончить в нём настройку синхронизации данных. Для передачи информации между этапами настройки синхронизации данных используется временный файл с настройками. Настройки правил отправки и получения данных выполняются в каждом из обменивающихся приложений вне зависимости от выбранного варианта подключения. +
                            • +
                            • Во время настройки определяются следующие параметры:
                              • Параметры подключения. Производится также проверка работоспособности введенных параметров; -
                              • Правила синхронизации данных; -
                              • Выполнение начальной выгрузки данных; -
                              • В программе-приемнике, кроме перечисленных этапов, осуществляется также сопоставление и загрузка данных.

                            Особенности синхронизации через универсальный формат EnterpriseData

                            -
                            • Настройку правил отправки и получения данных можно провести только после получения параметров программы-приемника. -
                            • Для этого после настройки вариантов подключения в программе-источнике необходимо перейти в программу-приемник, завершить в ней настройку и выполнить первоначальную выгрузку данных, после этого завершить настройку в программе-источнике. Программа выводит об этом сообщение.

                            Подробное описание

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

                            Резервное копирование

                            +
                          • +
                          • Правила синхронизации данных; +
                          • +
                          • Выполнение начальной выгрузки данных; +
                          • +
                          • В приложении-приемнике, кроме перечисленных этапов, осуществляется также сопоставление и загрузка данных.

                        Особенности синхронизации через универсальный формат EnterpriseData

                        +
                        • Настройку правил отправки и получения данных можно провести только после получения параметров приложения-приемника. +
                        • +
                        • Для этого после настройки вариантов подключения в приложении-источнике необходимо перейти в приложение-приемник, завершить в нём настройку и выполнить первоначальную выгрузку данных, после этого завершить настройку в приложении-источнике. Приложение выводит об этом сообщение.

                        Подробное описание

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

                        Резервное копирование

                        • Перед настройкой синхронизации рекомендуется выполнить резервное копирование. -
                        • В файловом варианте информационной базы пройдите по ссылке, для того чтобы создать резервную копию данных (рекомендуется). -
                        • В серверном варианте и других необходимо провести резервное копирование сторонними средствами. -
                        • Нажмите Далее для продолжения настройки синхронизации данных.

                        Выбор варианта подключения к другой программе

                        -

                        Проверка варианта подключения во время настройки производится программой автоматически.

                        +
                      • +
                      • В файловом варианте приложения пройдите по ссылке, для того чтобы создать резервную копию данных (рекомендуется). +
                      • +
                      • В серверном варианте и других необходимо провести резервное копирование сторонними средствами. +
                      • +
                      • Нажмите Далее для продолжения настройки синхронизации данных.

                      Выбор варианта подключения к другому приложению

                      +

                      +

                      +

                      +

                      Проверка варианта подключения во время настройки производится приложением автоматически.

                      Для вариантов подключения, связанных с Интернетом, при необходимости с помощью соответствующей ссылки настройте параметры прокси-сервера, перейдя по ссылке Параметры доступа в Интернет.

                      При указании пользователя и пароля необходимо помнить, что этот пользователь должен иметь соответствующий доступ (например, к серверу 1С:Предприятия), для того чтобы синхронизация данных состоялась.

                      С помощью переключателя можно выбрать:

                      -
                      • Прямое подключение на этом компьютере или в локальной сети используется для синхронизации данных между двумя программами, причем обе программы должны быть доступны для подключения. +
                        • Прямое подключение на этом компьютере или в локальной сети используется для синхронизации данных между двумя приложениями, причем оба приложения должны быть доступны для подключения.
                          • -

                            Укажите параметры подключения к другой программе:

                            -
                            • Выберите Расположение программы-приемника: +

                              Укажите параметры подключения к другому приложению:

                              +
                              • Выберите Расположение приложения-приемника:
                                • На данном компьютере или на компьютере в локальной сети; -
                                  •  Выберите Каталог информационной базы. Укажите путь к папке на компьютере.
                                • На сервере 1С:Предприятия; +
                                  •  Выберите Каталог приложения. Укажите путь к папке на компьютере.
                                • +
                                • На сервере 1С:Предприятия;
                                  • Введите Сервер; -
                                  • Введите Имя информационной базы.
                              • с помощью переключателя Параметры входа в программу выберите: +
                              • +
                              • Введите Имя информационной базы.
                          • +
                          • с помощью переключателя Параметры входа в приложение выберите:
                            • Использовать учетную запись операционной системы; -
                            • Использовать указанные имя пользователя и пароль: -
                              • Введите имя Пользователя, от лица которого будет производиться синхронизация данных и его Пароль. 
                        • Нажмите кнопку Далее.
                      • Подключение к программе через интернет (веб-сервис): -
                        • Такой вариант подключения используется для синхронизации данных между двумя программами. Он может быть использован в том случае, если программа-приемник находится в другом офисе, при этом она доступна для синхронизации через интернет. -
                        • Введите Адрес программы в интернете; -
                        • Введите Имя пользователя и его Пароль; -
                        • включите флажок Запомнить пароль. -
                        • При необходимости настройте параметры прокси-сервера, перейдя по ссылке Параметры доступа в Интернет.
                      • Синхронизация данных через файл, без подключения к другой программе (сетевой каталог, FTP, электронная почта); +
                      • +
                      • Использовать указанные имя пользователя и пароль: +
                        • Введите имя Пользователя, от лица которого будет производиться синхронизация данных и его Пароль. 
                  • +
                  • Нажмите кнопку Далее.
                  +
                • Подключение к приложению через интернет (веб-сервис): +
                  • Такой вариант подключения используется для синхронизации данных между двумя приложениями. Он может быть использован в том случае, если приложение-приемник находится в другом офисе, при этом оно доступно для синхронизации через интернет. +
                  • +
                  • Введите Адрес приложения в интернете; +
                  • +
                  • Введите Имя пользователя и его Пароль; +
                  • +
                  • включите флажок Запомнить пароль. +
                  • +
                  • При необходимости настройте параметры прокси-сервера, перейдя по ссылке Параметры доступа в Интернет.
                • +
                • Синхронизация данных через файл, без подключения к другому приложению (сетевой каталог, FTP, электронная почта);
                  • Может использоваться: -
                  • для синхронизации данных с программой в другом офисе, которая может работать в автономном режиме, причем две программы, участвующие в синхронизации данных, могут работать в разное время; -
                    • Для продолжения настройки синхронизации в программе-приемнике включите флажок Загрузить параметры подключения из файла, укажите путь к файлу с настройками.
                  • Для синхронизации данных в распределенной информационной базе.
                • Подключение для синхронизации данных выполняется из другой программы. При этом варианте подключения эта программа отправляет и принимает данные через Интернет только по запросу от программы-корреспондента.
                • Нажмите кнопку Далее для перехода к дальнейшей настройке синхронизации данных.

                  + +
                  • для синхронизации данных с приложением в другом офисе, которое может работать в автономном режиме, причем два приложения, участвующие в синхронизации данных, могут работать в разное время;
                  • +
                  • Для продолжения настройки синхронизации в приложении-приемнике включите флажок Загрузить параметры подключения из файла, укажите путь к файлу с настройками.
                  • Для синхронизации данных в распределенной информационной базе.
                  +
                • Подключение для синхронизации данных выполняется из другого приложения. При таком варианте подключения это приложение отправляет и принимает данные через Интернет только по запросу от приложения-корреспондента.
                • Нажмите кнопку Далее для перехода к дальнейшей настройке синхронизации данных.

                  Синхронизация данных через локальный или сетевой каталог

                  • Включите флажок Использовать локальный или сетевой каталог для синхронизации данных.
                    -
                  • В поле Каталог  выберите путь к папке на компьютере или сетевому диску. -
                  • Для того чтобы сократить размер пересылаемого сообщения, включите флажок Сжимать отправляемые данные в архив, при необходимости введите Пароль архива. -
                  • Для того чтобы убедиться в правильности введенных настроек, нажмите Проверить возможность записи в каталог. -
                  • +
                  • +
                  • В поле Каталог  выберите путь к папке на компьютере или сетевому диску. +
                  • +
                  • Для того чтобы сократить размер пересылаемого сообщения, включите флажок Сжимать отправляемые данные в архив, при необходимости введите Пароль архива. +
                  • +
                  • Для того чтобы убедиться в правильности введенных настроек, нажмите Проверить возможность записи в каталог. +
                  • +
                  • Нажмите кнопку Далее для перехода к дальнейшей настройке синхронизации данных.

                  Синхронизация данных через каталог на FTP-сервере

                  • Включите флажок Использовать каталог на FTP-сервере для синхронизации данных. -
                  • Укажите Адрес каталога, Порт проставляется автоматически. -
                  • Заполните поля Пользователь (Логин) и Пароль. -
                  • Включите флажок Ограничение размера файла, если объем данных на FTP-сервере ограничен, и проставьте его максимальный размер. -
                  • При необходимости включите флажок Пассивный режим. -
                  • При необходимости перейдите по ссылке Параметры доступа в интернет и укажите параметры прокси-сервера. -
                  • Нажмите Далее для перехода к дальнейшей настройке синхронизации данных.

                  Синхронизация данных через электронную почту

                  + +
                • Укажите Адрес каталога, Порт проставляется автоматически. +
                • +
                • Заполните поля Пользователь (Логин) и Пароль. +
                • +
                • Включите флажок Ограничение размера файла, если объем данных на FTP-сервере ограничен, и проставьте его максимальный размер. +
                • +
                • При необходимости включите флажок Пассивный режим. +
                • +
                • При необходимости перейдите по ссылке Параметры доступа в интернет и укажите параметры прокси-сервера. +
                • +
                • Нажмите Далее для перехода к дальнейшей настройке синхронизации данных.
                • Синхронизация данных через электронную почту

                  • Включите флажок Использовать электронную почту для синхронизации данных. -
                  • В поле Учетная запись  выберите элемент из списка учетных записей. -
                  • Включите флажок Ограничение размера вложения, для того чтобы ограничить размер отсылаемых сообщений. Напишите максимальный размер вложения. -
                  • Нажмите Далее для перехода к дальнейшей настройке синхронизации данных.

                  Дополнительные настройки при синхронизации через файл

                  + +
                • В поле Учетная запись  выберите элемент из списка учетных записей. +
                • +
                • Включите флажок Ограничение размера вложения, для того чтобы ограничить размер отсылаемых сообщений. Напишите максимальный размер вложения. +
                • +
                • Нажмите Далее для перехода к дальнейшей настройке синхронизации данных.
                • Дополнительные настройки при синхронизации через файл

                • Включите флажок Транслитерировать имена файлов сообщений обмена, в этом случае имена файлов будут автоматически написаны на латинице. -
                • Для того чтобы сократить размер пересылаемого сообщения, включите флажок Архивировать файлы обмена, при необходимости введите Пароль архива. +
                • +
                • Для того чтобы сократить размер пересылаемого сообщения, включите флажок Архивировать файлы обмена, при необходимости введите Пароль архива.

                  Особенности синхронизации данных через универсальный формат или формат EnterpriseData через файл

                  -
                  • При настройке синхронизации через формат EnterpriseData или через универсальный формат состав и другие характеристики получаемых данных настраиваются с помощью правил отправки в программе-корреспонденте. -
                  • Настройка варианта подключения отличается: -
                  • Настройте вариант подключения через файл в программе-источнике; -
                  • Продолжите настройку синхронизации данных в программе-приемнике. Настройте вариант подключения через файл. -
                  • Для этого перейдите в программу-приемник, в качестве варианта подключения выберите Синхронизация данных через файл, без подключения к другой программе, укажите файл с настройками Синхронизация данных через универсальный формат.xml, полученными из программы-источника. -
                  • Только после проведения настройки вариантов подключения в обеих программах можно будет перейти к дальнейшей настройке синхронизации данных.

                  Настройка правил отправки и получения данных

                  +При настройке синхронизации через формат EnterpriseData или через универсальный формат состав и другие характеристики получаемых данных настраиваются с помощью правил отправки в приложении-корреспонденте.
                  Настройка варианта подключения отличается:
                  • Настройте вариант подключения через файл в приложении-источнике; +
                  • +
                  • Продолжите настройку синхронизации данных в приложении-приемнике. Настройте вариант подключения через файл. +
                  • +
                  • Для этого перейдите в приложение-приемник, в качестве варианта подключения выберите Синхронизация данных через файл, без подключения к другому приложению, укажите файл с настройками Синхронизация данных через универсальный формат.xml, полученными из приложения-источника. +
                  • +
                  • Только после проведения настройки вариантов подключения в обоих приложениях можно будет перейти к дальнейшей настройке синхронизации данных.

                  Настройка правил отправки и получения данных

                  Правила синхронизации данных используются, если необходимо синхронизировать не все данные, а только часть.

                  • С помощью переключателя Документы можно определить, как они будут синхронизироваться: -
                    • Отправлять и получать автоматически - документы будут синхронизироваться в обеих программах; -
                    • Отправлять автоматически - документы будут автоматически отправляться во вторую программу, в первой программе автоматического получения документов из второй программы не будет; -
                    • Получать автоматически - документы будут доставляться из второй программы, документы отправляться не будут; -
                    • Отправлять и получать вручную - документы автоматически синхронизироваться не будут. Отправку и получение документов будет необходимо выполнять вручную.
                  • С помощью переключателя Нормативно-справочная информация выберите режим выгрузки списков программы: -
                    • Отправлять и получать автоматически - данные будут синхронизироваться в полном объеме, нормативно-справочная информация будет автоматически синхронизироваться в этой и во второй программе; -
                    • Отправлять и получать только используемую в документах - данные будут синхронизироваться в полном объеме, нормативно-справочная информация будет автоматически синхронизироваться в этой и во второй программе; -
                    • Отправлять и получать вручную - нормативно-справочная информация не будет автоматически синхронизироваться, ее отправку и получение необходимо будет выполнять вручную.
                  • Укажите Дату начала отправки документов, по умолчанию значение равно дате начала текущего года. -
                  • Можно ограничить данные, участвующие в синхронизации и задать, в разрезе каких Организаций, Складов и Подразделений будут отправляться данные: +
                    • Отправлять и получать автоматически - документы будут синхронизироваться в обоих приложениях; +
                    • +
                    • Отправлять автоматически - документы будут автоматически отправляться во второе приложение, в первом приложении автоматического получения документов из второго приложения не будет; +
                    • +
                    • Получать автоматически - документы будут доставляться из второго приложения, документы отправляться не будут; +
                    • +
                    • Отправлять и получать вручную - документы автоматически синхронизироваться не будут. Отправку и получение документов будет необходимо выполнять вручную.
                  • +
                  • С помощью переключателя Нормативно-справочная информация выберите режим выгрузки списков приложения: +
                    • Отправлять и получать автоматически - данные будут синхронизироваться в полном объеме, нормативно-справочная информация будет автоматически синхронизироваться в этой и во втором приложении; +
                    • +
                    • Отправлять и получать только используемую в документах - данные будут синхронизироваться в полном объеме, нормативно-справочная информация будет автоматически синхронизироваться в первом и во втором приложении; +
                    • +
                    • Отправлять и получать вручную - нормативно-справочная информация не будет автоматически синхронизироваться, ее отправку и получение необходимо будет выполнять вручную.
                  • +
                  • Укажите Дату начала отправки документов, по умолчанию значение равно дате начала текущего года. +
                  • +
                  • Можно ограничить данные, участвующие в синхронизации и задать, в разрезе каких Организаций, Складов и Подразделений будут отправляться данные:
                    • Включение фильтра По организациям позволяет ограничить список организаций, по которым разрешена синхронизация данных. Наличие включенного фильтра влияет как на отправку самого списка организаций, так и на отправку других данных, связанных с организациями (списки и документы). Для включения фильтра установите переключатель в положение По выбранным (организациям), выберите с помощью флажков нужные организации из списка. -
                    • Для включения фильтра По подразделениям на соответствующей вкладке установите переключатель в положение По выбранным (подразделениям), включите соответствующие флажки. -
                    • Также можно выгружать информацию По выбранным (складам). Для этого на соответствующей вкладке с помощью переключателя выберите нужное значение, с помощью флажков выберите нужные склады.
                  • Правила получения данных - значения по умолчанию необходимы для правильного отражения документов. Используются для автоматического заполнения данных в документах, которые не могут быть получены из обмена. Например, в документах, полученных из другой программы, не были предусмотрены некоторые реквизиты. В этом случае при проведении синхронизации данных эти реквизиты будут заполнены программой автоматически. Их можно указать сразу же, при настройке синхронизации (по ссылке Изменить значения автоматического заполнения).

                  Параметры синхронизации данных

                  -
                  • Выводится Представление этой программы: +
                  • +
                  • Для включения фильтра По подразделениям на соответствующей вкладке установите переключатель в положение По выбранным (подразделениям), включите соответствующие флажки. +
                  • +
                  • Также можно выгружать информацию По выбранным (складам). Для этого на соответствующей вкладке с помощью переключателя выберите нужное значение, с помощью флажков выберите нужные склады.
                • +
                • Правила получения данных - значения по умолчанию необходимы для правильного отражения документов. Используются для автоматического заполнения данных в документах, которые не могут быть получены из обмена. Например, в документах, полученных из другого приложения, не были предусмотрены некоторые реквизиты. В этом случае при проведении синхронизации данных эти реквизиты будут заполнены приложением автоматически. Их можно указать сразу же, при настройке синхронизации (по ссылке Изменить значения автоматического заполнения).
                • Параметры синхронизации данных

                  +
                  • Выводится Представление этого приложения:
                    • Наименование; -
                    • Префикс;
                  • Выводится Представление программы-корреспондента: +
                  • +
                  • Префикс;
                  +
                • Выводится Представление приложения-корреспондента:
                  • Наименование; -
                  • Префикс.
                • Нажмите Далее для проверки параметров и завершения настройки синхронизации данных для этой программы (в случае прямого подключения к другой программе будет предложено настроить и проверить параметры и для другой программы).
                • Переход к интерактивной синхронизации данных

                  + +
                • Префикс.
                • +
                • Нажмите Далее для проверки параметров и завершения настройки синхронизации данных для этого приложения (в случае прямого подключения к другому приложению будет предложено настроить и проверить параметры и для другого приложения).
                • Переход к интерактивной синхронизации данных

                  Особенности настройки синхронизации данных в клиент-серверном варианте

                  -
                  • При настройке синхронизации данных в клиент-серверном варианте работы информационной базы необходимо иметь в виду, что данные синхронизируются на компьютере, на котором установлен сервер 1С:Предприятия. Для сервера 1С:Предприятия под управлением операционной системы Microsoft Windows это путь вида:
                    \\servername\resource
                    а для сервера под управлением Linux:
                    //servername/resource. -
                  • Необходимо убедиться в том, что каталог синхронизации доступен для чтения и записи пользователю операционной системы, от имени которого запущен сервер 1С:Предприятия. Если это не так, то необходимо дать этому пользователю необходимые права, или выбрать другого пользователя для запуска сервера 1С:Предприятия с необходимыми правами на каталог, используемый для синхронизации данных. Эти же рекомендации актуальны и для доступа к ресурсам FTP и электронной почты. Подробнее об администрировании сервера 1С:Предприятия см. документацию к платформе 1С:Предприятие.

                  Особенности создания узла РИБ.

                  +
                  При синхронизации данных между двумя приложениями вероятность существования дублирования данных очень высока, для сопоставления данных рекомендуется использовать Помощник интерактивной синхронизации данных.

                  Особенности настройки синхронизации данных в клиент-серверном варианте

                  +
                  • При настройке синхронизации данных в клиент-серверном варианте работы приложения необходимо иметь в виду, что данные синхронизируются на компьютере, на котором установлен сервер 1С:Предприятия. Для сервера 1С:Предприятия под управлением операционной системы Microsoft Windows это путь вида:
                    \\servername\resource
                    а для сервера под управлением Linux:
                    //servername/resource. +
                  • +
                  • Необходимо убедиться в том, что каталог синхронизации доступен для чтения и записи пользователю операционной системы, от имени которого запущен сервер 1С:Предприятия. Если это не так, то необходимо дать этому пользователю необходимые права, или выбрать другого пользователя для запуска сервера 1С:Предприятия с необходимыми правами на каталог, используемый для синхронизации данных. Эти же рекомендации актуальны и для доступа к ресурсам FTP и электронной почты. Подробнее об администрировании сервера 1С:Предприятия см. документацию к платформе 1С:Предприятие.

                  Особенности создания узла РИБ.

                  На первом этапе создается начальный образ РИБ. Все страницы помощника остаются без изменений. На странице Первый этап настройки успешно завершен по умолчанию включен флажок Создать начальный образ подчиненного узла РИБ (рекомендуется это сделать сразу). Этот шаг можно сделать и позже, из настройки синхронизации в любой момент.

                  • После нажатия на кнопку Готово с включенным флажком предлагается создать начальный образ РИБ. Для этого перейдите по ссылке Создать начальный образ.
                    -
                  • +
                  • +
                  • По умолчанию файл с настройками для создания узла РИБ будет создан в каталоге, который был выбран для обмена, На данном компьютере или на компьютере в локальной сети.
                    -
                  • +
                  • +
                  • Однако можно с помощью переключателя выбрать создание На сервере 1С: Предприятия. В этом случае необходимо заполнить Параметры информационной базы:
                    -
                  • +
                  • +
                  • Введите Кластер серверов 1С:Предприятия.
                    -
                  • +
                  • +
                  • Напишите Имя информационной базы в кластере.
                    -
                  • +
                  • +
                  •  Выберите параметры в поле Защищенное соединение.
                    -
                  • +
                  • +
                  •  Выберите Тип СУБД.
                    -
                  • +
                  • +
                  • Укажите Сервер базы данных.
                    -
                  • +
                  • +
                  • Напишите Имя базы данных и
                    -
                  • +
                  • +
                  • Заполните поле Пользователь базы данных, введите Пароль пользователя.
                    -
                  • +
                  • +
                  • Укажите Смещение дат.
                    -
                  • -
                    Укажите Язык программы.
                    -
                  • +
                  • +
                  • +
                    Укажите Язык распределённой информационной базы.
                    +
                  • +
                  • При необходимости включите флажок Установить блокировку регламентных заданий.
                    -
                  • +
                  • +
                  • Нажмите Создать начальный образ.
                    -
                  • -
                    Созданный файл с начальным образом подчиненного узла распределенной информационной базы сохраните на компьютере филиала в новую папку, которая будет рабочим каталогом новой базы.
                    -
                  • Создайте новую базу, выбрав Добавление в список существующей информационной базы, укажите путь к файлу с начальным образом. Указанная информационная база будет добавлена в список баз. -
                  • -
                    После входа в программу автоматически запустится Помощник на странице Продолжение настройки синхронизации данных с главным узлом, продолжите настройку синхронизации, нажмите кнопку Далее, чтобы продолжить настройку и задать вариант подключения к главному узлу.

                  Создание узла РИБ (внешние файлы)

                  + +
                • +
                  Созданный файл с начальным образом подчиненного узла распределенной информационной базы сохраните на компьютере филиала в новую папку, которая будет рабочим каталогом нового приложения.
                  +
                • +
                • Создайте новое приложение, выбрав Добавление в список существующей информационной базы, укажите путь к файлу с начальным образом. Указанное приложение будет добавлена в список приложений. +
                • +
                • +
                  После входа в приложение автоматически запустится Помощник на странице Продолжение настройки синхронизации данных с главным узлом, продолжите настройку синхронизации, нажмите кнопку Далее, чтобы продолжить настройку и задать вариант подключения к главному узлу.
                • Создание узла РИБ (внешние файлы)

                  • Если у вас есть файлы в томах, то при создании начального образа вам также потребуется указать путь к файлу, в который будет записан архив (zip) со всеми файлами в томах. При первом запуске в базе филиала вам нужно будет выполнить команду Разместить файлы начального образа, указав в ней путь к файлу архива.
                  \ No newline at end of file diff --git a/SSL/src/DataProcessors/ПомощникСозданияОбменаДанными/ManagerModule.bsl b/SSL/src/DataProcessors/ПомощникСозданияОбменаДанными/ManagerModule.bsl index 5f1159c00..425386de5 100644 --- a/SSL/src/DataProcessors/ПомощникСозданияОбменаДанными/ManagerModule.bsl +++ b/SSL/src/DataProcessors/ПомощникСозданияОбменаДанными/ManagerModule.bsl @@ -1,5 +1,5 @@ /////////////////////////////////////////////////////////////////////////////////////////////////////// -// Copyright (c) 2024, ООО 1С-Софт +// Copyright (c) 2025, ООО 1С-Софт // Все права защищены. Эта программа и сопроводительные материалы предоставляются // в соответствии с условиями лицензии Attribution 4.0 International (CC BY 4.0) // Текст лицензии доступен по ссылке: @@ -385,6 +385,136 @@ #КонецОбласти +#Область ЗагрузкаПриоритетныхДанныхВПодчиненныйУзелРИБ + +Процедура ПриНачалеЗагрузкиСообщенияОбменаДаннымиСОбновлением(ПараметрыЗагрузки, ПараметрыОбработчика, ПродолжитьОжидание = Ложь) Экспорт + + ПриНачалеЗапускаОбменаДанными(ПараметрыЗагрузки, ПараметрыОбработчика, "Обработки.ПомощникСозданияОбменаДанными.ЗагрузитьПриоритетныеДанныеВПодчиненныйУзелРИБВФоне", ПродолжитьОжидание); + +КонецПроцедуры + +// Для внутреннего использования. +// +Процедура ПриОжиданииЗагрузкиСообщенияОбменаДаннымиСОбновлением(ПараметрыОбработчика, ПродолжитьОжидание) Экспорт + + ПриОжиданииДлительнойОперации(ПараметрыОбработчика, ПродолжитьОжидание); + +КонецПроцедуры + +// Для внутреннего использования. +// +Процедура ПриЗавершенииЗагрузкиСообщенияОбменаДаннымиСОбновлением(ПараметрыОбработчика, СтатусЗавершения) Экспорт + + ПриЗавершенииДлительнойОперации(ПараметрыОбработчика, СтатусЗавершения); + +КонецПроцедуры + +Процедура ЗагрузитьПриоритетныеДанныеВПодчиненныйУзелРИБВФоне(ПараметрыЗагрузки, АдресХранилища) Экспорт + + Результат = ИнициализироватьРезультатДлительнойОперации(); + + Попытка + ЗагрузитьПриоритетныеДанныеВПодчиненныйУзелРИБ(ПараметрыЗагрузки); + Исключение + ПредставлениеОшибки = ОбработкаОшибок.ПодробноеПредставлениеОшибки(ИнформацияОбОшибке()); + + ЗаписьЖурналаРегистрации(ОбменДаннымиСервер.СобытиеЖурналаРегистрацииОбменДанными(), + УровеньЖурналаРегистрации.Ошибка,,, ПредставлениеОшибки); + + Результат.Отказ = Истина; + Результат.СообщениеОбОшибке = ПредставлениеОшибки; + КонецПопытки; + + Если ПараметрыЗагрузки.ЕстьОшибки Тогда + Результат.Отказ = Истина; + Результат.СообщениеОбОшибке = НСтр("ru = 'При выполнении загрузки данных возникли ошибки (см. Журнал регистрации).'") + КонецЕсли; + + ПоместитьВоВременноеХранилище(Результат, АдресХранилища); + +КонецПроцедуры + +#КонецОбласти + +#Область ЗагрузкаСообщенияПередОбновлениемИнформационнойБазы + +Процедура ПриНачалеЗагрузкиСообщенияОбменаДаннымиБезОбновленияИБ(ПараметрыЗагрузки, ПараметрыОбработчика, ПродолжитьОжидание = Ложь) Экспорт + + ПриНачалеЗапускаОбменаДанными(ПараметрыЗагрузки, ПараметрыОбработчика, "Обработки.ПомощникСозданияОбменаДанными.ЗагрузитьСообщениеПередОбновлениемИнформационнойБазыВФоне", ПродолжитьОжидание); + +КонецПроцедуры + +// Для внутреннего использования. +// +Процедура ПриОжиданииЗагрузкиСообщенияПередОбновлениемИнформационнойБазы(ПараметрыОбработчика, ПродолжитьОжидание) Экспорт + + ПриОжиданииДлительнойОперации(ПараметрыОбработчика, ПродолжитьОжидание); + +КонецПроцедуры + +// Для внутреннего использования. +// +Процедура ПриЗавершенииЗагрузкиСообщенияПередОбновлениемИнформационнойБазы(ПараметрыОбработчика, СтатусЗавершения) Экспорт + + ПриЗавершенииДлительнойОперации(ПараметрыОбработчика, СтатусЗавершения); + +КонецПроцедуры + +Процедура ЗагрузитьСообщениеПередОбновлениемИнформационнойБазыВФоне(ПараметрыПроцедуры, АдресХранилища) Экспорт + + Результат = ИнициализироватьРезультатДлительнойОперации(); + + Попытка + ЗагрузитьСообщениеПередОбновлениемИнформационнойБазы(ПараметрыПроцедуры); + Исключение + ПредставлениеОшибки = ОбработкаОшибок.ПодробноеПредставлениеОшибки(ИнформацияОбОшибке()); + + ЗаписьЖурналаРегистрации(ОбменДаннымиСервер.СобытиеЖурналаРегистрацииОбменДанными(), + УровеньЖурналаРегистрации.Ошибка,,, ПредставлениеОшибки); + + Результат.Отказ = Истина; + Результат.СообщениеОбОшибке = ПредставлениеОшибки; + КонецПопытки; + + Если ПараметрыПроцедуры.ЕстьОшибки Тогда + Результат.Отказ = Истина; + Результат.СообщениеОбОшибке = НСтр("ru = 'При выполнении загрузки данных возникли ошибки (см. Журнал регистрации).'"); + КонецЕсли; + + ПоместитьВоВременноеХранилище(Результат, АдресХранилища); + + Если Результат.Отказ Тогда + Возврат; + КонецЕсли; + + УстановитьПривилегированныйРежим(Истина); + + ОбменДаннымиСервер.УстановитьРежимЗагрузкиСообщенияОбменаДаннымиПередЗапуском("ЗагрузкаРазрешена", Ложь); + + // Если сообщение загружено успешно, тогда повторная загрузка более не требуется. + Если Константы.ЗагрузитьСообщениеОбменаДанными.Получить() Тогда + Константы.ЗагрузитьСообщениеОбменаДанными.Установить(Ложь); + КонецЕсли; + + Константы.ПовторитьЗагрузкуСообщенияОбменаДаннымиПередЗапуском.Установить(Ложь); + + Попытка + ВыгрузитьСообщениеПослеОбновленияИнформационнойБазы(ПараметрыПроцедуры); + Исключение + // Если выгрузка не удалась все равно можно продолжить запуск и + // сделать выгрузку в режиме 1С:Предприятия. + КлючСообщенияЖурналаРегистрации = ОбменДаннымиСервер.СобытиеЖурналаРегистрацииОбменДанными(); + + ЗаписьЖурналаРегистрации(КлючСообщенияЖурналаРегистрации, + УровеньЖурналаРегистрации.Ошибка,,, ОбработкаОшибок.ПодробноеПредставлениеОшибки(ИнформацияОбОшибке())); + КонецПопытки; + + УстановитьПривилегированныйРежим(Ложь); + +КонецПроцедуры + +#КонецОбласти + Функция ВерсияФорматаНастроекОбменаДанными() Экспорт Возврат "1.2"; @@ -446,9 +576,9 @@ // ПараметрыОбработчика - Структура - параметры длительной операции. // Результат - Структура: // * НастройкиВнешниеСистемы - Структура: -// * КодОшибки - Строка - -// * СообщениеОбОшибке - Строка - -// * ВариантыНастроек - ТаблицаЗначений - +// * КодОшибки - Строка +// * СообщениеОбОшибке - Строка +// * ВариантыНастроек - ТаблицаЗначений // Процедура ПриЗавершенииПолученияВариантовНастроекОбменаДанными(ПараметрыОбработчика, Результат) Экспорт @@ -920,7 +1050,7 @@ КонецЕсли; - // Выгрузка для офф-лайн обмена через универсальный формат + // Выгрузка для off-line обмена через универсальный формат Если Не ПараметрыТранспорта.ПрямоеПодключение Тогда Если ОбменДаннымиПовтИсп.ЭтоПланОбменаXDTO(НастройкиПодключения.ИмяПланаОбмена) Тогда @@ -1513,6 +1643,236 @@ КонецФункции +Процедура ПриНачалеЗапускаОбменаДанными(ПараметрыЗагрузки, ПараметрыОбработчика, ИмяМетода, ПродолжитьОжидание = Ложь) + + ИмяПланаОбмена = ОбменДаннымиПовтИсп.ПолучитьИмяПланаОбмена(ПараметрыЗагрузки.УзелИнформационнойБазы); + ИдентификаторТранспорта = ТранспортСообщенийОбмена.ТранспортПоУмолчанию(ПараметрыЗагрузки.УзелИнформационнойБазы); + + КлючФоновогоЗадания = ОбменДаннымиСервер.КлючФоновогоЗадания(ИмяПланаОбмена, + СтроковыеФункцииКлиентСервер.ПодставитьПараметрыВСтроку( + НСтр("ru = 'Загрузка сообщения обмена данными: %1'"), ИдентификаторТранспорта)); + + Если ОбменДаннымиСервер.ЕстьАктивныеФоновыеЗадания(КлючФоновогоЗадания) Тогда + ВызватьИсключение СтроковыеФункцииКлиентСервер.ПодставитьПараметрыВСтроку( + НСтр("ru = 'Загрузка сообщения обмена данными: %1 уже выполняется.'"), ИдентификаторТранспорта); + КонецЕсли; + + ПараметрыВыполнения = ДлительныеОперации.ПараметрыВыполненияВФоне(Новый УникальныйИдентификатор); + ПараметрыВыполнения.НаименованиеФоновогоЗадания = СтроковыеФункцииКлиентСервер.ПодставитьПараметрыВСтроку( + НСтр("ru = 'Загрузка сообщения обмена данными: %1.'"), ИдентификаторТранспорта); + ПараметрыВыполнения.КлючФоновогоЗадания = КлючФоновогоЗадания; + ПараметрыВыполнения.ЗапуститьНеВФоне = Ложь; + + ФоновоеЗадание = ДлительныеОперации.ВыполнитьВФоне( + ИмяМетода, + ПараметрыЗагрузки, + ПараметрыВыполнения); + + ПриНачалеДлительнойОперации(ФоновоеЗадание, ПараметрыОбработчика, ПродолжитьОжидание); + +КонецПроцедуры + +// Возвращаемое значение: +// Структура: +// * Отказ - Булево +// * СообщениеОбОшибке - Строка +// +Функция ИнициализироватьРезультатДлительнойОперации() + + Результат = Новый Структура; + Результат.Вставить("Отказ", Ложь); + Результат.Вставить("СообщениеОбОшибке", ""); + + Возврат Результат; + +КонецФункции + +Процедура ЗагрузитьСообщениеПередОбновлениемИнформационнойБазы(ПараметрыЗагрузки) + + Если ОбменДаннымиСлужебный.РежимЗагрузкиСообщенияОбменаДаннымиПередЗапуском( + "ПропуститьЗагрузкуСообщенияОбменаДаннымиПередЗапуском") Тогда + Возврат; + КонецЕсли; + + Если ПолучитьФункциональнуюОпцию("ИспользоватьСинхронизациюДанных") Тогда + + Если ПараметрыЗагрузки.УзелИнформационнойБазы <> Неопределено Тогда + + УстановитьПривилегированныйРежим(Истина); + ОбменДаннымиСервер.УстановитьРежимЗагрузкиСообщенияОбменаДаннымиПередЗапуском("ЗагрузкаРазрешена", Истина); + УстановитьПривилегированныйРежим(Ложь); + + // Обновление правил регистрации объектов выполняем до загрузки данных. + ОбменДаннымиСервер.ВыполнитьОбновлениеПравилДляОбменаДанными(); + + ИдентификаторТранспорта = ТранспортСообщенийОбмена.ТранспортПоУмолчанию(ПараметрыЗагрузки.УзелИнформационнойБазы); + + Если ПараметрыЗагрузки.ПродолжитьЗагрузкуСообщениемИзАрхива Тогда + ОбменДаннымиСервер.СохранитьСообщениеИзАрхиваВКэш(ПараметрыЗагрузки.УзелИнформационнойБазы); + КонецЕсли; + + // Только загрузка. + ПараметрыОбмена = ОбменДаннымиСервер.ПараметрыОбмена(); + ПараметрыОбмена.ИдентификаторТранспорта = ИдентификаторТранспорта; + ПараметрыОбмена.ДанныеАутентификации = ПараметрыЗагрузки.ДанныеАутентификации; + ПараметрыОбмена.ВыполнятьЗагрузку = Истина; + ПараметрыОбмена.ВыполнятьВыгрузку = Ложь; + + ОбменДаннымиСервер.ВыполнитьОбменДаннымиДляУзлаИнформационнойБазы(ПараметрыЗагрузки.УзелИнформационнойБазы, ПараметрыОбмена, ПараметрыЗагрузки.ЕстьОшибки); + + КонецЕсли; + + КонецЕсли; + +КонецПроцедуры + +Процедура ВыгрузитьСообщениеПослеОбновленияИнформационнойБазы(ПараметрыВыгрузки) + + // После успешной загрузки и обновления ИБ режим повтора можно отключить. + ОбменДаннымиСервер.ОтключитьПовторениеЗагрузкиСообщенияОбменаДаннымиПередЗапуском(); + + Попытка + Если ПолучитьФункциональнуюОпцию("ИспользоватьСинхронизациюДанных") Тогда + + УзелИнформационнойБазы = ОбменДаннымиСервер.ГлавныйУзел(); + + Если УзелИнформационнойБазы <> Неопределено Тогда + + ВыполнитьВыгрузку = Истина; + + ИдентификаторТранспорта = ТранспортСообщенийОбмена.ТранспортПоУмолчанию(УзелИнформационнойБазы); + + Если ВыполнитьВыгрузку Тогда + + // Только выгрузка. + Отказ = Ложь; + + ПараметрыОбмена = ОбменДаннымиСервер.ПараметрыОбмена(); + ПараметрыОбмена.ИдентификаторТранспорта = ИдентификаторТранспорта; + ПараметрыОбмена.ДанныеАутентификации = ПараметрыВыгрузки.ДанныеАутентификации; + ПараметрыОбмена.ВыполнятьЗагрузку = Ложь; + ПараметрыОбмена.ВыполнятьВыгрузку = Истина; + + ОбменДаннымиСервер.ВыполнитьОбменДаннымиДляУзлаИнформационнойБазы(УзелИнформационнойБазы, ПараметрыОбмена, Отказ); + + КонецЕсли; + + КонецЕсли; + + КонецЕсли; + + Исключение + ЗаписьЖурналаРегистрации(ОбменДаннымиСервер.СобытиеЖурналаРегистрацииОбменДанными(), + УровеньЖурналаРегистрации.Ошибка,,, ОбработкаОшибок.ПодробноеПредставлениеОшибки(ИнформацияОбОшибке())); + КонецПопытки; + +КонецПроцедуры + +Процедура ЗагрузитьПриоритетныеДанныеВПодчиненныйУзелРИБ(ПараметрыЗагрузки) + + Если ОбменДаннымиСлужебный.РежимЗагрузкиСообщенияОбменаДаннымиПередЗапуском( + "ПропуститьЗагрузкуСообщенияОбменаДаннымиПередЗапуском") Тогда + Возврат; + КонецЕсли; + + Если ОбменДаннымиСлужебный.РежимЗагрузкиСообщенияОбменаДаннымиПередЗапуском( + "ПропуститьЗагрузкуПриоритетныхДанныхПередЗапуском") Тогда + Возврат; + КонецЕсли; + + УстановитьПривилегированныйРежим(Истина); + ОбменДаннымиСервер.УстановитьРежимЗагрузкиСообщенияОбменаДаннымиПередЗапуском("ЗагрузкаРазрешена", Истина); + УстановитьПривилегированныйРежим(Ложь); + + ПроверитьИспользованиеСинхронизацииДанных(); + + Если ПолучитьФункциональнуюОпцию("ИспользоватьСинхронизациюДанных") Тогда + + УзелИнформационнойБазы = ОбменДаннымиСервер.ГлавныйУзел(); + + Если УзелИнформационнойБазы <> Неопределено Тогда + + ИдентификаторТранспорта = ТранспортСообщенийОбмена.ТранспортПоУмолчанию(УзелИнформационнойБазы); + Если ИдентификаторТранспорта = Неопределено Тогда + + Справочники.НастройкиТранспортаСообщенийОбмена.ОбработатьДанныеДляПереходаНаНовуюВерсию(); + ИдентификаторТранспорта = ТранспортСообщенийОбмена.ТранспортПоУмолчанию(УзелИнформационнойБазы); + + КонецЕсли; + + ОбновлениеПравилДляОбменаДанными(ПараметрыЗагрузки.УзелИнформационнойБазы); + + Если ПараметрыЗагрузки.ПродолжитьЗагрузкуСообщениемИзАрхива Тогда + ОбменДаннымиСервер.СохранитьСообщениеИзАрхиваВКэш(УзелИнформационнойБазы); + КонецЕсли; + + // Загрузка только параметров работы программы. + ПараметрыОбмена = ОбменДаннымиСервер.ПараметрыОбмена(); + ПараметрыОбмена.ИдентификаторТранспорта = ИдентификаторТранспорта; + ПараметрыОбмена.ДанныеАутентификации = ПараметрыЗагрузки.ДанныеАутентификации; + ПараметрыОбмена.ВыполнятьЗагрузку = Истина; + ПараметрыОбмена.ВыполнятьВыгрузку = Ложь; + ПараметрыОбмена.ТолькоПараметры = Истина; + + ОбменДаннымиСервер.ВыполнитьОбменДаннымиДляУзлаИнформационнойБазы(УзелИнформационнойБазы, ПараметрыОбмена, ПараметрыЗагрузки.ЕстьОшибки); + + КонецЕсли; + + КонецЕсли; + +КонецПроцедуры + +Процедура ОбновлениеПравилДляОбменаДанными(УзелИнформационнойБазы) + + ИмяПараметра = "СтандартныеПодсистемы.ОбменДанными.ПравилаРегистрации." + + ОбменДаннымиПовтИсп.ПолучитьИмяПланаОбмена(УзелИнформационнойБазы); + + ПравилаРегистрацииОбновлены = СтандартныеПодсистемыСервер.ПараметрРаботыПрограммы(ИмяПараметра); + + Если ПравилаРегистрацииОбновлены = Неопределено Тогда + ОбменДаннымиСервер.ВыполнитьОбновлениеПравилДляОбменаДанными(); + КонецЕсли; + + ПравилаРегистрацииОбновлены = СтандартныеПодсистемыСервер.ПараметрРаботыПрограммы(ИмяПараметра); + + Если ПравилаРегистрацииОбновлены = Неопределено Тогда + ВызватьИсключение СтроковыеФункцииКлиентСервер.ПодставитьПараметрыВСтроку( + НСтр("ru = 'Не выполнено обновление кэша правил регистрации данных для плана обмена ""%1""'"), + ОбменДаннымиПовтИсп.ПолучитьИмяПланаОбмена(УзелИнформационнойБазы)); + КонецЕсли; + +КонецПроцедуры + +Процедура ПроверитьИспользованиеСинхронизацииДанных() + + Если НЕ ПолучитьФункциональнуюОпцию("ИспользоватьСинхронизациюДанных") Тогда + + Если ОбщегоНазначения.РазделениеВключено() Тогда + + ИспользоватьСинхронизациюДанных = Константы.ИспользоватьСинхронизациюДанных.СоздатьМенеджерЗначения(); + ИспользоватьСинхронизациюДанных.ДополнительныеСвойства.Вставить("ОтключитьМеханизмРегистрацииОбъектов"); + ИспользоватьСинхронизациюДанных.ОбменДанными.Загрузка = Истина; + ИспользоватьСинхронизациюДанных.Значение = Истина; + ИспользоватьСинхронизациюДанных.Записать(); + + Иначе + + Если ОбменДаннымиСервер.ПолучитьИспользуемыеПланыОбмена().Количество() > 0 Тогда + + ИспользоватьСинхронизациюДанных = Константы.ИспользоватьСинхронизациюДанных.СоздатьМенеджерЗначения(); + ИспользоватьСинхронизациюДанных.ДополнительныеСвойства.Вставить("ОтключитьМеханизмРегистрацииОбъектов"); + ИспользоватьСинхронизациюДанных.ОбменДанными.Загрузка = Истина; + ИспользоватьСинхронизациюДанных.Значение = Истина; + ИспользоватьСинхронизациюДанных.Записать(); + + КонецЕсли; + + КонецЕсли; + + КонецЕсли; + +КонецПроцедуры + #КонецОбласти #КонецЕсли \ No newline at end of file diff --git a/SSL/src/DataProcessors/ПомощникСозданияОбменаДанными/ObjectModule.bsl b/SSL/src/DataProcessors/ПомощникСозданияОбменаДанными/ObjectModule.bsl index a97f0dee1..b85102368 100644 --- a/SSL/src/DataProcessors/ПомощникСозданияОбменаДанными/ObjectModule.bsl +++ b/SSL/src/DataProcessors/ПомощникСозданияОбменаДанными/ObjectModule.bsl @@ -1,5 +1,5 @@ /////////////////////////////////////////////////////////////////////////////////////////////////////// -// Copyright (c) 2024, ООО 1С-Софт +// Copyright (c) 2025, ООО 1С-Софт // Все права защищены. Эта программа и сопроводительные материалы предоставляются // в соответствии с условиями лицензии Attribution 4.0 International (CC BY 4.0) // Текст лицензии доступен по ссылке: @@ -16,8 +16,7 @@ #Область СлужебныеПроцедурыИФункции -//////////////////////////////////////////////////////////////////////////////// -// Экспортные служебные процедуры и функции. +#Область ЭкспортныеСлужебныеПроцедурыИФункции // Выполняет действия при создании нового обмена данными: // - создает или обновляет узлы текущего плана обмена @@ -108,8 +107,9 @@ КонецПроцедуры -//////////////////////////////////////////////////////////////////////////////// -// Для работы через внешнее соединение. +#КонецОбласти + +#Область ДляРаботыЧерезВнешнееСоединение // Выполняет регистрацию изменений на узле плана обмена. // @@ -278,8 +278,9 @@ КонецПроцедуры -//////////////////////////////////////////////////////////////////////////////// -// Функции-свойства +#КонецОбласти + +#Область ФункцииСвойства // Сообщение об ошибке при обмене данными. // @@ -298,8 +299,9 @@ КонецФункции -//////////////////////////////////////////////////////////////////////////////// -// Вспомогательные служебные процедуры и функции. +#КонецОбласти + +#Область ВспомогательныеСлужебныеПроцедурыИФункции Процедура СоздатьОбновитьУзлыПланаОбмена(НастройкаОтборовНаУзле, ЗначенияПоУмолчаниюНаУзле, КодЭтогоУзла, КодНовогоУзла) @@ -361,6 +363,7 @@ Если СоздаватьНовыйУзел Тогда НовыйУзел = МенеджерПланаОбмена.СоздатьУзел(); НовыйУзел.Код = КодНовогоУзла; + НовыйУзел.Заполнить(Неопределено) Иначе ВызватьИсключение НСтр("ru = 'Значение префикса первой информационной базы не уникально. |В системе уже существует синхронизация данных для информационной базы (программы) с указанным префиксом.'"); @@ -525,7 +528,7 @@ // Читает настройки помощника обмена из строки XML. // -Процедура ВыполнитьЗагрузкуПараметровМастера(Отказ, СтрокаXML, ИдентификаторТраспорта = "") Экспорт +Процедура ВыполнитьЗагрузкуПараметровМастера(Отказ, СтрокаXML, ИдентификаторТранспорта = "") Экспорт // Проверка возможности использования плана обмена в модели сервиса. Если ОбщегоНазначения.РазделениеВключено() @@ -541,7 +544,7 @@ МодульПомощникНастройки = ОбменДаннымиСервер.МодульПомощникСозданияОбменаДанными(); Попытка - МодульПомощникНастройки.ЗаполнитьНастройкиПодключенияИзXML(ЭтотОбъект, СтрокаXML,,, ИдентификаторТраспорта); + МодульПомощникНастройки.ЗаполнитьНастройкиПодключенияИзXML(ЭтотОбъект, СтрокаXML,,, ИдентификаторТранспорта); Исключение СообщитьИнформациюОбОшибке(ИнформацияОбОшибке(), Отказ); КонецПопытки; @@ -566,6 +569,8 @@ #КонецОбласти +#КонецОбласти + #Иначе ВызватьИсключение НСтр("ru = 'Недопустимый вызов объекта на клиенте.'"); #КонецЕсли \ No newline at end of file diff --git a/SSL/src/DataProcessors/ЗаявлениеНаВыпускНовогоКвалифицированногоСертификата/Forms/ВводПинКода/Form.form b/SSL/src/DataProcessors/ПрограммыЭлектроннойПодписиИШифрования/Forms/ВводПинКода/Form.form similarity index 100% rename from SSL/src/DataProcessors/ЗаявлениеНаВыпускНовогоКвалифицированногоСертификата/Forms/ВводПинКода/Form.form rename to SSL/src/DataProcessors/ПрограммыЭлектроннойПодписиИШифрования/Forms/ВводПинКода/Form.form diff --git a/SSL/src/DataProcessors/ЗаявлениеНаВыпускНовогоКвалифицированногоСертификата/Forms/ВводПинКода/Module.bsl b/SSL/src/DataProcessors/ПрограммыЭлектроннойПодписиИШифрования/Forms/ВводПинКода/Module.bsl similarity index 95% rename from SSL/src/DataProcessors/ЗаявлениеНаВыпускНовогоКвалифицированногоСертификата/Forms/ВводПинКода/Module.bsl rename to SSL/src/DataProcessors/ПрограммыЭлектроннойПодписиИШифрования/Forms/ВводПинКода/Module.bsl index 22e0f09ff..532639ef7 100644 --- a/SSL/src/DataProcessors/ЗаявлениеНаВыпускНовогоКвалифицированногоСертификата/Forms/ВводПинКода/Module.bsl +++ b/SSL/src/DataProcessors/ПрограммыЭлектроннойПодписиИШифрования/Forms/ВводПинКода/Module.bsl @@ -1,5 +1,5 @@ /////////////////////////////////////////////////////////////////////////////////////////////////////// -// Copyright (c) 2024, ООО 1С-Софт +// Copyright (c) 2025, ООО 1С-Софт // Все права защищены. Эта программа и сопроводительные материалы предоставляются // в соответствии с условиями лицензии Attribution 4.0 International (CC BY 4.0) // Текст лицензии доступен по ссылке: diff --git a/SSL/src/DataProcessors/ПрограммыЭлектроннойПодписиИШифрования/Forms/ДобавлениеПриложения/Form.form b/SSL/src/DataProcessors/ПрограммыЭлектроннойПодписиИШифрования/Forms/ДобавлениеПриложения/Form.form new file mode 100644 index 000000000..fd79463a3 --- /dev/null +++ b/SSL/src/DataProcessors/ПрограммыЭлектроннойПодписиИШифрования/Forms/ДобавлениеПриложения/Form.form @@ -0,0 +1,135 @@ + + + + ВидПриложения + 1 + + <key>ru</key> + <value>Вид приложения</value> + + true + true + + true + + + ВидПриложения + + None + + ВидПриложенияРасширеннаяПодсказка + 3 + Label + true + true + + Left + + + + ВидПриложенияКонтекстноеМеню + 2 + true + + RadioButtonField + Enter + true + Left + true + + 1 + Vertical + + + Bottom + true + + ФормаКоманднаяПанель + -1 + + ФормаДобавить + 4 + + <key>ru</key> + <value>Добавить</value> + + true + true + + true + + + ФормаДобавитьРасширеннаяПодсказка + 5 + Label + true + true + + Left + + + Form.Command.Добавить + Auto + true + true + true + UserCmds + Auto + + Left + + + OnCreateAtServer + ПриСозданииНаСервере + + DontBlock + true + true + true + Vertical + true + true + true + auto + true + + ВидПриложения + + <key>ru</key> + <value>Вид приложения</value> + + 1 + + String + + + + true + + + true + + + + Добавить + + <key>ru</key> + <value>Добавить</value> + + 1 + + true + + + + Добавить + + + Auto + Auto + + + + + + diff --git a/SSL/src/DataProcessors/ПрограммыЭлектроннойПодписиИШифрования/Forms/ДобавлениеПриложения/Module.bsl b/SSL/src/DataProcessors/ПрограммыЭлектроннойПодписиИШифрования/Forms/ДобавлениеПриложения/Module.bsl new file mode 100644 index 000000000..9f6497e09 --- /dev/null +++ b/SSL/src/DataProcessors/ПрограммыЭлектроннойПодписиИШифрования/Forms/ДобавлениеПриложения/Module.bsl @@ -0,0 +1,54 @@ +/////////////////////////////////////////////////////////////////////////////////////////////////////// +// Copyright (c) 2025, ООО 1С-Софт +// Все права защищены. Эта программа и сопроводительные материалы предоставляются +// в соответствии с условиями лицензии Attribution 4.0 International (CC BY 4.0) +// Текст лицензии доступен по ссылке: +// https://creativecommons.org/licenses/by/4.0/legalcode +/////////////////////////////////////////////////////////////////////////////////////////////////////// + +#Область ОбработчикиСобытийФормы + +&НаСервере +Процедура ПриСозданииНаСервере(Отказ, СтандартнаяОбработка) + + СписокВыбора = Элементы.ВидПриложения.СписокВыбора; + + Если ЭлектроннаяПодпись.ОбщиеНастройки().ПроверятьЭлектронныеПодписиНаСервере + Или ЭлектроннаяПодпись.ОбщиеНастройки().СоздаватьЭлектронныеПодписиНаСервере Тогда + СписокВыбора.Добавить("Приложение", НСтр("ru='Приложение электронной подписи на компьютере или сервере'")); + Иначе + СписокВыбора.Добавить("Приложение", НСтр("ru='Приложение электронной подписи на компьютере'")); + КонецЕсли; + + Если ЭлектроннаяПодписьСлужебный.ИспользоватьСервисОблачнойПодписи() Тогда + СписокВыбора.Добавить("ОблачнаяПодпись", НСтр("ru='Учетная запись сервиса DSS'")); + КонецЕсли; + + Если ОбщегоНазначения.ПодсистемаСуществует("СтандартныеПодсистемы.СервисМобильнойПодписи") Тогда + МодульСервисМобильнойПодписи = ОбщегоНазначения.ОбщийМодуль("СервисМобильнойПодписи"); + Если МодульСервисМобильнойПодписи.ИспользоватьГосключ() Тогда + СписокВыбора.Добавить("НастройкаОтправкиВГосключ", НСтр("ru='Настройка отправки в Госключ'")); + КонецЕсли; + КонецЕсли; + + Если СписокВыбора.Количество() = 1 Тогда + Отказ = Истина; + Возврат; + КонецЕсли; + + ВидПриложения = СписокВыбора[0].Значение; + +КонецПроцедуры + +#КонецОбласти + +#Область ОбработчикиКомандФормы + +&НаКлиенте +Процедура Добавить(Команда) + + Закрыть(ВидПриложения); + +КонецПроцедуры + +#КонецОбласти diff --git a/SSL/src/DataProcessors/ПрограммыЭлектроннойПодписиИШифрования/Forms/ОперацииНаТокене/Form.form b/SSL/src/DataProcessors/ПрограммыЭлектроннойПодписиИШифрования/Forms/ОперацииНаТокене/Form.form new file mode 100644 index 000000000..f5b3e1408 --- /dev/null +++ b/SSL/src/DataProcessors/ПрограммыЭлектроннойПодписиИШифрования/Forms/ОперацииНаТокене/Form.form @@ -0,0 +1,435 @@ + + + + ГруппаШапка + 41 + + ГруппаОперация + 10 + + ДекорацияКартинка + 4 + + <key>ru</key> + <value>Декорация картинка</value> + + true + true + + true + + + ДекорацияКартинкаРасширеннаяПодсказка + 6 + Label + true + true + + Left + + + + ДекорацияКартинкаКонтекстноеМеню + 5 + true + + true + true + + + CommonPicture.ДлительнаяОперация16 + + AsFileRef + + + + ДекорацияОперация + 1 + + <key>ru</key> + <value>Поиск сертификатов на токене</value> + + true + true + + true + + + ДекорацияОперацияРасширеннаяПодсказка + 3 + Label + true + true + + Left + + + + ДекорацияОперацияКонтекстноеМеню + 2 + true + + Label + true + true + + Left + + + true + true + + true + + + <key>ru</key> + <value>Операция</value> + + + ГруппаОперацияРасширеннаяПодсказка + 11 + Label + true + true + + Left + + + UsualGroup + + HorizontalIfPossible + Auto + WeakSeparation + true + true + Auto + Auto + + + + ГруппаПовторить + 34 + + ДекорацияПовторить + 36 + + <key>ru</key> + <value>Не удалось выполнить операцию</value> + + true + true + + true + + + ДекорацияПовторитьРасширеннаяПодсказка + 38 + Label + true + true + + Left + + + + ДекорацияПовторитьКонтекстноеМеню + 37 + true + + Label + true + true + + Left + + + + Повторить + 39 + + <key>ru</key> + <value>Повторить</value> + + true + true + + true + + + ПовторитьРасширеннаяПодсказка + 40 + Label + true + true + + Left + + + UsualButton + Form.Command.Повторить + PictureAndText + true + true + true + UserCmds + + StdPicture.Refresh + + Auto + + + Отменить + 43 + + <key>ru</key> + <value>Отменить</value> + + true + true + + true + + + ОтменитьРасширеннаяПодсказка + 44 + Label + true + true + + Left + + + UsualButton + Form.Command.Отменить + Normal + Auto + true + true + UserCmds + Auto + + true + true + + true + + + <key>ru</key> + <value>Повторить</value> + + + ГруппаПовторитьРасширеннаяПодсказка + 35 + Label + true + true + + Left + + + UsualGroup + + Vertical + Auto + WeakSeparation + true + true + Auto + Auto + + + true + true + + true + + + <key>ru</key> + <value>Шапка</value> + + + ГруппаШапкаРасширеннаяПодсказка + 42 + Label + true + true + + Left + + + UsualGroup + + Vertical + Auto + WeakSeparation + true + true + Auto + Auto + + + + ГруппаВерсия + 12 + + Версия + 7 + + <key>ru</key> + <value>Версия компоненты</value> + + true + + true + + + ВерсияРасширеннаяПодсказка + 9 + Label + true + true + + Left + + + + ВерсияКонтекстноеМеню + 8 + true + + Label + true + true + + Left + + + true + true + + true + + + <key>ru</key> + <value>Версия</value> + + Right + Bottom + + ГруппаВерсияРасширеннаяПодсказка + 13 + Label + true + true + + Left + + + UsualGroup + + HorizontalIfPossible + Auto + WeakSeparation + true + true + Auto + Auto + + + + ФормаКоманднаяПанель + -1 + Left + + + NotificationProcessing + ОбработкаОповещения + + + ExternalEvent + ВнешнееСобытие + + LockWholeInterface + true + true + Vertical + true + true + true + true + + Ошибки + 2 + + ValueTable + + + true + + + true + + + Ошибка + 1 + + String + + + + true + + + true + + + + + Повторить + + <key>ru</key> + <value>Повторить</value> + + 2 + + ru + Повторить + + + true + + + + Повторить + + + Auto + Auto + + + Отменить + + <key>ru</key> + <value>Отменить</value> + + 3 + + ru + Отменить + + + true + + + + Отменить + + + Auto + Auto + + + + + + diff --git a/SSL/src/DataProcessors/ПрограммыЭлектроннойПодписиИШифрования/Forms/ОперацииНаТокене/Module.bsl b/SSL/src/DataProcessors/ПрограммыЭлектроннойПодписиИШифрования/Forms/ОперацииНаТокене/Module.bsl new file mode 100644 index 000000000..d9b56ff84 --- /dev/null +++ b/SSL/src/DataProcessors/ПрограммыЭлектроннойПодписиИШифрования/Forms/ОперацииНаТокене/Module.bsl @@ -0,0 +1,723 @@ +/////////////////////////////////////////////////////////////////////////////////////////////////////// +// Copyright (c) 2025, ООО 1С-Софт +// Все права защищены. Эта программа и сопроводительные материалы предоставляются +// в соответствии с условиями лицензии Attribution 4.0 International (CC BY 4.0) +// Текст лицензии доступен по ссылке: +// https://creativecommons.org/licenses/by/4.0/legalcode +/////////////////////////////////////////////////////////////////////////////////////////////////////// + +#Область ОписаниеПеременных + +&НаКлиенте +Перем ОбъектКомпоненты, ОжидаемыеОперации, ПараметрыОперации; + +#КонецОбласти + +#Область ОбработчикиСобытийФормы + +&НаКлиенте +Процедура ВнешнееСобытие(Источник, Событие, Данные) + + Если Событие = "EDMP_OP_FINISH" Тогда + + Если ОжидаемыеОперации = Неопределено Тогда + ОжидаемыеОперации = Новый Соответствие; + КонецЕсли; + + ОписаниеОшибки = Неопределено; + Попытка + НовыйРезультат = ПрочитатьЗначениеJSON(Данные); + Исключение + ОписаниеОшибки = ИнформацияОбОшибке(); + КонецПопытки; + + Если ОписаниеОшибки <> Неопределено Тогда + МассивСообщений = Новый Массив; + МассивСообщений.Добавить(СтроковыеФункцииКлиентСервер.ПодставитьПараметрыВСтроку( + НСтр("ru = 'Не удалось прочитать результат выполнения операции: %1'"), Данные)); + Для Каждого КлючИЗначение Из ОжидаемыеОперации Цикл + МассивСообщений.Добавить(СтроковыеФункцииКлиентСервер.ПодставитьПараметрыВСтроку( + НСтр("ru = 'Операция %1: %2'"), КлючИЗначение.Ключ, + ЗаписатьЗначениеJSON(КлючИЗначение.Значение))); + КонецЦикла; + ЗаписатьВЖурналРегистрации(ИнформацияОбОшибке(), СтрСоединить(МассивСообщений, Символы.ПС)); + ЗавершитьОперацию(НСтр("ru = 'Не удалось выполнить операцию. Подробности см. в журнале регистрации.'")); + Возврат; + КонецЕсли; + + Ключ = КлючОперации(НовыйРезультат.operation, НовыйРезультат.operationid); + СвойстваОперации = ОжидаемыеОперации.Получить(Ключ); + Если СвойстваОперации = Неопределено Тогда + ВнешниеСобытия = ОжидаемыеОперации.Получить("ВнешниеСобытия"); + Если ВнешниеСобытия = Неопределено Тогда + ВнешниеСобытия = Новый Соответствие; + КонецЕсли; + ВнешниеСобытия.Вставить(Ключ, Новый Структура("ОжидатьДо, Результат", ТекущаяДата() + 300, НовыйРезультат)); // АПК:143 Должна использоваться ТекущаяДата() + ОжидаемыеОперации.Вставить("ВнешниеСобытия", ВнешниеСобытия); + ПодключитьОбработчикОжидания("ОбновитьВнешниеСобытия", 1, Истина); + Возврат; + КонецЕсли; + + Если ЗначениеЗаполнено(НовыйРезультат.Message) Тогда + НовыйРезультат.Вставить("Ошибка", НовыйРезультат.Message); + КонецЕсли; + + ВыполнитьОбработкуОповещения(СвойстваОперации.Оповещение, НовыйРезультат); + КонецЕсли; + +КонецПроцедуры + +&НаКлиенте +Процедура ОбработкаОповещения(ИмяСобытия, Параметр, Источник) + + Если ИмяСобытия = "БСП_ОперацииНаТокене" Тогда + +#Если МобильныйКлиент Тогда + УстановитьЗапретЗасыпанияКомпьютера(Истина); +#КонецЕсли + + ПараметрыОперации = Параметр; + ВыполнитьТекущуюОперацию(); + + КонецЕсли; + +КонецПроцедуры + +#КонецОбласти + +#Область ОбработчикиКомандФормы + +&НаКлиенте +Процедура Повторить(Команда) + ВыполнитьТекущуюОперацию(); +КонецПроцедуры + +&НаКлиенте +Процедура Отменить(Команда) + ЗавершитьОперацию(НСтр("ru = 'Операция отменена. Подробности см. в журнале регистрации.'")); +КонецПроцедуры + +#КонецОбласти + +#Область СлужебныеПроцедурыИФункции + +&НаКлиенте +Процедура ВыполнитьТекущуюОперацию() + + Элементы.ГруппаПовторить.Видимость = Ложь; + + Если ТипЗнч(ПараметрыОперации) <> Тип("Структура") Тогда + Возврат; + КонецЕсли; + + Если ПараметрыОперации.Операция = ЭлектроннаяПодписьКлиентЛокализация.ПолучениеСертификатов() Тогда + Элементы.ДекорацияОперация.Заголовок = НСтр("ru = 'Поиск сертификатов на токене...'"); + ПолучениеСертификатовНаТокене(); + Возврат; + ИначеЕсли ПараметрыОперации.Операция = ЭлектроннаяПодписьКлиентЛокализация.Подписание() Тогда + Элементы.ДекорацияОперация.Заголовок = НСтр("ru = 'Подписание на токене...'"); + ПодписаниеНаТокене(); + Возврат; + ИначеЕсли ПараметрыОперации.Операция = ЭлектроннаяПодписьКлиентЛокализация.Шифрование() Тогда + Элементы.ДекорацияОперация.Заголовок = НСтр("ru = 'Шифрование на токене...'"); + ШифрованиеНаТокене(); + Возврат; + ИначеЕсли ПараметрыОперации.Операция = ЭлектроннаяПодписьКлиентЛокализация.Расшифровка() Тогда + Элементы.ДекорацияОперация.Заголовок = НСтр("ru = 'Расшифровка на токене...'"); + РасшифровкаНаТокене(); + Возврат; + ИначеЕсли ПараметрыОперации.Операция = ЭлектроннаяПодписьКлиентЛокализация.ПроверкаПодписи() Тогда + Элементы.ДекорацияОперация.Заголовок = НСтр("ru = 'Проверка подписи на токене...'"); + ПроверкаПодписиНаТокене(); + Возврат; + КонецЕсли; + +КонецПроцедуры + +&НаСервереБезКонтекста +Процедура ЗаписатьВЖурналРегистрации(ТекстСообщения, Подробности = Неопределено, ЭтоОшибка = Истина) + + Массив = Новый Массив; + Если ТипЗнч(ТекстСообщения) = Тип("ИнформацияОбОшибке") Тогда + Массив.Добавить(ОбработкаОшибок.ПодробноеПредставлениеОшибки(ТекстСообщения)); + Иначе + Массив.Добавить(ТекстСообщения); + КонецЕсли; + + Если ЗначениеЗаполнено(Подробности) Тогда + Массив.Добавить(Подробности); + КонецЕсли; + + ТекстОшибки = СтрСоединить(Массив, Символы.ПС); + + ЗаписьЖурналаРегистрации(НСтр("ru = 'Электронная подпись.Операции на токене в мобильном клиенте'", ОбщегоНазначения.КодОсновногоЯзыка()), + ?(ЭтоОшибка, УровеньЖурналаРегистрации.Ошибка, УровеньЖурналаРегистрации.Информация), , ,ТекстОшибки); + +КонецПроцедуры + +&НаКлиенте +Асинх Процедура ПолучениеСертификатовНаТокене() + + Если ОбъектКомпоненты = Неопределено Тогда + Попытка + ОбъектКомпоненты = Ждать ОбъектВнешнейКомпоненты(); + Исключение + ОписаниеОшибки = ОбработкаОшибок.КраткоеПредставлениеОшибки(ИнформацияОбОшибке()); + ЗаписатьВЖурналРегистрации(ИнформацияОбОшибке()); + КонецПопытки; + КонецЕсли; + + Если ЗначениеЗаполнено(ОписаниеОшибки) Тогда + ЗавершитьОперацию(ОписаниеОшибки); + Возврат; + КонецЕсли; + + ВидыТокенов = Ждать ОбъектКомпоненты.ПоддерживаемыеБэкендыАсинх(); + ВидыТокенов = ПрочитатьЗначениеJSON(ВидыТокенов.Значение); + + Контекст = Новый Структура; + Контекст.Вставить("Индекс", -1); + Контекст.Вставить("Элементы", ВидыТокенов); + Контекст.Вставить("Операция", "НайтиТокены"); + Контекст.Вставить("СледующееОповещение", Новый Структура("ПроцедураМодуля, Модуль", "ПослеНайтиТокены", ЭтотОбъект)); + Контекст.Вставить("ВидыТокенов", ВидыТокенов); + Контекст.Вставить("Слоты", Новый Массив); + Контекст.Вставить("Токены", Новый Массив); + + ПродолжитьЦиклВыполнения(Контекст); + +КонецПроцедуры + +&НаКлиенте +Асинх Процедура ПодписаниеНаТокене() + + ПараметрыПодписи = ПараметрыОперации.ПараметрыОперации; + IDТокена = ПараметрыПодписи.Токен.Слот; + ВидТокена = ПараметрыПодписи.Токен.Токен; + + ПараметрыJSON = Новый Структура; + ПараметрыJSON.Вставить("slot", IDТокена); + ПараметрыJSON.Вставить("sign_type", "cadesbes"); + Сертификаты = Новый Массив; + Сертификат = Новый Структура("type, value_type, value", "token", "fingerprint", ПараметрыПодписи.Отпечаток); + Сертификаты.Добавить(Сертификат); + ПараметрыJSON.Вставить("certificates", Сертификаты); + ПараметрыJSONСтрока = ЗаписатьЗначениеJSON(ПараметрыJSON); + + Результат = Ждать ОбъектКомпоненты.ПодписатьАсинх(ВидТокена, ПараметрыJSONСтрока, ПараметрыОперации.Данные, ПараметрыПодписи.Токен.Пароль); + Оповещение = Новый ОписаниеОповещения("ПродолжитьОперацию", ЭтотОбъект, Новый Структура("Операция", ПараметрыОперации.Операция)); + ДобавитьОжидаемуюОперацию(Результат.Значение, Оповещение); + +КонецПроцедуры + +&НаКлиенте +Асинх Процедура РасшифровкаНаТокене() + + ПараметрыРасшифровки = ПараметрыОперации.ПараметрыОперации; + IDТокена = ПараметрыРасшифровки.Токен.Слот; + ВидТокена = ПараметрыРасшифровки.Токен.Токен; + + ПараметрыJSON = Новый Структура; + ПараметрыJSON.Вставить("slot", IDТокена); + ПараметрыJSON.Вставить("backend", ВидТокена); + ПараметрыJSON.Вставить("encrypt_type", ""); + + Сертификаты = Новый Массив; + Сертификат = Новый Структура("type, value_type, value", "token", "fingerprint", ПараметрыРасшифровки.Отпечаток); + Сертификаты.Добавить(Сертификат); + + ПараметрыJSON.Вставить("certificates", Сертификаты); + ПараметрыJSONСтрока = ЗаписатьЗначениеJSON(ПараметрыJSON); + + Данные = ПараметрыОперации.Данные; + Если ЭтоАдресВременногоХранилища(Данные) Тогда + Данные = ПолучитьИзВременногоХранилища(Данные); + КонецЕсли; + + Результат = Ждать ОбъектКомпоненты.DecryptАсинх(ВидТокена, ПараметрыJSONСтрока, ПараметрыРасшифровки.Токен.Пароль, Base64Строка(Данные)); + Оповещение = Новый ОписаниеОповещения("ПродолжитьОперацию", ЭтотОбъект, Новый Структура("Операция", ПараметрыОперации.Операция)); + ДобавитьОжидаемуюОперацию(Результат.Значение, Оповещение); + +КонецПроцедуры + +&НаКлиенте +Асинх Процедура ШифрованиеНаТокене() + + ПараметрыШифрования = ПараметрыОперации.ПараметрыОперации; + IDТокена = ПараметрыШифрования.Токен.Слот; + ВидТокена = ПараметрыШифрования.Токен.Токен; + + ПараметрыJSON = Новый Структура; + ПараметрыJSON.Вставить("slot", IDТокена); + ПараметрыJSON.Вставить("backend", ВидТокена); + ПараметрыJSON.Вставить("encrypt_type", "cms"); + ПараметрыJSON.Вставить("cypher", ПараметрыШифрования.АлгоритмШифрования); + + Сертификаты = Новый Массив; + + Для Каждого Сертификат Из ПараметрыШифрования.Сертификаты Цикл + СертификатШифрования = Новый Структура("type, value_type, value", "data", "", Сертификат); + Сертификаты.Добавить(СертификатШифрования); + КонецЦикла; + + ПараметрыJSON.Вставить("certificates", Сертификаты); + ПараметрыJSONСтрока = ЗаписатьЗначениеJSON(ПараметрыJSON); + + Данные = ПараметрыОперации.Данные; + Если ЭтоАдресВременногоХранилища(Данные) Тогда + Данные = ПолучитьИзВременногоХранилища(Данные); + КонецЕсли; + + Результат = Ждать ОбъектКомпоненты.EncryptАсинх(ВидТокена, ПараметрыJSONСтрока, Данные); + Оповещение = Новый ОписаниеОповещения("ПродолжитьОперацию", ЭтотОбъект, Новый Структура("Операция", ПараметрыОперации.Операция)); + ДобавитьОжидаемуюОперацию(Результат.Значение, Оповещение); + +КонецПроцедуры + +&НаКлиенте +Асинх Процедура ПроверкаПодписиНаТокене() + + ПараметрыПроверкиПодписи = ПараметрыОперации.ПараметрыОперации; + IDТокена = ПараметрыПроверкиПодписи.Токен.Слот; + ВидТокена = ПараметрыПроверкиПодписи.Токен.Токен; + ОткрепленнаяПодпись = ПараметрыПроверкиПодписи.ОткрепленнаяПодпись; + Подпись = ПараметрыПроверкиПодписи.Подпись; + Если ЭтоАдресВременногоХранилища(Подпись) Тогда + Подпись = ПолучитьИзВременногоХранилища(Подпись); + КонецЕсли; + + Данные = ПараметрыОперации.Данные; + Если ЭтоАдресВременногоХранилища(Данные) Тогда + Данные = ПолучитьИзВременногоХранилища(Данные); + КонецЕсли; + + Данные = Base64Строка(Данные); + Подпись = Base64Строка(Подпись); + + ПараметрыJSON = Новый Структура; + ПараметрыJSON.Вставить("slot", IDТокена); + ПараметрыJSON.Вставить("backend", ВидТокена); + ПараметрыJSON.Вставить("sign_type", "cadesbes"); + + ПараметрыJSONСтрока = ЗаписатьЗначениеJSON(ПараметрыJSON); + + Если ОткрепленнаяПодпись Тогда + Результат = Ждать ОбъектКомпоненты.VerifySignАсинх(ВидТокена, ПараметрыJSONСтрока, Подпись, Данные); + Иначе + Результат = Ждать ОбъектКомпоненты.VerifySignАсинх(ВидТокена, ПараметрыJSONСтрока, Подпись); + КонецЕсли; + + Оповещение = Новый ОписаниеОповещения("ПродолжитьОперацию", ЭтотОбъект, Новый Структура("Операция", ПараметрыОперации.Операция)); + ДобавитьОжидаемуюОперацию(Результат.Значение, Оповещение); + +КонецПроцедуры + +&НаКлиенте +Асинх Функция ОбъектВнешнейКомпоненты() + +#Если МобильноеПриложениеКлиент ИЛИ МобильныйКлиент Тогда + + ПараметрыПодключения = ОбщегоНазначенияКлиент.ПараметрыПодключенияКомпоненты(); + ПараметрыПодключения.ТекстПояснения = НСтр("ru = 'Требуется установка компоненты для работы с токенами.'"); + ПараметрыПодключения.ПредложитьУстановить = Истина; + ПараметрыПодключения.ПредложитьЗагрузить = Ложь; + ПараметрыПодключения.Кэшировать = Истина; + ИмяОбъекта = "EDOMP"; + + Результат = Ждать ОбщегоНазначенияКлиент.ПодключитьКомпонентуИзМакетаАсинх( + ИмяОбъекта, + "Обработка.ПрограммыЭлектроннойПодписиИШифрования.Макет.КомпонентаМобильнойПодписи", + ПараметрыПодключения); + + Если Результат.Подключено Тогда + ОбъектКомпоненты = Результат.ПодключаемыйМодуль; + ИначеЕсли ЗначениеЗаполнено(Результат.ОписаниеОшибки) Тогда + ВызватьИсключение Результат.ОписаниеОшибки; + Иначе + ТекстОшибки = СтроковыеФункцииКлиентСервер.ПодставитьПараметрыВСтроку( + НСтр("ru = 'Не удалось подключить внешнюю компоненту %1.'"), ИмяОбъекта); + ВызватьИсключение ТекстОшибки; + КонецЕсли; + + Версия = Ждать ОбъектКомпоненты.ВерсияАсинх(); + Элементы.Версия.Заголовок = "v. " + Версия.Значение; + Элементы.Версия.Видимость = Истина; + + СистемнаяИнформация = Новый СистемнаяИнформация; + ПутьКФайлуДиагностики = ПолучитьНастройку(СистемнаяИнформация.ИдентификаторКлиента); + Если ЗначениеЗаполнено(ПутьКФайлуДиагностики) Тогда + Файл = Новый Файл(ПутьКФайлуДиагностики); + ФайлСуществует = Ждать Файл.СуществуетАсинх(); + Если ФайлСуществует Тогда + Если Ждать Файл.ЭтоКаталогАсинх() Тогда + ПутьКФайлуДиагностики = ОбщегоНазначенияКлиентСервер.ДобавитьКонечныйРазделительПути(Файл.ПолноеИмя) + "EDOMP.log"; + КонецЕсли; + ОбъектКомпоненты.УстановитьЛог(ПутьКФайлуДиагностики); + КонецЕсли; + ЗаписатьВЖурналРегистрации(СтроковыеФункцииКлиентСервер.ПодставитьПараметрыВСтроку( + НСтр("ru = 'Подключена внешняя компонента %1, версия %2.'"), ИмяОбъекта, Версия.Значение),,Ложь); + КонецЕсли; + + Возврат ОбъектКомпоненты; +#Иначе + ВызватьИсключение + НСтр("ru = 'Действие доступно только на мобильных устройствах.'"); +#КонецЕсли + +КонецФункции + +&НаСервереБезКонтекста +Функция ПолучитьНастройку(ИдентификаторКлиента) + ПерсональныеНастройки = ЭлектроннаяПодпись.ПерсональныеНастройки(); + Возврат ПерсональныеНастройки.ПутьККаталогуДиагностики.Получить(ИдентификаторКлиента); +КонецФункции + +&НаКлиенте +Функция КлючОперации(Операция, Идентификатор) + Возврат Операция + "_" + Идентификатор; +КонецФункции + +&НаКлиенте +Процедура ДобавитьОжидаемуюОперацию(Результат, Оповещение, Таймаут = Неопределено) + + Если ОжидаемыеОперации = Неопределено Тогда + ОжидаемыеОперации = Новый Соответствие; + КонецЕсли; + + Если Таймаут = Неопределено Тогда + Таймаут = 20; + КонецЕсли; + + НовыйРезультат = ПрочитатьЗначениеJSON(Результат); + Если НовыйРезультат.State = "0" Тогда + Ключ = КлючОперации(НовыйРезультат.operation, НовыйРезультат.opid); + ОжидаемыеОперации.Вставить(Ключ, Новый Структура("ОжидатьДо, Оповещение", ТекущаяДата() + Таймаут, Оповещение)); // АПК:143 Должна использоваться ТекущаяДата() + Иначе + Ошибка = ОписаниеОшибкиОперацииНаТокене(НовыйРезультат.message); + ВыполнитьОбработкуОповещения(Оповещение, Новый Структура("Ошибка", Ошибка)); + КонецЕсли; + +КонецПроцедуры + +&НаКлиенте +Функция ОписаниеОшибкиОперацииНаТокене(ТекстОшибки) + ТекстОшибкиВНижнемРегистре = НРег(ТекстОшибки); + Если ТекстОшибкиВНижнемРегистре = НРег("Pkcs11 error: CKR_PIN_INCORRECT") Тогда + Возврат НСтр("ru = 'Укажите корректный пин-код токена.'"); + ИначеЕсли ТекстОшибкиВНижнемРегистре = НРег("Pkcs11 error: CKR_DEVICE_ERROR") + Или ТекстОшибкиВНижнемРегистре = НРег("Pkcs11 error: Unknown pkcs11 error") Тогда + Возврат ТекстОшибкиОшибкаУстройства(); + ИначеЕсли ТекстОшибкиВНижнемРегистре = НРег("Pkcs11 error: CKR_TOKEN_NOT_PRESENT") + Или ТекстОшибкиВНижнемРегистре = НРег("Rutoken not ready") Тогда + Возврат ТекстОшибкиОтсутствуетТокен(); + ИначеЕсли ТекстОшибкиВНижнемРегистре = НРег("Pkcs11 error: CKR_ARGUMENTS_BAD") Тогда + Возврат НСтр("ru = 'Недопустимые аргументы.'"); + ИначеЕсли ТекстОшибкиВНижнемРегистре = "user cancel operation" Тогда + Возврат НСтр("ru = 'Операция отменена.'"); + КонецЕсли; + Возврат ТекстОшибки; +КонецФункции + +&НаКлиенте +Функция ТекстОшибкиОшибкаУстройства() + Возврат НСтр("ru = 'Не удалось выполнить операцию на токене.'") +КонецФункции + +&НаКлиенте +Функция ТекстОшибкиОтсутствуетТокен() + Возврат НСтр("ru = 'Потеряна связь с токеном.'") +КонецФункции + +&НаКлиенте +Функция ЭтоОшибкаУстройства(ТекстОшибки) + ТекстОшибкиВНижнемРегистре = НРег(ТекстОшибки); + + Если ТекстОшибкиВНижнемРегистре = НРег("Pkcs11 error: CKR_DEVICE_ERROR") + Или ТекстОшибкиВНижнемРегистре = НРег("Pkcs11 error: CKR_TOKEN_NOT_PRESENT") + Или ТекстОшибкиВНижнемРегистре = НРег("Rutoken not ready") + Или ТекстОшибкиВНижнемРегистре = НРег("Pkcs11 error: Unknown pkcs11 error") + Или ТекстОшибкиВНижнемРегистре = НРег("Sign: no certs specified") + Или СтрНайти(ТекстОшибкиВНижнемРегистре, НРег("0xffffffff80100001")) Тогда + + Возврат Истина; + КонецЕсли; + + Возврат Ложь; + +КонецФункции + +&НаКлиенте +Процедура ПослеНайтиТокены(Результат, Контекст) Экспорт // АПК:78 - обработчик оповещения + ЗавершитьОперацию(Результат.Токены); +КонецПроцедуры + +&НаКлиенте +Процедура ПослеНайтиСлоты(Результат, Контекст) Экспорт // АПК:78 - обработчик оповещения + ПродолжитьЦиклВыполнения(Результат.ПредыдущийКонтекст) +КонецПроцедуры + +&НаКлиенте +Асинх Процедура ПродолжитьЦиклВыполнения(Контекст, Ошибка = Неопределено) + + Если Ошибка <> Неопределено Тогда + ЗавершитьОперацию(Ошибка); + Возврат; + КонецЕсли; + + Если Контекст.Индекс + 1 >= Контекст.Элементы.Количество() Тогда + Оповещение = Новый ОписаниеОповещения(Контекст.СледующееОповещение.ПроцедураМодуля, Контекст.СледующееОповещение.Модуль); + ВыполнитьОбработкуОповещения(Оповещение, Контекст); + Возврат; + КонецЕсли; + + Контекст.Индекс = Контекст.Индекс + 1; + + Если Контекст.Операция = "НайтиТокены" Тогда + + ВидТокена = Контекст.Элементы[Контекст.Индекс]; + + Если ВидТокена = "rutoken_mock" Тогда + ПродолжитьЦиклВыполнения(Контекст); + Возврат; + КонецЕсли; + + НастройкиВидаТокена = Ждать ОбъектКомпоненты.НастройкиБэкендаПоУмолчаниюАсинх(ВидТокена); + Результат = Ждать ОбъектКомпоненты.ИнициализироватьАсинх(ВидТокена, НастройкиВидаТокена.Значение); + Оповещение = Новый ОписаниеОповещения("ПродолжитьНастройкуВидаТокеновПослеИнициализации", ЭтотОбъект, Контекст); + ДобавитьОжидаемуюОперацию(Результат.Значение, Оповещение); + + ИначеЕсли Контекст.Операция = "НайтиСлоты" Тогда + + ПараметрыJSON = Новый Структура; + ПараметрыJSON.Вставить("backend", Контекст.ВидТокена); + ПараметрыJSON.Вставить("slot", Контекст.Элементы[Контекст.Индекс]); + + Поля = Новый Массив; + Поля.Добавить("slot"); + Поля.Добавить("token"); + Поля.Добавить("mechs"); + Поля.Добавить("env"); + + ПараметрыJSON.Вставить("topics", Поля); + ПараметрыJSONСтрока = ЗаписатьЗначениеJSON(ПараметрыJSON); + + ИнформацияОСлоте = Ждать ОбъектКомпоненты.ИнформацияАсинх(Контекст.ВидТокена, ПараметрыJSONСтрока); + Оповещение = Новый ОписаниеОповещения("ПродолжитьПолучениеИнформацииОСлоте", ЭтотОбъект, Контекст); + ДобавитьОжидаемуюОперацию(ИнформацияОСлоте.Значение, Оповещение); + КонецЕсли; + +КонецПроцедуры + +&НаКлиенте +Асинх Процедура ПродолжитьНастройкуВидаТокеновПослеИнициализации(Результат, Контекст) Экспорт + + Если ТипЗнч(Результат) = Тип("Структура") И Результат.Свойство("Ошибка") Тогда + ЗаписатьВЖурналРегистрации(НСтр("ru = 'Инициализация токена:'"), Результат.Ошибка); + ПродолжитьЦиклВыполнения(Контекст, Результат.Ошибка); + Возврат; + КонецЕсли; + + ВидТокена = Контекст.Элементы[Контекст.Индекс]; + + ПараметрыJSON = Новый Структура; + ПараметрыJSON.Вставить("token_preset", Истина); + ПараметрыJSONСтрока = ЗаписатьЗначениеJSON(ПараметрыJSON); + + СписокСлотов = Ждать ОбъектКомпоненты.СписокСлотовАсинх(ВидТокена, ПараметрыJSONСтрока); + + Оповещение = Новый ОписаниеОповещения("ПродолжитьНастройкуВидаТокеновПослеПолученияСпискаСлотов", ЭтотОбъект, Контекст); + ДобавитьОжидаемуюОперацию(СписокСлотов.Значение, Оповещение); + +КонецПроцедуры + +&НаКлиенте +Процедура ПродолжитьНастройкуВидаТокеновПослеПолученияСпискаСлотов(Результат, Контекст) Экспорт + + Если ТипЗнч(Результат) = Тип("Структура") И Результат.Свойство("Ошибка") Тогда + ЗаписатьВЖурналРегистрации(НСтр("ru = 'Получение списка слотов:'"), Результат.Ошибка); + ЗавершитьОперацию(Результат.Ошибка); + Возврат; + КонецЕсли; + + КонтекстДляСлотов = Новый Структура; + КонтекстДляСлотов.Вставить("Индекс", -1); + КонтекстДляСлотов.Вставить("Элементы", Результат.slots); + КонтекстДляСлотов.Вставить("Операция", "НайтиСлоты"); + КонтекстДляСлотов.Вставить("СледующееОповещение", Новый Структура("ПроцедураМодуля, Модуль", "ПослеНайтиСлоты", ЭтотОбъект)); + КонтекстДляСлотов.Вставить("ПредыдущийКонтекст", Контекст); + КонтекстДляСлотов.Вставить("Результат", Новый Массив); + КонтекстДляСлотов.Вставить("ВидТокена", Контекст.Элементы[Контекст.Индекс]); + + ПродолжитьЦиклВыполнения(КонтекстДляСлотов); + +КонецПроцедуры + +&НаКлиенте +Асинх Процедура ПродолжитьПолучениеИнформацииОСлоте(Результат, Контекст) Экспорт + + Если ТипЗнч(Результат) = Тип("Структура") И Результат.Свойство("Ошибка") Тогда + ЗаписатьВЖурналРегистрации(НСтр("ru = 'Получение информации о слоте:'"), Результат.Ошибка); + ЗавершитьОперацию(Результат.Ошибка); + Возврат; + КонецЕсли; + + СвойстваТокена = ЭлектроннаяПодписьСлужебныйКлиент.НовыеСвойстваТокена(); + СвойстваТокена.Токен = Контекст.ВидТокена; + СвойстваТокена.Слот = Контекст.Элементы[Контекст.Индекс]; + СвойстваТокена.Механизмы = ЗаписатьЗначениеJSON(Результат.information.mechanisms.mechanisms); + СвойстваТокена.Модель = ЭлектроннаяПодписьКлиентЛокализация.МодельТокена(Результат.information.token.token.model, Контекст.ВидТокена); + СвойстваТокена.СерийныйНомер = СокрЛП(Результат.information.token.token.serialNumber); + СвойстваТокена.Представление = СтроковыеФункцииКлиентСервер.ПодставитьПараметрыВСтроку( + НСтр("ru = '%1 (серийный номер %2)'"), СвойстваТокена.Модель, СвойстваТокена.СерийныйНомер); + + Если Результат.information.env.env.Свойство("ciphers") Тогда + СвойстваТокена.Вставить("Шифры", ЗаписатьЗначениеJSON(Результат.information.env.env.ciphers)); + Иначе + СвойстваТокена.Вставить("Шифры", Неопределено); + КонецЕсли; + СвойстваТокена.Библиотеки.Вставить("APKLibraryPath", Результат.information.env.env.APKLibraryPath); + СвойстваТокена.Библиотеки.Вставить("NativeLibraryDirectories", Результат.information.env.env.NativeLibraryDirectories); + + ПараметрыJSON = Новый Структура; + ПараметрыJSON.Вставить("slot", Контекст.Элементы[Контекст.Индекс]); + ПараметрыJSONСтрока = ЗаписатьЗначениеJSON(ПараметрыJSON); + + Результат = Ждать ОбъектКомпоненты.СписокСертификатовАсинх(Контекст.ВидТокена, ПараметрыJSONСтрока); + + ПараметрыОперацииНаТокене = Новый Структура("Операция, СвойстваТокена, Контекст", ПараметрыОперации.Операция, СвойстваТокена, Контекст); + + Оповещение = Новый ОписаниеОповещения("ПродолжитьОперацию", ЭтотОбъект, ПараметрыОперацииНаТокене); + ДобавитьОжидаемуюОперацию(Результат.Значение, Оповещение); +КонецПроцедуры + +&НаКлиенте +Асинх Процедура ПродолжитьОперацию(Результат, ПараметрыОперацииНаТокене) Экспорт + + Операция = ПараметрыОперацииНаТокене.Операция; + + Если ТипЗнч(Результат) = Тип("Структура") И Результат.Свойство("Ошибка") Тогда + Если Операция <> ЭлектроннаяПодписьКлиентЛокализация.ПолучениеСертификатов() Тогда + ЗаписатьВЖурналРегистрации(Операция + ":", Результат.Ошибка); + ЗавершитьОперацию(Результат.Ошибка); + Иначе + ЗаписатьВЖурналРегистрации(НСтр("ru = 'Получение списка сертификатов:'"), Результат.Ошибка); + ПродолжитьЦиклВыполнения(ПараметрыОперацииНаТокене.Контекст, Результат.Ошибка); + КонецЕсли; + Возврат; + КонецЕсли; + + Если Операция = ЭлектроннаяПодписьКлиентЛокализация.ПолучениеСертификатов() Тогда + + СвойстваТокена = ПараметрыОперацииНаТокене.СвойстваТокена; + Сертификаты = Новый Соответствие; + + Для Каждого Сертификат Из Результат.certificates Цикл + Строка = СертификатСтрокой(Сертификат); + СертификатКриптографии = Новый СертификатКриптографии; + Ждать СертификатКриптографии.ИнициализироватьАсинх(Base64Значение(Строка)); + Сертификаты.Вставить(Base64Строка(СертификатКриптографии.Отпечаток), Ждать СертификатКриптографии.ВыгрузитьАсинх()); + КонецЦикла; + + СвойстваТокена.Сертификаты = Сертификаты; + ПараметрыОперацииНаТокене.Контекст.ПредыдущийКонтекст.Токены.Добавить(СвойстваТокена); + + ПродолжитьЦиклВыполнения(ПараметрыОперацииНаТокене.Контекст); + + ИначеЕсли Операция = ЭлектроннаяПодписьКлиентЛокализация.Подписание() Тогда + + ПодписьCMS = Base64Значение(Результат.sign.value); + ЗавершитьОперацию(ПодписьCMS); + + ИначеЕсли Операция = ЭлектроннаяПодписьКлиентЛокализация.Шифрование() Тогда + + ЗашифрованныеДанные = Base64Значение(Результат.encrypted.data); + ЗавершитьОперацию(ЗашифрованныеДанные); + + ИначеЕсли Операция = ЭлектроннаяПодписьКлиентЛокализация.Расшифровка() Тогда + + РасшифрованныеДанные = Base64Значение(Результат.decrypted.data); + ЗавершитьОперацию(РасшифрованныеДанные); + + ИначеЕсли Операция = ЭлектроннаяПодписьКлиентЛокализация.ПроверкаПодписи() Тогда + + РезультатПроверки = Новый Структура("Статус, Сертификаты", "", Новый Массив); + РезультатПроверки.Статус = Результат.verification.status; + + Для Каждого Сертификат Из Результат.verification.certificates Цикл + Строка = СертификатСтрокой(Сертификат); + РезультатПроверки.Сертификаты.Добавить(Base64Значение(Строка)); + КонецЦикла; + + ЗавершитьОперацию(РезультатПроверки); + + КонецЕсли; + +КонецПроцедуры + +&НаКлиенте +Функция СертификатСтрокой(Сертификат) + + Строка = СтрЗаменить(Сертификат.value, "-----BEGIN CERTIFICATE-----", ""); + Строка = СтрЗаменить(Строка, "-----END CERTIFICATE-----", ""); + Строка = СтрЗаменить(Строка, Символы.ПС, ""); + Возврат Строка; + +КонецФункции + +&НаКлиенте +Процедура ЗавершитьОперацию(Знач Результат) + + Если ТипЗнч(Результат) = Тип("Строка") Тогда + Если ЭтоОшибкаУстройства(Результат) Тогда + Элементы.ДекорацияПовторить.Заголовок = ОписаниеОшибкиОперацииНаТокене(Результат); + Элементы.ГруппаПовторить.Видимость = Истина; + Если Не Открыта() Тогда + Открыть(); + КонецЕсли; + Возврат; + ИначеЕсли ПараметрыОперации.Операция = ЭлектроннаяПодписьКлиентЛокализация.ПолучениеСертификатов() Тогда + Результат = Неопределено; + Иначе + Результат = ОписаниеОшибкиОперацииНаТокене(Результат); + КонецЕсли; + КонецЕсли; + + ВыполнитьОбработкуОповещения(ПараметрыОперации.Оповещение, Результат); + +#Если МобильныйКлиент Тогда + УстановитьЗапретЗасыпанияКомпьютера(Ложь); +#КонецЕсли + + Если Открыта() Тогда + Закрыть(); + КонецЕсли; +КонецПроцедуры + +&НаКлиенте +Процедура ОбновитьВнешниеСобытия() + ВнешниеСобытия = ОжидаемыеОперации.Получить("ВнешниеСобытия"); + Если ВнешниеСобытия <> Неопределено Тогда + КлючиДляУдаления = Новый Массив; + Для Каждого КлючИЗначение Из ВнешниеСобытия Цикл + СвойстваОперации = ОжидаемыеОперации.Получить(КлючИЗначение.Ключ); + Если СвойстваОперации = Неопределено Тогда + Если КлючИЗначение.Значение.ОжидатьДо < ТекущаяДата() Тогда // АПК:143 Должна использоваться ТекущаяДата() + КлючиДляУдаления.Добавить(КлючИЗначение.Ключ); + Иначе + ПодключитьОбработчикОжидания("ОбновитьВнешниеСобытия", 3, Истина); + КонецЕсли; + Продолжить; + КонецЕсли; + НовыйРезультат = КлючИЗначение.Значение.Результат; + КлючиДляУдаления.Добавить(КлючИЗначение.Ключ); + ВыполнитьОбработкуОповещения(СвойстваОперации.Оповещение, НовыйРезультат); + КонецЦикла; + ВнешниеСобытия = ОжидаемыеОперации.Получить("ВнешниеСобытия"); + Для Каждого Ключ Из КлючиДляУдаления Цикл + ВнешниеСобытия.Удалить(Ключ); + ОжидаемыеОперации.Вставить("ВнешниеСобытия", ВнешниеСобытия); + КонецЦикла; + КонецЕсли; +КонецПроцедуры + +#КонецОбласти diff --git a/SSL/src/DataProcessors/ПрограммыЭлектроннойПодписиИШифрования/Forms/УстановкаCryptoProCSPРегистрационныеДанные/Module.bsl b/SSL/src/DataProcessors/ПрограммыЭлектроннойПодписиИШифрования/Forms/УстановкаCryptoProCSPРегистрационныеДанные/Module.bsl index 15a351ff9..e939003ef 100644 --- a/SSL/src/DataProcessors/ПрограммыЭлектроннойПодписиИШифрования/Forms/УстановкаCryptoProCSPРегистрационныеДанные/Module.bsl +++ b/SSL/src/DataProcessors/ПрограммыЭлектроннойПодписиИШифрования/Forms/УстановкаCryptoProCSPРегистрационныеДанные/Module.bsl @@ -1,5 +1,5 @@ /////////////////////////////////////////////////////////////////////////////////////////////////////// -// Copyright (c) 2024, ООО 1С-Софт +// Copyright (c) 2025, ООО 1С-Софт // Все права защищены. Эта программа и сопроводительные материалы предоставляются // в соответствии с условиями лицензии Attribution 4.0 International (CC BY 4.0) // Текст лицензии доступен по ссылке: diff --git a/SSL/src/DataProcessors/ПрограммыЭлектроннойПодписиИШифрования/Forms/УстановкаViPNetCSPРегистрационныеДанные/Module.bsl b/SSL/src/DataProcessors/ПрограммыЭлектроннойПодписиИШифрования/Forms/УстановкаViPNetCSPРегистрационныеДанные/Module.bsl index b99d8d65a..34c390edb 100644 --- a/SSL/src/DataProcessors/ПрограммыЭлектроннойПодписиИШифрования/Forms/УстановкаViPNetCSPРегистрационныеДанные/Module.bsl +++ b/SSL/src/DataProcessors/ПрограммыЭлектроннойПодписиИШифрования/Forms/УстановкаViPNetCSPРегистрационныеДанные/Module.bsl @@ -1,5 +1,5 @@ /////////////////////////////////////////////////////////////////////////////////////////////////////// -// Copyright (c) 2024, ООО 1С-Софт +// Copyright (c) 2025, ООО 1С-Софт // Все права защищены. Эта программа и сопроводительные материалы предоставляются // в соответствии с условиями лицензии Attribution 4.0 International (CC BY 4.0) // Текст лицензии доступен по ссылке: diff --git a/SSL/src/DataProcessors/ПрограммыЭлектроннойПодписиИШифрования/Forms/УстановкаКриптопровайдераИнформацияОДистрибутиве/Module.bsl b/SSL/src/DataProcessors/ПрограммыЭлектроннойПодписиИШифрования/Forms/УстановкаКриптопровайдераИнформацияОДистрибутиве/Module.bsl index ad76cdf1d..51bb41441 100644 --- a/SSL/src/DataProcessors/ПрограммыЭлектроннойПодписиИШифрования/Forms/УстановкаКриптопровайдераИнформацияОДистрибутиве/Module.bsl +++ b/SSL/src/DataProcessors/ПрограммыЭлектроннойПодписиИШифрования/Forms/УстановкаКриптопровайдераИнформацияОДистрибутиве/Module.bsl @@ -1,5 +1,5 @@ /////////////////////////////////////////////////////////////////////////////////////////////////////// -// Copyright (c) 2024, ООО 1С-Софт +// Copyright (c) 2025, ООО 1С-Софт // Все права защищены. Эта программа и сопроводительные материалы предоставляются // в соответствии с условиями лицензии Attribution 4.0 International (CC BY 4.0) // Текст лицензии доступен по ссылке: diff --git a/SSL/src/DataProcessors/ПрограммыЭлектроннойПодписиИШифрования/Forms/УстановкаПриложенийДляРаботыСЭлектроннойПодписью/Module.bsl b/SSL/src/DataProcessors/ПрограммыЭлектроннойПодписиИШифрования/Forms/УстановкаПриложенийДляРаботыСЭлектроннойПодписью/Module.bsl index e0ea995de..dd92032c2 100644 --- a/SSL/src/DataProcessors/ПрограммыЭлектроннойПодписиИШифрования/Forms/УстановкаПриложенийДляРаботыСЭлектроннойПодписью/Module.bsl +++ b/SSL/src/DataProcessors/ПрограммыЭлектроннойПодписиИШифрования/Forms/УстановкаПриложенийДляРаботыСЭлектроннойПодписью/Module.bsl @@ -1,5 +1,5 @@ /////////////////////////////////////////////////////////////////////////////////////////////////////// -// Copyright (c) 2024, ООО 1С-Софт +// Copyright (c) 2025, ООО 1С-Софт // Все права защищены. Эта программа и сопроводительные материалы предоставляются // в соответствии с условиями лицензии Attribution 4.0 International (CC BY 4.0) // Текст лицензии доступен по ссылке: diff --git a/SSL/src/DataProcessors/ПрограммыЭлектроннойПодписиИШифрования/ManagerModule.bsl b/SSL/src/DataProcessors/ПрограммыЭлектроннойПодписиИШифрования/ManagerModule.bsl index ccf7956e7..62f7939c8 100644 --- a/SSL/src/DataProcessors/ПрограммыЭлектроннойПодписиИШифрования/ManagerModule.bsl +++ b/SSL/src/DataProcessors/ПрограммыЭлектроннойПодписиИШифрования/ManagerModule.bsl @@ -1,5 +1,5 @@ /////////////////////////////////////////////////////////////////////////////////////////////////////// -// Copyright (c) 2024, ООО 1С-Софт +// Copyright (c) 2025, ООО 1С-Софт // Все права защищены. Эта программа и сопроводительные материалы предоставляются // в соответствии с условиями лицензии Attribution 4.0 International (CC BY 4.0) // Текст лицензии доступен по ссылке: @@ -68,6 +68,8 @@ Настройка.АлгоритмыПодписи.Добавить("GR 34.10-2012 256"); Настройка.АлгоритмыХеширования.Добавить("GR 34.11-2012 256"); Настройка.АлгоритмыШифрования.Добавить("GOST 28147-89"); + Настройка.АлгоритмыШифрования.Добавить("GR 34.12-15 M"); + Настройка.АлгоритмыШифрования.Добавить("GR 34.12-15 K"); Настройка.АлгоритмыПроверкиПодписи.Добавить("GOST R 34.10-2001"); Настройка.АлгоритмыПроверкиПодписи.Добавить("GR 34.10-2012 512"); @@ -84,6 +86,8 @@ Настройка.АлгоритмыПодписи.Добавить("GR 34.10-2012 256"); Настройка.АлгоритмыХеширования.Добавить("GR 34.11-2012 256"); Настройка.АлгоритмыШифрования.Добавить("GOST 28147-89"); + Настройка.АлгоритмыШифрования.Добавить("GR 34.12-15 M"); + Настройка.АлгоритмыШифрования.Добавить("GR 34.12-15 K"); Настройка.АлгоритмыПроверкиПодписи.Добавить("GOST R 34.10-2001"); Настройка.АлгоритмыПроверкиПодписи.Добавить("GR 34.10-2012 512"); Настройка.НетВWindows = Истина; @@ -101,6 +105,8 @@ Настройка.АлгоритмыПодписи.Добавить("GR 34.10-2012 256"); Настройка.АлгоритмыХеширования.Добавить("GR 34.11-2012 256"); Настройка.АлгоритмыШифрования.Добавить("GOST 28147-89"); + Настройка.АлгоритмыШифрования.Добавить("GR 34.12-15 M"); + Настройка.АлгоритмыШифрования.Добавить("GR 34.12-15 K"); Настройка.АлгоритмыПроверкиПодписи.Добавить("GOST R 34.10-2001"); Настройка.АлгоритмыПроверкиПодписи.Добавить("GR 34.10-2012 512"); Настройка.НетВWindows = Истина; @@ -118,6 +124,8 @@ Настройка.АлгоритмыПодписи.Добавить("GR 34.10-2012 512"); Настройка.АлгоритмыХеширования.Добавить("GR 34.11-2012 512"); Настройка.АлгоритмыШифрования.Добавить("GOST 28147-89"); + Настройка.АлгоритмыШифрования.Добавить("GR 34.12-15 M"); + Настройка.АлгоритмыШифрования.Добавить("GR 34.12-15 K"); Настройка.АлгоритмыПроверкиПодписи.Добавить("GOST R 34.10-2001"); Настройка.АлгоритмыПроверкиПодписи.Добавить("GR 34.10-2012 256"); @@ -134,6 +142,8 @@ Настройка.АлгоритмыПодписи.Добавить("GR 34.10-2012 512"); Настройка.АлгоритмыХеширования.Добавить("GR 34.11-2012 512"); Настройка.АлгоритмыШифрования.Добавить("GOST 28147-89"); + Настройка.АлгоритмыШифрования.Добавить("GR 34.12-15 M"); + Настройка.АлгоритмыШифрования.Добавить("GR 34.12-15 K"); Настройка.АлгоритмыПроверкиПодписи.Добавить("GOST R 34.10-2001"); Настройка.АлгоритмыПроверкиПодписи.Добавить("GR 34.10-2012 256"); Настройка.НетВWindows = Истина; @@ -151,6 +161,8 @@ Настройка.АлгоритмыПодписи.Добавить("GR 34.10-2012 512"); Настройка.АлгоритмыХеширования.Добавить("GR 34.11-2012 512"); Настройка.АлгоритмыШифрования.Добавить("GOST 28147-89"); + Настройка.АлгоритмыШифрования.Добавить("GR 34.12-15 M"); + Настройка.АлгоритмыШифрования.Добавить("GR 34.12-15 K"); Настройка.АлгоритмыПроверкиПодписи.Добавить("GOST R 34.10-2001"); Настройка.АлгоритмыПроверкиПодписи.Добавить("GR 34.10-2012 256"); Настройка.НетВWindows = Истина; @@ -196,6 +208,8 @@ Настройка.АлгоритмыПодписи.Добавить("GOST3410-12-256"); Настройка.АлгоритмыХеширования.Добавить("GOST3411-12-256"); Настройка.АлгоритмыШифрования.Добавить("GOST28147"); + Настройка.АлгоритмыШифрования.Добавить("kuznyechik-ctracpkm"); + Настройка.АлгоритмыШифрования.Добавить("magma-ctracpkm"); // ViPNet CSP (ГОСТ 2001). Настройка = Настройки.Добавить(); diff --git a/SSL/src/DataProcessors/ПрограммыЭлектроннойПодписиИШифрования/Templates/КлассификаторАУЦ_1_0_0_1/Template.bin b/SSL/src/DataProcessors/ПрограммыЭлектроннойПодписиИШифрования/Templates/КлассификаторАУЦ_1_0_0_1/Template.bin index df631fd2c..c3551f0a6 100644 Binary files a/SSL/src/DataProcessors/ПрограммыЭлектроннойПодписиИШифрования/Templates/КлассификаторАУЦ_1_0_0_1/Template.bin and b/SSL/src/DataProcessors/ПрограммыЭлектроннойПодписиИШифрования/Templates/КлассификаторАУЦ_1_0_0_1/Template.bin differ diff --git a/SSL/src/DataProcessors/ПрограммыЭлектроннойПодписиИШифрования/Templates/КлассификаторОшибокКриптографии/Template.bin b/SSL/src/DataProcessors/ПрограммыЭлектроннойПодписиИШифрования/Templates/КлассификаторОшибокКриптографии/Template.bin index f7e9bb3b5..cb40ae61c 100644 --- a/SSL/src/DataProcessors/ПрограммыЭлектроннойПодписиИШифрования/Templates/КлассификаторОшибокКриптографии/Template.bin +++ b/SSL/src/DataProcessors/ПрограммыЭлектроннойПодписиИШифрования/Templates/КлассификаторОшибокКриптографии/Template.bin @@ -1576,8 +1576,8 @@ }, { "Anchor": "", -"Reason": "• Сообщение зашифровано другим сертификатом, который не установлен в личное хранилище.\n• Ключ на токене создан без возможности использования ключа обмена для шифрования.", -"Solution": "• Убедитесь, что сообщение зашифровано выбранным сертификатом и вводится правильный пароль.\n• Убедитесь, что драйвер токена обновлен, создайте новый ключ на токене в актуальном приложении 1С, перевыпустите сертификат.\n ", +"Reason": "• Сертификат не установлен в личное хранилище.\n• Сообщение зашифровано другим сертификатом, который не установлен в личное хранилище.\n• Ключ на токене создан без возможности использования ключа обмена для шифрования.\n\n", +"Solution": "• Установите сертификат через оснастку приложения электронной подписи с привязкой к закрытому ключу. См. инструкцию.\n• Убедитесь, что сообщение зашифровано выбранным сертификатом и вводится правильный пароль.\n• Убедитесь, что драйвер токена обновлен, создайте новый ключ на токене в актуальном приложении 1С, перевыпустите сертификат.\n ", "ErrorText": "Ошибка при расшифровании криптографических данных (0x80092004)", "RepairMethods": "", "En": "" @@ -1622,8 +1622,17 @@ "ErrorText": "При значении атрибута Пред/@ТипПред равном '3', тег Пред/СведФизЛ/СведФЛ должен содержать тег УдЛичнФЛ)", "RepairMethods": "", "En": "" +}, +{ +"Anchor": "", +"Reason": "Алгоритм выбранного приложения электронной подписи в карточке сертификата не соответствует сертификату.", +"Solution": "• Установите флажок \"Вводить пароль в приложении электронной подписи\" и повторите действие.\n• В Справочнике сертификатов выполните экспорт сертификата в файл в формате ASN.1 DER и переустановките экспортированный сертификат в личное хранилище.\n• Удалите все приложения электронной подписи, почистите реестр с помощью утилиты КриптоПро cspclean и установите только одно из приложений.\n\n", +"ErrorText": "Сертификат связан с приложением Validata GOST R 34.10-2001", +"RepairMethods": "", +"En": "", +"Client": true } ], -"LastChangeDate": "2026-02-27T16:25:02", -"Version": "3.0.1.75" +"LastChangeDate": "2026-04-21T11:53:52", +"Version": "3.0.1.77" } \ No newline at end of file diff --git a/SSL/src/DataProcessors/ПрограммыЭлектроннойПодписиИШифрования/Templates/КомпонентаМобильнойПодписи_2_0_4_2/Template.addin b/SSL/src/DataProcessors/ПрограммыЭлектроннойПодписиИШифрования/Templates/КомпонентаМобильнойПодписи_2_0_4_2/Template.addin new file mode 100644 index 000000000..6350db643 Binary files /dev/null and b/SSL/src/DataProcessors/ПрограммыЭлектроннойПодписиИШифрования/Templates/КомпонентаМобильнойПодписи_2_0_4_2/Template.addin differ diff --git a/SSL/src/DataProcessors/ПрограммыЭлектроннойПодписиИШифрования/ПрограммыЭлектроннойПодписиИШифрования.mdo b/SSL/src/DataProcessors/ПрограммыЭлектроннойПодписиИШифрования/ПрограммыЭлектроннойПодписиИШифрования.mdo index 0b46bb8f7..18a033184 100644 --- a/SSL/src/DataProcessors/ПрограммыЭлектроннойПодписиИШифрования/ПрограммыЭлектроннойПодписиИШифрования.mdo +++ b/SSL/src/DataProcessors/ПрограммыЭлектроннойПодписиИШифрования/ПрограммыЭлектроннойПодписиИШифрования.mdo @@ -56,6 +56,34 @@ PersonalComputer MobileDevice + + ОперацииНаТокене + + ru + Операции на токене + + Операции на токене в мобильном клиенте + PersonalComputer + MobileDevice + + + ДобавлениеПриложения + + ru + Добавление приложения + + PersonalComputer + MobileDevice + + + ВводПинКода + + ru + Ввод пин кода + + PersonalComputer + MobileDevice + КлассификаторАУЦ_1_0_0_1 @@ -74,4 +102,12 @@ АПК:497 Не подлежит переводу, находится в локализованной части BinaryData + + КомпонентаМобильнойПодписи_2_0_4_2 + + ru + Компонента мобильной подписи (EDOMP) + + AddIn + diff --git a/SSL/src/DataProcessors/РаботаСФайлами/Forms/ВерсияПрисоединенногоФайла/Module.bsl b/SSL/src/DataProcessors/РаботаСФайлами/Forms/ВерсияПрисоединенногоФайла/Module.bsl index 8ebac2a97..4ce33ec8d 100644 --- a/SSL/src/DataProcessors/РаботаСФайлами/Forms/ВерсияПрисоединенногоФайла/Module.bsl +++ b/SSL/src/DataProcessors/РаботаСФайлами/Forms/ВерсияПрисоединенногоФайла/Module.bsl @@ -1,5 +1,5 @@ /////////////////////////////////////////////////////////////////////////////////////////////////////// -// Copyright (c) 2024, ООО 1С-Софт +// Copyright (c) 2025, ООО 1С-Софт // Все права защищены. Эта программа и сопроводительные материалы предоставляются // в соответствии с условиями лицензии Attribution 4.0 International (CC BY 4.0) // Текст лицензии доступен по ссылке: @@ -89,11 +89,16 @@ &НаКлиенте Процедура ОткрытьВыполнить() - - ВерсияСсылка = Объект.Ссылка; - ДанныеФайла = РаботаСФайламиСлужебныйВызовСервера.ДанныеФайлаДляОткрытия(Объект.Владелец, ВерсияСсылка, УникальныйИдентификатор); - РаботаСФайламиСлужебныйКлиент.ОткрытьВерсиюФайла(Неопределено, ДанныеФайла, УникальныйИдентификатор); - + + ПараметрыПолученияФайла = РаботаСФайламиКлиент.ПараметрыАсинхронногоПолученияФайла("ОткрытьВерсиюФайла"); + ПараметрыПолученияФайла.ПрисоединенныйФайл = Объект.Владелец; + ПараметрыПолученияФайла.ВерсияСсылка = Объект.Ссылка; + ПараметрыПолученияФайла.ФормаВладелец = ЭтотОбъект; + + ПараметрыПолученияФайла.ПараметрыДействия.УникальныйИдентификатор = УникальныйИдентификатор; + + РаботаСФайламиКлиент.ОткрытьФайл(ПараметрыПолученияФайла); + КонецПроцедуры #КонецОбласти @@ -103,9 +108,14 @@ &НаКлиенте Процедура СохранитьКак(Команда) - ВерсияСсылка = Объект.Ссылка; - ДанныеФайла = РаботаСФайламиСлужебныйВызовСервера.ДанныеФайлаДляСохранения(Объект.Владелец, ВерсияСсылка, УникальныйИдентификатор); - РаботаСФайламиСлужебныйКлиент.СохранитьКак(Неопределено, ДанныеФайла, УникальныйИдентификатор); + ПараметрыПолученияФайла = РаботаСФайламиКлиент.ПараметрыАсинхронногоПолученияФайла("СохранитьКак", "РаботаСФайламиСлужебный.ДанныеФайлаДляСохраненияАсинхронный"); + ПараметрыПолученияФайла.ПрисоединенныйФайл = Объект.Владелец; + ПараметрыПолученияФайла.ВерсияСсылка = Объект.Ссылка; + ПараметрыПолученияФайла.ФормаВладелец = ЭтотОбъект; + + ПараметрыПолученияФайла.ПараметрыДействия.УникальныйИдентификатор = УникальныйИдентификатор; + + РаботаСФайламиКлиент.СохранитьФайлКак(ПараметрыПолученияФайла); КонецПроцедуры diff --git a/SSL/src/DataProcessors/РаботаСФайлами/Forms/ВопросПриИмпортеФайлов/Module.bsl b/SSL/src/DataProcessors/РаботаСФайлами/Forms/ВопросПриИмпортеФайлов/Module.bsl index d2e89083d..c5b68de09 100644 --- a/SSL/src/DataProcessors/РаботаСФайлами/Forms/ВопросПриИмпортеФайлов/Module.bsl +++ b/SSL/src/DataProcessors/РаботаСФайлами/Forms/ВопросПриИмпортеФайлов/Module.bsl @@ -1,5 +1,5 @@ /////////////////////////////////////////////////////////////////////////////////////////////////////// -// Copyright (c) 2024, ООО 1С-Софт +// Copyright (c) 2025, ООО 1С-Софт // Все права защищены. Эта программа и сопроводительные материалы предоставляются // в соответствии с условиями лицензии Attribution 4.0 International (CC BY 4.0) // Текст лицензии доступен по ссылке: diff --git a/SSL/src/DataProcessors/РаботаСФайлами/Forms/ВсеФайлы/Form.form b/SSL/src/DataProcessors/РаботаСФайлами/Forms/ВсеФайлы/Form.form index 25e54bb70..5aa3011ef 100644 --- a/SSL/src/DataProcessors/РаботаСФайлами/Forms/ВсеФайлы/Form.form +++ b/SSL/src/DataProcessors/РаботаСФайлами/Forms/ВсеФайлы/Form.form @@ -1,5 +1,5 @@ - + <key>ru</key> <value>Все файлы</value> @@ -60,6 +60,10 @@ <items xsi:type="form:FormField"> <name>СписокНомерКартинкиПодписанЗашифрован</name> <id>86</id> + <title> + <key>ru</key> + <value>Зашифровано</value> + true true @@ -111,6 +115,66 @@
                  + + СписокНомерКартинкиЭтоАрхив + 166 + + <key>ru</key> + <value>В архиве</value> + + true + true + + true + + + Список.НомерКартинкиЭтоАрхив + + None + + ru + Файл перенесен в архив + + + СписокНомерКартинкиЭтоАрхивРасширеннаяПодсказка + 168 + Label + true + true + + Left + + + + СписокНомерКартинкиЭтоАрхивКонтекстноеМеню + 167 + true + + PictureField + true + Enter + true + + CommonPicture.ФайловыйАрхив + + Left + true + + 2 + true + true + true + true + + CommonPicture.ФайловыйАрхив + + + + 1 + + AsFileRef + + СписокКартинкаИНаименование 45 @@ -1452,6 +1516,9 @@ true + + Список.НомерКартинкиЭтоАрхив + Список.Редактирует @@ -1489,9 +1556,20 @@ СведенияОФайлах.Расширение КАК Расширение, СведенияОФайлах.ХранитьВерсии КАК ХранитьВерсии, СведенияОФайлах.НомерКартинкиПодписанЗашифрован КАК НомерКартинкиПодписанЗашифрован, - СведенияОФайлах.Служебный КАК Служебный + СведенияОФайлах.Служебный КАК Служебный, + ВЫБОР + КОГДА ЕСТЬNULL(ВЫБОР + КОГДА СведенияОФайлах.Файл ССЫЛКА Справочник.Файлы + ТОГДА ФайлыДляСоединения.ТекущаяВерсия.ДатаПереносаВАрхив + ИНАЧЕ СведенияОФайлах.ДатаПереносаВАрхив + КОНЕЦ, ДАТАВРЕМЯ(1, 1, 1)) = ДАТАВРЕМЯ(1, 1, 1) + ТОГДА -1 + ИНАЧЕ 0 + КОНЕЦ КАК НомерКартинкиЭтоАрхив ИЗ РегистрСведений.СведенияОФайлах КАК СведенияОФайлах + ЛЕВОЕ СОЕДИНЕНИЕ Справочник.Файлы КАК ФайлыДляСоединения + ПО (СведенияОФайлах.Файл = ФайлыДляСоединения.Ссылка) ГДЕ НЕ СведенияОФайлах.Файл ЕСТЬ NULL InformationRegister.СведенияОФайлах @@ -1500,6 +1578,143 @@ true true true + + ИндексКартинки + ИндексКартинки + + <localValue> + <content> + <key>ru</key> + <value>Индекс картинки</value> + </content> + </localValue> + + + + ДатаСоздания + ДатаСоздания + + + ХранитьВерсии + ХранитьВерсии + + + Размер + Размер + + <localValue> + <content> + <key>ru</key> + <value>Размер</value> + </content> + </localValue> + + + + Описание + Описание + + + ПометкаУдаления + ПометкаУдаления + + + Редактирует + Редактирует + + + Автор + Автор + + + Наименование + Наименование + + + Ссылка + Ссылка + + <localValue> + <content> + <key>ru</key> + <value>Ссылка</value> + </content> + </localValue> + + + + ФайлРедактируетТекущийПользователь + ФайлРедактируетТекущийПользователь + + <localValue> + <content> + <key>ru</key> + <value>Файл редактирует текущий пользователь</value> + </content> + </localValue> + + + + ВладелецФайла + ВладелецФайла + + + Служебный + Служебный + + + Расширение + Расширение + + + НомерКартинкиПодписанЗашифрован + НомерКартинкиПодписанЗашифрован + + + НомерКартинкиЭтоАрхив + НомерКартинкиЭтоАрхив + + <localValue> + <content> + <key>ru</key> + <value>Номер картинки это архив</value> + </content> + </localValue> + + + + Файл + Файл + + + ТипХраненияФайла + ТипХраненияФайла + + + ДатаПереносаВАрхив + ДатаПереносаВАрхив + + + УсловноПеренесенВАрхив + УсловноПеренесенВАрхив + + + ТекущийПользователь + + <localValue> + <content> + <key>ru</key> + <value>Текущий пользователь</value> + </content> + </localValue> + + + CatalogRef.УчетныеЗаписиСинхронизацииФайлов + CatalogRef.Пользователи + + + true + diff --git a/SSL/src/DataProcessors/РаботаСФайлами/Forms/ВсеФайлы/Module.bsl b/SSL/src/DataProcessors/РаботаСФайлами/Forms/ВсеФайлы/Module.bsl index 665470076..6731d8f36 100644 --- a/SSL/src/DataProcessors/РаботаСФайлами/Forms/ВсеФайлы/Module.bsl +++ b/SSL/src/DataProcessors/РаботаСФайлами/Forms/ВсеФайлы/Module.bsl @@ -1,5 +1,5 @@ /////////////////////////////////////////////////////////////////////////////////////////////////////// -// Copyright (c) 2024, ООО 1С-Софт +// Copyright (c) 2025, ООО 1С-Софт // Все права защищены. Эта программа и сопроводительные материалы предоставляются // в соответствии с условиями лицензии Attribution 4.0 International (CC BY 4.0) // Текст лицензии доступен по ссылке: @@ -27,6 +27,9 @@ ПриИзмененииИспользованияПодписанияИлиШифрованияНаСервере(); НавигационнаяСсылка = "e1cib/app/" + ИмяФормы; + + РаботаСФайловымАрхивомСервер.ВидимостьПоляСписокНомерКартинкиЭтоАрхив(Элементы.СписокНомерКартинкиЭтоАрхив); + КонецПроцедуры &НаКлиенте @@ -41,6 +44,10 @@ ИначеЕсли Источник <> Неопределено Тогда Элементы.Список.ТекущаяСтрока = Источник; КонецЕсли; + + Если Параметр.Событие = "ФайлыИзмененыПриРаботеСАрхивом" Тогда + УстановитьДоступностьФайловыхКоманд(); + КонецЕсли; ИначеЕсли ВРег(ИмяСобытия) = ВРег("Запись_НаборКонстант") И (ВРег(Источник) = ВРег("ИспользоватьЭлектронныеПодписи") Или ВРег(Источник) = ВРег("ИспользоватьШифрование")) Тогда @@ -60,11 +67,11 @@ &НаКлиенте Процедура СписокВыбор(Элемент, ВыбраннаяСтрока, Поле, СтандартнаяОбработка) - + СтандартнаяОбработка = Ложь; - ДанныеФайла = РаботаСФайламиСлужебныйВызовСервера.ДанныеФайлаДляОткрытия(Элементы.Список.ТекущиеДанные.Ссылка, Неопределено, УникальныйИдентификатор); - РаботаСФайламиСлужебныйКлиент.ОткрытьФайлСОповещением(Неопределено, ДанныеФайла); - + + ОткрытьФайл(); + КонецПроцедуры &НаКлиенте @@ -88,20 +95,41 @@ Возврат; КонецЕсли; - ДанныеФайла = РаботаСФайламиСлужебныйВызовСервера.ДанныеФайлаДляОткрытия(Элементы.Список.ТекущиеДанные.Ссылка, Неопределено, УникальныйИдентификатор); - РаботаСФайламиКлиент.ОткрытьФайл(ДанныеФайла); + ОткрытьФайл(); КонецПроцедуры +&НаКлиенте +Процедура ОткрытьФайл() + + ТекущиеДанные = Элементы.Список.ТекущиеДанные; + + ПараметрыПолученияФайла = РаботаСФайламиКлиент.ПараметрыАсинхронногоПолученияФайла("ОткрытьФайлСОповещением"); + ПараметрыПолученияФайла.ПрисоединенныйФайл = ТекущиеДанные.Ссылка; + ПараметрыПолученияФайла.ФормаВладелец = ЭтотОбъект; + ПараметрыПолученияФайла.ПроверятьНаличиеФайлаВАрхиве = Ложь; + ПараметрыПолученияФайла.ФайлВАрхиве = ТекущиеДанные.НомерКартинкиЭтоАрхив = 0; + + РаботаСФайламиКлиент.ОткрытьФайл(ПараметрыПолученияФайла); + +КонецПроцедуры + &НаКлиенте Процедура СохранитьКак(Команда) Если Не ФайловыеКомандыДоступны() Тогда Возврат; КонецЕсли; + + ТекущиеДанные = Элементы.Список.ТекущиеДанные; - ДанныеФайла = РаботаСФайламиСлужебныйВызовСервера.ДанныеФайлаДляСохранения(Элементы.Список.ТекущиеДанные.Ссылка, , УникальныйИдентификатор); - РаботаСФайламиСлужебныйКлиент.СохранитьКак(Неопределено, ДанныеФайла, Неопределено); + ПараметрыПолученияФайла = РаботаСФайламиКлиент.ПараметрыАсинхронногоПолученияФайла("СохранитьКак", "РаботаСФайламиСлужебный.ДанныеФайлаДляСохраненияАсинхронный"); + ПараметрыПолученияФайла.ПрисоединенныйФайл = ТекущиеДанные.Ссылка; + ПараметрыПолученияФайла.ФормаВладелец = ЭтотОбъект; + ПараметрыПолученияФайла.ПроверятьНаличиеФайлаВАрхиве = Ложь; + ПараметрыПолученияФайла.ФайлВАрхиве = ТекущиеДанные.НомерКартинкиЭтоАрхив = 0; + + РаботаСФайламиКлиент.СохранитьФайлКак(ПараметрыПолученияФайла); КонецПроцедуры diff --git a/SSL/src/DataProcessors/РаботаСФайлами/Forms/ВыборГруппы/Module.bsl b/SSL/src/DataProcessors/РаботаСФайлами/Forms/ВыборГруппы/Module.bsl index e5924e8ba..03c025d91 100644 --- a/SSL/src/DataProcessors/РаботаСФайлами/Forms/ВыборГруппы/Module.bsl +++ b/SSL/src/DataProcessors/РаботаСФайлами/Forms/ВыборГруппы/Module.bsl @@ -1,5 +1,5 @@ /////////////////////////////////////////////////////////////////////////////////////////////////////// -// Copyright (c) 2024, ООО 1С-Софт +// Copyright (c) 2025, ООО 1С-Софт // Все права защищены. Эта программа и сопроводительные материалы предоставляются // в соответствии с условиями лицензии Attribution 4.0 International (CC BY 4.0) // Текст лицензии доступен по ссылке: diff --git a/SSL/src/DataProcessors/РаботаСФайлами/Forms/ВыборКодировки/Module.bsl b/SSL/src/DataProcessors/РаботаСФайлами/Forms/ВыборКодировки/Module.bsl index 98bf3a3c5..ebdcc2a8e 100644 --- a/SSL/src/DataProcessors/РаботаСФайлами/Forms/ВыборКодировки/Module.bsl +++ b/SSL/src/DataProcessors/РаботаСФайлами/Forms/ВыборКодировки/Module.bsl @@ -1,5 +1,5 @@ /////////////////////////////////////////////////////////////////////////////////////////////////////// -// Copyright (c) 2024, ООО 1С-Софт +// Copyright (c) 2025, ООО 1С-Софт // Все права защищены. Эта программа и сопроводительные материалы предоставляются // в соответствии с условиями лицензии Attribution 4.0 International (CC BY 4.0) // Текст лицензии доступен по ссылке: diff --git a/SSL/src/DataProcessors/РаботаСФайлами/Forms/ВыборСохраненияШифрованногоФайла/Module.bsl b/SSL/src/DataProcessors/РаботаСФайлами/Forms/ВыборСохраненияШифрованногоФайла/Module.bsl index 59bf7e89c..edcb8859b 100644 --- a/SSL/src/DataProcessors/РаботаСФайлами/Forms/ВыборСохраненияШифрованногоФайла/Module.bsl +++ b/SSL/src/DataProcessors/РаботаСФайлами/Forms/ВыборСохраненияШифрованногоФайла/Module.bsl @@ -1,5 +1,5 @@ /////////////////////////////////////////////////////////////////////////////////////////////////////// -// Copyright (c) 2024, ООО 1С-Софт +// Copyright (c) 2025, ООО 1С-Софт // Все права защищены. Эта программа и сопроводительные материалы предоставляются // в соответствии с условиями лицензии Attribution 4.0 International (CC BY 4.0) // Текст лицензии доступен по ссылке: diff --git a/SSL/src/DataProcessors/РаботаСФайлами/Forms/ВыборСпособаСравненияВерсий/Module.bsl b/SSL/src/DataProcessors/РаботаСФайлами/Forms/ВыборСпособаСравненияВерсий/Module.bsl index 58afca5e7..e85638c01 100644 --- a/SSL/src/DataProcessors/РаботаСФайлами/Forms/ВыборСпособаСравненияВерсий/Module.bsl +++ b/SSL/src/DataProcessors/РаботаСФайлами/Forms/ВыборСпособаСравненияВерсий/Module.bsl @@ -1,5 +1,5 @@ /////////////////////////////////////////////////////////////////////////////////////////////////////// -// Copyright (c) 2024, ООО 1С-Софт +// Copyright (c) 2025, ООО 1С-Софт // Все права защищены. Эта программа и сопроводительные материалы предоставляются // в соответствии с условиями лицензии Attribution 4.0 International (CC BY 4.0) // Текст лицензии доступен по ссылке: diff --git a/SSL/src/DataProcessors/РаботаСФайлами/Forms/ГруппаФайлов/Module.bsl b/SSL/src/DataProcessors/РаботаСФайлами/Forms/ГруппаФайлов/Module.bsl index 8f7e4acfd..5fe473dd6 100644 --- a/SSL/src/DataProcessors/РаботаСФайлами/Forms/ГруппаФайлов/Module.bsl +++ b/SSL/src/DataProcessors/РаботаСФайлами/Forms/ГруппаФайлов/Module.bsl @@ -1,5 +1,5 @@ /////////////////////////////////////////////////////////////////////////////////////////////////////// -// Copyright (c) 2024, ООО 1С-Софт +// Copyright (c) 2025, ООО 1С-Софт // Все права защищены. Эта программа и сопроводительные материалы предоставляются // в соответствии с условиями лицензии Attribution 4.0 International (CC BY 4.0) // Текст лицензии доступен по ссылке: diff --git a/SSL/src/DataProcessors/РаботаСФайлами/Forms/ЗавершениеРедактирования/Module.bsl b/SSL/src/DataProcessors/РаботаСФайлами/Forms/ЗавершениеРедактирования/Module.bsl index 3c2d367f7..ff0d73534 100644 --- a/SSL/src/DataProcessors/РаботаСФайлами/Forms/ЗавершениеРедактирования/Module.bsl +++ b/SSL/src/DataProcessors/РаботаСФайлами/Forms/ЗавершениеРедактирования/Module.bsl @@ -1,5 +1,5 @@ /////////////////////////////////////////////////////////////////////////////////////////////////////// -// Copyright (c) 2024, ООО 1С-Софт +// Copyright (c) 2025, ООО 1С-Софт // Все права защищены. Эта программа и сопроводительные материалы предоставляются // в соответствии с условиями лицензии Attribution 4.0 International (CC BY 4.0) // Текст лицензии доступен по ссылке: diff --git a/SSL/src/DataProcessors/РаботаСФайлами/Forms/ЗагрузкаПапки/Module.bsl b/SSL/src/DataProcessors/РаботаСФайлами/Forms/ЗагрузкаПапки/Module.bsl index 8245b00ec..84041724f 100644 --- a/SSL/src/DataProcessors/РаботаСФайлами/Forms/ЗагрузкаПапки/Module.bsl +++ b/SSL/src/DataProcessors/РаботаСФайлами/Forms/ЗагрузкаПапки/Module.bsl @@ -1,5 +1,5 @@ /////////////////////////////////////////////////////////////////////////////////////////////////////// -// Copyright (c) 2024, ООО 1С-Софт +// Copyright (c) 2025, ООО 1С-Софт // Все права защищены. Эта программа и сопроводительные материалы предоставляются // в соответствии с условиями лицензии Attribution 4.0 International (CC BY 4.0) // Текст лицензии доступен по ссылке: diff --git a/SSL/src/DataProcessors/РаботаСФайлами/Forms/ЗагрузкаФайлов/Module.bsl b/SSL/src/DataProcessors/РаботаСФайлами/Forms/ЗагрузкаФайлов/Module.bsl index 5f4503123..9ee2ecc56 100644 --- a/SSL/src/DataProcessors/РаботаСФайлами/Forms/ЗагрузкаФайлов/Module.bsl +++ b/SSL/src/DataProcessors/РаботаСФайлами/Forms/ЗагрузкаФайлов/Module.bsl @@ -1,5 +1,5 @@ /////////////////////////////////////////////////////////////////////////////////////////////////////// -// Copyright (c) 2024, ООО 1С-Софт +// Copyright (c) 2025, ООО 1С-Софт // Все права защищены. Эта программа и сопроводительные материалы предоставляются // в соответствии с условиями лицензии Attribution 4.0 International (CC BY 4.0) // Текст лицензии доступен по ссылке: diff --git a/SSL/src/DataProcessors/РаботаСФайлами/Forms/КакОткрытьФайл/Module.bsl b/SSL/src/DataProcessors/РаботаСФайлами/Forms/КакОткрытьФайл/Module.bsl index 638d90d28..45988fa2b 100644 --- a/SSL/src/DataProcessors/РаботаСФайлами/Forms/КакОткрытьФайл/Module.bsl +++ b/SSL/src/DataProcessors/РаботаСФайлами/Forms/КакОткрытьФайл/Module.bsl @@ -1,5 +1,5 @@ /////////////////////////////////////////////////////////////////////////////////////////////////////// -// Copyright (c) 2024, ООО 1С-Софт +// Copyright (c) 2025, ООО 1С-Софт // Все права защищены. Эта программа и сопроводительные материалы предоставляются // в соответствии с условиями лицензии Attribution 4.0 International (CC BY 4.0) // Текст лицензии доступен по ссылке: diff --git a/SSL/src/DataProcessors/РаботаСФайлами/Forms/ПрисоединенныеФайлы/Form.form b/SSL/src/DataProcessors/РаботаСФайлами/Forms/ПрисоединенныеФайлы/Form.form index 90fb06fbf..a29ca5a55 100644 --- a/SSL/src/DataProcessors/РаботаСФайлами/Forms/ПрисоединенныеФайлы/Form.form +++ b/SSL/src/DataProcessors/РаботаСФайлами/Forms/ПрисоединенныеФайлы/Form.form @@ -1,5 +1,5 @@ - + <key>ru</key> <value>Присоединенные файлы</value> @@ -407,7 +407,7 @@ <id>206</id> <title> <key>ru</key> - <value>Номер картинки</value> + <value>Зашифровано</value> true true @@ -461,6 +461,66 @@ + + СписокНомерКартинкиЭтоАрхив + 384 + + <key>ru</key> + <value>В архиве</value> + + true + true + + true + + + Список.НомерКартинкиЭтоАрхив + + None + + ru + Файл перенесен в архив + + + СписокНомерКартинкиЭтоАрхивРасширеннаяПодсказка + 386 + Label + true + true + + Left + + + + СписокНомерКартинкиЭтоАрхивКонтекстноеМеню + 385 + true + + PictureField + true + Enter + true + + CommonPicture.ФайловыйАрхив + + Left + true + + 2 + true + true + true + true + + CommonPicture.ФайловыйАрхив + + + + 1 + + AsFileRef + + СписокГруппаИмяОписание 204 @@ -1979,6 +2039,10 @@ None true + + OnGetDataAtServer + СписокПриПолученииДанныхНаСервере + 60 0001-01-01T00:00:00 @@ -4074,6 +4138,9 @@ Список.Зашифрован + + Список.НомерКартинкиЭтоАрхив + Список.Отредактировал @@ -4136,7 +4203,8 @@ ЛОЖЬ КАК Служебный, &ВладелецФайла КАК ВладелецФайла, НЕОПРЕДЕЛЕНО КАК Редактирует, - НЕОПРЕДЕЛЕНО КАК РедактируетПользователь + НЕОПРЕДЕЛЕНО КАК РедактируетПользователь, + 0 КАК НомерКартинкиЭтоАрхив ИЗ Справочник.ИдентификаторыОбъектовМетаданных КАК ИдентификаторыОбъектовМетаданныхПереопределяемый Catalog.ИдентификаторыОбъектовМетаданных @@ -4145,6 +4213,398 @@ true true true + + ПометкаУдаления1 + ПометкаУдаления1 + + <localValue> + <content> + <key>ru</key> + <value>Пометка удаления1</value> + </content> + </localValue> + + + + ПолныйСиноним + ПолныйСиноним + + + Автор + Автор + + <localValue> + <content> + <key>ru</key> + <value>Автор</value> + </content> + </localValue> + + + + Наименование1 + Наименование1 + + <localValue> + <content> + <key>ru</key> + <value>Наименование1</value> + </content> + </localValue> + + + + ПолноеИмя + ПолноеИмя + + + Ссылка1 + Ссылка1 + + <localValue> + <content> + <key>ru</key> + <value>Ссылка1</value> + </content> + </localValue> + + + + Имя + Имя + + + ПорядокКоллекции + ПорядокКоллекции + + + Синоним + Синоним + + + БезДанных + БезДанных + + + Описание + Описание + + <localValue> + <content> + <key>ru</key> + <value>Описание</value> + </content> + </localValue> + + + + ЗначениеПустойСсылки + ЗначениеПустойСсылки + + + КлючОбъектаМетаданных + КлючОбъектаМетаданных + + + НоваяСсылка + НоваяСсылка + + + Предопределенный + Предопределенный + + + Ссылка + Ссылка + + <localValue> + <content> + <key>ru</key> + <value>Ссылка</value> + </content> + </localValue> + + + + ИмяПредопределенныхДанных + ИмяПредопределенныхДанных + + + ПометкаУдаления + ПометкаУдаления + + <localValue> + <content> + <key>ru</key> + <value>Пометка удаления</value> + </content> + </localValue> + + + + ИндексКартинки + ИндексКартинки + + <localValue> + <content> + <key>ru</key> + <value>Индекс картинки</value> + </content> + </localValue> + + + + Наименование + Наименование + + <localValue> + <content> + <key>ru</key> + <value>Наименование</value> + </content> + </localValue> + + + + Служебный + Служебный + + <localValue> + <content> + <key>ru</key> + <value>Служебный</value> + </content> + </localValue> + + + + Расширение + Расширение + + <localValue> + <content> + <key>ru</key> + <value>Расширение</value> + </content> + </localValue> + + + + Зашифрован + Зашифрован + + <localValue> + <content> + <key>ru</key> + <value>Зашифрован</value> + </content> + </localValue> + + + + ДатаСоздания + ДатаСоздания + + <localValue> + <content> + <key>ru</key> + <value>Дата создания</value> + </content> + </localValue> + + + + Отредактировал + Отредактировал + + <localValue> + <content> + <key>ru</key> + <value>Отредактировал</value> + </content> + </localValue> + + + + ДатаРедактирования + ДатаРедактирования + + <localValue> + <content> + <key>ru</key> + <value>Дата редактирования</value> + </content> + </localValue> + + + + ДатаИзменения + ДатаИзменения + + <localValue> + <content> + <key>ru</key> + <value>Дата изменения</value> + </content> + </localValue> + + + + Размер + Размер + + <localValue> + <content> + <key>ru</key> + <value>Размер</value> + </content> + </localValue> + + + + Родитель + Родитель + + + ПодписанЭП + ПодписанЭП + + <localValue> + <content> + <key>ru</key> + <value>Подписан ЭП</value> + </content> + </localValue> + + + + НомерКартинкиПодписанЗашифрован + НомерКартинкиПодписанЗашифрован + + <localValue> + <content> + <key>ru</key> + <value>Номер картинки подписан зашифрован</value> + </content> + </localValue> + + + + ФайлРедактируется + ФайлРедактируется + + <localValue> + <content> + <key>ru</key> + <value>Файл редактируется</value> + </content> + </localValue> + + + + ФайлРедактируетТекущийПользователь + ФайлРедактируетТекущийПользователь + + <localValue> + <content> + <key>ru</key> + <value>Файл редактирует текущий пользователь</value> + </content> + </localValue> + + + + ФайлРедактируетДругойПользователь + ФайлРедактируетДругойПользователь + + <localValue> + <content> + <key>ru</key> + <value>Файл редактирует другой пользователь</value> + </content> + </localValue> + + + + ХранитьВерсии + ХранитьВерсии + + <localValue> + <content> + <key>ru</key> + <value>Хранить версии</value> + </content> + </localValue> + + + + ЭтоГруппа + ЭтоГруппа + + <localValue> + <content> + <key>ru</key> + <value>Это группа</value> + </content> + </localValue> + + + + РедактируетПользователь + РедактируетПользователь + + <localValue> + <content> + <key>ru</key> + <value>Редактирует пользователь</value> + </content> + </localValue> + + + + ВладелецФайла + ВладелецФайла + + <value>Владелец</value> + + + + Редактирует + Редактирует + + <localValue> + <content> + <key>ru</key> + <value>Редактирует</value> + </content> + </localValue> + + + + НомерКартинкиЭтоАрхив + НомерКартинкиЭтоАрхив + + <localValue> + <content> + <key>ru</key> + <value>Номер картинки это архив</value> + </content> + </localValue> + + + + ВладелецФайла + + <localValue> + <content> + <key>ru</key> + <value>Владелец файла</value> + </content> + </localValue> + + + true + diff --git a/SSL/src/DataProcessors/РаботаСФайлами/Forms/ПрисоединенныеФайлы/Module.bsl b/SSL/src/DataProcessors/РаботаСФайлами/Forms/ПрисоединенныеФайлы/Module.bsl index 276ea47a3..4e08479cf 100644 --- a/SSL/src/DataProcessors/РаботаСФайлами/Forms/ПрисоединенныеФайлы/Module.bsl +++ b/SSL/src/DataProcessors/РаботаСФайлами/Forms/ПрисоединенныеФайлы/Module.bsl @@ -1,5 +1,5 @@ /////////////////////////////////////////////////////////////////////////////////////////////////////// -// Copyright (c) 2024, ООО 1С-Софт +// Copyright (c) 2025, ООО 1С-Софт // Все права защищены. Эта программа и сопроводительные материалы предоставляются // в соответствии с условиями лицензии Attribution 4.0 International (CC BY 4.0) // Текст лицензии доступен по ссылке: @@ -114,6 +114,8 @@ ПриИзмененииИспользованияПодписанияИлиШифрованияНаСервере(); + РаботаСФайловымАрхивомСервер.ВидимостьПоляСписокНомерКартинкиЭтоАрхив(Элементы.СписокНомерКартинкиЭтоАрхив); + ИспользоватьПредпросмотр = ОбщегоНазначения.ХранилищеОбщихНастроекЗагрузить(ТипСправочникаСФайлами, "Предпросмотр"); Если ИспользоватьПредпросмотр <> Неопределено Тогда Предпросмотр = ИспользоватьПредпросмотр; @@ -208,6 +210,9 @@ СсылкаНаФайл = ?(ТипЗнч(Источник) = Тип("Массив"), Источник[0], Источник); Если ТипЗнч(СсылкаНаФайл) <> ТипСправочникаСФайлами Тогда + Если Параметр.Событие = "ФайлыИзмененыПриРаботеСАрхивом" Тогда + УстановитьДоступностьФайловыхКоманд(); + КонецЕсли; Возврат; КонецЕсли; @@ -218,9 +223,10 @@ Иначе ТекущиеДанные = ТекущиеДанные(); - Если ФайловыеКомандыДоступны() И ТекущиеДанные <> Неопределено - И СсылкаНаФайл = ТекущиеДанные.Ссылка Тогда - УстановитьДоступностьФайловыхКоманд(); + Если ФайловыеКомандыДоступны() И ТекущиеДанные <> Неопределено Тогда + Если СсылкаНаФайл = ТекущиеДанные.Ссылка Или Параметр.Событие = "ФайлыИзмененыПриРаботеСАрхивом" Тогда + УстановитьДоступностьФайловыхКоманд(); + КонецЕсли; КонецЕсли; КонецЕсли; ИначеЕсли ИмяСобытия = "Запись_ПапкиФайлов" Тогда @@ -278,15 +284,20 @@ Возврат; КонецЕсли; - ДанныеФайла = РаботаСФайламиСлужебныйВызовСервера.ДанныеФайлаДляОткрытия(ВыбраннаяСтрока, - Неопределено, УникальныйИдентификатор, Неопределено, ПредыдущийАдресФайла); - - ПараметрыОбработчика = Новый Структура; - ПараметрыОбработчика.Вставить("ДанныеФайла", ДанныеФайла); - Обработчик = Новый ОписаниеОповещения("СписокВыборПослеВыбораРежимаРедактирования", ЭтотОбъект, ПараметрыОбработчика); - - РаботаСФайламиСлужебныйКлиент.ВыбратьРежимИРедактироватьФайл(Обработчик, ДанныеФайла, Элементы.ФормаРедактировать.Доступность); - + ПараметрыПолученияФайла = РаботаСФайламиКлиент.ПараметрыАсинхронногоПолученияФайла("ВыбратьРежимИРедактироватьФайл"); + ПараметрыПолученияФайла.ПрисоединенныйФайл = ВыбраннаяСтрока; + ПараметрыПолученияФайла.ФормаВладелец = ЭтотОбъект; + ПараметрыПолученияФайла.ПроверятьНаличиеФайлаВАрхиве = Ложь; + ПараметрыПолученияФайла.ФайлВАрхиве = ТекущиеДанные.НомерКартинкиЭтоАрхив = 0; + + ПараметрыПолученияФайла.ПараметрыМетода.ПредыдущийАдресФайла = ПредыдущийАдресФайла; + + ПараметрыДействия = ПараметрыПолученияФайла.ПараметрыДействия; + ПараметрыДействия.ФормаВладелец = ЭтотОбъект; + ПараметрыДействия.ДоступностьКомандыРедактировать = Элементы.ФормаРедактировать.Доступность; + + РаботаСФайламиКлиент.ОткрытьФайл(ПараметрыПолученияФайла); + КонецПроцедуры &НаКлиенте @@ -310,11 +321,15 @@ Если Копирование Тогда - Если НЕ ФайловыеКомандыДоступны() Тогда + ТекущиеДанные = ТекущиеДанные(); + + Если ТекущиеДанные.НомерКартинкиЭтоАрхив = 0 Тогда Возврат; КонецЕсли; - ТекущиеДанные = ТекущиеДанные(); + Если НЕ ФайловыеКомандыДоступны() Тогда + Возврат; + КонецЕсли; ПараметрыФормы = Новый Структура; ПараметрыФормы = Новый Структура("ЗначениеКопирования", ТекущиеДанные); @@ -426,6 +441,48 @@ КонецПроцедуры +&НаСервереБезКонтекста +Процедура СписокПриПолученииДанныхНаСервере(ИмяЭлемента, Настройки, Строки) + + Если Строки.Количество() = 0 Тогда + Возврат; + КонецЕсли; + + Для Каждого Строка Из Строки Цикл + Если ТипЗнч(Строка.Ключ) = Тип("СправочникСсылка.Файлы") Тогда + Возврат; + Иначе + Прервать; + КонецЕсли; + КонецЦикла; + + ПрисоединенныеФайлы = Строки.ПолучитьКлючи(); + + Запрос = Новый Запрос; + Запрос.УстановитьПараметр("Файлы", ПрисоединенныеФайлы); + Запрос.Текст = "ВЫБРАТЬ + | СведенияОФайлах.Файл КАК Файл, + | ВЫБОР + | КОГДА СведенияОФайлах.ДатаПереносаВАрхив = ДАТАВРЕМЯ(1, 1, 1) + | ТОГДА -1 + | ИНАЧЕ 0 + | КОНЕЦ КАК НомерКартинкиЭтоАрхив + |ИЗ + | РегистрСведений.СведенияОФайлах КАК СведенияОФайлах + |ГДЕ + | СведенияОФайлах.Файл В(&Файлы)"; + + УстановитьПривилегированныйРежим(Истина); + Выборка = Запрос.Выполнить().Выбрать(); + УстановитьПривилегированныйРежим(Ложь); + + Пока Выборка.Следующий() Цикл + Строка = Строки.Получить(Выборка.Файл); + Строка.Данные["НомерКартинкиЭтоАрхив"] = Выборка.НомерКартинкиЭтоАрхив; + КонецЦикла; + +КонецПроцедуры + #КонецОбласти #Область ОбработчикиКомандФормы @@ -541,8 +598,13 @@ Возврат; КонецЕсли; - ДанныеФайла = РаботаСФайламиСлужебныйВызовСервера.ДанныеФайлаДляСохранения(ТекущиеДанные.Ссылка, , УникальныйИдентификатор); - РаботаСФайламиСлужебныйКлиент.СохранитьКак(Неопределено, ДанныеФайла, Неопределено); + ПараметрыПолученияФайла = РаботаСФайламиКлиент.ПараметрыАсинхронногоПолученияФайла("СохранитьКак", "РаботаСФайламиСлужебный.ДанныеФайлаДляСохраненияАсинхронный"); + ПараметрыПолученияФайла.ПрисоединенныйФайл = ТекущиеДанные.Ссылка; + ПараметрыПолученияФайла.ФормаВладелец = ЭтотОбъект; + ПараметрыПолученияФайла.ПроверятьНаличиеФайлаВАрхиве = Ложь; + ПараметрыПолученияФайла.ФайлВАрхиве = ТекущиеДанные.НомерКартинкиЭтоАрхив = 0; + + РаботаСФайламиКлиент.СохранитьФайлКак(ПараметрыПолученияФайла); КонецПроцедуры @@ -1273,27 +1335,20 @@ Если ТекущиеДанные.Зашифрован Тогда Возврат; КонецЕсли; - + + ДополнительныеПараметры = Новый Структура; + ДополнительныеПараметры.Вставить("ТекущиеДанные", ТекущиеДанные); + Если ЗапрещенныеРасширения.НайтиПоЗначению(ТекущиеДанные.Расширение) <> Неопределено Тогда - ДополнительныеПараметры = Новый Структура; - ДополнительныеПараметры.Вставить("ТекущиеДанные", ТекущиеДанные); + Оповещение = Новый ОписаниеОповещения("ОткрытьФайлПослеПодтверждения", ЭтотОбъект, ДополнительныеПараметры); ПользователиСлужебныйКлиент.ПоказатьПредупреждениеБезопасности(Оповещение, ПользователиСлужебныйКлиентСервер.ВидыПредупрежденийБезопасности().ПередОткрытиемФайла, ОбщегоНазначенияКлиентСервер.ПолучитьИмяСРасширением(ТекущиеДанные.Наименование, ТекущиеДанные.Расширение)); Возврат; КонецЕсли; - - ФайлРедактируется = ТекущиеДанные.ФайлРедактируется И ТекущиеДанные.ФайлРедактируетТекущийПользователь; - - ДанныеФайла = РаботаСФайламиСлужебныйВызовСервера.ДанныеФайлаДляОткрытия(ТекущиеДанные.Ссылка, Неопределено, УникальныйИдентификатор); - Если ДанныеФайла.Зашифрован Тогда - // Файл может быть изменен в другом сеансе. - ОповеститьОбИзменении(ТекущиеДанные.Ссылка); - Возврат; - КонецЕсли; - - РаботаСФайламиКлиент.ОткрытьФайл(ДанныеФайла, ФайлРедактируется); + + ОткрытьПрисоединенныйФайл(ДополнительныеПараметры); КонецПроцедуры @@ -1326,24 +1381,34 @@ Процедура ОткрытьФайлПослеПодтверждения(Результат, ДополнительныеПараметры) Экспорт Если Результат <> Неопределено И Результат = "Продолжить" Тогда - - ТекущиеДанные = ДополнительныеПараметры.ТекущиеДанные; // см. ОбработкаОбъект.ПоискИУдалениеДублей.ГруппыДублей - - ФайлРедактируется = ТекущиеДанные.ФайлРедактируется И ТекущиеДанные.ФайлРедактируетТекущийПользователь; - - ДанныеФайла = РаботаСФайламиСлужебныйВызовСервера.ДанныеФайлаДляОткрытия(ТекущиеДанные.Ссылка, Неопределено, УникальныйИдентификатор); - Если ДанныеФайла.Зашифрован Тогда - // Файл может быть изменен в другом сеансе. - ОповеститьОбИзменении(ТекущиеДанные.Ссылка); - Возврат; - КонецЕсли; - - РаботаСФайламиКлиент.ОткрытьФайл(ДанныеФайла, ФайлРедактируется); - + + ОткрытьПрисоединенныйФайл(ДополнительныеПараметры); + КонецЕсли; КонецПроцедуры +&НаКлиенте +Процедура ОткрытьПрисоединенныйФайл(ПараметрыФайла) + + ТекущиеДанные = ПараметрыФайла.ТекущиеДанные; // см. ОбработкаОбъект.ПоискИУдалениеДублей.ГруппыДублей + + ФайлРедактируется = ТекущиеДанные.ФайлРедактируется И ТекущиеДанные.ФайлРедактируетТекущийПользователь; + + ПараметрыПолученияФайла = РаботаСФайламиКлиент.ПараметрыАсинхронногоПолученияФайла("ОткрытьФайл"); + ПараметрыПолученияФайла.ПрисоединенныйФайл = ТекущиеДанные.Ссылка; + ПараметрыПолученияФайла.ФормаВладелец = ЭтотОбъект; + ПараметрыПолученияФайла.ПроверятьНаличиеФайлаВАрхиве = Ложь; + ПараметрыПолученияФайла.ФайлВАрхиве = ТекущиеДанные.НомерКартинкиЭтоАрхив = 0; + + ПараметрыДействия = ПараметрыПолученияФайла.ПараметрыДействия; + ПараметрыДействия.ОповещатьЕслиЗашифрован = Истина; + ПараметрыДействия.ФайлРедактируется = ФайлРедактируется; + + РаботаСФайламиКлиент.ОткрытьФайл(ПараметрыПолученияФайла); + +КонецПроцедуры + &НаКлиенте Процедура СписокВыборПослеВыбораРежимаРедактирования(Результат, ПараметрыВыполнения) Экспорт @@ -1563,7 +1628,8 @@ | &Служебный КАК Служебный, | &ГруппаФайла КАК ГруппаФайла, | Файлы.ВладелецФайла КАК ВладелецФайла, - | Файлы.ХранитьВерсии КАК ХранитьВерсии + | Файлы.ХранитьВерсии КАК ХранитьВерсии, + | &НомерКартинки КАК НомерКартинкиЭтоАрхив |ИЗ | &ИмяСправочника КАК Файлы | ЛЕВОЕ СОЕДИНЕНИЕ РегистрСведений.СтатусыСинхронизацииФайловСОблачнымСервисом КАК СтатусыСинхронизацииФайловСОблачнымСервисом @@ -1571,14 +1637,20 @@ |ГДЕ | Файлы.ВладелецФайла = &ВладелецФайлов"; - ПолноеИмяСправочника = "Справочник." + ИмяСправочникаХранилищаФайлов; + ПолноеИмяСправочника = "Справочник." + ИмяСправочникаХранилищаФайлов; // @query-part ТекстЗапроса = СтрЗаменить(ТекстЗапроса, "&ИмяСправочника", ПолноеИмяСправочника); - ТекстЗапроса = СтрЗаменить(ТекстЗапроса, "&Служебный", ?(ЕстьРеквизитСлужебный, "Файлы.Служебный", "ЛОЖЬ")); - ТекстЗапроса = СтрЗаменить(ТекстЗапроса, "&ГруппаФайла", ?(ЕстьГруппыФайлов, "Файлы.Родитель", "НЕОПРЕДЕЛЕНО")); - + ТекстЗапроса = СтрЗаменить(ТекстЗапроса, "&Служебный", ?(ЕстьРеквизитСлужебный, "Файлы.Служебный", "ЛОЖЬ")); // @query-part-2, @query-part-3 + ТекстЗапроса = СтрЗаменить(ТекстЗапроса, "&ГруппаФайла", ?(ЕстьГруппыФайлов, "Файлы.Родитель", "НЕОПРЕДЕЛЕНО")); // @query-part-2, @query-part-3 + ТекстЗапроса = СтрЗаменить(ТекстЗапроса, "&НомерКартинки", + ?(ИмяСправочникаХранилищаФайлов = "Файлы", + "ВЫБОР + | КОГДА ЕСТЬNULL(Файлы.ТекущаяВерсия.ДатаПереносаВАрхив, ДАТАВРЕМЯ(1, 1, 1)) = ДАТАВРЕМЯ(1, 1, 1) + | ТОГДА -1 + | ИНАЧЕ 0 + | КОНЕЦ", "-1")); СвойстваСписка.ТекстЗапроса = СтрЗаменить(ТекстЗапроса, "&ЭтоГруппа", - ?(ЕстьГруппыФайлов, "Файлы.ЭтоГруппа", "ЛОЖЬ")); + ?(ЕстьГруппыФайлов, "Файлы.ЭтоГруппа", "ЛОЖЬ")); // @query-part-2, @query-part-3 СвойстваСписка.ОсновнаяТаблица = ПолноеИмяСправочника; СвойстваСписка.ДинамическоеСчитываниеДанных = Истина; @@ -1703,6 +1775,7 @@ ФайлРедактируется = ТекущиеДанныеФайла.ФайлРедактируется; ФайлПодписан = ТекущиеДанныеФайла.ПодписанЭП; ФайлЗашифрован = ТекущиеДанныеФайла.Зашифрован; + ФайлПеремещенВАрхив = ТекущиеДанныеФайла.НомерКартинкиЭтоАрхив = 0; Если ФайлРедактируется Тогда @@ -1816,6 +1889,30 @@ КонецЕсли; + Если ФайлПеремещенВАрхив Тогда + + ИменаКоманд["ЗакончитьРедактирование"] = Ложь; + ИменаКоманд["Освободить"] = Ложь; + ИменаКоманд["Редактировать"] = Ложь; + ИменаКоманд["Занять"] = Ложь; + + ИменаКоманд["Подписать"] = Ложь; + ИменаКоманд["ОтправитьНаПодписание"] = Ложь; + ИменаКоманд["ДобавитьЭПИзФайла"] = Ложь; + ИменаКоманд["СохранитьВместеСЭП"] = Ложь; + ИменаКоманд["Зашифровать"] = Ложь; + ИменаКоманд["Расшифровать"] = Ложь; + + ИменаКоманд["ОбновитьИзФайлаНаДиске"] = Ложь; + ИменаКоманд["Скопировать"] = Ложь; + ИменаКоманд["ОткрытьКаталогФайла"] = Ложь; + + ИменаКоманд["Отправить"] = Ложь; + ИменаКоманд["ПечатьСоШтампом"] = Ложь; + ИменаКоманд["Печать"] = Ложь; + + КонецЕсли; + Если Не АвторТекущийПользователь Тогда ИменаКоманд["Удалить"] = Ложь; КонецЕсли; diff --git a/SSL/src/DataProcessors/РаботаСФайлами/Forms/ПрисоединенныйФайл/Form.form b/SSL/src/DataProcessors/РаботаСФайлами/Forms/ПрисоединенныйФайл/Form.form index e7349026b..dee404b31 100644 --- a/SSL/src/DataProcessors/РаботаСФайлами/Forms/ПрисоединенныйФайл/Form.form +++ b/SSL/src/DataProcessors/РаботаСФайлами/Forms/ПрисоединенныйФайл/Form.form @@ -5018,6 +5018,19 @@ true + + ФайлПеремещенВАрхив + 10 + + Boolean + + + true + + + true + + СтандартнаяЗаписатьИЗакрыть diff --git a/SSL/src/DataProcessors/РаботаСФайлами/Forms/ПрисоединенныйФайл/Module.bsl b/SSL/src/DataProcessors/РаботаСФайлами/Forms/ПрисоединенныйФайл/Module.bsl index 2d4c4685b..ce424427e 100644 --- a/SSL/src/DataProcessors/РаботаСФайлами/Forms/ПрисоединенныйФайл/Module.bsl +++ b/SSL/src/DataProcessors/РаботаСФайлами/Forms/ПрисоединенныйФайл/Module.bsl @@ -1,5 +1,5 @@ /////////////////////////////////////////////////////////////////////////////////////////////////////// -// Copyright (c) 2024, ООО 1С-Софт +// Copyright (c) 2025, ООО 1С-Софт // Все права защищены. Эта программа и сопроводительные материалы предоставляются // в соответствии с условиями лицензии Attribution 4.0 International (CC BY 4.0) // Текст лицензии доступен по ссылке: @@ -27,13 +27,15 @@ РаботаСФайламиСлужебный.ФормаЭлементаПриСозданииНаСервере( ЭтотОбъект, Отказ, СтандартнаяОбработка, Параметры, ТолькоПросмотр, Истина); + ПрисоединенныйФайлОбъект = РеквизитФормыВЗначение("Объект"); // ОпределяемыйТип.ПрисоединенныйФайлОбъект + Элементы.ВладелецФайла0.Заголовок = ТипВладельца; + ФайлПеремещенВАрхив = РаботаСФайловымАрхивомСервер.ФайлПеренесенВФайловыйАрхив(ПрисоединенныйФайлОбъект.Ссылка); УстановитьДоступностьКнопок(ЭтотОбъект, Элементы); ЗапрещенныеРасширения = РаботаСФайламиСлужебный.СписокЗапрещенныхРасширений(); ОбновитьЗаголовок(); ОбновитьПояснениеОблачногоСервиса(ПрисоединенныйФайл); - ПрисоединенныйФайлОбъект = РеквизитФормыВЗначение("Объект"); // ОпределяемыйТип.ПрисоединенныйФайлОбъект ДоступнаЭлектроннаяПодпись = РаботаСФайламиСлужебный.ДоступнаЭлектроннаяПодпись(ТипЗнч(ПрисоединенныйФайлОбъект)); УстановитьВидимостьКомандФормы(); @@ -994,9 +996,6 @@ Если Режим = "ДляОткрытия" Тогда Возврат РаботаСФайламиСлужебныйВызовСервера.ДанныеФайлаДляОткрытия( ПрисоединенныйФайл, Неопределено, ИдентификаторФормы); - ИначеЕсли Режим = "ДляСохранения" Тогда - Возврат РаботаСФайламиСлужебныйВызовСервера.ДанныеФайлаДляСохранения( - ПрисоединенныйФайл,, ИдентификаторФормы); ИначеЕсли Режим = "ВызовСервера" Тогда ПараметрыДанныхФайла = РаботаСФайламиКлиентСервер.ПараметрыДанныхФайла(); ПараметрыДанныхФайла.ИдентификаторФормы = ИдентификаторФормы; @@ -1024,25 +1023,37 @@ ПользователиСлужебныйКлиентСервер.ВидыПредупрежденийБезопасности().ПередОткрытиемФайла); Возврат; КонецЕсли; - - ФайлРедактируется = ЗначениеЗаполнено(ЭтотОбъект.Объект.Редактирует) - И ЭтотОбъект.Объект.Редактирует = ТекущийПользователь; - ДанныеФайла = ДанныеФайла(ТекущаяСсылкаНаФайл(), УникальныйИдентификатор, "ДляОткрытия"); - РаботаСФайламиКлиент.ОткрытьФайл(ДанныеФайла, ФайлРедактируется); - + + ОткрытьФайл(); + КонецПроцедуры &НаКлиенте Процедура ОткрытьФайлПослеПодтверждения(Результат, ДополнительныеПараметры) Экспорт - + Если Результат <> Неопределено И Результат = "Продолжить" Тогда - ФайлРедактируется = ЗначениеЗаполнено(ЭтотОбъект.Объект.Редактирует) - И ЭтотОбъект.Объект.Редактирует = ТекущийПользователь; - - ДанныеФайла = ДанныеФайла(ТекущаяСсылкаНаФайл(), УникальныйИдентификатор, "ДляОткрытия"); - РаботаСФайламиКлиент.ОткрытьФайл(ДанныеФайла, ФайлРедактируется); + + ОткрытьФайл(); + КонецЕсли; + +КонецПроцедуры + +&НаКлиенте +Процедура ОткрытьФайл() + + ЭтотОбъектОбъект = ЭтотОбъект["Объект"]; + ФайлРедактируется = ЗначениеЗаполнено(ЭтотОбъектОбъект.Редактирует) И ЭтотОбъектОбъект.Редактирует = ТекущийПользователь; + + ПараметрыПолученияФайла = РаботаСФайламиКлиент.ПараметрыАсинхронногоПолученияФайла("ОткрытьФайл"); + ПараметрыПолученияФайла.ПрисоединенныйФайл = ЭтотОбъектОбъект.Ссылка; + ПараметрыПолученияФайла.ФормаВладелец = ЭтотОбъект; + + ПараметрыПолученияФайла.ПараметрыДействия.ФайлРедактируется = ФайлРедактируется; + + РаботаСФайламиКлиент.ОткрытьФайл(ПараметрыПолученияФайла); + КонецПроцедуры &НаКлиенте @@ -1061,12 +1072,17 @@ &НаКлиенте Процедура СохранитьКак() - Если ЭтоНовый() Или ЭтотОбъект.Объект.Зашифрован Тогда + ЭтотОбъектОбъект = ЭтотОбъект["Объект"]; + + Если ЭтоНовый() Или ЭтотОбъектОбъект.Зашифрован Тогда Возврат; КонецЕсли; - ДанныеФайла = ДанныеФайла(ТекущаяСсылкаНаФайл(), УникальныйИдентификатор, "ДляСохранения"); - РаботаСФайламиСлужебныйКлиент.СохранитьКак(Неопределено, ДанныеФайла, Неопределено); + ПараметрыПолученияФайла = РаботаСФайламиКлиент.ПараметрыАсинхронногоПолученияФайла("СохранитьКак", "РаботаСФайламиСлужебный.ДанныеФайлаДляСохраненияАсинхронный"); + ПараметрыПолученияФайла.ПрисоединенныйФайл = ЭтотОбъектОбъект.Ссылка; + ПараметрыПолученияФайла.ФормаВладелец = ЭтотОбъект; + + РаботаСФайламиКлиент.СохранитьФайлКак(ПараметрыПолученияФайла); КонецПроцедуры @@ -1186,6 +1202,10 @@ ИменаКоманд.Добавить("ОткрытьФайлДляПросмотра"); ИменаКоманд.Добавить("СохранитьКак"); + ИменаКоманд.Добавить("Отправить"); + ИменаКоманд.Добавить("Печать"); + ИменаКоманд.Добавить("ПечатьСоШтампом"); + Возврат ИменаКоманд; КонецФункции @@ -1300,6 +1320,7 @@ ФайлРедактируетТекущийПользователь = ФормаОбъект.Редактирует = Форма.ТекущийПользователь; ФайлПодписан = ФормаОбъект.ПодписанЭП; ФайлЗашифрован = ФормаОбъект.Зашифрован; + ФайлРазмещенВАрхиве = Форма.ФайлПеремещенВАрхив; Если ФайлРедактируется Тогда Если ФайлРедактируетТекущийПользователь Тогда @@ -1377,6 +1398,38 @@ КонецЕсли; + Если ФайлРазмещенВАрхиве Тогда + СделатьКомандыЭПНедоступными(ИменаКоманд); + СделатьКомандуНедоступной(ИменаКоманд, "ОбновитьИзФайлаНаДиске"); + СделатьКомандуНедоступной(ИменаКоманд, "ЗакончитьРедактирование"); + СделатьКомандуНедоступной(ИменаКоманд, "Редактировать"); + Если Не Форма.ИзменениеФайлов Тогда + СделатьКомандуНедоступной(ИменаКоманд, "Освободить"); + КонецЕсли; + СделатьКомандуНедоступной(ИменаКоманд, "Занять"); + СделатьКомандуНедоступной(ИменаКоманд, "Зашифровать"); + СделатьКомандуНедоступной(ИменаКоманд, "Расшифровать"); + + СделатьКомандуНедоступной(ИменаКоманд, "СохранитьИзменения"); + + СделатьКомандуНедоступной(ИменаКоманд, "ОткрытьСертификат"); + СделатьКомандуНедоступной(ИменаКоманд, "ОткрытьПодпись"); + СделатьКомандуНедоступной(ИменаКоманд, "ПроверитьЭП"); + СделатьКомандуНедоступной(ИменаКоманд, "ПроверитьВсе"); + СделатьКомандуНедоступной(ИменаКоманд, "СохранитьПодпись"); + СделатьКомандуНедоступной(ИменаКоманд, "УдалитьЭП"); + СделатьКомандуНедоступной(ИменаКоманд, "СохранитьВместеСЭП"); + + СделатьКомандуНедоступной(ИменаКоманд, "Подписать"); + СделатьКомандуНедоступной(ИменаКоманд, "ОтправитьНаПодписание"); + + СделатьКомандуНедоступной(ИменаКоманд, "Отправить"); + + СделатьКомандуНедоступной(ИменаКоманд, "Печать"); + СделатьКомандуНедоступной(ИменаКоманд, "ПечатьСоШтампом"); + + КонецЕсли; + Если Форма.ТолькоПросмотр Тогда СделатьКомандыЭПНедоступными(ИменаКоманд); КонецЕсли; @@ -1520,26 +1573,25 @@ ДвоичныеДанные = РаботаСФайлами.ДвоичныеДанныеФайла(ЗначениеКопирования); РеквизитыЗначенияКопирования = ОбщегоНазначения.ЗначенияРеквизитовОбъекта(ЗначениеКопирования, "Размер, Расширение"); - ТипХраненияФайла = РаботаСФайламиСлужебный.ТипХраненияФайла(РеквизитыЗначенияКопирования.Размер, - РеквизитыЗначенияКопирования.Расширение); - Если ТипХраненияФайла = Перечисления.ТипыХраненияФайлов.ВИнформационнойБазе Тогда + + РаботаСФайловымАрхивомСервер.ЗаполнитьПараметрыХраненияФайла(ЗаписываемыйОбъект, ДвоичныеДанные, РеквизитыЗначенияКопирования.Размер, + РеквизитыЗначенияКопирования.Расширение); + + Если РаботаСФайламиВХранилищеДвоичныхДанныхСлужебный.ТипХраненияНеИспользуетДиски(ЗаписываемыйОбъект.ТипХраненияФайла) Тогда СсылкаНового = Справочники[ИмяСправочника].ПолучитьСсылку(); ЗаписываемыйОбъект.УстановитьСсылкуНового(СсылкаНового); - РаботаСФайламиСлужебный.ЗаписатьФайлВИнформационнуюБазу(СсылкаНового, ДвоичныеДанные); - ЗаписываемыйОбъект.ТипХраненияФайла = ТипХраненияФайла; + ПараметрыЗаписиВИБ = РаботаСФайловымАрхивомСервер.ЗаполненныеПараметрыЗаписиВИнформационнуюБазу(ЗаписываемыйОбъект); + РаботаСФайламиСлужебный.ЗаписатьФайлВИнформационнуюБазу(СсылкаНового, ДвоичныеДанные, ПараметрыЗаписиВИБ); Иначе - ЗаписываемыйОбъект.Том = Неопределено; - ЗаписываемыйОбъект.ПутьКФайлу = Неопределено; - ЗаписываемыйОбъект.ТипХраненияФайла = Неопределено; - РаботаСФайламиВТомахСлужебный.ДобавитьФайл(ЗаписываемыйОбъект, ДвоичныеДанные); + РаботаСФайламиВТомахСлужебный.ДобавитьФайл(ЗаписываемыйОбъект, ДвоичныеДанные,,,ЗаписываемыйОбъект.Том); КонецЕсли; - + Если ДоступнаЭлектроннаяПодпись Тогда РаботаСФайламиСлужебный.ПеренестиРезультатыПроверкиПодписей(ЭлектронныеПодписи, ЗначениеКопирования); КонецЕсли; - + ЗаписываемыйОбъект.Записать(); - + Если ДоступнаЭлектроннаяПодпись И ОбщегоНазначения.ПодсистемаСуществует("СтандартныеПодсистемы.ЭлектроннаяПодпись") Тогда МодульЭлектроннаяПодпись = ОбщегоНазначения.ОбщийМодуль("ЭлектроннаяПодпись"); @@ -1547,7 +1599,7 @@ МодульЭлектроннаяПодпись.ЗаписатьСертификатыШифрования(ЗаписываемыйОбъект, СертификатыИсточника); ПодписиОбъекта = МодульЭлектроннаяПодпись.ПодписиОбъекта(ЗначениеКопирования); - МодульЭлектроннаяПодпись.ДобавитьПодпись(ЗаписываемыйОбъект, ПодписиОбъекта); + МодульЭлектроннаяПодпись.ДобавитьПодпись(ЗаписываемыйОбъект, ПодписиОбъекта); КонецЕсли; ЗафиксироватьТранзакцию(); diff --git a/SSL/src/DataProcessors/РаботаСФайлами/Forms/РедактированиеТекстовогоФайла/Module.bsl b/SSL/src/DataProcessors/РаботаСФайлами/Forms/РедактированиеТекстовогоФайла/Module.bsl index 6c5f45e20..dfd594a74 100644 --- a/SSL/src/DataProcessors/РаботаСФайлами/Forms/РедактированиеТекстовогоФайла/Module.bsl +++ b/SSL/src/DataProcessors/РаботаСФайлами/Forms/РедактированиеТекстовогоФайла/Module.bsl @@ -1,5 +1,5 @@ /////////////////////////////////////////////////////////////////////////////////////////////////////// -// Copyright (c) 2024, ООО 1С-Софт +// Copyright (c) 2025, ООО 1С-Софт // Все права защищены. Эта программа и сопроводительные материалы предоставляются // в соответствии с условиями лицензии Attribution 4.0 International (CC BY 4.0) // Текст лицензии доступен по ссылке: @@ -438,7 +438,10 @@ // Сохранение файла для левой части. Если ДанныеФайла.ТекущаяВерсия = ДанныеФайла.Версия Тогда - ДанныеФайлаСлева = РаботаСФайламиСлужебныйВызовСервера.ДанныеФайлаДляСохранения(Файл, , ИдентификаторВладельца); + ДополнительныеПараметры = РаботаСФайламиКлиентСервер.ДополнительныеПараметрыДанныеФайлаДляСохранения(); + ДополнительныеПараметры.ИдентификаторФормы = ИдентификаторВладельца; + + ДанныеФайлаСлева = РаботаСФайламиСлужебныйВызовСервера.ДанныеФайлаДляСохранения(Файл, ДополнительныеПараметры); АдресФайлаСлева = ДанныеФайлаСлева.НавигационнаяСсылкаТекущейВерсии; Иначе АдресФайлаСлева = РаботаСФайламиСлужебныйВызовСервера.ПолучитьНавигационнуюСсылкуДляОткрытия( diff --git a/SSL/src/DataProcessors/РаботаСФайлами/Forms/РедактируемыеФайлы/Module.bsl b/SSL/src/DataProcessors/РаботаСФайлами/Forms/РедактируемыеФайлы/Module.bsl index acc9f9f61..7677c41d5 100644 --- a/SSL/src/DataProcessors/РаботаСФайлами/Forms/РедактируемыеФайлы/Module.bsl +++ b/SSL/src/DataProcessors/РаботаСФайлами/Forms/РедактируемыеФайлы/Module.bsl @@ -1,5 +1,5 @@ /////////////////////////////////////////////////////////////////////////////////////////////////////// -// Copyright (c) 2024, ООО 1С-Софт +// Copyright (c) 2025, ООО 1С-Софт // Все права защищены. Эта программа и сопроводительные материалы предоставляются // в соответствии с условиями лицензии Attribution 4.0 International (CC BY 4.0) // Текст лицензии доступен по ссылке: @@ -201,10 +201,14 @@ Возврат; КонецЕсли; - ДанныеФайла = РаботаСФайламиСлужебныйВызовСервера.ДанныеФайлаДляСохранения( - ТекущиеДанные.Ссылка, , УникальныйИдентификатор); - РаботаСФайламиСлужебныйКлиент.СохранитьКак(Неопределено, ДанныеФайла, Неопределено); + ПараметрыПолученияФайла = РаботаСФайламиКлиент.ПараметрыАсинхронногоПолученияФайла("СохранитьКак", "РаботаСФайламиСлужебный.ДанныеФайлаДляСохраненияАсинхронный"); + ПараметрыПолученияФайла.ПрисоединенныйФайл = ТекущиеДанные.Ссылка; + ПараметрыПолученияФайла.ФормаВладелец = ЭтотОбъект; + ПараметрыПолученияФайла.ПроверятьНаличиеФайлаВАрхиве = Ложь; + ПараметрыПолученияФайла.ФайлВАрхиве = Ложь; // Файлы в архиве должны быть недоступны для редактирования. + РаботаСФайламиКлиент.СохранитьФайлКак(ПараметрыПолученияФайла); + КонецПроцедуры &НаКлиенте diff --git a/SSL/src/DataProcessors/РаботаСФайлами/Forms/РежимСозданияФайлаДляСохранитьКак/Module.bsl b/SSL/src/DataProcessors/РаботаСФайлами/Forms/РежимСозданияФайлаДляСохранитьКак/Module.bsl index dcd636c03..df0f7a9b9 100644 --- a/SSL/src/DataProcessors/РаботаСФайлами/Forms/РежимСозданияФайлаДляСохранитьКак/Module.bsl +++ b/SSL/src/DataProcessors/РаботаСФайлами/Forms/РежимСозданияФайлаДляСохранитьКак/Module.bsl @@ -1,5 +1,5 @@ /////////////////////////////////////////////////////////////////////////////////////////////////////// -// Copyright (c) 2024, ООО 1С-Софт +// Copyright (c) 2025, ООО 1С-Софт // Все права защищены. Эта программа и сопроводительные материалы предоставляются // в соответствии с условиями лицензии Attribution 4.0 International (CC BY 4.0) // Текст лицензии доступен по ссылке: diff --git a/SSL/src/DataProcessors/РаботаСФайлами/Forms/СохранениеВерсииФайла/Module.bsl b/SSL/src/DataProcessors/РаботаСФайлами/Forms/СохранениеВерсииФайла/Module.bsl index 8e2849ba6..397308c99 100644 --- a/SSL/src/DataProcessors/РаботаСФайлами/Forms/СохранениеВерсииФайла/Module.bsl +++ b/SSL/src/DataProcessors/РаботаСФайлами/Forms/СохранениеВерсииФайла/Module.bsl @@ -1,5 +1,5 @@ /////////////////////////////////////////////////////////////////////////////////////////////////////// -// Copyright (c) 2024, ООО 1С-Софт +// Copyright (c) 2025, ООО 1С-Софт // Все права защищены. Эта программа и сопроводительные материалы предоставляются // в соответствии с условиями лицензии Attribution 4.0 International (CC BY 4.0) // Текст лицензии доступен по ссылке: diff --git a/SSL/src/DataProcessors/РаботаСФайлами/Forms/СохранениеПапки/Module.bsl b/SSL/src/DataProcessors/РаботаСФайлами/Forms/СохранениеПапки/Module.bsl index 9b0193c81..1cb08bfc7 100644 --- a/SSL/src/DataProcessors/РаботаСФайлами/Forms/СохранениеПапки/Module.bsl +++ b/SSL/src/DataProcessors/РаботаСФайлами/Forms/СохранениеПапки/Module.bsl @@ -1,5 +1,5 @@ /////////////////////////////////////////////////////////////////////////////////////////////////////// -// Copyright (c) 2024, ООО 1С-Софт +// Copyright (c) 2025, ООО 1С-Софт // Все права защищены. Эта программа и сопроводительные материалы предоставляются // в соответствии с условиями лицензии Attribution 4.0 International (CC BY 4.0) // Текст лицензии доступен по ссылке: diff --git a/SSL/src/DataProcessors/РаботаСФайлами/Forms/СписокЗанятыхСВопросом/Module.bsl b/SSL/src/DataProcessors/РаботаСФайлами/Forms/СписокЗанятыхСВопросом/Module.bsl index d9fb8645f..975930f97 100644 --- a/SSL/src/DataProcessors/РаботаСФайлами/Forms/СписокЗанятыхСВопросом/Module.bsl +++ b/SSL/src/DataProcessors/РаботаСФайлами/Forms/СписокЗанятыхСВопросом/Module.bsl @@ -1,5 +1,5 @@ /////////////////////////////////////////////////////////////////////////////////////////////////////// -// Copyright (c) 2024, ООО 1С-Софт +// Copyright (c) 2025, ООО 1С-Софт // Все права защищены. Эта программа и сопроводительные материалы предоставляются // в соответствии с условиями лицензии Attribution 4.0 International (CC BY 4.0) // Текст лицензии доступен по ссылке: @@ -171,9 +171,13 @@ Возврат; КонецЕсли; - ДанныеФайла = РаботаСФайламиСлужебныйВызовСервера.ДанныеФайлаДляСохранения( - ТекущиеДанные.Ссылка, , УникальныйИдентификатор); - РаботаСФайламиСлужебныйКлиент.СохранитьКак(Неопределено, ДанныеФайла, Неопределено); + ПараметрыПолученияФайла = РаботаСФайламиКлиент.ПараметрыАсинхронногоПолученияФайла("СохранитьКак", "РаботаСФайламиСлужебный.ДанныеФайлаДляСохраненияАсинхронный"); + ПараметрыПолученияФайла.ПрисоединенныйФайл = ТекущиеДанные.Ссылка; + ПараметрыПолученияФайла.ФормаВладелец = ЭтотОбъект; + ПараметрыПолученияФайла.ПроверятьНаличиеФайлаВАрхиве = Ложь; + ПараметрыПолученияФайла.ФайлВАрхиве = Ложь; // Файлы в архиве должны быть недоступны для редактирования. + + РаботаСФайламиКлиент.СохранитьФайлКак(ПараметрыПолученияФайла); КонецПроцедуры diff --git a/SSL/src/DataProcessors/РаботаСФайлами/Forms/ФайлСуществует/Module.bsl b/SSL/src/DataProcessors/РаботаСФайлами/Forms/ФайлСуществует/Module.bsl index 3299cd14b..7a0fb97f6 100644 --- a/SSL/src/DataProcessors/РаботаСФайлами/Forms/ФайлСуществует/Module.bsl +++ b/SSL/src/DataProcessors/РаботаСФайлами/Forms/ФайлСуществует/Module.bsl @@ -1,5 +1,5 @@ /////////////////////////////////////////////////////////////////////////////////////////////////////// -// Copyright (c) 2024, ООО 1С-Софт +// Copyright (c) 2025, ООО 1С-Софт // Все права защищены. Эта программа и сопроводительные материалы предоставляются // в соответствии с условиями лицензии Attribution 4.0 International (CC BY 4.0) // Текст лицензии доступен по ссылке: diff --git a/SSL/src/DataProcessors/РаботаСФайлами/Forms/ФормаВопроса/Module.bsl b/SSL/src/DataProcessors/РаботаСФайлами/Forms/ФормаВопроса/Module.bsl index b4e935cd2..136fe93b8 100644 --- a/SSL/src/DataProcessors/РаботаСФайлами/Forms/ФормаВопроса/Module.bsl +++ b/SSL/src/DataProcessors/РаботаСФайлами/Forms/ФормаВопроса/Module.bsl @@ -1,5 +1,5 @@ /////////////////////////////////////////////////////////////////////////////////////////////////////// -// Copyright (c) 2024, ООО 1С-Софт +// Copyright (c) 2025, ООО 1С-Софт // Все права защищены. Эта программа и сопроводительные материалы предоставляются // в соответствии с условиями лицензии Attribution 4.0 International (CC BY 4.0) // Текст лицензии доступен по ссылке: diff --git a/SSL/src/DataProcessors/РаботаСФайлами/Forms/ФормаОтчета/Module.bsl b/SSL/src/DataProcessors/РаботаСФайлами/Forms/ФормаОтчета/Module.bsl index 6b0965b48..098a82146 100644 --- a/SSL/src/DataProcessors/РаботаСФайлами/Forms/ФормаОтчета/Module.bsl +++ b/SSL/src/DataProcessors/РаботаСФайлами/Forms/ФормаОтчета/Module.bsl @@ -1,5 +1,5 @@ /////////////////////////////////////////////////////////////////////////////////////////////////////// -// Copyright (c) 2024, ООО 1С-Софт +// Copyright (c) 2025, ООО 1С-Софт // Все права защищены. Эта программа и сопроводительные материалы предоставляются // в соответствии с условиями лицензии Attribution 4.0 International (CC BY 4.0) // Текст лицензии доступен по ссылке: diff --git a/SSL/src/DataProcessors/РасширенныйВводКонтактнойИнформации/Forms/ВводАдреса/Form.form b/SSL/src/DataProcessors/РасширенныйВводКонтактнойИнформации/Forms/ВводАдреса/Form.form index 9a2b26664..b4ec56695 100644 --- a/SSL/src/DataProcessors/РасширенныйВводКонтактнойИнформации/Forms/ВводАдреса/Form.form +++ b/SSL/src/DataProcessors/РасширенныйВводКонтактнойИнформации/Forms/ВводАдреса/Form.form @@ -1863,10 +1863,23 @@ <headerHorizontalAlign>Left</headerHorizontalAlign> <showInFooter>true</showInFooter> <extInfo xsi:type="form:InputFieldExtInfo"> + <handlers> + <event>AutoComplete</event> + <name>ПомещениеАвтоПодбор</name> + </handlers> + <handlers> + <event>StartChoice</event> + <name>ПомещениеНачалоВыбора</name> + </handlers> + <handlers> + <event>ChoiceProcessing</event> + <name>ПомещениеОбработкаВыбора</name> + </handlers> <width>12</width> <autoMaxWidth>true</autoMaxWidth> <autoMaxHeight>true</autoMaxHeight> <wrap>true</wrap> + <choiceButton>true</choiceButton> <chooseType>true</chooseType> <typeDomainEnabled>true</typeDomainEnabled> <textEdit>true</textEdit> @@ -4634,6 +4647,7 @@ <edit> <common>true</common> </edit> + <savedData>true</savedData> </attributes> <attributes> <name>РайонИностранногоАдреса</name> @@ -4652,6 +4666,7 @@ <edit> <common>true</common> </edit> + <savedData>true</savedData> </attributes> <attributes> <name>ВнутригородскойРайонИностранногоАдреса</name> @@ -4670,6 +4685,7 @@ <edit> <common>true</common> </edit> + <savedData>true</savedData> </attributes> <formCommands> <name>КомандаОК</name> diff --git a/SSL/src/DataProcessors/РасширенныйВводКонтактнойИнформации/Forms/ВводАдреса/Help/ru.html b/SSL/src/DataProcessors/РасширенныйВводКонтактнойИнформации/Forms/ВводАдреса/Help/ru.html index 19683a078..ac56cac54 100644 --- a/SSL/src/DataProcessors/РасширенныйВводКонтактнойИнформации/Forms/ВводАдреса/Help/ru.html +++ b/SSL/src/DataProcessors/РасширенныйВводКонтактнойИнформации/Forms/ВводАдреса/Help/ru.html @@ -23,7 +23,7 @@ </li> <li>Также можно <img src="StdPicture.CreateListItem"></img><strong>Добавить</strong> дополнительные поля для ввода других предопределенных частей адреса, таких как <strong>Строение</strong>, <strong>Литера</strong>, <strong>Сооружение</strong>, <strong>Участок</strong>, <strong>Офис</strong>, <strong>Бокс</strong>, <strong>Помещение</strong>, <strong>Комната, А/я</strong>. </li> -<li>Для ввода номера дома нажмите кнопку <img src="StdPicture.InputFieldSelect" width="12" height="12"></img>, в окне <strong>Выбор дома</strong> выводится список всех возможных домов и строений для введенного адреса. Дополнительные части адреса, например, корпус, также выбираются из списка. +<li>Для ввода номера дома и квартиры нажмите кнопку <img src="StdPicture.InputFieldSelect" width="12" height="12"></img>, в окне <strong>Выбора</strong> выводится список всех возможных домов и помещений для введенного адреса. Дополнительные части адреса, например, корпус, также выбираются из списка. </li> <li>Поле <strong>Представление адреса</strong> при заполнении адреса по шаблону недоступно, заполняется приложением автоматически по мере заполнения полей адреса. </li></ul><h3>Примеры заполнения адреса</h3> <ul><li>Для ввода адреса <b>"Санкт-Петербург, Пискаревский проспект, дом 2, корпус 2, литера Щ, офис 12345"</b> необходимо: @@ -37,7 +37,7 @@ </li> <li>Для ввода литеры необходимо <img src="StdPicture.CreateListItem" width="16" height="16"></img><strong>Добавить</strong> поле, выбрать из выпадающего списка значение <b>Литера</b> и проставить в поле значение "Щ". </li> -<li>Вместо поля <strong>Квартира</strong> выбрать из выпадающего списка поле <b>Офис</b> и ввести значение "12345". </li></ul></li> +<li>Вместо поля <strong>Квартира</strong> выбрать из выпадающего списка поле <b>Офис</b> и выбрать "12345". </li></ul></li> <li>Для ввода адреса, содержащего другие значения полей, например <b>"Москва, улица Адмирала Лазарева, домовладение 89, корпус 16, строение 1"</b> необходимо: <ul><li>В поле <strong>Город, населенный пункт</strong> выбрать "Москва г". </li> diff --git a/SSL/src/DataProcessors/РасширенныйВводКонтактнойИнформации/Forms/ВводАдреса/Module.bsl b/SSL/src/DataProcessors/РасширенныйВводКонтактнойИнформации/Forms/ВводАдреса/Module.bsl index 7092137d5..d44e2e2b7 100644 --- a/SSL/src/DataProcessors/РасширенныйВводКонтактнойИнформации/Forms/ВводАдреса/Module.bsl +++ b/SSL/src/DataProcessors/РасширенныйВводКонтактнойИнформации/Forms/ВводАдреса/Module.bsl @@ -1,5 +1,5 @@ /////////////////////////////////////////////////////////////////////////////////////////////////////// -// Copyright (c) 2024, ООО 1С-Софт +// Copyright (c) 2025, ООО 1С-Софт // Все права защищены. Эта программа и сопроводительные материалы предоставляются // в соответствии с условиями лицензии Attribution 4.0 International (CC BY 4.0) // Текст лицензии доступен по ссылке: @@ -435,6 +435,8 @@ КонецЕсли; КонецЕсли; + НаселенныйПунктДетально.apartmentId = ""; + ЗаполнитьУровниДомовИЗемельныхУчастков(); ОбновитьПредставлениеАдреса(); @@ -444,6 +446,9 @@ Процедура ДомОбработкаВыбора(Элемент, ВыбранноеЗначение, СтандартнаяОбработка) Если ЗначениеЗаполнено(ВыбранноеЗначение) Тогда СтандартнаяОбработка = Ложь; + + НаселенныйПунктДетально.apartmentId = ""; + ЗаполнитьПоляДомовСтроенийЗемельныхУчастков(ВыбранноеЗначение); Элементы.Дом.ОбновитьТекстРедактирования(); КонецЕсли; @@ -453,6 +458,7 @@ Процедура СтроениеОбработкаВыбора(Элемент, ВыбранноеЗначение, СтандартнаяОбработка) Если ЗначениеЗаполнено(ВыбранноеЗначение) Тогда СтандартнаяОбработка = Ложь; + НаселенныйПунктДетально.apartmentId = ""; ЗаполнитьПоляДомовСтроенийЗемельныхУчастков(ВыбранноеЗначение); КонецЕсли; КонецПроцедуры @@ -496,6 +502,8 @@ КонецЦикла; КонецЕсли; + НаселенныйПунктДетально.apartmentId = ""; + ОбновитьПредставлениеАдреса(); КонецПроцедуры @@ -555,7 +563,7 @@ КонецЕсли; ОбновитьМенюДобавленияСтроенийИПомещений(); - + ЗаполнитьИдентификаторПомещения(); ОбработкаИзмененияАдреса(); КонецПроцедуры @@ -581,6 +589,7 @@ КонецЕсли; КонецЕсли; + ЗаполнитьИдентификаторПомещения(); ОбработкаИзмененияАдреса(ОбновитьДополнительныеЗдания); КонецПроцедуры @@ -929,6 +938,56 @@ ПоказатьСписокДомовИлиЗемельныхУчастков(Истина); КонецПроцедуры +&НаКлиенте +Процедура ПомещениеНачалоВыбора(Элемент, ДанныеВыбора, ВыборДобавлением, СтандартнаяОбработка) + + ПоказатьСписокПомещений(); + +КонецПроцедуры + +&НаКлиенте +Процедура ПомещениеОбработкаВыбора(Элемент, ВыбранноеЗначение, ДополнительныеДанные, ВыборДобавлением, СтандартнаяОбработка) + + Если ВыбранноеЗначение = Неопределено Тогда + Возврат; + КонецЕсли; + + СтандартнаяОбработка = Ложь; + ЗаполнитьПоляПомещения(ВыбранноеЗначение); + +КонецПроцедуры + +&НаКлиенте +Процедура ПомещениеАвтоПодбор(Элемент, Текст, ДанныеВыбора, ПараметрыПолученияДанных, Ожидание, СтандартнаяОбработка) + + Если Не АвтоподборДоступен Тогда + Возврат; + КонецЕсли; + + Если Не ЗначениеЗаполнено(Текст) Тогда + Возврат; + КонецЕсли; + + ЭтоНациональныйАдрес = РаботаСАдресамиКлиентСервер.ЭтоМуниципальныйАдрес(НаселенныйПунктДетально.addressType) + Или РаботаСАдресамиКлиентСервер.ЭтоАдминистративноТерриториальныйАдрес(НаселенныйПунктДетально.addressType); + + Если Не ЭтоНациональныйАдрес Тогда + Возврат; + КонецЕсли; + + ИдентификаторДома = ИдентификаторАдреса(НаселенныйПунктДетально, Истина, Истина); + + Если ЗначениеЗаполнено(ИдентификаторДома) Тогда + + ДанныеВыбора = СписокАвтоподбораПомещений(ИдентификаторДома, Текст + "%"); + + Если ДанныеВыбора.Количество() > 0 Тогда + СтандартнаяОбработка = Ложь; + КонецЕсли; + КонецЕсли; + +КонецПроцедуры + &НаКлиенте Процедура ОписаниеОбращенияВПоддержкуОбработкаНавигационнойСсылки(Элемент, НавигационнаяСсылка, СтандартнаяОбработка) @@ -1083,7 +1142,9 @@ ЭтоНациональныйАдрес = ЭтоНациональныйАдрес(); Если РазрешитьВводАдресаВСвободнойФорме Тогда - ПереключитьНаСтруктурированныйВвод(); + ВключаемыйТипАдреса = ?(УправлениеКонтактнойИнформациейКлиентСервер.ЭтоАдресВСвободнойФорме(НаселенныйПунктДетально.AddressType), + Неопределено, УправлениеКонтактнойИнформациейКлиентСервер.АдресВСвободнойФорме()); + ПереключитьНаСтруктурированныйВвод(ВключаемыйТипАдреса); ИначеЕсли ЭтоНациональныйАдрес() Тогда ТекстВопроса = НСтр("ru = 'Ввести адрес в свободной форме? |Адреса, введенные в свободной форме, могут не пройти проверку по адресному классификатору.'"); @@ -1309,6 +1370,7 @@ Элементы.Улица.КнопкаВыбора = Ложь; Элементы.Дом.КнопкаВыбора = Ложь; Элементы.Строение.КнопкаВыбора = Ложь; + Элементы.Помещение.КнопкаВыбора = Ложь; КонецПроцедуры @@ -1327,6 +1389,52 @@ КонецПроцедуры +&НаКлиенте +Процедура ЗаполнитьИдентификаторПомещения() + + НаселенныйПунктДетально.ApartmentId = ""; + ПодключитьОбработчикОжидания("ЗаполнитьИдентификаторПомещенияДляПервогоПомещения", 0.2, Истина); + +КонецПроцедуры + +&НаКлиенте +Процедура ЗаполнитьИдентификаторПомещенияДляПервогоПомещения() + + ЭтоНациональныйАдрес = РаботаСАдресамиКлиентСервер.ЭтоМуниципальныйАдрес(НаселенныйПунктДетально.addressType) + Или РаботаСАдресамиКлиентСервер.ЭтоАдминистративноТерриториальныйАдрес(НаселенныйПунктДетально.addressType); + + Если Не ЭтоНациональныйАдрес Тогда + Возврат; + КонецЕсли; + + Если НаселенныйПунктДетально.Apartments.Количество() > 1 Тогда + Возврат; + КонецЕсли; + + ИдентификаторДома = ИдентификаторАдреса(НаселенныйПунктДетально, Истина, Истина); + + Если Не ЗначениеЗаполнено(ИдентификаторДома) Тогда + Возврат; + КонецЕсли; + + СписокПомещений = СписокАвтоподбораПомещений(ИдентификаторДома, Помещение); + + Если СписокПомещений = Неопределено Или СписокПомещений.Количество() = 0 Тогда + Возврат; + КонецЕсли; + + ИдентификаторПомещения = ""; + Для Каждого СвойстваПомещения Из СписокПомещений Цикл + Если СвойстваПомещения.Значение.ТипПомещения = ТипПомещения Тогда + ИдентификаторПомещения = СвойстваПомещения.Значение.ИдентификаторПомещения; + Прервать; + КонецЕсли; + КонецЦикла; + + НаселенныйПунктДетально.ApartmentId = ИдентификаторПомещения; + +КонецПроцедуры + &НаКлиентеНаСервереБезКонтекста Процедура ОбновитьСписокУровней(НаселенныйПунктДетально, ИмяУровня, ЕстьЗначение) @@ -1854,7 +1962,7 @@ ПараметрыФормы.Вставить("ТипСтроения", ТипСтроения); ПараметрыФормы.Вставить("Отбор", ВключитьОтбор); - ОповещениеОЗакрытие = Новый ОписаниеОповещения("ВыбранДома", ЭтотОбъект); + ОповещениеОЗакрытие = Новый ОписаниеОповещения("ВыбранДом", ЭтотОбъект); ОткрытьФорму("Обработка.РасширенныйВводКонтактнойИнформации.Форма.ВыборДома", ПараметрыФормы, ЭтотОбъект,,,, ОповещениеОЗакрытие, РежимОткрытияОкнаФормы.БлокироватьОкноВладельца); Иначе Если ЗначениеЗаполнено(ПредставлениеАдреса) Тогда @@ -1867,6 +1975,41 @@ КонецПроцедуры +&НаКлиенте +Процедура ПоказатьСписокПомещений() + + ИдентификаторДома = ИдентификаторАдреса(НаселенныйПунктДетально, Истина, Истина); + + Если ЗначениеЗаполнено(ИдентификаторДома) Тогда + + ИдентификаторУлицы = ИдентификаторАдреса(НаселенныйПунктДетально, Истина); + НаименованиеАдресногоОбъекта = ""; + Если ЗначениеЗаполнено(ИдентификаторУлицы) Тогда + НаименованиеАдресногоОбъекта = РаботаСАдресамиКлиентСервер.НаименованиеРодительскогоОбъекта(НаселенныйПунктДетально, ИдентификаторУлицы); + КонецЕсли; + НаименованиеДома = УправлениеКонтактнойИнформациейКлиентСервер.СоединитьНаименованиеИТипАдресногоОбъекта(Дом, НРег(ТипДома), Ложь); + НаименованиеАдресногоОбъекта = НаименованиеАдресногоОбъекта + " " + НаименованиеДома; + + ПараметрыФормы = Новый Структура(); + ПараметрыФормы.Вставить("Идентификатор", ИдентификаторДома); + ПараметрыФормы.Вставить("НаименованиеАдресногоОбъекта", НаименованиеАдресногоОбъекта); + ПараметрыФормы.Вставить("НомерПомещения", Помещение); + ПараметрыФормы.Вставить("ТипПомещения", ТипПомещения); + + ОповещениеОЗакрытие = Новый ОписаниеОповещения("ВыбраноПомещение", ЭтотОбъект); + ОткрытьФорму("Обработка.РасширенныйВводКонтактнойИнформации.Форма.ВыборПомещения", ПараметрыФормы, + ЭтотОбъект,,,, ОповещениеОЗакрытие, РежимОткрытияОкнаФормы.БлокироватьОкноВладельца); + Иначе + Если ЗначениеЗаполнено(ПредставлениеАдреса) Тогда + ТекстПредупреждения = НСтр("ru = 'Выбор из списка недоступен, т.к в адресном классификаторе отсутствует информация о нумерации помещений для введенного адреса.'"); + Иначе + ТекстПредупреждения = НСтр("ru = 'Для просмотра списка помещений заполните поля адреса.'"); + КонецЕсли; + ПоказатьПредупреждение(, ТекстПредупреждения); + КонецЕсли; + +КонецПроцедуры + &НаКлиенте Процедура ВопросОбОбновлениеАдресногоКлассификатора(Знач СообщениеОПроверкеАдреса) @@ -1879,14 +2022,24 @@ КонецПроцедуры &НаКлиенте -Процедура ВыбранДома(Результат, ДополнительныеПараметры) Экспорт +Процедура ВыбранДом(Результат, ДополнительныеПараметры) Экспорт Если Результат <> Неопределено Тогда + НаселенныйПунктДетально.apartmentId = ""; ЗаполнитьПоляДомовСтроенийЗемельныхУчастков(Результат); КонецЕсли; КонецПроцедуры +&НаКлиенте +Процедура ВыбраноПомещение(Результат, ДополнительныеПараметры) Экспорт + + Если Результат <> Неопределено Тогда + ЗаполнитьПоляПомещения(Результат); + КонецЕсли; + +КонецПроцедуры + &НаКлиенте Процедура УстановитьПиктограммуКомментария() Элементы.СтраницаКомментарий.Картинка = ОбщегоНазначенияКлиентСервер.КартинкаКомментария(Комментарий); @@ -2428,6 +2581,7 @@ Элементы.Улица.КнопкаВыбора = АвтоподборДоступен; Элементы.НаселенныйПункт.КнопкаВыбора = Истина; Элементы.Строение.КнопкаВыбора = Ложь; + Элементы.Помещение.КнопкаВыбора = АвтоподборДоступен; Элементы.Строение.Доступность = Не ЭтоЗемельныйУчасток; Элементы.ТипСтроения.Доступность = Не ЭтоЗемельныйУчасток; Элементы.НаселенныйПункт.ПодсказкаВвода = НСтр("ru = 'Выберите или введите название населенного пункта'"); @@ -2443,6 +2597,7 @@ Элементы.Дом.КнопкаВыбора = Ложь; Элементы.Строение.КнопкаВыбора = Ложь; ОтображатьПоляИностранногоАдреса = Истина; + Элементы.Помещение.КнопкаВыбора = Ложь; Иначе УлицаЗаголовок = НСтр("ru = 'Адрес'"); @@ -2516,6 +2671,7 @@ Элементы.Улица.КнопкаВыбора = Ложь; Элементы.Дом.КнопкаВыбора = Ложь; Элементы.Строение.КнопкаВыбора = Ложь; + Элементы.Помещение.КнопкаВыбора = Ложь; Элементы.НаселенныйПункт.ПодсказкаВвода = НСтр("ru = 'Выберите или введите название населенного пункта'"); КонецЕсли; @@ -2705,14 +2861,22 @@ НовыйТип.СписокВыбора.ЗагрузитьЗначения(Элементы.ТипПомещения.СписокВыбора.ВыгрузитьЗначения()); НовыйТип.УстановитьДействие("ПриИзменении", "Подключаемый_ТипПомещенияПриИзменении"); Если ОбщегоНазначения.ЭтоМобильныйКлиент() Тогда - НовыйТип.КнопкаВыбора = Истина; - НовыйТип.ОтображениеКнопкиВыбора = ОтображениеКнопкиВыбора.Авто; + НовыйТип.КнопкаВыбора = Истина; + НовыйТип.ОтображениеКнопкиВыбора = ОтображениеКнопкиВыбора.Авто; КонецЕсли; НовыйЭлемент = Элементы.Добавить("Помещение" + Идентификатор, Тип("ПолеФормы"), НоваяГруппа); ЗаполнитьЗначенияСвойств(НовыйЭлемент, Элементы.Помещение,, "ПутьКДанным, СписокВыбора, ВыделенныйТекст, СвязьПоТипу"); НовыйЭлемент.СписокВыбора.ЗагрузитьЗначения(Элементы.Помещение.СписокВыбора.ВыгрузитьЗначения()); НовыйЭлемент.УстановитьДействие("ПриИзменении", "Подключаемый_ПомещениеПриИзменении"); + НовыйЭлемент.УстановитьДействие("НачалоВыбора", "Подключаемый_ПомещениеНачалоВыбора"); + НовыйЭлемент.УстановитьДействие("ОбработкаВыбора", "Подключаемый_ПомещениеОбработкаВыбора"); + НовыйЭлемент.УстановитьДействие("АвтоПодбор", "Подключаемый_ПомещениеАвтоПодбор"); + + ЭтоНациональныйАдрес = РаботаСАдресамиКлиентСервер.ЭтоМуниципальныйАдрес(НаселенныйПунктДетально.addressType) + Или РаботаСАдресамиКлиентСервер.ЭтоАдминистративноТерриториальныйАдрес(НаселенныйПунктДетально.addressType); + + НовыйЭлемент.КнопкаВыбора = ЭтоНациональныйАдрес; Иначе @@ -2732,10 +2896,10 @@ ЗаполнитьЗначенияСвойств(НовыйЭлемент, Элементы.Строение,, "ПутьКДанным, СписокВыбора, ВыделенныйТекст, СвязьПоТипу"); НовыйЭлемент.СписокВыбора.ЗагрузитьЗначения(Элементы.Строение.СписокВыбора.ВыгрузитьЗначения()); НовыйЭлемент.УстановитьДействие("ПриИзменении", "Подключаемый_СтроениеПриИзменении"); + НовыйЭлемент.КнопкаВыбора = Ложь; КонецЕсли; - НовыйЭлемент.КнопкаВыбора = Ложь; Добавлять = Новый Массив; Добавлять.Добавить(Новый РеквизитФормы(НовыйТип.Имя, Новый ОписаниеТипов("Строка"))); @@ -2901,7 +3065,14 @@ ЗаполнитьЗначенияСвойств(НовыйЭлемент, Элементы.Помещение,, "ПутьКДанным, СписокВыбора, ВыделенныйТекст, СвязьПоТипу"); НовыйЭлемент.СписокВыбора.ЗагрузитьЗначения(Элементы.Помещение.СписокВыбора.ВыгрузитьЗначения()); НовыйЭлемент.УстановитьДействие("ПриИзменении", "Подключаемый_ПомещениеПриИзменении"); - НовыйЭлемент.КнопкаВыбора = Ложь; + НовыйЭлемент.УстановитьДействие("НачалоВыбора", "Подключаемый_ПомещениеНачалоВыбора"); + НовыйЭлемент.УстановитьДействие("ОбработкаВыбора", "Подключаемый_ПомещениеОбработкаВыбора"); + НовыйЭлемент.УстановитьДействие("АвтоПодбор", "Подключаемый_ПомещениеАвтоПодбор"); + + ЭтоНациональныйАдрес = РаботаСАдресамиКлиентСервер.ЭтоМуниципальныйАдрес(НаселенныйПунктДетально.addressType) + Или РаботаСАдресамиКлиентСервер.ЭтоАдминистративноТерриториальныйАдрес(НаселенныйПунктДетально.addressType); + + НовыйЭлемент.КнопкаВыбора = ЭтоНациональныйАдрес; Если НомерСтроки = КоличествоПомещений Тогда Результат = НовыйЭлемент.Имя; @@ -3166,9 +3337,9 @@ КонецЕсли; - Для каждого Помещения Из НаселенныйПунктДетально.Apartments Цикл - Если СтрСравнить(Помещения.Type, СтароеЗначение) = 0 Тогда - Помещения.Type = ЭтотОбъект[Элемент.Имя]; + Для каждого СвойстваПомещения Из НаселенныйПунктДетально.Apartments Цикл + Если СтрСравнить(СвойстваПомещения.Type, СтароеЗначение) = 0 Тогда + СвойстваПомещения.Type = ЭтотОбъект[Элемент.Имя]; ОбновитьПредставлениеАдреса(); Прервать; КонецЕсли; @@ -3222,6 +3393,47 @@ КонецПроцедуры +&НаКлиенте +Процедура Подключаемый_ПомещениеНачалоВыбора(Элемент, ДанныеВыбора, ВыборДобавлением, СтандартнаяОбработка) + + ПоказатьСписокПомещений(); + +КонецПроцедуры + +&НаКлиенте +Процедура Подключаемый_ПомещениеОбработкаВыбора(Элемент, ВыбранноеЗначение, ДополнительныеДанные, ВыборДобавлением, СтандартнаяОбработка) + + Если ВыбранноеЗначение = Неопределено Тогда + Возврат; + КонецЕсли; + + СтандартнаяОбработка = Ложь; + + ЗаполнитьПоляПомещения(ВыбранноеЗначение); + +КонецПроцедуры + +&НаКлиенте +Процедура Подключаемый_ПомещениеАвтоПодбор(Элемент, Текст, ДанныеВыбора, ПараметрыПолученияДанных, Ожидание, СтандартнаяОбработка) + + Если Не АвтоподборДоступен Тогда + Возврат; + КонецЕсли; + + Если ЗначениеЗаполнено(Текст) Тогда + ИдентификаторДома = НаселенныйПунктДетально.houseId; + Если ЗначениеЗаполнено(ИдентификаторДома) Тогда + + ДанныеВыбора = СписокАвтоподбораПомещений(ИдентификаторДома, Текст + "%"); + + Если ДанныеВыбора.Количество() > 0 Тогда + СтандартнаяОбработка = Ложь; + КонецЕсли; + КонецЕсли; + КонецЕсли; + +КонецПроцедуры + &НаКлиенте Процедура УдалитьПомещениеИзАдреса(УдаляемыйТипПомещения) @@ -3511,16 +3723,36 @@ НаселенныйПунктДетально.ifnsFLAreaCode = ВыбранноеЗначение.КодУчасткаИФНСФЛ; НаселенныйПунктДетально.ifnsULAreaCode = ВыбранноеЗначение.КодУчасткаИФНСЮЛ; НаселенныйПунктДетально.codeKLADR = ВыбранноеЗначение.КодКЛАДР; - - УстановитьМуниципальныеЧастиАдреса(НаселенныйПунктДетально, ВыбранноеЗначение); - - ОбработкаИзмененияАдреса(); - + Если СтрСравнить(ТипДома, РаботаСАдресамиКлиентСервер.НаименованиеЗемельногоУчастка()) <> 0 Тогда ЗаполнитьПоляДомовИСтроений(ВыбранноеЗначение); Иначе ЗаполнитьПоляЗемельногоУчастка(ВыбранноеЗначение); КонецЕсли; + + УстановитьМуниципальныеЧастиАдресаИИдентификаторы(НаселенныйПунктДетально, ВыбранноеЗначение); + ОбработкаИзмененияАдреса(); + +КонецПроцедуры + +// Параметры: +// ВыбранноеЗначение - см. АдресныйКлассификаторСлужебный.ОписаниеПомещения +// +&НаКлиенте +Процедура ЗаполнитьПоляПомещения(Знач ВыбранноеЗначение) + + Модифицированность = Истина; + НаселенныйПунктДетально.Apartments.Очистить(); + + ТипПомещения = ВыбранноеЗначение.ТипПомещения; + Помещение = ВыбранноеЗначение.НомерПомещения; + НаселенныйПунктДетально.ApartmentId = ВыбранноеЗначение.ИдентификаторПомещения; + + ИнформацияОПомещении = ЗначениеСтроенияИлиПомещения(ТипПомещения, Помещение); + НаселенныйПунктДетально.Apartments.Добавить(ИнформацияОПомещении); + + ОбновитьМенюДобавленияСтроенийИПомещений(); + ОбработкаИзмененияАдреса(Истина); КонецПроцедуры @@ -3804,6 +4036,7 @@ Элементы.Улица.КнопкаВыбора = Не ЭтоАдресВСвободнойФорме; Элементы.Дом.КнопкаВыбора = Не ЭтоАдресВСвободнойФорме; Элементы.Строение.КнопкаВыбора = Не ЭтоАдресВСвободнойФорме; + Элементы.Помещение.КнопкаВыбора = Не ЭтоАдресВСвободнойФорме; Элементы.ТипДома.РедактированиеТекста = ЭтоАдресВСвободнойФорме; Элементы.ТипСтроения.РедактированиеТекста = ЭтоАдресВСвободнойФорме; Элементы.ТипДома.РежимВыбораИзСписка = Не ЭтоАдресВСвободнойФорме; @@ -3883,6 +4116,11 @@ Возврат Обработки.РасширенныйВводКонтактнойИнформации.СписокАвтоподбораНомераДомов(Идентификатор, Текст); КонецФункции +&НаСервереБезКонтекста +Функция СписокАвтоподбораПомещений(Знач Идентификатор, Знач Текст) + Возврат Обработки.РасширенныйВводКонтактнойИнформации.СписокАвтоподбораПомещений(Идентификатор, Текст); +КонецФункции + &НаСервереБезКонтекста Функция СписокАвтоподбораЗемельныхУчастков(Идентификатор, Текст) Возврат Обработки.РасширенныйВводКонтактнойИнформации.СписокАвтоподбораЗемельныхУчастков(Идентификатор, Текст); @@ -4213,7 +4451,7 @@ Если МеждународныйФорматАдреса Тогда ТипАдреса = УправлениеКонтактнойИнформациейКлиентСервер.ИностранныйАдрес(); - ИначеЕсли Не ЭтоРФАдрес() Тогда + ИначеЕсли Не ЭтоРФАдрес() И Не РаботаСАдресамиКлиентСервер.ЭтоОсновнаяСтрана(Страна) Тогда ЗаполнитьПолеИностранногоАдреса("city", НаселенныйПункт); ОбновитьПредставлениеАдреса(); @@ -4564,26 +4802,32 @@ КонецПроцедуры &НаСервереБезКонтекста -Процедура УстановитьМуниципальныеЧастиАдреса(НаселенныйПунктДетально, ВыбранноеЗначение) +Процедура УстановитьМуниципальныеЧастиАдресаИИдентификаторы(НаселенныйПунктДетально, ВыбранноеЗначение) Если ОбщегоНазначения.ПодсистемаСуществует("СтандартныеПодсистемы.АдресныйКлассификатор") Тогда + МодульАдресныйКлассификаторСлужебный = ОбщегоНазначения.ОбщийМодуль("АдресныйКлассификаторСлужебный"); ТипЧисло = Новый ОписаниеТипов("Число"); ОКТМО = ТипЧисло.ПривестиЗначение(ВыбранноеЗначение.ОКТМО); ЗагруженныеДанные = ВыбранноеЗначение.ЗагруженныеДанные; + ЕстьИдентификаторПомещения = Ложь; + Если НаселенныйПунктДетально.apartments.Количество() = 1 Тогда + ЕстьИдентификаторПомещения = Истина; + МодульАдресныйКлассификаторСлужебный.УстановитьИдентификаторыАдреса(НаселенныйПунктДетально); + КонецЕсли; + Если ЗагруженныеДанные Тогда ИдентификаторАдреса = ИдентификаторАдреса(НаселенныйПунктДетально, Истина); Иначе - Если ЗначениеЗаполнено(ВыбранноеЗначение.ИдентификаторДома) Тогда + Если ЗначениеЗаполнено(ВыбранноеЗначение.ИдентификаторДома) И Не ЕстьИдентификаторПомещения Тогда ИдентификаторАдреса = ВыбранноеЗначение.ИдентификаторДома; Иначе ИдентификаторАдреса = ИдентификаторАдреса(НаселенныйПунктДетально, Истина, Не ЗагруженныеДанные); КонецЕсли; КонецЕсли; - МодульАдресныйКлассификаторСлужебный = ОбщегоНазначения.ОбщийМодуль("АдресныйКлассификаторСлужебный"); МодульАдресныйКлассификаторСлужебный.УстановитьМуниципальныеСведения(НаселенныйПунктДетально, ОКТМО, ИдентификаторАдреса, ЗагруженныеДанные); diff --git a/SSL/src/DataProcessors/РасширенныйВводКонтактнойИнформации/Forms/ВыборАдресаПоПочтовомуИндексу/Module.bsl b/SSL/src/DataProcessors/РасширенныйВводКонтактнойИнформации/Forms/ВыборАдресаПоПочтовомуИндексу/Module.bsl index 1f13f3f11..91ee92a85 100644 --- a/SSL/src/DataProcessors/РасширенныйВводКонтактнойИнформации/Forms/ВыборАдресаПоПочтовомуИндексу/Module.bsl +++ b/SSL/src/DataProcessors/РасширенныйВводКонтактнойИнформации/Forms/ВыборАдресаПоПочтовомуИндексу/Module.bsl @@ -1,5 +1,5 @@ /////////////////////////////////////////////////////////////////////////////////////////////////////// -// Copyright (c) 2024, ООО 1С-Софт +// Copyright (c) 2025, ООО 1С-Софт // Все права защищены. Эта программа и сопроводительные материалы предоставляются // в соответствии с условиями лицензии Attribution 4.0 International (CC BY 4.0) // Текст лицензии доступен по ссылке: diff --git a/SSL/src/DataProcessors/РасширенныйВводКонтактнойИнформации/Forms/ВыборАдресаПоУровню/Form.form b/SSL/src/DataProcessors/РасширенныйВводКонтактнойИнформации/Forms/ВыборАдресаПоУровню/Form.form index c5d1feba3..f60371496 100644 --- a/SSL/src/DataProcessors/РасширенныйВводКонтактнойИнформации/Forms/ВыборАдресаПоУровню/Form.form +++ b/SSL/src/DataProcessors/РасширенныйВводКонтактнойИнформации/Forms/ВыборАдресаПоУровню/Form.form @@ -814,6 +814,35 @@ <common>true</common> </edit> </attributes> + <attributes> + <name>ДополнительныйРодитель</name> + <id>15</id> + <valueType> + <types>UUID</types> + </valueType> + <view> + <common>true</common> + </view> + <edit> + <common>true</common> + </edit> + </attributes> + <attributes> + <name>ДополнительныйУровень</name> + <id>16</id> + <valueType> + <types>Number</types> + <numberQualifiers> + <precision>10</precision> + </numberQualifiers> + </valueType> + <view> + <common>true</common> + </view> + <edit> + <common>true</common> + </edit> + </attributes> <formCommands> <name>Обновить</name> <title> diff --git a/SSL/src/DataProcessors/РасширенныйВводКонтактнойИнформации/Forms/ВыборАдресаПоУровню/Module.bsl b/SSL/src/DataProcessors/РасширенныйВводКонтактнойИнформации/Forms/ВыборАдресаПоУровню/Module.bsl index 4ebd317fc..649034099 100644 --- a/SSL/src/DataProcessors/РасширенныйВводКонтактнойИнформации/Forms/ВыборАдресаПоУровню/Module.bsl +++ b/SSL/src/DataProcessors/РасширенныйВводКонтактнойИнформации/Forms/ВыборАдресаПоУровню/Module.bsl @@ -1,5 +1,5 @@ /////////////////////////////////////////////////////////////////////////////////////////////////////// -// Copyright (c) 2024, ООО 1С-Софт +// Copyright (c) 2025, ООО 1С-Софт // Все права защищены. Эта программа и сопроводительные материалы предоставляются // в соответствии с условиями лицензии Attribution 4.0 International (CC BY 4.0) // Текст лицензии доступен по ссылке: @@ -35,6 +35,9 @@ Параметры.Свойство("Родитель", Родитель); Параметры.Свойство("Уровень", Уровень); + Параметры.Свойство("ДополнительныйРодитель", ДополнительныйРодитель); + Параметры.Свойство("ДополнительныйУровень", ДополнительныйУровень); + Параметры.Свойство("ТипАдреса", ТипАдреса); Параметры.Свойство("СкрыватьНеактуальные", СкрыватьНеактуальные); @@ -296,6 +299,14 @@ ДанныеКлассификатора = Обработки.РасширенныйВводКонтактнойИнформации.АдресаДляИнтерактивногоВыбора(Родитель, Уровень, ТипАдреса, ПараметрыПоиска); + Если ЗначениеЗаполнено(ДополнительныйРодитель) Тогда + ДополнительныеДанныеКлассификатора = Обработки.РасширенныйВводКонтактнойИнформации.АдресаДляИнтерактивногоВыбора(ДополнительныйРодитель, + ДополнительныйУровень, ТипАдреса, ПараметрыПоиска); + Для Каждого СтрокаИсточник Из ДополнительныеДанныеКлассификатора.Данные Цикл + ЗаполнитьЗначенияСвойств(ДанныеКлассификатора.Данные.Вставить(0), СтрокаИсточник); + КонецЦикла; + КонецЕсли; + Если ДанныеКлассификатора.Отказ Тогда // Сервис на обслуживании Результат.КраткоеПредставлениеОшибки = НСтр("ru = 'Автоподбор и проверка адреса недоступны:'") + Символы.ПС + ДанныеКлассификатора.КраткоеПредставлениеОшибки; diff --git a/SSL/src/DataProcessors/РасширенныйВводКонтактнойИнформации/Forms/ВыборДома/Module.bsl b/SSL/src/DataProcessors/РасширенныйВводКонтактнойИнформации/Forms/ВыборДома/Module.bsl index bec033468..14b0f04ab 100644 --- a/SSL/src/DataProcessors/РасширенныйВводКонтактнойИнформации/Forms/ВыборДома/Module.bsl +++ b/SSL/src/DataProcessors/РасширенныйВводКонтактнойИнформации/Forms/ВыборДома/Module.bsl @@ -1,5 +1,5 @@ /////////////////////////////////////////////////////////////////////////////////////////////////////// -// Copyright (c) 2024, ООО 1С-Софт +// Copyright (c) 2025, ООО 1С-Софт // Все права защищены. Эта программа и сопроводительные материалы предоставляются // в соответствии с условиями лицензии Attribution 4.0 International (CC BY 4.0) // Текст лицензии доступен по ссылке: diff --git a/SSL/src/DataProcessors/РасширенныйВводКонтактнойИнформации/Forms/ВыборПомещения/Form.form b/SSL/src/DataProcessors/РасширенныйВводКонтактнойИнформации/Forms/ВыборПомещения/Form.form new file mode 100644 index 000000000..a51bbcd82 --- /dev/null +++ b/SSL/src/DataProcessors/РасширенныйВводКонтактнойИнформации/Forms/ВыборПомещения/Form.form @@ -0,0 +1,517 @@ +<?xml version="1.0" encoding="UTF-8"?> +<form:Form xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns:core="http://g5.1c.ru/v8/dt/mcore" xmlns:form="http://g5.1c.ru/v8/dt/form"> + <title> + <key>ru</key> + <value>Выбрать квартиру, офис</value> + + + СписокАдресныхОбъектов + 3 + + <key>ru</key> + <value>Квартира, офис</value> + + true + true + + true + + + СписокАдресныхОбъектов + + None + Add + Change + Copy + Delete + EndEdit + MoveDown + MoveUp + SortListAsc + SortListDesc + + СписокАдресныхОбъектовПомещение + 16 + + <key>ru</key> + <value>Квартира, офис</value> + + true + true + + true + + + СписокАдресныхОбъектов.Представление + + + СписокАдресныхОбъектовПомещениеРасширеннаяПодсказка + 18 + Label + true + true + + Left + + + + СписокАдресныхОбъектовПомещениеКонтекстноеМеню + 17 + true + + InputField + true + true + Left + true + + true + true + true + true + true + true + Normal + + + + СписокАдресныхОбъектовКоманднаяПанель + 5 + + ФормаВыбрать + 57 + + <key>ru</key> + <value>Выбрать</value> + + true + true + + true + + + ФормаВыбратьРасширеннаяПодсказка + 58 + Label + true + true + + Left + + + Form.Command.Выбрать + Auto + true + true + true + UserCmds + Auto + InCommandBarAndInAdditionalSubmenu + + Left + true + + + Selection + СписокАдресныхОбъектовВыбор + + + OnActivateRow + СписокАдресныхОбъектовПриАктивизацииСтроки + + + СписокАдресныхОбъектовСтрокаПоиска + 7 + + СписокАдресныхОбъектовСтрокаПоискаРасширеннаяПодсказка + 9 + Label + true + true + + Left + + + + СписокАдресныхОбъектовСтрокаПоискаКонтекстноеМеню + 8 + true + + СписокАдресныхОбъектов + + true + + + + СписокАдресныхОбъектовСостояниеПросмотра + 10 + + СписокАдресныхОбъектовСостояниеПросмотраРасширеннаяПодсказка + 12 + Label + true + true + + Left + + + + СписокАдресныхОбъектовСостояниеПросмотраКонтекстноеМеню + 11 + true + + ViewStatusAddition + СписокАдресныхОбъектов + + true + + + + СписокАдресныхОбъектовУправлениеПоиском + 13 + + СписокАдресныхОбъектовУправлениеПоискомРасширеннаяПодсказка + 15 + Label + true + true + + Left + + + + СписокАдресныхОбъектовУправлениеПоискомКонтекстноеМеню + 14 + true + + SearchControlAddition + СписокАдресныхОбъектов + + true + + + + СписокАдресныхОбъектовРасширеннаяПодсказка + 6 + Label + true + true + + Left + + + + СписокАдресныхОбъектовКонтекстноеМеню + 4 + true + + Tree + true + true + true + Row + 1 + 1 + AutoUse + AutoUse + true + true + false + true + Auto + Auto + true + true + true + true + true + + + Top + true + + ФормаКоманднаяПанель + -1 + Left + + + OnOpen + ПриОткрытии + + + OnCreateAtServer + ПриСозданииНаСервере + + DontBlock + true + true + Vertical + true + true + true + true + + Объект + 1 + + DataProcessorObject.РасширенныйВводКонтактнойИнформации + + + true + + + true + +
                  true
                  +
                  + + СписокАдресныхОбъектов + + <key>ru</key> + <value>Список адресных объектов</value> + + 2 + + ValueTable + + + true + + + true + + + НомерПомещения + 1 + + String + + 30 + + + + true + + + true + + + + ПомещениеЧислом + 2 + + Number + + 15 + + + + true + + + true + + + + Представление + + <key>ru</key> + <value>Представление</value> + + 6 + + String + + 200 + + + + true + + + true + + + + Значение + 7 + + + true + + + true + + + + ИдентификаторПомещения + 3 + + String + + 50 + + + + true + + + true + + + + ТипПомещения + 4 + + String + + 50 + + + + true + + + true + + + + + АдресныйОбъект + 9 + + UUID + + + true + + + true + + + + ТекстПоиска + 10 + + String + + + + true + + + true + + + + ТекстПредупреждения + 12 + + String + + + + true + + + true + + + + Выбрать + + <key>ru</key> + <value>Выбрать</value> + + 1 + + ru + Выбрать + + + true + + + + Выбрать + + + DontUse + Auto + + + Найти + + <key>ru</key> + <value>Найти</value> + + 2 + + ru + Найти + + + true + + DontUse + Auto + + + ОтменитьПоиск + + <key>ru</key> + <value>Отменить поиск</value> + + 3 + + ru + Отменить поиск + + + true + + + StdPicture.CancelSearch + + DontUse + Auto + + + Идентификатор + + UUID + + + + НаименованиеАдресногоОбъекта + + String + + + + + Отбор + + Boolean + + + + НомерПомещения + + String + + + + + ТипПомещения + + String + + + + + + + + + diff --git a/SSL/src/DataProcessors/РасширенныйВводКонтактнойИнформации/Forms/ВыборПомещения/Module.bsl b/SSL/src/DataProcessors/РасширенныйВводКонтактнойИнформации/Forms/ВыборПомещения/Module.bsl new file mode 100644 index 000000000..432f140e0 --- /dev/null +++ b/SSL/src/DataProcessors/РасширенныйВводКонтактнойИнформации/Forms/ВыборПомещения/Module.bsl @@ -0,0 +1,109 @@ +/////////////////////////////////////////////////////////////////////////////////////////////////////// +// Copyright (c) 2025, ООО 1С-Софт +// Все права защищены. Эта программа и сопроводительные материалы предоставляются +// в соответствии с условиями лицензии Attribution 4.0 International (CC BY 4.0) +// Текст лицензии доступен по ссылке: +// https://creativecommons.org/licenses/by/4.0/legalcode +/////////////////////////////////////////////////////////////////////////////////////////////////////// + +#Область ОбработчикиСобытийФормы + +&НаСервере +Процедура ПриСозданииНаСервере(Отказ, СтандартнаяОбработка) + + АдресныйОбъект = Параметры.Идентификатор; + + ЗаполнитьСписок(?(Параметры.Отбор, Параметры.ТипПомещения + " " + Параметры.НомерПомещения, Неопределено)); + + Если СписокАдресныхОбъектов.Количество() = 0 Тогда + + Если ЗначениеЗаполнено(Параметры.НаименованиеАдресногоОбъекта) Тогда + ТекстПредупреждения = СтроковыеФункцииКлиентСервер.ПодставитьПараметрыВСтроку( + НСтр("ru = 'Отсутствует информация о помещениях для %1.'"), Параметры.НаименованиеАдресногоОбъекта); + Иначе + ТекстПредупреждения = НСтр("ru = 'Для просмотра списка помещений заполните поля адреса.'"); + КонецЕсли; + + Иначе + + // Позиционирование + Отбор = Новый Структура("НомерПомещения, ТипПомещения", Параметры.НомерПомещения, Параметры.ТипПомещения); + Строки = СписокАдресныхОбъектов.НайтиСтроки(Отбор); + Если Строки.Количество() > 0 Тогда + Элементы.СписокАдресныхОбъектов.ТекущаяСтрока = Строки[0].ПолучитьИдентификатор(); + КонецЕсли; + КонецЕсли; + + Если ОбщегоНазначения.ЭтоМобильныйКлиент() Тогда + ОбщегоНазначенияКлиентСервер.УстановитьСвойствоЭлементаФормы(Элементы, "ФормаВыбрать", "Видимость", Ложь); + КонецЕсли; + + УстановитьВидимостьДоступность(ЭтотОбъект); + +КонецПроцедуры + +&НаКлиенте +Процедура ПриОткрытии(Отказ) + + Если ЗначениеЗаполнено(ТекстПредупреждения) Тогда + Результат = Новый Структура("КраткоеПредставлениеОшибки", ТекстПредупреждения); + ОповеститьОВыборе(Результат); + Отказ = Истина; + КонецЕсли; + +КонецПроцедуры + +#КонецОбласти + +#Область ОбработчикиСобытийЭлементовТаблицыФормыСписокАдресныхОбъектов + +&НаКлиенте +Процедура СписокАдресныхОбъектовВыбор(Элемент, ВыбраннаяСтрока, Поле, СтандартнаяОбработка) + Закрыть(Элементы.СписокАдресныхОбъектов.ТекущиеДанные.Значение); +КонецПроцедуры + +&НаКлиенте +Процедура СписокАдресныхОбъектовПриАктивизацииСтроки(Элемент) + УстановитьВидимостьДоступность(ЭтотОбъект); +КонецПроцедуры + +#КонецОбласти + + +#Область ОбработчикиКомандФормы + +&НаКлиенте +Процедура Выбрать(Команда) + Если Элементы.СписокАдресныхОбъектов.ТекущиеДанные <> Неопределено Тогда + Закрыть(Элементы.СписокАдресныхОбъектов.ТекущиеДанные.Значение); + КонецЕсли; +КонецПроцедуры + +#КонецОбласти + +#Область СлужебныеПроцедурыИФункции + +&НаСервере +Процедура ЗаполнитьСписок(Текст) + + СписокАдресныхОбъектов.Очистить(); + СтрокаПоиска = ?(ЗначениеЗаполнено(Текст), Текст, ""); + ПорцияПриПоиске = 2000; + ПолныйСписокПомещений = Обработки.РасширенныйВводКонтактнойИнформации.СписокПомещений(АдресныйОбъект, СтрокаПоиска, ПорцияПриПоиске); + Если ПолныйСписокПомещений = Неопределено ИЛИ ПолныйСписокПомещений.Количество() = 0 Тогда + Элементы.ФормаВыбрать.Доступность = Ложь; + Иначе + СписокАдресныхОбъектов.Загрузить(ПолныйСписокПомещений); + Элементы.ФормаВыбрать.Доступность = Истина; + КонецЕсли; + +КонецПроцедуры + +&НаКлиентеНаСервереБезКонтекста +Процедура УстановитьВидимостьДоступность(Форма) + + Форма.Элементы.ФормаВыбрать.Доступность = Форма.Элементы.СписокАдресныхОбъектов.ТекущаяСтрока <> Неопределено; + +КонецПроцедуры + +#КонецОбласти \ No newline at end of file diff --git a/SSL/src/DataProcessors/РасширенныйВводКонтактнойИнформации/Forms/ВыборУлицы/Module.bsl b/SSL/src/DataProcessors/РасширенныйВводКонтактнойИнформации/Forms/ВыборУлицы/Module.bsl index c5d9ad877..15851ea15 100644 --- a/SSL/src/DataProcessors/РасширенныйВводКонтактнойИнформации/Forms/ВыборУлицы/Module.bsl +++ b/SSL/src/DataProcessors/РасширенныйВводКонтактнойИнформации/Forms/ВыборУлицы/Module.bsl @@ -1,5 +1,5 @@ /////////////////////////////////////////////////////////////////////////////////////////////////////// -// Copyright (c) 2024, ООО 1С-Софт +// Copyright (c) 2025, ООО 1С-Софт // Все права защищены. Эта программа и сопроводительные материалы предоставляются // в соответствии с условиями лицензии Attribution 4.0 International (CC BY 4.0) // Текст лицензии доступен по ссылке: diff --git a/SSL/src/DataProcessors/РасширенныйВводКонтактнойИнформации/Forms/ЗагрузкаАдресногоКлассификатора/Module.bsl b/SSL/src/DataProcessors/РасширенныйВводКонтактнойИнформации/Forms/ЗагрузкаАдресногоКлассификатора/Module.bsl index b61daead7..f043132a0 100644 --- a/SSL/src/DataProcessors/РасширенныйВводКонтактнойИнформации/Forms/ЗагрузкаАдресногоКлассификатора/Module.bsl +++ b/SSL/src/DataProcessors/РасширенныйВводКонтактнойИнформации/Forms/ЗагрузкаАдресногоКлассификатора/Module.bsl @@ -1,5 +1,5 @@ /////////////////////////////////////////////////////////////////////////////////////////////////////// -// Copyright (c) 2024, ООО 1С-Софт +// Copyright (c) 2025, ООО 1С-Софт // Все права защищены. Эта программа и сопроводительные материалы предоставляются // в соответствии с условиями лицензии Attribution 4.0 International (CC BY 4.0) // Текст лицензии доступен по ссылке: diff --git a/SSL/src/DataProcessors/РасширенныйВводКонтактнойИнформации/Forms/ИсправлениеАдресов/Module.bsl b/SSL/src/DataProcessors/РасширенныйВводКонтактнойИнформации/Forms/ИсправлениеАдресов/Module.bsl index 59ca614bb..52eb5ac8c 100644 --- a/SSL/src/DataProcessors/РасширенныйВводКонтактнойИнформации/Forms/ИсправлениеАдресов/Module.bsl +++ b/SSL/src/DataProcessors/РасширенныйВводКонтактнойИнформации/Forms/ИсправлениеАдресов/Module.bsl @@ -1,5 +1,5 @@ /////////////////////////////////////////////////////////////////////////////////////////////////////// -// Copyright (c) 2024, ООО 1С-Софт +// Copyright (c) 2025, ООО 1С-Софт // Все права защищены. Эта программа и сопроводительные материалы предоставляются // в соответствии с условиями лицензии Attribution 4.0 International (CC BY 4.0) // Текст лицензии доступен по ссылке: diff --git a/SSL/src/DataProcessors/РасширенныйВводКонтактнойИнформации/Forms/НаселенныйПунктАдреса/Module.bsl b/SSL/src/DataProcessors/РасширенныйВводКонтактнойИнформации/Forms/НаселенныйПунктАдреса/Module.bsl index 5c76511c6..861d303bf 100644 --- a/SSL/src/DataProcessors/РасширенныйВводКонтактнойИнформации/Forms/НаселенныйПунктАдреса/Module.bsl +++ b/SSL/src/DataProcessors/РасширенныйВводКонтактнойИнформации/Forms/НаселенныйПунктАдреса/Module.bsl @@ -1,5 +1,5 @@ /////////////////////////////////////////////////////////////////////////////////////////////////////// -// Copyright (c) 2024, ООО 1С-Софт +// Copyright (c) 2025, ООО 1С-Софт // Все права защищены. Эта программа и сопроводительные материалы предоставляются // в соответствии с условиями лицензии Attribution 4.0 International (CC BY 4.0) // Текст лицензии доступен по ссылке: @@ -37,7 +37,8 @@ ТипАдреса = НаселенныйПунктДетально.AddressType; Если НаселенныйПунктДетально.Свойство("country") - И РаботаСАдресамиКлиентСервер.ЭтоОсновнаяСтрана(НаселенныйПунктДетально.Country) Тогда + И (РаботаСАдресамиКлиентСервер.ЭтоОсновнаяСтрана(НаселенныйПунктДетально.Country) + ИЛИ ПустаяСтрока(НаселенныйПунктДетально.Country)) Тогда МуниципальныйРайон = ПредставлениеУровняАдреса(НаселенныйПунктДетально, "munDistrict"); Поселение = ПредставлениеУровняАдреса(НаселенныйПунктДетально, "settlement"); @@ -460,10 +461,17 @@ РодительскийИдентификатор = ИдентификаторРодителяУровняАдреса(ИмяУровня, НаселенныйПунктДетально, ТипАдреса); Уровень = РаботаСАдресамиКлиентСервер.СопоставлениеНаименованиеУровнюАдреса(ИмяУровня); + Если ИмяУровня = "locality" И РаботаСАдресамиКлиентСервер.ЭтоМуниципальныйАдрес(ТипАдреса) Тогда + ДополнительныйРодитель = ИдентификаторРодителяУровняАдреса("city", НаселенныйПунктДетально, ТипАдреса); + ДополнительныйУровень = РаботаСАдресамиКлиентСервер.СопоставлениеНаименованиеУровнюАдреса("city"); + КонецЕсли; + ПараметрыОткрытия = Новый Структура; - ПараметрыОткрытия.Вставить("ТипАдреса", ТипАдреса); - ПараметрыОткрытия.Вставить("Уровень", Уровень); - ПараметрыОткрытия.Вставить("Родитель", РодительскийИдентификатор); + ПараметрыОткрытия.Вставить("ТипАдреса", ТипАдреса); + ПараметрыОткрытия.Вставить("Уровень", Уровень); + ПараметрыОткрытия.Вставить("Родитель", РодительскийИдентификатор); + ПараметрыОткрытия.Вставить("ДополнительныйРодитель", ДополнительныйРодитель); + ПараметрыОткрытия.Вставить("ДополнительныйУровень", ДополнительныйУровень); ОткрытьФорму("Обработка.РасширенныйВводКонтактнойИнформации.Форма.ВыборАдресаПоУровню", ПараметрыОткрытия, Элемент); Модифицированность = Истина; @@ -555,7 +563,7 @@ Элементы.Район.Видимость = НЕ ЭтоМуниципальныйАдрес; Элементы.МуниципальныйРайон.Видимость = ЭтоМуниципальныйАдрес; Элементы.Поселение.Видимость = ЭтоМуниципальныйАдрес; - + Элементы.Город.Видимость = Не ЭтоМуниципальныйАдрес; КонецЕсли; КонецПроцедуры @@ -587,13 +595,23 @@ КонецЕсли; Уровень = РаботаСАдресамиКлиентСервер.СопоставлениеНаименованиеУровнюАдреса(ИмяУровня); - + МодульАдресныйКлассификаторСлужебный = ОбщегоНазначения.ОбщийМодуль("АдресныйКлассификаторСлужебный"); Результат = МодульАдресныйКлассификаторСлужебный.АдресныеОбъектыУровня(РодительскийИдентификатор, Уровень, ТипАдреса, Текст); Если Не Результат.Отказ Тогда ДанныеВыбора = Результат.Данные; КонецЕсли; + Если РаботаСАдресамиКлиентСервер.ЭтоМуниципальныйАдрес(ТипАдреса) И ИмяУровня = "locality" Тогда + РодительскийИдентификатор = ИдентификаторРодителяУровняАдреса("city", НаселенныйПунктДетально, ТипАдреса); + МодульАдресныйКлассификаторСлужебный = ОбщегоНазначения.ОбщийМодуль("АдресныйКлассификаторСлужебный"); + УровеньГорода = РаботаСАдресамиКлиентСервер.СопоставлениеНаименованиеУровнюАдреса("city"); + Результат = МодульАдресныйКлассификаторСлужебный.АдресныеОбъектыУровня(РодительскийИдентификатор, УровеньГорода, ТипАдреса, Текст); + Если Не Результат.Отказ Тогда + ОбщегоНазначенияКлиентСервер.ДополнитьСписок(ДанныеВыбора, Результат.Данные); + КонецЕсли; + КонецЕсли; + Если ДанныеВыбора.Количество() = 0 Тогда ИменаУровней = РаботаСАдресамиКлиентСервер.ИменаУровнейАдреса(ТипАдреса, Истина, Истина); ОчищатьИдентификатор = Ложь; diff --git a/SSL/src/DataProcessors/РасширенныйВводКонтактнойИнформации/Forms/НастройкиАдреса/Module.bsl b/SSL/src/DataProcessors/РасширенныйВводКонтактнойИнформации/Forms/НастройкиАдреса/Module.bsl index afff68f17..ff1aafe56 100644 --- a/SSL/src/DataProcessors/РасширенныйВводКонтактнойИнформации/Forms/НастройкиАдреса/Module.bsl +++ b/SSL/src/DataProcessors/РасширенныйВводКонтактнойИнформации/Forms/НастройкиАдреса/Module.bsl @@ -1,5 +1,5 @@ /////////////////////////////////////////////////////////////////////////////////////////////////////// -// Copyright (c) 2024, ООО 1С-Софт +// Copyright (c) 2025, ООО 1С-Софт // Все права защищены. Эта программа и сопроводительные материалы предоставляются // в соответствии с условиями лицензии Attribution 4.0 International (CC BY 4.0) // Текст лицензии доступен по ссылке: diff --git a/SSL/src/DataProcessors/РасширенныйВводКонтактнойИнформации/ManagerModule.bsl b/SSL/src/DataProcessors/РасширенныйВводКонтактнойИнформации/ManagerModule.bsl index d2bae1a74..480cf4ac1 100644 --- a/SSL/src/DataProcessors/РасширенныйВводКонтактнойИнформации/ManagerModule.bsl +++ b/SSL/src/DataProcessors/РасширенныйВводКонтактнойИнформации/ManagerModule.bsl @@ -1,5 +1,5 @@ /////////////////////////////////////////////////////////////////////////////////////////////////////// -// Copyright (c) 2024, ООО 1С-Софт +// Copyright (c) 2025, ООО 1С-Софт // Все права защищены. Эта программа и сопроводительные материалы предоставляются // в соответствии с условиями лицензии Attribution 4.0 International (CC BY 4.0) // Текст лицензии доступен по ссылке: @@ -398,6 +398,28 @@ Возврат ВариантыДомов; КонецФункции +// Возвращает список значений содержащий помещения для автоподбора. +// +// Параметры: +// ИдентификаторДома - УникальныйИдентификатор - дом. +// СтрокаПоиска - Строка - текст автоподбора. +// Возвращаемое значение: +// СписокЗначений - результат для автоподбора. +// +Функция СписокАвтоподбораПомещений(ИдентификаторДома, СтрокаПоиска) Экспорт + + ВариантыПомещений = Новый СписокЗначений; + + СписокПомещений = СписокПомещений(ИдентификаторДома, СтрокаПоиска); + Если СписокПомещений <> Неопределено Тогда + Для каждого Строка Из СписокПомещений Цикл + ВариантыПомещений.Добавить(Строка.Значение, Строка.Представление); + КонецЦикла; + КонецЕсли; + + Возврат ВариантыПомещений; +КонецФункции + // Возвращает список домов по идентификатору адресного объекта, поиск по подобию. // // Параметры: @@ -419,6 +441,27 @@ КонецФункции +// Возвращает список помещений по идентификатору адресного объекта, поиск по подобию. +// +// Параметры: +// ИдентификаторАдресногоОбъекта - УникальныйИдентификатор - родительский объект. +// СтрокаПоиска - Строка - текст, отбора в списке помещений. +// +// Возвращаемое значение: +// см. АдресныйКлассификаторСлужебный.КонструкторСпискаПомещений +// +Функция СписокПомещений(ИдентификаторАдресногоОбъекта, СтрокаПоиска = "", ПорцияПриПоиске = 20) Экспорт + + Если ОбщегоНазначения.ПодсистемаСуществует("СтандартныеПодсистемы.АдресныйКлассификатор") Тогда + МодульАдресныйКлассификаторСлужебный = ОбщегоНазначения.ОбщийМодуль("АдресныйКлассификаторСлужебный"); + СписокПомещений = МодульАдресныйКлассификаторСлужебный.СписокПомещений(ИдентификаторАдресногоОбъекта, СтрокаПоиска, ПорцияПриПоиске); + Возврат СписокПомещений; + КонецЕсли; + + Возврат Неопределено; + +КонецФункции + #КонецОбласти //====================================================================================================================== @@ -1705,7 +1748,7 @@ ДобавитьЗначение(Список, "Индекс", ПочтовыйИндексАдреса(АдресРФ) ); ДобавитьЗначение(Список, "Регион", АдресРФ.СубъектРФ); - ДобавитьЗначение(Список, "КодРегиона", РаботаСАдресами.КодРегиона(АдресРФ.СубъектРФ) ); + ДобавитьЗначение(Список, "КодРегиона", РаботаСАдресами.КодРегиона(АдресРФ.СубъектРФ)); Если РасширенныйСоставПолей Тогда ДобавитьЗначение(Список, "РегионСокращение", Сокращение(АдресРФ.СубъектРФ)); КонецЕсли; diff --git a/SSL/src/DataProcessors/РасширенныйВводКонтактнойИнформации/РасширенныйВводКонтактнойИнформации.mdo b/SSL/src/DataProcessors/РасширенныйВводКонтактнойИнформации/РасширенныйВводКонтактнойИнформации.mdo index d5102a62d..3079402f8 100644 --- a/SSL/src/DataProcessors/РасширенныйВводКонтактнойИнформации/РасширенныйВводКонтактнойИнформации.mdo +++ b/SSL/src/DataProcessors/РасширенныйВводКонтактнойИнформации/РасширенныйВводКонтактнойИнформации.mdo @@ -80,6 +80,15 @@ PersonalComputer MobileDevice + + ВыборПомещения + + ru + Выбор помещения + + PersonalComputer + MobileDevice + ЗагрузкаАдресногоКлассификатора diff --git a/SSL/src/DataProcessors/РегистрацияИзмененийДляОбменаДанными/Commands/РегистрацияИзмененийДляОтправки/CommandModule.bsl b/SSL/src/DataProcessors/РегистрацияИзмененийДляОбменаДанными/Commands/РегистрацияИзмененийДляОтправки/CommandModule.bsl index 2011759a0..d7927d922 100644 --- a/SSL/src/DataProcessors/РегистрацияИзмененийДляОбменаДанными/Commands/РегистрацияИзмененийДляОтправки/CommandModule.bsl +++ b/SSL/src/DataProcessors/РегистрацияИзмененийДляОбменаДанными/Commands/РегистрацияИзмененийДляОтправки/CommandModule.bsl @@ -1,5 +1,5 @@ /////////////////////////////////////////////////////////////////////////////////////////////////////// -// Copyright (c) 2024, ООО 1С-Софт +// Copyright (c) 2025, ООО 1С-Софт // Все права защищены. Эта программа и сопроводительные материалы предоставляются // в соответствии с условиями лицензии Attribution 4.0 International (CC BY 4.0) // Текст лицензии доступен по ссылке: diff --git a/SSL/src/DataProcessors/РегистрацияИзмененийДляОбменаДанными/Forms/ВыборКонстанты/Module.bsl b/SSL/src/DataProcessors/РегистрацияИзмененийДляОбменаДанными/Forms/ВыборКонстанты/Module.bsl index 63bafecaf..4bd8cc40e 100644 --- a/SSL/src/DataProcessors/РегистрацияИзмененийДляОбменаДанными/Forms/ВыборКонстанты/Module.bsl +++ b/SSL/src/DataProcessors/РегистрацияИзмененийДляОбменаДанными/Forms/ВыборКонстанты/Module.bsl @@ -1,5 +1,5 @@ /////////////////////////////////////////////////////////////////////////////////////////////////////// -// Copyright (c) 2024, ООО 1С-Софт +// Copyright (c) 2025, ООО 1С-Софт // Все права защищены. Эта программа и сопроводительные материалы предоставляются // в соответствии с условиями лицензии Attribution 4.0 International (CC BY 4.0) // Текст лицензии доступен по ссылке: diff --git a/SSL/src/DataProcessors/РегистрацияИзмененийДляОбменаДанными/Forms/ВыборОбъектовОтбором/Module.bsl b/SSL/src/DataProcessors/РегистрацияИзмененийДляОбменаДанными/Forms/ВыборОбъектовОтбором/Module.bsl index 400fd370c..c45e899bf 100644 --- a/SSL/src/DataProcessors/РегистрацияИзмененийДляОбменаДанными/Forms/ВыборОбъектовОтбором/Module.bsl +++ b/SSL/src/DataProcessors/РегистрацияИзмененийДляОбменаДанными/Forms/ВыборОбъектовОтбором/Module.bsl @@ -1,5 +1,5 @@ /////////////////////////////////////////////////////////////////////////////////////////////////////// -// Copyright (c) 2024, ООО 1С-Софт +// Copyright (c) 2025, ООО 1С-Софт // Все права защищены. Эта программа и сопроводительные материалы предоставляются // в соответствии с условиями лицензии Attribution 4.0 International (CC BY 4.0) // Текст лицензии доступен по ссылке: diff --git a/SSL/src/DataProcessors/РегистрацияИзмененийДляОбменаДанными/Forms/ВыборУзлаПланаОбмена/Form.form b/SSL/src/DataProcessors/РегистрацияИзмененийДляОбменаДанными/Forms/ВыборУзлаПланаОбмена/Form.form index b9c2ea39b..ab121b4a5 100644 --- a/SSL/src/DataProcessors/РегистрацияИзмененийДляОбменаДанными/Forms/ВыборУзлаПланаОбмена/Form.form +++ b/SSL/src/DataProcessors/РегистрацияИзмененийДляОбменаДанными/Forms/ВыборУзлаПланаОбмена/Form.form @@ -53,7 +53,7 @@ ДеревоУзловОбменаПометкаПриИзменении - ДеревоУзловОбменаПометкаExtendedTooltip + ДеревоУзловОбменаПометкаРасширеннаяПодсказка 45 Label true @@ -92,7 +92,7 @@ ДеревоУзловОбмена.Наименование - ДеревоУзловОбменаНаименованиеExtendedTooltip + ДеревоУзловОбменаНаименованиеРасширеннаяПодсказка 46 Label true @@ -127,7 +127,7 @@ Описание узла - ДеревоУзловОбменаПометкаНаименованиеExtendedTooltip + ДеревоУзловОбменаПометкаНаименованиеРасширеннаяПодсказка 44 Label true @@ -159,7 +159,7 @@ ДеревоУзловОбмена.Код - ДеревоУзловОбменаКодExtendedTooltip + ДеревоУзловОбменаКодРасширеннаяПодсказка 47 Label true @@ -265,7 +265,7 @@ - ДеревоУзловОбменаExtendedTooltip + ДеревоУзловОбменаРасширеннаяПодсказка 43 Label true @@ -290,7 +290,7 @@ true - ДеревоУзловОбменаКонтекстноеМенюВыбратьУзелExtendedTooltip + ДеревоУзловОбменаКонтекстноеМенюВыбратьУзелРасширеннаяПодсказка 38 Label true @@ -323,7 +323,7 @@ true - ДеревоУзловОбменаКонтекстноеМенюИзменитьУзелExtendedTooltip + ДеревоУзловОбменаКонтекстноеМенюИзменитьУзелРасширеннаяПодсказка 39 Label true @@ -355,7 +355,7 @@ true - ДеревоУзловОбменаКонтекстноеМенюВывестиСписокExtendedTooltip + ДеревоУзловОбменаКонтекстноеМенюВывестиСписокРасширеннаяПодсказка 41 Label true @@ -381,7 +381,7 @@ true - ДеревоУзловОбменаКонтекстноеМенюКопироватьВБуферОбменаExtendedTooltip + ДеревоУзловОбменаКонтекстноеМенюКопироватьВБуферОбменаРасширеннаяПодсказка 42 Label true @@ -408,7 +408,7 @@ Дерево узлов обмена контекстное меню группа 1 - ДеревоУзловОбменаКонтекстноеМенюГруппа1ExtendedTooltip + ДеревоУзловОбменаКонтекстноеМенюГруппа1РасширеннаяПодсказка 40 Label true @@ -462,7 +462,7 @@ true - ФормаВыбратьУзелExtendedTooltip + ФормаВыбратьУзелРасширеннаяПодсказка 36 Label true @@ -492,7 +492,7 @@ true - ФормаИзменитьУзелExtendedTooltip + ФормаИзменитьУзелРасширеннаяПодсказка 37 Label true diff --git a/SSL/src/DataProcessors/РегистрацияИзмененийДляОбменаДанными/Forms/ВыборУзлаПланаОбмена/Module.bsl b/SSL/src/DataProcessors/РегистрацияИзмененийДляОбменаДанными/Forms/ВыборУзлаПланаОбмена/Module.bsl index a50f518d3..33d198d63 100644 --- a/SSL/src/DataProcessors/РегистрацияИзмененийДляОбменаДанными/Forms/ВыборУзлаПланаОбмена/Module.bsl +++ b/SSL/src/DataProcessors/РегистрацияИзмененийДляОбменаДанными/Forms/ВыборУзлаПланаОбмена/Module.bsl @@ -1,5 +1,5 @@ /////////////////////////////////////////////////////////////////////////////////////////////////////// -// Copyright (c) 2024, ООО 1С-Софт +// Copyright (c) 2025, ООО 1С-Софт // Все права защищены. Эта программа и сопроводительные материалы предоставляются // в соответствии с условиями лицензии Attribution 4.0 International (CC BY 4.0) // Текст лицензии доступен по ссылке: diff --git a/SSL/src/DataProcessors/РегистрацияИзмененийДляОбменаДанными/Forms/Настройки/Form.form b/SSL/src/DataProcessors/РегистрацияИзмененийДляОбменаДанными/Forms/Настройки/Form.form index a310ae888..72b94965e 100644 --- a/SSL/src/DataProcessors/РегистрацияИзмененийДляОбменаДанными/Forms/Настройки/Form.form +++ b/SSL/src/DataProcessors/РегистрацияИзмененийДляОбменаДанными/Forms/Настройки/Form.form @@ -19,7 +19,7 @@ true - Декорация1ExtendedTooltip + Декорация1РасширеннаяПодсказка 37 Label true @@ -61,7 +61,7 @@ Right - АвторегистрацияДвиженийExtendedTooltip + АвторегистрацияДвиженийРасширеннаяПодсказка 39 Label true @@ -99,7 +99,7 @@ Right - АвторегистрацияПоследовательностейExtendedTooltip + АвторегистрацияПоследовательностейРасширеннаяПодсказка 40 Label true @@ -193,7 +193,7 @@ None - НомераСообщенийРегистрацииExtendedTooltip + НомераСообщенийРегистрацииРасширеннаяПодсказка 42 Label true @@ -304,7 +304,7 @@ true - Декорация2ExtendedTooltip + Декорация2РасширеннаяПодсказка 44 Label true @@ -349,7 +349,7 @@ None - ОбработкаЗапросаВнешняяExtendedTooltip + ОбработкаЗапросаВнешняяРасширеннаяПодсказка 47 Label true @@ -496,7 +496,7 @@ Right - НастройкаКонтрольВыгрузкиОбъектовExtendedTooltip + НастройкаКонтрольВыгрузкиОбъектовРасширеннаяПодсказка 51 Label true @@ -527,7 +527,7 @@ Библиотека стандартных подсистем - ГруппаБСПExtendedTooltip + ГруппаБСПРасширеннаяПодсказка 50 Label true @@ -566,7 +566,7 @@ true - ФормаОКExtendedTooltip + ФормаОКРасширеннаяПодсказка 33 Label true @@ -595,7 +595,7 @@ true - ФормаОтменаExtendedTooltip + ФормаОтменаРасширеннаяПодсказка 34 Label true diff --git a/SSL/src/DataProcessors/РегистрацияИзмененийДляОбменаДанными/Forms/Настройки/Module.bsl b/SSL/src/DataProcessors/РегистрацияИзмененийДляОбменаДанными/Forms/Настройки/Module.bsl index ff40af9fe..89c0a9b55 100644 --- a/SSL/src/DataProcessors/РегистрацияИзмененийДляОбменаДанными/Forms/Настройки/Module.bsl +++ b/SSL/src/DataProcessors/РегистрацияИзмененийДляОбменаДанными/Forms/Настройки/Module.bsl @@ -1,5 +1,5 @@ /////////////////////////////////////////////////////////////////////////////////////////////////////// -// Copyright (c) 2024, ООО 1С-Софт +// Copyright (c) 2025, ООО 1С-Софт // Все права защищены. Эта программа и сопроводительные материалы предоставляются // в соответствии с условиями лицензии Attribution 4.0 International (CC BY 4.0) // Текст лицензии доступен по ссылке: diff --git a/SSL/src/DataProcessors/РегистрацияИзмененийДляОбменаДанными/Forms/НомераСообщенийУзлаПланаОбмена/Form.form b/SSL/src/DataProcessors/РегистрацияИзмененийДляОбменаДанными/Forms/НомераСообщенийУзлаПланаОбмена/Form.form index 68b4ee3e6..e230e7dcf 100644 --- a/SSL/src/DataProcessors/РегистрацияИзмененийДляОбменаДанными/Forms/НомераСообщенийУзлаПланаОбмена/Form.form +++ b/SSL/src/DataProcessors/РегистрацияИзмененийДляОбменаДанными/Forms/НомераСообщенийУзлаПланаОбмена/Form.form @@ -23,7 +23,7 @@ НомерОтправленного - НомерОтправленногоExtendedTooltip + НомерОтправленногоРасширеннаяПодсказка 16 Label true @@ -68,7 +68,7 @@ НомерПринятого - НомерПринятогоExtendedTooltip + НомерПринятогоРасширеннаяПодсказка 17 Label true @@ -149,7 +149,7 @@ true - ЗаписатьИзмененияУзлаExtendedTooltip + ЗаписатьИзмененияУзлаРасширеннаяПодсказка 19 Label true @@ -179,7 +179,7 @@ true - ОтменаExtendedTooltip + ОтменаРасширеннаяПодсказка 20 Label true diff --git a/SSL/src/DataProcessors/РегистрацияИзмененийДляОбменаДанными/Forms/НомераСообщенийУзлаПланаОбмена/Module.bsl b/SSL/src/DataProcessors/РегистрацияИзмененийДляОбменаДанными/Forms/НомераСообщенийУзлаПланаОбмена/Module.bsl index 3768e1571..cae4edd26 100644 --- a/SSL/src/DataProcessors/РегистрацияИзмененийДляОбменаДанными/Forms/НомераСообщенийУзлаПланаОбмена/Module.bsl +++ b/SSL/src/DataProcessors/РегистрацияИзмененийДляОбменаДанными/Forms/НомераСообщенийУзлаПланаОбмена/Module.bsl @@ -1,5 +1,5 @@ /////////////////////////////////////////////////////////////////////////////////////////////////////// -// Copyright (c) 2024, ООО 1С-Софт +// Copyright (c) 2025, ООО 1С-Софт // Все права защищены. Эта программа и сопроводительные материалы предоставляются // в соответствии с условиями лицензии Attribution 4.0 International (CC BY 4.0) // Текст лицензии доступен по ссылке: diff --git a/SSL/src/DataProcessors/РегистрацияИзмененийДляОбменаДанными/Forms/УзлыРегистрацииОбъекта/Module.bsl b/SSL/src/DataProcessors/РегистрацияИзмененийДляОбменаДанными/Forms/УзлыРегистрацииОбъекта/Module.bsl index d5cf3783e..996644266 100644 --- a/SSL/src/DataProcessors/РегистрацияИзмененийДляОбменаДанными/Forms/УзлыРегистрацииОбъекта/Module.bsl +++ b/SSL/src/DataProcessors/РегистрацияИзмененийДляОбменаДанными/Forms/УзлыРегистрацииОбъекта/Module.bsl @@ -1,5 +1,5 @@ /////////////////////////////////////////////////////////////////////////////////////////////////////// -// Copyright (c) 2024, ООО 1С-Софт +// Copyright (c) 2025, ООО 1С-Софт // Все права защищены. Эта программа и сопроводительные материалы предоставляются // в соответствии с условиями лицензии Attribution 4.0 International (CC BY 4.0) // Текст лицензии доступен по ссылке: diff --git a/SSL/src/DataProcessors/РегистрацияИзмененийДляОбменаДанными/Forms/Форма/Module.bsl b/SSL/src/DataProcessors/РегистрацияИзмененийДляОбменаДанными/Forms/Форма/Module.bsl index 6de7d67fa..2f634fdfd 100644 --- a/SSL/src/DataProcessors/РегистрацияИзмененийДляОбменаДанными/Forms/Форма/Module.bsl +++ b/SSL/src/DataProcessors/РегистрацияИзмененийДляОбменаДанными/Forms/Форма/Module.bsl @@ -1,5 +1,5 @@ /////////////////////////////////////////////////////////////////////////////////////////////////////// -// Copyright (c) 2024, ООО 1С-Софт +// Copyright (c) 2025, ООО 1С-Софт // Все права защищены. Эта программа и сопроводительные материалы предоставляются // в соответствии с условиями лицензии Attribution 4.0 International (CC BY 4.0) // Текст лицензии доступен по ссылке: @@ -2976,8 +2976,7 @@ КонецФункции -//////////////////////////////////////////////////////////////////////////////// -// Процедуры и функции из базовой функциональности для обеспечения автономности. +#Область ПроцедурыИФункцииИзБазовойФункциональностиДляОбеспеченияАвтономности &НаКлиентеНаСервереБезКонтекста Функция ПодставитьПараметрыВСтроку(Знач СтрокаПодстановки, Знач Параметр1, Знач Параметр2 = Неопределено, Знач Параметр3 = Неопределено) @@ -2997,4 +2996,6 @@ КонецФункции +#КонецОбласти + #КонецОбласти \ No newline at end of file diff --git a/SSL/src/DataProcessors/РегистрацияИзмененийДляОбменаДанными/Help/ru.html b/SSL/src/DataProcessors/РегистрацияИзмененийДляОбменаДанными/Help/ru.html index f48a13fab..02f23ad5c 100644 --- a/SSL/src/DataProcessors/РегистрацияИзмененийДляОбменаДанными/Help/ru.html +++ b/SSL/src/DataProcessors/РегистрацияИзмененийДляОбменаДанными/Help/ru.html @@ -1,33 +1,51 @@ -

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

                  +

                  Предназначена для регистрации изменений данных в приложении. Это необходимо для последующей отправки данных при синхронизации в другие приложения.

                  Список можно открыть с помощью кнопки  или по команде Еще - Состав отправляемых данных из списка Синхронизации данных.

                  Ведется регистрация номеров сообщений. Нажмите на ссылку с номерами сообщений, чтобы просмотреть их или исправить.

                  Список состоит из двух частей:

                  • левая часть состоит из двух колонок: -
                    • Объект конфигурации - перечислены объекты программы (справочники, документы и т.д.) в виде дерева; -
                    • Количество - количество зарегистрированных измененных (или вновь введенных) / не выгруженных элементов в этих объектах;
                  • правая часть меняется в зависимости от выделенного объекта в левой части: +
                    • Объект конфигурации - перечислены объекты приложения (справочники, документы и т.д.) в виде дерева; +
                    • +
                    • Количество - количество зарегистрированных измененных (или вновь введенных) / не выгруженных элементов в этих объектах;
                  • +
                  • правая часть меняется в зависимости от выделенного объекта в левой части:
                    • По выделенной группе объектов в колонке Описание приводится подробное описание статистических данных левой части. -
                    • По выделенному объекту программы правая часть делится на две колонки: +
                    • +
                    • По выделенному объекту приложения правая часть делится на две колонки:
                      • Наименование конкретного объекта (например, Валюта) - приводится перечень всех измененных и не выгруженных элементов списка; -
                      • Номер отправленного - номер сообщения, в котором отправлены измененные элементы списка (указывается номер сообщения или выводится Не выгружалось);

                  Отбор изменений

                  + +
                • Номер отправленного - номер сообщения, в котором отправлены измененные элементы списка (указывается номер сообщения или выводится Не выгружалось);
                • Отбор изменений

                  • В поле Отображать выберите нужное значение из списка:
                    • Все; -
                    • Только выгруженные; -
                    • Только невыгруженные.

                  Регистрация изменений и отмена регистрации

                  -
                  • Измененные и вновь вводимые объекты программа регистрирует автоматически. Для ручной регистрации объектов выберите объект в дереве с помощью флажков, нажмите Зарегистрировать: +
                  • +
                  • Только выгруженные; +
                  • +
                  • Только невыгруженные.

                  Регистрация изменений и отмена регистрации

                  +
                  • Измененные и вновь вводимые объекты приложение регистрирует автоматически. Для ручной регистрации объектов выберите объект в дереве с помощью флажков, нажмите Зарегистрировать:
                    • - всех объектов выбранных типов - можно выбрать объект и все его подчиненные объекты; -
                    • - объектов выбранных типов с авторегистрацией; -
                    • - одиночного объекта (выберите из списка объект или создайте новый); -
                    • - объектов при помощи отбора (задайте отбор, отберите нужные элементы); -
                    • - результатов запроса.
                  • Для того чтобы отменить отправку всех данных, приготовленных для других программ, в дереве объектов выделите корень (информационную базу) и нажмите Отменить регистрацию - Всех объектов выбранных типов) - все настройки аналогичны предыдущим.

                  Настройки

                  + +
                • - объектов выбранных типов с авторегистрацией; +
                • +
                • - одиночного объекта (выберите из списка объект или создайте новый); +
                • +
                • - объектов при помощи отбора (задайте отбор, отберите нужные элементы); +
                • +
                • - результатов запроса.
                • +
                • Для того чтобы отменить отправку всех данных, приготовленных для других приложений, в дереве объектов выделите корень (приложение) и нажмите Отменить регистрацию - Всех объектов выбранных типов) - все настройки аналогичны предыдущим.
                • Настройки

                  • Для того чтобы настроить параметры регистрации изменений объектов, нажмите Еще - Настройки. Можно настроить параметры авторегистрации, установить номер сообщения при регистрации, при необходимости указать путь к каталогу консоли запросов. -
                  • С помощью флажков можно включить Авторегистрацию: +
                  • +
                  • С помощью флажков можно включить Авторегистрацию:
                    • Движений вместе с документами; -
                    • Последовательностей вместе с документами.
                  • С помощью переключателя можно настроить Установку номера сообщения при регистрации: +
                  • +
                  • Последовательностей вместе с документами.
                  +
                • С помощью переключателя можно настроить Установку номера сообщения при регистрации:
                  • Регистрировать как неотправленные; -
                  • Использовать номер сообщения узла обмена.
                • Для использования Консоли запросов переключатель установите в положение В каталоге, укажите путь к консоли запросов. Если она не нужна, переключатель установите в положение Не использовать. -
                • Включите флажок, для того чтобы Использовать Библиотеку стандартных подсистем при регистрации изменений объектов ограничения миграции данных. -
                • Для того чтобы настройки вступили в силу, нажмите Записать.
                • Просмотр результата выгрузки для РИБ

                  + +
                • Использовать номер сообщения узла обмена.
                • +
                • Для использования Консоли запросов переключатель установите в положение В каталоге, укажите путь к консоли запросов. Если она не нужна, переключатель установите в положение Не использовать. +
                • +
                • Включите флажок, для того чтобы Использовать Библиотеку стандартных подсистем при регистрации изменений объектов ограничения миграции данных. +
                • +
                • Для того чтобы настройки вступили в силу, нажмите Записать.
                • Просмотр результата выгрузки для РИБ

                  • Для того чтобы просмотреть результат выгрузки, выделите объект, по которому зарегистрированы изменения, в левой части списка, при этом в правой части появляется список элементов, выделите нужный элемент, нажмите кнопку Показать результат выгрузки или Еще - Стандартный результат выгрузки.

                  См. также:

                  \ No newline at end of file diff --git a/SSL/src/DataProcessors/РегистрацияИзмененийДляОбменаДанными/ObjectModule.bsl b/SSL/src/DataProcessors/РегистрацияИзмененийДляОбменаДанными/ObjectModule.bsl index 8664a86ca..c145fef00 100644 --- a/SSL/src/DataProcessors/РегистрацияИзмененийДляОбменаДанными/ObjectModule.bsl +++ b/SSL/src/DataProcessors/РегистрацияИзмененийДляОбменаДанными/ObjectModule.bsl @@ -1,5 +1,5 @@ /////////////////////////////////////////////////////////////////////////////////////////////////////// -// Copyright (c) 2024, ООО 1С-Софт +// Copyright (c) 2025, ООО 1С-Софт // Все права защищены. Эта программа и сопроводительные материалы предоставляются // в соответствии с условиями лицензии Attribution 4.0 International (CC BY 4.0) // Текст лицензии доступен по ссылке: @@ -2527,8 +2527,7 @@ Возврат Дерево; КонецФункции -//////////////////////////////////////////////////////////////////////////////// -// Процедуры и функции из базовой функциональности для обеспечения автономности. +#Область ПроцедурыИФункцииИзБазовойФункциональностиДляОбеспеченияАвтономности Функция ПодставитьПараметрыВСтроку(Знач СтрокаПодстановки, Знач Параметр1, Знач Параметр2 = Неопределено, Знач Параметр3 = Неопределено) @@ -2542,6 +2541,8 @@ #КонецОбласти +#КонецОбласти + #Иначе ВызватьИсключение НСтр("ru = 'Недопустимый вызов объекта на клиенте.'"); #КонецЕсли \ No newline at end of file diff --git a/SSL/src/DataProcessors/РегламентныеИФоновыеЗадания/Commands/РегламентныеИФоновыеЗадания/CommandModule.bsl b/SSL/src/DataProcessors/РегламентныеИФоновыеЗадания/Commands/РегламентныеИФоновыеЗадания/CommandModule.bsl index e80a81aa0..ed6c39b91 100644 --- a/SSL/src/DataProcessors/РегламентныеИФоновыеЗадания/Commands/РегламентныеИФоновыеЗадания/CommandModule.bsl +++ b/SSL/src/DataProcessors/РегламентныеИФоновыеЗадания/Commands/РегламентныеИФоновыеЗадания/CommandModule.bsl @@ -1,5 +1,5 @@ /////////////////////////////////////////////////////////////////////////////////////////////////////// -// Copyright (c) 2024, ООО 1С-Софт +// Copyright (c) 2025, ООО 1С-Софт // Все права защищены. Эта программа и сопроводительные материалы предоставляются // в соответствии с условиями лицензии Attribution 4.0 International (CC BY 4.0) // Текст лицензии доступен по ссылке: diff --git a/SSL/src/DataProcessors/РегламентныеИФоновыеЗадания/Forms/РегламентноеЗадание/Module.bsl b/SSL/src/DataProcessors/РегламентныеИФоновыеЗадания/Forms/РегламентноеЗадание/Module.bsl index 163b91cda..57d676223 100644 --- a/SSL/src/DataProcessors/РегламентныеИФоновыеЗадания/Forms/РегламентноеЗадание/Module.bsl +++ b/SSL/src/DataProcessors/РегламентныеИФоновыеЗадания/Forms/РегламентноеЗадание/Module.bsl @@ -1,5 +1,5 @@ /////////////////////////////////////////////////////////////////////////////////////////////////////// -// Copyright (c) 2024, ООО 1С-Софт +// Copyright (c) 2025, ООО 1С-Софт // Все права защищены. Эта программа и сопроводительные материалы предоставляются // в соответствии с условиями лицензии Attribution 4.0 International (CC BY 4.0) // Текст лицензии доступен по ссылке: diff --git a/SSL/src/DataProcessors/РегламентныеИФоновыеЗадания/Forms/РегламентныеИФоновыеЗадания/Module.bsl b/SSL/src/DataProcessors/РегламентныеИФоновыеЗадания/Forms/РегламентныеИФоновыеЗадания/Module.bsl index 581ac4726..e372a64ac 100644 --- a/SSL/src/DataProcessors/РегламентныеИФоновыеЗадания/Forms/РегламентныеИФоновыеЗадания/Module.bsl +++ b/SSL/src/DataProcessors/РегламентныеИФоновыеЗадания/Forms/РегламентныеИФоновыеЗадания/Module.bsl @@ -1,5 +1,5 @@ /////////////////////////////////////////////////////////////////////////////////////////////////////// -// Copyright (c) 2024, ООО 1С-Софт +// Copyright (c) 2025, ООО 1С-Софт // Все права защищены. Эта программа и сопроводительные материалы предоставляются // в соответствии с условиями лицензии Attribution 4.0 International (CC BY 4.0) // Текст лицензии доступен по ссылке: @@ -427,8 +427,11 @@ МодульУправлениеДоступомСлужебный.ПередЗапускомРегламентногоЗаданияНеВФоне(Задание); КонецЕсли; + ПараметрыВыполнения = РегламентныеЗаданияСервер.НовыеПараметрыВыполненияЗадания(); + ПараметрыВыполнения.ВФоне = Ложь; + ОбщегоНазначения.ХранилищеСистемныхНастроекСохранить("РегламентныеЗадания", ИмяМетода, Истина); - ОбщегоНазначения.ВыполнитьМетодКонфигурации(Метаданные.РегламентныеЗадания[ИмяЗадания].ИмяМетода, Задание.Параметры); + РегламентныеЗаданияСервер.ВыполнитьЗадание(Задание, ПараметрыВыполнения); ОбщегоНазначения.ХранилищеСистемныхНастроекСохранить("РегламентныеЗадания", ИмяМетода, Неопределено); КонецПроцедуры diff --git a/SSL/src/DataProcessors/РегламентныеИФоновыеЗадания/Forms/ФоновоеЗадание/Module.bsl b/SSL/src/DataProcessors/РегламентныеИФоновыеЗадания/Forms/ФоновоеЗадание/Module.bsl index 05fa46c44..2307290f6 100644 --- a/SSL/src/DataProcessors/РегламентныеИФоновыеЗадания/Forms/ФоновоеЗадание/Module.bsl +++ b/SSL/src/DataProcessors/РегламентныеИФоновыеЗадания/Forms/ФоновоеЗадание/Module.bsl @@ -1,5 +1,5 @@ /////////////////////////////////////////////////////////////////////////////////////////////////////// -// Copyright (c) 2024, ООО 1С-Софт +// Copyright (c) 2025, ООО 1С-Софт // Все права защищены. Эта программа и сопроводительные материалы предоставляются // в соответствии с условиями лицензии Attribution 4.0 International (CC BY 4.0) // Текст лицензии доступен по ссылке: diff --git a/SSL/src/DataProcessors/РезервноеКопированиеИБ/Commands/ВыполнитьВосстановлениеДанных/CommandModule.bsl b/SSL/src/DataProcessors/РезервноеКопированиеИБ/Commands/ВыполнитьВосстановлениеДанных/CommandModule.bsl index 98ba082cf..1205e8487 100644 --- a/SSL/src/DataProcessors/РезервноеКопированиеИБ/Commands/ВыполнитьВосстановлениеДанных/CommandModule.bsl +++ b/SSL/src/DataProcessors/РезервноеКопированиеИБ/Commands/ВыполнитьВосстановлениеДанных/CommandModule.bsl @@ -1,5 +1,5 @@ /////////////////////////////////////////////////////////////////////////////////////////////////////// -// Copyright (c) 2024, ООО 1С-Софт +// Copyright (c) 2025, ООО 1С-Софт // Все права защищены. Эта программа и сопроводительные материалы предоставляются // в соответствии с условиями лицензии Attribution 4.0 International (CC BY 4.0) // Текст лицензии доступен по ссылке: diff --git a/SSL/src/DataProcessors/РезервноеКопированиеИБ/Forms/ВосстановлениеДанныхИзРезервнойКопии/Module.bsl b/SSL/src/DataProcessors/РезервноеКопированиеИБ/Forms/ВосстановлениеДанныхИзРезервнойКопии/Module.bsl index 0f0d09efe..7ac3572ef 100644 --- a/SSL/src/DataProcessors/РезервноеКопированиеИБ/Forms/ВосстановлениеДанныхИзРезервнойКопии/Module.bsl +++ b/SSL/src/DataProcessors/РезервноеКопированиеИБ/Forms/ВосстановлениеДанныхИзРезервнойКопии/Module.bsl @@ -1,5 +1,5 @@ /////////////////////////////////////////////////////////////////////////////////////////////////////// -// Copyright (c) 2024, ООО 1С-Софт +// Copyright (c) 2025, ООО 1С-Софт // Все права защищены. Эта программа и сопроводительные материалы предоставляются // в соответствии с условиями лицензии Attribution 4.0 International (CC BY 4.0) // Текст лицензии доступен по ссылке: diff --git a/SSL/src/DataProcessors/РезервноеКопированиеИБ/Forms/РезервноеКопированиеДанных/Module.bsl b/SSL/src/DataProcessors/РезервноеКопированиеИБ/Forms/РезервноеКопированиеДанных/Module.bsl index 27dcc5243..10095b7ee 100644 --- a/SSL/src/DataProcessors/РезервноеКопированиеИБ/Forms/РезервноеКопированиеДанных/Module.bsl +++ b/SSL/src/DataProcessors/РезервноеКопированиеИБ/Forms/РезервноеКопированиеДанных/Module.bsl @@ -1,5 +1,5 @@ /////////////////////////////////////////////////////////////////////////////////////////////////////// -// Copyright (c) 2024, ООО 1С-Софт +// Copyright (c) 2025, ООО 1С-Софт // Все права защищены. Эта программа и сопроводительные материалы предоставляются // в соответствии с условиями лицензии Attribution 4.0 International (CC BY 4.0) // Текст лицензии доступен по ссылке: diff --git a/SSL/src/DataProcessors/РезультатыОбновленияПрограммы/Forms/ОбновлениеВерсииПрограммы/Module.bsl b/SSL/src/DataProcessors/РезультатыОбновленияПрограммы/Forms/ОбновлениеВерсииПрограммы/Module.bsl index 084838e89..429a285dc 100644 --- a/SSL/src/DataProcessors/РезультатыОбновленияПрограммы/Forms/ОбновлениеВерсииПрограммы/Module.bsl +++ b/SSL/src/DataProcessors/РезультатыОбновленияПрограммы/Forms/ОбновлениеВерсииПрограммы/Module.bsl @@ -1,5 +1,5 @@ /////////////////////////////////////////////////////////////////////////////////////////////////////// -// Copyright (c) 2024, ООО 1С-Софт +// Copyright (c) 2025, ООО 1С-Софт // Все права защищены. Эта программа и сопроводительные материалы предоставляются // в соответствии с условиями лицензии Attribution 4.0 International (CC BY 4.0) // Текст лицензии доступен по ссылке: diff --git a/SSL/src/DataProcessors/РезультатыОбновленияПрограммы/Forms/ОтложенноеОбновлениеНеЗавершено/Module.bsl b/SSL/src/DataProcessors/РезультатыОбновленияПрограммы/Forms/ОтложенноеОбновлениеНеЗавершено/Module.bsl index b88b76b45..954dcecfd 100644 --- a/SSL/src/DataProcessors/РезультатыОбновленияПрограммы/Forms/ОтложенноеОбновлениеНеЗавершено/Module.bsl +++ b/SSL/src/DataProcessors/РезультатыОбновленияПрограммы/Forms/ОтложенноеОбновлениеНеЗавершено/Module.bsl @@ -1,5 +1,5 @@ /////////////////////////////////////////////////////////////////////////////////////////////////////// -// Copyright (c) 2024, ООО 1С-Софт +// Copyright (c) 2025, ООО 1С-Софт // Все права защищены. Эта программа и сопроводительные материалы предоставляются // в соответствии с условиями лицензии Attribution 4.0 International (CC BY 4.0) // Текст лицензии доступен по ссылке: diff --git a/SSL/src/DataProcessors/РезультатыОбновленияПрограммы/Forms/ОтложенныеОбработчики/Module.bsl b/SSL/src/DataProcessors/РезультатыОбновленияПрограммы/Forms/ОтложенныеОбработчики/Module.bsl index 81072c214..77c023e64 100644 --- a/SSL/src/DataProcessors/РезультатыОбновленияПрограммы/Forms/ОтложенныеОбработчики/Module.bsl +++ b/SSL/src/DataProcessors/РезультатыОбновленияПрограммы/Forms/ОтложенныеОбработчики/Module.bsl @@ -1,5 +1,5 @@ /////////////////////////////////////////////////////////////////////////////////////////////////////// -// Copyright (c) 2024, ООО 1С-Софт +// Copyright (c) 2025, ООО 1С-Софт // Все права защищены. Эта программа и сопроводительные материалы предоставляются // в соответствии с условиями лицензии Attribution 4.0 International (CC BY 4.0) // Текст лицензии доступен по ссылке: diff --git a/SSL/src/DataProcessors/РезультатыОбновленияПрограммы/Forms/ОчисткаУстаревшихДанных/Module.bsl b/SSL/src/DataProcessors/РезультатыОбновленияПрограммы/Forms/ОчисткаУстаревшихДанных/Module.bsl index b57fc62fb..f78ce8588 100644 --- a/SSL/src/DataProcessors/РезультатыОбновленияПрограммы/Forms/ОчисткаУстаревшихДанных/Module.bsl +++ b/SSL/src/DataProcessors/РезультатыОбновленияПрограммы/Forms/ОчисткаУстаревшихДанных/Module.bsl @@ -1,5 +1,5 @@ /////////////////////////////////////////////////////////////////////////////////////////////////////// -// Copyright (c) 2024, ООО 1С-Софт +// Copyright (c) 2025, ООО 1С-Софт // Все права защищены. Эта программа и сопроводительные материалы предоставляются // в соответствии с условиями лицензии Attribution 4.0 International (CC BY 4.0) // Текст лицензии доступен по ссылке: diff --git a/SSL/src/DataProcessors/РезультатыОбновленияПрограммы/Forms/ПредупреждениеБезопасности/Module.bsl b/SSL/src/DataProcessors/РезультатыОбновленияПрограммы/Forms/ПредупреждениеБезопасности/Module.bsl index 4519a1240..8332fa367 100644 --- a/SSL/src/DataProcessors/РезультатыОбновленияПрограммы/Forms/ПредупреждениеБезопасности/Module.bsl +++ b/SSL/src/DataProcessors/РезультатыОбновленияПрограммы/Forms/ПредупреждениеБезопасности/Module.bsl @@ -1,5 +1,5 @@ /////////////////////////////////////////////////////////////////////////////////////////////////////// -// Copyright (c) 2024, ООО 1С-Софт +// Copyright (c) 2025, ООО 1С-Софт // Все права защищены. Эта программа и сопроводительные материалы предоставляются // в соответствии с условиями лицензии Attribution 4.0 International (CC BY 4.0) // Текст лицензии доступен по ссылке: diff --git a/SSL/src/DataProcessors/РезультатыОбновленияПрограммы/Forms/РезультатыОбновленияПрограммы/Module.bsl b/SSL/src/DataProcessors/РезультатыОбновленияПрограммы/Forms/РезультатыОбновленияПрограммы/Module.bsl index b2eec78a5..eebd80a41 100644 --- a/SSL/src/DataProcessors/РезультатыОбновленияПрограммы/Forms/РезультатыОбновленияПрограммы/Module.bsl +++ b/SSL/src/DataProcessors/РезультатыОбновленияПрограммы/Forms/РезультатыОбновленияПрограммы/Module.bsl @@ -1,5 +1,5 @@ /////////////////////////////////////////////////////////////////////////////////////////////////////// -// Copyright (c) 2024, ООО 1С-Софт +// Copyright (c) 2025, ООО 1С-Софт // Все права защищены. Эта программа и сопроводительные материалы предоставляются // в соответствии с условиями лицензии Attribution 4.0 International (CC BY 4.0) // Текст лицензии доступен по ссылке: diff --git a/SSL/src/DataProcessors/РезультатыОбновленияПрограммы/Forms/СообщениеДляНеполноправногоПользователя/Module.bsl b/SSL/src/DataProcessors/РезультатыОбновленияПрограммы/Forms/СообщениеДляНеполноправногоПользователя/Module.bsl index 43b740327..e1e4c24ad 100644 --- a/SSL/src/DataProcessors/РезультатыОбновленияПрограммы/Forms/СообщениеДляНеполноправногоПользователя/Module.bsl +++ b/SSL/src/DataProcessors/РезультатыОбновленияПрограммы/Forms/СообщениеДляНеполноправногоПользователя/Module.bsl @@ -1,5 +1,5 @@ /////////////////////////////////////////////////////////////////////////////////////////////////////// -// Copyright (c) 2024, ООО 1С-Софт +// Copyright (c) 2025, ООО 1С-Софт // Все права защищены. Эта программа и сопроводительные материалы предоставляются // в соответствии с условиями лицензии Attribution 4.0 International (CC BY 4.0) // Текст лицензии доступен по ссылке: diff --git a/SSL/src/DataProcessors/РезультатыОбновленияПрограммы/Forms/СообщениеОНеудачномОбновлении/Module.bsl b/SSL/src/DataProcessors/РезультатыОбновленияПрограммы/Forms/СообщениеОНеудачномОбновлении/Module.bsl index cb6ef595b..fa2bd4ecd 100644 --- a/SSL/src/DataProcessors/РезультатыОбновленияПрограммы/Forms/СообщениеОНеудачномОбновлении/Module.bsl +++ b/SSL/src/DataProcessors/РезультатыОбновленияПрограммы/Forms/СообщениеОНеудачномОбновлении/Module.bsl @@ -1,5 +1,5 @@ /////////////////////////////////////////////////////////////////////////////////////////////////////// -// Copyright (c) 2024, ООО 1С-Софт +// Copyright (c) 2025, ООО 1С-Софт // Все права защищены. Эта программа и сопроводительные материалы предоставляются // в соответствии с условиями лицензии Attribution 4.0 International (CC BY 4.0) // Текст лицензии доступен по ссылке: diff --git a/SSL/src/DataProcessors/РекомендацияПоПовышениюСкоростиРаботы/Forms/Форма/Module.bsl b/SSL/src/DataProcessors/РекомендацияПоПовышениюСкоростиРаботы/Forms/Форма/Module.bsl index d77aaf2eb..542ec72ca 100644 --- a/SSL/src/DataProcessors/РекомендацияПоПовышениюСкоростиРаботы/Forms/Форма/Module.bsl +++ b/SSL/src/DataProcessors/РекомендацияПоПовышениюСкоростиРаботы/Forms/Форма/Module.bsl @@ -1,5 +1,5 @@ /////////////////////////////////////////////////////////////////////////////////////////////////////// -// Copyright (c) 2024, ООО 1С-Софт +// Copyright (c) 2025, ООО 1С-Софт // Все права защищены. Эта программа и сопроводительные материалы предоставляются // в соответствии с условиями лицензии Attribution 4.0 International (CC BY 4.0) // Текст лицензии доступен по ссылке: diff --git a/SSL/src/DataProcessors/СдвигГраницыИтогов/Forms/ОсновнаяФорма/Module.bsl b/SSL/src/DataProcessors/СдвигГраницыИтогов/Forms/ОсновнаяФорма/Module.bsl index b7360d615..c750a7b28 100644 --- a/SSL/src/DataProcessors/СдвигГраницыИтогов/Forms/ОсновнаяФорма/Module.bsl +++ b/SSL/src/DataProcessors/СдвигГраницыИтогов/Forms/ОсновнаяФорма/Module.bsl @@ -1,5 +1,5 @@ /////////////////////////////////////////////////////////////////////////////////////////////////////// -// Copyright (c) 2024, ООО 1С-Софт +// Copyright (c) 2025, ООО 1С-Софт // Все права защищены. Эта программа и сопроводительные материалы предоставляются // в соответствии с условиями лицензии Attribution 4.0 International (CC BY 4.0) // Текст лицензии доступен по ссылке: diff --git a/SSL/src/DataProcessors/СдвигГраницыИтогов/ManagerModule.bsl b/SSL/src/DataProcessors/СдвигГраницыИтогов/ManagerModule.bsl index 548558a5c..8c35382b1 100644 --- a/SSL/src/DataProcessors/СдвигГраницыИтогов/ManagerModule.bsl +++ b/SSL/src/DataProcessors/СдвигГраницыИтогов/ManagerModule.bsl @@ -1,5 +1,5 @@ /////////////////////////////////////////////////////////////////////////////////////////////////////// -// Copyright (c) 2024, ООО 1С-Софт +// Copyright (c) 2025, ООО 1С-Софт // Все права защищены. Эта программа и сопроводительные материалы предоставляются // в соответствии с условиями лицензии Attribution 4.0 International (CC BY 4.0) // Текст лицензии доступен по ссылке: diff --git a/SSL/src/DataProcessors/Сканирование/Commands/СканироватьЛист/CommandModule.bsl b/SSL/src/DataProcessors/Сканирование/Commands/СканироватьЛист/CommandModule.bsl index dafc0135e..6a26b3cdf 100644 --- a/SSL/src/DataProcessors/Сканирование/Commands/СканироватьЛист/CommandModule.bsl +++ b/SSL/src/DataProcessors/Сканирование/Commands/СканироватьЛист/CommandModule.bsl @@ -1,5 +1,5 @@ /////////////////////////////////////////////////////////////////////////////////////////////////////// -// Copyright (c) 2024, ООО 1С-Софт +// Copyright (c) 2025, ООО 1С-Софт // Все права защищены. Эта программа и сопроводительные материалы предоставляются // в соответствии с условиями лицензии Attribution 4.0 International (CC BY 4.0) // Текст лицензии доступен по ссылке: diff --git a/SSL/src/DataProcessors/Сканирование/Forms/НастройкаСканирования/Module.bsl b/SSL/src/DataProcessors/Сканирование/Forms/НастройкаСканирования/Module.bsl index c644d2f7d..4f4c0843f 100644 --- a/SSL/src/DataProcessors/Сканирование/Forms/НастройкаСканирования/Module.bsl +++ b/SSL/src/DataProcessors/Сканирование/Forms/НастройкаСканирования/Module.bsl @@ -1,5 +1,5 @@ /////////////////////////////////////////////////////////////////////////////////////////////////////// -// Copyright (c) 2024, ООО 1С-Софт +// Copyright (c) 2025, ООО 1С-Софт // Все права защищены. Эта программа и сопроводительные материалы предоставляются // в соответствии с условиями лицензии Attribution 4.0 International (CC BY 4.0) // Текст лицензии доступен по ссылке: diff --git a/SSL/src/DataProcessors/Сканирование/Forms/НастройкаСканированияНаСеанс/Module.bsl b/SSL/src/DataProcessors/Сканирование/Forms/НастройкаСканированияНаСеанс/Module.bsl index ef08ae6bf..c0da7a6d0 100644 --- a/SSL/src/DataProcessors/Сканирование/Forms/НастройкаСканированияНаСеанс/Module.bsl +++ b/SSL/src/DataProcessors/Сканирование/Forms/НастройкаСканированияНаСеанс/Module.bsl @@ -1,5 +1,5 @@ /////////////////////////////////////////////////////////////////////////////////////////////////////// -// Copyright (c) 2024, ООО 1С-Софт +// Copyright (c) 2025, ООО 1С-Софт // Все права защищены. Эта программа и сопроводительные материалы предоставляются // в соответствии с условиями лицензии Attribution 4.0 International (CC BY 4.0) // Текст лицензии доступен по ссылке: diff --git a/SSL/src/DataProcessors/Сканирование/Forms/РезультатСканирования/Module.bsl b/SSL/src/DataProcessors/Сканирование/Forms/РезультатСканирования/Module.bsl index ffb3e0780..34e596685 100644 --- a/SSL/src/DataProcessors/Сканирование/Forms/РезультатСканирования/Module.bsl +++ b/SSL/src/DataProcessors/Сканирование/Forms/РезультатСканирования/Module.bsl @@ -1,5 +1,5 @@ /////////////////////////////////////////////////////////////////////////////////////////////////////// -// Copyright (c) 2024, ООО 1С-Софт +// Copyright (c) 2025, ООО 1С-Софт // Все права защищены. Эта программа и сопроводительные материалы предоставляются // в соответствии с условиями лицензии Attribution 4.0 International (CC BY 4.0) // Текст лицензии доступен по ссылке: diff --git a/SSL/src/DataProcessors/СкрытиеКонфиденциальнойИнформации/Forms/ВыборПравилОбработки/Module.bsl b/SSL/src/DataProcessors/СкрытиеКонфиденциальнойИнформации/Forms/ВыборПравилОбработки/Module.bsl index e5ba70184..ee77fd6c4 100644 --- a/SSL/src/DataProcessors/СкрытиеКонфиденциальнойИнформации/Forms/ВыборПравилОбработки/Module.bsl +++ b/SSL/src/DataProcessors/СкрытиеКонфиденциальнойИнформации/Forms/ВыборПравилОбработки/Module.bsl @@ -1,5 +1,5 @@ /////////////////////////////////////////////////////////////////////////////////////////////////////// -// Copyright (c) 2024, ООО 1С-Софт +// Copyright (c) 2025, ООО 1С-Софт // Все права защищены. Эта программа и сопроводительные материалы предоставляются // в соответствии с условиями лицензии Attribution 4.0 International (CC BY 4.0) // Текст лицензии доступен по ссылке: diff --git a/SSL/src/DataProcessors/СкрытиеКонфиденциальнойИнформации/Forms/Форма/Form.form b/SSL/src/DataProcessors/СкрытиеКонфиденциальнойИнформации/Forms/Форма/Form.form index d2f6e5964..f9df56ad6 100644 --- a/SSL/src/DataProcessors/СкрытиеКонфиденциальнойИнформации/Forms/Форма/Form.form +++ b/SSL/src/DataProcessors/СкрытиеКонфиденциальнойИнформации/Forms/Форма/Form.form @@ -2632,6 +2632,19 @@ true + + ЭтоВнешняяОбработка + 23 + + Boolean + + + true + + + true + + ВыполнитьСкрытие diff --git a/SSL/src/DataProcessors/СкрытиеКонфиденциальнойИнформации/Forms/Форма/Module.bsl b/SSL/src/DataProcessors/СкрытиеКонфиденциальнойИнформации/Forms/Форма/Module.bsl index 3becdb583..352e9da50 100644 --- a/SSL/src/DataProcessors/СкрытиеКонфиденциальнойИнформации/Forms/Форма/Module.bsl +++ b/SSL/src/DataProcessors/СкрытиеКонфиденциальнойИнформации/Forms/Форма/Module.bsl @@ -1,5 +1,5 @@ /////////////////////////////////////////////////////////////////////////////////////////////////////// -// Copyright (c) 2024, ООО 1С-Софт +// Copyright (c) 2025, ООО 1С-Софт // Все права защищены. Эта программа и сопроводительные материалы предоставляются // в соответствии с условиями лицензии Attribution 4.0 International (CC BY 4.0) // Текст лицензии доступен по ссылке: @@ -13,6 +13,7 @@ ОбработкаОбъект = РеквизитФормыВЗначение("Объект"); АдресХранилищаНастроек = ПоместитьВоВременноеХранилище(Неопределено, УникальныйИдентификатор); + ЭтоВнешняяОбработка = Не Метаданные.Обработки.Содержит(ОбработкаОбъект.Метаданные()); Заголовок = НСтр("ru = 'Скрытие конфиденциальной информации'"); @@ -485,7 +486,7 @@ ОбработкаОбъект = РеквизитФормыВЗначение("Объект"); МодульДлительныеОперации = ОбщийМодуль("ДлительныеОперации"); - Если МодульДлительныеОперации = Неопределено Тогда + Если МодульДлительныеОперации = Неопределено Или ЭтоВнешняяОбработка Тогда АдресХранилища = ПоместитьВоВременноеХранилище(Неопределено, УникальныйИдентификатор); ОбработкаОбъект.ЗаполнитьДеревоОбрабатываемыхОбъектов(СохраненныеНастройки, АдресХранилища); Возврат; @@ -615,7 +616,7 @@ ПараметрыПроцедуры.Вставить("ПравилаОбработки", ПравилаОбработки); МодульДлительныеОперации = ОбщийМодуль("ДлительныеОперации"); - Если МодульДлительныеОперации = Неопределено Тогда + Если МодульДлительныеОперации = Неопределено Или ЭтоВнешняяОбработка Тогда АдресХранилищаВторой = ПоместитьВоВременноеХранилище(Неопределено, УникальныйИдентификатор); ОбработкаОбъект.УничтожитьПерсональныеДанные(ПараметрыПроцедуры, АдресХранилищаВторой); Возврат Истина; diff --git a/SSL/src/DataProcessors/СкрытиеКонфиденциальнойИнформации/ManagerModule.bsl b/SSL/src/DataProcessors/СкрытиеКонфиденциальнойИнформации/ManagerModule.bsl index 53c1550bc..339e77a92 100644 --- a/SSL/src/DataProcessors/СкрытиеКонфиденциальнойИнформации/ManagerModule.bsl +++ b/SSL/src/DataProcessors/СкрытиеКонфиденциальнойИнформации/ManagerModule.bsl @@ -1,5 +1,5 @@ /////////////////////////////////////////////////////////////////////////////////////////////////////// -// Copyright (c) 2024, ООО 1С-Софт +// Copyright (c) 2025, ООО 1С-Софт // Все права защищены. Эта программа и сопроводительные материалы предоставляются // в соответствии с условиями лицензии Attribution 4.0 International (CC BY 4.0) // Текст лицензии доступен по ссылке: diff --git a/SSL/src/DataProcessors/СкрытиеКонфиденциальнойИнформации/ObjectModule.bsl b/SSL/src/DataProcessors/СкрытиеКонфиденциальнойИнформации/ObjectModule.bsl index ab74e03bc..ea09e500c 100644 --- a/SSL/src/DataProcessors/СкрытиеКонфиденциальнойИнформации/ObjectModule.bsl +++ b/SSL/src/DataProcessors/СкрытиеКонфиденциальнойИнформации/ObjectModule.bsl @@ -1,5 +1,5 @@ /////////////////////////////////////////////////////////////////////////////////////////////////////// -// Copyright (c) 2024, ООО 1С-Софт +// Copyright (c) 2025, ООО 1С-Софт // Все права защищены. Эта программа и сопроводительные материалы предоставляются // в соответствии с условиями лицензии Attribution 4.0 International (CC BY 4.0) // Текст лицензии доступен по ссылке: diff --git a/SSL/src/DataProcessors/СопоставлениеОбъектовИнформационныхБаз/Forms/НастройкаАвтоматическогоСопоставления/Module.bsl b/SSL/src/DataProcessors/СопоставлениеОбъектовИнформационныхБаз/Forms/НастройкаАвтоматическогоСопоставления/Module.bsl index 79c99f060..e244834ab 100644 --- a/SSL/src/DataProcessors/СопоставлениеОбъектовИнформационныхБаз/Forms/НастройкаАвтоматическогоСопоставления/Module.bsl +++ b/SSL/src/DataProcessors/СопоставлениеОбъектовИнформационныхБаз/Forms/НастройкаАвтоматическогоСопоставления/Module.bsl @@ -1,5 +1,5 @@ /////////////////////////////////////////////////////////////////////////////////////////////////////// -// Copyright (c) 2024, ООО 1С-Софт +// Copyright (c) 2025, ООО 1С-Софт // Все права защищены. Эта программа и сопроводительные материалы предоставляются // в соответствии с условиями лицензии Attribution 4.0 International (CC BY 4.0) // Текст лицензии доступен по ссылке: diff --git a/SSL/src/DataProcessors/СопоставлениеОбъектовИнформационныхБаз/Forms/НастройкаПолейТаблицы/Module.bsl b/SSL/src/DataProcessors/СопоставлениеОбъектовИнформационныхБаз/Forms/НастройкаПолейТаблицы/Module.bsl index a46ac583a..527c77753 100644 --- a/SSL/src/DataProcessors/СопоставлениеОбъектовИнформационныхБаз/Forms/НастройкаПолейТаблицы/Module.bsl +++ b/SSL/src/DataProcessors/СопоставлениеОбъектовИнформационныхБаз/Forms/НастройкаПолейТаблицы/Module.bsl @@ -1,5 +1,5 @@ /////////////////////////////////////////////////////////////////////////////////////////////////////// -// Copyright (c) 2024, ООО 1С-Софт +// Copyright (c) 2025, ООО 1С-Софт // Все права защищены. Эта программа и сопроводительные материалы предоставляются // в соответствии с условиями лицензии Attribution 4.0 International (CC BY 4.0) // Текст лицензии доступен по ссылке: diff --git a/SSL/src/DataProcessors/СопоставлениеОбъектовИнформационныхБаз/Forms/НастройкаПолейТаблицыСопоставления/Module.bsl b/SSL/src/DataProcessors/СопоставлениеОбъектовИнформационныхБаз/Forms/НастройкаПолейТаблицыСопоставления/Module.bsl index f84ae76fe..a34a9e3ab 100644 --- a/SSL/src/DataProcessors/СопоставлениеОбъектовИнформационныхБаз/Forms/НастройкаПолейТаблицыСопоставления/Module.bsl +++ b/SSL/src/DataProcessors/СопоставлениеОбъектовИнформационныхБаз/Forms/НастройкаПолейТаблицыСопоставления/Module.bsl @@ -1,5 +1,5 @@ /////////////////////////////////////////////////////////////////////////////////////////////////////// -// Copyright (c) 2024, ООО 1С-Софт +// Copyright (c) 2025, ООО 1С-Софт // Все права защищены. Эта программа и сопроводительные материалы предоставляются // в соответствии с условиями лицензии Attribution 4.0 International (CC BY 4.0) // Текст лицензии доступен по ссылке: diff --git a/SSL/src/DataProcessors/СопоставлениеОбъектовИнформационныхБаз/Forms/НастройкаСортировки/Module.bsl b/SSL/src/DataProcessors/СопоставлениеОбъектовИнформационныхБаз/Forms/НастройкаСортировки/Module.bsl index 79aaa973b..8710974c0 100644 --- a/SSL/src/DataProcessors/СопоставлениеОбъектовИнформационныхБаз/Forms/НастройкаСортировки/Module.bsl +++ b/SSL/src/DataProcessors/СопоставлениеОбъектовИнформационныхБаз/Forms/НастройкаСортировки/Module.bsl @@ -1,5 +1,5 @@ /////////////////////////////////////////////////////////////////////////////////////////////////////// -// Copyright (c) 2024, ООО 1С-Софт +// Copyright (c) 2025, ООО 1С-Софт // Все права защищены. Эта программа и сопроводительные материалы предоставляются // в соответствии с условиями лицензии Attribution 4.0 International (CC BY 4.0) // Текст лицензии доступен по ссылке: diff --git a/SSL/src/DataProcessors/СопоставлениеОбъектовИнформационныхБаз/Forms/РезультатАвтоматическогоСопоставления/Module.bsl b/SSL/src/DataProcessors/СопоставлениеОбъектовИнформационныхБаз/Forms/РезультатАвтоматическогоСопоставления/Module.bsl index eb04e6795..2840b05b8 100644 --- a/SSL/src/DataProcessors/СопоставлениеОбъектовИнформационныхБаз/Forms/РезультатАвтоматическогоСопоставления/Module.bsl +++ b/SSL/src/DataProcessors/СопоставлениеОбъектовИнформационныхБаз/Forms/РезультатАвтоматическогоСопоставления/Module.bsl @@ -1,5 +1,5 @@ /////////////////////////////////////////////////////////////////////////////////////////////////////// -// Copyright (c) 2024, ООО 1С-Софт +// Copyright (c) 2025, ООО 1С-Софт // Все права защищены. Эта программа и сопроводительные материалы предоставляются // в соответствии с условиями лицензии Attribution 4.0 International (CC BY 4.0) // Текст лицензии доступен по ссылке: @@ -359,8 +359,7 @@ КонецПроцедуры -//////////////////////////////////////////////////////////////////////////////// -// Обработчики ожидания +#Область ОбработчикиОжидания &НаКлиенте Процедура ОбработчикОжиданияФоновогоЗадания() @@ -390,8 +389,9 @@ КонецПроцедуры -//////////////////////////////////////////////////////////////////////////////// -// Обработчики событий переходов. +#КонецОбласти + +#Область ОбработчикиСобытийПереходов // Страница 1: Ошибка автоматического сопоставления. // @@ -582,8 +582,9 @@ ,ПодробноеПредставлениеОшибки); КонецПроцедуры -//////////////////////////////////////////////////////////////////////////////// -// Инициализация переходов помощника. +#КонецОбласти + +#Область ИнициализацияПереходовПомощника &НаСервере Процедура СценарийАвтоматическогоСопоставленияОбъектов() @@ -603,3 +604,5 @@ КонецПроцедуры #КонецОбласти + +#КонецОбласти \ No newline at end of file diff --git a/SSL/src/DataProcessors/СопоставлениеОбъектовИнформационныхБаз/Forms/Форма/Module.bsl b/SSL/src/DataProcessors/СопоставлениеОбъектовИнформационныхБаз/Forms/Форма/Module.bsl index 5cd7d549f..439d24e31 100644 --- a/SSL/src/DataProcessors/СопоставлениеОбъектовИнформационныхБаз/Forms/Форма/Module.bsl +++ b/SSL/src/DataProcessors/СопоставлениеОбъектовИнформационныхБаз/Forms/Форма/Module.bsl @@ -1,5 +1,5 @@ /////////////////////////////////////////////////////////////////////////////////////////////////////// -// Copyright (c) 2024, ООО 1С-Софт +// Copyright (c) 2025, ООО 1С-Софт // Все права защищены. Эта программа и сопроводительные материалы предоставляются // в соответствии с условиями лицензии Attribution 4.0 International (CC BY 4.0) // Текст лицензии доступен по ссылке: @@ -503,8 +503,7 @@ ОбновитьТаблицуСопоставления(); КонецПроцедуры -//////////////////////////////////////////////////////////////////////////////// -// СЛУЖЕБНЫЕ ПРОЦЕДУРЫ И ФУНКЦИИ (Поставляемая часть). +#Область СлужебныеПроцедурыИФункцииПоставляемаяЧасть &НаКлиенте Процедура ИзменитьПорядковыйНомерПерехода(Итератор) @@ -696,6 +695,8 @@ #КонецОбласти +#КонецОбласти + #Область СлужебныеПроцедурыИФункции &НаСервере @@ -981,8 +982,7 @@ КонецПроцедуры -//////////////////////////////////////////////////////////////////////////////// -// Прикладные +#Область Прикладные &НаКлиенте Процедура ЗаполнитьТаблицуСортировки(СписокЗначенийИсточник) @@ -1359,8 +1359,9 @@ КонецФункции -//////////////////////////////////////////////////////////////////////////////// -// Свойства +#КонецОбласти + +#Область Свойства &НаКлиенте Функция МаксимальноеКоличествоПользовательскихПолей() @@ -1369,8 +1370,9 @@ КонецФункции -//////////////////////////////////////////////////////////////////////////////// -// Обработчики событий переходов. +#КонецОбласти + +#Область ОбработчикиСобытийПереходов // Страница 1: Ошибка сопоставления объектов. // @@ -1596,8 +1598,9 @@ КонецФункции -//////////////////////////////////////////////////////////////////////////////// -// Инициализация переходов помощника. +#КонецОбласти + +#Область ИнициализацияПереходовПомощника &НаСервере Процедура СценарийВыполненияСопоставленияОбъектов() @@ -1615,3 +1618,5 @@ КонецПроцедуры #КонецОбласти + +#КонецОбласти \ No newline at end of file diff --git a/SSL/src/DataProcessors/СопоставлениеОбъектовИнформационныхБаз/Forms/ФормаВыбораСвязиСопоставления/Module.bsl b/SSL/src/DataProcessors/СопоставлениеОбъектовИнформационныхБаз/Forms/ФормаВыбораСвязиСопоставления/Module.bsl index db1b67289..99faaf6c0 100644 --- a/SSL/src/DataProcessors/СопоставлениеОбъектовИнформационныхБаз/Forms/ФормаВыбораСвязиСопоставления/Module.bsl +++ b/SSL/src/DataProcessors/СопоставлениеОбъектовИнформационныхБаз/Forms/ФормаВыбораСвязиСопоставления/Module.bsl @@ -1,5 +1,5 @@ /////////////////////////////////////////////////////////////////////////////////////////////////////// -// Copyright (c) 2024, ООО 1С-Софт +// Copyright (c) 2025, ООО 1С-Софт // Все права защищены. Эта программа и сопроводительные материалы предоставляются // в соответствии с условиями лицензии Attribution 4.0 International (CC BY 4.0) // Текст лицензии доступен по ссылке: diff --git a/SSL/src/DataProcessors/СопоставлениеОбъектовИнформационныхБаз/Help/ru.html b/SSL/src/DataProcessors/СопоставлениеОбъектовИнформационныхБаз/Help/ru.html index ba033a8fd..f7dd73cd3 100644 --- a/SSL/src/DataProcessors/СопоставлениеОбъектовИнформационныхБаз/Help/ru.html +++ b/SSL/src/DataProcessors/СопоставлениеОбъектовИнформационныхБаз/Help/ru.html @@ -1,17 +1,22 @@ <!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.0 Transitional//EN"><html><head><meta content="text/html;charset=utf-8" http-equiv="content-type"></meta><link rel="stylesheet" type="text/css" href="v8help://service_book/service_style"></link><meta name="GENERATOR" content="MSHTML 11.00.9600.17239"></meta></head><body> -<p>Предназначена для сопоставления данных двух программ.</p> +<p>Предназначена для сопоставления данных двух приложений.</p> <p>Список открывается по команде <strong>Выполнить сопоставление</strong> на странице <strong>Сопоставление данных</strong> <a href="DataProcessor.ПомощникИнтерактивногоОбменаДанными/Help">Помощника интерактивной синхронизации данных</a>. Также можно дважды щелкнуть мышью по строке, в которой обнаружены проблемы сопоставления данных.</p> -<p>Список состоит из двух колонок, каждая из которых соответствует информационной базе, участвующей в обмене. Данные сгруппированы по объектам программы (документы, списки). В нижней части списка выводится информационная строка: сколько элементов сопоставлено, сколько не сопоставлено.</p> +<p>Список состоит из двух колонок, каждая из которых соответствует приложению, участвующему в обмене. Данные сгруппированы по объектам приложения (документы, списки). В нижней части списка выводится информационная строка: сколько элементов сопоставлено, сколько не сопоставлено.</p> <p>В поле <strong>Выводить</strong> можно выбрать, какие данные показывать в списке. По умолчанию выводятся <strong>Несопоставленные данные</strong>.</p> <h3>Сопоставление объектов</h3> -<ul><li>Нажмите <strong>Сопоставить автоматически</strong> (рекомендуется), выберите поля для сопоставления с помощью флажков. Некоторые поля выбраны программой по умолчанию. Для того чтобы подтвердить свой выбор, нажмите <strong>Выполнить сопоставление</strong>. После поиска программа выводит на просмотр сопоставленные ею данные. Для подтверждения нажмите <strong>Применить</strong>. -</li><li>После автоматического сопоставления можно оставшиеся объекты сопоставить вручную или изменить сопоставление объектов. Выделите нужные объекты двух баз, нажмите <strong>Отменить соответствие</strong>, для того чтобы попытаться сопоставить объекты вручную, нажмите <strong>Установить соответствие</strong> для того чтобы сопоставить объекты. -</li><li>Для подтверждения нажмите <strong>Записать и закрыть</strong>.</li></ul><h3>Настройка полей таблицы сопоставления</h3> -<ul><li>Нажмите <strong>Колонки</strong>, чтобы добавить поля в колонки списка. С помощью флажков можно отметить дополнительные поля, для подтверждения нажмите <strong>Применить</strong>.</li></ul><h3>Получение данных из другой программы</h3> -<ul><li>Для того чтобы получить данные из другой программы, нажмите <strong>Еще - </strong><img src="CommonPicture.СинхронизацияДанныхВыполнение"></img> <strong>Загрузить данные из другой программы</strong>.</li></ul><h3>Порядок сопоставления объектов</h3> +<ul><li>Нажмите <strong>Сопоставить автоматически</strong> (рекомендуется), выберите поля для сопоставления с помощью флажков. Некоторые поля выбраны приложением по умолчанию. Для того чтобы подтвердить свой выбор, нажмите <strong>Выполнить сопоставление</strong>. После поиска приложение выводит на просмотр сопоставленные ею данные. Для подтверждения нажмите <strong>Применить</strong>. +</li> +<li>После автоматического сопоставления можно оставшиеся объекты сопоставить вручную или изменить сопоставление объектов. Выделите нужные объекты двух приложений, нажмите <strong>Отменить соответствие</strong>, для того чтобы попытаться сопоставить объекты вручную, нажмите <strong>Установить соответствие</strong> для того чтобы сопоставить объекты. +</li> +<li>Для подтверждения нажмите <strong>Записать и закрыть</strong>.</li></ul><h3>Настройка полей таблицы сопоставления</h3> +<ul><li>Нажмите <strong>Колонки</strong>, чтобы добавить поля в колонки списка. С помощью флажков можно отметить дополнительные поля, для подтверждения нажмите <strong>Применить</strong>.</li></ul><h3>Получение данных из другого приложения</h3> +<ul><li>Для того чтобы получить данные из другого приложения, нажмите <strong>Еще - </strong><img src="CommonPicture.СинхронизацияДанныхВыполнение"></img> <strong>Загрузить данные из другого приложения</strong>.</li></ul><h3>Порядок сопоставления объектов</h3> <ul><li>Рекомендуется выполнять сопоставление и загрузку данных с учетом ссылочных связей. Особенно, если поле используется для сопоставления объектов. -</li><li>Например, в конфигурации имеется справочник договоров контрагентов, который подчинен справочнику контрагентов. Сопоставление договоров контрагентов выполняется по справочнику-владельцу, т.е. по справочнику контрагентов. Следовательно, для правильного сопоставления данных необходимо сначала сопоставить и загрузить справочник контрагентов, а затем - справочник договоров контрагентов. -</li><li>В противном случае поля таблицы сопоставления могут содержать фиктивные ссылки вида:<br><Объект не найден> (26:a0b9001b24e002fe11dfba347dd41412). -</li><li>Фиктивная ссылка указывает на объект в текущей информационной базе, который еще не был загружен из сообщения обмена. </li></ul><h3>См. также:</h3> +</li> +<li>Например, в приложении имеется справочник договоров контрагентов, который подчинен справочнику контрагентов. Сопоставление договоров контрагентов выполняется по справочнику-владельцу, т.е. по справочнику контрагентов. Следовательно, для правильного сопоставления данных необходимо сначала сопоставить и загрузить справочник контрагентов, а затем - справочник договоров контрагентов. +</li> +<li>В противном случае поля таблицы сопоставления могут содержать фиктивные ссылки вида:<br><Объект не найден> (26:a0b9001b24e002fe11dfba347dd41412). +</li> +<li>Фиктивная ссылка указывает на объект в текущем приложении, который еще не был загружен из сообщения обмена. </li></ul><h3>См. также:</h3> <ul><li> <div><a href="CommonForm.НастройкиСинхронизацииДанных/Help">Синхронизация данных</a>.</div></li></ul></body></html> \ No newline at end of file diff --git a/SSL/src/DataProcessors/СопоставлениеОбъектовИнформационныхБаз/ManagerModule.bsl b/SSL/src/DataProcessors/СопоставлениеОбъектовИнформационныхБаз/ManagerModule.bsl index 5c9c400d9..d8e5716b1 100644 --- a/SSL/src/DataProcessors/СопоставлениеОбъектовИнформационныхБаз/ManagerModule.bsl +++ b/SSL/src/DataProcessors/СопоставлениеОбъектовИнформационныхБаз/ManagerModule.bsl @@ -1,5 +1,5 @@ /////////////////////////////////////////////////////////////////////////////////////////////////////// -// Copyright (c) 2024, ООО 1С-Софт +// Copyright (c) 2025, ООО 1С-Софт // Все права защищены. Эта программа и сопроводительные материалы предоставляются // в соответствии с условиями лицензии Attribution 4.0 International (CC BY 4.0) // Текст лицензии доступен по ссылке: diff --git a/SSL/src/DataProcessors/СопоставлениеОбъектовИнформационныхБаз/ObjectModule.bsl b/SSL/src/DataProcessors/СопоставлениеОбъектовИнформационныхБаз/ObjectModule.bsl index da8b08d88..8442d64fb 100644 --- a/SSL/src/DataProcessors/СопоставлениеОбъектовИнформационныхБаз/ObjectModule.bsl +++ b/SSL/src/DataProcessors/СопоставлениеОбъектовИнформационныхБаз/ObjectModule.bsl @@ -1,5 +1,5 @@ /////////////////////////////////////////////////////////////////////////////////////////////////////// -// Copyright (c) 2024, ООО 1С-Софт +// Copyright (c) 2025, ООО 1С-Софт // Все права защищены. Эта программа и сопроводительные материалы предоставляются // в соответствии с условиями лицензии Attribution 4.0 International (CC BY 4.0) // Текст лицензии доступен по ссылке: @@ -19,8 +19,7 @@ #Область СлужебныеПроцедурыИФункции -//////////////////////////////////////////////////////////////////////////////// -// Экспортные служебные процедуры и функции. +#Область ЭкспортныеСлужебныеПроцедурыИФункции // Выполняет сопоставление объектов этой информационной базы и информационной базы источника. // Формирует таблицу сопоставления для вывода пользователю. @@ -242,8 +241,9 @@ КонецПроцедуры -//////////////////////////////////////////////////////////////////////////////// -// Функции-свойства +#КонецОбласти + +#Область ФункцииСвойства // Таблица сопоставления объектов. // @@ -262,8 +262,9 @@ КонецФункции -//////////////////////////////////////////////////////////////////////////////// -// Функции-свойства - дайджест сопоставления. +#КонецОбласти + +#Область ФункцииСвойстваДайджестСопоставления // Количество объектов текущего типа данных в файле сообщения обмена. // @@ -320,8 +321,9 @@ КонецФункции -//////////////////////////////////////////////////////////////////////////////// -// Локальные функции-свойства +#КонецОбласти + +#Область ЛокальныеФункцииСвойства Функция ДайджестСопоставления() @@ -368,8 +370,9 @@ Возврат ПолеТипСтрокаНеограниченнойДлины; КонецФункции -//////////////////////////////////////////////////////////////////////////////// -// Получение таблицы сопоставления. +#КонецОбласти + +#Область ПолучениеТаблицыСопоставления Процедура ВыполнитьСопоставлениеОбъектовИнформационныхБаз(Отказ) @@ -2198,8 +2201,9 @@ КонецФункции -//////////////////////////////////////////////////////////////////////////////// -// Вспомогательные служебные процедуры и функции. +#КонецОбласти + +#Область ВспомогательныеСлужебныеПроцедурыИФункции Процедура ЗаполнитьСписокОтмеченнымиЭлементами(СписокИсточник, СписокПриемник) @@ -2330,6 +2334,8 @@ #КонецОбласти +#КонецОбласти + #Иначе ВызватьИсключение НСтр("ru = 'Недопустимый вызов объекта на клиенте.'"); #КонецЕсли \ No newline at end of file diff --git a/SSL/src/DataProcessors/ТекущиеДела/Forms/НастройкаТекущихДел/Module.bsl b/SSL/src/DataProcessors/ТекущиеДела/Forms/НастройкаТекущихДел/Module.bsl index 45024dc0e..a85e9e26e 100644 --- a/SSL/src/DataProcessors/ТекущиеДела/Forms/НастройкаТекущихДел/Module.bsl +++ b/SSL/src/DataProcessors/ТекущиеДела/Forms/НастройкаТекущихДел/Module.bsl @@ -1,5 +1,5 @@ /////////////////////////////////////////////////////////////////////////////////////////////////////// -// Copyright (c) 2024, ООО 1С-Софт +// Copyright (c) 2025, ООО 1С-Софт // Все права защищены. Эта программа и сопроводительные материалы предоставляются // в соответствии с условиями лицензии Attribution 4.0 International (CC BY 4.0) // Текст лицензии доступен по ссылке: diff --git a/SSL/src/DataProcessors/ТекущиеДела/Forms/Форма/Module.bsl b/SSL/src/DataProcessors/ТекущиеДела/Forms/Форма/Module.bsl index e72d0fe16..94027bb13 100644 --- a/SSL/src/DataProcessors/ТекущиеДела/Forms/Форма/Module.bsl +++ b/SSL/src/DataProcessors/ТекущиеДела/Forms/Форма/Module.bsl @@ -1,5 +1,5 @@ /////////////////////////////////////////////////////////////////////////////////////////////////////// -// Copyright (c) 2024, ООО 1С-Софт +// Copyright (c) 2025, ООО 1С-Софт // Все права защищены. Эта программа и сопроводительные материалы предоставляются // в соответствии с условиями лицензии Attribution 4.0 International (CC BY 4.0) // Текст лицензии доступен по ссылке: diff --git a/SSL/src/DataProcessors/ТекущиеДела/ManagerModule.bsl b/SSL/src/DataProcessors/ТекущиеДела/ManagerModule.bsl index aa93fac6a..c8b6d0415 100644 --- a/SSL/src/DataProcessors/ТекущиеДела/ManagerModule.bsl +++ b/SSL/src/DataProcessors/ТекущиеДела/ManagerModule.bsl @@ -1,5 +1,5 @@ /////////////////////////////////////////////////////////////////////////////////////////////////////// -// Copyright (c) 2024, ООО 1С-Софт +// Copyright (c) 2025, ООО 1С-Софт // Все права защищены. Эта программа и сопроводительные материалы предоставляются // в соответствии с условиями лицензии Attribution 4.0 International (CC BY 4.0) // Текст лицензии доступен по ссылке: diff --git a/SSL/src/DataProcessors/ТранспортСообщенийОбменаCOM/Forms/Форма/Module.bsl b/SSL/src/DataProcessors/ТранспортСообщенийОбменаCOM/Forms/Форма/Module.bsl index 556f9cdd3..0d039b0d3 100644 --- a/SSL/src/DataProcessors/ТранспортСообщенийОбменаCOM/Forms/Форма/Module.bsl +++ b/SSL/src/DataProcessors/ТранспортСообщенийОбменаCOM/Forms/Форма/Module.bsl @@ -1,5 +1,5 @@ /////////////////////////////////////////////////////////////////////////////////////////////////////// -// Copyright (c) 2024, ООО 1С-Софт +// Copyright (c) 2025, ООО 1С-Софт // Все права защищены. Эта программа и сопроводительные материалы предоставляются // в соответствии с условиями лицензии Attribution 4.0 International (CC BY 4.0) // Текст лицензии доступен по ссылке: diff --git a/SSL/src/DataProcessors/ТранспортСообщенийОбменаCOM/Forms/ФормаАутентификации/Module.bsl b/SSL/src/DataProcessors/ТранспортСообщенийОбменаCOM/Forms/ФормаАутентификации/Module.bsl index 75f0979c9..6a9f699d1 100644 --- a/SSL/src/DataProcessors/ТранспортСообщенийОбменаCOM/Forms/ФормаАутентификации/Module.bsl +++ b/SSL/src/DataProcessors/ТранспортСообщенийОбменаCOM/Forms/ФормаАутентификации/Module.bsl @@ -1,5 +1,5 @@ /////////////////////////////////////////////////////////////////////////////////////////////////////// -// Copyright (c) 2024, ООО 1С-Софт +// Copyright (c) 2025, ООО 1С-Софт // Все права защищены. Эта программа и сопроводительные материалы предоставляются // в соответствии с условиями лицензии Attribution 4.0 International (CC BY 4.0) // Текст лицензии доступен по ссылке: diff --git a/SSL/src/DataProcessors/ТранспортСообщенийОбменаCOM/Forms/ФормаНастройки/Module.bsl b/SSL/src/DataProcessors/ТранспортСообщенийОбменаCOM/Forms/ФормаНастройки/Module.bsl index 84014ffcf..6e2c904a3 100644 --- a/SSL/src/DataProcessors/ТранспортСообщенийОбменаCOM/Forms/ФормаНастройки/Module.bsl +++ b/SSL/src/DataProcessors/ТранспортСообщенийОбменаCOM/Forms/ФормаНастройки/Module.bsl @@ -1,5 +1,5 @@ /////////////////////////////////////////////////////////////////////////////////////////////////////// -// Copyright (c) 2024, ООО 1С-Софт +// Copyright (c) 2025, ООО 1С-Софт // Все права защищены. Эта программа и сопроводительные материалы предоставляются // в соответствии с условиями лицензии Attribution 4.0 International (CC BY 4.0) // Текст лицензии доступен по ссылке: diff --git a/SSL/src/DataProcessors/ТранспортСообщенийОбменаCOM/Help/ru.html b/SSL/src/DataProcessors/ТранспортСообщенийОбменаCOM/Help/ru.html index 695aaa0eb..cf90c60f6 100644 --- a/SSL/src/DataProcessors/ТранспортСообщенийОбменаCOM/Help/ru.html +++ b/SSL/src/DataProcessors/ТранспортСообщенийОбменаCOM/Help/ru.html @@ -1,10 +1,10 @@ <!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.0 Transitional//EN"><html><head><meta content="text/html;charset=utf-8" http-equiv="content-type"></meta><link rel="stylesheet" type="text/css" href="v8help://service_book/service_style"></link><meta name="GENERATOR" content="MSHTML 11.00.10570.1001"></meta></head><body> -<p>Данный вариант подключения рекомендуется в том случае, если другая программа находится на том же компьютере, что и эта программа, или обе программы расположены в одной локальной сети (в одном офисе).</p> -<ul><li>С помощью переключателя выберите вариант информационной базы: -<ul><li><strong>Файловая база корреспондент</strong> +<p>Данный вариант подключения рекомендуется в том случае, если другое приложение находится на том же компьютере, что и это приложение, или оба приложения расположены в одной локальной сети (в одном офисе).</p> +<ul><li>С помощью переключателя выберите вариант приложения: +<ul><li><strong>Файловая база-корреспондент. </strong>Далее <ul><li>Выберите <strong>Каталог информационной базы</strong>.</li> </ul></li> -<li><strong>Клиент серверная база-корреспондент </strong>  +<li><strong>Клиент серверная база-корреспондент. </strong>Далее: <ul><li>Введите <strong>Имя сервера</strong>;</li> <li>Введите <strong>Имя информационной базы на сервере</strong>.</li> </ul></li> diff --git a/SSL/src/DataProcessors/ТранспортСообщенийОбменаCOM/ManagerModule.bsl b/SSL/src/DataProcessors/ТранспортСообщенийОбменаCOM/ManagerModule.bsl index af06ff81f..e70934217 100644 --- a/SSL/src/DataProcessors/ТранспортСообщенийОбменаCOM/ManagerModule.bsl +++ b/SSL/src/DataProcessors/ТранспортСообщенийОбменаCOM/ManagerModule.bsl @@ -1,5 +1,5 @@ /////////////////////////////////////////////////////////////////////////////////////////////////////// -// Copyright (c) 2024, ООО 1С-Софт +// Copyright (c) 2025, ООО 1С-Софт // Все права защищены. Эта программа и сопроводительные материалы предоставляются // в соответствии с условиями лицензии Attribution 4.0 International (CC BY 4.0) // Текст лицензии доступен по ссылке: diff --git a/SSL/src/DataProcessors/ТранспортСообщенийОбменаCOM/ObjectModule.bsl b/SSL/src/DataProcessors/ТранспортСообщенийОбменаCOM/ObjectModule.bsl index 4fbcb2745..ebc7ac304 100644 --- a/SSL/src/DataProcessors/ТранспортСообщенийОбменаCOM/ObjectModule.bsl +++ b/SSL/src/DataProcessors/ТранспортСообщенийОбменаCOM/ObjectModule.bsl @@ -1,5 +1,5 @@ /////////////////////////////////////////////////////////////////////////////////////////////////////// -// Copyright (c) 2024, ООО 1С-Софт +// Copyright (c) 2025, ООО 1С-Софт // Все права защищены. Эта программа и сопроводительные материалы предоставляются // в соответствии с условиями лицензии Attribution 4.0 International (CC BY 4.0) // Текст лицензии доступен по ссылке: diff --git a/SSL/src/DataProcessors/ТранспортСообщенийОбменаEMAIL/Forms/Форма/Module.bsl b/SSL/src/DataProcessors/ТранспортСообщенийОбменаEMAIL/Forms/Форма/Module.bsl index 556f9cdd3..0d039b0d3 100644 --- a/SSL/src/DataProcessors/ТранспортСообщенийОбменаEMAIL/Forms/Форма/Module.bsl +++ b/SSL/src/DataProcessors/ТранспортСообщенийОбменаEMAIL/Forms/Форма/Module.bsl @@ -1,5 +1,5 @@ /////////////////////////////////////////////////////////////////////////////////////////////////////// -// Copyright (c) 2024, ООО 1С-Софт +// Copyright (c) 2025, ООО 1С-Софт // Все права защищены. Эта программа и сопроводительные материалы предоставляются // в соответствии с условиями лицензии Attribution 4.0 International (CC BY 4.0) // Текст лицензии доступен по ссылке: diff --git a/SSL/src/DataProcessors/ТранспортСообщенийОбменаEMAIL/Forms/ФормаНастройки/Module.bsl b/SSL/src/DataProcessors/ТранспортСообщенийОбменаEMAIL/Forms/ФормаНастройки/Module.bsl index bfcfb32f8..6b047e4a1 100644 --- a/SSL/src/DataProcessors/ТранспортСообщенийОбменаEMAIL/Forms/ФормаНастройки/Module.bsl +++ b/SSL/src/DataProcessors/ТранспортСообщенийОбменаEMAIL/Forms/ФормаНастройки/Module.bsl @@ -1,5 +1,5 @@ /////////////////////////////////////////////////////////////////////////////////////////////////////// -// Copyright (c) 2024, ООО 1С-Софт +// Copyright (c) 2025, ООО 1С-Софт // Все права защищены. Эта программа и сопроводительные материалы предоставляются // в соответствии с условиями лицензии Attribution 4.0 International (CC BY 4.0) // Текст лицензии доступен по ссылке: diff --git a/SSL/src/DataProcessors/ТранспортСообщенийОбменаEMAIL/Help/ru.html b/SSL/src/DataProcessors/ТранспортСообщенийОбменаEMAIL/Help/ru.html index 8fe63ee7c..f099b866a 100644 --- a/SSL/src/DataProcessors/ТранспортСообщенийОбменаEMAIL/Help/ru.html +++ b/SSL/src/DataProcessors/ТранспортСообщенийОбменаEMAIL/Help/ru.html @@ -1,8 +1,8 @@ <!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.0 Transitional//EN"><html><head><meta content="text/html;charset=utf-8" http-equiv="content-type"></meta><link rel="stylesheet" type="text/css" href="v8help://service_book/service_style"></link><meta name="GENERATOR" content="MSHTML 11.00.10570.1001"></meta></head><body> -<p>В случае если к другой программе нет возможности прямого подключения по локальной сети или через Интернет (веб-сервисы), рекомендуется использовать другие каналы связи, например <strong>Электронная почта</strong>. При этом программы, между которыми настроена синхронизация данных, могут работать полностью автономно друг от друга и в разное время. Такой вариант подходит не только для синхронизации данных с программами, расположенными в других сетях (офисах), но и для программ в одной сети.</p> -<p>При настройке синхронизации будет сформирован файл(ы) с настройками подключения (*.xml и *.json). В программе-корреспонденте при выборе типа подключения, необходимо выбрать опцию <strong>Продолжение настройки</strong>, выбрать необходимый тип подключения и загрузить файл с настройками подключения</p> +<p>В случае если к другому приложению нет возможности прямого подключения по локальной сети или через Интернет (веб-сервисы), рекомендуется использовать другие каналы связи, например <strong>Электронная почта</strong>. При этом приложения, между которыми настроена синхронизация данных, могут работать полностью автономно друг от друга и в разное время. Такой вариант подходит не только для синхронизации данных с приложениями, расположенными в других сетях (офисах), но и для приложений в одной сети.</p> +<p>При настройке синхронизации будет сформирован файл(ы) с настройками подключения (*.xml и *.json). В приложении-корреспонденте при выборе типа подключения необходимо выбрать опцию <strong>Продолжение настройки</strong>, выбрать необходимый тип подключения и загрузить файл с настройками подключения. Далее:</p> <ul><li>В поле <strong>Учетная запись электронной почты</strong> выберите элемент из списка или создайте новый.</li> <li>Укажите <strong>Допустимый размер вложения письма</strong>, для того чтобы ограничить объем пересылаемого сообщения.</li> -<li>Включите флажок <strong>Сжимать отправляемые данные в архив</strong> , для того чтобы ограничить размер отправляемого сообщения.</li> -<li>Введите <strong>Пароль</strong> архива для сжатия и распаковки архива сообщения обмена. Подразумевается, что пароль сжатия в программе-источнике и пароль распаковки в программе-приемнике должны быть одинаковыми для пары обменивающихся программ.</li> +<li>Включите флажок <strong>Сжимать отправляемые данные в архив</strong>, для того чтобы ограничить размер отправляемого сообщения.</li> +<li>Введите <strong>Пароль</strong> архива для сжатия и распаковки архива сообщения обмена. Подразумевается, что пароль сжатия в приложении-источнике и пароль распаковки в приложении-приемнике должны быть одинаковыми для пары обменивающихся приложений.</li> </ul><p> </p></body></html> \ No newline at end of file diff --git a/SSL/src/DataProcessors/ТранспортСообщенийОбменаEMAIL/ManagerModule.bsl b/SSL/src/DataProcessors/ТранспортСообщенийОбменаEMAIL/ManagerModule.bsl index a6a07f54c..3d53a0385 100644 --- a/SSL/src/DataProcessors/ТранспортСообщенийОбменаEMAIL/ManagerModule.bsl +++ b/SSL/src/DataProcessors/ТранспортСообщенийОбменаEMAIL/ManagerModule.bsl @@ -1,5 +1,5 @@ /////////////////////////////////////////////////////////////////////////////////////////////////////// -// Copyright (c) 2024, ООО 1С-Софт +// Copyright (c) 2025, ООО 1С-Софт // Все права защищены. Эта программа и сопроводительные материалы предоставляются // в соответствии с условиями лицензии Attribution 4.0 International (CC BY 4.0) // Текст лицензии доступен по ссылке: @@ -57,7 +57,7 @@ Если ЗначениеЗаполнено(НастройкиТранспорта.УчетнаяЗапись) Тогда - СпрУчетнаязапись = НастройкиТранспорта.УчетнаяЗапись; + СпрУчетнаяЗапись = НастройкиТранспорта.УчетнаяЗапись; УчетнаяЗапись = Новый Структура; @@ -67,7 +67,7 @@ УчетнаяЗапись.Вставить("PredefinedDataName", СпрУчетнаяЗапись.ИмяПредопределенныхДанных); Словарь = СловарьДляУчетнойЗаписи(); - Тип = ТипЗнч(СпрУчетнаязапись); + Тип = ТипЗнч(СпрУчетнаяЗапись); МетаданныеСправочника = Метаданные.НайтиПоТипу(Тип); Для Каждого Реквизит Из МетаданныеСправочника.Реквизиты Цикл @@ -79,7 +79,7 @@ КонецЕсли; КонецЕсли; - Значение = СпрУчетнаязапись[Реквизит.Имя]; + Значение = СпрУчетнаяЗапись[Реквизит.Имя]; Если ТипЗнч(Значение) <> Тип("Число") Или ТипЗнч(Значение) <> Тип("Строка") Или ТипЗнч(Значение) <> Тип("Дата") diff --git a/SSL/src/DataProcessors/ТранспортСообщенийОбменаEMAIL/ObjectModule.bsl b/SSL/src/DataProcessors/ТранспортСообщенийОбменаEMAIL/ObjectModule.bsl index 166c75385..f3265de7d 100644 --- a/SSL/src/DataProcessors/ТранспортСообщенийОбменаEMAIL/ObjectModule.bsl +++ b/SSL/src/DataProcessors/ТранспортСообщенийОбменаEMAIL/ObjectModule.bsl @@ -1,5 +1,5 @@ /////////////////////////////////////////////////////////////////////////////////////////////////////// -// Copyright (c) 2024, ООО 1С-Софт +// Copyright (c) 2025, ООО 1С-Софт // Все права защищены. Эта программа и сопроводительные материалы предоставляются // в соответствии с условиями лицензии Attribution 4.0 International (CC BY 4.0) // Текст лицензии доступен по ссылке: diff --git a/SSL/src/DataProcessors/ТранспортСообщенийОбменаESB1C/Forms/Форма/Module.bsl b/SSL/src/DataProcessors/ТранспортСообщенийОбменаESB1C/Forms/Форма/Module.bsl index 556f9cdd3..0d039b0d3 100644 --- a/SSL/src/DataProcessors/ТранспортСообщенийОбменаESB1C/Forms/Форма/Module.bsl +++ b/SSL/src/DataProcessors/ТранспортСообщенийОбменаESB1C/Forms/Форма/Module.bsl @@ -1,5 +1,5 @@ /////////////////////////////////////////////////////////////////////////////////////////////////////// -// Copyright (c) 2024, ООО 1С-Софт +// Copyright (c) 2025, ООО 1С-Софт // Все права защищены. Эта программа и сопроводительные материалы предоставляются // в соответствии с условиями лицензии Attribution 4.0 International (CC BY 4.0) // Текст лицензии доступен по ссылке: diff --git a/SSL/src/DataProcessors/ТранспортСообщенийОбменаESB1C/Forms/ФормаНастроекСервисовИнтеграции/Form.form b/SSL/src/DataProcessors/ТранспортСообщенийОбменаESB1C/Forms/ФормаНастроекСервисовИнтеграции/Form.form new file mode 100644 index 000000000..3e80cba9a --- /dev/null +++ b/SSL/src/DataProcessors/ТранспортСообщенийОбменаESB1C/Forms/ФормаНастроекСервисовИнтеграции/Form.form @@ -0,0 +1,535 @@ +<?xml version="1.0" encoding="UTF-8"?> +<form:Form xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns:form="http://g5.1c.ru/v8/dt/form"> + <title> + <key>ru</key> + <value>Настройки сервиса интеграции</value> + + + НаименованиеСервиса + 7 + + <key>ru</key> + <value>Наименование сервиса</value> + + true + true + + true + + + НаименованиеСервиса + + + НаименованиеСервисаРасширеннаяПодсказка + 9 + Label + true + true + + Left + + + + НаименованиеСервисаКонтекстноеМеню + 8 + true + + InputField + true + Enter + true + Left + true + + true + true + true + true + true + Normal + + + + ИмяПользователя + 4 + + <key>ru</key> + <value>Имя пользователя</value> + + true + true + + true + + + ИмяПользователя + + + ИмяПользователяРасширеннаяПодсказка + 6 + Label + true + true + + Left + + + + ИмяПользователяКонтекстноеМеню + 5 + true + + InputField + Enter + true + Left + true + + true + true + true + true + true + Normal + + + + ГруппаНастройкиСервиса + 22 + + АдресВнешнегоСервисаИнтеграции + 1 + + <key>ru</key> + <value>Адрес</value> + + true + true + + true + + + АдресВнешнегоСервисаИнтеграции + + + АдресВнешнегоСервисаИнтеграцииРасширеннаяПодсказка + 3 + Label + true + true + + Left + + + + АдресВнешнегоСервисаИнтеграцииКонтекстноеМеню + 2 + true + + InputField + Enter + true + Left + true + + true + true + true + true + true + Normal + + + + ИмяПользователяВнешнегоСервисаИнтеграции + 13 + + <key>ru</key> + <value>Имя пользователя</value> + + true + true + + true + + + ИмяПользователяВнешнегоСервисаИнтеграции + + + ИмяПользователяВнешнегоСервисаИнтеграцииРасширеннаяПодсказка + 15 + Label + true + true + + Left + + + + ИмяПользователяВнешнегоСервисаИнтеграцииКонтекстноеМеню + 14 + true + + InputField + Enter + true + Left + true + + true + true + true + true + true + Normal + + + + ПарольПользователяВнешнегоСервисаИнтеграции + 10 + + <key>ru</key> + <value>Пароль пользователя</value> + + true + true + + true + + + ПарольПользователяВнешнегоСервисаИнтеграции + + + ПарольПользователяВнешнегоСервисаИнтеграцииРасширеннаяПодсказка + 12 + Label + true + true + + Left + + + + ПарольПользователяВнешнегоСервисаИнтеграцииКонтекстноеМеню + 11 + true + + InputField + Enter + true + Left + true + + true + true + true + true + true + true + Normal + + + true + true + + true + + + <key>ru</key> + <value>Настройки внешнего сервиса интеграции</value> + + + ГруппаНастройкиСервисаРасширеннаяПодсказка + 23 + Label + true + true + + Left + + + UsualGroup + + Vertical + StrongSeparation + true + true + auto + Auto + Auto + + + Bottom + true + + FormCommandBar + -1 + + СохранитьНастройки + 16 + + <key>ru</key> + <value>Сохранить</value> + + true + true + + true + + + СохранитьНастройкиРасширеннаяПодсказка + 17 + Label + true + true + + Left + + + Form.Command.СохранитьНастройки + Auto + true + true + true + UserCmds + Auto + + + ФормаЗакрыть + 18 + + <key>ru</key> + <value>Отмена</value> + + true + true + + true + + + ФормаЗакрытьРасширеннаяПодсказка + 19 + Label + true + true + + Left + + + Form.Command.Отмена + Normal + Auto + true + true + UserCmds + Auto + + + ФормаПомощь + 20 + true + true + + true + + + ФормаПомощьРасширеннаяПодсказка + 21 + Label + true + true + + Left + + + Form.StandardCommand.Help + Normal + Auto + true + true + UserCmds + Auto + InCommandBar + + Right + + + OnCreateAtServer + ПриСозданииНаСервере + + LockOwner + true + true + Vertical + true + true + true + auto + true + + Объект + 1 + + DataProcessorObject.ТранспортСообщенийОбменаESB1C + + + true + + + true + +
                  true
                  +
                  + + НаименованиеСервиса + + <key>ru</key> + <value>Наименование сервиса</value> + + 2 + + String + + + + true + + + true + + true + + + АдресВнешнегоСервисаИнтеграции + + <key>ru</key> + <value>Адрес</value> + + 3 + + String + + + + true + + + true + + true + + + ИмяПользователяВнешнегоСервисаИнтеграции + + <key>ru</key> + <value>Имя пользователя</value> + + 4 + + String + + + + true + + + true + + true + + + ПарольПользователяВнешнегоСервисаИнтеграции + + <key>ru</key> + <value>Пароль пользователя</value> + + 5 + + String + + + + true + + + true + + true + + + ИмяПользователя + + <key>ru</key> + <value>Имя пользователя</value> + + 6 + + String + + + + true + + + true + + true + + + СохранитьНастройки + + <key>ru</key> + <value>Сохранить настройки</value> + + 1 + + ru + Сохранить настройки + + + true + + + + СохранитьНастройки + + + Auto + Auto + + + Отмена + + <key>ru</key> + <value>Отмена</value> + + 2 + + ru + Отмена + + + true + + + + Отмена + + + Auto + Auto + + + ИмяСервисаИнтеграции + + String + + + true + + + + + + + diff --git a/SSL/src/DataProcessors/ТранспортСообщенийОбменаESB1C/Forms/ФормаНастроекСервисовИнтеграции/Help/ru.html b/SSL/src/DataProcessors/ТранспортСообщенийОбменаESB1C/Forms/ФормаНастроекСервисовИнтеграции/Help/ru.html new file mode 100644 index 000000000..088856ed7 --- /dev/null +++ b/SSL/src/DataProcessors/ТранспортСообщенийОбменаESB1C/Forms/ФормаНастроекСервисовИнтеграции/Help/ru.html @@ -0,0 +1,16 @@ + +

                  Настройки сервиса интеграции

                  +

                  Форма позволяет установить настройки сервиса интеграции:

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

                  Настройки внешнего сервиса интеграции

                  +
                  Адрес 
                  +
                  URL-адрес, по которому доступен сервис интеграции.
                  +
                  Имя пользователя 
                  +
                  Имя пользователя, под которым выполняется соединение с сервисом интеграции.
                  +
                  +
                  Пароль пользователя 
                  +
                  Пароль пользователя, под которым выполняется соединение с сервисом интеграции.

                  При нажатии кнопки OK настройки будут применены и форма настроек будет закрыта.

                  \ No newline at end of file diff --git a/SSL/src/DataProcessors/ТранспортСообщенийОбменаESB1C/Forms/ФормаНастроекСервисовИнтеграции/Module.bsl b/SSL/src/DataProcessors/ТранспортСообщенийОбменаESB1C/Forms/ФормаНастроекСервисовИнтеграции/Module.bsl new file mode 100644 index 000000000..e05db3e5e --- /dev/null +++ b/SSL/src/DataProcessors/ТранспортСообщенийОбменаESB1C/Forms/ФормаНастроекСервисовИнтеграции/Module.bsl @@ -0,0 +1,78 @@ +/////////////////////////////////////////////////////////////////////////////////////////////////////// +// Copyright (c) 2025, ООО 1С-Софт +// Все права защищены. Эта программа и сопроводительные материалы предоставляются +// в соответствии с условиями лицензии Attribution 4.0 International (CC BY 4.0) +// Текст лицензии доступен по ссылке: +// https://creativecommons.org/licenses/by/4.0/legalcode +/////////////////////////////////////////////////////////////////////////////////////////////////////// + +#Область ОбработчикиСобытийФормы + +&НаСервере +Процедура ПриСозданииНаСервере(Отказ, СтандартнаяОбработка) + + Если Не ЗначениеЗаполнено(Параметры.ИмяСервисаИнтеграции) Тогда + + ВызватьИсключение НСтр("ru = 'Эта форма не предназначена для непосредственного открытия.'", + ОбщегоНазначения.КодОсновногоЯзыка()); + + КонецЕсли; + + МетаданныеСервисыИнтеграции = Метаданные.СервисыИнтеграции[Параметры.ИмяСервисаИнтеграции]; + НастройкиСервисаИнтеграции = СервисыИнтеграции[Параметры.ИмяСервисаИнтеграции].ПолучитьНастройки(); + НаименованиеСервиса = МетаданныеСервисыИнтеграции.Представление(); + + Если НастройкиСервисаИнтеграции.АдресВнешнегоСервисаИнтеграции = "" Тогда + АдресВнешнегоСервисаИнтеграции = МетаданныеСервисыИнтеграции.АдресВнешнегоСервисаИнтеграции; + Иначе + АдресВнешнегоСервисаИнтеграции = НастройкиСервисаИнтеграции.АдресВнешнегоСервисаИнтеграции; + КонецЕсли; + + ИмяПользователяВнешнегоСервисаИнтеграции = НастройкиСервисаИнтеграции.ИмяПользователяВнешнегоСервисаИнтеграции; + ПарольПользователяВнешнегоСервисаИнтеграции = НастройкиСервисаИнтеграции.ПарольПользователяВнешнегоСервисаИнтеграции; + ИмяПользователя = НастройкиСервисаИнтеграции.ИмяПользователя; + + Для Каждого Пользователь Из ПользователиИнформационнойБазы.ПолучитьПользователей() Цикл + Элементы.ИмяПользователя.СписокВыбора.Добавить(Пользователь.Имя); + КонецЦикла; + +КонецПроцедуры + +#КонецОбласти + +#Область ОбработчикиКомандФормы + +&НаКлиенте +Процедура СохранитьНастройки(Команда) + + СохранитьНастройкиНаСервере(); + + Закрыть(КодВозвратаДиалога.ОК); + +КонецПроцедуры + +&НаКлиенте +Процедура Отмена(Команда) + + Закрыть(КодВозвратаДиалога.Отмена); + +КонецПроцедуры + +#КонецОбласти + +#Область СлужебныеПроцедурыИФункции + +&НаСервере +Процедура СохранитьНастройкиНаСервере() + + НастройкиСервисаИнтеграции = Новый НастройкиСервисаИнтеграции; + НастройкиСервисаИнтеграции.АдресВнешнегоСервисаИнтеграции = АдресВнешнегоСервисаИнтеграции; + НастройкиСервисаИнтеграции.ИмяПользователяВнешнегоСервисаИнтеграции = ИмяПользователяВнешнегоСервисаИнтеграции; + НастройкиСервисаИнтеграции.ПарольПользователяВнешнегоСервисаИнтеграции = ПарольПользователяВнешнегоСервисаИнтеграции; + НастройкиСервисаИнтеграции.ИмяПользователя = ИмяПользователя; + + СервисыИнтеграции[Параметры.ИмяСервисаИнтеграции].УстановитьНастройки(НастройкиСервисаИнтеграции); + +КонецПроцедуры + +#КонецОбласти \ No newline at end of file diff --git a/SSL/src/DataProcessors/ТранспортСообщенийОбменаESB1C/Forms/ФормаНастройки/Form.form b/SSL/src/DataProcessors/ТранспортСообщенийОбменаESB1C/Forms/ФормаНастройки/Form.form index be22826d3..76d30f630 100644 --- a/SSL/src/DataProcessors/ТранспортСообщенийОбменаESB1C/Forms/ФормаНастройки/Form.form +++ b/SSL/src/DataProcessors/ТранспортСообщенийОбменаESB1C/Forms/ФормаНастройки/Form.form @@ -92,7 +92,7 @@ <key>ru</key> - <value>ПредварительныеНастройки</value> + <value>Предварительные настройки</value> true diff --git a/SSL/src/DataProcessors/ТранспортСообщенийОбменаESB1C/Forms/ФормаНастройки/Module.bsl b/SSL/src/DataProcessors/ТранспортСообщенийОбменаESB1C/Forms/ФормаНастройки/Module.bsl index 7597208ae..0f17a4147 100644 --- a/SSL/src/DataProcessors/ТранспортСообщенийОбменаESB1C/Forms/ФормаНастройки/Module.bsl +++ b/SSL/src/DataProcessors/ТранспортСообщенийОбменаESB1C/Forms/ФормаНастройки/Module.bsl @@ -1,5 +1,5 @@ /////////////////////////////////////////////////////////////////////////////////////////////////////// -// Copyright (c) 2024, ООО 1С-Софт +// Copyright (c) 2025, ООО 1С-Софт // Все права защищены. Эта программа и сопроводительные материалы предоставляются // в соответствии с условиями лицензии Attribution 4.0 International (CC BY 4.0) // Текст лицензии доступен по ссылке: @@ -42,8 +42,7 @@ Если НавигационнаяСсылкаФорматированнойСтроки = "СервисыИнтеграции" Тогда - ПодключитьВнешнююОбработкуНаСервере(); - ОткрытьФорму("ВнешняяОбработка.StandardIntegrationServicesManagment.Форма"); + ОткрытьФорму("Обработка.ТранспортСообщенийОбменаESB1C.Форма.ФормаУправлениеСервисамиИнтеграции"); ИначеЕсли НавигационнаяСсылкаФорматированнойСтроки = "РегламентноеЗадание" Тогда @@ -53,16 +52,16 @@ ПараметрыФормы.Вставить("Действие", "Изменить"); ПараметрыФормы.Вставить("Идентификатор", ИдентификаторРегламентногоЗадания); - ИмяФормыРегламетногоЗадания = "Обработка.РегламентныеИФоновыеЗадания.Форма.РегламентноеЗадание"; - ОткрытьФорму(ИмяФормыРегламетногоЗадания, ПараметрыФормы, ЭтотОбъект); + ИмяФормыРегламентногоЗадания = "Обработка.РегламентныеИФоновыеЗадания.Форма.РегламентноеЗадание"; + ОткрытьФорму(ИмяФормыРегламентногоЗадания, ПараметрыФормы, ЭтотОбъект); Иначе ПараметрыФормы = Новый Структура; ПараметрыФормы.Вставить("Идентификатор", ИдентификаторРегламентногоЗадания); - ИмяФормыРегламетногоЗадания = "Обработка.ТранспортСообщенийОбменаESB1C.Форма.ФормаНастройкиРегламентногоЗадания"; - ОткрытьФорму(ИмяФормыРегламетногоЗадания, ПараметрыФормы, ЭтотОбъект); + ИмяФормыРегламентногоЗадания = "Обработка.ТранспортСообщенийОбменаESB1C.Форма.ФормаНастройкиРегламентногоЗадания"; + ОткрытьФорму(ИмяФормыРегламентногоЗадания, ПараметрыФормы, ЭтотОбъект); КонецЕсли; @@ -201,12 +200,5 @@ КонецПроцедуры -&НаСервере -Процедура ПодключитьВнешнююОбработкуНаСервере() - - ВнешниеОбработки.Подключить("v8res://mngbase/StandardIntegrationServicesManagment.epf", "StandardIntegrationServicesManagment", false); - -КонецПроцедуры - #КонецОбласти diff --git a/SSL/src/DataProcessors/ТранспортСообщенийОбменаESB1C/Forms/ФормаНастройкиРегламентногоЗадания/Module.bsl b/SSL/src/DataProcessors/ТранспортСообщенийОбменаESB1C/Forms/ФормаНастройкиРегламентногоЗадания/Module.bsl index 6f0b9af1d..f53fe7ccd 100644 --- a/SSL/src/DataProcessors/ТранспортСообщенийОбменаESB1C/Forms/ФормаНастройкиРегламентногоЗадания/Module.bsl +++ b/SSL/src/DataProcessors/ТранспортСообщенийОбменаESB1C/Forms/ФормаНастройкиРегламентногоЗадания/Module.bsl @@ -1,5 +1,5 @@ /////////////////////////////////////////////////////////////////////////////////////////////////////// -// Copyright (c) 2024, ООО 1С-Софт +// Copyright (c) 2025, ООО 1С-Софт // Все права защищены. Эта программа и сопроводительные материалы предоставляются // в соответствии с условиями лицензии Attribution 4.0 International (CC BY 4.0) // Текст лицензии доступен по ссылке: diff --git a/SSL/src/DataProcessors/ТранспортСообщенийОбменаESB1C/Forms/ФормаУправлениеСервисамиИнтеграции/Form.form b/SSL/src/DataProcessors/ТранспортСообщенийОбменаESB1C/Forms/ФормаУправлениеСервисамиИнтеграции/Form.form new file mode 100644 index 000000000..e5172460f --- /dev/null +++ b/SSL/src/DataProcessors/ТранспортСообщенийОбменаESB1C/Forms/ФормаУправлениеСервисамиИнтеграции/Form.form @@ -0,0 +1,770 @@ + + + + <key>ru</key> + <value>Управление сервисами интеграции</value> + + + СервисыИнтеграции + 1 + + <key>ru</key> + <value>Список сервисов интеграции</value> + + true + true + + true + + + СписокСервисовИнтеграции + + None + Add + Change + Copy + Delete + EndEdit + + СервисыИнтеграцииИмяАктивенИАдрес + 39 + + СервисыИнтеграцииАктивен + 17 + + <key>ru</key> + <value>Активен</value> + + true + true + + true + + + СписокСервисовИнтеграции.Активен + + + OnChange + СервисыИнтеграцииАктивенПриИзменении + + + СервисыИнтеграцииАктивенРасширеннаяПодсказка + 19 + Label + true + true + + Left + + + + СервисыИнтеграцииАктивенКонтекстноеМеню + 18 + true + + CheckBoxField + Auto + true + + StdPicture.CheckAll + + Left + true + + + + СервисыИнтеграцииИмяИАдрес + 35 + + СервисыИнтеграцииИмя + 14 + + <key>ru</key> + <value>Имя</value> + + true + true + + true + + + СписокСервисовИнтеграции.Представление + + + СервисыИнтеграцииИмяРасширеннаяПодсказка + 16 + Label + true + true + + Left + + + + СервисыИнтеграцииИмяКонтекстноеМеню + 15 + true + + InputField + Auto + true + Left + true + + true + true + true + true + true + true + Normal + + + + СервисыИнтеграцииАдресВнешнегоСервисаИнтеграции + 20 + + <key>ru</key> + <value>Адрес внешнего сервиса интеграции</value> + + true + true + + true + + + СписокСервисовИнтеграции.АдресВнешнегоСервисаИнтеграции + + + СервисыИнтеграцииАдресВнешнегоСервисаИнтеграцииРасширеннаяПодсказка + 22 + Label + true + true + + Left + + + + СервисыИнтеграцииАдресВнешнегоСервисаИнтеграцииКонтекстноеМеню + 21 + true + + InputField + Auto + true + + StdPicture.GetURL + + Left + true + + true + true + true + true + true + true + Normal + + + true + true + + true + + + <key>ru</key> + <value>Сервисы интеграции имя и адрес</value> + + + СервисыИнтеграцииИмяИАдресРасширеннаяПодсказка + 36 + Label + true + true + + Left + + + ColumnGroup + + Vertical + auto + true + + + true + true + + true + + + <key>ru</key> + <value>Сервисы интеграции имя активен и адрес</value> + + + СервисыИнтеграцииИмяАктивенИАдресРасширеннаяПодсказка + 40 + Label + true + true + + Left + + + ColumnGroup + + auto + true + + + Top + + СервисыИнтеграцииКоманднаяПанель + 3 + + ФормаИзменитьНастройки + 27 + + <key>ru</key> + <value>Редактировать</value> + + true + true + + true + + + ФормаИзменитьНастройкиРасширеннаяПодсказка + 28 + Label + true + true + + Left + + + Form.Command.ИзменитьНастройки + Normal + Auto + true + true + UserCmds + Auto + InCommandBar + + + СервисыИнтеграцииКоманды + 37 + + ФормаВключитьАктивность + 23 + + <key>ru</key> + <value>Включить все</value> + + true + true + + true + + + ФормаВключитьАктивностьРасширеннаяПодсказка + 24 + Label + true + true + + Left + + + Form.Command.УстановитьАктивность + Normal + Auto + true + true + UserCmds + Auto + + + ФормаСнятьАктивность + 25 + + <key>ru</key> + <value>Выключить все</value> + + true + true + + true + + + ФормаСнятьАктивностьРасширеннаяПодсказка + 26 + Label + true + true + + Left + + + Form.Command.СнятьАктивность + Normal + Auto + true + true + UserCmds + Auto + + true + true + + true + + + <key>ru</key> + <value>Сервисы интеграции команды</value> + + + СервисыИнтеграцииКомандыРасширеннаяПодсказка + 38 + Label + true + true + + Left + + + + Compact + + + Left + true + + + Selection + СервисыИнтеграцииВыбор + + + BeforeRowChange + СервисыИнтеграцииПередНачаломИзменения + + + СервисыИнтеграцииСтрокаПоиска + 5 + + СервисыИнтеграцииСтрокаПоискаРасширеннаяПодсказка + 7 + Label + true + true + + Left + + + + СервисыИнтеграцииСтрокаПоискаКонтекстноеМеню + 6 + true + + СервисыИнтеграции + + true + + + + СервисыИнтеграцииСостояниеПросмотра + 8 + + СервисыИнтеграцииСостояниеПросмотраРасширеннаяПодсказка + 10 + Label + true + true + + Left + + + + СервисыИнтеграцииСостояниеПросмотраКонтекстноеМеню + 9 + true + + ViewStatusAddition + СервисыИнтеграции + + true + + + + СервисыИнтеграцииУправлениеПоиском + 11 + + СервисыИнтеграцииУправлениеПоискомРасширеннаяПодсказка + 13 + Label + true + true + + Left + + + + СервисыИнтеграцииУправлениеПоискомКонтекстноеМеню + 12 + true + + SearchControlAddition + СервисыИнтеграции + + true + + + + СервисыИнтеграцииРасширеннаяПодсказка + 4 + Label + true + true + + Left + + + + СервисыИнтеграцииКонтекстноеМеню + 2 + + СервисыИнтеграцииКонтекстноеМенюИзменитьНастройки + 33 + + <key>ru</key> + <value>Редактировать</value> + + true + true + + true + + + СервисыИнтеграцииКонтекстноеМенюИзменитьНастройкиРасширеннаяПодсказка + 34 + Label + true + true + + Left + + + Form.Command.ИзменитьНастройки + Normal + Auto + true + true + UserCmds + Auto + + + СервисыИнтеграцииКонтекстноеМенюУстановитьАктивность + 29 + + <key>ru</key> + <value>Установить активность</value> + + true + true + + true + + + СервисыИнтеграцииКонтекстноеМенюУстановитьАктивностьРасширеннаяПодсказка + 30 + Label + true + true + + Left + + + Form.Command.УстановитьАктивность + Normal + Auto + true + true + UserCmds + Auto + + + СервисыИнтеграцииКонтекстноеМенюСнятьАктивность + 31 + + <key>ru</key> + <value>Снять активность</value> + + true + true + + true + + + СервисыИнтеграцииКонтекстноеМенюСнятьАктивностьРасширеннаяПодсказка + 32 + Label + true + true + + Left + + + Form.Command.СнятьАктивность + Normal + Auto + true + true + UserCmds + Auto + + true + + true + true + true + Row +
                  true
                  + 1 + 1 + AutoUse + AutoUse + true + true + false + false + Auto + Auto + true + true + AsFileRef + None + None + None + true + +
                  + Top + true + + FormCommandBar + -1 + Left + + + OnCreateAtServer + ПриСозданииНаСервере + + LockOwner + true + true + AlwaysHorizontal + true + true + true + auto + true + + Объект + 1 + + DataProcessorObject.ТранспортСообщенийОбменаESB1C + + + true + + + true + +
                  true
                  +
                  + + СписокСервисовИнтеграции + + <key>ru</key> + <value>Список сервисов интеграции</value> + + 2 + + ValueTable + + + true + + + true + + + Имя + 1 + + String + + + + true + + + true + + + + Активен + + <key>ru</key> + <value>Активен</value> + + 2 + + Boolean + + + true + + + true + + + + АдресВнешнегоСервисаИнтеграции + + <key>ru</key> + <value>Адрес внешнего сервиса интеграции</value> + + 3 + + String + + + + true + + + true + + + + Представление + + <key>ru</key> + <value>Имя</value> + + 4 + + String + + + + true + + + true + + + + + ПолноеИмяМетаданных + 3 + + String + + + + true + + + true + + + + УстановитьАктивность + + <key>ru</key> + <value>Установить активность</value> + + 1 + + ru + Установить активность на все сервисы + + + true + + + StdPicture.CheckAll + + + + УстановитьАктивность + + + Auto + Auto + + + СнятьАктивность + + <key>ru</key> + <value>Снять активность</value> + + 2 + + ru + Снять активность со всех сервисов + + + true + + + StdPicture.UncheckAll + + + + СнятьАктивность + + + Auto + Auto + + + ИзменитьНастройки + + <key>ru</key> + <value>Редактировать</value> + + 3 + + ru + Установить настройки + + + true + + F2 + + StdPicture.Change + + + + ИзменитьНастройки + + + TextPicture + + СервисыИнтеграции + + Auto + + + + + + +
                  diff --git a/SSL/src/DataProcessors/ТранспортСообщенийОбменаESB1C/Forms/ФормаУправлениеСервисамиИнтеграции/Help/ru.html b/SSL/src/DataProcessors/ТранспортСообщенийОбменаESB1C/Forms/ФормаУправлениеСервисамиИнтеграции/Help/ru.html new file mode 100644 index 000000000..98f171374 --- /dev/null +++ b/SSL/src/DataProcessors/ТранспортСообщенийОбменаESB1C/Forms/ФормаУправлениеСервисамиИнтеграции/Help/ru.html @@ -0,0 +1,15 @@ + +

                  Управление сервисами интеграции

                  +

                  В диалоге выполняется подключение и отключение сервисов интеграции, а также их настройки. Для запуска требуется наличие права "Администрирование данных".

                  +


                  +

                  В командной панели формы доступны следующие действия:

                  +


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

                  +

                  Изменить состояние активности выбранного сервиса можно с помощью флажка в колонке Активность, которое меняется нажатием левой кнопки мыши либо клавиши F2, если фокус установлен на флажке.

                  +


                  \ No newline at end of file diff --git a/SSL/src/DataProcessors/ТранспортСообщенийОбменаESB1C/Forms/ФормаУправлениеСервисамиИнтеграции/Module.bsl b/SSL/src/DataProcessors/ТранспортСообщенийОбменаESB1C/Forms/ФормаУправлениеСервисамиИнтеграции/Module.bsl new file mode 100644 index 000000000..a43065e31 --- /dev/null +++ b/SSL/src/DataProcessors/ТранспортСообщенийОбменаESB1C/Forms/ФормаУправлениеСервисамиИнтеграции/Module.bsl @@ -0,0 +1,156 @@ +/////////////////////////////////////////////////////////////////////////////////////////////////////// +// Copyright (c) 2025, ООО 1С-Софт +// Все права защищены. Эта программа и сопроводительные материалы предоставляются +// в соответствии с условиями лицензии Attribution 4.0 International (CC BY 4.0) +// Текст лицензии доступен по ссылке: +// https://creativecommons.org/licenses/by/4.0/legalcode +/////////////////////////////////////////////////////////////////////////////////////////////////////// + + +#Область ОбработчикиСобытийФормы + +&НаСервере +Процедура ПриСозданииНаСервере(Отказ, СтандартнаяОбработка) + + ПолноеИмяМетаданных = РеквизитФормыВЗначение("Объект").Метаданные().ПолноеИмя(); + + Для Каждого СервисИнтеграцииМетаданные Из Метаданные.СервисыИнтеграции Цикл + СервисИнтеграции = СписокСервисовИнтеграции.Добавить(); + СервисИнтеграции.Имя = СервисИнтеграцииМетаданные.Имя; + СервисИнтеграции.Представление = СервисИнтеграцииМетаданные.Представление(); + СервисИнтеграции.АдресВнешнегоСервисаИнтеграции = СервисИнтеграцииМетаданные.АдресВнешнегоСервисаИнтеграции; + КонецЦикла; + + ОбновитьСостояние(); + +КонецПроцедуры + +#КонецОбласти + +#Область ОбработчикиСобытийЭлементовТаблицыФормыСервисыИнтеграции + +&НаКлиенте +Процедура СервисыИнтеграцииВыбор(Элемент, ВыбраннаяСтрока, Поле, СтандартнаяОбработка) + + СтандартнаяОбработка = Ложь; + ОткрытьНастройкиСервисаИнтеграции(); + +КонецПроцедуры + +&НаКлиенте +Процедура СервисыИнтеграцииПередНачаломИзменения(Элемент, Отказ) + + Если Элемент.ТекущийЭлемент.Имя = "СервисыИнтеграцииАктивен" Тогда + Элемент.ТекущиеДанные.Активен = Не Элемент.ТекущиеДанные.Активен; + Иначе + Отказ = Истина; + ОткрытьНастройкиСервисаИнтеграции(); + КонецЕсли; + +КонецПроцедуры + +&НаКлиенте +Процедура СервисыИнтеграцииАктивенПриИзменении(Элемент) + + ТекущиеДанные = Элементы.СервисыИнтеграции.ТекущиеДанные; + + УстановитьАктивностьУСлужбыИнтеграции(ТекущиеДанные.Имя, ТекущиеДанные.Активен); + +КонецПроцедуры + +#КонецОбласти + +#Область ОбработчикиКомандФормы + +&НаКлиенте +Процедура УстановитьАктивность(Команда) + + УстановитьАктивностьНаСервере(Истина); + +КонецПроцедуры + +&НаКлиенте +Процедура СнятьАктивность(Команда) + + УстановитьАктивностьНаСервере(Ложь); + +КонецПроцедуры + +&НаКлиенте +Процедура ИзменитьНастройки(Команда) + + Если Элементы.СервисыИнтеграции.ТекущиеДанные = Неопределено Тогда + Возврат; + КонецЕсли; + + ОткрытьНастройкиСервисаИнтеграции(); + +КонецПроцедуры + +#КонецОбласти + +#Область СлужебныеПроцедурыИФункции + +&НаСервере +Процедура ОбновитьСостояние() + + Для Каждого СервисИнтеграции Из СписокСервисовИнтеграции Цикл + МенеджерСервисаИнтеграции = СервисыИнтеграции[СервисИнтеграции.Имя]; + МетаданныеСервисИнтеграции = Метаданные.СервисыИнтеграции[СервисИнтеграции.Имя]; + СервисИнтеграции.Активен = МенеджерСервисаИнтеграции.ПолучитьАктивность(); + НастройкиСервисаИнтеграции = МенеджерСервисаИнтеграции.ПолучитьНастройки(); + + Если НастройкиСервисаИнтеграции.АдресВнешнегоСервисаИнтеграции = "" Тогда + СервисИнтеграции.АдресВнешнегоСервисаИнтеграции = МетаданныеСервисИнтеграции.АдресВнешнегоСервисаИнтеграции; + Иначе + СервисИнтеграции.АдресВнешнегоСервисаИнтеграции = НастройкиСервисаИнтеграции.АдресВнешнегоСервисаИнтеграции; + КонецЕсли; + КонецЦикла; + +КонецПроцедуры + +&НаСервереБезКонтекста +Процедура УстановитьАктивностьУСлужбыИнтеграции(Знач Имя, Знач Активность) + + МенеджерСервисаИнтеграции = СервисыИнтеграции[Имя]; + МенеджерСервисаИнтеграции.УстановитьАктивность(Активность); + +КонецПроцедуры + +&НаСервере +Процедура УстановитьАктивностьНаСервере(Знач Активность) + + Для Каждого СтрокаТаблицы Из СписокСервисовИнтеграции Цикл + УстановитьАктивностьУСлужбыИнтеграции(СтрокаТаблицы.Имя, Активность); + КонецЦикла; + + ОбновитьСостояние(); + +КонецПроцедуры + +&НаКлиенте +Процедура ОткрытьНастройкиСервисаИнтеграции() + + ПараметрыФормы = Новый Структура; + ПараметрыФормы.Вставить("ИмяСервисаИнтеграции", Элементы.СервисыИнтеграции.ТекущиеДанные.Имя); + + ОписаниеОповещения = Новый ОписаниеОповещения("ЗавершениеЗакрытияФормы", ЭтотОбъект); + ОткрытьФорму(ПолноеИмяМетаданных + ".Форма.ФормаНастроекСервисовИнтеграции", + ПараметрыФормы, + ЭтотОбъект,,,, + ОписаниеОповещения); + +КонецПроцедуры + +&НаКлиенте +Процедура ЗавершениеЗакрытияФормы(Результат, ДополнительныеПараметры = Неопределено) Экспорт + + Если Результат = КодВозвратаДиалога.ОК Тогда + ОбновитьСостояние(); + КонецЕсли; + +КонецПроцедуры + +#КонецОбласти + + diff --git a/SSL/src/DataProcessors/ТранспортСообщенийОбменаESB1C/Help/ru.html b/SSL/src/DataProcessors/ТранспортСообщенийОбменаESB1C/Help/ru.html index 029e3f1a9..82fee45ea 100644 --- a/SSL/src/DataProcessors/ТранспортСообщенийОбменаESB1C/Help/ru.html +++ b/SSL/src/DataProcessors/ТранспортСообщенийОбменаESB1C/Help/ru.html @@ -1,4 +1,4 @@ - +

                  Для настройки подключения через 1С:Шина необходимо указать следующие параметры:

                  @@ -11,9 +11,9 @@

                  Перед настройка синхронизации в 1С:Предприятии необходимо настроить процесс интеграции в 1С:Шина. Подробную информацию о создании процесса интеграции можно посмотреть по ссылке.

                  Добавьте новый процесс интеграции, со схемой как на картинке ниже. (имена блоков могут отличаться от имен в примере)

                  -

                  Добавьте инфосистемы. Для каждого приложения (базы 1с) необходимо добавить отдельную инфосистему.

                  +

                  Для каждого приложения (базы 1с) необходимо добавить отдельную информационную систему.

                  -

                  Для каждой инфосистемы получите ключ API.

                  +

                  Для каждой информационной системы получите ключ API.

                  В конфигураторе базы 1с необходимо добавить новое расширение, а в нем новый сервис интеграции (это можно сделать и в основной конфигурации, если она снята с поддержки).

                  В сервис интеграции загрузить каналы, при помощи полученного ранее ключа API.

                  diff --git a/SSL/src/DataProcessors/ТранспортСообщенийОбменаESB1C/ManagerModule.bsl b/SSL/src/DataProcessors/ТранспортСообщенийОбменаESB1C/ManagerModule.bsl index a1bd89fc1..892c32886 100644 --- a/SSL/src/DataProcessors/ТранспортСообщенийОбменаESB1C/ManagerModule.bsl +++ b/SSL/src/DataProcessors/ТранспортСообщенийОбменаESB1C/ManagerModule.bsl @@ -1,5 +1,5 @@ /////////////////////////////////////////////////////////////////////////////////////////////////////// -// Copyright (c) 2024, ООО 1С-Софт +// Copyright (c) 2025, ООО 1С-Софт // Все права защищены. Эта программа и сопроводительные материалы предоставляются // в соответствии с условиями лицензии Attribution 4.0 International (CC BY 4.0) // Текст лицензии доступен по ссылке: @@ -14,6 +14,7 @@ // // Возвращаемое значение: // Структура - см. ТранспортСообщенийОбмена.СтруктураПараметровТранспорта +// Функция ПараметрыТранспорта() Экспорт Описание = НСтр("ru = 'Для подключения необходимо указать данные для подключения к шине.'"); @@ -77,10 +78,11 @@ // Возвращает имя (идентификатор) под которым файл будет записан во временном хранилище (регистр сведений СообщенияОбменаДанными) // // Параметры: -// КодОтправителя - Строка - Код отправителя +// КодОтправителя - Строка - код отправителя // // Возвращаемое значение: -// Строка - Имя файла +// Строка - имя файла +// Функция ИмяФайла(КодОтправителя) Экспорт Шаблон = "esb_1c_%1.xml"; diff --git a/SSL/src/DataProcessors/ТранспортСообщенийОбменаESB1C/ObjectModule.bsl b/SSL/src/DataProcessors/ТранспортСообщенийОбменаESB1C/ObjectModule.bsl index 387855bb4..0e52addc4 100644 --- a/SSL/src/DataProcessors/ТранспортСообщенийОбменаESB1C/ObjectModule.bsl +++ b/SSL/src/DataProcessors/ТранспортСообщенийОбменаESB1C/ObjectModule.bsl @@ -1,5 +1,5 @@ /////////////////////////////////////////////////////////////////////////////////////////////////////// -// Copyright (c) 2024, ООО 1С-Софт +// Copyright (c) 2025, ООО 1С-Софт // Все права защищены. Эта программа и сопроводительные материалы предоставляются // в соответствии с условиями лицензии Attribution 4.0 International (CC BY 4.0) // Текст лицензии доступен по ссылке: diff --git a/SSL/src/DataProcessors/ТранспортСообщенийОбменаESB1C/ТранспортСообщенийОбменаESB1C.mdo b/SSL/src/DataProcessors/ТранспортСообщенийОбменаESB1C/ТранспортСообщенийОбменаESB1C.mdo index 2f9f19310..d23bd3f3c 100644 --- a/SSL/src/DataProcessors/ТранспортСообщенийОбменаESB1C/ТранспортСообщенийОбменаESB1C.mdo +++ b/SSL/src/DataProcessors/ТранспортСообщенийОбменаESB1C/ТранспортСообщенийОбменаESB1C.mdo @@ -107,4 +107,32 @@ PersonalComputer MobileDevice + + ФормаУправлениеСервисамиИнтеграции + + ru + Форма управление сервисами интеграции + + + + ru + + + PersonalComputer + MobileDevice + + + ФормаНастроекСервисовИнтеграции + + ru + Форма настроек сервисов интеграции + + + + ru + + + PersonalComputer + MobileDevice + diff --git a/SSL/src/DataProcessors/ТранспортСообщенийОбменаFILE/Forms/Форма/Module.bsl b/SSL/src/DataProcessors/ТранспортСообщенийОбменаFILE/Forms/Форма/Module.bsl index 556f9cdd3..0d039b0d3 100644 --- a/SSL/src/DataProcessors/ТранспортСообщенийОбменаFILE/Forms/Форма/Module.bsl +++ b/SSL/src/DataProcessors/ТранспортСообщенийОбменаFILE/Forms/Форма/Module.bsl @@ -1,5 +1,5 @@ /////////////////////////////////////////////////////////////////////////////////////////////////////// -// Copyright (c) 2024, ООО 1С-Софт +// Copyright (c) 2025, ООО 1С-Софт // Все права защищены. Эта программа и сопроводительные материалы предоставляются // в соответствии с условиями лицензии Attribution 4.0 International (CC BY 4.0) // Текст лицензии доступен по ссылке: diff --git a/SSL/src/DataProcessors/ТранспортСообщенийОбменаFILE/Forms/ФормаНастройки/Module.bsl b/SSL/src/DataProcessors/ТранспортСообщенийОбменаFILE/Forms/ФормаНастройки/Module.bsl index 7e4fbe54c..1f61ba9ed 100644 --- a/SSL/src/DataProcessors/ТранспортСообщенийОбменаFILE/Forms/ФормаНастройки/Module.bsl +++ b/SSL/src/DataProcessors/ТранспортСообщенийОбменаFILE/Forms/ФормаНастройки/Module.bsl @@ -1,5 +1,5 @@ /////////////////////////////////////////////////////////////////////////////////////////////////////// -// Copyright (c) 2024, ООО 1С-Софт +// Copyright (c) 2025, ООО 1С-Софт // Все права защищены. Эта программа и сопроводительные материалы предоставляются // в соответствии с условиями лицензии Attribution 4.0 International (CC BY 4.0) // Текст лицензии доступен по ссылке: diff --git a/SSL/src/DataProcessors/ТранспортСообщенийОбменаFILE/Help/ru.html b/SSL/src/DataProcessors/ТранспортСообщенийОбменаFILE/Help/ru.html index 90f14004b..1383fd80c 100644 --- a/SSL/src/DataProcessors/ТранспортСообщенийОбменаFILE/Help/ru.html +++ b/SSL/src/DataProcessors/ТранспортСообщенийОбменаFILE/Help/ru.html @@ -1,7 +1,7 @@ -

                  В случае если к другой программе нет возможности прямого подключения по локальной сети или через Интернет (веб-сервисы), рекомендуется использовать другие каналы связи, например Локальный или сетевой каталог. При этом программы, между которыми настроена синхронизация данных, могут работать полностью автономно друг от друга и в разное время. Такой вариант подходит не только для синхронизации данных с программами, расположенными в других сетях (офисах), но и для программ в одной сети.

                  -

                  При настройке синхронизации будет сформирован файл(ы) с настройками подключения (*.xml и *.json). В программе-корреспонденте при выборе типа подключения, необходимо выбрать опцию Продолжение настройки, выбрать необходимый тип подключения и загрузить файл с настройками подключения

                  +

                  В случае если к другому приложению нет возможности прямого подключения по локальной сети или через Интернет (веб-сервисы), рекомендуется использовать другие каналы связи, например Локальный или сетевой каталог. При этом приложения, между которыми настроена синхронизация данных, могут работать полностью автономно друг от друга и в разное время. Такой вариант подходит не только для синхронизации данных с приложениями, расположенными в других сетях (офисах), но и для приложений в одной сети.

                  +

                  При настройке синхронизации будет сформирован файл(ы) с настройками подключения (*.xml и *.json). В приложении-корреспонденте при выборе типа подключения, необходимо выбрать опцию Продолжение настройки, выбрать необходимый тип подключения и загрузить файл с настройками подключения. Далее:

                  • В поле Каталог выберите путь к локальному или сетевому каталогу.
                  • -
                  • Включите флажок Сжимать отправляемые данные в архив , для того чтобы ограничить размер отправляемого сообщения.
                  • -
                  • Введите Пароль архива для сжатия и распаковки архива сообщения обмена. Подразумевается, что пароль сжатия в программе-источнике и пароль распаковки в программе-приемнике должны быть одинаковыми для пары обменивающихся программ.
                  • +
                  • Включите флажок Сжимать отправляемые данные в архив, для того чтобы ограничить размер отправляемого сообщения.
                  • +
                  • Введите Пароль архива для сжатия и распаковки архива сообщения обмена. Подразумевается, что пароль сжатия в приложении-источнике и пароль распаковки в приложении-приемнике должны быть одинаковыми для пары обменивающихся приложений.

                   

                  \ No newline at end of file diff --git a/SSL/src/DataProcessors/ТранспортСообщенийОбменаFILE/ManagerModule.bsl b/SSL/src/DataProcessors/ТранспортСообщенийОбменаFILE/ManagerModule.bsl index 8711eb97a..3174b1064 100644 --- a/SSL/src/DataProcessors/ТранспортСообщенийОбменаFILE/ManagerModule.bsl +++ b/SSL/src/DataProcessors/ТранспортСообщенийОбменаFILE/ManagerModule.bsl @@ -1,5 +1,5 @@ /////////////////////////////////////////////////////////////////////////////////////////////////////// -// Copyright (c) 2024, ООО 1С-Софт +// Copyright (c) 2025, ООО 1С-Софт // Все права защищены. Эта программа и сопроводительные материалы предоставляются // в соответствии с условиями лицензии Attribution 4.0 International (CC BY 4.0) // Текст лицензии доступен по ссылке: @@ -15,6 +15,7 @@ // // Возвращаемое значение: // Структура - см. ТранспортСообщенийОбмена.СтруктураПараметровТранспорта +// Функция ПараметрыТранспорта() Экспорт Описание = НСтр("ru = 'Для подключения необходимо указать каталог, расположенный на текущем компьютере или в локальной сети.'"); diff --git a/SSL/src/DataProcessors/ТранспортСообщенийОбменаFILE/ObjectModule.bsl b/SSL/src/DataProcessors/ТранспортСообщенийОбменаFILE/ObjectModule.bsl index 0bf0237a6..7db47d390 100644 --- a/SSL/src/DataProcessors/ТранспортСообщенийОбменаFILE/ObjectModule.bsl +++ b/SSL/src/DataProcessors/ТранспортСообщенийОбменаFILE/ObjectModule.bsl @@ -1,5 +1,5 @@ /////////////////////////////////////////////////////////////////////////////////////////////////////// -// Copyright (c) 2024, ООО 1С-Софт +// Copyright (c) 2025, ООО 1С-Софт // Все права защищены. Эта программа и сопроводительные материалы предоставляются // в соответствии с условиями лицензии Attribution 4.0 International (CC BY 4.0) // Текст лицензии доступен по ссылке: @@ -88,7 +88,7 @@ // Возвращает параметры базы-корреспондента. Актуально при прямом подключении к корреспонденту. // // Параметры: -// НастройкиПодключения - Структура - Настройки подключения к базе корреспонденту. +// НастройкиПодключения - Структура - настройки подключения к базе корреспонденту. // см. ОбменДаннымиСервер.НастройкиОбменаДляУзлаИнформационнойБазы // // Возвращаемое значение: @@ -121,7 +121,7 @@ // Сохраняет настройки синхронизации в базе-корреспонденте. Актуально при прямом подключении к корреспонденту. // // Параметры: -// НастройкиПодключения - Структура - Настройки подключения к базе корреспонденту. +// НастройкиПодключения - Структура - настройки подключения к базе корреспонденту. // см. ОбменДаннымиСервер.НастройкиОбменаДляУзлаИнформационнойБазы // // Возвращаемое значение: @@ -138,7 +138,7 @@ // // Возвращаемое значение: // Булево - Истина - аутентификация требуется, -// в этом случае необходимо задать форму аутентификации в процедуре модуля менеджера ПараметрыТранспорта), +// в этом случае необходимо задать форму аутентификации в процедуре модуля менеджера ПараметрыТранспорта), // Ложь - аутентификация не требуется // Функция ТребуетсяАутентификация() Экспорт @@ -151,6 +151,7 @@ // // Возвращаемое значение: // Булево - удалось выполнить удаление, Ложь - произошла ошибка. +// Функция УдалитьНастройкуСинхронизацииВКорреспонденте() Экспорт Возврат Истина; diff --git a/SSL/src/DataProcessors/ТранспортСообщенийОбменаFTP/Forms/Форма/Module.bsl b/SSL/src/DataProcessors/ТранспортСообщенийОбменаFTP/Forms/Форма/Module.bsl index 556f9cdd3..0d039b0d3 100644 --- a/SSL/src/DataProcessors/ТранспортСообщенийОбменаFTP/Forms/Форма/Module.bsl +++ b/SSL/src/DataProcessors/ТранспортСообщенийОбменаFTP/Forms/Форма/Module.bsl @@ -1,5 +1,5 @@ /////////////////////////////////////////////////////////////////////////////////////////////////////// -// Copyright (c) 2024, ООО 1С-Софт +// Copyright (c) 2025, ООО 1С-Софт // Все права защищены. Эта программа и сопроводительные материалы предоставляются // в соответствии с условиями лицензии Attribution 4.0 International (CC BY 4.0) // Текст лицензии доступен по ссылке: diff --git a/SSL/src/DataProcessors/ТранспортСообщенийОбменаFTP/Forms/ФормаНастройки/Module.bsl b/SSL/src/DataProcessors/ТранспортСообщенийОбменаFTP/Forms/ФормаНастройки/Module.bsl index 80f40bba6..5ed471f25 100644 --- a/SSL/src/DataProcessors/ТранспортСообщенийОбменаFTP/Forms/ФормаНастройки/Module.bsl +++ b/SSL/src/DataProcessors/ТранспортСообщенийОбменаFTP/Forms/ФормаНастройки/Module.bsl @@ -1,5 +1,5 @@ /////////////////////////////////////////////////////////////////////////////////////////////////////// -// Copyright (c) 2024, ООО 1С-Софт +// Copyright (c) 2025, ООО 1С-Софт // Все права защищены. Эта программа и сопроводительные материалы предоставляются // в соответствии с условиями лицензии Attribution 4.0 International (CC BY 4.0) // Текст лицензии доступен по ссылке: diff --git a/SSL/src/DataProcessors/ТранспортСообщенийОбменаFTP/Help/ru.html b/SSL/src/DataProcessors/ТранспортСообщенийОбменаFTP/Help/ru.html index a865243e4..e694ebedf 100644 --- a/SSL/src/DataProcessors/ТранспортСообщенийОбменаFTP/Help/ru.html +++ b/SSL/src/DataProcessors/ТранспортСообщенийОбменаFTP/Help/ru.html @@ -1,11 +1,11 @@ -

                  В случае если к другой программе нет возможности прямого подключения по локальной сети или через Интернет (веб-сервисы), рекомендуется использовать другие каналы связи, например FTP-сервер. При этом программы, между которыми настроена синхронизация данных, могут работать полностью автономно друг от друга и в разное время. Такой вариант подходит не только для синхронизации данных с программами, расположенными в других сетях (офисах), но и для программ в одной сети.

                  -

                  При настройке синхронизации будет сформирован файл(ы) с настройками подключения (*.xml и *.json). В программе-корреспонденте при выборе типа подключения, необходимо выбрать опцию Продолжение настройки, выбрать необходимый тип подключения и загрузить файл с настройками подключения

                  +

                  В случае если к другому приложению нет возможности прямого подключения по локальной сети или через Интернет (веб-сервисы), рекомендуется использовать другие каналы связи, например FTP-сервер. При этом приложения, между которыми настроена синхронизация данных, могут работать полностью автономно друг от друга и в разное время. Такой вариант подходит не только для синхронизации данных с приложениями, расположенными в других сетях (офисах), но и для приложений в одной сети.

                  +

                  При настройке синхронизации будет сформирован файл(ы) с настройками подключения (*.xml и *.json). В приложении-корреспонденте при выборе типа подключения, необходимо выбрать опцию Продолжение настройки, выбрать необходимый тип подключения и загрузить файл с настройками подключения. Далее:

                  • Введите Путь к каталогу и Порт компьютера для передачи данных.
                  • Введите имя Пользователя (логин) и Пароль.
                  • Укажите Максимальный размер файла, для того чтобы ограничить объем пересылаемого сообщения.
                  • При необходимости включите флажок Пассивное соединение.
                  • Перейдите по ссылке Параметры доступа в Интернет, для того чтобы настроить параметры прокси-сервера.
                  • -
                  • Включите флажок Сжимать отправляемые данные в архив , для того чтобы ограничить размер отправляемого сообщения.
                  • -
                  • Введите Пароль архива для сжатия и распаковки архива сообщения обмена. Подразумевается, что пароль сжатия в программе-источнике и пароль распаковки в программе-приемнике должны быть одинаковыми для пары обменивающихся программ.
                  • +
                  • Включите флажок Сжимать отправляемые данные в архив, для того чтобы ограничить размер отправляемого сообщения.
                  • +
                  • Введите Пароль архива для сжатия и распаковки архива сообщения обмена. Подразумевается, что пароль сжатия в приложении-источнике и пароль распаковки в приложении-приемнике должны быть одинаковыми для пары обменивающихся приложений.

                   

                  \ No newline at end of file diff --git a/SSL/src/DataProcessors/ТранспортСообщенийОбменаFTP/ManagerModule.bsl b/SSL/src/DataProcessors/ТранспортСообщенийОбменаFTP/ManagerModule.bsl index f7163431a..1cb238bbb 100644 --- a/SSL/src/DataProcessors/ТранспортСообщенийОбменаFTP/ManagerModule.bsl +++ b/SSL/src/DataProcessors/ТранспортСообщенийОбменаFTP/ManagerModule.bsl @@ -1,5 +1,5 @@ /////////////////////////////////////////////////////////////////////////////////////////////////////// -// Copyright (c) 2024, ООО 1С-Софт +// Copyright (c) 2025, ООО 1С-Софт // Все права защищены. Эта программа и сопроводительные материалы предоставляются // в соответствии с условиями лицензии Attribution 4.0 International (CC BY 4.0) // Текст лицензии доступен по ссылке: diff --git a/SSL/src/DataProcessors/ТранспортСообщенийОбменаFTP/ObjectModule.bsl b/SSL/src/DataProcessors/ТранспортСообщенийОбменаFTP/ObjectModule.bsl index 5745ebdb9..644651a48 100644 --- a/SSL/src/DataProcessors/ТранспортСообщенийОбменаFTP/ObjectModule.bsl +++ b/SSL/src/DataProcessors/ТранспортСообщенийОбменаFTP/ObjectModule.bsl @@ -1,5 +1,5 @@ /////////////////////////////////////////////////////////////////////////////////////////////////////// -// Copyright (c) 2024, ООО 1С-Софт +// Copyright (c) 2025, ООО 1С-Софт // Все права защищены. Эта программа и сопроводительные материалы предоставляются // в соответствии с условиями лицензии Attribution 4.0 International (CC BY 4.0) // Текст лицензии доступен по ссылке: @@ -424,7 +424,7 @@ Если ОбщегоНазначения.РазделениеВключено() Тогда - // При работе в сервисе, проверка наличия каталога – очень затратная операция. + // При работе в сервисе, проверка наличия каталога - очень затратная операция. // Поэтому каждый раз используется СоздатьКаталог. // Если каталог уже существует, то переходим в Исключение и ничего не делаем Попытка diff --git a/SSL/src/DataProcessors/ТранспортСообщенийОбменаGoogleDrive/Forms/Форма/Module.bsl b/SSL/src/DataProcessors/ТранспортСообщенийОбменаGoogleDrive/Forms/Форма/Module.bsl index 556f9cdd3..0d039b0d3 100644 --- a/SSL/src/DataProcessors/ТранспортСообщенийОбменаGoogleDrive/Forms/Форма/Module.bsl +++ b/SSL/src/DataProcessors/ТранспортСообщенийОбменаGoogleDrive/Forms/Форма/Module.bsl @@ -1,5 +1,5 @@ /////////////////////////////////////////////////////////////////////////////////////////////////////// -// Copyright (c) 2024, ООО 1С-Софт +// Copyright (c) 2025, ООО 1С-Софт // Все права защищены. Эта программа и сопроводительные материалы предоставляются // в соответствии с условиями лицензии Attribution 4.0 International (CC BY 4.0) // Текст лицензии доступен по ссылке: diff --git a/SSL/src/DataProcessors/ТранспортСообщенийОбменаGoogleDrive/Forms/ФормаАвторизации/Module.bsl b/SSL/src/DataProcessors/ТранспортСообщенийОбменаGoogleDrive/Forms/ФормаАвторизации/Module.bsl index 36c9aeb20..1365154f6 100644 --- a/SSL/src/DataProcessors/ТранспортСообщенийОбменаGoogleDrive/Forms/ФормаАвторизации/Module.bsl +++ b/SSL/src/DataProcessors/ТранспортСообщенийОбменаGoogleDrive/Forms/ФормаАвторизации/Module.bsl @@ -1,5 +1,5 @@ /////////////////////////////////////////////////////////////////////////////////////////////////////// -// Copyright (c) 2024, ООО 1С-Софт +// Copyright (c) 2025, ООО 1С-Софт // Все права защищены. Эта программа и сопроводительные материалы предоставляются // в соответствии с условиями лицензии Attribution 4.0 International (CC BY 4.0) // Текст лицензии доступен по ссылке: diff --git a/SSL/src/DataProcessors/ТранспортСообщенийОбменаGoogleDrive/Forms/ФормаНастройки/Form.form b/SSL/src/DataProcessors/ТранспортСообщенийОбменаGoogleDrive/Forms/ФормаНастройки/Form.form index 384bc47dd..886e426ee 100644 --- a/SSL/src/DataProcessors/ТранспортСообщенийОбменаGoogleDrive/Forms/ФормаНастройки/Form.form +++ b/SSL/src/DataProcessors/ТранспортСообщенийОбменаGoogleDrive/Forms/ФормаНастройки/Form.form @@ -17,7 +17,7 @@ 76 <key>ru</key> - <value>Например 'exchange’. Каталог должен быть уже создан в сервисе. Доспутимо использовать только латинские символы </value> + <value>Например 'exchange’. Каталог должен быть уже создан в сервисе. Допустимо использовать только латинские символы </value> Label true diff --git a/SSL/src/DataProcessors/ТранспортСообщенийОбменаGoogleDrive/Forms/ФормаНастройки/Module.bsl b/SSL/src/DataProcessors/ТранспортСообщенийОбменаGoogleDrive/Forms/ФормаНастройки/Module.bsl index b505ba295..09796c006 100644 --- a/SSL/src/DataProcessors/ТранспортСообщенийОбменаGoogleDrive/Forms/ФормаНастройки/Module.bsl +++ b/SSL/src/DataProcessors/ТранспортСообщенийОбменаGoogleDrive/Forms/ФормаНастройки/Module.bsl @@ -1,5 +1,5 @@ /////////////////////////////////////////////////////////////////////////////////////////////////////// -// Copyright (c) 2024, ООО 1С-Софт +// Copyright (c) 2025, ООО 1С-Софт // Все права защищены. Эта программа и сопроводительные материалы предоставляются // в соответствии с условиями лицензии Attribution 4.0 International (CC BY 4.0) // Текст лицензии доступен по ссылке: diff --git a/SSL/src/DataProcessors/ТранспортСообщенийОбменаGoogleDrive/Forms/ФормаПолученияТокена/Module.bsl b/SSL/src/DataProcessors/ТранспортСообщенийОбменаGoogleDrive/Forms/ФормаПолученияТокена/Module.bsl index b290322a9..8852b8254 100644 --- a/SSL/src/DataProcessors/ТранспортСообщенийОбменаGoogleDrive/Forms/ФормаПолученияТокена/Module.bsl +++ b/SSL/src/DataProcessors/ТранспортСообщенийОбменаGoogleDrive/Forms/ФормаПолученияТокена/Module.bsl @@ -1,5 +1,5 @@ /////////////////////////////////////////////////////////////////////////////////////////////////////// -// Copyright (c) 2024, ООО 1С-Софт +// Copyright (c) 2025, ООО 1С-Софт // Все права защищены. Эта программа и сопроводительные материалы предоставляются // в соответствии с условиями лицензии Attribution 4.0 International (CC BY 4.0) // Текст лицензии доступен по ссылке: diff --git a/SSL/src/DataProcessors/ТранспортСообщенийОбменаGoogleDrive/Help/ru.html b/SSL/src/DataProcessors/ТранспортСообщенийОбменаGoogleDrive/Help/ru.html index b8fcb9f59..c1a358f9c 100644 --- a/SSL/src/DataProcessors/ТранспортСообщенийОбменаGoogleDrive/Help/ru.html +++ b/SSL/src/DataProcessors/ТранспортСообщенийОбменаGoogleDrive/Help/ru.html @@ -1,7 +1,7 @@ -

                  В случае если к другой программе нет возможности прямого подключения по локальной сети или через Интернет (веб-сервисы), рекомендуется использовать другие каналы связи, например Google Drive. При этом программы, между которыми настроена синхронизация данных, могут работать полностью автономно друг от друга и в разное время. Такой вариант подходит не только для синхронизации данных с программами, расположенными в других сетях (офисах), но и для программ в одной сети.

                  -

                  При настройке синхронизации будет сформирован файл(ы) с настройками подключения (*.xml и *.json). В программе-корреспонденте при выборе типа подключения, необходимо выбрать опцию Продолжение настройки, выбрать необходимый тип подключения и загрузить файл с настройками подключения

                  +

                  В случае если к другому приложению нет возможности прямого подключения по локальной сети или через Интернет (веб-сервисы), рекомендуется использовать другие каналы связи, например Google Drive. При этом приложения, между которыми настроена синхронизация данных, могут работать полностью автономно друг от друга и в разное время. Такой вариант подходит не только для синхронизации данных с приложениями, расположенными в других сетях (офисах), но и для приложений в одной сети.

                  +

                  При настройке синхронизации будет сформирован файл(ы) с настройками подключения (*.xml и *.json). В приложении-корреспонденте при выборе типа подключения, необходимо выбрать опцию Продолжение настройки, выбрать необходимый тип подключения и загрузить файл с настройками подключения. Далее:

                  • Введите параметры доступа к сервису: Client ID, Client Secret, Access Token и  Refresh Token. По нажатию кнопки Получить токен, откроется инструкцию по настройке сервиса и получению параметров доступа.
                  • Включите флажок Сжимать отправляемые данные в архив , для того чтобы ограничить размер отправляемого сообщения.
                  • -
                  • Введите Пароль архива для сжатия и распаковки архива сообщения обмена. Подразумевается, что пароль сжатия в программе-источнике и пароль распаковки в программе-приемнике должны быть одинаковыми для пары обменивающихся программ.
                  • +
                  • Введите Пароль архива для сжатия и распаковки архива сообщения обмена. Подразумевается, что пароль сжатия в приложении-источнике и пароль распаковки в приложении-приемнике должны быть одинаковыми для пары обменивающихся приложений.
                  \ No newline at end of file diff --git a/SSL/src/DataProcessors/ТранспортСообщенийОбменаGoogleDrive/ManagerModule.bsl b/SSL/src/DataProcessors/ТранспортСообщенийОбменаGoogleDrive/ManagerModule.bsl index 4566359cc..2b5b4e3de 100644 --- a/SSL/src/DataProcessors/ТранспортСообщенийОбменаGoogleDrive/ManagerModule.bsl +++ b/SSL/src/DataProcessors/ТранспортСообщенийОбменаGoogleDrive/ManagerModule.bsl @@ -1,5 +1,5 @@ /////////////////////////////////////////////////////////////////////////////////////////////////////// -// Copyright (c) 2024, ООО 1С-Софт +// Copyright (c) 2025, ООО 1С-Софт // Все права защищены. Эта программа и сопроводительные материалы предоставляются // в соответствии с условиями лицензии Attribution 4.0 International (CC BY 4.0) // Текст лицензии доступен по ссылке: diff --git a/SSL/src/DataProcessors/ТранспортСообщенийОбменаGoogleDrive/ObjectModule.bsl b/SSL/src/DataProcessors/ТранспортСообщенийОбменаGoogleDrive/ObjectModule.bsl index 99af63e42..e965580ac 100644 --- a/SSL/src/DataProcessors/ТранспортСообщенийОбменаGoogleDrive/ObjectModule.bsl +++ b/SSL/src/DataProcessors/ТранспортСообщенийОбменаGoogleDrive/ObjectModule.bsl @@ -1,5 +1,5 @@ /////////////////////////////////////////////////////////////////////////////////////////////////////// -// Copyright (c) 2024, ООО 1С-Софт +// Copyright (c) 2025, ООО 1С-Софт // Все права защищены. Эта программа и сопроводительные материалы предоставляются // в соответствии с условиями лицензии Attribution 4.0 International (CC BY 4.0) // Текст лицензии доступен по ссылке: diff --git a/SSL/src/DataProcessors/ТранспортСообщенийОбменаHTTP/Forms/Форма/Module.bsl b/SSL/src/DataProcessors/ТранспортСообщенийОбменаHTTP/Forms/Форма/Module.bsl index 556f9cdd3..0d039b0d3 100644 --- a/SSL/src/DataProcessors/ТранспортСообщенийОбменаHTTP/Forms/Форма/Module.bsl +++ b/SSL/src/DataProcessors/ТранспортСообщенийОбменаHTTP/Forms/Форма/Module.bsl @@ -1,5 +1,5 @@ /////////////////////////////////////////////////////////////////////////////////////////////////////// -// Copyright (c) 2024, ООО 1С-Софт +// Copyright (c) 2025, ООО 1С-Софт // Все права защищены. Эта программа и сопроводительные материалы предоставляются // в соответствии с условиями лицензии Attribution 4.0 International (CC BY 4.0) // Текст лицензии доступен по ссылке: diff --git a/SSL/src/DataProcessors/ТранспортСообщенийОбменаHTTP/Forms/ФормаАутентификации/Module.bsl b/SSL/src/DataProcessors/ТранспортСообщенийОбменаHTTP/Forms/ФормаАутентификации/Module.bsl index 7c0382c78..b87b7ed5c 100644 --- a/SSL/src/DataProcessors/ТранспортСообщенийОбменаHTTP/Forms/ФормаАутентификации/Module.bsl +++ b/SSL/src/DataProcessors/ТранспортСообщенийОбменаHTTP/Forms/ФормаАутентификации/Module.bsl @@ -1,5 +1,5 @@ /////////////////////////////////////////////////////////////////////////////////////////////////////// -// Copyright (c) 2024, ООО 1С-Софт +// Copyright (c) 2025, ООО 1С-Софт // Все права защищены. Эта программа и сопроводительные материалы предоставляются // в соответствии с условиями лицензии Attribution 4.0 International (CC BY 4.0) // Текст лицензии доступен по ссылке: diff --git a/SSL/src/DataProcessors/ТранспортСообщенийОбменаHTTP/Forms/ФормаНастройки/Form.form b/SSL/src/DataProcessors/ТранспортСообщенийОбменаHTTP/Forms/ФормаНастройки/Form.form index 925a43e01..31025fd64 100644 --- a/SSL/src/DataProcessors/ТранспортСообщенийОбменаHTTP/Forms/ФормаНастройки/Form.form +++ b/SSL/src/DataProcessors/ТранспортСообщенийОбменаHTTP/Forms/ФормаНастройки/Form.form @@ -1,5 +1,111 @@ - + + + ГруппаПредупреждениеОДвухфакторнойАутентификации + 43 + + КартинкаПредупреждениеОДвухфакторнойАутентификации + 45 + + <key>ru</key> + <value>Предупреждение о двухфакторной аутентификации</value> + + true + true + + true + + + КартинкаПредупреждениеОДвухфакторнойАутентификацииРасширеннаяПодсказка + 47 + Label + true + true + + Left + + + + КартинкаПредупреждениеОДвухфакторнойАутентификацииКонтекстноеМеню + 46 + true + + true + true + + + CommonPicture.Предупреждение32 + + AsFileRef + + + + НадписьПредупреждениеОДвухфакторнойАутентификации + 48 + + <key>ru</key> + <value>Синхронизация не сможет выполняться, если у пользователя установлена двухфакторная аутентификация.</value> + + true + true + + true + + + НадписьПредупреждениеОДвухфакторнойАутентификацииРасширеннаяПодсказка + 50 + Label + true + true + + Left + + + + НадписьПредупреждениеОДвухфакторнойАутентификацииКонтекстноеМеню + 49 + true + + Label + true + true + + Left + + + true + true + + true + + + <key>ru</key> + <value>Предупреждение о двухфакторной аутентификации</value> + + true + + ГруппаПредупреждениеОДвухфакторнойАутентификацииРасширеннаяПодсказка + 44 + Label + true + true + + Left + + + UsualGroup + + HorizontalIfPossible + Auto + true + true + + Style.ToolTipBackColor + + Auto + Auto + + КаталогОбменаИнформацией 12 diff --git a/SSL/src/DataProcessors/ТранспортСообщенийОбменаHTTP/Forms/ФормаНастройки/Module.bsl b/SSL/src/DataProcessors/ТранспортСообщенийОбменаHTTP/Forms/ФормаНастройки/Module.bsl index 9ebf15c37..fefc80b01 100644 --- a/SSL/src/DataProcessors/ТранспортСообщенийОбменаHTTP/Forms/ФормаНастройки/Module.bsl +++ b/SSL/src/DataProcessors/ТранспортСообщенийОбменаHTTP/Forms/ФормаНастройки/Module.bsl @@ -1,5 +1,5 @@ /////////////////////////////////////////////////////////////////////////////////////////////////////// -// Copyright (c) 2024, ООО 1С-Софт +// Copyright (c) 2025, ООО 1С-Софт // Все права защищены. Эта программа и сопроводительные материалы предоставляются // в соответствии с условиями лицензии Attribution 4.0 International (CC BY 4.0) // Текст лицензии доступен по ссылке: diff --git a/SSL/src/DataProcessors/ТранспортСообщенийОбменаHTTP/Help/ru.html b/SSL/src/DataProcessors/ТранспортСообщенийОбменаHTTP/Help/ru.html index 1e62ff18b..2dbdda8b7 100644 --- a/SSL/src/DataProcessors/ТранспортСообщенийОбменаHTTP/Help/ru.html +++ b/SSL/src/DataProcessors/ТранспортСообщенийОбменаHTTP/Help/ru.html @@ -1,8 +1,8 @@ -

                  Этот вариант подключения рекомендуется выбрать, если программа находится в другой сети (офисе) и при этом доступна для подключения через Интернет (http-сервис).

                  -

                  База-корреспонент должна быть опубликована на веб-сервере (Apache, IIS)

                  -
                  • Введите Адрес программы в интернете.
                  • +

                    Этот вариант подключения рекомендуется выбрать, если приложение находится в другой сети (офисе) и при этом доступно для подключения через Интернет (http-сервис).

                    +

                    Приложение-корреспондент должно быть опубликована на веб-сервере (Apache, IIS).

                    +
                    • Введите Адрес приложения в интернете.
                    • Введите имя Пользователя и Пароль.
                    • -
                    • При необходимости включите флажок Запомнить пароль. Если данный флажок не установлен, то при каждой синхронизации необходимо вводить пароль, так же недоступна синхронизация по сценарию.. 
                    • +
                    • При необходимости включите флажок Запомнить пароль. Если данный флажок не установлен, то при каждой синхронизации необходимо вводить пароль, так же недоступна синхронизация по сценарию.
                    • Перейдите по ссылке Параметры доступа в Интернет, для того чтобы настроить параметры прокси-сервера.
                    \ No newline at end of file diff --git a/SSL/src/DataProcessors/ТранспортСообщенийОбменаHTTP/ManagerModule.bsl b/SSL/src/DataProcessors/ТранспортСообщенийОбменаHTTP/ManagerModule.bsl index 9e73adcdf..c3df4286d 100644 --- a/SSL/src/DataProcessors/ТранспортСообщенийОбменаHTTP/ManagerModule.bsl +++ b/SSL/src/DataProcessors/ТранспортСообщенийОбменаHTTP/ManagerModule.bsl @@ -1,5 +1,5 @@ /////////////////////////////////////////////////////////////////////////////////////////////////////// -// Copyright (c) 2024, ООО 1С-Софт +// Copyright (c) 2025, ООО 1С-Софт // Все права защищены. Эта программа и сопроводительные материалы предоставляются // в соответствии с условиями лицензии Attribution 4.0 International (CC BY 4.0) // Текст лицензии доступен по ссылке: diff --git a/SSL/src/DataProcessors/ТранспортСообщенийОбменаHTTP/ObjectModule.bsl b/SSL/src/DataProcessors/ТранспортСообщенийОбменаHTTP/ObjectModule.bsl index 52a8385f5..4849378c4 100644 --- a/SSL/src/DataProcessors/ТранспортСообщенийОбменаHTTP/ObjectModule.bsl +++ b/SSL/src/DataProcessors/ТранспортСообщенийОбменаHTTP/ObjectModule.bsl @@ -1,5 +1,5 @@ /////////////////////////////////////////////////////////////////////////////////////////////////////// -// Copyright (c) 2024, ООО 1С-Софт +// Copyright (c) 2025, ООО 1С-Софт // Все права защищены. Эта программа и сопроводительные материалы предоставляются // в соответствии с условиями лицензии Attribution 4.0 International (CC BY 4.0) // Текст лицензии доступен по ссылке: @@ -232,7 +232,6 @@ Запрос = Новый HTTPЗапрос(АдресРесурса, Заголовки); Ответ = HTTPСоединение.Получить(Запрос); - Если ОтветЭтоОшибка(Ответ) Тогда Возврат Ложь; diff --git a/SSL/src/DataProcessors/ТранспортСообщенийОбменаSM/Forms/Форма/Module.bsl b/SSL/src/DataProcessors/ТранспортСообщенийОбменаSM/Forms/Форма/Module.bsl index 556f9cdd3..0d039b0d3 100644 --- a/SSL/src/DataProcessors/ТранспортСообщенийОбменаSM/Forms/Форма/Module.bsl +++ b/SSL/src/DataProcessors/ТранспортСообщенийОбменаSM/Forms/Форма/Module.bsl @@ -1,5 +1,5 @@ /////////////////////////////////////////////////////////////////////////////////////////////////////// -// Copyright (c) 2024, ООО 1С-Софт +// Copyright (c) 2025, ООО 1С-Софт // Все права защищены. Эта программа и сопроводительные материалы предоставляются // в соответствии с условиями лицензии Attribution 4.0 International (CC BY 4.0) // Текст лицензии доступен по ссылке: diff --git a/SSL/src/DataProcessors/ТранспортСообщенийОбменаSM/Forms/ФормаНастройки/Module.bsl b/SSL/src/DataProcessors/ТранспортСообщенийОбменаSM/Forms/ФормаНастройки/Module.bsl index dde87a5c8..145ac4830 100644 --- a/SSL/src/DataProcessors/ТранспортСообщенийОбменаSM/Forms/ФормаНастройки/Module.bsl +++ b/SSL/src/DataProcessors/ТранспортСообщенийОбменаSM/Forms/ФормаНастройки/Module.bsl @@ -1,5 +1,5 @@ /////////////////////////////////////////////////////////////////////////////////////////////////////// -// Copyright (c) 2024, ООО 1С-Софт +// Copyright (c) 2025, ООО 1С-Софт // Все права защищены. Эта программа и сопроводительные материалы предоставляются // в соответствии с условиями лицензии Attribution 4.0 International (CC BY 4.0) // Текст лицензии доступен по ссылке: diff --git a/SSL/src/DataProcessors/ТранспортСообщенийОбменаSM/Forms/ФормаПервойНастройки/Module.bsl b/SSL/src/DataProcessors/ТранспортСообщенийОбменаSM/Forms/ФормаПервойНастройки/Module.bsl index 097d0851a..a28ed2a5a 100644 --- a/SSL/src/DataProcessors/ТранспортСообщенийОбменаSM/Forms/ФормаПервойНастройки/Module.bsl +++ b/SSL/src/DataProcessors/ТранспортСообщенийОбменаSM/Forms/ФормаПервойНастройки/Module.bsl @@ -1,5 +1,5 @@ /////////////////////////////////////////////////////////////////////////////////////////////////////// -// Copyright (c) 2024, ООО 1С-Софт +// Copyright (c) 2025, ООО 1С-Софт // Все права защищены. Эта программа и сопроводительные материалы предоставляются // в соответствии с условиями лицензии Attribution 4.0 International (CC BY 4.0) // Текст лицензии доступен по ссылке: diff --git a/SSL/src/DataProcessors/ТранспортСообщенийОбменаSM/ManagerModule.bsl b/SSL/src/DataProcessors/ТранспортСообщенийОбменаSM/ManagerModule.bsl index 5c95814da..d8ee8a9cc 100644 --- a/SSL/src/DataProcessors/ТранспортСообщенийОбменаSM/ManagerModule.bsl +++ b/SSL/src/DataProcessors/ТранспортСообщенийОбменаSM/ManagerModule.bsl @@ -1,5 +1,5 @@ /////////////////////////////////////////////////////////////////////////////////////////////////////// -// Copyright (c) 2024, ООО 1С-Софт +// Copyright (c) 2025, ООО 1С-Софт // Все права защищены. Эта программа и сопроводительные материалы предоставляются // в соответствии с условиями лицензии Attribution 4.0 International (CC BY 4.0) // Текст лицензии доступен по ссылке: diff --git a/SSL/src/DataProcessors/ТранспортСообщенийОбменаSM/ObjectModule.bsl b/SSL/src/DataProcessors/ТранспортСообщенийОбменаSM/ObjectModule.bsl index 7f440ab8b..c0c6ded93 100644 --- a/SSL/src/DataProcessors/ТранспортСообщенийОбменаSM/ObjectModule.bsl +++ b/SSL/src/DataProcessors/ТранспортСообщенийОбменаSM/ObjectModule.bsl @@ -1,5 +1,5 @@ /////////////////////////////////////////////////////////////////////////////////////////////////////// -// Copyright (c) 2024, ООО 1С-Софт +// Copyright (c) 2025, ООО 1С-Софт // Все права защищены. Эта программа и сопроводительные материалы предоставляются // в соответствии с условиями лицензии Attribution 4.0 International (CC BY 4.0) // Текст лицензии доступен по ссылке: @@ -30,7 +30,7 @@ Функция ОтправитьДанные(СообщениеДляСопоставленияДанных = Ложь) Экспорт Результат = Истина; - + Попытка Если ВнутренняяПубликация Тогда @@ -53,7 +53,7 @@ КонецПопытки; Возврат Результат; - + КонецФункции // См. ОбработкаОбъект.ТранспортСообщенийОбменаFILE.ПолучитьДанные @@ -539,7 +539,8 @@ Параметры.Вставить("РежимСовместимостиСБСП_2_0_0", Ложь); Параметры.Вставить("ПсевдонимЭтогоУзла", ""); - ОбменДаннымиВМоделиСервиса.ОбновитьНастройкиТранспортаОбластиДанных(Параметры); + МодульОбменДаннымиВМоделиСервиса = ОбщегоНазначения.ОбщийМодуль("ОбменДаннымиВМоделиСервиса"); + МодульОбменДаннымиВМоделиСервиса.ОбновитьНастройкиТранспортаОбластиДанных(Параметры); ИмяПланаОбменаСообщениями = "ОбменСообщениями"; МодульСообщенияВМоделиСервиса = ОбщегоНазначения.ОбщийМодуль("СообщенияВМоделиСервиса"); @@ -548,14 +549,18 @@ ПараметрыОбработчикаСессии = ПараметрыОбработчикаДлительнойОперации(); + МодульОбменДаннымиВМоделиСервиса = ОбщегоНазначения.ОбщийМодуль("ОбменДаннымиВМоделиСервиса"); + УстановитьПривилегированныйРежим(Истина); НачатьТранзакцию(); Попытка + МодульСообщенияОбменаДаннымиУправлениеИнтерфейс = ОбщегоНазначения.ОбщийМодуль("СообщенияОбменаДаннымиУправлениеИнтерфейс"); + // Отправляем сообщение корреспонденту. Сообщение = МодульСообщенияВМоделиСервиса.НовоеСообщение( - СообщенияОбменаДаннымиУправлениеИнтерфейс.СообщениеНастроитьОбменШаг1()); + МодульСообщенияОбменаДаннымиУправлениеИнтерфейс.СообщениеНастроитьОбменШаг1()); Сообщение.Body.CorrespondentZone = НастройкиПодключенияМС.ОбластьДанныхКорреспондента; @@ -589,7 +594,7 @@ Сообщение.AdditionalInfo = СериализаторXDTO.ЗаписатьXDTO(ДополнительныеСвойства); - ПараметрыОбработчикаСессии.ИдентификаторОперации = ОбменДаннымиВМоделиСервиса.ОтправитьСообщение(Сообщение); + ПараметрыОбработчикаСессии.ИдентификаторОперации = МодульОбменДаннымиВМоделиСервиса.ОтправитьСообщение(Сообщение); ЗафиксироватьТранзакцию(); Исключение @@ -602,7 +607,7 @@ СообщениеОбОшибке = ОбработкаОшибок.ПодробноеПредставлениеОшибки(Информация); - ЗаписьЖурналаРегистрации(ОбменДаннымиВМоделиСервиса.СобытиеЖурналаРегистрацииНастройкаСинхронизацииДанных(), + ЗаписьЖурналаРегистрации(МодульОбменДаннымиВМоделиСервиса.СобытиеЖурналаРегистрацииНастройкаСинхронизацииДанных(), УровеньЖурналаРегистрации.Ошибка, , , СообщениеОбОшибке); Возврат Ложь; @@ -713,17 +718,17 @@ КонецФункции Функция МенеджерСервиса_ПолучитьСообщение() - + МодульНастройкиТранспортаОбменаОбластиДанных = ОбщегоНазначения.ОбщийМодуль("РегистрыСведений.НастройкиТранспортаОбменаОбластиДанных"); НастройкиТранспортаОбластиДанных = МодульНастройкиТранспортаОбменаОбластиДанных.НастройкиТранспорта(Корреспондент); - + Если НастройкиТранспортаОбластиДанных.ВидТранспортаСообщенийОбменаПоУмолчанию = Перечисления.ВидыТранспортаСообщенийОбмена.FILE Тогда Транспорт = Обработки.ТранспортСообщенийОбменаFILE.Создать(); Транспорт.КаталогОбменаИнформацией = НастройкиТранспортаОбластиДанных.FILEКаталогОбменаИнформацией; Транспорт.СжиматьФайлИсходящегоСообщения = НастройкиТранспортаОбластиДанных.FILEСжиматьФайлИсходящегоСообщения; Транспорт.ПарольАрхиваСообщенияОбмена = НастройкиТранспортаОбластиДанных.ПарольАрхиваСообщенияОбмена; - + ИначеЕсли НастройкиТранспортаОбластиДанных.ВидТранспортаСообщенийОбменаПоУмолчанию = Перечисления.ВидыТранспортаСообщенийОбмена.FTP Тогда Транспорт = Обработки.ТранспортСообщенийОбменаFTP.Создать(); @@ -742,12 +747,12 @@ Транспорт.СообщениеОбмена = СообщениеОбмена; Транспорт.ВременныйКаталог = ВременныйКаталог; Транспорт.ШаблоныИменДляПолученияСообщения = ШаблоныИменДляПолученияСообщения; - + Результат = Транспорт.ПолучитьДанные(); СообщениеОбмена = Транспорт.СообщениеОбмена; - Возврат Результат; - + Возврат Результат; + КонецФункции Процедура ОбновитьПараметрыОбработчикаОжидания(ПараметрыОбработчикаОжидания) Экспорт diff --git a/SSL/src/DataProcessors/ТранспортСообщенийОбменаWS/Forms/Форма/Module.bsl b/SSL/src/DataProcessors/ТранспортСообщенийОбменаWS/Forms/Форма/Module.bsl index 556f9cdd3..0d039b0d3 100644 --- a/SSL/src/DataProcessors/ТранспортСообщенийОбменаWS/Forms/Форма/Module.bsl +++ b/SSL/src/DataProcessors/ТранспортСообщенийОбменаWS/Forms/Форма/Module.bsl @@ -1,5 +1,5 @@ /////////////////////////////////////////////////////////////////////////////////////////////////////// -// Copyright (c) 2024, ООО 1С-Софт +// Copyright (c) 2025, ООО 1С-Софт // Все права защищены. Эта программа и сопроводительные материалы предоставляются // в соответствии с условиями лицензии Attribution 4.0 International (CC BY 4.0) // Текст лицензии доступен по ссылке: diff --git a/SSL/src/DataProcessors/ТранспортСообщенийОбменаWS/Forms/ФормаАутентификации/Module.bsl b/SSL/src/DataProcessors/ТранспортСообщенийОбменаWS/Forms/ФормаАутентификации/Module.bsl index 922d7f610..f04fb6e71 100644 --- a/SSL/src/DataProcessors/ТранспортСообщенийОбменаWS/Forms/ФормаАутентификации/Module.bsl +++ b/SSL/src/DataProcessors/ТранспортСообщенийОбменаWS/Forms/ФормаАутентификации/Module.bsl @@ -1,5 +1,5 @@ /////////////////////////////////////////////////////////////////////////////////////////////////////// -// Copyright (c) 2024, ООО 1С-Софт +// Copyright (c) 2025, ООО 1С-Софт // Все права защищены. Эта программа и сопроводительные материалы предоставляются // в соответствии с условиями лицензии Attribution 4.0 International (CC BY 4.0) // Текст лицензии доступен по ссылке: @@ -30,7 +30,10 @@ Если ОбщегоНазначения.ЭтоАвтономноеРабочееМесто() Тогда ИмяПользователя = ПользователиИнформационнойБазы.ТекущийПользователь().Имя; - АдресДляВосстановленияПароляУчетнойЗаписи = АвтономнаяРаботаСлужебный.АдресДляВосстановленияПароляУчетнойЗаписи(); + Если ОбщегоНазначения.ПодсистемаСуществует("СтандартныеПодсистемы.РаботаВМоделиСервиса.ОбменДаннымиВМоделиСервиса") Тогда + МодульАвтономнаяРаботаСлужебный = ОбщегоНазначения.ОбщийМодуль("АвтономнаяРаботаСлужебный"); + АдресДляВосстановленияПароляУчетнойЗаписи = МодульАвтономнаяРаботаСлужебный.АдресДляВосстановленияПароляУчетнойЗаписи(); + КонецЕсли; КонецЕсли; Элементы.ЗабылиПароль.Видимость = Не ПустаяСтрока(АдресДляВосстановленияПароляУчетнойЗаписи); diff --git a/SSL/src/DataProcessors/ТранспортСообщенийОбменаWS/Forms/ФормаНастройки/Form.form b/SSL/src/DataProcessors/ТранспортСообщенийОбменаWS/Forms/ФормаНастройки/Form.form index 0a93795a2..8aaeb62cb 100644 --- a/SSL/src/DataProcessors/ТранспортСообщенийОбменаWS/Forms/ФормаНастройки/Form.form +++ b/SSL/src/DataProcessors/ТранспортСообщенийОбменаWS/Forms/ФормаНастройки/Form.form @@ -1,5 +1,111 @@ - + + + ГруппаПредупреждениеОДвухфакторнойАутентификации + 40 + + КартинкаГруппаПредупреждениеОДвухфакторнойАутентификации + 42 + + <key>ru</key> + <value>Предупреждение о двухфакторной аутентификации</value> + + true + true + + true + + + КартинкаГруппаПредупреждениеОДвухфакторнойАутентификацииРасширеннаяПодсказка + 44 + Label + true + true + + Left + + + + КартинкаГруппаПредупреждениеОДвухфакторнойАутентификацииКонтекстноеМеню + 43 + true + + true + true + + + CommonPicture.Предупреждение32 + + AsFileRef + + + + НадписьГруппаПредупреждениеОДвухфакторнойАутентификации + 45 + + <key>ru</key> + <value>Синхронизация не сможет выполняться, если у пользователя установлена двухфакторная аутентификация.</value> + + true + true + + true + + + НадписьГруппаПредупреждениеОДвухфакторнойАутентификацииРасширеннаяПодсказка + 47 + Label + true + true + + Left + + + + НадписьГруппаПредупреждениеОДвухфакторнойАутентификацииКонтекстноеМеню + 46 + true + + Label + true + true + + Left + + + true + true + + true + + + <key>ru</key> + <value>Предупреждение о двухфакторной аутентификации</value> + + true + + ГруппаПредупреждениеОДвухфакторнойАутентификацииРасширеннаяПодсказка + 41 + Label + true + true + + Left + + + UsualGroup + + HorizontalIfPossible + Auto + true + true + + Style.ToolTipBackColor + + Auto + Auto + + КаталогОбменаИнформацией 12 diff --git a/SSL/src/DataProcessors/ТранспортСообщенийОбменаWS/Forms/ФормаНастройки/Module.bsl b/SSL/src/DataProcessors/ТранспортСообщенийОбменаWS/Forms/ФормаНастройки/Module.bsl index 9ebf15c37..fefc80b01 100644 --- a/SSL/src/DataProcessors/ТранспортСообщенийОбменаWS/Forms/ФормаНастройки/Module.bsl +++ b/SSL/src/DataProcessors/ТранспортСообщенийОбменаWS/Forms/ФормаНастройки/Module.bsl @@ -1,5 +1,5 @@ /////////////////////////////////////////////////////////////////////////////////////////////////////// -// Copyright (c) 2024, ООО 1С-Софт +// Copyright (c) 2025, ООО 1С-Софт // Все права защищены. Эта программа и сопроводительные материалы предоставляются // в соответствии с условиями лицензии Attribution 4.0 International (CC BY 4.0) // Текст лицензии доступен по ссылке: diff --git a/SSL/src/DataProcessors/ТранспортСообщенийОбменаWS/Help/ru.html b/SSL/src/DataProcessors/ТранспортСообщенийОбменаWS/Help/ru.html index 02b8b18aa..22133d8b8 100644 --- a/SSL/src/DataProcessors/ТранспортСообщенийОбменаWS/Help/ru.html +++ b/SSL/src/DataProcessors/ТранспортСообщенийОбменаWS/Help/ru.html @@ -1,8 +1,8 @@ -

                    Этот вариант подключения рекомендуется выбрать, если программа находится в другой сети (офисе) и при этом доступна для подключения через Интернет (WS-сервис).

                    -

                    База-корреспонент должна быть опубликована на веб-сервере (Apache, IIS)

                    -
                    • Введите Адрес программы в интернете.
                    • +

                      Этот вариант подключения рекомендуется выбрать, если приложение находится в другой сети (офисе) и при этом доступно для подключения через Интернет (WS-сервис).

                      +

                      Приложение-корреспондент должно быть опубликовано на веб-сервере (Apache, IIS). Далее:

                      +
                      • Введите Адрес приложения в интернете.
                      • Введите имя Пользователя и Пароль.
                      • -
                      • При необходимости включите флажок Запомнить пароль. Если данный флажок не установлен, то при каждой синхронизации необходимо вводить пароль, так же недоступна синхронизация по сценарию.. 
                      • +
                      • При необходимости включите флажок Запомнить пароль. Если данный флажок не установлен, то при каждой синхронизации необходимо вводить пароль, так же недоступна синхронизация по сценарию.
                      • Перейдите по ссылке Параметры доступа в Интернет, для того чтобы настроить параметры прокси-сервера.
                      \ No newline at end of file diff --git a/SSL/src/DataProcessors/ТранспортСообщенийОбменаWS/ManagerModule.bsl b/SSL/src/DataProcessors/ТранспортСообщенийОбменаWS/ManagerModule.bsl index da682e7a3..7e4cc143f 100644 --- a/SSL/src/DataProcessors/ТранспортСообщенийОбменаWS/ManagerModule.bsl +++ b/SSL/src/DataProcessors/ТранспортСообщенийОбменаWS/ManagerModule.bsl @@ -1,5 +1,5 @@ /////////////////////////////////////////////////////////////////////////////////////////////////////// -// Copyright (c) 2024, ООО 1С-Софт +// Copyright (c) 2025, ООО 1С-Софт // Все права защищены. Эта программа и сопроводительные материалы предоставляются // в соответствии с условиями лицензии Attribution 4.0 International (CC BY 4.0) // Текст лицензии доступен по ссылке: diff --git a/SSL/src/DataProcessors/ТранспортСообщенийОбменаWS/ObjectModule.bsl b/SSL/src/DataProcessors/ТранспортСообщенийОбменаWS/ObjectModule.bsl index dab7376e5..1f523e1da 100644 --- a/SSL/src/DataProcessors/ТранспортСообщенийОбменаWS/ObjectModule.bsl +++ b/SSL/src/DataProcessors/ТранспортСообщенийОбменаWS/ObjectModule.bsl @@ -1,5 +1,5 @@ /////////////////////////////////////////////////////////////////////////////////////////////////////// -// Copyright (c) 2024, ООО 1С-Софт +// Copyright (c) 2025, ООО 1С-Софт // Все права защищены. Эта программа и сопроводительные материалы предоставляются // в соответствии с условиями лицензии Attribution 4.0 International (CC BY 4.0) // Текст лицензии доступен по ссылке: @@ -377,7 +377,7 @@ КонецЕсли; ПараметрыОбмена = ОбменДаннымиСервер.ПараметрыОбмена(); - ПараметрыОбмена.ДлительнаяОперацияРазрешена = Истина; + ПараметрыОбмена.ДлительнаяОперацияРазрешена= Истина; ПараметрыОбмена.ИнтервалОжиданияНаСервере = 15; СтруктураНастроекОбмена = ОбменДаннымиСервер.НастройкиОбменаДляУзлаИнформационнойБазы( diff --git a/SSL/src/DataProcessors/ТранспортСообщенийОбменаПассивныйРежим/Forms/Форма/Module.bsl b/SSL/src/DataProcessors/ТранспортСообщенийОбменаПассивныйРежим/Forms/Форма/Module.bsl index 556f9cdd3..0d039b0d3 100644 --- a/SSL/src/DataProcessors/ТранспортСообщенийОбменаПассивныйРежим/Forms/Форма/Module.bsl +++ b/SSL/src/DataProcessors/ТранспортСообщенийОбменаПассивныйРежим/Forms/Форма/Module.bsl @@ -1,5 +1,5 @@ /////////////////////////////////////////////////////////////////////////////////////////////////////// -// Copyright (c) 2024, ООО 1С-Софт +// Copyright (c) 2025, ООО 1С-Софт // Все права защищены. Эта программа и сопроводительные материалы предоставляются // в соответствии с условиями лицензии Attribution 4.0 International (CC BY 4.0) // Текст лицензии доступен по ссылке: diff --git a/SSL/src/DataProcessors/ТранспортСообщенийОбменаПассивныйРежим/Forms/ФормаНастройки/Module.bsl b/SSL/src/DataProcessors/ТранспортСообщенийОбменаПассивныйРежим/Forms/ФормаНастройки/Module.bsl index 7f6132dd2..c9734b55e 100644 --- a/SSL/src/DataProcessors/ТранспортСообщенийОбменаПассивныйРежим/Forms/ФормаНастройки/Module.bsl +++ b/SSL/src/DataProcessors/ТранспортСообщенийОбменаПассивныйРежим/Forms/ФормаНастройки/Module.bsl @@ -1,5 +1,5 @@ /////////////////////////////////////////////////////////////////////////////////////////////////////// -// Copyright (c) 2024, ООО 1С-Софт +// Copyright (c) 2025, ООО 1С-Софт // Все права защищены. Эта программа и сопроводительные материалы предоставляются // в соответствии с условиями лицензии Attribution 4.0 International (CC BY 4.0) // Текст лицензии доступен по ссылке: diff --git a/SSL/src/DataProcessors/ТранспортСообщенийОбменаПассивныйРежим/Help/ru.html b/SSL/src/DataProcessors/ТранспортСообщенийОбменаПассивныйРежим/Help/ru.html index 2aecc83d0..39b1d7ec8 100644 --- a/SSL/src/DataProcessors/ТранспортСообщенийОбменаПассивныйРежим/Help/ru.html +++ b/SSL/src/DataProcessors/ТранспортСообщенийОбменаПассивныйРежим/Help/ru.html @@ -1,4 +1,4 @@ -

                      При таком варианте подключения эта программа отправляет и принимает данные через Интернет только по запросу от программы-корреспондента. 

                      +

                      При таком варианте подключения это приложение отправляет и принимает данные через Интернет только по запросу от приложения-корреспондента. 

                      Данный вид подключения не требует никаких настроек.

                      -

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

                      \ No newline at end of file +

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

                      \ No newline at end of file diff --git a/SSL/src/DataProcessors/ТранспортСообщенийОбменаПассивныйРежим/ManagerModule.bsl b/SSL/src/DataProcessors/ТранспортСообщенийОбменаПассивныйРежим/ManagerModule.bsl index cc949c415..87db36420 100644 --- a/SSL/src/DataProcessors/ТранспортСообщенийОбменаПассивныйРежим/ManagerModule.bsl +++ b/SSL/src/DataProcessors/ТранспортСообщенийОбменаПассивныйРежим/ManagerModule.bsl @@ -1,5 +1,5 @@ /////////////////////////////////////////////////////////////////////////////////////////////////////// -// Copyright (c) 2024, ООО 1С-Софт +// Copyright (c) 2025, ООО 1С-Софт // Все права защищены. Эта программа и сопроводительные материалы предоставляются // в соответствии с условиями лицензии Attribution 4.0 International (CC BY 4.0) // Текст лицензии доступен по ссылке: diff --git a/SSL/src/DataProcessors/ТранспортСообщенийОбменаПассивныйРежим/ObjectModule.bsl b/SSL/src/DataProcessors/ТранспортСообщенийОбменаПассивныйРежим/ObjectModule.bsl index 6d1fa90e3..5145967f0 100644 --- a/SSL/src/DataProcessors/ТранспортСообщенийОбменаПассивныйРежим/ObjectModule.bsl +++ b/SSL/src/DataProcessors/ТранспортСообщенийОбменаПассивныйРежим/ObjectModule.bsl @@ -1,5 +1,5 @@ /////////////////////////////////////////////////////////////////////////////////////////////////////// -// Copyright (c) 2024, ООО 1С-Софт +// Copyright (c) 2025, ООО 1С-Софт // Все права защищены. Эта программа и сопроводительные материалы предоставляются // в соответствии с условиями лицензии Attribution 4.0 International (CC BY 4.0) // Текст лицензии доступен по ссылке: diff --git a/SSL/src/DataProcessors/ТранспортСообщенийОбменаЯндексДиск/Forms/Форма/Module.bsl b/SSL/src/DataProcessors/ТранспортСообщенийОбменаЯндексДиск/Forms/Форма/Module.bsl index 556f9cdd3..0d039b0d3 100644 --- a/SSL/src/DataProcessors/ТранспортСообщенийОбменаЯндексДиск/Forms/Форма/Module.bsl +++ b/SSL/src/DataProcessors/ТранспортСообщенийОбменаЯндексДиск/Forms/Форма/Module.bsl @@ -1,5 +1,5 @@ /////////////////////////////////////////////////////////////////////////////////////////////////////// -// Copyright (c) 2024, ООО 1С-Софт +// Copyright (c) 2025, ООО 1С-Софт // Все права защищены. Эта программа и сопроводительные материалы предоставляются // в соответствии с условиями лицензии Attribution 4.0 International (CC BY 4.0) // Текст лицензии доступен по ссылке: diff --git a/SSL/src/DataProcessors/ТранспортСообщенийОбменаЯндексДиск/Forms/ФормаАвторизации/Module.bsl b/SSL/src/DataProcessors/ТранспортСообщенийОбменаЯндексДиск/Forms/ФормаАвторизации/Module.bsl index 7dea11634..e4027b30a 100644 --- a/SSL/src/DataProcessors/ТранспортСообщенийОбменаЯндексДиск/Forms/ФормаАвторизации/Module.bsl +++ b/SSL/src/DataProcessors/ТранспортСообщенийОбменаЯндексДиск/Forms/ФормаАвторизации/Module.bsl @@ -1,5 +1,5 @@ /////////////////////////////////////////////////////////////////////////////////////////////////////// -// Copyright (c) 2024, ООО 1С-Софт +// Copyright (c) 2025, ООО 1С-Софт // Все права защищены. Эта программа и сопроводительные материалы предоставляются // в соответствии с условиями лицензии Attribution 4.0 International (CC BY 4.0) // Текст лицензии доступен по ссылке: diff --git a/SSL/src/DataProcessors/ТранспортСообщенийОбменаЯндексДиск/Forms/ФормаНастройки/Form.form b/SSL/src/DataProcessors/ТранспортСообщенийОбменаЯндексДиск/Forms/ФормаНастройки/Form.form index 64ca3ec90..357ec2cad 100644 --- a/SSL/src/DataProcessors/ТранспортСообщенийОбменаЯндексДиск/Forms/ФормаНастройки/Form.form +++ b/SSL/src/DataProcessors/ТранспортСообщенийОбменаЯндексДиск/Forms/ФормаНастройки/Form.form @@ -17,7 +17,7 @@ 25 <key>ru</key> - <value>Например 'exchange/dsl’. Каталог должен быть уже создан в сервисе. Доспутимо использовать только латинские символы </value> + <value>Например 'exchange/dsl’. Каталог должен быть уже создан в сервисе. Допустимо использовать только латинские символы </value> Label true diff --git a/SSL/src/DataProcessors/ТранспортСообщенийОбменаЯндексДиск/Forms/ФормаНастройки/Module.bsl b/SSL/src/DataProcessors/ТранспортСообщенийОбменаЯндексДиск/Forms/ФормаНастройки/Module.bsl index f3adc94cd..7eeb7e4b1 100644 --- a/SSL/src/DataProcessors/ТранспортСообщенийОбменаЯндексДиск/Forms/ФормаНастройки/Module.bsl +++ b/SSL/src/DataProcessors/ТранспортСообщенийОбменаЯндексДиск/Forms/ФормаНастройки/Module.bsl @@ -1,5 +1,5 @@ /////////////////////////////////////////////////////////////////////////////////////////////////////// -// Copyright (c) 2024, ООО 1С-Софт +// Copyright (c) 2025, ООО 1С-Софт // Все права защищены. Эта программа и сопроводительные материалы предоставляются // в соответствии с условиями лицензии Attribution 4.0 International (CC BY 4.0) // Текст лицензии доступен по ссылке: diff --git a/SSL/src/DataProcessors/ТранспортСообщенийОбменаЯндексДиск/Forms/ФормаПолученияТокена/Module.bsl b/SSL/src/DataProcessors/ТранспортСообщенийОбменаЯндексДиск/Forms/ФормаПолученияТокена/Module.bsl index 3130cc942..53b01bf63 100644 --- a/SSL/src/DataProcessors/ТранспортСообщенийОбменаЯндексДиск/Forms/ФормаПолученияТокена/Module.bsl +++ b/SSL/src/DataProcessors/ТранспортСообщенийОбменаЯндексДиск/Forms/ФормаПолученияТокена/Module.bsl @@ -1,5 +1,5 @@ /////////////////////////////////////////////////////////////////////////////////////////////////////// -// Copyright (c) 2024, ООО 1С-Софт +// Copyright (c) 2025, ООО 1С-Софт // Все права защищены. Эта программа и сопроводительные материалы предоставляются // в соответствии с условиями лицензии Attribution 4.0 International (CC BY 4.0) // Текст лицензии доступен по ссылке: diff --git a/SSL/src/DataProcessors/ТранспортСообщенийОбменаЯндексДиск/Help/ru.html b/SSL/src/DataProcessors/ТранспортСообщенийОбменаЯндексДиск/Help/ru.html index 31e1087ba..aa20cf29a 100644 --- a/SSL/src/DataProcessors/ТранспортСообщенийОбменаЯндексДиск/Help/ru.html +++ b/SSL/src/DataProcessors/ТранспортСообщенийОбменаЯндексДиск/Help/ru.html @@ -1,7 +1,7 @@ -

                      В случае если к другой программе нет возможности прямого подключения по локальной сети или через Интернет (веб-сервисы), рекомендуется использовать другие каналы связи, например Яндекс.Диск. При этом программы, между которыми настроена синхронизация данных, могут работать полностью автономно друг от друга и в разное время. Такой вариант подходит не только для синхронизации данных с программами, расположенными в других сетях (офисах), но и для программ в одной сети.

                      -

                      При настройке синхронизации будет сформирован файл(ы) с настройками подключения (*.xml и *.json). В программе-корреспонденте при выборе типа подключения, необходимо выбрать опцию Продолжение настройки, выбрать необходимый тип подключения и загрузить файл с настройками подключения

                      +

                      В случае если к другому приложению нет возможности прямого подключения по локальной сети или через Интернет (веб-сервисы), рекомендуется использовать другие каналы связи, например Яндекс.Диск. При этом приложения, между которыми настроена синхронизация данных, могут работать полностью автономно друг от друга и в разное время. Такой вариант подходит не только для синхронизации данных с приложениями, расположенными в других сетях (офисах), но и для приложений в одной сети.

                      +

                      При настройке синхронизации будет сформирован файл(ы) с настройками подключения (*.xml и *.json). В приложении-корреспонденте при выборе типа подключения, необходимо выбрать опцию Продолжение настройки, выбрать необходимый тип подключения и загрузить файл с настройками подключения.

                      • Введите параметры доступа к сервису: Client ID, Client Secret, Access Token и  Refresh Token. По нажатию кнопки Получить токен, откроется инструкцию по настройке сервиса и получению параметров доступа.
                      • Включите флажок Сжимать отправляемые данные в архив , для того чтобы ограничить размер отправляемого сообщения.
                      • -
                      • Введите Пароль архива для сжатия и распаковки архива сообщения обмена. Подразумевается, что пароль сжатия в программе-источнике и пароль распаковки в программе-приемнике должны быть одинаковыми для пары обменивающихся программ.
                      • +
                      • Введите Пароль архива для сжатия и распаковки архива сообщения обмена. Подразумевается, что пароль сжатия в приложении-источнике и пароль распаковки в приложении-приемнике должны быть одинаковыми для пары обменивающихся приложений.
                      \ No newline at end of file diff --git a/SSL/src/DataProcessors/ТранспортСообщенийОбменаЯндексДиск/ManagerModule.bsl b/SSL/src/DataProcessors/ТранспортСообщенийОбменаЯндексДиск/ManagerModule.bsl index fbc59d72f..e5ea5831c 100644 --- a/SSL/src/DataProcessors/ТранспортСообщенийОбменаЯндексДиск/ManagerModule.bsl +++ b/SSL/src/DataProcessors/ТранспортСообщенийОбменаЯндексДиск/ManagerModule.bsl @@ -1,5 +1,5 @@ /////////////////////////////////////////////////////////////////////////////////////////////////////// -// Copyright (c) 2024, ООО 1С-Софт +// Copyright (c) 2025, ООО 1С-Софт // Все права защищены. Эта программа и сопроводительные материалы предоставляются // в соответствии с условиями лицензии Attribution 4.0 International (CC BY 4.0) // Текст лицензии доступен по ссылке: diff --git a/SSL/src/DataProcessors/ТранспортСообщенийОбменаЯндексДиск/ObjectModule.bsl b/SSL/src/DataProcessors/ТранспортСообщенийОбменаЯндексДиск/ObjectModule.bsl index 86789202d..5a94ab498 100644 --- a/SSL/src/DataProcessors/ТранспортСообщенийОбменаЯндексДиск/ObjectModule.bsl +++ b/SSL/src/DataProcessors/ТранспортСообщенийОбменаЯндексДиск/ObjectModule.bsl @@ -1,5 +1,5 @@ /////////////////////////////////////////////////////////////////////////////////////////////////////// -// Copyright (c) 2024, ООО 1С-Софт +// Copyright (c) 2025, ООО 1С-Софт // Все права защищены. Эта программа и сопроводительные материалы предоставляются // в соответствии с условиями лицензии Attribution 4.0 International (CC BY 4.0) // Текст лицензии доступен по ссылке: diff --git a/SSL/src/DataProcessors/ТранспортСообщенийОбменаЯндексДиск/Templates/ПолучениеТокена_ru/ru.html b/SSL/src/DataProcessors/ТранспортСообщенийОбменаЯндексДиск/Templates/ПолучениеТокена_ru/ru.html index 3d433cebe..520afee90 100644 --- a/SSL/src/DataProcessors/ТранспортСообщенийОбменаЯндексДиск/Templates/ПолучениеТокена_ru/ru.html +++ b/SSL/src/DataProcessors/ТранспортСообщенийОбменаЯндексДиск/Templates/ПолучениеТокена_ru/ru.html @@ -40,7 +40,7 @@ img {

                      6. Укажите электронную почту для связи.
                      7. Внизу страницы нажмите Создать приложение. На экране появятся его описание.


                      -8. Скопируйте идентификатор приложения из поля ClientID и Client secret в соотвествующие поля низу формы и нажмите кнопку Получить токен. 

                      +8. Скопируйте идентификатор приложения из поля ClientID и Client secret в соответствующие поля низу формы и нажмите кнопку Получить токен. 

                      Вы будете перенаправлены на страницу авторизации в сервисе Яндекса. После успешной авторизации будет получен токен и вы будете перенаправлены в форму настройки подключения. 

                      В дальнейшем открыть страницу со всеми вашими приложениями вы сможете по ссылке oauth.yandex.ru.

                      diff --git a/SSL/src/DataProcessors/УдалениеПомеченныхОбъектов/Commands/УдалениеПомеченныхОбъектов/CommandModule.bsl b/SSL/src/DataProcessors/УдалениеПомеченныхОбъектов/Commands/УдалениеПомеченныхОбъектов/CommandModule.bsl index 48ee30342..78fb61071 100644 --- a/SSL/src/DataProcessors/УдалениеПомеченныхОбъектов/Commands/УдалениеПомеченныхОбъектов/CommandModule.bsl +++ b/SSL/src/DataProcessors/УдалениеПомеченныхОбъектов/Commands/УдалениеПомеченныхОбъектов/CommandModule.bsl @@ -1,5 +1,5 @@ /////////////////////////////////////////////////////////////////////////////////////////////////////// -// Copyright (c) 2024, ООО 1С-Софт +// Copyright (c) 2025, ООО 1С-Софт // Все права защищены. Эта программа и сопроводительные материалы предоставляются // в соответствии с условиями лицензии Attribution 4.0 International (CC BY 4.0) // Текст лицензии доступен по ссылке: diff --git a/SSL/src/DataProcessors/УдалениеПомеченныхОбъектов/Forms/ВыборОбъектовМетаданныхПоПодсистемам/Module.bsl b/SSL/src/DataProcessors/УдалениеПомеченныхОбъектов/Forms/ВыборОбъектовМетаданныхПоПодсистемам/Module.bsl index d404b8104..24d99174a 100644 --- a/SSL/src/DataProcessors/УдалениеПомеченныхОбъектов/Forms/ВыборОбъектовМетаданныхПоПодсистемам/Module.bsl +++ b/SSL/src/DataProcessors/УдалениеПомеченныхОбъектов/Forms/ВыборОбъектовМетаданныхПоПодсистемам/Module.bsl @@ -1,5 +1,5 @@ /////////////////////////////////////////////////////////////////////////////////////////////////////// -// Copyright (c) 2024, ООО 1С-Софт +// Copyright (c) 2025, ООО 1С-Софт // Все права защищены. Эта программа и сопроводительные материалы предоставляются // в соответствии с условиями лицензии Attribution 4.0 International (CC BY 4.0) // Текст лицензии доступен по ссылке: diff --git a/SSL/src/DataProcessors/УдалениеПомеченныхОбъектов/Forms/НастройкиУдаленияОбъектов/Module.bsl b/SSL/src/DataProcessors/УдалениеПомеченныхОбъектов/Forms/НастройкиУдаленияОбъектов/Module.bsl index 89f6fc155..99fcd1ac1 100644 --- a/SSL/src/DataProcessors/УдалениеПомеченныхОбъектов/Forms/НастройкиУдаленияОбъектов/Module.bsl +++ b/SSL/src/DataProcessors/УдалениеПомеченныхОбъектов/Forms/НастройкиУдаленияОбъектов/Module.bsl @@ -1,5 +1,5 @@ /////////////////////////////////////////////////////////////////////////////////////////////////////// -// Copyright (c) 2024, ООО 1С-Софт +// Copyright (c) 2025, ООО 1С-Софт // Все права защищены. Эта программа и сопроводительные материалы предоставляются // в соответствии с условиями лицензии Attribution 4.0 International (CC BY 4.0) // Текст лицензии доступен по ссылке: diff --git a/SSL/src/DataProcessors/УдалениеПомеченныхОбъектов/Forms/ОсновнаяФорма/Module.bsl b/SSL/src/DataProcessors/УдалениеПомеченныхОбъектов/Forms/ОсновнаяФорма/Module.bsl index 3f92dca3c..8f239363c 100644 --- a/SSL/src/DataProcessors/УдалениеПомеченныхОбъектов/Forms/ОсновнаяФорма/Module.bsl +++ b/SSL/src/DataProcessors/УдалениеПомеченныхОбъектов/Forms/ОсновнаяФорма/Module.bsl @@ -1,5 +1,5 @@ /////////////////////////////////////////////////////////////////////////////////////////////////////// -// Copyright (c) 2024, ООО 1С-Софт +// Copyright (c) 2025, ООО 1С-Софт // Все права защищены. Эта программа и сопроводительные материалы предоставляются // в соответствии с условиями лицензии Attribution 4.0 International (CC BY 4.0) // Текст лицензии доступен по ссылке: @@ -1659,6 +1659,7 @@ &НаСервере Функция НачатьПоискПомеченныхСервер(ОтборМетаданных, УникальныйИдентификаторФормы, ИскатьТехнологическиеОбъекты = Ложь) + АктуализироватьНастройкиДополнительныхРеквизитовПередПоискомПомеченных(); ПараметрыМетода = ДлительныеОперации.ПараметрыВыполненияФункции(УникальныйИдентификаторФормы); ПараметрыМетода.НаименованиеФоновогоЗадания = НСтр("ru = 'Поиск помеченных на удаление'"); Задание = ДлительныеОперации.ВыполнитьФункцию(ПараметрыМетода, @@ -1669,6 +1670,7 @@ ИскатьТехнологическиеОбъекты); Возврат Задание; + КонецФункции // Параметры: @@ -2414,4 +2416,28 @@ Возврат Результат; КонецФункции +&НаСервере +Процедура АктуализироватьНастройкиДополнительныхРеквизитовПередПоискомПомеченных(); + + НастройкиДополнительныхРеквизитов = ДополнительныеРеквизитыПомеченныхНаУдаления.Выгрузить(); + УдаляемыеСтроки = Новый Массив; + Для Каждого Настройка Из НастройкиДополнительныхРеквизитов Цикл + ОбъектМетаданных = Метаданные.НайтиПоПолномуИмени(Настройка.Метаданные); + Если ОбъектМетаданных = Неопределено Тогда + Продолжить; + КонецЕсли; + Если Не ОбщегоНазначенияКлиентСервер.ЕстьРеквизитИлиСвойствоОбъекта(ОбъектМетаданных.Реквизиты, Настройка.Реквизит) Тогда + УдаляемыеСтроки.Добавить(Настройка); + КонецЕсли; + КонецЦикла; + + Если УдаляемыеСтроки.Количество() > 0 Тогда + Для Каждого УдаляемаяСтрока Из УдаляемыеСтроки Цикл + НастройкиДополнительныхРеквизитов.Удалить(УдаляемаяСтрока); + КонецЦикла; + ДополнительныеРеквизитыПомеченныхНаУдаления.Загрузить(НастройкиДополнительныхРеквизитов); + КонецЕсли; + +КонецПроцедуры + #КонецОбласти diff --git a/SSL/src/DataProcessors/УдалениеПомеченныхОбъектов/ManagerModule.bsl b/SSL/src/DataProcessors/УдалениеПомеченныхОбъектов/ManagerModule.bsl index 546ff3ed5..c0b567554 100644 --- a/SSL/src/DataProcessors/УдалениеПомеченныхОбъектов/ManagerModule.bsl +++ b/SSL/src/DataProcessors/УдалениеПомеченныхОбъектов/ManagerModule.bsl @@ -1,5 +1,5 @@ /////////////////////////////////////////////////////////////////////////////////////////////////////// -// Copyright (c) 2024, ООО 1С-Софт +// Copyright (c) 2025, ООО 1С-Софт // Все права защищены. Эта программа и сопроводительные материалы предоставляются // в соответствии с условиями лицензии Attribution 4.0 International (CC BY 4.0) // Текст лицензии доступен по ссылке: diff --git a/SSL/src/DataProcessors/УниверсальныйОбменДаннымиXML/Commands/УниверсальныйОбменДанными/CommandModule.bsl b/SSL/src/DataProcessors/УниверсальныйОбменДаннымиXML/Commands/УниверсальныйОбменДанными/CommandModule.bsl index 837ba525c..eb3972bdf 100644 --- a/SSL/src/DataProcessors/УниверсальныйОбменДаннымиXML/Commands/УниверсальныйОбменДанными/CommandModule.bsl +++ b/SSL/src/DataProcessors/УниверсальныйОбменДаннымиXML/Commands/УниверсальныйОбменДанными/CommandModule.bsl @@ -1,5 +1,5 @@ /////////////////////////////////////////////////////////////////////////////////////////////////////// -// Copyright (c) 2024, ООО 1С-Софт +// Copyright (c) 2025, ООО 1С-Софт // Все права защищены. Эта программа и сопроводительные материалы предоставляются // в соответствии с условиями лицензии Attribution 4.0 International (CC BY 4.0) // Текст лицензии доступен по ссылке: diff --git a/SSL/src/DataProcessors/УниверсальныйОбменДаннымиXML/Forms/УправляемаяФорма/Module.bsl b/SSL/src/DataProcessors/УниверсальныйОбменДаннымиXML/Forms/УправляемаяФорма/Module.bsl index a34e22f1c..534eb2cc3 100644 --- a/SSL/src/DataProcessors/УниверсальныйОбменДаннымиXML/Forms/УправляемаяФорма/Module.bsl +++ b/SSL/src/DataProcessors/УниверсальныйОбменДаннымиXML/Forms/УправляемаяФорма/Module.bsl @@ -1,5 +1,5 @@ /////////////////////////////////////////////////////////////////////////////////////////////////////// -// Copyright (c) 2024, ООО 1С-Софт +// Copyright (c) 2025, ООО 1С-Софт // Все права защищены. Эта программа и сопроводительные материалы предоставляются // в соответствии с условиями лицензии Attribution 4.0 International (CC BY 4.0) // Текст лицензии доступен по ссылке: diff --git a/SSL/src/DataProcessors/УниверсальныйОбменДаннымиXML/Forms/УправляемаяФормаНастройкиОтладкиОбработчиков/Module.bsl b/SSL/src/DataProcessors/УниверсальныйОбменДаннымиXML/Forms/УправляемаяФормаНастройкиОтладкиОбработчиков/Module.bsl index 66bad7821..949e68f2f 100644 --- a/SSL/src/DataProcessors/УниверсальныйОбменДаннымиXML/Forms/УправляемаяФормаНастройкиОтладкиОбработчиков/Module.bsl +++ b/SSL/src/DataProcessors/УниверсальныйОбменДаннымиXML/Forms/УправляемаяФормаНастройкиОтладкиОбработчиков/Module.bsl @@ -1,5 +1,5 @@ /////////////////////////////////////////////////////////////////////////////////////////////////////// -// Copyright (c) 2024, ООО 1С-Софт +// Copyright (c) 2025, ООО 1С-Софт // Все права защищены. Эта программа и сопроводительные материалы предоставляются // в соответствии с условиями лицензии Attribution 4.0 International (CC BY 4.0) // Текст лицензии доступен по ссылке: diff --git a/SSL/src/DataProcessors/УниверсальныйОбменДаннымиXML/Help/ru.html b/SSL/src/DataProcessors/УниверсальныйОбменДаннымиXML/Help/ru.html index 800257f46..9e602b0a1 100644 --- a/SSL/src/DataProcessors/УниверсальныйОбменДаннымиXML/Help/ru.html +++ b/SSL/src/DataProcessors/УниверсальныйОбменДаннымиXML/Help/ru.html @@ -10,9 +10,9 @@

                      На закладке "Комментарий" можно написать произвольный текст-комментарий, включаемый в файл обмена.

                      Загрузка данных

                      Для осуществления загрузки данных необходимо указать имя файла, из которого будет осуществляться загрузка данных.

                      -

                      Режим "Безопасная загрузка данных" позволяет использовать для загрузки данных правила обмена, указанные в поле "Имя файла правил" (по умолчанию используются правила обмена, содержащиеся в сообщении обмена). Этот режим востребован в случаях, когда необходимо обезопасить информационную базу от выполнения вредоносного кода из правил обмена, содержащихся в файле с данными.

                      +

                      Режим "Безопасная загрузка данных" позволяет использовать для загрузки данных правила обмена, указанные в поле "Имя файла правил" (по умолчанию используются правила обмена, содержащиеся в сообщении обмена). Этот режим востребован в случаях, когда необходимо обезопасить приложение от выполнения вредоносного кода из правил обмена, содержащихся в файле с данными.

                      Есть возможность настроить загрузку данных в транзакции. Для этого необходимо взвести флажок "Использовать транзакции" и указать количество элементов в одной транзакции при загрузке.

                      -

                      "Загружать данные в режиме обмена (ОбменДанными.Загрузка = Истина)" – если флаг установлен, то загрузка объектов будет выполнятся с установленным признаком загрузки. Это означает, что при записи объектов в базу данных будут отключены все платформенные и прикладные проверки. Исключение составляют документы, которые записываются в режиме проведения или отмены проведения. Проведение и отмена проведения документа выполняется всегда без установки режима загрузки, т.е. проверки будут выполняться.

                      +

                      "Загружать данные в режиме обмена (ОбменДанными.Загрузка = Истина)" – если флаг установлен, то загрузка объектов будет выполнятся с установленным признаком загрузки. Это означает, что при записи объектов в приложение будут отключены все платформенные и прикладные проверки. Исключение составляют документы, которые записываются в режиме проведения или отмены проведения. Проведение и отмена проведения документа выполняется всегда без установки режима загрузки, т.е. проверки будут выполняться.

                      Дополнительные настройки

                      Закладка служит для детальной настройки выгрузки и загрузки данных.

                      "Режим отладки" – флаг для задания режима отладки обмена. Если этот флаг установлен, то процесс обмена данными не будет остановлен при возникновении какой-либо ошибки. Обмен завершится до конца с выводом отладочных сообщений в файл протокола обмена. Этот режим рекомендуется использовать при отладке правил обмена.

                      @@ -22,7 +22,7 @@

                      "Использовать оптимизированный формат для обмена данными (V8 - V8, версия обработки не ниже 2.0.18)" – оптимизированный формат сообщения обмена предполагает наличие узла "ИнформацияОТипахДанных" в заголовке сообщения, в который выгружается информация о типах данных. Это позволяет ускорить процесс загрузки данных.

                      "Использовать транзакции при выгрузке для планов обмена" – флаг определяет режим использования транзакций при выгрузке данных при выборке изменений на узлах планов обмена. Если флаг установлен, то выгрузка данных будет выполняться в транзакции.

                      "Количество элементов в транзакции" – определяет максимальное число элементов данных, которые помещаются в сообщение в рамках одной транзакции базы данных. Если значение параметра равно 0 (значение по умолчанию), то все данные помещаются в рамках одной транзакции. Такой режим является рекомендуемым, так как гарантирует согласованность данных, помещаемых в сообщение. Но при создании сообщения в многопользовательском режиме могут быть конфликты блокировок между транзакцией, в которой данные помещаются в сообщение, и транзакциями, выполняемыми другими пользователями. Для снижения вероятности возникновения таких конфликтов можно задать значение этого параметра, отличное от значения по умолчанию. Чем меньше значение параметра, тем меньше вероятность конфликта блокировок, но выше вероятность помещения в сообщение несогласованных данных.

                      -

                      "Выгружать объекты на которые есть права доступа" – если флаг установлен, то выборка объектов информационной базы будет выполняться с учетом прав доступа текущего пользователя программы. Это предполагает использование литерала "РАЗРЕШЕННЫЕ" в тексте запроса для выборки данных.

                      +

                      "Выгружать объекты на которые есть права доступа" – если флаг установлен, то выборка объектов приложения будет выполняться с учетом прав доступа текущего пользователя приложения. Это предполагает использование литерала "РАЗРЕШЕННЫЕ" в тексте запроса для выборки данных.

                      "Автоматически удалять недопустимые символы из строк для записи в XML" – если флаг установлен, то при записи данных в сообщение обмена недопустимые символы будут удалены. Символы проверяются на соответствие рекомендации XML 1.0.

                      "Изменения регистрации для узлов обмена после выгрузки" – поле определяет режим работы с регистрацией изменений данных после завершения выгрузки данных. Возможные значения:

                      • @@ -34,12 +34,12 @@
                      • Удалить регистрацию только для выгруженных метаданных – после выгрузки данных регистрация изменений на узле будет удалена только для объектов метаданных, которые были указаны к выгрузке.


                      "Протокол обмена" – позволяет настроить вывод информационных сообщений в окно сообщений, ведение и запись в отдельный файл протокола обмена.

                      "Имя файла, протокола обмена" – имя файла для вывода протокола процесса обмена данными.

                      -

                      "Протокол загрузки (для COM - соединения)" – имя файла для вывода протокола процесса обмена данными в базе-приемнике при обмене через COM-соединение. Важно: путь к файлу должен быть доступен с компьютера, на котором установлена база-приемник.

                      +

                      "Протокол загрузки (для COM - соединения)" – имя файла для вывода протокола процесса обмена данными в приложении-приемнике при обмене через COM-соединение. Важно: путь к файлу должен быть доступен с компьютера, на котором установлено приложение-приемник.

                      "Дописывать данные в протокол обмена"– если флаг установлен, то содержимое файла протокола обмена сохраняется, если файл протокола уже существует.

                      "Вывод в протокол информационных сообщений" – если флаг установлен, то в протокол обмена будут выводиться сообщения информативного характера, помимо сообщений об ошибках обмена.

                      "Открывать файлы протоколов обмена после выполнения операций" – если флаг установлен, то после выполнения обмена данными файлы протоколов обмена будут автоматически открыты для просмотра.

                      Удаление данных

                      -

                      Закладка нужна только для разработчиков правил обмена. Позволяет удалять из информационной базы произвольные объекты.

                      +

                      Закладка нужна только для разработчиков правил обмена. Позволяет удалять из приложения произвольные объекты.

                      Отладка выгрузки и загрузки данных 

                      Обработка позволяет совершать отладку обработчиков событий и генерировать модуль отладки из файла-правил или файла-данных.

                      Включение режима отладки обработчиков выгрузки производится на закладке "Выгрузка данных" установкой флажка "Режим отладки обработчиков выгрузки". Соответственно, на закладке "Загрузка данных" включение режима отладки загрузки производится установкой флажка "Режим отладки обработчиков загрузки". 

                      @@ -62,5 +62,5 @@

                      Шаг 3: Создание внешней обработки


                      На этом шаге необходимо запустить конфигуратор и создать новую внешнюю обработку. В модуль обработки необходимо вставить содержимое буфера обмена (модуль отладки) и сохранить обработку под любым именем. 

                      Шаг 4: Подключение внешней обработки

                      -


                      На четвертом, завершающем шаге, надо указать имя файла внешней обработки в поле ввода. При этом программа выполняет проверку по времени создания (обновления) файла обработки. Если обработка имеет более раннюю версию, чем версия файла модуля отладки, то будет выведено предупреждение и форма настройки закрыта не будет.

                      +


                      На четвертом, завершающем шаге, надо указать имя файла внешней обработки в поле ввода. При этом приложение выполняет проверку по времени создания (обновления) файла обработки. Если обработка имеет более раннюю версию, чем версия файла модуля отладки, то будет выведено предупреждение и форма настройки закрыта не будет.

                      Примечание: Возможность отладки глобального обработчика конвертации "После загрузки правил обмена" не поддерживается.

                      \ No newline at end of file diff --git a/SSL/src/DataProcessors/УниверсальныйОбменДаннымиXML/ObjectModule.bsl b/SSL/src/DataProcessors/УниверсальныйОбменДаннымиXML/ObjectModule.bsl index e2edb5e39..d1c9d5e59 100644 --- a/SSL/src/DataProcessors/УниверсальныйОбменДаннымиXML/ObjectModule.bsl +++ b/SSL/src/DataProcessors/УниверсальныйОбменДаннымиXML/ObjectModule.bsl @@ -1,5 +1,5 @@ /////////////////////////////////////////////////////////////////////////////////////////////////////// -// Copyright (c) 2024, ООО 1С-Софт +// Copyright (c) 2025, ООО 1С-Софт // Все права защищены. Эта программа и сопроводительные материалы предоставляются // в соответствии с условиями лицензии Attribution 4.0 International (CC BY 4.0) // Текст лицензии доступен по ссылке: @@ -20,8 +20,7 @@ // ПВД - правило выгрузки данных. // ПОД - правило очистки данных. -//////////////////////////////////////////////////////////////////////////////// -// ВСПОМОГАТЕЛЬНЫЕ ПЕРЕМЕННЫЕ МОДУЛЯ ДЛЯ НАПИСАНИЯ АЛГОРИТМОВ (ОБЩИЕ ДЛЯ ВЫГРУЗКИ И ЗАГРУЗКИ) +#Область ВспомогательныеПеременныеМодуляДляНаписанияАлгоритмовОбщиеДляВыгрузкиИЗагрузки Перем Конвертация Экспорт; // Структура свойств конвертации (Имя, Ид, обработчики событий обмена). @@ -62,8 +61,9 @@ Перем РазделителиКонфигурации; // Массив: содержащий разделители конфигурации. -//////////////////////////////////////////////////////////////////////////////// -// ФЛАГИ НАЛИЧИЯ ГЛОБАЛЬНЫХ ОБРАБОТЧИКОВ СОБЫТИЙ +#КонецОбласти + +#Область ФлагиНаличияГлобальныхОбработчиковСобытий Перем ЕстьГлобальныйОбработчикПередВыгрузкойОбъекта; Перем ЕстьГлобальныйОбработчикПослеВыгрузкиОбъекта; @@ -76,8 +76,9 @@ Перем ВерсияПлатформыПриемника; Перем ПлатформаПриемника; -//////////////////////////////////////////////////////////////////////////////// -// ПЕРЕМЕННЫЕ ОБРАБОТОК ОБМЕНА (ОБЩИЕ ДЛЯ ВЫГРУЗКИ И ЗАГРУЗКИ) +#КонецОбласти + +#Область ПеременныеОбработокОбменаОбщиеДляВыгрузкиИЗагрузки Перем одТипСтрока; // Тип("Строка") Перем одТипБулево; // Тип("Булево") @@ -103,8 +104,9 @@ Перем мСписокМакетовПравилОбмена Экспорт; -//////////////////////////////////////////////////////////////////////////////// -// ПЕРЕМЕННЫЕ МОДУЛЯ ОБРАБОТКИ ВЫГРУЗКИ +#КонецОбласти + +#Область ПеременныеМодуляОбработкиВыгрузки Перем мСчетчикВыгруженныхОбъектов Экспорт; // Число - счетчик выгруженных объектов. Перем мСчетчикНПП Экспорт; // Число - счетчик НПП @@ -114,8 +116,9 @@ Перем мСтрокаТиповДляПриемника; -//////////////////////////////////////////////////////////////////////////////// -// ПЕРЕМЕННЫЕ МОДУЛЯ ОБРАБОТКИ ЗАГРУЗКИ +#КонецОбласти + +#Область ПеременныеМодуляОбработкиЗагрузки Перем мСчетчикЗагруженныхОбъектов Экспорт;// Число - счетчик загруженных объектов. @@ -151,13 +154,16 @@ Перем ТекущийУровеньВложенностиВыгрузитьПоПравилу; -//////////////////////////////////////////////////////////////////////////////// -// ПЕРЕМЕННЫЕ ДЛЯ ХРАНЕНИЯ МОДУЛЕЙ СТАНДАРТНЫХ ПОДСИСТЕМ +#КонецОбласти + +#Область ПеременныеДляХраненияМодулейСтандартныхПодсистем Перем МодульДатыЗапретаИзменения; #КонецОбласти +#КонецОбласти + #Область ПрограммныйИнтерфейс #Область РаботаСоСтроками @@ -2716,7 +2722,7 @@ // Функция ВерсияОбъекта() Экспорт - Версия = "1.0.4.242"; + Версия = "1.0.5.225"; Возврат Версия; КонецФункции @@ -2987,14 +2993,14 @@ Функция ЗаписьТекстаВоВременныйФайл(СписокВременныхФайлов) - ИмяФайлаЗаписей = ПолучитьИмяВременногоФайла(); - ВременныйФайлЗаписей = Новый ЗаписьТекста; Если БезопасныйРежим() <> Ложь Тогда УстановитьОтключениеБезопасногоРежима(Истина); КонецЕсли; + ИмяФайлаЗаписей = ПолучитьИмяВременногоФайла(); + Попытка ВременныйФайлЗаписей.Открыть(ИмяФайлаЗаписей, КодировкаТекста.UTF8); Исключение @@ -7541,8 +7547,8 @@ // ОбъектНайден - если Ложь, то объект не найден, а создан новый. // // Возвращаемое значение: -// - ЛюбаяСсылка - Новый или найденный объект информационной базы. -// - Неопределено - Если не удалось создать объект +// - ЛюбаяСсылка - новый или найденный объект информационной базы. +// - Неопределено - если не удалось создать объект // Функция НайтиОбъектПоСсылке(ТипОбъекта, ИмяПКО = "", @@ -11532,17 +11538,17 @@ // Параметры: // Данные - КонстантаМенеджерЗначения -// - СправочникОбъект -// - ДокументОбъект -// - ПланВидовХарактеристикОбъект -// - ПланСчетовОбъект -// - ПланВидовРасчетаОбъект -// - БизнесПроцессОбъект -// - ЗадачаОбъект -// - РегистрСведенийНаборЗаписей -// - РегистрНакопленияНаборЗаписей -// - РегистрБухгалтерииНаборЗаписей -// - РегистрРасчетаНаборЗаписей +// - СправочникОбъект +// - ДокументОбъект +// - ПланВидовХарактеристикОбъект +// - ПланСчетовОбъект +// - ПланВидовРасчетаОбъект +// - БизнесПроцессОбъект +// - ЗадачаОбъект +// - РегистрСведенийНаборЗаписей +// - РегистрНакопленияНаборЗаписей +// - РегистрБухгалтерииНаборЗаписей +// - РегистрРасчетаНаборЗаписей // Процедура ПолучитьСтрокуПравилВыгрузкиПоОбъектуОбмена(Данные, МетаданныеПоследнегоОбъекта, МетаданныеОбъектаВыгрузки, ПоследняяСтрокаПравилВыгрузки, ТекущаяСтрокаПравилаВыгрузки, ВременныйМассивПравилКонвертации, ОбъектДляПравилВыгрузки, @@ -14681,8 +14687,7 @@ Возврат Структура; КонецФункции -//////////////////////////////////////////////////////////////////////////////// -// Процедуры и функции из базовой функциональности для обеспечения автономности. +#Область ПроцедурыИФункцииИзБазовойФункциональностиДляОбеспеченияАвтономности Функция ПодсистемаСуществует(ПолноеИмяПодсистемы) Экспорт @@ -14795,12 +14800,15 @@ Возврат МодульОбщегоНазначения.КодОсновногоЯзыка(); КонецЕсли; Возврат Метаданные.ОсновнойЯзык.КодЯзыка; + КонецФункции #КонецОбласти #КонецОбласти +#КонецОбласти + #Область Инициализация ИнициализацияРеквизитовИМодульныхПеременных(); diff --git a/SSL/src/DataProcessors/УничтожениеПерсональныхДанных/Forms/Форма/Module.bsl b/SSL/src/DataProcessors/УничтожениеПерсональныхДанных/Forms/Форма/Module.bsl index 0897fa299..861584269 100644 --- a/SSL/src/DataProcessors/УничтожениеПерсональныхДанных/Forms/Форма/Module.bsl +++ b/SSL/src/DataProcessors/УничтожениеПерсональныхДанных/Forms/Форма/Module.bsl @@ -1,5 +1,5 @@ /////////////////////////////////////////////////////////////////////////////////////////////////////// -// Copyright (c) 2024, ООО 1С-Софт +// Copyright (c) 2025, ООО 1С-Софт // Все права защищены. Эта программа и сопроводительные материалы предоставляются // в соответствии с условиями лицензии Attribution 4.0 International (CC BY 4.0) // Текст лицензии доступен по ссылке: diff --git a/SSL/src/DataProcessors/УничтожениеПерсональныхДанных/Forms/ФормаСозданияАктов/Module.bsl b/SSL/src/DataProcessors/УничтожениеПерсональныхДанных/Forms/ФормаСозданияАктов/Module.bsl index f7c5271b2..d820d4261 100644 --- a/SSL/src/DataProcessors/УничтожениеПерсональныхДанных/Forms/ФормаСозданияАктов/Module.bsl +++ b/SSL/src/DataProcessors/УничтожениеПерсональныхДанных/Forms/ФормаСозданияАктов/Module.bsl @@ -1,5 +1,5 @@ /////////////////////////////////////////////////////////////////////////////////////////////////////// -// Copyright (c) 2024, ООО 1С-Софт +// Copyright (c) 2025, ООО 1С-Софт // Все права защищены. Эта программа и сопроводительные материалы предоставляются // в соответствии с условиями лицензии Attribution 4.0 International (CC BY 4.0) // Текст лицензии доступен по ссылке: diff --git a/SSL/src/DataProcessors/УничтожениеПерсональныхДанных/ManagerModule.bsl b/SSL/src/DataProcessors/УничтожениеПерсональныхДанных/ManagerModule.bsl index 2aa4d515d..e51304cb2 100644 --- a/SSL/src/DataProcessors/УничтожениеПерсональныхДанных/ManagerModule.bsl +++ b/SSL/src/DataProcessors/УничтожениеПерсональныхДанных/ManagerModule.bsl @@ -1,5 +1,5 @@ /////////////////////////////////////////////////////////////////////////////////////////////////////// -// Copyright (c) 2024, ООО 1С-Софт +// Copyright (c) 2025, ООО 1С-Софт // Все права защищены. Эта программа и сопроводительные материалы предоставляются // в соответствии с условиями лицензии Attribution 4.0 International (CC BY 4.0) // Текст лицензии доступен по ссылке: diff --git a/SSL/src/DataProcessors/УправлениеИтогамиИАгрегатами/Forms/ОсновнаяФорма/Module.bsl b/SSL/src/DataProcessors/УправлениеИтогамиИАгрегатами/Forms/ОсновнаяФорма/Module.bsl index b7eac51a7..237edb000 100644 --- a/SSL/src/DataProcessors/УправлениеИтогамиИАгрегатами/Forms/ОсновнаяФорма/Module.bsl +++ b/SSL/src/DataProcessors/УправлениеИтогамиИАгрегатами/Forms/ОсновнаяФорма/Module.bsl @@ -1,5 +1,5 @@ /////////////////////////////////////////////////////////////////////////////////////////////////////// -// Copyright (c) 2024, ООО 1С-Софт +// Copyright (c) 2025, ООО 1С-Софт // Все права защищены. Эта программа и сопроводительные материалы предоставляются // в соответствии с условиями лицензии Attribution 4.0 International (CC BY 4.0) // Текст лицензии доступен по ссылке: diff --git a/SSL/src/DataProcessors/УправлениеИтогамиИАгрегатами/Forms/ФормаВыбораПериода/Module.bsl b/SSL/src/DataProcessors/УправлениеИтогамиИАгрегатами/Forms/ФормаВыбораПериода/Module.bsl index 5d916e88b..729f0223f 100644 --- a/SSL/src/DataProcessors/УправлениеИтогамиИАгрегатами/Forms/ФормаВыбораПериода/Module.bsl +++ b/SSL/src/DataProcessors/УправлениеИтогамиИАгрегатами/Forms/ФормаВыбораПериода/Module.bsl @@ -1,5 +1,5 @@ /////////////////////////////////////////////////////////////////////////////////////////////////////// -// Copyright (c) 2024, ООО 1С-Софт +// Copyright (c) 2025, ООО 1С-Софт // Все права защищены. Эта программа и сопроводительные материалы предоставляются // в соответствии с условиями лицензии Attribution 4.0 International (CC BY 4.0) // Текст лицензии доступен по ссылке: diff --git a/SSL/src/DataProcessors/УправлениеИтогамиИАгрегатами/Forms/ФормаПараметровПерестроения/Module.bsl b/SSL/src/DataProcessors/УправлениеИтогамиИАгрегатами/Forms/ФормаПараметровПерестроения/Module.bsl index 1e51ac061..0347842bf 100644 --- a/SSL/src/DataProcessors/УправлениеИтогамиИАгрегатами/Forms/ФормаПараметровПерестроения/Module.bsl +++ b/SSL/src/DataProcessors/УправлениеИтогамиИАгрегатами/Forms/ФормаПараметровПерестроения/Module.bsl @@ -1,5 +1,5 @@ /////////////////////////////////////////////////////////////////////////////////////////////////////// -// Copyright (c) 2024, ООО 1С-Софт +// Copyright (c) 2025, ООО 1С-Софт // Все права защищены. Эта программа и сопроводительные материалы предоставляются // в соответствии с условиями лицензии Attribution 4.0 International (CC BY 4.0) // Текст лицензии доступен по ссылке: diff --git a/SSL/src/DataProcessors/УправлениеПодключениемDSS/Commands/СерверыDSS/CommandModule.bsl b/SSL/src/DataProcessors/УправлениеПодключениемDSS/Commands/СерверыDSS/CommandModule.bsl index 28aa0ae21..e659ab2a2 100644 --- a/SSL/src/DataProcessors/УправлениеПодключениемDSS/Commands/СерверыDSS/CommandModule.bsl +++ b/SSL/src/DataProcessors/УправлениеПодключениемDSS/Commands/СерверыDSS/CommandModule.bsl @@ -1,5 +1,5 @@ /////////////////////////////////////////////////////////////////////////////////////////////////////// -// Copyright (c) 2024, ООО 1С-Софт +// Copyright (c) 2025, ООО 1С-Софт // Все права защищены. Эта программа и сопроводительные материалы предоставляются // в соответствии с условиями лицензии Attribution 4.0 International (CC BY 4.0) // Текст лицензии доступен по ссылке: diff --git a/SSL/src/DataProcessors/УправлениеПодключениемDSS/Commands/СписокСертификатов/CommandModule.bsl b/SSL/src/DataProcessors/УправлениеПодключениемDSS/Commands/СписокСертификатов/CommandModule.bsl index 854f9e52e..71c261715 100644 --- a/SSL/src/DataProcessors/УправлениеПодключениемDSS/Commands/СписокСертификатов/CommandModule.bsl +++ b/SSL/src/DataProcessors/УправлениеПодключениемDSS/Commands/СписокСертификатов/CommandModule.bsl @@ -1,5 +1,5 @@ /////////////////////////////////////////////////////////////////////////////////////////////////////// -// Copyright (c) 2024, ООО 1С-Софт +// Copyright (c) 2025, ООО 1С-Софт // Все права защищены. Эта программа и сопроводительные материалы предоставляются // в соответствии с условиями лицензии Attribution 4.0 International (CC BY 4.0) // Текст лицензии доступен по ссылке: diff --git a/SSL/src/DataProcessors/УправлениеПодключениемDSS/Commands/УчетныеЗаписиDSS/CommandModule.bsl b/SSL/src/DataProcessors/УправлениеПодключениемDSS/Commands/УчетныеЗаписиDSS/CommandModule.bsl index e53ac0540..66462efb9 100644 --- a/SSL/src/DataProcessors/УправлениеПодключениемDSS/Commands/УчетныеЗаписиDSS/CommandModule.bsl +++ b/SSL/src/DataProcessors/УправлениеПодключениемDSS/Commands/УчетныеЗаписиDSS/CommandModule.bsl @@ -1,5 +1,5 @@ /////////////////////////////////////////////////////////////////////////////////////////////////////// -// Copyright (c) 2024, ООО 1С-Софт +// Copyright (c) 2025, ООО 1С-Софт // Все права защищены. Эта программа и сопроводительные материалы предоставляются // в соответствии с условиями лицензии Attribution 4.0 International (CC BY 4.0) // Текст лицензии доступен по ссылке: diff --git a/SSL/src/DataProcessors/УправлениеПодключениемDSS/Forms/ВводПароля/Module.bsl b/SSL/src/DataProcessors/УправлениеПодключениемDSS/Forms/ВводПароля/Module.bsl index 040c5378b..66e1ef755 100644 --- a/SSL/src/DataProcessors/УправлениеПодключениемDSS/Forms/ВводПароля/Module.bsl +++ b/SSL/src/DataProcessors/УправлениеПодключениемDSS/Forms/ВводПароля/Module.bsl @@ -1,5 +1,5 @@ /////////////////////////////////////////////////////////////////////////////////////////////////////// -// Copyright (c) 2024, ООО 1С-Софт +// Copyright (c) 2025, ООО 1С-Софт // Все права защищены. Эта программа и сопроводительные материалы предоставляются // в соответствии с условиями лицензии Attribution 4.0 International (CC BY 4.0) // Текст лицензии доступен по ссылке: diff --git a/SSL/src/DataProcessors/УправлениеПодключениемDSS/Forms/ВводПинКода/Module.bsl b/SSL/src/DataProcessors/УправлениеПодключениемDSS/Forms/ВводПинКода/Module.bsl index 06d040bcd..ce573cdba 100644 --- a/SSL/src/DataProcessors/УправлениеПодключениемDSS/Forms/ВводПинКода/Module.bsl +++ b/SSL/src/DataProcessors/УправлениеПодключениемDSS/Forms/ВводПинКода/Module.bsl @@ -1,5 +1,5 @@ /////////////////////////////////////////////////////////////////////////////////////////////////////// -// Copyright (c) 2024, ООО 1С-Софт +// Copyright (c) 2025, ООО 1С-Софт // Все права защищены. Эта программа и сопроводительные материалы предоставляются // в соответствии с условиями лицензии Attribution 4.0 International (CC BY 4.0) // Текст лицензии доступен по ссылке: diff --git a/SSL/src/DataProcessors/УправлениеПодключениемDSS/Forms/ВебАутентификация/Module.bsl b/SSL/src/DataProcessors/УправлениеПодключениемDSS/Forms/ВебАутентификация/Module.bsl index c1516f6c1..01b2a4860 100644 --- a/SSL/src/DataProcessors/УправлениеПодключениемDSS/Forms/ВебАутентификация/Module.bsl +++ b/SSL/src/DataProcessors/УправлениеПодключениемDSS/Forms/ВебАутентификация/Module.bsl @@ -1,5 +1,5 @@ /////////////////////////////////////////////////////////////////////////////////////////////////////// -// Copyright (c) 2024, ООО 1С-Софт +// Copyright (c) 2025, ООО 1С-Софт // Все права защищены. Эта программа и сопроводительные материалы предоставляются // в соответствии с условиями лицензии Attribution 4.0 International (CC BY 4.0) // Текст лицензии доступен по ссылке: diff --git a/SSL/src/DataProcessors/УправлениеПодключениемDSS/Forms/ВыборПрограммы/Module.bsl b/SSL/src/DataProcessors/УправлениеПодключениемDSS/Forms/ВыборПрограммы/Module.bsl index 889d36e59..17d7883e6 100644 --- a/SSL/src/DataProcessors/УправлениеПодключениемDSS/Forms/ВыборПрограммы/Module.bsl +++ b/SSL/src/DataProcessors/УправлениеПодключениемDSS/Forms/ВыборПрограммы/Module.bsl @@ -1,5 +1,5 @@ /////////////////////////////////////////////////////////////////////////////////////////////////////// -// Copyright (c) 2024, ООО 1С-Софт +// Copyright (c) 2025, ООО 1С-Софт // Все права защищены. Эта программа и сопроводительные материалы предоставляются // в соответствии с условиями лицензии Attribution 4.0 International (CC BY 4.0) // Текст лицензии доступен по ссылке: diff --git a/SSL/src/DataProcessors/УправлениеПодключениемDSS/Forms/ВыборСервисаИзОписания/Module.bsl b/SSL/src/DataProcessors/УправлениеПодключениемDSS/Forms/ВыборСервисаИзОписания/Module.bsl index 2850ad6b9..2e688a450 100644 --- a/SSL/src/DataProcessors/УправлениеПодключениемDSS/Forms/ВыборСервисаИзОписания/Module.bsl +++ b/SSL/src/DataProcessors/УправлениеПодключениемDSS/Forms/ВыборСервисаИзОписания/Module.bsl @@ -1,5 +1,5 @@ /////////////////////////////////////////////////////////////////////////////////////////////////////// -// Copyright (c) 2024, ООО 1С-Софт +// Copyright (c) 2025, ООО 1С-Софт // Все права защищены. Эта программа и сопроводительные материалы предоставляются // в соответствии с условиями лицензии Attribution 4.0 International (CC BY 4.0) // Текст лицензии доступен по ссылке: diff --git a/SSL/src/DataProcessors/УправлениеПодключениемDSS/Forms/ВыборТекущейУчетнойЗаписи/Module.bsl b/SSL/src/DataProcessors/УправлениеПодключениемDSS/Forms/ВыборТекущейУчетнойЗаписи/Module.bsl index 3c4f72a33..dc716ba49 100644 --- a/SSL/src/DataProcessors/УправлениеПодключениемDSS/Forms/ВыборТекущейУчетнойЗаписи/Module.bsl +++ b/SSL/src/DataProcessors/УправлениеПодключениемDSS/Forms/ВыборТекущейУчетнойЗаписи/Module.bsl @@ -1,5 +1,5 @@ /////////////////////////////////////////////////////////////////////////////////////////////////////// -// Copyright (c) 2024, ООО 1С-Софт +// Copyright (c) 2025, ООО 1С-Софт // Все права защищены. Эта программа и сопроводительные материалы предоставляются // в соответствии с условиями лицензии Attribution 4.0 International (CC BY 4.0) // Текст лицензии доступен по ссылке: diff --git a/SSL/src/DataProcessors/УправлениеПодключениемDSS/Forms/ВыборЭкземпляровСервераDSS/Module.bsl b/SSL/src/DataProcessors/УправлениеПодключениемDSS/Forms/ВыборЭкземпляровСервераDSS/Module.bsl index e2288b7ee..943898068 100644 --- a/SSL/src/DataProcessors/УправлениеПодключениемDSS/Forms/ВыборЭкземпляровСервераDSS/Module.bsl +++ b/SSL/src/DataProcessors/УправлениеПодключениемDSS/Forms/ВыборЭкземпляровСервераDSS/Module.bsl @@ -1,5 +1,5 @@ /////////////////////////////////////////////////////////////////////////////////////////////////////// -// Copyright (c) 2024, ООО 1С-Софт +// Copyright (c) 2025, ООО 1С-Софт // Все права защищены. Эта программа и сопроводительные материалы предоставляются // в соответствии с условиями лицензии Attribution 4.0 International (CC BY 4.0) // Текст лицензии доступен по ссылке: diff --git a/SSL/src/DataProcessors/УправлениеПодключениемDSS/Forms/ВывестиИнформацию/Module.bsl b/SSL/src/DataProcessors/УправлениеПодключениемDSS/Forms/ВывестиИнформацию/Module.bsl index e57fb25cb..8b777fb22 100644 --- a/SSL/src/DataProcessors/УправлениеПодключениемDSS/Forms/ВывестиИнформацию/Module.bsl +++ b/SSL/src/DataProcessors/УправлениеПодключениемDSS/Forms/ВывестиИнформацию/Module.bsl @@ -1,5 +1,5 @@ /////////////////////////////////////////////////////////////////////////////////////////////////////// -// Copyright (c) 2024, ООО 1С-Софт +// Copyright (c) 2025, ООО 1С-Софт // Все права защищены. Эта программа и сопроводительные материалы предоставляются // в соответствии с условиями лицензии Attribution 4.0 International (CC BY 4.0) // Текст лицензии доступен по ссылке: diff --git a/SSL/src/DataProcessors/УправлениеПодключениемDSS/Forms/ЗаявлениеНаИзменениеРеквизитовПодключения/Module.bsl b/SSL/src/DataProcessors/УправлениеПодключениемDSS/Forms/ЗаявлениеНаИзменениеРеквизитовПодключения/Module.bsl index d02ca6c84..090c31bbf 100644 --- a/SSL/src/DataProcessors/УправлениеПодключениемDSS/Forms/ЗаявлениеНаИзменениеРеквизитовПодключения/Module.bsl +++ b/SSL/src/DataProcessors/УправлениеПодключениемDSS/Forms/ЗаявлениеНаИзменениеРеквизитовПодключения/Module.bsl @@ -1,5 +1,5 @@ /////////////////////////////////////////////////////////////////////////////////////////////////////// -// Copyright (c) 2024, ООО 1С-Софт +// Copyright (c) 2025, ООО 1С-Софт // Все права защищены. Эта программа и сопроводительные материалы предоставляются // в соответствии с условиями лицензии Attribution 4.0 International (CC BY 4.0) // Текст лицензии доступен по ссылке: diff --git a/SSL/src/DataProcessors/УправлениеПодключениемDSS/Forms/НовыйЗапросНаСертификат/Module.bsl b/SSL/src/DataProcessors/УправлениеПодключениемDSS/Forms/НовыйЗапросНаСертификат/Module.bsl index 2bf7fd36d..1857be79f 100644 --- a/SSL/src/DataProcessors/УправлениеПодключениемDSS/Forms/НовыйЗапросНаСертификат/Module.bsl +++ b/SSL/src/DataProcessors/УправлениеПодключениемDSS/Forms/НовыйЗапросНаСертификат/Module.bsl @@ -1,5 +1,5 @@ /////////////////////////////////////////////////////////////////////////////////////////////////////// -// Copyright (c) 2024, ООО 1С-Софт +// Copyright (c) 2025, ООО 1С-Софт // Все права защищены. Эта программа и сопроводительные материалы предоставляются // в соответствии с условиями лицензии Attribution 4.0 International (CC BY 4.0) // Текст лицензии доступен по ссылке: diff --git a/SSL/src/DataProcessors/УправлениеПодключениемDSS/Forms/ОсновнаяФорма/Module.bsl b/SSL/src/DataProcessors/УправлениеПодключениемDSS/Forms/ОсновнаяФорма/Module.bsl index 3661652e2..7898d4b2b 100644 --- a/SSL/src/DataProcessors/УправлениеПодключениемDSS/Forms/ОсновнаяФорма/Module.bsl +++ b/SSL/src/DataProcessors/УправлениеПодключениемDSS/Forms/ОсновнаяФорма/Module.bsl @@ -1,5 +1,5 @@ /////////////////////////////////////////////////////////////////////////////////////////////////////// -// Copyright (c) 2024, ООО 1С-Софт +// Copyright (c) 2025, ООО 1С-Софт // Все права защищены. Эта программа и сопроводительные материалы предоставляются // в соответствии с условиями лицензии Attribution 4.0 International (CC BY 4.0) // Текст лицензии доступен по ссылке: diff --git a/SSL/src/DataProcessors/УправлениеПодключениемDSS/Forms/ПодборУчетнойЗаписи/Module.bsl b/SSL/src/DataProcessors/УправлениеПодключениемDSS/Forms/ПодборУчетнойЗаписи/Module.bsl index 011e30afb..ff7cf4bf3 100644 --- a/SSL/src/DataProcessors/УправлениеПодключениемDSS/Forms/ПодборУчетнойЗаписи/Module.bsl +++ b/SSL/src/DataProcessors/УправлениеПодключениемDSS/Forms/ПодборУчетнойЗаписи/Module.bsl @@ -1,5 +1,5 @@ /////////////////////////////////////////////////////////////////////////////////////////////////////// -// Copyright (c) 2024, ООО 1С-Софт +// Copyright (c) 2025, ООО 1С-Софт // Все права защищены. Эта программа и сопроводительные материалы предоставляются // в соответствии с условиями лицензии Attribution 4.0 International (CC BY 4.0) // Текст лицензии доступен по ссылке: diff --git a/SSL/src/DataProcessors/УправлениеПодключениемDSS/Forms/ПодтверждениеОперацииВыборНавигационнойСсылки/Module.bsl b/SSL/src/DataProcessors/УправлениеПодключениемDSS/Forms/ПодтверждениеОперацииВыборНавигационнойСсылки/Module.bsl index 87510860f..560378d7c 100644 --- a/SSL/src/DataProcessors/УправлениеПодключениемDSS/Forms/ПодтверждениеОперацииВыборНавигационнойСсылки/Module.bsl +++ b/SSL/src/DataProcessors/УправлениеПодключениемDSS/Forms/ПодтверждениеОперацииВыборНавигационнойСсылки/Module.bsl @@ -1,5 +1,5 @@ /////////////////////////////////////////////////////////////////////////////////////////////////////// -// Copyright (c) 2024, ООО 1С-Софт +// Copyright (c) 2025, ООО 1С-Софт // Все права защищены. Эта программа и сопроводительные материалы предоставляются // в соответствии с условиями лицензии Attribution 4.0 International (CC BY 4.0) // Текст лицензии доступен по ссылке: diff --git a/SSL/src/DataProcessors/УправлениеПодключениемDSS/Forms/ПодтверждениеОперацииВыборСпособа/Module.bsl b/SSL/src/DataProcessors/УправлениеПодключениемDSS/Forms/ПодтверждениеОперацииВыборСпособа/Module.bsl index e4ff054ff..37819fa8e 100644 --- a/SSL/src/DataProcessors/УправлениеПодключениемDSS/Forms/ПодтверждениеОперацииВыборСпособа/Module.bsl +++ b/SSL/src/DataProcessors/УправлениеПодключениемDSS/Forms/ПодтверждениеОперацииВыборСпособа/Module.bsl @@ -1,5 +1,5 @@ /////////////////////////////////////////////////////////////////////////////////////////////////////// -// Copyright (c) 2024, ООО 1С-Софт +// Copyright (c) 2025, ООО 1С-Софт // Все права защищены. Эта программа и сопроводительные материалы предоставляются // в соответствии с условиями лицензии Attribution 4.0 International (CC BY 4.0) // Текст лицензии доступен по ссылке: diff --git a/SSL/src/DataProcessors/УправлениеПодключениемDSS/Forms/ПодтверждениеОперацииКодПодтверждения/Module.bsl b/SSL/src/DataProcessors/УправлениеПодключениемDSS/Forms/ПодтверждениеОперацииКодПодтверждения/Module.bsl index a08739687..93cc23d47 100644 --- a/SSL/src/DataProcessors/УправлениеПодключениемDSS/Forms/ПодтверждениеОперацииКодПодтверждения/Module.bsl +++ b/SSL/src/DataProcessors/УправлениеПодключениемDSS/Forms/ПодтверждениеОперацииКодПодтверждения/Module.bsl @@ -1,5 +1,5 @@ /////////////////////////////////////////////////////////////////////////////////////////////////////// -// Copyright (c) 2024, ООО 1С-Софт +// Copyright (c) 2025, ООО 1С-Софт // Все права защищены. Эта программа и сопроводительные материалы предоставляются // в соответствии с условиями лицензии Attribution 4.0 International (CC BY 4.0) // Текст лицензии доступен по ссылке: diff --git a/SSL/src/DataProcessors/УправлениеПодключениемDSS/Forms/ПодтверждениеОперацииМобильноеПриложение/Module.bsl b/SSL/src/DataProcessors/УправлениеПодключениемDSS/Forms/ПодтверждениеОперацииМобильноеПриложение/Module.bsl index c0f195b5b..4f62920f7 100644 --- a/SSL/src/DataProcessors/УправлениеПодключениемDSS/Forms/ПодтверждениеОперацииМобильноеПриложение/Module.bsl +++ b/SSL/src/DataProcessors/УправлениеПодключениемDSS/Forms/ПодтверждениеОперацииМобильноеПриложение/Module.bsl @@ -1,5 +1,5 @@ /////////////////////////////////////////////////////////////////////////////////////////////////////// -// Copyright (c) 2024, ООО 1С-Софт +// Copyright (c) 2025, ООО 1С-Софт // Все права защищены. Эта программа и сопроводительные материалы предоставляются // в соответствии с условиями лицензии Attribution 4.0 International (CC BY 4.0) // Текст лицензии доступен по ссылке: diff --git a/SSL/src/DataProcessors/УправлениеПодключениемDSS/Forms/ПодтверждениеОперацииОфлайн/Module.bsl b/SSL/src/DataProcessors/УправлениеПодключениемDSS/Forms/ПодтверждениеОперацииОфлайн/Module.bsl index 96bc664e2..b9f5e91ae 100644 --- a/SSL/src/DataProcessors/УправлениеПодключениемDSS/Forms/ПодтверждениеОперацииОфлайн/Module.bsl +++ b/SSL/src/DataProcessors/УправлениеПодключениемDSS/Forms/ПодтверждениеОперацииОфлайн/Module.bsl @@ -1,5 +1,5 @@ /////////////////////////////////////////////////////////////////////////////////////////////////////// -// Copyright (c) 2024, ООО 1С-Софт +// Copyright (c) 2025, ООО 1С-Софт // Все права защищены. Эта программа и сопроводительные материалы предоставляются // в соответствии с условиями лицензии Attribution 4.0 International (CC BY 4.0) // Текст лицензии доступен по ссылке: diff --git a/SSL/src/DataProcessors/УправлениеПодключениемDSS/Forms/ПодтверждениеОперацииОшибка/Module.bsl b/SSL/src/DataProcessors/УправлениеПодключениемDSS/Forms/ПодтверждениеОперацииОшибка/Module.bsl index 44e43db03..0c27b9ccb 100644 --- a/SSL/src/DataProcessors/УправлениеПодключениемDSS/Forms/ПодтверждениеОперацииОшибка/Module.bsl +++ b/SSL/src/DataProcessors/УправлениеПодключениемDSS/Forms/ПодтверждениеОперацииОшибка/Module.bsl @@ -1,5 +1,5 @@ /////////////////////////////////////////////////////////////////////////////////////////////////////// -// Copyright (c) 2024, ООО 1С-Софт +// Copyright (c) 2025, ООО 1С-Софт // Все права защищены. Эта программа и сопроводительные материалы предоставляются // в соответствии с условиями лицензии Attribution 4.0 International (CC BY 4.0) // Текст лицензии доступен по ссылке: diff --git a/SSL/src/DataProcessors/УправлениеПодключениемDSS/Forms/ПодтверждениеПользователя/Module.bsl b/SSL/src/DataProcessors/УправлениеПодключениемDSS/Forms/ПодтверждениеПользователя/Module.bsl index 0bb34db19..f2c36e6b9 100644 --- a/SSL/src/DataProcessors/УправлениеПодключениемDSS/Forms/ПодтверждениеПользователя/Module.bsl +++ b/SSL/src/DataProcessors/УправлениеПодключениемDSS/Forms/ПодтверждениеПользователя/Module.bsl @@ -1,5 +1,5 @@ /////////////////////////////////////////////////////////////////////////////////////////////////////// -// Copyright (c) 2024, ООО 1С-Софт +// Copyright (c) 2025, ООО 1С-Софт // Все права защищены. Эта программа и сопроводительные материалы предоставляются // в соответствии с условиями лицензии Attribution 4.0 International (CC BY 4.0) // Текст лицензии доступен по ссылке: diff --git a/SSL/src/DataProcessors/УправлениеПодключениемDSS/Forms/ПроверкаСервиса/Module.bsl b/SSL/src/DataProcessors/УправлениеПодключениемDSS/Forms/ПроверкаСервиса/Module.bsl index b9a7c538c..e2668e0cf 100644 --- a/SSL/src/DataProcessors/УправлениеПодключениемDSS/Forms/ПроверкаСервиса/Module.bsl +++ b/SSL/src/DataProcessors/УправлениеПодключениемDSS/Forms/ПроверкаСервиса/Module.bsl @@ -1,5 +1,5 @@ /////////////////////////////////////////////////////////////////////////////////////////////////////// -// Copyright (c) 2024, ООО 1С-Софт +// Copyright (c) 2025, ООО 1С-Софт // Все права защищены. Эта программа и сопроводительные материалы предоставляются // в соответствии с условиями лицензии Attribution 4.0 International (CC BY 4.0) // Текст лицензии доступен по ссылке: diff --git a/SSL/src/DataProcessors/УправлениеПодключениемDSS/Forms/РасширенныеНастройкиСервера/Module.bsl b/SSL/src/DataProcessors/УправлениеПодключениемDSS/Forms/РасширенныеНастройкиСервера/Module.bsl index 4f6fb3eb1..41d5743f1 100644 --- a/SSL/src/DataProcessors/УправлениеПодключениемDSS/Forms/РасширенныеНастройкиСервера/Module.bsl +++ b/SSL/src/DataProcessors/УправлениеПодключениемDSS/Forms/РасширенныеНастройкиСервера/Module.bsl @@ -1,5 +1,5 @@ /////////////////////////////////////////////////////////////////////////////////////////////////////// -// Copyright (c) 2024, ООО 1С-Софт +// Copyright (c) 2025, ООО 1С-Софт // Все права защищены. Эта программа и сопроводительные материалы предоставляются // в соответствии с условиями лицензии Attribution 4.0 International (CC BY 4.0) // Текст лицензии доступен по ссылке: diff --git a/SSL/src/DataProcessors/УправлениеПодключениемDSS/Forms/СвойствоСертификата/Module.bsl b/SSL/src/DataProcessors/УправлениеПодключениемDSS/Forms/СвойствоСертификата/Module.bsl index 8f7b161af..5ecdff92d 100644 --- a/SSL/src/DataProcessors/УправлениеПодключениемDSS/Forms/СвойствоСертификата/Module.bsl +++ b/SSL/src/DataProcessors/УправлениеПодключениемDSS/Forms/СвойствоСертификата/Module.bsl @@ -1,5 +1,5 @@ /////////////////////////////////////////////////////////////////////////////////////////////////////// -// Copyright (c) 2024, ООО 1С-Софт +// Copyright (c) 2025, ООО 1С-Софт // Все права защищены. Эта программа и сопроводительные материалы предоставляются // в соответствии с условиями лицензии Attribution 4.0 International (CC BY 4.0) // Текст лицензии доступен по ссылке: diff --git a/SSL/src/DataProcessors/УправлениеПодключениемDSS/Forms/СменаПинКода/Module.bsl b/SSL/src/DataProcessors/УправлениеПодключениемDSS/Forms/СменаПинКода/Module.bsl index 3c073d7ae..91cbb6ef3 100644 --- a/SSL/src/DataProcessors/УправлениеПодключениемDSS/Forms/СменаПинКода/Module.bsl +++ b/SSL/src/DataProcessors/УправлениеПодключениемDSS/Forms/СменаПинКода/Module.bsl @@ -1,5 +1,5 @@ /////////////////////////////////////////////////////////////////////////////////////////////////////// -// Copyright (c) 2024, ООО 1С-Софт +// Copyright (c) 2025, ООО 1С-Софт // Все права защищены. Эта программа и сопроводительные материалы предоставляются // в соответствии с условиями лицензии Attribution 4.0 International (CC BY 4.0) // Текст лицензии доступен по ссылке: diff --git a/SSL/src/DataProcessors/УправлениеПодключениемDSS/Forms/СписокСертификатов/Module.bsl b/SSL/src/DataProcessors/УправлениеПодключениемDSS/Forms/СписокСертификатов/Module.bsl index d1bd7c625..c8cb69299 100644 --- a/SSL/src/DataProcessors/УправлениеПодключениемDSS/Forms/СписокСертификатов/Module.bsl +++ b/SSL/src/DataProcessors/УправлениеПодключениемDSS/Forms/СписокСертификатов/Module.bsl @@ -1,5 +1,5 @@ /////////////////////////////////////////////////////////////////////////////////////////////////////// -// Copyright (c) 2024, ООО 1С-Софт +// Copyright (c) 2025, ООО 1С-Софт // Все права защищены. Эта программа и сопроводительные материалы предоставляются // в соответствии с условиями лицензии Attribution 4.0 International (CC BY 4.0) // Текст лицензии доступен по ссылке: diff --git a/SSL/src/DataProcessors/УправлениеПодключениемDSS/Forms/СписокЭкземпляровСервераDSS/Module.bsl b/SSL/src/DataProcessors/УправлениеПодключениемDSS/Forms/СписокЭкземпляровСервераDSS/Module.bsl index f3f284010..83c691b0e 100644 --- a/SSL/src/DataProcessors/УправлениеПодключениемDSS/Forms/СписокЭкземпляровСервераDSS/Module.bsl +++ b/SSL/src/DataProcessors/УправлениеПодключениемDSS/Forms/СписокЭкземпляровСервераDSS/Module.bsl @@ -1,5 +1,5 @@ /////////////////////////////////////////////////////////////////////////////////////////////////////// -// Copyright (c) 2024, ООО 1С-Софт +// Copyright (c) 2025, ООО 1С-Софт // Все права защищены. Эта программа и сопроводительные материалы предоставляются // в соответствии с условиями лицензии Attribution 4.0 International (CC BY 4.0) // Текст лицензии доступен по ссылке: diff --git a/SSL/src/DataProcessors/УправлениеПодключениемDSS/Forms/ФормаУчетнойЗаписи/Module.bsl b/SSL/src/DataProcessors/УправлениеПодключениемDSS/Forms/ФормаУчетнойЗаписи/Module.bsl index b47d99c15..eb04a78a6 100644 --- a/SSL/src/DataProcessors/УправлениеПодключениемDSS/Forms/ФормаУчетнойЗаписи/Module.bsl +++ b/SSL/src/DataProcessors/УправлениеПодключениемDSS/Forms/ФормаУчетнойЗаписи/Module.bsl @@ -1,5 +1,5 @@ /////////////////////////////////////////////////////////////////////////////////////////////////////// -// Copyright (c) 2024, ООО 1С-Софт +// Copyright (c) 2025, ООО 1С-Софт // Все права защищены. Эта программа и сопроводительные материалы предоставляются // в соответствии с условиями лицензии Attribution 4.0 International (CC BY 4.0) // Текст лицензии доступен по ссылке: diff --git a/SSL/src/DataProcessors/УправлениеПодключениемDSS/Forms/ФормаЭкземпляраСервераDSS/Module.bsl b/SSL/src/DataProcessors/УправлениеПодключениемDSS/Forms/ФормаЭкземпляраСервераDSS/Module.bsl index 7bb202aa2..5703eff16 100644 --- a/SSL/src/DataProcessors/УправлениеПодключениемDSS/Forms/ФормаЭкземпляраСервераDSS/Module.bsl +++ b/SSL/src/DataProcessors/УправлениеПодключениемDSS/Forms/ФормаЭкземпляраСервераDSS/Module.bsl @@ -1,5 +1,5 @@ /////////////////////////////////////////////////////////////////////////////////////////////////////// -// Copyright (c) 2024, ООО 1С-Софт +// Copyright (c) 2025, ООО 1С-Софт // Все права защищены. Эта программа и сопроводительные материалы предоставляются // в соответствии с условиями лицензии Attribution 4.0 International (CC BY 4.0) // Текст лицензии доступен по ссылке: diff --git a/SSL/src/DataProcessors/УправлениеПодключениемDSS/ManagerModule.bsl b/SSL/src/DataProcessors/УправлениеПодключениемDSS/ManagerModule.bsl index 5ab9e9366..cbee37e8c 100644 --- a/SSL/src/DataProcessors/УправлениеПодключениемDSS/ManagerModule.bsl +++ b/SSL/src/DataProcessors/УправлениеПодключениемDSS/ManagerModule.bsl @@ -1,5 +1,5 @@ /////////////////////////////////////////////////////////////////////////////////////////////////////// -// Copyright (c) 2024, ООО 1С-Софт +// Copyright (c) 2025, ООО 1С-Софт // Все права защищены. Эта программа и сопроводительные материалы предоставляются // в соответствии с условиями лицензии Attribution 4.0 International (CC BY 4.0) // Текст лицензии доступен по ссылке: diff --git a/SSL/src/DataProcessors/УправлениеХранилищемДвоичныхДанных/Forms/ВнешнееХранилище/Form.form b/SSL/src/DataProcessors/УправлениеХранилищемДвоичныхДанных/Forms/ВнешнееХранилище/Form.form new file mode 100644 index 000000000..302c79123 --- /dev/null +++ b/SSL/src/DataProcessors/УправлениеХранилищемДвоичныхДанных/Forms/ВнешнееХранилище/Form.form @@ -0,0 +1,913 @@ + + + + <key>ru</key> + <value>Настроить внешнее хранилище</value> + + + Страницы + 19 + + СтраницаНастройки + 21 + + Имя + 41 + + <key>ru</key> + <value>Имя</value> + + true + true + + true + + + Имя + + + ИмяРасширеннаяПодсказка + 43 + Label + true + true + + Left + + + + ИмяКонтекстноеМеню + 42 + true + + InputField + Enter + true + Left + true + + true + true + true + true + true + true + Normal + + + + ИдентификаторДоступа + 7 + + <key>ru</key> + <value>Идентификатор доступа</value> + + true + true + + true + + + ИдентификаторДоступа + + + ИдентификаторДоступаРасширеннаяПодсказка + 9 + Label + true + true + + Left + + + + ИдентификаторДоступаКонтекстноеМеню + 8 + true + + InputField + Enter + true + Left + true + + true + true + true + true + true + true + Normal + + + + СекретныйКлюч + 10 + + <key>ru</key> + <value>Ключ доступа</value> + + true + true + + true + + + СекретныйКлюч + + + СекретныйКлючРасширеннаяПодсказка + 12 + Label + true + true + + Left + + + + СекретныйКлючКонтекстноеМеню + 11 + true + + InputField + Enter + true + Left + true + + true + true + true + true + true + true + true + Normal + + + + Регион + 38 + + <key>ru</key> + <value>Регион</value> + + true + true + + true + + + Регион + + + РегионРасширеннаяПодсказка + 40 + Label + true + true + + Left + + + + РегионКонтекстноеМеню + 39 + true + + InputField + Enter + true + Left + true + + true + true + true + true + true + true + Normal + + + + РазрешитьЗапись + 13 + + <key>ru</key> + <value>Разрешить запись</value> + + true + true + + true + + + РазрешитьЗапись + + Left + + OnChange + РазрешитьЗаписьПриИзменении + + + РазрешитьЗаписьРасширеннаяПодсказка + 15 + Label + true + true + + Left + + + + РазрешитьЗаписьКонтекстноеМеню + 14 + true + + CheckBoxField + Enter + true + Left + true + + Switcher + + + + МинимальныйРазмерЗаписываемыхДанных + 16 + + <key>ru</key> + <value>Минимальный размер данных (байт)</value> + + true + true + + true + + + МинимальныйРазмерЗаписываемыхДанных + + + МинимальныйРазмерЗаписываемыхДанныхРасширеннаяПодсказка + 18 + Label + true + true + + Left + + + + МинимальныйРазмерЗаписываемыхДанныхКонтекстноеМеню + 17 + true + + InputField + Enter + true + Left + true + + true + true + true + true + true + true + Normal + + + + ГруппаКнопки + 5 + + КнопкаОК + 1 + + <key>ru</key> + <value>ОК</value> + + true + true + + true + + + КнопкаОКРасширеннаяПодсказка + 2 + Label + true + true + + Left + + + UsualButton + Form.Command.ОК + Normal + Auto + true + true + UserCmds + Auto + + + КнопкаОтмена + 3 + + <key>ru</key> + <value>Отмена</value> + + true + true + + true + + + КнопкаОтменаРасширеннаяПодсказка + 4 + Label + true + true + + Left + + + UsualButton + Form.Command.Отменить + Normal + Auto + true + true + UserCmds + Auto + + true + true + + true + + + <key>ru</key> + <value>Кнопки</value> + + Right + + ГруппаКнопкиРасширеннаяПодсказка + 6 + Label + true + true + + Left + + + UsualGroup + + HorizontalIfPossible + Auto + true + true + Auto + Auto + + + true + true + + true + + + <key>ru</key> + <value>Общие настройки</value> + + + СтраницаНастройкиРасширеннаяПодсказка + 22 + Label + true + true + + Left + + + Page + + Vertical + auto + false + + + + СтраницаОчистка + 23 + + ДекорацияОчисткаОбъяснение + 32 + + <key>ru</key> + <value>Очистка неиспользуемого места. +Хранилище будет очищено от записей, которые были удалены до указанной даты. +Рекомендуется установить дату очистки до даты создания последней резервной копии базы данных при условии, что есть более поздняя резервная копия хранилища двоичных данных.</value> + + true + true + + true + + + ДекорацияОчисткаОбъяснениеРасширеннаяПодсказка + 34 + Label + true + true + + Left + + + + ДекорацияОчисткаОбъяснениеКонтекстноеМеню + 33 + true + + Label + true + true + + Left + + + + ДатаПоследнейОчистки + 35 + + <key>ru</key> + <value>Последняя дата очистки</value> + + true + true + + true + + + ДатаПоследнейОчистки + + + ДатаПоследнейОчисткиРасширеннаяПодсказка + 37 + Label + true + true + + Left + + + + ДатаПоследнейОчисткиКонтекстноеМеню + 36 + true + + InputField + true + Enter + true + Left + true + + true + true + true + true + true + true + Normal + + + + ДатаОчистки + 29 + + <key>ru</key> + <value>Очистить данные до даты</value> + + true + true + + true + + + ДатаОчистки + + + ДатаОчисткиРасширеннаяПодсказка + 31 + Label + true + true + + Left + + + + ДатаОчисткиКонтекстноеМеню + 30 + true + + InputField + Enter + true + Left + true + + true + true + true + true + true + true + Normal + + + + ГруппаКнопки2 + 25 + + КнопкаОчистить + 27 + + <key>ru</key> + <value>Очистить</value> + + true + true + + true + + + КнопкаОчиститьРасширеннаяПодсказка + 28 + Label + true + true + + Left + + + UsualButton + Form.Command.Очистить + Normal + Auto + true + true + UserCmds + Auto + + true + true + + true + + + <key>ru</key> + <value>Кнопки 2</value> + + Right + + ГруппаКнопки2РасширеннаяПодсказка + 26 + Label + true + true + + Left + + + UsualGroup + + HorizontalIfPossible + Auto + WeakSeparation + true + true + Auto + Auto + + + true + true + + true + + + <key>ru</key> + <value>Очистка хранилища</value> + + + СтраницаОчисткаРасширеннаяПодсказка + 24 + Label + true + true + + Left + + + Page + + Vertical + auto + false + + + true + true + + true + + + <key>ru</key> + <value>Страницы</value> + + + СтраницыРасширеннаяПодсказка + 20 + Label + true + true + + Left + + + Pages + + Auto + Auto + + + + ФормаКоманднаяПанель + -1 + Left + + + OnCreateAtServer + ПриСозданииНаСервере + + DontBlock + true + true + Vertical + true + true + true + auto + true + + Объект + 1 + + DataProcessorObject.УправлениеХранилищемДвоичныхДанных + + + true + + + true + +
                      true
                      +
                      + + ИдентификаторДоступа + 2 + + String + + + + true + + + true + + + + СекретныйКлюч + + <key>ru</key> + <value>Секретный ключ</value> + + 3 + + String + + + + true + + + true + + + + РазрешитьЗапись + 4 + + Boolean + + + true + + + true + + + + МинимальныйРазмерЗаписываемыхДанных + 5 + + Number + + 10 + + + + true + + + true + + + + ДатаОчистки + + <key>ru</key> + <value>Дата очистки</value> + + 6 + + Date + + + + true + + + true + + + + ДатаПоследнейОчистки + + <key>ru</key> + <value>Дата последней очистки</value> + + 7 + + Date + + + + true + + + true + + + + ИмяХранилища + 8 + + String + + + + true + + + true + + + + Регион + + <key>ru</key> + <value>Регион</value> + + 9 + + String + + + + true + + + true + + + + Имя + + <key>ru</key> + <value>Имя</value> + + 10 + + String + + + + true + + + true + + + + ОК + + <key>ru</key> + <value>ОК</value> + + 1 + + ru + ОК + + + true + + + + ОК + + + Auto + Auto + + + Отменить + + <key>ru</key> + <value>Отменить</value> + + 2 + + ru + Отменить + + + true + + + + Отменить + + + Auto + Auto + + + Очистить + + <key>ru</key> + <value>Очистить</value> + + 3 + + ru + Очистить + + + true + + + + Очистить + + + Auto + Auto + + + ИмяХранилища + + String + + + + + ОткрытаПоСценарию + + Boolean + + + + + + + +
                      diff --git a/SSL/src/DataProcessors/УправлениеХранилищемДвоичныхДанных/Forms/ВнешнееХранилище/Help/ru.html b/SSL/src/DataProcessors/УправлениеХранилищемДвоичныхДанных/Forms/ВнешнееХранилище/Help/ru.html new file mode 100644 index 000000000..2b0749998 --- /dev/null +++ b/SSL/src/DataProcessors/УправлениеХранилищемДвоичныхДанных/Forms/ВнешнееХранилище/Help/ru.html @@ -0,0 +1,26 @@ + +

                      Управление внешним хранилищем двоичных данных

                      +

                      +
                      Диалог предназначен для настройки выбранного внешнего хранилища двоичных данных.

                      +

                      Общие настройки

                      +
                      +
                      +
                      • Имя - Уникальное название внешнего хранилища двоичных данных, не более 32 символов.
                      • +
                      • Идентификатор доступа - Идентификатор доступа (AccessId) к внешнему хранилищу двоичных данных.
                      • +
                      • Ключ доступа - Секретный ключ доступа (SecretKey) к внешнему хранилищу двоичных данных.
                      +
                      • Разрешить запись - Если установлен, все новые данные, для которых выполнена настройка, будут записываться в хранилище. Данные, которые уже находятся в хранилище, будут получаться из него и будут доступны для пользователя.
                      • +
                      • Хранилище по умолчанию  - Если установлен, то все новые данные, для которых не была выполнена настройка, будут записываться в хранилище. Данные, которые уже находятся в хранилище, будут получаться из него и будут доступны для пользователя.
                      • +
                      • Минимальный размер данных (байт) - отображает текущее значение размера данных, при превышении которого данные будут записаны в хранилище.
                      +

                      После изменения необходимых полей необходимо нажать кнопку "ОК" для обновления настроек внешнего хранилища, либо "Отмена" для закрытия формы и возврата к форме выбора хранилища.

                      +

                      +
                      +

                        +

                      Внимание! Для настройки хранилища двоичных данных требуется монопольный режим работы с информационной базой.

                      +

                      Очистка хранилища

                      +

                      +
                      +
                      Данная закладка предназначена для запуска очистки неиспользуемого места внешнего хранилища двоичных данных. Для этого необходимо выбрать дату и время в поле "Очистить данные до даты", после чего нажать кнопку "Очистить".
                      +

                      + + + \ No newline at end of file diff --git a/SSL/src/DataProcessors/УправлениеХранилищемДвоичныхДанных/Forms/ВнешнееХранилище/Module.bsl b/SSL/src/DataProcessors/УправлениеХранилищемДвоичныхДанных/Forms/ВнешнееХранилище/Module.bsl new file mode 100644 index 000000000..fadd9d1d3 --- /dev/null +++ b/SSL/src/DataProcessors/УправлениеХранилищемДвоичныхДанных/Forms/ВнешнееХранилище/Module.bsl @@ -0,0 +1,156 @@ +/////////////////////////////////////////////////////////////////////////////////////////////////////// +// Copyright (c) 2025, ООО 1С-Софт +// Все права защищены. Эта программа и сопроводительные материалы предоставляются +// в соответствии с условиями лицензии Attribution 4.0 International (CC BY 4.0) +// Текст лицензии доступен по ссылке: +// https://creativecommons.org/licenses/by/4.0/legalcode +/////////////////////////////////////////////////////////////////////////////////////////////////////// + +#Область ОбработчикиСобытийФормы + +&НаСервере +Процедура ПриСозданииНаСервере(Отказ, СтандартнаяОбработка) + + Если Не Параметры.ОткрытаПоСценарию Тогда + ВызватьИсключение НСтр("ru = 'Форма не предназначена для непосредственного использования.'"); + КонецЕсли; + + ИмяХранилища = Параметры.ИмяХранилища; + + ВнешнееХДД = ВнешниеХранилищаДвоичныхДанных.Найти(ИмяХранилища); + Если ВнешнееХДД = Неопределено Тогда + Отказ = Истина; + Возврат; + КонецЕсли; + + ЗаполнитьРеквизитыФормы(ВнешнееХДД); + + Элементы.МинимальныйРазмерЗаписываемыхДанных.Доступность = РазрешитьЗапись; + +КонецПроцедуры + +#КонецОбласти + +#Область ОбработчикиСобытийЭлементовШапкиФормы + +&НаКлиенте +Процедура РазрешитьЗаписьПриИзменении(Элемент) + + Элементы.МинимальныйРазмерЗаписываемыхДанных.Доступность = РазрешитьЗапись; + + Если РазрешитьЗапись Тогда + МинимальныйРазмерЗаписываемыхДанных = ЗаписываемыхДанныхМинимальныйРазмер(ИмяХранилища); + Иначе + МинимальныйРазмерЗаписываемыхДанных = 0; + КонецЕсли; + +КонецПроцедуры + +#КонецОбласти + +#Область ОбработчикиКомандФормы + +&НаКлиенте +Процедура Очистить(Команда) + + ОчиститьНаСервере(); + +КонецПроцедуры + +&НаКлиенте +Процедура ОК(Команда) + + ЗаписатьИзмененияВХранилище(); + Закрыть(Истина); + +КонецПроцедуры + +&НаКлиенте +Процедура Отменить(Команда) + + Закрыть(Ложь); + +КонецПроцедуры + +#КонецОбласти + +#Область СлужебныеПроцедурыИФункции + +&НаСервереБезКонтекста +Функция ЗаписываемыхДанныхМинимальныйРазмер(Знач ИмяХранилища) + + ВнешнееХДД = ВнешниеХранилищаДвоичныхДанных[ИмяХранилища]; + Возврат ВнешнееХДД.МинимальныйРазмерЗаписываемыхДанных; + +КонецФункции + +&НаСервере +Процедура ЗаполнитьРеквизитыФормы(ВнешнееХДД) + + Имя = ВнешнееХДД.Имя; + ИдентификаторДоступа = ВнешнееХДД.ПараметрыДоступа.ИдентификаторДоступа; + СекретныйКлюч = ВнешнееХДД.ПараметрыДоступа.СекретныйКлюч; + Регион = ВнешнееХДД.ПараметрыДоступа.Регион; + + РазрешитьЗапись = ВнешнееХДД.РежимЧтенияЗаписи = РежимЧтенияЗаписиХранилищаДвоичныхДанных.ЧтениеИЗапись; + + Если РазрешитьЗапись Тогда + + МинимальныйРазмерЗаписываемыхДанных = ВнешнееХДД.МинимальныйРазмерЗаписываемыхДанных ; + + Иначе + + МинимальныйРазмерЗаписываемыхДанных = 0; + + КонецЕсли; + + Если ВнешнееХДД.ДатаПоследнейОчистки > Дата(1, 1, 1) Тогда + ДатаПоследнейОчистки = ВнешнееХДД.ДатаПоследнейОчистки; + Иначе + ДатаПоследнейОчистки = Неопределено; + КонецЕсли; + +КонецПроцедуры + +&НаСервере +Процедура ОчиститьНаСервере() + + ВнешнееХДД = ВнешниеХранилищаДвоичныхДанных[ИмяХранилища]; + ВнешнееХДД.ОчиститьНеиспользуемоеМестоПоУниверсальнойДате(УниверсальноеВремя(ДатаОчистки)); + Если ВнешнееХДД.ДатаПоследнейОчистки > Дата(1, 1, 1) Тогда + ДатаПоследнейОчистки = ВнешнееХДД.ДатаПоследнейОчистки; + Иначе + ДатаПоследнейОчистки = Неопределено; + КонецЕсли; + +КонецПроцедуры + +&НаСервере +Процедура ЗаписатьИзмененияВХранилище() + + ПараметрыДоступаВХДД = Неопределено; + + // АПК:487-выкл Поддержка новых методов платформы (исполняемый код безопасен) + Выполнить("ПараметрыДоступаВХДД = Новый ПараметрыДоступаВнешнегоХранилищаДвоичныхДанных()"); + // АПК:487-вкл + + ПараметрыДоступаВХДД.ИдентификаторДоступа = ИдентификаторДоступа; + ПараметрыДоступаВХДД.СекретныйКлюч = СекретныйКлюч; + ПараметрыДоступаВХДД.Регион = Регион; + + ВнешнееХДД = ВнешниеХранилищаДвоичныхДанных[ИмяХранилища]; + ВнешнееХДД.ПараметрыДоступа = ПараметрыДоступаВХДД; + ВнешнееХДД.Имя = Имя; + + Если РазрешитьЗапись Тогда + ВнешнееХДД.РежимЧтенияЗаписи = РежимЧтенияЗаписиХранилищаДвоичныхДанных.ЧтениеИЗапись; + ВнешнееХДД.МинимальныйРазмерЗаписываемыхДанных = МинимальныйРазмерЗаписываемыхДанных; + Иначе + ВнешнееХДД.РежимЧтенияЗаписи = РежимЧтенияЗаписиХранилищаДвоичныхДанных.ТолькоЧтение; + КонецЕсли; + + ВнешнееХДД.Записать(); + +КонецПроцедуры + +#КонецОбласти \ No newline at end of file diff --git a/SSL/src/DataProcessors/УправлениеХранилищемДвоичныхДанных/Forms/ВстроенноеХранилище/Form.form b/SSL/src/DataProcessors/УправлениеХранилищемДвоичныхДанных/Forms/ВстроенноеХранилище/Form.form new file mode 100644 index 000000000..6a05d3f17 --- /dev/null +++ b/SSL/src/DataProcessors/УправлениеХранилищемДвоичныхДанных/Forms/ВстроенноеХранилище/Form.form @@ -0,0 +1,1199 @@ + + + + <key>ru</key> + <value>Настроить встроенное хранилище</value> + + + Страницы + 1 + + СтраницаНастройки + 3 + + ГруппаРежимИспользованияХДД + 172 + + РазрешитьЗапись + 83 + + <key>ru</key> + <value>Разрешить запись</value> + + true + true + + true + + + РазрешитьЗапись + + Button + + OnChange + РазрешитьЗаписьПриИзменении + + + РазрешитьЗаписьРасширеннаяПодсказка + 85 + Label + true + true + + Left + + + + РазрешитьЗаписьКонтекстноеМеню + 84 + true + + CheckBoxField + Enter + true + Left + true + + Switcher + + + true + true + + true + + + <key>ru</key> + <value>Режим использования ХДД</value> + + + ГруппаРежимИспользованияХДДРасширеннаяПодсказка + 173 + Label + true + true + + Left + + + UsualGroup + + Vertical + Auto + true + true + auto + Auto + Auto + + + + МинимальныйРазмерЗаписываемыхДанных + 156 + + <key>ru</key> + <value>Минимальный размер данных (байт)</value> + + true + true + + true + + + МинимальныйРазмерЗаписываемыхДанных + + + ru + Настройка ограничивает размер данных, которые попадают в хранилище при записи. Вводимое значение должно быть не меньше 2048 байт. + + + OnChange + МинимальныйРазмерЗаписываемыхДанныхПриИзменении + + + МинимальныйРазмерЗаписываемыхДанныхРасширеннаяПодсказка + 158 + Label + true + true + + Left + + + + МинимальныйРазмерЗаписываемыхДанныхКонтекстноеМеню + 157 + true + + InputField + Enter + true + Left + true + + true + true + true + true + true + true + Normal + + + + ГруппаКнопки + 100 + + КнопкаОК + 159 + + <key>ru</key> + <value>ОК</value> + + true + true + + true + + + КнопкаОКРасширеннаяПодсказка + 160 + Label + true + true + + Left + + + UsualButton + Form.Command.ОК + Normal + Auto + true + true + UserCmds + Auto + + + КнопкаОтмена + 161 + + <key>ru</key> + <value>Отмена</value> + + true + true + + true + + + КнопкаОтменаРасширеннаяПодсказка + 162 + Label + true + true + + Left + + + UsualButton + Form.Command.Отменить + Normal + Auto + true + true + UserCmds + Auto + + true + true + + true + + + <key>ru</key> + <value>Кнопки</value> + + Right + + ГруппаКнопкиРасширеннаяПодсказка + 101 + Label + true + true + + Left + + + UsualGroup + + HorizontalIfPossible + Auto + true + true + Auto + Auto + + + true + true + + true + + + <key>ru</key> + <value>Общие настройки</value> + + + СтраницаНастройкиРасширеннаяПодсказка + 4 + Label + true + true + + Left + + + Page + + Vertical + auto + false + + + + СтраницаОчисткаХранилища + 121 + + ДекорацияОчисткаХранилищаПояснение + 123 + + <key>ru</key> + <value>Очистка неиспользуемого места. +Хранилище будет очищено от записей, которые были удалены до указанной даты. +Рекомендуется установить дату очистки до даты создания последней резервной копии базы данных при условии, что есть более поздняя резервная копия хранилища двоичных данных.</value> + + true + true + + true + + + ДекорацияОчисткаХранилищаПояснениеРасширеннаяПодсказка + 125 + Label + true + true + + Left + + + + ДекорацияОчисткаХранилищаПояснениеКонтекстноеМеню + 124 + true + + Label + true + true + true + false + + Left + + + + ДатаОчистки + 126 + + <key>ru</key> + <value>Очистить данные до даты</value> + + true + true + + true + + + ДатаОчистки + + + ДатаОчисткиРасширеннаяПодсказка + 128 + Label + true + true + + Left + + + + ДатаОчисткиКонтекстноеМеню + 127 + true + + InputField + Enter + true + Left + true + + true + true + true + true + true + true + Normal + + + + КнопкаОчиститьХранилище + 129 + + <key>ru</key> + <value>Очистить</value> + + true + true + + true + + + КнопкаОчиститьХранилищеРасширеннаяПодсказка + 130 + Label + true + true + + Left + + + UsualButton + Form.Command.ОчиститьХранилище + Normal + Auto + true + true + UserCmds + None + Auto + + + AutoClearChooseRepeat + 137 + true + true + + true + + + <key>ru</key> + <value>Auto clear choose repeat</value> + + + AutoClearChooseRepeatРасширеннаяПодсказка + 138 + Label + true + true + + Left + + + UsualGroup + + AlwaysHorizontal + Auto + WeakSeparation + true + true + Auto + Auto + + + true + true + + true + + + <key>ru</key> + <value>Очистка хранилища</value> + + true + + СтраницаОчисткаХранилищаРасширеннаяПодсказка + 122 + Label + true + true + + Left + + + Page + + Vertical + auto + false + + + + СтраницаИнформацияОХранилище + 102 + + ОбъемХранимыхДанных + 104 + + <key>ru</key> + <value>Объем хранимых данных, Байт</value> + + true + false + + true + + + ОбъемХранимыхДанных + + true + + ОбъемХранимыхДанныхРасширеннаяПодсказка + 106 + Label + true + true + + Left + + + + ОбъемХранимыхДанныхКонтекстноеМеню + 105 + true + + InputField + true + Enter + true + Left + true + + true + true + true + true + true + true + Normal + + + + ОбъемУдаленныхДанных + 107 + + <key>ru</key> + <value>Объем данных для отложенного удаления, Байт</value> + + true + false + + true + + + ОбъемУдаленныхДанных + + true + + ОбъемУдаленныхДанныхРасширеннаяПодсказка + 109 + Label + true + true + + Left + + + + ОбъемУдаленныхДанныхКонтекстноеМеню + 108 + true + + InputField + true + Enter + true + Left + true + + true + true + true + true + true + true + Normal + + + + КоличествоХранимыхЭлементов + 110 + + <key>ru</key> + <value>Количество элементов двоичных данных в хранилище</value> + + true + false + + true + + + КоличествоХранимыхЭлементов + + true + + КоличествоХранимыхЭлементовРасширеннаяПодсказка + 112 + Label + true + true + + Left + + + + КоличествоХранимыхЭлементовКонтекстноеМеню + 111 + true + + InputField + true + Enter + true + Left + true + + true + true + true + true + true + true + Normal + + + + КоличествоУдаленныхЭлементов + 113 + + <key>ru</key> + <value>Количество элементов двоичных данных для отложенного удаления</value> + + true + false + + true + + + КоличествоУдаленныхЭлементов + + true + + КоличествоУдаленныхЭлементовРасширеннаяПодсказка + 115 + Label + true + true + + Left + + + + КоличествоУдаленныхЭлементовКонтекстноеМеню + 114 + true + + InputField + true + Enter + true + Left + true + + true + true + true + true + true + true + Normal + + + + ОбъемХранимыхДанныхНаДиске + 163 + + <key>ru</key> + <value>Объем хранимых данных с учетом дедупликации, Байт</value> + + true + false + + true + + + ОбъемХранимыхДанныхНаДиске + + + ОбъемХранимыхДанныхНаДискеРасширеннаяПодсказка + 165 + Label + true + true + + Left + + + + ОбъемХранимыхДанныхНаДискеКонтекстноеМеню + 164 + true + + InputField + true + Enter + true + Left + true + + true + true + true + true + true + true + Normal + + + + КоличествоДедуплицированныхЭлементов + 166 + + <key>ru</key> + <value>Количество дедуплицированных элементов двоичных данных</value> + + true + false + + true + + + КоличествоДедуплицированныхЭлементов + + + КоличествоДедуплицированныхЭлементовРасширеннаяПодсказка + 168 + Label + true + true + + Left + + + + КоличествоДедуплицированныхЭлементовКонтекстноеМеню + 167 + true + + InputField + true + Enter + true + Left + true + + true + true + true + true + true + true + Normal + + + + ДатаПоследнейОчистки + 116 + + <key>ru</key> + <value>Дата последней очистки неиспользуемых данных</value> + + true + false + + true + + + ДатаПоследнейОчистки + + true + + ДатаПоследнейОчисткиРасширеннаяПодсказка + 118 + Label + true + true + + Left + + + + ДатаПоследнейОчисткиКонтекстноеМеню + 117 + true + + InputField + true + Enter + true + Left + true + + true + true + true + true + true + true + Normal + + + + КнопкаОбновитьИнформацию + 119 + + <key>ru</key> + <value>Обновить</value> + + true + true + + true + + + КнопкаОбновитьИнформациюРасширеннаяПодсказка + 120 + Label + true + true + + Left + + + UsualButton + Form.Command.ОбновитьИнформацию + Normal + Auto + true + true + UserCmds + Auto + + true + true + + true + + + <key>ru</key> + <value>Информация о хранилище</value> + + + СтраницаИнформацияОХранилищеРасширеннаяПодсказка + 103 + Label + true + true + + Left + + + Page + + Vertical + auto + false + + + true + true + + true + + + <key>ru</key> + <value>Страницы</value> + + + СтраницыРасширеннаяПодсказка + 2 + Label + true + true + + Left + + + Pages + + + OnCurrentPageChange + СтраницыПриСменеСтраницы + + TabsOnTop + Auto + + + + FormCommandBar + -1 + Left + + + OnCreateAtServer + ПриСозданииНаСервере + + LockWholeInterface + Use + UseList + true + true + Vertical + true + true + true + auto + true + + Object + 1 + + DataProcessorObject.УправлениеХранилищемДвоичныхДанных + + + true + + + true + +
                      true
                      +
                      + + РазрешитьЗапись + 12 + + Boolean + + + true + + + true + + + + ОбъемХранимыхДанных + + <key>ru</key> + <value>Объем хранимых данных</value> + + 9 + + Number + + 18 + true + + + + true + + + true + + + + ОбъемУдаленныхДанных + + <key>ru</key> + <value>Объем удаленных данных</value> + + 10 + + Number + + 18 + true + + + + true + + + true + + + + КоличествоУдаленныхЭлементов + + <key>ru</key> + <value>Количество удаленных элементов</value> + + 13 + + Number + + 18 + true + + + + true + + + true + + + + КоличествоХранимыхЭлементов + + <key>ru</key> + <value>Количество хранимых элементов</value> + + 14 + + Number + + 18 + true + + + + true + + + true + + + + ДатаПоследнейОчистки + + <key>ru</key> + <value>Дата последней очистки</value> + + 15 + + Date + + + + true + + + true + + + + ДатаОчистки + + <key>ru</key> + <value>Дата очистки</value> + + 16 + + Date + + + + true + + + true + + + + ВыполнятьОчисткуАвтоматически + 17 + + Boolean + + + true + + + true + + + + МинимальныйРазмерЗаписываемыхДанных + + <key>ru</key> + <value>Минимальный размер записываемых данных</value> + + 2 + + Number + + 10 + + + + true + + + true + + + + ОбъемХранимыхДанныхНаДиске + + <key>ru</key> + <value>Объем хранимых данных на диске</value> + + 11 + + Number + + 18 + true + + + + true + + + true + + + + КоличествоДедуплицированныхЭлементов + + <key>ru</key> + <value>Количество дедуплицированных объектов</value> + + 21 + + Number + + 18 + true + + + + true + + + true + + + + ОбновитьИнформацию + + <key>ru</key> + <value>Обновить информацию</value> + + 4 + + ru + Обновить информацию о хранилище двоичных данных + + + true + + + + ОбновитьИнформацию + + + Auto + Auto + + + ОчиститьХранилище + + <key>ru</key> + <value>Очистить хранилище</value> + + 5 + + ru + Очистить хранилище + + + true + + + + ОчиститьХранилище + + + Auto + Auto + + + ОК + + <key>ru</key> + <value>ОК</value> + + 3 + + ru + ОК + + + true + + + + ОК + + + Auto + Auto + + + Отменить + + <key>ru</key> + <value>Отмена</value> + + 7 + + ru + Отменить + + + true + + + + Отменить + + + Auto + Auto + + + ОткрытаПоСценарию + + Boolean + + + + + + + +
                      diff --git a/SSL/src/DataProcessors/УправлениеХранилищемДвоичныхДанных/Forms/ВстроенноеХранилище/Help/ru.html b/SSL/src/DataProcessors/УправлениеХранилищемДвоичныхДанных/Forms/ВстроенноеХранилище/Help/ru.html new file mode 100644 index 000000000..635c55419 --- /dev/null +++ b/SSL/src/DataProcessors/УправлениеХранилищемДвоичныхДанных/Forms/ВстроенноеХранилище/Help/ru.html @@ -0,0 +1,99 @@ + +

                      Управление хранилищем двоичных данных

                      + +

                      Диалог предназначен для настройки встроенного хранилища двоичных данных.

                      +

                      +

                      Общие настройки

                      +
                      • Хранилище двоичных данных - управляет режимом использования хранилища двоичных данных. После отключения хранилища все ранее записанные в него данные становятся недоступными для чтения.
                      • +
                      • Разрешить запись - Если установлен, все новые данные, для которых выполнена настройка, будут записываться в хранилище. Данные, которые уже находятся в хранилище, будут получаться из него и будут доступны для пользователя.
                      • +
                      • Хранилище по умолчанию  - Если установлен, то все новые данные, для которых не была выполнена настройка, будут записываться в хранилище. Данные, которые уже находятся в хранилище, будут получаться из него и будут доступны для пользователя.
                      • +
                      • Минимальный размер данных (байт) - отображает текущее значение размера данных, при превышении которого данные будут записаны в хранилище. Чтобы установить другой размер, нажмите кнопку Изменить.
                      +

                      После изменения необходимых полей необходимо нажать кнопку "ОК" для обновления настроек внешнего хранилища, либо "Отмена" для закрытия формы и возврата к форме выбора хранилища.

                      +

                        +

                        +
                      Внимание! Для настройки хранилища двоичных данных требуется монопольный режим работы с информационной базой.
                      +

                      +

                      Создание резервной копии

                      +

                      +

                      +

                      +

                      Данная закладка предназначена для настройки и создания резервной копии хранилища двоичных данных.

                      +

                      Выберите тип создаваемой копии:

                      +

                      +
                      • Полная - сохраняет все содержимое хранилища двоичных данных.
                      • +
                      • Дифференциальная - сохраняет изменения, которые произошли с данными с момента начала предыдущего полного резервного копирования. Для выполнения дифференциального резервного копирования требуется наличие одной полной резервной копии.
                      +

                      +
                      Создание резервной копии зависит от выбранного типа:
                      +
                      +
                      • Для создания полной копии требуется указать Имя файла полной резервной копии.
                      • +
                      • Для создания дифференциальной копии требуется указать Имя файла полной резервной копии (от которой будет создаваться дифференциальная резервная копия) и Имя файла дифференциальной копии. 
                      +

                      +
                      При нажатии кнопки Создать будет сформирован файл c расширением: +

                      +
                      +
                      • .sbf - для полной резервной копии,
                      • +
                      • .sbd - для дифференциальной резервной копии.

                      Учетная запись операционной системы от имени которой запущен сервер 1С, обслуживающий сервис хранилища двоичных данных, должна иметь доступ к файлам создаваемых или восстанавливаемых резервных копий.

                      +

                      +

                      Восстановление из резервной копии

                      +

                      +
                      +
                      +

                      Данная закладка предназначена для восстановления хранилища двоичных данных из резервной копии.

                      +

                      Выберите тип разервной копии для восстановления:

                      +

                      +
                      • Полная - сохраняет все содержимое хранилища двоичных данных.
                      • +
                      • Дифференциальная - сохраняет изменения, которые произошли с данными с момента начала предыдущего полного резервного копирования. Для выполнения дифференциального резервного копирования требуется наличие одной полной резервной копии.
                      +

                      +

                      Восстановление данных из резервной копии зависит от выбранного типа:

                      +

                      +
                      • При выборе полной резервной копии достаточно указать Имя файла полной резервной копии.
                      • +
                      • При выборе дифференциальной копии требуется указать Имя файла полной резервной копии и Имя файла дифференциальной копии (должен быть создан на основании указанного файла полной копии). 

                      Для восстановления данных из указанной копии нажмите кнопку Восстановить.
                      Учетная запись операционной системы от имени которой запущен сервер 1С, обслуживающий сервис хранилища двоичных данных, должна иметь доступ к файлам создаваемых или восстанавливаемых резервных копий.

                      +

                      +
                      +
                      Внимание! Для восстановления хранилища двоичных данных из резервной копии требуется монопольный режим работы с информационной базой.

                      +
                      +
                      +
                      +
                      +
                      +
                      +
                      +
                      +

                      +

                      +

                      Информация о хранилище

                      +

                      +

                      +

                      +

                      Различная статистическая информация о хранилище двоичных данных:

                      +
                      • Объем хранимых данных +

                        Объем хранилища двоичных данных в байтах, без учета сжатия. 
                        Включает в себя длину актуальных, а также помеченных для удаления данных. Файлы метаданных хранилища не учитываются.

                      • +
                      • Объем данных для отложенного удаления +

                        Объем данных, помеченных для удаления, но еще физически не удаленных, в байтах.

                      • +
                      • Количество элементов двоичных данных в хранилище +

                        Включает в себя объекты актуальных, а также помеченных для удаления данных.

                      • +
                      • Количество элементов двоичных данных для отложенного удаления +

                        Количество объектов, помеченных для удаления, но еще физически не удаленных.

                      • +
                      • Объем хранимых данных с учетом дедупликации +

                        Размер данных в хранилища в данных на текущий момент с учетом дедупликации.

                      • +
                      • Количество дедуплицированных объектов двоичных данных +

                        Количество дедуплицированных элементов в хранилище двоичных данных.

                      • +
                      • Дата последней очистки неиспользуемых данных +

                        Наибольшее дата/время, на которое производилась очистка хранилища двоичных данных.

                      • +
                      • Обновить +

                        По нажатию этой кнопки обновляются данные информации хранилища двоичных данных.

                      +

                      Очистка хранилища

                      + +

                      +

                      +

                      Физически очищает удаленные данные из хранилища двоичных данных до указанной даты.

                      +
                      • Выполнять очистку автоматически +

                        Указывает, будет ли очистка хранилища двоичных данных вызываться автоматически после окончания создания резервной копии. 
                        Если автоматическая очистка выключена, то будет возможность выполнить очистку вручную путем нажатия кнопки "Очистить".

                      • +
                      • Очистить данные до указанной даты +

                        Указывает дату, до которой будут физически очищены из хранилища удаленные данные.

                      • +
                      • Очистить +

                        Запускает очистку хранилища (физическое удаление помеченных на удаление данных хранилища). 
                        Если выбранная дата очистки будет раньше, чем дата с последней очистки, то очистка будет сразу успешно завершена. Время, на которое была сделана последняя очистка, не изменится.

                      • +
                      • Автоматически очищать хранилище двоичных данных, сохраняя удаленные данные за последние ХХ дней +

                        Данные, удаленные в течение этого периода, не будут физически очищены из хранилища при очередной чистке.

                      • +
                      • Применить +

                        Применить настройку периода автоматического очищения удаленных данных из хранилища двоичных данных.

                      \ No newline at end of file diff --git a/SSL/src/DataProcessors/УправлениеХранилищемДвоичныхДанных/Forms/ВстроенноеХранилище/Module.bsl b/SSL/src/DataProcessors/УправлениеХранилищемДвоичныхДанных/Forms/ВстроенноеХранилище/Module.bsl new file mode 100644 index 000000000..7c07a95bc --- /dev/null +++ b/SSL/src/DataProcessors/УправлениеХранилищемДвоичныхДанных/Forms/ВстроенноеХранилище/Module.bsl @@ -0,0 +1,186 @@ +/////////////////////////////////////////////////////////////////////////////////////////////////////// +// Copyright (c) 2025, ООО 1С-Софт +// Все права защищены. Эта программа и сопроводительные материалы предоставляются +// в соответствии с условиями лицензии Attribution 4.0 International (CC BY 4.0) +// Текст лицензии доступен по ссылке: +// https://creativecommons.org/licenses/by/4.0/legalcode +/////////////////////////////////////////////////////////////////////////////////////////////////////// + +#Область ОбработчикиСобытийФормы + +&НаСервере +Процедура ПриСозданииНаСервере(Отказ, СтандартнаяОбработка) + + Если Не Параметры.ОткрытаПоСценарию Тогда + ВызватьИсключение НСтр("ru = 'Форма не предназначена для непосредственного использования.'"); + КонецЕсли; + + ОбновитьНастройки(); + +КонецПроцедуры + +#КонецОбласти + +#Область ОбработчикиСобытийЭлементовШапкиФормы + +&НаКлиенте +Процедура СтраницыПриСменеСтраницы(Элемент, ТекущаяСтраница) + + Если ТекущаяСтраница.Имя = "СтраницаНастройки" Тогда + ОбновитьНастройки(); + ИначеЕсли ТекущаяСтраница.Имя = "СтраницаИнформацияОХранилище" Тогда + ОбновитьИнформациюНаСервере(); + КонецЕсли; + +КонецПроцедуры + +&НаКлиенте +Процедура РазрешитьЗаписьПриИзменении(Элемент) + + Элементы.МинимальныйРазмерЗаписываемыхДанных.Доступность = РазрешитьЗапись; + + Если РазрешитьЗапись Тогда + + МинимальныйРазмерЗаписываемыхДанных = МинимальныйРазмерЗаписываемыхДанныхНаСервере(); + + ДоступностьКнопкиОК(); + Иначе + + МинимальныйРазмерЗаписываемыхДанных = 0; + КонецЕсли; + +КонецПроцедуры + +&НаКлиенте +Процедура МинимальныйРазмерЗаписываемыхДанныхПриИзменении(Элемент) + + ДоступностьКнопкиОК(); + +КонецПроцедуры + +#КонецОбласти + +#Область ОбработчикиКомандФормы + +&НаКлиенте +Процедура ОбновитьИнформацию(Команда) + + ОбновитьИнформациюНаСервере(); + +КонецПроцедуры + +&НаКлиенте +Процедура ОчиститьХранилище(Команда) + + Если ДатаОчистки = Дата(1, 1, 1) Тогда + ВызватьИсключение НСтр("ru = 'Для запуска очистки хранилища двоичных данных нужно задать непустую дату очистки'"); + КонецЕсли; + + Состояние(НСтр("ru = 'Подождите'"), , СтроковыеФункцииКлиентСервер.ПодставитьПараметрыВСтроку( + НСтр("ru = 'Идет очистка на дату %1 ...'"), ДатаОчистки)); + + ОчиститьХранилищеПоДатеОчистки(ДатаОчистки); + + Состояние("", , НСтр("ru = 'Очистка завершена'")); + +КонецПроцедуры + +&НаКлиенте +Процедура ОК(Команда) + + Попытка + + ИзменитьНастройкиХранилищаНаСервере(); + + Исключение + ОбновитьНастройки(); + ВызватьИсключение; + КонецПопытки; + + Закрыть(Истина); + +КонецПроцедуры + +&НаКлиенте +Процедура Отменить(Команда) + + Закрыть(Ложь); + +КонецПроцедуры + +#КонецОбласти + +#Область СлужебныеПроцедурыИФункции + +&НаКлиенте +Процедура ДоступностьКнопкиОК() + + ДоступнаКнопкаОК = МинимальныйРазмерЗаписываемыхДанных >= 2048; + + Элементы.КнопкаОК.Доступность = ДоступнаКнопкаОК; + +КонецПроцедуры + +&НаСервере +Процедура ОбновитьНастройки() + + МинимальныйРазмерЗаписываемыхДанных = ХранилищеДвоичныхДанных.ПолучитьМинимальныйРазмерЗаписываемыхДанных(); + + РежимЧтенияЗаписи = ХранилищеДвоичныхДанных.ПолучитьРежимЧтенияЗаписиХранилищаДвоичныхДанных(); + ДоступныЧтениеИЗапись = РежимЧтенияЗаписи = РежимЧтенияЗаписиХранилищаДвоичныхДанных.ЧтениеИЗапись; + + Если ДоступныЧтениеИЗапись Тогда + + РазрешитьЗапись = Истина; + + Иначе + РазрешитьЗапись = Ложь; + КонецЕсли; + + Элементы.МинимальныйРазмерЗаписываемыхДанных.Доступность = ДоступныЧтениеИЗапись; + +КонецПроцедуры + +&НаСервере +Процедура ОбновитьИнформациюНаСервере() + + ИнформацияОХранилище = ХранилищеДвоичныхДанных.ПолучитьИнформацию(); + + ОбъемХранимыхДанных = ИнформацияОХранилище.ОбъемХранимыхДанных; + ОбъемУдаленныхДанных = ИнформацияОХранилище.ОбъемУдаленныхДанных; + КоличествоХранимыхЭлементов = ИнформацияОХранилище.КоличествоХранимыхЭлементов; + КоличествоУдаленныхЭлементов = ИнформацияОХранилище.КоличествоУдаленныхЭлементов; + ОбъемХранимыхДанныхНаДиске = ИнформацияОХранилище.ОбъемХранимыхДанныхНаДиске; + КоличествоДедуплицированныхЭлементов = ИнформацияОХранилище.КоличествоДедуплицированныхЭлементов; + ДатаПоследнейОчистки = МестноеВремя(ИнформацияОХранилище.ДатаПоследнейОчистки); + +КонецПроцедуры + +&НаСервереБезКонтекста +Процедура ОчиститьХранилищеПоДатеОчистки(Знач ДатаОчистки) + + ХранилищеДвоичныхДанных.ОчиститьНеиспользуемоеМестоПоУниверсальнойДате(УниверсальноеВремя(ДатаОчистки)); + +КонецПроцедуры + +&НаСервереБезКонтекста +Функция МинимальныйРазмерЗаписываемыхДанныхНаСервере() + + Возврат ХранилищеДвоичныхДанных.ПолучитьМинимальныйРазмерЗаписываемыхДанных(); + +КонецФункции + +&НаСервере +Процедура ИзменитьНастройкиХранилищаНаСервере() + + Если РазрешитьЗапись Тогда + ХранилищеДвоичныхДанных.УстановитьРежимЧтенияЗаписиХранилищаДвоичныхДанных(РежимЧтенияЗаписиХранилищаДвоичныхДанных.ЧтениеИЗапись); + Иначе + ХранилищеДвоичныхДанных.УстановитьРежимЧтенияЗаписиХранилищаДвоичныхДанных(РежимЧтенияЗаписиХранилищаДвоичныхДанных.ТолькоЧтение); + КонецЕсли; + + ХранилищеДвоичныхДанных.УстановитьМинимальныйРазмерЗаписываемыхДанных(МинимальныйРазмерЗаписываемыхДанных); + +КонецПроцедуры + +#КонецОбласти \ No newline at end of file diff --git a/SSL/src/DataProcessors/УправлениеХранилищемДвоичныхДанных/Forms/ДобавитьХранилище/Form.form b/SSL/src/DataProcessors/УправлениеХранилищемДвоичныхДанных/Forms/ДобавитьХранилище/Form.form new file mode 100644 index 000000000..c97c06f44 --- /dev/null +++ b/SSL/src/DataProcessors/УправлениеХранилищемДвоичныхДанных/Forms/ДобавитьХранилище/Form.form @@ -0,0 +1,715 @@ + + + + <key>ru</key> + <value>Добавить хранилище</value> + + + ТипХранилища + 18 + + <key>ru</key> + <value>Тип</value> + + true + true + + true + + + ТипХранилища + + Left + + OnChange + ТипХранилищаПриИзменении + + + ТипХранилищаРасширеннаяПодсказка + 20 + Label + true + true + + Left + + + + ТипХранилищаКонтекстноеМеню + 19 + true + + RadioButtonField + Enter + true + Left + true + + 1 + Vertical + + + + ИмяХранилища + 15 + + <key>ru</key> + <value>Имя</value> + + true + true + + true + + + ИмяХранилища + + + OnChange + ИмяХранилищаПриИзменении + + + ИмяХранилищаРасширеннаяПодсказка + 17 + Label + true + true + + Left + + + + ИмяХранилищаКонтекстноеМеню + 16 + true + + InputField + Enter + true + Left + true + + true + true + true + true + true + true + Normal + + + + АдресПодключения + 7 + + <key>ru</key> + <value>URL</value> + + true + true + + true + + + АдресПодключения + + + OnChange + АдресПодключенияПриИзменении + + + АдресПодключенияРасширеннаяПодсказка + 9 + Label + true + true + + Left + + + + АдресПодключенияКонтекстноеМеню + 8 + true + + InputField + Enter + true + Left + true + + true + true + true + true + true + true + Normal + + + + ИдентификаторДоступа + 21 + + <key>ru</key> + <value>Идентификатор доступа</value> + + true + true + + true + + + ИдентификаторДоступа + + + OnChange + ИдентификаторДоступаПриИзменении + + + ИдентификаторДоступаРасширеннаяПодсказка + 23 + Label + true + true + + Left + + + + ИдентификаторДоступаКонтекстноеМеню + 22 + true + + InputField + Enter + true + Left + true + + true + true + true + true + true + true + Normal + + + + СекретныйКлюч + 24 + + <key>ru</key> + <value>Ключ доступа</value> + + true + true + + true + + + СекретныйКлюч + + + OnChange + СекретныйКлючПриИзменении + + + СекретныйКлючРасширеннаяПодсказка + 26 + Label + true + true + + Left + + + + СекретныйКлючКонтекстноеМеню + 25 + true + + InputField + Enter + true + Left + true + + true + true + true + true + true + true + true + Normal + + + + Регион + 27 + + <key>ru</key> + <value>Регион</value> + + true + true + + true + + + Регион + + + OnChange + РегионПриИзменении + + + РегионРасширеннаяПодсказка + 29 + Label + true + true + + Left + + + + РегионКонтекстноеМеню + 28 + true + + InputField + Enter + true + Left + true + + true + true + true + true + true + true + Normal + + + + РазрешитьЗапись + 30 + + <key>ru</key> + <value>Разрешить запись</value> + + true + true + + true + + + РазрешитьЗапись + + Button + + OnChange + РазрешитьЗаписьПриИзменении + + + РазрешитьЗаписьРасширеннаяПодсказка + 32 + Label + true + true + + Left + + + + РазрешитьЗаписьКонтекстноеМеню + 31 + true + + CheckBoxField + Enter + true + Left + true + + Switcher + + + + МинимальныйРазмерЗаписываемыхДанных + 33 + + <key>ru</key> + <value>Минимальный размер данных (байт)</value> + + true + false + + true + + + МинимальныйРазмерЗаписываемыхДанных + + + ru + Настройка ограничивает размер данных, которые попадают в хранилище при записи. Вводимое значение должно быть не меньше 2048 байт. + + + OnChange + МинимальныйРазмерЗаписываемыхДанныхПриИзменении + + + МинимальныйРазмерЗаписываемыхДанныхРасширеннаяПодсказка + 35 + Label + true + true + + Left + + + + МинимальныйРазмерЗаписываемыхДанныхКонтекстноеМеню + 34 + true + + InputField + Enter + true + Left + true + + true + true + true + true + true + true + Normal + + + + ГруппаКнопки + 5 + + КнопкаОК + 1 + + <key>ru</key> + <value>ОК</value> + + true + true + + true + + + КнопкаОКРасширеннаяПодсказка + 2 + Label + true + true + + Left + + + UsualButton + Form.Command.ОК + Normal + Auto + true + true + UserCmds + Auto + + + КнопкаОтмена + 3 + + <key>ru</key> + <value>Отмена</value> + + true + true + + true + + + КнопкаОтменаРасширеннаяПодсказка + 4 + Label + true + true + + Left + + + UsualButton + Form.Command.Отмена + Normal + Auto + true + true + UserCmds + Auto + + true + true + + true + + + <key>ru</key> + <value>Кнопки</value> + + Right + + ГруппаКнопкиРасширеннаяПодсказка + 6 + Label + true + true + + Left + + + UsualGroup + + HorizontalIfPossible + Auto + true + true + Auto + Auto + + + + ФормаКоманднаяПанель + -1 + Left + + + OnOpen + ПриОткрытии + + + OnCreateAtServer + ПриСозданииНаСервере + + DontBlock + true + true + Vertical + true + true + auto + true + + Объект + 1 + + DataProcessorObject.УправлениеХранилищемДвоичныхДанных + + + true + + + true + +
                      true
                      +
                      + + АдресПодключения + 2 + + String + + + + true + + + true + + + + ИмяХранилища + + <key>ru</key> + <value>Имя хранилища</value> + + 4 + + String + + + + true + + + true + + + + ТипХранилища + + <key>ru</key> + <value>Тип хранилища</value> + + 5 + + Number + + 10 + + + + true + + + true + + + + СекретныйКлюч + 3 + + String + + + + true + + + true + + + + ИдентификаторДоступа + + <key>ru</key> + <value>Идентификатор доступа</value> + + 6 + + String + + + + true + + + true + + + + Регион + + <key>ru</key> + <value>Регион</value> + + 7 + + String + + + + true + + + true + + + + РазрешитьЗапись + 8 + + Boolean + + + true + + + true + + + + МинимальныйРазмерЗаписываемыхДанных + + <key>ru</key> + <value>Минимальный размер записываемых данных</value> + + 9 + + Number + + 10 + + + + true + + + true + + + + ОК + + <key>ru</key> + <value>ОК</value> + + 1 + + ru + ОК + + + true + + + + ОК + + + Auto + Auto + + + Отмена + + <key>ru</key> + <value>Отмена</value> + + 2 + + ru + Отмена + + + true + + + + Отмена + + + Auto + Auto + + + ОткрытаПоСценарию + + Boolean + + + + + + + +
                      diff --git a/SSL/src/DataProcessors/УправлениеХранилищемДвоичныхДанных/Forms/ДобавитьХранилище/Help/ru.html b/SSL/src/DataProcessors/УправлениеХранилищемДвоичныхДанных/Forms/ДобавитьХранилище/Help/ru.html new file mode 100644 index 000000000..80ce82b3e --- /dev/null +++ b/SSL/src/DataProcessors/УправлениеХранилищемДвоичныхДанных/Forms/ДобавитьХранилище/Help/ru.html @@ -0,0 +1,23 @@ + +

                      Добавление внешнего хранилища двоичных данных

                      +

                      +
                      Диалог предназначен для добавления нового внешнего хранилища двоичных данных следующих типов:
                      +
                      +
                      • Встроенное хранилище - Добавить его можно только в случае, если оно еще не добавлено в список хранилищ двоичных данных. В таком случае никаких дополнительных параметров указывать не нужно.
                      • +
                      • Внешнее хранилище по протоколу S3 - Внешнее S3-совместимое хранилище двоичных данных, в котором корзина указывается в пути URL.
                      • +
                      • Внешнее хранилище по протоколу S3 (Виртуальный хост) - Внешнее S3-совместимое хранилище двоичных данных, в котором корзина указывается в доменном имени.

                      +

                      Параметры настройки внешних хранилищ по протоколу S3

                      +

                      В каждом случае добавления внешнего хранилища по протоколу S3 необходимо указать следующие параметры подключения:

                      +

                      +
                      +
                      • Имя - Уникальное название внешнего хранилища двоичных данных, не более 32 символов.
                      • +
                      • URL - Адрес внешнего хранилища, содержащий протокол доступа к хранилищу (http или https), а также корзину в составе пути, либо в доменном имени.
                      • +
                      • Идентификатор доступа - Идентификатор доступа (AccessId) к внешнему хранилищу двоичных данных.
                      • +
                      • Ключ доступа - Секретный ключ доступа (SecretKey) к внешнему хранилищу двоичных данных.

                      +

                      +
                      +

                      +
                      После заполнения всех полей появится возможность нажать кнопку "ОК" для добавления внешнего хранилища, либо "Отмена" для закрытия формы и возврата к списку менеджеров.

                      + + + \ No newline at end of file diff --git a/SSL/src/DataProcessors/УправлениеХранилищемДвоичныхДанных/Forms/ДобавитьХранилище/Module.bsl b/SSL/src/DataProcessors/УправлениеХранилищемДвоичныхДанных/Forms/ДобавитьХранилище/Module.bsl new file mode 100644 index 000000000..4660c03aa --- /dev/null +++ b/SSL/src/DataProcessors/УправлениеХранилищемДвоичныхДанных/Forms/ДобавитьХранилище/Module.bsl @@ -0,0 +1,200 @@ +/////////////////////////////////////////////////////////////////////////////////////////////////////// +// Copyright (c) 2025, ООО 1С-Софт +// Все права защищены. Эта программа и сопроводительные материалы предоставляются +// в соответствии с условиями лицензии Attribution 4.0 International (CC BY 4.0) +// Текст лицензии доступен по ссылке: +// https://creativecommons.org/licenses/by/4.0/legalcode +/////////////////////////////////////////////////////////////////////////////////////////////////////// + +#Область ОбработчикиСобытийФормы + +&НаСервере +Процедура ПриСозданииНаСервере(Отказ, СтандартнаяОбработка) + + Если Не Параметры.ОткрытаПоСценарию Тогда + ВызватьИсключение НСтр("ru = 'Форма не предназначена для непосредственного использования.'"); + КонецЕсли; + + Если Не ДоступностьВстроенногоХранилищаДвоичныхДанных() Тогда + Элементы.ТипХранилища.СписокВыбора.Добавить(0, НСтр("ru = 'Встроенное хранилище'", ОбщегоНазначения.КодОсновногоЯзыка())); + ТипХранилища = 0; + Иначе + ТипХранилища = 1; + КонецЕсли; + Элементы.ТипХранилища.СписокВыбора.Добавить(1, НСтр("ru = 'Внешнее хранилище по протоколу S3'", ОбщегоНазначения.КодОсновногоЯзыка())); + Элементы.ТипХранилища.СписокВыбора.Добавить(2, НСтр("ru = 'Внешнее хранилище по протоколу S3 (виртуальный хост)'", ОбщегоНазначения.КодОсновногоЯзыка())); + +КонецПроцедуры + +&НаКлиенте +Процедура ПриОткрытии(Отказ) + + ОбновитьФорму(); + +КонецПроцедуры + +#КонецОбласти + +#Область ОбработчикиСобытийЭлементовШапкиФормы + +&НаКлиенте +Процедура ТипХранилищаПриИзменении(Элемент) + ОбновитьФорму(); +КонецПроцедуры + +&НаКлиенте +Процедура ИмяХранилищаПриИзменении(Элемент) + ОбновитьФорму(); +КонецПроцедуры + +&НаКлиенте +Процедура АдресПодключенияПриИзменении(Элемент) + ОбновитьФорму(); +КонецПроцедуры + +&НаКлиенте +Процедура ИдентификаторДоступаПриИзменении(Элемент) + ОбновитьФорму(); +КонецПроцедуры + +&НаКлиенте +Процедура СекретныйКлючПриИзменении(Элемент) + ОбновитьФорму(); +КонецПроцедуры + +&НаКлиенте +Процедура РегионПриИзменении(Элемент) + ОбновитьФорму(); +КонецПроцедуры + +&НаКлиенте +Процедура РазрешитьЗаписьПриИзменении(Элемент) + + Элементы.МинимальныйРазмерЗаписываемыхДанных.Доступность = РазрешитьЗапись; + + Если РазрешитьЗапись Тогда + МинимальныйРазмерЗаписываемыхДанных = 2048; + Иначе + МинимальныйРазмерЗаписываемыхДанных = 0; + КонецЕсли; + +КонецПроцедуры + +&НаКлиенте +Процедура МинимальныйРазмерЗаписываемыхДанныхПриИзменении(Элемент) + ОбновитьФорму(); +КонецПроцедуры + +#КонецОбласти + +#Область ОбработчикиКомандФормы + +&НаКлиенте +Процедура ОК(Команда) + + ДобавитьХранилище(); + Закрыть(Истина); + +КонецПроцедуры + +&НаКлиенте +Процедура Отмена(Команда) + + Закрыть(Ложь); + +КонецПроцедуры + +#КонецОбласти + +#Область СлужебныеПроцедурыИФункции + +&НаСервере +Процедура ДобавитьХранилище() + + // Встроенное хранилище + Если ТипХранилища = 0 Тогда + + ХранилищеДвоичныхДанных.УстановитьРежимИспользованияХранилищаДвоичныхДанных(РежимИспользованияХранилищаДвоичныхДанных.Разрешить); + + Если РазрешитьЗапись Тогда + ХранилищеДвоичныхДанных.УстановитьРежимЧтенияЗаписиХранилищаДвоичныхДанных(РежимЧтенияЗаписиХранилищаДвоичныхДанных.ЧтениеИЗапись); + Иначе + ХранилищеДвоичныхДанных.УстановитьРежимЧтенияЗаписиХранилищаДвоичныхДанных(РежимЧтенияЗаписиХранилищаДвоичныхДанных.ТолькоЧтение); + КонецЕсли; + + Возврат; + КонецЕсли; + + // Внешнее хранилище + // Параметры подключения + ПараметрыПодключения = Новый ПараметрыПодключенияВнешнегоХранилищаДвоичныхДанных(); + ПараметрыПодключения.URL = АдресПодключения; + + // АПК:216-выкл Значение системного перечисления содержат кириллицу и латиницу. + Если ТипХранилища = 1 Тогда + ПараметрыПодключения.ТипURL = ТипURLВнешнегоХранилищаДвоичныхДанных.ХостS3СБакетомВСоставеПути ; + ИначеЕсли ТипХранилища = 2 Тогда + ПараметрыПодключения.ТипURL = ТипURLВнешнегоХранилищаДвоичныхДанных.ВиртуальныйХостS3; + КонецЕсли; + // АПК:216-вкл + + // Параметры доступа + ПараметрыДоступаВХДД = Неопределено; + + // АПК:487-выкл Поддержка новых методов платформы (исполняемый код безопасен) + Выполнить("ПараметрыДоступаВХДД = Новый ПараметрыДоступаВнешнегоХранилищаДвоичныхДанных()"); + // АПК:487-вкл + + ПараметрыДоступаВХДД.ИдентификаторДоступа = ИдентификаторДоступа; + ПараметрыДоступаВХДД.СекретныйКлюч = СекретныйКлюч; + ПараметрыДоступаВХДД.Регион = Регион; + + ВнешнееХДД = ВнешниеХранилищаДвоичныхДанных.Добавить(ИмяХранилища, ПараметрыПодключения, ПараметрыДоступаВХДД); + + Если РазрешитьЗапись Тогда + ВнешнееХДД.РежимЧтенияЗаписи = РежимЧтенияЗаписиХранилищаДвоичныхДанных.ЧтениеИЗапись; + ВнешнееХДД.МинимальныйРазмерЗаписываемыхДанных = МинимальныйРазмерЗаписываемыхДанных; + + ВнешнееХДД.Записать(); + КонецЕсли; + +КонецПроцедуры + +&НаСервере +Функция ДоступностьВстроенногоХранилищаДвоичныхДанных() + + РежимИспользованияХДД = ХранилищеДвоичныхДанных.ПолучитьРежимИспользованияХранилищаДвоичныхДанных(); + Результат = РежимИспользованияХДД = РежимИспользованияХранилищаДвоичныхДанных.Разрешить; + + Возврат Результат; + +КонецФункции + +&НаКлиенте +Процедура ОбновитьФорму() + + ЭтоВнешнееХДД = ТипХранилища <> 0; + + Элементы.ИмяХранилища .Доступность = ЭтоВнешнееХДД; + Элементы.АдресПодключения .Доступность = ЭтоВнешнееХДД; + Элементы.ИдентификаторДоступа .Доступность = ЭтоВнешнееХДД; + Элементы.СекретныйКлюч .Доступность = ЭтоВнешнееХДД; + Элементы.Регион .Доступность = ЭтоВнешнееХДД; + + КнопкаОКДоступность = Истина; + + Если ЭтоВнешнееХДД Тогда + Если ИмяХранилища = "" Или АдресПодключения = "" Или ИдентификаторДоступа = "" Или СекретныйКлюч = "" Или Регион = "" Тогда + КнопкаОКДоступность = Ложь; + КонецЕсли; + КонецЕсли; + + Если РазрешитьЗапись И КнопкаОКДоступность Тогда + КнопкаОКДоступность = МинимальныйРазмерЗаписываемыхДанных >= 2048; + КонецЕсли; + + Элементы.КнопкаОК.Доступность = КнопкаОКДоступность; + +КонецПроцедуры + +#КонецОбласти \ No newline at end of file diff --git a/SSL/src/DataProcessors/УправлениеХранилищемДвоичныхДанных/Forms/СписокХранилищ/Form.form b/SSL/src/DataProcessors/УправлениеХранилищемДвоичныхДанных/Forms/СписокХранилищ/Form.form new file mode 100644 index 000000000..80dee115d --- /dev/null +++ b/SSL/src/DataProcessors/УправлениеХранилищемДвоичныхДанных/Forms/СписокХранилищ/Form.form @@ -0,0 +1,761 @@ + + + + <key>ru</key> + <value>Список хранилищ двоичных данных</value> + + + ГруппаТаблицаХранилища + 1 + + ХранилищаДвоичныхДанных + 3 + + <key>ru</key> + <value>Хранилища двоичных данных</value> + + true + true + + true + + + ХранилищаДвоичныхДанных + + None + + ИмяХранилища + 16 + + <key>ru</key> + <value>Имя хранилища</value> + + true + true + + true + + + ХранилищаДвоичныхДанных.ИмяХранилища + + + ИмяХранилищаРасширеннаяПодсказка + 18 + Label + true + true + + Left + + + + ИмяХранилищаКонтекстноеМеню + 17 + true + + InputField + Auto + true + Left + true + + true + true + true + true + true + true + Normal + + + + АдресХранилища + 19 + + <key>ru</key> + <value>Адрес хранилища</value> + + true + true + + true + + + ХранилищаДвоичныхДанных.АдресХранилища + + + АдресХранилищаРасширеннаяПодсказка + 21 + Label + true + true + + Left + + + + АдресХранилищаКонтекстноеМеню + 20 + true + + InputField + Auto + true + Left + true + + true + true + true + true + true + true + Normal + + + + РежимИспользования + 22 + + <key>ru</key> + <value>Режим использования</value> + + true + true + + true + + + ХранилищаДвоичныхДанных.РежимИспользования + + + РежимИспользованияРасширеннаяПодсказка + 24 + Label + true + true + + Left + + + + РежимИспользованияКонтекстноеМеню + 23 + true + + InputField + Auto + true + Left + true + + true + true + true + true + true + true + Normal + + + + ХранилищеПоУмолчанию + 60 + + <key>ru</key> + <value>По умолчанию</value> + + true + true + + true + + + ХранилищаДвоичныхДанных.ХранилищеПоУмолчанию + + + ХранилищеПоУмолчаниюРасширеннаяПодсказка + 62 + Label + true + true + + Left + + + + ХранилищеПоУмолчаниюКонтекстноеМеню + 61 + true + + PictureField + Auto + true + Left + true + + true + true + true + true + + StdPicture.AppearanceCheckBox + + + + 1 + + AsFileRef + + + + МинимальныйРазмерДанных + 40 + + <key>ru</key> + <value>Минимальный размер данных для записи (байт)</value> + + true + true + + true + + + ХранилищаДвоичныхДанных.МинимальныйРазмерДанных + + + МинимальныйРазмерДанныхРасширеннаяПодсказка + 42 + Label + true + true + + Left + + + + МинимальныйРазмерДанныхКонтекстноеМеню + 41 + true + + InputField + Auto + true + Left + true + + true + true + true + true + true + true + Normal + + + + ДатаОчисткиХранилища + 55 + + <key>ru</key> + <value>Дата последней очистки</value> + + true + true + + true + + + ХранилищаДвоичныхДанных.ДатаОчисткиХранилища + + + ДатаОчисткиХранилищаРасширеннаяПодсказка + 57 + Label + true + true + + Left + + + + ДатаОчисткиХранилищаКонтекстноеМеню + 56 + true + + InputField + Auto + true + Left + true + + true + true + true + true + true + true + Normal + + + + ХранилищаДвоичныхДанныхКоманднаяПанель + 5 + Left + + + Selection + ХранилищаДвоичныхДанныхВыбор + + + ХранилищаДвоичныхДанныхСтрокаПоиска + 7 + + ХранилищаДвоичныхДанныхСтрокаПоискаРасширеннаяПодсказка + 9 + Label + true + true + + Left + + + + ХранилищаДвоичныхДанныхСтрокаПоискаКонтекстноеМеню + 8 + true + + ХранилищаДвоичныхДанных + + true + + + + ХранилищаДвоичныхДанныхСостояниеПросмотра + 10 + + ХранилищаДвоичныхДанныхСостояниеПросмотраРасширеннаяПодсказка + 12 + Label + true + true + + Left + + + + ХранилищаДвоичныхДанныхСостояниеПросмотраКонтекстноеМеню + 11 + true + + ViewStatusAddition + ХранилищаДвоичныхДанных + + true + + + + ХранилищаДвоичныхДанныхУправлениеПоиском + 13 + + ХранилищаДвоичныхДанныхУправлениеПоискомРасширеннаяПодсказка + 15 + Label + true + true + + Left + + + + ХранилищаДвоичныхДанныхУправлениеПоискомКонтекстноеМеню + 14 + true + + SearchControlAddition + ХранилищаДвоичныхДанных + + true + + + + ХранилищаДвоичныхДанныхРасширеннаяПодсказка + 6 + Label + true + true + + Left + + + + ХранилищаДвоичныхДанныхКонтекстноеМеню + 4 + true + + true + true + true + true + true + true + Row +
                      true
                      + 1 + 1 + AutoUse + AutoUse + true + true + false + true + Auto + Auto + true + true + true + true + AsFileRef + true + +
                      + true + true + + true + + + <key>ru</key> + <value>Таблица хранилища</value> + + + ГруппаТаблицаХранилищаРасширеннаяПодсказка + 2 + Label + true + true + + Left + + + UsualGroup + + HorizontalIfPossible + Auto + WeakSeparation + true + true + auto + Auto + Auto + +
                      + + ФормаКоманднаяПанель + -1 + + ДобавитьХранилище + 25 + + <key>ru</key> + <value>Добавить</value> + + true + true + + true + + + ДобавитьХранилищеРасширеннаяПодсказка + 26 + Label + true + true + + Left + + + Form.Command.ДобавитьХранилище + Normal + Auto + true + true + UserCmds + Auto + + + РедактироватьХранилище + 27 + + <key>ru</key> + <value>Настроить</value> + + true + true + + true + + + РедактироватьХранилищеРасширеннаяПодсказка + 28 + Label + true + true + + Left + + + Form.Command.РедактироватьХранилище + Normal + Auto + true + true + UserCmds + Auto + + + УдалитьХранилище + 29 + + <key>ru</key> + <value>Удалить</value> + + true + true + + true + + + УдалитьХранилищеРасширеннаяПодсказка + 30 + Label + true + true + + Left + + + Form.Command.УдалитьХранилище + Normal + Auto + true + true + UserCmds + Auto + + Left + + + OnCreateAtServer + ПриСозданииНаСервере + + DontBlock + true + true + Vertical + true + true + true + auto + true + + Объект + 1 + + String + + + + true + + + true + +
                      true
                      +
                      + + ХранилищаДвоичныхДанных + + <key>ru</key> + <value>Хранилища двоичных данных</value> + + 2 + + ValueTable + + + true + + + true + + + ИмяХранилища + 1 + + String + + + + true + + + true + + + + АдресХранилища + + <key>ru</key> + <value>Адрес хранилища</value> + + 2 + + String + + + + true + + + true + + + + РежимИспользования + + <key>ru</key> + <value>Режим использования</value> + + 3 + + String + + + + true + + + true + + + + МинимальныйРазмерДанных + 4 + + String + + + + true + + + true + + + + ДатаОчисткиХранилища + 5 + + String + + + + true + + + true + + + + ХранилищеПоУмолчанию + + <key>ru</key> + <value>Хранилище по умолчанию</value> + + 6 + + Number + + 10 + + + + true + + + true + + + + + ДобавитьХранилище + + <key>ru</key> + <value>Добавить</value> + + 1 + + ru + Добавить хранилище + + + true + + + + ДобавитьХранилище + + + Auto + Auto + + + РедактироватьХранилище + + <key>ru</key> + <value>Настроить</value> + + 2 + + ru + Редактировать хранилище + + + true + + + + РедактироватьХранилище + + + Auto + Auto + + + УдалитьХранилище + + <key>ru</key> + <value>Удалить</value> + + 3 + + ru + Удалить хранилище + + + true + + + + УдалитьХранилище + + + Auto + Auto + + + + + +
                      diff --git a/SSL/src/DataProcessors/УправлениеХранилищемДвоичныхДанных/Forms/СписокХранилищ/Help/ru.html b/SSL/src/DataProcessors/УправлениеХранилищемДвоичныхДанных/Forms/СписокХранилищ/Help/ru.html new file mode 100644 index 000000000..e3eddaa3c --- /dev/null +++ b/SSL/src/DataProcessors/УправлениеХранилищемДвоичныхДанных/Forms/СписокХранилищ/Help/ru.html @@ -0,0 +1,21 @@ + +

                      Список хранилищ двоичных данных

                      +

                      Диалог предназначен для настройки хранилищ двоичных данных следующими кнопками:

                      +
                      • Добавить - Позволяет добавить новое хранилище двоичных данных.
                      • +
                      • Настроить - Открывает диалог настройки хранилища, на котором сейчас находится указатель в таблице.
                      • +
                      • Удалить - Удаляет хранилище двоичных данных, на котором сейчас находится указатель в таблице.
                      • +
                      • Настроить использование - Открывает диалог настройки использования хранилища в зависимости от типа метаданных.

                      +

                      Список хранилищ двоичных данных

                      + +

                      +

                      Данная таблица предназначена для просмотра следующей информации о хранилищах двоичных данных:

                      +
                      • Имя хранилища - Имя хранилища двоичных данных.
                      • +
                      • Адрес хранилища - URL-адрес хранилища.
                      • +
                      • Режим использования - В каком режиме работает хранилище.
                      • +
                      • По умолчанию - Маркер хранилища по умолчанию. Гарантируется, что только одно хранилище может быть использовано как хранилище по умолчанию.
                      • +
                      • Минимальный размер данных для записи (байт) - минимальный размер данных в байтах, при котором он будет помещен в это хранилище.
                      • +
                      • Дата последней очистки - Наиболее поздняя дата и время, на которое была успешно выполнена очистка неиспользуемого места хранилища.


                      +

                      + + + \ No newline at end of file diff --git a/SSL/src/DataProcessors/УправлениеХранилищемДвоичныхДанных/Forms/СписокХранилищ/Module.bsl b/SSL/src/DataProcessors/УправлениеХранилищемДвоичныхДанных/Forms/СписокХранилищ/Module.bsl new file mode 100644 index 000000000..255da2183 --- /dev/null +++ b/SSL/src/DataProcessors/УправлениеХранилищемДвоичныхДанных/Forms/СписокХранилищ/Module.bsl @@ -0,0 +1,255 @@ +/////////////////////////////////////////////////////////////////////////////////////////////////////// +// Copyright (c) 2025, ООО 1С-Софт +// Все права защищены. Эта программа и сопроводительные материалы предоставляются +// в соответствии с условиями лицензии Attribution 4.0 International (CC BY 4.0) +// Текст лицензии доступен по ссылке: +// https://creativecommons.org/licenses/by/4.0/legalcode +/////////////////////////////////////////////////////////////////////////////////////////////////////// + +#Область ОбработчикиСобытийФормы + +&НаСервере +Процедура ПриСозданииНаСервере(Отказ, СтандартнаяОбработка) + + ПроверитьДоступностьОбработки(); + + ОбновитьПредставление(); + +КонецПроцедуры + +#КонецОбласти + +#Область ОбработчикиСобытийЭлементовТаблицыФормы + +&НаКлиенте +Процедура ХранилищаДвоичныхДанныхВыбор(Элемент, ВыбраннаяСтрока, Поле, СтандартнаяОбработка) + РедактироватьХранилище(Элемент); +КонецПроцедуры + +#КонецОбласти + +#Область ОбработчикиКомандФормы + +&НаКлиенте +Процедура ДобавитьХранилище(Команда) + + Оповещение = Новый ОписаниеОповещения("ПриДобавленииХранилища", ЭтотОбъект); + + ПараметрыОткрытияФормы = Новый Структура("ОткрытаПоСценарию", Истина); + + ОткрытьФорму(ИмяФормыДляОткрытия("ДобавитьХранилище", ИмяФормы), ПараметрыОткрытияФормы, , , , , Оповещение, РежимОткрытияОкнаФормы.БлокироватьВесьИнтерфейс); + +КонецПроцедуры + +&НаКлиенте +Процедура РедактироватьХранилище(Команда) + + ТекущиеДанныеСтроки = Элементы.ХранилищаДвоичныхДанных.ТекущиеДанные; + Если ТекущиеДанныеСтроки <> Неопределено Тогда + Оповещение = Новый ОписаниеОповещения("ПриРедактированииХранилища", ЭтотОбъект); + + ПараметрыОткрытияФормы = Новый Структура("ОткрытаПоСценарию", Истина); + + Если ТекущиеДанныеСтроки.АдресХранилища = "" Тогда + ОткрытьФорму(ИмяФормыДляОткрытия("ВстроенноеХранилище", ИмяФормы), ПараметрыОткрытияФормы, , , , , Оповещение, РежимОткрытияОкнаФормы .БлокироватьВесьИнтерфейс); + Иначе + ПараметрыОткрытияФормы.Вставить("ИмяХранилища", ТекущиеДанныеСтроки.ИмяХранилища); + + ОткрытьФорму(ИмяФормыДляОткрытия("ВнешнееХранилище", ИмяФормы), ПараметрыОткрытияФормы, , , , , Оповещение, РежимОткрытияОкнаФормы .БлокироватьВесьИнтерфейс); + КонецЕсли; + КонецЕсли; + +КонецПроцедуры + +&НаКлиенте +Процедура УдалитьХранилище(Команда) + + ТекущиеДанныеСтроки = Элементы.ХранилищаДвоичныхДанных.ТекущиеДанные; + Если ТекущиеДанныеСтроки <> Неопределено Тогда + + Оповещение = Новый ОписаниеОповещения("УдалитьХранилищеДвоичныхДанных", ЭтотОбъект); + + ТекстВопроса = НСтр("ru = 'Удалить хранилище двоичных данных?'"); + ПоказатьВопрос(Оповещение, ТекстВопроса, РежимДиалогаВопрос.ДаНет,,КодВозвратаДиалога.Нет); + КонецЕсли; + +КонецПроцедуры + +#КонецОбласти + +#Область СлужебныеПроцедурыИФункции + +&НаКлиенте +Функция ИмяФормыДляОткрытия(ФормаИмя, ПолноеИмяФормы) + + Путь = Лев(ПолноеИмяФормы,СтрНайти(ПолноеИмяФормы, ".", НаправлениеПоиска.СКонца)); + Возврат Путь + "." + ФормаИмя; + +КонецФункции + +&НаКлиенте +Процедура ПриДобавленииХранилища(Результат, ДополнительныеПараметры) Экспорт + ОбновитьПредставление(); +КонецПроцедуры + +&НаКлиенте +Процедура ПриРедактированииХранилища(Результат, ДополнительныеПараметры) Экспорт + ОбновитьПредставление(); +КонецПроцедуры + +&НаСервере +Процедура ДобавитьХранилищеВТаблицу(ИмяХранилища, АдресХранилища, РежимЧтенияЗаписиХДД, ХранилищеПоУмолчанию, МинимальныйРазмерДанных, ДатаОчисткиХранилища) + + СтрокаХДД = ХранилищаДвоичныхДанных.Добавить(); + СтрокаХДД.ИмяХранилища = ИмяХранилища; + СтрокаХДД.АдресХранилища = АдресХранилища; + + Если РежимЧтенияЗаписиХДД = РежимЧтенияЗаписиХранилищаДвоичныхДанных.ТолькоЧтение Тогда + СтрокаХДД.РежимИспользования = НСтр("ru = 'Только чтение'", ОбщегоНазначения.КодОсновногоЯзыка()); + СтрокаХДД.МинимальныйРазмерДанных = ""; + Иначе + СтрокаХДД.РежимИспользования = НСтр("ru = 'Чтение и запись'", ОбщегоНазначения.КодОсновногоЯзыка()); + СтрокаХДД.МинимальныйРазмерДанных = МинимальныйРазмерДанных; + КонецЕсли; + + СтрокаХДД.ХранилищеПоУмолчанию = ?(ХранилищеПоУмолчанию, 0, 1); + + Если СтрокаХДД.ДатаОчисткиХранилища <> Неопределено Тогда + СтрокаХДД.ДатаОчисткиХранилища = ДатаОчисткиХранилища; + КонецЕсли; + +КонецПроцедуры + +&НаСервере +Процедура ОбновитьПредставление() + + ХранилищаДвоичныхДанных.Очистить(); + + // встроенное хранилище + РежимИспользованияХДД = ХранилищеДвоичныхДанных.ПолучитьРежимИспользованияХранилищаДвоичныхДанных(); + Если РежимИспользованияХДД = РежимИспользованияХранилищаДвоичныхДанных.Разрешить Тогда + ИмяХранилища = НСтр("ru = 'Встроенное хранилище'", ОбщегоНазначения.КодОсновногоЯзыка()); + АдресХранилища = ""; + РежимЧтенияЗаписиХДД = Ложь; + МинимальныйРазмерДанных = 2048; + ХранилищеПоУмолчанию = Ложь; + ДатаОчисткиХранилища = Неопределено; + + Попытка + РежимЧтенияЗаписиХДД = ХранилищеДвоичныхДанных.ПолучитьРежимЧтенияЗаписиХранилищаДвоичныхДанных(); + МинимальныйРазмерДанных = ХранилищеДвоичныхДанных.ПолучитьМинимальныйРазмерЗаписываемыхДанных(); + + ХранилищеПоУмолчанию = (РежимЧтенияЗаписиХДД <> РежимЧтенияЗаписиХранилищаДвоичныхДанных.ТолькоЧтение); + Если ХранилищеПоУмолчанию Тогда + // АПК:487-выкл Поддержка новых методов платформы (исполняемый код безопасен) + Выполнить("ХранилищеПоУмолчанию = ХранилищеДвоичныхДанных.ПолучитьИспользованиеКакХранилищаПоУмолчанию()"); + // АПК:487-вкл + КонецЕсли; + + ИнформацияОХранилище = ХранилищеДвоичныхДанных.ПолучитьИнформацию(); + Если ИнформацияОХранилище.ДатаПоследнейОчистки > Дата(1, 1, 1) Тогда + ДатаОчисткиХранилища = ИнформацияОХранилище.ДатаПоследнейОчистки; + КонецЕсли; + Исключение + ЗаписьЖурналаРегистрации(НСтр("ru = 'Управление хранилищем двоичных данных'", ОбщегоНазначения.КодОсновногоЯзыка()), + УровеньЖурналаРегистрации.Ошибка,,, + НСтр("ru = 'Ошибка получения параметров встроенного хранилища'", ОбщегоНазначения.КодОсновногоЯзыка())); + КонецПопытки; + + ДобавитьХранилищеВТаблицу(ИмяХранилища, АдресХранилища, РежимЧтенияЗаписиХДД, ХранилищеПоУмолчанию, МинимальныйРазмерДанных, ДатаОчисткиХранилища); + + КонецЕсли; + + // внешние хранилища + Для Каждого МенеджерХранилища Из ВнешниеХранилищаДвоичныхДанных Цикл + + ИмяХранилища = ""; + АдресХранилища = ""; + РежимЧтенияЗаписиХДД = Ложь; + МинимальныйРазмерДанных = 2048; + ХранилищеПоУмолчанию = Ложь; + ДатаОчисткиХранилища = Неопределено; + + Попытка + ИмяХранилища = МенеджерХранилища.Имя; + РежимЧтенияЗаписиХДД = МенеджерХранилища.РежимЧтенияЗаписи; + МинимальныйРазмерДанных = МенеджерХранилища.МинимальныйРазмерЗаписываемыхДанных ; + ХранилищеПоУмолчанию = (РежимЧтенияЗаписиХДД <> РежимЧтенияЗаписиХранилищаДвоичныхДанных.ТолькоЧтение) И МенеджерХранилища.ХранилищеПоУмолчанию; + + Если МенеджерХранилища.ДатаПоследнейОчистки > Дата(1,1,1) Тогда + ДатаОчисткиХранилища = МенеджерХранилища.ДатаПоследнейОчистки; + КонецЕсли; + + АдресХранилища = МенеджерХранилища.ПараметрыПодключения.URL; + + Исключение + ЗаписьЖурналаРегистрации(НСтр("ru = 'Управление хранилищем двоичных данных'", ОбщегоНазначения.КодОсновногоЯзыка()), + УровеньЖурналаРегистрации.Ошибка,,, + НСтр("ru = 'Ошибка получения параметров внешнего хранилища'", ОбщегоНазначения.КодОсновногоЯзыка())); + КонецПопытки; + + ДобавитьХранилищеВТаблицу(ИмяХранилища, АдресХранилища, РежимЧтенияЗаписиХДД, ХранилищеПоУмолчанию, МинимальныйРазмерДанных, ДатаОчисткиХранилища); + + КонецЦикла; + + ДоступностьКомандРедактирования = ХранилищаДвоичныхДанных.Количество() > 0; + + Элементы.РедактироватьХранилище.Доступность = ДоступностьКомандРедактирования; + Элементы.УдалитьХранилище.Доступность = ДоступностьКомандРедактирования; + +КонецПроцедуры + +&НаКлиенте +Процедура УдалитьХранилищеДвоичныхДанных(ОтветНаВопрос, ДополнительныеПараметры) Экспорт + + Если ОтветНаВопрос = КодВозвратаДиалога.Нет Тогда + Возврат; + КонецЕсли; + + ТекущиеДанныеСтроки = Элементы.ХранилищаДвоичныхДанных.ТекущиеДанные; + + Если ТекущиеДанныеСтроки = Неопределено Тогда + Возврат; + КонецЕсли; + + УдалитьХранилищеНаСервере(ТекущиеДанныеСтроки.АдресХранилища, ТекущиеДанныеСтроки.ИмяХранилища); + +КонецПроцедуры + +&НаСервере +Процедура УдалитьХранилищеНаСервере(Знач АдресХранилища, Знач ИмяХранилища) + + Если АдресХранилища = "" Тогда + РежимИспользованияHDD = РежимИспользованияХранилищаДвоичныхДанных.Запретить; + ХранилищеДвоичныхДанных.УстановитьРежимИспользованияХранилищаДвоичныхДанных(РежимИспользованияHDD); + Иначе + МенеджерХранилища = ВнешниеХранилищаДвоичныхДанных[ИмяХранилища]; + ВнешниеХранилищаДвоичныхДанных.Удалить(МенеджерХранилища); + КонецЕсли; + + ОбновитьПредставление(); +КонецПроцедуры + +&НаСервере +Процедура ПроверитьДоступностьОбработки() + + ТекстИсключения = ""; + + Если ОбщегоНазначения.ИнформационнаяБазаФайловая() Тогда + ТекстИсключения = НСтр("ru = 'Обработка не предназначена для использования в файловой информационной базе.'"); + ИначеЕсли Не РаботаСФайловымАрхивомСервер.ДоступныИзмененияВСпособахХраненияФайлов() Тогда + ТекстИсключения = НСтр("ru = 'Обработка не предназначена для использования на версиях платформы 1С:Предприятие ниже 8.3.26.'"); + ИначеЕсли ОбщегоНазначения.РазделениеВключено() Тогда + ПользовательИБ = ПользователиИнформационнойБазы.ТекущийПользователь(); + Если ПользовательИБ.РазделениеДанных.Количество() <> 0 Тогда + ТекстИсключения = НСтр("ru = 'Обработка не предназначена для использования в разделенном сеансе.'"); + КонецЕсли; + КонецЕсли; + + Если ТекстИсключения <> "" Тогда + ВызватьИсключение ТекстИсключения; + КонецЕсли; + +КонецПроцедуры + +#КонецОбласти \ No newline at end of file diff --git a/SSL/src/DataProcessors/УправлениеХранилищемДвоичныхДанных/УправлениеХранилищемДвоичныхДанных.mdo b/SSL/src/DataProcessors/УправлениеХранилищемДвоичныхДанных/УправлениеХранилищемДвоичныхДанных.mdo new file mode 100644 index 000000000..8bd9ff70c --- /dev/null +++ b/SSL/src/DataProcessors/УправлениеХранилищемДвоичныхДанных/УправлениеХранилищемДвоичныхДанных.mdo @@ -0,0 +1,70 @@ + + + + + + + УправлениеХранилищемДвоичныхДанных + + ru + Управление хранилищем двоичных данных + + true + DataProcessor.УправлениеХранилищемДвоичныхДанных.Form.СписокХранилищ + + ВнешнееХранилище + + ru + Внешнее хранилище + + + + ru + + + PersonalComputer + MobileDevice + + + ВстроенноеХранилище + + ru + Встроенное хранилище + + + + ru + + + PersonalComputer + MobileDevice + + + ДобавитьХранилище + + ru + Добавить хранилище + + + + ru + + + PersonalComputer + MobileDevice + + + СписокХранилищ + + ru + Список хранилищ + + + + ru + + + PersonalComputer + MobileDevice + + diff --git a/SSL/src/DataProcessors/УстановкаОбновлений/Forms/НастройкаРезервнойКопии/Module.bsl b/SSL/src/DataProcessors/УстановкаОбновлений/Forms/НастройкаРезервнойКопии/Module.bsl index 6ec8bd3ee..266125784 100644 --- a/SSL/src/DataProcessors/УстановкаОбновлений/Forms/НастройкаРезервнойКопии/Module.bsl +++ b/SSL/src/DataProcessors/УстановкаОбновлений/Forms/НастройкаРезервнойКопии/Module.bsl @@ -1,5 +1,5 @@ /////////////////////////////////////////////////////////////////////////////////////////////////////// -// Copyright (c) 2024, ООО 1С-Софт +// Copyright (c) 2025, ООО 1С-Софт // Все права защищены. Эта программа и сопроводительные материалы предоставляются // в соответствии с условиями лицензии Attribution 4.0 International (CC BY 4.0) // Текст лицензии доступен по ссылке: diff --git a/SSL/src/DataProcessors/УстановкаОбновлений/Forms/ОбновлениеНеПодходит/Module.bsl b/SSL/src/DataProcessors/УстановкаОбновлений/Forms/ОбновлениеНеПодходит/Module.bsl index 4c2c55cfa..fade870b0 100644 --- a/SSL/src/DataProcessors/УстановкаОбновлений/Forms/ОбновлениеНеПодходит/Module.bsl +++ b/SSL/src/DataProcessors/УстановкаОбновлений/Forms/ОбновлениеНеПодходит/Module.bsl @@ -1,5 +1,5 @@ /////////////////////////////////////////////////////////////////////////////////////////////////////// -// Copyright (c) 2024, ООО 1С-Софт +// Copyright (c) 2025, ООО 1С-Софт // Все права защищены. Эта программа и сопроводительные материалы предоставляются // в соответствии с условиями лицензии Attribution 4.0 International (CC BY 4.0) // Текст лицензии доступен по ссылке: diff --git a/SSL/src/DataProcessors/УстановкаОбновлений/Forms/Форма/Module.bsl b/SSL/src/DataProcessors/УстановкаОбновлений/Forms/Форма/Module.bsl index fee27a1a4..96e5db8f8 100644 --- a/SSL/src/DataProcessors/УстановкаОбновлений/Forms/Форма/Module.bsl +++ b/SSL/src/DataProcessors/УстановкаОбновлений/Forms/Форма/Module.bsl @@ -1,5 +1,5 @@ /////////////////////////////////////////////////////////////////////////////////////////////////////// -// Copyright (c) 2024, ООО 1С-Софт +// Copyright (c) 2025, ООО 1С-Софт // Все права защищены. Эта программа и сопроводительные материалы предоставляются // в соответствии с условиями лицензии Attribution 4.0 International (CC BY 4.0) // Текст лицензии доступен по ссылке: @@ -400,7 +400,7 @@ ИмяПараметра = "СтандартныеПодсистемы.СообщенияДляЖурналаРегистрации"; Если ПараметрыПриложения[ИмяПараметра] = Неопределено Тогда - ПараметрыПриложения.Вставить(ИмяПараметра, Новый СписокЗначений); + ПараметрыПриложения.Вставить(ИмяПараметра, Новый Массив); КонецЕсли; Страницы = Элементы.СтраницыПомощника.ПодчиненныеЭлементы; diff --git a/SSL/src/DefinedTypes/ВладелецЗначенийКлючейДоступа/ВладелецЗначенийКлючейДоступа.mdo b/SSL/src/DefinedTypes/ВладелецЗначенийКлючейДоступа/ВладелецЗначенийКлючейДоступа.mdo index 8ef1c67ee..83a674cfb 100644 --- a/SSL/src/DefinedTypes/ВладелецЗначенийКлючейДоступа/ВладелецЗначенийКлючейДоступа.mdo +++ b/SSL/src/DefinedTypes/ВладелецЗначенийКлючейДоступа/ВладелецЗначенийКлючейДоступа.mdo @@ -10,6 +10,7 @@ CatalogRef.ПапкиЭлектронныхПисем + CatalogRef.НастройкиОтправкиВГосключ BusinessProcessRef.Задание CatalogRef.Заметки DocumentRef.ЭлектронноеПисьмоИсходящее @@ -35,6 +36,7 @@ ChartOfCharacteristicTypesRef.ДополнительныеРеквизитыИСведения CatalogRef.УчетныеЗаписиDSS DocumentRef.Анкета + CatalogRef.СертификатыКлючейЭлектроннойПодписиИШифрования CatalogRef.ШаблоныСообщений CatalogRef.ДополнительныеОтчетыИОбработки CatalogRef.СообщениеSMSПрисоединенныеФайлы diff --git a/SSL/src/DefinedTypes/ВладелецЗначенийКлючейДоступаНаборЗаписей/ВладелецЗначенийКлючейДоступаНаборЗаписей.mdo b/SSL/src/DefinedTypes/ВладелецЗначенийКлючейДоступаНаборЗаписей/ВладелецЗначенийКлючейДоступаНаборЗаписей.mdo index 584255c5f..6c84f2ddd 100644 --- a/SSL/src/DefinedTypes/ВладелецЗначенийКлючейДоступаНаборЗаписей/ВладелецЗначенийКлючейДоступаНаборЗаписей.mdo +++ b/SSL/src/DefinedTypes/ВладелецЗначенийКлючейДоступаНаборЗаписей/ВладелецЗначенийКлючейДоступаНаборЗаписей.mdo @@ -21,5 +21,6 @@ InformationRegisterRecordSet.ИсполнителиЗадач InformationRegisterRecordSet.РезультатыПроверкиУчета InformationRegisterRecordSet.СоставыГруппПользователей + InformationRegisterRecordSet.ЗаявленияНаВыпускСертификата diff --git a/SSL/src/DefinedTypes/ВладелецЗначенийКлючейДоступаОбъект/ВладелецЗначенийКлючейДоступаОбъект.mdo b/SSL/src/DefinedTypes/ВладелецЗначенийКлючейДоступаОбъект/ВладелецЗначенийКлючейДоступаОбъект.mdo index ddd2fa70c..0385c70de 100644 --- a/SSL/src/DefinedTypes/ВладелецЗначенийКлючейДоступаОбъект/ВладелецЗначенийКлючейДоступаОбъект.mdo +++ b/SSL/src/DefinedTypes/ВладелецЗначенийКлючейДоступаОбъект/ВладелецЗначенийКлючейДоступаОбъект.mdo @@ -22,10 +22,12 @@ CatalogObject.ПользовательскиеНастройкиОтчетов CatalogObject.Заметки CatalogObject.ПравилаОбработкиЭлектроннойПочты + CatalogObject.НастройкиОтправкиВГосключ CatalogObject.ШаблоныСообщенийПрисоединенныеФайлы CatalogObject.ГруппыВнешнихПользователей ChartOfCharacteristicTypesObject.ДополнительныеРеквизитыИСведения CatalogObject.ДополнительныеОтчетыИОбработки + CatalogObject.СертификатыКлючейЭлектроннойПодписиИШифрования CatalogObject.ВнешниеПользователи CatalogObject.ЗначенияСвойствОбъектов CatalogObject.ЗначенияСвойствОбъектовИерархия diff --git a/SSL/src/DefinedTypes/МестоХраненияФункциональныхОпций/МестоХраненияФункциональныхОпций.mdo b/SSL/src/DefinedTypes/МестоХраненияФункциональныхОпций/МестоХраненияФункциональныхОпций.mdo index 5f9301e39..91a7afadb 100644 --- a/SSL/src/DefinedTypes/МестоХраненияФункциональныхОпций/МестоХраненияФункциональныхОпций.mdo +++ b/SSL/src/DefinedTypes/МестоХраненияФункциональныхОпций/МестоХраненияФункциональныхОпций.mdo @@ -20,9 +20,11 @@ ConstantValueManager.ИспользоватьДатуНачалаЗадач ConstantValueManager.ИзменятьЗаданияЗаднимЧислом ConstantValueManager.ИспользоватьПолнотекстовыйПоиск + ConstantValueManager.ИспользоватьГосключ ConstantValueManager.ИспользоватьПочтовыйКлиент ConstantValueManager.ИспользоватьСинхронизациюДанныхВЛокальномРежиме ConstantValueManager.ОграничиватьДоступНаУровнеЗаписей + ConstantValueManager.ИспользоватьФайловыйАрхив ConstantValueManager.ПроверятьЭлектронныеПодписиНаСервере ConstantValueManager.ИспользоватьАнкетирование ConstantValueManager.ИсточникДанныхАдресногоКлассификатора diff --git a/SSL/src/DefinedTypes/ПолеРегистраКлючейДоступаКРегистрам/ПолеРегистраКлючейДоступаКРегистрам.mdo b/SSL/src/DefinedTypes/ПолеРегистраКлючейДоступаКРегистрам/ПолеРегистраКлючейДоступаКРегистрам.mdo index f24143f21..380f5c117 100644 --- a/SSL/src/DefinedTypes/ПолеРегистраКлючейДоступаКРегистрам/ПолеРегистраКлючейДоступаКРегистрам.mdo +++ b/SSL/src/DefinedTypes/ПолеРегистраКлючейДоступаКРегистрам/ПолеРегистраКлючейДоступаКРегистрам.mdo @@ -15,6 +15,7 @@ CatalogRef.ГруппыПользователей EnumRef.ДополнительныеЗначенияДоступа ChartOfCharacteristicTypesRef.ДополнительныеРеквизитыИСведения + CatalogRef.СертификатыКлючейЭлектроннойПодписиИШифрования CatalogRef.ВариантыОтчетов CatalogRef.Пользователи EnumRef.ВидыНазначенияДатЗапрета diff --git a/SSL/src/DefinedTypes/ПрограммаЭлектроннойПодписи/ПрограммаЭлектроннойПодписи.mdo b/SSL/src/DefinedTypes/ПрограммаЭлектроннойПодписи/ПрограммаЭлектроннойПодписи.mdo index 322e2e226..4ff6801eb 100644 --- a/SSL/src/DefinedTypes/ПрограммаЭлектроннойПодписи/ПрограммаЭлектроннойПодписи.mdo +++ b/SSL/src/DefinedTypes/ПрограммаЭлектроннойПодписи/ПрограммаЭлектроннойПодписи.mdo @@ -9,6 +9,7 @@ Программа электронной подписи + CatalogRef.НастройкиОтправкиВГосключ CatalogRef.УчетныеЗаписиDSS CatalogRef.ПрограммыЭлектроннойПодписиИШифрования diff --git a/SSL/src/DocumentJournals/Взаимодействия/Commands/ВзаимодействияПоКонтакту/CommandModule.bsl b/SSL/src/DocumentJournals/Взаимодействия/Commands/ВзаимодействияПоКонтакту/CommandModule.bsl index 3fa59de41..dafe3db27 100644 --- a/SSL/src/DocumentJournals/Взаимодействия/Commands/ВзаимодействияПоКонтакту/CommandModule.bsl +++ b/SSL/src/DocumentJournals/Взаимодействия/Commands/ВзаимодействияПоКонтакту/CommandModule.bsl @@ -1,5 +1,5 @@ /////////////////////////////////////////////////////////////////////////////////////////////////////// -// Copyright (c) 2024, ООО 1С-Софт +// Copyright (c) 2025, ООО 1С-Софт // Все права защищены. Эта программа и сопроводительные материалы предоставляются // в соответствии с условиями лицензии Attribution 4.0 International (CC BY 4.0) // Текст лицензии доступен по ссылке: diff --git a/SSL/src/DocumentJournals/Взаимодействия/Commands/ВзаимодействияПоПредмету/CommandModule.bsl b/SSL/src/DocumentJournals/Взаимодействия/Commands/ВзаимодействияПоПредмету/CommandModule.bsl index 79cf0daf9..703b56e6c 100644 --- a/SSL/src/DocumentJournals/Взаимодействия/Commands/ВзаимодействияПоПредмету/CommandModule.bsl +++ b/SSL/src/DocumentJournals/Взаимодействия/Commands/ВзаимодействияПоПредмету/CommandModule.bsl @@ -1,5 +1,5 @@ /////////////////////////////////////////////////////////////////////////////////////////////////////// -// Copyright (c) 2024, ООО 1С-Софт +// Copyright (c) 2025, ООО 1С-Софт // Все права защищены. Эта программа и сопроводительные материалы предоставляются // в соответствии с условиями лицензии Attribution 4.0 International (CC BY 4.0) // Текст лицензии доступен по ссылке: diff --git a/SSL/src/DocumentJournals/Взаимодействия/Commands/ЗапланироватьВзаимодействиеПоКонтакту/CommandModule.bsl b/SSL/src/DocumentJournals/Взаимодействия/Commands/ЗапланироватьВзаимодействиеПоКонтакту/CommandModule.bsl index ae985d5c4..f07fade22 100644 --- a/SSL/src/DocumentJournals/Взаимодействия/Commands/ЗапланироватьВзаимодействиеПоКонтакту/CommandModule.bsl +++ b/SSL/src/DocumentJournals/Взаимодействия/Commands/ЗапланироватьВзаимодействиеПоКонтакту/CommandModule.bsl @@ -1,5 +1,5 @@ /////////////////////////////////////////////////////////////////////////////////////////////////////// -// Copyright (c) 2024, ООО 1С-Софт +// Copyright (c) 2025, ООО 1С-Софт // Все права защищены. Эта программа и сопроводительные материалы предоставляются // в соответствии с условиями лицензии Attribution 4.0 International (CC BY 4.0) // Текст лицензии доступен по ссылке: diff --git a/SSL/src/DocumentJournals/Взаимодействия/Commands/ЗапланироватьВзаимодействиеПоПредмету/CommandModule.bsl b/SSL/src/DocumentJournals/Взаимодействия/Commands/ЗапланироватьВзаимодействиеПоПредмету/CommandModule.bsl index ae985d5c4..f07fade22 100644 --- a/SSL/src/DocumentJournals/Взаимодействия/Commands/ЗапланироватьВзаимодействиеПоПредмету/CommandModule.bsl +++ b/SSL/src/DocumentJournals/Взаимодействия/Commands/ЗапланироватьВзаимодействиеПоПредмету/CommandModule.bsl @@ -1,5 +1,5 @@ /////////////////////////////////////////////////////////////////////////////////////////////////////// -// Copyright (c) 2024, ООО 1С-Софт +// Copyright (c) 2025, ООО 1С-Софт // Все права защищены. Эта программа и сопроводительные материалы предоставляются // в соответствии с условиями лицензии Attribution 4.0 International (CC BY 4.0) // Текст лицензии доступен по ссылке: diff --git a/SSL/src/DocumentJournals/Взаимодействия/Commands/ЗапланироватьВстречуПоКонтакту/CommandModule.bsl b/SSL/src/DocumentJournals/Взаимодействия/Commands/ЗапланироватьВстречуПоКонтакту/CommandModule.bsl index bedd9396f..264ec7e16 100644 --- a/SSL/src/DocumentJournals/Взаимодействия/Commands/ЗапланироватьВстречуПоКонтакту/CommandModule.bsl +++ b/SSL/src/DocumentJournals/Взаимодействия/Commands/ЗапланироватьВстречуПоКонтакту/CommandModule.bsl @@ -1,5 +1,5 @@ /////////////////////////////////////////////////////////////////////////////////////////////////////// -// Copyright (c) 2024, ООО 1С-Софт +// Copyright (c) 2025, ООО 1С-Софт // Все права защищены. Эта программа и сопроводительные материалы предоставляются // в соответствии с условиями лицензии Attribution 4.0 International (CC BY 4.0) // Текст лицензии доступен по ссылке: diff --git a/SSL/src/DocumentJournals/Взаимодействия/Commands/ЗапланироватьВстречуПоПредмету/CommandModule.bsl b/SSL/src/DocumentJournals/Взаимодействия/Commands/ЗапланироватьВстречуПоПредмету/CommandModule.bsl index bedd9396f..264ec7e16 100644 --- a/SSL/src/DocumentJournals/Взаимодействия/Commands/ЗапланироватьВстречуПоПредмету/CommandModule.bsl +++ b/SSL/src/DocumentJournals/Взаимодействия/Commands/ЗапланироватьВстречуПоПредмету/CommandModule.bsl @@ -1,5 +1,5 @@ /////////////////////////////////////////////////////////////////////////////////////////////////////// -// Copyright (c) 2024, ООО 1С-Софт +// Copyright (c) 2025, ООО 1С-Софт // Все права защищены. Эта программа и сопроводительные материалы предоставляются // в соответствии с условиями лицензии Attribution 4.0 International (CC BY 4.0) // Текст лицензии доступен по ссылке: diff --git a/SSL/src/DocumentJournals/Взаимодействия/Commands/НаписатьSMSПоКонтакту/CommandModule.bsl b/SSL/src/DocumentJournals/Взаимодействия/Commands/НаписатьSMSПоКонтакту/CommandModule.bsl index 1a0fc6eca..883ad3714 100644 --- a/SSL/src/DocumentJournals/Взаимодействия/Commands/НаписатьSMSПоКонтакту/CommandModule.bsl +++ b/SSL/src/DocumentJournals/Взаимодействия/Commands/НаписатьSMSПоКонтакту/CommandModule.bsl @@ -1,5 +1,5 @@ /////////////////////////////////////////////////////////////////////////////////////////////////////// -// Copyright (c) 2024, ООО 1С-Софт +// Copyright (c) 2025, ООО 1С-Софт // Все права защищены. Эта программа и сопроводительные материалы предоставляются // в соответствии с условиями лицензии Attribution 4.0 International (CC BY 4.0) // Текст лицензии доступен по ссылке: diff --git a/SSL/src/DocumentJournals/Взаимодействия/Commands/НаписатьSMSПоПредмету/CommandModule.bsl b/SSL/src/DocumentJournals/Взаимодействия/Commands/НаписатьSMSПоПредмету/CommandModule.bsl index 1a0fc6eca..883ad3714 100644 --- a/SSL/src/DocumentJournals/Взаимодействия/Commands/НаписатьSMSПоПредмету/CommandModule.bsl +++ b/SSL/src/DocumentJournals/Взаимодействия/Commands/НаписатьSMSПоПредмету/CommandModule.bsl @@ -1,5 +1,5 @@ /////////////////////////////////////////////////////////////////////////////////////////////////////// -// Copyright (c) 2024, ООО 1С-Софт +// Copyright (c) 2025, ООО 1С-Софт // Все права защищены. Эта программа и сопроводительные материалы предоставляются // в соответствии с условиями лицензии Attribution 4.0 International (CC BY 4.0) // Текст лицензии доступен по ссылке: diff --git a/SSL/src/DocumentJournals/Взаимодействия/Commands/НаписатьЭлектронноеПисьмоПоКонтакту/CommandModule.bsl b/SSL/src/DocumentJournals/Взаимодействия/Commands/НаписатьЭлектронноеПисьмоПоКонтакту/CommandModule.bsl index f6ccca3f0..7525ee488 100644 --- a/SSL/src/DocumentJournals/Взаимодействия/Commands/НаписатьЭлектронноеПисьмоПоКонтакту/CommandModule.bsl +++ b/SSL/src/DocumentJournals/Взаимодействия/Commands/НаписатьЭлектронноеПисьмоПоКонтакту/CommandModule.bsl @@ -1,5 +1,5 @@ /////////////////////////////////////////////////////////////////////////////////////////////////////// -// Copyright (c) 2024, ООО 1С-Софт +// Copyright (c) 2025, ООО 1С-Софт // Все права защищены. Эта программа и сопроводительные материалы предоставляются // в соответствии с условиями лицензии Attribution 4.0 International (CC BY 4.0) // Текст лицензии доступен по ссылке: diff --git a/SSL/src/DocumentJournals/Взаимодействия/Commands/НаписатьЭлектронноеПисьмоПоПредмету/CommandModule.bsl b/SSL/src/DocumentJournals/Взаимодействия/Commands/НаписатьЭлектронноеПисьмоПоПредмету/CommandModule.bsl index a031ff69e..d819539b5 100644 --- a/SSL/src/DocumentJournals/Взаимодействия/Commands/НаписатьЭлектронноеПисьмоПоПредмету/CommandModule.bsl +++ b/SSL/src/DocumentJournals/Взаимодействия/Commands/НаписатьЭлектронноеПисьмоПоПредмету/CommandModule.bsl @@ -1,5 +1,5 @@ /////////////////////////////////////////////////////////////////////////////////////////////////////// -// Copyright (c) 2024, ООО 1С-Софт +// Copyright (c) 2025, ООО 1С-Софт // Все права защищены. Эта программа и сопроводительные материалы предоставляются // в соответствии с условиями лицензии Attribution 4.0 International (CC BY 4.0) // Текст лицензии доступен по ссылке: diff --git a/SSL/src/DocumentJournals/Взаимодействия/Commands/НастройкиРаботыСПочтой/CommandModule.bsl b/SSL/src/DocumentJournals/Взаимодействия/Commands/НастройкиРаботыСПочтой/CommandModule.bsl index 47eadd5d9..e3ce35174 100644 --- a/SSL/src/DocumentJournals/Взаимодействия/Commands/НастройкиРаботыСПочтой/CommandModule.bsl +++ b/SSL/src/DocumentJournals/Взаимодействия/Commands/НастройкиРаботыСПочтой/CommandModule.bsl @@ -1,5 +1,5 @@ /////////////////////////////////////////////////////////////////////////////////////////////////////// -// Copyright (c) 2024, ООО 1С-Софт +// Copyright (c) 2025, ООО 1С-Софт // Все права защищены. Эта программа и сопроводительные материалы предоставляются // в соответствии с условиями лицензии Attribution 4.0 International (CC BY 4.0) // Текст лицензии доступен по ссылке: diff --git a/SSL/src/DocumentJournals/Взаимодействия/Commands/ПечатьЭлектронногоПисьма/CommandModule.bsl b/SSL/src/DocumentJournals/Взаимодействия/Commands/ПечатьЭлектронногоПисьма/CommandModule.bsl index e48113770..651e40207 100644 --- a/SSL/src/DocumentJournals/Взаимодействия/Commands/ПечатьЭлектронногоПисьма/CommandModule.bsl +++ b/SSL/src/DocumentJournals/Взаимодействия/Commands/ПечатьЭлектронногоПисьма/CommandModule.bsl @@ -1,5 +1,5 @@ /////////////////////////////////////////////////////////////////////////////////////////////////////// -// Copyright (c) 2024, ООО 1С-Софт +// Copyright (c) 2025, ООО 1С-Софт // Все права защищены. Эта программа и сопроводительные материалы предоставляются // в соответствии с условиями лицензии Attribution 4.0 International (CC BY 4.0) // Текст лицензии доступен по ссылке: diff --git a/SSL/src/DocumentJournals/Взаимодействия/Commands/ПозвонитьПоКонтакту/CommandModule.bsl b/SSL/src/DocumentJournals/Взаимодействия/Commands/ПозвонитьПоКонтакту/CommandModule.bsl index 51e6000f9..ab7de900a 100644 --- a/SSL/src/DocumentJournals/Взаимодействия/Commands/ПозвонитьПоКонтакту/CommandModule.bsl +++ b/SSL/src/DocumentJournals/Взаимодействия/Commands/ПозвонитьПоКонтакту/CommandModule.bsl @@ -1,5 +1,5 @@ /////////////////////////////////////////////////////////////////////////////////////////////////////// -// Copyright (c) 2024, ООО 1С-Софт +// Copyright (c) 2025, ООО 1С-Софт // Все права защищены. Эта программа и сопроводительные материалы предоставляются // в соответствии с условиями лицензии Attribution 4.0 International (CC BY 4.0) // Текст лицензии доступен по ссылке: diff --git a/SSL/src/DocumentJournals/Взаимодействия/Commands/ПозвонитьПоПредмету/CommandModule.bsl b/SSL/src/DocumentJournals/Взаимодействия/Commands/ПозвонитьПоПредмету/CommandModule.bsl index 51e6000f9..ab7de900a 100644 --- a/SSL/src/DocumentJournals/Взаимодействия/Commands/ПозвонитьПоПредмету/CommandModule.bsl +++ b/SSL/src/DocumentJournals/Взаимодействия/Commands/ПозвонитьПоПредмету/CommandModule.bsl @@ -1,5 +1,5 @@ /////////////////////////////////////////////////////////////////////////////////////////////////////// -// Copyright (c) 2024, ООО 1С-Софт +// Copyright (c) 2025, ООО 1С-Софт // Все права защищены. Эта программа и сопроводительные материалы предоставляются // в соответствии с условиями лицензии Attribution 4.0 International (CC BY 4.0) // Текст лицензии доступен по ссылке: diff --git a/SSL/src/DocumentJournals/Взаимодействия/Commands/СохранитьПисьмо/CommandModule.bsl b/SSL/src/DocumentJournals/Взаимодействия/Commands/СохранитьПисьмо/CommandModule.bsl index 82b0d02dc..7d7cbfca0 100644 --- a/SSL/src/DocumentJournals/Взаимодействия/Commands/СохранитьПисьмо/CommandModule.bsl +++ b/SSL/src/DocumentJournals/Взаимодействия/Commands/СохранитьПисьмо/CommandModule.bsl @@ -1,5 +1,5 @@ /////////////////////////////////////////////////////////////////////////////////////////////////////// -// Copyright (c) 2024, ООО 1С-Софт +// Copyright (c) 2025, ООО 1С-Софт // Все права защищены. Эта программа и сопроводительные материалы предоставляются // в соответствии с условиями лицензии Attribution 4.0 International (CC BY 4.0) // Текст лицензии доступен по ссылке: diff --git a/SSL/src/DocumentJournals/Взаимодействия/Forms/ВыборТипаПредмета/Module.bsl b/SSL/src/DocumentJournals/Взаимодействия/Forms/ВыборТипаПредмета/Module.bsl index 3cf3119d3..37124dd77 100644 --- a/SSL/src/DocumentJournals/Взаимодействия/Forms/ВыборТипаПредмета/Module.bsl +++ b/SSL/src/DocumentJournals/Взаимодействия/Forms/ВыборТипаПредмета/Module.bsl @@ -1,5 +1,5 @@ /////////////////////////////////////////////////////////////////////////////////////////////////////// -// Copyright (c) 2024, ООО 1С-Софт +// Copyright (c) 2025, ООО 1С-Софт // Все права защищены. Эта программа и сопроводительные материалы предоставляются // в соответствии с условиями лицензии Attribution 4.0 International (CC BY 4.0) // Текст лицензии доступен по ссылке: diff --git a/SSL/src/DocumentJournals/Взаимодействия/Forms/НастройкиРаботыСПочтой/Module.bsl b/SSL/src/DocumentJournals/Взаимодействия/Forms/НастройкиРаботыСПочтой/Module.bsl index 98a368ffb..0e2a0827e 100644 --- a/SSL/src/DocumentJournals/Взаимодействия/Forms/НастройкиРаботыСПочтой/Module.bsl +++ b/SSL/src/DocumentJournals/Взаимодействия/Forms/НастройкиРаботыСПочтой/Module.bsl @@ -1,5 +1,5 @@ /////////////////////////////////////////////////////////////////////////////////////////////////////// -// Copyright (c) 2024, ООО 1С-Софт +// Copyright (c) 2025, ООО 1С-Софт // Все права защищены. Эта программа и сопроводительные материалы предоставляются // в соответствии с условиями лицензии Attribution 4.0 International (CC BY 4.0) // Текст лицензии доступен по ссылке: diff --git a/SSL/src/DocumentJournals/Взаимодействия/Forms/ПараметрыЭлектронногоПисьма/Module.bsl b/SSL/src/DocumentJournals/Взаимодействия/Forms/ПараметрыЭлектронногоПисьма/Module.bsl index 35e52a6d4..f5ee73015 100644 --- a/SSL/src/DocumentJournals/Взаимодействия/Forms/ПараметрыЭлектронногоПисьма/Module.bsl +++ b/SSL/src/DocumentJournals/Взаимодействия/Forms/ПараметрыЭлектронногоПисьма/Module.bsl @@ -1,5 +1,5 @@ /////////////////////////////////////////////////////////////////////////////////////////////////////// -// Copyright (c) 2024, ООО 1С-Софт +// Copyright (c) 2025, ООО 1С-Софт // Все права защищены. Эта программа и сопроводительные материалы предоставляются // в соответствии с условиями лицензии Attribution 4.0 International (CC BY 4.0) // Текст лицензии доступен по ссылке: diff --git a/SSL/src/DocumentJournals/Взаимодействия/Forms/ПечатьЭлектронногоПисьма/Module.bsl b/SSL/src/DocumentJournals/Взаимодействия/Forms/ПечатьЭлектронногоПисьма/Module.bsl index d8ac6f04f..9e1d178d1 100644 --- a/SSL/src/DocumentJournals/Взаимодействия/Forms/ПечатьЭлектронногоПисьма/Module.bsl +++ b/SSL/src/DocumentJournals/Взаимодействия/Forms/ПечатьЭлектронногоПисьма/Module.bsl @@ -1,5 +1,5 @@ /////////////////////////////////////////////////////////////////////////////////////////////////////// -// Copyright (c) 2024, ООО 1С-Софт +// Copyright (c) 2025, ООО 1С-Софт // Все права защищены. Эта программа и сопроводительные материалы предоставляются // в соответствии с условиями лицензии Attribution 4.0 International (CC BY 4.0) // Текст лицензии доступен по ссылке: diff --git a/SSL/src/DocumentJournals/Взаимодействия/Forms/ФормаСписка/Module.bsl b/SSL/src/DocumentJournals/Взаимодействия/Forms/ФормаСписка/Module.bsl index 094775556..008fcf5de 100644 --- a/SSL/src/DocumentJournals/Взаимодействия/Forms/ФормаСписка/Module.bsl +++ b/SSL/src/DocumentJournals/Взаимодействия/Forms/ФормаСписка/Module.bsl @@ -1,5 +1,5 @@ /////////////////////////////////////////////////////////////////////////////////////////////////////// -// Copyright (c) 2024, ООО 1С-Софт +// Copyright (c) 2025, ООО 1С-Софт // Все права защищены. Эта программа и сопроводительные материалы предоставляются // в соответствии с условиями лицензии Attribution 4.0 International (CC BY 4.0) // Текст лицензии доступен по ссылке: diff --git a/SSL/src/DocumentJournals/Взаимодействия/Forms/ФормаСпискаПараметрическая/Module.bsl b/SSL/src/DocumentJournals/Взаимодействия/Forms/ФормаСпискаПараметрическая/Module.bsl index 69465321e..b1dfdd59b 100644 --- a/SSL/src/DocumentJournals/Взаимодействия/Forms/ФормаСпискаПараметрическая/Module.bsl +++ b/SSL/src/DocumentJournals/Взаимодействия/Forms/ФормаСпискаПараметрическая/Module.bsl @@ -1,5 +1,5 @@ /////////////////////////////////////////////////////////////////////////////////////////////////////// -// Copyright (c) 2024, ООО 1С-Софт +// Copyright (c) 2025, ООО 1С-Софт // Все права защищены. Эта программа и сопроводительные материалы предоставляются // в соответствии с условиями лицензии Attribution 4.0 International (CC BY 4.0) // Текст лицензии доступен по ссылке: diff --git a/SSL/src/DocumentJournals/Взаимодействия/ManagerModule.bsl b/SSL/src/DocumentJournals/Взаимодействия/ManagerModule.bsl index 8a875bd03..74c03844a 100644 --- a/SSL/src/DocumentJournals/Взаимодействия/ManagerModule.bsl +++ b/SSL/src/DocumentJournals/Взаимодействия/ManagerModule.bsl @@ -1,5 +1,5 @@ /////////////////////////////////////////////////////////////////////////////////////////////////////// -// Copyright (c) 2024, ООО 1С-Софт +// Copyright (c) 2025, ООО 1С-Софт // Все права защищены. Эта программа и сопроводительные материалы предоставляются // в соответствии с условиями лицензии Attribution 4.0 International (CC BY 4.0) // Текст лицензии доступен по ссылке: diff --git a/SSL/src/DocumentJournals/СогласияНаОбработкуПерсональныхДанных/Forms/ФормаСписка/Module.bsl b/SSL/src/DocumentJournals/СогласияНаОбработкуПерсональныхДанных/Forms/ФормаСписка/Module.bsl index b0395f33a..08e627d48 100644 --- a/SSL/src/DocumentJournals/СогласияНаОбработкуПерсональныхДанных/Forms/ФормаСписка/Module.bsl +++ b/SSL/src/DocumentJournals/СогласияНаОбработкуПерсональныхДанных/Forms/ФормаСписка/Module.bsl @@ -1,5 +1,5 @@ /////////////////////////////////////////////////////////////////////////////////////////////////////// -// Copyright (c) 2024, ООО 1С-Софт +// Copyright (c) 2025, ООО 1С-Софт // Все права защищены. Эта программа и сопроводительные материалы предоставляются // в соответствии с условиями лицензии Attribution 4.0 International (CC BY 4.0) // Текст лицензии доступен по ссылке: diff --git a/SSL/src/Documents/АктОбУничтоженииПерсональныхДанных/Forms/ФормаДокумента/Module.bsl b/SSL/src/Documents/АктОбУничтоженииПерсональныхДанных/Forms/ФормаДокумента/Module.bsl index f04b17844..beb4158a3 100644 --- a/SSL/src/Documents/АктОбУничтоженииПерсональныхДанных/Forms/ФормаДокумента/Module.bsl +++ b/SSL/src/Documents/АктОбУничтоженииПерсональныхДанных/Forms/ФормаДокумента/Module.bsl @@ -1,5 +1,5 @@ /////////////////////////////////////////////////////////////////////////////////////////////////////// -// Copyright (c) 2024, ООО 1С-Софт +// Copyright (c) 2025, ООО 1С-Софт // Все права защищены. Эта программа и сопроводительные материалы предоставляются // в соответствии с условиями лицензии Attribution 4.0 International (CC BY 4.0) // Текст лицензии доступен по ссылке: diff --git a/SSL/src/Documents/АктОбУничтоженииПерсональныхДанных/Forms/ФормаСписка/Module.bsl b/SSL/src/Documents/АктОбУничтоженииПерсональныхДанных/Forms/ФормаСписка/Module.bsl index 86b39beb1..7048aae1e 100644 --- a/SSL/src/Documents/АктОбУничтоженииПерсональныхДанных/Forms/ФормаСписка/Module.bsl +++ b/SSL/src/Documents/АктОбУничтоженииПерсональныхДанных/Forms/ФормаСписка/Module.bsl @@ -1,5 +1,5 @@ /////////////////////////////////////////////////////////////////////////////////////////////////////// -// Copyright (c) 2024, ООО 1С-Софт +// Copyright (c) 2025, ООО 1С-Софт // Все права защищены. Эта программа и сопроводительные материалы предоставляются // в соответствии с условиями лицензии Attribution 4.0 International (CC BY 4.0) // Текст лицензии доступен по ссылке: diff --git a/SSL/src/Documents/АктОбУничтоженииПерсональныхДанных/ManagerModule.bsl b/SSL/src/Documents/АктОбУничтоженииПерсональныхДанных/ManagerModule.bsl index 6fdb5bac7..036dc9ae8 100644 --- a/SSL/src/Documents/АктОбУничтоженииПерсональныхДанных/ManagerModule.bsl +++ b/SSL/src/Documents/АктОбУничтоженииПерсональныхДанных/ManagerModule.bsl @@ -1,5 +1,5 @@ /////////////////////////////////////////////////////////////////////////////////////////////////////// -// Copyright (c) 2024, ООО 1С-Софт +// Copyright (c) 2025, ООО 1С-Софт // Все права защищены. Эта программа и сопроводительные материалы предоставляются // в соответствии с условиями лицензии Attribution 4.0 International (CC BY 4.0) // Текст лицензии доступен по ссылке: diff --git a/SSL/src/Documents/АктОбУничтоженииПерсональныхДанных/ObjectModule.bsl b/SSL/src/Documents/АктОбУничтоженииПерсональныхДанных/ObjectModule.bsl index 1056b27b8..959069400 100644 --- a/SSL/src/Documents/АктОбУничтоженииПерсональныхДанных/ObjectModule.bsl +++ b/SSL/src/Documents/АктОбУничтоженииПерсональныхДанных/ObjectModule.bsl @@ -1,5 +1,5 @@ /////////////////////////////////////////////////////////////////////////////////////////////////////// -// Copyright (c) 2024, ООО 1С-Софт +// Copyright (c) 2025, ООО 1С-Софт // Все права защищены. Эта программа и сопроводительные материалы предоставляются // в соответствии с условиями лицензии Attribution 4.0 International (CC BY 4.0) // Текст лицензии доступен по ссылке: diff --git a/SSL/src/Documents/Анкета/Forms/ФормаДокумента/Module.bsl b/SSL/src/Documents/Анкета/Forms/ФормаДокумента/Module.bsl index 4bb6ad7ee..d41ad92c0 100644 --- a/SSL/src/Documents/Анкета/Forms/ФормаДокумента/Module.bsl +++ b/SSL/src/Documents/Анкета/Forms/ФормаДокумента/Module.bsl @@ -1,5 +1,5 @@ /////////////////////////////////////////////////////////////////////////////////////////////////////// -// Copyright (c) 2024, ООО 1С-Софт +// Copyright (c) 2025, ООО 1С-Софт // Все права защищены. Эта программа и сопроводительные материалы предоставляются // в соответствии с условиями лицензии Attribution 4.0 International (CC BY 4.0) // Текст лицензии доступен по ссылке: diff --git a/SSL/src/Documents/Анкета/Forms/ФормаСписка/Module.bsl b/SSL/src/Documents/Анкета/Forms/ФормаСписка/Module.bsl index 37bdf7c4c..866272a45 100644 --- a/SSL/src/Documents/Анкета/Forms/ФормаСписка/Module.bsl +++ b/SSL/src/Documents/Анкета/Forms/ФормаСписка/Module.bsl @@ -1,5 +1,5 @@ /////////////////////////////////////////////////////////////////////////////////////////////////////// -// Copyright (c) 2024, ООО 1С-Софт +// Copyright (c) 2025, ООО 1С-Софт // Все права защищены. Эта программа и сопроводительные материалы предоставляются // в соответствии с условиями лицензии Attribution 4.0 International (CC BY 4.0) // Текст лицензии доступен по ссылке: diff --git a/SSL/src/Documents/Анкета/ManagerModule.bsl b/SSL/src/Documents/Анкета/ManagerModule.bsl index 857e30fa0..cd93318af 100644 --- a/SSL/src/Documents/Анкета/ManagerModule.bsl +++ b/SSL/src/Documents/Анкета/ManagerModule.bsl @@ -1,5 +1,5 @@ /////////////////////////////////////////////////////////////////////////////////////////////////////// -// Copyright (c) 2024, ООО 1С-Софт +// Copyright (c) 2025, ООО 1С-Софт // Все права защищены. Эта программа и сопроводительные материалы предоставляются // в соответствии с условиями лицензии Attribution 4.0 International (CC BY 4.0) // Текст лицензии доступен по ссылке: diff --git a/SSL/src/Documents/Анкета/ObjectModule.bsl b/SSL/src/Documents/Анкета/ObjectModule.bsl index 1bbe67ac4..c6f920877 100644 --- a/SSL/src/Documents/Анкета/ObjectModule.bsl +++ b/SSL/src/Documents/Анкета/ObjectModule.bsl @@ -1,5 +1,5 @@ /////////////////////////////////////////////////////////////////////////////////////////////////////// -// Copyright (c) 2024, ООО 1С-Софт +// Copyright (c) 2025, ООО 1С-Софт // Все права защищены. Эта программа и сопроводительные материалы предоставляются // в соответствии с условиями лицензии Attribution 4.0 International (CC BY 4.0) // Текст лицензии доступен по ссылке: diff --git a/SSL/src/Documents/Встреча/Forms/ФормаДокумента/Module.bsl b/SSL/src/Documents/Встреча/Forms/ФормаДокумента/Module.bsl index aceaf967b..a02277091 100644 --- a/SSL/src/Documents/Встреча/Forms/ФормаДокумента/Module.bsl +++ b/SSL/src/Documents/Встреча/Forms/ФормаДокумента/Module.bsl @@ -1,5 +1,5 @@ /////////////////////////////////////////////////////////////////////////////////////////////////////// -// Copyright (c) 2024, ООО 1С-Софт +// Copyright (c) 2025, ООО 1С-Софт // Все права защищены. Эта программа и сопроводительные материалы предоставляются // в соответствии с условиями лицензии Attribution 4.0 International (CC BY 4.0) // Текст лицензии доступен по ссылке: diff --git a/SSL/src/Documents/Встреча/Forms/ФормаСписка/Module.bsl b/SSL/src/Documents/Встреча/Forms/ФормаСписка/Module.bsl index aa00007dc..3b7be936f 100644 --- a/SSL/src/Documents/Встреча/Forms/ФормаСписка/Module.bsl +++ b/SSL/src/Documents/Встреча/Forms/ФормаСписка/Module.bsl @@ -1,5 +1,5 @@ /////////////////////////////////////////////////////////////////////////////////////////////////////// -// Copyright (c) 2024, ООО 1С-Софт +// Copyright (c) 2025, ООО 1С-Софт // Все права защищены. Эта программа и сопроводительные материалы предоставляются // в соответствии с условиями лицензии Attribution 4.0 International (CC BY 4.0) // Текст лицензии доступен по ссылке: diff --git a/SSL/src/Documents/Встреча/ManagerModule.bsl b/SSL/src/Documents/Встреча/ManagerModule.bsl index 13808e0ff..718c9f512 100644 --- a/SSL/src/Documents/Встреча/ManagerModule.bsl +++ b/SSL/src/Documents/Встреча/ManagerModule.bsl @@ -1,5 +1,5 @@ /////////////////////////////////////////////////////////////////////////////////////////////////////// -// Copyright (c) 2024, ООО 1С-Софт +// Copyright (c) 2025, ООО 1С-Софт // Все права защищены. Эта программа и сопроводительные материалы предоставляются // в соответствии с условиями лицензии Attribution 4.0 International (CC BY 4.0) // Текст лицензии доступен по ссылке: diff --git a/SSL/src/Documents/Встреча/ObjectModule.bsl b/SSL/src/Documents/Встреча/ObjectModule.bsl index faff10f8c..b055062e1 100644 --- a/SSL/src/Documents/Встреча/ObjectModule.bsl +++ b/SSL/src/Documents/Встреча/ObjectModule.bsl @@ -1,5 +1,5 @@ /////////////////////////////////////////////////////////////////////////////////////////////////////// -// Copyright (c) 2024, ООО 1С-Софт +// Copyright (c) 2025, ООО 1С-Софт // Все права защищены. Эта программа и сопроводительные материалы предоставляются // в соответствии с условиями лицензии Attribution 4.0 International (CC BY 4.0) // Текст лицензии доступен по ссылке: diff --git a/SSL/src/Documents/ЗапланированноеВзаимодействие/Forms/ФормаДокумента/Module.bsl b/SSL/src/Documents/ЗапланированноеВзаимодействие/Forms/ФормаДокумента/Module.bsl index 57a4f2116..472aeb1af 100644 --- a/SSL/src/Documents/ЗапланированноеВзаимодействие/Forms/ФормаДокумента/Module.bsl +++ b/SSL/src/Documents/ЗапланированноеВзаимодействие/Forms/ФормаДокумента/Module.bsl @@ -1,5 +1,5 @@ /////////////////////////////////////////////////////////////////////////////////////////////////////// -// Copyright (c) 2024, ООО 1С-Софт +// Copyright (c) 2025, ООО 1С-Софт // Все права защищены. Эта программа и сопроводительные материалы предоставляются // в соответствии с условиями лицензии Attribution 4.0 International (CC BY 4.0) // Текст лицензии доступен по ссылке: diff --git a/SSL/src/Documents/ЗапланированноеВзаимодействие/Forms/ФормаСписка/Module.bsl b/SSL/src/Documents/ЗапланированноеВзаимодействие/Forms/ФормаСписка/Module.bsl index aa00007dc..3b7be936f 100644 --- a/SSL/src/Documents/ЗапланированноеВзаимодействие/Forms/ФормаСписка/Module.bsl +++ b/SSL/src/Documents/ЗапланированноеВзаимодействие/Forms/ФормаСписка/Module.bsl @@ -1,5 +1,5 @@ /////////////////////////////////////////////////////////////////////////////////////////////////////// -// Copyright (c) 2024, ООО 1С-Софт +// Copyright (c) 2025, ООО 1С-Софт // Все права защищены. Эта программа и сопроводительные материалы предоставляются // в соответствии с условиями лицензии Attribution 4.0 International (CC BY 4.0) // Текст лицензии доступен по ссылке: diff --git a/SSL/src/Documents/ЗапланированноеВзаимодействие/ManagerModule.bsl b/SSL/src/Documents/ЗапланированноеВзаимодействие/ManagerModule.bsl index ac9fb3cd2..cbd3b75e3 100644 --- a/SSL/src/Documents/ЗапланированноеВзаимодействие/ManagerModule.bsl +++ b/SSL/src/Documents/ЗапланированноеВзаимодействие/ManagerModule.bsl @@ -1,5 +1,5 @@ /////////////////////////////////////////////////////////////////////////////////////////////////////// -// Copyright (c) 2024, ООО 1С-Софт +// Copyright (c) 2025, ООО 1С-Софт // Все права защищены. Эта программа и сопроводительные материалы предоставляются // в соответствии с условиями лицензии Attribution 4.0 International (CC BY 4.0) // Текст лицензии доступен по ссылке: diff --git a/SSL/src/Documents/ЗапланированноеВзаимодействие/ObjectModule.bsl b/SSL/src/Documents/ЗапланированноеВзаимодействие/ObjectModule.bsl index 4080d3abc..ddb5556a5 100644 --- a/SSL/src/Documents/ЗапланированноеВзаимодействие/ObjectModule.bsl +++ b/SSL/src/Documents/ЗапланированноеВзаимодействие/ObjectModule.bsl @@ -1,5 +1,5 @@ /////////////////////////////////////////////////////////////////////////////////////////////////////// -// Copyright (c) 2024, ООО 1С-Софт +// Copyright (c) 2025, ООО 1С-Софт // Все права защищены. Эта программа и сопроводительные материалы предоставляются // в соответствии с условиями лицензии Attribution 4.0 International (CC BY 4.0) // Текст лицензии доступен по ссылке: diff --git a/SSL/src/Documents/НазначениеОпросов/Forms/ФормаДокумента/Module.bsl b/SSL/src/Documents/НазначениеОпросов/Forms/ФормаДокумента/Module.bsl index bfe111efb..b96a07430 100644 --- a/SSL/src/Documents/НазначениеОпросов/Forms/ФормаДокумента/Module.bsl +++ b/SSL/src/Documents/НазначениеОпросов/Forms/ФормаДокумента/Module.bsl @@ -1,5 +1,5 @@ /////////////////////////////////////////////////////////////////////////////////////////////////////// -// Copyright (c) 2024, ООО 1С-Софт +// Copyright (c) 2025, ООО 1С-Софт // Все права защищены. Эта программа и сопроводительные материалы предоставляются // в соответствии с условиями лицензии Attribution 4.0 International (CC BY 4.0) // Текст лицензии доступен по ссылке: diff --git a/SSL/src/Documents/НазначениеОпросов/Forms/ФормаПодбораРеспондентов/Module.bsl b/SSL/src/Documents/НазначениеОпросов/Forms/ФормаПодбораРеспондентов/Module.bsl index f9abe8982..865629ad4 100644 --- a/SSL/src/Documents/НазначениеОпросов/Forms/ФормаПодбораРеспондентов/Module.bsl +++ b/SSL/src/Documents/НазначениеОпросов/Forms/ФормаПодбораРеспондентов/Module.bsl @@ -1,5 +1,5 @@ /////////////////////////////////////////////////////////////////////////////////////////////////////// -// Copyright (c) 2024, ООО 1С-Софт +// Copyright (c) 2025, ООО 1С-Софт // Все права защищены. Эта программа и сопроводительные материалы предоставляются // в соответствии с условиями лицензии Attribution 4.0 International (CC BY 4.0) // Текст лицензии доступен по ссылке: diff --git a/SSL/src/Documents/НазначениеОпросов/Forms/ФормаСписка/Module.bsl b/SSL/src/Documents/НазначениеОпросов/Forms/ФормаСписка/Module.bsl index 3806d95c5..75873e602 100644 --- a/SSL/src/Documents/НазначениеОпросов/Forms/ФормаСписка/Module.bsl +++ b/SSL/src/Documents/НазначениеОпросов/Forms/ФормаСписка/Module.bsl @@ -1,5 +1,5 @@ /////////////////////////////////////////////////////////////////////////////////////////////////////// -// Copyright (c) 2024, ООО 1С-Софт +// Copyright (c) 2025, ООО 1С-Софт // Все права защищены. Эта программа и сопроводительные материалы предоставляются // в соответствии с условиями лицензии Attribution 4.0 International (CC BY 4.0) // Текст лицензии доступен по ссылке: diff --git a/SSL/src/Documents/НазначениеОпросов/ManagerModule.bsl b/SSL/src/Documents/НазначениеОпросов/ManagerModule.bsl index 5ea2b5fd5..1a161c61e 100644 --- a/SSL/src/Documents/НазначениеОпросов/ManagerModule.bsl +++ b/SSL/src/Documents/НазначениеОпросов/ManagerModule.bsl @@ -1,5 +1,5 @@ /////////////////////////////////////////////////////////////////////////////////////////////////////// -// Copyright (c) 2024, ООО 1С-Софт +// Copyright (c) 2025, ООО 1С-Софт // Все права защищены. Эта программа и сопроводительные материалы предоставляются // в соответствии с условиями лицензии Attribution 4.0 International (CC BY 4.0) // Текст лицензии доступен по ссылке: diff --git a/SSL/src/Documents/ОтзывСогласияНаОбработкуПерсональныхДанных/Forms/ФормаДокумента/Module.bsl b/SSL/src/Documents/ОтзывСогласияНаОбработкуПерсональныхДанных/Forms/ФормаДокумента/Module.bsl index 1b1e49e30..dd00f151e 100644 --- a/SSL/src/Documents/ОтзывСогласияНаОбработкуПерсональныхДанных/Forms/ФормаДокумента/Module.bsl +++ b/SSL/src/Documents/ОтзывСогласияНаОбработкуПерсональныхДанных/Forms/ФормаДокумента/Module.bsl @@ -1,5 +1,5 @@ /////////////////////////////////////////////////////////////////////////////////////////////////////// -// Copyright (c) 2024, ООО 1С-Софт +// Copyright (c) 2025, ООО 1С-Софт // Все права защищены. Эта программа и сопроводительные материалы предоставляются // в соответствии с условиями лицензии Attribution 4.0 International (CC BY 4.0) // Текст лицензии доступен по ссылке: diff --git a/SSL/src/Documents/ОтзывСогласияНаОбработкуПерсональныхДанных/Forms/ФормаСписка/Module.bsl b/SSL/src/Documents/ОтзывСогласияНаОбработкуПерсональныхДанных/Forms/ФормаСписка/Module.bsl index ce28f7d35..c8c81e098 100644 --- a/SSL/src/Documents/ОтзывСогласияНаОбработкуПерсональныхДанных/Forms/ФормаСписка/Module.bsl +++ b/SSL/src/Documents/ОтзывСогласияНаОбработкуПерсональныхДанных/Forms/ФормаСписка/Module.bsl @@ -1,5 +1,5 @@ /////////////////////////////////////////////////////////////////////////////////////////////////////// -// Copyright (c) 2024, ООО 1С-Софт +// Copyright (c) 2025, ООО 1С-Софт // Все права защищены. Эта программа и сопроводительные материалы предоставляются // в соответствии с условиями лицензии Attribution 4.0 International (CC BY 4.0) // Текст лицензии доступен по ссылке: diff --git a/SSL/src/Documents/ОтзывСогласияНаОбработкуПерсональныхДанных/ManagerModule.bsl b/SSL/src/Documents/ОтзывСогласияНаОбработкуПерсональныхДанных/ManagerModule.bsl index 7cb2a863f..6251190e4 100644 --- a/SSL/src/Documents/ОтзывСогласияНаОбработкуПерсональныхДанных/ManagerModule.bsl +++ b/SSL/src/Documents/ОтзывСогласияНаОбработкуПерсональныхДанных/ManagerModule.bsl @@ -1,5 +1,5 @@ /////////////////////////////////////////////////////////////////////////////////////////////////////// -// Copyright (c) 2024, ООО 1С-Софт +// Copyright (c) 2025, ООО 1С-Софт // Все права защищены. Эта программа и сопроводительные материалы предоставляются // в соответствии с условиями лицензии Attribution 4.0 International (CC BY 4.0) // Текст лицензии доступен по ссылке: diff --git a/SSL/src/Documents/ОтзывСогласияНаОбработкуПерсональныхДанных/ObjectModule.bsl b/SSL/src/Documents/ОтзывСогласияНаОбработкуПерсональныхДанных/ObjectModule.bsl index 40cf7cb4f..92f3c4c38 100644 --- a/SSL/src/Documents/ОтзывСогласияНаОбработкуПерсональныхДанных/ObjectModule.bsl +++ b/SSL/src/Documents/ОтзывСогласияНаОбработкуПерсональныхДанных/ObjectModule.bsl @@ -1,5 +1,5 @@ /////////////////////////////////////////////////////////////////////////////////////////////////////// -// Copyright (c) 2024, ООО 1С-Софт +// Copyright (c) 2025, ООО 1С-Софт // Все права защищены. Эта программа и сопроводительные материалы предоставляются // в соответствии с условиями лицензии Attribution 4.0 International (CC BY 4.0) // Текст лицензии доступен по ссылке: diff --git a/SSL/src/Documents/СогласиеНаОбработкуПерсональныхДанных/Forms/ФормаДокумента/Module.bsl b/SSL/src/Documents/СогласиеНаОбработкуПерсональныхДанных/Forms/ФормаДокумента/Module.bsl index 062e998b9..7c34de48c 100644 --- a/SSL/src/Documents/СогласиеНаОбработкуПерсональныхДанных/Forms/ФормаДокумента/Module.bsl +++ b/SSL/src/Documents/СогласиеНаОбработкуПерсональныхДанных/Forms/ФормаДокумента/Module.bsl @@ -1,5 +1,5 @@ /////////////////////////////////////////////////////////////////////////////////////////////////////// -// Copyright (c) 2024, ООО 1С-Софт +// Copyright (c) 2025, ООО 1С-Софт // Все права защищены. Эта программа и сопроводительные материалы предоставляются // в соответствии с условиями лицензии Attribution 4.0 International (CC BY 4.0) // Текст лицензии доступен по ссылке: diff --git a/SSL/src/Documents/СогласиеНаОбработкуПерсональныхДанных/Forms/ФормаСписка/Module.bsl b/SSL/src/Documents/СогласиеНаОбработкуПерсональныхДанных/Forms/ФормаСписка/Module.bsl index 076daa19f..3fea0cdb1 100644 --- a/SSL/src/Documents/СогласиеНаОбработкуПерсональныхДанных/Forms/ФормаСписка/Module.bsl +++ b/SSL/src/Documents/СогласиеНаОбработкуПерсональныхДанных/Forms/ФормаСписка/Module.bsl @@ -1,5 +1,5 @@ /////////////////////////////////////////////////////////////////////////////////////////////////////// -// Copyright (c) 2024, ООО 1С-Софт +// Copyright (c) 2025, ООО 1С-Софт // Все права защищены. Эта программа и сопроводительные материалы предоставляются // в соответствии с условиями лицензии Attribution 4.0 International (CC BY 4.0) // Текст лицензии доступен по ссылке: diff --git a/SSL/src/Documents/СогласиеНаОбработкуПерсональныхДанных/ManagerModule.bsl b/SSL/src/Documents/СогласиеНаОбработкуПерсональныхДанных/ManagerModule.bsl index 0ea84a692..3cff4e544 100644 --- a/SSL/src/Documents/СогласиеНаОбработкуПерсональныхДанных/ManagerModule.bsl +++ b/SSL/src/Documents/СогласиеНаОбработкуПерсональныхДанных/ManagerModule.bsl @@ -1,5 +1,5 @@ /////////////////////////////////////////////////////////////////////////////////////////////////////// -// Copyright (c) 2024, ООО 1С-Софт +// Copyright (c) 2025, ООО 1С-Софт // Все права защищены. Эта программа и сопроводительные материалы предоставляются // в соответствии с условиями лицензии Attribution 4.0 International (CC BY 4.0) // Текст лицензии доступен по ссылке: diff --git a/SSL/src/Documents/СогласиеНаОбработкуПерсональныхДанных/ObjectModule.bsl b/SSL/src/Documents/СогласиеНаОбработкуПерсональныхДанных/ObjectModule.bsl index 49461c78b..0df79ee55 100644 --- a/SSL/src/Documents/СогласиеНаОбработкуПерсональныхДанных/ObjectModule.bsl +++ b/SSL/src/Documents/СогласиеНаОбработкуПерсональныхДанных/ObjectModule.bsl @@ -1,5 +1,5 @@ /////////////////////////////////////////////////////////////////////////////////////////////////////// -// Copyright (c) 2024, ООО 1С-Софт +// Copyright (c) 2025, ООО 1С-Софт // Все права защищены. Эта программа и сопроводительные материалы предоставляются // в соответствии с условиями лицензии Attribution 4.0 International (CC BY 4.0) // Текст лицензии доступен по ссылке: diff --git a/SSL/src/Documents/СогласиеНаОбработкуПерсональныхДанных/Templates/ПФ_MXL_СогласиеНаОбработкуПерсональныхДанных/Template.mxlx b/SSL/src/Documents/СогласиеНаОбработкуПерсональныхДанных/Templates/ПФ_MXL_СогласиеНаОбработкуПерсональныхДанных/Template.mxlx index fd8555a99..403b61068 100644 --- a/SSL/src/Documents/СогласиеНаОбработкуПерсональныхДанных/Templates/ПФ_MXL_СогласиеНаОбработкуПерсональныхДанных/Template.mxlx +++ b/SSL/src/Documents/СогласиеНаОбработкуПерсональныхДанных/Templates/ПФ_MXL_СогласиеНаОбработкуПерсональныхДанных/Template.mxlx @@ -11407,6 +11407,7 @@ 0 1 24 + Wrap Template @@ -11427,6 +11428,7 @@ 1 24 Center + Wrap Template diff --git a/SSL/src/Documents/СообщениеSMS/Forms/ФормаДокумента/Module.bsl b/SSL/src/Documents/СообщениеSMS/Forms/ФормаДокумента/Module.bsl index b03293964..2d85e5ae8 100644 --- a/SSL/src/Documents/СообщениеSMS/Forms/ФормаДокумента/Module.bsl +++ b/SSL/src/Documents/СообщениеSMS/Forms/ФормаДокумента/Module.bsl @@ -1,5 +1,5 @@ /////////////////////////////////////////////////////////////////////////////////////////////////////// -// Copyright (c) 2024, ООО 1С-Софт +// Copyright (c) 2025, ООО 1С-Софт // Все права защищены. Эта программа и сопроводительные материалы предоставляются // в соответствии с условиями лицензии Attribution 4.0 International (CC BY 4.0) // Текст лицензии доступен по ссылке: diff --git a/SSL/src/Documents/СообщениеSMS/Forms/ФормаСписка/Module.bsl b/SSL/src/Documents/СообщениеSMS/Forms/ФормаСписка/Module.bsl index 3806d95c5..75873e602 100644 --- a/SSL/src/Documents/СообщениеSMS/Forms/ФормаСписка/Module.bsl +++ b/SSL/src/Documents/СообщениеSMS/Forms/ФормаСписка/Module.bsl @@ -1,5 +1,5 @@ /////////////////////////////////////////////////////////////////////////////////////////////////////// -// Copyright (c) 2024, ООО 1С-Софт +// Copyright (c) 2025, ООО 1С-Софт // Все права защищены. Эта программа и сопроводительные материалы предоставляются // в соответствии с условиями лицензии Attribution 4.0 International (CC BY 4.0) // Текст лицензии доступен по ссылке: diff --git a/SSL/src/Documents/СообщениеSMS/ManagerModule.bsl b/SSL/src/Documents/СообщениеSMS/ManagerModule.bsl index bf71b80d4..b65efba3c 100644 --- a/SSL/src/Documents/СообщениеSMS/ManagerModule.bsl +++ b/SSL/src/Documents/СообщениеSMS/ManagerModule.bsl @@ -1,5 +1,5 @@ /////////////////////////////////////////////////////////////////////////////////////////////////////// -// Copyright (c) 2024, ООО 1С-Софт +// Copyright (c) 2025, ООО 1С-Софт // Все права защищены. Эта программа и сопроводительные материалы предоставляются // в соответствии с условиями лицензии Attribution 4.0 International (CC BY 4.0) // Текст лицензии доступен по ссылке: diff --git a/SSL/src/Documents/СообщениеSMS/ObjectModule.bsl b/SSL/src/Documents/СообщениеSMS/ObjectModule.bsl index 63ddd1375..b4da380b3 100644 --- a/SSL/src/Documents/СообщениеSMS/ObjectModule.bsl +++ b/SSL/src/Documents/СообщениеSMS/ObjectModule.bsl @@ -1,5 +1,5 @@ /////////////////////////////////////////////////////////////////////////////////////////////////////// -// Copyright (c) 2024, ООО 1С-Софт +// Copyright (c) 2025, ООО 1С-Софт // Все права защищены. Эта программа и сопроводительные материалы предоставляются // в соответствии с условиями лицензии Attribution 4.0 International (CC BY 4.0) // Текст лицензии доступен по ссылке: diff --git a/SSL/src/Documents/ТелефонныйЗвонок/Forms/ФормаДокумента/Module.bsl b/SSL/src/Documents/ТелефонныйЗвонок/Forms/ФормаДокумента/Module.bsl index f499beb03..62c7dd8a3 100644 --- a/SSL/src/Documents/ТелефонныйЗвонок/Forms/ФормаДокумента/Module.bsl +++ b/SSL/src/Documents/ТелефонныйЗвонок/Forms/ФормаДокумента/Module.bsl @@ -1,5 +1,5 @@ /////////////////////////////////////////////////////////////////////////////////////////////////////// -// Copyright (c) 2024, ООО 1С-Софт +// Copyright (c) 2025, ООО 1С-Софт // Все права защищены. Эта программа и сопроводительные материалы предоставляются // в соответствии с условиями лицензии Attribution 4.0 International (CC BY 4.0) // Текст лицензии доступен по ссылке: diff --git a/SSL/src/Documents/ТелефонныйЗвонок/Forms/ФормаСписка/Module.bsl b/SSL/src/Documents/ТелефонныйЗвонок/Forms/ФормаСписка/Module.bsl index c195ea00e..2b2d34a67 100644 --- a/SSL/src/Documents/ТелефонныйЗвонок/Forms/ФормаСписка/Module.bsl +++ b/SSL/src/Documents/ТелефонныйЗвонок/Forms/ФормаСписка/Module.bsl @@ -1,5 +1,5 @@ /////////////////////////////////////////////////////////////////////////////////////////////////////// -// Copyright (c) 2024, ООО 1С-Софт +// Copyright (c) 2025, ООО 1С-Софт // Все права защищены. Эта программа и сопроводительные материалы предоставляются // в соответствии с условиями лицензии Attribution 4.0 International (CC BY 4.0) // Текст лицензии доступен по ссылке: diff --git a/SSL/src/Documents/ТелефонныйЗвонок/ManagerModule.bsl b/SSL/src/Documents/ТелефонныйЗвонок/ManagerModule.bsl index ae6d2ae0a..9c829b5b9 100644 --- a/SSL/src/Documents/ТелефонныйЗвонок/ManagerModule.bsl +++ b/SSL/src/Documents/ТелефонныйЗвонок/ManagerModule.bsl @@ -1,5 +1,5 @@ /////////////////////////////////////////////////////////////////////////////////////////////////////// -// Copyright (c) 2024, ООО 1С-Софт +// Copyright (c) 2025, ООО 1С-Софт // Все права защищены. Эта программа и сопроводительные материалы предоставляются // в соответствии с условиями лицензии Attribution 4.0 International (CC BY 4.0) // Текст лицензии доступен по ссылке: diff --git a/SSL/src/Documents/ТелефонныйЗвонок/ObjectModule.bsl b/SSL/src/Documents/ТелефонныйЗвонок/ObjectModule.bsl index 36210d263..235a01cda 100644 --- a/SSL/src/Documents/ТелефонныйЗвонок/ObjectModule.bsl +++ b/SSL/src/Documents/ТелефонныйЗвонок/ObjectModule.bsl @@ -1,5 +1,5 @@ /////////////////////////////////////////////////////////////////////////////////////////////////////// -// Copyright (c) 2024, ООО 1С-Софт +// Copyright (c) 2025, ООО 1С-Софт // Все права защищены. Эта программа и сопроводительные материалы предоставляются // в соответствии с условиями лицензии Attribution 4.0 International (CC BY 4.0) // Текст лицензии доступен по ссылке: diff --git a/SSL/src/Documents/ЭлектронноеПисьмоВходящее/Commands/Ответить/CommandModule.bsl b/SSL/src/Documents/ЭлектронноеПисьмоВходящее/Commands/Ответить/CommandModule.bsl index 34094b229..8a53a09d1 100644 --- a/SSL/src/Documents/ЭлектронноеПисьмоВходящее/Commands/Ответить/CommandModule.bsl +++ b/SSL/src/Documents/ЭлектронноеПисьмоВходящее/Commands/Ответить/CommandModule.bsl @@ -1,5 +1,5 @@ /////////////////////////////////////////////////////////////////////////////////////////////////////// -// Copyright (c) 2024, ООО 1С-Софт +// Copyright (c) 2025, ООО 1С-Софт // Все права защищены. Эта программа и сопроводительные материалы предоставляются // в соответствии с условиями лицензии Attribution 4.0 International (CC BY 4.0) // Текст лицензии доступен по ссылке: diff --git a/SSL/src/Documents/ЭлектронноеПисьмоВходящее/Commands/ОтветитьВсем/CommandModule.bsl b/SSL/src/Documents/ЭлектронноеПисьмоВходящее/Commands/ОтветитьВсем/CommandModule.bsl index a04c52731..63c603732 100644 --- a/SSL/src/Documents/ЭлектронноеПисьмоВходящее/Commands/ОтветитьВсем/CommandModule.bsl +++ b/SSL/src/Documents/ЭлектронноеПисьмоВходящее/Commands/ОтветитьВсем/CommandModule.bsl @@ -1,5 +1,5 @@ /////////////////////////////////////////////////////////////////////////////////////////////////////// -// Copyright (c) 2024, ООО 1С-Софт +// Copyright (c) 2025, ООО 1С-Софт // Все права защищены. Эта программа и сопроводительные материалы предоставляются // в соответствии с условиями лицензии Attribution 4.0 International (CC BY 4.0) // Текст лицензии доступен по ссылке: diff --git a/SSL/src/Documents/ЭлектронноеПисьмоВходящее/Commands/Переслать/CommandModule.bsl b/SSL/src/Documents/ЭлектронноеПисьмоВходящее/Commands/Переслать/CommandModule.bsl index 21c3952b1..f46f3a84e 100644 --- a/SSL/src/Documents/ЭлектронноеПисьмоВходящее/Commands/Переслать/CommandModule.bsl +++ b/SSL/src/Documents/ЭлектронноеПисьмоВходящее/Commands/Переслать/CommandModule.bsl @@ -1,5 +1,5 @@ /////////////////////////////////////////////////////////////////////////////////////////////////////// -// Copyright (c) 2024, ООО 1С-Софт +// Copyright (c) 2025, ООО 1С-Софт // Все права защищены. Эта программа и сопроводительные материалы предоставляются // в соответствии с условиями лицензии Attribution 4.0 International (CC BY 4.0) // Текст лицензии доступен по ссылке: diff --git a/SSL/src/Documents/ЭлектронноеПисьмоВходящее/Forms/ФормаВыбора/Module.bsl b/SSL/src/Documents/ЭлектронноеПисьмоВходящее/Forms/ФормаВыбора/Module.bsl index db97d647f..e1df88bd7 100644 --- a/SSL/src/Documents/ЭлектронноеПисьмоВходящее/Forms/ФормаВыбора/Module.bsl +++ b/SSL/src/Documents/ЭлектронноеПисьмоВходящее/Forms/ФормаВыбора/Module.bsl @@ -1,5 +1,5 @@ /////////////////////////////////////////////////////////////////////////////////////////////////////// -// Copyright (c) 2024, ООО 1С-Софт +// Copyright (c) 2025, ООО 1С-Софт // Все права защищены. Эта программа и сопроводительные материалы предоставляются // в соответствии с условиями лицензии Attribution 4.0 International (CC BY 4.0) // Текст лицензии доступен по ссылке: diff --git a/SSL/src/Documents/ЭлектронноеПисьмоВходящее/Forms/ФормаДокумента/Module.bsl b/SSL/src/Documents/ЭлектронноеПисьмоВходящее/Forms/ФормаДокумента/Module.bsl index 755617b93..910ca138a 100644 --- a/SSL/src/Documents/ЭлектронноеПисьмоВходящее/Forms/ФормаДокумента/Module.bsl +++ b/SSL/src/Documents/ЭлектронноеПисьмоВходящее/Forms/ФормаДокумента/Module.bsl @@ -1,5 +1,5 @@ /////////////////////////////////////////////////////////////////////////////////////////////////////// -// Copyright (c) 2024, ООО 1С-Софт +// Copyright (c) 2025, ООО 1С-Софт // Все права защищены. Эта программа и сопроводительные материалы предоставляются // в соответствии с условиями лицензии Attribution 4.0 International (CC BY 4.0) // Текст лицензии доступен по ссылке: @@ -469,9 +469,12 @@ Возврат; КонецЕсли; - ДанныеФайла = РаботаСФайламиКлиент.ДанныеФайла(ТекущиеДанные.Ссылка, УникальныйИдентификатор); - РаботаСФайламиКлиент.СохранитьФайлКак(ДанныеФайла); - + ПараметрыПолученияФайла = РаботаСФайламиКлиент.ПараметрыАсинхронногоПолученияФайла("СохранитьКак", "РаботаСФайламиСлужебный.ДанныеФайлаУправлениеЭлектроннойПочтойАсинхронный"); + ПараметрыПолученияФайла.ПрисоединенныйФайл = ТекущиеДанные.Ссылка; + ПараметрыПолученияФайла.ФормаВладелец = ЭтотОбъект; + + РаботаСФайламиКлиент.СохранитьФайлКак(ПараметрыПолученияФайла); + КонецПроцедуры &НаКлиенте diff --git a/SSL/src/Documents/ЭлектронноеПисьмоВходящее/Forms/ФормаСписка/Module.bsl b/SSL/src/Documents/ЭлектронноеПисьмоВходящее/Forms/ФормаСписка/Module.bsl index 7a030032e..d4cff65ea 100644 --- a/SSL/src/Documents/ЭлектронноеПисьмоВходящее/Forms/ФормаСписка/Module.bsl +++ b/SSL/src/Documents/ЭлектронноеПисьмоВходящее/Forms/ФормаСписка/Module.bsl @@ -1,5 +1,5 @@ /////////////////////////////////////////////////////////////////////////////////////////////////////// -// Copyright (c) 2024, ООО 1С-Софт +// Copyright (c) 2025, ООО 1С-Софт // Все права защищены. Эта программа и сопроводительные материалы предоставляются // в соответствии с условиями лицензии Attribution 4.0 International (CC BY 4.0) // Текст лицензии доступен по ссылке: diff --git a/SSL/src/Documents/ЭлектронноеПисьмоВходящее/ManagerModule.bsl b/SSL/src/Documents/ЭлектронноеПисьмоВходящее/ManagerModule.bsl index 2b4fbc6e4..e6fca96c3 100644 --- a/SSL/src/Documents/ЭлектронноеПисьмоВходящее/ManagerModule.bsl +++ b/SSL/src/Documents/ЭлектронноеПисьмоВходящее/ManagerModule.bsl @@ -1,5 +1,5 @@ /////////////////////////////////////////////////////////////////////////////////////////////////////// -// Copyright (c) 2024, ООО 1С-Софт +// Copyright (c) 2025, ООО 1С-Софт // Все права защищены. Эта программа и сопроводительные материалы предоставляются // в соответствии с условиями лицензии Attribution 4.0 International (CC BY 4.0) // Текст лицензии доступен по ссылке: diff --git a/SSL/src/Documents/ЭлектронноеПисьмоВходящее/ObjectModule.bsl b/SSL/src/Documents/ЭлектронноеПисьмоВходящее/ObjectModule.bsl index 94f4a93a1..2f1ba30c8 100644 --- a/SSL/src/Documents/ЭлектронноеПисьмоВходящее/ObjectModule.bsl +++ b/SSL/src/Documents/ЭлектронноеПисьмоВходящее/ObjectModule.bsl @@ -1,5 +1,5 @@ /////////////////////////////////////////////////////////////////////////////////////////////////////// -// Copyright (c) 2024, ООО 1С-Софт +// Copyright (c) 2025, ООО 1С-Софт // Все права защищены. Эта программа и сопроводительные материалы предоставляются // в соответствии с условиями лицензии Attribution 4.0 International (CC BY 4.0) // Текст лицензии доступен по ссылке: diff --git a/SSL/src/Documents/ЭлектронноеПисьмоИсходящее/Forms/ФормаДокумента/Module.bsl b/SSL/src/Documents/ЭлектронноеПисьмоИсходящее/Forms/ФормаДокумента/Module.bsl index f7e89da5c..8989766fc 100644 --- a/SSL/src/Documents/ЭлектронноеПисьмоИсходящее/Forms/ФормаДокумента/Module.bsl +++ b/SSL/src/Documents/ЭлектронноеПисьмоИсходящее/Forms/ФормаДокумента/Module.bsl @@ -1,5 +1,5 @@ /////////////////////////////////////////////////////////////////////////////////////////////////////// -// Copyright (c) 2024, ООО 1С-Софт +// Copyright (c) 2025, ООО 1С-Софт // Все права защищены. Эта программа и сопроводительные материалы предоставляются // в соответствии с условиями лицензии Attribution 4.0 International (CC BY 4.0) // Текст лицензии доступен по ссылке: @@ -1525,9 +1525,12 @@ Если НЕ ЗначениеЗаполнено(ТекущиеДанные.Ссылка) Тогда Возврат; КонецЕсли; - - ДанныеФайла = РаботаСФайламиКлиент.ДанныеФайла(ТекущиеДанные.Ссылка, УникальныйИдентификатор); - РаботаСФайламиКлиент.СохранитьФайлКак(ДанныеФайла); + + ПараметрыПолученияФайла = РаботаСФайламиКлиент.ПараметрыАсинхронногоПолученияФайла("СохранитьКак", "РаботаСФайламиСлужебный.ДанныеФайлаУправлениеЭлектроннойПочтойАсинхронный"); + ПараметрыПолученияФайла.ПрисоединенныйФайл = ТекущиеДанные.Ссылка; + ПараметрыПолученияФайла.ФормаВладелец = ЭтотОбъект; + + РаботаСФайламиКлиент.СохранитьФайлКак(ПараметрыПолученияФайла); КонецПроцедуры @@ -2586,7 +2589,7 @@ КонецЕсли; ТекстОшибки = РаботаСПочтовымиСообщениями.РасширенноеПредставлениеОшибки( - ИнформацияОбОшибке, ОбщегоНазначения.КодОсновногоЯзыка()); + ИнформацияОбОшибке, ОбщегоНазначения.КодОсновногоЯзыка(), , ПисьмоОбъект.УчетнаяЗапись); ЗаписьЖурналаРегистрации(УправлениеЭлектроннойПочтой.СобытиеЖурналаРегистрации(), УровеньЖурналаРегистрации.Ошибка, , ПисьмоОбъект.Ссылка, ТекстОшибки); diff --git a/SSL/src/Documents/ЭлектронноеПисьмоИсходящее/Forms/ФормаСписка/Module.bsl b/SSL/src/Documents/ЭлектронноеПисьмоИсходящее/Forms/ФормаСписка/Module.bsl index ed1a5af8e..c42f953a6 100644 --- a/SSL/src/Documents/ЭлектронноеПисьмоИсходящее/Forms/ФормаСписка/Module.bsl +++ b/SSL/src/Documents/ЭлектронноеПисьмоИсходящее/Forms/ФормаСписка/Module.bsl @@ -1,5 +1,5 @@ /////////////////////////////////////////////////////////////////////////////////////////////////////// -// Copyright (c) 2024, ООО 1С-Софт +// Copyright (c) 2025, ООО 1С-Софт // Все права защищены. Эта программа и сопроводительные материалы предоставляются // в соответствии с условиями лицензии Attribution 4.0 International (CC BY 4.0) // Текст лицензии доступен по ссылке: diff --git a/SSL/src/Documents/ЭлектронноеПисьмоИсходящее/Forms/ФормированиеВнешнейСсылкиНаОбъект/Module.bsl b/SSL/src/Documents/ЭлектронноеПисьмоИсходящее/Forms/ФормированиеВнешнейСсылкиНаОбъект/Module.bsl index 6dc90e4a6..8b9229eb9 100644 --- a/SSL/src/Documents/ЭлектронноеПисьмоИсходящее/Forms/ФормированиеВнешнейСсылкиНаОбъект/Module.bsl +++ b/SSL/src/Documents/ЭлектронноеПисьмоИсходящее/Forms/ФормированиеВнешнейСсылкиНаОбъект/Module.bsl @@ -1,5 +1,5 @@ /////////////////////////////////////////////////////////////////////////////////////////////////////// -// Copyright (c) 2024, ООО 1С-Софт +// Copyright (c) 2025, ООО 1С-Софт // Все права защищены. Эта программа и сопроводительные материалы предоставляются // в соответствии с условиями лицензии Attribution 4.0 International (CC BY 4.0) // Текст лицензии доступен по ссылке: diff --git a/SSL/src/Documents/ЭлектронноеПисьмоИсходящее/ManagerModule.bsl b/SSL/src/Documents/ЭлектронноеПисьмоИсходящее/ManagerModule.bsl index 336abece0..711ecf363 100644 --- a/SSL/src/Documents/ЭлектронноеПисьмоИсходящее/ManagerModule.bsl +++ b/SSL/src/Documents/ЭлектронноеПисьмоИсходящее/ManagerModule.bsl @@ -1,5 +1,5 @@ /////////////////////////////////////////////////////////////////////////////////////////////////////// -// Copyright (c) 2024, ООО 1С-Софт +// Copyright (c) 2025, ООО 1С-Софт // Все права защищены. Эта программа и сопроводительные материалы предоставляются // в соответствии с условиями лицензии Attribution 4.0 International (CC BY 4.0) // Текст лицензии доступен по ссылке: diff --git a/SSL/src/Documents/ЭлектронноеПисьмоИсходящее/ObjectModule.bsl b/SSL/src/Documents/ЭлектронноеПисьмоИсходящее/ObjectModule.bsl index 7e7699acf..ec0a375e2 100644 --- a/SSL/src/Documents/ЭлектронноеПисьмоИсходящее/ObjectModule.bsl +++ b/SSL/src/Documents/ЭлектронноеПисьмоИсходящее/ObjectModule.bsl @@ -1,5 +1,5 @@ /////////////////////////////////////////////////////////////////////////////////////////////////////// -// Copyright (c) 2024, ООО 1С-Софт +// Copyright (c) 2025, ООО 1С-Софт // Все права защищены. Эта программа и сопроводительные материалы предоставляются // в соответствии с условиями лицензии Attribution 4.0 International (CC BY 4.0) // Текст лицензии доступен по ссылке: diff --git a/SSL/src/Enums/ВидыМобильныхПодписей/ВидыМобильныхПодписей.mdo b/SSL/src/Enums/ВидыМобильныхПодписей/ВидыМобильныхПодписей.mdo new file mode 100644 index 000000000..275c17cab --- /dev/null +++ b/SSL/src/Enums/ВидыМобильныхПодписей/ВидыМобильныхПодписей.mdo @@ -0,0 +1,52 @@ + + + + + + + + ВидыМобильныхПодписей + + ru + Виды мобильных подписей + + + Use + Order + + Use + + + + + Use + Ref + + Use + + + + true + BothWays + + ГосключУНЭП + + ru + Госключ УНЭП + + + + ГосключУКЭП + + ru + Госключ УКЭП + + + + МояПодпись + + ru + Моя подпись (ФНС) + + + diff --git a/SSL/src/Enums/ВидыПодписантовМобильногоСервиса/ВидыПодписантовМобильногоСервиса.mdo b/SSL/src/Enums/ВидыПодписантовМобильногоСервиса/ВидыПодписантовМобильногоСервиса.mdo new file mode 100644 index 000000000..478a775a2 --- /dev/null +++ b/SSL/src/Enums/ВидыПодписантовМобильногоСервиса/ВидыПодписантовМобильногоСервиса.mdo @@ -0,0 +1,52 @@ + + + + + + + + ВидыПодписантовМобильногоСервиса + + ru + Виды подписантов мобильного сервиса + + + Use + Order + + Use + + + + + Use + Ref + + Use + + + + true + BothWays + + РуководительЮЛ + + ru + Руководитель ЮЛ + + + + ИндивидуальныйПредприниматель + + ru + Индивидуальный предприниматель + + + + ФизическоеЛицо + + ru + Физическое лицо + + + diff --git a/SSL/src/Enums/ВидыРезервныхКопийВстроенногоХранилищаДвоичныхДанных/ВидыРезервныхКопийВстроенногоХранилищаДвоичныхДанных.mdo b/SSL/src/Enums/ВидыРезервныхКопийВстроенногоХранилищаДвоичныхДанных/ВидыРезервныхКопийВстроенногоХранилищаДвоичныхДанных.mdo new file mode 100644 index 000000000..a9dcfed57 --- /dev/null +++ b/SSL/src/Enums/ВидыРезервныхКопийВстроенногоХранилищаДвоичныхДанных/ВидыРезервныхКопийВстроенногоХранилищаДвоичныхДанных.mdo @@ -0,0 +1,45 @@ + + + + + + + + ВидыРезервныхКопийВстроенногоХранилищаДвоичныхДанных + + ru + Виды резервных копий встроенного хранилища двоичных данных + + + Use + Order + + Use + + + + + Use + Ref + + Use + + + + true + BothWays + + Полная + + ru + Полная + + + + Дифференциальная + + ru + Дифференциальная + + + diff --git a/SSL/src/Enums/ВидыХраненияФайлов/ВидыХраненияФайлов.mdo b/SSL/src/Enums/ВидыХраненияФайлов/ВидыХраненияФайлов.mdo new file mode 100644 index 000000000..84b45bc9e --- /dev/null +++ b/SSL/src/Enums/ВидыХраненияФайлов/ВидыХраненияФайлов.mdo @@ -0,0 +1,45 @@ + + + + + + + + ВидыХраненияФайлов + + ru + Виды хранения файлов + + + Use + Order + + Use + + + + + Use + Ref + + Use + + + + true + BothWays + + ОперационноеХранение + + ru + Операционное хранение + + + + АрхивноеХранение + + ru + Архивное хранение + + + diff --git a/SSL/src/Enums/ДействияВНастройкахРаботыСФайловымАрхивом/ДействияВНастройкахРаботыСФайловымАрхивом.mdo b/SSL/src/Enums/ДействияВНастройкахРаботыСФайловымАрхивом/ДействияВНастройкахРаботыСФайловымАрхивом.mdo new file mode 100644 index 000000000..534c163c9 --- /dev/null +++ b/SSL/src/Enums/ДействияВНастройкахРаботыСФайловымАрхивом/ДействияВНастройкахРаботыСФайловымАрхивом.mdo @@ -0,0 +1,45 @@ + + + + + + + + ДействияВНастройкахРаботыСФайловымАрхивом + + ru + Действия в настройках работы с файловым архивом + + + Use + Order + + Use + + + + + Use + Ref + + Use + + + + true + BothWays + + ПереноситьВАрхив + + ru + Переносить в архив + + + + НеПереноситьВАрхив + + ru + Не переносить в архив + + + diff --git a/SSL/src/Enums/СпособыХраненияФайлов/СпособыХраненияФайлов.mdo b/SSL/src/Enums/СпособыХраненияФайлов/СпособыХраненияФайлов.mdo new file mode 100644 index 000000000..fc30640b1 --- /dev/null +++ b/SSL/src/Enums/СпособыХраненияФайлов/СпособыХраненияФайлов.mdo @@ -0,0 +1,52 @@ + + + + + + + + СпособыХраненияФайлов + + ru + Способы хранения файлов + + + Use + Order + + Use + + + + + Use + Ref + + Use + + + + true + BothWays + + ВСетевыхКаталогах + + ru + В сетевых каталогах + + + + ВоВстроенномХранилище + + ru + Во встроенном хранилище + + + + ВоВнешнемХранилищеПоПротоколуS3 + + ru + Во внешнем хранилище (по протоколу S3) + + + diff --git a/SSL/src/Enums/ТипыПодписиКриптографии/ManagerModule.bsl b/SSL/src/Enums/ТипыПодписиКриптографии/ManagerModule.bsl index 562feb0b7..9687d8f9d 100644 --- a/SSL/src/Enums/ТипыПодписиКриптографии/ManagerModule.bsl +++ b/SSL/src/Enums/ТипыПодписиКриптографии/ManagerModule.bsl @@ -1,5 +1,5 @@ /////////////////////////////////////////////////////////////////////////////////////////////////////// -// Copyright (c) 2024, ООО 1С-Софт +// Copyright (c) 2025, ООО 1С-Софт // Все права защищены. Эта программа и сопроводительные материалы предоставляются // в соответствии с условиями лицензии Attribution 4.0 International (CC BY 4.0) // Текст лицензии доступен по ссылке: diff --git a/SSL/src/Enums/ТипыХраненияФайлов/ТипыХраненияФайлов.mdo b/SSL/src/Enums/ТипыХраненияФайлов/ТипыХраненияФайлов.mdo index 029764be9..aa88bc7e5 100644 --- a/SSL/src/Enums/ТипыХраненияФайлов/ТипыХраненияФайлов.mdo +++ b/SSL/src/Enums/ТипыХраненияФайлов/ТипыХраненияФайлов.mdo @@ -42,4 +42,25 @@ В томах + + ВоВстроенномХранилищеДвоичныхДанных + + ru + Во встроенном хранилище двоичных данных + + + + ВоВнешнемХранилищеДвоичныхДанных + + ru + Во внешнем хранилище двоичных данных + + + + ВТомахТомНеОпределен + + ru + В томах (том не определен) + + diff --git a/SSL/src/EventSubscriptions/КонтрольНеразделенныхНаборовЗаписейПриЗаписи/КонтрольНеразделенныхНаборовЗаписейПриЗаписи.mdo b/SSL/src/EventSubscriptions/КонтрольНеразделенныхНаборовЗаписейПриЗаписи/КонтрольНеразделенныхНаборовЗаписейПриЗаписи.mdo index 4f2ddc430..dfd09535e 100644 --- a/SSL/src/EventSubscriptions/КонтрольНеразделенныхНаборовЗаписейПриЗаписи/КонтрольНеразделенныхНаборовЗаписейПриЗаписи.mdo +++ b/SSL/src/EventSubscriptions/КонтрольНеразделенныхНаборовЗаписейПриЗаписи/КонтрольНеразделенныхНаборовЗаписейПриЗаписи.mdo @@ -7,6 +7,7 @@ InformationRegisterRecordSet.ДанныеПроизводственногоКалендаря + InformationRegisterRecordSet.ИсторияРезервногоКопированияВстроенногоХранилищаДвоичныхДанных InformationRegisterRecordSet.ПравилаДляОбменаДанными InformationRegisterRecordSet.ЗапросыРазрешенийНаИспользованиеВнешнихРесурсов InformationRegisterRecordSet.РазрешенияНаИспользованиеВнешнихРесурсов @@ -14,6 +15,7 @@ InformationRegisterRecordSet.УровниСокращенийАдресныхСведений InformationRegisterRecordSet.ВерсииПодсистем InformationRegisterRecordSet.ПричиныИзмененияАдресныхСведений + InformationRegisterRecordSet.КвартирыОфисыПомещения InformationRegisterRecordSet.ИсторияМуниципальнойИерархии InformationRegisterRecordSet.СообщенияОбменаДанными InformationRegisterRecordSet.УдалитьЗамерыВремени3 diff --git a/SSL/src/EventSubscriptions/КонтрольНеразделенныхОбъектовПриЗаписи/КонтрольНеразделенныхОбъектовПриЗаписи.mdo b/SSL/src/EventSubscriptions/КонтрольНеразделенныхОбъектовПриЗаписи/КонтрольНеразделенныхОбъектовПриЗаписи.mdo index 949ac5c3c..80032745c 100644 --- a/SSL/src/EventSubscriptions/КонтрольНеразделенныхОбъектовПриЗаписи/КонтрольНеразделенныхОбъектовПриЗаписи.mdo +++ b/SSL/src/EventSubscriptions/КонтрольНеразделенныхОбъектовПриЗаписи/КонтрольНеразделенныхОбъектовПриЗаписи.mdo @@ -13,6 +13,8 @@ ConstantValueManager.ИспользоватьСинхронизациюДанныхВМоделиСервиса ConstantValueManager.НеИспользоватьРазделениеПоОбластямДанных ConstantValueManager.СинхронизироватьДанныеСПриложениемВИнтернетеПриНачалеРаботыПрограммы + ConstantValueManager.КаталогРезервныхКопийВстроенногоХранилищаДвоичныхДанныхДляWindows + ConstantValueManager.РазмерПорцииПеремещаемыхФайлов ConstantValueManager.СписокЗапрещенныхРасширений ConstantValueManager.ИспользованиеКаталогаДополнительныхОтчетовИОбработокВМоделиСервиса ConstantValueManager.КоличествоПотоковОбновленияДоступа @@ -36,9 +38,11 @@ ConstantValueManager.ИзвлекатьТекстыФайловНаСервере ConstantValueManager.ПрофильБезопасностиИнформационнойБазы ConstantValueManager.ПовторитьЗагрузкуСообщенияОбменаДаннымиПередЗапуском + ConstantValueManager.ИспользоватьФайловыйАрхив ConstantValueManager.УдалитьЛогинДоступаКСервисуMorpher ConstantValueManager.СтандартныеПодсистемыВАвтономномРежиме ConstantValueManager.ПутьКТомуБезУчетаРегиональныхНастроек + ConstantValueManager.ТекстИнформированияПользователяОНедоступностиФайлаВАрхиве ConstantValueManager.РазрешитьВыполнениеДООРегламентнымиЗаданиямиВМоделиСервиса ConstantValueManager.ДанныеДляИзмененияМультиязычныхРеквизитов ConstantValueManager.КаталогВременныхФайловДляWindows @@ -69,6 +73,7 @@ ConstantValueManager.ОценкаПроизводительностиПериодЗаписи ConstantValueManager.ИспользоватьОптимизированнуюЗаписьСозданияАвтономногоРабочегоМеста ConstantValueManager.СписокРасширенийФайловOpenDocument + ConstantValueManager.КаталогРезервныхКопийВстроенногоХранилищаДвоичныхДанныхДляLinux ConstantValueManager.МинимальныйИнтервалРегламентныхЗаданийДОИОВМоделиСервиса ConstantValueManager.ИспользоватьРазделениеПоОбластямДанных ConstantValueManager.ИспользоватьСинхронизациюДанныхВМоделиСервисаСЛокальнойПрограммой @@ -86,6 +91,7 @@ ConstantValueManager.ПорядокОбрабатываемыхДанных ConstantValueManager.КаталогВременныхФайловДляLinux ConstantValueManager.ЗагрузитьРасширенияИзменяющиеСтруктуруДанных + CatalogObject.ОбщиеНастройкиАвторизацииИнтернетСервисов ConstantValueManager.КоличествоЭлементовВТранзакцииЗагрузкиДанных ConstantValueManager.ВыполнятьЗамерыПроизводительности ConstantValueManager.ЗагрузитьСообщениеОбменаДанными diff --git a/SSL/src/ExchangePlans/ОбновлениеИнформационнойБазы/ManagerModule.bsl b/SSL/src/ExchangePlans/ОбновлениеИнформационнойБазы/ManagerModule.bsl index 2859e15c3..492e73e01 100644 --- a/SSL/src/ExchangePlans/ОбновлениеИнформационнойБазы/ManagerModule.bsl +++ b/SSL/src/ExchangePlans/ОбновлениеИнформационнойБазы/ManagerModule.bsl @@ -1,5 +1,5 @@ /////////////////////////////////////////////////////////////////////////////////////////////////////// -// Copyright (c) 2024, ООО 1С-Софт +// Copyright (c) 2025, ООО 1С-Софт // Все права защищены. Эта программа и сопроводительные материалы предоставляются // в соответствии с условиями лицензии Attribution 4.0 International (CC BY 4.0) // Текст лицензии доступен по ссылке: diff --git a/SSL/src/ExchangePlans/ОбновлениеИнформационнойБазы/ОбновлениеИнформационнойБазы.mdo b/SSL/src/ExchangePlans/ОбновлениеИнформационнойБазы/ОбновлениеИнформационнойБазы.mdo index 8e86bf6a5..a3b8b8f27 100644 --- a/SSL/src/ExchangePlans/ОбновлениеИнформационнойБазы/ОбновлениеИнформационнойБазы.mdo +++ b/SSL/src/ExchangePlans/ОбновлениеИнформационнойБазы/ОбновлениеИнформационнойБазы.mdo @@ -109,6 +109,9 @@ Catalog.ЭкземплярыСервераDSS + + InformationRegister.МестаХраненияДвоичныхДанных + Catalog.ШаблоныАнкет @@ -343,12 +346,21 @@ InformationRegister.ИспользованиеПоставляемыхДополнительныхОтчетовИОбработокВОбластяхДанных + + Catalog.НастройкиОтправкиВГосключ + InformationRegister.РазрешенияНаИспользованиеВнешнихРесурсов InformationRegister.НастройкиСинхронизацииФайлов + + InformationRegister.ИсторияРезервногоКопированияВстроенногоХранилищаДвоичныхДанных + + + InformationRegister.НастройкиРаботыСФайловымАрхивом + InformationRegister.ПрогрессОбновления @@ -670,6 +682,9 @@ Constant.ИспользоватьДатуИВремяВСрокахЗадач + + Constant.ИспользоватьГосключ + InformationRegister.СклоненияПредставленийОбъектов @@ -973,12 +988,18 @@ Catalog.ГруппыИсполнителейЗадач + + InformationRegister.КвартирыОфисыПомещения + Catalog.НастройкиТранспортаСообщенийОбмена Catalog.ЗначенияСвойствОбъектов + + Catalog.ОбщиеНастройкиАвторизацииИнтернетСервисов + InformationRegister.ДатыПоследнейЗагрузкиПочтовыхСообщений @@ -1258,6 +1279,9 @@ InformationRegister.КонтактыВзаимодействий + + InformationRegister.СведенияОХраненииДедуплицированныхФайлов + InformationRegister.РабочиеКаталогиФайлов diff --git a/SSL/src/FunctionalOptions/ИспользоватьГосключ/ИспользоватьГосключ.mdo b/SSL/src/FunctionalOptions/ИспользоватьГосключ/ИспользоватьГосключ.mdo new file mode 100644 index 000000000..45952c017 --- /dev/null +++ b/SSL/src/FunctionalOptions/ИспользоватьГосключ/ИспользоватьГосключ.mdo @@ -0,0 +1,10 @@ + + + ИспользоватьГосключ + + ru + Использовать госключ + + Constant.ИспользоватьГосключ + true + diff --git a/SSL/src/FunctionalOptions/ИспользоватьФайловыйАрхив/ИспользоватьФайловыйАрхив.mdo b/SSL/src/FunctionalOptions/ИспользоватьФайловыйАрхив/ИспользоватьФайловыйАрхив.mdo new file mode 100644 index 000000000..1190cfbf1 --- /dev/null +++ b/SSL/src/FunctionalOptions/ИспользоватьФайловыйАрхив/ИспользоватьФайловыйАрхив.mdo @@ -0,0 +1,10 @@ + + + ИспользоватьФайловыйАрхив + + ru + Использовать файловый архив + + Constant.ИспользоватьФайловыйАрхив + true + diff --git a/SSL/src/FunctionalOptions/ХранитьФайлыВТомахНаДиске/ХранитьФайлыВТомахНаДиске.mdo b/SSL/src/FunctionalOptions/ХранитьФайлыВТомахНаДиске/ХранитьФайлыВТомахНаДиске.mdo index 530f70d7c..b0c2c7978 100644 --- a/SSL/src/FunctionalOptions/ХранитьФайлыВТомахНаДиске/ХранитьФайлыВТомахНаДиске.mdo +++ b/SSL/src/FunctionalOptions/ХранитьФайлыВТомахНаДиске/ХранитьФайлыВТомахНаДиске.mdo @@ -7,6 +7,5 @@ Constant.ХранитьФайлыВТомахНаДиске true - Catalog.ТомаХраненияФайлов Report.ПроверкаЦелостностиТома diff --git a/SSL/src/HTTPServices/exchange_dsl_1_0_0_1/Module.bsl b/SSL/src/HTTPServices/exchange_dsl_1_0_0_1/Module.bsl index 4531901c3..2d19b68aa 100644 --- a/SSL/src/HTTPServices/exchange_dsl_1_0_0_1/Module.bsl +++ b/SSL/src/HTTPServices/exchange_dsl_1_0_0_1/Module.bsl @@ -1,5 +1,5 @@ /////////////////////////////////////////////////////////////////////////////////////////////////////// -// Copyright (c) 2024, ООО 1С-Софт +// Copyright (c) 2025, ООО 1С-Софт // Все права защищены. Эта программа и сопроводительные материалы предоставляются // в соответствии с условиями лицензии Attribution 4.0 International (CC BY 4.0) // Текст лицензии доступен по ссылке: diff --git a/SSL/src/HTTPServices/ОткрытаяАвторизацияПочтовогоСервиса/Module.bsl b/SSL/src/HTTPServices/ОткрытаяАвторизацияПочтовогоСервиса/Module.bsl new file mode 100644 index 000000000..360b93487 --- /dev/null +++ b/SSL/src/HTTPServices/ОткрытаяАвторизацияПочтовогоСервиса/Module.bsl @@ -0,0 +1,314 @@ +/////////////////////////////////////////////////////////////////////////////////////////////////////// +// Copyright (c) 2025, ООО 1С-Софт +// Все права защищены. Эта программа и сопроводительные материалы предоставляются +// в соответствии с условиями лицензии Attribution 4.0 International (CC BY 4.0) +// Текст лицензии доступен по ссылке: +// https://creativecommons.org/licenses/by/4.0/legalcode +/////////////////////////////////////////////////////////////////////////////////////////////////////// + +#Область ОбработчикиСобытий + +Функция ОтправитьКодАвторизации(Запрос) + + Попытка + + ПараметрыЗапроса = ПараметрыЗапроса(Запрос); + ОтправитьСерверноеОповещение(ПараметрыЗапроса); + + КодОтвета = КодыОтветов().Успех; + ТекстОтвета = ТекстУспешногоОтвета(); + + Исключение + + ИнформацияОбОшибке = ИнформацияОбОшибке(); + + Если ИнформацияОбОшибке.Код = "НеизвестныйЗапрос" Тогда + КодОтвета = КодыОтветов().НеизвестныйЗапрос; + Иначе + КодОтвета = КодыОтветов().ВнутренняяОшибка; + КонецЕсли; + + ТекстОтвета = ОбработкаОшибок.ПодробноеПредставлениеОшибки(ИнформацияОбОшибке); + + ИмяСобытия = ИмяСобытия() + "." + НСтр("ru = 'Исключение при отправке кода авторизации'", КодОсновногоЯзыка()); + ЗаписьЖурналаРегистрации(ИмяСобытия, УровеньЖурналаРегистрации.Ошибка, , , ТекстОтвета); + + КонецПопытки; + + Ответ = Новый HTTPСервисОтвет(КодОтвета); + Ответ.Заголовки.Вставить("Content-Type", "text/html; charset=utf-8"); + Ответ.УстановитьТелоИзСтроки(ТекстОтвета); + + Возврат Ответ; + +КонецФункции + +Функция ПроверитьДоступностьСервиса(Запрос) + + КодОтвета = КодыОтветов().Успех; + + Ответ = Новый HTTPСервисОтвет(КодОтвета); + Ответ.Заголовки.Вставить("Content-Type", "text/html; charset=utf-8"); + Ответ.УстановитьТелоИзСтроки("soccess"); + + Возврат Ответ; + +КонецФункции + +#КонецОбласти + +#Область СлужебныеПроцедурыИФункции + +Функция ПараметрыЗапроса(Запрос) + + ВходящиеПараметрыЗапроса = Запрос.ПараметрыЗапроса; + + ОбработанныеПараметрыЗапроса = Новый Структура; + ОбработанныеПараметрыЗапроса.Вставить("КодАвторизации"); + ОбработанныеПараметрыЗапроса.Вставить("НомерСеанса"); + ОбработанныеПараметрыЗапроса.Вставить("НомерОбласти"); + ОбработанныеПараметрыЗапроса.Вставить("ИдентификаторЗапроса"); + ОбработанныеПараметрыЗапроса.Вставить("ИдентификаторПользователя"); + + ЗаполнитьКодАвторизации(ВходящиеПараметрыЗапроса, ОбработанныеПараметрыЗапроса); + ЗаполнитьНомерСеанса(ВходящиеПараметрыЗапроса, ОбработанныеПараметрыЗапроса); + ЗаполнитьНомерОбласти(ВходящиеПараметрыЗапроса, ОбработанныеПараметрыЗапроса); + ЗаполнитьИдентификаторЗапроса(ВходящиеПараметрыЗапроса, ОбработанныеПараметрыЗапроса); + ЗаполнитьИдентификаторПользователя(ВходящиеПараметрыЗапроса, ОбработанныеПараметрыЗапроса); + + Возврат ОбработанныеПараметрыЗапроса; + +КонецФункции + +Процедура ЗаполнитьКодАвторизации(Источник, Приемник) + + КодАвторизации = Источник.Получить("code"); + + Если КодАвторизации = Неопределено Тогда + ТекстОтвета = НСтр("ru = 'Не заполнен обязательный параметр запроса ""code""'", КодОсновногоЯзыка()); + ВызватьИсключение(ТекстОтвета, , "НеизвестныйЗапрос"); + КонецЕсли; + + Приемник.КодАвторизации = КодАвторизации; + +КонецПроцедуры + +Процедура ЗаполнитьНомерСеанса(Источник, Приемник) + + НомерСеанса = Источник.Получить("session"); + + Если НомерСеанса = Неопределено Тогда + ТекстОтвета = НСтр("ru = 'Не заполнен обязательный параметр запроса ""session""'", КодОсновногоЯзыка()); + ВызватьИсключение(ТекстОтвета, , "НеизвестныйЗапрос"); + КонецЕсли; + + Попытка + НомерСеанса = Число(НомерСеанса); + Исключение + ТекстОтвета = НСтр("ru = 'Параметра запроса ""session"" не является числом'", КодОсновногоЯзыка()); + ВызватьИсключение(ТекстОтвета, , "НеизвестныйЗапрос"); + КонецПопытки; + + Приемник.НомерСеанса = НомерСеанса; + +КонецПроцедуры + +Процедура ЗаполнитьНомерОбласти(Источник, Приемник) + + НомерОбласти = Источник.Получить("zone"); + + Если НомерОбласти = Неопределено Тогда + ТекстОтвета = НСтр("ru = 'Не заполнен обязательный параметр запроса ""zone""'", КодОсновногоЯзыка()); + ВызватьИсключение(ТекстОтвета, , "НеизвестныйЗапрос"); + КонецЕсли; + + Попытка + НомерОбласти = Число(НомерОбласти); + Исключение + ТекстОтвета = НСтр("ru = 'Параметра запроса ""zone"" не является числом'", КодОсновногоЯзыка()); + ВызватьИсключение(ТекстОтвета, , "НеизвестныйЗапрос"); + КонецПопытки; + + Приемник.НомерОбласти = НомерОбласти; + +КонецПроцедуры + +Процедура ЗаполнитьИдентификаторЗапроса(Источник, Приемник) + + ИдентификаторЗапроса = Источник.Получить("request_id"); + + Если ИдентификаторЗапроса = Неопределено Тогда + ТекстОтвета = НСтр("ru = 'Не заполнен обязательный параметр запроса ""request_id""'", КодОсновногоЯзыка()); + ВызватьИсключение(ТекстОтвета, , "НеизвестныйЗапрос"); + КонецЕсли; + + Попытка + ИдентификаторЗапроса = Новый УникальныйИдентификатор(ИдентификаторЗапроса); + Исключение + ТекстОтвета = НСтр("ru = 'Параметра запроса ""request_id"" не является уникальным идентификатором'", КодОсновногоЯзыка()); + ВызватьИсключение(ТекстОтвета, , "НеизвестныйЗапрос"); + КонецПопытки; + + Приемник.ИдентификаторЗапроса = ИдентификаторЗапроса; + +КонецПроцедуры + +Процедура ЗаполнитьИдентификаторПользователя(Источник, Приемник) + + ИдентификаторПользователя = Источник.Получить("user_id"); + + Если ИдентификаторПользователя = Неопределено Тогда + ТекстОтвета = НСтр("ru = 'Не заполнен обязательный параметр запроса ""user_id""'", КодОсновногоЯзыка()); + ВызватьИсключение(ТекстОтвета, , "НеизвестныйЗапрос"); + КонецЕсли; + + Попытка + ИдентификаторПользователя = Новый УникальныйИдентификатор(ИдентификаторПользователя); + Исключение + ТекстОтвета = НСтр("ru = 'Параметра запроса ""user_id"" не является уникальным идентификатором'", КодОсновногоЯзыка()); + ВызватьИсключение(ТекстОтвета, , "НеизвестныйЗапрос"); + КонецПопытки; + + Приемник.ИдентификаторПользователя = ИдентификаторПользователя; + +КонецПроцедуры + +Процедура ОтправитьСерверноеОповещение(ПараметрыЗапроса) + + Контекст = Новый Структура; + Контекст.Вставить("КодАвторизации", ПараметрыЗапроса.КодАвторизации); + Контекст.Вставить("ИдентификаторЗапроса", ПараметрыЗапроса.ИдентификаторЗапроса); + + ПараметрыСерверногоОповещения = Новый Структура; + ПараметрыСерверногоОповещения.Вставить("ИмяСобытия", "ОткрытаяАвторизацияПочтовогоСервиса"); + ПараметрыСерверногоОповещения.Вставить("Контекст", Контекст); + + ИмяСерверногоОповещения = РаботаСПочтовымиСообщениямиСлужебныйКлиентСервер.ИмяСерверногоОповещения(); + АдресатыСерверногоОповещения = АдресатыСерверногоОповещения(ПараметрыЗапроса); + + СерверныеОповещения.ОтправитьСерверноеОповещение( + ИмяСерверногоОповещения, + ПараметрыСерверногоОповещения, + АдресатыСерверногоОповещения, + Истина); + +КонецПроцедуры + +Функция АдресатыСерверногоОповещения(ПараметрыЗапроса) + + АдресатыСерверногоОповещения = Новый Соответствие; + + АктивныеСеансы = ПолучитьСеансыИнформационнойБазы(); + НеобходимыйСеанс = Неопределено; + + Для Каждого АктивныйСеанс Из АктивныеСеансы Цикл + Если АктивныйСеанс.НомерСеанса = ПараметрыЗапроса.НомерСеанса Тогда + НеобходимыйСеанс = АктивныйСеанс; + Прервать; + КонецЕсли; + КонецЦикла; + + КлючСеанса = ОбщегоНазначенияКлиентСервер.ЗначениеВМассиве(СерверныеОповещения.КлючСеанса(НеобходимыйСеанс)); + АдресатыСерверногоОповещения.Вставить(ПараметрыЗапроса.ИдентификаторПользователя, КлючСеанса); + + Возврат АдресатыСерверногоОповещения; + +КонецФункции + +Функция ТекстУспешногоОтвета() + + ТекстУспешногоОтвета = " + | + | + | + | Авторизация завершена + | + | + | + |
                      + |
                      Авторизация завершена
                      + |

                      Эту вкладку можно закрыть

                      + |
                      + | + | + |"; + + Возврат ТекстУспешногоОтвета; + +КонецФункции + +Функция КотDataURL() + + Картинка = БиблиотекаКартинок.КотОткрытаяАвторизацияПочтовогоСервиса; + ДвоичныеДанные = Картинка.ПолучитьДвоичныеДанные(); + + СтрокаBase64 = Base64Строка(ДвоичныеДанные); + СтрокаBase64 = СтрЗаменить(СтрокаBase64, Символы.ВК, ""); + СтрокаBase64 = СтрЗаменить(СтрокаBase64, Символы.ПС, ""); + + КотDataURL = "data:image/svg+xml;base64," + СтрокаBase64; + + Возврат КотDataURL; + +КонецФункции + +Функция КодыОтветов() + + КодыОтветов = Новый Структура; + КодыОтветов.Вставить("Успех", 200); + КодыОтветов.Вставить("НеизвестныйЗапрос", 400); + КодыОтветов.Вставить("ВнутренняяОшибка", 500); + + Возврат КодыОтветов; + +КонецФункции + +Функция КодОсновногоЯзыка() + + Возврат ОбщегоНазначения.КодОсновногоЯзыка(); + +КонецФункции + +Функция ИмяСобытия() + + Возврат НСтр("ru = 'Открытая авторизация почтового сервиса'", КодОсновногоЯзыка()); + +КонецФункции + +#КонецОбласти diff --git a/SSL/src/HTTPServices/ОткрытаяАвторизацияПочтовогоСервиса/ОткрытаяАвторизацияПочтовогоСервиса.mdo b/SSL/src/HTTPServices/ОткрытаяАвторизацияПочтовогоСервиса/ОткрытаяАвторизацияПочтовогоСервиса.mdo new file mode 100644 index 000000000..da6cd8167 --- /dev/null +++ b/SSL/src/HTTPServices/ОткрытаяАвторизацияПочтовогоСервиса/ОткрытаяАвторизацияПочтовогоСервиса.mdo @@ -0,0 +1,43 @@ + + + ОткрытаяАвторизацияПочтовогоСервиса + + ru + Открытая авторизация почтового сервиса + + oauth2_mail + AutoUse + 20 + + ОтправитьКодАвторизации + + ru + Отправить код авторизации + + + + GET + + ru + GET + + ОтправитьКодАвторизации + + + + ПроверитьДоступностьСервиса + + ru + Проверить доступность сервиса + + + + GET + + ru + GET + + ПроверитьДоступностьСервиса + + + diff --git a/SSL/src/InformationRegisters/АдресныеОбъекты/Commands/ЗагрузитьАдресныйКлассификатор/CommandModule.bsl b/SSL/src/InformationRegisters/АдресныеОбъекты/Commands/ЗагрузитьАдресныйКлассификатор/CommandModule.bsl index b5bd033cb..871c5e07e 100644 --- a/SSL/src/InformationRegisters/АдресныеОбъекты/Commands/ЗагрузитьАдресныйКлассификатор/CommandModule.bsl +++ b/SSL/src/InformationRegisters/АдресныеОбъекты/Commands/ЗагрузитьАдресныйКлассификатор/CommandModule.bsl @@ -1,5 +1,5 @@ /////////////////////////////////////////////////////////////////////////////////////////////////////// -// Copyright (c) 2024, ООО 1С-Софт +// Copyright (c) 2025, ООО 1С-Софт // Все права защищены. Эта программа и сопроводительные материалы предоставляются // в соответствии с условиями лицензии Attribution 4.0 International (CC BY 4.0) // Текст лицензии доступен по ссылке: diff --git a/SSL/src/InformationRegisters/АдресныеОбъекты/Commands/ОчиститьАдресныйКлассификатор/CommandModule.bsl b/SSL/src/InformationRegisters/АдресныеОбъекты/Commands/ОчиститьАдресныйКлассификатор/CommandModule.bsl index c12277ad3..8a49cc1ab 100644 --- a/SSL/src/InformationRegisters/АдресныеОбъекты/Commands/ОчиститьАдресныйКлассификатор/CommandModule.bsl +++ b/SSL/src/InformationRegisters/АдресныеОбъекты/Commands/ОчиститьАдресныйКлассификатор/CommandModule.bsl @@ -1,5 +1,5 @@ /////////////////////////////////////////////////////////////////////////////////////////////////////// -// Copyright (c) 2024, ООО 1С-Софт +// Copyright (c) 2025, ООО 1С-Софт // Все права защищены. Эта программа и сопроводительные материалы предоставляются // в соответствии с условиями лицензии Attribution 4.0 International (CC BY 4.0) // Текст лицензии доступен по ссылке: diff --git a/SSL/src/InformationRegisters/АдресныеОбъекты/Commands/ПодключитьИнтернетПоддержку/CommandModule.bsl b/SSL/src/InformationRegisters/АдресныеОбъекты/Commands/ПодключитьИнтернетПоддержку/CommandModule.bsl index 0f8ed5cab..a67894d5e 100644 --- a/SSL/src/InformationRegisters/АдресныеОбъекты/Commands/ПодключитьИнтернетПоддержку/CommandModule.bsl +++ b/SSL/src/InformationRegisters/АдресныеОбъекты/Commands/ПодключитьИнтернетПоддержку/CommandModule.bsl @@ -1,5 +1,5 @@ /////////////////////////////////////////////////////////////////////////////////////////////////////// -// Copyright (c) 2024, ООО 1С-Софт +// Copyright (c) 2025, ООО 1С-Софт // Все права защищены. Эта программа и сопроводительные материалы предоставляются // в соответствии с условиями лицензии Attribution 4.0 International (CC BY 4.0) // Текст лицензии доступен по ссылке: diff --git a/SSL/src/InformationRegisters/АдресныеОбъекты/Forms/АктуализацияУстаревшегоКлассификатора/Module.bsl b/SSL/src/InformationRegisters/АдресныеОбъекты/Forms/АктуализацияУстаревшегоКлассификатора/Module.bsl index d5deedaba..583bb243c 100644 --- a/SSL/src/InformationRegisters/АдресныеОбъекты/Forms/АктуализацияУстаревшегоКлассификатора/Module.bsl +++ b/SSL/src/InformationRegisters/АдресныеОбъекты/Forms/АктуализацияУстаревшегоКлассификатора/Module.bsl @@ -1,5 +1,5 @@ /////////////////////////////////////////////////////////////////////////////////////////////////////// -// Copyright (c) 2024, ООО 1С-Софт +// Copyright (c) 2025, ООО 1С-Софт // Все права защищены. Эта программа и сопроводительные материалы предоставляются // в соответствии с условиями лицензии Attribution 4.0 International (CC BY 4.0) // Текст лицензии доступен по ссылке: diff --git a/SSL/src/InformationRegisters/АдресныеОбъекты/Forms/ЗагрузкаАдресногоКлассификатора/Form.form b/SSL/src/InformationRegisters/АдресныеОбъекты/Forms/ЗагрузкаАдресногоКлассификатора/Form.form index 13ef3b40b..510b105e0 100644 --- a/SSL/src/InformationRegisters/АдресныеОбъекты/Forms/ЗагрузкаАдресногоКлассификатора/Form.form +++ b/SSL/src/InformationRegisters/АдресныеОбъекты/Forms/ЗагрузкаАдресногоКлассификатора/Form.form @@ -470,30 +470,108 @@ ГруппаПодвалСубъектов 116 - - ЗагружатьИсториюИзмененийАдресныхОбъектов - 190 - - <key>ru</key> - <value>Загружать историю изменений адресных объектов</value> - + + ГруппаСтрокаПодвала + 251 + + ЗагружатьПомещения + 248 + + <key>ru</key> + <value>Загружать помещения</value> + + true + true + + true + + + ЗагружатьПомещения + + Right + + ru + Позволяет выбирать помещения и квартиры при вводе адреса, что необходимо для корректной сдачи отчетности. +Загрузка этих сведений увеличит размер адресного классификатора примерно в 2 раза. + + Button + + ЗагружатьПомещенияРасширеннаяПодсказка + 250 + Label + true + true + + Left + + + + ЗагружатьПомещенияКонтекстноеМеню + 249 + true + + CheckBoxField + Enter + true + Left + true + + + + ЗагружатьИсториюИзмененийАдресныхОбъектов + 190 + + <key>ru</key> + <value>Загружать историю изменений адресных объектов</value> + + true + true + + true + + + ЗагружатьИсториюИзмененийАдресныхОбъектов + + Right + + ru + Загрузка истории переименования, переподчинения или исключения адресных сведений в адресном классификаторе. + + Button + + ЗагружатьИсториюИзмененийАдресныхОбъектовРасширеннаяПодсказка + 192 + Label + true + true + + Left + + + + ЗагружатьИсториюИзмененийАдресныхОбъектовКонтекстноеМеню + 191 + true + + CheckBoxField + Enter + true + Left + true + + true true true - - ЗагружатьИсториюИзмененийАдресныхОбъектов - - Right - + <key>ru</key> - <value>Загрузка истории переименования, переподчинения или исключения адресных сведений в адресном классификаторе.</value> - </toolTip> - <toolTipRepresentation>Button</toolTipRepresentation> + <value>Строка подвала</value> + - ЗагружатьИсториюИзмененийАдресныхОбъектовРасширеннаяПодсказка - 192 + ГруппаСтрокаПодвалаРасширеннаяПодсказка + 252 Label true true @@ -501,17 +579,15 @@ Left - - ЗагружатьИсториюИзмененийАдресныхОбъектовКонтекстноеМеню - 191 - true - - CheckBoxField - Enter - true - Left - true - + UsualGroup + + Vertical + Auto + true + true + Auto + Auto + ГруппаВыбраноРегионовДляЗагрузки @@ -613,6 +689,7 @@ UsualGroup + HorizontalIfPossible true true Auto @@ -2315,6 +2392,23 @@ true + + ЗагружатьПомещения + + <key>ru</key> + <value>Загружать помещения</value> + + 20 + + Boolean + + + true + + + true + + Загрузить diff --git a/SSL/src/InformationRegisters/АдресныеОбъекты/Forms/ЗагрузкаАдресногоКлассификатора/Help/ru.html b/SSL/src/InformationRegisters/АдресныеОбъекты/Forms/ЗагрузкаАдресногоКлассификатора/Help/ru.html index d598b74b9..6e9b804cc 100644 --- a/SSL/src/InformationRegisters/АдресныеОбъекты/Forms/ЗагрузкаАдресногоКлассификатора/Help/ru.html +++ b/SSL/src/InformationRegisters/АдресныеОбъекты/Forms/ЗагрузкаАдресногоКлассификатора/Help/ru.html @@ -6,6 +6,8 @@ <h3>Загрузка адресного классификатора</h3> <ul><li>При загрузке классификатора можно выбрать один, несколько или все регионы России, по которым необходимо загрузить адресные сведения. Это удобно, т.к. можно не загружать адреса тех регионов, которые заведомо не будут использоваться в работе. Включите флажки рядом с наименованиями нужных регионов. Для того чтобы выбрать все регионы для загрузки, нажмите <img src="StdPicture.CheckAll"></img>, для того чтобы отменить выбор, нажмите кнопку <img src="StdPicture.UncheckAll"></img>. Для поиска регионов в списке используйте кнопку <strong>Найти</strong>. В нижней части списка идет подсчет количества выбранных регионов. </li> +<li>Для повышения точности и скорости ввода адреса, а также для исключения опечаток рекомендуется включить загрузку сведений о помещениях-квартирах и офисах. Загрузка позволяет подбирать конкретные помещения прямо из списка в форме ввода, что гарантирует корректность формирования полного адреса и необходима для его правильной выгрузки в отчетность. При использовании веб-сервисов подбор помещений доступен сразу. При использовании загруженного классификатора для подбора помещений нужно установить флажок <strong>Загрузка помещения</strong>. </li> +<li>Загрузка адресных сведений приведет к увеличению размера адресного классификатора примерно в два раза, а для хранения данных о помещениях потребуется дополнительно до 3ГБ дискового пространства. Поэтому по умолчанию история изменения адресных объектов не загружается в приложение. При необходимости (например, в приложении вводятся паспортные данные сотрудников, в них могут быть и устаревшие адреса) включите флажок <strong>Загружать историю изменения адресных объектов</strong>. </li> <li>С помощью переключателя выберите <strong>Вариант загрузки</strong>: <ul><li><strong>С портала 1С:ИТС</strong>; <ul><li>Для загрузки необходимо заполнить данные авторизации для подключения к <strong>Интернет-поддержке пользователей</strong>. </li></ul></li> diff --git a/SSL/src/InformationRegisters/АдресныеОбъекты/Forms/ЗагрузкаАдресногоКлассификатора/Module.bsl b/SSL/src/InformationRegisters/АдресныеОбъекты/Forms/ЗагрузкаАдресногоКлассификатора/Module.bsl index 8c453ed5a..66ba5a69a 100644 --- a/SSL/src/InformationRegisters/АдресныеОбъекты/Forms/ЗагрузкаАдресногоКлассификатора/Module.bsl +++ b/SSL/src/InformationRegisters/АдресныеОбъекты/Forms/ЗагрузкаАдресногоКлассификатора/Module.bsl @@ -1,5 +1,5 @@ /////////////////////////////////////////////////////////////////////////////////////////////////////// -// Copyright (c) 2024, ООО 1С-Софт +// Copyright (c) 2025, ООО 1С-Софт // Все права защищены. Эта программа и сопроводительные материалы предоставляются // в соответствии с условиями лицензии Attribution 4.0 International (CC BY 4.0) // Текст лицензии доступен по ссылке: @@ -35,6 +35,8 @@ &НаСервере Процедура ПриСозданииНаСервере(Отказ, СтандартнаяОбработка) + ЗагружатьПомещения = Истина; + УстановитьУсловноеОформление(); Если ОбщегоНазначения.РазделениеВключено() Тогда @@ -172,6 +174,14 @@ КонецЕсли; Элементы.ПроверитьВсеАдреса.Видимость = ОбщегоНазначения.ПодсистемаСуществует("СтандартныеПодсистемы.КонтрольВеденияУчета"); + УстановитьВидимостьКнопокПослеСменыСтраницы(ЭтотОбъект); + + Если ОбщегоНазначения.ЭтоМобильныйКлиент() Тогда + Элементы.ГруппаПодвалСубъектов.Группировка = ГруппировкаПодчиненныхЭлементовФормы.Вертикальная; + Элементы.Переместить(Элементы.ГруппаВыбраноРегионовДляЗагрузки, Элементы.ГруппаПодвалСубъектов, Элементы.ГруппаСтрокаПодвала); + Элементы.СубъектыРФ.ВариантУправленияВысотой = ВариантУправленияВысотойТаблицы.ВСтрокахТаблицы; + Элементы.СубъектыРФ.ВысотаВСтрокахТаблицы = 6; + КонецЕсли; КонецПроцедуры @@ -347,6 +357,7 @@ Иначе Элементы.ШагиЗагрузки.ТекущаяСтраница = Элементы.ВыборРегионовЗагрузки; КонецЕсли; + УстановитьВидимостьКнопокПослеСменыСтраницы(ЭтотОбъект); КонецПроцедуры @@ -595,7 +606,10 @@ КодыРегионов = КодыРегионовДляЗагрузки(); // Проверка доступности и наличия файлов. - ПараметрыЗагрузки = Новый Структура("КодИсточникаЗагрузки, ПолеОшибки", КодИсточникаЗагрузки, "АдресЗагрузки"); + ПараметрыЗагрузки = Новый Структура; + ПараметрыЗагрузки.Вставить("КодИсточникаЗагрузки", КодИсточникаЗагрузки); + ПараметрыЗагрузки.Вставить("ПолеОшибки", "АдресЗагрузки"); + ПараметрыЗагрузки.Вставить("ЗагружатьПомещения", ЗагружатьПомещения); ОписаниеОповещения = Новый ОписаниеОповещения("ЗагрузитьКлассификаторИзКаталогаЗавершение", ЭтотОбъект); АдресныйКлассификаторКлиент.АнализДоступностиФайловКлассификатораВКаталоге(ОписаниеОповещения, КодыРегионов, КаталогДанных, ПараметрыЗагрузки); @@ -610,7 +624,11 @@ Если РезультатАнализа.Ошибки <> Неопределено Тогда // Не хватает файлов для загрузки по указанным режимам. ОчиститьСообщения(); - ОбщегоНазначенияКлиентСервер.СообщитьОшибкиПользователю(РезультатАнализа.Ошибки); + Если РезультатАнализа.Ошибки.СписокОшибок.Количество() = 1 Тогда + ПоказатьПредупреждение(, РезультатАнализа.Ошибки.СписокОшибок[0].ТекстДляОднойОшибки); + Иначе + ОбщегоНазначенияКлиентСервер.СообщитьОшибкиПользователю(РезультатАнализа.Ошибки); + КонецЕсли; Возврат; КонецЕсли; @@ -640,10 +658,12 @@ // Переключаем режим - страницу. Элементы.ШагиЗагрузки.ТекущаяСтраница = Элементы.ОжиданиеЗагрузки; + УстановитьВидимостьКнопокПослеСменыСтраницы(ЭтотОбъект); ТекстСостоянияЗагрузки = НСтр("ru = 'Загрузка файлов с Портала 1С:ИТС...'"); ОповещениеОПрогрессеВыполнения = Новый ОписаниеОповещения("ПрогрессВыполнения", ЭтотОбъект); - Задание = ЗапуститьФоновуюЗагрузкуССайтаНаСервере(КодыРегионов, ЗагружатьИсториюИзмененийАдресныхОбъектов, УникальныйИдентификатор); + Задание = ЗапуститьФоновуюЗагрузкуССайтаНаСервере(КодыРегионов, ЗагружатьИсториюИзмененийАдресныхОбъектов, УникальныйИдентификатор, + ЗагружатьПомещения); ИдентификаторЗадания = Задание.ИдентификаторЗадания; @@ -732,6 +752,7 @@ // Переключаем режим - страницу. Элементы.ШагиЗагрузки.ТекущаяСтраница = Элементы.ОжиданиеЗагрузки; + УстановитьВидимостьКнопокПослеСменыСтраницы(ЭтотОбъект); // Список передаваемых на сервер файлов. ПомещаемыеФайлы = Новый Массив; @@ -777,9 +798,17 @@ Иначе // выход из цикла ОповещениеОПрогрессеВыполнения = Новый ОписаниеОповещения("ПрогрессВыполнения", ЭтотОбъект); - Задание = ЗапуститьФоновуюЗагрузкуНаСервере(ДополнительныеПараметры.ПараметрыЗагрузки.КодыРегионов, ПомещенныеФайлы, - ЗагружатьИсториюИзмененийАдресныхОбъектов, УникальныйИдентификатор); + Результат = ЗапуститьФоновуюЗагрузкуНаСервере(ДополнительныеПараметры.ПараметрыЗагрузки.КодыРегионов, ПомещенныеФайлы, + ЗагружатьИсториюИзмененийАдресныхОбъектов, УникальныйИдентификатор, ЗагружатьПомещения); + Если Результат.ПроизошлаОшибка Тогда + ПоказатьПредупреждение(, Результат.ТекстОшибки); + Элементы.ШагиЗагрузки.ТекущаяСтраница = Элементы.ВыборРегионовЗагрузки; + УстановитьВидимостьКнопокПослеСменыСтраницы(ЭтотОбъект); + Возврат; + КонецЕсли; + + Задание = Результат.Задание; Если Задание.Статус = "Выполняется" Тогда ИдентификаторЗадания = Задание.ИдентификаторЗадания; @@ -888,7 +917,7 @@ | |Техническая информация:'") + Символы.ПС + Результат.КраткоеПредставлениеОшибки; КонецЕсли; - + Результат.ИнформацияОбОшибке = ИнформацияОбОшибке(); ВывестиСообщениеОбОшибке(Результат); ИначеЕсли Статус = "Выполнено" Тогда @@ -957,6 +986,7 @@ КонецЕсли; Элементы.ШагиЗагрузки.ТекущаяСтраница = Элементы.УспешноеЗавершение; + УстановитьВидимостьКнопокПослеСменыСтраницы(ЭтотОбъект); ТекстОписанияЗагрузки = НСтр("ru = 'Адресный классификатор успешно загружен.'"); Элементы.Закрыть.КнопкаПоУмолчанию = Истина; ТекущийЭлемент = Элементы.Закрыть; @@ -966,7 +996,7 @@ // Серверная часть загрузки &НаСервереБезКонтекста -Функция ЗапуститьФоновуюЗагрузкуССайтаНаСервере(КодыРегионов, ЗагружатьИсторию, УникальныйИдентификатор) +Функция ЗапуститьФоновуюЗагрузкуССайтаНаСервере(КодыРегионов, ЗагружатьИсторию, УникальныйИдентификатор, ЗагружатьПомещения) ВременныйКаталог = АдресныйКлассификаторСлужебный.КаталогВременногоХранилищаФайлов(); @@ -975,7 +1005,8 @@ ПараметрыЗагрузки = АдресныйКлассификаторСлужебный.ПараметрыЗагрузкиКлассификатораАдресов(); ПараметрыЗагрузки.ЗагружатьИсториюАдресов = ЗагружатьИсторию; - ПараметрыЗагрузки.КаталогФайлов = ВременныйКаталог; + ПараметрыЗагрузки.КаталогФайлов = ВременныйКаталог; + ПараметрыЗагрузки.ЗагружатьПомещения = ЗагружатьПомещения; ПараметрыМетода = Новый Соответствие(); Для Каждого КодРегиона Из КодыРегионов Цикл @@ -1032,11 +1063,21 @@ &НаСервереБезКонтекста Функция ЗапуститьФоновуюЗагрузкуНаСервере(Знач КодыРегионов, Знач ОписаниеФайловЗагрузки, - Знач ЗагружатьИсториюИзмененийАдресныхОбъектов, Знач УникальныйИдентификатор) + Знач ЗагружатьИсториюИзмененийАдресныхОбъектов, Знач УникальныйИдентификатор, Знач ЗагружатьПомещения) + + Результат = Новый Структура(); + Результат.Вставить("Задание", Неопределено); + Результат.Вставить("ПроизошлаОшибка", Ложь); + Результат.Вставить("ТекстОшибки", ""); КаталогФайлов = АдресныйКлассификаторСлужебный.КаталогВременногоХранилищаФайлов(); - АдресныйКлассификаторСлужебный.ИзвлечьФайлыВКаталог(ОписаниеФайловЗагрузки, КаталогФайлов); + РезультатИзвлечения = АдресныйКлассификаторСлужебный.ИзвлечьФайлыВКаталог(ОписаниеФайловЗагрузки, КаталогФайлов, ЗагружатьПомещения); + Если РезультатИзвлечения.ПроизошлаОшибка Тогда + Результат.ТекстОшибки = РезультатИзвлечения.ТекстОшибки; + Результат.ПроизошлаОшибка = РезультатИзвлечения.ПроизошлаОшибка; + Возврат Результат; + КонецЕсли; ПараметрыВыполнения = ДлительныеОперации.ПараметрыВыполненияВФоне(УникальныйИдентификатор); ПараметрыВыполнения.НаименованиеФоновогоЗадания = НСтр("ru = 'Загрузка адресного классификатора с сайта'"); @@ -1044,6 +1085,7 @@ ПараметрыЗагрузки = АдресныйКлассификаторСлужебный.ПараметрыЗагрузкиКлассификатораАдресов(); ПараметрыЗагрузки.ЗагружатьИсториюАдресов = ЗагружатьИсториюИзмененийАдресныхОбъектов; ПараметрыЗагрузки.КаталогФайлов = КаталогФайлов; + ПараметрыЗагрузки.ЗагружатьПомещения = ЗагружатьПомещения; ПараметрыМетода = Новый Соответствие(); Для Каждого КодРегиона Из КодыРегионов Цикл @@ -1061,8 +1103,10 @@ Если ФоновоеЗадание.Статус = "Ошибка" Тогда ОчиститьКаталогВременногоХранилищаФайлов(); КонецЕсли; + + Результат.Задание = ФоновоеЗадание; - Возврат ФоновоеЗадание; + Возврат Результат; КонецФункции @@ -1101,4 +1145,23 @@ #КонецОбласти +&НаКлиентеНаСервереБезКонтекста +Процедура УстановитьВидимостьКнопокПослеСменыСтраницы(Форма) + + ТекущаяСтраница = Форма.Элементы.ШагиЗагрузки.ТекущаяСтраница; + + Форма.Элементы.Загрузить.Видимость = Ложь; + Форма.Элементы.ПрерватьЗагрузку.Видимость = Ложь; + Форма.Элементы.ОбновитьКлассификатор.Видимость = Ложь; + + Если ТекущаяСтраница = Форма.Элементы.ВыборРегионовЗагрузки Тогда + Форма.Элементы.Загрузить.Видимость = Истина; + ИначеЕсли ТекущаяСтраница = Форма.Элементы.ОжиданиеЗагрузки Тогда + Форма.Элементы.ПрерватьЗагрузку.Видимость = Истина; + ИначеЕсли ТекущаяСтраница = Форма.Элементы.ОбновлениеКлассификатора Тогда + Форма.Элементы.ОбновитьКлассификатор.Видимость = Истина; + КонецЕсли; + +КонецПроцедуры + #КонецОбласти \ No newline at end of file diff --git a/SSL/src/InformationRegisters/АдресныеОбъекты/Forms/ОчисткаАдресногоКлассификатора/Module.bsl b/SSL/src/InformationRegisters/АдресныеОбъекты/Forms/ОчисткаАдресногоКлассификатора/Module.bsl index ccc178c9a..002d4fd04 100644 --- a/SSL/src/InformationRegisters/АдресныеОбъекты/Forms/ОчисткаАдресногоКлассификатора/Module.bsl +++ b/SSL/src/InformationRegisters/АдресныеОбъекты/Forms/ОчисткаАдресногоКлассификатора/Module.bsl @@ -1,5 +1,5 @@ /////////////////////////////////////////////////////////////////////////////////////////////////////// -// Copyright (c) 2024, ООО 1С-Софт +// Copyright (c) 2025, ООО 1С-Софт // Все права защищены. Эта программа и сопроводительные материалы предоставляются // в соответствии с условиями лицензии Attribution 4.0 International (CC BY 4.0) // Текст лицензии доступен по ссылке: diff --git a/SSL/src/InformationRegisters/АдресныеОбъекты/Forms/СведенияОбАдресномКлассификаторе/Module.bsl b/SSL/src/InformationRegisters/АдресныеОбъекты/Forms/СведенияОбАдресномКлассификаторе/Module.bsl index 51d54cce6..ce6b90c69 100644 --- a/SSL/src/InformationRegisters/АдресныеОбъекты/Forms/СведенияОбАдресномКлассификаторе/Module.bsl +++ b/SSL/src/InformationRegisters/АдресныеОбъекты/Forms/СведенияОбАдресномКлассификаторе/Module.bsl @@ -1,5 +1,5 @@ /////////////////////////////////////////////////////////////////////////////////////////////////////// -// Copyright (c) 2024, ООО 1С-Софт +// Copyright (c) 2025, ООО 1С-Софт // Все права защищены. Эта программа и сопроводительные материалы предоставляются // в соответствии с условиями лицензии Attribution 4.0 International (CC BY 4.0) // Текст лицензии доступен по ссылке: diff --git a/SSL/src/InformationRegisters/АдресныеОбъекты/ManagerModule.bsl b/SSL/src/InformationRegisters/АдресныеОбъекты/ManagerModule.bsl index e5706702c..7135f0fbb 100644 --- a/SSL/src/InformationRegisters/АдресныеОбъекты/ManagerModule.bsl +++ b/SSL/src/InformationRegisters/АдресныеОбъекты/ManagerModule.bsl @@ -1,5 +1,5 @@ /////////////////////////////////////////////////////////////////////////////////////////////////////// -// Copyright (c) 2024, ООО 1С-Софт +// Copyright (c) 2025, ООО 1С-Софт // Все права защищены. Эта программа и сопроводительные материалы предоставляются // в соответствии с условиями лицензии Attribution 4.0 International (CC BY 4.0) // Текст лицензии доступен по ссылке: diff --git a/SSL/src/InformationRegisters/АдресныеОбъекты/Templates/АдресныеСокращения/Template.txt b/SSL/src/InformationRegisters/АдресныеОбъекты/Templates/АдресныеСокращения/Template.txt index 4ca32b760..59d09c58e 100644 --- a/SSL/src/InformationRegisters/АдресныеОбъекты/Templates/АдресныеСокращения/Template.txt +++ b/SSL/src/InformationRegisters/АдресныеОбъекты/Templates/АдресныеСокращения/Template.txt @@ -40,407 +40,484 @@ </ValueType> </column> + <column> + <Name xsi:type="xs:string">Актуально</Name> + <ValueType> + <Type>xs:boolean</Type> + </ValueType> + </column> + + <column> + <Name xsi:type="xs:string">ТипВКонце</Name> + <ValueType> + <Type>xs:decimal</Type> + </ValueType> + </column> + <index><column>Уровень</column></index> <index><column>Наименование</column></index> <index><column>Сокращение</column></index> + <index><column>Актуально</column></index> - <row><Value>1</Value><Value>Автономная область</Value><Value>а.обл.</Value><Value>а.обл.</Value></row> - <row><Value>1</Value><Value>Автономная область</Value><Value>Аобл</Value><Value>а.обл.</Value></row> - <row><Value>1</Value><Value>Автономный округ</Value><Value>а.окр.</Value><Value>а.окр.</Value></row> - <row><Value>1</Value><Value>Автономный округ</Value><Value>АО</Value><Value>а.окр.</Value></row> - <row><Value>1</Value><Value>Город</Value><Value>г</Value><Value>г.</Value></row> - <row><Value>1</Value><Value>Город</Value><Value>г.</Value><Value>г.</Value></row> - <row><Value>1</Value><Value>Город федерального значения</Value><Value>г.ф.з.</Value><Value>г.ф.з.</Value></row> - <row><Value>1</Value><Value>Край</Value><Value>край</Value><Value>край</Value></row> - <row><Value>1</Value><Value>Область</Value><Value>обл</Value><Value>обл.</Value></row> - <row><Value>1</Value><Value>Область</Value><Value>обл.</Value><Value>обл.</Value></row> - <row><Value>1</Value><Value>Округ</Value><Value>округ</Value><Value></Value></row> - <row><Value>1</Value><Value>Республика</Value><Value>Респ</Value><Value>респ.</Value></row> - <row><Value>1</Value><Value>Республика</Value><Value>респ.</Value><Value>респ.</Value></row> - <row><Value>1</Value><Value>Чувашия</Value><Value>Чувашия</Value><Value></Value></row> - <row><Value>2</Value><Value>Автономный округ</Value><Value>АО</Value><Value>а.окр.</Value></row> - <row><Value>2</Value><Value>внутригородская территория (внутригородское муниципальное образование) города федерального значения</Value><Value>вн.тер. г.</Value><Value></Value></row> - <row><Value>2</Value><Value>Город</Value><Value>г</Value><Value>г.</Value></row> - <row><Value>2</Value><Value>Городской округ</Value><Value>г.о.</Value><Value>г.о.</Value></row> - <row><Value>2</Value><Value>Муниципальный округ</Value><Value>м.о.</Value><Value>м.о.</Value></row> - <row><Value>2</Value><Value>Муниципальный район</Value><Value>м.р-н</Value><Value>м.р-н</Value></row> - <row><Value>2</Value><Value>Поселение</Value><Value>п</Value><Value>пос.</Value></row> - <row><Value>2</Value><Value>Поселение</Value><Value>пос.</Value><Value>пос.</Value></row> - <row><Value>2</Value><Value>Район</Value><Value>р-н</Value><Value>р-н</Value></row> - <row><Value>2</Value><Value>Территория</Value><Value>тер</Value><Value>тер.</Value></row> - <row><Value>2</Value><Value>Улус</Value><Value>у</Value><Value>у.</Value></row> - <row><Value>2</Value><Value>Улус</Value><Value>у.</Value><Value>у.</Value></row> - <row><Value>2</Value><Value>Город</Value><Value>г.</Value><Value>г.</Value></row> - <row><Value>2</Value><Value>Город</Value><Value>г</Value><Value>г.</Value></row> - <row><Value>3</Value><Value>Городской округ</Value><Value>г.о.</Value><Value>г.о.</Value></row> - <row><Value>3</Value><Value>Муниципальный район</Value><Value>м.р-н</Value><Value>м.р-н</Value></row> - <row><Value>3</Value><Value>внутригородская территория</Value><Value>вн.тер.</Value><Value>вн.тер.</Value></row> - <row><Value>3</Value><Value>внутригородская территория (внутригородское муниципальное образование) города федерального значения</Value><Value>вн.тер.г.</Value><Value>вн.тер.г.</Value></row> - <row><Value>3</Value><Value>Муниципальный округ</Value><Value>м.о.</Value><Value>м.о.</Value></row> - <row><Value>3</Value><Value>Федеральная территория</Value><Value>ф.т.</Value><Value>ф.т.</Value></row> - <row><Value>5</Value><Value>Волость</Value><Value>волость</Value><Value></Value></row> - <row><Value>5</Value><Value>Город</Value><Value>г</Value><Value>г.</Value></row> - <row><Value>5</Value><Value>Город</Value><Value>г.</Value><Value>г.</Value></row> - <row><Value>5</Value><Value>Дачный поселок</Value><Value>дп</Value><Value>дп.</Value></row> - <row><Value>5</Value><Value>Курортный поселок</Value><Value>кп</Value><Value>кп.</Value></row> - <row><Value>5</Value><Value>Массив</Value><Value>массив</Value><Value></Value></row> - <row><Value>5</Value><Value>Поселок</Value><Value>п</Value><Value>п.</Value></row> - <row><Value>5</Value><Value>Поселок городского типа</Value><Value>пгт</Value><Value>пгт.</Value></row> - <row><Value>5</Value><Value>Поселок городского типа</Value><Value>пгт.</Value><Value>пгт.</Value></row> - <row><Value>5</Value><Value>Почтовое отделение</Value><Value>п/о</Value><Value></Value></row> - <row><Value>5</Value><Value>Сельская администрация</Value><Value>с/а</Value><Value></Value></row> - <row><Value>5</Value><Value>Сельский округ</Value><Value>с/о</Value><Value></Value></row> - <row><Value>5</Value><Value>Сельское муницип.образование</Value><Value>с/мо</Value><Value></Value></row> - <row><Value>5</Value><Value>Сельское поселение</Value><Value>с/п</Value><Value>с.п.</Value></row> - <row><Value>5</Value><Value>Сельсовет</Value><Value>с/с</Value><Value>с/с</Value></row> - <row><Value>5</Value><Value>Рабочий поселок</Value><Value>рп</Value><Value>рп.</Value></row> - <row><Value>5</Value><Value>Территория</Value><Value>тер</Value><Value>тер.</Value></row> - <row><Value>4</Value><Value>Сельское поселение</Value><Value>с.п.</Value><Value>с.п.</Value></row> - <row><Value>4</Value><Value>внутригородской район</Value><Value>вн.р-н</Value><Value>вн.р-н</Value></row> - <row><Value>4</Value><Value>Городское поселение</Value><Value>г.п.</Value><Value>г.п.</Value></row> - <row><Value>4</Value><Value>Городское поселение</Value><Value>г. п.</Value><Value>г.п.</Value></row> - <row><Value>4</Value><Value>Межселенная территория</Value><Value>меж.тер.</Value><Value>меж.тер.</Value></row> - <row><Value>6</Value><Value>Волость</Value><Value>волость</Value><Value></Value></row> - <row><Value>6</Value><Value>Выселки(ок)</Value><Value>высел</Value><Value></Value></row> - <row><Value>6</Value><Value>Город</Value><Value>г</Value><Value>г.</Value></row> - <row><Value>6</Value><Value>Город</Value><Value>г.</Value><Value>г.</Value></row> - <row><Value>6</Value><Value>Городок</Value><Value>г-к</Value><Value>г-к</Value></row> - <row><Value>6</Value><Value>Городской поселок</Value><Value>гп</Value><Value>гп.</Value></row> - <row><Value>6</Value><Value>Дачный поселок</Value><Value>дп</Value><Value>дп.</Value></row> - <row><Value>6</Value><Value>Дачный поселок</Value><Value>дп.</Value><Value>дп.</Value></row> - <row><Value>6</Value><Value>Деревня</Value><Value>д</Value><Value>д.</Value></row> - <row><Value>6</Value><Value>ж/д останов. (обгонный) пункт</Value><Value>ж/д_оп</Value><Value></Value></row> - <row><Value>6</Value><Value>Железнодорожная будка</Value><Value>ж/д б-ка</Value><Value>ж/д б-ка</Value></row> - <row><Value>6</Value><Value>Железнодорожная будка</Value><Value>ж/д_будка</Value><Value>ж/д б-ка</Value></row> - <row><Value>6</Value><Value>Железнодорожная ветка</Value><Value>ж/д в-ка</Value><Value>ж/д в-ка</Value></row> - <row><Value>6</Value><Value>Железнодорожная казарма</Value><Value>ж/д к-ма</Value><Value>ж/д к-ма</Value></row> - <row><Value>6</Value><Value>Железнодорожная казарма</Value><Value>ж/д_казарм</Value><Value>ж/д к-ма</Value></row> - <row><Value>6</Value><Value>Железнодорожная платформа</Value><Value>ж/д пл-ма</Value><Value>ж/д пл-ма</Value></row> - <row><Value>6</Value><Value>Железнодорожная платформа</Value><Value>ж/д_платф</Value><Value>ж/д пл-ма</Value></row> - <row><Value>6</Value><Value>Железнодорожная площадка</Value><Value>ж/д пл-ка</Value><Value>ж/д пл-ка</Value></row> - <row><Value>6</Value><Value>Железнодорожная станция</Value><Value>ж/д_ст</Value><Value>ж/д ст.</Value></row> - <row><Value>6</Value><Value>Железнодорожный блокпост</Value><Value>ж/д бл-ст</Value><Value>ж/д бл-ст</Value></row> - <row><Value>6</Value><Value>Железнодорожный комбинат</Value><Value>ж/д к-т</Value><Value>ж/д к-т</Value></row> - <row><Value>6</Value><Value>Железнодорожный остановочный пункт</Value><Value>ж/д о.п.</Value><Value>ж/д о.п.</Value></row> - <row><Value>6</Value><Value>Железнодорожный пост</Value><Value>ж/д_пост</Value><Value></Value></row> - <row><Value>6</Value><Value>Железнодорожный путевой пост</Value><Value>ж/д п.п.</Value><Value>ж/д п.п.</Value></row> - <row><Value>6</Value><Value>Железнодорожный разъезд</Value><Value>ж/д_рзд</Value><Value>ж/д рзд.</Value></row> - <row><Value>6</Value><Value>Жилая зона</Value><Value>жилзона</Value><Value></Value></row> - <row><Value>6</Value><Value>Жилой район</Value><Value>жилрайон</Value><Value>ж/р</Value></row> - <row><Value>6</Value><Value>Заимка</Value><Value>заимка</Value><Value>з-ка</Value></row> - <row><Value>6</Value><Value>Зимовье</Value><Value>зим.</Value><Value>зим.</Value></row> - <row><Value>6</Value><Value>Казарма</Value><Value>казарма</Value><Value></Value></row> - <row><Value>6</Value><Value>Квартал</Value><Value>кв-л</Value><Value>кв-л</Value></row> - <row><Value>6</Value><Value>Кишлак</Value><Value>киш.</Value><Value>киш.</Value></row> - <row><Value>6</Value><Value>Кордон</Value><Value>кордон</Value><Value></Value></row> - <row><Value>6</Value><Value>Курортный поселок</Value><Value>кп</Value><Value>кп.</Value></row> - <row><Value>6</Value><Value>Леспромхоз</Value><Value>лпх</Value><Value></Value></row> - <row><Value>6</Value><Value>Массив</Value><Value>массив</Value><Value></Value></row> - <row><Value>6</Value><Value>Местечко</Value><Value>м</Value><Value>м-ко</Value></row> - <row><Value>6</Value><Value>Микрорайон</Value><Value>мкр</Value><Value>мкр.</Value></row> - <row><Value>6</Value><Value>Населенный пункт</Value><Value>нп</Value><Value>нп.</Value></row> - <row><Value>6</Value><Value>Населенный пункт</Value><Value>нп.</Value><Value>нп.</Value></row> - <row><Value>6</Value><Value>Остров</Value><Value>остров</Value><Value>ост-в</Value></row> - <row><Value>6</Value><Value>Планировочный район</Value><Value>пл.р-н</Value><Value></Value></row> - <row><Value>6</Value><Value>Погост</Value><Value>погост</Value><Value></Value></row> - <row><Value>6</Value><Value>Поселок</Value><Value>п</Value><Value>п.</Value></row> - <row><Value>6</Value><Value>Поселок городского типа</Value><Value>пгт</Value><Value>пгт.</Value></row> - <row><Value>6</Value><Value>Поселок городского типа</Value><Value>пгт.</Value><Value>пгт.</Value></row> - <row><Value>6</Value><Value>Поселок и(при) станция(и)</Value><Value>п/ст</Value><Value></Value></row> - <row><Value>6</Value><Value>Поселок при железнодорожной станции</Value><Value>п. ж/д ст.</Value><Value>п. ж/д ст.</Value></row> - <row><Value>6</Value><Value>Поселок при станции (поселок станции)</Value><Value>п. ст.</Value><Value>п. ст.</Value></row> - <row><Value>6</Value><Value>Поселок разъезда</Value><Value>пос.рзд</Value><Value></Value></row> - <row><Value>6</Value><Value>Починок</Value><Value>починок</Value><Value>п-к</Value></row> - <row><Value>6</Value><Value>Почтовое отделение</Value><Value>п/о</Value><Value></Value></row> - <row><Value>6</Value><Value>Промышленная зона</Value><Value>промзона</Value><Value></Value></row> - <row><Value>6</Value><Value>Рабочий поселок</Value><Value>рп</Value><Value>рп.</Value></row> - <row><Value>6</Value><Value>Разъезд</Value><Value>рзд</Value><Value>рзд.</Value></row> - <row><Value>6</Value><Value>Садовое неком-е товарищество</Value><Value>снт</Value><Value></Value></row> - <row><Value>6</Value><Value>Село</Value><Value>с</Value><Value>с.</Value></row> - <row><Value>6</Value><Value>Сельский поселок</Value><Value>сп</Value><Value>СП.</Value></row> - <row><Value>6</Value><Value>Сельский поселок</Value><Value>сп.</Value><Value>СП.</Value></row> - <row><Value>6</Value><Value>Слобода</Value><Value>сл</Value><Value>сл.</Value></row> - <row><Value>6</Value><Value>Станица</Value><Value>ст-ца</Value><Value>ст-ца</Value></row> - <row><Value>6</Value><Value>Станция</Value><Value>ст</Value><Value>ст.</Value></row> - <row><Value>6</Value><Value>Территория</Value><Value>тер</Value><Value>тер.</Value></row> - <row><Value>6</Value><Value>Улус</Value><Value>у</Value><Value>у.</Value></row> - <row><Value>6</Value><Value>Хутор</Value><Value>х</Value><Value>х.</Value></row> - <row><Value>6</Value><Value>Аал</Value><Value>аал</Value><Value>аал</Value></row> - <row><Value>6</Value><Value>Автодорога</Value><Value>автодорога</Value><Value></Value></row> - <row><Value>6</Value><Value>Арбан</Value><Value>арбан</Value><Value>арбан</Value></row> - <row><Value>6</Value><Value>Аул</Value><Value>аул</Value><Value>аул</Value></row> - <row><Value>7</Value><Value>Местечко</Value><Value>м-ко</Value><Value>м-ко</Value></row> - <row><Value>7</Value><Value>Аал</Value><Value>аал</Value><Value>аал</Value></row> - <row><Value>7</Value><Value>Абонентский ящик</Value><Value>а/я</Value><Value></Value></row> - <row><Value>7</Value><Value>Аллея</Value><Value>ал.</Value><Value>ал.</Value></row> - <row><Value>7</Value><Value>Арбан</Value><Value>арбан</Value><Value>арбан</Value></row> - <row><Value>7</Value><Value>Аул</Value><Value>аул</Value><Value>аул</Value></row> - <row><Value>7</Value><Value>Берег</Value><Value>б-г</Value><Value>б-г</Value></row> - <row><Value>7</Value><Value>Бульвар</Value><Value>б-р</Value><Value>б-р</Value></row> - <row><Value>7</Value><Value>Вал</Value><Value>вал</Value><Value>вал</Value></row> - <row><Value>7</Value><Value>Въезд</Value><Value>взд.</Value><Value>взд.</Value></row> - <row><Value>7</Value><Value>Гаражно-строительный кооп.</Value><Value>гск</Value><Value></Value></row> - <row><Value>7</Value><Value>Городок</Value><Value>г-к</Value><Value>г-к</Value></row> - <row><Value>7</Value><Value>Дачное неком-е партнерство</Value><Value>днп</Value><Value></Value></row> - <row><Value>7</Value><Value>Деревня</Value><Value>д.</Value><Value>д.</Value></row> - <row><Value>7</Value><Value>Дорога</Value><Value>дор.</Value><Value>дор.</Value></row> - <row><Value>7</Value><Value>Железнодорожная будка</Value><Value>ж/д б-ка</Value><Value>ж/д б-ка</Value></row> - <row><Value>7</Value><Value>Железнодорожная казарма</Value><Value>ж/д к-ма</Value><Value>ж/д к-ма</Value></row> - <row><Value>7</Value><Value>Железнодорожная платформа</Value><Value>ж/д пл-ма</Value><Value>ж/д пл-ма</Value></row> - <row><Value>7</Value><Value>Железнодорожная станция</Value><Value>ж/д ст.</Value><Value>ж/д ст.</Value></row> - <row><Value>7</Value><Value>Железнодорожный разъезд</Value><Value>ж/д рзд.</Value><Value>ж/д рзд.</Value></row> - <row><Value>7</Value><Value>Жилой район</Value><Value>ж/р</Value><Value>ж/р</Value></row> - <row><Value>7</Value><Value>Заезд</Value><Value>ззд.</Value><Value>ззд.</Value></row> - <row><Value>7</Value><Value>Зона (массив)</Value><Value>зона</Value><Value>зона</Value></row> - <row><Value>7</Value><Value>Квартал</Value><Value>кв-л</Value><Value>кв-л</Value></row> - <row><Value>7</Value><Value>Километр</Value><Value>км</Value><Value>км</Value></row> - <row><Value>7</Value><Value>Кольцо</Value><Value>к-цо</Value><Value>к-цо</Value></row> - <row><Value>7</Value><Value>Коса</Value><Value>коса</Value><Value>коса</Value></row> - <row><Value>7</Value><Value>Линия</Value><Value>лн.</Value><Value>лн.</Value></row> - <row><Value>7</Value><Value>Местность</Value><Value>местность</Value><Value></Value></row> - <row><Value>7</Value><Value>Месторождение</Value><Value>месторожд.</Value><Value></Value></row> - <row><Value>7</Value><Value>Месторождение</Value><Value>мр.</Value><Value></Value></row> - <row><Value>7</Value><Value>Микрорайон</Value><Value>мкр</Value><Value>мкр.</Value></row> - <row><Value>7</Value><Value>Микрорайон</Value><Value>мкр.</Value><Value>мкр.</Value></row> - <row><Value>7</Value><Value>Набережная</Value><Value>наб.</Value><Value>наб.</Value></row> - <row><Value>7</Value><Value>Некоммерческое партнерство</Value><Value>н/п</Value><Value></Value></row> - <row><Value>7</Value><Value>Остров</Value><Value>ост-в</Value><Value>ост-в</Value></row> - <row><Value>7</Value><Value>Парк</Value><Value>парк</Value><Value>парк</Value></row> - <row><Value>7</Value><Value>Переезд</Value><Value>пер-д</Value><Value>пер-д</Value></row> - <row><Value>7</Value><Value>Переулок</Value><Value>пер.</Value><Value>пер.</Value></row> - <row><Value>7</Value><Value>Платформа</Value><Value>платф.</Value><Value>платф.</Value></row> - <row><Value>7</Value><Value>Площадка</Value><Value>пл-ка</Value><Value>пл-ка</Value></row> - <row><Value>7</Value><Value>Площадь</Value><Value>пл.</Value><Value>пл.</Value></row> - <row><Value>7</Value><Value>Порт</Value><Value>порт</Value><Value></Value></row> - <row><Value>7</Value><Value>Поселок</Value><Value>п.</Value><Value>п.</Value></row> - <row><Value>7</Value><Value>Починок</Value><Value>п-к</Value><Value>п-к</Value></row> - <row><Value>7</Value><Value>Проезд</Value><Value>пр-д</Value><Value>пр-д</Value></row> - <row><Value>7</Value><Value>Промышленная зона</Value><Value>промзона</Value><Value></Value></row> - <row><Value>7</Value><Value>Промышленный район</Value><Value>п/р</Value><Value>п/р</Value></row> - <row><Value>7</Value><Value>Просек</Value><Value>пр-к</Value><Value>пр-к</Value></row> - <row><Value>7</Value><Value>Просека</Value><Value>пр-ка</Value><Value>пр-ка</Value></row> - <row><Value>7</Value><Value>Проселок</Value><Value>пр-лок</Value><Value>пр-лок</Value></row> - <row><Value>7</Value><Value>Проспект</Value><Value>пр-кт</Value><Value>пр-кт</Value></row> - <row><Value>7</Value><Value>Проулок</Value><Value>проул.</Value><Value>проул.</Value></row> - <row><Value>7</Value><Value>Разъезд</Value><Value>рзд.</Value><Value>рзд.</Value></row> - <row><Value>7</Value><Value>Район</Value><Value>р-н</Value><Value>р-н</Value></row> - <row><Value>7</Value><Value>Сад</Value><Value>сад</Value><Value>сад</Value></row> - <row><Value>7</Value><Value>Садовое товарищество</Value><Value>снт</Value><Value></Value></row> - <row><Value>7</Value><Value>Село</Value><Value>с.</Value><Value>с.</Value></row> - <row><Value>7</Value><Value>Сквер</Value><Value>с-р</Value><Value>сквер</Value></row> - <row><Value>7</Value><Value>Сквер</Value><Value>сквер</Value><Value>сквер</Value></row> - <row><Value>7</Value><Value>Слобода</Value><Value>сл.</Value><Value>сл.</Value></row> - <row><Value>7</Value><Value>Спуск</Value><Value>с-к</Value><Value>с-к</Value></row> - <row><Value>7</Value><Value>Станция</Value><Value>ст.</Value><Value>ст.</Value></row> - <row><Value>7</Value><Value>Строение</Value><Value>стр.</Value><Value>стр.</Value></row> - <row><Value>7</Value><Value>Территория</Value><Value>тер</Value><Value>тер.</Value></row> - <row><Value>7</Value><Value>Территория</Value><Value>тер.</Value><Value>тер.</Value></row> - <row><Value>7</Value><Value>Территория ГСК</Value><Value>тер. ГСК</Value><Value></Value></row> - <row><Value>7</Value><Value>Территория ДНО</Value><Value>тер. ДНО</Value><Value></Value></row> - <row><Value>7</Value><Value>Территория ДНП</Value><Value>тер. ДНП</Value><Value></Value></row> - <row><Value>7</Value><Value>Территория ДНТ</Value><Value>тер. ДНТ</Value><Value></Value></row> - <row><Value>7</Value><Value>Территория ДПК</Value><Value>тер. ДПК</Value><Value></Value></row> - <row><Value>7</Value><Value>Территория ОНО</Value><Value>тер. ОНО</Value><Value></Value></row> - <row><Value>7</Value><Value>Территория ОНП</Value><Value>тер. ОНП</Value><Value></Value></row> - <row><Value>7</Value><Value>Территория ОНТ</Value><Value>тер. ОНТ</Value><Value></Value></row> - <row><Value>7</Value><Value>Территория ОПК</Value><Value>тер. ОПК</Value><Value></Value></row> - <row><Value>7</Value><Value>Территория ПК</Value><Value>тер. ПК</Value><Value></Value></row> - <row><Value>7</Value><Value>Территория СНО</Value><Value>тер. СНО</Value><Value></Value></row> - <row><Value>7</Value><Value>Территория СНП</Value><Value>тер. СНП</Value><Value></Value></row> - <row><Value>7</Value><Value>Территория СНТ</Value><Value>тер. СНТ</Value><Value></Value></row> - <row><Value>7</Value><Value>Территория СОСН</Value><Value>тер.СОСН</Value><Value></Value></row> - <row><Value>7</Value><Value>Территория СПК</Value><Value>тер. СПК</Value><Value></Value></row> - <row><Value>7</Value><Value>Территория ТСЖ</Value><Value>тер. ТСЖ</Value><Value></Value></row> - <row><Value>7</Value><Value>Территория ТСН</Value><Value>тер. ТСН</Value><Value></Value></row> - <row><Value>7</Value><Value>Территория ФХ</Value><Value>тер.ф.х.</Value><Value></Value></row> - <row><Value>7</Value><Value>Тракт</Value><Value>тракт</Value><Value>тракт</Value></row> - <row><Value>7</Value><Value>Тупик</Value><Value>туп.</Value><Value>туп.</Value></row> - <row><Value>7</Value><Value>Улица</Value><Value>ул.</Value><Value>ул.</Value></row> - <row><Value>7</Value><Value>Усадьба</Value><Value>ус.</Value><Value>ус.</Value></row> - <row><Value>7</Value><Value>Фермерское хозяйство</Value><Value>ф/х</Value><Value></Value></row> - <row><Value>7</Value><Value>Хутор</Value><Value>х.</Value><Value>х.</Value></row> - <row><Value>7</Value><Value>Шоссе</Value><Value>ш.</Value><Value>ш.</Value></row> - <row><Value>7</Value><Value>Юрты</Value><Value>ю.</Value><Value>ю.</Value></row> - <row><Value>8</Value><Value>Хутор</Value><Value>х</Value><Value>х.</Value></row> - <row><Value>8</Value><Value>Шоссе</Value><Value>ш</Value><Value>ш.</Value></row> - <row><Value>8</Value><Value>Шоссе</Value><Value>ш.</Value><Value>ш.</Value></row> - <row><Value>8</Value><Value>Абонентский ящик</Value><Value>а/я</Value><Value></Value></row> - <row><Value>8</Value><Value>Аллея</Value><Value>ал.</Value><Value>ал.</Value></row> - <row><Value>8</Value><Value>Аллея</Value><Value>аллея</Value><Value>ал.</Value></row> - <row><Value>8</Value><Value>Балка</Value><Value>балка</Value><Value></Value></row> - <row><Value>8</Value><Value>Берег</Value><Value>берег</Value><Value>б-г</Value></row> - <row><Value>8</Value><Value>Бугор</Value><Value>бугор</Value><Value></Value></row> - <row><Value>8</Value><Value>Бульвар</Value><Value>б-р</Value><Value>б-р</Value></row> - <row><Value>8</Value><Value>Вал</Value><Value>вал</Value><Value>вал</Value></row> - <row><Value>8</Value><Value>Взвоз</Value><Value>взв.</Value><Value>взв.</Value></row> - <row><Value>8</Value><Value>Въезд</Value><Value>въезд</Value><Value>взд.</Value></row> - <row><Value>8</Value><Value>Гаражно-строительный кооп.</Value><Value>гск</Value><Value></Value></row> - <row><Value>8</Value><Value>Городок</Value><Value>г-к</Value><Value>г-к</Value></row> - <row><Value>8</Value><Value>Дачное неком-е партнерство</Value><Value>днп</Value><Value></Value></row> - <row><Value>8</Value><Value>Деревня</Value><Value>д</Value><Value>д.</Value></row> - <row><Value>8</Value><Value>Дорога</Value><Value>дор</Value><Value>дор.</Value></row> - <row><Value>8</Value><Value>ж/д останов. (обгонный) пункт</Value><Value>ж/д_оп</Value><Value></Value></row> - <row><Value>8</Value><Value>Железнодорожная будка</Value><Value>ж/д_будка</Value><Value>ж/д б-ка</Value></row> - <row><Value>8</Value><Value>Железнодорожная казарма</Value><Value>ж/д_казарм</Value><Value>ж/д к-ма</Value></row> - <row><Value>8</Value><Value>Железнодорожная платформа</Value><Value>ж/д_платф</Value><Value>ж/д пл-ма</Value></row> - <row><Value>8</Value><Value>Железнодорожная станция</Value><Value>ж/д_ст</Value><Value>ж/д ст.</Value></row> - <row><Value>8</Value><Value>Железнодорожный пост</Value><Value>ж/д_пост</Value><Value></Value></row> - <row><Value>8</Value><Value>Железнодорожный разъезд</Value><Value>ж/д_рзд</Value><Value>ж/д рзд.</Value></row> - <row><Value>8</Value><Value>Животноводческая точка</Value><Value>жт</Value><Value></Value></row> - <row><Value>8</Value><Value>Заезд</Value><Value>заезд</Value><Value>ззд.</Value></row> - <row><Value>8</Value><Value>Заезд</Value><Value>ззд.</Value><Value>ззд.</Value></row> - <row><Value>8</Value><Value>Зона</Value><Value>зона</Value><Value></Value></row> - <row><Value>8</Value><Value>Казарма</Value><Value>казарма</Value><Value></Value></row> - <row><Value>8</Value><Value>Квартал</Value><Value>кв-л</Value><Value>кв-л</Value></row> - <row><Value>8</Value><Value>Километр</Value><Value>км</Value><Value>км</Value></row> - <row><Value>8</Value><Value>Кольцо</Value><Value>к-цо</Value><Value>к-цо</Value></row> - <row><Value>8</Value><Value>Кольцо</Value><Value>кольцо</Value><Value>к-цо</Value></row> - <row><Value>8</Value><Value>Спуск</Value><Value>спуск</Value><Value>с-к</Value></row> - <row><Value>8</Value><Value>Коса</Value><Value>коса</Value><Value>коса</Value></row> - <row><Value>8</Value><Value>Линия</Value><Value>линия</Value><Value>лн.</Value></row> - <row><Value>8</Value><Value>Магистраль</Value><Value>мгстр.</Value><Value>мгстр.</Value></row> - <row><Value>8</Value><Value>Маяк</Value><Value>маяк</Value><Value></Value></row> - <row><Value>8</Value><Value>Местечко</Value><Value>м</Value><Value>м-ко</Value></row> - <row><Value>8</Value><Value>Местность</Value><Value>местность</Value><Value></Value></row> - <row><Value>8</Value><Value>Микрорайон</Value><Value>мкр</Value><Value>мкр.</Value></row> - <row><Value>8</Value><Value>Мост</Value><Value>мост</Value><Value></Value></row> - <row><Value>8</Value><Value>Набережная</Value><Value>наб</Value><Value>наб.</Value></row> - <row><Value>8</Value><Value>Набережная</Value><Value>наб.</Value><Value>наб.</Value></row> - <row><Value>8</Value><Value>Населенный пункт</Value><Value>нп</Value><Value>нп.</Value></row> - <row><Value>8</Value><Value>Некоммерческое партнерство</Value><Value>н/п</Value><Value></Value></row> - <row><Value>8</Value><Value>Остров</Value><Value>остров</Value><Value>ост-в</Value></row> - <row><Value>8</Value><Value>Парк</Value><Value>парк</Value><Value>парк</Value></row> - <row><Value>8</Value><Value>Переезд</Value><Value>пер-д</Value><Value>пер-д</Value></row> - <row><Value>8</Value><Value>Переезд</Value><Value>переезд</Value><Value>пер-д</Value></row> - <row><Value>8</Value><Value>Переулок</Value><Value>пер</Value><Value>пер.</Value></row> - <row><Value>8</Value><Value>Переулок</Value><Value>пер.</Value><Value>пер.</Value></row> - <row><Value>8</Value><Value>Планировочный район</Value><Value>пл.р-н</Value><Value></Value></row> - <row><Value>8</Value><Value>Платформа</Value><Value>платф</Value><Value>платф.</Value></row> - <row><Value>8</Value><Value>Площадка</Value><Value>пл-ка</Value><Value>пл-ка</Value></row> - <row><Value>8</Value><Value>Площадь</Value><Value>пл</Value><Value>пл.</Value></row> - <row><Value>8</Value><Value>Полустанок</Value><Value>полустанок</Value><Value></Value></row> - <row><Value>8</Value><Value>Поселок</Value><Value>п</Value><Value>п.</Value></row> - <row><Value>8</Value><Value>Поселок и(при) станция(и)</Value><Value>п/ст</Value><Value></Value></row> - <row><Value>8</Value><Value>Почтовое отделение</Value><Value>п/о</Value><Value></Value></row> - <row><Value>8</Value><Value>Проезд</Value><Value>пр-д</Value><Value>пр-д</Value></row> - <row><Value>8</Value><Value>Проезд</Value><Value>проезд</Value><Value>пр-д</Value></row> - <row><Value>8</Value><Value>Промзона</Value><Value>промзона</Value><Value></Value></row> - <row><Value>8</Value><Value>Просек</Value><Value>пр-к</Value><Value>пр-к</Value></row> - <row><Value>8</Value><Value>Просек</Value><Value>просек</Value><Value>пр-к</Value></row> - <row><Value>8</Value><Value>Просека</Value><Value>пр-ка</Value><Value>пр-ка</Value></row> - <row><Value>8</Value><Value>Просека</Value><Value>просека</Value><Value>пр-ка</Value></row> - <row><Value>8</Value><Value>Проселок</Value><Value>пр-лок</Value><Value>пр-лок</Value></row> - <row><Value>8</Value><Value>Проселок</Value><Value>проселок</Value><Value>пр-лок</Value></row> - <row><Value>8</Value><Value>Проспект</Value><Value>пр-кт</Value><Value>пр-кт</Value></row> - <row><Value>8</Value><Value>Проулок</Value><Value>проул.</Value><Value>проул.</Value></row> - <row><Value>8</Value><Value>Проулок</Value><Value>проулок</Value><Value>проул.</Value></row> - <row><Value>8</Value><Value>Разъезд</Value><Value>рзд</Value><Value>рзд.</Value></row> - <row><Value>8</Value><Value>Разъезд</Value><Value>рзд.</Value><Value>рзд.</Value></row> - <row><Value>8</Value><Value>Ряд(ы)</Value><Value>ряд</Value><Value>ряд</Value></row> - <row><Value>8</Value><Value>Ряды</Value><Value>ряды</Value><Value></Value></row> - <row><Value>8</Value><Value>Сад</Value><Value>сад</Value><Value>сад</Value></row> - <row><Value>8</Value><Value>Садовое неком-е товарищество</Value><Value>снт</Value><Value></Value></row> - <row><Value>8</Value><Value>Садовое товарищество</Value><Value>с/т</Value><Value></Value></row> - <row><Value>8</Value><Value>Село</Value><Value>с</Value><Value>с.</Value></row> - <row><Value>8</Value><Value>Сквер</Value><Value>с-р</Value><Value>сквер</Value></row> - <row><Value>8</Value><Value>Сквер</Value><Value>сквер</Value><Value>сквер</Value></row> - <row><Value>8</Value><Value>Слобода</Value><Value>сл</Value><Value>сл.</Value></row> - <row><Value>8</Value><Value>Спуск</Value><Value>с-к</Value><Value>с-к</Value></row> - <row><Value>8</Value><Value>Линия</Value><Value>лн.</Value><Value>лн.</Value></row> - <row><Value>8</Value><Value>Станция</Value><Value>ст</Value><Value>ст.</Value></row> - <row><Value>8</Value><Value>Строение</Value><Value>стр</Value><Value>стр.</Value></row> - <row><Value>8</Value><Value>Съезд</Value><Value>сзд.</Value><Value>сзд.</Value></row> - <row><Value>8</Value><Value>Территория</Value><Value>тер</Value><Value>тер.</Value></row> - <row><Value>8</Value><Value>Территория ДНТ</Value><Value>тер. ДНТ</Value><Value></Value></row> - <row><Value>8</Value><Value>Территория СНТ</Value><Value>тер. СНТ</Value><Value></Value></row> - <row><Value>8</Value><Value>Тракт</Value><Value>тракт</Value><Value>тракт</Value></row> - <row><Value>8</Value><Value>Тупик</Value><Value>туп</Value><Value>туп.</Value></row> - <row><Value>8</Value><Value>Улица</Value><Value>ул</Value><Value>ул.</Value></row> - <row><Value>8</Value><Value>Улица</Value><Value>ул.</Value><Value>ул.</Value></row> - <row><Value>8</Value><Value>Участок</Value><Value>уч-к</Value><Value></Value></row> - <row><Value>8</Value><Value>Ферма</Value><Value>ферма</Value><Value></Value></row> - <row><Value>8</Value><Value>Фермерское хозяйство</Value><Value>ф/х</Value><Value></Value></row> - <row><Value>9</Value><Value>Земельный участок</Value><Value>з/у</Value><Value>з/у</Value></row> - <row><Value>15</Value><Value>Гаражно-строительный кооп.</Value><Value>гск</Value><Value></Value></row> - <row><Value>15</Value><Value>Дачное неком-е партнерство</Value><Value>днп</Value><Value></Value></row> - <row><Value>15</Value><Value>Местность</Value><Value>местность</Value><Value></Value></row> - <row><Value>15</Value><Value>Микрорайон</Value><Value>мкр</Value><Value>мкр.</Value></row> - <row><Value>15</Value><Value>Некоммерческое партнерство</Value><Value>н/п</Value><Value></Value></row> - <row><Value>15</Value><Value>Промышленная зона</Value><Value>промзона</Value><Value></Value></row> - <row><Value>15</Value><Value>Сад</Value><Value>сад</Value><Value>сад</Value></row> - <row><Value>15</Value><Value>Садовое товарищество</Value><Value>снт</Value><Value></Value></row> - <row><Value>15</Value><Value>Территория</Value><Value>тер</Value><Value>тер.</Value></row> - <row><Value>15</Value><Value>Фермерское хозяйство</Value><Value>ф/х</Value><Value></Value></row> - <row><Value>16</Value><Value>Аал</Value><Value>аал</Value><Value>аал</Value></row> - <row><Value>16</Value><Value>Абонентский ящик</Value><Value>а/я</Value><Value></Value></row> - <row><Value>16</Value><Value>Аллея</Value><Value>аллея</Value><Value>ал.</Value></row> - <row><Value>16</Value><Value>Арбан</Value><Value>арбан</Value><Value>арбан</Value></row> - <row><Value>16</Value><Value>Аул</Value><Value>аул</Value><Value>аул</Value></row> - <row><Value>16</Value><Value>Берег</Value><Value>берег</Value><Value>б-г</Value></row> - <row><Value>16</Value><Value>Бульвар</Value><Value>б-р</Value><Value>б-р</Value></row> - <row><Value>16</Value><Value>Вал</Value><Value>вал</Value><Value>вал</Value></row> - <row><Value>16</Value><Value>Въезд</Value><Value>въезд</Value><Value>взд.</Value></row> - <row><Value>16</Value><Value>Выселки(ок)</Value><Value>высел</Value><Value></Value></row> - <row><Value>16</Value><Value>Гаражно-строит-ный кооператив</Value><Value>гск</Value><Value></Value></row> - <row><Value>16</Value><Value>Городок</Value><Value>г-к</Value><Value>г-к</Value></row> - <row><Value>16</Value><Value>Деревня</Value><Value>д</Value><Value>д.</Value></row> - <row><Value>16</Value><Value>Дорога</Value><Value>дор</Value><Value>дор.</Value></row> - <row><Value>16</Value><Value>ж/д останов. (обгонный) пункт</Value><Value>ж/д_оп</Value><Value></Value></row> - <row><Value>16</Value><Value>Железнодорожная будка</Value><Value>ж/д_будка</Value><Value>ж/д б-ка</Value></row> - <row><Value>16</Value><Value>Железнодорожная казарма</Value><Value>ж/д_казарм</Value><Value>ж/д к-ма</Value></row> - <row><Value>16</Value><Value>Железнодорожная платформа</Value><Value>ж/д_платф</Value><Value>ж/д пл-ма</Value></row> - <row><Value>16</Value><Value>Железнодорожная станция</Value><Value>ж/д_ст</Value><Value>ж/д ст.</Value></row> - <row><Value>16</Value><Value>Железнодорожный пост</Value><Value>ж/д_пост</Value><Value></Value></row> - <row><Value>16</Value><Value>Железнодорожный разъезд</Value><Value>ж/д_рзд</Value><Value>ж/д рзд.</Value></row> - <row><Value>16</Value><Value>Животноводческая точка</Value><Value>жт</Value><Value></Value></row> - <row><Value>16</Value><Value>Заезд</Value><Value>заезд</Value><Value>ззд.</Value></row> - <row><Value>16</Value><Value>Зона</Value><Value>зона</Value><Value></Value></row> - <row><Value>16</Value><Value>Казарма</Value><Value>казарма</Value><Value></Value></row> - <row><Value>16</Value><Value>Квартал</Value><Value>кв-л</Value><Value>кв-л</Value></row> - <row><Value>16</Value><Value>Километр</Value><Value>км</Value><Value>км</Value></row> - <row><Value>16</Value><Value>Кольцо</Value><Value>кольцо</Value><Value>к-цо</Value></row> - <row><Value>16</Value><Value>Коса</Value><Value>коса</Value><Value>коса</Value></row> - <row><Value>16</Value><Value>Линия</Value><Value>линия</Value><Value>лн.</Value></row> - <row><Value>16</Value><Value>Местечко</Value><Value>м</Value><Value>м-ко</Value></row> - <row><Value>16</Value><Value>Микрорайон</Value><Value>мкр</Value><Value>мкр.</Value></row> - <row><Value>16</Value><Value>Мост</Value><Value>мост</Value><Value></Value></row> - <row><Value>16</Value><Value>Набережная</Value><Value>наб</Value><Value>наб.</Value></row> - <row><Value>16</Value><Value>Населенный пункт</Value><Value>нп</Value><Value>нп.</Value></row> - <row><Value>16</Value><Value>Остров</Value><Value>остров</Value><Value>ост-в</Value></row> - <row><Value>16</Value><Value>Парк</Value><Value>парк</Value><Value>парк</Value></row> - <row><Value>16</Value><Value>Переезд</Value><Value>переезд</Value><Value>пер-д</Value></row> - <row><Value>16</Value><Value>Переулок</Value><Value>пер</Value><Value>пер.</Value></row> - <row><Value>16</Value><Value>Планировочный район</Value><Value>пл.р-н</Value><Value></Value></row> - <row><Value>16</Value><Value>Платформа</Value><Value>платф</Value><Value>платф.</Value></row> - <row><Value>16</Value><Value>Площадка</Value><Value>пл-ка</Value><Value>пл-ка</Value></row> - <row><Value>16</Value><Value>Площадь</Value><Value>пл</Value><Value>пл.</Value></row> - <row><Value>16</Value><Value>Поселок</Value><Value>п</Value><Value>п.</Value></row> - <row><Value>16</Value><Value>Поселок и(при) станция(и)</Value><Value>п/ст</Value><Value></Value></row> - <row><Value>16</Value><Value>Починок</Value><Value>починок</Value><Value>п-к</Value></row> - <row><Value>16</Value><Value>Почтовое отделение</Value><Value>п/о</Value><Value></Value></row> - <row><Value>16</Value><Value>Проезд</Value><Value>проезд</Value><Value>пр-д</Value></row> - <row><Value>16</Value><Value>Просек</Value><Value>просек</Value><Value>пр-к</Value></row> - <row><Value>16</Value><Value>Просека</Value><Value>просека</Value><Value>пр-ка</Value></row> - <row><Value>16</Value><Value>Проселок</Value><Value>проселок</Value><Value>пр-лок</Value></row> - <row><Value>16</Value><Value>Проспект</Value><Value>пр-кт</Value><Value>пр-кт</Value></row> - <row><Value>16</Value><Value>Проулок</Value><Value>проулок</Value><Value>проул.</Value></row> - <row><Value>16</Value><Value>Разъезд</Value><Value>рзд</Value><Value>рзд.</Value></row> - <row><Value>16</Value><Value>Ряды</Value><Value>ряды</Value><Value></Value></row> - <row><Value>16</Value><Value>Сад</Value><Value>сад</Value><Value>сад</Value></row> - <row><Value>16</Value><Value>Садовое неком-е товарищество</Value><Value>снт</Value><Value></Value></row> - <row><Value>16</Value><Value>Село</Value><Value>с</Value><Value>с.</Value></row> - <row><Value>16</Value><Value>Сквер</Value><Value>сквер</Value><Value>сквер</Value></row> - <row><Value>16</Value><Value>Слобода</Value><Value>сл</Value><Value>сл.</Value></row> - <row><Value>16</Value><Value>Спуск</Value><Value>спуск</Value><Value>с-к</Value></row> - <row><Value>16</Value><Value>Станция</Value><Value>ст</Value><Value>ст.</Value></row> - <row><Value>16</Value><Value>Строение</Value><Value>стр</Value><Value>стр.</Value></row> - <row><Value>16</Value><Value>Территория</Value><Value>тер</Value><Value>тер.</Value></row> - <row><Value>16</Value><Value>Тракт</Value><Value>тракт</Value><Value>тракт</Value></row> - <row><Value>16</Value><Value>Тупик</Value><Value>туп</Value><Value>туп.</Value></row> - <row><Value>16</Value><Value>Улица</Value><Value>ул</Value><Value>ул.</Value></row> - <row><Value>16</Value><Value>Участок</Value><Value>уч-к</Value><Value></Value></row> - <row><Value>16</Value><Value>Ферма</Value><Value>ферма</Value><Value></Value></row> - <row><Value>16</Value><Value>Хутор</Value><Value>х</Value><Value>х.</Value></row> - <row><Value>16</Value><Value>Шоссе</Value><Value>ш</Value><Value>ш.</Value></row> - <row><Value>17</Value><Value>Машино-место</Value><Value>м/м</Value><Value>м/м</Value></row> + <row><Value>1</Value><Value>Автономный округ</Value><Value>а.окр.</Value><Value>а.окр.</Value><Value>1</Value></row> + <row><Value>1</Value><Value>Автономная область</Value><Value>Аобл</Value><Value>а.обл.</Value><Value>0</Value></row> + <row><Value>1</Value><Value>Автономная область</Value><Value>а.обл.</Value><Value>а.обл.</Value><Value>1</Value></row> + <row><Value>1</Value><Value>Область</Value><Value>обл.</Value><Value>обл.</Value><Value>1</Value><Value>1</Value></row> + <row><Value>1</Value><Value>Автономный округ</Value><Value>АО</Value><Value>а.окр.</Value><Value>0</Value></row> + <row><Value>1</Value><Value>Город</Value><Value>г.</Value><Value>г.</Value><Value>1</Value></row> + <row><Value>1</Value><Value>Город</Value><Value>г</Value><Value>г.</Value><Value>0</Value></row> + <row><Value>1</Value><Value>Город федерального значения</Value><Value>г.ф.з.</Value><Value>г.ф.з.</Value><Value>1</Value></row> + <row><Value>1</Value><Value>Край</Value><Value>край</Value><Value>край</Value><Value>1</Value></row> + <row><Value>1</Value><Value>Область</Value><Value>обл</Value><Value>обл.</Value><Value>0</Value></row> + <row><Value>1</Value><Value>Округ</Value><Value>округ</Value><Value>округ</Value><Value>0</Value></row> + <row><Value>1</Value><Value>Республика</Value><Value>Респ</Value><Value>респ.</Value><Value>0</Value></row> + <row><Value>1</Value><Value>Республика</Value><Value>респ.</Value><Value>респ.</Value><Value>1</Value></row> + <row><Value>1</Value><Value>Чувашия</Value><Value>Чувашия</Value><Value>Чувашия</Value><Value>0</Value></row> + <row><Value>2</Value><Value>Поселение</Value><Value>пос.</Value><Value>пос.</Value><Value>1</Value></row> + <row><Value>2</Value><Value>Район</Value><Value>р-н</Value><Value>р-н</Value><Value>1</Value><Value>1</Value></row> + <row><Value>2</Value><Value>Улус</Value><Value>у.</Value><Value>у.</Value><Value>1</Value></row> + <row><Value>2</Value><Value>Улус</Value><Value>у</Value><Value>у.</Value><Value>0</Value></row> + <row><Value>2</Value><Value>Автономный округ</Value><Value>АО</Value><Value>а.окр.</Value><Value>0</Value></row> + <row><Value>2</Value><Value>Город</Value><Value>г.</Value><Value>г.</Value><Value>1</Value></row> + <row><Value>2</Value><Value>Город</Value><Value>г</Value><Value>г.</Value><Value>0</Value></row> + <row><Value>2</Value><Value>Городской округ</Value><Value>г.о.</Value><Value>г.о.</Value><Value>0</Value></row> + <row><Value>2</Value><Value>Поселение</Value><Value>п</Value><Value>пос.</Value><Value>0</Value></row> + <row><Value>3</Value><Value>Муниципальный округ</Value><Value>м.о.</Value><Value>м.о.</Value><Value>1</Value></row> + <row><Value>3</Value><Value>Муниципальный район</Value><Value>м.р-н</Value><Value>м.р-н</Value><Value>1</Value></row> + <row><Value>3</Value><Value>Федеральная территория</Value><Value>ф.т.</Value><Value>ф.т.</Value><Value>1</Value></row> + <row><Value>3</Value><Value>Городской округ</Value><Value>г.о.</Value><Value>г.о.</Value><Value>1</Value></row> + <row><Value>3</Value><Value>внутригородская территория (внутригородское муниципальное образование) города федерального значения</Value><Value>вн.тер.г.</Value><Value>вн.тер.г.</Value><Value>1</Value></row> + <row><Value>4</Value><Value>внутригородской район</Value><Value>вн.р-н</Value><Value>вн.р-н</Value><Value>1</Value></row> + <row><Value>4</Value><Value>городское поселение</Value><Value>г.п.</Value><Value>г.п.</Value><Value>1</Value></row> + <row><Value>4</Value><Value>межселенная территория</Value><Value>межсел.тер.</Value><Value>межсел.тер.</Value><Value>1</Value></row> + <row><Value>4</Value><Value>сельское поселение</Value><Value>с.п.</Value><Value>с.п.</Value><Value>1</Value></row> + <row><Value>5</Value><Value>Сельское поселение</Value><Value>с/п</Value><Value>с.п.</Value><Value>0</Value></row> + <row><Value>5</Value><Value>Сельсовет</Value><Value>с/с</Value><Value>с/с</Value><Value>1</Value></row> + <row><Value>5</Value><Value>Территория</Value><Value>тер.</Value><Value>тер.</Value><Value>0</Value></row> + <row><Value>5</Value><Value>Территория</Value><Value>тер</Value><Value>тер.</Value><Value>0</Value></row> + <row><Value>5</Value><Value>Волость</Value><Value>волость</Value><Value>волость</Value><Value>0</Value></row> + <row><Value>5</Value><Value>Город</Value><Value>г.</Value><Value>г.</Value><Value>1</Value></row> + <row><Value>5</Value><Value>Город</Value><Value>г</Value><Value>г.</Value><Value>0</Value></row> + <row><Value>5</Value><Value>Дачный поселок</Value><Value>дп</Value><Value>дп.</Value><Value>0</Value></row> + <row><Value>5</Value><Value>Массив</Value><Value>м-в</Value><Value>м-в</Value><Value>0</Value></row> + <row><Value>5</Value><Value>Массив</Value><Value>массив</Value><Value>массив</Value><Value>0</Value></row> + <row><Value>5</Value><Value>Поселок</Value><Value>п</Value><Value>п.</Value><Value>0</Value></row> + <row><Value>5</Value><Value>Поселок</Value><Value>п.</Value><Value>п.</Value><Value>1</Value></row> + <row><Value>5</Value><Value>Поселок городского типа</Value><Value>пгт</Value><Value>пгт.</Value><Value>0</Value></row> + <row><Value>5</Value><Value>Поселок городского типа</Value><Value>пгт.</Value><Value>пгт.</Value><Value>1</Value></row> + <row><Value>5</Value><Value>Почтовое отделение</Value><Value>п/о</Value><Value>п/о</Value><Value>0</Value></row> + <row><Value>5</Value><Value>Рабочий поселок</Value><Value>рп</Value><Value>рп.</Value><Value>0</Value></row> + <row><Value>5</Value><Value>Рабочий поселок</Value><Value>рп.</Value><Value>рп.</Value><Value>1</Value></row> + <row><Value>5</Value><Value>Село</Value><Value>с.</Value><Value>с.</Value><Value>1</Value></row> + <row><Value>5</Value><Value>Село</Value><Value>с</Value><Value>с.</Value><Value>0</Value></row> + <row><Value>5</Value><Value>Сельская администрация</Value><Value>с/а</Value><Value>с/а</Value><Value>0</Value></row> + <row><Value>5</Value><Value>Сельский округ</Value><Value>с/о</Value><Value>с/о</Value><Value>0</Value></row> + <row><Value>5</Value><Value>Сельское муницип.образование</Value><Value>с/мо</Value><Value>с/мо</Value><Value>0</Value></row> + <row><Value>5</Value><Value>Сельское поселение</Value><Value>с.п.</Value><Value>с.п.</Value><Value>0</Value></row> + <row><Value>6</Value><Value>Улус</Value><Value>у</Value><Value>у.</Value><Value>0</Value></row> + <row><Value>6</Value><Value>Хутор</Value><Value>х.</Value><Value>х.</Value><Value>1</Value></row> + <row><Value>6</Value><Value>Хутор</Value><Value>х</Value><Value>х.</Value><Value>0</Value></row> + <row><Value>6</Value><Value>Населенный пункт</Value><Value>нп</Value><Value>нп.</Value><Value>0</Value></row> + <row><Value>6</Value><Value>Аал</Value><Value>аал</Value><Value>аал</Value><Value>1</Value></row> + <row><Value>6</Value><Value>Автодорога</Value><Value>автодорога</Value><Value>автодорога</Value><Value>0</Value></row> + <row><Value>6</Value><Value>Арбан</Value><Value>арбан</Value><Value>арбан</Value><Value>1</Value></row> + <row><Value>6</Value><Value>Аул</Value><Value>аул</Value><Value>аул</Value><Value>1</Value></row> + <row><Value>6</Value><Value>Выселки</Value><Value>в-ки</Value><Value>в-ки</Value><Value>1</Value></row> + <row><Value>6</Value><Value>Выселки(ок)</Value><Value>высел</Value><Value>высел</Value><Value>0</Value></row> + <row><Value>6</Value><Value>Город</Value><Value>г.</Value><Value>г.</Value><Value>1</Value></row> + <row><Value>6</Value><Value>Город</Value><Value>г</Value><Value>г.</Value><Value>0</Value></row> + <row><Value>6</Value><Value>Городок</Value><Value>г-к</Value><Value>г-к</Value><Value>1</Value></row> + <row><Value>6</Value><Value>Городской поселок</Value><Value>гп.</Value><Value>гп.</Value><Value>1</Value></row> + <row><Value>6</Value><Value>Городской поселок</Value><Value>гп</Value><Value>гп.</Value><Value>0</Value></row> + <row><Value>6</Value><Value>Дачный поселок</Value><Value>дп</Value><Value>дп.</Value><Value>0</Value></row> + <row><Value>6</Value><Value>Дачный поселок</Value><Value>дп.</Value><Value>дп.</Value><Value>1</Value></row> + <row><Value>6</Value><Value>Деревня</Value><Value>д.</Value><Value>д.</Value><Value>1</Value></row> + <row><Value>6</Value><Value>Деревня</Value><Value>д</Value><Value>д.</Value><Value>0</Value></row> + <row><Value>6</Value><Value>ж/д останов. (обгонный) пункт</Value><Value>ж/д_оп</Value><Value>ж/д_оп</Value><Value>0</Value></row> + <row><Value>6</Value><Value>Железнодорожная будка</Value><Value>ж/д б-ка</Value><Value>ж/д б-ка</Value><Value>1</Value></row> + <row><Value>6</Value><Value>Железнодорожная будка</Value><Value>ж/д_будка</Value><Value>ж/д б-ка</Value><Value>0</Value></row> + <row><Value>6</Value><Value>Железнодорожная ветка</Value><Value>ж/д в-ка</Value><Value>ж/д в-ка</Value><Value>1</Value></row> + <row><Value>6</Value><Value>Железнодорожная казарма</Value><Value>ж/д к-ма</Value><Value>ж/д к-ма</Value><Value>1</Value></row> + <row><Value>6</Value><Value>Железнодорожная казарма</Value><Value>ж/д_казарм</Value><Value>ж/д к-ма</Value><Value>0</Value></row> + <row><Value>6</Value><Value>Железнодорожная платформа</Value><Value>ж/д пл-ма</Value><Value>ж/д пл-ма</Value><Value>1</Value></row> + <row><Value>6</Value><Value>Железнодорожная платформа</Value><Value>ж/д_платф</Value><Value>ж/д пл-ма</Value><Value>0</Value></row> + <row><Value>6</Value><Value>Железнодорожная площадка</Value><Value>ж/д пл-ка</Value><Value>ж/д пл-ка</Value><Value>1</Value></row> + <row><Value>6</Value><Value>Железнодорожная станция</Value><Value>ж/д ст.</Value><Value>ж/д ст.</Value><Value>1</Value></row> + <row><Value>6</Value><Value>Железнодорожная станция</Value><Value>ж/д_ст</Value><Value>ж/д ст.</Value><Value>0</Value></row> + <row><Value>6</Value><Value>Железнодорожная станция</Value><Value>ж/д ст</Value><Value>ж/д ст.</Value><Value>0</Value></row> + <row><Value>6</Value><Value>Железнодорожный блокпост</Value><Value>ж/д бл-ст</Value><Value>ж/д бл-ст</Value><Value>1</Value></row> + <row><Value>6</Value><Value>Железнодорожный комбинат</Value><Value>ж/д к-т</Value><Value>ж/д к-т</Value><Value>1</Value></row> + <row><Value>6</Value><Value>Железнодорожный остановочный пункт</Value><Value>ж/д о.п.</Value><Value>ж/д о.п.</Value><Value>1</Value></row> + <row><Value>6</Value><Value>Железнодорожный пост</Value><Value>ж/д_пост</Value><Value>ж/д_пост</Value><Value>0</Value></row> + <row><Value>6</Value><Value>Железнодорожный путевой пост</Value><Value>ж/д п.п.</Value><Value>ж/д п.п.</Value><Value>1</Value></row> + <row><Value>6</Value><Value>Железнодорожный разъезд</Value><Value>ж/д рзд.</Value><Value>ж/д рзд.</Value><Value>1</Value></row> + <row><Value>6</Value><Value>Железнодорожный разъезд</Value><Value>ж/д рзд</Value><Value>ж/д рзд.</Value><Value>0</Value></row> + <row><Value>6</Value><Value>Железнодорожный разъезд</Value><Value>ж/д_рзд</Value><Value>ж/д рзд.</Value><Value>0</Value></row> + <row><Value>6</Value><Value>Жилая зона</Value><Value>жилзона</Value><Value>жилзона</Value><Value>0</Value></row> + <row><Value>6</Value><Value>Жилой район</Value><Value>ж/р</Value><Value>ж/р</Value><Value>0</Value></row> + <row><Value>6</Value><Value>Жилой район</Value><Value>жилрайон</Value><Value>ж/р</Value><Value>0</Value></row> + <row><Value>6</Value><Value>Заимка</Value><Value>заимка</Value><Value>з-ка</Value><Value>0</Value></row> + <row><Value>6</Value><Value>Заимка</Value><Value>з-ка</Value><Value>з-ка</Value><Value>1</Value></row> + <row><Value>6</Value><Value>Зимовье</Value><Value>зим.</Value><Value>зим.</Value><Value>1</Value></row> + <row><Value>6</Value><Value>Казарма</Value><Value>казарма</Value><Value>казарма</Value><Value>0</Value></row> + <row><Value>6</Value><Value>Квартал</Value><Value>кв-л</Value><Value>кв-л</Value><Value>0</Value></row> + <row><Value>6</Value><Value>Кишлак</Value><Value>киш.</Value><Value>киш.</Value><Value>1</Value></row> + <row><Value>6</Value><Value>Кордон</Value><Value>кордон</Value><Value>кордон</Value><Value>0</Value></row> + <row><Value>6</Value><Value>Курортный поселок</Value><Value>кп.</Value><Value>кп.</Value><Value>1</Value></row> + <row><Value>6</Value><Value>Курортный поселок</Value><Value>кп</Value><Value>кп.</Value><Value>0</Value></row> + <row><Value>6</Value><Value>Леспромхоз</Value><Value>лпх</Value><Value>лпх</Value><Value>0</Value></row> + <row><Value>6</Value><Value>Массив</Value><Value>массив</Value><Value>массив</Value><Value>0</Value></row> + <row><Value>6</Value><Value>Массив</Value><Value>м-в</Value><Value>м-в</Value><Value>0</Value></row> + <row><Value>6</Value><Value>Местечко</Value><Value>м</Value><Value>м-ко</Value><Value>0</Value></row> + <row><Value>6</Value><Value>Местечко</Value><Value>м-ко</Value><Value>м-ко</Value><Value>1</Value></row> + <row><Value>6</Value><Value>Микрорайон</Value><Value>мкр</Value><Value>мкр.</Value><Value>0</Value></row> + <row><Value>6</Value><Value>Микрорайон</Value><Value>мкр.</Value><Value>мкр.</Value><Value>0</Value></row> + <row><Value>6</Value><Value>Населенный пункт</Value><Value>нп.</Value><Value>нп.</Value><Value>1</Value></row> + <row><Value>6</Value><Value>Остров</Value><Value>ост-в</Value><Value>ост-в</Value><Value>0</Value></row> + <row><Value>6</Value><Value>Остров</Value><Value>остров</Value><Value>ост-в</Value><Value>0</Value></row> + <row><Value>6</Value><Value>Планировочный район</Value><Value>пл.р-н</Value><Value>пл.р-н</Value><Value>0</Value></row> + <row><Value>6</Value><Value>Погост</Value><Value>погост</Value><Value>погост</Value><Value>0</Value></row> + <row><Value>6</Value><Value>Поселок</Value><Value>п.</Value><Value>п.</Value><Value>1</Value></row> + <row><Value>6</Value><Value>Поселок</Value><Value>п</Value><Value>п.</Value><Value>0</Value></row> + <row><Value>6</Value><Value>Поселок городского типа</Value><Value>пгт</Value><Value>пгт.</Value><Value>0</Value></row> + <row><Value>6</Value><Value>Поселок городского типа</Value><Value>пгт.</Value><Value>пгт.</Value><Value>1</Value></row> + <row><Value>6</Value><Value>Поселок и(при) станция(и)</Value><Value>п/ст</Value><Value>п/ст</Value><Value>0</Value></row> + <row><Value>6</Value><Value>Поселок при железнодорожной станции</Value><Value>п. ж/д ст.</Value><Value>п. ж/д ст.</Value><Value>1</Value></row> + <row><Value>6</Value><Value>Поселок при станции (поселок станции)</Value><Value>п. ст.</Value><Value>п. ст.</Value><Value>1</Value></row> + <row><Value>6</Value><Value>Поселок разъезда</Value><Value>пос.рзд.</Value><Value>пос.рзд.</Value><Value>0</Value></row> + <row><Value>6</Value><Value>Поселок разъезда</Value><Value>пос.рзд</Value><Value>пос.рзд</Value><Value>0</Value></row> + <row><Value>6</Value><Value>Починок</Value><Value>починок</Value><Value>п-к</Value><Value>0</Value></row> + <row><Value>6</Value><Value>Починок</Value><Value>п-к</Value><Value>п-к</Value><Value>1</Value></row> + <row><Value>6</Value><Value>Почтовое отделение</Value><Value>п/о</Value><Value>п/о</Value><Value>0</Value></row> + <row><Value>6</Value><Value>Промышленная зона</Value><Value>промзона</Value><Value>промзона</Value><Value>0</Value></row> + <row><Value>6</Value><Value>Рабочий поселок</Value><Value>рп.</Value><Value>рп.</Value><Value>1</Value></row> + <row><Value>6</Value><Value>Рабочий поселок</Value><Value>рп</Value><Value>рп.</Value><Value>0</Value></row> + <row><Value>6</Value><Value>Разъезд</Value><Value>рзд.</Value><Value>рзд.</Value><Value>1</Value></row> + <row><Value>6</Value><Value>Разъезд</Value><Value>рзд</Value><Value>рзд.</Value><Value>0</Value></row> + <row><Value>6</Value><Value>Садовое неком-е товарищество</Value><Value>снт</Value><Value>снт</Value><Value>0</Value></row> + <row><Value>6</Value><Value>Село</Value><Value>с.</Value><Value>с.</Value><Value>1</Value></row> + <row><Value>6</Value><Value>Село</Value><Value>с</Value><Value>с.</Value><Value>0</Value></row> + <row><Value>6</Value><Value>Сельский поселок</Value><Value>сп.</Value><Value>сп.</Value><Value>1</Value></row> + <row><Value>6</Value><Value>Сельский поселок</Value><Value>сп</Value><Value>сп.</Value><Value>0</Value></row> + <row><Value>6</Value><Value>Слобода</Value><Value>сл</Value><Value>сл.</Value><Value>0</Value></row> + <row><Value>6</Value><Value>Слобода</Value><Value>сл.</Value><Value>сл.</Value><Value>1</Value></row> + <row><Value>6</Value><Value>Станица</Value><Value>ст-ца</Value><Value>ст-ца</Value><Value>1</Value></row> + <row><Value>6</Value><Value>Станция</Value><Value>ст</Value><Value>ст.</Value><Value>0</Value></row> + <row><Value>6</Value><Value>Станция</Value><Value>ст.</Value><Value>ст.</Value><Value>1</Value></row> + <row><Value>6</Value><Value>Территория</Value><Value>тер.</Value><Value>тер.</Value><Value>0</Value></row> + <row><Value>6</Value><Value>Территория</Value><Value>тер</Value><Value>тер.</Value><Value>0</Value></row> + <row><Value>6</Value><Value>Улус</Value><Value>у.</Value><Value>у.</Value><Value>1</Value></row> + <row><Value>7</Value><Value>Фермерское хозяйство</Value><Value>ф/х</Value><Value>ф/х</Value><Value>0</Value></row> + <row><Value>7</Value><Value>Хутор</Value><Value>х.</Value><Value>х.</Value><Value>0</Value></row> + <row><Value>7</Value><Value>Шоссе</Value><Value>ш.</Value><Value>ш.</Value><Value>1</Value></row> + <row><Value>7</Value><Value>Юрты</Value><Value>ю.</Value><Value>ю.</Value><Value>1</Value></row> + <row><Value>7</Value><Value>Аал</Value><Value>аал</Value><Value>аал</Value><Value>0</Value></row> + <row><Value>7</Value><Value>Абонентский ящик</Value><Value>а/я</Value><Value>а/я</Value><Value>0</Value></row> + <row><Value>7</Value><Value>Аллея</Value><Value>ал.</Value><Value>ал.</Value><Value>1</Value></row> + <row><Value>7</Value><Value>Берег</Value><Value>б-г</Value><Value>б-г</Value><Value>1</Value></row> + <row><Value>7</Value><Value>Бульвар</Value><Value>б-р</Value><Value>б-р</Value><Value>1</Value></row> + <row><Value>7</Value><Value>Вал</Value><Value>вал</Value><Value>вал</Value><Value>1</Value></row> + <row><Value>7</Value><Value>Гаражно-строительный кооп.</Value><Value>гск</Value><Value>гск</Value><Value>0</Value></row> + <row><Value>7</Value><Value>Городок</Value><Value>г-к</Value><Value>г-к</Value><Value>0</Value></row> + <row><Value>7</Value><Value>Дачное неком-е партнерство</Value><Value>днп</Value><Value>днп</Value><Value>0</Value></row> + <row><Value>7</Value><Value>Деревня</Value><Value>д.</Value><Value>д.</Value><Value>0</Value></row> + <row><Value>7</Value><Value>Дорога</Value><Value>дор.</Value><Value>дор.</Value><Value>1</Value></row> + <row><Value>7</Value><Value>Железнодорожная казарма</Value><Value>ж/д к-ма</Value><Value>ж/д к-ма</Value><Value>0</Value></row> + <row><Value>7</Value><Value>Железнодорожная платформа</Value><Value>ж/д пл-ма</Value><Value>ж/д пл-ма</Value><Value>0</Value></row> + <row><Value>7</Value><Value>Железнодорожная станция</Value><Value>ж/д ст.</Value><Value>ж/д ст.</Value><Value>0</Value></row> + <row><Value>7</Value><Value>Жилой район</Value><Value>ж/р</Value><Value>ж/р</Value><Value>1</Value></row> + <row><Value>7</Value><Value>Зона</Value><Value>з.</Value><Value>зона</Value><Value>1</Value></row> + <row><Value>7</Value><Value>Зона (массив)</Value><Value>зона</Value><Value>зона</Value><Value>0</Value></row> + <row><Value>7</Value><Value>Квартал</Value><Value>кв-л</Value><Value>кв-л</Value><Value>1</Value></row> + <row><Value>7</Value><Value>Километр</Value><Value>км</Value><Value>км</Value><Value>0</Value></row> + <row><Value>7</Value><Value>Массив</Value><Value>м-в</Value><Value>м-в</Value><Value>1</Value></row> + <row><Value>7</Value><Value>Местечко</Value><Value>м-ко</Value><Value>м-ко</Value><Value>0</Value></row> + <row><Value>7</Value><Value>Местность</Value><Value>местность</Value><Value>местность</Value><Value>0</Value></row> + <row><Value>7</Value><Value>Месторождение</Value><Value>мр.</Value><Value>мр.</Value><Value>0</Value></row> + <row><Value>7</Value><Value>Месторождение</Value><Value>месторожд.</Value><Value>месторожд.</Value><Value>1</Value></row> + <row><Value>7</Value><Value>Микрорайон</Value><Value>мкр</Value><Value>мкр.</Value><Value>0</Value></row> + <row><Value>7</Value><Value>Микрорайон</Value><Value>мкр.</Value><Value>мкр.</Value><Value>1</Value></row> + <row><Value>7</Value><Value>Набережная</Value><Value>наб.</Value><Value>наб.</Value><Value>1</Value></row> + <row><Value>7</Value><Value>Некоммерческое партнерство</Value><Value>н/п</Value><Value>н/п</Value><Value>0</Value></row> + <row><Value>7</Value><Value>Остров</Value><Value>ост-в</Value><Value>ост-в</Value><Value>1</Value></row> + <row><Value>7</Value><Value>Парк</Value><Value>парк</Value><Value>парк</Value><Value>1</Value></row> + <row><Value>7</Value><Value>Переулок</Value><Value>пер.</Value><Value>пер.</Value><Value>1</Value></row> + <row><Value>7</Value><Value>Платформа</Value><Value>платф.</Value><Value>платф.</Value><Value>1</Value></row> + <row><Value>7</Value><Value>Площадка</Value><Value>пл-ка</Value><Value>пл-ка</Value><Value>1</Value></row> + <row><Value>7</Value><Value>Площадь</Value><Value>пл.</Value><Value>пл.</Value><Value>1</Value></row> + <row><Value>7</Value><Value>Порт</Value><Value>порт</Value><Value>порт</Value><Value>1</Value></row> + <row><Value>7</Value><Value>Поселок</Value><Value>п.</Value><Value>п.</Value><Value>0</Value></row> + <row><Value>7</Value><Value>Проезд</Value><Value>пр-д</Value><Value>пр-д</Value><Value>1</Value></row> + <row><Value>7</Value><Value>Промышленная зона</Value><Value>промзона</Value><Value>промзона</Value><Value>0</Value></row> + <row><Value>7</Value><Value>Промышленный район</Value><Value>п/р</Value><Value>п/р</Value><Value>1</Value></row> + <row><Value>7</Value><Value>Проспект</Value><Value>пр-кт</Value><Value>пр-кт</Value><Value>1</Value></row> + <row><Value>7</Value><Value>Разъезд</Value><Value>рзд.</Value><Value>рзд.</Value><Value>1</Value></row> + <row><Value>7</Value><Value>Район</Value><Value>р-н</Value><Value>р-н</Value><Value>1</Value></row> + <row><Value>7</Value><Value>Сад</Value><Value>сад</Value><Value>сад</Value><Value>1</Value></row> + <row><Value>7</Value><Value>Садовое товарищество</Value><Value>с/т</Value><Value>с/т</Value><Value>0</Value></row> + <row><Value>7</Value><Value>Садовое товарищество</Value><Value>снт</Value><Value>снт</Value><Value>0</Value></row> + <row><Value>7</Value><Value>Сквер</Value><Value>с-р</Value><Value>сквер</Value><Value>0</Value></row> + <row><Value>7</Value><Value>Сквер</Value><Value>сквер</Value><Value>сквер</Value><Value>1</Value></row> + <row><Value>7</Value><Value>Станция</Value><Value>ст.</Value><Value>ст.</Value><Value>0</Value></row> + <row><Value>7</Value><Value>Строение</Value><Value>стр.</Value><Value>стр.</Value><Value>0</Value></row> + <row><Value>7</Value><Value>Территория</Value><Value>тер.</Value><Value>тер.</Value><Value>1</Value></row> + <row><Value>7</Value><Value>Территория</Value><Value>тер</Value><Value>тер.</Value><Value>0</Value></row> + <row><Value>7</Value><Value>Территория ГСК</Value><Value>тер. ГСК</Value><Value>тер. ГСК</Value><Value>1</Value></row> + <row><Value>7</Value><Value>Территория ДНО</Value><Value>тер. ДНО</Value><Value>тер. ДНО</Value><Value>1</Value></row> + <row><Value>7</Value><Value>Территория ДНП</Value><Value>тер. ДНП</Value><Value>тер. ДНП</Value><Value>1</Value></row> + <row><Value>7</Value><Value>Территория ДНТ</Value><Value>тер. ДНТ</Value><Value>тер. ДНТ</Value><Value>1</Value></row> + <row><Value>7</Value><Value>Территория ДПК</Value><Value>тер. ДПК</Value><Value>тер. ДПК</Value><Value>1</Value></row> + <row><Value>7</Value><Value>Территория ОНО</Value><Value>тер. ОНО</Value><Value>тер. ОНО</Value><Value>1</Value></row> + <row><Value>7</Value><Value>Территория ОНП</Value><Value>тер. ОНП</Value><Value>тер. ОНП</Value><Value>1</Value></row> + <row><Value>7</Value><Value>Территория ОНТ</Value><Value>тер. ОНТ</Value><Value>тер. ОНТ</Value><Value>1</Value></row> + <row><Value>7</Value><Value>Территория ОПК</Value><Value>тер. ОПК</Value><Value>тер. ОПК</Value><Value>1</Value></row> + <row><Value>7</Value><Value>Территория ПК</Value><Value>тер. ПК</Value><Value>тер. ПК</Value><Value>1</Value></row> + <row><Value>7</Value><Value>Территория СНО</Value><Value>тер. СНО</Value><Value>тер. СНО</Value><Value>1</Value></row> + <row><Value>7</Value><Value>Территория СНП</Value><Value>тер. СНП</Value><Value>тер. СНП</Value><Value>1</Value></row> + <row><Value>7</Value><Value>Территория СНТ</Value><Value>тер. СНТ</Value><Value>тер. СНТ</Value><Value>1</Value></row> + <row><Value>7</Value><Value>Территория СОСН</Value><Value>тер.СОСН</Value><Value>тер.СОСН</Value><Value>1</Value></row> + <row><Value>7</Value><Value>Территория СПК</Value><Value>тер. СПК</Value><Value>тер. СПК</Value><Value>1</Value></row> + <row><Value>7</Value><Value>Территория ТСЖ</Value><Value>тер. ТСЖ</Value><Value>тер. ТСЖ</Value><Value>1</Value></row> + <row><Value>7</Value><Value>Территория ТСН</Value><Value>тер. ТСН</Value><Value>тер. ТСН</Value><Value>1</Value></row> + <row><Value>7</Value><Value>Территория ФХ</Value><Value>тер.ф.х.</Value><Value>тер.ф.х.</Value><Value>1</Value></row> + <row><Value>7</Value><Value>Тракт</Value><Value>тракт</Value><Value>тракт</Value><Value>1</Value></row> + <row><Value>7</Value><Value>Тупик</Value><Value>туп.</Value><Value>туп.</Value><Value>1</Value></row> + <row><Value>7</Value><Value>Улица</Value><Value>ул.</Value><Value>ул.</Value><Value>1</Value></row> + <row><Value>7</Value><Value>Усадьба</Value><Value>ус.</Value><Value>ус.</Value><Value>1</Value></row> + <row><Value>8</Value><Value>Хутор</Value><Value>х</Value><Value>х.</Value><Value>0</Value></row> + <row><Value>8</Value><Value>Хутор</Value><Value>х.</Value><Value>х.</Value><Value>0</Value></row> + <row><Value>8</Value><Value>Шоссе</Value><Value>ш</Value><Value>ш.</Value><Value>0</Value></row> + <row><Value>8</Value><Value>Шоссе</Value><Value>ш.</Value><Value>ш.</Value><Value>1</Value></row> + <row><Value>8</Value><Value>Абонентский ящик</Value><Value>а/я</Value><Value>а/я</Value><Value>0</Value></row> + <row><Value>8</Value><Value>Аллея</Value><Value>ал.</Value><Value>ал.</Value><Value>1</Value></row> + <row><Value>8</Value><Value>Аллея</Value><Value>аллея</Value><Value>ал.</Value><Value>0</Value></row> + <row><Value>8</Value><Value>Берег</Value><Value>б-г</Value><Value>б-г</Value><Value>1</Value></row> + <row><Value>8</Value><Value>Берег</Value><Value>берег</Value><Value>б-г</Value><Value>0</Value></row> + <row><Value>8</Value><Value>Бульвар</Value><Value>б-р</Value><Value>б-р</Value><Value>1</Value></row> + <row><Value>8</Value><Value>Вал</Value><Value>вал</Value><Value>вал</Value><Value>1</Value></row> + <row><Value>8</Value><Value>Взвоз</Value><Value>взв.</Value><Value>взв.</Value><Value>1</Value></row> + <row><Value>8</Value><Value>Въезд</Value><Value>взд.</Value><Value>взд.</Value><Value>1</Value></row> + <row><Value>8</Value><Value>Въезд</Value><Value>въезд</Value><Value>взд.</Value><Value>0</Value></row> + <row><Value>8</Value><Value>Гаражно-строительный кооп.</Value><Value>гск</Value><Value>гск</Value><Value>0</Value></row> + <row><Value>8</Value><Value>Городок</Value><Value>г-к</Value><Value>г-к</Value><Value>0</Value></row> + <row><Value>8</Value><Value>Деревня</Value><Value>д.</Value><Value>д.</Value><Value>0</Value></row> + <row><Value>8</Value><Value>Деревня</Value><Value>д</Value><Value>д.</Value><Value>0</Value></row> + <row><Value>8</Value><Value>Дорога</Value><Value>дор.</Value><Value>дор.</Value><Value>1</Value></row> + <row><Value>8</Value><Value>Дорога</Value><Value>дор</Value><Value>дор.</Value><Value>0</Value></row> + <row><Value>8</Value><Value>ж/д останов. (обгонный) пункт</Value><Value>ж/д_оп</Value><Value>ж/д_оп</Value><Value>0</Value></row> + <row><Value>8</Value><Value>Железнодорожная будка</Value><Value>ж/д б-ка</Value><Value>ж/д б-ка</Value><Value>0</Value></row> + <row><Value>8</Value><Value>Железнодорожная будка</Value><Value>ж/д_будка</Value><Value>ж/д б-ка</Value><Value>0</Value></row> + <row><Value>8</Value><Value>Железнодорожная казарма</Value><Value>ж/д_казарм</Value><Value>ж/д к-ма</Value><Value>0</Value></row> + <row><Value>8</Value><Value>Железнодорожная казарма</Value><Value>ж/д к-ма</Value><Value>ж/д к-ма</Value><Value>0</Value></row> + <row><Value>8</Value><Value>Железнодорожная платформа</Value><Value>ж/д_платф</Value><Value>ж/д пл-ма</Value><Value>0</Value></row> + <row><Value>8</Value><Value>Железнодорожная платформа</Value><Value>ж/д пл-ма</Value><Value>ж/д пл-ма</Value><Value>0</Value></row> + <row><Value>8</Value><Value>Железнодорожная станция</Value><Value>ж/д ст.</Value><Value>ж/д ст.</Value><Value>0</Value></row> + <row><Value>8</Value><Value>Железнодорожная станция</Value><Value>ж/д_ст</Value><Value>ж/д ст.</Value><Value>0</Value></row> + <row><Value>8</Value><Value>Железнодорожный пост</Value><Value>ж/д_пост</Value><Value>ж/д_пост</Value><Value>0</Value></row> + <row><Value>8</Value><Value>Железнодорожный разъезд</Value><Value>ж/д_рзд</Value><Value>ж/д рзд.</Value><Value>0</Value></row> + <row><Value>8</Value><Value>Железнодорожный разъезд</Value><Value>ж/д рзд.</Value><Value>ж/д рзд.</Value><Value>0</Value></row> + <row><Value>8</Value><Value>Животноводческая точка</Value><Value>жт</Value><Value>жт</Value><Value>0</Value></row> + <row><Value>8</Value><Value>Заезд</Value><Value>ззд.</Value><Value>ззд.</Value><Value>1</Value></row> + <row><Value>8</Value><Value>Заезд</Value><Value>заезд</Value><Value>ззд.</Value><Value>0</Value></row> + <row><Value>8</Value><Value>Зона</Value><Value>з.</Value><Value>зона</Value><Value>1</Value></row> + <row><Value>8</Value><Value>Зона</Value><Value>зона</Value><Value>зона</Value><Value>0</Value></row> + <row><Value>8</Value><Value>Казарма</Value><Value>казарма</Value><Value>казарма</Value><Value>0</Value></row> + <row><Value>8</Value><Value>Квартал</Value><Value>кв-л</Value><Value>кв-л</Value><Value>1</Value></row> + <row><Value>8</Value><Value>Километр</Value><Value>км</Value><Value>км</Value><Value>1</Value></row> + <row><Value>8</Value><Value>Кольцо</Value><Value>к-цо</Value><Value>к-цо</Value><Value>1</Value></row> + <row><Value>8</Value><Value>Кольцо</Value><Value>кольцо</Value><Value>к-цо</Value><Value>0</Value></row> + <row><Value>8</Value><Value>Коса</Value><Value>коса</Value><Value>коса</Value><Value>1</Value></row> + <row><Value>8</Value><Value>Линия</Value><Value>линия</Value><Value>лн.</Value><Value>0</Value></row> + <row><Value>8</Value><Value>Линия</Value><Value>лн.</Value><Value>лн.</Value><Value>1</Value></row> + <row><Value>8</Value><Value>Магистраль</Value><Value>мгстр.</Value><Value>мгстр.</Value><Value>1</Value></row> + <row><Value>8</Value><Value>Местечко</Value><Value>м</Value><Value>м-ко</Value><Value>0</Value></row> + <row><Value>8</Value><Value>Местечко</Value><Value>м-ко</Value><Value>м-ко</Value><Value>0</Value></row> + <row><Value>8</Value><Value>Местность</Value><Value>местность</Value><Value>местность</Value><Value>0</Value></row> + <row><Value>8</Value><Value>Микрорайон</Value><Value>мкр.</Value><Value>мкр.</Value><Value>1</Value></row> + <row><Value>8</Value><Value>Микрорайон</Value><Value>мкр</Value><Value>мкр.</Value><Value>0</Value></row> + <row><Value>8</Value><Value>Мост</Value><Value>мост</Value><Value>мост</Value><Value>0</Value></row> + <row><Value>8</Value><Value>Набережная</Value><Value>наб.</Value><Value>наб.</Value><Value>1</Value></row> + <row><Value>8</Value><Value>Набережная</Value><Value>наб</Value><Value>наб.</Value><Value>0</Value></row> + <row><Value>8</Value><Value>Населенный пункт</Value><Value>нп</Value><Value>нп.</Value><Value>0</Value></row> + <row><Value>8</Value><Value>Населенный пункт</Value><Value>нп.</Value><Value>нп.</Value><Value>0</Value></row> + <row><Value>8</Value><Value>Остров</Value><Value>остров</Value><Value>ост-в</Value><Value>0</Value></row> + <row><Value>8</Value><Value>Остров</Value><Value>ост-в</Value><Value>ост-в</Value><Value>1</Value></row> + <row><Value>8</Value><Value>Парк</Value><Value>парк</Value><Value>парк</Value><Value>1</Value></row> + <row><Value>8</Value><Value>Переезд</Value><Value>переезд</Value><Value>пер-д</Value><Value>0</Value></row> + <row><Value>8</Value><Value>Переезд</Value><Value>пер-д</Value><Value>пер-д</Value><Value>1</Value></row> + <row><Value>8</Value><Value>Переулок</Value><Value>пер</Value><Value>пер.</Value><Value>0</Value></row> + <row><Value>8</Value><Value>Переулок</Value><Value>пер.</Value><Value>пер.</Value><Value>1</Value></row> + <row><Value>8</Value><Value>Платформа</Value><Value>платф</Value><Value>платф.</Value><Value>0</Value></row> + <row><Value>8</Value><Value>Платформа</Value><Value>платф.</Value><Value>платф.</Value><Value>1</Value></row> + <row><Value>8</Value><Value>Площадка</Value><Value>пл-ка</Value><Value>пл-ка</Value><Value>1</Value></row> + <row><Value>8</Value><Value>Площадь</Value><Value>пл</Value><Value>пл.</Value><Value>0</Value></row> + <row><Value>8</Value><Value>Площадь</Value><Value>пл.</Value><Value>пл.</Value><Value>1</Value></row> + <row><Value>8</Value><Value>Поселок</Value><Value>п.</Value><Value>п.</Value><Value>0</Value></row> + <row><Value>8</Value><Value>Поселок</Value><Value>п</Value><Value>п.</Value><Value>0</Value></row> + <row><Value>8</Value><Value>Поселок и(при) станция(и)</Value><Value>п/ст</Value><Value>п/ст</Value><Value>0</Value></row> + <row><Value>8</Value><Value>Почтовое отделение</Value><Value>п/о</Value><Value>п/о</Value><Value>0</Value></row> + <row><Value>8</Value><Value>Проезд</Value><Value>пр-д</Value><Value>пр-д</Value><Value>1</Value></row> + <row><Value>8</Value><Value>Проезд</Value><Value>проезд</Value><Value>пр-д</Value><Value>0</Value></row> + <row><Value>8</Value><Value>Промзона</Value><Value>промзона</Value><Value>промзона</Value><Value>0</Value></row> + <row><Value>8</Value><Value>Просек</Value><Value>пр-к</Value><Value>пр-к</Value><Value>1</Value></row> + <row><Value>8</Value><Value>Просек</Value><Value>просек</Value><Value>пр-к</Value><Value>0</Value></row> + <row><Value>8</Value><Value>Просека</Value><Value>просека</Value><Value>пр-ка</Value><Value>0</Value></row> + <row><Value>8</Value><Value>Просека</Value><Value>пр-ка</Value><Value>пр-ка</Value><Value>1</Value></row> + <row><Value>8</Value><Value>Проселок</Value><Value>пр-лок</Value><Value>пр-лок</Value><Value>1</Value></row> + <row><Value>8</Value><Value>Проселок</Value><Value>проселок</Value><Value>пр-лок</Value><Value>0</Value></row> + <row><Value>8</Value><Value>Проспект</Value><Value>пр-кт</Value><Value>пр-кт</Value><Value>1</Value></row> + <row><Value>8</Value><Value>Проулок</Value><Value>проул.</Value><Value>проул.</Value><Value>1</Value></row> + <row><Value>8</Value><Value>Проулок</Value><Value>проулок</Value><Value>проул.</Value><Value>0</Value></row> + <row><Value>8</Value><Value>Разъезд</Value><Value>рзд</Value><Value>рзд.</Value><Value>0</Value></row> + <row><Value>8</Value><Value>Разъезд</Value><Value>рзд.</Value><Value>рзд.</Value><Value>1</Value></row> + <row><Value>8</Value><Value>Ряд</Value><Value>ряд</Value><Value>ряд</Value><Value>1</Value></row> + <row><Value>8</Value><Value>Ряды</Value><Value>ряды</Value><Value>ряд</Value><Value>1</Value></row> + <row><Value>8</Value><Value>Сад</Value><Value>сад</Value><Value>сад</Value><Value>1</Value></row> + <row><Value>8</Value><Value>Садовое неком-е товарищество</Value><Value>снт</Value><Value>снт</Value><Value>0</Value></row> + <row><Value>8</Value><Value>Садовое товарищество</Value><Value>с/т</Value><Value>с/т</Value><Value>0</Value></row> + <row><Value>8</Value><Value>Село</Value><Value>с.</Value><Value>с.</Value><Value>0</Value></row> + <row><Value>8</Value><Value>Село</Value><Value>с</Value><Value>с.</Value><Value>0</Value></row> + <row><Value>8</Value><Value>Сквер</Value><Value>с-р</Value><Value>сквер</Value><Value>1</Value></row> + <row><Value>8</Value><Value>Сквер</Value><Value>сквер</Value><Value>сквер</Value><Value>0</Value></row> + <row><Value>8</Value><Value>Слобода</Value><Value>сл.</Value><Value>сл.</Value><Value>0</Value></row> + <row><Value>8</Value><Value>Слобода</Value><Value>сл</Value><Value>сл.</Value><Value>0</Value></row> + <row><Value>8</Value><Value>Спуск</Value><Value>спуск</Value><Value>с-к</Value><Value>0</Value></row> + <row><Value>8</Value><Value>Спуск</Value><Value>с-к</Value><Value>с-к</Value><Value>1</Value></row> + <row><Value>8</Value><Value>Станция</Value><Value>ст</Value><Value>ст.</Value><Value>0</Value></row> + <row><Value>8</Value><Value>Станция</Value><Value>ст.</Value><Value>ст.</Value><Value>0</Value></row> + <row><Value>8</Value><Value>Строение</Value><Value>стр</Value><Value>стр.</Value><Value>0</Value></row> + <row><Value>8</Value><Value>Строение</Value><Value>стр.</Value><Value>стр.</Value><Value>0</Value></row> + <row><Value>8</Value><Value>Съезд</Value><Value>сзд.</Value><Value>сзд.</Value><Value>1</Value></row> + <row><Value>8</Value><Value>Территория</Value><Value>тер</Value><Value>тер.</Value><Value>0</Value></row> + <row><Value>8</Value><Value>Территория</Value><Value>тер.</Value><Value>тер.</Value><Value>1</Value></row> + <row><Value>8</Value><Value>Территория СНТ</Value><Value>тер. СНТ</Value><Value>тер. СНТ</Value><Value>1</Value></row> + <row><Value>8</Value><Value>Тракт</Value><Value>тракт</Value><Value>тракт</Value><Value>1</Value></row> + <row><Value>8</Value><Value>Тупик</Value><Value>туп</Value><Value>туп.</Value><Value>0</Value></row> + <row><Value>8</Value><Value>Тупик</Value><Value>туп.</Value><Value>туп.</Value><Value>1</Value></row> + <row><Value>8</Value><Value>Улица</Value><Value>ул</Value><Value>ул.</Value><Value>0</Value></row> + <row><Value>8</Value><Value>Улица</Value><Value>ул.</Value><Value>ул.</Value><Value>1</Value></row> + <row><Value>8</Value><Value>Участок</Value><Value>уч-к</Value><Value>уч-к</Value><Value>0</Value></row> + <row><Value>8</Value><Value>Ферма</Value><Value>ферма</Value><Value>ферма</Value><Value>0</Value></row> + <row><Value>8</Value><Value>Фермерское хозяйство</Value><Value>ф/х</Value><Value>ф/х</Value><Value>0</Value></row> + <row><Value>9</Value><Value>Земельный участок</Value><Value>з/у</Value><Value>з/у</Value><Value>1</Value></row> + <row><Value>10</Value><Value>Строение</Value><Value>стр.</Value><Value>стр.</Value><Value>1</Value></row> + <row><Value>10</Value><Value>Сооружение</Value><Value>соор.</Value><Value>соор.</Value><Value>1</Value></row> + <row><Value>10</Value><Value>Литера</Value><Value>литера</Value><Value>литера</Value><Value>0</Value></row> + <row><Value>10</Value><Value>Корпус</Value><Value>к.</Value><Value>к.</Value><Value>1</Value></row> + <row><Value>10</Value><Value>Владение</Value><Value>влд.</Value><Value>влд.</Value><Value>0</Value></row> + <row><Value>10</Value><Value>Корпус</Value><Value>к.</Value><Value>к.</Value><Value>1</Value></row> + <row><Value>10</Value><Value>Объект незавершенного строительства</Value><Value>ОНС</Value><Value>ОНС</Value><Value>0</Value></row> + <row><Value>10</Value><Value>Погреб</Value><Value>п-б</Value><Value>п-б</Value><Value>0</Value></row> + <row><Value>10</Value><Value>Котельная</Value><Value>кот.</Value><Value>кот.</Value><Value>0</Value></row> + <row><Value>10</Value><Value>Подвал</Value><Value>подв.</Value><Value>подв.</Value><Value>0</Value></row> + <row><Value>10</Value><Value>Литера</Value><Value>литера</Value><Value>литера</Value><Value>0</Value></row> + <row><Value>10</Value><Value>Сооружение</Value><Value>соор.</Value><Value>соор.</Value><Value>1</Value></row> + <row><Value>10</Value><Value>Строение</Value><Value>стр.</Value><Value>стр.</Value><Value>1</Value></row> + <row><Value>10</Value><Value>Шахта</Value><Value>шахта</Value><Value>шахта</Value><Value>1</Value></row> + <row><Value>10</Value><Value>Здание</Value><Value>зд.</Value><Value>зд.</Value><Value>1</Value></row> + <row><Value>10</Value><Value>Гараж</Value><Value>г-ж</Value><Value>г-ж</Value><Value>1</Value></row> + <row><Value>10</Value><Value>Домовладение</Value><Value>двлд.</Value><Value>двлд.</Value><Value>0</Value></row> + <row><Value>10</Value><Value>Дом</Value><Value>д.</Value><Value>д.</Value><Value>1</Value></row> + <row><Value>11</Value><Value>Комната</Value><Value>ком.</Value><Value>ком.</Value><Value>1</Value></row> + <row><Value>11</Value><Value>Комната</Value><Value>ком.</Value><Value>ком.</Value><Value>1</Value></row> + <row><Value>11</Value><Value>Помещение</Value><Value>помещ.</Value><Value>помещ.</Value><Value>1</Value></row> + <row><Value>11</Value><Value>Квартира</Value><Value>кв.</Value><Value>кв.</Value><Value>1</Value></row> + <row><Value>11</Value><Value>Офис</Value><Value>офис</Value><Value>офис</Value><Value>1</Value></row> + <row><Value>11</Value><Value>Помещение</Value><Value>помещ.</Value><Value>помещ.</Value><Value>1</Value></row> + <row><Value>11</Value><Value>Рабочий участок</Value><Value>раб.уч.</Value><Value>раб.уч.</Value><Value>1</Value></row> + <row><Value>11</Value><Value>Склад</Value><Value>скл.</Value><Value>скл.</Value><Value>1</Value></row> + <row><Value>11</Value><Value>Торговый зал</Value><Value>торг.зал</Value><Value>торг. зал</Value><Value>1</Value></row> + <row><Value>11</Value><Value>Цех</Value><Value>цех</Value><Value>цех</Value><Value>1</Value></row> + <row><Value>11</Value><Value>Павильон</Value><Value>пав.</Value><Value>пав.</Value><Value>1</Value></row> + <row><Value>11</Value><Value>Котельная</Value><Value>кот.</Value><Value>кот.</Value><Value>0</Value></row> + <row><Value>11</Value><Value>Погреб</Value><Value>п-б</Value><Value>п-б</Value><Value>0</Value></row> + <row><Value>11</Value><Value>Гараж</Value><Value>г-ж</Value><Value>г-ж</Value><Value>1</Value></row> + <row><Value>11</Value><Value>Подвал</Value><Value>подв.</Value><Value>подв.</Value><Value>0</Value></row> + <row><Value>11</Value><Value>Не определено</Value><Value></Value><Value></Value><Value>1</Value></row> + <row><Value>13</Value><Value>Автономный округ</Value><Value>АО</Value><Value>а.окр.</Value><Value>1</Value></row> + <row><Value>14</Value><Value>Территория</Value><Value>тер.</Value><Value>тер.</Value><Value>0</Value></row> + <row><Value>14</Value><Value>Территория</Value><Value>тер</Value><Value>тер.</Value><Value>0</Value></row> + <row><Value>14</Value><Value>Район</Value><Value>р-н</Value><Value>р-н</Value><Value>1</Value></row> + <row><Value>15</Value><Value>Садовое товарищество</Value><Value>снт</Value><Value>снт</Value><Value>1</Value></row> + <row><Value>15</Value><Value>Сад</Value><Value>сад</Value><Value>сад</Value><Value>1</Value></row> + <row><Value>15</Value><Value>Промышленная зона</Value><Value>промзона</Value><Value>промзона</Value><Value>1</Value></row> + <row><Value>15</Value><Value>Некоммерческое партнерство</Value><Value>н/п</Value><Value>н/п</Value><Value>1</Value></row> + <row><Value>15</Value><Value>Микрорайон</Value><Value>мкр</Value><Value>мкр.</Value><Value>1</Value></row> + <row><Value>15</Value><Value>Местность</Value><Value>местность</Value><Value>местность</Value><Value>1</Value></row> + <row><Value>15</Value><Value>Фермерское хозяйство</Value><Value>ф/х</Value><Value>ф/х</Value><Value>1</Value></row> + <row><Value>15</Value><Value>Дачное неком-е партнерство</Value><Value>днп</Value><Value>днп</Value><Value>1</Value></row> + <row><Value>15</Value><Value>Гаражно-строительный кооп.</Value><Value>гск</Value><Value>гск</Value><Value>1</Value></row> + <row><Value>15</Value><Value>Территория</Value><Value>тер</Value><Value>тер.</Value><Value>1</Value></row> + <row><Value>16</Value><Value>Местечко</Value><Value>м</Value><Value>м-ко</Value><Value>1</Value></row> + <row><Value>16</Value><Value>Микрорайон</Value><Value>мкр</Value><Value>мкр.</Value><Value>1</Value></row> + <row><Value>16</Value><Value>Мост</Value><Value>мост</Value><Value>мост</Value><Value>1</Value></row> + <row><Value>16</Value><Value>Набережная</Value><Value>наб</Value><Value>наб.</Value><Value>1</Value></row> + <row><Value>16</Value><Value>Населенный пункт</Value><Value>нп</Value><Value>нп.</Value><Value>1</Value></row> + <row><Value>16</Value><Value>Остров</Value><Value>остров</Value><Value>ост-в</Value><Value>1</Value></row> + <row><Value>16</Value><Value>Парк</Value><Value>парк</Value><Value>парк</Value><Value>1</Value></row> + <row><Value>16</Value><Value>Переезд</Value><Value>переезд</Value><Value>пер-д</Value><Value>1</Value></row> + <row><Value>16</Value><Value>Переулок</Value><Value>пер</Value><Value>пер.</Value><Value>1</Value></row> + <row><Value>16</Value><Value>Планировочный район</Value><Value>пл.р-н</Value><Value>пл.р-н</Value><Value>1</Value></row> + <row><Value>16</Value><Value>Платформа</Value><Value>платф</Value><Value>платф.</Value><Value>1</Value></row> + <row><Value>16</Value><Value>Площадка</Value><Value>пл-ка</Value><Value>пл-ка</Value><Value>1</Value></row> + <row><Value>16</Value><Value>Площадь</Value><Value>пл</Value><Value>пл.</Value><Value>1</Value></row> + <row><Value>16</Value><Value>Поселок</Value><Value>п</Value><Value>п.</Value><Value>1</Value></row> + <row><Value>16</Value><Value>Аал</Value><Value>аал</Value><Value>аал</Value><Value>1</Value></row> + <row><Value>16</Value><Value>Починок</Value><Value>починок</Value><Value>п-к</Value><Value>1</Value></row> + <row><Value>16</Value><Value>Почтовое отделение</Value><Value>п/о</Value><Value>п/о</Value><Value>1</Value></row> + <row><Value>16</Value><Value>Проезд</Value><Value>проезд</Value><Value>пр-д</Value><Value>1</Value></row> + <row><Value>16</Value><Value>Просек</Value><Value>просек</Value><Value>пр-к</Value><Value>1</Value></row> + <row><Value>16</Value><Value>Просека</Value><Value>просека</Value><Value>пр-ка</Value><Value>1</Value></row> + <row><Value>16</Value><Value>Проселок</Value><Value>проселок</Value><Value>пр-лок</Value><Value>1</Value></row> + <row><Value>16</Value><Value>Проспект</Value><Value>пр-кт</Value><Value>пр-кт</Value><Value>1</Value></row> + <row><Value>16</Value><Value>Проулок</Value><Value>проулок</Value><Value>проул.</Value><Value>1</Value></row> + <row><Value>16</Value><Value>Разъезд</Value><Value>рзд</Value><Value>рзд.</Value><Value>1</Value></row> + <row><Value>16</Value><Value>Ряды</Value><Value>ряды</Value><Value>ряд</Value><Value>1</Value></row> + <row><Value>16</Value><Value>Сад</Value><Value>сад</Value><Value>сад</Value><Value>1</Value></row> + <row><Value>16</Value><Value>Садовое неком-е товарищество</Value><Value>снт</Value><Value>снт</Value><Value>1</Value></row> + <row><Value>16</Value><Value>Село</Value><Value>с</Value><Value>с.</Value><Value>1</Value></row> + <row><Value>16</Value><Value>Сквер</Value><Value>сквер</Value><Value>сквер</Value><Value>1</Value></row> + <row><Value>16</Value><Value>Слобода</Value><Value>сл</Value><Value>сл.</Value><Value>1</Value></row> + <row><Value>16</Value><Value>Спуск</Value><Value>спуск</Value><Value>с-к</Value><Value>1</Value></row> + <row><Value>16</Value><Value>Станция</Value><Value>ст</Value><Value>ст.</Value><Value>1</Value></row> + <row><Value>16</Value><Value>Строение</Value><Value>стр</Value><Value>стр.</Value><Value>1</Value></row> + <row><Value>16</Value><Value>Территория</Value><Value>тер</Value><Value>тер.</Value><Value>1</Value></row> + <row><Value>16</Value><Value>Тракт</Value><Value>тракт</Value><Value>тракт</Value><Value>1</Value></row> + <row><Value>16</Value><Value>Тупик</Value><Value>туп</Value><Value>туп.</Value><Value>1</Value></row> + <row><Value>16</Value><Value>Улица</Value><Value>ул</Value><Value>ул.</Value><Value>1</Value></row> + <row><Value>16</Value><Value>Участок</Value><Value>уч-к</Value><Value>уч-к</Value><Value>1</Value></row> + <row><Value>16</Value><Value>Ферма</Value><Value>ферма</Value><Value>ферма</Value><Value>1</Value></row> + <row><Value>16</Value><Value>Хутор</Value><Value>х</Value><Value>х.</Value><Value>1</Value></row> + <row><Value>16</Value><Value>Шоссе</Value><Value>ш</Value><Value>ш.</Value><Value>1</Value></row> + <row><Value>16</Value><Value>Абонентский ящик</Value><Value>а/я</Value><Value>а/я</Value><Value>1</Value></row> + <row><Value>16</Value><Value>Аллея</Value><Value>аллея</Value><Value>ал.</Value><Value>1</Value></row> + <row><Value>16</Value><Value>Арбан</Value><Value>арбан</Value><Value>арбан</Value><Value>1</Value></row> + <row><Value>16</Value><Value>Аул</Value><Value>аул</Value><Value>аул</Value><Value>1</Value></row> + <row><Value>16</Value><Value>Берег</Value><Value>берег</Value><Value>б-г</Value><Value>1</Value></row> + <row><Value>16</Value><Value>Бульвар</Value><Value>б-р</Value><Value>б-р</Value><Value>1</Value></row> + <row><Value>16</Value><Value>Вал</Value><Value>вал</Value><Value>вал</Value><Value>1</Value></row> + <row><Value>16</Value><Value>Въезд</Value><Value>въезд</Value><Value>взд.</Value><Value>1</Value></row> + <row><Value>16</Value><Value>Выселки(ок)</Value><Value>высел</Value><Value>высел</Value><Value>1</Value></row> + <row><Value>16</Value><Value>Гаражно-строит-ный кооператив</Value><Value>гск</Value><Value>гск</Value><Value>1</Value></row> + <row><Value>16</Value><Value>Городок</Value><Value>г-к</Value><Value>г-к</Value><Value>1</Value></row> + <row><Value>16</Value><Value>Деревня</Value><Value>д</Value><Value>д.</Value><Value>1</Value></row> + <row><Value>16</Value><Value>Дорога</Value><Value>дор</Value><Value>дор.</Value><Value>1</Value></row> + <row><Value>16</Value><Value>ж/д останов. (обгонный) пункт</Value><Value>ж/д_оп</Value><Value>ж/д_оп</Value><Value>1</Value></row> + <row><Value>16</Value><Value>Железнодорожная будка</Value><Value>ж/д_будка</Value><Value>ж/д б-ка</Value><Value>1</Value></row> + <row><Value>16</Value><Value>Поселок и(при) станция(и)</Value><Value>п/ст</Value><Value>п/ст</Value><Value>1</Value></row> + <row><Value>16</Value><Value>Железнодорожная казарма</Value><Value>ж/д_казарм</Value><Value>ж/д к-ма</Value><Value>1</Value></row> + <row><Value>16</Value><Value>Железнодорожная платформа</Value><Value>ж/д_платф</Value><Value>ж/д пл-ма</Value><Value>1</Value></row> + <row><Value>16</Value><Value>Железнодорожная станция</Value><Value>ж/д_ст</Value><Value>ж/д ст.</Value><Value>1</Value></row> + <row><Value>16</Value><Value>Железнодорожный пост</Value><Value>ж/д_пост</Value><Value>ж/д_пост</Value><Value>1</Value></row> + <row><Value>16</Value><Value>Железнодорожный разъезд</Value><Value>ж/д_рзд</Value><Value>ж/д рзд.</Value><Value>1</Value></row> + <row><Value>16</Value><Value>Животноводческая точка</Value><Value>жт</Value><Value>жт</Value><Value>1</Value></row> + <row><Value>16</Value><Value>Заезд</Value><Value>заезд</Value><Value>ззд.</Value><Value>1</Value></row> + <row><Value>16</Value><Value>Зона</Value><Value>зона</Value><Value>зона</Value><Value>1</Value></row> + <row><Value>16</Value><Value>Казарма</Value><Value>казарма</Value><Value>казарма</Value><Value>1</Value></row> + <row><Value>16</Value><Value>Квартал</Value><Value>кв-л</Value><Value>кв-л</Value><Value>1</Value></row> + <row><Value>16</Value><Value>Километр</Value><Value>км</Value><Value>км</Value><Value>1</Value></row> + <row><Value>16</Value><Value>Кольцо</Value><Value>кольцо</Value><Value>к-цо</Value><Value>1</Value></row> + <row><Value>16</Value><Value>Коса</Value><Value>коса</Value><Value>коса</Value><Value>1</Value></row> + <row><Value>16</Value><Value>Линия</Value><Value>линия</Value><Value>лн.</Value><Value>1</Value></row> + <row><Value>17</Value><Value>Машино-место</Value><Value>м/м</Value><Value>м/м</Value><Value>1</Value></row> </ValueTable> \ No newline at end of file diff --git a/SSL/src/InformationRegisters/АрхивСообщенийОбменов/Forms/ФормаЗаписи/Form.form b/SSL/src/InformationRegisters/АрхивСообщенийОбменов/Forms/ФормаЗаписи/Form.form index e1fbd1147..55593770b 100644 --- a/SSL/src/InformationRegisters/АрхивСообщенийОбменов/Forms/ФормаЗаписи/Form.form +++ b/SSL/src/InformationRegisters/АрхивСообщенийОбменов/Forms/ФормаЗаписи/Form.form @@ -207,7 +207,7 @@ </items> <items xsi:type="form:FormField"> <name>ХешСуммаФайла</name> - <id>28</id> + <id>25</id> <visible>true</visible> <enabled>true</enabled> <userVisible> @@ -218,7 +218,7 @@ </dataPath> <extendedTooltip> <name>ХешСуммаФайлаРасширеннаяПодсказка</name> - <id>30</id> + <id>27</id> <type>Label</type> <autoMaxWidth>true</autoMaxWidth> <autoMaxHeight>true</autoMaxHeight> @@ -228,7 +228,7 @@ </extendedTooltip> <contextMenu> <name>ХешСуммаФайлаКонтекстноеМеню</name> - <id>29</id> + <id>26</id> <autoFill>true</autoFill> </contextMenu> <type>InputField</type> diff --git a/SSL/src/InformationRegisters/АрхивСообщенийОбменов/Forms/ФормаЗаписи/Module.bsl b/SSL/src/InformationRegisters/АрхивСообщенийОбменов/Forms/ФормаЗаписи/Module.bsl index 54a60b3e6..3862c0fe8 100644 --- a/SSL/src/InformationRegisters/АрхивСообщенийОбменов/Forms/ФормаЗаписи/Module.bsl +++ b/SSL/src/InformationRegisters/АрхивСообщенийОбменов/Forms/ФормаЗаписи/Module.bsl @@ -1,5 +1,5 @@ /////////////////////////////////////////////////////////////////////////////////////////////////////// -// Copyright (c) 2024, ООО 1С-Софт +// Copyright (c) 2025, ООО 1С-Софт // Все права защищены. Эта программа и сопроводительные материалы предоставляются // в соответствии с условиями лицензии Attribution 4.0 International (CC BY 4.0) // Текст лицензии доступен по ссылке: diff --git a/SSL/src/InformationRegisters/АрхивСообщенийОбменов/Forms/ФормаСписка/Module.bsl b/SSL/src/InformationRegisters/АрхивСообщенийОбменов/Forms/ФормаСписка/Module.bsl index 1d4ae649b..186126a98 100644 --- a/SSL/src/InformationRegisters/АрхивСообщенийОбменов/Forms/ФормаСписка/Module.bsl +++ b/SSL/src/InformationRegisters/АрхивСообщенийОбменов/Forms/ФормаСписка/Module.bsl @@ -1,5 +1,5 @@ /////////////////////////////////////////////////////////////////////////////////////////////////////// -// Copyright (c) 2024, ООО 1С-Софт +// Copyright (c) 2025, ООО 1С-Софт // Все права защищены. Эта программа и сопроводительные материалы предоставляются // в соответствии с условиями лицензии Attribution 4.0 International (CC BY 4.0) // Текст лицензии доступен по ссылке: diff --git a/SSL/src/InformationRegisters/АрхивСообщенийОбменов/ManagerModule.bsl b/SSL/src/InformationRegisters/АрхивСообщенийОбменов/ManagerModule.bsl index 640a9797d..8bb16d5ac 100644 --- a/SSL/src/InformationRegisters/АрхивСообщенийОбменов/ManagerModule.bsl +++ b/SSL/src/InformationRegisters/АрхивСообщенийОбменов/ManagerModule.bsl @@ -1,5 +1,5 @@ /////////////////////////////////////////////////////////////////////////////////////////////////////// -// Copyright (c) 2024, ООО 1С-Софт +// Copyright (c) 2025, ООО 1С-Софт // Все права защищены. Эта программа и сопроводительные материалы предоставляются // в соответствии с условиями лицензии Attribution 4.0 International (CC BY 4.0) // Текст лицензии доступен по ссылке: diff --git a/SSL/src/InformationRegisters/АрхивСообщенийОбменов/RecordSetModule.bsl b/SSL/src/InformationRegisters/АрхивСообщенийОбменов/RecordSetModule.bsl index 4076cbf67..950dcc6c4 100644 --- a/SSL/src/InformationRegisters/АрхивСообщенийОбменов/RecordSetModule.bsl +++ b/SSL/src/InformationRegisters/АрхивСообщенийОбменов/RecordSetModule.bsl @@ -1,5 +1,5 @@ /////////////////////////////////////////////////////////////////////////////////////////////////////// -// Copyright (c) 2024, ООО 1С-Софт +// Copyright (c) 2025, ООО 1С-Софт // Все права защищены. Эта программа и сопроводительные материалы предоставляются // в соответствии с условиями лицензии Attribution 4.0 International (CC BY 4.0) // Текст лицензии доступен по ссылке: diff --git a/SSL/src/InformationRegisters/БуферОперацийСтатистики/ManagerModule.bsl b/SSL/src/InformationRegisters/БуферОперацийСтатистики/ManagerModule.bsl index b6772754c..2165664ce 100644 --- a/SSL/src/InformationRegisters/БуферОперацийСтатистики/ManagerModule.bsl +++ b/SSL/src/InformationRegisters/БуферОперацийСтатистики/ManagerModule.bsl @@ -1,5 +1,5 @@ /////////////////////////////////////////////////////////////////////////////////////////////////////// -// Copyright (c) 2024, ООО 1С-Софт +// Copyright (c) 2025, ООО 1С-Софт // Все права защищены. Эта программа и сопроводительные материалы предоставляются // в соответствии с условиями лицензии Attribution 4.0 International (CC BY 4.0) // Текст лицензии доступен по ссылке: diff --git a/SSL/src/InformationRegisters/ВерсииОбъектов/Forms/ВыборРеквизитовОбъекта/Module.bsl b/SSL/src/InformationRegisters/ВерсииОбъектов/Forms/ВыборРеквизитовОбъекта/Module.bsl index e93f6dfa6..259ce5827 100644 --- a/SSL/src/InformationRegisters/ВерсииОбъектов/Forms/ВыборРеквизитовОбъекта/Module.bsl +++ b/SSL/src/InformationRegisters/ВерсииОбъектов/Forms/ВыборРеквизитовОбъекта/Module.bsl @@ -1,5 +1,5 @@ /////////////////////////////////////////////////////////////////////////////////////////////////////// -// Copyright (c) 2024, ООО 1С-Софт +// Copyright (c) 2025, ООО 1С-Софт // Все права защищены. Эта программа и сопроводительные материалы предоставляются // в соответствии с условиями лицензии Attribution 4.0 International (CC BY 4.0) // Текст лицензии доступен по ссылке: diff --git a/SSL/src/InformationRegisters/ВерсииОбъектов/Forms/ВыборХранимыхВерсий/Module.bsl b/SSL/src/InformationRegisters/ВерсииОбъектов/Forms/ВыборХранимыхВерсий/Module.bsl index ce8c22056..98d3bf8bb 100644 --- a/SSL/src/InformationRegisters/ВерсииОбъектов/Forms/ВыборХранимыхВерсий/Module.bsl +++ b/SSL/src/InformationRegisters/ВерсииОбъектов/Forms/ВыборХранимыхВерсий/Module.bsl @@ -1,5 +1,5 @@ /////////////////////////////////////////////////////////////////////////////////////////////////////// -// Copyright (c) 2024, ООО 1С-Софт +// Copyright (c) 2025, ООО 1С-Софт // Все права защищены. Эта программа и сопроводительные материалы предоставляются // в соответствии с условиями лицензии Attribution 4.0 International (CC BY 4.0) // Текст лицензии доступен по ссылке: diff --git a/SSL/src/InformationRegisters/ВерсииОбъектов/Forms/ОтчетПоВерсиямОбъекта/Module.bsl b/SSL/src/InformationRegisters/ВерсииОбъектов/Forms/ОтчетПоВерсиямОбъекта/Module.bsl index ed186a7c6..ef0166792 100644 --- a/SSL/src/InformationRegisters/ВерсииОбъектов/Forms/ОтчетПоВерсиямОбъекта/Module.bsl +++ b/SSL/src/InformationRegisters/ВерсииОбъектов/Forms/ОтчетПоВерсиямОбъекта/Module.bsl @@ -1,5 +1,5 @@ /////////////////////////////////////////////////////////////////////////////////////////////////////// -// Copyright (c) 2024, ООО 1С-Софт +// Copyright (c) 2025, ООО 1С-Софт // Все права защищены. Эта программа и сопроводительные материалы предоставляются // в соответствии с условиями лицензии Attribution 4.0 International (CC BY 4.0) // Текст лицензии доступен по ссылке: diff --git a/SSL/src/InformationRegisters/ВерсииОбъектов/Forms/ФормаЗаписи/Module.bsl b/SSL/src/InformationRegisters/ВерсииОбъектов/Forms/ФормаЗаписи/Module.bsl index b97d3bad3..84f577e1c 100644 --- a/SSL/src/InformationRegisters/ВерсииОбъектов/Forms/ФормаЗаписи/Module.bsl +++ b/SSL/src/InformationRegisters/ВерсииОбъектов/Forms/ФормаЗаписи/Module.bsl @@ -1,5 +1,5 @@ /////////////////////////////////////////////////////////////////////////////////////////////////////// -// Copyright (c) 2024, ООО 1С-Софт +// Copyright (c) 2025, ООО 1С-Софт // Все права защищены. Эта программа и сопроводительные материалы предоставляются // в соответствии с условиями лицензии Attribution 4.0 International (CC BY 4.0) // Текст лицензии доступен по ссылке: diff --git a/SSL/src/InformationRegisters/ВерсииОбъектов/ManagerModule.bsl b/SSL/src/InformationRegisters/ВерсииОбъектов/ManagerModule.bsl index bc8101d7d..3b62122ae 100644 --- a/SSL/src/InformationRegisters/ВерсииОбъектов/ManagerModule.bsl +++ b/SSL/src/InformationRegisters/ВерсииОбъектов/ManagerModule.bsl @@ -1,5 +1,5 @@ /////////////////////////////////////////////////////////////////////////////////////////////////////// -// Copyright (c) 2024, ООО 1С-Софт +// Copyright (c) 2025, ООО 1С-Софт // Все права защищены. Эта программа и сопроводительные материалы предоставляются // в соответствии с условиями лицензии Attribution 4.0 International (CC BY 4.0) // Текст лицензии доступен по ссылке: diff --git a/SSL/src/InformationRegisters/ВерсииОбъектов/RecordSetModule.bsl b/SSL/src/InformationRegisters/ВерсииОбъектов/RecordSetModule.bsl index 96d6c0449..cbe33f6ef 100644 --- a/SSL/src/InformationRegisters/ВерсииОбъектов/RecordSetModule.bsl +++ b/SSL/src/InformationRegisters/ВерсииОбъектов/RecordSetModule.bsl @@ -1,5 +1,5 @@ /////////////////////////////////////////////////////////////////////////////////////////////////////// -// Copyright (c) 2024, ООО 1С-Софт +// Copyright (c) 2025, ООО 1С-Софт // Все права защищены. Эта программа и сопроводительные материалы предоставляются // в соответствии с условиями лицензии Attribution 4.0 International (CC BY 4.0) // Текст лицензии доступен по ссылке: diff --git a/SSL/src/InformationRegisters/ВерсииПодсистем/Forms/ФормаЗаписи/Module.bsl b/SSL/src/InformationRegisters/ВерсииПодсистем/Forms/ФормаЗаписи/Module.bsl index 57f53a4c8..32ed3ca0d 100644 --- a/SSL/src/InformationRegisters/ВерсииПодсистем/Forms/ФормаЗаписи/Module.bsl +++ b/SSL/src/InformationRegisters/ВерсииПодсистем/Forms/ФормаЗаписи/Module.bsl @@ -1,5 +1,5 @@ /////////////////////////////////////////////////////////////////////////////////////////////////////// -// Copyright (c) 2024, ООО 1С-Софт +// Copyright (c) 2025, ООО 1С-Софт // Все права защищены. Эта программа и сопроводительные материалы предоставляются // в соответствии с условиями лицензии Attribution 4.0 International (CC BY 4.0) // Текст лицензии доступен по ссылке: diff --git a/SSL/src/InformationRegisters/ВерсииПодсистем/Forms/ФормаСписка/Module.bsl b/SSL/src/InformationRegisters/ВерсииПодсистем/Forms/ФормаСписка/Module.bsl index 106e23f35..113a8e412 100644 --- a/SSL/src/InformationRegisters/ВерсииПодсистем/Forms/ФормаСписка/Module.bsl +++ b/SSL/src/InformationRegisters/ВерсииПодсистем/Forms/ФормаСписка/Module.bsl @@ -1,5 +1,5 @@ /////////////////////////////////////////////////////////////////////////////////////////////////////// -// Copyright (c) 2024, ООО 1С-Софт +// Copyright (c) 2025, ООО 1С-Софт // Все права защищены. Эта программа и сопроводительные материалы предоставляются // в соответствии с условиями лицензии Attribution 4.0 International (CC BY 4.0) // Текст лицензии доступен по ссылке: diff --git a/SSL/src/InformationRegisters/ВерсииПодсистем/RecordSetModule.bsl b/SSL/src/InformationRegisters/ВерсииПодсистем/RecordSetModule.bsl index b6e37d4b4..ca97486da 100644 --- a/SSL/src/InformationRegisters/ВерсииПодсистем/RecordSetModule.bsl +++ b/SSL/src/InformationRegisters/ВерсииПодсистем/RecordSetModule.bsl @@ -1,5 +1,5 @@ /////////////////////////////////////////////////////////////////////////////////////////////////////// -// Copyright (c) 2024, ООО 1С-Софт +// Copyright (c) 2025, ООО 1С-Софт // Все права защищены. Эта программа и сопроводительные материалы предоставляются // в соответствии с условиями лицензии Attribution 4.0 International (CC BY 4.0) // Текст лицензии доступен по ссылке: diff --git a/SSL/src/InformationRegisters/ВерсииПодсистемОбластейДанных/Forms/ФормаСписка/Module.bsl b/SSL/src/InformationRegisters/ВерсииПодсистемОбластейДанных/Forms/ФормаСписка/Module.bsl index 49bed8e5e..5c76e5e01 100644 --- a/SSL/src/InformationRegisters/ВерсииПодсистемОбластейДанных/Forms/ФормаСписка/Module.bsl +++ b/SSL/src/InformationRegisters/ВерсииПодсистемОбластейДанных/Forms/ФормаСписка/Module.bsl @@ -1,5 +1,5 @@ /////////////////////////////////////////////////////////////////////////////////////////////////////// -// Copyright (c) 2024, ООО 1С-Софт +// Copyright (c) 2025, ООО 1С-Софт // Все права защищены. Эта программа и сопроводительные материалы предоставляются // в соответствии с условиями лицензии Attribution 4.0 International (CC BY 4.0) // Текст лицензии доступен по ссылке: diff --git a/SSL/src/InformationRegisters/ГруппыЗначенийДоступа/Forms/ФормаЗаписи/Module.bsl b/SSL/src/InformationRegisters/ГруппыЗначенийДоступа/Forms/ФормаЗаписи/Module.bsl index 00fa69d3f..55c2c57ed 100644 --- a/SSL/src/InformationRegisters/ГруппыЗначенийДоступа/Forms/ФормаЗаписи/Module.bsl +++ b/SSL/src/InformationRegisters/ГруппыЗначенийДоступа/Forms/ФормаЗаписи/Module.bsl @@ -1,5 +1,5 @@ /////////////////////////////////////////////////////////////////////////////////////////////////////// -// Copyright (c) 2024, ООО 1С-Софт +// Copyright (c) 2025, ООО 1С-Софт // Все права защищены. Эта программа и сопроводительные материалы предоставляются // в соответствии с условиями лицензии Attribution 4.0 International (CC BY 4.0) // Текст лицензии доступен по ссылке: diff --git a/SSL/src/InformationRegisters/ГруппыЗначенийДоступа/Forms/ФормаСписка/Module.bsl b/SSL/src/InformationRegisters/ГруппыЗначенийДоступа/Forms/ФормаСписка/Module.bsl index 23bf17eba..5b7eebb36 100644 --- a/SSL/src/InformationRegisters/ГруппыЗначенийДоступа/Forms/ФормаСписка/Module.bsl +++ b/SSL/src/InformationRegisters/ГруппыЗначенийДоступа/Forms/ФормаСписка/Module.bsl @@ -1,5 +1,5 @@ /////////////////////////////////////////////////////////////////////////////////////////////////////// -// Copyright (c) 2024, ООО 1С-Софт +// Copyright (c) 2025, ООО 1С-Софт // Все права защищены. Эта программа и сопроводительные материалы предоставляются // в соответствии с условиями лицензии Attribution 4.0 International (CC BY 4.0) // Текст лицензии доступен по ссылке: diff --git a/SSL/src/InformationRegisters/ГруппыЗначенийДоступа/ManagerModule.bsl b/SSL/src/InformationRegisters/ГруппыЗначенийДоступа/ManagerModule.bsl index 8d1e96cd7..3ea2848b2 100644 --- a/SSL/src/InformationRegisters/ГруппыЗначенийДоступа/ManagerModule.bsl +++ b/SSL/src/InformationRegisters/ГруппыЗначенийДоступа/ManagerModule.bsl @@ -1,5 +1,5 @@ /////////////////////////////////////////////////////////////////////////////////////////////////////// -// Copyright (c) 2024, ООО 1С-Софт +// Copyright (c) 2025, ООО 1С-Софт // Все права защищены. Эта программа и сопроводительные материалы предоставляются // в соответствии с условиями лицензии Attribution 4.0 International (CC BY 4.0) // Текст лицензии доступен по ссылке: @@ -53,6 +53,10 @@ // Процедура ОбновитьГруппировкиПользователей(Параметры = Неопределено, ЕстьИзменения = Неопределено) Экспорт + Если УправлениеДоступомСлужебный.ОтключеноОграничениеНаУровнеЗаписей() Тогда + Возврат; + КонецЕсли; + ВидОбновления = ""; Если Параметры = Неопределено Тогда @@ -140,7 +144,7 @@ УстановитьПривилегированныйРежим(Истина); - Если Константы.ОграничиватьДоступНаУровнеЗаписей.Получить() Тогда + Если УправлениеДоступомСлужебный.КонстантаОграничиватьДоступНаУровнеЗаписей() Тогда УправлениеДоступомСлужебный.УстановитьЗаполнениеДанныхДляОграниченияДоступа(Истина); КонецЕсли; @@ -161,6 +165,12 @@ // Процедура ОбновитьДанныеРегистра(ЕстьИзменения = Неопределено) Экспорт + Если УправлениеДоступомСлужебный.ОтключеноОграничениеНаУровнеЗаписей() Тогда + УправлениеДоступомСлужебный.ОчиститьРегистрСведений( + Метаданные.РегистрыСведений.ГруппыЗначенийДоступа.ПолноеИмя(), ЕстьИзменения); + Возврат; + КонецЕсли; + УдалитьЛишниеЗаписи(ЕстьИзменения); ОбновитьГруппировкиПользователей( , ЕстьИзменения); @@ -185,6 +195,10 @@ Процедура ОбновитьГруппыЗначенийДоступа(ЗначениеДоступа = Неопределено, ЕстьИзменения = Неопределено) Экспорт + Если УправлениеДоступомСлужебный.ОтключеноОграничениеНаУровнеЗаписей() Тогда + Возврат; + КонецЕсли; + Если ЗначениеДоступа = Неопределено Тогда ОбновитьГруппыПустыхЗначенийДоступа(ЕстьИзменения); КонецЕсли; diff --git a/SSL/src/InformationRegisters/ДампыПлатформы/ManagerModule.bsl b/SSL/src/InformationRegisters/ДампыПлатформы/ManagerModule.bsl index 90be678f9..14f8276e8 100644 --- a/SSL/src/InformationRegisters/ДампыПлатформы/ManagerModule.bsl +++ b/SSL/src/InformationRegisters/ДампыПлатформы/ManagerModule.bsl @@ -1,5 +1,5 @@ /////////////////////////////////////////////////////////////////////////////////////////////////////// -// Copyright (c) 2024, ООО 1С-Софт +// Copyright (c) 2025, ООО 1С-Софт // Все права защищены. Эта программа и сопроводительные материалы предоставляются // в соответствии с условиями лицензии Attribution 4.0 International (CC BY 4.0) // Текст лицензии доступен по ссылке: diff --git a/SSL/src/InformationRegisters/ДанныеБизнесПроцессов/Commands/МоиБизнесПроцессы/CommandModule.bsl b/SSL/src/InformationRegisters/ДанныеБизнесПроцессов/Commands/МоиБизнесПроцессы/CommandModule.bsl index c4faf216d..52a7e11e9 100644 --- a/SSL/src/InformationRegisters/ДанныеБизнесПроцессов/Commands/МоиБизнесПроцессы/CommandModule.bsl +++ b/SSL/src/InformationRegisters/ДанныеБизнесПроцессов/Commands/МоиБизнесПроцессы/CommandModule.bsl @@ -1,5 +1,5 @@ /////////////////////////////////////////////////////////////////////////////////////////////////////// -// Copyright (c) 2024, ООО 1С-Софт +// Copyright (c) 2025, ООО 1С-Софт // Все права защищены. Эта программа и сопроводительные материалы предоставляются // в соответствии с условиями лицензии Attribution 4.0 International (CC BY 4.0) // Текст лицензии доступен по ссылке: diff --git a/SSL/src/InformationRegisters/ДанныеБизнесПроцессов/Forms/МоиБизнесПроцессы/Module.bsl b/SSL/src/InformationRegisters/ДанныеБизнесПроцессов/Forms/МоиБизнесПроцессы/Module.bsl index 091c20770..9e68ae81b 100644 --- a/SSL/src/InformationRegisters/ДанныеБизнесПроцессов/Forms/МоиБизнесПроцессы/Module.bsl +++ b/SSL/src/InformationRegisters/ДанныеБизнесПроцессов/Forms/МоиБизнесПроцессы/Module.bsl @@ -1,5 +1,5 @@ /////////////////////////////////////////////////////////////////////////////////////////////////////// -// Copyright (c) 2024, ООО 1С-Софт +// Copyright (c) 2025, ООО 1С-Софт // Все права защищены. Эта программа и сопроводительные материалы предоставляются // в соответствии с условиями лицензии Attribution 4.0 International (CC BY 4.0) // Текст лицензии доступен по ссылке: diff --git a/SSL/src/InformationRegisters/ДанныеБизнесПроцессов/Forms/ФормаСписка/Module.bsl b/SSL/src/InformationRegisters/ДанныеБизнесПроцессов/Forms/ФормаСписка/Module.bsl index 5970e017a..7a929bda2 100644 --- a/SSL/src/InformationRegisters/ДанныеБизнесПроцессов/Forms/ФормаСписка/Module.bsl +++ b/SSL/src/InformationRegisters/ДанныеБизнесПроцессов/Forms/ФормаСписка/Module.bsl @@ -1,5 +1,5 @@ /////////////////////////////////////////////////////////////////////////////////////////////////////// -// Copyright (c) 2024, ООО 1С-Софт +// Copyright (c) 2025, ООО 1С-Софт // Все права защищены. Эта программа и сопроводительные материалы предоставляются // в соответствии с условиями лицензии Attribution 4.0 International (CC BY 4.0) // Текст лицензии доступен по ссылке: diff --git a/SSL/src/InformationRegisters/ДанныеБизнесПроцессов/ManagerModule.bsl b/SSL/src/InformationRegisters/ДанныеБизнесПроцессов/ManagerModule.bsl index 75a69e767..f02d65527 100644 --- a/SSL/src/InformationRegisters/ДанныеБизнесПроцессов/ManagerModule.bsl +++ b/SSL/src/InformationRegisters/ДанныеБизнесПроцессов/ManagerModule.bsl @@ -1,5 +1,5 @@ /////////////////////////////////////////////////////////////////////////////////////////////////////// -// Copyright (c) 2024, ООО 1С-Софт +// Copyright (c) 2025, ООО 1С-Софт // Все права защищены. Эта программа и сопроводительные материалы предоставляются // в соответствии с условиями лицензии Attribution 4.0 International (CC BY 4.0) // Текст лицензии доступен по ссылке: diff --git a/SSL/src/InformationRegisters/ДанныеОбработанныеВЦентральномУзлеРИБ/ManagerModule.bsl b/SSL/src/InformationRegisters/ДанныеОбработанныеВЦентральномУзлеРИБ/ManagerModule.bsl index c644d59e2..6631bcb74 100644 --- a/SSL/src/InformationRegisters/ДанныеОбработанныеВЦентральномУзлеРИБ/ManagerModule.bsl +++ b/SSL/src/InformationRegisters/ДанныеОбработанныеВЦентральномУзлеРИБ/ManagerModule.bsl @@ -1,5 +1,5 @@ /////////////////////////////////////////////////////////////////////////////////////////////////////// -// Copyright (c) 2024, ООО 1С-Софт +// Copyright (c) 2025, ООО 1С-Софт // Все права защищены. Эта программа и сопроводительные материалы предоставляются // в соответствии с условиями лицензии Attribution 4.0 International (CC BY 4.0) // Текст лицензии доступен по ссылке: diff --git a/SSL/src/InformationRegisters/ДанныеОбработанныеВЦентральномУзлеРИБ/RecordSetModule.bsl b/SSL/src/InformationRegisters/ДанныеОбработанныеВЦентральномУзлеРИБ/RecordSetModule.bsl index 6dd080120..62014308b 100644 --- a/SSL/src/InformationRegisters/ДанныеОбработанныеВЦентральномУзлеРИБ/RecordSetModule.bsl +++ b/SSL/src/InformationRegisters/ДанныеОбработанныеВЦентральномУзлеРИБ/RecordSetModule.bsl @@ -1,5 +1,5 @@ /////////////////////////////////////////////////////////////////////////////////////////////////////// -// Copyright (c) 2024, ООО 1С-Софт +// Copyright (c) 2025, ООО 1С-Софт // Все права защищены. Эта программа и сопроводительные материалы предоставляются // в соответствии с условиями лицензии Attribution 4.0 International (CC BY 4.0) // Текст лицензии доступен по ссылке: diff --git a/SSL/src/InformationRegisters/ДанныеОбъектовДляРегистрацииВОбменах/ManagerModule.bsl b/SSL/src/InformationRegisters/ДанныеОбъектовДляРегистрацииВОбменах/ManagerModule.bsl index 3cc0e0101..c6458a19d 100644 --- a/SSL/src/InformationRegisters/ДанныеОбъектовДляРегистрацииВОбменах/ManagerModule.bsl +++ b/SSL/src/InformationRegisters/ДанныеОбъектовДляРегистрацииВОбменах/ManagerModule.bsl @@ -1,5 +1,5 @@ /////////////////////////////////////////////////////////////////////////////////////////////////////// -// Copyright (c) 2024, ООО 1С-Софт +// Copyright (c) 2025, ООО 1С-Софт // Все права защищены. Эта программа и сопроводительные материалы предоставляются // в соответствии с условиями лицензии Attribution 4.0 International (CC BY 4.0) // Текст лицензии доступен по ссылке: diff --git a/SSL/src/InformationRegisters/ДатыЗапретаИзменения/Commands/ДатыЗапретаЗагрузкиДанных/CommandModule.bsl b/SSL/src/InformationRegisters/ДатыЗапретаИзменения/Commands/ДатыЗапретаЗагрузкиДанных/CommandModule.bsl index 4900f6105..340e310d8 100644 --- a/SSL/src/InformationRegisters/ДатыЗапретаИзменения/Commands/ДатыЗапретаЗагрузкиДанных/CommandModule.bsl +++ b/SSL/src/InformationRegisters/ДатыЗапретаИзменения/Commands/ДатыЗапретаЗагрузкиДанных/CommandModule.bsl @@ -1,5 +1,5 @@ /////////////////////////////////////////////////////////////////////////////////////////////////////// -// Copyright (c) 2024, ООО 1С-Софт +// Copyright (c) 2025, ООО 1С-Софт // Все права защищены. Эта программа и сопроводительные материалы предоставляются // в соответствии с условиями лицензии Attribution 4.0 International (CC BY 4.0) // Текст лицензии доступен по ссылке: diff --git a/SSL/src/InformationRegisters/ДатыЗапретаИзменения/Commands/ДатыЗапретаИзмененияДанных/CommandModule.bsl b/SSL/src/InformationRegisters/ДатыЗапретаИзменения/Commands/ДатыЗапретаИзмененияДанных/CommandModule.bsl index 40b78e6a2..cadc1717b 100644 --- a/SSL/src/InformationRegisters/ДатыЗапретаИзменения/Commands/ДатыЗапретаИзмененияДанных/CommandModule.bsl +++ b/SSL/src/InformationRegisters/ДатыЗапретаИзменения/Commands/ДатыЗапретаИзмененияДанных/CommandModule.bsl @@ -1,5 +1,5 @@ /////////////////////////////////////////////////////////////////////////////////////////////////////// -// Copyright (c) 2024, ООО 1С-Софт +// Copyright (c) 2025, ООО 1С-Софт // Все права защищены. Эта программа и сопроводительные материалы предоставляются // в соответствии с условиями лицензии Attribution 4.0 International (CC BY 4.0) // Текст лицензии доступен по ссылке: diff --git a/SSL/src/InformationRegisters/ДатыЗапретаИзменения/Forms/ДатыЗапретаИзменения/Module.bsl b/SSL/src/InformationRegisters/ДатыЗапретаИзменения/Forms/ДатыЗапретаИзменения/Module.bsl index ffb9de04d..cdd2c0b37 100644 --- a/SSL/src/InformationRegisters/ДатыЗапретаИзменения/Forms/ДатыЗапретаИзменения/Module.bsl +++ b/SSL/src/InformationRegisters/ДатыЗапретаИзменения/Forms/ДатыЗапретаИзменения/Module.bsl @@ -1,5 +1,5 @@ /////////////////////////////////////////////////////////////////////////////////////////////////////// -// Copyright (c) 2024, ООО 1С-Софт +// Copyright (c) 2025, ООО 1С-Софт // Все права защищены. Эта программа и сопроводительные материалы предоставляются // в соответствии с условиями лицензии Attribution 4.0 International (CC BY 4.0) // Текст лицензии доступен по ссылке: diff --git a/SSL/src/InformationRegisters/ДатыЗапретаИзменения/Forms/РедактированиеДатыЗапрета/Module.bsl b/SSL/src/InformationRegisters/ДатыЗапретаИзменения/Forms/РедактированиеДатыЗапрета/Module.bsl index a224b8356..0389e4f7e 100644 --- a/SSL/src/InformationRegisters/ДатыЗапретаИзменения/Forms/РедактированиеДатыЗапрета/Module.bsl +++ b/SSL/src/InformationRegisters/ДатыЗапретаИзменения/Forms/РедактированиеДатыЗапрета/Module.bsl @@ -1,5 +1,5 @@ /////////////////////////////////////////////////////////////////////////////////////////////////////// -// Copyright (c) 2024, ООО 1С-Софт +// Copyright (c) 2025, ООО 1С-Софт // Все права защищены. Эта программа и сопроводительные материалы предоставляются // в соответствии с условиями лицензии Attribution 4.0 International (CC BY 4.0) // Текст лицензии доступен по ссылке: diff --git a/SSL/src/InformationRegisters/ДатыЗапретаИзменения/Forms/ФормаЗаписи/Module.bsl b/SSL/src/InformationRegisters/ДатыЗапретаИзменения/Forms/ФормаЗаписи/Module.bsl index e4774d37c..6473ab794 100644 --- a/SSL/src/InformationRegisters/ДатыЗапретаИзменения/Forms/ФормаЗаписи/Module.bsl +++ b/SSL/src/InformationRegisters/ДатыЗапретаИзменения/Forms/ФормаЗаписи/Module.bsl @@ -1,5 +1,5 @@ /////////////////////////////////////////////////////////////////////////////////////////////////////// -// Copyright (c) 2024, ООО 1С-Софт +// Copyright (c) 2025, ООО 1С-Софт // Все права защищены. Эта программа и сопроводительные материалы предоставляются // в соответствии с условиями лицензии Attribution 4.0 International (CC BY 4.0) // Текст лицензии доступен по ссылке: diff --git a/SSL/src/InformationRegisters/ДатыЗапретаИзменения/Forms/ФормаСписка/Module.bsl b/SSL/src/InformationRegisters/ДатыЗапретаИзменения/Forms/ФормаСписка/Module.bsl index 9d228b3d2..c24e93f29 100644 --- a/SSL/src/InformationRegisters/ДатыЗапретаИзменения/Forms/ФормаСписка/Module.bsl +++ b/SSL/src/InformationRegisters/ДатыЗапретаИзменения/Forms/ФормаСписка/Module.bsl @@ -1,5 +1,5 @@ /////////////////////////////////////////////////////////////////////////////////////////////////////// -// Copyright (c) 2024, ООО 1С-Софт +// Copyright (c) 2025, ООО 1С-Софт // Все права защищены. Эта программа и сопроводительные материалы предоставляются // в соответствии с условиями лицензии Attribution 4.0 International (CC BY 4.0) // Текст лицензии доступен по ссылке: diff --git a/SSL/src/InformationRegisters/ДатыЗапретаИзменения/ManagerModule.bsl b/SSL/src/InformationRegisters/ДатыЗапретаИзменения/ManagerModule.bsl index 1c8ebde4f..297648646 100644 --- a/SSL/src/InformationRegisters/ДатыЗапретаИзменения/ManagerModule.bsl +++ b/SSL/src/InformationRegisters/ДатыЗапретаИзменения/ManagerModule.bsl @@ -1,5 +1,5 @@ /////////////////////////////////////////////////////////////////////////////////////////////////////// -// Copyright (c) 2024, ООО 1С-Софт +// Copyright (c) 2025, ООО 1С-Софт // Все права защищены. Эта программа и сопроводительные материалы предоставляются // в соответствии с условиями лицензии Attribution 4.0 International (CC BY 4.0) // Текст лицензии доступен по ссылке: diff --git a/SSL/src/InformationRegisters/ДатыЗапретаИзменения/RecordSetModule.bsl b/SSL/src/InformationRegisters/ДатыЗапретаИзменения/RecordSetModule.bsl index db0ac62de..b3e57bf2e 100644 --- a/SSL/src/InformationRegisters/ДатыЗапретаИзменения/RecordSetModule.bsl +++ b/SSL/src/InformationRegisters/ДатыЗапретаИзменения/RecordSetModule.bsl @@ -1,5 +1,5 @@ /////////////////////////////////////////////////////////////////////////////////////////////////////// -// Copyright (c) 2024, ООО 1С-Софт +// Copyright (c) 2025, ООО 1С-Софт // Все права защищены. Эта программа и сопроводительные материалы предоставляются // в соответствии с условиями лицензии Attribution 4.0 International (CC BY 4.0) // Текст лицензии доступен по ссылке: diff --git a/SSL/src/InformationRegisters/ДатыЗапретаИзменения/ДатыЗапретаИзменения.mdo b/SSL/src/InformationRegisters/ДатыЗапретаИзменения/ДатыЗапретаИзменения.mdo index b178e3db6..f3eff2a86 100644 --- a/SSL/src/InformationRegisters/ДатыЗапретаИзменения/ДатыЗапретаИзменения.mdo +++ b/SSL/src/InformationRegisters/ДатыЗапретаИзменения/ДатыЗапретаИзменения.mdo @@ -71,7 +71,7 @@ </type> <toolTip> <key>ru</key> - <value>Дата фактического запрета изменения данных</value> + <value>Дата фактического запрета изменения данных, если не заполнен реквизит Описание даты запрета, в противном случае 02.02.3999 (признак вычисляемой относительной даты запрета)</value> </toolTip> <minValue xsi:type="core:UndefinedValue"/> <maxValue xsi:type="core:UndefinedValue"/> @@ -85,7 +85,6 @@ <key>ru</key> <value>Описание даты запрета</value> </synonym> - <comment>Описание относительной даты запрета, используемое для вычисления даты запрета на текущую дату</comment> <type> <types>String</types> <stringQualifiers> @@ -108,7 +107,6 @@ <key>ru</key> <value>Комментарий</value> </synonym> - <comment>Комментарий к отдельной настройке запрета по пользователю/группу пользователей</comment> <type> <types>String</types> <stringQualifiers> diff --git a/SSL/src/InformationRegisters/ДлительныеОперации/Forms/ФормаЗаписи/Module.bsl b/SSL/src/InformationRegisters/ДлительныеОперации/Forms/ФормаЗаписи/Module.bsl index 378e44d16..9dc27c836 100644 --- a/SSL/src/InformationRegisters/ДлительныеОперации/Forms/ФормаЗаписи/Module.bsl +++ b/SSL/src/InformationRegisters/ДлительныеОперации/Forms/ФормаЗаписи/Module.bsl @@ -1,5 +1,5 @@ /////////////////////////////////////////////////////////////////////////////////////////////////////// -// Copyright (c) 2024, ООО 1С-Софт +// Copyright (c) 2025, ООО 1С-Софт // Все права защищены. Эта программа и сопроводительные материалы предоставляются // в соответствии с условиями лицензии Attribution 4.0 International (CC BY 4.0) // Текст лицензии доступен по ссылке: diff --git a/SSL/src/InformationRegisters/ДлительныеОперации/Forms/ФормаСписка/Module.bsl b/SSL/src/InformationRegisters/ДлительныеОперации/Forms/ФормаСписка/Module.bsl index 55fdb4ad5..a4420ec05 100644 --- a/SSL/src/InformationRegisters/ДлительныеОперации/Forms/ФормаСписка/Module.bsl +++ b/SSL/src/InformationRegisters/ДлительныеОперации/Forms/ФормаСписка/Module.bsl @@ -1,5 +1,5 @@ /////////////////////////////////////////////////////////////////////////////////////////////////////// -// Copyright (c) 2024, ООО 1С-Софт +// Copyright (c) 2025, ООО 1С-Софт // Все права защищены. Эта программа и сопроводительные материалы предоставляются // в соответствии с условиями лицензии Attribution 4.0 International (CC BY 4.0) // Текст лицензии доступен по ссылке: diff --git a/SSL/src/InformationRegisters/ДомаЗданияСтроения/RecordSetModule.bsl b/SSL/src/InformationRegisters/ДомаЗданияСтроения/RecordSetModule.bsl new file mode 100644 index 000000000..e69de29bb diff --git a/SSL/src/InformationRegisters/ДополнительныеСведения/ManagerModule.bsl b/SSL/src/InformationRegisters/ДополнительныеСведения/ManagerModule.bsl index b072ac398..be0d07773 100644 --- a/SSL/src/InformationRegisters/ДополнительныеСведения/ManagerModule.bsl +++ b/SSL/src/InformationRegisters/ДополнительныеСведения/ManagerModule.bsl @@ -1,5 +1,5 @@ /////////////////////////////////////////////////////////////////////////////////////////////////////// -// Copyright (c) 2024, ООО 1С-Софт +// Copyright (c) 2025, ООО 1С-Софт // Все права защищены. Эта программа и сопроводительные материалы предоставляются // в соответствии с условиями лицензии Attribution 4.0 International (CC BY 4.0) // Текст лицензии доступен по ссылке: diff --git a/SSL/src/InformationRegisters/ДополнительныеСведения/RecordSetModule.bsl b/SSL/src/InformationRegisters/ДополнительныеСведения/RecordSetModule.bsl index 3b3e51b53..d8de3fcf0 100644 --- a/SSL/src/InformationRegisters/ДополнительныеСведения/RecordSetModule.bsl +++ b/SSL/src/InformationRegisters/ДополнительныеСведения/RecordSetModule.bsl @@ -1,5 +1,5 @@ /////////////////////////////////////////////////////////////////////////////////////////////////////// -// Copyright (c) 2024, ООО 1С-Софт +// Copyright (c) 2025, ООО 1С-Софт // Все права защищены. Эта программа и сопроводительные материалы предоставляются // в соответствии с условиями лицензии Attribution 4.0 International (CC BY 4.0) // Текст лицензии доступен по ссылке: diff --git a/SSL/src/InformationRegisters/ЗависимостиПравДоступа/Forms/ФормаЗаписи/Module.bsl b/SSL/src/InformationRegisters/ЗависимостиПравДоступа/Forms/ФормаЗаписи/Module.bsl index 40d9d454b..bc074e9a3 100644 --- a/SSL/src/InformationRegisters/ЗависимостиПравДоступа/Forms/ФормаЗаписи/Module.bsl +++ b/SSL/src/InformationRegisters/ЗависимостиПравДоступа/Forms/ФормаЗаписи/Module.bsl @@ -1,5 +1,5 @@ /////////////////////////////////////////////////////////////////////////////////////////////////////// -// Copyright (c) 2024, ООО 1С-Софт +// Copyright (c) 2025, ООО 1С-Софт // Все права защищены. Эта программа и сопроводительные материалы предоставляются // в соответствии с условиями лицензии Attribution 4.0 International (CC BY 4.0) // Текст лицензии доступен по ссылке: diff --git a/SSL/src/InformationRegisters/ЗависимостиПравДоступа/Forms/ФормаСписка/Module.bsl b/SSL/src/InformationRegisters/ЗависимостиПравДоступа/Forms/ФормаСписка/Module.bsl index 946ee7e71..bba00e2d3 100644 --- a/SSL/src/InformationRegisters/ЗависимостиПравДоступа/Forms/ФормаСписка/Module.bsl +++ b/SSL/src/InformationRegisters/ЗависимостиПравДоступа/Forms/ФормаСписка/Module.bsl @@ -1,5 +1,5 @@ /////////////////////////////////////////////////////////////////////////////////////////////////////// -// Copyright (c) 2024, ООО 1С-Софт +// Copyright (c) 2025, ООО 1С-Софт // Все права защищены. Эта программа и сопроводительные материалы предоставляются // в соответствии с условиями лицензии Attribution 4.0 International (CC BY 4.0) // Текст лицензии доступен по ссылке: diff --git a/SSL/src/InformationRegisters/ЗависимостиПравДоступа/ManagerModule.bsl b/SSL/src/InformationRegisters/ЗависимостиПравДоступа/ManagerModule.bsl index 9ee1fe8f4..65c74b40e 100644 --- a/SSL/src/InformationRegisters/ЗависимостиПравДоступа/ManagerModule.bsl +++ b/SSL/src/InformationRegisters/ЗависимостиПравДоступа/ManagerModule.bsl @@ -1,5 +1,5 @@ /////////////////////////////////////////////////////////////////////////////////////////////////////// -// Copyright (c) 2024, ООО 1С-Софт +// Copyright (c) 2025, ООО 1С-Софт // Все права защищены. Эта программа и сопроводительные материалы предоставляются // в соответствии с условиями лицензии Attribution 4.0 International (CC BY 4.0) // Текст лицензии доступен по ссылке: @@ -19,6 +19,12 @@ // Процедура ОбновитьДанныеРегистра(ЕстьИзменения = Неопределено) Экспорт + Если УправлениеДоступомСлужебный.ОтключеноОграничениеНаУровнеЗаписей() Тогда + УправлениеДоступомСлужебный.ОчиститьРегистрСведений( + Метаданные.РегистрыСведений.ЗависимостиПравДоступа.ПолноеИмя(), ЕстьИзменения); + Возврат; + КонецЕсли; + СтандартныеПодсистемыСервер.ПроверитьДинамическоеОбновлениеВерсииПрограммы(); УстановитьПривилегированныйРежим(Истина); diff --git a/SSL/src/InformationRegisters/ЗамерыВремени/Forms/ФормаСписка/Module.bsl b/SSL/src/InformationRegisters/ЗамерыВремени/Forms/ФормаСписка/Module.bsl index 758191330..736cb903d 100644 --- a/SSL/src/InformationRegisters/ЗамерыВремени/Forms/ФормаСписка/Module.bsl +++ b/SSL/src/InformationRegisters/ЗамерыВремени/Forms/ФормаСписка/Module.bsl @@ -1,5 +1,5 @@ /////////////////////////////////////////////////////////////////////////////////////////////////////// -// Copyright (c) 2024, ООО 1С-Софт +// Copyright (c) 2025, ООО 1С-Софт // Все права защищены. Эта программа и сопроводительные материалы предоставляются // в соответствии с условиями лицензии Attribution 4.0 International (CC BY 4.0) // Текст лицензии доступен по ссылке: diff --git a/SSL/src/InformationRegisters/ЗамерыВремени/ManagerModule.bsl b/SSL/src/InformationRegisters/ЗамерыВремени/ManagerModule.bsl index c0480e3cc..7f7faf2f6 100644 --- a/SSL/src/InformationRegisters/ЗамерыВремени/ManagerModule.bsl +++ b/SSL/src/InformationRegisters/ЗамерыВремени/ManagerModule.bsl @@ -1,5 +1,5 @@ /////////////////////////////////////////////////////////////////////////////////////////////////////// -// Copyright (c) 2024, ООО 1С-Софт +// Copyright (c) 2025, ООО 1С-Софт // Все права защищены. Эта программа и сопроводительные материалы предоставляются // в соответствии с условиями лицензии Attribution 4.0 International (CC BY 4.0) // Текст лицензии доступен по ссылке: diff --git a/SSL/src/InformationRegisters/ЗамерыВремениТехнологические/ManagerModule.bsl b/SSL/src/InformationRegisters/ЗамерыВремениТехнологические/ManagerModule.bsl index 64312c947..0b79bcd1e 100644 --- a/SSL/src/InformationRegisters/ЗамерыВремениТехнологические/ManagerModule.bsl +++ b/SSL/src/InformationRegisters/ЗамерыВремениТехнологические/ManagerModule.bsl @@ -1,5 +1,5 @@ /////////////////////////////////////////////////////////////////////////////////////////////////////// -// Copyright (c) 2024, ООО 1С-Софт +// Copyright (c) 2025, ООО 1С-Софт // Все права защищены. Эта программа и сопроводительные материалы предоставляются // в соответствии с условиями лицензии Attribution 4.0 International (CC BY 4.0) // Текст лицензии доступен по ссылке: diff --git a/SSL/src/InformationRegisters/ЗамерыКомментарииСтатистики/ManagerModule.bsl b/SSL/src/InformationRegisters/ЗамерыКомментарииСтатистики/ManagerModule.bsl index 02c06962b..1da476040 100644 --- a/SSL/src/InformationRegisters/ЗамерыКомментарииСтатистики/ManagerModule.bsl +++ b/SSL/src/InformationRegisters/ЗамерыКомментарииСтатистики/ManagerModule.bsl @@ -1,5 +1,5 @@ /////////////////////////////////////////////////////////////////////////////////////////////////////// -// Copyright (c) 2024, ООО 1С-Софт +// Copyright (c) 2025, ООО 1С-Софт // Все права защищены. Эта программа и сопроводительные материалы предоставляются // в соответствии с условиями лицензии Attribution 4.0 International (CC BY 4.0) // Текст лицензии доступен по ссылке: diff --git a/SSL/src/InformationRegisters/ЗамерыОбластиСтатистики/ManagerModule.bsl b/SSL/src/InformationRegisters/ЗамерыОбластиСтатистики/ManagerModule.bsl index 7f7d5cf9d..5901e1b04 100644 --- a/SSL/src/InformationRegisters/ЗамерыОбластиСтатистики/ManagerModule.bsl +++ b/SSL/src/InformationRegisters/ЗамерыОбластиСтатистики/ManagerModule.bsl @@ -1,5 +1,5 @@ /////////////////////////////////////////////////////////////////////////////////////////////////////// -// Copyright (c) 2024, ООО 1С-Софт +// Copyright (c) 2025, ООО 1С-Софт // Все права защищены. Эта программа и сопроводительные материалы предоставляются // в соответствии с условиями лицензии Attribution 4.0 International (CC BY 4.0) // Текст лицензии доступен по ссылке: diff --git a/SSL/src/InformationRegisters/ЗамерыОперацииСтатистики/ManagerModule.bsl b/SSL/src/InformationRegisters/ЗамерыОперацииСтатистики/ManagerModule.bsl index d3b326b88..49ae23367 100644 --- a/SSL/src/InformationRegisters/ЗамерыОперацииСтатистики/ManagerModule.bsl +++ b/SSL/src/InformationRegisters/ЗамерыОперацииСтатистики/ManagerModule.bsl @@ -1,5 +1,5 @@ /////////////////////////////////////////////////////////////////////////////////////////////////////// -// Copyright (c) 2024, ООО 1С-Софт +// Copyright (c) 2025, ООО 1С-Софт // Все права защищены. Эта программа и сопроводительные материалы предоставляются // в соответствии с условиями лицензии Attribution 4.0 International (CC BY 4.0) // Текст лицензии доступен по ссылке: diff --git a/SSL/src/InformationRegisters/ЗамерыСтатистики/ManagerModule.bsl b/SSL/src/InformationRegisters/ЗамерыСтатистики/ManagerModule.bsl index 3ca1e5e08..bf7a56621 100644 --- a/SSL/src/InformationRegisters/ЗамерыСтатистики/ManagerModule.bsl +++ b/SSL/src/InformationRegisters/ЗамерыСтатистики/ManagerModule.bsl @@ -1,5 +1,5 @@ /////////////////////////////////////////////////////////////////////////////////////////////////////// -// Copyright (c) 2024, ООО 1С-Софт +// Copyright (c) 2025, ООО 1С-Софт // Все права защищены. Эта программа и сопроводительные материалы предоставляются // в соответствии с условиями лицензии Attribution 4.0 International (CC BY 4.0) // Текст лицензии доступен по ссылке: diff --git a/SSL/src/InformationRegisters/ЗапросыРазрешенийНаИспользованиеВнешнихРесурсов/ManagerModule.bsl b/SSL/src/InformationRegisters/ЗапросыРазрешенийНаИспользованиеВнешнихРесурсов/ManagerModule.bsl index 15cc5eecd..7380d42c3 100644 --- a/SSL/src/InformationRegisters/ЗапросыРазрешенийНаИспользованиеВнешнихРесурсов/ManagerModule.bsl +++ b/SSL/src/InformationRegisters/ЗапросыРазрешенийНаИспользованиеВнешнихРесурсов/ManagerModule.bsl @@ -1,5 +1,5 @@ /////////////////////////////////////////////////////////////////////////////////////////////////////// -// Copyright (c) 2024, ООО 1С-Софт +// Copyright (c) 2025, ООО 1С-Софт // Все права защищены. Эта программа и сопроводительные материалы предоставляются // в соответствии с условиями лицензии Attribution 4.0 International (CC BY 4.0) // Текст лицензии доступен по ссылке: diff --git a/SSL/src/InformationRegisters/ЗапросыРазрешенийНаИспользованиеВнешнихРесурсов/RecordSetModule.bsl b/SSL/src/InformationRegisters/ЗапросыРазрешенийНаИспользованиеВнешнихРесурсов/RecordSetModule.bsl index d2f2155fc..a733fb888 100644 --- a/SSL/src/InformationRegisters/ЗапросыРазрешенийНаИспользованиеВнешнихРесурсов/RecordSetModule.bsl +++ b/SSL/src/InformationRegisters/ЗапросыРазрешенийНаИспользованиеВнешнихРесурсов/RecordSetModule.bsl @@ -1,5 +1,5 @@ /////////////////////////////////////////////////////////////////////////////////////////////////////// -// Copyright (c) 2024, ООО 1С-Софт +// Copyright (c) 2025, ООО 1С-Софт // Все права защищены. Эта программа и сопроводительные материалы предоставляются // в соответствии с условиями лицензии Attribution 4.0 International (CC BY 4.0) // Текст лицензии доступен по ссылке: diff --git a/SSL/src/InformationRegisters/ЗаявленияНаВыпускСертификата/Forms/ФормаЗаписи/Form.form b/SSL/src/InformationRegisters/ЗаявленияНаВыпускСертификата/Forms/ФормаЗаписи/Form.form index 6129e9f7e..6d5b0e065 100644 --- a/SSL/src/InformationRegisters/ЗаявленияНаВыпускСертификата/Forms/ФормаЗаписи/Form.form +++ b/SSL/src/InformationRegisters/ЗаявленияНаВыпускСертификата/Forms/ФормаЗаписи/Form.form @@ -521,5 +521,14 @@ <navigationPanel/> <commandBar/> </commandInterface> - <extInfo xsi:type="form:InformationRegisterManagerFormExtInfo"/> + <extInfo xsi:type="form:InformationRegisterManagerFormExtInfo"> + <handlers> + <event>AfterWriteAtServer</event> + <name>ПослеЗаписиНаСервере</name> + </handlers> + <handlers> + <event>OnReadAtServer</event> + <name>ПриЧтенииНаСервере</name> + </handlers> + </extInfo> </form:Form> diff --git a/SSL/src/InformationRegisters/ЗаявленияНаВыпускСертификата/Forms/ФормаЗаписи/Module.bsl b/SSL/src/InformationRegisters/ЗаявленияНаВыпускСертификата/Forms/ФормаЗаписи/Module.bsl index ecf717ef1..e39ef9dbf 100644 --- a/SSL/src/InformationRegisters/ЗаявленияНаВыпускСертификата/Forms/ФормаЗаписи/Module.bsl +++ b/SSL/src/InformationRegisters/ЗаявленияНаВыпускСертификата/Forms/ФормаЗаписи/Module.bsl @@ -1,5 +1,5 @@ /////////////////////////////////////////////////////////////////////////////////////////////////////// -// Copyright (c) 2024, ООО 1С-Софт +// Copyright (c) 2025, ООО 1С-Софт // Все права защищены. Эта программа и сопроводительные материалы предоставляются // в соответствии с условиями лицензии Attribution 4.0 International (CC BY 4.0) // Текст лицензии доступен по ссылке: @@ -15,4 +15,28 @@ КонецПроцедуры +&НаСервере +Процедура ПриЧтенииНаСервере(ТекущийОбъект) + + // СтандартныеПодсистемы.УправлениеДоступом + Если ОбщегоНазначения.ПодсистемаСуществует("СтандартныеПодсистемы.УправлениеДоступом") Тогда + МодульУправлениеДоступом = ОбщегоНазначения.ОбщийМодуль("УправлениеДоступом"); + МодульУправлениеДоступом.ПриЧтенииНаСервере(ЭтотОбъект, ТекущийОбъект); + КонецЕсли; + // Конец СтандартныеПодсистемы.УправлениеДоступом + +КонецПроцедуры + +&НаСервере +Процедура ПослеЗаписиНаСервере(ТекущийОбъект, ПараметрыЗаписи) + + // СтандартныеПодсистемы.УправлениеДоступом + Если ОбщегоНазначения.ПодсистемаСуществует("СтандартныеПодсистемы.УправлениеДоступом") Тогда + МодульУправлениеДоступом = ОбщегоНазначения.ОбщийМодуль("УправлениеДоступом"); + МодульУправлениеДоступом.ПослеЗаписиНаСервере(ЭтотОбъект, ТекущийОбъект, ПараметрыЗаписи); + КонецЕсли; + // Конец СтандартныеПодсистемы.УправлениеДоступом + +КонецПроцедуры + #КонецОбласти diff --git a/SSL/src/InformationRegisters/ЗаявленияНаВыпускСертификата/Forms/ФормаСписка/Module.bsl b/SSL/src/InformationRegisters/ЗаявленияНаВыпускСертификата/Forms/ФормаСписка/Module.bsl index ecf717ef1..2039e7ee1 100644 --- a/SSL/src/InformationRegisters/ЗаявленияНаВыпускСертификата/Forms/ФормаСписка/Module.bsl +++ b/SSL/src/InformationRegisters/ЗаявленияНаВыпускСертификата/Forms/ФормаСписка/Module.bsl @@ -1,5 +1,5 @@ /////////////////////////////////////////////////////////////////////////////////////////////////////// -// Copyright (c) 2024, ООО 1С-Софт +// Copyright (c) 2025, ООО 1С-Софт // Все права защищены. Эта программа и сопроводительные материалы предоставляются // в соответствии с условиями лицензии Attribution 4.0 International (CC BY 4.0) // Текст лицензии доступен по ссылке: diff --git a/SSL/src/InformationRegisters/ЗаявленияНаВыпускСертификата/ManagerModule.bsl b/SSL/src/InformationRegisters/ЗаявленияНаВыпускСертификата/ManagerModule.bsl index e69de29bb..0b16ffaeb 100644 --- a/SSL/src/InformationRegisters/ЗаявленияНаВыпускСертификата/ManagerModule.bsl +++ b/SSL/src/InformationRegisters/ЗаявленияНаВыпускСертификата/ManagerModule.bsl @@ -0,0 +1,40 @@ +/////////////////////////////////////////////////////////////////////////////////////////////////////// +// Copyright (c) 2025, ООО 1С-Софт +// Все права защищены. Эта программа и сопроводительные материалы предоставляются +// в соответствии с условиями лицензии Attribution 4.0 International (CC BY 4.0) +// Текст лицензии доступен по ссылке: +// https://creativecommons.org/licenses/by/4.0/legalcode +/////////////////////////////////////////////////////////////////////////////////////////////////////// + +#Если Сервер Или ТолстыйКлиентОбычноеПриложение Или ВнешнееСоединение Тогда + +#Область ПрограммныйИнтерфейс + +#Область ДляВызоваИзДругихПодсистем + +// СтандартныеПодсистемы.УправлениеДоступом + +// Параметры: +// Ограничение - см. УправлениеДоступомПереопределяемый.ПриЗаполненииОграниченияДоступа.Ограничение. +// +Процедура ПриЗаполненииОграниченияДоступа(Ограничение) Экспорт + + Ограничение.Текст = + "РазрешитьЧтение + |ГДЕ + | ЧтениеОбъектаРазрешено(Сертификат) + | И ЗначениеРазрешено(СертификатОснование, ПустаяСсылка КАК Истина) + |; + |РазрешитьИзменениеЕслиРазрешеноЧтение + |ГДЕ + | ИзменениеОбъектаРазрешено(Сертификат)"; + +КонецПроцедуры + +// Конец СтандартныеПодсистемы.УправлениеДоступом + +#КонецОбласти + +#КонецОбласти + +#КонецЕсли \ No newline at end of file diff --git a/SSL/src/InformationRegisters/ЗначенияГруппДоступа/Forms/ФормаЗаписи/Module.bsl b/SSL/src/InformationRegisters/ЗначенияГруппДоступа/Forms/ФормаЗаписи/Module.bsl index 00fa69d3f..55c2c57ed 100644 --- a/SSL/src/InformationRegisters/ЗначенияГруппДоступа/Forms/ФормаЗаписи/Module.bsl +++ b/SSL/src/InformationRegisters/ЗначенияГруппДоступа/Forms/ФормаЗаписи/Module.bsl @@ -1,5 +1,5 @@ /////////////////////////////////////////////////////////////////////////////////////////////////////// -// Copyright (c) 2024, ООО 1С-Софт +// Copyright (c) 2025, ООО 1С-Софт // Все права защищены. Эта программа и сопроводительные материалы предоставляются // в соответствии с условиями лицензии Attribution 4.0 International (CC BY 4.0) // Текст лицензии доступен по ссылке: diff --git a/SSL/src/InformationRegisters/ЗначенияГруппДоступа/Forms/ФормаСписка/Module.bsl b/SSL/src/InformationRegisters/ЗначенияГруппДоступа/Forms/ФормаСписка/Module.bsl index 07664a42e..5fea9f1a9 100644 --- a/SSL/src/InformationRegisters/ЗначенияГруппДоступа/Forms/ФормаСписка/Module.bsl +++ b/SSL/src/InformationRegisters/ЗначенияГруппДоступа/Forms/ФормаСписка/Module.bsl @@ -1,5 +1,5 @@ /////////////////////////////////////////////////////////////////////////////////////////////////////// -// Copyright (c) 2024, ООО 1С-Софт +// Copyright (c) 2025, ООО 1С-Софт // Все права защищены. Эта программа и сопроводительные материалы предоставляются // в соответствии с условиями лицензии Attribution 4.0 International (CC BY 4.0) // Текст лицензии доступен по ссылке: diff --git a/SSL/src/InformationRegisters/ЗначенияГруппДоступа/ManagerModule.bsl b/SSL/src/InformationRegisters/ЗначенияГруппДоступа/ManagerModule.bsl index 6e7335131..e20950cc9 100644 --- a/SSL/src/InformationRegisters/ЗначенияГруппДоступа/ManagerModule.bsl +++ b/SSL/src/InformationRegisters/ЗначенияГруппДоступа/ManagerModule.bsl @@ -1,5 +1,5 @@ /////////////////////////////////////////////////////////////////////////////////////////////////////// -// Copyright (c) 2024, ООО 1С-Софт +// Copyright (c) 2025, ООО 1С-Софт // Все права защищены. Эта программа и сопроводительные материалы предоставляются // в соответствии с условиями лицензии Attribution 4.0 International (CC BY 4.0) // Текст лицензии доступен по ссылке: @@ -67,6 +67,14 @@ // Процедура ОбновитьДанныеРегистра(ГруппыДоступа = Неопределено, ЕстьИзменения = Неопределено) Экспорт + Если УправлениеДоступомСлужебный.ОтключеноОграничениеНаУровнеЗаписей() Тогда + УправлениеДоступомСлужебный.ОчиститьРегистрСведений( + Метаданные.РегистрыСведений.ЗначенияГруппДоступа.ПолноеИмя(), ЕстьИзменения); + УправлениеДоступомСлужебный.ОчиститьРегистрСведений( + Метаданные.РегистрыСведений.ЗначенияГруппДоступаПоУмолчанию.ПолноеИмя(), ЕстьИзменения); + Возврат; + КонецЕсли; + Блокировка = Новый БлокировкаДанных; Если ГруппыДоступа = Неопределено Тогда @@ -110,7 +118,7 @@ ИспользуемыеВидыДоступа.Колонки.Добавить("ВидДоступаПользователи", Новый ОписаниеТипов("Булево")); ИспользуемыеВидыДоступа.Колонки.Добавить("ВидДоступаВнешниеПользователи", Новый ОписаниеТипов("Булево")); - ОграничениеДоступаВключено = Константы.ОграничиватьДоступНаУровнеЗаписей.Получить(); + ОграничениеДоступаВключено = УправлениеДоступомСлужебный.КонстантаОграничиватьДоступНаУровнеЗаписей(); Если УправлениеДоступом.ОграничиватьДоступНаУровнеЗаписей() <> ОграничениеДоступаВключено Тогда ОбновитьПовторноИспользуемыеЗначения(); КонецЕсли; diff --git a/SSL/src/InformationRegisters/ЗначенияГруппДоступаПоУмолчанию/Forms/ФормаЗаписи/Module.bsl b/SSL/src/InformationRegisters/ЗначенияГруппДоступаПоУмолчанию/Forms/ФормаЗаписи/Module.bsl index 00fa69d3f..55c2c57ed 100644 --- a/SSL/src/InformationRegisters/ЗначенияГруппДоступаПоУмолчанию/Forms/ФормаЗаписи/Module.bsl +++ b/SSL/src/InformationRegisters/ЗначенияГруппДоступаПоУмолчанию/Forms/ФормаЗаписи/Module.bsl @@ -1,5 +1,5 @@ /////////////////////////////////////////////////////////////////////////////////////////////////////// -// Copyright (c) 2024, ООО 1С-Софт +// Copyright (c) 2025, ООО 1С-Софт // Все права защищены. Эта программа и сопроводительные материалы предоставляются // в соответствии с условиями лицензии Attribution 4.0 International (CC BY 4.0) // Текст лицензии доступен по ссылке: diff --git a/SSL/src/InformationRegisters/ЗначенияГруппДоступаПоУмолчанию/Forms/ФормаСписка/Module.bsl b/SSL/src/InformationRegisters/ЗначенияГруппДоступаПоУмолчанию/Forms/ФормаСписка/Module.bsl index 7d42682d1..a24f7b1c7 100644 --- a/SSL/src/InformationRegisters/ЗначенияГруппДоступаПоУмолчанию/Forms/ФормаСписка/Module.bsl +++ b/SSL/src/InformationRegisters/ЗначенияГруппДоступаПоУмолчанию/Forms/ФормаСписка/Module.bsl @@ -1,5 +1,5 @@ /////////////////////////////////////////////////////////////////////////////////////////////////////// -// Copyright (c) 2024, ООО 1С-Софт +// Copyright (c) 2025, ООО 1С-Софт // Все права защищены. Эта программа и сопроводительные материалы предоставляются // в соответствии с условиями лицензии Attribution 4.0 International (CC BY 4.0) // Текст лицензии доступен по ссылке: diff --git a/SSL/src/InformationRegisters/ЗначенияГруппДоступаПоУмолчанию/ManagerModule.bsl b/SSL/src/InformationRegisters/ЗначенияГруппДоступаПоУмолчанию/ManagerModule.bsl index e54980caf..fd6e1a3af 100644 --- a/SSL/src/InformationRegisters/ЗначенияГруппДоступаПоУмолчанию/ManagerModule.bsl +++ b/SSL/src/InformationRegisters/ЗначенияГруппДоступаПоУмолчанию/ManagerModule.bsl @@ -1,5 +1,5 @@ /////////////////////////////////////////////////////////////////////////////////////////////////////// -// Copyright (c) 2024, ООО 1С-Софт +// Copyright (c) 2025, ООО 1С-Софт // Все права защищены. Эта программа и сопроводительные материалы предоставляются // в соответствии с условиями лицензии Attribution 4.0 International (CC BY 4.0) // Текст лицензии доступен по ссылке: diff --git a/SSL/src/InformationRegisters/ИдентификаторыОбъектовВерсийРасширений/Forms/ФормаЗаписи/Module.bsl b/SSL/src/InformationRegisters/ИдентификаторыОбъектовВерсийРасширений/Forms/ФормаЗаписи/Module.bsl index 55fdb4ad5..a4420ec05 100644 --- a/SSL/src/InformationRegisters/ИдентификаторыОбъектовВерсийРасширений/Forms/ФормаЗаписи/Module.bsl +++ b/SSL/src/InformationRegisters/ИдентификаторыОбъектовВерсийРасширений/Forms/ФормаЗаписи/Module.bsl @@ -1,5 +1,5 @@ /////////////////////////////////////////////////////////////////////////////////////////////////////// -// Copyright (c) 2024, ООО 1С-Софт +// Copyright (c) 2025, ООО 1С-Софт // Все права защищены. Эта программа и сопроводительные материалы предоставляются // в соответствии с условиями лицензии Attribution 4.0 International (CC BY 4.0) // Текст лицензии доступен по ссылке: diff --git a/SSL/src/InformationRegisters/ИдентификаторыОбъектовВерсийРасширений/Forms/ФормаСписка/Module.bsl b/SSL/src/InformationRegisters/ИдентификаторыОбъектовВерсийРасширений/Forms/ФормаСписка/Module.bsl index 55fdb4ad5..a4420ec05 100644 --- a/SSL/src/InformationRegisters/ИдентификаторыОбъектовВерсийРасширений/Forms/ФормаСписка/Module.bsl +++ b/SSL/src/InformationRegisters/ИдентификаторыОбъектовВерсийРасширений/Forms/ФормаСписка/Module.bsl @@ -1,5 +1,5 @@ /////////////////////////////////////////////////////////////////////////////////////////////////////// -// Copyright (c) 2024, ООО 1С-Софт +// Copyright (c) 2025, ООО 1С-Софт // Все права защищены. Эта программа и сопроводительные материалы предоставляются // в соответствии с условиями лицензии Attribution 4.0 International (CC BY 4.0) // Текст лицензии доступен по ссылке: diff --git a/SSL/src/InformationRegisters/ИерархияГруппПользователей/Forms/ФормаЗаписи/Module.bsl b/SSL/src/InformationRegisters/ИерархияГруппПользователей/Forms/ФормаЗаписи/Module.bsl index 00fa69d3f..55c2c57ed 100644 --- a/SSL/src/InformationRegisters/ИерархияГруппПользователей/Forms/ФормаЗаписи/Module.bsl +++ b/SSL/src/InformationRegisters/ИерархияГруппПользователей/Forms/ФормаЗаписи/Module.bsl @@ -1,5 +1,5 @@ /////////////////////////////////////////////////////////////////////////////////////////////////////// -// Copyright (c) 2024, ООО 1С-Софт +// Copyright (c) 2025, ООО 1С-Софт // Все права защищены. Эта программа и сопроводительные материалы предоставляются // в соответствии с условиями лицензии Attribution 4.0 International (CC BY 4.0) // Текст лицензии доступен по ссылке: diff --git a/SSL/src/InformationRegisters/ИерархияГруппПользователей/Forms/ФормаСписка/Module.bsl b/SSL/src/InformationRegisters/ИерархияГруппПользователей/Forms/ФормаСписка/Module.bsl index 5b1a28167..2fe1743f2 100644 --- a/SSL/src/InformationRegisters/ИерархияГруппПользователей/Forms/ФормаСписка/Module.bsl +++ b/SSL/src/InformationRegisters/ИерархияГруппПользователей/Forms/ФормаСписка/Module.bsl @@ -1,5 +1,5 @@ /////////////////////////////////////////////////////////////////////////////////////////////////////// -// Copyright (c) 2024, ООО 1С-Софт +// Copyright (c) 2025, ООО 1С-Софт // Все права защищены. Эта программа и сопроводительные материалы предоставляются // в соответствии с условиями лицензии Attribution 4.0 International (CC BY 4.0) // Текст лицензии доступен по ссылке: diff --git a/SSL/src/InformationRegisters/ИерархияГруппПользователей/ManagerModule.bsl b/SSL/src/InformationRegisters/ИерархияГруппПользователей/ManagerModule.bsl index 0b7a78032..d3df72ff6 100644 --- a/SSL/src/InformationRegisters/ИерархияГруппПользователей/ManagerModule.bsl +++ b/SSL/src/InformationRegisters/ИерархияГруппПользователей/ManagerModule.bsl @@ -1,5 +1,5 @@ /////////////////////////////////////////////////////////////////////////////////////////////////////// -// Copyright (c) 2024, ООО 1С-Софт +// Copyright (c) 2025, ООО 1С-Софт // Все права защищены. Эта программа и сопроводительные материалы предоставляются // в соответствии с условиями лицензии Attribution 4.0 International (CC BY 4.0) // Текст лицензии доступен по ссылке: diff --git a/SSL/src/InformationRegisters/ИзмененияОбщихДанныхУзлов/ManagerModule.bsl b/SSL/src/InformationRegisters/ИзмененияОбщихДанныхУзлов/ManagerModule.bsl index f4936f994..c9b1accf0 100644 --- a/SSL/src/InformationRegisters/ИзмененияОбщихДанныхУзлов/ManagerModule.bsl +++ b/SSL/src/InformationRegisters/ИзмененияОбщихДанныхУзлов/ManagerModule.bsl @@ -1,5 +1,5 @@ /////////////////////////////////////////////////////////////////////////////////////////////////////// -// Copyright (c) 2024, ООО 1С-Софт +// Copyright (c) 2025, ООО 1С-Софт // Все права защищены. Эта программа и сопроводительные материалы предоставляются // в соответствии с условиями лицензии Attribution 4.0 International (CC BY 4.0) // Текст лицензии доступен по ссылке: diff --git a/SSL/src/InformationRegisters/ИсполнителиЗадач/Commands/ИсполнителиРоли/CommandModule.bsl b/SSL/src/InformationRegisters/ИсполнителиЗадач/Commands/ИсполнителиРоли/CommandModule.bsl index 7548607e0..3fb1f4468 100644 --- a/SSL/src/InformationRegisters/ИсполнителиЗадач/Commands/ИсполнителиРоли/CommandModule.bsl +++ b/SSL/src/InformationRegisters/ИсполнителиЗадач/Commands/ИсполнителиРоли/CommandModule.bsl @@ -1,5 +1,5 @@ /////////////////////////////////////////////////////////////////////////////////////////////////////// -// Copyright (c) 2024, ООО 1С-Софт +// Copyright (c) 2025, ООО 1С-Софт // Все права защищены. Эта программа и сопроводительные материалы предоставляются // в соответствии с условиями лицензии Attribution 4.0 International (CC BY 4.0) // Текст лицензии доступен по ссылке: diff --git a/SSL/src/InformationRegisters/ИсполнителиЗадач/Commands/РолиИИсполнителиЗадач/CommandModule.bsl b/SSL/src/InformationRegisters/ИсполнителиЗадач/Commands/РолиИИсполнителиЗадач/CommandModule.bsl index 436f73264..b46708572 100644 --- a/SSL/src/InformationRegisters/ИсполнителиЗадач/Commands/РолиИИсполнителиЗадач/CommandModule.bsl +++ b/SSL/src/InformationRegisters/ИсполнителиЗадач/Commands/РолиИИсполнителиЗадач/CommandModule.bsl @@ -1,5 +1,5 @@ /////////////////////////////////////////////////////////////////////////////////////////////////////// -// Copyright (c) 2024, ООО 1С-Софт +// Copyright (c) 2025, ООО 1С-Софт // Все права защищены. Эта программа и сопроводительные материалы предоставляются // в соответствии с условиями лицензии Attribution 4.0 International (CC BY 4.0) // Текст лицензии доступен по ссылке: diff --git a/SSL/src/InformationRegisters/ИсполнителиЗадач/Forms/ИсполнителиРоли/Module.bsl b/SSL/src/InformationRegisters/ИсполнителиЗадач/Forms/ИсполнителиРоли/Module.bsl index 7469cbb7b..2e7d2be7c 100644 --- a/SSL/src/InformationRegisters/ИсполнителиЗадач/Forms/ИсполнителиРоли/Module.bsl +++ b/SSL/src/InformationRegisters/ИсполнителиЗадач/Forms/ИсполнителиРоли/Module.bsl @@ -1,5 +1,5 @@ /////////////////////////////////////////////////////////////////////////////////////////////////////// -// Copyright (c) 2024, ООО 1С-Софт +// Copyright (c) 2025, ООО 1С-Софт // Все права защищены. Эта программа и сопроводительные материалы предоставляются // в соответствии с условиями лицензии Attribution 4.0 International (CC BY 4.0) // Текст лицензии доступен по ссылке: diff --git a/SSL/src/InformationRegisters/ИсполнителиЗадач/Forms/ИсполнителиРолиСОбъектомАдресации/Module.bsl b/SSL/src/InformationRegisters/ИсполнителиЗадач/Forms/ИсполнителиРолиСОбъектомАдресации/Module.bsl index 98324b047..ff90d3c0a 100644 --- a/SSL/src/InformationRegisters/ИсполнителиЗадач/Forms/ИсполнителиРолиСОбъектомАдресации/Module.bsl +++ b/SSL/src/InformationRegisters/ИсполнителиЗадач/Forms/ИсполнителиРолиСОбъектомАдресации/Module.bsl @@ -1,5 +1,5 @@ /////////////////////////////////////////////////////////////////////////////////////////////////////// -// Copyright (c) 2024, ООО 1С-Софт +// Copyright (c) 2025, ООО 1С-Софт // Все права защищены. Эта программа и сопроводительные материалы предоставляются // в соответствии с условиями лицензии Attribution 4.0 International (CC BY 4.0) // Текст лицензии доступен по ссылке: diff --git a/SSL/src/InformationRegisters/ИсполнителиЗадач/Forms/РолиИИсполнителиЗадач/Module.bsl b/SSL/src/InformationRegisters/ИсполнителиЗадач/Forms/РолиИИсполнителиЗадач/Module.bsl index eaaa2845e..bcbf58e05 100644 --- a/SSL/src/InformationRegisters/ИсполнителиЗадач/Forms/РолиИИсполнителиЗадач/Module.bsl +++ b/SSL/src/InformationRegisters/ИсполнителиЗадач/Forms/РолиИИсполнителиЗадач/Module.bsl @@ -1,5 +1,5 @@ /////////////////////////////////////////////////////////////////////////////////////////////////////// -// Copyright (c) 2024, ООО 1С-Софт +// Copyright (c) 2025, ООО 1С-Софт // Все права защищены. Эта программа и сопроводительные материалы предоставляются // в соответствии с условиями лицензии Attribution 4.0 International (CC BY 4.0) // Текст лицензии доступен по ссылке: diff --git a/SSL/src/InformationRegisters/ИсполнителиЗадач/Forms/ФормаЗаписи/Module.bsl b/SSL/src/InformationRegisters/ИсполнителиЗадач/Forms/ФормаЗаписи/Module.bsl index 311353302..120e358c1 100644 --- a/SSL/src/InformationRegisters/ИсполнителиЗадач/Forms/ФормаЗаписи/Module.bsl +++ b/SSL/src/InformationRegisters/ИсполнителиЗадач/Forms/ФормаЗаписи/Module.bsl @@ -1,5 +1,5 @@ /////////////////////////////////////////////////////////////////////////////////////////////////////// -// Copyright (c) 2024, ООО 1С-Софт +// Copyright (c) 2025, ООО 1С-Софт // Все права защищены. Эта программа и сопроводительные материалы предоставляются // в соответствии с условиями лицензии Attribution 4.0 International (CC BY 4.0) // Текст лицензии доступен по ссылке: diff --git a/SSL/src/InformationRegisters/ИсполнителиЗадач/Forms/ФормаСписка/Module.bsl b/SSL/src/InformationRegisters/ИсполнителиЗадач/Forms/ФормаСписка/Module.bsl index 0c2654411..49dd221dd 100644 --- a/SSL/src/InformationRegisters/ИсполнителиЗадач/Forms/ФормаСписка/Module.bsl +++ b/SSL/src/InformationRegisters/ИсполнителиЗадач/Forms/ФормаСписка/Module.bsl @@ -1,5 +1,5 @@ /////////////////////////////////////////////////////////////////////////////////////////////////////// -// Copyright (c) 2024, ООО 1С-Софт +// Copyright (c) 2025, ООО 1С-Софт // Все права защищены. Эта программа и сопроводительные материалы предоставляются // в соответствии с условиями лицензии Attribution 4.0 International (CC BY 4.0) // Текст лицензии доступен по ссылке: diff --git a/SSL/src/InformationRegisters/ИсполнителиЗадач/ManagerModule.bsl b/SSL/src/InformationRegisters/ИсполнителиЗадач/ManagerModule.bsl index f3a451993..5523966e0 100644 --- a/SSL/src/InformationRegisters/ИсполнителиЗадач/ManagerModule.bsl +++ b/SSL/src/InformationRegisters/ИсполнителиЗадач/ManagerModule.bsl @@ -1,5 +1,5 @@ /////////////////////////////////////////////////////////////////////////////////////////////////////// -// Copyright (c) 2024, ООО 1С-Софт +// Copyright (c) 2025, ООО 1С-Софт // Все права защищены. Эта программа и сопроводительные материалы предоставляются // в соответствии с условиями лицензии Attribution 4.0 International (CC BY 4.0) // Текст лицензии доступен по ссылке: diff --git a/SSL/src/InformationRegisters/ИсполнителиЗадач/RecordSetModule.bsl b/SSL/src/InformationRegisters/ИсполнителиЗадач/RecordSetModule.bsl index 75ac172dd..53ad9308f 100644 --- a/SSL/src/InformationRegisters/ИсполнителиЗадач/RecordSetModule.bsl +++ b/SSL/src/InformationRegisters/ИсполнителиЗадач/RecordSetModule.bsl @@ -1,5 +1,5 @@ /////////////////////////////////////////////////////////////////////////////////////////////////////// -// Copyright (c) 2024, ООО 1С-Софт +// Copyright (c) 2025, ООО 1С-Софт // Все права защищены. Эта программа и сопроводительные материалы предоставляются // в соответствии с условиями лицензии Attribution 4.0 International (CC BY 4.0) // Текст лицензии доступен по ссылке: diff --git a/SSL/src/InformationRegisters/ИспользуемыеВидыДоступа/Forms/ФормаЗаписи/Module.bsl b/SSL/src/InformationRegisters/ИспользуемыеВидыДоступа/Forms/ФормаЗаписи/Module.bsl index 00fa69d3f..55c2c57ed 100644 --- a/SSL/src/InformationRegisters/ИспользуемыеВидыДоступа/Forms/ФормаЗаписи/Module.bsl +++ b/SSL/src/InformationRegisters/ИспользуемыеВидыДоступа/Forms/ФормаЗаписи/Module.bsl @@ -1,5 +1,5 @@ /////////////////////////////////////////////////////////////////////////////////////////////////////// -// Copyright (c) 2024, ООО 1С-Софт +// Copyright (c) 2025, ООО 1С-Софт // Все права защищены. Эта программа и сопроводительные материалы предоставляются // в соответствии с условиями лицензии Attribution 4.0 International (CC BY 4.0) // Текст лицензии доступен по ссылке: diff --git a/SSL/src/InformationRegisters/ИспользуемыеВидыДоступа/Forms/ФормаСписка/Module.bsl b/SSL/src/InformationRegisters/ИспользуемыеВидыДоступа/Forms/ФормаСписка/Module.bsl index c19916931..5a150adca 100644 --- a/SSL/src/InformationRegisters/ИспользуемыеВидыДоступа/Forms/ФормаСписка/Module.bsl +++ b/SSL/src/InformationRegisters/ИспользуемыеВидыДоступа/Forms/ФормаСписка/Module.bsl @@ -1,5 +1,5 @@ /////////////////////////////////////////////////////////////////////////////////////////////////////// -// Copyright (c) 2024, ООО 1С-Софт +// Copyright (c) 2025, ООО 1С-Софт // Все права защищены. Эта программа и сопроводительные материалы предоставляются // в соответствии с условиями лицензии Attribution 4.0 International (CC BY 4.0) // Текст лицензии доступен по ссылке: diff --git a/SSL/src/InformationRegisters/ИспользуемыеВидыДоступа/ManagerModule.bsl b/SSL/src/InformationRegisters/ИспользуемыеВидыДоступа/ManagerModule.bsl index 7ec5f1e91..822c7165e 100644 --- a/SSL/src/InformationRegisters/ИспользуемыеВидыДоступа/ManagerModule.bsl +++ b/SSL/src/InformationRegisters/ИспользуемыеВидыДоступа/ManagerModule.bsl @@ -1,5 +1,5 @@ /////////////////////////////////////////////////////////////////////////////////////////////////////// -// Copyright (c) 2024, ООО 1С-Софт +// Copyright (c) 2025, ООО 1С-Софт // Все права защищены. Эта программа и сопроводительные материалы предоставляются // в соответствии с условиями лицензии Attribution 4.0 International (CC BY 4.0) // Текст лицензии доступен по ссылке: @@ -22,6 +22,12 @@ // Процедура ОбновитьДанныеРегистра(ЕстьИзменения = Неопределено, БезОбновленияЗависимыхДанных = Ложь) Экспорт + Если УправлениеДоступомСлужебный.ОтключеноОграничениеНаУровнеЗаписей() Тогда + УправлениеДоступомСлужебный.ОчиститьРегистрСведений( + Метаданные.РегистрыСведений.ИспользуемыеВидыДоступа.ПолноеИмя(), ЕстьИзменения); + Возврат; + КонецЕсли; + РегистрыСведений.ПараметрыРаботыВерсийРасширений.ЗаблокироватьДляИзмененияВФайловойИБ(); СвойстваВидовДоступа = УправлениеДоступомСлужебный.СвойстваВидовДоступа(); @@ -141,7 +147,8 @@ // Процедура ЗарегистрироватьИзменениеПриПолученииДанных(ЭлементДанных) Экспорт - Если Не ЕстьИзмененияИспользованияВидовДоступа(ЭлементДанных) Тогда + Если УправлениеДоступомСлужебный.ОтключеноОграничениеНаУровнеЗаписей() + Или Не ЕстьИзмененияИспользованияВидовДоступа(ЭлементДанных) Тогда Возврат; КонецЕсли; @@ -164,14 +171,22 @@ Возврат; КонецЕсли; - ПриИзмененииИспользованияВидовДоступа(Изменения.Количество() = 1 И Изменения[0] <> Неопределено); + Если Не УправлениеДоступомСлужебный.ОтключеноОграничениеНаУровнеЗаписей() Тогда + ПриИзмененииИспользованияВидовДоступа(Изменения.Количество() = 1 И Изменения[0] <> Неопределено); + КонецЕсли; ПользователиСлужебный.ЗарегистрироватьСсылки("ИспользуемыеВидыДоступа", Null); КонецПроцедуры Процедура ЗапланироватьОбновлениеПриИзмененииИспользованияВидовДоступа() Экспорт + + Если УправлениеДоступомСлужебный.ОтключеноОграничениеНаУровнеЗаписей() Тогда + Возврат; + КонецЕсли; + ПользователиСлужебный.ЗарегистрироватьСсылки("ИспользуемыеВидыДоступа", Неопределено); + КонецПроцедуры // Для процедур ОбновитьДанныеРегистра, ОбработатьИзменениеЗарегистрированноеПриЗагрузке. diff --git a/SSL/src/InformationRegisters/ИспользуемыеВидыДоступа/RecordSetModule.bsl b/SSL/src/InformationRegisters/ИспользуемыеВидыДоступа/RecordSetModule.bsl index ea6f326ae..8a4912242 100644 --- a/SSL/src/InformationRegisters/ИспользуемыеВидыДоступа/RecordSetModule.bsl +++ b/SSL/src/InformationRegisters/ИспользуемыеВидыДоступа/RecordSetModule.bsl @@ -1,5 +1,5 @@ /////////////////////////////////////////////////////////////////////////////////////////////////////// -// Copyright (c) 2024, ООО 1С-Софт +// Copyright (c) 2025, ООО 1С-Софт // Все права защищены. Эта программа и сопроводительные материалы предоставляются // в соответствии с условиями лицензии Attribution 4.0 International (CC BY 4.0) // Текст лицензии доступен по ссылке: diff --git a/SSL/src/InformationRegisters/ИспользуемыеВидыДоступаПоТаблицам/Forms/ФормаЗаписи/Module.bsl b/SSL/src/InformationRegisters/ИспользуемыеВидыДоступаПоТаблицам/Forms/ФормаЗаписи/Module.bsl index 00fa69d3f..55c2c57ed 100644 --- a/SSL/src/InformationRegisters/ИспользуемыеВидыДоступаПоТаблицам/Forms/ФормаЗаписи/Module.bsl +++ b/SSL/src/InformationRegisters/ИспользуемыеВидыДоступаПоТаблицам/Forms/ФормаЗаписи/Module.bsl @@ -1,5 +1,5 @@ /////////////////////////////////////////////////////////////////////////////////////////////////////// -// Copyright (c) 2024, ООО 1С-Софт +// Copyright (c) 2025, ООО 1С-Софт // Все права защищены. Эта программа и сопроводительные материалы предоставляются // в соответствии с условиями лицензии Attribution 4.0 International (CC BY 4.0) // Текст лицензии доступен по ссылке: diff --git a/SSL/src/InformationRegisters/ИспользуемыеВидыДоступаПоТаблицам/Forms/ФормаСписка/Module.bsl b/SSL/src/InformationRegisters/ИспользуемыеВидыДоступаПоТаблицам/Forms/ФормаСписка/Module.bsl index fc431fe11..6d7db841f 100644 --- a/SSL/src/InformationRegisters/ИспользуемыеВидыДоступаПоТаблицам/Forms/ФормаСписка/Module.bsl +++ b/SSL/src/InformationRegisters/ИспользуемыеВидыДоступаПоТаблицам/Forms/ФормаСписка/Module.bsl @@ -1,5 +1,5 @@ /////////////////////////////////////////////////////////////////////////////////////////////////////// -// Copyright (c) 2024, ООО 1С-Софт +// Copyright (c) 2025, ООО 1С-Софт // Все права защищены. Эта программа и сопроводительные материалы предоставляются // в соответствии с условиями лицензии Attribution 4.0 International (CC BY 4.0) // Текст лицензии доступен по ссылке: @@ -54,7 +54,7 @@ УстановитьПривилегированныйРежим(Истина); - РегистрыСведений.ИспользуемыеВидыДоступаПоТаблицам.ОбновитьДанныеРегистра(, ЕстьИзменения); + РегистрыСведений.ИспользуемыеВидыДоступаПоТаблицам.ОбновитьДанныеРегистра(,, ЕстьИзменения); Элементы.Список.Обновить(); diff --git a/SSL/src/InformationRegisters/ИспользуемыеВидыДоступаПоТаблицам/ManagerModule.bsl b/SSL/src/InformationRegisters/ИспользуемыеВидыДоступаПоТаблицам/ManagerModule.bsl index 7edba97bf..d31b968b3 100644 --- a/SSL/src/InformationRegisters/ИспользуемыеВидыДоступаПоТаблицам/ManagerModule.bsl +++ b/SSL/src/InformationRegisters/ИспользуемыеВидыДоступаПоТаблицам/ManagerModule.bsl @@ -1,5 +1,5 @@ /////////////////////////////////////////////////////////////////////////////////////////////////////// -// Copyright (c) 2024, ООО 1С-Софт +// Copyright (c) 2025, ООО 1С-Софт // Все права защищены. Эта программа и сопроводительные материалы предоставляются // в соответствии с условиями лицензии Attribution 4.0 International (CC BY 4.0) // Текст лицензии доступен по ссылке: @@ -28,6 +28,12 @@ Процедура ОбновитьДанныеРегистра(Таблицы = Неопределено, ТипыЗначенийДоступа = Неопределено, ЕстьИзменения = Неопределено) Экспорт + Если УправлениеДоступомСлужебный.ОтключеноОграничениеНаУровнеЗаписей() Тогда + УправлениеДоступомСлужебный.ОчиститьРегистрСведений( + Метаданные.РегистрыСведений.ИспользуемыеВидыДоступаПоТаблицам.ПолноеИмя(), ЕстьИзменения); + Возврат; + КонецЕсли; + ТекстЗапроса = "ВЫБРАТЬ РАЗЛИЧНЫЕ | ТаблицыГруппДоступа.Таблица КАК Таблица, diff --git a/SSL/src/InformationRegisters/ИсторияРассылкиОтчетов/ManagerModule.bsl b/SSL/src/InformationRegisters/ИсторияРассылкиОтчетов/ManagerModule.bsl index 3d33c5259..f1a89adf0 100644 --- a/SSL/src/InformationRegisters/ИсторияРассылкиОтчетов/ManagerModule.bsl +++ b/SSL/src/InformationRegisters/ИсторияРассылкиОтчетов/ManagerModule.bsl @@ -1,5 +1,5 @@ /////////////////////////////////////////////////////////////////////////////////////////////////////// -// Copyright (c) 2024, ООО 1С-Софт +// Copyright (c) 2025, ООО 1С-Софт // Все права защищены. Эта программа и сопроводительные материалы предоставляются // в соответствии с условиями лицензии Attribution 4.0 International (CC BY 4.0) // Текст лицензии доступен по ссылке: diff --git a/SSL/src/InformationRegisters/ИсторияРезервногоКопированияВстроенногоХранилищаДвоичныхДанных/ManagerModule.bsl b/SSL/src/InformationRegisters/ИсторияРезервногоКопированияВстроенногоХранилищаДвоичныхДанных/ManagerModule.bsl new file mode 100644 index 000000000..3204572ad --- /dev/null +++ b/SSL/src/InformationRegisters/ИсторияРезервногоКопированияВстроенногоХранилищаДвоичныхДанных/ManagerModule.bsl @@ -0,0 +1,28 @@ +/////////////////////////////////////////////////////////////////////////////////////////////////////// +// Copyright (c) 2025, ООО 1С-Софт +// Все права защищены. Эта программа и сопроводительные материалы предоставляются +// в соответствии с условиями лицензии Attribution 4.0 International (CC BY 4.0) +// Текст лицензии доступен по ссылке: +// https://creativecommons.org/licenses/by/4.0/legalcode +/////////////////////////////////////////////////////////////////////////////////////////////////////// + +#Если Сервер Или ТолстыйКлиентОбычноеПриложение Или ВнешнееСоединение Тогда + +#Область СлужебныйПрограммныйИнтерфейс +Процедура ДобавитьЗапись(ВидРезервнойКопии, ДатаСоздания, ИмяФайлаРезервнойКопии) Экспорт + + Набор = СоздатьНаборЗаписей(); + Набор.Отбор.ВидРезервнойКопии.Установить(ВидРезервнойКопии); + Набор.Отбор.ДатаСоздания.Установить(ДатаСоздания); + + Запись = Набор.Добавить(); + Запись.ВидРезервнойКопии = ВидРезервнойКопии; + Запись.ДатаСоздания = ДатаСоздания; + Запись.ИмяФайлаРезервнойКопии = ИмяФайлаРезервнойКопии; + + Набор.Записать(); + +КонецПроцедуры +#КонецОбласти + +#КонецЕсли \ No newline at end of file diff --git a/SSL/src/InformationRegisters/ИсторияРезервногоКопированияВстроенногоХранилищаДвоичныхДанных/ИсторияРезервногоКопированияВстроенногоХранилищаДвоичныхДанных.mdo b/SSL/src/InformationRegisters/ИсторияРезервногоКопированияВстроенногоХранилищаДвоичныхДанных/ИсторияРезервногоКопированияВстроенногоХранилищаДвоичныхДанных.mdo new file mode 100644 index 000000000..58722d407 --- /dev/null +++ b/SSL/src/InformationRegisters/ИсторияРезервногоКопированияВстроенногоХранилищаДвоичныхДанных/ИсторияРезервногоКопированияВстроенногоХранилищаДвоичныхДанных.mdo @@ -0,0 +1,104 @@ +<?xml version="1.0" encoding="UTF-8"?> +<mdclass:InformationRegister xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns:core="http://g5.1c.ru/v8/dt/mcore" xmlns:mdclass="http://g5.1c.ru/v8/dt/metadata/mdclass" uuid="30f1ee41-0099-4757-90c2-4a56a676d969"> + <producedTypes> + <selectionType typeId="5ebdc887-6d44-4686-a093-bd16dce762a2" valueTypeId="6780d8ee-2556-45a6-9c14-670d6ff4b1fc"/> + <listType typeId="0ace6ced-7e2d-49c3-8127-bde9519b7c24" valueTypeId="54ba1cb5-563e-49dc-9fda-31dd3cd1d1eb"/> + <managerType typeId="9fd42265-29b3-4388-b73b-2676a4fe055a" valueTypeId="fbf09f3b-5570-40b7-9b6c-ae807ae76d1f"/> + <recordSetType typeId="0ede769d-16a5-4174-b5aa-ae8320bf82c0" valueTypeId="80d57d7c-7ffb-4587-b6f1-3e692794fcf6"/> + <recordKeyType typeId="6a275523-42e2-4f86-860a-69aac3e683af" valueTypeId="0cf6369b-1394-4343-80e8-23423a65c7b6"/> + <recordType typeId="48de8dce-e909-4d34-861a-f840a8d4d002" valueTypeId="90402f61-7be2-4536-9e2f-452a90e3f2a2"/> + <recordManagerType typeId="4ac00610-ab63-4b6e-89b5-030a6d3385d8" valueTypeId="979bc824-8cc7-43d2-b0dd-80795494beda"/> + </producedTypes> + <name>ИсторияРезервногоКопированияВстроенногоХранилищаДвоичныхДанных</name> + <synonym> + <key>ru</key> + <value>История резервного копирования встроенного хранилища двоичных данных</value> + </synonym> + <useStandardCommands>true</useStandardCommands> + <editType>InDialog</editType> + <standardAttributes> + <dataHistory>Use</dataHistory> + <name>Active</name> + <fillValue xsi:type="core:UndefinedValue"/> + <fullTextSearch>Use</fullTextSearch> + <minValue xsi:type="core:UndefinedValue"/> + <maxValue xsi:type="core:UndefinedValue"/> + </standardAttributes> + <standardAttributes> + <dataHistory>Use</dataHistory> + <name>LineNumber</name> + <fillValue xsi:type="core:UndefinedValue"/> + <fullTextSearch>Use</fullTextSearch> + <minValue xsi:type="core:UndefinedValue"/> + <maxValue xsi:type="core:UndefinedValue"/> + </standardAttributes> + <standardAttributes> + <dataHistory>Use</dataHistory> + <name>Recorder</name> + <fillValue xsi:type="core:UndefinedValue"/> + <fullTextSearch>Use</fullTextSearch> + <minValue xsi:type="core:UndefinedValue"/> + <maxValue xsi:type="core:UndefinedValue"/> + </standardAttributes> + <standardAttributes> + <dataHistory>Use</dataHistory> + <name>Period</name> + <fillValue xsi:type="core:UndefinedValue"/> + <fillChecking>ShowError</fillChecking> + <fullTextSearch>Use</fullTextSearch> + <minValue xsi:type="core:UndefinedValue"/> + <maxValue xsi:type="core:UndefinedValue"/> + </standardAttributes> + <dataLockControlMode>Managed</dataLockControlMode> + <resources uuid="e9ae70e5-2f8b-41f6-b356-0f900fcc0dce"> + <name>ИмяФайлаРезервнойКопии</name> + <synonym> + <key>ru</key> + <value>Имя файла резервной копии</value> + </synonym> + <type> + <types>String</types> + <stringQualifiers> + <length>200</length> + </stringQualifiers> + </type> + <minValue xsi:type="core:UndefinedValue"/> + <maxValue xsi:type="core:UndefinedValue"/> + <fullTextSearch>Use</fullTextSearch> + <dataHistory>Use</dataHistory> + <fillValue xsi:type="core:StringValue"/> + </resources> + <dimensions uuid="78ad3716-547c-43cd-bfff-02accdb595a6"> + <name>ВидРезервнойКопии</name> + <synonym> + <key>ru</key> + <value>Вид резервной копии</value> + </synonym> + <type> + <types>EnumRef.ВидыРезервныхКопийВстроенногоХранилищаДвоичныхДанных</types> + </type> + <minValue xsi:type="core:UndefinedValue"/> + <maxValue xsi:type="core:UndefinedValue"/> + <fullTextSearch>Use</fullTextSearch> + <dataHistory>Use</dataHistory> + <fillValue xsi:type="core:UndefinedValue"/> + <mainFilter>true</mainFilter> + </dimensions> + <dimensions uuid="79c946da-7d75-4055-98b1-6cdebe2583bf"> + <name>ДатаСоздания</name> + <synonym> + <key>ru</key> + <value>Дата создания</value> + </synonym> + <type> + <types>Date</types> + <dateQualifiers/> + </type> + <minValue xsi:type="core:UndefinedValue"/> + <maxValue xsi:type="core:UndefinedValue"/> + <fullTextSearch>Use</fullTextSearch> + <dataHistory>Use</dataHistory> + <fillValue xsi:type="core:UndefinedValue"/> + <mainFilter>true</mainFilter> + </dimensions> +</mdclass:InformationRegister> diff --git a/SSL/src/InformationRegisters/КалендарныеГрафики/ManagerModule.bsl b/SSL/src/InformationRegisters/КалендарныеГрафики/ManagerModule.bsl index 255deb57a..f9733ec57 100644 --- a/SSL/src/InformationRegisters/КалендарныеГрафики/ManagerModule.bsl +++ b/SSL/src/InformationRegisters/КалендарныеГрафики/ManagerModule.bsl @@ -1,5 +1,5 @@ /////////////////////////////////////////////////////////////////////////////////////////////////////// -// Copyright (c) 2024, ООО 1С-Софт +// Copyright (c) 2025, ООО 1С-Софт // Все права защищены. Эта программа и сопроводительные материалы предоставляются // в соответствии с условиями лицензии Attribution 4.0 International (CC BY 4.0) // Текст лицензии доступен по ссылке: diff --git a/SSL/src/InformationRegisters/КвартирыОфисыПомещения/КвартирыОфисыПомещения.mdo b/SSL/src/InformationRegisters/КвартирыОфисыПомещения/КвартирыОфисыПомещения.mdo new file mode 100644 index 000000000..f6ee2233a --- /dev/null +++ b/SSL/src/InformationRegisters/КвартирыОфисыПомещения/КвартирыОфисыПомещения.mdo @@ -0,0 +1,101 @@ +<?xml version="1.0" encoding="UTF-8"?> +<mdclass:InformationRegister xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns:core="http://g5.1c.ru/v8/dt/mcore" xmlns:mdclass="http://g5.1c.ru/v8/dt/metadata/mdclass" uuid="b10348eb-6d25-48d7-9267-36cb3de6ebee"> + <producedTypes> + <selectionType typeId="1d56a69a-bdb2-4ee1-b7c6-1f1ba2e75b31" valueTypeId="83e89212-638e-4381-9143-bb2cb329d66b"/> + <listType typeId="48e8b4a7-6ee2-4e92-8fc9-b7c83c677036" valueTypeId="2b9bd458-a593-48e9-aad9-47e34419c6f6"/> + <managerType typeId="ed7b02f2-7b1f-4549-a967-f44b2d85bef3" valueTypeId="aa512eb6-d320-4433-909c-557fd7e073d4"/> + <recordSetType typeId="4215ec06-6efc-4689-902a-22ca57ccce76" valueTypeId="ec27cbdc-98d6-4cec-b5ce-9653a8c432b0"/> + <recordKeyType typeId="055acba1-f59f-4d54-96cf-74d5152da68c" valueTypeId="0683b900-b1b5-4d2d-a01b-9f2a5ccb2b0f"/> + <recordType typeId="42384830-4d71-4607-a4a3-16081902fafc" valueTypeId="c186f020-259a-4b18-810b-1e82253de150"/> + <recordManagerType typeId="8e8e6dbe-178a-43da-9689-c6f97b1d10dc" valueTypeId="4be9b98c-84a0-457b-8f7f-3d15015c284f"/> + </producedTypes> + <name>КвартирыОфисыПомещения</name> + <synonym> + <key>ru</key> + <value>Квартиры офисы помещения</value> + </synonym> + <useStandardCommands>true</useStandardCommands> + <editType>InDialog</editType> + <standardAttributes> + <dataHistory>Use</dataHistory> + <name>Active</name> + <fillValue xsi:type="core:UndefinedValue"/> + <fullTextSearch>Use</fullTextSearch> + <minValue xsi:type="core:UndefinedValue"/> + <maxValue xsi:type="core:UndefinedValue"/> + </standardAttributes> + <standardAttributes> + <dataHistory>Use</dataHistory> + <name>LineNumber</name> + <fillValue xsi:type="core:UndefinedValue"/> + <fullTextSearch>Use</fullTextSearch> + <minValue xsi:type="core:UndefinedValue"/> + <maxValue xsi:type="core:UndefinedValue"/> + </standardAttributes> + <standardAttributes> + <dataHistory>Use</dataHistory> + <name>Recorder</name> + <fillValue xsi:type="core:UndefinedValue"/> + <fullTextSearch>Use</fullTextSearch> + <minValue xsi:type="core:UndefinedValue"/> + <maxValue xsi:type="core:UndefinedValue"/> + </standardAttributes> + <standardAttributes> + <dataHistory>Use</dataHistory> + <name>Period</name> + <fillValue xsi:type="core:UndefinedValue"/> + <fillChecking>ShowError</fillChecking> + <fullTextSearch>Use</fullTextSearch> + <minValue xsi:type="core:UndefinedValue"/> + <maxValue xsi:type="core:UndefinedValue"/> + </standardAttributes> + <dataLockControlMode>Managed</dataLockControlMode> + <attributes uuid="13be8980-1bf6-40f6-933f-6e7e1434548e"> + <name>Помещения</name> + <synonym> + <key>ru</key> + <value>Помещения</value> + </synonym> + <type> + <types>ValueStorage</types> + </type> + <minValue xsi:type="core:UndefinedValue"/> + <maxValue xsi:type="core:UndefinedValue"/> + <dataHistory>Use</dataHistory> + <fillValue xsi:type="core:UndefinedValue"/> + </attributes> + <dimensions uuid="48e45f36-f83a-4a93-b657-573aeb3f1de1"> + <name>АдресныйОбъект</name> + <synonym> + <key>ru</key> + <value>Адресный объект</value> + </synonym> + <type> + <types>UUID</types> + </type> + <minValue xsi:type="core:UndefinedValue"/> + <maxValue xsi:type="core:UndefinedValue"/> + <dataHistory>Use</dataHistory> + <fillValue xsi:type="core:UndefinedValue"/> + <mainFilter>true</mainFilter> + </dimensions> + <dimensions uuid="027effdc-8d1c-470b-8675-155102a52f74"> + <name>КодСубъектаРФ</name> + <synonym> + <key>ru</key> + <value>Код субъекта РФ</value> + </synonym> + <type> + <types>Number</types> + <numberQualifiers> + <precision>2</precision> + </numberQualifiers> + </type> + <minValue xsi:type="core:UndefinedValue"/> + <maxValue xsi:type="core:UndefinedValue"/> + <indexing>Index</indexing> + <dataHistory>Use</dataHistory> + <fillValue xsi:type="core:UndefinedValue"/> + <mainFilter>true</mainFilter> + </dimensions> +</mdclass:InformationRegister> diff --git a/SSL/src/InformationRegisters/КлассификаторыМЧД/ManagerModule.bsl b/SSL/src/InformationRegisters/КлассификаторыМЧД/ManagerModule.bsl index 8051fee2c..25f7f1bb3 100644 --- a/SSL/src/InformationRegisters/КлассификаторыМЧД/ManagerModule.bsl +++ b/SSL/src/InformationRegisters/КлассификаторыМЧД/ManagerModule.bsl @@ -1,5 +1,5 @@ /////////////////////////////////////////////////////////////////////////////////////////////////////// -// Copyright (c) 2024, ООО 1С-Софт +// Copyright (c) 2025, ООО 1С-Софт // Все права защищены. Эта программа и сопроводительные материалы предоставляются // в соответствии с условиями лицензии Attribution 4.0 International (CC BY 4.0) // Текст лицензии доступен по ссылке: diff --git a/SSL/src/InformationRegisters/КлючиДоступаВнешнихПользователей/Forms/ФормаЗаписи/Module.bsl b/SSL/src/InformationRegisters/КлючиДоступаВнешнихПользователей/Forms/ФормаЗаписи/Module.bsl index 00fa69d3f..55c2c57ed 100644 --- a/SSL/src/InformationRegisters/КлючиДоступаВнешнихПользователей/Forms/ФормаЗаписи/Module.bsl +++ b/SSL/src/InformationRegisters/КлючиДоступаВнешнихПользователей/Forms/ФормаЗаписи/Module.bsl @@ -1,5 +1,5 @@ /////////////////////////////////////////////////////////////////////////////////////////////////////// -// Copyright (c) 2024, ООО 1С-Софт +// Copyright (c) 2025, ООО 1С-Софт // Все права защищены. Эта программа и сопроводительные материалы предоставляются // в соответствии с условиями лицензии Attribution 4.0 International (CC BY 4.0) // Текст лицензии доступен по ссылке: diff --git a/SSL/src/InformationRegisters/КлючиДоступаВнешнихПользователей/Forms/ФормаСписка/Module.bsl b/SSL/src/InformationRegisters/КлючиДоступаВнешнихПользователей/Forms/ФормаСписка/Module.bsl index 00fa69d3f..55c2c57ed 100644 --- a/SSL/src/InformationRegisters/КлючиДоступаВнешнихПользователей/Forms/ФормаСписка/Module.bsl +++ b/SSL/src/InformationRegisters/КлючиДоступаВнешнихПользователей/Forms/ФормаСписка/Module.bsl @@ -1,5 +1,5 @@ /////////////////////////////////////////////////////////////////////////////////////////////////////// -// Copyright (c) 2024, ООО 1С-Софт +// Copyright (c) 2025, ООО 1С-Софт // Все права защищены. Эта программа и сопроводительные материалы предоставляются // в соответствии с условиями лицензии Attribution 4.0 International (CC BY 4.0) // Текст лицензии доступен по ссылке: diff --git a/SSL/src/InformationRegisters/КлючиДоступаГруппДоступа/Forms/ФормаЗаписи/Module.bsl b/SSL/src/InformationRegisters/КлючиДоступаГруппДоступа/Forms/ФормаЗаписи/Module.bsl index 00fa69d3f..55c2c57ed 100644 --- a/SSL/src/InformationRegisters/КлючиДоступаГруппДоступа/Forms/ФормаЗаписи/Module.bsl +++ b/SSL/src/InformationRegisters/КлючиДоступаГруппДоступа/Forms/ФормаЗаписи/Module.bsl @@ -1,5 +1,5 @@ /////////////////////////////////////////////////////////////////////////////////////////////////////// -// Copyright (c) 2024, ООО 1С-Софт +// Copyright (c) 2025, ООО 1С-Софт // Все права защищены. Эта программа и сопроводительные материалы предоставляются // в соответствии с условиями лицензии Attribution 4.0 International (CC BY 4.0) // Текст лицензии доступен по ссылке: diff --git a/SSL/src/InformationRegisters/КлючиДоступаГруппДоступа/Forms/ФормаСписка/Module.bsl b/SSL/src/InformationRegisters/КлючиДоступаГруппДоступа/Forms/ФормаСписка/Module.bsl index 073b6ceeb..80178bc2c 100644 --- a/SSL/src/InformationRegisters/КлючиДоступаГруппДоступа/Forms/ФормаСписка/Module.bsl +++ b/SSL/src/InformationRegisters/КлючиДоступаГруппДоступа/Forms/ФормаСписка/Module.bsl @@ -1,5 +1,5 @@ /////////////////////////////////////////////////////////////////////////////////////////////////////// -// Copyright (c) 2024, ООО 1С-Софт +// Copyright (c) 2025, ООО 1С-Софт // Все права защищены. Эта программа и сопроводительные материалы предоставляются // в соответствии с условиями лицензии Attribution 4.0 International (CC BY 4.0) // Текст лицензии доступен по ссылке: diff --git a/SSL/src/InformationRegisters/КлючиДоступаКОбъектам/Forms/ФормаЗаписи/Module.bsl b/SSL/src/InformationRegisters/КлючиДоступаКОбъектам/Forms/ФормаЗаписи/Module.bsl index 00fa69d3f..55c2c57ed 100644 --- a/SSL/src/InformationRegisters/КлючиДоступаКОбъектам/Forms/ФормаЗаписи/Module.bsl +++ b/SSL/src/InformationRegisters/КлючиДоступаКОбъектам/Forms/ФормаЗаписи/Module.bsl @@ -1,5 +1,5 @@ /////////////////////////////////////////////////////////////////////////////////////////////////////// -// Copyright (c) 2024, ООО 1С-Софт +// Copyright (c) 2025, ООО 1С-Софт // Все права защищены. Эта программа и сопроводительные материалы предоставляются // в соответствии с условиями лицензии Attribution 4.0 International (CC BY 4.0) // Текст лицензии доступен по ссылке: diff --git a/SSL/src/InformationRegisters/КлючиДоступаКОбъектам/Forms/ФормаСписка/Module.bsl b/SSL/src/InformationRegisters/КлючиДоступаКОбъектам/Forms/ФормаСписка/Module.bsl index 00fa69d3f..55c2c57ed 100644 --- a/SSL/src/InformationRegisters/КлючиДоступаКОбъектам/Forms/ФормаСписка/Module.bsl +++ b/SSL/src/InformationRegisters/КлючиДоступаКОбъектам/Forms/ФормаСписка/Module.bsl @@ -1,5 +1,5 @@ /////////////////////////////////////////////////////////////////////////////////////////////////////// -// Copyright (c) 2024, ООО 1С-Софт +// Copyright (c) 2025, ООО 1С-Софт // Все права защищены. Эта программа и сопроводительные материалы предоставляются // в соответствии с условиями лицензии Attribution 4.0 International (CC BY 4.0) // Текст лицензии доступен по ссылке: diff --git a/SSL/src/InformationRegisters/КлючиДоступаКРегистрам/Forms/ФормаЗаписи/Module.bsl b/SSL/src/InformationRegisters/КлючиДоступаКРегистрам/Forms/ФормаЗаписи/Module.bsl index 00fa69d3f..55c2c57ed 100644 --- a/SSL/src/InformationRegisters/КлючиДоступаКРегистрам/Forms/ФормаЗаписи/Module.bsl +++ b/SSL/src/InformationRegisters/КлючиДоступаКРегистрам/Forms/ФормаЗаписи/Module.bsl @@ -1,5 +1,5 @@ /////////////////////////////////////////////////////////////////////////////////////////////////////// -// Copyright (c) 2024, ООО 1С-Софт +// Copyright (c) 2025, ООО 1С-Софт // Все права защищены. Эта программа и сопроводительные материалы предоставляются // в соответствии с условиями лицензии Attribution 4.0 International (CC BY 4.0) // Текст лицензии доступен по ссылке: diff --git a/SSL/src/InformationRegisters/КлючиДоступаКРегистрам/Forms/ФормаСписка/Module.bsl b/SSL/src/InformationRegisters/КлючиДоступаКРегистрам/Forms/ФормаСписка/Module.bsl index 00fa69d3f..55c2c57ed 100644 --- a/SSL/src/InformationRegisters/КлючиДоступаКРегистрам/Forms/ФормаСписка/Module.bsl +++ b/SSL/src/InformationRegisters/КлючиДоступаКРегистрам/Forms/ФормаСписка/Module.bsl @@ -1,5 +1,5 @@ /////////////////////////////////////////////////////////////////////////////////////////////////////// -// Copyright (c) 2024, ООО 1С-Софт +// Copyright (c) 2025, ООО 1С-Софт // Все права защищены. Эта программа и сопроводительные материалы предоставляются // в соответствии с условиями лицензии Attribution 4.0 International (CC BY 4.0) // Текст лицензии доступен по ссылке: diff --git a/SSL/src/InformationRegisters/КлючиДоступаКРегиструРезультатыПроверкиУчета/ManagerModule.bsl b/SSL/src/InformationRegisters/КлючиДоступаКРегиструРезультатыПроверкиУчета/ManagerModule.bsl index f3f40dfcb..a761bae73 100644 --- a/SSL/src/InformationRegisters/КлючиДоступаКРегиструРезультатыПроверкиУчета/ManagerModule.bsl +++ b/SSL/src/InformationRegisters/КлючиДоступаКРегиструРезультатыПроверкиУчета/ManagerModule.bsl @@ -1,5 +1,5 @@ /////////////////////////////////////////////////////////////////////////////////////////////////////// -// Copyright (c) 2024, ООО 1С-Софт +// Copyright (c) 2025, ООО 1С-Софт // Все права защищены. Эта программа и сопроводительные материалы предоставляются // в соответствии с условиями лицензии Attribution 4.0 International (CC BY 4.0) // Текст лицензии доступен по ссылке: diff --git a/SSL/src/InformationRegisters/КлючиДоступаНаборовГруппДоступа/Forms/ФормаЗаписи/Module.bsl b/SSL/src/InformationRegisters/КлючиДоступаНаборовГруппДоступа/Forms/ФормаЗаписи/Module.bsl index 00fa69d3f..55c2c57ed 100644 --- a/SSL/src/InformationRegisters/КлючиДоступаНаборовГруппДоступа/Forms/ФормаЗаписи/Module.bsl +++ b/SSL/src/InformationRegisters/КлючиДоступаНаборовГруппДоступа/Forms/ФормаЗаписи/Module.bsl @@ -1,5 +1,5 @@ /////////////////////////////////////////////////////////////////////////////////////////////////////// -// Copyright (c) 2024, ООО 1С-Софт +// Copyright (c) 2025, ООО 1С-Софт // Все права защищены. Эта программа и сопроводительные материалы предоставляются // в соответствии с условиями лицензии Attribution 4.0 International (CC BY 4.0) // Текст лицензии доступен по ссылке: diff --git a/SSL/src/InformationRegisters/КлючиДоступаНаборовГруппДоступа/Forms/ФормаСписка/Module.bsl b/SSL/src/InformationRegisters/КлючиДоступаНаборовГруппДоступа/Forms/ФормаСписка/Module.bsl index 00fa69d3f..55c2c57ed 100644 --- a/SSL/src/InformationRegisters/КлючиДоступаНаборовГруппДоступа/Forms/ФормаСписка/Module.bsl +++ b/SSL/src/InformationRegisters/КлючиДоступаНаборовГруппДоступа/Forms/ФормаСписка/Module.bsl @@ -1,5 +1,5 @@ /////////////////////////////////////////////////////////////////////////////////////////////////////// -// Copyright (c) 2024, ООО 1С-Софт +// Copyright (c) 2025, ООО 1С-Софт // Все права защищены. Эта программа и сопроводительные материалы предоставляются // в соответствии с условиями лицензии Attribution 4.0 International (CC BY 4.0) // Текст лицензии доступен по ссылке: diff --git a/SSL/src/InformationRegisters/КлючиДоступаПользователей/Forms/ФормаЗаписи/Module.bsl b/SSL/src/InformationRegisters/КлючиДоступаПользователей/Forms/ФормаЗаписи/Module.bsl index 00fa69d3f..55c2c57ed 100644 --- a/SSL/src/InformationRegisters/КлючиДоступаПользователей/Forms/ФормаЗаписи/Module.bsl +++ b/SSL/src/InformationRegisters/КлючиДоступаПользователей/Forms/ФормаЗаписи/Module.bsl @@ -1,5 +1,5 @@ /////////////////////////////////////////////////////////////////////////////////////////////////////// -// Copyright (c) 2024, ООО 1С-Софт +// Copyright (c) 2025, ООО 1С-Софт // Все права защищены. Эта программа и сопроводительные материалы предоставляются // в соответствии с условиями лицензии Attribution 4.0 International (CC BY 4.0) // Текст лицензии доступен по ссылке: diff --git a/SSL/src/InformationRegisters/КлючиДоступаПользователей/Forms/ФормаСписка/Module.bsl b/SSL/src/InformationRegisters/КлючиДоступаПользователей/Forms/ФормаСписка/Module.bsl index 00fa69d3f..55c2c57ed 100644 --- a/SSL/src/InformationRegisters/КлючиДоступаПользователей/Forms/ФормаСписка/Module.bsl +++ b/SSL/src/InformationRegisters/КлючиДоступаПользователей/Forms/ФормаСписка/Module.bsl @@ -1,5 +1,5 @@ /////////////////////////////////////////////////////////////////////////////////////////////////////// -// Copyright (c) 2024, ООО 1С-Софт +// Copyright (c) 2025, ООО 1С-Софт // Все права защищены. Эта программа и сопроводительные материалы предоставляются // в соответствии с условиями лицензии Attribution 4.0 International (CC BY 4.0) // Текст лицензии доступен по ссылке: diff --git a/SSL/src/InformationRegisters/КодировкиФайлов/ManagerModule.bsl b/SSL/src/InformationRegisters/КодировкиФайлов/ManagerModule.bsl index 18761c481..6bab20be5 100644 --- a/SSL/src/InformationRegisters/КодировкиФайлов/ManagerModule.bsl +++ b/SSL/src/InformationRegisters/КодировкиФайлов/ManagerModule.bsl @@ -1,5 +1,5 @@ /////////////////////////////////////////////////////////////////////////////////////////////////////// -// Copyright (c) 2024, ООО 1С-Софт +// Copyright (c) 2025, ООО 1С-Софт // Все права защищены. Эта программа и сопроводительные материалы предоставляются // в соответствии с условиями лицензии Attribution 4.0 International (CC BY 4.0) // Текст лицензии доступен по ссылке: diff --git a/SSL/src/InformationRegisters/КомментарииОперацииСтатистики/ManagerModule.bsl b/SSL/src/InformationRegisters/КомментарииОперацииСтатистики/ManagerModule.bsl index 1fc51c20f..838d00063 100644 --- a/SSL/src/InformationRegisters/КомментарииОперацииСтатистики/ManagerModule.bsl +++ b/SSL/src/InformationRegisters/КомментарииОперацииСтатистики/ManagerModule.bsl @@ -1,5 +1,5 @@ /////////////////////////////////////////////////////////////////////////////////////////////////////// -// Copyright (c) 2024, ООО 1С-Софт +// Copyright (c) 2025, ООО 1С-Софт // Все права защищены. Эта программа и сопроводительные материалы предоставляются // в соответствии с условиями лицензии Attribution 4.0 International (CC BY 4.0) // Текст лицензии доступен по ссылке: diff --git a/SSL/src/InformationRegisters/КомментарииСтатистики/ManagerModule.bsl b/SSL/src/InformationRegisters/КомментарииСтатистики/ManagerModule.bsl index bf51baadf..632ef7dfd 100644 --- a/SSL/src/InformationRegisters/КомментарииСтатистики/ManagerModule.bsl +++ b/SSL/src/InformationRegisters/КомментарииСтатистики/ManagerModule.bsl @@ -1,5 +1,5 @@ /////////////////////////////////////////////////////////////////////////////////////////////////////// -// Copyright (c) 2024, ООО 1С-Софт +// Copyright (c) 2025, ООО 1С-Софт // Все права защищены. Эта программа и сопроводительные материалы предоставляются // в соответствии с условиями лицензии Attribution 4.0 International (CC BY 4.0) // Текст лицензии доступен по ссылке: diff --git a/SSL/src/InformationRegisters/КонтактыВзаимодействий/RecordSetModule.bsl b/SSL/src/InformationRegisters/КонтактыВзаимодействий/RecordSetModule.bsl index aeacc2631..d843cd854 100644 --- a/SSL/src/InformationRegisters/КонтактыВзаимодействий/RecordSetModule.bsl +++ b/SSL/src/InformationRegisters/КонтактыВзаимодействий/RecordSetModule.bsl @@ -1,5 +1,5 @@ /////////////////////////////////////////////////////////////////////////////////////////////////////// -// Copyright (c) 2024, ООО 1С-Софт +// Copyright (c) 2025, ООО 1С-Софт // Все права защищены. Эта программа и сопроводительные материалы предоставляются // в соответствии с условиями лицензии Attribution 4.0 International (CC BY 4.0) // Текст лицензии доступен по ссылке: diff --git a/SSL/src/InformationRegisters/КонтурСинхронизации/Forms/ЗацикливаниеСинхронизации/Module.bsl b/SSL/src/InformationRegisters/КонтурСинхронизации/Forms/ЗацикливаниеСинхронизации/Module.bsl index a859663da..6c25078d4 100644 --- a/SSL/src/InformationRegisters/КонтурСинхронизации/Forms/ЗацикливаниеСинхронизации/Module.bsl +++ b/SSL/src/InformationRegisters/КонтурСинхронизации/Forms/ЗацикливаниеСинхронизации/Module.bsl @@ -1,5 +1,5 @@ /////////////////////////////////////////////////////////////////////////////////////////////////////// -// Copyright (c) 2024, ООО 1С-Софт +// Copyright (c) 2025, ООО 1С-Софт // Все права защищены. Эта программа и сопроводительные материалы предоставляются // в соответствии с условиями лицензии Attribution 4.0 International (CC BY 4.0) // Текст лицензии доступен по ссылке: diff --git a/SSL/src/InformationRegisters/КонтурСинхронизации/Forms/ФормаСписка/Module.bsl b/SSL/src/InformationRegisters/КонтурСинхронизации/Forms/ФормаСписка/Module.bsl index 45631e5eb..c29c9a0f7 100644 --- a/SSL/src/InformationRegisters/КонтурСинхронизации/Forms/ФормаСписка/Module.bsl +++ b/SSL/src/InformationRegisters/КонтурСинхронизации/Forms/ФормаСписка/Module.bsl @@ -1,5 +1,5 @@ /////////////////////////////////////////////////////////////////////////////////////////////////////// -// Copyright (c) 2024, ООО 1С-Софт +// Copyright (c) 2025, ООО 1С-Софт // Все права защищены. Эта программа и сопроводительные материалы предоставляются // в соответствии с условиями лицензии Attribution 4.0 International (CC BY 4.0) // Текст лицензии доступен по ссылке: diff --git a/SSL/src/InformationRegisters/КурсыВалют/Forms/ФормаЗаписи/Module.bsl b/SSL/src/InformationRegisters/КурсыВалют/Forms/ФормаЗаписи/Module.bsl index 1ba59f103..8929a6fdc 100644 --- a/SSL/src/InformationRegisters/КурсыВалют/Forms/ФормаЗаписи/Module.bsl +++ b/SSL/src/InformationRegisters/КурсыВалют/Forms/ФормаЗаписи/Module.bsl @@ -1,5 +1,5 @@ /////////////////////////////////////////////////////////////////////////////////////////////////////// -// Copyright (c) 2024, ООО 1С-Софт +// Copyright (c) 2025, ООО 1С-Софт // Все права защищены. Эта программа и сопроводительные материалы предоставляются // в соответствии с условиями лицензии Attribution 4.0 International (CC BY 4.0) // Текст лицензии доступен по ссылке: diff --git a/SSL/src/InformationRegisters/КурсыВалют/Forms/ФормаСписка/Module.bsl b/SSL/src/InformationRegisters/КурсыВалют/Forms/ФормаСписка/Module.bsl index 2c792dece..fb43c4cf6 100644 --- a/SSL/src/InformationRegisters/КурсыВалют/Forms/ФормаСписка/Module.bsl +++ b/SSL/src/InformationRegisters/КурсыВалют/Forms/ФормаСписка/Module.bsl @@ -1,5 +1,5 @@ /////////////////////////////////////////////////////////////////////////////////////////////////////// -// Copyright (c) 2024, ООО 1С-Софт +// Copyright (c) 2025, ООО 1С-Софт // Все права защищены. Эта программа и сопроводительные материалы предоставляются // в соответствии с условиями лицензии Attribution 4.0 International (CC BY 4.0) // Текст лицензии доступен по ссылке: diff --git a/SSL/src/InformationRegisters/КурсыВалют/RecordSetModule.bsl b/SSL/src/InformationRegisters/КурсыВалют/RecordSetModule.bsl index 4bab6e5a1..02c9f69d7 100644 --- a/SSL/src/InformationRegisters/КурсыВалют/RecordSetModule.bsl +++ b/SSL/src/InformationRegisters/КурсыВалют/RecordSetModule.bsl @@ -1,5 +1,5 @@ /////////////////////////////////////////////////////////////////////////////////////////////////////// -// Copyright (c) 2024, ООО 1С-Софт +// Copyright (c) 2025, ООО 1С-Софт // Все права защищены. Эта программа и сопроводительные материалы предоставляются // в соответствии с условиями лицензии Attribution 4.0 International (CC BY 4.0) // Текст лицензии доступен по ссылке: diff --git a/SSL/src/InformationRegisters/КэшПрограммныхИнтерфейсов/Forms/ФормаЗаписи/Module.bsl b/SSL/src/InformationRegisters/КэшПрограммныхИнтерфейсов/Forms/ФормаЗаписи/Module.bsl index 9f01db4e4..2a307fbe0 100644 --- a/SSL/src/InformationRegisters/КэшПрограммныхИнтерфейсов/Forms/ФормаЗаписи/Module.bsl +++ b/SSL/src/InformationRegisters/КэшПрограммныхИнтерфейсов/Forms/ФормаЗаписи/Module.bsl @@ -1,5 +1,5 @@ /////////////////////////////////////////////////////////////////////////////////////////////////////// -// Copyright (c) 2024, ООО 1С-Софт +// Copyright (c) 2025, ООО 1С-Софт // Все права защищены. Эта программа и сопроводительные материалы предоставляются // в соответствии с условиями лицензии Attribution 4.0 International (CC BY 4.0) // Текст лицензии доступен по ссылке: diff --git a/SSL/src/InformationRegisters/КэшПрограммныхИнтерфейсов/ManagerModule.bsl b/SSL/src/InformationRegisters/КэшПрограммныхИнтерфейсов/ManagerModule.bsl index ba8ab63fb..f1a2e91b6 100644 --- a/SSL/src/InformationRegisters/КэшПрограммныхИнтерфейсов/ManagerModule.bsl +++ b/SSL/src/InformationRegisters/КэшПрограммныхИнтерфейсов/ManagerModule.bsl @@ -1,5 +1,5 @@ /////////////////////////////////////////////////////////////////////////////////////////////////////// -// Copyright (c) 2024, ООО 1С-Софт +// Copyright (c) 2025, ООО 1С-Софт // Все права защищены. Эта программа и сопроводительные материалы предоставляются // в соответствии с условиями лицензии Attribution 4.0 International (CC BY 4.0) // Текст лицензии доступен по ссылке: diff --git a/SSL/src/InformationRegisters/КэшПрограммныхИнтерфейсов/RecordSetModule.bsl b/SSL/src/InformationRegisters/КэшПрограммныхИнтерфейсов/RecordSetModule.bsl index 9f0b06331..d2cbd2702 100644 --- a/SSL/src/InformationRegisters/КэшПрограммныхИнтерфейсов/RecordSetModule.bsl +++ b/SSL/src/InformationRegisters/КэшПрограммныхИнтерфейсов/RecordSetModule.bsl @@ -1,5 +1,5 @@ /////////////////////////////////////////////////////////////////////////////////////////////////////// -// Copyright (c) 2024, ООО 1С-Софт +// Copyright (c) 2025, ООО 1С-Софт // Все права защищены. Эта программа и сопроводительные материалы предоставляются // в соответствии с условиями лицензии Attribution 4.0 International (CC BY 4.0) // Текст лицензии доступен по ссылке: diff --git a/SSL/src/InformationRegisters/МашиночитаемыеДоверенностиПредставителиИДоверители/Forms/ФормаЗаписи/Form.form b/SSL/src/InformationRegisters/МашиночитаемыеДоверенностиПредставителиИДоверители/Forms/ФормаЗаписи/Form.form new file mode 100644 index 000000000..722c10058 --- /dev/null +++ b/SSL/src/InformationRegisters/МашиночитаемыеДоверенностиПредставителиИДоверители/Forms/ФормаЗаписи/Form.form @@ -0,0 +1,409 @@ +<?xml version="1.0" encoding="UTF-8"?> +<form:Form xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns:form="http://g5.1c.ru/v8/dt/form"> + <items xsi:type="form:FormField"> + <name>МашиночитаемаяДоверенность</name> + <id>19</id> + <visible>true</visible> + <enabled>true</enabled> + <userVisible> + <common>true</common> + </userVisible> + <dataPath xsi:type="form:DataPath"> + <segments>Запись.МашиночитаемаяДоверенность</segments> + </dataPath> + <extendedTooltip> + <name>МашиночитаемаяДоверенностьРасширеннаяПодсказка</name> + <id>21</id> + <type>Label</type> + <autoMaxWidth>true</autoMaxWidth> + <autoMaxHeight>true</autoMaxHeight> + <extInfo xsi:type="form:LabelDecorationExtInfo"> + <horizontalAlign>Left</horizontalAlign> + </extInfo> + </extendedTooltip> + <contextMenu> + <name>МашиночитаемаяДоверенностьКонтекстноеМеню</name> + <id>20</id> + <autoFill>true</autoFill> + </contextMenu> + <type>InputField</type> + <editMode>Enter</editMode> + <showInHeader>true</showInHeader> + <headerHorizontalAlign>Left</headerHorizontalAlign> + <showInFooter>true</showInFooter> + <extInfo xsi:type="form:InputFieldExtInfo"> + <autoMaxWidth>true</autoMaxWidth> + <autoMaxHeight>true</autoMaxHeight> + <wrap>true</wrap> + <chooseType>true</chooseType> + <typeDomainEnabled>true</typeDomainEnabled> + <textEdit>true</textEdit> + <textSize>Normal</textSize> + </extInfo> + </items> + <items xsi:type="form:FormField"> + <name>ТипУчастника</name> + <id>1</id> + <visible>true</visible> + <enabled>true</enabled> + <userVisible> + <common>true</common> + </userVisible> + <dataPath xsi:type="form:DataPath"> + <segments>Запись.ТипУчастника</segments> + </dataPath> + <extendedTooltip> + <name>ТипУчастникаРасширеннаяПодсказка</name> + <id>3</id> + <type>Label</type> + <autoMaxWidth>true</autoMaxWidth> + <autoMaxHeight>true</autoMaxHeight> + <extInfo xsi:type="form:LabelDecorationExtInfo"> + <horizontalAlign>Left</horizontalAlign> + </extInfo> + </extendedTooltip> + <contextMenu> + <name>ТипУчастникаКонтекстноеМеню</name> + <id>2</id> + <autoFill>true</autoFill> + </contextMenu> + <type>InputField</type> + <editMode>Enter</editMode> + <showInHeader>true</showInHeader> + <headerHorizontalAlign>Left</headerHorizontalAlign> + <showInFooter>true</showInFooter> + <extInfo xsi:type="form:InputFieldExtInfo"> + <autoMaxWidth>true</autoMaxWidth> + <autoMaxHeight>true</autoMaxHeight> + <wrap>true</wrap> + <chooseType>true</chooseType> + <typeDomainEnabled>true</typeDomainEnabled> + <textEdit>true</textEdit> + <textSize>Normal</textSize> + </extInfo> + </items> + <items xsi:type="form:FormField"> + <name>ИНН</name> + <id>4</id> + <visible>true</visible> + <enabled>true</enabled> + <userVisible> + <common>true</common> + </userVisible> + <dataPath xsi:type="form:DataPath"> + <segments>Запись.ИНН</segments> + </dataPath> + <extendedTooltip> + <name>ИННРасширеннаяПодсказка</name> + <id>6</id> + <type>Label</type> + <autoMaxWidth>true</autoMaxWidth> + <autoMaxHeight>true</autoMaxHeight> + <extInfo xsi:type="form:LabelDecorationExtInfo"> + <horizontalAlign>Left</horizontalAlign> + </extInfo> + </extendedTooltip> + <contextMenu> + <name>ИННКонтекстноеМеню</name> + <id>5</id> + <autoFill>true</autoFill> + </contextMenu> + <type>InputField</type> + <editMode>Enter</editMode> + <showInHeader>true</showInHeader> + <headerHorizontalAlign>Left</headerHorizontalAlign> + <showInFooter>true</showInFooter> + <extInfo xsi:type="form:InputFieldExtInfo"> + <autoMaxWidth>true</autoMaxWidth> + <autoMaxHeight>true</autoMaxHeight> + <wrap>true</wrap> + <chooseType>true</chooseType> + <typeDomainEnabled>true</typeDomainEnabled> + <textEdit>true</textEdit> + <textSize>Normal</textSize> + </extInfo> + </items> + <items xsi:type="form:FormField"> + <name>ОГРН</name> + <id>10</id> + <visible>true</visible> + <enabled>true</enabled> + <userVisible> + <common>true</common> + </userVisible> + <dataPath xsi:type="form:DataPath"> + <segments>Запись.ОГРН</segments> + </dataPath> + <extendedTooltip> + <name>ОГРНРасширеннаяПодсказка</name> + <id>12</id> + <type>Label</type> + <autoMaxWidth>true</autoMaxWidth> + <autoMaxHeight>true</autoMaxHeight> + <extInfo xsi:type="form:LabelDecorationExtInfo"> + <horizontalAlign>Left</horizontalAlign> + </extInfo> + </extendedTooltip> + <contextMenu> + <name>ОГРНКонтекстноеМеню</name> + <id>11</id> + <autoFill>true</autoFill> + </contextMenu> + <type>InputField</type> + <editMode>Enter</editMode> + <showInHeader>true</showInHeader> + <headerHorizontalAlign>Left</headerHorizontalAlign> + <showInFooter>true</showInFooter> + <extInfo xsi:type="form:InputFieldExtInfo"> + <autoMaxWidth>true</autoMaxWidth> + <autoMaxHeight>true</autoMaxHeight> + <wrap>true</wrap> + <chooseType>true</chooseType> + <typeDomainEnabled>true</typeDomainEnabled> + <textEdit>true</textEdit> + <textSize>Normal</textSize> + </extInfo> + </items> + <items xsi:type="form:FormField"> + <name>КПП</name> + <id>16</id> + <visible>true</visible> + <enabled>true</enabled> + <userVisible> + <common>true</common> + </userVisible> + <dataPath xsi:type="form:DataPath"> + <segments>Запись.КПП</segments> + </dataPath> + <extendedTooltip> + <name>КППРасширеннаяПодсказка</name> + <id>18</id> + <type>Label</type> + <autoMaxWidth>true</autoMaxWidth> + <autoMaxHeight>true</autoMaxHeight> + <extInfo xsi:type="form:LabelDecorationExtInfo"> + <horizontalAlign>Left</horizontalAlign> + </extInfo> + </extendedTooltip> + <contextMenu> + <name>КППКонтекстноеМеню</name> + <id>17</id> + <autoFill>true</autoFill> + </contextMenu> + <type>InputField</type> + <editMode>Enter</editMode> + <showInHeader>true</showInHeader> + <headerHorizontalAlign>Left</headerHorizontalAlign> + <showInFooter>true</showInFooter> + <extInfo xsi:type="form:InputFieldExtInfo"> + <autoMaxWidth>true</autoMaxWidth> + <autoMaxHeight>true</autoMaxHeight> + <wrap>true</wrap> + <chooseType>true</chooseType> + <typeDomainEnabled>true</typeDomainEnabled> + <textEdit>true</textEdit> + <textSize>Normal</textSize> + </extInfo> + </items> + <items xsi:type="form:FormField"> + <name>СовместныеПолномочия</name> + <id>22</id> + <visible>true</visible> + <enabled>true</enabled> + <userVisible> + <common>true</common> + </userVisible> + <dataPath xsi:type="form:DataPath"> + <segments>Запись.СовместныеПолномочия</segments> + </dataPath> + <extendedTooltip> + <name>СовместныеПолномочияРасширеннаяПодсказка</name> + <id>24</id> + <type>Label</type> + <autoMaxWidth>true</autoMaxWidth> + <autoMaxHeight>true</autoMaxHeight> + <extInfo xsi:type="form:LabelDecorationExtInfo"> + <horizontalAlign>Left</horizontalAlign> + </extInfo> + </extendedTooltip> + <contextMenu> + <name>СовместныеПолномочияКонтекстноеМеню</name> + <id>23</id> + <autoFill>true</autoFill> + </contextMenu> + <type>CheckBoxField</type> + <editMode>Enter</editMode> + <showInHeader>true</showInHeader> + <headerHorizontalAlign>Left</headerHorizontalAlign> + <showInFooter>true</showInFooter> + <extInfo xsi:type="form:CheckBoxFieldExtInfo"/> + </items> + <items xsi:type="form:FormField"> + <name>ЭтоКонтрагент</name> + <id>43</id> + <visible>true</visible> + <enabled>true</enabled> + <userVisible> + <common>true</common> + </userVisible> + <dataPath xsi:type="form:DataPath"> + <segments>Запись.ЭтоКонтрагент</segments> + </dataPath> + <extendedTooltip> + <name>ЭтоКонтрагентРасширеннаяПодсказка</name> + <id>45</id> + <type>Label</type> + <autoMaxWidth>true</autoMaxWidth> + <autoMaxHeight>true</autoMaxHeight> + <extInfo xsi:type="form:LabelDecorationExtInfo"> + <horizontalAlign>Left</horizontalAlign> + </extInfo> + </extendedTooltip> + <contextMenu> + <name>ЭтоКонтрагентКонтекстноеМеню</name> + <id>44</id> + <autoFill>true</autoFill> + </contextMenu> + <type>CheckBoxField</type> + <editMode>Enter</editMode> + <showInHeader>true</showInHeader> + <headerHorizontalAlign>Left</headerHorizontalAlign> + <showInFooter>true</showInFooter> + <extInfo xsi:type="form:CheckBoxFieldExtInfo"/> + </items> + <items xsi:type="form:FormField"> + <name>ЭтоФизическоеЛицо</name> + <id>46</id> + <visible>true</visible> + <enabled>true</enabled> + <userVisible> + <common>true</common> + </userVisible> + <dataPath xsi:type="form:DataPath"> + <segments>Запись.ЭтоФизическоеЛицо</segments> + </dataPath> + <extendedTooltip> + <name>ЭтоФизическоеЛицоРасширеннаяПодсказка</name> + <id>48</id> + <type>Label</type> + <autoMaxWidth>true</autoMaxWidth> + <autoMaxHeight>true</autoMaxHeight> + <extInfo xsi:type="form:LabelDecorationExtInfo"> + <horizontalAlign>Left</horizontalAlign> + </extInfo> + </extendedTooltip> + <contextMenu> + <name>ЭтоФизическоеЛицоКонтекстноеМеню</name> + <id>47</id> + <autoFill>true</autoFill> + </contextMenu> + <type>CheckBoxField</type> + <editMode>Enter</editMode> + <showInHeader>true</showInHeader> + <headerHorizontalAlign>Left</headerHorizontalAlign> + <showInFooter>true</showInFooter> + <extInfo xsi:type="form:CheckBoxFieldExtInfo"/> + </items> + <items xsi:type="form:FormField"> + <name>ЭтоИндивидуальныйПредприниматель</name> + <id>49</id> + <visible>true</visible> + <enabled>true</enabled> + <userVisible> + <common>true</common> + </userVisible> + <dataPath xsi:type="form:DataPath"> + <segments>Запись.ЭтоИндивидуальныйПредприниматель</segments> + </dataPath> + <extendedTooltip> + <name>ЭтоИндивидуальныйПредпринимательРасширеннаяПодсказка</name> + <id>51</id> + <type>Label</type> + <autoMaxWidth>true</autoMaxWidth> + <autoMaxHeight>true</autoMaxHeight> + <extInfo xsi:type="form:LabelDecorationExtInfo"> + <horizontalAlign>Left</horizontalAlign> + </extInfo> + </extendedTooltip> + <contextMenu> + <name>ЭтоИндивидуальныйПредпринимательКонтекстноеМеню</name> + <id>50</id> + <autoFill>true</autoFill> + </contextMenu> + <type>CheckBoxField</type> + <editMode>Enter</editMode> + <showInHeader>true</showInHeader> + <headerHorizontalAlign>Left</headerHorizontalAlign> + <showInFooter>true</showInFooter> + <extInfo xsi:type="form:CheckBoxFieldExtInfo"/> + </items> + <items xsi:type="form:FormField"> + <name>ЭтоИностраннаяОрганизация</name> + <id>52</id> + <visible>true</visible> + <enabled>true</enabled> + <userVisible> + <common>true</common> + </userVisible> + <dataPath xsi:type="form:DataPath"> + <segments>Запись.ЭтоИностраннаяОрганизация</segments> + </dataPath> + <extendedTooltip> + <name>ЭтоИностраннаяОрганизацияРасширеннаяПодсказка</name> + <id>54</id> + <type>Label</type> + <autoMaxWidth>true</autoMaxWidth> + <autoMaxHeight>true</autoMaxHeight> + <extInfo xsi:type="form:LabelDecorationExtInfo"> + <horizontalAlign>Left</horizontalAlign> + </extInfo> + </extendedTooltip> + <contextMenu> + <name>ЭтоИностраннаяОрганизацияКонтекстноеМеню</name> + <id>53</id> + <autoFill>true</autoFill> + </contextMenu> + <type>CheckBoxField</type> + <editMode>Enter</editMode> + <showInHeader>true</showInHeader> + <headerHorizontalAlign>Left</headerHorizontalAlign> + <showInFooter>true</showInFooter> + <extInfo xsi:type="form:CheckBoxFieldExtInfo"/> + </items> + <autoCommandBar> + <name>ФормаКоманднаяПанель</name> + <id>-1</id> + <horizontalAlign>Left</horizontalAlign> + <autoFill>true</autoFill> + </autoCommandBar> + <windowOpeningMode>LockOwner</windowOpeningMode> + <saveWindowSettings>true</saveWindowSettings> + <autoTitle>true</autoTitle> + <autoUrl>true</autoUrl> + <group>Vertical</group> + <autoFillCheck>true</autoFillCheck> + <allowFormCustomize>true</allowFormCustomize> + <enabled>true</enabled> + <showTitle>auto</showTitle> + <showCloseButton>true</showCloseButton> + <attributes> + <name>Запись</name> + <id>1</id> + <valueType> + <types>InformationRegisterRecordManager.МашиночитаемыеДоверенностиПредставителиИДоверители</types> + </valueType> + <view> + <common>true</common> + </view> + <edit> + <common>true</common> + </edit> + <main>true</main> + <savedData>true</savedData> + </attributes> + <commandInterface> + <navigationPanel/> + <commandBar/> + </commandInterface> + <extInfo xsi:type="form:InformationRegisterManagerFormExtInfo"/> +</form:Form> diff --git a/SSL/src/InformationRegisters/МашиночитаемыеДоверенностиПредставителиИДоверители/Forms/ФормаЗаписи/Module.bsl b/SSL/src/InformationRegisters/МашиночитаемыеДоверенностиПредставителиИДоверители/Forms/ФормаЗаписи/Module.bsl new file mode 100644 index 000000000..6e1c65e5d --- /dev/null +++ b/SSL/src/InformationRegisters/МашиночитаемыеДоверенностиПредставителиИДоверители/Forms/ФормаЗаписи/Module.bsl @@ -0,0 +1,7 @@ +/////////////////////////////////////////////////////////////////////////////////////////////////////// +// Copyright (c) 2025, ООО 1С-Софт +// Все права защищены. Эта программа и сопроводительные материалы предоставляются +// в соответствии с условиями лицензии Attribution 4.0 International (CC BY 4.0) +// Текст лицензии доступен по ссылке: +// https://creativecommons.org/licenses/by/4.0/legalcode +/////////////////////////////////////////////////////////////////////////////////////////////////////// diff --git a/SSL/src/InformationRegisters/МашиночитаемыеДоверенностиПредставителиИДоверители/Forms/ФормаСписка/Form.form b/SSL/src/InformationRegisters/МашиночитаемыеДоверенностиПредставителиИДоверители/Forms/ФормаСписка/Form.form new file mode 100644 index 000000000..9a8d6aecf --- /dev/null +++ b/SSL/src/InformationRegisters/МашиночитаемыеДоверенностиПредставителиИДоверители/Forms/ФормаСписка/Form.form @@ -0,0 +1,725 @@ +<?xml version="1.0" encoding="UTF-8"?> +<form:Form xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns:core="http://g5.1c.ru/v8/dt/mcore" xmlns:form="http://g5.1c.ru/v8/dt/form"> + <items xsi:type="form:FormGroup"> + <name>СписокКомпоновщикНастроекПользовательскиеНастройки</name> + <id>1</id> + <visible>true</visible> + <enabled>true</enabled> + <userVisible> + <common>true</common> + </userVisible> + <title> + <key>ru</key> + <value>User settings group</value> + + false + + СписокКомпоновщикНастроекПользовательскиеНастройкиРасширеннаяПодсказка + 2 + Label + true + true + + Left + + + UsualGroup + + Vertical + Auto + WeakSeparation + true + true + Auto + Auto + + + + Список + 3 + true + true + + true + + + Список + + true + None + + ТипУчастника + 16 + true + true + + true + + + Список.ТипУчастника + + true + + ТипУчастникаРасширеннаяПодсказка + 18 + Label + true + true + + Left + + + + ТипУчастникаКонтекстноеМеню + 17 + true + + LabelField + Enter + true + Left + true + + true + true + + + + ИНН + 19 + true + true + + true + + + Список.ИНН + + + ИННРасширеннаяПодсказка + 21 + Label + true + true + + Left + + + + ИННКонтекстноеМеню + 20 + true + + LabelField + Enter + true + Left + true + + true + true + + + + ОГРН + 25 + true + true + + true + + + Список.ОГРН + + + ОГРНРасширеннаяПодсказка + 27 + Label + true + true + + Left + + + + ОГРНКонтекстноеМеню + 26 + true + + LabelField + Enter + true + Left + true + + true + true + + + + КПП + 31 + true + true + + true + + + Список.КПП + + + КППРасширеннаяПодсказка + 33 + Label + true + true + + Left + + + + КППКонтекстноеМеню + 32 + true + + LabelField + Enter + true + Left + true + + true + true + + + + МашиночитаемаяДоверенность + 34 + true + true + + true + + + Список.МашиночитаемаяДоверенность + + + МашиночитаемаяДоверенностьРасширеннаяПодсказка + 36 + Label + true + true + + Left + + + + МашиночитаемаяДоверенностьКонтекстноеМеню + 35 + true + + LabelField + Enter + true + Left + true + + true + true + + + + СовместныеПолномочия + 37 + true + true + + true + + + Список.СовместныеПолномочия + + + СовместныеПолномочияРасширеннаяПодсказка + 39 + Label + true + true + + Left + + + + СовместныеПолномочияКонтекстноеМеню + 38 + true + + LabelField + Enter + true + Left + true + + true + true + + + + Организация + 40 + true + true + + true + + + Список.Организация + + + ОрганизацияРасширеннаяПодсказка + 42 + Label + true + true + + Left + + + + ОрганизацияКонтекстноеМеню + 41 + true + + LabelField + Enter + true + Left + true + + true + true + + + + УправляющаяКомпания + 46 + true + true + + true + + + Список.УправляющаяКомпания + + + УправляющаяКомпанияРасширеннаяПодсказка + 48 + Label + true + true + + Left + + + + УправляющаяКомпанияКонтекстноеМеню + 47 + true + + LabelField + Enter + true + Left + true + + true + true + + + + НаименованиеОрганизации + 49 + true + true + + true + + + Список.НаименованиеОрганизации + + + НаименованиеОрганизацииРасширеннаяПодсказка + 51 + Label + true + true + + Left + + + + НаименованиеОрганизацииКонтекстноеМеню + 50 + true + + LabelField + Enter + true + Left + true + + true + true + + + + РегистрационныйНомерФилиала + 55 + true + true + + true + + + Список.РегистрационныйНомерФилиала + + + РегистрационныйНомерФилиалаРасширеннаяПодсказка + 57 + Label + true + true + + Left + + + + РегистрационныйНомерФилиалаКонтекстноеМеню + 56 + true + + LabelField + Enter + true + Left + true + + true + true + + + + ЭтоКонтрагент + 58 + true + true + + true + + + Список.ЭтоКонтрагент + + + ЭтоКонтрагентРасширеннаяПодсказка + 60 + Label + true + true + + Left + + + + ЭтоКонтрагентКонтекстноеМеню + 59 + true + + LabelField + Enter + true + Left + true + + true + true + + + + ЭтоФизическоеЛицо + 61 + true + true + + true + + + Список.ЭтоФизическоеЛицо + + + ЭтоФизическоеЛицоРасширеннаяПодсказка + 63 + Label + true + true + + Left + + + + ЭтоФизическоеЛицоКонтекстноеМеню + 62 + true + + LabelField + Enter + true + Left + true + + true + true + + + + ЭтоИндивидуальныйПредприниматель + 64 + true + true + + true + + + Список.ЭтоИндивидуальныйПредприниматель + + + ЭтоИндивидуальныйПредпринимательРасширеннаяПодсказка + 66 + Label + true + true + + Left + + + + ЭтоИндивидуальныйПредпринимательКонтекстноеМеню + 65 + true + + LabelField + Enter + true + Left + true + + true + true + + + + ЭтоИностраннаяОрганизация + 67 + true + true + + true + + + Список.ЭтоИностраннаяОрганизация + + + ЭтоИностраннаяОрганизацияРасширеннаяПодсказка + 69 + Label + true + true + + Left + + + + ЭтоИностраннаяОрганизацияКонтекстноеМеню + 68 + true + + LabelField + Enter + true + Left + true + + true + true + + + None + + СписокКоманднаяПанель + 5 + Left + + + СписокСтрокаПоиска + 7 + + СписокСтрокаПоискаРасширеннаяПодсказка + 9 + Label + true + true + + Left + + + + СписокСтрокаПоискаКонтекстноеМеню + 8 + true + + Список + + true + + + + СписокСостояниеПросмотра + 10 + + СписокСостояниеПросмотраРасширеннаяПодсказка + 12 + Label + true + true + + Left + + + + СписокСостояниеПросмотраКонтекстноеМеню + 11 + true + + ViewStatusAddition + Список + + true + + + + СписокУправлениеПоиском + 13 + + СписокУправлениеПоискомРасширеннаяПодсказка + 15 + Label + true + true + + Left + + + + СписокУправлениеПоискомКонтекстноеМеню + 14 + true + + SearchControlAddition + Список + + true + + + + СписокРасширеннаяПодсказка + 6 + Label + true + true + + Left + + + + СписокКонтекстноеМеню + 4 + true + + true + true + true + true + true + MultiRow +
                      true
                      + 1 + 1 + AutoUse + AutoUse + true + true + Auto + Auto + ExpandTopLevel + true + true + true + AsFileRef + + Список.DefaultPicture + + true + + 60 + + 0001-01-01T00:00:00 + 0001-01-01T00:00:00 + + + true + true + СписокКомпоновщикНастроекПользовательскиеНастройки + +
                      + + ФормаКоманднаяПанель + -1 + Left + true + + DontBlock + true + true + true + Vertical + true + true + true + auto + true + + Список + 1 + + DynamicList + + + true + + + true + +
                      true
                      + + InformationRegister.МашиночитаемыеДоверенностиПредставителиИДоверители + true + true + true + true + +
                      + + + + + + diff --git a/SSL/src/InformationRegisters/МашиночитаемыеДоверенностиПредставителиИДоверители/Forms/ФормаСписка/Module.bsl b/SSL/src/InformationRegisters/МашиночитаемыеДоверенностиПредставителиИДоверители/Forms/ФормаСписка/Module.bsl new file mode 100644 index 000000000..6e1c65e5d --- /dev/null +++ b/SSL/src/InformationRegisters/МашиночитаемыеДоверенностиПредставителиИДоверители/Forms/ФормаСписка/Module.bsl @@ -0,0 +1,7 @@ +/////////////////////////////////////////////////////////////////////////////////////////////////////// +// Copyright (c) 2025, ООО 1С-Софт +// Все права защищены. Эта программа и сопроводительные материалы предоставляются +// в соответствии с условиями лицензии Attribution 4.0 International (CC BY 4.0) +// Текст лицензии доступен по ссылке: +// https://creativecommons.org/licenses/by/4.0/legalcode +/////////////////////////////////////////////////////////////////////////////////////////////////////// diff --git a/SSL/src/InformationRegisters/МашиночитаемыеДоверенностиПредставителиИДоверители/МашиночитаемыеДоверенностиПредставителиИДоверители.mdo b/SSL/src/InformationRegisters/МашиночитаемыеДоверенностиПредставителиИДоверители/МашиночитаемыеДоверенностиПредставителиИДоверители.mdo index bfc6127a5..1b2ecc1fb 100644 --- a/SSL/src/InformationRegisters/МашиночитаемыеДоверенностиПредставителиИДоверители/МашиночитаемыеДоверенностиПредставителиИДоверители.mdo +++ b/SSL/src/InformationRegisters/МашиночитаемыеДоверенностиПредставителиИДоверители/МашиночитаемыеДоверенностиПредставителиИДоверители.mdo @@ -15,6 +15,8 @@ Машиночитаемые доверенности представители и доверители InDialog + InformationRegister.МашиночитаемыеДоверенностиПредставителиИДоверители.Form.ФормаЗаписи + InformationRegister.МашиночитаемыеДоверенностиПредставителиИДоверители.Form.ФормаСписка Use Active @@ -352,4 +354,22 @@ true true + + ФормаСписка + + ru + Форма списка + + PersonalComputer + MobileDevice + + + ФормаЗаписи + + ru + Форма записи + + PersonalComputer + MobileDevice + diff --git a/SSL/src/InformationRegisters/МашиночитаемыеДоверенностиСтатусы/Forms/СписокРезультатов/Module.bsl b/SSL/src/InformationRegisters/МашиночитаемыеДоверенностиСтатусы/Forms/СписокРезультатов/Module.bsl index e9221302d..18dacb25a 100644 --- a/SSL/src/InformationRegisters/МашиночитаемыеДоверенностиСтатусы/Forms/СписокРезультатов/Module.bsl +++ b/SSL/src/InformationRegisters/МашиночитаемыеДоверенностиСтатусы/Forms/СписокРезультатов/Module.bsl @@ -1,5 +1,5 @@ /////////////////////////////////////////////////////////////////////////////////////////////////////// -// Copyright (c) 2024, ООО 1С-Софт +// Copyright (c) 2025, ООО 1С-Софт // Все права защищены. Эта программа и сопроводительные материалы предоставляются // в соответствии с условиями лицензии Attribution 4.0 International (CC BY 4.0) // Текст лицензии доступен по ссылке: diff --git a/SSL/src/InformationRegisters/МашиночитаемыеДоверенностиСтатусы/ManagerModule.bsl b/SSL/src/InformationRegisters/МашиночитаемыеДоверенностиСтатусы/ManagerModule.bsl index 5adeb4663..923cae3e7 100644 --- a/SSL/src/InformationRegisters/МашиночитаемыеДоверенностиСтатусы/ManagerModule.bsl +++ b/SSL/src/InformationRegisters/МашиночитаемыеДоверенностиСтатусы/ManagerModule.bsl @@ -1,5 +1,5 @@ /////////////////////////////////////////////////////////////////////////////////////////////////////// -// Copyright (c) 2024, ООО 1С-Софт +// Copyright (c) 2025, ООО 1С-Софт // Все права защищены. Эта программа и сопроводительные материалы предоставляются // в соответствии с условиями лицензии Attribution 4.0 International (CC BY 4.0) // Текст лицензии доступен по ссылке: diff --git a/SSL/src/InformationRegisters/МашиночитаемыеДоверенностиСтатусы/RecordSetModule.bsl b/SSL/src/InformationRegisters/МашиночитаемыеДоверенностиСтатусы/RecordSetModule.bsl index 4a920247b..41331dba8 100644 --- a/SSL/src/InformationRegisters/МашиночитаемыеДоверенностиСтатусы/RecordSetModule.bsl +++ b/SSL/src/InformationRegisters/МашиночитаемыеДоверенностиСтатусы/RecordSetModule.bsl @@ -1,5 +1,5 @@ /////////////////////////////////////////////////////////////////////////////////////////////////////// -// Copyright (c) 2024, ООО 1С-Софт +// Copyright (c) 2025, ООО 1С-Софт // Все права защищены. Эта программа и сопроводительные материалы предоставляются // в соответствии с условиями лицензии Attribution 4.0 International (CC BY 4.0) // Текст лицензии доступен по ссылке: diff --git a/SSL/src/InformationRegisters/МестаХраненияДвоичныхДанных/ManagerModule.bsl b/SSL/src/InformationRegisters/МестаХраненияДвоичныхДанных/ManagerModule.bsl new file mode 100644 index 000000000..35e72ff68 --- /dev/null +++ b/SSL/src/InformationRegisters/МестаХраненияДвоичныхДанных/ManagerModule.bsl @@ -0,0 +1,68 @@ +/////////////////////////////////////////////////////////////////////////////////////////////////////// +// Copyright (c) 2025, ООО 1С-Софт +// Все права защищены. Эта программа и сопроводительные материалы предоставляются +// в соответствии с условиями лицензии Attribution 4.0 International (CC BY 4.0) +// Текст лицензии доступен по ссылке: +// https://creativecommons.org/licenses/by/4.0/legalcode +/////////////////////////////////////////////////////////////////////////////////////////////////////// + +#Если Сервер Или ТолстыйКлиентОбычноеПриложение Или ВнешнееСоединение Тогда + +#Область СлужебныйПрограммныйИнтерфейс + +// Добавляет запись в регистр сведений. +// +// Параметры: +// ХранилищеДвоичныхДанныхСсылка - СправочникСсылка.ХранилищеДвоичныхДанных - значение измерения "ХранилищеДвоичныхДанных". +// ЗначенияАтрибутовЗаписи - Структура +// +Процедура ДобавитьИзменитьЗапись(ХранилищеДвоичныхДанныхСсылка, ЗначенияАтрибутовЗаписи) Экспорт + + Набор = СоздатьНаборЗаписей(); + Набор.Отбор.ХранилищеДвоичныхДанных.Установить(ХранилищеДвоичныхДанныхСсылка); + + Блокировка = Новый БлокировкаДанных; + Блокировка.Добавить("РегистрСведений.МестаХраненияДвоичныхДанных").УстановитьЗначение("ХранилищеДвоичныхДанных", ХранилищеДвоичныхДанныхСсылка); + + НачатьТранзакцию(); + Попытка + + Блокировка.Заблокировать(); + + Набор.Прочитать(); + Если Набор.Количество() = 0 Тогда + Запись = Набор.Добавить(); + Иначе + Запись = Набор[0]; + КонецЕсли; + + Запись.ХранилищеДвоичныхДанных = ХранилищеДвоичныхДанныхСсылка; + ЗаполнитьЗначенияСвойств(Запись, ЗначенияАтрибутовЗаписи); + + Набор.Записать(); + + ЗафиксироватьТранзакцию(); + Исключение + ОтменитьТранзакцию(); + ВызватьИсключение; + КонецПопытки; + +КонецПроцедуры + +// Удаляет запись из регистра сведений. +// +// Параметры: +// ХранилищеДвоичныхДанныхСсылка - СправочникСсылка.ХранилищеДвоичныхДанных - значение измерения "ХранилищеДвоичныхДанных". +// +Процедура УдалитьЗапись(ХранилищеДвоичныхДанныхСсылка) Экспорт + + Запись = СоздатьМенеджерЗаписи(); + Запись.ХранилищеДвоичныхДанных = ХранилищеДвоичныхДанныхСсылка; + + Запись.Удалить(); + +КонецПроцедуры + +#КонецОбласти + +#КонецЕсли \ No newline at end of file diff --git a/SSL/src/InformationRegisters/МестаХраненияДвоичныхДанных/МестаХраненияДвоичныхДанных.mdo b/SSL/src/InformationRegisters/МестаХраненияДвоичныхДанных/МестаХраненияДвоичныхДанных.mdo new file mode 100644 index 000000000..48458cc01 --- /dev/null +++ b/SSL/src/InformationRegisters/МестаХраненияДвоичныхДанных/МестаХраненияДвоичныхДанных.mdo @@ -0,0 +1,116 @@ + + + + + + + + + + + + МестаХраненияДвоичныхДанных + + ru + Места хранения двоичных данных + + true + InDialog + + Use + Active + + Use + + + + + Use + LineNumber + + Use + + + + + Use + Recorder + + Use + + + + + Use + Period + + ShowError + Use + + + + Managed + + ДвоичныеДанныеВАрхиве + + ru + Двоичные данные в архиве + + + ValueStorage + + + + Use + Use + + + + ДвоичныеДанныеВОперационномВстроенномХранилище + + ru + Двоичные данные в операционном встроенном хранилище + + + ValueStorage + + + + Use + Use + + + + ДвоичныеДанныеВОперационномВнешнемХранилище + + ru + Двоичные данные в операционном внешнем хранилище + + + ValueStorage + + + + Use + Use + + + + ХранилищеДвоичныхДанных + + ru + Хранилище двоичных данных + + + CatalogRef.ХранилищеДвоичныхДанных + + + + Use + Use + true + + true + true + + diff --git a/SSL/src/InformationRegisters/НаборыЗначенийДоступа/Forms/ФормаЗаписи/Module.bsl b/SSL/src/InformationRegisters/НаборыЗначенийДоступа/Forms/ФормаЗаписи/Module.bsl index 00fa69d3f..55c2c57ed 100644 --- a/SSL/src/InformationRegisters/НаборыЗначенийДоступа/Forms/ФормаЗаписи/Module.bsl +++ b/SSL/src/InformationRegisters/НаборыЗначенийДоступа/Forms/ФормаЗаписи/Module.bsl @@ -1,5 +1,5 @@ /////////////////////////////////////////////////////////////////////////////////////////////////////// -// Copyright (c) 2024, ООО 1С-Софт +// Copyright (c) 2025, ООО 1С-Софт // Все права защищены. Эта программа и сопроводительные материалы предоставляются // в соответствии с условиями лицензии Attribution 4.0 International (CC BY 4.0) // Текст лицензии доступен по ссылке: diff --git a/SSL/src/InformationRegisters/НаборыЗначенийДоступа/Forms/ФормаСписка/Module.bsl b/SSL/src/InformationRegisters/НаборыЗначенийДоступа/Forms/ФормаСписка/Module.bsl index 1e59146c1..a91378a10 100644 --- a/SSL/src/InformationRegisters/НаборыЗначенийДоступа/Forms/ФормаСписка/Module.bsl +++ b/SSL/src/InformationRegisters/НаборыЗначенийДоступа/Forms/ФормаСписка/Module.bsl @@ -1,5 +1,5 @@ /////////////////////////////////////////////////////////////////////////////////////////////////////// -// Copyright (c) 2024, ООО 1С-Софт +// Copyright (c) 2025, ООО 1С-Софт // Все права защищены. Эта программа и сопроводительные материалы предоставляются // в соответствии с условиями лицензии Attribution 4.0 International (CC BY 4.0) // Текст лицензии доступен по ссылке: diff --git a/SSL/src/InformationRegisters/НаборыЗначенийДоступа/ManagerModule.bsl b/SSL/src/InformationRegisters/НаборыЗначенийДоступа/ManagerModule.bsl index 7140e500d..8ba4fd01c 100644 --- a/SSL/src/InformationRegisters/НаборыЗначенийДоступа/ManagerModule.bsl +++ b/SSL/src/InformationRegisters/НаборыЗначенийДоступа/ManagerModule.bsl @@ -1,5 +1,5 @@ /////////////////////////////////////////////////////////////////////////////////////////////////////// -// Copyright (c) 2024, ООО 1С-Софт +// Copyright (c) 2025, ООО 1С-Софт // Все права защищены. Эта программа и сопроводительные материалы предоставляются // в соответствии с условиями лицензии Attribution 4.0 International (CC BY 4.0) // Текст лицензии доступен по ссылке: @@ -17,7 +17,7 @@ УстановитьПривилегированныйРежим(Истина); - Если Константы.ОграничиватьДоступНаУровнеЗаписей.Получить() Тогда + Если УправлениеДоступомСлужебный.КонстантаОграничиватьДоступНаУровнеЗаписей() Тогда УправлениеДоступомСлужебный.УстановитьЗаполнениеДанныхДляОграниченияДоступа(Истина); КонецЕсли; @@ -35,6 +35,12 @@ // Процедура ОбновитьДанныеРегистра(ЕстьИзменения = Неопределено) Экспорт + Если УправлениеДоступомСлужебный.ОтключеноОграничениеНаУровнеЗаписей() Тогда + УправлениеДоступомСлужебный.ОчиститьРегистрСведений( + Метаданные.РегистрыСведений.НаборыЗначенийДоступа.ПолноеИмя(), ЕстьИзменения); + Возврат; + КонецЕсли; + УправлениеДоступомСлужебный.ПроверитьАктуальностьМетаданных(); КоличествоДанных = 1; diff --git a/SSL/src/InformationRegisters/НазначениеДополнительныхОбработок/ManagerModule.bsl b/SSL/src/InformationRegisters/НазначениеДополнительныхОбработок/ManagerModule.bsl index 4ce898d60..021eb3d7f 100644 --- a/SSL/src/InformationRegisters/НазначениеДополнительныхОбработок/ManagerModule.bsl +++ b/SSL/src/InformationRegisters/НазначениеДополнительныхОбработок/ManagerModule.bsl @@ -1,5 +1,5 @@ /////////////////////////////////////////////////////////////////////////////////////////////////////// -// Copyright (c) 2024, ООО 1С-Софт +// Copyright (c) 2025, ООО 1С-Софт // Все права защищены. Эта программа и сопроводительные материалы предоставляются // в соответствии с условиями лицензии Attribution 4.0 International (CC BY 4.0) // Текст лицензии доступен по ссылке: diff --git a/SSL/src/InformationRegisters/НаличиеФайлов/ManagerModule.bsl b/SSL/src/InformationRegisters/НаличиеФайлов/ManagerModule.bsl index bce0666e7..bd761eb49 100644 --- a/SSL/src/InformationRegisters/НаличиеФайлов/ManagerModule.bsl +++ b/SSL/src/InformationRegisters/НаличиеФайлов/ManagerModule.bsl @@ -1,5 +1,5 @@ /////////////////////////////////////////////////////////////////////////////////////////////////////// -// Copyright (c) 2024, ООО 1С-Софт +// Copyright (c) 2025, ООО 1С-Софт // Все права защищены. Эта программа и сопроводительные материалы предоставляются // в соответствии с условиями лицензии Attribution 4.0 International (CC BY 4.0) // Текст лицензии доступен по ссылке: diff --git a/SSL/src/InformationRegisters/НапоминанияПользователя/Commands/МоиНапоминания/CommandModule.bsl b/SSL/src/InformationRegisters/НапоминанияПользователя/Commands/МоиНапоминания/CommandModule.bsl index 6efe5f61e..1dca49518 100644 --- a/SSL/src/InformationRegisters/НапоминанияПользователя/Commands/МоиНапоминания/CommandModule.bsl +++ b/SSL/src/InformationRegisters/НапоминанияПользователя/Commands/МоиНапоминания/CommandModule.bsl @@ -1,5 +1,5 @@ /////////////////////////////////////////////////////////////////////////////////////////////////////// -// Copyright (c) 2024, ООО 1С-Софт +// Copyright (c) 2025, ООО 1С-Софт // Все права защищены. Эта программа и сопроводительные материалы предоставляются // в соответствии с условиями лицензии Attribution 4.0 International (CC BY 4.0) // Текст лицензии доступен по ссылке: diff --git a/SSL/src/InformationRegisters/НапоминанияПользователя/Commands/НапоминанияПользователей/CommandModule.bsl b/SSL/src/InformationRegisters/НапоминанияПользователя/Commands/НапоминанияПользователей/CommandModule.bsl index 7fdf6f75a..5062b130f 100644 --- a/SSL/src/InformationRegisters/НапоминанияПользователя/Commands/НапоминанияПользователей/CommandModule.bsl +++ b/SSL/src/InformationRegisters/НапоминанияПользователя/Commands/НапоминанияПользователей/CommandModule.bsl @@ -1,5 +1,5 @@ /////////////////////////////////////////////////////////////////////////////////////////////////////// -// Copyright (c) 2024, ООО 1С-Софт +// Copyright (c) 2025, ООО 1С-Софт // Все права защищены. Эта программа и сопроводительные материалы предоставляются // в соответствии с условиями лицензии Attribution 4.0 International (CC BY 4.0) // Текст лицензии доступен по ссылке: diff --git a/SSL/src/InformationRegisters/НапоминанияПользователя/Forms/ВсеНапоминания/Module.bsl b/SSL/src/InformationRegisters/НапоминанияПользователя/Forms/ВсеНапоминания/Module.bsl index 1e11115fe..69e3f3341 100644 --- a/SSL/src/InformationRegisters/НапоминанияПользователя/Forms/ВсеНапоминания/Module.bsl +++ b/SSL/src/InformationRegisters/НапоминанияПользователя/Forms/ВсеНапоминания/Module.bsl @@ -1,5 +1,5 @@ /////////////////////////////////////////////////////////////////////////////////////////////////////// -// Copyright (c) 2024, ООО 1С-Софт +// Copyright (c) 2025, ООО 1С-Софт // Все права защищены. Эта программа и сопроводительные материалы предоставляются // в соответствии с условиями лицензии Attribution 4.0 International (CC BY 4.0) // Текст лицензии доступен по ссылке: diff --git a/SSL/src/InformationRegisters/НапоминанияПользователя/Forms/МоиНапоминания/Module.bsl b/SSL/src/InformationRegisters/НапоминанияПользователя/Forms/МоиНапоминания/Module.bsl index 0297026c5..36fc8f5a6 100644 --- a/SSL/src/InformationRegisters/НапоминанияПользователя/Forms/МоиНапоминания/Module.bsl +++ b/SSL/src/InformationRegisters/НапоминанияПользователя/Forms/МоиНапоминания/Module.bsl @@ -1,5 +1,5 @@ /////////////////////////////////////////////////////////////////////////////////////////////////////// -// Copyright (c) 2024, ООО 1С-Софт +// Copyright (c) 2025, ООО 1С-Софт // Все права защищены. Эта программа и сопроводительные материалы предоставляются // в соответствии с условиями лицензии Attribution 4.0 International (CC BY 4.0) // Текст лицензии доступен по ссылке: diff --git a/SSL/src/InformationRegisters/НапоминанияПользователя/Forms/Напоминание/Module.bsl b/SSL/src/InformationRegisters/НапоминанияПользователя/Forms/Напоминание/Module.bsl index 00963a9f7..f5ace8b85 100644 --- a/SSL/src/InformationRegisters/НапоминанияПользователя/Forms/Напоминание/Module.bsl +++ b/SSL/src/InformationRegisters/НапоминанияПользователя/Forms/Напоминание/Module.bsl @@ -1,5 +1,5 @@ /////////////////////////////////////////////////////////////////////////////////////////////////////// -// Copyright (c) 2024, ООО 1С-Софт +// Copyright (c) 2025, ООО 1С-Софт // Все права защищены. Эта программа и сопроводительные материалы предоставляются // в соответствии с условиями лицензии Attribution 4.0 International (CC BY 4.0) // Текст лицензии доступен по ссылке: diff --git a/SSL/src/InformationRegisters/НапоминанияПользователя/Forms/Настройки/Module.bsl b/SSL/src/InformationRegisters/НапоминанияПользователя/Forms/Настройки/Module.bsl index 803176f00..09d297261 100644 --- a/SSL/src/InformationRegisters/НапоминанияПользователя/Forms/Настройки/Module.bsl +++ b/SSL/src/InformationRegisters/НапоминанияПользователя/Forms/Настройки/Module.bsl @@ -1,5 +1,5 @@ /////////////////////////////////////////////////////////////////////////////////////////////////////// -// Copyright (c) 2024, ООО 1С-Софт +// Copyright (c) 2025, ООО 1С-Софт // Все права защищены. Эта программа и сопроводительные материалы предоставляются // в соответствии с условиями лицензии Attribution 4.0 International (CC BY 4.0) // Текст лицензии доступен по ссылке: diff --git a/SSL/src/InformationRegisters/НапоминанияПользователя/Forms/ФормаЗаписи/Module.bsl b/SSL/src/InformationRegisters/НапоминанияПользователя/Forms/ФормаЗаписи/Module.bsl index 10ca74357..0b55aec4a 100644 --- a/SSL/src/InformationRegisters/НапоминанияПользователя/Forms/ФормаЗаписи/Module.bsl +++ b/SSL/src/InformationRegisters/НапоминанияПользователя/Forms/ФормаЗаписи/Module.bsl @@ -1,5 +1,5 @@ /////////////////////////////////////////////////////////////////////////////////////////////////////// -// Copyright (c) 2024, ООО 1С-Софт +// Copyright (c) 2025, ООО 1С-Софт // Все права защищены. Эта программа и сопроводительные материалы предоставляются // в соответствии с условиями лицензии Attribution 4.0 International (CC BY 4.0) // Текст лицензии доступен по ссылке: diff --git a/SSL/src/InformationRegisters/НапоминанияПользователя/Forms/ФормаОповещения/Module.bsl b/SSL/src/InformationRegisters/НапоминанияПользователя/Forms/ФормаОповещения/Module.bsl index 14cd01f64..4fa541dc6 100644 --- a/SSL/src/InformationRegisters/НапоминанияПользователя/Forms/ФормаОповещения/Module.bsl +++ b/SSL/src/InformationRegisters/НапоминанияПользователя/Forms/ФормаОповещения/Module.bsl @@ -1,5 +1,5 @@ /////////////////////////////////////////////////////////////////////////////////////////////////////// -// Copyright (c) 2024, ООО 1С-Софт +// Copyright (c) 2025, ООО 1С-Софт // Все права защищены. Эта программа и сопроводительные материалы предоставляются // в соответствии с условиями лицензии Attribution 4.0 International (CC BY 4.0) // Текст лицензии доступен по ссылке: diff --git a/SSL/src/InformationRegisters/НапоминанияПользователя/ManagerModule.bsl b/SSL/src/InformationRegisters/НапоминанияПользователя/ManagerModule.bsl index 77b17b8ad..8b21d85fb 100644 --- a/SSL/src/InformationRegisters/НапоминанияПользователя/ManagerModule.bsl +++ b/SSL/src/InformationRegisters/НапоминанияПользователя/ManagerModule.bsl @@ -1,5 +1,5 @@ /////////////////////////////////////////////////////////////////////////////////////////////////////// -// Copyright (c) 2024, ООО 1С-Софт +// Copyright (c) 2025, ООО 1С-Софт // Все права защищены. Эта программа и сопроводительные материалы предоставляются // в соответствии с условиями лицензии Attribution 4.0 International (CC BY 4.0) // Текст лицензии доступен по ссылке: diff --git a/SSL/src/InformationRegisters/НапоминанияПользователя/RecordSetModule.bsl b/SSL/src/InformationRegisters/НапоминанияПользователя/RecordSetModule.bsl index 738cce15e..f2e06b04c 100644 --- a/SSL/src/InformationRegisters/НапоминанияПользователя/RecordSetModule.bsl +++ b/SSL/src/InformationRegisters/НапоминанияПользователя/RecordSetModule.bsl @@ -1,5 +1,5 @@ /////////////////////////////////////////////////////////////////////////////////////////////////////// -// Copyright (c) 2024, ООО 1С-Софт +// Copyright (c) 2025, ООО 1С-Софт // Все права защищены. Эта программа и сопроводительные материалы предоставляются // в соответствии с условиями лицензии Attribution 4.0 International (CC BY 4.0) // Текст лицензии доступен по ссылке: diff --git a/SSL/src/InformationRegisters/НаследованиеНастроекПравОбъектов/Forms/ФормаЗаписи/Module.bsl b/SSL/src/InformationRegisters/НаследованиеНастроекПравОбъектов/Forms/ФормаЗаписи/Module.bsl index 00fa69d3f..55c2c57ed 100644 --- a/SSL/src/InformationRegisters/НаследованиеНастроекПравОбъектов/Forms/ФормаЗаписи/Module.bsl +++ b/SSL/src/InformationRegisters/НаследованиеНастроекПравОбъектов/Forms/ФормаЗаписи/Module.bsl @@ -1,5 +1,5 @@ /////////////////////////////////////////////////////////////////////////////////////////////////////// -// Copyright (c) 2024, ООО 1С-Софт +// Copyright (c) 2025, ООО 1С-Софт // Все права защищены. Эта программа и сопроводительные материалы предоставляются // в соответствии с условиями лицензии Attribution 4.0 International (CC BY 4.0) // Текст лицензии доступен по ссылке: diff --git a/SSL/src/InformationRegisters/НаследованиеНастроекПравОбъектов/Forms/ФормаСписка/Module.bsl b/SSL/src/InformationRegisters/НаследованиеНастроекПравОбъектов/Forms/ФормаСписка/Module.bsl index b836927f6..697d7c4b5 100644 --- a/SSL/src/InformationRegisters/НаследованиеНастроекПравОбъектов/Forms/ФормаСписка/Module.bsl +++ b/SSL/src/InformationRegisters/НаследованиеНастроекПравОбъектов/Forms/ФормаСписка/Module.bsl @@ -1,5 +1,5 @@ /////////////////////////////////////////////////////////////////////////////////////////////////////// -// Copyright (c) 2024, ООО 1С-Софт +// Copyright (c) 2025, ООО 1С-Софт // Все права защищены. Эта программа и сопроводительные материалы предоставляются // в соответствии с условиями лицензии Attribution 4.0 International (CC BY 4.0) // Текст лицензии доступен по ссылке: diff --git a/SSL/src/InformationRegisters/НаследованиеНастроекПравОбъектов/ManagerModule.bsl b/SSL/src/InformationRegisters/НаследованиеНастроекПравОбъектов/ManagerModule.bsl index da032c925..72bd91025 100644 --- a/SSL/src/InformationRegisters/НаследованиеНастроекПравОбъектов/ManagerModule.bsl +++ b/SSL/src/InformationRegisters/НаследованиеНастроекПравОбъектов/ManagerModule.bsl @@ -1,5 +1,5 @@ /////////////////////////////////////////////////////////////////////////////////////////////////////// -// Copyright (c) 2024, ООО 1С-Софт +// Copyright (c) 2025, ООО 1С-Софт // Все права защищены. Эта программа и сопроводительные материалы предоставляются // в соответствии с условиями лицензии Attribution 4.0 International (CC BY 4.0) // Текст лицензии доступен по ссылке: @@ -27,6 +27,12 @@ // Процедура ОбновитьДанныеРегистра(Знач ВладельцыНастроекПрав = Неопределено, ЕстьИзменения = Неопределено) Экспорт + Если УправлениеДоступомСлужебный.ОтключеноОграничениеНаУровнеЗаписей() Тогда + УправлениеДоступомСлужебный.ОчиститьРегистрСведений( + Метаданные.РегистрыСведений.НаследованиеНастроекПравОбъектов.ПолноеИмя(), ЕстьИзменения); + Возврат; + КонецЕсли; + Если ВладельцыНастроекПрав = Неопределено Тогда ВозможныеПрава = УправлениеДоступомСлужебный.ВозможныеПраваДляНастройкиПравОбъектов(); diff --git a/SSL/src/InformationRegisters/НастройкиАрхиваСообщенийОбменов/Forms/ФормаЗаписи/Module.bsl b/SSL/src/InformationRegisters/НастройкиАрхиваСообщенийОбменов/Forms/ФормаЗаписи/Module.bsl index 10c5f4f8f..42185e3f9 100644 --- a/SSL/src/InformationRegisters/НастройкиАрхиваСообщенийОбменов/Forms/ФормаЗаписи/Module.bsl +++ b/SSL/src/InformationRegisters/НастройкиАрхиваСообщенийОбменов/Forms/ФормаЗаписи/Module.bsl @@ -1,5 +1,5 @@ /////////////////////////////////////////////////////////////////////////////////////////////////////// -// Copyright (c) 2024, ООО 1С-Софт +// Copyright (c) 2025, ООО 1С-Софт // Все права защищены. Эта программа и сопроводительные материалы предоставляются // в соответствии с условиями лицензии Attribution 4.0 International (CC BY 4.0) // Текст лицензии доступен по ссылке: diff --git a/SSL/src/InformationRegisters/НастройкиАрхиваСообщенийОбменов/ManagerModule.bsl b/SSL/src/InformationRegisters/НастройкиАрхиваСообщенийОбменов/ManagerModule.bsl index 739df0463..30f2a8c43 100644 --- a/SSL/src/InformationRegisters/НастройкиАрхиваСообщенийОбменов/ManagerModule.bsl +++ b/SSL/src/InformationRegisters/НастройкиАрхиваСообщенийОбменов/ManagerModule.bsl @@ -1,5 +1,5 @@ /////////////////////////////////////////////////////////////////////////////////////////////////////// -// Copyright (c) 2024, ООО 1С-Софт +// Copyright (c) 2025, ООО 1С-Софт // Все права защищены. Эта программа и сопроводительные материалы предоставляются // в соответствии с условиями лицензии Attribution 4.0 International (CC BY 4.0) // Текст лицензии доступен по ссылке: diff --git a/SSL/src/InformationRegisters/НастройкиВариантовОтчетов/ManagerModule.bsl b/SSL/src/InformationRegisters/НастройкиВариантовОтчетов/ManagerModule.bsl index 62c2fcc05..d6cc19e86 100644 --- a/SSL/src/InformationRegisters/НастройкиВариантовОтчетов/ManagerModule.bsl +++ b/SSL/src/InformationRegisters/НастройкиВариантовОтчетов/ManagerModule.bsl @@ -1,5 +1,5 @@ /////////////////////////////////////////////////////////////////////////////////////////////////////// -// Copyright (c) 2024, ООО 1С-Софт +// Copyright (c) 2025, ООО 1С-Софт // Все права защищены. Эта программа и сопроводительные материалы предоставляются // в соответствии с условиями лицензии Attribution 4.0 International (CC BY 4.0) // Текст лицензии доступен по ссылке: diff --git a/SSL/src/InformationRegisters/НастройкиВариантовОтчетов/RecordSetModule.bsl b/SSL/src/InformationRegisters/НастройкиВариантовОтчетов/RecordSetModule.bsl index 5629293f1..02b3ab433 100644 --- a/SSL/src/InformationRegisters/НастройкиВариантовОтчетов/RecordSetModule.bsl +++ b/SSL/src/InformationRegisters/НастройкиВариантовОтчетов/RecordSetModule.bsl @@ -1,5 +1,5 @@ /////////////////////////////////////////////////////////////////////////////////////////////////////// -// Copyright (c) 2024, ООО 1С-Софт +// Copyright (c) 2025, ООО 1С-Софт // Все права защищены. Эта программа и сопроводительные материалы предоставляются // в соответствии с условиями лицензии Attribution 4.0 International (CC BY 4.0) // Текст лицензии доступен по ссылке: diff --git a/SSL/src/InformationRegisters/НастройкиВерсионированияОбъектов/Forms/НастройкиХраненияИстории/Module.bsl b/SSL/src/InformationRegisters/НастройкиВерсионированияОбъектов/Forms/НастройкиХраненияИстории/Module.bsl index 4cdc733f6..73cca6851 100644 --- a/SSL/src/InformationRegisters/НастройкиВерсионированияОбъектов/Forms/НастройкиХраненияИстории/Module.bsl +++ b/SSL/src/InformationRegisters/НастройкиВерсионированияОбъектов/Forms/НастройкиХраненияИстории/Module.bsl @@ -1,5 +1,5 @@ /////////////////////////////////////////////////////////////////////////////////////////////////////// -// Copyright (c) 2024, ООО 1С-Софт +// Copyright (c) 2025, ООО 1С-Софт // Все права защищены. Эта программа и сопроводительные материалы предоставляются // в соответствии с условиями лицензии Attribution 4.0 International (CC BY 4.0) // Текст лицензии доступен по ссылке: @@ -501,25 +501,13 @@ &НаСервере Процедура ЗапуститьРегламентноеЗадание() - РегламентноеЗаданиеМетаданные = Метаданные.РегламентныеЗадания.ОчисткаУстаревшихВерсийОбъектов; + ПараметрыВыполненияЗадания = РегламентныеЗаданияСервер.НовыеПараметрыВыполненияЗадания(); + ПараметрыВыполненияЗадания.ПоискАктивного = Истина; - Отбор = Новый Структура; - Отбор.Вставить("ИмяМетода", РегламентноеЗаданиеМетаданные.ИмяМетода); - - Отбор.Вставить("Состояние", СостояниеФоновогоЗадания.Активно); - ФоновыеЗаданияОчистки = ФоновыеЗадания.ПолучитьФоновыеЗадания(Отбор); - Если ФоновыеЗаданияОчистки.Количество() > 0 Тогда - ИдентификаторФоновогоЗадания = ФоновыеЗаданияОчистки[0].УникальныйИдентификатор; - Иначе - ПараметрыЗадания = ДлительныеОперации.ПараметрыВыполненияВФоне(УникальныйИдентификатор); - ПараметрыЗадания.НаименованиеФоновогоЗадания = СтроковыеФункцииКлиентСервер.ПодставитьПараметрыВСтроку( - НСтр("ru = 'Запуск вручную: %1'"), РегламентноеЗаданиеМетаданные.Синоним); - РезультатЗадания = ДлительныеОперации.ВыполнитьПроцедуру(ПараметрыЗадания, - Метаданные.РегламентныеЗадания.ОчисткаУстаревшихВерсийОбъектов.ИмяМетода); - Если ЗначениеЗаполнено(РезультатЗадания.ИдентификаторЗадания) Тогда - ИдентификаторФоновогоЗадания = РезультатЗадания.ИдентификаторЗадания; - КонецЕсли; - КонецЕсли; + ФоновоеЗадание = РегламентныеЗаданияСервер.ВыполнитьЗадание( + Метаданные.РегламентныеЗадания.ОчисткаУстаревшихВерсийОбъектов, + ПараметрыВыполненияЗадания); + ИдентификаторФоновогоЗадания = ФоновоеЗадание.УникальныйИдентификатор; ТекущееФоновоеЗадание = "Очистка"; diff --git a/SSL/src/InformationRegisters/НастройкиВерсионированияОбъектов/RecordSetModule.bsl b/SSL/src/InformationRegisters/НастройкиВерсионированияОбъектов/RecordSetModule.bsl index 35af60f25..ca21ed9db 100644 --- a/SSL/src/InformationRegisters/НастройкиВерсионированияОбъектов/RecordSetModule.bsl +++ b/SSL/src/InformationRegisters/НастройкиВерсионированияОбъектов/RecordSetModule.bsl @@ -1,5 +1,5 @@ /////////////////////////////////////////////////////////////////////////////////////////////////////// -// Copyright (c) 2024, ООО 1С-Софт +// Copyright (c) 2025, ООО 1С-Софт // Все права защищены. Эта программа и сопроводительные материалы предоставляются // в соответствии с условиями лицензии Attribution 4.0 International (CC BY 4.0) // Текст лицензии доступен по ссылке: diff --git a/SSL/src/InformationRegisters/НастройкиКомандПечати/ManagerModule.bsl b/SSL/src/InformationRegisters/НастройкиКомандПечати/ManagerModule.bsl index 01fd708a4..49af91416 100644 --- a/SSL/src/InformationRegisters/НастройкиКомандПечати/ManagerModule.bsl +++ b/SSL/src/InformationRegisters/НастройкиКомандПечати/ManagerModule.bsl @@ -1,5 +1,5 @@ /////////////////////////////////////////////////////////////////////////////////////////////////////// -// Copyright (c) 2024, ООО 1С-Софт +// Copyright (c) 2025, ООО 1С-Софт // Все права защищены. Эта программа и сопроводительные материалы предоставляются // в соответствии с условиями лицензии Attribution 4.0 International (CC BY 4.0) // Текст лицензии доступен по ссылке: diff --git a/SSL/src/InformationRegisters/НастройкиОбменаДаннымиXDTO/Forms/ФормаЗаписи/Module.bsl b/SSL/src/InformationRegisters/НастройкиОбменаДаннымиXDTO/Forms/ФормаЗаписи/Module.bsl index bcba9d0f1..a1d7cb8e8 100644 --- a/SSL/src/InformationRegisters/НастройкиОбменаДаннымиXDTO/Forms/ФормаЗаписи/Module.bsl +++ b/SSL/src/InformationRegisters/НастройкиОбменаДаннымиXDTO/Forms/ФормаЗаписи/Module.bsl @@ -1,5 +1,5 @@ /////////////////////////////////////////////////////////////////////////////////////////////////////// -// Copyright (c) 2024, ООО 1С-Софт +// Copyright (c) 2025, ООО 1С-Софт // Все права защищены. Эта программа и сопроводительные материалы предоставляются // в соответствии с условиями лицензии Attribution 4.0 International (CC BY 4.0) // Текст лицензии доступен по ссылке: diff --git a/SSL/src/InformationRegisters/НастройкиОбменаДаннымиXDTO/ManagerModule.bsl b/SSL/src/InformationRegisters/НастройкиОбменаДаннымиXDTO/ManagerModule.bsl index 7d8837f76..a0387adda 100644 --- a/SSL/src/InformationRegisters/НастройкиОбменаДаннымиXDTO/ManagerModule.bsl +++ b/SSL/src/InformationRegisters/НастройкиОбменаДаннымиXDTO/ManagerModule.bsl @@ -1,5 +1,5 @@ /////////////////////////////////////////////////////////////////////////////////////////////////////// -// Copyright (c) 2024, ООО 1С-Софт +// Copyright (c) 2025, ООО 1С-Софт // Все права защищены. Эта программа и сопроводительные материалы предоставляются // в соответствии с условиями лицензии Attribution 4.0 International (CC BY 4.0) // Текст лицензии доступен по ссылке: diff --git a/SSL/src/InformationRegisters/НастройкиОчисткиФайлов/Forms/ДобавлениеУсловияПоДате/Module.bsl b/SSL/src/InformationRegisters/НастройкиОчисткиФайлов/Forms/ДобавлениеУсловияПоДате/Module.bsl index 2ded6e4e6..efeeefea8 100644 --- a/SSL/src/InformationRegisters/НастройкиОчисткиФайлов/Forms/ДобавлениеУсловияПоДате/Module.bsl +++ b/SSL/src/InformationRegisters/НастройкиОчисткиФайлов/Forms/ДобавлениеУсловияПоДате/Module.bsl @@ -1,5 +1,5 @@ /////////////////////////////////////////////////////////////////////////////////////////////////////// -// Copyright (c) 2024, ООО 1С-Софт +// Copyright (c) 2025, ООО 1С-Софт // Все права защищены. Эта программа и сопроводительные материалы предоставляются // в соответствии с условиями лицензии Attribution 4.0 International (CC BY 4.0) // Текст лицензии доступен по ссылке: diff --git a/SSL/src/InformationRegisters/НастройкиОчисткиФайлов/Forms/ФормаЗаписи/Module.bsl b/SSL/src/InformationRegisters/НастройкиОчисткиФайлов/Forms/ФормаЗаписи/Module.bsl index d4612d0bc..7ca8af52d 100644 --- a/SSL/src/InformationRegisters/НастройкиОчисткиФайлов/Forms/ФормаЗаписи/Module.bsl +++ b/SSL/src/InformationRegisters/НастройкиОчисткиФайлов/Forms/ФормаЗаписи/Module.bsl @@ -1,5 +1,5 @@ /////////////////////////////////////////////////////////////////////////////////////////////////////// -// Copyright (c) 2024, ООО 1С-Софт +// Copyright (c) 2025, ООО 1С-Софт // Все права защищены. Эта программа и сопроводительные материалы предоставляются // в соответствии с условиями лицензии Attribution 4.0 International (CC BY 4.0) // Текст лицензии доступен по ссылке: diff --git a/SSL/src/InformationRegisters/НастройкиОчисткиФайлов/Forms/ФормаСписка/Module.bsl b/SSL/src/InformationRegisters/НастройкиОчисткиФайлов/Forms/ФормаСписка/Module.bsl index 480327e01..281d76113 100644 --- a/SSL/src/InformationRegisters/НастройкиОчисткиФайлов/Forms/ФормаСписка/Module.bsl +++ b/SSL/src/InformationRegisters/НастройкиОчисткиФайлов/Forms/ФормаСписка/Module.bsl @@ -1,5 +1,5 @@ /////////////////////////////////////////////////////////////////////////////////////////////////////// -// Copyright (c) 2024, ООО 1С-Софт +// Copyright (c) 2025, ООО 1С-Софт // Все права защищены. Эта программа и сопроводительные материалы предоставляются // в соответствии с условиями лицензии Attribution 4.0 International (CC BY 4.0) // Текст лицензии доступен по ссылке: @@ -809,26 +809,13 @@ &НаСервере Процедура ЗапуститьРегламентноеЗадание() - РегламентноеЗаданиеМетаданные = Метаданные.РегламентныеЗадания.ОчисткаНенужныхФайлов; + ПараметрыВыполненияЗадания = РегламентныеЗаданияСервер.НовыеПараметрыВыполненияЗадания(); + ПараметрыВыполненияЗадания.ПоискАктивного = Истина; - Отбор = Новый Структура; - Отбор.Вставить("ИмяМетода", РегламентноеЗаданиеМетаданные.ИмяМетода); - Отбор.Вставить("Состояние", СостояниеФоновогоЗадания.Активно); - ФоновыеЗаданияОчистки = ФоновыеЗадания.ПолучитьФоновыеЗадания(Отбор); - Если ФоновыеЗаданияОчистки.Количество() > 0 Тогда - ИдентификаторФоновогоЗадания = ФоновыеЗаданияОчистки[0].УникальныйИдентификатор; - Иначе - ПараметрыЗадания = ДлительныеОперации.ПараметрыВыполненияВФоне(УникальныйИдентификатор); - ПараметрыЗадания.НаименованиеФоновогоЗадания = СтроковыеФункцииКлиентСервер.ПодставитьПараметрыВСтроку( - НСтр("ru = 'Запуск вручную: %1'"), РегламентноеЗаданиеМетаданные.Синоним); - РезультатЗадания = ДлительныеОперации.ВыполнитьВФоне( - Метаданные.РегламентныеЗадания.ОчисткаНенужныхФайлов.ИмяМетода, - Новый Структура("РучнойЗапуск", Истина), - ПараметрыЗадания); - Если ЗначениеЗаполнено(ИдентификаторФоновогоЗадания) Тогда - ИдентификаторФоновогоЗадания = РезультатЗадания.ИдентификаторЗадания; - КонецЕсли; - КонецЕсли; + ФоновоеЗадание = РегламентныеЗаданияСервер.ВыполнитьЗадание( + Метаданные.РегламентныеЗадания.ОчисткаНенужныхФайлов, + ПараметрыВыполненияЗадания); + ИдентификаторФоновогоЗадания = ФоновоеЗадание.УникальныйИдентификатор; ТекущееФоновоеЗадание = "Очистка"; diff --git a/SSL/src/InformationRegisters/НастройкиОчисткиФайлов/ManagerModule.bsl b/SSL/src/InformationRegisters/НастройкиОчисткиФайлов/ManagerModule.bsl index 9869afe28..4cc432839 100644 --- a/SSL/src/InformationRegisters/НастройкиОчисткиФайлов/ManagerModule.bsl +++ b/SSL/src/InformationRegisters/НастройкиОчисткиФайлов/ManagerModule.bsl @@ -1,5 +1,5 @@ /////////////////////////////////////////////////////////////////////////////////////////////////////// -// Copyright (c) 2024, ООО 1С-Софт +// Copyright (c) 2025, ООО 1С-Софт // Все права защищены. Эта программа и сопроводительные материалы предоставляются // в соответствии с условиями лицензии Attribution 4.0 International (CC BY 4.0) // Текст лицензии доступен по ссылке: diff --git a/SSL/src/InformationRegisters/НастройкиПравОбъектов/Forms/ФормаЗаписи/Module.bsl b/SSL/src/InformationRegisters/НастройкиПравОбъектов/Forms/ФормаЗаписи/Module.bsl index 00fa69d3f..55c2c57ed 100644 --- a/SSL/src/InformationRegisters/НастройкиПравОбъектов/Forms/ФормаЗаписи/Module.bsl +++ b/SSL/src/InformationRegisters/НастройкиПравОбъектов/Forms/ФормаЗаписи/Module.bsl @@ -1,5 +1,5 @@ /////////////////////////////////////////////////////////////////////////////////////////////////////// -// Copyright (c) 2024, ООО 1С-Софт +// Copyright (c) 2025, ООО 1С-Софт // Все права защищены. Эта программа и сопроводительные материалы предоставляются // в соответствии с условиями лицензии Attribution 4.0 International (CC BY 4.0) // Текст лицензии доступен по ссылке: diff --git a/SSL/src/InformationRegisters/НастройкиПравОбъектов/Forms/ФормаСписка/Module.bsl b/SSL/src/InformationRegisters/НастройкиПравОбъектов/Forms/ФормаСписка/Module.bsl index af67f9f56..c88196ecc 100644 --- a/SSL/src/InformationRegisters/НастройкиПравОбъектов/Forms/ФормаСписка/Module.bsl +++ b/SSL/src/InformationRegisters/НастройкиПравОбъектов/Forms/ФормаСписка/Module.bsl @@ -1,5 +1,5 @@ /////////////////////////////////////////////////////////////////////////////////////////////////////// -// Copyright (c) 2024, ООО 1С-Софт +// Copyright (c) 2025, ООО 1С-Софт // Все права защищены. Эта программа и сопроводительные материалы предоставляются // в соответствии с условиями лицензии Attribution 4.0 International (CC BY 4.0) // Текст лицензии доступен по ссылке: diff --git a/SSL/src/InformationRegisters/НастройкиПравОбъектов/ManagerModule.bsl b/SSL/src/InformationRegisters/НастройкиПравОбъектов/ManagerModule.bsl index e58318875..9cce870bb 100644 --- a/SSL/src/InformationRegisters/НастройкиПравОбъектов/ManagerModule.bsl +++ b/SSL/src/InformationRegisters/НастройкиПравОбъектов/ManagerModule.bsl @@ -1,5 +1,5 @@ /////////////////////////////////////////////////////////////////////////////////////////////////////// -// Copyright (c) 2024, ООО 1С-Софт +// Copyright (c) 2025, ООО 1С-Софт // Все права защищены. Эта программа и сопроводительные материалы предоставляются // в соответствии с условиями лицензии Attribution 4.0 International (CC BY 4.0) // Текст лицензии доступен по ссылке: @@ -18,6 +18,13 @@ // Процедура ОбновитьВозможныеПраваДляНастройкиПравОбъектов(ЕстьИзменения = Неопределено) Экспорт + ИмяПараметра = "СтандартныеПодсистемы.УправлениеДоступом.ВозможныеПраваДляНастройкиПравОбъектов"; + + Если УправлениеДоступомСлужебный.ОтключеноОграничениеНаУровнеЗаписей() Тогда + СтандартныеПодсистемыСервер.УдалитьПараметрРаботыПрограммы(ИмяПараметра, ЕстьИзменения); + Возврат; + КонецЕсли; + СвойстваСеанса = УправлениеДоступомСлужебныйПовтИсп.ОписаниеСвойствВидовДоступаСеанса().СвойстваСеанса; НовоеЗначение = ""; ПроверенныеВозможныеПраваСеанса(СвойстваСеанса, НовоеЗначение); @@ -26,12 +33,10 @@ Попытка ЕстьТекущиеИзменения = Ложь; - СтандартныеПодсистемыСервер.ОбновитьПараметрРаботыПрограммы( - "СтандартныеПодсистемы.УправлениеДоступом.ВозможныеПраваДляНастройкиПравОбъектов", + СтандартныеПодсистемыСервер.ОбновитьПараметрРаботыПрограммы(ИмяПараметра, НовоеЗначение, ЕстьТекущиеИзменения); - СтандартныеПодсистемыСервер.ДобавитьИзмененияПараметраРаботыПрограммы( - "СтандартныеПодсистемы.УправлениеДоступом.ВозможныеПраваДляНастройкиПравОбъектов", + СтандартныеПодсистемыСервер.ДобавитьИзмененияПараметраРаботыПрограммы(ИмяПараметра, ?(ЕстьТекущиеИзменения, Новый ФиксированнаяСтруктура("ЕстьИзменения", Истина), Новый ФиксированнаяСтруктура()) ); @@ -53,10 +58,16 @@ // Процедура ОбновитьВспомогательныеДанныеРегистраПоИзменениямКонфигурации() Экспорт + ИмяПараметра = "СтандартныеПодсистемы.УправлениеДоступом.ОбновленныеВозможныеПраваДляНастройкиПравОбъектов"; + + Если УправлениеДоступомСлужебный.ОтключеноОграничениеНаУровнеЗаписей() Тогда + СтандартныеПодсистемыСервер.УдалитьПараметрРаботыРасширения(ИмяПараметра, Неопределено); + Возврат; + КонецЕсли; + Кэш = УправлениеДоступомСлужебныйПовтИсп.ОписаниеВозможныхПравСеансаДляНастройкиПравОбъектов(); НовоеЗначение = Кэш.ХешСумма; - ИмяПараметра = "СтандартныеПодсистемы.УправлениеДоступом.ОбновленныеВозможныеПраваДляНастройкиПравОбъектов"; СтароеЗначение = СтандартныеПодсистемыСервер.ПараметрРаботыРасширения(ИмяПараметра, Истина); Если СтароеЗначение = НовоеЗначение Тогда @@ -119,8 +130,14 @@ // # <ИмяПрава2> = Неопределено // = Булево - аналогично. // +// Неопределено - если ограничение доступа на уровне записей отключено в переопределяемом модуле. +// Функция Прочитать(Знач СсылкаНаОбъект) Экспорт + Если УправлениеДоступомСлужебный.ОтключеноОграничениеНаУровнеЗаписей() Тогда + Возврат Неопределено; + КонецЕсли; + ВозможныеПрава = УправлениеДоступомСлужебный.ВозможныеПраваДляНастройкиПравОбъектов(); ОписаниеПрав = ВозможныеПрава.ПоТипам.Получить(ТипЗнч(СсылкаНаОбъект)); @@ -278,6 +295,10 @@ // Процедура Записать(Знач СсылкаНаОбъект, Знач Настройки, Знач Наследовать) Экспорт + Если УправлениеДоступомСлужебный.ОтключеноОграничениеНаУровнеЗаписей() Тогда + Возврат; + КонецЕсли; + ВозможныеПрава = УправлениеДоступомСлужебный.ВозможныеПраваДляНастройкиПравОбъектов(); ОписаниеПрав = ВозможныеПрава.ПоТипамСсылок.Получить(ТипЗнч(СсылкаНаОбъект)); // Массив из см. СвойстваВозможногоПрава @@ -441,6 +462,12 @@ // Процедура ОбновитьВспомогательныеДанныеРегистра(ЕстьИзменения = Неопределено) Экспорт + Если УправлениеДоступомСлужебный.ОтключеноОграничениеНаУровнеЗаписей() Тогда + УправлениеДоступомСлужебный.ОчиститьРегистрСведений( + Метаданные.РегистрыСведений.НастройкиПравОбъектов.ПолноеИмя(), ЕстьИзменения); + Возврат; + КонецЕсли; + УстановитьПривилегированныйРежим(Истина); ВозможныеПрава = УправлениеДоступомСлужебный.ВозможныеПраваДляНастройкиПравОбъектов(); @@ -675,7 +702,8 @@ Кэш = УправлениеДоступомСлужебныйПовтИсп.ОписаниеВозможныхПравСеансаДляНастройкиПравОбъектов(); ТекущаяДатаСеанса = ТекущаяДатаСеанса(); - Если Кэш.Проверка.Дата + 3 > ТекущаяДатаСеанса Тогда + Если Кэш.Проверка.Дата + 3 > ТекущаяДатаСеанса + Или УправлениеДоступомСлужебный.ОтключеноОграничениеНаУровнеЗаписей() Тогда Возврат Кэш.ВозможныеПраваСеанса; КонецЕсли; diff --git a/SSL/src/InformationRegisters/НастройкиРаботыСФайловымАрхивом/Forms/ФормаСписка/Attributes/Список/ExtInfo/ListSettings.dcss b/SSL/src/InformationRegisters/НастройкиРаботыСФайловымАрхивом/Forms/ФормаСписка/Attributes/Список/ExtInfo/ListSettings.dcss new file mode 100644 index 000000000..57a872c96 --- /dev/null +++ b/SSL/src/InformationRegisters/НастройкиРаботыСФайловымАрхивом/Forms/ФормаСписка/Attributes/Список/ExtInfo/ListSettings.dcss @@ -0,0 +1,17 @@ + + + + Normal + dfcece9d-5077-440b-b6b3-45a5cb4538eb + + + Normal + 88619765-ccb3-46c6-ac52-38e9c992ebd4 + + + Normal + b75fecce-942b-4aed-abc9-e6a02e460fb3 + + Normal + 911b6018-f537-43e8-a417-da56b22f9aec + diff --git a/SSL/src/InformationRegisters/НастройкиРаботыСФайловымАрхивом/Forms/ФормаСписка/Form.form b/SSL/src/InformationRegisters/НастройкиРаботыСФайловымАрхивом/Forms/ФормаСписка/Form.form new file mode 100644 index 000000000..4c5689a09 --- /dev/null +++ b/SSL/src/InformationRegisters/НастройкиРаботыСФайловымАрхивом/Forms/ФормаСписка/Form.form @@ -0,0 +1,894 @@ + + + + СписокКомпоновщикНастроекПользовательскиеНастройки + 1 + true + true + + true + + + <key>ru</key> + <value>Группа пользовательских настроек</value> + + false + + СписокКомпоновщикНастроекПользовательскиеНастройкиРасширеннаяПодсказка + 2 + Label + true + true + + Left + + + UsualGroup + + Vertical + Auto + WeakSeparation + true + true + Auto + Auto + + + + ДеревоОбъектовМетаданных + 3 + + <key>ru</key> + <value>Дерево объектов метаданных</value> + + true + true + + true + + + ДеревоОбъектовМетаданных + + None + + ДеревоОбъектовМетаданныхСинонимНаименованияОбъекта + 22 + VeryHigh + + <key>ru</key> + <value>Объект с файлами</value> + + true + true + + true + + + ДеревоОбъектовМетаданных.СинонимНаименованияОбъекта + + + ДеревоОбъектовМетаданныхСинонимНаименованияОбъектаРасширеннаяПодсказка + 24 + Label + true + true + + Left + + + + ДеревоОбъектовМетаданныхСинонимНаименованияОбъектаКонтекстноеМеню + 23 + true + + InputField + true + Auto + true + Left + true + + true + true + true + true + true + true + true + Normal + + + + ДеревоОбъектовМетаданныхТипВладельцаФайла + 31 + + <key>ru</key> + <value>Справочник файлов</value> + + true + true + + + ДеревоОбъектовМетаданных.ТипВладельцаФайла + + + ДеревоОбъектовМетаданныхТипВладельцаФайлаРасширеннаяПодсказка + 33 + Label + true + true + + Left + + + + ДеревоОбъектовМетаданныхТипВладельцаФайлаКонтекстноеМеню + 32 + true + + InputField + Auto + true + Left + true + + true + true + true + true + true + true + true + Normal + + + + ДеревоОбъектовМетаданныхДействие + 19 + + <key>ru</key> + <value>Действие</value> + + true + true + + true + + + ДеревоОбъектовМетаданных.Действие + + + OnChange + ДеревоОбъектовМетаданныхДействиеПриИзменении + + + ДеревоОбъектовМетаданныхДействиеРасширеннаяПодсказка + 21 + Label + true + true + + Left + + + + ДеревоОбъектовМетаданныхДействиеКонтекстноеМеню + 20 + true + + InputField + Auto + true + Left + true + + + Clearing + ДеревоОбъектовМетаданныхДействиеОчистка + + true + true + true + true + true + true + true + Normal + + + + ДеревоОбъектовМетаданныхПеренестиВФайловыйАрхивЧерезДней + 28 + + <key>ru</key> + <value>Перенести в файловый архив через (дней)</value> + + true + true + + true + + + ДеревоОбъектовМетаданных.ПеренестиВФайловыйАрхивЧерезДней + + + OnChange + ДеревоОбъектовМетаданныхПеренестиВФайловыйАрхивЧерезДнейПриИзменении + + + ДеревоОбъектовМетаданныхПеренестиВФайловыйАрхивЧерезДнейРасширеннаяПодсказка + 30 + Label + true + true + + Left + + + + ДеревоОбъектовМетаданныхПеренестиВФайловыйАрхивЧерезДнейКонтекстноеМеню + 29 + true + + InputField + Auto + true + Left + true + + true + true + true + true + true + true + true + Normal + + + + ДеревоОбъектовМетаданныхКоманднаяПанель + 5 + Left + + + BeforeAddRow + ДеревоОбъектовМетаданныхПередНачаломДобавления + + + BeforeDeleteRow + ДеревоОбъектовМетаданныхПередУдалением + + + OnActivateField + ДеревоОбъектовМетаданныхПриАктивизацииПоля + + + ChoiceProcessing + ДеревоОбъектовМетаданныхОбработкаВыбора + + + BeforeRowChange + ДеревоОбъектовМетаданныхПередНачаломИзменения + + + ДеревоОбъектовМетаданныхСтрокаПоиска + 7 + + ДеревоОбъектовМетаданныхСтрокаПоискаРасширеннаяПодсказка + 9 + Label + true + true + + Left + + + + ДеревоОбъектовМетаданныхСтрокаПоискаКонтекстноеМеню + 8 + true + + ДеревоОбъектовМетаданных + + true + + + + ДеревоОбъектовМетаданныхСостояниеПросмотра + 10 + + ДеревоОбъектовМетаданныхСостояниеПросмотраРасширеннаяПодсказка + 12 + Label + true + true + + Left + + + + ДеревоОбъектовМетаданныхСостояниеПросмотраКонтекстноеМеню + 11 + true + + ViewStatusAddition + ДеревоОбъектовМетаданных + + true + + + + ДеревоОбъектовМетаданныхУправлениеПоиском + 13 + + ДеревоОбъектовМетаданныхУправлениеПоискомРасширеннаяПодсказка + 15 + Label + true + true + + Left + + + + ДеревоОбъектовМетаданныхУправлениеПоискомКонтекстноеМеню + 14 + true + + SearchControlAddition + ДеревоОбъектовМетаданных + + true + + + + ДеревоОбъектовМетаданныхРасширеннаяПодсказка + 6 + Label + true + true + + Left + + + + ДеревоОбъектовМетаданныхКонтекстноеМеню + 4 + true + + Tree + true + true + true + true + true + MultiRow +
                      true
                      + 1 + 1 + AutoUse + AutoUse + true + true + false + true + Auto + Auto + ExpandAllLevels + true + true + true + true + AsFileRef + true +
                      + + ГруппаСостояниеВыполненияПереносаФайлов + 55 + + КартинкаИнформация + 57 + + <key>ru</key> + <value>Картинка информация</value> + + true + true + + true + + + КартинкаИнформацияРасширеннаяПодсказка + 59 + Label + true + true + + Left + + + + КартинкаИнформацияКонтекстноеМеню + 58 + true + + true + true + + + StdPicture.DialogInformation + + AsFileRef + + + + ГруппаТекущееСостояниеПереносаФайлов + 60 + + ДекорацияНадпись + 62 + + <key>ru</key> + <value>Состояние выполнения переноса файлов:</value> + + true + true + + true + + + ДекорацияНадписьРасширеннаяПодсказка + 64 + Label + true + true + + Left + + + + ДекорацияНадписьКонтекстноеМеню + 63 + true + + Label + false + true + + Left + + 3 + + + + + НадписьТекущееСостояние + 65 + + <key>ru</key> + <value>Не выполнялось</value> + + true + true + + true + + + НадписьТекущееСостояниеРасширеннаяПодсказка + 67 + Label + true + true + + Left + + + + НадписьТекущееСостояниеКонтекстноеМеню + 66 + true + + Label + true + + Style.AccentColor + + + Left + + + true + true + + true + + + <key>ru</key> + <value>Текущее состояние переноса файлов</value> + + + ГруппаТекущееСостояниеПереносаФайловРасширеннаяПодсказка + 61 + Label + true + true + + Left + + + UsualGroup + + AlwaysHorizontal + Auto + WeakSeparation + true + true + Auto + Auto + + + true + true + + true + + + <key>ru</key> + <value>Состояние выполнения переноса файлов</value> + + true + false + + ГруппаСостояниеВыполненияПереносаФайловРасширеннаяПодсказка + 56 + Label + true + true + + Left + + + UsualGroup + + AlwaysHorizontal + Auto + WeakSeparation + true + true + + Style.ИтогиФонГруппы + + Auto + Auto + + + + ФормаКоманднаяПанель + -1 + + ДействияСНастройками + 47 + + ФормаДобавить + 49 + true + true + + true + + + ФормаДобавитьРасширеннаяПодсказка + 50 + Label + true + true + + Left + + + Form.Item.ДеревоОбъектовМетаданных.StandardCommand.Add + Normal + Auto + true + true + UserCmds + Auto + + + ФормаУдалить + 51 + true + true + + true + + + ФормаУдалитьРасширеннаяПодсказка + 52 + Label + true + true + + Left + + + Form.Item.ДеревоОбъектовМетаданных.StandardCommand.Delete + Normal + Auto + true + true + UserCmds + Auto + InCommandBarAndInAdditionalSubmenu + + true + true + + true + + + <key>ru</key> + <value>Действия с настройками</value> + + + ДействияСНастройкамиРасширеннаяПодсказка + 48 + Label + true + true + + Left + + + Popup + + Auto + Normal + + + + ПеренестиФайлы + 53 + + <key>ru</key> + <value>Перенести файлы</value> + + true + true + + true + + + ПеренестиФайлыРасширеннаяПодсказка + 54 + Label + true + true + + Left + + + Form.Command.ПеренестиФайлы + Normal + Auto + true + true + UserCmds + Auto + + Left + true + + + OnCreateAtServer + ПриСозданииНаСервере + + DontBlock + true + true + true + Vertical + true + true + true + auto + true + + Список + 1 + + DynamicList + + + true + + + true + +
                      true
                      + + InformationRegister.НастройкиРаботыСФайловымАрхивом + true + true + true + true + +
                      + + ДеревоОбъектовМетаданных + + <key>ru</key> + <value>Дерево объектов метаданных</value> + + 2 + + ValueTree + + + true + + + true + + + ВладелецФайла + 1 + + AnyRef + + + true + + + true + + + + Действие + + <key>ru</key> + <value>Действие</value> + + 2 + + EnumRef.ДействияВНастройкахРаботыСФайловымАрхивом + + + true + + + true + + + + СинонимНаименованияОбъекта + + <key>ru</key> + <value>Владелец файла</value> + + 3 + + String + + + + true + + + true + + + + ЭтоФайл + 4 + + Boolean + + + true + + + true + + + + ПеренестиВФайловыйАрхивЧерезДней + + <key>ru</key> + <value>Перенести в файловый архив через (дней)</value> + + 5 + + Number + + 5 + true + + + + true + + + true + + + + ТипВладельцаФайла + + <key>ru</key> + <value>Справочник файлов</value> + + 6 + + CatalogRef.ИдентификаторыОбъектовРасширений + CatalogRef.ИдентификаторыОбъектовМетаданных + + + true + + + true + + + + ВозможностьДетализации + 7 + + Boolean + + + true + + + true + + + + + ИдентификаторФоновогоЗадания + 3 + + UUID + + + true + + + true + + + + ПеренестиФайлы + + <key>ru</key> + <value>Перенести файлы</value> + + 1 + + ru + Перенести файлы + + + true + + + + ПеренестиФайлы + + + Auto + Auto + + + РазрешеноОткрытиеФормы + + Boolean + + + + + + + +
                      diff --git a/SSL/src/InformationRegisters/НастройкиРаботыСФайловымАрхивом/Forms/ФормаСписка/Module.bsl b/SSL/src/InformationRegisters/НастройкиРаботыСФайловымАрхивом/Forms/ФормаСписка/Module.bsl new file mode 100644 index 000000000..9a1da8b6e --- /dev/null +++ b/SSL/src/InformationRegisters/НастройкиРаботыСФайловымАрхивом/Forms/ФормаСписка/Module.bsl @@ -0,0 +1,670 @@ +/////////////////////////////////////////////////////////////////////////////////////////////////////// +// Copyright (c) 2025, ООО 1С-Софт +// Все права защищены. Эта программа и сопроводительные материалы предоставляются +// в соответствии с условиями лицензии Attribution 4.0 International (CC BY 4.0) +// Текст лицензии доступен по ссылке: +// https://creativecommons.org/licenses/by/4.0/legalcode +/////////////////////////////////////////////////////////////////////////////////////////////////////// + +#Область ОбработчикиСобытийФормы +&НаСервере +Процедура ПриСозданииНаСервере(Отказ, СтандартнаяОбработка) + + Если Не Параметры.РазрешеноОткрытиеФормы Тогда + ТекстОшибки = НСтр("ru = 'Произвольное открытие формы не предусмотрено.'"); + ВызватьИсключение ТекстОшибки; + КонецЕсли; + + ЗаполнитьТипыОбъектовВДеревеЗначений(); + + ДоступенРучнойЗапускПереносаФайлов = Не ОбщегоНазначения.РазделениеВключено() И ОбщегоНазначения.ПодсистемаСуществует("СтандартныеПодсистемы.РегламентныеЗадания"); + + Элементы.ГруппаСостояниеВыполненияПереносаФайлов.Видимость = ДоступенРучнойЗапускПереносаФайлов; + Элементы.ПеренестиФайлы.Видимость = ДоступенРучнойЗапускПереносаФайлов; + + Если ДоступенРучнойЗапускПереносаФайлов Тогда + + Элементы.НадписьТекущееСостояние.Заголовок = ПолучитьПредставлениеТекущегоСостоянияВыполненияОперацийПереносаФайлов(); + + КонецЕсли; + +КонецПроцедуры +#КонецОбласти + +#Область ОбработчикиСобытийЭлементовТаблицыФормыДеревоОбъектовМетаданных + +&НаКлиенте +Процедура ДеревоОбъектовМетаданныхПередНачаломДобавления(Элемент, Отказ, Копирование, Родитель, Группа, Параметр) + + Отказ = Истина; + Если НЕ Копирование Тогда + ПодключитьОбработчикОжидания("ДобавитьНастройкуРаботыСФайловымАрхивом", 0.1, Истина); + КонецЕсли; + +КонецПроцедуры + +&НаКлиенте +Процедура ДеревоОбъектовМетаданныхПриАктивизацииПоля(Элемент) + + Элемент.ТекущийЭлемент.ТолькоПросмотр = Не ТаблицаФормыПолучитьДоступностьЭлементаДляРедактирования(Элемент); + +КонецПроцедуры + +&НаКлиенте +Процедура ДеревоОбъектовМетаданныхДействиеПриИзменении(Элемент) + + ЗаписатьТекущиеНастройки(); + +КонецПроцедуры + +&НаКлиенте +Процедура ДеревоОбъектовМетаданныхПеренестиВФайловыйАрхивЧерезДнейПриИзменении(Элемент) + + Если Не НастройкаЗаполненаКорректно() Тогда + Возврат; + КонецЕсли; + + ЗаписатьТекущиеНастройки(); + +КонецПроцедуры + +&НаКлиенте +Процедура ДеревоОбъектовМетаданныхДействиеОчистка(Элемент, СтандартнаяОбработка) + + СтандартнаяОбработка = Ложь; + УстановитьДействиеДляВыбранныхОбъектов(ПредопределенноеЗначение("Перечисление.ДействияВНастройкахРаботыСФайловымАрхивом.НеПереноситьВАрхив")); + +КонецПроцедуры + +&НаКлиенте +Процедура ДеревоОбъектовМетаданныхПередНачаломИзменения(Элемент, Отказ) + + Отказ = Не ТаблицаФормыПолучитьДоступностьЭлементаДляРедактирования(Элемент); // АПК:144 Функция возвращает значение типа Булево. + +КонецПроцедуры + +&НаКлиенте +Процедура ДеревоОбъектовМетаданныхОбработкаВыбора(Элемент, ВыбранноеЗначение, СтандартнаяОбработка) + + СтандартнаяОбработка = Ложь; + ДобавитьНастройкиПоВладельцу(ВыбранноеЗначение); + +КонецПроцедуры + +&НаКлиенте +Процедура ДеревоОбъектовМетаданныхПередУдалением(Элемент, Отказ) + + Отказ = Истина; + + НастройкаДляУдаления = ДеревоОбъектовМетаданных.НайтиПоИдентификатору(Элементы.ДеревоОбъектовМетаданных.ТекущаяСтрока); + Если НастройкаДляУдаления <> Неопределено Тогда + + НастройкаДляУдаленияРодителя = НастройкаДляУдаления.ПолучитьРодителя(); + + Если НастройкаДляУдаленияРодителя <> Неопределено И НастройкаДляУдаленияРодителя.ВозможностьДетализации Тогда + + ТекстВопроса = НСтр("ru = 'Удаление настройки приведет к прекращению использования + |заданных в ней правил. Продолжить?'"); + ОписаниеОповещения = Новый ОписаниеОповещения("УдалитьНастройкуЗавершение", ЭтотОбъект); + ПоказатьВопрос(ОписаниеОповещения, ТекстВопроса, РежимДиалогаВопрос.ДаНет, , КодВозвратаДиалога.Нет, НСтр("ru = 'Предупреждение'")); + Возврат; + + КонецЕсли; + + КонецЕсли; + + ТекстСообщения = НСтр("ru = 'Расширенная настройка работы с файловым архивом не предусмотрена для этого объекта.'"); + ПоказатьПредупреждение(, ТекстСообщения); + +КонецПроцедуры + +#КонецОбласти + +#Область ОбработчикиКомандФормы + +&НаКлиенте +Процедура ПеренестиФайлы(Команда) + ПрерватьФоновоеЗадание(); + ЗапуститьРегламентноеЗадание(); + + ПодключитьОбработчикОжидания("ПроверитьВыполнениеФоновогоЗадания", 2, Истина); + +КонецПроцедуры + +#КонецОбласти + +#Область СлужебныеПроцедурыИФункции +&НаСервере +Процедура ЗаполнитьТипыОбъектовВДеревеЗначений() + + НастройкиРаботыСФайловымАрхивом = РегистрыСведений.НастройкиРаботыСФайловымАрхивом.ТекущиеНастройкиРаботыСФайловымАрхивом(); + + ДеревоОМ = РеквизитФормыВЗначение("ДеревоОбъектовМетаданных"); + ДеревоОМ.Строки.Очистить(); + + МетаданныеСправочники = Метаданные.Справочники; + + ТаблицаТипов = Новый ТаблицаЗначений; + ТаблицаТипов.Колонки.Добавить("ВладелецФайла"); + ТаблицаТипов.Колонки.Добавить("ТипВладельцаФайла"); + ТаблицаТипов.Колонки.Добавить("ИмяВладельцаФайла"); + ТаблицаТипов.Колонки.Добавить("ЭтоФайл", Новый ОписаниеТипов("Булево")); + ТаблицаТипов.Колонки.Добавить("ВозможностьДетализации" , Новый ОписаниеТипов("Булево")); + + Для Каждого Справочник Из МетаданныеСправочники Цикл + + Если Справочник.Реквизиты.Найти("ВладелецФайла") = Неопределено Тогда + Продолжить; + КонецЕсли; + + ТипыВладельцевФайлов = Справочник.Реквизиты.ВладелецФайла.Тип.Типы(); + Для Каждого ТипВладельца Из ТипыВладельцевФайлов Цикл + + МетаданныеВладельца = Метаданные.НайтиПоТипу(ТипВладельца); + + НоваяСтрока = ТаблицаТипов.Добавить(); + НоваяСтрока.ВладелецФайла = ТипВладельца; + НоваяСтрока.ТипВладельцаФайла = Справочник; + НоваяСтрока.ИмяВладельцаФайла = МетаданныеВладельца.ПолноеИмя(); + НоваяСтрока.ВозможностьДетализации = Истина; + + Если Не СтрЗаканчиваетсяНа(Справочник.Имя, РаботаСФайламиСлужебный.СуффиксСправочникаПрисоединенныеФайлы()) Тогда + НоваяСтрока.ЭтоФайл = Истина; + КонецЕсли; + + КонецЦикла; + + КонецЦикла; + + ВсеСправочники = Справочники.ТипВсеСсылки(); + + ВсеДокументы = Документы.ТипВсеСсылки(); + УзелСправочники = Неопределено; + УзелДокументы = Неопределено; + УзелБизнесПроцессы = Неопределено; + + УзелОбщиеНастройки = ДеревоОМ.Строки.Добавить(); + УзелОбщиеНастройки.СинонимНаименованияОбъекта = НСтр("ru = 'Общие настройки'"); + + ОбщиеНастройки = НастройкиРаботыСФайловымАрхивом.НайтиСтроки(Новый Структура("ВладелецФайла, ТипВладельцаФайла", Неопределено, Неопределено)); + Если ОбщиеНастройки.Количество() > 0 Тогда + + УзелОбщиеНастройки.ПеренестиВФайловыйАрхивЧерезДней = ОбщиеНастройки[0].ПеренестиВФайловыйАрхивЧерезДней; + + КонецЕсли; + + ВладельцыФайлов = Новый Массив; + Для Каждого Тип Из ТаблицаТипов Цикл + + ТипВладельцаФайла = Тип.ТипВладельцаФайла; // ОбъектМетаданныхСправочник + Если СтрНачинаетсяС(ТипВладельцаФайла.Имя, "Удалить") + Или ВладельцыФайлов.Найти(Тип.ИмяВладельцаФайла) <> Неопределено Тогда + Продолжить; + КонецЕсли; + + ВладельцыФайлов.Добавить(Тип.ИмяВладельцаФайла); + + Если ВсеСправочники.СодержитТип(Тип.ВладелецФайла) Тогда + Если УзелСправочники = Неопределено Тогда + УзелСправочники = ДеревоОМ.Строки.Добавить(); + УзелСправочники.СинонимНаименованияОбъекта = НСтр("ru = 'Справочники'"); + КонецЕсли; + НоваяСтрокаТаблицы = УзелСправочники.Строки.Добавить(); + ИначеЕсли ВсеДокументы.СодержитТип(Тип.ВладелецФайла) Тогда + Если УзелДокументы = НеОпределено Тогда + УзелДокументы = ДеревоОМ.Строки.Добавить(); + УзелДокументы.СинонимНаименованияОбъекта = НСтр("ru = 'Документы'"); + КонецЕсли; + НоваяСтрокаТаблицы = УзелДокументы.Строки.Добавить(); + ИначеЕсли БизнесПроцессы.ТипВсеСсылки().СодержитТип(Тип.ВладелецФайла) Тогда + Если УзелБизнесПроцессы = Неопределено Тогда + УзелБизнесПроцессы = ДеревоОМ.Строки.Добавить(); + УзелБизнесПроцессы.СинонимНаименованияОбъекта = НСтр("ru = 'Бизнес-процессы'"); + КонецЕсли; + НоваяСтрокаТаблицы = УзелБизнесПроцессы.Строки.Добавить(); + КонецЕсли; + МетаданныеОбъекта = Метаданные.НайтиПоТипу(Тип.ВладелецФайла); + НоваяСтрокаТаблицы.ВладелецФайла = ОбщегоНазначения.ИдентификаторОбъектаМетаданных(Тип.ВладелецФайла); + НоваяСтрокаТаблицы.ТипВладельцаФайла = ОбщегоНазначения.ИдентификаторОбъектаМетаданных(Тип.ТипВладельцаФайла); + НоваяСтрокаТаблицы.СинонимНаименованияОбъекта = МетаданныеОбъекта.Синоним; + НоваяСтрокаТаблицы.ЭтоФайл = Тип.ЭтоФайл; + НоваяСтрокаТаблицы.ВозможностьДетализации = Тип.ВозможностьДетализации; + + ИдентификаторОбъекта = ОбщегоНазначения.ИдентификаторОбъектаМетаданных(Тип.ВладелецФайла); + ДетализированныеНастройки = НастройкиРаботыСФайловымАрхивом.НайтиСтроки(Новый Структура( + "ИдентификаторВладельца, ЭтоФайл", ИдентификаторОбъекта, Тип.ЭтоФайл)); + + Если ДетализированныеНастройки.Количество() > 0 Тогда + Для Каждого Настройка Из ДетализированныеНастройки Цикл + ДетализированнаяНастройка = НоваяСтрокаТаблицы.Строки.Добавить(); + ДетализированнаяНастройка.ВладелецФайла = Настройка.ВладелецФайла; + ДетализированнаяНастройка.ТипВладельцаФайла = Настройка.ТипВладельцаФайла; + ДетализированнаяНастройка.СинонимНаименованияОбъекта = Настройка.ВладелецФайла; + ДетализированнаяНастройка.Действие = Настройка.Действие; + ДетализированнаяНастройка.ПеренестиВФайловыйАрхивЧерезДней = Настройка.ПеренестиВФайловыйАрхивЧерезДней; + ДетализированнаяНастройка.ЭтоФайл = Настройка.ЭтоФайл; + КонецЦикла; + КонецЕсли; + + НайденныеНастройки = НастройкиРаботыСФайловымАрхивом.НайтиСтроки(Новый Структура("ВладелецФайла, ЭтоФайл", НоваяСтрокаТаблицы.ВладелецФайла, Тип.ЭтоФайл)); + + Если НайденныеНастройки.Количество() > 0 Тогда + НоваяСтрокаТаблицы.Действие = НайденныеНастройки[0].Действие; + НоваяСтрокаТаблицы.ПеренестиВФайловыйАрхивЧерезДней = НайденныеНастройки[0].ПеренестиВФайловыйАрхивЧерезДней; + Иначе + НоваяСтрокаТаблицы.Действие = Перечисления.ДействияВНастройкахРаботыСФайловымАрхивом.НеПереноситьВАрхив; + НоваяСтрокаТаблицы.ПеренестиВФайловыйАрхивЧерезДней = 0; + КонецЕсли; + КонецЦикла; + + Для Каждого УзелВерхнегоУровня Из ДеревоОМ.Строки Цикл + УзелВерхнегоУровня.Строки.Сортировать("СинонимНаименованияОбъекта"); + КонецЦикла; + ЗначениеВРеквизитФормы(ДеревоОМ, "ДеревоОбъектовМетаданных"); + +КонецПроцедуры + +&НаКлиенте +Функция ТаблицаФормыПолучитьДоступностьЭлементаДляРедактирования(Элемент) + + Результат = Истина; + + Если Элемент.ТекущийЭлемент.Имя = "ДеревоОбъектовМетаданныхСинонимНаименованияОбъекта" Тогда + Результат = Ложь; + ИначеЕсли Элемент.ТекущиеДанные.ТипВладельцаФайла = Неопределено Тогда + Результат = Элемент.ТекущийЭлемент.Имя = "ДеревоОбъектовМетаданныхПеренестиВФайловыйАрхивЧерезДней"; + КонецЕсли; + + Возврат Результат; + +КонецФункции + +&НаКлиенте +Процедура ДобавитьВладельцаФайла(ВыбранныеВладельцы, СтрокаДереваОбъектов) + Если ТипЗнч(СтрокаДереваОбъектов.ВладелецФайла) = Тип("СправочникСсылка.ИдентификаторыОбъектовМетаданных") + Или ТипЗнч(СтрокаДереваОбъектов.ВладелецФайла) = Тип("СправочникСсылка.ИдентификаторыОбъектовРасширений") + Или СтрокаДереваОбъектов.ВладелецФайла = Неопределено Тогда + ПодчиненныеСтроки = СтрокаДереваОбъектов.ПолучитьЭлементы(); + Для Каждого СтрокаДерева Из ПодчиненныеСтроки Цикл + ДобавитьВладельцаФайла(ВыбранныеВладельцы, СтрокаДерева); + КонецЦикла; + Иначе + Если ВыбранныеВладельцы.Найти(СтрокаДереваОбъектов.ВладелецФайла) = Неопределено Тогда + ВыбранныеВладельцы.Добавить(СтрокаДереваОбъектов.ВладелецФайла); + КонецЕсли; + КонецЕсли; +КонецПроцедуры + +&НаКлиенте +Процедура УдалитьНастройкуЗавершение(Результат, ДополнительныеПараметры) Экспорт + + Если Результат = КодВозвратаДиалога.Да Тогда + ОчиститьДанныеНастройки(); + КонецЕсли; + +КонецПроцедуры + +&НаКлиенте +Процедура ДобавитьНастройкуРаботыСФайловымАрхивом() + + СтрокаДерева = Элементы.ДеревоОбъектовМетаданных.ТекущиеДанные; + + Если Не СтрокаДерева.ВозможностьДетализации Тогда + ТекстСообщения = НСтр("ru = 'Расширенная настройка работы с файловым архивом не предусмотрена для этого объекта.'"); + ПоказатьПредупреждение(, ТекстСообщения); + Возврат; + КонецЕсли; + + ПараметрыФормыВыбора = Новый Структура; + + ПараметрыФормыВыбора.Вставить("ВыборГруппИЭлементов" , ИспользованиеГруппИЭлементов.ГруппыИЭлементы); + ПараметрыФормыВыбора.Вставить("ЗакрыватьПриВыборе" , Истина); + ПараметрыФормыВыбора.Вставить("ЗакрыватьПриЗакрытииВладельца" , Истина); + ПараметрыФормыВыбора.Вставить("МножественныйВыбор" , Истина); + ПараметрыФормыВыбора.Вставить("РежимВыбора" , Истина); + + ПараметрыФормыВыбора.Вставить("РежимОткрытияОкна" , РежимОткрытияОкнаФормы.БлокироватьОкноВладельца); + ПараметрыФормыВыбора.Вставить("ВыборГрупп" , Истина); + ПараметрыФормыВыбора.Вставить("ВыборГруппПользователей" , Истина); + + ПараметрыФормыВыбора.Вставить("РасширенныйПодбор" , Истина); + ПараметрыФормыВыбора.Вставить("ЗаголовокФормыПодбора" , НСтр("ru = 'Подбор элементов настроек'")); + + // Исключим из списка выбора уже существующие настройки. + СуществующиеНастройки = СтрокаДерева.ПолучитьЭлементы(); + ФиксированныеНастройки = Новый НастройкиКомпоновкиДанных; + ЭлементНастройки = ФиксированныеНастройки.Отбор.Элементы.Добавить(Тип("ЭлементОтбораКомпоновкиДанных")); + ЭлементНастройки.ЛевоеЗначение = Новый ПолеКомпоновкиДанных("Ссылка"); + ЭлементНастройки.ВидСравнения = ВидСравненияКомпоновкиДанных.НеВСписке; + СписокСуществующих = Новый Массив; + Для Каждого Настройка Из СуществующиеНастройки Цикл + СписокСуществующих.Добавить(Настройка.ВладелецФайла); + КонецЦикла; + ЭлементНастройки.ПравоеЗначение = СписокСуществующих; + ЭлементНастройки.Использование = Истина; + ЭлементНастройки.РежимОтображения = РежимОтображенияЭлементаНастройкиКомпоновкиДанных.Недоступный; + ПараметрыФормыВыбора.Вставить("ФиксированныеНастройки", ФиксированныеНастройки); + + ОткрытьФорму(ПутьФормыВыбора(СтрокаДерева.ВладелецФайла), ПараметрыФормыВыбора, Элементы.ДеревоОбъектовМетаданных); + +КонецПроцедуры + +&НаСервере +Функция ПутьФормыВыбора(Знач ВладелецФайла) + + ОбъектМетаданных = ОбщегоНазначения.ОбъектМетаданныхПоИдентификатору(ВладелецФайла); + Возврат ОбъектМетаданных.ПолноеИмя() + ".ФормаВыбора"; + +КонецФункции + +&НаСервере +Процедура ДобавитьНастройкиПоВладельцу(Знач ВыбранноеЗначение) + + СтрокаВладелец = ДеревоОбъектовМетаданных.НайтиПоИдентификатору(Элементы.ДеревоОбъектовМетаданных.ТекущаяСтрока); + + + СтруктураЗаписиРегистра = РегистрыСведений.НастройкиРаботыСФайловымАрхивом.СтруктуруЗаписи(); + ЗаполнитьЗначенияСвойств(СтруктураЗаписиРегистра, СтрокаВладелец); + РегистрыСведений.НастройкиРаботыСФайловымАрхивом.ДобавитьЗапись(СтруктураЗаписиРегистра); + + ЭлементВладелец = СтрокаВладелец.ПолучитьЭлементы(); + Для Каждого Настройка Из ВыбранноеЗначение Цикл + + СтруктураЗаписиРегистра = РегистрыСведений.НастройкиРаботыСФайловымАрхивом.СтруктуруЗаписи(); + СтруктураЗаписиРегистра.ВладелецФайла = Настройка; + СтруктураЗаписиРегистра.ТипВладельцаФайла = СтрокаВладелец.ТипВладельцаФайла; + СтруктураЗаписиРегистра.Действие = Перечисления.ДействияВНастройкахРаботыСФайловымАрхивом.НеПереноситьВАрхив; + СтруктураЗаписиРегистра.ПеренестиВФайловыйАрхивЧерезДней = СтрокаВладелец.ПеренестиВФайловыйАрхивЧерезДней; + СтруктураЗаписиРегистра.ЭтоФайл = СтрокаВладелец.ЭтоФайл; + + РегистрыСведений.НастройкиРаботыСФайловымАрхивом.ДобавитьЗапись(СтруктураЗаписиРегистра); + + ДетализированнаяНастройка = ЭлементВладелец.Добавить(); + ЗаполнитьЗначенияСвойств(ДетализированнаяНастройка, СтруктураЗаписиРегистра); + ДетализированнаяНастройка.СинонимНаименованияОбъекта = Настройка; + КонецЦикла; + +КонецПроцедуры + +&НаСервере +Процедура ОчиститьДанныеНастройки() + + НастройкаДляУдаления = ДеревоОбъектовМетаданных.НайтиПоИдентификатору(Элементы.ДеревоОбъектовМетаданных.ТекущаяСтрока); + + РегистрыСведений.НастройкиРаботыСФайловымАрхивом.УдалитьЗапись(НастройкаДляУдаления.ВладелецФайла, НастройкаДляУдаления.ТипВладельцаФайла); + + РодительЭлементаНастроек = НастройкаДляУдаления.ПолучитьРодителя(); + Если РодительЭлементаНастроек <> Неопределено Тогда + РодительЭлементаНастроек.ПолучитьЭлементы().Удалить(НастройкаДляУдаления); + Иначе + ДеревоОбъектовМетаданных.ПолучитьЭлементы().Удалить(НастройкаДляУдаления); + КонецЕсли; + +КонецПроцедуры + +&НаСервере +Процедура УстановитьДействиеДляВыбранныхОбъектов(Знач Действие) + + Для Каждого ИдентификаторСтроки Из Элементы.ДеревоОбъектовМетаданных.ВыделенныеСтроки Цикл + ЭлементДерева = ДеревоОбъектовМетаданных.НайтиПоИдентификатору(ИдентификаторСтроки); + Если ЭлементДерева.ПолучитьРодителя() = Неопределено Тогда + Для Каждого ПодчиненныйЭлементДерева Из ЭлементДерева.ПолучитьЭлементы() Цикл + УстановитьДействиеВыбранногоОбъектаСРекурсией(ПодчиненныйЭлементДерева, Действие); + КонецЦикла; + Иначе + УстановитьДействиеВыбранногоОбъектаСРекурсией(ЭлементДерева, Действие); + КонецЕсли; + КонецЦикла; + +КонецПроцедуры + +&НаСервере +Процедура УстановитьДействиеВыбранногоОбъектаСРекурсией(ВыбранныйОбъект, Знач Действие) + + УстановитьДействиеВыбранногоОбъекта(ВыбранныйОбъект, Действие); + Для Каждого ДочернийОбъект Из ВыбранныйОбъект.ПолучитьЭлементы() Цикл + УстановитьДействиеВыбранногоОбъекта(ДочернийОбъект, Действие); + КонецЦикла; + +КонецПроцедуры + +&НаСервере +Процедура УстановитьДействиеВыбранногоОбъекта(ВыбранныйОбъект, Знач Действие) + + ВыбранныйОбъект.Действие = Действие; + ЗаписатьТекущиеНастройкиПоОбъекту( + ВыбранныйОбъект.ВладелецФайла, + ВыбранныйОбъект.ТипВладельцаФайла, + Действие, + ВыбранныйОбъект.ПеренестиВФайловыйАрхивЧерезДней, + ВыбранныйОбъект.ЭтоФайл); + +КонецПроцедуры + +&НаКлиенте +Процедура ЗаписатьТекущиеНастройки() + + ТекущиеДанные = Элементы.ДеревоОбъектовМетаданных.ТекущиеДанные; + ЗаписатьТекущиеНастройкиПоОбъекту( + ТекущиеДанные.ВладелецФайла, + ТекущиеДанные.ТипВладельцаФайла, + ТекущиеДанные.Действие, + ТекущиеДанные.ПеренестиВФайловыйАрхивЧерезДней, + ТекущиеДанные.ЭтоФайл); + +КонецПроцедуры + +&НаСервере +Процедура ЗаписатьТекущиеНастройкиПоОбъекту(Знач ВладелецФайла, Знач ТипВладельцаФайла, Знач Действие, Знач ПеренестиВФайловыйАрхивЧерезДней, Знач ЭтоФайл) + + СтруктураЗаписиРегистра = РегистрыСведений.НастройкиРаботыСФайловымАрхивом.СтруктуруЗаписи(); + СтруктураЗаписиРегистра.ВладелецФайла = ВладелецФайла; + СтруктураЗаписиРегистра.ТипВладельцаФайла = ТипВладельцаФайла; + СтруктураЗаписиРегистра.Действие = Действие; + СтруктураЗаписиРегистра.ПеренестиВФайловыйАрхивЧерезДней = ПеренестиВФайловыйАрхивЧерезДней; + СтруктураЗаписиРегистра.ЭтоФайл = ЭтоФайл; + + РегистрыСведений.НастройкиРаботыСФайловымАрхивом.ДобавитьЗапись(СтруктураЗаписиРегистра); + +КонецПроцедуры + +&НаСервере +Процедура ЗапуститьРегламентноеЗадание() + + Если Не ОбщегоНазначения.ПодсистемаСуществует("СтандартныеПодсистемы.РегламентныеЗадания") Тогда + Возврат; + КонецЕсли; + + МодульРегламентныеЗаданияСлужебный = ОбщегоНазначения.ОбщийМодуль("РегламентныеЗаданияСлужебный"); + + ВызватьИсключениеЕслиНетПраваАдминистрирования(МодульРегламентныеЗаданияСлужебный); + + РегламентноеЗаданиеМетаданные = Метаданные.РегламентныеЗадания.ПереносФайловМеждуОперационнымХранилищемИФайловымАрхивом; + + Отбор = Новый Структура; + ИмяМетода = РегламентноеЗаданиеМетаданные.ИмяМетода; + Отбор.Вставить("ИмяМетода", ИмяМетода); + Отбор.Вставить("Состояние", СостояниеФоновогоЗадания.Активно); + ФоновыеЗаданияПереносаФайлов = ФоновыеЗадания.ПолучитьФоновыеЗадания(Отбор); + Если ФоновыеЗаданияПереносаФайлов.Количество() > 0 Тогда + ИдентификаторФоновогоЗадания = ФоновыеЗаданияПереносаФайлов[0].УникальныйИдентификатор; + Иначе + + РегламентноеЗадание = РегламентныеЗадания.НайтиПредопределенное(РегламентноеЗаданиеМетаданные); // АПК:453 Используется только в неразделенном режиме работы с данными + + ПараметрыВыполнения = МодульРегламентныеЗаданияСлужебный.ВыполнитьРегламентноеЗаданиеВручную(РегламентноеЗадание.УникальныйИдентификатор); + + ИдентификаторФоновогоЗадания = Новый УникальныйИдентификатор(ПараметрыВыполнения.ИдентификаторФоновогоЗадания); + + Элементы.НадписьТекущееСостояние.Заголовок = ПолучитьПредставлениеТекущегоСостоянияВыполненияОперацийПереносаФайлов(ИдентификаторФоновогоЗадания) + + КонецЕсли; +КонецПроцедуры + +&НаКлиенте +Процедура ПрерватьФоновоеЗадание() + ОтменитьВыполнениеЗадания(ИдентификаторФоновогоЗадания); + ИдентификаторФоновогоЗадания = ""; +КонецПроцедуры + +&НаСервереБезКонтекста +Процедура ОтменитьВыполнениеЗадания(Знач ИдентификаторФоновогоЗадания) + + Если ЗначениеЗаполнено(ИдентификаторФоновогоЗадания) И ОбщегоНазначения.ПодсистемаСуществует("СтандартныеПодсистемы.РегламентныеЗадания") Тогда + + ВызватьИсключениеЕслиНетПраваАдминистрирования(); + + ДлительныеОперации.ОтменитьВыполнениеЗадания(ИдентификаторФоновогоЗадания); + КонецЕсли; +КонецПроцедуры + +&НаКлиенте +Функция НастройкаЗаполненаКорректно() + + Результат = Истина; + + ТекущиеДанные = Элементы.ДеревоОбъектовМетаданных.ТекущиеДанные; + + Если ТекущиеДанные.ВладелецФайла = Неопределено И ТекущиеДанные.ТипВладельцаФайла = Неопределено Тогда + Если ТекущиеДанные.ПеренестиВФайловыйАрхивЧерезДней = 0 Тогда + + Результат = Ложь; + + ТекущиеДанные.ПеренестиВФайловыйАрхивЧерезДней = ПолучитьТекущееЗначениеНастройкиПоУмолчанию(); + + ТекстСообщения = НСтр("ru = 'Значение общих настроек хранения файлов должно быть обязательно заполнено + |Восстановлено старое значение.'"); + ПоказатьПредупреждение(,ТекстСообщения); + + КонецЕсли; + КонецЕсли; + + Возврат Результат; + +КонецФункции + +&НаСервереБезКонтекста +Функция ПолучитьТекущееЗначениеНастройкиПоУмолчанию() + + Возврат РегистрыСведений.НастройкиРаботыСФайловымАрхивом.ПолучитьКоличествоДнейХраненияИзНастройкиПоУмолчанию(); + +КонецФункции + +&НаСервереБезКонтекста +Функция ПолучитьПредставлениеТекущегоСостоянияВыполненияОперацийПереносаФайлов(Знач ИдентификаторФоновогоЗадания = Неопределено) + + Если Не ОбщегоНазначения.ПодсистемаСуществует("СтандартныеПодсистемы.РегламентныеЗадания") Тогда + Возврат ""; + КонецЕсли; + + ВызватьИсключениеЕслиНетПраваАдминистрирования(); + + СведенияДляФормированияПредставления = Новый Структура; + СведенияДляФормированияПредставления.Вставить("Состояние" , Неопределено); + СведенияДляФормированияПредставления.Вставить("Начало" , Дата(1,1,1)); + СведенияДляФормированияПредставления.Вставить("Конец" , Дата(1,1,1)); + + Если ИдентификаторФоновогоЗадания = Неопределено Тогда + + РегламентноеЗаданиеМетаданные = Метаданные.РегламентныеЗадания.ПереносФайловМеждуОперационнымХранилищемИФайловымАрхивом; + + Отбор = Новый Структура; + Отбор.Вставить("ИмяМетода", РегламентноеЗаданиеМетаданные.ИмяМетода); + Отбор.Вставить("Состояние", СостояниеФоновогоЗадания.Активно); + ФоновыеЗаданияПереносаФайлов = ФоновыеЗадания.ПолучитьФоновыеЗадания(Отбор); + + Если ФоновыеЗаданияПереносаФайлов.Количество() > 0 Тогда + ЗаполнитьЗначенияСвойств(СведенияДляФормированияПредставления, ФоновыеЗаданияПереносаФайлов[0]); + Иначе + + Отбор.Удалить("Состояние"); + + ФоновыеЗаданияПереносаФайлов = ФоновыеЗадания.ПолучитьФоновыеЗадания(Отбор); + + Если ФоновыеЗаданияПереносаФайлов.Количество() > 0 Тогда + ПоследнееФоновоеЗадание = ФоновыеЗаданияПереносаФайлов[0]; + Для Каждого ФоновоеЗадание Из ФоновыеЗаданияПереносаФайлов Цикл + Если ПоследнееФоновоеЗадание.Конец < ФоновоеЗадание.Конец Тогда + ПоследнееФоновоеЗадание = ФоновоеЗадание; + КонецЕсли; + КонецЦикла; + + ЗаполнитьЗначенияСвойств(СведенияДляФормированияПредставления, ПоследнееФоновоеЗадание); + КонецЕсли; + КонецЕсли; + Иначе + + НайденноеФоновоеЗадание = ФоновыеЗадания.НайтиПоУникальномуИдентификатору(ИдентификаторФоновогоЗадания); + + Если НайденноеФоновоеЗадание <> Неопределено Тогда + + ЗаполнитьЗначенияСвойств(СведенияДляФормированияПредставления, НайденноеФоновоеЗадание); + КонецЕсли; + КонецЕсли; + + Возврат ПолучитьПредставлениеСостоянияВыполненияФоновогоЗадания(СведенияДляФормированияПредставления); + +КонецФункции + +&НаСервереБезКонтекста +Функция ПолучитьПредставлениеСостоянияВыполненияФоновогоЗадания(СведенияОСостоянииФоновогоЗадания) + + Результат = ""; + + Если СведенияОСостоянииФоновогоЗадания.Состояние = Неопределено Тогда + + Результат = НСтр("ru = 'Нет информации'"); + + ИначеЕсли СведенияОСостоянииФоновогоЗадания.Состояние = СостояниеФоновогоЗадания.Активно Тогда + + Результат = СтроковыеФункцииКлиентСервер.ПодставитьПараметрыВСтроку(НСтр("ru = 'Выполняется. Начато %1'"), + Формат(СведенияОСостоянииФоновогоЗадания.Начало, "ДЛФ=DT")); + + Иначе + + Результат = СтроковыеФункцииКлиентСервер.ПодставитьПараметрыВСтроку("%1 %2", + СведенияОСостоянииФоновогоЗадания.Состояние, + Формат(СведенияОСостоянииФоновогоЗадания.Конец, "ДЛФ=DT")); + + КонецЕсли; + + Возврат Результат; + +КонецФункции + +&НаКлиенте +Процедура ПроверитьВыполнениеФоновогоЗадания() + Если ЗначениеЗаполнено(ИдентификаторФоновогоЗадания) И Не ЗаданиеЗавершено(ИдентификаторФоновогоЗадания) Тогда + ПодключитьОбработчикОжидания("ПроверитьВыполнениеФоновогоЗадания", 5, Истина); + Иначе + Элементы.НадписьТекущееСостояние.Заголовок = ПолучитьПредставлениеТекущегоСостоянияВыполненияОперацийПереносаФайлов(ИдентификаторФоновогоЗадания); + ИдентификаторФоновогоЗадания = ""; + КонецЕсли; +КонецПроцедуры + +&НаСервереБезКонтекста +Функция ЗаданиеЗавершено(Знач ИдентификаторФоновогоЗадания) + + Результат = Истина; + + РезультатВыполненияЗадания = ДлительныеОперации.ЗаданиеВыполнено(ИдентификаторФоновогоЗадания, Истина); + + Если РезультатВыполненияЗадания.Статус = "Выполняется" Тогда + Результат = Ложь; + КонецЕсли; + + Возврат Результат; +КонецФункции + +&НаСервереБезКонтекста +Процедура ВызватьИсключениеЕслиНетПраваАдминистрирования(Знач МодульРегламентныеЗаданияСлужебный = Неопределено) + + Если МодульРегламентныеЗаданияСлужебный = Неопределено Тогда + МодульРегламентныеЗаданияСлужебный = ОбщегоНазначения.ОбщийМодуль("РегламентныеЗаданияСлужебный"); + КонецЕсли; + + МодульРегламентныеЗаданияСлужебный.ВызватьИсключениеЕслиНетПраваАдминистрирования(); + +КонецПроцедуры + +#КонецОбласти \ No newline at end of file diff --git a/SSL/src/InformationRegisters/НастройкиРаботыСФайловымАрхивом/ManagerModule.bsl b/SSL/src/InformationRegisters/НастройкиРаботыСФайловымАрхивом/ManagerModule.bsl new file mode 100644 index 000000000..d337c17a4 --- /dev/null +++ b/SSL/src/InformationRegisters/НастройкиРаботыСФайловымАрхивом/ManagerModule.bsl @@ -0,0 +1,292 @@ +/////////////////////////////////////////////////////////////////////////////////////////////////////// +// Copyright (c) 2025, ООО 1С-Софт +// Все права защищены. Эта программа и сопроводительные материалы предоставляются +// в соответствии с условиями лицензии Attribution 4.0 International (CC BY 4.0) +// Текст лицензии доступен по ссылке: +// https://creativecommons.org/licenses/by/4.0/legalcode +/////////////////////////////////////////////////////////////////////////////////////////////////////// + +#Если Сервер Или ТолстыйКлиентОбычноеПриложение Или ВнешнееСоединение Тогда + +#Область СлужебныйПрограммныйИнтерфейс + +// Возвращает таблицу значений, содержащую настройки для работы с файловым архивом. +// Используется для выполнения регламентного задания "ПереносФайловМеждуОперационнымХранилищемИФайловымАрхивом". +// +// Возвращаемое значение: +// ТаблицаЗначений +// +Функция ПолучитьНастройкиРаботыСФайловымАрхивомДляПереносаФайлов() Экспорт + + Запрос = Новый Запрос; + Запрос.Текст = ПолучитьТекстЗапросаТекущиеНастройкиРаботыСФайловымАрхивом(Истина); + + Возврат Запрос.Выполнить().Выгрузить(); + +КонецФункции + +// Возвращает количество дней хранения из настройки по умолчанию. +// +// Возвращаемое значение: +// Число +// +Функция ПолучитьКоличествоДнейХраненияИзНастройкиПоУмолчанию() Экспорт + + Результат = 0; + + Запрос = Новый Запрос; + Запрос.Текст = + "ВЫБРАТЬ + | НастройкиРаботыСФайловымАрхивом.ПеренестиВФайловыйАрхивЧерезДней КАК ПеренестиВФайловыйАрхивЧерезДней + |ИЗ + | РегистрСведений.НастройкиРаботыСФайловымАрхивом КАК НастройкиРаботыСФайловымАрхивом + |ГДЕ + | НастройкиРаботыСФайловымАрхивом.ВладелецФайла = НЕОПРЕДЕЛЕНО + | И НастройкиРаботыСФайловымАрхивом.ТипВладельцаФайла = НЕОПРЕДЕЛЕНО"; + + ВыборкаДанных = Запрос.Выполнить().Выбрать(); + Если ВыборкаДанных.Следующий() Тогда + Результат = ВыборкаДанных.ПеренестиВФайловыйАрхивЧерезДней; + КонецЕсли; + + Если Результат = 0 Тогда + Результат = ПолучитьЗначениеПоУмолчаниюДляПеренестиВФайловыйАрхивЧерезДней(); + КонецЕсли; + + Возврат Результат; + +КонецФункции + +#КонецОбласти + +#Область СлужебныеПроцедурыИФункции + +// Добавляет запись в регистр сведений. +// +Процедура ДобавитьЗапись(СтруктураЗаписи) Экспорт + + НаборЗаписей = СоздатьНаборЗаписей(); + НаборЗаписей.Отбор.ВладелецФайла.Установить(СтруктураЗаписи["ВладелецФайла"]); + НаборЗаписей.Отбор.ТипВладельцаФайла.Установить(СтруктураЗаписи["ТипВладельцаФайла"]); + + Запись = НаборЗаписей.Добавить(); + ЗаполнитьЗначенияСвойств(Запись, СтруктураЗаписи); + + НаборЗаписей.Записать(Истина); + +КонецПроцедуры + +// Удаляет запись из регистра сведений. +// +Процедура УдалитьЗапись(ВладелецФайла, ТипВладельцаФайла) Экспорт + + Набор = СоздатьНаборЗаписей(); + Набор.Отбор.ВладелецФайла.Установить(ВладелецФайла); + Набор.Отбор.ТипВладельцаФайла.Установить(ТипВладельцаФайла); + Набор.Записать(); + +КонецПроцедуры + +Функция СтруктуруЗаписи() Экспорт + + Результат = Новый Структура; + Результат.Вставить("ВладелецФайла"); + Результат.Вставить("ТипВладельцаФайла"); + Результат.Вставить("Действие"); + Результат.Вставить("ПеренестиВФайловыйАрхивЧерезДней"); + Результат.Вставить("ЭтоФайл"); + + Возврат Результат; + +КонецФункции + +Процедура ОбновитьНастройкиРаботыСФайловымАрхивом() + + МетаданныеСправочники = Метаданные.Справочники; + + ТаблицаВладельцевФайлов = Новый ТаблицаЗначений; + ТаблицаВладельцевФайлов.Колонки.Добавить("ВладелецФайла", Новый ОписаниеТипов("СправочникСсылка.ИдентификаторыОбъектовМетаданных")); + ТаблицаВладельцевФайлов.Колонки.Добавить("ТипВладельцаФайла", Новый ОписаниеТипов("СправочникСсылка.ИдентификаторыОбъектовМетаданных")); + ТаблицаВладельцевФайлов.Колонки.Добавить("ЭтоФайл", Новый ОписаниеТипов("Булево")); + + Для Каждого Справочник Из МетаданныеСправочники Цикл + + Если Справочник.Реквизиты.Найти("ВладелецФайла") = Неопределено Тогда + Продолжить; + КонецЕсли; + + ТипыВладельцевФайлов = Справочник.Реквизиты.ВладелецФайла.Тип.Типы(); + Для Каждого ТипВладельца Из ТипыВладельцевФайлов Цикл + + НоваяСтрока = ТаблицаВладельцевФайлов.Добавить(); + НоваяСтрока.ВладелецФайла = ОбщегоНазначения.ИдентификаторОбъектаМетаданных(ТипВладельца); + НоваяСтрока.ТипВладельцаФайла = ОбщегоНазначения.ИдентификаторОбъектаМетаданных(Справочник); + Если Не СтрЗаканчиваетсяНа(Справочник.Имя, РаботаСФайламиСлужебный.СуффиксСправочникаПрисоединенныеФайлы()) Тогда + НоваяСтрока.ЭтоФайл = Истина; + КонецЕсли; + + КонецЦикла; + + КонецЦикла; + + Запрос = Новый Запрос; Запрос.МенеджерВременныхТаблиц = Новый МенеджерВременныхТаблиц; + Запрос.Текст = + "ВЫБРАТЬ + | ТаблицаВладельцевФайлов.ВладелецФайла КАК ВладелецФайла, + | ТаблицаВладельцевФайлов.ТипВладельцаФайла КАК ТипВладельцаФайла, + | ТаблицаВладельцевФайлов.ЭтоФайл КАК ЭтоФайл + |ПОМЕСТИТЬ ТаблицаВладельцевФайлов + |ИЗ + | &ТаблицаВладельцевФайлов КАК ТаблицаВладельцевФайлов + | + |ИНДЕКСИРОВАТЬ ПО + | ВладелецФайла, + | ЭтоФайл + |; + | + |//////////////////////////////////////////////////////////////////////////////// + |ВЫБРАТЬ + | НастройкиРаботыСФайловымАрхивом.ВладелецФайла КАК ВладелецФайла, + | НастройкиРаботыСФайловымАрхивом.ТипВладельцаФайла КАК ТипВладельцаФайла, + | НастройкиРаботыСФайловымАрхивом.ЭтоФайл КАК ЭтоФайл, + | ИдентификаторыОбъектовМетаданных.Ссылка КАК ИдентификаторОбъекта + |ПОМЕСТИТЬ ПодчиненныеНастройки + |ИЗ + | РегистрСведений.НастройкиРаботыСФайловымАрхивом КАК НастройкиРаботыСФайловымАрхивом + | ЛЕВОЕ СОЕДИНЕНИЕ Справочник.ИдентификаторыОбъектовМетаданных КАК ИдентификаторыОбъектовМетаданных + | ПО НастройкиРаботыСФайловымАрхивом.ВладелецФайла <> Неопределено + | И НастройкиРаботыСФайловымАрхивом.ТипВладельцаФайла <> Неопределено + | И (ТИПЗНАЧЕНИЯ(НастройкиРаботыСФайловымАрхивом.ВладелецФайла) = ТИПЗНАЧЕНИЯ(ИдентификаторыОбъектовМетаданных.ЗначениеПустойСсылки)) + |ГДЕ + | НастройкиРаботыСФайловымАрхивом.ВладелецФайла <> Неопределено + | И НастройкиРаботыСФайловымАрхивом.ТипВладельцаФайла <> Неопределено + | И ТИПЗНАЧЕНИЯ(НастройкиРаботыСФайловымАрхивом.ВладелецФайла) <> ТИП(Справочник.ИдентификаторыОбъектовМетаданных) + | + |ИНДЕКСИРОВАТЬ ПО + | ИдентификаторОбъекта, + | ЭтоФайл, + | ТипВладельцаФайла + |; + | + |//////////////////////////////////////////////////////////////////////////////// + |ВЫБРАТЬ + | НастройкиРаботыСФайловымАрхивом.ВладелецФайла КАК ВладелецФайла, + | НастройкиРаботыСФайловымАрхивом.ТипВладельцаФайла КАК ТипВладельцаФайла, + | НастройкиРаботыСФайловымАрхивом.ЭтоФайл КАК ЭтоФайл, + | ЛОЖЬ КАК НоваяНастройка + |ИЗ + | РегистрСведений.НастройкиРаботыСФайловымАрхивом КАК НастройкиРаботыСФайловымАрхивом + | ЛЕВОЕ СОЕДИНЕНИЕ ТаблицаВладельцевФайлов КАК ТаблицаВладельцевФайлов + | ПО НастройкиРаботыСФайловымАрхивом.ВладелецФайла = ТаблицаВладельцевФайлов.ВладелецФайла + | И НастройкиРаботыСФайловымАрхивом.ЭтоФайл = ТаблицаВладельцевФайлов.ЭтоФайл + | И НастройкиРаботыСФайловымАрхивом.ТипВладельцаФайла = ТаблицаВладельцевФайлов.ТипВладельцаФайла + |ГДЕ + | ТаблицаВладельцевФайлов.ВладелецФайла ЕСТЬ NULL + | И ТИПЗНАЧЕНИЯ(НастройкиРаботыСФайловымАрхивом.ВладелецФайла) = ТИП(Справочник.ИдентификаторыОбъектовМетаданных) + | + |ОБЪЕДИНИТЬ ВСЕ + | + |ВЫБРАТЬ + | ПодчиненныеНастройки.ВладелецФайла, + | ПодчиненныеНастройки.ТипВладельцаФайла, + | ПодчиненныеНастройки.ЭтоФайл, + | ЛОЖЬ + |ИЗ + | ПодчиненныеНастройки КАК ПодчиненныеНастройки + | ЛЕВОЕ СОЕДИНЕНИЕ ТаблицаВладельцевФайлов КАК ТаблицаВладельцевФайлов + | ПО ПодчиненныеНастройки.ТипВладельцаФайла = ТаблицаВладельцевФайлов.ТипВладельцаФайла + | И ПодчиненныеНастройки.ЭтоФайл = ТаблицаВладельцевФайлов.ЭтоФайл + | И ПодчиненныеНастройки.ИдентификаторОбъекта = ТаблицаВладельцевФайлов.ВладелецФайла + |ГДЕ + | ТаблицаВладельцевФайлов.ВладелецФайла ЕСТЬ NULL"; + + Запрос.Параметры.Вставить("ТаблицаВладельцевФайлов", ТаблицаВладельцевФайлов); + ОбщаяТаблицаНастроек = Запрос.Выполнить().Выгрузить(); + + НастройкиДляУдаления = ОбщаяТаблицаНастроек.НайтиСтроки(Новый Структура("НоваяНастройка", Ложь)); + Для Каждого Настройка Из НастройкиДляУдаления Цикл + + УдалитьЗапись(Настройка.ВладелецФайла, Настройка.ТипВладельцаФайла); + + КонецЦикла; + +КонецПроцедуры + +Функция ПолучитьЗначениеПоУмолчаниюДляПеренестиВФайловыйАрхивЧерезДней() + + Возврат 365; + +КонецФункции + +// Возвращаемое значение: +// ТаблицаЗначений: +// * ВладелецФайла - ЛюбаяСсылка +// * ИдентификаторВладельца - СправочникСсылка.ИдентификаторыОбъектовМетаданных +// * ЭтоДетальнаяНастройкаПереносаФайлов - Булево +// * ТипВладельцаФайла - СправочникСсылка.ИдентификаторыОбъектовМетаданных +// * ПеренестиВФайловыйАрхивЧерезДней - Число +// * Действие - ПеречислениеСсылка.ДействияВНастройкахРаботыСФайловымАрхивом +// * ЭтоФайл - Булево +// +Функция ТекущиеНастройкиРаботыСФайловымАрхивом() Экспорт + + УстановитьПривилегированныйРежим(Истина); + + ОбновитьНастройкиРаботыСФайловымАрхивом(); + + Запрос = Новый Запрос; + Запрос.Текст = ПолучитьТекстЗапросаТекущиеНастройкиРаботыСФайловымАрхивом(); + + Возврат Запрос.Выполнить().Выгрузить(); + +КонецФункции + +Функция ПолучитьТекстЗапросаТекущиеНастройкиРаботыСФайловымАрхивом(ЗапросДляРегламентногоЗадания = Ложь) + + Результат = + "ВЫБРАТЬ + | НастройкиРаботыСФайловымАрхивом.ВладелецФайла КАК ВладелецФайла, + | ИдентификаторыОбъектовМетаданных.Ссылка КАК ИдентификаторВладельца, + | ВЫБОР + | КОГДА ТИПЗНАЧЕНИЯ(ИдентификаторыОбъектовМетаданных.Ссылка) <> ТИПЗНАЧЕНИЯ(НастройкиРаботыСФайловымАрхивом.ВладелецФайла) + | ТОГДА ИСТИНА + | ИНАЧЕ ЛОЖЬ + | КОНЕЦ КАК ЭтоДетальнаяНастройкаПереносаФайлов, + | НастройкиРаботыСФайловымАрхивом.ТипВладельцаФайла КАК ТипВладельцаФайла, + | НастройкиРаботыСФайловымАрхивом.ПеренестиВФайловыйАрхивЧерезДней КАК ПеренестиВФайловыйАрхивЧерезДней, + | НастройкиРаботыСФайловымАрхивом.Действие КАК Действие, + | &ДополнительноеПоле, + | НастройкиРаботыСФайловымАрхивом.ЭтоФайл КАК ЭтоФайл + |ИЗ + | РегистрСведений.НастройкиРаботыСФайловымАрхивом КАК НастройкиРаботыСФайловымАрхивом + | ЛЕВОЕ СОЕДИНЕНИЕ Справочник.ИдентификаторыОбъектовМетаданных КАК ИдентификаторыОбъектовМетаданных + | ПО НастройкиРаботыСФайловымАрхивом.ВладелецФайла <> Неопределено + | И НастройкиРаботыСФайловымАрхивом.ТипВладельцаФайла <> Неопределено + | И (ТИПЗНАЧЕНИЯ(НастройкиРаботыСФайловымАрхивом.ВладелецФайла) = ТИПЗНАЧЕНИЯ(ИдентификаторыОбъектовМетаданных.ЗначениеПустойСсылки))"; + + Если Не ЗапросДляРегламентногоЗадания Тогда + Результат = СтрЗаменить(Результат, "&ДополнительноеПоле,", ""); + КонецЕсли; + + Если ЗапросДляРегламентногоЗадания Тогда + + Результат = СтрЗаменить(Результат, "&ДополнительноеПоле,", + " ВЫБОР + | КОГДА ТИПЗНАЧЕНИЯ(ИдентификаторыОбъектовМетаданных.Ссылка) <> ТИПЗНАЧЕНИЯ(НастройкиРаботыСФайловымАрхивом.ВладелецФайла) + | ТОГДА ИдентификаторыОбъектовМетаданных.Ссылка + | ИНАЧЕ НастройкиРаботыСФайловымАрхивом.ВладелецФайла + | КОНЕЦ КАК ОбщийИдентификаторВладельца,"); + + Результат = Результат + " + |ГДЕ + | НастройкиРаботыСФайловымАрхивом.ВладелецФайла <> НЕОПРЕДЕЛЕНО + | И НастройкиРаботыСФайловымАрхивом.ТипВладельцаФайла <> НЕОПРЕДЕЛЕНО" + КонецЕсли; + + Возврат Результат; + +КонецФункции + +#КонецОбласти + +#КонецЕсли \ No newline at end of file diff --git a/SSL/src/InformationRegisters/НастройкиРаботыСФайловымАрхивом/НастройкиРаботыСФайловымАрхивом.mdo b/SSL/src/InformationRegisters/НастройкиРаботыСФайловымАрхивом/НастройкиРаботыСФайловымАрхивом.mdo new file mode 100644 index 000000000..55b2fb6f4 --- /dev/null +++ b/SSL/src/InformationRegisters/НастройкиРаботыСФайловымАрхивом/НастройкиРаботыСФайловымАрхивом.mdo @@ -0,0 +1,168 @@ + + + + + + + + + + + + НастройкиРаботыСФайловымАрхивом + + ru + Настройки работы с файловым архивом + + InDialog + InformationRegister.НастройкиРаботыСФайловымАрхивом.Form.ФормаСписка + + Use + Active + + Use + + + + + Use + LineNumber + + Use + + + + + Use + Recorder + + Use + + + + + Use + Period + + ShowError + Use + + + + Managed + + Действие + + ru + Действие + + + EnumRef.ДействияВНастройкахРаботыСФайловымАрхивом + + + + Use + Use + + + + ПеренестиВФайловыйАрхивЧерезДней + + ru + Перенести в файловый архив через дней + + + Number + + 5 + true + + + + + Use + Use + + + + ЭтоФайл + + ru + Это файл + + + Boolean + + + ru + Определяет к какой подсистеме относится файл (служебный реквизит) + + + + Use + Use + + + + ВладелецФайла + + ru + Владелец + + АПК:1330 невозможно объединить 2 составных типа + + ExchangePlanRef + BusinessProcessRef + DocumentRef + ChartOfCalculationTypesRef + TaskRef + ChartOfCharacteristicTypesRef + ChartOfAccountsRef + CatalogRef + + + ru + Имя владельца файла + + + + Use + Use + true + + true + true + + + ТипВладельцаФайла + + ru + Тип владельца файла + + + CatalogRef.ИдентификаторыОбъектовРасширений + CatalogRef.ИдентификаторыОбъектовМетаданных + + + ru + Имя справочника владельца файла + + + + Use + Use + true + + true + true + + + ФормаСписка + + ru + Форма списка + + PersonalComputer + MobileDevice + + diff --git a/SSL/src/InformationRegisters/НастройкиСинхронизацииФайлов/Forms/ДобавлениеУсловияПоДате/Module.bsl b/SSL/src/InformationRegisters/НастройкиСинхронизацииФайлов/Forms/ДобавлениеУсловияПоДате/Module.bsl index 6871d34ef..92a0f2906 100644 --- a/SSL/src/InformationRegisters/НастройкиСинхронизацииФайлов/Forms/ДобавлениеУсловияПоДате/Module.bsl +++ b/SSL/src/InformationRegisters/НастройкиСинхронизацииФайлов/Forms/ДобавлениеУсловияПоДате/Module.bsl @@ -1,5 +1,5 @@ /////////////////////////////////////////////////////////////////////////////////////////////////////// -// Copyright (c) 2024, ООО 1С-Софт +// Copyright (c) 2025, ООО 1С-Софт // Все права защищены. Эта программа и сопроводительные материалы предоставляются // в соответствии с условиями лицензии Attribution 4.0 International (CC BY 4.0) // Текст лицензии доступен по ссылке: diff --git a/SSL/src/InformationRegisters/НастройкиСинхронизацииФайлов/Forms/НастройкиСинхронизацииФайлов/Module.bsl b/SSL/src/InformationRegisters/НастройкиСинхронизацииФайлов/Forms/НастройкиСинхронизацииФайлов/Module.bsl index 4a6a5a75c..f996cb0e6 100644 --- a/SSL/src/InformationRegisters/НастройкиСинхронизацииФайлов/Forms/НастройкиСинхронизацииФайлов/Module.bsl +++ b/SSL/src/InformationRegisters/НастройкиСинхронизацииФайлов/Forms/НастройкиСинхронизацииФайлов/Module.bsl @@ -1,5 +1,5 @@ /////////////////////////////////////////////////////////////////////////////////////////////////////// -// Copyright (c) 2024, ООО 1С-Софт +// Copyright (c) 2025, ООО 1С-Софт // Все права защищены. Эта программа и сопроводительные материалы предоставляются // в соответствии с условиями лицензии Attribution 4.0 International (CC BY 4.0) // Текст лицензии доступен по ссылке: @@ -708,26 +708,13 @@ &НаСервере Процедура ЗапуститьРегламентноеЗадание() - РегламентноеЗаданиеМетаданные = Метаданные.РегламентныеЗадания.СинхронизацияФайлов; + ПараметрыВыполненияЗадания = РегламентныеЗаданияСервер.НовыеПараметрыВыполненияЗадания(); + ПараметрыВыполненияЗадания.ПоискАктивного = Истина; - Отбор = Новый Структура; - Отбор.Вставить("ИмяМетода", РегламентноеЗаданиеМетаданные.ИмяМетода); - Отбор.Вставить("Состояние", СостояниеФоновогоЗадания.Активно); - ФоновыеЗаданияСинхронизации = ФоновыеЗадания.ПолучитьФоновыеЗадания(Отбор); - Если ФоновыеЗаданияСинхронизации.Количество() > 0 Тогда - ИдентификаторФоновогоЗадания = ФоновыеЗаданияСинхронизации[0].УникальныйИдентификатор; - Иначе - ПараметрыЗадания = ДлительныеОперации.ПараметрыВыполненияВФоне(УникальныйИдентификатор); - ПараметрыЗадания.НаименованиеФоновогоЗадания = СтроковыеФункцииКлиентСервер.ПодставитьПараметрыВСтроку( - НСтр("ru = 'Запуск вручную: %1'"), РегламентноеЗаданиеМетаданные.Синоним); - РезультатЗадания = ДлительныеОперации.ВыполнитьВФоне( - Метаданные.РегламентныеЗадания.СинхронизацияФайлов.ИмяМетода, - Новый Структура, - ПараметрыЗадания); - Если ЗначениеЗаполнено(ИдентификаторФоновогоЗадания) Тогда - ИдентификаторФоновогоЗадания = РезультатЗадания.ИдентификаторЗадания; - КонецЕсли; - КонецЕсли; + ФоновоеЗадание = РегламентныеЗаданияСервер.ВыполнитьЗадание( + Метаданные.РегламентныеЗадания.СинхронизацияФайлов, + ПараметрыВыполненияЗадания); + ИдентификаторФоновогоЗадания = ФоновоеЗадание.УникальныйИдентификатор; ТекущееФоновоеЗадание = "Синхронизация"; diff --git a/SSL/src/InformationRegisters/НастройкиСинхронизацииФайлов/Forms/ПростаяФормаЗаписиНастройки/Module.bsl b/SSL/src/InformationRegisters/НастройкиСинхронизацииФайлов/Forms/ПростаяФормаЗаписиНастройки/Module.bsl index 73b973751..0e909e5ad 100644 --- a/SSL/src/InformationRegisters/НастройкиСинхронизацииФайлов/Forms/ПростаяФормаЗаписиНастройки/Module.bsl +++ b/SSL/src/InformationRegisters/НастройкиСинхронизацииФайлов/Forms/ПростаяФормаЗаписиНастройки/Module.bsl @@ -1,5 +1,5 @@ /////////////////////////////////////////////////////////////////////////////////////////////////////// -// Copyright (c) 2024, ООО 1С-Софт +// Copyright (c) 2025, ООО 1С-Софт // Все права защищены. Эта программа и сопроводительные материалы предоставляются // в соответствии с условиями лицензии Attribution 4.0 International (CC BY 4.0) // Текст лицензии доступен по ссылке: diff --git a/SSL/src/InformationRegisters/НастройкиСинхронизацииФайлов/Forms/ФормаЗаписи/Module.bsl b/SSL/src/InformationRegisters/НастройкиСинхронизацииФайлов/Forms/ФормаЗаписи/Module.bsl index d063b6b69..a50559d6d 100644 --- a/SSL/src/InformationRegisters/НастройкиСинхронизацииФайлов/Forms/ФормаЗаписи/Module.bsl +++ b/SSL/src/InformationRegisters/НастройкиСинхронизацииФайлов/Forms/ФормаЗаписи/Module.bsl @@ -1,5 +1,5 @@ /////////////////////////////////////////////////////////////////////////////////////////////////////// -// Copyright (c) 2024, ООО 1С-Софт +// Copyright (c) 2025, ООО 1С-Софт // Все права защищены. Эта программа и сопроводительные материалы предоставляются // в соответствии с условиями лицензии Attribution 4.0 International (CC BY 4.0) // Текст лицензии доступен по ссылке: diff --git a/SSL/src/InformationRegisters/НастройкиСинхронизацииФайлов/ManagerModule.bsl b/SSL/src/InformationRegisters/НастройкиСинхронизацииФайлов/ManagerModule.bsl index 5eaba3a41..0e2a0ac1b 100644 --- a/SSL/src/InformationRegisters/НастройкиСинхронизацииФайлов/ManagerModule.bsl +++ b/SSL/src/InformationRegisters/НастройкиСинхронизацииФайлов/ManagerModule.bsl @@ -1,5 +1,5 @@ /////////////////////////////////////////////////////////////////////////////////////////////////////// -// Copyright (c) 2024, ООО 1С-Софт +// Copyright (c) 2025, ООО 1С-Софт // Все права защищены. Эта программа и сопроводительные материалы предоставляются // в соответствии с условиями лицензии Attribution 4.0 International (CC BY 4.0) // Текст лицензии доступен по ссылке: diff --git a/SSL/src/InformationRegisters/НастройкиТранспортаОбменаОбластейДанных/Forms/ФормаЗаписи/Module.bsl b/SSL/src/InformationRegisters/НастройкиТранспортаОбменаОбластейДанных/Forms/ФормаЗаписи/Module.bsl index f45e424b3..61d898d62 100644 --- a/SSL/src/InformationRegisters/НастройкиТранспортаОбменаОбластейДанных/Forms/ФормаЗаписи/Module.bsl +++ b/SSL/src/InformationRegisters/НастройкиТранспортаОбменаОбластейДанных/Forms/ФормаЗаписи/Module.bsl @@ -1,5 +1,5 @@ /////////////////////////////////////////////////////////////////////////////////////////////////////// -// Copyright (c) 2024, ООО 1С-Софт +// Copyright (c) 2025, ООО 1С-Софт // Все права защищены. Эта программа и сопроводительные материалы предоставляются // в соответствии с условиями лицензии Attribution 4.0 International (CC BY 4.0) // Текст лицензии доступен по ссылке: @@ -30,8 +30,8 @@ Если ЗначениеЗаполнено(Запись.КонечнаяТочкаКорреспондента) Тогда УстановитьПривилегированныйРежим(Истина); Пароли = ОбщегоНазначения.ПрочитатьДанныеИзБезопасногоХранилища(Запись.КонечнаяТочкаКорреспондента, "FTPСоединениеПарольОбластейДанных, ПарольАрхиваСообщенияОбменаОбластейДанных"); - FTPСоединениеПароль = ?(ЗначениеЗаполнено(Пароли.FTPСоединениеПарольОбластейДанных), ЭтотОбъект.УникальныйИдентификатор, ""); - ПарольАрхиваСообщенияОбмена = ?(ЗначениеЗаполнено(Пароли.ПарольАрхиваСообщенияОбменаОбластейДанных), ЭтотОбъект.УникальныйИдентификатор, ""); + FTPСоединениеПароль = ?(ЗначениеЗаполнено(Пароли.FTPСоединениеПарольОбластейДанных), УникальныйИдентификатор, ""); + ПарольАрхиваСообщенияОбмена = ?(ЗначениеЗаполнено(Пароли.ПарольАрхиваСообщенияОбменаОбластейДанных), УникальныйИдентификатор, ""); УстановитьПривилегированныйРежим(Ложь); КонецЕсли; diff --git a/SSL/src/InformationRegisters/НастройкиТранспортаОбменаОбластейДанных/ManagerModule.bsl b/SSL/src/InformationRegisters/НастройкиТранспортаОбменаОбластейДанных/ManagerModule.bsl index f004e5588..7b95f86f9 100644 --- a/SSL/src/InformationRegisters/НастройкиТранспортаОбменаОбластейДанных/ManagerModule.bsl +++ b/SSL/src/InformationRegisters/НастройкиТранспортаОбменаОбластейДанных/ManagerModule.bsl @@ -1,5 +1,5 @@ /////////////////////////////////////////////////////////////////////////////////////////////////////// -// Copyright (c) 2024, ООО 1С-Софт +// Copyright (c) 2025, ООО 1С-Софт // Все права защищены. Эта программа и сопроводительные материалы предоставляются // в соответствии с условиями лицензии Attribution 4.0 International (CC BY 4.0) // Текст лицензии доступен по ссылке: diff --git a/SSL/src/InformationRegisters/НастройкиТранспортаОбменаОбластиДанных/Forms/ФормаЗаписи/Module.bsl b/SSL/src/InformationRegisters/НастройкиТранспортаОбменаОбластиДанных/Forms/ФормаЗаписи/Module.bsl index faad33ade..e635dd611 100644 --- a/SSL/src/InformationRegisters/НастройкиТранспортаОбменаОбластиДанных/Forms/ФормаЗаписи/Module.bsl +++ b/SSL/src/InformationRegisters/НастройкиТранспортаОбменаОбластиДанных/Forms/ФормаЗаписи/Module.bsl @@ -1,5 +1,5 @@ /////////////////////////////////////////////////////////////////////////////////////////////////////// -// Copyright (c) 2024, ООО 1С-Софт +// Copyright (c) 2025, ООО 1С-Софт // Все права защищены. Эта программа и сопроводительные материалы предоставляются // в соответствии с условиями лицензии Attribution 4.0 International (CC BY 4.0) // Текст лицензии доступен по ссылке: diff --git a/SSL/src/InformationRegisters/НастройкиТранспортаОбменаОбластиДанных/ManagerModule.bsl b/SSL/src/InformationRegisters/НастройкиТранспортаОбменаОбластиДанных/ManagerModule.bsl index b15c5e8b5..fbce3c640 100644 --- a/SSL/src/InformationRegisters/НастройкиТранспортаОбменаОбластиДанных/ManagerModule.bsl +++ b/SSL/src/InformationRegisters/НастройкиТранспортаОбменаОбластиДанных/ManagerModule.bsl @@ -1,5 +1,5 @@ /////////////////////////////////////////////////////////////////////////////////////////////////////// -// Copyright (c) 2024, ООО 1С-Софт +// Copyright (c) 2025, ООО 1С-Софт // Все права защищены. Эта программа и сопроводительные материалы предоставляются // в соответствии с условиями лицензии Attribution 4.0 International (CC BY 4.0) // Текст лицензии доступен по ссылке: diff --git a/SSL/src/InformationRegisters/НастройкиУчетныхЗаписейЭлектроннойПочты/Commands/ДополнительныеНастройки/CommandModule.bsl b/SSL/src/InformationRegisters/НастройкиУчетныхЗаписейЭлектроннойПочты/Commands/ДополнительныеНастройки/CommandModule.bsl index e399a2c80..7f21f091d 100644 --- a/SSL/src/InformationRegisters/НастройкиУчетныхЗаписейЭлектроннойПочты/Commands/ДополнительныеНастройки/CommandModule.bsl +++ b/SSL/src/InformationRegisters/НастройкиУчетныхЗаписейЭлектроннойПочты/Commands/ДополнительныеНастройки/CommandModule.bsl @@ -1,5 +1,5 @@ /////////////////////////////////////////////////////////////////////////////////////////////////////// -// Copyright (c) 2024, ООО 1С-Софт +// Copyright (c) 2025, ООО 1С-Софт // Все права защищены. Эта программа и сопроводительные материалы предоставляются // в соответствии с условиями лицензии Attribution 4.0 International (CC BY 4.0) // Текст лицензии доступен по ссылке: diff --git a/SSL/src/InformationRegisters/НастройкиУчетныхЗаписейЭлектроннойПочты/Forms/ФормаЗаписи/Module.bsl b/SSL/src/InformationRegisters/НастройкиУчетныхЗаписейЭлектроннойПочты/Forms/ФормаЗаписи/Module.bsl index c6ad49160..8e75192ad 100644 --- a/SSL/src/InformationRegisters/НастройкиУчетныхЗаписейЭлектроннойПочты/Forms/ФормаЗаписи/Module.bsl +++ b/SSL/src/InformationRegisters/НастройкиУчетныхЗаписейЭлектроннойПочты/Forms/ФормаЗаписи/Module.bsl @@ -1,5 +1,5 @@ /////////////////////////////////////////////////////////////////////////////////////////////////////// -// Copyright (c) 2024, ООО 1С-Софт +// Copyright (c) 2025, ООО 1С-Софт // Все права защищены. Эта программа и сопроводительные материалы предоставляются // в соответствии с условиями лицензии Attribution 4.0 International (CC BY 4.0) // Текст лицензии доступен по ссылке: diff --git a/SSL/src/InformationRegisters/НастройкиУчетныхЗаписейЭлектроннойПочты/Forms/ФормаСписка/Module.bsl b/SSL/src/InformationRegisters/НастройкиУчетныхЗаписейЭлектроннойПочты/Forms/ФормаСписка/Module.bsl index 54096ede1..1fb7331f3 100644 --- a/SSL/src/InformationRegisters/НастройкиУчетныхЗаписейЭлектроннойПочты/Forms/ФормаСписка/Module.bsl +++ b/SSL/src/InformationRegisters/НастройкиУчетныхЗаписейЭлектроннойПочты/Forms/ФормаСписка/Module.bsl @@ -1,5 +1,5 @@ /////////////////////////////////////////////////////////////////////////////////////////////////////// -// Copyright (c) 2024, ООО 1С-Софт +// Copyright (c) 2025, ООО 1С-Софт // Все права защищены. Эта программа и сопроводительные материалы предоставляются // в соответствии с условиями лицензии Attribution 4.0 International (CC BY 4.0) // Текст лицензии доступен по ссылке: diff --git a/SSL/src/InformationRegisters/НастройкиУчетныхЗаписейЭлектроннойПочты/ManagerModule.bsl b/SSL/src/InformationRegisters/НастройкиУчетныхЗаписейЭлектроннойПочты/ManagerModule.bsl index b5114dff1..3a9daaae1 100644 --- a/SSL/src/InformationRegisters/НастройкиУчетныхЗаписейЭлектроннойПочты/ManagerModule.bsl +++ b/SSL/src/InformationRegisters/НастройкиУчетныхЗаписейЭлектроннойПочты/ManagerModule.bsl @@ -1,5 +1,5 @@ /////////////////////////////////////////////////////////////////////////////////////////////////////// -// Copyright (c) 2024, ООО 1С-Софт +// Copyright (c) 2025, ООО 1С-Софт // Все права защищены. Эта программа и сопроводительные материалы предоставляются // в соответствии с условиями лицензии Attribution 4.0 International (CC BY 4.0) // Текст лицензии доступен по ссылке: diff --git a/SSL/src/InformationRegisters/НеразделенныеПользователи/ManagerModule.bsl b/SSL/src/InformationRegisters/НеразделенныеПользователи/ManagerModule.bsl index 300bf37af..8a8b79fe9 100644 --- a/SSL/src/InformationRegisters/НеразделенныеПользователи/ManagerModule.bsl +++ b/SSL/src/InformationRegisters/НеразделенныеПользователи/ManagerModule.bsl @@ -1,5 +1,5 @@ /////////////////////////////////////////////////////////////////////////////////////////////////////// -// Copyright (c) 2024, ООО 1С-Софт +// Copyright (c) 2025, ООО 1С-Софт // Все права защищены. Эта программа и сопроводительные материалы предоставляются // в соответствии с условиями лицензии Attribution 4.0 International (CC BY 4.0) // Текст лицензии доступен по ссылке: diff --git a/SSL/src/InformationRegisters/НеудаленныеОбъекты/Forms/ФормаСписка/Module.bsl b/SSL/src/InformationRegisters/НеудаленныеОбъекты/Forms/ФормаСписка/Module.bsl index af1568fbc..aa0c09f77 100644 --- a/SSL/src/InformationRegisters/НеудаленныеОбъекты/Forms/ФормаСписка/Module.bsl +++ b/SSL/src/InformationRegisters/НеудаленныеОбъекты/Forms/ФормаСписка/Module.bsl @@ -1,5 +1,5 @@ /////////////////////////////////////////////////////////////////////////////////////////////////////// -// Copyright (c) 2024, ООО 1С-Софт +// Copyright (c) 2025, ООО 1С-Софт // Все права защищены. Эта программа и сопроводительные материалы предоставляются // в соответствии с условиями лицензии Attribution 4.0 International (CC BY 4.0) // Текст лицензии доступен по ссылке: diff --git a/SSL/src/InformationRegisters/НеудаленныеОбъекты/ManagerModule.bsl b/SSL/src/InformationRegisters/НеудаленныеОбъекты/ManagerModule.bsl index 8089cd4d0..d18e1b042 100644 --- a/SSL/src/InformationRegisters/НеудаленныеОбъекты/ManagerModule.bsl +++ b/SSL/src/InformationRegisters/НеудаленныеОбъекты/ManagerModule.bsl @@ -1,5 +1,5 @@ /////////////////////////////////////////////////////////////////////////////////////////////////////// -// Copyright (c) 2024, ООО 1С-Софт +// Copyright (c) 2025, ООО 1С-Софт // Все права защищены. Эта программа и сопроводительные материалы предоставляются // в соответствии с условиями лицензии Attribution 4.0 International (CC BY 4.0) // Текст лицензии доступен по ссылке: diff --git a/SSL/src/InformationRegisters/НеудаленныеОбъекты/RecordSetModule.bsl b/SSL/src/InformationRegisters/НеудаленныеОбъекты/RecordSetModule.bsl index 36f32c11c..84cf59da5 100644 --- a/SSL/src/InformationRegisters/НеудаленныеОбъекты/RecordSetModule.bsl +++ b/SSL/src/InformationRegisters/НеудаленныеОбъекты/RecordSetModule.bsl @@ -1,5 +1,5 @@ /////////////////////////////////////////////////////////////////////////////////////////////////////// -// Copyright (c) 2024, ООО 1С-Софт +// Copyright (c) 2025, ООО 1С-Софт // Все права защищены. Эта программа и сопроводительные материалы предоставляются // в соответствии с условиями лицензии Attribution 4.0 International (CC BY 4.0) // Текст лицензии доступен по ссылке: diff --git a/SSL/src/InformationRegisters/ОбластиСтатистики/ManagerModule.bsl b/SSL/src/InformationRegisters/ОбластиСтатистики/ManagerModule.bsl index ec7660283..e02a84db2 100644 --- a/SSL/src/InformationRegisters/ОбластиСтатистики/ManagerModule.bsl +++ b/SSL/src/InformationRegisters/ОбластиСтатистики/ManagerModule.bsl @@ -1,5 +1,5 @@ /////////////////////////////////////////////////////////////////////////////////////////////////////// -// Copyright (c) 2024, ООО 1С-Софт +// Copyright (c) 2025, ООО 1С-Софт // Все права защищены. Эта программа и сопроводительные материалы предоставляются // в соответствии с условиями лицензии Attribution 4.0 International (CC BY 4.0) // Текст лицензии доступен по ссылке: diff --git a/SSL/src/InformationRegisters/ОбновлениеКлючейДоступаКДанным/Forms/ОбновлениеДоступаНаУровнеЗаписей/Module.bsl b/SSL/src/InformationRegisters/ОбновлениеКлючейДоступаКДанным/Forms/ОбновлениеДоступаНаУровнеЗаписей/Module.bsl index 9c83d9ee7..1519ed29f 100644 --- a/SSL/src/InformationRegisters/ОбновлениеКлючейДоступаКДанным/Forms/ОбновлениеДоступаНаУровнеЗаписей/Module.bsl +++ b/SSL/src/InformationRegisters/ОбновлениеКлючейДоступаКДанным/Forms/ОбновлениеДоступаНаУровнеЗаписей/Module.bsl @@ -1,5 +1,5 @@ /////////////////////////////////////////////////////////////////////////////////////////////////////// -// Copyright (c) 2024, ООО 1С-Софт +// Copyright (c) 2025, ООО 1С-Софт // Все права защищены. Эта программа и сопроводительные материалы предоставляются // в соответствии с условиями лицензии Attribution 4.0 International (CC BY 4.0) // Текст лицензии доступен по ссылке: @@ -25,6 +25,8 @@ НавигационнаяСсылка = "e1cib/app/РегистрСведений.ОбновлениеКлючейДоступаКДанным.Форма.ОбновлениеДоступаНаУровнеЗаписей"; + УправлениеДоступомСлужебный.ПроверитьОграничениеДоступаОтключено(); + ПериодОбновленияПрогресса = 3; АвтообновлениеПрогресса = Не Параметры.ВыключитьАвтообновлениеПрогресса; ПоказыватьКоличествоЭлементов = Истина; diff --git a/SSL/src/InformationRegisters/ОбновлениеКлючейДоступаКДанным/Forms/ОбновлениеДоступаРучноеУправление/Module.bsl b/SSL/src/InformationRegisters/ОбновлениеКлючейДоступаКДанным/Forms/ОбновлениеДоступаРучноеУправление/Module.bsl index 5bea36507..2ba522f19 100644 --- a/SSL/src/InformationRegisters/ОбновлениеКлючейДоступаКДанным/Forms/ОбновлениеДоступаРучноеУправление/Module.bsl +++ b/SSL/src/InformationRegisters/ОбновлениеКлючейДоступаКДанным/Forms/ОбновлениеДоступаРучноеУправление/Module.bsl @@ -1,5 +1,5 @@ /////////////////////////////////////////////////////////////////////////////////////////////////////// -// Copyright (c) 2024, ООО 1С-Софт +// Copyright (c) 2025, ООО 1С-Софт // Все права защищены. Эта программа и сопроводительные материалы предоставляются // в соответствии с условиями лицензии Attribution 4.0 International (CC BY 4.0) // Текст лицензии доступен по ссылке: diff --git a/SSL/src/InformationRegisters/ОбновлениеКлючейДоступаКДанным/Forms/ФормаЗаписи/Module.bsl b/SSL/src/InformationRegisters/ОбновлениеКлючейДоступаКДанным/Forms/ФормаЗаписи/Module.bsl index adf927676..428c8d40f 100644 --- a/SSL/src/InformationRegisters/ОбновлениеКлючейДоступаКДанным/Forms/ФормаЗаписи/Module.bsl +++ b/SSL/src/InformationRegisters/ОбновлениеКлючейДоступаКДанным/Forms/ФормаЗаписи/Module.bsl @@ -1,5 +1,5 @@ /////////////////////////////////////////////////////////////////////////////////////////////////////// -// Copyright (c) 2024, ООО 1С-Софт +// Copyright (c) 2025, ООО 1С-Софт // Все права защищены. Эта программа и сопроводительные материалы предоставляются // в соответствии с условиями лицензии Attribution 4.0 International (CC BY 4.0) // Текст лицензии доступен по ссылке: diff --git a/SSL/src/InformationRegisters/ОбновлениеКлючейДоступаКДанным/Forms/ФормаСписка/Module.bsl b/SSL/src/InformationRegisters/ОбновлениеКлючейДоступаКДанным/Forms/ФормаСписка/Module.bsl index 8d7a0315b..d5b52706b 100644 --- a/SSL/src/InformationRegisters/ОбновлениеКлючейДоступаКДанным/Forms/ФормаСписка/Module.bsl +++ b/SSL/src/InformationRegisters/ОбновлениеКлючейДоступаКДанным/Forms/ФормаСписка/Module.bsl @@ -1,5 +1,5 @@ /////////////////////////////////////////////////////////////////////////////////////////////////////// -// Copyright (c) 2024, ООО 1С-Софт +// Copyright (c) 2025, ООО 1С-Софт // Все права защищены. Эта программа и сопроводительные материалы предоставляются // в соответствии с условиями лицензии Attribution 4.0 International (CC BY 4.0) // Текст лицензии доступен по ссылке: diff --git a/SSL/src/InformationRegisters/ОбновлениеКлючейДоступаПользователей/Forms/ФормаЗаписи/Module.bsl b/SSL/src/InformationRegisters/ОбновлениеКлючейДоступаПользователей/Forms/ФормаЗаписи/Module.bsl index b495275ed..255063bdb 100644 --- a/SSL/src/InformationRegisters/ОбновлениеКлючейДоступаПользователей/Forms/ФормаЗаписи/Module.bsl +++ b/SSL/src/InformationRegisters/ОбновлениеКлючейДоступаПользователей/Forms/ФормаЗаписи/Module.bsl @@ -1,5 +1,5 @@ /////////////////////////////////////////////////////////////////////////////////////////////////////// -// Copyright (c) 2024, ООО 1С-Софт +// Copyright (c) 2025, ООО 1С-Софт // Все права защищены. Эта программа и сопроводительные материалы предоставляются // в соответствии с условиями лицензии Attribution 4.0 International (CC BY 4.0) // Текст лицензии доступен по ссылке: diff --git a/SSL/src/InformationRegisters/ОбновлениеКлючейДоступаПользователей/Forms/ФормаСписка/Module.bsl b/SSL/src/InformationRegisters/ОбновлениеКлючейДоступаПользователей/Forms/ФормаСписка/Module.bsl index 8d7a0315b..d5b52706b 100644 --- a/SSL/src/InformationRegisters/ОбновлениеКлючейДоступаПользователей/Forms/ФормаСписка/Module.bsl +++ b/SSL/src/InformationRegisters/ОбновлениеКлючейДоступаПользователей/Forms/ФормаСписка/Module.bsl @@ -1,5 +1,5 @@ /////////////////////////////////////////////////////////////////////////////////////////////////////// -// Copyright (c) 2024, ООО 1С-Софт +// Copyright (c) 2025, ООО 1С-Софт // Все права защищены. Эта программа и сопроводительные материалы предоставляются // в соответствии с условиями лицензии Attribution 4.0 International (CC BY 4.0) // Текст лицензии доступен по ссылке: diff --git a/SSL/src/InformationRegisters/ОбновлениеКлючейДоступаТекущиеЗадания/Forms/ФормаЗаписи/Module.bsl b/SSL/src/InformationRegisters/ОбновлениеКлючейДоступаТекущиеЗадания/Forms/ФормаЗаписи/Module.bsl index 00fa69d3f..55c2c57ed 100644 --- a/SSL/src/InformationRegisters/ОбновлениеКлючейДоступаТекущиеЗадания/Forms/ФормаЗаписи/Module.bsl +++ b/SSL/src/InformationRegisters/ОбновлениеКлючейДоступаТекущиеЗадания/Forms/ФормаЗаписи/Module.bsl @@ -1,5 +1,5 @@ /////////////////////////////////////////////////////////////////////////////////////////////////////// -// Copyright (c) 2024, ООО 1С-Софт +// Copyright (c) 2025, ООО 1С-Софт // Все права защищены. Эта программа и сопроводительные материалы предоставляются // в соответствии с условиями лицензии Attribution 4.0 International (CC BY 4.0) // Текст лицензии доступен по ссылке: diff --git a/SSL/src/InformationRegisters/ОбновлениеКлючейДоступаТекущиеЗадания/Forms/ФормаСписка/Module.bsl b/SSL/src/InformationRegisters/ОбновлениеКлючейДоступаТекущиеЗадания/Forms/ФормаСписка/Module.bsl index 5f5f34c65..562a257d2 100644 --- a/SSL/src/InformationRegisters/ОбновлениеКлючейДоступаТекущиеЗадания/Forms/ФормаСписка/Module.bsl +++ b/SSL/src/InformationRegisters/ОбновлениеКлючейДоступаТекущиеЗадания/Forms/ФормаСписка/Module.bsl @@ -1,5 +1,5 @@ /////////////////////////////////////////////////////////////////////////////////////////////////////// -// Copyright (c) 2024, ООО 1С-Софт +// Copyright (c) 2025, ООО 1С-Софт // Все права защищены. Эта программа и сопроводительные материалы предоставляются // в соответствии с условиями лицензии Attribution 4.0 International (CC BY 4.0) // Текст лицензии доступен по ссылке: diff --git a/SSL/src/InformationRegisters/ОбработчикиОбновления/Forms/ПерезапускОтложенногоОбновления/Module.bsl b/SSL/src/InformationRegisters/ОбработчикиОбновления/Forms/ПерезапускОтложенногоОбновления/Module.bsl index fc1ce0268..e0d998289 100644 --- a/SSL/src/InformationRegisters/ОбработчикиОбновления/Forms/ПерезапускОтложенногоОбновления/Module.bsl +++ b/SSL/src/InformationRegisters/ОбработчикиОбновления/Forms/ПерезапускОтложенногоОбновления/Module.bsl @@ -1,5 +1,5 @@ /////////////////////////////////////////////////////////////////////////////////////////////////////// -// Copyright (c) 2024, ООО 1С-Софт +// Copyright (c) 2025, ООО 1С-Софт // Все права защищены. Эта программа и сопроводительные материалы предоставляются // в соответствии с условиями лицензии Attribution 4.0 International (CC BY 4.0) // Текст лицензии доступен по ссылке: diff --git a/SSL/src/InformationRegisters/ОбработчикиОбновления/Forms/ФормаВыбора/Module.bsl b/SSL/src/InformationRegisters/ОбработчикиОбновления/Forms/ФормаВыбора/Module.bsl index 8eea46e59..e648097ea 100644 --- a/SSL/src/InformationRegisters/ОбработчикиОбновления/Forms/ФормаВыбора/Module.bsl +++ b/SSL/src/InformationRegisters/ОбработчикиОбновления/Forms/ФормаВыбора/Module.bsl @@ -1,5 +1,5 @@ /////////////////////////////////////////////////////////////////////////////////////////////////////// -// Copyright (c) 2024, ООО 1С-Софт +// Copyright (c) 2025, ООО 1С-Софт // Все права защищены. Эта программа и сопроводительные материалы предоставляются // в соответствии с условиями лицензии Attribution 4.0 International (CC BY 4.0) // Текст лицензии доступен по ссылке: diff --git a/SSL/src/InformationRegisters/ОбработчикиОбновления/Forms/ФормаЗаписи/Module.bsl b/SSL/src/InformationRegisters/ОбработчикиОбновления/Forms/ФормаЗаписи/Module.bsl index 6e651be39..e9dac2221 100644 --- a/SSL/src/InformationRegisters/ОбработчикиОбновления/Forms/ФормаЗаписи/Module.bsl +++ b/SSL/src/InformationRegisters/ОбработчикиОбновления/Forms/ФормаЗаписи/Module.bsl @@ -1,5 +1,5 @@ /////////////////////////////////////////////////////////////////////////////////////////////////////// -// Copyright (c) 2024, ООО 1С-Софт +// Copyright (c) 2025, ООО 1С-Софт // Все права защищены. Эта программа и сопроводительные материалы предоставляются // в соответствии с условиями лицензии Attribution 4.0 International (CC BY 4.0) // Текст лицензии доступен по ссылке: diff --git a/SSL/src/InformationRegisters/ОбработчикиОбновления/Forms/ФормаСписка/Module.bsl b/SSL/src/InformationRegisters/ОбработчикиОбновления/Forms/ФормаСписка/Module.bsl index 93e0479cb..cd7cfe323 100644 --- a/SSL/src/InformationRegisters/ОбработчикиОбновления/Forms/ФормаСписка/Module.bsl +++ b/SSL/src/InformationRegisters/ОбработчикиОбновления/Forms/ФормаСписка/Module.bsl @@ -1,5 +1,5 @@ /////////////////////////////////////////////////////////////////////////////////////////////////////// -// Copyright (c) 2024, ООО 1С-Софт +// Copyright (c) 2025, ООО 1С-Софт // Все права защищены. Эта программа и сопроводительные материалы предоставляются // в соответствии с условиями лицензии Attribution 4.0 International (CC BY 4.0) // Текст лицензии доступен по ссылке: diff --git a/SSL/src/InformationRegisters/ОбработчикиСобытийСинхронизацииДанных/ManagerModule.bsl b/SSL/src/InformationRegisters/ОбработчикиСобытийСинхронизацииДанных/ManagerModule.bsl index 566e29f2e..6a7b7becf 100644 --- a/SSL/src/InformationRegisters/ОбработчикиСобытийСинхронизацииДанных/ManagerModule.bsl +++ b/SSL/src/InformationRegisters/ОбработчикиСобытийСинхронизацииДанных/ManagerModule.bsl @@ -1,5 +1,5 @@ /////////////////////////////////////////////////////////////////////////////////////////////////////// -// Copyright (c) 2024, ООО 1С-Софт +// Copyright (c) 2025, ООО 1С-Софт // Все права защищены. Эта программа и сопроводительные материалы предоставляются // в соответствии с условиями лицензии Attribution 4.0 International (CC BY 4.0) // Текст лицензии доступен по ссылке: diff --git a/SSL/src/InformationRegisters/ОбщиеНастройкиУзловИнформационныхБаз/ManagerModule.bsl b/SSL/src/InformationRegisters/ОбщиеНастройкиУзловИнформационныхБаз/ManagerModule.bsl index 115c0a905..fee78706c 100644 --- a/SSL/src/InformationRegisters/ОбщиеНастройкиУзловИнформационныхБаз/ManagerModule.bsl +++ b/SSL/src/InformationRegisters/ОбщиеНастройкиУзловИнформационныхБаз/ManagerModule.bsl @@ -1,5 +1,5 @@ /////////////////////////////////////////////////////////////////////////////////////////////////////// -// Copyright (c) 2024, ООО 1С-Софт +// Copyright (c) 2025, ООО 1С-Софт // Все права защищены. Эта программа и сопроводительные материалы предоставляются // в соответствии с условиями лицензии Attribution 4.0 International (CC BY 4.0) // Текст лицензии доступен по ссылке: diff --git a/SSL/src/InformationRegisters/ОбщиеПоставляемыеМакетыПечати/ManagerModule.bsl b/SSL/src/InformationRegisters/ОбщиеПоставляемыеМакетыПечати/ManagerModule.bsl index f3e448d5e..bdfc9b01f 100644 --- a/SSL/src/InformationRegisters/ОбщиеПоставляемыеМакетыПечати/ManagerModule.bsl +++ b/SSL/src/InformationRegisters/ОбщиеПоставляемыеМакетыПечати/ManagerModule.bsl @@ -1,5 +1,5 @@ /////////////////////////////////////////////////////////////////////////////////////////////////////// -// Copyright (c) 2024, ООО 1С-Софт +// Copyright (c) 2025, ООО 1С-Софт // Все права защищены. Эта программа и сопроводительные материалы предоставляются // в соответствии с условиями лицензии Attribution 4.0 International (CC BY 4.0) // Текст лицензии доступен по ссылке: diff --git a/SSL/src/InformationRegisters/ОбъектыНезарегистрированныеПриЗацикливании/Forms/ФормаЗаписи/Module.bsl b/SSL/src/InformationRegisters/ОбъектыНезарегистрированныеПриЗацикливании/Forms/ФормаЗаписи/Module.bsl index ecf717ef1..2039e7ee1 100644 --- a/SSL/src/InformationRegisters/ОбъектыНезарегистрированныеПриЗацикливании/Forms/ФормаЗаписи/Module.bsl +++ b/SSL/src/InformationRegisters/ОбъектыНезарегистрированныеПриЗацикливании/Forms/ФормаЗаписи/Module.bsl @@ -1,5 +1,5 @@ /////////////////////////////////////////////////////////////////////////////////////////////////////// -// Copyright (c) 2024, ООО 1С-Софт +// Copyright (c) 2025, ООО 1С-Софт // Все права защищены. Эта программа и сопроводительные материалы предоставляются // в соответствии с условиями лицензии Attribution 4.0 International (CC BY 4.0) // Текст лицензии доступен по ссылке: diff --git a/SSL/src/InformationRegisters/ОбъектыНезарегистрированныеПриЗацикливании/Forms/ФормаСписка/Module.bsl b/SSL/src/InformationRegisters/ОбъектыНезарегистрированныеПриЗацикливании/Forms/ФормаСписка/Module.bsl index 79ad34fc7..7e94ea967 100644 --- a/SSL/src/InformationRegisters/ОбъектыНезарегистрированныеПриЗацикливании/Forms/ФормаСписка/Module.bsl +++ b/SSL/src/InformationRegisters/ОбъектыНезарегистрированныеПриЗацикливании/Forms/ФормаСписка/Module.bsl @@ -1,5 +1,5 @@ /////////////////////////////////////////////////////////////////////////////////////////////////////// -// Copyright (c) 2024, ООО 1С-Софт +// Copyright (c) 2025, ООО 1С-Софт // Все права защищены. Эта программа и сопроводительные материалы предоставляются // в соответствии с условиями лицензии Attribution 4.0 International (CC BY 4.0) // Текст лицензии доступен по ссылке: diff --git a/SSL/src/InformationRegisters/ОбъектыНезарегистрированныеПриЗацикливании/ManagerModule.bsl b/SSL/src/InformationRegisters/ОбъектыНезарегистрированныеПриЗацикливании/ManagerModule.bsl index 3e9a9c034..e13e010b2 100644 --- a/SSL/src/InformationRegisters/ОбъектыНезарегистрированныеПриЗацикливании/ManagerModule.bsl +++ b/SSL/src/InformationRegisters/ОбъектыНезарегистрированныеПриЗацикливании/ManagerModule.bsl @@ -1,5 +1,5 @@ /////////////////////////////////////////////////////////////////////////////////////////////////////// -// Copyright (c) 2024, ООО 1С-Софт +// Copyright (c) 2025, ООО 1С-Софт // Все права защищены. Эта программа и сопроводительные материалы предоставляются // в соответствии с условиями лицензии Attribution 4.0 International (CC BY 4.0) // Текст лицензии доступен по ссылке: @@ -99,10 +99,33 @@ КонецЕсли; - Запись = РегистрыСведений.ОбъектыНезарегистрированныеПриЗацикливании.СоздатьМенеджерЗаписи(); - ЗаполнитьЗначенияСвойств(Запись, Параметры, "УзелИнформационнойБазы,Объект,КлючРегистраСведений"); - Запись.Прочитать(); - Запись.Удалить(); + НачатьТранзакцию(); + + Попытка + БлокировкаДанных = Новый БлокировкаДанных; + ЭлементБлокировкиДанных = БлокировкаДанных.Добавить("РегистрСведений.ОбъектыНезарегистрированныеПриЗацикливании"); + ЭлементБлокировкиДанных.УстановитьЗначение("УзелИнформационнойБазы", Параметры.УзелИнформационнойБазы); + ЭлементБлокировкиДанных.УстановитьЗначение("Объект", Параметры.Объект); + ЭлементБлокировкиДанных.УстановитьЗначение("КлючРегистраСведений", Параметры.КлючРегистраСведений); + ЭлементБлокировкиДанных.Режим = РежимБлокировкиДанных.Исключительный; + БлокировкаДанных.Заблокировать(); + + Запись = РегистрыСведений.ОбъектыНезарегистрированныеПриЗацикливании.СоздатьМенеджерЗаписи(); + ЗаполнитьЗначенияСвойств(Запись, Параметры, "УзелИнформационнойБазы,Объект,КлючРегистраСведений"); + Запись.Прочитать(); + Запись.Удалить(); + + ЗафиксироватьТранзакцию(); + Исключение + ОтменитьТранзакцию(); + + СообщениеОбОшибке = ОбработкаОшибок.ПодробноеПредставлениеОшибки(ИнформацияОбОшибке()); + + Событие = НСтр("ru = 'Контроль зацикливания.Удаление записи'", ОбщегоНазначения.КодОсновногоЯзыка()); + + ЗаписьЖурналаРегистрации(Событие, УровеньЖурналаРегистрации.Ошибка, + Метаданные.РегистрыСведений.ОбъектыНезарегистрированныеПриЗацикливании, , СообщениеОбОшибке); + КонецПопытки; КонецПроцедуры diff --git a/SSL/src/InformationRegisters/ОперацииСтатистики/ManagerModule.bsl b/SSL/src/InformationRegisters/ОперацииСтатистики/ManagerModule.bsl index 3afed69d8..dd07b6edf 100644 --- a/SSL/src/InformationRegisters/ОперацииСтатистики/ManagerModule.bsl +++ b/SSL/src/InformationRegisters/ОперацииСтатистики/ManagerModule.bsl @@ -1,5 +1,5 @@ /////////////////////////////////////////////////////////////////////////////////////////////////////// -// Copyright (c) 2024, ООО 1С-Софт +// Copyright (c) 2025, ООО 1С-Софт // Все права защищены. Эта программа и сопроводительные материалы предоставляются // в соответствии с условиями лицензии Attribution 4.0 International (CC BY 4.0) // Текст лицензии доступен по ссылке: diff --git a/SSL/src/InformationRegisters/ОповещенияПользователейСертификатов/ManagerModule.bsl b/SSL/src/InformationRegisters/ОповещенияПользователейСертификатов/ManagerModule.bsl index 564d14aff..ade6ddcbd 100644 --- a/SSL/src/InformationRegisters/ОповещенияПользователейСертификатов/ManagerModule.bsl +++ b/SSL/src/InformationRegisters/ОповещенияПользователейСертификатов/ManagerModule.bsl @@ -1,5 +1,5 @@ /////////////////////////////////////////////////////////////////////////////////////////////////////// -// Copyright (c) 2024, ООО 1С-Софт +// Copyright (c) 2025, ООО 1С-Софт // Все права защищены. Эта программа и сопроводительные материалы предоставляются // в соответствии с условиями лицензии Attribution 4.0 International (CC BY 4.0) // Текст лицензии доступен по ссылке: diff --git a/SSL/src/InformationRegisters/ОповещенияПользователейСертификатов/RecordSetModule.bsl b/SSL/src/InformationRegisters/ОповещенияПользователейСертификатов/RecordSetModule.bsl index e42edc27f..c27879947 100644 --- a/SSL/src/InformationRegisters/ОповещенияПользователейСертификатов/RecordSetModule.bsl +++ b/SSL/src/InformationRegisters/ОповещенияПользователейСертификатов/RecordSetModule.bsl @@ -1,5 +1,5 @@ /////////////////////////////////////////////////////////////////////////////////////////////////////// -// Copyright (c) 2024, ООО 1С-Софт +// Copyright (c) 2025, ООО 1С-Софт // Все права защищены. Эта программа и сопроводительные материалы предоставляются // в соответствии с условиями лицензии Attribution 4.0 International (CC BY 4.0) // Текст лицензии доступен по ссылке: diff --git a/SSL/src/InformationRegisters/ОсновныеПечатныеФормыКонтрагентов/ManagerModule.bsl b/SSL/src/InformationRegisters/ОсновныеПечатныеФормыКонтрагентов/ManagerModule.bsl index badd12d56..e54485da7 100644 --- a/SSL/src/InformationRegisters/ОсновныеПечатныеФормыКонтрагентов/ManagerModule.bsl +++ b/SSL/src/InformationRegisters/ОсновныеПечатныеФормыКонтрагентов/ManagerModule.bsl @@ -1,5 +1,5 @@ /////////////////////////////////////////////////////////////////////////////////////////////////////// -// Copyright (c) 2024, ООО 1С-Софт +// Copyright (c) 2025, ООО 1С-Софт // Все права защищены. Эта программа и сопроводительные материалы предоставляются // в соответствии с условиями лицензии Attribution 4.0 International (CC BY 4.0) // Текст лицензии доступен по ссылке: diff --git a/SSL/src/InformationRegisters/ОсновныеПечатныеФормыОбъектов/ManagerModule.bsl b/SSL/src/InformationRegisters/ОсновныеПечатныеФормыОбъектов/ManagerModule.bsl index 54320f2ec..c5694a2ae 100644 --- a/SSL/src/InformationRegisters/ОсновныеПечатныеФормыОбъектов/ManagerModule.bsl +++ b/SSL/src/InformationRegisters/ОсновныеПечатныеФормыОбъектов/ManagerModule.bsl @@ -1,5 +1,5 @@ /////////////////////////////////////////////////////////////////////////////////////////////////////// -// Copyright (c) 2024, ООО 1С-Софт +// Copyright (c) 2025, ООО 1С-Софт // Все права защищены. Эта программа и сопроводительные материалы предоставляются // в соответствии с условиями лицензии Attribution 4.0 International (CC BY 4.0) // Текст лицензии доступен по ссылке: diff --git a/SSL/src/InformationRegisters/ОтправленныеСерверныеОповещения/Forms/ФормаЗаписи/Module.bsl b/SSL/src/InformationRegisters/ОтправленныеСерверныеОповещения/Forms/ФормаЗаписи/Module.bsl index c2eeb0bdb..b6890296c 100644 --- a/SSL/src/InformationRegisters/ОтправленныеСерверныеОповещения/Forms/ФормаЗаписи/Module.bsl +++ b/SSL/src/InformationRegisters/ОтправленныеСерверныеОповещения/Forms/ФормаЗаписи/Module.bsl @@ -1,5 +1,5 @@ /////////////////////////////////////////////////////////////////////////////////////////////////////// -// Copyright (c) 2024, ООО 1С-Софт +// Copyright (c) 2025, ООО 1С-Софт // Все права защищены. Эта программа и сопроводительные материалы предоставляются // в соответствии с условиями лицензии Attribution 4.0 International (CC BY 4.0) // Текст лицензии доступен по ссылке: diff --git a/SSL/src/InformationRegisters/ОтправленныеСерверныеОповещения/Forms/ФормаСписка/Module.bsl b/SSL/src/InformationRegisters/ОтправленныеСерверныеОповещения/Forms/ФормаСписка/Module.bsl index dbd000120..20d8cb24e 100644 --- a/SSL/src/InformationRegisters/ОтправленныеСерверныеОповещения/Forms/ФормаСписка/Module.bsl +++ b/SSL/src/InformationRegisters/ОтправленныеСерверныеОповещения/Forms/ФормаСписка/Module.bsl @@ -1,5 +1,5 @@ /////////////////////////////////////////////////////////////////////////////////////////////////////// -// Copyright (c) 2024, ООО 1С-Софт +// Copyright (c) 2025, ООО 1С-Софт // Все права защищены. Эта программа и сопроводительные материалы предоставляются // в соответствии с условиями лицензии Attribution 4.0 International (CC BY 4.0) // Текст лицензии доступен по ссылке: @@ -11,8 +11,10 @@ &НаСервере Процедура ПриСозданииНаСервере(Отказ, СтандартнаяОбработка) - Элементы.ОбластьДанныхВспомогательныеДанные.Видимость = - ОбщегоНазначения.РазделениеВключено(); + ОбщегоНазначенияКлиентСервер.УстановитьСвойствоЭлементаФормы(Элементы, + "ОбластьДанныхВспомогательныеДанные", + "Видимость", + ОбщегоНазначения.РазделениеВключено()); ТолькоПросмотр = Истина; diff --git a/SSL/src/InformationRegisters/ПакетыДляОтправки/ManagerModule.bsl b/SSL/src/InformationRegisters/ПакетыДляОтправки/ManagerModule.bsl index 6982df38e..8d748a1e0 100644 --- a/SSL/src/InformationRegisters/ПакетыДляОтправки/ManagerModule.bsl +++ b/SSL/src/InformationRegisters/ПакетыДляОтправки/ManagerModule.bsl @@ -1,5 +1,5 @@ /////////////////////////////////////////////////////////////////////////////////////////////////////// -// Copyright (c) 2024, ООО 1С-Софт +// Copyright (c) 2025, ООО 1С-Софт // Все права защищены. Эта программа и сопроводительные материалы предоставляются // в соответствии с условиями лицензии Attribution 4.0 International (CC BY 4.0) // Текст лицензии доступен по ссылке: diff --git a/SSL/src/InformationRegisters/ПараметрыОграниченияДоступа/Forms/ФормаЗаписи/Module.bsl b/SSL/src/InformationRegisters/ПараметрыОграниченияДоступа/Forms/ФормаЗаписи/Module.bsl index f858020b3..ec3816244 100644 --- a/SSL/src/InformationRegisters/ПараметрыОграниченияДоступа/Forms/ФормаЗаписи/Module.bsl +++ b/SSL/src/InformationRegisters/ПараметрыОграниченияДоступа/Forms/ФормаЗаписи/Module.bsl @@ -1,5 +1,5 @@ /////////////////////////////////////////////////////////////////////////////////////////////////////// -// Copyright (c) 2024, ООО 1С-Софт +// Copyright (c) 2025, ООО 1С-Софт // Все права защищены. Эта программа и сопроводительные материалы предоставляются // в соответствии с условиями лицензии Attribution 4.0 International (CC BY 4.0) // Текст лицензии доступен по ссылке: diff --git a/SSL/src/InformationRegisters/ПараметрыОграниченияДоступа/Forms/ФормаСписка/Module.bsl b/SSL/src/InformationRegisters/ПараметрыОграниченияДоступа/Forms/ФормаСписка/Module.bsl index 00fa69d3f..55c2c57ed 100644 --- a/SSL/src/InformationRegisters/ПараметрыОграниченияДоступа/Forms/ФормаСписка/Module.bsl +++ b/SSL/src/InformationRegisters/ПараметрыОграниченияДоступа/Forms/ФормаСписка/Module.bsl @@ -1,5 +1,5 @@ /////////////////////////////////////////////////////////////////////////////////////////////////////// -// Copyright (c) 2024, ООО 1С-Софт +// Copyright (c) 2025, ООО 1С-Софт // Все права защищены. Эта программа и сопроводительные материалы предоставляются // в соответствии с условиями лицензии Attribution 4.0 International (CC BY 4.0) // Текст лицензии доступен по ссылке: diff --git a/SSL/src/InformationRegisters/ПараметрыОграниченияДоступа/ManagerModule.bsl b/SSL/src/InformationRegisters/ПараметрыОграниченияДоступа/ManagerModule.bsl index 57181e675..d553ef497 100644 --- a/SSL/src/InformationRegisters/ПараметрыОграниченияДоступа/ManagerModule.bsl +++ b/SSL/src/InformationRegisters/ПараметрыОграниченияДоступа/ManagerModule.bsl @@ -1,5 +1,5 @@ /////////////////////////////////////////////////////////////////////////////////////////////////////// -// Copyright (c) 2024, ООО 1С-Софт +// Copyright (c) 2025, ООО 1С-Софт // Все права защищены. Эта программа и сопроводительные материалы предоставляются // в соответствии с условиями лицензии Attribution 4.0 International (CC BY 4.0) // Текст лицензии доступен по ссылке: @@ -21,6 +21,12 @@ // Процедура ОбновитьДанныеРегистра(ЕстьИзменения = Неопределено, ОбновитьБезУчетаИспользования = Ложь) Экспорт + Если УправлениеДоступомСлужебный.ОтключеноОграничениеНаУровнеЗаписей() Тогда + УправлениеДоступомСлужебный.ОчиститьРегистрСведений( + Метаданные.РегистрыСведений.ПараметрыОграниченияДоступа.ПолноеИмя(), ЕстьИзменения); + Возврат; + КонецЕсли; + Если Не ОбновитьБезУчетаИспользования И Не УправлениеДоступомСлужебный.ОграничиватьДоступНаУровнеЗаписейУниверсально() Тогда Возврат; @@ -155,18 +161,23 @@ // Процедура ОбновитьВерсиюТекстовОграниченияДоступа(ЕстьИзменения = Неопределено) Экспорт + ИмяПараметра = "СтандартныеПодсистемы.УправлениеДоступом.ВерсияТекстовОграниченияДоступа"; + + Если УправлениеДоступомСлужебный.ОтключеноОграничениеНаУровнеЗаписей() Тогда + СтандартныеПодсистемыСервер.УдалитьПараметрРаботыПрограммы(ИмяПараметра, ЕстьИзменения); + Возврат; + КонецЕсли; + ВерсияТекстов = ВерсияТекстовОграниченияДоступа(); НачатьТранзакцию(); Попытка ЕстьТекущиеИзменения = Ложь; - СтандартныеПодсистемыСервер.ОбновитьПараметрРаботыПрограммы( - "СтандартныеПодсистемы.УправлениеДоступом.ВерсияТекстовОграниченияДоступа", + СтандартныеПодсистемыСервер.ОбновитьПараметрРаботыПрограммы(ИмяПараметра, ВерсияТекстов, ЕстьТекущиеИзменения); - СтандартныеПодсистемыСервер.ДобавитьИзмененияПараметраРаботыПрограммы( - "СтандартныеПодсистемы.УправлениеДоступом.ВерсияТекстовОграниченияДоступа", + СтандартныеПодсистемыСервер.ДобавитьИзмененияПараметраРаботыПрограммы(ИмяПараметра, ?(ЕстьТекущиеИзменения, Новый ФиксированнаяСтруктура("ЕстьИзменения", Истина), Новый ФиксированнаяСтруктура()) ); @@ -188,6 +199,10 @@ // Процедура ЗапланироватьОбновлениеДоступаПоИзменениямКонфигурации() Экспорт + Если УправлениеДоступомСлужебный.ОтключеноОграничениеНаУровнеЗаписей() Тогда + Возврат; + КонецЕсли; + УстановитьПривилегированныйРежим(Истина); Если УправлениеДоступомСлужебный.ОграничиватьДоступНаУровнеЗаписейУниверсально() Тогда diff --git a/SSL/src/InformationRegisters/ПараметрыРаботыВерсийРасширений/Forms/ФормаЗаписи/Module.bsl b/SSL/src/InformationRegisters/ПараметрыРаботыВерсийРасширений/Forms/ФормаЗаписи/Module.bsl index 55fdb4ad5..a4420ec05 100644 --- a/SSL/src/InformationRegisters/ПараметрыРаботыВерсийРасширений/Forms/ФормаЗаписи/Module.bsl +++ b/SSL/src/InformationRegisters/ПараметрыРаботыВерсийРасширений/Forms/ФормаЗаписи/Module.bsl @@ -1,5 +1,5 @@ /////////////////////////////////////////////////////////////////////////////////////////////////////// -// Copyright (c) 2024, ООО 1С-Софт +// Copyright (c) 2025, ООО 1С-Софт // Все права защищены. Эта программа и сопроводительные материалы предоставляются // в соответствии с условиями лицензии Attribution 4.0 International (CC BY 4.0) // Текст лицензии доступен по ссылке: diff --git a/SSL/src/InformationRegisters/ПараметрыРаботыВерсийРасширений/Forms/ФормаСписка/Module.bsl b/SSL/src/InformationRegisters/ПараметрыРаботыВерсийРасширений/Forms/ФормаСписка/Module.bsl index 55fdb4ad5..a4420ec05 100644 --- a/SSL/src/InformationRegisters/ПараметрыРаботыВерсийРасширений/Forms/ФормаСписка/Module.bsl +++ b/SSL/src/InformationRegisters/ПараметрыРаботыВерсийРасширений/Forms/ФормаСписка/Module.bsl @@ -1,5 +1,5 @@ /////////////////////////////////////////////////////////////////////////////////////////////////////// -// Copyright (c) 2024, ООО 1С-Софт +// Copyright (c) 2025, ООО 1С-Софт // Все права защищены. Эта программа и сопроводительные материалы предоставляются // в соответствии с условиями лицензии Attribution 4.0 International (CC BY 4.0) // Текст лицензии доступен по ссылке: diff --git a/SSL/src/InformationRegisters/ПараметрыРаботыВерсийРасширений/ManagerModule.bsl b/SSL/src/InformationRegisters/ПараметрыРаботыВерсийРасширений/ManagerModule.bsl index f5a33002d..cbb074555 100644 --- a/SSL/src/InformationRegisters/ПараметрыРаботыВерсийРасширений/ManagerModule.bsl +++ b/SSL/src/InformationRegisters/ПараметрыРаботыВерсийРасширений/ManagerModule.bsl @@ -1,5 +1,5 @@ /////////////////////////////////////////////////////////////////////////////////////////////////////// -// Copyright (c) 2024, ООО 1С-Софт +// Copyright (c) 2025, ООО 1С-Софт // Все права защищены. Эта программа и сопроводительные материалы предоставляются // в соответствии с условиями лицензии Attribution 4.0 International (CC BY 4.0) // Текст лицензии доступен по ссылке: @@ -160,6 +160,52 @@ КонецПроцедуры +// См. СтандартныеПодсистемыСервер.УдалитьПараметрРаботыРасширения. +Процедура УдалитьПараметрРаботыРасширения(ИмяПараметра, БезУчетаВерсииРасширений = Ложь, ЕстьИзменения = Ложь) Экспорт + + ПользователиСлужебный.ПроверитьБезопасныйРежимОтключен( + "РегистрыСведений.ПараметрыРаботыВерсийРасширений.УдалитьПараметрРаботыРасширения"); + + Запрос = Новый Запрос; + Запрос.УстановитьПараметр("ИмяПараметра", ИмяПараметра); + Запрос.Текст = + "ВЫБРАТЬ + | ПараметрыРаботыВерсийРасширений.ХранилищеПараметра КАК ХранилищеПараметра + |ИЗ + | РегистрСведений.ПараметрыРаботыВерсийРасширений КАК ПараметрыРаботыВерсийРасширений + |ГДЕ + | ПараметрыРаботыВерсийРасширений.ИмяПараметра = &ИмяПараметра + | И &ОтборВерсии"; + + Если БезУчетаВерсииРасширений <> Неопределено Тогда + ВерсияРасширений = ?(БезУчетаВерсииРасширений, + Справочники.ВерсииРасширений.ПустаяСсылка(), ПараметрыСеанса.ВерсияРасширений); + Запрос.УстановитьПараметр("ВерсияРасширений", ВерсияРасширений); + Запрос.Текст = СтрЗаменить(Запрос.Текст, "&ОтборВерсии", + "ПараметрыРаботыВерсийРасширений.ВерсияРасширений = &ВерсияРасширений"); + Иначе + Запрос.Текст = СтрЗаменить(Запрос.Текст, "&ОтборВерсии", "ИСТИНА"); + КонецЕсли; + + Выборка = Запрос.Выполнить().Выбрать(); + Если Не Выборка.Следующий() Тогда + Возврат; + КонецЕсли; + + НаборЗаписей = РегистрыСведений.ПараметрыРаботыПрограммы.СлужебныйНаборЗаписей( + РегистрыСведений.ПараметрыРаботыВерсийРасширений); + + НаборЗаписей.Отбор.ИмяПараметра.Установить(ИмяПараметра); + Если БезУчетаВерсииРасширений <> Неопределено Тогда + НаборЗаписей.Отбор.ВерсияРасширений.Установить(ВерсияРасширений); + КонецЕсли; + + НаборЗаписей.Записать(); + + ЕстьИзменения = Истина; + +КонецПроцедуры + // Вызывает принудительное заполнение всех параметров работы для текущей версии расширений. Процедура ЗаполнитьВсеПараметрыРаботыРасширений() Экспорт @@ -1107,21 +1153,14 @@ Возврат; КонецЕсли; - ТекущийСеанс = ПолучитьТекущийСеансИнформационнойБазы(); - - НаименованиеЗадания = - НСтр("ru = 'Автозапуск'", ОбщегоНазначения.КодОсновногоЯзыка()) - + ": " + Метаданные.РегламентныеЗадания.ЗаполнениеПараметровРаботыРасширений.Синоним + " (" - + СтроковыеФункцииКлиентСервер.ПодставитьПараметрыВСтроку( - НСтр("ru = 'из сеанса %1 от %2'", ОбщегоНазначения.КодОсновногоЯзыка()), - Формат(ТекущийСеанс.НомерСеанса, "ЧГ="), - Формат(ТекущийСеанс.НачалоСеанса, "ДЛФ=DT")) + ")"; - ЗаписьЖурналаРегистрации(ИмяСобытияЗаполненияПараметров(), УровеньЖурналаРегистрации.Информация,,, Комментарий); - ФоновоеЗадание = РасширенияКонфигурации.ВыполнитьФоновоеЗаданиеСРасширениямиБазыДанных( - Метаданные.РегламентныеЗадания.ЗаполнениеПараметровРаботыРасширений.ИмяМетода,,, НаименованиеЗадания); + ПараметрыВыполненияЗадания = РегламентныеЗаданияСервер.НовыеПараметрыВыполненияЗадания(); + ПараметрыВыполненияЗадания.ЭтоЗапускВручную = Ложь; + ФоновоеЗадание = РегламентныеЗаданияСервер.ВыполнитьЗадание( + Метаданные.РегламентныеЗадания.ЗаполнениеПараметровРаботыРасширений, + ПараметрыВыполненияЗадания); Если ОжидатьЗавершения И ФоновоеЗадание <> Неопределено diff --git a/SSL/src/InformationRegisters/ПараметрыРаботыПрограммы/Forms/ФормаЗаписи/Module.bsl b/SSL/src/InformationRegisters/ПараметрыРаботыПрограммы/Forms/ФормаЗаписи/Module.bsl index 55fdb4ad5..a4420ec05 100644 --- a/SSL/src/InformationRegisters/ПараметрыРаботыПрограммы/Forms/ФормаЗаписи/Module.bsl +++ b/SSL/src/InformationRegisters/ПараметрыРаботыПрограммы/Forms/ФормаЗаписи/Module.bsl @@ -1,5 +1,5 @@ /////////////////////////////////////////////////////////////////////////////////////////////////////// -// Copyright (c) 2024, ООО 1С-Софт +// Copyright (c) 2025, ООО 1С-Софт // Все права защищены. Эта программа и сопроводительные материалы предоставляются // в соответствии с условиями лицензии Attribution 4.0 International (CC BY 4.0) // Текст лицензии доступен по ссылке: diff --git a/SSL/src/InformationRegisters/ПараметрыРаботыПрограммы/Forms/ФормаСписка/Module.bsl b/SSL/src/InformationRegisters/ПараметрыРаботыПрограммы/Forms/ФормаСписка/Module.bsl index 55fdb4ad5..a4420ec05 100644 --- a/SSL/src/InformationRegisters/ПараметрыРаботыПрограммы/Forms/ФормаСписка/Module.bsl +++ b/SSL/src/InformationRegisters/ПараметрыРаботыПрограммы/Forms/ФормаСписка/Module.bsl @@ -1,5 +1,5 @@ /////////////////////////////////////////////////////////////////////////////////////////////////////// -// Copyright (c) 2024, ООО 1С-Софт +// Copyright (c) 2025, ООО 1С-Софт // Все права защищены. Эта программа и сопроводительные материалы предоставляются // в соответствии с условиями лицензии Attribution 4.0 International (CC BY 4.0) // Текст лицензии доступен по ссылке: diff --git a/SSL/src/InformationRegisters/ПараметрыРаботыПрограммы/ManagerModule.bsl b/SSL/src/InformationRegisters/ПараметрыРаботыПрограммы/ManagerModule.bsl index 9dc8f473d..f3c71fbbb 100644 --- a/SSL/src/InformationRegisters/ПараметрыРаботыПрограммы/ManagerModule.bsl +++ b/SSL/src/InformationRegisters/ПараметрыРаботыПрограммы/ManagerModule.bsl @@ -1,5 +1,5 @@ /////////////////////////////////////////////////////////////////////////////////////////////////////// -// Copyright (c) 2024, ООО 1С-Софт +// Copyright (c) 2025, ООО 1С-Софт // Все права защищены. Эта программа и сопроводительные материалы предоставляются // в соответствии с условиями лицензии Attribution 4.0 International (CC BY 4.0) // Текст лицензии доступен по ссылке: @@ -139,6 +139,54 @@ КонецПроцедуры +// См. СтандартныеПодсистемыСервер.УдалитьПараметрРаботыПрограммы. +Процедура УдалитьПараметрРаботыПрограммы(ИмяПараметра, ЕстьИзменения) Экспорт + + ПользователиСлужебный.ПроверитьБезопасныйРежимОтключен( + "РегистрыСведений.ПараметрыРаботыПрограммы.УдалитьПараметрРаботыПрограммы"); + + ИмяПараметраХраненияИзменений = ИмяПараметра + УточнениеИмениПараметраХраненияИзменений(); + + Запрос = Новый Запрос; + Запрос.УстановитьПараметр("ИмяПараметра", ИмяПараметра); + Запрос.УстановитьПараметр("ИмяПараметраХраненияИзменений", ИмяПараметраХраненияИзменений); + Запрос.Текст = + "ВЫБРАТЬ ПЕРВЫЕ 1 + | ИСТИНА КАК ЗначениеИстина + |ИЗ + | РегистрСведений.ПараметрыРаботыПрограммы КАК ПараметрыРаботыПрограммы + |ГДЕ + | ПараметрыРаботыПрограммы.ИмяПараметра = &ИмяПараметра + |; + | + |//////////////////////////////////////////////////////////////////////////////// + |ВЫБРАТЬ ПЕРВЫЕ 1 + | ИСТИНА КАК ЗначениеИстина + |ИЗ + | РегистрСведений.ПараметрыРаботыПрограммы КАК ПараметрыРаботыПрограммы + |ГДЕ + | ПараметрыРаботыПрограммы.ИмяПараметра = &ИмяПараметраХраненияИзменений"; + + РезультатыЗапроса = Запрос.ВыполнитьПакет(); + + Выборка = РезультатыЗапроса[0].Выбрать(); + Если Выборка.Следующий() Тогда + НаборЗаписей = СлужебныйНаборЗаписей(РегистрыСведений.ПараметрыРаботыПрограммы); + НаборЗаписей.Отбор.ИмяПараметра.Установить(ИмяПараметра); + НаборЗаписей.Записать(); + ЕстьИзменения = Истина; + КонецЕсли; + + Выборка = РезультатыЗапроса[1].Выбрать(); + Если Выборка.Следующий() Тогда + НаборЗаписей = СлужебныйНаборЗаписей(РегистрыСведений.ПараметрыРаботыПрограммы); + НаборЗаписей.Отбор.ИмяПараметра.Установить(ИмяПараметраХраненияИзменений); + НаборЗаписей.Записать(); + ЕстьИзменения = Истина; + КонецЕсли; + +КонецПроцедуры + // См. СтандартныеПодсистемыСервер.ИзмененияПараметраРаботыПрограммы. Функция ИзмененияПараметраРаботыПрограммы(ИмяПараметра) Экспорт diff --git a/SSL/src/InformationRegisters/ПериодическиеСерверныеОповещения/Forms/ФормаЗаписи/Module.bsl b/SSL/src/InformationRegisters/ПериодическиеСерверныеОповещения/Forms/ФормаЗаписи/Module.bsl index 130900a33..27abe5834 100644 --- a/SSL/src/InformationRegisters/ПериодическиеСерверныеОповещения/Forms/ФормаЗаписи/Module.bsl +++ b/SSL/src/InformationRegisters/ПериодическиеСерверныеОповещения/Forms/ФормаЗаписи/Module.bsl @@ -1,5 +1,5 @@ /////////////////////////////////////////////////////////////////////////////////////////////////////// -// Copyright (c) 2024, ООО 1С-Софт +// Copyright (c) 2025, ООО 1С-Софт // Все права защищены. Эта программа и сопроводительные материалы предоставляются // в соответствии с условиями лицензии Attribution 4.0 International (CC BY 4.0) // Текст лицензии доступен по ссылке: diff --git a/SSL/src/InformationRegisters/ПериодическиеСерверныеОповещения/Forms/ФормаСписка/Module.bsl b/SSL/src/InformationRegisters/ПериодическиеСерверныеОповещения/Forms/ФормаСписка/Module.bsl index 00fa69d3f..20d8cb24e 100644 --- a/SSL/src/InformationRegisters/ПериодическиеСерверныеОповещения/Forms/ФормаСписка/Module.bsl +++ b/SSL/src/InformationRegisters/ПериодическиеСерверныеОповещения/Forms/ФормаСписка/Module.bsl @@ -1,5 +1,5 @@ /////////////////////////////////////////////////////////////////////////////////////////////////////// -// Copyright (c) 2024, ООО 1С-Софт +// Copyright (c) 2025, ООО 1С-Софт // Все права защищены. Эта программа и сопроводительные материалы предоставляются // в соответствии с условиями лицензии Attribution 4.0 International (CC BY 4.0) // Текст лицензии доступен по ссылке: @@ -11,6 +11,11 @@ &НаСервере Процедура ПриСозданииНаСервере(Отказ, СтандартнаяОбработка) + ОбщегоНазначенияКлиентСервер.УстановитьСвойствоЭлементаФормы(Элементы, + "ОбластьДанныхВспомогательныеДанные", + "Видимость", + ОбщегоНазначения.РазделениеВключено()); + ТолькоПросмотр = Истина; КонецПроцедуры diff --git a/SSL/src/InformationRegisters/ПериодыНерабочихДнейКалендаря/ManagerModule.bsl b/SSL/src/InformationRegisters/ПериодыНерабочихДнейКалендаря/ManagerModule.bsl index 23138c34a..fc51cd058 100644 --- a/SSL/src/InformationRegisters/ПериодыНерабочихДнейКалендаря/ManagerModule.bsl +++ b/SSL/src/InformationRegisters/ПериодыНерабочихДнейКалендаря/ManagerModule.bsl @@ -1,5 +1,5 @@ /////////////////////////////////////////////////////////////////////////////////////////////////////// -// Copyright (c) 2024, ООО 1С-Софт +// Copyright (c) 2025, ООО 1С-Софт // Все права защищены. Эта программа и сопроводительные материалы предоставляются // в соответствии с условиями лицензии Attribution 4.0 International (CC BY 4.0) // Текст лицензии доступен по ссылке: diff --git a/SSL/src/InformationRegisters/ПользовательскиеМакетыПечати/Forms/ВыбораРежимаОткрытияМакета/Module.bsl b/SSL/src/InformationRegisters/ПользовательскиеМакетыПечати/Forms/ВыбораРежимаОткрытияМакета/Module.bsl index eb5da0e8f..4d3f7de22 100644 --- a/SSL/src/InformationRegisters/ПользовательскиеМакетыПечати/Forms/ВыбораРежимаОткрытияМакета/Module.bsl +++ b/SSL/src/InformationRegisters/ПользовательскиеМакетыПечати/Forms/ВыбораРежимаОткрытияМакета/Module.bsl @@ -1,5 +1,5 @@ /////////////////////////////////////////////////////////////////////////////////////////////////////// -// Copyright (c) 2024, ООО 1С-Софт +// Copyright (c) 2025, ООО 1С-Софт // Все права защищены. Эта программа и сопроводительные материалы предоставляются // в соответствии с условиями лицензии Attribution 4.0 International (CC BY 4.0) // Текст лицензии доступен по ссылке: diff --git a/SSL/src/InformationRegisters/ПользовательскиеМакетыПечати/Forms/МакетыПечатныхФорм/Module.bsl b/SSL/src/InformationRegisters/ПользовательскиеМакетыПечати/Forms/МакетыПечатныхФорм/Module.bsl index 491335ab6..dc3aeaacc 100644 --- a/SSL/src/InformationRegisters/ПользовательскиеМакетыПечати/Forms/МакетыПечатныхФорм/Module.bsl +++ b/SSL/src/InformationRegisters/ПользовательскиеМакетыПечати/Forms/МакетыПечатныхФорм/Module.bsl @@ -1,5 +1,5 @@ /////////////////////////////////////////////////////////////////////////////////////////////////////// -// Copyright (c) 2024, ООО 1С-Софт +// Copyright (c) 2025, ООО 1С-Софт // Все права защищены. Эта программа и сопроводительные материалы предоставляются // в соответствии с условиями лицензии Attribution 4.0 International (CC BY 4.0) // Текст лицензии доступен по ссылке: diff --git a/SSL/src/InformationRegisters/ПользовательскиеМакетыПечати/Forms/ПроверкаПечатныхФорм/Module.bsl b/SSL/src/InformationRegisters/ПользовательскиеМакетыПечати/Forms/ПроверкаПечатныхФорм/Module.bsl index 0b94863a9..ac63821ef 100644 --- a/SSL/src/InformationRegisters/ПользовательскиеМакетыПечати/Forms/ПроверкаПечатныхФорм/Module.bsl +++ b/SSL/src/InformationRegisters/ПользовательскиеМакетыПечати/Forms/ПроверкаПечатныхФорм/Module.bsl @@ -1,5 +1,5 @@ /////////////////////////////////////////////////////////////////////////////////////////////////////// -// Copyright (c) 2024, ООО 1С-Софт +// Copyright (c) 2025, ООО 1С-Софт // Все права защищены. Эта программа и сопроводительные материалы предоставляются // в соответствии с условиями лицензии Attribution 4.0 International (CC BY 4.0) // Текст лицензии доступен по ссылке: diff --git a/SSL/src/InformationRegisters/ПользовательскиеМакетыПечати/Forms/РедактированиеМакета/Module.bsl b/SSL/src/InformationRegisters/ПользовательскиеМакетыПечати/Forms/РедактированиеМакета/Module.bsl index 0afb2d7cc..de8fdd67c 100644 --- a/SSL/src/InformationRegisters/ПользовательскиеМакетыПечати/Forms/РедактированиеМакета/Module.bsl +++ b/SSL/src/InformationRegisters/ПользовательскиеМакетыПечати/Forms/РедактированиеМакета/Module.bsl @@ -1,5 +1,5 @@ /////////////////////////////////////////////////////////////////////////////////////////////////////// -// Copyright (c) 2024, ООО 1С-Софт +// Copyright (c) 2025, ООО 1С-Софт // Все права защищены. Эта программа и сопроводительные материалы предоставляются // в соответствии с условиями лицензии Attribution 4.0 International (CC BY 4.0) // Текст лицензии доступен по ссылке: diff --git a/SSL/src/InformationRegisters/ПользовательскиеМакетыПечати/ManagerModule.bsl b/SSL/src/InformationRegisters/ПользовательскиеМакетыПечати/ManagerModule.bsl index f91e51e8f..1d72dc185 100644 --- a/SSL/src/InformationRegisters/ПользовательскиеМакетыПечати/ManagerModule.bsl +++ b/SSL/src/InformationRegisters/ПользовательскиеМакетыПечати/ManagerModule.bsl @@ -1,5 +1,5 @@ /////////////////////////////////////////////////////////////////////////////////////////////////////// -// Copyright (c) 2024, ООО 1С-Софт +// Copyright (c) 2025, ООО 1С-Софт // Все права защищены. Эта программа и сопроводительные материалы предоставляются // в соответствии с условиями лицензии Attribution 4.0 International (CC BY 4.0) // Текст лицензии доступен по ссылке: diff --git a/SSL/src/InformationRegisters/ПользовательскиеНастройкиДоступаКОбработкам/ManagerModule.bsl b/SSL/src/InformationRegisters/ПользовательскиеНастройкиДоступаКОбработкам/ManagerModule.bsl index dd16779ec..ee02e1394 100644 --- a/SSL/src/InformationRegisters/ПользовательскиеНастройкиДоступаКОбработкам/ManagerModule.bsl +++ b/SSL/src/InformationRegisters/ПользовательскиеНастройкиДоступаКОбработкам/ManagerModule.bsl @@ -1,5 +1,5 @@ /////////////////////////////////////////////////////////////////////////////////////////////////////// -// Copyright (c) 2024, ООО 1С-Софт +// Copyright (c) 2025, ООО 1С-Софт // Все права защищены. Эта программа и сопроводительные материалы предоставляются // в соответствии с условиями лицензии Attribution 4.0 International (CC BY 4.0) // Текст лицензии доступен по ссылке: diff --git a/SSL/src/InformationRegisters/ПоставляемыеМакетыПечати/ManagerModule.bsl b/SSL/src/InformationRegisters/ПоставляемыеМакетыПечати/ManagerModule.bsl index 0b0a87e9d..9d40e65e4 100644 --- a/SSL/src/InformationRegisters/ПоставляемыеМакетыПечати/ManagerModule.bsl +++ b/SSL/src/InformationRegisters/ПоставляемыеМакетыПечати/ManagerModule.bsl @@ -1,5 +1,5 @@ /////////////////////////////////////////////////////////////////////////////////////////////////////// -// Copyright (c) 2024, ООО 1С-Софт +// Copyright (c) 2025, ООО 1С-Софт // Все права защищены. Эта программа и сопроводительные материалы предоставляются // в соответствии с условиями лицензии Attribution 4.0 International (CC BY 4.0) // Текст лицензии доступен по ссылке: diff --git a/SSL/src/InformationRegisters/ПраваРолей/Forms/ФормаЗаписи/Module.bsl b/SSL/src/InformationRegisters/ПраваРолей/Forms/ФормаЗаписи/Module.bsl index d74397252..d63d5282c 100644 --- a/SSL/src/InformationRegisters/ПраваРолей/Forms/ФормаЗаписи/Module.bsl +++ b/SSL/src/InformationRegisters/ПраваРолей/Forms/ФормаЗаписи/Module.bsl @@ -1,5 +1,5 @@ /////////////////////////////////////////////////////////////////////////////////////////////////////// -// Copyright (c) 2024, ООО 1С-Софт +// Copyright (c) 2025, ООО 1С-Софт // Все права защищены. Эта программа и сопроводительные материалы предоставляются // в соответствии с условиями лицензии Attribution 4.0 International (CC BY 4.0) // Текст лицензии доступен по ссылке: diff --git a/SSL/src/InformationRegisters/ПраваРолей/Forms/ФормаСписка/Module.bsl b/SSL/src/InformationRegisters/ПраваРолей/Forms/ФормаСписка/Module.bsl index 4c274572f..090bef3a2 100644 --- a/SSL/src/InformationRegisters/ПраваРолей/Forms/ФормаСписка/Module.bsl +++ b/SSL/src/InformationRegisters/ПраваРолей/Forms/ФормаСписка/Module.bsl @@ -1,5 +1,5 @@ /////////////////////////////////////////////////////////////////////////////////////////////////////// -// Copyright (c) 2024, ООО 1С-Софт +// Copyright (c) 2025, ООО 1С-Софт // Все права защищены. Эта программа и сопроводительные материалы предоставляются // в соответствии с условиями лицензии Attribution 4.0 International (CC BY 4.0) // Текст лицензии доступен по ссылке: diff --git a/SSL/src/InformationRegisters/ПраваРолей/ManagerModule.bsl b/SSL/src/InformationRegisters/ПраваРолей/ManagerModule.bsl index c08d884aa..2393102ca 100644 --- a/SSL/src/InformationRegisters/ПраваРолей/ManagerModule.bsl +++ b/SSL/src/InformationRegisters/ПраваРолей/ManagerModule.bsl @@ -1,5 +1,5 @@ /////////////////////////////////////////////////////////////////////////////////////////////////////// -// Copyright (c) 2024, ООО 1С-Софт +// Copyright (c) 2025, ООО 1С-Софт // Все права защищены. Эта программа и сопроводительные материалы предоставляются // в соответствии с условиями лицензии Attribution 4.0 International (CC BY 4.0) // Текст лицензии доступен по ссылке: diff --git a/SSL/src/InformationRegisters/ПравилаДляОбменаДанными/Forms/ЗагрузитьПравилаСинхронизацииДанных/Help/ru.html b/SSL/src/InformationRegisters/ПравилаДляОбменаДанными/Forms/ЗагрузитьПравилаСинхронизацииДанных/Help/ru.html index 5a6eba835..0e3d3bb45 100644 --- a/SSL/src/InformationRegisters/ПравилаДляОбменаДанными/Forms/ЗагрузитьПравилаСинхронизацииДанных/Help/ru.html +++ b/SSL/src/InformationRegisters/ПравилаДляОбменаДанными/Forms/ЗагрузитьПравилаСинхронизацииДанных/Help/ru.html @@ -2,52 +2,69 @@

                      Предназначена для контроля и замены комплекта правил для синхронизации данных.

                      Открывается по кнопке Загрузить комплект правил из настройки синхронизации данных.

                      Настройка синхронизации данных по умолчанию производится в соответствии с так называемыми Типовыми правилами обмена. Правила обмена состоят из правил конвертации объектов и правил регистрации объектов.

                      -

                      Правила конвертации объектов можно открыть из настройки синхронизации данных по команде Еще - Загрузить правила конвертации объектов. Правила конвертации данных используются при синхронизации данных двух программ. 

                      +

                      Правила конвертации объектов можно открыть из настройки синхронизации данных по команде Еще - Загрузить правила конвертации объектов. Правила конвертации данных используются при синхронизации данных двух приложений. 

                      Правила регистрации объектов можно открыть из настройки синхронизации данных по команде Еще - Загрузить правила регистрации объектов.

                      Источник правил

                      -
                      • Для стандартной синхронизации данных между типовыми программами используются типовые правила Из конфигурации.Однако в ряде случаев необходимо использовать правила Из файла на компьютере (например, если синхронизация ведется между базами с нетиповыми программами). -
                      • С помощью переключателя можно установить, откуда брать правила регистрации объектов: +
                        • Для стандартной синхронизации данных между типовыми приложениями используются типовые правила Из конфигурации.Однако в ряде случаев необходимо использовать правила Из файла на компьютере (например, если синхронизация ведется между нетиповыми приложениями). +
                        • +
                        • С помощью переключателя можно установить, откуда брать правила регистрации объектов:
                          • Из конфигурации (выбраны по умолчанию). -
                          • -
                            Из файла на компьютере.
                        • -
                          Нажмите Загрузить, укажите путь к файлу. Использование правил, загруженных из файла, может привести к ошибкам при переходе на новую версию программы.
                          -
                        • +
                        • +
                        • +
                          Из файла на компьютере.
                      • +
                      • +
                        Нажмите Загрузить, укажите путь к файлу. Использование правил, загруженных из файла, может привести к ошибкам при переходе на новую версию приложения.
                        +
                      • +
                      • Ниже выводится наименование правил, которые в данный момент используются.

                      Информация о комплекте правил

                      Для контроля выводится информация о правилах:

                      • Предупреждение о возможности возникновения ошибок при использовании правил из внешнего файла;
                        -
                      • -
                        Правила регистрации объектов этой информационной базы - указывается версия и дата создания правил;
                        -
                      • +
                      • +
                      • +
                        Правила регистрации объектов этого приложения - указывается версия и дата создания правил;
                        +
                      • +
                      • -
                        Правила конвертации объектов этой информационной базы - указывается версия и дата создания правил;
                        -
                      • Правила конвертации корреспондента - указывается версия и дата создания правил.

                      Режим отладки

                      +
                      Правила конвертации объектов этого приложения - указывается версия и дата создания правил;
                      + +
                    • Правила конвертации корреспондента - указывается версия и дата создания правил.

                    Режим отладки

                    • Если переключатель установлен в положение Из файла на компьютере, становится доступным режим отладки. 
                      -
                    • +
                    • +
                    • Нажмите ссылку Настройка режима отладки. 
                      -
                    • +
                    • +
                    • Установите флажок Включить режим отладки. После этого становятся доступными следующие настройки:
                      • Подключить внешнюю обработку для отладки выгрузки – указывается файл внешней обработки, содержащей отладочный модуль обработчиков выгрузки, сформированный в конфигурации "Конвертация данных". В клиент-серверном режиме работы указывается путь на сервере.
                        -
                      • +
                      • +
                      • Подключить внешнюю обработку для отладки загрузки – указывается файл внешней обработки, содержащей отладочный модуль обработчиков загрузки, сформированный в конфигурации "Конвертация данных". В клиент-серверном режиме работы указывается путь на сервере.
                        -
                      • +
                      • +
                      • Режим протоколирования обмена данными – если включено, то в процессе обмена данными возникающие события и ошибки будут записываться в указанный файл. Если файл не задан, то сообщения будут выводиться в Журнал регистрации.
                        -
                      • +
                      • +
                      • Не останавливать выполнение обмена данными при возникновении ошибки – если установлено, то выполнение синхронизации данных не будет остановлено при возникновении какой-либо ошибки. Обмен данными завершится до конца с выводом отладочных сообщений в файл протокола обмена или журнал регистрации.

                    Загрузка правил

                    • Установите переключатель в положение Из файла на компьютере.
                      -
                    • +
                    • +
                    • Нажмите Загрузить.
                      -
                    • +
                    • +
                    • Укажите путь к файлу с правилами.

                    Выгрузка правил

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

                    Замена типовых правил конвертации объектов правилами из внешнего файла

                    + +
                  • +
                    Для этого нажмите Еще - Сохранить правила в файл. Выберите путь к файлу на компьютере или на сетевом диске, наименование проставляется приложением по умолчанию. Нажмите Сохранить.

                  Замена типовых правил конвертации объектов правилами из внешнего файла

                  • Установите значение переключателя в положение Из файла на компьютере и по кнопке Загрузить выберите файл правил на компьютере или в сетевой папке. -
                  • Обратите внимание, что загружены корректные правила, подходящие для используемых версий программы-источника и программы-приемника.Для этого выводится Информация о комплекте правил, где указано, от какой даты эти правила. -
                  • Нажмите на кнопку Записать и закрыть. Загруженные правила будут применены немедленно.

                  Примечание: правила конвертации объектов и правила регистрации объектов используются для всех однотипных синхронизаций данных (которые основываются на одном плане обмена; например: на базе плана обмена Полный настроено две синхронизации данных "Синхронизация с филиалом в Краснодаре" и "Синхронизация с представительством в Киеве"). Поэтому если в программе настроено несколько однотипных синхронизаций, то замену правил достаточно выполнить однократно (выбрав любую из настроенных синхронизаций данных).

                  \ No newline at end of file + +
                • Обратите внимание, что загружены корректные правила, подходящие для используемых версий приложения-источника и приложения-приемника.Для этого выводится Информация о комплекте правил, где указано, от какой даты эти правила. +
                • +
                • Нажмите на кнопку Записать и закрыть. Загруженные правила будут применены немедленно.
                • Примечание: правила конвертации объектов и правила регистрации объектов используются для всех однотипных синхронизаций данных (которые основываются на одном плане обмена; например: на базе плана обмена Полный настроено две синхронизации данных "Синхронизация с филиалом в Краснодаре" и "Синхронизация с представительством в Киеве"). Поэтому если в приложении настроено несколько однотипных синхронизаций, то замену правил достаточно выполнить однократно (выбрав любую из настроенных синхронизаций данных).

                  \ No newline at end of file diff --git a/SSL/src/InformationRegisters/ПравилаДляОбменаДанными/Forms/ЗагрузитьПравилаСинхронизацииДанных/Module.bsl b/SSL/src/InformationRegisters/ПравилаДляОбменаДанными/Forms/ЗагрузитьПравилаСинхронизацииДанных/Module.bsl index 6fbb4f363..2c20206b5 100644 --- a/SSL/src/InformationRegisters/ПравилаДляОбменаДанными/Forms/ЗагрузитьПравилаСинхронизацииДанных/Module.bsl +++ b/SSL/src/InformationRegisters/ПравилаДляОбменаДанными/Forms/ЗагрузитьПравилаСинхронизацииДанных/Module.bsl @@ -1,5 +1,5 @@ /////////////////////////////////////////////////////////////////////////////////////////////////////// -// Copyright (c) 2024, ООО 1С-Софт +// Copyright (c) 2025, ООО 1С-Софт // Все права защищены. Эта программа и сопроводительные материалы предоставляются // в соответствии с условиями лицензии Attribution 4.0 International (CC BY 4.0) // Текст лицензии доступен по ссылке: diff --git a/SSL/src/InformationRegisters/ПравилаДляОбменаДанными/Forms/ПравилаКонвертацииОбъектов/Help/ru.html b/SSL/src/InformationRegisters/ПравилаДляОбменаДанными/Forms/ПравилаКонвертацииОбъектов/Help/ru.html index 8621d083f..5b8a4ba0f 100644 --- a/SSL/src/InformationRegisters/ПравилаДляОбменаДанными/Forms/ПравилаКонвертацииОбъектов/Help/ru.html +++ b/SSL/src/InformationRegisters/ПравилаДляОбменаДанными/Forms/ПравилаКонвертацииОбъектов/Help/ru.html @@ -1,53 +1,70 @@ -

                  Предназначена для контроля и замены правил конвертации данных. Правила конвертации данных используются при синхронизации данных двух программ. 

                  +

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

                  Настройка синхронизации данных по умолчанию производится в соответствии с так называемыми Типовыми правилами обмена. Правила обмена состоят из правил конвертации объектов и правил регистрации объектов.

                  Правила конвертации объектов можно открыть из настройки синхронизации данных по команде Еще - Загрузить правила конвертации объектов.

                  Источник правил

                  -
                  • Для стандартной синхронизации данных между типовыми программами используются типовые правила из конфигурации (имя макета правил конвертации, из которого были получены типовые правила, указывается).Однако в ряде случаев необходимо использовать правила из файла (например, если синхронизация ведется между базами с нетиповыми программами). -
                  • +
                    • Для стандартной синхронизации данных между типовыми приложениями используются типовые правила из конфигурации (имя макета правил конвертации, из которого были получены типовые правила, указывается).Однако в ряде случаев необходимо использовать правила из файла (например, если синхронизация ведется между нетиповыми приложениями). +
                    • +
                    • С помощью переключателя можно установить, откуда брать правила регистрации объектов:

                      -
                    • +
                    • +
                    • Использовать типовые правила (по умолчанию).
                      -
                    • -
                      Загрузить из файла на компьютере. Использование правил, загруженных из файла, может привести к ошибкам при переходе на новую версию программы.
                      -
                    • +
                    • +
                    • +
                      Загрузить из файла на компьютере. Использование правил, загруженных из файла, может привести к ошибкам при переходе на новую версию приложения.
                      +
                    • +
                    • Ниже выводится наименование правил, которые в данный момент используются.

                    Информация о правилах

                    • Для контроля выводится информация о правилах:
                      • Предупреждение о возможности возникновения ошибок при использовании правил из внешнего файла;
                        -
                      • -
                        Правила конвертации этой информационной базы - указывается версия правил конвертации объектов и дата создания правил;
                        -
                      • Правила конвертации корреспондента - указывается версия правил конвертации объектов и дата создания правил.

                    Режим отладки

                    +
                  • +
                  • +
                    Правила конвертации этого приложения - указывается версия правил конвертации объектов и дата создания правил;
                    +
                  • +
                  • Правила конвертации приложения-корреспондента - указывается версия правил конвертации объектов и дата создания правил.

                  Режим отладки

                  • Если переключатель установлен в положение Загрузить из файла на компьютере, то можно использовать режим отладки.
                    -
                  • +
                  • +
                  • Для работы в этом режиме воспользуйтесь ссылкой Настройка режима отладки,
                    -
                  • +
                  • +
                  • Установите флажок Включить режим отладки.
                    -
                  • +
                  • +
                  • Становятся доступными следующие настройки:
                    • Подключить внешнюю обработку для отладки выгрузки – указывается файл внешней обработки, содержащей отладочный модуль обработчиков выгрузки, сформированный в конфигурации "Конвертация данных". В клиент-серверном режиме работы указывается путь на сервере.
                      -
                    • +
                    • +
                    • Подключить внешнюю обработку для отладки загрузки – указывается файл внешней обработки, содержащей отладочный модуль обработчиков загрузки, сформированный в конфигурации "Конвертация данных". В клиент-серверном режиме работы указывается путь на сервере.
                      -
                    • +
                    • +
                    • Режим протоколирования синхронизации данных – если включено, то в процессе обмена данными возникающие события и ошибки будут записываться в указанный файл. Если файл не задан, то сообщения будут выводиться в Журнал регистрации.
                      -
                    • +
                    • +
                    • Не останавливать выполнение обмена данными при возникновении ошибки – если установлено, то выполнение синхронизации данных не будет остановлено при возникновении какой-либо ошибки. Обмен данными завершится до конца с выводом отладочных сообщений в файл протокола обмена или журнал регистрации.

                  Загрузка правил

                  • Установите переключатель в положение Загрузить из файла на компьютере.
                    -
                  • +
                  • +
                  • Нажмите Загрузить.
                    -
                  • +
                  • +
                  • При необходимости укажите путь к файлу с правилами.

                  Выгрузка правил

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

                  Замена типовых правил конвертации объектов правилами из внешнего файла

                  + +
                • Выберите путь к файлу на компьютере или на сетевом диске, наименование проставляется приложением по умолчанию. Нажмите Сохранить.
                • Замена типовых правил конвертации объектов правилами из внешнего файла

                  • Установите переключатель в положение Загрузить из файла на компьютере и по кнопке Загрузить выберите файл правил на компьютере или в сетевой папке. -
                  • Обратите внимание, что загружены корректные правила, подходящие для используемых версий программы-источника и программы-приемника.Для этого выводится Информация о правилах, где указано, от какой даты эти правила. -
                  • Нажмите на кнопку Записать и закрыть. Загруженные правила будут применены немедленно.

                  Примечание: правила конвертации объектов и правила регистрации объектов используются для всех однотипных синхронизаций данных (которые основываются на одном плане обмена; например: на базе плана обмена Полный настроено две синхронизации данных "Синхронизация с филиалом в Краснодаре" и "Синхронизация с представительством в Киеве"). Поэтому если в программе настроено несколько однотипных синхронизаций, то замену правил достаточно выполнить однократно (выбрав любую из настроенных синхронизаций данных).

                  + +
                • Обратите внимание, что загружены корректные правила, подходящие для используемых версий приложения-источника и приложения-приемника.Для этого выводится Информация о правилах, где указано, от какой даты эти правила. +
                • +
                • Нажмите на кнопку Записать и закрыть. Загруженные правила будут применены немедленно.
                • Примечание: правила конвертации объектов и правила регистрации объектов используются для всех однотипных синхронизаций данных (которые основываются на одном плане обмена; например: на базе плана обмена Полный настроено две синхронизации данных "Синхронизация с филиалом в Краснодаре" и "Синхронизация с представительством в Киеве"). Поэтому если в приложении настроено несколько однотипных синхронизаций, то замену правил достаточно выполнить однократно (выбрав любую из настроенных синхронизаций данных).

                  См. также:

                  \ No newline at end of file diff --git a/SSL/src/InformationRegisters/ПравилаДляОбменаДанными/Forms/ПравилаКонвертацииОбъектов/Module.bsl b/SSL/src/InformationRegisters/ПравилаДляОбменаДанными/Forms/ПравилаКонвертацииОбъектов/Module.bsl index 71e5c1455..b32976e2d 100644 --- a/SSL/src/InformationRegisters/ПравилаДляОбменаДанными/Forms/ПравилаКонвертацииОбъектов/Module.bsl +++ b/SSL/src/InformationRegisters/ПравилаДляОбменаДанными/Forms/ПравилаКонвертацииОбъектов/Module.bsl @@ -1,5 +1,5 @@ /////////////////////////////////////////////////////////////////////////////////////////////////////// -// Copyright (c) 2024, ООО 1С-Софт +// Copyright (c) 2025, ООО 1С-Софт // Все права защищены. Эта программа и сопроводительные материалы предоставляются // в соответствии с условиями лицензии Attribution 4.0 International (CC BY 4.0) // Текст лицензии доступен по ссылке: diff --git a/SSL/src/InformationRegisters/ПравилаДляОбменаДанными/Forms/ПравилаРегистрацииОбъектов/Help/ru.html b/SSL/src/InformationRegisters/ПравилаДляОбменаДанными/Forms/ПравилаРегистрацииОбъектов/Help/ru.html index 99b7738b0..79ecfc679 100644 --- a/SSL/src/InformationRegisters/ПравилаДляОбменаДанными/Forms/ПравилаРегистрацииОбъектов/Help/ru.html +++ b/SSL/src/InformationRegisters/ПравилаДляОбменаДанными/Forms/ПравилаРегистрацииОбъектов/Help/ru.html @@ -7,38 +7,48 @@
                  С помощью переключателя можно установить, откуда брать правила регистрации объектов:
                  • Использовать типовые правила (выбраны по умолчанию).
                    -
                  • -
                    Загрузить из файла на компьютере (только для целей отладки).
                • +
                • +
                • +
                  Загрузить из файла на компьютере (только для целей отладки).
                • +
                • Ниже выводится наименование правил, которые в данный момент используются.
                • Информация о правилах

                  • -
                    Для контроля выводится информация о правилах: полное наименование правил, версия программы, дата создания правил.

                  Загрузка правил

                  +
                  Для контроля выводится информация о правилах: полное наименование правил, версия приложения, дата создания правил.

                  Загрузка правил

                  • Установите переключатель в положение Загрузить из файла на компьютере.
                    -
                  • Нажмите Загрузить. -
                  • +
                  • +
                  • Нажмите Загрузить. +
                  • +
                  • При необходимости укажите путь к файлу с правилами.

                  Выгрузка правил

                  • При необходимости правила регистрации можно выгрузить в файл.
                    -
                  • +
                  • +
                  • Для этого нажмите Сохранить правила регистрации в файл,
                    -
                  • +
                  • +
                  • Выберите способ выгрузки:
                    • Обычным файлом;
                      -
                    • -
                      В архиве .zip.
                  • -
                    Выберите путь к файлу на компьютере или на сетевом диске, наименование проставляется программой по умолчанию. Нажмите Сохранить.

                  Замена типовых правил регистрации объектов правилами из внешнего файла

                  + +
                • +
                  В архиве .zip.
                • +
                • +
                  Выберите путь к файлу на компьютере или на сетевом диске, наименование проставляется приложением по умолчанию. Нажмите Сохранить.
                • Замена типовых правил регистрации объектов правилами из внешнего файла

                  • Установите значение переключателя в положение Загрузить из файла на компьютере и по кнопке Загрузить выберите файл правил на компьютере или в сетевой папке.
                    -
                  • +
                  • +
                  • Обратите внимание, что загружены корректные правила, подходящие для используемых версий конфигурации-источника и конфигурации-приемника. В поле Информация о правилах выводится дата создания правил и другая необходимая информация.
                    -
                  • +
                  • +
                  • Нажмите Записать и закрыть. Загруженные правила будут применены немедленно.
                  -

                  Примечание: правила регистрации объектов используются для всех однотипных синхронизаций данных (которые основываются на одном плане обмена; например: на базе плана обмена Полная синхронизация настроено два обмена "Синхронизация с филиалом в Краснодаре" и "Синхронизация с представительством в Киеве"). Поэтому если в программе настроено несколько однотипных синхронизаций, то замену правил достаточно выполнить однократно (выбрав любую из настроенных синхронизаций данных).

                  +

                  Примечание: правила регистрации объектов используются для всех однотипных синхронизаций данных (которые основываются на одном плане обмена; например: на базе плана обмена Полная синхронизация настроено два обмена "Синхронизация с филиалом в Краснодаре" и "Синхронизация с представительством в Киеве"). Поэтому если в приложении настроено несколько однотипных синхронизаций, то замену правил достаточно выполнить однократно (выбрав любую из настроенных синхронизаций данных).

                  См. также:

                  \ No newline at end of file diff --git a/SSL/src/InformationRegisters/ПравилаДляОбменаДанными/Forms/ПравилаРегистрацииОбъектов/Module.bsl b/SSL/src/InformationRegisters/ПравилаДляОбменаДанными/Forms/ПравилаРегистрацииОбъектов/Module.bsl index 6c98c0f52..1cede4c94 100644 --- a/SSL/src/InformationRegisters/ПравилаДляОбменаДанными/Forms/ПравилаРегистрацииОбъектов/Module.bsl +++ b/SSL/src/InformationRegisters/ПравилаДляОбменаДанными/Forms/ПравилаРегистрацииОбъектов/Module.bsl @@ -1,5 +1,5 @@ /////////////////////////////////////////////////////////////////////////////////////////////////////// -// Copyright (c) 2024, ООО 1С-Софт +// Copyright (c) 2025, ООО 1С-Софт // Все права защищены. Эта программа и сопроводительные материалы предоставляются // в соответствии с условиями лицензии Attribution 4.0 International (CC BY 4.0) // Текст лицензии доступен по ссылке: diff --git a/SSL/src/InformationRegisters/ПравилаДляОбменаДанными/Forms/ПроверкаСинхронизацииДанных/Module.bsl b/SSL/src/InformationRegisters/ПравилаДляОбменаДанными/Forms/ПроверкаСинхронизацииДанных/Module.bsl index 327a10e3d..261a229b3 100644 --- a/SSL/src/InformationRegisters/ПравилаДляОбменаДанными/Forms/ПроверкаСинхронизацииДанных/Module.bsl +++ b/SSL/src/InformationRegisters/ПравилаДляОбменаДанными/Forms/ПроверкаСинхронизацииДанных/Module.bsl @@ -1,5 +1,5 @@ /////////////////////////////////////////////////////////////////////////////////////////////////////// -// Copyright (c) 2024, ООО 1С-Софт +// Copyright (c) 2025, ООО 1С-Софт // Все права защищены. Эта программа и сопроводительные материалы предоставляются // в соответствии с условиями лицензии Attribution 4.0 International (CC BY 4.0) // Текст лицензии доступен по ссылке: diff --git a/SSL/src/InformationRegisters/ПравилаДляОбменаДанными/Forms/СообщениеОНеудачномОбновлении/Module.bsl b/SSL/src/InformationRegisters/ПравилаДляОбменаДанными/Forms/СообщениеОНеудачномОбновлении/Module.bsl index e95d38da8..1681a33a1 100644 --- a/SSL/src/InformationRegisters/ПравилаДляОбменаДанными/Forms/СообщениеОНеудачномОбновлении/Module.bsl +++ b/SSL/src/InformationRegisters/ПравилаДляОбменаДанными/Forms/СообщениеОНеудачномОбновлении/Module.bsl @@ -1,5 +1,5 @@ /////////////////////////////////////////////////////////////////////////////////////////////////////// -// Copyright (c) 2024, ООО 1С-Софт +// Copyright (c) 2025, ООО 1С-Софт // Все права защищены. Эта программа и сопроводительные материалы предоставляются // в соответствии с условиями лицензии Attribution 4.0 International (CC BY 4.0) // Текст лицензии доступен по ссылке: diff --git a/SSL/src/InformationRegisters/ПравилаДляОбменаДанными/Forms/ФормаСписка/Module.bsl b/SSL/src/InformationRegisters/ПравилаДляОбменаДанными/Forms/ФормаСписка/Module.bsl index 6c4ade974..fb30367c5 100644 --- a/SSL/src/InformationRegisters/ПравилаДляОбменаДанными/Forms/ФормаСписка/Module.bsl +++ b/SSL/src/InformationRegisters/ПравилаДляОбменаДанными/Forms/ФормаСписка/Module.bsl @@ -1,5 +1,5 @@ /////////////////////////////////////////////////////////////////////////////////////////////////////// -// Copyright (c) 2024, ООО 1С-Софт +// Copyright (c) 2025, ООО 1С-Софт // Все права защищены. Эта программа и сопроводительные материалы предоставляются // в соответствии с условиями лицензии Attribution 4.0 International (CC BY 4.0) // Текст лицензии доступен по ссылке: @@ -46,6 +46,13 @@ КонецПроцедуры +&НаКлиенте +Процедура ИспользоватьТиповыеПравила(Команда) + ИспользоватьТиповыеПравилаНаСервере(); + Элементы.Список.Обновить(); + ПоказатьОповещениеПользователя(НСтр("ru = 'Обновление правил успешно завершено.'")); +КонецПроцедуры + #КонецОбласти #Область СлужебныеПроцедурыИФункции @@ -59,26 +66,44 @@ КонецПроцедуры -&НаКлиенте -Процедура ИспользоватьТиповыеПравила(Команда) - ИспользоватьТиповыеПравилаНаСервере(); - Элементы.Список.Обновить(); - ПоказатьОповещениеПользователя(НСтр("ru = 'Обновление правил успешно завершено.'")); -КонецПроцедуры - &НаСервере Процедура ИспользоватьТиповыеПравилаНаСервере() Для Каждого Запись Из Элементы.Список.ВыделенныеСтроки Цикл - МенеджерЗаписи = РегистрыСведений.ПравилаДляОбменаДанными.СоздатьМенеджерЗаписи(); - ЗаполнитьЗначенияСвойств(МенеджерЗаписи, Запись); - МенеджерЗаписи.Прочитать(); - МенеджерЗаписи.ИсточникПравил = Перечисления.ИсточникиПравилДляОбменаДанными.МакетКонфигурации; - ЕстьОшибки = Ложь; - РегистрыСведений.ПравилаДляОбменаДанными.ЗагрузитьПравила(ЕстьОшибки, МенеджерЗаписи); - Если Не ЕстьОшибки Тогда - МенеджерЗаписи.Записать(); - КонецЕсли; + НачатьТранзакцию(); + + Попытка + БлокировкаДанных = Новый БлокировкаДанных; + ЭлементБлокировкиДанных = БлокировкаДанных.Добавить("РегистрСведений.ПравилаДляОбменаДанными"); + ЭлементБлокировкиДанных.УстановитьЗначение("ИмяПланаОбмена", Запись.ИмяПланаОбмена); + ЭлементБлокировкиДанных.УстановитьЗначение("ВидПравил", Запись.ВидПравил); + ЭлементБлокировкиДанных.Режим = РежимБлокировкиДанных.Исключительный; + БлокировкаДанных.Заблокировать(); + + МенеджерЗаписи = РегистрыСведений.ПравилаДляОбменаДанными.СоздатьМенеджерЗаписи(); + ЗаполнитьЗначенияСвойств(МенеджерЗаписи, Запись); + МенеджерЗаписи.Прочитать(); + МенеджерЗаписи.ИсточникПравил = Перечисления.ИсточникиПравилДляОбменаДанными.МакетКонфигурации; + + ЕстьОшибки = Ложь; + РегистрыСведений.ПравилаДляОбменаДанными.ЗагрузитьПравила(ЕстьОшибки, МенеджерЗаписи); + + Если ЕстьОшибки Тогда + ОтменитьТранзакцию(); + Иначе + МенеджерЗаписи.Записать(); + ЗафиксироватьТранзакцию(); + КонецЕсли; + Исключение + ОтменитьТранзакцию(); + + СообщениеОбОшибке = ОбработкаОшибок.ПодробноеПредставлениеОшибки(ИнформацияОбОшибке()); + + Событие = НСтр("ru = 'Обмен данными.Обновление правил'", ОбщегоНазначения.КодОсновногоЯзыка()); + + ЗаписьЖурналаРегистрации(Событие, УровеньЖурналаРегистрации.Ошибка, + Метаданные.РегистрыСведений.ПравилаДляОбменаДанными, , СообщениеОбОшибке); + КонецПопытки; КонецЦикла; ОбменДаннымиСлужебный.СброситьКэшМеханизмаРегистрацииОбъектов(); diff --git a/SSL/src/InformationRegisters/ПравилаДляОбменаДанными/Help/ru.html b/SSL/src/InformationRegisters/ПравилаДляОбменаДанными/Help/ru.html index 5171db104..4ee1b0ca0 100644 --- a/SSL/src/InformationRegisters/ПравилаДляОбменаДанными/Help/ru.html +++ b/SSL/src/InformationRegisters/ПравилаДляОбменаДанными/Help/ru.html @@ -1,63 +1,85 @@ -

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

                  -

                  Типовые правила обмена состоят из правил конвертации объектов и правил регистрации объектов. Правила конвертации данных используются при синхронизации данных двух программ. Правила регистрации предусмотрены для всех видов синхронизации данных. Комплект актуальных правил обмена публикуется на сайте технической поддержки http://users.v8.1c.ru. Исправительные версии правил обмена также публикуются на данном сайте.

                  +

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

                  +

                  Типовые правила обмена состоят из правил конвертации объектов и правил регистрации объектов. Правила конвертации данных используются при синхронизации данных двух приложений. Правила регистрации предусмотрены для всех видов синхронизации данных. Комплект актуальных правил обмена публикуется на сайте технической поддержки http://users.v8.1c.ru. Исправительные версии правил обмена также публикуются на данном сайте.

                  Контроль актуальности правил синхронизации

                  • При проверке актуальности правил необходимо обратить внимание на следующие контролируемые параметры:
                    • -
                      Номера релизов программы-источника и программы-приемника, для которых предназначены правила;
                      -
                    • -
                      дата создания правил.
                  • +
                    Номера релизов приложения-источника и приложения-приемника, для которых предназначены правила;
                    +
                  • +
                  • +
                    дата создания правил.
                  +
                • Контроль производится по следующим правилам:

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

                  +
                  определяется значение контролируемых параметров, которые загружены в приложение-источник;
                  + +
                • +
                  определяется значение контролируемых параметров, которые загружены в приложение-приемник;
                  +
                • +
                • +
                  Определяется значение контролируемых параметров, которые включены в поставку приложения-источника;
                  +
                • +
                • +
                  определяется значение контролируемых параметров, которые включены в поставку приложения-приемника.
                • +
                • +
                  После анализа всех этих правил выбираются те правила, дата создания которых является наиболее актуальной. При анализе правил необходимо обратить внимание на номера релизов конфигураций. Номера релизов конфигураций, указанные в правилах, должны обязательно соответствовать тем релизам конфигураций, между которыми настраивается синхронизация данных.
                • Контроль правил, загруженных в приложения

                  • Создайте новую синхронизацию данных, но не выполняйте ее.
                    -
                  • +
                  • +
                  • Откройте созданную настройку синхронизации данных.
                    -
                  • +
                  • +
                  • В меню Еще настройки синхронизации данных выполните команду Загрузить правила конвертации объектов.
                    -
                  • +
                  • +
                  • Проконтролируйте информацию о правилах конвертации данных.
                    -
                  • +
                  • +
                  • Затем выполните команду Еще - Загрузить правила регистрации объектов.
                    -
                  • +
                  • +
                  • Проконтролируйте информацию о правилах регистрации объектов.
                    -
                  • +
                  • +
                  • Аналогичным образом можно произвести анализ контролируемых параметров, которые загружены в приложение и для уже существующей настройки синхронизации данных. Например, для проверки правил регистрации объектов в существующей настройке синхронизации данных в подчиненном узле необходимо использовать команду Загрузить правила регистрации объектов.
                    -
                  • -
                    Для проверки правил синхронизации данных двух программ данные действия следует производить последовательно для программы-источника и для программы-приемника.

                  Контроль правил, входящих в поставку программ

                  + +
                • +
                  Для проверки правил синхронизации данных двух приложений данные действия следует производить последовательно для приложения-источника и для приложения-приемника.
                • Контроль правил, входящих в поставку приложений

                  • В окне Правила конвертации данных (Правила регистрации данных) с помощью переключателя выберите Из файла на компьютере. Выполните команду Загрузить.
                    -
                  • -
                    Выберите файл правил конвертации из комплекта поставки программы.
                    -
                  • -
                    Путь к файлу зависит от комплекта поставки программы. Обычно он находится в папке Обмены данными.
                    -
                  • +
                  • +
                  • +
                    Выберите файл правил конвертации из комплекта поставки приложения.
                    +
                  • +
                  • +
                    Путь к файлу зависит от комплекта поставки приложения. Обычно он находится в папке Обмены данными.
                    +
                  • +
                  • Проконтролируйте информацию о правилах.
                    -
                  • -
                    Данные действия также следует производить последовательно для обеих программ, которые участвуют в синхронизации данных.

                  Контроль правил из внешнего файла

                  + +
                • +
                  Данные действия также следует производить последовательно для обеих приложений, которые участвуют в синхронизации данных.
                • Контроль правил из внешнего файла

                  • Необходимо посмотреть информацию об этих правилах, затем сохранить копию используемых правил в файл с помощью кнопки Сохранить правила конвертации (регистрации) в файл.
                    -
                  • +
                  • +
                  • Установить переключатель в положение Использовать типовые правила.
                    -
                  • Посмотреть представленную информацию о правилах.

                  Принятие решений по результатам проверки 

                  + +
                • Посмотреть представленную информацию о правилах.
                • Принятие решений по результатам проверки 

                  • В результате проверки правил выбирается более новая версия и принимается одно из решений:
                    -
                  • +
                  • +
                  • Продолжить использование текущих правил.
                    • -
                      Дополнительных действий не требуется.
                  • -
                    Использовать свежие правила из комплекта правил в одной из программ.
                    +
                    Дополнительных действий не требуется.
                  +
                • +
                  Использовать свежие правила из комплекта правил в одном из приложений.
                  • -
                    Порядок загрузки описан в файле, который обычно называется Инструкция по подключению правил обмена.txt, найти его можно также в каталоге Обмены данными.
                • +
                  Порядок загрузки описан в файле, который обычно называется Инструкция по подключению правил обмена.txt, найти его можно также в каталоге Обмены данными.
                • +
                • Использовать вместо правил из внешнего источника типовые, встроенные в конфигурацию правила конвертации и правила регистрации объектов.
                  • Для этого необходимо выбрать команду Еще - Загрузить правила конвертации объектов (правила регистрации объектов). Далее необходимо установить переключатель в положение Использовать типовые правила.
                • \ No newline at end of file diff --git a/SSL/src/InformationRegisters/ПравилаДляОбменаДанными/ManagerModule.bsl b/SSL/src/InformationRegisters/ПравилаДляОбменаДанными/ManagerModule.bsl index 2855725f5..78783fa11 100644 --- a/SSL/src/InformationRegisters/ПравилаДляОбменаДанными/ManagerModule.bsl +++ b/SSL/src/InformationRegisters/ПравилаДляОбменаДанными/ManagerModule.bsl @@ -1,5 +1,5 @@ /////////////////////////////////////////////////////////////////////////////////////////////////////// -// Copyright (c) 2024, ООО 1С-Софт +// Copyright (c) 2025, ООО 1С-Софт // Все права защищены. Эта программа и сопроводительные материалы предоставляются // в соответствии с условиями лицензии Attribution 4.0 International (CC BY 4.0) // Текст лицензии доступен по ссылке: @@ -965,8 +965,7 @@ КонецФункции -//////////////////////////////////////////////////////////////////////////////// -// Профили безопасности +#Область ПрофилиБезопасности // См. РаботаВБезопасномРежимеПереопределяемый.ПриЗаполненииРазрешенийНаДоступКВнешнимРесурсам. Процедура ПриЗаполненииРазрешенийНаДоступКВнешнимРесурсам(ЗапросыРазрешений) Экспорт @@ -1157,5 +1156,6 @@ #КонецОбласти -#КонецЕсли +#КонецОбласти +#КонецЕсли \ No newline at end of file diff --git a/SSL/src/InformationRegisters/ПравилаДляОбменаДанными/RecordSetModule.bsl b/SSL/src/InformationRegisters/ПравилаДляОбменаДанными/RecordSetModule.bsl index 586f551cb..d0d86810a 100644 --- a/SSL/src/InformationRegisters/ПравилаДляОбменаДанными/RecordSetModule.bsl +++ b/SSL/src/InformationRegisters/ПравилаДляОбменаДанными/RecordSetModule.bsl @@ -1,5 +1,5 @@ /////////////////////////////////////////////////////////////////////////////////////////////////////// -// Copyright (c) 2024, ООО 1С-Софт +// Copyright (c) 2025, ООО 1С-Софт // Все права защищены. Эта программа и сопроводительные материалы предоставляются // в соответствии с условиями лицензии Attribution 4.0 International (CC BY 4.0) // Текст лицензии доступен по ссылке: diff --git a/SSL/src/InformationRegisters/ПредметыПапкиВзаимодействий/ManagerModule.bsl b/SSL/src/InformationRegisters/ПредметыПапкиВзаимодействий/ManagerModule.bsl index 3ae96c04c..b9f693ec0 100644 --- a/SSL/src/InformationRegisters/ПредметыПапкиВзаимодействий/ManagerModule.bsl +++ b/SSL/src/InformationRegisters/ПредметыПапкиВзаимодействий/ManagerModule.bsl @@ -1,5 +1,5 @@ /////////////////////////////////////////////////////////////////////////////////////////////////////// -// Copyright (c) 2024, ООО 1С-Софт +// Copyright (c) 2025, ООО 1С-Софт // Все права защищены. Эта программа и сопроводительные материалы предоставляются // в соответствии с условиями лицензии Attribution 4.0 International (CC BY 4.0) // Текст лицензии доступен по ссылке: diff --git a/SSL/src/InformationRegisters/ПредметыПапкиВзаимодействий/RecordSetModule.bsl b/SSL/src/InformationRegisters/ПредметыПапкиВзаимодействий/RecordSetModule.bsl index 49e9965c6..c59a31589 100644 --- a/SSL/src/InformationRegisters/ПредметыПапкиВзаимодействий/RecordSetModule.bsl +++ b/SSL/src/InformationRegisters/ПредметыПапкиВзаимодействий/RecordSetModule.bsl @@ -1,5 +1,5 @@ /////////////////////////////////////////////////////////////////////////////////////////////////////// -// Copyright (c) 2024, ООО 1С-Софт +// Copyright (c) 2025, ООО 1С-Софт // Все права защищены. Эта программа и сопроводительные материалы предоставляются // в соответствии с условиями лицензии Attribution 4.0 International (CC BY 4.0) // Текст лицензии доступен по ссылке: diff --git a/SSL/src/InformationRegisters/ПредопределенныеВариантыОтчетовВерсийРасширений/ManagerModule.bsl b/SSL/src/InformationRegisters/ПредопределенныеВариантыОтчетовВерсийРасширений/ManagerModule.bsl index cee175138..6d48d1cf5 100644 --- a/SSL/src/InformationRegisters/ПредопределенныеВариантыОтчетовВерсийРасширений/ManagerModule.bsl +++ b/SSL/src/InformationRegisters/ПредопределенныеВариантыОтчетовВерсийРасширений/ManagerModule.bsl @@ -1,5 +1,5 @@ /////////////////////////////////////////////////////////////////////////////////////////////////////// -// Copyright (c) 2024, ООО 1С-Софт +// Copyright (c) 2025, ООО 1С-Софт // Все права защищены. Эта программа и сопроводительные материалы предоставляются // в соответствии с условиями лицензии Attribution 4.0 International (CC BY 4.0) // Текст лицензии доступен по ссылке: diff --git a/SSL/src/InformationRegisters/ПроцессыДляЗапуска/Forms/НастройкаОтложенногоСтартаПроцесса/Module.bsl b/SSL/src/InformationRegisters/ПроцессыДляЗапуска/Forms/НастройкаОтложенногоСтартаПроцесса/Module.bsl index 22db01e7a..bec4df3e1 100644 --- a/SSL/src/InformationRegisters/ПроцессыДляЗапуска/Forms/НастройкаОтложенногоСтартаПроцесса/Module.bsl +++ b/SSL/src/InformationRegisters/ПроцессыДляЗапуска/Forms/НастройкаОтложенногоСтартаПроцесса/Module.bsl @@ -1,5 +1,5 @@ /////////////////////////////////////////////////////////////////////////////////////////////////////// -// Copyright (c) 2024, ООО 1С-Софт +// Copyright (c) 2025, ООО 1С-Софт // Все права защищены. Эта программа и сопроводительные материалы предоставляются // в соответствии с условиями лицензии Attribution 4.0 International (CC BY 4.0) // Текст лицензии доступен по ссылке: diff --git a/SSL/src/InformationRegisters/ПроцессыДляЗапуска/ManagerModule.bsl b/SSL/src/InformationRegisters/ПроцессыДляЗапуска/ManagerModule.bsl index f94bb8e44..fb8d2a3a1 100644 --- a/SSL/src/InformationRegisters/ПроцессыДляЗапуска/ManagerModule.bsl +++ b/SSL/src/InformationRegisters/ПроцессыДляЗапуска/ManagerModule.bsl @@ -1,5 +1,5 @@ /////////////////////////////////////////////////////////////////////////////////////////////////////// -// Copyright (c) 2024, ООО 1С-Софт +// Copyright (c) 2025, ООО 1С-Софт // Все права защищены. Эта программа и сопроводительные материалы предоставляются // в соответствии с условиями лицензии Attribution 4.0 International (CC BY 4.0) // Текст лицензии доступен по ссылке: diff --git a/SSL/src/InformationRegisters/ПубличныеИдентификаторыСинхронизируемыхОбъектов/Forms/ФормаЗаписи/Module.bsl b/SSL/src/InformationRegisters/ПубличныеИдентификаторыСинхронизируемыхОбъектов/Forms/ФормаЗаписи/Module.bsl index 7a4a044ed..a1b6810d2 100644 --- a/SSL/src/InformationRegisters/ПубличныеИдентификаторыСинхронизируемыхОбъектов/Forms/ФормаЗаписи/Module.bsl +++ b/SSL/src/InformationRegisters/ПубличныеИдентификаторыСинхронизируемыхОбъектов/Forms/ФормаЗаписи/Module.bsl @@ -1,5 +1,5 @@ /////////////////////////////////////////////////////////////////////////////////////////////////////// -// Copyright (c) 2024, ООО 1С-Софт +// Copyright (c) 2025, ООО 1С-Софт // Все права защищены. Эта программа и сопроводительные материалы предоставляются // в соответствии с условиями лицензии Attribution 4.0 International (CC BY 4.0) // Текст лицензии доступен по ссылке: diff --git a/SSL/src/InformationRegisters/ПубличныеИдентификаторыСинхронизируемыхОбъектов/Forms/ФормаСписка/Attributes/Список/ExtInfo/ListSettings.dcss b/SSL/src/InformationRegisters/ПубличныеИдентификаторыСинхронизируемыхОбъектов/Forms/ФормаСписка/Attributes/Список/ExtInfo/ListSettings.dcss index 6a1219585..ec6522c15 100644 --- a/SSL/src/InformationRegisters/ПубличныеИдентификаторыСинхронизируемыхОбъектов/Forms/ФормаСписка/Attributes/Список/ExtInfo/ListSettings.dcss +++ b/SSL/src/InformationRegisters/ПубличныеИдентификаторыСинхронизируемыхОбъектов/Forms/ФормаСписка/Attributes/Список/ExtInfo/ListSettings.dcss @@ -6,13 +6,13 @@ Идентификатор Contains - 978536dd-e7a5-4756-93af-f11b40d3bf36 + 23862a8a-12df-4d42-942d-f85d29e20f39 false Ссылка Equal - ed670330-51ec-44d8-bcf3-746caabe2166 + 192dd927-9431-438a-829d-4714b21d3eb4 Normal dfcece9d-5077-440b-b6b3-45a5cb4538eb diff --git a/SSL/src/InformationRegisters/ПубличныеИдентификаторыСинхронизируемыхОбъектов/Forms/ФормаСписка/Form.form b/SSL/src/InformationRegisters/ПубличныеИдентификаторыСинхронизируемыхОбъектов/Forms/ФормаСписка/Form.form index 86170b4eb..c1a07981b 100644 --- a/SSL/src/InformationRegisters/ПубличныеИдентификаторыСинхронизируемыхОбъектов/Forms/ФормаСписка/Form.form +++ b/SSL/src/InformationRegisters/ПубличныеИдентификаторыСинхронизируемыхОбъектов/Forms/ФормаСписка/Form.form @@ -272,7 +272,7 @@ AutoUse true true - Auto + DontUse Auto ExpandTopLevel true @@ -333,14 +333,12 @@
                  true
                  - ВЫБРАТЬ - ПубличныеИдентификаторыСинхронизируемыхОбъектов.Идентификатор, - ПубличныеИдентификаторыСинхронизируемыхОбъектов.Ссылка, - ПубличныеИдентификаторыСинхронизируемыхОбъектов.УзелИнформационнойБазы - ИЗ - РегистрСведений.ПубличныеИдентификаторыСинхронизируемыхОбъектов - КАК - ПубличныеИдентификаторыСинхронизируемыхОбъектов + ВЫБРАТЬ + ПубличныеИдентификаторыСинхронизируемыхОбъектов.Идентификатор, + ПубличныеИдентификаторыСинхронизируемыхОбъектов.Ссылка, + ПубличныеИдентификаторыСинхронизируемыхОбъектов.УзелИнформационнойБазы +ИЗ + РегистрСведений.ПубличныеИдентификаторыСинхронизируемыхОбъектов КАК ПубличныеИдентификаторыСинхронизируемыхОбъектов InformationRegister.ПубличныеИдентификаторыСинхронизируемыхОбъектов true true @@ -357,8 +355,6 @@ true true - true - true diff --git a/SSL/src/InformationRegisters/ПубличныеИдентификаторыСинхронизируемыхОбъектов/Forms/ФормаСписка/Module.bsl b/SSL/src/InformationRegisters/ПубличныеИдентификаторыСинхронизируемыхОбъектов/Forms/ФормаСписка/Module.bsl index 16f095bed..5c54510a8 100644 --- a/SSL/src/InformationRegisters/ПубличныеИдентификаторыСинхронизируемыхОбъектов/Forms/ФормаСписка/Module.bsl +++ b/SSL/src/InformationRegisters/ПубличныеИдентификаторыСинхронизируемыхОбъектов/Forms/ФормаСписка/Module.bsl @@ -1,5 +1,5 @@ /////////////////////////////////////////////////////////////////////////////////////////////////////// -// Copyright (c) 2024, ООО 1С-Софт +// Copyright (c) 2025, ООО 1С-Софт // Все права защищены. Эта программа и сопроводительные материалы предоставляются // в соответствии с условиями лицензии Attribution 4.0 International (CC BY 4.0) // Текст лицензии доступен по ссылке: @@ -10,7 +10,7 @@ &НаСервере Процедура ПриСозданииНаСервере(Отказ, СтандартнаяОбработка) - + ОграниченныеПоля = Новый Массив; ОграниченныеПоля.Добавить("Идентификатор"); ОграниченныеПоля.Добавить("Ссылка"); diff --git a/SSL/src/InformationRegisters/ПубличныеИдентификаторыСинхронизируемыхОбъектов/ManagerModule.bsl b/SSL/src/InformationRegisters/ПубличныеИдентификаторыСинхронизируемыхОбъектов/ManagerModule.bsl index cb3bc1776..f1d5d67fa 100644 --- a/SSL/src/InformationRegisters/ПубличныеИдентификаторыСинхронизируемыхОбъектов/ManagerModule.bsl +++ b/SSL/src/InformationRegisters/ПубличныеИдентификаторыСинхронизируемыхОбъектов/ManagerModule.bsl @@ -1,5 +1,5 @@ /////////////////////////////////////////////////////////////////////////////////////////////////////// -// Copyright (c) 2024, ООО 1С-Софт +// Copyright (c) 2025, ООО 1С-Софт // Все права защищены. Эта программа и сопроводительные материалы предоставляются // в соответствии с условиями лицензии Attribution 4.0 International (CC BY 4.0) // Текст лицензии доступен по ссылке: diff --git a/SSL/src/InformationRegisters/ПубличныеИдентификаторыСинхронизируемыхОбъектов/RecordSetModule.bsl b/SSL/src/InformationRegisters/ПубличныеИдентификаторыСинхронизируемыхОбъектов/RecordSetModule.bsl index a20f7fe21..b9763ce3e 100644 --- a/SSL/src/InformationRegisters/ПубличныеИдентификаторыСинхронизируемыхОбъектов/RecordSetModule.bsl +++ b/SSL/src/InformationRegisters/ПубличныеИдентификаторыСинхронизируемыхОбъектов/RecordSetModule.bsl @@ -1,5 +1,5 @@ /////////////////////////////////////////////////////////////////////////////////////////////////////// -// Copyright (c) 2024, ООО 1С-Софт +// Copyright (c) 2025, ООО 1С-Софт // Все права защищены. Эта программа и сопроводительные материалы предоставляются // в соответствии с условиями лицензии Attribution 4.0 International (CC BY 4.0) // Текст лицензии доступен по ссылке: @@ -29,6 +29,6 @@ #КонецОбласти -#КонецЕсли - - +#Иначе +ВызватьИсключение НСтр("ru = 'Недопустимый вызов объекта на клиенте.'"); +#КонецЕсли \ No newline at end of file diff --git a/SSL/src/InformationRegisters/ПубличныеИдентификаторыСинхронизируемыхОбъектов/ПубличныеИдентификаторыСинхронизируемыхОбъектов.mdo b/SSL/src/InformationRegisters/ПубличныеИдентификаторыСинхронизируемыхОбъектов/ПубличныеИдентификаторыСинхронизируемыхОбъектов.mdo index ba951b025..c896a6f0a 100644 --- a/SSL/src/InformationRegisters/ПубличныеИдентификаторыСинхронизируемыхОбъектов/ПубличныеИдентификаторыСинхронизируемыхОбъектов.mdo +++ b/SSL/src/InformationRegisters/ПубличныеИдентификаторыСинхронизируемыхОбъектов/ПубличныеИдентификаторыСинхронизируемыхОбъектов.mdo @@ -119,7 +119,7 @@ PersonalComputer MobileDevice - + ФормаСписка ru diff --git a/SSL/src/InformationRegisters/ПутиКПрограммамЭлектроннойПодписиИШифрованияНаСерверахLinux/Commands/ПутиКПрограммеНаСерверахLinux/CommandModule.bsl b/SSL/src/InformationRegisters/ПутиКПрограммамЭлектроннойПодписиИШифрованияНаСерверахLinux/Commands/ПутиКПрограммеНаСерверахLinux/CommandModule.bsl index 8eb269eb2..178092720 100644 --- a/SSL/src/InformationRegisters/ПутиКПрограммамЭлектроннойПодписиИШифрованияНаСерверахLinux/Commands/ПутиКПрограммеНаСерверахLinux/CommandModule.bsl +++ b/SSL/src/InformationRegisters/ПутиКПрограммамЭлектроннойПодписиИШифрованияНаСерверахLinux/Commands/ПутиКПрограммеНаСерверахLinux/CommandModule.bsl @@ -1,5 +1,5 @@ /////////////////////////////////////////////////////////////////////////////////////////////////////// -// Copyright (c) 2024, ООО 1С-Софт +// Copyright (c) 2025, ООО 1С-Софт // Все права защищены. Эта программа и сопроводительные материалы предоставляются // в соответствии с условиями лицензии Attribution 4.0 International (CC BY 4.0) // Текст лицензии доступен по ссылке: diff --git a/SSL/src/InformationRegisters/ПутиКПрограммамЭлектроннойПодписиИШифрованияНаСерверахLinux/Forms/ФормаЗаписи/Module.bsl b/SSL/src/InformationRegisters/ПутиКПрограммамЭлектроннойПодписиИШифрованияНаСерверахLinux/Forms/ФормаЗаписи/Module.bsl index 7e874d0e5..057139d4f 100644 --- a/SSL/src/InformationRegisters/ПутиКПрограммамЭлектроннойПодписиИШифрованияНаСерверахLinux/Forms/ФормаЗаписи/Module.bsl +++ b/SSL/src/InformationRegisters/ПутиКПрограммамЭлектроннойПодписиИШифрованияНаСерверахLinux/Forms/ФормаЗаписи/Module.bsl @@ -1,5 +1,5 @@ /////////////////////////////////////////////////////////////////////////////////////////////////////// -// Copyright (c) 2024, ООО 1С-Софт +// Copyright (c) 2025, ООО 1С-Софт // Все права защищены. Эта программа и сопроводительные материалы предоставляются // в соответствии с условиями лицензии Attribution 4.0 International (CC BY 4.0) // Текст лицензии доступен по ссылке: diff --git a/SSL/src/InformationRegisters/ПутиКПрограммамЭлектроннойПодписиИШифрованияНаСерверахLinux/Forms/ФормаСписка/Module.bsl b/SSL/src/InformationRegisters/ПутиКПрограммамЭлектроннойПодписиИШифрованияНаСерверахLinux/Forms/ФормаСписка/Module.bsl index e97ffc024..f6e46e2b6 100644 --- a/SSL/src/InformationRegisters/ПутиКПрограммамЭлектроннойПодписиИШифрованияНаСерверахLinux/Forms/ФормаСписка/Module.bsl +++ b/SSL/src/InformationRegisters/ПутиКПрограммамЭлектроннойПодписиИШифрованияНаСерверахLinux/Forms/ФормаСписка/Module.bsl @@ -1,5 +1,5 @@ /////////////////////////////////////////////////////////////////////////////////////////////////////// -// Copyright (c) 2024, ООО 1С-Софт +// Copyright (c) 2025, ООО 1С-Софт // Все права защищены. Эта программа и сопроводительные материалы предоставляются // в соответствии с условиями лицензии Attribution 4.0 International (CC BY 4.0) // Текст лицензии доступен по ссылке: diff --git a/SSL/src/InformationRegisters/РабочиеКаталогиФайлов/RecordSetModule.bsl b/SSL/src/InformationRegisters/РабочиеКаталогиФайлов/RecordSetModule.bsl index 9b5b7c41d..67d1a4efd 100644 --- a/SSL/src/InformationRegisters/РабочиеКаталогиФайлов/RecordSetModule.bsl +++ b/SSL/src/InformationRegisters/РабочиеКаталогиФайлов/RecordSetModule.bsl @@ -1,5 +1,5 @@ /////////////////////////////////////////////////////////////////////////////////////////////////////// -// Copyright (c) 2024, ООО 1С-Софт +// Copyright (c) 2025, ООО 1С-Софт // Все права защищены. Эта программа и сопроводительные материалы предоставляются // в соответствии с условиями лицензии Attribution 4.0 International (CC BY 4.0) // Текст лицензии доступен по ссылке: diff --git a/SSL/src/InformationRegisters/РазрешенияНаИспользованиеВнешнихРесурсов/ManagerModule.bsl b/SSL/src/InformationRegisters/РазрешенияНаИспользованиеВнешнихРесурсов/ManagerModule.bsl index 001434df5..47b3fa0fe 100644 --- a/SSL/src/InformationRegisters/РазрешенияНаИспользованиеВнешнихРесурсов/ManagerModule.bsl +++ b/SSL/src/InformationRegisters/РазрешенияНаИспользованиеВнешнихРесурсов/ManagerModule.bsl @@ -1,5 +1,5 @@ /////////////////////////////////////////////////////////////////////////////////////////////////////// -// Copyright (c) 2024, ООО 1С-Софт +// Copyright (c) 2025, ООО 1С-Софт // Все права защищены. Эта программа и сопроводительные материалы предоставляются // в соответствии с условиями лицензии Attribution 4.0 International (CC BY 4.0) // Текст лицензии доступен по ссылке: diff --git a/SSL/src/InformationRegisters/РазрешенияНаИспользованиеВнешнихРесурсов/RecordSetModule.bsl b/SSL/src/InformationRegisters/РазрешенияНаИспользованиеВнешнихРесурсов/RecordSetModule.bsl index cdc63b591..07841a827 100644 --- a/SSL/src/InformationRegisters/РазрешенияНаИспользованиеВнешнихРесурсов/RecordSetModule.bsl +++ b/SSL/src/InformationRegisters/РазрешенияНаИспользованиеВнешнихРесурсов/RecordSetModule.bsl @@ -1,10 +1,11 @@ /////////////////////////////////////////////////////////////////////////////////////////////////////// -// Copyright (c) 2024, ООО 1С-Софт +// Copyright (c) 2025, ООО 1С-Софт // Все права защищены. Эта программа и сопроводительные материалы предоставляются // в соответствии с условиями лицензии Attribution 4.0 International (CC BY 4.0) // Текст лицензии доступен по ссылке: // https://creativecommons.org/licenses/by/4.0/legalcode /////////////////////////////////////////////////////////////////////////////////////////////////////// + #Если Сервер Или ТолстыйКлиентОбычноеПриложение Или ВнешнееСоединение Тогда #Область ОбработчикиСобытий diff --git a/SSL/src/InformationRegisters/РежимыПодключенияВнешнихМодулей/ManagerModule.bsl b/SSL/src/InformationRegisters/РежимыПодключенияВнешнихМодулей/ManagerModule.bsl index a6b154b05..5e2e235a3 100644 --- a/SSL/src/InformationRegisters/РежимыПодключенияВнешнихМодулей/ManagerModule.bsl +++ b/SSL/src/InformationRegisters/РежимыПодключенияВнешнихМодулей/ManagerModule.bsl @@ -1,5 +1,5 @@ /////////////////////////////////////////////////////////////////////////////////////////////////////// -// Copyright (c) 2024, ООО 1С-Софт +// Copyright (c) 2025, ООО 1С-Софт // Все права защищены. Эта программа и сопроводительные материалы предоставляются // в соответствии с условиями лицензии Attribution 4.0 International (CC BY 4.0) // Текст лицензии доступен по ссылке: diff --git a/SSL/src/InformationRegisters/РежимыПодключенияВнешнихМодулей/RecordSetModule.bsl b/SSL/src/InformationRegisters/РежимыПодключенияВнешнихМодулей/RecordSetModule.bsl index 1857a88f4..0966b7073 100644 --- a/SSL/src/InformationRegisters/РежимыПодключенияВнешнихМодулей/RecordSetModule.bsl +++ b/SSL/src/InformationRegisters/РежимыПодключенияВнешнихМодулей/RecordSetModule.bsl @@ -1,5 +1,5 @@ /////////////////////////////////////////////////////////////////////////////////////////////////////// -// Copyright (c) 2024, ООО 1С-Софт +// Copyright (c) 2025, ООО 1С-Софт // Все права защищены. Эта программа и сопроводительные материалы предоставляются // в соответствии с условиями лицензии Attribution 4.0 International (CC BY 4.0) // Текст лицензии доступен по ссылке: diff --git a/SSL/src/InformationRegisters/РезультатыОбменаДанными/Forms/ОбработкаПредупрежденийКоллизии/Module.bsl b/SSL/src/InformationRegisters/РезультатыОбменаДанными/Forms/ОбработкаПредупрежденийКоллизии/Module.bsl index 2d372d519..33ea8b614 100644 --- a/SSL/src/InformationRegisters/РезультатыОбменаДанными/Forms/ОбработкаПредупрежденийКоллизии/Module.bsl +++ b/SSL/src/InformationRegisters/РезультатыОбменаДанными/Forms/ОбработкаПредупрежденийКоллизии/Module.bsl @@ -1,5 +1,5 @@ /////////////////////////////////////////////////////////////////////////////////////////////////////// -// Copyright (c) 2024, ООО 1С-Софт +// Copyright (c) 2025, ООО 1С-Софт // Все права защищены. Эта программа и сопроводительные материалы предоставляются // в соответствии с условиями лицензии Attribution 4.0 International (CC BY 4.0) // Текст лицензии доступен по ссылке: diff --git a/SSL/src/InformationRegisters/РезультатыОбменаДанными/Forms/ОбработкаПредупрежденийПоДатеЗапретаЗагрузки/Module.bsl b/SSL/src/InformationRegisters/РезультатыОбменаДанными/Forms/ОбработкаПредупрежденийПоДатеЗапретаЗагрузки/Module.bsl index 16aa272ab..86faa8375 100644 --- a/SSL/src/InformationRegisters/РезультатыОбменаДанными/Forms/ОбработкаПредупрежденийПоДатеЗапретаЗагрузки/Module.bsl +++ b/SSL/src/InformationRegisters/РезультатыОбменаДанными/Forms/ОбработкаПредупрежденийПоДатеЗапретаЗагрузки/Module.bsl @@ -1,5 +1,5 @@ /////////////////////////////////////////////////////////////////////////////////////////////////////// -// Copyright (c) 2024, ООО 1С-Софт +// Copyright (c) 2025, ООО 1С-Софт // Все права защищены. Эта программа и сопроводительные материалы предоставляются // в соответствии с условиями лицензии Attribution 4.0 International (CC BY 4.0) // Текст лицензии доступен по ссылке: diff --git a/SSL/src/InformationRegisters/РезультатыОбменаДанными/Forms/ОбработкаПредупрежденийПроведения/Module.bsl b/SSL/src/InformationRegisters/РезультатыОбменаДанными/Forms/ОбработкаПредупрежденийПроведения/Module.bsl index 378e7e0bf..b591beaf7 100644 --- a/SSL/src/InformationRegisters/РезультатыОбменаДанными/Forms/ОбработкаПредупрежденийПроведения/Module.bsl +++ b/SSL/src/InformationRegisters/РезультатыОбменаДанными/Forms/ОбработкаПредупрежденийПроведения/Module.bsl @@ -1,5 +1,5 @@ /////////////////////////////////////////////////////////////////////////////////////////////////////// -// Copyright (c) 2024, ООО 1С-Софт +// Copyright (c) 2025, ООО 1С-Софт // Все права защищены. Эта программа и сопроводительные материалы предоставляются // в соответствии с условиями лицензии Attribution 4.0 International (CC BY 4.0) // Текст лицензии доступен по ссылке: diff --git a/SSL/src/InformationRegisters/РезультатыОбменаДанными/Forms/ОтборПредупрежденийПоТипам/Module.bsl b/SSL/src/InformationRegisters/РезультатыОбменаДанными/Forms/ОтборПредупрежденийПоТипам/Module.bsl index 5e1766616..91950e080 100644 --- a/SSL/src/InformationRegisters/РезультатыОбменаДанными/Forms/ОтборПредупрежденийПоТипам/Module.bsl +++ b/SSL/src/InformationRegisters/РезультатыОбменаДанными/Forms/ОтборПредупрежденийПоТипам/Module.bsl @@ -1,5 +1,5 @@ /////////////////////////////////////////////////////////////////////////////////////////////////////// -// Copyright (c) 2024, ООО 1С-Софт +// Copyright (c) 2025, ООО 1С-Софт // Все права защищены. Эта программа и сопроводительные материалы предоставляются // в соответствии с условиями лицензии Attribution 4.0 International (CC BY 4.0) // Текст лицензии доступен по ссылке: diff --git a/SSL/src/InformationRegisters/РезультатыОбменаДанными/Forms/ОтборСинхронизаций/Module.bsl b/SSL/src/InformationRegisters/РезультатыОбменаДанными/Forms/ОтборСинхронизаций/Module.bsl index dfa6130b2..ffe026f6e 100644 --- a/SSL/src/InformationRegisters/РезультатыОбменаДанными/Forms/ОтборСинхронизаций/Module.bsl +++ b/SSL/src/InformationRegisters/РезультатыОбменаДанными/Forms/ОтборСинхронизаций/Module.bsl @@ -1,5 +1,5 @@ /////////////////////////////////////////////////////////////////////////////////////////////////////// -// Copyright (c) 2024, ООО 1С-Софт +// Copyright (c) 2025, ООО 1С-Софт // Все права защищены. Эта программа и сопроводительные материалы предоставляются // в соответствии с условиями лицензии Attribution 4.0 International (CC BY 4.0) // Текст лицензии доступен по ссылке: diff --git a/SSL/src/InformationRegisters/РезультатыОбменаДанными/Forms/ПредупреждениеАдминистрированияПриложения/Module.bsl b/SSL/src/InformationRegisters/РезультатыОбменаДанными/Forms/ПредупреждениеАдминистрированияПриложения/Module.bsl index f52fb3fd3..928d7e0b6 100644 --- a/SSL/src/InformationRegisters/РезультатыОбменаДанными/Forms/ПредупреждениеАдминистрированияПриложения/Module.bsl +++ b/SSL/src/InformationRegisters/РезультатыОбменаДанными/Forms/ПредупреждениеАдминистрированияПриложения/Module.bsl @@ -1,5 +1,5 @@ /////////////////////////////////////////////////////////////////////////////////////////////////////// -// Copyright (c) 2024, ООО 1С-Софт +// Copyright (c) 2025, ООО 1С-Софт // Все права защищены. Эта программа и сопроводительные материалы предоставляются // в соответствии с условиями лицензии Attribution 4.0 International (CC BY 4.0) // Текст лицензии доступен по ссылке: @@ -110,23 +110,47 @@ КонецЕсли; - МенеджерЗаписи = РегистрыСведений.РезультатыОбменаДанными.СоздатьМенеджерЗаписи(); - МенеджерЗаписи.ТипПроблемы = ТипПредупреждения; - МенеджерЗаписи.УзелИнформационнойБазы = УзелИнформационнойБазы; - МенеджерЗаписи.КлючУникальности = КлючУникальностиЗаписиРегистраСведений; - - МенеджерЗаписи.Прочитать(); // читаем для сохранения реквизитов, которые не передаем на форму - Если НЕ МенеджерЗаписи.Выбран() Тогда + НачатьТранзакцию(); + + Попытка + БлокировкаДанных = Новый БлокировкаДанных; + ЭлементБлокировкиДанных = БлокировкаДанных.Добавить("РегистрСведений.РезультатыОбменаДанными"); + ЭлементБлокировкиДанных.УстановитьЗначение("ТипПроблемы", ТипПредупреждения); + ЭлементБлокировкиДанных.УстановитьЗначение("УзелИнформационнойБазы", УзелИнформационнойБазы); + ЭлементБлокировкиДанных.УстановитьЗначение("КлючУникальности", КлючУникальностиЗаписиРегистраСведений); + ЭлементБлокировкиДанных.Режим = РежимБлокировкиДанных.Исключительный; + БлокировкаДанных.Заблокировать(); + + МенеджерЗаписи = РегистрыСведений.РезультатыОбменаДанными.СоздатьМенеджерЗаписи(); + МенеджерЗаписи.ТипПроблемы = ТипПредупреждения; + МенеджерЗаписи.УзелИнформационнойБазы = УзелИнформационнойБазы; + МенеджерЗаписи.КлючУникальности = КлючУникальностиЗаписиРегистраСведений; + + МенеджерЗаписи.Прочитать(); // читаем для сохранения реквизитов, которые не передаем на форму + Если Не МенеджерЗаписи.Выбран() Тогда // Сценарий: открыли карточку предупреждения, а параллельно поправили проблему - Возврат; - - КонецЕсли; + ЗафиксироватьТранзакцию(); + Возврат; - МенеджерЗаписи.ДатаВозникновения = ДатаВозникновения; - МенеджерЗаписи.Комментарий = КомментарийПредупреждения; - МенеджерЗаписи.Пропущена = СкрытьПредупреждение; - МенеджерЗаписи.Записать(Истина); + КонецЕсли; + + МенеджерЗаписи.ДатаВозникновения = ДатаВозникновения; + МенеджерЗаписи.Комментарий = КомментарийПредупреждения; + МенеджерЗаписи.Пропущена = СкрытьПредупреждение; + МенеджерЗаписи.Записать(Истина); + + ЗафиксироватьТранзакцию(); + Исключение + ОтменитьТранзакцию(); + + СообщениеОбОшибке = ОбработкаОшибок.ПодробноеПредставлениеОшибки(ИнформацияОбОшибке()); + + Событие = НСтр("ru = 'Обмен данными.Запись результата обмена данными'", ОбщегоНазначения.КодОсновногоЯзыка()); + + ЗаписьЖурналаРегистрации(Событие, УровеньЖурналаРегистрации.Ошибка, + Метаданные.РегистрыСведений.РезультатыОбменаДанными, , СообщениеОбОшибке); + КонецПопытки; КонецПроцедуры diff --git a/SSL/src/InformationRegisters/РезультатыОбменаДанными/Forms/ПредупреждениеКонвертацииОбъектаПриОтправке/Module.bsl b/SSL/src/InformationRegisters/РезультатыОбменаДанными/Forms/ПредупреждениеКонвертацииОбъектаПриОтправке/Module.bsl index bd5094e12..e1550dc16 100644 --- a/SSL/src/InformationRegisters/РезультатыОбменаДанными/Forms/ПредупреждениеКонвертацииОбъектаПриОтправке/Module.bsl +++ b/SSL/src/InformationRegisters/РезультатыОбменаДанными/Forms/ПредупреждениеКонвертацииОбъектаПриОтправке/Module.bsl @@ -1,5 +1,5 @@ /////////////////////////////////////////////////////////////////////////////////////////////////////// -// Copyright (c) 2024, ООО 1С-Софт +// Copyright (c) 2025, ООО 1С-Софт // Все права защищены. Эта программа и сопроводительные материалы предоставляются // в соответствии с условиями лицензии Attribution 4.0 International (CC BY 4.0) // Текст лицензии доступен по ссылке: @@ -119,25 +119,52 @@ КонецЕсли; - МенеджерЗаписи = РегистрыСведений.РезультатыОбменаДанными.СоздатьМенеджерЗаписи(); - МенеджерЗаписи.ТипПроблемы = ТипПредупреждения; - МенеджерЗаписи.УзелИнформационнойБазы = УзелИнформационнойБазы; - МенеджерЗаписи.ОбъектМетаданных = ОбъектМетаданных; - МенеджерЗаписи.ПроблемныйОбъект = ПроблемныйОбъект; - МенеджерЗаписи.КлючУникальности = КлючУникальностиЗаписиРегистраСведений; + НачатьТранзакцию(); - МенеджерЗаписи.Прочитать(); // читаем для сохранения реквизитов, которые не передаем на форму - Если НЕ МенеджерЗаписи.Выбран() Тогда - - // Сценарий: открыли карточку предупреждения, а параллельно поправили проблему - Возврат; - - КонецЕсли; + Попытка + БлокировкаДанных = Новый БлокировкаДанных; + ЭлементБлокировкиДанных = БлокировкаДанных.Добавить("РегистрСведений.РезультатыОбменаДанными"); + ЭлементБлокировкиДанных.УстановитьЗначение("ТипПроблемы", ТипПредупреждения); + ЭлементБлокировкиДанных.УстановитьЗначение("УзелИнформационнойБазы", УзелИнформационнойБазы); + ЭлементБлокировкиДанных.УстановитьЗначение("ОбъектМетаданных", ОбъектМетаданных); + ЭлементБлокировкиДанных.УстановитьЗначение("ПроблемныйОбъект", ПроблемныйОбъект); + ЭлементБлокировкиДанных.УстановитьЗначение("КлючУникальности", КлючУникальностиЗаписиРегистраСведений); + ЭлементБлокировкиДанных.Режим = РежимБлокировкиДанных.Исключительный; + БлокировкаДанных.Заблокировать(); - МенеджерЗаписи.ДатаВозникновения = ДатаВозникновения; - МенеджерЗаписи.Комментарий = КомментарийПредупреждения; - МенеджерЗаписи.Пропущена = СкрытьПредупреждение; - МенеджерЗаписи.Записать(Истина); + МенеджерЗаписи = РегистрыСведений.РезультатыОбменаДанными.СоздатьМенеджерЗаписи(); + МенеджерЗаписи.ТипПроблемы = ТипПредупреждения; + МенеджерЗаписи.УзелИнформационнойБазы = УзелИнформационнойБазы; + МенеджерЗаписи.ОбъектМетаданных = ОбъектМетаданных; + МенеджерЗаписи.ПроблемныйОбъект = ПроблемныйОбъект; + МенеджерЗаписи.КлючУникальности = КлючУникальностиЗаписиРегистраСведений; + + МенеджерЗаписи.Прочитать(); // читаем для сохранения реквизитов, которые не передаем на форму + Если Не МенеджерЗаписи.Выбран() Тогда + + // Сценарий: открыли карточку предупреждения, а параллельно поправили проблему + ЗафиксироватьТранзакцию(); + Возврат; + + КонецЕсли; + + МенеджерЗаписи.ДатаВозникновения = ДатаВозникновения; + МенеджерЗаписи.Комментарий = КомментарийПредупреждения; + МенеджерЗаписи.Пропущена = СкрытьПредупреждение; + + МенеджерЗаписи.Записать(Истина); + + ЗафиксироватьТранзакцию(); + Исключение + ОтменитьТранзакцию(); + + СообщениеОбОшибке = ОбработкаОшибок.ПодробноеПредставлениеОшибки(ИнформацияОбОшибке()); + + Событие = НСтр("ru = 'Обмен данными.Запись результата обмена данными'", ОбщегоНазначения.КодОсновногоЯзыка()); + + ЗаписьЖурналаРегистрации(Событие, УровеньЖурналаРегистрации.Ошибка, + Метаданные.РегистрыСведений.РезультатыОбменаДанными, , СообщениеОбОшибке); + КонецПопытки; КонецПроцедуры diff --git a/SSL/src/InformationRegisters/РезультатыОбменаДанными/Forms/ПредупреждениеНезаполненногоРеквизита/Module.bsl b/SSL/src/InformationRegisters/РезультатыОбменаДанными/Forms/ПредупреждениеНезаполненногоРеквизита/Module.bsl index f6a8e2920..c2a9cdad9 100644 --- a/SSL/src/InformationRegisters/РезультатыОбменаДанными/Forms/ПредупреждениеНезаполненногоРеквизита/Module.bsl +++ b/SSL/src/InformationRegisters/РезультатыОбменаДанными/Forms/ПредупреждениеНезаполненногоРеквизита/Module.bsl @@ -1,5 +1,5 @@ /////////////////////////////////////////////////////////////////////////////////////////////////////// -// Copyright (c) 2024, ООО 1С-Софт +// Copyright (c) 2025, ООО 1С-Софт // Все права защищены. Эта программа и сопроводительные материалы предоставляются // в соответствии с условиями лицензии Attribution 4.0 International (CC BY 4.0) // Текст лицензии доступен по ссылке: @@ -111,25 +111,51 @@ КонецЕсли; - МенеджерЗаписи = РегистрыСведений.РезультатыОбменаДанными.СоздатьМенеджерЗаписи(); - МенеджерЗаписи.ТипПроблемы = ТипПредупреждения; - МенеджерЗаписи.УзелИнформационнойБазы = УзелИнформационнойБазы; - МенеджерЗаписи.ОбъектМетаданных = ОбъектМетаданных; - МенеджерЗаписи.ПроблемныйОбъект = ПроблемныйОбъект; - МенеджерЗаписи.КлючУникальности = КлючУникальностиЗаписиРегистраСведений; - - МенеджерЗаписи.Прочитать(); // читаем для сохранения реквизитов, которые не передаем на форму - Если НЕ МенеджерЗаписи.Выбран() Тогда + НачатьТранзакцию(); + + Попытка + БлокировкаДанных = Новый БлокировкаДанных; + ЭлементБлокировкиДанных = БлокировкаДанных.Добавить("РегистрСведений.РезультатыОбменаДанными"); + ЭлементБлокировкиДанных.УстановитьЗначение("ТипПроблемы", ТипПредупреждения); + ЭлементБлокировкиДанных.УстановитьЗначение("УзелИнформационнойБазы", УзелИнформационнойБазы); + ЭлементБлокировкиДанных.УстановитьЗначение("ОбъектМетаданных", ОбъектМетаданных); + ЭлементБлокировкиДанных.УстановитьЗначение("ПроблемныйОбъект", ПроблемныйОбъект); + ЭлементБлокировкиДанных.УстановитьЗначение("КлючУникальности", КлючУникальностиЗаписиРегистраСведений); + ЭлементБлокировкиДанных.Режим = РежимБлокировкиДанных.Исключительный; + БлокировкаДанных.Заблокировать(); + + МенеджерЗаписи = РегистрыСведений.РезультатыОбменаДанными.СоздатьМенеджерЗаписи(); + МенеджерЗаписи.ТипПроблемы = ТипПредупреждения; + МенеджерЗаписи.УзелИнформационнойБазы = УзелИнформационнойБазы; + МенеджерЗаписи.ОбъектМетаданных = ОбъектМетаданных; + МенеджерЗаписи.ПроблемныйОбъект = ПроблемныйОбъект; + МенеджерЗаписи.КлючУникальности = КлючУникальностиЗаписиРегистраСведений; + + МенеджерЗаписи.Прочитать(); // читаем для сохранения реквизитов, которые не передаем на форму + Если Не МенеджерЗаписи.Выбран() Тогда - // Сценарий: открыли карточку предупреждения, а параллельно поправили проблему - Возврат; - - КонецЕсли; - - МенеджерЗаписи.ДатаВозникновения = ДатаВозникновения; - МенеджерЗаписи.Комментарий = КомментарийПредупреждения; - МенеджерЗаписи.Пропущена = СкрытьПредупреждение; - МенеджерЗаписи.Записать(Истина); + // Сценарий: открыли карточку предупреждения, а параллельно поправили проблему + ЗафиксироватьТранзакцию(); + Возврат; + + КонецЕсли; + + МенеджерЗаписи.ДатаВозникновения = ДатаВозникновения; + МенеджерЗаписи.Комментарий = КомментарийПредупреждения; + МенеджерЗаписи.Пропущена = СкрытьПредупреждение; + МенеджерЗаписи.Записать(Истина); + + ЗафиксироватьТранзакцию(); + Исключение + ОтменитьТранзакцию(); + + СообщениеОбОшибке = ОбработкаОшибок.ПодробноеПредставлениеОшибки(ИнформацияОбОшибке()); + + Событие = НСтр("ru = 'Обмен данными.Запись результата обмена данными'", ОбщегоНазначения.КодОсновногоЯзыка()); + + ЗаписьЖурналаРегистрации(Событие, УровеньЖурналаРегистрации.Ошибка, + Метаданные.РегистрыСведений.РезультатыОбменаДанными, , СообщениеОбОшибке); + КонецПопытки; КонецПроцедуры diff --git a/SSL/src/InformationRegisters/РезультатыОбменаДанными/Forms/ПредупреждениеНепроведенногоДокумента/Module.bsl b/SSL/src/InformationRegisters/РезультатыОбменаДанными/Forms/ПредупреждениеНепроведенногоДокумента/Module.bsl index dca26d358..71e738c43 100644 --- a/SSL/src/InformationRegisters/РезультатыОбменаДанными/Forms/ПредупреждениеНепроведенногоДокумента/Module.bsl +++ b/SSL/src/InformationRegisters/РезультатыОбменаДанными/Forms/ПредупреждениеНепроведенногоДокумента/Module.bsl @@ -1,5 +1,5 @@ /////////////////////////////////////////////////////////////////////////////////////////////////////// -// Copyright (c) 2024, ООО 1С-Софт +// Copyright (c) 2025, ООО 1С-Софт // Все права защищены. Эта программа и сопроводительные материалы предоставляются // в соответствии с условиями лицензии Attribution 4.0 International (CC BY 4.0) // Текст лицензии доступен по ссылке: @@ -137,25 +137,51 @@ КонецЕсли; - МенеджерЗаписи = РегистрыСведений.РезультатыОбменаДанными.СоздатьМенеджерЗаписи(); - МенеджерЗаписи.ТипПроблемы = ТипПредупреждения; - МенеджерЗаписи.УзелИнформационнойБазы = УзелИнформационнойБазы; - МенеджерЗаписи.ОбъектМетаданных = ОбъектМетаданных; - МенеджерЗаписи.ПроблемныйОбъект = ПроблемныйОбъект; - МенеджерЗаписи.КлючУникальности = КлючУникальностиЗаписиРегистраСведений; - - МенеджерЗаписи.Прочитать(); // читаем для сохранения реквизитов, которые не передаем на форму - Если НЕ МенеджерЗаписи.Выбран() Тогда + НачатьТранзакцию(); + + Попытка + БлокировкаДанных = Новый БлокировкаДанных; + ЭлементБлокировкиДанных = БлокировкаДанных.Добавить("РегистрСведений.РезультатыОбменаДанными"); + ЭлементБлокировкиДанных.УстановитьЗначение("ТипПроблемы", ТипПредупреждения); + ЭлементБлокировкиДанных.УстановитьЗначение("УзелИнформационнойБазы", УзелИнформационнойБазы); + ЭлементБлокировкиДанных.УстановитьЗначение("ОбъектМетаданных", ОбъектМетаданных); + ЭлементБлокировкиДанных.УстановитьЗначение("ПроблемныйОбъект", ПроблемныйОбъект); + ЭлементБлокировкиДанных.УстановитьЗначение("КлючУникальности", КлючУникальностиЗаписиРегистраСведений); + ЭлементБлокировкиДанных.Режим = РежимБлокировкиДанных.Исключительный; + БлокировкаДанных.Заблокировать(); + + МенеджерЗаписи = РегистрыСведений.РезультатыОбменаДанными.СоздатьМенеджерЗаписи(); + МенеджерЗаписи.ТипПроблемы = ТипПредупреждения; + МенеджерЗаписи.УзелИнформационнойБазы = УзелИнформационнойБазы; + МенеджерЗаписи.ОбъектМетаданных = ОбъектМетаданных; + МенеджерЗаписи.ПроблемныйОбъект = ПроблемныйОбъект; + МенеджерЗаписи.КлючУникальности = КлючУникальностиЗаписиРегистраСведений; + + МенеджерЗаписи.Прочитать(); // читаем для сохранения реквизитов, которые не передаем на форму + Если Не МенеджерЗаписи.Выбран() Тогда // Сценарий: открыли карточку предупреждения, а параллельно поправили проблему - Возврат; - - КонецЕсли; - - МенеджерЗаписи.ДатаВозникновения = ДатаВозникновения; - МенеджерЗаписи.Комментарий = КомментарийПредупреждения; - МенеджерЗаписи.Пропущена = СкрытьПредупреждение; - МенеджерЗаписи.Записать(Истина); + ЗафиксироватьТранзакцию(); + Возврат; + + КонецЕсли; + + МенеджерЗаписи.ДатаВозникновения = ДатаВозникновения; + МенеджерЗаписи.Комментарий = КомментарийПредупреждения; + МенеджерЗаписи.Пропущена = СкрытьПредупреждение; + МенеджерЗаписи.Записать(Истина); + + ЗафиксироватьТранзакцию(); + Исключение + ОтменитьТранзакцию(); + + СообщениеОбОшибке = ОбработкаОшибок.ПодробноеПредставлениеОшибки(ИнформацияОбОшибке()); + + Событие = НСтр("ru = 'Обмен данными.Запись результата обмена данными'", ОбщегоНазначения.КодОсновногоЯзыка()); + + ЗаписьЖурналаРегистрации(Событие, УровеньЖурналаРегистрации.Ошибка, + Метаданные.РегистрыСведений.РезультатыОбменаДанными, , СообщениеОбОшибке); + КонецПопытки; КонецПроцедуры diff --git a/SSL/src/InformationRegisters/РезультатыОбменаДанными/Forms/ПредупреждениеОКоллизии/Module.bsl b/SSL/src/InformationRegisters/РезультатыОбменаДанными/Forms/ПредупреждениеОКоллизии/Module.bsl index 9c8d3e802..d5c0b733f 100644 --- a/SSL/src/InformationRegisters/РезультатыОбменаДанными/Forms/ПредупреждениеОКоллизии/Module.bsl +++ b/SSL/src/InformationRegisters/РезультатыОбменаДанными/Forms/ПредупреждениеОКоллизии/Module.bsl @@ -1,5 +1,5 @@ /////////////////////////////////////////////////////////////////////////////////////////////////////// -// Copyright (c) 2024, ООО 1С-Софт +// Copyright (c) 2025, ООО 1С-Софт // Все права защищены. Эта программа и сопроводительные материалы предоставляются // в соответствии с условиями лицензии Attribution 4.0 International (CC BY 4.0) // Текст лицензии доступен по ссылке: diff --git a/SSL/src/InformationRegisters/РезультатыОбменаДанными/Forms/ПредупреждениеПоДатеЗапретаЗагрузки/Module.bsl b/SSL/src/InformationRegisters/РезультатыОбменаДанными/Forms/ПредупреждениеПоДатеЗапретаЗагрузки/Module.bsl index 0aa113d47..cdb2dbeed 100644 --- a/SSL/src/InformationRegisters/РезультатыОбменаДанными/Forms/ПредупреждениеПоДатеЗапретаЗагрузки/Module.bsl +++ b/SSL/src/InformationRegisters/РезультатыОбменаДанными/Forms/ПредупреждениеПоДатеЗапретаЗагрузки/Module.bsl @@ -1,5 +1,5 @@ /////////////////////////////////////////////////////////////////////////////////////////////////////// -// Copyright (c) 2024, ООО 1С-Софт +// Copyright (c) 2025, ООО 1С-Софт // Все права защищены. Эта программа и сопроводительные материалы предоставляются // в соответствии с условиями лицензии Attribution 4.0 International (CC BY 4.0) // Текст лицензии доступен по ссылке: diff --git a/SSL/src/InformationRegisters/РезультатыОбменаДанными/Forms/ПредупрежденияОбработчиковОтправкиПолучения/Module.bsl b/SSL/src/InformationRegisters/РезультатыОбменаДанными/Forms/ПредупрежденияОбработчиковОтправкиПолучения/Module.bsl index 8be5ddfa5..bcc2542e6 100644 --- a/SSL/src/InformationRegisters/РезультатыОбменаДанными/Forms/ПредупрежденияОбработчиковОтправкиПолучения/Module.bsl +++ b/SSL/src/InformationRegisters/РезультатыОбменаДанными/Forms/ПредупрежденияОбработчиковОтправкиПолучения/Module.bsl @@ -1,5 +1,5 @@ /////////////////////////////////////////////////////////////////////////////////////////////////////// -// Copyright (c) 2024, ООО 1С-Софт +// Copyright (c) 2025, ООО 1С-Софт // Все права защищены. Эта программа и сопроводительные материалы предоставляются // в соответствии с условиями лицензии Attribution 4.0 International (CC BY 4.0) // Текст лицензии доступен по ссылке: @@ -119,25 +119,51 @@ КонецЕсли; - МенеджерЗаписи = РегистрыСведений.РезультатыОбменаДанными.СоздатьМенеджерЗаписи(); - МенеджерЗаписи.ТипПроблемы = ТипПредупреждения; - МенеджерЗаписи.УзелИнформационнойБазы = УзелИнформационнойБазы; - МенеджерЗаписи.ОбъектМетаданных = ОбъектМетаданных; - МенеджерЗаписи.ПроблемныйОбъект = ПроблемныйОбъект; - МенеджерЗаписи.КлючУникальности = КлючУникальностиЗаписиРегистраСведений; - - МенеджерЗаписи.Прочитать(); // читаем для сохранения реквизитов, которые не передаем на форму - Если НЕ МенеджерЗаписи.Выбран() Тогда + НачатьТранзакцию(); + + Попытка + БлокировкаДанных = Новый БлокировкаДанных; + ЭлементБлокировкиДанных = БлокировкаДанных.Добавить("РегистрСведений.РезультатыОбменаДанными"); + ЭлементБлокировкиДанных.УстановитьЗначение("ТипПроблемы", ТипПредупреждения); + ЭлементБлокировкиДанных.УстановитьЗначение("УзелИнформационнойБазы", УзелИнформационнойБазы); + ЭлементБлокировкиДанных.УстановитьЗначение("ОбъектМетаданных", ОбъектМетаданных); + ЭлементБлокировкиДанных.УстановитьЗначение("ПроблемныйОбъект", ПроблемныйОбъект); + ЭлементБлокировкиДанных.УстановитьЗначение("КлючУникальности", КлючУникальностиЗаписиРегистраСведений); + ЭлементБлокировкиДанных.Режим = РежимБлокировкиДанных.Исключительный; + БлокировкаДанных.Заблокировать(); + + МенеджерЗаписи = РегистрыСведений.РезультатыОбменаДанными.СоздатьМенеджерЗаписи(); + МенеджерЗаписи.ТипПроблемы = ТипПредупреждения; + МенеджерЗаписи.УзелИнформационнойБазы = УзелИнформационнойБазы; + МенеджерЗаписи.ОбъектМетаданных = ОбъектМетаданных; + МенеджерЗаписи.ПроблемныйОбъект = ПроблемныйОбъект; + МенеджерЗаписи.КлючУникальности = КлючУникальностиЗаписиРегистраСведений; + + МенеджерЗаписи.Прочитать(); // читаем для сохранения реквизитов, которые не передаем на форму + Если Не МенеджерЗаписи.Выбран() Тогда - // Сценарий: открыли карточку предупреждения, а параллельно поправили проблему - Возврат; - - КонецЕсли; - - МенеджерЗаписи.ДатаВозникновения = ДатаВозникновения; - МенеджерЗаписи.Комментарий = КомментарийПредупреждения; - МенеджерЗаписи.Пропущена = СкрытьПредупреждение; - МенеджерЗаписи.Записать(Истина); + // Сценарий: открыли карточку предупреждения, а параллельно поправили проблему + ЗафиксироватьТранзакцию(); + Возврат; + + КонецЕсли; + + МенеджерЗаписи.ДатаВозникновения = ДатаВозникновения; + МенеджерЗаписи.Комментарий = КомментарийПредупреждения; + МенеджерЗаписи.Пропущена = СкрытьПредупреждение; + МенеджерЗаписи.Записать(Истина); + + ЗафиксироватьТранзакцию(); + Исключение + ОтменитьТранзакцию(); + + СообщениеОбОшибке = ОбработкаОшибок.ПодробноеПредставлениеОшибки(ИнформацияОбОшибке()); + + Событие = НСтр("ru = 'Обмен данными.Запись результата обмена данными'", ОбщегоНазначения.КодОсновногоЯзыка()); + + ЗаписьЖурналаРегистрации(Событие, УровеньЖурналаРегистрации.Ошибка, + Метаданные.РегистрыСведений.РезультатыОбменаДанными, , СообщениеОбОшибке); + КонецПопытки; КонецПроцедуры diff --git a/SSL/src/InformationRegisters/РезультатыОбменаДанными/Forms/ПредупрежденияСинхронизаций/Module.bsl b/SSL/src/InformationRegisters/РезультатыОбменаДанными/Forms/ПредупрежденияСинхронизаций/Module.bsl index 1650c46ac..ea386c176 100644 --- a/SSL/src/InformationRegisters/РезультатыОбменаДанными/Forms/ПредупрежденияСинхронизаций/Module.bsl +++ b/SSL/src/InformationRegisters/РезультатыОбменаДанными/Forms/ПредупрежденияСинхронизаций/Module.bsl @@ -1,5 +1,5 @@ /////////////////////////////////////////////////////////////////////////////////////////////////////// -// Copyright (c) 2024, ООО 1С-Софт +// Copyright (c) 2025, ООО 1С-Софт // Все права защищены. Эта программа и сопроводительные материалы предоставляются // в соответствии с условиями лицензии Attribution 4.0 International (CC BY 4.0) // Текст лицензии доступен по ссылке: @@ -43,12 +43,7 @@ МассивПолей.Добавить("ПроблемныйОбъект"); МассивПолей.Добавить("Описание"); - Для Каждого ИзменяемоеПоле Из МассивПолей Цикл - Поле = Список.Поля.Добавить(Тип("ПолеНабораДанныхСхемыКомпоновкиДанных")); - Поле.Поле = ИзменяемоеПоле; - Поле.ОграничениеИспользования.Порядок = Истина; - Поле.ОграничениеИспользованияРеквизитов.Порядок = Истина; - КонецЦикла; + Список.УстановитьОграниченияИспользованияВПорядке(МассивПолей); Список.Параметры.УстановитьЗначениеПараметра("НепроведенныйДокумент", НСтр("ru ='Непроведенный документ'", ОбщегоНазначения.КодОсновногоЯзыка())); Список.Параметры.УстановитьЗначениеПараметра("ПустыеРеквизиты", НСтр("ru ='Пустые реквизиты'", ОбщегоНазначения.КодОсновногоЯзыка())); diff --git a/SSL/src/InformationRegisters/РезультатыОбменаДанными/Forms/УдалениеУстаревшихПредупреждений/Module.bsl b/SSL/src/InformationRegisters/РезультатыОбменаДанными/Forms/УдалениеУстаревшихПредупреждений/Module.bsl index 52b1ed1be..74a47ff7b 100644 --- a/SSL/src/InformationRegisters/РезультатыОбменаДанными/Forms/УдалениеУстаревшихПредупреждений/Module.bsl +++ b/SSL/src/InformationRegisters/РезультатыОбменаДанными/Forms/УдалениеУстаревшихПредупреждений/Module.bsl @@ -1,5 +1,5 @@ /////////////////////////////////////////////////////////////////////////////////////////////////////// -// Copyright (c) 2024, ООО 1С-Софт +// Copyright (c) 2025, ООО 1С-Софт // Все права защищены. Эта программа и сопроводительные материалы предоставляются // в соответствии с условиями лицензии Attribution 4.0 International (CC BY 4.0) // Текст лицензии доступен по ссылке: diff --git a/SSL/src/InformationRegisters/РезультатыОбменаДанными/Forms/Форма/Help/ru.html b/SSL/src/InformationRegisters/РезультатыОбменаДанными/Forms/Форма/Help/ru.html index 6cd7ea9d6..e0a87d58d 100644 --- a/SSL/src/InformationRegisters/РезультатыОбменаДанными/Forms/Форма/Help/ru.html +++ b/SSL/src/InformationRegisters/РезультатыОбменаДанными/Forms/Форма/Help/ru.html @@ -1,11 +1,11 @@

                  Предназначен для просмотра статистики по результатам синхронизации данных.

                  -

                  Результаты синхронизации данных в виде ссылки можно увидеть в списке Синхронизации данных, например, на рабочем столе программы. В зависимости от результатов ссылка принимает значения Предупреждений нет (в случае успешной синхронизации данных) или  Предупреждения (при этом в скобках указывается количество предупреждений). Для открытия списка результатов синхронизации данных пройдите по ссылке. 

                  +

                  Результаты синхронизации данных в виде ссылки можно увидеть в списке Синхронизации данных, например, на рабочем столе приложения. В зависимости от результатов ссылка принимает значения Предупреждений нет (в случае успешной синхронизации данных) или  Предупреждения (при этом в скобках указывается количество предупреждений). Для открытия списка результатов синхронизации данных пройдите по ссылке. 

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

                  Отборы

                  Для удобства просмотра предусмотрены отборы:

                  •  Выберите Период, за который выдавать данные; 
                  • -
                  • В поле Отправитель  Выберите из списка информационную базу, которая вас интересует; 
                  • +
                  • В поле Отправитель  Выберите из списка приложение, которая вас интересует; 
                  • В поле Причина напишите причину ошибки (данный отбор невозможен для вкладки Конфликты). 

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

                  Проблемы при отправке

                  @@ -29,16 +29,16 @@
                • Для удаления элемента справочника из этого списка без устранения заполнения обязательных реквизитов нажмите Игнорировать. 
                • Для того, чтобы показать скрытые из списка элементы, нажмите Еще - Показывать проигнорированные. 
                • Для возвращения проигнорированного элемента в список нажмите Еще - Не игнорировать.
                • Конфликты

                  -
                  • При настроенной синхронизации данных между двумя программами возникают ситуации, когда одни и те же данные изменяются одновременно (в промежуток между выполнением сеанса синхронизации данных) в обеих программах. Это приводит к возникновению двух различающихся версий одинаковых данных в этих программах. Такая ситуация называется конфликтом изменения данных.
                    Конфликты изменения данных разрешаются (выбирается одна из версий) автоматически, однако можно изменить результат автоматического разрешения конфликта. Для этого выделите элемент списка. 
                  • -
                  • В строке внизу списка выводится метод решения конфликта, который был выбран программой. 
                  • +
                    • При настроенной синхронизации данных между двумя приложениями возникают ситуации, когда одни и те же данные изменяются одновременно (в промежуток между выполнением сеанса синхронизации данных) в обоих приложениях. Это приводит к возникновению двух различающихся версий одинаковых данных в этих приложениях. Такая ситуация называется конфликтом изменения данных.
                      Конфликты изменения данных разрешаются (выбирается одна из версий) автоматически, однако можно изменить результат автоматического разрешения конфликта. Для этого выделите элемент списка. 
                    • +
                    • В строке внизу списка выводится метод решения конфликта, который был выбран приложением. 
                    • Для выявления отличий между двумя версиями нажмите Показать отличия. 
                    • -
                    • Для принятия решения, какую версию принять, можно просмотреть обе версии. Для этого нажмите Еще - Показать версию, созданную в этой информационной базеили Еще - Показать версию, полученную из другой информационной базы. 
                    • +
                    • Для принятия решения, какую версию принять, можно просмотреть обе версии. Для этого нажмите Еще - Показать версию, созданную в этой информационной базе или Еще - Показать версию, полученную из другой информационной базы. 
                    • Для просмотра элемента списка нажмите Еще - Изменить данные. 
                    • После принятия решения о версии, которая должна быть сохранена, нажмите Подтвердить для сохранения результата автоматического разрешения конфликта или Пересмотреть для изменения результата рассмотрения конфликта на противоположный. После этого элемент становится неактивным, ему присваивается признак Рассмотрено и по умолчанию он скрывается из списка. 
                    • По умолчанию рассмотренные конфликты скрываются из списка. Для того чтобы показывать их тоже, нажмите Еще - Показывать рассмотренные конфликты. 
                    • Для того чтобы заново проверить рассмотренные конфликты и что-либо изменить, нажмите Еще - Снять признак "Рассмотрено".

                    Непринятые по дате запрета

                    • В этом списке отображаются данные, которые были отклонены из-за установленного запрета на загрузку данных прошлых периодов. 
                    • -
                    • Для сравнения отклоненных данных с текущими данными в программе нажмите Показать отличия (при наличии данных в текущей программе). 
                    • +
                    • Для сравнения отклоненных данных с текущими данными в приложении нажмите Показать отличия (при наличии данных в текущем приложении). 
                    • Для того чтобы открыть элемент, нажмите Еще - Изменить. 
                    • Для просмотра другой версии нажмите Еще - Показать непринятую версию. 
                    • Для получения данных, несмотря на установленный запрет загрузки данных, нажмите Принять версию. 
                    • diff --git a/SSL/src/InformationRegisters/РезультатыОбменаДанными/Forms/Форма/Module.bsl b/SSL/src/InformationRegisters/РезультатыОбменаДанными/Forms/Форма/Module.bsl index 1ab859339..085451a20 100644 --- a/SSL/src/InformationRegisters/РезультатыОбменаДанными/Forms/Форма/Module.bsl +++ b/SSL/src/InformationRegisters/РезультатыОбменаДанными/Forms/Форма/Module.bsl @@ -1,5 +1,5 @@ /////////////////////////////////////////////////////////////////////////////////////////////////////// -// Copyright (c) 2024, ООО 1С-Софт +// Copyright (c) 2025, ООО 1С-Софт // Все права защищены. Эта программа и сопроводительные материалы предоставляются // в соответствии с условиями лицензии Attribution 4.0 International (CC BY 4.0) // Текст лицензии доступен по ссылке: diff --git a/SSL/src/InformationRegisters/РезультатыОбменаДанными/Help/ru.html b/SSL/src/InformationRegisters/РезультатыОбменаДанными/Help/ru.html index af0394029..efb67759e 100644 --- a/SSL/src/InformationRegisters/РезультатыОбменаДанными/Help/ru.html +++ b/SSL/src/InformationRegisters/РезультатыОбменаДанными/Help/ru.html @@ -1,7 +1,7 @@ -

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

                      +

                      Предназначен для просмотра информации о предупреждениях и связанных с ними объектах приложения.

                      При выполнении синхронизации данных возможно возникновение проблемных ситуаций, требующих вмешательства пользователя.

                      -

                      Программа предоставляет возможность:

                      +

                      Приложение предоставляет возможность:

                      • расследовать проблемы в обмене данными;
                      • исправлять ошибки в исходных данных, препятствующие выгрузке;
                      • @@ -9,13 +9,13 @@

                        С помощью кнопок панели навигации в списке можно:

                        • Обновить - список не является динамическим, поэтому для получения новых предупреждений нажмите кнопку;
                        • -
                        • Открыть объект - быстрый переход к объекту программы - предмету предупреждения для исправления ошибок;
                        • -
                        • Скрыть из списка - не показывать это предупреждение. Кнопка выключает видимость предупреждения в списке, при этом само предупреждение остается в программе и к нему можно будет вернуться позже. Надо понимать, что проблема этим не решается, а игнорируется, откладывается на "потом".

                        +
                      • Открыть объект - быстрый переход к объекту приложения - предмету предупреждения для исправления ошибок;
                      • +
                      • Скрыть из списка - не показывать это предупреждение. Кнопка выключает видимость предупреждения в списке, при этом само предупреждение остается в приложении и к нему можно будет вернуться позже. Надо понимать, что проблема этим не решается, а игнорируется, откладывается на "потом".

                      Групповая обработка

                      С помощью кнопки Групповая обработка можно открыть выпадающее меню и выбрать нужную команду для быстрого решения проблем из нескольких однотипных предупреждений:

                      • Проведение документов - после исправления ошибок несколько документов можно провести одновременно;
                      • -
                      • Групповое изменение реквизитов - можно заполнить или исправить реквизиты в нескольких объектах программы;
                      • +
                      • Групповое изменение реквизитов - можно заполнить или исправить реквизиты в нескольких объектах приложения;
                      • Коллизии - в списке коллизий с помощью кнопок панели навигации можно проверить правильность автоматического решения конфликта и выбрать нужную версию данных;
                      • Запрет загрузки по дате - в списке с помощью кнопок панели навигации можно просмотреть обе версии данных и выбрать нужную.

                      Команды для работы с предупреждениями

                      В контекстном меню списка по правой кнопке мыши и в меню Еще можно найти дополнительные команды для работы со списком:

                      @@ -32,35 +32,35 @@
                    • Тип - выберите нужные типы с помощью флажков:

                    Ошибки проверки перед отправкой (XDTO)

                    -
                    • Ошибки проверки сконвертированного объекта дополнительно дублируются в журнале регистрации и говорят о том, что при попытке отправить данные программа обнаружила пустые сведения, которые обязательно должны быть заполнены. 
                    • -
                    • Можно перейти в объект программы с помощью кнопки панели навигации списка или ссылки в предупреждении и заполнить недостающие реквизиты. Иногда объект может не отображаться по умолчанию. В этом случае следует обратиться к администратору программы.

                    +
                    • Ошибки проверки сконвертированного объекта дополнительно дублируются в журнале регистрации и говорят о том, что при попытке отправить данные приложение обнаружило пустые сведения, которые обязательно должны быть заполнены. 
                    • +
                    • Можно перейти в объект приложения с помощью кнопки панели навигации списка или ссылки в предупреждении и заполнить недостающие реквизиты. Иногда объект может не отображаться по умолчанию. В этом случае следует обратиться к администратору приложения.

                    Непроведенные документы

                    • Для решения проблемы с проведением документа откройте карточку предупреждения, перейдите в документ по ссылке. 
                    • Необходимо устранить недочеты, мешающие его проведению (это может быть, например, недостаточный остаток по товару), а после этого провести. При проведении предупреждение будет удалено из списка.

                    Незаполненные реквизиты

                    -

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

                    +

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

                    Коллизии

                    -
                    • При настроенной синхронизации данных между двумя программами возникают ситуации, когда одни и те же данные изменяются одновременно (в промежуток между выполнением сеанса синхронизации данных) в обеих программах. Это приводит к возникновению двух различающихся версий одинаковых данных в этих программах. Такая ситуация называется конфликтом изменения данных.
                    • -
                    • Такие конфликты разрешаются автоматически (программа выбирает одну из версий), однако можно изменить результат автоматического решения конфликта.
                    • -
                    • В карточке предупреждения подробно описывается суть проблемы, выводится ссылка на объект программы, по которому произошла коллизия. Можно перейти по ссылке и проконтролировать правильность заполнения реквизитов после автоматического разрешения конфликта.
                    • +
                      • При настроенной синхронизации данных между двумя приложения возникают ситуации, когда одни и те же данные изменяются одновременно (в промежуток между выполнением сеанса синхронизации данных) в обоих приложениях. Это приводит к возникновению двух различающихся версий одинаковых данных в этих приложениях. Такая ситуация называется конфликтом изменения данных.
                      • +
                      • Такие конфликты разрешаются автоматически (приложение выбирает одну из версий), однако можно изменить результат автоматического решения конфликта.
                      • +
                      • В карточке предупреждения подробно описывается суть проблемы, выводится ссылка на объект приложения, по которому произошла коллизия. Можно перейти по ссылке и проконтролировать правильность заполнения реквизитов после автоматического разрешения конфликта.
                      • С помощью кнопок в карточке предупреждения можно:
                      • Сравнить две версии данных с помощью кнопки Показать отличия;
                      • -
                      • Для принятия решения, какую версию оставить, можно просмотреть обе версии. Для этого предусмотрены кнопки Показать версию в этой программе или Показать версию из другой программы.
                      • +
                      • Для принятия решения, какую версию оставить, можно просмотреть обе версии. Для этого предусмотрены кнопки Показать версию в этом приложении или Показать версию из другого приложения.
                      • После принятия решения о версии, которая должна быть сохранена, нажмите кнопку Скрыть из списка для сохранения результата автоматического разрешения конфликта или кнопку Пересмотреть результат для изменения конфликта на противоположный.

                      Непринятые по дате запрета

                      • В этих предупреждениях выводятся сведения о данных, которые были отклонены из-за установленного запрета на загрузку данных прошлых периодов.
                      • -
                      • По ссылке или с помощью кнопки панели навигации можно открыть объект программы и посмотреть, правильно ли заполнены реквизиты в результате автоматического решения проблемы. 
                      • -
                      • Для сравнения отклоненных данных с текущими данными в программе нажмите кнопку Показать отличия (при наличии данных в текущей программе).
                      • -
                      • Просмотреть версии данных для сравнения можно с помощью кнопок Показать версию этой программы или Показать непринятую версию.
                      • +
                      • По ссылке или с помощью кнопки панели навигации можно открыть объект приложения и посмотреть, правильно ли заполнены реквизиты в результате автоматического решения проблемы. 
                      • +
                      • Для сравнения отклоненных данных с текущими данными в приложении нажмите кнопку Показать отличия (при наличии данных в текущем приложении).
                      • +
                      • Просмотреть версии данных для сравнения можно с помощью кнопок Показать версию этого приложения или Показать непринятую версию.
                      • Для получения данных несмотря на установленный запрет загрузки данных можно нажать кнопку Принять отклоненную версию.

                      Ошибки кода обработчиков при отправке (получении)

                      • Ошибки обработчиков выделяются в списке красным цветом. В карточке предупреждения обработчиков отправки/получения указывается, что были обнаружены ошибки в коде правил конвертации объектов.
                      • Указываются пути решения проблемы:
                      • -
                        • обновиться на актуальную версию программы;
                        • +
                          • обновиться на актуальную версию приложения;
                          • использовать актуальные правила конвертации.

                        Удаление устаревших предупреждений

                        • С помощью ссылки в нижней части списка можно удалить устаревшие предупреждения.
                        • diff --git a/SSL/src/InformationRegisters/РезультатыОбменаДанными/ManagerModule.bsl b/SSL/src/InformationRegisters/РезультатыОбменаДанными/ManagerModule.bsl index a0d59f671..475eba510 100644 --- a/SSL/src/InformationRegisters/РезультатыОбменаДанными/ManagerModule.bsl +++ b/SSL/src/InformationRegisters/РезультатыОбменаДанными/ManagerModule.bsl @@ -1,5 +1,5 @@ /////////////////////////////////////////////////////////////////////////////////////////////////////// -// Copyright (c) 2024, ООО 1С-Софт +// Copyright (c) 2025, ООО 1С-Софт // Все права защищены. Эта программа и сопроводительные материалы предоставляются // в соответствии с условиями лицензии Attribution 4.0 International (CC BY 4.0) // Текст лицензии доступен по ссылке: diff --git a/SSL/src/InformationRegisters/РезультатыПроверкиУчета/ManagerModule.bsl b/SSL/src/InformationRegisters/РезультатыПроверкиУчета/ManagerModule.bsl index f151e5d8f..702434afc 100644 --- a/SSL/src/InformationRegisters/РезультатыПроверкиУчета/ManagerModule.bsl +++ b/SSL/src/InformationRegisters/РезультатыПроверкиУчета/ManagerModule.bsl @@ -1,5 +1,5 @@ /////////////////////////////////////////////////////////////////////////////////////////////////////// -// Copyright (c) 2024, ООО 1С-Софт +// Copyright (c) 2025, ООО 1С-Софт // Все права защищены. Эта программа и сопроводительные материалы предоставляются // в соответствии с условиями лицензии Attribution 4.0 International (CC BY 4.0) // Текст лицензии доступен по ссылке: diff --git a/SSL/src/InformationRegisters/РезультатыПроверкиУчета/RecordSetModule.bsl b/SSL/src/InformationRegisters/РезультатыПроверкиУчета/RecordSetModule.bsl index 37527bb69..a045b3509 100644 --- a/SSL/src/InformationRegisters/РезультатыПроверкиУчета/RecordSetModule.bsl +++ b/SSL/src/InformationRegisters/РезультатыПроверкиУчета/RecordSetModule.bsl @@ -1,5 +1,5 @@ /////////////////////////////////////////////////////////////////////////////////////////////////////// -// Copyright (c) 2024, ООО 1С-Софт +// Copyright (c) 2025, ООО 1С-Софт // Все права защищены. Эта программа и сопроводительные материалы предоставляются // в соответствии с условиями лицензии Attribution 4.0 International (CC BY 4.0) // Текст лицензии доступен по ссылке: diff --git a/SSL/src/InformationRegisters/СведенияОПользователях/Forms/ФормаЗаписи/Module.bsl b/SSL/src/InformationRegisters/СведенияОПользователях/Forms/ФормаЗаписи/Module.bsl index 00fa69d3f..55c2c57ed 100644 --- a/SSL/src/InformationRegisters/СведенияОПользователях/Forms/ФормаЗаписи/Module.bsl +++ b/SSL/src/InformationRegisters/СведенияОПользователях/Forms/ФормаЗаписи/Module.bsl @@ -1,5 +1,5 @@ /////////////////////////////////////////////////////////////////////////////////////////////////////// -// Copyright (c) 2024, ООО 1С-Софт +// Copyright (c) 2025, ООО 1С-Софт // Все права защищены. Эта программа и сопроводительные материалы предоставляются // в соответствии с условиями лицензии Attribution 4.0 International (CC BY 4.0) // Текст лицензии доступен по ссылке: diff --git a/SSL/src/InformationRegisters/СведенияОПользователях/Forms/ФормаСписка/Module.bsl b/SSL/src/InformationRegisters/СведенияОПользователях/Forms/ФормаСписка/Module.bsl index 39b9da7a6..5b16b0938 100644 --- a/SSL/src/InformationRegisters/СведенияОПользователях/Forms/ФормаСписка/Module.bsl +++ b/SSL/src/InformationRegisters/СведенияОПользователях/Forms/ФормаСписка/Module.bsl @@ -1,5 +1,5 @@ /////////////////////////////////////////////////////////////////////////////////////////////////////// -// Copyright (c) 2024, ООО 1С-Софт +// Copyright (c) 2025, ООО 1С-Софт // Все права защищены. Эта программа и сопроводительные материалы предоставляются // в соответствии с условиями лицензии Attribution 4.0 International (CC BY 4.0) // Текст лицензии доступен по ссылке: diff --git a/SSL/src/InformationRegisters/СведенияОПользователях/ManagerModule.bsl b/SSL/src/InformationRegisters/СведенияОПользователях/ManagerModule.bsl index 169f4015b..c8facd811 100644 --- a/SSL/src/InformationRegisters/СведенияОПользователях/ManagerModule.bsl +++ b/SSL/src/InformationRegisters/СведенияОПользователях/ManagerModule.bsl @@ -1,5 +1,5 @@ /////////////////////////////////////////////////////////////////////////////////////////////////////// -// Copyright (c) 2024, ООО 1С-Софт +// Copyright (c) 2025, ООО 1С-Софт // Все права защищены. Эта программа и сопроводительные материалы предоставляются // в соответствии с условиями лицензии Attribution 4.0 International (CC BY 4.0) // Текст лицензии доступен по ссылке: diff --git a/SSL/src/InformationRegisters/СведенияОПользователях/RecordSetModule.bsl b/SSL/src/InformationRegisters/СведенияОПользователях/RecordSetModule.bsl index 97aba1981..14b457426 100644 --- a/SSL/src/InformationRegisters/СведенияОПользователях/RecordSetModule.bsl +++ b/SSL/src/InformationRegisters/СведенияОПользователях/RecordSetModule.bsl @@ -1,5 +1,5 @@ /////////////////////////////////////////////////////////////////////////////////////////////////////// -// Copyright (c) 2024, ООО 1С-Софт +// Copyright (c) 2025, ООО 1С-Софт // Все права защищены. Эта программа и сопроводительные материалы предоставляются // в соответствии с условиями лицензии Attribution 4.0 International (CC BY 4.0) // Текст лицензии доступен по ссылке: diff --git a/SSL/src/InformationRegisters/СведенияОФайлах/ManagerModule.bsl b/SSL/src/InformationRegisters/СведенияОФайлах/ManagerModule.bsl index e63c1e356..84f3373b8 100644 --- a/SSL/src/InformationRegisters/СведенияОФайлах/ManagerModule.bsl +++ b/SSL/src/InformationRegisters/СведенияОФайлах/ManagerModule.bsl @@ -1,5 +1,5 @@ /////////////////////////////////////////////////////////////////////////////////////////////////////// -// Copyright (c) 2024, ООО 1С-Софт +// Copyright (c) 2025, ООО 1С-Софт // Все права защищены. Эта программа и сопроводительные материалы предоставляются // в соответствии с условиями лицензии Attribution 4.0 International (CC BY 4.0) // Текст лицензии доступен по ссылке: diff --git a/SSL/src/InformationRegisters/СведенияОФайлах/СведенияОФайлах.mdo b/SSL/src/InformationRegisters/СведенияОФайлах/СведенияОФайлах.mdo index 4f8f3bd1f..02bdc262d 100644 --- a/SSL/src/InformationRegisters/СведенияОФайлах/СведенияОФайлах.mdo +++ b/SSL/src/InformationRegisters/СведенияОФайлах/СведенияОФайлах.mdo @@ -337,6 +337,39 @@ Use + + ДатаПереносаВАрхив + + ru + Дата переноса в архив + + + Date + + Date + + + + + Use + Use + + + + УсловноПеренесенВАрхив + + ru + Условно перенесен в архив + + + Boolean + + + + Use + Use + + Файл diff --git a/SSL/src/InformationRegisters/СведенияОХраненииДедуплицированныхФайлов/ManagerModule.bsl b/SSL/src/InformationRegisters/СведенияОХраненииДедуплицированныхФайлов/ManagerModule.bsl new file mode 100644 index 000000000..090793267 --- /dev/null +++ b/SSL/src/InformationRegisters/СведенияОХраненииДедуплицированныхФайлов/ManagerModule.bsl @@ -0,0 +1,226 @@ +/////////////////////////////////////////////////////////////////////////////////////////////////////// +// Copyright (c) 2025, ООО 1С-Софт +// Все права защищены. Эта программа и сопроводительные материалы предоставляются +// в соответствии с условиями лицензии Attribution 4.0 International (CC BY 4.0) +// Текст лицензии доступен по ссылке: +// https://creativecommons.org/licenses/by/4.0/legalcode +/////////////////////////////////////////////////////////////////////////////////////////////////////// + +#Если Сервер Или ТолстыйКлиентОбычноеПриложение Или ВнешнееСоединение Тогда + +#Область СлужебныйПрограммныйИнтерфейс + +// Возвращает параметры хранения дедуплицированных файлов для переданного элемента справочника "ХранилищеДвоичныхДанных" +// и вида хранения. +// +// Параметры: +// ХранилищеДвоичныхДанныхСсылка - СправочникСсылка.ХранилищеДвоичныхДанных - значение измерения "ХранилищеДвоичныхДанных". +// ВидХраненияФайлов - ПеречислениеСсылка.ВидыХраненияФайлов, Неопределено - значение измерения "ВидХраненияФайлов". +// +// Возвращаемое значение: +// - Структура - если параметры хранения существуют, то содержит параметров хранения "ТипХраненияФайла", "Том" и "ПутьКФайлу". +// - Неопределено - если параметры хранения отсутствуют в регистре. +// +Функция СведенияОХраненииДедуплицированныхФайлов(ХранилищеДвоичныхДанныхСсылка, ВидХраненияФайлов = Неопределено) Экспорт + + Если ВидХраненияФайлов = Неопределено Тогда + ВидХраненияФайлов = Перечисления.ВидыХраненияФайлов.ОперационноеХранение; + КонецЕсли; + + Запрос = Новый Запрос; + Запрос.УстановитьПараметр("ХранилищеДвоичныхДанных" , ХранилищеДвоичныхДанныхСсылка); + Запрос.УстановитьПараметр("ВидХраненияФайлов" , ВидХраненияФайлов); + Запрос.Текст = + "ВЫБРАТЬ + | СведенияОХраненииДедуплицированныхФайлов.ТипХраненияФайла КАК ТипХраненияФайла, + | СведенияОХраненииДедуплицированныхФайлов.Том КАК Том, + | """" КАК ПутьКФайлу + |ИЗ + | РегистрСведений.СведенияОХраненииДедуплицированныхФайлов КАК СведенияОХраненииДедуплицированныхФайлов + |ГДЕ + | СведенияОХраненииДедуплицированныхФайлов.ХранилищеДвоичныхДанных = &ХранилищеДвоичныхДанных + | И СведенияОХраненииДедуплицированныхФайлов.ВидХраненияФайлов = &ВидХраненияФайлов"; + + ВыборкаДанных = Запрос.Выполнить().Выбрать(); + Если ВыборкаДанных.Следующий() Тогда + + Результат = Новый Структура("ТипХраненияФайла,Том,ПутьКФайлу"); + ЗаполнитьЗначенияСвойств(Результат, ВыборкаДанных); + + Иначе + Результат = Неопределено; + КонецЕсли; + + Возврат Результат; + +КонецФункции + +// Добавляет запись в регистр сведений. +// +// Параметры: +// ХранилищеДвоичныхДанныхСсылка - СправочникСсылка.ХранилищеДвоичныхДанных - значение измерения "ХранилищеДвоичныхДанных". +// ПараметрыЗаписиВИБ - Структура - см. РаботаСФайловымАрхивомСервер.ПараметрыЗаписиВИнформационнуюБазу +// +Процедура ДобавитьЗапись(ХранилищеДвоичныхДанныхСсылка, ПараметрыЗаписиВИБ) Экспорт + + Если ПараметрыЗаписиВИБ.ЭтоЗаписьВФайловыйАрхив Тогда + ВидХраненияФайлов = Перечисления.ВидыХраненияФайлов.АрхивноеХранение; + Иначе + ВидХраненияФайлов = Перечисления.ВидыХраненияФайлов.ОперационноеХранение; + КонецЕсли; + + Набор = СоздатьНаборЗаписей(); + Набор.Отбор.ХранилищеДвоичныхДанных.Установить(ХранилищеДвоичныхДанныхСсылка); + Набор.Отбор.ВидХраненияФайлов.Установить(ВидХраненияФайлов); + + Запись = Набор.Добавить(); + Запись.ХранилищеДвоичныхДанных = ХранилищеДвоичныхДанныхСсылка; + Запись.ВидХраненияФайлов = ВидХраненияФайлов; + Запись.ТипХраненияФайла = ПараметрыЗаписиВИБ.ТипХраненияФайла; + Запись.Том = ПараметрыЗаписиВИБ.Том; + + Набор.Записать(); + +КонецПроцедуры + +// Удаляет запись из регистра сведений. +// +// Параметры: +// ХранилищеДвоичныхДанныхСсылка - СправочникСсылка.ХранилищеДвоичныхДанных - значение измерения "ХранилищеДвоичныхДанных". +// ВидХраненияФайлов - ПеречислениеСсылка.ВидыХраненияФайлов, Неопределено - значение измерения "ВидХраненияФайлов". +// +Процедура УдалитьЗапись(ХранилищеДвоичныхДанныхСсылка, ВидХраненияФайлов = Неопределено) Экспорт + + Блокировка = Новый БлокировкаДанных(); + + ЭлементБлокировки = Блокировка.Добавить("РегистрСведений.СведенияОХраненииДедуплицированныхФайлов"); + ЭлементБлокировки.УстановитьЗначение("ХранилищеДвоичныхДанных", ХранилищеДвоичныхДанныхСсылка); + + НаборЗаписей = СоздатьНаборЗаписей(); + НаборЗаписей.Отбор.ХранилищеДвоичныхДанных.Установить(ХранилищеДвоичныхДанныхСсылка); + + Если ЗначениеЗаполнено(ВидХраненияФайлов) Тогда + НаборЗаписей.Отбор.ВидХраненияФайлов.Установить(ВидХраненияФайлов); + + ЭлементБлокировки.УстановитьЗначение("ВидХраненияФайлов", ВидХраненияФайлов); + + КонецЕсли; + + НачатьТранзакцию(); + Попытка + + Блокировка.Заблокировать(); + + НаборЗаписей.Записать(); + + ЗафиксироватьТранзакцию(); + + Исключение + ОтменитьТранзакцию(); + ВызватьИсключение; + КонецПопытки; + +КонецПроцедуры + +#Область ОбработчикиОбновления + +// Регистрирует на плане обмена ОбновлениеИнформационнойБазы объекты, +// для которых необходимо добавить записи в регистре. +// +Процедура ЗарегистрироватьДанныеКОбработкеДляПереходаНаНовуюВерсию(Параметры) Экспорт + + Запрос = Новый Запрос; + Запрос.Текст = + "ВЫБРАТЬ РАЗЛИЧНЫЕ + | ХранилищеФайлов.ХранилищеДвоичныхДанных КАК Ссылка + |ИЗ + | РегистрСведений.ХранилищеФайлов КАК ХранилищеФайлов"; + + РезультатЗапроса = Запрос.Выполнить().Выгрузить(); + ОбновлениеИнформационнойБазы.ОтметитьКОбработке(Параметры, РезультатЗапроса.ВыгрузитьКолонку("Ссылка")); + +КонецПроцедуры + +// Обработчик обновления на версию : +// - Выполняет добавление записей в регистр сведений "СведенияОХраненииДедуплицированныхФайлов" для используемых +// элементов справочника "ХранилищеДвоичныхДанных". +// +Процедура ОбработатьДанныеДляПереходаНаНовуюВерсию(Параметры) Экспорт + + ХранилищаДвоичныхДанных = ОбновлениеИнформационнойБазы.ВыбратьСсылкиДляОбработки(Параметры.Очередь, "Справочник.ХранилищеДвоичныхДанных"); + + Если ХранилищаДвоичныхДанных.Количество() > 0 Тогда + + МетаданныеРегистра = Метаданные.РегистрыСведений.СведенияОХраненииДедуплицированныхФайлов; + ПредставлениеРегистра = МетаданныеРегистра.Представление(); + ИмяПроцедуры = МетаданныеРегистра.ПолноеИмя() + "." + "ОбработатьДанныеДляПереходаНаНовуюВерсию"; + + ОбъектовОбработано = 0; + ПроблемныхОбъектов = 0; + + Пока ХранилищаДвоичныхДанных.Следующий() Цикл + + БлокировкаДанных = Новый БлокировкаДанных; + ЭлементБлокировкиДанных = БлокировкаДанных.Добавить("РегистрСведений.СведенияОХраненииДедуплицированныхФайлов"); + ЭлементБлокировкиДанных.УстановитьЗначение("ХранилищеДвоичныхДанных", ХранилищаДвоичныхДанных.Ссылка); + ЭлементБлокировкиДанных.УстановитьЗначение("ВидХраненияФайлов" , Перечисления.ВидыХраненияФайлов.ОперационноеХранение); + + ПараметрыЗаписиВИБ = РаботаСФайловымАрхивомСервер.ПараметрыЗаписиВИнформационнуюБазу(); + ПараметрыЗаписиВИБ.ТипХраненияФайла = Перечисления.ТипыХраненияФайлов.ВИнформационнойБазе; + + НачатьТранзакцию(); + Попытка + + БлокировкаДанных.Заблокировать(); + + ДобавитьЗапись(ХранилищаДвоичныхДанных.Ссылка, ПараметрыЗаписиВИБ); + + ОбновлениеИнформационнойБазы.ОтметитьВыполнениеОбработки(ХранилищаДвоичныхДанных.Ссылка); + ОбъектовОбработано = ОбъектовОбработано + 1; + ЗафиксироватьТранзакцию(); + + Исключение + + ОтменитьТранзакцию(); + + ПроблемныхОбъектов = ПроблемныхОбъектов + 1; + + ТекстСообщения = СтроковыеФункцииКлиентСервер.ПодставитьПараметрыВСтроку( + НСтр("ru = 'Не удалось добавить запись в регистр сведений ""Сведения о хранении дедуплицированных файлов"" + |для элемента справочника ""Хранилище двоичных данных"" %1 по причине: + |%2'"), + ХранилищаДвоичныхДанных.Ссылка, ОбработкаОшибок.ПодробноеПредставлениеОшибки(ИнформацияОбОшибке())); + + ОбновлениеИнформационнойБазы.ЗаписатьОшибкуВЖурналРегистрации( + МетаданныеРегистра, + ПредставлениеРегистра, + ТекстСообщения); + + КонецПопытки; + КонецЦикла; + + Если ОбъектовОбработано = 0 И ПроблемныхОбъектов <> 0 Тогда + ТекстСообщения = СтроковыеФункцииКлиентСервер.ПодставитьПараметрыВСтроку( + НСтр("ru = 'Не удалось обработать некоторые элементы справочника ""Хранилище двоичных данных"" (пропущены): %1'"), + ПроблемныхОбъектов); + ВызватьИсключение ТекстСообщения; + КонецЕсли; + + ЗаписьЖурналаРегистрации( + ОбновлениеИнформационнойБазы.СобытиеЖурналаРегистрации(), + УровеньЖурналаРегистрации.Информация, МетаданныеРегистра, , + СтроковыеФункцииКлиентСервер.ПодставитьПараметрыВСтроку( + НСтр("ru = 'Процедура %1 обработала очередную порцию записей: %2'"), + ИмяПроцедуры, + ОбъектовОбработано)); + КонецЕсли; + + Параметры.ОбработкаЗавершена = ОбновлениеИнформационнойБазы.ОбработкаДанныхЗавершена(Параметры.Очередь, "Справочник.ХранилищеДвоичныхДанных"); + +КонецПроцедуры + +#КонецОбласти + +#КонецОбласти + +#КонецЕсли \ No newline at end of file diff --git a/SSL/src/InformationRegisters/СведенияОХраненииДедуплицированныхФайлов/СведенияОХраненииДедуплицированныхФайлов.mdo b/SSL/src/InformationRegisters/СведенияОХраненииДедуплицированныхФайлов/СведенияОХраненииДедуплицированныхФайлов.mdo new file mode 100644 index 000000000..4b71f5558 --- /dev/null +++ b/SSL/src/InformationRegisters/СведенияОХраненииДедуплицированныхФайлов/СведенияОХраненииДедуплицированныхФайлов.mdo @@ -0,0 +1,119 @@ + + + + + + + + + + + + СведенияОХраненииДедуплицированныхФайлов + + ru + Сведения о хранении дедуплицированных файлов + + true + InDialog + + Use + Active + + Use + + + + + Use + LineNumber + + Use + + + + + Use + Recorder + + Use + + + + + Use + Period + + ShowError + Use + + + + Managed + + ТипХраненияФайла + + ru + Тип хранения файла + + + EnumRef.ТипыХраненияФайлов + + + + Use + Use + + + + Том + + ru + Том + + + CatalogRef.ТомаХраненияФайлов + + + + Use + Use + + + + ХранилищеДвоичныхДанных + + ru + Хранилище двоичных данных + + + CatalogRef.ХранилищеДвоичныхДанных + + + + true + Use + Use + true + + true + true + + + ВидХраненияФайлов + + ru + Вид хранения файлов + + + EnumRef.ВидыХраненияФайлов + + + + true + Use + Use + + true + + diff --git a/SSL/src/InformationRegisters/СвойстваРасширений/ManagerModule.bsl b/SSL/src/InformationRegisters/СвойстваРасширений/ManagerModule.bsl index d1ee18d15..c6f29dfc0 100644 --- a/SSL/src/InformationRegisters/СвойстваРасширений/ManagerModule.bsl +++ b/SSL/src/InformationRegisters/СвойстваРасширений/ManagerModule.bsl @@ -1,5 +1,5 @@ /////////////////////////////////////////////////////////////////////////////////////////////////////// -// Copyright (c) 2024, ООО 1С-Софт +// Copyright (c) 2025, ООО 1С-Софт // Все права защищены. Эта программа и сопроводительные материалы предоставляются // в соответствии с условиями лицензии Attribution 4.0 International (CC BY 4.0) // Текст лицензии доступен по ссылке: diff --git a/SSL/src/InformationRegisters/СервисМобильнойПодписиСтатусы/Commands/ОтправленныеНаПодписьДокументы/CommandModule.bsl b/SSL/src/InformationRegisters/СервисМобильнойПодписиСтатусы/Commands/ОтправленныеНаПодписьДокументы/CommandModule.bsl index 739dd6caf..da42b28c2 100644 --- a/SSL/src/InformationRegisters/СервисМобильнойПодписиСтатусы/Commands/ОтправленныеНаПодписьДокументы/CommandModule.bsl +++ b/SSL/src/InformationRegisters/СервисМобильнойПодписиСтатусы/Commands/ОтправленныеНаПодписьДокументы/CommandModule.bsl @@ -1,5 +1,5 @@ /////////////////////////////////////////////////////////////////////////////////////////////////////// -// Copyright (c) 2024, ООО 1С-Софт +// Copyright (c) 2025, ООО 1С-Софт // Все права защищены. Эта программа и сопроводительные материалы предоставляются // в соответствии с условиями лицензии Attribution 4.0 International (CC BY 4.0) // Текст лицензии доступен по ссылке: diff --git a/SSL/src/InformationRegisters/СервисМобильнойПодписиСтатусы/Forms/ФормаЗаписи/Form.form b/SSL/src/InformationRegisters/СервисМобильнойПодписиСтатусы/Forms/ФормаЗаписи/Form.form index effbf8677..cc14f9e7e 100644 --- a/SSL/src/InformationRegisters/СервисМобильнойПодписиСтатусы/Forms/ФормаЗаписи/Form.form +++ b/SSL/src/InformationRegisters/СервисМобильнойПодписиСтатусы/Forms/ФормаЗаписи/Form.form @@ -535,6 +535,48 @@ Normal + + НастройкаОтправкиВГосключ + 45 + true + true + + true + + + Запись.НастройкаОтправкиВГосключ + + + НастройкаОтправкиВГосключРасширеннаяПодсказка + 47 + Label + true + true + + Left + + + + НастройкаОтправкиВГосключКонтекстноеМеню + 46 + true + + InputField + Enter + true + Left + true + + true + true + true + true + true + true + true + Normal + + Операция 22 @@ -650,7 +692,6 @@ LockOwner true - true true Vertical true diff --git a/SSL/src/InformationRegisters/СервисМобильнойПодписиСтатусы/Forms/ФормаЗаписи/Module.bsl b/SSL/src/InformationRegisters/СервисМобильнойПодписиСтатусы/Forms/ФормаЗаписи/Module.bsl index 4dce02159..270d9cdd8 100644 --- a/SSL/src/InformationRegisters/СервисМобильнойПодписиСтатусы/Forms/ФормаЗаписи/Module.bsl +++ b/SSL/src/InformationRegisters/СервисМобильнойПодписиСтатусы/Forms/ФормаЗаписи/Module.bsl @@ -1,5 +1,5 @@ /////////////////////////////////////////////////////////////////////////////////////////////////////// -// Copyright (c) 2024, ООО 1С-Софт +// Copyright (c) 2025, ООО 1С-Софт // Все права защищены. Эта программа и сопроводительные материалы предоставляются // в соответствии с условиями лицензии Attribution 4.0 International (CC BY 4.0) // Текст лицензии доступен по ссылке: @@ -12,6 +12,12 @@ Процедура ПриСозданииНаСервере(Отказ, СтандартнаяОбработка) ТолькоПросмотр = Истина; + Элементы.НастройкаОтправкиВГосключ.Видимость = ЗначениеЗаполнено(Запись.НастройкаОтправкиВГосключ); + Если ЗначениеЗаполнено(Запись.НастройкаОтправкиВГосключ) Тогда + Заголовок = НСтр("ru='Статус подписания в сервисе Госключ'"); + Иначе + Заголовок = НСтр("ru='Статус подписания в сервисе Моя подпись (ФНС)'"); + КонецЕсли; КонецПроцедуры @@ -74,7 +80,7 @@ &НаКлиенте Процедура ПоказатьИнформацию(Команда) - СервисМобильнойПодписиКлиент.ОткрытьФормуРасширенногоПредставленияОшибки( + СервисМобильнойПодписиСлужебныйКлиент.ОткрытьФормуРасширенногоПредставленияОшибки( НСтр("ru='Статус получения подписи'"), ПолучитьИзВременногоХранилища(Ошибка), ЭтотОбъект); КонецПроцедуры @@ -91,6 +97,10 @@ НовыеСвойстваПодписи.УстановившийПодпись = Запись.Отправитель; НовыеСвойстваПодписи.АдресСертификата = ПоместитьВоВременноеХранилище(СвойстваПодписи.Сертификат, УникальныйИдентификатор); НовыеСвойстваПодписи.ДатаПодписи = СвойстваПодписи.НеподтвержденнаяДатаПодписи; + Если ЗначениеЗаполнено(СвойстваПодписи.ТекстОшибки) Тогда + НовыеСвойстваПодписи.РезультатПроверки.ОшибкаМатематическойПроверкиПодписи = СвойстваПодписи.ТекстОшибки; + НовыеСвойстваПодписи.Статус = СвойстваПодписи.ТекстОшибки; + КонецЕсли; ЭлектроннаяПодписьКлиент.ОткрытьПодпись(НовыеСвойстваПодписи); КонецПроцедуры diff --git a/SSL/src/InformationRegisters/СервисМобильнойПодписиСтатусы/Forms/ФормаСписка/Form.form b/SSL/src/InformationRegisters/СервисМобильнойПодписиСтатусы/Forms/ФормаСписка/Form.form index e4ed35735..6380fc9c5 100644 --- a/SSL/src/InformationRegisters/СервисМобильнойПодписиСтатусы/Forms/ФормаСписка/Form.form +++ b/SSL/src/InformationRegisters/СервисМобильнойПодписиСтатусы/Forms/ФормаСписка/Form.form @@ -602,6 +602,9 @@ true + + Список.НастройкаОтправкиВГосключ +
                          true
                          InformationRegister.СервисМобильнойПодписиСтатусы diff --git a/SSL/src/InformationRegisters/СервисМобильнойПодписиСтатусы/Forms/ФормаСписка/Module.bsl b/SSL/src/InformationRegisters/СервисМобильнойПодписиСтатусы/Forms/ФормаСписка/Module.bsl index e691f0b97..1f7eb3bd0 100644 --- a/SSL/src/InformationRegisters/СервисМобильнойПодписиСтатусы/Forms/ФормаСписка/Module.bsl +++ b/SSL/src/InformationRegisters/СервисМобильнойПодписиСтатусы/Forms/ФормаСписка/Module.bsl @@ -1,5 +1,5 @@ /////////////////////////////////////////////////////////////////////////////////////////////////////// -// Copyright (c) 2024, ООО 1С-Софт +// Copyright (c) 2025, ООО 1С-Софт // Все права защищены. Эта программа и сопроводительные материалы предоставляются // в соответствии с условиями лицензии Attribution 4.0 International (CC BY 4.0) // Текст лицензии доступен по ссылке: diff --git a/SSL/src/InformationRegisters/СервисМобильнойПодписиСтатусы/ManagerModule.bsl b/SSL/src/InformationRegisters/СервисМобильнойПодписиСтатусы/ManagerModule.bsl index dd2c4bf1b..d9731ea9a 100644 --- a/SSL/src/InformationRegisters/СервисМобильнойПодписиСтатусы/ManagerModule.bsl +++ b/SSL/src/InformationRegisters/СервисМобильнойПодписиСтатусы/ManagerModule.bsl @@ -1,5 +1,5 @@ /////////////////////////////////////////////////////////////////////////////////////////////////////// -// Copyright (c) 2024, ООО 1С-Софт +// Copyright (c) 2025, ООО 1С-Софт // Все права защищены. Эта программа и сопроводительные материалы предоставляются // в соответствии с условиями лицензии Attribution 4.0 International (CC BY 4.0) // Текст лицензии доступен по ссылке: diff --git a/SSL/src/InformationRegisters/СервисМобильнойПодписиСтатусы/СервисМобильнойПодписиСтатусы.mdo b/SSL/src/InformationRegisters/СервисМобильнойПодписиСтатусы/СервисМобильнойПодписиСтатусы.mdo index fbcd3fff2..6c5459b4d 100644 --- a/SSL/src/InformationRegisters/СервисМобильнойПодписиСтатусы/СервисМобильнойПодписиСтатусы.mdo +++ b/SSL/src/InformationRegisters/СервисМобильнойПодписиСтатусы/СервисМобильнойПодписиСтатусы.mdo @@ -53,11 +53,11 @@ Managed ru - Статус документа в сервисе "1С:Мобильная подпись" + Статус подписания отправленного документа ru - Статусы документов в сервисе "1С:Мобильная подпись" + Статусы подписания отправленных документов Результат @@ -240,6 +240,21 @@ Use + + НастройкаОтправкиВГосключ + + ru + Настройка отправки в Госключ + + + CatalogRef.НастройкиОтправкиВГосключ + + + + Use + Use + + ИдентификаторДокумента diff --git a/SSL/src/InformationRegisters/СертификатыПолучателейРассылкиОтчетов/ManagerModule.bsl b/SSL/src/InformationRegisters/СертификатыПолучателейРассылкиОтчетов/ManagerModule.bsl index e85442cc1..7435af767 100644 --- a/SSL/src/InformationRegisters/СертификатыПолучателейРассылкиОтчетов/ManagerModule.bsl +++ b/SSL/src/InformationRegisters/СертификатыПолучателейРассылкиОтчетов/ManagerModule.bsl @@ -1,5 +1,5 @@ /////////////////////////////////////////////////////////////////////////////////////////////////////// -// Copyright (c) 2024, ООО 1С-Софт +// Copyright (c) 2025, ООО 1С-Софт // Все права защищены. Эта программа и сопроводительные материалы предоставляются // в соответствии с условиями лицензии Attribution 4.0 International (CC BY 4.0) // Текст лицензии доступен по ссылке: diff --git a/SSL/src/InformationRegisters/СессииОбменаСообщениямиСистемы/ManagerModule.bsl b/SSL/src/InformationRegisters/СессииОбменаСообщениямиСистемы/ManagerModule.bsl index ce1d9cbe3..b4b314fdc 100644 --- a/SSL/src/InformationRegisters/СессииОбменаСообщениямиСистемы/ManagerModule.bsl +++ b/SSL/src/InformationRegisters/СессииОбменаСообщениямиСистемы/ManagerModule.bsl @@ -1,5 +1,5 @@ /////////////////////////////////////////////////////////////////////////////////////////////////////// -// Copyright (c) 2024, ООО 1С-Софт +// Copyright (c) 2025, ООО 1С-Софт // Все права защищены. Эта программа и сопроводительные материалы предоставляются // в соответствии с условиями лицензии Attribution 4.0 International (CC BY 4.0) // Текст лицензии доступен по ссылке: @@ -32,7 +32,7 @@ // Сессия - УникальныйИдентификатор - идентификатор сессии обмена // // Возвращаемое значение: -// Строка - Статус сессии строкой +// Строка - статус сессии строкой // Функция СтатусСессии(Знач Сессия) Экспорт @@ -101,7 +101,7 @@ // Сессия - УникальныйИдентификатор - идентификатор сессии обмена // // Возвращаемое значение: -// ХранилищеЗначения - Данные сессии обмена +// ХранилищеЗначения - данные сессии обмена // Функция ПолучитьДанныеСессии(Знач Сессия) Экспорт @@ -142,7 +142,7 @@ // Сессия - УникальныйИдентификатор - идентификатор сессии обмена // // Возвращаемое значение: -// Строка - Описание ошибки по сессии +// Строка - описание ошибки по сессии // Функция ОписаниеОшибкиСессии(Знач Сессия) Экспорт diff --git a/SSL/src/InformationRegisters/СклоненияПредставленийОбъектов/Forms/ФормаЗаписи/Module.bsl b/SSL/src/InformationRegisters/СклоненияПредставленийОбъектов/Forms/ФормаЗаписи/Module.bsl index a6bef14bf..f57c54347 100644 --- a/SSL/src/InformationRegisters/СклоненияПредставленийОбъектов/Forms/ФормаЗаписи/Module.bsl +++ b/SSL/src/InformationRegisters/СклоненияПредставленийОбъектов/Forms/ФормаЗаписи/Module.bsl @@ -1,5 +1,5 @@ /////////////////////////////////////////////////////////////////////////////////////////////////////// -// Copyright (c) 2024, ООО 1С-Софт +// Copyright (c) 2025, ООО 1С-Софт // Все права защищены. Эта программа и сопроводительные материалы предоставляются // в соответствии с условиями лицензии Attribution 4.0 International (CC BY 4.0) // Текст лицензии доступен по ссылке: diff --git a/SSL/src/InformationRegisters/СнимкиОтчетов/Forms/ФормаЗаписи/Module.bsl b/SSL/src/InformationRegisters/СнимкиОтчетов/Forms/ФормаЗаписи/Module.bsl index cfa559ca2..fdfcca6e2 100644 --- a/SSL/src/InformationRegisters/СнимкиОтчетов/Forms/ФормаЗаписи/Module.bsl +++ b/SSL/src/InformationRegisters/СнимкиОтчетов/Forms/ФормаЗаписи/Module.bsl @@ -1,5 +1,5 @@ /////////////////////////////////////////////////////////////////////////////////////////////////////// -// Copyright (c) 2024, ООО 1С-Софт +// Copyright (c) 2025, ООО 1С-Софт // Все права защищены. Эта программа и сопроводительные материалы предоставляются // в соответствии с условиями лицензии Attribution 4.0 International (CC BY 4.0) // Текст лицензии доступен по ссылке: diff --git a/SSL/src/InformationRegisters/СнимкиОтчетов/Forms/ФормаПросмотраОтчетов/Module.bsl b/SSL/src/InformationRegisters/СнимкиОтчетов/Forms/ФормаПросмотраОтчетов/Module.bsl index a1cd61d45..f301be242 100644 --- a/SSL/src/InformationRegisters/СнимкиОтчетов/Forms/ФормаПросмотраОтчетов/Module.bsl +++ b/SSL/src/InformationRegisters/СнимкиОтчетов/Forms/ФормаПросмотраОтчетов/Module.bsl @@ -1,5 +1,5 @@ /////////////////////////////////////////////////////////////////////////////////////////////////////// -// Copyright (c) 2024, ООО 1С-Софт +// Copyright (c) 2025, ООО 1С-Софт // Все права защищены. Эта программа и сопроводительные материалы предоставляются // в соответствии с условиями лицензии Attribution 4.0 International (CC BY 4.0) // Текст лицензии доступен по ссылке: diff --git a/SSL/src/InformationRegisters/СнимкиОтчетов/Forms/ФормаСписка/Module.bsl b/SSL/src/InformationRegisters/СнимкиОтчетов/Forms/ФормаСписка/Module.bsl index 80d71c67e..fcdcee2af 100644 --- a/SSL/src/InformationRegisters/СнимкиОтчетов/Forms/ФормаСписка/Module.bsl +++ b/SSL/src/InformationRegisters/СнимкиОтчетов/Forms/ФормаСписка/Module.bsl @@ -1,5 +1,5 @@ /////////////////////////////////////////////////////////////////////////////////////////////////////// -// Copyright (c) 2024, ООО 1С-Софт +// Copyright (c) 2025, ООО 1С-Софт // Все права защищены. Эта программа и сопроводительные материалы предоставляются // в соответствии с условиями лицензии Attribution 4.0 International (CC BY 4.0) // Текст лицензии доступен по ссылке: diff --git a/SSL/src/InformationRegisters/СнимкиОтчетов/ManagerModule.bsl b/SSL/src/InformationRegisters/СнимкиОтчетов/ManagerModule.bsl index 0bafaa4b1..3d8c1701f 100644 --- a/SSL/src/InformationRegisters/СнимкиОтчетов/ManagerModule.bsl +++ b/SSL/src/InformationRegisters/СнимкиОтчетов/ManagerModule.bsl @@ -1,5 +1,5 @@ /////////////////////////////////////////////////////////////////////////////////////////////////////// -// Copyright (c) 2024, ООО 1С-Софт +// Copyright (c) 2025, ООО 1С-Софт // Все права защищены. Эта программа и сопроводительные материалы предоставляются // в соответствии с условиями лицензии Attribution 4.0 International (CC BY 4.0) // Текст лицензии доступен по ссылке: diff --git a/SSL/src/InformationRegisters/СогласияНаОбработкуПерсональныхДанных/RecordSetModule.bsl b/SSL/src/InformationRegisters/СогласияНаОбработкуПерсональныхДанных/RecordSetModule.bsl index 157a15259..ff6f659a5 100644 --- a/SSL/src/InformationRegisters/СогласияНаОбработкуПерсональныхДанных/RecordSetModule.bsl +++ b/SSL/src/InformationRegisters/СогласияНаОбработкуПерсональныхДанных/RecordSetModule.bsl @@ -1,5 +1,5 @@ /////////////////////////////////////////////////////////////////////////////////////////////////////// -// Copyright (c) 2024, ООО 1С-Софт +// Copyright (c) 2025, ООО 1С-Софт // Все права защищены. Эта программа и сопроводительные материалы предоставляются // в соответствии с условиями лицензии Attribution 4.0 International (CC BY 4.0) // Текст лицензии доступен по ссылке: diff --git a/SSL/src/InformationRegisters/СообщенияОбменаДанными/ManagerModule.bsl b/SSL/src/InformationRegisters/СообщенияОбменаДанными/ManagerModule.bsl index 68b0001ff..b9bcb16d3 100644 --- a/SSL/src/InformationRegisters/СообщенияОбменаДанными/ManagerModule.bsl +++ b/SSL/src/InformationRegisters/СообщенияОбменаДанными/ManagerModule.bsl @@ -1,5 +1,5 @@ /////////////////////////////////////////////////////////////////////////////////////////////////////// -// Copyright (c) 2024, ООО 1С-Софт +// Copyright (c) 2025, ООО 1С-Софт // Все права защищены. Эта программа и сопроводительные материалы предоставляются // в соответствии с условиями лицензии Attribution 4.0 International (CC BY 4.0) // Текст лицензии доступен по ссылке: @@ -8,14 +8,24 @@ #Если Сервер Или ТолстыйКлиентОбычноеПриложение Или ВнешнееСоединение Тогда -#Область СлужебныеПроцедурыИФункции +#Область СлужебныйПрограммныйИнтерфейс +// Добавляет запись в регистр. +// +// Параметры: +// СтруктураЗаписи - Структура - данные для новой записи. +// Процедура ДобавитьЗапись(СтруктураЗаписи) Экспорт ОбменДаннымиСлужебный.ДобавитьЗаписьВРегистрСведений(СтруктураЗаписи, "СообщенияОбменаДанными"); КонецПроцедуры +// Удаляет запись из регистра. +// +// Параметры: +// СтруктураЗаписи - Структура - данные для удаления. +// Процедура УдалитьЗапись(СтруктураЗаписи) Экспорт ОбменДаннымиСлужебный.УдалитьНаборЗаписейВРегистреСведений(СтруктураЗаписи, "СообщенияОбменаДанными"); diff --git a/SSL/src/InformationRegisters/СообщенияОбменаДаннымиОбластейДанных/ManagerModule.bsl b/SSL/src/InformationRegisters/СообщенияОбменаДаннымиОбластейДанных/ManagerModule.bsl index 98608fe55..edc5606c2 100644 --- a/SSL/src/InformationRegisters/СообщенияОбменаДаннымиОбластейДанных/ManagerModule.bsl +++ b/SSL/src/InformationRegisters/СообщенияОбменаДаннымиОбластейДанных/ManagerModule.bsl @@ -1,5 +1,5 @@ /////////////////////////////////////////////////////////////////////////////////////////////////////// -// Copyright (c) 2024, ООО 1С-Софт +// Copyright (c) 2025, ООО 1С-Софт // Все права защищены. Эта программа и сопроводительные материалы предоставляются // в соответствии с условиями лицензии Attribution 4.0 International (CC BY 4.0) // Текст лицензии доступен по ссылке: diff --git a/SSL/src/InformationRegisters/СоответствияОбъектовИнформационныхБаз/Forms/ФормаСписка/Form.form b/SSL/src/InformationRegisters/СоответствияОбъектовИнформационныхБаз/Forms/ФормаСписка/Form.form index fde899762..c1f33f5e9 100644 --- a/SSL/src/InformationRegisters/СоответствияОбъектовИнформационныхБаз/Forms/ФормаСписка/Form.form +++ b/SSL/src/InformationRegisters/СоответствияОбъектовИнформационныхБаз/Forms/ФормаСписка/Form.form @@ -416,7 +416,7 @@ AutoUse true true - Auto + DontUse Auto ExpandTopLevel true @@ -505,8 +505,6 @@ true true - true - true diff --git a/SSL/src/InformationRegisters/СоответствияОбъектовИнформационныхБаз/Forms/ФормаСписка/Module.bsl b/SSL/src/InformationRegisters/СоответствияОбъектовИнформационныхБаз/Forms/ФормаСписка/Module.bsl index dc254d8ba..18fc5aa62 100644 --- a/SSL/src/InformationRegisters/СоответствияОбъектовИнформационныхБаз/Forms/ФормаСписка/Module.bsl +++ b/SSL/src/InformationRegisters/СоответствияОбъектовИнформационныхБаз/Forms/ФормаСписка/Module.bsl @@ -1,5 +1,5 @@ /////////////////////////////////////////////////////////////////////////////////////////////////////// -// Copyright (c) 2024, ООО 1С-Софт +// Copyright (c) 2025, ООО 1С-Софт // Все права защищены. Эта программа и сопроводительные материалы предоставляются // в соответствии с условиями лицензии Attribution 4.0 International (CC BY 4.0) // Текст лицензии доступен по ссылке: @@ -25,3 +25,4 @@ КонецПроцедуры #КонецОбласти + diff --git a/SSL/src/InformationRegisters/СоответствияОбъектовИнформационныхБаз/ManagerModule.bsl b/SSL/src/InformationRegisters/СоответствияОбъектовИнформационныхБаз/ManagerModule.bsl index 2faa11229..79fad4db2 100644 --- a/SSL/src/InformationRegisters/СоответствияОбъектовИнформационныхБаз/ManagerModule.bsl +++ b/SSL/src/InformationRegisters/СоответствияОбъектовИнформационныхБаз/ManagerModule.bsl @@ -1,5 +1,5 @@ /////////////////////////////////////////////////////////////////////////////////////////////////////// -// Copyright (c) 2024, ООО 1С-Софт +// Copyright (c) 2025, ООО 1С-Софт // Все права защищены. Эта программа и сопроводительные материалы предоставляются // в соответствии с условиями лицензии Attribution 4.0 International (CC BY 4.0) // Текст лицензии доступен по ссылке: diff --git a/SSL/src/InformationRegisters/СоответствияОбъектовИнформационныхБаз/RecordSetModule.bsl b/SSL/src/InformationRegisters/СоответствияОбъектовИнформационныхБаз/RecordSetModule.bsl index 92309e4b0..1411eab5a 100644 --- a/SSL/src/InformationRegisters/СоответствияОбъектовИнформационныхБаз/RecordSetModule.bsl +++ b/SSL/src/InformationRegisters/СоответствияОбъектовИнформационныхБаз/RecordSetModule.bsl @@ -1,5 +1,5 @@ /////////////////////////////////////////////////////////////////////////////////////////////////////// -// Copyright (c) 2024, ООО 1С-Софт +// Copyright (c) 2025, ООО 1С-Софт // Все права защищены. Эта программа и сопроводительные материалы предоставляются // в соответствии с условиями лицензии Attribution 4.0 International (CC BY 4.0) // Текст лицензии доступен по ссылке: diff --git a/SSL/src/InformationRegisters/СоответствияОбъектовИнформационныхБаз/СоответствияОбъектовИнформационныхБаз.mdo b/SSL/src/InformationRegisters/СоответствияОбъектовИнформационныхБаз/СоответствияОбъектовИнформационныхБаз.mdo index 6885c65a2..88b415cc9 100644 --- a/SSL/src/InformationRegisters/СоответствияОбъектовИнформационныхБаз/СоответствияОбъектовИнформационныхБаз.mdo +++ b/SSL/src/InformationRegisters/СоответствияОбъектовИнформационныхБаз/СоответствияОбъектовИнформационныхБаз.mdo @@ -213,7 +213,7 @@ true true - + ФормаСписка ru diff --git a/SSL/src/InformationRegisters/СоставыГруппПользователей/Forms/ФормаЗаписи/Module.bsl b/SSL/src/InformationRegisters/СоставыГруппПользователей/Forms/ФормаЗаписи/Module.bsl index 00fa69d3f..55c2c57ed 100644 --- a/SSL/src/InformationRegisters/СоставыГруппПользователей/Forms/ФормаЗаписи/Module.bsl +++ b/SSL/src/InformationRegisters/СоставыГруппПользователей/Forms/ФормаЗаписи/Module.bsl @@ -1,5 +1,5 @@ /////////////////////////////////////////////////////////////////////////////////////////////////////// -// Copyright (c) 2024, ООО 1С-Софт +// Copyright (c) 2025, ООО 1С-Софт // Все права защищены. Эта программа и сопроводительные материалы предоставляются // в соответствии с условиями лицензии Attribution 4.0 International (CC BY 4.0) // Текст лицензии доступен по ссылке: diff --git a/SSL/src/InformationRegisters/СоставыГруппПользователей/Forms/ФормаСписка/Module.bsl b/SSL/src/InformationRegisters/СоставыГруппПользователей/Forms/ФормаСписка/Module.bsl index 5b1a28167..2fe1743f2 100644 --- a/SSL/src/InformationRegisters/СоставыГруппПользователей/Forms/ФормаСписка/Module.bsl +++ b/SSL/src/InformationRegisters/СоставыГруппПользователей/Forms/ФормаСписка/Module.bsl @@ -1,5 +1,5 @@ /////////////////////////////////////////////////////////////////////////////////////////////////////// -// Copyright (c) 2024, ООО 1С-Софт +// Copyright (c) 2025, ООО 1С-Софт // Все права защищены. Эта программа и сопроводительные материалы предоставляются // в соответствии с условиями лицензии Attribution 4.0 International (CC BY 4.0) // Текст лицензии доступен по ссылке: diff --git a/SSL/src/InformationRegisters/СоставыГруппПользователей/ManagerModule.bsl b/SSL/src/InformationRegisters/СоставыГруппПользователей/ManagerModule.bsl index 83f70f267..66b8d6e7f 100644 --- a/SSL/src/InformationRegisters/СоставыГруппПользователей/ManagerModule.bsl +++ b/SSL/src/InformationRegisters/СоставыГруппПользователей/ManagerModule.bsl @@ -1,5 +1,5 @@ /////////////////////////////////////////////////////////////////////////////////////////////////////// -// Copyright (c) 2024, ООО 1С-Софт +// Copyright (c) 2025, ООО 1С-Софт // Все права защищены. Эта программа и сопроводительные материалы предоставляются // в соответствии с условиями лицензии Attribution 4.0 International (CC BY 4.0) // Текст лицензии доступен по ссылке: diff --git a/SSL/src/InformationRegisters/СоставыГруппПользователей/RecordSetModule.bsl b/SSL/src/InformationRegisters/СоставыГруппПользователей/RecordSetModule.bsl index 833dcb8f4..f44b83d2d 100644 --- a/SSL/src/InformationRegisters/СоставыГруппПользователей/RecordSetModule.bsl +++ b/SSL/src/InformationRegisters/СоставыГруппПользователей/RecordSetModule.bsl @@ -1,5 +1,5 @@ /////////////////////////////////////////////////////////////////////////////////////////////////////// -// Copyright (c) 2024, ООО 1С-Софт +// Copyright (c) 2025, ООО 1С-Софт // Все права защищены. Эта программа и сопроводительные материалы предоставляются // в соответствии с условиями лицензии Attribution 4.0 International (CC BY 4.0) // Текст лицензии доступен по ссылке: diff --git a/SSL/src/InformationRegisters/СостоянияКонтактовВзаимодействий/ManagerModule.bsl b/SSL/src/InformationRegisters/СостоянияКонтактовВзаимодействий/ManagerModule.bsl index c895bf371..9a1c64d2f 100644 --- a/SSL/src/InformationRegisters/СостоянияКонтактовВзаимодействий/ManagerModule.bsl +++ b/SSL/src/InformationRegisters/СостоянияКонтактовВзаимодействий/ManagerModule.bsl @@ -1,5 +1,5 @@ /////////////////////////////////////////////////////////////////////////////////////////////////////// -// Copyright (c) 2024, ООО 1С-Софт +// Copyright (c) 2025, ООО 1С-Софт // Все права защищены. Эта программа и сопроводительные материалы предоставляются // в соответствии с условиями лицензии Attribution 4.0 International (CC BY 4.0) // Текст лицензии доступен по ссылке: diff --git a/SSL/src/InformationRegisters/СостоянияОбменовДанными/ManagerModule.bsl b/SSL/src/InformationRegisters/СостоянияОбменовДанными/ManagerModule.bsl index 7192164cd..36f2ac41d 100644 --- a/SSL/src/InformationRegisters/СостоянияОбменовДанными/ManagerModule.bsl +++ b/SSL/src/InformationRegisters/СостоянияОбменовДанными/ManagerModule.bsl @@ -1,5 +1,5 @@ /////////////////////////////////////////////////////////////////////////////////////////////////////// -// Copyright (c) 2024, ООО 1С-Софт +// Copyright (c) 2025, ООО 1С-Софт // Все права защищены. Эта программа и сопроводительные материалы предоставляются // в соответствии с условиями лицензии Attribution 4.0 International (CC BY 4.0) // Текст лицензии доступен по ссылке: diff --git a/SSL/src/InformationRegisters/СостоянияОбменовДанными/RecordSetModule.bsl b/SSL/src/InformationRegisters/СостоянияОбменовДанными/RecordSetModule.bsl index f5623635e..303e3acaf 100644 --- a/SSL/src/InformationRegisters/СостоянияОбменовДанными/RecordSetModule.bsl +++ b/SSL/src/InformationRegisters/СостоянияОбменовДанными/RecordSetModule.bsl @@ -1,5 +1,5 @@ /////////////////////////////////////////////////////////////////////////////////////////////////////// -// Copyright (c) 2024, ООО 1С-Софт +// Copyright (c) 2025, ООО 1С-Софт // Все права защищены. Эта программа и сопроводительные материалы предоставляются // в соответствии с условиями лицензии Attribution 4.0 International (CC BY 4.0) // Текст лицензии доступен по ссылке: diff --git a/SSL/src/InformationRegisters/СостоянияОригиналовПервичныхДокументов/Forms/ИзменениеСостоянийОригиналовПервичныхДокументов/Module.bsl b/SSL/src/InformationRegisters/СостоянияОригиналовПервичныхДокументов/Forms/ИзменениеСостоянийОригиналовПервичныхДокументов/Module.bsl index 201bbf66f..9cd040925 100644 --- a/SSL/src/InformationRegisters/СостоянияОригиналовПервичныхДокументов/Forms/ИзменениеСостоянийОригиналовПервичныхДокументов/Module.bsl +++ b/SSL/src/InformationRegisters/СостоянияОригиналовПервичныхДокументов/Forms/ИзменениеСостоянийОригиналовПервичныхДокументов/Module.bsl @@ -1,5 +1,5 @@ /////////////////////////////////////////////////////////////////////////////////////////////////////// -// Copyright (c) 2024, ООО 1С-Софт +// Copyright (c) 2025, ООО 1С-Софт // Все права защищены. Эта программа и сопроводительные материалы предоставляются // в соответствии с условиями лицензии Attribution 4.0 International (CC BY 4.0) // Текст лицензии доступен по ссылке: diff --git a/SSL/src/InformationRegisters/СостоянияОригиналовПервичныхДокументов/ManagerModule.bsl b/SSL/src/InformationRegisters/СостоянияОригиналовПервичныхДокументов/ManagerModule.bsl index 69d3ce4af..0b6de28aa 100644 --- a/SSL/src/InformationRegisters/СостоянияОригиналовПервичныхДокументов/ManagerModule.bsl +++ b/SSL/src/InformationRegisters/СостоянияОригиналовПервичныхДокументов/ManagerModule.bsl @@ -1,5 +1,5 @@ /////////////////////////////////////////////////////////////////////////////////////////////////////// -// Copyright (c) 2024, ООО 1С-Софт +// Copyright (c) 2025, ООО 1С-Софт // Все права защищены. Эта программа и сопроводительные материалы предоставляются // в соответствии с условиями лицензии Attribution 4.0 International (CC BY 4.0) // Текст лицензии доступен по ссылке: diff --git a/SSL/src/InformationRegisters/СостоянияОригиналовПервичныхДокументов/RecordSetModule.bsl b/SSL/src/InformationRegisters/СостоянияОригиналовПервичныхДокументов/RecordSetModule.bsl index 37527bb69..a045b3509 100644 --- a/SSL/src/InformationRegisters/СостоянияОригиналовПервичныхДокументов/RecordSetModule.bsl +++ b/SSL/src/InformationRegisters/СостоянияОригиналовПервичныхДокументов/RecordSetModule.bsl @@ -1,5 +1,5 @@ /////////////////////////////////////////////////////////////////////////////////////////////////////// -// Copyright (c) 2024, ООО 1С-Софт +// Copyright (c) 2025, ООО 1С-Софт // Все права защищены. Эта программа и сопроводительные материалы предоставляются // в соответствии с условиями лицензии Attribution 4.0 International (CC BY 4.0) // Текст лицензии доступен по ссылке: diff --git a/SSL/src/InformationRegisters/СостоянияПапокПисем/ManagerModule.bsl b/SSL/src/InformationRegisters/СостоянияПапокПисем/ManagerModule.bsl index 6d69b43ba..ca14eb1bd 100644 --- a/SSL/src/InformationRegisters/СостоянияПапокПисем/ManagerModule.bsl +++ b/SSL/src/InformationRegisters/СостоянияПапокПисем/ManagerModule.bsl @@ -1,5 +1,5 @@ /////////////////////////////////////////////////////////////////////////////////////////////////////// -// Copyright (c) 2024, ООО 1С-Софт +// Copyright (c) 2025, ООО 1С-Софт // Все права защищены. Эта программа и сопроводительные материалы предоставляются // в соответствии с условиями лицензии Attribution 4.0 International (CC BY 4.0) // Текст лицензии доступен по ссылке: diff --git a/SSL/src/InformationRegisters/СостоянияПредметовВзаимодействий/ManagerModule.bsl b/SSL/src/InformationRegisters/СостоянияПредметовВзаимодействий/ManagerModule.bsl index 7e09907e1..ec53c6a61 100644 --- a/SSL/src/InformationRegisters/СостоянияПредметовВзаимодействий/ManagerModule.bsl +++ b/SSL/src/InformationRegisters/СостоянияПредметовВзаимодействий/ManagerModule.bsl @@ -1,5 +1,5 @@ /////////////////////////////////////////////////////////////////////////////////////////////////////// -// Copyright (c) 2024, ООО 1С-Софт +// Copyright (c) 2025, ООО 1С-Софт // Все права защищены. Эта программа и сопроводительные материалы предоставляются // в соответствии с условиями лицензии Attribution 4.0 International (CC BY 4.0) // Текст лицензии доступен по ссылке: diff --git a/SSL/src/InformationRegisters/СостоянияРассылокОтчетов/ManagerModule.bsl b/SSL/src/InformationRegisters/СостоянияРассылокОтчетов/ManagerModule.bsl index 1dee49882..c3a8991fb 100644 --- a/SSL/src/InformationRegisters/СостоянияРассылокОтчетов/ManagerModule.bsl +++ b/SSL/src/InformationRegisters/СостоянияРассылокОтчетов/ManagerModule.bsl @@ -1,5 +1,5 @@ /////////////////////////////////////////////////////////////////////////////////////////////////////// -// Copyright (c) 2024, ООО 1С-Софт +// Copyright (c) 2025, ООО 1С-Софт // Все права защищены. Эта программа и сопроводительные материалы предоставляются // в соответствии с условиями лицензии Attribution 4.0 International (CC BY 4.0) // Текст лицензии доступен по ссылке: diff --git a/SSL/src/InformationRegisters/СостоянияУспешныхОбменовДанными/ManagerModule.bsl b/SSL/src/InformationRegisters/СостоянияУспешныхОбменовДанными/ManagerModule.bsl index 2fa40bddb..cd4589da2 100644 --- a/SSL/src/InformationRegisters/СостоянияУспешныхОбменовДанными/ManagerModule.bsl +++ b/SSL/src/InformationRegisters/СостоянияУспешныхОбменовДанными/ManagerModule.bsl @@ -1,5 +1,5 @@ /////////////////////////////////////////////////////////////////////////////////////////////////////// -// Copyright (c) 2024, ООО 1С-Софт +// Copyright (c) 2025, ООО 1С-Софт // Все права защищены. Эта программа и сопроводительные материалы предоставляются // в соответствии с условиями лицензии Attribution 4.0 International (CC BY 4.0) // Текст лицензии доступен по ссылке: diff --git a/SSL/src/InformationRegisters/СостоянияУспешныхОбменовДанными/RecordSetModule.bsl b/SSL/src/InformationRegisters/СостоянияУспешныхОбменовДанными/RecordSetModule.bsl index f5623635e..303e3acaf 100644 --- a/SSL/src/InformationRegisters/СостоянияУспешныхОбменовДанными/RecordSetModule.bsl +++ b/SSL/src/InformationRegisters/СостоянияУспешныхОбменовДанными/RecordSetModule.bsl @@ -1,5 +1,5 @@ /////////////////////////////////////////////////////////////////////////////////////////////////////// -// Copyright (c) 2024, ООО 1С-Софт +// Copyright (c) 2025, ООО 1С-Софт // Все права защищены. Эта программа и сопроводительные материалы предоставляются // в соответствии с условиями лицензии Attribution 4.0 International (CC BY 4.0) // Текст лицензии доступен по ссылке: diff --git a/SSL/src/InformationRegisters/СпискиОтзываСертификатов/RecordSetModule.bsl b/SSL/src/InformationRegisters/СпискиОтзываСертификатов/RecordSetModule.bsl index 50471f865..dc3549f8f 100644 --- a/SSL/src/InformationRegisters/СпискиОтзываСертификатов/RecordSetModule.bsl +++ b/SSL/src/InformationRegisters/СпискиОтзываСертификатов/RecordSetModule.bsl @@ -1,5 +1,5 @@ /////////////////////////////////////////////////////////////////////////////////////////////////////// -// Copyright (c) 2024, ООО 1С-Софт +// Copyright (c) 2025, ООО 1С-Софт // Все права защищены. Эта программа и сопроводительные материалы предоставляются // в соответствии с условиями лицензии Attribution 4.0 International (CC BY 4.0) // Текст лицензии доступен по ссылке: diff --git a/SSL/src/InformationRegisters/СрокиХраненияПерсональныхДанных/ManagerModule.bsl b/SSL/src/InformationRegisters/СрокиХраненияПерсональныхДанных/ManagerModule.bsl index 901cb5894..1b4ee1d59 100644 --- a/SSL/src/InformationRegisters/СрокиХраненияПерсональныхДанных/ManagerModule.bsl +++ b/SSL/src/InformationRegisters/СрокиХраненияПерсональныхДанных/ManagerModule.bsl @@ -1,5 +1,5 @@ /////////////////////////////////////////////////////////////////////////////////////////////////////// -// Copyright (c) 2024, ООО 1С-Софт +// Copyright (c) 2025, ООО 1С-Софт // Все права защищены. Эта программа и сопроводительные материалы предоставляются // в соответствии с условиями лицензии Attribution 4.0 International (CC BY 4.0) // Текст лицензии доступен по ссылке: diff --git a/SSL/src/InformationRegisters/СтатистикаКонфигурации/Forms/ФормаСписка/Module.bsl b/SSL/src/InformationRegisters/СтатистикаКонфигурации/Forms/ФормаСписка/Module.bsl index 1f39ce059..6b8d65787 100644 --- a/SSL/src/InformationRegisters/СтатистикаКонфигурации/Forms/ФормаСписка/Module.bsl +++ b/SSL/src/InformationRegisters/СтатистикаКонфигурации/Forms/ФормаСписка/Module.bsl @@ -1,5 +1,5 @@ /////////////////////////////////////////////////////////////////////////////////////////////////////// -// Copyright (c) 2024, ООО 1С-Софт +// Copyright (c) 2025, ООО 1С-Софт // Все права защищены. Эта программа и сопроводительные материалы предоставляются // в соответствии с условиями лицензии Attribution 4.0 International (CC BY 4.0) // Текст лицензии доступен по ссылке: diff --git a/SSL/src/InformationRegisters/СтатистикаКонфигурации/ManagerModule.bsl b/SSL/src/InformationRegisters/СтатистикаКонфигурации/ManagerModule.bsl index 239926f6b..3d51b2cf7 100644 --- a/SSL/src/InformationRegisters/СтатистикаКонфигурации/ManagerModule.bsl +++ b/SSL/src/InformationRegisters/СтатистикаКонфигурации/ManagerModule.bsl @@ -1,5 +1,5 @@ /////////////////////////////////////////////////////////////////////////////////////////////////////// -// Copyright (c) 2024, ООО 1С-Софт +// Copyright (c) 2025, ООО 1С-Софт // Все права защищены. Эта программа и сопроводительные материалы предоставляются // в соответствии с условиями лицензии Attribution 4.0 International (CC BY 4.0) // Текст лицензии доступен по ссылке: diff --git a/SSL/src/InformationRegisters/СубъектыДляРасчетаСроковХранения/ManagerModule.bsl b/SSL/src/InformationRegisters/СубъектыДляРасчетаСроковХранения/ManagerModule.bsl index 32c22e7a7..44ec27470 100644 --- a/SSL/src/InformationRegisters/СубъектыДляРасчетаСроковХранения/ManagerModule.bsl +++ b/SSL/src/InformationRegisters/СубъектыДляРасчетаСроковХранения/ManagerModule.bsl @@ -1,5 +1,5 @@ /////////////////////////////////////////////////////////////////////////////////////////////////////// -// Copyright (c) 2024, ООО 1С-Софт +// Copyright (c) 2025, ООО 1С-Софт // Все права защищены. Эта программа и сопроводительные материалы предоставляются // в соответствии с условиями лицензии Attribution 4.0 International (CC BY 4.0) // Текст лицензии доступен по ссылке: diff --git a/SSL/src/InformationRegisters/ТаблицыГруппДоступа/Forms/ФормаЗаписи/Module.bsl b/SSL/src/InformationRegisters/ТаблицыГруппДоступа/Forms/ФормаЗаписи/Module.bsl index d74397252..d63d5282c 100644 --- a/SSL/src/InformationRegisters/ТаблицыГруппДоступа/Forms/ФормаЗаписи/Module.bsl +++ b/SSL/src/InformationRegisters/ТаблицыГруппДоступа/Forms/ФормаЗаписи/Module.bsl @@ -1,5 +1,5 @@ /////////////////////////////////////////////////////////////////////////////////////////////////////// -// Copyright (c) 2024, ООО 1С-Софт +// Copyright (c) 2025, ООО 1С-Софт // Все права защищены. Эта программа и сопроводительные материалы предоставляются // в соответствии с условиями лицензии Attribution 4.0 International (CC BY 4.0) // Текст лицензии доступен по ссылке: diff --git a/SSL/src/InformationRegisters/ТаблицыГруппДоступа/Forms/ФормаСписка/Module.bsl b/SSL/src/InformationRegisters/ТаблицыГруппДоступа/Forms/ФормаСписка/Module.bsl index 0e8754526..b7e881dc6 100644 --- a/SSL/src/InformationRegisters/ТаблицыГруппДоступа/Forms/ФормаСписка/Module.bsl +++ b/SSL/src/InformationRegisters/ТаблицыГруппДоступа/Forms/ФормаСписка/Module.bsl @@ -1,5 +1,5 @@ /////////////////////////////////////////////////////////////////////////////////////////////////////// -// Copyright (c) 2024, ООО 1С-Софт +// Copyright (c) 2025, ООО 1С-Софт // Все права защищены. Эта программа и сопроводительные материалы предоставляются // в соответствии с условиями лицензии Attribution 4.0 International (CC BY 4.0) // Текст лицензии доступен по ссылке: diff --git a/SSL/src/InformationRegisters/ТаблицыГруппДоступа/ManagerModule.bsl b/SSL/src/InformationRegisters/ТаблицыГруппДоступа/ManagerModule.bsl index 31c6f1fc3..4afc517c4 100644 --- a/SSL/src/InformationRegisters/ТаблицыГруппДоступа/ManagerModule.bsl +++ b/SSL/src/InformationRegisters/ТаблицыГруппДоступа/ManagerModule.bsl @@ -1,5 +1,5 @@ /////////////////////////////////////////////////////////////////////////////////////////////////////// -// Copyright (c) 2024, ООО 1С-Софт +// Copyright (c) 2025, ООО 1С-Софт // Все права защищены. Эта программа и сопроводительные материалы предоставляются // в соответствии с условиями лицензии Attribution 4.0 International (CC BY 4.0) // Текст лицензии доступен по ссылке: diff --git a/SSL/src/InformationRegisters/УдалитьНастройкиТранспортаОбменаДанными/Help/ru.html b/SSL/src/InformationRegisters/УдалитьНастройкиТранспортаОбменаДанными/Help/ru.html index e553384d0..05e7bc69c 100644 --- a/SSL/src/InformationRegisters/УдалитьНастройкиТранспортаОбменаДанными/Help/ru.html +++ b/SSL/src/InformationRegisters/УдалитьНастройкиТранспортаОбменаДанными/Help/ru.html @@ -1,30 +1,45 @@ -

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

                          +

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

                          Параметры подключения также указываются во время настройки синхронизации данных в Помощнике создания синхронизации данных. Эти настройки выводятся по умолчанию. Их можно изменить.

                          Перейти к настройке Параметров подключения можно по соответствующей команде из настройки синхронизации данных.

                          Общими для всех являются следующие параметры:

                          • Подключение по умолчанию - выберите подключение, которое будет использоваться по умолчанию при выполнении автоматической и интерактивной синхронизации данных. -
                          • Проверить подключение - нажмите, для того чтобы программа произвела проверку указанных настроек и попыталась подключиться к другой программе. -
                          • Сжимать отправляемые данные в архив - включите флажок, для того чтобы ограничить размер отправляемого сообщения. Флажок не предусмотрен для настройки прямого подключения к информационной базе. -
                            • Пароль архива - введите пароль для сжатия и распаковки архива сообщения обмена. Подразумевается, что пароль сжатия в программе-источнике и пароль распаковки в программе-приемнике должны быть одинаковыми для пары обменивающихся программ.

                          Прямое подключение:

                          -
                          • С помощью переключателя выберите вариант информационной базы: -
                            • Файловая база корреспондент -
                              •  Выберите Каталог информационной базы.
                            • Клиент серверная база-корреспондент +
                            • +
                            • Проверить подключение - нажмите, для того чтобы приложение произвела проверку указанных настроек и попыталась подключиться к другому приложению. +
                            • +
                            • Сжимать отправляемые данные в архив - включите флажок, для того чтобы ограничить размер отправляемого сообщения. Флажок не предусмотрен для настройки прямого подключения к приложению. +
                              • Пароль архива - введите пароль для сжатия и распаковки архива сообщения обмена. Подразумевается, что пароль сжатия в приложении-источнике и пароль распаковки в приложении-приемнике должны быть одинаковыми для пары обменивающихся приложений.

                            Прямое подключение:

                            +
                            • С помощью переключателя выберите вариант приложения: +
                              • Файловая база-корреспондент +
                                •  Выберите Каталог информационной базы.
                              • +
                              • Клиент серверная база-корреспондент
                                • Введите Имя сервера; -
                                • Введите Имя информационной базы на сервере.
                            • При необходимости включите флажок Аутентификация операционной системы (по умолчанию выключен). В этом случае не нужно заполнять следующие поля. -
                            • Введите Имя пользователя; -
                            • Введите Пароль.

                            Интернет

                            -
                            • Введите Адрес программы в интернете. -
                            • Введите имя Пользователя и Пароль. -
                            • При необходимости включите флажок Запомнить пароль. -
                            • Перейдите по ссылке Параметры доступа в Интернет, для того чтобы настроить параметры прокси-сервера.

                            Сетевой каталог

                            +
                          • +
                          • Введите Имя информационной базы на сервере.
                        +
                      • При необходимости включите флажок Аутентификация операционной системы (по умолчанию выключен). В этом случае не нужно заполнять следующие поля. +
                      • +
                      • Введите Имя пользователя; +
                      • +
                      • Введите Пароль.

                      Интернет

                      +
                      • Введите Адрес приложения в интернете. +
                      • +
                      • Введите имя Пользователя и Пароль. +
                      • +
                      • При необходимости включите флажок Запомнить пароль. +
                      • +
                      • Перейдите по ссылке Параметры доступа в Интернет, для того чтобы настроить параметры прокси-сервера.

                      Сетевой каталог

                      В поле Каталог  Выберите путь к локальному или сетевому каталогу.

                      FTP-ресурс

                      • Введите Путь к каталогу и Порт компьютера для передачи данных. -
                      • Введите имя Пользователя (логин) и Пароль. -
                      • Укажите Максимальный размер файла, для того чтобы ограничить объем пересылаемого сообщения. -
                      • При необходимости включите флажок Пассивное соединение. -
                      • Перейдите по ссылке Параметры доступа в Интернет, для того чтобы настроить параметры прокси-сервера.

                      Почтовые сообщения

                      + +
                    • Введите имя Пользователя (логин) и Пароль. +
                    • +
                    • Укажите Максимальный размер файла, для того чтобы ограничить объем пересылаемого сообщения. +
                    • +
                    • При необходимости включите флажок Пассивное соединение. +
                    • +
                    • Перейдите по ссылке Параметры доступа в Интернет, для того чтобы настроить параметры прокси-сервера.

                    Почтовые сообщения

                    • В поле Учетная запись электронной почты выберите элемент из списка или создайте новый. -
                    • Укажите Допустимый размер вложения письма, для того чтобы ограничить объем пересылаемого сообщения.

                    См. также:

                    + +
                  • Укажите Допустимый размер вложения письма, для того чтобы ограничить объем пересылаемого сообщения.

                  См. также:

                  \ No newline at end of file diff --git a/SSL/src/InformationRegisters/УдалитьРезультатыОбменаДанными/Help/ru.html b/SSL/src/InformationRegisters/УдалитьРезультатыОбменаДанными/Help/ru.html index b5dc6e540..5b17f854d 100644 --- a/SSL/src/InformationRegisters/УдалитьРезультатыОбменаДанными/Help/ru.html +++ b/SSL/src/InformationRegisters/УдалитьРезультатыОбменаДанными/Help/ru.html @@ -1,42 +1,70 @@

                  Предназначен для просмотра статистики по результатам синхронизации данных.

                  -

                  Результаты синхронизации данных в виде ссылки можно увидеть в списке Синхронизации данных, например, на рабочем столе программы. В зависимости от результатов ссылка принимает значения Предупреждений нет (в случае успешной синхронизации данных) или  Предупреждения (при этом в скобках указывается количество предупреждений). Для открытия списка результатов синхронизации данных пройдите по ссылке.

                  +

                  Результаты синхронизации данных в виде ссылки можно увидеть в списке Синхронизации данных, например, на рабочем столе приложения. В зависимости от результатов ссылка принимает значения Предупреждений нет (в случае успешной синхронизации данных) или  Предупреждения (при этом в скобках указывается количество предупреждений). Для открытия списка результатов синхронизации данных пройдите по ссылке.

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

                  Отборы

                  Для удобства просмотра предусмотрены отборы:

                  •  Выберите Период, за который выдавать данные; -
                  • В поле Отправитель  Выберите из списка информационную базу, которая вас интересует; -
                  • В поле Причина напишите причину ошибки (данный отбор невозможен для вкладки Конфликты).

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

                  + +
                • В поле Отправитель  Выберите из списка приложение, которая вас интересует; +
                • +
                • В поле Причина напишите причину ошибки (данный отбор невозможен для вкладки Конфликты).
                • Проблемные ситуации можно условно разделить на следующие категории, которые в списке находятся на отдельных вкладках. В заголовке каждой вкладки в скобках указывается количество соответствующих проблемных ситуаций:

                  • Непроведенные документы

                    -
                  • В этом списке показываются документы, которые не удалось провести по каким-либо причинам. Для решения проблемы с проведением документа рекомендуется открыть документ и устранить недочеты,  мешающие его проведению (это может быть, например, недостаточный остаток по товару). Внизу списка отражается причина невозможности автоматического проведения. -
                  • Для того чтобы попытаться исправить ошибки в выбранных документах, нажмите Изменить выделенные.  -
                  • После устранения ошибок можно Провести документ.  -
                  • Для того чтобы открыть документ, нажмите Еще - Изменить. -
                  • Для скрытия документа из этого списка без устранения проблемы с проведением нажмите Игнорировать. -
                  • Для того, чтобы показать проигнорированные документы, нажмите Еще - Показывать проигнорированные. -
                  • Для возвращения проигнорированного документа в список нажмите Еще - Не игнорировать.

                  Незаполненные реквизиты

                  + +
                • В этом списке показываются документы, которые не удалось провести по каким-либо причинам. Для решения проблемы с проведением документа рекомендуется открыть документ и устранить недочеты,  мешающие его проведению (это может быть, например, недостаточный остаток по товару). Внизу списка отражается причина невозможности автоматического проведения. +
                • +
                • Для того чтобы попытаться исправить ошибки в выбранных документах, нажмите Изменить выделенные.  +
                • +
                • После устранения ошибок можно Провести документ.  +
                • +
                • Для того чтобы открыть документ, нажмите Еще - Изменить. +
                • +
                • Для скрытия документа из этого списка без устранения проблемы с проведением нажмите Игнорировать. +
                • +
                • Для того, чтобы показать проигнорированные документы, нажмите Еще - Показывать проигнорированные. +
                • +
                • Для возвращения проигнорированного документа в список нажмите Еще - Не игнорировать.
                • Незаполненные реквизиты

                  • Содержит список незаполненных реквизитов элементов справочников. Для исправления необходимо открыть элемент справочника (это можно сделать по двойному клику мыши на нем) и заполнить обязательные для заполнения поля. После чего необходимо записать элемент. -
                  • Для того чтобы попытаться заполнить реквизиты в выбранных элементах, нажмите Изменить выделенные. -
                  • Для того чтобы открыть элемент, нажмите Еще - Изменить. -
                  • Для удаления элемента справочника из этого списка без устранения заполнения обязательных реквизитов нажмите Игнорировать.  -
                  • Для того, чтобы показать проигнорированные элементы, нажмите Еще - Показывать проигнорированные. -
                  • Для возвращения проигнорированного элемента в список нажмите Еще - Не игнорировать.

                  Конфликты

                  -
                  • При настроенной синхронизации данных между двумя программами возникают ситуации, когда одни и те же данные изменяются одновременно (в промежуток между выполнением сеанса синхронизации данных) в обеих программах. Это приводит к возникновению двух различающихся версий одинаковых данных в этих программах. Такая ситуация называется конфликтом изменения данных.
                    Конфликты изменения данных разрешаются (выбирается одна из версий) автоматически, однако можно изменить результат автоматического разрешения конфликта. Для этого выделите элемент списка. -
                  • В строке внизу списка выводится метод решения конфликта, который был выбран программой. -
                  • Для выявления отличий между двумя версиями нажмите Показать отличия. -
                  • Для принятия решения, какую версию принять, можно просмотреть обе версии. Для этого нажмите Еще - Показать версию, созданную в этой информационной базе или Еще - Показать версию, полученную из другой информационной базы. -
                  • Для просмотра элемента списка нажмите Еще - Изменить данные. -
                  • После принятия решения о версии, которая должна быть сохранена, нажмите Подтвердить для сохранения результата автоматического разрешения конфликта или Пересмотреть для изменения результата рассмотрения конфликта на противоположный. После этого элемент становится неактивным, ему присваивается признак Рассмотрено и по умолчанию он скрывается из списка.  -
                  • По умолчанию рассмотренные конфликты скрываются из списка. Для того чтобы показывать их тоже, нажмите Еще - Показывать рассмотренные конфликты. -
                  • Для того чтобы заново проверить рассмотренные конфликты и что-либо изменить, нажмите Еще - Снять признак "Рассмотрено".

                  Непринятые по дате запрета

                  + +
                • Для того чтобы попытаться заполнить реквизиты в выбранных элементах, нажмите Изменить выделенные. +
                • +
                • Для того чтобы открыть элемент, нажмите Еще - Изменить. +
                • +
                • Для удаления элемента справочника из этого списка без устранения заполнения обязательных реквизитов нажмите Игнорировать.  +
                • +
                • Для того, чтобы показать проигнорированные элементы, нажмите Еще - Показывать проигнорированные. +
                • +
                • Для возвращения проигнорированного элемента в список нажмите Еще - Не игнорировать.
                • Конфликты

                  +
                  • При настроенной синхронизации данных между двумя приложениями возникают ситуации, когда одни и те же данные изменяются одновременно (в промежуток между выполнением сеанса синхронизации данных) в обоих приложениях. Это приводит к возникновению двух различающихся версий одинаковых данных в этих приложениях. Такая ситуация называется конфликтом изменения данных.
                    Конфликты изменения данных разрешаются (выбирается одна из версий) автоматически, однако можно изменить результат автоматического разрешения конфликта. Для этого выделите элемент списка. +
                  • +
                  • В строке внизу списка выводится метод решения конфликта, который был выбран приложением. +
                  • +
                  • Для выявления отличий между двумя версиями нажмите Показать отличия. +
                  • +
                  • Для принятия решения, какую версию принять, можно просмотреть обе версии. Для этого нажмите Еще - Показать версию, созданную в этой информационной базе или Еще - Показать версию, полученную из другой информационной базы. +
                  • +
                  • Для просмотра элемента списка нажмите Еще - Изменить данные. +
                  • +
                  • После принятия решения о версии, которая должна быть сохранена, нажмите Подтвердить для сохранения результата автоматического разрешения конфликта или Пересмотреть для изменения результата рассмотрения конфликта на противоположный. После этого элемент становится неактивным, ему присваивается признак Рассмотрено и по умолчанию он скрывается из списка.  +
                  • +
                  • По умолчанию рассмотренные конфликты скрываются из списка. Для того чтобы показывать их тоже, нажмите Еще - Показывать рассмотренные конфликты. +
                  • +
                  • Для того чтобы заново проверить рассмотренные конфликты и что-либо изменить, нажмите Еще - Снять признак "Рассмотрено".

                  Непринятые по дате запрета

                  • В этом списке отображаются данные, которые были отклонены из-за установленного запрета на загрузку данных прошлых периодов. -
                  • Для сравнения отклоненных данных с текущими данными в программе нажмите Показать отличия (при наличии данных в текущей программе). -
                  • Для того чтобы открыть элемент, нажмите Еще - Изменить. -
                  • Для просмотра другой версии нажмите Еще - Показать непринятую версию. -
                  • Для получения данных, несмотря на установленный запрет загрузки данных, нажмите Принять версию. -
                  • Для удаления строки из списка без принятия решения нажмите Игнорировать.  -
                  • Для того, чтобы показать проигнорированные элементы, нажмите Еще - Показывать проигнорированные. -
                  • Для возвращения проигнорированного элемента в список нажмите Еще - Не игнорировать.

                  См. также:

                  + +
                • Для сравнения отклоненных данных с текущими данными в приложении нажмите Показать отличия (при наличии данных в текущем приложении). +
                • +
                • Для того чтобы открыть элемент, нажмите Еще - Изменить. +
                • +
                • Для просмотра другой версии нажмите Еще - Показать непринятую версию. +
                • +
                • Для получения данных, несмотря на установленный запрет загрузки данных, нажмите Принять версию. +
                • +
                • Для удаления строки из списка без принятия решения нажмите Игнорировать.  +
                • +
                • Для того, чтобы показать проигнорированные элементы, нажмите Еще - Показывать проигнорированные. +
                • +
                • Для возвращения проигнорированного элемента в список нажмите Еще - Не игнорировать.
                • См. также:

                  \ No newline at end of file diff --git a/SSL/src/InformationRegisters/УдаляемыеОбъекты/RecordSetModule.bsl b/SSL/src/InformationRegisters/УдаляемыеОбъекты/RecordSetModule.bsl index 887f5bdf0..c1ae5fd7f 100644 --- a/SSL/src/InformationRegisters/УдаляемыеОбъекты/RecordSetModule.bsl +++ b/SSL/src/InformationRegisters/УдаляемыеОбъекты/RecordSetModule.bsl @@ -1,5 +1,5 @@ /////////////////////////////////////////////////////////////////////////////////////////////////////// -// Copyright (c) 2024, ООО 1С-Софт +// Copyright (c) 2025, ООО 1С-Софт // Все права защищены. Эта программа и сопроводительные материалы предоставляются // в соответствии с условиями лицензии Attribution 4.0 International (CC BY 4.0) // Текст лицензии доступен по ссылке: diff --git a/SSL/src/InformationRegisters/УничтоженныеПерсональныеДанные/ManagerModule.bsl b/SSL/src/InformationRegisters/УничтоженныеПерсональныеДанные/ManagerModule.bsl index 183db3667..595518d18 100644 --- a/SSL/src/InformationRegisters/УничтоженныеПерсональныеДанные/ManagerModule.bsl +++ b/SSL/src/InformationRegisters/УничтоженныеПерсональныеДанные/ManagerModule.bsl @@ -1,5 +1,5 @@ /////////////////////////////////////////////////////////////////////////////////////////////////////// -// Copyright (c) 2024, ООО 1С-Софт +// Copyright (c) 2025, ООО 1С-Софт // Все права защищены. Эта программа и сопроводительные материалы предоставляются // в соответствии с условиями лицензии Attribution 4.0 International (CC BY 4.0) // Текст лицензии доступен по ссылке: diff --git a/SSL/src/InformationRegisters/УровниСокращенийАдресныхСведений/УровниСокращенийАдресныхСведений.mdo b/SSL/src/InformationRegisters/УровниСокращенийАдресныхСведений/УровниСокращенийАдресныхСведений.mdo index a691578ad..31c61946d 100644 --- a/SSL/src/InformationRegisters/УровниСокращенийАдресныхСведений/УровниСокращенийАдресныхСведений.mdo +++ b/SSL/src/InformationRegisters/УровниСокращенийАдресныхСведений/УровниСокращенийАдресныхСведений.mdo @@ -68,6 +68,54 @@ Use + + Актуально + + ru + Актуально + + + Boolean + + + + Use + Use + + + + ТипВКонце + + ru + Тип в конце + + + Boolean + + + + Use + Use + + + + СокращениеПриказаМинфинаРФ171н + + ru + Сокращение приказа минфина р ф171н + + + String + + 20 + + + + + Use + Use + + Сокращение diff --git a/SSL/src/InformationRegisters/ХранилищеФайлов/Forms/ФормаЗаписи/Module.bsl b/SSL/src/InformationRegisters/ХранилищеФайлов/Forms/ФормаЗаписи/Module.bsl index e74d50602..ff7fd5bd6 100644 --- a/SSL/src/InformationRegisters/ХранилищеФайлов/Forms/ФормаЗаписи/Module.bsl +++ b/SSL/src/InformationRegisters/ХранилищеФайлов/Forms/ФормаЗаписи/Module.bsl @@ -1,5 +1,5 @@ /////////////////////////////////////////////////////////////////////////////////////////////////////// -// Copyright (c) 2024, ООО 1С-Софт +// Copyright (c) 2025, ООО 1С-Софт // Все права защищены. Эта программа и сопроводительные материалы предоставляются // в соответствии с условиями лицензии Attribution 4.0 International (CC BY 4.0) // Текст лицензии доступен по ссылке: diff --git a/SSL/src/InformationRegisters/ХранилищеФайлов/Forms/ФормаСписка/Module.bsl b/SSL/src/InformationRegisters/ХранилищеФайлов/Forms/ФормаСписка/Module.bsl index 00fa69d3f..55c2c57ed 100644 --- a/SSL/src/InformationRegisters/ХранилищеФайлов/Forms/ФормаСписка/Module.bsl +++ b/SSL/src/InformationRegisters/ХранилищеФайлов/Forms/ФормаСписка/Module.bsl @@ -1,5 +1,5 @@ /////////////////////////////////////////////////////////////////////////////////////////////////////// -// Copyright (c) 2024, ООО 1С-Софт +// Copyright (c) 2025, ООО 1С-Софт // Все права защищены. Эта программа и сопроводительные материалы предоставляются // в соответствии с условиями лицензии Attribution 4.0 International (CC BY 4.0) // Текст лицензии доступен по ссылке: diff --git a/SSL/src/InformationRegisters/ХранилищеФайлов/ManagerModule.bsl b/SSL/src/InformationRegisters/ХранилищеФайлов/ManagerModule.bsl index ca0584439..508b8956a 100644 --- a/SSL/src/InformationRegisters/ХранилищеФайлов/ManagerModule.bsl +++ b/SSL/src/InformationRegisters/ХранилищеФайлов/ManagerModule.bsl @@ -1,5 +1,5 @@ /////////////////////////////////////////////////////////////////////////////////////////////////////// -// Copyright (c) 2024, ООО 1С-Софт +// Copyright (c) 2025, ООО 1С-Софт // Все права защищены. Эта программа и сопроводительные материалы предоставляются // в соответствии с условиями лицензии Attribution 4.0 International (CC BY 4.0) // Текст лицензии доступен по ссылке: @@ -10,67 +10,100 @@ #Область СлужебныйПрограммныйИнтерфейс -Процедура ЗаписатьДвоичныеДанные(Знач Файл, Знач ДвоичныеДанные) Экспорт +Процедура ЗаписатьДвоичныеДанные(Знач Файл, Знач ДвоичныеДанные, Знач ПараметрыЗаписиВИБ = Неопределено) Экспорт - Хеширование = Новый ХешированиеДанных(ХешФункция.SHA256); - - ЭтоПустыеДвоичныеДанные = (ДвоичныеДанные = Неопределено); - Если ЭтоПустыеДвоичныеДанные Тогда - ПустыеДвоичныеДанные = ПолучитьДвоичныеДанныеИзСтроки(""); - Хеширование.Добавить(ПустыеДвоичныеДанные); - Размер = ПустыеДвоичныеДанные.Размер(); - Иначе - Хеширование.Добавить(ДвоичныеДанные); - Размер = ДвоичныеДанные.Размер(); + Если ПараметрыЗаписиВИБ = Неопределено Тогда + ПараметрыЗаписиВИБ = РаботаСФайловымАрхивомСервер.ЗаполненныеПараметрыЗаписиВИнформационнуюБазу(Файл); КонецЕсли; - Хеш = ПолучитьBase64СтрокуИзДвоичныхДанных(Хеширование.ХешСумма); - + + РезультатХеширования = РаботаСФайловымАрхивомСервер.РезультатХешированияДвоичныхДанных(ДвоичныеДанные); + ЭтоПустыеДвоичныеДанные = РезультатХеширования.ЭтоПустыеДвоичныеДанные; + Размер = РезультатХеширования.Размер; + Хеш = РезультатХеширования.Хеш; + НачатьТранзакцию(); Попытка Блокировка = Новый БлокировкаДанных; ЭлементБлокировки = Блокировка.Добавить("Справочник.ХранилищеДвоичныхДанных"); ЭлементБлокировки.УстановитьЗначение("Хеш", Хеш); Блокировка.Заблокировать(); - + УдалитьДвоичныеДанные(Файл); - - Запрос = Новый Запрос; - Запрос.УстановитьПараметр("Хеш", Хеш); - Запрос.УстановитьПараметр("Размер", Размер); - Запрос.Текст = - "ВЫБРАТЬ - | ХранилищеДвоичныхДанных.Ссылка КАК Ссылка, - | РАЗМЕРХРАНИМЫХДАННЫХ(ХранилищеДвоичныхДанных.ДвоичныеДанные) КАК РазмерХранимыхДанных - |ИЗ - | Справочник.ХранилищеДвоичныхДанных КАК ХранилищеДвоичныхДанных - |ГДЕ - | ХранилищеДвоичныхДанных.Хеш = &Хеш - | И ХранилищеДвоичныхДанных.Размер = &Размер"; - Выборка = Запрос.Выполнить().Выбрать(); - ХранилищеДвоичныхДанныхСсылка = Неопределено; - Если Выборка.Следующий() Тогда - ХранилищеДвоичныхДанныхСсылка = Выборка.Ссылка; - Если Выборка.РазмерХранимыхДанных = 0 Тогда + + ДоступныХранилищаДвоичныхДанных = РаботаСФайловымАрхивомСервер.ДоступныХранилищаДвоичныхДанных(); + + СведенияОХранилищеДвоичныхДанных = РаботаСФайловымАрхивомСервер.СведенияОбЭлементеХранилищаДвоичныхДанныхПоХешуИРазмеру(Хеш, Размер); + ХранилищеДвоичныхДанныхСсылка = СведенияОХранилищеДвоичныхДанных.ХранилищеДвоичныхДанныхСсылка; + + Если ЗначениеЗаполнено(ХранилищеДвоичныхДанныхСсылка) Тогда + + Если СведенияОХранилищеДвоичныхДанных.РазмерХранимыхДанных = 0 Тогда ХранилищеДвоичныхДанныхОбъект = ХранилищеДвоичныхДанныхСсылка.ПолучитьОбъект(); ХранилищеДвоичныхДанныхОбъект.ДвоичныеДанные = ?(ЭтоПустыеДвоичныеДанные, Неопределено, Новый ХранилищеЗначения(ДвоичныеДанные, Новый СжатиеДанных(9))); ХранилищеДвоичныхДанныхОбъект.Записать(); - КонецЕсли; + КонецЕсли; + + Если Не ПараметрыЗаписиВИБ.ЭтоЗаписьВФайловыйАрхив + И Не ПараметрыЗаписиВИБ.НеИзменятьДвоичныеДанные + И ДоступныХранилищаДвоичныхДанных + И РаботаСФайловымАрхивомСервер.ХранилищеДвоичныхДанныхПрисутствуетВФайловомАрхиве(ХранилищеДвоичныхДанныхСсылка) Тогда + + ИмяРеквизитаДляЗаписиДвоичныхДанных = РаботаСФайламиВХранилищеДвоичныхДанныхСлужебный.ОпределитьРеквизитХраненияДвоичныхДанныхПоТипуХраненияФайлов(ПараметрыЗаписиВИБ.ТипХраненияФайла); + + ДвоичныеДанныеДляЗаписи = ?(ЭтоПустыеДвоичныеДанные, Неопределено, Новый ХранилищеЗначения(ДвоичныеДанные, Новый СжатиеДанных(9))); + + Если ИмяРеквизитаДляЗаписиДвоичныхДанных = "ДвоичныеДанные" Тогда + ХранилищеДвоичныхДанныхОбъект = ХранилищеДвоичныхДанныхСсылка.ПолучитьОбъект(); + ХранилищеДвоичныхДанныхОбъект.ДвоичныеДанные = ДвоичныеДанныеДляЗаписи; + ХранилищеДвоичныхДанныхОбъект.Записать(); + Иначе + ЗначениеДвоичныхДанных = Новый Структура(ИмяРеквизитаДляЗаписиДвоичныхДанных, ДвоичныеДанныеДляЗаписи); + РегистрыСведений.МестаХраненияДвоичныхДанных.ДобавитьИзменитьЗапись(ХранилищеДвоичныхДанныхСсылка, ЗначениеДвоичныхДанных); + КонецЕсли; + + РегистрыСведений.СведенияОХраненииДедуплицированныхФайлов.ДобавитьЗапись(ХранилищеДвоичныхДанныхСсылка, ПараметрыЗаписиВИБ); + + КонецЕсли; + Иначе ХранилищеДвоичныхДанныхОбъект = Справочники.ХранилищеДвоичныхДанных.СоздатьЭлемент(); ХранилищеДвоичныхДанныхОбъект.Размер = Размер; ХранилищеДвоичныхДанныхОбъект.Хеш = Хеш; - ХранилищеДвоичныхДанныхОбъект.ДвоичныеДанные = ?(ЭтоПустыеДвоичныеДанные, - Неопределено, Новый ХранилищеЗначения(ДвоичныеДанные, Новый СжатиеДанных(9))); + + Если ДоступныХранилищаДвоичныхДанных И ПараметрыЗаписиВИБ.ЭтоЗаписьВФайловыйАрхив Тогда + ДвоичныеДанныеДляЗаписи = ?(ЗначениеЗаполнено(ПараметрыЗаписиВИБ.ДвоичныеДанныеАрхива), + Новый ХранилищеЗначения(ПараметрыЗаписиВИБ.ДвоичныеДанныеАрхива, Новый СжатиеДанных(9)), + Неопределено); + Иначе + ДвоичныеДанныеДляЗаписи = ?(ЭтоПустыеДвоичныеДанные, Неопределено, Новый ХранилищеЗначения(ДвоичныеДанные, Новый СжатиеДанных(9))); + КонецЕсли; + + Если ДоступныХранилищаДвоичныхДанных Тогда + ИмяРеквизитаДляЗаписиДвоичныхДанных = РаботаСФайламиВХранилищеДвоичныхДанныхСлужебный.ОпределитьРеквизитХраненияДвоичныхДанныхПоТипуХраненияФайлов(ПараметрыЗаписиВИБ.ТипХраненияФайла, ПараметрыЗаписиВИБ.ЭтоЗаписьВФайловыйАрхив); + Иначе + ИмяРеквизитаДляЗаписиДвоичныхДанных = "ДвоичныеДанные"; + КонецЕсли; + + Если ИмяРеквизитаДляЗаписиДвоичныхДанных = "ДвоичныеДанные" Тогда + ХранилищеДвоичныхДанныхОбъект[ИмяРеквизитаДляЗаписиДвоичныхДанных] = ДвоичныеДанныеДляЗаписи; + КонецЕсли; + ХранилищеДвоичныхДанныхОбъект.Записать(); ХранилищеДвоичныхДанныхСсылка = ХранилищеДвоичныхДанныхОбъект.Ссылка; + + Если ИмяРеквизитаДляЗаписиДвоичныхДанных <> "ДвоичныеДанные" Тогда + + ЗначениеДвоичныхДанных = Новый Структура(ИмяРеквизитаДляЗаписиДвоичныхДанных, ДвоичныеДанныеДляЗаписи); + РегистрыСведений.МестаХраненияДвоичныхДанных.ДобавитьИзменитьЗапись(ХранилищеДвоичныхДанныхСсылка, ЗначениеДвоичныхДанных); + + КонецЕсли; + + РегистрыСведений.СведенияОХраненииДедуплицированныхФайлов.ДобавитьЗапись(ХранилищеДвоичныхДанныхСсылка, ПараметрыЗаписиВИБ); КонецЕсли; - - Запись = СоздатьМенеджерЗаписи(); - Запись.Файл = Файл; - Запись.ХранилищеДвоичныхДанных = ХранилищеДвоичныхДанныхСсылка; - Запись.Записать(Ложь); - + + ДобавитьЗапись(Файл, ХранилищеДвоичныхДанныхСсылка, Ложь); + ЗафиксироватьТранзакцию(); Исключение ОтменитьТранзакцию(); @@ -116,6 +149,11 @@ |ГДЕ | ХранилищеФайлов.ХранилищеДвоичныхДанных = &ХранилищеДвоичныхДанных"; Если Запрос.Выполнить().Пустой() Тогда + + РегистрыСведений.МестаХраненияДвоичныхДанных.УдалитьЗапись(Выборка.ХранилищеДвоичныхДанных); + + РегистрыСведений.СведенияОХраненииДедуплицированныхФайлов.УдалитьЗапись(Выборка.ХранилищеДвоичныхДанных); + ХранилищеДанных = Выборка.ХранилищеДвоичныхДанных.ПолучитьОбъект(); ХранилищеДанных.ОбменДанными.Загрузка = Истина; ХранилищеДанных.Удалить(); @@ -204,6 +242,7 @@ ДвоичныеДанные = Выборка.ДвоичныеДанныеФайла.Получить(); Если ТипЗнч(ДвоичныеДанные) = Тип("Картинка") Тогда + ДвоичныеДанные = ДвоичныеДанные.ПолучитьДвоичныеДанные(); ИначеЕсли ТипЗнч(ДвоичныеДанные) <> Тип("ДвоичныеДанные") Тогда @@ -228,7 +267,8 @@ // @skip-check query-in-loop - порционная обработка больших объемов данных. Если Не ЗаписьСуществует(Файл) Тогда - ЗаписатьДвоичныеДанные(Файл, ДвоичныеДанные); + ПараметрыЗаписиВИБ = РаботаСФайловымАрхивомСервер.ЗаполненныеПараметрыЗаписиВИнформационнуюБазу(Файл); + ЗаписатьДвоичныеДанные(Файл, ДвоичныеДанные, ПараметрыЗаписиВИБ); КонецЕсли; Запись = РегистрыСведений.УдалитьДвоичныеДанныеФайлов.СоздатьМенеджерЗаписи(); @@ -259,6 +299,15 @@ КонецПроцедуры +Процедура ДобавитьЗапись(Файл, ХранилищеДвоичныхДанныхСсылка, Замещать = Истина) Экспорт + + Запись = СоздатьМенеджерЗаписи(); + Запись.Файл = Файл; + Запись.ХранилищеДвоичныхДанных = ХранилищеДвоичныхДанныхСсылка; + Запись.Записать(Замещать); + +КонецПроцедуры + #Область ОбработчикиОбновления // Регистрирует на плане обмена ОбновлениеИнформационнойБазы объекты, @@ -346,8 +395,9 @@ МенеджерЗаписиВерсииФайла.Прочитать(); ДвоичныеДанные = МенеджерЗаписиВерсииФайла.ХранимыйФайл.Получить(); - // @skip-check query-in-loop - порционная обработка больших объемов данных. - ЗаписатьДвоичныеДанные(Выборка.Ссылка, ДвоичныеДанные); + ПараметрыЗаписиВИБ = РаботаСФайловымАрхивомСервер.ЗаполненныеПараметрыЗаписиВИнформационнуюБазу(Выборка.Ссылка); + // @skip-check query-in-loop - порционная обработка больших объемов данных. + ЗаписатьДвоичныеДанные(Выборка.Ссылка, ДвоичныеДанные, ПараметрыЗаписиВИБ); ОбновлениеИнформационнойБазы.ОтметитьВыполнениеОбработки(Выборка.Ссылка); ОбъектовОбработано = ОбъектовОбработано + 1; @@ -428,8 +478,9 @@ ДвоичныеДанныеФайлов.Файл = ФайлСсылка; ДвоичныеДанныеФайлов.Прочитать(); Если ДвоичныеДанныеФайлов.Выбран() Тогда - // @skip-check query-in-loop - порционная обработка больших объемов данных. - ЗаписатьДвоичныеДанные(Версия.Ссылка, ДвоичныеДанныеФайлов.ДвоичныеДанныеФайла.Получить()); + ПараметрыЗаписиВИБ = РаботаСФайловымАрхивомСервер.ЗаполненныеПараметрыЗаписиВИнформационнуюБазу(Версия); + // @skip-check query-in-loop - порционная обработка больших объемов данных. + ЗаписатьДвоичныеДанные(Версия.Ссылка, ДвоичныеДанныеФайлов.ДвоичныеДанныеФайла.Получить(), ПараметрыЗаписиВИБ); ДвоичныеДанныеФайлов.Удалить(); КонецЕсли; diff --git a/SSL/src/InformationRegisters/ХранилищеФайлов/ХранилищеФайлов.mdo b/SSL/src/InformationRegisters/ХранилищеФайлов/ХранилищеФайлов.mdo index 6379e9846..4291f924c 100644 --- a/SSL/src/InformationRegisters/ХранилищеФайлов/ХранилищеФайлов.mdo +++ b/SSL/src/InformationRegisters/ХранилищеФайлов/ХранилищеФайлов.mdo @@ -65,6 +65,7 @@ Use Use + Index Файл diff --git a/SSL/src/InformationRegisters/ЭлектронныеПодписи/Forms/ОбоснованиеДостоверностиПодписи/Module.bsl b/SSL/src/InformationRegisters/ЭлектронныеПодписи/Forms/ОбоснованиеДостоверностиПодписи/Module.bsl index c6da978ba..4736cdcad 100644 --- a/SSL/src/InformationRegisters/ЭлектронныеПодписи/Forms/ОбоснованиеДостоверностиПодписи/Module.bsl +++ b/SSL/src/InformationRegisters/ЭлектронныеПодписи/Forms/ОбоснованиеДостоверностиПодписи/Module.bsl @@ -1,5 +1,5 @@ /////////////////////////////////////////////////////////////////////////////////////////////////////// -// Copyright (c) 2024, ООО 1С-Софт +// Copyright (c) 2025, ООО 1С-Софт // Все права защищены. Эта программа и сопроводительные материалы предоставляются // в соответствии с условиями лицензии Attribution 4.0 International (CC BY 4.0) // Текст лицензии доступен по ссылке: diff --git a/SSL/src/InformationRegisters/ЭлектронныеПодписи/ManagerModule.bsl b/SSL/src/InformationRegisters/ЭлектронныеПодписи/ManagerModule.bsl index dc882f836..9250e6588 100644 --- a/SSL/src/InformationRegisters/ЭлектронныеПодписи/ManagerModule.bsl +++ b/SSL/src/InformationRegisters/ЭлектронныеПодписи/ManagerModule.bsl @@ -1,5 +1,5 @@ /////////////////////////////////////////////////////////////////////////////////////////////////////// -// Copyright (c) 2024, ООО 1С-Софт +// Copyright (c) 2025, ООО 1С-Софт // Все права защищены. Эта программа и сопроводительные материалы предоставляются // в соответствии с условиями лицензии Attribution 4.0 International (CC BY 4.0) // Текст лицензии доступен по ссылке: diff --git a/SSL/src/Reports/АнализЖурналаРегистрации/Forms/СведенияОРегламентномЗадании/Module.bsl b/SSL/src/Reports/АнализЖурналаРегистрации/Forms/СведенияОРегламентномЗадании/Module.bsl index 53da9a359..5d81c2283 100644 --- a/SSL/src/Reports/АнализЖурналаРегистрации/Forms/СведенияОРегламентномЗадании/Module.bsl +++ b/SSL/src/Reports/АнализЖурналаРегистрации/Forms/СведенияОРегламентномЗадании/Module.bsl @@ -1,5 +1,5 @@ /////////////////////////////////////////////////////////////////////////////////////////////////////// -// Copyright (c) 2024, ООО 1С-Софт +// Copyright (c) 2025, ООО 1С-Софт // Все права защищены. Эта программа и сопроводительные материалы предоставляются // в соответствии с условиями лицензии Attribution 4.0 International (CC BY 4.0) // Текст лицензии доступен по ссылке: diff --git a/SSL/src/Reports/АнализЖурналаРегистрации/ManagerModule.bsl b/SSL/src/Reports/АнализЖурналаРегистрации/ManagerModule.bsl index da96bda74..98d76751c 100644 --- a/SSL/src/Reports/АнализЖурналаРегистрации/ManagerModule.bsl +++ b/SSL/src/Reports/АнализЖурналаРегистрации/ManagerModule.bsl @@ -1,5 +1,5 @@ /////////////////////////////////////////////////////////////////////////////////////////////////////// -// Copyright (c) 2024, ООО 1С-Софт +// Copyright (c) 2025, ООО 1С-Софт // Все права защищены. Эта программа и сопроводительные материалы предоставляются // в соответствии с условиями лицензии Attribution 4.0 International (CC BY 4.0) // Текст лицензии доступен по ссылке: diff --git a/SSL/src/Reports/АнализЖурналаРегистрации/ObjectModule.bsl b/SSL/src/Reports/АнализЖурналаРегистрации/ObjectModule.bsl index 31f018a84..bdd5a09dc 100644 --- a/SSL/src/Reports/АнализЖурналаРегистрации/ObjectModule.bsl +++ b/SSL/src/Reports/АнализЖурналаРегистрации/ObjectModule.bsl @@ -1,5 +1,5 @@ /////////////////////////////////////////////////////////////////////////////////////////////////////// -// Copyright (c) 2024, ООО 1С-Софт +// Copyright (c) 2025, ООО 1С-Софт // Все права защищены. Эта программа и сопроводительные материалы предоставляются // в соответствии с условиями лицензии Attribution 4.0 International (CC BY 4.0) // Текст лицензии доступен по ссылке: diff --git a/SSL/src/Reports/АнализОпроса/Forms/РасшифровкаПростыхОтветов/Module.bsl b/SSL/src/Reports/АнализОпроса/Forms/РасшифровкаПростыхОтветов/Module.bsl index 243a3254e..332d8a357 100644 --- a/SSL/src/Reports/АнализОпроса/Forms/РасшифровкаПростыхОтветов/Module.bsl +++ b/SSL/src/Reports/АнализОпроса/Forms/РасшифровкаПростыхОтветов/Module.bsl @@ -1,5 +1,5 @@ /////////////////////////////////////////////////////////////////////////////////////////////////////// -// Copyright (c) 2024, ООО 1С-Софт +// Copyright (c) 2025, ООО 1С-Софт // Все права защищены. Эта программа и сопроводительные материалы предоставляются // в соответствии с условиями лицензии Attribution 4.0 International (CC BY 4.0) // Текст лицензии доступен по ссылке: diff --git a/SSL/src/Reports/АнализОпроса/Forms/РасшифровкаТабличныхВопросов/Module.bsl b/SSL/src/Reports/АнализОпроса/Forms/РасшифровкаТабличныхВопросов/Module.bsl index 63bc5641f..ba2acbdb4 100644 --- a/SSL/src/Reports/АнализОпроса/Forms/РасшифровкаТабличныхВопросов/Module.bsl +++ b/SSL/src/Reports/АнализОпроса/Forms/РасшифровкаТабличныхВопросов/Module.bsl @@ -1,5 +1,5 @@ /////////////////////////////////////////////////////////////////////////////////////////////////////// -// Copyright (c) 2024, ООО 1С-Софт +// Copyright (c) 2025, ООО 1С-Софт // Все права защищены. Эта программа и сопроводительные материалы предоставляются // в соответствии с условиями лицензии Attribution 4.0 International (CC BY 4.0) // Текст лицензии доступен по ссылке: diff --git a/SSL/src/Reports/АнализОпроса/Forms/ФормаОтчета/Module.bsl b/SSL/src/Reports/АнализОпроса/Forms/ФормаОтчета/Module.bsl index 4c7d67a11..7718647e0 100644 --- a/SSL/src/Reports/АнализОпроса/Forms/ФормаОтчета/Module.bsl +++ b/SSL/src/Reports/АнализОпроса/Forms/ФормаОтчета/Module.bsl @@ -1,5 +1,5 @@ /////////////////////////////////////////////////////////////////////////////////////////////////////// -// Copyright (c) 2024, ООО 1С-Софт +// Copyright (c) 2025, ООО 1С-Софт // Все права защищены. Эта программа и сопроводительные материалы предоставляются // в соответствии с условиями лицензии Attribution 4.0 International (CC BY 4.0) // Текст лицензии доступен по ссылке: diff --git a/SSL/src/Reports/АнализОпроса/ManagerModule.bsl b/SSL/src/Reports/АнализОпроса/ManagerModule.bsl index 3e46eaf5a..783f937a8 100644 --- a/SSL/src/Reports/АнализОпроса/ManagerModule.bsl +++ b/SSL/src/Reports/АнализОпроса/ManagerModule.bsl @@ -1,5 +1,5 @@ /////////////////////////////////////////////////////////////////////////////////////////////////////// -// Copyright (c) 2024, ООО 1С-Софт +// Copyright (c) 2025, ООО 1С-Софт // Все права защищены. Эта программа и сопроводительные материалы предоставляются // в соответствии с условиями лицензии Attribution 4.0 International (CC BY 4.0) // Текст лицензии доступен по ссылке: diff --git a/SSL/src/Reports/АнализОпроса/ObjectModule.bsl b/SSL/src/Reports/АнализОпроса/ObjectModule.bsl index 0ebcf5923..b0ddc60d5 100644 --- a/SSL/src/Reports/АнализОпроса/ObjectModule.bsl +++ b/SSL/src/Reports/АнализОпроса/ObjectModule.bsl @@ -1,5 +1,5 @@ /////////////////////////////////////////////////////////////////////////////////////////////////////// -// Copyright (c) 2024, ООО 1С-Софт +// Copyright (c) 2025, ООО 1С-Софт // Все права защищены. Эта программа и сопроводительные материалы предоставляются // в соответствии с условиями лицензии Attribution 4.0 International (CC BY 4.0) // Текст лицензии доступен по ссылке: diff --git a/SSL/src/Reports/АнализПравДоступа/Forms/ВыборСтрокиРегистра/Module.bsl b/SSL/src/Reports/АнализПравДоступа/Forms/ВыборСтрокиРегистра/Module.bsl index 051da4088..c49f28411 100644 --- a/SSL/src/Reports/АнализПравДоступа/Forms/ВыборСтрокиРегистра/Module.bsl +++ b/SSL/src/Reports/АнализПравДоступа/Forms/ВыборСтрокиРегистра/Module.bsl @@ -1,5 +1,5 @@ /////////////////////////////////////////////////////////////////////////////////////////////////////// -// Copyright (c) 2024, ООО 1С-Софт +// Copyright (c) 2025, ООО 1С-Софт // Все права защищены. Эта программа и сопроводительные материалы предоставляются // в соответствии с условиями лицензии Attribution 4.0 International (CC BY 4.0) // Текст лицензии доступен по ссылке: diff --git a/SSL/src/Reports/АнализПравДоступа/ManagerModule.bsl b/SSL/src/Reports/АнализПравДоступа/ManagerModule.bsl index 801694b26..2ae1f4f37 100644 --- a/SSL/src/Reports/АнализПравДоступа/ManagerModule.bsl +++ b/SSL/src/Reports/АнализПравДоступа/ManagerModule.bsl @@ -1,5 +1,5 @@ /////////////////////////////////////////////////////////////////////////////////////////////////////// -// Copyright (c) 2024, ООО 1С-Софт +// Copyright (c) 2025, ООО 1С-Софт // Все права защищены. Эта программа и сопроводительные материалы предоставляются // в соответствии с условиями лицензии Attribution 4.0 International (CC BY 4.0) // Текст лицензии доступен по ссылке: @@ -58,6 +58,8 @@ НастройкиВарианта.Размещение.Вставить(ПодсистемаКонтроля, "Важный"); КонецЕсли; + ОтключеноОграничениеНаУровнеЗаписей = УправлениеДоступомСлужебный.ОтключеноОграничениеНаУровнеЗаписей(); + НастройкиВарианта = МодульВариантыОтчетов.ОписаниеВарианта(Настройки, НастройкиОтчета, "ПраваПользователейНаТаблицы"); НастройкиВарианта.Описание = НСтр("ru = 'Показывает права пользователей на таблицы информационной базы.'"); НастройкиВарианта.Включен = Ложь; @@ -88,11 +90,11 @@ НастройкиВарианта = МодульВариантыОтчетов.ОписаниеВарианта(Настройки, НастройкиОтчета, "ПраваПользователейНаОбъект"); НастройкиВарианта.Описание = НСтр("ru = 'Показывает рассчитанные права пользователей на объект информационной базы (документ, элемент справочника и др.).'"); - НастройкиВарианта.Включен = Ложь; + НастройкиВарианта.Включен = Не ОтключеноОграничениеНаУровнеЗаписей; НастройкиВарианта = МодульВариантыОтчетов.ОписаниеВарианта(Настройки, НастройкиОтчета, "ПраваПользователейВРазрезеРазрешенногоЗначения"); НастройкиВарианта.Описание = НСтр("ru = 'Показывает пользователей, которым открыт доступ по выбранному значению (организация, склад и др.) к объектам информационной базы (документам, элементам справочника и др.'"); - НастройкиВарианта.Включен = Ложь; + НастройкиВарианта.Включен = Не ОтключеноОграничениеНаУровнеЗаписей; КонецПроцедуры @@ -431,6 +433,18 @@ Функция ВидыОграниченийПрав(ДляВнешнихПользователей = Неопределено, ДобавитьЭтоАвторизованныйПользователь = Ложь, ВсеТаблицыСОграничением = Неопределено) Экспорт + Если УправлениеДоступомСлужебный.ОтключеноОграничениеНаУровнеЗаписей() Тогда + Результат = Новый ТаблицаЗначений; + Результат.Колонки.Добавить("ДляВнешнихПользователей", Новый ОписаниеТипов("Булево")); + Результат.Колонки.Добавить("Таблица", Новый ОписаниеТипов( + "СправочникСсылка.ИдентификаторыОбъектовМетаданных, СправочникСсылка.ИдентификаторыОбъектовРасширений")); + Результат.Колонки.Добавить("Право", Новый ОписаниеТипов("Строка",,,, Новый КвалификаторыСтроки(50))); + Результат.Колонки.Добавить("ВидДоступа", Метаданные.ОпределяемыеТипы.ЗначениеДоступа.Тип); + Результат.Колонки.Добавить("ЭтоАвторизованныйПользователь", Новый ОписаниеТипов("Булево")); + Результат.Колонки.Добавить("Представление", Новый ОписаниеТипов("Строка",,,, Новый КвалификаторыСтроки(150))); + Возврат Результат; + КонецЕсли; + УниверсальноеОграничение = УправлениеДоступомСлужебный.ОграничиватьДоступНаУровнеЗаписейУниверсально(Истина, Истина); @@ -911,6 +925,10 @@ Процедура ДобавитьКомандуПраваНаЭлементДанных(КомандыОтчетов, Параметры) + Если УправлениеДоступомСлужебный.ОтключеноОграничениеНаУровнеЗаписей() Тогда + Возврат; + КонецЕсли; + ДобавитьКоманду = Истина; ПредставлениеВарианта = ПредставлениеВариантаПраваПользователейНаОбъект(Параметры, ДобавитьКоманду); @@ -931,7 +949,8 @@ Процедура ДобавитьКомандуПраваВРазрезеЗначения(КомандыОтчетов, Параметры) - Если Не Пользователи.ЭтоПолноправныйПользователь() Тогда + Если Не Пользователи.ЭтоПолноправныйПользователь() + Или УправлениеДоступомСлужебный.ОтключеноОграничениеНаУровнеЗаписей() Тогда Возврат; КонецЕсли; diff --git a/SSL/src/Reports/АнализПравДоступа/ObjectModule.bsl b/SSL/src/Reports/АнализПравДоступа/ObjectModule.bsl index 2538a8d91..2f79f00d3 100644 --- a/SSL/src/Reports/АнализПравДоступа/ObjectModule.bsl +++ b/SSL/src/Reports/АнализПравДоступа/ObjectModule.bsl @@ -1,5 +1,5 @@ /////////////////////////////////////////////////////////////////////////////////////////////////////// -// Copyright (c) 2024, ООО 1С-Софт +// Copyright (c) 2025, ООО 1С-Софт // Все права защищены. Эта программа и сопроводительные материалы предоставляются // в соответствии с условиями лицензии Attribution 4.0 International (CC BY 4.0) // Текст лицензии доступен по ссылке: @@ -429,7 +429,8 @@ НастройкиПрав = Новый Массив; Если Вариант = "ПраваПользователяНаТаблицу" Тогда - Если НастройкиПравПоТаблицеВОтборе(НастройкиКД, ПользовательскиеНастройкиКД) <> Неопределено Тогда + Если Не ВариантСОграничениямиДоступа() + Или НастройкиПравПоТаблицеВОтборе(НастройкиКД, ПользовательскиеНастройкиКД) <> Неопределено Тогда НастройкиПрав = "*"; КонецЕсли; Группировки = Новый Соответствие; @@ -803,7 +804,7 @@ Функция ТекстЗапросаОбщий() - Возврат + ТекстЗапроса = "ВЫБРАТЬ | ПраваРолей.ОбъектМетаданных КАК ОбъектМетаданных, | ПраваРолей.Роль КАК Роль, @@ -896,6 +897,20 @@ |ИНДЕКСИРОВАТЬ ПО | Таблица"; + Если УправлениеДоступомСлужебный.ОтключеноОграничениеНаУровнеЗаписей() Тогда + ТекстЗапроса = СтрЗаменить(ТекстЗапроса, + "МАКСИМУМ(ПраваРолей.ПравоЧтениеБезОграничения)", // @query-part-1 + "МАКСИМУМ(ПраваРолей.ПравоЧтение)"); // @query-part-1 + ТекстЗапроса = СтрЗаменить(ТекстЗапроса, + "МАКСИМУМ(ПраваРолей.ПравоИзменениеБезОграничения)", // @query-part-1 + "МАКСИМУМ(ПраваРолей.ПравоИзменение)"); // @query-part-1 + ТекстЗапроса = СтрЗаменить(ТекстЗапроса, + "МАКСИМУМ(ПраваРолей.ПравоДобавлениеБезОграничения)", // @query-part-1 + "МАКСИМУМ(ПраваРолей.ПравоДобавление)"); // @query-part-1 + КонецЕсли; + + Возврат ТекстЗапроса; + КонецФункции Функция ТекстЗапросаБезГруппировкиПоОтчетам() @@ -2379,6 +2394,10 @@ // Функция НастройкиПравПоТаблицеВОтборе(НастройкиКД = Неопределено, ПользовательскиеНастройкиКД = Неопределено) + Если Не УправлениеДоступом.ОграничиватьДоступНаУровнеЗаписей() Тогда + Возврат Неопределено; + КонецЕсли; + Таблицы = ОтборПоТаблицам(, НастройкиКД, ПользовательскиеНастройкиКД); Если Не ЗначениеЗаполнено(Таблицы) Или Таблицы.Количество() <> 1 diff --git a/SSL/src/Reports/АналитическийОтчетПоАнкетированию/ManagerModule.bsl b/SSL/src/Reports/АналитическийОтчетПоАнкетированию/ManagerModule.bsl index 283f81d6d..67548c073 100644 --- a/SSL/src/Reports/АналитическийОтчетПоАнкетированию/ManagerModule.bsl +++ b/SSL/src/Reports/АналитическийОтчетПоАнкетированию/ManagerModule.bsl @@ -1,5 +1,5 @@ /////////////////////////////////////////////////////////////////////////////////////////////////////// -// Copyright (c) 2024, ООО 1С-Софт +// Copyright (c) 2025, ООО 1С-Софт // Все права защищены. Эта программа и сопроводительные материалы предоставляются // в соответствии с условиями лицензии Attribution 4.0 International (CC BY 4.0) // Текст лицензии доступен по ссылке: diff --git a/SSL/src/Reports/БизнесПроцессы/ManagerModule.bsl b/SSL/src/Reports/БизнесПроцессы/ManagerModule.bsl index 2ad752dd9..397830315 100644 --- a/SSL/src/Reports/БизнесПроцессы/ManagerModule.bsl +++ b/SSL/src/Reports/БизнесПроцессы/ManagerModule.bsl @@ -1,5 +1,5 @@ /////////////////////////////////////////////////////////////////////////////////////////////////////// -// Copyright (c) 2024, ООО 1С-Софт +// Copyright (c) 2025, ООО 1С-Софт // Все права защищены. Эта программа и сопроводительные материалы предоставляются // в соответствии с условиями лицензии Attribution 4.0 International (CC BY 4.0) // Текст лицензии доступен по ссылке: diff --git a/SSL/src/Reports/ДатыЗапретаЗагрузки/Forms/ФормаОтчета/Module.bsl b/SSL/src/Reports/ДатыЗапретаЗагрузки/Forms/ФормаОтчета/Module.bsl index 45336ac9c..f778d4d60 100644 --- a/SSL/src/Reports/ДатыЗапретаЗагрузки/Forms/ФормаОтчета/Module.bsl +++ b/SSL/src/Reports/ДатыЗапретаЗагрузки/Forms/ФормаОтчета/Module.bsl @@ -1,5 +1,5 @@ /////////////////////////////////////////////////////////////////////////////////////////////////////// -// Copyright (c) 2024, ООО 1С-Софт +// Copyright (c) 2025, ООО 1С-Софт // Все права защищены. Эта программа и сопроводительные материалы предоставляются // в соответствии с условиями лицензии Attribution 4.0 International (CC BY 4.0) // Текст лицензии доступен по ссылке: diff --git a/SSL/src/Reports/ДатыЗапретаЗагрузки/ManagerModule.bsl b/SSL/src/Reports/ДатыЗапретаЗагрузки/ManagerModule.bsl index 0d8fdc559..eec567b93 100644 --- a/SSL/src/Reports/ДатыЗапретаЗагрузки/ManagerModule.bsl +++ b/SSL/src/Reports/ДатыЗапретаЗагрузки/ManagerModule.bsl @@ -1,5 +1,5 @@ /////////////////////////////////////////////////////////////////////////////////////////////////////// -// Copyright (c) 2024, ООО 1С-Софт +// Copyright (c) 2025, ООО 1С-Софт // Все права защищены. Эта программа и сопроводительные материалы предоставляются // в соответствии с условиями лицензии Attribution 4.0 International (CC BY 4.0) // Текст лицензии доступен по ссылке: diff --git a/SSL/src/Reports/ДатыЗапретаЗагрузки/ObjectModule.bsl b/SSL/src/Reports/ДатыЗапретаЗагрузки/ObjectModule.bsl index 8ef1afc23..8a70a2538 100644 --- a/SSL/src/Reports/ДатыЗапретаЗагрузки/ObjectModule.bsl +++ b/SSL/src/Reports/ДатыЗапретаЗагрузки/ObjectModule.bsl @@ -1,5 +1,5 @@ /////////////////////////////////////////////////////////////////////////////////////////////////////// -// Copyright (c) 2024, ООО 1С-Софт +// Copyright (c) 2025, ООО 1С-Софт // Все права защищены. Эта программа и сопроводительные материалы предоставляются // в соответствии с условиями лицензии Attribution 4.0 International (CC BY 4.0) // Текст лицензии доступен по ссылке: diff --git a/SSL/src/Reports/ДатыЗапретаИзменения/Forms/ФормаОтчета/Module.bsl b/SSL/src/Reports/ДатыЗапретаИзменения/Forms/ФормаОтчета/Module.bsl index b4943d507..f347561fe 100644 --- a/SSL/src/Reports/ДатыЗапретаИзменения/Forms/ФормаОтчета/Module.bsl +++ b/SSL/src/Reports/ДатыЗапретаИзменения/Forms/ФормаОтчета/Module.bsl @@ -1,5 +1,5 @@ /////////////////////////////////////////////////////////////////////////////////////////////////////// -// Copyright (c) 2024, ООО 1С-Софт +// Copyright (c) 2025, ООО 1С-Софт // Все права защищены. Эта программа и сопроводительные материалы предоставляются // в соответствии с условиями лицензии Attribution 4.0 International (CC BY 4.0) // Текст лицензии доступен по ссылке: diff --git a/SSL/src/Reports/ДатыЗапретаИзменения/ManagerModule.bsl b/SSL/src/Reports/ДатыЗапретаИзменения/ManagerModule.bsl index 037c3590a..dfcddf93b 100644 --- a/SSL/src/Reports/ДатыЗапретаИзменения/ManagerModule.bsl +++ b/SSL/src/Reports/ДатыЗапретаИзменения/ManagerModule.bsl @@ -1,5 +1,5 @@ /////////////////////////////////////////////////////////////////////////////////////////////////////// -// Copyright (c) 2024, ООО 1С-Софт +// Copyright (c) 2025, ООО 1С-Софт // Все права защищены. Эта программа и сопроводительные материалы предоставляются // в соответствии с условиями лицензии Attribution 4.0 International (CC BY 4.0) // Текст лицензии доступен по ссылке: diff --git a/SSL/src/Reports/ДатыЗапретаИзменения/ObjectModule.bsl b/SSL/src/Reports/ДатыЗапретаИзменения/ObjectModule.bsl index 225f3f2e4..f303abaca 100644 --- a/SSL/src/Reports/ДатыЗапретаИзменения/ObjectModule.bsl +++ b/SSL/src/Reports/ДатыЗапретаИзменения/ObjectModule.bsl @@ -1,5 +1,5 @@ /////////////////////////////////////////////////////////////////////////////////////////////////////// -// Copyright (c) 2024, ООО 1С-Софт +// Copyright (c) 2025, ООО 1С-Софт // Все права защищены. Эта программа и сопроводительные материалы предоставляются // в соответствии с условиями лицензии Attribution 4.0 International (CC BY 4.0) // Текст лицензии доступен по ссылке: diff --git a/SSL/src/Reports/ДвиженияДокумента/ManagerModule.bsl b/SSL/src/Reports/ДвиженияДокумента/ManagerModule.bsl index eb494c3c1..3a45d0fd4 100644 --- a/SSL/src/Reports/ДвиженияДокумента/ManagerModule.bsl +++ b/SSL/src/Reports/ДвиженияДокумента/ManagerModule.bsl @@ -1,5 +1,5 @@ /////////////////////////////////////////////////////////////////////////////////////////////////////// -// Copyright (c) 2024, ООО 1С-Софт +// Copyright (c) 2025, ООО 1С-Софт // Все права защищены. Эта программа и сопроводительные материалы предоставляются // в соответствии с условиями лицензии Attribution 4.0 International (CC BY 4.0) // Текст лицензии доступен по ссылке: diff --git a/SSL/src/Reports/ДвиженияДокумента/ObjectModule.bsl b/SSL/src/Reports/ДвиженияДокумента/ObjectModule.bsl index 4042f6ab7..576e0bbae 100644 --- a/SSL/src/Reports/ДвиженияДокумента/ObjectModule.bsl +++ b/SSL/src/Reports/ДвиженияДокумента/ObjectModule.bsl @@ -1,5 +1,5 @@ /////////////////////////////////////////////////////////////////////////////////////////////////////// -// Copyright (c) 2024, ООО 1С-Софт +// Copyright (c) 2025, ООО 1С-Софт // Все права защищены. Эта программа и сопроводительные материалы предоставляются // в соответствии с условиями лицензии Attribution 4.0 International (CC BY 4.0) // Текст лицензии доступен по ссылке: diff --git a/SSL/src/Reports/ДлительностьОтложенногоОбновления/ManagerModule.bsl b/SSL/src/Reports/ДлительностьОтложенногоОбновления/ManagerModule.bsl index 369ab176d..397aa1b2b 100644 --- a/SSL/src/Reports/ДлительностьОтложенногоОбновления/ManagerModule.bsl +++ b/SSL/src/Reports/ДлительностьОтложенногоОбновления/ManagerModule.bsl @@ -1,5 +1,5 @@ /////////////////////////////////////////////////////////////////////////////////////////////////////// -// Copyright (c) 2024, ООО 1С-Софт +// Copyright (c) 2025, ООО 1С-Софт // Все права защищены. Эта программа и сопроводительные материалы предоставляются // в соответствии с условиями лицензии Attribution 4.0 International (CC BY 4.0) // Текст лицензии доступен по ссылке: diff --git a/SSL/src/Reports/ДлительностьОтложенногоОбновления/ObjectModule.bsl b/SSL/src/Reports/ДлительностьОтложенногоОбновления/ObjectModule.bsl index 20ba1e3cf..81c7fd6cd 100644 --- a/SSL/src/Reports/ДлительностьОтложенногоОбновления/ObjectModule.bsl +++ b/SSL/src/Reports/ДлительностьОтложенногоОбновления/ObjectModule.bsl @@ -1,5 +1,5 @@ /////////////////////////////////////////////////////////////////////////////////////////////////////// -// Copyright (c) 2024, ООО 1С-Софт +// Copyright (c) 2025, ООО 1С-Софт // Все права защищены. Эта программа и сопроводительные материалы предоставляются // в соответствии с условиями лицензии Attribution 4.0 International (CC BY 4.0) // Текст лицензии доступен по ссылке: diff --git a/SSL/src/Reports/ЗависшиеЗадачи/ManagerModule.bsl b/SSL/src/Reports/ЗависшиеЗадачи/ManagerModule.bsl index a4b62695d..9f04a8272 100644 --- a/SSL/src/Reports/ЗависшиеЗадачи/ManagerModule.bsl +++ b/SSL/src/Reports/ЗависшиеЗадачи/ManagerModule.bsl @@ -1,5 +1,5 @@ /////////////////////////////////////////////////////////////////////////////////////////////////////// -// Copyright (c) 2024, ООО 1С-Софт +// Copyright (c) 2025, ООО 1С-Софт // Все права защищены. Эта программа и сопроводительные материалы предоставляются // в соответствии с условиями лицензии Attribution 4.0 International (CC BY 4.0) // Текст лицензии доступен по ссылке: diff --git a/SSL/src/Reports/Задания/ManagerModule.bsl b/SSL/src/Reports/Задания/ManagerModule.bsl index ab45d6e69..d0527f0f1 100644 --- a/SSL/src/Reports/Задания/ManagerModule.bsl +++ b/SSL/src/Reports/Задания/ManagerModule.bsl @@ -1,5 +1,5 @@ /////////////////////////////////////////////////////////////////////////////////////////////////////// -// Copyright (c) 2024, ООО 1С-Софт +// Copyright (c) 2025, ООО 1С-Софт // Все права защищены. Эта программа и сопроводительные материалы предоставляются // в соответствии с условиями лицензии Attribution 4.0 International (CC BY 4.0) // Текст лицензии доступен по ссылке: diff --git a/SSL/src/Reports/Задания/ObjectModule.bsl b/SSL/src/Reports/Задания/ObjectModule.bsl index a1ae9fc4d..3d5d4bb5d 100644 --- a/SSL/src/Reports/Задания/ObjectModule.bsl +++ b/SSL/src/Reports/Задания/ObjectModule.bsl @@ -1,5 +1,5 @@ /////////////////////////////////////////////////////////////////////////////////////////////////////// -// Copyright (c) 2024, ООО 1С-Софт +// Copyright (c) 2025, ООО 1С-Софт // Все права защищены. Эта программа и сопроводительные материалы предоставляются // в соответствии с условиями лицензии Attribution 4.0 International (CC BY 4.0) // Текст лицензии доступен по ссылке: diff --git a/SSL/src/Reports/Задачи/ManagerModule.bsl b/SSL/src/Reports/Задачи/ManagerModule.bsl index 198792991..480ab4ac1 100644 --- a/SSL/src/Reports/Задачи/ManagerModule.bsl +++ b/SSL/src/Reports/Задачи/ManagerModule.bsl @@ -1,5 +1,5 @@ /////////////////////////////////////////////////////////////////////////////////////////////////////// -// Copyright (c) 2024, ООО 1С-Софт +// Copyright (c) 2025, ООО 1С-Софт // Все права защищены. Эта программа и сопроводительные материалы предоставляются // в соответствии с условиями лицензии Attribution 4.0 International (CC BY 4.0) // Текст лицензии доступен по ссылке: diff --git a/SSL/src/Reports/Задачи/ObjectModule.bsl b/SSL/src/Reports/Задачи/ObjectModule.bsl index a1ae9fc4d..3d5d4bb5d 100644 --- a/SSL/src/Reports/Задачи/ObjectModule.bsl +++ b/SSL/src/Reports/Задачи/ObjectModule.bsl @@ -1,5 +1,5 @@ /////////////////////////////////////////////////////////////////////////////////////////////////////// -// Copyright (c) 2024, ООО 1С-Софт +// Copyright (c) 2025, ООО 1С-Софт // Все права защищены. Эта программа и сопроводительные материалы предоставляются // в соответствии с условиями лицензии Attribution 4.0 International (CC BY 4.0) // Текст лицензии доступен по ссылке: diff --git a/SSL/src/Reports/ЗадачиИстекающиеНаДату/ManagerModule.bsl b/SSL/src/Reports/ЗадачиИстекающиеНаДату/ManagerModule.bsl index 218e21e80..bfdd04204 100644 --- a/SSL/src/Reports/ЗадачиИстекающиеНаДату/ManagerModule.bsl +++ b/SSL/src/Reports/ЗадачиИстекающиеНаДату/ManagerModule.bsl @@ -1,5 +1,5 @@ /////////////////////////////////////////////////////////////////////////////////////////////////////// -// Copyright (c) 2024, ООО 1С-Софт +// Copyright (c) 2025, ООО 1С-Софт // Все права защищены. Эта программа и сопроводительные материалы предоставляются // в соответствии с условиями лицензии Attribution 4.0 International (CC BY 4.0) // Текст лицензии доступен по ссылке: diff --git a/SSL/src/Reports/ИзменениеРазрешенныхЗначенийГруппДоступа/ManagerModule.bsl b/SSL/src/Reports/ИзменениеРазрешенныхЗначенийГруппДоступа/ManagerModule.bsl index 96313d5f4..7d2291590 100644 --- a/SSL/src/Reports/ИзменениеРазрешенныхЗначенийГруппДоступа/ManagerModule.bsl +++ b/SSL/src/Reports/ИзменениеРазрешенныхЗначенийГруппДоступа/ManagerModule.bsl @@ -1,5 +1,5 @@ /////////////////////////////////////////////////////////////////////////////////////////////////////// -// Copyright (c) 2024, ООО 1С-Софт +// Copyright (c) 2025, ООО 1С-Софт // Все права защищены. Эта программа и сопроводительные материалы предоставляются // в соответствии с условиями лицензии Attribution 4.0 International (CC BY 4.0) // Текст лицензии доступен по ссылке: @@ -25,6 +25,10 @@ КонецЕсли; МодульУправлениеДоступомСлужебный = ОбщегоНазначения.ОбщийМодуль("УправлениеДоступомСлужебный"); + Если МодульУправлениеДоступомСлужебный.ОтключеноОграничениеНаУровнеЗаписей() Тогда + Возврат; + КонецЕсли; + ПараметрыДляОтчетов = МодульУправлениеДоступомСлужебный.ПараметрыДляОтчетов(); Если Параметры.ИмяФормы <> ПараметрыДляОтчетов.ПолноеИмяФормыСпискаГруппДоступа @@ -53,12 +57,17 @@ Возврат; КонецЕсли; + Если ОбщегоНазначения.ПодсистемаСуществует("СтандартныеПодсистемы.УправлениеДоступом") Тогда + МодульУправлениеДоступомСлужебный = ОбщегоНазначения.ОбщийМодуль("УправлениеДоступомСлужебный"); + КонецЕсли; + МодульВариантыОтчетов = ОбщегоНазначения.ОбщийМодуль("ВариантыОтчетов"); НастройкиОтчета.ОпределитьНастройкиФормы = Истина; НастройкиОтчета.ГруппироватьПоОтчету = Ложь; НастройкиВарианта = МодульВариантыОтчетов.ОписаниеВарианта(Настройки, НастройкиОтчета, "Основной"); - НастройкиВарианта.Включен = ОбщегоНазначения.ПодсистемаСуществует("СтандартныеПодсистемы.УправлениеДоступом"); + НастройкиВарианта.Включен = МодульУправлениеДоступомСлужебный <> Неопределено + И Не МодульУправлениеДоступомСлужебный.ОтключеноОграничениеНаУровнеЗаписей(); НастройкиВарианта.Описание = НСтр("ru = 'Выводит изменения разрешенных значений групп доступа с учетом изменения групп значений за указанный период по событиям журнала регистрации.'"); diff --git a/SSL/src/Reports/ИзменениеРазрешенныхЗначенийГруппДоступа/ObjectModule.bsl b/SSL/src/Reports/ИзменениеРазрешенныхЗначенийГруппДоступа/ObjectModule.bsl index a4f30b528..f6f3378c6 100644 --- a/SSL/src/Reports/ИзменениеРазрешенныхЗначенийГруппДоступа/ObjectModule.bsl +++ b/SSL/src/Reports/ИзменениеРазрешенныхЗначенийГруппДоступа/ObjectModule.bsl @@ -1,5 +1,5 @@ /////////////////////////////////////////////////////////////////////////////////////////////////////// -// Copyright (c) 2024, ООО 1С-Софт +// Copyright (c) 2025, ООО 1С-Софт // Все права защищены. Эта программа и сопроводительные материалы предоставляются // в соответствии с условиями лицензии Attribution 4.0 International (CC BY 4.0) // Текст лицензии доступен по ссылке: diff --git a/SSL/src/Reports/ИзменениеРолейПрофилей/ManagerModule.bsl b/SSL/src/Reports/ИзменениеРолейПрофилей/ManagerModule.bsl index 8d0ade4ad..81e942573 100644 --- a/SSL/src/Reports/ИзменениеРолейПрофилей/ManagerModule.bsl +++ b/SSL/src/Reports/ИзменениеРолейПрофилей/ManagerModule.bsl @@ -1,5 +1,5 @@ /////////////////////////////////////////////////////////////////////////////////////////////////////// -// Copyright (c) 2024, ООО 1С-Софт +// Copyright (c) 2025, ООО 1С-Софт // Все права защищены. Эта программа и сопроводительные материалы предоставляются // в соответствии с условиями лицензии Attribution 4.0 International (CC BY 4.0) // Текст лицензии доступен по ссылке: diff --git a/SSL/src/Reports/ИзменениеРолейПрофилей/ObjectModule.bsl b/SSL/src/Reports/ИзменениеРолейПрофилей/ObjectModule.bsl index dfdc29f49..b550d624b 100644 --- a/SSL/src/Reports/ИзменениеРолейПрофилей/ObjectModule.bsl +++ b/SSL/src/Reports/ИзменениеРолейПрофилей/ObjectModule.bsl @@ -1,5 +1,5 @@ /////////////////////////////////////////////////////////////////////////////////////////////////////// -// Copyright (c) 2024, ООО 1С-Софт +// Copyright (c) 2025, ООО 1С-Софт // Все права защищены. Эта программа и сопроводительные материалы предоставляются // в соответствии с условиями лицензии Attribution 4.0 International (CC BY 4.0) // Текст лицензии доступен по ссылке: diff --git a/SSL/src/Reports/ИзменениеУчастниковГруппДоступа/ManagerModule.bsl b/SSL/src/Reports/ИзменениеУчастниковГруппДоступа/ManagerModule.bsl index 840cba4be..df6ceb818 100644 --- a/SSL/src/Reports/ИзменениеУчастниковГруппДоступа/ManagerModule.bsl +++ b/SSL/src/Reports/ИзменениеУчастниковГруппДоступа/ManagerModule.bsl @@ -1,5 +1,5 @@ /////////////////////////////////////////////////////////////////////////////////////////////////////// -// Copyright (c) 2024, ООО 1С-Софт +// Copyright (c) 2025, ООО 1С-Софт // Все права защищены. Эта программа и сопроводительные материалы предоставляются // в соответствии с условиями лицензии Attribution 4.0 International (CC BY 4.0) // Текст лицензии доступен по ссылке: diff --git a/SSL/src/Reports/ИзменениеУчастниковГруппДоступа/ObjectModule.bsl b/SSL/src/Reports/ИзменениеУчастниковГруппДоступа/ObjectModule.bsl index 253c04c2b..64493f8d4 100644 --- a/SSL/src/Reports/ИзменениеУчастниковГруппДоступа/ObjectModule.bsl +++ b/SSL/src/Reports/ИзменениеУчастниковГруппДоступа/ObjectModule.bsl @@ -1,5 +1,5 @@ /////////////////////////////////////////////////////////////////////////////////////////////////////// -// Copyright (c) 2024, ООО 1С-Софт +// Copyright (c) 2025, ООО 1С-Софт // Все права защищены. Эта программа и сопроводительные материалы предоставляются // в соответствии с условиями лицензии Attribution 4.0 International (CC BY 4.0) // Текст лицензии доступен по ссылке: diff --git a/SSL/src/Reports/ИзменениеУчастниковГруппПользователей/ManagerModule.bsl b/SSL/src/Reports/ИзменениеУчастниковГруппПользователей/ManagerModule.bsl index d05199047..e414e1484 100644 --- a/SSL/src/Reports/ИзменениеУчастниковГруппПользователей/ManagerModule.bsl +++ b/SSL/src/Reports/ИзменениеУчастниковГруппПользователей/ManagerModule.bsl @@ -1,5 +1,5 @@ /////////////////////////////////////////////////////////////////////////////////////////////////////// -// Copyright (c) 2024, ООО 1С-Софт +// Copyright (c) 2025, ООО 1С-Софт // Все права защищены. Эта программа и сопроводительные материалы предоставляются // в соответствии с условиями лицензии Attribution 4.0 International (CC BY 4.0) // Текст лицензии доступен по ссылке: diff --git a/SSL/src/Reports/ИзменениеУчастниковГруппПользователей/ObjectModule.bsl b/SSL/src/Reports/ИзменениеУчастниковГруппПользователей/ObjectModule.bsl index 84e605dda..19af7c09b 100644 --- a/SSL/src/Reports/ИзменениеУчастниковГруппПользователей/ObjectModule.bsl +++ b/SSL/src/Reports/ИзменениеУчастниковГруппПользователей/ObjectModule.bsl @@ -1,5 +1,5 @@ /////////////////////////////////////////////////////////////////////////////////////////////////////// -// Copyright (c) 2024, ООО 1С-Софт +// Copyright (c) 2025, ООО 1С-Софт // Все права защищены. Эта программа и сопроводительные материалы предоставляются // в соответствии с условиями лицензии Attribution 4.0 International (CC BY 4.0) // Текст лицензии доступен по ссылке: diff --git a/SSL/src/Reports/ИзменениеУчетныхЗаписей/ManagerModule.bsl b/SSL/src/Reports/ИзменениеУчетныхЗаписей/ManagerModule.bsl index 1a30ee448..4c49cdf60 100644 --- a/SSL/src/Reports/ИзменениеУчетныхЗаписей/ManagerModule.bsl +++ b/SSL/src/Reports/ИзменениеУчетныхЗаписей/ManagerModule.bsl @@ -1,5 +1,5 @@ /////////////////////////////////////////////////////////////////////////////////////////////////////// -// Copyright (c) 2024, ООО 1С-Софт +// Copyright (c) 2025, ООО 1С-Софт // Все права защищены. Эта программа и сопроводительные материалы предоставляются // в соответствии с условиями лицензии Attribution 4.0 International (CC BY 4.0) // Текст лицензии доступен по ссылке: diff --git a/SSL/src/Reports/ИзменениеУчетныхЗаписей/ObjectModule.bsl b/SSL/src/Reports/ИзменениеУчетныхЗаписей/ObjectModule.bsl index 9c9ee3b85..f7d069db9 100644 --- a/SSL/src/Reports/ИзменениеУчетныхЗаписей/ObjectModule.bsl +++ b/SSL/src/Reports/ИзменениеУчетныхЗаписей/ObjectModule.bsl @@ -1,5 +1,5 @@ /////////////////////////////////////////////////////////////////////////////////////////////////////// -// Copyright (c) 2024, ООО 1С-Софт +// Copyright (c) 2025, ООО 1С-Софт // Все права защищены. Эта программа и сопроводительные материалы предоставляются // в соответствии с условиями лицензии Attribution 4.0 International (CC BY 4.0) // Текст лицензии доступен по ссылке: diff --git a/SSL/src/Reports/ИспользуемыеВнешниеРесурсы/ManagerModule.bsl b/SSL/src/Reports/ИспользуемыеВнешниеРесурсы/ManagerModule.bsl index 7c0436a03..58a52efb5 100644 --- a/SSL/src/Reports/ИспользуемыеВнешниеРесурсы/ManagerModule.bsl +++ b/SSL/src/Reports/ИспользуемыеВнешниеРесурсы/ManagerModule.bsl @@ -1,5 +1,5 @@ /////////////////////////////////////////////////////////////////////////////////////////////////////// -// Copyright (c) 2024, ООО 1С-Софт +// Copyright (c) 2025, ООО 1С-Софт // Все права защищены. Эта программа и сопроводительные материалы предоставляются // в соответствии с условиями лицензии Attribution 4.0 International (CC BY 4.0) // Текст лицензии доступен по ссылке: diff --git a/SSL/src/Reports/ИспользуемыеВнешниеРесурсы/ObjectModule.bsl b/SSL/src/Reports/ИспользуемыеВнешниеРесурсы/ObjectModule.bsl index 74b64499c..60f4db046 100644 --- a/SSL/src/Reports/ИспользуемыеВнешниеРесурсы/ObjectModule.bsl +++ b/SSL/src/Reports/ИспользуемыеВнешниеРесурсы/ObjectModule.bsl @@ -1,5 +1,5 @@ /////////////////////////////////////////////////////////////////////////////////////////////////////// -// Copyright (c) 2024, ООО 1С-Софт +// Copyright (c) 2025, ООО 1С-Софт // Все права защищены. Эта программа и сопроводительные материалы предоставляются // в соответствии с условиями лицензии Attribution 4.0 International (CC BY 4.0) // Текст лицензии доступен по ссылке: diff --git a/SSL/src/Reports/КонтрольРассылкиОтчетов/ManagerModule.bsl b/SSL/src/Reports/КонтрольРассылкиОтчетов/ManagerModule.bsl index aede3de01..be9aa8e00 100644 --- a/SSL/src/Reports/КонтрольРассылкиОтчетов/ManagerModule.bsl +++ b/SSL/src/Reports/КонтрольРассылкиОтчетов/ManagerModule.bsl @@ -1,5 +1,5 @@ /////////////////////////////////////////////////////////////////////////////////////////////////////// -// Copyright (c) 2024, ООО 1С-Софт +// Copyright (c) 2025, ООО 1С-Софт // Все права защищены. Эта программа и сопроводительные материалы предоставляются // в соответствии с условиями лицензии Attribution 4.0 International (CC BY 4.0) // Текст лицензии доступен по ссылке: diff --git a/SSL/src/Reports/КонтрольРассылкиОтчетов/ObjectModule.bsl b/SSL/src/Reports/КонтрольРассылкиОтчетов/ObjectModule.bsl index 8d1b526a5..57bf393b6 100644 --- a/SSL/src/Reports/КонтрольРассылкиОтчетов/ObjectModule.bsl +++ b/SSL/src/Reports/КонтрольРассылкиОтчетов/ObjectModule.bsl @@ -1,5 +1,5 @@ /////////////////////////////////////////////////////////////////////////////////////////////////////// -// Copyright (c) 2024, ООО 1С-Софт +// Copyright (c) 2025, ООО 1С-Софт // Все права защищены. Эта программа и сопроводительные материалы предоставляются // в соответствии с условиями лицензии Attribution 4.0 International (CC BY 4.0) // Текст лицензии доступен по ссылке: diff --git a/SSL/src/Reports/МестаИспользованияСсылок/ManagerModule.bsl b/SSL/src/Reports/МестаИспользованияСсылок/ManagerModule.bsl index f2eddde7c..b10475353 100644 --- a/SSL/src/Reports/МестаИспользованияСсылок/ManagerModule.bsl +++ b/SSL/src/Reports/МестаИспользованияСсылок/ManagerModule.bsl @@ -1,5 +1,5 @@ /////////////////////////////////////////////////////////////////////////////////////////////////////// -// Copyright (c) 2024, ООО 1С-Софт +// Copyright (c) 2025, ООО 1С-Софт // Все права защищены. Эта программа и сопроводительные материалы предоставляются // в соответствии с условиями лицензии Attribution 4.0 International (CC BY 4.0) // Текст лицензии доступен по ссылке: diff --git a/SSL/src/Reports/МестаИспользованияСсылок/ObjectModule.bsl b/SSL/src/Reports/МестаИспользованияСсылок/ObjectModule.bsl index 2ed1e5731..1a27df2ac 100644 --- a/SSL/src/Reports/МестаИспользованияСсылок/ObjectModule.bsl +++ b/SSL/src/Reports/МестаИспользованияСсылок/ObjectModule.bsl @@ -1,5 +1,5 @@ /////////////////////////////////////////////////////////////////////////////////////////////////////// -// Copyright (c) 2024, ООО 1С-Софт +// Copyright (c) 2025, ООО 1С-Софт // Все права защищены. Эта программа и сопроводительные материалы предоставляются // в соответствии с условиями лицензии Attribution 4.0 International (CC BY 4.0) // Текст лицензии доступен по ссылке: diff --git a/SSL/src/Reports/ОбъемНенужныхФайлов/ManagerModule.bsl b/SSL/src/Reports/ОбъемНенужныхФайлов/ManagerModule.bsl index 4fd9a71c0..27145e754 100644 --- a/SSL/src/Reports/ОбъемНенужныхФайлов/ManagerModule.bsl +++ b/SSL/src/Reports/ОбъемНенужныхФайлов/ManagerModule.bsl @@ -1,5 +1,5 @@ /////////////////////////////////////////////////////////////////////////////////////////////////////// -// Copyright (c) 2024, ООО 1С-Софт +// Copyright (c) 2025, ООО 1С-Софт // Все права защищены. Эта программа и сопроводительные материалы предоставляются // в соответствии с условиями лицензии Attribution 4.0 International (CC BY 4.0) // Текст лицензии доступен по ссылке: diff --git a/SSL/src/Reports/ОбъемНенужныхФайлов/ObjectModule.bsl b/SSL/src/Reports/ОбъемНенужныхФайлов/ObjectModule.bsl index 5e780e632..cac5cbe81 100644 --- a/SSL/src/Reports/ОбъемНенужныхФайлов/ObjectModule.bsl +++ b/SSL/src/Reports/ОбъемНенужныхФайлов/ObjectModule.bsl @@ -1,5 +1,5 @@ /////////////////////////////////////////////////////////////////////////////////////////////////////// -// Copyright (c) 2024, ООО 1С-Софт +// Copyright (c) 2025, ООО 1С-Софт // Все права защищены. Эта программа и сопроводительные материалы предоставляются // в соответствии с условиями лицензии Attribution 4.0 International (CC BY 4.0) // Текст лицензии доступен по ссылке: diff --git a/SSL/src/Reports/ОценкаПроизводительности/ManagerModule.bsl b/SSL/src/Reports/ОценкаПроизводительности/ManagerModule.bsl index 15dbb080e..e89a55b63 100644 --- a/SSL/src/Reports/ОценкаПроизводительности/ManagerModule.bsl +++ b/SSL/src/Reports/ОценкаПроизводительности/ManagerModule.bsl @@ -1,5 +1,5 @@ /////////////////////////////////////////////////////////////////////////////////////////////////////// -// Copyright (c) 2024, ООО 1С-Софт +// Copyright (c) 2025, ООО 1С-Софт // Все права защищены. Эта программа и сопроводительные материалы предоставляются // в соответствии с условиями лицензии Attribution 4.0 International (CC BY 4.0) // Текст лицензии доступен по ссылке: diff --git a/SSL/src/Reports/ОценкаПроизводительности/ObjectModule.bsl b/SSL/src/Reports/ОценкаПроизводительности/ObjectModule.bsl index a2a5a8ee8..add3238a0 100644 --- a/SSL/src/Reports/ОценкаПроизводительности/ObjectModule.bsl +++ b/SSL/src/Reports/ОценкаПроизводительности/ObjectModule.bsl @@ -1,5 +1,5 @@ /////////////////////////////////////////////////////////////////////////////////////////////////////// -// Copyright (c) 2024, ООО 1С-Софт +// Copyright (c) 2025, ООО 1С-Софт // Все права защищены. Эта программа и сопроводительные материалы предоставляются // в соответствии с условиями лицензии Attribution 4.0 International (CC BY 4.0) // Текст лицензии доступен по ссылке: diff --git a/SSL/src/Reports/ПользователиПоПодразделениям/ManagerModule.bsl b/SSL/src/Reports/ПользователиПоПодразделениям/ManagerModule.bsl index 60bcef88e..985381f31 100644 --- a/SSL/src/Reports/ПользователиПоПодразделениям/ManagerModule.bsl +++ b/SSL/src/Reports/ПользователиПоПодразделениям/ManagerModule.bsl @@ -1,5 +1,5 @@ /////////////////////////////////////////////////////////////////////////////////////////////////////// -// Copyright (c) 2024, ООО 1С-Софт +// Copyright (c) 2025, ООО 1С-Софт // Все права защищены. Эта программа и сопроводительные материалы предоставляются // в соответствии с условиями лицензии Attribution 4.0 International (CC BY 4.0) // Текст лицензии доступен по ссылке: diff --git a/SSL/src/Reports/ПользователиПоПодразделениям/ObjectModule.bsl b/SSL/src/Reports/ПользователиПоПодразделениям/ObjectModule.bsl index b50528bcc..8792a2be7 100644 --- a/SSL/src/Reports/ПользователиПоПодразделениям/ObjectModule.bsl +++ b/SSL/src/Reports/ПользователиПоПодразделениям/ObjectModule.bsl @@ -1,5 +1,5 @@ /////////////////////////////////////////////////////////////////////////////////////////////////////// -// Copyright (c) 2024, ООО 1С-Софт +// Copyright (c) 2025, ООО 1С-Софт // Все права защищены. Эта программа и сопроводительные материалы предоставляются // в соответствии с условиями лицензии Attribution 4.0 International (CC BY 4.0) // Текст лицензии доступен по ссылке: diff --git a/SSL/src/Reports/ПраваДоступа/ManagerModule.bsl b/SSL/src/Reports/ПраваДоступа/ManagerModule.bsl index 693faad71..9b28c7729 100644 --- a/SSL/src/Reports/ПраваДоступа/ManagerModule.bsl +++ b/SSL/src/Reports/ПраваДоступа/ManagerModule.bsl @@ -1,5 +1,5 @@ /////////////////////////////////////////////////////////////////////////////////////////////////////// -// Copyright (c) 2024, ООО 1С-Софт +// Copyright (c) 2025, ООО 1С-Софт // Все права защищены. Эта программа и сопроводительные материалы предоставляются // в соответствии с условиями лицензии Attribution 4.0 International (CC BY 4.0) // Текст лицензии доступен по ссылке: diff --git a/SSL/src/Reports/ПраваДоступа/ObjectModule.bsl b/SSL/src/Reports/ПраваДоступа/ObjectModule.bsl index 8cee271f2..f7297e968 100644 --- a/SSL/src/Reports/ПраваДоступа/ObjectModule.bsl +++ b/SSL/src/Reports/ПраваДоступа/ObjectModule.bsl @@ -1,5 +1,5 @@ /////////////////////////////////////////////////////////////////////////////////////////////////////// -// Copyright (c) 2024, ООО 1С-Софт +// Copyright (c) 2025, ООО 1С-Софт // Все права защищены. Эта программа и сопроводительные материалы предоставляются // в соответствии с условиями лицензии Attribution 4.0 International (CC BY 4.0) // Текст лицензии доступен по ссылке: diff --git a/SSL/src/Reports/ПраваРолей/ManagerModule.bsl b/SSL/src/Reports/ПраваРолей/ManagerModule.bsl index 60b4c03eb..08bce2f7f 100644 --- a/SSL/src/Reports/ПраваРолей/ManagerModule.bsl +++ b/SSL/src/Reports/ПраваРолей/ManagerModule.bsl @@ -1,5 +1,5 @@ /////////////////////////////////////////////////////////////////////////////////////////////////////// -// Copyright (c) 2024, ООО 1С-Софт +// Copyright (c) 2025, ООО 1С-Софт // Все права защищены. Эта программа и сопроводительные материалы предоставляются // в соответствии с условиями лицензии Attribution 4.0 International (CC BY 4.0) // Текст лицензии доступен по ссылке: diff --git a/SSL/src/Reports/ПраваРолей/ObjectModule.bsl b/SSL/src/Reports/ПраваРолей/ObjectModule.bsl index d832317c0..a4702276f 100644 --- a/SSL/src/Reports/ПраваРолей/ObjectModule.bsl +++ b/SSL/src/Reports/ПраваРолей/ObjectModule.bsl @@ -1,5 +1,5 @@ /////////////////////////////////////////////////////////////////////////////////////////////////////// -// Copyright (c) 2024, ООО 1С-Софт +// Copyright (c) 2025, ООО 1С-Софт // Все права защищены. Эта программа и сопроводительные материалы предоставляются // в соответствии с условиями лицензии Attribution 4.0 International (CC BY 4.0) // Текст лицензии доступен по ссылке: diff --git a/SSL/src/Reports/ПроверкаЦелостностиТома/ManagerModule.bsl b/SSL/src/Reports/ПроверкаЦелостностиТома/ManagerModule.bsl index 2b3ae70d1..b98896905 100644 --- a/SSL/src/Reports/ПроверкаЦелостностиТома/ManagerModule.bsl +++ b/SSL/src/Reports/ПроверкаЦелостностиТома/ManagerModule.bsl @@ -1,5 +1,5 @@ /////////////////////////////////////////////////////////////////////////////////////////////////////// -// Copyright (c) 2024, ООО 1С-Софт +// Copyright (c) 2025, ООО 1С-Софт // Все права защищены. Эта программа и сопроводительные материалы предоставляются // в соответствии с условиями лицензии Attribution 4.0 International (CC BY 4.0) // Текст лицензии доступен по ссылке: diff --git a/SSL/src/Reports/ПроверкаЦелостностиТома/ObjectModule.bsl b/SSL/src/Reports/ПроверкаЦелостностиТома/ObjectModule.bsl index 47df110ee..07f820b95 100644 --- a/SSL/src/Reports/ПроверкаЦелостностиТома/ObjectModule.bsl +++ b/SSL/src/Reports/ПроверкаЦелостностиТома/ObjectModule.bsl @@ -1,5 +1,5 @@ /////////////////////////////////////////////////////////////////////////////////////////////////////// -// Copyright (c) 2024, ООО 1С-Софт +// Copyright (c) 2025, ООО 1С-Софт // Все права защищены. Эта программа и сопроводительные материалы предоставляются // в соответствии с условиями лицензии Attribution 4.0 International (CC BY 4.0) // Текст лицензии доступен по ссылке: diff --git a/SSL/src/Reports/ПрогрессОбновленияОбластейДанных/ObjectModule.bsl b/SSL/src/Reports/ПрогрессОбновленияОбластейДанных/ObjectModule.bsl index d5aa26e8a..6c3392f64 100644 --- a/SSL/src/Reports/ПрогрессОбновленияОбластейДанных/ObjectModule.bsl +++ b/SSL/src/Reports/ПрогрессОбновленияОбластейДанных/ObjectModule.bsl @@ -1,5 +1,5 @@ /////////////////////////////////////////////////////////////////////////////////////////////////////// -// Copyright (c) 2024, ООО 1С-Софт +// Copyright (c) 2025, ООО 1С-Софт // Все права защищены. Эта программа и сопроводительные материалы предоставляются // в соответствии с условиями лицензии Attribution 4.0 International (CC BY 4.0) // Текст лицензии доступен по ссылке: diff --git a/SSL/src/Reports/ПрогрессОтложенногоОбновления/Forms/ЗависимостьОбработчика/Module.bsl b/SSL/src/Reports/ПрогрессОтложенногоОбновления/Forms/ЗависимостьОбработчика/Module.bsl index 9b015599d..95e1515de 100644 --- a/SSL/src/Reports/ПрогрессОтложенногоОбновления/Forms/ЗависимостьОбработчика/Module.bsl +++ b/SSL/src/Reports/ПрогрессОтложенногоОбновления/Forms/ЗависимостьОбработчика/Module.bsl @@ -1,5 +1,5 @@ /////////////////////////////////////////////////////////////////////////////////////////////////////// -// Copyright (c) 2024, ООО 1С-Софт +// Copyright (c) 2025, ООО 1С-Софт // Все права защищены. Эта программа и сопроводительные материалы предоставляются // в соответствии с условиями лицензии Attribution 4.0 International (CC BY 4.0) // Текст лицензии доступен по ссылке: diff --git a/SSL/src/Reports/ПрогрессОтложенногоОбновления/Forms/ЗарегистрированныеДанные/Module.bsl b/SSL/src/Reports/ПрогрессОтложенногоОбновления/Forms/ЗарегистрированныеДанные/Module.bsl index 9d44fa64a..4de19ae64 100644 --- a/SSL/src/Reports/ПрогрессОтложенногоОбновления/Forms/ЗарегистрированныеДанные/Module.bsl +++ b/SSL/src/Reports/ПрогрессОтложенногоОбновления/Forms/ЗарегистрированныеДанные/Module.bsl @@ -1,5 +1,5 @@ /////////////////////////////////////////////////////////////////////////////////////////////////////// -// Copyright (c) 2024, ООО 1С-Софт +// Copyright (c) 2025, ООО 1С-Софт // Все права защищены. Эта программа и сопроводительные материалы предоставляются // в соответствии с условиями лицензии Attribution 4.0 International (CC BY 4.0) // Текст лицензии доступен по ссылке: diff --git a/SSL/src/Reports/ПрогрессОтложенногоОбновления/ManagerModule.bsl b/SSL/src/Reports/ПрогрессОтложенногоОбновления/ManagerModule.bsl index 988cae2d3..6c0ad3c45 100644 --- a/SSL/src/Reports/ПрогрессОтложенногоОбновления/ManagerModule.bsl +++ b/SSL/src/Reports/ПрогрессОтложенногоОбновления/ManagerModule.bsl @@ -1,5 +1,5 @@ /////////////////////////////////////////////////////////////////////////////////////////////////////// -// Copyright (c) 2024, ООО 1С-Софт +// Copyright (c) 2025, ООО 1С-Софт // Все права защищены. Эта программа и сопроводительные материалы предоставляются // в соответствии с условиями лицензии Attribution 4.0 International (CC BY 4.0) // Текст лицензии доступен по ссылке: diff --git a/SSL/src/Reports/ПрогрессОтложенногоОбновления/ObjectModule.bsl b/SSL/src/Reports/ПрогрессОтложенногоОбновления/ObjectModule.bsl index f581f1a22..b36c3a315 100644 --- a/SSL/src/Reports/ПрогрессОтложенногоОбновления/ObjectModule.bsl +++ b/SSL/src/Reports/ПрогрессОтложенногоОбновления/ObjectModule.bsl @@ -1,5 +1,5 @@ /////////////////////////////////////////////////////////////////////////////////////////////////////// -// Copyright (c) 2024, ООО 1С-Софт +// Copyright (c) 2025, ООО 1С-Софт // Все права защищены. Эта программа и сопроводительные материалы предоставляются // в соответствии с условиями лицензии Attribution 4.0 International (CC BY 4.0) // Текст лицензии доступен по ссылке: diff --git a/SSL/src/Reports/ПродлениеСрокаДействияЭлектронныхПодписей/ManagerModule.bsl b/SSL/src/Reports/ПродлениеСрокаДействияЭлектронныхПодписей/ManagerModule.bsl index d438ff21f..10ec1b7c2 100644 --- a/SSL/src/Reports/ПродлениеСрокаДействияЭлектронныхПодписей/ManagerModule.bsl +++ b/SSL/src/Reports/ПродлениеСрокаДействияЭлектронныхПодписей/ManagerModule.bsl @@ -1,5 +1,5 @@ /////////////////////////////////////////////////////////////////////////////////////////////////////// -// Copyright (c) 2024, ООО 1С-Софт +// Copyright (c) 2025, ООО 1С-Софт // Все права защищены. Эта программа и сопроводительные материалы предоставляются // в соответствии с условиями лицензии Attribution 4.0 International (CC BY 4.0) // Текст лицензии доступен по ссылке: diff --git a/SSL/src/Reports/ПродлениеСрокаДействияЭлектронныхПодписей/ObjectModule.bsl b/SSL/src/Reports/ПродлениеСрокаДействияЭлектронныхПодписей/ObjectModule.bsl index e3393f635..61e8e5b01 100644 --- a/SSL/src/Reports/ПродлениеСрокаДействияЭлектронныхПодписей/ObjectModule.bsl +++ b/SSL/src/Reports/ПродлениеСрокаДействияЭлектронныхПодписей/ObjectModule.bsl @@ -1,5 +1,5 @@ /////////////////////////////////////////////////////////////////////////////////////////////////////// -// Copyright (c) 2024, ООО 1С-Софт +// Copyright (c) 2025, ООО 1С-Софт // Все права защищены. Эта программа и сопроводительные материалы предоставляются // в соответствии с условиями лицензии Attribution 4.0 International (CC BY 4.0) // Текст лицензии доступен по ссылке: diff --git a/SSL/src/Reports/ПросроченныеЗадачи/ManagerModule.bsl b/SSL/src/Reports/ПросроченныеЗадачи/ManagerModule.bsl index 8d759dc65..6abf6b125 100644 --- a/SSL/src/Reports/ПросроченныеЗадачи/ManagerModule.bsl +++ b/SSL/src/Reports/ПросроченныеЗадачи/ManagerModule.bsl @@ -1,5 +1,5 @@ /////////////////////////////////////////////////////////////////////////////////////////////////////// -// Copyright (c) 2024, ООО 1С-Софт +// Copyright (c) 2025, ООО 1С-Софт // Все права защищены. Эта программа и сопроводительные материалы предоставляются // в соответствии с условиями лицензии Attribution 4.0 International (CC BY 4.0) // Текст лицензии доступен по ссылке: diff --git a/SSL/src/Reports/ПросроченныеЗадачи/ObjectModule.bsl b/SSL/src/Reports/ПросроченныеЗадачи/ObjectModule.bsl index 2635815ab..44a5e256e 100644 --- a/SSL/src/Reports/ПросроченныеЗадачи/ObjectModule.bsl +++ b/SSL/src/Reports/ПросроченныеЗадачи/ObjectModule.bsl @@ -1,5 +1,5 @@ /////////////////////////////////////////////////////////////////////////////////////////////////////// -// Copyright (c) 2024, ООО 1С-Софт +// Copyright (c) 2025, ООО 1С-Софт // Все права защищены. Эта программа и сопроводительные материалы предоставляются // в соответствии с условиями лицензии Attribution 4.0 International (CC BY 4.0) // Текст лицензии доступен по ссылке: diff --git a/SSL/src/Reports/РезультатыПроверкиУчета/Forms/АвтоисправлениеПроблемы/Module.bsl b/SSL/src/Reports/РезультатыПроверкиУчета/Forms/АвтоисправлениеПроблемы/Module.bsl index a857d35f9..78ffc2772 100644 --- a/SSL/src/Reports/РезультатыПроверкиУчета/Forms/АвтоисправлениеПроблемы/Module.bsl +++ b/SSL/src/Reports/РезультатыПроверкиУчета/Forms/АвтоисправлениеПроблемы/Module.bsl @@ -1,5 +1,5 @@ /////////////////////////////////////////////////////////////////////////////////////////////////////// -// Copyright (c) 2024, ООО 1С-Софт +// Copyright (c) 2025, ООО 1С-Софт // Все права защищены. Эта программа и сопроводительные материалы предоставляются // в соответствии с условиями лицензии Attribution 4.0 International (CC BY 4.0) // Текст лицензии доступен по ссылке: diff --git a/SSL/src/Reports/РезультатыПроверкиУчета/ManagerModule.bsl b/SSL/src/Reports/РезультатыПроверкиУчета/ManagerModule.bsl index 3096c7fc3..c31782b38 100644 --- a/SSL/src/Reports/РезультатыПроверкиУчета/ManagerModule.bsl +++ b/SSL/src/Reports/РезультатыПроверкиУчета/ManagerModule.bsl @@ -1,5 +1,5 @@ /////////////////////////////////////////////////////////////////////////////////////////////////////// -// Copyright (c) 2024, ООО 1С-Софт +// Copyright (c) 2025, ООО 1С-Софт // Все права защищены. Эта программа и сопроводительные материалы предоставляются // в соответствии с условиями лицензии Attribution 4.0 International (CC BY 4.0) // Текст лицензии доступен по ссылке: diff --git a/SSL/src/Reports/РезультатыПроверкиУчета/ObjectModule.bsl b/SSL/src/Reports/РезультатыПроверкиУчета/ObjectModule.bsl index 4b273c28d..ab6fe80a0 100644 --- a/SSL/src/Reports/РезультатыПроверкиУчета/ObjectModule.bsl +++ b/SSL/src/Reports/РезультатыПроверкиУчета/ObjectModule.bsl @@ -1,5 +1,5 @@ /////////////////////////////////////////////////////////////////////////////////////////////////////// -// Copyright (c) 2024, ООО 1С-Софт +// Copyright (c) 2025, ООО 1С-Софт // Все права защищены. Эта программа и сопроводительные материалы предоставляются // в соответствии с условиями лицензии Attribution 4.0 International (CC BY 4.0) // Текст лицензии доступен по ссылке: diff --git a/SSL/src/Reports/СведенияОПользователях/ManagerModule.bsl b/SSL/src/Reports/СведенияОПользователях/ManagerModule.bsl index d89faa718..7222fc869 100644 --- a/SSL/src/Reports/СведенияОПользователях/ManagerModule.bsl +++ b/SSL/src/Reports/СведенияОПользователях/ManagerModule.bsl @@ -1,5 +1,5 @@ /////////////////////////////////////////////////////////////////////////////////////////////////////// -// Copyright (c) 2024, ООО 1С-Софт +// Copyright (c) 2025, ООО 1С-Софт // Все права защищены. Эта программа и сопроводительные материалы предоставляются // в соответствии с условиями лицензии Attribution 4.0 International (CC BY 4.0) // Текст лицензии доступен по ссылке: diff --git a/SSL/src/Reports/СведенияОПользователях/ObjectModule.bsl b/SSL/src/Reports/СведенияОПользователях/ObjectModule.bsl index 42fc85dd3..d6f42256e 100644 --- a/SSL/src/Reports/СведенияОПользователях/ObjectModule.bsl +++ b/SSL/src/Reports/СведенияОПользователях/ObjectModule.bsl @@ -1,5 +1,5 @@ /////////////////////////////////////////////////////////////////////////////////////////////////////// -// Copyright (c) 2024, ООО 1С-Софт +// Copyright (c) 2025, ООО 1С-Софт // Все права защищены. Эта программа и сопроводительные материалы предоставляются // в соответствии с условиями лицензии Attribution 4.0 International (CC BY 4.0) // Текст лицензии доступен по ссылке: diff --git a/SSL/src/Reports/СертификатыЭлектроннойПодписи/ManagerModule.bsl b/SSL/src/Reports/СертификатыЭлектроннойПодписи/ManagerModule.bsl index 55492e1f4..79f2e959e 100644 --- a/SSL/src/Reports/СертификатыЭлектроннойПодписи/ManagerModule.bsl +++ b/SSL/src/Reports/СертификатыЭлектроннойПодписи/ManagerModule.bsl @@ -1,5 +1,5 @@ /////////////////////////////////////////////////////////////////////////////////////////////////////// -// Copyright (c) 2024, ООО 1С-Софт +// Copyright (c) 2025, ООО 1С-Софт // Все права защищены. Эта программа и сопроводительные материалы предоставляются // в соответствии с условиями лицензии Attribution 4.0 International (CC BY 4.0) // Текст лицензии доступен по ссылке: diff --git a/SSL/src/Reports/СертификатыЭлектроннойПодписи/ObjectModule.bsl b/SSL/src/Reports/СертификатыЭлектроннойПодписи/ObjectModule.bsl index b0601e893..3dcdf3688 100644 --- a/SSL/src/Reports/СертификатыЭлектроннойПодписи/ObjectModule.bsl +++ b/SSL/src/Reports/СертификатыЭлектроннойПодписи/ObjectModule.bsl @@ -1,5 +1,5 @@ /////////////////////////////////////////////////////////////////////////////////////////////////////// -// Copyright (c) 2024, ООО 1С-Софт +// Copyright (c) 2025, ООО 1С-Софт // Все права защищены. Эта программа и сопроводительные материалы предоставляются // в соответствии с условиями лицензии Attribution 4.0 International (CC BY 4.0) // Текст лицензии доступен по ссылке: @@ -110,7 +110,7 @@ НайтиПеревыпущенныеСертификаты = Неопределено; НайтиМЧД = Неопределено; ПолеНовыйСертификат = Новый ПолеКомпоновкиДанных("НовыйСертификат"); - ПолеМЧД = Новый ПолеКомпоновкиДанных("МЧД"); + ПолеМЧД = Новый ПолеКомпоновкиДанных("МашиночитаемаяДоверенность"); Для каждого Элемент Из НастройкиКомпоновки.Выбор.Элементы Цикл Если ТипЗнч(Элемент) = Тип("ВыбранноеПолеКомпоновкиДанных") Тогда Если Элемент.Поле = ПолеНовыйСертификат Тогда @@ -152,7 +152,7 @@ Запрос = Новый Запрос; Запрос.Текст = - "ВЫБРАТЬ РАЗЛИЧНЫЕ + "ВЫБРАТЬ РАЗРЕШЕННЫЕ РАЗЛИЧНЫЕ | СертификатыКлючейЭлектроннойПодписиИШифрованияПользователи.Ссылка КАК Сертификат |ПОМЕСТИТЬ СертификатыПользователя |ИЗ @@ -162,7 +162,7 @@ |; | |//////////////////////////////////////////////////////////////////////////////// - |ВЫБРАТЬ + |ВЫБРАТЬ РАЗРЕШЕННЫЕ | СертификатыКлючейЭлектроннойПодписиИШифрования.Ссылка КАК Сертификат, | СертификатыКлючейЭлектроннойПодписиИШифрования.ДанныеСертификата КАК ДанныеСертификата, | ВЫБОР @@ -300,7 +300,7 @@ ВыбранныеПоля); Если Доверенности.Количество() > 0 Тогда - Строка.МЧД = Доверенности[0].МашиночитаемаяДоверенность; + Строка.МашиночитаемаяДоверенность = Доверенности[0].МашиночитаемаяДоверенность; КонецЕсли; КонецЕсли; // Конец СтандартныеПодсистемы.МашиночитаемыеДоверенности diff --git a/SSL/src/Reports/СогласияНаОбработкуПерсональныхДанныхДействующие/ManagerModule.bsl b/SSL/src/Reports/СогласияНаОбработкуПерсональныхДанныхДействующие/ManagerModule.bsl index 075eb748f..c5ccfe49d 100644 --- a/SSL/src/Reports/СогласияНаОбработкуПерсональныхДанныхДействующие/ManagerModule.bsl +++ b/SSL/src/Reports/СогласияНаОбработкуПерсональныхДанныхДействующие/ManagerModule.bsl @@ -1,5 +1,5 @@ /////////////////////////////////////////////////////////////////////////////////////////////////////// -// Copyright (c) 2024, ООО 1С-Софт +// Copyright (c) 2025, ООО 1С-Софт // Все права защищены. Эта программа и сопроводительные материалы предоставляются // в соответствии с условиями лицензии Attribution 4.0 International (CC BY 4.0) // Текст лицензии доступен по ссылке: diff --git a/SSL/src/Reports/СогласияНаОбработкуПерсональныхДанныхИстекающие/ManagerModule.bsl b/SSL/src/Reports/СогласияНаОбработкуПерсональныхДанныхИстекающие/ManagerModule.bsl index 7932e50ae..38e50c5bd 100644 --- a/SSL/src/Reports/СогласияНаОбработкуПерсональныхДанныхИстекающие/ManagerModule.bsl +++ b/SSL/src/Reports/СогласияНаОбработкуПерсональныхДанныхИстекающие/ManagerModule.bsl @@ -1,5 +1,5 @@ /////////////////////////////////////////////////////////////////////////////////////////////////////// -// Copyright (c) 2024, ООО 1С-Софт +// Copyright (c) 2025, ООО 1С-Софт // Все права защищены. Эта программа и сопроводительные материалы предоставляются // в соответствии с условиями лицензии Attribution 4.0 International (CC BY 4.0) // Текст лицензии доступен по ссылке: diff --git a/SSL/src/Reports/СостояниеУчетнойЗаписиDSS/ManagerModule.bsl b/SSL/src/Reports/СостояниеУчетнойЗаписиDSS/ManagerModule.bsl index f115f874d..9128767c8 100644 --- a/SSL/src/Reports/СостояниеУчетнойЗаписиDSS/ManagerModule.bsl +++ b/SSL/src/Reports/СостояниеУчетнойЗаписиDSS/ManagerModule.bsl @@ -1,5 +1,5 @@ /////////////////////////////////////////////////////////////////////////////////////////////////////// -// Copyright (c) 2024, ООО 1С-Софт +// Copyright (c) 2025, ООО 1С-Софт // Все права защищены. Эта программа и сопроводительные материалы предоставляются // в соответствии с условиями лицензии Attribution 4.0 International (CC BY 4.0) // Текст лицензии доступен по ссылке: diff --git a/SSL/src/Reports/СостояниеУчетнойЗаписиDSS/ObjectModule.bsl b/SSL/src/Reports/СостояниеУчетнойЗаписиDSS/ObjectModule.bsl index b5deb50e9..feb624450 100644 --- a/SSL/src/Reports/СостояниеУчетнойЗаписиDSS/ObjectModule.bsl +++ b/SSL/src/Reports/СостояниеУчетнойЗаписиDSS/ObjectModule.bsl @@ -1,5 +1,5 @@ /////////////////////////////////////////////////////////////////////////////////////////////////////// -// Copyright (c) 2024, ООО 1С-Софт +// Copyright (c) 2025, ООО 1С-Софт // Все права защищены. Эта программа и сопроводительные материалы предоставляются // в соответствии с условиями лицензии Attribution 4.0 International (CC BY 4.0) // Текст лицензии доступен по ссылке: diff --git a/SSL/src/Reports/УниверсальныйОтчет/ManagerModule.bsl b/SSL/src/Reports/УниверсальныйОтчет/ManagerModule.bsl index 969b9dcff..7a8687d1c 100644 --- a/SSL/src/Reports/УниверсальныйОтчет/ManagerModule.bsl +++ b/SSL/src/Reports/УниверсальныйОтчет/ManagerModule.bsl @@ -1,5 +1,5 @@ /////////////////////////////////////////////////////////////////////////////////////////////////////// -// Copyright (c) 2024, ООО 1С-Софт +// Copyright (c) 2025, ООО 1С-Софт // Все права защищены. Эта программа и сопроводительные материалы предоставляются // в соответствии с условиями лицензии Attribution 4.0 International (CC BY 4.0) // Текст лицензии доступен по ссылке: diff --git a/SSL/src/Reports/УниверсальныйОтчет/ObjectModule.bsl b/SSL/src/Reports/УниверсальныйОтчет/ObjectModule.bsl index ec7935570..d01020626 100644 --- a/SSL/src/Reports/УниверсальныйОтчет/ObjectModule.bsl +++ b/SSL/src/Reports/УниверсальныйОтчет/ObjectModule.bsl @@ -1,5 +1,5 @@ /////////////////////////////////////////////////////////////////////////////////////////////////////// -// Copyright (c) 2024, ООО 1С-Софт +// Copyright (c) 2025, ООО 1С-Софт // Все права защищены. Эта программа и сопроводительные материалы предоставляются // в соответствии с условиями лицензии Attribution 4.0 International (CC BY 4.0) // Текст лицензии доступен по ссылке: diff --git a/SSL/src/Reports/УчастникиГруппДоступа/ManagerModule.bsl b/SSL/src/Reports/УчастникиГруппДоступа/ManagerModule.bsl index 5814c87da..c7dc692ea 100644 --- a/SSL/src/Reports/УчастникиГруппДоступа/ManagerModule.bsl +++ b/SSL/src/Reports/УчастникиГруппДоступа/ManagerModule.bsl @@ -1,5 +1,5 @@ /////////////////////////////////////////////////////////////////////////////////////////////////////// -// Copyright (c) 2024, ООО 1С-Софт +// Copyright (c) 2025, ООО 1С-Софт // Все права защищены. Эта программа и сопроводительные материалы предоставляются // в соответствии с условиями лицензии Attribution 4.0 International (CC BY 4.0) // Текст лицензии доступен по ссылке: diff --git a/SSL/src/Reports/УчастникиГруппДоступа/ObjectModule.bsl b/SSL/src/Reports/УчастникиГруппДоступа/ObjectModule.bsl index 7e37eff4f..aba8b6b91 100644 --- a/SSL/src/Reports/УчастникиГруппДоступа/ObjectModule.bsl +++ b/SSL/src/Reports/УчастникиГруппДоступа/ObjectModule.bsl @@ -1,5 +1,5 @@ /////////////////////////////////////////////////////////////////////////////////////////////////////// -// Copyright (c) 2024, ООО 1С-Софт +// Copyright (c) 2025, ООО 1С-Софт // Все права защищены. Эта программа и сопроводительные материалы предоставляются // в соответствии с условиями лицензии Attribution 4.0 International (CC BY 4.0) // Текст лицензии доступен по ссылке: diff --git a/SSL/src/Reports/УчастникиГруппПользователей/ManagerModule.bsl b/SSL/src/Reports/УчастникиГруппПользователей/ManagerModule.bsl index fbc591c8d..3809aa45c 100644 --- a/SSL/src/Reports/УчастникиГруппПользователей/ManagerModule.bsl +++ b/SSL/src/Reports/УчастникиГруппПользователей/ManagerModule.bsl @@ -1,5 +1,5 @@ /////////////////////////////////////////////////////////////////////////////////////////////////////// -// Copyright (c) 2024, ООО 1С-Софт +// Copyright (c) 2025, ООО 1С-Софт // Все права защищены. Эта программа и сопроводительные материалы предоставляются // в соответствии с условиями лицензии Attribution 4.0 International (CC BY 4.0) // Текст лицензии доступен по ссылке: diff --git a/SSL/src/Reports/УчастникиГруппПользователей/ObjectModule.bsl b/SSL/src/Reports/УчастникиГруппПользователей/ObjectModule.bsl index be4154094..3e3781461 100644 --- a/SSL/src/Reports/УчастникиГруппПользователей/ObjectModule.bsl +++ b/SSL/src/Reports/УчастникиГруппПользователей/ObjectModule.bsl @@ -1,5 +1,5 @@ /////////////////////////////////////////////////////////////////////////////////////////////////////// -// Copyright (c) 2024, ООО 1С-Софт +// Copyright (c) 2025, ООО 1С-Софт // Все права защищены. Эта программа и сопроводительные материалы предоставляются // в соответствии с условиями лицензии Attribution 4.0 International (CC BY 4.0) // Текст лицензии доступен по ссылке: diff --git a/SSL/src/Roles/АдминистраторСистемы/Rights.rights b/SSL/src/Roles/АдминистраторСистемы/Rights.rights index 78dbe47a1..d8a7a1aa1 100644 --- a/SSL/src/Roles/АдминистраторСистемы/Rights.rights +++ b/SSL/src/Roles/АдминистраторСистемы/Rights.rights @@ -622,6 +622,25 @@ true
                  + + Constant.РазмерПорцииПеремещаемыхФайлов + + Read + true + + + Update + true + + + View + true + + + Edit + true + + Constant.НастройкаПроксиСервера @@ -1042,6 +1061,25 @@ true + + Constant.ТекстИнформированияПользователяОНедоступностиФайлаВАрхиве + + Read + true + + + Update + true + + + View + true + + + Edit + true + + Constant.НастройкиРегистрацииСобытийДоступаКДанным @@ -1139,6 +1177,65 @@ true + + InformationRegister.ИсторияРезервногоКопированияВстроенногоХранилищаДвоичныхДанных + + Read + true + + + Update + true + + + View + true + + + Edit + true + + + TotalsControl + true + + + ReadDataHistory + true + + + ReadDataHistoryOfMissingData + true + + + UpdateDataHistory + true + + + UpdateDataHistoryOfMissingData + true + + + UpdateDataHistorySettings + true + + + UpdateDataHistoryVersionComment + true + + + ViewDataHistory + true + + + EditDataHistoryVersionComment + true + + + SwitchToDataHistoryVersion + true + + Catalog.КлючевыеОперации @@ -1376,93 +1473,6 @@ true - - Configuration.БиблиотекаСтандартныхПодсистем - - Administration - true - - - DataAdministration - true - - - UpdateDataBaseConfiguration - true - - - ExclusiveMode - true - - - ActiveUsers - true - - - EventLog - true - - - ThinClient - true - - - WebClient - true - - - ThickClient - true - - - ExternalConnection - true - - - Automation - true - - - TechnicalSpecialistMode - true - - - MainWindowModeNormal - true - - - MainWindowModeWorkplace - true - - - MainWindowModeEmbeddedWorkplace - true - - - MainWindowModeFullscreenWorkplace - true - - - MainWindowModeKiosk - true - - - AnalyticsSystemClient - true - - - SaveUserData - true - - - ConfigurationExtensionsAdministration - true - - - Output - true - - Catalog.ОбщиеВнешниеКомпоненты @@ -3723,6 +3733,25 @@ true + + Constant.КаталогРезервныхКопийВстроенногоХранилищаДвоичныхДанныхДляWindows + + Read + true + + + Update + true + + + View + true + + + Edit + true + + Constant.СтандартныеПодсистемыВАвтономномРежиме @@ -4132,6 +4161,148 @@ true + + InformationRegister.КвартирыОфисыПомещения + + Read + true + + + Update + true + + + View + true + + + Edit + true + + + TotalsControl + true + + + ReadDataHistory + true + + + ReadDataHistoryOfMissingData + true + + + UpdateDataHistory + true + + + UpdateDataHistoryOfMissingData + true + + + UpdateDataHistorySettings + true + + + UpdateDataHistoryVersionComment + true + + + ViewDataHistory + true + + + EditDataHistoryVersionComment + true + + + SwitchToDataHistoryVersion + true + + + + Catalog.ОбщиеНастройкиАвторизацииИнтернетСервисов + + Read + true + + + Insert + true + + + Update + true + + + Delete + true + + + View + true + + + InteractiveInsert + true + + + Edit + true + + + InteractiveSetDeletionMark + true + + + InteractiveClearDeletionMark + true + + + InteractiveDeleteMarked + true + + + InputByString + true + + + ReadDataHistory + true + + + ReadDataHistoryOfMissingData + true + + + UpdateDataHistory + true + + + UpdateDataHistoryOfMissingData + true + + + UpdateDataHistorySettings + true + + + UpdateDataHistoryVersionComment + true + + + ViewDataHistory + true + + + EditDataHistoryVersionComment + true + + + SwitchToDataHistoryVersion + true + + Catalog.КлассификаторБанков @@ -4378,6 +4549,93 @@ true + + Configuration.БиблиотекаСтандартныхПодсистем + + Administration + true + + + DataAdministration + true + + + UpdateDataBaseConfiguration + true + + + ExclusiveMode + true + + + ActiveUsers + true + + + EventLog + true + + + ThinClient + true + + + WebClient + true + + + ThickClient + true + + + ExternalConnection + true + + + Automation + true + + + TechnicalSpecialistMode + true + + + MainWindowModeNormal + true + + + MainWindowModeWorkplace + true + + + MainWindowModeEmbeddedWorkplace + true + + + MainWindowModeFullscreenWorkplace + true + + + MainWindowModeKiosk + true + + + AnalyticsSystemClient + true + + + SaveUserData + true + + + ConfigurationExtensionsAdministration + true + + + Output + true + + Constant.СообщениеОбменаДаннымиИзГлавногоУзла @@ -4408,6 +4666,25 @@ true + + Constant.ИспользоватьФайловыйАрхив + + Read + true + + + Update + true + + + View + true + + + Edit + true + + InformationRegister.БуферОперацийСтатистики @@ -5102,6 +5379,25 @@ true + + Constant.КаталогРезервныхКопийВстроенногоХранилищаДвоичныхДанныхДляLinux + + Read + true + + + Update + true + + + View + true + + + Edit + true + + InformationRegister.ДомаЗданияСтроения diff --git a/SSL/src/Roles/БазовыеПраваБСП/Rights.rights b/SSL/src/Roles/БазовыеПраваБСП/Rights.rights index d7ff4046f..ba5782944 100644 --- a/SSL/src/Roles/БазовыеПраваБСП/Rights.rights +++ b/SSL/src/Roles/БазовыеПраваБСП/Rights.rights @@ -277,17 +277,6 @@ true - - InformationRegister.ЗаявленияНаВыпускСертификата - - Read - true - - - View - true - - Catalog.ВнешниеКомпоненты @@ -475,7 +464,13 @@ #Если &ОграничениеДоступаНаУровнеЗаписейУниверсально #Тогда #ДляОбъекта("") #Иначе -ГДЕ ИСТИНА +#ПоЗначениямРасширенный("Справочник.ПодписантыСервисаМобильнойПодписи", "", "", +"ЛЕВОЕ СОЕДИНЕНИЕ Справочник.ПодписантыСервисаМобильнойПодписи.Пользователи КАК Т1 +ПО Т1.Ссылка = Т.Ссылка", +"", +"Условие", "Т.Добавил = &ТекущийПользователь","ИЛИ", +"Условие", "Т1.Пользователь = &ТекущийПользователь", "", +"","","", "","","", "","","", "","","", "","","", "","","", "","","", "","","", "","","", "","","", "","","", "","","", "","","", "","","") #КонецЕсли @@ -495,6 +490,17 @@ true + + Constant.ТекстИнформированияПользователяОНедоступностиФайлаВАрхиве + + Read + true + + + View + true + + InformationRegister.ИерархияГруппПользователей @@ -517,6 +523,24 @@ true + + InformationRegister.СервисМобильнойПодписиСтатусы + + Read + true + + #Если &ОграничениеДоступаНаУровнеЗаписейУниверсально #Тогда +#ДляРегистра("ИдентификаторыОбъектовМетаданных.РегистрСведенийСервисМобильнойПодписиСтатусы", "Отправитель", "", "", "", "") +#Иначе +ГДЕ Отправитель = &ТекущийПользователь +#КонецЕсли + + + + View + true + + InformationRegister.ПредопределенныеВариантыОтчетовВерсийРасширений @@ -575,6 +599,34 @@ true + + Catalog.НастройкиОтправкиВГосключ + + Read + true + + #Если &ОграничениеДоступаНаУровнеЗаписейУниверсально #Тогда +#ДляОбъекта("") +#Иначе +#ПоЗначениямРасширенный("Справочник.НастройкиОтправкиВГосключ", "", "", +"ЛЕВОЕ СОЕДИНЕНИЕ Справочник.НастройкиОтправкиВГосключ.Пользователи КАК Т1 +ПО Т1.Ссылка = Т.Ссылка", +"", +"Условие", "Т.Ответственный = &ТекущийПользователь","ИЛИ", +"Условие", "Т1.Пользователь = &ТекущийПользователь", "", +"","","", "","","", "","","", "","","", "","","", "","","", "","","", "","","", "","","", "","","", "","","", "","","", "","","", "","","") +#КонецЕсли + + + + View + true + + + InputByString + true + + CommonForm.РедактированиеДокументаOfficeOpen @@ -715,33 +767,6 @@ true - - Configuration.БиблиотекаСтандартныхПодсистем - - MainWindowModeNormal - true - - - MainWindowModeWorkplace - true - - - MainWindowModeEmbeddedWorkplace - true - - - MainWindowModeFullscreenWorkplace - true - - - MainWindowModeKiosk - true - - - AnalyticsSystemClient - true - - Catalog.ОбщиеВнешниеКомпоненты @@ -964,17 +989,6 @@ true - - DataProcessor.ЗаявлениеНаВыпускНовогоКвалифицированногоСертификата - - Use - true - - - View - true - - CommonForm.ВводНаРазныхЯзыках @@ -1488,6 +1502,13 @@ true + + Catalog.ПодписантыСервисаМобильнойПодписи.Command.ПодписантыСервисаМобильнойПодписи + + View + true + + Constant.ИспользоватьКомандуЗаметки @@ -1499,21 +1520,6 @@ true - - Catalog.СертификатыКлючейЭлектроннойПодписиИШифрования - - Read - true - - - View - true - - - InputByString - true - - InformationRegister.ДополнительныеАдресныеСведения @@ -1979,17 +1985,6 @@ true - - Report.СертификатыЭлектроннойПодписи - - Use - true - - - View - true - - CommonForm.НастройкаРабочегоКаталога @@ -2188,6 +2183,17 @@ true + + InformationRegister.КвартирыОфисыПомещения + + Read + true + + + View + true + + Catalog.ЗначенияСвойствОбъектов @@ -2402,6 +2408,33 @@ true + + Configuration.БиблиотекаСтандартныхПодсистем + + MainWindowModeNormal + true + + + MainWindowModeWorkplace + true + + + MainWindowModeEmbeddedWorkplace + true + + + MainWindowModeFullscreenWorkplace + true + + + MainWindowModeKiosk + true + + + AnalyticsSystemClient + true + + Constant.ПрефиксУзлаРаспределеннойИнформационнойБазы diff --git a/SSL/src/Roles/БазовыеПраваВнешнихПользователейБСП/Rights.rights b/SSL/src/Roles/БазовыеПраваВнешнихПользователейБСП/Rights.rights index a7739b0cd..c3c94eb7f 100644 --- a/SSL/src/Roles/БазовыеПраваВнешнихПользователейБСП/Rights.rights +++ b/SSL/src/Roles/БазовыеПраваВнешнихПользователейБСП/Rights.rights @@ -552,33 +552,6 @@ true - - Configuration.БиблиотекаСтандартныхПодсистем - - MainWindowModeNormal - true - - - MainWindowModeWorkplace - true - - - MainWindowModeEmbeddedWorkplace - true - - - MainWindowModeFullscreenWorkplace - true - - - MainWindowModeKiosk - true - - - AnalyticsSystemClient - true - - Catalog.ОбщиеВнешниеКомпоненты @@ -1742,6 +1715,17 @@ true + + InformationRegister.КвартирыОфисыПомещения + + Read + true + + + View + true + + Catalog.КлассификаторБанков @@ -1891,6 +1875,33 @@ true + + Configuration.БиблиотекаСтандартныхПодсистем + + MainWindowModeNormal + true + + + MainWindowModeWorkplace + true + + + MainWindowModeEmbeddedWorkplace + true + + + MainWindowModeFullscreenWorkplace + true + + + MainWindowModeKiosk + true + + + AnalyticsSystemClient + true + + Constant.ПрефиксУзлаРаспределеннойИнформационнойБазы diff --git a/SSL/src/Roles/ВыполнениеСинхронизацииДанных/Rights.rights b/SSL/src/Roles/ВыполнениеСинхронизацииДанных/Rights.rights index 19a33678e..4b35e2604 100644 --- a/SSL/src/Roles/ВыполнениеСинхронизацииДанных/Rights.rights +++ b/SSL/src/Roles/ВыполнениеСинхронизацииДанных/Rights.rights @@ -309,33 +309,6 @@ true - - Configuration.БиблиотекаСтандартныхПодсистем - - MainWindowModeNormal - true - - - MainWindowModeWorkplace - true - - - MainWindowModeEmbeddedWorkplace - true - - - MainWindowModeFullscreenWorkplace - true - - - MainWindowModeKiosk - true - - - AnalyticsSystemClient - true - - DataProcessor.ИнтерактивноеИзменениеВыгрузки @@ -878,6 +851,33 @@ true + + Configuration.БиблиотекаСтандартныхПодсистем + + MainWindowModeNormal + true + + + MainWindowModeWorkplace + true + + + MainWindowModeEmbeddedWorkplace + true + + + MainWindowModeFullscreenWorkplace + true + + + MainWindowModeKiosk + true + + + AnalyticsSystemClient + true + + InformationRegister.РезультатыОбменаДанными diff --git a/SSL/src/Roles/ДобавлениеИзменениеАдресныхСведений/Rights.rights b/SSL/src/Roles/ДобавлениеИзменениеАдресныхСведений/Rights.rights index d3a24433a..904b2e819 100644 --- a/SSL/src/Roles/ДобавлениеИзменениеАдресныхСведений/Rights.rights +++ b/SSL/src/Roles/ДобавлениеИзменениеАдресныхСведений/Rights.rights @@ -72,33 +72,6 @@ true - - Configuration.БиблиотекаСтандартныхПодсистем - - MainWindowModeNormal - true - - - MainWindowModeWorkplace - true - - - MainWindowModeEmbeddedWorkplace - true - - - MainWindowModeFullscreenWorkplace - true - - - MainWindowModeKiosk - true - - - AnalyticsSystemClient - true - - InformationRegister.ПричиныИзмененияАдресныхСведений @@ -237,6 +210,29 @@ true + + InformationRegister.КвартирыОфисыПомещения + + Read + true + + + Update + true + + + View + true + + + Edit + true + + + TotalsControl + true + + InformationRegister.ЗемельныеУчастки @@ -283,6 +279,33 @@ true + + Configuration.БиблиотекаСтандартныхПодсистем + + MainWindowModeNormal + true + + + MainWindowModeWorkplace + true + + + MainWindowModeEmbeddedWorkplace + true + + + MainWindowModeFullscreenWorkplace + true + + + MainWindowModeKiosk + true + + + AnalyticsSystemClient + true + + InformationRegister.АдресныеОбъекты diff --git a/SSL/src/Roles/ДобавлениеИзменениеАктовОбУничтоженииПерсональныхДанных/Rights.rights b/SSL/src/Roles/ДобавлениеИзменениеАктовОбУничтоженииПерсональныхДанных/Rights.rights index 61200247c..972ef6783 100644 --- a/SSL/src/Roles/ДобавлениеИзменениеАктовОбУничтоженииПерсональныхДанных/Rights.rights +++ b/SSL/src/Roles/ДобавлениеИзменениеАктовОбУничтоженииПерсональныхДанных/Rights.rights @@ -26,33 +26,6 @@ true - - Configuration.БиблиотекаСтандартныхПодсистем - - MainWindowModeNormal - true - - - MainWindowModeWorkplace - true - - - MainWindowModeEmbeddedWorkplace - true - - - MainWindowModeFullscreenWorkplace - true - - - MainWindowModeKiosk - true - - - AnalyticsSystemClient - true - - InformationRegister.СубъектыДляРасчетаСроковХранения @@ -99,6 +72,33 @@ true + + Configuration.БиблиотекаСтандартныхПодсистем + + MainWindowModeNormal + true + + + MainWindowModeWorkplace + true + + + MainWindowModeEmbeddedWorkplace + true + + + MainWindowModeFullscreenWorkplace + true + + + MainWindowModeKiosk + true + + + AnalyticsSystemClient + true + + Document.АктОбУничтоженииПерсональныхДанных diff --git a/SSL/src/Roles/ДобавлениеИзменениеБанков/Rights.rights b/SSL/src/Roles/ДобавлениеИзменениеБанков/Rights.rights index 3f017fd2a..c0577d267 100644 --- a/SSL/src/Roles/ДобавлениеИзменениеБанков/Rights.rights +++ b/SSL/src/Roles/ДобавлениеИзменениеБанков/Rights.rights @@ -10,33 +10,6 @@ true - - Configuration.БиблиотекаСтандартныхПодсистем - - MainWindowModeNormal - true - - - MainWindowModeWorkplace - true - - - MainWindowModeEmbeddedWorkplace - true - - - MainWindowModeFullscreenWorkplace - true - - - MainWindowModeKiosk - true - - - AnalyticsSystemClient - true - - DataProcessor.ЗагрузкаКлассификатораБанков @@ -87,4 +60,31 @@ true + + Configuration.БиблиотекаСтандартныхПодсистем + + MainWindowModeNormal + true + + + MainWindowModeWorkplace + true + + + MainWindowModeEmbeddedWorkplace + true + + + MainWindowModeFullscreenWorkplace + true + + + MainWindowModeKiosk + true + + + AnalyticsSystemClient + true + + diff --git a/SSL/src/Roles/ДобавлениеИзменениеВариантовОтчетов/Rights.rights b/SSL/src/Roles/ДобавлениеИзменениеВариантовОтчетов/Rights.rights index 4fb241bcb..c0d1d65ed 100644 --- a/SSL/src/Roles/ДобавлениеИзменениеВариантовОтчетов/Rights.rights +++ b/SSL/src/Roles/ДобавлениеИзменениеВариантовОтчетов/Rights.rights @@ -49,33 +49,6 @@ true - - Configuration.БиблиотекаСтандартныхПодсистем - - MainWindowModeNormal - true - - - MainWindowModeWorkplace - true - - - MainWindowModeEmbeddedWorkplace - true - - - MainWindowModeFullscreenWorkplace - true - - - MainWindowModeKiosk - true - - - AnalyticsSystemClient - true - - Catalog.ПользовательскиеНастройкиОтчетов @@ -185,6 +158,33 @@ true + + Configuration.БиблиотекаСтандартныхПодсистем + + MainWindowModeNormal + true + + + MainWindowModeWorkplace + true + + + MainWindowModeEmbeddedWorkplace + true + + + MainWindowModeFullscreenWorkplace + true + + + MainWindowModeKiosk + true + + + AnalyticsSystemClient + true + + Catalog.ВариантыОтчетов.Command.РазместитьВРазделах diff --git a/SSL/src/Roles/ДобавлениеИзменениеВзаимодействий/Rights.rights b/SSL/src/Roles/ДобавлениеИзменениеВзаимодействий/Rights.rights index 8fd5e8f8c..f784e1c8a 100644 --- a/SSL/src/Roles/ДобавлениеИзменениеВзаимодействий/Rights.rights +++ b/SSL/src/Roles/ДобавлениеИзменениеВзаимодействий/Rights.rights @@ -391,33 +391,6 @@ true - - Configuration.БиблиотекаСтандартныхПодсистем - - MainWindowModeNormal - true - - - MainWindowModeWorkplace - true - - - MainWindowModeEmbeddedWorkplace - true - - - MainWindowModeFullscreenWorkplace - true - - - MainWindowModeKiosk - true - - - AnalyticsSystemClient - true - - InformationRegister.СостоянияКонтактовВзаимодействий @@ -1162,6 +1135,33 @@ true + + Configuration.БиблиотекаСтандартныхПодсистем + + MainWindowModeNormal + true + + + MainWindowModeWorkplace + true + + + MainWindowModeEmbeddedWorkplace + true + + + MainWindowModeFullscreenWorkplace + true + + + MainWindowModeKiosk + true + + + AnalyticsSystemClient + true + + DocumentJournal.Взаимодействия.Command.ПозвонитьПоКонтакту diff --git a/SSL/src/Roles/ДобавлениеИзменениеВидовКонтактнойИнформации/Rights.rights b/SSL/src/Roles/ДобавлениеИзменениеВидовКонтактнойИнформации/Rights.rights index 7a03f3166..c0f402186 100644 --- a/SSL/src/Roles/ДобавлениеИзменениеВидовКонтактнойИнформации/Rights.rights +++ b/SSL/src/Roles/ДобавлениеИзменениеВидовКонтактнойИнформации/Rights.rights @@ -3,33 +3,6 @@ false true false - - Configuration.БиблиотекаСтандартныхПодсистем - - MainWindowModeNormal - true - - - MainWindowModeWorkplace - true - - - MainWindowModeEmbeddedWorkplace - true - - - MainWindowModeFullscreenWorkplace - true - - - MainWindowModeKiosk - true - - - AnalyticsSystemClient - true - - Catalog.ВидыКонтактнойИнформации @@ -108,4 +81,31 @@ true + + Configuration.БиблиотекаСтандартныхПодсистем + + MainWindowModeNormal + true + + + MainWindowModeWorkplace + true + + + MainWindowModeEmbeddedWorkplace + true + + + MainWindowModeFullscreenWorkplace + true + + + MainWindowModeKiosk + true + + + AnalyticsSystemClient + true + + diff --git a/SSL/src/Roles/ДобавлениеИзменениеВнешнихПользователей/Rights.rights b/SSL/src/Roles/ДобавлениеИзменениеВнешнихПользователей/Rights.rights index 530cee9fb..972daa14f 100644 --- a/SSL/src/Roles/ДобавлениеИзменениеВнешнихПользователей/Rights.rights +++ b/SSL/src/Roles/ДобавлениеИзменениеВнешнихПользователей/Rights.rights @@ -28,33 +28,6 @@ true - - Configuration.БиблиотекаСтандартныхПодсистем - - MainWindowModeNormal - true - - - MainWindowModeWorkplace - true - - - MainWindowModeEmbeddedWorkplace - true - - - MainWindowModeFullscreenWorkplace - true - - - MainWindowModeKiosk - true - - - AnalyticsSystemClient - true - - Catalog.ГруппыВнешнихПользователей.Command.ГруппыВнешнегоПользователя @@ -112,6 +85,33 @@ true + + Configuration.БиблиотекаСтандартныхПодсистем + + MainWindowModeNormal + true + + + MainWindowModeWorkplace + true + + + MainWindowModeEmbeddedWorkplace + true + + + MainWindowModeFullscreenWorkplace + true + + + MainWindowModeKiosk + true + + + AnalyticsSystemClient + true + + Catalog.ГруппыВнешнихПользователей diff --git a/SSL/src/Roles/ДобавлениеИзменениеГрафиковРаботы/Rights.rights b/SSL/src/Roles/ДобавлениеИзменениеГрафиковРаботы/Rights.rights index 48326724d..a229f99a9 100644 --- a/SSL/src/Roles/ДобавлениеИзменениеГрафиковРаботы/Rights.rights +++ b/SSL/src/Roles/ДобавлениеИзменениеГрафиковРаботы/Rights.rights @@ -65,6 +65,29 @@ true + + InformationRegister.РучныеИзмененияГрафиковРаботы + + Read + true + + + Update + true + + + View + true + + + Edit + true + + + TotalsControl + true + + Configuration.БиблиотекаСтандартныхПодсистем @@ -92,27 +115,4 @@ true - - InformationRegister.РучныеИзмененияГрафиковРаботы - - Read - true - - - Update - true - - - View - true - - - Edit - true - - - TotalsControl - true - - diff --git a/SSL/src/Roles/ДобавлениеИзменениеДатЗапретаЗагрузки/Rights.rights b/SSL/src/Roles/ДобавлениеИзменениеДатЗапретаЗагрузки/Rights.rights index 39c01e8d0..90d25d242 100644 --- a/SSL/src/Roles/ДобавлениеИзменениеДатЗапретаЗагрузки/Rights.rights +++ b/SSL/src/Roles/ДобавлениеИзменениеДатЗапретаЗагрузки/Rights.rights @@ -29,6 +29,13 @@ true + + InformationRegister.ДатыЗапретаИзменения.Command.ДатыЗапретаЗагрузкиДанных + + View + true + + Configuration.БиблиотекаСтандартныхПодсистем @@ -56,13 +63,6 @@ true - - InformationRegister.ДатыЗапретаИзменения.Command.ДатыЗапретаЗагрузкиДанных - - View - true - - InformationRegister.ДатыЗапретаИзменения diff --git a/SSL/src/Roles/ДобавлениеИзменениеДатЗапретаИзменения/Rights.rights b/SSL/src/Roles/ДобавлениеИзменениеДатЗапретаИзменения/Rights.rights index a2208cf25..c0c0d6183 100644 --- a/SSL/src/Roles/ДобавлениеИзменениеДатЗапретаИзменения/Rights.rights +++ b/SSL/src/Roles/ДобавлениеИзменениеДатЗапретаИзменения/Rights.rights @@ -18,6 +18,17 @@ true + + Report.ДатыЗапретаИзменения + + Use + true + + + View + true + + Configuration.БиблиотекаСтандартныхПодсистем @@ -45,17 +56,6 @@ true - - Report.ДатыЗапретаИзменения - - Use - true - - - View - true - - InformationRegister.ДатыЗапретаИзменения.Command.ДатыЗапретаИзмененияДанных diff --git a/SSL/src/Roles/ДобавлениеИзменениеДополнительныхОтчетовИОбработок/Rights.rights b/SSL/src/Roles/ДобавлениеИзменениеДополнительныхОтчетовИОбработок/Rights.rights index 23d9cbc1d..eff729599 100644 --- a/SSL/src/Roles/ДобавлениеИзменениеДополнительныхОтчетовИОбработок/Rights.rights +++ b/SSL/src/Roles/ДобавлениеИзменениеДополнительныхОтчетовИОбработок/Rights.rights @@ -3,33 +3,6 @@ false true false - - Configuration.БиблиотекаСтандартныхПодсистем - - MainWindowModeNormal - true - - - MainWindowModeWorkplace - true - - - MainWindowModeEmbeddedWorkplace - true - - - MainWindowModeFullscreenWorkplace - true - - - MainWindowModeKiosk - true - - - AnalyticsSystemClient - true - - InformationRegister.ПользовательскиеНастройкиДоступаКОбработкам @@ -122,6 +95,33 @@ true + + Configuration.БиблиотекаСтандартныхПодсистем + + MainWindowModeNormal + true + + + MainWindowModeWorkplace + true + + + MainWindowModeEmbeddedWorkplace + true + + + MainWindowModeFullscreenWorkplace + true + + + MainWindowModeKiosk + true + + + AnalyticsSystemClient + true + + CommonForm.ДополнительныеОтчетыИОбработки diff --git a/SSL/src/Roles/ДобавлениеИзменениеДополнительныхРеквизитовИСведений/Rights.rights b/SSL/src/Roles/ДобавлениеИзменениеДополнительныхРеквизитовИСведений/Rights.rights index 432431f4e..78003c294 100644 --- a/SSL/src/Roles/ДобавлениеИзменениеДополнительныхРеквизитовИСведений/Rights.rights +++ b/SSL/src/Roles/ДобавлениеИзменениеДополнительныхРеквизитовИСведений/Rights.rights @@ -81,33 +81,6 @@ true - - Configuration.БиблиотекаСтандартныхПодсистем - - MainWindowModeNormal - true - - - MainWindowModeWorkplace - true - - - MainWindowModeEmbeddedWorkplace - true - - - MainWindowModeFullscreenWorkplace - true - - - MainWindowModeKiosk - true - - - AnalyticsSystemClient - true - - CommonForm.РедактированиеГиперссылки @@ -193,6 +166,33 @@ true + + Configuration.БиблиотекаСтандартныхПодсистем + + MainWindowModeNormal + true + + + MainWindowModeWorkplace + true + + + MainWindowModeEmbeddedWorkplace + true + + + MainWindowModeFullscreenWorkplace + true + + + MainWindowModeKiosk + true + + + AnalyticsSystemClient + true + + CommonForm.РедактированиеМеток diff --git a/SSL/src/Roles/ДобавлениеИзменениеЗаданий/Rights.rights b/SSL/src/Roles/ДобавлениеИзменениеЗаданий/Rights.rights index 11ec10083..7904b2ca1 100644 --- a/SSL/src/Roles/ДобавлениеИзменениеЗаданий/Rights.rights +++ b/SSL/src/Roles/ДобавлениеИзменениеЗаданий/Rights.rights @@ -72,33 +72,6 @@ true - - Configuration.БиблиотекаСтандартныхПодсистем - - MainWindowModeNormal - true - - - MainWindowModeWorkplace - true - - - MainWindowModeEmbeddedWorkplace - true - - - MainWindowModeFullscreenWorkplace - true - - - MainWindowModeKiosk - true - - - AnalyticsSystemClient - true - - Task.ЗадачаИсполнителя.Command.ВсеЗадачи @@ -134,6 +107,33 @@ true + + Configuration.БиблиотекаСтандартныхПодсистем + + MainWindowModeNormal + true + + + MainWindowModeWorkplace + true + + + MainWindowModeEmbeddedWorkplace + true + + + MainWindowModeFullscreenWorkplace + true + + + MainWindowModeKiosk + true + + + AnalyticsSystemClient + true + + Report.БизнесПроцессы diff --git a/SSL/src/Roles/ДобавлениеИзменениеЗаметок/Rights.rights b/SSL/src/Roles/ДобавлениеИзменениеЗаметок/Rights.rights index 3fb99c720..34094fd76 100644 --- a/SSL/src/Roles/ДобавлениеИзменениеЗаметок/Rights.rights +++ b/SSL/src/Roles/ДобавлениеИзменениеЗаметок/Rights.rights @@ -63,6 +63,20 @@ true + + CommonCommand.СоздатьЗаметкуПоПредмету + + View + true + + + + CommonCommand.МоиЗаметкиПоПредмету + + View + true + + Configuration.БиблиотекаСтандартныхПодсистем @@ -90,20 +104,6 @@ true - - CommonCommand.СоздатьЗаметкуПоПредмету - - View - true - - - - CommonCommand.МоиЗаметкиПоПредмету - - View - true - - Catalog.Заметки.Command.ВсеЗаметки diff --git a/SSL/src/Roles/ДобавлениеИзменениеКалендарныхГрафиков/Rights.rights b/SSL/src/Roles/ДобавлениеИзменениеКалендарныхГрафиков/Rights.rights index 048512b09..474bea433 100644 --- a/SSL/src/Roles/ДобавлениеИзменениеКалендарныхГрафиков/Rights.rights +++ b/SSL/src/Roles/ДобавлениеИзменениеКалендарныхГрафиков/Rights.rights @@ -26,33 +26,6 @@ true - - Configuration.БиблиотекаСтандартныхПодсистем - - MainWindowModeNormal - true - - - MainWindowModeWorkplace - true - - - MainWindowModeEmbeddedWorkplace - true - - - MainWindowModeFullscreenWorkplace - true - - - MainWindowModeKiosk - true - - - AnalyticsSystemClient - true - - InformationRegister.ДанныеПроизводственногоКалендаря @@ -134,4 +107,31 @@ true + + Configuration.БиблиотекаСтандартныхПодсистем + + MainWindowModeNormal + true + + + MainWindowModeWorkplace + true + + + MainWindowModeEmbeddedWorkplace + true + + + MainWindowModeFullscreenWorkplace + true + + + MainWindowModeKiosk + true + + + AnalyticsSystemClient + true + + diff --git a/SSL/src/Roles/ДобавлениеИзменениеЛичныхВариантовОтчетов/Rights.rights b/SSL/src/Roles/ДобавлениеИзменениеЛичныхВариантовОтчетов/Rights.rights index 33451aa16..b6af641be 100644 --- a/SSL/src/Roles/ДобавлениеИзменениеЛичныхВариантовОтчетов/Rights.rights +++ b/SSL/src/Roles/ДобавлениеИзменениеЛичныхВариантовОтчетов/Rights.rights @@ -72,33 +72,6 @@ true - - Configuration.БиблиотекаСтандартныхПодсистем - - MainWindowModeNormal - true - - - MainWindowModeWorkplace - true - - - MainWindowModeEmbeddedWorkplace - true - - - MainWindowModeFullscreenWorkplace - true - - - MainWindowModeKiosk - true - - - AnalyticsSystemClient - true - - Catalog.ПользовательскиеНастройкиОтчетов @@ -192,6 +165,33 @@ true + + Configuration.БиблиотекаСтандартныхПодсистем + + MainWindowModeNormal + true + + + MainWindowModeWorkplace + true + + + MainWindowModeEmbeddedWorkplace + true + + + MainWindowModeFullscreenWorkplace + true + + + MainWindowModeKiosk + true + + + AnalyticsSystemClient + true + + Catalog.ВариантыОтчетов.Command.РазместитьВРазделах diff --git a/SSL/src/Roles/ДобавлениеИзменениеЛичныхСертификатовКлючейЭлектроннойПодписиИШифрования/Rights.rights b/SSL/src/Roles/ДобавлениеИзменениеЛичныхСертификатовКлючейЭлектроннойПодписиИШифрования/Rights.rights new file mode 100644 index 000000000..53d44d661 --- /dev/null +++ b/SSL/src/Roles/ДобавлениеИзменениеЛичныхСертификатовКлючейЭлектроннойПодписиИШифрования/Rights.rights @@ -0,0 +1,3818 @@ + + + false + true + false + + InformationRegister.ЗаявленияНаВыпускСертификата + + Read + true + + #Если &ОграничениеДоступаНаУровнеЗаписейУниверсально #Тогда +#ДляРегистра("ИдентификаторыОбъектовМетаданных.РегистрСведенийЗаявленияНаВыпускСертификата", "Сертификат", "СертификатОснование", "", "", "") +#Иначе +#ПоЗначениямРасширенный("РегистрСведений.ЗаявленияНаВыпускСертификата", "Чтение", "", +"ЛЕВОЕ СОЕДИНЕНИЕ Справочник.СертификатыКлючейЭлектроннойПодписиИШифрования.Пользователи КАК Т1 ПО Т.Сертификат = Т1.Ссылка +ЛЕВОЕ СОЕДИНЕНИЕ Справочник.СертификатыКлючейЭлектроннойПодписиИШифрования КАК Т2 ПО Т.Сертификат = Т2.Ссылка +ЛЕВОЕ СОЕДИНЕНИЕ Справочник.СертификатыКлючейЭлектроннойПодписиИШифрования.Пользователи КАК Т3 ПО Т.СертификатОснование = Т3.Ссылка +ЛЕВОЕ СОЕДИНЕНИЕ Справочник.СертификатыКлючейЭлектроннойПодписиИШифрования КАК Т4 ПО Т3.Ссылка = Т.СертификатОснование = Т4.Ссылка", +"(", +"Условие", "Т.Сертификат = Значение(Справочник.СертификатыКлючейЭлектроннойПодписиИШифрования.ПустаяСсылка)", "ИЛИ", +"Пользователи", "Т1.Пользователь", "ИЛИ", +"Условие", "Т1.Пользователь = Значение(Справочник.Пользователи.ПустаяСсылка)", "ИЛИ", +"Пользователи", "Т2.Пользователь", "ИЛИ", +"Условие", "Т2.Пользователь = Значение(Справочник.Пользователи.ПустаяСсылка)", ")И(", +"Условие", "Т.СертификатОснование = Значение(Справочник.СертификатыКлючейЭлектроннойПодписиИШифрования.ПустаяСсылка)", "ИЛИ", +"Пользователи", "Т3.Пользователь", "ИЛИ", +"Условие", "Т3.Пользователь = Значение(Справочник.Пользователи.ПустаяСсылка)", "ИЛИ", +"Пользователи", "Т4.Пользователь", "ИЛИ", +"Условие", "Т4.Пользователь = Значение(Справочник.Пользователи.ПустаяСсылка)", ")", +"","","", "","","", "","","", "","","", "","","", "","","") +#КонецЕсли + + + + Update + true + + #Если &ОграничениеДоступаНаУровнеЗаписейУниверсально #Тогда +#ДляРегистра("ИдентификаторыОбъектовМетаданных.РегистрСведенийЗаявленияНаВыпускСертификата", "Сертификат", "СертификатОснование", "", "", "") +#Иначе +#ПоЗначениямРасширенный("РегистрСведений.ЗаявленияНаВыпускСертификата", "Изменение", "", +"ЛЕВОЕ СОЕДИНЕНИЕ Справочник.СертификатыКлючейЭлектроннойПодписиИШифрования.Пользователи КАК Т1 ПО Т.Сертификат = Т1.Ссылка +ЛЕВОЕ СОЕДИНЕНИЕ Справочник.СертификатыКлючейЭлектроннойПодписиИШифрования КАК Т2 ПО Т.Сертификат = Т2.Ссылка +ЛЕВОЕ СОЕДИНЕНИЕ Справочник.СертификатыКлючейЭлектроннойПодписиИШифрования.Пользователи КАК Т3 ПО Т.СертификатОснование = Т3.Ссылка +ЛЕВОЕ СОЕДИНЕНИЕ Справочник.СертификатыКлючейЭлектроннойПодписиИШифрования КАК Т4 ПО Т3.Ссылка = Т.СертификатОснование = Т4.Ссылка", +"(", +"Условие", "Т.Сертификат = Значение(Справочник.СертификатыКлючейЭлектроннойПодписиИШифрования.ПустаяСсылка)", "ИЛИ", +"Пользователи", "Т1.Пользователь", "ИЛИ", +"Условие", "Т1.Пользователь = Значение(Справочник.Пользователи.ПустаяСсылка)", "ИЛИ", +"Пользователи", "Т2.Пользователь", "ИЛИ", +"Условие", "Т2.Пользователь = Значение(Справочник.Пользователи.ПустаяСсылка)", ")И(", +"Условие", "Т.СертификатОснование = Значение(Справочник.СертификатыКлючейЭлектроннойПодписиИШифрования.ПустаяСсылка)", "ИЛИ", +"Пользователи", "Т3.Пользователь", "ИЛИ", +"Условие", "Т3.Пользователь = Значение(Справочник.Пользователи.ПустаяСсылка)", "ИЛИ", +"Пользователи", "Т4.Пользователь", "ИЛИ", +"Условие", "Т4.Пользователь = Значение(Справочник.Пользователи.ПустаяСсылка)", ")", +"","","", "","","", "","","", "","","", "","","", "","","") +#КонецЕсли + + + + View + true + + + Edit + true + + + + DataProcessor.ЗаявлениеНаВыпускНовогоКвалифицированногоСертификата + + Use + true + + + View + true + + + + Catalog.СертификатыКлючейЭлектроннойПодписиИШифрования + + Read + true + + #Если &ОграничениеДоступаНаУровнеЗаписейУниверсально #Тогда +#ДляОбъекта("") +#Иначе +#ПоЗначениямРасширенный("Справочник.СертификатыКлючейЭлектроннойПодписиИШифрования", "Чтение", "", +"ЛЕВОЕ СОЕДИНЕНИЕ Справочник.СертификатыКлючейЭлектроннойПодписиИШифрования.Пользователи КАК Т1 +ПО Т1.Ссылка = Т.Ссылка", +"(", +"Пользователи", "Т.Пользователь", "ИЛИ", +"Условие", "Т.Пользователь = Значение(Справочник.Пользователи.ПустаяСсылка)", "ИЛИ", +"Пользователи", "Т1.Пользователь", "ИЛИ", +"Условие", "Т.Пользователь = Значение(Справочник.Пользователи.ПустаяСсылка)", ")И(", +"Условие", "Истина", ")", +"", "", "", +"","","", "","","", "","","", "","","", "","","", "","","", "","","", "","","", "","","", "","","") +#КонецЕсли + + + + Insert + true + + #Если &ОграничениеДоступаНаУровнеЗаписейУниверсально #Тогда +#ДляОбъекта("") +#Иначе +#ПоЗначениямРасширенный("Справочник.СертификатыКлючейЭлектроннойПодписиИШифрования", "Добавление", "", +"ЛЕВОЕ СОЕДИНЕНИЕ Справочник.СертификатыКлючейЭлектроннойПодписиИШифрования.Пользователи КАК Т1 +ПО Т1.Ссылка = Т.Ссылка", +"(", +"Пользователи", "Т.Пользователь", "ИЛИ", +"Условие", "Т.Пользователь = Значение(Справочник.Пользователи.ПустаяСсылка)", "ИЛИ", +"Пользователи", "Т1.Пользователь", "ИЛИ", +"Условие", "Т.Пользователь = Значение(Справочник.Пользователи.ПустаяСсылка)", ")И(", +"Условие", "Истина", ")", +"", "", "", +"","","", "","","", "","","", "","","", "","","", "","","", "","","", "","","", "","","", "","","") +#КонецЕсли + + + + Update + true + + #Если &ОграничениеДоступаНаУровнеЗаписейУниверсально #Тогда +#ДляОбъекта("") +#Иначе +#ПоЗначениямРасширенный("Справочник.СертификатыКлючейЭлектроннойПодписиИШифрования", "Изменение", "", +"ЛЕВОЕ СОЕДИНЕНИЕ Справочник.СертификатыКлючейЭлектроннойПодписиИШифрования.Пользователи КАК Т1 +ПО Т1.Ссылка = Т.Ссылка", +"(", +"Пользователи", "Т.Пользователь", "ИЛИ", +"Условие", "Т.Пользователь = Значение(Справочник.Пользователи.ПустаяСсылка)", "ИЛИ", +"Пользователи", "Т1.Пользователь", "ИЛИ", +"Условие", "Т.Пользователь = Значение(Справочник.Пользователи.ПустаяСсылка)", ")И(", +"Условие", "Истина", ")", +"", "", "", +"","","", "","","", "","","", "","","", "","","", "","","", "","","", "","","", "","","", "","","") +#КонецЕсли + + + + View + true + + + InteractiveInsert + true + + + Edit + true + + + InteractiveSetDeletionMark + true + + + InteractiveClearDeletionMark + true + + + InputByString + true + + + + Report.СертификатыЭлектроннойПодписи + + Use + true + + + View + true + + + + Configuration.БиблиотекаСтандартныхПодсистем + + MainWindowModeNormal + true + + + MainWindowModeWorkplace + true + + + MainWindowModeEmbeddedWorkplace + true + + + MainWindowModeFullscreenWorkplace + true + + + MainWindowModeKiosk + true + + + AnalyticsSystemClient + true + + + + ДляОбъекта(ПолеОбъекта) + // ДляОбъекта(ПолеОбъекта = "") +// Шаблон используется для ограничения элементов справочников, документов и +// других списков объектов по полю Ссылка, а также элементов зависимых списков +// объектов и записей регистров через поле объекта-владельца. +// +// Параметры: +// ПолеОбъекта - имя поля, содержащего ссылку на объект, от которого зависит элемент списка. +// Значение "" (по умолчанию) то же, что имя поля "Ссылка". +// + +#Если &СпискиСОтключеннымОграничениемЧтения = "Неопределено" #Тогда + // Информационная база заблокирована для обновления. + ГДЕ ЛОЖЬ + +#ИначеЕсли Не СтрСодержит(&ВерсииШаблоновОграниченияДоступа, ",ДляОбъекта9,") #Тогда + Ошибка: Требуется обновить шаблон на актуальную версию, поставляемую в роли ИзменениеУчастниковГруппДоступа по причине: Используется устаревшая версия 9 шаблона ограничения доступа ДляОбъекта. Объект: #ИмяТекущейТаблицы, Право: #ИмяТекущегоПраваДоступа. + +#ИначеЕсли &СпискиСОтключеннымОграничениемЧтения = "Все" #Тогда + // У пользователя отключены все виды доступа или + // ограничение на уровне записей не используется. + ГДЕ ИСТИНА + +#ИначеЕсли СтрСодержит(&СпискиСОтключеннымОграничениемЧтения, #ИмяТекущейТаблицы + ";") #Тогда + // У пользователя отключено ограничение для текущей таблицы. + ГДЕ ИСТИНА + +#ИначеЕсли СтрСодержит(&ВерсииШаблоновОграниченияДоступа, ",ТребуетсяПерезапуститьСеанс,") #Тогда + Ошибка: Версия программы обновлена, требуется перезапустить сеанс. Объект: #ИмяТекущейТаблицы, Право: #ИмяТекущегоПраваДоступа. + +#ИначеЕсли #ИмяТекущегоПраваДоступа <> "Чтение" #Тогда + // Проверка прав Добавление, Изменение, Удаление выполняется ПередЗаписью / ПриЗаписи. + ГДЕ ИСТИНА + +#ИначеЕсли СтрСодержит(&СпискиСОграничениемЧерезКлючиДоступаГруппДоступа, #ИмяТекущейТаблицы + ";0") #Тогда + ГДЕ ЛОЖЬ + +#ИначеЕсли СтрСодержит(&СпискиСОграничениемЧерезКлючиДоступаГруппДоступа, #ИмяТекущейТаблицы + ";1") #Тогда + Ошибка: Внешние пользователи отключены. + +#ИначеЕсли Не СтрСодержит(&СпискиСОграничениемЧерезКлючиДоступаГруппДоступа, #ИмяТекущейТаблицы + ":#ПолеОбъекта;") + И Не СтрСодержит(&СпискиСОграничениемЧерезКлючиДоступаПользователей, #ИмяТекущейТаблицы + ":#ПолеОбъекта;") #Тогда + + Ошибка: Требуется актуализировать ограничение доступа по причине: Не удалось определить вариант ограничения доступа в параметрах сеанса для шаблона ДляОбъекта со значением параметра "#ПолеОбъекта". Объект: #ИмяТекущейТаблицы, Право: #ИмяТекущегоПраваДоступа. +#Иначе + +ТекущаяТаблица ГДЕ ИСТИНА В + ( + ВЫБРАТЬ ПЕРВЫЕ 1 ИСТИНА + ИЗ РегистрСведений.КлючиДоступаКОбъектам КАК КлючиДоступаКОбъектам + #Если СтрСодержит(&СпискиСОграничениемЧерезКлючиДоступаГруппДоступа, #ИмяТекущейТаблицы + ":#ПолеОбъекта;") #Тогда + ЛЕВОЕ СОЕДИНЕНИЕ РегистрСведений.КлючиДоступаНаборовГруппДоступа КАК КлючиДоступаНаборовГруппДоступа + ПО + #Если &ТекущийВнешнийПользователь = Значение(Справочник.ВнешниеПользователи.ПустаяСсылка) #Тогда + КлючиДоступаНаборовГруппДоступа.КлючДоступа = КлючиДоступаКОбъектам.КлючДоступаПользователей + #Иначе + КлючиДоступаНаборовГруппДоступа.КлючДоступа = КлючиДоступаКОбъектам.КлючДоступаВнешнихПользователей + #КонецЕсли + И КлючиДоступаНаборовГруппДоступа.НаборГруппДоступа = &РазрешенныйНаборГруппДоступа + #КонецЕсли + #Если СтрСодержит(&СпискиСОграничениемЧерезКлючиДоступаГруппДоступа, #ИмяТекущейТаблицы + ":#ПолеОбъекта;*") #Тогда + + ЛЕВОЕ СОЕДИНЕНИЕ РегистрСведений.КлючиДоступаНаборовГруппДоступа КАК КлючиДоступаРазрешенногоНабораГруппДоступа + ПО + #Если &ТекущийВнешнийПользователь = Значение(Справочник.ВнешниеПользователи.ПустаяСсылка) #Тогда + КлючиДоступаРазрешенногоНабораГруппДоступа.КлючДоступа = КлючиДоступаКОбъектам.КлючДоступаПользователей + #Иначе + КлючиДоступаРазрешенногоНабораГруппДоступа.КлючДоступа = КлючиДоступаКОбъектам.КлючДоступаВнешнихПользователей + #КонецЕсли + И КлючиДоступаРазрешенногоНабораГруппДоступа.НаборГруппДоступа = &РазрешенныйПустойНаборГруппДоступа + #КонецЕсли + #Если СтрСодержит(&СпискиСОграничениемЧерезКлючиДоступаПользователей, #ИмяТекущейТаблицы + ":#ПолеОбъекта;") #Тогда + + #Если &ТекущийВнешнийПользователь = Значение(Справочник.ВнешниеПользователи.ПустаяСсылка) #Тогда + ЛЕВОЕ СОЕДИНЕНИЕ РегистрСведений.КлючиДоступаПользователей КАК КлючиДоступаПользователей + ПО + КлючиДоступаПользователей.КлючДоступа = КлючиДоступаКОбъектам.КлючДоступаПользователей + И КлючиДоступаПользователей.Пользователь = &РазрешенныйПользователь + #Иначе + ЛЕВОЕ СОЕДИНЕНИЕ РегистрСведений.КлючиДоступаВнешнихПользователей КАК КлючиДоступаПользователей + ПО + КлючиДоступаПользователей.КлючДоступа = КлючиДоступаКОбъектам.КлючДоступаВнешнихПользователей + И КлючиДоступаПользователей.ВнешнийПользователь = &РазрешенныйПользователь + #КонецЕсли + #КонецЕсли + #Если СтрСодержит(&СпискиСОграничениемЧерезКлючиДоступаПользователей, #ИмяТекущейТаблицы + ":#ПолеОбъекта;+") #Тогда + + #Если &ТекущийВнешнийПользователь = Значение(Справочник.ВнешниеПользователи.ПустаяСсылка) #Тогда + ЛЕВОЕ СОЕДИНЕНИЕ РегистрСведений.КлючиДоступаПользователей КАК КлючиДоступаНаборовГруппПользователей + ПО + КлючиДоступаНаборовГруппПользователей.КлючДоступа = КлючиДоступаКОбъектам.КлючДоступаПользователей + И КлючиДоступаНаборовГруппПользователей.Пользователь = &РазрешенныйНаборГруппПользователей + #Иначе + ЛЕВОЕ СОЕДИНЕНИЕ РегистрСведений.КлючиДоступаВнешнихПользователей КАК КлючиДоступаНаборовГруппПользователей + ПО + КлючиДоступаНаборовГруппПользователей.КлючДоступа = КлючиДоступаКОбъектам.КлючДоступаВнешнихПользователей + И КлючиДоступаНаборовГруппПользователей.ВнешнийПользователь = &РазрешенныйНаборГруппПользователей + #КонецЕсли + #КонецЕсли + ГДЕ + #Если "#ПолеОбъекта" = "" + Или СтрСодержит(&СпискиСОграничениемЧерезКлючиДоступаГруппДоступа, #ИмяТекущейТаблицы + ":#ПолеОбъекта;;-") + Или СтрСодержит(&СпискиСОграничениемЧерезКлючиДоступаГруппДоступа, #ИмяТекущейТаблицы + ":#ПолеОбъекта;*;-") + Или СтрСодержит(&СпискиСОграничениемЧерезКлючиДоступаПользователей, #ИмяТекущейТаблицы + ":#ПолеОбъекта;;-") + Или СтрСодержит(&СпискиСОграничениемЧерезКлючиДоступаПользователей, #ИмяТекущейТаблицы + ":#ПолеОбъекта;+;-") #Тогда + КлючиДоступаКОбъектам.Объект = ТекущаяТаблица.Ссылка + #Иначе + КлючиДоступаКОбъектам.Объект = ТекущаяТаблица.#ПолеОбъекта + #КонецЕсли + И ( + #Если СтрСодержит(&СпискиСОграничениемЧерезКлючиДоступаГруппДоступа, #ИмяТекущейТаблицы + ":#ПолеОбъекта;") #Тогда + НЕ КлючиДоступаНаборовГруппДоступа.КлючДоступа ЕСТЬ NULL + #Иначе + ЛОЖЬ + #КонецЕсли + #Если СтрСодержит(&СпискиСОграничениемЧерезКлючиДоступаГруппДоступа, #ИмяТекущейТаблицы + ":#ПолеОбъекта;*") #Тогда + ИЛИ НЕ КлючиДоступаРазрешенногоНабораГруппДоступа.КлючДоступа ЕСТЬ NULL + #КонецЕсли + #Если СтрСодержит(&СпискиСОграничениемЧерезКлючиДоступаПользователей, #ИмяТекущейТаблицы + ":#ПолеОбъекта;") #Тогда + ИЛИ НЕ КлючиДоступаПользователей.КлючДоступа ЕСТЬ NULL + #КонецЕсли + #Если СтрСодержит(&СпискиСОграничениемЧерезКлючиДоступаПользователей, #ИмяТекущейТаблицы + ":#ПолеОбъекта;+") #Тогда + ИЛИ НЕ КлючиДоступаНаборовГруппПользователей.КлючДоступа ЕСТЬ NULL + #КонецЕсли + ) + ) + + #Если Не СтрСодержит(&ОбщиеПараметрыШаблоновОграниченияДоступа, #ИмяТекущейТаблицы + ":Пропустить;") + И ( СтрСодержит(&ОбщиеПараметрыШаблоновОграниченияДоступа, ";УточнитьДляВсех;") + Или СтрСодержит(&ОбщиеПараметрыШаблоновОграниченияДоступа, #ИмяТекущейТаблицы + ":Уточнить;") ) #Тогда + + #Если Не СтрСодержит(&СпискиСОграничениемЧерезКлючиДоступаПользователей, #ИмяТекущейТаблицы + ":#ПолеОбъекта;") #Тогда + И ИСТИНА В (ИСТИНА + #Если СтрСодержит(&ОбщиеПараметрыШаблоновОграниченияДоступа, ";31;") #Тогда ,ИСТИНА #Иначе ,ЛОЖЬ #КонецЕсли + #Если СтрСодержит(&ОбщиеПараметрыШаблоновОграниченияДоступа, ";30;") #Тогда ,ИСТИНА #Иначе ,ЛОЖЬ #КонецЕсли + #Если СтрСодержит(&ОбщиеПараметрыШаблоновОграниченияДоступа, ";29;") #Тогда ,ИСТИНА #Иначе ,ЛОЖЬ #КонецЕсли + #Если СтрСодержит(&ОбщиеПараметрыШаблоновОграниченияДоступа, ";28;") #Тогда ,ИСТИНА #Иначе ,ЛОЖЬ #КонецЕсли + #Если СтрСодержит(&ОбщиеПараметрыШаблоновОграниченияДоступа, ";27;") #Тогда ,ИСТИНА #Иначе ,ЛОЖЬ #КонецЕсли + #Если СтрСодержит(&ОбщиеПараметрыШаблоновОграниченияДоступа, ";26;") #Тогда ,ИСТИНА #Иначе ,ЛОЖЬ #КонецЕсли + #Если СтрСодержит(&ОбщиеПараметрыШаблоновОграниченияДоступа, ";25;") #Тогда ,ИСТИНА #Иначе ,ЛОЖЬ #КонецЕсли + #Если СтрСодержит(&ОбщиеПараметрыШаблоновОграниченияДоступа, ";24;") #Тогда ,ИСТИНА #Иначе ,ЛОЖЬ #КонецЕсли + #Если СтрСодержит(&ОбщиеПараметрыШаблоновОграниченияДоступа, ";23;") #Тогда ,ИСТИНА #Иначе ,ЛОЖЬ #КонецЕсли + #Если СтрСодержит(&ОбщиеПараметрыШаблоновОграниченияДоступа, ";22;") #Тогда ,ИСТИНА #Иначе ,ЛОЖЬ #КонецЕсли + #Если СтрСодержит(&ОбщиеПараметрыШаблоновОграниченияДоступа, ";21;") #Тогда ,ИСТИНА #Иначе ,ЛОЖЬ #КонецЕсли + #Если СтрСодержит(&ОбщиеПараметрыШаблоновОграниченияДоступа, ";20;") #Тогда ,ИСТИНА #Иначе ,ЛОЖЬ #КонецЕсли + #Если СтрСодержит(&ОбщиеПараметрыШаблоновОграниченияДоступа, ";19;") #Тогда ,ИСТИНА #Иначе ,ЛОЖЬ #КонецЕсли + #Если СтрСодержит(&ОбщиеПараметрыШаблоновОграниченияДоступа, ";18;") #Тогда ,ИСТИНА #Иначе ,ЛОЖЬ #КонецЕсли + #Если СтрСодержит(&ОбщиеПараметрыШаблоновОграниченияДоступа, ";17;") #Тогда ,ИСТИНА #Иначе ,ЛОЖЬ #КонецЕсли + #Если СтрСодержит(&ОбщиеПараметрыШаблоновОграниченияДоступа, ";16;") #Тогда ,ИСТИНА #Иначе ,ЛОЖЬ #КонецЕсли + #Если СтрСодержит(&ОбщиеПараметрыШаблоновОграниченияДоступа, ";15;") #Тогда ,ИСТИНА #Иначе ,ЛОЖЬ #КонецЕсли + #Если СтрСодержит(&ОбщиеПараметрыШаблоновОграниченияДоступа, ";14;") #Тогда ,ИСТИНА #Иначе ,ЛОЖЬ #КонецЕсли + #Если СтрСодержит(&ОбщиеПараметрыШаблоновОграниченияДоступа, ";13;") #Тогда ,ИСТИНА #Иначе ,ЛОЖЬ #КонецЕсли + #Если СтрСодержит(&ОбщиеПараметрыШаблоновОграниченияДоступа, ";12;") #Тогда ,ИСТИНА #Иначе ,ЛОЖЬ #КонецЕсли + #Если СтрСодержит(&ОбщиеПараметрыШаблоновОграниченияДоступа, ";11;") #Тогда ,ИСТИНА #Иначе ,ЛОЖЬ #КонецЕсли + #Если СтрСодержит(&ОбщиеПараметрыШаблоновОграниченияДоступа, ";10;") #Тогда ,ИСТИНА #Иначе ,ЛОЖЬ #КонецЕсли + #Если СтрСодержит(&ОбщиеПараметрыШаблоновОграниченияДоступа, ";09;") #Тогда ,ИСТИНА #Иначе ,ЛОЖЬ #КонецЕсли + #Если СтрСодержит(&ОбщиеПараметрыШаблоновОграниченияДоступа, ";08;") #Тогда ,ИСТИНА #Иначе ,ЛОЖЬ #КонецЕсли + #Если СтрСодержит(&ОбщиеПараметрыШаблоновОграниченияДоступа, ";07;") #Тогда ,ИСТИНА #Иначе ,ЛОЖЬ #КонецЕсли + #Если СтрСодержит(&ОбщиеПараметрыШаблоновОграниченияДоступа, ";06;") #Тогда ,ИСТИНА #Иначе ,ЛОЖЬ #КонецЕсли + #Если СтрСодержит(&ОбщиеПараметрыШаблоновОграниченияДоступа, ";05;") #Тогда ,ИСТИНА #Иначе ,ЛОЖЬ #КонецЕсли + #Если СтрСодержит(&ОбщиеПараметрыШаблоновОграниченияДоступа, ";04;") #Тогда ,ИСТИНА #Иначе ,ЛОЖЬ #КонецЕсли + #Если СтрСодержит(&ОбщиеПараметрыШаблоновОграниченияДоступа, ";03;") #Тогда ,ИСТИНА #Иначе ,ЛОЖЬ #КонецЕсли + #Если СтрСодержит(&ОбщиеПараметрыШаблоновОграниченияДоступа, ";02;") #Тогда ,ИСТИНА #Иначе ,ЛОЖЬ #КонецЕсли + #Если СтрСодержит(&ОбщиеПараметрыШаблоновОграниченияДоступа, ";01;") #Тогда ,ИСТИНА #Иначе ,ЛОЖЬ #КонецЕсли + #Если СтрСодержит(&ОбщиеПараметрыШаблоновОграниченияДоступа, ";00;") #Тогда ,ИСТИНА #Иначе ,ЛОЖЬ #КонецЕсли + ) + #Иначе + И ИСТИНА В (ИСТИНА + #Если СтрСодержит(&ОбщиеПараметрыШаблоновОграниченияДоступа, ";31^;") #Тогда ,ИСТИНА #Иначе ,ЛОЖЬ #КонецЕсли + #Если СтрСодержит(&ОбщиеПараметрыШаблоновОграниченияДоступа, ";30^;") #Тогда ,ИСТИНА #Иначе ,ЛОЖЬ #КонецЕсли + #Если СтрСодержит(&ОбщиеПараметрыШаблоновОграниченияДоступа, ";29^;") #Тогда ,ИСТИНА #Иначе ,ЛОЖЬ #КонецЕсли + #Если СтрСодержит(&ОбщиеПараметрыШаблоновОграниченияДоступа, ";28^;") #Тогда ,ИСТИНА #Иначе ,ЛОЖЬ #КонецЕсли + #Если СтрСодержит(&ОбщиеПараметрыШаблоновОграниченияДоступа, ";27^;") #Тогда ,ИСТИНА #Иначе ,ЛОЖЬ #КонецЕсли + #Если СтрСодержит(&ОбщиеПараметрыШаблоновОграниченияДоступа, ";26^;") #Тогда ,ИСТИНА #Иначе ,ЛОЖЬ #КонецЕсли + #Если СтрСодержит(&ОбщиеПараметрыШаблоновОграниченияДоступа, ";25^;") #Тогда ,ИСТИНА #Иначе ,ЛОЖЬ #КонецЕсли + #Если СтрСодержит(&ОбщиеПараметрыШаблоновОграниченияДоступа, ";24^;") #Тогда ,ИСТИНА #Иначе ,ЛОЖЬ #КонецЕсли + #Если СтрСодержит(&ОбщиеПараметрыШаблоновОграниченияДоступа, ";23^;") #Тогда ,ИСТИНА #Иначе ,ЛОЖЬ #КонецЕсли + #Если СтрСодержит(&ОбщиеПараметрыШаблоновОграниченияДоступа, ";22^;") #Тогда ,ИСТИНА #Иначе ,ЛОЖЬ #КонецЕсли + #Если СтрСодержит(&ОбщиеПараметрыШаблоновОграниченияДоступа, ";21^;") #Тогда ,ИСТИНА #Иначе ,ЛОЖЬ #КонецЕсли + #Если СтрСодержит(&ОбщиеПараметрыШаблоновОграниченияДоступа, ";20^;") #Тогда ,ИСТИНА #Иначе ,ЛОЖЬ #КонецЕсли + #Если СтрСодержит(&ОбщиеПараметрыШаблоновОграниченияДоступа, ";19^;") #Тогда ,ИСТИНА #Иначе ,ЛОЖЬ #КонецЕсли + #Если СтрСодержит(&ОбщиеПараметрыШаблоновОграниченияДоступа, ";18^;") #Тогда ,ИСТИНА #Иначе ,ЛОЖЬ #КонецЕсли + #Если СтрСодержит(&ОбщиеПараметрыШаблоновОграниченияДоступа, ";17^;") #Тогда ,ИСТИНА #Иначе ,ЛОЖЬ #КонецЕсли + #Если СтрСодержит(&ОбщиеПараметрыШаблоновОграниченияДоступа, ";16^;") #Тогда ,ИСТИНА #Иначе ,ЛОЖЬ #КонецЕсли + #Если СтрСодержит(&ОбщиеПараметрыШаблоновОграниченияДоступа, ";15^;") #Тогда ,ИСТИНА #Иначе ,ЛОЖЬ #КонецЕсли + #Если СтрСодержит(&ОбщиеПараметрыШаблоновОграниченияДоступа, ";14^;") #Тогда ,ИСТИНА #Иначе ,ЛОЖЬ #КонецЕсли + #Если СтрСодержит(&ОбщиеПараметрыШаблоновОграниченияДоступа, ";13^;") #Тогда ,ИСТИНА #Иначе ,ЛОЖЬ #КонецЕсли + #Если СтрСодержит(&ОбщиеПараметрыШаблоновОграниченияДоступа, ";12^;") #Тогда ,ИСТИНА #Иначе ,ЛОЖЬ #КонецЕсли + #Если СтрСодержит(&ОбщиеПараметрыШаблоновОграниченияДоступа, ";11^;") #Тогда ,ИСТИНА #Иначе ,ЛОЖЬ #КонецЕсли + #Если СтрСодержит(&ОбщиеПараметрыШаблоновОграниченияДоступа, ";10^;") #Тогда ,ИСТИНА #Иначе ,ЛОЖЬ #КонецЕсли + #Если СтрСодержит(&ОбщиеПараметрыШаблоновОграниченияДоступа, ";09^;") #Тогда ,ИСТИНА #Иначе ,ЛОЖЬ #КонецЕсли + #Если СтрСодержит(&ОбщиеПараметрыШаблоновОграниченияДоступа, ";08^;") #Тогда ,ИСТИНА #Иначе ,ЛОЖЬ #КонецЕсли + #Если СтрСодержит(&ОбщиеПараметрыШаблоновОграниченияДоступа, ";07^;") #Тогда ,ИСТИНА #Иначе ,ЛОЖЬ #КонецЕсли + #Если СтрСодержит(&ОбщиеПараметрыШаблоновОграниченияДоступа, ";06^;") #Тогда ,ИСТИНА #Иначе ,ЛОЖЬ #КонецЕсли + #Если СтрСодержит(&ОбщиеПараметрыШаблоновОграниченияДоступа, ";05^;") #Тогда ,ИСТИНА #Иначе ,ЛОЖЬ #КонецЕсли + #Если СтрСодержит(&ОбщиеПараметрыШаблоновОграниченияДоступа, ";04^;") #Тогда ,ИСТИНА #Иначе ,ЛОЖЬ #КонецЕсли + #Если СтрСодержит(&ОбщиеПараметрыШаблоновОграниченияДоступа, ";03^;") #Тогда ,ИСТИНА #Иначе ,ЛОЖЬ #КонецЕсли + #Если СтрСодержит(&ОбщиеПараметрыШаблоновОграниченияДоступа, ";02^;") #Тогда ,ИСТИНА #Иначе ,ЛОЖЬ #КонецЕсли + #Если СтрСодержит(&ОбщиеПараметрыШаблоновОграниченияДоступа, ";01^;") #Тогда ,ИСТИНА #Иначе ,ЛОЖЬ #КонецЕсли + #Если СтрСодержит(&ОбщиеПараметрыШаблоновОграниченияДоступа, ";00^;") #Тогда ,ИСТИНА #Иначе ,ЛОЖЬ #КонецЕсли + ) + #КонецЕсли + #КонецЕсли + +#КонецЕсли + + + ДляРегистра(Регистр, Поле1, Поле2, Поле3, Поле4, Поле5) + // ДляРегистра(Регистр, Поле1, Поле2 = "", Поле3 = "", Поле4 = "", Поле5 = "") +// Шаблон используется для ограничения групп записей регистров. +// +// Параметры: +// Регистр - имя предопределенного элемента справочника Идентификаторы объектов метаданных или справочника +// Идентификаторы объектов расширений в формате: имя справочника с точкой и полное имя таблицы +// без точки, например, ИдентификаторыОбъектовМетаданных.РегистрНакопленияОстаткиНаСкладах; +// - имя отдельного регистра ключей в формате КлючиДоступаКРегистру<ОстатокИмени>, +// например, КлючиДоступаКРегиструОстаткиНаСкладах. +// Поле1 - имя первого поля (измерения, ресурса, реквизита), которое будет соединяться с полем Поле1 +// регистра сведений КлючиДоступаКРегистр* +// Поле2 - аналогично предыдущему параметру, если используется в ограничении доступа к регистру. +// ... +// Поле5 - аналогично предыдущему параметру, если используется в ограничении доступа к регистру. + +#Если &СпискиСОтключеннымОграничениемЧтения = "Неопределено" #Тогда + // Информационная база заблокирована для обновления. + ГДЕ ЛОЖЬ + +#ИначеЕсли Не СтрСодержит(&ВерсииШаблоновОграниченияДоступа, ",ДляРегистра9,") #Тогда + Ошибка: Требуется обновить шаблон на актуальную версию, поставляемую в роли ИзменениеУчастниковГруппДоступа по причине: Используется устаревшая версия 9 шаблона ограничения доступа ДляРегистра. Объект: #ИмяТекущейТаблицы, Право: #ИмяТекущегоПраваДоступа. + +#ИначеЕсли &СпискиСОтключеннымОграничениемЧтения = "Все" #Тогда + // У пользователя отключены все виды доступа или + // ограничение на уровне записей не используется. + ГДЕ ИСТИНА + +#ИначеЕсли СтрСодержит(&СпискиСОтключеннымОграничениемЧтения, #ИмяТекущейТаблицы + ";") #Тогда + // У пользователя отключено ограничение для текущей таблицы. + ГДЕ ИСТИНА + +#ИначеЕсли СтрСодержит(&ВерсииШаблоновОграниченияДоступа, ",ТребуетсяПерезапуститьСеанс,") #Тогда + Ошибка: Версия программы обновлена, требуется перезапустить сеанс. Объект: #ИмяТекущейТаблицы, Право: #ИмяТекущегоПраваДоступа. + +#ИначеЕсли #ИмяТекущегоПраваДоступа <> "Чтение" #Тогда + // Проверка прав Добавление, Изменение, Удаление выполняется ПередЗаписью / ПриЗаписи. + ГДЕ ИСТИНА + +#ИначеЕсли СтрСодержит(&СпискиСОграничениемЧерезКлючиДоступаГруппДоступа, #ИмяТекущейТаблицы + ";0") #Тогда + ГДЕ ЛОЖЬ + +#ИначеЕсли СтрСодержит(&СпискиСОграничениемЧерезКлючиДоступаГруппДоступа, #ИмяТекущейТаблицы + ";1") #Тогда + Ошибка: Внешние пользователи отключены. + +#ИначеЕсли Не СтрСодержит(&СпискиСОграничениемЧерезКлючиДоступаГруппДоступа, #ИмяТекущейТаблицы + ":[#Регистр]:#Поле1:#Поле2:#Поле3:#Поле4:#Поле5;") + И Не СтрСодержит(&СпискиСОграничениемЧерезКлючиДоступаПользователей, #ИмяТекущейТаблицы + ":[#Регистр]:#Поле1:#Поле2:#Поле3:#Поле4:#Поле5;") #Тогда + + Ошибка: Требуется актуализировать ограничение доступа по причине: Не удалось определить вариант ограничения доступа в параметрах сеанса для шаблона ДляРегистра со значениями параметров "#Регистр", "#Поле1", "#Поле2", "#Поле3", "#Поле4", "#Поле5". Объект: #ИмяТекущейТаблицы, Право: #ИмяТекущегоПраваДоступа. +#Иначе + +ТекущаяТаблица ГДЕ ИСТИНА В + ( + ВЫБРАТЬ ПЕРВЫЕ 1 ИСТИНА +#Если Не СтрСодержит("#Регистр", "КлючиДоступаКРегистру") #Тогда + ИЗ РегистрСведений.КлючиДоступаКРегистрам КАК КлючиДоступаКРегистрам +#Иначе + ИЗ РегистрСведений.#Регистр КАК КлючиДоступаКРегистрам +#КонецЕсли + #Если СтрСодержит(&СпискиСОграничениемЧерезКлючиДоступаГруппДоступа, #ИмяТекущейТаблицы + ":[#Регистр]:#Поле1:#Поле2:#Поле3:#Поле4:#Поле5;") #Тогда + ЛЕВОЕ СОЕДИНЕНИЕ РегистрСведений.КлючиДоступаНаборовГруппДоступа КАК КлючиДоступаНаборовГруппДоступа + ПО + КлючиДоступаНаборовГруппДоступа.КлючДоступа = КлючиДоступаКРегистрам.КлючДоступа + И КлючиДоступаНаборовГруппДоступа.НаборГруппДоступа = &РазрешенныйНаборГруппДоступа + #КонецЕсли + #Если СтрСодержит(&СпискиСОграничениемЧерезКлючиДоступаГруппДоступа, #ИмяТекущейТаблицы + ":[#Регистр]:#Поле1:#Поле2:#Поле3:#Поле4:#Поле5;*") #Тогда + + ЛЕВОЕ СОЕДИНЕНИЕ РегистрСведений.КлючиДоступаНаборовГруппДоступа КАК КлючиДоступаРазрешенногоНабораГруппДоступа + ПО + КлючиДоступаРазрешенногоНабораГруппДоступа.КлючДоступа = КлючиДоступаКРегистрам.КлючДоступа + И КлючиДоступаРазрешенногоНабораГруппДоступа.НаборГруппДоступа = &РазрешенныйПустойНаборГруппДоступа + #КонецЕсли + #Если СтрСодержит(&СпискиСОграничениемЧерезКлючиДоступаПользователей, #ИмяТекущейТаблицы + ":[#Регистр]:#Поле1:#Поле2:#Поле3:#Поле4:#Поле5;") #Тогда + + #Если &ТекущийВнешнийПользователь = Значение(Справочник.ВнешниеПользователи.ПустаяСсылка) #Тогда + ЛЕВОЕ СОЕДИНЕНИЕ РегистрСведений.КлючиДоступаПользователей КАК КлючиДоступаПользователей + ПО + КлючиДоступаПользователей.КлючДоступа = КлючиДоступаКРегистрам.КлючДоступа + И КлючиДоступаПользователей.Пользователь = &РазрешенныйПользователь + #Иначе + ЛЕВОЕ СОЕДИНЕНИЕ РегистрСведений.КлючиДоступаВнешнихПользователей КАК КлючиДоступаПользователей + ПО + КлючиДоступаПользователей.КлючДоступа = КлючиДоступаКРегистрам.КлючДоступа + И КлючиДоступаПользователей.ВнешнийПользователь = &РазрешенныйПользователь + #КонецЕсли + #КонецЕсли + #Если СтрСодержит(&СпискиСОграничениемЧерезКлючиДоступаПользователей, #ИмяТекущейТаблицы + ":[#Регистр]:#Поле1:#Поле2:#Поле3:#Поле4:#Поле5;+") #Тогда + + #Если &ТекущийВнешнийПользователь = Значение(Справочник.ВнешниеПользователи.ПустаяСсылка) #Тогда + ЛЕВОЕ СОЕДИНЕНИЕ РегистрСведений.КлючиДоступаПользователей КАК КлючиДоступаНаборовГруппПользователей + ПО + КлючиДоступаНаборовГруппПользователей.КлючДоступа = КлючиДоступаКРегистрам.КлючДоступа + И КлючиДоступаНаборовГруппПользователей.Пользователь = &РазрешенныйНаборГруппПользователей + #Иначе + ЛЕВОЕ СОЕДИНЕНИЕ РегистрСведений.КлючиДоступаВнешнихПользователей КАК КлючиДоступаНаборовГруппПользователей + ПО + КлючиДоступаНаборовГруппПользователей.КлючДоступа = КлючиДоступаКРегистрам.КлючДоступа + И КлючиДоступаНаборовГруппПользователей.ВнешнийПользователь = &РазрешенныйНаборГруппПользователей + #КонецЕсли + #КонецЕсли + ГДЕ + #Если Не СтрСодержит("#Регистр", "КлючиДоступаКРегистру") #Тогда + КлючиДоступаКРегистрам.Регистр = Значение(Справочник.#Регистр) + #Иначе + ИСТИНА + #КонецЕсли + И + ( + КлючиДоступаКРегистрам.ВариантДоступа = + ( + #Если &ТекущийВнешнийПользователь = Значение(Справочник.ВнешниеПользователи.ПустаяСсылка) #Тогда 0 #Иначе 1 #КонецЕсли + #Если Не СтрСодержит(&СпискиСОграничениемПоПолям, #ИмяТекущейТаблицы + ":Вариант1Версия1=0") #Тогда + #Если СтрСодержит(&СпискиСОграничениемПоПолям, #ИмяТекущейТаблицы + ":Вариант1Поле1=Поле") #Тогда + 2 #КонецЕсли + #Если СтрСодержит(&СпискиСОграничениемПоПолям, #ИмяТекущейТаблицы + ":Вариант1Поле2=Поле") #Тогда + 2 #КонецЕсли + #Если СтрСодержит(&СпискиСОграничениемПоПолям, #ИмяТекущейТаблицы + ":Вариант1Поле3=Поле") #Тогда + 2 #КонецЕсли + #Если СтрСодержит(&СпискиСОграничениемПоПолям, #ИмяТекущейТаблицы + ":Вариант1Поле4=Поле") #Тогда + 2 #КонецЕсли + #Если СтрСодержит(&СпискиСОграничениемПоПолям, #ИмяТекущейТаблицы + ":Вариант1Поле5=Поле") #Тогда + 2 #КонецЕсли + #Если СтрСодержит(&СпискиСОграничениемПоПолям, #ИмяТекущейТаблицы + ":Версия1Бит0=1") #Тогда + 64 #КонецЕсли + #Если СтрСодержит(&СпискиСОграничениемПоПолям, #ИмяТекущейТаблицы + ":Версия1Бит1=1") #Тогда + 128 #КонецЕсли + #Если СтрСодержит(&СпискиСОграничениемПоПолям, #ИмяТекущейТаблицы + ":Версия1Бит2=1") #Тогда + 256 #КонецЕсли + #Если СтрСодержит(&СпискиСОграничениемПоПолям, #ИмяТекущейТаблицы + ":Версия1Бит3=1") #Тогда + 512 #КонецЕсли + #КонецЕсли + ) + #Если СтрСодержит(&СпискиСОграничениемПоПолям, #ИмяТекущейТаблицы + ":Вариант1Поле1=Поле1;") #Тогда + И КлючиДоступаКРегистрам.Поле1 = ТекущаяТаблица.#Поле1 + #ИначеЕсли СтрСодержит(&СпискиСОграничениемПоПолям, #ИмяТекущейТаблицы + ":Вариант1Поле1=Поле2;") #Тогда + И КлючиДоступаКРегистрам.Поле1 = ТекущаяТаблица.#Поле2 + #ИначеЕсли СтрСодержит(&СпискиСОграничениемПоПолям, #ИмяТекущейТаблицы + ":Вариант1Поле1=Поле3;") #Тогда + И КлючиДоступаКРегистрам.Поле1 = ТекущаяТаблица.#Поле3 + #ИначеЕсли СтрСодержит(&СпискиСОграничениемПоПолям, #ИмяТекущейТаблицы + ":Вариант1Поле1=Поле4;") #Тогда + И КлючиДоступаКРегистрам.Поле1 = ТекущаяТаблица.#Поле4 + #ИначеЕсли СтрСодержит(&СпискиСОграничениемПоПолям, #ИмяТекущейТаблицы + ":Вариант1Поле1=Поле5;") #Тогда + И КлючиДоступаКРегистрам.Поле1 = ТекущаяТаблица.#Поле5 + #КонецЕсли + + #Если СтрСодержит(&СпискиСОграничениемПоПолям, #ИмяТекущейТаблицы + ":Вариант1Поле2=Поле2;") #Тогда + И КлючиДоступаКРегистрам.Поле2 = ТекущаяТаблица.#Поле2 + #ИначеЕсли СтрСодержит(&СпискиСОграничениемПоПолям, #ИмяТекущейТаблицы + ":Вариант1Поле2=Поле3;") #Тогда + И КлючиДоступаКРегистрам.Поле2 = ТекущаяТаблица.#Поле3 + #ИначеЕсли СтрСодержит(&СпискиСОграничениемПоПолям, #ИмяТекущейТаблицы + ":Вариант1Поле2=Поле4;") #Тогда + И КлючиДоступаКРегистрам.Поле2 = ТекущаяТаблица.#Поле4 + #ИначеЕсли СтрСодержит(&СпискиСОграничениемПоПолям, #ИмяТекущейТаблицы + ":Вариант1Поле2=Поле5;") #Тогда + И КлючиДоступаКРегистрам.Поле2 = ТекущаяТаблица.#Поле5 + #КонецЕсли + + #Если СтрСодержит(&СпискиСОграничениемПоПолям, #ИмяТекущейТаблицы + ":Вариант1Поле3=Поле3;") #Тогда + И КлючиДоступаКРегистрам.Поле3 = ТекущаяТаблица.#Поле3 + #ИначеЕсли СтрСодержит(&СпискиСОграничениемПоПолям, #ИмяТекущейТаблицы + ":Вариант1Поле3=Поле4;") #Тогда + И КлючиДоступаКРегистрам.Поле3 = ТекущаяТаблица.#Поле4 + #ИначеЕсли СтрСодержит(&СпискиСОграничениемПоПолям, #ИмяТекущейТаблицы + ":Вариант1Поле3=Поле5;") #Тогда + И КлючиДоступаКРегистрам.Поле3 = ТекущаяТаблица.#Поле5 + #КонецЕсли + + #Если СтрСодержит(&СпискиСОграничениемПоПолям, #ИмяТекущейТаблицы + ":Вариант1Поле4=Поле4;") #Тогда + И КлючиДоступаКРегистрам.Поле4 = ТекущаяТаблица.#Поле4 + #ИначеЕсли СтрСодержит(&СпискиСОграничениемПоПолям, #ИмяТекущейТаблицы + ":Вариант1Поле4=Поле5;") #Тогда + И КлючиДоступаКРегистрам.Поле4 = ТекущаяТаблица.#Поле5 + #КонецЕсли + + #Если СтрСодержит(&СпискиСОграничениемПоПолям, #ИмяТекущейТаблицы + ":Вариант1Поле5=Поле5;") #Тогда + И КлючиДоступаКРегистрам.Поле5 = ТекущаяТаблица.#Поле5 + #КонецЕсли + + #Если СтрСодержит(&СпискиСОграничениемПоПолям, #ИмяТекущейТаблицы + ":Вариант2") #Тогда + + ИЛИ + КлючиДоступаКРегистрам.ВариантДоступа = + ( + #Если &ТекущийВнешнийПользователь = Значение(Справочник.ВнешниеПользователи.ПустаяСсылка) #Тогда 0 #Иначе 1 #КонецЕсли + #Если Не СтрСодержит(&СпискиСОграничениемПоПолям, #ИмяТекущейТаблицы + ":Вариант2Версия2=0") #Тогда + #Если СтрСодержит(&СпискиСОграничениемПоПолям, #ИмяТекущейТаблицы + ":Вариант2Поле1=Поле") #Тогда + 2 #КонецЕсли + #Если СтрСодержит(&СпискиСОграничениемПоПолям, #ИмяТекущейТаблицы + ":Вариант2Поле2=Поле") #Тогда + 2 #КонецЕсли + #Если СтрСодержит(&СпискиСОграничениемПоПолям, #ИмяТекущейТаблицы + ":Вариант2Поле3=Поле") #Тогда + 2 #КонецЕсли + #Если СтрСодержит(&СпискиСОграничениемПоПолям, #ИмяТекущейТаблицы + ":Вариант2Поле4=Поле") #Тогда + 2 #КонецЕсли + #Если СтрСодержит(&СпискиСОграничениемПоПолям, #ИмяТекущейТаблицы + ":Вариант2Поле5=Поле") #Тогда + 2 #КонецЕсли + #Если СтрСодержит(&СпискиСОграничениемПоПолям, #ИмяТекущейТаблицы + ":Версия2Бит0=1") #Тогда + 64 #КонецЕсли + #Если СтрСодержит(&СпискиСОграничениемПоПолям, #ИмяТекущейТаблицы + ":Версия2Бит1=1") #Тогда + 128 #КонецЕсли + #Если СтрСодержит(&СпискиСОграничениемПоПолям, #ИмяТекущейТаблицы + ":Версия2Бит2=1") #Тогда + 256 #КонецЕсли + #Если СтрСодержит(&СпискиСОграничениемПоПолям, #ИмяТекущейТаблицы + ":Версия2Бит3=1") #Тогда + 512 #КонецЕсли + #КонецЕсли + ) + #Если СтрСодержит(&СпискиСОграничениемПоПолям, #ИмяТекущейТаблицы + ":Вариант2Поле1=Поле1;") #Тогда + И КлючиДоступаКРегистрам.Поле1 = ТекущаяТаблица.#Поле1 + #ИначеЕсли СтрСодержит(&СпискиСОграничениемПоПолям, #ИмяТекущейТаблицы + ":Вариант2Поле1=Поле2;") #Тогда + И КлючиДоступаКРегистрам.Поле1 = ТекущаяТаблица.#Поле2 + #ИначеЕсли СтрСодержит(&СпискиСОграничениемПоПолям, #ИмяТекущейТаблицы + ":Вариант2Поле1=Поле3;") #Тогда + И КлючиДоступаКРегистрам.Поле1 = ТекущаяТаблица.#Поле3 + #ИначеЕсли СтрСодержит(&СпискиСОграничениемПоПолям, #ИмяТекущейТаблицы + ":Вариант2Поле1=Поле4;") #Тогда + И КлючиДоступаКРегистрам.Поле1 = ТекущаяТаблица.#Поле4 + #ИначеЕсли СтрСодержит(&СпискиСОграничениемПоПолям, #ИмяТекущейТаблицы + ":Вариант2Поле1=Поле5;") #Тогда + И КлючиДоступаКРегистрам.Поле1 = ТекущаяТаблица.#Поле5 + #КонецЕсли + + #Если СтрСодержит(&СпискиСОграничениемПоПолям, #ИмяТекущейТаблицы + ":Вариант2Поле2=Поле2;") #Тогда + И КлючиДоступаКРегистрам.Поле2 = ТекущаяТаблица.#Поле2 + #ИначеЕсли СтрСодержит(&СпискиСОграничениемПоПолям, #ИмяТекущейТаблицы + ":Вариант2Поле2=Поле3;") #Тогда + И КлючиДоступаКРегистрам.Поле2 = ТекущаяТаблица.#Поле3 + #ИначеЕсли СтрСодержит(&СпискиСОграничениемПоПолям, #ИмяТекущейТаблицы + ":Вариант2Поле2=Поле4;") #Тогда + И КлючиДоступаКРегистрам.Поле2 = ТекущаяТаблица.#Поле4 + #ИначеЕсли СтрСодержит(&СпискиСОграничениемПоПолям, #ИмяТекущейТаблицы + ":Вариант2Поле2=Поле5;") #Тогда + И КлючиДоступаКРегистрам.Поле2 = ТекущаяТаблица.#Поле5 + #КонецЕсли + + #Если СтрСодержит(&СпискиСОграничениемПоПолям, #ИмяТекущейТаблицы + ":Вариант2Поле3=Поле3;") #Тогда + И КлючиДоступаКРегистрам.Поле3 = ТекущаяТаблица.#Поле3 + #ИначеЕсли СтрСодержит(&СпискиСОграничениемПоПолям, #ИмяТекущейТаблицы + ":Вариант2Поле3=Поле4;") #Тогда + И КлючиДоступаКРегистрам.Поле3 = ТекущаяТаблица.#Поле4 + #ИначеЕсли СтрСодержит(&СпискиСОграничениемПоПолям, #ИмяТекущейТаблицы + ":Вариант2Поле3=Поле5;") #Тогда + И КлючиДоступаКРегистрам.Поле3 = ТекущаяТаблица.#Поле5 + #КонецЕсли + + #Если СтрСодержит(&СпискиСОграничениемПоПолям, #ИмяТекущейТаблицы + ":Вариант2Поле4=Поле4;") #Тогда + И КлючиДоступаКРегистрам.Поле4 = ТекущаяТаблица.#Поле4 + #ИначеЕсли СтрСодержит(&СпискиСОграничениемПоПолям, #ИмяТекущейТаблицы + ":Вариант2Поле4=Поле5;") #Тогда + И КлючиДоступаКРегистрам.Поле4 = ТекущаяТаблица.#Поле5 + #КонецЕсли + + #Если СтрСодержит(&СпискиСОграничениемПоПолям, #ИмяТекущейТаблицы + ":Вариант2Поле5=Поле5;") #Тогда + И КлючиДоступаКРегистрам.Поле5 = ТекущаяТаблица.#Поле5 + #КонецЕсли + + #КонецЕсли + #Если СтрСодержит(&СпискиСОграничениемПоПолям, #ИмяТекущейТаблицы + ":Вариант3") #Тогда + + ИЛИ + КлючиДоступаКРегистрам.ВариантДоступа = + ( + #Если &ТекущийВнешнийПользователь = Значение(Справочник.ВнешниеПользователи.ПустаяСсылка) #Тогда 0 #Иначе 1 #КонецЕсли + #Если Не СтрСодержит(&СпискиСОграничениемПоПолям, #ИмяТекущейТаблицы + ":Вариант3Версия3=0") #Тогда + #Если СтрСодержит(&СпискиСОграничениемПоПолям, #ИмяТекущейТаблицы + ":Вариант3Поле1=Поле") #Тогда + 2 #КонецЕсли + #Если СтрСодержит(&СпискиСОграничениемПоПолям, #ИмяТекущейТаблицы + ":Вариант3Поле2=Поле") #Тогда + 2 #КонецЕсли + #Если СтрСодержит(&СпискиСОграничениемПоПолям, #ИмяТекущейТаблицы + ":Вариант3Поле3=Поле") #Тогда + 2 #КонецЕсли + #Если СтрСодержит(&СпискиСОграничениемПоПолям, #ИмяТекущейТаблицы + ":Вариант3Поле4=Поле") #Тогда + 2 #КонецЕсли + #Если СтрСодержит(&СпискиСОграничениемПоПолям, #ИмяТекущейТаблицы + ":Вариант3Поле5=Поле") #Тогда + 2 #КонецЕсли + #Если СтрСодержит(&СпискиСОграничениемПоПолям, #ИмяТекущейТаблицы + ":Версия3Бит0=1") #Тогда + 64 #КонецЕсли + #Если СтрСодержит(&СпискиСОграничениемПоПолям, #ИмяТекущейТаблицы + ":Версия3Бит1=1") #Тогда + 128 #КонецЕсли + #Если СтрСодержит(&СпискиСОграничениемПоПолям, #ИмяТекущейТаблицы + ":Версия3Бит2=1") #Тогда + 256 #КонецЕсли + #Если СтрСодержит(&СпискиСОграничениемПоПолям, #ИмяТекущейТаблицы + ":Версия3Бит3=1") #Тогда + 512 #КонецЕсли + #КонецЕсли + ) + #Если СтрСодержит(&СпискиСОграничениемПоПолям, #ИмяТекущейТаблицы + ":Вариант3Поле1=Поле1;") #Тогда + И КлючиДоступаКРегистрам.Поле1 = ТекущаяТаблица.#Поле1 + #ИначеЕсли СтрСодержит(&СпискиСОграничениемПоПолям, #ИмяТекущейТаблицы + ":Вариант3Поле1=Поле2;") #Тогда + И КлючиДоступаКРегистрам.Поле1 = ТекущаяТаблица.#Поле2 + #ИначеЕсли СтрСодержит(&СпискиСОграничениемПоПолям, #ИмяТекущейТаблицы + ":Вариант3Поле1=Поле3;") #Тогда + И КлючиДоступаКРегистрам.Поле1 = ТекущаяТаблица.#Поле3 + #ИначеЕсли СтрСодержит(&СпискиСОграничениемПоПолям, #ИмяТекущейТаблицы + ":Вариант3Поле1=Поле4;") #Тогда + И КлючиДоступаКРегистрам.Поле1 = ТекущаяТаблица.#Поле4 + #ИначеЕсли СтрСодержит(&СпискиСОграничениемПоПолям, #ИмяТекущейТаблицы + ":Вариант3Поле1=Поле5;") #Тогда + И КлючиДоступаКРегистрам.Поле1 = ТекущаяТаблица.#Поле5 + #КонецЕсли + + #Если СтрСодержит(&СпискиСОграничениемПоПолям, #ИмяТекущейТаблицы + ":Вариант3Поле2=Поле2;") #Тогда + И КлючиДоступаКРегистрам.Поле2 = ТекущаяТаблица.#Поле2 + #ИначеЕсли СтрСодержит(&СпискиСОграничениемПоПолям, #ИмяТекущейТаблицы + ":Вариант3Поле2=Поле3;") #Тогда + И КлючиДоступаКРегистрам.Поле2 = ТекущаяТаблица.#Поле3 + #ИначеЕсли СтрСодержит(&СпискиСОграничениемПоПолям, #ИмяТекущейТаблицы + ":Вариант3Поле2=Поле4;") #Тогда + И КлючиДоступаКРегистрам.Поле2 = ТекущаяТаблица.#Поле4 + #ИначеЕсли СтрСодержит(&СпискиСОграничениемПоПолям, #ИмяТекущейТаблицы + ":Вариант3Поле2=Поле5;") #Тогда + И КлючиДоступаКРегистрам.Поле2 = ТекущаяТаблица.#Поле5 + #КонецЕсли + + #Если СтрСодержит(&СпискиСОграничениемПоПолям, #ИмяТекущейТаблицы + ":Вариант3Поле3=Поле3;") #Тогда + И КлючиДоступаКРегистрам.Поле3 = ТекущаяТаблица.#Поле3 + #ИначеЕсли СтрСодержит(&СпискиСОграничениемПоПолям, #ИмяТекущейТаблицы + ":Вариант3Поле3=Поле4;") #Тогда + И КлючиДоступаКРегистрам.Поле3 = ТекущаяТаблица.#Поле4 + #ИначеЕсли СтрСодержит(&СпискиСОграничениемПоПолям, #ИмяТекущейТаблицы + ":Вариант3Поле3=Поле5;") #Тогда + И КлючиДоступаКРегистрам.Поле3 = ТекущаяТаблица.#Поле5 + #КонецЕсли + + #Если СтрСодержит(&СпискиСОграничениемПоПолям, #ИмяТекущейТаблицы + ":Вариант3Поле4=Поле4;") #Тогда + И КлючиДоступаКРегистрам.Поле4 = ТекущаяТаблица.#Поле4 + #ИначеЕсли СтрСодержит(&СпискиСОграничениемПоПолям, #ИмяТекущейТаблицы + ":Вариант3Поле4=Поле5;") #Тогда + И КлючиДоступаКРегистрам.Поле4 = ТекущаяТаблица.#Поле5 + #КонецЕсли + + #Если СтрСодержит(&СпискиСОграничениемПоПолям, #ИмяТекущейТаблицы + ":Вариант3Поле5=Поле5;") #Тогда + И КлючиДоступаКРегистрам.Поле5 = ТекущаяТаблица.#Поле5 + #КонецЕсли + + #КонецЕсли + ) + И ( + #Если СтрСодержит(&СпискиСОграничениемЧерезКлючиДоступаГруппДоступа, #ИмяТекущейТаблицы + ":[#Регистр]:#Поле1:#Поле2:#Поле3:#Поле4:#Поле5;") #Тогда + НЕ КлючиДоступаНаборовГруппДоступа.КлючДоступа ЕСТЬ NULL + #Иначе + ЛОЖЬ + #КонецЕсли + #Если СтрСодержит(&СпискиСОграничениемЧерезКлючиДоступаГруппДоступа, #ИмяТекущейТаблицы + ":[#Регистр]:#Поле1:#Поле2:#Поле3:#Поле4:#Поле5;*") #Тогда + ИЛИ НЕ КлючиДоступаРазрешенногоНабораГруппДоступа.КлючДоступа ЕСТЬ NULL + #КонецЕсли + #Если СтрСодержит(&СпискиСОграничениемЧерезКлючиДоступаПользователей, #ИмяТекущейТаблицы + ":[#Регистр]:#Поле1:#Поле2:#Поле3:#Поле4:#Поле5;") #Тогда + ИЛИ НЕ КлючиДоступаПользователей.КлючДоступа ЕСТЬ NULL + #КонецЕсли + #Если СтрСодержит(&СпискиСОграничениемЧерезКлючиДоступаПользователей, #ИмяТекущейТаблицы + ":[#Регистр]:#Поле1:#Поле2:#Поле3:#Поле4:#Поле5;+") #Тогда + ИЛИ НЕ КлючиДоступаНаборовГруппПользователей.КлючДоступа ЕСТЬ NULL + #КонецЕсли + ) + ) + + #Если Не СтрСодержит(&ОбщиеПараметрыШаблоновОграниченияДоступа, #ИмяТекущейТаблицы + ":Пропустить;") + И ( СтрСодержит(&ОбщиеПараметрыШаблоновОграниченияДоступа, ";УточнитьДляВсех;") + Или СтрСодержит(&ОбщиеПараметрыШаблоновОграниченияДоступа, #ИмяТекущейТаблицы + ":Уточнить;") ) #Тогда + + #Если Не СтрСодержит(&СпискиСОграничениемЧерезКлючиДоступаПользователей, #ИмяТекущейТаблицы + ":[#Регистр]:#Поле1:#Поле2:#Поле3:#Поле4:#Поле5;") #Тогда + И ИСТИНА В (ИСТИНА + #Если СтрСодержит(&ОбщиеПараметрыШаблоновОграниченияДоступа, ";31;") #Тогда ,ИСТИНА #Иначе ,ЛОЖЬ #КонецЕсли + #Если СтрСодержит(&ОбщиеПараметрыШаблоновОграниченияДоступа, ";30;") #Тогда ,ИСТИНА #Иначе ,ЛОЖЬ #КонецЕсли + #Если СтрСодержит(&ОбщиеПараметрыШаблоновОграниченияДоступа, ";29;") #Тогда ,ИСТИНА #Иначе ,ЛОЖЬ #КонецЕсли + #Если СтрСодержит(&ОбщиеПараметрыШаблоновОграниченияДоступа, ";28;") #Тогда ,ИСТИНА #Иначе ,ЛОЖЬ #КонецЕсли + #Если СтрСодержит(&ОбщиеПараметрыШаблоновОграниченияДоступа, ";27;") #Тогда ,ИСТИНА #Иначе ,ЛОЖЬ #КонецЕсли + #Если СтрСодержит(&ОбщиеПараметрыШаблоновОграниченияДоступа, ";26;") #Тогда ,ИСТИНА #Иначе ,ЛОЖЬ #КонецЕсли + #Если СтрСодержит(&ОбщиеПараметрыШаблоновОграниченияДоступа, ";25;") #Тогда ,ИСТИНА #Иначе ,ЛОЖЬ #КонецЕсли + #Если СтрСодержит(&ОбщиеПараметрыШаблоновОграниченияДоступа, ";24;") #Тогда ,ИСТИНА #Иначе ,ЛОЖЬ #КонецЕсли + #Если СтрСодержит(&ОбщиеПараметрыШаблоновОграниченияДоступа, ";23;") #Тогда ,ИСТИНА #Иначе ,ЛОЖЬ #КонецЕсли + #Если СтрСодержит(&ОбщиеПараметрыШаблоновОграниченияДоступа, ";22;") #Тогда ,ИСТИНА #Иначе ,ЛОЖЬ #КонецЕсли + #Если СтрСодержит(&ОбщиеПараметрыШаблоновОграниченияДоступа, ";21;") #Тогда ,ИСТИНА #Иначе ,ЛОЖЬ #КонецЕсли + #Если СтрСодержит(&ОбщиеПараметрыШаблоновОграниченияДоступа, ";20;") #Тогда ,ИСТИНА #Иначе ,ЛОЖЬ #КонецЕсли + #Если СтрСодержит(&ОбщиеПараметрыШаблоновОграниченияДоступа, ";19;") #Тогда ,ИСТИНА #Иначе ,ЛОЖЬ #КонецЕсли + #Если СтрСодержит(&ОбщиеПараметрыШаблоновОграниченияДоступа, ";18;") #Тогда ,ИСТИНА #Иначе ,ЛОЖЬ #КонецЕсли + #Если СтрСодержит(&ОбщиеПараметрыШаблоновОграниченияДоступа, ";17;") #Тогда ,ИСТИНА #Иначе ,ЛОЖЬ #КонецЕсли + #Если СтрСодержит(&ОбщиеПараметрыШаблоновОграниченияДоступа, ";16;") #Тогда ,ИСТИНА #Иначе ,ЛОЖЬ #КонецЕсли + #Если СтрСодержит(&ОбщиеПараметрыШаблоновОграниченияДоступа, ";15;") #Тогда ,ИСТИНА #Иначе ,ЛОЖЬ #КонецЕсли + #Если СтрСодержит(&ОбщиеПараметрыШаблоновОграниченияДоступа, ";14;") #Тогда ,ИСТИНА #Иначе ,ЛОЖЬ #КонецЕсли + #Если СтрСодержит(&ОбщиеПараметрыШаблоновОграниченияДоступа, ";13;") #Тогда ,ИСТИНА #Иначе ,ЛОЖЬ #КонецЕсли + #Если СтрСодержит(&ОбщиеПараметрыШаблоновОграниченияДоступа, ";12;") #Тогда ,ИСТИНА #Иначе ,ЛОЖЬ #КонецЕсли + #Если СтрСодержит(&ОбщиеПараметрыШаблоновОграниченияДоступа, ";11;") #Тогда ,ИСТИНА #Иначе ,ЛОЖЬ #КонецЕсли + #Если СтрСодержит(&ОбщиеПараметрыШаблоновОграниченияДоступа, ";10;") #Тогда ,ИСТИНА #Иначе ,ЛОЖЬ #КонецЕсли + #Если СтрСодержит(&ОбщиеПараметрыШаблоновОграниченияДоступа, ";09;") #Тогда ,ИСТИНА #Иначе ,ЛОЖЬ #КонецЕсли + #Если СтрСодержит(&ОбщиеПараметрыШаблоновОграниченияДоступа, ";08;") #Тогда ,ИСТИНА #Иначе ,ЛОЖЬ #КонецЕсли + #Если СтрСодержит(&ОбщиеПараметрыШаблоновОграниченияДоступа, ";07;") #Тогда ,ИСТИНА #Иначе ,ЛОЖЬ #КонецЕсли + #Если СтрСодержит(&ОбщиеПараметрыШаблоновОграниченияДоступа, ";06;") #Тогда ,ИСТИНА #Иначе ,ЛОЖЬ #КонецЕсли + #Если СтрСодержит(&ОбщиеПараметрыШаблоновОграниченияДоступа, ";05;") #Тогда ,ИСТИНА #Иначе ,ЛОЖЬ #КонецЕсли + #Если СтрСодержит(&ОбщиеПараметрыШаблоновОграниченияДоступа, ";04;") #Тогда ,ИСТИНА #Иначе ,ЛОЖЬ #КонецЕсли + #Если СтрСодержит(&ОбщиеПараметрыШаблоновОграниченияДоступа, ";03;") #Тогда ,ИСТИНА #Иначе ,ЛОЖЬ #КонецЕсли + #Если СтрСодержит(&ОбщиеПараметрыШаблоновОграниченияДоступа, ";02;") #Тогда ,ИСТИНА #Иначе ,ЛОЖЬ #КонецЕсли + #Если СтрСодержит(&ОбщиеПараметрыШаблоновОграниченияДоступа, ";01;") #Тогда ,ИСТИНА #Иначе ,ЛОЖЬ #КонецЕсли + #Если СтрСодержит(&ОбщиеПараметрыШаблоновОграниченияДоступа, ";00;") #Тогда ,ИСТИНА #Иначе ,ЛОЖЬ #КонецЕсли + ) + #Иначе + И ИСТИНА В (ИСТИНА + #Если СтрСодержит(&ОбщиеПараметрыШаблоновОграниченияДоступа, ";31^;") #Тогда ,ИСТИНА #Иначе ,ЛОЖЬ #КонецЕсли + #Если СтрСодержит(&ОбщиеПараметрыШаблоновОграниченияДоступа, ";30^;") #Тогда ,ИСТИНА #Иначе ,ЛОЖЬ #КонецЕсли + #Если СтрСодержит(&ОбщиеПараметрыШаблоновОграниченияДоступа, ";29^;") #Тогда ,ИСТИНА #Иначе ,ЛОЖЬ #КонецЕсли + #Если СтрСодержит(&ОбщиеПараметрыШаблоновОграниченияДоступа, ";28^;") #Тогда ,ИСТИНА #Иначе ,ЛОЖЬ #КонецЕсли + #Если СтрСодержит(&ОбщиеПараметрыШаблоновОграниченияДоступа, ";27^;") #Тогда ,ИСТИНА #Иначе ,ЛОЖЬ #КонецЕсли + #Если СтрСодержит(&ОбщиеПараметрыШаблоновОграниченияДоступа, ";26^;") #Тогда ,ИСТИНА #Иначе ,ЛОЖЬ #КонецЕсли + #Если СтрСодержит(&ОбщиеПараметрыШаблоновОграниченияДоступа, ";25^;") #Тогда ,ИСТИНА #Иначе ,ЛОЖЬ #КонецЕсли + #Если СтрСодержит(&ОбщиеПараметрыШаблоновОграниченияДоступа, ";24^;") #Тогда ,ИСТИНА #Иначе ,ЛОЖЬ #КонецЕсли + #Если СтрСодержит(&ОбщиеПараметрыШаблоновОграниченияДоступа, ";23^;") #Тогда ,ИСТИНА #Иначе ,ЛОЖЬ #КонецЕсли + #Если СтрСодержит(&ОбщиеПараметрыШаблоновОграниченияДоступа, ";22^;") #Тогда ,ИСТИНА #Иначе ,ЛОЖЬ #КонецЕсли + #Если СтрСодержит(&ОбщиеПараметрыШаблоновОграниченияДоступа, ";21^;") #Тогда ,ИСТИНА #Иначе ,ЛОЖЬ #КонецЕсли + #Если СтрСодержит(&ОбщиеПараметрыШаблоновОграниченияДоступа, ";20^;") #Тогда ,ИСТИНА #Иначе ,ЛОЖЬ #КонецЕсли + #Если СтрСодержит(&ОбщиеПараметрыШаблоновОграниченияДоступа, ";19^;") #Тогда ,ИСТИНА #Иначе ,ЛОЖЬ #КонецЕсли + #Если СтрСодержит(&ОбщиеПараметрыШаблоновОграниченияДоступа, ";18^;") #Тогда ,ИСТИНА #Иначе ,ЛОЖЬ #КонецЕсли + #Если СтрСодержит(&ОбщиеПараметрыШаблоновОграниченияДоступа, ";17^;") #Тогда ,ИСТИНА #Иначе ,ЛОЖЬ #КонецЕсли + #Если СтрСодержит(&ОбщиеПараметрыШаблоновОграниченияДоступа, ";16^;") #Тогда ,ИСТИНА #Иначе ,ЛОЖЬ #КонецЕсли + #Если СтрСодержит(&ОбщиеПараметрыШаблоновОграниченияДоступа, ";15^;") #Тогда ,ИСТИНА #Иначе ,ЛОЖЬ #КонецЕсли + #Если СтрСодержит(&ОбщиеПараметрыШаблоновОграниченияДоступа, ";14^;") #Тогда ,ИСТИНА #Иначе ,ЛОЖЬ #КонецЕсли + #Если СтрСодержит(&ОбщиеПараметрыШаблоновОграниченияДоступа, ";13^;") #Тогда ,ИСТИНА #Иначе ,ЛОЖЬ #КонецЕсли + #Если СтрСодержит(&ОбщиеПараметрыШаблоновОграниченияДоступа, ";12^;") #Тогда ,ИСТИНА #Иначе ,ЛОЖЬ #КонецЕсли + #Если СтрСодержит(&ОбщиеПараметрыШаблоновОграниченияДоступа, ";11^;") #Тогда ,ИСТИНА #Иначе ,ЛОЖЬ #КонецЕсли + #Если СтрСодержит(&ОбщиеПараметрыШаблоновОграниченияДоступа, ";10^;") #Тогда ,ИСТИНА #Иначе ,ЛОЖЬ #КонецЕсли + #Если СтрСодержит(&ОбщиеПараметрыШаблоновОграниченияДоступа, ";09^;") #Тогда ,ИСТИНА #Иначе ,ЛОЖЬ #КонецЕсли + #Если СтрСодержит(&ОбщиеПараметрыШаблоновОграниченияДоступа, ";08^;") #Тогда ,ИСТИНА #Иначе ,ЛОЖЬ #КонецЕсли + #Если СтрСодержит(&ОбщиеПараметрыШаблоновОграниченияДоступа, ";07^;") #Тогда ,ИСТИНА #Иначе ,ЛОЖЬ #КонецЕсли + #Если СтрСодержит(&ОбщиеПараметрыШаблоновОграниченияДоступа, ";06^;") #Тогда ,ИСТИНА #Иначе ,ЛОЖЬ #КонецЕсли + #Если СтрСодержит(&ОбщиеПараметрыШаблоновОграниченияДоступа, ";05^;") #Тогда ,ИСТИНА #Иначе ,ЛОЖЬ #КонецЕсли + #Если СтрСодержит(&ОбщиеПараметрыШаблоновОграниченияДоступа, ";04^;") #Тогда ,ИСТИНА #Иначе ,ЛОЖЬ #КонецЕсли + #Если СтрСодержит(&ОбщиеПараметрыШаблоновОграниченияДоступа, ";03^;") #Тогда ,ИСТИНА #Иначе ,ЛОЖЬ #КонецЕсли + #Если СтрСодержит(&ОбщиеПараметрыШаблоновОграниченияДоступа, ";02^;") #Тогда ,ИСТИНА #Иначе ,ЛОЖЬ #КонецЕсли + #Если СтрСодержит(&ОбщиеПараметрыШаблоновОграниченияДоступа, ";01^;") #Тогда ,ИСТИНА #Иначе ,ЛОЖЬ #КонецЕсли + #Если СтрСодержит(&ОбщиеПараметрыШаблоновОграниченияДоступа, ";00^;") #Тогда ,ИСТИНА #Иначе ,ЛОЖЬ #КонецЕсли + ) + #КонецЕсли + #КонецЕсли + +#КонецЕсли + + + ПоЗначениямРасширенный + // ПоЗначениямРасширенный(Таблица, -, Модификатор, ПрисоединяемыеТаблицы, О, В1,П1,О1, В2,П2,О2,..., В(n), П(n), О(n)). +// № параметра: 1, 2, 3, 4, 5, 6, 7, 8, 9,10,11,...,3+n*3,4+n*3,5+n*3. +// Читается так: "ограничение доступа по значениям расширенный". +// Параметры: +// Таблица - Имя текущей таблицы, например "Документ.ПоступлениеТоваровИУслуг". +// Модификатор - изменяет шаблон. +// 1-й модификатор - строка "НеОграничиватьДоступКГруппам" указывает +// безусловно выбирать группы иерархического справочника. +// Других модификаторов в этой версии шаблона не предусмотрено. +// ПрисоединяемыеТаблицы - текст присоедиения дополнительных таблиц на языке запросов, например, +// "ВНУТРЕННЕЕ СОЕДИНЕНИЕ Документ.АвансовыйОтчет.ОплатаПоставщикам КАК Т1 +// ПО Т.Ссылка = Т1.Ссылка". +// Присоединение позволяет указать поля таблицы ОплатаПоставщикам, как поля основной таблицы +// для проверки их значений, как значений основной таблицы. +// Следует помнить, что при размножении строк в результате соединения, достаточно чтобы +// всего одна строка прошла условия проверки, т.е. результаты проверки строк объединяются по "ИЛИ". +// О - Начальные скобки "(". +// В(n) - Вид доступа - имя вида доступа, например, "Организации". Для полей составного типа, с целью повышения +// производительности, лучше указать несколько имен, например, "Организации,ГруппыФизическихЛиц", +// чем использовать несколько блоков параметров, с одним и тем же именем поля. +// Специальные виды доступа "Условие", "НастройкиПрав", "ПравоЧтения", "ПравоИзменения", +// "ПравоЧтенияПоИдентификатору", "ПравоИзмененияПоИдентификатору" можно использовать только отдельно. +// Когда В(n) = "Условие" (или ""), тогда П(n) содержит строку условия на языке запросов, например +// "Т.Автор = &АвторизованныйПользователь", +// "ТИПЗНАЧЕНИЯ(Т.Владелец) = ТИП(Справочник.Организации)", где Т - псевдоним текущей таблицы. +// Когда В(n) = "ПравоЧтения" Или "ПравоИзменения", +// выполняется проверка наличия права на таблицу значения Т.П(n). +// Когда В(n) = "ПравоЧтенияПоИдентификатору" или "ПравоИзмененияПоИдентификатору", +// выполняется проверка наличия права на таблицу по идентификатору в значении Т.П(n). +// П(n) - Поле проверяемого значения с псевдонимом, например "Т.Организация", +// кроме случая В(n) = "Условие" (или ""). +// О(n) - Логические операции "И", "ИЛИ" в сочетании с скобками "(", ")". +// Примечение: максимальное количество одновременно проверяемых значений полей можно увеличить, изменив шаблон, но +// необходимо будет указывать все параметры шаблона, т.е. указывать пустые строки, когда количество полей меньше максимального. +// Шаблон имеет структуру: +// <Общая часть условий> <Условие по группе параметров 1> И/ИЛИ <Условие по группе параметров 2> И/ИЛИ ... <Условие по группе параметров(n)> +// Пример: +// ПоЗначениямРасширенный("Документ.ПеремещениеТоваров", "", "", +// "", +// "", +// "Организации","Т.Организация","И(", +// "Склады","Т.СкладОтправитель","ИЛИ", +// "Склады","Т.СкладПолучатель",")", "","","", ...) + +#Если &ОграничениеДоступаНаУровнеЗаписейИспользуется = "" #Тогда // Информационная база заблокирована для обновления. + ГДЕ ЛОЖЬ + +#ИначеЕсли Не СтрСодержит(&ВерсииШаблоновОграниченияДоступа, ",ПоЗначениямРасширенный18,") #Тогда + Ошибка: Требуется обновить шаблон на актуальную версию, поставляемую в роли ИзменениеУчастниковГруппДоступа по причине: Используется устаревшая версия 18 шаблона ограничения доступа ПоЗначениямРасширенный. Объект: #ИмяТекущейТаблицы, Право: #ИмяТекущегоПраваДоступа. + +#Иначе + +// Проверка правильности параметра Право. +#Если Не ("#Параметр(2)" = "Чтение" Или "#Параметр(2)" = "Добавление" Или + "#Параметр(2)" = "Изменение" Или "#Параметр(2)" = "Удаление" Или "#Параметр(2)" = "") + Или #ИмяТекущегоПраваДоступа <> "Чтение" И "#Параметр(2)" = "Чтение" + Или #ИмяТекущегоПраваДоступа = "Чтение" И "#Параметр(2)" <> "Чтение" И "#Параметр(2)" <> "" #Тогда + // Когда параметр задан неверно, вставляется строка, чтобы вызвать ошибку сборки ограничения доступа. + НеверноеПраво: #Параметр(2) +#КонецЕсли + +// Проверка правильности параметра ИмяТаблицы. +#Если "#Параметр(1)" <> #ИмяТекущейТаблицы #Тогда + // Когда параметр задан неверно, вставляется строка, чтобы вызвать ошибку сборки ограничения доступа. + НеверноеИмяТекущейТаблицы: "#Параметр(1)" +#КонецЕсли + +// Проверка правильности параметра Модификатор. +#Если Не ("#Параметр(3)" = "НеОграничиватьДоступКГруппам" Или "#Параметр(3)" = "") #Тогда + // Когда параметр задан неверно, вставляется строка, чтобы вызвать ошибку сборки ограничения доступа. + НеверныйМодификатор: #Параметр(3) +#КонецЕсли + +// Общая проверка использования ограничений доступа на уровне записей и +// проверка использования хотя бы одного ограничения из указанных видов доступа. +#Если Не + ( Истина + И ("#Параметр(6)" = "" И "#Параметр(7)" = "" + Или Не &ОграничениеДоступаНаУровнеЗаписейИспользуется + И Не СтрСодержит(",Объект, ,ПравоЧтения,ПравоИзменения,ПравоЧтенияПоИдентификатору,ПравоИзмененияПоИдентификатору,", ",#Параметр(6),")) + И ("#Параметр(9)" = "" И "#Параметр(10)" = "" + Или Не &ОграничениеДоступаНаУровнеЗаписейИспользуется + И Не СтрСодержит(",Объект, ,ПравоЧтения,ПравоИзменения,ПравоЧтенияПоИдентификатору,ПравоИзмененияПоИдентификатору,", ",#Параметр(9),")) + И ("#Параметр(12)" = "" И "#Параметр(13)" = "" + Или Не &ОграничениеДоступаНаУровнеЗаписейИспользуется + И Не СтрСодержит(",Объект, ,ПравоЧтения,ПравоИзменения,ПравоЧтенияПоИдентификатору,ПравоИзмененияПоИдентификатору,", ",#Параметр(12),")) + И ("#Параметр(15)" = "" И "#Параметр(16)" = "" + Или Не &ОграничениеДоступаНаУровнеЗаписейИспользуется + И Не СтрСодержит(",Объект, ,ПравоЧтения,ПравоИзменения,ПравоЧтенияПоИдентификатору,ПравоИзмененияПоИдентификатору,", ",#Параметр(15),")) + И ("#Параметр(18)" = "" И "#Параметр(19)" = "" + Или Не &ОграничениеДоступаНаУровнеЗаписейИспользуется + И Не СтрСодержит(",Объект, ,ПравоЧтения,ПравоИзменения,ПравоЧтенияПоИдентификатору,ПравоИзмененияПоИдентификатору,", ",#Параметр(18),")) + И ("#Параметр(21)" = "" И "#Параметр(22)" = "" + Или Не &ОграничениеДоступаНаУровнеЗаписейИспользуется + И Не СтрСодержит(",Объект, ,ПравоЧтения,ПравоИзменения,ПравоЧтенияПоИдентификатору,ПравоИзмененияПоИдентификатору,", ",#Параметр(21),")) + И ("#Параметр(24)" = "" И "#Параметр(25)" = "" + Или Не &ОграничениеДоступаНаУровнеЗаписейИспользуется + И Не СтрСодержит(",Объект, ,ПравоЧтения,ПравоИзменения,ПравоЧтенияПоИдентификатору,ПравоИзмененияПоИдентификатору,", ",#Параметр(24),")) + И ("#Параметр(27)" = "" И "#Параметр(28)" = "" + Или Не &ОграничениеДоступаНаУровнеЗаписейИспользуется + И Не СтрСодержит(",Объект, ,ПравоЧтения,ПравоИзменения,ПравоЧтенияПоИдентификатору,ПравоИзмененияПоИдентификатору,", ",#Параметр(27),")) + И ("#Параметр(30)" = "" И "#Параметр(31)" = "" + Или Не &ОграничениеДоступаНаУровнеЗаписейИспользуется + И Не СтрСодержит(",Объект, ,ПравоЧтения,ПравоИзменения,ПравоЧтенияПоИдентификатору,ПравоИзмененияПоИдентификатору,", ",#Параметр(30),")) + И ("#Параметр(33)" = "" И "#Параметр(34)" = "" + Или Не &ОграничениеДоступаНаУровнеЗаписейИспользуется + И Не СтрСодержит(",Объект, ,ПравоЧтения,ПравоИзменения,ПравоЧтенияПоИдентификатору,ПравоИзмененияПоИдентификатору,", ",#Параметр(33),")) + И ("#Параметр(36)" = "" И "#Параметр(37)" = "" + Или Не &ОграничениеДоступаНаУровнеЗаписейИспользуется + И Не СтрСодержит(",Объект, ,ПравоЧтения,ПравоИзменения,ПравоЧтенияПоИдентификатору,ПравоИзмененияПоИдентификатору,", ",#Параметр(36),")) + И ("#Параметр(39)" = "" И "#Параметр(40)" = "" + Или Не &ОграничениеДоступаНаУровнеЗаписейИспользуется + И Не СтрСодержит(",Объект, ,ПравоЧтения,ПравоИзменения,ПравоЧтенияПоИдентификатору,ПравоИзмененияПоИдентификатору,", ",#Параметр(39),")) + И ("#Параметр(42)" = "" И "#Параметр(43)" = "" + Или Не &ОграничениеДоступаНаУровнеЗаписейИспользуется + И Не СтрСодержит(",Объект, ,ПравоЧтения,ПравоИзменения,ПравоЧтенияПоИдентификатору,ПравоИзмененияПоИдентификатору,", ",#Параметр(42),")) + И ("#Параметр(45)" = "" И "#Параметр(46)" = "" + Или Не &ОграничениеДоступаНаУровнеЗаписейИспользуется + И Не СтрСодержит(",Объект, ,ПравоЧтения,ПравоИзменения,ПравоЧтенияПоИдентификатору,ПравоИзмененияПоИдентификатору,", ",#Параметр(45),")) + И ("#Параметр(48)" = "" И "#Параметр(49)" = "" + Или Не &ОграничениеДоступаНаУровнеЗаписейИспользуется + И Не СтрСодержит(",Объект, ,ПравоЧтения,ПравоИзменения,ПравоЧтенияПоИдентификатору,ПравоИзмененияПоИдентификатору,", ",#Параметр(48),")) + И ("#Параметр(51)" = "" И "#Параметр(52)" = "" + Или Не &ОграничениеДоступаНаУровнеЗаписейИспользуется + И Не СтрСодержит(",Объект, ,ПравоЧтения,ПравоИзменения,ПравоЧтенияПоИдентификатору,ПравоИзмененияПоИдентификатору,", ",#Параметр(51),")) + ) #Тогда + +Т ИЗ Т // Т - псевдоним текущей таблицы (выбран коротким, чтобы сократить количество символов в тексте параметра-условия на языке запросов). + +// Присоединяемые таблицы к проверяемой строке текущей таблицы "Т". +#Параметр(4) + +ГДЕ + +ИСТИНА В +( // Проверка права пользователя на текущую таблицу в целом. + // Права на таблицы формируются по составу ролей профиля группы доступа. + ВЫБРАТЬ ПЕРВЫЕ 1 ИСТИНА + ИЗ + #Если СтрСодержит(&ТаблицыРасширенийСОграничениемДоступа, "|#Параметр(1);") #Тогда + Справочник.ИдентификаторыОбъектовРасширений КАК СвойстваТекущейТаблицы + #Иначе + Справочник.ИдентификаторыОбъектовМетаданных КАК СвойстваТекущейТаблицы + #КонецЕсли + ВНУТРЕННЕЕ СОЕДИНЕНИЕ Справочник.ГруппыДоступа КАК ГруппыДоступа + ПО + СвойстваТекущейТаблицы.ПолноеИмя = "#Параметр(1)" + И ИСТИНА В + ( + ВЫБРАТЬ ПЕРВЫЕ 1 ИСТИНА + ИЗ + РегистрСведений.ТаблицыГруппДоступа КАК ТаблицыГруппДоступа + ГДЕ + ТаблицыГруппДоступа.Таблица = СвойстваТекущейТаблицы.Ссылка + И ТаблицыГруппДоступа.ГруппаДоступа = ГруппыДоступа.Ссылка + #Если #ИмяТекущегоПраваДоступа = "Изменение" #Тогда + И ТаблицыГруппДоступа.ПравоИзменение + #ИначеЕсли #ИмяТекущегоПраваДоступа = "Добавление" #Тогда + И ТаблицыГруппДоступа.ПравоДобавление + #КонецЕсли + ) + И ГруппыДоступа.Ссылка В + ( + ВЫБРАТЬ + ГруппыДоступаПользователи.Ссылка КАК ГруппаДоступа + ИЗ + Справочник.ГруппыДоступа.Пользователи КАК ГруппыДоступаПользователи + ВНУТРЕННЕЕ СОЕДИНЕНИЕ РегистрСведений.СоставыГруппПользователей КАК СоставыГруппПользователей + ПО + СоставыГруппПользователей.Пользователь = &АвторизованныйПользователь + И СоставыГруппПользователей.ГруппаПользователей = ГруппыДоступаПользователи.Пользователь + ) + ГДЕ + +// Безусловная выборка групп в иерархическом объекте метаданных (если нужно). +#Если "#Параметр(3)" = "НеОграничиватьДоступКГруппам" #Тогда + Т.ЭтоГруппа ИЛИ +#КонецЕсли + + ( // Поиск значений заданных полей в разрешенных значениях групп доступа (пользователей). + + #Параметр(5) // [([(][(]...] 0-n открывающихся скобок. + +//// Проверка значения поля группы параметров 1. +#Если &ОграничениеДоступаНаУровнеЗаписейИспользуется И ("#Параметр(6)" = "Условие" Или "#Параметр(6)" = "") #Тогда + // Когда имя вида доступа "Условие" (или ""), тогда вместо имени поля задано условие. + ( #Параметр(7) ) +#ИначеЕсли "#Параметр(6)" = "ПравоЧтения" Или "#Параметр(6)" = "ПравоИзменения" #Тогда + #Параметр(7) <> НЕОПРЕДЕЛЕНО + И ИСТИНА В + ( // Проверка права пользователя на таблицу Значения, установленного в поле. + ВЫБРАТЬ ПЕРВЫЕ 1 ИСТИНА + ИЗ РегистрСведений.ТаблицыГруппДоступа КАК ТаблицыГруппДоступаПроверкаПрава + ГДЕ + ТаблицыГруппДоступаПроверкаПрава.ГруппаДоступа = ГруппыДоступа.Ссылка + И ТИПЗНАЧЕНИЯ(ТаблицыГруппДоступаПроверкаПрава.ТипТаблицы) = ТИПЗНАЧЕНИЯ(#Параметр(7)) + #Если Не "#Параметр(6)" = "ПравоЧтения" #Тогда + И ТаблицыГруппДоступаПроверкаПрава.ПравоИзменение + #КонецЕсли + ) +#ИначеЕсли "#Параметр(6)" = "ПравоЧтенияПоИдентификатору" Или "#Параметр(6)" = "ПравоИзмененияПоИдентификатору" #Тогда + ИСТИНА В + ( // Проверка права пользователя на таблицу, идентификатор которой указан в Значении, установленном в поле. + ВЫБРАТЬ ПЕРВЫЕ 1 ИСТИНА + ИЗ РегистрСведений.ТаблицыГруппДоступа КАК ТаблицыГруппДоступаПроверкаПрава + ГДЕ + ТаблицыГруппДоступаПроверкаПрава.ГруппаДоступа = ГруппыДоступа.Ссылка + И ТаблицыГруппДоступаПроверкаПрава.Таблица = #Параметр(7) + #Если Не "#Параметр(6)" = "ПравоЧтенияПоИдентификатору" #Тогда + И ТаблицыГруппДоступаПроверкаПрава.ПравоИзменение + #КонецЕсли + ) +#ИначеЕсли Не &ОграничениеДоступаНаУровнеЗаписейИспользуется #Тогда + ИСТИНА // Группа параметров отключена. +#ИначеЕсли "#Параметр(6)" = "НастройкиПрав" #Тогда + + ( + ИСТИНА В // Проверка, что пользователю или какой-нибудь группе пользователя право разрешено + ( + ВЫБРАТЬ ПЕРВЫЕ 1 ИСТИНА + ИЗ РегистрСведений.НастройкиПравОбъектов КАК НастройкиПрав + ВНУТРЕННЕЕ СОЕДИНЕНИЕ РегистрСведений.НаследованиеНастроекПравОбъектов КАК НаследованиеНастроек + ПО + НаследованиеНастроек.Объект = #Параметр(7) + И НастройкиПрав.Объект = НаследованиеНастроек.Родитель + #Если #ИмяТекущегоПраваДоступа = "Чтение" #Тогда + И НаследованиеНастроек.УровеньИспользования < НастройкиПрав.УровеньРазрешенияЧтения + #Иначе + #Если СтрСодержит(&ТаблицыСОтдельнымиНастройкамиПрав, "|#Параметр(1);") #Тогда + И НастройкиПрав.Таблица = СвойстваТекущейТаблицы.Ссылка + #Иначе + И НастройкиПрав.Таблица = ЗНАЧЕНИЕ(Справочник.ИдентификаторыОбъектовМетаданных.ПустаяСсылка) + #КонецЕсли + И НаследованиеНастроек.УровеньИспользования < НастройкиПрав.УровеньРазрешенияИзменения + #КонецЕсли + ВНУТРЕННЕЕ СОЕДИНЕНИЕ РегистрСведений.СоставыГруппПользователей КАК СоставыГруппПользователей + ПО + СоставыГруппПользователей.Пользователь = &АвторизованныйПользователь + И СоставыГруппПользователей.ГруппаПользователей = НастройкиПрав.Пользователь + ) + И НЕ ЛОЖЬ В // Проверка, что пользователю или какой-нибудь группе пользователя право запрещено. + ( + ВЫБРАТЬ ПЕРВЫЕ 1 ЛОЖЬ + ИЗ РегистрСведений.НастройкиПравОбъектов КАК НастройкиПрав + ВНУТРЕННЕЕ СОЕДИНЕНИЕ РегистрСведений.НаследованиеНастроекПравОбъектов КАК НаследованиеНастроек + ПО + НаследованиеНастроек.Объект = #Параметр(7) + И НастройкиПрав.Объект = НаследованиеНастроек.Родитель + #Если #ИмяТекущегоПраваДоступа = "Чтение" #Тогда + И НаследованиеНастроек.УровеньИспользования < НастройкиПрав.УровеньЗапрещенияЧтения + #Иначе + #Если СтрСодержит(&ТаблицыСОтдельнымиНастройкамиПрав, "|#Параметр(1);") #Тогда + И НастройкиПрав.Таблица = СвойстваТекущейТаблицы.Ссылка + #Иначе + И НастройкиПрав.Таблица = ЗНАЧЕНИЕ(Справочник.ИдентификаторыОбъектовМетаданных.ПустаяСсылка) + #КонецЕсли + И НаследованиеНастроек.УровеньИспользования < НастройкиПрав.УровеньЗапрещенияИзменения + #КонецЕсли + ВНУТРЕННЕЕ СОЕДИНЕНИЕ РегистрСведений.СоставыГруппПользователей КАК СоставыГруппПользователей + ПО + СоставыГруппПользователей.Пользователь = &АвторизованныйПользователь + И СоставыГруппПользователей.ГруппаПользователей = НастройкиПрав.Пользователь + ) + ) +#ИначеЕсли Не СтрСодержит(&ВсеВидыДоступаКромеСпециальных, ",#Параметр(6),") #Тогда + // Когда параметр задан неверно, вставляется строка, чтобы вызвать ошибку сборки ограничения доступа. + #Если СтрСодержит("#Параметр(6)", ",") #Тогда + НеверныйВидДоступа: "#Параметр(6)" - "Список имен видов доступа не найден" + #Иначе + НеверныйВидДоступа: "#Параметр(6)" - "Имя вида доступа не найдено" + #КонецЕсли +#ИначеЕсли &ВидыДоступаСОтключеннымИспользованием <> "Все" + И Не СтрСодержит(&ВидыДоступаСОтключеннымИспользованием, ",#Параметр(6),") #Тогда + + ( + ЕСТЬNULL(#Параметр(7), НЕОПРЕДЕЛЕНО) <> НЕОПРЕДЕЛЕНО + И + #Если (Не СтрСодержит(&ВидыДоступаСОтключеннымИспользованием, ",Пользователи,") И СтрСодержит(",#Параметр(6),", ",Пользователи,")) + Или (Не СтрСодержит(&ВидыДоступаСОтключеннымИспользованием, ",ВнешниеПользователи,") И СтрСодержит(",#Параметр(6),", ",ВнешниеПользователи,")) #Тогда + НЕ + ( + НЕ ИСТИНА В + ( + ВЫБРАТЬ ПЕРВЫЕ 1 ИСТИНА + ИЗ РегистрСведений.ГруппыЗначенийДоступа КАК ГруппыЗначенийДоступа + ГДЕ + ГруппыЗначенийДоступа.ЗначениеДоступа = #Параметр(7) + И ГруппыЗначенийДоступа.ГруппаЗначенийДоступа = &АвторизованныйПользователь + ) + И НЕ + #Иначе + ( + #КонецЕсли + ВЫБОР + КОГДА ИСТИНА В + ( + #Если СтрСодержит(&ВидыДоступаБезГруппДляЗначенияДоступа, ",#Параметр(6),") #Тогда + ВЫБРАТЬ ПЕРВЫЕ 1 ИСТИНА + ИЗ РегистрСведений.ЗначенияГруппДоступа КАК Значения + ГДЕ + Значения.ГруппаДоступа = ГруппыДоступа.Ссылка + И Значения.ЗначениеДоступа = #Параметр(7) + #ИначеЕсли "#Параметр(7)" = "Т.Ссылка" + И "#Параметр(6)" <> "Пользователи" + И "#Параметр(6)" <> "ВнешниеПользователи" #Тогда + #Если СтрСодержит("#Параметр(6)", ",") #Тогда + // Когда параметр задан неверно, вставляется строка, чтобы вызвать ошибку сборки ограничения доступа. + НеверныйВидДоступа: "#Параметр(6)" - "При проверке таблицы значения доступа можно указывать только один вид доступа" + #ИначеЕсли СтрСодержит(&ВидыДоступаСОднойГруппойДляЗначенияДоступа, ",#Параметр(6),") #Тогда + ВЫБРАТЬ ПЕРВЫЕ 1 ИСТИНА + ИЗ РегистрСведений.ЗначенияГруппДоступа КАК Значения + ГДЕ + Значения.ГруппаДоступа = ГруппыДоступа.Ссылка + И Значения.ЗначениеДоступа = Т.ГруппаДоступа + #Иначе // Значения доступа, для которых можно указать несколько групп значений доступа. + ВЫБРАТЬ ПЕРВЫЕ 1 ИСТИНА + ИЗ РегистрСведений.ЗначенияГруппДоступа КАК Значения + ВНУТРЕННЕЕ СОЕДИНЕНИЕ #Параметр(1).ГруппыДоступа КАК ГруппыЗначений + ПО + Значения.ГруппаДоступа = ГруппыДоступа.Ссылка + И Значения.ЗначениеДоступа = ГруппыЗначений.ГруппаДоступа + И ГруппыЗначений.Ссылка = #Параметр(7) + #КонецЕсли + #Иначе + ВЫБРАТЬ ПЕРВЫЕ 1 ИСТИНА + ИЗ РегистрСведений.ЗначенияГруппДоступа КАК Значения + ВНУТРЕННЕЕ СОЕДИНЕНИЕ РегистрСведений.ГруппыЗначенийДоступа КАК ГруппыЗначений + ПО + Значения.ГруппаДоступа = ГруппыДоступа.Ссылка + И Значения.ЗначениеДоступа = ГруппыЗначений.ГруппаЗначенийДоступа + И ГруппыЗначений.ЗначениеДоступа = #Параметр(7) + #КонецЕсли + ) + ТОГДА ИСТИНА + ИНАЧЕ ЛОЖЬ + КОНЕЦ + = + ВЫБОР + КОГДА ИСТИНА В + ( + ВЫБРАТЬ ПЕРВЫЕ 1 ИСТИНА + ИЗ РегистрСведений.ЗначенияГруппДоступаПоУмолчанию КАК ЗначенияПоУмолчанию + ГДЕ + ЗначенияПоУмолчанию.ГруппаДоступа = ГруппыДоступа.Ссылка + И ТИПЗНАЧЕНИЯ(ЗначенияПоУмолчанию.ТипЗначенийДоступа) = ТИПЗНАЧЕНИЯ(#Параметр(7)) + И ЗначенияПоУмолчанию.ВсеРазрешены = ЛОЖЬ + ) + ТОГДА ИСТИНА + ИНАЧЕ ЛОЖЬ + КОНЕЦ + ) + ) +#Иначе + ЕСТЬNULL(#Параметр(7), НЕОПРЕДЕЛЕНО) <> НЕОПРЕДЕЛЕНО +#КонецЕсли + + #Параметр(8) // [)[)][)]...] [ИЛИ|И] [([(][(]...] оператор И/ИЛИ с/без скобок. + +//// Проверка значения поля группы параметров 2. +#Если "#Параметр(9)" = "" И "#Параметр(10)" = "" #Тогда + // Группа параметров не используется. +#ИначеЕсли &ОграничениеДоступаНаУровнеЗаписейИспользуется И ("#Параметр(9)" = "Условие" Или "#Параметр(9)" = "") #Тогда + // Когда имя вида доступа "Условие" (или ""), тогда вместо имени поля задано условие. + ( #Параметр(10) ) +#ИначеЕсли "#Параметр(9)" = "ПравоЧтения" Или "#Параметр(9)" = "ПравоИзменения" #Тогда + #Параметр(10) <> НЕОПРЕДЕЛЕНО + И ИСТИНА В + ( // Проверка права пользователя на таблицу Значения, установленного в поле. + ВЫБРАТЬ ПЕРВЫЕ 1 ИСТИНА + ИЗ РегистрСведений.ТаблицыГруппДоступа КАК ТаблицыГруппДоступаПроверкаПрава + ГДЕ + ТаблицыГруппДоступаПроверкаПрава.ГруппаДоступа = ГруппыДоступа.Ссылка + И ТИПЗНАЧЕНИЯ(ТаблицыГруппДоступаПроверкаПрава.ТипТаблицы) = ТИПЗНАЧЕНИЯ(#Параметр(10)) + #Если Не "#Параметр(9)" = "ПравоЧтения" #Тогда + И ТаблицыГруппДоступаПроверкаПрава.ПравоИзменение + #КонецЕсли + ) +#ИначеЕсли "#Параметр(9)" = "ПравоЧтенияПоИдентификатору" Или "#Параметр(9)" = "ПравоИзмененияПоИдентификатору" #Тогда + ИСТИНА В + ( // Проверка права пользователя на таблицу, идентификатор которой указан в Значении, установленном в поле. + ВЫБРАТЬ ПЕРВЫЕ 1 ИСТИНА + ИЗ РегистрСведений.ТаблицыГруппДоступа КАК ТаблицыГруппДоступаПроверкаПрава + ГДЕ + ТаблицыГруппДоступаПроверкаПрава.ГруппаДоступа = ГруппыДоступа.Ссылка + И ТаблицыГруппДоступаПроверкаПрава.Таблица = #Параметр(10) + #Если Не "#Параметр(9)" = "ПравоЧтенияПоИдентификатору" #Тогда + И ТаблицыГруппДоступаПроверкаПрава.ПравоИзменение + #КонецЕсли + ) +#ИначеЕсли Не &ОграничениеДоступаНаУровнеЗаписейИспользуется #Тогда + ИСТИНА // Группа параметров отключена. +#ИначеЕсли "#Параметр(9)" = "НастройкиПрав" #Тогда + + ( + ИСТИНА В // Проверка, что пользователю или какой-нибудь группе пользователя право разрешено + ( + ВЫБРАТЬ ПЕРВЫЕ 1 ИСТИНА + ИЗ РегистрСведений.НастройкиПравОбъектов КАК НастройкиПрав + ВНУТРЕННЕЕ СОЕДИНЕНИЕ РегистрСведений.НаследованиеНастроекПравОбъектов КАК НаследованиеНастроек + ПО + НаследованиеНастроек.Объект = #Параметр(10) + И НастройкиПрав.Объект = НаследованиеНастроек.Родитель + #Если #ИмяТекущегоПраваДоступа = "Чтение" #Тогда + И НаследованиеНастроек.УровеньИспользования < НастройкиПрав.УровеньРазрешенияЧтения + #Иначе + #Если СтрСодержит(&ТаблицыСОтдельнымиНастройкамиПрав, "|#Параметр(1);") #Тогда + И НастройкиПрав.Таблица = СвойстваТекущейТаблицы.Ссылка + #Иначе + И НастройкиПрав.Таблица = ЗНАЧЕНИЕ(Справочник.ИдентификаторыОбъектовМетаданных.ПустаяСсылка) + #КонецЕсли + И НаследованиеНастроек.УровеньИспользования < НастройкиПрав.УровеньРазрешенияИзменения + #КонецЕсли + ВНУТРЕННЕЕ СОЕДИНЕНИЕ РегистрСведений.СоставыГруппПользователей КАК СоставыГруппПользователей + ПО + СоставыГруппПользователей.Пользователь = &АвторизованныйПользователь + И СоставыГруппПользователей.ГруппаПользователей = НастройкиПрав.Пользователь + ) + И НЕ ЛОЖЬ В // Проверка, что пользователю или какой-нибудь группе пользователя право запрещено. + ( + ВЫБРАТЬ ПЕРВЫЕ 1 ЛОЖЬ + ИЗ РегистрСведений.НастройкиПравОбъектов КАК НастройкиПрав + ВНУТРЕННЕЕ СОЕДИНЕНИЕ РегистрСведений.НаследованиеНастроекПравОбъектов КАК НаследованиеНастроек + ПО + НаследованиеНастроек.Объект = #Параметр(10) + И НастройкиПрав.Объект = НаследованиеНастроек.Родитель + #Если #ИмяТекущегоПраваДоступа = "Чтение" #Тогда + И НаследованиеНастроек.УровеньИспользования < НастройкиПрав.УровеньЗапрещенияЧтения + #Иначе + #Если СтрСодержит(&ТаблицыСОтдельнымиНастройкамиПрав, "|#Параметр(1);") #Тогда + И НастройкиПрав.Таблица = СвойстваТекущейТаблицы.Ссылка + #Иначе + И НастройкиПрав.Таблица = ЗНАЧЕНИЕ(Справочник.ИдентификаторыОбъектовМетаданных.ПустаяСсылка) + #КонецЕсли + И НаследованиеНастроек.УровеньИспользования < НастройкиПрав.УровеньЗапрещенияИзменения + #КонецЕсли + ВНУТРЕННЕЕ СОЕДИНЕНИЕ РегистрСведений.СоставыГруппПользователей КАК СоставыГруппПользователей + ПО + СоставыГруппПользователей.Пользователь = &АвторизованныйПользователь + И СоставыГруппПользователей.ГруппаПользователей = НастройкиПрав.Пользователь + ) + ) +#ИначеЕсли Не СтрСодержит(&ВсеВидыДоступаКромеСпециальных, ",#Параметр(9),") #Тогда + // Когда параметр задан неверно, вставляется строка, чтобы вызвать ошибку сборки ограничения доступа. + #Если СтрСодержит("#Параметр(9)", ",") #Тогда + НеверныйВидДоступа: "#Параметр(9)" - "Список имен видов доступа не найден" + #Иначе + НеверныйВидДоступа: "#Параметр(9)" - "Имя вида доступа не найдено" + #КонецЕсли +#ИначеЕсли &ВидыДоступаСОтключеннымИспользованием <> "Все" + И Не СтрСодержит(&ВидыДоступаСОтключеннымИспользованием, ",#Параметр(9),") #Тогда + + ( + ЕСТЬNULL(#Параметр(10), НЕОПРЕДЕЛЕНО) <> НЕОПРЕДЕЛЕНО + И + #Если (Не СтрСодержит(&ВидыДоступаСОтключеннымИспользованием, ",Пользователи,") И СтрСодержит(",#Параметр(9),", ",Пользователи,")) + Или (Не СтрСодержит(&ВидыДоступаСОтключеннымИспользованием, ",ВнешниеПользователи,") И СтрСодержит(",#Параметр(9),", ",ВнешниеПользователи,")) #Тогда + НЕ + ( + НЕ ИСТИНА В + ( + ВЫБРАТЬ ПЕРВЫЕ 1 ИСТИНА + ИЗ РегистрСведений.ГруппыЗначенийДоступа КАК ГруппыЗначенийДоступа + ГДЕ + ГруппыЗначенийДоступа.ЗначениеДоступа = #Параметр(10) + И ГруппыЗначенийДоступа.ГруппаЗначенийДоступа = &АвторизованныйПользователь + ) + И НЕ + #Иначе + ( + #КонецЕсли + ВЫБОР + КОГДА ИСТИНА В + ( + #Если СтрСодержит(&ВидыДоступаБезГруппДляЗначенияДоступа, ",#Параметр(9),") #Тогда + ВЫБРАТЬ ПЕРВЫЕ 1 ИСТИНА + ИЗ РегистрСведений.ЗначенияГруппДоступа КАК Значения + ГДЕ + Значения.ГруппаДоступа = ГруппыДоступа.Ссылка + И Значения.ЗначениеДоступа = #Параметр(10) + #ИначеЕсли "#Параметр(10)" = "Т.Ссылка" + И "#Параметр(9)" <> "Пользователи" + И "#Параметр(9)" <> "ВнешниеПользователи" #Тогда + #Если СтрСодержит("#Параметр(9)", ",") #Тогда + // Когда параметр задан неверно, вставляется строка, чтобы вызвать ошибку сборки ограничения доступа. + НеверныйВидДоступа: "#Параметр(9)" - "При проверке таблицы значения доступа можно указывать только один вид доступа" + #ИначеЕсли СтрСодержит(&ВидыДоступаСОднойГруппойДляЗначенияДоступа, ",#Параметр(9),") #Тогда + ВЫБРАТЬ ПЕРВЫЕ 1 ИСТИНА + ИЗ РегистрСведений.ЗначенияГруппДоступа КАК Значения + ГДЕ + Значения.ГруппаДоступа = ГруппыДоступа.Ссылка + И Значения.ЗначениеДоступа = Т.ГруппаДоступа + #Иначе // Значения доступа, для которых можно указать несколько групп значений доступа. + ВЫБРАТЬ ПЕРВЫЕ 1 ИСТИНА + ИЗ РегистрСведений.ЗначенияГруппДоступа КАК Значения + ВНУТРЕННЕЕ СОЕДИНЕНИЕ #Параметр(1).ГруппыДоступа КАК ГруппыЗначений + ПО + Значения.ГруппаДоступа = ГруппыДоступа.Ссылка + И Значения.ЗначениеДоступа = ГруппыЗначений.ГруппаДоступа + И ГруппыЗначений.Ссылка = #Параметр(10) + #КонецЕсли + #Иначе + ВЫБРАТЬ ПЕРВЫЕ 1 ИСТИНА + ИЗ РегистрСведений.ЗначенияГруппДоступа КАК Значения + ВНУТРЕННЕЕ СОЕДИНЕНИЕ РегистрСведений.ГруппыЗначенийДоступа КАК ГруппыЗначений + ПО + Значения.ГруппаДоступа = ГруппыДоступа.Ссылка + И Значения.ЗначениеДоступа = ГруппыЗначений.ГруппаЗначенийДоступа + И ГруппыЗначений.ЗначениеДоступа = #Параметр(10) + #КонецЕсли + ) + ТОГДА ИСТИНА + ИНАЧЕ ЛОЖЬ + КОНЕЦ + = + ВЫБОР + КОГДА ИСТИНА В + ( + ВЫБРАТЬ ПЕРВЫЕ 1 ИСТИНА + ИЗ РегистрСведений.ЗначенияГруппДоступаПоУмолчанию КАК ЗначенияПоУмолчанию + ГДЕ + ЗначенияПоУмолчанию.ГруппаДоступа = ГруппыДоступа.Ссылка + И ТИПЗНАЧЕНИЯ(ЗначенияПоУмолчанию.ТипЗначенийДоступа) = ТИПЗНАЧЕНИЯ(#Параметр(10)) + И ЗначенияПоУмолчанию.ВсеРазрешены = ЛОЖЬ + ) + ТОГДА ИСТИНА + ИНАЧЕ ЛОЖЬ + КОНЕЦ + ) + ) +#Иначе + ЕСТЬNULL(#Параметр(10), НЕОПРЕДЕЛЕНО) <> НЕОПРЕДЕЛЕНО +#КонецЕсли + + #Параметр(11) // [)[)][)]...] [ИЛИ|И] [([(][(]...] оператор И/ИЛИ с/без скобок. + +//// Проверка значения поля группы параметров 3. +#Если "#Параметр(12)" = "" И "#Параметр(13)" = "" #Тогда + // Группа параметров не используется. +#ИначеЕсли &ОграничениеДоступаНаУровнеЗаписейИспользуется И ("#Параметр(12)" = "Условие" Или "#Параметр(12)" = "") #Тогда + // Когда имя вида доступа "Условие" (или ""), тогда вместо имени поля задано условие. + ( #Параметр(13) ) +#ИначеЕсли "#Параметр(12)" = "ПравоЧтения" Или "#Параметр(12)" = "ПравоИзменения" #Тогда + #Параметр(13) <> НЕОПРЕДЕЛЕНО + И ИСТИНА В + ( // Проверка права пользователя на таблицу Значения, установленного в поле. + ВЫБРАТЬ ПЕРВЫЕ 1 ИСТИНА + ИЗ РегистрСведений.ТаблицыГруппДоступа КАК ТаблицыГруппДоступаПроверкаПрава + ГДЕ + ТаблицыГруппДоступаПроверкаПрава.ГруппаДоступа = ГруппыДоступа.Ссылка + И ТИПЗНАЧЕНИЯ(ТаблицыГруппДоступаПроверкаПрава.ТипТаблицы) = ТИПЗНАЧЕНИЯ(#Параметр(13)) + #Если Не "#Параметр(12)" = "ПравоЧтения" #Тогда + И ТаблицыГруппДоступаПроверкаПрава.ПравоИзменение + #КонецЕсли + ) +#ИначеЕсли "#Параметр(12)" = "ПравоЧтенияПоИдентификатору" Или "#Параметр(12)" = "ПравоИзмененияПоИдентификатору" #Тогда + ИСТИНА В + ( // Проверка права пользователя на таблицу, идентификатор которой указан в Значении, установленном в поле. + ВЫБРАТЬ ПЕРВЫЕ 1 ИСТИНА + ИЗ РегистрСведений.ТаблицыГруппДоступа КАК ТаблицыГруппДоступаПроверкаПрава + ГДЕ + ТаблицыГруппДоступаПроверкаПрава.ГруппаДоступа = ГруппыДоступа.Ссылка + И ТаблицыГруппДоступаПроверкаПрава.Таблица = #Параметр(13) + #Если Не "#Параметр(12)" = "ПравоЧтенияПоИдентификатору" #Тогда + И ТаблицыГруппДоступаПроверкаПрава.ПравоИзменение + #КонецЕсли + ) +#ИначеЕсли Не &ОграничениеДоступаНаУровнеЗаписейИспользуется #Тогда + ИСТИНА // Группа параметров отключена. +#ИначеЕсли "#Параметр(12)" = "НастройкиПрав" #Тогда + + ( + ИСТИНА В // Проверка, что пользователю или какой-нибудь группе пользователя право разрешено + ( + ВЫБРАТЬ ПЕРВЫЕ 1 ИСТИНА + ИЗ РегистрСведений.НастройкиПравОбъектов КАК НастройкиПрав + ВНУТРЕННЕЕ СОЕДИНЕНИЕ РегистрСведений.НаследованиеНастроекПравОбъектов КАК НаследованиеНастроек + ПО + НаследованиеНастроек.Объект = #Параметр(13) + И НастройкиПрав.Объект = НаследованиеНастроек.Родитель + #Если #ИмяТекущегоПраваДоступа = "Чтение" #Тогда + И НаследованиеНастроек.УровеньИспользования < НастройкиПрав.УровеньРазрешенияЧтения + #Иначе + #Если СтрСодержит(&ТаблицыСОтдельнымиНастройкамиПрав, "|#Параметр(1);") #Тогда + И НастройкиПрав.Таблица = СвойстваТекущейТаблицы.Ссылка + #Иначе + И НастройкиПрав.Таблица = ЗНАЧЕНИЕ(Справочник.ИдентификаторыОбъектовМетаданных.ПустаяСсылка) + #КонецЕсли + И НаследованиеНастроек.УровеньИспользования < НастройкиПрав.УровеньРазрешенияИзменения + #КонецЕсли + ВНУТРЕННЕЕ СОЕДИНЕНИЕ РегистрСведений.СоставыГруппПользователей КАК СоставыГруппПользователей + ПО + СоставыГруппПользователей.Пользователь = &АвторизованныйПользователь + И СоставыГруппПользователей.ГруппаПользователей = НастройкиПрав.Пользователь + ) + И НЕ ЛОЖЬ В // Проверка, что пользователю или какой-нибудь группе пользователя право запрещено. + ( + ВЫБРАТЬ ПЕРВЫЕ 1 ЛОЖЬ + ИЗ РегистрСведений.НастройкиПравОбъектов КАК НастройкиПрав + ВНУТРЕННЕЕ СОЕДИНЕНИЕ РегистрСведений.НаследованиеНастроекПравОбъектов КАК НаследованиеНастроек + ПО + НаследованиеНастроек.Объект = #Параметр(13) + И НастройкиПрав.Объект = НаследованиеНастроек.Родитель + #Если #ИмяТекущегоПраваДоступа = "Чтение" #Тогда + И НаследованиеНастроек.УровеньИспользования < НастройкиПрав.УровеньЗапрещенияЧтения + #Иначе + #Если СтрСодержит(&ТаблицыСОтдельнымиНастройкамиПрав, "|#Параметр(1);") #Тогда + И НастройкиПрав.Таблица = СвойстваТекущейТаблицы.Ссылка + #Иначе + И НастройкиПрав.Таблица = ЗНАЧЕНИЕ(Справочник.ИдентификаторыОбъектовМетаданных.ПустаяСсылка) + #КонецЕсли + И НаследованиеНастроек.УровеньИспользования < НастройкиПрав.УровеньЗапрещенияИзменения + #КонецЕсли + ВНУТРЕННЕЕ СОЕДИНЕНИЕ РегистрСведений.СоставыГруппПользователей КАК СоставыГруппПользователей + ПО + СоставыГруппПользователей.Пользователь = &АвторизованныйПользователь + И СоставыГруппПользователей.ГруппаПользователей = НастройкиПрав.Пользователь + ) + ) +#ИначеЕсли Не СтрСодержит(&ВсеВидыДоступаКромеСпециальных, ",#Параметр(12),") #Тогда + // Когда параметр задан неверно, вставляется строка, чтобы вызвать ошибку сборки ограничения доступа. + #Если СтрСодержит("#Параметр(12)", ",") #Тогда + НеверныйВидДоступа: "#Параметр(12)" - "Список имен видов доступа не найден" + #Иначе + НеверныйВидДоступа: "#Параметр(12)" - "Имя вида доступа не найдено" + #КонецЕсли +#ИначеЕсли &ВидыДоступаСОтключеннымИспользованием <> "Все" + И Не СтрСодержит(&ВидыДоступаСОтключеннымИспользованием, ",#Параметр(12),") #Тогда + + ( + ЕСТЬNULL(#Параметр(13), НЕОПРЕДЕЛЕНО) <> НЕОПРЕДЕЛЕНО + И + #Если (Не СтрСодержит(&ВидыДоступаСОтключеннымИспользованием, ",Пользователи,") И СтрСодержит(",#Параметр(12),", ",Пользователи,")) + Или (Не СтрСодержит(&ВидыДоступаСОтключеннымИспользованием, ",ВнешниеПользователи,") И СтрСодержит(",#Параметр(12),", ",ВнешниеПользователи,")) #Тогда + НЕ + ( + НЕ ИСТИНА В + ( + ВЫБРАТЬ ПЕРВЫЕ 1 ИСТИНА + ИЗ РегистрСведений.ГруппыЗначенийДоступа КАК ГруппыЗначенийДоступа + ГДЕ + ГруппыЗначенийДоступа.ЗначениеДоступа = #Параметр(13) + И ГруппыЗначенийДоступа.ГруппаЗначенийДоступа = &АвторизованныйПользователь + ) + И НЕ + #Иначе + ( + #КонецЕсли + ВЫБОР + КОГДА ИСТИНА В + ( + #Если СтрСодержит(&ВидыДоступаБезГруппДляЗначенияДоступа, ",#Параметр(12),") #Тогда + ВЫБРАТЬ ПЕРВЫЕ 1 ИСТИНА + ИЗ РегистрСведений.ЗначенияГруппДоступа КАК Значения + ГДЕ + Значения.ГруппаДоступа = ГруппыДоступа.Ссылка + И Значения.ЗначениеДоступа = #Параметр(13) + #ИначеЕсли "#Параметр(13)" = "Т.Ссылка" + И "#Параметр(12)" <> "Пользователи" + И "#Параметр(12)" <> "ВнешниеПользователи" #Тогда + #Если СтрСодержит("#Параметр(12)", ",") #Тогда + // Когда параметр задан неверно, вставляется строка, чтобы вызвать ошибку сборки ограничения доступа. + НеверныйВидДоступа: "#Параметр(12)" - "При проверке таблицы значения доступа можно указывать только один вид доступа" + #ИначеЕсли СтрСодержит(&ВидыДоступаСОднойГруппойДляЗначенияДоступа, ",#Параметр(12),") #Тогда + ВЫБРАТЬ ПЕРВЫЕ 1 ИСТИНА + ИЗ РегистрСведений.ЗначенияГруппДоступа КАК Значения + ГДЕ + Значения.ГруппаДоступа = ГруппыДоступа.Ссылка + И Значения.ЗначениеДоступа = Т.ГруппаДоступа + #Иначе // Значения доступа, для которых можно указать несколько групп значений доступа. + ВЫБРАТЬ ПЕРВЫЕ 1 ИСТИНА + ИЗ РегистрСведений.ЗначенияГруппДоступа КАК Значения + ВНУТРЕННЕЕ СОЕДИНЕНИЕ #Параметр(1).ГруппыДоступа КАК ГруппыЗначений + ПО + Значения.ГруппаДоступа = ГруппыДоступа.Ссылка + И Значения.ЗначениеДоступа = ГруппыЗначений.ГруппаДоступа + И ГруппыЗначений.Ссылка = #Параметр(13) + #КонецЕсли + #Иначе + ВЫБРАТЬ ПЕРВЫЕ 1 ИСТИНА + ИЗ РегистрСведений.ЗначенияГруппДоступа КАК Значения + ВНУТРЕННЕЕ СОЕДИНЕНИЕ РегистрСведений.ГруппыЗначенийДоступа КАК ГруппыЗначений + ПО + Значения.ГруппаДоступа = ГруппыДоступа.Ссылка + И Значения.ЗначениеДоступа = ГруппыЗначений.ГруппаЗначенийДоступа + И ГруппыЗначений.ЗначениеДоступа = #Параметр(13) + #КонецЕсли + ) + ТОГДА ИСТИНА + ИНАЧЕ ЛОЖЬ + КОНЕЦ + = + ВЫБОР + КОГДА ИСТИНА В + ( + ВЫБРАТЬ ПЕРВЫЕ 1 ИСТИНА + ИЗ РегистрСведений.ЗначенияГруппДоступаПоУмолчанию КАК ЗначенияПоУмолчанию + ГДЕ + ЗначенияПоУмолчанию.ГруппаДоступа = ГруппыДоступа.Ссылка + И ТИПЗНАЧЕНИЯ(ЗначенияПоУмолчанию.ТипЗначенийДоступа) = ТИПЗНАЧЕНИЯ(#Параметр(13)) + И ЗначенияПоУмолчанию.ВсеРазрешены = ЛОЖЬ + ) + ТОГДА ИСТИНА + ИНАЧЕ ЛОЖЬ + КОНЕЦ + ) + ) +#Иначе + ЕСТЬNULL(#Параметр(13), НЕОПРЕДЕЛЕНО) <> НЕОПРЕДЕЛЕНО +#КонецЕсли + + #Параметр(14) // [)[)][)]...] [ИЛИ|И] [([(][(]...] оператор И/ИЛИ с/без скобок. + +//// Проверка значения поля группы параметров 4. +#Если "#Параметр(15)" = "" И "#Параметр(16)" = "" #Тогда + // Группа параметров не используется. +#ИначеЕсли &ОграничениеДоступаНаУровнеЗаписейИспользуется И ("#Параметр(15)" = "Условие" Или "#Параметр(15)" = "") #Тогда + // Когда имя вида доступа "Условие" (или ""), тогда вместо имени поля задано условие. + ( #Параметр(16) ) +#ИначеЕсли "#Параметр(15)" = "ПравоЧтения" Или "#Параметр(15)" = "ПравоИзменения" #Тогда + #Параметр(16) <> НЕОПРЕДЕЛЕНО + И ИСТИНА В + ( // Проверка права пользователя на таблицу Значения, установленного в поле. + ВЫБРАТЬ ПЕРВЫЕ 1 ИСТИНА + ИЗ РегистрСведений.ТаблицыГруппДоступа КАК ТаблицыГруппДоступаПроверкаПрава + ГДЕ + ТаблицыГруппДоступаПроверкаПрава.ГруппаДоступа = ГруппыДоступа.Ссылка + И ТИПЗНАЧЕНИЯ(ТаблицыГруппДоступаПроверкаПрава.ТипТаблицы) = ТИПЗНАЧЕНИЯ(#Параметр(16)) + #Если Не "#Параметр(15)" = "ПравоЧтения" #Тогда + И ТаблицыГруппДоступаПроверкаПрава.ПравоИзменение + #КонецЕсли + ) +#ИначеЕсли "#Параметр(15)" = "ПравоЧтенияПоИдентификатору" Или "#Параметр(15)" = "ПравоИзмененияПоИдентификатору" #Тогда + ИСТИНА В + ( // Проверка права пользователя на таблицу, идентификатор которой указан в Значении, установленном в поле. + ВЫБРАТЬ ПЕРВЫЕ 1 ИСТИНА + ИЗ РегистрСведений.ТаблицыГруппДоступа КАК ТаблицыГруппДоступаПроверкаПрава + ГДЕ + ТаблицыГруппДоступаПроверкаПрава.ГруппаДоступа = ГруппыДоступа.Ссылка + И ТаблицыГруппДоступаПроверкаПрава.Таблица = #Параметр(16) + #Если Не "#Параметр(15)" = "ПравоЧтенияПоИдентификатору" #Тогда + И ТаблицыГруппДоступаПроверкаПрава.ПравоИзменение + #КонецЕсли + ) +#ИначеЕсли Не &ОграничениеДоступаНаУровнеЗаписейИспользуется #Тогда + ИСТИНА // Группа параметров отключена. +#ИначеЕсли "#Параметр(15)" = "НастройкиПрав" #Тогда + + ( + ИСТИНА В // Проверка, что пользователю или какой-нибудь группе пользователя право разрешено + ( + ВЫБРАТЬ ПЕРВЫЕ 1 ИСТИНА + ИЗ РегистрСведений.НастройкиПравОбъектов КАК НастройкиПрав + ВНУТРЕННЕЕ СОЕДИНЕНИЕ РегистрСведений.НаследованиеНастроекПравОбъектов КАК НаследованиеНастроек + ПО + НаследованиеНастроек.Объект = #Параметр(16) + И НастройкиПрав.Объект = НаследованиеНастроек.Родитель + #Если #ИмяТекущегоПраваДоступа = "Чтение" #Тогда + И НаследованиеНастроек.УровеньИспользования < НастройкиПрав.УровеньРазрешенияЧтения + #Иначе + #Если СтрСодержит(&ТаблицыСОтдельнымиНастройкамиПрав, "|#Параметр(1);") #Тогда + И НастройкиПрав.Таблица = СвойстваТекущейТаблицы.Ссылка + #Иначе + И НастройкиПрав.Таблица = ЗНАЧЕНИЕ(Справочник.ИдентификаторыОбъектовМетаданных.ПустаяСсылка) + #КонецЕсли + И НаследованиеНастроек.УровеньИспользования < НастройкиПрав.УровеньРазрешенияИзменения + #КонецЕсли + ВНУТРЕННЕЕ СОЕДИНЕНИЕ РегистрСведений.СоставыГруппПользователей КАК СоставыГруппПользователей + ПО + СоставыГруппПользователей.Пользователь = &АвторизованныйПользователь + И СоставыГруппПользователей.ГруппаПользователей = НастройкиПрав.Пользователь + ) + И НЕ ЛОЖЬ В // Проверка, что пользователю или какой-нибудь группе пользователя право запрещено. + ( + ВЫБРАТЬ ПЕРВЫЕ 1 ЛОЖЬ + ИЗ РегистрСведений.НастройкиПравОбъектов КАК НастройкиПрав + ВНУТРЕННЕЕ СОЕДИНЕНИЕ РегистрСведений.НаследованиеНастроекПравОбъектов КАК НаследованиеНастроек + ПО + НаследованиеНастроек.Объект = #Параметр(16) + И НастройкиПрав.Объект = НаследованиеНастроек.Родитель + #Если #ИмяТекущегоПраваДоступа = "Чтение" #Тогда + И НаследованиеНастроек.УровеньИспользования < НастройкиПрав.УровеньЗапрещенияЧтения + #Иначе + #Если СтрСодержит(&ТаблицыСОтдельнымиНастройкамиПрав, "|#Параметр(1);") #Тогда + И НастройкиПрав.Таблица = СвойстваТекущейТаблицы.Ссылка + #Иначе + И НастройкиПрав.Таблица = ЗНАЧЕНИЕ(Справочник.ИдентификаторыОбъектовМетаданных.ПустаяСсылка) + #КонецЕсли + И НаследованиеНастроек.УровеньИспользования < НастройкиПрав.УровеньЗапрещенияИзменения + #КонецЕсли + ВНУТРЕННЕЕ СОЕДИНЕНИЕ РегистрСведений.СоставыГруппПользователей КАК СоставыГруппПользователей + ПО + СоставыГруппПользователей.Пользователь = &АвторизованныйПользователь + И СоставыГруппПользователей.ГруппаПользователей = НастройкиПрав.Пользователь + ) + ) +#ИначеЕсли Не СтрСодержит(&ВсеВидыДоступаКромеСпециальных, ",#Параметр(15),") #Тогда + // Когда параметр задан неверно, вставляется строка, чтобы вызвать ошибку сборки ограничения доступа. + #Если СтрСодержит("#Параметр(15)", ",") #Тогда + НеверныйВидДоступа: "#Параметр(15)" - "Список имен видов доступа не найден" + #Иначе + НеверныйВидДоступа: "#Параметр(15)" - "Имя вида доступа не найдено" + #КонецЕсли +#ИначеЕсли &ВидыДоступаСОтключеннымИспользованием <> "Все" + И Не СтрСодержит(&ВидыДоступаСОтключеннымИспользованием, ",#Параметр(15),") #Тогда + + ( + ЕСТЬNULL(#Параметр(16), НЕОПРЕДЕЛЕНО) <> НЕОПРЕДЕЛЕНО + И + #Если (Не СтрСодержит(&ВидыДоступаСОтключеннымИспользованием, ",Пользователи,") И СтрСодержит(",#Параметр(15),", ",Пользователи,")) + Или (Не СтрСодержит(&ВидыДоступаСОтключеннымИспользованием, ",ВнешниеПользователи,") И СтрСодержит(",#Параметр(15),", ",ВнешниеПользователи,")) #Тогда + НЕ + ( + НЕ ИСТИНА В + ( + ВЫБРАТЬ ПЕРВЫЕ 1 ИСТИНА + ИЗ РегистрСведений.ГруппыЗначенийДоступа КАК ГруппыЗначенийДоступа + ГДЕ + ГруппыЗначенийДоступа.ЗначениеДоступа = #Параметр(16) + И ГруппыЗначенийДоступа.ГруппаЗначенийДоступа = &АвторизованныйПользователь + ) + И НЕ + #Иначе + ( + #КонецЕсли + ВЫБОР + КОГДА ИСТИНА В + ( + #Если СтрСодержит(&ВидыДоступаБезГруппДляЗначенияДоступа, ",#Параметр(15),") #Тогда + ВЫБРАТЬ ПЕРВЫЕ 1 ИСТИНА + ИЗ РегистрСведений.ЗначенияГруппДоступа КАК Значения + ГДЕ + Значения.ГруппаДоступа = ГруппыДоступа.Ссылка + И Значения.ЗначениеДоступа = #Параметр(16) + #ИначеЕсли "#Параметр(16)" = "Т.Ссылка" + И "#Параметр(15)" <> "Пользователи" + И "#Параметр(15)" <> "ВнешниеПользователи" #Тогда + #Если СтрСодержит("#Параметр(15)", ",") #Тогда + // Когда параметр задан неверно, вставляется строка, чтобы вызвать ошибку сборки ограничения доступа. + НеверныйВидДоступа: "#Параметр(15)" - "При проверке таблицы значения доступа можно указывать только один вид доступа" + #ИначеЕсли СтрСодержит(&ВидыДоступаСОднойГруппойДляЗначенияДоступа, ",#Параметр(15),") #Тогда + ВЫБРАТЬ ПЕРВЫЕ 1 ИСТИНА + ИЗ РегистрСведений.ЗначенияГруппДоступа КАК Значения + ГДЕ + Значения.ГруппаДоступа = ГруппыДоступа.Ссылка + И Значения.ЗначениеДоступа = Т.ГруппаДоступа + #Иначе // Значения доступа, для которых можно указать несколько групп значений доступа. + ВЫБРАТЬ ПЕРВЫЕ 1 ИСТИНА + ИЗ РегистрСведений.ЗначенияГруппДоступа КАК Значения + ВНУТРЕННЕЕ СОЕДИНЕНИЕ #Параметр(1).ГруппыДоступа КАК ГруппыЗначений + ПО + Значения.ГруппаДоступа = ГруппыДоступа.Ссылка + И Значения.ЗначениеДоступа = ГруппыЗначений.ГруппаДоступа + И ГруппыЗначений.Ссылка = #Параметр(16) + #КонецЕсли + #Иначе + ВЫБРАТЬ ПЕРВЫЕ 1 ИСТИНА + ИЗ РегистрСведений.ЗначенияГруппДоступа КАК Значения + ВНУТРЕННЕЕ СОЕДИНЕНИЕ РегистрСведений.ГруппыЗначенийДоступа КАК ГруппыЗначений + ПО + Значения.ГруппаДоступа = ГруппыДоступа.Ссылка + И Значения.ЗначениеДоступа = ГруппыЗначений.ГруппаЗначенийДоступа + И ГруппыЗначений.ЗначениеДоступа = #Параметр(16) + #КонецЕсли + ) + ТОГДА ИСТИНА + ИНАЧЕ ЛОЖЬ + КОНЕЦ + = + ВЫБОР + КОГДА ИСТИНА В + ( + ВЫБРАТЬ ПЕРВЫЕ 1 ИСТИНА + ИЗ РегистрСведений.ЗначенияГруппДоступаПоУмолчанию КАК ЗначенияПоУмолчанию + ГДЕ + ЗначенияПоУмолчанию.ГруппаДоступа = ГруппыДоступа.Ссылка + И ТИПЗНАЧЕНИЯ(ЗначенияПоУмолчанию.ТипЗначенийДоступа) = ТИПЗНАЧЕНИЯ(#Параметр(16)) + И ЗначенияПоУмолчанию.ВсеРазрешены = ЛОЖЬ + ) + ТОГДА ИСТИНА + ИНАЧЕ ЛОЖЬ + КОНЕЦ + ) + ) +#Иначе + ЕСТЬNULL(#Параметр(16), НЕОПРЕДЕЛЕНО) <> НЕОПРЕДЕЛЕНО +#КонецЕсли + + #Параметр(17) // [)[)][)]...] [ИЛИ|И] [([(][(]...] оператор И/ИЛИ с/без скобок. + +//// Проверка значения поля группы параметров 5. +#Если "#Параметр(18)" = "" И "#Параметр(19)" = "" #Тогда + // Группа параметров не используется. +#ИначеЕсли &ОграничениеДоступаНаУровнеЗаписейИспользуется И ("#Параметр(18)" = "Условие" Или "#Параметр(18)" = "") #Тогда + // Когда имя вида доступа "Условие" (или ""), тогда вместо имени поля задано условие. + ( #Параметр(19) ) +#ИначеЕсли "#Параметр(18)" = "ПравоЧтения" Или "#Параметр(18)" = "ПравоИзменения" #Тогда + #Параметр(19) <> НЕОПРЕДЕЛЕНО + И ИСТИНА В + ( // Проверка права пользователя на таблицу Значения, установленного в поле. + ВЫБРАТЬ ПЕРВЫЕ 1 ИСТИНА + ИЗ РегистрСведений.ТаблицыГруппДоступа КАК ТаблицыГруппДоступаПроверкаПрава + ГДЕ + ТаблицыГруппДоступаПроверкаПрава.ГруппаДоступа = ГруппыДоступа.Ссылка + И ТИПЗНАЧЕНИЯ(ТаблицыГруппДоступаПроверкаПрава.ТипТаблицы) = ТИПЗНАЧЕНИЯ(#Параметр(19)) + #Если Не "#Параметр(18)" = "ПравоЧтения" #Тогда + И ТаблицыГруппДоступаПроверкаПрава.ПравоИзменение + #КонецЕсли + ) +#ИначеЕсли "#Параметр(18)" = "ПравоЧтенияПоИдентификатору" Или "#Параметр(18)" = "ПравоИзмененияПоИдентификатору" #Тогда + ИСТИНА В + ( // Проверка права пользователя на таблицу, идентификатор которой указан в Значении, установленном в поле. + ВЫБРАТЬ ПЕРВЫЕ 1 ИСТИНА + ИЗ РегистрСведений.ТаблицыГруппДоступа КАК ТаблицыГруппДоступаПроверкаПрава + ГДЕ + ТаблицыГруппДоступаПроверкаПрава.ГруппаДоступа = ГруппыДоступа.Ссылка + И ТаблицыГруппДоступаПроверкаПрава.Таблица = #Параметр(19) + #Если Не "#Параметр(18)" = "ПравоЧтенияПоИдентификатору" #Тогда + И ТаблицыГруппДоступаПроверкаПрава.ПравоИзменение + #КонецЕсли + ) +#ИначеЕсли Не &ОграничениеДоступаНаУровнеЗаписейИспользуется #Тогда + ИСТИНА // Группа параметров отключена. +#ИначеЕсли "#Параметр(18)" = "НастройкиПрав" #Тогда + + ( + ИСТИНА В // Проверка, что пользователю или какой-нибудь группе пользователя право разрешено + ( + ВЫБРАТЬ ПЕРВЫЕ 1 ИСТИНА + ИЗ РегистрСведений.НастройкиПравОбъектов КАК НастройкиПрав + ВНУТРЕННЕЕ СОЕДИНЕНИЕ РегистрСведений.НаследованиеНастроекПравОбъектов КАК НаследованиеНастроек + ПО + НаследованиеНастроек.Объект = #Параметр(19) + И НастройкиПрав.Объект = НаследованиеНастроек.Родитель + #Если #ИмяТекущегоПраваДоступа = "Чтение" #Тогда + И НаследованиеНастроек.УровеньИспользования < НастройкиПрав.УровеньРазрешенияЧтения + #Иначе + #Если СтрСодержит(&ТаблицыСОтдельнымиНастройкамиПрав, "|#Параметр(1);") #Тогда + И НастройкиПрав.Таблица = СвойстваТекущейТаблицы.Ссылка + #Иначе + И НастройкиПрав.Таблица = ЗНАЧЕНИЕ(Справочник.ИдентификаторыОбъектовМетаданных.ПустаяСсылка) + #КонецЕсли + И НаследованиеНастроек.УровеньИспользования < НастройкиПрав.УровеньРазрешенияИзменения + #КонецЕсли + ВНУТРЕННЕЕ СОЕДИНЕНИЕ РегистрСведений.СоставыГруппПользователей КАК СоставыГруппПользователей + ПО + СоставыГруппПользователей.Пользователь = &АвторизованныйПользователь + И СоставыГруппПользователей.ГруппаПользователей = НастройкиПрав.Пользователь + ) + И НЕ ЛОЖЬ В // Проверка, что пользователю или какой-нибудь группе пользователя право запрещено. + ( + ВЫБРАТЬ ПЕРВЫЕ 1 ЛОЖЬ + ИЗ РегистрСведений.НастройкиПравОбъектов КАК НастройкиПрав + ВНУТРЕННЕЕ СОЕДИНЕНИЕ РегистрСведений.НаследованиеНастроекПравОбъектов КАК НаследованиеНастроек + ПО + НаследованиеНастроек.Объект = #Параметр(19) + И НастройкиПрав.Объект = НаследованиеНастроек.Родитель + #Если #ИмяТекущегоПраваДоступа = "Чтение" #Тогда + И НаследованиеНастроек.УровеньИспользования < НастройкиПрав.УровеньЗапрещенияЧтения + #Иначе + #Если СтрСодержит(&ТаблицыСОтдельнымиНастройкамиПрав, "|#Параметр(1);") #Тогда + И НастройкиПрав.Таблица = СвойстваТекущейТаблицы.Ссылка + #Иначе + И НастройкиПрав.Таблица = ЗНАЧЕНИЕ(Справочник.ИдентификаторыОбъектовМетаданных.ПустаяСсылка) + #КонецЕсли + И НаследованиеНастроек.УровеньИспользования < НастройкиПрав.УровеньЗапрещенияИзменения + #КонецЕсли + ВНУТРЕННЕЕ СОЕДИНЕНИЕ РегистрСведений.СоставыГруппПользователей КАК СоставыГруппПользователей + ПО + СоставыГруппПользователей.Пользователь = &АвторизованныйПользователь + И СоставыГруппПользователей.ГруппаПользователей = НастройкиПрав.Пользователь + ) + ) +#ИначеЕсли Не СтрСодержит(&ВсеВидыДоступаКромеСпециальных, ",#Параметр(18),") #Тогда + // Когда параметр задан неверно, вставляется строка, чтобы вызвать ошибку сборки ограничения доступа. + #Если СтрСодержит("#Параметр(18)", ",") #Тогда + НеверныйВидДоступа: "#Параметр(18)" - "Список имен видов доступа не найден" + #Иначе + НеверныйВидДоступа: "#Параметр(18)" - "Имя вида доступа не найдено" + #КонецЕсли +#ИначеЕсли &ВидыДоступаСОтключеннымИспользованием <> "Все" + И Не СтрСодержит(&ВидыДоступаСОтключеннымИспользованием, ",#Параметр(18),") #Тогда + + ( + ЕСТЬNULL(#Параметр(19), НЕОПРЕДЕЛЕНО) <> НЕОПРЕДЕЛЕНО + И + #Если (Не СтрСодержит(&ВидыДоступаСОтключеннымИспользованием, ",Пользователи,") И СтрСодержит(",#Параметр(18),", ",Пользователи,")) + Или (Не СтрСодержит(&ВидыДоступаСОтключеннымИспользованием, ",ВнешниеПользователи,") И СтрСодержит(",#Параметр(18),", ",ВнешниеПользователи,")) #Тогда + НЕ + ( + НЕ ИСТИНА В + ( + ВЫБРАТЬ ПЕРВЫЕ 1 ИСТИНА + ИЗ РегистрСведений.ГруппыЗначенийДоступа КАК ГруппыЗначенийДоступа + ГДЕ + ГруппыЗначенийДоступа.ЗначениеДоступа = #Параметр(19) + И ГруппыЗначенийДоступа.ГруппаЗначенийДоступа = &АвторизованныйПользователь + ) + И НЕ + #Иначе + ( + #КонецЕсли + ВЫБОР + КОГДА ИСТИНА В + ( + #Если СтрСодержит(&ВидыДоступаБезГруппДляЗначенияДоступа, ",#Параметр(18),") #Тогда + ВЫБРАТЬ ПЕРВЫЕ 1 ИСТИНА + ИЗ РегистрСведений.ЗначенияГруппДоступа КАК Значения + ГДЕ + Значения.ГруппаДоступа = ГруппыДоступа.Ссылка + И Значения.ЗначениеДоступа = #Параметр(19) + #ИначеЕсли "#Параметр(19)" = "Т.Ссылка" + И "#Параметр(18)" <> "Пользователи" + И "#Параметр(18)" <> "ВнешниеПользователи" #Тогда + #Если СтрСодержит("#Параметр(18)", ",") #Тогда + // Когда параметр задан неверно, вставляется строка, чтобы вызвать ошибку сборки ограничения доступа. + НеверныйВидДоступа: "#Параметр(18)" - "При проверке таблицы значения доступа можно указывать только один вид доступа" + #ИначеЕсли СтрСодержит(&ВидыДоступаСОднойГруппойДляЗначенияДоступа, ",#Параметр(18),") #Тогда + ВЫБРАТЬ ПЕРВЫЕ 1 ИСТИНА + ИЗ РегистрСведений.ЗначенияГруппДоступа КАК Значения + ГДЕ + Значения.ГруппаДоступа = ГруппыДоступа.Ссылка + И Значения.ЗначениеДоступа = Т.ГруппаДоступа + #Иначе // Значения доступа, для которых можно указать несколько групп значений доступа. + ВЫБРАТЬ ПЕРВЫЕ 1 ИСТИНА + ИЗ РегистрСведений.ЗначенияГруппДоступа КАК Значения + ВНУТРЕННЕЕ СОЕДИНЕНИЕ #Параметр(1).ГруппыДоступа КАК ГруппыЗначений + ПО + Значения.ГруппаДоступа = ГруппыДоступа.Ссылка + И Значения.ЗначениеДоступа = ГруппыЗначений.ГруппаДоступа + И ГруппыЗначений.Ссылка = #Параметр(19) + #КонецЕсли + #Иначе + ВЫБРАТЬ ПЕРВЫЕ 1 ИСТИНА + ИЗ РегистрСведений.ЗначенияГруппДоступа КАК Значения + ВНУТРЕННЕЕ СОЕДИНЕНИЕ РегистрСведений.ГруппыЗначенийДоступа КАК ГруппыЗначений + ПО + Значения.ГруппаДоступа = ГруппыДоступа.Ссылка + И Значения.ЗначениеДоступа = ГруппыЗначений.ГруппаЗначенийДоступа + И ГруппыЗначений.ЗначениеДоступа = #Параметр(19) + #КонецЕсли + ) + ТОГДА ИСТИНА + ИНАЧЕ ЛОЖЬ + КОНЕЦ + = + ВЫБОР + КОГДА ИСТИНА В + ( + ВЫБРАТЬ ПЕРВЫЕ 1 ИСТИНА + ИЗ РегистрСведений.ЗначенияГруппДоступаПоУмолчанию КАК ЗначенияПоУмолчанию + ГДЕ + ЗначенияПоУмолчанию.ГруппаДоступа = ГруппыДоступа.Ссылка + И ТИПЗНАЧЕНИЯ(ЗначенияПоУмолчанию.ТипЗначенийДоступа) = ТИПЗНАЧЕНИЯ(#Параметр(19)) + И ЗначенияПоУмолчанию.ВсеРазрешены = ЛОЖЬ + ) + ТОГДА ИСТИНА + ИНАЧЕ ЛОЖЬ + КОНЕЦ + ) + ) +#Иначе + ЕСТЬNULL(#Параметр(19), НЕОПРЕДЕЛЕНО) <> НЕОПРЕДЕЛЕНО +#КонецЕсли + + #Параметр(20) // [)[)][)]...] [ИЛИ|И] [([(][(]...] оператор И/ИЛИ с/без скобок. + +//// Проверка значения поля группы параметров 6. +#Если "#Параметр(21)" = "" И "#Параметр(22)" = "" #Тогда + // Группа параметров не используется. +#ИначеЕсли &ОграничениеДоступаНаУровнеЗаписейИспользуется И ("#Параметр(21)" = "Условие" Или "#Параметр(21)" = "") #Тогда + // Когда имя вида доступа "Условие" (или ""), тогда вместо имени поля задано условие. + ( #Параметр(22) ) +#ИначеЕсли "#Параметр(21)" = "ПравоЧтения" Или "#Параметр(21)" = "ПравоИзменения" #Тогда + #Параметр(22) <> НЕОПРЕДЕЛЕНО + И ИСТИНА В + ( // Проверка права пользователя на таблицу Значения, установленного в поле. + ВЫБРАТЬ ПЕРВЫЕ 1 ИСТИНА + ИЗ РегистрСведений.ТаблицыГруппДоступа КАК ТаблицыГруппДоступаПроверкаПрава + ГДЕ + ТаблицыГруппДоступаПроверкаПрава.ГруппаДоступа = ГруппыДоступа.Ссылка + И ТИПЗНАЧЕНИЯ(ТаблицыГруппДоступаПроверкаПрава.ТипТаблицы) = ТИПЗНАЧЕНИЯ(#Параметр(22)) + #Если Не "#Параметр(21)" = "ПравоЧтения" #Тогда + И ТаблицыГруппДоступаПроверкаПрава.ПравоИзменение + #КонецЕсли + ) +#ИначеЕсли "#Параметр(21)" = "ПравоЧтенияПоИдентификатору" Или "#Параметр(21)" = "ПравоИзмененияПоИдентификатору" #Тогда + ИСТИНА В + ( // Проверка права пользователя на таблицу, идентификатор которой указан в Значении, установленном в поле. + ВЫБРАТЬ ПЕРВЫЕ 1 ИСТИНА + ИЗ РегистрСведений.ТаблицыГруппДоступа КАК ТаблицыГруппДоступаПроверкаПрава + ГДЕ + ТаблицыГруппДоступаПроверкаПрава.ГруппаДоступа = ГруппыДоступа.Ссылка + И ТаблицыГруппДоступаПроверкаПрава.Таблица = #Параметр(22) + #Если Не "#Параметр(21)" = "ПравоЧтенияПоИдентификатору" #Тогда + И ТаблицыГруппДоступаПроверкаПрава.ПравоИзменение + #КонецЕсли + ) +#ИначеЕсли Не &ОграничениеДоступаНаУровнеЗаписейИспользуется #Тогда + ИСТИНА // Группа параметров отключена. +#ИначеЕсли "#Параметр(21)" = "НастройкиПрав" #Тогда + + ( + ИСТИНА В // Проверка, что пользователю или какой-нибудь группе пользователя право разрешено + ( + ВЫБРАТЬ ПЕРВЫЕ 1 ИСТИНА + ИЗ РегистрСведений.НастройкиПравОбъектов КАК НастройкиПрав + ВНУТРЕННЕЕ СОЕДИНЕНИЕ РегистрСведений.НаследованиеНастроекПравОбъектов КАК НаследованиеНастроек + ПО + НаследованиеНастроек.Объект = #Параметр(22) + И НастройкиПрав.Объект = НаследованиеНастроек.Родитель + #Если #ИмяТекущегоПраваДоступа = "Чтение" #Тогда + И НаследованиеНастроек.УровеньИспользования < НастройкиПрав.УровеньРазрешенияЧтения + #Иначе + #Если СтрСодержит(&ТаблицыСОтдельнымиНастройкамиПрав, "|#Параметр(1);") #Тогда + И НастройкиПрав.Таблица = СвойстваТекущейТаблицы.Ссылка + #Иначе + И НастройкиПрав.Таблица = ЗНАЧЕНИЕ(Справочник.ИдентификаторыОбъектовМетаданных.ПустаяСсылка) + #КонецЕсли + И НаследованиеНастроек.УровеньИспользования < НастройкиПрав.УровеньРазрешенияИзменения + #КонецЕсли + ВНУТРЕННЕЕ СОЕДИНЕНИЕ РегистрСведений.СоставыГруппПользователей КАК СоставыГруппПользователей + ПО + СоставыГруппПользователей.Пользователь = &АвторизованныйПользователь + И СоставыГруппПользователей.ГруппаПользователей = НастройкиПрав.Пользователь + ) + И НЕ ЛОЖЬ В // Проверка, что пользователю или какой-нибудь группе пользователя право запрещено. + ( + ВЫБРАТЬ ПЕРВЫЕ 1 ЛОЖЬ + ИЗ РегистрСведений.НастройкиПравОбъектов КАК НастройкиПрав + ВНУТРЕННЕЕ СОЕДИНЕНИЕ РегистрСведений.НаследованиеНастроекПравОбъектов КАК НаследованиеНастроек + ПО + НаследованиеНастроек.Объект = #Параметр(22) + И НастройкиПрав.Объект = НаследованиеНастроек.Родитель + #Если #ИмяТекущегоПраваДоступа = "Чтение" #Тогда + И НаследованиеНастроек.УровеньИспользования < НастройкиПрав.УровеньЗапрещенияЧтения + #Иначе + #Если СтрСодержит(&ТаблицыСОтдельнымиНастройкамиПрав, "|#Параметр(1);") #Тогда + И НастройкиПрав.Таблица = СвойстваТекущейТаблицы.Ссылка + #Иначе + И НастройкиПрав.Таблица = ЗНАЧЕНИЕ(Справочник.ИдентификаторыОбъектовМетаданных.ПустаяСсылка) + #КонецЕсли + И НаследованиеНастроек.УровеньИспользования < НастройкиПрав.УровеньЗапрещенияИзменения + #КонецЕсли + ВНУТРЕННЕЕ СОЕДИНЕНИЕ РегистрСведений.СоставыГруппПользователей КАК СоставыГруппПользователей + ПО + СоставыГруппПользователей.Пользователь = &АвторизованныйПользователь + И СоставыГруппПользователей.ГруппаПользователей = НастройкиПрав.Пользователь + ) + ) +#ИначеЕсли Не СтрСодержит(&ВсеВидыДоступаКромеСпециальных, ",#Параметр(21),") #Тогда + // Когда параметр задан неверно, вставляется строка, чтобы вызвать ошибку сборки ограничения доступа. + #Если СтрСодержит("#Параметр(21)", ",") #Тогда + НеверныйВидДоступа: "#Параметр(21)" - "Список имен видов доступа не найден" + #Иначе + НеверныйВидДоступа: "#Параметр(21)" - "Имя вида доступа не найдено" + #КонецЕсли +#ИначеЕсли &ВидыДоступаСОтключеннымИспользованием <> "Все" + И Не СтрСодержит(&ВидыДоступаСОтключеннымИспользованием, ",#Параметр(21),") #Тогда + + ( + ЕСТЬNULL(#Параметр(22), НЕОПРЕДЕЛЕНО) <> НЕОПРЕДЕЛЕНО + И + #Если (Не СтрСодержит(&ВидыДоступаСОтключеннымИспользованием, ",Пользователи,") И СтрСодержит(",#Параметр(21),", ",Пользователи,")) + Или (Не СтрСодержит(&ВидыДоступаСОтключеннымИспользованием, ",ВнешниеПользователи,") И СтрСодержит(",#Параметр(21),", ",ВнешниеПользователи,")) #Тогда + НЕ + ( + НЕ ИСТИНА В + ( + ВЫБРАТЬ ПЕРВЫЕ 1 ИСТИНА + ИЗ РегистрСведений.ГруппыЗначенийДоступа КАК ГруппыЗначенийДоступа + ГДЕ + ГруппыЗначенийДоступа.ЗначениеДоступа = #Параметр(22) + И ГруппыЗначенийДоступа.ГруппаЗначенийДоступа = &АвторизованныйПользователь + ) + И НЕ + #Иначе + ( + #КонецЕсли + ВЫБОР + КОГДА ИСТИНА В + ( + #Если СтрСодержит(&ВидыДоступаБезГруппДляЗначенияДоступа, ",#Параметр(21),") #Тогда + ВЫБРАТЬ ПЕРВЫЕ 1 ИСТИНА + ИЗ РегистрСведений.ЗначенияГруппДоступа КАК Значения + ГДЕ + Значения.ГруппаДоступа = ГруппыДоступа.Ссылка + И Значения.ЗначениеДоступа = #Параметр(22) + #ИначеЕсли "#Параметр(22)" = "Т.Ссылка" + И "#Параметр(21)" <> "Пользователи" + И "#Параметр(21)" <> "ВнешниеПользователи" #Тогда + #Если СтрСодержит("#Параметр(21)", ",") #Тогда + // Когда параметр задан неверно, вставляется строка, чтобы вызвать ошибку сборки ограничения доступа. + НеверныйВидДоступа: "#Параметр(21)" - "При проверке таблицы значения доступа можно указывать только один вид доступа" + #ИначеЕсли СтрСодержит(&ВидыДоступаСОднойГруппойДляЗначенияДоступа, ",#Параметр(21),") #Тогда + ВЫБРАТЬ ПЕРВЫЕ 1 ИСТИНА + ИЗ РегистрСведений.ЗначенияГруппДоступа КАК Значения + ГДЕ + Значения.ГруппаДоступа = ГруппыДоступа.Ссылка + И Значения.ЗначениеДоступа = Т.ГруппаДоступа + #Иначе // Значения доступа, для которых можно указать несколько групп значений доступа. + ВЫБРАТЬ ПЕРВЫЕ 1 ИСТИНА + ИЗ РегистрСведений.ЗначенияГруппДоступа КАК Значения + ВНУТРЕННЕЕ СОЕДИНЕНИЕ #Параметр(1).ГруппыДоступа КАК ГруппыЗначений + ПО + Значения.ГруппаДоступа = ГруппыДоступа.Ссылка + И Значения.ЗначениеДоступа = ГруппыЗначений.ГруппаДоступа + И ГруппыЗначений.Ссылка = #Параметр(22) + #КонецЕсли + #Иначе + ВЫБРАТЬ ПЕРВЫЕ 1 ИСТИНА + ИЗ РегистрСведений.ЗначенияГруппДоступа КАК Значения + ВНУТРЕННЕЕ СОЕДИНЕНИЕ РегистрСведений.ГруппыЗначенийДоступа КАК ГруппыЗначений + ПО + Значения.ГруппаДоступа = ГруппыДоступа.Ссылка + И Значения.ЗначениеДоступа = ГруппыЗначений.ГруппаЗначенийДоступа + И ГруппыЗначений.ЗначениеДоступа = #Параметр(22) + #КонецЕсли + ) + ТОГДА ИСТИНА + ИНАЧЕ ЛОЖЬ + КОНЕЦ + = + ВЫБОР + КОГДА ИСТИНА В + ( + ВЫБРАТЬ ПЕРВЫЕ 1 ИСТИНА + ИЗ РегистрСведений.ЗначенияГруппДоступаПоУмолчанию КАК ЗначенияПоУмолчанию + ГДЕ + ЗначенияПоУмолчанию.ГруппаДоступа = ГруппыДоступа.Ссылка + И ТИПЗНАЧЕНИЯ(ЗначенияПоУмолчанию.ТипЗначенийДоступа) = ТИПЗНАЧЕНИЯ(#Параметр(22)) + И ЗначенияПоУмолчанию.ВсеРазрешены = ЛОЖЬ + ) + ТОГДА ИСТИНА + ИНАЧЕ ЛОЖЬ + КОНЕЦ + ) + ) +#Иначе + ЕСТЬNULL(#Параметр(22), НЕОПРЕДЕЛЕНО) <> НЕОПРЕДЕЛЕНО +#КонецЕсли + + #Параметр(23) // [)[)][)]...] [ИЛИ|И] [([(][(]...] оператор И/ИЛИ с/без скобок. + +//// Проверка значения поля группы параметров 7. +#Если "#Параметр(24)" = "" И "#Параметр(25)" = "" #Тогда + // Группа параметров не используется. +#ИначеЕсли &ОграничениеДоступаНаУровнеЗаписейИспользуется И ("#Параметр(24)" = "Условие" Или "#Параметр(24)" = "") #Тогда + // Когда имя вида доступа "Условие" (или ""), тогда вместо имени поля задано условие. + ( #Параметр(25) ) +#ИначеЕсли "#Параметр(24)" = "ПравоЧтения" Или "#Параметр(24)" = "ПравоИзменения" #Тогда + #Параметр(25) <> НЕОПРЕДЕЛЕНО + И ИСТИНА В + ( // Проверка права пользователя на таблицу Значения, установленного в поле. + ВЫБРАТЬ ПЕРВЫЕ 1 ИСТИНА + ИЗ РегистрСведений.ТаблицыГруппДоступа КАК ТаблицыГруппДоступаПроверкаПрава + ГДЕ + ТаблицыГруппДоступаПроверкаПрава.ГруппаДоступа = ГруппыДоступа.Ссылка + И ТИПЗНАЧЕНИЯ(ТаблицыГруппДоступаПроверкаПрава.ТипТаблицы) = ТИПЗНАЧЕНИЯ(#Параметр(25)) + #Если Не "#Параметр(24)" = "ПравоЧтения" #Тогда + И ТаблицыГруппДоступаПроверкаПрава.ПравоИзменение + #КонецЕсли + ) +#ИначеЕсли "#Параметр(24)" = "ПравоЧтенияПоИдентификатору" Или "#Параметр(24)" = "ПравоИзмененияПоИдентификатору" #Тогда + ИСТИНА В + ( // Проверка права пользователя на таблицу, идентификатор которой указан в Значении, установленном в поле. + ВЫБРАТЬ ПЕРВЫЕ 1 ИСТИНА + ИЗ РегистрСведений.ТаблицыГруппДоступа КАК ТаблицыГруппДоступаПроверкаПрава + ГДЕ + ТаблицыГруппДоступаПроверкаПрава.ГруппаДоступа = ГруппыДоступа.Ссылка + И ТаблицыГруппДоступаПроверкаПрава.Таблица = #Параметр(25) + #Если Не "#Параметр(24)" = "ПравоЧтенияПоИдентификатору" #Тогда + И ТаблицыГруппДоступаПроверкаПрава.ПравоИзменение + #КонецЕсли + ) +#ИначеЕсли Не &ОграничениеДоступаНаУровнеЗаписейИспользуется #Тогда + ИСТИНА // Группа параметров отключена. +#ИначеЕсли "#Параметр(24)" = "НастройкиПрав" #Тогда + + ( + ИСТИНА В // Проверка, что пользователю или какой-нибудь группе пользователя право разрешено + ( + ВЫБРАТЬ ПЕРВЫЕ 1 ИСТИНА + ИЗ РегистрСведений.НастройкиПравОбъектов КАК НастройкиПрав + ВНУТРЕННЕЕ СОЕДИНЕНИЕ РегистрСведений.НаследованиеНастроекПравОбъектов КАК НаследованиеНастроек + ПО + НаследованиеНастроек.Объект = #Параметр(25) + И НастройкиПрав.Объект = НаследованиеНастроек.Родитель + #Если #ИмяТекущегоПраваДоступа = "Чтение" #Тогда + И НаследованиеНастроек.УровеньИспользования < НастройкиПрав.УровеньРазрешенияЧтения + #Иначе + #Если СтрСодержит(&ТаблицыСОтдельнымиНастройкамиПрав, "|#Параметр(1);") #Тогда + И НастройкиПрав.Таблица = СвойстваТекущейТаблицы.Ссылка + #Иначе + И НастройкиПрав.Таблица = ЗНАЧЕНИЕ(Справочник.ИдентификаторыОбъектовМетаданных.ПустаяСсылка) + #КонецЕсли + И НаследованиеНастроек.УровеньИспользования < НастройкиПрав.УровеньРазрешенияИзменения + #КонецЕсли + ВНУТРЕННЕЕ СОЕДИНЕНИЕ РегистрСведений.СоставыГруппПользователей КАК СоставыГруппПользователей + ПО + СоставыГруппПользователей.Пользователь = &АвторизованныйПользователь + И СоставыГруппПользователей.ГруппаПользователей = НастройкиПрав.Пользователь + ) + И НЕ ЛОЖЬ В // Проверка, что пользователю или какой-нибудь группе пользователя право запрещено. + ( + ВЫБРАТЬ ПЕРВЫЕ 1 ЛОЖЬ + ИЗ РегистрСведений.НастройкиПравОбъектов КАК НастройкиПрав + ВНУТРЕННЕЕ СОЕДИНЕНИЕ РегистрСведений.НаследованиеНастроекПравОбъектов КАК НаследованиеНастроек + ПО + НаследованиеНастроек.Объект = #Параметр(25) + И НастройкиПрав.Объект = НаследованиеНастроек.Родитель + #Если #ИмяТекущегоПраваДоступа = "Чтение" #Тогда + И НаследованиеНастроек.УровеньИспользования < НастройкиПрав.УровеньЗапрещенияЧтения + #Иначе + #Если СтрСодержит(&ТаблицыСОтдельнымиНастройкамиПрав, "|#Параметр(1);") #Тогда + И НастройкиПрав.Таблица = СвойстваТекущейТаблицы.Ссылка + #Иначе + И НастройкиПрав.Таблица = ЗНАЧЕНИЕ(Справочник.ИдентификаторыОбъектовМетаданных.ПустаяСсылка) + #КонецЕсли + И НаследованиеНастроек.УровеньИспользования < НастройкиПрав.УровеньЗапрещенияИзменения + #КонецЕсли + ВНУТРЕННЕЕ СОЕДИНЕНИЕ РегистрСведений.СоставыГруппПользователей КАК СоставыГруппПользователей + ПО + СоставыГруппПользователей.Пользователь = &АвторизованныйПользователь + И СоставыГруппПользователей.ГруппаПользователей = НастройкиПрав.Пользователь + ) + ) +#ИначеЕсли Не СтрСодержит(&ВсеВидыДоступаКромеСпециальных, ",#Параметр(24),") #Тогда + // Когда параметр задан неверно, вставляется строка, чтобы вызвать ошибку сборки ограничения доступа. + #Если СтрСодержит("#Параметр(24)", ",") #Тогда + НеверныйВидДоступа: "#Параметр(24)" - "Список имен видов доступа не найден" + #Иначе + НеверныйВидДоступа: "#Параметр(24)" - "Имя вида доступа не найдено" + #КонецЕсли +#ИначеЕсли &ВидыДоступаСОтключеннымИспользованием <> "Все" + И Не СтрСодержит(&ВидыДоступаСОтключеннымИспользованием, ",#Параметр(24),") #Тогда + + ( + ЕСТЬNULL(#Параметр(25), НЕОПРЕДЕЛЕНО) <> НЕОПРЕДЕЛЕНО + И + #Если (Не СтрСодержит(&ВидыДоступаСОтключеннымИспользованием, ",Пользователи,") И СтрСодержит(",#Параметр(24),", ",Пользователи,")) + Или (Не СтрСодержит(&ВидыДоступаСОтключеннымИспользованием, ",ВнешниеПользователи,") И СтрСодержит(",#Параметр(24),", ",ВнешниеПользователи,")) #Тогда + НЕ + ( + НЕ ИСТИНА В + ( + ВЫБРАТЬ ПЕРВЫЕ 1 ИСТИНА + ИЗ РегистрСведений.ГруппыЗначенийДоступа КАК ГруппыЗначенийДоступа + ГДЕ + ГруппыЗначенийДоступа.ЗначениеДоступа = #Параметр(25) + И ГруппыЗначенийДоступа.ГруппаЗначенийДоступа = &АвторизованныйПользователь + ) + И НЕ + #Иначе + ( + #КонецЕсли + ВЫБОР + КОГДА ИСТИНА В + ( + #Если СтрСодержит(&ВидыДоступаБезГруппДляЗначенияДоступа, ",#Параметр(24),") #Тогда + ВЫБРАТЬ ПЕРВЫЕ 1 ИСТИНА + ИЗ РегистрСведений.ЗначенияГруппДоступа КАК Значения + ГДЕ + Значения.ГруппаДоступа = ГруппыДоступа.Ссылка + И Значения.ЗначениеДоступа = #Параметр(25) + #ИначеЕсли "#Параметр(25)" = "Т.Ссылка" + И "#Параметр(24)" <> "Пользователи" + И "#Параметр(24)" <> "ВнешниеПользователи" #Тогда + #Если СтрСодержит("#Параметр(24)", ",") #Тогда + // Когда параметр задан неверно, вставляется строка, чтобы вызвать ошибку сборки ограничения доступа. + НеверныйВидДоступа: "#Параметр(24)" - "При проверке таблицы значения доступа можно указывать только один вид доступа" + #ИначеЕсли СтрСодержит(&ВидыДоступаСОднойГруппойДляЗначенияДоступа, ",#Параметр(24),") #Тогда + ВЫБРАТЬ ПЕРВЫЕ 1 ИСТИНА + ИЗ РегистрСведений.ЗначенияГруппДоступа КАК Значения + ГДЕ + Значения.ГруппаДоступа = ГруппыДоступа.Ссылка + И Значения.ЗначениеДоступа = Т.ГруппаДоступа + #Иначе // Значения доступа, для которых можно указать несколько групп значений доступа. + ВЫБРАТЬ ПЕРВЫЕ 1 ИСТИНА + ИЗ РегистрСведений.ЗначенияГруппДоступа КАК Значения + ВНУТРЕННЕЕ СОЕДИНЕНИЕ #Параметр(1).ГруппыДоступа КАК ГруппыЗначений + ПО + Значения.ГруппаДоступа = ГруппыДоступа.Ссылка + И Значения.ЗначениеДоступа = ГруппыЗначений.ГруппаДоступа + И ГруппыЗначений.Ссылка = #Параметр(25) + #КонецЕсли + #Иначе + ВЫБРАТЬ ПЕРВЫЕ 1 ИСТИНА + ИЗ РегистрСведений.ЗначенияГруппДоступа КАК Значения + ВНУТРЕННЕЕ СОЕДИНЕНИЕ РегистрСведений.ГруппыЗначенийДоступа КАК ГруппыЗначений + ПО + Значения.ГруппаДоступа = ГруппыДоступа.Ссылка + И Значения.ЗначениеДоступа = ГруппыЗначений.ГруппаЗначенийДоступа + И ГруппыЗначений.ЗначениеДоступа = #Параметр(25) + #КонецЕсли + ) + ТОГДА ИСТИНА + ИНАЧЕ ЛОЖЬ + КОНЕЦ + = + ВЫБОР + КОГДА ИСТИНА В + ( + ВЫБРАТЬ ПЕРВЫЕ 1 ИСТИНА + ИЗ РегистрСведений.ЗначенияГруппДоступаПоУмолчанию КАК ЗначенияПоУмолчанию + ГДЕ + ЗначенияПоУмолчанию.ГруппаДоступа = ГруппыДоступа.Ссылка + И ТИПЗНАЧЕНИЯ(ЗначенияПоУмолчанию.ТипЗначенийДоступа) = ТИПЗНАЧЕНИЯ(#Параметр(25)) + И ЗначенияПоУмолчанию.ВсеРазрешены = ЛОЖЬ + ) + ТОГДА ИСТИНА + ИНАЧЕ ЛОЖЬ + КОНЕЦ + ) + ) +#Иначе + ЕСТЬNULL(#Параметр(25), НЕОПРЕДЕЛЕНО) <> НЕОПРЕДЕЛЕНО +#КонецЕсли + + #Параметр(26) // [)[)][)]...] [ИЛИ|И] [([(][(]...] оператор И/ИЛИ с/без скобок. + +//// Проверка значения поля группы параметров 8. +#Если "#Параметр(27)" = "" И "#Параметр(28)" = "" #Тогда + // Группа параметров не используется. +#ИначеЕсли &ОграничениеДоступаНаУровнеЗаписейИспользуется И ("#Параметр(27)" = "Условие" Или "#Параметр(27)" = "") #Тогда + // Когда имя вида доступа "Условие" (или ""), тогда вместо имени поля задано условие. + ( #Параметр(28) ) +#ИначеЕсли "#Параметр(27)" = "ПравоЧтения" Или "#Параметр(27)" = "ПравоИзменения" #Тогда + #Параметр(28) <> НЕОПРЕДЕЛЕНО + И ИСТИНА В + ( // Проверка права пользователя на таблицу Значения, установленного в поле. + ВЫБРАТЬ ПЕРВЫЕ 1 ИСТИНА + ИЗ РегистрСведений.ТаблицыГруппДоступа КАК ТаблицыГруппДоступаПроверкаПрава + ГДЕ + ТаблицыГруппДоступаПроверкаПрава.ГруппаДоступа = ГруппыДоступа.Ссылка + И ТИПЗНАЧЕНИЯ(ТаблицыГруппДоступаПроверкаПрава.ТипТаблицы) = ТИПЗНАЧЕНИЯ(#Параметр(28)) + #Если Не "#Параметр(27)" = "ПравоЧтения" #Тогда + И ТаблицыГруппДоступаПроверкаПрава.ПравоИзменение + #КонецЕсли + ) +#ИначеЕсли "#Параметр(27)" = "ПравоЧтенияПоИдентификатору" Или "#Параметр(27)" = "ПравоИзмененияПоИдентификатору" #Тогда + ИСТИНА В + ( // Проверка права пользователя на таблицу, идентификатор которой указан в Значении, установленном в поле. + ВЫБРАТЬ ПЕРВЫЕ 1 ИСТИНА + ИЗ РегистрСведений.ТаблицыГруппДоступа КАК ТаблицыГруппДоступаПроверкаПрава + ГДЕ + ТаблицыГруппДоступаПроверкаПрава.ГруппаДоступа = ГруппыДоступа.Ссылка + И ТаблицыГруппДоступаПроверкаПрава.Таблица = #Параметр(28) + #Если Не "#Параметр(27)" = "ПравоЧтенияПоИдентификатору" #Тогда + И ТаблицыГруппДоступаПроверкаПрава.ПравоИзменение + #КонецЕсли + ) +#ИначеЕсли Не &ОграничениеДоступаНаУровнеЗаписейИспользуется #Тогда + ИСТИНА // Группа параметров отключена. +#ИначеЕсли "#Параметр(27)" = "НастройкиПрав" #Тогда + + ( + ИСТИНА В // Проверка, что пользователю или какой-нибудь группе пользователя право разрешено + ( + ВЫБРАТЬ ПЕРВЫЕ 1 ИСТИНА + ИЗ РегистрСведений.НастройкиПравОбъектов КАК НастройкиПрав + ВНУТРЕННЕЕ СОЕДИНЕНИЕ РегистрСведений.НаследованиеНастроекПравОбъектов КАК НаследованиеНастроек + ПО + НаследованиеНастроек.Объект = #Параметр(28) + И НастройкиПрав.Объект = НаследованиеНастроек.Родитель + #Если #ИмяТекущегоПраваДоступа = "Чтение" #Тогда + И НаследованиеНастроек.УровеньИспользования < НастройкиПрав.УровеньРазрешенияЧтения + #Иначе + #Если СтрСодержит(&ТаблицыСОтдельнымиНастройкамиПрав, "|#Параметр(1);") #Тогда + И НастройкиПрав.Таблица = СвойстваТекущейТаблицы.Ссылка + #Иначе + И НастройкиПрав.Таблица = ЗНАЧЕНИЕ(Справочник.ИдентификаторыОбъектовМетаданных.ПустаяСсылка) + #КонецЕсли + И НаследованиеНастроек.УровеньИспользования < НастройкиПрав.УровеньРазрешенияИзменения + #КонецЕсли + ВНУТРЕННЕЕ СОЕДИНЕНИЕ РегистрСведений.СоставыГруппПользователей КАК СоставыГруппПользователей + ПО + СоставыГруппПользователей.Пользователь = &АвторизованныйПользователь + И СоставыГруппПользователей.ГруппаПользователей = НастройкиПрав.Пользователь + ) + И НЕ ЛОЖЬ В // Проверка, что пользователю или какой-нибудь группе пользователя право запрещено. + ( + ВЫБРАТЬ ПЕРВЫЕ 1 ЛОЖЬ + ИЗ РегистрСведений.НастройкиПравОбъектов КАК НастройкиПрав + ВНУТРЕННЕЕ СОЕДИНЕНИЕ РегистрСведений.НаследованиеНастроекПравОбъектов КАК НаследованиеНастроек + ПО + НаследованиеНастроек.Объект = #Параметр(28) + И НастройкиПрав.Объект = НаследованиеНастроек.Родитель + #Если #ИмяТекущегоПраваДоступа = "Чтение" #Тогда + И НаследованиеНастроек.УровеньИспользования < НастройкиПрав.УровеньЗапрещенияЧтения + #Иначе + #Если СтрСодержит(&ТаблицыСОтдельнымиНастройкамиПрав, "|#Параметр(1);") #Тогда + И НастройкиПрав.Таблица = СвойстваТекущейТаблицы.Ссылка + #Иначе + И НастройкиПрав.Таблица = ЗНАЧЕНИЕ(Справочник.ИдентификаторыОбъектовМетаданных.ПустаяСсылка) + #КонецЕсли + И НаследованиеНастроек.УровеньИспользования < НастройкиПрав.УровеньЗапрещенияИзменения + #КонецЕсли + ВНУТРЕННЕЕ СОЕДИНЕНИЕ РегистрСведений.СоставыГруппПользователей КАК СоставыГруппПользователей + ПО + СоставыГруппПользователей.Пользователь = &АвторизованныйПользователь + И СоставыГруппПользователей.ГруппаПользователей = НастройкиПрав.Пользователь + ) + ) +#ИначеЕсли Не СтрСодержит(&ВсеВидыДоступаКромеСпециальных, ",#Параметр(27),") #Тогда + // Когда параметр задан неверно, вставляется строка, чтобы вызвать ошибку сборки ограничения доступа. + #Если СтрСодержит("#Параметр(27)", ",") #Тогда + НеверныйВидДоступа: "#Параметр(27)" - "Список имен видов доступа не найден" + #Иначе + НеверныйВидДоступа: "#Параметр(27)" - "Имя вида доступа не найдено" + #КонецЕсли +#ИначеЕсли &ВидыДоступаСОтключеннымИспользованием <> "Все" + И Не СтрСодержит(&ВидыДоступаСОтключеннымИспользованием, ",#Параметр(27),") #Тогда + + ( + ЕСТЬNULL(#Параметр(28), НЕОПРЕДЕЛЕНО) <> НЕОПРЕДЕЛЕНО + И + #Если (Не СтрСодержит(&ВидыДоступаСОтключеннымИспользованием, ",Пользователи,") И СтрСодержит(",#Параметр(27),", ",Пользователи,")) + Или (Не СтрСодержит(&ВидыДоступаСОтключеннымИспользованием, ",ВнешниеПользователи,") И СтрСодержит(",#Параметр(27),", ",ВнешниеПользователи,")) #Тогда + НЕ + ( + НЕ ИСТИНА В + ( + ВЫБРАТЬ ПЕРВЫЕ 1 ИСТИНА + ИЗ РегистрСведений.ГруппыЗначенийДоступа КАК ГруппыЗначенийДоступа + ГДЕ + ГруппыЗначенийДоступа.ЗначениеДоступа = #Параметр(28) + И ГруппыЗначенийДоступа.ГруппаЗначенийДоступа = &АвторизованныйПользователь + ) + И НЕ + #Иначе + ( + #КонецЕсли + ВЫБОР + КОГДА ИСТИНА В + ( + #Если СтрСодержит(&ВидыДоступаБезГруппДляЗначенияДоступа, ",#Параметр(27),") #Тогда + ВЫБРАТЬ ПЕРВЫЕ 1 ИСТИНА + ИЗ РегистрСведений.ЗначенияГруппДоступа КАК Значения + ГДЕ + Значения.ГруппаДоступа = ГруппыДоступа.Ссылка + И Значения.ЗначениеДоступа = #Параметр(28) + #ИначеЕсли "#Параметр(28)" = "Т.Ссылка" + И "#Параметр(27)" <> "Пользователи" + И "#Параметр(27)" <> "ВнешниеПользователи" #Тогда + #Если СтрСодержит("#Параметр(27)", ",") #Тогда + // Когда параметр задан неверно, вставляется строка, чтобы вызвать ошибку сборки ограничения доступа. + НеверныйВидДоступа: "#Параметр(27)" - "При проверке таблицы значения доступа можно указывать только один вид доступа" + #ИначеЕсли СтрСодержит(&ВидыДоступаСОднойГруппойДляЗначенияДоступа, ",#Параметр(27),") #Тогда + ВЫБРАТЬ ПЕРВЫЕ 1 ИСТИНА + ИЗ РегистрСведений.ЗначенияГруппДоступа КАК Значения + ГДЕ + Значения.ГруппаДоступа = ГруппыДоступа.Ссылка + И Значения.ЗначениеДоступа = Т.ГруппаДоступа + #Иначе // Значения доступа, для которых можно указать несколько групп значений доступа. + ВЫБРАТЬ ПЕРВЫЕ 1 ИСТИНА + ИЗ РегистрСведений.ЗначенияГруппДоступа КАК Значения + ВНУТРЕННЕЕ СОЕДИНЕНИЕ #Параметр(1).ГруппыДоступа КАК ГруппыЗначений + ПО + Значения.ГруппаДоступа = ГруппыДоступа.Ссылка + И Значения.ЗначениеДоступа = ГруппыЗначений.ГруппаДоступа + И ГруппыЗначений.Ссылка = #Параметр(28) + #КонецЕсли + #Иначе + ВЫБРАТЬ ПЕРВЫЕ 1 ИСТИНА + ИЗ РегистрСведений.ЗначенияГруппДоступа КАК Значения + ВНУТРЕННЕЕ СОЕДИНЕНИЕ РегистрСведений.ГруппыЗначенийДоступа КАК ГруппыЗначений + ПО + Значения.ГруппаДоступа = ГруппыДоступа.Ссылка + И Значения.ЗначениеДоступа = ГруппыЗначений.ГруппаЗначенийДоступа + И ГруппыЗначений.ЗначениеДоступа = #Параметр(28) + #КонецЕсли + ) + ТОГДА ИСТИНА + ИНАЧЕ ЛОЖЬ + КОНЕЦ + = + ВЫБОР + КОГДА ИСТИНА В + ( + ВЫБРАТЬ ПЕРВЫЕ 1 ИСТИНА + ИЗ РегистрСведений.ЗначенияГруппДоступаПоУмолчанию КАК ЗначенияПоУмолчанию + ГДЕ + ЗначенияПоУмолчанию.ГруппаДоступа = ГруппыДоступа.Ссылка + И ТИПЗНАЧЕНИЯ(ЗначенияПоУмолчанию.ТипЗначенийДоступа) = ТИПЗНАЧЕНИЯ(#Параметр(28)) + И ЗначенияПоУмолчанию.ВсеРазрешены = ЛОЖЬ + ) + ТОГДА ИСТИНА + ИНАЧЕ ЛОЖЬ + КОНЕЦ + ) + ) +#Иначе + ЕСТЬNULL(#Параметр(28), НЕОПРЕДЕЛЕНО) <> НЕОПРЕДЕЛЕНО +#КонецЕсли + + #Параметр(29) // [)[)][)]...] [ИЛИ|И] [([(][(]...] оператор И/ИЛИ с/без скобок. + +//// Проверка значения поля группы параметров 9. +#Если "#Параметр(30)" = "" И "#Параметр(31)" = "" #Тогда + // Группа параметров не используется. +#ИначеЕсли &ОграничениеДоступаНаУровнеЗаписейИспользуется И ("#Параметр(30)" = "Условие" Или "#Параметр(30)" = "") #Тогда + // Когда имя вида доступа "Условие" (или ""), тогда вместо имени поля задано условие. + ( #Параметр(31) ) +#ИначеЕсли "#Параметр(30)" = "ПравоЧтения" Или "#Параметр(30)" = "ПравоИзменения" #Тогда + #Параметр(31) <> НЕОПРЕДЕЛЕНО + И ИСТИНА В + ( // Проверка права пользователя на таблицу Значения, установленного в поле. + ВЫБРАТЬ ПЕРВЫЕ 1 ИСТИНА + ИЗ РегистрСведений.ТаблицыГруппДоступа КАК ТаблицыГруппДоступаПроверкаПрава + ГДЕ + ТаблицыГруппДоступаПроверкаПрава.ГруппаДоступа = ГруппыДоступа.Ссылка + И ТИПЗНАЧЕНИЯ(ТаблицыГруппДоступаПроверкаПрава.ТипТаблицы) = ТИПЗНАЧЕНИЯ(#Параметр(31)) + #Если Не "#Параметр(30)" = "ПравоЧтения" #Тогда + И ТаблицыГруппДоступаПроверкаПрава.ПравоИзменение + #КонецЕсли + ) +#ИначеЕсли "#Параметр(30)" = "ПравоЧтенияПоИдентификатору" Или "#Параметр(30)" = "ПравоИзмененияПоИдентификатору" #Тогда + ИСТИНА В + ( // Проверка права пользователя на таблицу, идентификатор которой указан в Значении, установленном в поле. + ВЫБРАТЬ ПЕРВЫЕ 1 ИСТИНА + ИЗ РегистрСведений.ТаблицыГруппДоступа КАК ТаблицыГруппДоступаПроверкаПрава + ГДЕ + ТаблицыГруппДоступаПроверкаПрава.ГруппаДоступа = ГруппыДоступа.Ссылка + И ТаблицыГруппДоступаПроверкаПрава.Таблица = #Параметр(31) + #Если Не "#Параметр(30)" = "ПравоЧтенияПоИдентификатору" #Тогда + И ТаблицыГруппДоступаПроверкаПрава.ПравоИзменение + #КонецЕсли + ) +#ИначеЕсли Не &ОграничениеДоступаНаУровнеЗаписейИспользуется #Тогда + ИСТИНА // Группа параметров отключена. +#ИначеЕсли "#Параметр(30)" = "НастройкиПрав" #Тогда + + ( + ИСТИНА В // Проверка, что пользователю или какой-нибудь группе пользователя право разрешено + ( + ВЫБРАТЬ ПЕРВЫЕ 1 ИСТИНА + ИЗ РегистрСведений.НастройкиПравОбъектов КАК НастройкиПрав + ВНУТРЕННЕЕ СОЕДИНЕНИЕ РегистрСведений.НаследованиеНастроекПравОбъектов КАК НаследованиеНастроек + ПО + НаследованиеНастроек.Объект = #Параметр(31) + И НастройкиПрав.Объект = НаследованиеНастроек.Родитель + #Если #ИмяТекущегоПраваДоступа = "Чтение" #Тогда + И НаследованиеНастроек.УровеньИспользования < НастройкиПрав.УровеньРазрешенияЧтения + #Иначе + #Если СтрСодержит(&ТаблицыСОтдельнымиНастройкамиПрав, "|#Параметр(1);") #Тогда + И НастройкиПрав.Таблица = СвойстваТекущейТаблицы.Ссылка + #Иначе + И НастройкиПрав.Таблица = ЗНАЧЕНИЕ(Справочник.ИдентификаторыОбъектовМетаданных.ПустаяСсылка) + #КонецЕсли + И НаследованиеНастроек.УровеньИспользования < НастройкиПрав.УровеньРазрешенияИзменения + #КонецЕсли + ВНУТРЕННЕЕ СОЕДИНЕНИЕ РегистрСведений.СоставыГруппПользователей КАК СоставыГруппПользователей + ПО + СоставыГруппПользователей.Пользователь = &АвторизованныйПользователь + И СоставыГруппПользователей.ГруппаПользователей = НастройкиПрав.Пользователь + ) + И НЕ ЛОЖЬ В // Проверка, что пользователю или какой-нибудь группе пользователя право запрещено. + ( + ВЫБРАТЬ ПЕРВЫЕ 1 ЛОЖЬ + ИЗ РегистрСведений.НастройкиПравОбъектов КАК НастройкиПрав + ВНУТРЕННЕЕ СОЕДИНЕНИЕ РегистрСведений.НаследованиеНастроекПравОбъектов КАК НаследованиеНастроек + ПО + НаследованиеНастроек.Объект = #Параметр(31) + И НастройкиПрав.Объект = НаследованиеНастроек.Родитель + #Если #ИмяТекущегоПраваДоступа = "Чтение" #Тогда + И НаследованиеНастроек.УровеньИспользования < НастройкиПрав.УровеньЗапрещенияЧтения + #Иначе + #Если СтрСодержит(&ТаблицыСОтдельнымиНастройкамиПрав, "|#Параметр(1);") #Тогда + И НастройкиПрав.Таблица = СвойстваТекущейТаблицы.Ссылка + #Иначе + И НастройкиПрав.Таблица = ЗНАЧЕНИЕ(Справочник.ИдентификаторыОбъектовМетаданных.ПустаяСсылка) + #КонецЕсли + И НаследованиеНастроек.УровеньИспользования < НастройкиПрав.УровеньЗапрещенияИзменения + #КонецЕсли + ВНУТРЕННЕЕ СОЕДИНЕНИЕ РегистрСведений.СоставыГруппПользователей КАК СоставыГруппПользователей + ПО + СоставыГруппПользователей.Пользователь = &АвторизованныйПользователь + И СоставыГруппПользователей.ГруппаПользователей = НастройкиПрав.Пользователь + ) + ) +#ИначеЕсли Не СтрСодержит(&ВсеВидыДоступаКромеСпециальных, ",#Параметр(30),") #Тогда + // Когда параметр задан неверно, вставляется строка, чтобы вызвать ошибку сборки ограничения доступа. + #Если СтрСодержит("#Параметр(30)", ",") #Тогда + НеверныйВидДоступа: "#Параметр(30)" - "Список имен видов доступа не найден" + #Иначе + НеверныйВидДоступа: "#Параметр(30)" - "Имя вида доступа не найдено" + #КонецЕсли +#ИначеЕсли &ВидыДоступаСОтключеннымИспользованием <> "Все" + И Не СтрСодержит(&ВидыДоступаСОтключеннымИспользованием, ",#Параметр(30),") #Тогда + + ( + ЕСТЬNULL(#Параметр(31), НЕОПРЕДЕЛЕНО) <> НЕОПРЕДЕЛЕНО + И + #Если (Не СтрСодержит(&ВидыДоступаСОтключеннымИспользованием, ",Пользователи,") И СтрСодержит(",#Параметр(30),", ",Пользователи,")) + Или (Не СтрСодержит(&ВидыДоступаСОтключеннымИспользованием, ",ВнешниеПользователи,") И СтрСодержит(",#Параметр(30),", ",ВнешниеПользователи,")) #Тогда + НЕ + ( + НЕ ИСТИНА В + ( + ВЫБРАТЬ ПЕРВЫЕ 1 ИСТИНА + ИЗ РегистрСведений.ГруппыЗначенийДоступа КАК ГруппыЗначенийДоступа + ГДЕ + ГруппыЗначенийДоступа.ЗначениеДоступа = #Параметр(31) + И ГруппыЗначенийДоступа.ГруппаЗначенийДоступа = &АвторизованныйПользователь + ) + И НЕ + #Иначе + ( + #КонецЕсли + ВЫБОР + КОГДА ИСТИНА В + ( + #Если СтрСодержит(&ВидыДоступаБезГруппДляЗначенияДоступа, ",#Параметр(30),") #Тогда + ВЫБРАТЬ ПЕРВЫЕ 1 ИСТИНА + ИЗ РегистрСведений.ЗначенияГруппДоступа КАК Значения + ГДЕ + Значения.ГруппаДоступа = ГруппыДоступа.Ссылка + И Значения.ЗначениеДоступа = #Параметр(31) + #ИначеЕсли "#Параметр(31)" = "Т.Ссылка" + И "#Параметр(30)" <> "Пользователи" + И "#Параметр(30)" <> "ВнешниеПользователи" #Тогда + #Если СтрСодержит("#Параметр(30)", ",") #Тогда + // Когда параметр задан неверно, вставляется строка, чтобы вызвать ошибку сборки ограничения доступа. + НеверныйВидДоступа: "#Параметр(30)" - "При проверке таблицы значения доступа можно указывать только один вид доступа" + #ИначеЕсли СтрСодержит(&ВидыДоступаСОднойГруппойДляЗначенияДоступа, ",#Параметр(30),") #Тогда + ВЫБРАТЬ ПЕРВЫЕ 1 ИСТИНА + ИЗ РегистрСведений.ЗначенияГруппДоступа КАК Значения + ГДЕ + Значения.ГруппаДоступа = ГруппыДоступа.Ссылка + И Значения.ЗначениеДоступа = Т.ГруппаДоступа + #Иначе // Значения доступа, для которых можно указать несколько групп значений доступа. + ВЫБРАТЬ ПЕРВЫЕ 1 ИСТИНА + ИЗ РегистрСведений.ЗначенияГруппДоступа КАК Значения + ВНУТРЕННЕЕ СОЕДИНЕНИЕ #Параметр(1).ГруппыДоступа КАК ГруппыЗначений + ПО + Значения.ГруппаДоступа = ГруппыДоступа.Ссылка + И Значения.ЗначениеДоступа = ГруппыЗначений.ГруппаДоступа + И ГруппыЗначений.Ссылка = #Параметр(31) + #КонецЕсли + #Иначе + ВЫБРАТЬ ПЕРВЫЕ 1 ИСТИНА + ИЗ РегистрСведений.ЗначенияГруппДоступа КАК Значения + ВНУТРЕННЕЕ СОЕДИНЕНИЕ РегистрСведений.ГруппыЗначенийДоступа КАК ГруппыЗначений + ПО + Значения.ГруппаДоступа = ГруппыДоступа.Ссылка + И Значения.ЗначениеДоступа = ГруппыЗначений.ГруппаЗначенийДоступа + И ГруппыЗначений.ЗначениеДоступа = #Параметр(31) + #КонецЕсли + ) + ТОГДА ИСТИНА + ИНАЧЕ ЛОЖЬ + КОНЕЦ + = + ВЫБОР + КОГДА ИСТИНА В + ( + ВЫБРАТЬ ПЕРВЫЕ 1 ИСТИНА + ИЗ РегистрСведений.ЗначенияГруппДоступаПоУмолчанию КАК ЗначенияПоУмолчанию + ГДЕ + ЗначенияПоУмолчанию.ГруппаДоступа = ГруппыДоступа.Ссылка + И ТИПЗНАЧЕНИЯ(ЗначенияПоУмолчанию.ТипЗначенийДоступа) = ТИПЗНАЧЕНИЯ(#Параметр(31)) + И ЗначенияПоУмолчанию.ВсеРазрешены = ЛОЖЬ + ) + ТОГДА ИСТИНА + ИНАЧЕ ЛОЖЬ + КОНЕЦ + ) + ) +#Иначе + ЕСТЬNULL(#Параметр(31), НЕОПРЕДЕЛЕНО) <> НЕОПРЕДЕЛЕНО +#КонецЕсли + + #Параметр(32) // [)[)][)]...] [ИЛИ|И] [([(][(]...] оператор И/ИЛИ с/без скобок. + +//// Проверка значения поля группы параметров 10. +#Если "#Параметр(33)" = "" И "#Параметр(34)" = "" #Тогда + // Группа параметров не используется. +#ИначеЕсли &ОграничениеДоступаНаУровнеЗаписейИспользуется И ("#Параметр(33)" = "Условие" Или "#Параметр(33)" = "") #Тогда + // Когда имя вида доступа "Условие" (или ""), тогда вместо имени поля задано условие. + ( #Параметр(34) ) +#ИначеЕсли "#Параметр(33)" = "ПравоЧтения" Или "#Параметр(33)" = "ПравоИзменения" #Тогда + #Параметр(34) <> НЕОПРЕДЕЛЕНО + И ИСТИНА В + ( // Проверка права пользователя на таблицу Значения, установленного в поле. + ВЫБРАТЬ ПЕРВЫЕ 1 ИСТИНА + ИЗ РегистрСведений.ТаблицыГруппДоступа КАК ТаблицыГруппДоступаПроверкаПрава + ГДЕ + ТаблицыГруппДоступаПроверкаПрава.ГруппаДоступа = ГруппыДоступа.Ссылка + И ТИПЗНАЧЕНИЯ(ТаблицыГруппДоступаПроверкаПрава.ТипТаблицы) = ТИПЗНАЧЕНИЯ(#Параметр(34)) + #Если Не "#Параметр(33)" = "ПравоЧтения" #Тогда + И ТаблицыГруппДоступаПроверкаПрава.ПравоИзменение + #КонецЕсли + ) +#ИначеЕсли "#Параметр(33)" = "ПравоЧтенияПоИдентификатору" Или "#Параметр(33)" = "ПравоИзмененияПоИдентификатору" #Тогда + ИСТИНА В + ( // Проверка права пользователя на таблицу, идентификатор которой указан в Значении, установленном в поле. + ВЫБРАТЬ ПЕРВЫЕ 1 ИСТИНА + ИЗ РегистрСведений.ТаблицыГруппДоступа КАК ТаблицыГруппДоступаПроверкаПрава + ГДЕ + ТаблицыГруппДоступаПроверкаПрава.ГруппаДоступа = ГруппыДоступа.Ссылка + И ТаблицыГруппДоступаПроверкаПрава.Таблица = #Параметр(34) + #Если Не "#Параметр(33)" = "ПравоЧтенияПоИдентификатору" #Тогда + И ТаблицыГруппДоступаПроверкаПрава.ПравоИзменение + #КонецЕсли + ) +#ИначеЕсли Не &ОграничениеДоступаНаУровнеЗаписейИспользуется #Тогда + ИСТИНА // Группа параметров отключена. +#ИначеЕсли "#Параметр(33)" = "НастройкиПрав" #Тогда + + ( + ИСТИНА В // Проверка, что пользователю или какой-нибудь группе пользователя право разрешено + ( + ВЫБРАТЬ ПЕРВЫЕ 1 ИСТИНА + ИЗ РегистрСведений.НастройкиПравОбъектов КАК НастройкиПрав + ВНУТРЕННЕЕ СОЕДИНЕНИЕ РегистрСведений.НаследованиеНастроекПравОбъектов КАК НаследованиеНастроек + ПО + НаследованиеНастроек.Объект = #Параметр(34) + И НастройкиПрав.Объект = НаследованиеНастроек.Родитель + #Если #ИмяТекущегоПраваДоступа = "Чтение" #Тогда + И НаследованиеНастроек.УровеньИспользования < НастройкиПрав.УровеньРазрешенияЧтения + #Иначе + #Если СтрСодержит(&ТаблицыСОтдельнымиНастройкамиПрав, "|#Параметр(1);") #Тогда + И НастройкиПрав.Таблица = СвойстваТекущейТаблицы.Ссылка + #Иначе + И НастройкиПрав.Таблица = ЗНАЧЕНИЕ(Справочник.ИдентификаторыОбъектовМетаданных.ПустаяСсылка) + #КонецЕсли + И НаследованиеНастроек.УровеньИспользования < НастройкиПрав.УровеньРазрешенияИзменения + #КонецЕсли + ВНУТРЕННЕЕ СОЕДИНЕНИЕ РегистрСведений.СоставыГруппПользователей КАК СоставыГруппПользователей + ПО + СоставыГруппПользователей.Пользователь = &АвторизованныйПользователь + И СоставыГруппПользователей.ГруппаПользователей = НастройкиПрав.Пользователь + ) + И НЕ ЛОЖЬ В // Проверка, что пользователю или какой-нибудь группе пользователя право запрещено. + ( + ВЫБРАТЬ ПЕРВЫЕ 1 ЛОЖЬ + ИЗ РегистрСведений.НастройкиПравОбъектов КАК НастройкиПрав + ВНУТРЕННЕЕ СОЕДИНЕНИЕ РегистрСведений.НаследованиеНастроекПравОбъектов КАК НаследованиеНастроек + ПО + НаследованиеНастроек.Объект = #Параметр(34) + И НастройкиПрав.Объект = НаследованиеНастроек.Родитель + #Если #ИмяТекущегоПраваДоступа = "Чтение" #Тогда + И НаследованиеНастроек.УровеньИспользования < НастройкиПрав.УровеньЗапрещенияЧтения + #Иначе + #Если СтрСодержит(&ТаблицыСОтдельнымиНастройкамиПрав, "|#Параметр(1);") #Тогда + И НастройкиПрав.Таблица = СвойстваТекущейТаблицы.Ссылка + #Иначе + И НастройкиПрав.Таблица = ЗНАЧЕНИЕ(Справочник.ИдентификаторыОбъектовМетаданных.ПустаяСсылка) + #КонецЕсли + И НаследованиеНастроек.УровеньИспользования < НастройкиПрав.УровеньЗапрещенияИзменения + #КонецЕсли + ВНУТРЕННЕЕ СОЕДИНЕНИЕ РегистрСведений.СоставыГруппПользователей КАК СоставыГруппПользователей + ПО + СоставыГруппПользователей.Пользователь = &АвторизованныйПользователь + И СоставыГруппПользователей.ГруппаПользователей = НастройкиПрав.Пользователь + ) + ) +#ИначеЕсли Не СтрСодержит(&ВсеВидыДоступаКромеСпециальных, ",#Параметр(33),") #Тогда + // Когда параметр задан неверно, вставляется строка, чтобы вызвать ошибку сборки ограничения доступа. + #Если СтрСодержит("#Параметр(33)", ",") #Тогда + НеверныйВидДоступа: "#Параметр(33)" - "Список имен видов доступа не найден" + #Иначе + НеверныйВидДоступа: "#Параметр(33)" - "Имя вида доступа не найдено" + #КонецЕсли +#ИначеЕсли &ВидыДоступаСОтключеннымИспользованием <> "Все" + И Не СтрСодержит(&ВидыДоступаСОтключеннымИспользованием, ",#Параметр(33),") #Тогда + + ( + ЕСТЬNULL(#Параметр(34), НЕОПРЕДЕЛЕНО) <> НЕОПРЕДЕЛЕНО + И + #Если (Не СтрСодержит(&ВидыДоступаСОтключеннымИспользованием, ",Пользователи,") И СтрСодержит(",#Параметр(33),", ",Пользователи,")) + Или (Не СтрСодержит(&ВидыДоступаСОтключеннымИспользованием, ",ВнешниеПользователи,") И СтрСодержит(",#Параметр(33),", ",ВнешниеПользователи,")) #Тогда + НЕ + ( + НЕ ИСТИНА В + ( + ВЫБРАТЬ ПЕРВЫЕ 1 ИСТИНА + ИЗ РегистрСведений.ГруппыЗначенийДоступа КАК ГруппыЗначенийДоступа + ГДЕ + ГруппыЗначенийДоступа.ЗначениеДоступа = #Параметр(34) + И ГруппыЗначенийДоступа.ГруппаЗначенийДоступа = &АвторизованныйПользователь + ) + И НЕ + #Иначе + ( + #КонецЕсли + ВЫБОР + КОГДА ИСТИНА В + ( + #Если СтрСодержит(&ВидыДоступаБезГруппДляЗначенияДоступа, ",#Параметр(33),") #Тогда + ВЫБРАТЬ ПЕРВЫЕ 1 ИСТИНА + ИЗ РегистрСведений.ЗначенияГруппДоступа КАК Значения + ГДЕ + Значения.ГруппаДоступа = ГруппыДоступа.Ссылка + И Значения.ЗначениеДоступа = #Параметр(34) + #ИначеЕсли "#Параметр(34)" = "Т.Ссылка" + И "#Параметр(33)" <> "Пользователи" + И "#Параметр(33)" <> "ВнешниеПользователи" #Тогда + #Если СтрСодержит("#Параметр(33)", ",") #Тогда + // Когда параметр задан неверно, вставляется строка, чтобы вызвать ошибку сборки ограничения доступа. + НеверныйВидДоступа: "#Параметр(33)" - "При проверке таблицы значения доступа можно указывать только один вид доступа" + #ИначеЕсли СтрСодержит(&ВидыДоступаСОднойГруппойДляЗначенияДоступа, ",#Параметр(33),") #Тогда + ВЫБРАТЬ ПЕРВЫЕ 1 ИСТИНА + ИЗ РегистрСведений.ЗначенияГруппДоступа КАК Значения + ГДЕ + Значения.ГруппаДоступа = ГруппыДоступа.Ссылка + И Значения.ЗначениеДоступа = Т.ГруппаДоступа + #Иначе // Значения доступа, для которых можно указать несколько групп значений доступа. + ВЫБРАТЬ ПЕРВЫЕ 1 ИСТИНА + ИЗ РегистрСведений.ЗначенияГруппДоступа КАК Значения + ВНУТРЕННЕЕ СОЕДИНЕНИЕ #Параметр(1).ГруппыДоступа КАК ГруппыЗначений + ПО + Значения.ГруппаДоступа = ГруппыДоступа.Ссылка + И Значения.ЗначениеДоступа = ГруппыЗначений.ГруппаДоступа + И ГруппыЗначений.Ссылка = #Параметр(34) + #КонецЕсли + #Иначе + ВЫБРАТЬ ПЕРВЫЕ 1 ИСТИНА + ИЗ РегистрСведений.ЗначенияГруппДоступа КАК Значения + ВНУТРЕННЕЕ СОЕДИНЕНИЕ РегистрСведений.ГруппыЗначенийДоступа КАК ГруппыЗначений + ПО + Значения.ГруппаДоступа = ГруппыДоступа.Ссылка + И Значения.ЗначениеДоступа = ГруппыЗначений.ГруппаЗначенийДоступа + И ГруппыЗначений.ЗначениеДоступа = #Параметр(34) + #КонецЕсли + ) + ТОГДА ИСТИНА + ИНАЧЕ ЛОЖЬ + КОНЕЦ + = + ВЫБОР + КОГДА ИСТИНА В + ( + ВЫБРАТЬ ПЕРВЫЕ 1 ИСТИНА + ИЗ РегистрСведений.ЗначенияГруппДоступаПоУмолчанию КАК ЗначенияПоУмолчанию + ГДЕ + ЗначенияПоУмолчанию.ГруппаДоступа = ГруппыДоступа.Ссылка + И ТИПЗНАЧЕНИЯ(ЗначенияПоУмолчанию.ТипЗначенийДоступа) = ТИПЗНАЧЕНИЯ(#Параметр(34)) + И ЗначенияПоУмолчанию.ВсеРазрешены = ЛОЖЬ + ) + ТОГДА ИСТИНА + ИНАЧЕ ЛОЖЬ + КОНЕЦ + ) + ) +#Иначе + ЕСТЬNULL(#Параметр(34), НЕОПРЕДЕЛЕНО) <> НЕОПРЕДЕЛЕНО +#КонецЕсли + + #Параметр(35) // [)[)][)]...] [ИЛИ|И] [([(][(]...] оператор И/ИЛИ с/без скобок. + +//// Проверка значения поля группы параметров 11. +#Если "#Параметр(36)" = "" И "#Параметр(37)" = "" #Тогда + // Группа параметров не используется. +#ИначеЕсли &ОграничениеДоступаНаУровнеЗаписейИспользуется И ("#Параметр(36)" = "Условие" Или "#Параметр(36)" = "") #Тогда + // Когда имя вида доступа "Условие" (или ""), тогда вместо имени поля задано условие. + ( #Параметр(37) ) +#ИначеЕсли "#Параметр(36)" = "ПравоЧтения" Или "#Параметр(36)" = "ПравоИзменения" #Тогда + #Параметр(37) <> НЕОПРЕДЕЛЕНО + И ИСТИНА В + ( // Проверка права пользователя на таблицу Значения, установленного в поле. + ВЫБРАТЬ ПЕРВЫЕ 1 ИСТИНА + ИЗ РегистрСведений.ТаблицыГруппДоступа КАК ТаблицыГруппДоступаПроверкаПрава + ГДЕ + ТаблицыГруппДоступаПроверкаПрава.ГруппаДоступа = ГруппыДоступа.Ссылка + И ТИПЗНАЧЕНИЯ(ТаблицыГруппДоступаПроверкаПрава.ТипТаблицы) = ТИПЗНАЧЕНИЯ(#Параметр(37)) + #Если Не "#Параметр(36)" = "ПравоЧтения" #Тогда + И ТаблицыГруппДоступаПроверкаПрава.ПравоИзменение + #КонецЕсли + ) +#ИначеЕсли "#Параметр(36)" = "ПравоЧтенияПоИдентификатору" Или "#Параметр(36)" = "ПравоИзмененияПоИдентификатору" #Тогда + ИСТИНА В + ( // Проверка права пользователя на таблицу, идентификатор которой указан в Значении, установленном в поле. + ВЫБРАТЬ ПЕРВЫЕ 1 ИСТИНА + ИЗ РегистрСведений.ТаблицыГруппДоступа КАК ТаблицыГруппДоступаПроверкаПрава + ГДЕ + ТаблицыГруппДоступаПроверкаПрава.ГруппаДоступа = ГруппыДоступа.Ссылка + И ТаблицыГруппДоступаПроверкаПрава.Таблица = #Параметр(37) + #Если Не "#Параметр(36)" = "ПравоЧтенияПоИдентификатору" #Тогда + И ТаблицыГруппДоступаПроверкаПрава.ПравоИзменение + #КонецЕсли + ) +#ИначеЕсли Не &ОграничениеДоступаНаУровнеЗаписейИспользуется #Тогда + ИСТИНА // Группа параметров отключена. +#ИначеЕсли "#Параметр(36)" = "НастройкиПрав" #Тогда + + ( + ИСТИНА В // Проверка, что пользователю или какой-нибудь группе пользователя право разрешено + ( + ВЫБРАТЬ ПЕРВЫЕ 1 ИСТИНА + ИЗ РегистрСведений.НастройкиПравОбъектов КАК НастройкиПрав + ВНУТРЕННЕЕ СОЕДИНЕНИЕ РегистрСведений.НаследованиеНастроекПравОбъектов КАК НаследованиеНастроек + ПО + НаследованиеНастроек.Объект = #Параметр(37) + И НастройкиПрав.Объект = НаследованиеНастроек.Родитель + #Если #ИмяТекущегоПраваДоступа = "Чтение" #Тогда + И НаследованиеНастроек.УровеньИспользования < НастройкиПрав.УровеньРазрешенияЧтения + #Иначе + #Если СтрСодержит(&ТаблицыСОтдельнымиНастройкамиПрав, "|#Параметр(1);") #Тогда + И НастройкиПрав.Таблица = СвойстваТекущейТаблицы.Ссылка + #Иначе + И НастройкиПрав.Таблица = ЗНАЧЕНИЕ(Справочник.ИдентификаторыОбъектовМетаданных.ПустаяСсылка) + #КонецЕсли + И НаследованиеНастроек.УровеньИспользования < НастройкиПрав.УровеньРазрешенияИзменения + #КонецЕсли + ВНУТРЕННЕЕ СОЕДИНЕНИЕ РегистрСведений.СоставыГруппПользователей КАК СоставыГруппПользователей + ПО + СоставыГруппПользователей.Пользователь = &АвторизованныйПользователь + И СоставыГруппПользователей.ГруппаПользователей = НастройкиПрав.Пользователь + ) + И НЕ ЛОЖЬ В // Проверка, что пользователю или какой-нибудь группе пользователя право запрещено. + ( + ВЫБРАТЬ ПЕРВЫЕ 1 ЛОЖЬ + ИЗ РегистрСведений.НастройкиПравОбъектов КАК НастройкиПрав + ВНУТРЕННЕЕ СОЕДИНЕНИЕ РегистрСведений.НаследованиеНастроекПравОбъектов КАК НаследованиеНастроек + ПО + НаследованиеНастроек.Объект = #Параметр(37) + И НастройкиПрав.Объект = НаследованиеНастроек.Родитель + #Если #ИмяТекущегоПраваДоступа = "Чтение" #Тогда + И НаследованиеНастроек.УровеньИспользования < НастройкиПрав.УровеньЗапрещенияЧтения + #Иначе + #Если СтрСодержит(&ТаблицыСОтдельнымиНастройкамиПрав, "|#Параметр(1);") #Тогда + И НастройкиПрав.Таблица = СвойстваТекущейТаблицы.Ссылка + #Иначе + И НастройкиПрав.Таблица = ЗНАЧЕНИЕ(Справочник.ИдентификаторыОбъектовМетаданных.ПустаяСсылка) + #КонецЕсли + И НаследованиеНастроек.УровеньИспользования < НастройкиПрав.УровеньЗапрещенияИзменения + #КонецЕсли + ВНУТРЕННЕЕ СОЕДИНЕНИЕ РегистрСведений.СоставыГруппПользователей КАК СоставыГруппПользователей + ПО + СоставыГруппПользователей.Пользователь = &АвторизованныйПользователь + И СоставыГруппПользователей.ГруппаПользователей = НастройкиПрав.Пользователь + ) + ) +#ИначеЕсли Не СтрСодержит(&ВсеВидыДоступаКромеСпециальных, ",#Параметр(36),") #Тогда + // Когда параметр задан неверно, вставляется строка, чтобы вызвать ошибку сборки ограничения доступа. + #Если СтрСодержит("#Параметр(36)", ",") #Тогда + НеверныйВидДоступа: "#Параметр(36)" - "Список имен видов доступа не найден" + #Иначе + НеверныйВидДоступа: "#Параметр(36)" - "Имя вида доступа не найдено" + #КонецЕсли +#ИначеЕсли &ВидыДоступаСОтключеннымИспользованием <> "Все" + И Не СтрСодержит(&ВидыДоступаСОтключеннымИспользованием, ",#Параметр(36),") #Тогда + + ( + ЕСТЬNULL(#Параметр(37), НЕОПРЕДЕЛЕНО) <> НЕОПРЕДЕЛЕНО + И + #Если (Не СтрСодержит(&ВидыДоступаСОтключеннымИспользованием, ",Пользователи,") И СтрСодержит(",#Параметр(36),", ",Пользователи,")) + Или (Не СтрСодержит(&ВидыДоступаСОтключеннымИспользованием, ",ВнешниеПользователи,") И СтрСодержит(",#Параметр(36),", ",ВнешниеПользователи,")) #Тогда + НЕ + ( + НЕ ИСТИНА В + ( + ВЫБРАТЬ ПЕРВЫЕ 1 ИСТИНА + ИЗ РегистрСведений.ГруппыЗначенийДоступа КАК ГруппыЗначенийДоступа + ГДЕ + ГруппыЗначенийДоступа.ЗначениеДоступа = #Параметр(37) + И ГруппыЗначенийДоступа.ГруппаЗначенийДоступа = &АвторизованныйПользователь + ) + И НЕ + #Иначе + ( + #КонецЕсли + ВЫБОР + КОГДА ИСТИНА В + ( + #Если СтрСодержит(&ВидыДоступаБезГруппДляЗначенияДоступа, ",#Параметр(36),") #Тогда + ВЫБРАТЬ ПЕРВЫЕ 1 ИСТИНА + ИЗ РегистрСведений.ЗначенияГруппДоступа КАК Значения + ГДЕ + Значения.ГруппаДоступа = ГруппыДоступа.Ссылка + И Значения.ЗначениеДоступа = #Параметр(37) + #ИначеЕсли "#Параметр(37)" = "Т.Ссылка" + И "#Параметр(36)" <> "Пользователи" + И "#Параметр(36)" <> "ВнешниеПользователи" #Тогда + #Если СтрСодержит("#Параметр(36)", ",") #Тогда + // Когда параметр задан неверно, вставляется строка, чтобы вызвать ошибку сборки ограничения доступа. + НеверныйВидДоступа: "#Параметр(36)" - "При проверке таблицы значения доступа можно указывать только один вид доступа" + #ИначеЕсли СтрСодержит(&ВидыДоступаСОднойГруппойДляЗначенияДоступа, ",#Параметр(36),") #Тогда + ВЫБРАТЬ ПЕРВЫЕ 1 ИСТИНА + ИЗ РегистрСведений.ЗначенияГруппДоступа КАК Значения + ГДЕ + Значения.ГруппаДоступа = ГруппыДоступа.Ссылка + И Значения.ЗначениеДоступа = Т.ГруппаДоступа + #Иначе // Значения доступа, для которых можно указать несколько групп значений доступа. + ВЫБРАТЬ ПЕРВЫЕ 1 ИСТИНА + ИЗ РегистрСведений.ЗначенияГруппДоступа КАК Значения + ВНУТРЕННЕЕ СОЕДИНЕНИЕ #Параметр(1).ГруппыДоступа КАК ГруппыЗначений + ПО + Значения.ГруппаДоступа = ГруппыДоступа.Ссылка + И Значения.ЗначениеДоступа = ГруппыЗначений.ГруппаДоступа + И ГруппыЗначений.Ссылка = #Параметр(37) + #КонецЕсли + #Иначе + ВЫБРАТЬ ПЕРВЫЕ 1 ИСТИНА + ИЗ РегистрСведений.ЗначенияГруппДоступа КАК Значения + ВНУТРЕННЕЕ СОЕДИНЕНИЕ РегистрСведений.ГруппыЗначенийДоступа КАК ГруппыЗначений + ПО + Значения.ГруппаДоступа = ГруппыДоступа.Ссылка + И Значения.ЗначениеДоступа = ГруппыЗначений.ГруппаЗначенийДоступа + И ГруппыЗначений.ЗначениеДоступа = #Параметр(37) + #КонецЕсли + ) + ТОГДА ИСТИНА + ИНАЧЕ ЛОЖЬ + КОНЕЦ + = + ВЫБОР + КОГДА ИСТИНА В + ( + ВЫБРАТЬ ПЕРВЫЕ 1 ИСТИНА + ИЗ РегистрСведений.ЗначенияГруппДоступаПоУмолчанию КАК ЗначенияПоУмолчанию + ГДЕ + ЗначенияПоУмолчанию.ГруппаДоступа = ГруппыДоступа.Ссылка + И ТИПЗНАЧЕНИЯ(ЗначенияПоУмолчанию.ТипЗначенийДоступа) = ТИПЗНАЧЕНИЯ(#Параметр(37)) + И ЗначенияПоУмолчанию.ВсеРазрешены = ЛОЖЬ + ) + ТОГДА ИСТИНА + ИНАЧЕ ЛОЖЬ + КОНЕЦ + ) + ) +#Иначе + ЕСТЬNULL(#Параметр(37), НЕОПРЕДЕЛЕНО) <> НЕОПРЕДЕЛЕНО +#КонецЕсли + + #Параметр(38) // [)[)][)]...] [ИЛИ|И] [([(][(]...] оператор И/ИЛИ с/без скобок. + +//// Проверка значения поля группы параметров 12. +#Если "#Параметр(39)" = "" И "#Параметр(40)" = "" #Тогда + // Группа параметров не используется. +#ИначеЕсли &ОграничениеДоступаНаУровнеЗаписейИспользуется И ("#Параметр(39)" = "Условие" Или "#Параметр(39)" = "") #Тогда + // Когда имя вида доступа "Условие" (или ""), тогда вместо имени поля задано условие. + ( #Параметр(40) ) +#ИначеЕсли "#Параметр(39)" = "ПравоЧтения" Или "#Параметр(39)" = "ПравоИзменения" #Тогда + #Параметр(40) <> НЕОПРЕДЕЛЕНО + И ИСТИНА В + ( // Проверка права пользователя на таблицу Значения, установленного в поле. + ВЫБРАТЬ ПЕРВЫЕ 1 ИСТИНА + ИЗ РегистрСведений.ТаблицыГруппДоступа КАК ТаблицыГруппДоступаПроверкаПрава + ГДЕ + ТаблицыГруппДоступаПроверкаПрава.ГруппаДоступа = ГруппыДоступа.Ссылка + И ТИПЗНАЧЕНИЯ(ТаблицыГруппДоступаПроверкаПрава.ТипТаблицы) = ТИПЗНАЧЕНИЯ(#Параметр(40)) + #Если Не "#Параметр(39)" = "ПравоЧтения" #Тогда + И ТаблицыГруппДоступаПроверкаПрава.ПравоИзменение + #КонецЕсли + ) +#ИначеЕсли "#Параметр(39)" = "ПравоЧтенияПоИдентификатору" Или "#Параметр(39)" = "ПравоИзмененияПоИдентификатору" #Тогда + ИСТИНА В + ( // Проверка права пользователя на таблицу, идентификатор которой указан в Значении, установленном в поле. + ВЫБРАТЬ ПЕРВЫЕ 1 ИСТИНА + ИЗ РегистрСведений.ТаблицыГруппДоступа КАК ТаблицыГруппДоступаПроверкаПрава + ГДЕ + ТаблицыГруппДоступаПроверкаПрава.ГруппаДоступа = ГруппыДоступа.Ссылка + И ТаблицыГруппДоступаПроверкаПрава.Таблица = #Параметр(40) + #Если Не "#Параметр(39)" = "ПравоЧтенияПоИдентификатору" #Тогда + И ТаблицыГруппДоступаПроверкаПрава.ПравоИзменение + #КонецЕсли + ) +#ИначеЕсли Не &ОграничениеДоступаНаУровнеЗаписейИспользуется #Тогда + ИСТИНА // Группа параметров отключена. +#ИначеЕсли "#Параметр(39)" = "НастройкиПрав" #Тогда + + ( + ИСТИНА В // Проверка, что пользователю или какой-нибудь группе пользователя право разрешено + ( + ВЫБРАТЬ ПЕРВЫЕ 1 ИСТИНА + ИЗ РегистрСведений.НастройкиПравОбъектов КАК НастройкиПрав + ВНУТРЕННЕЕ СОЕДИНЕНИЕ РегистрСведений.НаследованиеНастроекПравОбъектов КАК НаследованиеНастроек + ПО + НаследованиеНастроек.Объект = #Параметр(40) + И НастройкиПрав.Объект = НаследованиеНастроек.Родитель + #Если #ИмяТекущегоПраваДоступа = "Чтение" #Тогда + И НаследованиеНастроек.УровеньИспользования < НастройкиПрав.УровеньРазрешенияЧтения + #Иначе + #Если СтрСодержит(&ТаблицыСОтдельнымиНастройкамиПрав, "|#Параметр(1);") #Тогда + И НастройкиПрав.Таблица = СвойстваТекущейТаблицы.Ссылка + #Иначе + И НастройкиПрав.Таблица = ЗНАЧЕНИЕ(Справочник.ИдентификаторыОбъектовМетаданных.ПустаяСсылка) + #КонецЕсли + И НаследованиеНастроек.УровеньИспользования < НастройкиПрав.УровеньРазрешенияИзменения + #КонецЕсли + ВНУТРЕННЕЕ СОЕДИНЕНИЕ РегистрСведений.СоставыГруппПользователей КАК СоставыГруппПользователей + ПО + СоставыГруппПользователей.Пользователь = &АвторизованныйПользователь + И СоставыГруппПользователей.ГруппаПользователей = НастройкиПрав.Пользователь + ) + И НЕ ЛОЖЬ В // Проверка, что пользователю или какой-нибудь группе пользователя право запрещено. + ( + ВЫБРАТЬ ПЕРВЫЕ 1 ЛОЖЬ + ИЗ РегистрСведений.НастройкиПравОбъектов КАК НастройкиПрав + ВНУТРЕННЕЕ СОЕДИНЕНИЕ РегистрСведений.НаследованиеНастроекПравОбъектов КАК НаследованиеНастроек + ПО + НаследованиеНастроек.Объект = #Параметр(40) + И НастройкиПрав.Объект = НаследованиеНастроек.Родитель + #Если #ИмяТекущегоПраваДоступа = "Чтение" #Тогда + И НаследованиеНастроек.УровеньИспользования < НастройкиПрав.УровеньЗапрещенияЧтения + #Иначе + #Если СтрСодержит(&ТаблицыСОтдельнымиНастройкамиПрав, "|#Параметр(1);") #Тогда + И НастройкиПрав.Таблица = СвойстваТекущейТаблицы.Ссылка + #Иначе + И НастройкиПрав.Таблица = ЗНАЧЕНИЕ(Справочник.ИдентификаторыОбъектовМетаданных.ПустаяСсылка) + #КонецЕсли + И НаследованиеНастроек.УровеньИспользования < НастройкиПрав.УровеньЗапрещенияИзменения + #КонецЕсли + ВНУТРЕННЕЕ СОЕДИНЕНИЕ РегистрСведений.СоставыГруппПользователей КАК СоставыГруппПользователей + ПО + СоставыГруппПользователей.Пользователь = &АвторизованныйПользователь + И СоставыГруппПользователей.ГруппаПользователей = НастройкиПрав.Пользователь + ) + ) +#ИначеЕсли Не СтрСодержит(&ВсеВидыДоступаКромеСпециальных, ",#Параметр(39),") #Тогда + // Когда параметр задан неверно, вставляется строка, чтобы вызвать ошибку сборки ограничения доступа. + #Если СтрСодержит("#Параметр(39)", ",") #Тогда + НеверныйВидДоступа: "#Параметр(39)" - "Список имен видов доступа не найден" + #Иначе + НеверныйВидДоступа: "#Параметр(39)" - "Имя вида доступа не найдено" + #КонецЕсли +#ИначеЕсли &ВидыДоступаСОтключеннымИспользованием <> "Все" + И Не СтрСодержит(&ВидыДоступаСОтключеннымИспользованием, ",#Параметр(39),") #Тогда + + ( + ЕСТЬNULL(#Параметр(40), НЕОПРЕДЕЛЕНО) <> НЕОПРЕДЕЛЕНО + И + #Если (Не СтрСодержит(&ВидыДоступаСОтключеннымИспользованием, ",Пользователи,") И СтрСодержит(",#Параметр(39),", ",Пользователи,")) + Или (Не СтрСодержит(&ВидыДоступаСОтключеннымИспользованием, ",ВнешниеПользователи,") И СтрСодержит(",#Параметр(39),", ",ВнешниеПользователи,")) #Тогда + НЕ + ( + НЕ ИСТИНА В + ( + ВЫБРАТЬ ПЕРВЫЕ 1 ИСТИНА + ИЗ РегистрСведений.ГруппыЗначенийДоступа КАК ГруппыЗначенийДоступа + ГДЕ + ГруппыЗначенийДоступа.ЗначениеДоступа = #Параметр(40) + И ГруппыЗначенийДоступа.ГруппаЗначенийДоступа = &АвторизованныйПользователь + ) + И НЕ + #Иначе + ( + #КонецЕсли + ВЫБОР + КОГДА ИСТИНА В + ( + #Если СтрСодержит(&ВидыДоступаБезГруппДляЗначенияДоступа, ",#Параметр(39),") #Тогда + ВЫБРАТЬ ПЕРВЫЕ 1 ИСТИНА + ИЗ РегистрСведений.ЗначенияГруппДоступа КАК Значения + ГДЕ + Значения.ГруппаДоступа = ГруппыДоступа.Ссылка + И Значения.ЗначениеДоступа = #Параметр(40) + #ИначеЕсли "#Параметр(40)" = "Т.Ссылка" + И "#Параметр(39)" <> "Пользователи" + И "#Параметр(39)" <> "ВнешниеПользователи" #Тогда + #Если СтрСодержит("#Параметр(39)", ",") #Тогда + // Когда параметр задан неверно, вставляется строка, чтобы вызвать ошибку сборки ограничения доступа. + НеверныйВидДоступа: "#Параметр(39)" - "При проверке таблицы значения доступа можно указывать только один вид доступа" + #ИначеЕсли СтрСодержит(&ВидыДоступаСОднойГруппойДляЗначенияДоступа, ",#Параметр(39),") #Тогда + ВЫБРАТЬ ПЕРВЫЕ 1 ИСТИНА + ИЗ РегистрСведений.ЗначенияГруппДоступа КАК Значения + ГДЕ + Значения.ГруппаДоступа = ГруппыДоступа.Ссылка + И Значения.ЗначениеДоступа = Т.ГруппаДоступа + #Иначе // Значения доступа, для которых можно указать несколько групп значений доступа. + ВЫБРАТЬ ПЕРВЫЕ 1 ИСТИНА + ИЗ РегистрСведений.ЗначенияГруппДоступа КАК Значения + ВНУТРЕННЕЕ СОЕДИНЕНИЕ #Параметр(1).ГруппыДоступа КАК ГруппыЗначений + ПО + Значения.ГруппаДоступа = ГруппыДоступа.Ссылка + И Значения.ЗначениеДоступа = ГруппыЗначений.ГруппаДоступа + И ГруппыЗначений.Ссылка = #Параметр(40) + #КонецЕсли + #Иначе + ВЫБРАТЬ ПЕРВЫЕ 1 ИСТИНА + ИЗ РегистрСведений.ЗначенияГруппДоступа КАК Значения + ВНУТРЕННЕЕ СОЕДИНЕНИЕ РегистрСведений.ГруппыЗначенийДоступа КАК ГруппыЗначений + ПО + Значения.ГруппаДоступа = ГруппыДоступа.Ссылка + И Значения.ЗначениеДоступа = ГруппыЗначений.ГруппаЗначенийДоступа + И ГруппыЗначений.ЗначениеДоступа = #Параметр(40) + #КонецЕсли + ) + ТОГДА ИСТИНА + ИНАЧЕ ЛОЖЬ + КОНЕЦ + = + ВЫБОР + КОГДА ИСТИНА В + ( + ВЫБРАТЬ ПЕРВЫЕ 1 ИСТИНА + ИЗ РегистрСведений.ЗначенияГруппДоступаПоУмолчанию КАК ЗначенияПоУмолчанию + ГДЕ + ЗначенияПоУмолчанию.ГруппаДоступа = ГруппыДоступа.Ссылка + И ТИПЗНАЧЕНИЯ(ЗначенияПоУмолчанию.ТипЗначенийДоступа) = ТИПЗНАЧЕНИЯ(#Параметр(40)) + И ЗначенияПоУмолчанию.ВсеРазрешены = ЛОЖЬ + ) + ТОГДА ИСТИНА + ИНАЧЕ ЛОЖЬ + КОНЕЦ + ) + ) +#Иначе + ЕСТЬNULL(#Параметр(40), НЕОПРЕДЕЛЕНО) <> НЕОПРЕДЕЛЕНО +#КонецЕсли + + #Параметр(41) // [)[)][)]...] [ИЛИ|И] [([(][(]...] оператор И/ИЛИ с/без скобок. + +//// Проверка значения поля группы параметров 13. +#Если "#Параметр(42)" = "" И "#Параметр(43)" = "" #Тогда + // Группа параметров не используется. +#ИначеЕсли &ОграничениеДоступаНаУровнеЗаписейИспользуется И ("#Параметр(42)" = "Условие" Или "#Параметр(42)" = "") #Тогда + // Когда имя вида доступа "Условие" (или ""), тогда вместо имени поля задано условие. + ( #Параметр(43) ) +#ИначеЕсли "#Параметр(42)" = "ПравоЧтения" Или "#Параметр(42)" = "ПравоИзменения" #Тогда + #Параметр(43) <> НЕОПРЕДЕЛЕНО + И ИСТИНА В + ( // Проверка права пользователя на таблицу Значения, установленного в поле. + ВЫБРАТЬ ПЕРВЫЕ 1 ИСТИНА + ИЗ РегистрСведений.ТаблицыГруппДоступа КАК ТаблицыГруппДоступаПроверкаПрава + ГДЕ + ТаблицыГруппДоступаПроверкаПрава.ГруппаДоступа = ГруппыДоступа.Ссылка + И ТИПЗНАЧЕНИЯ(ТаблицыГруппДоступаПроверкаПрава.ТипТаблицы) = ТИПЗНАЧЕНИЯ(#Параметр(43)) + #Если Не "#Параметр(42)" = "ПравоЧтения" #Тогда + И ТаблицыГруппДоступаПроверкаПрава.ПравоИзменение + #КонецЕсли + ) +#ИначеЕсли "#Параметр(42)" = "ПравоЧтенияПоИдентификатору" Или "#Параметр(42)" = "ПравоИзмененияПоИдентификатору" #Тогда + ИСТИНА В + ( // Проверка права пользователя на таблицу, идентификатор которой указан в Значении, установленном в поле. + ВЫБРАТЬ ПЕРВЫЕ 1 ИСТИНА + ИЗ РегистрСведений.ТаблицыГруппДоступа КАК ТаблицыГруппДоступаПроверкаПрава + ГДЕ + ТаблицыГруппДоступаПроверкаПрава.ГруппаДоступа = ГруппыДоступа.Ссылка + И ТаблицыГруппДоступаПроверкаПрава.Таблица = #Параметр(43) + #Если Не "#Параметр(42)" = "ПравоЧтенияПоИдентификатору" #Тогда + И ТаблицыГруппДоступаПроверкаПрава.ПравоИзменение + #КонецЕсли + ) +#ИначеЕсли Не &ОграничениеДоступаНаУровнеЗаписейИспользуется #Тогда + ИСТИНА // Группа параметров отключена. +#ИначеЕсли "#Параметр(42)" = "НастройкиПрав" #Тогда + + ( + ИСТИНА В // Проверка, что пользователю или какой-нибудь группе пользователя право разрешено + ( + ВЫБРАТЬ ПЕРВЫЕ 1 ИСТИНА + ИЗ РегистрСведений.НастройкиПравОбъектов КАК НастройкиПрав + ВНУТРЕННЕЕ СОЕДИНЕНИЕ РегистрСведений.НаследованиеНастроекПравОбъектов КАК НаследованиеНастроек + ПО + НаследованиеНастроек.Объект = #Параметр(43) + И НастройкиПрав.Объект = НаследованиеНастроек.Родитель + #Если #ИмяТекущегоПраваДоступа = "Чтение" #Тогда + И НаследованиеНастроек.УровеньИспользования < НастройкиПрав.УровеньРазрешенияЧтения + #Иначе + #Если СтрСодержит(&ТаблицыСОтдельнымиНастройкамиПрав, "|#Параметр(1);") #Тогда + И НастройкиПрав.Таблица = СвойстваТекущейТаблицы.Ссылка + #Иначе + И НастройкиПрав.Таблица = ЗНАЧЕНИЕ(Справочник.ИдентификаторыОбъектовМетаданных.ПустаяСсылка) + #КонецЕсли + И НаследованиеНастроек.УровеньИспользования < НастройкиПрав.УровеньРазрешенияИзменения + #КонецЕсли + ВНУТРЕННЕЕ СОЕДИНЕНИЕ РегистрСведений.СоставыГруппПользователей КАК СоставыГруппПользователей + ПО + СоставыГруппПользователей.Пользователь = &АвторизованныйПользователь + И СоставыГруппПользователей.ГруппаПользователей = НастройкиПрав.Пользователь + ) + И НЕ ЛОЖЬ В // Проверка, что пользователю или какой-нибудь группе пользователя право запрещено. + ( + ВЫБРАТЬ ПЕРВЫЕ 1 ЛОЖЬ + ИЗ РегистрСведений.НастройкиПравОбъектов КАК НастройкиПрав + ВНУТРЕННЕЕ СОЕДИНЕНИЕ РегистрСведений.НаследованиеНастроекПравОбъектов КАК НаследованиеНастроек + ПО + НаследованиеНастроек.Объект = #Параметр(43) + И НастройкиПрав.Объект = НаследованиеНастроек.Родитель + #Если #ИмяТекущегоПраваДоступа = "Чтение" #Тогда + И НаследованиеНастроек.УровеньИспользования < НастройкиПрав.УровеньЗапрещенияЧтения + #Иначе + #Если СтрСодержит(&ТаблицыСОтдельнымиНастройкамиПрав, "|#Параметр(1);") #Тогда + И НастройкиПрав.Таблица = СвойстваТекущейТаблицы.Ссылка + #Иначе + И НастройкиПрав.Таблица = ЗНАЧЕНИЕ(Справочник.ИдентификаторыОбъектовМетаданных.ПустаяСсылка) + #КонецЕсли + И НаследованиеНастроек.УровеньИспользования < НастройкиПрав.УровеньЗапрещенияИзменения + #КонецЕсли + ВНУТРЕННЕЕ СОЕДИНЕНИЕ РегистрСведений.СоставыГруппПользователей КАК СоставыГруппПользователей + ПО + СоставыГруппПользователей.Пользователь = &АвторизованныйПользователь + И СоставыГруппПользователей.ГруппаПользователей = НастройкиПрав.Пользователь + ) + ) +#ИначеЕсли Не СтрСодержит(&ВсеВидыДоступаКромеСпециальных, ",#Параметр(42),") #Тогда + // Когда параметр задан неверно, вставляется строка, чтобы вызвать ошибку сборки ограничения доступа. + #Если СтрСодержит("#Параметр(42)", ",") #Тогда + НеверныйВидДоступа: "#Параметр(42)" - "Список имен видов доступа не найден" + #Иначе + НеверныйВидДоступа: "#Параметр(42)" - "Имя вида доступа не найдено" + #КонецЕсли +#ИначеЕсли &ВидыДоступаСОтключеннымИспользованием <> "Все" + И Не СтрСодержит(&ВидыДоступаСОтключеннымИспользованием, ",#Параметр(42),") #Тогда + + ( + ЕСТЬNULL(#Параметр(43), НЕОПРЕДЕЛЕНО) <> НЕОПРЕДЕЛЕНО + И + #Если (Не СтрСодержит(&ВидыДоступаСОтключеннымИспользованием, ",Пользователи,") И СтрСодержит(",#Параметр(42),", ",Пользователи,")) + Или (Не СтрСодержит(&ВидыДоступаСОтключеннымИспользованием, ",ВнешниеПользователи,") И СтрСодержит(",#Параметр(42),", ",ВнешниеПользователи,")) #Тогда + НЕ + ( + НЕ ИСТИНА В + ( + ВЫБРАТЬ ПЕРВЫЕ 1 ИСТИНА + ИЗ РегистрСведений.ГруппыЗначенийДоступа КАК ГруппыЗначенийДоступа + ГДЕ + ГруппыЗначенийДоступа.ЗначениеДоступа = #Параметр(43) + И ГруппыЗначенийДоступа.ГруппаЗначенийДоступа = &АвторизованныйПользователь + ) + И НЕ + #Иначе + ( + #КонецЕсли + ВЫБОР + КОГДА ИСТИНА В + ( + #Если СтрСодержит(&ВидыДоступаБезГруппДляЗначенияДоступа, ",#Параметр(42),") #Тогда + ВЫБРАТЬ ПЕРВЫЕ 1 ИСТИНА + ИЗ РегистрСведений.ЗначенияГруппДоступа КАК Значения + ГДЕ + Значения.ГруппаДоступа = ГруппыДоступа.Ссылка + И Значения.ЗначениеДоступа = #Параметр(43) + #ИначеЕсли "#Параметр(43)" = "Т.Ссылка" + И "#Параметр(42)" <> "Пользователи" + И "#Параметр(42)" <> "ВнешниеПользователи" #Тогда + #Если СтрСодержит("#Параметр(42)", ",") #Тогда + // Когда параметр задан неверно, вставляется строка, чтобы вызвать ошибку сборки ограничения доступа. + НеверныйВидДоступа: "#Параметр(42)" - "При проверке таблицы значения доступа можно указывать только один вид доступа" + #ИначеЕсли СтрСодержит(&ВидыДоступаСОднойГруппойДляЗначенияДоступа, ",#Параметр(42),") #Тогда + ВЫБРАТЬ ПЕРВЫЕ 1 ИСТИНА + ИЗ РегистрСведений.ЗначенияГруппДоступа КАК Значения + ГДЕ + Значения.ГруппаДоступа = ГруппыДоступа.Ссылка + И Значения.ЗначениеДоступа = Т.ГруппаДоступа + #Иначе // Значения доступа, для которых можно указать несколько групп значений доступа. + ВЫБРАТЬ ПЕРВЫЕ 1 ИСТИНА + ИЗ РегистрСведений.ЗначенияГруппДоступа КАК Значения + ВНУТРЕННЕЕ СОЕДИНЕНИЕ #Параметр(1).ГруппыДоступа КАК ГруппыЗначений + ПО + Значения.ГруппаДоступа = ГруппыДоступа.Ссылка + И Значения.ЗначениеДоступа = ГруппыЗначений.ГруппаДоступа + И ГруппыЗначений.Ссылка = #Параметр(43) + #КонецЕсли + #Иначе + ВЫБРАТЬ ПЕРВЫЕ 1 ИСТИНА + ИЗ РегистрСведений.ЗначенияГруппДоступа КАК Значения + ВНУТРЕННЕЕ СОЕДИНЕНИЕ РегистрСведений.ГруппыЗначенийДоступа КАК ГруппыЗначений + ПО + Значения.ГруппаДоступа = ГруппыДоступа.Ссылка + И Значения.ЗначениеДоступа = ГруппыЗначений.ГруппаЗначенийДоступа + И ГруппыЗначений.ЗначениеДоступа = #Параметр(43) + #КонецЕсли + ) + ТОГДА ИСТИНА + ИНАЧЕ ЛОЖЬ + КОНЕЦ + = + ВЫБОР + КОГДА ИСТИНА В + ( + ВЫБРАТЬ ПЕРВЫЕ 1 ИСТИНА + ИЗ РегистрСведений.ЗначенияГруппДоступаПоУмолчанию КАК ЗначенияПоУмолчанию + ГДЕ + ЗначенияПоУмолчанию.ГруппаДоступа = ГруппыДоступа.Ссылка + И ТИПЗНАЧЕНИЯ(ЗначенияПоУмолчанию.ТипЗначенийДоступа) = ТИПЗНАЧЕНИЯ(#Параметр(43)) + И ЗначенияПоУмолчанию.ВсеРазрешены = ЛОЖЬ + ) + ТОГДА ИСТИНА + ИНАЧЕ ЛОЖЬ + КОНЕЦ + ) + ) +#Иначе + ЕСТЬNULL(#Параметр(43), НЕОПРЕДЕЛЕНО) <> НЕОПРЕДЕЛЕНО +#КонецЕсли + + #Параметр(44) // [)[)][)]...] [ИЛИ|И] [([(][(]...] оператор И/ИЛИ с/без скобок. + +//// Проверка значения поля группы параметров 14. +#Если "#Параметр(45)" = "" И "#Параметр(46)" = "" #Тогда + // Группа параметров не используется. +#ИначеЕсли &ОграничениеДоступаНаУровнеЗаписейИспользуется И ("#Параметр(45)" = "Условие" Или "#Параметр(45)" = "") #Тогда + // Когда имя вида доступа "Условие" (или ""), тогда вместо имени поля задано условие. + ( #Параметр(46) ) +#ИначеЕсли "#Параметр(45)" = "ПравоЧтения" Или "#Параметр(45)" = "ПравоИзменения" #Тогда + #Параметр(46) <> НЕОПРЕДЕЛЕНО + И ИСТИНА В + ( // Проверка права пользователя на таблицу Значения, установленного в поле. + ВЫБРАТЬ ПЕРВЫЕ 1 ИСТИНА + ИЗ РегистрСведений.ТаблицыГруппДоступа КАК ТаблицыГруппДоступаПроверкаПрава + ГДЕ + ТаблицыГруппДоступаПроверкаПрава.ГруппаДоступа = ГруппыДоступа.Ссылка + И ТИПЗНАЧЕНИЯ(ТаблицыГруппДоступаПроверкаПрава.ТипТаблицы) = ТИПЗНАЧЕНИЯ(#Параметр(46)) + #Если Не "#Параметр(45)" = "ПравоЧтения" #Тогда + И ТаблицыГруппДоступаПроверкаПрава.ПравоИзменение + #КонецЕсли + ) +#ИначеЕсли "#Параметр(45)" = "ПравоЧтенияПоИдентификатору" Или "#Параметр(45)" = "ПравоИзмененияПоИдентификатору" #Тогда + ИСТИНА В + ( // Проверка права пользователя на таблицу, идентификатор которой указан в Значении, установленном в поле. + ВЫБРАТЬ ПЕРВЫЕ 1 ИСТИНА + ИЗ РегистрСведений.ТаблицыГруппДоступа КАК ТаблицыГруппДоступаПроверкаПрава + ГДЕ + ТаблицыГруппДоступаПроверкаПрава.ГруппаДоступа = ГруппыДоступа.Ссылка + И ТаблицыГруппДоступаПроверкаПрава.Таблица = #Параметр(46) + #Если Не "#Параметр(45)" = "ПравоЧтенияПоИдентификатору" #Тогда + И ТаблицыГруппДоступаПроверкаПрава.ПравоИзменение + #КонецЕсли + ) +#ИначеЕсли Не &ОграничениеДоступаНаУровнеЗаписейИспользуется #Тогда + ИСТИНА // Группа параметров отключена. +#ИначеЕсли "#Параметр(45)" = "НастройкиПрав" #Тогда + + ( + ИСТИНА В // Проверка, что пользователю или какой-нибудь группе пользователя право разрешено + ( + ВЫБРАТЬ ПЕРВЫЕ 1 ИСТИНА + ИЗ РегистрСведений.НастройкиПравОбъектов КАК НастройкиПрав + ВНУТРЕННЕЕ СОЕДИНЕНИЕ РегистрСведений.НаследованиеНастроекПравОбъектов КАК НаследованиеНастроек + ПО + НаследованиеНастроек.Объект = #Параметр(46) + И НастройкиПрав.Объект = НаследованиеНастроек.Родитель + #Если #ИмяТекущегоПраваДоступа = "Чтение" #Тогда + И НаследованиеНастроек.УровеньИспользования < НастройкиПрав.УровеньРазрешенияЧтения + #Иначе + #Если СтрСодержит(&ТаблицыСОтдельнымиНастройкамиПрав, "|#Параметр(1);") #Тогда + И НастройкиПрав.Таблица = СвойстваТекущейТаблицы.Ссылка + #Иначе + И НастройкиПрав.Таблица = ЗНАЧЕНИЕ(Справочник.ИдентификаторыОбъектовМетаданных.ПустаяСсылка) + #КонецЕсли + И НаследованиеНастроек.УровеньИспользования < НастройкиПрав.УровеньРазрешенияИзменения + #КонецЕсли + ВНУТРЕННЕЕ СОЕДИНЕНИЕ РегистрСведений.СоставыГруппПользователей КАК СоставыГруппПользователей + ПО + СоставыГруппПользователей.Пользователь = &АвторизованныйПользователь + И СоставыГруппПользователей.ГруппаПользователей = НастройкиПрав.Пользователь + ) + И НЕ ЛОЖЬ В // Проверка, что пользователю или какой-нибудь группе пользователя право запрещено. + ( + ВЫБРАТЬ ПЕРВЫЕ 1 ЛОЖЬ + ИЗ РегистрСведений.НастройкиПравОбъектов КАК НастройкиПрав + ВНУТРЕННЕЕ СОЕДИНЕНИЕ РегистрСведений.НаследованиеНастроекПравОбъектов КАК НаследованиеНастроек + ПО + НаследованиеНастроек.Объект = #Параметр(46) + И НастройкиПрав.Объект = НаследованиеНастроек.Родитель + #Если #ИмяТекущегоПраваДоступа = "Чтение" #Тогда + И НаследованиеНастроек.УровеньИспользования < НастройкиПрав.УровеньЗапрещенияЧтения + #Иначе + #Если СтрСодержит(&ТаблицыСОтдельнымиНастройкамиПрав, "|#Параметр(1);") #Тогда + И НастройкиПрав.Таблица = СвойстваТекущейТаблицы.Ссылка + #Иначе + И НастройкиПрав.Таблица = ЗНАЧЕНИЕ(Справочник.ИдентификаторыОбъектовМетаданных.ПустаяСсылка) + #КонецЕсли + И НаследованиеНастроек.УровеньИспользования < НастройкиПрав.УровеньЗапрещенияИзменения + #КонецЕсли + ВНУТРЕННЕЕ СОЕДИНЕНИЕ РегистрСведений.СоставыГруппПользователей КАК СоставыГруппПользователей + ПО + СоставыГруппПользователей.Пользователь = &АвторизованныйПользователь + И СоставыГруппПользователей.ГруппаПользователей = НастройкиПрав.Пользователь + ) + ) +#ИначеЕсли Не СтрСодержит(&ВсеВидыДоступаКромеСпециальных, ",#Параметр(45),") #Тогда + // Когда параметр задан неверно, вставляется строка, чтобы вызвать ошибку сборки ограничения доступа. + #Если СтрСодержит("#Параметр(45)", ",") #Тогда + НеверныйВидДоступа: "#Параметр(45)" - "Список имен видов доступа не найден" + #Иначе + НеверныйВидДоступа: "#Параметр(45)" - "Имя вида доступа не найдено" + #КонецЕсли +#ИначеЕсли &ВидыДоступаСОтключеннымИспользованием <> "Все" + И Не СтрСодержит(&ВидыДоступаСОтключеннымИспользованием, ",#Параметр(45),") #Тогда + + ( + ЕСТЬNULL(#Параметр(46), НЕОПРЕДЕЛЕНО) <> НЕОПРЕДЕЛЕНО + И + #Если (Не СтрСодержит(&ВидыДоступаСОтключеннымИспользованием, ",Пользователи,") И СтрСодержит(",#Параметр(45),", ",Пользователи,")) + Или (Не СтрСодержит(&ВидыДоступаСОтключеннымИспользованием, ",ВнешниеПользователи,") И СтрСодержит(",#Параметр(45),", ",ВнешниеПользователи,")) #Тогда + НЕ + ( + НЕ ИСТИНА В + ( + ВЫБРАТЬ ПЕРВЫЕ 1 ИСТИНА + ИЗ РегистрСведений.ГруппыЗначенийДоступа КАК ГруппыЗначенийДоступа + ГДЕ + ГруппыЗначенийДоступа.ЗначениеДоступа = #Параметр(46) + И ГруппыЗначенийДоступа.ГруппаЗначенийДоступа = &АвторизованныйПользователь + ) + И НЕ + #Иначе + ( + #КонецЕсли + ВЫБОР + КОГДА ИСТИНА В + ( + #Если СтрСодержит(&ВидыДоступаБезГруппДляЗначенияДоступа, ",#Параметр(45),") #Тогда + ВЫБРАТЬ ПЕРВЫЕ 1 ИСТИНА + ИЗ РегистрСведений.ЗначенияГруппДоступа КАК Значения + ГДЕ + Значения.ГруппаДоступа = ГруппыДоступа.Ссылка + И Значения.ЗначениеДоступа = #Параметр(46) + #ИначеЕсли "#Параметр(46)" = "Т.Ссылка" + И "#Параметр(45)" <> "Пользователи" + И "#Параметр(45)" <> "ВнешниеПользователи" #Тогда + #Если СтрСодержит("#Параметр(45)", ",") #Тогда + // Когда параметр задан неверно, вставляется строка, чтобы вызвать ошибку сборки ограничения доступа. + НеверныйВидДоступа: "#Параметр(45)" - "При проверке таблицы значения доступа можно указывать только один вид доступа" + #ИначеЕсли СтрСодержит(&ВидыДоступаСОднойГруппойДляЗначенияДоступа, ",#Параметр(45),") #Тогда + ВЫБРАТЬ ПЕРВЫЕ 1 ИСТИНА + ИЗ РегистрСведений.ЗначенияГруппДоступа КАК Значения + ГДЕ + Значения.ГруппаДоступа = ГруппыДоступа.Ссылка + И Значения.ЗначениеДоступа = Т.ГруппаДоступа + #Иначе // Значения доступа, для которых можно указать несколько групп значений доступа. + ВЫБРАТЬ ПЕРВЫЕ 1 ИСТИНА + ИЗ РегистрСведений.ЗначенияГруппДоступа КАК Значения + ВНУТРЕННЕЕ СОЕДИНЕНИЕ #Параметр(1).ГруппыДоступа КАК ГруппыЗначений + ПО + Значения.ГруппаДоступа = ГруппыДоступа.Ссылка + И Значения.ЗначениеДоступа = ГруппыЗначений.ГруппаДоступа + И ГруппыЗначений.Ссылка = #Параметр(46) + #КонецЕсли + #Иначе + ВЫБРАТЬ ПЕРВЫЕ 1 ИСТИНА + ИЗ РегистрСведений.ЗначенияГруппДоступа КАК Значения + ВНУТРЕННЕЕ СОЕДИНЕНИЕ РегистрСведений.ГруппыЗначенийДоступа КАК ГруппыЗначений + ПО + Значения.ГруппаДоступа = ГруппыДоступа.Ссылка + И Значения.ЗначениеДоступа = ГруппыЗначений.ГруппаЗначенийДоступа + И ГруппыЗначений.ЗначениеДоступа = #Параметр(46) + #КонецЕсли + ) + ТОГДА ИСТИНА + ИНАЧЕ ЛОЖЬ + КОНЕЦ + = + ВЫБОР + КОГДА ИСТИНА В + ( + ВЫБРАТЬ ПЕРВЫЕ 1 ИСТИНА + ИЗ РегистрСведений.ЗначенияГруппДоступаПоУмолчанию КАК ЗначенияПоУмолчанию + ГДЕ + ЗначенияПоУмолчанию.ГруппаДоступа = ГруппыДоступа.Ссылка + И ТИПЗНАЧЕНИЯ(ЗначенияПоУмолчанию.ТипЗначенийДоступа) = ТИПЗНАЧЕНИЯ(#Параметр(46)) + И ЗначенияПоУмолчанию.ВсеРазрешены = ЛОЖЬ + ) + ТОГДА ИСТИНА + ИНАЧЕ ЛОЖЬ + КОНЕЦ + ) + ) +#Иначе + ЕСТЬNULL(#Параметр(46), НЕОПРЕДЕЛЕНО) <> НЕОПРЕДЕЛЕНО +#КонецЕсли + + #Параметр(47) // [)[)][)]...] [ИЛИ|И] [([(][(]...] оператор И/ИЛИ с/без скобок. + +//// Проверка значения поля группы параметров 15. +#Если "#Параметр(48)" = "" И "#Параметр(49)" = "" #Тогда + // Группа параметров не используется. +#ИначеЕсли &ОграничениеДоступаНаУровнеЗаписейИспользуется И ("#Параметр(48)" = "Условие" Или "#Параметр(48)" = "") #Тогда + // Когда имя вида доступа "Условие" (или ""), тогда вместо имени поля задано условие. + ( #Параметр(49) ) +#ИначеЕсли "#Параметр(48)" = "ПравоЧтения" Или "#Параметр(48)" = "ПравоИзменения" #Тогда + #Параметр(49) <> НЕОПРЕДЕЛЕНО + И ИСТИНА В + ( // Проверка права пользователя на таблицу Значения, установленного в поле. + ВЫБРАТЬ ПЕРВЫЕ 1 ИСТИНА + ИЗ РегистрСведений.ТаблицыГруппДоступа КАК ТаблицыГруппДоступаПроверкаПрава + ГДЕ + ТаблицыГруппДоступаПроверкаПрава.ГруппаДоступа = ГруппыДоступа.Ссылка + И ТИПЗНАЧЕНИЯ(ТаблицыГруппДоступаПроверкаПрава.ТипТаблицы) = ТИПЗНАЧЕНИЯ(#Параметр(49)) + #Если Не "#Параметр(48)" = "ПравоЧтения" #Тогда + И ТаблицыГруппДоступаПроверкаПрава.ПравоИзменение + #КонецЕсли + ) +#ИначеЕсли "#Параметр(48)" = "ПравоЧтенияПоИдентификатору" Или "#Параметр(48)" = "ПравоИзмененияПоИдентификатору" #Тогда + ИСТИНА В + ( // Проверка права пользователя на таблицу, идентификатор которой указан в Значении, установленном в поле. + ВЫБРАТЬ ПЕРВЫЕ 1 ИСТИНА + ИЗ РегистрСведений.ТаблицыГруппДоступа КАК ТаблицыГруппДоступаПроверкаПрава + ГДЕ + ТаблицыГруппДоступаПроверкаПрава.ГруппаДоступа = ГруппыДоступа.Ссылка + И ТаблицыГруппДоступаПроверкаПрава.Таблица = #Параметр(49) + #Если Не "#Параметр(48)" = "ПравоЧтенияПоИдентификатору" #Тогда + И ТаблицыГруппДоступаПроверкаПрава.ПравоИзменение + #КонецЕсли + ) +#ИначеЕсли Не &ОграничениеДоступаНаУровнеЗаписейИспользуется #Тогда + ИСТИНА // Группа параметров отключена. +#ИначеЕсли "#Параметр(48)" = "НастройкиПрав" #Тогда + + ( + ИСТИНА В // Проверка, что пользователю или какой-нибудь группе пользователя право разрешено + ( + ВЫБРАТЬ ПЕРВЫЕ 1 ИСТИНА + ИЗ РегистрСведений.НастройкиПравОбъектов КАК НастройкиПрав + ВНУТРЕННЕЕ СОЕДИНЕНИЕ РегистрСведений.НаследованиеНастроекПравОбъектов КАК НаследованиеНастроек + ПО + НаследованиеНастроек.Объект = #Параметр(49) + И НастройкиПрав.Объект = НаследованиеНастроек.Родитель + #Если #ИмяТекущегоПраваДоступа = "Чтение" #Тогда + И НаследованиеНастроек.УровеньИспользования < НастройкиПрав.УровеньРазрешенияЧтения + #Иначе + #Если СтрСодержит(&ТаблицыСОтдельнымиНастройкамиПрав, "|#Параметр(1);") #Тогда + И НастройкиПрав.Таблица = СвойстваТекущейТаблицы.Ссылка + #Иначе + И НастройкиПрав.Таблица = ЗНАЧЕНИЕ(Справочник.ИдентификаторыОбъектовМетаданных.ПустаяСсылка) + #КонецЕсли + И НаследованиеНастроек.УровеньИспользования < НастройкиПрав.УровеньРазрешенияИзменения + #КонецЕсли + ВНУТРЕННЕЕ СОЕДИНЕНИЕ РегистрСведений.СоставыГруппПользователей КАК СоставыГруппПользователей + ПО + СоставыГруппПользователей.Пользователь = &АвторизованныйПользователь + И СоставыГруппПользователей.ГруппаПользователей = НастройкиПрав.Пользователь + ) + И НЕ ЛОЖЬ В // Проверка, что пользователю или какой-нибудь группе пользователя право запрещено. + ( + ВЫБРАТЬ ПЕРВЫЕ 1 ЛОЖЬ + ИЗ РегистрСведений.НастройкиПравОбъектов КАК НастройкиПрав + ВНУТРЕННЕЕ СОЕДИНЕНИЕ РегистрСведений.НаследованиеНастроекПравОбъектов КАК НаследованиеНастроек + ПО + НаследованиеНастроек.Объект = #Параметр(49) + И НастройкиПрав.Объект = НаследованиеНастроек.Родитель + #Если #ИмяТекущегоПраваДоступа = "Чтение" #Тогда + И НаследованиеНастроек.УровеньИспользования < НастройкиПрав.УровеньЗапрещенияЧтения + #Иначе + #Если СтрСодержит(&ТаблицыСОтдельнымиНастройкамиПрав, "|#Параметр(1);") #Тогда + И НастройкиПрав.Таблица = СвойстваТекущейТаблицы.Ссылка + #Иначе + И НастройкиПрав.Таблица = ЗНАЧЕНИЕ(Справочник.ИдентификаторыОбъектовМетаданных.ПустаяСсылка) + #КонецЕсли + И НаследованиеНастроек.УровеньИспользования < НастройкиПрав.УровеньЗапрещенияИзменения + #КонецЕсли + ВНУТРЕННЕЕ СОЕДИНЕНИЕ РегистрСведений.СоставыГруппПользователей КАК СоставыГруппПользователей + ПО + СоставыГруппПользователей.Пользователь = &АвторизованныйПользователь + И СоставыГруппПользователей.ГруппаПользователей = НастройкиПрав.Пользователь + ) + ) +#ИначеЕсли Не СтрСодержит(&ВсеВидыДоступаКромеСпециальных, ",#Параметр(48),") #Тогда + // Когда параметр задан неверно, вставляется строка, чтобы вызвать ошибку сборки ограничения доступа. + #Если СтрСодержит("#Параметр(48)", ",") #Тогда + НеверныйВидДоступа: "#Параметр(48)" - "Список имен видов доступа не найден" + #Иначе + НеверныйВидДоступа: "#Параметр(48)" - "Имя вида доступа не найдено" + #КонецЕсли +#ИначеЕсли &ВидыДоступаСОтключеннымИспользованием <> "Все" + И Не СтрСодержит(&ВидыДоступаСОтключеннымИспользованием, ",#Параметр(48),") #Тогда + + ( + ЕСТЬNULL(#Параметр(49), НЕОПРЕДЕЛЕНО) <> НЕОПРЕДЕЛЕНО + И + #Если (Не СтрСодержит(&ВидыДоступаСОтключеннымИспользованием, ",Пользователи,") И СтрСодержит(",#Параметр(48),", ",Пользователи,")) + Или (Не СтрСодержит(&ВидыДоступаСОтключеннымИспользованием, ",ВнешниеПользователи,") И СтрСодержит(",#Параметр(48),", ",ВнешниеПользователи,")) #Тогда + НЕ + ( + НЕ ИСТИНА В + ( + ВЫБРАТЬ ПЕРВЫЕ 1 ИСТИНА + ИЗ РегистрСведений.ГруппыЗначенийДоступа КАК ГруппыЗначенийДоступа + ГДЕ + ГруппыЗначенийДоступа.ЗначениеДоступа = #Параметр(49) + И ГруппыЗначенийДоступа.ГруппаЗначенийДоступа = &АвторизованныйПользователь + ) + И НЕ + #Иначе + ( + #КонецЕсли + ВЫБОР + КОГДА ИСТИНА В + ( + #Если СтрСодержит(&ВидыДоступаБезГруппДляЗначенияДоступа, ",#Параметр(48),") #Тогда + ВЫБРАТЬ ПЕРВЫЕ 1 ИСТИНА + ИЗ РегистрСведений.ЗначенияГруппДоступа КАК Значения + ГДЕ + Значения.ГруппаДоступа = ГруппыДоступа.Ссылка + И Значения.ЗначениеДоступа = #Параметр(49) + #ИначеЕсли "#Параметр(49)" = "Т.Ссылка" + И "#Параметр(48)" <> "Пользователи" + И "#Параметр(48)" <> "ВнешниеПользователи" #Тогда + #Если СтрСодержит("#Параметр(48)", ",") #Тогда + // Когда параметр задан неверно, вставляется строка, чтобы вызвать ошибку сборки ограничения доступа. + НеверныйВидДоступа: "#Параметр(48)" - "При проверке таблицы значения доступа можно указывать только один вид доступа" + #ИначеЕсли СтрСодержит(&ВидыДоступаСОднойГруппойДляЗначенияДоступа, ",#Параметр(48),") #Тогда + ВЫБРАТЬ ПЕРВЫЕ 1 ИСТИНА + ИЗ РегистрСведений.ЗначенияГруппДоступа КАК Значения + ГДЕ + Значения.ГруппаДоступа = ГруппыДоступа.Ссылка + И Значения.ЗначениеДоступа = Т.ГруппаДоступа + #Иначе // Значения доступа, для которых можно указать несколько групп значений доступа. + ВЫБРАТЬ ПЕРВЫЕ 1 ИСТИНА + ИЗ РегистрСведений.ЗначенияГруппДоступа КАК Значения + ВНУТРЕННЕЕ СОЕДИНЕНИЕ #Параметр(1).ГруппыДоступа КАК ГруппыЗначений + ПО + Значения.ГруппаДоступа = ГруппыДоступа.Ссылка + И Значения.ЗначениеДоступа = ГруппыЗначений.ГруппаДоступа + И ГруппыЗначений.Ссылка = #Параметр(49) + #КонецЕсли + #Иначе + ВЫБРАТЬ ПЕРВЫЕ 1 ИСТИНА + ИЗ РегистрСведений.ЗначенияГруппДоступа КАК Значения + ВНУТРЕННЕЕ СОЕДИНЕНИЕ РегистрСведений.ГруппыЗначенийДоступа КАК ГруппыЗначений + ПО + Значения.ГруппаДоступа = ГруппыДоступа.Ссылка + И Значения.ЗначениеДоступа = ГруппыЗначений.ГруппаЗначенийДоступа + И ГруппыЗначений.ЗначениеДоступа = #Параметр(49) + #КонецЕсли + ) + ТОГДА ИСТИНА + ИНАЧЕ ЛОЖЬ + КОНЕЦ + = + ВЫБОР + КОГДА ИСТИНА В + ( + ВЫБРАТЬ ПЕРВЫЕ 1 ИСТИНА + ИЗ РегистрСведений.ЗначенияГруппДоступаПоУмолчанию КАК ЗначенияПоУмолчанию + ГДЕ + ЗначенияПоУмолчанию.ГруппаДоступа = ГруппыДоступа.Ссылка + И ТИПЗНАЧЕНИЯ(ЗначенияПоУмолчанию.ТипЗначенийДоступа) = ТИПЗНАЧЕНИЯ(#Параметр(49)) + И ЗначенияПоУмолчанию.ВсеРазрешены = ЛОЖЬ + ) + ТОГДА ИСТИНА + ИНАЧЕ ЛОЖЬ + КОНЕЦ + ) + ) +#Иначе + ЕСТЬNULL(#Параметр(49), НЕОПРЕДЕЛЕНО) <> НЕОПРЕДЕЛЕНО +#КонецЕсли + + #Параметр(50) // [)[)][)]...] [ИЛИ|И] [([(][(]...] оператор И/ИЛИ с/без скобок. + +//// Проверка значения поля группы параметров 16. +#Если "#Параметр(51)" = "" И "#Параметр(52)" = "" #Тогда + // Группа параметров не используется. +#ИначеЕсли &ОграничениеДоступаНаУровнеЗаписейИспользуется И ("#Параметр(51)" = "Условие" Или "#Параметр(51)" = "") #Тогда + // Когда имя вида доступа "Условие" (или ""), тогда вместо имени поля задано условие. + ( #Параметр(52) ) +#ИначеЕсли "#Параметр(51)" = "ПравоЧтения" Или "#Параметр(51)" = "ПравоИзменения" #Тогда + #Параметр(52) <> НЕОПРЕДЕЛЕНО + И ИСТИНА В + ( // Проверка права пользователя на таблицу Значения, установленного в поле. + ВЫБРАТЬ ПЕРВЫЕ 1 ИСТИНА + ИЗ РегистрСведений.ТаблицыГруппДоступа КАК ТаблицыГруппДоступаПроверкаПрава + ГДЕ + ТаблицыГруппДоступаПроверкаПрава.ГруппаДоступа = ГруппыДоступа.Ссылка + И ТИПЗНАЧЕНИЯ(ТаблицыГруппДоступаПроверкаПрава.ТипТаблицы) = ТИПЗНАЧЕНИЯ(#Параметр(52)) + #Если Не "#Параметр(51)" = "ПравоЧтения" #Тогда + И ТаблицыГруппДоступаПроверкаПрава.ПравоИзменение + #КонецЕсли + ) +#ИначеЕсли "#Параметр(51)" = "ПравоЧтенияПоИдентификатору" Или "#Параметр(51)" = "ПравоИзмененияПоИдентификатору" #Тогда + ИСТИНА В + ( // Проверка права пользователя на таблицу, идентификатор которой указан в Значении, установленном в поле. + ВЫБРАТЬ ПЕРВЫЕ 1 ИСТИНА + ИЗ РегистрСведений.ТаблицыГруппДоступа КАК ТаблицыГруппДоступаПроверкаПрава + ГДЕ + ТаблицыГруппДоступаПроверкаПрава.ГруппаДоступа = ГруппыДоступа.Ссылка + И ТаблицыГруппДоступаПроверкаПрава.Таблица = #Параметр(52) + #Если Не "#Параметр(51)" = "ПравоЧтенияПоИдентификатору" #Тогда + И ТаблицыГруппДоступаПроверкаПрава.ПравоИзменение + #КонецЕсли + ) +#ИначеЕсли Не &ОграничениеДоступаНаУровнеЗаписейИспользуется #Тогда + ИСТИНА // Группа параметров отключена. +#ИначеЕсли "#Параметр(51)" = "НастройкиПрав" #Тогда + + ( + ИСТИНА В // Проверка, что пользователю или какой-нибудь группе пользователя право разрешено + ( + ВЫБРАТЬ ПЕРВЫЕ 1 ИСТИНА + ИЗ РегистрСведений.НастройкиПравОбъектов КАК НастройкиПрав + ВНУТРЕННЕЕ СОЕДИНЕНИЕ РегистрСведений.НаследованиеНастроекПравОбъектов КАК НаследованиеНастроек + ПО + НаследованиеНастроек.Объект = #Параметр(52) + И НастройкиПрав.Объект = НаследованиеНастроек.Родитель + #Если #ИмяТекущегоПраваДоступа = "Чтение" #Тогда + И НаследованиеНастроек.УровеньИспользования < НастройкиПрав.УровеньРазрешенияЧтения + #Иначе + #Если СтрСодержит(&ТаблицыСОтдельнымиНастройкамиПрав, "|#Параметр(1);") #Тогда + И НастройкиПрав.Таблица = СвойстваТекущейТаблицы.Ссылка + #Иначе + И НастройкиПрав.Таблица = ЗНАЧЕНИЕ(Справочник.ИдентификаторыОбъектовМетаданных.ПустаяСсылка) + #КонецЕсли + И НаследованиеНастроек.УровеньИспользования < НастройкиПрав.УровеньРазрешенияИзменения + #КонецЕсли + ВНУТРЕННЕЕ СОЕДИНЕНИЕ РегистрСведений.СоставыГруппПользователей КАК СоставыГруппПользователей + ПО + СоставыГруппПользователей.Пользователь = &АвторизованныйПользователь + И СоставыГруппПользователей.ГруппаПользователей = НастройкиПрав.Пользователь + ) + И НЕ ЛОЖЬ В // Проверка, что пользователю или какой-нибудь группе пользователя право запрещено. + ( + ВЫБРАТЬ ПЕРВЫЕ 1 ЛОЖЬ + ИЗ РегистрСведений.НастройкиПравОбъектов КАК НастройкиПрав + ВНУТРЕННЕЕ СОЕДИНЕНИЕ РегистрСведений.НаследованиеНастроекПравОбъектов КАК НаследованиеНастроек + ПО + НаследованиеНастроек.Объект = #Параметр(52) + И НастройкиПрав.Объект = НаследованиеНастроек.Родитель + #Если #ИмяТекущегоПраваДоступа = "Чтение" #Тогда + И НаследованиеНастроек.УровеньИспользования < НастройкиПрав.УровеньЗапрещенияЧтения + #Иначе + #Если СтрСодержит(&ТаблицыСОтдельнымиНастройкамиПрав, "|#Параметр(1);") #Тогда + И НастройкиПрав.Таблица = СвойстваТекущейТаблицы.Ссылка + #Иначе + И НастройкиПрав.Таблица = ЗНАЧЕНИЕ(Справочник.ИдентификаторыОбъектовМетаданных.ПустаяСсылка) + #КонецЕсли + И НаследованиеНастроек.УровеньИспользования < НастройкиПрав.УровеньЗапрещенияИзменения + #КонецЕсли + ВНУТРЕННЕЕ СОЕДИНЕНИЕ РегистрСведений.СоставыГруппПользователей КАК СоставыГруппПользователей + ПО + СоставыГруппПользователей.Пользователь = &АвторизованныйПользователь + И СоставыГруппПользователей.ГруппаПользователей = НастройкиПрав.Пользователь + ) + ) +#ИначеЕсли Не СтрСодержит(&ВсеВидыДоступаКромеСпециальных, ",#Параметр(51),") #Тогда + // Когда параметр задан неверно, вставляется строка, чтобы вызвать ошибку сборки ограничения доступа. + #Если СтрСодержит("#Параметр(51)", ",") #Тогда + НеверныйВидДоступа: "#Параметр(51)" - "Список имен видов доступа не найден" + #Иначе + НеверныйВидДоступа: "#Параметр(51)" - "Имя вида доступа не найдено" + #КонецЕсли +#ИначеЕсли &ВидыДоступаСОтключеннымИспользованием <> "Все" + И Не СтрСодержит(&ВидыДоступаСОтключеннымИспользованием, ",#Параметр(51),") #Тогда + + ( + ЕСТЬNULL(#Параметр(52), НЕОПРЕДЕЛЕНО) <> НЕОПРЕДЕЛЕНО + И + #Если (Не СтрСодержит(&ВидыДоступаСОтключеннымИспользованием, ",Пользователи,") И СтрСодержит(",#Параметр(51),", ",Пользователи,")) + Или (Не СтрСодержит(&ВидыДоступаСОтключеннымИспользованием, ",ВнешниеПользователи,") И СтрСодержит(",#Параметр(51),", ",ВнешниеПользователи,")) #Тогда + НЕ + ( + НЕ ИСТИНА В + ( + ВЫБРАТЬ ПЕРВЫЕ 1 ИСТИНА + ИЗ РегистрСведений.ГруппыЗначенийДоступа КАК ГруппыЗначенийДоступа + ГДЕ + ГруппыЗначенийДоступа.ЗначениеДоступа = #Параметр(52) + И ГруппыЗначенийДоступа.ГруппаЗначенийДоступа = &АвторизованныйПользователь + ) + И НЕ + #Иначе + ( + #КонецЕсли + ВЫБОР + КОГДА ИСТИНА В + ( + #Если СтрСодержит(&ВидыДоступаБезГруппДляЗначенияДоступа, ",#Параметр(51),") #Тогда + ВЫБРАТЬ ПЕРВЫЕ 1 ИСТИНА + ИЗ РегистрСведений.ЗначенияГруппДоступа КАК Значения + ГДЕ + Значения.ГруппаДоступа = ГруппыДоступа.Ссылка + И Значения.ЗначениеДоступа = #Параметр(52) + #ИначеЕсли "#Параметр(52)" = "Т.Ссылка" + И "#Параметр(51)" <> "Пользователи" + И "#Параметр(51)" <> "ВнешниеПользователи" #Тогда + #Если СтрСодержит("#Параметр(51)", ",") #Тогда + // Когда параметр задан неверно, вставляется строка, чтобы вызвать ошибку сборки ограничения доступа. + НеверныйВидДоступа: "#Параметр(51)" - "При проверке таблицы значения доступа можно указывать только один вид доступа" + #ИначеЕсли СтрСодержит(&ВидыДоступаСОднойГруппойДляЗначенияДоступа, ",#Параметр(51),") #Тогда + ВЫБРАТЬ ПЕРВЫЕ 1 ИСТИНА + ИЗ РегистрСведений.ЗначенияГруппДоступа КАК Значения + ГДЕ + Значения.ГруппаДоступа = ГруппыДоступа.Ссылка + И Значения.ЗначениеДоступа = Т.ГруппаДоступа + #Иначе // Значения доступа, для которых можно указать несколько групп значений доступа. + ВЫБРАТЬ ПЕРВЫЕ 1 ИСТИНА + ИЗ РегистрСведений.ЗначенияГруппДоступа КАК Значения + ВНУТРЕННЕЕ СОЕДИНЕНИЕ #Параметр(1).ГруппыДоступа КАК ГруппыЗначений + ПО + Значения.ГруппаДоступа = ГруппыДоступа.Ссылка + И Значения.ЗначениеДоступа = ГруппыЗначений.ГруппаДоступа + И ГруппыЗначений.Ссылка = #Параметр(52) + #КонецЕсли + #Иначе + ВЫБРАТЬ ПЕРВЫЕ 1 ИСТИНА + ИЗ РегистрСведений.ЗначенияГруппДоступа КАК Значения + ВНУТРЕННЕЕ СОЕДИНЕНИЕ РегистрСведений.ГруппыЗначенийДоступа КАК ГруппыЗначений + ПО + Значения.ГруппаДоступа = ГруппыДоступа.Ссылка + И Значения.ЗначениеДоступа = ГруппыЗначений.ГруппаЗначенийДоступа + И ГруппыЗначений.ЗначениеДоступа = #Параметр(52) + #КонецЕсли + ) + ТОГДА ИСТИНА + ИНАЧЕ ЛОЖЬ + КОНЕЦ + = + ВЫБОР + КОГДА ИСТИНА В + ( + ВЫБРАТЬ ПЕРВЫЕ 1 ИСТИНА + ИЗ РегистрСведений.ЗначенияГруппДоступаПоУмолчанию КАК ЗначенияПоУмолчанию + ГДЕ + ЗначенияПоУмолчанию.ГруппаДоступа = ГруппыДоступа.Ссылка + И ТИПЗНАЧЕНИЯ(ЗначенияПоУмолчанию.ТипЗначенийДоступа) = ТИПЗНАЧЕНИЯ(#Параметр(52)) + И ЗначенияПоУмолчанию.ВсеРазрешены = ЛОЖЬ + ) + ТОГДА ИСТИНА + ИНАЧЕ ЛОЖЬ + КОНЕЦ + ) + ) +#Иначе + ЕСТЬNULL(#Параметр(52), НЕОПРЕДЕЛЕНО) <> НЕОПРЕДЕЛЕНО +#КонецЕсли + + #Параметр(53) // [)[)][)]...] [ИЛИ|И] [([(][(]...] оператор И/ИЛИ с/без скобок. + + ) +) +#КонецЕсли + +#КонецЕсли // Информационная база заблокирована для обновления. + + diff --git a/SSL/src/Roles/ДобавлениеИзменениеЛичныхСертификатовКлючейЭлектроннойПодписиИШифрования/ДобавлениеИзменениеЛичныхСертификатовКлючейЭлектроннойПодписиИШифрования.mdo b/SSL/src/Roles/ДобавлениеИзменениеЛичныхСертификатовКлючейЭлектроннойПодписиИШифрования/ДобавлениеИзменениеЛичныхСертификатовКлючейЭлектроннойПодписиИШифрования.mdo new file mode 100644 index 000000000..51a3e6430 --- /dev/null +++ b/SSL/src/Roles/ДобавлениеИзменениеЛичныхСертификатовКлючейЭлектроннойПодписиИШифрования/ДобавлениеИзменениеЛичныхСертификатовКлючейЭлектроннойПодписиИШифрования.mdo @@ -0,0 +1,8 @@ + + + ДобавлениеИзменениеЛичныхСертификатовКлючейЭлектроннойПодписиИШифрования + + ru + Добавление и изменение личных сертификатов ключей электронной подписи и шифрования + + diff --git a/SSL/src/Roles/ДобавлениеИзменениеЛичныхШаблоновСообщений/Rights.rights b/SSL/src/Roles/ДобавлениеИзменениеЛичныхШаблоновСообщений/Rights.rights index 994876f1c..bdb12fa86 100644 --- a/SSL/src/Roles/ДобавлениеИзменениеЛичныхШаблоновСообщений/Rights.rights +++ b/SSL/src/Roles/ДобавлениеИзменениеЛичныхШаблоновСообщений/Rights.rights @@ -158,33 +158,6 @@ true - - Configuration.БиблиотекаСтандартныхПодсистем - - MainWindowModeNormal - true - - - MainWindowModeWorkplace - true - - - MainWindowModeEmbeddedWorkplace - true - - - MainWindowModeFullscreenWorkplace - true - - - MainWindowModeKiosk - true - - - AnalyticsSystemClient - true - - CommonCommand.ОтправитьПисьмо @@ -221,6 +194,33 @@ true + + Configuration.БиблиотекаСтандартныхПодсистем + + MainWindowModeNormal + true + + + MainWindowModeWorkplace + true + + + MainWindowModeEmbeddedWorkplace + true + + + MainWindowModeFullscreenWorkplace + true + + + MainWindowModeKiosk + true + + + AnalyticsSystemClient + true + + ДляОбъекта(ПолеОбъекта) // ДляОбъекта(ПолеОбъекта = "") diff --git a/SSL/src/Roles/ДобавлениеИзменениеМашиночитаемыхДоверенностей/Rights.rights b/SSL/src/Roles/ДобавлениеИзменениеМашиночитаемыхДоверенностей/Rights.rights index 78d31075c..7ccd0e0e6 100644 --- a/SSL/src/Roles/ДобавлениеИзменениеМашиночитаемыхДоверенностей/Rights.rights +++ b/SSL/src/Roles/ДобавлениеИзменениеМашиночитаемыхДоверенностей/Rights.rights @@ -10,33 +10,6 @@ true - - Configuration.БиблиотекаСтандартныхПодсистем - - MainWindowModeNormal - true - - - MainWindowModeWorkplace - true - - - MainWindowModeEmbeddedWorkplace - true - - - MainWindowModeFullscreenWorkplace - true - - - MainWindowModeKiosk - true - - - AnalyticsSystemClient - true - - Catalog.МашиночитаемыеДоверенности @@ -87,6 +60,33 @@ true + + Configuration.БиблиотекаСтандартныхПодсистем + + MainWindowModeNormal + true + + + MainWindowModeWorkplace + true + + + MainWindowModeEmbeddedWorkplace + true + + + MainWindowModeFullscreenWorkplace + true + + + MainWindowModeKiosk + true + + + AnalyticsSystemClient + true + + Catalog.МашиночитаемыеДоверенностиПрисоединенныеФайлы diff --git a/SSL/src/Roles/ДобавлениеИзменениеНапоминаний/Rights.rights b/SSL/src/Roles/ДобавлениеИзменениеНапоминаний/Rights.rights index 440eb4ea0..a1e9d95cd 100644 --- a/SSL/src/Roles/ДобавлениеИзменениеНапоминаний/Rights.rights +++ b/SSL/src/Roles/ДобавлениеИзменениеНапоминаний/Rights.rights @@ -10,33 +10,6 @@ true - - Configuration.БиблиотекаСтандартныхПодсистем - - MainWindowModeNormal - true - - - MainWindowModeWorkplace - true - - - MainWindowModeEmbeddedWorkplace - true - - - MainWindowModeFullscreenWorkplace - true - - - MainWindowModeKiosk - true - - - AnalyticsSystemClient - true - - InformationRegister.НапоминанияПользователя @@ -74,6 +47,33 @@ true + + Configuration.БиблиотекаСтандартныхПодсистем + + MainWindowModeNormal + true + + + MainWindowModeWorkplace + true + + + MainWindowModeEmbeddedWorkplace + true + + + MainWindowModeFullscreenWorkplace + true + + + MainWindowModeKiosk + true + + + AnalyticsSystemClient + true + + InformationRegister.НапоминанияПользователя.Command.МоиНапоминания diff --git a/SSL/src/Roles/ДобавлениеИзменениеНастроекОтправкиВГосключ/Rights.rights b/SSL/src/Roles/ДобавлениеИзменениеНастроекОтправкиВГосключ/Rights.rights new file mode 100644 index 000000000..ef03a2015 --- /dev/null +++ b/SSL/src/Roles/ДобавлениеИзменениеНастроекОтправкиВГосключ/Rights.rights @@ -0,0 +1,6300 @@ + + + false + true + false + + Catalog.НастройкиОтправкиВГосключ + + Read + true + + #Если &ОграничениеДоступаНаУровнеЗаписейУниверсально #Тогда +#ДляОбъекта("") +#Иначе +#ПоЗначениямРасширенный("Справочник.НастройкиОтправкиВГосключ", "", "", +"ЛЕВОЕ СОЕДИНЕНИЕ Справочник.НастройкиОтправкиВГосключ.Пользователи КАК Т1 +ПО Т1.Ссылка = Т.Ссылка", +"", +"Условие", "Т.Ответственный = &ТекущийПользователь","ИЛИ", +"Условие", "Т1.Пользователь = &ТекущийПользователь", "", +"","","", "","","", "","","", "","","", "","","", "","","", "","","", "","","", "","","", "","","", "","","", "","","", "","","", "","","") +#КонецЕсли + + + + Insert + true + + #Если &ОграничениеДоступаНаУровнеЗаписейУниверсально #Тогда +#ДляОбъекта("") +#Иначе +#ПоЗначениям( "Справочник.НастройкиОтправкиВГосключ", "","", +"Условие", "Т.Ответственный = &ТекущийПользователь", +"","", "","", "","", "","", "","", "","", "","", "","", "","", "","", "","", "","", "","", "","", "","") +#КонецЕсли + + + + Update + true + + #Если &ОграничениеДоступаНаУровнеЗаписейУниверсально #Тогда +#ДляОбъекта("") +#Иначе +#ПоЗначениям( "Справочник.НастройкиОтправкиВГосключ", "","", +"Условие", "Т.Ответственный = &ТекущийПользователь", +"","", "","", "","", "","", "","", "","", "","", "","", "","", "","", "","", "","", "","", "","", "","") +#КонецЕсли + + + + View + true + + + InteractiveInsert + true + + + Edit + true + + + InteractiveSetDeletionMark + true + + + InteractiveClearDeletionMark + true + + + InputByString + true + + + + Configuration.БиблиотекаСтандартныхПодсистем + + MainWindowModeNormal + true + + + MainWindowModeWorkplace + true + + + MainWindowModeEmbeddedWorkplace + true + + + MainWindowModeFullscreenWorkplace + true + + + MainWindowModeKiosk + true + + + AnalyticsSystemClient + true + + + + ДляОбъекта(ПолеОбъекта) + // ДляОбъекта(ПолеОбъекта = "") +// Шаблон используется для ограничения элементов справочников, документов и +// других списков объектов по полю Ссылка, а также элементов зависимых списков +// объектов и записей регистров через поле объекта-владельца. +// +// Параметры: +// ПолеОбъекта - имя поля, содержащего ссылку на объект, от которого зависит элемент списка. +// Значение "" (по умолчанию) то же, что имя поля "Ссылка". +// + +#Если &СпискиСОтключеннымОграничениемЧтения = "Неопределено" #Тогда + // Информационная база заблокирована для обновления. + ГДЕ ЛОЖЬ + +#ИначеЕсли Не СтрСодержит(&ВерсииШаблоновОграниченияДоступа, ",ДляОбъекта9,") #Тогда + Ошибка: Требуется обновить шаблон на актуальную версию, поставляемую в роли ИзменениеУчастниковГруппДоступа по причине: Используется устаревшая версия 9 шаблона ограничения доступа ДляОбъекта. Объект: #ИмяТекущейТаблицы, Право: #ИмяТекущегоПраваДоступа. + +#ИначеЕсли &СпискиСОтключеннымОграничениемЧтения = "Все" #Тогда + // У пользователя отключены все виды доступа или + // ограничение на уровне записей не используется. + ГДЕ ИСТИНА + +#ИначеЕсли СтрСодержит(&СпискиСОтключеннымОграничениемЧтения, #ИмяТекущейТаблицы + ";") #Тогда + // У пользователя отключено ограничение для текущей таблицы. + ГДЕ ИСТИНА + +#ИначеЕсли СтрСодержит(&ВерсииШаблоновОграниченияДоступа, ",ТребуетсяПерезапуститьСеанс,") #Тогда + Ошибка: Версия программы обновлена, требуется перезапустить сеанс. Объект: #ИмяТекущейТаблицы, Право: #ИмяТекущегоПраваДоступа. + +#ИначеЕсли #ИмяТекущегоПраваДоступа <> "Чтение" #Тогда + // Проверка прав Добавление, Изменение, Удаление выполняется ПередЗаписью / ПриЗаписи. + ГДЕ ИСТИНА + +#ИначеЕсли СтрСодержит(&СпискиСОграничениемЧерезКлючиДоступаГруппДоступа, #ИмяТекущейТаблицы + ";0") #Тогда + ГДЕ ЛОЖЬ + +#ИначеЕсли СтрСодержит(&СпискиСОграничениемЧерезКлючиДоступаГруппДоступа, #ИмяТекущейТаблицы + ";1") #Тогда + Ошибка: Внешние пользователи отключены. + +#ИначеЕсли Не СтрСодержит(&СпискиСОграничениемЧерезКлючиДоступаГруппДоступа, #ИмяТекущейТаблицы + ":#ПолеОбъекта;") + И Не СтрСодержит(&СпискиСОграничениемЧерезКлючиДоступаПользователей, #ИмяТекущейТаблицы + ":#ПолеОбъекта;") #Тогда + + Ошибка: Требуется актуализировать ограничение доступа по причине: Не удалось определить вариант ограничения доступа в параметрах сеанса для шаблона ДляОбъекта со значением параметра "#ПолеОбъекта". Объект: #ИмяТекущейТаблицы, Право: #ИмяТекущегоПраваДоступа. +#Иначе + +ТекущаяТаблица ГДЕ ИСТИНА В + ( + ВЫБРАТЬ ПЕРВЫЕ 1 ИСТИНА + ИЗ РегистрСведений.КлючиДоступаКОбъектам КАК КлючиДоступаКОбъектам + #Если СтрСодержит(&СпискиСОграничениемЧерезКлючиДоступаГруппДоступа, #ИмяТекущейТаблицы + ":#ПолеОбъекта;") #Тогда + ЛЕВОЕ СОЕДИНЕНИЕ РегистрСведений.КлючиДоступаНаборовГруппДоступа КАК КлючиДоступаНаборовГруппДоступа + ПО + #Если &ТекущийВнешнийПользователь = Значение(Справочник.ВнешниеПользователи.ПустаяСсылка) #Тогда + КлючиДоступаНаборовГруппДоступа.КлючДоступа = КлючиДоступаКОбъектам.КлючДоступаПользователей + #Иначе + КлючиДоступаНаборовГруппДоступа.КлючДоступа = КлючиДоступаКОбъектам.КлючДоступаВнешнихПользователей + #КонецЕсли + И КлючиДоступаНаборовГруппДоступа.НаборГруппДоступа = &РазрешенныйНаборГруппДоступа + #КонецЕсли + #Если СтрСодержит(&СпискиСОграничениемЧерезКлючиДоступаГруппДоступа, #ИмяТекущейТаблицы + ":#ПолеОбъекта;*") #Тогда + + ЛЕВОЕ СОЕДИНЕНИЕ РегистрСведений.КлючиДоступаНаборовГруппДоступа КАК КлючиДоступаРазрешенногоНабораГруппДоступа + ПО + #Если &ТекущийВнешнийПользователь = Значение(Справочник.ВнешниеПользователи.ПустаяСсылка) #Тогда + КлючиДоступаРазрешенногоНабораГруппДоступа.КлючДоступа = КлючиДоступаКОбъектам.КлючДоступаПользователей + #Иначе + КлючиДоступаРазрешенногоНабораГруппДоступа.КлючДоступа = КлючиДоступаКОбъектам.КлючДоступаВнешнихПользователей + #КонецЕсли + И КлючиДоступаРазрешенногоНабораГруппДоступа.НаборГруппДоступа = &РазрешенныйПустойНаборГруппДоступа + #КонецЕсли + #Если СтрСодержит(&СпискиСОграничениемЧерезКлючиДоступаПользователей, #ИмяТекущейТаблицы + ":#ПолеОбъекта;") #Тогда + + #Если &ТекущийВнешнийПользователь = Значение(Справочник.ВнешниеПользователи.ПустаяСсылка) #Тогда + ЛЕВОЕ СОЕДИНЕНИЕ РегистрСведений.КлючиДоступаПользователей КАК КлючиДоступаПользователей + ПО + КлючиДоступаПользователей.КлючДоступа = КлючиДоступаКОбъектам.КлючДоступаПользователей + И КлючиДоступаПользователей.Пользователь = &РазрешенныйПользователь + #Иначе + ЛЕВОЕ СОЕДИНЕНИЕ РегистрСведений.КлючиДоступаВнешнихПользователей КАК КлючиДоступаПользователей + ПО + КлючиДоступаПользователей.КлючДоступа = КлючиДоступаКОбъектам.КлючДоступаВнешнихПользователей + И КлючиДоступаПользователей.ВнешнийПользователь = &РазрешенныйПользователь + #КонецЕсли + #КонецЕсли + #Если СтрСодержит(&СпискиСОграничениемЧерезКлючиДоступаПользователей, #ИмяТекущейТаблицы + ":#ПолеОбъекта;+") #Тогда + + #Если &ТекущийВнешнийПользователь = Значение(Справочник.ВнешниеПользователи.ПустаяСсылка) #Тогда + ЛЕВОЕ СОЕДИНЕНИЕ РегистрСведений.КлючиДоступаПользователей КАК КлючиДоступаНаборовГруппПользователей + ПО + КлючиДоступаНаборовГруппПользователей.КлючДоступа = КлючиДоступаКОбъектам.КлючДоступаПользователей + И КлючиДоступаНаборовГруппПользователей.Пользователь = &РазрешенныйНаборГруппПользователей + #Иначе + ЛЕВОЕ СОЕДИНЕНИЕ РегистрСведений.КлючиДоступаВнешнихПользователей КАК КлючиДоступаНаборовГруппПользователей + ПО + КлючиДоступаНаборовГруппПользователей.КлючДоступа = КлючиДоступаКОбъектам.КлючДоступаВнешнихПользователей + И КлючиДоступаНаборовГруппПользователей.ВнешнийПользователь = &РазрешенныйНаборГруппПользователей + #КонецЕсли + #КонецЕсли + ГДЕ + #Если "#ПолеОбъекта" = "" + Или СтрСодержит(&СпискиСОграничениемЧерезКлючиДоступаГруппДоступа, #ИмяТекущейТаблицы + ":#ПолеОбъекта;;-") + Или СтрСодержит(&СпискиСОграничениемЧерезКлючиДоступаГруппДоступа, #ИмяТекущейТаблицы + ":#ПолеОбъекта;*;-") + Или СтрСодержит(&СпискиСОграничениемЧерезКлючиДоступаПользователей, #ИмяТекущейТаблицы + ":#ПолеОбъекта;;-") + Или СтрСодержит(&СпискиСОграничениемЧерезКлючиДоступаПользователей, #ИмяТекущейТаблицы + ":#ПолеОбъекта;+;-") #Тогда + КлючиДоступаКОбъектам.Объект = ТекущаяТаблица.Ссылка + #Иначе + КлючиДоступаКОбъектам.Объект = ТекущаяТаблица.#ПолеОбъекта + #КонецЕсли + И ( + #Если СтрСодержит(&СпискиСОграничениемЧерезКлючиДоступаГруппДоступа, #ИмяТекущейТаблицы + ":#ПолеОбъекта;") #Тогда + НЕ КлючиДоступаНаборовГруппДоступа.КлючДоступа ЕСТЬ NULL + #Иначе + ЛОЖЬ + #КонецЕсли + #Если СтрСодержит(&СпискиСОграничениемЧерезКлючиДоступаГруппДоступа, #ИмяТекущейТаблицы + ":#ПолеОбъекта;*") #Тогда + ИЛИ НЕ КлючиДоступаРазрешенногоНабораГруппДоступа.КлючДоступа ЕСТЬ NULL + #КонецЕсли + #Если СтрСодержит(&СпискиСОграничениемЧерезКлючиДоступаПользователей, #ИмяТекущейТаблицы + ":#ПолеОбъекта;") #Тогда + ИЛИ НЕ КлючиДоступаПользователей.КлючДоступа ЕСТЬ NULL + #КонецЕсли + #Если СтрСодержит(&СпискиСОграничениемЧерезКлючиДоступаПользователей, #ИмяТекущейТаблицы + ":#ПолеОбъекта;+") #Тогда + ИЛИ НЕ КлючиДоступаНаборовГруппПользователей.КлючДоступа ЕСТЬ NULL + #КонецЕсли + ) + ) + + #Если Не СтрСодержит(&ОбщиеПараметрыШаблоновОграниченияДоступа, #ИмяТекущейТаблицы + ":Пропустить;") + И ( СтрСодержит(&ОбщиеПараметрыШаблоновОграниченияДоступа, ";УточнитьДляВсех;") + Или СтрСодержит(&ОбщиеПараметрыШаблоновОграниченияДоступа, #ИмяТекущейТаблицы + ":Уточнить;") ) #Тогда + + #Если Не СтрСодержит(&СпискиСОграничениемЧерезКлючиДоступаПользователей, #ИмяТекущейТаблицы + ":#ПолеОбъекта;") #Тогда + И ИСТИНА В (ИСТИНА + #Если СтрСодержит(&ОбщиеПараметрыШаблоновОграниченияДоступа, ";31;") #Тогда ,ИСТИНА #Иначе ,ЛОЖЬ #КонецЕсли + #Если СтрСодержит(&ОбщиеПараметрыШаблоновОграниченияДоступа, ";30;") #Тогда ,ИСТИНА #Иначе ,ЛОЖЬ #КонецЕсли + #Если СтрСодержит(&ОбщиеПараметрыШаблоновОграниченияДоступа, ";29;") #Тогда ,ИСТИНА #Иначе ,ЛОЖЬ #КонецЕсли + #Если СтрСодержит(&ОбщиеПараметрыШаблоновОграниченияДоступа, ";28;") #Тогда ,ИСТИНА #Иначе ,ЛОЖЬ #КонецЕсли + #Если СтрСодержит(&ОбщиеПараметрыШаблоновОграниченияДоступа, ";27;") #Тогда ,ИСТИНА #Иначе ,ЛОЖЬ #КонецЕсли + #Если СтрСодержит(&ОбщиеПараметрыШаблоновОграниченияДоступа, ";26;") #Тогда ,ИСТИНА #Иначе ,ЛОЖЬ #КонецЕсли + #Если СтрСодержит(&ОбщиеПараметрыШаблоновОграниченияДоступа, ";25;") #Тогда ,ИСТИНА #Иначе ,ЛОЖЬ #КонецЕсли + #Если СтрСодержит(&ОбщиеПараметрыШаблоновОграниченияДоступа, ";24;") #Тогда ,ИСТИНА #Иначе ,ЛОЖЬ #КонецЕсли + #Если СтрСодержит(&ОбщиеПараметрыШаблоновОграниченияДоступа, ";23;") #Тогда ,ИСТИНА #Иначе ,ЛОЖЬ #КонецЕсли + #Если СтрСодержит(&ОбщиеПараметрыШаблоновОграниченияДоступа, ";22;") #Тогда ,ИСТИНА #Иначе ,ЛОЖЬ #КонецЕсли + #Если СтрСодержит(&ОбщиеПараметрыШаблоновОграниченияДоступа, ";21;") #Тогда ,ИСТИНА #Иначе ,ЛОЖЬ #КонецЕсли + #Если СтрСодержит(&ОбщиеПараметрыШаблоновОграниченияДоступа, ";20;") #Тогда ,ИСТИНА #Иначе ,ЛОЖЬ #КонецЕсли + #Если СтрСодержит(&ОбщиеПараметрыШаблоновОграниченияДоступа, ";19;") #Тогда ,ИСТИНА #Иначе ,ЛОЖЬ #КонецЕсли + #Если СтрСодержит(&ОбщиеПараметрыШаблоновОграниченияДоступа, ";18;") #Тогда ,ИСТИНА #Иначе ,ЛОЖЬ #КонецЕсли + #Если СтрСодержит(&ОбщиеПараметрыШаблоновОграниченияДоступа, ";17;") #Тогда ,ИСТИНА #Иначе ,ЛОЖЬ #КонецЕсли + #Если СтрСодержит(&ОбщиеПараметрыШаблоновОграниченияДоступа, ";16;") #Тогда ,ИСТИНА #Иначе ,ЛОЖЬ #КонецЕсли + #Если СтрСодержит(&ОбщиеПараметрыШаблоновОграниченияДоступа, ";15;") #Тогда ,ИСТИНА #Иначе ,ЛОЖЬ #КонецЕсли + #Если СтрСодержит(&ОбщиеПараметрыШаблоновОграниченияДоступа, ";14;") #Тогда ,ИСТИНА #Иначе ,ЛОЖЬ #КонецЕсли + #Если СтрСодержит(&ОбщиеПараметрыШаблоновОграниченияДоступа, ";13;") #Тогда ,ИСТИНА #Иначе ,ЛОЖЬ #КонецЕсли + #Если СтрСодержит(&ОбщиеПараметрыШаблоновОграниченияДоступа, ";12;") #Тогда ,ИСТИНА #Иначе ,ЛОЖЬ #КонецЕсли + #Если СтрСодержит(&ОбщиеПараметрыШаблоновОграниченияДоступа, ";11;") #Тогда ,ИСТИНА #Иначе ,ЛОЖЬ #КонецЕсли + #Если СтрСодержит(&ОбщиеПараметрыШаблоновОграниченияДоступа, ";10;") #Тогда ,ИСТИНА #Иначе ,ЛОЖЬ #КонецЕсли + #Если СтрСодержит(&ОбщиеПараметрыШаблоновОграниченияДоступа, ";09;") #Тогда ,ИСТИНА #Иначе ,ЛОЖЬ #КонецЕсли + #Если СтрСодержит(&ОбщиеПараметрыШаблоновОграниченияДоступа, ";08;") #Тогда ,ИСТИНА #Иначе ,ЛОЖЬ #КонецЕсли + #Если СтрСодержит(&ОбщиеПараметрыШаблоновОграниченияДоступа, ";07;") #Тогда ,ИСТИНА #Иначе ,ЛОЖЬ #КонецЕсли + #Если СтрСодержит(&ОбщиеПараметрыШаблоновОграниченияДоступа, ";06;") #Тогда ,ИСТИНА #Иначе ,ЛОЖЬ #КонецЕсли + #Если СтрСодержит(&ОбщиеПараметрыШаблоновОграниченияДоступа, ";05;") #Тогда ,ИСТИНА #Иначе ,ЛОЖЬ #КонецЕсли + #Если СтрСодержит(&ОбщиеПараметрыШаблоновОграниченияДоступа, ";04;") #Тогда ,ИСТИНА #Иначе ,ЛОЖЬ #КонецЕсли + #Если СтрСодержит(&ОбщиеПараметрыШаблоновОграниченияДоступа, ";03;") #Тогда ,ИСТИНА #Иначе ,ЛОЖЬ #КонецЕсли + #Если СтрСодержит(&ОбщиеПараметрыШаблоновОграниченияДоступа, ";02;") #Тогда ,ИСТИНА #Иначе ,ЛОЖЬ #КонецЕсли + #Если СтрСодержит(&ОбщиеПараметрыШаблоновОграниченияДоступа, ";01;") #Тогда ,ИСТИНА #Иначе ,ЛОЖЬ #КонецЕсли + #Если СтрСодержит(&ОбщиеПараметрыШаблоновОграниченияДоступа, ";00;") #Тогда ,ИСТИНА #Иначе ,ЛОЖЬ #КонецЕсли + ) + #Иначе + И ИСТИНА В (ИСТИНА + #Если СтрСодержит(&ОбщиеПараметрыШаблоновОграниченияДоступа, ";31^;") #Тогда ,ИСТИНА #Иначе ,ЛОЖЬ #КонецЕсли + #Если СтрСодержит(&ОбщиеПараметрыШаблоновОграниченияДоступа, ";30^;") #Тогда ,ИСТИНА #Иначе ,ЛОЖЬ #КонецЕсли + #Если СтрСодержит(&ОбщиеПараметрыШаблоновОграниченияДоступа, ";29^;") #Тогда ,ИСТИНА #Иначе ,ЛОЖЬ #КонецЕсли + #Если СтрСодержит(&ОбщиеПараметрыШаблоновОграниченияДоступа, ";28^;") #Тогда ,ИСТИНА #Иначе ,ЛОЖЬ #КонецЕсли + #Если СтрСодержит(&ОбщиеПараметрыШаблоновОграниченияДоступа, ";27^;") #Тогда ,ИСТИНА #Иначе ,ЛОЖЬ #КонецЕсли + #Если СтрСодержит(&ОбщиеПараметрыШаблоновОграниченияДоступа, ";26^;") #Тогда ,ИСТИНА #Иначе ,ЛОЖЬ #КонецЕсли + #Если СтрСодержит(&ОбщиеПараметрыШаблоновОграниченияДоступа, ";25^;") #Тогда ,ИСТИНА #Иначе ,ЛОЖЬ #КонецЕсли + #Если СтрСодержит(&ОбщиеПараметрыШаблоновОграниченияДоступа, ";24^;") #Тогда ,ИСТИНА #Иначе ,ЛОЖЬ #КонецЕсли + #Если СтрСодержит(&ОбщиеПараметрыШаблоновОграниченияДоступа, ";23^;") #Тогда ,ИСТИНА #Иначе ,ЛОЖЬ #КонецЕсли + #Если СтрСодержит(&ОбщиеПараметрыШаблоновОграниченияДоступа, ";22^;") #Тогда ,ИСТИНА #Иначе ,ЛОЖЬ #КонецЕсли + #Если СтрСодержит(&ОбщиеПараметрыШаблоновОграниченияДоступа, ";21^;") #Тогда ,ИСТИНА #Иначе ,ЛОЖЬ #КонецЕсли + #Если СтрСодержит(&ОбщиеПараметрыШаблоновОграниченияДоступа, ";20^;") #Тогда ,ИСТИНА #Иначе ,ЛОЖЬ #КонецЕсли + #Если СтрСодержит(&ОбщиеПараметрыШаблоновОграниченияДоступа, ";19^;") #Тогда ,ИСТИНА #Иначе ,ЛОЖЬ #КонецЕсли + #Если СтрСодержит(&ОбщиеПараметрыШаблоновОграниченияДоступа, ";18^;") #Тогда ,ИСТИНА #Иначе ,ЛОЖЬ #КонецЕсли + #Если СтрСодержит(&ОбщиеПараметрыШаблоновОграниченияДоступа, ";17^;") #Тогда ,ИСТИНА #Иначе ,ЛОЖЬ #КонецЕсли + #Если СтрСодержит(&ОбщиеПараметрыШаблоновОграниченияДоступа, ";16^;") #Тогда ,ИСТИНА #Иначе ,ЛОЖЬ #КонецЕсли + #Если СтрСодержит(&ОбщиеПараметрыШаблоновОграниченияДоступа, ";15^;") #Тогда ,ИСТИНА #Иначе ,ЛОЖЬ #КонецЕсли + #Если СтрСодержит(&ОбщиеПараметрыШаблоновОграниченияДоступа, ";14^;") #Тогда ,ИСТИНА #Иначе ,ЛОЖЬ #КонецЕсли + #Если СтрСодержит(&ОбщиеПараметрыШаблоновОграниченияДоступа, ";13^;") #Тогда ,ИСТИНА #Иначе ,ЛОЖЬ #КонецЕсли + #Если СтрСодержит(&ОбщиеПараметрыШаблоновОграниченияДоступа, ";12^;") #Тогда ,ИСТИНА #Иначе ,ЛОЖЬ #КонецЕсли + #Если СтрСодержит(&ОбщиеПараметрыШаблоновОграниченияДоступа, ";11^;") #Тогда ,ИСТИНА #Иначе ,ЛОЖЬ #КонецЕсли + #Если СтрСодержит(&ОбщиеПараметрыШаблоновОграниченияДоступа, ";10^;") #Тогда ,ИСТИНА #Иначе ,ЛОЖЬ #КонецЕсли + #Если СтрСодержит(&ОбщиеПараметрыШаблоновОграниченияДоступа, ";09^;") #Тогда ,ИСТИНА #Иначе ,ЛОЖЬ #КонецЕсли + #Если СтрСодержит(&ОбщиеПараметрыШаблоновОграниченияДоступа, ";08^;") #Тогда ,ИСТИНА #Иначе ,ЛОЖЬ #КонецЕсли + #Если СтрСодержит(&ОбщиеПараметрыШаблоновОграниченияДоступа, ";07^;") #Тогда ,ИСТИНА #Иначе ,ЛОЖЬ #КонецЕсли + #Если СтрСодержит(&ОбщиеПараметрыШаблоновОграниченияДоступа, ";06^;") #Тогда ,ИСТИНА #Иначе ,ЛОЖЬ #КонецЕсли + #Если СтрСодержит(&ОбщиеПараметрыШаблоновОграниченияДоступа, ";05^;") #Тогда ,ИСТИНА #Иначе ,ЛОЖЬ #КонецЕсли + #Если СтрСодержит(&ОбщиеПараметрыШаблоновОграниченияДоступа, ";04^;") #Тогда ,ИСТИНА #Иначе ,ЛОЖЬ #КонецЕсли + #Если СтрСодержит(&ОбщиеПараметрыШаблоновОграниченияДоступа, ";03^;") #Тогда ,ИСТИНА #Иначе ,ЛОЖЬ #КонецЕсли + #Если СтрСодержит(&ОбщиеПараметрыШаблоновОграниченияДоступа, ";02^;") #Тогда ,ИСТИНА #Иначе ,ЛОЖЬ #КонецЕсли + #Если СтрСодержит(&ОбщиеПараметрыШаблоновОграниченияДоступа, ";01^;") #Тогда ,ИСТИНА #Иначе ,ЛОЖЬ #КонецЕсли + #Если СтрСодержит(&ОбщиеПараметрыШаблоновОграниченияДоступа, ";00^;") #Тогда ,ИСТИНА #Иначе ,ЛОЖЬ #КонецЕсли + ) + #КонецЕсли + #КонецЕсли + +#КонецЕсли + + + ПоЗначениям + // ПоЗначениям(Таблица, -, Модификатор, В1,П1, В2,П2, ..., В(n), П(n)). +// № параметра: 1, 2, 3, 4, 5, 6, 7, ..., 2+n*2,3+n*2. +// Читается так: "ограничение доступа по значениям". +// Параметры: +// Таблица - Имя текущей таблицы, например "Документ.ПоступлениеТоваровИУслуг". +// Модификатор - изменяет шаблон. +// 1-й модификатор - строка "НеОграничиватьДоступКГруппам" указывает +// безусловно выбирать группы иерархического справочника. +// Других модификаторов в этой версии шаблона не предусмотрено. +// В(n) - Вид доступа - имя вида доступа, например, "Организации". Для полей составного типа, с целью повышения +// производительности, лучше указать несколько имен, например, "Организации,ГруппыФизическихЛиц", +// чем использовать несколько блоков параметров, с одним и тем же именем поля. +// Специальные виды доступа "Условие", "НастройкиПрав", "ПравоЧтения", "ПравоИзменения", +// "ПравоЧтенияПоИдентификатору", "ПравоИзмененияПоИдентификатору" можно использовать только отдельно. +// Когда В(n) = "Условие" (или ""), тогда П(n) содержит строку условия на языке запросов, например +// "Т.Автор = &АвторизованныйПользователь", +// "ТИПЗНАЧЕНИЯ(Т.Владелец) = ТИП(Справочник.Организации)", где Т - псевдоним текущей таблицы. +// Когда В(n) = "ПравоЧтения" Или "ПравоИзменения", +// выполняется проверка наличия права на таблицу значения Т.П(n). +// Когда В(n) = "ПравоЧтенияПоИдентификатору" или "ПравоИзмененияПоИдентификатору", +// выполняется проверка наличия права на таблицу по идентификатору в значении Т.П(n). +// П(n) - Поле проверяемого значения, кроме случая В(n) = "Условие" (или ""). +// Примечение: максимальное количество одновременно проверяемых значений полей можно увеличить, изменив шаблон, но +// необходимо будет указывать все параметры шаблона, т.е. указывать пустые строки, когда количество полей меньше максимального. +// Шаблон имеет структуру: +// <Общая часть условий> <Условие по группе параметров 1> И <Условие по группе параметров 2> И ... <Условие по группе параметров(n)> +// Пример: +// ПоЗначениям("Документ.ПоступлениеТоваровИУслуг", "", "", +// "Организации","Организация", +// "Поставщики","Контрагент", "","", ...) + +#Если &ОграничениеДоступаНаУровнеЗаписейИспользуется = "" #Тогда // Информационная база заблокирована для обновления. + ГДЕ ЛОЖЬ + +#ИначеЕсли Не СтрСодержит(&ВерсииШаблоновОграниченияДоступа, ",ПоЗначениям18,") #Тогда + Ошибка: Требуется обновить шаблон на актуальную версию, поставляемую в роли ИзменениеУчастниковГруппДоступа по причине: Используется устаревшая версия 18 шаблона ограничения доступа ПоЗначениям. Объект: #ИмяТекущейТаблицы, Право: #ИмяТекущегоПраваДоступа. + +#Иначе + +// Проверка правильности параметра Право. +#Если Не ("#Параметр(2)" = "Чтение" Или "#Параметр(2)" = "Добавление" Или + "#Параметр(2)" = "Изменение" Или "#Параметр(2)" = "Удаление" Или "#Параметр(2)" = "") + Или #ИмяТекущегоПраваДоступа <> "Чтение" И "#Параметр(2)" = "Чтение" + Или #ИмяТекущегоПраваДоступа = "Чтение" И "#Параметр(2)" <> "Чтение" И "#Параметр(2)" <> "" #Тогда + // Когда параметр задан неверно, вставляется строка, чтобы вызвать ошибку сборки ограничения доступа. + НеверноеПраво: #Параметр(2) +#КонецЕсли + +// Проверка правильности параметра ИмяТаблицы. +#Если "#Параметр(1)" <> #ИмяТекущейТаблицы #Тогда + // Когда параметр задан неверно, вставляется строка, чтобы вызвать ошибку сборки ограничения доступа. + НеверноеИмяТекущейТаблицы: "#Параметр(1)" +#КонецЕсли + +// Проверка правильности параметра Модификатор. +#Если Не ("#Параметр(3)" = "НеОграничиватьДоступКГруппам" Или "#Параметр(3)" = "") #Тогда + // Когда параметр задан неверно, вставляется строка, чтобы вызвать ошибку сборки ограничения доступа. + НеверныйМодификатор: #Параметр(3) +#КонецЕсли + +// Общая проверка использования ограничений доступа на уровне записей и +// проверка использования хотя бы одного ограничения из указанных видов доступа. +#Если Не + ( Истина + И ("#Параметр(4)" = "" И "#Параметр(5)" = "" + Или Не &ОграничениеДоступаНаУровнеЗаписейИспользуется + И Не СтрСодержит(",Объект, ,ПравоЧтения,ПравоИзменения,ПравоЧтенияПоИдентификатору,ПравоИзмененияПоИдентификатору,", ",#Параметр(4),")) + И ("#Параметр(6)" = "" И "#Параметр(7)" = "" + Или Не &ОграничениеДоступаНаУровнеЗаписейИспользуется + И Не СтрСодержит(",Объект, ,ПравоЧтения,ПравоИзменения,ПравоЧтенияПоИдентификатору,ПравоИзмененияПоИдентификатору,", ",#Параметр(6),")) + И ("#Параметр(8)" = "" И "#Параметр(9)" = "" + Или Не &ОграничениеДоступаНаУровнеЗаписейИспользуется + И Не СтрСодержит(",Объект, ,ПравоЧтения,ПравоИзменения,ПравоЧтенияПоИдентификатору,ПравоИзмененияПоИдентификатору,", ",#Параметр(8),")) + И ("#Параметр(10)" = "" И "#Параметр(11)" = "" + Или Не &ОграничениеДоступаНаУровнеЗаписейИспользуется + И Не СтрСодержит(",Объект, ,ПравоЧтения,ПравоИзменения,ПравоЧтенияПоИдентификатору,ПравоИзмененияПоИдентификатору,", ",#Параметр(10),")) + И ("#Параметр(12)" = "" И "#Параметр(13)" = "" + Или Не &ОграничениеДоступаНаУровнеЗаписейИспользуется + И Не СтрСодержит(",Объект, ,ПравоЧтения,ПравоИзменения,ПравоЧтенияПоИдентификатору,ПравоИзмененияПоИдентификатору,", ",#Параметр(12),")) + И ("#Параметр(14)" = "" И "#Параметр(15)" = "" + Или Не &ОграничениеДоступаНаУровнеЗаписейИспользуется + И Не СтрСодержит(",Объект, ,ПравоЧтения,ПравоИзменения,ПравоЧтенияПоИдентификатору,ПравоИзмененияПоИдентификатору,", ",#Параметр(14),")) + И ("#Параметр(16)" = "" И "#Параметр(17)" = "" + Или Не &ОграничениеДоступаНаУровнеЗаписейИспользуется + И Не СтрСодержит(",Объект, ,ПравоЧтения,ПравоИзменения,ПравоЧтенияПоИдентификатору,ПравоИзмененияПоИдентификатору,", ",#Параметр(16),")) + И ("#Параметр(18)" = "" И "#Параметр(19)" = "" + Или Не &ОграничениеДоступаНаУровнеЗаписейИспользуется + И Не СтрСодержит(",Объект, ,ПравоЧтения,ПравоИзменения,ПравоЧтенияПоИдентификатору,ПравоИзмененияПоИдентификатору,", ",#Параметр(18),")) + И ("#Параметр(20)" = "" И "#Параметр(21)" = "" + Или Не &ОграничениеДоступаНаУровнеЗаписейИспользуется + И Не СтрСодержит(",Объект, ,ПравоЧтения,ПравоИзменения,ПравоЧтенияПоИдентификатору,ПравоИзмененияПоИдентификатору,", ",#Параметр(20),")) + И ("#Параметр(22)" = "" И "#Параметр(23)" = "" + Или Не &ОграничениеДоступаНаУровнеЗаписейИспользуется + И Не СтрСодержит(",Объект, ,ПравоЧтения,ПравоИзменения,ПравоЧтенияПоИдентификатору,ПравоИзмененияПоИдентификатору,", ",#Параметр(22),")) + И ("#Параметр(24)" = "" И "#Параметр(25)" = "" + Или Не &ОграничениеДоступаНаУровнеЗаписейИспользуется + И Не СтрСодержит(",Объект, ,ПравоЧтения,ПравоИзменения,ПравоЧтенияПоИдентификатору,ПравоИзмененияПоИдентификатору,", ",#Параметр(24),")) + И ("#Параметр(26)" = "" И "#Параметр(27)" = "" + Или Не &ОграничениеДоступаНаУровнеЗаписейИспользуется + И Не СтрСодержит(",Объект, ,ПравоЧтения,ПравоИзменения,ПравоЧтенияПоИдентификатору,ПравоИзмененияПоИдентификатору,", ",#Параметр(26),")) + И ("#Параметр(28)" = "" И "#Параметр(29)" = "" + Или Не &ОграничениеДоступаНаУровнеЗаписейИспользуется + И Не СтрСодержит(",Объект, ,ПравоЧтения,ПравоИзменения,ПравоЧтенияПоИдентификатору,ПравоИзмененияПоИдентификатору,", ",#Параметр(28),")) + И ("#Параметр(30)" = "" И "#Параметр(31)" = "" + Или Не &ОграничениеДоступаНаУровнеЗаписейИспользуется + И Не СтрСодержит(",Объект, ,ПравоЧтения,ПравоИзменения,ПравоЧтенияПоИдентификатору,ПравоИзмененияПоИдентификатору,", ",#Параметр(30),")) + И ("#Параметр(32)" = "" И "#Параметр(33)" = "" + Или Не &ОграничениеДоступаНаУровнеЗаписейИспользуется + И Не СтрСодержит(",Объект, ,ПравоЧтения,ПравоИзменения,ПравоЧтенияПоИдентификатору,ПравоИзмененияПоИдентификатору,", ",#Параметр(32),")) + И ("#Параметр(34)" = "" И "#Параметр(35)" = "" + Или Не &ОграничениеДоступаНаУровнеЗаписейИспользуется + И Не СтрСодержит(",Объект, ,ПравоЧтения,ПравоИзменения,ПравоЧтенияПоИдентификатору,ПравоИзмененияПоИдентификатору,", ",#Параметр(34),")) + ) #Тогда + +Т ГДЕ // Т - псевдоним текущей таблицы (выбран коротким, чтобы сократить количество символов в тексте параметра-условия на языке запросов). + +ИСТИНА В +( // Проверка права пользователя на текущую таблицу в целом. + // Права на таблицы формируются по составу ролей профиля группы доступа. + ВЫБРАТЬ ПЕРВЫЕ 1 ИСТИНА + ИЗ + #Если СтрСодержит(&ТаблицыРасширенийСОграничениемДоступа, "|#Параметр(1);") #Тогда + Справочник.ИдентификаторыОбъектовРасширений КАК СвойстваТекущейТаблицы + #Иначе + Справочник.ИдентификаторыОбъектовМетаданных КАК СвойстваТекущейТаблицы + #КонецЕсли + ВНУТРЕННЕЕ СОЕДИНЕНИЕ Справочник.ГруппыДоступа КАК ГруппыДоступа + ПО + СвойстваТекущейТаблицы.ПолноеИмя = "#Параметр(1)" + И ИСТИНА В + ( + ВЫБРАТЬ ПЕРВЫЕ 1 ИСТИНА + ИЗ + РегистрСведений.ТаблицыГруппДоступа КАК ТаблицыГруппДоступа + ГДЕ + ТаблицыГруппДоступа.Таблица = СвойстваТекущейТаблицы.Ссылка + И ТаблицыГруппДоступа.ГруппаДоступа = ГруппыДоступа.Ссылка + #Если #ИмяТекущегоПраваДоступа = "Изменение" #Тогда + И ТаблицыГруппДоступа.ПравоИзменение + #ИначеЕсли #ИмяТекущегоПраваДоступа = "Добавление" #Тогда + И ТаблицыГруппДоступа.ПравоДобавление + #КонецЕсли + ) + И ГруппыДоступа.Ссылка В + ( + ВЫБРАТЬ + ГруппыДоступаПользователи.Ссылка КАК ГруппаДоступа + ИЗ + Справочник.ГруппыДоступа.Пользователи КАК ГруппыДоступаПользователи + ВНУТРЕННЕЕ СОЕДИНЕНИЕ РегистрСведений.СоставыГруппПользователей КАК СоставыГруппПользователей + ПО + СоставыГруппПользователей.Пользователь = &АвторизованныйПользователь + И СоставыГруппПользователей.ГруппаПользователей = ГруппыДоступаПользователи.Пользователь + ) + ГДЕ + +// Безусловная выборка групп в иерархическом объекте метаданных (если нужно). +#Если "#Параметр(3)" = "НеОграничиватьДоступКГруппам" #Тогда + Т.ЭтоГруппа ИЛИ +#КонецЕсли + + ( // Поиск значений заданных полей в разрешенных значениях групп доступа (пользователей). + +//// Проверка значения поля группы параметров 1. +#Если &ОграничениеДоступаНаУровнеЗаписейИспользуется И ("#Параметр(4)" = "Условие" Или "#Параметр(4)" = "") #Тогда + // Когда имя вида доступа "Условие" (или ""), тогда вместо имени поля задано условие. + ( #Параметр(5) ) +#ИначеЕсли "#Параметр(4)" = "ПравоЧтения" Или "#Параметр(4)" = "ПравоИзменения" #Тогда + Т.#Параметр(5) <> НЕОПРЕДЕЛЕНО + И ИСТИНА В + ( // Проверка права пользователя на таблицу Значения, установленного в поле. + ВЫБРАТЬ ПЕРВЫЕ 1 ИСТИНА + ИЗ РегистрСведений.ТаблицыГруппДоступа КАК ТаблицыГруппДоступаПроверкаПрава + ГДЕ + ТаблицыГруппДоступаПроверкаПрава.ГруппаДоступа = ГруппыДоступа.Ссылка + И ТИПЗНАЧЕНИЯ(ТаблицыГруппДоступаПроверкаПрава.ТипТаблицы) = ТИПЗНАЧЕНИЯ(Т.#Параметр(5)) + #Если Не "#Параметр(4)" = "ПравоЧтения" #Тогда + И ТаблицыГруппДоступаПроверкаПрава.ПравоИзменение + #КонецЕсли + ) +#ИначеЕсли "#Параметр(4)" = "ПравоЧтенияПоИдентификатору" Или "#Параметр(4)" = "ПравоИзмененияПоИдентификатору" #Тогда + ИСТИНА В + ( // Проверка права пользователя на таблицу, идентификатор которой указан в Значении, установленном в поле. + ВЫБРАТЬ ПЕРВЫЕ 1 ИСТИНА + ИЗ РегистрСведений.ТаблицыГруппДоступа КАК ТаблицыГруппДоступаПроверкаПрава + ГДЕ + ТаблицыГруппДоступаПроверкаПрава.ГруппаДоступа = ГруппыДоступа.Ссылка + И ТаблицыГруппДоступаПроверкаПрава.Таблица = Т.#Параметр(5) + #Если Не "#Параметр(4)" = "ПравоЧтенияПоИдентификатору" #Тогда + И ТаблицыГруппДоступаПроверкаПрава.ПравоИзменение + #КонецЕсли + ) +#ИначеЕсли Не &ОграничениеДоступаНаУровнеЗаписейИспользуется #Тогда + ИСТИНА // Группа параметров отключена. +#ИначеЕсли "#Параметр(4)" = "НастройкиПрав" #Тогда + + ( + ИСТИНА В // Проверка, что пользователю или какой-нибудь группе пользователя право разрешено + ( + ВЫБРАТЬ ПЕРВЫЕ 1 ИСТИНА + ИЗ РегистрСведений.НастройкиПравОбъектов КАК НастройкиПрав + ВНУТРЕННЕЕ СОЕДИНЕНИЕ РегистрСведений.НаследованиеНастроекПравОбъектов КАК НаследованиеНастроек + ПО + НаследованиеНастроек.Объект = Т.#Параметр(5) + И НастройкиПрав.Объект = НаследованиеНастроек.Родитель + #Если #ИмяТекущегоПраваДоступа = "Чтение" #Тогда + И НаследованиеНастроек.УровеньИспользования < НастройкиПрав.УровеньРазрешенияЧтения + #Иначе + #Если СтрСодержит(&ТаблицыСОтдельнымиНастройкамиПрав, "|#Параметр(1);") #Тогда + И НастройкиПрав.Таблица = СвойстваТекущейТаблицы.Ссылка + #Иначе + И НастройкиПрав.Таблица = ЗНАЧЕНИЕ(Справочник.ИдентификаторыОбъектовМетаданных.ПустаяСсылка) + #КонецЕсли + И НаследованиеНастроек.УровеньИспользования < НастройкиПрав.УровеньРазрешенияИзменения + #КонецЕсли + ВНУТРЕННЕЕ СОЕДИНЕНИЕ РегистрСведений.СоставыГруппПользователей КАК СоставыГруппПользователей + ПО + СоставыГруппПользователей.Пользователь = &АвторизованныйПользователь + И СоставыГруппПользователей.ГруппаПользователей = НастройкиПрав.Пользователь + ) + И НЕ ЛОЖЬ В // Проверка, что пользователю или какой-нибудь группе пользователя право запрещено. + ( + ВЫБРАТЬ ПЕРВЫЕ 1 ЛОЖЬ + ИЗ РегистрСведений.НастройкиПравОбъектов КАК НастройкиПрав + ВНУТРЕННЕЕ СОЕДИНЕНИЕ РегистрСведений.НаследованиеНастроекПравОбъектов КАК НаследованиеНастроек + ПО + НаследованиеНастроек.Объект = Т.#Параметр(5) + И НастройкиПрав.Объект = НаследованиеНастроек.Родитель + #Если #ИмяТекущегоПраваДоступа = "Чтение" #Тогда + И НаследованиеНастроек.УровеньИспользования < НастройкиПрав.УровеньЗапрещенияЧтения + #Иначе + #Если СтрСодержит(&ТаблицыСОтдельнымиНастройкамиПрав, "|#Параметр(1);") #Тогда + И НастройкиПрав.Таблица = СвойстваТекущейТаблицы.Ссылка + #Иначе + И НастройкиПрав.Таблица = ЗНАЧЕНИЕ(Справочник.ИдентификаторыОбъектовМетаданных.ПустаяСсылка) + #КонецЕсли + И НаследованиеНастроек.УровеньИспользования < НастройкиПрав.УровеньЗапрещенияИзменения + #КонецЕсли + ВНУТРЕННЕЕ СОЕДИНЕНИЕ РегистрСведений.СоставыГруппПользователей КАК СоставыГруппПользователей + ПО + СоставыГруппПользователей.Пользователь = &АвторизованныйПользователь + И СоставыГруппПользователей.ГруппаПользователей = НастройкиПрав.Пользователь + ) + ) +#ИначеЕсли Не СтрСодержит(&ВсеВидыДоступаКромеСпециальных, ",#Параметр(4),") #Тогда + // Когда параметр задан неверно, вставляется строка, чтобы вызвать ошибку сборки ограничения доступа. + #Если СтрСодержит("#Параметр(4)", ",") #Тогда + НеверныйВидДоступа: "#Параметр(4)" - "Список имен видов доступа не найден" + #Иначе + НеверныйВидДоступа: "#Параметр(4)" - "Имя вида доступа не найдено" + #КонецЕсли +#ИначеЕсли &ВидыДоступаСОтключеннымИспользованием <> "Все" + И Не СтрСодержит(&ВидыДоступаСОтключеннымИспользованием, ",#Параметр(4),") #Тогда + + ( + ЕСТЬNULL(Т.#Параметр(5), НЕОПРЕДЕЛЕНО) <> НЕОПРЕДЕЛЕНО + И + #Если (Не СтрСодержит(&ВидыДоступаСОтключеннымИспользованием, ",Пользователи,") И СтрСодержит(",#Параметр(4),", ",Пользователи,")) + Или (Не СтрСодержит(&ВидыДоступаСОтключеннымИспользованием, ",ВнешниеПользователи,") И СтрСодержит(",#Параметр(4),", ",ВнешниеПользователи,")) #Тогда + НЕ + ( + НЕ ИСТИНА В + ( + ВЫБРАТЬ ПЕРВЫЕ 1 ИСТИНА + ИЗ РегистрСведений.ГруппыЗначенийДоступа КАК ГруппыЗначенийДоступа + ГДЕ + ГруппыЗначенийДоступа.ЗначениеДоступа = Т.#Параметр(5) + И ГруппыЗначенийДоступа.ГруппаЗначенийДоступа = &АвторизованныйПользователь + ) + И НЕ + #Иначе + ( + #КонецЕсли + ВЫБОР + КОГДА ИСТИНА В + ( + #Если СтрСодержит(&ВидыДоступаБезГруппДляЗначенияДоступа, ",#Параметр(4),") #Тогда + ВЫБРАТЬ ПЕРВЫЕ 1 ИСТИНА + ИЗ РегистрСведений.ЗначенияГруппДоступа КАК Значения + ГДЕ + Значения.ГруппаДоступа = ГруппыДоступа.Ссылка + И Значения.ЗначениеДоступа = Т.#Параметр(5) + #ИначеЕсли "Т.#Параметр(5)" = "Т.Ссылка" + И "#Параметр(4)" <> "Пользователи" + И "#Параметр(4)" <> "ВнешниеПользователи" #Тогда + #Если СтрСодержит("#Параметр(4)", ",") #Тогда + // Когда параметр задан неверно, вставляется строка, чтобы вызвать ошибку сборки ограничения доступа. + НеверныйВидДоступа: "#Параметр(4)" - "При проверке таблицы значения доступа можно указывать только один вид доступа" + #ИначеЕсли СтрСодержит(&ВидыДоступаСОднойГруппойДляЗначенияДоступа, ",#Параметр(4),") #Тогда + ВЫБРАТЬ ПЕРВЫЕ 1 ИСТИНА + ИЗ РегистрСведений.ЗначенияГруппДоступа КАК Значения + ГДЕ + Значения.ГруппаДоступа = ГруппыДоступа.Ссылка + И Значения.ЗначениеДоступа = Т.ГруппаДоступа + #Иначе // Значения доступа, для которых можно указать несколько групп значений доступа. + ВЫБРАТЬ ПЕРВЫЕ 1 ИСТИНА + ИЗ РегистрСведений.ЗначенияГруппДоступа КАК Значения + ВНУТРЕННЕЕ СОЕДИНЕНИЕ #Параметр(1).ГруппыДоступа КАК ГруппыЗначений + ПО + Значения.ГруппаДоступа = ГруппыДоступа.Ссылка + И Значения.ЗначениеДоступа = ГруппыЗначений.ГруппаДоступа + И ГруппыЗначений.Ссылка = Т.#Параметр(5) + #КонецЕсли + #Иначе + ВЫБРАТЬ ПЕРВЫЕ 1 ИСТИНА + ИЗ РегистрСведений.ЗначенияГруппДоступа КАК Значения + ВНУТРЕННЕЕ СОЕДИНЕНИЕ РегистрСведений.ГруппыЗначенийДоступа КАК ГруппыЗначений + ПО + Значения.ГруппаДоступа = ГруппыДоступа.Ссылка + И Значения.ЗначениеДоступа = ГруппыЗначений.ГруппаЗначенийДоступа + И ГруппыЗначений.ЗначениеДоступа = Т.#Параметр(5) + #КонецЕсли + ) + ТОГДА ИСТИНА + ИНАЧЕ ЛОЖЬ + КОНЕЦ + = + ВЫБОР + КОГДА ИСТИНА В + ( + ВЫБРАТЬ ПЕРВЫЕ 1 ИСТИНА + ИЗ РегистрСведений.ЗначенияГруппДоступаПоУмолчанию КАК ЗначенияПоУмолчанию + ГДЕ + ЗначенияПоУмолчанию.ГруппаДоступа = ГруппыДоступа.Ссылка + И ТИПЗНАЧЕНИЯ(ЗначенияПоУмолчанию.ТипЗначенийДоступа) = ТИПЗНАЧЕНИЯ(Т.#Параметр(5)) + И ЗначенияПоУмолчанию.ВсеРазрешены = ЛОЖЬ + ) + ТОГДА ИСТИНА + ИНАЧЕ ЛОЖЬ + КОНЕЦ + ) + ) +#Иначе + ЕСТЬNULL(Т.#Параметр(5), НЕОПРЕДЕЛЕНО) <> НЕОПРЕДЕЛЕНО +#КонецЕсли + +//// Проверка значения поля группы параметров 2. +#Если "#Параметр(6)" = "" И "#Параметр(7)" = "" #Тогда + // Группа параметров не используется. +#ИначеЕсли &ОграничениеДоступаНаУровнеЗаписейИспользуется И ("#Параметр(6)" = "Условие" Или "#Параметр(6)" = "") #Тогда + // Когда имя вида доступа "Условие" (или ""), тогда вместо имени поля задано условие. + И ( #Параметр(7) ) +#ИначеЕсли "#Параметр(6)" = "ПравоЧтения" Или "#Параметр(6)" = "ПравоИзменения" #Тогда + И Т.#Параметр(7) <> НЕОПРЕДЕЛЕНО + И ИСТИНА В + ( // Проверка права пользователя на таблицу Значения, установленного в поле. + ВЫБРАТЬ ПЕРВЫЕ 1 ИСТИНА + ИЗ РегистрСведений.ТаблицыГруппДоступа КАК ТаблицыГруппДоступаПроверкаПрава + ГДЕ + ТаблицыГруппДоступаПроверкаПрава.ГруппаДоступа = ГруппыДоступа.Ссылка + И ТИПЗНАЧЕНИЯ(ТаблицыГруппДоступаПроверкаПрава.ТипТаблицы) = ТИПЗНАЧЕНИЯ(Т.#Параметр(7)) + #Если Не "#Параметр(6)" = "ПравоЧтения" #Тогда + И ТаблицыГруппДоступаПроверкаПрава.ПравоИзменение + #КонецЕсли + ) +#ИначеЕсли "#Параметр(6)" = "ПравоЧтенияПоИдентификатору" Или "#Параметр(6)" = "ПравоИзмененияПоИдентификатору" #Тогда + ИСТИНА В + ( // Проверка права пользователя на таблицу, идентификатор которой указан в Значении, установленном в поле. + ВЫБРАТЬ ПЕРВЫЕ 1 ИСТИНА + ИЗ РегистрСведений.ТаблицыГруппДоступа КАК ТаблицыГруппДоступаПроверкаПрава + ГДЕ + ТаблицыГруппДоступаПроверкаПрава.ГруппаДоступа = ГруппыДоступа.Ссылка + И ТаблицыГруппДоступаПроверкаПрава.Таблица = Т.#Параметр(7) + #Если Не "#Параметр(6)" = "ПравоЧтенияПоИдентификатору" #Тогда + И ТаблицыГруппДоступаПроверкаПрава.ПравоИзменение + #КонецЕсли + ) +#ИначеЕсли Не &ОграничениеДоступаНаУровнеЗаписейИспользуется #Тогда + // Группа параметров отключена. +#ИначеЕсли "#Параметр(6)" = "НастройкиПрав" #Тогда + И + ( + ИСТИНА В // Проверка, что пользователю или какой-нибудь группе пользователя право разрешено + ( + ВЫБРАТЬ ПЕРВЫЕ 1 ИСТИНА + ИЗ РегистрСведений.НастройкиПравОбъектов КАК НастройкиПрав + ВНУТРЕННЕЕ СОЕДИНЕНИЕ РегистрСведений.НаследованиеНастроекПравОбъектов КАК НаследованиеНастроек + ПО + НаследованиеНастроек.Объект = Т.#Параметр(7) + И НастройкиПрав.Объект = НаследованиеНастроек.Родитель + #Если #ИмяТекущегоПраваДоступа = "Чтение" #Тогда + И НаследованиеНастроек.УровеньИспользования < НастройкиПрав.УровеньРазрешенияЧтения + #Иначе + #Если СтрСодержит(&ТаблицыСОтдельнымиНастройкамиПрав, "|#Параметр(1);") #Тогда + И НастройкиПрав.Таблица = СвойстваТекущейТаблицы.Ссылка + #Иначе + И НастройкиПрав.Таблица = ЗНАЧЕНИЕ(Справочник.ИдентификаторыОбъектовМетаданных.ПустаяСсылка) + #КонецЕсли + И НаследованиеНастроек.УровеньИспользования < НастройкиПрав.УровеньРазрешенияИзменения + #КонецЕсли + ВНУТРЕННЕЕ СОЕДИНЕНИЕ РегистрСведений.СоставыГруппПользователей КАК СоставыГруппПользователей + ПО + СоставыГруппПользователей.Пользователь = &АвторизованныйПользователь + И СоставыГруппПользователей.ГруппаПользователей = НастройкиПрав.Пользователь + ) + И НЕ ЛОЖЬ В // Проверка, что пользователю или какой-нибудь группе пользователя право запрещено. + ( + ВЫБРАТЬ ПЕРВЫЕ 1 ЛОЖЬ + ИЗ РегистрСведений.НастройкиПравОбъектов КАК НастройкиПрав + ВНУТРЕННЕЕ СОЕДИНЕНИЕ РегистрСведений.НаследованиеНастроекПравОбъектов КАК НаследованиеНастроек + ПО + НаследованиеНастроек.Объект = Т.#Параметр(7) + И НастройкиПрав.Объект = НаследованиеНастроек.Родитель + #Если #ИмяТекущегоПраваДоступа = "Чтение" #Тогда + И НаследованиеНастроек.УровеньИспользования < НастройкиПрав.УровеньЗапрещенияЧтения + #Иначе + #Если СтрСодержит(&ТаблицыСОтдельнымиНастройкамиПрав, "|#Параметр(1);") #Тогда + И НастройкиПрав.Таблица = СвойстваТекущейТаблицы.Ссылка + #Иначе + И НастройкиПрав.Таблица = ЗНАЧЕНИЕ(Справочник.ИдентификаторыОбъектовМетаданных.ПустаяСсылка) + #КонецЕсли + И НаследованиеНастроек.УровеньИспользования < НастройкиПрав.УровеньЗапрещенияИзменения + #КонецЕсли + ВНУТРЕННЕЕ СОЕДИНЕНИЕ РегистрСведений.СоставыГруппПользователей КАК СоставыГруппПользователей + ПО + СоставыГруппПользователей.Пользователь = &АвторизованныйПользователь + И СоставыГруппПользователей.ГруппаПользователей = НастройкиПрав.Пользователь + ) + ) +#ИначеЕсли Не СтрСодержит(&ВсеВидыДоступаКромеСпециальных, ",#Параметр(6),") #Тогда + // Когда параметр задан неверно, вставляется строка, чтобы вызвать ошибку сборки ограничения доступа. + #Если СтрСодержит("#Параметр(6)", ",") #Тогда + НеверныйВидДоступа: "#Параметр(6)" - "Список имен видов доступа не найден" + #Иначе + НеверныйВидДоступа: "#Параметр(6)" - "Имя вида доступа не найдено" + #КонецЕсли +#ИначеЕсли &ВидыДоступаСОтключеннымИспользованием <> "Все" + И Не СтрСодержит(&ВидыДоступаСОтключеннымИспользованием, ",#Параметр(6),") #Тогда + И + ( + ЕСТЬNULL(Т.#Параметр(7), НЕОПРЕДЕЛЕНО) <> НЕОПРЕДЕЛЕНО + И + #Если (Не СтрСодержит(&ВидыДоступаСОтключеннымИспользованием, ",Пользователи,") И СтрСодержит(",#Параметр(6),", ",Пользователи,")) + Или (Не СтрСодержит(&ВидыДоступаСОтключеннымИспользованием, ",ВнешниеПользователи,") И СтрСодержит(",#Параметр(6),", ",ВнешниеПользователи,")) #Тогда + НЕ + ( + НЕ ИСТИНА В + ( + ВЫБРАТЬ ПЕРВЫЕ 1 ИСТИНА + ИЗ РегистрСведений.ГруппыЗначенийДоступа КАК ГруппыЗначенийДоступа + ГДЕ + ГруппыЗначенийДоступа.ЗначениеДоступа = Т.#Параметр(7) + И ГруппыЗначенийДоступа.ГруппаЗначенийДоступа = &АвторизованныйПользователь + ) + И НЕ + #Иначе + ( + #КонецЕсли + ВЫБОР + КОГДА ИСТИНА В + ( + #Если СтрСодержит(&ВидыДоступаБезГруппДляЗначенияДоступа, ",#Параметр(6),") #Тогда + ВЫБРАТЬ ПЕРВЫЕ 1 ИСТИНА + ИЗ РегистрСведений.ЗначенияГруппДоступа КАК Значения + ГДЕ + Значения.ГруппаДоступа = ГруппыДоступа.Ссылка + И Значения.ЗначениеДоступа = Т.#Параметр(7) + #ИначеЕсли "Т.#Параметр(7)" = "Т.Ссылка" + И "#Параметр(6)" <> "Пользователи" + И "#Параметр(6)" <> "ВнешниеПользователи" #Тогда + #Если СтрСодержит("#Параметр(6)", ",") #Тогда + // Когда параметр задан неверно, вставляется строка, чтобы вызвать ошибку сборки ограничения доступа. + НеверныйВидДоступа: "#Параметр(6)" - "При проверке таблицы значения доступа можно указывать только один вид доступа" + #ИначеЕсли СтрСодержит(&ВидыДоступаСОднойГруппойДляЗначенияДоступа, ",#Параметр(6),") #Тогда + ВЫБРАТЬ ПЕРВЫЕ 1 ИСТИНА + ИЗ РегистрСведений.ЗначенияГруппДоступа КАК Значения + ГДЕ + Значения.ГруппаДоступа = ГруппыДоступа.Ссылка + И Значения.ЗначениеДоступа = Т.ГруппаДоступа + #Иначе // Значения доступа, для которых можно указать несколько групп значений доступа. + ВЫБРАТЬ ПЕРВЫЕ 1 ИСТИНА + ИЗ РегистрСведений.ЗначенияГруппДоступа КАК Значения + ВНУТРЕННЕЕ СОЕДИНЕНИЕ #Параметр(1).ГруппыДоступа КАК ГруппыЗначений + ПО + Значения.ГруппаДоступа = ГруппыДоступа.Ссылка + И Значения.ЗначениеДоступа = ГруппыЗначений.ГруппаДоступа + И ГруппыЗначений.Ссылка = Т.#Параметр(7) + #КонецЕсли + #Иначе + ВЫБРАТЬ ПЕРВЫЕ 1 ИСТИНА + ИЗ РегистрСведений.ЗначенияГруппДоступа КАК Значения + ВНУТРЕННЕЕ СОЕДИНЕНИЕ РегистрСведений.ГруппыЗначенийДоступа КАК ГруппыЗначений + ПО + Значения.ГруппаДоступа = ГруппыДоступа.Ссылка + И Значения.ЗначениеДоступа = ГруппыЗначений.ГруппаЗначенийДоступа + И ГруппыЗначений.ЗначениеДоступа = Т.#Параметр(7) + #КонецЕсли + ) + ТОГДА ИСТИНА + ИНАЧЕ ЛОЖЬ + КОНЕЦ + = + ВЫБОР + КОГДА ИСТИНА В + ( + ВЫБРАТЬ ПЕРВЫЕ 1 ИСТИНА + ИЗ РегистрСведений.ЗначенияГруппДоступаПоУмолчанию КАК ЗначенияПоУмолчанию + ГДЕ + ЗначенияПоУмолчанию.ГруппаДоступа = ГруппыДоступа.Ссылка + И ТИПЗНАЧЕНИЯ(ЗначенияПоУмолчанию.ТипЗначенийДоступа) = ТИПЗНАЧЕНИЯ(Т.#Параметр(7)) + И ЗначенияПоУмолчанию.ВсеРазрешены = ЛОЖЬ + ) + ТОГДА ИСТИНА + ИНАЧЕ ЛОЖЬ + КОНЕЦ + ) + ) +#Иначе + И ЕСТЬNULL(Т.#Параметр(7), НЕОПРЕДЕЛЕНО) <> НЕОПРЕДЕЛЕНО +#КонецЕсли + +//// Проверка значения поля группы параметров 3. +#Если "#Параметр(8)" = "" И "#Параметр(9)" = "" #Тогда + // Группа параметров не используется. +#ИначеЕсли &ОграничениеДоступаНаУровнеЗаписейИспользуется И ("#Параметр(8)" = "Условие" Или "#Параметр(8)" = "") #Тогда + // Когда имя вида доступа "Условие" (или ""), тогда вместо имени поля задано условие. + И ( #Параметр(9) ) +#ИначеЕсли "#Параметр(8)" = "ПравоЧтения" Или "#Параметр(8)" = "ПравоИзменения" #Тогда + И Т.#Параметр(9) <> НЕОПРЕДЕЛЕНО + И ИСТИНА В + ( // Проверка права пользователя на таблицу Значения, установленного в поле. + ВЫБРАТЬ ПЕРВЫЕ 1 ИСТИНА + ИЗ РегистрСведений.ТаблицыГруппДоступа КАК ТаблицыГруппДоступаПроверкаПрава + ГДЕ + ТаблицыГруппДоступаПроверкаПрава.ГруппаДоступа = ГруппыДоступа.Ссылка + И ТИПЗНАЧЕНИЯ(ТаблицыГруппДоступаПроверкаПрава.ТипТаблицы) = ТИПЗНАЧЕНИЯ(Т.#Параметр(9)) + #Если Не "#Параметр(8)" = "ПравоЧтения" #Тогда + И ТаблицыГруппДоступаПроверкаПрава.ПравоИзменение + #КонецЕсли + ) +#ИначеЕсли "#Параметр(8)" = "ПравоЧтенияПоИдентификатору" Или "#Параметр(8)" = "ПравоИзмененияПоИдентификатору" #Тогда + ИСТИНА В + ( // Проверка права пользователя на таблицу, идентификатор которой указан в Значении, установленном в поле. + ВЫБРАТЬ ПЕРВЫЕ 1 ИСТИНА + ИЗ РегистрСведений.ТаблицыГруппДоступа КАК ТаблицыГруппДоступаПроверкаПрава + ГДЕ + ТаблицыГруппДоступаПроверкаПрава.ГруппаДоступа = ГруппыДоступа.Ссылка + И ТаблицыГруппДоступаПроверкаПрава.Таблица = Т.#Параметр(9) + #Если Не "#Параметр(8)" = "ПравоЧтенияПоИдентификатору" #Тогда + И ТаблицыГруппДоступаПроверкаПрава.ПравоИзменение + #КонецЕсли + ) +#ИначеЕсли Не &ОграничениеДоступаНаУровнеЗаписейИспользуется #Тогда + // Группа параметров отключена. +#ИначеЕсли "#Параметр(8)" = "НастройкиПрав" #Тогда + И + ( + ИСТИНА В // Проверка, что пользователю или какой-нибудь группе пользователя право разрешено + ( + ВЫБРАТЬ ПЕРВЫЕ 1 ИСТИНА + ИЗ РегистрСведений.НастройкиПравОбъектов КАК НастройкиПрав + ВНУТРЕННЕЕ СОЕДИНЕНИЕ РегистрСведений.НаследованиеНастроекПравОбъектов КАК НаследованиеНастроек + ПО + НаследованиеНастроек.Объект = Т.#Параметр(9) + И НастройкиПрав.Объект = НаследованиеНастроек.Родитель + #Если #ИмяТекущегоПраваДоступа = "Чтение" #Тогда + И НаследованиеНастроек.УровеньИспользования < НастройкиПрав.УровеньРазрешенияЧтения + #Иначе + #Если СтрСодержит(&ТаблицыСОтдельнымиНастройкамиПрав, "|#Параметр(1);") #Тогда + И НастройкиПрав.Таблица = СвойстваТекущейТаблицы.Ссылка + #Иначе + И НастройкиПрав.Таблица = ЗНАЧЕНИЕ(Справочник.ИдентификаторыОбъектовМетаданных.ПустаяСсылка) + #КонецЕсли + И НаследованиеНастроек.УровеньИспользования < НастройкиПрав.УровеньРазрешенияИзменения + #КонецЕсли + ВНУТРЕННЕЕ СОЕДИНЕНИЕ РегистрСведений.СоставыГруппПользователей КАК СоставыГруппПользователей + ПО + СоставыГруппПользователей.Пользователь = &АвторизованныйПользователь + И СоставыГруппПользователей.ГруппаПользователей = НастройкиПрав.Пользователь + ) + И НЕ ЛОЖЬ В // Проверка, что пользователю или какой-нибудь группе пользователя право запрещено. + ( + ВЫБРАТЬ ПЕРВЫЕ 1 ЛОЖЬ + ИЗ РегистрСведений.НастройкиПравОбъектов КАК НастройкиПрав + ВНУТРЕННЕЕ СОЕДИНЕНИЕ РегистрСведений.НаследованиеНастроекПравОбъектов КАК НаследованиеНастроек + ПО + НаследованиеНастроек.Объект = Т.#Параметр(9) + И НастройкиПрав.Объект = НаследованиеНастроек.Родитель + #Если #ИмяТекущегоПраваДоступа = "Чтение" #Тогда + И НаследованиеНастроек.УровеньИспользования < НастройкиПрав.УровеньЗапрещенияЧтения + #Иначе + #Если СтрСодержит(&ТаблицыСОтдельнымиНастройкамиПрав, "|#Параметр(1);") #Тогда + И НастройкиПрав.Таблица = СвойстваТекущейТаблицы.Ссылка + #Иначе + И НастройкиПрав.Таблица = ЗНАЧЕНИЕ(Справочник.ИдентификаторыОбъектовМетаданных.ПустаяСсылка) + #КонецЕсли + И НаследованиеНастроек.УровеньИспользования < НастройкиПрав.УровеньЗапрещенияИзменения + #КонецЕсли + ВНУТРЕННЕЕ СОЕДИНЕНИЕ РегистрСведений.СоставыГруппПользователей КАК СоставыГруппПользователей + ПО + СоставыГруппПользователей.Пользователь = &АвторизованныйПользователь + И СоставыГруппПользователей.ГруппаПользователей = НастройкиПрав.Пользователь + ) + ) +#ИначеЕсли Не СтрСодержит(&ВсеВидыДоступаКромеСпециальных, ",#Параметр(8),") #Тогда + // Когда параметр задан неверно, вставляется строка, чтобы вызвать ошибку сборки ограничения доступа. + #Если СтрСодержит("#Параметр(8)", ",") #Тогда + НеверныйВидДоступа: "#Параметр(8)" - "Список имен видов доступа не найден" + #Иначе + НеверныйВидДоступа: "#Параметр(8)" - "Имя вида доступа не найдено" + #КонецЕсли +#ИначеЕсли &ВидыДоступаСОтключеннымИспользованием <> "Все" + И Не СтрСодержит(&ВидыДоступаСОтключеннымИспользованием, ",#Параметр(8),") #Тогда + И + ( + ЕСТЬNULL(Т.#Параметр(9), НЕОПРЕДЕЛЕНО) <> НЕОПРЕДЕЛЕНО + И + #Если (Не СтрСодержит(&ВидыДоступаСОтключеннымИспользованием, ",Пользователи,") И СтрСодержит(",#Параметр(8),", ",Пользователи,")) + Или (Не СтрСодержит(&ВидыДоступаСОтключеннымИспользованием, ",ВнешниеПользователи,") И СтрСодержит(",#Параметр(8),", ",ВнешниеПользователи,")) #Тогда + НЕ + ( + НЕ ИСТИНА В + ( + ВЫБРАТЬ ПЕРВЫЕ 1 ИСТИНА + ИЗ РегистрСведений.ГруппыЗначенийДоступа КАК ГруппыЗначенийДоступа + ГДЕ + ГруппыЗначенийДоступа.ЗначениеДоступа = Т.#Параметр(9) + И ГруппыЗначенийДоступа.ГруппаЗначенийДоступа = &АвторизованныйПользователь + ) + И НЕ + #Иначе + ( + #КонецЕсли + ВЫБОР + КОГДА ИСТИНА В + ( + #Если СтрСодержит(&ВидыДоступаБезГруппДляЗначенияДоступа, ",#Параметр(8),") #Тогда + ВЫБРАТЬ ПЕРВЫЕ 1 ИСТИНА + ИЗ РегистрСведений.ЗначенияГруппДоступа КАК Значения + ГДЕ + Значения.ГруппаДоступа = ГруппыДоступа.Ссылка + И Значения.ЗначениеДоступа = Т.#Параметр(9) + #ИначеЕсли "Т.#Параметр(9)" = "Т.Ссылка" + И "#Параметр(8)" <> "Пользователи" + И "#Параметр(8)" <> "ВнешниеПользователи" #Тогда + #Если СтрСодержит("#Параметр(8)", ",") #Тогда + // Когда параметр задан неверно, вставляется строка, чтобы вызвать ошибку сборки ограничения доступа. + НеверныйВидДоступа: "#Параметр(8)" - "При проверке таблицы значения доступа можно указывать только один вид доступа" + #ИначеЕсли СтрСодержит(&ВидыДоступаСОднойГруппойДляЗначенияДоступа, ",#Параметр(8),") #Тогда + ВЫБРАТЬ ПЕРВЫЕ 1 ИСТИНА + ИЗ РегистрСведений.ЗначенияГруппДоступа КАК Значения + ГДЕ + Значения.ГруппаДоступа = ГруппыДоступа.Ссылка + И Значения.ЗначениеДоступа = Т.ГруппаДоступа + #Иначе // Значения доступа, для которых можно указать несколько групп значений доступа. + ВЫБРАТЬ ПЕРВЫЕ 1 ИСТИНА + ИЗ РегистрСведений.ЗначенияГруппДоступа КАК Значения + ВНУТРЕННЕЕ СОЕДИНЕНИЕ #Параметр(1).ГруппыДоступа КАК ГруппыЗначений + ПО + Значения.ГруппаДоступа = ГруппыДоступа.Ссылка + И Значения.ЗначениеДоступа = ГруппыЗначений.ГруппаДоступа + И ГруппыЗначений.Ссылка = Т.#Параметр(9) + #КонецЕсли + #Иначе + ВЫБРАТЬ ПЕРВЫЕ 1 ИСТИНА + ИЗ РегистрСведений.ЗначенияГруппДоступа КАК Значения + ВНУТРЕННЕЕ СОЕДИНЕНИЕ РегистрСведений.ГруппыЗначенийДоступа КАК ГруппыЗначений + ПО + Значения.ГруппаДоступа = ГруппыДоступа.Ссылка + И Значения.ЗначениеДоступа = ГруппыЗначений.ГруппаЗначенийДоступа + И ГруппыЗначений.ЗначениеДоступа = Т.#Параметр(9) + #КонецЕсли + ) + ТОГДА ИСТИНА + ИНАЧЕ ЛОЖЬ + КОНЕЦ + = + ВЫБОР + КОГДА ИСТИНА В + ( + ВЫБРАТЬ ПЕРВЫЕ 1 ИСТИНА + ИЗ РегистрСведений.ЗначенияГруппДоступаПоУмолчанию КАК ЗначенияПоУмолчанию + ГДЕ + ЗначенияПоУмолчанию.ГруппаДоступа = ГруппыДоступа.Ссылка + И ТИПЗНАЧЕНИЯ(ЗначенияПоУмолчанию.ТипЗначенийДоступа) = ТИПЗНАЧЕНИЯ(Т.#Параметр(9)) + И ЗначенияПоУмолчанию.ВсеРазрешены = ЛОЖЬ + ) + ТОГДА ИСТИНА + ИНАЧЕ ЛОЖЬ + КОНЕЦ + ) + ) +#Иначе + И ЕСТЬNULL(Т.#Параметр(9), НЕОПРЕДЕЛЕНО) <> НЕОПРЕДЕЛЕНО +#КонецЕсли + +//// Проверка значения поля группы параметров 4. +#Если "#Параметр(10)" = "" И "#Параметр(11)" = "" #Тогда + // Группа параметров не используется. +#ИначеЕсли &ОграничениеДоступаНаУровнеЗаписейИспользуется И ("#Параметр(10)" = "Условие" Или "#Параметр(10)" = "") #Тогда + // Когда имя вида доступа "Условие" (или ""), тогда вместо имени поля задано условие. + И ( #Параметр(11) ) +#ИначеЕсли "#Параметр(10)" = "ПравоЧтения" Или "#Параметр(10)" = "ПравоИзменения" #Тогда + И Т.#Параметр(11) <> НЕОПРЕДЕЛЕНО + И ИСТИНА В + ( // Проверка права пользователя на таблицу Значения, установленного в поле. + ВЫБРАТЬ ПЕРВЫЕ 1 ИСТИНА + ИЗ РегистрСведений.ТаблицыГруппДоступа КАК ТаблицыГруппДоступаПроверкаПрава + ГДЕ + ТаблицыГруппДоступаПроверкаПрава.ГруппаДоступа = ГруппыДоступа.Ссылка + И ТИПЗНАЧЕНИЯ(ТаблицыГруппДоступаПроверкаПрава.ТипТаблицы) = ТИПЗНАЧЕНИЯ(Т.#Параметр(11)) + #Если Не "#Параметр(10)" = "ПравоЧтения" #Тогда + И ТаблицыГруппДоступаПроверкаПрава.ПравоИзменение + #КонецЕсли + ) +#ИначеЕсли "#Параметр(10)" = "ПравоЧтенияПоИдентификатору" Или "#Параметр(10)" = "ПравоИзмененияПоИдентификатору" #Тогда + ИСТИНА В + ( // Проверка права пользователя на таблицу, идентификатор которой указан в Значении, установленном в поле. + ВЫБРАТЬ ПЕРВЫЕ 1 ИСТИНА + ИЗ РегистрСведений.ТаблицыГруппДоступа КАК ТаблицыГруппДоступаПроверкаПрава + ГДЕ + ТаблицыГруппДоступаПроверкаПрава.ГруппаДоступа = ГруппыДоступа.Ссылка + И ТаблицыГруппДоступаПроверкаПрава.Таблица = Т.#Параметр(11) + #Если Не "#Параметр(10)" = "ПравоЧтенияПоИдентификатору" #Тогда + И ТаблицыГруппДоступаПроверкаПрава.ПравоИзменение + #КонецЕсли + ) +#ИначеЕсли Не &ОграничениеДоступаНаУровнеЗаписейИспользуется #Тогда + // Группа параметров отключена. +#ИначеЕсли "#Параметр(10)" = "НастройкиПрав" #Тогда + И + ( + ИСТИНА В // Проверка, что пользователю или какой-нибудь группе пользователя право разрешено + ( + ВЫБРАТЬ ПЕРВЫЕ 1 ИСТИНА + ИЗ РегистрСведений.НастройкиПравОбъектов КАК НастройкиПрав + ВНУТРЕННЕЕ СОЕДИНЕНИЕ РегистрСведений.НаследованиеНастроекПравОбъектов КАК НаследованиеНастроек + ПО + НаследованиеНастроек.Объект = Т.#Параметр(11) + И НастройкиПрав.Объект = НаследованиеНастроек.Родитель + #Если #ИмяТекущегоПраваДоступа = "Чтение" #Тогда + И НаследованиеНастроек.УровеньИспользования < НастройкиПрав.УровеньРазрешенияЧтения + #Иначе + #Если СтрСодержит(&ТаблицыСОтдельнымиНастройкамиПрав, "|#Параметр(1);") #Тогда + И НастройкиПрав.Таблица = СвойстваТекущейТаблицы.Ссылка + #Иначе + И НастройкиПрав.Таблица = ЗНАЧЕНИЕ(Справочник.ИдентификаторыОбъектовМетаданных.ПустаяСсылка) + #КонецЕсли + И НаследованиеНастроек.УровеньИспользования < НастройкиПрав.УровеньРазрешенияИзменения + #КонецЕсли + ВНУТРЕННЕЕ СОЕДИНЕНИЕ РегистрСведений.СоставыГруппПользователей КАК СоставыГруппПользователей + ПО + СоставыГруппПользователей.Пользователь = &АвторизованныйПользователь + И СоставыГруппПользователей.ГруппаПользователей = НастройкиПрав.Пользователь + ) + И НЕ ЛОЖЬ В // Проверка, что пользователю или какой-нибудь группе пользователя право запрещено. + ( + ВЫБРАТЬ ПЕРВЫЕ 1 ЛОЖЬ + ИЗ РегистрСведений.НастройкиПравОбъектов КАК НастройкиПрав + ВНУТРЕННЕЕ СОЕДИНЕНИЕ РегистрСведений.НаследованиеНастроекПравОбъектов КАК НаследованиеНастроек + ПО + НаследованиеНастроек.Объект = Т.#Параметр(11) + И НастройкиПрав.Объект = НаследованиеНастроек.Родитель + #Если #ИмяТекущегоПраваДоступа = "Чтение" #Тогда + И НаследованиеНастроек.УровеньИспользования < НастройкиПрав.УровеньЗапрещенияЧтения + #Иначе + #Если СтрСодержит(&ТаблицыСОтдельнымиНастройкамиПрав, "|#Параметр(1);") #Тогда + И НастройкиПрав.Таблица = СвойстваТекущейТаблицы.Ссылка + #Иначе + И НастройкиПрав.Таблица = ЗНАЧЕНИЕ(Справочник.ИдентификаторыОбъектовМетаданных.ПустаяСсылка) + #КонецЕсли + И НаследованиеНастроек.УровеньИспользования < НастройкиПрав.УровеньЗапрещенияИзменения + #КонецЕсли + ВНУТРЕННЕЕ СОЕДИНЕНИЕ РегистрСведений.СоставыГруппПользователей КАК СоставыГруппПользователей + ПО + СоставыГруппПользователей.Пользователь = &АвторизованныйПользователь + И СоставыГруппПользователей.ГруппаПользователей = НастройкиПрав.Пользователь + ) + ) +#ИначеЕсли Не СтрСодержит(&ВсеВидыДоступаКромеСпециальных, ",#Параметр(10),") #Тогда + // Когда параметр задан неверно, вставляется строка, чтобы вызвать ошибку сборки ограничения доступа. + #Если СтрСодержит("#Параметр(10)", ",") #Тогда + НеверныйВидДоступа: "#Параметр(10)" - "Список имен видов доступа не найден" + #Иначе + НеверныйВидДоступа: "#Параметр(10)" - "Имя вида доступа не найдено" + #КонецЕсли +#ИначеЕсли &ВидыДоступаСОтключеннымИспользованием <> "Все" + И Не СтрСодержит(&ВидыДоступаСОтключеннымИспользованием, ",#Параметр(10),") #Тогда + И + ( + ЕСТЬNULL(Т.#Параметр(11), НЕОПРЕДЕЛЕНО) <> НЕОПРЕДЕЛЕНО + И + #Если (Не СтрСодержит(&ВидыДоступаСОтключеннымИспользованием, ",Пользователи,") И СтрСодержит(",#Параметр(10),", ",Пользователи,")) + Или (Не СтрСодержит(&ВидыДоступаСОтключеннымИспользованием, ",ВнешниеПользователи,") И СтрСодержит(",#Параметр(10),", ",ВнешниеПользователи,")) #Тогда + НЕ + ( + НЕ ИСТИНА В + ( + ВЫБРАТЬ ПЕРВЫЕ 1 ИСТИНА + ИЗ РегистрСведений.ГруппыЗначенийДоступа КАК ГруппыЗначенийДоступа + ГДЕ + ГруппыЗначенийДоступа.ЗначениеДоступа = Т.#Параметр(11) + И ГруппыЗначенийДоступа.ГруппаЗначенийДоступа = &АвторизованныйПользователь + ) + И НЕ + #Иначе + ( + #КонецЕсли + ВЫБОР + КОГДА ИСТИНА В + ( + #Если СтрСодержит(&ВидыДоступаБезГруппДляЗначенияДоступа, ",#Параметр(10),") #Тогда + ВЫБРАТЬ ПЕРВЫЕ 1 ИСТИНА + ИЗ РегистрСведений.ЗначенияГруппДоступа КАК Значения + ГДЕ + Значения.ГруппаДоступа = ГруппыДоступа.Ссылка + И Значения.ЗначениеДоступа = Т.#Параметр(11) + #ИначеЕсли "Т.#Параметр(11)" = "Т.Ссылка" + И "#Параметр(10)" <> "Пользователи" + И "#Параметр(10)" <> "ВнешниеПользователи" #Тогда + #Если СтрСодержит("#Параметр(10)", ",") #Тогда + // Когда параметр задан неверно, вставляется строка, чтобы вызвать ошибку сборки ограничения доступа. + НеверныйВидДоступа: "#Параметр(10)" - "При проверке таблицы значения доступа можно указывать только один вид доступа" + #ИначеЕсли СтрСодержит(&ВидыДоступаСОднойГруппойДляЗначенияДоступа, ",#Параметр(10),") #Тогда + ВЫБРАТЬ ПЕРВЫЕ 1 ИСТИНА + ИЗ РегистрСведений.ЗначенияГруппДоступа КАК Значения + ГДЕ + Значения.ГруппаДоступа = ГруппыДоступа.Ссылка + И Значения.ЗначениеДоступа = Т.ГруппаДоступа + #Иначе // Значения доступа, для которых можно указать несколько групп значений доступа. + ВЫБРАТЬ ПЕРВЫЕ 1 ИСТИНА + ИЗ РегистрСведений.ЗначенияГруппДоступа КАК Значения + ВНУТРЕННЕЕ СОЕДИНЕНИЕ #Параметр(1).ГруппыДоступа КАК ГруппыЗначений + ПО + Значения.ГруппаДоступа = ГруппыДоступа.Ссылка + И Значения.ЗначениеДоступа = ГруппыЗначений.ГруппаДоступа + И ГруппыЗначений.Ссылка = Т.#Параметр(11) + #КонецЕсли + #Иначе + ВЫБРАТЬ ПЕРВЫЕ 1 ИСТИНА + ИЗ РегистрСведений.ЗначенияГруппДоступа КАК Значения + ВНУТРЕННЕЕ СОЕДИНЕНИЕ РегистрСведений.ГруппыЗначенийДоступа КАК ГруппыЗначений + ПО + Значения.ГруппаДоступа = ГруппыДоступа.Ссылка + И Значения.ЗначениеДоступа = ГруппыЗначений.ГруппаЗначенийДоступа + И ГруппыЗначений.ЗначениеДоступа = Т.#Параметр(11) + #КонецЕсли + ) + ТОГДА ИСТИНА + ИНАЧЕ ЛОЖЬ + КОНЕЦ + = + ВЫБОР + КОГДА ИСТИНА В + ( + ВЫБРАТЬ ПЕРВЫЕ 1 ИСТИНА + ИЗ РегистрСведений.ЗначенияГруппДоступаПоУмолчанию КАК ЗначенияПоУмолчанию + ГДЕ + ЗначенияПоУмолчанию.ГруппаДоступа = ГруппыДоступа.Ссылка + И ТИПЗНАЧЕНИЯ(ЗначенияПоУмолчанию.ТипЗначенийДоступа) = ТИПЗНАЧЕНИЯ(Т.#Параметр(11)) + И ЗначенияПоУмолчанию.ВсеРазрешены = ЛОЖЬ + ) + ТОГДА ИСТИНА + ИНАЧЕ ЛОЖЬ + КОНЕЦ + ) + ) +#Иначе + И ЕСТЬNULL(Т.#Параметр(11), НЕОПРЕДЕЛЕНО) <> НЕОПРЕДЕЛЕНО +#КонецЕсли + +//// Проверка значения поля группы параметров 5. +#Если "#Параметр(12)" = "" И "#Параметр(13)" = "" #Тогда + // Группа параметров не используется. +#ИначеЕсли &ОграничениеДоступаНаУровнеЗаписейИспользуется И ("#Параметр(12)" = "Условие" Или "#Параметр(12)" = "") #Тогда + // Когда имя вида доступа "Условие" (или ""), тогда вместо имени поля задано условие. + И ( #Параметр(13) ) +#ИначеЕсли "#Параметр(12)" = "ПравоЧтения" Или "#Параметр(12)" = "ПравоИзменения" #Тогда + И Т.#Параметр(13) <> НЕОПРЕДЕЛЕНО + И ИСТИНА В + ( // Проверка права пользователя на таблицу Значения, установленного в поле. + ВЫБРАТЬ ПЕРВЫЕ 1 ИСТИНА + ИЗ РегистрСведений.ТаблицыГруппДоступа КАК ТаблицыГруппДоступаПроверкаПрава + ГДЕ + ТаблицыГруппДоступаПроверкаПрава.ГруппаДоступа = ГруппыДоступа.Ссылка + И ТИПЗНАЧЕНИЯ(ТаблицыГруппДоступаПроверкаПрава.ТипТаблицы) = ТИПЗНАЧЕНИЯ(Т.#Параметр(13)) + #Если Не "#Параметр(12)" = "ПравоЧтения" #Тогда + И ТаблицыГруппДоступаПроверкаПрава.ПравоИзменение + #КонецЕсли + ) +#ИначеЕсли "#Параметр(12)" = "ПравоЧтенияПоИдентификатору" Или "#Параметр(12)" = "ПравоИзмененияПоИдентификатору" #Тогда + ИСТИНА В + ( // Проверка права пользователя на таблицу, идентификатор которой указан в Значении, установленном в поле. + ВЫБРАТЬ ПЕРВЫЕ 1 ИСТИНА + ИЗ РегистрСведений.ТаблицыГруппДоступа КАК ТаблицыГруппДоступаПроверкаПрава + ГДЕ + ТаблицыГруппДоступаПроверкаПрава.ГруппаДоступа = ГруппыДоступа.Ссылка + И ТаблицыГруппДоступаПроверкаПрава.Таблица = Т.#Параметр(13) + #Если Не "#Параметр(12)" = "ПравоЧтенияПоИдентификатору" #Тогда + И ТаблицыГруппДоступаПроверкаПрава.ПравоИзменение + #КонецЕсли + ) +#ИначеЕсли Не &ОграничениеДоступаНаУровнеЗаписейИспользуется #Тогда + // Группа параметров отключена. +#ИначеЕсли "#Параметр(12)" = "НастройкиПрав" #Тогда + И + ( + ИСТИНА В // Проверка, что пользователю или какой-нибудь группе пользователя право разрешено + ( + ВЫБРАТЬ ПЕРВЫЕ 1 ИСТИНА + ИЗ РегистрСведений.НастройкиПравОбъектов КАК НастройкиПрав + ВНУТРЕННЕЕ СОЕДИНЕНИЕ РегистрСведений.НаследованиеНастроекПравОбъектов КАК НаследованиеНастроек + ПО + НаследованиеНастроек.Объект = Т.#Параметр(13) + И НастройкиПрав.Объект = НаследованиеНастроек.Родитель + #Если #ИмяТекущегоПраваДоступа = "Чтение" #Тогда + И НаследованиеНастроек.УровеньИспользования < НастройкиПрав.УровеньРазрешенияЧтения + #Иначе + #Если СтрСодержит(&ТаблицыСОтдельнымиНастройкамиПрав, "|#Параметр(1);") #Тогда + И НастройкиПрав.Таблица = СвойстваТекущейТаблицы.Ссылка + #Иначе + И НастройкиПрав.Таблица = ЗНАЧЕНИЕ(Справочник.ИдентификаторыОбъектовМетаданных.ПустаяСсылка) + #КонецЕсли + И НаследованиеНастроек.УровеньИспользования < НастройкиПрав.УровеньРазрешенияИзменения + #КонецЕсли + ВНУТРЕННЕЕ СОЕДИНЕНИЕ РегистрСведений.СоставыГруппПользователей КАК СоставыГруппПользователей + ПО + СоставыГруппПользователей.Пользователь = &АвторизованныйПользователь + И СоставыГруппПользователей.ГруппаПользователей = НастройкиПрав.Пользователь + ) + И НЕ ЛОЖЬ В // Проверка, что пользователю или какой-нибудь группе пользователя право запрещено. + ( + ВЫБРАТЬ ПЕРВЫЕ 1 ЛОЖЬ + ИЗ РегистрСведений.НастройкиПравОбъектов КАК НастройкиПрав + ВНУТРЕННЕЕ СОЕДИНЕНИЕ РегистрСведений.НаследованиеНастроекПравОбъектов КАК НаследованиеНастроек + ПО + НаследованиеНастроек.Объект = Т.#Параметр(13) + И НастройкиПрав.Объект = НаследованиеНастроек.Родитель + #Если #ИмяТекущегоПраваДоступа = "Чтение" #Тогда + И НаследованиеНастроек.УровеньИспользования < НастройкиПрав.УровеньЗапрещенияЧтения + #Иначе + #Если СтрСодержит(&ТаблицыСОтдельнымиНастройкамиПрав, "|#Параметр(1);") #Тогда + И НастройкиПрав.Таблица = СвойстваТекущейТаблицы.Ссылка + #Иначе + И НастройкиПрав.Таблица = ЗНАЧЕНИЕ(Справочник.ИдентификаторыОбъектовМетаданных.ПустаяСсылка) + #КонецЕсли + И НаследованиеНастроек.УровеньИспользования < НастройкиПрав.УровеньЗапрещенияИзменения + #КонецЕсли + ВНУТРЕННЕЕ СОЕДИНЕНИЕ РегистрСведений.СоставыГруппПользователей КАК СоставыГруппПользователей + ПО + СоставыГруппПользователей.Пользователь = &АвторизованныйПользователь + И СоставыГруппПользователей.ГруппаПользователей = НастройкиПрав.Пользователь + ) + ) +#ИначеЕсли Не СтрСодержит(&ВсеВидыДоступаКромеСпециальных, ",#Параметр(12),") #Тогда + // Когда параметр задан неверно, вставляется строка, чтобы вызвать ошибку сборки ограничения доступа. + #Если СтрСодержит("#Параметр(12)", ",") #Тогда + НеверныйВидДоступа: "#Параметр(12)" - "Список имен видов доступа не найден" + #Иначе + НеверныйВидДоступа: "#Параметр(12)" - "Имя вида доступа не найдено" + #КонецЕсли +#ИначеЕсли &ВидыДоступаСОтключеннымИспользованием <> "Все" + И Не СтрСодержит(&ВидыДоступаСОтключеннымИспользованием, ",#Параметр(12),") #Тогда + И + ( + ЕСТЬNULL(Т.#Параметр(13), НЕОПРЕДЕЛЕНО) <> НЕОПРЕДЕЛЕНО + И + #Если (Не СтрСодержит(&ВидыДоступаСОтключеннымИспользованием, ",Пользователи,") И СтрСодержит(",#Параметр(12),", ",Пользователи,")) + Или (Не СтрСодержит(&ВидыДоступаСОтключеннымИспользованием, ",ВнешниеПользователи,") И СтрСодержит(",#Параметр(12),", ",ВнешниеПользователи,")) #Тогда + НЕ + ( + НЕ ИСТИНА В + ( + ВЫБРАТЬ ПЕРВЫЕ 1 ИСТИНА + ИЗ РегистрСведений.ГруппыЗначенийДоступа КАК ГруппыЗначенийДоступа + ГДЕ + ГруппыЗначенийДоступа.ЗначениеДоступа = Т.#Параметр(13) + И ГруппыЗначенийДоступа.ГруппаЗначенийДоступа = &АвторизованныйПользователь + ) + И НЕ + #Иначе + ( + #КонецЕсли + ВЫБОР + КОГДА ИСТИНА В + ( + #Если СтрСодержит(&ВидыДоступаБезГруппДляЗначенияДоступа, ",#Параметр(12),") #Тогда + ВЫБРАТЬ ПЕРВЫЕ 1 ИСТИНА + ИЗ РегистрСведений.ЗначенияГруппДоступа КАК Значения + ГДЕ + Значения.ГруппаДоступа = ГруппыДоступа.Ссылка + И Значения.ЗначениеДоступа = Т.#Параметр(13) + #ИначеЕсли "Т.#Параметр(13)" = "Т.Ссылка" + И "#Параметр(12)" <> "Пользователи" + И "#Параметр(12)" <> "ВнешниеПользователи" #Тогда + #Если СтрСодержит("#Параметр(12)", ",") #Тогда + // Когда параметр задан неверно, вставляется строка, чтобы вызвать ошибку сборки ограничения доступа. + НеверныйВидДоступа: "#Параметр(12)" - "При проверке таблицы значения доступа можно указывать только один вид доступа" + #ИначеЕсли СтрСодержит(&ВидыДоступаСОднойГруппойДляЗначенияДоступа, ",#Параметр(12),") #Тогда + ВЫБРАТЬ ПЕРВЫЕ 1 ИСТИНА + ИЗ РегистрСведений.ЗначенияГруппДоступа КАК Значения + ГДЕ + Значения.ГруппаДоступа = ГруппыДоступа.Ссылка + И Значения.ЗначениеДоступа = Т.ГруппаДоступа + #Иначе // Значения доступа, для которых можно указать несколько групп значений доступа. + ВЫБРАТЬ ПЕРВЫЕ 1 ИСТИНА + ИЗ РегистрСведений.ЗначенияГруппДоступа КАК Значения + ВНУТРЕННЕЕ СОЕДИНЕНИЕ #Параметр(1).ГруппыДоступа КАК ГруппыЗначений + ПО + Значения.ГруппаДоступа = ГруппыДоступа.Ссылка + И Значения.ЗначениеДоступа = ГруппыЗначений.ГруппаДоступа + И ГруппыЗначений.Ссылка = Т.#Параметр(13) + #КонецЕсли + #Иначе + ВЫБРАТЬ ПЕРВЫЕ 1 ИСТИНА + ИЗ РегистрСведений.ЗначенияГруппДоступа КАК Значения + ВНУТРЕННЕЕ СОЕДИНЕНИЕ РегистрСведений.ГруппыЗначенийДоступа КАК ГруппыЗначений + ПО + Значения.ГруппаДоступа = ГруппыДоступа.Ссылка + И Значения.ЗначениеДоступа = ГруппыЗначений.ГруппаЗначенийДоступа + И ГруппыЗначений.ЗначениеДоступа = Т.#Параметр(13) + #КонецЕсли + ) + ТОГДА ИСТИНА + ИНАЧЕ ЛОЖЬ + КОНЕЦ + = + ВЫБОР + КОГДА ИСТИНА В + ( + ВЫБРАТЬ ПЕРВЫЕ 1 ИСТИНА + ИЗ РегистрСведений.ЗначенияГруппДоступаПоУмолчанию КАК ЗначенияПоУмолчанию + ГДЕ + ЗначенияПоУмолчанию.ГруппаДоступа = ГруппыДоступа.Ссылка + И ТИПЗНАЧЕНИЯ(ЗначенияПоУмолчанию.ТипЗначенийДоступа) = ТИПЗНАЧЕНИЯ(Т.#Параметр(13)) + И ЗначенияПоУмолчанию.ВсеРазрешены = ЛОЖЬ + ) + ТОГДА ИСТИНА + ИНАЧЕ ЛОЖЬ + КОНЕЦ + ) + ) +#Иначе + И ЕСТЬNULL(Т.#Параметр(13), НЕОПРЕДЕЛЕНО) <> НЕОПРЕДЕЛЕНО +#КонецЕсли + +//// Проверка значения поля группы параметров 6. +#Если "#Параметр(14)" = "" И "#Параметр(15)" = "" #Тогда + // Группа параметров не используется. +#ИначеЕсли &ОграничениеДоступаНаУровнеЗаписейИспользуется И ("#Параметр(14)" = "Условие" Или "#Параметр(14)" = "") #Тогда + // Когда имя вида доступа "Условие" (или ""), тогда вместо имени поля задано условие. + И ( #Параметр(15) ) +#ИначеЕсли "#Параметр(14)" = "ПравоЧтения" Или "#Параметр(14)" = "ПравоИзменения" #Тогда + И Т.#Параметр(15) <> НЕОПРЕДЕЛЕНО + И ИСТИНА В + ( // Проверка права пользователя на таблицу Значения, установленного в поле. + ВЫБРАТЬ ПЕРВЫЕ 1 ИСТИНА + ИЗ РегистрСведений.ТаблицыГруппДоступа КАК ТаблицыГруппДоступаПроверкаПрава + ГДЕ + ТаблицыГруппДоступаПроверкаПрава.ГруппаДоступа = ГруппыДоступа.Ссылка + И ТИПЗНАЧЕНИЯ(ТаблицыГруппДоступаПроверкаПрава.ТипТаблицы) = ТИПЗНАЧЕНИЯ(Т.#Параметр(15)) + #Если Не "#Параметр(14)" = "ПравоЧтения" #Тогда + И ТаблицыГруппДоступаПроверкаПрава.ПравоИзменение + #КонецЕсли + ) +#ИначеЕсли "#Параметр(14)" = "ПравоЧтенияПоИдентификатору" Или "#Параметр(14)" = "ПравоИзмененияПоИдентификатору" #Тогда + ИСТИНА В + ( // Проверка права пользователя на таблицу, идентификатор которой указан в Значении, установленном в поле. + ВЫБРАТЬ ПЕРВЫЕ 1 ИСТИНА + ИЗ РегистрСведений.ТаблицыГруппДоступа КАК ТаблицыГруппДоступаПроверкаПрава + ГДЕ + ТаблицыГруппДоступаПроверкаПрава.ГруппаДоступа = ГруппыДоступа.Ссылка + И ТаблицыГруппДоступаПроверкаПрава.Таблица = Т.#Параметр(15) + #Если Не "#Параметр(14)" = "ПравоЧтенияПоИдентификатору" #Тогда + И ТаблицыГруппДоступаПроверкаПрава.ПравоИзменение + #КонецЕсли + ) +#ИначеЕсли Не &ОграничениеДоступаНаУровнеЗаписейИспользуется #Тогда + // Группа параметров отключена. +#ИначеЕсли "#Параметр(14)" = "НастройкиПрав" #Тогда + И + ( + ИСТИНА В // Проверка, что пользователю или какой-нибудь группе пользователя право разрешено + ( + ВЫБРАТЬ ПЕРВЫЕ 1 ИСТИНА + ИЗ РегистрСведений.НастройкиПравОбъектов КАК НастройкиПрав + ВНУТРЕННЕЕ СОЕДИНЕНИЕ РегистрСведений.НаследованиеНастроекПравОбъектов КАК НаследованиеНастроек + ПО + НаследованиеНастроек.Объект = Т.#Параметр(15) + И НастройкиПрав.Объект = НаследованиеНастроек.Родитель + #Если #ИмяТекущегоПраваДоступа = "Чтение" #Тогда + И НаследованиеНастроек.УровеньИспользования < НастройкиПрав.УровеньРазрешенияЧтения + #Иначе + #Если СтрСодержит(&ТаблицыСОтдельнымиНастройкамиПрав, "|#Параметр(1);") #Тогда + И НастройкиПрав.Таблица = СвойстваТекущейТаблицы.Ссылка + #Иначе + И НастройкиПрав.Таблица = ЗНАЧЕНИЕ(Справочник.ИдентификаторыОбъектовМетаданных.ПустаяСсылка) + #КонецЕсли + И НаследованиеНастроек.УровеньИспользования < НастройкиПрав.УровеньРазрешенияИзменения + #КонецЕсли + ВНУТРЕННЕЕ СОЕДИНЕНИЕ РегистрСведений.СоставыГруппПользователей КАК СоставыГруппПользователей + ПО + СоставыГруппПользователей.Пользователь = &АвторизованныйПользователь + И СоставыГруппПользователей.ГруппаПользователей = НастройкиПрав.Пользователь + ) + И НЕ ЛОЖЬ В // Проверка, что пользователю или какой-нибудь группе пользователя право запрещено. + ( + ВЫБРАТЬ ПЕРВЫЕ 1 ЛОЖЬ + ИЗ РегистрСведений.НастройкиПравОбъектов КАК НастройкиПрав + ВНУТРЕННЕЕ СОЕДИНЕНИЕ РегистрСведений.НаследованиеНастроекПравОбъектов КАК НаследованиеНастроек + ПО + НаследованиеНастроек.Объект = Т.#Параметр(15) + И НастройкиПрав.Объект = НаследованиеНастроек.Родитель + #Если #ИмяТекущегоПраваДоступа = "Чтение" #Тогда + И НаследованиеНастроек.УровеньИспользования < НастройкиПрав.УровеньЗапрещенияЧтения + #Иначе + #Если СтрСодержит(&ТаблицыСОтдельнымиНастройкамиПрав, "|#Параметр(1);") #Тогда + И НастройкиПрав.Таблица = СвойстваТекущейТаблицы.Ссылка + #Иначе + И НастройкиПрав.Таблица = ЗНАЧЕНИЕ(Справочник.ИдентификаторыОбъектовМетаданных.ПустаяСсылка) + #КонецЕсли + И НаследованиеНастроек.УровеньИспользования < НастройкиПрав.УровеньЗапрещенияИзменения + #КонецЕсли + ВНУТРЕННЕЕ СОЕДИНЕНИЕ РегистрСведений.СоставыГруппПользователей КАК СоставыГруппПользователей + ПО + СоставыГруппПользователей.Пользователь = &АвторизованныйПользователь + И СоставыГруппПользователей.ГруппаПользователей = НастройкиПрав.Пользователь + ) + ) +#ИначеЕсли Не СтрСодержит(&ВсеВидыДоступаКромеСпециальных, ",#Параметр(14),") #Тогда + // Когда параметр задан неверно, вставляется строка, чтобы вызвать ошибку сборки ограничения доступа. + #Если СтрСодержит("#Параметр(14)", ",") #Тогда + НеверныйВидДоступа: "#Параметр(14)" - "Список имен видов доступа не найден" + #Иначе + НеверныйВидДоступа: "#Параметр(14)" - "Имя вида доступа не найдено" + #КонецЕсли +#ИначеЕсли &ВидыДоступаСОтключеннымИспользованием <> "Все" + И Не СтрСодержит(&ВидыДоступаСОтключеннымИспользованием, ",#Параметр(14),") #Тогда + И + ( + ЕСТЬNULL(Т.#Параметр(15), НЕОПРЕДЕЛЕНО) <> НЕОПРЕДЕЛЕНО + И + #Если (Не СтрСодержит(&ВидыДоступаСОтключеннымИспользованием, ",Пользователи,") И СтрСодержит(",#Параметр(14),", ",Пользователи,")) + Или (Не СтрСодержит(&ВидыДоступаСОтключеннымИспользованием, ",ВнешниеПользователи,") И СтрСодержит(",#Параметр(14),", ",ВнешниеПользователи,")) #Тогда + НЕ + ( + НЕ ИСТИНА В + ( + ВЫБРАТЬ ПЕРВЫЕ 1 ИСТИНА + ИЗ РегистрСведений.ГруппыЗначенийДоступа КАК ГруппыЗначенийДоступа + ГДЕ + ГруппыЗначенийДоступа.ЗначениеДоступа = Т.#Параметр(15) + И ГруппыЗначенийДоступа.ГруппаЗначенийДоступа = &АвторизованныйПользователь + ) + И НЕ + #Иначе + ( + #КонецЕсли + ВЫБОР + КОГДА ИСТИНА В + ( + #Если СтрСодержит(&ВидыДоступаБезГруппДляЗначенияДоступа, ",#Параметр(14),") #Тогда + ВЫБРАТЬ ПЕРВЫЕ 1 ИСТИНА + ИЗ РегистрСведений.ЗначенияГруппДоступа КАК Значения + ГДЕ + Значения.ГруппаДоступа = ГруппыДоступа.Ссылка + И Значения.ЗначениеДоступа = Т.#Параметр(15) + #ИначеЕсли "Т.#Параметр(15)" = "Т.Ссылка" + И "#Параметр(14)" <> "Пользователи" + И "#Параметр(14)" <> "ВнешниеПользователи" #Тогда + #Если СтрСодержит("#Параметр(14)", ",") #Тогда + // Когда параметр задан неверно, вставляется строка, чтобы вызвать ошибку сборки ограничения доступа. + НеверныйВидДоступа: "#Параметр(14)" - "При проверке таблицы значения доступа можно указывать только один вид доступа" + #ИначеЕсли СтрСодержит(&ВидыДоступаСОднойГруппойДляЗначенияДоступа, ",#Параметр(14),") #Тогда + ВЫБРАТЬ ПЕРВЫЕ 1 ИСТИНА + ИЗ РегистрСведений.ЗначенияГруппДоступа КАК Значения + ГДЕ + Значения.ГруппаДоступа = ГруппыДоступа.Ссылка + И Значения.ЗначениеДоступа = Т.ГруппаДоступа + #Иначе // Значения доступа, для которых можно указать несколько групп значений доступа. + ВЫБРАТЬ ПЕРВЫЕ 1 ИСТИНА + ИЗ РегистрСведений.ЗначенияГруппДоступа КАК Значения + ВНУТРЕННЕЕ СОЕДИНЕНИЕ #Параметр(1).ГруппыДоступа КАК ГруппыЗначений + ПО + Значения.ГруппаДоступа = ГруппыДоступа.Ссылка + И Значения.ЗначениеДоступа = ГруппыЗначений.ГруппаДоступа + И ГруппыЗначений.Ссылка = Т.#Параметр(15) + #КонецЕсли + #Иначе + ВЫБРАТЬ ПЕРВЫЕ 1 ИСТИНА + ИЗ РегистрСведений.ЗначенияГруппДоступа КАК Значения + ВНУТРЕННЕЕ СОЕДИНЕНИЕ РегистрСведений.ГруппыЗначенийДоступа КАК ГруппыЗначений + ПО + Значения.ГруппаДоступа = ГруппыДоступа.Ссылка + И Значения.ЗначениеДоступа = ГруппыЗначений.ГруппаЗначенийДоступа + И ГруппыЗначений.ЗначениеДоступа = Т.#Параметр(15) + #КонецЕсли + ) + ТОГДА ИСТИНА + ИНАЧЕ ЛОЖЬ + КОНЕЦ + = + ВЫБОР + КОГДА ИСТИНА В + ( + ВЫБРАТЬ ПЕРВЫЕ 1 ИСТИНА + ИЗ РегистрСведений.ЗначенияГруппДоступаПоУмолчанию КАК ЗначенияПоУмолчанию + ГДЕ + ЗначенияПоУмолчанию.ГруппаДоступа = ГруппыДоступа.Ссылка + И ТИПЗНАЧЕНИЯ(ЗначенияПоУмолчанию.ТипЗначенийДоступа) = ТИПЗНАЧЕНИЯ(Т.#Параметр(15)) + И ЗначенияПоУмолчанию.ВсеРазрешены = ЛОЖЬ + ) + ТОГДА ИСТИНА + ИНАЧЕ ЛОЖЬ + КОНЕЦ + ) + ) +#Иначе + И ЕСТЬNULL(Т.#Параметр(15), НЕОПРЕДЕЛЕНО) <> НЕОПРЕДЕЛЕНО +#КонецЕсли + +//// Проверка значения поля группы параметров 7. +#Если "#Параметр(16)" = "" И "#Параметр(17)" = "" #Тогда + // Группа параметров не используется. +#ИначеЕсли &ОграничениеДоступаНаУровнеЗаписейИспользуется И ("#Параметр(16)" = "Условие" Или "#Параметр(16)" = "") #Тогда + // Когда имя вида доступа "Условие" (или ""), тогда вместо имени поля задано условие. + И ( #Параметр(17) ) +#ИначеЕсли "#Параметр(16)" = "ПравоЧтения" Или "#Параметр(16)" = "ПравоИзменения" #Тогда + И Т.#Параметр(17) <> НЕОПРЕДЕЛЕНО + И ИСТИНА В + ( // Проверка права пользователя на таблицу Значения, установленного в поле. + ВЫБРАТЬ ПЕРВЫЕ 1 ИСТИНА + ИЗ РегистрСведений.ТаблицыГруппДоступа КАК ТаблицыГруппДоступаПроверкаПрава + ГДЕ + ТаблицыГруппДоступаПроверкаПрава.ГруппаДоступа = ГруппыДоступа.Ссылка + И ТИПЗНАЧЕНИЯ(ТаблицыГруппДоступаПроверкаПрава.ТипТаблицы) = ТИПЗНАЧЕНИЯ(Т.#Параметр(17)) + #Если Не "#Параметр(16)" = "ПравоЧтения" #Тогда + И ТаблицыГруппДоступаПроверкаПрава.ПравоИзменение + #КонецЕсли + ) +#ИначеЕсли "#Параметр(16)" = "ПравоЧтенияПоИдентификатору" Или "#Параметр(16)" = "ПравоИзмененияПоИдентификатору" #Тогда + ИСТИНА В + ( // Проверка права пользователя на таблицу, идентификатор которой указан в Значении, установленном в поле. + ВЫБРАТЬ ПЕРВЫЕ 1 ИСТИНА + ИЗ РегистрСведений.ТаблицыГруппДоступа КАК ТаблицыГруппДоступаПроверкаПрава + ГДЕ + ТаблицыГруппДоступаПроверкаПрава.ГруппаДоступа = ГруппыДоступа.Ссылка + И ТаблицыГруппДоступаПроверкаПрава.Таблица = Т.#Параметр(17) + #Если Не "#Параметр(16)" = "ПравоЧтенияПоИдентификатору" #Тогда + И ТаблицыГруппДоступаПроверкаПрава.ПравоИзменение + #КонецЕсли + ) +#ИначеЕсли Не &ОграничениеДоступаНаУровнеЗаписейИспользуется #Тогда + // Группа параметров отключена. +#ИначеЕсли "#Параметр(16)" = "НастройкиПрав" #Тогда + И + ( + ИСТИНА В // Проверка, что пользователю или какой-нибудь группе пользователя право разрешено + ( + ВЫБРАТЬ ПЕРВЫЕ 1 ИСТИНА + ИЗ РегистрСведений.НастройкиПравОбъектов КАК НастройкиПрав + ВНУТРЕННЕЕ СОЕДИНЕНИЕ РегистрСведений.НаследованиеНастроекПравОбъектов КАК НаследованиеНастроек + ПО + НаследованиеНастроек.Объект = Т.#Параметр(17) + И НастройкиПрав.Объект = НаследованиеНастроек.Родитель + #Если #ИмяТекущегоПраваДоступа = "Чтение" #Тогда + И НаследованиеНастроек.УровеньИспользования < НастройкиПрав.УровеньРазрешенияЧтения + #Иначе + #Если СтрСодержит(&ТаблицыСОтдельнымиНастройкамиПрав, "|#Параметр(1);") #Тогда + И НастройкиПрав.Таблица = СвойстваТекущейТаблицы.Ссылка + #Иначе + И НастройкиПрав.Таблица = ЗНАЧЕНИЕ(Справочник.ИдентификаторыОбъектовМетаданных.ПустаяСсылка) + #КонецЕсли + И НаследованиеНастроек.УровеньИспользования < НастройкиПрав.УровеньРазрешенияИзменения + #КонецЕсли + ВНУТРЕННЕЕ СОЕДИНЕНИЕ РегистрСведений.СоставыГруппПользователей КАК СоставыГруппПользователей + ПО + СоставыГруппПользователей.Пользователь = &АвторизованныйПользователь + И СоставыГруппПользователей.ГруппаПользователей = НастройкиПрав.Пользователь + ) + И НЕ ЛОЖЬ В // Проверка, что пользователю или какой-нибудь группе пользователя право запрещено. + ( + ВЫБРАТЬ ПЕРВЫЕ 1 ЛОЖЬ + ИЗ РегистрСведений.НастройкиПравОбъектов КАК НастройкиПрав + ВНУТРЕННЕЕ СОЕДИНЕНИЕ РегистрСведений.НаследованиеНастроекПравОбъектов КАК НаследованиеНастроек + ПО + НаследованиеНастроек.Объект = Т.#Параметр(17) + И НастройкиПрав.Объект = НаследованиеНастроек.Родитель + #Если #ИмяТекущегоПраваДоступа = "Чтение" #Тогда + И НаследованиеНастроек.УровеньИспользования < НастройкиПрав.УровеньЗапрещенияЧтения + #Иначе + #Если СтрСодержит(&ТаблицыСОтдельнымиНастройкамиПрав, "|#Параметр(1);") #Тогда + И НастройкиПрав.Таблица = СвойстваТекущейТаблицы.Ссылка + #Иначе + И НастройкиПрав.Таблица = ЗНАЧЕНИЕ(Справочник.ИдентификаторыОбъектовМетаданных.ПустаяСсылка) + #КонецЕсли + И НаследованиеНастроек.УровеньИспользования < НастройкиПрав.УровеньЗапрещенияИзменения + #КонецЕсли + ВНУТРЕННЕЕ СОЕДИНЕНИЕ РегистрСведений.СоставыГруппПользователей КАК СоставыГруппПользователей + ПО + СоставыГруппПользователей.Пользователь = &АвторизованныйПользователь + И СоставыГруппПользователей.ГруппаПользователей = НастройкиПрав.Пользователь + ) + ) +#ИначеЕсли Не СтрСодержит(&ВсеВидыДоступаКромеСпециальных, ",#Параметр(16),") #Тогда + // Когда параметр задан неверно, вставляется строка, чтобы вызвать ошибку сборки ограничения доступа. + #Если СтрСодержит("#Параметр(16)", ",") #Тогда + НеверныйВидДоступа: "#Параметр(16)" - "Список имен видов доступа не найден" + #Иначе + НеверныйВидДоступа: "#Параметр(16)" - "Имя вида доступа не найдено" + #КонецЕсли +#ИначеЕсли &ВидыДоступаСОтключеннымИспользованием <> "Все" + И Не СтрСодержит(&ВидыДоступаСОтключеннымИспользованием, ",#Параметр(16),") #Тогда + И + ( + ЕСТЬNULL(Т.#Параметр(17), НЕОПРЕДЕЛЕНО) <> НЕОПРЕДЕЛЕНО + И + #Если (Не СтрСодержит(&ВидыДоступаСОтключеннымИспользованием, ",Пользователи,") И СтрСодержит(",#Параметр(16),", ",Пользователи,")) + Или (Не СтрСодержит(&ВидыДоступаСОтключеннымИспользованием, ",ВнешниеПользователи,") И СтрСодержит(",#Параметр(16),", ",ВнешниеПользователи,")) #Тогда + НЕ + ( + НЕ ИСТИНА В + ( + ВЫБРАТЬ ПЕРВЫЕ 1 ИСТИНА + ИЗ РегистрСведений.ГруппыЗначенийДоступа КАК ГруппыЗначенийДоступа + ГДЕ + ГруппыЗначенийДоступа.ЗначениеДоступа = Т.#Параметр(17) + И ГруппыЗначенийДоступа.ГруппаЗначенийДоступа = &АвторизованныйПользователь + ) + И НЕ + #Иначе + ( + #КонецЕсли + ВЫБОР + КОГДА ИСТИНА В + ( + #Если СтрСодержит(&ВидыДоступаБезГруппДляЗначенияДоступа, ",#Параметр(16),") #Тогда + ВЫБРАТЬ ПЕРВЫЕ 1 ИСТИНА + ИЗ РегистрСведений.ЗначенияГруппДоступа КАК Значения + ГДЕ + Значения.ГруппаДоступа = ГруппыДоступа.Ссылка + И Значения.ЗначениеДоступа = Т.#Параметр(17) + #ИначеЕсли "Т.#Параметр(17)" = "Т.Ссылка" + И "#Параметр(16)" <> "Пользователи" + И "#Параметр(16)" <> "ВнешниеПользователи" #Тогда + #Если СтрСодержит("#Параметр(16)", ",") #Тогда + // Когда параметр задан неверно, вставляется строка, чтобы вызвать ошибку сборки ограничения доступа. + НеверныйВидДоступа: "#Параметр(16)" - "При проверке таблицы значения доступа можно указывать только один вид доступа" + #ИначеЕсли СтрСодержит(&ВидыДоступаСОднойГруппойДляЗначенияДоступа, ",#Параметр(16),") #Тогда + ВЫБРАТЬ ПЕРВЫЕ 1 ИСТИНА + ИЗ РегистрСведений.ЗначенияГруппДоступа КАК Значения + ГДЕ + Значения.ГруппаДоступа = ГруппыДоступа.Ссылка + И Значения.ЗначениеДоступа = Т.ГруппаДоступа + #Иначе // Значения доступа, для которых можно указать несколько групп значений доступа. + ВЫБРАТЬ ПЕРВЫЕ 1 ИСТИНА + ИЗ РегистрСведений.ЗначенияГруппДоступа КАК Значения + ВНУТРЕННЕЕ СОЕДИНЕНИЕ #Параметр(1).ГруппыДоступа КАК ГруппыЗначений + ПО + Значения.ГруппаДоступа = ГруппыДоступа.Ссылка + И Значения.ЗначениеДоступа = ГруппыЗначений.ГруппаДоступа + И ГруппыЗначений.Ссылка = Т.#Параметр(17) + #КонецЕсли + #Иначе + ВЫБРАТЬ ПЕРВЫЕ 1 ИСТИНА + ИЗ РегистрСведений.ЗначенияГруппДоступа КАК Значения + ВНУТРЕННЕЕ СОЕДИНЕНИЕ РегистрСведений.ГруппыЗначенийДоступа КАК ГруппыЗначений + ПО + Значения.ГруппаДоступа = ГруппыДоступа.Ссылка + И Значения.ЗначениеДоступа = ГруппыЗначений.ГруппаЗначенийДоступа + И ГруппыЗначений.ЗначениеДоступа = Т.#Параметр(17) + #КонецЕсли + ) + ТОГДА ИСТИНА + ИНАЧЕ ЛОЖЬ + КОНЕЦ + = + ВЫБОР + КОГДА ИСТИНА В + ( + ВЫБРАТЬ ПЕРВЫЕ 1 ИСТИНА + ИЗ РегистрСведений.ЗначенияГруппДоступаПоУмолчанию КАК ЗначенияПоУмолчанию + ГДЕ + ЗначенияПоУмолчанию.ГруппаДоступа = ГруппыДоступа.Ссылка + И ТИПЗНАЧЕНИЯ(ЗначенияПоУмолчанию.ТипЗначенийДоступа) = ТИПЗНАЧЕНИЯ(Т.#Параметр(17)) + И ЗначенияПоУмолчанию.ВсеРазрешены = ЛОЖЬ + ) + ТОГДА ИСТИНА + ИНАЧЕ ЛОЖЬ + КОНЕЦ + ) + ) +#Иначе + И ЕСТЬNULL(Т.#Параметр(17), НЕОПРЕДЕЛЕНО) <> НЕОПРЕДЕЛЕНО +#КонецЕсли + +//// Проверка значения поля группы параметров 8. +#Если "#Параметр(18)" = "" И "#Параметр(19)" = "" #Тогда + // Группа параметров не используется. +#ИначеЕсли &ОграничениеДоступаНаУровнеЗаписейИспользуется И ("#Параметр(18)" = "Условие" Или "#Параметр(18)" = "") #Тогда + // Когда имя вида доступа "Условие" (или ""), тогда вместо имени поля задано условие. + И ( #Параметр(19) ) +#ИначеЕсли "#Параметр(18)" = "ПравоЧтения" Или "#Параметр(18)" = "ПравоИзменения" #Тогда + И Т.#Параметр(19) <> НЕОПРЕДЕЛЕНО + И ИСТИНА В + ( // Проверка права пользователя на таблицу Значения, установленного в поле. + ВЫБРАТЬ ПЕРВЫЕ 1 ИСТИНА + ИЗ РегистрСведений.ТаблицыГруппДоступа КАК ТаблицыГруппДоступаПроверкаПрава + ГДЕ + ТаблицыГруппДоступаПроверкаПрава.ГруппаДоступа = ГруппыДоступа.Ссылка + И ТИПЗНАЧЕНИЯ(ТаблицыГруппДоступаПроверкаПрава.ТипТаблицы) = ТИПЗНАЧЕНИЯ(Т.#Параметр(19)) + #Если Не "#Параметр(18)" = "ПравоЧтения" #Тогда + И ТаблицыГруппДоступаПроверкаПрава.ПравоИзменение + #КонецЕсли + ) +#ИначеЕсли "#Параметр(18)" = "ПравоЧтенияПоИдентификатору" Или "#Параметр(18)" = "ПравоИзмененияПоИдентификатору" #Тогда + ИСТИНА В + ( // Проверка права пользователя на таблицу, идентификатор которой указан в Значении, установленном в поле. + ВЫБРАТЬ ПЕРВЫЕ 1 ИСТИНА + ИЗ РегистрСведений.ТаблицыГруппДоступа КАК ТаблицыГруппДоступаПроверкаПрава + ГДЕ + ТаблицыГруппДоступаПроверкаПрава.ГруппаДоступа = ГруппыДоступа.Ссылка + И ТаблицыГруппДоступаПроверкаПрава.Таблица = Т.#Параметр(19) + #Если Не "#Параметр(18)" = "ПравоЧтенияПоИдентификатору" #Тогда + И ТаблицыГруппДоступаПроверкаПрава.ПравоИзменение + #КонецЕсли + ) +#ИначеЕсли Не &ОграничениеДоступаНаУровнеЗаписейИспользуется #Тогда + // Группа параметров отключена. +#ИначеЕсли "#Параметр(18)" = "НастройкиПрав" #Тогда + И + ( + ИСТИНА В // Проверка, что пользователю или какой-нибудь группе пользователя право разрешено + ( + ВЫБРАТЬ ПЕРВЫЕ 1 ИСТИНА + ИЗ РегистрСведений.НастройкиПравОбъектов КАК НастройкиПрав + ВНУТРЕННЕЕ СОЕДИНЕНИЕ РегистрСведений.НаследованиеНастроекПравОбъектов КАК НаследованиеНастроек + ПО + НаследованиеНастроек.Объект = Т.#Параметр(19) + И НастройкиПрав.Объект = НаследованиеНастроек.Родитель + #Если #ИмяТекущегоПраваДоступа = "Чтение" #Тогда + И НаследованиеНастроек.УровеньИспользования < НастройкиПрав.УровеньРазрешенияЧтения + #Иначе + #Если СтрСодержит(&ТаблицыСОтдельнымиНастройкамиПрав, "|#Параметр(1);") #Тогда + И НастройкиПрав.Таблица = СвойстваТекущейТаблицы.Ссылка + #Иначе + И НастройкиПрав.Таблица = ЗНАЧЕНИЕ(Справочник.ИдентификаторыОбъектовМетаданных.ПустаяСсылка) + #КонецЕсли + И НаследованиеНастроек.УровеньИспользования < НастройкиПрав.УровеньРазрешенияИзменения + #КонецЕсли + ВНУТРЕННЕЕ СОЕДИНЕНИЕ РегистрСведений.СоставыГруппПользователей КАК СоставыГруппПользователей + ПО + СоставыГруппПользователей.Пользователь = &АвторизованныйПользователь + И СоставыГруппПользователей.ГруппаПользователей = НастройкиПрав.Пользователь + ) + И НЕ ЛОЖЬ В // Проверка, что пользователю или какой-нибудь группе пользователя право запрещено. + ( + ВЫБРАТЬ ПЕРВЫЕ 1 ЛОЖЬ + ИЗ РегистрСведений.НастройкиПравОбъектов КАК НастройкиПрав + ВНУТРЕННЕЕ СОЕДИНЕНИЕ РегистрСведений.НаследованиеНастроекПравОбъектов КАК НаследованиеНастроек + ПО + НаследованиеНастроек.Объект = Т.#Параметр(19) + И НастройкиПрав.Объект = НаследованиеНастроек.Родитель + #Если #ИмяТекущегоПраваДоступа = "Чтение" #Тогда + И НаследованиеНастроек.УровеньИспользования < НастройкиПрав.УровеньЗапрещенияЧтения + #Иначе + #Если СтрСодержит(&ТаблицыСОтдельнымиНастройкамиПрав, "|#Параметр(1);") #Тогда + И НастройкиПрав.Таблица = СвойстваТекущейТаблицы.Ссылка + #Иначе + И НастройкиПрав.Таблица = ЗНАЧЕНИЕ(Справочник.ИдентификаторыОбъектовМетаданных.ПустаяСсылка) + #КонецЕсли + И НаследованиеНастроек.УровеньИспользования < НастройкиПрав.УровеньЗапрещенияИзменения + #КонецЕсли + ВНУТРЕННЕЕ СОЕДИНЕНИЕ РегистрСведений.СоставыГруппПользователей КАК СоставыГруппПользователей + ПО + СоставыГруппПользователей.Пользователь = &АвторизованныйПользователь + И СоставыГруппПользователей.ГруппаПользователей = НастройкиПрав.Пользователь + ) + ) +#ИначеЕсли Не СтрСодержит(&ВсеВидыДоступаКромеСпециальных, ",#Параметр(18),") #Тогда + // Когда параметр задан неверно, вставляется строка, чтобы вызвать ошибку сборки ограничения доступа. + #Если СтрСодержит("#Параметр(18)", ",") #Тогда + НеверныйВидДоступа: "#Параметр(18)" - "Список имен видов доступа не найден" + #Иначе + НеверныйВидДоступа: "#Параметр(18)" - "Имя вида доступа не найдено" + #КонецЕсли +#ИначеЕсли &ВидыДоступаСОтключеннымИспользованием <> "Все" + И Не СтрСодержит(&ВидыДоступаСОтключеннымИспользованием, ",#Параметр(18),") #Тогда + И + ( + ЕСТЬNULL(Т.#Параметр(19), НЕОПРЕДЕЛЕНО) <> НЕОПРЕДЕЛЕНО + И + #Если (Не СтрСодержит(&ВидыДоступаСОтключеннымИспользованием, ",Пользователи,") И СтрСодержит(",#Параметр(18),", ",Пользователи,")) + Или (Не СтрСодержит(&ВидыДоступаСОтключеннымИспользованием, ",ВнешниеПользователи,") И СтрСодержит(",#Параметр(18),", ",ВнешниеПользователи,")) #Тогда + НЕ + ( + НЕ ИСТИНА В + ( + ВЫБРАТЬ ПЕРВЫЕ 1 ИСТИНА + ИЗ РегистрСведений.ГруппыЗначенийДоступа КАК ГруппыЗначенийДоступа + ГДЕ + ГруппыЗначенийДоступа.ЗначениеДоступа = Т.#Параметр(19) + И ГруппыЗначенийДоступа.ГруппаЗначенийДоступа = &АвторизованныйПользователь + ) + И НЕ + #Иначе + ( + #КонецЕсли + ВЫБОР + КОГДА ИСТИНА В + ( + #Если СтрСодержит(&ВидыДоступаБезГруппДляЗначенияДоступа, ",#Параметр(18),") #Тогда + ВЫБРАТЬ ПЕРВЫЕ 1 ИСТИНА + ИЗ РегистрСведений.ЗначенияГруппДоступа КАК Значения + ГДЕ + Значения.ГруппаДоступа = ГруппыДоступа.Ссылка + И Значения.ЗначениеДоступа = Т.#Параметр(19) + #ИначеЕсли "Т.#Параметр(19)" = "Т.Ссылка" + И "#Параметр(18)" <> "Пользователи" + И "#Параметр(18)" <> "ВнешниеПользователи" #Тогда + #Если СтрСодержит("#Параметр(18)", ",") #Тогда + // Когда параметр задан неверно, вставляется строка, чтобы вызвать ошибку сборки ограничения доступа. + НеверныйВидДоступа: "#Параметр(18)" - "При проверке таблицы значения доступа можно указывать только один вид доступа" + #ИначеЕсли СтрСодержит(&ВидыДоступаСОднойГруппойДляЗначенияДоступа, ",#Параметр(18),") #Тогда + ВЫБРАТЬ ПЕРВЫЕ 1 ИСТИНА + ИЗ РегистрСведений.ЗначенияГруппДоступа КАК Значения + ГДЕ + Значения.ГруппаДоступа = ГруппыДоступа.Ссылка + И Значения.ЗначениеДоступа = Т.ГруппаДоступа + #Иначе // Значения доступа, для которых можно указать несколько групп значений доступа. + ВЫБРАТЬ ПЕРВЫЕ 1 ИСТИНА + ИЗ РегистрСведений.ЗначенияГруппДоступа КАК Значения + ВНУТРЕННЕЕ СОЕДИНЕНИЕ #Параметр(1).ГруппыДоступа КАК ГруппыЗначений + ПО + Значения.ГруппаДоступа = ГруппыДоступа.Ссылка + И Значения.ЗначениеДоступа = ГруппыЗначений.ГруппаДоступа + И ГруппыЗначений.Ссылка = Т.#Параметр(19) + #КонецЕсли + #Иначе + ВЫБРАТЬ ПЕРВЫЕ 1 ИСТИНА + ИЗ РегистрСведений.ЗначенияГруппДоступа КАК Значения + ВНУТРЕННЕЕ СОЕДИНЕНИЕ РегистрСведений.ГруппыЗначенийДоступа КАК ГруппыЗначений + ПО + Значения.ГруппаДоступа = ГруппыДоступа.Ссылка + И Значения.ЗначениеДоступа = ГруппыЗначений.ГруппаЗначенийДоступа + И ГруппыЗначений.ЗначениеДоступа = Т.#Параметр(19) + #КонецЕсли + ) + ТОГДА ИСТИНА + ИНАЧЕ ЛОЖЬ + КОНЕЦ + = + ВЫБОР + КОГДА ИСТИНА В + ( + ВЫБРАТЬ ПЕРВЫЕ 1 ИСТИНА + ИЗ РегистрСведений.ЗначенияГруппДоступаПоУмолчанию КАК ЗначенияПоУмолчанию + ГДЕ + ЗначенияПоУмолчанию.ГруппаДоступа = ГруппыДоступа.Ссылка + И ТИПЗНАЧЕНИЯ(ЗначенияПоУмолчанию.ТипЗначенийДоступа) = ТИПЗНАЧЕНИЯ(Т.#Параметр(19)) + И ЗначенияПоУмолчанию.ВсеРазрешены = ЛОЖЬ + ) + ТОГДА ИСТИНА + ИНАЧЕ ЛОЖЬ + КОНЕЦ + ) + ) +#Иначе + И ЕСТЬNULL(Т.#Параметр(19), НЕОПРЕДЕЛЕНО) <> НЕОПРЕДЕЛЕНО +#КонецЕсли + +//// Проверка значения поля группы параметров 9. +#Если "#Параметр(20)" = "" И "#Параметр(21)" = "" #Тогда + // Группа параметров не используется. +#ИначеЕсли &ОграничениеДоступаНаУровнеЗаписейИспользуется И ("#Параметр(20)" = "Условие" Или "#Параметр(20)" = "") #Тогда + // Когда имя вида доступа "Условие" (или ""), тогда вместо имени поля задано условие. + И ( #Параметр(21) ) +#ИначеЕсли "#Параметр(20)" = "ПравоЧтения" Или "#Параметр(20)" = "ПравоИзменения" #Тогда + И Т.#Параметр(21) <> НЕОПРЕДЕЛЕНО + И ИСТИНА В + ( // Проверка права пользователя на таблицу Значения, установленного в поле. + ВЫБРАТЬ ПЕРВЫЕ 1 ИСТИНА + ИЗ РегистрСведений.ТаблицыГруппДоступа КАК ТаблицыГруппДоступаПроверкаПрава + ГДЕ + ТаблицыГруппДоступаПроверкаПрава.ГруппаДоступа = ГруппыДоступа.Ссылка + И ТИПЗНАЧЕНИЯ(ТаблицыГруппДоступаПроверкаПрава.ТипТаблицы) = ТИПЗНАЧЕНИЯ(Т.#Параметр(21)) + #Если Не "#Параметр(20)" = "ПравоЧтения" #Тогда + И ТаблицыГруппДоступаПроверкаПрава.ПравоИзменение + #КонецЕсли + ) +#ИначеЕсли "#Параметр(20)" = "ПравоЧтенияПоИдентификатору" Или "#Параметр(20)" = "ПравоИзмененияПоИдентификатору" #Тогда + ИСТИНА В + ( // Проверка права пользователя на таблицу, идентификатор которой указан в Значении, установленном в поле. + ВЫБРАТЬ ПЕРВЫЕ 1 ИСТИНА + ИЗ РегистрСведений.ТаблицыГруппДоступа КАК ТаблицыГруппДоступаПроверкаПрава + ГДЕ + ТаблицыГруппДоступаПроверкаПрава.ГруппаДоступа = ГруппыДоступа.Ссылка + И ТаблицыГруппДоступаПроверкаПрава.Таблица = Т.#Параметр(21) + #Если Не "#Параметр(20)" = "ПравоЧтенияПоИдентификатору" #Тогда + И ТаблицыГруппДоступаПроверкаПрава.ПравоИзменение + #КонецЕсли + ) +#ИначеЕсли Не &ОграничениеДоступаНаУровнеЗаписейИспользуется #Тогда + // Группа параметров отключена. +#ИначеЕсли "#Параметр(20)" = "НастройкиПрав" #Тогда + И + ( + ИСТИНА В // Проверка, что пользователю или какой-нибудь группе пользователя право разрешено + ( + ВЫБРАТЬ ПЕРВЫЕ 1 ИСТИНА + ИЗ РегистрСведений.НастройкиПравОбъектов КАК НастройкиПрав + ВНУТРЕННЕЕ СОЕДИНЕНИЕ РегистрСведений.НаследованиеНастроекПравОбъектов КАК НаследованиеНастроек + ПО + НаследованиеНастроек.Объект = Т.#Параметр(21) + И НастройкиПрав.Объект = НаследованиеНастроек.Родитель + #Если #ИмяТекущегоПраваДоступа = "Чтение" #Тогда + И НаследованиеНастроек.УровеньИспользования < НастройкиПрав.УровеньРазрешенияЧтения + #Иначе + #Если СтрСодержит(&ТаблицыСОтдельнымиНастройкамиПрав, "|#Параметр(1);") #Тогда + И НастройкиПрав.Таблица = СвойстваТекущейТаблицы.Ссылка + #Иначе + И НастройкиПрав.Таблица = ЗНАЧЕНИЕ(Справочник.ИдентификаторыОбъектовМетаданных.ПустаяСсылка) + #КонецЕсли + И НаследованиеНастроек.УровеньИспользования < НастройкиПрав.УровеньРазрешенияИзменения + #КонецЕсли + ВНУТРЕННЕЕ СОЕДИНЕНИЕ РегистрСведений.СоставыГруппПользователей КАК СоставыГруппПользователей + ПО + СоставыГруппПользователей.Пользователь = &АвторизованныйПользователь + И СоставыГруппПользователей.ГруппаПользователей = НастройкиПрав.Пользователь + ) + И НЕ ЛОЖЬ В // Проверка, что пользователю или какой-нибудь группе пользователя право запрещено. + ( + ВЫБРАТЬ ПЕРВЫЕ 1 ЛОЖЬ + ИЗ РегистрСведений.НастройкиПравОбъектов КАК НастройкиПрав + ВНУТРЕННЕЕ СОЕДИНЕНИЕ РегистрСведений.НаследованиеНастроекПравОбъектов КАК НаследованиеНастроек + ПО + НаследованиеНастроек.Объект = Т.#Параметр(21) + И НастройкиПрав.Объект = НаследованиеНастроек.Родитель + #Если #ИмяТекущегоПраваДоступа = "Чтение" #Тогда + И НаследованиеНастроек.УровеньИспользования < НастройкиПрав.УровеньЗапрещенияЧтения + #Иначе + #Если СтрСодержит(&ТаблицыСОтдельнымиНастройкамиПрав, "|#Параметр(1);") #Тогда + И НастройкиПрав.Таблица = СвойстваТекущейТаблицы.Ссылка + #Иначе + И НастройкиПрав.Таблица = ЗНАЧЕНИЕ(Справочник.ИдентификаторыОбъектовМетаданных.ПустаяСсылка) + #КонецЕсли + И НаследованиеНастроек.УровеньИспользования < НастройкиПрав.УровеньЗапрещенияИзменения + #КонецЕсли + ВНУТРЕННЕЕ СОЕДИНЕНИЕ РегистрСведений.СоставыГруппПользователей КАК СоставыГруппПользователей + ПО + СоставыГруппПользователей.Пользователь = &АвторизованныйПользователь + И СоставыГруппПользователей.ГруппаПользователей = НастройкиПрав.Пользователь + ) + ) +#ИначеЕсли Не СтрСодержит(&ВсеВидыДоступаКромеСпециальных, ",#Параметр(20),") #Тогда + // Когда параметр задан неверно, вставляется строка, чтобы вызвать ошибку сборки ограничения доступа. + #Если СтрСодержит("#Параметр(20)", ",") #Тогда + НеверныйВидДоступа: "#Параметр(20)" - "Список имен видов доступа не найден" + #Иначе + НеверныйВидДоступа: "#Параметр(20)" - "Имя вида доступа не найдено" + #КонецЕсли +#ИначеЕсли &ВидыДоступаСОтключеннымИспользованием <> "Все" + И Не СтрСодержит(&ВидыДоступаСОтключеннымИспользованием, ",#Параметр(20),") #Тогда + И + ( + ЕСТЬNULL(Т.#Параметр(21), НЕОПРЕДЕЛЕНО) <> НЕОПРЕДЕЛЕНО + И + #Если (Не СтрСодержит(&ВидыДоступаСОтключеннымИспользованием, ",Пользователи,") И СтрСодержит(",#Параметр(20),", ",Пользователи,")) + Или (Не СтрСодержит(&ВидыДоступаСОтключеннымИспользованием, ",ВнешниеПользователи,") И СтрСодержит(",#Параметр(20),", ",ВнешниеПользователи,")) #Тогда + НЕ + ( + НЕ ИСТИНА В + ( + ВЫБРАТЬ ПЕРВЫЕ 1 ИСТИНА + ИЗ РегистрСведений.ГруппыЗначенийДоступа КАК ГруппыЗначенийДоступа + ГДЕ + ГруппыЗначенийДоступа.ЗначениеДоступа = Т.#Параметр(21) + И ГруппыЗначенийДоступа.ГруппаЗначенийДоступа = &АвторизованныйПользователь + ) + И НЕ + #Иначе + ( + #КонецЕсли + ВЫБОР + КОГДА ИСТИНА В + ( + #Если СтрСодержит(&ВидыДоступаБезГруппДляЗначенияДоступа, ",#Параметр(20),") #Тогда + ВЫБРАТЬ ПЕРВЫЕ 1 ИСТИНА + ИЗ РегистрСведений.ЗначенияГруппДоступа КАК Значения + ГДЕ + Значения.ГруппаДоступа = ГруппыДоступа.Ссылка + И Значения.ЗначениеДоступа = Т.#Параметр(21) + #ИначеЕсли "Т.#Параметр(21)" = "Т.Ссылка" + И "#Параметр(20)" <> "Пользователи" + И "#Параметр(20)" <> "ВнешниеПользователи" #Тогда + #Если СтрСодержит("#Параметр(20)", ",") #Тогда + // Когда параметр задан неверно, вставляется строка, чтобы вызвать ошибку сборки ограничения доступа. + НеверныйВидДоступа: "#Параметр(20)" - "При проверке таблицы значения доступа можно указывать только один вид доступа" + #ИначеЕсли СтрСодержит(&ВидыДоступаСОднойГруппойДляЗначенияДоступа, ",#Параметр(20),") #Тогда + ВЫБРАТЬ ПЕРВЫЕ 1 ИСТИНА + ИЗ РегистрСведений.ЗначенияГруппДоступа КАК Значения + ГДЕ + Значения.ГруппаДоступа = ГруппыДоступа.Ссылка + И Значения.ЗначениеДоступа = Т.ГруппаДоступа + #Иначе // Значения доступа, для которых можно указать несколько групп значений доступа. + ВЫБРАТЬ ПЕРВЫЕ 1 ИСТИНА + ИЗ РегистрСведений.ЗначенияГруппДоступа КАК Значения + ВНУТРЕННЕЕ СОЕДИНЕНИЕ #Параметр(1).ГруппыДоступа КАК ГруппыЗначений + ПО + Значения.ГруппаДоступа = ГруппыДоступа.Ссылка + И Значения.ЗначениеДоступа = ГруппыЗначений.ГруппаДоступа + И ГруппыЗначений.Ссылка = Т.#Параметр(21) + #КонецЕсли + #Иначе + ВЫБРАТЬ ПЕРВЫЕ 1 ИСТИНА + ИЗ РегистрСведений.ЗначенияГруппДоступа КАК Значения + ВНУТРЕННЕЕ СОЕДИНЕНИЕ РегистрСведений.ГруппыЗначенийДоступа КАК ГруппыЗначений + ПО + Значения.ГруппаДоступа = ГруппыДоступа.Ссылка + И Значения.ЗначениеДоступа = ГруппыЗначений.ГруппаЗначенийДоступа + И ГруппыЗначений.ЗначениеДоступа = Т.#Параметр(21) + #КонецЕсли + ) + ТОГДА ИСТИНА + ИНАЧЕ ЛОЖЬ + КОНЕЦ + = + ВЫБОР + КОГДА ИСТИНА В + ( + ВЫБРАТЬ ПЕРВЫЕ 1 ИСТИНА + ИЗ РегистрСведений.ЗначенияГруппДоступаПоУмолчанию КАК ЗначенияПоУмолчанию + ГДЕ + ЗначенияПоУмолчанию.ГруппаДоступа = ГруппыДоступа.Ссылка + И ТИПЗНАЧЕНИЯ(ЗначенияПоУмолчанию.ТипЗначенийДоступа) = ТИПЗНАЧЕНИЯ(Т.#Параметр(21)) + И ЗначенияПоУмолчанию.ВсеРазрешены = ЛОЖЬ + ) + ТОГДА ИСТИНА + ИНАЧЕ ЛОЖЬ + КОНЕЦ + ) + ) +#Иначе + И ЕСТЬNULL(Т.#Параметр(21), НЕОПРЕДЕЛЕНО) <> НЕОПРЕДЕЛЕНО +#КонецЕсли + +//// Проверка значения поля группы параметров 10. +#Если "#Параметр(22)" = "" И "#Параметр(23)" = "" #Тогда + // Группа параметров не используется. +#ИначеЕсли &ОграничениеДоступаНаУровнеЗаписейИспользуется И ("#Параметр(22)" = "Условие" Или "#Параметр(22)" = "") #Тогда + // Когда имя вида доступа "Условие" (или ""), тогда вместо имени поля задано условие. + И ( #Параметр(23) ) +#ИначеЕсли "#Параметр(22)" = "ПравоЧтения" Или "#Параметр(22)" = "ПравоИзменения" #Тогда + И Т.#Параметр(23) <> НЕОПРЕДЕЛЕНО + И ИСТИНА В + ( // Проверка права пользователя на таблицу Значения, установленного в поле. + ВЫБРАТЬ ПЕРВЫЕ 1 ИСТИНА + ИЗ РегистрСведений.ТаблицыГруппДоступа КАК ТаблицыГруппДоступаПроверкаПрава + ГДЕ + ТаблицыГруппДоступаПроверкаПрава.ГруппаДоступа = ГруппыДоступа.Ссылка + И ТИПЗНАЧЕНИЯ(ТаблицыГруппДоступаПроверкаПрава.ТипТаблицы) = ТИПЗНАЧЕНИЯ(Т.#Параметр(23)) + #Если Не "#Параметр(22)" = "ПравоЧтения" #Тогда + И ТаблицыГруппДоступаПроверкаПрава.ПравоИзменение + #КонецЕсли + ) +#ИначеЕсли "#Параметр(22)" = "ПравоЧтенияПоИдентификатору" Или "#Параметр(22)" = "ПравоИзмененияПоИдентификатору" #Тогда + ИСТИНА В + ( // Проверка права пользователя на таблицу, идентификатор которой указан в Значении, установленном в поле. + ВЫБРАТЬ ПЕРВЫЕ 1 ИСТИНА + ИЗ РегистрСведений.ТаблицыГруппДоступа КАК ТаблицыГруппДоступаПроверкаПрава + ГДЕ + ТаблицыГруппДоступаПроверкаПрава.ГруппаДоступа = ГруппыДоступа.Ссылка + И ТаблицыГруппДоступаПроверкаПрава.Таблица = Т.#Параметр(23) + #Если Не "#Параметр(22)" = "ПравоЧтенияПоИдентификатору" #Тогда + И ТаблицыГруппДоступаПроверкаПрава.ПравоИзменение + #КонецЕсли + ) +#ИначеЕсли Не &ОграничениеДоступаНаУровнеЗаписейИспользуется #Тогда + // Группа параметров отключена. +#ИначеЕсли "#Параметр(22)" = "НастройкиПрав" #Тогда + И + ( + ИСТИНА В // Проверка, что пользователю или какой-нибудь группе пользователя право разрешено + ( + ВЫБРАТЬ ПЕРВЫЕ 1 ИСТИНА + ИЗ РегистрСведений.НастройкиПравОбъектов КАК НастройкиПрав + ВНУТРЕННЕЕ СОЕДИНЕНИЕ РегистрСведений.НаследованиеНастроекПравОбъектов КАК НаследованиеНастроек + ПО + НаследованиеНастроек.Объект = Т.#Параметр(23) + И НастройкиПрав.Объект = НаследованиеНастроек.Родитель + #Если #ИмяТекущегоПраваДоступа = "Чтение" #Тогда + И НаследованиеНастроек.УровеньИспользования < НастройкиПрав.УровеньРазрешенияЧтения + #Иначе + #Если СтрСодержит(&ТаблицыСОтдельнымиНастройкамиПрав, "|#Параметр(1);") #Тогда + И НастройкиПрав.Таблица = СвойстваТекущейТаблицы.Ссылка + #Иначе + И НастройкиПрав.Таблица = ЗНАЧЕНИЕ(Справочник.ИдентификаторыОбъектовМетаданных.ПустаяСсылка) + #КонецЕсли + И НаследованиеНастроек.УровеньИспользования < НастройкиПрав.УровеньРазрешенияИзменения + #КонецЕсли + ВНУТРЕННЕЕ СОЕДИНЕНИЕ РегистрСведений.СоставыГруппПользователей КАК СоставыГруппПользователей + ПО + СоставыГруппПользователей.Пользователь = &АвторизованныйПользователь + И СоставыГруппПользователей.ГруппаПользователей = НастройкиПрав.Пользователь + ) + И НЕ ЛОЖЬ В // Проверка, что пользователю или какой-нибудь группе пользователя право запрещено. + ( + ВЫБРАТЬ ПЕРВЫЕ 1 ЛОЖЬ + ИЗ РегистрСведений.НастройкиПравОбъектов КАК НастройкиПрав + ВНУТРЕННЕЕ СОЕДИНЕНИЕ РегистрСведений.НаследованиеНастроекПравОбъектов КАК НаследованиеНастроек + ПО + НаследованиеНастроек.Объект = Т.#Параметр(23) + И НастройкиПрав.Объект = НаследованиеНастроек.Родитель + #Если #ИмяТекущегоПраваДоступа = "Чтение" #Тогда + И НаследованиеНастроек.УровеньИспользования < НастройкиПрав.УровеньЗапрещенияЧтения + #Иначе + #Если СтрСодержит(&ТаблицыСОтдельнымиНастройкамиПрав, "|#Параметр(1);") #Тогда + И НастройкиПрав.Таблица = СвойстваТекущейТаблицы.Ссылка + #Иначе + И НастройкиПрав.Таблица = ЗНАЧЕНИЕ(Справочник.ИдентификаторыОбъектовМетаданных.ПустаяСсылка) + #КонецЕсли + И НаследованиеНастроек.УровеньИспользования < НастройкиПрав.УровеньЗапрещенияИзменения + #КонецЕсли + ВНУТРЕННЕЕ СОЕДИНЕНИЕ РегистрСведений.СоставыГруппПользователей КАК СоставыГруппПользователей + ПО + СоставыГруппПользователей.Пользователь = &АвторизованныйПользователь + И СоставыГруппПользователей.ГруппаПользователей = НастройкиПрав.Пользователь + ) + ) +#ИначеЕсли Не СтрСодержит(&ВсеВидыДоступаКромеСпециальных, ",#Параметр(22),") #Тогда + // Когда параметр задан неверно, вставляется строка, чтобы вызвать ошибку сборки ограничения доступа. + #Если СтрСодержит("#Параметр(22)", ",") #Тогда + НеверныйВидДоступа: "#Параметр(22)" - "Список имен видов доступа не найден" + #Иначе + НеверныйВидДоступа: "#Параметр(22)" - "Имя вида доступа не найдено" + #КонецЕсли +#ИначеЕсли &ВидыДоступаСОтключеннымИспользованием <> "Все" + И Не СтрСодержит(&ВидыДоступаСОтключеннымИспользованием, ",#Параметр(22),") #Тогда + И + ( + ЕСТЬNULL(Т.#Параметр(23), НЕОПРЕДЕЛЕНО) <> НЕОПРЕДЕЛЕНО + И + #Если (Не СтрСодержит(&ВидыДоступаСОтключеннымИспользованием, ",Пользователи,") И СтрСодержит(",#Параметр(22),", ",Пользователи,")) + Или (Не СтрСодержит(&ВидыДоступаСОтключеннымИспользованием, ",ВнешниеПользователи,") И СтрСодержит(",#Параметр(22),", ",ВнешниеПользователи,")) #Тогда + НЕ + ( + НЕ ИСТИНА В + ( + ВЫБРАТЬ ПЕРВЫЕ 1 ИСТИНА + ИЗ РегистрСведений.ГруппыЗначенийДоступа КАК ГруппыЗначенийДоступа + ГДЕ + ГруппыЗначенийДоступа.ЗначениеДоступа = Т.#Параметр(23) + И ГруппыЗначенийДоступа.ГруппаЗначенийДоступа = &АвторизованныйПользователь + ) + И НЕ + #Иначе + ( + #КонецЕсли + ВЫБОР + КОГДА ИСТИНА В + ( + #Если СтрСодержит(&ВидыДоступаБезГруппДляЗначенияДоступа, ",#Параметр(22),") #Тогда + ВЫБРАТЬ ПЕРВЫЕ 1 ИСТИНА + ИЗ РегистрСведений.ЗначенияГруппДоступа КАК Значения + ГДЕ + Значения.ГруппаДоступа = ГруппыДоступа.Ссылка + И Значения.ЗначениеДоступа = Т.#Параметр(23) + #ИначеЕсли "Т.#Параметр(23)" = "Т.Ссылка" + И "#Параметр(22)" <> "Пользователи" + И "#Параметр(22)" <> "ВнешниеПользователи" #Тогда + #Если СтрСодержит("#Параметр(22)", ",") #Тогда + // Когда параметр задан неверно, вставляется строка, чтобы вызвать ошибку сборки ограничения доступа. + НеверныйВидДоступа: "#Параметр(22)" - "При проверке таблицы значения доступа можно указывать только один вид доступа" + #ИначеЕсли СтрСодержит(&ВидыДоступаСОднойГруппойДляЗначенияДоступа, ",#Параметр(22),") #Тогда + ВЫБРАТЬ ПЕРВЫЕ 1 ИСТИНА + ИЗ РегистрСведений.ЗначенияГруппДоступа КАК Значения + ГДЕ + Значения.ГруппаДоступа = ГруппыДоступа.Ссылка + И Значения.ЗначениеДоступа = Т.ГруппаДоступа + #Иначе // Значения доступа, для которых можно указать несколько групп значений доступа. + ВЫБРАТЬ ПЕРВЫЕ 1 ИСТИНА + ИЗ РегистрСведений.ЗначенияГруппДоступа КАК Значения + ВНУТРЕННЕЕ СОЕДИНЕНИЕ #Параметр(1).ГруппыДоступа КАК ГруппыЗначений + ПО + Значения.ГруппаДоступа = ГруппыДоступа.Ссылка + И Значения.ЗначениеДоступа = ГруппыЗначений.ГруппаДоступа + И ГруппыЗначений.Ссылка = Т.#Параметр(23) + #КонецЕсли + #Иначе + ВЫБРАТЬ ПЕРВЫЕ 1 ИСТИНА + ИЗ РегистрСведений.ЗначенияГруппДоступа КАК Значения + ВНУТРЕННЕЕ СОЕДИНЕНИЕ РегистрСведений.ГруппыЗначенийДоступа КАК ГруппыЗначений + ПО + Значения.ГруппаДоступа = ГруппыДоступа.Ссылка + И Значения.ЗначениеДоступа = ГруппыЗначений.ГруппаЗначенийДоступа + И ГруппыЗначений.ЗначениеДоступа = Т.#Параметр(23) + #КонецЕсли + ) + ТОГДА ИСТИНА + ИНАЧЕ ЛОЖЬ + КОНЕЦ + = + ВЫБОР + КОГДА ИСТИНА В + ( + ВЫБРАТЬ ПЕРВЫЕ 1 ИСТИНА + ИЗ РегистрСведений.ЗначенияГруппДоступаПоУмолчанию КАК ЗначенияПоУмолчанию + ГДЕ + ЗначенияПоУмолчанию.ГруппаДоступа = ГруппыДоступа.Ссылка + И ТИПЗНАЧЕНИЯ(ЗначенияПоУмолчанию.ТипЗначенийДоступа) = ТИПЗНАЧЕНИЯ(Т.#Параметр(23)) + И ЗначенияПоУмолчанию.ВсеРазрешены = ЛОЖЬ + ) + ТОГДА ИСТИНА + ИНАЧЕ ЛОЖЬ + КОНЕЦ + ) + ) +#Иначе + И ЕСТЬNULL(Т.#Параметр(23), НЕОПРЕДЕЛЕНО) <> НЕОПРЕДЕЛЕНО +#КонецЕсли + +//// Проверка значения поля группы параметров 11. +#Если "#Параметр(24)" = "" И "#Параметр(25)" = "" #Тогда + // Группа параметров не используется. +#ИначеЕсли &ОграничениеДоступаНаУровнеЗаписейИспользуется И ("#Параметр(24)" = "Условие" Или "#Параметр(24)" = "") #Тогда + // Когда имя вида доступа "Условие" (или ""), тогда вместо имени поля задано условие. + И ( #Параметр(25) ) +#ИначеЕсли "#Параметр(24)" = "ПравоЧтения" Или "#Параметр(24)" = "ПравоИзменения" #Тогда + И Т.#Параметр(25) <> НЕОПРЕДЕЛЕНО + И ИСТИНА В + ( // Проверка права пользователя на таблицу Значения, установленного в поле. + ВЫБРАТЬ ПЕРВЫЕ 1 ИСТИНА + ИЗ РегистрСведений.ТаблицыГруппДоступа КАК ТаблицыГруппДоступаПроверкаПрава + ГДЕ + ТаблицыГруппДоступаПроверкаПрава.ГруппаДоступа = ГруппыДоступа.Ссылка + И ТИПЗНАЧЕНИЯ(ТаблицыГруппДоступаПроверкаПрава.ТипТаблицы) = ТИПЗНАЧЕНИЯ(Т.#Параметр(25)) + #Если Не "#Параметр(24)" = "ПравоЧтения" #Тогда + И ТаблицыГруппДоступаПроверкаПрава.ПравоИзменение + #КонецЕсли + ) +#ИначеЕсли "#Параметр(24)" = "ПравоЧтенияПоИдентификатору" Или "#Параметр(24)" = "ПравоИзмененияПоИдентификатору" #Тогда + ИСТИНА В + ( // Проверка права пользователя на таблицу, идентификатор которой указан в Значении, установленном в поле. + ВЫБРАТЬ ПЕРВЫЕ 1 ИСТИНА + ИЗ РегистрСведений.ТаблицыГруппДоступа КАК ТаблицыГруппДоступаПроверкаПрава + ГДЕ + ТаблицыГруппДоступаПроверкаПрава.ГруппаДоступа = ГруппыДоступа.Ссылка + И ТаблицыГруппДоступаПроверкаПрава.Таблица = Т.#Параметр(25) + #Если Не "#Параметр(24)" = "ПравоЧтенияПоИдентификатору" #Тогда + И ТаблицыГруппДоступаПроверкаПрава.ПравоИзменение + #КонецЕсли + ) +#ИначеЕсли Не &ОграничениеДоступаНаУровнеЗаписейИспользуется #Тогда + // Группа параметров отключена. +#ИначеЕсли "#Параметр(24)" = "НастройкиПрав" #Тогда + И + ( + ИСТИНА В // Проверка, что пользователю или какой-нибудь группе пользователя право разрешено + ( + ВЫБРАТЬ ПЕРВЫЕ 1 ИСТИНА + ИЗ РегистрСведений.НастройкиПравОбъектов КАК НастройкиПрав + ВНУТРЕННЕЕ СОЕДИНЕНИЕ РегистрСведений.НаследованиеНастроекПравОбъектов КАК НаследованиеНастроек + ПО + НаследованиеНастроек.Объект = Т.#Параметр(25) + И НастройкиПрав.Объект = НаследованиеНастроек.Родитель + #Если #ИмяТекущегоПраваДоступа = "Чтение" #Тогда + И НаследованиеНастроек.УровеньИспользования < НастройкиПрав.УровеньРазрешенияЧтения + #Иначе + #Если СтрСодержит(&ТаблицыСОтдельнымиНастройкамиПрав, "|#Параметр(1);") #Тогда + И НастройкиПрав.Таблица = СвойстваТекущейТаблицы.Ссылка + #Иначе + И НастройкиПрав.Таблица = ЗНАЧЕНИЕ(Справочник.ИдентификаторыОбъектовМетаданных.ПустаяСсылка) + #КонецЕсли + И НаследованиеНастроек.УровеньИспользования < НастройкиПрав.УровеньРазрешенияИзменения + #КонецЕсли + ВНУТРЕННЕЕ СОЕДИНЕНИЕ РегистрСведений.СоставыГруппПользователей КАК СоставыГруппПользователей + ПО + СоставыГруппПользователей.Пользователь = &АвторизованныйПользователь + И СоставыГруппПользователей.ГруппаПользователей = НастройкиПрав.Пользователь + ) + И НЕ ЛОЖЬ В // Проверка, что пользователю или какой-нибудь группе пользователя право запрещено. + ( + ВЫБРАТЬ ПЕРВЫЕ 1 ЛОЖЬ + ИЗ РегистрСведений.НастройкиПравОбъектов КАК НастройкиПрав + ВНУТРЕННЕЕ СОЕДИНЕНИЕ РегистрСведений.НаследованиеНастроекПравОбъектов КАК НаследованиеНастроек + ПО + НаследованиеНастроек.Объект = Т.#Параметр(25) + И НастройкиПрав.Объект = НаследованиеНастроек.Родитель + #Если #ИмяТекущегоПраваДоступа = "Чтение" #Тогда + И НаследованиеНастроек.УровеньИспользования < НастройкиПрав.УровеньЗапрещенияЧтения + #Иначе + #Если СтрСодержит(&ТаблицыСОтдельнымиНастройкамиПрав, "|#Параметр(1);") #Тогда + И НастройкиПрав.Таблица = СвойстваТекущейТаблицы.Ссылка + #Иначе + И НастройкиПрав.Таблица = ЗНАЧЕНИЕ(Справочник.ИдентификаторыОбъектовМетаданных.ПустаяСсылка) + #КонецЕсли + И НаследованиеНастроек.УровеньИспользования < НастройкиПрав.УровеньЗапрещенияИзменения + #КонецЕсли + ВНУТРЕННЕЕ СОЕДИНЕНИЕ РегистрСведений.СоставыГруппПользователей КАК СоставыГруппПользователей + ПО + СоставыГруппПользователей.Пользователь = &АвторизованныйПользователь + И СоставыГруппПользователей.ГруппаПользователей = НастройкиПрав.Пользователь + ) + ) +#ИначеЕсли Не СтрСодержит(&ВсеВидыДоступаКромеСпециальных, ",#Параметр(24),") #Тогда + // Когда параметр задан неверно, вставляется строка, чтобы вызвать ошибку сборки ограничения доступа. + #Если СтрСодержит("#Параметр(24)", ",") #Тогда + НеверныйВидДоступа: "#Параметр(24)" - "Список имен видов доступа не найден" + #Иначе + НеверныйВидДоступа: "#Параметр(24)" - "Имя вида доступа не найдено" + #КонецЕсли +#ИначеЕсли &ВидыДоступаСОтключеннымИспользованием <> "Все" + И Не СтрСодержит(&ВидыДоступаСОтключеннымИспользованием, ",#Параметр(24),") #Тогда + И + ( + ЕСТЬNULL(Т.#Параметр(25), НЕОПРЕДЕЛЕНО) <> НЕОПРЕДЕЛЕНО + И + #Если (Не СтрСодержит(&ВидыДоступаСОтключеннымИспользованием, ",Пользователи,") И СтрСодержит(",#Параметр(24),", ",Пользователи,")) + Или (Не СтрСодержит(&ВидыДоступаСОтключеннымИспользованием, ",ВнешниеПользователи,") И СтрСодержит(",#Параметр(24),", ",ВнешниеПользователи,")) #Тогда + НЕ + ( + НЕ ИСТИНА В + ( + ВЫБРАТЬ ПЕРВЫЕ 1 ИСТИНА + ИЗ РегистрСведений.ГруппыЗначенийДоступа КАК ГруппыЗначенийДоступа + ГДЕ + ГруппыЗначенийДоступа.ЗначениеДоступа = Т.#Параметр(25) + И ГруппыЗначенийДоступа.ГруппаЗначенийДоступа = &АвторизованныйПользователь + ) + И НЕ + #Иначе + ( + #КонецЕсли + ВЫБОР + КОГДА ИСТИНА В + ( + #Если СтрСодержит(&ВидыДоступаБезГруппДляЗначенияДоступа, ",#Параметр(24),") #Тогда + ВЫБРАТЬ ПЕРВЫЕ 1 ИСТИНА + ИЗ РегистрСведений.ЗначенияГруппДоступа КАК Значения + ГДЕ + Значения.ГруппаДоступа = ГруппыДоступа.Ссылка + И Значения.ЗначениеДоступа = Т.#Параметр(25) + #ИначеЕсли "Т.#Параметр(25)" = "Т.Ссылка" + И "#Параметр(24)" <> "Пользователи" + И "#Параметр(24)" <> "ВнешниеПользователи" #Тогда + #Если СтрСодержит("#Параметр(24)", ",") #Тогда + // Когда параметр задан неверно, вставляется строка, чтобы вызвать ошибку сборки ограничения доступа. + НеверныйВидДоступа: "#Параметр(24)" - "При проверке таблицы значения доступа можно указывать только один вид доступа" + #ИначеЕсли СтрСодержит(&ВидыДоступаСОднойГруппойДляЗначенияДоступа, ",#Параметр(24),") #Тогда + ВЫБРАТЬ ПЕРВЫЕ 1 ИСТИНА + ИЗ РегистрСведений.ЗначенияГруппДоступа КАК Значения + ГДЕ + Значения.ГруппаДоступа = ГруппыДоступа.Ссылка + И Значения.ЗначениеДоступа = Т.ГруппаДоступа + #Иначе // Значения доступа, для которых можно указать несколько групп значений доступа. + ВЫБРАТЬ ПЕРВЫЕ 1 ИСТИНА + ИЗ РегистрСведений.ЗначенияГруппДоступа КАК Значения + ВНУТРЕННЕЕ СОЕДИНЕНИЕ #Параметр(1).ГруппыДоступа КАК ГруппыЗначений + ПО + Значения.ГруппаДоступа = ГруппыДоступа.Ссылка + И Значения.ЗначениеДоступа = ГруппыЗначений.ГруппаДоступа + И ГруппыЗначений.Ссылка = Т.#Параметр(25) + #КонецЕсли + #Иначе + ВЫБРАТЬ ПЕРВЫЕ 1 ИСТИНА + ИЗ РегистрСведений.ЗначенияГруппДоступа КАК Значения + ВНУТРЕННЕЕ СОЕДИНЕНИЕ РегистрСведений.ГруппыЗначенийДоступа КАК ГруппыЗначений + ПО + Значения.ГруппаДоступа = ГруппыДоступа.Ссылка + И Значения.ЗначениеДоступа = ГруппыЗначений.ГруппаЗначенийДоступа + И ГруппыЗначений.ЗначениеДоступа = Т.#Параметр(25) + #КонецЕсли + ) + ТОГДА ИСТИНА + ИНАЧЕ ЛОЖЬ + КОНЕЦ + = + ВЫБОР + КОГДА ИСТИНА В + ( + ВЫБРАТЬ ПЕРВЫЕ 1 ИСТИНА + ИЗ РегистрСведений.ЗначенияГруппДоступаПоУмолчанию КАК ЗначенияПоУмолчанию + ГДЕ + ЗначенияПоУмолчанию.ГруппаДоступа = ГруппыДоступа.Ссылка + И ТИПЗНАЧЕНИЯ(ЗначенияПоУмолчанию.ТипЗначенийДоступа) = ТИПЗНАЧЕНИЯ(Т.#Параметр(25)) + И ЗначенияПоУмолчанию.ВсеРазрешены = ЛОЖЬ + ) + ТОГДА ИСТИНА + ИНАЧЕ ЛОЖЬ + КОНЕЦ + ) + ) +#Иначе + И ЕСТЬNULL(Т.#Параметр(25), НЕОПРЕДЕЛЕНО) <> НЕОПРЕДЕЛЕНО +#КонецЕсли + +//// Проверка значения поля группы параметров 12. +#Если "#Параметр(26)" = "" И "#Параметр(27)" = "" #Тогда + // Группа параметров не используется. +#ИначеЕсли &ОграничениеДоступаНаУровнеЗаписейИспользуется И ("#Параметр(26)" = "Условие" Или "#Параметр(26)" = "") #Тогда + // Когда имя вида доступа "Условие" (или ""), тогда вместо имени поля задано условие. + И ( #Параметр(27) ) +#ИначеЕсли "#Параметр(26)" = "ПравоЧтения" Или "#Параметр(26)" = "ПравоИзменения" #Тогда + И Т.#Параметр(27) <> НЕОПРЕДЕЛЕНО + И ИСТИНА В + ( // Проверка права пользователя на таблицу Значения, установленного в поле. + ВЫБРАТЬ ПЕРВЫЕ 1 ИСТИНА + ИЗ РегистрСведений.ТаблицыГруппДоступа КАК ТаблицыГруппДоступаПроверкаПрава + ГДЕ + ТаблицыГруппДоступаПроверкаПрава.ГруппаДоступа = ГруппыДоступа.Ссылка + И ТИПЗНАЧЕНИЯ(ТаблицыГруппДоступаПроверкаПрава.ТипТаблицы) = ТИПЗНАЧЕНИЯ(Т.#Параметр(27)) + #Если Не "#Параметр(26)" = "ПравоЧтения" #Тогда + И ТаблицыГруппДоступаПроверкаПрава.ПравоИзменение + #КонецЕсли + ) +#ИначеЕсли "#Параметр(26)" = "ПравоЧтенияПоИдентификатору" Или "#Параметр(26)" = "ПравоИзмененияПоИдентификатору" #Тогда + ИСТИНА В + ( // Проверка права пользователя на таблицу, идентификатор которой указан в Значении, установленном в поле. + ВЫБРАТЬ ПЕРВЫЕ 1 ИСТИНА + ИЗ РегистрСведений.ТаблицыГруппДоступа КАК ТаблицыГруппДоступаПроверкаПрава + ГДЕ + ТаблицыГруппДоступаПроверкаПрава.ГруппаДоступа = ГруппыДоступа.Ссылка + И ТаблицыГруппДоступаПроверкаПрава.Таблица = Т.#Параметр(27) + #Если Не "#Параметр(26)" = "ПравоЧтенияПоИдентификатору" #Тогда + И ТаблицыГруппДоступаПроверкаПрава.ПравоИзменение + #КонецЕсли + ) +#ИначеЕсли Не &ОграничениеДоступаНаУровнеЗаписейИспользуется #Тогда + // Группа параметров отключена. +#ИначеЕсли "#Параметр(26)" = "НастройкиПрав" #Тогда + И + ( + ИСТИНА В // Проверка, что пользователю или какой-нибудь группе пользователя право разрешено + ( + ВЫБРАТЬ ПЕРВЫЕ 1 ИСТИНА + ИЗ РегистрСведений.НастройкиПравОбъектов КАК НастройкиПрав + ВНУТРЕННЕЕ СОЕДИНЕНИЕ РегистрСведений.НаследованиеНастроекПравОбъектов КАК НаследованиеНастроек + ПО + НаследованиеНастроек.Объект = Т.#Параметр(27) + И НастройкиПрав.Объект = НаследованиеНастроек.Родитель + #Если #ИмяТекущегоПраваДоступа = "Чтение" #Тогда + И НаследованиеНастроек.УровеньИспользования < НастройкиПрав.УровеньРазрешенияЧтения + #Иначе + #Если СтрСодержит(&ТаблицыСОтдельнымиНастройкамиПрав, "|#Параметр(1);") #Тогда + И НастройкиПрав.Таблица = СвойстваТекущейТаблицы.Ссылка + #Иначе + И НастройкиПрав.Таблица = ЗНАЧЕНИЕ(Справочник.ИдентификаторыОбъектовМетаданных.ПустаяСсылка) + #КонецЕсли + И НаследованиеНастроек.УровеньИспользования < НастройкиПрав.УровеньРазрешенияИзменения + #КонецЕсли + ВНУТРЕННЕЕ СОЕДИНЕНИЕ РегистрСведений.СоставыГруппПользователей КАК СоставыГруппПользователей + ПО + СоставыГруппПользователей.Пользователь = &АвторизованныйПользователь + И СоставыГруппПользователей.ГруппаПользователей = НастройкиПрав.Пользователь + ) + И НЕ ЛОЖЬ В // Проверка, что пользователю или какой-нибудь группе пользователя право запрещено. + ( + ВЫБРАТЬ ПЕРВЫЕ 1 ЛОЖЬ + ИЗ РегистрСведений.НастройкиПравОбъектов КАК НастройкиПрав + ВНУТРЕННЕЕ СОЕДИНЕНИЕ РегистрСведений.НаследованиеНастроекПравОбъектов КАК НаследованиеНастроек + ПО + НаследованиеНастроек.Объект = Т.#Параметр(27) + И НастройкиПрав.Объект = НаследованиеНастроек.Родитель + #Если #ИмяТекущегоПраваДоступа = "Чтение" #Тогда + И НаследованиеНастроек.УровеньИспользования < НастройкиПрав.УровеньЗапрещенияЧтения + #Иначе + #Если СтрСодержит(&ТаблицыСОтдельнымиНастройкамиПрав, "|#Параметр(1);") #Тогда + И НастройкиПрав.Таблица = СвойстваТекущейТаблицы.Ссылка + #Иначе + И НастройкиПрав.Таблица = ЗНАЧЕНИЕ(Справочник.ИдентификаторыОбъектовМетаданных.ПустаяСсылка) + #КонецЕсли + И НаследованиеНастроек.УровеньИспользования < НастройкиПрав.УровеньЗапрещенияИзменения + #КонецЕсли + ВНУТРЕННЕЕ СОЕДИНЕНИЕ РегистрСведений.СоставыГруппПользователей КАК СоставыГруппПользователей + ПО + СоставыГруппПользователей.Пользователь = &АвторизованныйПользователь + И СоставыГруппПользователей.ГруппаПользователей = НастройкиПрав.Пользователь + ) + ) +#ИначеЕсли Не СтрСодержит(&ВсеВидыДоступаКромеСпециальных, ",#Параметр(26),") #Тогда + // Когда параметр задан неверно, вставляется строка, чтобы вызвать ошибку сборки ограничения доступа. + #Если СтрСодержит("#Параметр(26)", ",") #Тогда + НеверныйВидДоступа: "#Параметр(26)" - "Список имен видов доступа не найден" + #Иначе + НеверныйВидДоступа: "#Параметр(26)" - "Имя вида доступа не найдено" + #КонецЕсли +#ИначеЕсли &ВидыДоступаСОтключеннымИспользованием <> "Все" + И Не СтрСодержит(&ВидыДоступаСОтключеннымИспользованием, ",#Параметр(26),") #Тогда + И + ( + ЕСТЬNULL(Т.#Параметр(27), НЕОПРЕДЕЛЕНО) <> НЕОПРЕДЕЛЕНО + И + #Если (Не СтрСодержит(&ВидыДоступаСОтключеннымИспользованием, ",Пользователи,") И СтрСодержит(",#Параметр(26),", ",Пользователи,")) + Или (Не СтрСодержит(&ВидыДоступаСОтключеннымИспользованием, ",ВнешниеПользователи,") И СтрСодержит(",#Параметр(26),", ",ВнешниеПользователи,")) #Тогда + НЕ + ( + НЕ ИСТИНА В + ( + ВЫБРАТЬ ПЕРВЫЕ 1 ИСТИНА + ИЗ РегистрСведений.ГруппыЗначенийДоступа КАК ГруппыЗначенийДоступа + ГДЕ + ГруппыЗначенийДоступа.ЗначениеДоступа = Т.#Параметр(27) + И ГруппыЗначенийДоступа.ГруппаЗначенийДоступа = &АвторизованныйПользователь + ) + И НЕ + #Иначе + ( + #КонецЕсли + ВЫБОР + КОГДА ИСТИНА В + ( + #Если СтрСодержит(&ВидыДоступаБезГруппДляЗначенияДоступа, ",#Параметр(26),") #Тогда + ВЫБРАТЬ ПЕРВЫЕ 1 ИСТИНА + ИЗ РегистрСведений.ЗначенияГруппДоступа КАК Значения + ГДЕ + Значения.ГруппаДоступа = ГруппыДоступа.Ссылка + И Значения.ЗначениеДоступа = Т.#Параметр(27) + #ИначеЕсли "Т.#Параметр(27)" = "Т.Ссылка" + И "#Параметр(26)" <> "Пользователи" + И "#Параметр(26)" <> "ВнешниеПользователи" #Тогда + #Если СтрСодержит("#Параметр(26)", ",") #Тогда + // Когда параметр задан неверно, вставляется строка, чтобы вызвать ошибку сборки ограничения доступа. + НеверныйВидДоступа: "#Параметр(26)" - "При проверке таблицы значения доступа можно указывать только один вид доступа" + #ИначеЕсли СтрСодержит(&ВидыДоступаСОднойГруппойДляЗначенияДоступа, ",#Параметр(26),") #Тогда + ВЫБРАТЬ ПЕРВЫЕ 1 ИСТИНА + ИЗ РегистрСведений.ЗначенияГруппДоступа КАК Значения + ГДЕ + Значения.ГруппаДоступа = ГруппыДоступа.Ссылка + И Значения.ЗначениеДоступа = Т.ГруппаДоступа + #Иначе // Значения доступа, для которых можно указать несколько групп значений доступа. + ВЫБРАТЬ ПЕРВЫЕ 1 ИСТИНА + ИЗ РегистрСведений.ЗначенияГруппДоступа КАК Значения + ВНУТРЕННЕЕ СОЕДИНЕНИЕ #Параметр(1).ГруппыДоступа КАК ГруппыЗначений + ПО + Значения.ГруппаДоступа = ГруппыДоступа.Ссылка + И Значения.ЗначениеДоступа = ГруппыЗначений.ГруппаДоступа + И ГруппыЗначений.Ссылка = Т.#Параметр(27) + #КонецЕсли + #Иначе + ВЫБРАТЬ ПЕРВЫЕ 1 ИСТИНА + ИЗ РегистрСведений.ЗначенияГруппДоступа КАК Значения + ВНУТРЕННЕЕ СОЕДИНЕНИЕ РегистрСведений.ГруппыЗначенийДоступа КАК ГруппыЗначений + ПО + Значения.ГруппаДоступа = ГруппыДоступа.Ссылка + И Значения.ЗначениеДоступа = ГруппыЗначений.ГруппаЗначенийДоступа + И ГруппыЗначений.ЗначениеДоступа = Т.#Параметр(27) + #КонецЕсли + ) + ТОГДА ИСТИНА + ИНАЧЕ ЛОЖЬ + КОНЕЦ + = + ВЫБОР + КОГДА ИСТИНА В + ( + ВЫБРАТЬ ПЕРВЫЕ 1 ИСТИНА + ИЗ РегистрСведений.ЗначенияГруппДоступаПоУмолчанию КАК ЗначенияПоУмолчанию + ГДЕ + ЗначенияПоУмолчанию.ГруппаДоступа = ГруппыДоступа.Ссылка + И ТИПЗНАЧЕНИЯ(ЗначенияПоУмолчанию.ТипЗначенийДоступа) = ТИПЗНАЧЕНИЯ(Т.#Параметр(27)) + И ЗначенияПоУмолчанию.ВсеРазрешены = ЛОЖЬ + ) + ТОГДА ИСТИНА + ИНАЧЕ ЛОЖЬ + КОНЕЦ + ) + ) +#Иначе + И ЕСТЬNULL(Т.#Параметр(27), НЕОПРЕДЕЛЕНО) <> НЕОПРЕДЕЛЕНО +#КонецЕсли + +//// Проверка значения поля группы параметров 13. +#Если "#Параметр(28)" = "" И "#Параметр(29)" = "" #Тогда + // Группа параметров не используется. +#ИначеЕсли &ОграничениеДоступаНаУровнеЗаписейИспользуется И ("#Параметр(28)" = "Условие" Или "#Параметр(28)" = "") #Тогда + // Когда имя вида доступа "Условие" (или ""), тогда вместо имени поля задано условие. + И ( #Параметр(29) ) +#ИначеЕсли "#Параметр(28)" = "ПравоЧтения" Или "#Параметр(28)" = "ПравоИзменения" #Тогда + И Т.#Параметр(29) <> НЕОПРЕДЕЛЕНО + И ИСТИНА В + ( // Проверка права пользователя на таблицу Значения, установленного в поле. + ВЫБРАТЬ ПЕРВЫЕ 1 ИСТИНА + ИЗ РегистрСведений.ТаблицыГруппДоступа КАК ТаблицыГруппДоступаПроверкаПрава + ГДЕ + ТаблицыГруппДоступаПроверкаПрава.ГруппаДоступа = ГруппыДоступа.Ссылка + И ТИПЗНАЧЕНИЯ(ТаблицыГруппДоступаПроверкаПрава.ТипТаблицы) = ТИПЗНАЧЕНИЯ(Т.#Параметр(29)) + #Если Не "#Параметр(28)" = "ПравоЧтения" #Тогда + И ТаблицыГруппДоступаПроверкаПрава.ПравоИзменение + #КонецЕсли + ) +#ИначеЕсли "#Параметр(28)" = "ПравоЧтенияПоИдентификатору" Или "#Параметр(28)" = "ПравоИзмененияПоИдентификатору" #Тогда + ИСТИНА В + ( // Проверка права пользователя на таблицу, идентификатор которой указан в Значении, установленном в поле. + ВЫБРАТЬ ПЕРВЫЕ 1 ИСТИНА + ИЗ РегистрСведений.ТаблицыГруппДоступа КАК ТаблицыГруппДоступаПроверкаПрава + ГДЕ + ТаблицыГруппДоступаПроверкаПрава.ГруппаДоступа = ГруппыДоступа.Ссылка + И ТаблицыГруппДоступаПроверкаПрава.Таблица = Т.#Параметр(29) + #Если Не "#Параметр(28)" = "ПравоЧтенияПоИдентификатору" #Тогда + И ТаблицыГруппДоступаПроверкаПрава.ПравоИзменение + #КонецЕсли + ) +#ИначеЕсли Не &ОграничениеДоступаНаУровнеЗаписейИспользуется #Тогда + // Группа параметров отключена. +#ИначеЕсли "#Параметр(28)" = "НастройкиПрав" #Тогда + И + ( + ИСТИНА В // Проверка, что пользователю или какой-нибудь группе пользователя право разрешено + ( + ВЫБРАТЬ ПЕРВЫЕ 1 ИСТИНА + ИЗ РегистрСведений.НастройкиПравОбъектов КАК НастройкиПрав + ВНУТРЕННЕЕ СОЕДИНЕНИЕ РегистрСведений.НаследованиеНастроекПравОбъектов КАК НаследованиеНастроек + ПО + НаследованиеНастроек.Объект = Т.#Параметр(29) + И НастройкиПрав.Объект = НаследованиеНастроек.Родитель + #Если #ИмяТекущегоПраваДоступа = "Чтение" #Тогда + И НаследованиеНастроек.УровеньИспользования < НастройкиПрав.УровеньРазрешенияЧтения + #Иначе + #Если СтрСодержит(&ТаблицыСОтдельнымиНастройкамиПрав, "|#Параметр(1);") #Тогда + И НастройкиПрав.Таблица = СвойстваТекущейТаблицы.Ссылка + #Иначе + И НастройкиПрав.Таблица = ЗНАЧЕНИЕ(Справочник.ИдентификаторыОбъектовМетаданных.ПустаяСсылка) + #КонецЕсли + И НаследованиеНастроек.УровеньИспользования < НастройкиПрав.УровеньРазрешенияИзменения + #КонецЕсли + ВНУТРЕННЕЕ СОЕДИНЕНИЕ РегистрСведений.СоставыГруппПользователей КАК СоставыГруппПользователей + ПО + СоставыГруппПользователей.Пользователь = &АвторизованныйПользователь + И СоставыГруппПользователей.ГруппаПользователей = НастройкиПрав.Пользователь + ) + И НЕ ЛОЖЬ В // Проверка, что пользователю или какой-нибудь группе пользователя право запрещено. + ( + ВЫБРАТЬ ПЕРВЫЕ 1 ЛОЖЬ + ИЗ РегистрСведений.НастройкиПравОбъектов КАК НастройкиПрав + ВНУТРЕННЕЕ СОЕДИНЕНИЕ РегистрСведений.НаследованиеНастроекПравОбъектов КАК НаследованиеНастроек + ПО + НаследованиеНастроек.Объект = Т.#Параметр(29) + И НастройкиПрав.Объект = НаследованиеНастроек.Родитель + #Если #ИмяТекущегоПраваДоступа = "Чтение" #Тогда + И НаследованиеНастроек.УровеньИспользования < НастройкиПрав.УровеньЗапрещенияЧтения + #Иначе + #Если СтрСодержит(&ТаблицыСОтдельнымиНастройкамиПрав, "|#Параметр(1);") #Тогда + И НастройкиПрав.Таблица = СвойстваТекущейТаблицы.Ссылка + #Иначе + И НастройкиПрав.Таблица = ЗНАЧЕНИЕ(Справочник.ИдентификаторыОбъектовМетаданных.ПустаяСсылка) + #КонецЕсли + И НаследованиеНастроек.УровеньИспользования < НастройкиПрав.УровеньЗапрещенияИзменения + #КонецЕсли + ВНУТРЕННЕЕ СОЕДИНЕНИЕ РегистрСведений.СоставыГруппПользователей КАК СоставыГруппПользователей + ПО + СоставыГруппПользователей.Пользователь = &АвторизованныйПользователь + И СоставыГруппПользователей.ГруппаПользователей = НастройкиПрав.Пользователь + ) + ) +#ИначеЕсли Не СтрСодержит(&ВсеВидыДоступаКромеСпециальных, ",#Параметр(28),") #Тогда + // Когда параметр задан неверно, вставляется строка, чтобы вызвать ошибку сборки ограничения доступа. + #Если СтрСодержит("#Параметр(28)", ",") #Тогда + НеверныйВидДоступа: "#Параметр(28)" - "Список имен видов доступа не найден" + #Иначе + НеверныйВидДоступа: "#Параметр(28)" - "Имя вида доступа не найдено" + #КонецЕсли +#ИначеЕсли &ВидыДоступаСОтключеннымИспользованием <> "Все" + И Не СтрСодержит(&ВидыДоступаСОтключеннымИспользованием, ",#Параметр(28),") #Тогда + И + ( + ЕСТЬNULL(Т.#Параметр(29), НЕОПРЕДЕЛЕНО) <> НЕОПРЕДЕЛЕНО + И + #Если (Не СтрСодержит(&ВидыДоступаСОтключеннымИспользованием, ",Пользователи,") И СтрСодержит(",#Параметр(28),", ",Пользователи,")) + Или (Не СтрСодержит(&ВидыДоступаСОтключеннымИспользованием, ",ВнешниеПользователи,") И СтрСодержит(",#Параметр(28),", ",ВнешниеПользователи,")) #Тогда + НЕ + ( + НЕ ИСТИНА В + ( + ВЫБРАТЬ ПЕРВЫЕ 1 ИСТИНА + ИЗ РегистрСведений.ГруппыЗначенийДоступа КАК ГруппыЗначенийДоступа + ГДЕ + ГруппыЗначенийДоступа.ЗначениеДоступа = Т.#Параметр(29) + И ГруппыЗначенийДоступа.ГруппаЗначенийДоступа = &АвторизованныйПользователь + ) + И НЕ + #Иначе + ( + #КонецЕсли + ВЫБОР + КОГДА ИСТИНА В + ( + #Если СтрСодержит(&ВидыДоступаБезГруппДляЗначенияДоступа, ",#Параметр(28),") #Тогда + ВЫБРАТЬ ПЕРВЫЕ 1 ИСТИНА + ИЗ РегистрСведений.ЗначенияГруппДоступа КАК Значения + ГДЕ + Значения.ГруппаДоступа = ГруппыДоступа.Ссылка + И Значения.ЗначениеДоступа = Т.#Параметр(29) + #ИначеЕсли "Т.#Параметр(29)" = "Т.Ссылка" + И "#Параметр(28)" <> "Пользователи" + И "#Параметр(28)" <> "ВнешниеПользователи" #Тогда + #Если СтрСодержит("#Параметр(28)", ",") #Тогда + // Когда параметр задан неверно, вставляется строка, чтобы вызвать ошибку сборки ограничения доступа. + НеверныйВидДоступа: "#Параметр(28)" - "При проверке таблицы значения доступа можно указывать только один вид доступа" + #ИначеЕсли СтрСодержит(&ВидыДоступаСОднойГруппойДляЗначенияДоступа, ",#Параметр(28),") #Тогда + ВЫБРАТЬ ПЕРВЫЕ 1 ИСТИНА + ИЗ РегистрСведений.ЗначенияГруппДоступа КАК Значения + ГДЕ + Значения.ГруппаДоступа = ГруппыДоступа.Ссылка + И Значения.ЗначениеДоступа = Т.ГруппаДоступа + #Иначе // Значения доступа, для которых можно указать несколько групп значений доступа. + ВЫБРАТЬ ПЕРВЫЕ 1 ИСТИНА + ИЗ РегистрСведений.ЗначенияГруппДоступа КАК Значения + ВНУТРЕННЕЕ СОЕДИНЕНИЕ #Параметр(1).ГруппыДоступа КАК ГруппыЗначений + ПО + Значения.ГруппаДоступа = ГруппыДоступа.Ссылка + И Значения.ЗначениеДоступа = ГруппыЗначений.ГруппаДоступа + И ГруппыЗначений.Ссылка = Т.#Параметр(29) + #КонецЕсли + #Иначе + ВЫБРАТЬ ПЕРВЫЕ 1 ИСТИНА + ИЗ РегистрСведений.ЗначенияГруппДоступа КАК Значения + ВНУТРЕННЕЕ СОЕДИНЕНИЕ РегистрСведений.ГруппыЗначенийДоступа КАК ГруппыЗначений + ПО + Значения.ГруппаДоступа = ГруппыДоступа.Ссылка + И Значения.ЗначениеДоступа = ГруппыЗначений.ГруппаЗначенийДоступа + И ГруппыЗначений.ЗначениеДоступа = Т.#Параметр(29) + #КонецЕсли + ) + ТОГДА ИСТИНА + ИНАЧЕ ЛОЖЬ + КОНЕЦ + = + ВЫБОР + КОГДА ИСТИНА В + ( + ВЫБРАТЬ ПЕРВЫЕ 1 ИСТИНА + ИЗ РегистрСведений.ЗначенияГруппДоступаПоУмолчанию КАК ЗначенияПоУмолчанию + ГДЕ + ЗначенияПоУмолчанию.ГруппаДоступа = ГруппыДоступа.Ссылка + И ТИПЗНАЧЕНИЯ(ЗначенияПоУмолчанию.ТипЗначенийДоступа) = ТИПЗНАЧЕНИЯ(Т.#Параметр(29)) + И ЗначенияПоУмолчанию.ВсеРазрешены = ЛОЖЬ + ) + ТОГДА ИСТИНА + ИНАЧЕ ЛОЖЬ + КОНЕЦ + ) + ) +#Иначе + И ЕСТЬNULL(Т.#Параметр(29), НЕОПРЕДЕЛЕНО) <> НЕОПРЕДЕЛЕНО +#КонецЕсли + +//// Проверка значения поля группы параметров 14. +#Если "#Параметр(30)" = "" И "#Параметр(31)" = "" #Тогда + // Группа параметров не используется. +#ИначеЕсли &ОграничениеДоступаНаУровнеЗаписейИспользуется И ("#Параметр(30)" = "Условие" Или "#Параметр(30)" = "") #Тогда + // Когда имя вида доступа "Условие" (или ""), тогда вместо имени поля задано условие. + И ( #Параметр(31) ) +#ИначеЕсли "#Параметр(30)" = "ПравоЧтения" Или "#Параметр(30)" = "ПравоИзменения" #Тогда + И Т.#Параметр(31) <> НЕОПРЕДЕЛЕНО + И ИСТИНА В + ( // Проверка права пользователя на таблицу Значения, установленного в поле. + ВЫБРАТЬ ПЕРВЫЕ 1 ИСТИНА + ИЗ РегистрСведений.ТаблицыГруппДоступа КАК ТаблицыГруппДоступаПроверкаПрава + ГДЕ + ТаблицыГруппДоступаПроверкаПрава.ГруппаДоступа = ГруппыДоступа.Ссылка + И ТИПЗНАЧЕНИЯ(ТаблицыГруппДоступаПроверкаПрава.ТипТаблицы) = ТИПЗНАЧЕНИЯ(Т.#Параметр(31)) + #Если Не "#Параметр(30)" = "ПравоЧтения" #Тогда + И ТаблицыГруппДоступаПроверкаПрава.ПравоИзменение + #КонецЕсли + ) +#ИначеЕсли "#Параметр(30)" = "ПравоЧтенияПоИдентификатору" Или "#Параметр(30)" = "ПравоИзмененияПоИдентификатору" #Тогда + ИСТИНА В + ( // Проверка права пользователя на таблицу, идентификатор которой указан в Значении, установленном в поле. + ВЫБРАТЬ ПЕРВЫЕ 1 ИСТИНА + ИЗ РегистрСведений.ТаблицыГруппДоступа КАК ТаблицыГруппДоступаПроверкаПрава + ГДЕ + ТаблицыГруппДоступаПроверкаПрава.ГруппаДоступа = ГруппыДоступа.Ссылка + И ТаблицыГруппДоступаПроверкаПрава.Таблица = Т.#Параметр(31) + #Если Не "#Параметр(30)" = "ПравоЧтенияПоИдентификатору" #Тогда + И ТаблицыГруппДоступаПроверкаПрава.ПравоИзменение + #КонецЕсли + ) +#ИначеЕсли Не &ОграничениеДоступаНаУровнеЗаписейИспользуется #Тогда + // Группа параметров отключена. +#ИначеЕсли "#Параметр(30)" = "НастройкиПрав" #Тогда + И + ( + ИСТИНА В // Проверка, что пользователю или какой-нибудь группе пользователя право разрешено + ( + ВЫБРАТЬ ПЕРВЫЕ 1 ИСТИНА + ИЗ РегистрСведений.НастройкиПравОбъектов КАК НастройкиПрав + ВНУТРЕННЕЕ СОЕДИНЕНИЕ РегистрСведений.НаследованиеНастроекПравОбъектов КАК НаследованиеНастроек + ПО + НаследованиеНастроек.Объект = Т.#Параметр(31) + И НастройкиПрав.Объект = НаследованиеНастроек.Родитель + #Если #ИмяТекущегоПраваДоступа = "Чтение" #Тогда + И НаследованиеНастроек.УровеньИспользования < НастройкиПрав.УровеньРазрешенияЧтения + #Иначе + #Если СтрСодержит(&ТаблицыСОтдельнымиНастройкамиПрав, "|#Параметр(1);") #Тогда + И НастройкиПрав.Таблица = СвойстваТекущейТаблицы.Ссылка + #Иначе + И НастройкиПрав.Таблица = ЗНАЧЕНИЕ(Справочник.ИдентификаторыОбъектовМетаданных.ПустаяСсылка) + #КонецЕсли + И НаследованиеНастроек.УровеньИспользования < НастройкиПрав.УровеньРазрешенияИзменения + #КонецЕсли + ВНУТРЕННЕЕ СОЕДИНЕНИЕ РегистрСведений.СоставыГруппПользователей КАК СоставыГруппПользователей + ПО + СоставыГруппПользователей.Пользователь = &АвторизованныйПользователь + И СоставыГруппПользователей.ГруппаПользователей = НастройкиПрав.Пользователь + ) + И НЕ ЛОЖЬ В // Проверка, что пользователю или какой-нибудь группе пользователя право запрещено. + ( + ВЫБРАТЬ ПЕРВЫЕ 1 ЛОЖЬ + ИЗ РегистрСведений.НастройкиПравОбъектов КАК НастройкиПрав + ВНУТРЕННЕЕ СОЕДИНЕНИЕ РегистрСведений.НаследованиеНастроекПравОбъектов КАК НаследованиеНастроек + ПО + НаследованиеНастроек.Объект = Т.#Параметр(31) + И НастройкиПрав.Объект = НаследованиеНастроек.Родитель + #Если #ИмяТекущегоПраваДоступа = "Чтение" #Тогда + И НаследованиеНастроек.УровеньИспользования < НастройкиПрав.УровеньЗапрещенияЧтения + #Иначе + #Если СтрСодержит(&ТаблицыСОтдельнымиНастройкамиПрав, "|#Параметр(1);") #Тогда + И НастройкиПрав.Таблица = СвойстваТекущейТаблицы.Ссылка + #Иначе + И НастройкиПрав.Таблица = ЗНАЧЕНИЕ(Справочник.ИдентификаторыОбъектовМетаданных.ПустаяСсылка) + #КонецЕсли + И НаследованиеНастроек.УровеньИспользования < НастройкиПрав.УровеньЗапрещенияИзменения + #КонецЕсли + ВНУТРЕННЕЕ СОЕДИНЕНИЕ РегистрСведений.СоставыГруппПользователей КАК СоставыГруппПользователей + ПО + СоставыГруппПользователей.Пользователь = &АвторизованныйПользователь + И СоставыГруппПользователей.ГруппаПользователей = НастройкиПрав.Пользователь + ) + ) +#ИначеЕсли Не СтрСодержит(&ВсеВидыДоступаКромеСпециальных, ",#Параметр(30),") #Тогда + // Когда параметр задан неверно, вставляется строка, чтобы вызвать ошибку сборки ограничения доступа. + #Если СтрСодержит("#Параметр(30)", ",") #Тогда + НеверныйВидДоступа: "#Параметр(30)" - "Список имен видов доступа не найден" + #Иначе + НеверныйВидДоступа: "#Параметр(30)" - "Имя вида доступа не найдено" + #КонецЕсли +#ИначеЕсли &ВидыДоступаСОтключеннымИспользованием <> "Все" + И Не СтрСодержит(&ВидыДоступаСОтключеннымИспользованием, ",#Параметр(30),") #Тогда + И + ( + ЕСТЬNULL(Т.#Параметр(31), НЕОПРЕДЕЛЕНО) <> НЕОПРЕДЕЛЕНО + И + #Если (Не СтрСодержит(&ВидыДоступаСОтключеннымИспользованием, ",Пользователи,") И СтрСодержит(",#Параметр(30),", ",Пользователи,")) + Или (Не СтрСодержит(&ВидыДоступаСОтключеннымИспользованием, ",ВнешниеПользователи,") И СтрСодержит(",#Параметр(30),", ",ВнешниеПользователи,")) #Тогда + НЕ + ( + НЕ ИСТИНА В + ( + ВЫБРАТЬ ПЕРВЫЕ 1 ИСТИНА + ИЗ РегистрСведений.ГруппыЗначенийДоступа КАК ГруппыЗначенийДоступа + ГДЕ + ГруппыЗначенийДоступа.ЗначениеДоступа = Т.#Параметр(31) + И ГруппыЗначенийДоступа.ГруппаЗначенийДоступа = &АвторизованныйПользователь + ) + И НЕ + #Иначе + ( + #КонецЕсли + ВЫБОР + КОГДА ИСТИНА В + ( + #Если СтрСодержит(&ВидыДоступаБезГруппДляЗначенияДоступа, ",#Параметр(30),") #Тогда + ВЫБРАТЬ ПЕРВЫЕ 1 ИСТИНА + ИЗ РегистрСведений.ЗначенияГруппДоступа КАК Значения + ГДЕ + Значения.ГруппаДоступа = ГруппыДоступа.Ссылка + И Значения.ЗначениеДоступа = Т.#Параметр(31) + #ИначеЕсли "Т.#Параметр(31)" = "Т.Ссылка" + И "#Параметр(30)" <> "Пользователи" + И "#Параметр(30)" <> "ВнешниеПользователи" #Тогда + #Если СтрСодержит("#Параметр(30)", ",") #Тогда + // Когда параметр задан неверно, вставляется строка, чтобы вызвать ошибку сборки ограничения доступа. + НеверныйВидДоступа: "#Параметр(30)" - "При проверке таблицы значения доступа можно указывать только один вид доступа" + #ИначеЕсли СтрСодержит(&ВидыДоступаСОднойГруппойДляЗначенияДоступа, ",#Параметр(30),") #Тогда + ВЫБРАТЬ ПЕРВЫЕ 1 ИСТИНА + ИЗ РегистрСведений.ЗначенияГруппДоступа КАК Значения + ГДЕ + Значения.ГруппаДоступа = ГруппыДоступа.Ссылка + И Значения.ЗначениеДоступа = Т.ГруппаДоступа + #Иначе // Значения доступа, для которых можно указать несколько групп значений доступа. + ВЫБРАТЬ ПЕРВЫЕ 1 ИСТИНА + ИЗ РегистрСведений.ЗначенияГруппДоступа КАК Значения + ВНУТРЕННЕЕ СОЕДИНЕНИЕ #Параметр(1).ГруппыДоступа КАК ГруппыЗначений + ПО + Значения.ГруппаДоступа = ГруппыДоступа.Ссылка + И Значения.ЗначениеДоступа = ГруппыЗначений.ГруппаДоступа + И ГруппыЗначений.Ссылка = Т.#Параметр(31) + #КонецЕсли + #Иначе + ВЫБРАТЬ ПЕРВЫЕ 1 ИСТИНА + ИЗ РегистрСведений.ЗначенияГруппДоступа КАК Значения + ВНУТРЕННЕЕ СОЕДИНЕНИЕ РегистрСведений.ГруппыЗначенийДоступа КАК ГруппыЗначений + ПО + Значения.ГруппаДоступа = ГруппыДоступа.Ссылка + И Значения.ЗначениеДоступа = ГруппыЗначений.ГруппаЗначенийДоступа + И ГруппыЗначений.ЗначениеДоступа = Т.#Параметр(31) + #КонецЕсли + ) + ТОГДА ИСТИНА + ИНАЧЕ ЛОЖЬ + КОНЕЦ + = + ВЫБОР + КОГДА ИСТИНА В + ( + ВЫБРАТЬ ПЕРВЫЕ 1 ИСТИНА + ИЗ РегистрСведений.ЗначенияГруппДоступаПоУмолчанию КАК ЗначенияПоУмолчанию + ГДЕ + ЗначенияПоУмолчанию.ГруппаДоступа = ГруппыДоступа.Ссылка + И ТИПЗНАЧЕНИЯ(ЗначенияПоУмолчанию.ТипЗначенийДоступа) = ТИПЗНАЧЕНИЯ(Т.#Параметр(31)) + И ЗначенияПоУмолчанию.ВсеРазрешены = ЛОЖЬ + ) + ТОГДА ИСТИНА + ИНАЧЕ ЛОЖЬ + КОНЕЦ + ) + ) +#Иначе + И ЕСТЬNULL(Т.#Параметр(31), НЕОПРЕДЕЛЕНО) <> НЕОПРЕДЕЛЕНО +#КонецЕсли + +//// Проверка значения поля группы параметров 15. +#Если "#Параметр(32)" = "" И "#Параметр(33)" = "" #Тогда + // Группа параметров не используется. +#ИначеЕсли &ОграничениеДоступаНаУровнеЗаписейИспользуется И ("#Параметр(32)" = "Условие" Или "#Параметр(32)" = "") #Тогда + // Когда имя вида доступа "Условие" (или ""), тогда вместо имени поля задано условие. + И ( #Параметр(33) ) +#ИначеЕсли "#Параметр(32)" = "ПравоЧтения" Или "#Параметр(32)" = "ПравоИзменения" #Тогда + И Т.#Параметр(33) <> НЕОПРЕДЕЛЕНО + И ИСТИНА В + ( // Проверка права пользователя на таблицу Значения, установленного в поле. + ВЫБРАТЬ ПЕРВЫЕ 1 ИСТИНА + ИЗ РегистрСведений.ТаблицыГруппДоступа КАК ТаблицыГруппДоступаПроверкаПрава + ГДЕ + ТаблицыГруппДоступаПроверкаПрава.ГруппаДоступа = ГруппыДоступа.Ссылка + И ТИПЗНАЧЕНИЯ(ТаблицыГруппДоступаПроверкаПрава.ТипТаблицы) = ТИПЗНАЧЕНИЯ(Т.#Параметр(33)) + #Если Не "#Параметр(32)" = "ПравоЧтения" #Тогда + И ТаблицыГруппДоступаПроверкаПрава.ПравоИзменение + #КонецЕсли + ) +#ИначеЕсли "#Параметр(32)" = "ПравоЧтенияПоИдентификатору" Или "#Параметр(32)" = "ПравоИзмененияПоИдентификатору" #Тогда + ИСТИНА В + ( // Проверка права пользователя на таблицу, идентификатор которой указан в Значении, установленном в поле. + ВЫБРАТЬ ПЕРВЫЕ 1 ИСТИНА + ИЗ РегистрСведений.ТаблицыГруппДоступа КАК ТаблицыГруппДоступаПроверкаПрава + ГДЕ + ТаблицыГруппДоступаПроверкаПрава.ГруппаДоступа = ГруппыДоступа.Ссылка + И ТаблицыГруппДоступаПроверкаПрава.Таблица = Т.#Параметр(33) + #Если Не "#Параметр(32)" = "ПравоЧтенияПоИдентификатору" #Тогда + И ТаблицыГруппДоступаПроверкаПрава.ПравоИзменение + #КонецЕсли + ) +#ИначеЕсли Не &ОграничениеДоступаНаУровнеЗаписейИспользуется #Тогда + // Группа параметров отключена. +#ИначеЕсли "#Параметр(32)" = "НастройкиПрав" #Тогда + И + ( + ИСТИНА В // Проверка, что пользователю или какой-нибудь группе пользователя право разрешено + ( + ВЫБРАТЬ ПЕРВЫЕ 1 ИСТИНА + ИЗ РегистрСведений.НастройкиПравОбъектов КАК НастройкиПрав + ВНУТРЕННЕЕ СОЕДИНЕНИЕ РегистрСведений.НаследованиеНастроекПравОбъектов КАК НаследованиеНастроек + ПО + НаследованиеНастроек.Объект = Т.#Параметр(33) + И НастройкиПрав.Объект = НаследованиеНастроек.Родитель + #Если #ИмяТекущегоПраваДоступа = "Чтение" #Тогда + И НаследованиеНастроек.УровеньИспользования < НастройкиПрав.УровеньРазрешенияЧтения + #Иначе + #Если СтрСодержит(&ТаблицыСОтдельнымиНастройкамиПрав, "|#Параметр(1);") #Тогда + И НастройкиПрав.Таблица = СвойстваТекущейТаблицы.Ссылка + #Иначе + И НастройкиПрав.Таблица = ЗНАЧЕНИЕ(Справочник.ИдентификаторыОбъектовМетаданных.ПустаяСсылка) + #КонецЕсли + И НаследованиеНастроек.УровеньИспользования < НастройкиПрав.УровеньРазрешенияИзменения + #КонецЕсли + ВНУТРЕННЕЕ СОЕДИНЕНИЕ РегистрСведений.СоставыГруппПользователей КАК СоставыГруппПользователей + ПО + СоставыГруппПользователей.Пользователь = &АвторизованныйПользователь + И СоставыГруппПользователей.ГруппаПользователей = НастройкиПрав.Пользователь + ) + И НЕ ЛОЖЬ В // Проверка, что пользователю или какой-нибудь группе пользователя право запрещено. + ( + ВЫБРАТЬ ПЕРВЫЕ 1 ЛОЖЬ + ИЗ РегистрСведений.НастройкиПравОбъектов КАК НастройкиПрав + ВНУТРЕННЕЕ СОЕДИНЕНИЕ РегистрСведений.НаследованиеНастроекПравОбъектов КАК НаследованиеНастроек + ПО + НаследованиеНастроек.Объект = Т.#Параметр(33) + И НастройкиПрав.Объект = НаследованиеНастроек.Родитель + #Если #ИмяТекущегоПраваДоступа = "Чтение" #Тогда + И НаследованиеНастроек.УровеньИспользования < НастройкиПрав.УровеньЗапрещенияЧтения + #Иначе + #Если СтрСодержит(&ТаблицыСОтдельнымиНастройкамиПрав, "|#Параметр(1);") #Тогда + И НастройкиПрав.Таблица = СвойстваТекущейТаблицы.Ссылка + #Иначе + И НастройкиПрав.Таблица = ЗНАЧЕНИЕ(Справочник.ИдентификаторыОбъектовМетаданных.ПустаяСсылка) + #КонецЕсли + И НаследованиеНастроек.УровеньИспользования < НастройкиПрав.УровеньЗапрещенияИзменения + #КонецЕсли + ВНУТРЕННЕЕ СОЕДИНЕНИЕ РегистрСведений.СоставыГруппПользователей КАК СоставыГруппПользователей + ПО + СоставыГруппПользователей.Пользователь = &АвторизованныйПользователь + И СоставыГруппПользователей.ГруппаПользователей = НастройкиПрав.Пользователь + ) + ) +#ИначеЕсли Не СтрСодержит(&ВсеВидыДоступаКромеСпециальных, ",#Параметр(32),") #Тогда + // Когда параметр задан неверно, вставляется строка, чтобы вызвать ошибку сборки ограничения доступа. + #Если СтрСодержит("#Параметр(32)", ",") #Тогда + НеверныйВидДоступа: "#Параметр(32)" - "Список имен видов доступа не найден" + #Иначе + НеверныйВидДоступа: "#Параметр(32)" - "Имя вида доступа не найдено" + #КонецЕсли +#ИначеЕсли &ВидыДоступаСОтключеннымИспользованием <> "Все" + И Не СтрСодержит(&ВидыДоступаСОтключеннымИспользованием, ",#Параметр(32),") #Тогда + И + ( + ЕСТЬNULL(Т.#Параметр(33), НЕОПРЕДЕЛЕНО) <> НЕОПРЕДЕЛЕНО + И + #Если (Не СтрСодержит(&ВидыДоступаСОтключеннымИспользованием, ",Пользователи,") И СтрСодержит(",#Параметр(32),", ",Пользователи,")) + Или (Не СтрСодержит(&ВидыДоступаСОтключеннымИспользованием, ",ВнешниеПользователи,") И СтрСодержит(",#Параметр(32),", ",ВнешниеПользователи,")) #Тогда + НЕ + ( + НЕ ИСТИНА В + ( + ВЫБРАТЬ ПЕРВЫЕ 1 ИСТИНА + ИЗ РегистрСведений.ГруппыЗначенийДоступа КАК ГруппыЗначенийДоступа + ГДЕ + ГруппыЗначенийДоступа.ЗначениеДоступа = Т.#Параметр(33) + И ГруппыЗначенийДоступа.ГруппаЗначенийДоступа = &АвторизованныйПользователь + ) + И НЕ + #Иначе + ( + #КонецЕсли + ВЫБОР + КОГДА ИСТИНА В + ( + #Если СтрСодержит(&ВидыДоступаБезГруппДляЗначенияДоступа, ",#Параметр(32),") #Тогда + ВЫБРАТЬ ПЕРВЫЕ 1 ИСТИНА + ИЗ РегистрСведений.ЗначенияГруппДоступа КАК Значения + ГДЕ + Значения.ГруппаДоступа = ГруппыДоступа.Ссылка + И Значения.ЗначениеДоступа = Т.#Параметр(33) + #ИначеЕсли "Т.#Параметр(33)" = "Т.Ссылка" + И "#Параметр(32)" <> "Пользователи" + И "#Параметр(32)" <> "ВнешниеПользователи" #Тогда + #Если СтрСодержит("#Параметр(32)", ",") #Тогда + // Когда параметр задан неверно, вставляется строка, чтобы вызвать ошибку сборки ограничения доступа. + НеверныйВидДоступа: "#Параметр(32)" - "При проверке таблицы значения доступа можно указывать только один вид доступа" + #ИначеЕсли СтрСодержит(&ВидыДоступаСОднойГруппойДляЗначенияДоступа, ",#Параметр(32),") #Тогда + ВЫБРАТЬ ПЕРВЫЕ 1 ИСТИНА + ИЗ РегистрСведений.ЗначенияГруппДоступа КАК Значения + ГДЕ + Значения.ГруппаДоступа = ГруппыДоступа.Ссылка + И Значения.ЗначениеДоступа = Т.ГруппаДоступа + #Иначе // Значения доступа, для которых можно указать несколько групп значений доступа. + ВЫБРАТЬ ПЕРВЫЕ 1 ИСТИНА + ИЗ РегистрСведений.ЗначенияГруппДоступа КАК Значения + ВНУТРЕННЕЕ СОЕДИНЕНИЕ #Параметр(1).ГруппыДоступа КАК ГруппыЗначений + ПО + Значения.ГруппаДоступа = ГруппыДоступа.Ссылка + И Значения.ЗначениеДоступа = ГруппыЗначений.ГруппаДоступа + И ГруппыЗначений.Ссылка = Т.#Параметр(33) + #КонецЕсли + #Иначе + ВЫБРАТЬ ПЕРВЫЕ 1 ИСТИНА + ИЗ РегистрСведений.ЗначенияГруппДоступа КАК Значения + ВНУТРЕННЕЕ СОЕДИНЕНИЕ РегистрСведений.ГруппыЗначенийДоступа КАК ГруппыЗначений + ПО + Значения.ГруппаДоступа = ГруппыДоступа.Ссылка + И Значения.ЗначениеДоступа = ГруппыЗначений.ГруппаЗначенийДоступа + И ГруппыЗначений.ЗначениеДоступа = Т.#Параметр(33) + #КонецЕсли + ) + ТОГДА ИСТИНА + ИНАЧЕ ЛОЖЬ + КОНЕЦ + = + ВЫБОР + КОГДА ИСТИНА В + ( + ВЫБРАТЬ ПЕРВЫЕ 1 ИСТИНА + ИЗ РегистрСведений.ЗначенияГруппДоступаПоУмолчанию КАК ЗначенияПоУмолчанию + ГДЕ + ЗначенияПоУмолчанию.ГруппаДоступа = ГруппыДоступа.Ссылка + И ТИПЗНАЧЕНИЯ(ЗначенияПоУмолчанию.ТипЗначенийДоступа) = ТИПЗНАЧЕНИЯ(Т.#Параметр(33)) + И ЗначенияПоУмолчанию.ВсеРазрешены = ЛОЖЬ + ) + ТОГДА ИСТИНА + ИНАЧЕ ЛОЖЬ + КОНЕЦ + ) + ) +#Иначе + И ЕСТЬNULL(Т.#Параметр(33), НЕОПРЕДЕЛЕНО) <> НЕОПРЕДЕЛЕНО +#КонецЕсли + +//// Проверка значения поля группы параметров 16. +#Если "#Параметр(34)" = "" И "#Параметр(35)" = "" #Тогда + // Группа параметров не используется. +#ИначеЕсли &ОграничениеДоступаНаУровнеЗаписейИспользуется И ("#Параметр(34)" = "Условие" Или "#Параметр(34)" = "") #Тогда + // Когда имя вида доступа "Условие" (или ""), тогда вместо имени поля задано условие. + И ( #Параметр(35) ) +#ИначеЕсли "#Параметр(34)" = "ПравоЧтения" Или "#Параметр(34)" = "ПравоИзменения" #Тогда + И Т.#Параметр(35) <> НЕОПРЕДЕЛЕНО + И ИСТИНА В + ( // Проверка права пользователя на таблицу Значения, установленного в поле. + ВЫБРАТЬ ПЕРВЫЕ 1 ИСТИНА + ИЗ РегистрСведений.ТаблицыГруппДоступа КАК ТаблицыГруппДоступаПроверкаПрава + ГДЕ + ТаблицыГруппДоступаПроверкаПрава.ГруппаДоступа = ГруппыДоступа.Ссылка + И ТИПЗНАЧЕНИЯ(ТаблицыГруппДоступаПроверкаПрава.ТипТаблицы) = ТИПЗНАЧЕНИЯ(Т.#Параметр(35)) + #Если Не "#Параметр(34)" = "ПравоЧтения" #Тогда + И ТаблицыГруппДоступаПроверкаПрава.ПравоИзменение + #КонецЕсли + ) +#ИначеЕсли "#Параметр(34)" = "ПравоЧтенияПоИдентификатору" Или "#Параметр(34)" = "ПравоИзмененияПоИдентификатору" #Тогда + ИСТИНА В + ( // Проверка права пользователя на таблицу, идентификатор которой указан в Значении, установленном в поле. + ВЫБРАТЬ ПЕРВЫЕ 1 ИСТИНА + ИЗ РегистрСведений.ТаблицыГруппДоступа КАК ТаблицыГруппДоступаПроверкаПрава + ГДЕ + ТаблицыГруппДоступаПроверкаПрава.ГруппаДоступа = ГруппыДоступа.Ссылка + И ТаблицыГруппДоступаПроверкаПрава.Таблица = Т.#Параметр(35) + #Если Не "#Параметр(34)" = "ПравоЧтенияПоИдентификатору" #Тогда + И ТаблицыГруппДоступаПроверкаПрава.ПравоИзменение + #КонецЕсли + ) +#ИначеЕсли Не &ОграничениеДоступаНаУровнеЗаписейИспользуется #Тогда + // Группа параметров отключена. +#ИначеЕсли "#Параметр(34)" = "НастройкиПрав" #Тогда + И + ( + ИСТИНА В // Проверка, что пользователю или какой-нибудь группе пользователя право разрешено + ( + ВЫБРАТЬ ПЕРВЫЕ 1 ИСТИНА + ИЗ РегистрСведений.НастройкиПравОбъектов КАК НастройкиПрав + ВНУТРЕННЕЕ СОЕДИНЕНИЕ РегистрСведений.НаследованиеНастроекПравОбъектов КАК НаследованиеНастроек + ПО + НаследованиеНастроек.Объект = Т.#Параметр(35) + И НастройкиПрав.Объект = НаследованиеНастроек.Родитель + #Если #ИмяТекущегоПраваДоступа = "Чтение" #Тогда + И НаследованиеНастроек.УровеньИспользования < НастройкиПрав.УровеньРазрешенияЧтения + #Иначе + #Если СтрСодержит(&ТаблицыСОтдельнымиНастройкамиПрав, "|#Параметр(1);") #Тогда + И НастройкиПрав.Таблица = СвойстваТекущейТаблицы.Ссылка + #Иначе + И НастройкиПрав.Таблица = ЗНАЧЕНИЕ(Справочник.ИдентификаторыОбъектовМетаданных.ПустаяСсылка) + #КонецЕсли + И НаследованиеНастроек.УровеньИспользования < НастройкиПрав.УровеньРазрешенияИзменения + #КонецЕсли + ВНУТРЕННЕЕ СОЕДИНЕНИЕ РегистрСведений.СоставыГруппПользователей КАК СоставыГруппПользователей + ПО + СоставыГруппПользователей.Пользователь = &АвторизованныйПользователь + И СоставыГруппПользователей.ГруппаПользователей = НастройкиПрав.Пользователь + ) + И НЕ ЛОЖЬ В // Проверка, что пользователю или какой-нибудь группе пользователя право запрещено. + ( + ВЫБРАТЬ ПЕРВЫЕ 1 ЛОЖЬ + ИЗ РегистрСведений.НастройкиПравОбъектов КАК НастройкиПрав + ВНУТРЕННЕЕ СОЕДИНЕНИЕ РегистрСведений.НаследованиеНастроекПравОбъектов КАК НаследованиеНастроек + ПО + НаследованиеНастроек.Объект = Т.#Параметр(35) + И НастройкиПрав.Объект = НаследованиеНастроек.Родитель + #Если #ИмяТекущегоПраваДоступа = "Чтение" #Тогда + И НаследованиеНастроек.УровеньИспользования < НастройкиПрав.УровеньЗапрещенияЧтения + #Иначе + #Если СтрСодержит(&ТаблицыСОтдельнымиНастройкамиПрав, "|#Параметр(1);") #Тогда + И НастройкиПрав.Таблица = СвойстваТекущейТаблицы.Ссылка + #Иначе + И НастройкиПрав.Таблица = ЗНАЧЕНИЕ(Справочник.ИдентификаторыОбъектовМетаданных.ПустаяСсылка) + #КонецЕсли + И НаследованиеНастроек.УровеньИспользования < НастройкиПрав.УровеньЗапрещенияИзменения + #КонецЕсли + ВНУТРЕННЕЕ СОЕДИНЕНИЕ РегистрСведений.СоставыГруппПользователей КАК СоставыГруппПользователей + ПО + СоставыГруппПользователей.Пользователь = &АвторизованныйПользователь + И СоставыГруппПользователей.ГруппаПользователей = НастройкиПрав.Пользователь + ) + ) +#ИначеЕсли Не СтрСодержит(&ВсеВидыДоступаКромеСпециальных, ",#Параметр(34),") #Тогда + // Когда параметр задан неверно, вставляется строка, чтобы вызвать ошибку сборки ограничения доступа. + #Если СтрСодержит("#Параметр(34)", ",") #Тогда + НеверныйВидДоступа: "#Параметр(34)" - "Список имен видов доступа не найден" + #Иначе + НеверныйВидДоступа: "#Параметр(34)" - "Имя вида доступа не найдено" + #КонецЕсли +#ИначеЕсли &ВидыДоступаСОтключеннымИспользованием <> "Все" + И Не СтрСодержит(&ВидыДоступаСОтключеннымИспользованием, ",#Параметр(34),") #Тогда + И + ( + ЕСТЬNULL(Т.#Параметр(35), НЕОПРЕДЕЛЕНО) <> НЕОПРЕДЕЛЕНО + И + #Если (Не СтрСодержит(&ВидыДоступаСОтключеннымИспользованием, ",Пользователи,") И СтрСодержит(",#Параметр(34),", ",Пользователи,")) + Или (Не СтрСодержит(&ВидыДоступаСОтключеннымИспользованием, ",ВнешниеПользователи,") И СтрСодержит(",#Параметр(34),", ",ВнешниеПользователи,")) #Тогда + НЕ + ( + НЕ ИСТИНА В + ( + ВЫБРАТЬ ПЕРВЫЕ 1 ИСТИНА + ИЗ РегистрСведений.ГруппыЗначенийДоступа КАК ГруппыЗначенийДоступа + ГДЕ + ГруппыЗначенийДоступа.ЗначениеДоступа = Т.#Параметр(35) + И ГруппыЗначенийДоступа.ГруппаЗначенийДоступа = &АвторизованныйПользователь + ) + И НЕ + #Иначе + ( + #КонецЕсли + ВЫБОР + КОГДА ИСТИНА В + ( + #Если СтрСодержит(&ВидыДоступаБезГруппДляЗначенияДоступа, ",#Параметр(34),") #Тогда + ВЫБРАТЬ ПЕРВЫЕ 1 ИСТИНА + ИЗ РегистрСведений.ЗначенияГруппДоступа КАК Значения + ГДЕ + Значения.ГруппаДоступа = ГруппыДоступа.Ссылка + И Значения.ЗначениеДоступа = Т.#Параметр(35) + #ИначеЕсли "Т.#Параметр(35)" = "Т.Ссылка" + И "#Параметр(34)" <> "Пользователи" + И "#Параметр(34)" <> "ВнешниеПользователи" #Тогда + #Если СтрСодержит("#Параметр(34)", ",") #Тогда + // Когда параметр задан неверно, вставляется строка, чтобы вызвать ошибку сборки ограничения доступа. + НеверныйВидДоступа: "#Параметр(34)" - "При проверке таблицы значения доступа можно указывать только один вид доступа" + #ИначеЕсли СтрСодержит(&ВидыДоступаСОднойГруппойДляЗначенияДоступа, ",#Параметр(34),") #Тогда + ВЫБРАТЬ ПЕРВЫЕ 1 ИСТИНА + ИЗ РегистрСведений.ЗначенияГруппДоступа КАК Значения + ГДЕ + Значения.ГруппаДоступа = ГруппыДоступа.Ссылка + И Значения.ЗначениеДоступа = Т.ГруппаДоступа + #Иначе // Значения доступа, для которых можно указать несколько групп значений доступа. + ВЫБРАТЬ ПЕРВЫЕ 1 ИСТИНА + ИЗ РегистрСведений.ЗначенияГруппДоступа КАК Значения + ВНУТРЕННЕЕ СОЕДИНЕНИЕ #Параметр(1).ГруппыДоступа КАК ГруппыЗначений + ПО + Значения.ГруппаДоступа = ГруппыДоступа.Ссылка + И Значения.ЗначениеДоступа = ГруппыЗначений.ГруппаДоступа + И ГруппыЗначений.Ссылка = Т.#Параметр(35) + #КонецЕсли + #Иначе + ВЫБРАТЬ ПЕРВЫЕ 1 ИСТИНА + ИЗ РегистрСведений.ЗначенияГруппДоступа КАК Значения + ВНУТРЕННЕЕ СОЕДИНЕНИЕ РегистрСведений.ГруппыЗначенийДоступа КАК ГруппыЗначений + ПО + Значения.ГруппаДоступа = ГруппыДоступа.Ссылка + И Значения.ЗначениеДоступа = ГруппыЗначений.ГруппаЗначенийДоступа + И ГруппыЗначений.ЗначениеДоступа = Т.#Параметр(35) + #КонецЕсли + ) + ТОГДА ИСТИНА + ИНАЧЕ ЛОЖЬ + КОНЕЦ + = + ВЫБОР + КОГДА ИСТИНА В + ( + ВЫБРАТЬ ПЕРВЫЕ 1 ИСТИНА + ИЗ РегистрСведений.ЗначенияГруппДоступаПоУмолчанию КАК ЗначенияПоУмолчанию + ГДЕ + ЗначенияПоУмолчанию.ГруппаДоступа = ГруппыДоступа.Ссылка + И ТИПЗНАЧЕНИЯ(ЗначенияПоУмолчанию.ТипЗначенийДоступа) = ТИПЗНАЧЕНИЯ(Т.#Параметр(35)) + И ЗначенияПоУмолчанию.ВсеРазрешены = ЛОЖЬ + ) + ТОГДА ИСТИНА + ИНАЧЕ ЛОЖЬ + КОНЕЦ + ) + ) +#Иначе + И ЕСТЬNULL(Т.#Параметр(35), НЕОПРЕДЕЛЕНО) <> НЕОПРЕДЕЛЕНО +#КонецЕсли + + ) +) +#КонецЕсли + +#КонецЕсли // Информационная база заблокирована для обновления. + + + ПоЗначениямРасширенный + // ПоЗначениямРасширенный(Таблица, -, Модификатор, ПрисоединяемыеТаблицы, О, В1,П1,О1, В2,П2,О2,..., В(n), П(n), О(n)). +// № параметра: 1, 2, 3, 4, 5, 6, 7, 8, 9,10,11,...,3+n*3,4+n*3,5+n*3. +// Читается так: "ограничение доступа по значениям расширенный". +// Параметры: +// Таблица - Имя текущей таблицы, например "Документ.ПоступлениеТоваровИУслуг". +// Модификатор - изменяет шаблон. +// 1-й модификатор - строка "НеОграничиватьДоступКГруппам" указывает +// безусловно выбирать группы иерархического справочника. +// Других модификаторов в этой версии шаблона не предусмотрено. +// ПрисоединяемыеТаблицы - текст присоедиения дополнительных таблиц на языке запросов, например, +// "ВНУТРЕННЕЕ СОЕДИНЕНИЕ Документ.АвансовыйОтчет.ОплатаПоставщикам КАК Т1 +// ПО Т.Ссылка = Т1.Ссылка". +// Присоединение позволяет указать поля таблицы ОплатаПоставщикам, как поля основной таблицы +// для проверки их значений, как значений основной таблицы. +// Следует помнить, что при размножении строк в результате соединения, достаточно чтобы +// всего одна строка прошла условия проверки, т.е. результаты проверки строк объединяются по "ИЛИ". +// О - Начальные скобки "(". +// В(n) - Вид доступа - имя вида доступа, например, "Организации". Для полей составного типа, с целью повышения +// производительности, лучше указать несколько имен, например, "Организации,ГруппыФизическихЛиц", +// чем использовать несколько блоков параметров, с одним и тем же именем поля. +// Специальные виды доступа "Условие", "НастройкиПрав", "ПравоЧтения", "ПравоИзменения", +// "ПравоЧтенияПоИдентификатору", "ПравоИзмененияПоИдентификатору" можно использовать только отдельно. +// Когда В(n) = "Условие" (или ""), тогда П(n) содержит строку условия на языке запросов, например +// "Т.Автор = &АвторизованныйПользователь", +// "ТИПЗНАЧЕНИЯ(Т.Владелец) = ТИП(Справочник.Организации)", где Т - псевдоним текущей таблицы. +// Когда В(n) = "ПравоЧтения" Или "ПравоИзменения", +// выполняется проверка наличия права на таблицу значения Т.П(n). +// Когда В(n) = "ПравоЧтенияПоИдентификатору" или "ПравоИзмененияПоИдентификатору", +// выполняется проверка наличия права на таблицу по идентификатору в значении Т.П(n). +// П(n) - Поле проверяемого значения с псевдонимом, например "Т.Организация", +// кроме случая В(n) = "Условие" (или ""). +// О(n) - Логические операции "И", "ИЛИ" в сочетании с скобками "(", ")". +// Примечение: максимальное количество одновременно проверяемых значений полей можно увеличить, изменив шаблон, но +// необходимо будет указывать все параметры шаблона, т.е. указывать пустые строки, когда количество полей меньше максимального. +// Шаблон имеет структуру: +// <Общая часть условий> <Условие по группе параметров 1> И/ИЛИ <Условие по группе параметров 2> И/ИЛИ ... <Условие по группе параметров(n)> +// Пример: +// ПоЗначениямРасширенный("Документ.ПеремещениеТоваров", "", "", +// "", +// "", +// "Организации","Т.Организация","И(", +// "Склады","Т.СкладОтправитель","ИЛИ", +// "Склады","Т.СкладПолучатель",")", "","","", ...) + +#Если &ОграничениеДоступаНаУровнеЗаписейИспользуется = "" #Тогда // Информационная база заблокирована для обновления. + ГДЕ ЛОЖЬ + +#ИначеЕсли Не СтрСодержит(&ВерсииШаблоновОграниченияДоступа, ",ПоЗначениямРасширенный18,") #Тогда + Ошибка: Требуется обновить шаблон на актуальную версию, поставляемую в роли ИзменениеУчастниковГруппДоступа по причине: Используется устаревшая версия 18 шаблона ограничения доступа ПоЗначениямРасширенный. Объект: #ИмяТекущейТаблицы, Право: #ИмяТекущегоПраваДоступа. + +#Иначе + +// Проверка правильности параметра Право. +#Если Не ("#Параметр(2)" = "Чтение" Или "#Параметр(2)" = "Добавление" Или + "#Параметр(2)" = "Изменение" Или "#Параметр(2)" = "Удаление" Или "#Параметр(2)" = "") + Или #ИмяТекущегоПраваДоступа <> "Чтение" И "#Параметр(2)" = "Чтение" + Или #ИмяТекущегоПраваДоступа = "Чтение" И "#Параметр(2)" <> "Чтение" И "#Параметр(2)" <> "" #Тогда + // Когда параметр задан неверно, вставляется строка, чтобы вызвать ошибку сборки ограничения доступа. + НеверноеПраво: #Параметр(2) +#КонецЕсли + +// Проверка правильности параметра ИмяТаблицы. +#Если "#Параметр(1)" <> #ИмяТекущейТаблицы #Тогда + // Когда параметр задан неверно, вставляется строка, чтобы вызвать ошибку сборки ограничения доступа. + НеверноеИмяТекущейТаблицы: "#Параметр(1)" +#КонецЕсли + +// Проверка правильности параметра Модификатор. +#Если Не ("#Параметр(3)" = "НеОграничиватьДоступКГруппам" Или "#Параметр(3)" = "") #Тогда + // Когда параметр задан неверно, вставляется строка, чтобы вызвать ошибку сборки ограничения доступа. + НеверныйМодификатор: #Параметр(3) +#КонецЕсли + +// Общая проверка использования ограничений доступа на уровне записей и +// проверка использования хотя бы одного ограничения из указанных видов доступа. +#Если Не + ( Истина + И ("#Параметр(6)" = "" И "#Параметр(7)" = "" + Или Не &ОграничениеДоступаНаУровнеЗаписейИспользуется + И Не СтрСодержит(",Объект, ,ПравоЧтения,ПравоИзменения,ПравоЧтенияПоИдентификатору,ПравоИзмененияПоИдентификатору,", ",#Параметр(6),")) + И ("#Параметр(9)" = "" И "#Параметр(10)" = "" + Или Не &ОграничениеДоступаНаУровнеЗаписейИспользуется + И Не СтрСодержит(",Объект, ,ПравоЧтения,ПравоИзменения,ПравоЧтенияПоИдентификатору,ПравоИзмененияПоИдентификатору,", ",#Параметр(9),")) + И ("#Параметр(12)" = "" И "#Параметр(13)" = "" + Или Не &ОграничениеДоступаНаУровнеЗаписейИспользуется + И Не СтрСодержит(",Объект, ,ПравоЧтения,ПравоИзменения,ПравоЧтенияПоИдентификатору,ПравоИзмененияПоИдентификатору,", ",#Параметр(12),")) + И ("#Параметр(15)" = "" И "#Параметр(16)" = "" + Или Не &ОграничениеДоступаНаУровнеЗаписейИспользуется + И Не СтрСодержит(",Объект, ,ПравоЧтения,ПравоИзменения,ПравоЧтенияПоИдентификатору,ПравоИзмененияПоИдентификатору,", ",#Параметр(15),")) + И ("#Параметр(18)" = "" И "#Параметр(19)" = "" + Или Не &ОграничениеДоступаНаУровнеЗаписейИспользуется + И Не СтрСодержит(",Объект, ,ПравоЧтения,ПравоИзменения,ПравоЧтенияПоИдентификатору,ПравоИзмененияПоИдентификатору,", ",#Параметр(18),")) + И ("#Параметр(21)" = "" И "#Параметр(22)" = "" + Или Не &ОграничениеДоступаНаУровнеЗаписейИспользуется + И Не СтрСодержит(",Объект, ,ПравоЧтения,ПравоИзменения,ПравоЧтенияПоИдентификатору,ПравоИзмененияПоИдентификатору,", ",#Параметр(21),")) + И ("#Параметр(24)" = "" И "#Параметр(25)" = "" + Или Не &ОграничениеДоступаНаУровнеЗаписейИспользуется + И Не СтрСодержит(",Объект, ,ПравоЧтения,ПравоИзменения,ПравоЧтенияПоИдентификатору,ПравоИзмененияПоИдентификатору,", ",#Параметр(24),")) + И ("#Параметр(27)" = "" И "#Параметр(28)" = "" + Или Не &ОграничениеДоступаНаУровнеЗаписейИспользуется + И Не СтрСодержит(",Объект, ,ПравоЧтения,ПравоИзменения,ПравоЧтенияПоИдентификатору,ПравоИзмененияПоИдентификатору,", ",#Параметр(27),")) + И ("#Параметр(30)" = "" И "#Параметр(31)" = "" + Или Не &ОграничениеДоступаНаУровнеЗаписейИспользуется + И Не СтрСодержит(",Объект, ,ПравоЧтения,ПравоИзменения,ПравоЧтенияПоИдентификатору,ПравоИзмененияПоИдентификатору,", ",#Параметр(30),")) + И ("#Параметр(33)" = "" И "#Параметр(34)" = "" + Или Не &ОграничениеДоступаНаУровнеЗаписейИспользуется + И Не СтрСодержит(",Объект, ,ПравоЧтения,ПравоИзменения,ПравоЧтенияПоИдентификатору,ПравоИзмененияПоИдентификатору,", ",#Параметр(33),")) + И ("#Параметр(36)" = "" И "#Параметр(37)" = "" + Или Не &ОграничениеДоступаНаУровнеЗаписейИспользуется + И Не СтрСодержит(",Объект, ,ПравоЧтения,ПравоИзменения,ПравоЧтенияПоИдентификатору,ПравоИзмененияПоИдентификатору,", ",#Параметр(36),")) + И ("#Параметр(39)" = "" И "#Параметр(40)" = "" + Или Не &ОграничениеДоступаНаУровнеЗаписейИспользуется + И Не СтрСодержит(",Объект, ,ПравоЧтения,ПравоИзменения,ПравоЧтенияПоИдентификатору,ПравоИзмененияПоИдентификатору,", ",#Параметр(39),")) + И ("#Параметр(42)" = "" И "#Параметр(43)" = "" + Или Не &ОграничениеДоступаНаУровнеЗаписейИспользуется + И Не СтрСодержит(",Объект, ,ПравоЧтения,ПравоИзменения,ПравоЧтенияПоИдентификатору,ПравоИзмененияПоИдентификатору,", ",#Параметр(42),")) + И ("#Параметр(45)" = "" И "#Параметр(46)" = "" + Или Не &ОграничениеДоступаНаУровнеЗаписейИспользуется + И Не СтрСодержит(",Объект, ,ПравоЧтения,ПравоИзменения,ПравоЧтенияПоИдентификатору,ПравоИзмененияПоИдентификатору,", ",#Параметр(45),")) + И ("#Параметр(48)" = "" И "#Параметр(49)" = "" + Или Не &ОграничениеДоступаНаУровнеЗаписейИспользуется + И Не СтрСодержит(",Объект, ,ПравоЧтения,ПравоИзменения,ПравоЧтенияПоИдентификатору,ПравоИзмененияПоИдентификатору,", ",#Параметр(48),")) + И ("#Параметр(51)" = "" И "#Параметр(52)" = "" + Или Не &ОграничениеДоступаНаУровнеЗаписейИспользуется + И Не СтрСодержит(",Объект, ,ПравоЧтения,ПравоИзменения,ПравоЧтенияПоИдентификатору,ПравоИзмененияПоИдентификатору,", ",#Параметр(51),")) + ) #Тогда + +Т ИЗ Т // Т - псевдоним текущей таблицы (выбран коротким, чтобы сократить количество символов в тексте параметра-условия на языке запросов). + +// Присоединяемые таблицы к проверяемой строке текущей таблицы "Т". +#Параметр(4) + +ГДЕ + +ИСТИНА В +( // Проверка права пользователя на текущую таблицу в целом. + // Права на таблицы формируются по составу ролей профиля группы доступа. + ВЫБРАТЬ ПЕРВЫЕ 1 ИСТИНА + ИЗ + #Если СтрСодержит(&ТаблицыРасширенийСОграничениемДоступа, "|#Параметр(1);") #Тогда + Справочник.ИдентификаторыОбъектовРасширений КАК СвойстваТекущейТаблицы + #Иначе + Справочник.ИдентификаторыОбъектовМетаданных КАК СвойстваТекущейТаблицы + #КонецЕсли + ВНУТРЕННЕЕ СОЕДИНЕНИЕ Справочник.ГруппыДоступа КАК ГруппыДоступа + ПО + СвойстваТекущейТаблицы.ПолноеИмя = "#Параметр(1)" + И ИСТИНА В + ( + ВЫБРАТЬ ПЕРВЫЕ 1 ИСТИНА + ИЗ + РегистрСведений.ТаблицыГруппДоступа КАК ТаблицыГруппДоступа + ГДЕ + ТаблицыГруппДоступа.Таблица = СвойстваТекущейТаблицы.Ссылка + И ТаблицыГруппДоступа.ГруппаДоступа = ГруппыДоступа.Ссылка + #Если #ИмяТекущегоПраваДоступа = "Изменение" #Тогда + И ТаблицыГруппДоступа.ПравоИзменение + #ИначеЕсли #ИмяТекущегоПраваДоступа = "Добавление" #Тогда + И ТаблицыГруппДоступа.ПравоДобавление + #КонецЕсли + ) + И ГруппыДоступа.Ссылка В + ( + ВЫБРАТЬ + ГруппыДоступаПользователи.Ссылка КАК ГруппаДоступа + ИЗ + Справочник.ГруппыДоступа.Пользователи КАК ГруппыДоступаПользователи + ВНУТРЕННЕЕ СОЕДИНЕНИЕ РегистрСведений.СоставыГруппПользователей КАК СоставыГруппПользователей + ПО + СоставыГруппПользователей.Пользователь = &АвторизованныйПользователь + И СоставыГруппПользователей.ГруппаПользователей = ГруппыДоступаПользователи.Пользователь + ) + ГДЕ + +// Безусловная выборка групп в иерархическом объекте метаданных (если нужно). +#Если "#Параметр(3)" = "НеОграничиватьДоступКГруппам" #Тогда + Т.ЭтоГруппа ИЛИ +#КонецЕсли + + ( // Поиск значений заданных полей в разрешенных значениях групп доступа (пользователей). + + #Параметр(5) // [([(][(]...] 0-n открывающихся скобок. + +//// Проверка значения поля группы параметров 1. +#Если &ОграничениеДоступаНаУровнеЗаписейИспользуется И ("#Параметр(6)" = "Условие" Или "#Параметр(6)" = "") #Тогда + // Когда имя вида доступа "Условие" (или ""), тогда вместо имени поля задано условие. + ( #Параметр(7) ) +#ИначеЕсли "#Параметр(6)" = "ПравоЧтения" Или "#Параметр(6)" = "ПравоИзменения" #Тогда + #Параметр(7) <> НЕОПРЕДЕЛЕНО + И ИСТИНА В + ( // Проверка права пользователя на таблицу Значения, установленного в поле. + ВЫБРАТЬ ПЕРВЫЕ 1 ИСТИНА + ИЗ РегистрСведений.ТаблицыГруппДоступа КАК ТаблицыГруппДоступаПроверкаПрава + ГДЕ + ТаблицыГруппДоступаПроверкаПрава.ГруппаДоступа = ГруппыДоступа.Ссылка + И ТИПЗНАЧЕНИЯ(ТаблицыГруппДоступаПроверкаПрава.ТипТаблицы) = ТИПЗНАЧЕНИЯ(#Параметр(7)) + #Если Не "#Параметр(6)" = "ПравоЧтения" #Тогда + И ТаблицыГруппДоступаПроверкаПрава.ПравоИзменение + #КонецЕсли + ) +#ИначеЕсли "#Параметр(6)" = "ПравоЧтенияПоИдентификатору" Или "#Параметр(6)" = "ПравоИзмененияПоИдентификатору" #Тогда + ИСТИНА В + ( // Проверка права пользователя на таблицу, идентификатор которой указан в Значении, установленном в поле. + ВЫБРАТЬ ПЕРВЫЕ 1 ИСТИНА + ИЗ РегистрСведений.ТаблицыГруппДоступа КАК ТаблицыГруппДоступаПроверкаПрава + ГДЕ + ТаблицыГруппДоступаПроверкаПрава.ГруппаДоступа = ГруппыДоступа.Ссылка + И ТаблицыГруппДоступаПроверкаПрава.Таблица = #Параметр(7) + #Если Не "#Параметр(6)" = "ПравоЧтенияПоИдентификатору" #Тогда + И ТаблицыГруппДоступаПроверкаПрава.ПравоИзменение + #КонецЕсли + ) +#ИначеЕсли Не &ОграничениеДоступаНаУровнеЗаписейИспользуется #Тогда + ИСТИНА // Группа параметров отключена. +#ИначеЕсли "#Параметр(6)" = "НастройкиПрав" #Тогда + + ( + ИСТИНА В // Проверка, что пользователю или какой-нибудь группе пользователя право разрешено + ( + ВЫБРАТЬ ПЕРВЫЕ 1 ИСТИНА + ИЗ РегистрСведений.НастройкиПравОбъектов КАК НастройкиПрав + ВНУТРЕННЕЕ СОЕДИНЕНИЕ РегистрСведений.НаследованиеНастроекПравОбъектов КАК НаследованиеНастроек + ПО + НаследованиеНастроек.Объект = #Параметр(7) + И НастройкиПрав.Объект = НаследованиеНастроек.Родитель + #Если #ИмяТекущегоПраваДоступа = "Чтение" #Тогда + И НаследованиеНастроек.УровеньИспользования < НастройкиПрав.УровеньРазрешенияЧтения + #Иначе + #Если СтрСодержит(&ТаблицыСОтдельнымиНастройкамиПрав, "|#Параметр(1);") #Тогда + И НастройкиПрав.Таблица = СвойстваТекущейТаблицы.Ссылка + #Иначе + И НастройкиПрав.Таблица = ЗНАЧЕНИЕ(Справочник.ИдентификаторыОбъектовМетаданных.ПустаяСсылка) + #КонецЕсли + И НаследованиеНастроек.УровеньИспользования < НастройкиПрав.УровеньРазрешенияИзменения + #КонецЕсли + ВНУТРЕННЕЕ СОЕДИНЕНИЕ РегистрСведений.СоставыГруппПользователей КАК СоставыГруппПользователей + ПО + СоставыГруппПользователей.Пользователь = &АвторизованныйПользователь + И СоставыГруппПользователей.ГруппаПользователей = НастройкиПрав.Пользователь + ) + И НЕ ЛОЖЬ В // Проверка, что пользователю или какой-нибудь группе пользователя право запрещено. + ( + ВЫБРАТЬ ПЕРВЫЕ 1 ЛОЖЬ + ИЗ РегистрСведений.НастройкиПравОбъектов КАК НастройкиПрав + ВНУТРЕННЕЕ СОЕДИНЕНИЕ РегистрСведений.НаследованиеНастроекПравОбъектов КАК НаследованиеНастроек + ПО + НаследованиеНастроек.Объект = #Параметр(7) + И НастройкиПрав.Объект = НаследованиеНастроек.Родитель + #Если #ИмяТекущегоПраваДоступа = "Чтение" #Тогда + И НаследованиеНастроек.УровеньИспользования < НастройкиПрав.УровеньЗапрещенияЧтения + #Иначе + #Если СтрСодержит(&ТаблицыСОтдельнымиНастройкамиПрав, "|#Параметр(1);") #Тогда + И НастройкиПрав.Таблица = СвойстваТекущейТаблицы.Ссылка + #Иначе + И НастройкиПрав.Таблица = ЗНАЧЕНИЕ(Справочник.ИдентификаторыОбъектовМетаданных.ПустаяСсылка) + #КонецЕсли + И НаследованиеНастроек.УровеньИспользования < НастройкиПрав.УровеньЗапрещенияИзменения + #КонецЕсли + ВНУТРЕННЕЕ СОЕДИНЕНИЕ РегистрСведений.СоставыГруппПользователей КАК СоставыГруппПользователей + ПО + СоставыГруппПользователей.Пользователь = &АвторизованныйПользователь + И СоставыГруппПользователей.ГруппаПользователей = НастройкиПрав.Пользователь + ) + ) +#ИначеЕсли Не СтрСодержит(&ВсеВидыДоступаКромеСпециальных, ",#Параметр(6),") #Тогда + // Когда параметр задан неверно, вставляется строка, чтобы вызвать ошибку сборки ограничения доступа. + #Если СтрСодержит("#Параметр(6)", ",") #Тогда + НеверныйВидДоступа: "#Параметр(6)" - "Список имен видов доступа не найден" + #Иначе + НеверныйВидДоступа: "#Параметр(6)" - "Имя вида доступа не найдено" + #КонецЕсли +#ИначеЕсли &ВидыДоступаСОтключеннымИспользованием <> "Все" + И Не СтрСодержит(&ВидыДоступаСОтключеннымИспользованием, ",#Параметр(6),") #Тогда + + ( + ЕСТЬNULL(#Параметр(7), НЕОПРЕДЕЛЕНО) <> НЕОПРЕДЕЛЕНО + И + #Если (Не СтрСодержит(&ВидыДоступаСОтключеннымИспользованием, ",Пользователи,") И СтрСодержит(",#Параметр(6),", ",Пользователи,")) + Или (Не СтрСодержит(&ВидыДоступаСОтключеннымИспользованием, ",ВнешниеПользователи,") И СтрСодержит(",#Параметр(6),", ",ВнешниеПользователи,")) #Тогда + НЕ + ( + НЕ ИСТИНА В + ( + ВЫБРАТЬ ПЕРВЫЕ 1 ИСТИНА + ИЗ РегистрСведений.ГруппыЗначенийДоступа КАК ГруппыЗначенийДоступа + ГДЕ + ГруппыЗначенийДоступа.ЗначениеДоступа = #Параметр(7) + И ГруппыЗначенийДоступа.ГруппаЗначенийДоступа = &АвторизованныйПользователь + ) + И НЕ + #Иначе + ( + #КонецЕсли + ВЫБОР + КОГДА ИСТИНА В + ( + #Если СтрСодержит(&ВидыДоступаБезГруппДляЗначенияДоступа, ",#Параметр(6),") #Тогда + ВЫБРАТЬ ПЕРВЫЕ 1 ИСТИНА + ИЗ РегистрСведений.ЗначенияГруппДоступа КАК Значения + ГДЕ + Значения.ГруппаДоступа = ГруппыДоступа.Ссылка + И Значения.ЗначениеДоступа = #Параметр(7) + #ИначеЕсли "#Параметр(7)" = "Т.Ссылка" + И "#Параметр(6)" <> "Пользователи" + И "#Параметр(6)" <> "ВнешниеПользователи" #Тогда + #Если СтрСодержит("#Параметр(6)", ",") #Тогда + // Когда параметр задан неверно, вставляется строка, чтобы вызвать ошибку сборки ограничения доступа. + НеверныйВидДоступа: "#Параметр(6)" - "При проверке таблицы значения доступа можно указывать только один вид доступа" + #ИначеЕсли СтрСодержит(&ВидыДоступаСОднойГруппойДляЗначенияДоступа, ",#Параметр(6),") #Тогда + ВЫБРАТЬ ПЕРВЫЕ 1 ИСТИНА + ИЗ РегистрСведений.ЗначенияГруппДоступа КАК Значения + ГДЕ + Значения.ГруппаДоступа = ГруппыДоступа.Ссылка + И Значения.ЗначениеДоступа = Т.ГруппаДоступа + #Иначе // Значения доступа, для которых можно указать несколько групп значений доступа. + ВЫБРАТЬ ПЕРВЫЕ 1 ИСТИНА + ИЗ РегистрСведений.ЗначенияГруппДоступа КАК Значения + ВНУТРЕННЕЕ СОЕДИНЕНИЕ #Параметр(1).ГруппыДоступа КАК ГруппыЗначений + ПО + Значения.ГруппаДоступа = ГруппыДоступа.Ссылка + И Значения.ЗначениеДоступа = ГруппыЗначений.ГруппаДоступа + И ГруппыЗначений.Ссылка = #Параметр(7) + #КонецЕсли + #Иначе + ВЫБРАТЬ ПЕРВЫЕ 1 ИСТИНА + ИЗ РегистрСведений.ЗначенияГруппДоступа КАК Значения + ВНУТРЕННЕЕ СОЕДИНЕНИЕ РегистрСведений.ГруппыЗначенийДоступа КАК ГруппыЗначений + ПО + Значения.ГруппаДоступа = ГруппыДоступа.Ссылка + И Значения.ЗначениеДоступа = ГруппыЗначений.ГруппаЗначенийДоступа + И ГруппыЗначений.ЗначениеДоступа = #Параметр(7) + #КонецЕсли + ) + ТОГДА ИСТИНА + ИНАЧЕ ЛОЖЬ + КОНЕЦ + = + ВЫБОР + КОГДА ИСТИНА В + ( + ВЫБРАТЬ ПЕРВЫЕ 1 ИСТИНА + ИЗ РегистрСведений.ЗначенияГруппДоступаПоУмолчанию КАК ЗначенияПоУмолчанию + ГДЕ + ЗначенияПоУмолчанию.ГруппаДоступа = ГруппыДоступа.Ссылка + И ТИПЗНАЧЕНИЯ(ЗначенияПоУмолчанию.ТипЗначенийДоступа) = ТИПЗНАЧЕНИЯ(#Параметр(7)) + И ЗначенияПоУмолчанию.ВсеРазрешены = ЛОЖЬ + ) + ТОГДА ИСТИНА + ИНАЧЕ ЛОЖЬ + КОНЕЦ + ) + ) +#Иначе + ЕСТЬNULL(#Параметр(7), НЕОПРЕДЕЛЕНО) <> НЕОПРЕДЕЛЕНО +#КонецЕсли + + #Параметр(8) // [)[)][)]...] [ИЛИ|И] [([(][(]...] оператор И/ИЛИ с/без скобок. + +//// Проверка значения поля группы параметров 2. +#Если "#Параметр(9)" = "" И "#Параметр(10)" = "" #Тогда + // Группа параметров не используется. +#ИначеЕсли &ОграничениеДоступаНаУровнеЗаписейИспользуется И ("#Параметр(9)" = "Условие" Или "#Параметр(9)" = "") #Тогда + // Когда имя вида доступа "Условие" (или ""), тогда вместо имени поля задано условие. + ( #Параметр(10) ) +#ИначеЕсли "#Параметр(9)" = "ПравоЧтения" Или "#Параметр(9)" = "ПравоИзменения" #Тогда + #Параметр(10) <> НЕОПРЕДЕЛЕНО + И ИСТИНА В + ( // Проверка права пользователя на таблицу Значения, установленного в поле. + ВЫБРАТЬ ПЕРВЫЕ 1 ИСТИНА + ИЗ РегистрСведений.ТаблицыГруппДоступа КАК ТаблицыГруппДоступаПроверкаПрава + ГДЕ + ТаблицыГруппДоступаПроверкаПрава.ГруппаДоступа = ГруппыДоступа.Ссылка + И ТИПЗНАЧЕНИЯ(ТаблицыГруппДоступаПроверкаПрава.ТипТаблицы) = ТИПЗНАЧЕНИЯ(#Параметр(10)) + #Если Не "#Параметр(9)" = "ПравоЧтения" #Тогда + И ТаблицыГруппДоступаПроверкаПрава.ПравоИзменение + #КонецЕсли + ) +#ИначеЕсли "#Параметр(9)" = "ПравоЧтенияПоИдентификатору" Или "#Параметр(9)" = "ПравоИзмененияПоИдентификатору" #Тогда + ИСТИНА В + ( // Проверка права пользователя на таблицу, идентификатор которой указан в Значении, установленном в поле. + ВЫБРАТЬ ПЕРВЫЕ 1 ИСТИНА + ИЗ РегистрСведений.ТаблицыГруппДоступа КАК ТаблицыГруппДоступаПроверкаПрава + ГДЕ + ТаблицыГруппДоступаПроверкаПрава.ГруппаДоступа = ГруппыДоступа.Ссылка + И ТаблицыГруппДоступаПроверкаПрава.Таблица = #Параметр(10) + #Если Не "#Параметр(9)" = "ПравоЧтенияПоИдентификатору" #Тогда + И ТаблицыГруппДоступаПроверкаПрава.ПравоИзменение + #КонецЕсли + ) +#ИначеЕсли Не &ОграничениеДоступаНаУровнеЗаписейИспользуется #Тогда + ИСТИНА // Группа параметров отключена. +#ИначеЕсли "#Параметр(9)" = "НастройкиПрав" #Тогда + + ( + ИСТИНА В // Проверка, что пользователю или какой-нибудь группе пользователя право разрешено + ( + ВЫБРАТЬ ПЕРВЫЕ 1 ИСТИНА + ИЗ РегистрСведений.НастройкиПравОбъектов КАК НастройкиПрав + ВНУТРЕННЕЕ СОЕДИНЕНИЕ РегистрСведений.НаследованиеНастроекПравОбъектов КАК НаследованиеНастроек + ПО + НаследованиеНастроек.Объект = #Параметр(10) + И НастройкиПрав.Объект = НаследованиеНастроек.Родитель + #Если #ИмяТекущегоПраваДоступа = "Чтение" #Тогда + И НаследованиеНастроек.УровеньИспользования < НастройкиПрав.УровеньРазрешенияЧтения + #Иначе + #Если СтрСодержит(&ТаблицыСОтдельнымиНастройкамиПрав, "|#Параметр(1);") #Тогда + И НастройкиПрав.Таблица = СвойстваТекущейТаблицы.Ссылка + #Иначе + И НастройкиПрав.Таблица = ЗНАЧЕНИЕ(Справочник.ИдентификаторыОбъектовМетаданных.ПустаяСсылка) + #КонецЕсли + И НаследованиеНастроек.УровеньИспользования < НастройкиПрав.УровеньРазрешенияИзменения + #КонецЕсли + ВНУТРЕННЕЕ СОЕДИНЕНИЕ РегистрСведений.СоставыГруппПользователей КАК СоставыГруппПользователей + ПО + СоставыГруппПользователей.Пользователь = &АвторизованныйПользователь + И СоставыГруппПользователей.ГруппаПользователей = НастройкиПрав.Пользователь + ) + И НЕ ЛОЖЬ В // Проверка, что пользователю или какой-нибудь группе пользователя право запрещено. + ( + ВЫБРАТЬ ПЕРВЫЕ 1 ЛОЖЬ + ИЗ РегистрСведений.НастройкиПравОбъектов КАК НастройкиПрав + ВНУТРЕННЕЕ СОЕДИНЕНИЕ РегистрСведений.НаследованиеНастроекПравОбъектов КАК НаследованиеНастроек + ПО + НаследованиеНастроек.Объект = #Параметр(10) + И НастройкиПрав.Объект = НаследованиеНастроек.Родитель + #Если #ИмяТекущегоПраваДоступа = "Чтение" #Тогда + И НаследованиеНастроек.УровеньИспользования < НастройкиПрав.УровеньЗапрещенияЧтения + #Иначе + #Если СтрСодержит(&ТаблицыСОтдельнымиНастройкамиПрав, "|#Параметр(1);") #Тогда + И НастройкиПрав.Таблица = СвойстваТекущейТаблицы.Ссылка + #Иначе + И НастройкиПрав.Таблица = ЗНАЧЕНИЕ(Справочник.ИдентификаторыОбъектовМетаданных.ПустаяСсылка) + #КонецЕсли + И НаследованиеНастроек.УровеньИспользования < НастройкиПрав.УровеньЗапрещенияИзменения + #КонецЕсли + ВНУТРЕННЕЕ СОЕДИНЕНИЕ РегистрСведений.СоставыГруппПользователей КАК СоставыГруппПользователей + ПО + СоставыГруппПользователей.Пользователь = &АвторизованныйПользователь + И СоставыГруппПользователей.ГруппаПользователей = НастройкиПрав.Пользователь + ) + ) +#ИначеЕсли Не СтрСодержит(&ВсеВидыДоступаКромеСпециальных, ",#Параметр(9),") #Тогда + // Когда параметр задан неверно, вставляется строка, чтобы вызвать ошибку сборки ограничения доступа. + #Если СтрСодержит("#Параметр(9)", ",") #Тогда + НеверныйВидДоступа: "#Параметр(9)" - "Список имен видов доступа не найден" + #Иначе + НеверныйВидДоступа: "#Параметр(9)" - "Имя вида доступа не найдено" + #КонецЕсли +#ИначеЕсли &ВидыДоступаСОтключеннымИспользованием <> "Все" + И Не СтрСодержит(&ВидыДоступаСОтключеннымИспользованием, ",#Параметр(9),") #Тогда + + ( + ЕСТЬNULL(#Параметр(10), НЕОПРЕДЕЛЕНО) <> НЕОПРЕДЕЛЕНО + И + #Если (Не СтрСодержит(&ВидыДоступаСОтключеннымИспользованием, ",Пользователи,") И СтрСодержит(",#Параметр(9),", ",Пользователи,")) + Или (Не СтрСодержит(&ВидыДоступаСОтключеннымИспользованием, ",ВнешниеПользователи,") И СтрСодержит(",#Параметр(9),", ",ВнешниеПользователи,")) #Тогда + НЕ + ( + НЕ ИСТИНА В + ( + ВЫБРАТЬ ПЕРВЫЕ 1 ИСТИНА + ИЗ РегистрСведений.ГруппыЗначенийДоступа КАК ГруппыЗначенийДоступа + ГДЕ + ГруппыЗначенийДоступа.ЗначениеДоступа = #Параметр(10) + И ГруппыЗначенийДоступа.ГруппаЗначенийДоступа = &АвторизованныйПользователь + ) + И НЕ + #Иначе + ( + #КонецЕсли + ВЫБОР + КОГДА ИСТИНА В + ( + #Если СтрСодержит(&ВидыДоступаБезГруппДляЗначенияДоступа, ",#Параметр(9),") #Тогда + ВЫБРАТЬ ПЕРВЫЕ 1 ИСТИНА + ИЗ РегистрСведений.ЗначенияГруппДоступа КАК Значения + ГДЕ + Значения.ГруппаДоступа = ГруппыДоступа.Ссылка + И Значения.ЗначениеДоступа = #Параметр(10) + #ИначеЕсли "#Параметр(10)" = "Т.Ссылка" + И "#Параметр(9)" <> "Пользователи" + И "#Параметр(9)" <> "ВнешниеПользователи" #Тогда + #Если СтрСодержит("#Параметр(9)", ",") #Тогда + // Когда параметр задан неверно, вставляется строка, чтобы вызвать ошибку сборки ограничения доступа. + НеверныйВидДоступа: "#Параметр(9)" - "При проверке таблицы значения доступа можно указывать только один вид доступа" + #ИначеЕсли СтрСодержит(&ВидыДоступаСОднойГруппойДляЗначенияДоступа, ",#Параметр(9),") #Тогда + ВЫБРАТЬ ПЕРВЫЕ 1 ИСТИНА + ИЗ РегистрСведений.ЗначенияГруппДоступа КАК Значения + ГДЕ + Значения.ГруппаДоступа = ГруппыДоступа.Ссылка + И Значения.ЗначениеДоступа = Т.ГруппаДоступа + #Иначе // Значения доступа, для которых можно указать несколько групп значений доступа. + ВЫБРАТЬ ПЕРВЫЕ 1 ИСТИНА + ИЗ РегистрСведений.ЗначенияГруппДоступа КАК Значения + ВНУТРЕННЕЕ СОЕДИНЕНИЕ #Параметр(1).ГруппыДоступа КАК ГруппыЗначений + ПО + Значения.ГруппаДоступа = ГруппыДоступа.Ссылка + И Значения.ЗначениеДоступа = ГруппыЗначений.ГруппаДоступа + И ГруппыЗначений.Ссылка = #Параметр(10) + #КонецЕсли + #Иначе + ВЫБРАТЬ ПЕРВЫЕ 1 ИСТИНА + ИЗ РегистрСведений.ЗначенияГруппДоступа КАК Значения + ВНУТРЕННЕЕ СОЕДИНЕНИЕ РегистрСведений.ГруппыЗначенийДоступа КАК ГруппыЗначений + ПО + Значения.ГруппаДоступа = ГруппыДоступа.Ссылка + И Значения.ЗначениеДоступа = ГруппыЗначений.ГруппаЗначенийДоступа + И ГруппыЗначений.ЗначениеДоступа = #Параметр(10) + #КонецЕсли + ) + ТОГДА ИСТИНА + ИНАЧЕ ЛОЖЬ + КОНЕЦ + = + ВЫБОР + КОГДА ИСТИНА В + ( + ВЫБРАТЬ ПЕРВЫЕ 1 ИСТИНА + ИЗ РегистрСведений.ЗначенияГруппДоступаПоУмолчанию КАК ЗначенияПоУмолчанию + ГДЕ + ЗначенияПоУмолчанию.ГруппаДоступа = ГруппыДоступа.Ссылка + И ТИПЗНАЧЕНИЯ(ЗначенияПоУмолчанию.ТипЗначенийДоступа) = ТИПЗНАЧЕНИЯ(#Параметр(10)) + И ЗначенияПоУмолчанию.ВсеРазрешены = ЛОЖЬ + ) + ТОГДА ИСТИНА + ИНАЧЕ ЛОЖЬ + КОНЕЦ + ) + ) +#Иначе + ЕСТЬNULL(#Параметр(10), НЕОПРЕДЕЛЕНО) <> НЕОПРЕДЕЛЕНО +#КонецЕсли + + #Параметр(11) // [)[)][)]...] [ИЛИ|И] [([(][(]...] оператор И/ИЛИ с/без скобок. + +//// Проверка значения поля группы параметров 3. +#Если "#Параметр(12)" = "" И "#Параметр(13)" = "" #Тогда + // Группа параметров не используется. +#ИначеЕсли &ОграничениеДоступаНаУровнеЗаписейИспользуется И ("#Параметр(12)" = "Условие" Или "#Параметр(12)" = "") #Тогда + // Когда имя вида доступа "Условие" (или ""), тогда вместо имени поля задано условие. + ( #Параметр(13) ) +#ИначеЕсли "#Параметр(12)" = "ПравоЧтения" Или "#Параметр(12)" = "ПравоИзменения" #Тогда + #Параметр(13) <> НЕОПРЕДЕЛЕНО + И ИСТИНА В + ( // Проверка права пользователя на таблицу Значения, установленного в поле. + ВЫБРАТЬ ПЕРВЫЕ 1 ИСТИНА + ИЗ РегистрСведений.ТаблицыГруппДоступа КАК ТаблицыГруппДоступаПроверкаПрава + ГДЕ + ТаблицыГруппДоступаПроверкаПрава.ГруппаДоступа = ГруппыДоступа.Ссылка + И ТИПЗНАЧЕНИЯ(ТаблицыГруппДоступаПроверкаПрава.ТипТаблицы) = ТИПЗНАЧЕНИЯ(#Параметр(13)) + #Если Не "#Параметр(12)" = "ПравоЧтения" #Тогда + И ТаблицыГруппДоступаПроверкаПрава.ПравоИзменение + #КонецЕсли + ) +#ИначеЕсли "#Параметр(12)" = "ПравоЧтенияПоИдентификатору" Или "#Параметр(12)" = "ПравоИзмененияПоИдентификатору" #Тогда + ИСТИНА В + ( // Проверка права пользователя на таблицу, идентификатор которой указан в Значении, установленном в поле. + ВЫБРАТЬ ПЕРВЫЕ 1 ИСТИНА + ИЗ РегистрСведений.ТаблицыГруппДоступа КАК ТаблицыГруппДоступаПроверкаПрава + ГДЕ + ТаблицыГруппДоступаПроверкаПрава.ГруппаДоступа = ГруппыДоступа.Ссылка + И ТаблицыГруппДоступаПроверкаПрава.Таблица = #Параметр(13) + #Если Не "#Параметр(12)" = "ПравоЧтенияПоИдентификатору" #Тогда + И ТаблицыГруппДоступаПроверкаПрава.ПравоИзменение + #КонецЕсли + ) +#ИначеЕсли Не &ОграничениеДоступаНаУровнеЗаписейИспользуется #Тогда + ИСТИНА // Группа параметров отключена. +#ИначеЕсли "#Параметр(12)" = "НастройкиПрав" #Тогда + + ( + ИСТИНА В // Проверка, что пользователю или какой-нибудь группе пользователя право разрешено + ( + ВЫБРАТЬ ПЕРВЫЕ 1 ИСТИНА + ИЗ РегистрСведений.НастройкиПравОбъектов КАК НастройкиПрав + ВНУТРЕННЕЕ СОЕДИНЕНИЕ РегистрСведений.НаследованиеНастроекПравОбъектов КАК НаследованиеНастроек + ПО + НаследованиеНастроек.Объект = #Параметр(13) + И НастройкиПрав.Объект = НаследованиеНастроек.Родитель + #Если #ИмяТекущегоПраваДоступа = "Чтение" #Тогда + И НаследованиеНастроек.УровеньИспользования < НастройкиПрав.УровеньРазрешенияЧтения + #Иначе + #Если СтрСодержит(&ТаблицыСОтдельнымиНастройкамиПрав, "|#Параметр(1);") #Тогда + И НастройкиПрав.Таблица = СвойстваТекущейТаблицы.Ссылка + #Иначе + И НастройкиПрав.Таблица = ЗНАЧЕНИЕ(Справочник.ИдентификаторыОбъектовМетаданных.ПустаяСсылка) + #КонецЕсли + И НаследованиеНастроек.УровеньИспользования < НастройкиПрав.УровеньРазрешенияИзменения + #КонецЕсли + ВНУТРЕННЕЕ СОЕДИНЕНИЕ РегистрСведений.СоставыГруппПользователей КАК СоставыГруппПользователей + ПО + СоставыГруппПользователей.Пользователь = &АвторизованныйПользователь + И СоставыГруппПользователей.ГруппаПользователей = НастройкиПрав.Пользователь + ) + И НЕ ЛОЖЬ В // Проверка, что пользователю или какой-нибудь группе пользователя право запрещено. + ( + ВЫБРАТЬ ПЕРВЫЕ 1 ЛОЖЬ + ИЗ РегистрСведений.НастройкиПравОбъектов КАК НастройкиПрав + ВНУТРЕННЕЕ СОЕДИНЕНИЕ РегистрСведений.НаследованиеНастроекПравОбъектов КАК НаследованиеНастроек + ПО + НаследованиеНастроек.Объект = #Параметр(13) + И НастройкиПрав.Объект = НаследованиеНастроек.Родитель + #Если #ИмяТекущегоПраваДоступа = "Чтение" #Тогда + И НаследованиеНастроек.УровеньИспользования < НастройкиПрав.УровеньЗапрещенияЧтения + #Иначе + #Если СтрСодержит(&ТаблицыСОтдельнымиНастройкамиПрав, "|#Параметр(1);") #Тогда + И НастройкиПрав.Таблица = СвойстваТекущейТаблицы.Ссылка + #Иначе + И НастройкиПрав.Таблица = ЗНАЧЕНИЕ(Справочник.ИдентификаторыОбъектовМетаданных.ПустаяСсылка) + #КонецЕсли + И НаследованиеНастроек.УровеньИспользования < НастройкиПрав.УровеньЗапрещенияИзменения + #КонецЕсли + ВНУТРЕННЕЕ СОЕДИНЕНИЕ РегистрСведений.СоставыГруппПользователей КАК СоставыГруппПользователей + ПО + СоставыГруппПользователей.Пользователь = &АвторизованныйПользователь + И СоставыГруппПользователей.ГруппаПользователей = НастройкиПрав.Пользователь + ) + ) +#ИначеЕсли Не СтрСодержит(&ВсеВидыДоступаКромеСпециальных, ",#Параметр(12),") #Тогда + // Когда параметр задан неверно, вставляется строка, чтобы вызвать ошибку сборки ограничения доступа. + #Если СтрСодержит("#Параметр(12)", ",") #Тогда + НеверныйВидДоступа: "#Параметр(12)" - "Список имен видов доступа не найден" + #Иначе + НеверныйВидДоступа: "#Параметр(12)" - "Имя вида доступа не найдено" + #КонецЕсли +#ИначеЕсли &ВидыДоступаСОтключеннымИспользованием <> "Все" + И Не СтрСодержит(&ВидыДоступаСОтключеннымИспользованием, ",#Параметр(12),") #Тогда + + ( + ЕСТЬNULL(#Параметр(13), НЕОПРЕДЕЛЕНО) <> НЕОПРЕДЕЛЕНО + И + #Если (Не СтрСодержит(&ВидыДоступаСОтключеннымИспользованием, ",Пользователи,") И СтрСодержит(",#Параметр(12),", ",Пользователи,")) + Или (Не СтрСодержит(&ВидыДоступаСОтключеннымИспользованием, ",ВнешниеПользователи,") И СтрСодержит(",#Параметр(12),", ",ВнешниеПользователи,")) #Тогда + НЕ + ( + НЕ ИСТИНА В + ( + ВЫБРАТЬ ПЕРВЫЕ 1 ИСТИНА + ИЗ РегистрСведений.ГруппыЗначенийДоступа КАК ГруппыЗначенийДоступа + ГДЕ + ГруппыЗначенийДоступа.ЗначениеДоступа = #Параметр(13) + И ГруппыЗначенийДоступа.ГруппаЗначенийДоступа = &АвторизованныйПользователь + ) + И НЕ + #Иначе + ( + #КонецЕсли + ВЫБОР + КОГДА ИСТИНА В + ( + #Если СтрСодержит(&ВидыДоступаБезГруппДляЗначенияДоступа, ",#Параметр(12),") #Тогда + ВЫБРАТЬ ПЕРВЫЕ 1 ИСТИНА + ИЗ РегистрСведений.ЗначенияГруппДоступа КАК Значения + ГДЕ + Значения.ГруппаДоступа = ГруппыДоступа.Ссылка + И Значения.ЗначениеДоступа = #Параметр(13) + #ИначеЕсли "#Параметр(13)" = "Т.Ссылка" + И "#Параметр(12)" <> "Пользователи" + И "#Параметр(12)" <> "ВнешниеПользователи" #Тогда + #Если СтрСодержит("#Параметр(12)", ",") #Тогда + // Когда параметр задан неверно, вставляется строка, чтобы вызвать ошибку сборки ограничения доступа. + НеверныйВидДоступа: "#Параметр(12)" - "При проверке таблицы значения доступа можно указывать только один вид доступа" + #ИначеЕсли СтрСодержит(&ВидыДоступаСОднойГруппойДляЗначенияДоступа, ",#Параметр(12),") #Тогда + ВЫБРАТЬ ПЕРВЫЕ 1 ИСТИНА + ИЗ РегистрСведений.ЗначенияГруппДоступа КАК Значения + ГДЕ + Значения.ГруппаДоступа = ГруппыДоступа.Ссылка + И Значения.ЗначениеДоступа = Т.ГруппаДоступа + #Иначе // Значения доступа, для которых можно указать несколько групп значений доступа. + ВЫБРАТЬ ПЕРВЫЕ 1 ИСТИНА + ИЗ РегистрСведений.ЗначенияГруппДоступа КАК Значения + ВНУТРЕННЕЕ СОЕДИНЕНИЕ #Параметр(1).ГруппыДоступа КАК ГруппыЗначений + ПО + Значения.ГруппаДоступа = ГруппыДоступа.Ссылка + И Значения.ЗначениеДоступа = ГруппыЗначений.ГруппаДоступа + И ГруппыЗначений.Ссылка = #Параметр(13) + #КонецЕсли + #Иначе + ВЫБРАТЬ ПЕРВЫЕ 1 ИСТИНА + ИЗ РегистрСведений.ЗначенияГруппДоступа КАК Значения + ВНУТРЕННЕЕ СОЕДИНЕНИЕ РегистрСведений.ГруппыЗначенийДоступа КАК ГруппыЗначений + ПО + Значения.ГруппаДоступа = ГруппыДоступа.Ссылка + И Значения.ЗначениеДоступа = ГруппыЗначений.ГруппаЗначенийДоступа + И ГруппыЗначений.ЗначениеДоступа = #Параметр(13) + #КонецЕсли + ) + ТОГДА ИСТИНА + ИНАЧЕ ЛОЖЬ + КОНЕЦ + = + ВЫБОР + КОГДА ИСТИНА В + ( + ВЫБРАТЬ ПЕРВЫЕ 1 ИСТИНА + ИЗ РегистрСведений.ЗначенияГруппДоступаПоУмолчанию КАК ЗначенияПоУмолчанию + ГДЕ + ЗначенияПоУмолчанию.ГруппаДоступа = ГруппыДоступа.Ссылка + И ТИПЗНАЧЕНИЯ(ЗначенияПоУмолчанию.ТипЗначенийДоступа) = ТИПЗНАЧЕНИЯ(#Параметр(13)) + И ЗначенияПоУмолчанию.ВсеРазрешены = ЛОЖЬ + ) + ТОГДА ИСТИНА + ИНАЧЕ ЛОЖЬ + КОНЕЦ + ) + ) +#Иначе + ЕСТЬNULL(#Параметр(13), НЕОПРЕДЕЛЕНО) <> НЕОПРЕДЕЛЕНО +#КонецЕсли + + #Параметр(14) // [)[)][)]...] [ИЛИ|И] [([(][(]...] оператор И/ИЛИ с/без скобок. + +//// Проверка значения поля группы параметров 4. +#Если "#Параметр(15)" = "" И "#Параметр(16)" = "" #Тогда + // Группа параметров не используется. +#ИначеЕсли &ОграничениеДоступаНаУровнеЗаписейИспользуется И ("#Параметр(15)" = "Условие" Или "#Параметр(15)" = "") #Тогда + // Когда имя вида доступа "Условие" (или ""), тогда вместо имени поля задано условие. + ( #Параметр(16) ) +#ИначеЕсли "#Параметр(15)" = "ПравоЧтения" Или "#Параметр(15)" = "ПравоИзменения" #Тогда + #Параметр(16) <> НЕОПРЕДЕЛЕНО + И ИСТИНА В + ( // Проверка права пользователя на таблицу Значения, установленного в поле. + ВЫБРАТЬ ПЕРВЫЕ 1 ИСТИНА + ИЗ РегистрСведений.ТаблицыГруппДоступа КАК ТаблицыГруппДоступаПроверкаПрава + ГДЕ + ТаблицыГруппДоступаПроверкаПрава.ГруппаДоступа = ГруппыДоступа.Ссылка + И ТИПЗНАЧЕНИЯ(ТаблицыГруппДоступаПроверкаПрава.ТипТаблицы) = ТИПЗНАЧЕНИЯ(#Параметр(16)) + #Если Не "#Параметр(15)" = "ПравоЧтения" #Тогда + И ТаблицыГруппДоступаПроверкаПрава.ПравоИзменение + #КонецЕсли + ) +#ИначеЕсли "#Параметр(15)" = "ПравоЧтенияПоИдентификатору" Или "#Параметр(15)" = "ПравоИзмененияПоИдентификатору" #Тогда + ИСТИНА В + ( // Проверка права пользователя на таблицу, идентификатор которой указан в Значении, установленном в поле. + ВЫБРАТЬ ПЕРВЫЕ 1 ИСТИНА + ИЗ РегистрСведений.ТаблицыГруппДоступа КАК ТаблицыГруппДоступаПроверкаПрава + ГДЕ + ТаблицыГруппДоступаПроверкаПрава.ГруппаДоступа = ГруппыДоступа.Ссылка + И ТаблицыГруппДоступаПроверкаПрава.Таблица = #Параметр(16) + #Если Не "#Параметр(15)" = "ПравоЧтенияПоИдентификатору" #Тогда + И ТаблицыГруппДоступаПроверкаПрава.ПравоИзменение + #КонецЕсли + ) +#ИначеЕсли Не &ОграничениеДоступаНаУровнеЗаписейИспользуется #Тогда + ИСТИНА // Группа параметров отключена. +#ИначеЕсли "#Параметр(15)" = "НастройкиПрав" #Тогда + + ( + ИСТИНА В // Проверка, что пользователю или какой-нибудь группе пользователя право разрешено + ( + ВЫБРАТЬ ПЕРВЫЕ 1 ИСТИНА + ИЗ РегистрСведений.НастройкиПравОбъектов КАК НастройкиПрав + ВНУТРЕННЕЕ СОЕДИНЕНИЕ РегистрСведений.НаследованиеНастроекПравОбъектов КАК НаследованиеНастроек + ПО + НаследованиеНастроек.Объект = #Параметр(16) + И НастройкиПрав.Объект = НаследованиеНастроек.Родитель + #Если #ИмяТекущегоПраваДоступа = "Чтение" #Тогда + И НаследованиеНастроек.УровеньИспользования < НастройкиПрав.УровеньРазрешенияЧтения + #Иначе + #Если СтрСодержит(&ТаблицыСОтдельнымиНастройкамиПрав, "|#Параметр(1);") #Тогда + И НастройкиПрав.Таблица = СвойстваТекущейТаблицы.Ссылка + #Иначе + И НастройкиПрав.Таблица = ЗНАЧЕНИЕ(Справочник.ИдентификаторыОбъектовМетаданных.ПустаяСсылка) + #КонецЕсли + И НаследованиеНастроек.УровеньИспользования < НастройкиПрав.УровеньРазрешенияИзменения + #КонецЕсли + ВНУТРЕННЕЕ СОЕДИНЕНИЕ РегистрСведений.СоставыГруппПользователей КАК СоставыГруппПользователей + ПО + СоставыГруппПользователей.Пользователь = &АвторизованныйПользователь + И СоставыГруппПользователей.ГруппаПользователей = НастройкиПрав.Пользователь + ) + И НЕ ЛОЖЬ В // Проверка, что пользователю или какой-нибудь группе пользователя право запрещено. + ( + ВЫБРАТЬ ПЕРВЫЕ 1 ЛОЖЬ + ИЗ РегистрСведений.НастройкиПравОбъектов КАК НастройкиПрав + ВНУТРЕННЕЕ СОЕДИНЕНИЕ РегистрСведений.НаследованиеНастроекПравОбъектов КАК НаследованиеНастроек + ПО + НаследованиеНастроек.Объект = #Параметр(16) + И НастройкиПрав.Объект = НаследованиеНастроек.Родитель + #Если #ИмяТекущегоПраваДоступа = "Чтение" #Тогда + И НаследованиеНастроек.УровеньИспользования < НастройкиПрав.УровеньЗапрещенияЧтения + #Иначе + #Если СтрСодержит(&ТаблицыСОтдельнымиНастройкамиПрав, "|#Параметр(1);") #Тогда + И НастройкиПрав.Таблица = СвойстваТекущейТаблицы.Ссылка + #Иначе + И НастройкиПрав.Таблица = ЗНАЧЕНИЕ(Справочник.ИдентификаторыОбъектовМетаданных.ПустаяСсылка) + #КонецЕсли + И НаследованиеНастроек.УровеньИспользования < НастройкиПрав.УровеньЗапрещенияИзменения + #КонецЕсли + ВНУТРЕННЕЕ СОЕДИНЕНИЕ РегистрСведений.СоставыГруппПользователей КАК СоставыГруппПользователей + ПО + СоставыГруппПользователей.Пользователь = &АвторизованныйПользователь + И СоставыГруппПользователей.ГруппаПользователей = НастройкиПрав.Пользователь + ) + ) +#ИначеЕсли Не СтрСодержит(&ВсеВидыДоступаКромеСпециальных, ",#Параметр(15),") #Тогда + // Когда параметр задан неверно, вставляется строка, чтобы вызвать ошибку сборки ограничения доступа. + #Если СтрСодержит("#Параметр(15)", ",") #Тогда + НеверныйВидДоступа: "#Параметр(15)" - "Список имен видов доступа не найден" + #Иначе + НеверныйВидДоступа: "#Параметр(15)" - "Имя вида доступа не найдено" + #КонецЕсли +#ИначеЕсли &ВидыДоступаСОтключеннымИспользованием <> "Все" + И Не СтрСодержит(&ВидыДоступаСОтключеннымИспользованием, ",#Параметр(15),") #Тогда + + ( + ЕСТЬNULL(#Параметр(16), НЕОПРЕДЕЛЕНО) <> НЕОПРЕДЕЛЕНО + И + #Если (Не СтрСодержит(&ВидыДоступаСОтключеннымИспользованием, ",Пользователи,") И СтрСодержит(",#Параметр(15),", ",Пользователи,")) + Или (Не СтрСодержит(&ВидыДоступаСОтключеннымИспользованием, ",ВнешниеПользователи,") И СтрСодержит(",#Параметр(15),", ",ВнешниеПользователи,")) #Тогда + НЕ + ( + НЕ ИСТИНА В + ( + ВЫБРАТЬ ПЕРВЫЕ 1 ИСТИНА + ИЗ РегистрСведений.ГруппыЗначенийДоступа КАК ГруппыЗначенийДоступа + ГДЕ + ГруппыЗначенийДоступа.ЗначениеДоступа = #Параметр(16) + И ГруппыЗначенийДоступа.ГруппаЗначенийДоступа = &АвторизованныйПользователь + ) + И НЕ + #Иначе + ( + #КонецЕсли + ВЫБОР + КОГДА ИСТИНА В + ( + #Если СтрСодержит(&ВидыДоступаБезГруппДляЗначенияДоступа, ",#Параметр(15),") #Тогда + ВЫБРАТЬ ПЕРВЫЕ 1 ИСТИНА + ИЗ РегистрСведений.ЗначенияГруппДоступа КАК Значения + ГДЕ + Значения.ГруппаДоступа = ГруппыДоступа.Ссылка + И Значения.ЗначениеДоступа = #Параметр(16) + #ИначеЕсли "#Параметр(16)" = "Т.Ссылка" + И "#Параметр(15)" <> "Пользователи" + И "#Параметр(15)" <> "ВнешниеПользователи" #Тогда + #Если СтрСодержит("#Параметр(15)", ",") #Тогда + // Когда параметр задан неверно, вставляется строка, чтобы вызвать ошибку сборки ограничения доступа. + НеверныйВидДоступа: "#Параметр(15)" - "При проверке таблицы значения доступа можно указывать только один вид доступа" + #ИначеЕсли СтрСодержит(&ВидыДоступаСОднойГруппойДляЗначенияДоступа, ",#Параметр(15),") #Тогда + ВЫБРАТЬ ПЕРВЫЕ 1 ИСТИНА + ИЗ РегистрСведений.ЗначенияГруппДоступа КАК Значения + ГДЕ + Значения.ГруппаДоступа = ГруппыДоступа.Ссылка + И Значения.ЗначениеДоступа = Т.ГруппаДоступа + #Иначе // Значения доступа, для которых можно указать несколько групп значений доступа. + ВЫБРАТЬ ПЕРВЫЕ 1 ИСТИНА + ИЗ РегистрСведений.ЗначенияГруппДоступа КАК Значения + ВНУТРЕННЕЕ СОЕДИНЕНИЕ #Параметр(1).ГруппыДоступа КАК ГруппыЗначений + ПО + Значения.ГруппаДоступа = ГруппыДоступа.Ссылка + И Значения.ЗначениеДоступа = ГруппыЗначений.ГруппаДоступа + И ГруппыЗначений.Ссылка = #Параметр(16) + #КонецЕсли + #Иначе + ВЫБРАТЬ ПЕРВЫЕ 1 ИСТИНА + ИЗ РегистрСведений.ЗначенияГруппДоступа КАК Значения + ВНУТРЕННЕЕ СОЕДИНЕНИЕ РегистрСведений.ГруппыЗначенийДоступа КАК ГруппыЗначений + ПО + Значения.ГруппаДоступа = ГруппыДоступа.Ссылка + И Значения.ЗначениеДоступа = ГруппыЗначений.ГруппаЗначенийДоступа + И ГруппыЗначений.ЗначениеДоступа = #Параметр(16) + #КонецЕсли + ) + ТОГДА ИСТИНА + ИНАЧЕ ЛОЖЬ + КОНЕЦ + = + ВЫБОР + КОГДА ИСТИНА В + ( + ВЫБРАТЬ ПЕРВЫЕ 1 ИСТИНА + ИЗ РегистрСведений.ЗначенияГруппДоступаПоУмолчанию КАК ЗначенияПоУмолчанию + ГДЕ + ЗначенияПоУмолчанию.ГруппаДоступа = ГруппыДоступа.Ссылка + И ТИПЗНАЧЕНИЯ(ЗначенияПоУмолчанию.ТипЗначенийДоступа) = ТИПЗНАЧЕНИЯ(#Параметр(16)) + И ЗначенияПоУмолчанию.ВсеРазрешены = ЛОЖЬ + ) + ТОГДА ИСТИНА + ИНАЧЕ ЛОЖЬ + КОНЕЦ + ) + ) +#Иначе + ЕСТЬNULL(#Параметр(16), НЕОПРЕДЕЛЕНО) <> НЕОПРЕДЕЛЕНО +#КонецЕсли + + #Параметр(17) // [)[)][)]...] [ИЛИ|И] [([(][(]...] оператор И/ИЛИ с/без скобок. + +//// Проверка значения поля группы параметров 5. +#Если "#Параметр(18)" = "" И "#Параметр(19)" = "" #Тогда + // Группа параметров не используется. +#ИначеЕсли &ОграничениеДоступаНаУровнеЗаписейИспользуется И ("#Параметр(18)" = "Условие" Или "#Параметр(18)" = "") #Тогда + // Когда имя вида доступа "Условие" (или ""), тогда вместо имени поля задано условие. + ( #Параметр(19) ) +#ИначеЕсли "#Параметр(18)" = "ПравоЧтения" Или "#Параметр(18)" = "ПравоИзменения" #Тогда + #Параметр(19) <> НЕОПРЕДЕЛЕНО + И ИСТИНА В + ( // Проверка права пользователя на таблицу Значения, установленного в поле. + ВЫБРАТЬ ПЕРВЫЕ 1 ИСТИНА + ИЗ РегистрСведений.ТаблицыГруппДоступа КАК ТаблицыГруппДоступаПроверкаПрава + ГДЕ + ТаблицыГруппДоступаПроверкаПрава.ГруппаДоступа = ГруппыДоступа.Ссылка + И ТИПЗНАЧЕНИЯ(ТаблицыГруппДоступаПроверкаПрава.ТипТаблицы) = ТИПЗНАЧЕНИЯ(#Параметр(19)) + #Если Не "#Параметр(18)" = "ПравоЧтения" #Тогда + И ТаблицыГруппДоступаПроверкаПрава.ПравоИзменение + #КонецЕсли + ) +#ИначеЕсли "#Параметр(18)" = "ПравоЧтенияПоИдентификатору" Или "#Параметр(18)" = "ПравоИзмененияПоИдентификатору" #Тогда + ИСТИНА В + ( // Проверка права пользователя на таблицу, идентификатор которой указан в Значении, установленном в поле. + ВЫБРАТЬ ПЕРВЫЕ 1 ИСТИНА + ИЗ РегистрСведений.ТаблицыГруппДоступа КАК ТаблицыГруппДоступаПроверкаПрава + ГДЕ + ТаблицыГруппДоступаПроверкаПрава.ГруппаДоступа = ГруппыДоступа.Ссылка + И ТаблицыГруппДоступаПроверкаПрава.Таблица = #Параметр(19) + #Если Не "#Параметр(18)" = "ПравоЧтенияПоИдентификатору" #Тогда + И ТаблицыГруппДоступаПроверкаПрава.ПравоИзменение + #КонецЕсли + ) +#ИначеЕсли Не &ОграничениеДоступаНаУровнеЗаписейИспользуется #Тогда + ИСТИНА // Группа параметров отключена. +#ИначеЕсли "#Параметр(18)" = "НастройкиПрав" #Тогда + + ( + ИСТИНА В // Проверка, что пользователю или какой-нибудь группе пользователя право разрешено + ( + ВЫБРАТЬ ПЕРВЫЕ 1 ИСТИНА + ИЗ РегистрСведений.НастройкиПравОбъектов КАК НастройкиПрав + ВНУТРЕННЕЕ СОЕДИНЕНИЕ РегистрСведений.НаследованиеНастроекПравОбъектов КАК НаследованиеНастроек + ПО + НаследованиеНастроек.Объект = #Параметр(19) + И НастройкиПрав.Объект = НаследованиеНастроек.Родитель + #Если #ИмяТекущегоПраваДоступа = "Чтение" #Тогда + И НаследованиеНастроек.УровеньИспользования < НастройкиПрав.УровеньРазрешенияЧтения + #Иначе + #Если СтрСодержит(&ТаблицыСОтдельнымиНастройкамиПрав, "|#Параметр(1);") #Тогда + И НастройкиПрав.Таблица = СвойстваТекущейТаблицы.Ссылка + #Иначе + И НастройкиПрав.Таблица = ЗНАЧЕНИЕ(Справочник.ИдентификаторыОбъектовМетаданных.ПустаяСсылка) + #КонецЕсли + И НаследованиеНастроек.УровеньИспользования < НастройкиПрав.УровеньРазрешенияИзменения + #КонецЕсли + ВНУТРЕННЕЕ СОЕДИНЕНИЕ РегистрСведений.СоставыГруппПользователей КАК СоставыГруппПользователей + ПО + СоставыГруппПользователей.Пользователь = &АвторизованныйПользователь + И СоставыГруппПользователей.ГруппаПользователей = НастройкиПрав.Пользователь + ) + И НЕ ЛОЖЬ В // Проверка, что пользователю или какой-нибудь группе пользователя право запрещено. + ( + ВЫБРАТЬ ПЕРВЫЕ 1 ЛОЖЬ + ИЗ РегистрСведений.НастройкиПравОбъектов КАК НастройкиПрав + ВНУТРЕННЕЕ СОЕДИНЕНИЕ РегистрСведений.НаследованиеНастроекПравОбъектов КАК НаследованиеНастроек + ПО + НаследованиеНастроек.Объект = #Параметр(19) + И НастройкиПрав.Объект = НаследованиеНастроек.Родитель + #Если #ИмяТекущегоПраваДоступа = "Чтение" #Тогда + И НаследованиеНастроек.УровеньИспользования < НастройкиПрав.УровеньЗапрещенияЧтения + #Иначе + #Если СтрСодержит(&ТаблицыСОтдельнымиНастройкамиПрав, "|#Параметр(1);") #Тогда + И НастройкиПрав.Таблица = СвойстваТекущейТаблицы.Ссылка + #Иначе + И НастройкиПрав.Таблица = ЗНАЧЕНИЕ(Справочник.ИдентификаторыОбъектовМетаданных.ПустаяСсылка) + #КонецЕсли + И НаследованиеНастроек.УровеньИспользования < НастройкиПрав.УровеньЗапрещенияИзменения + #КонецЕсли + ВНУТРЕННЕЕ СОЕДИНЕНИЕ РегистрСведений.СоставыГруппПользователей КАК СоставыГруппПользователей + ПО + СоставыГруппПользователей.Пользователь = &АвторизованныйПользователь + И СоставыГруппПользователей.ГруппаПользователей = НастройкиПрав.Пользователь + ) + ) +#ИначеЕсли Не СтрСодержит(&ВсеВидыДоступаКромеСпециальных, ",#Параметр(18),") #Тогда + // Когда параметр задан неверно, вставляется строка, чтобы вызвать ошибку сборки ограничения доступа. + #Если СтрСодержит("#Параметр(18)", ",") #Тогда + НеверныйВидДоступа: "#Параметр(18)" - "Список имен видов доступа не найден" + #Иначе + НеверныйВидДоступа: "#Параметр(18)" - "Имя вида доступа не найдено" + #КонецЕсли +#ИначеЕсли &ВидыДоступаСОтключеннымИспользованием <> "Все" + И Не СтрСодержит(&ВидыДоступаСОтключеннымИспользованием, ",#Параметр(18),") #Тогда + + ( + ЕСТЬNULL(#Параметр(19), НЕОПРЕДЕЛЕНО) <> НЕОПРЕДЕЛЕНО + И + #Если (Не СтрСодержит(&ВидыДоступаСОтключеннымИспользованием, ",Пользователи,") И СтрСодержит(",#Параметр(18),", ",Пользователи,")) + Или (Не СтрСодержит(&ВидыДоступаСОтключеннымИспользованием, ",ВнешниеПользователи,") И СтрСодержит(",#Параметр(18),", ",ВнешниеПользователи,")) #Тогда + НЕ + ( + НЕ ИСТИНА В + ( + ВЫБРАТЬ ПЕРВЫЕ 1 ИСТИНА + ИЗ РегистрСведений.ГруппыЗначенийДоступа КАК ГруппыЗначенийДоступа + ГДЕ + ГруппыЗначенийДоступа.ЗначениеДоступа = #Параметр(19) + И ГруппыЗначенийДоступа.ГруппаЗначенийДоступа = &АвторизованныйПользователь + ) + И НЕ + #Иначе + ( + #КонецЕсли + ВЫБОР + КОГДА ИСТИНА В + ( + #Если СтрСодержит(&ВидыДоступаБезГруппДляЗначенияДоступа, ",#Параметр(18),") #Тогда + ВЫБРАТЬ ПЕРВЫЕ 1 ИСТИНА + ИЗ РегистрСведений.ЗначенияГруппДоступа КАК Значения + ГДЕ + Значения.ГруппаДоступа = ГруппыДоступа.Ссылка + И Значения.ЗначениеДоступа = #Параметр(19) + #ИначеЕсли "#Параметр(19)" = "Т.Ссылка" + И "#Параметр(18)" <> "Пользователи" + И "#Параметр(18)" <> "ВнешниеПользователи" #Тогда + #Если СтрСодержит("#Параметр(18)", ",") #Тогда + // Когда параметр задан неверно, вставляется строка, чтобы вызвать ошибку сборки ограничения доступа. + НеверныйВидДоступа: "#Параметр(18)" - "При проверке таблицы значения доступа можно указывать только один вид доступа" + #ИначеЕсли СтрСодержит(&ВидыДоступаСОднойГруппойДляЗначенияДоступа, ",#Параметр(18),") #Тогда + ВЫБРАТЬ ПЕРВЫЕ 1 ИСТИНА + ИЗ РегистрСведений.ЗначенияГруппДоступа КАК Значения + ГДЕ + Значения.ГруппаДоступа = ГруппыДоступа.Ссылка + И Значения.ЗначениеДоступа = Т.ГруппаДоступа + #Иначе // Значения доступа, для которых можно указать несколько групп значений доступа. + ВЫБРАТЬ ПЕРВЫЕ 1 ИСТИНА + ИЗ РегистрСведений.ЗначенияГруппДоступа КАК Значения + ВНУТРЕННЕЕ СОЕДИНЕНИЕ #Параметр(1).ГруппыДоступа КАК ГруппыЗначений + ПО + Значения.ГруппаДоступа = ГруппыДоступа.Ссылка + И Значения.ЗначениеДоступа = ГруппыЗначений.ГруппаДоступа + И ГруппыЗначений.Ссылка = #Параметр(19) + #КонецЕсли + #Иначе + ВЫБРАТЬ ПЕРВЫЕ 1 ИСТИНА + ИЗ РегистрСведений.ЗначенияГруппДоступа КАК Значения + ВНУТРЕННЕЕ СОЕДИНЕНИЕ РегистрСведений.ГруппыЗначенийДоступа КАК ГруппыЗначений + ПО + Значения.ГруппаДоступа = ГруппыДоступа.Ссылка + И Значения.ЗначениеДоступа = ГруппыЗначений.ГруппаЗначенийДоступа + И ГруппыЗначений.ЗначениеДоступа = #Параметр(19) + #КонецЕсли + ) + ТОГДА ИСТИНА + ИНАЧЕ ЛОЖЬ + КОНЕЦ + = + ВЫБОР + КОГДА ИСТИНА В + ( + ВЫБРАТЬ ПЕРВЫЕ 1 ИСТИНА + ИЗ РегистрСведений.ЗначенияГруппДоступаПоУмолчанию КАК ЗначенияПоУмолчанию + ГДЕ + ЗначенияПоУмолчанию.ГруппаДоступа = ГруппыДоступа.Ссылка + И ТИПЗНАЧЕНИЯ(ЗначенияПоУмолчанию.ТипЗначенийДоступа) = ТИПЗНАЧЕНИЯ(#Параметр(19)) + И ЗначенияПоУмолчанию.ВсеРазрешены = ЛОЖЬ + ) + ТОГДА ИСТИНА + ИНАЧЕ ЛОЖЬ + КОНЕЦ + ) + ) +#Иначе + ЕСТЬNULL(#Параметр(19), НЕОПРЕДЕЛЕНО) <> НЕОПРЕДЕЛЕНО +#КонецЕсли + + #Параметр(20) // [)[)][)]...] [ИЛИ|И] [([(][(]...] оператор И/ИЛИ с/без скобок. + +//// Проверка значения поля группы параметров 6. +#Если "#Параметр(21)" = "" И "#Параметр(22)" = "" #Тогда + // Группа параметров не используется. +#ИначеЕсли &ОграничениеДоступаНаУровнеЗаписейИспользуется И ("#Параметр(21)" = "Условие" Или "#Параметр(21)" = "") #Тогда + // Когда имя вида доступа "Условие" (или ""), тогда вместо имени поля задано условие. + ( #Параметр(22) ) +#ИначеЕсли "#Параметр(21)" = "ПравоЧтения" Или "#Параметр(21)" = "ПравоИзменения" #Тогда + #Параметр(22) <> НЕОПРЕДЕЛЕНО + И ИСТИНА В + ( // Проверка права пользователя на таблицу Значения, установленного в поле. + ВЫБРАТЬ ПЕРВЫЕ 1 ИСТИНА + ИЗ РегистрСведений.ТаблицыГруппДоступа КАК ТаблицыГруппДоступаПроверкаПрава + ГДЕ + ТаблицыГруппДоступаПроверкаПрава.ГруппаДоступа = ГруппыДоступа.Ссылка + И ТИПЗНАЧЕНИЯ(ТаблицыГруппДоступаПроверкаПрава.ТипТаблицы) = ТИПЗНАЧЕНИЯ(#Параметр(22)) + #Если Не "#Параметр(21)" = "ПравоЧтения" #Тогда + И ТаблицыГруппДоступаПроверкаПрава.ПравоИзменение + #КонецЕсли + ) +#ИначеЕсли "#Параметр(21)" = "ПравоЧтенияПоИдентификатору" Или "#Параметр(21)" = "ПравоИзмененияПоИдентификатору" #Тогда + ИСТИНА В + ( // Проверка права пользователя на таблицу, идентификатор которой указан в Значении, установленном в поле. + ВЫБРАТЬ ПЕРВЫЕ 1 ИСТИНА + ИЗ РегистрСведений.ТаблицыГруппДоступа КАК ТаблицыГруппДоступаПроверкаПрава + ГДЕ + ТаблицыГруппДоступаПроверкаПрава.ГруппаДоступа = ГруппыДоступа.Ссылка + И ТаблицыГруппДоступаПроверкаПрава.Таблица = #Параметр(22) + #Если Не "#Параметр(21)" = "ПравоЧтенияПоИдентификатору" #Тогда + И ТаблицыГруппДоступаПроверкаПрава.ПравоИзменение + #КонецЕсли + ) +#ИначеЕсли Не &ОграничениеДоступаНаУровнеЗаписейИспользуется #Тогда + ИСТИНА // Группа параметров отключена. +#ИначеЕсли "#Параметр(21)" = "НастройкиПрав" #Тогда + + ( + ИСТИНА В // Проверка, что пользователю или какой-нибудь группе пользователя право разрешено + ( + ВЫБРАТЬ ПЕРВЫЕ 1 ИСТИНА + ИЗ РегистрСведений.НастройкиПравОбъектов КАК НастройкиПрав + ВНУТРЕННЕЕ СОЕДИНЕНИЕ РегистрСведений.НаследованиеНастроекПравОбъектов КАК НаследованиеНастроек + ПО + НаследованиеНастроек.Объект = #Параметр(22) + И НастройкиПрав.Объект = НаследованиеНастроек.Родитель + #Если #ИмяТекущегоПраваДоступа = "Чтение" #Тогда + И НаследованиеНастроек.УровеньИспользования < НастройкиПрав.УровеньРазрешенияЧтения + #Иначе + #Если СтрСодержит(&ТаблицыСОтдельнымиНастройкамиПрав, "|#Параметр(1);") #Тогда + И НастройкиПрав.Таблица = СвойстваТекущейТаблицы.Ссылка + #Иначе + И НастройкиПрав.Таблица = ЗНАЧЕНИЕ(Справочник.ИдентификаторыОбъектовМетаданных.ПустаяСсылка) + #КонецЕсли + И НаследованиеНастроек.УровеньИспользования < НастройкиПрав.УровеньРазрешенияИзменения + #КонецЕсли + ВНУТРЕННЕЕ СОЕДИНЕНИЕ РегистрСведений.СоставыГруппПользователей КАК СоставыГруппПользователей + ПО + СоставыГруппПользователей.Пользователь = &АвторизованныйПользователь + И СоставыГруппПользователей.ГруппаПользователей = НастройкиПрав.Пользователь + ) + И НЕ ЛОЖЬ В // Проверка, что пользователю или какой-нибудь группе пользователя право запрещено. + ( + ВЫБРАТЬ ПЕРВЫЕ 1 ЛОЖЬ + ИЗ РегистрСведений.НастройкиПравОбъектов КАК НастройкиПрав + ВНУТРЕННЕЕ СОЕДИНЕНИЕ РегистрСведений.НаследованиеНастроекПравОбъектов КАК НаследованиеНастроек + ПО + НаследованиеНастроек.Объект = #Параметр(22) + И НастройкиПрав.Объект = НаследованиеНастроек.Родитель + #Если #ИмяТекущегоПраваДоступа = "Чтение" #Тогда + И НаследованиеНастроек.УровеньИспользования < НастройкиПрав.УровеньЗапрещенияЧтения + #Иначе + #Если СтрСодержит(&ТаблицыСОтдельнымиНастройкамиПрав, "|#Параметр(1);") #Тогда + И НастройкиПрав.Таблица = СвойстваТекущейТаблицы.Ссылка + #Иначе + И НастройкиПрав.Таблица = ЗНАЧЕНИЕ(Справочник.ИдентификаторыОбъектовМетаданных.ПустаяСсылка) + #КонецЕсли + И НаследованиеНастроек.УровеньИспользования < НастройкиПрав.УровеньЗапрещенияИзменения + #КонецЕсли + ВНУТРЕННЕЕ СОЕДИНЕНИЕ РегистрСведений.СоставыГруппПользователей КАК СоставыГруппПользователей + ПО + СоставыГруппПользователей.Пользователь = &АвторизованныйПользователь + И СоставыГруппПользователей.ГруппаПользователей = НастройкиПрав.Пользователь + ) + ) +#ИначеЕсли Не СтрСодержит(&ВсеВидыДоступаКромеСпециальных, ",#Параметр(21),") #Тогда + // Когда параметр задан неверно, вставляется строка, чтобы вызвать ошибку сборки ограничения доступа. + #Если СтрСодержит("#Параметр(21)", ",") #Тогда + НеверныйВидДоступа: "#Параметр(21)" - "Список имен видов доступа не найден" + #Иначе + НеверныйВидДоступа: "#Параметр(21)" - "Имя вида доступа не найдено" + #КонецЕсли +#ИначеЕсли &ВидыДоступаСОтключеннымИспользованием <> "Все" + И Не СтрСодержит(&ВидыДоступаСОтключеннымИспользованием, ",#Параметр(21),") #Тогда + + ( + ЕСТЬNULL(#Параметр(22), НЕОПРЕДЕЛЕНО) <> НЕОПРЕДЕЛЕНО + И + #Если (Не СтрСодержит(&ВидыДоступаСОтключеннымИспользованием, ",Пользователи,") И СтрСодержит(",#Параметр(21),", ",Пользователи,")) + Или (Не СтрСодержит(&ВидыДоступаСОтключеннымИспользованием, ",ВнешниеПользователи,") И СтрСодержит(",#Параметр(21),", ",ВнешниеПользователи,")) #Тогда + НЕ + ( + НЕ ИСТИНА В + ( + ВЫБРАТЬ ПЕРВЫЕ 1 ИСТИНА + ИЗ РегистрСведений.ГруппыЗначенийДоступа КАК ГруппыЗначенийДоступа + ГДЕ + ГруппыЗначенийДоступа.ЗначениеДоступа = #Параметр(22) + И ГруппыЗначенийДоступа.ГруппаЗначенийДоступа = &АвторизованныйПользователь + ) + И НЕ + #Иначе + ( + #КонецЕсли + ВЫБОР + КОГДА ИСТИНА В + ( + #Если СтрСодержит(&ВидыДоступаБезГруппДляЗначенияДоступа, ",#Параметр(21),") #Тогда + ВЫБРАТЬ ПЕРВЫЕ 1 ИСТИНА + ИЗ РегистрСведений.ЗначенияГруппДоступа КАК Значения + ГДЕ + Значения.ГруппаДоступа = ГруппыДоступа.Ссылка + И Значения.ЗначениеДоступа = #Параметр(22) + #ИначеЕсли "#Параметр(22)" = "Т.Ссылка" + И "#Параметр(21)" <> "Пользователи" + И "#Параметр(21)" <> "ВнешниеПользователи" #Тогда + #Если СтрСодержит("#Параметр(21)", ",") #Тогда + // Когда параметр задан неверно, вставляется строка, чтобы вызвать ошибку сборки ограничения доступа. + НеверныйВидДоступа: "#Параметр(21)" - "При проверке таблицы значения доступа можно указывать только один вид доступа" + #ИначеЕсли СтрСодержит(&ВидыДоступаСОднойГруппойДляЗначенияДоступа, ",#Параметр(21),") #Тогда + ВЫБРАТЬ ПЕРВЫЕ 1 ИСТИНА + ИЗ РегистрСведений.ЗначенияГруппДоступа КАК Значения + ГДЕ + Значения.ГруппаДоступа = ГруппыДоступа.Ссылка + И Значения.ЗначениеДоступа = Т.ГруппаДоступа + #Иначе // Значения доступа, для которых можно указать несколько групп значений доступа. + ВЫБРАТЬ ПЕРВЫЕ 1 ИСТИНА + ИЗ РегистрСведений.ЗначенияГруппДоступа КАК Значения + ВНУТРЕННЕЕ СОЕДИНЕНИЕ #Параметр(1).ГруппыДоступа КАК ГруппыЗначений + ПО + Значения.ГруппаДоступа = ГруппыДоступа.Ссылка + И Значения.ЗначениеДоступа = ГруппыЗначений.ГруппаДоступа + И ГруппыЗначений.Ссылка = #Параметр(22) + #КонецЕсли + #Иначе + ВЫБРАТЬ ПЕРВЫЕ 1 ИСТИНА + ИЗ РегистрСведений.ЗначенияГруппДоступа КАК Значения + ВНУТРЕННЕЕ СОЕДИНЕНИЕ РегистрСведений.ГруппыЗначенийДоступа КАК ГруппыЗначений + ПО + Значения.ГруппаДоступа = ГруппыДоступа.Ссылка + И Значения.ЗначениеДоступа = ГруппыЗначений.ГруппаЗначенийДоступа + И ГруппыЗначений.ЗначениеДоступа = #Параметр(22) + #КонецЕсли + ) + ТОГДА ИСТИНА + ИНАЧЕ ЛОЖЬ + КОНЕЦ + = + ВЫБОР + КОГДА ИСТИНА В + ( + ВЫБРАТЬ ПЕРВЫЕ 1 ИСТИНА + ИЗ РегистрСведений.ЗначенияГруппДоступаПоУмолчанию КАК ЗначенияПоУмолчанию + ГДЕ + ЗначенияПоУмолчанию.ГруппаДоступа = ГруппыДоступа.Ссылка + И ТИПЗНАЧЕНИЯ(ЗначенияПоУмолчанию.ТипЗначенийДоступа) = ТИПЗНАЧЕНИЯ(#Параметр(22)) + И ЗначенияПоУмолчанию.ВсеРазрешены = ЛОЖЬ + ) + ТОГДА ИСТИНА + ИНАЧЕ ЛОЖЬ + КОНЕЦ + ) + ) +#Иначе + ЕСТЬNULL(#Параметр(22), НЕОПРЕДЕЛЕНО) <> НЕОПРЕДЕЛЕНО +#КонецЕсли + + #Параметр(23) // [)[)][)]...] [ИЛИ|И] [([(][(]...] оператор И/ИЛИ с/без скобок. + +//// Проверка значения поля группы параметров 7. +#Если "#Параметр(24)" = "" И "#Параметр(25)" = "" #Тогда + // Группа параметров не используется. +#ИначеЕсли &ОграничениеДоступаНаУровнеЗаписейИспользуется И ("#Параметр(24)" = "Условие" Или "#Параметр(24)" = "") #Тогда + // Когда имя вида доступа "Условие" (или ""), тогда вместо имени поля задано условие. + ( #Параметр(25) ) +#ИначеЕсли "#Параметр(24)" = "ПравоЧтения" Или "#Параметр(24)" = "ПравоИзменения" #Тогда + #Параметр(25) <> НЕОПРЕДЕЛЕНО + И ИСТИНА В + ( // Проверка права пользователя на таблицу Значения, установленного в поле. + ВЫБРАТЬ ПЕРВЫЕ 1 ИСТИНА + ИЗ РегистрСведений.ТаблицыГруппДоступа КАК ТаблицыГруппДоступаПроверкаПрава + ГДЕ + ТаблицыГруппДоступаПроверкаПрава.ГруппаДоступа = ГруппыДоступа.Ссылка + И ТИПЗНАЧЕНИЯ(ТаблицыГруппДоступаПроверкаПрава.ТипТаблицы) = ТИПЗНАЧЕНИЯ(#Параметр(25)) + #Если Не "#Параметр(24)" = "ПравоЧтения" #Тогда + И ТаблицыГруппДоступаПроверкаПрава.ПравоИзменение + #КонецЕсли + ) +#ИначеЕсли "#Параметр(24)" = "ПравоЧтенияПоИдентификатору" Или "#Параметр(24)" = "ПравоИзмененияПоИдентификатору" #Тогда + ИСТИНА В + ( // Проверка права пользователя на таблицу, идентификатор которой указан в Значении, установленном в поле. + ВЫБРАТЬ ПЕРВЫЕ 1 ИСТИНА + ИЗ РегистрСведений.ТаблицыГруппДоступа КАК ТаблицыГруппДоступаПроверкаПрава + ГДЕ + ТаблицыГруппДоступаПроверкаПрава.ГруппаДоступа = ГруппыДоступа.Ссылка + И ТаблицыГруппДоступаПроверкаПрава.Таблица = #Параметр(25) + #Если Не "#Параметр(24)" = "ПравоЧтенияПоИдентификатору" #Тогда + И ТаблицыГруппДоступаПроверкаПрава.ПравоИзменение + #КонецЕсли + ) +#ИначеЕсли Не &ОграничениеДоступаНаУровнеЗаписейИспользуется #Тогда + ИСТИНА // Группа параметров отключена. +#ИначеЕсли "#Параметр(24)" = "НастройкиПрав" #Тогда + + ( + ИСТИНА В // Проверка, что пользователю или какой-нибудь группе пользователя право разрешено + ( + ВЫБРАТЬ ПЕРВЫЕ 1 ИСТИНА + ИЗ РегистрСведений.НастройкиПравОбъектов КАК НастройкиПрав + ВНУТРЕННЕЕ СОЕДИНЕНИЕ РегистрСведений.НаследованиеНастроекПравОбъектов КАК НаследованиеНастроек + ПО + НаследованиеНастроек.Объект = #Параметр(25) + И НастройкиПрав.Объект = НаследованиеНастроек.Родитель + #Если #ИмяТекущегоПраваДоступа = "Чтение" #Тогда + И НаследованиеНастроек.УровеньИспользования < НастройкиПрав.УровеньРазрешенияЧтения + #Иначе + #Если СтрСодержит(&ТаблицыСОтдельнымиНастройкамиПрав, "|#Параметр(1);") #Тогда + И НастройкиПрав.Таблица = СвойстваТекущейТаблицы.Ссылка + #Иначе + И НастройкиПрав.Таблица = ЗНАЧЕНИЕ(Справочник.ИдентификаторыОбъектовМетаданных.ПустаяСсылка) + #КонецЕсли + И НаследованиеНастроек.УровеньИспользования < НастройкиПрав.УровеньРазрешенияИзменения + #КонецЕсли + ВНУТРЕННЕЕ СОЕДИНЕНИЕ РегистрСведений.СоставыГруппПользователей КАК СоставыГруппПользователей + ПО + СоставыГруппПользователей.Пользователь = &АвторизованныйПользователь + И СоставыГруппПользователей.ГруппаПользователей = НастройкиПрав.Пользователь + ) + И НЕ ЛОЖЬ В // Проверка, что пользователю или какой-нибудь группе пользователя право запрещено. + ( + ВЫБРАТЬ ПЕРВЫЕ 1 ЛОЖЬ + ИЗ РегистрСведений.НастройкиПравОбъектов КАК НастройкиПрав + ВНУТРЕННЕЕ СОЕДИНЕНИЕ РегистрСведений.НаследованиеНастроекПравОбъектов КАК НаследованиеНастроек + ПО + НаследованиеНастроек.Объект = #Параметр(25) + И НастройкиПрав.Объект = НаследованиеНастроек.Родитель + #Если #ИмяТекущегоПраваДоступа = "Чтение" #Тогда + И НаследованиеНастроек.УровеньИспользования < НастройкиПрав.УровеньЗапрещенияЧтения + #Иначе + #Если СтрСодержит(&ТаблицыСОтдельнымиНастройкамиПрав, "|#Параметр(1);") #Тогда + И НастройкиПрав.Таблица = СвойстваТекущейТаблицы.Ссылка + #Иначе + И НастройкиПрав.Таблица = ЗНАЧЕНИЕ(Справочник.ИдентификаторыОбъектовМетаданных.ПустаяСсылка) + #КонецЕсли + И НаследованиеНастроек.УровеньИспользования < НастройкиПрав.УровеньЗапрещенияИзменения + #КонецЕсли + ВНУТРЕННЕЕ СОЕДИНЕНИЕ РегистрСведений.СоставыГруппПользователей КАК СоставыГруппПользователей + ПО + СоставыГруппПользователей.Пользователь = &АвторизованныйПользователь + И СоставыГруппПользователей.ГруппаПользователей = НастройкиПрав.Пользователь + ) + ) +#ИначеЕсли Не СтрСодержит(&ВсеВидыДоступаКромеСпециальных, ",#Параметр(24),") #Тогда + // Когда параметр задан неверно, вставляется строка, чтобы вызвать ошибку сборки ограничения доступа. + #Если СтрСодержит("#Параметр(24)", ",") #Тогда + НеверныйВидДоступа: "#Параметр(24)" - "Список имен видов доступа не найден" + #Иначе + НеверныйВидДоступа: "#Параметр(24)" - "Имя вида доступа не найдено" + #КонецЕсли +#ИначеЕсли &ВидыДоступаСОтключеннымИспользованием <> "Все" + И Не СтрСодержит(&ВидыДоступаСОтключеннымИспользованием, ",#Параметр(24),") #Тогда + + ( + ЕСТЬNULL(#Параметр(25), НЕОПРЕДЕЛЕНО) <> НЕОПРЕДЕЛЕНО + И + #Если (Не СтрСодержит(&ВидыДоступаСОтключеннымИспользованием, ",Пользователи,") И СтрСодержит(",#Параметр(24),", ",Пользователи,")) + Или (Не СтрСодержит(&ВидыДоступаСОтключеннымИспользованием, ",ВнешниеПользователи,") И СтрСодержит(",#Параметр(24),", ",ВнешниеПользователи,")) #Тогда + НЕ + ( + НЕ ИСТИНА В + ( + ВЫБРАТЬ ПЕРВЫЕ 1 ИСТИНА + ИЗ РегистрСведений.ГруппыЗначенийДоступа КАК ГруппыЗначенийДоступа + ГДЕ + ГруппыЗначенийДоступа.ЗначениеДоступа = #Параметр(25) + И ГруппыЗначенийДоступа.ГруппаЗначенийДоступа = &АвторизованныйПользователь + ) + И НЕ + #Иначе + ( + #КонецЕсли + ВЫБОР + КОГДА ИСТИНА В + ( + #Если СтрСодержит(&ВидыДоступаБезГруппДляЗначенияДоступа, ",#Параметр(24),") #Тогда + ВЫБРАТЬ ПЕРВЫЕ 1 ИСТИНА + ИЗ РегистрСведений.ЗначенияГруппДоступа КАК Значения + ГДЕ + Значения.ГруппаДоступа = ГруппыДоступа.Ссылка + И Значения.ЗначениеДоступа = #Параметр(25) + #ИначеЕсли "#Параметр(25)" = "Т.Ссылка" + И "#Параметр(24)" <> "Пользователи" + И "#Параметр(24)" <> "ВнешниеПользователи" #Тогда + #Если СтрСодержит("#Параметр(24)", ",") #Тогда + // Когда параметр задан неверно, вставляется строка, чтобы вызвать ошибку сборки ограничения доступа. + НеверныйВидДоступа: "#Параметр(24)" - "При проверке таблицы значения доступа можно указывать только один вид доступа" + #ИначеЕсли СтрСодержит(&ВидыДоступаСОднойГруппойДляЗначенияДоступа, ",#Параметр(24),") #Тогда + ВЫБРАТЬ ПЕРВЫЕ 1 ИСТИНА + ИЗ РегистрСведений.ЗначенияГруппДоступа КАК Значения + ГДЕ + Значения.ГруппаДоступа = ГруппыДоступа.Ссылка + И Значения.ЗначениеДоступа = Т.ГруппаДоступа + #Иначе // Значения доступа, для которых можно указать несколько групп значений доступа. + ВЫБРАТЬ ПЕРВЫЕ 1 ИСТИНА + ИЗ РегистрСведений.ЗначенияГруппДоступа КАК Значения + ВНУТРЕННЕЕ СОЕДИНЕНИЕ #Параметр(1).ГруппыДоступа КАК ГруппыЗначений + ПО + Значения.ГруппаДоступа = ГруппыДоступа.Ссылка + И Значения.ЗначениеДоступа = ГруппыЗначений.ГруппаДоступа + И ГруппыЗначений.Ссылка = #Параметр(25) + #КонецЕсли + #Иначе + ВЫБРАТЬ ПЕРВЫЕ 1 ИСТИНА + ИЗ РегистрСведений.ЗначенияГруппДоступа КАК Значения + ВНУТРЕННЕЕ СОЕДИНЕНИЕ РегистрСведений.ГруппыЗначенийДоступа КАК ГруппыЗначений + ПО + Значения.ГруппаДоступа = ГруппыДоступа.Ссылка + И Значения.ЗначениеДоступа = ГруппыЗначений.ГруппаЗначенийДоступа + И ГруппыЗначений.ЗначениеДоступа = #Параметр(25) + #КонецЕсли + ) + ТОГДА ИСТИНА + ИНАЧЕ ЛОЖЬ + КОНЕЦ + = + ВЫБОР + КОГДА ИСТИНА В + ( + ВЫБРАТЬ ПЕРВЫЕ 1 ИСТИНА + ИЗ РегистрСведений.ЗначенияГруппДоступаПоУмолчанию КАК ЗначенияПоУмолчанию + ГДЕ + ЗначенияПоУмолчанию.ГруппаДоступа = ГруппыДоступа.Ссылка + И ТИПЗНАЧЕНИЯ(ЗначенияПоУмолчанию.ТипЗначенийДоступа) = ТИПЗНАЧЕНИЯ(#Параметр(25)) + И ЗначенияПоУмолчанию.ВсеРазрешены = ЛОЖЬ + ) + ТОГДА ИСТИНА + ИНАЧЕ ЛОЖЬ + КОНЕЦ + ) + ) +#Иначе + ЕСТЬNULL(#Параметр(25), НЕОПРЕДЕЛЕНО) <> НЕОПРЕДЕЛЕНО +#КонецЕсли + + #Параметр(26) // [)[)][)]...] [ИЛИ|И] [([(][(]...] оператор И/ИЛИ с/без скобок. + +//// Проверка значения поля группы параметров 8. +#Если "#Параметр(27)" = "" И "#Параметр(28)" = "" #Тогда + // Группа параметров не используется. +#ИначеЕсли &ОграничениеДоступаНаУровнеЗаписейИспользуется И ("#Параметр(27)" = "Условие" Или "#Параметр(27)" = "") #Тогда + // Когда имя вида доступа "Условие" (или ""), тогда вместо имени поля задано условие. + ( #Параметр(28) ) +#ИначеЕсли "#Параметр(27)" = "ПравоЧтения" Или "#Параметр(27)" = "ПравоИзменения" #Тогда + #Параметр(28) <> НЕОПРЕДЕЛЕНО + И ИСТИНА В + ( // Проверка права пользователя на таблицу Значения, установленного в поле. + ВЫБРАТЬ ПЕРВЫЕ 1 ИСТИНА + ИЗ РегистрСведений.ТаблицыГруппДоступа КАК ТаблицыГруппДоступаПроверкаПрава + ГДЕ + ТаблицыГруппДоступаПроверкаПрава.ГруппаДоступа = ГруппыДоступа.Ссылка + И ТИПЗНАЧЕНИЯ(ТаблицыГруппДоступаПроверкаПрава.ТипТаблицы) = ТИПЗНАЧЕНИЯ(#Параметр(28)) + #Если Не "#Параметр(27)" = "ПравоЧтения" #Тогда + И ТаблицыГруппДоступаПроверкаПрава.ПравоИзменение + #КонецЕсли + ) +#ИначеЕсли "#Параметр(27)" = "ПравоЧтенияПоИдентификатору" Или "#Параметр(27)" = "ПравоИзмененияПоИдентификатору" #Тогда + ИСТИНА В + ( // Проверка права пользователя на таблицу, идентификатор которой указан в Значении, установленном в поле. + ВЫБРАТЬ ПЕРВЫЕ 1 ИСТИНА + ИЗ РегистрСведений.ТаблицыГруппДоступа КАК ТаблицыГруппДоступаПроверкаПрава + ГДЕ + ТаблицыГруппДоступаПроверкаПрава.ГруппаДоступа = ГруппыДоступа.Ссылка + И ТаблицыГруппДоступаПроверкаПрава.Таблица = #Параметр(28) + #Если Не "#Параметр(27)" = "ПравоЧтенияПоИдентификатору" #Тогда + И ТаблицыГруппДоступаПроверкаПрава.ПравоИзменение + #КонецЕсли + ) +#ИначеЕсли Не &ОграничениеДоступаНаУровнеЗаписейИспользуется #Тогда + ИСТИНА // Группа параметров отключена. +#ИначеЕсли "#Параметр(27)" = "НастройкиПрав" #Тогда + + ( + ИСТИНА В // Проверка, что пользователю или какой-нибудь группе пользователя право разрешено + ( + ВЫБРАТЬ ПЕРВЫЕ 1 ИСТИНА + ИЗ РегистрСведений.НастройкиПравОбъектов КАК НастройкиПрав + ВНУТРЕННЕЕ СОЕДИНЕНИЕ РегистрСведений.НаследованиеНастроекПравОбъектов КАК НаследованиеНастроек + ПО + НаследованиеНастроек.Объект = #Параметр(28) + И НастройкиПрав.Объект = НаследованиеНастроек.Родитель + #Если #ИмяТекущегоПраваДоступа = "Чтение" #Тогда + И НаследованиеНастроек.УровеньИспользования < НастройкиПрав.УровеньРазрешенияЧтения + #Иначе + #Если СтрСодержит(&ТаблицыСОтдельнымиНастройкамиПрав, "|#Параметр(1);") #Тогда + И НастройкиПрав.Таблица = СвойстваТекущейТаблицы.Ссылка + #Иначе + И НастройкиПрав.Таблица = ЗНАЧЕНИЕ(Справочник.ИдентификаторыОбъектовМетаданных.ПустаяСсылка) + #КонецЕсли + И НаследованиеНастроек.УровеньИспользования < НастройкиПрав.УровеньРазрешенияИзменения + #КонецЕсли + ВНУТРЕННЕЕ СОЕДИНЕНИЕ РегистрСведений.СоставыГруппПользователей КАК СоставыГруппПользователей + ПО + СоставыГруппПользователей.Пользователь = &АвторизованныйПользователь + И СоставыГруппПользователей.ГруппаПользователей = НастройкиПрав.Пользователь + ) + И НЕ ЛОЖЬ В // Проверка, что пользователю или какой-нибудь группе пользователя право запрещено. + ( + ВЫБРАТЬ ПЕРВЫЕ 1 ЛОЖЬ + ИЗ РегистрСведений.НастройкиПравОбъектов КАК НастройкиПрав + ВНУТРЕННЕЕ СОЕДИНЕНИЕ РегистрСведений.НаследованиеНастроекПравОбъектов КАК НаследованиеНастроек + ПО + НаследованиеНастроек.Объект = #Параметр(28) + И НастройкиПрав.Объект = НаследованиеНастроек.Родитель + #Если #ИмяТекущегоПраваДоступа = "Чтение" #Тогда + И НаследованиеНастроек.УровеньИспользования < НастройкиПрав.УровеньЗапрещенияЧтения + #Иначе + #Если СтрСодержит(&ТаблицыСОтдельнымиНастройкамиПрав, "|#Параметр(1);") #Тогда + И НастройкиПрав.Таблица = СвойстваТекущейТаблицы.Ссылка + #Иначе + И НастройкиПрав.Таблица = ЗНАЧЕНИЕ(Справочник.ИдентификаторыОбъектовМетаданных.ПустаяСсылка) + #КонецЕсли + И НаследованиеНастроек.УровеньИспользования < НастройкиПрав.УровеньЗапрещенияИзменения + #КонецЕсли + ВНУТРЕННЕЕ СОЕДИНЕНИЕ РегистрСведений.СоставыГруппПользователей КАК СоставыГруппПользователей + ПО + СоставыГруппПользователей.Пользователь = &АвторизованныйПользователь + И СоставыГруппПользователей.ГруппаПользователей = НастройкиПрав.Пользователь + ) + ) +#ИначеЕсли Не СтрСодержит(&ВсеВидыДоступаКромеСпециальных, ",#Параметр(27),") #Тогда + // Когда параметр задан неверно, вставляется строка, чтобы вызвать ошибку сборки ограничения доступа. + #Если СтрСодержит("#Параметр(27)", ",") #Тогда + НеверныйВидДоступа: "#Параметр(27)" - "Список имен видов доступа не найден" + #Иначе + НеверныйВидДоступа: "#Параметр(27)" - "Имя вида доступа не найдено" + #КонецЕсли +#ИначеЕсли &ВидыДоступаСОтключеннымИспользованием <> "Все" + И Не СтрСодержит(&ВидыДоступаСОтключеннымИспользованием, ",#Параметр(27),") #Тогда + + ( + ЕСТЬNULL(#Параметр(28), НЕОПРЕДЕЛЕНО) <> НЕОПРЕДЕЛЕНО + И + #Если (Не СтрСодержит(&ВидыДоступаСОтключеннымИспользованием, ",Пользователи,") И СтрСодержит(",#Параметр(27),", ",Пользователи,")) + Или (Не СтрСодержит(&ВидыДоступаСОтключеннымИспользованием, ",ВнешниеПользователи,") И СтрСодержит(",#Параметр(27),", ",ВнешниеПользователи,")) #Тогда + НЕ + ( + НЕ ИСТИНА В + ( + ВЫБРАТЬ ПЕРВЫЕ 1 ИСТИНА + ИЗ РегистрСведений.ГруппыЗначенийДоступа КАК ГруппыЗначенийДоступа + ГДЕ + ГруппыЗначенийДоступа.ЗначениеДоступа = #Параметр(28) + И ГруппыЗначенийДоступа.ГруппаЗначенийДоступа = &АвторизованныйПользователь + ) + И НЕ + #Иначе + ( + #КонецЕсли + ВЫБОР + КОГДА ИСТИНА В + ( + #Если СтрСодержит(&ВидыДоступаБезГруппДляЗначенияДоступа, ",#Параметр(27),") #Тогда + ВЫБРАТЬ ПЕРВЫЕ 1 ИСТИНА + ИЗ РегистрСведений.ЗначенияГруппДоступа КАК Значения + ГДЕ + Значения.ГруппаДоступа = ГруппыДоступа.Ссылка + И Значения.ЗначениеДоступа = #Параметр(28) + #ИначеЕсли "#Параметр(28)" = "Т.Ссылка" + И "#Параметр(27)" <> "Пользователи" + И "#Параметр(27)" <> "ВнешниеПользователи" #Тогда + #Если СтрСодержит("#Параметр(27)", ",") #Тогда + // Когда параметр задан неверно, вставляется строка, чтобы вызвать ошибку сборки ограничения доступа. + НеверныйВидДоступа: "#Параметр(27)" - "При проверке таблицы значения доступа можно указывать только один вид доступа" + #ИначеЕсли СтрСодержит(&ВидыДоступаСОднойГруппойДляЗначенияДоступа, ",#Параметр(27),") #Тогда + ВЫБРАТЬ ПЕРВЫЕ 1 ИСТИНА + ИЗ РегистрСведений.ЗначенияГруппДоступа КАК Значения + ГДЕ + Значения.ГруппаДоступа = ГруппыДоступа.Ссылка + И Значения.ЗначениеДоступа = Т.ГруппаДоступа + #Иначе // Значения доступа, для которых можно указать несколько групп значений доступа. + ВЫБРАТЬ ПЕРВЫЕ 1 ИСТИНА + ИЗ РегистрСведений.ЗначенияГруппДоступа КАК Значения + ВНУТРЕННЕЕ СОЕДИНЕНИЕ #Параметр(1).ГруппыДоступа КАК ГруппыЗначений + ПО + Значения.ГруппаДоступа = ГруппыДоступа.Ссылка + И Значения.ЗначениеДоступа = ГруппыЗначений.ГруппаДоступа + И ГруппыЗначений.Ссылка = #Параметр(28) + #КонецЕсли + #Иначе + ВЫБРАТЬ ПЕРВЫЕ 1 ИСТИНА + ИЗ РегистрСведений.ЗначенияГруппДоступа КАК Значения + ВНУТРЕННЕЕ СОЕДИНЕНИЕ РегистрСведений.ГруппыЗначенийДоступа КАК ГруппыЗначений + ПО + Значения.ГруппаДоступа = ГруппыДоступа.Ссылка + И Значения.ЗначениеДоступа = ГруппыЗначений.ГруппаЗначенийДоступа + И ГруппыЗначений.ЗначениеДоступа = #Параметр(28) + #КонецЕсли + ) + ТОГДА ИСТИНА + ИНАЧЕ ЛОЖЬ + КОНЕЦ + = + ВЫБОР + КОГДА ИСТИНА В + ( + ВЫБРАТЬ ПЕРВЫЕ 1 ИСТИНА + ИЗ РегистрСведений.ЗначенияГруппДоступаПоУмолчанию КАК ЗначенияПоУмолчанию + ГДЕ + ЗначенияПоУмолчанию.ГруппаДоступа = ГруппыДоступа.Ссылка + И ТИПЗНАЧЕНИЯ(ЗначенияПоУмолчанию.ТипЗначенийДоступа) = ТИПЗНАЧЕНИЯ(#Параметр(28)) + И ЗначенияПоУмолчанию.ВсеРазрешены = ЛОЖЬ + ) + ТОГДА ИСТИНА + ИНАЧЕ ЛОЖЬ + КОНЕЦ + ) + ) +#Иначе + ЕСТЬNULL(#Параметр(28), НЕОПРЕДЕЛЕНО) <> НЕОПРЕДЕЛЕНО +#КонецЕсли + + #Параметр(29) // [)[)][)]...] [ИЛИ|И] [([(][(]...] оператор И/ИЛИ с/без скобок. + +//// Проверка значения поля группы параметров 9. +#Если "#Параметр(30)" = "" И "#Параметр(31)" = "" #Тогда + // Группа параметров не используется. +#ИначеЕсли &ОграничениеДоступаНаУровнеЗаписейИспользуется И ("#Параметр(30)" = "Условие" Или "#Параметр(30)" = "") #Тогда + // Когда имя вида доступа "Условие" (или ""), тогда вместо имени поля задано условие. + ( #Параметр(31) ) +#ИначеЕсли "#Параметр(30)" = "ПравоЧтения" Или "#Параметр(30)" = "ПравоИзменения" #Тогда + #Параметр(31) <> НЕОПРЕДЕЛЕНО + И ИСТИНА В + ( // Проверка права пользователя на таблицу Значения, установленного в поле. + ВЫБРАТЬ ПЕРВЫЕ 1 ИСТИНА + ИЗ РегистрСведений.ТаблицыГруппДоступа КАК ТаблицыГруппДоступаПроверкаПрава + ГДЕ + ТаблицыГруппДоступаПроверкаПрава.ГруппаДоступа = ГруппыДоступа.Ссылка + И ТИПЗНАЧЕНИЯ(ТаблицыГруппДоступаПроверкаПрава.ТипТаблицы) = ТИПЗНАЧЕНИЯ(#Параметр(31)) + #Если Не "#Параметр(30)" = "ПравоЧтения" #Тогда + И ТаблицыГруппДоступаПроверкаПрава.ПравоИзменение + #КонецЕсли + ) +#ИначеЕсли "#Параметр(30)" = "ПравоЧтенияПоИдентификатору" Или "#Параметр(30)" = "ПравоИзмененияПоИдентификатору" #Тогда + ИСТИНА В + ( // Проверка права пользователя на таблицу, идентификатор которой указан в Значении, установленном в поле. + ВЫБРАТЬ ПЕРВЫЕ 1 ИСТИНА + ИЗ РегистрСведений.ТаблицыГруппДоступа КАК ТаблицыГруппДоступаПроверкаПрава + ГДЕ + ТаблицыГруппДоступаПроверкаПрава.ГруппаДоступа = ГруппыДоступа.Ссылка + И ТаблицыГруппДоступаПроверкаПрава.Таблица = #Параметр(31) + #Если Не "#Параметр(30)" = "ПравоЧтенияПоИдентификатору" #Тогда + И ТаблицыГруппДоступаПроверкаПрава.ПравоИзменение + #КонецЕсли + ) +#ИначеЕсли Не &ОграничениеДоступаНаУровнеЗаписейИспользуется #Тогда + ИСТИНА // Группа параметров отключена. +#ИначеЕсли "#Параметр(30)" = "НастройкиПрав" #Тогда + + ( + ИСТИНА В // Проверка, что пользователю или какой-нибудь группе пользователя право разрешено + ( + ВЫБРАТЬ ПЕРВЫЕ 1 ИСТИНА + ИЗ РегистрСведений.НастройкиПравОбъектов КАК НастройкиПрав + ВНУТРЕННЕЕ СОЕДИНЕНИЕ РегистрСведений.НаследованиеНастроекПравОбъектов КАК НаследованиеНастроек + ПО + НаследованиеНастроек.Объект = #Параметр(31) + И НастройкиПрав.Объект = НаследованиеНастроек.Родитель + #Если #ИмяТекущегоПраваДоступа = "Чтение" #Тогда + И НаследованиеНастроек.УровеньИспользования < НастройкиПрав.УровеньРазрешенияЧтения + #Иначе + #Если СтрСодержит(&ТаблицыСОтдельнымиНастройкамиПрав, "|#Параметр(1);") #Тогда + И НастройкиПрав.Таблица = СвойстваТекущейТаблицы.Ссылка + #Иначе + И НастройкиПрав.Таблица = ЗНАЧЕНИЕ(Справочник.ИдентификаторыОбъектовМетаданных.ПустаяСсылка) + #КонецЕсли + И НаследованиеНастроек.УровеньИспользования < НастройкиПрав.УровеньРазрешенияИзменения + #КонецЕсли + ВНУТРЕННЕЕ СОЕДИНЕНИЕ РегистрСведений.СоставыГруппПользователей КАК СоставыГруппПользователей + ПО + СоставыГруппПользователей.Пользователь = &АвторизованныйПользователь + И СоставыГруппПользователей.ГруппаПользователей = НастройкиПрав.Пользователь + ) + И НЕ ЛОЖЬ В // Проверка, что пользователю или какой-нибудь группе пользователя право запрещено. + ( + ВЫБРАТЬ ПЕРВЫЕ 1 ЛОЖЬ + ИЗ РегистрСведений.НастройкиПравОбъектов КАК НастройкиПрав + ВНУТРЕННЕЕ СОЕДИНЕНИЕ РегистрСведений.НаследованиеНастроекПравОбъектов КАК НаследованиеНастроек + ПО + НаследованиеНастроек.Объект = #Параметр(31) + И НастройкиПрав.Объект = НаследованиеНастроек.Родитель + #Если #ИмяТекущегоПраваДоступа = "Чтение" #Тогда + И НаследованиеНастроек.УровеньИспользования < НастройкиПрав.УровеньЗапрещенияЧтения + #Иначе + #Если СтрСодержит(&ТаблицыСОтдельнымиНастройкамиПрав, "|#Параметр(1);") #Тогда + И НастройкиПрав.Таблица = СвойстваТекущейТаблицы.Ссылка + #Иначе + И НастройкиПрав.Таблица = ЗНАЧЕНИЕ(Справочник.ИдентификаторыОбъектовМетаданных.ПустаяСсылка) + #КонецЕсли + И НаследованиеНастроек.УровеньИспользования < НастройкиПрав.УровеньЗапрещенияИзменения + #КонецЕсли + ВНУТРЕННЕЕ СОЕДИНЕНИЕ РегистрСведений.СоставыГруппПользователей КАК СоставыГруппПользователей + ПО + СоставыГруппПользователей.Пользователь = &АвторизованныйПользователь + И СоставыГруппПользователей.ГруппаПользователей = НастройкиПрав.Пользователь + ) + ) +#ИначеЕсли Не СтрСодержит(&ВсеВидыДоступаКромеСпециальных, ",#Параметр(30),") #Тогда + // Когда параметр задан неверно, вставляется строка, чтобы вызвать ошибку сборки ограничения доступа. + #Если СтрСодержит("#Параметр(30)", ",") #Тогда + НеверныйВидДоступа: "#Параметр(30)" - "Список имен видов доступа не найден" + #Иначе + НеверныйВидДоступа: "#Параметр(30)" - "Имя вида доступа не найдено" + #КонецЕсли +#ИначеЕсли &ВидыДоступаСОтключеннымИспользованием <> "Все" + И Не СтрСодержит(&ВидыДоступаСОтключеннымИспользованием, ",#Параметр(30),") #Тогда + + ( + ЕСТЬNULL(#Параметр(31), НЕОПРЕДЕЛЕНО) <> НЕОПРЕДЕЛЕНО + И + #Если (Не СтрСодержит(&ВидыДоступаСОтключеннымИспользованием, ",Пользователи,") И СтрСодержит(",#Параметр(30),", ",Пользователи,")) + Или (Не СтрСодержит(&ВидыДоступаСОтключеннымИспользованием, ",ВнешниеПользователи,") И СтрСодержит(",#Параметр(30),", ",ВнешниеПользователи,")) #Тогда + НЕ + ( + НЕ ИСТИНА В + ( + ВЫБРАТЬ ПЕРВЫЕ 1 ИСТИНА + ИЗ РегистрСведений.ГруппыЗначенийДоступа КАК ГруппыЗначенийДоступа + ГДЕ + ГруппыЗначенийДоступа.ЗначениеДоступа = #Параметр(31) + И ГруппыЗначенийДоступа.ГруппаЗначенийДоступа = &АвторизованныйПользователь + ) + И НЕ + #Иначе + ( + #КонецЕсли + ВЫБОР + КОГДА ИСТИНА В + ( + #Если СтрСодержит(&ВидыДоступаБезГруппДляЗначенияДоступа, ",#Параметр(30),") #Тогда + ВЫБРАТЬ ПЕРВЫЕ 1 ИСТИНА + ИЗ РегистрСведений.ЗначенияГруппДоступа КАК Значения + ГДЕ + Значения.ГруппаДоступа = ГруппыДоступа.Ссылка + И Значения.ЗначениеДоступа = #Параметр(31) + #ИначеЕсли "#Параметр(31)" = "Т.Ссылка" + И "#Параметр(30)" <> "Пользователи" + И "#Параметр(30)" <> "ВнешниеПользователи" #Тогда + #Если СтрСодержит("#Параметр(30)", ",") #Тогда + // Когда параметр задан неверно, вставляется строка, чтобы вызвать ошибку сборки ограничения доступа. + НеверныйВидДоступа: "#Параметр(30)" - "При проверке таблицы значения доступа можно указывать только один вид доступа" + #ИначеЕсли СтрСодержит(&ВидыДоступаСОднойГруппойДляЗначенияДоступа, ",#Параметр(30),") #Тогда + ВЫБРАТЬ ПЕРВЫЕ 1 ИСТИНА + ИЗ РегистрСведений.ЗначенияГруппДоступа КАК Значения + ГДЕ + Значения.ГруппаДоступа = ГруппыДоступа.Ссылка + И Значения.ЗначениеДоступа = Т.ГруппаДоступа + #Иначе // Значения доступа, для которых можно указать несколько групп значений доступа. + ВЫБРАТЬ ПЕРВЫЕ 1 ИСТИНА + ИЗ РегистрСведений.ЗначенияГруппДоступа КАК Значения + ВНУТРЕННЕЕ СОЕДИНЕНИЕ #Параметр(1).ГруппыДоступа КАК ГруппыЗначений + ПО + Значения.ГруппаДоступа = ГруппыДоступа.Ссылка + И Значения.ЗначениеДоступа = ГруппыЗначений.ГруппаДоступа + И ГруппыЗначений.Ссылка = #Параметр(31) + #КонецЕсли + #Иначе + ВЫБРАТЬ ПЕРВЫЕ 1 ИСТИНА + ИЗ РегистрСведений.ЗначенияГруппДоступа КАК Значения + ВНУТРЕННЕЕ СОЕДИНЕНИЕ РегистрСведений.ГруппыЗначенийДоступа КАК ГруппыЗначений + ПО + Значения.ГруппаДоступа = ГруппыДоступа.Ссылка + И Значения.ЗначениеДоступа = ГруппыЗначений.ГруппаЗначенийДоступа + И ГруппыЗначений.ЗначениеДоступа = #Параметр(31) + #КонецЕсли + ) + ТОГДА ИСТИНА + ИНАЧЕ ЛОЖЬ + КОНЕЦ + = + ВЫБОР + КОГДА ИСТИНА В + ( + ВЫБРАТЬ ПЕРВЫЕ 1 ИСТИНА + ИЗ РегистрСведений.ЗначенияГруппДоступаПоУмолчанию КАК ЗначенияПоУмолчанию + ГДЕ + ЗначенияПоУмолчанию.ГруппаДоступа = ГруппыДоступа.Ссылка + И ТИПЗНАЧЕНИЯ(ЗначенияПоУмолчанию.ТипЗначенийДоступа) = ТИПЗНАЧЕНИЯ(#Параметр(31)) + И ЗначенияПоУмолчанию.ВсеРазрешены = ЛОЖЬ + ) + ТОГДА ИСТИНА + ИНАЧЕ ЛОЖЬ + КОНЕЦ + ) + ) +#Иначе + ЕСТЬNULL(#Параметр(31), НЕОПРЕДЕЛЕНО) <> НЕОПРЕДЕЛЕНО +#КонецЕсли + + #Параметр(32) // [)[)][)]...] [ИЛИ|И] [([(][(]...] оператор И/ИЛИ с/без скобок. + +//// Проверка значения поля группы параметров 10. +#Если "#Параметр(33)" = "" И "#Параметр(34)" = "" #Тогда + // Группа параметров не используется. +#ИначеЕсли &ОграничениеДоступаНаУровнеЗаписейИспользуется И ("#Параметр(33)" = "Условие" Или "#Параметр(33)" = "") #Тогда + // Когда имя вида доступа "Условие" (или ""), тогда вместо имени поля задано условие. + ( #Параметр(34) ) +#ИначеЕсли "#Параметр(33)" = "ПравоЧтения" Или "#Параметр(33)" = "ПравоИзменения" #Тогда + #Параметр(34) <> НЕОПРЕДЕЛЕНО + И ИСТИНА В + ( // Проверка права пользователя на таблицу Значения, установленного в поле. + ВЫБРАТЬ ПЕРВЫЕ 1 ИСТИНА + ИЗ РегистрСведений.ТаблицыГруппДоступа КАК ТаблицыГруппДоступаПроверкаПрава + ГДЕ + ТаблицыГруппДоступаПроверкаПрава.ГруппаДоступа = ГруппыДоступа.Ссылка + И ТИПЗНАЧЕНИЯ(ТаблицыГруппДоступаПроверкаПрава.ТипТаблицы) = ТИПЗНАЧЕНИЯ(#Параметр(34)) + #Если Не "#Параметр(33)" = "ПравоЧтения" #Тогда + И ТаблицыГруппДоступаПроверкаПрава.ПравоИзменение + #КонецЕсли + ) +#ИначеЕсли "#Параметр(33)" = "ПравоЧтенияПоИдентификатору" Или "#Параметр(33)" = "ПравоИзмененияПоИдентификатору" #Тогда + ИСТИНА В + ( // Проверка права пользователя на таблицу, идентификатор которой указан в Значении, установленном в поле. + ВЫБРАТЬ ПЕРВЫЕ 1 ИСТИНА + ИЗ РегистрСведений.ТаблицыГруппДоступа КАК ТаблицыГруппДоступаПроверкаПрава + ГДЕ + ТаблицыГруппДоступаПроверкаПрава.ГруппаДоступа = ГруппыДоступа.Ссылка + И ТаблицыГруппДоступаПроверкаПрава.Таблица = #Параметр(34) + #Если Не "#Параметр(33)" = "ПравоЧтенияПоИдентификатору" #Тогда + И ТаблицыГруппДоступаПроверкаПрава.ПравоИзменение + #КонецЕсли + ) +#ИначеЕсли Не &ОграничениеДоступаНаУровнеЗаписейИспользуется #Тогда + ИСТИНА // Группа параметров отключена. +#ИначеЕсли "#Параметр(33)" = "НастройкиПрав" #Тогда + + ( + ИСТИНА В // Проверка, что пользователю или какой-нибудь группе пользователя право разрешено + ( + ВЫБРАТЬ ПЕРВЫЕ 1 ИСТИНА + ИЗ РегистрСведений.НастройкиПравОбъектов КАК НастройкиПрав + ВНУТРЕННЕЕ СОЕДИНЕНИЕ РегистрСведений.НаследованиеНастроекПравОбъектов КАК НаследованиеНастроек + ПО + НаследованиеНастроек.Объект = #Параметр(34) + И НастройкиПрав.Объект = НаследованиеНастроек.Родитель + #Если #ИмяТекущегоПраваДоступа = "Чтение" #Тогда + И НаследованиеНастроек.УровеньИспользования < НастройкиПрав.УровеньРазрешенияЧтения + #Иначе + #Если СтрСодержит(&ТаблицыСОтдельнымиНастройкамиПрав, "|#Параметр(1);") #Тогда + И НастройкиПрав.Таблица = СвойстваТекущейТаблицы.Ссылка + #Иначе + И НастройкиПрав.Таблица = ЗНАЧЕНИЕ(Справочник.ИдентификаторыОбъектовМетаданных.ПустаяСсылка) + #КонецЕсли + И НаследованиеНастроек.УровеньИспользования < НастройкиПрав.УровеньРазрешенияИзменения + #КонецЕсли + ВНУТРЕННЕЕ СОЕДИНЕНИЕ РегистрСведений.СоставыГруппПользователей КАК СоставыГруппПользователей + ПО + СоставыГруппПользователей.Пользователь = &АвторизованныйПользователь + И СоставыГруппПользователей.ГруппаПользователей = НастройкиПрав.Пользователь + ) + И НЕ ЛОЖЬ В // Проверка, что пользователю или какой-нибудь группе пользователя право запрещено. + ( + ВЫБРАТЬ ПЕРВЫЕ 1 ЛОЖЬ + ИЗ РегистрСведений.НастройкиПравОбъектов КАК НастройкиПрав + ВНУТРЕННЕЕ СОЕДИНЕНИЕ РегистрСведений.НаследованиеНастроекПравОбъектов КАК НаследованиеНастроек + ПО + НаследованиеНастроек.Объект = #Параметр(34) + И НастройкиПрав.Объект = НаследованиеНастроек.Родитель + #Если #ИмяТекущегоПраваДоступа = "Чтение" #Тогда + И НаследованиеНастроек.УровеньИспользования < НастройкиПрав.УровеньЗапрещенияЧтения + #Иначе + #Если СтрСодержит(&ТаблицыСОтдельнымиНастройкамиПрав, "|#Параметр(1);") #Тогда + И НастройкиПрав.Таблица = СвойстваТекущейТаблицы.Ссылка + #Иначе + И НастройкиПрав.Таблица = ЗНАЧЕНИЕ(Справочник.ИдентификаторыОбъектовМетаданных.ПустаяСсылка) + #КонецЕсли + И НаследованиеНастроек.УровеньИспользования < НастройкиПрав.УровеньЗапрещенияИзменения + #КонецЕсли + ВНУТРЕННЕЕ СОЕДИНЕНИЕ РегистрСведений.СоставыГруппПользователей КАК СоставыГруппПользователей + ПО + СоставыГруппПользователей.Пользователь = &АвторизованныйПользователь + И СоставыГруппПользователей.ГруппаПользователей = НастройкиПрав.Пользователь + ) + ) +#ИначеЕсли Не СтрСодержит(&ВсеВидыДоступаКромеСпециальных, ",#Параметр(33),") #Тогда + // Когда параметр задан неверно, вставляется строка, чтобы вызвать ошибку сборки ограничения доступа. + #Если СтрСодержит("#Параметр(33)", ",") #Тогда + НеверныйВидДоступа: "#Параметр(33)" - "Список имен видов доступа не найден" + #Иначе + НеверныйВидДоступа: "#Параметр(33)" - "Имя вида доступа не найдено" + #КонецЕсли +#ИначеЕсли &ВидыДоступаСОтключеннымИспользованием <> "Все" + И Не СтрСодержит(&ВидыДоступаСОтключеннымИспользованием, ",#Параметр(33),") #Тогда + + ( + ЕСТЬNULL(#Параметр(34), НЕОПРЕДЕЛЕНО) <> НЕОПРЕДЕЛЕНО + И + #Если (Не СтрСодержит(&ВидыДоступаСОтключеннымИспользованием, ",Пользователи,") И СтрСодержит(",#Параметр(33),", ",Пользователи,")) + Или (Не СтрСодержит(&ВидыДоступаСОтключеннымИспользованием, ",ВнешниеПользователи,") И СтрСодержит(",#Параметр(33),", ",ВнешниеПользователи,")) #Тогда + НЕ + ( + НЕ ИСТИНА В + ( + ВЫБРАТЬ ПЕРВЫЕ 1 ИСТИНА + ИЗ РегистрСведений.ГруппыЗначенийДоступа КАК ГруппыЗначенийДоступа + ГДЕ + ГруппыЗначенийДоступа.ЗначениеДоступа = #Параметр(34) + И ГруппыЗначенийДоступа.ГруппаЗначенийДоступа = &АвторизованныйПользователь + ) + И НЕ + #Иначе + ( + #КонецЕсли + ВЫБОР + КОГДА ИСТИНА В + ( + #Если СтрСодержит(&ВидыДоступаБезГруппДляЗначенияДоступа, ",#Параметр(33),") #Тогда + ВЫБРАТЬ ПЕРВЫЕ 1 ИСТИНА + ИЗ РегистрСведений.ЗначенияГруппДоступа КАК Значения + ГДЕ + Значения.ГруппаДоступа = ГруппыДоступа.Ссылка + И Значения.ЗначениеДоступа = #Параметр(34) + #ИначеЕсли "#Параметр(34)" = "Т.Ссылка" + И "#Параметр(33)" <> "Пользователи" + И "#Параметр(33)" <> "ВнешниеПользователи" #Тогда + #Если СтрСодержит("#Параметр(33)", ",") #Тогда + // Когда параметр задан неверно, вставляется строка, чтобы вызвать ошибку сборки ограничения доступа. + НеверныйВидДоступа: "#Параметр(33)" - "При проверке таблицы значения доступа можно указывать только один вид доступа" + #ИначеЕсли СтрСодержит(&ВидыДоступаСОднойГруппойДляЗначенияДоступа, ",#Параметр(33),") #Тогда + ВЫБРАТЬ ПЕРВЫЕ 1 ИСТИНА + ИЗ РегистрСведений.ЗначенияГруппДоступа КАК Значения + ГДЕ + Значения.ГруппаДоступа = ГруппыДоступа.Ссылка + И Значения.ЗначениеДоступа = Т.ГруппаДоступа + #Иначе // Значения доступа, для которых можно указать несколько групп значений доступа. + ВЫБРАТЬ ПЕРВЫЕ 1 ИСТИНА + ИЗ РегистрСведений.ЗначенияГруппДоступа КАК Значения + ВНУТРЕННЕЕ СОЕДИНЕНИЕ #Параметр(1).ГруппыДоступа КАК ГруппыЗначений + ПО + Значения.ГруппаДоступа = ГруппыДоступа.Ссылка + И Значения.ЗначениеДоступа = ГруппыЗначений.ГруппаДоступа + И ГруппыЗначений.Ссылка = #Параметр(34) + #КонецЕсли + #Иначе + ВЫБРАТЬ ПЕРВЫЕ 1 ИСТИНА + ИЗ РегистрСведений.ЗначенияГруппДоступа КАК Значения + ВНУТРЕННЕЕ СОЕДИНЕНИЕ РегистрСведений.ГруппыЗначенийДоступа КАК ГруппыЗначений + ПО + Значения.ГруппаДоступа = ГруппыДоступа.Ссылка + И Значения.ЗначениеДоступа = ГруппыЗначений.ГруппаЗначенийДоступа + И ГруппыЗначений.ЗначениеДоступа = #Параметр(34) + #КонецЕсли + ) + ТОГДА ИСТИНА + ИНАЧЕ ЛОЖЬ + КОНЕЦ + = + ВЫБОР + КОГДА ИСТИНА В + ( + ВЫБРАТЬ ПЕРВЫЕ 1 ИСТИНА + ИЗ РегистрСведений.ЗначенияГруппДоступаПоУмолчанию КАК ЗначенияПоУмолчанию + ГДЕ + ЗначенияПоУмолчанию.ГруппаДоступа = ГруппыДоступа.Ссылка + И ТИПЗНАЧЕНИЯ(ЗначенияПоУмолчанию.ТипЗначенийДоступа) = ТИПЗНАЧЕНИЯ(#Параметр(34)) + И ЗначенияПоУмолчанию.ВсеРазрешены = ЛОЖЬ + ) + ТОГДА ИСТИНА + ИНАЧЕ ЛОЖЬ + КОНЕЦ + ) + ) +#Иначе + ЕСТЬNULL(#Параметр(34), НЕОПРЕДЕЛЕНО) <> НЕОПРЕДЕЛЕНО +#КонецЕсли + + #Параметр(35) // [)[)][)]...] [ИЛИ|И] [([(][(]...] оператор И/ИЛИ с/без скобок. + +//// Проверка значения поля группы параметров 11. +#Если "#Параметр(36)" = "" И "#Параметр(37)" = "" #Тогда + // Группа параметров не используется. +#ИначеЕсли &ОграничениеДоступаНаУровнеЗаписейИспользуется И ("#Параметр(36)" = "Условие" Или "#Параметр(36)" = "") #Тогда + // Когда имя вида доступа "Условие" (или ""), тогда вместо имени поля задано условие. + ( #Параметр(37) ) +#ИначеЕсли "#Параметр(36)" = "ПравоЧтения" Или "#Параметр(36)" = "ПравоИзменения" #Тогда + #Параметр(37) <> НЕОПРЕДЕЛЕНО + И ИСТИНА В + ( // Проверка права пользователя на таблицу Значения, установленного в поле. + ВЫБРАТЬ ПЕРВЫЕ 1 ИСТИНА + ИЗ РегистрСведений.ТаблицыГруппДоступа КАК ТаблицыГруппДоступаПроверкаПрава + ГДЕ + ТаблицыГруппДоступаПроверкаПрава.ГруппаДоступа = ГруппыДоступа.Ссылка + И ТИПЗНАЧЕНИЯ(ТаблицыГруппДоступаПроверкаПрава.ТипТаблицы) = ТИПЗНАЧЕНИЯ(#Параметр(37)) + #Если Не "#Параметр(36)" = "ПравоЧтения" #Тогда + И ТаблицыГруппДоступаПроверкаПрава.ПравоИзменение + #КонецЕсли + ) +#ИначеЕсли "#Параметр(36)" = "ПравоЧтенияПоИдентификатору" Или "#Параметр(36)" = "ПравоИзмененияПоИдентификатору" #Тогда + ИСТИНА В + ( // Проверка права пользователя на таблицу, идентификатор которой указан в Значении, установленном в поле. + ВЫБРАТЬ ПЕРВЫЕ 1 ИСТИНА + ИЗ РегистрСведений.ТаблицыГруппДоступа КАК ТаблицыГруппДоступаПроверкаПрава + ГДЕ + ТаблицыГруппДоступаПроверкаПрава.ГруппаДоступа = ГруппыДоступа.Ссылка + И ТаблицыГруппДоступаПроверкаПрава.Таблица = #Параметр(37) + #Если Не "#Параметр(36)" = "ПравоЧтенияПоИдентификатору" #Тогда + И ТаблицыГруппДоступаПроверкаПрава.ПравоИзменение + #КонецЕсли + ) +#ИначеЕсли Не &ОграничениеДоступаНаУровнеЗаписейИспользуется #Тогда + ИСТИНА // Группа параметров отключена. +#ИначеЕсли "#Параметр(36)" = "НастройкиПрав" #Тогда + + ( + ИСТИНА В // Проверка, что пользователю или какой-нибудь группе пользователя право разрешено + ( + ВЫБРАТЬ ПЕРВЫЕ 1 ИСТИНА + ИЗ РегистрСведений.НастройкиПравОбъектов КАК НастройкиПрав + ВНУТРЕННЕЕ СОЕДИНЕНИЕ РегистрСведений.НаследованиеНастроекПравОбъектов КАК НаследованиеНастроек + ПО + НаследованиеНастроек.Объект = #Параметр(37) + И НастройкиПрав.Объект = НаследованиеНастроек.Родитель + #Если #ИмяТекущегоПраваДоступа = "Чтение" #Тогда + И НаследованиеНастроек.УровеньИспользования < НастройкиПрав.УровеньРазрешенияЧтения + #Иначе + #Если СтрСодержит(&ТаблицыСОтдельнымиНастройкамиПрав, "|#Параметр(1);") #Тогда + И НастройкиПрав.Таблица = СвойстваТекущейТаблицы.Ссылка + #Иначе + И НастройкиПрав.Таблица = ЗНАЧЕНИЕ(Справочник.ИдентификаторыОбъектовМетаданных.ПустаяСсылка) + #КонецЕсли + И НаследованиеНастроек.УровеньИспользования < НастройкиПрав.УровеньРазрешенияИзменения + #КонецЕсли + ВНУТРЕННЕЕ СОЕДИНЕНИЕ РегистрСведений.СоставыГруппПользователей КАК СоставыГруппПользователей + ПО + СоставыГруппПользователей.Пользователь = &АвторизованныйПользователь + И СоставыГруппПользователей.ГруппаПользователей = НастройкиПрав.Пользователь + ) + И НЕ ЛОЖЬ В // Проверка, что пользователю или какой-нибудь группе пользователя право запрещено. + ( + ВЫБРАТЬ ПЕРВЫЕ 1 ЛОЖЬ + ИЗ РегистрСведений.НастройкиПравОбъектов КАК НастройкиПрав + ВНУТРЕННЕЕ СОЕДИНЕНИЕ РегистрСведений.НаследованиеНастроекПравОбъектов КАК НаследованиеНастроек + ПО + НаследованиеНастроек.Объект = #Параметр(37) + И НастройкиПрав.Объект = НаследованиеНастроек.Родитель + #Если #ИмяТекущегоПраваДоступа = "Чтение" #Тогда + И НаследованиеНастроек.УровеньИспользования < НастройкиПрав.УровеньЗапрещенияЧтения + #Иначе + #Если СтрСодержит(&ТаблицыСОтдельнымиНастройкамиПрав, "|#Параметр(1);") #Тогда + И НастройкиПрав.Таблица = СвойстваТекущейТаблицы.Ссылка + #Иначе + И НастройкиПрав.Таблица = ЗНАЧЕНИЕ(Справочник.ИдентификаторыОбъектовМетаданных.ПустаяСсылка) + #КонецЕсли + И НаследованиеНастроек.УровеньИспользования < НастройкиПрав.УровеньЗапрещенияИзменения + #КонецЕсли + ВНУТРЕННЕЕ СОЕДИНЕНИЕ РегистрСведений.СоставыГруппПользователей КАК СоставыГруппПользователей + ПО + СоставыГруппПользователей.Пользователь = &АвторизованныйПользователь + И СоставыГруппПользователей.ГруппаПользователей = НастройкиПрав.Пользователь + ) + ) +#ИначеЕсли Не СтрСодержит(&ВсеВидыДоступаКромеСпециальных, ",#Параметр(36),") #Тогда + // Когда параметр задан неверно, вставляется строка, чтобы вызвать ошибку сборки ограничения доступа. + #Если СтрСодержит("#Параметр(36)", ",") #Тогда + НеверныйВидДоступа: "#Параметр(36)" - "Список имен видов доступа не найден" + #Иначе + НеверныйВидДоступа: "#Параметр(36)" - "Имя вида доступа не найдено" + #КонецЕсли +#ИначеЕсли &ВидыДоступаСОтключеннымИспользованием <> "Все" + И Не СтрСодержит(&ВидыДоступаСОтключеннымИспользованием, ",#Параметр(36),") #Тогда + + ( + ЕСТЬNULL(#Параметр(37), НЕОПРЕДЕЛЕНО) <> НЕОПРЕДЕЛЕНО + И + #Если (Не СтрСодержит(&ВидыДоступаСОтключеннымИспользованием, ",Пользователи,") И СтрСодержит(",#Параметр(36),", ",Пользователи,")) + Или (Не СтрСодержит(&ВидыДоступаСОтключеннымИспользованием, ",ВнешниеПользователи,") И СтрСодержит(",#Параметр(36),", ",ВнешниеПользователи,")) #Тогда + НЕ + ( + НЕ ИСТИНА В + ( + ВЫБРАТЬ ПЕРВЫЕ 1 ИСТИНА + ИЗ РегистрСведений.ГруппыЗначенийДоступа КАК ГруппыЗначенийДоступа + ГДЕ + ГруппыЗначенийДоступа.ЗначениеДоступа = #Параметр(37) + И ГруппыЗначенийДоступа.ГруппаЗначенийДоступа = &АвторизованныйПользователь + ) + И НЕ + #Иначе + ( + #КонецЕсли + ВЫБОР + КОГДА ИСТИНА В + ( + #Если СтрСодержит(&ВидыДоступаБезГруппДляЗначенияДоступа, ",#Параметр(36),") #Тогда + ВЫБРАТЬ ПЕРВЫЕ 1 ИСТИНА + ИЗ РегистрСведений.ЗначенияГруппДоступа КАК Значения + ГДЕ + Значения.ГруппаДоступа = ГруппыДоступа.Ссылка + И Значения.ЗначениеДоступа = #Параметр(37) + #ИначеЕсли "#Параметр(37)" = "Т.Ссылка" + И "#Параметр(36)" <> "Пользователи" + И "#Параметр(36)" <> "ВнешниеПользователи" #Тогда + #Если СтрСодержит("#Параметр(36)", ",") #Тогда + // Когда параметр задан неверно, вставляется строка, чтобы вызвать ошибку сборки ограничения доступа. + НеверныйВидДоступа: "#Параметр(36)" - "При проверке таблицы значения доступа можно указывать только один вид доступа" + #ИначеЕсли СтрСодержит(&ВидыДоступаСОднойГруппойДляЗначенияДоступа, ",#Параметр(36),") #Тогда + ВЫБРАТЬ ПЕРВЫЕ 1 ИСТИНА + ИЗ РегистрСведений.ЗначенияГруппДоступа КАК Значения + ГДЕ + Значения.ГруппаДоступа = ГруппыДоступа.Ссылка + И Значения.ЗначениеДоступа = Т.ГруппаДоступа + #Иначе // Значения доступа, для которых можно указать несколько групп значений доступа. + ВЫБРАТЬ ПЕРВЫЕ 1 ИСТИНА + ИЗ РегистрСведений.ЗначенияГруппДоступа КАК Значения + ВНУТРЕННЕЕ СОЕДИНЕНИЕ #Параметр(1).ГруппыДоступа КАК ГруппыЗначений + ПО + Значения.ГруппаДоступа = ГруппыДоступа.Ссылка + И Значения.ЗначениеДоступа = ГруппыЗначений.ГруппаДоступа + И ГруппыЗначений.Ссылка = #Параметр(37) + #КонецЕсли + #Иначе + ВЫБРАТЬ ПЕРВЫЕ 1 ИСТИНА + ИЗ РегистрСведений.ЗначенияГруппДоступа КАК Значения + ВНУТРЕННЕЕ СОЕДИНЕНИЕ РегистрСведений.ГруппыЗначенийДоступа КАК ГруппыЗначений + ПО + Значения.ГруппаДоступа = ГруппыДоступа.Ссылка + И Значения.ЗначениеДоступа = ГруппыЗначений.ГруппаЗначенийДоступа + И ГруппыЗначений.ЗначениеДоступа = #Параметр(37) + #КонецЕсли + ) + ТОГДА ИСТИНА + ИНАЧЕ ЛОЖЬ + КОНЕЦ + = + ВЫБОР + КОГДА ИСТИНА В + ( + ВЫБРАТЬ ПЕРВЫЕ 1 ИСТИНА + ИЗ РегистрСведений.ЗначенияГруппДоступаПоУмолчанию КАК ЗначенияПоУмолчанию + ГДЕ + ЗначенияПоУмолчанию.ГруппаДоступа = ГруппыДоступа.Ссылка + И ТИПЗНАЧЕНИЯ(ЗначенияПоУмолчанию.ТипЗначенийДоступа) = ТИПЗНАЧЕНИЯ(#Параметр(37)) + И ЗначенияПоУмолчанию.ВсеРазрешены = ЛОЖЬ + ) + ТОГДА ИСТИНА + ИНАЧЕ ЛОЖЬ + КОНЕЦ + ) + ) +#Иначе + ЕСТЬNULL(#Параметр(37), НЕОПРЕДЕЛЕНО) <> НЕОПРЕДЕЛЕНО +#КонецЕсли + + #Параметр(38) // [)[)][)]...] [ИЛИ|И] [([(][(]...] оператор И/ИЛИ с/без скобок. + +//// Проверка значения поля группы параметров 12. +#Если "#Параметр(39)" = "" И "#Параметр(40)" = "" #Тогда + // Группа параметров не используется. +#ИначеЕсли &ОграничениеДоступаНаУровнеЗаписейИспользуется И ("#Параметр(39)" = "Условие" Или "#Параметр(39)" = "") #Тогда + // Когда имя вида доступа "Условие" (или ""), тогда вместо имени поля задано условие. + ( #Параметр(40) ) +#ИначеЕсли "#Параметр(39)" = "ПравоЧтения" Или "#Параметр(39)" = "ПравоИзменения" #Тогда + #Параметр(40) <> НЕОПРЕДЕЛЕНО + И ИСТИНА В + ( // Проверка права пользователя на таблицу Значения, установленного в поле. + ВЫБРАТЬ ПЕРВЫЕ 1 ИСТИНА + ИЗ РегистрСведений.ТаблицыГруппДоступа КАК ТаблицыГруппДоступаПроверкаПрава + ГДЕ + ТаблицыГруппДоступаПроверкаПрава.ГруппаДоступа = ГруппыДоступа.Ссылка + И ТИПЗНАЧЕНИЯ(ТаблицыГруппДоступаПроверкаПрава.ТипТаблицы) = ТИПЗНАЧЕНИЯ(#Параметр(40)) + #Если Не "#Параметр(39)" = "ПравоЧтения" #Тогда + И ТаблицыГруппДоступаПроверкаПрава.ПравоИзменение + #КонецЕсли + ) +#ИначеЕсли "#Параметр(39)" = "ПравоЧтенияПоИдентификатору" Или "#Параметр(39)" = "ПравоИзмененияПоИдентификатору" #Тогда + ИСТИНА В + ( // Проверка права пользователя на таблицу, идентификатор которой указан в Значении, установленном в поле. + ВЫБРАТЬ ПЕРВЫЕ 1 ИСТИНА + ИЗ РегистрСведений.ТаблицыГруппДоступа КАК ТаблицыГруппДоступаПроверкаПрава + ГДЕ + ТаблицыГруппДоступаПроверкаПрава.ГруппаДоступа = ГруппыДоступа.Ссылка + И ТаблицыГруппДоступаПроверкаПрава.Таблица = #Параметр(40) + #Если Не "#Параметр(39)" = "ПравоЧтенияПоИдентификатору" #Тогда + И ТаблицыГруппДоступаПроверкаПрава.ПравоИзменение + #КонецЕсли + ) +#ИначеЕсли Не &ОграничениеДоступаНаУровнеЗаписейИспользуется #Тогда + ИСТИНА // Группа параметров отключена. +#ИначеЕсли "#Параметр(39)" = "НастройкиПрав" #Тогда + + ( + ИСТИНА В // Проверка, что пользователю или какой-нибудь группе пользователя право разрешено + ( + ВЫБРАТЬ ПЕРВЫЕ 1 ИСТИНА + ИЗ РегистрСведений.НастройкиПравОбъектов КАК НастройкиПрав + ВНУТРЕННЕЕ СОЕДИНЕНИЕ РегистрСведений.НаследованиеНастроекПравОбъектов КАК НаследованиеНастроек + ПО + НаследованиеНастроек.Объект = #Параметр(40) + И НастройкиПрав.Объект = НаследованиеНастроек.Родитель + #Если #ИмяТекущегоПраваДоступа = "Чтение" #Тогда + И НаследованиеНастроек.УровеньИспользования < НастройкиПрав.УровеньРазрешенияЧтения + #Иначе + #Если СтрСодержит(&ТаблицыСОтдельнымиНастройкамиПрав, "|#Параметр(1);") #Тогда + И НастройкиПрав.Таблица = СвойстваТекущейТаблицы.Ссылка + #Иначе + И НастройкиПрав.Таблица = ЗНАЧЕНИЕ(Справочник.ИдентификаторыОбъектовМетаданных.ПустаяСсылка) + #КонецЕсли + И НаследованиеНастроек.УровеньИспользования < НастройкиПрав.УровеньРазрешенияИзменения + #КонецЕсли + ВНУТРЕННЕЕ СОЕДИНЕНИЕ РегистрСведений.СоставыГруппПользователей КАК СоставыГруппПользователей + ПО + СоставыГруппПользователей.Пользователь = &АвторизованныйПользователь + И СоставыГруппПользователей.ГруппаПользователей = НастройкиПрав.Пользователь + ) + И НЕ ЛОЖЬ В // Проверка, что пользователю или какой-нибудь группе пользователя право запрещено. + ( + ВЫБРАТЬ ПЕРВЫЕ 1 ЛОЖЬ + ИЗ РегистрСведений.НастройкиПравОбъектов КАК НастройкиПрав + ВНУТРЕННЕЕ СОЕДИНЕНИЕ РегистрСведений.НаследованиеНастроекПравОбъектов КАК НаследованиеНастроек + ПО + НаследованиеНастроек.Объект = #Параметр(40) + И НастройкиПрав.Объект = НаследованиеНастроек.Родитель + #Если #ИмяТекущегоПраваДоступа = "Чтение" #Тогда + И НаследованиеНастроек.УровеньИспользования < НастройкиПрав.УровеньЗапрещенияЧтения + #Иначе + #Если СтрСодержит(&ТаблицыСОтдельнымиНастройкамиПрав, "|#Параметр(1);") #Тогда + И НастройкиПрав.Таблица = СвойстваТекущейТаблицы.Ссылка + #Иначе + И НастройкиПрав.Таблица = ЗНАЧЕНИЕ(Справочник.ИдентификаторыОбъектовМетаданных.ПустаяСсылка) + #КонецЕсли + И НаследованиеНастроек.УровеньИспользования < НастройкиПрав.УровеньЗапрещенияИзменения + #КонецЕсли + ВНУТРЕННЕЕ СОЕДИНЕНИЕ РегистрСведений.СоставыГруппПользователей КАК СоставыГруппПользователей + ПО + СоставыГруппПользователей.Пользователь = &АвторизованныйПользователь + И СоставыГруппПользователей.ГруппаПользователей = НастройкиПрав.Пользователь + ) + ) +#ИначеЕсли Не СтрСодержит(&ВсеВидыДоступаКромеСпециальных, ",#Параметр(39),") #Тогда + // Когда параметр задан неверно, вставляется строка, чтобы вызвать ошибку сборки ограничения доступа. + #Если СтрСодержит("#Параметр(39)", ",") #Тогда + НеверныйВидДоступа: "#Параметр(39)" - "Список имен видов доступа не найден" + #Иначе + НеверныйВидДоступа: "#Параметр(39)" - "Имя вида доступа не найдено" + #КонецЕсли +#ИначеЕсли &ВидыДоступаСОтключеннымИспользованием <> "Все" + И Не СтрСодержит(&ВидыДоступаСОтключеннымИспользованием, ",#Параметр(39),") #Тогда + + ( + ЕСТЬNULL(#Параметр(40), НЕОПРЕДЕЛЕНО) <> НЕОПРЕДЕЛЕНО + И + #Если (Не СтрСодержит(&ВидыДоступаСОтключеннымИспользованием, ",Пользователи,") И СтрСодержит(",#Параметр(39),", ",Пользователи,")) + Или (Не СтрСодержит(&ВидыДоступаСОтключеннымИспользованием, ",ВнешниеПользователи,") И СтрСодержит(",#Параметр(39),", ",ВнешниеПользователи,")) #Тогда + НЕ + ( + НЕ ИСТИНА В + ( + ВЫБРАТЬ ПЕРВЫЕ 1 ИСТИНА + ИЗ РегистрСведений.ГруппыЗначенийДоступа КАК ГруппыЗначенийДоступа + ГДЕ + ГруппыЗначенийДоступа.ЗначениеДоступа = #Параметр(40) + И ГруппыЗначенийДоступа.ГруппаЗначенийДоступа = &АвторизованныйПользователь + ) + И НЕ + #Иначе + ( + #КонецЕсли + ВЫБОР + КОГДА ИСТИНА В + ( + #Если СтрСодержит(&ВидыДоступаБезГруппДляЗначенияДоступа, ",#Параметр(39),") #Тогда + ВЫБРАТЬ ПЕРВЫЕ 1 ИСТИНА + ИЗ РегистрСведений.ЗначенияГруппДоступа КАК Значения + ГДЕ + Значения.ГруппаДоступа = ГруппыДоступа.Ссылка + И Значения.ЗначениеДоступа = #Параметр(40) + #ИначеЕсли "#Параметр(40)" = "Т.Ссылка" + И "#Параметр(39)" <> "Пользователи" + И "#Параметр(39)" <> "ВнешниеПользователи" #Тогда + #Если СтрСодержит("#Параметр(39)", ",") #Тогда + // Когда параметр задан неверно, вставляется строка, чтобы вызвать ошибку сборки ограничения доступа. + НеверныйВидДоступа: "#Параметр(39)" - "При проверке таблицы значения доступа можно указывать только один вид доступа" + #ИначеЕсли СтрСодержит(&ВидыДоступаСОднойГруппойДляЗначенияДоступа, ",#Параметр(39),") #Тогда + ВЫБРАТЬ ПЕРВЫЕ 1 ИСТИНА + ИЗ РегистрСведений.ЗначенияГруппДоступа КАК Значения + ГДЕ + Значения.ГруппаДоступа = ГруппыДоступа.Ссылка + И Значения.ЗначениеДоступа = Т.ГруппаДоступа + #Иначе // Значения доступа, для которых можно указать несколько групп значений доступа. + ВЫБРАТЬ ПЕРВЫЕ 1 ИСТИНА + ИЗ РегистрСведений.ЗначенияГруппДоступа КАК Значения + ВНУТРЕННЕЕ СОЕДИНЕНИЕ #Параметр(1).ГруппыДоступа КАК ГруппыЗначений + ПО + Значения.ГруппаДоступа = ГруппыДоступа.Ссылка + И Значения.ЗначениеДоступа = ГруппыЗначений.ГруппаДоступа + И ГруппыЗначений.Ссылка = #Параметр(40) + #КонецЕсли + #Иначе + ВЫБРАТЬ ПЕРВЫЕ 1 ИСТИНА + ИЗ РегистрСведений.ЗначенияГруппДоступа КАК Значения + ВНУТРЕННЕЕ СОЕДИНЕНИЕ РегистрСведений.ГруппыЗначенийДоступа КАК ГруппыЗначений + ПО + Значения.ГруппаДоступа = ГруппыДоступа.Ссылка + И Значения.ЗначениеДоступа = ГруппыЗначений.ГруппаЗначенийДоступа + И ГруппыЗначений.ЗначениеДоступа = #Параметр(40) + #КонецЕсли + ) + ТОГДА ИСТИНА + ИНАЧЕ ЛОЖЬ + КОНЕЦ + = + ВЫБОР + КОГДА ИСТИНА В + ( + ВЫБРАТЬ ПЕРВЫЕ 1 ИСТИНА + ИЗ РегистрСведений.ЗначенияГруппДоступаПоУмолчанию КАК ЗначенияПоУмолчанию + ГДЕ + ЗначенияПоУмолчанию.ГруппаДоступа = ГруппыДоступа.Ссылка + И ТИПЗНАЧЕНИЯ(ЗначенияПоУмолчанию.ТипЗначенийДоступа) = ТИПЗНАЧЕНИЯ(#Параметр(40)) + И ЗначенияПоУмолчанию.ВсеРазрешены = ЛОЖЬ + ) + ТОГДА ИСТИНА + ИНАЧЕ ЛОЖЬ + КОНЕЦ + ) + ) +#Иначе + ЕСТЬNULL(#Параметр(40), НЕОПРЕДЕЛЕНО) <> НЕОПРЕДЕЛЕНО +#КонецЕсли + + #Параметр(41) // [)[)][)]...] [ИЛИ|И] [([(][(]...] оператор И/ИЛИ с/без скобок. + +//// Проверка значения поля группы параметров 13. +#Если "#Параметр(42)" = "" И "#Параметр(43)" = "" #Тогда + // Группа параметров не используется. +#ИначеЕсли &ОграничениеДоступаНаУровнеЗаписейИспользуется И ("#Параметр(42)" = "Условие" Или "#Параметр(42)" = "") #Тогда + // Когда имя вида доступа "Условие" (или ""), тогда вместо имени поля задано условие. + ( #Параметр(43) ) +#ИначеЕсли "#Параметр(42)" = "ПравоЧтения" Или "#Параметр(42)" = "ПравоИзменения" #Тогда + #Параметр(43) <> НЕОПРЕДЕЛЕНО + И ИСТИНА В + ( // Проверка права пользователя на таблицу Значения, установленного в поле. + ВЫБРАТЬ ПЕРВЫЕ 1 ИСТИНА + ИЗ РегистрСведений.ТаблицыГруппДоступа КАК ТаблицыГруппДоступаПроверкаПрава + ГДЕ + ТаблицыГруппДоступаПроверкаПрава.ГруппаДоступа = ГруппыДоступа.Ссылка + И ТИПЗНАЧЕНИЯ(ТаблицыГруппДоступаПроверкаПрава.ТипТаблицы) = ТИПЗНАЧЕНИЯ(#Параметр(43)) + #Если Не "#Параметр(42)" = "ПравоЧтения" #Тогда + И ТаблицыГруппДоступаПроверкаПрава.ПравоИзменение + #КонецЕсли + ) +#ИначеЕсли "#Параметр(42)" = "ПравоЧтенияПоИдентификатору" Или "#Параметр(42)" = "ПравоИзмененияПоИдентификатору" #Тогда + ИСТИНА В + ( // Проверка права пользователя на таблицу, идентификатор которой указан в Значении, установленном в поле. + ВЫБРАТЬ ПЕРВЫЕ 1 ИСТИНА + ИЗ РегистрСведений.ТаблицыГруппДоступа КАК ТаблицыГруппДоступаПроверкаПрава + ГДЕ + ТаблицыГруппДоступаПроверкаПрава.ГруппаДоступа = ГруппыДоступа.Ссылка + И ТаблицыГруппДоступаПроверкаПрава.Таблица = #Параметр(43) + #Если Не "#Параметр(42)" = "ПравоЧтенияПоИдентификатору" #Тогда + И ТаблицыГруппДоступаПроверкаПрава.ПравоИзменение + #КонецЕсли + ) +#ИначеЕсли Не &ОграничениеДоступаНаУровнеЗаписейИспользуется #Тогда + ИСТИНА // Группа параметров отключена. +#ИначеЕсли "#Параметр(42)" = "НастройкиПрав" #Тогда + + ( + ИСТИНА В // Проверка, что пользователю или какой-нибудь группе пользователя право разрешено + ( + ВЫБРАТЬ ПЕРВЫЕ 1 ИСТИНА + ИЗ РегистрСведений.НастройкиПравОбъектов КАК НастройкиПрав + ВНУТРЕННЕЕ СОЕДИНЕНИЕ РегистрСведений.НаследованиеНастроекПравОбъектов КАК НаследованиеНастроек + ПО + НаследованиеНастроек.Объект = #Параметр(43) + И НастройкиПрав.Объект = НаследованиеНастроек.Родитель + #Если #ИмяТекущегоПраваДоступа = "Чтение" #Тогда + И НаследованиеНастроек.УровеньИспользования < НастройкиПрав.УровеньРазрешенияЧтения + #Иначе + #Если СтрСодержит(&ТаблицыСОтдельнымиНастройкамиПрав, "|#Параметр(1);") #Тогда + И НастройкиПрав.Таблица = СвойстваТекущейТаблицы.Ссылка + #Иначе + И НастройкиПрав.Таблица = ЗНАЧЕНИЕ(Справочник.ИдентификаторыОбъектовМетаданных.ПустаяСсылка) + #КонецЕсли + И НаследованиеНастроек.УровеньИспользования < НастройкиПрав.УровеньРазрешенияИзменения + #КонецЕсли + ВНУТРЕННЕЕ СОЕДИНЕНИЕ РегистрСведений.СоставыГруппПользователей КАК СоставыГруппПользователей + ПО + СоставыГруппПользователей.Пользователь = &АвторизованныйПользователь + И СоставыГруппПользователей.ГруппаПользователей = НастройкиПрав.Пользователь + ) + И НЕ ЛОЖЬ В // Проверка, что пользователю или какой-нибудь группе пользователя право запрещено. + ( + ВЫБРАТЬ ПЕРВЫЕ 1 ЛОЖЬ + ИЗ РегистрСведений.НастройкиПравОбъектов КАК НастройкиПрав + ВНУТРЕННЕЕ СОЕДИНЕНИЕ РегистрСведений.НаследованиеНастроекПравОбъектов КАК НаследованиеНастроек + ПО + НаследованиеНастроек.Объект = #Параметр(43) + И НастройкиПрав.Объект = НаследованиеНастроек.Родитель + #Если #ИмяТекущегоПраваДоступа = "Чтение" #Тогда + И НаследованиеНастроек.УровеньИспользования < НастройкиПрав.УровеньЗапрещенияЧтения + #Иначе + #Если СтрСодержит(&ТаблицыСОтдельнымиНастройкамиПрав, "|#Параметр(1);") #Тогда + И НастройкиПрав.Таблица = СвойстваТекущейТаблицы.Ссылка + #Иначе + И НастройкиПрав.Таблица = ЗНАЧЕНИЕ(Справочник.ИдентификаторыОбъектовМетаданных.ПустаяСсылка) + #КонецЕсли + И НаследованиеНастроек.УровеньИспользования < НастройкиПрав.УровеньЗапрещенияИзменения + #КонецЕсли + ВНУТРЕННЕЕ СОЕДИНЕНИЕ РегистрСведений.СоставыГруппПользователей КАК СоставыГруппПользователей + ПО + СоставыГруппПользователей.Пользователь = &АвторизованныйПользователь + И СоставыГруппПользователей.ГруппаПользователей = НастройкиПрав.Пользователь + ) + ) +#ИначеЕсли Не СтрСодержит(&ВсеВидыДоступаКромеСпециальных, ",#Параметр(42),") #Тогда + // Когда параметр задан неверно, вставляется строка, чтобы вызвать ошибку сборки ограничения доступа. + #Если СтрСодержит("#Параметр(42)", ",") #Тогда + НеверныйВидДоступа: "#Параметр(42)" - "Список имен видов доступа не найден" + #Иначе + НеверныйВидДоступа: "#Параметр(42)" - "Имя вида доступа не найдено" + #КонецЕсли +#ИначеЕсли &ВидыДоступаСОтключеннымИспользованием <> "Все" + И Не СтрСодержит(&ВидыДоступаСОтключеннымИспользованием, ",#Параметр(42),") #Тогда + + ( + ЕСТЬNULL(#Параметр(43), НЕОПРЕДЕЛЕНО) <> НЕОПРЕДЕЛЕНО + И + #Если (Не СтрСодержит(&ВидыДоступаСОтключеннымИспользованием, ",Пользователи,") И СтрСодержит(",#Параметр(42),", ",Пользователи,")) + Или (Не СтрСодержит(&ВидыДоступаСОтключеннымИспользованием, ",ВнешниеПользователи,") И СтрСодержит(",#Параметр(42),", ",ВнешниеПользователи,")) #Тогда + НЕ + ( + НЕ ИСТИНА В + ( + ВЫБРАТЬ ПЕРВЫЕ 1 ИСТИНА + ИЗ РегистрСведений.ГруппыЗначенийДоступа КАК ГруппыЗначенийДоступа + ГДЕ + ГруппыЗначенийДоступа.ЗначениеДоступа = #Параметр(43) + И ГруппыЗначенийДоступа.ГруппаЗначенийДоступа = &АвторизованныйПользователь + ) + И НЕ + #Иначе + ( + #КонецЕсли + ВЫБОР + КОГДА ИСТИНА В + ( + #Если СтрСодержит(&ВидыДоступаБезГруппДляЗначенияДоступа, ",#Параметр(42),") #Тогда + ВЫБРАТЬ ПЕРВЫЕ 1 ИСТИНА + ИЗ РегистрСведений.ЗначенияГруппДоступа КАК Значения + ГДЕ + Значения.ГруппаДоступа = ГруппыДоступа.Ссылка + И Значения.ЗначениеДоступа = #Параметр(43) + #ИначеЕсли "#Параметр(43)" = "Т.Ссылка" + И "#Параметр(42)" <> "Пользователи" + И "#Параметр(42)" <> "ВнешниеПользователи" #Тогда + #Если СтрСодержит("#Параметр(42)", ",") #Тогда + // Когда параметр задан неверно, вставляется строка, чтобы вызвать ошибку сборки ограничения доступа. + НеверныйВидДоступа: "#Параметр(42)" - "При проверке таблицы значения доступа можно указывать только один вид доступа" + #ИначеЕсли СтрСодержит(&ВидыДоступаСОднойГруппойДляЗначенияДоступа, ",#Параметр(42),") #Тогда + ВЫБРАТЬ ПЕРВЫЕ 1 ИСТИНА + ИЗ РегистрСведений.ЗначенияГруппДоступа КАК Значения + ГДЕ + Значения.ГруппаДоступа = ГруппыДоступа.Ссылка + И Значения.ЗначениеДоступа = Т.ГруппаДоступа + #Иначе // Значения доступа, для которых можно указать несколько групп значений доступа. + ВЫБРАТЬ ПЕРВЫЕ 1 ИСТИНА + ИЗ РегистрСведений.ЗначенияГруппДоступа КАК Значения + ВНУТРЕННЕЕ СОЕДИНЕНИЕ #Параметр(1).ГруппыДоступа КАК ГруппыЗначений + ПО + Значения.ГруппаДоступа = ГруппыДоступа.Ссылка + И Значения.ЗначениеДоступа = ГруппыЗначений.ГруппаДоступа + И ГруппыЗначений.Ссылка = #Параметр(43) + #КонецЕсли + #Иначе + ВЫБРАТЬ ПЕРВЫЕ 1 ИСТИНА + ИЗ РегистрСведений.ЗначенияГруппДоступа КАК Значения + ВНУТРЕННЕЕ СОЕДИНЕНИЕ РегистрСведений.ГруппыЗначенийДоступа КАК ГруппыЗначений + ПО + Значения.ГруппаДоступа = ГруппыДоступа.Ссылка + И Значения.ЗначениеДоступа = ГруппыЗначений.ГруппаЗначенийДоступа + И ГруппыЗначений.ЗначениеДоступа = #Параметр(43) + #КонецЕсли + ) + ТОГДА ИСТИНА + ИНАЧЕ ЛОЖЬ + КОНЕЦ + = + ВЫБОР + КОГДА ИСТИНА В + ( + ВЫБРАТЬ ПЕРВЫЕ 1 ИСТИНА + ИЗ РегистрСведений.ЗначенияГруппДоступаПоУмолчанию КАК ЗначенияПоУмолчанию + ГДЕ + ЗначенияПоУмолчанию.ГруппаДоступа = ГруппыДоступа.Ссылка + И ТИПЗНАЧЕНИЯ(ЗначенияПоУмолчанию.ТипЗначенийДоступа) = ТИПЗНАЧЕНИЯ(#Параметр(43)) + И ЗначенияПоУмолчанию.ВсеРазрешены = ЛОЖЬ + ) + ТОГДА ИСТИНА + ИНАЧЕ ЛОЖЬ + КОНЕЦ + ) + ) +#Иначе + ЕСТЬNULL(#Параметр(43), НЕОПРЕДЕЛЕНО) <> НЕОПРЕДЕЛЕНО +#КонецЕсли + + #Параметр(44) // [)[)][)]...] [ИЛИ|И] [([(][(]...] оператор И/ИЛИ с/без скобок. + +//// Проверка значения поля группы параметров 14. +#Если "#Параметр(45)" = "" И "#Параметр(46)" = "" #Тогда + // Группа параметров не используется. +#ИначеЕсли &ОграничениеДоступаНаУровнеЗаписейИспользуется И ("#Параметр(45)" = "Условие" Или "#Параметр(45)" = "") #Тогда + // Когда имя вида доступа "Условие" (или ""), тогда вместо имени поля задано условие. + ( #Параметр(46) ) +#ИначеЕсли "#Параметр(45)" = "ПравоЧтения" Или "#Параметр(45)" = "ПравоИзменения" #Тогда + #Параметр(46) <> НЕОПРЕДЕЛЕНО + И ИСТИНА В + ( // Проверка права пользователя на таблицу Значения, установленного в поле. + ВЫБРАТЬ ПЕРВЫЕ 1 ИСТИНА + ИЗ РегистрСведений.ТаблицыГруппДоступа КАК ТаблицыГруппДоступаПроверкаПрава + ГДЕ + ТаблицыГруппДоступаПроверкаПрава.ГруппаДоступа = ГруппыДоступа.Ссылка + И ТИПЗНАЧЕНИЯ(ТаблицыГруппДоступаПроверкаПрава.ТипТаблицы) = ТИПЗНАЧЕНИЯ(#Параметр(46)) + #Если Не "#Параметр(45)" = "ПравоЧтения" #Тогда + И ТаблицыГруппДоступаПроверкаПрава.ПравоИзменение + #КонецЕсли + ) +#ИначеЕсли "#Параметр(45)" = "ПравоЧтенияПоИдентификатору" Или "#Параметр(45)" = "ПравоИзмененияПоИдентификатору" #Тогда + ИСТИНА В + ( // Проверка права пользователя на таблицу, идентификатор которой указан в Значении, установленном в поле. + ВЫБРАТЬ ПЕРВЫЕ 1 ИСТИНА + ИЗ РегистрСведений.ТаблицыГруппДоступа КАК ТаблицыГруппДоступаПроверкаПрава + ГДЕ + ТаблицыГруппДоступаПроверкаПрава.ГруппаДоступа = ГруппыДоступа.Ссылка + И ТаблицыГруппДоступаПроверкаПрава.Таблица = #Параметр(46) + #Если Не "#Параметр(45)" = "ПравоЧтенияПоИдентификатору" #Тогда + И ТаблицыГруппДоступаПроверкаПрава.ПравоИзменение + #КонецЕсли + ) +#ИначеЕсли Не &ОграничениеДоступаНаУровнеЗаписейИспользуется #Тогда + ИСТИНА // Группа параметров отключена. +#ИначеЕсли "#Параметр(45)" = "НастройкиПрав" #Тогда + + ( + ИСТИНА В // Проверка, что пользователю или какой-нибудь группе пользователя право разрешено + ( + ВЫБРАТЬ ПЕРВЫЕ 1 ИСТИНА + ИЗ РегистрСведений.НастройкиПравОбъектов КАК НастройкиПрав + ВНУТРЕННЕЕ СОЕДИНЕНИЕ РегистрСведений.НаследованиеНастроекПравОбъектов КАК НаследованиеНастроек + ПО + НаследованиеНастроек.Объект = #Параметр(46) + И НастройкиПрав.Объект = НаследованиеНастроек.Родитель + #Если #ИмяТекущегоПраваДоступа = "Чтение" #Тогда + И НаследованиеНастроек.УровеньИспользования < НастройкиПрав.УровеньРазрешенияЧтения + #Иначе + #Если СтрСодержит(&ТаблицыСОтдельнымиНастройкамиПрав, "|#Параметр(1);") #Тогда + И НастройкиПрав.Таблица = СвойстваТекущейТаблицы.Ссылка + #Иначе + И НастройкиПрав.Таблица = ЗНАЧЕНИЕ(Справочник.ИдентификаторыОбъектовМетаданных.ПустаяСсылка) + #КонецЕсли + И НаследованиеНастроек.УровеньИспользования < НастройкиПрав.УровеньРазрешенияИзменения + #КонецЕсли + ВНУТРЕННЕЕ СОЕДИНЕНИЕ РегистрСведений.СоставыГруппПользователей КАК СоставыГруппПользователей + ПО + СоставыГруппПользователей.Пользователь = &АвторизованныйПользователь + И СоставыГруппПользователей.ГруппаПользователей = НастройкиПрав.Пользователь + ) + И НЕ ЛОЖЬ В // Проверка, что пользователю или какой-нибудь группе пользователя право запрещено. + ( + ВЫБРАТЬ ПЕРВЫЕ 1 ЛОЖЬ + ИЗ РегистрСведений.НастройкиПравОбъектов КАК НастройкиПрав + ВНУТРЕННЕЕ СОЕДИНЕНИЕ РегистрСведений.НаследованиеНастроекПравОбъектов КАК НаследованиеНастроек + ПО + НаследованиеНастроек.Объект = #Параметр(46) + И НастройкиПрав.Объект = НаследованиеНастроек.Родитель + #Если #ИмяТекущегоПраваДоступа = "Чтение" #Тогда + И НаследованиеНастроек.УровеньИспользования < НастройкиПрав.УровеньЗапрещенияЧтения + #Иначе + #Если СтрСодержит(&ТаблицыСОтдельнымиНастройкамиПрав, "|#Параметр(1);") #Тогда + И НастройкиПрав.Таблица = СвойстваТекущейТаблицы.Ссылка + #Иначе + И НастройкиПрав.Таблица = ЗНАЧЕНИЕ(Справочник.ИдентификаторыОбъектовМетаданных.ПустаяСсылка) + #КонецЕсли + И НаследованиеНастроек.УровеньИспользования < НастройкиПрав.УровеньЗапрещенияИзменения + #КонецЕсли + ВНУТРЕННЕЕ СОЕДИНЕНИЕ РегистрСведений.СоставыГруппПользователей КАК СоставыГруппПользователей + ПО + СоставыГруппПользователей.Пользователь = &АвторизованныйПользователь + И СоставыГруппПользователей.ГруппаПользователей = НастройкиПрав.Пользователь + ) + ) +#ИначеЕсли Не СтрСодержит(&ВсеВидыДоступаКромеСпециальных, ",#Параметр(45),") #Тогда + // Когда параметр задан неверно, вставляется строка, чтобы вызвать ошибку сборки ограничения доступа. + #Если СтрСодержит("#Параметр(45)", ",") #Тогда + НеверныйВидДоступа: "#Параметр(45)" - "Список имен видов доступа не найден" + #Иначе + НеверныйВидДоступа: "#Параметр(45)" - "Имя вида доступа не найдено" + #КонецЕсли +#ИначеЕсли &ВидыДоступаСОтключеннымИспользованием <> "Все" + И Не СтрСодержит(&ВидыДоступаСОтключеннымИспользованием, ",#Параметр(45),") #Тогда + + ( + ЕСТЬNULL(#Параметр(46), НЕОПРЕДЕЛЕНО) <> НЕОПРЕДЕЛЕНО + И + #Если (Не СтрСодержит(&ВидыДоступаСОтключеннымИспользованием, ",Пользователи,") И СтрСодержит(",#Параметр(45),", ",Пользователи,")) + Или (Не СтрСодержит(&ВидыДоступаСОтключеннымИспользованием, ",ВнешниеПользователи,") И СтрСодержит(",#Параметр(45),", ",ВнешниеПользователи,")) #Тогда + НЕ + ( + НЕ ИСТИНА В + ( + ВЫБРАТЬ ПЕРВЫЕ 1 ИСТИНА + ИЗ РегистрСведений.ГруппыЗначенийДоступа КАК ГруппыЗначенийДоступа + ГДЕ + ГруппыЗначенийДоступа.ЗначениеДоступа = #Параметр(46) + И ГруппыЗначенийДоступа.ГруппаЗначенийДоступа = &АвторизованныйПользователь + ) + И НЕ + #Иначе + ( + #КонецЕсли + ВЫБОР + КОГДА ИСТИНА В + ( + #Если СтрСодержит(&ВидыДоступаБезГруппДляЗначенияДоступа, ",#Параметр(45),") #Тогда + ВЫБРАТЬ ПЕРВЫЕ 1 ИСТИНА + ИЗ РегистрСведений.ЗначенияГруппДоступа КАК Значения + ГДЕ + Значения.ГруппаДоступа = ГруппыДоступа.Ссылка + И Значения.ЗначениеДоступа = #Параметр(46) + #ИначеЕсли "#Параметр(46)" = "Т.Ссылка" + И "#Параметр(45)" <> "Пользователи" + И "#Параметр(45)" <> "ВнешниеПользователи" #Тогда + #Если СтрСодержит("#Параметр(45)", ",") #Тогда + // Когда параметр задан неверно, вставляется строка, чтобы вызвать ошибку сборки ограничения доступа. + НеверныйВидДоступа: "#Параметр(45)" - "При проверке таблицы значения доступа можно указывать только один вид доступа" + #ИначеЕсли СтрСодержит(&ВидыДоступаСОднойГруппойДляЗначенияДоступа, ",#Параметр(45),") #Тогда + ВЫБРАТЬ ПЕРВЫЕ 1 ИСТИНА + ИЗ РегистрСведений.ЗначенияГруппДоступа КАК Значения + ГДЕ + Значения.ГруппаДоступа = ГруппыДоступа.Ссылка + И Значения.ЗначениеДоступа = Т.ГруппаДоступа + #Иначе // Значения доступа, для которых можно указать несколько групп значений доступа. + ВЫБРАТЬ ПЕРВЫЕ 1 ИСТИНА + ИЗ РегистрСведений.ЗначенияГруппДоступа КАК Значения + ВНУТРЕННЕЕ СОЕДИНЕНИЕ #Параметр(1).ГруппыДоступа КАК ГруппыЗначений + ПО + Значения.ГруппаДоступа = ГруппыДоступа.Ссылка + И Значения.ЗначениеДоступа = ГруппыЗначений.ГруппаДоступа + И ГруппыЗначений.Ссылка = #Параметр(46) + #КонецЕсли + #Иначе + ВЫБРАТЬ ПЕРВЫЕ 1 ИСТИНА + ИЗ РегистрСведений.ЗначенияГруппДоступа КАК Значения + ВНУТРЕННЕЕ СОЕДИНЕНИЕ РегистрСведений.ГруппыЗначенийДоступа КАК ГруппыЗначений + ПО + Значения.ГруппаДоступа = ГруппыДоступа.Ссылка + И Значения.ЗначениеДоступа = ГруппыЗначений.ГруппаЗначенийДоступа + И ГруппыЗначений.ЗначениеДоступа = #Параметр(46) + #КонецЕсли + ) + ТОГДА ИСТИНА + ИНАЧЕ ЛОЖЬ + КОНЕЦ + = + ВЫБОР + КОГДА ИСТИНА В + ( + ВЫБРАТЬ ПЕРВЫЕ 1 ИСТИНА + ИЗ РегистрСведений.ЗначенияГруппДоступаПоУмолчанию КАК ЗначенияПоУмолчанию + ГДЕ + ЗначенияПоУмолчанию.ГруппаДоступа = ГруппыДоступа.Ссылка + И ТИПЗНАЧЕНИЯ(ЗначенияПоУмолчанию.ТипЗначенийДоступа) = ТИПЗНАЧЕНИЯ(#Параметр(46)) + И ЗначенияПоУмолчанию.ВсеРазрешены = ЛОЖЬ + ) + ТОГДА ИСТИНА + ИНАЧЕ ЛОЖЬ + КОНЕЦ + ) + ) +#Иначе + ЕСТЬNULL(#Параметр(46), НЕОПРЕДЕЛЕНО) <> НЕОПРЕДЕЛЕНО +#КонецЕсли + + #Параметр(47) // [)[)][)]...] [ИЛИ|И] [([(][(]...] оператор И/ИЛИ с/без скобок. + +//// Проверка значения поля группы параметров 15. +#Если "#Параметр(48)" = "" И "#Параметр(49)" = "" #Тогда + // Группа параметров не используется. +#ИначеЕсли &ОграничениеДоступаНаУровнеЗаписейИспользуется И ("#Параметр(48)" = "Условие" Или "#Параметр(48)" = "") #Тогда + // Когда имя вида доступа "Условие" (или ""), тогда вместо имени поля задано условие. + ( #Параметр(49) ) +#ИначеЕсли "#Параметр(48)" = "ПравоЧтения" Или "#Параметр(48)" = "ПравоИзменения" #Тогда + #Параметр(49) <> НЕОПРЕДЕЛЕНО + И ИСТИНА В + ( // Проверка права пользователя на таблицу Значения, установленного в поле. + ВЫБРАТЬ ПЕРВЫЕ 1 ИСТИНА + ИЗ РегистрСведений.ТаблицыГруппДоступа КАК ТаблицыГруппДоступаПроверкаПрава + ГДЕ + ТаблицыГруппДоступаПроверкаПрава.ГруппаДоступа = ГруппыДоступа.Ссылка + И ТИПЗНАЧЕНИЯ(ТаблицыГруппДоступаПроверкаПрава.ТипТаблицы) = ТИПЗНАЧЕНИЯ(#Параметр(49)) + #Если Не "#Параметр(48)" = "ПравоЧтения" #Тогда + И ТаблицыГруппДоступаПроверкаПрава.ПравоИзменение + #КонецЕсли + ) +#ИначеЕсли "#Параметр(48)" = "ПравоЧтенияПоИдентификатору" Или "#Параметр(48)" = "ПравоИзмененияПоИдентификатору" #Тогда + ИСТИНА В + ( // Проверка права пользователя на таблицу, идентификатор которой указан в Значении, установленном в поле. + ВЫБРАТЬ ПЕРВЫЕ 1 ИСТИНА + ИЗ РегистрСведений.ТаблицыГруппДоступа КАК ТаблицыГруппДоступаПроверкаПрава + ГДЕ + ТаблицыГруппДоступаПроверкаПрава.ГруппаДоступа = ГруппыДоступа.Ссылка + И ТаблицыГруппДоступаПроверкаПрава.Таблица = #Параметр(49) + #Если Не "#Параметр(48)" = "ПравоЧтенияПоИдентификатору" #Тогда + И ТаблицыГруппДоступаПроверкаПрава.ПравоИзменение + #КонецЕсли + ) +#ИначеЕсли Не &ОграничениеДоступаНаУровнеЗаписейИспользуется #Тогда + ИСТИНА // Группа параметров отключена. +#ИначеЕсли "#Параметр(48)" = "НастройкиПрав" #Тогда + + ( + ИСТИНА В // Проверка, что пользователю или какой-нибудь группе пользователя право разрешено + ( + ВЫБРАТЬ ПЕРВЫЕ 1 ИСТИНА + ИЗ РегистрСведений.НастройкиПравОбъектов КАК НастройкиПрав + ВНУТРЕННЕЕ СОЕДИНЕНИЕ РегистрСведений.НаследованиеНастроекПравОбъектов КАК НаследованиеНастроек + ПО + НаследованиеНастроек.Объект = #Параметр(49) + И НастройкиПрав.Объект = НаследованиеНастроек.Родитель + #Если #ИмяТекущегоПраваДоступа = "Чтение" #Тогда + И НаследованиеНастроек.УровеньИспользования < НастройкиПрав.УровеньРазрешенияЧтения + #Иначе + #Если СтрСодержит(&ТаблицыСОтдельнымиНастройкамиПрав, "|#Параметр(1);") #Тогда + И НастройкиПрав.Таблица = СвойстваТекущейТаблицы.Ссылка + #Иначе + И НастройкиПрав.Таблица = ЗНАЧЕНИЕ(Справочник.ИдентификаторыОбъектовМетаданных.ПустаяСсылка) + #КонецЕсли + И НаследованиеНастроек.УровеньИспользования < НастройкиПрав.УровеньРазрешенияИзменения + #КонецЕсли + ВНУТРЕННЕЕ СОЕДИНЕНИЕ РегистрСведений.СоставыГруппПользователей КАК СоставыГруппПользователей + ПО + СоставыГруппПользователей.Пользователь = &АвторизованныйПользователь + И СоставыГруппПользователей.ГруппаПользователей = НастройкиПрав.Пользователь + ) + И НЕ ЛОЖЬ В // Проверка, что пользователю или какой-нибудь группе пользователя право запрещено. + ( + ВЫБРАТЬ ПЕРВЫЕ 1 ЛОЖЬ + ИЗ РегистрСведений.НастройкиПравОбъектов КАК НастройкиПрав + ВНУТРЕННЕЕ СОЕДИНЕНИЕ РегистрСведений.НаследованиеНастроекПравОбъектов КАК НаследованиеНастроек + ПО + НаследованиеНастроек.Объект = #Параметр(49) + И НастройкиПрав.Объект = НаследованиеНастроек.Родитель + #Если #ИмяТекущегоПраваДоступа = "Чтение" #Тогда + И НаследованиеНастроек.УровеньИспользования < НастройкиПрав.УровеньЗапрещенияЧтения + #Иначе + #Если СтрСодержит(&ТаблицыСОтдельнымиНастройкамиПрав, "|#Параметр(1);") #Тогда + И НастройкиПрав.Таблица = СвойстваТекущейТаблицы.Ссылка + #Иначе + И НастройкиПрав.Таблица = ЗНАЧЕНИЕ(Справочник.ИдентификаторыОбъектовМетаданных.ПустаяСсылка) + #КонецЕсли + И НаследованиеНастроек.УровеньИспользования < НастройкиПрав.УровеньЗапрещенияИзменения + #КонецЕсли + ВНУТРЕННЕЕ СОЕДИНЕНИЕ РегистрСведений.СоставыГруппПользователей КАК СоставыГруппПользователей + ПО + СоставыГруппПользователей.Пользователь = &АвторизованныйПользователь + И СоставыГруппПользователей.ГруппаПользователей = НастройкиПрав.Пользователь + ) + ) +#ИначеЕсли Не СтрСодержит(&ВсеВидыДоступаКромеСпециальных, ",#Параметр(48),") #Тогда + // Когда параметр задан неверно, вставляется строка, чтобы вызвать ошибку сборки ограничения доступа. + #Если СтрСодержит("#Параметр(48)", ",") #Тогда + НеверныйВидДоступа: "#Параметр(48)" - "Список имен видов доступа не найден" + #Иначе + НеверныйВидДоступа: "#Параметр(48)" - "Имя вида доступа не найдено" + #КонецЕсли +#ИначеЕсли &ВидыДоступаСОтключеннымИспользованием <> "Все" + И Не СтрСодержит(&ВидыДоступаСОтключеннымИспользованием, ",#Параметр(48),") #Тогда + + ( + ЕСТЬNULL(#Параметр(49), НЕОПРЕДЕЛЕНО) <> НЕОПРЕДЕЛЕНО + И + #Если (Не СтрСодержит(&ВидыДоступаСОтключеннымИспользованием, ",Пользователи,") И СтрСодержит(",#Параметр(48),", ",Пользователи,")) + Или (Не СтрСодержит(&ВидыДоступаСОтключеннымИспользованием, ",ВнешниеПользователи,") И СтрСодержит(",#Параметр(48),", ",ВнешниеПользователи,")) #Тогда + НЕ + ( + НЕ ИСТИНА В + ( + ВЫБРАТЬ ПЕРВЫЕ 1 ИСТИНА + ИЗ РегистрСведений.ГруппыЗначенийДоступа КАК ГруппыЗначенийДоступа + ГДЕ + ГруппыЗначенийДоступа.ЗначениеДоступа = #Параметр(49) + И ГруппыЗначенийДоступа.ГруппаЗначенийДоступа = &АвторизованныйПользователь + ) + И НЕ + #Иначе + ( + #КонецЕсли + ВЫБОР + КОГДА ИСТИНА В + ( + #Если СтрСодержит(&ВидыДоступаБезГруппДляЗначенияДоступа, ",#Параметр(48),") #Тогда + ВЫБРАТЬ ПЕРВЫЕ 1 ИСТИНА + ИЗ РегистрСведений.ЗначенияГруппДоступа КАК Значения + ГДЕ + Значения.ГруппаДоступа = ГруппыДоступа.Ссылка + И Значения.ЗначениеДоступа = #Параметр(49) + #ИначеЕсли "#Параметр(49)" = "Т.Ссылка" + И "#Параметр(48)" <> "Пользователи" + И "#Параметр(48)" <> "ВнешниеПользователи" #Тогда + #Если СтрСодержит("#Параметр(48)", ",") #Тогда + // Когда параметр задан неверно, вставляется строка, чтобы вызвать ошибку сборки ограничения доступа. + НеверныйВидДоступа: "#Параметр(48)" - "При проверке таблицы значения доступа можно указывать только один вид доступа" + #ИначеЕсли СтрСодержит(&ВидыДоступаСОднойГруппойДляЗначенияДоступа, ",#Параметр(48),") #Тогда + ВЫБРАТЬ ПЕРВЫЕ 1 ИСТИНА + ИЗ РегистрСведений.ЗначенияГруппДоступа КАК Значения + ГДЕ + Значения.ГруппаДоступа = ГруппыДоступа.Ссылка + И Значения.ЗначениеДоступа = Т.ГруппаДоступа + #Иначе // Значения доступа, для которых можно указать несколько групп значений доступа. + ВЫБРАТЬ ПЕРВЫЕ 1 ИСТИНА + ИЗ РегистрСведений.ЗначенияГруппДоступа КАК Значения + ВНУТРЕННЕЕ СОЕДИНЕНИЕ #Параметр(1).ГруппыДоступа КАК ГруппыЗначений + ПО + Значения.ГруппаДоступа = ГруппыДоступа.Ссылка + И Значения.ЗначениеДоступа = ГруппыЗначений.ГруппаДоступа + И ГруппыЗначений.Ссылка = #Параметр(49) + #КонецЕсли + #Иначе + ВЫБРАТЬ ПЕРВЫЕ 1 ИСТИНА + ИЗ РегистрСведений.ЗначенияГруппДоступа КАК Значения + ВНУТРЕННЕЕ СОЕДИНЕНИЕ РегистрСведений.ГруппыЗначенийДоступа КАК ГруппыЗначений + ПО + Значения.ГруппаДоступа = ГруппыДоступа.Ссылка + И Значения.ЗначениеДоступа = ГруппыЗначений.ГруппаЗначенийДоступа + И ГруппыЗначений.ЗначениеДоступа = #Параметр(49) + #КонецЕсли + ) + ТОГДА ИСТИНА + ИНАЧЕ ЛОЖЬ + КОНЕЦ + = + ВЫБОР + КОГДА ИСТИНА В + ( + ВЫБРАТЬ ПЕРВЫЕ 1 ИСТИНА + ИЗ РегистрСведений.ЗначенияГруппДоступаПоУмолчанию КАК ЗначенияПоУмолчанию + ГДЕ + ЗначенияПоУмолчанию.ГруппаДоступа = ГруппыДоступа.Ссылка + И ТИПЗНАЧЕНИЯ(ЗначенияПоУмолчанию.ТипЗначенийДоступа) = ТИПЗНАЧЕНИЯ(#Параметр(49)) + И ЗначенияПоУмолчанию.ВсеРазрешены = ЛОЖЬ + ) + ТОГДА ИСТИНА + ИНАЧЕ ЛОЖЬ + КОНЕЦ + ) + ) +#Иначе + ЕСТЬNULL(#Параметр(49), НЕОПРЕДЕЛЕНО) <> НЕОПРЕДЕЛЕНО +#КонецЕсли + + #Параметр(50) // [)[)][)]...] [ИЛИ|И] [([(][(]...] оператор И/ИЛИ с/без скобок. + +//// Проверка значения поля группы параметров 16. +#Если "#Параметр(51)" = "" И "#Параметр(52)" = "" #Тогда + // Группа параметров не используется. +#ИначеЕсли &ОграничениеДоступаНаУровнеЗаписейИспользуется И ("#Параметр(51)" = "Условие" Или "#Параметр(51)" = "") #Тогда + // Когда имя вида доступа "Условие" (или ""), тогда вместо имени поля задано условие. + ( #Параметр(52) ) +#ИначеЕсли "#Параметр(51)" = "ПравоЧтения" Или "#Параметр(51)" = "ПравоИзменения" #Тогда + #Параметр(52) <> НЕОПРЕДЕЛЕНО + И ИСТИНА В + ( // Проверка права пользователя на таблицу Значения, установленного в поле. + ВЫБРАТЬ ПЕРВЫЕ 1 ИСТИНА + ИЗ РегистрСведений.ТаблицыГруппДоступа КАК ТаблицыГруппДоступаПроверкаПрава + ГДЕ + ТаблицыГруппДоступаПроверкаПрава.ГруппаДоступа = ГруппыДоступа.Ссылка + И ТИПЗНАЧЕНИЯ(ТаблицыГруппДоступаПроверкаПрава.ТипТаблицы) = ТИПЗНАЧЕНИЯ(#Параметр(52)) + #Если Не "#Параметр(51)" = "ПравоЧтения" #Тогда + И ТаблицыГруппДоступаПроверкаПрава.ПравоИзменение + #КонецЕсли + ) +#ИначеЕсли "#Параметр(51)" = "ПравоЧтенияПоИдентификатору" Или "#Параметр(51)" = "ПравоИзмененияПоИдентификатору" #Тогда + ИСТИНА В + ( // Проверка права пользователя на таблицу, идентификатор которой указан в Значении, установленном в поле. + ВЫБРАТЬ ПЕРВЫЕ 1 ИСТИНА + ИЗ РегистрСведений.ТаблицыГруппДоступа КАК ТаблицыГруппДоступаПроверкаПрава + ГДЕ + ТаблицыГруппДоступаПроверкаПрава.ГруппаДоступа = ГруппыДоступа.Ссылка + И ТаблицыГруппДоступаПроверкаПрава.Таблица = #Параметр(52) + #Если Не "#Параметр(51)" = "ПравоЧтенияПоИдентификатору" #Тогда + И ТаблицыГруппДоступаПроверкаПрава.ПравоИзменение + #КонецЕсли + ) +#ИначеЕсли Не &ОграничениеДоступаНаУровнеЗаписейИспользуется #Тогда + ИСТИНА // Группа параметров отключена. +#ИначеЕсли "#Параметр(51)" = "НастройкиПрав" #Тогда + + ( + ИСТИНА В // Проверка, что пользователю или какой-нибудь группе пользователя право разрешено + ( + ВЫБРАТЬ ПЕРВЫЕ 1 ИСТИНА + ИЗ РегистрСведений.НастройкиПравОбъектов КАК НастройкиПрав + ВНУТРЕННЕЕ СОЕДИНЕНИЕ РегистрСведений.НаследованиеНастроекПравОбъектов КАК НаследованиеНастроек + ПО + НаследованиеНастроек.Объект = #Параметр(52) + И НастройкиПрав.Объект = НаследованиеНастроек.Родитель + #Если #ИмяТекущегоПраваДоступа = "Чтение" #Тогда + И НаследованиеНастроек.УровеньИспользования < НастройкиПрав.УровеньРазрешенияЧтения + #Иначе + #Если СтрСодержит(&ТаблицыСОтдельнымиНастройкамиПрав, "|#Параметр(1);") #Тогда + И НастройкиПрав.Таблица = СвойстваТекущейТаблицы.Ссылка + #Иначе + И НастройкиПрав.Таблица = ЗНАЧЕНИЕ(Справочник.ИдентификаторыОбъектовМетаданных.ПустаяСсылка) + #КонецЕсли + И НаследованиеНастроек.УровеньИспользования < НастройкиПрав.УровеньРазрешенияИзменения + #КонецЕсли + ВНУТРЕННЕЕ СОЕДИНЕНИЕ РегистрСведений.СоставыГруппПользователей КАК СоставыГруппПользователей + ПО + СоставыГруппПользователей.Пользователь = &АвторизованныйПользователь + И СоставыГруппПользователей.ГруппаПользователей = НастройкиПрав.Пользователь + ) + И НЕ ЛОЖЬ В // Проверка, что пользователю или какой-нибудь группе пользователя право запрещено. + ( + ВЫБРАТЬ ПЕРВЫЕ 1 ЛОЖЬ + ИЗ РегистрСведений.НастройкиПравОбъектов КАК НастройкиПрав + ВНУТРЕННЕЕ СОЕДИНЕНИЕ РегистрСведений.НаследованиеНастроекПравОбъектов КАК НаследованиеНастроек + ПО + НаследованиеНастроек.Объект = #Параметр(52) + И НастройкиПрав.Объект = НаследованиеНастроек.Родитель + #Если #ИмяТекущегоПраваДоступа = "Чтение" #Тогда + И НаследованиеНастроек.УровеньИспользования < НастройкиПрав.УровеньЗапрещенияЧтения + #Иначе + #Если СтрСодержит(&ТаблицыСОтдельнымиНастройкамиПрав, "|#Параметр(1);") #Тогда + И НастройкиПрав.Таблица = СвойстваТекущейТаблицы.Ссылка + #Иначе + И НастройкиПрав.Таблица = ЗНАЧЕНИЕ(Справочник.ИдентификаторыОбъектовМетаданных.ПустаяСсылка) + #КонецЕсли + И НаследованиеНастроек.УровеньИспользования < НастройкиПрав.УровеньЗапрещенияИзменения + #КонецЕсли + ВНУТРЕННЕЕ СОЕДИНЕНИЕ РегистрСведений.СоставыГруппПользователей КАК СоставыГруппПользователей + ПО + СоставыГруппПользователей.Пользователь = &АвторизованныйПользователь + И СоставыГруппПользователей.ГруппаПользователей = НастройкиПрав.Пользователь + ) + ) +#ИначеЕсли Не СтрСодержит(&ВсеВидыДоступаКромеСпециальных, ",#Параметр(51),") #Тогда + // Когда параметр задан неверно, вставляется строка, чтобы вызвать ошибку сборки ограничения доступа. + #Если СтрСодержит("#Параметр(51)", ",") #Тогда + НеверныйВидДоступа: "#Параметр(51)" - "Список имен видов доступа не найден" + #Иначе + НеверныйВидДоступа: "#Параметр(51)" - "Имя вида доступа не найдено" + #КонецЕсли +#ИначеЕсли &ВидыДоступаСОтключеннымИспользованием <> "Все" + И Не СтрСодержит(&ВидыДоступаСОтключеннымИспользованием, ",#Параметр(51),") #Тогда + + ( + ЕСТЬNULL(#Параметр(52), НЕОПРЕДЕЛЕНО) <> НЕОПРЕДЕЛЕНО + И + #Если (Не СтрСодержит(&ВидыДоступаСОтключеннымИспользованием, ",Пользователи,") И СтрСодержит(",#Параметр(51),", ",Пользователи,")) + Или (Не СтрСодержит(&ВидыДоступаСОтключеннымИспользованием, ",ВнешниеПользователи,") И СтрСодержит(",#Параметр(51),", ",ВнешниеПользователи,")) #Тогда + НЕ + ( + НЕ ИСТИНА В + ( + ВЫБРАТЬ ПЕРВЫЕ 1 ИСТИНА + ИЗ РегистрСведений.ГруппыЗначенийДоступа КАК ГруппыЗначенийДоступа + ГДЕ + ГруппыЗначенийДоступа.ЗначениеДоступа = #Параметр(52) + И ГруппыЗначенийДоступа.ГруппаЗначенийДоступа = &АвторизованныйПользователь + ) + И НЕ + #Иначе + ( + #КонецЕсли + ВЫБОР + КОГДА ИСТИНА В + ( + #Если СтрСодержит(&ВидыДоступаБезГруппДляЗначенияДоступа, ",#Параметр(51),") #Тогда + ВЫБРАТЬ ПЕРВЫЕ 1 ИСТИНА + ИЗ РегистрСведений.ЗначенияГруппДоступа КАК Значения + ГДЕ + Значения.ГруппаДоступа = ГруппыДоступа.Ссылка + И Значения.ЗначениеДоступа = #Параметр(52) + #ИначеЕсли "#Параметр(52)" = "Т.Ссылка" + И "#Параметр(51)" <> "Пользователи" + И "#Параметр(51)" <> "ВнешниеПользователи" #Тогда + #Если СтрСодержит("#Параметр(51)", ",") #Тогда + // Когда параметр задан неверно, вставляется строка, чтобы вызвать ошибку сборки ограничения доступа. + НеверныйВидДоступа: "#Параметр(51)" - "При проверке таблицы значения доступа можно указывать только один вид доступа" + #ИначеЕсли СтрСодержит(&ВидыДоступаСОднойГруппойДляЗначенияДоступа, ",#Параметр(51),") #Тогда + ВЫБРАТЬ ПЕРВЫЕ 1 ИСТИНА + ИЗ РегистрСведений.ЗначенияГруппДоступа КАК Значения + ГДЕ + Значения.ГруппаДоступа = ГруппыДоступа.Ссылка + И Значения.ЗначениеДоступа = Т.ГруппаДоступа + #Иначе // Значения доступа, для которых можно указать несколько групп значений доступа. + ВЫБРАТЬ ПЕРВЫЕ 1 ИСТИНА + ИЗ РегистрСведений.ЗначенияГруппДоступа КАК Значения + ВНУТРЕННЕЕ СОЕДИНЕНИЕ #Параметр(1).ГруппыДоступа КАК ГруппыЗначений + ПО + Значения.ГруппаДоступа = ГруппыДоступа.Ссылка + И Значения.ЗначениеДоступа = ГруппыЗначений.ГруппаДоступа + И ГруппыЗначений.Ссылка = #Параметр(52) + #КонецЕсли + #Иначе + ВЫБРАТЬ ПЕРВЫЕ 1 ИСТИНА + ИЗ РегистрСведений.ЗначенияГруппДоступа КАК Значения + ВНУТРЕННЕЕ СОЕДИНЕНИЕ РегистрСведений.ГруппыЗначенийДоступа КАК ГруппыЗначений + ПО + Значения.ГруппаДоступа = ГруппыДоступа.Ссылка + И Значения.ЗначениеДоступа = ГруппыЗначений.ГруппаЗначенийДоступа + И ГруппыЗначений.ЗначениеДоступа = #Параметр(52) + #КонецЕсли + ) + ТОГДА ИСТИНА + ИНАЧЕ ЛОЖЬ + КОНЕЦ + = + ВЫБОР + КОГДА ИСТИНА В + ( + ВЫБРАТЬ ПЕРВЫЕ 1 ИСТИНА + ИЗ РегистрСведений.ЗначенияГруппДоступаПоУмолчанию КАК ЗначенияПоУмолчанию + ГДЕ + ЗначенияПоУмолчанию.ГруппаДоступа = ГруппыДоступа.Ссылка + И ТИПЗНАЧЕНИЯ(ЗначенияПоУмолчанию.ТипЗначенийДоступа) = ТИПЗНАЧЕНИЯ(#Параметр(52)) + И ЗначенияПоУмолчанию.ВсеРазрешены = ЛОЖЬ + ) + ТОГДА ИСТИНА + ИНАЧЕ ЛОЖЬ + КОНЕЦ + ) + ) +#Иначе + ЕСТЬNULL(#Параметр(52), НЕОПРЕДЕЛЕНО) <> НЕОПРЕДЕЛЕНО +#КонецЕсли + + #Параметр(53) // [)[)][)]...] [ИЛИ|И] [([(][(]...] оператор И/ИЛИ с/без скобок. + + ) +) +#КонецЕсли + +#КонецЕсли // Информационная база заблокирована для обновления. + + diff --git a/SSL/src/Roles/ДобавлениеИзменениеНастроекОтправкиВГосключ/ДобавлениеИзменениеНастроекОтправкиВГосключ.mdo b/SSL/src/Roles/ДобавлениеИзменениеНастроекОтправкиВГосключ/ДобавлениеИзменениеНастроекОтправкиВГосключ.mdo new file mode 100644 index 000000000..04e1c735e --- /dev/null +++ b/SSL/src/Roles/ДобавлениеИзменениеНастроекОтправкиВГосключ/ДобавлениеИзменениеНастроекОтправкиВГосключ.mdo @@ -0,0 +1,8 @@ + + + ДобавлениеИзменениеНастроекОтправкиВГосключ + + ru + Добавление и изменение настроек отправки в Госключ + + diff --git a/SSL/src/Roles/ДобавлениеИзменениеОтветовНаВопросыАнкет/Rights.rights b/SSL/src/Roles/ДобавлениеИзменениеОтветовНаВопросыАнкет/Rights.rights index 1a9475a09..8095bd988 100644 --- a/SSL/src/Roles/ДобавлениеИзменениеОтветовНаВопросыАнкет/Rights.rights +++ b/SSL/src/Roles/ДобавлениеИзменениеОтветовНаВопросыАнкет/Rights.rights @@ -54,33 +54,6 @@ true - - Configuration.БиблиотекаСтандартныхПодсистем - - MainWindowModeNormal - true - - - MainWindowModeWorkplace - true - - - MainWindowModeEmbeddedWorkplace - true - - - MainWindowModeFullscreenWorkplace - true - - - MainWindowModeKiosk - true - - - AnalyticsSystemClient - true - - Document.Анкета @@ -204,6 +177,33 @@ true + + Configuration.БиблиотекаСтандартныхПодсистем + + MainWindowModeNormal + true + + + MainWindowModeWorkplace + true + + + MainWindowModeEmbeddedWorkplace + true + + + MainWindowModeFullscreenWorkplace + true + + + MainWindowModeKiosk + true + + + AnalyticsSystemClient + true + + ChartOfCharacteristicTypes.ВопросыДляАнкетирования diff --git a/SSL/src/Roles/ДобавлениеИзменениеПапокИФайлов/Rights.rights b/SSL/src/Roles/ДобавлениеИзменениеПапокИФайлов/Rights.rights index 5f0a19199..b843460a1 100644 --- a/SSL/src/Roles/ДобавлениеИзменениеПапокИФайлов/Rights.rights +++ b/SSL/src/Roles/ДобавлениеИзменениеПапокИФайлов/Rights.rights @@ -10,33 +10,6 @@ true - - Configuration.БиблиотекаСтандартныхПодсистем - - MainWindowModeNormal - true - - - MainWindowModeWorkplace - true - - - MainWindowModeEmbeddedWorkplace - true - - - MainWindowModeFullscreenWorkplace - true - - - MainWindowModeKiosk - true - - - AnalyticsSystemClient - true - - Catalog.Файлы.Command.Файлы @@ -121,6 +94,33 @@ true + + Configuration.БиблиотекаСтандартныхПодсистем + + MainWindowModeNormal + true + + + MainWindowModeWorkplace + true + + + MainWindowModeEmbeddedWorkplace + true + + + MainWindowModeFullscreenWorkplace + true + + + MainWindowModeKiosk + true + + + AnalyticsSystemClient + true + + CommonCommand.РедактируемыеФайлы diff --git a/SSL/src/Roles/ДобавлениеИзменениеПапокИФайловВнешнимиПользователями/Rights.rights b/SSL/src/Roles/ДобавлениеИзменениеПапокИФайловВнешнимиПользователями/Rights.rights index 88a9c9f87..49e6fd40a 100644 --- a/SSL/src/Roles/ДобавлениеИзменениеПапокИФайловВнешнимиПользователями/Rights.rights +++ b/SSL/src/Roles/ДобавлениеИзменениеПапокИФайловВнешнимиПользователями/Rights.rights @@ -10,33 +10,6 @@ true - - Configuration.БиблиотекаСтандартныхПодсистем - - MainWindowModeNormal - true - - - MainWindowModeWorkplace - true - - - MainWindowModeEmbeddedWorkplace - true - - - MainWindowModeFullscreenWorkplace - true - - - MainWindowModeKiosk - true - - - AnalyticsSystemClient - true - - Catalog.Файлы.Command.Файлы @@ -121,6 +94,33 @@ true + + Configuration.БиблиотекаСтандартныхПодсистем + + MainWindowModeNormal + true + + + MainWindowModeWorkplace + true + + + MainWindowModeEmbeddedWorkplace + true + + + MainWindowModeFullscreenWorkplace + true + + + MainWindowModeKiosk + true + + + AnalyticsSystemClient + true + + CommonCommand.РедактируемыеФайлы diff --git a/SSL/src/Roles/ДобавлениеИзменениеПодписантовМобильногоСервиса/Rights.rights b/SSL/src/Roles/ДобавлениеИзменениеПодписантовМобильногоСервиса/Rights.rights index c22fa773e..0919c325c 100644 --- a/SSL/src/Roles/ДобавлениеИзменениеПодписантовМобильногоСервиса/Rights.rights +++ b/SSL/src/Roles/ДобавлениеИзменениеПодписантовМобильногоСервиса/Rights.rights @@ -12,7 +12,13 @@ #Если &ОграничениеДоступаНаУровнеЗаписейУниверсально #Тогда #ДляОбъекта("") #Иначе -ГДЕ ИСТИНА +#ПоЗначениямРасширенный("Справочник.ПодписантыСервисаМобильнойПодписи", "", "", +"ЛЕВОЕ СОЕДИНЕНИЕ Справочник.ПодписантыСервисаМобильнойПодписи.Пользователи КАК Т1 +ПО Т1.Ссылка = Т.Ссылка", +"", +"Условие", "Т.Добавил = &ТекущийПользователь","ИЛИ", +"Условие", "Т1.Пользователь = &ТекущийПользователь", "", +"","","", "","","", "","","", "","","", "","","", "","","", "","","", "","","", "","","", "","","", "","","", "","","", "","","", "","","") #КонецЕсли @@ -76,45 +82,12 @@ - InformationRegister.СервисМобильнойПодписиСтатусы.Command.ОтправленныеНаПодписьДокументы + Catalog.ПодписантыСервисаМобильнойПодписи.Command.ПодписантыСервисаМобильнойПодписи View true - - InformationRegister.СервисМобильнойПодписиСтатусы - - Read - true - - #Если &ОграничениеДоступаНаУровнеЗаписейУниверсально #Тогда -#ДляРегистра("ИдентификаторыОбъектовМетаданных.РегистрСведенийСервисМобильнойПодписиСтатусы", "Отправитель", "", "", "", "") -#Иначе -ГДЕ Отправитель = &ТекущийПользователь -#КонецЕсли - - - - Update - true - - #Если &ОграничениеДоступаНаУровнеЗаписейУниверсально #Тогда -#ДляРегистра("ИдентификаторыОбъектовМетаданных.РегистрСведенийСервисМобильнойПодписиСтатусы", "Отправитель", "", "", "", "") -#Иначе -ГДЕ Отправитель = &ТекущийПользователь -#КонецЕсли - - - - View - true - - - Edit - true - - Configuration.БиблиотекаСтандартныхПодсистем @@ -347,386 +320,6 @@ #КонецЕсли #КонецЕсли -#КонецЕсли - - - ДляРегистра(Регистр, Поле1, Поле2, Поле3, Поле4, Поле5) - // ДляРегистра(Регистр, Поле1, Поле2 = "", Поле3 = "", Поле4 = "", Поле5 = "") -// Шаблон используется для ограничения групп записей регистров. -// -// Параметры: -// Регистр - имя предопределенного элемента справочника Идентификаторы объектов метаданных или справочника -// Идентификаторы объектов расширений в формате: имя справочника с точкой и полное имя таблицы -// без точки, например, ИдентификаторыОбъектовМетаданных.РегистрНакопленияОстаткиНаСкладах; -// - имя отдельного регистра ключей в формате КлючиДоступаКРегистру<ОстатокИмени>, -// например, КлючиДоступаКРегиструОстаткиНаСкладах. -// Поле1 - имя первого поля (измерения, ресурса, реквизита), которое будет соединяться с полем Поле1 -// регистра сведений КлючиДоступаКРегистр* -// Поле2 - аналогично предыдущему параметру, если используется в ограничении доступа к регистру. -// ... -// Поле5 - аналогично предыдущему параметру, если используется в ограничении доступа к регистру. - -#Если &СпискиСОтключеннымОграничениемЧтения = "Неопределено" #Тогда - // Информационная база заблокирована для обновления. - ГДЕ ЛОЖЬ - -#ИначеЕсли Не СтрСодержит(&ВерсииШаблоновОграниченияДоступа, ",ДляРегистра9,") #Тогда - Ошибка: Требуется обновить шаблон на актуальную версию, поставляемую в роли ИзменениеУчастниковГруппДоступа по причине: Используется устаревшая версия 9 шаблона ограничения доступа ДляРегистра. Объект: #ИмяТекущейТаблицы, Право: #ИмяТекущегоПраваДоступа. - -#ИначеЕсли &СпискиСОтключеннымОграничениемЧтения = "Все" #Тогда - // У пользователя отключены все виды доступа или - // ограничение на уровне записей не используется. - ГДЕ ИСТИНА - -#ИначеЕсли СтрСодержит(&СпискиСОтключеннымОграничениемЧтения, #ИмяТекущейТаблицы + ";") #Тогда - // У пользователя отключено ограничение для текущей таблицы. - ГДЕ ИСТИНА - -#ИначеЕсли СтрСодержит(&ВерсииШаблоновОграниченияДоступа, ",ТребуетсяПерезапуститьСеанс,") #Тогда - Ошибка: Версия программы обновлена, требуется перезапустить сеанс. Объект: #ИмяТекущейТаблицы, Право: #ИмяТекущегоПраваДоступа. - -#ИначеЕсли #ИмяТекущегоПраваДоступа <> "Чтение" #Тогда - // Проверка прав Добавление, Изменение, Удаление выполняется ПередЗаписью / ПриЗаписи. - ГДЕ ИСТИНА - -#ИначеЕсли СтрСодержит(&СпискиСОграничениемЧерезКлючиДоступаГруппДоступа, #ИмяТекущейТаблицы + ";0") #Тогда - ГДЕ ЛОЖЬ - -#ИначеЕсли СтрСодержит(&СпискиСОграничениемЧерезКлючиДоступаГруппДоступа, #ИмяТекущейТаблицы + ";1") #Тогда - Ошибка: Внешние пользователи отключены. - -#ИначеЕсли Не СтрСодержит(&СпискиСОграничениемЧерезКлючиДоступаГруппДоступа, #ИмяТекущейТаблицы + ":[#Регистр]:#Поле1:#Поле2:#Поле3:#Поле4:#Поле5;") - И Не СтрСодержит(&СпискиСОграничениемЧерезКлючиДоступаПользователей, #ИмяТекущейТаблицы + ":[#Регистр]:#Поле1:#Поле2:#Поле3:#Поле4:#Поле5;") #Тогда - - Ошибка: Требуется актуализировать ограничение доступа по причине: Не удалось определить вариант ограничения доступа в параметрах сеанса для шаблона ДляРегистра со значениями параметров "#Регистр", "#Поле1", "#Поле2", "#Поле3", "#Поле4", "#Поле5". Объект: #ИмяТекущейТаблицы, Право: #ИмяТекущегоПраваДоступа. -#Иначе - -ТекущаяТаблица ГДЕ ИСТИНА В - ( - ВЫБРАТЬ ПЕРВЫЕ 1 ИСТИНА -#Если Не СтрСодержит("#Регистр", "КлючиДоступаКРегистру") #Тогда - ИЗ РегистрСведений.КлючиДоступаКРегистрам КАК КлючиДоступаКРегистрам -#Иначе - ИЗ РегистрСведений.#Регистр КАК КлючиДоступаКРегистрам -#КонецЕсли - #Если СтрСодержит(&СпискиСОграничениемЧерезКлючиДоступаГруппДоступа, #ИмяТекущейТаблицы + ":[#Регистр]:#Поле1:#Поле2:#Поле3:#Поле4:#Поле5;") #Тогда - ЛЕВОЕ СОЕДИНЕНИЕ РегистрСведений.КлючиДоступаНаборовГруппДоступа КАК КлючиДоступаНаборовГруппДоступа - ПО - КлючиДоступаНаборовГруппДоступа.КлючДоступа = КлючиДоступаКРегистрам.КлючДоступа - И КлючиДоступаНаборовГруппДоступа.НаборГруппДоступа = &РазрешенныйНаборГруппДоступа - #КонецЕсли - #Если СтрСодержит(&СпискиСОграничениемЧерезКлючиДоступаГруппДоступа, #ИмяТекущейТаблицы + ":[#Регистр]:#Поле1:#Поле2:#Поле3:#Поле4:#Поле5;*") #Тогда - - ЛЕВОЕ СОЕДИНЕНИЕ РегистрСведений.КлючиДоступаНаборовГруппДоступа КАК КлючиДоступаРазрешенногоНабораГруппДоступа - ПО - КлючиДоступаРазрешенногоНабораГруппДоступа.КлючДоступа = КлючиДоступаКРегистрам.КлючДоступа - И КлючиДоступаРазрешенногоНабораГруппДоступа.НаборГруппДоступа = &РазрешенныйПустойНаборГруппДоступа - #КонецЕсли - #Если СтрСодержит(&СпискиСОграничениемЧерезКлючиДоступаПользователей, #ИмяТекущейТаблицы + ":[#Регистр]:#Поле1:#Поле2:#Поле3:#Поле4:#Поле5;") #Тогда - - #Если &ТекущийВнешнийПользователь = Значение(Справочник.ВнешниеПользователи.ПустаяСсылка) #Тогда - ЛЕВОЕ СОЕДИНЕНИЕ РегистрСведений.КлючиДоступаПользователей КАК КлючиДоступаПользователей - ПО - КлючиДоступаПользователей.КлючДоступа = КлючиДоступаКРегистрам.КлючДоступа - И КлючиДоступаПользователей.Пользователь = &РазрешенныйПользователь - #Иначе - ЛЕВОЕ СОЕДИНЕНИЕ РегистрСведений.КлючиДоступаВнешнихПользователей КАК КлючиДоступаПользователей - ПО - КлючиДоступаПользователей.КлючДоступа = КлючиДоступаКРегистрам.КлючДоступа - И КлючиДоступаПользователей.ВнешнийПользователь = &РазрешенныйПользователь - #КонецЕсли - #КонецЕсли - #Если СтрСодержит(&СпискиСОграничениемЧерезКлючиДоступаПользователей, #ИмяТекущейТаблицы + ":[#Регистр]:#Поле1:#Поле2:#Поле3:#Поле4:#Поле5;+") #Тогда - - #Если &ТекущийВнешнийПользователь = Значение(Справочник.ВнешниеПользователи.ПустаяСсылка) #Тогда - ЛЕВОЕ СОЕДИНЕНИЕ РегистрСведений.КлючиДоступаПользователей КАК КлючиДоступаНаборовГруппПользователей - ПО - КлючиДоступаНаборовГруппПользователей.КлючДоступа = КлючиДоступаКРегистрам.КлючДоступа - И КлючиДоступаНаборовГруппПользователей.Пользователь = &РазрешенныйНаборГруппПользователей - #Иначе - ЛЕВОЕ СОЕДИНЕНИЕ РегистрСведений.КлючиДоступаВнешнихПользователей КАК КлючиДоступаНаборовГруппПользователей - ПО - КлючиДоступаНаборовГруппПользователей.КлючДоступа = КлючиДоступаКРегистрам.КлючДоступа - И КлючиДоступаНаборовГруппПользователей.ВнешнийПользователь = &РазрешенныйНаборГруппПользователей - #КонецЕсли - #КонецЕсли - ГДЕ - #Если Не СтрСодержит("#Регистр", "КлючиДоступаКРегистру") #Тогда - КлючиДоступаКРегистрам.Регистр = Значение(Справочник.#Регистр) - #Иначе - ИСТИНА - #КонецЕсли - И - ( - КлючиДоступаКРегистрам.ВариантДоступа = - ( - #Если &ТекущийВнешнийПользователь = Значение(Справочник.ВнешниеПользователи.ПустаяСсылка) #Тогда 0 #Иначе 1 #КонецЕсли - #Если Не СтрСодержит(&СпискиСОграничениемПоПолям, #ИмяТекущейТаблицы + ":Вариант1Версия1=0") #Тогда - #Если СтрСодержит(&СпискиСОграничениемПоПолям, #ИмяТекущейТаблицы + ":Вариант1Поле1=Поле") #Тогда + 2 #КонецЕсли - #Если СтрСодержит(&СпискиСОграничениемПоПолям, #ИмяТекущейТаблицы + ":Вариант1Поле2=Поле") #Тогда + 2 #КонецЕсли - #Если СтрСодержит(&СпискиСОграничениемПоПолям, #ИмяТекущейТаблицы + ":Вариант1Поле3=Поле") #Тогда + 2 #КонецЕсли - #Если СтрСодержит(&СпискиСОграничениемПоПолям, #ИмяТекущейТаблицы + ":Вариант1Поле4=Поле") #Тогда + 2 #КонецЕсли - #Если СтрСодержит(&СпискиСОграничениемПоПолям, #ИмяТекущейТаблицы + ":Вариант1Поле5=Поле") #Тогда + 2 #КонецЕсли - #Если СтрСодержит(&СпискиСОграничениемПоПолям, #ИмяТекущейТаблицы + ":Версия1Бит0=1") #Тогда + 64 #КонецЕсли - #Если СтрСодержит(&СпискиСОграничениемПоПолям, #ИмяТекущейТаблицы + ":Версия1Бит1=1") #Тогда + 128 #КонецЕсли - #Если СтрСодержит(&СпискиСОграничениемПоПолям, #ИмяТекущейТаблицы + ":Версия1Бит2=1") #Тогда + 256 #КонецЕсли - #Если СтрСодержит(&СпискиСОграничениемПоПолям, #ИмяТекущейТаблицы + ":Версия1Бит3=1") #Тогда + 512 #КонецЕсли - #КонецЕсли - ) - #Если СтрСодержит(&СпискиСОграничениемПоПолям, #ИмяТекущейТаблицы + ":Вариант1Поле1=Поле1;") #Тогда - И КлючиДоступаКРегистрам.Поле1 = ТекущаяТаблица.#Поле1 - #ИначеЕсли СтрСодержит(&СпискиСОграничениемПоПолям, #ИмяТекущейТаблицы + ":Вариант1Поле1=Поле2;") #Тогда - И КлючиДоступаКРегистрам.Поле1 = ТекущаяТаблица.#Поле2 - #ИначеЕсли СтрСодержит(&СпискиСОграничениемПоПолям, #ИмяТекущейТаблицы + ":Вариант1Поле1=Поле3;") #Тогда - И КлючиДоступаКРегистрам.Поле1 = ТекущаяТаблица.#Поле3 - #ИначеЕсли СтрСодержит(&СпискиСОграничениемПоПолям, #ИмяТекущейТаблицы + ":Вариант1Поле1=Поле4;") #Тогда - И КлючиДоступаКРегистрам.Поле1 = ТекущаяТаблица.#Поле4 - #ИначеЕсли СтрСодержит(&СпискиСОграничениемПоПолям, #ИмяТекущейТаблицы + ":Вариант1Поле1=Поле5;") #Тогда - И КлючиДоступаКРегистрам.Поле1 = ТекущаяТаблица.#Поле5 - #КонецЕсли - - #Если СтрСодержит(&СпискиСОграничениемПоПолям, #ИмяТекущейТаблицы + ":Вариант1Поле2=Поле2;") #Тогда - И КлючиДоступаКРегистрам.Поле2 = ТекущаяТаблица.#Поле2 - #ИначеЕсли СтрСодержит(&СпискиСОграничениемПоПолям, #ИмяТекущейТаблицы + ":Вариант1Поле2=Поле3;") #Тогда - И КлючиДоступаКРегистрам.Поле2 = ТекущаяТаблица.#Поле3 - #ИначеЕсли СтрСодержит(&СпискиСОграничениемПоПолям, #ИмяТекущейТаблицы + ":Вариант1Поле2=Поле4;") #Тогда - И КлючиДоступаКРегистрам.Поле2 = ТекущаяТаблица.#Поле4 - #ИначеЕсли СтрСодержит(&СпискиСОграничениемПоПолям, #ИмяТекущейТаблицы + ":Вариант1Поле2=Поле5;") #Тогда - И КлючиДоступаКРегистрам.Поле2 = ТекущаяТаблица.#Поле5 - #КонецЕсли - - #Если СтрСодержит(&СпискиСОграничениемПоПолям, #ИмяТекущейТаблицы + ":Вариант1Поле3=Поле3;") #Тогда - И КлючиДоступаКРегистрам.Поле3 = ТекущаяТаблица.#Поле3 - #ИначеЕсли СтрСодержит(&СпискиСОграничениемПоПолям, #ИмяТекущейТаблицы + ":Вариант1Поле3=Поле4;") #Тогда - И КлючиДоступаКРегистрам.Поле3 = ТекущаяТаблица.#Поле4 - #ИначеЕсли СтрСодержит(&СпискиСОграничениемПоПолям, #ИмяТекущейТаблицы + ":Вариант1Поле3=Поле5;") #Тогда - И КлючиДоступаКРегистрам.Поле3 = ТекущаяТаблица.#Поле5 - #КонецЕсли - - #Если СтрСодержит(&СпискиСОграничениемПоПолям, #ИмяТекущейТаблицы + ":Вариант1Поле4=Поле4;") #Тогда - И КлючиДоступаКРегистрам.Поле4 = ТекущаяТаблица.#Поле4 - #ИначеЕсли СтрСодержит(&СпискиСОграничениемПоПолям, #ИмяТекущейТаблицы + ":Вариант1Поле4=Поле5;") #Тогда - И КлючиДоступаКРегистрам.Поле4 = ТекущаяТаблица.#Поле5 - #КонецЕсли - - #Если СтрСодержит(&СпискиСОграничениемПоПолям, #ИмяТекущейТаблицы + ":Вариант1Поле5=Поле5;") #Тогда - И КлючиДоступаКРегистрам.Поле5 = ТекущаяТаблица.#Поле5 - #КонецЕсли - - #Если СтрСодержит(&СпискиСОграничениемПоПолям, #ИмяТекущейТаблицы + ":Вариант2") #Тогда - - ИЛИ - КлючиДоступаКРегистрам.ВариантДоступа = - ( - #Если &ТекущийВнешнийПользователь = Значение(Справочник.ВнешниеПользователи.ПустаяСсылка) #Тогда 0 #Иначе 1 #КонецЕсли - #Если Не СтрСодержит(&СпискиСОграничениемПоПолям, #ИмяТекущейТаблицы + ":Вариант2Версия2=0") #Тогда - #Если СтрСодержит(&СпискиСОграничениемПоПолям, #ИмяТекущейТаблицы + ":Вариант2Поле1=Поле") #Тогда + 2 #КонецЕсли - #Если СтрСодержит(&СпискиСОграничениемПоПолям, #ИмяТекущейТаблицы + ":Вариант2Поле2=Поле") #Тогда + 2 #КонецЕсли - #Если СтрСодержит(&СпискиСОграничениемПоПолям, #ИмяТекущейТаблицы + ":Вариант2Поле3=Поле") #Тогда + 2 #КонецЕсли - #Если СтрСодержит(&СпискиСОграничениемПоПолям, #ИмяТекущейТаблицы + ":Вариант2Поле4=Поле") #Тогда + 2 #КонецЕсли - #Если СтрСодержит(&СпискиСОграничениемПоПолям, #ИмяТекущейТаблицы + ":Вариант2Поле5=Поле") #Тогда + 2 #КонецЕсли - #Если СтрСодержит(&СпискиСОграничениемПоПолям, #ИмяТекущейТаблицы + ":Версия2Бит0=1") #Тогда + 64 #КонецЕсли - #Если СтрСодержит(&СпискиСОграничениемПоПолям, #ИмяТекущейТаблицы + ":Версия2Бит1=1") #Тогда + 128 #КонецЕсли - #Если СтрСодержит(&СпискиСОграничениемПоПолям, #ИмяТекущейТаблицы + ":Версия2Бит2=1") #Тогда + 256 #КонецЕсли - #Если СтрСодержит(&СпискиСОграничениемПоПолям, #ИмяТекущейТаблицы + ":Версия2Бит3=1") #Тогда + 512 #КонецЕсли - #КонецЕсли - ) - #Если СтрСодержит(&СпискиСОграничениемПоПолям, #ИмяТекущейТаблицы + ":Вариант2Поле1=Поле1;") #Тогда - И КлючиДоступаКРегистрам.Поле1 = ТекущаяТаблица.#Поле1 - #ИначеЕсли СтрСодержит(&СпискиСОграничениемПоПолям, #ИмяТекущейТаблицы + ":Вариант2Поле1=Поле2;") #Тогда - И КлючиДоступаКРегистрам.Поле1 = ТекущаяТаблица.#Поле2 - #ИначеЕсли СтрСодержит(&СпискиСОграничениемПоПолям, #ИмяТекущейТаблицы + ":Вариант2Поле1=Поле3;") #Тогда - И КлючиДоступаКРегистрам.Поле1 = ТекущаяТаблица.#Поле3 - #ИначеЕсли СтрСодержит(&СпискиСОграничениемПоПолям, #ИмяТекущейТаблицы + ":Вариант2Поле1=Поле4;") #Тогда - И КлючиДоступаКРегистрам.Поле1 = ТекущаяТаблица.#Поле4 - #ИначеЕсли СтрСодержит(&СпискиСОграничениемПоПолям, #ИмяТекущейТаблицы + ":Вариант2Поле1=Поле5;") #Тогда - И КлючиДоступаКРегистрам.Поле1 = ТекущаяТаблица.#Поле5 - #КонецЕсли - - #Если СтрСодержит(&СпискиСОграничениемПоПолям, #ИмяТекущейТаблицы + ":Вариант2Поле2=Поле2;") #Тогда - И КлючиДоступаКРегистрам.Поле2 = ТекущаяТаблица.#Поле2 - #ИначеЕсли СтрСодержит(&СпискиСОграничениемПоПолям, #ИмяТекущейТаблицы + ":Вариант2Поле2=Поле3;") #Тогда - И КлючиДоступаКРегистрам.Поле2 = ТекущаяТаблица.#Поле3 - #ИначеЕсли СтрСодержит(&СпискиСОграничениемПоПолям, #ИмяТекущейТаблицы + ":Вариант2Поле2=Поле4;") #Тогда - И КлючиДоступаКРегистрам.Поле2 = ТекущаяТаблица.#Поле4 - #ИначеЕсли СтрСодержит(&СпискиСОграничениемПоПолям, #ИмяТекущейТаблицы + ":Вариант2Поле2=Поле5;") #Тогда - И КлючиДоступаКРегистрам.Поле2 = ТекущаяТаблица.#Поле5 - #КонецЕсли - - #Если СтрСодержит(&СпискиСОграничениемПоПолям, #ИмяТекущейТаблицы + ":Вариант2Поле3=Поле3;") #Тогда - И КлючиДоступаКРегистрам.Поле3 = ТекущаяТаблица.#Поле3 - #ИначеЕсли СтрСодержит(&СпискиСОграничениемПоПолям, #ИмяТекущейТаблицы + ":Вариант2Поле3=Поле4;") #Тогда - И КлючиДоступаКРегистрам.Поле3 = ТекущаяТаблица.#Поле4 - #ИначеЕсли СтрСодержит(&СпискиСОграничениемПоПолям, #ИмяТекущейТаблицы + ":Вариант2Поле3=Поле5;") #Тогда - И КлючиДоступаКРегистрам.Поле3 = ТекущаяТаблица.#Поле5 - #КонецЕсли - - #Если СтрСодержит(&СпискиСОграничениемПоПолям, #ИмяТекущейТаблицы + ":Вариант2Поле4=Поле4;") #Тогда - И КлючиДоступаКРегистрам.Поле4 = ТекущаяТаблица.#Поле4 - #ИначеЕсли СтрСодержит(&СпискиСОграничениемПоПолям, #ИмяТекущейТаблицы + ":Вариант2Поле4=Поле5;") #Тогда - И КлючиДоступаКРегистрам.Поле4 = ТекущаяТаблица.#Поле5 - #КонецЕсли - - #Если СтрСодержит(&СпискиСОграничениемПоПолям, #ИмяТекущейТаблицы + ":Вариант2Поле5=Поле5;") #Тогда - И КлючиДоступаКРегистрам.Поле5 = ТекущаяТаблица.#Поле5 - #КонецЕсли - - #КонецЕсли - #Если СтрСодержит(&СпискиСОграничениемПоПолям, #ИмяТекущейТаблицы + ":Вариант3") #Тогда - - ИЛИ - КлючиДоступаКРегистрам.ВариантДоступа = - ( - #Если &ТекущийВнешнийПользователь = Значение(Справочник.ВнешниеПользователи.ПустаяСсылка) #Тогда 0 #Иначе 1 #КонецЕсли - #Если Не СтрСодержит(&СпискиСОграничениемПоПолям, #ИмяТекущейТаблицы + ":Вариант3Версия3=0") #Тогда - #Если СтрСодержит(&СпискиСОграничениемПоПолям, #ИмяТекущейТаблицы + ":Вариант3Поле1=Поле") #Тогда + 2 #КонецЕсли - #Если СтрСодержит(&СпискиСОграничениемПоПолям, #ИмяТекущейТаблицы + ":Вариант3Поле2=Поле") #Тогда + 2 #КонецЕсли - #Если СтрСодержит(&СпискиСОграничениемПоПолям, #ИмяТекущейТаблицы + ":Вариант3Поле3=Поле") #Тогда + 2 #КонецЕсли - #Если СтрСодержит(&СпискиСОграничениемПоПолям, #ИмяТекущейТаблицы + ":Вариант3Поле4=Поле") #Тогда + 2 #КонецЕсли - #Если СтрСодержит(&СпискиСОграничениемПоПолям, #ИмяТекущейТаблицы + ":Вариант3Поле5=Поле") #Тогда + 2 #КонецЕсли - #Если СтрСодержит(&СпискиСОграничениемПоПолям, #ИмяТекущейТаблицы + ":Версия3Бит0=1") #Тогда + 64 #КонецЕсли - #Если СтрСодержит(&СпискиСОграничениемПоПолям, #ИмяТекущейТаблицы + ":Версия3Бит1=1") #Тогда + 128 #КонецЕсли - #Если СтрСодержит(&СпискиСОграничениемПоПолям, #ИмяТекущейТаблицы + ":Версия3Бит2=1") #Тогда + 256 #КонецЕсли - #Если СтрСодержит(&СпискиСОграничениемПоПолям, #ИмяТекущейТаблицы + ":Версия3Бит3=1") #Тогда + 512 #КонецЕсли - #КонецЕсли - ) - #Если СтрСодержит(&СпискиСОграничениемПоПолям, #ИмяТекущейТаблицы + ":Вариант3Поле1=Поле1;") #Тогда - И КлючиДоступаКРегистрам.Поле1 = ТекущаяТаблица.#Поле1 - #ИначеЕсли СтрСодержит(&СпискиСОграничениемПоПолям, #ИмяТекущейТаблицы + ":Вариант3Поле1=Поле2;") #Тогда - И КлючиДоступаКРегистрам.Поле1 = ТекущаяТаблица.#Поле2 - #ИначеЕсли СтрСодержит(&СпискиСОграничениемПоПолям, #ИмяТекущейТаблицы + ":Вариант3Поле1=Поле3;") #Тогда - И КлючиДоступаКРегистрам.Поле1 = ТекущаяТаблица.#Поле3 - #ИначеЕсли СтрСодержит(&СпискиСОграничениемПоПолям, #ИмяТекущейТаблицы + ":Вариант3Поле1=Поле4;") #Тогда - И КлючиДоступаКРегистрам.Поле1 = ТекущаяТаблица.#Поле4 - #ИначеЕсли СтрСодержит(&СпискиСОграничениемПоПолям, #ИмяТекущейТаблицы + ":Вариант3Поле1=Поле5;") #Тогда - И КлючиДоступаКРегистрам.Поле1 = ТекущаяТаблица.#Поле5 - #КонецЕсли - - #Если СтрСодержит(&СпискиСОграничениемПоПолям, #ИмяТекущейТаблицы + ":Вариант3Поле2=Поле2;") #Тогда - И КлючиДоступаКРегистрам.Поле2 = ТекущаяТаблица.#Поле2 - #ИначеЕсли СтрСодержит(&СпискиСОграничениемПоПолям, #ИмяТекущейТаблицы + ":Вариант3Поле2=Поле3;") #Тогда - И КлючиДоступаКРегистрам.Поле2 = ТекущаяТаблица.#Поле3 - #ИначеЕсли СтрСодержит(&СпискиСОграничениемПоПолям, #ИмяТекущейТаблицы + ":Вариант3Поле2=Поле4;") #Тогда - И КлючиДоступаКРегистрам.Поле2 = ТекущаяТаблица.#Поле4 - #ИначеЕсли СтрСодержит(&СпискиСОграничениемПоПолям, #ИмяТекущейТаблицы + ":Вариант3Поле2=Поле5;") #Тогда - И КлючиДоступаКРегистрам.Поле2 = ТекущаяТаблица.#Поле5 - #КонецЕсли - - #Если СтрСодержит(&СпискиСОграничениемПоПолям, #ИмяТекущейТаблицы + ":Вариант3Поле3=Поле3;") #Тогда - И КлючиДоступаКРегистрам.Поле3 = ТекущаяТаблица.#Поле3 - #ИначеЕсли СтрСодержит(&СпискиСОграничениемПоПолям, #ИмяТекущейТаблицы + ":Вариант3Поле3=Поле4;") #Тогда - И КлючиДоступаКРегистрам.Поле3 = ТекущаяТаблица.#Поле4 - #ИначеЕсли СтрСодержит(&СпискиСОграничениемПоПолям, #ИмяТекущейТаблицы + ":Вариант3Поле3=Поле5;") #Тогда - И КлючиДоступаКРегистрам.Поле3 = ТекущаяТаблица.#Поле5 - #КонецЕсли - - #Если СтрСодержит(&СпискиСОграничениемПоПолям, #ИмяТекущейТаблицы + ":Вариант3Поле4=Поле4;") #Тогда - И КлючиДоступаКРегистрам.Поле4 = ТекущаяТаблица.#Поле4 - #ИначеЕсли СтрСодержит(&СпискиСОграничениемПоПолям, #ИмяТекущейТаблицы + ":Вариант3Поле4=Поле5;") #Тогда - И КлючиДоступаКРегистрам.Поле4 = ТекущаяТаблица.#Поле5 - #КонецЕсли - - #Если СтрСодержит(&СпискиСОграничениемПоПолям, #ИмяТекущейТаблицы + ":Вариант3Поле5=Поле5;") #Тогда - И КлючиДоступаКРегистрам.Поле5 = ТекущаяТаблица.#Поле5 - #КонецЕсли - - #КонецЕсли - ) - И ( - #Если СтрСодержит(&СпискиСОграничениемЧерезКлючиДоступаГруппДоступа, #ИмяТекущейТаблицы + ":[#Регистр]:#Поле1:#Поле2:#Поле3:#Поле4:#Поле5;") #Тогда - НЕ КлючиДоступаНаборовГруппДоступа.КлючДоступа ЕСТЬ NULL - #Иначе - ЛОЖЬ - #КонецЕсли - #Если СтрСодержит(&СпискиСОграничениемЧерезКлючиДоступаГруппДоступа, #ИмяТекущейТаблицы + ":[#Регистр]:#Поле1:#Поле2:#Поле3:#Поле4:#Поле5;*") #Тогда - ИЛИ НЕ КлючиДоступаРазрешенногоНабораГруппДоступа.КлючДоступа ЕСТЬ NULL - #КонецЕсли - #Если СтрСодержит(&СпискиСОграничениемЧерезКлючиДоступаПользователей, #ИмяТекущейТаблицы + ":[#Регистр]:#Поле1:#Поле2:#Поле3:#Поле4:#Поле5;") #Тогда - ИЛИ НЕ КлючиДоступаПользователей.КлючДоступа ЕСТЬ NULL - #КонецЕсли - #Если СтрСодержит(&СпискиСОграничениемЧерезКлючиДоступаПользователей, #ИмяТекущейТаблицы + ":[#Регистр]:#Поле1:#Поле2:#Поле3:#Поле4:#Поле5;+") #Тогда - ИЛИ НЕ КлючиДоступаНаборовГруппПользователей.КлючДоступа ЕСТЬ NULL - #КонецЕсли - ) - ) - - #Если Не СтрСодержит(&ОбщиеПараметрыШаблоновОграниченияДоступа, #ИмяТекущейТаблицы + ":Пропустить;") - И ( СтрСодержит(&ОбщиеПараметрыШаблоновОграниченияДоступа, ";УточнитьДляВсех;") - Или СтрСодержит(&ОбщиеПараметрыШаблоновОграниченияДоступа, #ИмяТекущейТаблицы + ":Уточнить;") ) #Тогда - - #Если Не СтрСодержит(&СпискиСОграничениемЧерезКлючиДоступаПользователей, #ИмяТекущейТаблицы + ":[#Регистр]:#Поле1:#Поле2:#Поле3:#Поле4:#Поле5;") #Тогда - И ИСТИНА В (ИСТИНА - #Если СтрСодержит(&ОбщиеПараметрыШаблоновОграниченияДоступа, ";31;") #Тогда ,ИСТИНА #Иначе ,ЛОЖЬ #КонецЕсли - #Если СтрСодержит(&ОбщиеПараметрыШаблоновОграниченияДоступа, ";30;") #Тогда ,ИСТИНА #Иначе ,ЛОЖЬ #КонецЕсли - #Если СтрСодержит(&ОбщиеПараметрыШаблоновОграниченияДоступа, ";29;") #Тогда ,ИСТИНА #Иначе ,ЛОЖЬ #КонецЕсли - #Если СтрСодержит(&ОбщиеПараметрыШаблоновОграниченияДоступа, ";28;") #Тогда ,ИСТИНА #Иначе ,ЛОЖЬ #КонецЕсли - #Если СтрСодержит(&ОбщиеПараметрыШаблоновОграниченияДоступа, ";27;") #Тогда ,ИСТИНА #Иначе ,ЛОЖЬ #КонецЕсли - #Если СтрСодержит(&ОбщиеПараметрыШаблоновОграниченияДоступа, ";26;") #Тогда ,ИСТИНА #Иначе ,ЛОЖЬ #КонецЕсли - #Если СтрСодержит(&ОбщиеПараметрыШаблоновОграниченияДоступа, ";25;") #Тогда ,ИСТИНА #Иначе ,ЛОЖЬ #КонецЕсли - #Если СтрСодержит(&ОбщиеПараметрыШаблоновОграниченияДоступа, ";24;") #Тогда ,ИСТИНА #Иначе ,ЛОЖЬ #КонецЕсли - #Если СтрСодержит(&ОбщиеПараметрыШаблоновОграниченияДоступа, ";23;") #Тогда ,ИСТИНА #Иначе ,ЛОЖЬ #КонецЕсли - #Если СтрСодержит(&ОбщиеПараметрыШаблоновОграниченияДоступа, ";22;") #Тогда ,ИСТИНА #Иначе ,ЛОЖЬ #КонецЕсли - #Если СтрСодержит(&ОбщиеПараметрыШаблоновОграниченияДоступа, ";21;") #Тогда ,ИСТИНА #Иначе ,ЛОЖЬ #КонецЕсли - #Если СтрСодержит(&ОбщиеПараметрыШаблоновОграниченияДоступа, ";20;") #Тогда ,ИСТИНА #Иначе ,ЛОЖЬ #КонецЕсли - #Если СтрСодержит(&ОбщиеПараметрыШаблоновОграниченияДоступа, ";19;") #Тогда ,ИСТИНА #Иначе ,ЛОЖЬ #КонецЕсли - #Если СтрСодержит(&ОбщиеПараметрыШаблоновОграниченияДоступа, ";18;") #Тогда ,ИСТИНА #Иначе ,ЛОЖЬ #КонецЕсли - #Если СтрСодержит(&ОбщиеПараметрыШаблоновОграниченияДоступа, ";17;") #Тогда ,ИСТИНА #Иначе ,ЛОЖЬ #КонецЕсли - #Если СтрСодержит(&ОбщиеПараметрыШаблоновОграниченияДоступа, ";16;") #Тогда ,ИСТИНА #Иначе ,ЛОЖЬ #КонецЕсли - #Если СтрСодержит(&ОбщиеПараметрыШаблоновОграниченияДоступа, ";15;") #Тогда ,ИСТИНА #Иначе ,ЛОЖЬ #КонецЕсли - #Если СтрСодержит(&ОбщиеПараметрыШаблоновОграниченияДоступа, ";14;") #Тогда ,ИСТИНА #Иначе ,ЛОЖЬ #КонецЕсли - #Если СтрСодержит(&ОбщиеПараметрыШаблоновОграниченияДоступа, ";13;") #Тогда ,ИСТИНА #Иначе ,ЛОЖЬ #КонецЕсли - #Если СтрСодержит(&ОбщиеПараметрыШаблоновОграниченияДоступа, ";12;") #Тогда ,ИСТИНА #Иначе ,ЛОЖЬ #КонецЕсли - #Если СтрСодержит(&ОбщиеПараметрыШаблоновОграниченияДоступа, ";11;") #Тогда ,ИСТИНА #Иначе ,ЛОЖЬ #КонецЕсли - #Если СтрСодержит(&ОбщиеПараметрыШаблоновОграниченияДоступа, ";10;") #Тогда ,ИСТИНА #Иначе ,ЛОЖЬ #КонецЕсли - #Если СтрСодержит(&ОбщиеПараметрыШаблоновОграниченияДоступа, ";09;") #Тогда ,ИСТИНА #Иначе ,ЛОЖЬ #КонецЕсли - #Если СтрСодержит(&ОбщиеПараметрыШаблоновОграниченияДоступа, ";08;") #Тогда ,ИСТИНА #Иначе ,ЛОЖЬ #КонецЕсли - #Если СтрСодержит(&ОбщиеПараметрыШаблоновОграниченияДоступа, ";07;") #Тогда ,ИСТИНА #Иначе ,ЛОЖЬ #КонецЕсли - #Если СтрСодержит(&ОбщиеПараметрыШаблоновОграниченияДоступа, ";06;") #Тогда ,ИСТИНА #Иначе ,ЛОЖЬ #КонецЕсли - #Если СтрСодержит(&ОбщиеПараметрыШаблоновОграниченияДоступа, ";05;") #Тогда ,ИСТИНА #Иначе ,ЛОЖЬ #КонецЕсли - #Если СтрСодержит(&ОбщиеПараметрыШаблоновОграниченияДоступа, ";04;") #Тогда ,ИСТИНА #Иначе ,ЛОЖЬ #КонецЕсли - #Если СтрСодержит(&ОбщиеПараметрыШаблоновОграниченияДоступа, ";03;") #Тогда ,ИСТИНА #Иначе ,ЛОЖЬ #КонецЕсли - #Если СтрСодержит(&ОбщиеПараметрыШаблоновОграниченияДоступа, ";02;") #Тогда ,ИСТИНА #Иначе ,ЛОЖЬ #КонецЕсли - #Если СтрСодержит(&ОбщиеПараметрыШаблоновОграниченияДоступа, ";01;") #Тогда ,ИСТИНА #Иначе ,ЛОЖЬ #КонецЕсли - #Если СтрСодержит(&ОбщиеПараметрыШаблоновОграниченияДоступа, ";00;") #Тогда ,ИСТИНА #Иначе ,ЛОЖЬ #КонецЕсли - ) - #Иначе - И ИСТИНА В (ИСТИНА - #Если СтрСодержит(&ОбщиеПараметрыШаблоновОграниченияДоступа, ";31^;") #Тогда ,ИСТИНА #Иначе ,ЛОЖЬ #КонецЕсли - #Если СтрСодержит(&ОбщиеПараметрыШаблоновОграниченияДоступа, ";30^;") #Тогда ,ИСТИНА #Иначе ,ЛОЖЬ #КонецЕсли - #Если СтрСодержит(&ОбщиеПараметрыШаблоновОграниченияДоступа, ";29^;") #Тогда ,ИСТИНА #Иначе ,ЛОЖЬ #КонецЕсли - #Если СтрСодержит(&ОбщиеПараметрыШаблоновОграниченияДоступа, ";28^;") #Тогда ,ИСТИНА #Иначе ,ЛОЖЬ #КонецЕсли - #Если СтрСодержит(&ОбщиеПараметрыШаблоновОграниченияДоступа, ";27^;") #Тогда ,ИСТИНА #Иначе ,ЛОЖЬ #КонецЕсли - #Если СтрСодержит(&ОбщиеПараметрыШаблоновОграниченияДоступа, ";26^;") #Тогда ,ИСТИНА #Иначе ,ЛОЖЬ #КонецЕсли - #Если СтрСодержит(&ОбщиеПараметрыШаблоновОграниченияДоступа, ";25^;") #Тогда ,ИСТИНА #Иначе ,ЛОЖЬ #КонецЕсли - #Если СтрСодержит(&ОбщиеПараметрыШаблоновОграниченияДоступа, ";24^;") #Тогда ,ИСТИНА #Иначе ,ЛОЖЬ #КонецЕсли - #Если СтрСодержит(&ОбщиеПараметрыШаблоновОграниченияДоступа, ";23^;") #Тогда ,ИСТИНА #Иначе ,ЛОЖЬ #КонецЕсли - #Если СтрСодержит(&ОбщиеПараметрыШаблоновОграниченияДоступа, ";22^;") #Тогда ,ИСТИНА #Иначе ,ЛОЖЬ #КонецЕсли - #Если СтрСодержит(&ОбщиеПараметрыШаблоновОграниченияДоступа, ";21^;") #Тогда ,ИСТИНА #Иначе ,ЛОЖЬ #КонецЕсли - #Если СтрСодержит(&ОбщиеПараметрыШаблоновОграниченияДоступа, ";20^;") #Тогда ,ИСТИНА #Иначе ,ЛОЖЬ #КонецЕсли - #Если СтрСодержит(&ОбщиеПараметрыШаблоновОграниченияДоступа, ";19^;") #Тогда ,ИСТИНА #Иначе ,ЛОЖЬ #КонецЕсли - #Если СтрСодержит(&ОбщиеПараметрыШаблоновОграниченияДоступа, ";18^;") #Тогда ,ИСТИНА #Иначе ,ЛОЖЬ #КонецЕсли - #Если СтрСодержит(&ОбщиеПараметрыШаблоновОграниченияДоступа, ";17^;") #Тогда ,ИСТИНА #Иначе ,ЛОЖЬ #КонецЕсли - #Если СтрСодержит(&ОбщиеПараметрыШаблоновОграниченияДоступа, ";16^;") #Тогда ,ИСТИНА #Иначе ,ЛОЖЬ #КонецЕсли - #Если СтрСодержит(&ОбщиеПараметрыШаблоновОграниченияДоступа, ";15^;") #Тогда ,ИСТИНА #Иначе ,ЛОЖЬ #КонецЕсли - #Если СтрСодержит(&ОбщиеПараметрыШаблоновОграниченияДоступа, ";14^;") #Тогда ,ИСТИНА #Иначе ,ЛОЖЬ #КонецЕсли - #Если СтрСодержит(&ОбщиеПараметрыШаблоновОграниченияДоступа, ";13^;") #Тогда ,ИСТИНА #Иначе ,ЛОЖЬ #КонецЕсли - #Если СтрСодержит(&ОбщиеПараметрыШаблоновОграниченияДоступа, ";12^;") #Тогда ,ИСТИНА #Иначе ,ЛОЖЬ #КонецЕсли - #Если СтрСодержит(&ОбщиеПараметрыШаблоновОграниченияДоступа, ";11^;") #Тогда ,ИСТИНА #Иначе ,ЛОЖЬ #КонецЕсли - #Если СтрСодержит(&ОбщиеПараметрыШаблоновОграниченияДоступа, ";10^;") #Тогда ,ИСТИНА #Иначе ,ЛОЖЬ #КонецЕсли - #Если СтрСодержит(&ОбщиеПараметрыШаблоновОграниченияДоступа, ";09^;") #Тогда ,ИСТИНА #Иначе ,ЛОЖЬ #КонецЕсли - #Если СтрСодержит(&ОбщиеПараметрыШаблоновОграниченияДоступа, ";08^;") #Тогда ,ИСТИНА #Иначе ,ЛОЖЬ #КонецЕсли - #Если СтрСодержит(&ОбщиеПараметрыШаблоновОграниченияДоступа, ";07^;") #Тогда ,ИСТИНА #Иначе ,ЛОЖЬ #КонецЕсли - #Если СтрСодержит(&ОбщиеПараметрыШаблоновОграниченияДоступа, ";06^;") #Тогда ,ИСТИНА #Иначе ,ЛОЖЬ #КонецЕсли - #Если СтрСодержит(&ОбщиеПараметрыШаблоновОграниченияДоступа, ";05^;") #Тогда ,ИСТИНА #Иначе ,ЛОЖЬ #КонецЕсли - #Если СтрСодержит(&ОбщиеПараметрыШаблоновОграниченияДоступа, ";04^;") #Тогда ,ИСТИНА #Иначе ,ЛОЖЬ #КонецЕсли - #Если СтрСодержит(&ОбщиеПараметрыШаблоновОграниченияДоступа, ";03^;") #Тогда ,ИСТИНА #Иначе ,ЛОЖЬ #КонецЕсли - #Если СтрСодержит(&ОбщиеПараметрыШаблоновОграниченияДоступа, ";02^;") #Тогда ,ИСТИНА #Иначе ,ЛОЖЬ #КонецЕсли - #Если СтрСодержит(&ОбщиеПараметрыШаблоновОграниченияДоступа, ";01^;") #Тогда ,ИСТИНА #Иначе ,ЛОЖЬ #КонецЕсли - #Если СтрСодержит(&ОбщиеПараметрыШаблоновОграниченияДоступа, ";00^;") #Тогда ,ИСТИНА #Иначе ,ЛОЖЬ #КонецЕсли - ) - #КонецЕсли - #КонецЕсли - #КонецЕсли diff --git a/SSL/src/Roles/ДобавлениеИзменениеПользователей/Rights.rights b/SSL/src/Roles/ДобавлениеИзменениеПользователей/Rights.rights index 92c584e79..ad9989387 100644 --- a/SSL/src/Roles/ДобавлениеИзменениеПользователей/Rights.rights +++ b/SSL/src/Roles/ДобавлениеИзменениеПользователей/Rights.rights @@ -21,33 +21,6 @@ true - - Configuration.БиблиотекаСтандартныхПодсистем - - MainWindowModeNormal - true - - - MainWindowModeWorkplace - true - - - MainWindowModeEmbeddedWorkplace - true - - - MainWindowModeFullscreenWorkplace - true - - - MainWindowModeKiosk - true - - - AnalyticsSystemClient - true - - Catalog.Пользователи @@ -144,4 +117,31 @@ true + + Configuration.БиблиотекаСтандартныхПодсистем + + MainWindowModeNormal + true + + + MainWindowModeWorkplace + true + + + MainWindowModeEmbeddedWorkplace + true + + + MainWindowModeFullscreenWorkplace + true + + + MainWindowModeKiosk + true + + + AnalyticsSystemClient + true + + diff --git a/SSL/src/Roles/ДобавлениеИзменениеПрограммЭлектроннойПодписиИШифрования/Rights.rights b/SSL/src/Roles/ДобавлениеИзменениеПрограммЭлектроннойПодписиИШифрования/Rights.rights index 107ec6cf8..9fc5009cc 100644 --- a/SSL/src/Roles/ДобавлениеИзменениеПрограммЭлектроннойПодписиИШифрования/Rights.rights +++ b/SSL/src/Roles/ДобавлениеИзменениеПрограммЭлектроннойПодписиИШифрования/Rights.rights @@ -29,33 +29,6 @@ true - - Configuration.БиблиотекаСтандартныхПодсистем - - MainWindowModeNormal - true - - - MainWindowModeWorkplace - true - - - MainWindowModeEmbeddedWorkplace - true - - - MainWindowModeFullscreenWorkplace - true - - - MainWindowModeKiosk - true - - - AnalyticsSystemClient - true - - Catalog.ПрограммыЭлектроннойПодписиИШифрования @@ -95,4 +68,31 @@ true + + Configuration.БиблиотекаСтандартныхПодсистем + + MainWindowModeNormal + true + + + MainWindowModeWorkplace + true + + + MainWindowModeEmbeddedWorkplace + true + + + MainWindowModeFullscreenWorkplace + true + + + MainWindowModeKiosk + true + + + AnalyticsSystemClient + true + + diff --git a/SSL/src/Roles/ДобавлениеИзменениеРассылокОтчетов/Rights.rights b/SSL/src/Roles/ДобавлениеИзменениеРассылокОтчетов/Rights.rights index 97c97df85..7d11db7cb 100644 --- a/SSL/src/Roles/ДобавлениеИзменениеРассылокОтчетов/Rights.rights +++ b/SSL/src/Roles/ДобавлениеИзменениеРассылокОтчетов/Rights.rights @@ -40,37 +40,6 @@ true - - Configuration.БиблиотекаСтандартныхПодсистем - - MainWindowModeNormal - true - - - MainWindowModeWorkplace - true - - - MainWindowModeEmbeddedWorkplace - true - - - MainWindowModeFullscreenWorkplace - true - - - MainWindowModeKiosk - true - - - AnalyticsSystemClient - true - - - Output - true - - InformationRegister.СертификатыПолучателейРассылкиОтчетов @@ -163,6 +132,37 @@ true + + Configuration.БиблиотекаСтандартныхПодсистем + + MainWindowModeNormal + true + + + MainWindowModeWorkplace + true + + + MainWindowModeEmbeddedWorkplace + true + + + MainWindowModeFullscreenWorkplace + true + + + MainWindowModeKiosk + true + + + AnalyticsSystemClient + true + + + Output + true + + Report.КонтрольРассылкиОтчетов diff --git a/SSL/src/Roles/ДобавлениеИзменениеРолейИсполнителей/Rights.rights b/SSL/src/Roles/ДобавлениеИзменениеРолейИсполнителей/Rights.rights index b7a86a0bf..7eb6bc8ea 100644 --- a/SSL/src/Roles/ДобавлениеИзменениеРолейИсполнителей/Rights.rights +++ b/SSL/src/Roles/ДобавлениеИзменениеРолейИсполнителей/Rights.rights @@ -87,33 +87,6 @@ true - - Configuration.БиблиотекаСтандартныхПодсистем - - MainWindowModeNormal - true - - - MainWindowModeWorkplace - true - - - MainWindowModeEmbeddedWorkplace - true - - - MainWindowModeFullscreenWorkplace - true - - - MainWindowModeKiosk - true - - - AnalyticsSystemClient - true - - Report.ЗависшиеЗадачи @@ -178,6 +151,33 @@ true + + Configuration.БиблиотекаСтандартныхПодсистем + + MainWindowModeNormal + true + + + MainWindowModeWorkplace + true + + + MainWindowModeEmbeddedWorkplace + true + + + MainWindowModeFullscreenWorkplace + true + + + MainWindowModeKiosk + true + + + AnalyticsSystemClient + true + + Report.Задачи diff --git a/SSL/src/Roles/ДобавлениеИзменениеСертификатовКлючейЭлектроннойПодписиИШифрования/Rights.rights b/SSL/src/Roles/ДобавлениеИзменениеСертификатовКлючейЭлектроннойПодписиИШифрования/Rights.rights index 3288b2bc1..b7a6817fe 100644 --- a/SSL/src/Roles/ДобавлениеИзменениеСертификатовКлючейЭлектроннойПодписиИШифрования/Rights.rights +++ b/SSL/src/Roles/ДобавлениеИзменениеСертификатовКлючейЭлектроннойПодписиИШифрования/Rights.rights @@ -23,29 +23,13 @@ - Configuration.БиблиотекаСтандартныхПодсистем + DataProcessor.ЗаявлениеНаВыпускНовогоКвалифицированногоСертификата - MainWindowModeNormal + Use true - MainWindowModeWorkplace - true - - - MainWindowModeEmbeddedWorkplace - true - - - MainWindowModeFullscreenWorkplace - true - - - MainWindowModeKiosk - true - - - AnalyticsSystemClient + View true @@ -88,4 +72,42 @@ true + + Report.СертификатыЭлектроннойПодписи + + Use + true + + + View + true + + + + Configuration.БиблиотекаСтандартныхПодсистем + + MainWindowModeNormal + true + + + MainWindowModeWorkplace + true + + + MainWindowModeEmbeddedWorkplace + true + + + MainWindowModeFullscreenWorkplace + true + + + MainWindowModeKiosk + true + + + AnalyticsSystemClient + true + + diff --git a/SSL/src/Roles/ДобавлениеИзменениеСогласийНаОбработкуПерсональныхДанных/Rights.rights b/SSL/src/Roles/ДобавлениеИзменениеСогласийНаОбработкуПерсональныхДанных/Rights.rights index 2234cc548..31b593712 100644 --- a/SSL/src/Roles/ДобавлениеИзменениеСогласийНаОбработкуПерсональныхДанных/Rights.rights +++ b/SSL/src/Roles/ДобавлениеИзменениеСогласийНаОбработкуПерсональныхДанных/Rights.rights @@ -14,33 +14,6 @@ true - - Configuration.БиблиотекаСтандартныхПодсистем - - MainWindowModeNormal - true - - - MainWindowModeWorkplace - true - - - MainWindowModeEmbeddedWorkplace - true - - - MainWindowModeFullscreenWorkplace - true - - - MainWindowModeKiosk - true - - - AnalyticsSystemClient - true - - InformationRegister.СогласияНаОбработкуПерсональныхДанных @@ -115,6 +88,33 @@ true + + Configuration.БиблиотекаСтандартныхПодсистем + + MainWindowModeNormal + true + + + MainWindowModeWorkplace + true + + + MainWindowModeEmbeddedWorkplace + true + + + MainWindowModeFullscreenWorkplace + true + + + MainWindowModeKiosk + true + + + AnalyticsSystemClient + true + + Document.СогласиеНаОбработкуПерсональныхДанных diff --git a/SSL/src/Roles/ДобавлениеИзменениеСостоянийОригиналовПервичныхДокументов/Rights.rights b/SSL/src/Roles/ДобавлениеИзменениеСостоянийОригиналовПервичныхДокументов/Rights.rights index ec35bc7c8..6a1a344ce 100644 --- a/SSL/src/Roles/ДобавлениеИзменениеСостоянийОригиналовПервичныхДокументов/Rights.rights +++ b/SSL/src/Roles/ДобавлениеИзменениеСостоянийОригиналовПервичныхДокументов/Rights.rights @@ -3,33 +3,6 @@ false true false - - Configuration.БиблиотекаСтандартныхПодсистем - - MainWindowModeNormal - true - - - MainWindowModeWorkplace - true - - - MainWindowModeEmbeddedWorkplace - true - - - MainWindowModeFullscreenWorkplace - true - - - MainWindowModeKiosk - true - - - AnalyticsSystemClient - true - - Catalog.СостоянияОригиналовПервичныхДокументов @@ -105,4 +78,31 @@ true + + Configuration.БиблиотекаСтандартныхПодсистем + + MainWindowModeNormal + true + + + MainWindowModeWorkplace + true + + + MainWindowModeEmbeddedWorkplace + true + + + MainWindowModeFullscreenWorkplace + true + + + MainWindowModeKiosk + true + + + AnalyticsSystemClient + true + + diff --git a/SSL/src/Roles/ДобавлениеИзменениеУчетныхЗаписейСерверовDSS/Rights.rights b/SSL/src/Roles/ДобавлениеИзменениеУчетныхЗаписейСерверовDSS/Rights.rights index 57d050d08..b5cf71310 100644 --- a/SSL/src/Roles/ДобавлениеИзменениеУчетныхЗаписейСерверовDSS/Rights.rights +++ b/SSL/src/Roles/ДобавлениеИзменениеУчетныхЗаписейСерверовDSS/Rights.rights @@ -60,6 +60,17 @@ true + + InformationRegister.СертификатыПользователяDSS + + Read + true + + + View + true + + Configuration.БиблиотекаСтандартныхПодсистем @@ -87,17 +98,6 @@ true - - InformationRegister.СертификатыПользователяDSS - - Read - true - - - View - true - - ДляОбъекта(ПолеОбъекта) // ДляОбъекта(ПолеОбъекта = "") diff --git a/SSL/src/Roles/ДобавлениеИзменениеУчетныхЗаписейЭлектроннойПочты/Rights.rights b/SSL/src/Roles/ДобавлениеИзменениеУчетныхЗаписейЭлектроннойПочты/Rights.rights index 514c760b3..3140f19be 100644 --- a/SSL/src/Roles/ДобавлениеИзменениеУчетныхЗаписейЭлектроннойПочты/Rights.rights +++ b/SSL/src/Roles/ДобавлениеИзменениеУчетныхЗаписейЭлектроннойПочты/Rights.rights @@ -3,33 +3,6 @@ false true false - - Configuration.БиблиотекаСтандартныхПодсистем - - MainWindowModeNormal - true - - - MainWindowModeWorkplace - true - - - MainWindowModeEmbeddedWorkplace - true - - - MainWindowModeFullscreenWorkplace - true - - - MainWindowModeKiosk - true - - - AnalyticsSystemClient - true - - Catalog.УчетныеЗаписиЭлектроннойПочты @@ -104,6 +77,33 @@ true + + Configuration.БиблиотекаСтандартныхПодсистем + + MainWindowModeNormal + true + + + MainWindowModeWorkplace + true + + + MainWindowModeEmbeddedWorkplace + true + + + MainWindowModeFullscreenWorkplace + true + + + MainWindowModeKiosk + true + + + AnalyticsSystemClient + true + + CommonForm.ОтправкаСообщения diff --git a/SSL/src/Roles/ДобавлениеИзменениеЭлектронныхПодписей/Rights.rights b/SSL/src/Roles/ДобавлениеИзменениеЭлектронныхПодписей/Rights.rights index af6d77d8c..5a8ee6c45 100644 --- a/SSL/src/Roles/ДобавлениеИзменениеЭлектронныхПодписей/Rights.rights +++ b/SSL/src/Roles/ДобавлениеИзменениеЭлектронныхПодписей/Rights.rights @@ -10,6 +10,13 @@ true + + CommonForm.ПродлениеСрокаДействияЭлектронныхПодписей + + View + true + + Configuration.БиблиотекаСтандартныхПодсистем @@ -37,11 +44,4 @@ true - - CommonForm.ПродлениеСрокаДействияЭлектронныхПодписей - - View - true - - diff --git a/SSL/src/Roles/ИзменениеВыполнениеЗадач/Rights.rights b/SSL/src/Roles/ИзменениеВыполнениеЗадач/Rights.rights index e160afe38..e2c6fe17e 100644 --- a/SSL/src/Roles/ИзменениеВыполнениеЗадач/Rights.rights +++ b/SSL/src/Roles/ИзменениеВыполнениеЗадач/Rights.rights @@ -106,33 +106,6 @@ true - - Configuration.БиблиотекаСтандартныхПодсистем - - MainWindowModeNormal - true - - - MainWindowModeWorkplace - true - - - MainWindowModeEmbeddedWorkplace - true - - - MainWindowModeFullscreenWorkplace - true - - - MainWindowModeKiosk - true - - - AnalyticsSystemClient - true - - Task.ЗадачаИсполнителя.Command.ВсеЗадачи @@ -187,6 +160,33 @@ true + + Configuration.БиблиотекаСтандартныхПодсистем + + MainWindowModeNormal + true + + + MainWindowModeWorkplace + true + + + MainWindowModeEmbeddedWorkplace + true + + + MainWindowModeFullscreenWorkplace + true + + + MainWindowModeKiosk + true + + + AnalyticsSystemClient + true + + Task.ЗадачаИсполнителя.Command.Перенаправить diff --git a/SSL/src/Roles/ИзменениеДополнительныхСведений/Rights.rights b/SSL/src/Roles/ИзменениеДополнительныхСведений/Rights.rights index bffda1e50..91ffcd1fb 100644 --- a/SSL/src/Roles/ИзменениеДополнительныхСведений/Rights.rights +++ b/SSL/src/Roles/ИзменениеДополнительныхСведений/Rights.rights @@ -40,6 +40,13 @@ true + + CommonCommand.ДополнительныеСведенияКоманднаяПанель + + View + true + + Configuration.БиблиотекаСтандартныхПодсистем @@ -67,13 +74,6 @@ true - - CommonCommand.ДополнительныеСведенияКоманднаяПанель - - View - true - - CommonForm.РедактированиеДополнительныхСведений diff --git a/SSL/src/Roles/ИзменениеМакетовПечатныхФорм/Rights.rights b/SSL/src/Roles/ИзменениеМакетовПечатныхФорм/Rights.rights index fdd7c6123..042608a94 100644 --- a/SSL/src/Roles/ИзменениеМакетовПечатныхФорм/Rights.rights +++ b/SSL/src/Roles/ИзменениеМакетовПечатныхФорм/Rights.rights @@ -3,6 +3,25 @@ false true false + + InformationRegister.ПользовательскиеМакетыПечати + + Read + true + + + Update + true + + + View + true + + + Edit + true + + Configuration.БиблиотекаСтандартныхПодсистем @@ -30,25 +49,6 @@ true - - InformationRegister.ПользовательскиеМакетыПечати - - Read - true - - - Update - true - - - View - true - - - Edit - true - - Catalog.МакетыПечатныхФорм diff --git a/SSL/src/Roles/ИзменениеМакетовФайловВыгрузки/Rights.rights b/SSL/src/Roles/ИзменениеМакетовФайловВыгрузки/Rights.rights index cc8486e4e..16f222226 100644 --- a/SSL/src/Roles/ИзменениеМакетовФайловВыгрузки/Rights.rights +++ b/SSL/src/Roles/ИзменениеМакетовФайловВыгрузки/Rights.rights @@ -3,6 +3,13 @@ false true false + + CommonCommand.МакетыФайловВыгрузки + + View + true + + Configuration.БиблиотекаСтандартныхПодсистем @@ -30,11 +37,4 @@ true - - CommonCommand.МакетыФайловВыгрузки - - View - true - - diff --git a/SSL/src/Roles/ИзменениеСостоянийОригиналовПервичныхДокументов/Rights.rights b/SSL/src/Roles/ИзменениеСостоянийОригиналовПервичныхДокументов/Rights.rights index 414e7f4fa..4a534032a 100644 --- a/SSL/src/Roles/ИзменениеСостоянийОригиналовПервичныхДокументов/Rights.rights +++ b/SSL/src/Roles/ИзменениеСостоянийОригиналовПервичныхДокументов/Rights.rights @@ -22,6 +22,21 @@ true + + Catalog.СостоянияОригиналовПервичныхДокументов + + Read + true + + + View + true + + + InputByString + true + + Configuration.БиблиотекаСтандартныхПодсистем @@ -49,21 +64,6 @@ true - - Catalog.СостоянияОригиналовПервичныхДокументов - - Read - true - - - View - true - - - InputByString - true - - CommonCommand.ЖурналУчетаОригиналовПервичныхДокументов diff --git a/SSL/src/Roles/ИзменениеУчастниковГруппДоступа/Rights.rights b/SSL/src/Roles/ИзменениеУчастниковГруппДоступа/Rights.rights index 92906f634..7a0b19a52 100644 --- a/SSL/src/Roles/ИзменениеУчастниковГруппДоступа/Rights.rights +++ b/SSL/src/Roles/ИзменениеУчастниковГруппДоступа/Rights.rights @@ -10,6 +10,13 @@ true + + CommonForm.ПраваДоступа + + View + true + + Configuration.БиблиотекаСтандартныхПодсистем @@ -37,13 +44,6 @@ true - - CommonForm.ПраваДоступа - - View - true - - Catalog.ГруппыДоступа diff --git a/SSL/src/Roles/ИспользованиеОбработкиТекущиеДела/Rights.rights b/SSL/src/Roles/ИспользованиеОбработкиТекущиеДела/Rights.rights index ca423e2fb..5c0ac5958 100644 --- a/SSL/src/Roles/ИспользованиеОбработкиТекущиеДела/Rights.rights +++ b/SSL/src/Roles/ИспользованиеОбработкиТекущиеДела/Rights.rights @@ -3,6 +3,17 @@ false true false + + DataProcessor.ТекущиеДела + + Use + true + + + View + true + + Configuration.БиблиотекаСтандартныхПодсистем @@ -30,15 +41,4 @@ true - - DataProcessor.ТекущиеДела - - Use - true - - - View - true - - diff --git a/SSL/src/Roles/ИспользованиеОбработкиУничтожениеПерсональныхДанных/Rights.rights b/SSL/src/Roles/ИспользованиеОбработкиУничтожениеПерсональныхДанных/Rights.rights index e062296bb..54f3dbc5a 100644 --- a/SSL/src/Roles/ИспользованиеОбработкиУничтожениеПерсональныхДанных/Rights.rights +++ b/SSL/src/Roles/ИспользованиеОбработкиУничтожениеПерсональныхДанных/Rights.rights @@ -3,6 +3,17 @@ false true false + + DataProcessor.УничтожениеПерсональныхДанных + + Use + true + + + View + true + + Configuration.БиблиотекаСтандартныхПодсистем @@ -30,15 +41,4 @@ true - - DataProcessor.УничтожениеПерсональныхДанных - - Use - true - - - View - true - - diff --git a/SSL/src/Roles/ИспользованиеУниверсальногоОтчета/Rights.rights b/SSL/src/Roles/ИспользованиеУниверсальногоОтчета/Rights.rights index 0ebe48f6d..bb1bfb929 100644 --- a/SSL/src/Roles/ИспользованиеУниверсальногоОтчета/Rights.rights +++ b/SSL/src/Roles/ИспользованиеУниверсальногоОтчета/Rights.rights @@ -14,6 +14,24 @@ true + + CommonForm.НастройкаКолонтитулов + + View + true + + + + Constant.НастройкиКолонтитулов + + Read + true + + + View + true + + Configuration.БиблиотекаСтандартныхПодсистем @@ -41,22 +59,4 @@ true - - CommonForm.НастройкаКолонтитулов - - View - true - - - - Constant.НастройкиКолонтитулов - - Read - true - - - View - true - - diff --git a/SSL/src/Roles/НастройкаИОценкаПроизводительности/Rights.rights b/SSL/src/Roles/НастройкаИОценкаПроизводительности/Rights.rights index 5556af0b2..a3284c75c 100644 --- a/SSL/src/Roles/НастройкаИОценкаПроизводительности/Rights.rights +++ b/SSL/src/Roles/НастройкаИОценкаПроизводительности/Rights.rights @@ -152,33 +152,6 @@ true - - Configuration.БиблиотекаСтандартныхПодсистем - - MainWindowModeNormal - true - - - MainWindowModeWorkplace - true - - - MainWindowModeEmbeddedWorkplace - true - - - MainWindowModeFullscreenWorkplace - true - - - MainWindowModeKiosk - true - - - AnalyticsSystemClient - true - - Constant.ДатаПоследнейВыгрузкиЗамеровПроизводительностиUTC @@ -264,6 +237,33 @@ true + + Configuration.БиблиотекаСтандартныхПодсистем + + MainWindowModeNormal + true + + + MainWindowModeWorkplace + true + + + MainWindowModeEmbeddedWorkplace + true + + + MainWindowModeFullscreenWorkplace + true + + + MainWindowModeKiosk + true + + + AnalyticsSystemClient + true + + InformationRegister.ЗамерыВремениТехнологические diff --git a/SSL/src/Roles/НастройкаСинхронизацииФайлов/Rights.rights b/SSL/src/Roles/НастройкаСинхронизацииФайлов/Rights.rights index 6ce025e53..c28308f43 100644 --- a/SSL/src/Roles/НастройкаСинхронизацииФайлов/Rights.rights +++ b/SSL/src/Roles/НастройкаСинхронизацииФайлов/Rights.rights @@ -26,33 +26,6 @@ true - - Configuration.БиблиотекаСтандартныхПодсистем - - MainWindowModeNormal - true - - - MainWindowModeWorkplace - true - - - MainWindowModeEmbeddedWorkplace - true - - - MainWindowModeFullscreenWorkplace - true - - - MainWindowModeKiosk - true - - - AnalyticsSystemClient - true - - InformationRegister.СтатусыСинхронизацииФайловСОблачнымСервисом @@ -107,4 +80,31 @@ true + + Configuration.БиблиотекаСтандартныхПодсистем + + MainWindowModeNormal + true + + + MainWindowModeWorkplace + true + + + MainWindowModeEmbeddedWorkplace + true + + + MainWindowModeFullscreenWorkplace + true + + + MainWindowModeKiosk + true + + + AnalyticsSystemClient + true + + diff --git a/SSL/src/Roles/ОтправкаSMS/Rights.rights b/SSL/src/Roles/ОтправкаSMS/Rights.rights index d8a335533..441933e96 100644 --- a/SSL/src/Roles/ОтправкаSMS/Rights.rights +++ b/SSL/src/Roles/ОтправкаSMS/Rights.rights @@ -3,6 +3,13 @@ false true false + + CommonForm.ОтправкаSMS + + View + true + + Configuration.БиблиотекаСтандартныхПодсистем @@ -30,11 +37,4 @@ true - - CommonForm.ОтправкаSMS - - View - true - - diff --git a/SSL/src/Roles/ПолныеПрава/Rights.rights b/SSL/src/Roles/ПолныеПрава/Rights.rights index 06cfe8fd8..e53af2bca 100644 --- a/SSL/src/Roles/ПолныеПрава/Rights.rights +++ b/SSL/src/Roles/ПолныеПрава/Rights.rights @@ -869,6 +869,53 @@ false + + Constant.РазмерПорцииПеремещаемыхФайлов + + Read + false + + + Update + false + + + View + false + + + Edit + false + + + ReadDataHistory + false + + + UpdateDataHistory + false + + + UpdateDataHistorySettings + false + + + UpdateDataHistoryVersionComment + false + + + ViewDataHistory + false + + + EditDataHistoryVersionComment + false + + + SwitchToDataHistoryVersion + false + + Constant.НастройкаПроксиСервера @@ -1497,6 +1544,17 @@ false + + Constant.ТекстИнформированияПользователяОНедоступностиФайлаВАрхиве + + Update + false + + + Edit + false + + Constant.НастройкиРегистрацииСобытийДоступаКДанным @@ -1567,6 +1625,29 @@ false + + Catalog.НастройкиОтправкиВГосключ + + InteractiveDelete + false + + + InteractiveDeletePredefinedData + false + + + InteractiveSetDeletionMarkPredefinedData + false + + + InteractiveClearDeletionMarkPredefinedData + false + + + InteractiveDeleteMarkedPredefinedData + false + + InformationRegister.РазрешенияНаИспользованиеВнешнихРесурсов @@ -1626,6 +1707,65 @@ false + + InformationRegister.ИсторияРезервногоКопированияВстроенногоХранилищаДвоичныхДанных + + Read + false + + + Update + false + + + View + false + + + Edit + false + + + TotalsControl + false + + + ReadDataHistory + false + + + ReadDataHistoryOfMissingData + false + + + UpdateDataHistory + false + + + UpdateDataHistoryOfMissingData + false + + + UpdateDataHistorySettings + false + + + UpdateDataHistoryVersionComment + false + + + ViewDataHistory + false + + + EditDataHistoryVersionComment + false + + + SwitchToDataHistoryVersion + false + + Catalog.КлючевыеОперации @@ -2112,45 +2252,6 @@ false - - Configuration.БиблиотекаСтандартныхПодсистем - - Administration - false - - - UpdateDataBaseConfiguration - false - - - ThickClient - false - - - ExternalConnection - false - - - Automation - false - - - TechnicalSpecialistMode - false - - - ConfigurationExtensionsAdministration - false - - - InteractiveOpenExtDataProcessors - false - - - InteractiveOpenExtReports - false - - Catalog.ОбщиеВнешниеКомпоненты @@ -5124,6 +5225,53 @@ false + + Constant.КаталогРезервныхКопийВстроенногоХранилищаДвоичныхДанныхДляWindows + + Read + false + + + Update + false + + + View + false + + + Edit + false + + + ReadDataHistory + false + + + UpdateDataHistory + false + + + UpdateDataHistorySettings + false + + + UpdateDataHistoryVersionComment + false + + + ViewDataHistory + false + + + EditDataHistoryVersionComment + false + + + SwitchToDataHistoryVersion + false + + Constant.СтандартныеПодсистемыВАвтономномРежиме @@ -5679,6 +5827,57 @@ false + + InformationRegister.КвартирыОфисыПомещения + + Update + false + + + Edit + false + + + TotalsControl + false + + + ReadDataHistory + false + + + ReadDataHistoryOfMissingData + false + + + UpdateDataHistory + false + + + UpdateDataHistoryOfMissingData + false + + + UpdateDataHistorySettings + false + + + UpdateDataHistoryVersionComment + false + + + ViewDataHistory + false + + + EditDataHistoryVersionComment + false + + + SwitchToDataHistoryVersion + false + + Catalog.НастройкиТранспортаСообщенийОбмена @@ -5725,6 +5924,105 @@ false + + Catalog.ОбщиеНастройкиАвторизацииИнтернетСервисов + + Insert + false + + + Update + false + + + Delete + false + + + View + false + + + InteractiveInsert + false + + + Edit + false + + + InteractiveDelete + false + + + InteractiveSetDeletionMark + false + + + InteractiveClearDeletionMark + false + + + InteractiveDeleteMarked + false + + + InputByString + false + + + InteractiveDeletePredefinedData + false + + + InteractiveSetDeletionMarkPredefinedData + false + + + InteractiveClearDeletionMarkPredefinedData + false + + + InteractiveDeleteMarkedPredefinedData + false + + + ReadDataHistory + false + + + ReadDataHistoryOfMissingData + false + + + UpdateDataHistory + false + + + UpdateDataHistoryOfMissingData + false + + + UpdateDataHistorySettings + false + + + UpdateDataHistoryVersionComment + false + + + ViewDataHistory + false + + + EditDataHistoryVersionComment + false + + + SwitchToDataHistoryVersion + false + + Catalog.КлассификаторБанков @@ -6025,6 +6323,45 @@ false + + Configuration.БиблиотекаСтандартныхПодсистем + + Administration + false + + + UpdateDataBaseConfiguration + false + + + ThickClient + false + + + ExternalConnection + false + + + Automation + false + + + TechnicalSpecialistMode + false + + + ConfigurationExtensionsAdministration + false + + + InteractiveOpenExtDataProcessors + false + + + InteractiveOpenExtReports + false + + Constant.СообщениеОбменаДаннымиИзГлавногоУзла @@ -6109,6 +6446,53 @@ false + + Constant.ИспользоватьФайловыйАрхив + + Read + false + + + Update + false + + + View + false + + + Edit + false + + + ReadDataHistory + false + + + UpdateDataHistory + false + + + UpdateDataHistorySettings + false + + + UpdateDataHistoryVersionComment + false + + + ViewDataHistory + false + + + EditDataHistoryVersionComment + false + + + SwitchToDataHistoryVersion + false + + InformationRegister.БуферОперацийСтатистики @@ -6954,6 +7338,53 @@ false + + Constant.КаталогРезервныхКопийВстроенногоХранилищаДвоичныхДанныхДляLinux + + Read + false + + + Update + false + + + View + false + + + Edit + false + + + ReadDataHistory + false + + + UpdateDataHistory + false + + + UpdateDataHistorySettings + false + + + UpdateDataHistoryVersionComment + false + + + ViewDataHistory + false + + + EditDataHistoryVersionComment + false + + + SwitchToDataHistoryVersion + false + + Catalog.МашиночитаемыеДоверенностиПрисоединенныеФайлы diff --git a/SSL/src/Roles/ПросмотрЖурналаРегистрации/Rights.rights b/SSL/src/Roles/ПросмотрЖурналаРегистрации/Rights.rights index 478eaf335..7eb116365 100644 --- a/SSL/src/Roles/ПросмотрЖурналаРегистрации/Rights.rights +++ b/SSL/src/Roles/ПросмотрЖурналаРегистрации/Rights.rights @@ -3,6 +3,20 @@ false true false + + DataProcessor.ЖурналРегистрации.Command.ЖурналДоступаКДанным + + View + true + + + + DataProcessor.ЖурналРегистрации.Command.ЖурналРегистрации + + View + true + + Configuration.БиблиотекаСтандартныхПодсистем @@ -34,20 +48,6 @@ true - - DataProcessor.ЖурналРегистрации.Command.ЖурналДоступаКДанным - - View - true - - - - DataProcessor.ЖурналРегистрации.Command.ЖурналРегистрации - - View - true - - DataProcessor.ЖурналРегистрации diff --git a/SSL/src/Roles/УдаленныйДоступOData/Rights.rights b/SSL/src/Roles/УдаленныйДоступOData/Rights.rights index 6179870b8..49a8906a6 100644 --- a/SSL/src/Roles/УдаленныйДоступOData/Rights.rights +++ b/SSL/src/Roles/УдаленныйДоступOData/Rights.rights @@ -84,6 +84,17 @@ true + + InformationRegister.МестаХраненияДвоичныхДанных + + Read + true + + + Update + true + + Catalog.ШаблоныАнкет @@ -851,6 +862,25 @@ true + + Catalog.НастройкиОтправкиВГосключ + + Read + true + + + Insert + true + + + Update + true + + + Delete + true + + InformationRegister.НастройкиСинхронизацииФайлов @@ -862,6 +892,17 @@ true + + InformationRegister.НастройкиРаботыСФайловымАрхивом + + Read + true + + + Update + true + + SessionParameter.СпискиСОтключеннымОграничениемЧтения @@ -1253,33 +1294,6 @@ true - - Configuration.БиблиотекаСтандартныхПодсистем - - MainWindowModeNormal - true - - - MainWindowModeWorkplace - true - - - MainWindowModeEmbeddedWorkplace - true - - - MainWindowModeFullscreenWorkplace - true - - - MainWindowModeKiosk - true - - - AnalyticsSystemClient - true - - Constant.РазрешитьДоступКИнтернетСервисамЭлектроннойПодписи @@ -2086,6 +2100,17 @@ true + + Constant.ИспользоватьГосключ + + Read + true + + + Update + true + + InformationRegister.СклоненияПредставленийОбъектов @@ -3201,6 +3226,33 @@ true + + Configuration.БиблиотекаСтандартныхПодсистем + + MainWindowModeNormal + true + + + MainWindowModeWorkplace + true + + + MainWindowModeEmbeddedWorkplace + true + + + MainWindowModeFullscreenWorkplace + true + + + MainWindowModeKiosk + true + + + AnalyticsSystemClient + true + + Constant.ПрефиксУзлаРаспределеннойИнформационнойБазы @@ -3875,6 +3927,17 @@ true + + InformationRegister.СведенияОХраненииДедуплицированныхФайлов + + Read + true + + + Update + true + + InformationRegister.РабочиеКаталогиФайлов diff --git a/SSL/src/Roles/УдаленныйДоступБазоваяФункциональность/Rights.rights b/SSL/src/Roles/УдаленныйДоступБазоваяФункциональность/Rights.rights index 4aa1e92c1..c83ed6cb7 100644 --- a/SSL/src/Roles/УдаленныйДоступБазоваяФункциональность/Rights.rights +++ b/SSL/src/Roles/УдаленныйДоступБазоваяФункциональность/Rights.rights @@ -3,6 +3,13 @@ false true false + + WebService.InterfaceVersion.Operation.GetVersions + + Use + true + + Configuration.БиблиотекаСтандартныхПодсистем @@ -30,11 +37,4 @@ true - - WebService.InterfaceVersion.Operation.GetVersions - - Use - true - - diff --git a/SSL/src/Roles/УдаленныйДоступОбменДаннымиВМоделиСервиса/Rights.rights b/SSL/src/Roles/УдаленныйДоступОбменДаннымиВМоделиСервиса/Rights.rights index 9388e0019..8c6c46df5 100644 --- a/SSL/src/Roles/УдаленныйДоступОбменДаннымиВМоделиСервиса/Rights.rights +++ b/SSL/src/Roles/УдаленныйДоступОбменДаннымиВМоделиСервиса/Rights.rights @@ -59,33 +59,6 @@ true - - Configuration.БиблиотекаСтандартныхПодсистем - - MainWindowModeNormal - true - - - MainWindowModeWorkplace - true - - - MainWindowModeEmbeddedWorkplace - true - - - MainWindowModeFullscreenWorkplace - true - - - MainWindowModeKiosk - true - - - AnalyticsSystemClient - true - - WebService.RemoteAdministrationOfExchange_2_4_5_1.Operation.StartExchangeExecutionInSecondDataBase @@ -156,6 +129,33 @@ true + + Configuration.БиблиотекаСтандартныхПодсистем + + MainWindowModeNormal + true + + + MainWindowModeWorkplace + true + + + MainWindowModeEmbeddedWorkplace + true + + + MainWindowModeFullscreenWorkplace + true + + + MainWindowModeKiosk + true + + + AnalyticsSystemClient + true + + WebService.RemoteAdministrationOfExchange_2_4_5_1.Operation.Ping diff --git a/SSL/src/Roles/УдаленныйКонтроль/Rights.rights b/SSL/src/Roles/УдаленныйКонтроль/Rights.rights index 5243a8aa7..72e17a98c 100644 --- a/SSL/src/Roles/УдаленныйКонтроль/Rights.rights +++ b/SSL/src/Roles/УдаленныйКонтроль/Rights.rights @@ -3,6 +3,13 @@ false true false + + WebService.RemoteControl.Operation.GetCurrentState + + Use + true + + Configuration.БиблиотекаСтандартныхПодсистем @@ -30,11 +37,4 @@ true - - WebService.RemoteControl.Operation.GetCurrentState - - Use - true - - diff --git a/SSL/src/Roles/ЧтениеАктовОбУничтоженииПерсональныхДанных/Rights.rights b/SSL/src/Roles/ЧтениеАктовОбУничтоженииПерсональныхДанных/Rights.rights index 172aeec2e..b8b85547e 100644 --- a/SSL/src/Roles/ЧтениеАктовОбУничтоженииПерсональныхДанных/Rights.rights +++ b/SSL/src/Roles/ЧтениеАктовОбУничтоженииПерсональныхДанных/Rights.rights @@ -14,6 +14,28 @@ true + + InformationRegister.СубъектыДляРасчетаСроковХранения + + Read + true + + + View + true + + + + InformationRegister.УничтоженныеПерсональныеДанные + + Read + true + + + View + true + + Configuration.БиблиотекаСтандартныхПодсистем @@ -41,28 +63,6 @@ true - - InformationRegister.СубъектыДляРасчетаСроковХранения - - Read - true - - - View - true - - - - InformationRegister.УничтоженныеПерсональныеДанные - - Read - true - - - View - true - - Document.АктОбУничтоженииПерсональныхДанных diff --git a/SSL/src/Roles/ЧтениеВариантовОтчетов/Rights.rights b/SSL/src/Roles/ЧтениеВариантовОтчетов/Rights.rights index 0a1c2e15f..f33fa7c47 100644 --- a/SSL/src/Roles/ЧтениеВариантовОтчетов/Rights.rights +++ b/SSL/src/Roles/ЧтениеВариантовОтчетов/Rights.rights @@ -25,33 +25,6 @@ true - - Configuration.БиблиотекаСтандартныхПодсистем - - MainWindowModeNormal - true - - - MainWindowModeWorkplace - true - - - MainWindowModeEmbeddedWorkplace - true - - - MainWindowModeFullscreenWorkplace - true - - - MainWindowModeKiosk - true - - - AnalyticsSystemClient - true - - Catalog.ПользовательскиеНастройкиОтчетов @@ -96,4 +69,31 @@ true + + Configuration.БиблиотекаСтандартныхПодсистем + + MainWindowModeNormal + true + + + MainWindowModeWorkplace + true + + + MainWindowModeEmbeddedWorkplace + true + + + MainWindowModeFullscreenWorkplace + true + + + MainWindowModeKiosk + true + + + AnalyticsSystemClient + true + + diff --git a/SSL/src/Roles/ЧтениеВнешнихПользователей/Rights.rights b/SSL/src/Roles/ЧтениеВнешнихПользователей/Rights.rights index 07a50cf2e..f1b65302a 100644 --- a/SSL/src/Roles/ЧтениеВнешнихПользователей/Rights.rights +++ b/SSL/src/Roles/ЧтениеВнешнихПользователей/Rights.rights @@ -21,6 +21,32 @@ true + + InformationRegister.СоставыГруппПользователей + + Read + true + + + View + true + + + + Catalog.ВнешниеПользователи + + Read + true + + + View + true + + + InputByString + true + + Configuration.БиблиотекаСтандартныхПодсистем @@ -48,32 +74,6 @@ true - - InformationRegister.СоставыГруппПользователей - - Read - true - - - View - true - - - - Catalog.ВнешниеПользователи - - Read - true - - - View - true - - - InputByString - true - - Catalog.ГруппыВнешнихПользователей diff --git a/SSL/src/Roles/ЧтениеГрафиковРаботы/Rights.rights b/SSL/src/Roles/ЧтениеГрафиковРаботы/Rights.rights index ccb16083f..a9addaf35 100644 --- a/SSL/src/Roles/ЧтениеГрафиковРаботы/Rights.rights +++ b/SSL/src/Roles/ЧтениеГрафиковРаботы/Rights.rights @@ -36,6 +36,17 @@ true + + InformationRegister.РучныеИзмененияГрафиковРаботы + + Read + true + + + View + true + + Configuration.БиблиотекаСтандартныхПодсистем @@ -63,15 +74,4 @@ true - - InformationRegister.РучныеИзмененияГрафиковРаботы - - Read - true - - - View - true - - diff --git a/SSL/src/Roles/ЧтениеДанныхСервисаDSS/Rights.rights b/SSL/src/Roles/ЧтениеДанныхСервисаDSS/Rights.rights index e1c239683..36b561f5b 100644 --- a/SSL/src/Roles/ЧтениеДанныхСервисаDSS/Rights.rights +++ b/SSL/src/Roles/ЧтениеДанныхСервисаDSS/Rights.rights @@ -33,33 +33,6 @@ true - - Configuration.БиблиотекаСтандартныхПодсистем - - MainWindowModeNormal - true - - - MainWindowModeWorkplace - true - - - MainWindowModeEmbeddedWorkplace - true - - - MainWindowModeFullscreenWorkplace - true - - - MainWindowModeKiosk - true - - - AnalyticsSystemClient - true - - SessionParameter.ПодключениеDSS @@ -89,6 +62,33 @@ true + + Configuration.БиблиотекаСтандартныхПодсистем + + MainWindowModeNormal + true + + + MainWindowModeWorkplace + true + + + MainWindowModeEmbeddedWorkplace + true + + + MainWindowModeFullscreenWorkplace + true + + + MainWindowModeKiosk + true + + + AnalyticsSystemClient + true + + Report.СостояниеУчетнойЗаписиDSS diff --git a/SSL/src/Roles/ЧтениеДатЗапретаЗагрузки/Rights.rights b/SSL/src/Roles/ЧтениеДатЗапретаЗагрузки/Rights.rights index 7dbb58438..61451e7f3 100644 --- a/SSL/src/Roles/ЧтениеДатЗапретаЗагрузки/Rights.rights +++ b/SSL/src/Roles/ЧтениеДатЗапретаЗагрузки/Rights.rights @@ -29,6 +29,13 @@ true + + InformationRegister.ДатыЗапретаИзменения.Command.ДатыЗапретаЗагрузкиДанных + + View + true + + Configuration.БиблиотекаСтандартныхПодсистем @@ -56,13 +63,6 @@ true - - InformationRegister.ДатыЗапретаИзменения.Command.ДатыЗапретаЗагрузкиДанных - - View - true - - InformationRegister.ДатыЗапретаИзменения diff --git a/SSL/src/Roles/ЧтениеДатЗапретаИзменения/Rights.rights b/SSL/src/Roles/ЧтениеДатЗапретаИзменения/Rights.rights index 5ecf73f9a..d08d10fca 100644 --- a/SSL/src/Roles/ЧтениеДатЗапретаИзменения/Rights.rights +++ b/SSL/src/Roles/ЧтениеДатЗапретаИзменения/Rights.rights @@ -18,6 +18,17 @@ true + + Report.ДатыЗапретаИзменения + + Use + true + + + View + true + + Configuration.БиблиотекаСтандартныхПодсистем @@ -45,17 +56,6 @@ true - - Report.ДатыЗапретаИзменения - - Use - true - - - View - true - - InformationRegister.ДатыЗапретаИзменения.Command.ДатыЗапретаИзмененияДанных diff --git a/SSL/src/Roles/ЧтениеДополнительныхОтчетовИОбработок/Rights.rights b/SSL/src/Roles/ЧтениеДополнительныхОтчетовИОбработок/Rights.rights index fe5913fdc..4831450c4 100644 --- a/SSL/src/Roles/ЧтениеДополнительныхОтчетовИОбработок/Rights.rights +++ b/SSL/src/Roles/ЧтениеДополнительныхОтчетовИОбработок/Rights.rights @@ -3,33 +3,6 @@ false true false - - Configuration.БиблиотекаСтандартныхПодсистем - - MainWindowModeNormal - true - - - MainWindowModeWorkplace - true - - - MainWindowModeEmbeddedWorkplace - true - - - MainWindowModeFullscreenWorkplace - true - - - MainWindowModeKiosk - true - - - AnalyticsSystemClient - true - - InformationRegister.ПользовательскиеНастройкиДоступаКОбработкам @@ -82,6 +55,33 @@ true + + Configuration.БиблиотекаСтандартныхПодсистем + + MainWindowModeNormal + true + + + MainWindowModeWorkplace + true + + + MainWindowModeEmbeddedWorkplace + true + + + MainWindowModeFullscreenWorkplace + true + + + MainWindowModeKiosk + true + + + AnalyticsSystemClient + true + + CommonForm.ДополнительныеОтчетыИОбработки diff --git a/SSL/src/Roles/ЧтениеДополнительныхСведений/Rights.rights b/SSL/src/Roles/ЧтениеДополнительныхСведений/Rights.rights index 48979aaae..637f561f5 100644 --- a/SSL/src/Roles/ЧтениеДополнительныхСведений/Rights.rights +++ b/SSL/src/Roles/ЧтениеДополнительныхСведений/Rights.rights @@ -23,6 +23,13 @@ true + + CommonCommand.ДополнительныеСведенияКоманднаяПанель + + View + true + + Configuration.БиблиотекаСтандартныхПодсистем @@ -50,13 +57,6 @@ true - - CommonCommand.ДополнительныеСведенияКоманднаяПанель - - View - true - - CommonForm.РедактированиеДополнительныхСведений diff --git a/SSL/src/Roles/ЧтениеЗаданий/Rights.rights b/SSL/src/Roles/ЧтениеЗаданий/Rights.rights index 2ab453c5a..3da7711dd 100644 --- a/SSL/src/Roles/ЧтениеЗаданий/Rights.rights +++ b/SSL/src/Roles/ЧтениеЗаданий/Rights.rights @@ -82,6 +82,27 @@ true + + CommonCommand.ЗадачиПоБизнесПроцессу + + View + true + + + + Task.ЗадачаИсполнителя.Command.ВсеЗадачи + + View + true + + + + Task.ЗадачаИсполнителя.Command.МоиЗадачи + + View + true + + Configuration.БиблиотекаСтандартныхПодсистем @@ -109,27 +130,6 @@ true - - CommonCommand.ЗадачиПоБизнесПроцессу - - View - true - - - - Task.ЗадачаИсполнителя.Command.ВсеЗадачи - - View - true - - - - Task.ЗадачаИсполнителя.Command.МоиЗадачи - - View - true - - Report.БизнесПроцессы diff --git a/SSL/src/Roles/ЧтениеЗадач/Rights.rights b/SSL/src/Roles/ЧтениеЗадач/Rights.rights index 7940b7448..6a703ff77 100644 --- a/SSL/src/Roles/ЧтениеЗадач/Rights.rights +++ b/SSL/src/Roles/ЧтениеЗадач/Rights.rights @@ -75,33 +75,6 @@ true - - Configuration.БиблиотекаСтандартныхПодсистем - - MainWindowModeNormal - true - - - MainWindowModeWorkplace - true - - - MainWindowModeEmbeddedWorkplace - true - - - MainWindowModeFullscreenWorkplace - true - - - MainWindowModeKiosk - true - - - AnalyticsSystemClient - true - - Task.ЗадачаИсполнителя.Command.ВсеЗадачи @@ -138,6 +111,33 @@ true + + Configuration.БиблиотекаСтандартныхПодсистем + + MainWindowModeNormal + true + + + MainWindowModeWorkplace + true + + + MainWindowModeEmbeddedWorkplace + true + + + MainWindowModeFullscreenWorkplace + true + + + MainWindowModeKiosk + true + + + AnalyticsSystemClient + true + + Task.ЗадачаИсполнителя.Command.Перенаправить diff --git a/SSL/src/Roles/ЧтениеЛичныхСертификатовКлючейЭлектроннойПодписиИШифрования/Rights.rights b/SSL/src/Roles/ЧтениеЛичныхСертификатовКлючейЭлектроннойПодписиИШифрования/Rights.rights new file mode 100644 index 000000000..8e2031987 --- /dev/null +++ b/SSL/src/Roles/ЧтениеЛичныхСертификатовКлючейЭлектроннойПодписиИШифрования/Rights.rights @@ -0,0 +1,3728 @@ + + + false + true + false + + InformationRegister.ЗаявленияНаВыпускСертификата + + Read + true + + #Если &ОграничениеДоступаНаУровнеЗаписейУниверсально #Тогда +#ДляРегистра("ИдентификаторыОбъектовМетаданных.РегистрСведенийЗаявленияНаВыпускСертификата", "Сертификат", "СертификатОснование", "", "", "") +#Иначе +#ПоЗначениямРасширенный("РегистрСведений.ЗаявленияНаВыпускСертификата", "Чтение", "", +"ЛЕВОЕ СОЕДИНЕНИЕ Справочник.СертификатыКлючейЭлектроннойПодписиИШифрования.Пользователи КАК Т1 ПО Т.Сертификат = Т1.Ссылка +ЛЕВОЕ СОЕДИНЕНИЕ Справочник.СертификатыКлючейЭлектроннойПодписиИШифрования КАК Т2 ПО Т.Сертификат = Т2.Ссылка +ЛЕВОЕ СОЕДИНЕНИЕ Справочник.СертификатыКлючейЭлектроннойПодписиИШифрования.Пользователи КАК Т3 ПО Т.СертификатОснование = Т3.Ссылка +ЛЕВОЕ СОЕДИНЕНИЕ Справочник.СертификатыКлючейЭлектроннойПодписиИШифрования КАК Т4 ПО Т3.Ссылка = Т.СертификатОснование = Т4.Ссылка", +"(", +"Условие", "Т.Сертификат = Значение(Справочник.СертификатыКлючейЭлектроннойПодписиИШифрования.ПустаяСсылка)", "ИЛИ", +"Пользователи", "Т1.Пользователь", "ИЛИ", +"Условие", "Т1.Пользователь = Значение(Справочник.Пользователи.ПустаяСсылка)", "ИЛИ", +"Пользователи", "Т2.Пользователь", "ИЛИ", +"Условие", "Т2.Пользователь = Значение(Справочник.Пользователи.ПустаяСсылка)", ")И(", +"Условие", "Т.СертификатОснование = Значение(Справочник.СертификатыКлючейЭлектроннойПодписиИШифрования.ПустаяСсылка)", "ИЛИ", +"Пользователи", "Т3.Пользователь", "ИЛИ", +"Условие", "Т3.Пользователь = Значение(Справочник.Пользователи.ПустаяСсылка)", "ИЛИ", +"Пользователи", "Т4.Пользователь", "ИЛИ", +"Условие", "Т4.Пользователь = Значение(Справочник.Пользователи.ПустаяСсылка)", ")", +"","","", "","","", "","","", "","","", "","","", "","","") +#КонецЕсли + + + + View + true + + + + DataProcessor.ЗаявлениеНаВыпускНовогоКвалифицированногоСертификата + + Use + true + + + View + true + + + + Catalog.СертификатыКлючейЭлектроннойПодписиИШифрования + + Read + true + + #Если &ОграничениеДоступаНаУровнеЗаписейУниверсально #Тогда +#ДляОбъекта("") +#Иначе +#ПоЗначениямРасширенный("Справочник.СертификатыКлючейЭлектроннойПодписиИШифрования", "Чтение", "", +"ЛЕВОЕ СОЕДИНЕНИЕ Справочник.СертификатыКлючейЭлектроннойПодписиИШифрования.Пользователи КАК Т1 ПО Т1.Ссылка = Т.Ссылка", +"(", +"Пользователи", "Т.Пользователь", "ИЛИ", +"Условие", "Т.Пользователь = Значение(Справочник.Пользователи.ПустаяСсылка)", "ИЛИ", +"Пользователи", "Т1.Пользователь", "ИЛИ", +"Условие", "Т.Пользователь = Значение(Справочник.Пользователи.ПустаяСсылка)", ")И(", +"Условие", "Истина", ")", +"", "", "", +"","","", "","","", "","","", "","","", "","","", "","","", "","","", "","","", "","","", "","","") +#КонецЕсли + + + + View + true + + + InputByString + true + + + + Report.СертификатыЭлектроннойПодписи + + Use + true + + + View + true + + + + Configuration.БиблиотекаСтандартныхПодсистем + + MainWindowModeNormal + true + + + MainWindowModeWorkplace + true + + + MainWindowModeEmbeddedWorkplace + true + + + MainWindowModeFullscreenWorkplace + true + + + MainWindowModeKiosk + true + + + AnalyticsSystemClient + true + + + + ДляОбъекта(ПолеОбъекта) + // ДляОбъекта(ПолеОбъекта = "") +// Шаблон используется для ограничения элементов справочников, документов и +// других списков объектов по полю Ссылка, а также элементов зависимых списков +// объектов и записей регистров через поле объекта-владельца. +// +// Параметры: +// ПолеОбъекта - имя поля, содержащего ссылку на объект, от которого зависит элемент списка. +// Значение "" (по умолчанию) то же, что имя поля "Ссылка". +// + +#Если &СпискиСОтключеннымОграничениемЧтения = "Неопределено" #Тогда + // Информационная база заблокирована для обновления. + ГДЕ ЛОЖЬ + +#ИначеЕсли Не СтрСодержит(&ВерсииШаблоновОграниченияДоступа, ",ДляОбъекта9,") #Тогда + Ошибка: Требуется обновить шаблон на актуальную версию, поставляемую в роли ИзменениеУчастниковГруппДоступа по причине: Используется устаревшая версия 9 шаблона ограничения доступа ДляОбъекта. Объект: #ИмяТекущейТаблицы, Право: #ИмяТекущегоПраваДоступа. + +#ИначеЕсли &СпискиСОтключеннымОграничениемЧтения = "Все" #Тогда + // У пользователя отключены все виды доступа или + // ограничение на уровне записей не используется. + ГДЕ ИСТИНА + +#ИначеЕсли СтрСодержит(&СпискиСОтключеннымОграничениемЧтения, #ИмяТекущейТаблицы + ";") #Тогда + // У пользователя отключено ограничение для текущей таблицы. + ГДЕ ИСТИНА + +#ИначеЕсли СтрСодержит(&ВерсииШаблоновОграниченияДоступа, ",ТребуетсяПерезапуститьСеанс,") #Тогда + Ошибка: Версия программы обновлена, требуется перезапустить сеанс. Объект: #ИмяТекущейТаблицы, Право: #ИмяТекущегоПраваДоступа. + +#ИначеЕсли #ИмяТекущегоПраваДоступа <> "Чтение" #Тогда + // Проверка прав Добавление, Изменение, Удаление выполняется ПередЗаписью / ПриЗаписи. + ГДЕ ИСТИНА + +#ИначеЕсли СтрСодержит(&СпискиСОграничениемЧерезКлючиДоступаГруппДоступа, #ИмяТекущейТаблицы + ";0") #Тогда + ГДЕ ЛОЖЬ + +#ИначеЕсли СтрСодержит(&СпискиСОграничениемЧерезКлючиДоступаГруппДоступа, #ИмяТекущейТаблицы + ";1") #Тогда + Ошибка: Внешние пользователи отключены. + +#ИначеЕсли Не СтрСодержит(&СпискиСОграничениемЧерезКлючиДоступаГруппДоступа, #ИмяТекущейТаблицы + ":#ПолеОбъекта;") + И Не СтрСодержит(&СпискиСОграничениемЧерезКлючиДоступаПользователей, #ИмяТекущейТаблицы + ":#ПолеОбъекта;") #Тогда + + Ошибка: Требуется актуализировать ограничение доступа по причине: Не удалось определить вариант ограничения доступа в параметрах сеанса для шаблона ДляОбъекта со значением параметра "#ПолеОбъекта". Объект: #ИмяТекущейТаблицы, Право: #ИмяТекущегоПраваДоступа. +#Иначе + +ТекущаяТаблица ГДЕ ИСТИНА В + ( + ВЫБРАТЬ ПЕРВЫЕ 1 ИСТИНА + ИЗ РегистрСведений.КлючиДоступаКОбъектам КАК КлючиДоступаКОбъектам + #Если СтрСодержит(&СпискиСОграничениемЧерезКлючиДоступаГруппДоступа, #ИмяТекущейТаблицы + ":#ПолеОбъекта;") #Тогда + ЛЕВОЕ СОЕДИНЕНИЕ РегистрСведений.КлючиДоступаНаборовГруппДоступа КАК КлючиДоступаНаборовГруппДоступа + ПО + #Если &ТекущийВнешнийПользователь = Значение(Справочник.ВнешниеПользователи.ПустаяСсылка) #Тогда + КлючиДоступаНаборовГруппДоступа.КлючДоступа = КлючиДоступаКОбъектам.КлючДоступаПользователей + #Иначе + КлючиДоступаНаборовГруппДоступа.КлючДоступа = КлючиДоступаКОбъектам.КлючДоступаВнешнихПользователей + #КонецЕсли + И КлючиДоступаНаборовГруппДоступа.НаборГруппДоступа = &РазрешенныйНаборГруппДоступа + #КонецЕсли + #Если СтрСодержит(&СпискиСОграничениемЧерезКлючиДоступаГруппДоступа, #ИмяТекущейТаблицы + ":#ПолеОбъекта;*") #Тогда + + ЛЕВОЕ СОЕДИНЕНИЕ РегистрСведений.КлючиДоступаНаборовГруппДоступа КАК КлючиДоступаРазрешенногоНабораГруппДоступа + ПО + #Если &ТекущийВнешнийПользователь = Значение(Справочник.ВнешниеПользователи.ПустаяСсылка) #Тогда + КлючиДоступаРазрешенногоНабораГруппДоступа.КлючДоступа = КлючиДоступаКОбъектам.КлючДоступаПользователей + #Иначе + КлючиДоступаРазрешенногоНабораГруппДоступа.КлючДоступа = КлючиДоступаКОбъектам.КлючДоступаВнешнихПользователей + #КонецЕсли + И КлючиДоступаРазрешенногоНабораГруппДоступа.НаборГруппДоступа = &РазрешенныйПустойНаборГруппДоступа + #КонецЕсли + #Если СтрСодержит(&СпискиСОграничениемЧерезКлючиДоступаПользователей, #ИмяТекущейТаблицы + ":#ПолеОбъекта;") #Тогда + + #Если &ТекущийВнешнийПользователь = Значение(Справочник.ВнешниеПользователи.ПустаяСсылка) #Тогда + ЛЕВОЕ СОЕДИНЕНИЕ РегистрСведений.КлючиДоступаПользователей КАК КлючиДоступаПользователей + ПО + КлючиДоступаПользователей.КлючДоступа = КлючиДоступаКОбъектам.КлючДоступаПользователей + И КлючиДоступаПользователей.Пользователь = &РазрешенныйПользователь + #Иначе + ЛЕВОЕ СОЕДИНЕНИЕ РегистрСведений.КлючиДоступаВнешнихПользователей КАК КлючиДоступаПользователей + ПО + КлючиДоступаПользователей.КлючДоступа = КлючиДоступаКОбъектам.КлючДоступаВнешнихПользователей + И КлючиДоступаПользователей.ВнешнийПользователь = &РазрешенныйПользователь + #КонецЕсли + #КонецЕсли + #Если СтрСодержит(&СпискиСОграничениемЧерезКлючиДоступаПользователей, #ИмяТекущейТаблицы + ":#ПолеОбъекта;+") #Тогда + + #Если &ТекущийВнешнийПользователь = Значение(Справочник.ВнешниеПользователи.ПустаяСсылка) #Тогда + ЛЕВОЕ СОЕДИНЕНИЕ РегистрСведений.КлючиДоступаПользователей КАК КлючиДоступаНаборовГруппПользователей + ПО + КлючиДоступаНаборовГруппПользователей.КлючДоступа = КлючиДоступаКОбъектам.КлючДоступаПользователей + И КлючиДоступаНаборовГруппПользователей.Пользователь = &РазрешенныйНаборГруппПользователей + #Иначе + ЛЕВОЕ СОЕДИНЕНИЕ РегистрСведений.КлючиДоступаВнешнихПользователей КАК КлючиДоступаНаборовГруппПользователей + ПО + КлючиДоступаНаборовГруппПользователей.КлючДоступа = КлючиДоступаКОбъектам.КлючДоступаВнешнихПользователей + И КлючиДоступаНаборовГруппПользователей.ВнешнийПользователь = &РазрешенныйНаборГруппПользователей + #КонецЕсли + #КонецЕсли + ГДЕ + #Если "#ПолеОбъекта" = "" + Или СтрСодержит(&СпискиСОграничениемЧерезКлючиДоступаГруппДоступа, #ИмяТекущейТаблицы + ":#ПолеОбъекта;;-") + Или СтрСодержит(&СпискиСОграничениемЧерезКлючиДоступаГруппДоступа, #ИмяТекущейТаблицы + ":#ПолеОбъекта;*;-") + Или СтрСодержит(&СпискиСОграничениемЧерезКлючиДоступаПользователей, #ИмяТекущейТаблицы + ":#ПолеОбъекта;;-") + Или СтрСодержит(&СпискиСОграничениемЧерезКлючиДоступаПользователей, #ИмяТекущейТаблицы + ":#ПолеОбъекта;+;-") #Тогда + КлючиДоступаКОбъектам.Объект = ТекущаяТаблица.Ссылка + #Иначе + КлючиДоступаКОбъектам.Объект = ТекущаяТаблица.#ПолеОбъекта + #КонецЕсли + И ( + #Если СтрСодержит(&СпискиСОграничениемЧерезКлючиДоступаГруппДоступа, #ИмяТекущейТаблицы + ":#ПолеОбъекта;") #Тогда + НЕ КлючиДоступаНаборовГруппДоступа.КлючДоступа ЕСТЬ NULL + #Иначе + ЛОЖЬ + #КонецЕсли + #Если СтрСодержит(&СпискиСОграничениемЧерезКлючиДоступаГруппДоступа, #ИмяТекущейТаблицы + ":#ПолеОбъекта;*") #Тогда + ИЛИ НЕ КлючиДоступаРазрешенногоНабораГруппДоступа.КлючДоступа ЕСТЬ NULL + #КонецЕсли + #Если СтрСодержит(&СпискиСОграничениемЧерезКлючиДоступаПользователей, #ИмяТекущейТаблицы + ":#ПолеОбъекта;") #Тогда + ИЛИ НЕ КлючиДоступаПользователей.КлючДоступа ЕСТЬ NULL + #КонецЕсли + #Если СтрСодержит(&СпискиСОграничениемЧерезКлючиДоступаПользователей, #ИмяТекущейТаблицы + ":#ПолеОбъекта;+") #Тогда + ИЛИ НЕ КлючиДоступаНаборовГруппПользователей.КлючДоступа ЕСТЬ NULL + #КонецЕсли + ) + ) + + #Если Не СтрСодержит(&ОбщиеПараметрыШаблоновОграниченияДоступа, #ИмяТекущейТаблицы + ":Пропустить;") + И ( СтрСодержит(&ОбщиеПараметрыШаблоновОграниченияДоступа, ";УточнитьДляВсех;") + Или СтрСодержит(&ОбщиеПараметрыШаблоновОграниченияДоступа, #ИмяТекущейТаблицы + ":Уточнить;") ) #Тогда + + #Если Не СтрСодержит(&СпискиСОграничениемЧерезКлючиДоступаПользователей, #ИмяТекущейТаблицы + ":#ПолеОбъекта;") #Тогда + И ИСТИНА В (ИСТИНА + #Если СтрСодержит(&ОбщиеПараметрыШаблоновОграниченияДоступа, ";31;") #Тогда ,ИСТИНА #Иначе ,ЛОЖЬ #КонецЕсли + #Если СтрСодержит(&ОбщиеПараметрыШаблоновОграниченияДоступа, ";30;") #Тогда ,ИСТИНА #Иначе ,ЛОЖЬ #КонецЕсли + #Если СтрСодержит(&ОбщиеПараметрыШаблоновОграниченияДоступа, ";29;") #Тогда ,ИСТИНА #Иначе ,ЛОЖЬ #КонецЕсли + #Если СтрСодержит(&ОбщиеПараметрыШаблоновОграниченияДоступа, ";28;") #Тогда ,ИСТИНА #Иначе ,ЛОЖЬ #КонецЕсли + #Если СтрСодержит(&ОбщиеПараметрыШаблоновОграниченияДоступа, ";27;") #Тогда ,ИСТИНА #Иначе ,ЛОЖЬ #КонецЕсли + #Если СтрСодержит(&ОбщиеПараметрыШаблоновОграниченияДоступа, ";26;") #Тогда ,ИСТИНА #Иначе ,ЛОЖЬ #КонецЕсли + #Если СтрСодержит(&ОбщиеПараметрыШаблоновОграниченияДоступа, ";25;") #Тогда ,ИСТИНА #Иначе ,ЛОЖЬ #КонецЕсли + #Если СтрСодержит(&ОбщиеПараметрыШаблоновОграниченияДоступа, ";24;") #Тогда ,ИСТИНА #Иначе ,ЛОЖЬ #КонецЕсли + #Если СтрСодержит(&ОбщиеПараметрыШаблоновОграниченияДоступа, ";23;") #Тогда ,ИСТИНА #Иначе ,ЛОЖЬ #КонецЕсли + #Если СтрСодержит(&ОбщиеПараметрыШаблоновОграниченияДоступа, ";22;") #Тогда ,ИСТИНА #Иначе ,ЛОЖЬ #КонецЕсли + #Если СтрСодержит(&ОбщиеПараметрыШаблоновОграниченияДоступа, ";21;") #Тогда ,ИСТИНА #Иначе ,ЛОЖЬ #КонецЕсли + #Если СтрСодержит(&ОбщиеПараметрыШаблоновОграниченияДоступа, ";20;") #Тогда ,ИСТИНА #Иначе ,ЛОЖЬ #КонецЕсли + #Если СтрСодержит(&ОбщиеПараметрыШаблоновОграниченияДоступа, ";19;") #Тогда ,ИСТИНА #Иначе ,ЛОЖЬ #КонецЕсли + #Если СтрСодержит(&ОбщиеПараметрыШаблоновОграниченияДоступа, ";18;") #Тогда ,ИСТИНА #Иначе ,ЛОЖЬ #КонецЕсли + #Если СтрСодержит(&ОбщиеПараметрыШаблоновОграниченияДоступа, ";17;") #Тогда ,ИСТИНА #Иначе ,ЛОЖЬ #КонецЕсли + #Если СтрСодержит(&ОбщиеПараметрыШаблоновОграниченияДоступа, ";16;") #Тогда ,ИСТИНА #Иначе ,ЛОЖЬ #КонецЕсли + #Если СтрСодержит(&ОбщиеПараметрыШаблоновОграниченияДоступа, ";15;") #Тогда ,ИСТИНА #Иначе ,ЛОЖЬ #КонецЕсли + #Если СтрСодержит(&ОбщиеПараметрыШаблоновОграниченияДоступа, ";14;") #Тогда ,ИСТИНА #Иначе ,ЛОЖЬ #КонецЕсли + #Если СтрСодержит(&ОбщиеПараметрыШаблоновОграниченияДоступа, ";13;") #Тогда ,ИСТИНА #Иначе ,ЛОЖЬ #КонецЕсли + #Если СтрСодержит(&ОбщиеПараметрыШаблоновОграниченияДоступа, ";12;") #Тогда ,ИСТИНА #Иначе ,ЛОЖЬ #КонецЕсли + #Если СтрСодержит(&ОбщиеПараметрыШаблоновОграниченияДоступа, ";11;") #Тогда ,ИСТИНА #Иначе ,ЛОЖЬ #КонецЕсли + #Если СтрСодержит(&ОбщиеПараметрыШаблоновОграниченияДоступа, ";10;") #Тогда ,ИСТИНА #Иначе ,ЛОЖЬ #КонецЕсли + #Если СтрСодержит(&ОбщиеПараметрыШаблоновОграниченияДоступа, ";09;") #Тогда ,ИСТИНА #Иначе ,ЛОЖЬ #КонецЕсли + #Если СтрСодержит(&ОбщиеПараметрыШаблоновОграниченияДоступа, ";08;") #Тогда ,ИСТИНА #Иначе ,ЛОЖЬ #КонецЕсли + #Если СтрСодержит(&ОбщиеПараметрыШаблоновОграниченияДоступа, ";07;") #Тогда ,ИСТИНА #Иначе ,ЛОЖЬ #КонецЕсли + #Если СтрСодержит(&ОбщиеПараметрыШаблоновОграниченияДоступа, ";06;") #Тогда ,ИСТИНА #Иначе ,ЛОЖЬ #КонецЕсли + #Если СтрСодержит(&ОбщиеПараметрыШаблоновОграниченияДоступа, ";05;") #Тогда ,ИСТИНА #Иначе ,ЛОЖЬ #КонецЕсли + #Если СтрСодержит(&ОбщиеПараметрыШаблоновОграниченияДоступа, ";04;") #Тогда ,ИСТИНА #Иначе ,ЛОЖЬ #КонецЕсли + #Если СтрСодержит(&ОбщиеПараметрыШаблоновОграниченияДоступа, ";03;") #Тогда ,ИСТИНА #Иначе ,ЛОЖЬ #КонецЕсли + #Если СтрСодержит(&ОбщиеПараметрыШаблоновОграниченияДоступа, ";02;") #Тогда ,ИСТИНА #Иначе ,ЛОЖЬ #КонецЕсли + #Если СтрСодержит(&ОбщиеПараметрыШаблоновОграниченияДоступа, ";01;") #Тогда ,ИСТИНА #Иначе ,ЛОЖЬ #КонецЕсли + #Если СтрСодержит(&ОбщиеПараметрыШаблоновОграниченияДоступа, ";00;") #Тогда ,ИСТИНА #Иначе ,ЛОЖЬ #КонецЕсли + ) + #Иначе + И ИСТИНА В (ИСТИНА + #Если СтрСодержит(&ОбщиеПараметрыШаблоновОграниченияДоступа, ";31^;") #Тогда ,ИСТИНА #Иначе ,ЛОЖЬ #КонецЕсли + #Если СтрСодержит(&ОбщиеПараметрыШаблоновОграниченияДоступа, ";30^;") #Тогда ,ИСТИНА #Иначе ,ЛОЖЬ #КонецЕсли + #Если СтрСодержит(&ОбщиеПараметрыШаблоновОграниченияДоступа, ";29^;") #Тогда ,ИСТИНА #Иначе ,ЛОЖЬ #КонецЕсли + #Если СтрСодержит(&ОбщиеПараметрыШаблоновОграниченияДоступа, ";28^;") #Тогда ,ИСТИНА #Иначе ,ЛОЖЬ #КонецЕсли + #Если СтрСодержит(&ОбщиеПараметрыШаблоновОграниченияДоступа, ";27^;") #Тогда ,ИСТИНА #Иначе ,ЛОЖЬ #КонецЕсли + #Если СтрСодержит(&ОбщиеПараметрыШаблоновОграниченияДоступа, ";26^;") #Тогда ,ИСТИНА #Иначе ,ЛОЖЬ #КонецЕсли + #Если СтрСодержит(&ОбщиеПараметрыШаблоновОграниченияДоступа, ";25^;") #Тогда ,ИСТИНА #Иначе ,ЛОЖЬ #КонецЕсли + #Если СтрСодержит(&ОбщиеПараметрыШаблоновОграниченияДоступа, ";24^;") #Тогда ,ИСТИНА #Иначе ,ЛОЖЬ #КонецЕсли + #Если СтрСодержит(&ОбщиеПараметрыШаблоновОграниченияДоступа, ";23^;") #Тогда ,ИСТИНА #Иначе ,ЛОЖЬ #КонецЕсли + #Если СтрСодержит(&ОбщиеПараметрыШаблоновОграниченияДоступа, ";22^;") #Тогда ,ИСТИНА #Иначе ,ЛОЖЬ #КонецЕсли + #Если СтрСодержит(&ОбщиеПараметрыШаблоновОграниченияДоступа, ";21^;") #Тогда ,ИСТИНА #Иначе ,ЛОЖЬ #КонецЕсли + #Если СтрСодержит(&ОбщиеПараметрыШаблоновОграниченияДоступа, ";20^;") #Тогда ,ИСТИНА #Иначе ,ЛОЖЬ #КонецЕсли + #Если СтрСодержит(&ОбщиеПараметрыШаблоновОграниченияДоступа, ";19^;") #Тогда ,ИСТИНА #Иначе ,ЛОЖЬ #КонецЕсли + #Если СтрСодержит(&ОбщиеПараметрыШаблоновОграниченияДоступа, ";18^;") #Тогда ,ИСТИНА #Иначе ,ЛОЖЬ #КонецЕсли + #Если СтрСодержит(&ОбщиеПараметрыШаблоновОграниченияДоступа, ";17^;") #Тогда ,ИСТИНА #Иначе ,ЛОЖЬ #КонецЕсли + #Если СтрСодержит(&ОбщиеПараметрыШаблоновОграниченияДоступа, ";16^;") #Тогда ,ИСТИНА #Иначе ,ЛОЖЬ #КонецЕсли + #Если СтрСодержит(&ОбщиеПараметрыШаблоновОграниченияДоступа, ";15^;") #Тогда ,ИСТИНА #Иначе ,ЛОЖЬ #КонецЕсли + #Если СтрСодержит(&ОбщиеПараметрыШаблоновОграниченияДоступа, ";14^;") #Тогда ,ИСТИНА #Иначе ,ЛОЖЬ #КонецЕсли + #Если СтрСодержит(&ОбщиеПараметрыШаблоновОграниченияДоступа, ";13^;") #Тогда ,ИСТИНА #Иначе ,ЛОЖЬ #КонецЕсли + #Если СтрСодержит(&ОбщиеПараметрыШаблоновОграниченияДоступа, ";12^;") #Тогда ,ИСТИНА #Иначе ,ЛОЖЬ #КонецЕсли + #Если СтрСодержит(&ОбщиеПараметрыШаблоновОграниченияДоступа, ";11^;") #Тогда ,ИСТИНА #Иначе ,ЛОЖЬ #КонецЕсли + #Если СтрСодержит(&ОбщиеПараметрыШаблоновОграниченияДоступа, ";10^;") #Тогда ,ИСТИНА #Иначе ,ЛОЖЬ #КонецЕсли + #Если СтрСодержит(&ОбщиеПараметрыШаблоновОграниченияДоступа, ";09^;") #Тогда ,ИСТИНА #Иначе ,ЛОЖЬ #КонецЕсли + #Если СтрСодержит(&ОбщиеПараметрыШаблоновОграниченияДоступа, ";08^;") #Тогда ,ИСТИНА #Иначе ,ЛОЖЬ #КонецЕсли + #Если СтрСодержит(&ОбщиеПараметрыШаблоновОграниченияДоступа, ";07^;") #Тогда ,ИСТИНА #Иначе ,ЛОЖЬ #КонецЕсли + #Если СтрСодержит(&ОбщиеПараметрыШаблоновОграниченияДоступа, ";06^;") #Тогда ,ИСТИНА #Иначе ,ЛОЖЬ #КонецЕсли + #Если СтрСодержит(&ОбщиеПараметрыШаблоновОграниченияДоступа, ";05^;") #Тогда ,ИСТИНА #Иначе ,ЛОЖЬ #КонецЕсли + #Если СтрСодержит(&ОбщиеПараметрыШаблоновОграниченияДоступа, ";04^;") #Тогда ,ИСТИНА #Иначе ,ЛОЖЬ #КонецЕсли + #Если СтрСодержит(&ОбщиеПараметрыШаблоновОграниченияДоступа, ";03^;") #Тогда ,ИСТИНА #Иначе ,ЛОЖЬ #КонецЕсли + #Если СтрСодержит(&ОбщиеПараметрыШаблоновОграниченияДоступа, ";02^;") #Тогда ,ИСТИНА #Иначе ,ЛОЖЬ #КонецЕсли + #Если СтрСодержит(&ОбщиеПараметрыШаблоновОграниченияДоступа, ";01^;") #Тогда ,ИСТИНА #Иначе ,ЛОЖЬ #КонецЕсли + #Если СтрСодержит(&ОбщиеПараметрыШаблоновОграниченияДоступа, ";00^;") #Тогда ,ИСТИНА #Иначе ,ЛОЖЬ #КонецЕсли + ) + #КонецЕсли + #КонецЕсли + +#КонецЕсли + + + ДляРегистра(Регистр, Поле1, Поле2, Поле3, Поле4, Поле5) + // ДляРегистра(Регистр, Поле1, Поле2 = "", Поле3 = "", Поле4 = "", Поле5 = "") +// Шаблон используется для ограничения групп записей регистров. +// +// Параметры: +// Регистр - имя предопределенного элемента справочника Идентификаторы объектов метаданных или справочника +// Идентификаторы объектов расширений в формате: имя справочника с точкой и полное имя таблицы +// без точки, например, ИдентификаторыОбъектовМетаданных.РегистрНакопленияОстаткиНаСкладах; +// - имя отдельного регистра ключей в формате КлючиДоступаКРегистру<ОстатокИмени>, +// например, КлючиДоступаКРегиструОстаткиНаСкладах. +// Поле1 - имя первого поля (измерения, ресурса, реквизита), которое будет соединяться с полем Поле1 +// регистра сведений КлючиДоступаКРегистр* +// Поле2 - аналогично предыдущему параметру, если используется в ограничении доступа к регистру. +// ... +// Поле5 - аналогично предыдущему параметру, если используется в ограничении доступа к регистру. + +#Если &СпискиСОтключеннымОграничениемЧтения = "Неопределено" #Тогда + // Информационная база заблокирована для обновления. + ГДЕ ЛОЖЬ + +#ИначеЕсли Не СтрСодержит(&ВерсииШаблоновОграниченияДоступа, ",ДляРегистра9,") #Тогда + Ошибка: Требуется обновить шаблон на актуальную версию, поставляемую в роли ИзменениеУчастниковГруппДоступа по причине: Используется устаревшая версия 9 шаблона ограничения доступа ДляРегистра. Объект: #ИмяТекущейТаблицы, Право: #ИмяТекущегоПраваДоступа. + +#ИначеЕсли &СпискиСОтключеннымОграничениемЧтения = "Все" #Тогда + // У пользователя отключены все виды доступа или + // ограничение на уровне записей не используется. + ГДЕ ИСТИНА + +#ИначеЕсли СтрСодержит(&СпискиСОтключеннымОграничениемЧтения, #ИмяТекущейТаблицы + ";") #Тогда + // У пользователя отключено ограничение для текущей таблицы. + ГДЕ ИСТИНА + +#ИначеЕсли СтрСодержит(&ВерсииШаблоновОграниченияДоступа, ",ТребуетсяПерезапуститьСеанс,") #Тогда + Ошибка: Версия программы обновлена, требуется перезапустить сеанс. Объект: #ИмяТекущейТаблицы, Право: #ИмяТекущегоПраваДоступа. + +#ИначеЕсли #ИмяТекущегоПраваДоступа <> "Чтение" #Тогда + // Проверка прав Добавление, Изменение, Удаление выполняется ПередЗаписью / ПриЗаписи. + ГДЕ ИСТИНА + +#ИначеЕсли СтрСодержит(&СпискиСОграничениемЧерезКлючиДоступаГруппДоступа, #ИмяТекущейТаблицы + ";0") #Тогда + ГДЕ ЛОЖЬ + +#ИначеЕсли СтрСодержит(&СпискиСОграничениемЧерезКлючиДоступаГруппДоступа, #ИмяТекущейТаблицы + ";1") #Тогда + Ошибка: Внешние пользователи отключены. + +#ИначеЕсли Не СтрСодержит(&СпискиСОграничениемЧерезКлючиДоступаГруппДоступа, #ИмяТекущейТаблицы + ":[#Регистр]:#Поле1:#Поле2:#Поле3:#Поле4:#Поле5;") + И Не СтрСодержит(&СпискиСОграничениемЧерезКлючиДоступаПользователей, #ИмяТекущейТаблицы + ":[#Регистр]:#Поле1:#Поле2:#Поле3:#Поле4:#Поле5;") #Тогда + + Ошибка: Требуется актуализировать ограничение доступа по причине: Не удалось определить вариант ограничения доступа в параметрах сеанса для шаблона ДляРегистра со значениями параметров "#Регистр", "#Поле1", "#Поле2", "#Поле3", "#Поле4", "#Поле5". Объект: #ИмяТекущейТаблицы, Право: #ИмяТекущегоПраваДоступа. +#Иначе + +ТекущаяТаблица ГДЕ ИСТИНА В + ( + ВЫБРАТЬ ПЕРВЫЕ 1 ИСТИНА +#Если Не СтрСодержит("#Регистр", "КлючиДоступаКРегистру") #Тогда + ИЗ РегистрСведений.КлючиДоступаКРегистрам КАК КлючиДоступаКРегистрам +#Иначе + ИЗ РегистрСведений.#Регистр КАК КлючиДоступаКРегистрам +#КонецЕсли + #Если СтрСодержит(&СпискиСОграничениемЧерезКлючиДоступаГруппДоступа, #ИмяТекущейТаблицы + ":[#Регистр]:#Поле1:#Поле2:#Поле3:#Поле4:#Поле5;") #Тогда + ЛЕВОЕ СОЕДИНЕНИЕ РегистрСведений.КлючиДоступаНаборовГруппДоступа КАК КлючиДоступаНаборовГруппДоступа + ПО + КлючиДоступаНаборовГруппДоступа.КлючДоступа = КлючиДоступаКРегистрам.КлючДоступа + И КлючиДоступаНаборовГруппДоступа.НаборГруппДоступа = &РазрешенныйНаборГруппДоступа + #КонецЕсли + #Если СтрСодержит(&СпискиСОграничениемЧерезКлючиДоступаГруппДоступа, #ИмяТекущейТаблицы + ":[#Регистр]:#Поле1:#Поле2:#Поле3:#Поле4:#Поле5;*") #Тогда + + ЛЕВОЕ СОЕДИНЕНИЕ РегистрСведений.КлючиДоступаНаборовГруппДоступа КАК КлючиДоступаРазрешенногоНабораГруппДоступа + ПО + КлючиДоступаРазрешенногоНабораГруппДоступа.КлючДоступа = КлючиДоступаКРегистрам.КлючДоступа + И КлючиДоступаРазрешенногоНабораГруппДоступа.НаборГруппДоступа = &РазрешенныйПустойНаборГруппДоступа + #КонецЕсли + #Если СтрСодержит(&СпискиСОграничениемЧерезКлючиДоступаПользователей, #ИмяТекущейТаблицы + ":[#Регистр]:#Поле1:#Поле2:#Поле3:#Поле4:#Поле5;") #Тогда + + #Если &ТекущийВнешнийПользователь = Значение(Справочник.ВнешниеПользователи.ПустаяСсылка) #Тогда + ЛЕВОЕ СОЕДИНЕНИЕ РегистрСведений.КлючиДоступаПользователей КАК КлючиДоступаПользователей + ПО + КлючиДоступаПользователей.КлючДоступа = КлючиДоступаКРегистрам.КлючДоступа + И КлючиДоступаПользователей.Пользователь = &РазрешенныйПользователь + #Иначе + ЛЕВОЕ СОЕДИНЕНИЕ РегистрСведений.КлючиДоступаВнешнихПользователей КАК КлючиДоступаПользователей + ПО + КлючиДоступаПользователей.КлючДоступа = КлючиДоступаКРегистрам.КлючДоступа + И КлючиДоступаПользователей.ВнешнийПользователь = &РазрешенныйПользователь + #КонецЕсли + #КонецЕсли + #Если СтрСодержит(&СпискиСОграничениемЧерезКлючиДоступаПользователей, #ИмяТекущейТаблицы + ":[#Регистр]:#Поле1:#Поле2:#Поле3:#Поле4:#Поле5;+") #Тогда + + #Если &ТекущийВнешнийПользователь = Значение(Справочник.ВнешниеПользователи.ПустаяСсылка) #Тогда + ЛЕВОЕ СОЕДИНЕНИЕ РегистрСведений.КлючиДоступаПользователей КАК КлючиДоступаНаборовГруппПользователей + ПО + КлючиДоступаНаборовГруппПользователей.КлючДоступа = КлючиДоступаКРегистрам.КлючДоступа + И КлючиДоступаНаборовГруппПользователей.Пользователь = &РазрешенныйНаборГруппПользователей + #Иначе + ЛЕВОЕ СОЕДИНЕНИЕ РегистрСведений.КлючиДоступаВнешнихПользователей КАК КлючиДоступаНаборовГруппПользователей + ПО + КлючиДоступаНаборовГруппПользователей.КлючДоступа = КлючиДоступаКРегистрам.КлючДоступа + И КлючиДоступаНаборовГруппПользователей.ВнешнийПользователь = &РазрешенныйНаборГруппПользователей + #КонецЕсли + #КонецЕсли + ГДЕ + #Если Не СтрСодержит("#Регистр", "КлючиДоступаКРегистру") #Тогда + КлючиДоступаКРегистрам.Регистр = Значение(Справочник.#Регистр) + #Иначе + ИСТИНА + #КонецЕсли + И + ( + КлючиДоступаКРегистрам.ВариантДоступа = + ( + #Если &ТекущийВнешнийПользователь = Значение(Справочник.ВнешниеПользователи.ПустаяСсылка) #Тогда 0 #Иначе 1 #КонецЕсли + #Если Не СтрСодержит(&СпискиСОграничениемПоПолям, #ИмяТекущейТаблицы + ":Вариант1Версия1=0") #Тогда + #Если СтрСодержит(&СпискиСОграничениемПоПолям, #ИмяТекущейТаблицы + ":Вариант1Поле1=Поле") #Тогда + 2 #КонецЕсли + #Если СтрСодержит(&СпискиСОграничениемПоПолям, #ИмяТекущейТаблицы + ":Вариант1Поле2=Поле") #Тогда + 2 #КонецЕсли + #Если СтрСодержит(&СпискиСОграничениемПоПолям, #ИмяТекущейТаблицы + ":Вариант1Поле3=Поле") #Тогда + 2 #КонецЕсли + #Если СтрСодержит(&СпискиСОграничениемПоПолям, #ИмяТекущейТаблицы + ":Вариант1Поле4=Поле") #Тогда + 2 #КонецЕсли + #Если СтрСодержит(&СпискиСОграничениемПоПолям, #ИмяТекущейТаблицы + ":Вариант1Поле5=Поле") #Тогда + 2 #КонецЕсли + #Если СтрСодержит(&СпискиСОграничениемПоПолям, #ИмяТекущейТаблицы + ":Версия1Бит0=1") #Тогда + 64 #КонецЕсли + #Если СтрСодержит(&СпискиСОграничениемПоПолям, #ИмяТекущейТаблицы + ":Версия1Бит1=1") #Тогда + 128 #КонецЕсли + #Если СтрСодержит(&СпискиСОграничениемПоПолям, #ИмяТекущейТаблицы + ":Версия1Бит2=1") #Тогда + 256 #КонецЕсли + #Если СтрСодержит(&СпискиСОграничениемПоПолям, #ИмяТекущейТаблицы + ":Версия1Бит3=1") #Тогда + 512 #КонецЕсли + #КонецЕсли + ) + #Если СтрСодержит(&СпискиСОграничениемПоПолям, #ИмяТекущейТаблицы + ":Вариант1Поле1=Поле1;") #Тогда + И КлючиДоступаКРегистрам.Поле1 = ТекущаяТаблица.#Поле1 + #ИначеЕсли СтрСодержит(&СпискиСОграничениемПоПолям, #ИмяТекущейТаблицы + ":Вариант1Поле1=Поле2;") #Тогда + И КлючиДоступаКРегистрам.Поле1 = ТекущаяТаблица.#Поле2 + #ИначеЕсли СтрСодержит(&СпискиСОграничениемПоПолям, #ИмяТекущейТаблицы + ":Вариант1Поле1=Поле3;") #Тогда + И КлючиДоступаКРегистрам.Поле1 = ТекущаяТаблица.#Поле3 + #ИначеЕсли СтрСодержит(&СпискиСОграничениемПоПолям, #ИмяТекущейТаблицы + ":Вариант1Поле1=Поле4;") #Тогда + И КлючиДоступаКРегистрам.Поле1 = ТекущаяТаблица.#Поле4 + #ИначеЕсли СтрСодержит(&СпискиСОграничениемПоПолям, #ИмяТекущейТаблицы + ":Вариант1Поле1=Поле5;") #Тогда + И КлючиДоступаКРегистрам.Поле1 = ТекущаяТаблица.#Поле5 + #КонецЕсли + + #Если СтрСодержит(&СпискиСОграничениемПоПолям, #ИмяТекущейТаблицы + ":Вариант1Поле2=Поле2;") #Тогда + И КлючиДоступаКРегистрам.Поле2 = ТекущаяТаблица.#Поле2 + #ИначеЕсли СтрСодержит(&СпискиСОграничениемПоПолям, #ИмяТекущейТаблицы + ":Вариант1Поле2=Поле3;") #Тогда + И КлючиДоступаКРегистрам.Поле2 = ТекущаяТаблица.#Поле3 + #ИначеЕсли СтрСодержит(&СпискиСОграничениемПоПолям, #ИмяТекущейТаблицы + ":Вариант1Поле2=Поле4;") #Тогда + И КлючиДоступаКРегистрам.Поле2 = ТекущаяТаблица.#Поле4 + #ИначеЕсли СтрСодержит(&СпискиСОграничениемПоПолям, #ИмяТекущейТаблицы + ":Вариант1Поле2=Поле5;") #Тогда + И КлючиДоступаКРегистрам.Поле2 = ТекущаяТаблица.#Поле5 + #КонецЕсли + + #Если СтрСодержит(&СпискиСОграничениемПоПолям, #ИмяТекущейТаблицы + ":Вариант1Поле3=Поле3;") #Тогда + И КлючиДоступаКРегистрам.Поле3 = ТекущаяТаблица.#Поле3 + #ИначеЕсли СтрСодержит(&СпискиСОграничениемПоПолям, #ИмяТекущейТаблицы + ":Вариант1Поле3=Поле4;") #Тогда + И КлючиДоступаКРегистрам.Поле3 = ТекущаяТаблица.#Поле4 + #ИначеЕсли СтрСодержит(&СпискиСОграничениемПоПолям, #ИмяТекущейТаблицы + ":Вариант1Поле3=Поле5;") #Тогда + И КлючиДоступаКРегистрам.Поле3 = ТекущаяТаблица.#Поле5 + #КонецЕсли + + #Если СтрСодержит(&СпискиСОграничениемПоПолям, #ИмяТекущейТаблицы + ":Вариант1Поле4=Поле4;") #Тогда + И КлючиДоступаКРегистрам.Поле4 = ТекущаяТаблица.#Поле4 + #ИначеЕсли СтрСодержит(&СпискиСОграничениемПоПолям, #ИмяТекущейТаблицы + ":Вариант1Поле4=Поле5;") #Тогда + И КлючиДоступаКРегистрам.Поле4 = ТекущаяТаблица.#Поле5 + #КонецЕсли + + #Если СтрСодержит(&СпискиСОграничениемПоПолям, #ИмяТекущейТаблицы + ":Вариант1Поле5=Поле5;") #Тогда + И КлючиДоступаКРегистрам.Поле5 = ТекущаяТаблица.#Поле5 + #КонецЕсли + + #Если СтрСодержит(&СпискиСОграничениемПоПолям, #ИмяТекущейТаблицы + ":Вариант2") #Тогда + + ИЛИ + КлючиДоступаКРегистрам.ВариантДоступа = + ( + #Если &ТекущийВнешнийПользователь = Значение(Справочник.ВнешниеПользователи.ПустаяСсылка) #Тогда 0 #Иначе 1 #КонецЕсли + #Если Не СтрСодержит(&СпискиСОграничениемПоПолям, #ИмяТекущейТаблицы + ":Вариант2Версия2=0") #Тогда + #Если СтрСодержит(&СпискиСОграничениемПоПолям, #ИмяТекущейТаблицы + ":Вариант2Поле1=Поле") #Тогда + 2 #КонецЕсли + #Если СтрСодержит(&СпискиСОграничениемПоПолям, #ИмяТекущейТаблицы + ":Вариант2Поле2=Поле") #Тогда + 2 #КонецЕсли + #Если СтрСодержит(&СпискиСОграничениемПоПолям, #ИмяТекущейТаблицы + ":Вариант2Поле3=Поле") #Тогда + 2 #КонецЕсли + #Если СтрСодержит(&СпискиСОграничениемПоПолям, #ИмяТекущейТаблицы + ":Вариант2Поле4=Поле") #Тогда + 2 #КонецЕсли + #Если СтрСодержит(&СпискиСОграничениемПоПолям, #ИмяТекущейТаблицы + ":Вариант2Поле5=Поле") #Тогда + 2 #КонецЕсли + #Если СтрСодержит(&СпискиСОграничениемПоПолям, #ИмяТекущейТаблицы + ":Версия2Бит0=1") #Тогда + 64 #КонецЕсли + #Если СтрСодержит(&СпискиСОграничениемПоПолям, #ИмяТекущейТаблицы + ":Версия2Бит1=1") #Тогда + 128 #КонецЕсли + #Если СтрСодержит(&СпискиСОграничениемПоПолям, #ИмяТекущейТаблицы + ":Версия2Бит2=1") #Тогда + 256 #КонецЕсли + #Если СтрСодержит(&СпискиСОграничениемПоПолям, #ИмяТекущейТаблицы + ":Версия2Бит3=1") #Тогда + 512 #КонецЕсли + #КонецЕсли + ) + #Если СтрСодержит(&СпискиСОграничениемПоПолям, #ИмяТекущейТаблицы + ":Вариант2Поле1=Поле1;") #Тогда + И КлючиДоступаКРегистрам.Поле1 = ТекущаяТаблица.#Поле1 + #ИначеЕсли СтрСодержит(&СпискиСОграничениемПоПолям, #ИмяТекущейТаблицы + ":Вариант2Поле1=Поле2;") #Тогда + И КлючиДоступаКРегистрам.Поле1 = ТекущаяТаблица.#Поле2 + #ИначеЕсли СтрСодержит(&СпискиСОграничениемПоПолям, #ИмяТекущейТаблицы + ":Вариант2Поле1=Поле3;") #Тогда + И КлючиДоступаКРегистрам.Поле1 = ТекущаяТаблица.#Поле3 + #ИначеЕсли СтрСодержит(&СпискиСОграничениемПоПолям, #ИмяТекущейТаблицы + ":Вариант2Поле1=Поле4;") #Тогда + И КлючиДоступаКРегистрам.Поле1 = ТекущаяТаблица.#Поле4 + #ИначеЕсли СтрСодержит(&СпискиСОграничениемПоПолям, #ИмяТекущейТаблицы + ":Вариант2Поле1=Поле5;") #Тогда + И КлючиДоступаКРегистрам.Поле1 = ТекущаяТаблица.#Поле5 + #КонецЕсли + + #Если СтрСодержит(&СпискиСОграничениемПоПолям, #ИмяТекущейТаблицы + ":Вариант2Поле2=Поле2;") #Тогда + И КлючиДоступаКРегистрам.Поле2 = ТекущаяТаблица.#Поле2 + #ИначеЕсли СтрСодержит(&СпискиСОграничениемПоПолям, #ИмяТекущейТаблицы + ":Вариант2Поле2=Поле3;") #Тогда + И КлючиДоступаКРегистрам.Поле2 = ТекущаяТаблица.#Поле3 + #ИначеЕсли СтрСодержит(&СпискиСОграничениемПоПолям, #ИмяТекущейТаблицы + ":Вариант2Поле2=Поле4;") #Тогда + И КлючиДоступаКРегистрам.Поле2 = ТекущаяТаблица.#Поле4 + #ИначеЕсли СтрСодержит(&СпискиСОграничениемПоПолям, #ИмяТекущейТаблицы + ":Вариант2Поле2=Поле5;") #Тогда + И КлючиДоступаКРегистрам.Поле2 = ТекущаяТаблица.#Поле5 + #КонецЕсли + + #Если СтрСодержит(&СпискиСОграничениемПоПолям, #ИмяТекущейТаблицы + ":Вариант2Поле3=Поле3;") #Тогда + И КлючиДоступаКРегистрам.Поле3 = ТекущаяТаблица.#Поле3 + #ИначеЕсли СтрСодержит(&СпискиСОграничениемПоПолям, #ИмяТекущейТаблицы + ":Вариант2Поле3=Поле4;") #Тогда + И КлючиДоступаКРегистрам.Поле3 = ТекущаяТаблица.#Поле4 + #ИначеЕсли СтрСодержит(&СпискиСОграничениемПоПолям, #ИмяТекущейТаблицы + ":Вариант2Поле3=Поле5;") #Тогда + И КлючиДоступаКРегистрам.Поле3 = ТекущаяТаблица.#Поле5 + #КонецЕсли + + #Если СтрСодержит(&СпискиСОграничениемПоПолям, #ИмяТекущейТаблицы + ":Вариант2Поле4=Поле4;") #Тогда + И КлючиДоступаКРегистрам.Поле4 = ТекущаяТаблица.#Поле4 + #ИначеЕсли СтрСодержит(&СпискиСОграничениемПоПолям, #ИмяТекущейТаблицы + ":Вариант2Поле4=Поле5;") #Тогда + И КлючиДоступаКРегистрам.Поле4 = ТекущаяТаблица.#Поле5 + #КонецЕсли + + #Если СтрСодержит(&СпискиСОграничениемПоПолям, #ИмяТекущейТаблицы + ":Вариант2Поле5=Поле5;") #Тогда + И КлючиДоступаКРегистрам.Поле5 = ТекущаяТаблица.#Поле5 + #КонецЕсли + + #КонецЕсли + #Если СтрСодержит(&СпискиСОграничениемПоПолям, #ИмяТекущейТаблицы + ":Вариант3") #Тогда + + ИЛИ + КлючиДоступаКРегистрам.ВариантДоступа = + ( + #Если &ТекущийВнешнийПользователь = Значение(Справочник.ВнешниеПользователи.ПустаяСсылка) #Тогда 0 #Иначе 1 #КонецЕсли + #Если Не СтрСодержит(&СпискиСОграничениемПоПолям, #ИмяТекущейТаблицы + ":Вариант3Версия3=0") #Тогда + #Если СтрСодержит(&СпискиСОграничениемПоПолям, #ИмяТекущейТаблицы + ":Вариант3Поле1=Поле") #Тогда + 2 #КонецЕсли + #Если СтрСодержит(&СпискиСОграничениемПоПолям, #ИмяТекущейТаблицы + ":Вариант3Поле2=Поле") #Тогда + 2 #КонецЕсли + #Если СтрСодержит(&СпискиСОграничениемПоПолям, #ИмяТекущейТаблицы + ":Вариант3Поле3=Поле") #Тогда + 2 #КонецЕсли + #Если СтрСодержит(&СпискиСОграничениемПоПолям, #ИмяТекущейТаблицы + ":Вариант3Поле4=Поле") #Тогда + 2 #КонецЕсли + #Если СтрСодержит(&СпискиСОграничениемПоПолям, #ИмяТекущейТаблицы + ":Вариант3Поле5=Поле") #Тогда + 2 #КонецЕсли + #Если СтрСодержит(&СпискиСОграничениемПоПолям, #ИмяТекущейТаблицы + ":Версия3Бит0=1") #Тогда + 64 #КонецЕсли + #Если СтрСодержит(&СпискиСОграничениемПоПолям, #ИмяТекущейТаблицы + ":Версия3Бит1=1") #Тогда + 128 #КонецЕсли + #Если СтрСодержит(&СпискиСОграничениемПоПолям, #ИмяТекущейТаблицы + ":Версия3Бит2=1") #Тогда + 256 #КонецЕсли + #Если СтрСодержит(&СпискиСОграничениемПоПолям, #ИмяТекущейТаблицы + ":Версия3Бит3=1") #Тогда + 512 #КонецЕсли + #КонецЕсли + ) + #Если СтрСодержит(&СпискиСОграничениемПоПолям, #ИмяТекущейТаблицы + ":Вариант3Поле1=Поле1;") #Тогда + И КлючиДоступаКРегистрам.Поле1 = ТекущаяТаблица.#Поле1 + #ИначеЕсли СтрСодержит(&СпискиСОграничениемПоПолям, #ИмяТекущейТаблицы + ":Вариант3Поле1=Поле2;") #Тогда + И КлючиДоступаКРегистрам.Поле1 = ТекущаяТаблица.#Поле2 + #ИначеЕсли СтрСодержит(&СпискиСОграничениемПоПолям, #ИмяТекущейТаблицы + ":Вариант3Поле1=Поле3;") #Тогда + И КлючиДоступаКРегистрам.Поле1 = ТекущаяТаблица.#Поле3 + #ИначеЕсли СтрСодержит(&СпискиСОграничениемПоПолям, #ИмяТекущейТаблицы + ":Вариант3Поле1=Поле4;") #Тогда + И КлючиДоступаКРегистрам.Поле1 = ТекущаяТаблица.#Поле4 + #ИначеЕсли СтрСодержит(&СпискиСОграничениемПоПолям, #ИмяТекущейТаблицы + ":Вариант3Поле1=Поле5;") #Тогда + И КлючиДоступаКРегистрам.Поле1 = ТекущаяТаблица.#Поле5 + #КонецЕсли + + #Если СтрСодержит(&СпискиСОграничениемПоПолям, #ИмяТекущейТаблицы + ":Вариант3Поле2=Поле2;") #Тогда + И КлючиДоступаКРегистрам.Поле2 = ТекущаяТаблица.#Поле2 + #ИначеЕсли СтрСодержит(&СпискиСОграничениемПоПолям, #ИмяТекущейТаблицы + ":Вариант3Поле2=Поле3;") #Тогда + И КлючиДоступаКРегистрам.Поле2 = ТекущаяТаблица.#Поле3 + #ИначеЕсли СтрСодержит(&СпискиСОграничениемПоПолям, #ИмяТекущейТаблицы + ":Вариант3Поле2=Поле4;") #Тогда + И КлючиДоступаКРегистрам.Поле2 = ТекущаяТаблица.#Поле4 + #ИначеЕсли СтрСодержит(&СпискиСОграничениемПоПолям, #ИмяТекущейТаблицы + ":Вариант3Поле2=Поле5;") #Тогда + И КлючиДоступаКРегистрам.Поле2 = ТекущаяТаблица.#Поле5 + #КонецЕсли + + #Если СтрСодержит(&СпискиСОграничениемПоПолям, #ИмяТекущейТаблицы + ":Вариант3Поле3=Поле3;") #Тогда + И КлючиДоступаКРегистрам.Поле3 = ТекущаяТаблица.#Поле3 + #ИначеЕсли СтрСодержит(&СпискиСОграничениемПоПолям, #ИмяТекущейТаблицы + ":Вариант3Поле3=Поле4;") #Тогда + И КлючиДоступаКРегистрам.Поле3 = ТекущаяТаблица.#Поле4 + #ИначеЕсли СтрСодержит(&СпискиСОграничениемПоПолям, #ИмяТекущейТаблицы + ":Вариант3Поле3=Поле5;") #Тогда + И КлючиДоступаКРегистрам.Поле3 = ТекущаяТаблица.#Поле5 + #КонецЕсли + + #Если СтрСодержит(&СпискиСОграничениемПоПолям, #ИмяТекущейТаблицы + ":Вариант3Поле4=Поле4;") #Тогда + И КлючиДоступаКРегистрам.Поле4 = ТекущаяТаблица.#Поле4 + #ИначеЕсли СтрСодержит(&СпискиСОграничениемПоПолям, #ИмяТекущейТаблицы + ":Вариант3Поле4=Поле5;") #Тогда + И КлючиДоступаКРегистрам.Поле4 = ТекущаяТаблица.#Поле5 + #КонецЕсли + + #Если СтрСодержит(&СпискиСОграничениемПоПолям, #ИмяТекущейТаблицы + ":Вариант3Поле5=Поле5;") #Тогда + И КлючиДоступаКРегистрам.Поле5 = ТекущаяТаблица.#Поле5 + #КонецЕсли + + #КонецЕсли + ) + И ( + #Если СтрСодержит(&СпискиСОграничениемЧерезКлючиДоступаГруппДоступа, #ИмяТекущейТаблицы + ":[#Регистр]:#Поле1:#Поле2:#Поле3:#Поле4:#Поле5;") #Тогда + НЕ КлючиДоступаНаборовГруппДоступа.КлючДоступа ЕСТЬ NULL + #Иначе + ЛОЖЬ + #КонецЕсли + #Если СтрСодержит(&СпискиСОграничениемЧерезКлючиДоступаГруппДоступа, #ИмяТекущейТаблицы + ":[#Регистр]:#Поле1:#Поле2:#Поле3:#Поле4:#Поле5;*") #Тогда + ИЛИ НЕ КлючиДоступаРазрешенногоНабораГруппДоступа.КлючДоступа ЕСТЬ NULL + #КонецЕсли + #Если СтрСодержит(&СпискиСОграничениемЧерезКлючиДоступаПользователей, #ИмяТекущейТаблицы + ":[#Регистр]:#Поле1:#Поле2:#Поле3:#Поле4:#Поле5;") #Тогда + ИЛИ НЕ КлючиДоступаПользователей.КлючДоступа ЕСТЬ NULL + #КонецЕсли + #Если СтрСодержит(&СпискиСОграничениемЧерезКлючиДоступаПользователей, #ИмяТекущейТаблицы + ":[#Регистр]:#Поле1:#Поле2:#Поле3:#Поле4:#Поле5;+") #Тогда + ИЛИ НЕ КлючиДоступаНаборовГруппПользователей.КлючДоступа ЕСТЬ NULL + #КонецЕсли + ) + ) + + #Если Не СтрСодержит(&ОбщиеПараметрыШаблоновОграниченияДоступа, #ИмяТекущейТаблицы + ":Пропустить;") + И ( СтрСодержит(&ОбщиеПараметрыШаблоновОграниченияДоступа, ";УточнитьДляВсех;") + Или СтрСодержит(&ОбщиеПараметрыШаблоновОграниченияДоступа, #ИмяТекущейТаблицы + ":Уточнить;") ) #Тогда + + #Если Не СтрСодержит(&СпискиСОграничениемЧерезКлючиДоступаПользователей, #ИмяТекущейТаблицы + ":[#Регистр]:#Поле1:#Поле2:#Поле3:#Поле4:#Поле5;") #Тогда + И ИСТИНА В (ИСТИНА + #Если СтрСодержит(&ОбщиеПараметрыШаблоновОграниченияДоступа, ";31;") #Тогда ,ИСТИНА #Иначе ,ЛОЖЬ #КонецЕсли + #Если СтрСодержит(&ОбщиеПараметрыШаблоновОграниченияДоступа, ";30;") #Тогда ,ИСТИНА #Иначе ,ЛОЖЬ #КонецЕсли + #Если СтрСодержит(&ОбщиеПараметрыШаблоновОграниченияДоступа, ";29;") #Тогда ,ИСТИНА #Иначе ,ЛОЖЬ #КонецЕсли + #Если СтрСодержит(&ОбщиеПараметрыШаблоновОграниченияДоступа, ";28;") #Тогда ,ИСТИНА #Иначе ,ЛОЖЬ #КонецЕсли + #Если СтрСодержит(&ОбщиеПараметрыШаблоновОграниченияДоступа, ";27;") #Тогда ,ИСТИНА #Иначе ,ЛОЖЬ #КонецЕсли + #Если СтрСодержит(&ОбщиеПараметрыШаблоновОграниченияДоступа, ";26;") #Тогда ,ИСТИНА #Иначе ,ЛОЖЬ #КонецЕсли + #Если СтрСодержит(&ОбщиеПараметрыШаблоновОграниченияДоступа, ";25;") #Тогда ,ИСТИНА #Иначе ,ЛОЖЬ #КонецЕсли + #Если СтрСодержит(&ОбщиеПараметрыШаблоновОграниченияДоступа, ";24;") #Тогда ,ИСТИНА #Иначе ,ЛОЖЬ #КонецЕсли + #Если СтрСодержит(&ОбщиеПараметрыШаблоновОграниченияДоступа, ";23;") #Тогда ,ИСТИНА #Иначе ,ЛОЖЬ #КонецЕсли + #Если СтрСодержит(&ОбщиеПараметрыШаблоновОграниченияДоступа, ";22;") #Тогда ,ИСТИНА #Иначе ,ЛОЖЬ #КонецЕсли + #Если СтрСодержит(&ОбщиеПараметрыШаблоновОграниченияДоступа, ";21;") #Тогда ,ИСТИНА #Иначе ,ЛОЖЬ #КонецЕсли + #Если СтрСодержит(&ОбщиеПараметрыШаблоновОграниченияДоступа, ";20;") #Тогда ,ИСТИНА #Иначе ,ЛОЖЬ #КонецЕсли + #Если СтрСодержит(&ОбщиеПараметрыШаблоновОграниченияДоступа, ";19;") #Тогда ,ИСТИНА #Иначе ,ЛОЖЬ #КонецЕсли + #Если СтрСодержит(&ОбщиеПараметрыШаблоновОграниченияДоступа, ";18;") #Тогда ,ИСТИНА #Иначе ,ЛОЖЬ #КонецЕсли + #Если СтрСодержит(&ОбщиеПараметрыШаблоновОграниченияДоступа, ";17;") #Тогда ,ИСТИНА #Иначе ,ЛОЖЬ #КонецЕсли + #Если СтрСодержит(&ОбщиеПараметрыШаблоновОграниченияДоступа, ";16;") #Тогда ,ИСТИНА #Иначе ,ЛОЖЬ #КонецЕсли + #Если СтрСодержит(&ОбщиеПараметрыШаблоновОграниченияДоступа, ";15;") #Тогда ,ИСТИНА #Иначе ,ЛОЖЬ #КонецЕсли + #Если СтрСодержит(&ОбщиеПараметрыШаблоновОграниченияДоступа, ";14;") #Тогда ,ИСТИНА #Иначе ,ЛОЖЬ #КонецЕсли + #Если СтрСодержит(&ОбщиеПараметрыШаблоновОграниченияДоступа, ";13;") #Тогда ,ИСТИНА #Иначе ,ЛОЖЬ #КонецЕсли + #Если СтрСодержит(&ОбщиеПараметрыШаблоновОграниченияДоступа, ";12;") #Тогда ,ИСТИНА #Иначе ,ЛОЖЬ #КонецЕсли + #Если СтрСодержит(&ОбщиеПараметрыШаблоновОграниченияДоступа, ";11;") #Тогда ,ИСТИНА #Иначе ,ЛОЖЬ #КонецЕсли + #Если СтрСодержит(&ОбщиеПараметрыШаблоновОграниченияДоступа, ";10;") #Тогда ,ИСТИНА #Иначе ,ЛОЖЬ #КонецЕсли + #Если СтрСодержит(&ОбщиеПараметрыШаблоновОграниченияДоступа, ";09;") #Тогда ,ИСТИНА #Иначе ,ЛОЖЬ #КонецЕсли + #Если СтрСодержит(&ОбщиеПараметрыШаблоновОграниченияДоступа, ";08;") #Тогда ,ИСТИНА #Иначе ,ЛОЖЬ #КонецЕсли + #Если СтрСодержит(&ОбщиеПараметрыШаблоновОграниченияДоступа, ";07;") #Тогда ,ИСТИНА #Иначе ,ЛОЖЬ #КонецЕсли + #Если СтрСодержит(&ОбщиеПараметрыШаблоновОграниченияДоступа, ";06;") #Тогда ,ИСТИНА #Иначе ,ЛОЖЬ #КонецЕсли + #Если СтрСодержит(&ОбщиеПараметрыШаблоновОграниченияДоступа, ";05;") #Тогда ,ИСТИНА #Иначе ,ЛОЖЬ #КонецЕсли + #Если СтрСодержит(&ОбщиеПараметрыШаблоновОграниченияДоступа, ";04;") #Тогда ,ИСТИНА #Иначе ,ЛОЖЬ #КонецЕсли + #Если СтрСодержит(&ОбщиеПараметрыШаблоновОграниченияДоступа, ";03;") #Тогда ,ИСТИНА #Иначе ,ЛОЖЬ #КонецЕсли + #Если СтрСодержит(&ОбщиеПараметрыШаблоновОграниченияДоступа, ";02;") #Тогда ,ИСТИНА #Иначе ,ЛОЖЬ #КонецЕсли + #Если СтрСодержит(&ОбщиеПараметрыШаблоновОграниченияДоступа, ";01;") #Тогда ,ИСТИНА #Иначе ,ЛОЖЬ #КонецЕсли + #Если СтрСодержит(&ОбщиеПараметрыШаблоновОграниченияДоступа, ";00;") #Тогда ,ИСТИНА #Иначе ,ЛОЖЬ #КонецЕсли + ) + #Иначе + И ИСТИНА В (ИСТИНА + #Если СтрСодержит(&ОбщиеПараметрыШаблоновОграниченияДоступа, ";31^;") #Тогда ,ИСТИНА #Иначе ,ЛОЖЬ #КонецЕсли + #Если СтрСодержит(&ОбщиеПараметрыШаблоновОграниченияДоступа, ";30^;") #Тогда ,ИСТИНА #Иначе ,ЛОЖЬ #КонецЕсли + #Если СтрСодержит(&ОбщиеПараметрыШаблоновОграниченияДоступа, ";29^;") #Тогда ,ИСТИНА #Иначе ,ЛОЖЬ #КонецЕсли + #Если СтрСодержит(&ОбщиеПараметрыШаблоновОграниченияДоступа, ";28^;") #Тогда ,ИСТИНА #Иначе ,ЛОЖЬ #КонецЕсли + #Если СтрСодержит(&ОбщиеПараметрыШаблоновОграниченияДоступа, ";27^;") #Тогда ,ИСТИНА #Иначе ,ЛОЖЬ #КонецЕсли + #Если СтрСодержит(&ОбщиеПараметрыШаблоновОграниченияДоступа, ";26^;") #Тогда ,ИСТИНА #Иначе ,ЛОЖЬ #КонецЕсли + #Если СтрСодержит(&ОбщиеПараметрыШаблоновОграниченияДоступа, ";25^;") #Тогда ,ИСТИНА #Иначе ,ЛОЖЬ #КонецЕсли + #Если СтрСодержит(&ОбщиеПараметрыШаблоновОграниченияДоступа, ";24^;") #Тогда ,ИСТИНА #Иначе ,ЛОЖЬ #КонецЕсли + #Если СтрСодержит(&ОбщиеПараметрыШаблоновОграниченияДоступа, ";23^;") #Тогда ,ИСТИНА #Иначе ,ЛОЖЬ #КонецЕсли + #Если СтрСодержит(&ОбщиеПараметрыШаблоновОграниченияДоступа, ";22^;") #Тогда ,ИСТИНА #Иначе ,ЛОЖЬ #КонецЕсли + #Если СтрСодержит(&ОбщиеПараметрыШаблоновОграниченияДоступа, ";21^;") #Тогда ,ИСТИНА #Иначе ,ЛОЖЬ #КонецЕсли + #Если СтрСодержит(&ОбщиеПараметрыШаблоновОграниченияДоступа, ";20^;") #Тогда ,ИСТИНА #Иначе ,ЛОЖЬ #КонецЕсли + #Если СтрСодержит(&ОбщиеПараметрыШаблоновОграниченияДоступа, ";19^;") #Тогда ,ИСТИНА #Иначе ,ЛОЖЬ #КонецЕсли + #Если СтрСодержит(&ОбщиеПараметрыШаблоновОграниченияДоступа, ";18^;") #Тогда ,ИСТИНА #Иначе ,ЛОЖЬ #КонецЕсли + #Если СтрСодержит(&ОбщиеПараметрыШаблоновОграниченияДоступа, ";17^;") #Тогда ,ИСТИНА #Иначе ,ЛОЖЬ #КонецЕсли + #Если СтрСодержит(&ОбщиеПараметрыШаблоновОграниченияДоступа, ";16^;") #Тогда ,ИСТИНА #Иначе ,ЛОЖЬ #КонецЕсли + #Если СтрСодержит(&ОбщиеПараметрыШаблоновОграниченияДоступа, ";15^;") #Тогда ,ИСТИНА #Иначе ,ЛОЖЬ #КонецЕсли + #Если СтрСодержит(&ОбщиеПараметрыШаблоновОграниченияДоступа, ";14^;") #Тогда ,ИСТИНА #Иначе ,ЛОЖЬ #КонецЕсли + #Если СтрСодержит(&ОбщиеПараметрыШаблоновОграниченияДоступа, ";13^;") #Тогда ,ИСТИНА #Иначе ,ЛОЖЬ #КонецЕсли + #Если СтрСодержит(&ОбщиеПараметрыШаблоновОграниченияДоступа, ";12^;") #Тогда ,ИСТИНА #Иначе ,ЛОЖЬ #КонецЕсли + #Если СтрСодержит(&ОбщиеПараметрыШаблоновОграниченияДоступа, ";11^;") #Тогда ,ИСТИНА #Иначе ,ЛОЖЬ #КонецЕсли + #Если СтрСодержит(&ОбщиеПараметрыШаблоновОграниченияДоступа, ";10^;") #Тогда ,ИСТИНА #Иначе ,ЛОЖЬ #КонецЕсли + #Если СтрСодержит(&ОбщиеПараметрыШаблоновОграниченияДоступа, ";09^;") #Тогда ,ИСТИНА #Иначе ,ЛОЖЬ #КонецЕсли + #Если СтрСодержит(&ОбщиеПараметрыШаблоновОграниченияДоступа, ";08^;") #Тогда ,ИСТИНА #Иначе ,ЛОЖЬ #КонецЕсли + #Если СтрСодержит(&ОбщиеПараметрыШаблоновОграниченияДоступа, ";07^;") #Тогда ,ИСТИНА #Иначе ,ЛОЖЬ #КонецЕсли + #Если СтрСодержит(&ОбщиеПараметрыШаблоновОграниченияДоступа, ";06^;") #Тогда ,ИСТИНА #Иначе ,ЛОЖЬ #КонецЕсли + #Если СтрСодержит(&ОбщиеПараметрыШаблоновОграниченияДоступа, ";05^;") #Тогда ,ИСТИНА #Иначе ,ЛОЖЬ #КонецЕсли + #Если СтрСодержит(&ОбщиеПараметрыШаблоновОграниченияДоступа, ";04^;") #Тогда ,ИСТИНА #Иначе ,ЛОЖЬ #КонецЕсли + #Если СтрСодержит(&ОбщиеПараметрыШаблоновОграниченияДоступа, ";03^;") #Тогда ,ИСТИНА #Иначе ,ЛОЖЬ #КонецЕсли + #Если СтрСодержит(&ОбщиеПараметрыШаблоновОграниченияДоступа, ";02^;") #Тогда ,ИСТИНА #Иначе ,ЛОЖЬ #КонецЕсли + #Если СтрСодержит(&ОбщиеПараметрыШаблоновОграниченияДоступа, ";01^;") #Тогда ,ИСТИНА #Иначе ,ЛОЖЬ #КонецЕсли + #Если СтрСодержит(&ОбщиеПараметрыШаблоновОграниченияДоступа, ";00^;") #Тогда ,ИСТИНА #Иначе ,ЛОЖЬ #КонецЕсли + ) + #КонецЕсли + #КонецЕсли + +#КонецЕсли + + + ПоЗначениямРасширенный + // ПоЗначениямРасширенный(Таблица, -, Модификатор, ПрисоединяемыеТаблицы, О, В1,П1,О1, В2,П2,О2,..., В(n), П(n), О(n)). +// № параметра: 1, 2, 3, 4, 5, 6, 7, 8, 9,10,11,...,3+n*3,4+n*3,5+n*3. +// Читается так: "ограничение доступа по значениям расширенный". +// Параметры: +// Таблица - Имя текущей таблицы, например "Документ.ПоступлениеТоваровИУслуг". +// Модификатор - изменяет шаблон. +// 1-й модификатор - строка "НеОграничиватьДоступКГруппам" указывает +// безусловно выбирать группы иерархического справочника. +// Других модификаторов в этой версии шаблона не предусмотрено. +// ПрисоединяемыеТаблицы - текст присоедиения дополнительных таблиц на языке запросов, например, +// "ВНУТРЕННЕЕ СОЕДИНЕНИЕ Документ.АвансовыйОтчет.ОплатаПоставщикам КАК Т1 +// ПО Т.Ссылка = Т1.Ссылка". +// Присоединение позволяет указать поля таблицы ОплатаПоставщикам, как поля основной таблицы +// для проверки их значений, как значений основной таблицы. +// Следует помнить, что при размножении строк в результате соединения, достаточно чтобы +// всего одна строка прошла условия проверки, т.е. результаты проверки строк объединяются по "ИЛИ". +// О - Начальные скобки "(". +// В(n) - Вид доступа - имя вида доступа, например, "Организации". Для полей составного типа, с целью повышения +// производительности, лучше указать несколько имен, например, "Организации,ГруппыФизическихЛиц", +// чем использовать несколько блоков параметров, с одним и тем же именем поля. +// Специальные виды доступа "Условие", "НастройкиПрав", "ПравоЧтения", "ПравоИзменения", +// "ПравоЧтенияПоИдентификатору", "ПравоИзмененияПоИдентификатору" можно использовать только отдельно. +// Когда В(n) = "Условие" (или ""), тогда П(n) содержит строку условия на языке запросов, например +// "Т.Автор = &АвторизованныйПользователь", +// "ТИПЗНАЧЕНИЯ(Т.Владелец) = ТИП(Справочник.Организации)", где Т - псевдоним текущей таблицы. +// Когда В(n) = "ПравоЧтения" Или "ПравоИзменения", +// выполняется проверка наличия права на таблицу значения Т.П(n). +// Когда В(n) = "ПравоЧтенияПоИдентификатору" или "ПравоИзмененияПоИдентификатору", +// выполняется проверка наличия права на таблицу по идентификатору в значении Т.П(n). +// П(n) - Поле проверяемого значения с псевдонимом, например "Т.Организация", +// кроме случая В(n) = "Условие" (или ""). +// О(n) - Логические операции "И", "ИЛИ" в сочетании с скобками "(", ")". +// Примечение: максимальное количество одновременно проверяемых значений полей можно увеличить, изменив шаблон, но +// необходимо будет указывать все параметры шаблона, т.е. указывать пустые строки, когда количество полей меньше максимального. +// Шаблон имеет структуру: +// <Общая часть условий> <Условие по группе параметров 1> И/ИЛИ <Условие по группе параметров 2> И/ИЛИ ... <Условие по группе параметров(n)> +// Пример: +// ПоЗначениямРасширенный("Документ.ПеремещениеТоваров", "", "", +// "", +// "", +// "Организации","Т.Организация","И(", +// "Склады","Т.СкладОтправитель","ИЛИ", +// "Склады","Т.СкладПолучатель",")", "","","", ...) + +#Если &ОграничениеДоступаНаУровнеЗаписейИспользуется = "" #Тогда // Информационная база заблокирована для обновления. + ГДЕ ЛОЖЬ + +#ИначеЕсли Не СтрСодержит(&ВерсииШаблоновОграниченияДоступа, ",ПоЗначениямРасширенный18,") #Тогда + Ошибка: Требуется обновить шаблон на актуальную версию, поставляемую в роли ИзменениеУчастниковГруппДоступа по причине: Используется устаревшая версия 18 шаблона ограничения доступа ПоЗначениямРасширенный. Объект: #ИмяТекущейТаблицы, Право: #ИмяТекущегоПраваДоступа. + +#Иначе + +// Проверка правильности параметра Право. +#Если Не ("#Параметр(2)" = "Чтение" Или "#Параметр(2)" = "Добавление" Или + "#Параметр(2)" = "Изменение" Или "#Параметр(2)" = "Удаление" Или "#Параметр(2)" = "") + Или #ИмяТекущегоПраваДоступа <> "Чтение" И "#Параметр(2)" = "Чтение" + Или #ИмяТекущегоПраваДоступа = "Чтение" И "#Параметр(2)" <> "Чтение" И "#Параметр(2)" <> "" #Тогда + // Когда параметр задан неверно, вставляется строка, чтобы вызвать ошибку сборки ограничения доступа. + НеверноеПраво: #Параметр(2) +#КонецЕсли + +// Проверка правильности параметра ИмяТаблицы. +#Если "#Параметр(1)" <> #ИмяТекущейТаблицы #Тогда + // Когда параметр задан неверно, вставляется строка, чтобы вызвать ошибку сборки ограничения доступа. + НеверноеИмяТекущейТаблицы: "#Параметр(1)" +#КонецЕсли + +// Проверка правильности параметра Модификатор. +#Если Не ("#Параметр(3)" = "НеОграничиватьДоступКГруппам" Или "#Параметр(3)" = "") #Тогда + // Когда параметр задан неверно, вставляется строка, чтобы вызвать ошибку сборки ограничения доступа. + НеверныйМодификатор: #Параметр(3) +#КонецЕсли + +// Общая проверка использования ограничений доступа на уровне записей и +// проверка использования хотя бы одного ограничения из указанных видов доступа. +#Если Не + ( Истина + И ("#Параметр(6)" = "" И "#Параметр(7)" = "" + Или Не &ОграничениеДоступаНаУровнеЗаписейИспользуется + И Не СтрСодержит(",Объект, ,ПравоЧтения,ПравоИзменения,ПравоЧтенияПоИдентификатору,ПравоИзмененияПоИдентификатору,", ",#Параметр(6),")) + И ("#Параметр(9)" = "" И "#Параметр(10)" = "" + Или Не &ОграничениеДоступаНаУровнеЗаписейИспользуется + И Не СтрСодержит(",Объект, ,ПравоЧтения,ПравоИзменения,ПравоЧтенияПоИдентификатору,ПравоИзмененияПоИдентификатору,", ",#Параметр(9),")) + И ("#Параметр(12)" = "" И "#Параметр(13)" = "" + Или Не &ОграничениеДоступаНаУровнеЗаписейИспользуется + И Не СтрСодержит(",Объект, ,ПравоЧтения,ПравоИзменения,ПравоЧтенияПоИдентификатору,ПравоИзмененияПоИдентификатору,", ",#Параметр(12),")) + И ("#Параметр(15)" = "" И "#Параметр(16)" = "" + Или Не &ОграничениеДоступаНаУровнеЗаписейИспользуется + И Не СтрСодержит(",Объект, ,ПравоЧтения,ПравоИзменения,ПравоЧтенияПоИдентификатору,ПравоИзмененияПоИдентификатору,", ",#Параметр(15),")) + И ("#Параметр(18)" = "" И "#Параметр(19)" = "" + Или Не &ОграничениеДоступаНаУровнеЗаписейИспользуется + И Не СтрСодержит(",Объект, ,ПравоЧтения,ПравоИзменения,ПравоЧтенияПоИдентификатору,ПравоИзмененияПоИдентификатору,", ",#Параметр(18),")) + И ("#Параметр(21)" = "" И "#Параметр(22)" = "" + Или Не &ОграничениеДоступаНаУровнеЗаписейИспользуется + И Не СтрСодержит(",Объект, ,ПравоЧтения,ПравоИзменения,ПравоЧтенияПоИдентификатору,ПравоИзмененияПоИдентификатору,", ",#Параметр(21),")) + И ("#Параметр(24)" = "" И "#Параметр(25)" = "" + Или Не &ОграничениеДоступаНаУровнеЗаписейИспользуется + И Не СтрСодержит(",Объект, ,ПравоЧтения,ПравоИзменения,ПравоЧтенияПоИдентификатору,ПравоИзмененияПоИдентификатору,", ",#Параметр(24),")) + И ("#Параметр(27)" = "" И "#Параметр(28)" = "" + Или Не &ОграничениеДоступаНаУровнеЗаписейИспользуется + И Не СтрСодержит(",Объект, ,ПравоЧтения,ПравоИзменения,ПравоЧтенияПоИдентификатору,ПравоИзмененияПоИдентификатору,", ",#Параметр(27),")) + И ("#Параметр(30)" = "" И "#Параметр(31)" = "" + Или Не &ОграничениеДоступаНаУровнеЗаписейИспользуется + И Не СтрСодержит(",Объект, ,ПравоЧтения,ПравоИзменения,ПравоЧтенияПоИдентификатору,ПравоИзмененияПоИдентификатору,", ",#Параметр(30),")) + И ("#Параметр(33)" = "" И "#Параметр(34)" = "" + Или Не &ОграничениеДоступаНаУровнеЗаписейИспользуется + И Не СтрСодержит(",Объект, ,ПравоЧтения,ПравоИзменения,ПравоЧтенияПоИдентификатору,ПравоИзмененияПоИдентификатору,", ",#Параметр(33),")) + И ("#Параметр(36)" = "" И "#Параметр(37)" = "" + Или Не &ОграничениеДоступаНаУровнеЗаписейИспользуется + И Не СтрСодержит(",Объект, ,ПравоЧтения,ПравоИзменения,ПравоЧтенияПоИдентификатору,ПравоИзмененияПоИдентификатору,", ",#Параметр(36),")) + И ("#Параметр(39)" = "" И "#Параметр(40)" = "" + Или Не &ОграничениеДоступаНаУровнеЗаписейИспользуется + И Не СтрСодержит(",Объект, ,ПравоЧтения,ПравоИзменения,ПравоЧтенияПоИдентификатору,ПравоИзмененияПоИдентификатору,", ",#Параметр(39),")) + И ("#Параметр(42)" = "" И "#Параметр(43)" = "" + Или Не &ОграничениеДоступаНаУровнеЗаписейИспользуется + И Не СтрСодержит(",Объект, ,ПравоЧтения,ПравоИзменения,ПравоЧтенияПоИдентификатору,ПравоИзмененияПоИдентификатору,", ",#Параметр(42),")) + И ("#Параметр(45)" = "" И "#Параметр(46)" = "" + Или Не &ОграничениеДоступаНаУровнеЗаписейИспользуется + И Не СтрСодержит(",Объект, ,ПравоЧтения,ПравоИзменения,ПравоЧтенияПоИдентификатору,ПравоИзмененияПоИдентификатору,", ",#Параметр(45),")) + И ("#Параметр(48)" = "" И "#Параметр(49)" = "" + Или Не &ОграничениеДоступаНаУровнеЗаписейИспользуется + И Не СтрСодержит(",Объект, ,ПравоЧтения,ПравоИзменения,ПравоЧтенияПоИдентификатору,ПравоИзмененияПоИдентификатору,", ",#Параметр(48),")) + И ("#Параметр(51)" = "" И "#Параметр(52)" = "" + Или Не &ОграничениеДоступаНаУровнеЗаписейИспользуется + И Не СтрСодержит(",Объект, ,ПравоЧтения,ПравоИзменения,ПравоЧтенияПоИдентификатору,ПравоИзмененияПоИдентификатору,", ",#Параметр(51),")) + ) #Тогда + +Т ИЗ Т // Т - псевдоним текущей таблицы (выбран коротким, чтобы сократить количество символов в тексте параметра-условия на языке запросов). + +// Присоединяемые таблицы к проверяемой строке текущей таблицы "Т". +#Параметр(4) + +ГДЕ + +ИСТИНА В +( // Проверка права пользователя на текущую таблицу в целом. + // Права на таблицы формируются по составу ролей профиля группы доступа. + ВЫБРАТЬ ПЕРВЫЕ 1 ИСТИНА + ИЗ + #Если СтрСодержит(&ТаблицыРасширенийСОграничениемДоступа, "|#Параметр(1);") #Тогда + Справочник.ИдентификаторыОбъектовРасширений КАК СвойстваТекущейТаблицы + #Иначе + Справочник.ИдентификаторыОбъектовМетаданных КАК СвойстваТекущейТаблицы + #КонецЕсли + ВНУТРЕННЕЕ СОЕДИНЕНИЕ Справочник.ГруппыДоступа КАК ГруппыДоступа + ПО + СвойстваТекущейТаблицы.ПолноеИмя = "#Параметр(1)" + И ИСТИНА В + ( + ВЫБРАТЬ ПЕРВЫЕ 1 ИСТИНА + ИЗ + РегистрСведений.ТаблицыГруппДоступа КАК ТаблицыГруппДоступа + ГДЕ + ТаблицыГруппДоступа.Таблица = СвойстваТекущейТаблицы.Ссылка + И ТаблицыГруппДоступа.ГруппаДоступа = ГруппыДоступа.Ссылка + #Если #ИмяТекущегоПраваДоступа = "Изменение" #Тогда + И ТаблицыГруппДоступа.ПравоИзменение + #ИначеЕсли #ИмяТекущегоПраваДоступа = "Добавление" #Тогда + И ТаблицыГруппДоступа.ПравоДобавление + #КонецЕсли + ) + И ГруппыДоступа.Ссылка В + ( + ВЫБРАТЬ + ГруппыДоступаПользователи.Ссылка КАК ГруппаДоступа + ИЗ + Справочник.ГруппыДоступа.Пользователи КАК ГруппыДоступаПользователи + ВНУТРЕННЕЕ СОЕДИНЕНИЕ РегистрСведений.СоставыГруппПользователей КАК СоставыГруппПользователей + ПО + СоставыГруппПользователей.Пользователь = &АвторизованныйПользователь + И СоставыГруппПользователей.ГруппаПользователей = ГруппыДоступаПользователи.Пользователь + ) + ГДЕ + +// Безусловная выборка групп в иерархическом объекте метаданных (если нужно). +#Если "#Параметр(3)" = "НеОграничиватьДоступКГруппам" #Тогда + Т.ЭтоГруппа ИЛИ +#КонецЕсли + + ( // Поиск значений заданных полей в разрешенных значениях групп доступа (пользователей). + + #Параметр(5) // [([(][(]...] 0-n открывающихся скобок. + +//// Проверка значения поля группы параметров 1. +#Если &ОграничениеДоступаНаУровнеЗаписейИспользуется И ("#Параметр(6)" = "Условие" Или "#Параметр(6)" = "") #Тогда + // Когда имя вида доступа "Условие" (или ""), тогда вместо имени поля задано условие. + ( #Параметр(7) ) +#ИначеЕсли "#Параметр(6)" = "ПравоЧтения" Или "#Параметр(6)" = "ПравоИзменения" #Тогда + #Параметр(7) <> НЕОПРЕДЕЛЕНО + И ИСТИНА В + ( // Проверка права пользователя на таблицу Значения, установленного в поле. + ВЫБРАТЬ ПЕРВЫЕ 1 ИСТИНА + ИЗ РегистрСведений.ТаблицыГруппДоступа КАК ТаблицыГруппДоступаПроверкаПрава + ГДЕ + ТаблицыГруппДоступаПроверкаПрава.ГруппаДоступа = ГруппыДоступа.Ссылка + И ТИПЗНАЧЕНИЯ(ТаблицыГруппДоступаПроверкаПрава.ТипТаблицы) = ТИПЗНАЧЕНИЯ(#Параметр(7)) + #Если Не "#Параметр(6)" = "ПравоЧтения" #Тогда + И ТаблицыГруппДоступаПроверкаПрава.ПравоИзменение + #КонецЕсли + ) +#ИначеЕсли "#Параметр(6)" = "ПравоЧтенияПоИдентификатору" Или "#Параметр(6)" = "ПравоИзмененияПоИдентификатору" #Тогда + ИСТИНА В + ( // Проверка права пользователя на таблицу, идентификатор которой указан в Значении, установленном в поле. + ВЫБРАТЬ ПЕРВЫЕ 1 ИСТИНА + ИЗ РегистрСведений.ТаблицыГруппДоступа КАК ТаблицыГруппДоступаПроверкаПрава + ГДЕ + ТаблицыГруппДоступаПроверкаПрава.ГруппаДоступа = ГруппыДоступа.Ссылка + И ТаблицыГруппДоступаПроверкаПрава.Таблица = #Параметр(7) + #Если Не "#Параметр(6)" = "ПравоЧтенияПоИдентификатору" #Тогда + И ТаблицыГруппДоступаПроверкаПрава.ПравоИзменение + #КонецЕсли + ) +#ИначеЕсли Не &ОграничениеДоступаНаУровнеЗаписейИспользуется #Тогда + ИСТИНА // Группа параметров отключена. +#ИначеЕсли "#Параметр(6)" = "НастройкиПрав" #Тогда + + ( + ИСТИНА В // Проверка, что пользователю или какой-нибудь группе пользователя право разрешено + ( + ВЫБРАТЬ ПЕРВЫЕ 1 ИСТИНА + ИЗ РегистрСведений.НастройкиПравОбъектов КАК НастройкиПрав + ВНУТРЕННЕЕ СОЕДИНЕНИЕ РегистрСведений.НаследованиеНастроекПравОбъектов КАК НаследованиеНастроек + ПО + НаследованиеНастроек.Объект = #Параметр(7) + И НастройкиПрав.Объект = НаследованиеНастроек.Родитель + #Если #ИмяТекущегоПраваДоступа = "Чтение" #Тогда + И НаследованиеНастроек.УровеньИспользования < НастройкиПрав.УровеньРазрешенияЧтения + #Иначе + #Если СтрСодержит(&ТаблицыСОтдельнымиНастройкамиПрав, "|#Параметр(1);") #Тогда + И НастройкиПрав.Таблица = СвойстваТекущейТаблицы.Ссылка + #Иначе + И НастройкиПрав.Таблица = ЗНАЧЕНИЕ(Справочник.ИдентификаторыОбъектовМетаданных.ПустаяСсылка) + #КонецЕсли + И НаследованиеНастроек.УровеньИспользования < НастройкиПрав.УровеньРазрешенияИзменения + #КонецЕсли + ВНУТРЕННЕЕ СОЕДИНЕНИЕ РегистрСведений.СоставыГруппПользователей КАК СоставыГруппПользователей + ПО + СоставыГруппПользователей.Пользователь = &АвторизованныйПользователь + И СоставыГруппПользователей.ГруппаПользователей = НастройкиПрав.Пользователь + ) + И НЕ ЛОЖЬ В // Проверка, что пользователю или какой-нибудь группе пользователя право запрещено. + ( + ВЫБРАТЬ ПЕРВЫЕ 1 ЛОЖЬ + ИЗ РегистрСведений.НастройкиПравОбъектов КАК НастройкиПрав + ВНУТРЕННЕЕ СОЕДИНЕНИЕ РегистрСведений.НаследованиеНастроекПравОбъектов КАК НаследованиеНастроек + ПО + НаследованиеНастроек.Объект = #Параметр(7) + И НастройкиПрав.Объект = НаследованиеНастроек.Родитель + #Если #ИмяТекущегоПраваДоступа = "Чтение" #Тогда + И НаследованиеНастроек.УровеньИспользования < НастройкиПрав.УровеньЗапрещенияЧтения + #Иначе + #Если СтрСодержит(&ТаблицыСОтдельнымиНастройкамиПрав, "|#Параметр(1);") #Тогда + И НастройкиПрав.Таблица = СвойстваТекущейТаблицы.Ссылка + #Иначе + И НастройкиПрав.Таблица = ЗНАЧЕНИЕ(Справочник.ИдентификаторыОбъектовМетаданных.ПустаяСсылка) + #КонецЕсли + И НаследованиеНастроек.УровеньИспользования < НастройкиПрав.УровеньЗапрещенияИзменения + #КонецЕсли + ВНУТРЕННЕЕ СОЕДИНЕНИЕ РегистрСведений.СоставыГруппПользователей КАК СоставыГруппПользователей + ПО + СоставыГруппПользователей.Пользователь = &АвторизованныйПользователь + И СоставыГруппПользователей.ГруппаПользователей = НастройкиПрав.Пользователь + ) + ) +#ИначеЕсли Не СтрСодержит(&ВсеВидыДоступаКромеСпециальных, ",#Параметр(6),") #Тогда + // Когда параметр задан неверно, вставляется строка, чтобы вызвать ошибку сборки ограничения доступа. + #Если СтрСодержит("#Параметр(6)", ",") #Тогда + НеверныйВидДоступа: "#Параметр(6)" - "Список имен видов доступа не найден" + #Иначе + НеверныйВидДоступа: "#Параметр(6)" - "Имя вида доступа не найдено" + #КонецЕсли +#ИначеЕсли &ВидыДоступаСОтключеннымИспользованием <> "Все" + И Не СтрСодержит(&ВидыДоступаСОтключеннымИспользованием, ",#Параметр(6),") #Тогда + + ( + ЕСТЬNULL(#Параметр(7), НЕОПРЕДЕЛЕНО) <> НЕОПРЕДЕЛЕНО + И + #Если (Не СтрСодержит(&ВидыДоступаСОтключеннымИспользованием, ",Пользователи,") И СтрСодержит(",#Параметр(6),", ",Пользователи,")) + Или (Не СтрСодержит(&ВидыДоступаСОтключеннымИспользованием, ",ВнешниеПользователи,") И СтрСодержит(",#Параметр(6),", ",ВнешниеПользователи,")) #Тогда + НЕ + ( + НЕ ИСТИНА В + ( + ВЫБРАТЬ ПЕРВЫЕ 1 ИСТИНА + ИЗ РегистрСведений.ГруппыЗначенийДоступа КАК ГруппыЗначенийДоступа + ГДЕ + ГруппыЗначенийДоступа.ЗначениеДоступа = #Параметр(7) + И ГруппыЗначенийДоступа.ГруппаЗначенийДоступа = &АвторизованныйПользователь + ) + И НЕ + #Иначе + ( + #КонецЕсли + ВЫБОР + КОГДА ИСТИНА В + ( + #Если СтрСодержит(&ВидыДоступаБезГруппДляЗначенияДоступа, ",#Параметр(6),") #Тогда + ВЫБРАТЬ ПЕРВЫЕ 1 ИСТИНА + ИЗ РегистрСведений.ЗначенияГруппДоступа КАК Значения + ГДЕ + Значения.ГруппаДоступа = ГруппыДоступа.Ссылка + И Значения.ЗначениеДоступа = #Параметр(7) + #ИначеЕсли "#Параметр(7)" = "Т.Ссылка" + И "#Параметр(6)" <> "Пользователи" + И "#Параметр(6)" <> "ВнешниеПользователи" #Тогда + #Если СтрСодержит("#Параметр(6)", ",") #Тогда + // Когда параметр задан неверно, вставляется строка, чтобы вызвать ошибку сборки ограничения доступа. + НеверныйВидДоступа: "#Параметр(6)" - "При проверке таблицы значения доступа можно указывать только один вид доступа" + #ИначеЕсли СтрСодержит(&ВидыДоступаСОднойГруппойДляЗначенияДоступа, ",#Параметр(6),") #Тогда + ВЫБРАТЬ ПЕРВЫЕ 1 ИСТИНА + ИЗ РегистрСведений.ЗначенияГруппДоступа КАК Значения + ГДЕ + Значения.ГруппаДоступа = ГруппыДоступа.Ссылка + И Значения.ЗначениеДоступа = Т.ГруппаДоступа + #Иначе // Значения доступа, для которых можно указать несколько групп значений доступа. + ВЫБРАТЬ ПЕРВЫЕ 1 ИСТИНА + ИЗ РегистрСведений.ЗначенияГруппДоступа КАК Значения + ВНУТРЕННЕЕ СОЕДИНЕНИЕ #Параметр(1).ГруппыДоступа КАК ГруппыЗначений + ПО + Значения.ГруппаДоступа = ГруппыДоступа.Ссылка + И Значения.ЗначениеДоступа = ГруппыЗначений.ГруппаДоступа + И ГруппыЗначений.Ссылка = #Параметр(7) + #КонецЕсли + #Иначе + ВЫБРАТЬ ПЕРВЫЕ 1 ИСТИНА + ИЗ РегистрСведений.ЗначенияГруппДоступа КАК Значения + ВНУТРЕННЕЕ СОЕДИНЕНИЕ РегистрСведений.ГруппыЗначенийДоступа КАК ГруппыЗначений + ПО + Значения.ГруппаДоступа = ГруппыДоступа.Ссылка + И Значения.ЗначениеДоступа = ГруппыЗначений.ГруппаЗначенийДоступа + И ГруппыЗначений.ЗначениеДоступа = #Параметр(7) + #КонецЕсли + ) + ТОГДА ИСТИНА + ИНАЧЕ ЛОЖЬ + КОНЕЦ + = + ВЫБОР + КОГДА ИСТИНА В + ( + ВЫБРАТЬ ПЕРВЫЕ 1 ИСТИНА + ИЗ РегистрСведений.ЗначенияГруппДоступаПоУмолчанию КАК ЗначенияПоУмолчанию + ГДЕ + ЗначенияПоУмолчанию.ГруппаДоступа = ГруппыДоступа.Ссылка + И ТИПЗНАЧЕНИЯ(ЗначенияПоУмолчанию.ТипЗначенийДоступа) = ТИПЗНАЧЕНИЯ(#Параметр(7)) + И ЗначенияПоУмолчанию.ВсеРазрешены = ЛОЖЬ + ) + ТОГДА ИСТИНА + ИНАЧЕ ЛОЖЬ + КОНЕЦ + ) + ) +#Иначе + ЕСТЬNULL(#Параметр(7), НЕОПРЕДЕЛЕНО) <> НЕОПРЕДЕЛЕНО +#КонецЕсли + + #Параметр(8) // [)[)][)]...] [ИЛИ|И] [([(][(]...] оператор И/ИЛИ с/без скобок. + +//// Проверка значения поля группы параметров 2. +#Если "#Параметр(9)" = "" И "#Параметр(10)" = "" #Тогда + // Группа параметров не используется. +#ИначеЕсли &ОграничениеДоступаНаУровнеЗаписейИспользуется И ("#Параметр(9)" = "Условие" Или "#Параметр(9)" = "") #Тогда + // Когда имя вида доступа "Условие" (или ""), тогда вместо имени поля задано условие. + ( #Параметр(10) ) +#ИначеЕсли "#Параметр(9)" = "ПравоЧтения" Или "#Параметр(9)" = "ПравоИзменения" #Тогда + #Параметр(10) <> НЕОПРЕДЕЛЕНО + И ИСТИНА В + ( // Проверка права пользователя на таблицу Значения, установленного в поле. + ВЫБРАТЬ ПЕРВЫЕ 1 ИСТИНА + ИЗ РегистрСведений.ТаблицыГруппДоступа КАК ТаблицыГруппДоступаПроверкаПрава + ГДЕ + ТаблицыГруппДоступаПроверкаПрава.ГруппаДоступа = ГруппыДоступа.Ссылка + И ТИПЗНАЧЕНИЯ(ТаблицыГруппДоступаПроверкаПрава.ТипТаблицы) = ТИПЗНАЧЕНИЯ(#Параметр(10)) + #Если Не "#Параметр(9)" = "ПравоЧтения" #Тогда + И ТаблицыГруппДоступаПроверкаПрава.ПравоИзменение + #КонецЕсли + ) +#ИначеЕсли "#Параметр(9)" = "ПравоЧтенияПоИдентификатору" Или "#Параметр(9)" = "ПравоИзмененияПоИдентификатору" #Тогда + ИСТИНА В + ( // Проверка права пользователя на таблицу, идентификатор которой указан в Значении, установленном в поле. + ВЫБРАТЬ ПЕРВЫЕ 1 ИСТИНА + ИЗ РегистрСведений.ТаблицыГруппДоступа КАК ТаблицыГруппДоступаПроверкаПрава + ГДЕ + ТаблицыГруппДоступаПроверкаПрава.ГруппаДоступа = ГруппыДоступа.Ссылка + И ТаблицыГруппДоступаПроверкаПрава.Таблица = #Параметр(10) + #Если Не "#Параметр(9)" = "ПравоЧтенияПоИдентификатору" #Тогда + И ТаблицыГруппДоступаПроверкаПрава.ПравоИзменение + #КонецЕсли + ) +#ИначеЕсли Не &ОграничениеДоступаНаУровнеЗаписейИспользуется #Тогда + ИСТИНА // Группа параметров отключена. +#ИначеЕсли "#Параметр(9)" = "НастройкиПрав" #Тогда + + ( + ИСТИНА В // Проверка, что пользователю или какой-нибудь группе пользователя право разрешено + ( + ВЫБРАТЬ ПЕРВЫЕ 1 ИСТИНА + ИЗ РегистрСведений.НастройкиПравОбъектов КАК НастройкиПрав + ВНУТРЕННЕЕ СОЕДИНЕНИЕ РегистрСведений.НаследованиеНастроекПравОбъектов КАК НаследованиеНастроек + ПО + НаследованиеНастроек.Объект = #Параметр(10) + И НастройкиПрав.Объект = НаследованиеНастроек.Родитель + #Если #ИмяТекущегоПраваДоступа = "Чтение" #Тогда + И НаследованиеНастроек.УровеньИспользования < НастройкиПрав.УровеньРазрешенияЧтения + #Иначе + #Если СтрСодержит(&ТаблицыСОтдельнымиНастройкамиПрав, "|#Параметр(1);") #Тогда + И НастройкиПрав.Таблица = СвойстваТекущейТаблицы.Ссылка + #Иначе + И НастройкиПрав.Таблица = ЗНАЧЕНИЕ(Справочник.ИдентификаторыОбъектовМетаданных.ПустаяСсылка) + #КонецЕсли + И НаследованиеНастроек.УровеньИспользования < НастройкиПрав.УровеньРазрешенияИзменения + #КонецЕсли + ВНУТРЕННЕЕ СОЕДИНЕНИЕ РегистрСведений.СоставыГруппПользователей КАК СоставыГруппПользователей + ПО + СоставыГруппПользователей.Пользователь = &АвторизованныйПользователь + И СоставыГруппПользователей.ГруппаПользователей = НастройкиПрав.Пользователь + ) + И НЕ ЛОЖЬ В // Проверка, что пользователю или какой-нибудь группе пользователя право запрещено. + ( + ВЫБРАТЬ ПЕРВЫЕ 1 ЛОЖЬ + ИЗ РегистрСведений.НастройкиПравОбъектов КАК НастройкиПрав + ВНУТРЕННЕЕ СОЕДИНЕНИЕ РегистрСведений.НаследованиеНастроекПравОбъектов КАК НаследованиеНастроек + ПО + НаследованиеНастроек.Объект = #Параметр(10) + И НастройкиПрав.Объект = НаследованиеНастроек.Родитель + #Если #ИмяТекущегоПраваДоступа = "Чтение" #Тогда + И НаследованиеНастроек.УровеньИспользования < НастройкиПрав.УровеньЗапрещенияЧтения + #Иначе + #Если СтрСодержит(&ТаблицыСОтдельнымиНастройкамиПрав, "|#Параметр(1);") #Тогда + И НастройкиПрав.Таблица = СвойстваТекущейТаблицы.Ссылка + #Иначе + И НастройкиПрав.Таблица = ЗНАЧЕНИЕ(Справочник.ИдентификаторыОбъектовМетаданных.ПустаяСсылка) + #КонецЕсли + И НаследованиеНастроек.УровеньИспользования < НастройкиПрав.УровеньЗапрещенияИзменения + #КонецЕсли + ВНУТРЕННЕЕ СОЕДИНЕНИЕ РегистрСведений.СоставыГруппПользователей КАК СоставыГруппПользователей + ПО + СоставыГруппПользователей.Пользователь = &АвторизованныйПользователь + И СоставыГруппПользователей.ГруппаПользователей = НастройкиПрав.Пользователь + ) + ) +#ИначеЕсли Не СтрСодержит(&ВсеВидыДоступаКромеСпециальных, ",#Параметр(9),") #Тогда + // Когда параметр задан неверно, вставляется строка, чтобы вызвать ошибку сборки ограничения доступа. + #Если СтрСодержит("#Параметр(9)", ",") #Тогда + НеверныйВидДоступа: "#Параметр(9)" - "Список имен видов доступа не найден" + #Иначе + НеверныйВидДоступа: "#Параметр(9)" - "Имя вида доступа не найдено" + #КонецЕсли +#ИначеЕсли &ВидыДоступаСОтключеннымИспользованием <> "Все" + И Не СтрСодержит(&ВидыДоступаСОтключеннымИспользованием, ",#Параметр(9),") #Тогда + + ( + ЕСТЬNULL(#Параметр(10), НЕОПРЕДЕЛЕНО) <> НЕОПРЕДЕЛЕНО + И + #Если (Не СтрСодержит(&ВидыДоступаСОтключеннымИспользованием, ",Пользователи,") И СтрСодержит(",#Параметр(9),", ",Пользователи,")) + Или (Не СтрСодержит(&ВидыДоступаСОтключеннымИспользованием, ",ВнешниеПользователи,") И СтрСодержит(",#Параметр(9),", ",ВнешниеПользователи,")) #Тогда + НЕ + ( + НЕ ИСТИНА В + ( + ВЫБРАТЬ ПЕРВЫЕ 1 ИСТИНА + ИЗ РегистрСведений.ГруппыЗначенийДоступа КАК ГруппыЗначенийДоступа + ГДЕ + ГруппыЗначенийДоступа.ЗначениеДоступа = #Параметр(10) + И ГруппыЗначенийДоступа.ГруппаЗначенийДоступа = &АвторизованныйПользователь + ) + И НЕ + #Иначе + ( + #КонецЕсли + ВЫБОР + КОГДА ИСТИНА В + ( + #Если СтрСодержит(&ВидыДоступаБезГруппДляЗначенияДоступа, ",#Параметр(9),") #Тогда + ВЫБРАТЬ ПЕРВЫЕ 1 ИСТИНА + ИЗ РегистрСведений.ЗначенияГруппДоступа КАК Значения + ГДЕ + Значения.ГруппаДоступа = ГруппыДоступа.Ссылка + И Значения.ЗначениеДоступа = #Параметр(10) + #ИначеЕсли "#Параметр(10)" = "Т.Ссылка" + И "#Параметр(9)" <> "Пользователи" + И "#Параметр(9)" <> "ВнешниеПользователи" #Тогда + #Если СтрСодержит("#Параметр(9)", ",") #Тогда + // Когда параметр задан неверно, вставляется строка, чтобы вызвать ошибку сборки ограничения доступа. + НеверныйВидДоступа: "#Параметр(9)" - "При проверке таблицы значения доступа можно указывать только один вид доступа" + #ИначеЕсли СтрСодержит(&ВидыДоступаСОднойГруппойДляЗначенияДоступа, ",#Параметр(9),") #Тогда + ВЫБРАТЬ ПЕРВЫЕ 1 ИСТИНА + ИЗ РегистрСведений.ЗначенияГруппДоступа КАК Значения + ГДЕ + Значения.ГруппаДоступа = ГруппыДоступа.Ссылка + И Значения.ЗначениеДоступа = Т.ГруппаДоступа + #Иначе // Значения доступа, для которых можно указать несколько групп значений доступа. + ВЫБРАТЬ ПЕРВЫЕ 1 ИСТИНА + ИЗ РегистрСведений.ЗначенияГруппДоступа КАК Значения + ВНУТРЕННЕЕ СОЕДИНЕНИЕ #Параметр(1).ГруппыДоступа КАК ГруппыЗначений + ПО + Значения.ГруппаДоступа = ГруппыДоступа.Ссылка + И Значения.ЗначениеДоступа = ГруппыЗначений.ГруппаДоступа + И ГруппыЗначений.Ссылка = #Параметр(10) + #КонецЕсли + #Иначе + ВЫБРАТЬ ПЕРВЫЕ 1 ИСТИНА + ИЗ РегистрСведений.ЗначенияГруппДоступа КАК Значения + ВНУТРЕННЕЕ СОЕДИНЕНИЕ РегистрСведений.ГруппыЗначенийДоступа КАК ГруппыЗначений + ПО + Значения.ГруппаДоступа = ГруппыДоступа.Ссылка + И Значения.ЗначениеДоступа = ГруппыЗначений.ГруппаЗначенийДоступа + И ГруппыЗначений.ЗначениеДоступа = #Параметр(10) + #КонецЕсли + ) + ТОГДА ИСТИНА + ИНАЧЕ ЛОЖЬ + КОНЕЦ + = + ВЫБОР + КОГДА ИСТИНА В + ( + ВЫБРАТЬ ПЕРВЫЕ 1 ИСТИНА + ИЗ РегистрСведений.ЗначенияГруппДоступаПоУмолчанию КАК ЗначенияПоУмолчанию + ГДЕ + ЗначенияПоУмолчанию.ГруппаДоступа = ГруппыДоступа.Ссылка + И ТИПЗНАЧЕНИЯ(ЗначенияПоУмолчанию.ТипЗначенийДоступа) = ТИПЗНАЧЕНИЯ(#Параметр(10)) + И ЗначенияПоУмолчанию.ВсеРазрешены = ЛОЖЬ + ) + ТОГДА ИСТИНА + ИНАЧЕ ЛОЖЬ + КОНЕЦ + ) + ) +#Иначе + ЕСТЬNULL(#Параметр(10), НЕОПРЕДЕЛЕНО) <> НЕОПРЕДЕЛЕНО +#КонецЕсли + + #Параметр(11) // [)[)][)]...] [ИЛИ|И] [([(][(]...] оператор И/ИЛИ с/без скобок. + +//// Проверка значения поля группы параметров 3. +#Если "#Параметр(12)" = "" И "#Параметр(13)" = "" #Тогда + // Группа параметров не используется. +#ИначеЕсли &ОграничениеДоступаНаУровнеЗаписейИспользуется И ("#Параметр(12)" = "Условие" Или "#Параметр(12)" = "") #Тогда + // Когда имя вида доступа "Условие" (или ""), тогда вместо имени поля задано условие. + ( #Параметр(13) ) +#ИначеЕсли "#Параметр(12)" = "ПравоЧтения" Или "#Параметр(12)" = "ПравоИзменения" #Тогда + #Параметр(13) <> НЕОПРЕДЕЛЕНО + И ИСТИНА В + ( // Проверка права пользователя на таблицу Значения, установленного в поле. + ВЫБРАТЬ ПЕРВЫЕ 1 ИСТИНА + ИЗ РегистрСведений.ТаблицыГруппДоступа КАК ТаблицыГруппДоступаПроверкаПрава + ГДЕ + ТаблицыГруппДоступаПроверкаПрава.ГруппаДоступа = ГруппыДоступа.Ссылка + И ТИПЗНАЧЕНИЯ(ТаблицыГруппДоступаПроверкаПрава.ТипТаблицы) = ТИПЗНАЧЕНИЯ(#Параметр(13)) + #Если Не "#Параметр(12)" = "ПравоЧтения" #Тогда + И ТаблицыГруппДоступаПроверкаПрава.ПравоИзменение + #КонецЕсли + ) +#ИначеЕсли "#Параметр(12)" = "ПравоЧтенияПоИдентификатору" Или "#Параметр(12)" = "ПравоИзмененияПоИдентификатору" #Тогда + ИСТИНА В + ( // Проверка права пользователя на таблицу, идентификатор которой указан в Значении, установленном в поле. + ВЫБРАТЬ ПЕРВЫЕ 1 ИСТИНА + ИЗ РегистрСведений.ТаблицыГруппДоступа КАК ТаблицыГруппДоступаПроверкаПрава + ГДЕ + ТаблицыГруппДоступаПроверкаПрава.ГруппаДоступа = ГруппыДоступа.Ссылка + И ТаблицыГруппДоступаПроверкаПрава.Таблица = #Параметр(13) + #Если Не "#Параметр(12)" = "ПравоЧтенияПоИдентификатору" #Тогда + И ТаблицыГруппДоступаПроверкаПрава.ПравоИзменение + #КонецЕсли + ) +#ИначеЕсли Не &ОграничениеДоступаНаУровнеЗаписейИспользуется #Тогда + ИСТИНА // Группа параметров отключена. +#ИначеЕсли "#Параметр(12)" = "НастройкиПрав" #Тогда + + ( + ИСТИНА В // Проверка, что пользователю или какой-нибудь группе пользователя право разрешено + ( + ВЫБРАТЬ ПЕРВЫЕ 1 ИСТИНА + ИЗ РегистрСведений.НастройкиПравОбъектов КАК НастройкиПрав + ВНУТРЕННЕЕ СОЕДИНЕНИЕ РегистрСведений.НаследованиеНастроекПравОбъектов КАК НаследованиеНастроек + ПО + НаследованиеНастроек.Объект = #Параметр(13) + И НастройкиПрав.Объект = НаследованиеНастроек.Родитель + #Если #ИмяТекущегоПраваДоступа = "Чтение" #Тогда + И НаследованиеНастроек.УровеньИспользования < НастройкиПрав.УровеньРазрешенияЧтения + #Иначе + #Если СтрСодержит(&ТаблицыСОтдельнымиНастройкамиПрав, "|#Параметр(1);") #Тогда + И НастройкиПрав.Таблица = СвойстваТекущейТаблицы.Ссылка + #Иначе + И НастройкиПрав.Таблица = ЗНАЧЕНИЕ(Справочник.ИдентификаторыОбъектовМетаданных.ПустаяСсылка) + #КонецЕсли + И НаследованиеНастроек.УровеньИспользования < НастройкиПрав.УровеньРазрешенияИзменения + #КонецЕсли + ВНУТРЕННЕЕ СОЕДИНЕНИЕ РегистрСведений.СоставыГруппПользователей КАК СоставыГруппПользователей + ПО + СоставыГруппПользователей.Пользователь = &АвторизованныйПользователь + И СоставыГруппПользователей.ГруппаПользователей = НастройкиПрав.Пользователь + ) + И НЕ ЛОЖЬ В // Проверка, что пользователю или какой-нибудь группе пользователя право запрещено. + ( + ВЫБРАТЬ ПЕРВЫЕ 1 ЛОЖЬ + ИЗ РегистрСведений.НастройкиПравОбъектов КАК НастройкиПрав + ВНУТРЕННЕЕ СОЕДИНЕНИЕ РегистрСведений.НаследованиеНастроекПравОбъектов КАК НаследованиеНастроек + ПО + НаследованиеНастроек.Объект = #Параметр(13) + И НастройкиПрав.Объект = НаследованиеНастроек.Родитель + #Если #ИмяТекущегоПраваДоступа = "Чтение" #Тогда + И НаследованиеНастроек.УровеньИспользования < НастройкиПрав.УровеньЗапрещенияЧтения + #Иначе + #Если СтрСодержит(&ТаблицыСОтдельнымиНастройкамиПрав, "|#Параметр(1);") #Тогда + И НастройкиПрав.Таблица = СвойстваТекущейТаблицы.Ссылка + #Иначе + И НастройкиПрав.Таблица = ЗНАЧЕНИЕ(Справочник.ИдентификаторыОбъектовМетаданных.ПустаяСсылка) + #КонецЕсли + И НаследованиеНастроек.УровеньИспользования < НастройкиПрав.УровеньЗапрещенияИзменения + #КонецЕсли + ВНУТРЕННЕЕ СОЕДИНЕНИЕ РегистрСведений.СоставыГруппПользователей КАК СоставыГруппПользователей + ПО + СоставыГруппПользователей.Пользователь = &АвторизованныйПользователь + И СоставыГруппПользователей.ГруппаПользователей = НастройкиПрав.Пользователь + ) + ) +#ИначеЕсли Не СтрСодержит(&ВсеВидыДоступаКромеСпециальных, ",#Параметр(12),") #Тогда + // Когда параметр задан неверно, вставляется строка, чтобы вызвать ошибку сборки ограничения доступа. + #Если СтрСодержит("#Параметр(12)", ",") #Тогда + НеверныйВидДоступа: "#Параметр(12)" - "Список имен видов доступа не найден" + #Иначе + НеверныйВидДоступа: "#Параметр(12)" - "Имя вида доступа не найдено" + #КонецЕсли +#ИначеЕсли &ВидыДоступаСОтключеннымИспользованием <> "Все" + И Не СтрСодержит(&ВидыДоступаСОтключеннымИспользованием, ",#Параметр(12),") #Тогда + + ( + ЕСТЬNULL(#Параметр(13), НЕОПРЕДЕЛЕНО) <> НЕОПРЕДЕЛЕНО + И + #Если (Не СтрСодержит(&ВидыДоступаСОтключеннымИспользованием, ",Пользователи,") И СтрСодержит(",#Параметр(12),", ",Пользователи,")) + Или (Не СтрСодержит(&ВидыДоступаСОтключеннымИспользованием, ",ВнешниеПользователи,") И СтрСодержит(",#Параметр(12),", ",ВнешниеПользователи,")) #Тогда + НЕ + ( + НЕ ИСТИНА В + ( + ВЫБРАТЬ ПЕРВЫЕ 1 ИСТИНА + ИЗ РегистрСведений.ГруппыЗначенийДоступа КАК ГруппыЗначенийДоступа + ГДЕ + ГруппыЗначенийДоступа.ЗначениеДоступа = #Параметр(13) + И ГруппыЗначенийДоступа.ГруппаЗначенийДоступа = &АвторизованныйПользователь + ) + И НЕ + #Иначе + ( + #КонецЕсли + ВЫБОР + КОГДА ИСТИНА В + ( + #Если СтрСодержит(&ВидыДоступаБезГруппДляЗначенияДоступа, ",#Параметр(12),") #Тогда + ВЫБРАТЬ ПЕРВЫЕ 1 ИСТИНА + ИЗ РегистрСведений.ЗначенияГруппДоступа КАК Значения + ГДЕ + Значения.ГруппаДоступа = ГруппыДоступа.Ссылка + И Значения.ЗначениеДоступа = #Параметр(13) + #ИначеЕсли "#Параметр(13)" = "Т.Ссылка" + И "#Параметр(12)" <> "Пользователи" + И "#Параметр(12)" <> "ВнешниеПользователи" #Тогда + #Если СтрСодержит("#Параметр(12)", ",") #Тогда + // Когда параметр задан неверно, вставляется строка, чтобы вызвать ошибку сборки ограничения доступа. + НеверныйВидДоступа: "#Параметр(12)" - "При проверке таблицы значения доступа можно указывать только один вид доступа" + #ИначеЕсли СтрСодержит(&ВидыДоступаСОднойГруппойДляЗначенияДоступа, ",#Параметр(12),") #Тогда + ВЫБРАТЬ ПЕРВЫЕ 1 ИСТИНА + ИЗ РегистрСведений.ЗначенияГруппДоступа КАК Значения + ГДЕ + Значения.ГруппаДоступа = ГруппыДоступа.Ссылка + И Значения.ЗначениеДоступа = Т.ГруппаДоступа + #Иначе // Значения доступа, для которых можно указать несколько групп значений доступа. + ВЫБРАТЬ ПЕРВЫЕ 1 ИСТИНА + ИЗ РегистрСведений.ЗначенияГруппДоступа КАК Значения + ВНУТРЕННЕЕ СОЕДИНЕНИЕ #Параметр(1).ГруппыДоступа КАК ГруппыЗначений + ПО + Значения.ГруппаДоступа = ГруппыДоступа.Ссылка + И Значения.ЗначениеДоступа = ГруппыЗначений.ГруппаДоступа + И ГруппыЗначений.Ссылка = #Параметр(13) + #КонецЕсли + #Иначе + ВЫБРАТЬ ПЕРВЫЕ 1 ИСТИНА + ИЗ РегистрСведений.ЗначенияГруппДоступа КАК Значения + ВНУТРЕННЕЕ СОЕДИНЕНИЕ РегистрСведений.ГруппыЗначенийДоступа КАК ГруппыЗначений + ПО + Значения.ГруппаДоступа = ГруппыДоступа.Ссылка + И Значения.ЗначениеДоступа = ГруппыЗначений.ГруппаЗначенийДоступа + И ГруппыЗначений.ЗначениеДоступа = #Параметр(13) + #КонецЕсли + ) + ТОГДА ИСТИНА + ИНАЧЕ ЛОЖЬ + КОНЕЦ + = + ВЫБОР + КОГДА ИСТИНА В + ( + ВЫБРАТЬ ПЕРВЫЕ 1 ИСТИНА + ИЗ РегистрСведений.ЗначенияГруппДоступаПоУмолчанию КАК ЗначенияПоУмолчанию + ГДЕ + ЗначенияПоУмолчанию.ГруппаДоступа = ГруппыДоступа.Ссылка + И ТИПЗНАЧЕНИЯ(ЗначенияПоУмолчанию.ТипЗначенийДоступа) = ТИПЗНАЧЕНИЯ(#Параметр(13)) + И ЗначенияПоУмолчанию.ВсеРазрешены = ЛОЖЬ + ) + ТОГДА ИСТИНА + ИНАЧЕ ЛОЖЬ + КОНЕЦ + ) + ) +#Иначе + ЕСТЬNULL(#Параметр(13), НЕОПРЕДЕЛЕНО) <> НЕОПРЕДЕЛЕНО +#КонецЕсли + + #Параметр(14) // [)[)][)]...] [ИЛИ|И] [([(][(]...] оператор И/ИЛИ с/без скобок. + +//// Проверка значения поля группы параметров 4. +#Если "#Параметр(15)" = "" И "#Параметр(16)" = "" #Тогда + // Группа параметров не используется. +#ИначеЕсли &ОграничениеДоступаНаУровнеЗаписейИспользуется И ("#Параметр(15)" = "Условие" Или "#Параметр(15)" = "") #Тогда + // Когда имя вида доступа "Условие" (или ""), тогда вместо имени поля задано условие. + ( #Параметр(16) ) +#ИначеЕсли "#Параметр(15)" = "ПравоЧтения" Или "#Параметр(15)" = "ПравоИзменения" #Тогда + #Параметр(16) <> НЕОПРЕДЕЛЕНО + И ИСТИНА В + ( // Проверка права пользователя на таблицу Значения, установленного в поле. + ВЫБРАТЬ ПЕРВЫЕ 1 ИСТИНА + ИЗ РегистрСведений.ТаблицыГруппДоступа КАК ТаблицыГруппДоступаПроверкаПрава + ГДЕ + ТаблицыГруппДоступаПроверкаПрава.ГруппаДоступа = ГруппыДоступа.Ссылка + И ТИПЗНАЧЕНИЯ(ТаблицыГруппДоступаПроверкаПрава.ТипТаблицы) = ТИПЗНАЧЕНИЯ(#Параметр(16)) + #Если Не "#Параметр(15)" = "ПравоЧтения" #Тогда + И ТаблицыГруппДоступаПроверкаПрава.ПравоИзменение + #КонецЕсли + ) +#ИначеЕсли "#Параметр(15)" = "ПравоЧтенияПоИдентификатору" Или "#Параметр(15)" = "ПравоИзмененияПоИдентификатору" #Тогда + ИСТИНА В + ( // Проверка права пользователя на таблицу, идентификатор которой указан в Значении, установленном в поле. + ВЫБРАТЬ ПЕРВЫЕ 1 ИСТИНА + ИЗ РегистрСведений.ТаблицыГруппДоступа КАК ТаблицыГруппДоступаПроверкаПрава + ГДЕ + ТаблицыГруппДоступаПроверкаПрава.ГруппаДоступа = ГруппыДоступа.Ссылка + И ТаблицыГруппДоступаПроверкаПрава.Таблица = #Параметр(16) + #Если Не "#Параметр(15)" = "ПравоЧтенияПоИдентификатору" #Тогда + И ТаблицыГруппДоступаПроверкаПрава.ПравоИзменение + #КонецЕсли + ) +#ИначеЕсли Не &ОграничениеДоступаНаУровнеЗаписейИспользуется #Тогда + ИСТИНА // Группа параметров отключена. +#ИначеЕсли "#Параметр(15)" = "НастройкиПрав" #Тогда + + ( + ИСТИНА В // Проверка, что пользователю или какой-нибудь группе пользователя право разрешено + ( + ВЫБРАТЬ ПЕРВЫЕ 1 ИСТИНА + ИЗ РегистрСведений.НастройкиПравОбъектов КАК НастройкиПрав + ВНУТРЕННЕЕ СОЕДИНЕНИЕ РегистрСведений.НаследованиеНастроекПравОбъектов КАК НаследованиеНастроек + ПО + НаследованиеНастроек.Объект = #Параметр(16) + И НастройкиПрав.Объект = НаследованиеНастроек.Родитель + #Если #ИмяТекущегоПраваДоступа = "Чтение" #Тогда + И НаследованиеНастроек.УровеньИспользования < НастройкиПрав.УровеньРазрешенияЧтения + #Иначе + #Если СтрСодержит(&ТаблицыСОтдельнымиНастройкамиПрав, "|#Параметр(1);") #Тогда + И НастройкиПрав.Таблица = СвойстваТекущейТаблицы.Ссылка + #Иначе + И НастройкиПрав.Таблица = ЗНАЧЕНИЕ(Справочник.ИдентификаторыОбъектовМетаданных.ПустаяСсылка) + #КонецЕсли + И НаследованиеНастроек.УровеньИспользования < НастройкиПрав.УровеньРазрешенияИзменения + #КонецЕсли + ВНУТРЕННЕЕ СОЕДИНЕНИЕ РегистрСведений.СоставыГруппПользователей КАК СоставыГруппПользователей + ПО + СоставыГруппПользователей.Пользователь = &АвторизованныйПользователь + И СоставыГруппПользователей.ГруппаПользователей = НастройкиПрав.Пользователь + ) + И НЕ ЛОЖЬ В // Проверка, что пользователю или какой-нибудь группе пользователя право запрещено. + ( + ВЫБРАТЬ ПЕРВЫЕ 1 ЛОЖЬ + ИЗ РегистрСведений.НастройкиПравОбъектов КАК НастройкиПрав + ВНУТРЕННЕЕ СОЕДИНЕНИЕ РегистрСведений.НаследованиеНастроекПравОбъектов КАК НаследованиеНастроек + ПО + НаследованиеНастроек.Объект = #Параметр(16) + И НастройкиПрав.Объект = НаследованиеНастроек.Родитель + #Если #ИмяТекущегоПраваДоступа = "Чтение" #Тогда + И НаследованиеНастроек.УровеньИспользования < НастройкиПрав.УровеньЗапрещенияЧтения + #Иначе + #Если СтрСодержит(&ТаблицыСОтдельнымиНастройкамиПрав, "|#Параметр(1);") #Тогда + И НастройкиПрав.Таблица = СвойстваТекущейТаблицы.Ссылка + #Иначе + И НастройкиПрав.Таблица = ЗНАЧЕНИЕ(Справочник.ИдентификаторыОбъектовМетаданных.ПустаяСсылка) + #КонецЕсли + И НаследованиеНастроек.УровеньИспользования < НастройкиПрав.УровеньЗапрещенияИзменения + #КонецЕсли + ВНУТРЕННЕЕ СОЕДИНЕНИЕ РегистрСведений.СоставыГруппПользователей КАК СоставыГруппПользователей + ПО + СоставыГруппПользователей.Пользователь = &АвторизованныйПользователь + И СоставыГруппПользователей.ГруппаПользователей = НастройкиПрав.Пользователь + ) + ) +#ИначеЕсли Не СтрСодержит(&ВсеВидыДоступаКромеСпециальных, ",#Параметр(15),") #Тогда + // Когда параметр задан неверно, вставляется строка, чтобы вызвать ошибку сборки ограничения доступа. + #Если СтрСодержит("#Параметр(15)", ",") #Тогда + НеверныйВидДоступа: "#Параметр(15)" - "Список имен видов доступа не найден" + #Иначе + НеверныйВидДоступа: "#Параметр(15)" - "Имя вида доступа не найдено" + #КонецЕсли +#ИначеЕсли &ВидыДоступаСОтключеннымИспользованием <> "Все" + И Не СтрСодержит(&ВидыДоступаСОтключеннымИспользованием, ",#Параметр(15),") #Тогда + + ( + ЕСТЬNULL(#Параметр(16), НЕОПРЕДЕЛЕНО) <> НЕОПРЕДЕЛЕНО + И + #Если (Не СтрСодержит(&ВидыДоступаСОтключеннымИспользованием, ",Пользователи,") И СтрСодержит(",#Параметр(15),", ",Пользователи,")) + Или (Не СтрСодержит(&ВидыДоступаСОтключеннымИспользованием, ",ВнешниеПользователи,") И СтрСодержит(",#Параметр(15),", ",ВнешниеПользователи,")) #Тогда + НЕ + ( + НЕ ИСТИНА В + ( + ВЫБРАТЬ ПЕРВЫЕ 1 ИСТИНА + ИЗ РегистрСведений.ГруппыЗначенийДоступа КАК ГруппыЗначенийДоступа + ГДЕ + ГруппыЗначенийДоступа.ЗначениеДоступа = #Параметр(16) + И ГруппыЗначенийДоступа.ГруппаЗначенийДоступа = &АвторизованныйПользователь + ) + И НЕ + #Иначе + ( + #КонецЕсли + ВЫБОР + КОГДА ИСТИНА В + ( + #Если СтрСодержит(&ВидыДоступаБезГруппДляЗначенияДоступа, ",#Параметр(15),") #Тогда + ВЫБРАТЬ ПЕРВЫЕ 1 ИСТИНА + ИЗ РегистрСведений.ЗначенияГруппДоступа КАК Значения + ГДЕ + Значения.ГруппаДоступа = ГруппыДоступа.Ссылка + И Значения.ЗначениеДоступа = #Параметр(16) + #ИначеЕсли "#Параметр(16)" = "Т.Ссылка" + И "#Параметр(15)" <> "Пользователи" + И "#Параметр(15)" <> "ВнешниеПользователи" #Тогда + #Если СтрСодержит("#Параметр(15)", ",") #Тогда + // Когда параметр задан неверно, вставляется строка, чтобы вызвать ошибку сборки ограничения доступа. + НеверныйВидДоступа: "#Параметр(15)" - "При проверке таблицы значения доступа можно указывать только один вид доступа" + #ИначеЕсли СтрСодержит(&ВидыДоступаСОднойГруппойДляЗначенияДоступа, ",#Параметр(15),") #Тогда + ВЫБРАТЬ ПЕРВЫЕ 1 ИСТИНА + ИЗ РегистрСведений.ЗначенияГруппДоступа КАК Значения + ГДЕ + Значения.ГруппаДоступа = ГруппыДоступа.Ссылка + И Значения.ЗначениеДоступа = Т.ГруппаДоступа + #Иначе // Значения доступа, для которых можно указать несколько групп значений доступа. + ВЫБРАТЬ ПЕРВЫЕ 1 ИСТИНА + ИЗ РегистрСведений.ЗначенияГруппДоступа КАК Значения + ВНУТРЕННЕЕ СОЕДИНЕНИЕ #Параметр(1).ГруппыДоступа КАК ГруппыЗначений + ПО + Значения.ГруппаДоступа = ГруппыДоступа.Ссылка + И Значения.ЗначениеДоступа = ГруппыЗначений.ГруппаДоступа + И ГруппыЗначений.Ссылка = #Параметр(16) + #КонецЕсли + #Иначе + ВЫБРАТЬ ПЕРВЫЕ 1 ИСТИНА + ИЗ РегистрСведений.ЗначенияГруппДоступа КАК Значения + ВНУТРЕННЕЕ СОЕДИНЕНИЕ РегистрСведений.ГруппыЗначенийДоступа КАК ГруппыЗначений + ПО + Значения.ГруппаДоступа = ГруппыДоступа.Ссылка + И Значения.ЗначениеДоступа = ГруппыЗначений.ГруппаЗначенийДоступа + И ГруппыЗначений.ЗначениеДоступа = #Параметр(16) + #КонецЕсли + ) + ТОГДА ИСТИНА + ИНАЧЕ ЛОЖЬ + КОНЕЦ + = + ВЫБОР + КОГДА ИСТИНА В + ( + ВЫБРАТЬ ПЕРВЫЕ 1 ИСТИНА + ИЗ РегистрСведений.ЗначенияГруппДоступаПоУмолчанию КАК ЗначенияПоУмолчанию + ГДЕ + ЗначенияПоУмолчанию.ГруппаДоступа = ГруппыДоступа.Ссылка + И ТИПЗНАЧЕНИЯ(ЗначенияПоУмолчанию.ТипЗначенийДоступа) = ТИПЗНАЧЕНИЯ(#Параметр(16)) + И ЗначенияПоУмолчанию.ВсеРазрешены = ЛОЖЬ + ) + ТОГДА ИСТИНА + ИНАЧЕ ЛОЖЬ + КОНЕЦ + ) + ) +#Иначе + ЕСТЬNULL(#Параметр(16), НЕОПРЕДЕЛЕНО) <> НЕОПРЕДЕЛЕНО +#КонецЕсли + + #Параметр(17) // [)[)][)]...] [ИЛИ|И] [([(][(]...] оператор И/ИЛИ с/без скобок. + +//// Проверка значения поля группы параметров 5. +#Если "#Параметр(18)" = "" И "#Параметр(19)" = "" #Тогда + // Группа параметров не используется. +#ИначеЕсли &ОграничениеДоступаНаУровнеЗаписейИспользуется И ("#Параметр(18)" = "Условие" Или "#Параметр(18)" = "") #Тогда + // Когда имя вида доступа "Условие" (или ""), тогда вместо имени поля задано условие. + ( #Параметр(19) ) +#ИначеЕсли "#Параметр(18)" = "ПравоЧтения" Или "#Параметр(18)" = "ПравоИзменения" #Тогда + #Параметр(19) <> НЕОПРЕДЕЛЕНО + И ИСТИНА В + ( // Проверка права пользователя на таблицу Значения, установленного в поле. + ВЫБРАТЬ ПЕРВЫЕ 1 ИСТИНА + ИЗ РегистрСведений.ТаблицыГруппДоступа КАК ТаблицыГруппДоступаПроверкаПрава + ГДЕ + ТаблицыГруппДоступаПроверкаПрава.ГруппаДоступа = ГруппыДоступа.Ссылка + И ТИПЗНАЧЕНИЯ(ТаблицыГруппДоступаПроверкаПрава.ТипТаблицы) = ТИПЗНАЧЕНИЯ(#Параметр(19)) + #Если Не "#Параметр(18)" = "ПравоЧтения" #Тогда + И ТаблицыГруппДоступаПроверкаПрава.ПравоИзменение + #КонецЕсли + ) +#ИначеЕсли "#Параметр(18)" = "ПравоЧтенияПоИдентификатору" Или "#Параметр(18)" = "ПравоИзмененияПоИдентификатору" #Тогда + ИСТИНА В + ( // Проверка права пользователя на таблицу, идентификатор которой указан в Значении, установленном в поле. + ВЫБРАТЬ ПЕРВЫЕ 1 ИСТИНА + ИЗ РегистрСведений.ТаблицыГруппДоступа КАК ТаблицыГруппДоступаПроверкаПрава + ГДЕ + ТаблицыГруппДоступаПроверкаПрава.ГруппаДоступа = ГруппыДоступа.Ссылка + И ТаблицыГруппДоступаПроверкаПрава.Таблица = #Параметр(19) + #Если Не "#Параметр(18)" = "ПравоЧтенияПоИдентификатору" #Тогда + И ТаблицыГруппДоступаПроверкаПрава.ПравоИзменение + #КонецЕсли + ) +#ИначеЕсли Не &ОграничениеДоступаНаУровнеЗаписейИспользуется #Тогда + ИСТИНА // Группа параметров отключена. +#ИначеЕсли "#Параметр(18)" = "НастройкиПрав" #Тогда + + ( + ИСТИНА В // Проверка, что пользователю или какой-нибудь группе пользователя право разрешено + ( + ВЫБРАТЬ ПЕРВЫЕ 1 ИСТИНА + ИЗ РегистрСведений.НастройкиПравОбъектов КАК НастройкиПрав + ВНУТРЕННЕЕ СОЕДИНЕНИЕ РегистрСведений.НаследованиеНастроекПравОбъектов КАК НаследованиеНастроек + ПО + НаследованиеНастроек.Объект = #Параметр(19) + И НастройкиПрав.Объект = НаследованиеНастроек.Родитель + #Если #ИмяТекущегоПраваДоступа = "Чтение" #Тогда + И НаследованиеНастроек.УровеньИспользования < НастройкиПрав.УровеньРазрешенияЧтения + #Иначе + #Если СтрСодержит(&ТаблицыСОтдельнымиНастройкамиПрав, "|#Параметр(1);") #Тогда + И НастройкиПрав.Таблица = СвойстваТекущейТаблицы.Ссылка + #Иначе + И НастройкиПрав.Таблица = ЗНАЧЕНИЕ(Справочник.ИдентификаторыОбъектовМетаданных.ПустаяСсылка) + #КонецЕсли + И НаследованиеНастроек.УровеньИспользования < НастройкиПрав.УровеньРазрешенияИзменения + #КонецЕсли + ВНУТРЕННЕЕ СОЕДИНЕНИЕ РегистрСведений.СоставыГруппПользователей КАК СоставыГруппПользователей + ПО + СоставыГруппПользователей.Пользователь = &АвторизованныйПользователь + И СоставыГруппПользователей.ГруппаПользователей = НастройкиПрав.Пользователь + ) + И НЕ ЛОЖЬ В // Проверка, что пользователю или какой-нибудь группе пользователя право запрещено. + ( + ВЫБРАТЬ ПЕРВЫЕ 1 ЛОЖЬ + ИЗ РегистрСведений.НастройкиПравОбъектов КАК НастройкиПрав + ВНУТРЕННЕЕ СОЕДИНЕНИЕ РегистрСведений.НаследованиеНастроекПравОбъектов КАК НаследованиеНастроек + ПО + НаследованиеНастроек.Объект = #Параметр(19) + И НастройкиПрав.Объект = НаследованиеНастроек.Родитель + #Если #ИмяТекущегоПраваДоступа = "Чтение" #Тогда + И НаследованиеНастроек.УровеньИспользования < НастройкиПрав.УровеньЗапрещенияЧтения + #Иначе + #Если СтрСодержит(&ТаблицыСОтдельнымиНастройкамиПрав, "|#Параметр(1);") #Тогда + И НастройкиПрав.Таблица = СвойстваТекущейТаблицы.Ссылка + #Иначе + И НастройкиПрав.Таблица = ЗНАЧЕНИЕ(Справочник.ИдентификаторыОбъектовМетаданных.ПустаяСсылка) + #КонецЕсли + И НаследованиеНастроек.УровеньИспользования < НастройкиПрав.УровеньЗапрещенияИзменения + #КонецЕсли + ВНУТРЕННЕЕ СОЕДИНЕНИЕ РегистрСведений.СоставыГруппПользователей КАК СоставыГруппПользователей + ПО + СоставыГруппПользователей.Пользователь = &АвторизованныйПользователь + И СоставыГруппПользователей.ГруппаПользователей = НастройкиПрав.Пользователь + ) + ) +#ИначеЕсли Не СтрСодержит(&ВсеВидыДоступаКромеСпециальных, ",#Параметр(18),") #Тогда + // Когда параметр задан неверно, вставляется строка, чтобы вызвать ошибку сборки ограничения доступа. + #Если СтрСодержит("#Параметр(18)", ",") #Тогда + НеверныйВидДоступа: "#Параметр(18)" - "Список имен видов доступа не найден" + #Иначе + НеверныйВидДоступа: "#Параметр(18)" - "Имя вида доступа не найдено" + #КонецЕсли +#ИначеЕсли &ВидыДоступаСОтключеннымИспользованием <> "Все" + И Не СтрСодержит(&ВидыДоступаСОтключеннымИспользованием, ",#Параметр(18),") #Тогда + + ( + ЕСТЬNULL(#Параметр(19), НЕОПРЕДЕЛЕНО) <> НЕОПРЕДЕЛЕНО + И + #Если (Не СтрСодержит(&ВидыДоступаСОтключеннымИспользованием, ",Пользователи,") И СтрСодержит(",#Параметр(18),", ",Пользователи,")) + Или (Не СтрСодержит(&ВидыДоступаСОтключеннымИспользованием, ",ВнешниеПользователи,") И СтрСодержит(",#Параметр(18),", ",ВнешниеПользователи,")) #Тогда + НЕ + ( + НЕ ИСТИНА В + ( + ВЫБРАТЬ ПЕРВЫЕ 1 ИСТИНА + ИЗ РегистрСведений.ГруппыЗначенийДоступа КАК ГруппыЗначенийДоступа + ГДЕ + ГруппыЗначенийДоступа.ЗначениеДоступа = #Параметр(19) + И ГруппыЗначенийДоступа.ГруппаЗначенийДоступа = &АвторизованныйПользователь + ) + И НЕ + #Иначе + ( + #КонецЕсли + ВЫБОР + КОГДА ИСТИНА В + ( + #Если СтрСодержит(&ВидыДоступаБезГруппДляЗначенияДоступа, ",#Параметр(18),") #Тогда + ВЫБРАТЬ ПЕРВЫЕ 1 ИСТИНА + ИЗ РегистрСведений.ЗначенияГруппДоступа КАК Значения + ГДЕ + Значения.ГруппаДоступа = ГруппыДоступа.Ссылка + И Значения.ЗначениеДоступа = #Параметр(19) + #ИначеЕсли "#Параметр(19)" = "Т.Ссылка" + И "#Параметр(18)" <> "Пользователи" + И "#Параметр(18)" <> "ВнешниеПользователи" #Тогда + #Если СтрСодержит("#Параметр(18)", ",") #Тогда + // Когда параметр задан неверно, вставляется строка, чтобы вызвать ошибку сборки ограничения доступа. + НеверныйВидДоступа: "#Параметр(18)" - "При проверке таблицы значения доступа можно указывать только один вид доступа" + #ИначеЕсли СтрСодержит(&ВидыДоступаСОднойГруппойДляЗначенияДоступа, ",#Параметр(18),") #Тогда + ВЫБРАТЬ ПЕРВЫЕ 1 ИСТИНА + ИЗ РегистрСведений.ЗначенияГруппДоступа КАК Значения + ГДЕ + Значения.ГруппаДоступа = ГруппыДоступа.Ссылка + И Значения.ЗначениеДоступа = Т.ГруппаДоступа + #Иначе // Значения доступа, для которых можно указать несколько групп значений доступа. + ВЫБРАТЬ ПЕРВЫЕ 1 ИСТИНА + ИЗ РегистрСведений.ЗначенияГруппДоступа КАК Значения + ВНУТРЕННЕЕ СОЕДИНЕНИЕ #Параметр(1).ГруппыДоступа КАК ГруппыЗначений + ПО + Значения.ГруппаДоступа = ГруппыДоступа.Ссылка + И Значения.ЗначениеДоступа = ГруппыЗначений.ГруппаДоступа + И ГруппыЗначений.Ссылка = #Параметр(19) + #КонецЕсли + #Иначе + ВЫБРАТЬ ПЕРВЫЕ 1 ИСТИНА + ИЗ РегистрСведений.ЗначенияГруппДоступа КАК Значения + ВНУТРЕННЕЕ СОЕДИНЕНИЕ РегистрСведений.ГруппыЗначенийДоступа КАК ГруппыЗначений + ПО + Значения.ГруппаДоступа = ГруппыДоступа.Ссылка + И Значения.ЗначениеДоступа = ГруппыЗначений.ГруппаЗначенийДоступа + И ГруппыЗначений.ЗначениеДоступа = #Параметр(19) + #КонецЕсли + ) + ТОГДА ИСТИНА + ИНАЧЕ ЛОЖЬ + КОНЕЦ + = + ВЫБОР + КОГДА ИСТИНА В + ( + ВЫБРАТЬ ПЕРВЫЕ 1 ИСТИНА + ИЗ РегистрСведений.ЗначенияГруппДоступаПоУмолчанию КАК ЗначенияПоУмолчанию + ГДЕ + ЗначенияПоУмолчанию.ГруппаДоступа = ГруппыДоступа.Ссылка + И ТИПЗНАЧЕНИЯ(ЗначенияПоУмолчанию.ТипЗначенийДоступа) = ТИПЗНАЧЕНИЯ(#Параметр(19)) + И ЗначенияПоУмолчанию.ВсеРазрешены = ЛОЖЬ + ) + ТОГДА ИСТИНА + ИНАЧЕ ЛОЖЬ + КОНЕЦ + ) + ) +#Иначе + ЕСТЬNULL(#Параметр(19), НЕОПРЕДЕЛЕНО) <> НЕОПРЕДЕЛЕНО +#КонецЕсли + + #Параметр(20) // [)[)][)]...] [ИЛИ|И] [([(][(]...] оператор И/ИЛИ с/без скобок. + +//// Проверка значения поля группы параметров 6. +#Если "#Параметр(21)" = "" И "#Параметр(22)" = "" #Тогда + // Группа параметров не используется. +#ИначеЕсли &ОграничениеДоступаНаУровнеЗаписейИспользуется И ("#Параметр(21)" = "Условие" Или "#Параметр(21)" = "") #Тогда + // Когда имя вида доступа "Условие" (или ""), тогда вместо имени поля задано условие. + ( #Параметр(22) ) +#ИначеЕсли "#Параметр(21)" = "ПравоЧтения" Или "#Параметр(21)" = "ПравоИзменения" #Тогда + #Параметр(22) <> НЕОПРЕДЕЛЕНО + И ИСТИНА В + ( // Проверка права пользователя на таблицу Значения, установленного в поле. + ВЫБРАТЬ ПЕРВЫЕ 1 ИСТИНА + ИЗ РегистрСведений.ТаблицыГруппДоступа КАК ТаблицыГруппДоступаПроверкаПрава + ГДЕ + ТаблицыГруппДоступаПроверкаПрава.ГруппаДоступа = ГруппыДоступа.Ссылка + И ТИПЗНАЧЕНИЯ(ТаблицыГруппДоступаПроверкаПрава.ТипТаблицы) = ТИПЗНАЧЕНИЯ(#Параметр(22)) + #Если Не "#Параметр(21)" = "ПравоЧтения" #Тогда + И ТаблицыГруппДоступаПроверкаПрава.ПравоИзменение + #КонецЕсли + ) +#ИначеЕсли "#Параметр(21)" = "ПравоЧтенияПоИдентификатору" Или "#Параметр(21)" = "ПравоИзмененияПоИдентификатору" #Тогда + ИСТИНА В + ( // Проверка права пользователя на таблицу, идентификатор которой указан в Значении, установленном в поле. + ВЫБРАТЬ ПЕРВЫЕ 1 ИСТИНА + ИЗ РегистрСведений.ТаблицыГруппДоступа КАК ТаблицыГруппДоступаПроверкаПрава + ГДЕ + ТаблицыГруппДоступаПроверкаПрава.ГруппаДоступа = ГруппыДоступа.Ссылка + И ТаблицыГруппДоступаПроверкаПрава.Таблица = #Параметр(22) + #Если Не "#Параметр(21)" = "ПравоЧтенияПоИдентификатору" #Тогда + И ТаблицыГруппДоступаПроверкаПрава.ПравоИзменение + #КонецЕсли + ) +#ИначеЕсли Не &ОграничениеДоступаНаУровнеЗаписейИспользуется #Тогда + ИСТИНА // Группа параметров отключена. +#ИначеЕсли "#Параметр(21)" = "НастройкиПрав" #Тогда + + ( + ИСТИНА В // Проверка, что пользователю или какой-нибудь группе пользователя право разрешено + ( + ВЫБРАТЬ ПЕРВЫЕ 1 ИСТИНА + ИЗ РегистрСведений.НастройкиПравОбъектов КАК НастройкиПрав + ВНУТРЕННЕЕ СОЕДИНЕНИЕ РегистрСведений.НаследованиеНастроекПравОбъектов КАК НаследованиеНастроек + ПО + НаследованиеНастроек.Объект = #Параметр(22) + И НастройкиПрав.Объект = НаследованиеНастроек.Родитель + #Если #ИмяТекущегоПраваДоступа = "Чтение" #Тогда + И НаследованиеНастроек.УровеньИспользования < НастройкиПрав.УровеньРазрешенияЧтения + #Иначе + #Если СтрСодержит(&ТаблицыСОтдельнымиНастройкамиПрав, "|#Параметр(1);") #Тогда + И НастройкиПрав.Таблица = СвойстваТекущейТаблицы.Ссылка + #Иначе + И НастройкиПрав.Таблица = ЗНАЧЕНИЕ(Справочник.ИдентификаторыОбъектовМетаданных.ПустаяСсылка) + #КонецЕсли + И НаследованиеНастроек.УровеньИспользования < НастройкиПрав.УровеньРазрешенияИзменения + #КонецЕсли + ВНУТРЕННЕЕ СОЕДИНЕНИЕ РегистрСведений.СоставыГруппПользователей КАК СоставыГруппПользователей + ПО + СоставыГруппПользователей.Пользователь = &АвторизованныйПользователь + И СоставыГруппПользователей.ГруппаПользователей = НастройкиПрав.Пользователь + ) + И НЕ ЛОЖЬ В // Проверка, что пользователю или какой-нибудь группе пользователя право запрещено. + ( + ВЫБРАТЬ ПЕРВЫЕ 1 ЛОЖЬ + ИЗ РегистрСведений.НастройкиПравОбъектов КАК НастройкиПрав + ВНУТРЕННЕЕ СОЕДИНЕНИЕ РегистрСведений.НаследованиеНастроекПравОбъектов КАК НаследованиеНастроек + ПО + НаследованиеНастроек.Объект = #Параметр(22) + И НастройкиПрав.Объект = НаследованиеНастроек.Родитель + #Если #ИмяТекущегоПраваДоступа = "Чтение" #Тогда + И НаследованиеНастроек.УровеньИспользования < НастройкиПрав.УровеньЗапрещенияЧтения + #Иначе + #Если СтрСодержит(&ТаблицыСОтдельнымиНастройкамиПрав, "|#Параметр(1);") #Тогда + И НастройкиПрав.Таблица = СвойстваТекущейТаблицы.Ссылка + #Иначе + И НастройкиПрав.Таблица = ЗНАЧЕНИЕ(Справочник.ИдентификаторыОбъектовМетаданных.ПустаяСсылка) + #КонецЕсли + И НаследованиеНастроек.УровеньИспользования < НастройкиПрав.УровеньЗапрещенияИзменения + #КонецЕсли + ВНУТРЕННЕЕ СОЕДИНЕНИЕ РегистрСведений.СоставыГруппПользователей КАК СоставыГруппПользователей + ПО + СоставыГруппПользователей.Пользователь = &АвторизованныйПользователь + И СоставыГруппПользователей.ГруппаПользователей = НастройкиПрав.Пользователь + ) + ) +#ИначеЕсли Не СтрСодержит(&ВсеВидыДоступаКромеСпециальных, ",#Параметр(21),") #Тогда + // Когда параметр задан неверно, вставляется строка, чтобы вызвать ошибку сборки ограничения доступа. + #Если СтрСодержит("#Параметр(21)", ",") #Тогда + НеверныйВидДоступа: "#Параметр(21)" - "Список имен видов доступа не найден" + #Иначе + НеверныйВидДоступа: "#Параметр(21)" - "Имя вида доступа не найдено" + #КонецЕсли +#ИначеЕсли &ВидыДоступаСОтключеннымИспользованием <> "Все" + И Не СтрСодержит(&ВидыДоступаСОтключеннымИспользованием, ",#Параметр(21),") #Тогда + + ( + ЕСТЬNULL(#Параметр(22), НЕОПРЕДЕЛЕНО) <> НЕОПРЕДЕЛЕНО + И + #Если (Не СтрСодержит(&ВидыДоступаСОтключеннымИспользованием, ",Пользователи,") И СтрСодержит(",#Параметр(21),", ",Пользователи,")) + Или (Не СтрСодержит(&ВидыДоступаСОтключеннымИспользованием, ",ВнешниеПользователи,") И СтрСодержит(",#Параметр(21),", ",ВнешниеПользователи,")) #Тогда + НЕ + ( + НЕ ИСТИНА В + ( + ВЫБРАТЬ ПЕРВЫЕ 1 ИСТИНА + ИЗ РегистрСведений.ГруппыЗначенийДоступа КАК ГруппыЗначенийДоступа + ГДЕ + ГруппыЗначенийДоступа.ЗначениеДоступа = #Параметр(22) + И ГруппыЗначенийДоступа.ГруппаЗначенийДоступа = &АвторизованныйПользователь + ) + И НЕ + #Иначе + ( + #КонецЕсли + ВЫБОР + КОГДА ИСТИНА В + ( + #Если СтрСодержит(&ВидыДоступаБезГруппДляЗначенияДоступа, ",#Параметр(21),") #Тогда + ВЫБРАТЬ ПЕРВЫЕ 1 ИСТИНА + ИЗ РегистрСведений.ЗначенияГруппДоступа КАК Значения + ГДЕ + Значения.ГруппаДоступа = ГруппыДоступа.Ссылка + И Значения.ЗначениеДоступа = #Параметр(22) + #ИначеЕсли "#Параметр(22)" = "Т.Ссылка" + И "#Параметр(21)" <> "Пользователи" + И "#Параметр(21)" <> "ВнешниеПользователи" #Тогда + #Если СтрСодержит("#Параметр(21)", ",") #Тогда + // Когда параметр задан неверно, вставляется строка, чтобы вызвать ошибку сборки ограничения доступа. + НеверныйВидДоступа: "#Параметр(21)" - "При проверке таблицы значения доступа можно указывать только один вид доступа" + #ИначеЕсли СтрСодержит(&ВидыДоступаСОднойГруппойДляЗначенияДоступа, ",#Параметр(21),") #Тогда + ВЫБРАТЬ ПЕРВЫЕ 1 ИСТИНА + ИЗ РегистрСведений.ЗначенияГруппДоступа КАК Значения + ГДЕ + Значения.ГруппаДоступа = ГруппыДоступа.Ссылка + И Значения.ЗначениеДоступа = Т.ГруппаДоступа + #Иначе // Значения доступа, для которых можно указать несколько групп значений доступа. + ВЫБРАТЬ ПЕРВЫЕ 1 ИСТИНА + ИЗ РегистрСведений.ЗначенияГруппДоступа КАК Значения + ВНУТРЕННЕЕ СОЕДИНЕНИЕ #Параметр(1).ГруппыДоступа КАК ГруппыЗначений + ПО + Значения.ГруппаДоступа = ГруппыДоступа.Ссылка + И Значения.ЗначениеДоступа = ГруппыЗначений.ГруппаДоступа + И ГруппыЗначений.Ссылка = #Параметр(22) + #КонецЕсли + #Иначе + ВЫБРАТЬ ПЕРВЫЕ 1 ИСТИНА + ИЗ РегистрСведений.ЗначенияГруппДоступа КАК Значения + ВНУТРЕННЕЕ СОЕДИНЕНИЕ РегистрСведений.ГруппыЗначенийДоступа КАК ГруппыЗначений + ПО + Значения.ГруппаДоступа = ГруппыДоступа.Ссылка + И Значения.ЗначениеДоступа = ГруппыЗначений.ГруппаЗначенийДоступа + И ГруппыЗначений.ЗначениеДоступа = #Параметр(22) + #КонецЕсли + ) + ТОГДА ИСТИНА + ИНАЧЕ ЛОЖЬ + КОНЕЦ + = + ВЫБОР + КОГДА ИСТИНА В + ( + ВЫБРАТЬ ПЕРВЫЕ 1 ИСТИНА + ИЗ РегистрСведений.ЗначенияГруппДоступаПоУмолчанию КАК ЗначенияПоУмолчанию + ГДЕ + ЗначенияПоУмолчанию.ГруппаДоступа = ГруппыДоступа.Ссылка + И ТИПЗНАЧЕНИЯ(ЗначенияПоУмолчанию.ТипЗначенийДоступа) = ТИПЗНАЧЕНИЯ(#Параметр(22)) + И ЗначенияПоУмолчанию.ВсеРазрешены = ЛОЖЬ + ) + ТОГДА ИСТИНА + ИНАЧЕ ЛОЖЬ + КОНЕЦ + ) + ) +#Иначе + ЕСТЬNULL(#Параметр(22), НЕОПРЕДЕЛЕНО) <> НЕОПРЕДЕЛЕНО +#КонецЕсли + + #Параметр(23) // [)[)][)]...] [ИЛИ|И] [([(][(]...] оператор И/ИЛИ с/без скобок. + +//// Проверка значения поля группы параметров 7. +#Если "#Параметр(24)" = "" И "#Параметр(25)" = "" #Тогда + // Группа параметров не используется. +#ИначеЕсли &ОграничениеДоступаНаУровнеЗаписейИспользуется И ("#Параметр(24)" = "Условие" Или "#Параметр(24)" = "") #Тогда + // Когда имя вида доступа "Условие" (или ""), тогда вместо имени поля задано условие. + ( #Параметр(25) ) +#ИначеЕсли "#Параметр(24)" = "ПравоЧтения" Или "#Параметр(24)" = "ПравоИзменения" #Тогда + #Параметр(25) <> НЕОПРЕДЕЛЕНО + И ИСТИНА В + ( // Проверка права пользователя на таблицу Значения, установленного в поле. + ВЫБРАТЬ ПЕРВЫЕ 1 ИСТИНА + ИЗ РегистрСведений.ТаблицыГруппДоступа КАК ТаблицыГруппДоступаПроверкаПрава + ГДЕ + ТаблицыГруппДоступаПроверкаПрава.ГруппаДоступа = ГруппыДоступа.Ссылка + И ТИПЗНАЧЕНИЯ(ТаблицыГруппДоступаПроверкаПрава.ТипТаблицы) = ТИПЗНАЧЕНИЯ(#Параметр(25)) + #Если Не "#Параметр(24)" = "ПравоЧтения" #Тогда + И ТаблицыГруппДоступаПроверкаПрава.ПравоИзменение + #КонецЕсли + ) +#ИначеЕсли "#Параметр(24)" = "ПравоЧтенияПоИдентификатору" Или "#Параметр(24)" = "ПравоИзмененияПоИдентификатору" #Тогда + ИСТИНА В + ( // Проверка права пользователя на таблицу, идентификатор которой указан в Значении, установленном в поле. + ВЫБРАТЬ ПЕРВЫЕ 1 ИСТИНА + ИЗ РегистрСведений.ТаблицыГруппДоступа КАК ТаблицыГруппДоступаПроверкаПрава + ГДЕ + ТаблицыГруппДоступаПроверкаПрава.ГруппаДоступа = ГруппыДоступа.Ссылка + И ТаблицыГруппДоступаПроверкаПрава.Таблица = #Параметр(25) + #Если Не "#Параметр(24)" = "ПравоЧтенияПоИдентификатору" #Тогда + И ТаблицыГруппДоступаПроверкаПрава.ПравоИзменение + #КонецЕсли + ) +#ИначеЕсли Не &ОграничениеДоступаНаУровнеЗаписейИспользуется #Тогда + ИСТИНА // Группа параметров отключена. +#ИначеЕсли "#Параметр(24)" = "НастройкиПрав" #Тогда + + ( + ИСТИНА В // Проверка, что пользователю или какой-нибудь группе пользователя право разрешено + ( + ВЫБРАТЬ ПЕРВЫЕ 1 ИСТИНА + ИЗ РегистрСведений.НастройкиПравОбъектов КАК НастройкиПрав + ВНУТРЕННЕЕ СОЕДИНЕНИЕ РегистрСведений.НаследованиеНастроекПравОбъектов КАК НаследованиеНастроек + ПО + НаследованиеНастроек.Объект = #Параметр(25) + И НастройкиПрав.Объект = НаследованиеНастроек.Родитель + #Если #ИмяТекущегоПраваДоступа = "Чтение" #Тогда + И НаследованиеНастроек.УровеньИспользования < НастройкиПрав.УровеньРазрешенияЧтения + #Иначе + #Если СтрСодержит(&ТаблицыСОтдельнымиНастройкамиПрав, "|#Параметр(1);") #Тогда + И НастройкиПрав.Таблица = СвойстваТекущейТаблицы.Ссылка + #Иначе + И НастройкиПрав.Таблица = ЗНАЧЕНИЕ(Справочник.ИдентификаторыОбъектовМетаданных.ПустаяСсылка) + #КонецЕсли + И НаследованиеНастроек.УровеньИспользования < НастройкиПрав.УровеньРазрешенияИзменения + #КонецЕсли + ВНУТРЕННЕЕ СОЕДИНЕНИЕ РегистрСведений.СоставыГруппПользователей КАК СоставыГруппПользователей + ПО + СоставыГруппПользователей.Пользователь = &АвторизованныйПользователь + И СоставыГруппПользователей.ГруппаПользователей = НастройкиПрав.Пользователь + ) + И НЕ ЛОЖЬ В // Проверка, что пользователю или какой-нибудь группе пользователя право запрещено. + ( + ВЫБРАТЬ ПЕРВЫЕ 1 ЛОЖЬ + ИЗ РегистрСведений.НастройкиПравОбъектов КАК НастройкиПрав + ВНУТРЕННЕЕ СОЕДИНЕНИЕ РегистрСведений.НаследованиеНастроекПравОбъектов КАК НаследованиеНастроек + ПО + НаследованиеНастроек.Объект = #Параметр(25) + И НастройкиПрав.Объект = НаследованиеНастроек.Родитель + #Если #ИмяТекущегоПраваДоступа = "Чтение" #Тогда + И НаследованиеНастроек.УровеньИспользования < НастройкиПрав.УровеньЗапрещенияЧтения + #Иначе + #Если СтрСодержит(&ТаблицыСОтдельнымиНастройкамиПрав, "|#Параметр(1);") #Тогда + И НастройкиПрав.Таблица = СвойстваТекущейТаблицы.Ссылка + #Иначе + И НастройкиПрав.Таблица = ЗНАЧЕНИЕ(Справочник.ИдентификаторыОбъектовМетаданных.ПустаяСсылка) + #КонецЕсли + И НаследованиеНастроек.УровеньИспользования < НастройкиПрав.УровеньЗапрещенияИзменения + #КонецЕсли + ВНУТРЕННЕЕ СОЕДИНЕНИЕ РегистрСведений.СоставыГруппПользователей КАК СоставыГруппПользователей + ПО + СоставыГруппПользователей.Пользователь = &АвторизованныйПользователь + И СоставыГруппПользователей.ГруппаПользователей = НастройкиПрав.Пользователь + ) + ) +#ИначеЕсли Не СтрСодержит(&ВсеВидыДоступаКромеСпециальных, ",#Параметр(24),") #Тогда + // Когда параметр задан неверно, вставляется строка, чтобы вызвать ошибку сборки ограничения доступа. + #Если СтрСодержит("#Параметр(24)", ",") #Тогда + НеверныйВидДоступа: "#Параметр(24)" - "Список имен видов доступа не найден" + #Иначе + НеверныйВидДоступа: "#Параметр(24)" - "Имя вида доступа не найдено" + #КонецЕсли +#ИначеЕсли &ВидыДоступаСОтключеннымИспользованием <> "Все" + И Не СтрСодержит(&ВидыДоступаСОтключеннымИспользованием, ",#Параметр(24),") #Тогда + + ( + ЕСТЬNULL(#Параметр(25), НЕОПРЕДЕЛЕНО) <> НЕОПРЕДЕЛЕНО + И + #Если (Не СтрСодержит(&ВидыДоступаСОтключеннымИспользованием, ",Пользователи,") И СтрСодержит(",#Параметр(24),", ",Пользователи,")) + Или (Не СтрСодержит(&ВидыДоступаСОтключеннымИспользованием, ",ВнешниеПользователи,") И СтрСодержит(",#Параметр(24),", ",ВнешниеПользователи,")) #Тогда + НЕ + ( + НЕ ИСТИНА В + ( + ВЫБРАТЬ ПЕРВЫЕ 1 ИСТИНА + ИЗ РегистрСведений.ГруппыЗначенийДоступа КАК ГруппыЗначенийДоступа + ГДЕ + ГруппыЗначенийДоступа.ЗначениеДоступа = #Параметр(25) + И ГруппыЗначенийДоступа.ГруппаЗначенийДоступа = &АвторизованныйПользователь + ) + И НЕ + #Иначе + ( + #КонецЕсли + ВЫБОР + КОГДА ИСТИНА В + ( + #Если СтрСодержит(&ВидыДоступаБезГруппДляЗначенияДоступа, ",#Параметр(24),") #Тогда + ВЫБРАТЬ ПЕРВЫЕ 1 ИСТИНА + ИЗ РегистрСведений.ЗначенияГруппДоступа КАК Значения + ГДЕ + Значения.ГруппаДоступа = ГруппыДоступа.Ссылка + И Значения.ЗначениеДоступа = #Параметр(25) + #ИначеЕсли "#Параметр(25)" = "Т.Ссылка" + И "#Параметр(24)" <> "Пользователи" + И "#Параметр(24)" <> "ВнешниеПользователи" #Тогда + #Если СтрСодержит("#Параметр(24)", ",") #Тогда + // Когда параметр задан неверно, вставляется строка, чтобы вызвать ошибку сборки ограничения доступа. + НеверныйВидДоступа: "#Параметр(24)" - "При проверке таблицы значения доступа можно указывать только один вид доступа" + #ИначеЕсли СтрСодержит(&ВидыДоступаСОднойГруппойДляЗначенияДоступа, ",#Параметр(24),") #Тогда + ВЫБРАТЬ ПЕРВЫЕ 1 ИСТИНА + ИЗ РегистрСведений.ЗначенияГруппДоступа КАК Значения + ГДЕ + Значения.ГруппаДоступа = ГруппыДоступа.Ссылка + И Значения.ЗначениеДоступа = Т.ГруппаДоступа + #Иначе // Значения доступа, для которых можно указать несколько групп значений доступа. + ВЫБРАТЬ ПЕРВЫЕ 1 ИСТИНА + ИЗ РегистрСведений.ЗначенияГруппДоступа КАК Значения + ВНУТРЕННЕЕ СОЕДИНЕНИЕ #Параметр(1).ГруппыДоступа КАК ГруппыЗначений + ПО + Значения.ГруппаДоступа = ГруппыДоступа.Ссылка + И Значения.ЗначениеДоступа = ГруппыЗначений.ГруппаДоступа + И ГруппыЗначений.Ссылка = #Параметр(25) + #КонецЕсли + #Иначе + ВЫБРАТЬ ПЕРВЫЕ 1 ИСТИНА + ИЗ РегистрСведений.ЗначенияГруппДоступа КАК Значения + ВНУТРЕННЕЕ СОЕДИНЕНИЕ РегистрСведений.ГруппыЗначенийДоступа КАК ГруппыЗначений + ПО + Значения.ГруппаДоступа = ГруппыДоступа.Ссылка + И Значения.ЗначениеДоступа = ГруппыЗначений.ГруппаЗначенийДоступа + И ГруппыЗначений.ЗначениеДоступа = #Параметр(25) + #КонецЕсли + ) + ТОГДА ИСТИНА + ИНАЧЕ ЛОЖЬ + КОНЕЦ + = + ВЫБОР + КОГДА ИСТИНА В + ( + ВЫБРАТЬ ПЕРВЫЕ 1 ИСТИНА + ИЗ РегистрСведений.ЗначенияГруппДоступаПоУмолчанию КАК ЗначенияПоУмолчанию + ГДЕ + ЗначенияПоУмолчанию.ГруппаДоступа = ГруппыДоступа.Ссылка + И ТИПЗНАЧЕНИЯ(ЗначенияПоУмолчанию.ТипЗначенийДоступа) = ТИПЗНАЧЕНИЯ(#Параметр(25)) + И ЗначенияПоУмолчанию.ВсеРазрешены = ЛОЖЬ + ) + ТОГДА ИСТИНА + ИНАЧЕ ЛОЖЬ + КОНЕЦ + ) + ) +#Иначе + ЕСТЬNULL(#Параметр(25), НЕОПРЕДЕЛЕНО) <> НЕОПРЕДЕЛЕНО +#КонецЕсли + + #Параметр(26) // [)[)][)]...] [ИЛИ|И] [([(][(]...] оператор И/ИЛИ с/без скобок. + +//// Проверка значения поля группы параметров 8. +#Если "#Параметр(27)" = "" И "#Параметр(28)" = "" #Тогда + // Группа параметров не используется. +#ИначеЕсли &ОграничениеДоступаНаУровнеЗаписейИспользуется И ("#Параметр(27)" = "Условие" Или "#Параметр(27)" = "") #Тогда + // Когда имя вида доступа "Условие" (или ""), тогда вместо имени поля задано условие. + ( #Параметр(28) ) +#ИначеЕсли "#Параметр(27)" = "ПравоЧтения" Или "#Параметр(27)" = "ПравоИзменения" #Тогда + #Параметр(28) <> НЕОПРЕДЕЛЕНО + И ИСТИНА В + ( // Проверка права пользователя на таблицу Значения, установленного в поле. + ВЫБРАТЬ ПЕРВЫЕ 1 ИСТИНА + ИЗ РегистрСведений.ТаблицыГруппДоступа КАК ТаблицыГруппДоступаПроверкаПрава + ГДЕ + ТаблицыГруппДоступаПроверкаПрава.ГруппаДоступа = ГруппыДоступа.Ссылка + И ТИПЗНАЧЕНИЯ(ТаблицыГруппДоступаПроверкаПрава.ТипТаблицы) = ТИПЗНАЧЕНИЯ(#Параметр(28)) + #Если Не "#Параметр(27)" = "ПравоЧтения" #Тогда + И ТаблицыГруппДоступаПроверкаПрава.ПравоИзменение + #КонецЕсли + ) +#ИначеЕсли "#Параметр(27)" = "ПравоЧтенияПоИдентификатору" Или "#Параметр(27)" = "ПравоИзмененияПоИдентификатору" #Тогда + ИСТИНА В + ( // Проверка права пользователя на таблицу, идентификатор которой указан в Значении, установленном в поле. + ВЫБРАТЬ ПЕРВЫЕ 1 ИСТИНА + ИЗ РегистрСведений.ТаблицыГруппДоступа КАК ТаблицыГруппДоступаПроверкаПрава + ГДЕ + ТаблицыГруппДоступаПроверкаПрава.ГруппаДоступа = ГруппыДоступа.Ссылка + И ТаблицыГруппДоступаПроверкаПрава.Таблица = #Параметр(28) + #Если Не "#Параметр(27)" = "ПравоЧтенияПоИдентификатору" #Тогда + И ТаблицыГруппДоступаПроверкаПрава.ПравоИзменение + #КонецЕсли + ) +#ИначеЕсли Не &ОграничениеДоступаНаУровнеЗаписейИспользуется #Тогда + ИСТИНА // Группа параметров отключена. +#ИначеЕсли "#Параметр(27)" = "НастройкиПрав" #Тогда + + ( + ИСТИНА В // Проверка, что пользователю или какой-нибудь группе пользователя право разрешено + ( + ВЫБРАТЬ ПЕРВЫЕ 1 ИСТИНА + ИЗ РегистрСведений.НастройкиПравОбъектов КАК НастройкиПрав + ВНУТРЕННЕЕ СОЕДИНЕНИЕ РегистрСведений.НаследованиеНастроекПравОбъектов КАК НаследованиеНастроек + ПО + НаследованиеНастроек.Объект = #Параметр(28) + И НастройкиПрав.Объект = НаследованиеНастроек.Родитель + #Если #ИмяТекущегоПраваДоступа = "Чтение" #Тогда + И НаследованиеНастроек.УровеньИспользования < НастройкиПрав.УровеньРазрешенияЧтения + #Иначе + #Если СтрСодержит(&ТаблицыСОтдельнымиНастройкамиПрав, "|#Параметр(1);") #Тогда + И НастройкиПрав.Таблица = СвойстваТекущейТаблицы.Ссылка + #Иначе + И НастройкиПрав.Таблица = ЗНАЧЕНИЕ(Справочник.ИдентификаторыОбъектовМетаданных.ПустаяСсылка) + #КонецЕсли + И НаследованиеНастроек.УровеньИспользования < НастройкиПрав.УровеньРазрешенияИзменения + #КонецЕсли + ВНУТРЕННЕЕ СОЕДИНЕНИЕ РегистрСведений.СоставыГруппПользователей КАК СоставыГруппПользователей + ПО + СоставыГруппПользователей.Пользователь = &АвторизованныйПользователь + И СоставыГруппПользователей.ГруппаПользователей = НастройкиПрав.Пользователь + ) + И НЕ ЛОЖЬ В // Проверка, что пользователю или какой-нибудь группе пользователя право запрещено. + ( + ВЫБРАТЬ ПЕРВЫЕ 1 ЛОЖЬ + ИЗ РегистрСведений.НастройкиПравОбъектов КАК НастройкиПрав + ВНУТРЕННЕЕ СОЕДИНЕНИЕ РегистрСведений.НаследованиеНастроекПравОбъектов КАК НаследованиеНастроек + ПО + НаследованиеНастроек.Объект = #Параметр(28) + И НастройкиПрав.Объект = НаследованиеНастроек.Родитель + #Если #ИмяТекущегоПраваДоступа = "Чтение" #Тогда + И НаследованиеНастроек.УровеньИспользования < НастройкиПрав.УровеньЗапрещенияЧтения + #Иначе + #Если СтрСодержит(&ТаблицыСОтдельнымиНастройкамиПрав, "|#Параметр(1);") #Тогда + И НастройкиПрав.Таблица = СвойстваТекущейТаблицы.Ссылка + #Иначе + И НастройкиПрав.Таблица = ЗНАЧЕНИЕ(Справочник.ИдентификаторыОбъектовМетаданных.ПустаяСсылка) + #КонецЕсли + И НаследованиеНастроек.УровеньИспользования < НастройкиПрав.УровеньЗапрещенияИзменения + #КонецЕсли + ВНУТРЕННЕЕ СОЕДИНЕНИЕ РегистрСведений.СоставыГруппПользователей КАК СоставыГруппПользователей + ПО + СоставыГруппПользователей.Пользователь = &АвторизованныйПользователь + И СоставыГруппПользователей.ГруппаПользователей = НастройкиПрав.Пользователь + ) + ) +#ИначеЕсли Не СтрСодержит(&ВсеВидыДоступаКромеСпециальных, ",#Параметр(27),") #Тогда + // Когда параметр задан неверно, вставляется строка, чтобы вызвать ошибку сборки ограничения доступа. + #Если СтрСодержит("#Параметр(27)", ",") #Тогда + НеверныйВидДоступа: "#Параметр(27)" - "Список имен видов доступа не найден" + #Иначе + НеверныйВидДоступа: "#Параметр(27)" - "Имя вида доступа не найдено" + #КонецЕсли +#ИначеЕсли &ВидыДоступаСОтключеннымИспользованием <> "Все" + И Не СтрСодержит(&ВидыДоступаСОтключеннымИспользованием, ",#Параметр(27),") #Тогда + + ( + ЕСТЬNULL(#Параметр(28), НЕОПРЕДЕЛЕНО) <> НЕОПРЕДЕЛЕНО + И + #Если (Не СтрСодержит(&ВидыДоступаСОтключеннымИспользованием, ",Пользователи,") И СтрСодержит(",#Параметр(27),", ",Пользователи,")) + Или (Не СтрСодержит(&ВидыДоступаСОтключеннымИспользованием, ",ВнешниеПользователи,") И СтрСодержит(",#Параметр(27),", ",ВнешниеПользователи,")) #Тогда + НЕ + ( + НЕ ИСТИНА В + ( + ВЫБРАТЬ ПЕРВЫЕ 1 ИСТИНА + ИЗ РегистрСведений.ГруппыЗначенийДоступа КАК ГруппыЗначенийДоступа + ГДЕ + ГруппыЗначенийДоступа.ЗначениеДоступа = #Параметр(28) + И ГруппыЗначенийДоступа.ГруппаЗначенийДоступа = &АвторизованныйПользователь + ) + И НЕ + #Иначе + ( + #КонецЕсли + ВЫБОР + КОГДА ИСТИНА В + ( + #Если СтрСодержит(&ВидыДоступаБезГруппДляЗначенияДоступа, ",#Параметр(27),") #Тогда + ВЫБРАТЬ ПЕРВЫЕ 1 ИСТИНА + ИЗ РегистрСведений.ЗначенияГруппДоступа КАК Значения + ГДЕ + Значения.ГруппаДоступа = ГруппыДоступа.Ссылка + И Значения.ЗначениеДоступа = #Параметр(28) + #ИначеЕсли "#Параметр(28)" = "Т.Ссылка" + И "#Параметр(27)" <> "Пользователи" + И "#Параметр(27)" <> "ВнешниеПользователи" #Тогда + #Если СтрСодержит("#Параметр(27)", ",") #Тогда + // Когда параметр задан неверно, вставляется строка, чтобы вызвать ошибку сборки ограничения доступа. + НеверныйВидДоступа: "#Параметр(27)" - "При проверке таблицы значения доступа можно указывать только один вид доступа" + #ИначеЕсли СтрСодержит(&ВидыДоступаСОднойГруппойДляЗначенияДоступа, ",#Параметр(27),") #Тогда + ВЫБРАТЬ ПЕРВЫЕ 1 ИСТИНА + ИЗ РегистрСведений.ЗначенияГруппДоступа КАК Значения + ГДЕ + Значения.ГруппаДоступа = ГруппыДоступа.Ссылка + И Значения.ЗначениеДоступа = Т.ГруппаДоступа + #Иначе // Значения доступа, для которых можно указать несколько групп значений доступа. + ВЫБРАТЬ ПЕРВЫЕ 1 ИСТИНА + ИЗ РегистрСведений.ЗначенияГруппДоступа КАК Значения + ВНУТРЕННЕЕ СОЕДИНЕНИЕ #Параметр(1).ГруппыДоступа КАК ГруппыЗначений + ПО + Значения.ГруппаДоступа = ГруппыДоступа.Ссылка + И Значения.ЗначениеДоступа = ГруппыЗначений.ГруппаДоступа + И ГруппыЗначений.Ссылка = #Параметр(28) + #КонецЕсли + #Иначе + ВЫБРАТЬ ПЕРВЫЕ 1 ИСТИНА + ИЗ РегистрСведений.ЗначенияГруппДоступа КАК Значения + ВНУТРЕННЕЕ СОЕДИНЕНИЕ РегистрСведений.ГруппыЗначенийДоступа КАК ГруппыЗначений + ПО + Значения.ГруппаДоступа = ГруппыДоступа.Ссылка + И Значения.ЗначениеДоступа = ГруппыЗначений.ГруппаЗначенийДоступа + И ГруппыЗначений.ЗначениеДоступа = #Параметр(28) + #КонецЕсли + ) + ТОГДА ИСТИНА + ИНАЧЕ ЛОЖЬ + КОНЕЦ + = + ВЫБОР + КОГДА ИСТИНА В + ( + ВЫБРАТЬ ПЕРВЫЕ 1 ИСТИНА + ИЗ РегистрСведений.ЗначенияГруппДоступаПоУмолчанию КАК ЗначенияПоУмолчанию + ГДЕ + ЗначенияПоУмолчанию.ГруппаДоступа = ГруппыДоступа.Ссылка + И ТИПЗНАЧЕНИЯ(ЗначенияПоУмолчанию.ТипЗначенийДоступа) = ТИПЗНАЧЕНИЯ(#Параметр(28)) + И ЗначенияПоУмолчанию.ВсеРазрешены = ЛОЖЬ + ) + ТОГДА ИСТИНА + ИНАЧЕ ЛОЖЬ + КОНЕЦ + ) + ) +#Иначе + ЕСТЬNULL(#Параметр(28), НЕОПРЕДЕЛЕНО) <> НЕОПРЕДЕЛЕНО +#КонецЕсли + + #Параметр(29) // [)[)][)]...] [ИЛИ|И] [([(][(]...] оператор И/ИЛИ с/без скобок. + +//// Проверка значения поля группы параметров 9. +#Если "#Параметр(30)" = "" И "#Параметр(31)" = "" #Тогда + // Группа параметров не используется. +#ИначеЕсли &ОграничениеДоступаНаУровнеЗаписейИспользуется И ("#Параметр(30)" = "Условие" Или "#Параметр(30)" = "") #Тогда + // Когда имя вида доступа "Условие" (или ""), тогда вместо имени поля задано условие. + ( #Параметр(31) ) +#ИначеЕсли "#Параметр(30)" = "ПравоЧтения" Или "#Параметр(30)" = "ПравоИзменения" #Тогда + #Параметр(31) <> НЕОПРЕДЕЛЕНО + И ИСТИНА В + ( // Проверка права пользователя на таблицу Значения, установленного в поле. + ВЫБРАТЬ ПЕРВЫЕ 1 ИСТИНА + ИЗ РегистрСведений.ТаблицыГруппДоступа КАК ТаблицыГруппДоступаПроверкаПрава + ГДЕ + ТаблицыГруппДоступаПроверкаПрава.ГруппаДоступа = ГруппыДоступа.Ссылка + И ТИПЗНАЧЕНИЯ(ТаблицыГруппДоступаПроверкаПрава.ТипТаблицы) = ТИПЗНАЧЕНИЯ(#Параметр(31)) + #Если Не "#Параметр(30)" = "ПравоЧтения" #Тогда + И ТаблицыГруппДоступаПроверкаПрава.ПравоИзменение + #КонецЕсли + ) +#ИначеЕсли "#Параметр(30)" = "ПравоЧтенияПоИдентификатору" Или "#Параметр(30)" = "ПравоИзмененияПоИдентификатору" #Тогда + ИСТИНА В + ( // Проверка права пользователя на таблицу, идентификатор которой указан в Значении, установленном в поле. + ВЫБРАТЬ ПЕРВЫЕ 1 ИСТИНА + ИЗ РегистрСведений.ТаблицыГруппДоступа КАК ТаблицыГруппДоступаПроверкаПрава + ГДЕ + ТаблицыГруппДоступаПроверкаПрава.ГруппаДоступа = ГруппыДоступа.Ссылка + И ТаблицыГруппДоступаПроверкаПрава.Таблица = #Параметр(31) + #Если Не "#Параметр(30)" = "ПравоЧтенияПоИдентификатору" #Тогда + И ТаблицыГруппДоступаПроверкаПрава.ПравоИзменение + #КонецЕсли + ) +#ИначеЕсли Не &ОграничениеДоступаНаУровнеЗаписейИспользуется #Тогда + ИСТИНА // Группа параметров отключена. +#ИначеЕсли "#Параметр(30)" = "НастройкиПрав" #Тогда + + ( + ИСТИНА В // Проверка, что пользователю или какой-нибудь группе пользователя право разрешено + ( + ВЫБРАТЬ ПЕРВЫЕ 1 ИСТИНА + ИЗ РегистрСведений.НастройкиПравОбъектов КАК НастройкиПрав + ВНУТРЕННЕЕ СОЕДИНЕНИЕ РегистрСведений.НаследованиеНастроекПравОбъектов КАК НаследованиеНастроек + ПО + НаследованиеНастроек.Объект = #Параметр(31) + И НастройкиПрав.Объект = НаследованиеНастроек.Родитель + #Если #ИмяТекущегоПраваДоступа = "Чтение" #Тогда + И НаследованиеНастроек.УровеньИспользования < НастройкиПрав.УровеньРазрешенияЧтения + #Иначе + #Если СтрСодержит(&ТаблицыСОтдельнымиНастройкамиПрав, "|#Параметр(1);") #Тогда + И НастройкиПрав.Таблица = СвойстваТекущейТаблицы.Ссылка + #Иначе + И НастройкиПрав.Таблица = ЗНАЧЕНИЕ(Справочник.ИдентификаторыОбъектовМетаданных.ПустаяСсылка) + #КонецЕсли + И НаследованиеНастроек.УровеньИспользования < НастройкиПрав.УровеньРазрешенияИзменения + #КонецЕсли + ВНУТРЕННЕЕ СОЕДИНЕНИЕ РегистрСведений.СоставыГруппПользователей КАК СоставыГруппПользователей + ПО + СоставыГруппПользователей.Пользователь = &АвторизованныйПользователь + И СоставыГруппПользователей.ГруппаПользователей = НастройкиПрав.Пользователь + ) + И НЕ ЛОЖЬ В // Проверка, что пользователю или какой-нибудь группе пользователя право запрещено. + ( + ВЫБРАТЬ ПЕРВЫЕ 1 ЛОЖЬ + ИЗ РегистрСведений.НастройкиПравОбъектов КАК НастройкиПрав + ВНУТРЕННЕЕ СОЕДИНЕНИЕ РегистрСведений.НаследованиеНастроекПравОбъектов КАК НаследованиеНастроек + ПО + НаследованиеНастроек.Объект = #Параметр(31) + И НастройкиПрав.Объект = НаследованиеНастроек.Родитель + #Если #ИмяТекущегоПраваДоступа = "Чтение" #Тогда + И НаследованиеНастроек.УровеньИспользования < НастройкиПрав.УровеньЗапрещенияЧтения + #Иначе + #Если СтрСодержит(&ТаблицыСОтдельнымиНастройкамиПрав, "|#Параметр(1);") #Тогда + И НастройкиПрав.Таблица = СвойстваТекущейТаблицы.Ссылка + #Иначе + И НастройкиПрав.Таблица = ЗНАЧЕНИЕ(Справочник.ИдентификаторыОбъектовМетаданных.ПустаяСсылка) + #КонецЕсли + И НаследованиеНастроек.УровеньИспользования < НастройкиПрав.УровеньЗапрещенияИзменения + #КонецЕсли + ВНУТРЕННЕЕ СОЕДИНЕНИЕ РегистрСведений.СоставыГруппПользователей КАК СоставыГруппПользователей + ПО + СоставыГруппПользователей.Пользователь = &АвторизованныйПользователь + И СоставыГруппПользователей.ГруппаПользователей = НастройкиПрав.Пользователь + ) + ) +#ИначеЕсли Не СтрСодержит(&ВсеВидыДоступаКромеСпециальных, ",#Параметр(30),") #Тогда + // Когда параметр задан неверно, вставляется строка, чтобы вызвать ошибку сборки ограничения доступа. + #Если СтрСодержит("#Параметр(30)", ",") #Тогда + НеверныйВидДоступа: "#Параметр(30)" - "Список имен видов доступа не найден" + #Иначе + НеверныйВидДоступа: "#Параметр(30)" - "Имя вида доступа не найдено" + #КонецЕсли +#ИначеЕсли &ВидыДоступаСОтключеннымИспользованием <> "Все" + И Не СтрСодержит(&ВидыДоступаСОтключеннымИспользованием, ",#Параметр(30),") #Тогда + + ( + ЕСТЬNULL(#Параметр(31), НЕОПРЕДЕЛЕНО) <> НЕОПРЕДЕЛЕНО + И + #Если (Не СтрСодержит(&ВидыДоступаСОтключеннымИспользованием, ",Пользователи,") И СтрСодержит(",#Параметр(30),", ",Пользователи,")) + Или (Не СтрСодержит(&ВидыДоступаСОтключеннымИспользованием, ",ВнешниеПользователи,") И СтрСодержит(",#Параметр(30),", ",ВнешниеПользователи,")) #Тогда + НЕ + ( + НЕ ИСТИНА В + ( + ВЫБРАТЬ ПЕРВЫЕ 1 ИСТИНА + ИЗ РегистрСведений.ГруппыЗначенийДоступа КАК ГруппыЗначенийДоступа + ГДЕ + ГруппыЗначенийДоступа.ЗначениеДоступа = #Параметр(31) + И ГруппыЗначенийДоступа.ГруппаЗначенийДоступа = &АвторизованныйПользователь + ) + И НЕ + #Иначе + ( + #КонецЕсли + ВЫБОР + КОГДА ИСТИНА В + ( + #Если СтрСодержит(&ВидыДоступаБезГруппДляЗначенияДоступа, ",#Параметр(30),") #Тогда + ВЫБРАТЬ ПЕРВЫЕ 1 ИСТИНА + ИЗ РегистрСведений.ЗначенияГруппДоступа КАК Значения + ГДЕ + Значения.ГруппаДоступа = ГруппыДоступа.Ссылка + И Значения.ЗначениеДоступа = #Параметр(31) + #ИначеЕсли "#Параметр(31)" = "Т.Ссылка" + И "#Параметр(30)" <> "Пользователи" + И "#Параметр(30)" <> "ВнешниеПользователи" #Тогда + #Если СтрСодержит("#Параметр(30)", ",") #Тогда + // Когда параметр задан неверно, вставляется строка, чтобы вызвать ошибку сборки ограничения доступа. + НеверныйВидДоступа: "#Параметр(30)" - "При проверке таблицы значения доступа можно указывать только один вид доступа" + #ИначеЕсли СтрСодержит(&ВидыДоступаСОднойГруппойДляЗначенияДоступа, ",#Параметр(30),") #Тогда + ВЫБРАТЬ ПЕРВЫЕ 1 ИСТИНА + ИЗ РегистрСведений.ЗначенияГруппДоступа КАК Значения + ГДЕ + Значения.ГруппаДоступа = ГруппыДоступа.Ссылка + И Значения.ЗначениеДоступа = Т.ГруппаДоступа + #Иначе // Значения доступа, для которых можно указать несколько групп значений доступа. + ВЫБРАТЬ ПЕРВЫЕ 1 ИСТИНА + ИЗ РегистрСведений.ЗначенияГруппДоступа КАК Значения + ВНУТРЕННЕЕ СОЕДИНЕНИЕ #Параметр(1).ГруппыДоступа КАК ГруппыЗначений + ПО + Значения.ГруппаДоступа = ГруппыДоступа.Ссылка + И Значения.ЗначениеДоступа = ГруппыЗначений.ГруппаДоступа + И ГруппыЗначений.Ссылка = #Параметр(31) + #КонецЕсли + #Иначе + ВЫБРАТЬ ПЕРВЫЕ 1 ИСТИНА + ИЗ РегистрСведений.ЗначенияГруппДоступа КАК Значения + ВНУТРЕННЕЕ СОЕДИНЕНИЕ РегистрСведений.ГруппыЗначенийДоступа КАК ГруппыЗначений + ПО + Значения.ГруппаДоступа = ГруппыДоступа.Ссылка + И Значения.ЗначениеДоступа = ГруппыЗначений.ГруппаЗначенийДоступа + И ГруппыЗначений.ЗначениеДоступа = #Параметр(31) + #КонецЕсли + ) + ТОГДА ИСТИНА + ИНАЧЕ ЛОЖЬ + КОНЕЦ + = + ВЫБОР + КОГДА ИСТИНА В + ( + ВЫБРАТЬ ПЕРВЫЕ 1 ИСТИНА + ИЗ РегистрСведений.ЗначенияГруппДоступаПоУмолчанию КАК ЗначенияПоУмолчанию + ГДЕ + ЗначенияПоУмолчанию.ГруппаДоступа = ГруппыДоступа.Ссылка + И ТИПЗНАЧЕНИЯ(ЗначенияПоУмолчанию.ТипЗначенийДоступа) = ТИПЗНАЧЕНИЯ(#Параметр(31)) + И ЗначенияПоУмолчанию.ВсеРазрешены = ЛОЖЬ + ) + ТОГДА ИСТИНА + ИНАЧЕ ЛОЖЬ + КОНЕЦ + ) + ) +#Иначе + ЕСТЬNULL(#Параметр(31), НЕОПРЕДЕЛЕНО) <> НЕОПРЕДЕЛЕНО +#КонецЕсли + + #Параметр(32) // [)[)][)]...] [ИЛИ|И] [([(][(]...] оператор И/ИЛИ с/без скобок. + +//// Проверка значения поля группы параметров 10. +#Если "#Параметр(33)" = "" И "#Параметр(34)" = "" #Тогда + // Группа параметров не используется. +#ИначеЕсли &ОграничениеДоступаНаУровнеЗаписейИспользуется И ("#Параметр(33)" = "Условие" Или "#Параметр(33)" = "") #Тогда + // Когда имя вида доступа "Условие" (или ""), тогда вместо имени поля задано условие. + ( #Параметр(34) ) +#ИначеЕсли "#Параметр(33)" = "ПравоЧтения" Или "#Параметр(33)" = "ПравоИзменения" #Тогда + #Параметр(34) <> НЕОПРЕДЕЛЕНО + И ИСТИНА В + ( // Проверка права пользователя на таблицу Значения, установленного в поле. + ВЫБРАТЬ ПЕРВЫЕ 1 ИСТИНА + ИЗ РегистрСведений.ТаблицыГруппДоступа КАК ТаблицыГруппДоступаПроверкаПрава + ГДЕ + ТаблицыГруппДоступаПроверкаПрава.ГруппаДоступа = ГруппыДоступа.Ссылка + И ТИПЗНАЧЕНИЯ(ТаблицыГруппДоступаПроверкаПрава.ТипТаблицы) = ТИПЗНАЧЕНИЯ(#Параметр(34)) + #Если Не "#Параметр(33)" = "ПравоЧтения" #Тогда + И ТаблицыГруппДоступаПроверкаПрава.ПравоИзменение + #КонецЕсли + ) +#ИначеЕсли "#Параметр(33)" = "ПравоЧтенияПоИдентификатору" Или "#Параметр(33)" = "ПравоИзмененияПоИдентификатору" #Тогда + ИСТИНА В + ( // Проверка права пользователя на таблицу, идентификатор которой указан в Значении, установленном в поле. + ВЫБРАТЬ ПЕРВЫЕ 1 ИСТИНА + ИЗ РегистрСведений.ТаблицыГруппДоступа КАК ТаблицыГруппДоступаПроверкаПрава + ГДЕ + ТаблицыГруппДоступаПроверкаПрава.ГруппаДоступа = ГруппыДоступа.Ссылка + И ТаблицыГруппДоступаПроверкаПрава.Таблица = #Параметр(34) + #Если Не "#Параметр(33)" = "ПравоЧтенияПоИдентификатору" #Тогда + И ТаблицыГруппДоступаПроверкаПрава.ПравоИзменение + #КонецЕсли + ) +#ИначеЕсли Не &ОграничениеДоступаНаУровнеЗаписейИспользуется #Тогда + ИСТИНА // Группа параметров отключена. +#ИначеЕсли "#Параметр(33)" = "НастройкиПрав" #Тогда + + ( + ИСТИНА В // Проверка, что пользователю или какой-нибудь группе пользователя право разрешено + ( + ВЫБРАТЬ ПЕРВЫЕ 1 ИСТИНА + ИЗ РегистрСведений.НастройкиПравОбъектов КАК НастройкиПрав + ВНУТРЕННЕЕ СОЕДИНЕНИЕ РегистрСведений.НаследованиеНастроекПравОбъектов КАК НаследованиеНастроек + ПО + НаследованиеНастроек.Объект = #Параметр(34) + И НастройкиПрав.Объект = НаследованиеНастроек.Родитель + #Если #ИмяТекущегоПраваДоступа = "Чтение" #Тогда + И НаследованиеНастроек.УровеньИспользования < НастройкиПрав.УровеньРазрешенияЧтения + #Иначе + #Если СтрСодержит(&ТаблицыСОтдельнымиНастройкамиПрав, "|#Параметр(1);") #Тогда + И НастройкиПрав.Таблица = СвойстваТекущейТаблицы.Ссылка + #Иначе + И НастройкиПрав.Таблица = ЗНАЧЕНИЕ(Справочник.ИдентификаторыОбъектовМетаданных.ПустаяСсылка) + #КонецЕсли + И НаследованиеНастроек.УровеньИспользования < НастройкиПрав.УровеньРазрешенияИзменения + #КонецЕсли + ВНУТРЕННЕЕ СОЕДИНЕНИЕ РегистрСведений.СоставыГруппПользователей КАК СоставыГруппПользователей + ПО + СоставыГруппПользователей.Пользователь = &АвторизованныйПользователь + И СоставыГруппПользователей.ГруппаПользователей = НастройкиПрав.Пользователь + ) + И НЕ ЛОЖЬ В // Проверка, что пользователю или какой-нибудь группе пользователя право запрещено. + ( + ВЫБРАТЬ ПЕРВЫЕ 1 ЛОЖЬ + ИЗ РегистрСведений.НастройкиПравОбъектов КАК НастройкиПрав + ВНУТРЕННЕЕ СОЕДИНЕНИЕ РегистрСведений.НаследованиеНастроекПравОбъектов КАК НаследованиеНастроек + ПО + НаследованиеНастроек.Объект = #Параметр(34) + И НастройкиПрав.Объект = НаследованиеНастроек.Родитель + #Если #ИмяТекущегоПраваДоступа = "Чтение" #Тогда + И НаследованиеНастроек.УровеньИспользования < НастройкиПрав.УровеньЗапрещенияЧтения + #Иначе + #Если СтрСодержит(&ТаблицыСОтдельнымиНастройкамиПрав, "|#Параметр(1);") #Тогда + И НастройкиПрав.Таблица = СвойстваТекущейТаблицы.Ссылка + #Иначе + И НастройкиПрав.Таблица = ЗНАЧЕНИЕ(Справочник.ИдентификаторыОбъектовМетаданных.ПустаяСсылка) + #КонецЕсли + И НаследованиеНастроек.УровеньИспользования < НастройкиПрав.УровеньЗапрещенияИзменения + #КонецЕсли + ВНУТРЕННЕЕ СОЕДИНЕНИЕ РегистрСведений.СоставыГруппПользователей КАК СоставыГруппПользователей + ПО + СоставыГруппПользователей.Пользователь = &АвторизованныйПользователь + И СоставыГруппПользователей.ГруппаПользователей = НастройкиПрав.Пользователь + ) + ) +#ИначеЕсли Не СтрСодержит(&ВсеВидыДоступаКромеСпециальных, ",#Параметр(33),") #Тогда + // Когда параметр задан неверно, вставляется строка, чтобы вызвать ошибку сборки ограничения доступа. + #Если СтрСодержит("#Параметр(33)", ",") #Тогда + НеверныйВидДоступа: "#Параметр(33)" - "Список имен видов доступа не найден" + #Иначе + НеверныйВидДоступа: "#Параметр(33)" - "Имя вида доступа не найдено" + #КонецЕсли +#ИначеЕсли &ВидыДоступаСОтключеннымИспользованием <> "Все" + И Не СтрСодержит(&ВидыДоступаСОтключеннымИспользованием, ",#Параметр(33),") #Тогда + + ( + ЕСТЬNULL(#Параметр(34), НЕОПРЕДЕЛЕНО) <> НЕОПРЕДЕЛЕНО + И + #Если (Не СтрСодержит(&ВидыДоступаСОтключеннымИспользованием, ",Пользователи,") И СтрСодержит(",#Параметр(33),", ",Пользователи,")) + Или (Не СтрСодержит(&ВидыДоступаСОтключеннымИспользованием, ",ВнешниеПользователи,") И СтрСодержит(",#Параметр(33),", ",ВнешниеПользователи,")) #Тогда + НЕ + ( + НЕ ИСТИНА В + ( + ВЫБРАТЬ ПЕРВЫЕ 1 ИСТИНА + ИЗ РегистрСведений.ГруппыЗначенийДоступа КАК ГруппыЗначенийДоступа + ГДЕ + ГруппыЗначенийДоступа.ЗначениеДоступа = #Параметр(34) + И ГруппыЗначенийДоступа.ГруппаЗначенийДоступа = &АвторизованныйПользователь + ) + И НЕ + #Иначе + ( + #КонецЕсли + ВЫБОР + КОГДА ИСТИНА В + ( + #Если СтрСодержит(&ВидыДоступаБезГруппДляЗначенияДоступа, ",#Параметр(33),") #Тогда + ВЫБРАТЬ ПЕРВЫЕ 1 ИСТИНА + ИЗ РегистрСведений.ЗначенияГруппДоступа КАК Значения + ГДЕ + Значения.ГруппаДоступа = ГруппыДоступа.Ссылка + И Значения.ЗначениеДоступа = #Параметр(34) + #ИначеЕсли "#Параметр(34)" = "Т.Ссылка" + И "#Параметр(33)" <> "Пользователи" + И "#Параметр(33)" <> "ВнешниеПользователи" #Тогда + #Если СтрСодержит("#Параметр(33)", ",") #Тогда + // Когда параметр задан неверно, вставляется строка, чтобы вызвать ошибку сборки ограничения доступа. + НеверныйВидДоступа: "#Параметр(33)" - "При проверке таблицы значения доступа можно указывать только один вид доступа" + #ИначеЕсли СтрСодержит(&ВидыДоступаСОднойГруппойДляЗначенияДоступа, ",#Параметр(33),") #Тогда + ВЫБРАТЬ ПЕРВЫЕ 1 ИСТИНА + ИЗ РегистрСведений.ЗначенияГруппДоступа КАК Значения + ГДЕ + Значения.ГруппаДоступа = ГруппыДоступа.Ссылка + И Значения.ЗначениеДоступа = Т.ГруппаДоступа + #Иначе // Значения доступа, для которых можно указать несколько групп значений доступа. + ВЫБРАТЬ ПЕРВЫЕ 1 ИСТИНА + ИЗ РегистрСведений.ЗначенияГруппДоступа КАК Значения + ВНУТРЕННЕЕ СОЕДИНЕНИЕ #Параметр(1).ГруппыДоступа КАК ГруппыЗначений + ПО + Значения.ГруппаДоступа = ГруппыДоступа.Ссылка + И Значения.ЗначениеДоступа = ГруппыЗначений.ГруппаДоступа + И ГруппыЗначений.Ссылка = #Параметр(34) + #КонецЕсли + #Иначе + ВЫБРАТЬ ПЕРВЫЕ 1 ИСТИНА + ИЗ РегистрСведений.ЗначенияГруппДоступа КАК Значения + ВНУТРЕННЕЕ СОЕДИНЕНИЕ РегистрСведений.ГруппыЗначенийДоступа КАК ГруппыЗначений + ПО + Значения.ГруппаДоступа = ГруппыДоступа.Ссылка + И Значения.ЗначениеДоступа = ГруппыЗначений.ГруппаЗначенийДоступа + И ГруппыЗначений.ЗначениеДоступа = #Параметр(34) + #КонецЕсли + ) + ТОГДА ИСТИНА + ИНАЧЕ ЛОЖЬ + КОНЕЦ + = + ВЫБОР + КОГДА ИСТИНА В + ( + ВЫБРАТЬ ПЕРВЫЕ 1 ИСТИНА + ИЗ РегистрСведений.ЗначенияГруппДоступаПоУмолчанию КАК ЗначенияПоУмолчанию + ГДЕ + ЗначенияПоУмолчанию.ГруппаДоступа = ГруппыДоступа.Ссылка + И ТИПЗНАЧЕНИЯ(ЗначенияПоУмолчанию.ТипЗначенийДоступа) = ТИПЗНАЧЕНИЯ(#Параметр(34)) + И ЗначенияПоУмолчанию.ВсеРазрешены = ЛОЖЬ + ) + ТОГДА ИСТИНА + ИНАЧЕ ЛОЖЬ + КОНЕЦ + ) + ) +#Иначе + ЕСТЬNULL(#Параметр(34), НЕОПРЕДЕЛЕНО) <> НЕОПРЕДЕЛЕНО +#КонецЕсли + + #Параметр(35) // [)[)][)]...] [ИЛИ|И] [([(][(]...] оператор И/ИЛИ с/без скобок. + +//// Проверка значения поля группы параметров 11. +#Если "#Параметр(36)" = "" И "#Параметр(37)" = "" #Тогда + // Группа параметров не используется. +#ИначеЕсли &ОграничениеДоступаНаУровнеЗаписейИспользуется И ("#Параметр(36)" = "Условие" Или "#Параметр(36)" = "") #Тогда + // Когда имя вида доступа "Условие" (или ""), тогда вместо имени поля задано условие. + ( #Параметр(37) ) +#ИначеЕсли "#Параметр(36)" = "ПравоЧтения" Или "#Параметр(36)" = "ПравоИзменения" #Тогда + #Параметр(37) <> НЕОПРЕДЕЛЕНО + И ИСТИНА В + ( // Проверка права пользователя на таблицу Значения, установленного в поле. + ВЫБРАТЬ ПЕРВЫЕ 1 ИСТИНА + ИЗ РегистрСведений.ТаблицыГруппДоступа КАК ТаблицыГруппДоступаПроверкаПрава + ГДЕ + ТаблицыГруппДоступаПроверкаПрава.ГруппаДоступа = ГруппыДоступа.Ссылка + И ТИПЗНАЧЕНИЯ(ТаблицыГруппДоступаПроверкаПрава.ТипТаблицы) = ТИПЗНАЧЕНИЯ(#Параметр(37)) + #Если Не "#Параметр(36)" = "ПравоЧтения" #Тогда + И ТаблицыГруппДоступаПроверкаПрава.ПравоИзменение + #КонецЕсли + ) +#ИначеЕсли "#Параметр(36)" = "ПравоЧтенияПоИдентификатору" Или "#Параметр(36)" = "ПравоИзмененияПоИдентификатору" #Тогда + ИСТИНА В + ( // Проверка права пользователя на таблицу, идентификатор которой указан в Значении, установленном в поле. + ВЫБРАТЬ ПЕРВЫЕ 1 ИСТИНА + ИЗ РегистрСведений.ТаблицыГруппДоступа КАК ТаблицыГруппДоступаПроверкаПрава + ГДЕ + ТаблицыГруппДоступаПроверкаПрава.ГруппаДоступа = ГруппыДоступа.Ссылка + И ТаблицыГруппДоступаПроверкаПрава.Таблица = #Параметр(37) + #Если Не "#Параметр(36)" = "ПравоЧтенияПоИдентификатору" #Тогда + И ТаблицыГруппДоступаПроверкаПрава.ПравоИзменение + #КонецЕсли + ) +#ИначеЕсли Не &ОграничениеДоступаНаУровнеЗаписейИспользуется #Тогда + ИСТИНА // Группа параметров отключена. +#ИначеЕсли "#Параметр(36)" = "НастройкиПрав" #Тогда + + ( + ИСТИНА В // Проверка, что пользователю или какой-нибудь группе пользователя право разрешено + ( + ВЫБРАТЬ ПЕРВЫЕ 1 ИСТИНА + ИЗ РегистрСведений.НастройкиПравОбъектов КАК НастройкиПрав + ВНУТРЕННЕЕ СОЕДИНЕНИЕ РегистрСведений.НаследованиеНастроекПравОбъектов КАК НаследованиеНастроек + ПО + НаследованиеНастроек.Объект = #Параметр(37) + И НастройкиПрав.Объект = НаследованиеНастроек.Родитель + #Если #ИмяТекущегоПраваДоступа = "Чтение" #Тогда + И НаследованиеНастроек.УровеньИспользования < НастройкиПрав.УровеньРазрешенияЧтения + #Иначе + #Если СтрСодержит(&ТаблицыСОтдельнымиНастройкамиПрав, "|#Параметр(1);") #Тогда + И НастройкиПрав.Таблица = СвойстваТекущейТаблицы.Ссылка + #Иначе + И НастройкиПрав.Таблица = ЗНАЧЕНИЕ(Справочник.ИдентификаторыОбъектовМетаданных.ПустаяСсылка) + #КонецЕсли + И НаследованиеНастроек.УровеньИспользования < НастройкиПрав.УровеньРазрешенияИзменения + #КонецЕсли + ВНУТРЕННЕЕ СОЕДИНЕНИЕ РегистрСведений.СоставыГруппПользователей КАК СоставыГруппПользователей + ПО + СоставыГруппПользователей.Пользователь = &АвторизованныйПользователь + И СоставыГруппПользователей.ГруппаПользователей = НастройкиПрав.Пользователь + ) + И НЕ ЛОЖЬ В // Проверка, что пользователю или какой-нибудь группе пользователя право запрещено. + ( + ВЫБРАТЬ ПЕРВЫЕ 1 ЛОЖЬ + ИЗ РегистрСведений.НастройкиПравОбъектов КАК НастройкиПрав + ВНУТРЕННЕЕ СОЕДИНЕНИЕ РегистрСведений.НаследованиеНастроекПравОбъектов КАК НаследованиеНастроек + ПО + НаследованиеНастроек.Объект = #Параметр(37) + И НастройкиПрав.Объект = НаследованиеНастроек.Родитель + #Если #ИмяТекущегоПраваДоступа = "Чтение" #Тогда + И НаследованиеНастроек.УровеньИспользования < НастройкиПрав.УровеньЗапрещенияЧтения + #Иначе + #Если СтрСодержит(&ТаблицыСОтдельнымиНастройкамиПрав, "|#Параметр(1);") #Тогда + И НастройкиПрав.Таблица = СвойстваТекущейТаблицы.Ссылка + #Иначе + И НастройкиПрав.Таблица = ЗНАЧЕНИЕ(Справочник.ИдентификаторыОбъектовМетаданных.ПустаяСсылка) + #КонецЕсли + И НаследованиеНастроек.УровеньИспользования < НастройкиПрав.УровеньЗапрещенияИзменения + #КонецЕсли + ВНУТРЕННЕЕ СОЕДИНЕНИЕ РегистрСведений.СоставыГруппПользователей КАК СоставыГруппПользователей + ПО + СоставыГруппПользователей.Пользователь = &АвторизованныйПользователь + И СоставыГруппПользователей.ГруппаПользователей = НастройкиПрав.Пользователь + ) + ) +#ИначеЕсли Не СтрСодержит(&ВсеВидыДоступаКромеСпециальных, ",#Параметр(36),") #Тогда + // Когда параметр задан неверно, вставляется строка, чтобы вызвать ошибку сборки ограничения доступа. + #Если СтрСодержит("#Параметр(36)", ",") #Тогда + НеверныйВидДоступа: "#Параметр(36)" - "Список имен видов доступа не найден" + #Иначе + НеверныйВидДоступа: "#Параметр(36)" - "Имя вида доступа не найдено" + #КонецЕсли +#ИначеЕсли &ВидыДоступаСОтключеннымИспользованием <> "Все" + И Не СтрСодержит(&ВидыДоступаСОтключеннымИспользованием, ",#Параметр(36),") #Тогда + + ( + ЕСТЬNULL(#Параметр(37), НЕОПРЕДЕЛЕНО) <> НЕОПРЕДЕЛЕНО + И + #Если (Не СтрСодержит(&ВидыДоступаСОтключеннымИспользованием, ",Пользователи,") И СтрСодержит(",#Параметр(36),", ",Пользователи,")) + Или (Не СтрСодержит(&ВидыДоступаСОтключеннымИспользованием, ",ВнешниеПользователи,") И СтрСодержит(",#Параметр(36),", ",ВнешниеПользователи,")) #Тогда + НЕ + ( + НЕ ИСТИНА В + ( + ВЫБРАТЬ ПЕРВЫЕ 1 ИСТИНА + ИЗ РегистрСведений.ГруппыЗначенийДоступа КАК ГруппыЗначенийДоступа + ГДЕ + ГруппыЗначенийДоступа.ЗначениеДоступа = #Параметр(37) + И ГруппыЗначенийДоступа.ГруппаЗначенийДоступа = &АвторизованныйПользователь + ) + И НЕ + #Иначе + ( + #КонецЕсли + ВЫБОР + КОГДА ИСТИНА В + ( + #Если СтрСодержит(&ВидыДоступаБезГруппДляЗначенияДоступа, ",#Параметр(36),") #Тогда + ВЫБРАТЬ ПЕРВЫЕ 1 ИСТИНА + ИЗ РегистрСведений.ЗначенияГруппДоступа КАК Значения + ГДЕ + Значения.ГруппаДоступа = ГруппыДоступа.Ссылка + И Значения.ЗначениеДоступа = #Параметр(37) + #ИначеЕсли "#Параметр(37)" = "Т.Ссылка" + И "#Параметр(36)" <> "Пользователи" + И "#Параметр(36)" <> "ВнешниеПользователи" #Тогда + #Если СтрСодержит("#Параметр(36)", ",") #Тогда + // Когда параметр задан неверно, вставляется строка, чтобы вызвать ошибку сборки ограничения доступа. + НеверныйВидДоступа: "#Параметр(36)" - "При проверке таблицы значения доступа можно указывать только один вид доступа" + #ИначеЕсли СтрСодержит(&ВидыДоступаСОднойГруппойДляЗначенияДоступа, ",#Параметр(36),") #Тогда + ВЫБРАТЬ ПЕРВЫЕ 1 ИСТИНА + ИЗ РегистрСведений.ЗначенияГруппДоступа КАК Значения + ГДЕ + Значения.ГруппаДоступа = ГруппыДоступа.Ссылка + И Значения.ЗначениеДоступа = Т.ГруппаДоступа + #Иначе // Значения доступа, для которых можно указать несколько групп значений доступа. + ВЫБРАТЬ ПЕРВЫЕ 1 ИСТИНА + ИЗ РегистрСведений.ЗначенияГруппДоступа КАК Значения + ВНУТРЕННЕЕ СОЕДИНЕНИЕ #Параметр(1).ГруппыДоступа КАК ГруппыЗначений + ПО + Значения.ГруппаДоступа = ГруппыДоступа.Ссылка + И Значения.ЗначениеДоступа = ГруппыЗначений.ГруппаДоступа + И ГруппыЗначений.Ссылка = #Параметр(37) + #КонецЕсли + #Иначе + ВЫБРАТЬ ПЕРВЫЕ 1 ИСТИНА + ИЗ РегистрСведений.ЗначенияГруппДоступа КАК Значения + ВНУТРЕННЕЕ СОЕДИНЕНИЕ РегистрСведений.ГруппыЗначенийДоступа КАК ГруппыЗначений + ПО + Значения.ГруппаДоступа = ГруппыДоступа.Ссылка + И Значения.ЗначениеДоступа = ГруппыЗначений.ГруппаЗначенийДоступа + И ГруппыЗначений.ЗначениеДоступа = #Параметр(37) + #КонецЕсли + ) + ТОГДА ИСТИНА + ИНАЧЕ ЛОЖЬ + КОНЕЦ + = + ВЫБОР + КОГДА ИСТИНА В + ( + ВЫБРАТЬ ПЕРВЫЕ 1 ИСТИНА + ИЗ РегистрСведений.ЗначенияГруппДоступаПоУмолчанию КАК ЗначенияПоУмолчанию + ГДЕ + ЗначенияПоУмолчанию.ГруппаДоступа = ГруппыДоступа.Ссылка + И ТИПЗНАЧЕНИЯ(ЗначенияПоУмолчанию.ТипЗначенийДоступа) = ТИПЗНАЧЕНИЯ(#Параметр(37)) + И ЗначенияПоУмолчанию.ВсеРазрешены = ЛОЖЬ + ) + ТОГДА ИСТИНА + ИНАЧЕ ЛОЖЬ + КОНЕЦ + ) + ) +#Иначе + ЕСТЬNULL(#Параметр(37), НЕОПРЕДЕЛЕНО) <> НЕОПРЕДЕЛЕНО +#КонецЕсли + + #Параметр(38) // [)[)][)]...] [ИЛИ|И] [([(][(]...] оператор И/ИЛИ с/без скобок. + +//// Проверка значения поля группы параметров 12. +#Если "#Параметр(39)" = "" И "#Параметр(40)" = "" #Тогда + // Группа параметров не используется. +#ИначеЕсли &ОграничениеДоступаНаУровнеЗаписейИспользуется И ("#Параметр(39)" = "Условие" Или "#Параметр(39)" = "") #Тогда + // Когда имя вида доступа "Условие" (или ""), тогда вместо имени поля задано условие. + ( #Параметр(40) ) +#ИначеЕсли "#Параметр(39)" = "ПравоЧтения" Или "#Параметр(39)" = "ПравоИзменения" #Тогда + #Параметр(40) <> НЕОПРЕДЕЛЕНО + И ИСТИНА В + ( // Проверка права пользователя на таблицу Значения, установленного в поле. + ВЫБРАТЬ ПЕРВЫЕ 1 ИСТИНА + ИЗ РегистрСведений.ТаблицыГруппДоступа КАК ТаблицыГруппДоступаПроверкаПрава + ГДЕ + ТаблицыГруппДоступаПроверкаПрава.ГруппаДоступа = ГруппыДоступа.Ссылка + И ТИПЗНАЧЕНИЯ(ТаблицыГруппДоступаПроверкаПрава.ТипТаблицы) = ТИПЗНАЧЕНИЯ(#Параметр(40)) + #Если Не "#Параметр(39)" = "ПравоЧтения" #Тогда + И ТаблицыГруппДоступаПроверкаПрава.ПравоИзменение + #КонецЕсли + ) +#ИначеЕсли "#Параметр(39)" = "ПравоЧтенияПоИдентификатору" Или "#Параметр(39)" = "ПравоИзмененияПоИдентификатору" #Тогда + ИСТИНА В + ( // Проверка права пользователя на таблицу, идентификатор которой указан в Значении, установленном в поле. + ВЫБРАТЬ ПЕРВЫЕ 1 ИСТИНА + ИЗ РегистрСведений.ТаблицыГруппДоступа КАК ТаблицыГруппДоступаПроверкаПрава + ГДЕ + ТаблицыГруппДоступаПроверкаПрава.ГруппаДоступа = ГруппыДоступа.Ссылка + И ТаблицыГруппДоступаПроверкаПрава.Таблица = #Параметр(40) + #Если Не "#Параметр(39)" = "ПравоЧтенияПоИдентификатору" #Тогда + И ТаблицыГруппДоступаПроверкаПрава.ПравоИзменение + #КонецЕсли + ) +#ИначеЕсли Не &ОграничениеДоступаНаУровнеЗаписейИспользуется #Тогда + ИСТИНА // Группа параметров отключена. +#ИначеЕсли "#Параметр(39)" = "НастройкиПрав" #Тогда + + ( + ИСТИНА В // Проверка, что пользователю или какой-нибудь группе пользователя право разрешено + ( + ВЫБРАТЬ ПЕРВЫЕ 1 ИСТИНА + ИЗ РегистрСведений.НастройкиПравОбъектов КАК НастройкиПрав + ВНУТРЕННЕЕ СОЕДИНЕНИЕ РегистрСведений.НаследованиеНастроекПравОбъектов КАК НаследованиеНастроек + ПО + НаследованиеНастроек.Объект = #Параметр(40) + И НастройкиПрав.Объект = НаследованиеНастроек.Родитель + #Если #ИмяТекущегоПраваДоступа = "Чтение" #Тогда + И НаследованиеНастроек.УровеньИспользования < НастройкиПрав.УровеньРазрешенияЧтения + #Иначе + #Если СтрСодержит(&ТаблицыСОтдельнымиНастройкамиПрав, "|#Параметр(1);") #Тогда + И НастройкиПрав.Таблица = СвойстваТекущейТаблицы.Ссылка + #Иначе + И НастройкиПрав.Таблица = ЗНАЧЕНИЕ(Справочник.ИдентификаторыОбъектовМетаданных.ПустаяСсылка) + #КонецЕсли + И НаследованиеНастроек.УровеньИспользования < НастройкиПрав.УровеньРазрешенияИзменения + #КонецЕсли + ВНУТРЕННЕЕ СОЕДИНЕНИЕ РегистрСведений.СоставыГруппПользователей КАК СоставыГруппПользователей + ПО + СоставыГруппПользователей.Пользователь = &АвторизованныйПользователь + И СоставыГруппПользователей.ГруппаПользователей = НастройкиПрав.Пользователь + ) + И НЕ ЛОЖЬ В // Проверка, что пользователю или какой-нибудь группе пользователя право запрещено. + ( + ВЫБРАТЬ ПЕРВЫЕ 1 ЛОЖЬ + ИЗ РегистрСведений.НастройкиПравОбъектов КАК НастройкиПрав + ВНУТРЕННЕЕ СОЕДИНЕНИЕ РегистрСведений.НаследованиеНастроекПравОбъектов КАК НаследованиеНастроек + ПО + НаследованиеНастроек.Объект = #Параметр(40) + И НастройкиПрав.Объект = НаследованиеНастроек.Родитель + #Если #ИмяТекущегоПраваДоступа = "Чтение" #Тогда + И НаследованиеНастроек.УровеньИспользования < НастройкиПрав.УровеньЗапрещенияЧтения + #Иначе + #Если СтрСодержит(&ТаблицыСОтдельнымиНастройкамиПрав, "|#Параметр(1);") #Тогда + И НастройкиПрав.Таблица = СвойстваТекущейТаблицы.Ссылка + #Иначе + И НастройкиПрав.Таблица = ЗНАЧЕНИЕ(Справочник.ИдентификаторыОбъектовМетаданных.ПустаяСсылка) + #КонецЕсли + И НаследованиеНастроек.УровеньИспользования < НастройкиПрав.УровеньЗапрещенияИзменения + #КонецЕсли + ВНУТРЕННЕЕ СОЕДИНЕНИЕ РегистрСведений.СоставыГруппПользователей КАК СоставыГруппПользователей + ПО + СоставыГруппПользователей.Пользователь = &АвторизованныйПользователь + И СоставыГруппПользователей.ГруппаПользователей = НастройкиПрав.Пользователь + ) + ) +#ИначеЕсли Не СтрСодержит(&ВсеВидыДоступаКромеСпециальных, ",#Параметр(39),") #Тогда + // Когда параметр задан неверно, вставляется строка, чтобы вызвать ошибку сборки ограничения доступа. + #Если СтрСодержит("#Параметр(39)", ",") #Тогда + НеверныйВидДоступа: "#Параметр(39)" - "Список имен видов доступа не найден" + #Иначе + НеверныйВидДоступа: "#Параметр(39)" - "Имя вида доступа не найдено" + #КонецЕсли +#ИначеЕсли &ВидыДоступаСОтключеннымИспользованием <> "Все" + И Не СтрСодержит(&ВидыДоступаСОтключеннымИспользованием, ",#Параметр(39),") #Тогда + + ( + ЕСТЬNULL(#Параметр(40), НЕОПРЕДЕЛЕНО) <> НЕОПРЕДЕЛЕНО + И + #Если (Не СтрСодержит(&ВидыДоступаСОтключеннымИспользованием, ",Пользователи,") И СтрСодержит(",#Параметр(39),", ",Пользователи,")) + Или (Не СтрСодержит(&ВидыДоступаСОтключеннымИспользованием, ",ВнешниеПользователи,") И СтрСодержит(",#Параметр(39),", ",ВнешниеПользователи,")) #Тогда + НЕ + ( + НЕ ИСТИНА В + ( + ВЫБРАТЬ ПЕРВЫЕ 1 ИСТИНА + ИЗ РегистрСведений.ГруппыЗначенийДоступа КАК ГруппыЗначенийДоступа + ГДЕ + ГруппыЗначенийДоступа.ЗначениеДоступа = #Параметр(40) + И ГруппыЗначенийДоступа.ГруппаЗначенийДоступа = &АвторизованныйПользователь + ) + И НЕ + #Иначе + ( + #КонецЕсли + ВЫБОР + КОГДА ИСТИНА В + ( + #Если СтрСодержит(&ВидыДоступаБезГруппДляЗначенияДоступа, ",#Параметр(39),") #Тогда + ВЫБРАТЬ ПЕРВЫЕ 1 ИСТИНА + ИЗ РегистрСведений.ЗначенияГруппДоступа КАК Значения + ГДЕ + Значения.ГруппаДоступа = ГруппыДоступа.Ссылка + И Значения.ЗначениеДоступа = #Параметр(40) + #ИначеЕсли "#Параметр(40)" = "Т.Ссылка" + И "#Параметр(39)" <> "Пользователи" + И "#Параметр(39)" <> "ВнешниеПользователи" #Тогда + #Если СтрСодержит("#Параметр(39)", ",") #Тогда + // Когда параметр задан неверно, вставляется строка, чтобы вызвать ошибку сборки ограничения доступа. + НеверныйВидДоступа: "#Параметр(39)" - "При проверке таблицы значения доступа можно указывать только один вид доступа" + #ИначеЕсли СтрСодержит(&ВидыДоступаСОднойГруппойДляЗначенияДоступа, ",#Параметр(39),") #Тогда + ВЫБРАТЬ ПЕРВЫЕ 1 ИСТИНА + ИЗ РегистрСведений.ЗначенияГруппДоступа КАК Значения + ГДЕ + Значения.ГруппаДоступа = ГруппыДоступа.Ссылка + И Значения.ЗначениеДоступа = Т.ГруппаДоступа + #Иначе // Значения доступа, для которых можно указать несколько групп значений доступа. + ВЫБРАТЬ ПЕРВЫЕ 1 ИСТИНА + ИЗ РегистрСведений.ЗначенияГруппДоступа КАК Значения + ВНУТРЕННЕЕ СОЕДИНЕНИЕ #Параметр(1).ГруппыДоступа КАК ГруппыЗначений + ПО + Значения.ГруппаДоступа = ГруппыДоступа.Ссылка + И Значения.ЗначениеДоступа = ГруппыЗначений.ГруппаДоступа + И ГруппыЗначений.Ссылка = #Параметр(40) + #КонецЕсли + #Иначе + ВЫБРАТЬ ПЕРВЫЕ 1 ИСТИНА + ИЗ РегистрСведений.ЗначенияГруппДоступа КАК Значения + ВНУТРЕННЕЕ СОЕДИНЕНИЕ РегистрСведений.ГруппыЗначенийДоступа КАК ГруппыЗначений + ПО + Значения.ГруппаДоступа = ГруппыДоступа.Ссылка + И Значения.ЗначениеДоступа = ГруппыЗначений.ГруппаЗначенийДоступа + И ГруппыЗначений.ЗначениеДоступа = #Параметр(40) + #КонецЕсли + ) + ТОГДА ИСТИНА + ИНАЧЕ ЛОЖЬ + КОНЕЦ + = + ВЫБОР + КОГДА ИСТИНА В + ( + ВЫБРАТЬ ПЕРВЫЕ 1 ИСТИНА + ИЗ РегистрСведений.ЗначенияГруппДоступаПоУмолчанию КАК ЗначенияПоУмолчанию + ГДЕ + ЗначенияПоУмолчанию.ГруппаДоступа = ГруппыДоступа.Ссылка + И ТИПЗНАЧЕНИЯ(ЗначенияПоУмолчанию.ТипЗначенийДоступа) = ТИПЗНАЧЕНИЯ(#Параметр(40)) + И ЗначенияПоУмолчанию.ВсеРазрешены = ЛОЖЬ + ) + ТОГДА ИСТИНА + ИНАЧЕ ЛОЖЬ + КОНЕЦ + ) + ) +#Иначе + ЕСТЬNULL(#Параметр(40), НЕОПРЕДЕЛЕНО) <> НЕОПРЕДЕЛЕНО +#КонецЕсли + + #Параметр(41) // [)[)][)]...] [ИЛИ|И] [([(][(]...] оператор И/ИЛИ с/без скобок. + +//// Проверка значения поля группы параметров 13. +#Если "#Параметр(42)" = "" И "#Параметр(43)" = "" #Тогда + // Группа параметров не используется. +#ИначеЕсли &ОграничениеДоступаНаУровнеЗаписейИспользуется И ("#Параметр(42)" = "Условие" Или "#Параметр(42)" = "") #Тогда + // Когда имя вида доступа "Условие" (или ""), тогда вместо имени поля задано условие. + ( #Параметр(43) ) +#ИначеЕсли "#Параметр(42)" = "ПравоЧтения" Или "#Параметр(42)" = "ПравоИзменения" #Тогда + #Параметр(43) <> НЕОПРЕДЕЛЕНО + И ИСТИНА В + ( // Проверка права пользователя на таблицу Значения, установленного в поле. + ВЫБРАТЬ ПЕРВЫЕ 1 ИСТИНА + ИЗ РегистрСведений.ТаблицыГруппДоступа КАК ТаблицыГруппДоступаПроверкаПрава + ГДЕ + ТаблицыГруппДоступаПроверкаПрава.ГруппаДоступа = ГруппыДоступа.Ссылка + И ТИПЗНАЧЕНИЯ(ТаблицыГруппДоступаПроверкаПрава.ТипТаблицы) = ТИПЗНАЧЕНИЯ(#Параметр(43)) + #Если Не "#Параметр(42)" = "ПравоЧтения" #Тогда + И ТаблицыГруппДоступаПроверкаПрава.ПравоИзменение + #КонецЕсли + ) +#ИначеЕсли "#Параметр(42)" = "ПравоЧтенияПоИдентификатору" Или "#Параметр(42)" = "ПравоИзмененияПоИдентификатору" #Тогда + ИСТИНА В + ( // Проверка права пользователя на таблицу, идентификатор которой указан в Значении, установленном в поле. + ВЫБРАТЬ ПЕРВЫЕ 1 ИСТИНА + ИЗ РегистрСведений.ТаблицыГруппДоступа КАК ТаблицыГруппДоступаПроверкаПрава + ГДЕ + ТаблицыГруппДоступаПроверкаПрава.ГруппаДоступа = ГруппыДоступа.Ссылка + И ТаблицыГруппДоступаПроверкаПрава.Таблица = #Параметр(43) + #Если Не "#Параметр(42)" = "ПравоЧтенияПоИдентификатору" #Тогда + И ТаблицыГруппДоступаПроверкаПрава.ПравоИзменение + #КонецЕсли + ) +#ИначеЕсли Не &ОграничениеДоступаНаУровнеЗаписейИспользуется #Тогда + ИСТИНА // Группа параметров отключена. +#ИначеЕсли "#Параметр(42)" = "НастройкиПрав" #Тогда + + ( + ИСТИНА В // Проверка, что пользователю или какой-нибудь группе пользователя право разрешено + ( + ВЫБРАТЬ ПЕРВЫЕ 1 ИСТИНА + ИЗ РегистрСведений.НастройкиПравОбъектов КАК НастройкиПрав + ВНУТРЕННЕЕ СОЕДИНЕНИЕ РегистрСведений.НаследованиеНастроекПравОбъектов КАК НаследованиеНастроек + ПО + НаследованиеНастроек.Объект = #Параметр(43) + И НастройкиПрав.Объект = НаследованиеНастроек.Родитель + #Если #ИмяТекущегоПраваДоступа = "Чтение" #Тогда + И НаследованиеНастроек.УровеньИспользования < НастройкиПрав.УровеньРазрешенияЧтения + #Иначе + #Если СтрСодержит(&ТаблицыСОтдельнымиНастройкамиПрав, "|#Параметр(1);") #Тогда + И НастройкиПрав.Таблица = СвойстваТекущейТаблицы.Ссылка + #Иначе + И НастройкиПрав.Таблица = ЗНАЧЕНИЕ(Справочник.ИдентификаторыОбъектовМетаданных.ПустаяСсылка) + #КонецЕсли + И НаследованиеНастроек.УровеньИспользования < НастройкиПрав.УровеньРазрешенияИзменения + #КонецЕсли + ВНУТРЕННЕЕ СОЕДИНЕНИЕ РегистрСведений.СоставыГруппПользователей КАК СоставыГруппПользователей + ПО + СоставыГруппПользователей.Пользователь = &АвторизованныйПользователь + И СоставыГруппПользователей.ГруппаПользователей = НастройкиПрав.Пользователь + ) + И НЕ ЛОЖЬ В // Проверка, что пользователю или какой-нибудь группе пользователя право запрещено. + ( + ВЫБРАТЬ ПЕРВЫЕ 1 ЛОЖЬ + ИЗ РегистрСведений.НастройкиПравОбъектов КАК НастройкиПрав + ВНУТРЕННЕЕ СОЕДИНЕНИЕ РегистрСведений.НаследованиеНастроекПравОбъектов КАК НаследованиеНастроек + ПО + НаследованиеНастроек.Объект = #Параметр(43) + И НастройкиПрав.Объект = НаследованиеНастроек.Родитель + #Если #ИмяТекущегоПраваДоступа = "Чтение" #Тогда + И НаследованиеНастроек.УровеньИспользования < НастройкиПрав.УровеньЗапрещенияЧтения + #Иначе + #Если СтрСодержит(&ТаблицыСОтдельнымиНастройкамиПрав, "|#Параметр(1);") #Тогда + И НастройкиПрав.Таблица = СвойстваТекущейТаблицы.Ссылка + #Иначе + И НастройкиПрав.Таблица = ЗНАЧЕНИЕ(Справочник.ИдентификаторыОбъектовМетаданных.ПустаяСсылка) + #КонецЕсли + И НаследованиеНастроек.УровеньИспользования < НастройкиПрав.УровеньЗапрещенияИзменения + #КонецЕсли + ВНУТРЕННЕЕ СОЕДИНЕНИЕ РегистрСведений.СоставыГруппПользователей КАК СоставыГруппПользователей + ПО + СоставыГруппПользователей.Пользователь = &АвторизованныйПользователь + И СоставыГруппПользователей.ГруппаПользователей = НастройкиПрав.Пользователь + ) + ) +#ИначеЕсли Не СтрСодержит(&ВсеВидыДоступаКромеСпециальных, ",#Параметр(42),") #Тогда + // Когда параметр задан неверно, вставляется строка, чтобы вызвать ошибку сборки ограничения доступа. + #Если СтрСодержит("#Параметр(42)", ",") #Тогда + НеверныйВидДоступа: "#Параметр(42)" - "Список имен видов доступа не найден" + #Иначе + НеверныйВидДоступа: "#Параметр(42)" - "Имя вида доступа не найдено" + #КонецЕсли +#ИначеЕсли &ВидыДоступаСОтключеннымИспользованием <> "Все" + И Не СтрСодержит(&ВидыДоступаСОтключеннымИспользованием, ",#Параметр(42),") #Тогда + + ( + ЕСТЬNULL(#Параметр(43), НЕОПРЕДЕЛЕНО) <> НЕОПРЕДЕЛЕНО + И + #Если (Не СтрСодержит(&ВидыДоступаСОтключеннымИспользованием, ",Пользователи,") И СтрСодержит(",#Параметр(42),", ",Пользователи,")) + Или (Не СтрСодержит(&ВидыДоступаСОтключеннымИспользованием, ",ВнешниеПользователи,") И СтрСодержит(",#Параметр(42),", ",ВнешниеПользователи,")) #Тогда + НЕ + ( + НЕ ИСТИНА В + ( + ВЫБРАТЬ ПЕРВЫЕ 1 ИСТИНА + ИЗ РегистрСведений.ГруппыЗначенийДоступа КАК ГруппыЗначенийДоступа + ГДЕ + ГруппыЗначенийДоступа.ЗначениеДоступа = #Параметр(43) + И ГруппыЗначенийДоступа.ГруппаЗначенийДоступа = &АвторизованныйПользователь + ) + И НЕ + #Иначе + ( + #КонецЕсли + ВЫБОР + КОГДА ИСТИНА В + ( + #Если СтрСодержит(&ВидыДоступаБезГруппДляЗначенияДоступа, ",#Параметр(42),") #Тогда + ВЫБРАТЬ ПЕРВЫЕ 1 ИСТИНА + ИЗ РегистрСведений.ЗначенияГруппДоступа КАК Значения + ГДЕ + Значения.ГруппаДоступа = ГруппыДоступа.Ссылка + И Значения.ЗначениеДоступа = #Параметр(43) + #ИначеЕсли "#Параметр(43)" = "Т.Ссылка" + И "#Параметр(42)" <> "Пользователи" + И "#Параметр(42)" <> "ВнешниеПользователи" #Тогда + #Если СтрСодержит("#Параметр(42)", ",") #Тогда + // Когда параметр задан неверно, вставляется строка, чтобы вызвать ошибку сборки ограничения доступа. + НеверныйВидДоступа: "#Параметр(42)" - "При проверке таблицы значения доступа можно указывать только один вид доступа" + #ИначеЕсли СтрСодержит(&ВидыДоступаСОднойГруппойДляЗначенияДоступа, ",#Параметр(42),") #Тогда + ВЫБРАТЬ ПЕРВЫЕ 1 ИСТИНА + ИЗ РегистрСведений.ЗначенияГруппДоступа КАК Значения + ГДЕ + Значения.ГруппаДоступа = ГруппыДоступа.Ссылка + И Значения.ЗначениеДоступа = Т.ГруппаДоступа + #Иначе // Значения доступа, для которых можно указать несколько групп значений доступа. + ВЫБРАТЬ ПЕРВЫЕ 1 ИСТИНА + ИЗ РегистрСведений.ЗначенияГруппДоступа КАК Значения + ВНУТРЕННЕЕ СОЕДИНЕНИЕ #Параметр(1).ГруппыДоступа КАК ГруппыЗначений + ПО + Значения.ГруппаДоступа = ГруппыДоступа.Ссылка + И Значения.ЗначениеДоступа = ГруппыЗначений.ГруппаДоступа + И ГруппыЗначений.Ссылка = #Параметр(43) + #КонецЕсли + #Иначе + ВЫБРАТЬ ПЕРВЫЕ 1 ИСТИНА + ИЗ РегистрСведений.ЗначенияГруппДоступа КАК Значения + ВНУТРЕННЕЕ СОЕДИНЕНИЕ РегистрСведений.ГруппыЗначенийДоступа КАК ГруппыЗначений + ПО + Значения.ГруппаДоступа = ГруппыДоступа.Ссылка + И Значения.ЗначениеДоступа = ГруппыЗначений.ГруппаЗначенийДоступа + И ГруппыЗначений.ЗначениеДоступа = #Параметр(43) + #КонецЕсли + ) + ТОГДА ИСТИНА + ИНАЧЕ ЛОЖЬ + КОНЕЦ + = + ВЫБОР + КОГДА ИСТИНА В + ( + ВЫБРАТЬ ПЕРВЫЕ 1 ИСТИНА + ИЗ РегистрСведений.ЗначенияГруппДоступаПоУмолчанию КАК ЗначенияПоУмолчанию + ГДЕ + ЗначенияПоУмолчанию.ГруппаДоступа = ГруппыДоступа.Ссылка + И ТИПЗНАЧЕНИЯ(ЗначенияПоУмолчанию.ТипЗначенийДоступа) = ТИПЗНАЧЕНИЯ(#Параметр(43)) + И ЗначенияПоУмолчанию.ВсеРазрешены = ЛОЖЬ + ) + ТОГДА ИСТИНА + ИНАЧЕ ЛОЖЬ + КОНЕЦ + ) + ) +#Иначе + ЕСТЬNULL(#Параметр(43), НЕОПРЕДЕЛЕНО) <> НЕОПРЕДЕЛЕНО +#КонецЕсли + + #Параметр(44) // [)[)][)]...] [ИЛИ|И] [([(][(]...] оператор И/ИЛИ с/без скобок. + +//// Проверка значения поля группы параметров 14. +#Если "#Параметр(45)" = "" И "#Параметр(46)" = "" #Тогда + // Группа параметров не используется. +#ИначеЕсли &ОграничениеДоступаНаУровнеЗаписейИспользуется И ("#Параметр(45)" = "Условие" Или "#Параметр(45)" = "") #Тогда + // Когда имя вида доступа "Условие" (или ""), тогда вместо имени поля задано условие. + ( #Параметр(46) ) +#ИначеЕсли "#Параметр(45)" = "ПравоЧтения" Или "#Параметр(45)" = "ПравоИзменения" #Тогда + #Параметр(46) <> НЕОПРЕДЕЛЕНО + И ИСТИНА В + ( // Проверка права пользователя на таблицу Значения, установленного в поле. + ВЫБРАТЬ ПЕРВЫЕ 1 ИСТИНА + ИЗ РегистрСведений.ТаблицыГруппДоступа КАК ТаблицыГруппДоступаПроверкаПрава + ГДЕ + ТаблицыГруппДоступаПроверкаПрава.ГруппаДоступа = ГруппыДоступа.Ссылка + И ТИПЗНАЧЕНИЯ(ТаблицыГруппДоступаПроверкаПрава.ТипТаблицы) = ТИПЗНАЧЕНИЯ(#Параметр(46)) + #Если Не "#Параметр(45)" = "ПравоЧтения" #Тогда + И ТаблицыГруппДоступаПроверкаПрава.ПравоИзменение + #КонецЕсли + ) +#ИначеЕсли "#Параметр(45)" = "ПравоЧтенияПоИдентификатору" Или "#Параметр(45)" = "ПравоИзмененияПоИдентификатору" #Тогда + ИСТИНА В + ( // Проверка права пользователя на таблицу, идентификатор которой указан в Значении, установленном в поле. + ВЫБРАТЬ ПЕРВЫЕ 1 ИСТИНА + ИЗ РегистрСведений.ТаблицыГруппДоступа КАК ТаблицыГруппДоступаПроверкаПрава + ГДЕ + ТаблицыГруппДоступаПроверкаПрава.ГруппаДоступа = ГруппыДоступа.Ссылка + И ТаблицыГруппДоступаПроверкаПрава.Таблица = #Параметр(46) + #Если Не "#Параметр(45)" = "ПравоЧтенияПоИдентификатору" #Тогда + И ТаблицыГруппДоступаПроверкаПрава.ПравоИзменение + #КонецЕсли + ) +#ИначеЕсли Не &ОграничениеДоступаНаУровнеЗаписейИспользуется #Тогда + ИСТИНА // Группа параметров отключена. +#ИначеЕсли "#Параметр(45)" = "НастройкиПрав" #Тогда + + ( + ИСТИНА В // Проверка, что пользователю или какой-нибудь группе пользователя право разрешено + ( + ВЫБРАТЬ ПЕРВЫЕ 1 ИСТИНА + ИЗ РегистрСведений.НастройкиПравОбъектов КАК НастройкиПрав + ВНУТРЕННЕЕ СОЕДИНЕНИЕ РегистрСведений.НаследованиеНастроекПравОбъектов КАК НаследованиеНастроек + ПО + НаследованиеНастроек.Объект = #Параметр(46) + И НастройкиПрав.Объект = НаследованиеНастроек.Родитель + #Если #ИмяТекущегоПраваДоступа = "Чтение" #Тогда + И НаследованиеНастроек.УровеньИспользования < НастройкиПрав.УровеньРазрешенияЧтения + #Иначе + #Если СтрСодержит(&ТаблицыСОтдельнымиНастройкамиПрав, "|#Параметр(1);") #Тогда + И НастройкиПрав.Таблица = СвойстваТекущейТаблицы.Ссылка + #Иначе + И НастройкиПрав.Таблица = ЗНАЧЕНИЕ(Справочник.ИдентификаторыОбъектовМетаданных.ПустаяСсылка) + #КонецЕсли + И НаследованиеНастроек.УровеньИспользования < НастройкиПрав.УровеньРазрешенияИзменения + #КонецЕсли + ВНУТРЕННЕЕ СОЕДИНЕНИЕ РегистрСведений.СоставыГруппПользователей КАК СоставыГруппПользователей + ПО + СоставыГруппПользователей.Пользователь = &АвторизованныйПользователь + И СоставыГруппПользователей.ГруппаПользователей = НастройкиПрав.Пользователь + ) + И НЕ ЛОЖЬ В // Проверка, что пользователю или какой-нибудь группе пользователя право запрещено. + ( + ВЫБРАТЬ ПЕРВЫЕ 1 ЛОЖЬ + ИЗ РегистрСведений.НастройкиПравОбъектов КАК НастройкиПрав + ВНУТРЕННЕЕ СОЕДИНЕНИЕ РегистрСведений.НаследованиеНастроекПравОбъектов КАК НаследованиеНастроек + ПО + НаследованиеНастроек.Объект = #Параметр(46) + И НастройкиПрав.Объект = НаследованиеНастроек.Родитель + #Если #ИмяТекущегоПраваДоступа = "Чтение" #Тогда + И НаследованиеНастроек.УровеньИспользования < НастройкиПрав.УровеньЗапрещенияЧтения + #Иначе + #Если СтрСодержит(&ТаблицыСОтдельнымиНастройкамиПрав, "|#Параметр(1);") #Тогда + И НастройкиПрав.Таблица = СвойстваТекущейТаблицы.Ссылка + #Иначе + И НастройкиПрав.Таблица = ЗНАЧЕНИЕ(Справочник.ИдентификаторыОбъектовМетаданных.ПустаяСсылка) + #КонецЕсли + И НаследованиеНастроек.УровеньИспользования < НастройкиПрав.УровеньЗапрещенияИзменения + #КонецЕсли + ВНУТРЕННЕЕ СОЕДИНЕНИЕ РегистрСведений.СоставыГруппПользователей КАК СоставыГруппПользователей + ПО + СоставыГруппПользователей.Пользователь = &АвторизованныйПользователь + И СоставыГруппПользователей.ГруппаПользователей = НастройкиПрав.Пользователь + ) + ) +#ИначеЕсли Не СтрСодержит(&ВсеВидыДоступаКромеСпециальных, ",#Параметр(45),") #Тогда + // Когда параметр задан неверно, вставляется строка, чтобы вызвать ошибку сборки ограничения доступа. + #Если СтрСодержит("#Параметр(45)", ",") #Тогда + НеверныйВидДоступа: "#Параметр(45)" - "Список имен видов доступа не найден" + #Иначе + НеверныйВидДоступа: "#Параметр(45)" - "Имя вида доступа не найдено" + #КонецЕсли +#ИначеЕсли &ВидыДоступаСОтключеннымИспользованием <> "Все" + И Не СтрСодержит(&ВидыДоступаСОтключеннымИспользованием, ",#Параметр(45),") #Тогда + + ( + ЕСТЬNULL(#Параметр(46), НЕОПРЕДЕЛЕНО) <> НЕОПРЕДЕЛЕНО + И + #Если (Не СтрСодержит(&ВидыДоступаСОтключеннымИспользованием, ",Пользователи,") И СтрСодержит(",#Параметр(45),", ",Пользователи,")) + Или (Не СтрСодержит(&ВидыДоступаСОтключеннымИспользованием, ",ВнешниеПользователи,") И СтрСодержит(",#Параметр(45),", ",ВнешниеПользователи,")) #Тогда + НЕ + ( + НЕ ИСТИНА В + ( + ВЫБРАТЬ ПЕРВЫЕ 1 ИСТИНА + ИЗ РегистрСведений.ГруппыЗначенийДоступа КАК ГруппыЗначенийДоступа + ГДЕ + ГруппыЗначенийДоступа.ЗначениеДоступа = #Параметр(46) + И ГруппыЗначенийДоступа.ГруппаЗначенийДоступа = &АвторизованныйПользователь + ) + И НЕ + #Иначе + ( + #КонецЕсли + ВЫБОР + КОГДА ИСТИНА В + ( + #Если СтрСодержит(&ВидыДоступаБезГруппДляЗначенияДоступа, ",#Параметр(45),") #Тогда + ВЫБРАТЬ ПЕРВЫЕ 1 ИСТИНА + ИЗ РегистрСведений.ЗначенияГруппДоступа КАК Значения + ГДЕ + Значения.ГруппаДоступа = ГруппыДоступа.Ссылка + И Значения.ЗначениеДоступа = #Параметр(46) + #ИначеЕсли "#Параметр(46)" = "Т.Ссылка" + И "#Параметр(45)" <> "Пользователи" + И "#Параметр(45)" <> "ВнешниеПользователи" #Тогда + #Если СтрСодержит("#Параметр(45)", ",") #Тогда + // Когда параметр задан неверно, вставляется строка, чтобы вызвать ошибку сборки ограничения доступа. + НеверныйВидДоступа: "#Параметр(45)" - "При проверке таблицы значения доступа можно указывать только один вид доступа" + #ИначеЕсли СтрСодержит(&ВидыДоступаСОднойГруппойДляЗначенияДоступа, ",#Параметр(45),") #Тогда + ВЫБРАТЬ ПЕРВЫЕ 1 ИСТИНА + ИЗ РегистрСведений.ЗначенияГруппДоступа КАК Значения + ГДЕ + Значения.ГруппаДоступа = ГруппыДоступа.Ссылка + И Значения.ЗначениеДоступа = Т.ГруппаДоступа + #Иначе // Значения доступа, для которых можно указать несколько групп значений доступа. + ВЫБРАТЬ ПЕРВЫЕ 1 ИСТИНА + ИЗ РегистрСведений.ЗначенияГруппДоступа КАК Значения + ВНУТРЕННЕЕ СОЕДИНЕНИЕ #Параметр(1).ГруппыДоступа КАК ГруппыЗначений + ПО + Значения.ГруппаДоступа = ГруппыДоступа.Ссылка + И Значения.ЗначениеДоступа = ГруппыЗначений.ГруппаДоступа + И ГруппыЗначений.Ссылка = #Параметр(46) + #КонецЕсли + #Иначе + ВЫБРАТЬ ПЕРВЫЕ 1 ИСТИНА + ИЗ РегистрСведений.ЗначенияГруппДоступа КАК Значения + ВНУТРЕННЕЕ СОЕДИНЕНИЕ РегистрСведений.ГруппыЗначенийДоступа КАК ГруппыЗначений + ПО + Значения.ГруппаДоступа = ГруппыДоступа.Ссылка + И Значения.ЗначениеДоступа = ГруппыЗначений.ГруппаЗначенийДоступа + И ГруппыЗначений.ЗначениеДоступа = #Параметр(46) + #КонецЕсли + ) + ТОГДА ИСТИНА + ИНАЧЕ ЛОЖЬ + КОНЕЦ + = + ВЫБОР + КОГДА ИСТИНА В + ( + ВЫБРАТЬ ПЕРВЫЕ 1 ИСТИНА + ИЗ РегистрСведений.ЗначенияГруппДоступаПоУмолчанию КАК ЗначенияПоУмолчанию + ГДЕ + ЗначенияПоУмолчанию.ГруппаДоступа = ГруппыДоступа.Ссылка + И ТИПЗНАЧЕНИЯ(ЗначенияПоУмолчанию.ТипЗначенийДоступа) = ТИПЗНАЧЕНИЯ(#Параметр(46)) + И ЗначенияПоУмолчанию.ВсеРазрешены = ЛОЖЬ + ) + ТОГДА ИСТИНА + ИНАЧЕ ЛОЖЬ + КОНЕЦ + ) + ) +#Иначе + ЕСТЬNULL(#Параметр(46), НЕОПРЕДЕЛЕНО) <> НЕОПРЕДЕЛЕНО +#КонецЕсли + + #Параметр(47) // [)[)][)]...] [ИЛИ|И] [([(][(]...] оператор И/ИЛИ с/без скобок. + +//// Проверка значения поля группы параметров 15. +#Если "#Параметр(48)" = "" И "#Параметр(49)" = "" #Тогда + // Группа параметров не используется. +#ИначеЕсли &ОграничениеДоступаНаУровнеЗаписейИспользуется И ("#Параметр(48)" = "Условие" Или "#Параметр(48)" = "") #Тогда + // Когда имя вида доступа "Условие" (или ""), тогда вместо имени поля задано условие. + ( #Параметр(49) ) +#ИначеЕсли "#Параметр(48)" = "ПравоЧтения" Или "#Параметр(48)" = "ПравоИзменения" #Тогда + #Параметр(49) <> НЕОПРЕДЕЛЕНО + И ИСТИНА В + ( // Проверка права пользователя на таблицу Значения, установленного в поле. + ВЫБРАТЬ ПЕРВЫЕ 1 ИСТИНА + ИЗ РегистрСведений.ТаблицыГруппДоступа КАК ТаблицыГруппДоступаПроверкаПрава + ГДЕ + ТаблицыГруппДоступаПроверкаПрава.ГруппаДоступа = ГруппыДоступа.Ссылка + И ТИПЗНАЧЕНИЯ(ТаблицыГруппДоступаПроверкаПрава.ТипТаблицы) = ТИПЗНАЧЕНИЯ(#Параметр(49)) + #Если Не "#Параметр(48)" = "ПравоЧтения" #Тогда + И ТаблицыГруппДоступаПроверкаПрава.ПравоИзменение + #КонецЕсли + ) +#ИначеЕсли "#Параметр(48)" = "ПравоЧтенияПоИдентификатору" Или "#Параметр(48)" = "ПравоИзмененияПоИдентификатору" #Тогда + ИСТИНА В + ( // Проверка права пользователя на таблицу, идентификатор которой указан в Значении, установленном в поле. + ВЫБРАТЬ ПЕРВЫЕ 1 ИСТИНА + ИЗ РегистрСведений.ТаблицыГруппДоступа КАК ТаблицыГруппДоступаПроверкаПрава + ГДЕ + ТаблицыГруппДоступаПроверкаПрава.ГруппаДоступа = ГруппыДоступа.Ссылка + И ТаблицыГруппДоступаПроверкаПрава.Таблица = #Параметр(49) + #Если Не "#Параметр(48)" = "ПравоЧтенияПоИдентификатору" #Тогда + И ТаблицыГруппДоступаПроверкаПрава.ПравоИзменение + #КонецЕсли + ) +#ИначеЕсли Не &ОграничениеДоступаНаУровнеЗаписейИспользуется #Тогда + ИСТИНА // Группа параметров отключена. +#ИначеЕсли "#Параметр(48)" = "НастройкиПрав" #Тогда + + ( + ИСТИНА В // Проверка, что пользователю или какой-нибудь группе пользователя право разрешено + ( + ВЫБРАТЬ ПЕРВЫЕ 1 ИСТИНА + ИЗ РегистрСведений.НастройкиПравОбъектов КАК НастройкиПрав + ВНУТРЕННЕЕ СОЕДИНЕНИЕ РегистрСведений.НаследованиеНастроекПравОбъектов КАК НаследованиеНастроек + ПО + НаследованиеНастроек.Объект = #Параметр(49) + И НастройкиПрав.Объект = НаследованиеНастроек.Родитель + #Если #ИмяТекущегоПраваДоступа = "Чтение" #Тогда + И НаследованиеНастроек.УровеньИспользования < НастройкиПрав.УровеньРазрешенияЧтения + #Иначе + #Если СтрСодержит(&ТаблицыСОтдельнымиНастройкамиПрав, "|#Параметр(1);") #Тогда + И НастройкиПрав.Таблица = СвойстваТекущейТаблицы.Ссылка + #Иначе + И НастройкиПрав.Таблица = ЗНАЧЕНИЕ(Справочник.ИдентификаторыОбъектовМетаданных.ПустаяСсылка) + #КонецЕсли + И НаследованиеНастроек.УровеньИспользования < НастройкиПрав.УровеньРазрешенияИзменения + #КонецЕсли + ВНУТРЕННЕЕ СОЕДИНЕНИЕ РегистрСведений.СоставыГруппПользователей КАК СоставыГруппПользователей + ПО + СоставыГруппПользователей.Пользователь = &АвторизованныйПользователь + И СоставыГруппПользователей.ГруппаПользователей = НастройкиПрав.Пользователь + ) + И НЕ ЛОЖЬ В // Проверка, что пользователю или какой-нибудь группе пользователя право запрещено. + ( + ВЫБРАТЬ ПЕРВЫЕ 1 ЛОЖЬ + ИЗ РегистрСведений.НастройкиПравОбъектов КАК НастройкиПрав + ВНУТРЕННЕЕ СОЕДИНЕНИЕ РегистрСведений.НаследованиеНастроекПравОбъектов КАК НаследованиеНастроек + ПО + НаследованиеНастроек.Объект = #Параметр(49) + И НастройкиПрав.Объект = НаследованиеНастроек.Родитель + #Если #ИмяТекущегоПраваДоступа = "Чтение" #Тогда + И НаследованиеНастроек.УровеньИспользования < НастройкиПрав.УровеньЗапрещенияЧтения + #Иначе + #Если СтрСодержит(&ТаблицыСОтдельнымиНастройкамиПрав, "|#Параметр(1);") #Тогда + И НастройкиПрав.Таблица = СвойстваТекущейТаблицы.Ссылка + #Иначе + И НастройкиПрав.Таблица = ЗНАЧЕНИЕ(Справочник.ИдентификаторыОбъектовМетаданных.ПустаяСсылка) + #КонецЕсли + И НаследованиеНастроек.УровеньИспользования < НастройкиПрав.УровеньЗапрещенияИзменения + #КонецЕсли + ВНУТРЕННЕЕ СОЕДИНЕНИЕ РегистрСведений.СоставыГруппПользователей КАК СоставыГруппПользователей + ПО + СоставыГруппПользователей.Пользователь = &АвторизованныйПользователь + И СоставыГруппПользователей.ГруппаПользователей = НастройкиПрав.Пользователь + ) + ) +#ИначеЕсли Не СтрСодержит(&ВсеВидыДоступаКромеСпециальных, ",#Параметр(48),") #Тогда + // Когда параметр задан неверно, вставляется строка, чтобы вызвать ошибку сборки ограничения доступа. + #Если СтрСодержит("#Параметр(48)", ",") #Тогда + НеверныйВидДоступа: "#Параметр(48)" - "Список имен видов доступа не найден" + #Иначе + НеверныйВидДоступа: "#Параметр(48)" - "Имя вида доступа не найдено" + #КонецЕсли +#ИначеЕсли &ВидыДоступаСОтключеннымИспользованием <> "Все" + И Не СтрСодержит(&ВидыДоступаСОтключеннымИспользованием, ",#Параметр(48),") #Тогда + + ( + ЕСТЬNULL(#Параметр(49), НЕОПРЕДЕЛЕНО) <> НЕОПРЕДЕЛЕНО + И + #Если (Не СтрСодержит(&ВидыДоступаСОтключеннымИспользованием, ",Пользователи,") И СтрСодержит(",#Параметр(48),", ",Пользователи,")) + Или (Не СтрСодержит(&ВидыДоступаСОтключеннымИспользованием, ",ВнешниеПользователи,") И СтрСодержит(",#Параметр(48),", ",ВнешниеПользователи,")) #Тогда + НЕ + ( + НЕ ИСТИНА В + ( + ВЫБРАТЬ ПЕРВЫЕ 1 ИСТИНА + ИЗ РегистрСведений.ГруппыЗначенийДоступа КАК ГруппыЗначенийДоступа + ГДЕ + ГруппыЗначенийДоступа.ЗначениеДоступа = #Параметр(49) + И ГруппыЗначенийДоступа.ГруппаЗначенийДоступа = &АвторизованныйПользователь + ) + И НЕ + #Иначе + ( + #КонецЕсли + ВЫБОР + КОГДА ИСТИНА В + ( + #Если СтрСодержит(&ВидыДоступаБезГруппДляЗначенияДоступа, ",#Параметр(48),") #Тогда + ВЫБРАТЬ ПЕРВЫЕ 1 ИСТИНА + ИЗ РегистрСведений.ЗначенияГруппДоступа КАК Значения + ГДЕ + Значения.ГруппаДоступа = ГруппыДоступа.Ссылка + И Значения.ЗначениеДоступа = #Параметр(49) + #ИначеЕсли "#Параметр(49)" = "Т.Ссылка" + И "#Параметр(48)" <> "Пользователи" + И "#Параметр(48)" <> "ВнешниеПользователи" #Тогда + #Если СтрСодержит("#Параметр(48)", ",") #Тогда + // Когда параметр задан неверно, вставляется строка, чтобы вызвать ошибку сборки ограничения доступа. + НеверныйВидДоступа: "#Параметр(48)" - "При проверке таблицы значения доступа можно указывать только один вид доступа" + #ИначеЕсли СтрСодержит(&ВидыДоступаСОднойГруппойДляЗначенияДоступа, ",#Параметр(48),") #Тогда + ВЫБРАТЬ ПЕРВЫЕ 1 ИСТИНА + ИЗ РегистрСведений.ЗначенияГруппДоступа КАК Значения + ГДЕ + Значения.ГруппаДоступа = ГруппыДоступа.Ссылка + И Значения.ЗначениеДоступа = Т.ГруппаДоступа + #Иначе // Значения доступа, для которых можно указать несколько групп значений доступа. + ВЫБРАТЬ ПЕРВЫЕ 1 ИСТИНА + ИЗ РегистрСведений.ЗначенияГруппДоступа КАК Значения + ВНУТРЕННЕЕ СОЕДИНЕНИЕ #Параметр(1).ГруппыДоступа КАК ГруппыЗначений + ПО + Значения.ГруппаДоступа = ГруппыДоступа.Ссылка + И Значения.ЗначениеДоступа = ГруппыЗначений.ГруппаДоступа + И ГруппыЗначений.Ссылка = #Параметр(49) + #КонецЕсли + #Иначе + ВЫБРАТЬ ПЕРВЫЕ 1 ИСТИНА + ИЗ РегистрСведений.ЗначенияГруппДоступа КАК Значения + ВНУТРЕННЕЕ СОЕДИНЕНИЕ РегистрСведений.ГруппыЗначенийДоступа КАК ГруппыЗначений + ПО + Значения.ГруппаДоступа = ГруппыДоступа.Ссылка + И Значения.ЗначениеДоступа = ГруппыЗначений.ГруппаЗначенийДоступа + И ГруппыЗначений.ЗначениеДоступа = #Параметр(49) + #КонецЕсли + ) + ТОГДА ИСТИНА + ИНАЧЕ ЛОЖЬ + КОНЕЦ + = + ВЫБОР + КОГДА ИСТИНА В + ( + ВЫБРАТЬ ПЕРВЫЕ 1 ИСТИНА + ИЗ РегистрСведений.ЗначенияГруппДоступаПоУмолчанию КАК ЗначенияПоУмолчанию + ГДЕ + ЗначенияПоУмолчанию.ГруппаДоступа = ГруппыДоступа.Ссылка + И ТИПЗНАЧЕНИЯ(ЗначенияПоУмолчанию.ТипЗначенийДоступа) = ТИПЗНАЧЕНИЯ(#Параметр(49)) + И ЗначенияПоУмолчанию.ВсеРазрешены = ЛОЖЬ + ) + ТОГДА ИСТИНА + ИНАЧЕ ЛОЖЬ + КОНЕЦ + ) + ) +#Иначе + ЕСТЬNULL(#Параметр(49), НЕОПРЕДЕЛЕНО) <> НЕОПРЕДЕЛЕНО +#КонецЕсли + + #Параметр(50) // [)[)][)]...] [ИЛИ|И] [([(][(]...] оператор И/ИЛИ с/без скобок. + +//// Проверка значения поля группы параметров 16. +#Если "#Параметр(51)" = "" И "#Параметр(52)" = "" #Тогда + // Группа параметров не используется. +#ИначеЕсли &ОграничениеДоступаНаУровнеЗаписейИспользуется И ("#Параметр(51)" = "Условие" Или "#Параметр(51)" = "") #Тогда + // Когда имя вида доступа "Условие" (или ""), тогда вместо имени поля задано условие. + ( #Параметр(52) ) +#ИначеЕсли "#Параметр(51)" = "ПравоЧтения" Или "#Параметр(51)" = "ПравоИзменения" #Тогда + #Параметр(52) <> НЕОПРЕДЕЛЕНО + И ИСТИНА В + ( // Проверка права пользователя на таблицу Значения, установленного в поле. + ВЫБРАТЬ ПЕРВЫЕ 1 ИСТИНА + ИЗ РегистрСведений.ТаблицыГруппДоступа КАК ТаблицыГруппДоступаПроверкаПрава + ГДЕ + ТаблицыГруппДоступаПроверкаПрава.ГруппаДоступа = ГруппыДоступа.Ссылка + И ТИПЗНАЧЕНИЯ(ТаблицыГруппДоступаПроверкаПрава.ТипТаблицы) = ТИПЗНАЧЕНИЯ(#Параметр(52)) + #Если Не "#Параметр(51)" = "ПравоЧтения" #Тогда + И ТаблицыГруппДоступаПроверкаПрава.ПравоИзменение + #КонецЕсли + ) +#ИначеЕсли "#Параметр(51)" = "ПравоЧтенияПоИдентификатору" Или "#Параметр(51)" = "ПравоИзмененияПоИдентификатору" #Тогда + ИСТИНА В + ( // Проверка права пользователя на таблицу, идентификатор которой указан в Значении, установленном в поле. + ВЫБРАТЬ ПЕРВЫЕ 1 ИСТИНА + ИЗ РегистрСведений.ТаблицыГруппДоступа КАК ТаблицыГруппДоступаПроверкаПрава + ГДЕ + ТаблицыГруппДоступаПроверкаПрава.ГруппаДоступа = ГруппыДоступа.Ссылка + И ТаблицыГруппДоступаПроверкаПрава.Таблица = #Параметр(52) + #Если Не "#Параметр(51)" = "ПравоЧтенияПоИдентификатору" #Тогда + И ТаблицыГруппДоступаПроверкаПрава.ПравоИзменение + #КонецЕсли + ) +#ИначеЕсли Не &ОграничениеДоступаНаУровнеЗаписейИспользуется #Тогда + ИСТИНА // Группа параметров отключена. +#ИначеЕсли "#Параметр(51)" = "НастройкиПрав" #Тогда + + ( + ИСТИНА В // Проверка, что пользователю или какой-нибудь группе пользователя право разрешено + ( + ВЫБРАТЬ ПЕРВЫЕ 1 ИСТИНА + ИЗ РегистрСведений.НастройкиПравОбъектов КАК НастройкиПрав + ВНУТРЕННЕЕ СОЕДИНЕНИЕ РегистрСведений.НаследованиеНастроекПравОбъектов КАК НаследованиеНастроек + ПО + НаследованиеНастроек.Объект = #Параметр(52) + И НастройкиПрав.Объект = НаследованиеНастроек.Родитель + #Если #ИмяТекущегоПраваДоступа = "Чтение" #Тогда + И НаследованиеНастроек.УровеньИспользования < НастройкиПрав.УровеньРазрешенияЧтения + #Иначе + #Если СтрСодержит(&ТаблицыСОтдельнымиНастройкамиПрав, "|#Параметр(1);") #Тогда + И НастройкиПрав.Таблица = СвойстваТекущейТаблицы.Ссылка + #Иначе + И НастройкиПрав.Таблица = ЗНАЧЕНИЕ(Справочник.ИдентификаторыОбъектовМетаданных.ПустаяСсылка) + #КонецЕсли + И НаследованиеНастроек.УровеньИспользования < НастройкиПрав.УровеньРазрешенияИзменения + #КонецЕсли + ВНУТРЕННЕЕ СОЕДИНЕНИЕ РегистрСведений.СоставыГруппПользователей КАК СоставыГруппПользователей + ПО + СоставыГруппПользователей.Пользователь = &АвторизованныйПользователь + И СоставыГруппПользователей.ГруппаПользователей = НастройкиПрав.Пользователь + ) + И НЕ ЛОЖЬ В // Проверка, что пользователю или какой-нибудь группе пользователя право запрещено. + ( + ВЫБРАТЬ ПЕРВЫЕ 1 ЛОЖЬ + ИЗ РегистрСведений.НастройкиПравОбъектов КАК НастройкиПрав + ВНУТРЕННЕЕ СОЕДИНЕНИЕ РегистрСведений.НаследованиеНастроекПравОбъектов КАК НаследованиеНастроек + ПО + НаследованиеНастроек.Объект = #Параметр(52) + И НастройкиПрав.Объект = НаследованиеНастроек.Родитель + #Если #ИмяТекущегоПраваДоступа = "Чтение" #Тогда + И НаследованиеНастроек.УровеньИспользования < НастройкиПрав.УровеньЗапрещенияЧтения + #Иначе + #Если СтрСодержит(&ТаблицыСОтдельнымиНастройкамиПрав, "|#Параметр(1);") #Тогда + И НастройкиПрав.Таблица = СвойстваТекущейТаблицы.Ссылка + #Иначе + И НастройкиПрав.Таблица = ЗНАЧЕНИЕ(Справочник.ИдентификаторыОбъектовМетаданных.ПустаяСсылка) + #КонецЕсли + И НаследованиеНастроек.УровеньИспользования < НастройкиПрав.УровеньЗапрещенияИзменения + #КонецЕсли + ВНУТРЕННЕЕ СОЕДИНЕНИЕ РегистрСведений.СоставыГруппПользователей КАК СоставыГруппПользователей + ПО + СоставыГруппПользователей.Пользователь = &АвторизованныйПользователь + И СоставыГруппПользователей.ГруппаПользователей = НастройкиПрав.Пользователь + ) + ) +#ИначеЕсли Не СтрСодержит(&ВсеВидыДоступаКромеСпециальных, ",#Параметр(51),") #Тогда + // Когда параметр задан неверно, вставляется строка, чтобы вызвать ошибку сборки ограничения доступа. + #Если СтрСодержит("#Параметр(51)", ",") #Тогда + НеверныйВидДоступа: "#Параметр(51)" - "Список имен видов доступа не найден" + #Иначе + НеверныйВидДоступа: "#Параметр(51)" - "Имя вида доступа не найдено" + #КонецЕсли +#ИначеЕсли &ВидыДоступаСОтключеннымИспользованием <> "Все" + И Не СтрСодержит(&ВидыДоступаСОтключеннымИспользованием, ",#Параметр(51),") #Тогда + + ( + ЕСТЬNULL(#Параметр(52), НЕОПРЕДЕЛЕНО) <> НЕОПРЕДЕЛЕНО + И + #Если (Не СтрСодержит(&ВидыДоступаСОтключеннымИспользованием, ",Пользователи,") И СтрСодержит(",#Параметр(51),", ",Пользователи,")) + Или (Не СтрСодержит(&ВидыДоступаСОтключеннымИспользованием, ",ВнешниеПользователи,") И СтрСодержит(",#Параметр(51),", ",ВнешниеПользователи,")) #Тогда + НЕ + ( + НЕ ИСТИНА В + ( + ВЫБРАТЬ ПЕРВЫЕ 1 ИСТИНА + ИЗ РегистрСведений.ГруппыЗначенийДоступа КАК ГруппыЗначенийДоступа + ГДЕ + ГруппыЗначенийДоступа.ЗначениеДоступа = #Параметр(52) + И ГруппыЗначенийДоступа.ГруппаЗначенийДоступа = &АвторизованныйПользователь + ) + И НЕ + #Иначе + ( + #КонецЕсли + ВЫБОР + КОГДА ИСТИНА В + ( + #Если СтрСодержит(&ВидыДоступаБезГруппДляЗначенияДоступа, ",#Параметр(51),") #Тогда + ВЫБРАТЬ ПЕРВЫЕ 1 ИСТИНА + ИЗ РегистрСведений.ЗначенияГруппДоступа КАК Значения + ГДЕ + Значения.ГруппаДоступа = ГруппыДоступа.Ссылка + И Значения.ЗначениеДоступа = #Параметр(52) + #ИначеЕсли "#Параметр(52)" = "Т.Ссылка" + И "#Параметр(51)" <> "Пользователи" + И "#Параметр(51)" <> "ВнешниеПользователи" #Тогда + #Если СтрСодержит("#Параметр(51)", ",") #Тогда + // Когда параметр задан неверно, вставляется строка, чтобы вызвать ошибку сборки ограничения доступа. + НеверныйВидДоступа: "#Параметр(51)" - "При проверке таблицы значения доступа можно указывать только один вид доступа" + #ИначеЕсли СтрСодержит(&ВидыДоступаСОднойГруппойДляЗначенияДоступа, ",#Параметр(51),") #Тогда + ВЫБРАТЬ ПЕРВЫЕ 1 ИСТИНА + ИЗ РегистрСведений.ЗначенияГруппДоступа КАК Значения + ГДЕ + Значения.ГруппаДоступа = ГруппыДоступа.Ссылка + И Значения.ЗначениеДоступа = Т.ГруппаДоступа + #Иначе // Значения доступа, для которых можно указать несколько групп значений доступа. + ВЫБРАТЬ ПЕРВЫЕ 1 ИСТИНА + ИЗ РегистрСведений.ЗначенияГруппДоступа КАК Значения + ВНУТРЕННЕЕ СОЕДИНЕНИЕ #Параметр(1).ГруппыДоступа КАК ГруппыЗначений + ПО + Значения.ГруппаДоступа = ГруппыДоступа.Ссылка + И Значения.ЗначениеДоступа = ГруппыЗначений.ГруппаДоступа + И ГруппыЗначений.Ссылка = #Параметр(52) + #КонецЕсли + #Иначе + ВЫБРАТЬ ПЕРВЫЕ 1 ИСТИНА + ИЗ РегистрСведений.ЗначенияГруппДоступа КАК Значения + ВНУТРЕННЕЕ СОЕДИНЕНИЕ РегистрСведений.ГруппыЗначенийДоступа КАК ГруппыЗначений + ПО + Значения.ГруппаДоступа = ГруппыДоступа.Ссылка + И Значения.ЗначениеДоступа = ГруппыЗначений.ГруппаЗначенийДоступа + И ГруппыЗначений.ЗначениеДоступа = #Параметр(52) + #КонецЕсли + ) + ТОГДА ИСТИНА + ИНАЧЕ ЛОЖЬ + КОНЕЦ + = + ВЫБОР + КОГДА ИСТИНА В + ( + ВЫБРАТЬ ПЕРВЫЕ 1 ИСТИНА + ИЗ РегистрСведений.ЗначенияГруппДоступаПоУмолчанию КАК ЗначенияПоУмолчанию + ГДЕ + ЗначенияПоУмолчанию.ГруппаДоступа = ГруппыДоступа.Ссылка + И ТИПЗНАЧЕНИЯ(ЗначенияПоУмолчанию.ТипЗначенийДоступа) = ТИПЗНАЧЕНИЯ(#Параметр(52)) + И ЗначенияПоУмолчанию.ВсеРазрешены = ЛОЖЬ + ) + ТОГДА ИСТИНА + ИНАЧЕ ЛОЖЬ + КОНЕЦ + ) + ) +#Иначе + ЕСТЬNULL(#Параметр(52), НЕОПРЕДЕЛЕНО) <> НЕОПРЕДЕЛЕНО +#КонецЕсли + + #Параметр(53) // [)[)][)]...] [ИЛИ|И] [([(][(]...] оператор И/ИЛИ с/без скобок. + + ) +) +#КонецЕсли + +#КонецЕсли // Информационная база заблокирована для обновления. + + diff --git a/SSL/src/Roles/ЧтениеЛичныхСертификатовКлючейЭлектроннойПодписиИШифрования/ЧтениеЛичныхСертификатовКлючейЭлектроннойПодписиИШифрования.mdo b/SSL/src/Roles/ЧтениеЛичныхСертификатовКлючейЭлектроннойПодписиИШифрования/ЧтениеЛичныхСертификатовКлючейЭлектроннойПодписиИШифрования.mdo new file mode 100644 index 000000000..dafa04c98 --- /dev/null +++ b/SSL/src/Roles/ЧтениеЛичныхСертификатовКлючейЭлектроннойПодписиИШифрования/ЧтениеЛичныхСертификатовКлючейЭлектроннойПодписиИШифрования.mdo @@ -0,0 +1,8 @@ + + + ЧтениеЛичныхСертификатовКлючейЭлектроннойПодписиИШифрования + + ru + Чтение личных сертификатов ключей электронной подписи и шифрования + + diff --git a/SSL/src/Roles/ЧтениеМашиночитаемыхДоверенностей/Rights.rights b/SSL/src/Roles/ЧтениеМашиночитаемыхДоверенностей/Rights.rights index 8b858ebbe..35660d377 100644 --- a/SSL/src/Roles/ЧтениеМашиночитаемыхДоверенностей/Rights.rights +++ b/SSL/src/Roles/ЧтениеМашиночитаемыхДоверенностей/Rights.rights @@ -3,6 +3,32 @@ false true false + + Catalog.МашиночитаемыеДоверенности + + Read + true + + + View + true + + + InputByString + true + + + + InformationRegister.МашиночитаемыеДоверенностиСтатусы + + Read + true + + + View + true + + Configuration.БиблиотекаСтандартныхПодсистем @@ -30,32 +56,6 @@ true - - Catalog.МашиночитаемыеДоверенности - - Read - true - - - View - true - - - InputByString - true - - - - InformationRegister.МашиночитаемыеДоверенностиСтатусы - - Read - true - - - View - true - - Catalog.МашиночитаемыеДоверенностиПрисоединенныеФайлы diff --git a/SSL/src/Roles/ЧтениеОтветовНаВопросыАнкет/Rights.rights b/SSL/src/Roles/ЧтениеОтветовНаВопросыАнкет/Rights.rights index 8283684a3..853efec13 100644 --- a/SSL/src/Roles/ЧтениеОтветовНаВопросыАнкет/Rights.rights +++ b/SSL/src/Roles/ЧтениеОтветовНаВопросыАнкет/Rights.rights @@ -66,6 +66,32 @@ true + + Document.Анкета + + Read + true + + + View + true + + + InputByString + true + + + + Report.АналитическийОтчетПоАнкетированию + + Use + true + + + View + true + + Configuration.БиблиотекаСтандартныхПодсистем @@ -93,32 +119,6 @@ true - - Document.Анкета - - Read - true - - - View - true - - - InputByString - true - - - - Report.АналитическийОтчетПоАнкетированию - - Use - true - - - View - true - - ChartOfCharacteristicTypes.ВопросыДляАнкетирования diff --git a/SSL/src/Roles/ЧтениеРассылокОтчетов/Rights.rights b/SSL/src/Roles/ЧтениеРассылокОтчетов/Rights.rights index b698c0a26..c74f12466 100644 --- a/SSL/src/Roles/ЧтениеРассылокОтчетов/Rights.rights +++ b/SSL/src/Roles/ЧтениеРассылокОтчетов/Rights.rights @@ -25,33 +25,6 @@ true - - Configuration.БиблиотекаСтандартныхПодсистем - - MainWindowModeNormal - true - - - MainWindowModeWorkplace - true - - - MainWindowModeEmbeddedWorkplace - true - - - MainWindowModeFullscreenWorkplace - true - - - MainWindowModeKiosk - true - - - AnalyticsSystemClient - true - - InformationRegister.СертификатыПолучателейРассылкиОтчетов @@ -87,6 +60,33 @@ true + + Configuration.БиблиотекаСтандартныхПодсистем + + MainWindowModeNormal + true + + + MainWindowModeWorkplace + true + + + MainWindowModeEmbeddedWorkplace + true + + + MainWindowModeFullscreenWorkplace + true + + + MainWindowModeKiosk + true + + + AnalyticsSystemClient + true + + Report.КонтрольРассылкиОтчетов diff --git a/SSL/src/Roles/ЧтениеРезультатовПроверкиУчета/Rights.rights b/SSL/src/Roles/ЧтениеРезультатовПроверкиУчета/Rights.rights index 5aa27d99c..5448942bf 100644 --- a/SSL/src/Roles/ЧтениеРезультатовПроверкиУчета/Rights.rights +++ b/SSL/src/Roles/ЧтениеРезультатовПроверкиУчета/Rights.rights @@ -25,6 +25,32 @@ true + + Report.РезультатыПроверкиУчета + + Use + true + + + View + true + + + + Catalog.ПравилаПроверкиУчета + + Read + true + + + View + true + + + InputByString + true + + Configuration.БиблиотекаСтандартныхПодсистем @@ -52,32 +78,6 @@ true - - Report.РезультатыПроверкиУчета - - Use - true - - - View - true - - - - Catalog.ПравилаПроверкиУчета - - Read - true - - - View - true - - - InputByString - true - - InformationRegister.РезультатыПроверкиУчета diff --git a/SSL/src/Roles/ЧтениеСертификатовКлючейЭлектроннойПодписиИШифрования/Rights.rights b/SSL/src/Roles/ЧтениеСертификатовКлючейЭлектроннойПодписиИШифрования/Rights.rights new file mode 100644 index 000000000..4b9c1f5d3 --- /dev/null +++ b/SSL/src/Roles/ЧтениеСертификатовКлючейЭлектроннойПодписиИШифрования/Rights.rights @@ -0,0 +1,81 @@ + + + false + true + false + + InformationRegister.ЗаявленияНаВыпускСертификата + + Read + true + + + View + true + + + + DataProcessor.ЗаявлениеНаВыпускНовогоКвалифицированногоСертификата + + Use + true + + + View + true + + + + Catalog.СертификатыКлючейЭлектроннойПодписиИШифрования + + Read + true + + + View + true + + + InputByString + true + + + + Report.СертификатыЭлектроннойПодписи + + Use + true + + + View + true + + + + Configuration.БиблиотекаСтандартныхПодсистем + + MainWindowModeNormal + true + + + MainWindowModeWorkplace + true + + + MainWindowModeEmbeddedWorkplace + true + + + MainWindowModeFullscreenWorkplace + true + + + MainWindowModeKiosk + true + + + AnalyticsSystemClient + true + + + diff --git a/SSL/src/Roles/ЧтениеСертификатовКлючейЭлектроннойПодписиИШифрования/ЧтениеСертификатовКлючейЭлектроннойПодписиИШифрования.mdo b/SSL/src/Roles/ЧтениеСертификатовКлючейЭлектроннойПодписиИШифрования/ЧтениеСертификатовКлючейЭлектроннойПодписиИШифрования.mdo new file mode 100644 index 000000000..fabca1d49 --- /dev/null +++ b/SSL/src/Roles/ЧтениеСертификатовКлючейЭлектроннойПодписиИШифрования/ЧтениеСертификатовКлючейЭлектроннойПодписиИШифрования.mdo @@ -0,0 +1,8 @@ + + + ЧтениеСертификатовКлючейЭлектроннойПодписиИШифрования + + ru + Чтение сертификатов ключей электронной подписи и шифрования + + diff --git a/SSL/src/Roles/ЧтениеСогласийНаОбработкуПерсональныхДанных/Rights.rights b/SSL/src/Roles/ЧтениеСогласийНаОбработкуПерсональныхДанных/Rights.rights index fad30ee31..e497158e7 100644 --- a/SSL/src/Roles/ЧтениеСогласийНаОбработкуПерсональныхДанных/Rights.rights +++ b/SSL/src/Roles/ЧтениеСогласийНаОбработкуПерсональныхДанных/Rights.rights @@ -36,6 +36,32 @@ true + + InformationRegister.СогласияНаОбработкуПерсональныхДанных + + Read + true + + + View + true + + + + Document.ОтзывСогласияНаОбработкуПерсональныхДанных + + Read + true + + + View + true + + + InputByString + true + + Configuration.БиблиотекаСтандартныхПодсистем @@ -63,32 +89,6 @@ true - - InformationRegister.СогласияНаОбработкуПерсональныхДанных - - Read - true - - - View - true - - - - Document.ОтзывСогласияНаОбработкуПерсональныхДанных - - Read - true - - - View - true - - - InputByString - true - - Document.СогласиеНаОбработкуПерсональныхДанных diff --git a/SSL/src/Roles/ЧтениеСостоянийОригиналовПервичныхДокументов/Rights.rights b/SSL/src/Roles/ЧтениеСостоянийОригиналовПервичныхДокументов/Rights.rights index c169f2846..c31d6a7d6 100644 --- a/SSL/src/Roles/ЧтениеСостоянийОригиналовПервичныхДокументов/Rights.rights +++ b/SSL/src/Roles/ЧтениеСостоянийОригиналовПервичныхДокументов/Rights.rights @@ -14,6 +14,21 @@ true + + Catalog.СостоянияОригиналовПервичныхДокументов + + Read + true + + + View + true + + + InputByString + true + + Configuration.БиблиотекаСтандартныхПодсистем @@ -41,19 +56,4 @@ true - - Catalog.СостоянияОригиналовПервичныхДокументов - - Read - true - - - View - true - - - InputByString - true - - diff --git a/SSL/src/Roles/ЧтениеУчетныхЗаписейЭлектроннойПочты/Rights.rights b/SSL/src/Roles/ЧтениеУчетныхЗаписейЭлектроннойПочты/Rights.rights index 99458ca89..952ddf7c2 100644 --- a/SSL/src/Roles/ЧтениеУчетныхЗаписейЭлектроннойПочты/Rights.rights +++ b/SSL/src/Roles/ЧтениеУчетныхЗаписейЭлектроннойПочты/Rights.rights @@ -3,33 +3,6 @@ false true false - - Configuration.БиблиотекаСтандартныхПодсистем - - MainWindowModeNormal - true - - - MainWindowModeWorkplace - true - - - MainWindowModeEmbeddedWorkplace - true - - - MainWindowModeFullscreenWorkplace - true - - - MainWindowModeKiosk - true - - - AnalyticsSystemClient - true - - Catalog.УчетныеЗаписиЭлектроннойПочты @@ -58,6 +31,33 @@ true + + Configuration.БиблиотекаСтандартныхПодсистем + + MainWindowModeNormal + true + + + MainWindowModeWorkplace + true + + + MainWindowModeEmbeddedWorkplace + true + + + MainWindowModeFullscreenWorkplace + true + + + MainWindowModeKiosk + true + + + AnalyticsSystemClient + true + + CommonForm.ОтправкаСообщения diff --git a/SSL/src/Roles/ЧтениеШаблоновСообщений/Rights.rights b/SSL/src/Roles/ЧтениеШаблоновСообщений/Rights.rights index b74323960..f101c0a67 100644 --- a/SSL/src/Roles/ЧтениеШаблоновСообщений/Rights.rights +++ b/SSL/src/Roles/ЧтениеШаблоновСообщений/Rights.rights @@ -44,6 +44,28 @@ true + + Constant.ИспользоватьОтправкуSMSВШаблонахСообщений + + Read + true + + + View + true + + + + Constant.ИспользоватьЭлектроннуюПочтуВШаблонахСообщений + + Read + true + + + View + true + + Configuration.БиблиотекаСтандартныхПодсистем @@ -71,26 +93,4 @@ true - - Constant.ИспользоватьОтправкуSMSВШаблонахСообщений - - Read - true - - - View - true - - - - Constant.ИспользоватьЭлектроннуюПочтуВШаблонахСообщений - - Read - true - - - View - true - - diff --git a/SSL/src/ScheduledJobs/ПереносФайловМеждуОперационнымХранилищемИФайловымАрхивом/Schedule.schedule b/SSL/src/ScheduledJobs/ПереносФайловМеждуОперационнымХранилищемИФайловымАрхивом/Schedule.schedule new file mode 100644 index 000000000..0e1e20283 --- /dev/null +++ b/SSL/src/ScheduledJobs/ПереносФайловМеждуОперационнымХранилищемИФайловымАрхивом/Schedule.schedule @@ -0,0 +1,22 @@ + + + Mon + Tue + Wed + Thu + Fri + Sat + Sun + Jan + Feb + Mar + Apr + May + Jun + Jul + Aug + Sep + Oct + Nov + Dec + diff --git a/SSL/src/ScheduledJobs/ПереносФайловМеждуОперационнымХранилищемИФайловымАрхивом/ПереносФайловМеждуОперационнымХранилищемИФайловымАрхивом.mdo b/SSL/src/ScheduledJobs/ПереносФайловМеждуОперационнымХранилищемИФайловымАрхивом/ПереносФайловМеждуОперационнымХранилищемИФайловымАрхивом.mdo new file mode 100644 index 000000000..e6345167c --- /dev/null +++ b/SSL/src/ScheduledJobs/ПереносФайловМеждуОперационнымХранилищемИФайловымАрхивом/ПереносФайловМеждуОперационнымХранилищемИФайловымАрхивом.mdo @@ -0,0 +1,12 @@ + + + ПереносФайловМеждуОперационнымХранилищемИФайловымАрхивом + + ru + Перенос файлов между операционным хранилищем и файловым архивом + + CommonModule.РаботаСФайловымАрхивомСервер.ПеренестиФайлыМеждуОперационнымХранилищемИФайловымАрхивом + true + 3 + 10 + diff --git a/SSL/src/ScheduledJobs/РезервноеКопированиеВстроенногоХранилищаДвоичныхДанных/Schedule.schedule b/SSL/src/ScheduledJobs/РезервноеКопированиеВстроенногоХранилищаДвоичныхДанных/Schedule.schedule new file mode 100644 index 000000000..8326b9203 --- /dev/null +++ b/SSL/src/ScheduledJobs/РезервноеКопированиеВстроенногоХранилищаДвоичныхДанных/Schedule.schedule @@ -0,0 +1,21 @@ + + + Mon + Tue + Wed + Thu + Fri + Sat + Jan + Feb + Mar + Apr + May + Jun + Jul + Aug + Sep + Oct + Nov + Dec + diff --git a/SSL/src/ScheduledJobs/РезервноеКопированиеВстроенногоХранилищаДвоичныхДанных/РезервноеКопированиеВстроенногоХранилищаДвоичныхДанных.mdo b/SSL/src/ScheduledJobs/РезервноеКопированиеВстроенногоХранилищаДвоичныхДанных/РезервноеКопированиеВстроенногоХранилищаДвоичныхДанных.mdo new file mode 100644 index 000000000..16ec848b8 --- /dev/null +++ b/SSL/src/ScheduledJobs/РезервноеКопированиеВстроенногоХранилищаДвоичныхДанных/РезервноеКопированиеВстроенногоХранилищаДвоичныхДанных.mdo @@ -0,0 +1,12 @@ + + + РезервноеКопированиеВстроенногоХранилищаДвоичныхДанных + + ru + Резервное копирование встроенного хранилища двоичных данных + + CommonModule.РаботаСХранилищамиДвоичныхДанныхСервер.РезервноеКопированиеВстроенногоХранилищаДвоичныхДанных + true + 3 + 10 + diff --git a/SSL/src/SettingsStorages/ХранилищеВариантовОтчетов/Forms/БыстрыеНастройкиОтчета/Module.bsl b/SSL/src/SettingsStorages/ХранилищеВариантовОтчетов/Forms/БыстрыеНастройкиОтчета/Module.bsl index c8b25b7e6..3c594d034 100644 --- a/SSL/src/SettingsStorages/ХранилищеВариантовОтчетов/Forms/БыстрыеНастройкиОтчета/Module.bsl +++ b/SSL/src/SettingsStorages/ХранилищеВариантовОтчетов/Forms/БыстрыеНастройкиОтчета/Module.bsl @@ -1,5 +1,5 @@ /////////////////////////////////////////////////////////////////////////////////////////////////////// -// Copyright (c) 2024, ООО 1С-Софт +// Copyright (c) 2025, ООО 1С-Софт // Все права защищены. Эта программа и сопроводительные материалы предоставляются // в соответствии с условиями лицензии Attribution 4.0 International (CC BY 4.0) // Текст лицензии доступен по ссылке: diff --git a/SSL/src/SettingsStorages/ХранилищеВариантовОтчетов/Forms/ВыборВариантаОтчета/Module.bsl b/SSL/src/SettingsStorages/ХранилищеВариантовОтчетов/Forms/ВыборВариантаОтчета/Module.bsl index 2acf9b852..213abac61 100644 --- a/SSL/src/SettingsStorages/ХранилищеВариантовОтчетов/Forms/ВыборВариантаОтчета/Module.bsl +++ b/SSL/src/SettingsStorages/ХранилищеВариантовОтчетов/Forms/ВыборВариантаОтчета/Module.bsl @@ -1,5 +1,5 @@ /////////////////////////////////////////////////////////////////////////////////////////////////////// -// Copyright (c) 2024, ООО 1С-Софт +// Copyright (c) 2025, ООО 1С-Софт // Все права защищены. Эта программа и сопроводительные материалы предоставляются // в соответствии с условиями лицензии Attribution 4.0 International (CC BY 4.0) // Текст лицензии доступен по ссылке: diff --git a/SSL/src/SettingsStorages/ХранилищеВариантовОтчетов/Forms/ВыборПоляОтчета/Module.bsl b/SSL/src/SettingsStorages/ХранилищеВариантовОтчетов/Forms/ВыборПоляОтчета/Module.bsl index 6641b4501..1b7df2ef3 100644 --- a/SSL/src/SettingsStorages/ХранилищеВариантовОтчетов/Forms/ВыборПоляОтчета/Module.bsl +++ b/SSL/src/SettingsStorages/ХранилищеВариантовОтчетов/Forms/ВыборПоляОтчета/Module.bsl @@ -1,5 +1,5 @@ /////////////////////////////////////////////////////////////////////////////////////////////////////// -// Copyright (c) 2024, ООО 1С-Софт +// Copyright (c) 2025, ООО 1С-Софт // Все права защищены. Эта программа и сопроводительные материалы предоставляются // в соответствии с условиями лицензии Attribution 4.0 International (CC BY 4.0) // Текст лицензии доступен по ссылке: @@ -44,8 +44,8 @@ КонецПроцедуры &НаСервере -Процедура ЗаполнитьСписокДоступныхПолей(ПараметрыЗаполнения) - +Процедура ЗаполнитьСписокДоступныхПолей(Знач ПараметрыЗаполнения) + ПараметрыЗаполнения.КоллекцииПолей = КоллекцииПолей(); КонструкторФормул.ЗаполнитьСписокДоступныхПолей(ЭтотОбъект, ПараметрыЗаполнения); КонецПроцедуры diff --git a/SSL/src/SettingsStorages/ХранилищеВариантовОтчетов/Forms/ВыборФинансовогоПериода/Module.bsl b/SSL/src/SettingsStorages/ХранилищеВариантовОтчетов/Forms/ВыборФинансовогоПериода/Module.bsl index 4e7adee6a..4a5ef7627 100644 --- a/SSL/src/SettingsStorages/ХранилищеВариантовОтчетов/Forms/ВыборФинансовогоПериода/Module.bsl +++ b/SSL/src/SettingsStorages/ХранилищеВариантовОтчетов/Forms/ВыборФинансовогоПериода/Module.bsl @@ -1,5 +1,5 @@ /////////////////////////////////////////////////////////////////////////////////////////////////////// -// Copyright (c) 2024, ООО 1С-Софт +// Copyright (c) 2025, ООО 1С-Софт // Все права защищены. Эта программа и сопроводительные материалы предоставляются // в соответствии с условиями лицензии Attribution 4.0 International (CC BY 4.0) // Текст лицензии доступен по ссылке: diff --git a/SSL/src/SettingsStorages/ХранилищеВариантовОтчетов/Forms/ВыборФинансовогоПериодаДень/Module.bsl b/SSL/src/SettingsStorages/ХранилищеВариантовОтчетов/Forms/ВыборФинансовогоПериодаДень/Module.bsl index 6d5358af6..daa60dd00 100644 --- a/SSL/src/SettingsStorages/ХранилищеВариантовОтчетов/Forms/ВыборФинансовогоПериодаДень/Module.bsl +++ b/SSL/src/SettingsStorages/ХранилищеВариантовОтчетов/Forms/ВыборФинансовогоПериодаДень/Module.bsl @@ -1,5 +1,5 @@ /////////////////////////////////////////////////////////////////////////////////////////////////////// -// Copyright (c) 2024, ООО 1С-Софт +// Copyright (c) 2025, ООО 1С-Софт // Все права защищены. Эта программа и сопроводительные материалы предоставляются // в соответствии с условиями лицензии Attribution 4.0 International (CC BY 4.0) // Текст лицензии доступен по ссылке: diff --git a/SSL/src/SettingsStorages/ХранилищеВариантовОтчетов/Forms/ГруппаВыбранныхПолей/Module.bsl b/SSL/src/SettingsStorages/ХранилищеВариантовОтчетов/Forms/ГруппаВыбранныхПолей/Module.bsl index 7d27e4030..047a74e77 100644 --- a/SSL/src/SettingsStorages/ХранилищеВариантовОтчетов/Forms/ГруппаВыбранныхПолей/Module.bsl +++ b/SSL/src/SettingsStorages/ХранилищеВариантовОтчетов/Forms/ГруппаВыбранныхПолей/Module.bsl @@ -1,5 +1,5 @@ /////////////////////////////////////////////////////////////////////////////////////////////////////// -// Copyright (c) 2024, ООО 1С-Софт +// Copyright (c) 2025, ООО 1С-Софт // Все права защищены. Эта программа и сопроводительные материалы предоставляются // в соответствии с условиями лицензии Attribution 4.0 International (CC BY 4.0) // Текст лицензии доступен по ссылке: diff --git a/SSL/src/SettingsStorages/ХранилищеВариантовОтчетов/Forms/НастройкаПоля/Module.bsl b/SSL/src/SettingsStorages/ХранилищеВариантовОтчетов/Forms/НастройкаПоля/Module.bsl index d95b08a75..c08abad64 100644 --- a/SSL/src/SettingsStorages/ХранилищеВариантовОтчетов/Forms/НастройкаПоля/Module.bsl +++ b/SSL/src/SettingsStorages/ХранилищеВариантовОтчетов/Forms/НастройкаПоля/Module.bsl @@ -1,5 +1,5 @@ /////////////////////////////////////////////////////////////////////////////////////////////////////// -// Copyright (c) 2024, ООО 1С-Софт +// Copyright (c) 2025, ООО 1С-Софт // Все права защищены. Эта программа и сопроводительные материалы предоставляются // в соответствии с условиями лицензии Attribution 4.0 International (CC BY 4.0) // Текст лицензии доступен по ссылке: diff --git a/SSL/src/SettingsStorages/ХранилищеВариантовОтчетов/Forms/ПанельДругихОтчетов/Module.bsl b/SSL/src/SettingsStorages/ХранилищеВариантовОтчетов/Forms/ПанельДругихОтчетов/Module.bsl index 38bc3c1f0..69e17557a 100644 --- a/SSL/src/SettingsStorages/ХранилищеВариантовОтчетов/Forms/ПанельДругихОтчетов/Module.bsl +++ b/SSL/src/SettingsStorages/ХранилищеВариантовОтчетов/Forms/ПанельДругихОтчетов/Module.bsl @@ -1,5 +1,5 @@ /////////////////////////////////////////////////////////////////////////////////////////////////////// -// Copyright (c) 2024, ООО 1С-Софт +// Copyright (c) 2025, ООО 1С-Софт // Все права защищены. Эта программа и сопроводительные материалы предоставляются // в соответствии с условиями лицензии Attribution 4.0 International (CC BY 4.0) // Текст лицензии доступен по ссылке: diff --git a/SSL/src/SettingsStorages/ХранилищеВариантовОтчетов/Forms/СохранениеВариантаОтчета/Module.bsl b/SSL/src/SettingsStorages/ХранилищеВариантовОтчетов/Forms/СохранениеВариантаОтчета/Module.bsl index 8f1e3bddf..73bd67476 100644 --- a/SSL/src/SettingsStorages/ХранилищеВариантовОтчетов/Forms/СохранениеВариантаОтчета/Module.bsl +++ b/SSL/src/SettingsStorages/ХранилищеВариантовОтчетов/Forms/СохранениеВариантаОтчета/Module.bsl @@ -1,5 +1,5 @@ /////////////////////////////////////////////////////////////////////////////////////////////////////// -// Copyright (c) 2024, ООО 1С-Софт +// Copyright (c) 2025, ООО 1С-Софт // Все права защищены. Эта программа и сопроводительные материалы предоставляются // в соответствии с условиями лицензии Attribution 4.0 International (CC BY 4.0) // Текст лицензии доступен по ссылке: diff --git a/SSL/src/SettingsStorages/ХранилищеВариантовОтчетов/Forms/СохранениеВариантаОтчетаВФайл/Module.bsl b/SSL/src/SettingsStorages/ХранилищеВариантовОтчетов/Forms/СохранениеВариантаОтчетаВФайл/Module.bsl index a195eaa22..327db19ef 100644 --- a/SSL/src/SettingsStorages/ХранилищеВариантовОтчетов/Forms/СохранениеВариантаОтчетаВФайл/Module.bsl +++ b/SSL/src/SettingsStorages/ХранилищеВариантовОтчетов/Forms/СохранениеВариантаОтчетаВФайл/Module.bsl @@ -1,5 +1,5 @@ /////////////////////////////////////////////////////////////////////////////////////////////////////// -// Copyright (c) 2024, ООО 1С-Софт +// Copyright (c) 2025, ООО 1С-Софт // Все права защищены. Эта программа и сопроводительные материалы предоставляются // в соответствии с условиями лицензии Attribution 4.0 International (CC BY 4.0) // Текст лицензии доступен по ссылке: diff --git a/SSL/src/SettingsStorages/ХранилищеВариантовОтчетов/Forms/УсловияОтборовОтчета/Module.bsl b/SSL/src/SettingsStorages/ХранилищеВариантовОтчетов/Forms/УсловияОтборовОтчета/Module.bsl index ffcf8361b..e9e59eb3b 100644 --- a/SSL/src/SettingsStorages/ХранилищеВариантовОтчетов/Forms/УсловияОтборовОтчета/Module.bsl +++ b/SSL/src/SettingsStorages/ХранилищеВариантовОтчетов/Forms/УсловияОтборовОтчета/Module.bsl @@ -1,5 +1,5 @@ /////////////////////////////////////////////////////////////////////////////////////////////////////// -// Copyright (c) 2024, ООО 1С-Софт +// Copyright (c) 2025, ООО 1С-Софт // Все права защищены. Эта программа и сопроводительные материалы предоставляются // в соответствии с условиями лицензии Attribution 4.0 International (CC BY 4.0) // Текст лицензии доступен по ссылке: diff --git a/SSL/src/SettingsStorages/ХранилищеВариантовОтчетов/Forms/ФильтроватьПоПолю/Module.bsl b/SSL/src/SettingsStorages/ХранилищеВариантовОтчетов/Forms/ФильтроватьПоПолю/Module.bsl index 9b152b0fa..33460c9d6 100644 --- a/SSL/src/SettingsStorages/ХранилищеВариантовОтчетов/Forms/ФильтроватьПоПолю/Module.bsl +++ b/SSL/src/SettingsStorages/ХранилищеВариантовОтчетов/Forms/ФильтроватьПоПолю/Module.bsl @@ -1,5 +1,5 @@ /////////////////////////////////////////////////////////////////////////////////////////////////////// -// Copyright (c) 2024, ООО 1С-Софт +// Copyright (c) 2025, ООО 1С-Софт // Все права защищены. Эта программа и сопроводительные материалы предоставляются // в соответствии с условиями лицензии Attribution 4.0 International (CC BY 4.0) // Текст лицензии доступен по ссылке: diff --git a/SSL/src/SettingsStorages/ХранилищеВариантовОтчетов/Forms/ЭлементУсловногоОформленияОтчета/Module.bsl b/SSL/src/SettingsStorages/ХранилищеВариантовОтчетов/Forms/ЭлементУсловногоОформленияОтчета/Module.bsl index 4e8ec5aeb..de0124764 100644 --- a/SSL/src/SettingsStorages/ХранилищеВариантовОтчетов/Forms/ЭлементУсловногоОформленияОтчета/Module.bsl +++ b/SSL/src/SettingsStorages/ХранилищеВариантовОтчетов/Forms/ЭлементУсловногоОформленияОтчета/Module.bsl @@ -1,5 +1,5 @@ /////////////////////////////////////////////////////////////////////////////////////////////////////// -// Copyright (c) 2024, ООО 1С-Софт +// Copyright (c) 2025, ООО 1С-Софт // Все права защищены. Эта программа и сопроводительные материалы предоставляются // в соответствии с условиями лицензии Attribution 4.0 International (CC BY 4.0) // Текст лицензии доступен по ссылке: diff --git a/SSL/src/SettingsStorages/ХранилищеВариантовОтчетов/ManagerModule.bsl b/SSL/src/SettingsStorages/ХранилищеВариантовОтчетов/ManagerModule.bsl index 7edafaa07..2d0a14857 100644 --- a/SSL/src/SettingsStorages/ХранилищеВариантовОтчетов/ManagerModule.bsl +++ b/SSL/src/SettingsStorages/ХранилищеВариантовОтчетов/ManagerModule.bsl @@ -1,5 +1,5 @@ /////////////////////////////////////////////////////////////////////////////////////////////////////// -// Copyright (c) 2024, ООО 1С-Софт +// Copyright (c) 2025, ООО 1С-Софт // Все права защищены. Эта программа и сопроводительные материалы предоставляются // в соответствии с условиями лицензии Attribution 4.0 International (CC BY 4.0) // Текст лицензии доступен по ссылке: diff --git a/SSL/src/StyleItems/СинхронизацияДанныхЖирныйШрифт/СинхронизацияДанныхЖирныйШрифт.mdo b/SSL/src/StyleItems/СинхронизацияДанныхЖирныйШрифт/СинхронизацияДанныхЖирныйШрифт.mdo new file mode 100644 index 000000000..9faad79e7 --- /dev/null +++ b/SSL/src/StyleItems/СинхронизацияДанныхЖирныйШрифт/СинхронизацияДанныхЖирныйШрифт.mdo @@ -0,0 +1,18 @@ + + + СинхронизацияДанныхЖирныйШрифт + + ru + Синхронизация данных жирный шрифт + + Font + + + Style.NormalTextFont + true + false + false + false + + + diff --git a/SSL/src/Subsystems/Администрирование/CommandInterface.cmi b/SSL/src/Subsystems/Администрирование/CommandInterface.cmi index ad2688a68..4db0c74a3 100644 --- a/SSL/src/Subsystems/Администрирование/CommandInterface.cmi +++ b/SSL/src/Subsystems/Администрирование/CommandInterface.cmi @@ -155,6 +155,10 @@ Catalog.НаборыДополнительныхРеквизитовИСведений.Command.Метки + + Catalog.ТомаХраненияФайлов.Command.ТомаАрхивногоХранения + + CommonCommand.АвтономнаяРаботаВМоделиСервиса @@ -532,6 +536,7 @@ Catalog.ШаблоныСообщений.StandardCommand.OpenList Catalog.СостоянияОригиналовПервичныхДокументов.StandardCommand.OpenList Catalog.НаборыДополнительныхРеквизитовИСведений.Command.Метки + Catalog.ТомаХраненияФайлов.Command.ТомаАрхивногоХранения NavigationPanelSeeAlso diff --git a/SSL/src/Subsystems/СтандартныеПодсистемы/Subsystems/АдресныйКлассификатор/АдресныйКлассификатор.mdo b/SSL/src/Subsystems/СтандартныеПодсистемы/Subsystems/АдресныйКлассификатор/АдресныйКлассификатор.mdo index abaa738c9..19fe23e66 100644 --- a/SSL/src/Subsystems/СтандартныеПодсистемы/Subsystems/АдресныйКлассификатор/АдресныйКлассификатор.mdo +++ b/SSL/src/Subsystems/СтандартныеПодсистемы/Subsystems/АдресныйКлассификатор/АдресныйКлассификатор.mdo @@ -27,5 +27,6 @@ InformationRegister.ИсторияАдминистративнойИерархии InformationRegister.ИсторияМуниципальнойИерархии InformationRegister.АдминистративнаяИерархия + InformationRegister.КвартирыОфисыПомещения Subsystem.СтандартныеПодсистемы diff --git a/SSL/src/Subsystems/СтандартныеПодсистемы/Subsystems/ОбменДанными/ОбменДанными.mdo b/SSL/src/Subsystems/СтандартныеПодсистемы/Subsystems/ОбменДанными/ОбменДанными.mdo index 2ac27b7f0..d4725da7b 100644 --- a/SSL/src/Subsystems/СтандартныеПодсистемы/Subsystems/ОбменДанными/ОбменДанными.mdo +++ b/SSL/src/Subsystems/СтандартныеПодсистемы/Subsystems/ОбменДанными/ОбменДанными.mdo @@ -178,10 +178,12 @@ XDTOPackage.EnterpriseData_1_17_3 DefinedType.ПланыОбменаБСД XDTOPackage.EnterpriseData_1_18_3 + StyleItem.СинхронизацияДанныхЖирныйШрифт XDTOPackage.EnterpriseData_1_19_1 StyleItem.ПодсказкаСинхронизации CommonCommand.ПредупреждениеЦикличностиНастроекОбменов XDTOPackage.EnterpriseData_1_20_2 + XDTOPackage.EnterpriseData_1_21_1 Регистрация ТранспортСообщенийОбмена Subsystem.СтандартныеПодсистемы diff --git a/SSL/src/Subsystems/СтандартныеПодсистемы/Subsystems/Обсуждения/Обсуждения.mdo b/SSL/src/Subsystems/СтандартныеПодсистемы/Subsystems/Обсуждения/Обсуждения.mdo index ada127bc8..f1adc883f 100644 --- a/SSL/src/Subsystems/СтандартныеПодсистемы/Subsystems/Обсуждения/Обсуждения.mdo +++ b/SSL/src/Subsystems/СтандартныеПодсистемы/Subsystems/Обсуждения/Обсуждения.mdo @@ -25,5 +25,7 @@ CommonPicture.BotFatherWhatsapp CommonPicture.BotFatherWebChat CommonModule.ОбсужденияЛокализация + CommonPicture.BotMax + CommonPicture.Max16 Subsystem.СтандартныеПодсистемы diff --git a/SSL/src/Subsystems/СтандартныеПодсистемы/Subsystems/РаботаСПочтовымиСообщениями/РаботаСПочтовымиСообщениями.mdo b/SSL/src/Subsystems/СтандартныеПодсистемы/Subsystems/РаботаСПочтовымиСообщениями/РаботаСПочтовымиСообщениями.mdo index 51a232015..0d9373b49 100644 --- a/SSL/src/Subsystems/СтандартныеПодсистемы/Subsystems/РаботаСПочтовымиСообщениями/РаботаСПочтовымиСообщениями.mdo +++ b/SSL/src/Subsystems/СтандартныеПодсистемы/Subsystems/РаботаСПочтовымиСообщениями/РаботаСПочтовымиСообщениями.mdo @@ -30,5 +30,9 @@ CommonModule.РаботаСПочтовымиСообщениямиЛокализация CommonModule.РаботаСПочтовымиСообщениямиСлужебныйКлиентСервер CommonModule.РаботаСПочтовымиСообщениямиСлужебныйКлиент + CommonCommand.ЗарегистрироватьПриложениеВOAuthСервисе + HTTPService.ОткрытаяАвторизацияПочтовогоСервиса + CommonPicture.КотОткрытаяАвторизацияПочтовогоСервиса + Catalog.ОбщиеНастройкиАвторизацииИнтернетСервисов Subsystem.СтандартныеПодсистемы diff --git a/SSL/src/Subsystems/СтандартныеПодсистемы/Subsystems/РаботаСФайлами/РаботаСФайлами.mdo b/SSL/src/Subsystems/СтандартныеПодсистемы/Subsystems/РаботаСФайлами/РаботаСФайлами.mdo index 994f4e2f9..7ab65fe46 100644 --- a/SSL/src/Subsystems/СтандартныеПодсистемы/Subsystems/РаботаСФайлами/РаботаСФайлами.mdo +++ b/SSL/src/Subsystems/СтандартныеПодсистемы/Subsystems/РаботаСФайлами/РаботаСФайлами.mdo @@ -134,5 +134,27 @@ InformationRegister.ХранилищеФайлов Catalog.ХранилищеДвоичныхДанных CommonModule.РаботаСФайламиЛокализация + InformationRegister.НастройкиРаботыСФайловымАрхивом + InformationRegister.ИсторияРезервногоКопированияВстроенногоХранилищаДвоичныхДанных + InformationRegister.СведенияОХраненииДедуплицированныхФайлов + Constant.ИспользоватьФайловыйАрхив + Constant.РазмерПорцииПеремещаемыхФайлов + Constant.ТекстИнформированияПользователяОНедоступностиФайлаВАрхиве + Constant.КаталогРезервныхКопийВстроенногоХранилищаДвоичныхДанныхДляWindows + Constant.КаталогРезервныхКопийВстроенногоХранилищаДвоичныхДанныхДляLinux + Enum.ВидыХраненияФайлов + Enum.СпособыХраненияФайлов + Enum.ДействияВНастройкахРаботыСФайловымАрхивом + Enum.ВидыРезервныхКопийВстроенногоХранилищаДвоичныхДанных + CommonModule.РаботаСФайловымАрхивомСервер + CommonModule.РаботаСФайловымАрхивомКлиентСервер + CommonModule.РаботаСФайламиВХранилищеДвоичныхДанныхСлужебный + CommonModule.РаботаСХранилищамиДвоичныхДанныхСервер + FunctionalOption.ИспользоватьФайловыйАрхив + InformationRegister.МестаХраненияДвоичныхДанных + ScheduledJob.РезервноеКопированиеВстроенногоХранилищаДвоичныхДанных + ScheduledJob.ПереносФайловМеждуОперационнымХранилищемИФайловымАрхивом + CommonPicture.ФайловыйАрхив + DataProcessor.УправлениеХранилищемДвоичныхДанных Subsystem.СтандартныеПодсистемы diff --git a/SSL/src/Subsystems/СтандартныеПодсистемы/Subsystems/СервисМобильнойПодписи/СервисМобильнойПодписи.mdo b/SSL/src/Subsystems/СтандартныеПодсистемы/Subsystems/СервисМобильнойПодписи/СервисМобильнойПодписи.mdo index 311180a7a..74cbdd58f 100644 --- a/SSL/src/Subsystems/СтандартныеПодсистемы/Subsystems/СервисМобильнойПодписи/СервисМобильнойПодписи.mdo +++ b/SSL/src/Subsystems/СтандартныеПодсистемы/Subsystems/СервисМобильнойПодписи/СервисМобильнойПодписи.mdo @@ -20,5 +20,15 @@ CommonModule.СервисМобильнойПодписиСлужебныйВызовСервера ScheduledJob.ПолучениеРезультатовИзСервисаМобильнойПодписи CommonModule.СервисМобильнойПодписи + XDTOPackage.ГосключЗапросНаПодписание + Constant.ИспользоватьГосключ + FunctionalOption.ИспользоватьГосключ + Catalog.НастройкиОтправкиВГосключ + Role.ДобавлениеИзменениеНастроекОтправкиВГосключ + Enum.ВидыМобильныхПодписей + CommonModule.СервисМобильнойПодписиСлужебныйКлиент + XDTOPackage.ПодписаниеДокументовГосключ + XDTOPackage.ПодписаниеДокументовГосключЮЛ + Enum.ВидыПодписантовМобильногоСервиса Subsystem.СтандартныеПодсистемы diff --git a/SSL/src/Subsystems/СтандартныеПодсистемы/Subsystems/ЭлектроннаяПодпись/ЭлектроннаяПодпись.mdo b/SSL/src/Subsystems/СтандартныеПодсистемы/Subsystems/ЭлектроннаяПодпись/ЭлектроннаяПодпись.mdo index 60f760bd4..25fe7a0b1 100644 --- a/SSL/src/Subsystems/СтандартныеПодсистемы/Subsystems/ЭлектроннаяПодпись/ЭлектроннаяПодпись.mdo +++ b/SSL/src/Subsystems/СтандартныеПодсистемы/Subsystems/ЭлектроннаяПодпись/ЭлектроннаяПодпись.mdo @@ -93,5 +93,8 @@ CommonPicture.ЗначокУстановкиКомпонентДляРаботыСЭП CommonPicture.СостоянияУстановкиКомпонентДляРаботыСЭП CommonForm.НачалоРаботыСЭлектроннойПодписью + Role.ЧтениеСертификатовКлючейЭлектроннойПодписиИШифрования + Role.ЧтениеЛичныхСертификатовКлючейЭлектроннойПодписиИШифрования + Role.ДобавлениеИзменениеЛичныхСертификатовКлючейЭлектроннойПодписиИШифрования Subsystem.СтандартныеПодсистемы diff --git a/SSL/src/Subsystems/СтандартныеПодсистемы/СтандартныеПодсистемы.mdo b/SSL/src/Subsystems/СтандартныеПодсистемы/СтандартныеПодсистемы.mdo index 24dedf526..835837710 100644 --- a/SSL/src/Subsystems/СтандартныеПодсистемы/СтандартныеПодсистемы.mdo +++ b/SSL/src/Subsystems/СтандартныеПодсистемы/СтандартныеПодсистемы.mdo @@ -63,6 +63,7 @@ РегламентныеЗадания РезервноеКопированиеИБ Свойства + СервисМобильнойПодписи СклонениеПредставленийОбъектов СтруктураПодчиненности ТекущиеДела @@ -74,5 +75,4 @@ ШаблоныСообщений ЭлектроннаяПодпись ЭлектроннаяПодписьСервисаDSS - СервисМобильнойПодписи diff --git a/SSL/src/Tasks/ЗадачаИсполнителя/Commands/ВсеЗадачи/CommandModule.bsl b/SSL/src/Tasks/ЗадачаИсполнителя/Commands/ВсеЗадачи/CommandModule.bsl index 16d94f60b..86e8da39e 100644 --- a/SSL/src/Tasks/ЗадачаИсполнителя/Commands/ВсеЗадачи/CommandModule.bsl +++ b/SSL/src/Tasks/ЗадачаИсполнителя/Commands/ВсеЗадачи/CommandModule.bsl @@ -1,5 +1,5 @@ /////////////////////////////////////////////////////////////////////////////////////////////////////// -// Copyright (c) 2024, ООО 1С-Софт +// Copyright (c) 2025, ООО 1С-Софт // Все права защищены. Эта программа и сопроводительные материалы предоставляются // в соответствии с условиями лицензии Attribution 4.0 International (CC BY 4.0) // Текст лицензии доступен по ссылке: diff --git a/SSL/src/Tasks/ЗадачаИсполнителя/Commands/Выполнено/CommandModule.bsl b/SSL/src/Tasks/ЗадачаИсполнителя/Commands/Выполнено/CommandModule.bsl index a464001db..13158eb5d 100644 --- a/SSL/src/Tasks/ЗадачаИсполнителя/Commands/Выполнено/CommandModule.bsl +++ b/SSL/src/Tasks/ЗадачаИсполнителя/Commands/Выполнено/CommandModule.bsl @@ -1,5 +1,5 @@ /////////////////////////////////////////////////////////////////////////////////////////////////////// -// Copyright (c) 2024, ООО 1С-Софт +// Copyright (c) 2025, ООО 1С-Софт // Все права защищены. Эта программа и сопроводительные материалы предоставляются // в соответствии с условиями лицензии Attribution 4.0 International (CC BY 4.0) // Текст лицензии доступен по ссылке: diff --git a/SSL/src/Tasks/ЗадачаИсполнителя/Commands/МоиЗадачи/CommandModule.bsl b/SSL/src/Tasks/ЗадачаИсполнителя/Commands/МоиЗадачи/CommandModule.bsl index af35c7b92..9bdc7c3b0 100644 --- a/SSL/src/Tasks/ЗадачаИсполнителя/Commands/МоиЗадачи/CommandModule.bsl +++ b/SSL/src/Tasks/ЗадачаИсполнителя/Commands/МоиЗадачи/CommandModule.bsl @@ -1,5 +1,5 @@ /////////////////////////////////////////////////////////////////////////////////////////////////////// -// Copyright (c) 2024, ООО 1С-Софт +// Copyright (c) 2025, ООО 1С-Софт // Все права защищены. Эта программа и сопроводительные материалы предоставляются // в соответствии с условиями лицензии Attribution 4.0 International (CC BY 4.0) // Текст лицензии доступен по ссылке: diff --git a/SSL/src/Tasks/ЗадачаИсполнителя/Commands/Перенаправить/CommandModule.bsl b/SSL/src/Tasks/ЗадачаИсполнителя/Commands/Перенаправить/CommandModule.bsl index 20c6e19d3..3a19da0c4 100644 --- a/SSL/src/Tasks/ЗадачаИсполнителя/Commands/Перенаправить/CommandModule.bsl +++ b/SSL/src/Tasks/ЗадачаИсполнителя/Commands/Перенаправить/CommandModule.bsl @@ -1,5 +1,5 @@ /////////////////////////////////////////////////////////////////////////////////////////////////////// -// Copyright (c) 2024, ООО 1С-Софт +// Copyright (c) 2025, ООО 1С-Софт // Все права защищены. Эта программа и сопроводительные материалы предоставляются // в соответствии с условиями лицензии Attribution 4.0 International (CC BY 4.0) // Текст лицензии доступен по ссылке: diff --git a/SSL/src/Tasks/ЗадачаИсполнителя/Forms/Дополнительно/Module.bsl b/SSL/src/Tasks/ЗадачаИсполнителя/Forms/Дополнительно/Module.bsl index e7d523e31..10b93357a 100644 --- a/SSL/src/Tasks/ЗадачаИсполнителя/Forms/Дополнительно/Module.bsl +++ b/SSL/src/Tasks/ЗадачаИсполнителя/Forms/Дополнительно/Module.bsl @@ -1,5 +1,5 @@ /////////////////////////////////////////////////////////////////////////////////////////////////////// -// Copyright (c) 2024, ООО 1С-Софт +// Copyright (c) 2025, ООО 1С-Софт // Все права защищены. Эта программа и сопроводительные материалы предоставляются // в соответствии с условиями лицензии Attribution 4.0 International (CC BY 4.0) // Текст лицензии доступен по ссылке: diff --git a/SSL/src/Tasks/ЗадачаИсполнителя/Forms/ЗадачиПоБизнесПроцессу/Module.bsl b/SSL/src/Tasks/ЗадачаИсполнителя/Forms/ЗадачиПоБизнесПроцессу/Module.bsl index 5640948d0..2044cbb3a 100644 --- a/SSL/src/Tasks/ЗадачаИсполнителя/Forms/ЗадачиПоБизнесПроцессу/Module.bsl +++ b/SSL/src/Tasks/ЗадачаИсполнителя/Forms/ЗадачиПоБизнесПроцессу/Module.bsl @@ -1,5 +1,5 @@ /////////////////////////////////////////////////////////////////////////////////////////////////////// -// Copyright (c) 2024, ООО 1С-Софт +// Copyright (c) 2025, ООО 1С-Софт // Все права защищены. Эта программа и сопроводительные материалы предоставляются // в соответствии с условиями лицензии Attribution 4.0 International (CC BY 4.0) // Текст лицензии доступен по ссылке: diff --git a/SSL/src/Tasks/ЗадачаИсполнителя/Forms/ЗадачиПоПредмету/Module.bsl b/SSL/src/Tasks/ЗадачаИсполнителя/Forms/ЗадачиПоПредмету/Module.bsl index 2e1cd7e88..c96526dbb 100644 --- a/SSL/src/Tasks/ЗадачаИсполнителя/Forms/ЗадачиПоПредмету/Module.bsl +++ b/SSL/src/Tasks/ЗадачаИсполнителя/Forms/ЗадачиПоПредмету/Module.bsl @@ -1,5 +1,5 @@ /////////////////////////////////////////////////////////////////////////////////////////////////////// -// Copyright (c) 2024, ООО 1С-Софт +// Copyright (c) 2025, ООО 1С-Софт // Все права защищены. Эта программа и сопроводительные материалы предоставляются // в соответствии с условиями лицензии Attribution 4.0 International (CC BY 4.0) // Текст лицензии доступен по ссылке: diff --git a/SSL/src/Tasks/ЗадачаИсполнителя/Forms/МоиЗадачи/Module.bsl b/SSL/src/Tasks/ЗадачаИсполнителя/Forms/МоиЗадачи/Module.bsl index 2c687e48a..7595a8909 100644 --- a/SSL/src/Tasks/ЗадачаИсполнителя/Forms/МоиЗадачи/Module.bsl +++ b/SSL/src/Tasks/ЗадачаИсполнителя/Forms/МоиЗадачи/Module.bsl @@ -1,5 +1,5 @@ /////////////////////////////////////////////////////////////////////////////////////////////////////// -// Copyright (c) 2024, ООО 1С-Софт +// Copyright (c) 2025, ООО 1С-Софт // Все права защищены. Эта программа и сопроводительные материалы предоставляются // в соответствии с условиями лицензии Attribution 4.0 International (CC BY 4.0) // Текст лицензии доступен по ссылке: diff --git a/SSL/src/Tasks/ЗадачаИсполнителя/Forms/МоиЗадачиДляРабочегоСтола/Module.bsl b/SSL/src/Tasks/ЗадачаИсполнителя/Forms/МоиЗадачиДляРабочегоСтола/Module.bsl index ae2ad0d65..b2435a387 100644 --- a/SSL/src/Tasks/ЗадачаИсполнителя/Forms/МоиЗадачиДляРабочегоСтола/Module.bsl +++ b/SSL/src/Tasks/ЗадачаИсполнителя/Forms/МоиЗадачиДляРабочегоСтола/Module.bsl @@ -1,5 +1,5 @@ /////////////////////////////////////////////////////////////////////////////////////////////////////// -// Copyright (c) 2024, ООО 1С-Софт +// Copyright (c) 2025, ООО 1С-Софт // Все права защищены. Эта программа и сопроводительные материалы предоставляются // в соответствии с условиями лицензии Attribution 4.0 International (CC BY 4.0) // Текст лицензии доступен по ссылке: diff --git a/SSL/src/Tasks/ЗадачаИсполнителя/Forms/ПеренаправитьЗадачи/Module.bsl b/SSL/src/Tasks/ЗадачаИсполнителя/Forms/ПеренаправитьЗадачи/Module.bsl index 3d00716dc..e086e8aa0 100644 --- a/SSL/src/Tasks/ЗадачаИсполнителя/Forms/ПеренаправитьЗадачи/Module.bsl +++ b/SSL/src/Tasks/ЗадачаИсполнителя/Forms/ПеренаправитьЗадачи/Module.bsl @@ -1,5 +1,5 @@ /////////////////////////////////////////////////////////////////////////////////////////////////////// -// Copyright (c) 2024, ООО 1С-Софт +// Copyright (c) 2025, ООО 1С-Софт // Все права защищены. Эта программа и сопроводительные материалы предоставляются // в соответствии с условиями лицензии Attribution 4.0 International (CC BY 4.0) // Текст лицензии доступен по ссылке: diff --git a/SSL/src/Tasks/ЗадачаИсполнителя/Forms/ФормаЗадачи/Module.bsl b/SSL/src/Tasks/ЗадачаИсполнителя/Forms/ФормаЗадачи/Module.bsl index 358f4cd67..91a646843 100644 --- a/SSL/src/Tasks/ЗадачаИсполнителя/Forms/ФормаЗадачи/Module.bsl +++ b/SSL/src/Tasks/ЗадачаИсполнителя/Forms/ФормаЗадачи/Module.bsl @@ -1,5 +1,5 @@ /////////////////////////////////////////////////////////////////////////////////////////////////////// -// Copyright (c) 2024, ООО 1С-Софт +// Copyright (c) 2025, ООО 1С-Софт // Все права защищены. Эта программа и сопроводительные материалы предоставляются // в соответствии с условиями лицензии Attribution 4.0 International (CC BY 4.0) // Текст лицензии доступен по ссылке: diff --git a/SSL/src/Tasks/ЗадачаИсполнителя/Forms/ФормаСписка/Module.bsl b/SSL/src/Tasks/ЗадачаИсполнителя/Forms/ФормаСписка/Module.bsl index 408e4900c..3ca4c0280 100644 --- a/SSL/src/Tasks/ЗадачаИсполнителя/Forms/ФормаСписка/Module.bsl +++ b/SSL/src/Tasks/ЗадачаИсполнителя/Forms/ФормаСписка/Module.bsl @@ -1,5 +1,5 @@ /////////////////////////////////////////////////////////////////////////////////////////////////////// -// Copyright (c) 2024, ООО 1С-Софт +// Copyright (c) 2025, ООО 1С-Софт // Все права защищены. Эта программа и сопроводительные материалы предоставляются // в соответствии с условиями лицензии Attribution 4.0 International (CC BY 4.0) // Текст лицензии доступен по ссылке: diff --git a/SSL/src/Tasks/ЗадачаИсполнителя/ManagerModule.bsl b/SSL/src/Tasks/ЗадачаИсполнителя/ManagerModule.bsl index 60b32ba7d..abeb3114a 100644 --- a/SSL/src/Tasks/ЗадачаИсполнителя/ManagerModule.bsl +++ b/SSL/src/Tasks/ЗадачаИсполнителя/ManagerModule.bsl @@ -1,5 +1,5 @@ /////////////////////////////////////////////////////////////////////////////////////////////////////// -// Copyright (c) 2024, ООО 1С-Софт +// Copyright (c) 2025, ООО 1С-Софт // Все права защищены. Эта программа и сопроводительные материалы предоставляются // в соответствии с условиями лицензии Attribution 4.0 International (CC BY 4.0) // Текст лицензии доступен по ссылке: diff --git a/SSL/src/Tasks/ЗадачаИсполнителя/ObjectModule.bsl b/SSL/src/Tasks/ЗадачаИсполнителя/ObjectModule.bsl index be33b7452..f05c289dd 100644 --- a/SSL/src/Tasks/ЗадачаИсполнителя/ObjectModule.bsl +++ b/SSL/src/Tasks/ЗадачаИсполнителя/ObjectModule.bsl @@ -1,5 +1,5 @@ /////////////////////////////////////////////////////////////////////////////////////////////////////// -// Copyright (c) 2024, ООО 1С-Софт +// Copyright (c) 2025, ООО 1С-Софт // Все права защищены. Эта программа и сопроводительные материалы предоставляются // в соответствии с условиями лицензии Attribution 4.0 International (CC BY 4.0) // Текст лицензии доступен по ссылке: diff --git a/SSL/src/Tasks/ЗадачаИсполнителя/ЗадачаИсполнителя.mdo b/SSL/src/Tasks/ЗадачаИсполнителя/ЗадачаИсполнителя.mdo index 3e0bde8c7..1f6294b15 100644 --- a/SSL/src/Tasks/ЗадачаИсполнителя/ЗадачаИсполнителя.mdo +++ b/SSL/src/Tasks/ЗадачаИсполнителя/ЗадачаИсполнителя.mdo @@ -128,6 +128,7 @@ 14 true true + DontUse 150 InformationRegister.ИсполнителиЗадач Task.ЗадачаИсполнителя.AddressingAttribute.Исполнитель diff --git a/SSL/src/WebServices/EnterpriseDataExchange_1_0_1_1/Module.bsl b/SSL/src/WebServices/EnterpriseDataExchange_1_0_1_1/Module.bsl index 8645adb99..91c29c026 100644 --- a/SSL/src/WebServices/EnterpriseDataExchange_1_0_1_1/Module.bsl +++ b/SSL/src/WebServices/EnterpriseDataExchange_1_0_1_1/Module.bsl @@ -1,5 +1,5 @@ /////////////////////////////////////////////////////////////////////////////////////////////////////// -// Copyright (c) 2024, ООО 1С-Софт +// Copyright (c) 2025, ООО 1С-Софт // Все права защищены. Эта программа и сопроводительные материалы предоставляются // в соответствии с условиями лицензии Attribution 4.0 International (CC BY 4.0) // Текст лицензии доступен по ссылке: diff --git a/SSL/src/WebServices/EnterpriseDataUpload_1_0_1_1/Module.bsl b/SSL/src/WebServices/EnterpriseDataUpload_1_0_1_1/Module.bsl index c1a3e6550..b478ceff5 100644 --- a/SSL/src/WebServices/EnterpriseDataUpload_1_0_1_1/Module.bsl +++ b/SSL/src/WebServices/EnterpriseDataUpload_1_0_1_1/Module.bsl @@ -1,5 +1,5 @@ /////////////////////////////////////////////////////////////////////////////////////////////////////// -// Copyright (c) 2024, ООО 1С-Софт +// Copyright (c) 2025, ООО 1С-Софт // Все права защищены. Эта программа и сопроводительные материалы предоставляются // в соответствии с условиями лицензии Attribution 4.0 International (CC BY 4.0) // Текст лицензии доступен по ссылке: diff --git a/SSL/src/WebServices/Exchange/Module.bsl b/SSL/src/WebServices/Exchange/Module.bsl index 120f11fd1..8ff3ee524 100644 --- a/SSL/src/WebServices/Exchange/Module.bsl +++ b/SSL/src/WebServices/Exchange/Module.bsl @@ -1,5 +1,5 @@ /////////////////////////////////////////////////////////////////////////////////////////////////////// -// Copyright (c) 2024, ООО 1С-Софт +// Copyright (c) 2025, ООО 1С-Софт // Все права защищены. Эта программа и сопроводительные материалы предоставляются // в соответствии с условиями лицензии Attribution 4.0 International (CC BY 4.0) // Текст лицензии доступен по ссылке: @@ -8,8 +8,7 @@ #Область СлужебныеПроцедурыИФункции -//////////////////////////////////////////////////////////////////////////////// -// Обработчики операций +#Область ОбработчикиОпераций // Соответствует операции Upload. Функция ВыполнитьВыгрузку(ИмяПланаОбмена, КодУзлаИнформационнойБазы, ХранилищеСообщенияОбмена) @@ -432,8 +431,9 @@ КонецФункции -//////////////////////////////////////////////////////////////////////////////// -// Локальные служебные процедуры и функции. +#КонецОбласти + +#Область ЛокальныеСлужебныеПроцедурыИФункции Процедура ПроверитьБлокировкуИнформационнойБазыДляОбновления() @@ -638,3 +638,5 @@ КонецФункции #КонецОбласти + +#КонецОбласти \ No newline at end of file diff --git a/SSL/src/WebServices/Exchange_2_0_1_6/Module.bsl b/SSL/src/WebServices/Exchange_2_0_1_6/Module.bsl index 8c3e3d0ff..c6bbc728d 100644 --- a/SSL/src/WebServices/Exchange_2_0_1_6/Module.bsl +++ b/SSL/src/WebServices/Exchange_2_0_1_6/Module.bsl @@ -1,5 +1,5 @@ /////////////////////////////////////////////////////////////////////////////////////////////////////// -// Copyright (c) 2024, ООО 1С-Софт +// Copyright (c) 2025, ООО 1С-Софт // Все права защищены. Эта программа и сопроводительные материалы предоставляются // в соответствии с условиями лицензии Attribution 4.0 International (CC BY 4.0) // Текст лицензии доступен по ссылке: @@ -8,8 +8,7 @@ #Область СлужебныеПроцедурыИФункции -//////////////////////////////////////////////////////////////////////////////// -// Обработчики операций +#Область ОбработчикиОпераций // Соответствует операции Upload. Функция ВыполнитьВыгрузку(ИмяПланаОбмена, КодУзлаИнформационнойБазы, ХранилищеСообщенияОбмена) @@ -474,8 +473,9 @@ Возврат Истина; КонецФункции -//////////////////////////////////////////////////////////////////////////////// -// Локальные служебные процедуры и функции. +#КонецОбласти + +#Область ЛокальныеСлужебныеПроцедурыИФункции Процедура ПроверитьБлокировкуИнформационнойБазыДляОбновления() @@ -710,3 +710,5 @@ КонецФункции #КонецОбласти + +#КонецОбласти \ No newline at end of file diff --git a/SSL/src/WebServices/Exchange_3_0_1_1/Module.bsl b/SSL/src/WebServices/Exchange_3_0_1_1/Module.bsl index 7de81b05f..f248c587a 100644 --- a/SSL/src/WebServices/Exchange_3_0_1_1/Module.bsl +++ b/SSL/src/WebServices/Exchange_3_0_1_1/Module.bsl @@ -1,5 +1,5 @@ /////////////////////////////////////////////////////////////////////////////////////////////////////// -// Copyright (c) 2024, ООО 1С-Софт +// Copyright (c) 2025, ООО 1С-Софт // Все права защищены. Эта программа и сопроводительные материалы предоставляются // в соответствии с условиями лицензии Attribution 4.0 International (CC BY 4.0) // Текст лицензии доступен по ссылке: diff --git a/SSL/src/WebServices/Exchange_3_0_2_1/Module.bsl b/SSL/src/WebServices/Exchange_3_0_2_1/Module.bsl index b9caeabb4..641bac679 100644 --- a/SSL/src/WebServices/Exchange_3_0_2_1/Module.bsl +++ b/SSL/src/WebServices/Exchange_3_0_2_1/Module.bsl @@ -1,5 +1,5 @@ /////////////////////////////////////////////////////////////////////////////////////////////////////// -// Copyright (c) 2024, ООО 1С-Софт +// Copyright (c) 2025, ООО 1С-Софт // Все права защищены. Эта программа и сопроводительные материалы предоставляются // в соответствии с условиями лицензии Attribution 4.0 International (CC BY 4.0) // Текст лицензии доступен по ссылке: diff --git a/SSL/src/WebServices/Exchange_3_0_2_2/Module.bsl b/SSL/src/WebServices/Exchange_3_0_2_2/Module.bsl index 87ecc5265..03510def5 100644 --- a/SSL/src/WebServices/Exchange_3_0_2_2/Module.bsl +++ b/SSL/src/WebServices/Exchange_3_0_2_2/Module.bsl @@ -1,5 +1,5 @@ /////////////////////////////////////////////////////////////////////////////////////////////////////// -// Copyright (c) 2024, ООО 1С-Софт +// Copyright (c) 2025, ООО 1С-Софт // Все права защищены. Эта программа и сопроводительные материалы предоставляются // в соответствии с условиями лицензии Attribution 4.0 International (CC BY 4.0) // Текст лицензии доступен по ссылке: diff --git a/SSL/src/WebServices/InterfaceVersion/Module.bsl b/SSL/src/WebServices/InterfaceVersion/Module.bsl index 815a4d95c..beb678f18 100644 --- a/SSL/src/WebServices/InterfaceVersion/Module.bsl +++ b/SSL/src/WebServices/InterfaceVersion/Module.bsl @@ -1,5 +1,5 @@ /////////////////////////////////////////////////////////////////////////////////////////////////////// -// Copyright (c) 2024, ООО 1С-Софт +// Copyright (c) 2025, ООО 1С-Софт // Все права защищены. Эта программа и сопроводительные материалы предоставляются // в соответствии с условиями лицензии Attribution 4.0 International (CC BY 4.0) // Текст лицензии доступен по ссылке: diff --git a/SSL/src/WebServices/RemoteAdministrationOfExchange/Module.bsl b/SSL/src/WebServices/RemoteAdministrationOfExchange/Module.bsl index 847f8c726..eb35896d1 100644 --- a/SSL/src/WebServices/RemoteAdministrationOfExchange/Module.bsl +++ b/SSL/src/WebServices/RemoteAdministrationOfExchange/Module.bsl @@ -1,5 +1,5 @@ /////////////////////////////////////////////////////////////////////////////////////////////////////// -// Copyright (c) 2024, ООО 1С-Софт +// Copyright (c) 2025, ООО 1С-Софт // Все права защищены. Эта программа и сопроводительные материалы предоставляются // в соответствии с условиями лицензии Attribution 4.0 International (CC BY 4.0) // Текст лицензии доступен по ссылке: diff --git a/SSL/src/WebServices/RemoteAdministrationOfExchange_2_0_1_6/Module.bsl b/SSL/src/WebServices/RemoteAdministrationOfExchange_2_0_1_6/Module.bsl index b105c8fbf..1bac3c345 100644 --- a/SSL/src/WebServices/RemoteAdministrationOfExchange_2_0_1_6/Module.bsl +++ b/SSL/src/WebServices/RemoteAdministrationOfExchange_2_0_1_6/Module.bsl @@ -1,5 +1,5 @@ /////////////////////////////////////////////////////////////////////////////////////////////////////// -// Copyright (c) 2024, ООО 1С-Софт +// Copyright (c) 2025, ООО 1С-Софт // Все права защищены. Эта программа и сопроводительные материалы предоставляются // в соответствии с условиями лицензии Attribution 4.0 International (CC BY 4.0) // Текст лицензии доступен по ссылке: diff --git a/SSL/src/WebServices/RemoteAdministrationOfExchange_2_1_6_1/Module.bsl b/SSL/src/WebServices/RemoteAdministrationOfExchange_2_1_6_1/Module.bsl index 9789bc492..d095ec07c 100644 --- a/SSL/src/WebServices/RemoteAdministrationOfExchange_2_1_6_1/Module.bsl +++ b/SSL/src/WebServices/RemoteAdministrationOfExchange_2_1_6_1/Module.bsl @@ -1,5 +1,5 @@ /////////////////////////////////////////////////////////////////////////////////////////////////////// -// Copyright (c) 2024, ООО 1С-Софт +// Copyright (c) 2025, ООО 1С-Софт // Все права защищены. Эта программа и сопроводительные материалы предоставляются // в соответствии с условиями лицензии Attribution 4.0 International (CC BY 4.0) // Текст лицензии доступен по ссылке: diff --git a/SSL/src/WebServices/RemoteAdministrationOfExchange_2_4_5_1/Module.bsl b/SSL/src/WebServices/RemoteAdministrationOfExchange_2_4_5_1/Module.bsl index 22dbcd359..408b67b6c 100644 --- a/SSL/src/WebServices/RemoteAdministrationOfExchange_2_4_5_1/Module.bsl +++ b/SSL/src/WebServices/RemoteAdministrationOfExchange_2_4_5_1/Module.bsl @@ -1,5 +1,5 @@ /////////////////////////////////////////////////////////////////////////////////////////////////////// -// Copyright (c) 2024, ООО 1С-Софт +// Copyright (c) 2025, ООО 1С-Софт // Все права защищены. Эта программа и сопроводительные материалы предоставляются // в соответствии с условиями лицензии Attribution 4.0 International (CC BY 4.0) // Текст лицензии доступен по ссылке: diff --git a/SSL/src/WebServices/RemoteControl/Module.bsl b/SSL/src/WebServices/RemoteControl/Module.bsl index 527af3ec4..265cb36a3 100644 --- a/SSL/src/WebServices/RemoteControl/Module.bsl +++ b/SSL/src/WebServices/RemoteControl/Module.bsl @@ -1,5 +1,5 @@ /////////////////////////////////////////////////////////////////////////////////////////////////////// -// Copyright (c) 2024, ООО 1С-Софт +// Copyright (c) 2025, ООО 1С-Софт // Все права защищены. Эта программа и сопроводительные материалы предоставляются // в соответствии с условиями лицензии Attribution 4.0 International (CC BY 4.0) // Текст лицензии доступен по ссылке: diff --git a/SSL/src/XDTOPackages/EnterpriseData_1_20_2/EnterpriseData_1_20_2.mdo b/SSL/src/XDTOPackages/EnterpriseData_1_20_2/EnterpriseData_1_20_2.mdo index 4048cbbcd..2637a7c13 100644 --- a/SSL/src/XDTOPackages/EnterpriseData_1_20_2/EnterpriseData_1_20_2.mdo +++ b/SSL/src/XDTOPackages/EnterpriseData_1_20_2/EnterpriseData_1_20_2.mdo @@ -1,10 +1,6 @@ EnterpriseData_1_20_2 - - en - EnterpriseData 1.19.1 - ru EnterpriseData 1.20.2 diff --git a/SSL/src/XDTOPackages/EnterpriseData_1_21_1/EnterpriseData_1_21_1.mdo b/SSL/src/XDTOPackages/EnterpriseData_1_21_1/EnterpriseData_1_21_1.mdo new file mode 100644 index 000000000..a1e3babc2 --- /dev/null +++ b/SSL/src/XDTOPackages/EnterpriseData_1_21_1/EnterpriseData_1_21_1.mdo @@ -0,0 +1,9 @@ + + + EnterpriseData_1_21_1 + + ru + EnterpriseData 1.21.1 + + http://v8.1c.ru/edi/edi_stnd/EnterpriseData/1.21 + diff --git a/SSL/src/XDTOPackages/EnterpriseData_1_21_1/Package.xdto b/SSL/src/XDTOPackages/EnterpriseData_1_21_1/Package.xdto new file mode 100644 index 000000000..4a4c922cd --- /dev/null +++ b/SSL/src/XDTOPackages/EnterpriseData_1_21_1/Package.xdto @@ -0,0 +1,9917 @@ + + + + + (((0[1-9]{1}|[1-2]{1}[0-9]{1})\.(0[1-9]{1}|1[0-2]{1}))|((30)\.(01|0[3-9]{1}|1[0-2]{1}))|((31)\.(01|03|05|07|08|10|12)))\.(18[0-9]{2}|19[0-9]{2}|20[0-9]{2}) + + + + + + + + + + + 0 + + + + + + Билет + Чек + ДругойДокумент + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + Первая + Вторая + Третья + Четвертая + Пятая + Шестая + Седьмая + Восьмая + Девятая + Десятая + Отдельная + + + ГрупповаяЛогистическаяУпаковка + ЗаданУпаковками + МернаяПродукцияСФиксированнымЗначением + МернаяПродукцияТребуетУказанияЗначения + ПотребительскаяУпаковка + ЧастьПотребительскойУпаковки + + + Аванс + Предоплата + Кредит + ОтсрочкаПлатежа + + + ВПользуПоставщика + НаПрочиеДоходы + + + ЗаСчетСтороннейКомпании + ЗаСчетПоставщика + НаПрочиеРасходы + + + ТекущаяНоменклатура + НастроеннаяНоменклатура + + + ПоФактическомуИспользованию + ЭкспортСырьевыхТоваров + ЭкспортНеСырьевыхТоваров + НеОблагаетсяНДС + ОблагаетсяЕНВД + ОблагаетсяНДС + ОпределяетсяРаспределением + + + ПродажаТоваровНаКомиссии + СписаниеТоваровНаКомиссии + РеализацияЧерезКомиссионераБезПереходаПраваСобственности + РеализацияЧерезКомиссионера + ВозвратТоваровОтКомиссионера + + + Аренда + РеализацияИмущества + Нерезидент + НерезидентЭлектронныеУслуги + РеализацияТоваров + + + Расчетный + Депозитный + Ссудный + ЧековыеКнижки + Аккредитивы + Иной + + + Билеты + Путевки + ПочтовыеМарки + ТалоныНаГСМ + Прочее + + + СПокупателем + СПоставщиком + СКомиссионером + СКомитентом + СКомитентомНаЗакупку + СКомиссионеромНаЗакупку + Прочее + + + ДоходыБезОграниченияВзысканий + ЗарплатаВознаграждения + КомпенсацииНеоблагаемые + КомпенсацииНеоблагаемыеЕдиновременные + КомпенсацииНеоблагаемыеПериодические + КомпенсацииОблагаемые + КомпенсацииОблагаемыеЕдиновременные + КомпенсацииОблагаемыеПериодические + + + День + Сутки + Секунда + Минута + Час + Месяц + Год + + + ПочтовыйАдрес + ЮридическийАдрес + ФактическийАдрес + Телефон + ТелефонДомашний + ТелефонРабочий + Факс + ВебСтраница + АдресЭлектроннойПочты + Skype + ПользовательскаяКИДругое + ПользовательскаяКИТелефон + ПользовательскаяКИАдрес + ПользовательскаяКИАдресЭлектроннойПочты + ПользовательскаяКИВебСтраница + ПользовательскаяКИФакс + ПользовательскаяКИSkype + + + Пиво + АлкогольнаяПродукция + СпиртосодержащаяПищеваяПродукция + СпиртосодержащаяНеПищеваяПродукция + Спирт + + + ЕдиныйНалоговыйПлатеж + ПрочиеНалогиСборы + + + НематериальныйАктив + РасходыНаНИОКР + + + ПокупкаОплатаПрочее + Командировка + + + ВозвратОтКлиента + ВозвратОтКомиссионера + ВозвратОтРозничногоПокупателя + + + ВозвратПоставщику + ВозвратКомитенту + + + ВыпускПродукцииНаСклад + ВыпускПродукцииВПодразделение + + + СогласованноеИзменение + ИсправлениеОшибки + + + СписаниеЗадолженности + ПереносЗадолженности + ПроведениеВзаимозачета + ОтражениеОплатыЧерезКомиссионера + ОтражениеВозвратаОплатыЧерезКомиссионера + НачислениеЗадолженности + + + ОприходованиеОтгруженныхТоваров + ОприходованиеСобственныхТоваров + + + ВзносНаличными + ЛичныеСредстваПредпринимателя + + + Прочее + ЛичныеСредстваПредпринимателя + + + ВозвратЗайма + ВозвратКредита + ВозвратПокупателю + ВыдачаЗаймаКонтрагенту + ВыдачаЗаймаРаботнику + ВыплатаСамозанятому + Депозит + КомиссияБанка + ЛичныеСредстваПредпринимателя + ОплатаПоставщику + ПереводНаДругойСчет + ПеречислениеЗаработнойПлатыРаботнику + ПеречислениеЗП + ПеречислениеНалога + ПеречислениеПодотчетномуЛицу + ПрочееСписание + ПрочиеРасчетыСКонтрагентами + РасчетыПоКредитамИЗаймам + РасчетыСамозанятым + + + ОплатаОтКлиентаПлатежнойКартой + ВозвратОплатыКлиентуНаПлатежнуюКарту + ОплатаОтКлиентаЧерезПлатежнуюСистему + ВозвратОтКлиентаЧерезПлатежнуюСистему + + + ПокупкаУПоставщика + ПриемНаКомиссию + ЗакупкаПоИмпорту + + + ОтгрузкаПоВозвратуПоставщику + ОтгрузкаПоПеремещению + ОтгрузкаКлиенту + + + ПриемкаОтПоставщика + ПриемкаПоПеремещению + ПриемкаПоВозвратуОтКлиента + + + РеализацияКлиенту + ПередачаНаКомиссию + ОтгрузкаБезПереходаПравСобственности_ВПути + ОтгрузкаБезПереходаПравСобственности_Реализовано + + + Прочее + ЛичныеСредстваПредпринимателя + + + ВзносНаличными + Инкассация + + + ВнутренняяПередача + ПрочееСписание + + + КомиссияБанка + ЛичныеСредстваПредпринимателя + ПрочиеРасходы + + + Сборка + Разборка + + + СписаниеОтгруженныхТоваров + СписаниеСобственныхТоваров + + + Покупка + Доплата + Возврат + ЗаменаВозврат + ЗаменаПокупка + + + Руководитель + ГлавныйБухгалтер + РуководительКадровойСлужбы + Кассир + ОтветственныйЗаБухгалтерскиеРегистры + ОтветственныйЗаНалоговыеРегистры + УполномоченныйПредставитель + Исполнитель + Прочее + + + АвтозапчастиИКомплектующиеТранспортныхСредств + Алкогольная + АлкогольнаяПродукцияДо9Процентов + АльтернативныйТабак + Антисептики + БАДы + БАДы2025 + Бакалея + БезалкогольноеПиво + БезалкогольныеНапитки + БритвыИЛезвия + Велосипеды + ВетеринарныеПрепараты + Ветпрепараты + ДезинфицирующиеСредства + Духи + Зерно + ЗерноВЕТИС + ИгрыИИгрушкиДляДетей + КабельнаяПродукция + КонсервированнаяПродукцияБезВЕТИС + КонсервированнаяПродукцияПодконтрольнаяВЕТИС + Косметика + КормаДляЖивотных + КормаДляЖивотныхБезВетис + КормаДляЖивотныхВлажныеБезВЕТИС + КормаДляЖивотныхВлажныеПодконтрольныеВЕТИС + КреслаКоляски + ЛегкаяПромышленность + ЛегкаяПромышленность2025 + МедицинскиеИзделия + МедицинскиеИзделия20 + МолочнаяПродукцияБезВЕТИС + МолочнаяПродукцияВЕТИС + МорепродуктыПодконтрольныеВЕТИС + МоторныеМасла + МясоПодконтрольноеВЕТИС + НапиткиССодержаниемМолокаКакаоПрочие + НикотиносодержащаяПродукция + Обувь + ОптоволокноИОптоволоконнаяПродукция + ОтопительныеПриборы + ПарфюмерныеИКосметическиеСредстваИБытоваяХимия + ПечатнаяПродукция + ПечатныеПлаты + Пиво + ПивоВПотребительскихУпаковках + ПиротехническиеИзделияИСредстваПожарнойБезопасности + ПодконтрольнаяПродукцияВЕТИС + ПродукцияИзНатуральногоМеха + ПодконтрольнаяПродукцияСАТУРН + ПолимерныеТрубы + ПродуктыПереработкиЗерна + ПродуктыПереработкиЗернаВЕТИС + РадиоэлектроннаяПродукция + РастворимыеЗавариваемыеНапитки + РастительныеМасла + СладостиИКондитерскиеИзделия + СоковаяПродукция + СпортивноеПитание + СтроительныеМатериалы + Табак + ТелефоныИНоутбуки + ТехСредстваРеабилитации + ТитановаяПродукция + ТитановаяМеталлопродукция + ТоварыЛичнойГигиены + УпакованнаяВода + Фотоаппараты + Шины + + + КраткосрочныеКредиты + ПроцентыПоКраткосрочнымКредитам + КраткосрочныеЗаймы + ПроцентыПоКраткосрочнымЗаймам + ДолгосрочныеКредиты + ПроцентыПоДолгосрочнымКредитам + ДолгосрочныеЗаймы + ПроцентыПоДолгосрочнымЗаймам + Комиссия + + + СПоставщиком + СПокупателем + КредитБанка + КредитКонтрагента + ЗаймКонтрагенту + Прочее + + + Долг + Аванс + + + Займы + Подотчет + ДоговорПодряда + Депоненты + + + РегламентированнаяОтчетность + ОтчетностьПоМСФО + + + НаТовар + ПодарочнаяКарта + Дисконтная + Бонус + Подарок + + + ПринятиеКУчету + ВводВЭксплуатацию + ПринятиеКУчетуСВводомВЭксплуатацию + НачислениеАмортизации + ВнутреннееПеремещение + ТекущийРемонт + СреднийРемонт + КапитальныйРемонт + Переоценка + Реконструкция + Достройка + Дооборудование + ЧастичнаяЛиквидация + Модернизация + ПодготовкаКПередаче + Передача + Списание + Прочее + + + Общая + ОбщаяРасчетная + Пониженная + ПониженнаяРасчетная + Нулевая + БезНДС + + + НаРеализацию + Корректировочный + НаАванс + НаАвансКомитента + СуммовыеРазницы + НалоговыйАгент + НаПоступление + + + Акция + БанковскийСертификат + ВексельПокупателя + ВексельСобственный + ВексельТретьихЛиц + Облигация + + + ТОРГ12 + АктНаПередачуПрав + + + Здания + Сооружения + МашиныИОборудование + ОфисноеОборудование + ТранспортныеСредства + ПроизводственныйИХозяйственныйИнвентарь + РабочийСкот + ПродуктивныйСкот + МноголетниеНасаждения + ЗемельныеУчастки + ОбъектыПриродопользования + КапитальныеВложенияВАрендованноеИмущество + ПрочееИмуществоТребующееГосударственнойРегистрации + ДругиеВидыОсновныхСредств + + + ПродажаНаЭкспорт + ПродажаНеОблагаетсяНДС + ПродажаОблагаетсяЕНВД + ПродажаОблагаетсяНДС + ОблагаетсяНДСУПокупателя + ПродажаПоПатенту + ПродажаОблагаетсяНДСВСтранеЕАЭС + + + НалоговыйАгентПоНДС + НДСИсчисляетсяПокупателем + НеОблагаетсяНДС + ОблагаетсяЕНВД + ОблагаетсяНДС + ЭлектронныеУслуги + ПродажаОблагаетсяНДСВСтранеЕАЭС + + + Мужской + Женский + + + НачислениеАмортизации + ВключениеВРасходыПриПринятииКУчету + СтоимостьНеВключаетсяВРасходы + ПринятиеКУчетуЛизинговогоОС + ВключитьВСоставАмортизируемогоИмущества + + + НеОкгруглять + ОкруглятьДо1000 + ОкруглятьДо1000000 + + + НачислениеАмортизации + НачислениеИзноса + СтоимостьНеПогашается + НачислениеИзносаПоЕНАОФ + СписаниеПриПринятииКУчету + ПринятиеКУчетуЛизинговогоОС + СписатьАмортизациюНаЗатратыПриПринятииКУчету + + + БанковскийПлатежныйАгент + БанковскийПлатежныйСубАгент + ПлатежныйАгент + ПлатежныйСубАгент + Поверенный + Комиссионер + Агент + + + Товар + ПодакцизныйТовар + Работа + Услуга + СтавкаАзартнойИгры + ВыигрышАзартнойИгры + ЛотерейныйБилет + ВыигрышЛотереи + ПредоставлениеРезультатаИнтеллектуальнойДеятельности + ПлатежВыплата + АгентскоеВознаграждение + СоставнойПредметРасчета + ИнойПредметРасчета + ИмущественноеПраво + ВнереализационныйДоход + СтраховыеВзносы + ТорговыйСбор + КурортныйСбор + ПодакцизныйТоварМаркируемыйСИНеИмеющийКМ + ПодакцизныйТоварМаркируемыйСИИмеющийКМ + ТоварМаркируемыйСИНеИмеющийКМ + ТоварМаркируемыйСИИмеющийКМ + Залог + Платеж + Выплата + Расход + ОбязательноеПенсионноеСтрахованиеИП + ОбязательноеПенсионноеСтрахование + ОбязательноеМедицинскоеСтрахованиеИП + ОбязательноеМедицинскоеСтрахование + ОбязательноеСоциальноеСтрахование + ПлатежКазино + ВыдачаДенежныхСредств + + + Аванс + ОплатаКредита + ПередачаБезОплаты + ПередачаСПолнойОплатой + ПередачаСЧастичнойОплатой + ПредоплатаПолная + ПредоплатаЧастичная + + + Общая + УпрощеннаяДоход + УпрощеннаяДоходМинусРасход + ЕНВД + ЕдиныйСельскохозяйственныйНалог + ПатентнаяСистема + АУСН + + + Принят + Подтвержден + ГотовКВыдаче + ПереданВДоставку + Выполнен + Отменен + Комплектуется + + + Актуальный + Черновик + Устаревший + + + НеОплачен + ОплаченЧастично + Оплачен + Отменен + + + НеОтгружен + ОтгруженЧастично + Отгружен + Отменен + + + Автоматически + ИзКарточкиНоменклатуры + БезНДС + + + СкладыватьИзЦенКомплектующих + НазначаетсяИРаспределяетсяПоЦене + НазначаетсяИРаспределяетсяПоДолеСтоимости + + + ЧерезБанк + ЧерезКассу + ЧерезРаздатчика + ПеречислениемНаСчета + + + НаБумажномНосителе + ВЭлектронномВиде + + + Самовывоз + ДоКлиента + СиламиПеревозчика + СиламиПеревозчикаПоАдресу + СиламиПоставщикаДоНашегоСклада + СиламиПеревозчикаДоНашегоСклада + СиламиПеревозчикаДоПунктаПередачи + НашимиСиламиСАдресаОтправителя + КПолучателюОпределяетСлужбаДоставки + ОтОтправителяОпределяетСлужбаДоставки + ПоручениеЭкспедиторуСоСклада + ПоручениеЭкспедиторуНаСклад + ПоручениеЭкспедиторуВПункте + Курьером + + + Линейный + УменьшаемогоОстатка + ПропорциональноОбъемуПродукции + + + Линейный + Нелинейный + ПоЕНАОФ + + + Линейный + УменьшаемогоОстатка + ПоСуммеЧиселЛетИспользования + ПропорциональноОбъемуПродукции + ПоЕНАОФ + ПоЕНАОФНа1000кмПробега + + + Автоматически + ПоДокументу + НеПогашать + + + ПриПередаче + ПоСроку + ПоНаработке + + + ПриобретениеЗаПлату + Строительство + ВкладВУставныйКапитал + ВОбменНаДругоеИмущество + БезвозмездноеПоступление + ПоДоговоруАренды + ПоступлениеВДоверительноеУправление + ВкладВСовместнуюДеятельность + Иное + ПоДоговоруЛизинга + + + ПроцентОтСуммыПродажи + ПроцентОтРазницыСуммПродажиИПоступления + НеРассчитывается + ПроизвольнаяСумма + + + ФормироватьДинамически + ПериодическиОбновлять + ФормироватьВручную + + + Действует + Аннулирована + + + НеСогласована + Согласована + КОплате + Отклонена + + + Агент + Комиссионер + + + СырьеИМатериалы + ПокупныеПолуфабрикатыИКомплектующие + ВозвратнаяТара + Топливо + ЗапасныеЧасти + ПрочиеМатериалы + СтроительныеМатериалы + ИнвентарьИХозяйственныеПринадлежности + СпецоснасткаИСпецодеждаНаСкладе + СобственныеТовары + ПокупныеИзделия + ГотоваяПродукция + КомиссионныеТовары + ДавальческиеСырьеИМатериалы + + + ИсходныеСведения + СведенияПослеКорректировки + НеКорректировка + + + Товар + Услуга + Работа + МногооборотнаяТара + Набор + + + Наличные + Электронно + Предоплата + Постоплата + ВстречноеПредставление + + + День + Неделя + Декада + Месяц + Квартал + Полугодье + Год + + + СистемаБыстрыхПлатежей + SWiP + СертификатНСПК + ЮКасса + ПлатежнаяКарта + + + Аккредитив + БанковскийОрдер + ИнкассовоеПоручение + ПлатежныйОрдер + ПлатежноеПоручение + ПлатежноеТребование + + + Магазин + НеавтоматизированнаяТорговаяТочка + Оптовый + Розничный + + + ВсеВыполнено + ДействийНеТребуется + ТребуютсяДействия + Отклонен + + + Аннулирован + ЗакрытПринудительно + ЗакрытСОтклонением + ЗакрытСОтклонениемПриглашения + ЗакрытСОшибкойПередачи + НеПолучен + НеСформирован + ОбменЗавершен + ОбменЗавершенСИсправлением + ОжидаетсяИзвещениеОПолучении + ОжидаетсяИзвещениеПоОтклонению + ОжидаетсяИсправление + ОжидаетсяОтветНаПриглашение + ОжидаетсяПередачаОператору + ОжидаетсяПодтверждение + ОжидаетсяПодтверждениеАннулирования + ОжидаетсяПодтверждениеОператора + ТребуетсяИзвещениеОПолучении + ТребуетсяИзвещениеПоОтклонению + ТребуетсяИсправлениеОшибкиПередачи + ТребуетсяОтправка + ТребуетсяОтправкаАннулирования + ТребуетсяОтправкаИзвещения + ТребуетсяОтправкаИзвещенияПоОтклонению + ТребуетсяОтправкаОтклонения + ТребуетсяОтправкаПриглашения + ТребуетсяПовторнаяОтправка + ТребуетсяПодготовкаКОтправке + ТребуетсяПодготовкаКОтправкеАннулирования + ТребуетсяПодготовкаКОтправкеИзвещения + ТребуетсяПодготовкаКОтправкеИзвещенияПоОтклонению + ТребуетсяПодготовкаКОтправкеОтклонения + ТребуетсяПодписание + ТребуетсяПодписаниеАннулирования + ТребуетсяПодписаниеИзвещения + ТребуетсяПодписаниеИзвещенияПоОтклонению + ТребуетсяПодписаниеОтклонения + ТребуетсяПодтверждениеАннулирования + ТребуетсяУтверждение + ТребуетсяУточнение + УдалитьОжидаетсяВыписка + УдалитьОжидаетсяИзвещение + УдалитьОжидаетсяИсполнение + УдалитьОжидаетсяОтзыв + УдалитьОжидаетсяОтправкаПолучателю + УдалитьОтклоненОператором + УдалитьПлатежИсполнен + УдалитьТребуетсяПодтверждение + + + МаркированныйТовар + МонотоварнаяУпаковка + МультитоварнаяУпаковка + + + Собственные + Агентские + + + PDF417 + ITF14 + EAN8 + EAN13 + Code39 + Code128 + SSCC + GS1_DataBarExpandedStacked + GS1_128 + QR + DataMatrix + GS1_DataMatrix + + + Наличная + Безналичная + ПлатежнаяКарта + + + ЮридическоеЛицо + ФизическоеЛицо + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + ВодительскоеУдостоверение + ВоенныйБилет + ВоенныйБилетОфицераЗапаса + ДипломатическийПаспорт + ЗагранпаспортРФ + ЗагранпаспортСССР + ПаспортРФ + ПаспортСССР + ПаспортМинморфлота + ПаспортМоряка + СвидетельствоОРождении + УдостоверениеОфицера + УдостоверениеГражданинаПодлежащегоПризыву + СправкаВзаменВоенногоБилета + ВременноеУдостоверениеВзаменВоенногоБилетаОфицераЗапаса + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + День + Месяц + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + Товар + Комплект + НеПрослеживается + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + Доверенность + Приказ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + ОсновнаяСистемаНалогообложения + ОсобыйПорядокНалогообложения + РаспределяемыеЗатраты + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + КредитыПолученные + ЗаймыПолученные + ЗаймыВыданныеСотрудникам + Депозиты + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + Проценты + Комиссия + + + + + Краткосрочный + Долгосрочный + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + ПолучениеНаличных + Инкассация + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + \ No newline at end of file diff --git a/SSL/src/XDTOPackages/ГосключЗапросНаПодписание/Package.xdto b/SSL/src/XDTOPackages/ГосключЗапросНаПодписание/Package.xdto new file mode 100644 index 000000000..d8cd974e9 --- /dev/null +++ b/SSL/src/XDTOPackages/ГосключЗапросНаПодписание/Package.xdto @@ -0,0 +1,24 @@ + + + + + + + + + + + + + + + + + + + + + + + + \ No newline at end of file diff --git a/SSL/src/XDTOPackages/ГосключЗапросНаПодписание/ГосключЗапросНаПодписание.mdo b/SSL/src/XDTOPackages/ГосключЗапросНаПодписание/ГосключЗапросНаПодписание.mdo new file mode 100644 index 000000000..43e9af0f6 --- /dev/null +++ b/SSL/src/XDTOPackages/ГосключЗапросНаПодписание/ГосключЗапросНаПодписание.mdo @@ -0,0 +1,9 @@ + + + ГосключЗапросНаПодписание + + ru + Госключ - запрос на подписание + + http://www.1c.ru/ssl/SignRequest + diff --git a/SSL/src/XDTOPackages/ПодписаниеДокументовГосключ/Package.xdto b/SSL/src/XDTOPackages/ПодписаниеДокументовГосключ/Package.xdto new file mode 100644 index 000000000..49cc27a41 --- /dev/null +++ b/SSL/src/XDTOPackages/ПодписаниеДокументовГосключ/Package.xdto @@ -0,0 +1,41 @@ + + + + + [0-9]{3}[-][0-9]{3}[-][0-9]{3} [0-9]{2} + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + \ No newline at end of file diff --git a/SSL/src/XDTOPackages/ПодписаниеДокументовГосключ/ПодписаниеДокументовГосключ.mdo b/SSL/src/XDTOPackages/ПодписаниеДокументовГосключ/ПодписаниеДокументовГосключ.mdo new file mode 100644 index 000000000..29a8eac5b --- /dev/null +++ b/SSL/src/XDTOPackages/ПодписаниеДокументовГосключ/ПодписаниеДокументовГосключ.mdo @@ -0,0 +1,9 @@ + + + ПодписаниеДокументовГосключ + + ru + Подписание документов госключ + + urn://www.1c.ru/ssl/gosuslugi/sign_document/1.0.0 + diff --git a/SSL/src/XDTOPackages/ПодписаниеДокументовГосключЮЛ/Package.xdto b/SSL/src/XDTOPackages/ПодписаниеДокументовГосключЮЛ/Package.xdto new file mode 100644 index 000000000..420437f4f --- /dev/null +++ b/SSL/src/XDTOPackages/ПодписаниеДокументовГосключЮЛ/Package.xdto @@ -0,0 +1,62 @@ + + + + + + + \d{11}|\d{13}|\d{15} + + + \d{11} + + + [0-9]{3}[-][0-9]{3}[-][0-9]{3} [0-9]{2} + + + \d{12} + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + \ No newline at end of file diff --git a/SSL/src/XDTOPackages/ПодписаниеДокументовГосключЮЛ/ПодписаниеДокументовГосключЮЛ.mdo b/SSL/src/XDTOPackages/ПодписаниеДокументовГосключЮЛ/ПодписаниеДокументовГосключЮЛ.mdo new file mode 100644 index 000000000..4698f20ed --- /dev/null +++ b/SSL/src/XDTOPackages/ПодписаниеДокументовГосключЮЛ/ПодписаниеДокументовГосключЮЛ.mdo @@ -0,0 +1,9 @@ + + + ПодписаниеДокументовГосключЮЛ + + ru + Подписание документов в Госключ ЮЛ и ИП + + urn://www.1c.ru/ssl/gosuslugi/sign_document_ukep_legalperson/1.0.0 +