From 8df53fc85565e32089335852750f77444b5e9a6d Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=D0=9A=D0=BE=D0=BC=D0=BF=D0=B0=D0=BD=D0=B8=D1=8F=201=D0=A1?= Date: Fri, 24 Dec 2021 12:49:00 +0300 Subject: [PATCH] 3_1_6_62 --- .../Forms/ФормаБизнесПроцесса/Form.form | 2 +- .../Валюты/Forms/ФормаЭлемента/Form.form | 24 + .../Валюты/Forms/ФормаЭлемента/Module.bsl | 90 + SSL/src/Catalogs/Валюты/ManagerModule.bsl | 3 +- .../Forms/РазмещениеВРазделах/Module.bsl | 2 +- .../Forms/ФормаСписка/Form.form | 110 +- .../Forms/ФормаСписка/Module.bsl | 119 +- .../Forms/ФормаЭлемента/Module.bsl | 17 +- .../ВариантыОтчетов/ManagerModule.bsl | 4 +- .../ВариантыОтчетов/ВариантыОтчетов.mdo | 42 + .../ВерсииФайлов/Forms/ВерсииФайла/Module.bsl | 2 +- .../Список/ExtInfo/ListSettings.dcss | 17 + .../Forms/ФормаВыбора/Form.form | 307 + .../Forms/ФормаВыбора/Module.bsl | 65 + .../Forms/ФормаСписка/Form.form | 10 +- .../Forms/ФормаСписка/Module.bsl | 81 +- .../Forms/ФормаЭлемента/Form.form | 33 +- .../Forms/ФормаЭлемента/Module.bsl | 66 +- .../ManagerModule.bsl | 53 +- .../ВидыКонтактнойИнформации/ObjectModule.bsl | 20 +- .../ВидыКонтактнойИнформации.mdo | 418 +- .../Catalogs/ВидыПроверок/ВидыПроверок.mdo | 10 +- .../Module.bsl | 4 +- .../Forms/ФормаЭлемента/Form.form | 2 +- .../ВнешниеКомпоненты/ManagerModule.bsl | 2 +- .../Forms/ФормаСписка/Module.bsl | 14 +- .../ВнешниеПользователи/ManagerModule.bsl | 8 +- .../ВопросыШаблонаАнкеты/ManagerModule.bsl | 6 +- .../Forms/ФормаЭлемента/Form.form | 30 + .../Forms/ФормаЭлемента/Module.bsl | 39 + .../Catalogs/ГруппыДоступа/ManagerModule.bsl | 11 +- .../Forms/ФормаСписка/Form.form | 27 +- .../Forms/ФормаСписка/Module.bsl | 42 +- .../Forms/ФормаЭлемента/Module.bsl | 11 +- .../Forms/ФормаСписка/Form.form | 25 +- .../Forms/ФормаСписка/Module.bsl | 41 +- .../Forms/ФормаЭлемента/Module.bsl | 13 +- .../ManagerModule.bsl | 16 +- .../Календари/Forms/ФормаСписка/Form.form | 3 - .../Календари/Forms/ФормаЭлемента/Form.form | 2 +- .../КлючевыеОперации/ObjectModule.bsl | 7 +- .../УсловияВидимостиВПодменюПечать/Form.form | 589 + .../УсловияВидимостиВПодменюПечать/Module.bsl | 276 + .../МакетыПечатныхФорм/ManagerModule.bsl | 296 + .../МакетыПечатныхФорм/ObjectModule.bsl} | 0 .../МакетыПечатныхФорм/МакетыПечатныхФорм.mdo | 301 + .../Forms/ФормаСписка/Form.form | 48 +- .../Forms/ФормаСписка/Module.bsl | 103 +- .../Forms/ФормаЭлемента/Form.form | 4 + .../Forms/ФормаЭлемента/Module.bsl | 39 + .../ManagerModule.bsl | 203 +- .../ObjectModule.bsl | 13 + .../ПапкиЭлектронныхПисем/ManagerModule.bsl | 16 +- .../Пользователи/Forms/ФормаСписка/Module.bsl | 1 + .../Forms/ФормаЭлемента/Module.bsl | 55 +- .../Catalogs/Пользователи/ManagerModule.bsl | 7 +- ...авляемыеДополнительныеОтчетыИОбработки.mdo | 5 +- .../Forms/ФормаСписка/Form.form | 3 - .../ПравилаПроверкиУчета/ManagerModule.bsl | 14 +- .../ПредопределенныеВариантыОтчетов.mdo | 406 +- ...допределенныеВариантыОтчетовРасширений.mdo | 174 + .../ManagerModule.bsl | 12 +- .../Forms/ФормаСписка/Form.form | 5 + .../Forms/ФормаСписка/Module.bsl | 48 + .../Forms/ФормаЭлемента/Form.form | 4 + .../Forms/ФормаЭлемента/Module.bsl | 85 +- .../Forms/ФормаЭлемента/Module.bsl | 4 +- .../РолиИсполнителей/ManagerModule.bsl | 4 +- .../Form.form | 79 +- .../Module.bsl | 74 +- .../Forms/ДобавлениеСертификата/Module.bsl | 2 +- .../Form.form | 45 +- .../Module.bsl | 32 +- .../Form.form | 104 +- .../Module.bsl | 84 +- .../ПодборСертификатовДляШифрования/Form.form | 4 +- .../Module.bsl | 2 +- .../Forms/ПодписаниеДанных/Form.form | 13 +- .../Forms/ПодписаниеДанных/Module.bsl | 2 +- .../Forms/ПроверкаСертификата/Form.form | 9 +- .../Forms/ПроверкаСертификата/Module.bsl | 12 +- .../Forms/РасшифровкаДанных/Form.form | 7 +- .../Forms/РасшифровкаДанных/Module.bsl | 2 +- .../Forms/СписокПользователей/Form.form | 6 +- .../Forms/СписокПользователей/Module.bsl | 11 +- .../Forms/ФормаВыбора/Form.form | 4 +- .../Forms/ФормаВыбора/Module.bsl | 3 +- .../Forms/ФормаЭлемента/Form.form | 621 +- .../Forms/ФормаЭлемента/Module.bsl | 155 +- .../Forms/ШифрованиеДанных/Form.form | 2 +- .../ManagerModule.bsl | 175 +- .../ObjectModule.bsl | 2 + ...атыКлючейЭлектроннойПодписиИШифрования.mdo | 101 +- .../ManagerModule.bsl | 9 +- SSL/src/Catalogs/СтраныМира/ManagerModule.bsl | 13 +- .../Forms/ФормаЭлемента/Module.bsl | 3 +- .../ПомощникНастройкиУчетнойЗаписи/Module.bsl | 26 +- .../ПроверкаНастроекУчетнойЗаписи/Form.form | 707 +- .../ПроверкаНастроекУчетнойЗаписи/Module.bsl | 115 +- .../Forms/ФормаСписка/Form.form | 3 - .../Forms/ФормаЭлемента/Form.form | 77 + .../Forms/ФормаЭлемента/Module.bsl | 39 +- .../ManagerModule.bsl | 5 + SSL/src/Catalogs/Файлы/Forms/Файлы/Module.bsl | 19 +- .../Файлы/Forms/ФормаЭлемента/Form.form | 90 +- .../Файлы/Forms/ФормаЭлемента/Module.bsl | 28 +- SSL/src/Catalogs/Файлы/ManagerModule.bsl | 16 +- .../ШаблоныСообщений/ManagerModule.bsl | 13 +- .../Forms/ФормаСписка/Form.form | 6 +- .../ВопросыДляАнкетирования/ManagerModule.bsl | 4 +- .../Forms/ФормаЭлемента/Form.form | 54 +- .../Forms/ФормаЭлемента/Module.bsl | 186 +- .../ManagerModule.bsl | 10 +- .../ObjectModule.bsl | 25 +- .../ДополнительныеРеквизитыИСведения.mdo | 252 +- .../ОбъектыАдресацииЗадач/ManagerModule.bsl | 4 +- .../Forms/ФормаЭлемента/Module.bsl | 2 +- .../ManagerModule.bsl | 9 +- .../НаименованиеЯзык1/НаименованиеЯзык1.mdo | 28 + .../НаименованиеЯзык2/НаименованиеЯзык2.mdo | 28 + .../ОбластьДанныхВспомогательныеДанные.mdo | 4 + .../ОбластьДанныхОсновныеДанные.mdo | 16 + .../CommonForms/АвтономнаяРабота/Form.form | 2 +- .../CommonForms/ВводНаРазныхЯзыках/Form.form | 13 + .../CommonForms/ВводНаРазныхЯзыках/Module.bsl | 145 +- .../ВосстановлениеПаролей/Module.bsl | 9 +- .../Module.bsl | 25 +- .../ВыборОбъектовМетаданных/Form.form | 148 +- .../ВыборОбъектовМетаданных/Module.bsl | 339 +- .../НастройкиПравОбъектов/Form.form | 515 +- .../НастройкиПравОбъектов/Module.bsl | 155 +- .../НастройкиСинхронизацииДанных/Form.form | 49 + .../НастройкиСинхронизацииДанных/Module.bsl | 15 + .../Form.form | 789 +- .../Module.bsl | 313 +- .../ОписаниеИзмененийПрограммы/Form.form | 2 +- .../ОписаниеИзмененийПрограммы/Help/ru.html | 2 +- .../ОписаниеИзмененийПрограммы/Module.bsl | 2 +- .../CommonForms/ОтправкаСообщения/Module.bsl | 16 +- SSL/src/CommonForms/ПанельОтчетов/Module.bsl | 6 +- .../CommonForms/ПечатьДокументов/Form.form | 2 +- .../CommonForms/ПечатьДокументов/Module.bsl | 43 +- SSL/src/CommonForms/Расширения/Module.bsl | 5 - .../РегиональныеНастройки/Form.form | 23 +- .../РегиональныеНастройки/Module.bsl | 81 +- .../Form.form | 57 + .../Form.form | 4432 ++++++- .../Module.bsl | 1814 ++- SSL/src/CommonForms/Сертификат/Form.form | 108 + SSL/src/CommonForms/Сертификат/Module.bsl | 3 + SSL/src/CommonForms/Склонения/Form.form | 2 +- .../УстановленныеИсправления/Form.form | 52 + .../УстановленныеИсправления/Module.bsl | 28 +- .../ФормаВариантаОтчета/Module.bsl | 12 +- .../CommonForms/ФормаНастроекОтчета/Form.form | 377 +- .../ФормаНастроекОтчета/Module.bsl | 544 +- SSL/src/CommonForms/ФормаОтчета/Form.form | 856 +- SSL/src/CommonForms/ФормаОтчета/Module.bsl | 1045 +- SSL/src/CommonForms/ФормаПоиска/Module.bsl | 11 +- .../CommonModules/АвтономнаяРабота/Module.bsl | 45 + .../АвтономнаяРаботаСлужебный/Module.bsl | 352 +- .../АдминистрированиеКластера/Module.bsl | 9 +- .../АдресныйКлассификаторСлужебный/Module.bsl | 60 +- .../Module.bsl | 4 +- .../CommonModules/ВариантыОтчетов/Module.bsl | 1932 ++- .../ВариантыОтчетовПовтИсп/Module.bsl | 12 +- .../ВариантыОтчетовСлужебный/Module.bsl | 224 +- .../ВариантыОтчетовСлужебныйКлиент/Module.bsl | 388 +- .../Module.bsl | 31 + .../ВерсионированиеОбъектов/Module.bsl | 186 +- .../CommonModules/Взаимодействия/Module.bsl | 9 +- .../ВнешниеКомпонентыСервер/Module.bsl | 10 +- .../ВнешниеКомпонентыСлужебный/Module.bsl | 32 +- .../Module.bsl | 14 +- .../ДлительныеОперацииКлиент/Module.bsl | 1 + .../Module.bsl | 6 +- .../ЖурналРегистрации/Module.bsl | 7 +- .../ИнтеграцияПодсистемБСП/Module.bsl | 87 +- .../ИнтеграцияПодсистемБСПКлиент/Module.bsl | 27 +- .../ИнформацияПриЗапуске/Module.bsl | 2 +- .../КалендарныеГрафики/Module.bsl | 4 +- .../КалендарныеГрафикиСлужебный/Module.bsl | 6 +- .../КонструкторФормул/Module.bsl | 102 +- .../КонструкторФормулКлиент/Module.bsl | 62 +- .../КонструкторФормулКлиентСервер/Module.bsl | 4 + .../КонструкторФормулСлужебный/Module.bsl | 660 +- .../КонтрольВеденияУчета/Module.bsl | 23 + .../КонтрольВеденияУчетаКлиент/Module.bsl | 6 +- .../КонтрольВеденияУчетаСлужебный/Module.bsl | 108 +- .../Module.bsl | 3 +- .../МультиязычностьКлиентСервер/Module.bsl | 7 +- .../МультиязычностьПовтИсп/Module.bsl | 69 +- .../МультиязычностьСервер/Module.bsl | 1443 ++- .../НапоминанияПользователя/Module.bsl | 12 + .../Module.bsl | 36 + .../ОбменДаннымиXDTOСервер/Module.bsl | 126 +- .../ОбменДаннымиВМоделиСервиса/Module.bsl | 4 +- .../ОбменДаннымиПереопределяемый/Module.bsl | 10 +- .../ОбменДаннымиПовтИсп/Module.bsl | 86 +- .../ОбменДаннымиСервер/Module.bsl | 318 +- .../ОбменДаннымиСлужебный/Module.bsl | 6 +- .../ОбменДаннымиСобытия/Module.bsl | 39 +- .../ОбновлениеИнформационнойБазы/Module.bsl | 490 +- .../Module.bsl | 260 + .../ОбновлениеИнформационнойБазыБСД.mdo | 11 + .../Module.bsl | 2 +- .../Module.bsl | 2 +- .../Module.bsl | 134 +- .../Module.bsl | 23 + .../Module.bsl | 1000 +- .../Module.bsl | 60 + .../Module.bsl | 167 +- .../ОбновлениеКонфигурацииКлиент/Module.bsl | 9 +- .../ОбсужденияСлужебный/Module.bsl | 23 + .../ОбсужденияСлужебныйКлиент/Module.bsl | 9 - .../CommonModules/ОбщегоНазначения/Module.bsl | 313 +- .../ОбщегоНазначенияКлиент/Module.bsl | 19 +- .../ОбщегоНазначенияКлиентСервер/Module.bsl | 102 +- .../Module.bsl | 10 + .../Module.bsl | 18 +- .../Module.bsl | 12 +- SSL/src/CommonModules/ОтчетыКлиент/Module.bsl | 162 +- .../ОтчетыКлиентПереопределяемый/Module.bsl | 27 + .../ОтчетыКлиентСервер/Module.bsl | 81 +- SSL/src/CommonModules/ОтчетыСервер/Module.bsl | 197 +- .../ПереводТекстаНаДругиеЯзыки/Module.bsl | 84 + .../ПодключаемыеКоманды/Module.bsl | 8 +- .../Module.bsl | 27 +- .../ПолнотекстовыйПоискСервер/Module.bsl | 9 +- .../Module.bsl | 6 +- .../ПользователиСлужебный/Module.bsl | 10 +- .../CommonModules/РаботаСАдресами/Module.bsl | 40 +- .../РаботаСКурсамиВалют/Module.bsl | 63 + .../РаботаСКурсамиВалютСлужебный/Module.bsl | 14 +- .../РаботаСПочтовымиСообщениями/Module.bsl | 33 + .../Module.bsl | 19 +- .../Module.bsl | 212 +- .../CommonModules/РаботаСФайлами/Module.bsl | 42 +- .../РаботаСФайламиВТомахСлужебный/Module.bsl | 6 +- .../РаботаСФайламиСлужебный/Module.bsl | 197 +- .../Module.bsl | 8 +- .../РаботаСФайламиСлужебныйКлиент/Module.bsl | 76 +- .../CommonModules/РассылкаОтчетов/Module.bsl | 20 +- .../РегламентныеЗаданияСервер/Module.bsl | 26 +- .../РезервноеКопированиеИБСервер/Module.bsl | 80 +- .../СервисКриптографииDSS/Module.bsl | 33 +- .../Module.bsl | 55 +- .../Module.bsl | 2 +- .../Module.bsl | 8 +- .../СервисКриптографииDSSСлужебный/Module.bsl | 61 +- .../Module.bsl | 6 + .../СклонениеПредставленийОбъектов/Module.bsl | 97 +- .../Module.bsl | 7 +- SSL/src/CommonModules/СоединенияИБ/Module.bsl | 12 +- .../СоединенияИБКлиент/Module.bsl | 33 +- .../Module.bsl | 6 +- .../СтандартныеПодсистемыКлиент/Module.bsl | 24 +- .../Module.bsl | 11 +- .../СтандартныеПодсистемыПовтИсп/Module.bsl | 34 +- .../СтандартныеПодсистемыСервер/Module.bsl | 218 +- .../СтроковыеФункцииКлиентСервер/Module.bsl | 2 +- .../Module.bsl | 23 + .../УправлениеДоступомСлужебный/Module.bsl | 482 +- .../Module.bsl | 25 +- .../Module.bsl | 812 +- .../Module.bsl | 11 +- .../Module.bsl | 310 +- .../Module.bsl | 34 + .../Module.bsl | 21 +- .../УправлениеПечатью/Module.bsl | 2522 +++- .../УправлениеПечатьюКлиент/Module.bsl | 21 +- .../УправлениеПечатьюКлиентСервер/Module.bsl | 14 + .../Module.bsl | 150 +- .../Module.bsl | 22 + ...ПечатьюМультиязычностьПереопределяемый.mdo | 11 + .../Module.bsl | 35 + .../Module.bsl | 34 + .../УправлениеСвойствамиСлужебный/Module.bsl | 160 +- .../УправлениеЭлектроннойПочтой/Module.bsl | 16 +- .../Module.bsl | 18 +- .../Module.bsl | 79 +- .../CommonModules/ФайловаяСистема/Module.bsl | 20 +- .../ЦентрМониторингаСлужебный/Module.bsl | 220 +- .../ЭлектроннаяПодпись/Module.bsl | 143 +- .../ЭлектроннаяПодписьКлиент/Module.bsl | 10 +- .../ЭлектроннаяПодписьСлужебный/Module.bsl | 774 +- .../Module.bsl | 18 +- .../Module.bsl | 295 +- .../Module.bsl | 91 +- .../Module.bsl | 2 + .../ВертикальноеПоложениеВерх/Picture.svg | 4 + .../ВертикальноеПоложениеВерх/Picture.zip | Bin 2876 -> 0 bytes .../ВертикальноеПоложениеНиз/Picture.svg | 4 + .../ВертикальноеПоложениеНиз/Picture.zip | Bin 2677 -> 0 bytes .../ВертикальноеПоложениеЦентр/Picture.svg | 4 + .../ВертикальноеПоложениеЦентр/Picture.zip | Bin 2997 -> 0 bytes .../ВыравниваниеПоЛевомуКраю/Picture.svg | 6 + .../ВыравниваниеПоЛевомуКраю/Picture.zip | Bin 3925 -> 0 bytes .../ВыравниваниеПоПравомуКраю/Picture.svg | 6 + .../ВыравниваниеПоПравомуКраю/Picture.zip | Bin 4024 -> 0 bytes .../ВыравниваниеПоЦентру/Picture.svg | 6 + .../ВыравниваниеПоЦентру/Picture.zip | Bin 3931 -> 0 bytes .../МестоДляКартинки/Picture.png | Bin 0 -> 16016 bytes .../МестоДляКартинки/МестоДляКартинки.mdo | 8 + .../МетаданныеHTTPСервисы/Picture.png | Bin 0 -> 1364 bytes .../МетаданныеHTTPСервисы.mdo | 8 + .../Picture.png | Bin 0 -> 355 bytes .../МетаданныеHTTPСервисыШаблоныURL.mdo | 8 + .../Picture.png | Bin 0 -> 266 bytes .../МетаданныеHTTPСервисыШаблоныURLМетоды.mdo | 8 + .../МетаданныеWSСсылки/Picture.png | Bin 0 -> 1569 bytes .../МетаданныеWSСсылки/МетаданныеWSСсылки.mdo | 8 + .../МетаданныеWebСервисы/Picture.png | Bin 0 -> 1671 bytes .../МетаданныеWebСервисы.mdo | 8 + .../МетаданныеWebСервисыОперации/Picture.png | Bin 0 -> 1536 bytes .../МетаданныеWebСервисыОперации.mdo | 8 + .../Picture.png | Bin 0 -> 1094 bytes .../МетаданныеWebСервисыОперацииПараметры.mdo | 8 + .../МетаданныеБизнесПроцессы/Picture.png | Bin 0 -> 1592 bytes .../МетаданныеБизнесПроцессы.mdo | 8 + .../CommonPictures/МетаданныеБоты/Picture.png | Bin 0 -> 2462 bytes .../МетаданныеБоты/МетаданныеБоты.mdo | 8 + .../Picture.png | Bin 0 -> 1425 bytes .../МетаданныеВнешниеИсточникиДанных.mdo | 8 + .../Picture.png | Bin 0 -> 1478 bytes .../МетаданныеВнешниеИсточникиКубы.mdo | 8 + .../Picture.png | Bin 0 -> 1273 bytes .../МетаданныеВнешниеИсточникиТаблицы.mdo | 8 + .../Picture.png | Bin 0 -> 1443 bytes ...данныеВнешниеИсточникиТаблицыИзмерений.mdo | 8 + .../Picture.png | Bin 0 -> 1016 bytes .../МетаданныеВнешниеИсточникиФункции.mdo | 8 + .../МетаданныеГрафы/Picture.png | Bin 0 -> 1224 bytes .../МетаданныеГрафы/МетаданныеГрафы.mdo | 8 + .../МетаданныеГруппыКоманд/Picture.png | Bin 0 -> 1245 bytes .../МетаданныеГруппыКоманд.mdo | 8 + .../МетаданныеДокументы/Picture.png | Bin 0 -> 1539 bytes .../МетаданныеДокументы.mdo | 8 + .../МетаданныеЖурналыДокументов/Picture.png | Bin 0 -> 1372 bytes .../МетаданныеЖурналыДокументов.mdo | 8 + .../МетаданныеЗадачи/Picture.png | Bin 0 -> 1496 bytes .../МетаданныеЗадачи/МетаданныеЗадачи.mdo | 8 + .../Picture.png | Bin 0 -> 1148 bytes .../МетаданныеЗначениеПеречисления.mdo | 8 + .../МетаданныеИзмерения/Picture.png | Bin 0 -> 1167 bytes .../МетаданныеИзмерения.mdo | 8 + .../МетаданныеКоманды/Picture.png | Bin 0 -> 1570 bytes .../МетаданныеКоманды/МетаданныеКоманды.mdo | 8 + .../МетаданныеКонстанты/Picture.png | Bin 0 -> 1217 bytes .../МетаданныеКонстанты.mdo | 8 + .../МетаданныеКонфигурация/Picture.png | Bin 0 -> 767 bytes .../МетаданныеКонфигурация.mdo | 8 + .../МетаданныеКритерииОтбора/Picture.png | Bin 0 -> 1500 bytes .../МетаданныеКритерииОтбора.mdo | 8 + .../МетаданныеМакеты/Picture.png | Bin 0 -> 1338 bytes .../МетаданныеМакеты/МетаданныеМакеты.mdo | 8 + .../МетаданныеОбработки/Picture.png | Bin 0 -> 1412 bytes .../МетаданныеОбработки.mdo | 8 + .../МетаданныеОбщие/Picture.png | Bin 0 -> 1520 bytes .../МетаданныеОбщие/МетаданныеОбщие.mdo | 8 + .../МетаданныеОбщиеКартинки/Picture.png | Bin 0 -> 3265 bytes .../МетаданныеОбщиеКартинки.mdo | 8 + .../МетаданныеОбщиеКоманды/Picture.png | Bin 0 -> 1570 bytes .../МетаданныеОбщиеКоманды.mdo | 8 + .../МетаданныеОбщиеМакеты/Picture.png | Bin 0 -> 1323 bytes .../МетаданныеОбщиеМакеты.mdo | 8 + .../МетаданныеОбщиеМодули/Picture.png | Bin 0 -> 1377 bytes .../МетаданныеОбщиеМодули.mdo | 8 + .../МетаданныеОбщиеРеквизиты/Picture.png | Bin 0 -> 1129 bytes .../МетаданныеОбщиеРеквизиты.mdo | 8 + .../МетаданныеОбщиеФормы/Picture.png | Bin 0 -> 1276 bytes .../МетаданныеОбщиеФормы.mdo | 8 + .../МетаданныеОпределяемыеТипы/Picture.png | Bin 0 -> 1090 bytes .../МетаданныеОпределяемыеТипы.mdo | 8 + .../МетаданныеОпределяемыйТип/Picture.png | Bin 0 -> 1054 bytes .../МетаданныеОпределяемыйТип.mdo | 8 + .../МетаданныеОтчеты/Picture.png | Bin 0 -> 1522 bytes .../МетаданныеОтчеты/МетаданныеОтчеты.mdo | 8 + .../МетаданныеПакетыXDTO/Picture.png | Bin 0 -> 1594 bytes .../МетаданныеПакетыXDTO.mdo | 8 + .../МетаданныеПараметрыСеанса/Picture.png | Bin 0 -> 1445 bytes .../МетаданныеПараметрыСеанса.mdo | 8 + .../Picture.png | Bin 0 -> 1177 bytes ...МетаданныеПараметрыФункциональныхОпций.mdo | 8 + .../МетаданныеПерерасчеты/Picture.png | Bin 0 -> 1418 bytes .../МетаданныеПерерасчеты.mdo | 8 + .../МетаданныеПеречисления/Picture.png | Bin 0 -> 1226 bytes .../МетаданныеПеречисления.mdo | 8 + .../МетаданныеПланыВидовРасчета/Picture.png | Bin 0 -> 1303 bytes .../МетаданныеПланыВидовРасчета.mdo | 8 + .../Picture.png | Bin 0 -> 1315 bytes .../МетаданныеПланыВидовХарактеристик.mdo | 8 + .../МетаданныеПланыОбмена/Picture.png | Bin 0 -> 1435 bytes .../МетаданныеПланыОбмена.mdo | 8 + .../МетаданныеПланыСчетов/Picture.png | Bin 0 -> 1311 bytes .../МетаданныеПланыСчетов.mdo | 8 + .../МетаданныеПодпискиНаСобытия/Picture.png | Bin 0 -> 1525 bytes .../МетаданныеПодпискиНаСобытия.mdo | 8 + .../МетаданныеПодсистемы/Picture.png | Bin 0 -> 1153 bytes .../МетаданныеПодсистемы.mdo | 8 + .../МетаданныеПоследовательности/Picture.png | Bin 0 -> 1466 bytes .../МетаданныеПоследовательности.mdo | 8 + .../МетаданныеПризнакиУчета/Picture.png | Bin 0 -> 441 bytes .../МетаданныеПризнакиУчета.mdo | 8 + .../Picture.png | Bin 0 -> 612 bytes .../МетаданныеПризнакиУчетаСубконто.mdo | 8 + .../МетаданныеРегистрыБухгалтерии/Picture.png | Bin 0 -> 1480 bytes .../МетаданныеРегистрыБухгалтерии.mdo | 8 + .../МетаданныеРегистрыНакопления/Picture.png | Bin 0 -> 1552 bytes .../МетаданныеРегистрыНакопления.mdo | 8 + .../МетаданныеРегистрыРасчета/Picture.png | Bin 0 -> 1543 bytes .../МетаданныеРегистрыРасчета.mdo | 8 + .../МетаданныеРегистрыСведений/Picture.png | Bin 0 -> 1481 bytes .../МетаданныеРегистрыСведений.mdo | 8 + .../МетаданныеРегламентныеЗадания/Picture.png | Bin 0 -> 1525 bytes .../МетаданныеРегламентныеЗадания.mdo | 8 + .../МетаданныеРеквизиты/Picture.png | Bin 0 -> 1125 bytes .../МетаданныеРеквизиты.mdo | 8 + .../МетаданныеРеквизитыАдресации/Picture.png | Bin 0 -> 1124 bytes .../МетаданныеРеквизитыАдресации.mdo | 8 + .../МетаданныеРесурсы/Picture.png | Bin 0 -> 1431 bytes .../МетаданныеРесурсы/МетаданныеРесурсы.mdo | 8 + .../CommonPictures/МетаданныеРоли/Picture.png | Bin 0 -> 1493 bytes .../МетаданныеРоли/МетаданныеРоли.mdo | 8 + .../МетаданныеСправочники/Picture.png | Bin 0 -> 1339 bytes .../МетаданныеСправочники.mdo | 8 + .../Picture.png | Bin 0 -> 251 bytes .../МетаданныеСтандартныеРеквизиты.mdo | 8 + .../Picture.png | Bin 0 -> 573 bytes .../МетаданныеСтандартныеТабличныеЧасти.mdo | 8 + .../МетаданныеСтили/Picture.png | Bin 0 -> 1520 bytes .../МетаданныеСтили/МетаданныеСтили.mdo | 8 + .../МетаданныеТабличныеЧасти/Picture.png | Bin 0 -> 1376 bytes .../МетаданныеТабличныеЧасти.mdo | 8 + .../МетаданныеФормы/Picture.png | Bin 0 -> 1276 bytes .../МетаданныеФормы/МетаданныеФормы.mdo | 8 + .../МетаданныеФункциональныеОпции/Picture.png | Bin 0 -> 1089 bytes .../МетаданныеФункциональныеОпции.mdo | 8 + .../МетаданныеХранилищаНастроек/Picture.png | Bin 0 -> 1750 bytes .../МетаданныеХранилищаНастроек.mdo | 8 + .../МетаданныеЭлементыСтиля/Picture.png | Bin 0 -> 1372 bytes .../МетаданныеЭлементыСтиля.mdo | 8 + .../МетаданныеЯзыки/Picture.png | Bin 0 -> 1579 bytes .../МетаданныеЯзыки/МетаданныеЯзыки.mdo | 8 + .../НаследованиеВключено/Picture.svg | 4 + .../НаследованиеВключено.mdo | 8 + .../НаследованиеВключеноСПапкой/Picture.svg | 8 + .../НаследованиеВключеноСПапкой.mdo | 8 + .../НаследованиеОтключено/Picture.svg | 3 + .../НаследованиеОтключено.mdo | 8 + .../НаследованиеОтключеноСПапкой/Picture.svg | 7 + .../НаследованиеОтключеноСПапкой.mdo | 8 + .../ОтменитьДействие/Picture.svg | 3 + .../ОтменитьДействие/ОтменитьДействие.mdo | 8 + SSL/src/CommonPictures/Папка/Picture.svg | 6 + SSL/src/CommonPictures/Папка/Picture.zip | Bin 5513 -> 0 bytes .../CommonPictures/ПереводТекста/Picture.png | Bin 0 -> 339 bytes .../ПереводТекста/ПереводТекста.mdo | 8 + .../ПечатьОрганизации/Picture.png | Bin 0 -> 86064 bytes .../ПечатьОрганизации/ПечатьОрганизации.mdo | 8 + .../ПовторитьДействие/Picture.svg | 3 + .../ПовторитьДействие/ПовторитьДействие.mdo | 8 + .../ПовторятьВКонцеСтраницы/Picture.svg | 24 + .../ПовторятьВКонцеСтраницы.mdo | 8 + .../ПовторятьВНачалеСтраницы/Picture.svg | 24 + .../ПовторятьВНачалеСтраницы.mdo | 8 + SSL/src/CommonPictures/Подпись/Picture.png | Bin 0 -> 53105 bytes SSL/src/CommonPictures/Подпись/Подпись.mdo | 8 + SSL/src/CommonPictures/Просмотр/Picture.zip | Bin 13470 -> 0 bytes .../CommonPictures/Редактирование/Picture.zip | Bin 11723 -> 0 bytes .../СертификатВЛичномХранилище/Picture.zip | Bin 0 -> 12166 bytes .../СертификатВЛичномХранилище.mdo | 8 + .../СертификатПросрочен/Picture.zip | Bin 0 -> 14235 bytes .../СертификатПросрочен.mdo | 8 + .../СинхронизацияДанныхНедоступна.mdo | 4 + SSL/src/CommonPictures/Создание/Picture.zip | Bin 10367 -> 0 bytes .../СостоянияСертификатов/Picture.zip | Bin 0 -> 28040 bytes .../СостоянияСертификатов.mdo | 8 + .../Picture.zip | Bin 0 -> 12779 bytes .../СрокДействияСертификатаЗаканчивается.mdo | 8 + .../Picture.zip | Bin .../УдалитьИнформация.mdo} | 4 +- .../Picture.svg | 11 + ...овеньДоступаАдминистрированиеИсточника.mdo | 8 + .../УровеньДоступаЕстьПраво/Picture.svg | 3 + .../УровеньДоступаЕстьПраво.mdo | 8 + .../УровеньДоступаИспользование/Picture.svg | 3 + .../УровеньДоступаИспользование.mdo | 8 + .../Picture.svg | 12 + ...пользованиеИАдминистрированиеИсточника.mdo | 8 + .../Picture.svg | 4 + .../УровеньДоступаИспользованиеИсточника.mdo | 8 + .../УровеньДоступаПолучение/Picture.svg | 5 + .../УровеньДоступаПолучение.mdo | 8 + .../Picture.svg | 7 + .../УровеньДоступаПолучениеИУстановка.mdo | 8 + .../УровеньДоступаПросмотр/Picture.svg | 4 + .../УровеньДоступаПросмотр.mdo} | 4 +- .../УровеньДоступаРедактирование/Picture.svg | 4 + .../УровеньДоступаРедактирование.mdo} | 4 +- .../УровеньДоступаСоздание/Picture.svg | 4 + .../УровеньДоступаСоздание.mdo} | 4 +- .../УровеньДоступаУстановка/Picture.svg | 5 + .../УровеньДоступаУстановка.mdo | 8 + .../ШтампЭлектроннойПодписи/Picture.svg | 4 + .../ШтампЭлектроннойПодписи.mdo | 8 + .../ДанныеПечатиОбщиеРеквизиты/Template.dcs | 153 + .../ДанныеПечатиОбщиеРеквизиты.mdo | 9 + .../ДанныеПечатиРегистрСимволов/Template.dcs | 70 + .../ДанныеПечатиРегистрСимволов.mdo | 9 + SSL/src/Configuration/Configuration.mdo | 147 +- .../Configuration/ParentConfigurations.bin | 2 +- .../ManagerModule.bsl | 0 .../ValueManagerModule.bsl | 0 ...ныеДляИзмененияМультиязычныхРеквизитов.mdo | 20 + .../ValueManagerModule.bsl | 2 + .../ManagerModule.bsl | 33 + .../ValueManagerModule.bsl | 27 + ...ИспользоватьГруппыВнешнихПользователей.mdo | 19 + .../ValueManagerModule.bsl | 27 + ...ЗаписьСозданияАвтономногоРабочегоМеста.mdo | 19 + .../ValueManagerModule.bsl | 9 +- .../Forms/Форма/Form.form | 58 + .../Forms/Форма/Module.bsl | 34 +- .../Help/ru.html | 7 +- .../ObjectModule.bsl | 33 +- .../Forms/РедактированиеФормулы/Form.form | 7 + .../Forms/ОтборЖурналаРегистрации/Module.bsl | 9 +- .../ЖурналРегистрации/Help/ru.html | 2 +- .../Forms/ЗагрузкаДанныхИзФайла/Module.bsl | 8 +- .../ManagerModule.bsl | 2 +- .../ObjectModule.bsl | 8 +- .../ManagerModule.bsl | 2 +- .../Forms/Форма/Module.bsl | 4 +- .../Forms/Информация/Form.form | 994 ++ .../Forms/Информация/Module.bsl | 97 + .../Forms/ТехническаяИнформация/Form.form | 22 +- .../Forms/ТехническаяИнформация/Module.bsl | 2 +- .../Forms/Форма/Form.form | 2272 +++- .../Forms/Форма/Module.bsl | 2436 ++-- .../ManagerModule.bsl | 842 +- .../ИнформацияЗаявления/Template.mxlx | 1921 +++ .../Templates/Сертификат/Template.mxlx | 1161 ++ ...ускНовогоКвалифицированногоСертификата.mdo | 23 + .../КонвертацияОбъектовXDTO/ObjectModule.bsl | 6 + .../ObjectModule.bsl | 41 +- .../ObjectModule.bsl | 5 +- .../Forms/РедактированиеФормулы/Form.form | 17 + .../Forms/РедактированиеФормулы/Module.bsl | 31 +- .../ManagerModule.bsl | 10 +- .../ConditionalAppearance.dcssca | 23 - .../Forms/ФормаОбработчика/Form.form | 232 +- .../Forms/ФормаОбработчика/Help/ru.html | 2 +- .../Forms/ФормаОбработчика/Module.bsl | 187 +- .../Forms/ФормаСпискаОбработчиков/Form.form | 49 + .../ФормаСпискаОбработчиков/Help/ru.html | 93 +- .../Forms/ФормаСпискаОбработчиков/Module.bsl | 36 +- .../ObjectModule.bsl | 253 +- .../Templates/cut_tags/Template.txt | 10 +- .../ОписаниеОбработчиковОбновления.mdo | 63 + .../Forms/Форма/Form.form | 204 +- .../Forms/Форма/Module.bsl | 6 + .../ИнтернетПоддержкаИСервисы/Help/ru.html | 2 +- .../ИнтернетПоддержкаИСервисы/Module.bsl | 2 +- .../Forms/Обслуживание/Help/ru.html | 2 +- .../Forms/Обслуживание/Module.bsl | 8 +- .../ПечатныеФормыОтчетыИОбработки/Module.bsl | 4 - .../ПереносФайлов/Forms/Форма/Module.bsl | 4 - .../Module.bsl | 5 - .../Forms/СозданиеБотаВКонтакте/Module.bsl | 14 +- .../Forms/СозданиеБотаТелеграм/Module.bsl | 12 +- .../Forms/ПоискДублей/Form.form | 4 +- .../Forms/ПоискДублей/Module.bsl | 3 +- .../Forms/ВыборОбластиПоиска/Module.bsl | 4 +- .../Forms/Форма/Form.form | 2 +- .../Help/ru.html | 2 +- .../Forms/НастройкаНаСторонеСервиса/Form.form | 2 +- .../НастройкаНаСторонеСервиса/Module.bsl | 39 + .../ObjectModule.bsl | 165 +- .../Forms/ИзменениеПрефиксаУзлаИБ/Form.form | 1689 +++ .../Forms/ИзменениеПрефиксаУзлаИБ/Module.bsl | 522 + .../Forms/НастройкаПодключения/Form.form | 7 +- .../Forms/НастройкаСинхронизации/Form.form | 2 +- .../УдалениеНастройкиСинхронизации/Module.bsl | 3 + .../ПомощникСозданияОбменаДанными.mdo | 9 + .../Forms/ПрисоединенныеФайлы/Form.form | 72 +- .../Forms/ПрисоединенныйФайл/Form.form | 14 +- .../Forms/ПрисоединенныйФайл/Module.bsl | 29 +- .../Forms/ВводАдреса/Module.bsl | 4 +- .../ManagerModule.bsl | 6 +- .../Forms/ВыборОбъектовОтбором/Module.bsl | 26 +- .../Forms/Форма/Module.bsl | 14 +- .../ObjectModule.bsl | 52 +- .../РезервноеКопированиеДанных/Form.form | 2 +- .../Form.form | 0 .../Help/ru.html | 0 .../Module.bsl | 1 - .../Forms/ОтложенныеОбработчики/Form.form | 321 +- .../Forms/ОтложенныеОбработчики/Help/ru.html | 2 +- .../Forms/ОтложенныеОбработчики/Module.bsl | 86 +- .../Form.form | 1288 +- .../Help/ru.html | 0 .../Module.bsl | 323 +- .../Form.form | 0 .../Module.bsl | 0 .../Help/ru.html | 4 +- .../РезультатыОбновленияПрограммы.mdo | 14 +- .../Forms/ОсновнаяФорма/Form.form | 2 +- .../Forms/РезультатСканирования/Form.form | 2 +- .../Forms/Форма/Form.form | 2 +- .../Forms/ОсновнаяФорма/Form.form | 3 +- .../ManagerModule.bsl | 43 +- .../ПодтверждениеПользователя/Module.bsl | 1 - .../РасширенныеНастройкиСервера/Module.bsl | 4 +- .../Forms/СписокСертификатов/Module.bsl | 5 +- .../Forms/ФормаУчетнойЗаписи/Module.bsl | 6 +- .../ФормаЭкземпляраСервераDSS/Module.bsl | 4 +- .../ManagerModule.bsl | 67 +- .../УстановкаОбновлений/Forms/Форма/Form.form | 4 +- .../Forms/Форма/Module.bsl | 55 +- .../УстановкаОбновлений/Help/ru.html | 2 +- .../СкриптУдаленияПатчей/Template.txt | 16 +- .../МестоХраненияФункциональныхОпций.mdo | 1 + .../ПредметНапоминания/ПредметНапоминания.mdo | 1 + .../ПредметНапоминанияОбъект.mdo | 1 + .../Forms/ФормаСписка/Module.bsl | 183 +- SSL/src/Documents/Анкета/ManagerModule.bsl | 9 +- .../Forms/ФормаДокумента/Form.form | 2 +- .../ManagerModule.bsl | 14 +- .../Forms/ФормаДокумента/Module.bsl | 36 +- .../ManagerModule.bsl | 18 +- .../ИсточникиПравилДляОбменаДанными.mdo | 14 + .../СостоянияЗаявленияНаВыпускСертификата.mdo | 7 + .../ТипыПроблемОбменаДанными.mdo | 7 + ...КонтрольНеразделенныхОбъектовПриЗаписи.mdo | 2 + .../ManagerModule.bsl | 12 +- .../ОбновлениеИнформационнойБазы.mdo | 49 + ...ИспользоватьГруппыВнешнихПользователей.mdo | 11 + .../ИспользоватьГруппыПользователей.mdo | 1 - .../ИспользоватьДополнительныйЯзык1.mdo | 7 + .../ИспользоватьДополнительныйЯзык2.mdo | 7 + ...ЗаписьСозданияАвтономногоРабочегоМеста.mdo | 10 + .../ВерсииОбъектов/ManagerModule.bsl | 18 +- .../Forms/ФормаСписка/Form.form | 49 + .../Forms/ФормаСписка/Module.bsl | 6 + .../ДвоичныеДанныеФайлов/ManagerModule.bsl | 31 +- .../Forms/ФормаЗаписи/Form.form | 437 + .../Forms/ФормаЗаписи/Module.bsl | 18 + .../Список/ExtInfo/ListSettings.dcss | 17 + .../Forms/ФормаСписка/Form.form | 594 + .../Forms/ФормаСписка/Module.bsl | 18 + .../ManagerModule.bsl | 0 .../ЗаявленияНаВыпускСертификата.mdo | 270 + .../КалендарныеГрафики/ManagerModule.bsl | 2 +- .../КурсыВалют/RecordSetModule.bsl | 53 +- .../ManagerModule.bsl | 2 +- .../RecordSetModule.bsl | 28 +- .../НаличиеФайлов/ManagerModule.bsl | 20 +- .../ManagerModule.bsl | 20 +- .../Forms/ФормаСписка/Module.bsl | 2 +- .../Forms/ФормаСписка/Form.form | 59 +- .../ПерезапускОтложенногоОбновления/Form.form | 449 + .../Module.bsl | 93 + .../Forms/ФормаВыбора/Form.form | 660 + .../Forms/ФормаВыбора/Module.bsl | 147 + .../Forms/ФормаЗаписи/Form.form | 1479 +++ .../Forms/ФормаЗаписи/Module.bsl | 40 + .../Список/ExtInfo/ListSettings.dcss | 17 + .../Forms/ФормаСписка/Form.form | 651 + .../Forms/ФормаСписка/Module.bsl | 43 + .../ОбработчикиОбновления.mdo | 38 + .../ManagerModule.bsl | 47 + .../RecordSetModule.bsl | 66 + .../ОповещенияПользователейСертификатов.mdo | 117 + .../ПакетыДляОтправки/ManagerModule.bsl | 14 +- .../ManagerModule.bsl | 10 +- .../Forms/МакетыПечатныхФорм/Form.form | 1485 ++- .../Forms/МакетыПечатныхФорм/Module.bsl | 831 +- .../ManagerModule.bsl | 42 + .../ПользовательскиеМакетыПечати.mdo | 17 + .../ПраваРолей/ManagerModule.bsl | 34 +- .../Form.form | 2 +- .../Module.bsl | 2 +- .../ПравилаКонвертацииОбъектов/Form.form | 79 +- .../ПравилаКонвертацииОбъектов/Module.bsl | 80 +- .../ПравилаРегистрацииОбъектов/Form.form | 299 +- .../ПравилаРегистрацииОбъектов/Module.bsl | 204 +- .../Forms/ФормаСписка/Form.form | 613 +- .../ПравилаДляОбменаДанными.mdo | 18 + .../ПрогрессОбновления/RecordSetModule.bsl | 0 .../ПрогрессОбновления/ПрогрессОбновления.mdo | 124 + .../Form.form | 4 +- .../ManagerModule.bsl | 20 +- .../ОтборПредупрежденийПоТипам/Form.form | 53 +- .../ОтборПредупрежденийПоТипам/Module.bsl | 3 + .../Form.form | 536 + .../Module.bsl | 134 + .../ПредупрежденияСинхронизаций/Form.form | 3 +- .../ПредупрежденияСинхронизаций/Module.bsl | 7 +- .../Form.form | 32 +- .../Module.bsl | 1 + .../РезультатыОбменаДанными/ManagerModule.bsl | 44 +- .../РезультатыОбменаДанными.mdo | 67 +- .../РезультатыПроверкиУчета/ManagerModule.bsl | 19 +- .../СведенияОФайлах/ManagerModule.bsl | 8 +- .../Form.form | 2 + .../Module.bsl | 19 +- .../СтатистикаКонфигурации/ManagerModule.bsl | 13 +- .../ЭлектронныеПодписи/ManagerModule.bsl | 10 +- .../Template.mxlx | 12 + .../АнализПравДоступа/ManagerModule.bsl | 391 +- .../АнализПравДоступа/ObjectModule.bsl | 1190 +- .../Templates/Макет/Template.dcs | 2855 ++++- .../Template.dcs | 18 + .../ОценкаПроизводительности/ObjectModule.bsl | 29 +- .../ПраваДоступа/Forms/ФормаОтчета/Module.bsl | 181 +- SSL/src/Reports/ПраваРолей/ManagerModule.bsl | 88 + SSL/src/Reports/ПраваРолей/ObjectModule.bsl | 3199 +++++ .../ПраваРолей/Templates/Макет/Template.dcs | 10255 ++++++++++++++++ SSL/src/Reports/ПраваРолей/ПраваРолей.mdo | 24 + .../Forms/ЗависимостьОбработчика/Form.form | 760 ++ .../Forms/ЗависимостьОбработчика/Module.bsl | 194 + .../Список/ExtInfo/ListSettings.dcss | 17 + .../Forms/ЗарегистрированныеДанные/Form.form | 442 + .../Forms/ЗарегистрированныеДанные/Module.bsl | 131 + .../ManagerModule.bsl | 2 + .../ObjectModule.bsl | 266 +- .../Template.dcs | 1328 +- .../ПрогрессОтложенногоОбновления.mdo | 18 + .../Template.dcs | 2 +- .../УниверсальныйОтчет/ManagerModule.bsl | 29 +- .../УниверсальныйОтчет/ObjectModule.bsl | 2 +- .../Roles/АдминистраторСистемы/Rights.rights | 240 +- SSL/src/Roles/БазовыеПраваБСП/Rights.rights | 154 + .../Rights.rights | 64 + .../Roles/ВызовОнлайнПоддержки/Rights.rights | 27 + .../Rights.rights | 27 + .../Rights.rights | 27 + .../ДобавлениеИзменениеБанков/Rights.rights | 27 + .../Rights.rights | 27 + .../Rights.rights | 27 + .../Rights.rights | 27 + .../Rights.rights | 27 + .../Rights.rights | 27 + .../Rights.rights | 27 + .../Rights.rights | 27 + .../Rights.rights | 27 + .../ДобавлениеИзменениеЗаданий/Rights.rights | 27 + .../ДобавлениеИзменениеЗаметок/Rights.rights | 27 + .../Rights.rights | 27 + .../Rights.rights | 27 + .../Rights.rights | 27 + .../Rights.rights | 27 + .../Rights.rights | 27 + .../ДобавлениеИзменениеОпросов/Rights.rights | 27 + .../Rights.rights | 27 + .../Rights.rights | 27 + .../Rights.rights | 27 + .../Rights.rights | 27 + .../Rights.rights | 74 +- ...еПрограммЭлектроннойПодписиИШифрования.mdo | 8 + .../Rights.rights | 62 +- .../Rights.rights | 27 + .../Rights.rights | 27 + .../Rights.rights | 91 + ...товКлючейЭлектроннойПодписиИШифрования.mdo | 8 + .../Rights.rights | 27 + .../Rights.rights | 27 + .../Rights.rights | 27 + .../Rights.rights | 27 + .../Rights.rights | 27 + .../Rights.rights | 40 + ...обавлениеИзменениеЭлектронныхПодписей.mdo} | 6 +- .../ИзменениеВыполнениеЗадач/Rights.rights | 27 + .../Rights.rights | 27 + .../Rights.rights | 66 + .../Rights.rights | 27 + .../Rights.rights | 27 + .../Rights.rights | 27 + .../Rights.rights | 27 + .../Rights.rights | 27 + .../Rights.rights | 27 + SSL/src/Roles/ОтправкаSMS/Rights.rights | 27 + SSL/src/Roles/ПолныеПрава/Rights.rights | 171 +- .../ПросмотрЖурналаРегистрации/Rights.rights | 14 +- .../Rights.rights | 27 + .../Rights.rights | 27 + .../ПросмотрСвязанныеДокументы/Rights.rights | 27 + SSL/src/Roles/РасшифровкаДанных/Rights.rights | 33 + .../РасшифровкаДанных/РасшифровкаДанных.mdo | 8 + .../РедактированиеПечатныхФорм/Rights.rights | 27 + .../Rights.rights | 27 + .../Roles/УдаленныйДоступOData/Rights.rights | 79 + .../Rights.rights | 27 + .../Rights.rights | 27 + SSL/src/Roles/УдаленныйКонтроль/Rights.rights | 27 + .../ЧтениеВариантовОтчетов/Rights.rights | 27 + .../Roles/ЧтениеВерсийОбъектов/Rights.rights | 27 + .../ЧтениеВнешнихПользователей/Rights.rights | 27 + .../Roles/ЧтениеГрафиковРаботы/Rights.rights | 27 + .../ЧтениеДанныхОблачнойПодписи/Rights.rights | 27 + .../Rights.rights | 27 + .../Rights.rights | 27 + SSL/src/Roles/ЧтениеЗаданий/Rights.rights | 27 + SSL/src/Roles/ЧтениеЗадач/Rights.rights | 27 + .../Rights.rights | 27 + SSL/src/Roles/ЧтениеКурсовВалют/Rights.rights | 27 + .../ЧтениеОтветовНаВопросыАнкет/Rights.rights | 27 + .../Roles/ЧтениеРассылокОтчетов/Rights.rights | 27 + .../Rights.rights | 27 + .../Rights.rights | 27 + .../Rights.rights | 27 + .../ЧтениеШаблоновСообщений/Rights.rights | 27 + .../Rights.rights | 33 + .../ШифрованиеИРасшифровкаДанных.mdo | 8 + .../Schedule.schedule | 22 + ...еСостоянияЗаявленияНаВыпускСертификата.mdo | 12 + .../Forms/БыстрыеНастройкиОтчета/Form.form | 75 +- .../Forms/БыстрыеНастройкиОтчета/Module.bsl | 4 +- .../Forms/ВыборПоляОтчета/Form.form | 17 + .../Forms/ВыборПоляОтчета/Module.bsl | 21 +- .../КонтекстнаяНастройкаОтчета/Form.form | 12 +- .../КонтекстнаяНастройкаОтчета/Module.bsl | 11 +- .../Forms/СохранениеВариантаОтчета/Module.bsl | 159 +- .../Form.form | 30 +- .../Module.bsl | 79 +- .../ВычисленноеПравоДоступаЦвет.mdo | 13 + .../ЗапрещенноеПравоДоступаЦвет.mdo} | 6 +- .../НеназначенноеПравоДоступаЦвет.mdo | 13 + .../РазрешенноеПравоДоступаЦвет.mdo | 13 + .../Администрирование/CommandInterface.cmi | 5 + .../Администрирование/Администрирование.mdo | 1 + .../БазоваяФункциональность.mdo | 257 +- .../ВариантыОтчетов/ВариантыОтчетов.mdo | 7 +- .../КонструкторФормул/КонструкторФормул.mdo | 14 + .../БазоваяФункциональность.mdo | 1 + .../Subsystems/Печать/Печать.mdo | 2 + .../Subsystems/ОбменДанными/ОбменДанными.mdo | 5 +- .../ОбновлениеВерсииИБ/ОбновлениеВерсииИБ.mdo | 1 + .../Subsystems/Печать/Печать.mdo | 8 + .../Subsystems/Пользователи/Пользователи.mdo | 2 + .../ОбменДаннымиВМоделиСервиса.mdo | 54 +- .../УправлениеДоступом/УправлениеДоступом.mdo | 24 +- .../ЭлектроннаяПодпись/ЭлектроннаяПодпись.mdo | 13 +- .../СтандартныеПодсистемы.mdo | 1 + .../WebServices/InterfaceVersion/Module.bsl | 5 +- 846 files changed, 79734 insertions(+), 11468 deletions(-) create mode 100644 SSL/src/Catalogs/ВидыКонтактнойИнформации/Forms/ФормаВыбора/Attributes/Список/ExtInfo/ListSettings.dcss create mode 100644 SSL/src/Catalogs/ВидыКонтактнойИнформации/Forms/ФормаВыбора/Form.form create mode 100644 SSL/src/Catalogs/ВидыКонтактнойИнформации/Forms/ФормаВыбора/Module.bsl create mode 100644 SSL/src/Catalogs/МакетыПечатныхФорм/Forms/УсловияВидимостиВПодменюПечать/Form.form create mode 100644 SSL/src/Catalogs/МакетыПечатныхФорм/Forms/УсловияВидимостиВПодменюПечать/Module.bsl create mode 100644 SSL/src/Catalogs/МакетыПечатныхФорм/ManagerModule.bsl rename SSL/src/{Constants/НастройкиПодчиненногоУзлаРИБ/ValueManagerModule.bsl => Catalogs/МакетыПечатныхФорм/ObjectModule.bsl} (100%) create mode 100644 SSL/src/Catalogs/МакетыПечатныхФорм/МакетыПечатныхФорм.mdo create mode 100644 SSL/src/CommonModules/ОбновлениеИнформационнойБазыБСД/Module.bsl create mode 100644 SSL/src/CommonModules/ОбновлениеИнформационнойБазыБСД/ОбновлениеИнформационнойБазыБСД.mdo create mode 100644 SSL/src/CommonModules/УправлениеПечатьюМультиязычностьПереопределяемый/Module.bsl create mode 100644 SSL/src/CommonModules/УправлениеПечатьюМультиязычностьПереопределяемый/УправлениеПечатьюМультиязычностьПереопределяемый.mdo create mode 100644 SSL/src/CommonPictures/ВертикальноеПоложениеВерх/Picture.svg delete mode 100644 SSL/src/CommonPictures/ВертикальноеПоложениеВерх/Picture.zip create mode 100644 SSL/src/CommonPictures/ВертикальноеПоложениеНиз/Picture.svg delete mode 100644 SSL/src/CommonPictures/ВертикальноеПоложениеНиз/Picture.zip create mode 100644 SSL/src/CommonPictures/ВертикальноеПоложениеЦентр/Picture.svg delete mode 100644 SSL/src/CommonPictures/ВертикальноеПоложениеЦентр/Picture.zip create mode 100644 SSL/src/CommonPictures/ВыравниваниеПоЛевомуКраю/Picture.svg delete mode 100644 SSL/src/CommonPictures/ВыравниваниеПоЛевомуКраю/Picture.zip create mode 100644 SSL/src/CommonPictures/ВыравниваниеПоПравомуКраю/Picture.svg delete mode 100644 SSL/src/CommonPictures/ВыравниваниеПоПравомуКраю/Picture.zip create mode 100644 SSL/src/CommonPictures/ВыравниваниеПоЦентру/Picture.svg delete mode 100644 SSL/src/CommonPictures/ВыравниваниеПоЦентру/Picture.zip create mode 100644 SSL/src/CommonPictures/МестоДляКартинки/Picture.png create mode 100644 SSL/src/CommonPictures/МестоДляКартинки/МестоДляКартинки.mdo create mode 100644 SSL/src/CommonPictures/МетаданныеHTTPСервисы/Picture.png create mode 100644 SSL/src/CommonPictures/МетаданныеHTTPСервисы/МетаданныеHTTPСервисы.mdo create mode 100644 SSL/src/CommonPictures/МетаданныеHTTPСервисыШаблоныURL/Picture.png create mode 100644 SSL/src/CommonPictures/МетаданныеHTTPСервисыШаблоныURL/МетаданныеHTTPСервисыШаблоныURL.mdo create mode 100644 SSL/src/CommonPictures/МетаданныеHTTPСервисыШаблоныURLМетоды/Picture.png create mode 100644 SSL/src/CommonPictures/МетаданныеHTTPСервисыШаблоныURLМетоды/МетаданныеHTTPСервисыШаблоныURLМетоды.mdo create mode 100644 SSL/src/CommonPictures/МетаданныеWSСсылки/Picture.png create mode 100644 SSL/src/CommonPictures/МетаданныеWSСсылки/МетаданныеWSСсылки.mdo create mode 100644 SSL/src/CommonPictures/МетаданныеWebСервисы/Picture.png create mode 100644 SSL/src/CommonPictures/МетаданныеWebСервисы/МетаданныеWebСервисы.mdo create mode 100644 SSL/src/CommonPictures/МетаданныеWebСервисыОперации/Picture.png create mode 100644 SSL/src/CommonPictures/МетаданныеWebСервисыОперации/МетаданныеWebСервисыОперации.mdo create mode 100644 SSL/src/CommonPictures/МетаданныеWebСервисыОперацииПараметры/Picture.png create mode 100644 SSL/src/CommonPictures/МетаданныеWebСервисыОперацииПараметры/МетаданныеWebСервисыОперацииПараметры.mdo create mode 100644 SSL/src/CommonPictures/МетаданныеБизнесПроцессы/Picture.png create mode 100644 SSL/src/CommonPictures/МетаданныеБизнесПроцессы/МетаданныеБизнесПроцессы.mdo create mode 100644 SSL/src/CommonPictures/МетаданныеБоты/Picture.png create mode 100644 SSL/src/CommonPictures/МетаданныеБоты/МетаданныеБоты.mdo create mode 100644 SSL/src/CommonPictures/МетаданныеВнешниеИсточникиДанных/Picture.png create mode 100644 SSL/src/CommonPictures/МетаданныеВнешниеИсточникиДанных/МетаданныеВнешниеИсточникиДанных.mdo create mode 100644 SSL/src/CommonPictures/МетаданныеВнешниеИсточникиКубы/Picture.png create mode 100644 SSL/src/CommonPictures/МетаданныеВнешниеИсточникиКубы/МетаданныеВнешниеИсточникиКубы.mdo create mode 100644 SSL/src/CommonPictures/МетаданныеВнешниеИсточникиТаблицы/Picture.png create mode 100644 SSL/src/CommonPictures/МетаданныеВнешниеИсточникиТаблицы/МетаданныеВнешниеИсточникиТаблицы.mdo create mode 100644 SSL/src/CommonPictures/МетаданныеВнешниеИсточникиТаблицыИзмерений/Picture.png create mode 100644 SSL/src/CommonPictures/МетаданныеВнешниеИсточникиТаблицыИзмерений/МетаданныеВнешниеИсточникиТаблицыИзмерений.mdo create mode 100644 SSL/src/CommonPictures/МетаданныеВнешниеИсточникиФункции/Picture.png create mode 100644 SSL/src/CommonPictures/МетаданныеВнешниеИсточникиФункции/МетаданныеВнешниеИсточникиФункции.mdo create mode 100644 SSL/src/CommonPictures/МетаданныеГрафы/Picture.png create mode 100644 SSL/src/CommonPictures/МетаданныеГрафы/МетаданныеГрафы.mdo create mode 100644 SSL/src/CommonPictures/МетаданныеГруппыКоманд/Picture.png create mode 100644 SSL/src/CommonPictures/МетаданныеГруппыКоманд/МетаданныеГруппыКоманд.mdo create mode 100644 SSL/src/CommonPictures/МетаданныеДокументы/Picture.png create mode 100644 SSL/src/CommonPictures/МетаданныеДокументы/МетаданныеДокументы.mdo create mode 100644 SSL/src/CommonPictures/МетаданныеЖурналыДокументов/Picture.png create mode 100644 SSL/src/CommonPictures/МетаданныеЖурналыДокументов/МетаданныеЖурналыДокументов.mdo create mode 100644 SSL/src/CommonPictures/МетаданныеЗадачи/Picture.png create mode 100644 SSL/src/CommonPictures/МетаданныеЗадачи/МетаданныеЗадачи.mdo create mode 100644 SSL/src/CommonPictures/МетаданныеЗначениеПеречисления/Picture.png create mode 100644 SSL/src/CommonPictures/МетаданныеЗначениеПеречисления/МетаданныеЗначениеПеречисления.mdo create mode 100644 SSL/src/CommonPictures/МетаданныеИзмерения/Picture.png create mode 100644 SSL/src/CommonPictures/МетаданныеИзмерения/МетаданныеИзмерения.mdo create mode 100644 SSL/src/CommonPictures/МетаданныеКоманды/Picture.png create mode 100644 SSL/src/CommonPictures/МетаданныеКоманды/МетаданныеКоманды.mdo create mode 100644 SSL/src/CommonPictures/МетаданныеКонстанты/Picture.png create mode 100644 SSL/src/CommonPictures/МетаданныеКонстанты/МетаданныеКонстанты.mdo create mode 100644 SSL/src/CommonPictures/МетаданныеКонфигурация/Picture.png create mode 100644 SSL/src/CommonPictures/МетаданныеКонфигурация/МетаданныеКонфигурация.mdo create mode 100644 SSL/src/CommonPictures/МетаданныеКритерииОтбора/Picture.png create mode 100644 SSL/src/CommonPictures/МетаданныеКритерииОтбора/МетаданныеКритерииОтбора.mdo create mode 100644 SSL/src/CommonPictures/МетаданныеМакеты/Picture.png create mode 100644 SSL/src/CommonPictures/МетаданныеМакеты/МетаданныеМакеты.mdo create mode 100644 SSL/src/CommonPictures/МетаданныеОбработки/Picture.png create mode 100644 SSL/src/CommonPictures/МетаданныеОбработки/МетаданныеОбработки.mdo create mode 100644 SSL/src/CommonPictures/МетаданныеОбщие/Picture.png create mode 100644 SSL/src/CommonPictures/МетаданныеОбщие/МетаданныеОбщие.mdo create mode 100644 SSL/src/CommonPictures/МетаданныеОбщиеКартинки/Picture.png create mode 100644 SSL/src/CommonPictures/МетаданныеОбщиеКартинки/МетаданныеОбщиеКартинки.mdo create mode 100644 SSL/src/CommonPictures/МетаданныеОбщиеКоманды/Picture.png create mode 100644 SSL/src/CommonPictures/МетаданныеОбщиеКоманды/МетаданныеОбщиеКоманды.mdo create mode 100644 SSL/src/CommonPictures/МетаданныеОбщиеМакеты/Picture.png create mode 100644 SSL/src/CommonPictures/МетаданныеОбщиеМакеты/МетаданныеОбщиеМакеты.mdo create mode 100644 SSL/src/CommonPictures/МетаданныеОбщиеМодули/Picture.png create mode 100644 SSL/src/CommonPictures/МетаданныеОбщиеМодули/МетаданныеОбщиеМодули.mdo create mode 100644 SSL/src/CommonPictures/МетаданныеОбщиеРеквизиты/Picture.png create mode 100644 SSL/src/CommonPictures/МетаданныеОбщиеРеквизиты/МетаданныеОбщиеРеквизиты.mdo create mode 100644 SSL/src/CommonPictures/МетаданныеОбщиеФормы/Picture.png create mode 100644 SSL/src/CommonPictures/МетаданныеОбщиеФормы/МетаданныеОбщиеФормы.mdo create mode 100644 SSL/src/CommonPictures/МетаданныеОпределяемыеТипы/Picture.png create mode 100644 SSL/src/CommonPictures/МетаданныеОпределяемыеТипы/МетаданныеОпределяемыеТипы.mdo create mode 100644 SSL/src/CommonPictures/МетаданныеОпределяемыйТип/Picture.png create mode 100644 SSL/src/CommonPictures/МетаданныеОпределяемыйТип/МетаданныеОпределяемыйТип.mdo create mode 100644 SSL/src/CommonPictures/МетаданныеОтчеты/Picture.png create mode 100644 SSL/src/CommonPictures/МетаданныеОтчеты/МетаданныеОтчеты.mdo create mode 100644 SSL/src/CommonPictures/МетаданныеПакетыXDTO/Picture.png create mode 100644 SSL/src/CommonPictures/МетаданныеПакетыXDTO/МетаданныеПакетыXDTO.mdo create mode 100644 SSL/src/CommonPictures/МетаданныеПараметрыСеанса/Picture.png create mode 100644 SSL/src/CommonPictures/МетаданныеПараметрыСеанса/МетаданныеПараметрыСеанса.mdo create mode 100644 SSL/src/CommonPictures/МетаданныеПараметрыФункциональныхОпций/Picture.png create mode 100644 SSL/src/CommonPictures/МетаданныеПараметрыФункциональныхОпций/МетаданныеПараметрыФункциональныхОпций.mdo create mode 100644 SSL/src/CommonPictures/МетаданныеПерерасчеты/Picture.png create mode 100644 SSL/src/CommonPictures/МетаданныеПерерасчеты/МетаданныеПерерасчеты.mdo create mode 100644 SSL/src/CommonPictures/МетаданныеПеречисления/Picture.png create mode 100644 SSL/src/CommonPictures/МетаданныеПеречисления/МетаданныеПеречисления.mdo create mode 100644 SSL/src/CommonPictures/МетаданныеПланыВидовРасчета/Picture.png create mode 100644 SSL/src/CommonPictures/МетаданныеПланыВидовРасчета/МетаданныеПланыВидовРасчета.mdo create mode 100644 SSL/src/CommonPictures/МетаданныеПланыВидовХарактеристик/Picture.png create mode 100644 SSL/src/CommonPictures/МетаданныеПланыВидовХарактеристик/МетаданныеПланыВидовХарактеристик.mdo create mode 100644 SSL/src/CommonPictures/МетаданныеПланыОбмена/Picture.png create mode 100644 SSL/src/CommonPictures/МетаданныеПланыОбмена/МетаданныеПланыОбмена.mdo create mode 100644 SSL/src/CommonPictures/МетаданныеПланыСчетов/Picture.png create mode 100644 SSL/src/CommonPictures/МетаданныеПланыСчетов/МетаданныеПланыСчетов.mdo create mode 100644 SSL/src/CommonPictures/МетаданныеПодпискиНаСобытия/Picture.png create mode 100644 SSL/src/CommonPictures/МетаданныеПодпискиНаСобытия/МетаданныеПодпискиНаСобытия.mdo create mode 100644 SSL/src/CommonPictures/МетаданныеПодсистемы/Picture.png create mode 100644 SSL/src/CommonPictures/МетаданныеПодсистемы/МетаданныеПодсистемы.mdo create mode 100644 SSL/src/CommonPictures/МетаданныеПоследовательности/Picture.png create mode 100644 SSL/src/CommonPictures/МетаданныеПоследовательности/МетаданныеПоследовательности.mdo create mode 100644 SSL/src/CommonPictures/МетаданныеПризнакиУчета/Picture.png create mode 100644 SSL/src/CommonPictures/МетаданныеПризнакиУчета/МетаданныеПризнакиУчета.mdo create mode 100644 SSL/src/CommonPictures/МетаданныеПризнакиУчетаСубконто/Picture.png create mode 100644 SSL/src/CommonPictures/МетаданныеПризнакиУчетаСубконто/МетаданныеПризнакиУчетаСубконто.mdo create mode 100644 SSL/src/CommonPictures/МетаданныеРегистрыБухгалтерии/Picture.png create mode 100644 SSL/src/CommonPictures/МетаданныеРегистрыБухгалтерии/МетаданныеРегистрыБухгалтерии.mdo create mode 100644 SSL/src/CommonPictures/МетаданныеРегистрыНакопления/Picture.png create mode 100644 SSL/src/CommonPictures/МетаданныеРегистрыНакопления/МетаданныеРегистрыНакопления.mdo create mode 100644 SSL/src/CommonPictures/МетаданныеРегистрыРасчета/Picture.png create mode 100644 SSL/src/CommonPictures/МетаданныеРегистрыРасчета/МетаданныеРегистрыРасчета.mdo create mode 100644 SSL/src/CommonPictures/МетаданныеРегистрыСведений/Picture.png create mode 100644 SSL/src/CommonPictures/МетаданныеРегистрыСведений/МетаданныеРегистрыСведений.mdo create mode 100644 SSL/src/CommonPictures/МетаданныеРегламентныеЗадания/Picture.png create mode 100644 SSL/src/CommonPictures/МетаданныеРегламентныеЗадания/МетаданныеРегламентныеЗадания.mdo create mode 100644 SSL/src/CommonPictures/МетаданныеРеквизиты/Picture.png create mode 100644 SSL/src/CommonPictures/МетаданныеРеквизиты/МетаданныеРеквизиты.mdo create mode 100644 SSL/src/CommonPictures/МетаданныеРеквизитыАдресации/Picture.png create mode 100644 SSL/src/CommonPictures/МетаданныеРеквизитыАдресации/МетаданныеРеквизитыАдресации.mdo create mode 100644 SSL/src/CommonPictures/МетаданныеРесурсы/Picture.png create mode 100644 SSL/src/CommonPictures/МетаданныеРесурсы/МетаданныеРесурсы.mdo create mode 100644 SSL/src/CommonPictures/МетаданныеРоли/Picture.png create mode 100644 SSL/src/CommonPictures/МетаданныеРоли/МетаданныеРоли.mdo create mode 100644 SSL/src/CommonPictures/МетаданныеСправочники/Picture.png create mode 100644 SSL/src/CommonPictures/МетаданныеСправочники/МетаданныеСправочники.mdo create mode 100644 SSL/src/CommonPictures/МетаданныеСтандартныеРеквизиты/Picture.png create mode 100644 SSL/src/CommonPictures/МетаданныеСтандартныеРеквизиты/МетаданныеСтандартныеРеквизиты.mdo create mode 100644 SSL/src/CommonPictures/МетаданныеСтандартныеТабличныеЧасти/Picture.png create mode 100644 SSL/src/CommonPictures/МетаданныеСтандартныеТабличныеЧасти/МетаданныеСтандартныеТабличныеЧасти.mdo create mode 100644 SSL/src/CommonPictures/МетаданныеСтили/Picture.png create mode 100644 SSL/src/CommonPictures/МетаданныеСтили/МетаданныеСтили.mdo create mode 100644 SSL/src/CommonPictures/МетаданныеТабличныеЧасти/Picture.png create mode 100644 SSL/src/CommonPictures/МетаданныеТабличныеЧасти/МетаданныеТабличныеЧасти.mdo create mode 100644 SSL/src/CommonPictures/МетаданныеФормы/Picture.png create mode 100644 SSL/src/CommonPictures/МетаданныеФормы/МетаданныеФормы.mdo create mode 100644 SSL/src/CommonPictures/МетаданныеФункциональныеОпции/Picture.png create mode 100644 SSL/src/CommonPictures/МетаданныеФункциональныеОпции/МетаданныеФункциональныеОпции.mdo create mode 100644 SSL/src/CommonPictures/МетаданныеХранилищаНастроек/Picture.png create mode 100644 SSL/src/CommonPictures/МетаданныеХранилищаНастроек/МетаданныеХранилищаНастроек.mdo create mode 100644 SSL/src/CommonPictures/МетаданныеЭлементыСтиля/Picture.png create mode 100644 SSL/src/CommonPictures/МетаданныеЭлементыСтиля/МетаданныеЭлементыСтиля.mdo create mode 100644 SSL/src/CommonPictures/МетаданныеЯзыки/Picture.png create mode 100644 SSL/src/CommonPictures/МетаданныеЯзыки/МетаданныеЯзыки.mdo create mode 100644 SSL/src/CommonPictures/НаследованиеВключено/Picture.svg create mode 100644 SSL/src/CommonPictures/НаследованиеВключено/НаследованиеВключено.mdo create mode 100644 SSL/src/CommonPictures/НаследованиеВключеноСПапкой/Picture.svg create mode 100644 SSL/src/CommonPictures/НаследованиеВключеноСПапкой/НаследованиеВключеноСПапкой.mdo create mode 100644 SSL/src/CommonPictures/НаследованиеОтключено/Picture.svg create mode 100644 SSL/src/CommonPictures/НаследованиеОтключено/НаследованиеОтключено.mdo create mode 100644 SSL/src/CommonPictures/НаследованиеОтключеноСПапкой/Picture.svg create mode 100644 SSL/src/CommonPictures/НаследованиеОтключеноСПапкой/НаследованиеОтключеноСПапкой.mdo create mode 100644 SSL/src/CommonPictures/ОтменитьДействие/Picture.svg create mode 100644 SSL/src/CommonPictures/ОтменитьДействие/ОтменитьДействие.mdo create mode 100644 SSL/src/CommonPictures/Папка/Picture.svg delete mode 100644 SSL/src/CommonPictures/Папка/Picture.zip create mode 100644 SSL/src/CommonPictures/ПереводТекста/Picture.png create mode 100644 SSL/src/CommonPictures/ПереводТекста/ПереводТекста.mdo create mode 100644 SSL/src/CommonPictures/ПечатьОрганизации/Picture.png create mode 100644 SSL/src/CommonPictures/ПечатьОрганизации/ПечатьОрганизации.mdo create mode 100644 SSL/src/CommonPictures/ПовторитьДействие/Picture.svg create mode 100644 SSL/src/CommonPictures/ПовторитьДействие/ПовторитьДействие.mdo create mode 100644 SSL/src/CommonPictures/ПовторятьВКонцеСтраницы/Picture.svg create mode 100644 SSL/src/CommonPictures/ПовторятьВКонцеСтраницы/ПовторятьВКонцеСтраницы.mdo create mode 100644 SSL/src/CommonPictures/ПовторятьВНачалеСтраницы/Picture.svg create mode 100644 SSL/src/CommonPictures/ПовторятьВНачалеСтраницы/ПовторятьВНачалеСтраницы.mdo create mode 100644 SSL/src/CommonPictures/Подпись/Picture.png create mode 100644 SSL/src/CommonPictures/Подпись/Подпись.mdo delete mode 100644 SSL/src/CommonPictures/Просмотр/Picture.zip delete mode 100644 SSL/src/CommonPictures/Редактирование/Picture.zip create mode 100644 SSL/src/CommonPictures/СертификатВЛичномХранилище/Picture.zip create mode 100644 SSL/src/CommonPictures/СертификатВЛичномХранилище/СертификатВЛичномХранилище.mdo create mode 100644 SSL/src/CommonPictures/СертификатПросрочен/Picture.zip create mode 100644 SSL/src/CommonPictures/СертификатПросрочен/СертификатПросрочен.mdo delete mode 100644 SSL/src/CommonPictures/Создание/Picture.zip create mode 100644 SSL/src/CommonPictures/СостоянияСертификатов/Picture.zip create mode 100644 SSL/src/CommonPictures/СостоянияСертификатов/СостоянияСертификатов.mdo create mode 100644 SSL/src/CommonPictures/СрокДействияСертификатаЗаканчивается/Picture.zip create mode 100644 SSL/src/CommonPictures/СрокДействияСертификатаЗаканчивается/СрокДействияСертификатаЗаканчивается.mdo rename SSL/src/CommonPictures/{Информация => УдалитьИнформация}/Picture.zip (100%) rename SSL/src/CommonPictures/{Информация/Информация.mdo => УдалитьИнформация/УдалитьИнформация.mdo} (65%) create mode 100644 SSL/src/CommonPictures/УровеньДоступаАдминистрированиеИсточника/Picture.svg create mode 100644 SSL/src/CommonPictures/УровеньДоступаАдминистрированиеИсточника/УровеньДоступаАдминистрированиеИсточника.mdo create mode 100644 SSL/src/CommonPictures/УровеньДоступаЕстьПраво/Picture.svg create mode 100644 SSL/src/CommonPictures/УровеньДоступаЕстьПраво/УровеньДоступаЕстьПраво.mdo create mode 100644 SSL/src/CommonPictures/УровеньДоступаИспользование/Picture.svg create mode 100644 SSL/src/CommonPictures/УровеньДоступаИспользование/УровеньДоступаИспользование.mdo create mode 100644 SSL/src/CommonPictures/УровеньДоступаИспользованиеИАдминистрированиеИсточника/Picture.svg create mode 100644 SSL/src/CommonPictures/УровеньДоступаИспользованиеИАдминистрированиеИсточника/УровеньДоступаИспользованиеИАдминистрированиеИсточника.mdo create mode 100644 SSL/src/CommonPictures/УровеньДоступаИспользованиеИсточника/Picture.svg create mode 100644 SSL/src/CommonPictures/УровеньДоступаИспользованиеИсточника/УровеньДоступаИспользованиеИсточника.mdo create mode 100644 SSL/src/CommonPictures/УровеньДоступаПолучение/Picture.svg create mode 100644 SSL/src/CommonPictures/УровеньДоступаПолучение/УровеньДоступаПолучение.mdo create mode 100644 SSL/src/CommonPictures/УровеньДоступаПолучениеИУстановка/Picture.svg create mode 100644 SSL/src/CommonPictures/УровеньДоступаПолучениеИУстановка/УровеньДоступаПолучениеИУстановка.mdo create mode 100644 SSL/src/CommonPictures/УровеньДоступаПросмотр/Picture.svg rename SSL/src/CommonPictures/{Просмотр/Просмотр.mdo => УровеньДоступаПросмотр/УровеньДоступаПросмотр.mdo} (64%) create mode 100644 SSL/src/CommonPictures/УровеньДоступаРедактирование/Picture.svg rename SSL/src/CommonPictures/{Редактирование/Редактирование.mdo => УровеньДоступаРедактирование/УровеньДоступаРедактирование.mdo} (60%) create mode 100644 SSL/src/CommonPictures/УровеньДоступаСоздание/Picture.svg rename SSL/src/CommonPictures/{Создание/Создание.mdo => УровеньДоступаСоздание/УровеньДоступаСоздание.mdo} (64%) create mode 100644 SSL/src/CommonPictures/УровеньДоступаУстановка/Picture.svg create mode 100644 SSL/src/CommonPictures/УровеньДоступаУстановка/УровеньДоступаУстановка.mdo create mode 100644 SSL/src/CommonPictures/ШтампЭлектроннойПодписи/Picture.svg create mode 100644 SSL/src/CommonPictures/ШтампЭлектроннойПодписи/ШтампЭлектроннойПодписи.mdo create mode 100644 SSL/src/CommonTemplates/ДанныеПечатиОбщиеРеквизиты/Template.dcs create mode 100644 SSL/src/CommonTemplates/ДанныеПечатиОбщиеРеквизиты/ДанныеПечатиОбщиеРеквизиты.mdo create mode 100644 SSL/src/CommonTemplates/ДанныеПечатиРегистрСимволов/Template.dcs create mode 100644 SSL/src/CommonTemplates/ДанныеПечатиРегистрСимволов/ДанныеПечатиРегистрСимволов.mdo create mode 100644 SSL/src/Constants/ДанныеДляИзмененияМультиязычныхРеквизитов/ManagerModule.bsl create mode 100644 SSL/src/Constants/ДанныеДляИзмененияМультиязычныхРеквизитов/ValueManagerModule.bsl create mode 100644 SSL/src/Constants/ДанныеДляИзмененияМультиязычныхРеквизитов/ДанныеДляИзмененияМультиязычныхРеквизитов.mdo create mode 100644 SSL/src/Constants/ИспользоватьГруппыВнешнихПользователей/ManagerModule.bsl create mode 100644 SSL/src/Constants/ИспользоватьГруппыВнешнихПользователей/ValueManagerModule.bsl create mode 100644 SSL/src/Constants/ИспользоватьГруппыВнешнихПользователей/ИспользоватьГруппыВнешнихПользователей.mdo create mode 100644 SSL/src/Constants/ИспользоватьГруппыПользователей/ValueManagerModule.bsl create mode 100644 SSL/src/Constants/ИспользоватьОптимизированнуюЗаписьСозданияАвтономногоРабочегоМеста/ИспользоватьОптимизированнуюЗаписьСозданияАвтономногоРабочегоМеста.mdo create mode 100644 SSL/src/DataProcessors/ЗаявлениеНаВыпускНовогоКвалифицированногоСертификата/Forms/Информация/Form.form create mode 100644 SSL/src/DataProcessors/ЗаявлениеНаВыпускНовогоКвалифицированногоСертификата/Forms/Информация/Module.bsl create mode 100644 SSL/src/DataProcessors/ЗаявлениеНаВыпускНовогоКвалифицированногоСертификата/Templates/ИнформацияЗаявления/Template.mxlx create mode 100644 SSL/src/DataProcessors/ЗаявлениеНаВыпускНовогоКвалифицированногоСертификата/Templates/Сертификат/Template.mxlx delete mode 100644 SSL/src/DataProcessors/ОписаниеОбработчиковОбновления/Forms/ФормаОбработчика/ConditionalAppearance.dcssca create mode 100644 SSL/src/DataProcessors/ПомощникСозданияОбменаДанными/Forms/ИзменениеПрефиксаУзлаИБ/Form.form create mode 100644 SSL/src/DataProcessors/ПомощникСозданияОбменаДанными/Forms/ИзменениеПрефиксаУзлаИБ/Module.bsl rename SSL/src/DataProcessors/РезультатыОбновленияПрограммы/Forms/{ИндикацияХодаОбновленияИБ => ОбновлениеВерсииПрограммы}/Form.form (100%) rename SSL/src/DataProcessors/РезультатыОбновленияПрограммы/Forms/{ИндикацияХодаОбновленияИБ => ОбновлениеВерсииПрограммы}/Help/ru.html (100%) rename SSL/src/DataProcessors/РезультатыОбновленияПрограммы/Forms/{ИндикацияХодаОбновленияИБ => ОбновлениеВерсииПрограммы}/Module.bsl (99%) rename SSL/src/DataProcessors/РезультатыОбновленияПрограммы/Forms/{ИндикацияХодаОтложенногоОбновленияИБ => РезультатыОбновленияПрограммы}/Form.form (64%) rename SSL/src/DataProcessors/РезультатыОбновленияПрограммы/Forms/{ИндикацияХодаОтложенногоОбновленияИБ => РезультатыОбновленияПрограммы}/Help/ru.html (100%) rename SSL/src/DataProcessors/РезультатыОбновленияПрограммы/Forms/{ИндикацияХодаОтложенногоОбновленияИБ => РезультатыОбновленияПрограммы}/Module.bsl (65%) rename SSL/src/DataProcessors/РезультатыОбновленияПрограммы/Forms/{ОбновлениеДляНеполноправногоПользователя => СообщениеДляНеполноправногоПользователя}/Form.form (100%) rename SSL/src/DataProcessors/РезультатыОбновленияПрограммы/Forms/{ОбновлениеДляНеполноправногоПользователя => СообщениеДляНеполноправногоПользователя}/Module.bsl (100%) create mode 100644 SSL/src/FunctionalOptions/ИспользоватьГруппыВнешнихПользователей/ИспользоватьГруппыВнешнихПользователей.mdo create mode 100644 SSL/src/FunctionalOptions/ИспользоватьОптимизированнуюЗаписьСозданияАвтономногоРабочегоМеста/ИспользоватьОптимизированнуюЗаписьСозданияАвтономногоРабочегоМеста.mdo create mode 100644 SSL/src/InformationRegisters/ЗаявленияНаВыпускСертификата/Forms/ФормаЗаписи/Form.form create mode 100644 SSL/src/InformationRegisters/ЗаявленияНаВыпускСертификата/Forms/ФормаЗаписи/Module.bsl create mode 100644 SSL/src/InformationRegisters/ЗаявленияНаВыпускСертификата/Forms/ФормаСписка/Attributes/Список/ExtInfo/ListSettings.dcss create mode 100644 SSL/src/InformationRegisters/ЗаявленияНаВыпускСертификата/Forms/ФормаСписка/Form.form create mode 100644 SSL/src/InformationRegisters/ЗаявленияНаВыпускСертификата/Forms/ФормаСписка/Module.bsl create mode 100644 SSL/src/InformationRegisters/ЗаявленияНаВыпускСертификата/ManagerModule.bsl create mode 100644 SSL/src/InformationRegisters/ЗаявленияНаВыпускСертификата/ЗаявленияНаВыпускСертификата.mdo create mode 100644 SSL/src/InformationRegisters/ОбработчикиОбновления/Forms/ПерезапускОтложенногоОбновления/Form.form create mode 100644 SSL/src/InformationRegisters/ОбработчикиОбновления/Forms/ПерезапускОтложенногоОбновления/Module.bsl create mode 100644 SSL/src/InformationRegisters/ОбработчикиОбновления/Forms/ФормаВыбора/Form.form create mode 100644 SSL/src/InformationRegisters/ОбработчикиОбновления/Forms/ФормаВыбора/Module.bsl create mode 100644 SSL/src/InformationRegisters/ОбработчикиОбновления/Forms/ФормаЗаписи/Form.form create mode 100644 SSL/src/InformationRegisters/ОбработчикиОбновления/Forms/ФормаЗаписи/Module.bsl create mode 100644 SSL/src/InformationRegisters/ОбработчикиОбновления/Forms/ФормаСписка/Attributes/Список/ExtInfo/ListSettings.dcss create mode 100644 SSL/src/InformationRegisters/ОбработчикиОбновления/Forms/ФормаСписка/Form.form create mode 100644 SSL/src/InformationRegisters/ОбработчикиОбновления/Forms/ФормаСписка/Module.bsl create mode 100644 SSL/src/InformationRegisters/ОповещенияПользователейСертификатов/ManagerModule.bsl create mode 100644 SSL/src/InformationRegisters/ОповещенияПользователейСертификатов/RecordSetModule.bsl create mode 100644 SSL/src/InformationRegisters/ОповещенияПользователейСертификатов/ОповещенияПользователейСертификатов.mdo create mode 100644 SSL/src/InformationRegisters/ПрогрессОбновления/RecordSetModule.bsl create mode 100644 SSL/src/InformationRegisters/ПрогрессОбновления/ПрогрессОбновления.mdo create mode 100644 SSL/src/InformationRegisters/РезультатыОбменаДанными/Forms/ПредупреждениеАдминистрированияПриложения/Form.form create mode 100644 SSL/src/InformationRegisters/РезультатыОбменаДанными/Forms/ПредупреждениеАдминистрированияПриложения/Module.bsl create mode 100644 SSL/src/Reports/ПраваРолей/ManagerModule.bsl create mode 100644 SSL/src/Reports/ПраваРолей/ObjectModule.bsl create mode 100644 SSL/src/Reports/ПраваРолей/Templates/Макет/Template.dcs create mode 100644 SSL/src/Reports/ПраваРолей/ПраваРолей.mdo create mode 100644 SSL/src/Reports/ПрогрессОтложенногоОбновления/Forms/ЗависимостьОбработчика/Form.form create mode 100644 SSL/src/Reports/ПрогрессОтложенногоОбновления/Forms/ЗависимостьОбработчика/Module.bsl create mode 100644 SSL/src/Reports/ПрогрессОтложенногоОбновления/Forms/ЗарегистрированныеДанные/Attributes/Список/ExtInfo/ListSettings.dcss create mode 100644 SSL/src/Reports/ПрогрессОтложенногоОбновления/Forms/ЗарегистрированныеДанные/Form.form create mode 100644 SSL/src/Reports/ПрогрессОтложенногоОбновления/Forms/ЗарегистрированныеДанные/Module.bsl rename SSL/src/Roles/{ДобавлениеИзменениеЭлектронныхПодписейИШифрование => ДобавлениеИзменениеПрограммЭлектроннойПодписиИШифрования}/Rights.rights (57%) create mode 100644 SSL/src/Roles/ДобавлениеИзменениеПрограммЭлектроннойПодписиИШифрования/ДобавлениеИзменениеПрограммЭлектроннойПодписиИШифрования.mdo create mode 100644 SSL/src/Roles/ДобавлениеИзменениеСертификатовКлючейЭлектроннойПодписиИШифрования/Rights.rights create mode 100644 SSL/src/Roles/ДобавлениеИзменениеСертификатовКлючейЭлектроннойПодписиИШифрования/ДобавлениеИзменениеСертификатовКлючейЭлектроннойПодписиИШифрования.mdo create mode 100644 SSL/src/Roles/ДобавлениеИзменениеЭлектронныхПодписей/Rights.rights rename SSL/src/Roles/{ДобавлениеИзменениеЭлектронныхПодписейИШифрование/ДобавлениеИзменениеЭлектронныхПодписейИШифрование.mdo => ДобавлениеИзменениеЭлектронныхПодписей/ДобавлениеИзменениеЭлектронныхПодписей.mdo} (64%) create mode 100644 SSL/src/Roles/РасшифровкаДанных/Rights.rights create mode 100644 SSL/src/Roles/РасшифровкаДанных/РасшифровкаДанных.mdo create mode 100644 SSL/src/Roles/ШифрованиеИРасшифровкаДанных/Rights.rights create mode 100644 SSL/src/Roles/ШифрованиеИРасшифровкаДанных/ШифрованиеИРасшифровкаДанных.mdo create mode 100644 SSL/src/ScheduledJobs/ОбновлениеСостоянияЗаявленияНаВыпускСертификата/Schedule.schedule create mode 100644 SSL/src/ScheduledJobs/ОбновлениеСостоянияЗаявленияНаВыпускСертификата/ОбновлениеСостоянияЗаявленияНаВыпускСертификата.mdo create mode 100644 SSL/src/StyleItems/ВычисленноеПравоДоступаЦвет/ВычисленноеПравоДоступаЦвет.mdo rename SSL/src/StyleItems/{ЗапрещенноеПравоДоступа/ЗапрещенноеПравоДоступа.mdo => ЗапрещенноеПравоДоступаЦвет/ЗапрещенноеПравоДоступаЦвет.mdo} (70%) create mode 100644 SSL/src/StyleItems/НеназначенноеПравоДоступаЦвет/НеназначенноеПравоДоступаЦвет.mdo create mode 100644 SSL/src/StyleItems/РазрешенноеПравоДоступаЦвет/РазрешенноеПравоДоступаЦвет.mdo create mode 100644 SSL/src/Subsystems/СтандартныеПодсистемы/Subsystems/КонструкторФормул/КонструкторФормул.mdo diff --git a/SSL/src/BusinessProcesses/Задание/Forms/ФормаБизнесПроцесса/Form.form b/SSL/src/BusinessProcesses/Задание/Forms/ФормаБизнесПроцесса/Form.form index 937b7e1ce..b43898f82 100644 --- a/SSL/src/BusinessProcesses/Задание/Forms/ФормаБизнесПроцесса/Form.form +++ b/SSL/src/BusinessProcesses/Задание/Forms/ФормаБизнесПроцесса/Form.form @@ -75,7 +75,7 @@ false - CommonPicture.Информация + StdPicture.Information diff --git a/SSL/src/Catalogs/Валюты/Forms/ФормаЭлемента/Form.form b/SSL/src/Catalogs/Валюты/Forms/ФормаЭлемента/Form.form index 4b7258c61..b82c2a640 100644 --- a/SSL/src/Catalogs/Валюты/Forms/ФормаЭлемента/Form.form +++ b/SSL/src/Catalogs/Валюты/Forms/ФормаЭлемента/Form.form @@ -698,6 +698,11 @@ Объект.ФормулаРасчетаКурса None + + ru + Курсы других валют в формуле обозначаются в виде наименований, заключенных в квадратные скобки. Пример: +(0.55 * [Доллар США] + 0.45 * [Евро]) / 2 + Button ФормулаРасчетаКурсаРасширеннаяПодсказка @@ -720,11 +725,16 @@ Left true + + StartChoice + ФормулаРасчетаКурсаНачалоВыбора + 35 true true false true + true true true true @@ -926,6 +936,20 @@ + + ПредставлениеФормулы + 15 + + String + + + + true + + + true + + ПараметрыПрописиВалютыНаДругихЯзыках diff --git a/SSL/src/Catalogs/Валюты/Forms/ФормаЭлемента/Module.bsl b/SSL/src/Catalogs/Валюты/Forms/ФормаЭлемента/Module.bsl index 2d72b9f58..1fbcfbcd0 100644 --- a/SSL/src/Catalogs/Валюты/Forms/ФормаЭлемента/Module.bsl +++ b/SSL/src/Catalogs/Валюты/Forms/ФормаЭлемента/Module.bsl @@ -60,6 +60,13 @@ И КодыВалютЗагружаемыхИзИнтернета.НайтиПоЗначению(Объект.Код) <> Неопределено; Элементы.КурсВалютыЗагружаетсяИзИнтернета.Доступность = ДоступнаЗагрузкаИзИнтернета; + Если ОбщегоНазначения.ПодсистемаСуществует("СтандартныеПодсистемы.КонструкторФормул") Тогда + МодульКонструкторФормул = ОбщегоНазначения.ОбщийМодуль("КонструкторФормул"); + ПредставлениеФормулы = МодульКонструкторФормул.ПредставлениеФормулы(ПараметрыФормулы()); + Иначе + Элементы.ФормулаРасчетаКурса.КнопкаВыбора = Ложь; + КонецЕсли; + КонецПроцедуры &НаКлиенте @@ -293,4 +300,87 @@ КонецПроцедуры +&НаКлиенте +Процедура ФормулаРасчетаКурсаНачалоВыбора(Элемент, ДанныеВыбора, СтандартнаяОбработка) + + Если ОбщегоНазначенияКлиент.ПодсистемаСуществует("СтандартныеПодсистемы.КонструкторФормул") Тогда + МодульКонструкторФормулКлиент = ОбщегоНазначенияКлиент.ОбщийМодуль("КонструкторФормулКлиент"); + СтандартнаяОбработка = Ложь; + ОписаниеОповещения = Новый ОписаниеОповещения("ПриЗавершенииРедактированияФормулы", ЭтотОбъект); + МодульКонструкторФормулКлиент.НачатьРедактированиеФормулы(ПараметрыФормулы(), ОписаниеОповещения); + КонецЕсли; + +КонецПроцедуры + +&НаСервере +Функция ПараметрыФормулы() + + Если ОбщегоНазначения.ПодсистемаСуществует("СтандартныеПодсистемы.КонструкторФормул") Тогда + МодульКонструкторФормул = ОбщегоНазначения.ОбщийМодуль("КонструкторФормул"); + + ПараметрыФормулы = МодульКонструкторФормул.ПараметрыРедактированияФормулы(); + ПараметрыФормулы.Формула = Объект.ФормулаРасчетаКурса; + ПараметрыФормулы.СкобкиОперандов = Ложь; + ПараметрыФормулы.Операнды = ОперандыФормулыРасчетаКурса(УникальныйИдентификатор); + ПараметрыФормулы.Операторы = ОператорыФормулыРасчетаКурса(УникальныйИдентификатор); + + Возврат ПараметрыФормулы; + КонецЕсли; + +КонецФункции + +&НаСервереБезКонтекста +Функция ОперандыФормулыРасчетаКурса(УникальныйИдентификатор) + + Возврат ПоместитьВоВременноеХранилище(ТаблицаОперандов(), УникальныйИдентификатор); + +КонецФункции + +&НаСервереБезКонтекста +Функция ОператорыФормулыРасчетаКурса(УникальныйИдентификатор) + + Если ОбщегоНазначения.ПодсистемаСуществует("СтандартныеПодсистемы.КонструкторФормул") Тогда + МодульКонструкторФормул = ОбщегоНазначения.ОбщийМодуль("КонструкторФормул"); + СписокОператоров = МодульКонструкторФормул.СписокОператоров("Операторы, ЧисловыеФункции"); + Возврат ПоместитьВоВременноеХранилище(СписокОператоров, УникальныйИдентификатор); + КонецЕсли; + +КонецФункции + +&НаСервереБезКонтекста +Функция ТаблицаОперандов() + + Если ОбщегоНазначения.ПодсистемаСуществует("СтандартныеПодсистемы.КонструкторФормул") Тогда + МодульКонструкторФормул = ОбщегоНазначения.ОбщийМодуль("КонструкторФормул"); + + ТаблицаОперандов = МодульКонструкторФормул.ТаблицаПолей(); + + Для Каждого ОписаниеВалюты Из Справочники.Валюты.КодыВалют() Цикл + Если ЗначениеЗаполнено(СтрСоединить(СтрРазделить(ОписаниеВалюты.СимвольныйКод, "0123456789", Ложь), "")) Тогда + Операнд = ТаблицаОперандов.Добавить(); + Операнд.Идентификатор = ОписаниеВалюты.СимвольныйКод; + Операнд.Представление = ОписаниеВалюты.СимвольныйКод; + Операнд.ТипЗначения = Новый ОписаниеТипов("Число"); + КонецЕсли; + КонецЦикла; + + Возврат ТаблицаОперандов; + + КонецЕсли; + +КонецФункции + +&НаКлиенте +Процедура ПриЗавершенииРедактированияФормулы(ОписаниеФормулы, ДополнительныеПараметры) Экспорт + + Если ОписаниеФормулы = Неопределено Тогда + Возврат; + КонецЕсли; + + Объект.ФормулаРасчетаКурса = ОписаниеФормулы.Формула; + ПредставлениеФормулы = ОписаниеФормулы.ПредставлениеФормулы; + Модифицированность = Истина; + +КонецПроцедуры + #КонецОбласти diff --git a/SSL/src/Catalogs/Валюты/ManagerModule.bsl b/SSL/src/Catalogs/Валюты/ManagerModule.bsl index c01dd840b..02272566f 100644 --- a/SSL/src/Catalogs/Валюты/ManagerModule.bsl +++ b/SSL/src/Catalogs/Валюты/ManagerModule.bsl @@ -44,7 +44,8 @@ ТекстЗапроса = "ВЫБРАТЬ | Валюты.Ссылка КАК Ссылка, - | Валюты.Наименование КАК СимвольныйКод + | Валюты.Наименование КАК СимвольныйКод, + | Валюты.НаименованиеПолное КАК Представление |ИЗ | Справочник.Валюты КАК Валюты |ГДЕ diff --git a/SSL/src/Catalogs/ВариантыОтчетов/Forms/РазмещениеВРазделах/Module.bsl b/SSL/src/Catalogs/ВариантыОтчетов/Forms/РазмещениеВРазделах/Module.bsl index 5541aa549..5a8e05b38 100644 --- a/SSL/src/Catalogs/ВариантыОтчетов/Forms/РазмещениеВРазделах/Module.bsl +++ b/SSL/src/Catalogs/ВариантыОтчетов/Forms/РазмещениеВРазделах/Module.bsl @@ -297,7 +297,7 @@ | КОНЕЦ КАК Важность |ИЗ | НастройкиОбщих КАК НастройкиОбщих - | ПОЛНОЕ СОЕДИНЕНИЕ НастройкиРазделенных КАК НастройкиРазделенных + | ПОЛНОЕ СОЕДИНЕНИЕ НастройкиРазделенных КАК НастройкиРазделенных // АПК:70 - существенно не замедляет запрос, так как в соединяемых таблицах малое количество записей. | ПО НастройкиОбщих.Ссылка = НастройкиРазделенных.Ссылка | И НастройкиОбщих.Подсистема = НастройкиРазделенных.Подсистема |ГДЕ diff --git a/SSL/src/Catalogs/ВариантыОтчетов/Forms/ФормаСписка/Form.form b/SSL/src/Catalogs/ВариантыОтчетов/Forms/ФормаСписка/Form.form index 6ffc5428a..b369e18d4 100644 --- a/SSL/src/Catalogs/ВариантыОтчетов/Forms/ФормаСписка/Form.form +++ b/SSL/src/Catalogs/ВариантыОтчетов/Forms/ФормаСписка/Form.form @@ -1922,86 +1922,76 @@ <main>true</main> <extInfo xsi:type="form:DynamicListExtInfo"> <queryText>ВЫБРАТЬ РАЗРЕШЕННЫЕ - ВариантыОтчетов.Ссылка, - ВариантыОтчетов.ВерсияДанных, - ВариантыОтчетов.ПометкаУдаления, - ЕСТЬNULL(ВариантыКонфигурации.КлючЗамеров, ВариантыРасширений.КлючЗамеров) КАК КлючЗамеров, - ВариантыОтчетов.Пользовательский, - НЕ ВариантыОтчетов.Пользовательский КАК Предопределенный, + ВариантыОтчетовПереопределяемый.Ссылка, + ВариантыОтчетовПереопределяемый.ВерсияДанных, + ВариантыОтчетовПереопределяемый.ПометкаУдаления, + ЕСТЬNULL(ВариантыКонфигурацииПереопределяемый.КлючЗамеров, ВариантыРасширенийПереопределяемый.КлючЗамеров) КАК + КлючЗамеров, + ВариантыОтчетовПереопределяемый.Пользовательский, + НЕ ВариантыОтчетовПереопределяемый.Пользовательский КАК Предопределенный, ВЫБОР КОГДА &ЭтоОсновнойЯзык - И (ВариантыОтчетов.Пользовательский - ИЛИ ВариантыОтчетов.ПредопределенныйВариант В ( - НЕОПРЕДЕЛЕНО, - ЗНАЧЕНИЕ(Справочник.ПредопределенныеВариантыОтчетов.ПустаяСсылка), - ЗНАЧЕНИЕ(Справочник.ПредопределенныеВариантыОтчетовРасширений.ПустаяСсылка))) - ТОГДА ВариантыОтчетов.Наименование + И (ВариантыОтчетовПереопределяемый.Пользовательский + ИЛИ ВариантыОтчетовПереопределяемый.ПредопределенныйВариант В (НЕОПРЕДЕЛЕНО, + ЗНАЧЕНИЕ(Справочник.ПредопределенныеВариантыОтчетов.ПустаяСсылка), + ЗНАЧЕНИЕ(Справочник.ПредопределенныеВариантыОтчетовРасширений.ПустаяСсылка))) + ТОГДА ВариантыОтчетовПереопределяемый.Наименование КОГДА НЕ &ЭтоОсновнойЯзык - И (ВариантыОтчетов.Пользовательский - ИЛИ ВариантыОтчетов.ПредопределенныйВариант В ( - НЕОПРЕДЕЛЕНО, - ЗНАЧЕНИЕ(Справочник.ПредопределенныеВариантыОтчетов.ПустаяСсылка), - ЗНАЧЕНИЕ(Справочник.ПредопределенныеВариантыОтчетовРасширений.ПустаяСсылка))) - ТОГДА ВЫРАЗИТЬ(ЕСТЬNULL(ПредставленияВариантов.Наименование, ВариантыОтчетов.Наименование) КАК СТРОКА(1000)) + И (ВариантыОтчетовПереопределяемый.Пользовательский + ИЛИ ВариантыОтчетовПереопределяемый.ПредопределенныйВариант В (НЕОПРЕДЕЛЕНО, + ЗНАЧЕНИЕ(Справочник.ПредопределенныеВариантыОтчетов.ПустаяСсылка), + ЗНАЧЕНИЕ(Справочник.ПредопределенныеВариантыОтчетовРасширений.ПустаяСсылка))) + ТОГДА ВЫРАЗИТЬ(ВариантыОтчетовПереопределяемый.Наименование КАК СТРОКА(150)) КОГДА &ЭтоОсновнойЯзык - ТОГДА ВЫРАЗИТЬ(ЕСТЬNULL(ЕСТЬNULL(ВариантыКонфигурации.Наименование, ВариантыРасширений.Наименование), ВариантыОтчетов.Наименование) КАК СТРОКА(1000)) - ИНАЧЕ ВЫРАЗИТЬ(ЕСТЬNULL(ЕСТЬNULL(ПредставленияИзКонфигурации.Наименование, ПредставленияИзРасширений.Наименование), ВариантыОтчетов.Наименование) КАК СТРОКА(1000)) + ТОГДА ВЫРАЗИТЬ(ЕСТЬNULL(ЕСТЬNULL(ВариантыКонфигурацииПереопределяемый.Наименование, + ВариантыРасширенийПереопределяемый.Наименование), ВариантыОтчетовПереопределяемый.Наименование) КАК СТРОКА(150)) + ИНАЧЕ ВЫРАЗИТЬ(ВариантыОтчетовПереопределяемый.Наименование КАК СТРОКА(150)) КОНЕЦ КАК Наименование, - НЕ ВариантыОтчетов.ТолькоДляАвтора КАК ДоступенВсемПользователям, - ВариантыОтчетов.Отчет, - ВариантыОтчетов.КлючВарианта, - ВариантыОтчетов.ТипОтчета, - ВариантыОтчетов.Автор, + НЕ ВариантыОтчетовПереопределяемый.ТолькоДляАвтора КАК ДоступенВсемПользователям, + ВариантыОтчетовПереопределяемый.Отчет, + ВариантыОтчетовПереопределяемый.КлючВарианта, + ВариантыОтчетовПереопределяемый.ТипОтчета, + ВариантыОтчетовПереопределяемый.Автор, ВЫБОР - КОГДА &ЭтоОсновнойЯзык И ПОДСТРОКА(ВариантыОтчетов.Описание, 1, 1) <> "" - ТОГДА ВЫРАЗИТЬ(ВариантыОтчетов.Описание КАК СТРОКА(1000)) - КОГДА &ЭтоОсновнойЯзык И ПОДСТРОКА(ВариантыОтчетов.Описание, 1, 1) = "" - ТОГДА ВЫРАЗИТЬ(ЕСТЬNULL(ВариантыКонфигурации.Описание, ВариантыРасширений.Описание) КАК СТРОКА(1000)) - КОГДА НЕ &ЭтоОсновнойЯзык И ПОДСТРОКА(ПредставленияВариантов.Описание, 1, 1) <> "" - ТОГДА ВЫРАЗИТЬ(ПредставленияВариантов.Описание КАК СТРОКА(1000)) - ИНАЧЕ ВЫРАЗИТЬ(ЕСТЬNULL(ЕСТЬNULL(ПредставленияИзКонфигурации.Описание, ПредставленияИзРасширений.Описание), ВариантыОтчетов.Описание) КАК СТРОКА(1000)) + КОГДА ПОДСТРОКА(ВариантыОтчетовПереопределяемый.Описание, 1, 1) <> "" + ТОГДА ВЫРАЗИТЬ(ВариантыОтчетовПереопределяемый.Описание КАК СТРОКА(1000)) + КОГДА ПОДСТРОКА(ВариантыОтчетовПереопределяемый.Описание, 1, 1) = "" + ТОГДА ВЫРАЗИТЬ(ЕСТЬNULL(ВариантыКонфигурацииПереопределяемый.Описание, ВариантыРасширенийПереопределяемый.Описание) + КАК СТРОКА(1000)) + ИНАЧЕ ВЫРАЗИТЬ(ВариантыОтчетовПереопределяемый.Описание КАК СТРОКА(1000)) КОНЕЦ КАК Описание, ВЫБОР - КОГДА ТИПЗНАЧЕНИЯ(ВариантыОтчетов.Отчет) = ТИП(Справочник.ИдентификаторыОбъектовМетаданных) - ТОГДА ВЫРАЗИТЬ(ВариантыОтчетов.Отчет КАК Справочник.ИдентификаторыОбъектовМетаданных).Имя - КОГДА ТИПЗНАЧЕНИЯ(ВариантыОтчетов.Отчет) = ТИП(Справочник.ИдентификаторыОбъектовРасширений) - ТОГДА ВЫРАЗИТЬ(ВариантыОтчетов.Отчет КАК Справочник.ИдентификаторыОбъектовРасширений).Имя - КОГДА ТИПЗНАЧЕНИЯ(ВариантыОтчетов.Отчет) = ТИП(Справочник.ДополнительныеОтчетыИОбработки) - ТОГДА ВЫРАЗИТЬ(ВариантыОтчетов.Отчет КАК Справочник.ДополнительныеОтчетыИОбработки).ИмяОбъекта - ИНАЧЕ ПОДСТРОКА(ВЫРАЗИТЬ(ВариантыОтчетов.Отчет КАК СТРОКА(150)), 14, 137) + КОГДА ТИПЗНАЧЕНИЯ(ВариантыОтчетовПереопределяемый.Отчет) = ТИП(Справочник.ИдентификаторыОбъектовМетаданных) + ТОГДА ВЫРАЗИТЬ(ВариантыОтчетовПереопределяемый.Отчет КАК Справочник.ИдентификаторыОбъектовМетаданных).Имя + КОГДА ТИПЗНАЧЕНИЯ(ВариантыОтчетовПереопределяемый.Отчет) = ТИП(Справочник.ИдентификаторыОбъектовРасширений) + ТОГДА ВЫРАЗИТЬ(ВариантыОтчетовПереопределяемый.Отчет КАК Справочник.ИдентификаторыОбъектовРасширений).Имя + КОГДА ТИПЗНАЧЕНИЯ(ВариантыОтчетовПереопределяемый.Отчет) = ТИП(Справочник.ДополнительныеОтчетыИОбработки) + ТОГДА ВЫРАЗИТЬ(ВариантыОтчетовПереопределяемый.Отчет КАК Справочник.ДополнительныеОтчетыИОбработки).ИмяОбъекта + ИНАЧЕ ПОДСТРОКА(ВЫРАЗИТЬ(ВариантыОтчетовПереопределяемый.Отчет КАК СТРОКА(150)), 14, 137) КОНЕЦ КАК ИмяОтчета, СведенияОРасширениях.ПолноеИмяОбъекта КАК ПолноеИмяОтчета, ВЫБОР - КОГДА ВариантыОтчетов.ПометкаУдаления = ИСТИНА + КОГДА ВариантыОтчетовПереопределяемый.ПометкаУдаления = ИСТИНА ТОГДА 4 - КОГДА ВариантыОтчетов.Пользовательский = ЛОЖЬ + КОГДА ВариантыОтчетовПереопределяемый.Пользовательский = ЛОЖЬ ТОГДА 5 ИНАЧЕ 3 КОНЕЦ КАК ИндексКартинки ИЗ - Справочник.ВариантыОтчетов КАК ВариантыОтчетов - ЛЕВОЕ СОЕДИНЕНИЕ Справочник.ПредопределенныеВариантыОтчетов КАК ВариантыКонфигурации - ПО ВариантыОтчетов.ПредопределенныйВариант = ВариантыКонфигурации.Ссылка - ЛЕВОЕ СОЕДИНЕНИЕ Справочник.ПредопределенныеВариантыОтчетовРасширений КАК ВариантыРасширений - ПО ВариантыОтчетов.ПредопределенныйВариант = ВариантыРасширений.Ссылка - ЛЕВОЕ СОЕДИНЕНИЕ Справочник.ВариантыОтчетов.Представления КАК ПредставленияВариантов - ПО ВариантыОтчетов.Ссылка = ПредставленияВариантов.Ссылка - И (ПредставленияВариантов.КодЯзыка = &КодЯзыка) - ЛЕВОЕ СОЕДИНЕНИЕ Справочник.ПредопределенныеВариантыОтчетов.Представления КАК ПредставленияИзКонфигурации - ПО ВариантыОтчетов.ПредопределенныйВариант = ПредставленияИзКонфигурации.Ссылка - И (ПредставленияИзКонфигурации.КодЯзыка = &КодЯзыка) - ЛЕВОЕ СОЕДИНЕНИЕ Справочник.ПредопределенныеВариантыОтчетовРасширений.Представления КАК ПредставленияИзРасширений - ПО ВариантыОтчетов.ПредопределенныйВариант = ПредставленияИзРасширений.Ссылка - И (ПредставленияИзРасширений.КодЯзыка = &КодЯзыка) - ЛЕВОЕ СОЕДИНЕНИЕ РегистрСведений.ИдентификаторыОбъектовВерсийРасширений КАК СведенияОРасширениях + Справочник.ВариантыОтчетов КАК ВариантыОтчетовПереопределяемый + ЛЕВОЕ СОЕДИНЕНИЕ Справочник.ПредопределенныеВариантыОтчетов КАК ВариантыКонфигурацииПереопределяемый + ПО ВариантыОтчетовПереопределяемый.ПредопределенныйВариант = ВариантыКонфигурацииПереопределяемый.Ссылка + ЛЕВОЕ СОЕДИНЕНИЕ Справочник.ПредопределенныеВариантыОтчетовРасширений КАК ВариантыРасширенийПереопределяемый + ПО ВариантыОтчетовПереопределяемый.ПредопределенныйВариант = ВариантыРасширенийПереопределяемый.Ссылка + ЛЕВОЕ СОЕДИНЕНИЕ РегистрСведений.ИдентификаторыОбъектовВерсийРасширений КАК СведенияОРасширениях ПО СведенияОРасширениях.ВерсияРасширений = &ВерсияРасширений - И СведенияОРасширениях.Идентификатор = ВариантыОтчетов.Отчет + И СведенияОРасширениях.Идентификатор = ВариантыОтчетовПереопределяемый.Отчет ГДЕ - ВариантыОтчетов.Отчет В(&ДоступныеОтчеты) + ВариантыОтчетовПереопределяемый.Отчет В (&ДоступныеОтчеты) И ВЫБОР КОГДА Не &ЕстьОтборПоВариантам - ТОГДА НЕ ВариантыОтчетов.ПредопределенныйВариант В (&ОтключенныеВариантыПрограммы) - ИНАЧЕ ВариантыОтчетов.Ссылка В (&ВариантыПользователя) + ТОГДА НЕ ВариантыОтчетовПереопределяемый.ПредопределенныйВариант В (&ОтключенныеВариантыПрограммы) + ИНАЧЕ ВариантыОтчетовПереопределяемый.Ссылка В (&ВариантыПользователя) КОНЕЦ</queryText> <mainTable>Catalog.ВариантыОтчетов</mainTable> <autoFillAvailableFields>true</autoFillAvailableFields> diff --git a/SSL/src/Catalogs/ВариантыОтчетов/Forms/ФормаСписка/Module.bsl b/SSL/src/Catalogs/ВариантыОтчетов/Forms/ФормаСписка/Module.bsl index b4e02ee9e..a7f3e0e02 100644 --- a/SSL/src/Catalogs/ВариантыОтчетов/Forms/ФормаСписка/Module.bsl +++ b/SSL/src/Catalogs/ВариантыОтчетов/Forms/ФормаСписка/Module.bsl @@ -92,10 +92,34 @@ Элементы.СтрокаПоиска.СписокВыбора.ЗагрузитьЗначения(ПерсональныеНастройкиСписка.СтрокаПоискаСписокВыбора); КонецЕсли; + СвойстваСписка = ОбщегоНазначения.СтруктураСвойствДинамическогоСписка(); + СуффиксТекущегоЯзыка = ОбщегоНазначения.СуффиксЯзыкаТекущегоПользователя(); + + Если СуффиксТекущегоЯзыка <> Неопределено Тогда + + Если ЗначениеЗаполнено(СуффиксТекущегоЯзыка) Тогда + + СвойстваСписка.ТекстЗапроса = СтрЗаменить(Список.ТекстЗапроса, "ВариантыОтчетов.Наименование", "ВариантыОтчетов.Наименование" + СуффиксТекущегоЯзыка); + СвойстваСписка.ТекстЗапроса = СтрЗаменить(СвойстваСписка.ТекстЗапроса, "ВариантыОтчетов.Описание", "ВариантыОтчетов.Описание" + СуффиксТекущегоЯзыка); + + СвойстваСписка.ТекстЗапроса = СтрЗаменить(СвойстваСписка.ТекстЗапроса, "ВариантыКонфигурации.Наименование", "ВариантыКонфигурации.Наименование" + СуффиксТекущегоЯзыка); + СвойстваСписка.ТекстЗапроса = СтрЗаменить(СвойстваСписка.ТекстЗапроса, "ВариантыКонфигурации.Описание", "ВариантыКонфигурации.Описание" + СуффиксТекущегоЯзыка); + + КонецЕсли; + + Иначе + СвойстваСписка.ТекстЗапроса = ТекстЗапросаПредставленияНаДругихЯзыкахВТабличнойЧасти(); + КонецЕсли; + + ОбщегоНазначения.УстановитьСвойстваДинамическогоСписка(Элементы.Список, СвойстваСписка); + + Если СуффиксТекущегоЯзыка = Неопределено Тогда + Список.Параметры.УстановитьЗначениеПараметра("КодЯзыка", ТекущийЯзык().КодЯзыка); + КонецЕсли; + Список.Параметры.УстановитьЗначениеПараметра("ДоступныеОтчеты", ВариантыОтчетов.ОтчетыТекущегоПользователя()); Список.Параметры.УстановитьЗначениеПараметра("ОтключенныеВариантыПрограммы", Новый Массив(ВариантыОтчетовПовтИсп.ОтключенныеВариантыПрограммы())); Список.Параметры.УстановитьЗначениеПараметра("ЭтоОсновнойЯзык", ОбщегоНазначения.ЭтоОсновнойЯзык()); - Список.Параметры.УстановитьЗначениеПараметра("КодЯзыка", ТекущийЯзык().КодЯзыка); Список.Параметры.УстановитьЗначениеПараметра("ВерсияРасширений", ПараметрыСеанса.ВерсияРасширений); ТекущийЭлемент = Элементы.Список; @@ -865,4 +889,97 @@ КонецПроцедуры +&НаСервере +Функция ТекстЗапросаПредставленияНаДругихЯзыкахВТабличнойЧасти() + + ТекстЗапроса = "ВЫБРАТЬ РАЗРЕШЕННЫЕ + | ВариантыОтчетов.Ссылка, + | ВариантыОтчетов.ПометкаУдаления, + | ЕСТЬNULL(ВариантыКонфигурации.КлючЗамеров, ВариантыРасширений.КлючЗамеров) КАК КлючЗамеров, + | ВариантыОтчетов.Пользовательский, + | НЕ ВариантыОтчетов.Пользовательский КАК Предопределенный, + | ВЫБОР + | КОГДА &ЭтоОсновнойЯзык + | И (ВариантыОтчетов.Пользовательский + | ИЛИ ВариантыОтчетов.ПредопределенныйВариант В (НЕОПРЕДЕЛЕНО, + | ЗНАЧЕНИЕ(Справочник.ПредопределенныеВариантыОтчетов.ПустаяСсылка), + | ЗНАЧЕНИЕ(Справочник.ПредопределенныеВариантыОтчетовРасширений.ПустаяСсылка))) + | ТОГДА ВариантыОтчетов.Наименование + | КОГДА НЕ &ЭтоОсновнойЯзык + | И (ВариантыОтчетов.Пользовательский + | ИЛИ ВариантыОтчетов.ПредопределенныйВариант В (НЕОПРЕДЕЛЕНО, + | ЗНАЧЕНИЕ(Справочник.ПредопределенныеВариантыОтчетов.ПустаяСсылка), + | ЗНАЧЕНИЕ(Справочник.ПредопределенныеВариантыОтчетовРасширений.ПустаяСсылка))) + | ТОГДА ВЫРАЗИТЬ(ЕСТЬNULL(ПредставленияВариантов.Наименование, ВариантыОтчетов.Наименование) КАК СТРОКА(150)) + | КОГДА &ЭтоОсновнойЯзык + | ТОГДА ВЫРАЗИТЬ(ЕСТЬNULL(ЕСТЬNULL(ВариантыКонфигурации.Наименование, ВариантыРасширений.Наименование), + | ВариантыОтчетов.Наименование) КАК СТРОКА(150)) + | ИНАЧЕ ВЫРАЗИТЬ(ЕСТЬNULL(ЕСТЬNULL(ПредставленияИзКонфигурации.Наименование, ПредставленияИзРасширений.Наименование), + | ВариантыОтчетов.Наименование) КАК СТРОКА(150)) + | КОНЕЦ КАК Наименование, + | НЕ ВариантыОтчетов.ТолькоДляАвтора КАК ДоступенВсемПользователям, + | ВариантыОтчетов.Отчет, + | ВариантыОтчетов.КлючВарианта, + | ВариантыОтчетов.ТипОтчета, + | ВариантыОтчетов.Автор, + | ВЫБОР + | КОГДА &ЭтоОсновнойЯзык + | И ПОДСТРОКА(ВариантыОтчетов.Описание, 1, 1) <> """" + | ТОГДА ВЫРАЗИТЬ(ВариантыОтчетов.Описание КАК СТРОКА(1000)) + | КОГДА &ЭтоОсновнойЯзык + | И ПОДСТРОКА(ВариантыОтчетов.Описание, 1, 1) = """" + | ТОГДА ВЫРАЗИТЬ(ЕСТЬNULL(ВариантыКонфигурации.Описание, ВариантыРасширений.Описание) КАК СТРОКА(1000)) + | КОГДА НЕ &ЭтоОсновнойЯзык + | И ПОДСТРОКА(ПредставленияВариантов.Описание, 1, 1) <> """" + | ТОГДА ВЫРАЗИТЬ(ПредставленияВариантов.Описание КАК СТРОКА(1000)) + | ИНАЧЕ ВЫРАЗИТЬ(ЕСТЬNULL(ЕСТЬNULL(ПредставленияИзКонфигурации.Описание, ПредставленияИзРасширений.Описание), + | ВариантыОтчетов.Описание) КАК СТРОКА(1000)) + | КОНЕЦ КАК Описание, + | ВЫБОР + | КОГДА ТИПЗНАЧЕНИЯ(ВариантыОтчетов.Отчет) = ТИП(Справочник.ИдентификаторыОбъектовМетаданных) + | ТОГДА ВЫРАЗИТЬ(ВариантыОтчетов.Отчет КАК Справочник.ИдентификаторыОбъектовМетаданных).Имя + | КОГДА ТИПЗНАЧЕНИЯ(ВариантыОтчетов.Отчет) = ТИП(Справочник.ИдентификаторыОбъектовРасширений) + | ТОГДА ВЫРАЗИТЬ(ВариантыОтчетов.Отчет КАК Справочник.ИдентификаторыОбъектовРасширений).Имя + | КОГДА ТИПЗНАЧЕНИЯ(ВариантыОтчетов.Отчет) = ТИП(Справочник.ДополнительныеОтчетыИОбработки) + | ТОГДА ВЫРАЗИТЬ(ВариантыОтчетов.Отчет КАК Справочник.ДополнительныеОтчетыИОбработки).ИмяОбъекта + | ИНАЧЕ ПОДСТРОКА(ВЫРАЗИТЬ(ВариантыОтчетов.Отчет КАК СТРОКА(150)), 14, 137) + | КОНЕЦ КАК ИмяОтчета, + | СведенияОРасширениях.ПолноеИмяОбъекта КАК ПолноеИмяОтчета, + | ВЫБОР + | КОГДА ВариантыОтчетов.ПометкаУдаления = ИСТИНА + | ТОГДА 4 + | КОГДА ВариантыОтчетов.Пользовательский = ЛОЖЬ + | ТОГДА 5 + | ИНАЧЕ 3 + | КОНЕЦ КАК ИндексКартинки + |ИЗ + | Справочник.ВариантыОтчетов КАК ВариантыОтчетов + | ЛЕВОЕ СОЕДИНЕНИЕ Справочник.ПредопределенныеВариантыОтчетов КАК ВариантыКонфигурации + | ПО ВариантыОтчетов.ПредопределенныйВариант = ВариантыКонфигурации.Ссылка + | ЛЕВОЕ СОЕДИНЕНИЕ Справочник.ПредопределенныеВариантыОтчетовРасширений КАК ВариантыРасширений + | ПО ВариантыОтчетов.ПредопределенныйВариант = ВариантыРасширений.Ссылка + | ЛЕВОЕ СОЕДИНЕНИЕ Справочник.ВариантыОтчетов.Представления КАК ПредставленияВариантов + | ПО ВариантыОтчетов.Ссылка = ПредставленияВариантов.Ссылка + | И (ПредставленияВариантов.КодЯзыка = &КодЯзыка) + | ЛЕВОЕ СОЕДИНЕНИЕ Справочник.ПредопределенныеВариантыОтчетов.Представления КАК ПредставленияИзКонфигурации + | ПО ВариантыОтчетов.ПредопределенныйВариант = ПредставленияИзКонфигурации.Ссылка + | И (ПредставленияИзКонфигурации.КодЯзыка = &КодЯзыка) + | ЛЕВОЕ СОЕДИНЕНИЕ Справочник.ПредопределенныеВариантыОтчетовРасширений.Представления КАК ПредставленияИзРасширений + | ПО ВариантыОтчетов.ПредопределенныйВариант = ПредставленияИзРасширений.Ссылка + | И (ПредставленияИзРасширений.КодЯзыка = &КодЯзыка) + | ЛЕВОЕ СОЕДИНЕНИЕ РегистрСведений.ИдентификаторыОбъектовВерсийРасширений КАК СведенияОРасширениях + | ПО СведенияОРасширениях.ВерсияРасширений = &ВерсияРасширений + | И СведенияОРасширениях.Идентификатор = ВариантыОтчетов.Отчет + |ГДЕ + | ВариантыОтчетов.Отчет В (&ДоступныеОтчеты) + | И ВЫБОР + | КОГДА НЕ &ЕстьОтборПоВариантам + | ТОГДА НЕ ВариантыОтчетов.ПредопределенныйВариант В (&ОтключенныеВариантыПрограммы) + | ИНАЧЕ ВариантыОтчетов.Ссылка В (&ВариантыПользователя) + | КОНЕЦ"; + + Возврат ТекстЗапроса; + +КонецФункции + #КонецОбласти \ No newline at end of file diff --git a/SSL/src/Catalogs/ВариантыОтчетов/Forms/ФормаЭлемента/Module.bsl b/SSL/src/Catalogs/ВариантыОтчетов/Forms/ФормаЭлемента/Module.bsl index 44005db22..d00214e63 100644 --- a/SSL/src/Catalogs/ВариантыОтчетов/Forms/ФормаЭлемента/Module.bsl +++ b/SSL/src/Catalogs/ВариантыОтчетов/Forms/ФормаЭлемента/Module.bsl @@ -337,21 +337,8 @@ ПредопределенныйВариант = ВариантОбъект.ПредопределенныйВариант.ПолучитьОбъект(); ВариантОбъект.Наименование = ПредопределенныйВариант.Наименование; - - ПредставленияВарианта = ВариантОбъект.Представления.Выгрузить(); - ВариантОбъект.Представления.Очистить(); - ВариантОбъект.Представления.Загрузить(ПредопределенныйВариант.Представления.Выгрузить()); - - Если ПустаяСтрока(ВариантОбъект.Описание) Тогда - ВариантОбъект.Описание = ПредопределенныйВариант.Описание; - Иначе - ВариантОбъект.Представления.Сортировать("КодЯзыка"); - ПредставленияВарианта.Сортировать("КодЯзыка"); - Для каждого ПредставлениеВарианта Из ВариантОбъект.Представления Цикл - ОписаниеВарианта = ПредставленияВарианта.Найти(ПредставлениеВарианта.КодЯзыка, "КодЯзыка"); - ПредставлениеВарианта.Описание = ОписаниеВарианта.Описание; - КонецЦикла; - КонецЕсли; + ВариантОбъект.Описание = ПредопределенныйВариант.Описание; + КонецПроцедуры &НаКлиенте diff --git a/SSL/src/Catalogs/ВариантыОтчетов/ManagerModule.bsl b/SSL/src/Catalogs/ВариантыОтчетов/ManagerModule.bsl index 20bf83ae9..9a5ff3168 100644 --- a/SSL/src/Catalogs/ВариантыОтчетов/ManagerModule.bsl +++ b/SSL/src/Catalogs/ВариантыОтчетов/ManagerModule.bsl @@ -220,12 +220,12 @@ Параметры.ОбработкаЗавершена = ОбновлениеИнформационнойБазы.ОбработкаДанныхЗавершена(Параметры.Очередь, ПолноеИмяОбъекта); Если Обработано = 0 И Отказано <> 0 Тогда - ШаблонСообщения = НСтр("ru = 'Процедуре УстановитьИсточникДанныхВарианта не удалось обработать некоторые варианты отчетов: %1'"); + ШаблонСообщения = НСтр("ru = 'Не удалось обработать некоторые варианты отчетов: %1'"); ТекстСообщения = СтроковыеФункцииКлиентСервер.ПодставитьПараметрыВСтроку(ШаблонСообщения, Отказано); ВызватьИсключение ТекстСообщения; Иначе - ШаблонКомментария = НСтр("ru = 'Процедура УстановитьИсточникДанныхВарианта обработала очередной пакет вариантов отчетов: %1'"); + ШаблонКомментария = НСтр("ru = 'Обработан очередной пакет вариантов отчетов: %1'"); Комментарий = СтроковыеФункцииКлиентСервер.ПодставитьПараметрыВСтроку(ШаблонКомментария, Обработано); ЗаписьЖурналаРегистрации( ОбновлениеИнформационнойБазы.СобытиеЖурналаРегистрации(), diff --git a/SSL/src/Catalogs/ВариантыОтчетов/ВариантыОтчетов.mdo b/SSL/src/Catalogs/ВариантыОтчетов/ВариантыОтчетов.mdo index c1d5394ad..549933b81 100644 --- a/SSL/src/Catalogs/ВариантыОтчетов/ВариантыОтчетов.mdo +++ b/SSL/src/Catalogs/ВариантыОтчетов/ВариантыОтчетов.mdo @@ -364,6 +364,48 @@ <fullTextSearch>Use</fullTextSearch> <dataHistory>Use</dataHistory> </attributes> + <attributes uuid="52fd1e04-44b6-4405-a2de-ec5c0cf66b64"> + <name>ОписаниеЯзык1</name> + <synonym> + <key>ru</key> + <value>Описание (дополнительный язык)</value> + </synonym> + <type> + <types>String</types> + <stringQualifiers/> + </type> + <toolTip> + <key>ru</key> + <value>Выводится в панели отчетов как подсказка.</value> + </toolTip> + <multiLine>true</multiLine> + <minValue xsi:type="core:UndefinedValue"/> + <maxValue xsi:type="core:UndefinedValue"/> + <fillValue xsi:type="core:StringValue"/> + <fullTextSearch>Use</fullTextSearch> + <dataHistory>Use</dataHistory> + </attributes> + <attributes uuid="9a647b38-73da-4491-997b-773059cfd1c9"> + <name>ОписаниеЯзык2</name> + <synonym> + <key>ru</key> + <value>Описание (дополнительный язык 2)</value> + </synonym> + <type> + <types>String</types> + <stringQualifiers/> + </type> + <toolTip> + <key>ru</key> + <value>Выводится в панели отчетов как подсказка.</value> + </toolTip> + <multiLine>true</multiLine> + <minValue xsi:type="core:UndefinedValue"/> + <maxValue xsi:type="core:UndefinedValue"/> + <fillValue xsi:type="core:StringValue"/> + <fullTextSearch>Use</fullTextSearch> + <dataHistory>Use</dataHistory> + </attributes> <attributes uuid="50a1e3bf-8624-4474-854e-21b89aaf97ed"> <name>Отчет</name> <synonym> diff --git a/SSL/src/Catalogs/ВерсииФайлов/Forms/ВерсииФайла/Module.bsl b/SSL/src/Catalogs/ВерсииФайлов/Forms/ВерсииФайла/Module.bsl index a411fa05c..cbaefd585 100644 --- a/SSL/src/Catalogs/ВерсииФайлов/Forms/ВерсииФайла/Module.bsl +++ b/SSL/src/Catalogs/ВерсииФайлов/Forms/ВерсииФайла/Module.bsl @@ -35,7 +35,7 @@ Если ОбщегоНазначения.ЭтоМобильныйКлиент() Тогда - Элементы.ФормаОткрытьВерсию.Картинка = БиблиотекаКартинок.Лупа; + Элементы.ФормаОткрытьВерсию.Картинка = БиблиотекаКартинок.ПолеВводаОткрыть; Элементы.ФормаОткрытьВерсию.Отображение = ОтображениеКнопки.Картинка; Элементы.СписокКомментарий.Видимость = Ложь; 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..61e6fb4bb --- /dev/null +++ b/SSL/src/Catalogs/ВидыКонтактнойИнформации/Forms/ФормаВыбора/Attributes/Список/ExtInfo/ListSettings.dcss @@ -0,0 +1,17 @@ +<?xml version="1.0" encoding="UTF-8"?> +<Settings xmlns="http://v8.1c.ru/8.1/data-composition-system/settings" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns:xs="http://www.w3.org/2001/XMLSchema" xmlns:v8="http://v8.1c.ru/8.1/data/core" xmlns:v8ui="http://v8.1c.ru/8.1/data/ui" xmlns:pal="http://v8.1c.ru/8.1/data/ui/colors/palette" xmlns:style="http://v8.1c.ru/8.1/data/ui/style" xmlns:sys="http://v8.1c.ru/8.1/data/ui/fonts/system" xmlns:web="http://v8.1c.ru/8.1/data/ui/colors/web" xmlns:win="http://v8.1c.ru/8.1/data/ui/colors/windows" xmlns:dcscor="http://v8.1c.ru/8.1/data-composition-system/core"> + <filter> + <viewMode>Normal</viewMode> + <userSettingID>dfcece9d-5077-440b-b6b3-45a5cb4538eb</userSettingID> + </filter> + <order> + <viewMode>Normal</viewMode> + <userSettingID>88619765-ccb3-46c6-ac52-38e9c992ebd4</userSettingID> + </order> + <conditionalAppearance> + <viewMode>Normal</viewMode> + <userSettingID>b75fecce-942b-4aed-abc9-e6a02e460fb3</userSettingID> + </conditionalAppearance> + <itemsViewMode>Normal</itemsViewMode> + <itemsUserSettingID>911b6018-f537-43e8-a417-da56b22f9aec</itemsUserSettingID> +</Settings> diff --git a/SSL/src/Catalogs/ВидыКонтактнойИнформации/Forms/ФормаВыбора/Form.form b/SSL/src/Catalogs/ВидыКонтактнойИнформации/Forms/ФормаВыбора/Form.form new file mode 100644 index 000000000..4cdbcf029 --- /dev/null +++ b/SSL/src/Catalogs/ВидыКонтактнойИнформации/Forms/ФормаВыбора/Form.form @@ -0,0 +1,307 @@ +<?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 + + + Список.Description + + true + + НаименованиеРасширеннаяПодсказка + 18 + Label + true + true + + Left + + + + НаименованиеКонтекстноеМеню + 17 + 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 + + HierarchicalList + true + true + true + true + true + true + MultiRow +
true
+ 1 + 1 + AutoUse + AutoUse + true + true + Auto + Auto + ExpandTopLevel + true + true + true + true + AsFileRef + + Список.DefaultPicture + + true + + + OnGetDataAtServer + СписокПриПолученииДанныхНаСервере + + 60 + + 0001-01-01T00:00:00 + 0001-01-01T00:00:00 + + + true + true + СписокКомпоновщикНастроекПользовательскиеНастройки + +
+ + ФормаКоманднаяПанель + -1 + Left + true + + + OnCreateAtServer + ПриСозданииНаСервере + + Abort + Cancel + ChangeHistory + Copy + Create + CreateFolder + Delete + DynamicListStandardSettings + Ignore + LevelDown + LevelUp + LoadDynamicListSettings + MoveItem + No + OK + OpenFromMainServer + OpenFromStandaloneServer + RestoreValues + Retry + SaveDynamicListSettings + SaveValues + SetDeletionMark + Yes + LockOwner + true + true + true + Vertical + true + true + true + auto + true + + Список + 1 + + DynamicList + + + true + + + true + + + Список.PredefinedDataName + + + Список.Скрыть + +
true
+ + ВЫБРАТЬ + СправочникВидыКонтактнойИнформации.Ссылка, + СправочникВидыКонтактнойИнформации.Наименование, + СправочникВидыКонтактнойИнформации.ИмяПредопределенныхДанных, + ЛОЖЬ КАК Скрыть +ИЗ + Справочник.ВидыКонтактнойИнформации КАК СправочникВидыКонтактнойИнформации +ГДЕ + СправочникВидыКонтактнойИнформации.ПометкаУдаления = ЛОЖЬ + Catalog.ВидыКонтактнойИнформации + true + true + true + true + true + +
+ + + + + + diff --git a/SSL/src/Catalogs/ВидыКонтактнойИнформации/Forms/ФормаВыбора/Module.bsl b/SSL/src/Catalogs/ВидыКонтактнойИнформации/Forms/ФормаВыбора/Module.bsl new file mode 100644 index 000000000..b0249f6ae --- /dev/null +++ b/SSL/src/Catalogs/ВидыКонтактнойИнформации/Forms/ФормаВыбора/Module.bsl @@ -0,0 +1,65 @@ +/////////////////////////////////////////////////////////////////////////////////////////////////////// +// Copyright (c) 2021, ООО 1С-Софт +// Все права защищены. Эта программа и сопроводительные материалы предоставляются +// в соответствии с условиями лицензии Attribution 4.0 International (CC BY 4.0) +// Текст лицензии доступен по ссылке: +// https://creativecommons.org/licenses/by/4.0/legalcode +/////////////////////////////////////////////////////////////////////////////////////////////////////// + +#Область ОбработчикиСобытийФормы + +&НаСервере +Процедура ПриСозданииНаСервере(Отказ, СтандартнаяОбработка) + + УстановитьУсловноеОформление(); + + Если ОбщегоНазначения.ПодсистемаСуществует("СтандартныеПодсистемы.Мультиязычность") Тогда + МодульМультиязычностьСервер = ОбщегоНазначения.ОбщийМодуль("МультиязычностьСервер"); + МодульМультиязычностьСервер.ПриСозданииНаСервере(ЭтотОбъект); + КонецЕсли; + +КонецПроцедуры + +#КонецОбласти + +#Область ОбработчикиСобытийЭлементовШапкиФормы + +&НаСервереБезКонтекста +Процедура СписокПриПолученииДанныхНаСервере(ИмяЭлемента, Настройки, Строки) + + Для Каждого СтрокаТаблицы Из Строки Цикл + + Если СтрНачинаетсяС(СтрокаТаблицы.Значение.Данные.ИмяПредопределенныхДанных, "Удалить") Тогда + СтрокаТаблицы.Значение.Данные.Скрыть = Истина; + КонецЕсли; + + КонецЦикла; + +КонецПроцедуры + +#КонецОбласти + +#Область СлужебныеПроцедурыИФункции + +&НаСервере +Процедура УстановитьУсловноеОформление() + + УсловноеОформление.Элементы.Очистить(); + + // + + Элемент = УсловноеОформление.Элементы.Добавить(); + + ПолеЭлемента = Элемент.Поля.Элементы.Добавить(); + ПолеЭлемента.Поле = Новый ПолеКомпоновкиДанных(Элементы.Наименование.Имя); + + ОтборЭлемента = Элемент.Отбор.Элементы.Добавить(Тип("ЭлементОтбораКомпоновкиДанных")); + ОтборЭлемента.ЛевоеЗначение = Новый ПолеКомпоновкиДанных("Список.Скрыть"); + ОтборЭлемента.ВидСравнения = ВидСравненияКомпоновкиДанных.Равно; + ОтборЭлемента.ПравоеЗначение = Истина; + + Элемент.Оформление.УстановитьЗначениеПараметра("Видимость", Ложь); + +КонецПроцедуры + +#КонецОбласти diff --git a/SSL/src/Catalogs/ВидыКонтактнойИнформации/Forms/ФормаСписка/Form.form b/SSL/src/Catalogs/ВидыКонтактнойИнформации/Forms/ФормаСписка/Form.form index 814f9b5f5..50e200c86 100644 --- a/SSL/src/Catalogs/ВидыКонтактнойИнформации/Forms/ФормаСписка/Form.form +++ b/SSL/src/Catalogs/ВидыКонтактнойИнформации/Forms/ФормаСписка/Form.form @@ -337,6 +337,7 @@ ПриСозданииНаСервере CreateFolder + MoveItem DontBlock true true @@ -422,19 +423,12 @@ КОНЕЦ КОНЕЦ КАК ИндексПиктограммы, СправочникВидыКонтактнойИнформации.Ссылка КАК Ссылка, - ВЫБОР - КОГДА &ЭтоОсновнойЯзык - ТОГДА СправочникВидыКонтактнойИнформации.Наименование - ИНАЧЕ ВЫРАЗИТЬ(ЕСТЬNULL(ВидыКонтактнойИнформацииПредставления.Наименование, СправочникВидыКонтактнойИнформации.Наименование) КАК СТРОКА(150)) - КОНЕЦ КАК Наименование, + СправочникВидыКонтактнойИнформации.Наименование КАК Наименование, СправочникВидыКонтактнойИнформации.РеквизитДопУпорядочивания КАК РеквизитДопУпорядочивания, СправочникВидыКонтактнойИнформации.Используется КАК Используется, СправочникВидыКонтактнойИнформации.ЭтоГруппа КАК ЭтоГруппа ИЗ Справочник.ВидыКонтактнойИнформации КАК СправочникВидыКонтактнойИнформации - ЛЕВОЕ СОЕДИНЕНИЕ Справочник.ВидыКонтактнойИнформации.Представления КАК ВидыКонтактнойИнформацииПредставления - ПО (ВидыКонтактнойИнформацииПредставления.Ссылка = СправочникВидыКонтактнойИнформации.Ссылка) - И (ВидыКонтактнойИнформацииПредставления.КодЯзыка = &КодЯзыка) ГДЕ СправочникВидыКонтактнойИнформации.Используется И ЕСТЬNULL(СправочникВидыКонтактнойИнформации.Родитель.Используется, ИСТИНА) diff --git a/SSL/src/Catalogs/ВидыКонтактнойИнформации/Forms/ФормаСписка/Module.bsl b/SSL/src/Catalogs/ВидыКонтактнойИнформации/Forms/ФормаСписка/Module.bsl index b07e685b7..9540c14d8 100644 --- a/SSL/src/Catalogs/ВидыКонтактнойИнформации/Forms/ФормаСписка/Module.bsl +++ b/SSL/src/Catalogs/ВидыКонтактнойИнформации/Forms/ФормаСписка/Module.bsl @@ -17,8 +17,85 @@ ПодключаемыеКоманды.ПриСозданииНаСервере(ЭтотОбъект); // Конец СтандартныеПодсистемы.ПодключаемыеКоманды - Список.Параметры.УстановитьЗначениеПараметра("ЭтоОсновнойЯзык", ТекущийЯзык() = Метаданные.ОсновнойЯзык); - Список.Параметры.УстановитьЗначениеПараметра("КодЯзыка", ТекущийЯзык().КодЯзыка); + СуффиксТекущегоЯзыка = ОбщегоНазначения.СуффиксЯзыкаТекущегоПользователя(); + Если СуффиксТекущегоЯзыка = Неопределено Тогда + + Список.ТекстЗапроса = "ВЫБРАТЬ + | ВЫБОР + | КОГДА СправочникВидыКонтактнойИнформации.ЭтоГруппа + | ТОГДА ВЫБОР + | КОГДА СправочникВидыКонтактнойИнформации.ПометкаУдаления + | ТОГДА 1 + | КОГДА СправочникВидыКонтактнойИнформации.Предопределенный + | ТОГДА 2 + | ИНАЧЕ 0 + | КОНЕЦ + | КОГДА СправочникВидыКонтактнойИнформации.ПометкаУдаления + | ТОГДА 4 + | КОГДА СправочникВидыКонтактнойИнформации.Предопределенный + | ТОГДА ВЫБОР СправочникВидыКонтактнойИнформации.Тип + | КОГДА ЗНАЧЕНИЕ(Перечисление.ТипыКонтактнойИнформации.Телефон) + | ТОГДА 14 + | КОГДА ЗНАЧЕНИЕ(Перечисление.ТипыКонтактнойИнформации.АдресЭлектроннойПочты) + | ТОГДА 15 + | КОГДА ЗНАЧЕНИЕ(Перечисление.ТипыКонтактнойИнформации.ВебСтраница) + | ТОГДА 16 + | КОГДА ЗНАЧЕНИЕ(Перечисление.ТипыКонтактнойИнформации.Факс) + | ТОГДА 17 + | КОГДА ЗНАЧЕНИЕ(Перечисление.ТипыКонтактнойИнформации.Другое) + | ТОГДА 18 + | КОГДА ЗНАЧЕНИЕ(Перечисление.ТипыКонтактнойИнформации.Адрес) + | ТОГДА 19 + | КОГДА ЗНАЧЕНИЕ(Перечисление.ТипыКонтактнойИнформации.Skype) + | ТОГДА 21 + | ИНАЧЕ 3 + | КОНЕЦ + | ИНАЧЕ ВЫБОР СправочникВидыКонтактнойИнформации.Тип + | КОГДА ЗНАЧЕНИЕ(Перечисление.ТипыКонтактнойИнформации.Телефон) + | ТОГДА 7 + | КОГДА ЗНАЧЕНИЕ(Перечисление.ТипыКонтактнойИнформации.АдресЭлектроннойПочты) + | ТОГДА 8 + | КОГДА ЗНАЧЕНИЕ(Перечисление.ТипыКонтактнойИнформации.ВебСтраница) + | ТОГДА 9 + | КОГДА ЗНАЧЕНИЕ(Перечисление.ТипыКонтактнойИнформации.Факс) + | ТОГДА 10 + | КОГДА ЗНАЧЕНИЕ(Перечисление.ТипыКонтактнойИнформации.Другое) + | ТОГДА 11 + | КОГДА ЗНАЧЕНИЕ(Перечисление.ТипыКонтактнойИнформации.Адрес) + | ТОГДА 12 + | КОГДА ЗНАЧЕНИЕ(Перечисление.ТипыКонтактнойИнформации.Skype) + | ТОГДА 20 + | ИНАЧЕ 3 + | КОНЕЦ + | КОНЕЦ КАК ИндексПиктограммы, + | СправочникВидыКонтактнойИнформации.Ссылка КАК Ссылка, + | ВЫБОР + | КОГДА &ЭтоОсновнойЯзык + | ТОГДА СправочникВидыКонтактнойИнформации.Наименование + | ИНАЧЕ ВЫРАЗИТЬ(ЕСТЬNULL(ВидыКонтактнойИнформацииПредставления.Наименование, + | СправочникВидыКонтактнойИнформации.Наименование) КАК СТРОКА(150)) + | КОНЕЦ КАК Наименование, + | СправочникВидыКонтактнойИнформации.РеквизитДопУпорядочивания КАК РеквизитДопУпорядочивания, + | СправочникВидыКонтактнойИнформации.Используется КАК Используется, + | СправочникВидыКонтактнойИнформации.ЭтоГруппа КАК ЭтоГруппа + |ИЗ + | Справочник.ВидыКонтактнойИнформации КАК СправочникВидыКонтактнойИнформации + | ЛЕВОЕ СОЕДИНЕНИЕ Справочник.ВидыКонтактнойИнформации.Представления КАК ВидыКонтактнойИнформацииПредставления + | ПО (ВидыКонтактнойИнформацииПредставления.Ссылка = СправочникВидыКонтактнойИнформации.Ссылка) + | И (ВидыКонтактнойИнформацииПредставления.КодЯзыка = &КодЯзыка) + |ГДЕ + | СправочникВидыКонтактнойИнформации.Используется + | И ЕСТЬNULL(СправочникВидыКонтактнойИнформации.Родитель.Используется, ИСТИНА)"; + + Список.Параметры.УстановитьЗначениеПараметра("ЭтоОсновнойЯзык", ОбщегоНазначения.ЭтоОсновнойЯзык()); + Список.Параметры.УстановитьЗначениеПараметра("КодЯзыка", ТекущийЯзык().КодЯзыка); + + КонецЕсли; + + Если ОбщегоНазначения.ПодсистемаСуществует("СтандартныеПодсистемы.Мультиязычность") Тогда + МодульМультиязычностьСервер = ОбщегоНазначения.ОбщийМодуль("МультиязычностьСервер"); + МодульМультиязычностьСервер.ПриСозданииНаСервере(ЭтотОбъект); + КонецЕсли; КонецПроцедуры diff --git a/SSL/src/Catalogs/ВидыКонтактнойИнформации/Forms/ФормаЭлемента/Form.form b/SSL/src/Catalogs/ВидыКонтактнойИнформации/Forms/ФормаЭлемента/Form.form index 22cc05e24..38170ef3e 100644 --- a/SSL/src/Catalogs/ВидыКонтактнойИнформации/Forms/ФормаЭлемента/Form.form +++ b/SSL/src/Catalogs/ВидыКонтактнойИнформации/Forms/ФормаЭлемента/Form.form @@ -865,16 +865,16 @@ 183 <key>ru</key> - <value><font Arial><fontsize 8><bgcolor #ffffff><color #333333>В строке маски допустимо использование следующих специальных символов:</></></></> -<font Arial><fontsize 8><bgcolor #ffffff><color #333333>! - любой введенный символ преобразуется в верхний регистр;</></></></> -<font Arial><fontsize 8><bgcolor #ffffff><color #333333>9 - допустимо ввести произвольный символ цифры;</></></></> -<font Arial><fontsize 8><bgcolor #ffffff><color #333333># - допустимо ввести произвольный символ цифры или - (знак минус) или + (знак плюс) или пробел;</></></></> -<font Arial><fontsize 8><bgcolor #ffffff><color #333333>N - допустимо ввести любые алфавитно-цифровые символы (буквы или цифры);</></></></> -<font Arial><fontsize 8><bgcolor #ffffff><color #333333>U - допустимо ввести любые алфавитно-цифровые символы (буквы или цифры) и любой введенный символ преобразуется в верхний регистр;</></></></> -<font Arial><fontsize 8><bgcolor #ffffff><color #333333>X (латинского алфавита) - допустимо ввести произвольный символ;</></></></> -<font Arial><fontsize 8><bgcolor #ffffff><color #333333>^ - недопустимо вводить этот символ интерактивно пользователем, он может устанавливаться только из языка;</></></></> -<font Arial><fontsize 8><bgcolor #ffffff><color #333333>@ – допустимо ввести любые алфавитно-цифровые символы (буквы или цифры) в верхнем регистре или пробел.</></></></> -<font Arial><fontsize 8><bgcolor #ffffff><color #333333></></></></></value> + <value><font Arial><fontsize 8><color #333333><bgcolor #FFFFFF>В строке маски допустимо использование следующих специальных символов:</></></></> +<font Arial><fontsize 8><color #333333><bgcolor #FFFFFF>! - любой введенный символ преобразуется в верхний регистр;</></></></> +<font Arial><fontsize 8><color #333333><bgcolor #FFFFFF>9 - допустимо ввести произвольный символ цифры;</></></></> +<font Arial><fontsize 8><color #333333><bgcolor #FFFFFF># - допустимо ввести произвольный символ цифры или - (знак минус) или + (знак плюс) или пробел;</></></></> +<font Arial><fontsize 8><color #333333><bgcolor #FFFFFF>N - допустимо ввести любые алфавитно-цифровые символы (буквы или цифры);</></></></> +<font Arial><fontsize 8><color #333333><bgcolor #FFFFFF>U - допустимо ввести любые алфавитно-цифровые символы (буквы или цифры) и любой введенный символ преобразуется в верхний регистр;</></></></> +<font Arial><fontsize 8><color #333333><bgcolor #FFFFFF>X (латинского алфавита) - допустимо ввести произвольный символ;</></></></> +<font Arial><fontsize 8><color #333333><bgcolor #FFFFFF>^ - недопустимо вводить этот символ интерактивно пользователем, он может устанавливаться только из языка;</></></></> +<font Arial><fontsize 8><color #333333><bgcolor #FFFFFF>@ – допустимо ввести любые алфавитно-цифровые символы (буквы или цифры) в верхнем регистре или пробел.</></></></> +</value> true Label @@ -1438,6 +1438,19 @@ true + + ХранитИсториюИзменений + 4 + + Boolean + + + true + + + true + + ДополнительныеНастройкиАдреса diff --git a/SSL/src/Catalogs/ВидыКонтактнойИнформации/Forms/ФормаЭлемента/Module.bsl b/SSL/src/Catalogs/ВидыКонтактнойИнформации/Forms/ФормаЭлемента/Module.bsl index 3f147f563..c967a12df 100644 --- a/SSL/src/Catalogs/ВидыКонтактнойИнформации/Forms/ФормаЭлемента/Module.bsl +++ b/SSL/src/Catalogs/ВидыКонтактнойИнформации/Forms/ФормаЭлемента/Module.bsl @@ -44,8 +44,6 @@ Элементы.ХранитьИсториюИзменений.Доступность = Ложь; КонецЕсли; - Элементы.ГруппаХранитьИсториюИзменений.Видимость = Ложь; - Если Объект.Тип = Перечисления.ТипыКонтактнойИнформации.Адрес ИЛИ НЕ СсылкаРодителя.Пустая() ИЛИ СсылкаРодителя.Уровень() = 0 Тогда @@ -69,7 +67,7 @@ Если ТабличнаяЧасть <> Неопределено Тогда Если ТабличнаяЧасть.Реквизиты.Найти("ДействуетС") <> Неопределено Тогда - Элементы.ГруппаХранитьИсториюИзменений.Видимость = Истина; + ХранитИсториюИзменений = Истина; КонецЕсли; КонецЕсли; КонецЕсли; @@ -168,7 +166,9 @@ // Формирование идентификатора для формул дополнительного реквизита (сведения). Если Не ЗначениеЗаполнено(ТекущийОбъект.ИдентификаторДляФормул) Или ПараметрыЗаписи.Свойство("КогдаИдентификаторДляФормулУжеИспользуется") Тогда - НаименованиеОбъекта = НаименованиеДляФормированияИдентификатора(ТекущийОбъект.Наименование, ТекущийОбъект.Представления); + + НаименованиеОбъекта = ЗаголовокДляИдентификатора(ТекущийОбъект); + ТекущийОбъект.ИдентификаторДляФормул = Справочники.ВидыКонтактнойИнформации.УникальныйИдентификаторДляФормул( НаименованиеОбъекта, ТекущийОбъект.Ссылка, ТекущийОбъект.Родитель); @@ -363,34 +363,41 @@ Элементы.ДополнительныеНастройкиАдреса.Видимость = ДоступныДополнительныеНастройкиАдреса; Элементы.ДополнительныеНастройкиАдреса.Доступность = Не Объект.МеждународныйФорматАдреса; Элементы.ВидРедактирования.Видимость = Истина; + Элементы.ГруппаХранитьИсториюИзменений.Видимость = ХранитИсториюИзменений; ДоступностьПолейДляАдреса(); Иначе + Элементы.ДополнительныеНастройкиАдреса.Видимость = Ложь; Если Объект.Тип = ПредопределенноеЗначение("Перечисление.ТипыКонтактнойИнформации.АдресЭлектроннойПочты") Тогда Элементы.Проверки.ТекущаяСтраница = Элементы.Проверки.ПодчиненныеЭлементы.АдресЭлектроннойПочты; Элементы.ВидРедактирования.Видимость = Ложь; + Элементы.ГруппаХранитьИсториюИзменений.Видимость = Ложь; ИначеЕсли Объект.Тип = ПредопределенноеЗначение("Перечисление.ТипыКонтактнойИнформации.Skype") Тогда Элементы.Проверки.ТекущаяСтраница = Элементы.Проверки.ПодчиненныеЭлементы.Skype; Элементы.ВидРедактирования.Видимость = Ложь; Элементы.РазрешитьВводНесколькихЗначений.Доступность = Истина; + Элементы.ГруппаХранитьИсториюИзменений.Видимость = Ложь; ИначеЕсли Объект.Тип = ПредопределенноеЗначение("Перечисление.ТипыКонтактнойИнформации.Телефон") Или Объект.Тип = ПредопределенноеЗначение("Перечисление.ТипыКонтактнойИнформации.Факс") Тогда Элементы.Проверки.ТекущаяСтраница = Элементы.Проверки.ПодчиненныеЭлементы.Телефон; Элементы.ВидРедактирования.Доступность = Объект.МожноИзменятьСпособРедактирования; Элементы.ВидРедактирования.Видимость = Истина; + Элементы.ГруппаХранитьИсториюИзменений.Видимость = ХранитИсториюИзменений; ИначеЕсли Объект.Тип = ПредопределенноеЗначение("Перечисление.ТипыКонтактнойИнформации.Другое") Тогда Элементы.Проверки.ТекущаяСтраница = Элементы.Проверки.ПодчиненныеЭлементы.Другое; Элементы.ВидРедактирования.Доступность = Ложь; Элементы.ВидРедактирования.Видимость = Ложь; + Элементы.ГруппаХранитьИсториюИзменений.Видимость = Ложь; ИначеЕсли Объект.Тип = ПредопределенноеЗначение("Перечисление.ТипыКонтактнойИнформации.ВебСтраница") Тогда Элементы.Проверки.ТекущаяСтраница = Элементы.Проверки.ПодчиненныеЭлементы.Прочие; - Элементы.ВидРедактирования.Видимость = Ложь; + Элементы.ВидРедактирования.Видимость = Ложь; Элементы.ГруппаХранитьИсториюИзменений.Видимость = Ложь; Иначе Элементы.Проверки.ТекущаяСтраница = Элементы.Проверки.ПодчиненныеЭлементы.Прочие; Элементы.ВидРедактирования.Доступность = Ложь; + Элементы.ГруппаХранитьИсториюИзменений.Видимость = Ложь; КонецЕсли; КонецЕсли; @@ -400,20 +407,24 @@ Процедура ИзменитьРеквизитыПриИзмененииТипа() Если Объект.Тип = ПредопределенноеЗначение("Перечисление.ТипыКонтактнойИнформации.Адрес") Тогда - Элементы.ХранитьИсториюИзменений.Доступность = Истина; + Элементы.ХранитьИсториюИзменений.Доступность = Объект.ВидРедактирования = "Диалог"; Иначе - Объект.ХранитьИсториюИзменений = Ложь; - Элементы.ХранитьИсториюИзменений.Доступность = Ложь; + ФлагХранитьИсториюИзменений = Ложь; + ДоступностьФлагаХранитьИсториюИзменений = Ложь; Если Объект.Тип = ПредопределенноеЗначение("Перечисление.ТипыКонтактнойИнформации.АдресЭлектроннойПочты") Тогда Объект.ВидРедактирования = "ПолеВвода"; ИначеЕсли Объект.Тип = ПредопределенноеЗначение("Перечисление.ТипыКонтактнойИнформации.Телефон") Или Объект.Тип = ПредопределенноеЗначение("Перечисление.ТипыКонтактнойИнформации.Факс") Тогда - // Нет изменений + ФлагХранитьИсториюИзменений = Объект.ХранитьИсториюИзменений; + ДоступностьФлагаХранитьИсториюИзменений = Объект.ВидРедактирования = "Диалог"; Иначе Объект.ВидРедактирования = "ПолеВводаИДиалог"; КонецЕсли; + Объект.ХранитьИсториюИзменений = ФлагХранитьИсториюИзменений; + Элементы.ХранитьИсториюИзменений.Доступность = ДоступностьФлагаХранитьИсториюИзменений; + КонецЕсли; КонецПроцедуры @@ -430,7 +441,17 @@ ПредлагаемыйИдентификатор = ""; Если Не Элементы.ИдентификаторДляФормул.ТолькоПросмотр Тогда - Представление = НаименованиеДляФормированияИдентификатора(Объект.Наименование, Объект.Представления); + + Если ОбщегоНазначения.ПодсистемаСуществует("СтандартныеПодсистемы.Мультиязычность") Тогда + МодульМультиязычностьСервер = ОбщегоНазначения.ОбщийМодуль("МультиязычностьСервер"); + СуффиксТекущегоЯзыка = МодульМультиязычностьСервер.СуффиксТекущегоЯзыка(); + Представление = ?(ЗначениеЗаполнено(СуффиксТекущегоЯзыка), + Объект["Наименование"+ СуффиксТекущегоЯзыка], + Объект.Наименование); + Иначе + Представление = Объект.Наименование; + КонецЕсли; + ПредлагаемыйИдентификатор = Справочники.ВидыКонтактнойИнформации.УникальныйИдентификаторДляФормул( Представление, Объект.Ссылка, Объект.Родитель); Если ПредлагаемыйИдентификатор <> Объект.ИдентификаторДляФормул Тогда @@ -443,23 +464,28 @@ &НаСервере Процедура ЗаполнитьИдентификаторДляФормулНаСервере() - ЗаголовокДляИдентификатора = НаименованиеДляФормированияИдентификатора(Объект.Наименование, Объект.Представления); + + ЗаголовокДляИдентификатора = ЗаголовокДляИдентификатора(Объект); + Объект.ИдентификаторДляФормул = Справочники.ВидыКонтактнойИнформации.УникальныйИдентификаторДляФормул( ЗаголовокДляИдентификатора, Объект.Ссылка, Объект.Родитель); КонецПроцедуры &НаСервереБезКонтекста -Функция НаименованиеДляФормированияИдентификатора(Знач Наименование, Знач Представления) - Если ТекущийЯзык().КодЯзыка <> ОбщегоНазначения.КодОсновногоЯзыка() Тогда - Отбор = Новый Структура(); - Отбор.Вставить("КодЯзыка", ОбщегоНазначения.КодОсновногоЯзыка()); - НайденныеСтроки = Представления.НайтиСтроки(Отбор); - Если НайденныеСтроки.Количество() > 0 Тогда - Наименование = НайденныеСтроки[0].Наименование; - КонецЕсли; +Функция ЗаголовокДляИдентификатора(ТекущийОбъект) + + Если ОбщегоНазначения.ПодсистемаСуществует("СтандартныеПодсистемы.Мультиязычность") Тогда + МодульМультиязычностьСервер = ОбщегоНазначения.ОбщийМодуль("МультиязычностьСервер"); + СуффиксТекущегоЯзыка = МодульМультиязычностьСервер.СуффиксТекущегоЯзыка(); + ЗаголовокДляИдентификатора = ?(ЗначениеЗаполнено(СуффиксТекущегоЯзыка), + ТекущийОбъект["Наименование"+ СуффиксТекущегоЯзыка], + ТекущийОбъект.Наименование); + Иначе + ЗаголовокДляИдентификатора = ТекущийОбъект.Наименование; КонецЕсли; - Возврат Наименование; + Возврат ЗаголовокДляИдентификатора; + КонецФункции &НаКлиенте diff --git a/SSL/src/Catalogs/ВидыКонтактнойИнформации/ManagerModule.bsl b/SSL/src/Catalogs/ВидыКонтактнойИнформации/ManagerModule.bsl index f58f7092a..4c61f316a 100644 --- a/SSL/src/Catalogs/ВидыКонтактнойИнформации/ManagerModule.bsl +++ b/SSL/src/Catalogs/ВидыКонтактнойИнформации/ManagerModule.bsl @@ -149,11 +149,14 @@ // Смотри также ОбновлениеИнформационнойБазыПереопределяемый.ПриНастройкеНачальногоЗаполненияЭлементов // // Параметры: -// Настройки - см. ОбновлениеИнформационнойБазыПереопределяемый.ПриНастройкеНачальногоЗаполненияЭлементов.Настройки +// Настройки - см. ОбновлениеИнформационнойБазыСлужебный.НастройкиЗаполненияЭлементов // Процедура ПриНастройкеНачальногоЗаполненияЭлементов(Настройки) Экспорт - Настройки.ПриНачальномЗаполненииЭлемента = Ложь; + УправлениеКонтактнойИнформациейПереопределяемый.ПриНастройкеНачальногоЗаполненияЭлементов(Настройки); + + Настройки.ПриНачальномЗаполненииЭлемента = Истина; + Настройки.ИмяКлючевогоРеквизита = "ИмяПредопределенногоВида"; КонецПроцедуры @@ -168,14 +171,20 @@ Элемент = Элементы.Добавить(); Элемент.ИмяПредопределенныхДанных = "СправочникПользователи"; - Элемент.Наименование = НСтр("ru = 'Контактная информация справочника ""Пользователи""'"); Элемент.ЭтоГруппа = Истина; Элемент.Используется = Истина; + Если ОбщегоНазначения.ПодсистемаСуществует("СтандартныеПодсистемы.Мультиязычность") Тогда + МодульМультиязычностьСервер = ОбщегоНазначения.ОбщийМодуль("МультиязычностьСервер"); + МодульМультиязычностьСервер.ЗаполнитьМультиязычныйРеквизит(Элемент, "Наименование", + "ru = 'Контактная информация справочника ""Пользователи""'", КодыЯзыков); // @НСтр-1 + Иначе + Элемент.Наименование = НСтр("ru = 'Контактная информация справочника ""Пользователи""'", + ОбщегоНазначения.КодОсновногоЯзыка()); + КонецЕсли; Элемент = Элементы.Добавить(); Элемент.ИмяПредопределенныхДанных = "EmailПользователя"; Элемент.Тип = Перечисления.ТипыКонтактнойИнформации.АдресЭлектроннойПочты; - Элемент.Наименование = НСтр("ru = 'Электронная почта'"); Элемент.МожноИзменятьСпособРедактирования = Истина; Элемент.РазрешитьВводНесколькихЗначений = Истина; Элемент.Родитель = Справочники.ВидыКонтактнойИнформации.СправочникПользователи; @@ -183,11 +192,19 @@ Элемент.ВидРедактирования = "ПолеВвода"; Элемент.Используется = Истина; Элемент.РеквизитДопУпорядочивания = 2; + Если ОбщегоНазначения.ПодсистемаСуществует("СтандартныеПодсистемы.Мультиязычность") Тогда + МодульМультиязычностьСервер = ОбщегоНазначения.ОбщийМодуль("МультиязычностьСервер"); + МодульМультиязычностьСервер.ЗаполнитьМультиязычныйРеквизит(Элемент, "Наименование", + "ru = 'Электронная почта'", КодыЯзыков); // @НСтр-1 + Иначе + Элемент.Наименование = НСтр("ru = 'Электронная почта'", ОбщегоНазначения.КодОсновногоЯзыка()); + КонецЕсли; + Элемент = Элементы.Добавить(); Элемент.ИмяПредопределенныхДанных = "ТелефонПользователя"; Элемент.Тип = Перечисления.ТипыКонтактнойИнформации.Телефон; - Элемент.Наименование = НСтр("ru = 'Телефон'"); + Элемент.МожноИзменятьСпособРедактирования = Истина; Элемент.РазрешитьВводНесколькихЗначений = Истина; Элемент.Родитель = Справочники.ВидыКонтактнойИнформации.СправочникПользователи; @@ -195,6 +212,15 @@ Элемент.Используется = Истина; Элемент.ВидРедактирования = "ПолеВводаИДиалог"; Элемент.РеквизитДопУпорядочивания = 1; + Если ОбщегоНазначения.ПодсистемаСуществует("СтандартныеПодсистемы.Мультиязычность") Тогда + МодульМультиязычностьСервер = ОбщегоНазначения.ОбщийМодуль("МультиязычностьСервер"); + МодульМультиязычностьСервер.ЗаполнитьМультиязычныйРеквизит(Элемент, "Наименование", + "ru = 'Телефон'", КодыЯзыков); // @НСтр-1 + Иначе + Элемент.Наименование = НСтр("ru = 'Телефон'", ОбщегоНазначения.КодОсновногоЯзыка()); + КонецЕсли; + + УправлениеКонтактнойИнформациейПереопределяемый.ПриНачальномЗаполненииЭлементов(КодыЯзыков, Элементы, ТабличныеЧасти); КонецПроцедуры @@ -208,6 +234,13 @@ // Процедура ПриНачальномЗаполненииЭлемента(Объект, Данные, ДополнительныеПараметры) Экспорт + УправлениеКонтактнойИнформациейПереопределяемый.ПриНачальномЗаполненииЭлемента(Объект, Данные, ДополнительныеПараметры); + + Результат = УправлениеКонтактнойИнформациейСлужебный.ПроверитьПараметрыВидаКонтактнойИнформации(Объект); + Если Результат.ЕстьОшибки Тогда + ВызватьИсключение Результат.ТекстОшибки; + КонецЕсли; + КонецПроцедуры #КонецОбласти @@ -235,7 +268,7 @@ ИдентификаторПоПравилам = Ложь; ТекстОшибки = НСтр("ru = 'Идентификатор ""%1"" не соответствует правилам именования переменных. - |Идентификатор не должен содержать пробелов и специальных символов.'"); + |Идентификатор не должен содержать пробелов и специальных символов.'"); ОбщегоНазначения.СообщитьПользователю( СтроковыеФункцииКлиентСервер.ПодставитьПараметрыВСтроку(ТекстОшибки, ИдентификаторДляФормул),, "ИдентификаторДляФормул",, Отказ); @@ -562,7 +595,8 @@ ПроблемныхОбъектов = ПроблемныхОбъектов + 1; ТекстСообщения = СтроковыеФункцииКлиентСервер.ПодставитьПараметрыВСтроку( - НСтр("ru = 'Не удалось обработать вид контактной информации: %1 по причине: %2'"), + НСтр("ru = 'Не удалось обработать вид контактной информации %1 по причине: + |%2'"), ВидКонтактнойИнформацииСсылка.Ссылка, ПодробноеПредставлениеОшибки(ИнформацияОбОшибке())); ЗаписьЖурналаРегистрации(ОбновлениеИнформационнойБазы.СобытиеЖурналаРегистрации(), УровеньЖурналаРегистрации.Предупреждение, Метаданные.Справочники.ВидыКонтактнойИнформации, ВидКонтактнойИнформацииСсылка.Ссылка, ТекстСообщения); @@ -573,13 +607,14 @@ Если ОбъектовОбработано = 0 И ПроблемныхОбъектов <> 0 Тогда ТекстСообщения = СтроковыеФункцииКлиентСервер.ПодставитьПараметрыВСтроку( - НСтр("ru = 'Процедуре ЗаполнитьВидыКонтактнойИнформации не удалось обработать некоторые виды контактной информации (пропущены): %1'"), + НСтр("ru = 'Не удалось обработать некоторые виды контактной информации (пропущены): %1'"), ПроблемныхОбъектов); ВызватьИсключение ТекстСообщения; Иначе ЗаписьЖурналаРегистрации(ОбновлениеИнформационнойБазы.СобытиеЖурналаРегистрации(), УровеньЖурналаРегистрации.Информация, Метаданные.Справочники.ВидыКонтактнойИнформации,, - СтроковыеФункцииКлиентСервер.ПодставитьПараметрыВСтроку(НСтр("ru = 'Процедура ЗаполнитьВидыКонтактнойИнформации обработала очередную порцию видов контактной информации: %1'"), + СтроковыеФункцииКлиентСервер.ПодставитьПараметрыВСтроку( + НСтр("ru = 'Обработана очередная порция видов контактной информации: %1'"), ОбъектовОбработано)); КонецЕсли; diff --git a/SSL/src/Catalogs/ВидыКонтактнойИнформации/ObjectModule.bsl b/SSL/src/Catalogs/ВидыКонтактнойИнформации/ObjectModule.bsl index 19e993fa5..c9c37e965 100644 --- a/SSL/src/Catalogs/ВидыКонтактнойИнформации/ObjectModule.bsl +++ b/SSL/src/Catalogs/ВидыКонтактнойИнформации/ObjectModule.bsl @@ -89,17 +89,19 @@ КонецПроцедуры Функция НаименованиеДляФормированияИдентификатора() - НаименованиеДляИдентификатора = Наименование; - Если ТекущийЯзык().КодЯзыка <> ОбщегоНазначения.КодОсновногоЯзыка() Тогда - Отбор = Новый Структура(); - Отбор.Вставить("КодЯзыка", ОбщегоНазначения.КодОсновногоЯзыка()); - НайденныеСтроки = Представления.НайтиСтроки(Отбор); - Если НайденныеСтроки.Количество() > 0 Тогда - НаименованиеДляИдентификатора = НайденныеСтроки[0].Наименование; - КонецЕсли; + + Если ОбщегоНазначения.ПодсистемаСуществует("СтандартныеПодсистемы.Мультиязычность") Тогда + МодульМультиязычностьСервер = ОбщегоНазначения.ОбщийМодуль("МультиязычностьСервер"); + СуффиксТекущегоЯзыка = МодульМультиязычностьСервер.СуффиксТекущегоЯзыка(); + ЗаголовокДляИдентификатора = ?(ЗначениеЗаполнено(СуффиксТекущегоЯзыка), + ЭтотОбъект["Наименование"+ СуффиксТекущегоЯзыка], + Наименование); + Иначе + ЗаголовокДляИдентификатора = Наименование; КонецЕсли; - Возврат НаименованиеДляИдентификатора; + Возврат ЗаголовокДляИдентификатора; + КонецФункции Процедура ПриЧтенииПредставленийНаСервере() Экспорт diff --git a/SSL/src/Catalogs/ВидыКонтактнойИнформации/ВидыКонтактнойИнформации.mdo b/SSL/src/Catalogs/ВидыКонтактнойИнформации/ВидыКонтактнойИнформации.mdo index 060f90140..7a349d666 100644 --- a/SSL/src/Catalogs/ВидыКонтактнойИнформации/ВидыКонтактнойИнформации.mdo +++ b/SSL/src/Catalogs/ВидыКонтактнойИнформации/ВидыКонтактнойИнформации.mdo @@ -157,45 +157,42 @@ <defaultObjectForm>Catalog.ВидыКонтактнойИнформации.Form.ФормаЭлемента</defaultObjectForm> <defaultFolderForm>Catalog.ВидыКонтактнойИнформации.Form.ФормаГруппы</defaultFolderForm> <defaultListForm>Catalog.ВидыКонтактнойИнформации.Form.ФормаСписка</defaultListForm> + <defaultChoiceForm>Catalog.ВидыКонтактнойИнформации.Form.ФормаВыбора</defaultChoiceForm> <defaultFolderChoiceForm>Catalog.ВидыКонтактнойИнформации.Form.ФормаВыбораГруппы</defaultFolderChoiceForm> - <attributes uuid="0eea37cc-47f8-4819-85da-d4991f4e58ed"> - <name>ТолькоНациональныйАдрес</name> + <attributes uuid="800ef5f0-fdd1-4f8b-8c0b-9744952bfb5b"> + <name>ВводитьНомерПоМаске</name> <synonym> <key>ru</key> - <value>Только национальный адрес</value> + <value>Вводить номер по маске</value> </synonym> <type> <types>Boolean</types> </type> <toolTip> <key>ru</key> - <value>Допустимы только национальные адреса</value> + <value>Признак, что ввод номера телефона выполняется по маске.</value> </toolTip> <minValue xsi:type="core:UndefinedValue"/> <maxValue xsi:type="core:UndefinedValue"/> - <fillValue xsi:type="core:BooleanValue"/> + <fillValue xsi:type="core:UndefinedValue"/> <fullTextSearch>Use</fullTextSearch> <dataHistory>Use</dataHistory> </attributes> - <attributes uuid="322645d4-e3fb-467b-a55d-d8e74cff2ea3"> - <name>ВидРедактирования</name> + <attributes uuid="b51eaf45-baa1-4d1c-bcb7-a89bb8bcc26a"> + <name>ВключатьСтрануВПредставление</name> <synonym> <key>ru</key> - <value>Вид редактирования</value> + <value>Включать страну в представление</value> </synonym> <type> - <types>String</types> - <stringQualifiers> - <length>20</length> - </stringQualifiers> + <types>Boolean</types> </type> <toolTip> <key>ru</key> - <value>Редактировать контактную информацию в только в поле ввода или только в диалоге (ручной ввод информации невозможен).</value> + <value>В представление будет включена страна адреса.</value> </toolTip> <minValue xsi:type="core:UndefinedValue"/> <maxValue xsi:type="core:UndefinedValue"/> - <fillChecking>ShowError</fillChecking> <fillValue xsi:type="core:UndefinedValue"/> <fullTextSearch>Use</fullTextSearch> <dataHistory>Use</dataHistory> @@ -225,21 +222,25 @@ <fullTextSearch>Use</fullTextSearch> <dataHistory>Use</dataHistory> </attributes> - <attributes uuid="b51eaf45-baa1-4d1c-bcb7-a89bb8bcc26a"> - <name>ВключатьСтрануВПредставление</name> + <attributes uuid="322645d4-e3fb-467b-a55d-d8e74cff2ea3"> + <name>ВидРедактирования</name> <synonym> <key>ru</key> - <value>Включать страну в представление</value> + <value>Вид редактирования</value> </synonym> <type> - <types>Boolean</types> + <types>String</types> + <stringQualifiers> + <length>20</length> + </stringQualifiers> </type> <toolTip> <key>ru</key> - <value>В представление будет включена страна адреса.</value> + <value>Редактировать контактную информацию в только в поле ввода или только в диалоге (ручной ввод информации невозможен).</value> </toolTip> <minValue xsi:type="core:UndefinedValue"/> <maxValue xsi:type="core:UndefinedValue"/> + <fillChecking>ShowError</fillChecking> <fillValue xsi:type="core:UndefinedValue"/> <fullTextSearch>Use</fullTextSearch> <dataHistory>Use</dataHistory> @@ -263,6 +264,61 @@ <fullTextSearch>Use</fullTextSearch> <dataHistory>Use</dataHistory> </attributes> + <attributes uuid="8363bd46-1ea5-44f0-858a-05bc03f6020e"> + <name>ИдентификаторДляФормул</name> + <synonym> + <key>ru</key> + <value>Идентификатор для формул</value> + </synonym> + <type> + <types>String</types> + <stringQualifiers> + <length>150</length> + </stringQualifiers> + </type> + <minValue xsi:type="core:UndefinedValue"/> + <maxValue xsi:type="core:UndefinedValue"/> + <fillValue xsi:type="core:StringValue"/> + <fullTextSearch>Use</fullTextSearch> + <dataHistory>Use</dataHistory> + </attributes> + <attributes uuid="0f039952-09d3-49c8-b909-e8333a3fc8f9"> + <name>ИмяГруппы</name> + <synonym> + <key>ru</key> + <value>Имя группы</value> + </synonym> + <type> + <types>String</types> + <stringQualifiers> + <length>150</length> + </stringQualifiers> + </type> + <minValue xsi:type="core:UndefinedValue"/> + <maxValue xsi:type="core:UndefinedValue"/> + <fillValue xsi:type="core:StringValue"/> + <fullTextSearch>Use</fullTextSearch> + <dataHistory>Use</dataHistory> + </attributes> + <attributes uuid="d8fc4644-5351-443c-8b5d-5de2c4b855d1"> + <name>ИмяПредопределенногоВида</name> + <synonym> + <key>ru</key> + <value>Имя предопределенного вида</value> + </synonym> + <type> + <types>String</types> + <stringQualifiers> + <length>150</length> + </stringQualifiers> + </type> + <minValue xsi:type="core:UndefinedValue"/> + <maxValue xsi:type="core:UndefinedValue"/> + <fillValue xsi:type="core:StringValue"/> + <fullTextSearch>Use</fullTextSearch> + <use>ForFolderAndItem</use> + <dataHistory>Use</dataHistory> + </attributes> <attributes uuid="64ff6058-c6f3-4682-b9a1-11ec438fa447"> <name>Используется</name> <synonym> @@ -285,6 +341,66 @@ <use>ForFolderAndItem</use> <dataHistory>Use</dataHistory> </attributes> + <attributes uuid="9cd2fc77-a4b0-457e-a6b0-63dbf521bf90"> + <name>ИсправлятьУстаревшиеАдреса</name> + <synonym> + <key>ru</key> + <value>Исправлять устаревшие адреса</value> + </synonym> + <type> + <types>Boolean</types> + </type> + <toolTip> + <key>ru</key> + <value>Автоматические исправлять устаревшие адреса на новые</value> + </toolTip> + <minValue xsi:type="core:UndefinedValue"/> + <maxValue xsi:type="core:UndefinedValue"/> + <fillValue xsi:type="core:UndefinedValue"/> + <fullTextSearch>Use</fullTextSearch> + <dataHistory>Use</dataHistory> + </attributes> + <attributes uuid="a321b6db-391b-4c65-8d27-ce486d10055e"> + <name>МаскаНомераТелефона</name> + <synonym> + <key>ru</key> + <value>Маска номера телефона</value> + </synonym> + <type> + <types>String</types> + <stringQualifiers> + <length>150</length> + </stringQualifiers> + </type> + <toolTip> + <key>ru</key> + <value>Содержит строку маски для интерактивного ввода номера телефона.</value> + </toolTip> + <minValue xsi:type="core:UndefinedValue"/> + <maxValue xsi:type="core:UndefinedValue"/> + <fillValue xsi:type="core:StringValue"/> + <fullTextSearch>Use</fullTextSearch> + <dataHistory>Use</dataHistory> + </attributes> + <attributes uuid="71dfde27-3762-4dd0-9252-6e703ce1b101"> + <name>МеждународныйФорматАдреса</name> + <synonym> + <key>ru</key> + <value>Международный формат адреса</value> + </synonym> + <type> + <types>Boolean</types> + </type> + <toolTip> + <key>ru</key> + <value>Адрес редактируется в международном формате на английском языке.</value> + </toolTip> + <minValue xsi:type="core:UndefinedValue"/> + <maxValue xsi:type="core:UndefinedValue"/> + <fillValue xsi:type="core:UndefinedValue"/> + <fullTextSearch>Use</fullTextSearch> + <dataHistory>Use</dataHistory> + </attributes> <attributes uuid="ced01234-9417-49ce-adf0-8cdd15e6dd7d"> <name>МожноИзменятьСпособРедактирования</name> <synonym> @@ -382,25 +498,6 @@ <fullTextSearch>Use</fullTextSearch> <dataHistory>Use</dataHistory> </attributes> - <attributes uuid="45a2569e-820c-4d7d-ba74-4a781d26bb2b"> - <name>УдалитьРедактированиеТолькоВДиалоге</name> - <synonym> - <key>ru</key> - <value>(не используется) Редактирование только в диалоге</value> - </synonym> - <type> - <types>Boolean</types> - </type> - <toolTip> - <key>ru</key> - <value>Редактировать контактную информацию только в диалоге (ручной ввод информации невозможен)</value> - </toolTip> - <minValue xsi:type="core:UndefinedValue"/> - <maxValue xsi:type="core:UndefinedValue"/> - <fillValue xsi:type="core:BooleanValue"/> - <fullTextSearch>Use</fullTextSearch> - <dataHistory>Use</dataHistory> - </attributes> <attributes uuid="996c7873-1cc9-44f6-915b-5c6ed7ef2370"> <name>РеквизитДопУпорядочивания</name> <synonym> @@ -486,6 +583,44 @@ <fullTextSearch>Use</fullTextSearch> <dataHistory>Use</dataHistory> </attributes> + <attributes uuid="0eea37cc-47f8-4819-85da-d4991f4e58ed"> + <name>ТолькоНациональныйАдрес</name> + <synonym> + <key>ru</key> + <value>Только национальный адрес</value> + </synonym> + <type> + <types>Boolean</types> + </type> + <toolTip> + <key>ru</key> + <value>Допустимы только национальные адреса</value> + </toolTip> + <minValue xsi:type="core:UndefinedValue"/> + <maxValue xsi:type="core:UndefinedValue"/> + <fillValue xsi:type="core:BooleanValue"/> + <fullTextSearch>Use</fullTextSearch> + <dataHistory>Use</dataHistory> + </attributes> + <attributes uuid="45a2569e-820c-4d7d-ba74-4a781d26bb2b"> + <name>УдалитьРедактированиеТолькоВДиалоге</name> + <synonym> + <key>ru</key> + <value>(не используется) Редактирование только в диалоге</value> + </synonym> + <type> + <types>Boolean</types> + </type> + <toolTip> + <key>ru</key> + <value>Редактировать контактную информацию только в диалоге (ручной ввод информации невозможен)</value> + </toolTip> + <minValue xsi:type="core:UndefinedValue"/> + <maxValue xsi:type="core:UndefinedValue"/> + <fillValue xsi:type="core:BooleanValue"/> + <fullTextSearch>Use</fullTextSearch> + <dataHistory>Use</dataHistory> + </attributes> <attributes uuid="8a13c899-1659-48cf-9aa2-07ca99547b7b"> <name>УказыватьОКТМО</name> <synonym> @@ -524,140 +659,6 @@ <fullTextSearch>Use</fullTextSearch> <dataHistory>Use</dataHistory> </attributes> - <attributes uuid="71dfde27-3762-4dd0-9252-6e703ce1b101"> - <name>МеждународныйФорматАдреса</name> - <synonym> - <key>ru</key> - <value>Международный формат адреса</value> - </synonym> - <type> - <types>Boolean</types> - </type> - <toolTip> - <key>ru</key> - <value>Адрес редактируется в международном формате на английском языке.</value> - </toolTip> - <minValue xsi:type="core:UndefinedValue"/> - <maxValue xsi:type="core:UndefinedValue"/> - <fillValue xsi:type="core:UndefinedValue"/> - <fullTextSearch>Use</fullTextSearch> - <dataHistory>Use</dataHistory> - </attributes> - <attributes uuid="d8fc4644-5351-443c-8b5d-5de2c4b855d1"> - <name>ИмяПредопределенногоВида</name> - <synonym> - <key>ru</key> - <value>Имя предопределенного вида</value> - </synonym> - <type> - <types>String</types> - <stringQualifiers> - <length>150</length> - </stringQualifiers> - </type> - <minValue xsi:type="core:UndefinedValue"/> - <maxValue xsi:type="core:UndefinedValue"/> - <fillValue xsi:type="core:StringValue"/> - <fullTextSearch>Use</fullTextSearch> - <use>ForFolderAndItem</use> - <dataHistory>Use</dataHistory> - </attributes> - <attributes uuid="0f039952-09d3-49c8-b909-e8333a3fc8f9"> - <name>ИмяГруппы</name> - <synonym> - <key>ru</key> - <value>Имя группы</value> - </synonym> - <type> - <types>String</types> - <stringQualifiers> - <length>150</length> - </stringQualifiers> - </type> - <minValue xsi:type="core:UndefinedValue"/> - <maxValue xsi:type="core:UndefinedValue"/> - <fillValue xsi:type="core:StringValue"/> - <fullTextSearch>Use</fullTextSearch> - <dataHistory>Use</dataHistory> - </attributes> - <attributes uuid="9cd2fc77-a4b0-457e-a6b0-63dbf521bf90"> - <name>ИсправлятьУстаревшиеАдреса</name> - <synonym> - <key>ru</key> - <value>Исправлять устаревшие адреса</value> - </synonym> - <type> - <types>Boolean</types> - </type> - <toolTip> - <key>ru</key> - <value>Автоматические исправлять устаревшие адреса на новые</value> - </toolTip> - <minValue xsi:type="core:UndefinedValue"/> - <maxValue xsi:type="core:UndefinedValue"/> - <fillValue xsi:type="core:UndefinedValue"/> - <fullTextSearch>Use</fullTextSearch> - <dataHistory>Use</dataHistory> - </attributes> - <attributes uuid="8363bd46-1ea5-44f0-858a-05bc03f6020e"> - <name>ИдентификаторДляФормул</name> - <synonym> - <key>ru</key> - <value>Идентификатор для формул</value> - </synonym> - <type> - <types>String</types> - <stringQualifiers> - <length>150</length> - </stringQualifiers> - </type> - <minValue xsi:type="core:UndefinedValue"/> - <maxValue xsi:type="core:UndefinedValue"/> - <fillValue xsi:type="core:StringValue"/> - <fullTextSearch>Use</fullTextSearch> - <dataHistory>Use</dataHistory> - </attributes> - <attributes uuid="a321b6db-391b-4c65-8d27-ce486d10055e"> - <name>МаскаНомераТелефона</name> - <synonym> - <key>ru</key> - <value>Маска номера телефона</value> - </synonym> - <type> - <types>String</types> - <stringQualifiers> - <length>150</length> - </stringQualifiers> - </type> - <toolTip> - <key>ru</key> - <value>Содержит строку маски для интерактивного ввода номера телефона.</value> - </toolTip> - <minValue xsi:type="core:UndefinedValue"/> - <maxValue xsi:type="core:UndefinedValue"/> - <fillValue xsi:type="core:StringValue"/> - <fullTextSearch>Use</fullTextSearch> - <dataHistory>Use</dataHistory> - </attributes> - <attributes uuid="800ef5f0-fdd1-4f8b-8c0b-9744952bfb5b"> - <name>ВводитьНомерПоМаске</name> - <synonym> - <key>ru</key> - <value>Вводить номер по маске</value> - </synonym> - <type> - <types>Boolean</types> - </type> - <toolTip> - <key>ru</key> - <value>Признак, что ввод номера телефона выполняется по маске.</value> - </toolTip> - <minValue xsi:type="core:UndefinedValue"/> - <maxValue xsi:type="core:UndefinedValue"/> - <fillValue xsi:type="core:UndefinedValue"/> - <fullTextSearch>Use</fullTextSearch> - <dataHistory>Use</dataHistory> - </attributes> <tabularSections uuid="99387869-f8b1-4269-bd26-e39380d17b69"> <producedTypes> <objectType typeId="9cb91b1a-ae31-403c-8c5d-e0fd01955e6c" valueTypeId="74fba94b-4c84-497d-a403-5c2dd8ebbc57"/> @@ -723,6 +724,47 @@ </attributes> <use>ForFolderAndItem</use> </tabularSections> + <forms uuid="826c2821-147d-4aaf-910c-acfbdb58a29f"> + <name>ИсправлениеВидовКонтактнойИнформации</name> + <synonym> + <key>ru</key> + <value>Исправление видов контактной информации</value> + </synonym> + <usePurposes>PersonalComputer</usePurposes> + <usePurposes>MobileDevice</usePurposes> + </forms> + <forms uuid="aeea0075-bdeb-41b7-b9cc-1da7b500455f"> + <name>ФормаВыбора</name> + <synonym> + <key>ru</key> + <value>Форма выбора</value> + </synonym> + <usePurposes>PersonalComputer</usePurposes> + <usePurposes>MobileDevice</usePurposes> + </forms> + <forms uuid="11c086b0-c646-4701-983d-c38758286354"> + <name>ФормаВыбораГруппы</name> + <synonym> + <key>ru</key> + <value>Форма выбора группы</value> + </synonym> + <help> + <pages> + <lang>ru</lang> + </pages> + </help> + <usePurposes>PersonalComputer</usePurposes> + <usePurposes>MobileDevice</usePurposes> + </forms> + <forms uuid="21fad9b6-44df-417c-ba18-de4b8af98a34"> + <name>ФормаГруппы</name> + <synonym> + <key>ru</key> + <value>Форма группы</value> + </synonym> + <usePurposes>PersonalComputer</usePurposes> + <usePurposes>MobileDevice</usePurposes> + </forms> <forms uuid="f5ef3f75-7d12-4284-844f-54d19d1f7e2f"> <name>ФормаСписка</name> <synonym> @@ -746,36 +788,4 @@ <usePurposes>PersonalComputer</usePurposes> <usePurposes>MobileDevice</usePurposes> </forms> - <forms uuid="21fad9b6-44df-417c-ba18-de4b8af98a34"> - <name>ФормаГруппы</name> - <synonym> - <key>ru</key> - <value>Форма группы</value> - </synonym> - <usePurposes>PersonalComputer</usePurposes> - <usePurposes>MobileDevice</usePurposes> - </forms> - <forms uuid="11c086b0-c646-4701-983d-c38758286354"> - <name>ФормаВыбораГруппы</name> - <synonym> - <key>ru</key> - <value>Форма выбора группы</value> - </synonym> - <help> - <pages> - <lang>ru</lang> - </pages> - </help> - <usePurposes>PersonalComputer</usePurposes> - <usePurposes>MobileDevice</usePurposes> - </forms> - <forms uuid="826c2821-147d-4aaf-910c-acfbdb58a29f"> - <name>ИсправлениеВидовКонтактнойИнформации</name> - <synonym> - <key>ru</key> - <value>Исправление видов контактной информации</value> - </synonym> - <usePurposes>PersonalComputer</usePurposes> - <usePurposes>MobileDevice</usePurposes> - </forms> </mdclass:Catalog> diff --git a/SSL/src/Catalogs/ВидыПроверок/ВидыПроверок.mdo b/SSL/src/Catalogs/ВидыПроверок/ВидыПроверок.mdo index 10a4accaf..f8ffc42e4 100644 --- a/SSL/src/Catalogs/ВидыПроверок/ВидыПроверок.mdo +++ b/SSL/src/Catalogs/ВидыПроверок/ВидыПроверок.mdo @@ -162,7 +162,7 @@ <scale>2</scale> </numberQualifiers> <stringQualifiers> - <length>64</length> + <length>128</length> </stringQualifiers> <dateQualifiers/> </type> @@ -194,7 +194,7 @@ <scale>2</scale> </numberQualifiers> <stringQualifiers> - <length>64</length> + <length>128</length> </stringQualifiers> <dateQualifiers/> </type> @@ -226,7 +226,7 @@ <scale>2</scale> </numberQualifiers> <stringQualifiers> - <length>64</length> + <length>128</length> </stringQualifiers> <dateQualifiers/> </type> @@ -257,7 +257,7 @@ <scale>2</scale> </numberQualifiers> <stringQualifiers> - <length>64</length> + <length>128</length> </stringQualifiers> <dateQualifiers/> </type> @@ -288,7 +288,7 @@ <scale>2</scale> </numberQualifiers> <stringQualifiers> - <length>64</length> + <length>128</length> </stringQualifiers> <dateQualifiers/> </type> diff --git a/SSL/src/Catalogs/ВнешниеКомпоненты/Forms/ОбновлениеКомпонентСПортала1СИТС/Module.bsl b/SSL/src/Catalogs/ВнешниеКомпоненты/Forms/ОбновлениеКомпонентСПортала1СИТС/Module.bsl index 96d30de6a..8ed86daa2 100644 --- a/SSL/src/Catalogs/ВнешниеКомпоненты/Forms/ОбновлениеКомпонентСПортала1СИТС/Module.bsl +++ b/SSL/src/Catalogs/ВнешниеКомпоненты/Forms/ОбновлениеКомпонентСПортала1СИТС/Module.bsl @@ -11,7 +11,9 @@ Процедура ПриСозданииНаСервере(Отказ, СтандартнаяОбработка) Если ТипЗнч(Параметры.ОбновляемыеКомпоненты) <> Тип("Массив") Или Параметры.ОбновляемыеКомпоненты.Количество() = 0 Тогда - ВызватьИсключение НСтр("ru = 'Некорректное значение параметра формы ОбновляемыеКомпоненты.'"); + ВызватьИсключение СтроковыеФункцииКлиентСервер.ПодставитьПараметрыВСтроку( + НСтр("ru = 'Некорректное значение параметра %1 формы %2.'"), + "ОбновляемыеКомпоненты", "ОбновлениеКомпонентСПортала1СИТС"); КонецЕсли; ДанныеАутентификацииПорталаСохранены = ДанныеАутентификацииПорталаСохранены(); diff --git a/SSL/src/Catalogs/ВнешниеКомпоненты/Forms/ФормаЭлемента/Form.form b/SSL/src/Catalogs/ВнешниеКомпоненты/Forms/ФормаЭлемента/Form.form index 9d4a440d7..f25b19d6d 100644 --- a/SSL/src/Catalogs/ВнешниеКомпоненты/Forms/ФормаЭлемента/Form.form +++ b/SSL/src/Catalogs/ВнешниеКомпоненты/Forms/ФормаЭлемента/Form.form @@ -34,7 +34,7 @@ <autoMaxHeight>true</autoMaxHeight> <extInfo xsi:type="form:PictureDecorationExtInfo"> <picture xsi:type="core:PictureRef"> - <picture>CommonPicture.Информация</picture> + <picture>StdPicture.Information</picture> </picture> </extInfo> </items> diff --git a/SSL/src/Catalogs/ВнешниеКомпоненты/ManagerModule.bsl b/SSL/src/Catalogs/ВнешниеКомпоненты/ManagerModule.bsl index 191215576..31036dec2 100644 --- a/SSL/src/Catalogs/ВнешниеКомпоненты/ManagerModule.bsl +++ b/SSL/src/Catalogs/ВнешниеКомпоненты/ManagerModule.bsl @@ -120,7 +120,7 @@ КонецПроцедуры -// Обработчик обновления на версию 3.1.5.282: +// Обработчик обновления на версию 3.1.6.48: // - заполняет реквизиты совместимости для браузеров MacOS в справочнике "Внешние компоненты". // Процедура ОбработатьДанныеДляПереходаНаНовуюВерсию(Параметры) Экспорт diff --git a/SSL/src/Catalogs/ВнешниеПользователи/Forms/ФормаСписка/Module.bsl b/SSL/src/Catalogs/ВнешниеПользователи/Forms/ФормаСписка/Module.bsl index a4ff74a67..5d30f4269 100644 --- a/SSL/src/Catalogs/ВнешниеПользователи/Forms/ФормаСписка/Module.bsl +++ b/SSL/src/Catalogs/ВнешниеПользователи/Forms/ФормаСписка/Module.bsl @@ -852,8 +852,18 @@ Процедура ИзменитьПараметрыРасширеннойФормыПодбора() // Загрузка списка выбранных пользователей. - ПараметрыРасширеннойФормыПодбора = ПолучитьИзВременногоХранилища(Параметры.ПараметрыРасширеннойФормыПодбора); - ВыбранныеПользователиИГруппы.Загрузить(ПараметрыРасширеннойФормыПодбора.ВыбранныеПользователи); + Если ЗначениеЗаполнено(Параметры.ПараметрыРасширеннойФормыПодбора) Тогда + ПараметрыРасширеннойФормыПодбора = ПолучитьИзВременногоХранилища(Параметры.ПараметрыРасширеннойФормыПодбора); + Иначе + ПараметрыРасширеннойФормыПодбора = Параметры; + КонецЕсли; + Если ТипЗнч(ПараметрыРасширеннойФормыПодбора.ВыбранныеПользователи) = Тип("ТаблицаЗначений") Тогда + ВыбранныеПользователиИГруппы.Загрузить(ПараметрыРасширеннойФормыПодбора.ВыбранныеПользователи); + Иначе + Для Каждого ВыбранныйПользователь Из ПараметрыРасширеннойФормыПодбора.ВыбранныеПользователи Цикл + ВыбранныеПользователиИГруппы.Добавить().Пользователь = ВыбранныйПользователь; + КонецЦикла; + КонецЕсли; ХранимыеПараметры.Вставить("ЗаголовокФормыПодбора", ПараметрыРасширеннойФормыПодбора.ЗаголовокФормыПодбора); Пользователи.ЗаполнитьНомераКартинокПользователей(ВыбранныеПользователиИГруппы, "Пользователь", "НомерКартинки"); // Установка параметров расширенной формы подбора. diff --git a/SSL/src/Catalogs/ВнешниеПользователи/ManagerModule.bsl b/SSL/src/Catalogs/ВнешниеПользователи/ManagerModule.bsl index e59ebdf05..31d310c16 100644 --- a/SSL/src/Catalogs/ВнешниеПользователи/ManagerModule.bsl +++ b/SSL/src/Catalogs/ВнешниеПользователи/ManagerModule.bsl @@ -154,15 +154,15 @@ Если ОбъектовОбработано = 0 И ПроблемныхОбъектов <> 0 Тогда ТекстСообщения = СтроковыеФункцииКлиентСервер.ПодставитьПараметрыВСтроку( - НСтр("ru = 'Процедуре ОбработатьДанныеДляПереходаНаНовуюВерсию не удалось обработать некоторых внешних пользователей (пропущены): %1 - |%2'"), ПроблемныхОбъектов, СтрСоединить(СписокОшибок, Символы.ПС)); + НСтр("ru = 'Не удалось обработать некоторых внешних пользователей (пропущены): %1 + |%2'"), ПроблемныхОбъектов, СтрСоединить(СписокОшибок, Символы.ПС)); ВызватьИсключение ТекстСообщения; Иначе ЗаписьЖурналаРегистрации(ОбновлениеИнформационнойБазы.СобытиеЖурналаРегистрации(), УровеньЖурналаРегистрации.Информация, Метаданные.Справочники.ВнешниеПользователи,, СтроковыеФункцииКлиентСервер.ПодставитьПараметрыВСтроку( - НСтр("ru = 'Процедура ОбработатьДанныеДляПереходаНаНовуюВерсию обработала очередную порцию внешних пользователей: %1'"), - ОбъектовОбработано)); + НСтр("ru = 'Обработана очередная порция внешних пользователей: %1'"), + ОбъектовОбработано)); КонецЕсли; КонецПроцедуры diff --git a/SSL/src/Catalogs/ВопросыШаблонаАнкеты/ManagerModule.bsl b/SSL/src/Catalogs/ВопросыШаблонаАнкеты/ManagerModule.bsl index 9a8489e11..92d6a713e 100644 --- a/SSL/src/Catalogs/ВопросыШаблонаАнкеты/ManagerModule.bsl +++ b/SSL/src/Catalogs/ВопросыШаблонаАнкеты/ManagerModule.bsl @@ -83,7 +83,7 @@ ПроблемныхОбъектов = ПроблемныхОбъектов + 1; ТекстСообщения = СтроковыеФункцииКлиентСервер.ПодставитьПараметрыВСтроку( - НСтр("ru = 'Не удалось обработать вопрос шаблона анкеты: %1 по причине: + НСтр("ru = 'Не удалось обработать вопрос шаблона анкеты %1 по причине: |%2'"), Выборка.Ссылка, ПодробноеПредставлениеОшибки(ИнформацияОбОшибке())); ЗаписьЖурналаРегистрации(ОбновлениеИнформационнойБазы.СобытиеЖурналаРегистрации(), УровеньЖурналаРегистрации.Предупреждение, @@ -95,13 +95,13 @@ Параметры.ОбработкаЗавершена = ОбновлениеИнформационнойБазы.ОбработкаДанныхЗавершена(Параметры.Очередь, "Справочник.ВопросыШаблонаАнкеты"); Если ОбъектовОбработано = 0 И ПроблемныхОбъектов <> 0 Тогда ТекстСообщения = СтроковыеФункцииКлиентСервер.ПодставитьПараметрыВСтроку( - НСтр("ru = 'Процедуре ЗаполнитьРеквизитСпособОтображенияПодсказки не удалось обработать некоторые вопросы шаблона анкеты (пропущены): %1'"), + НСтр("ru = 'Не удалось обработать некоторые вопросы шаблона анкеты (пропущены): %1'"), ПроблемныхОбъектов); ВызватьИсключение ТекстСообщения; Иначе ЗаписьЖурналаРегистрации(ОбновлениеИнформационнойБазы.СобытиеЖурналаРегистрации(), УровеньЖурналаРегистрации.Информация, Метаданные.Справочники.ВопросыШаблонаАнкеты,, - СтроковыеФункцииКлиентСервер.ПодставитьПараметрыВСтроку(НСтр("ru = 'Процедура ЗаполнитьРеквизитСпособОтображенияПодсказки обработала очередную порцию вопросов шаблона анкеты: %1'"), + СтроковыеФункцииКлиентСервер.ПодставитьПараметрыВСтроку(НСтр("ru = 'Обработана очередная порция вопросов шаблона анкеты: %1'"), ОбъектовОбработано)); КонецЕсли; diff --git a/SSL/src/Catalogs/ГруппыДоступа/Forms/ФормаЭлемента/Form.form b/SSL/src/Catalogs/ГруппыДоступа/Forms/ФормаЭлемента/Form.form index 5afc7537a..3940f236b 100644 --- a/SSL/src/Catalogs/ГруппыДоступа/Forms/ФормаЭлемента/Form.form +++ b/SSL/src/Catalogs/ГруппыДоступа/Forms/ФормаЭлемента/Form.form @@ -1741,6 +1741,10 @@ <event>OnOpen</event> <name>ПриОткрытии</name> </handlers> + <handlers> + <event>OnReopen</event> + <name>ПриПовторномОткрытии</name> + </handlers> <handlers> <event>OnCreateAtServer</event> <name>ПриСозданииНаСервере</name> @@ -2146,6 +2150,32 @@ <common>true</common> </edit> </attributes> + <attributes> + <name>ПерейтиКВидуДоступа</name> + <id>11</id> + <valueType> + <types>AnyRef</types> + </valueType> + <view> + <common>true</common> + </view> + <edit> + <common>true</common> + </edit> + </attributes> + <attributes> + <name>ПерейтиКЗначениюДоступа</name> + <id>12</id> + <valueType> + <types>AnyRef</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 8371b921a..9d51d3a4c 100644 --- a/SSL/src/Catalogs/ГруппыДоступа/Forms/ФормаЭлемента/Module.bsl +++ b/SSL/src/Catalogs/ГруппыДоступа/Forms/ФормаЭлемента/Module.bsl @@ -63,6 +63,9 @@ Элементы.ФормаЗаписатьИЗакрыть.Доступность = Не ТолькоПросмотр И ПравоДоступа("Редактирование", Метаданные.Справочники.ГруппыДоступа); + Параметры.Свойство("ПерейтиКВидуДоступа", ПерейтиКВидуДоступа); + Параметры.Свойство("ПерейтиКЗначениюДоступа", ПерейтиКЗначениюДоступа); + КонецПроцедуры &НаКлиенте @@ -122,6 +125,17 @@ КонецЕсли; КонецЕсли; + Если ЗначениеЗаполнено(ПерейтиКЗначениюДоступа) Тогда + ПодключитьОбработчикОжидания("ПерейтиКЗначениюДоступа", 0.1, Истина); + КонецЕсли; + +КонецПроцедуры + +&НаКлиенте +Процедура ПриПовторномОткрытии() + + ПодключитьОбработчикОжидания("ПерейтиКЗначениюДоступа", 0.1, Истина); + КонецПроцедуры &НаСервере @@ -1550,4 +1564,29 @@ КонецПроцедуры +&НаКлиенте +Процедура ПерейтиКЗначениюДоступа() + + Если ЗначениеЗаполнено(ПерейтиКЗначениюДоступа) Тогда + Элементы.ПользователиИДоступ.ТекущаяСтраница = Элементы.Доступ; + ТекущийЭлемент = Элементы.Доступ; + Отбор = Новый Структура("ВидДоступа", ПерейтиКВидуДоступа); + НайденныеСтроки = Объект.ВидыДоступа.НайтиСтроки(Отбор); + Если НайденныеСтроки.Количество() = 1 Тогда + ТекущийЭлемент = Элементы.ВидыДоступаВидДоступаПредставление; + Элементы.ВидыДоступа.ТекущаяСтрока = НайденныеСтроки[0].ПолучитьИдентификатор(); + Отбор.Вставить("ЗначениеДоступа", ПерейтиКЗначениюДоступа); + НайденныеСтроки = Объект.ЗначенияДоступа.НайтиСтроки(Отбор); + Если НайденныеСтроки.Количество() = 1 Тогда + ТекущийЭлемент = Элементы.ЗначенияДоступаЗначениеДоступа; + Элементы.ЗначенияДоступа.ТекущаяСтрока = НайденныеСтроки[0].ПолучитьИдентификатор(); + КонецЕсли; + КонецЕсли; + КонецЕсли; + + ПерейтиКВидуДоступа = Неопределено; + ПерейтиКЗначениюДоступа = Неопределено; + +КонецПроцедуры + #КонецОбласти diff --git a/SSL/src/Catalogs/ГруппыДоступа/ManagerModule.bsl b/SSL/src/Catalogs/ГруппыДоступа/ManagerModule.bsl index 09d8635c0..31fe9c919 100644 --- a/SSL/src/Catalogs/ГруппыДоступа/ManagerModule.bsl +++ b/SSL/src/Catalogs/ГруппыДоступа/ManagerModule.bsl @@ -1219,19 +1219,16 @@ Если ОбъектовОбработано = 0 И ПроблемныхОбъектов <> 0 Тогда ТекстСообщения = СтроковыеФункцииКлиентСервер.ПодставитьПараметрыВСтроку( - НСтр("ru = 'Процедуре Справочники.ГруппыДоступа.ОбработатьДанныеДляПереходаНаНовуюВерсию не удалось - |обновить вспомогательные данные некоторых групп доступа (пропущены): %1'"), + НСтр("ru = 'Не удалось обновить вспомогательные данные некоторых групп доступа (пропущены): %1'"), ПроблемныхОбъектов); - ВызватьИсключение ТекстСообщения; Иначе ЗаписьЖурналаРегистрации(ОбновлениеИнформационнойБазы.СобытиеЖурналаРегистрации(), УровеньЖурналаРегистрации.Информация, - Метаданные.НайтиПоПолномуИмени("Справочник.ГруппыДоступа"),, + Метаданные.Справочники.ГруппыДоступа,, СтроковыеФункцииКлиентСервер.ПодставитьПараметрыВСтроку( - НСтр("ru = 'Процедура Справочники.ГруппыДоступа.ОбработатьДанныеДляПереходаНаНовуюВерсию - |обработала очередную порцию групп доступа: %1'"), - ОбъектовОбработано)); + НСтр("ru = 'Обработана очередная порция групп доступа: %1'"), + ОбъектовОбработано)); КонецЕсли; Параметры.ОбработкаЗавершена = ОбработкаЗавершена; diff --git a/SSL/src/Catalogs/ЗначенияСвойствОбъектов/Forms/ФормаСписка/Form.form b/SSL/src/Catalogs/ЗначенияСвойствОбъектов/Forms/ФормаСписка/Form.form index ff4576778..794399ede 100644 --- a/SSL/src/Catalogs/ЗначенияСвойствОбъектов/Forms/ФормаСписка/Form.form +++ b/SSL/src/Catalogs/ЗначенияСвойствОбъектов/Forms/ФормаСписка/Form.form @@ -706,24 +706,17 @@ <main>true</main> <extInfo xsi:type="form:DynamicListExtInfo"> <queryText>ВЫБРАТЬ - Значения.Ссылка, - Значения.ВерсияДанных, - Значения.ПометкаУдаления, - Значения.Предопределенный, - Значения.Владелец, - Значения.Родитель, - Значения.ЭтоГруппа, - ВЫБОР - КОГДА &ЭтоОсновнойЯзык - ТОГДА Значения.Наименование - ИНАЧЕ ВЫРАЗИТЬ(ЕСТЬNULL(ЗначенияПредставления.Наименование, Значения.Наименование) КАК СТРОКА(150)) - КОНЕЦ КАК Наименование, - Значения.Вес + ЗначенияПереопределяемый.Ссылка, + ЗначенияПереопределяемый.ВерсияДанных, + ЗначенияПереопределяемый.ПометкаУдаления, + ЗначенияПереопределяемый.Предопределенный, + ЗначенияПереопределяемый.Владелец, + ЗначенияПереопределяемый.Родитель, + ЗначенияПереопределяемый.ЭтоГруппа, + ЗначенияПереопределяемый.Наименование КАК Наименование, + ЗначенияПереопределяемый.Вес ИЗ - Справочник.ЗначенияСвойствОбъектов КАК Значения - ЛЕВОЕ СОЕДИНЕНИЕ Справочник.ЗначенияСвойствОбъектов.Представления КАК ЗначенияПредставления - ПО (ЗначенияПредставления.Ссылка = Значения.Ссылка) - И ЗначенияПредставления.КодЯзыка = &КодЯзыка</queryText> + Справочник.ЗначенияСвойствОбъектов КАК ЗначенияПереопределяемый</queryText> <mainTable>Catalog.ЗначенияСвойствОбъектов</mainTable> <dynamicDataRead>true</dynamicDataRead> <autoFillAvailableFields>true</autoFillAvailableFields> diff --git a/SSL/src/Catalogs/ЗначенияСвойствОбъектов/Forms/ФормаСписка/Module.bsl b/SSL/src/Catalogs/ЗначенияСвойствОбъектов/Forms/ФормаСписка/Module.bsl index 287bccb2e..8da2cb451 100644 --- a/SSL/src/Catalogs/ЗначенияСвойствОбъектов/Forms/ФормаСписка/Module.bsl +++ b/SSL/src/Catalogs/ЗначенияСвойствОбъектов/Forms/ФормаСписка/Module.bsl @@ -49,10 +49,33 @@ ПриИзмененииСвойства(); - ОбщегоНазначенияКлиентСервер.УстановитьПараметрДинамическогоСписка( - Список, "ЭтоОсновнойЯзык", ТекущийЯзык() = Метаданные.ОсновнойЯзык, Истина); - ОбщегоНазначенияКлиентСервер.УстановитьПараметрДинамическогоСписка( - Список, "КодЯзыка", ТекущийЯзык().КодЯзыка, Истина); + СуффиксТекущегоЯзыка = ОбщегоНазначения.СуффиксЯзыкаТекущегоПользователя(); + Если СуффиксТекущегоЯзыка = Неопределено Тогда + + СвойстваСписка = ОбщегоНазначения.СтруктураСвойствДинамическогоСписка(); + + СвойстваСписка.ТекстЗапроса = СтрЗаменить(Список.ТекстЗапроса, "ЗначенияПереопределяемый.Наименование КАК Наименование", + "ВЫРАЗИТЬ(ЕСТЬNULL(ЗначенияПредставления.Наименование, ЗначенияПереопределяемый.Наименование) КАК СТРОКА(150)) КАК Наименование"); + + СвойстваСписка.ТекстЗапроса = СвойстваСписка.ТекстЗапроса + " + | ЛЕВОЕ СОЕДИНЕНИЕ Справочник.ЗначенияСвойствОбъектов.Представления КАК ЗначенияПредставления + | ПО (ЗначенияПредставления.Ссылка = ЗначенияПереопределяемый.Ссылка) + | И ЗначенияПредставления.КодЯзыка = &КодЯзыка"; + + ОбщегоНазначения.УстановитьСвойстваДинамическогоСписка(Элементы.Список, СвойстваСписка); + + ОбщегоНазначенияКлиентСервер.УстановитьПараметрДинамическогоСписка( + Список, "КодЯзыка", ТекущийЯзык().КодЯзыка, Истина); + + Иначе + + Если ОбщегоНазначения.ПодсистемаСуществует("СтандартныеПодсистемы.Мультиязычность") Тогда + МодульМультиязычностьСервер = ОбщегоНазначения.ОбщийМодуль("МультиязычностьСервер"); + МодульМультиязычностьСервер.ПриСозданииНаСервере(ЭтотОбъект); + КонецЕсли; + + КонецЕсли; + КонецПроцедуры &НаКлиенте @@ -157,15 +180,8 @@ СтрокаЗаголовка = ""; Если ЗначениеЗаполнено(Свойство) Тогда - Если ТекущийЯзык() = Метаданные.ОсновнойЯзык Тогда - СтрокаЗаголовка = ОбщегоНазначения.ЗначениеРеквизитаОбъекта( - Свойство, "ЗаголовокФормыВыбораЗначения"); - Иначе - Реквизиты = Новый Массив; - Реквизиты.Добавить("ЗаголовокФормыВыбораЗначения"); - ЗначенияРеквизитов = УправлениеСвойствамиСлужебный.ЛокализованныеЗначенияРеквизитов(Свойство, Реквизиты); - СтрокаЗаголовка = ЗначенияРеквизитов.ЗаголовокФормыВыбораЗначения; - КонецЕсли; + СтрокаЗаголовка = ОбщегоНазначения.ЗначениеРеквизитаОбъекта( + Свойство, "ЗаголовокФормыВыбораЗначения",, ТекущийЯзык().КодЯзыка); КонецЕсли; Если ПустаяСтрока(СтрокаЗаголовка) Тогда diff --git a/SSL/src/Catalogs/ЗначенияСвойствОбъектов/Forms/ФормаЭлемента/Module.bsl b/SSL/src/Catalogs/ЗначенияСвойствОбъектов/Forms/ФормаЭлемента/Module.bsl index 0399e1966..41e1f49ee 100644 --- a/SSL/src/Catalogs/ЗначенияСвойствОбъектов/Forms/ФормаЭлемента/Module.bsl +++ b/SSL/src/Catalogs/ЗначенияСвойствОбъектов/Forms/ФормаЭлемента/Module.bsl @@ -136,15 +136,8 @@ &НаСервере Процедура УстановитьЗаголовок() - Если ТекущийЯзык() = Метаданные.ОсновнойЯзык Тогда - ЗначенияРеквизитов = ОбщегоНазначения.ЗначенияРеквизитовОбъекта( - Объект.Владелец, "Заголовок, ЗаголовокФормыЗначения"); - Иначе - Реквизиты = Новый Массив; - Реквизиты.Добавить("Заголовок"); - Реквизиты.Добавить("ЗаголовокФормыЗначения"); - ЗначенияРеквизитов = УправлениеСвойствамиСлужебный.ЛокализованныеЗначенияРеквизитов(Объект.Владелец, Реквизиты); - КонецЕсли; + ЗначенияРеквизитов = ОбщегоНазначения.ЗначенияРеквизитовОбъекта( + Объект.Владелец, "Заголовок, ЗаголовокФормыЗначения",, ТекущийЯзык().КодЯзыка); ИмяСвойства = СокрЛП(ЗначенияРеквизитов.ЗаголовокФормыЗначения); diff --git a/SSL/src/Catalogs/ЗначенияСвойствОбъектовИерархия/Forms/ФормаСписка/Form.form b/SSL/src/Catalogs/ЗначенияСвойствОбъектовИерархия/Forms/ФормаСписка/Form.form index b6ea4d1bf..dbf2ec8cc 100644 --- a/SSL/src/Catalogs/ЗначенияСвойствОбъектовИерархия/Forms/ФормаСписка/Form.form +++ b/SSL/src/Catalogs/ЗначенияСвойствОбъектовИерархия/Forms/ФормаСписка/Form.form @@ -672,23 +672,16 @@ <main>true</main> <extInfo xsi:type="form:DynamicListExtInfo"> <queryText>ВЫБРАТЬ - Значения.Ссылка, - Значения.ВерсияДанных, - Значения.ПометкаУдаления, - Значения.Предопределенный, - Значения.Владелец, - Значения.Родитель, - ВЫБОР - КОГДА &ЭтоОсновнойЯзык - ТОГДА Значения.Наименование - ИНАЧЕ ВЫРАЗИТЬ(ЕСТЬNULL(ЗначенияПредставления.Наименование, Значения.Наименование) КАК СТРОКА(150)) - КОНЕЦ КАК Наименование, - Значения.Вес + ЗначенияПереопределяемый.Ссылка, + ЗначенияПереопределяемый.ВерсияДанных, + ЗначенияПереопределяемый.ПометкаУдаления, + ЗначенияПереопределяемый.Предопределенный, + ЗначенияПереопределяемый.Владелец, + ЗначенияПереопределяемый.Родитель, + ЗначенияПереопределяемый.Наименование КАК Наименование, + ЗначенияПереопределяемый.Вес ИЗ - Справочник.ЗначенияСвойствОбъектовИерархия КАК Значения - ЛЕВОЕ СОЕДИНЕНИЕ Справочник.ЗначенияСвойствОбъектовИерархия.Представления КАК ЗначенияПредставления - ПО (ЗначенияПредставления.Ссылка = Значения.Ссылка) - И ЗначенияПредставления.КодЯзыка = &КодЯзыка</queryText> + Справочник.ЗначенияСвойствОбъектовИерархия КАК ЗначенияПереопределяемый</queryText> <mainTable>Catalog.ЗначенияСвойствОбъектовИерархия</mainTable> <dynamicDataRead>true</dynamicDataRead> <autoFillAvailableFields>true</autoFillAvailableFields> diff --git a/SSL/src/Catalogs/ЗначенияСвойствОбъектовИерархия/Forms/ФормаСписка/Module.bsl b/SSL/src/Catalogs/ЗначенияСвойствОбъектовИерархия/Forms/ФормаСписка/Module.bsl index 278b6adb6..b89790592 100644 --- a/SSL/src/Catalogs/ЗначенияСвойствОбъектовИерархия/Forms/ФормаСписка/Module.bsl +++ b/SSL/src/Catalogs/ЗначенияСвойствОбъектовИерархия/Forms/ФормаСписка/Module.bsl @@ -32,10 +32,32 @@ ПриИзмененииСвойства(); - ОбщегоНазначенияКлиентСервер.УстановитьПараметрДинамическогоСписка( - Список, "ЭтоОсновнойЯзык", ТекущийЯзык() = Метаданные.ОсновнойЯзык, Истина); - ОбщегоНазначенияКлиентСервер.УстановитьПараметрДинамическогоСписка( - Список, "КодЯзыка", ТекущийЯзык().КодЯзыка, Истина); + СуффиксТекущегоЯзыка = ОбщегоНазначения.СуффиксЯзыкаТекущегоПользователя(); + Если СуффиксТекущегоЯзыка = Неопределено Тогда + + СвойстваСписка = ОбщегоНазначения.СтруктураСвойствДинамическогоСписка(); + + СвойстваСписка.ТекстЗапроса = Список.ТекстЗапроса + " + |ЛЕВОЕ СОЕДИНЕНИЕ Справочник.ЗначенияСвойствОбъектовИерархия.Представления КАК ЗначенияПредставления + | ПО (ЗначенияПредставления.Ссылка = ЗначенияПереопределяемый.Ссылка) + | И ЗначенияПредставления.КодЯзыка = &КодЯзыка"; + + СвойстваСписка.ТекстЗапроса = СтрЗаменить(СвойстваСписка.ТекстЗапроса, "ЗначенияПереопределяемый.Наименование КАК Наименование", + "ВЫРАЗИТЬ(ЕСТЬNULL(ЗначенияПредставления.Наименование, ЗначенияПереопределяемый.Наименование) КАК СТРОКА(150)) КАК Наименование"); + + ОбщегоНазначения.УстановитьСвойстваДинамическогоСписка(Элементы.Список, СвойстваСписка); + + ОбщегоНазначенияКлиентСервер.УстановитьПараметрДинамическогоСписка( + Список, "КодЯзыка", ТекущийЯзык().КодЯзыка, Истина); + + ИначеЕсли ЗначениеЗаполнено(СуффиксТекущегоЯзыка) Тогда + + Если ОбщегоНазначения.ПодсистемаСуществует("СтандартныеПодсистемы.Мультиязычность") Тогда + МодульМультиязычностьСервер = ОбщегоНазначения.ОбщийМодуль("МультиязычностьСервер"); + МодульМультиязычностьСервер.ПриСозданииНаСервере(ЭтотОбъект); + КонецЕсли; + КонецЕсли; + КонецПроцедуры @@ -111,15 +133,8 @@ СтрокаЗаголовка = ""; Если ЗначениеЗаполнено(Свойство) Тогда - Если ТекущийЯзык() = Метаданные.ОсновнойЯзык Тогда - СтрокаЗаголовка = ОбщегоНазначения.ЗначениеРеквизитаОбъекта( - Свойство, "ЗаголовокФормыВыбораЗначения"); - Иначе - Реквизиты = Новый Массив; - Реквизиты.Добавить("ЗаголовокФормыВыбораЗначения"); - ЗначенияРеквизитов = УправлениеСвойствамиСлужебный.ЛокализованныеЗначенияРеквизитов(Свойство, Реквизиты); - СтрокаЗаголовка = ЗначенияРеквизитов.ЗаголовокФормыВыбораЗначения; - КонецЕсли; + СтрокаЗаголовка = ОбщегоНазначения.ЗначениеРеквизитаОбъекта( + Свойство, "ЗаголовокФормыВыбораЗначения",, ТекущийЯзык().КодЯзыка); КонецЕсли; Если ПустаяСтрока(СтрокаЗаголовка) Тогда diff --git a/SSL/src/Catalogs/ЗначенияСвойствОбъектовИерархия/Forms/ФормаЭлемента/Module.bsl b/SSL/src/Catalogs/ЗначенияСвойствОбъектовИерархия/Forms/ФормаЭлемента/Module.bsl index 501c92c9c..79b505db3 100644 --- a/SSL/src/Catalogs/ЗначенияСвойствОбъектовИерархия/Forms/ФормаЭлемента/Module.bsl +++ b/SSL/src/Catalogs/ЗначенияСвойствОбъектовИерархия/Forms/ФормаЭлемента/Module.bsl @@ -136,16 +136,9 @@ &НаСервере Процедура УстановитьЗаголовок() - Если ТекущийЯзык() = Метаданные.ОсновнойЯзык Тогда - ЗначенияРеквизитов = ОбщегоНазначения.ЗначенияРеквизитовОбъекта( - Объект.Владелец, "Заголовок, ЗаголовокФормыЗначения"); - Иначе - Реквизиты = Новый Массив; - Реквизиты.Добавить("Заголовок"); - Реквизиты.Добавить("ЗаголовокФормыЗначения"); - ЗначенияРеквизитов = УправлениеСвойствамиСлужебный.ЛокализованныеЗначенияРеквизитов(Объект.Владелец, Реквизиты); - КонецЕсли; - + ЗначенияРеквизитов = ОбщегоНазначения.ЗначенияРеквизитовОбъекта( + Объект.Владелец, "Заголовок, ЗаголовокФормыЗначения",, ТекущийЯзык().КодЯзыка); + ИмяСвойства = СокрЛП(ЗначенияРеквизитов.ЗаголовокФормыЗначения); Если НЕ ПустаяСтрока(ИмяСвойства) Тогда diff --git a/SSL/src/Catalogs/ИдентификаторыОбъектовМетаданных/ManagerModule.bsl b/SSL/src/Catalogs/ИдентификаторыОбъектовМетаданных/ManagerModule.bsl index 28449e799..2b8886a88 100644 --- a/SSL/src/Catalogs/ИдентификаторыОбъектовМетаданных/ManagerModule.bsl +++ b/SSL/src/Catalogs/ИдентификаторыОбъектовМетаданных/ManagerModule.bsl @@ -421,6 +421,17 @@ КонецФункции +// Возвращаемое значение: +// Массив из Строка - имена коллекций объектов метаданных, которые поддерживаются в справочнике. +// +Функция ДопустимыеКоллекции() Экспорт + + СвойстваКоллекций = СтандартныеПодсистемыПовтИсп.СвойстваКоллекцийОбъектовМетаданных(); + + Возврат СвойстваКоллекций.ВыгрузитьКолонку("Имя"); + +КонецФункции + #КонецОбласти #Область СлужебныеПроцедурыИФункции @@ -3549,7 +3560,10 @@ ОбъектМетаданных = Метаданные[ИмяКоллекции].Найти(ИмяОбъекта); Если ОбъектМетаданных = Неопределено Тогда - Возврат ПолноеИмя; + ОбъектМетаданных = Метаданные.НайтиПоПолномуИмени(ПолноеИмя); + Если ОбъектМетаданных = Неопределено Тогда + Возврат ПолноеИмя; + КонецЕсли; КонецЕсли; Возврат ПредставлениеОбъектаМетаданных(ОбъектМетаданных, Строки[0]); diff --git a/SSL/src/Catalogs/Календари/Forms/ФормаСписка/Form.form b/SSL/src/Catalogs/Календари/Forms/ФормаСписка/Form.form index 7260a5fa2..832c349e6 100644 --- a/SSL/src/Catalogs/Календари/Forms/ФормаСписка/Form.form +++ b/SSL/src/Catalogs/Календари/Forms/ФормаСписка/Form.form @@ -492,9 +492,6 @@ <edit> <common>true</common> </edit> - <notDefaultUseAlwaysAttributes xsi:type="form:DataPath"> - <segments>Список.Ref</segments> - </notDefaultUseAlwaysAttributes> <notDefaultUseAlwaysAttributes xsi:type="form:DataPath"> <segments>Список.ВозможнаяПричина</segments> </notDefaultUseAlwaysAttributes> diff --git a/SSL/src/Catalogs/Календари/Forms/ФормаЭлемента/Form.form b/SSL/src/Catalogs/Календари/Forms/ФормаЭлемента/Form.form index b0c71f375..0efd6cae9 100644 --- a/SSL/src/Catalogs/Календари/Forms/ФормаЭлемента/Form.form +++ b/SSL/src/Catalogs/Календари/Forms/ФормаЭлемента/Form.form @@ -938,7 +938,7 @@ <autoMaxHeight>true</autoMaxHeight> <extInfo xsi:type="form:PictureDecorationExtInfo"> <picture xsi:type="core:PictureRef"> - <picture>CommonPicture.Информация</picture> + <picture>StdPicture.Information</picture> </picture> <fileDragMode>AsFileRef</fileDragMode> </extInfo> diff --git a/SSL/src/Catalogs/КлючевыеОперации/ObjectModule.bsl b/SSL/src/Catalogs/КлючевыеОперации/ObjectModule.bsl index 322d56680..4ec8b7f39 100644 --- a/SSL/src/Catalogs/КлючевыеОперации/ObjectModule.bsl +++ b/SSL/src/Catalogs/КлючевыеОперации/ObjectModule.bsl @@ -55,11 +55,8 @@ ТекстСообщения = НСтр("ru = 'Ключевая операция с приоритетом ""%1"" уже существует (%2).'"); ТекстСообщения = СтрЗаменить(ТекстСообщения, "%1", Строка(Приоритет)); ТекстСообщения = СтрЗаменить(ТекстСообщения, "%2", Выборка.Наименование); - ЗаписьЖурналаРегистрации(НСтр("ru = 'Справочник.КлючевыеОперации.МодульОбъекта.ПередЗаписью'", ОбщегоНазначения.КодОсновногоЯзыка()), - УровеньЖурналаРегистрации.Ошибка, - , - НСтр("ru = 'Оценка производительности'"), - ТекстСообщения); + ЗаписьЖурналаРегистрации(НСтр("ru = 'Оценка производительности'", ОбщегоНазначения.КодОсновногоЯзыка()), + УровеньЖурналаРегистрации.Ошибка,, Выборка.Ссылка, ТекстСообщения); ОценкаПроизводительностиСлужебный.СообщитьПользователю(ТекстСообщения); Отказ = Истина; КонецЕсли; diff --git a/SSL/src/Catalogs/МакетыПечатныхФорм/Forms/УсловияВидимостиВПодменюПечать/Form.form b/SSL/src/Catalogs/МакетыПечатныхФорм/Forms/УсловияВидимостиВПодменюПечать/Form.form new file mode 100644 index 000000000..2007265bd --- /dev/null +++ b/SSL/src/Catalogs/МакетыПечатныхФорм/Forms/УсловияВидимостиВПодменюПечать/Form.form @@ -0,0 +1,589 @@ +<?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> + + + УсловияВидимости + 1 + + <key>ru</key> + <value>Условия видимости</value> + + true + true + + true + + + УсловияВидимости + + None + + УсловияВидимостиПоле + 29 + true + true + + true + + + УсловияВидимости.ПредставлениеПоля + + + УсловияВидимостиПолеРасширеннаяПодсказка + 31 + Label + true + true + + Left + + + + УсловияВидимостиПолеКонтекстноеМеню + 30 + true + + InputField + Enter + true + Left + true + + + ChoiceProcessing + УсловияВидимостиПолеОбработкаВыбора + + true + true + true + true + true + true + true + Normal + + + + УсловияВидимостиВидСравнения + 32 + true + true + + true + + + УсловияВидимости.ПредставлениеВидаСравнения + + + OnChange + УсловияВидимостиВидСравненияПриИзменении + + + УсловияВидимостиВидСравненияРасширеннаяПодсказка + 34 + Label + true + true + + Left + + + + УсловияВидимостиВидСравненияКонтекстноеМеню + 33 + true + + InputField + Enter + true + Left + true + + + StartChoice + УсловияВидимостиВидСравненияНачалоВыбора + + + ChoiceProcessing + УсловияВидимостиВидСравненияОбработкаВыбора + + true + true + true + true + true + true + true + Normal + + + + УсловияВидимостиЗначение + 35 + true + true + + true + + + УсловияВидимости.Значение + + + УсловияВидимостиЗначениеРасширеннаяПодсказка + 37 + Label + true + true + + Left + + + + УсловияВидимостиЗначениеКонтекстноеМеню + 36 + true + + InputField + Enter + true + Left + true + + true + true + true + true + true + true + Normal + + + + УсловияВидимостиКоманднаяПанель + 3 + Left + true + + + OnActivateRow + УсловияВидимостиПриАктивизацииСтроки + + + УсловияВидимостиСтрокаПоиска + 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 + true + + true + true + true + true + true + MultiRow +
true
+ 1 + 1 + AutoUse + AutoUse + true + true + false + true + Auto + Auto + true + true + true + true + AsFileRef + true + +
+ Bottom + true + + ФормаКоманднаяПанель + -1 + + ФормаЗаписатьИЗакрыть + 49 + + <key>ru</key> + <value>ОК</value> + + true + true + + true + + + ФормаЗаписатьИЗакрытьРасширеннаяПодсказка + 50 + Label + true + true + + Left + + + Form.StandardCommand.WriteAndClose + Auto + true + true + true + UserCmds + Auto + + + ФормаОтмена + 47 + true + true + + true + + + ФормаОтменаРасширеннаяПодсказка + 48 + Label + true + true + + Left + + + Form.StandardCommand.Cancel + Normal + Auto + true + true + UserCmds + Auto + + + ФормаСправка + 51 + true + true + + true + + + ФормаСправкаРасширеннаяПодсказка + 52 + Label + true + true + + Left + + + Form.StandardCommand.Help + Normal + Auto + true + true + UserCmds + Auto + InCommandBarAndInAdditionalSubmenu + + Right + + + OnCreateAtServer + ПриСозданииНаСервере + + Abort + ChangeHistory + Close + Copy + CustomizeForm + Delete + Ignore + No + OK + Reread + RestoreValues + Retry + SaveValues + SetDeletionMark + ShowInList + Write + Yes + LockOwner + true + true + true + Vertical + true + true + true + auto + true + + Объект + 1 + + CatalogObject.МакетыПечатныхФорм + + + true + + + true + +
true
+ true +
+ + УсловияВидимости + + <key>ru</key> + <value>Условия видимости</value> + + 2 + + ValueTable + + + true + + + true + + + ПредставлениеПоля + + <key>ru</key> + <value>Поле</value> + + 3 + + String + + + + true + + + true + + + + ПредставлениеВидаСравнения + + <key>ru</key> + <value>Вид сравнения</value> + + 4 + + String + + + + true + + + true + + + + Значение + + <key>ru</key> + <value>Значение</value> + + 5 + + + true + + + true + + + + Поле + 7 + + String + + + + true + + + true + + + + ВидСравнения + 8 + + String + + + + true + + + true + + + + + РеквизитыОбъекта + 11 + + ValueTable + + + true + + + true + + + Поле + 13 + + String + + + + true + + + true + + + + Тип + 14 + + TypeDescription + + + true + + + true + + + + ПредставлениеПоля + 15 + + String + + + + true + + + true + + + + + + + + + + AfterWriteAtServer + ПослеЗаписиНаСервере + + + OnReadAtServer + ПриЧтенииНаСервере + + + BeforeWriteAtServer + ПередЗаписьюНаСервере + + + diff --git a/SSL/src/Catalogs/МакетыПечатныхФорм/Forms/УсловияВидимостиВПодменюПечать/Module.bsl b/SSL/src/Catalogs/МакетыПечатныхФорм/Forms/УсловияВидимостиВПодменюПечать/Module.bsl new file mode 100644 index 000000000..bb1964bba --- /dev/null +++ b/SSL/src/Catalogs/МакетыПечатныхФорм/Forms/УсловияВидимостиВПодменюПечать/Module.bsl @@ -0,0 +1,276 @@ +/////////////////////////////////////////////////////////////////////////////////////////////////////// +// Copyright (c) 2021, ООО 1С-Софт +// Все права защищены. Эта программа и сопроводительные материалы предоставляются +// в соответствии с условиями лицензии Attribution 4.0 International (CC BY 4.0) +// Текст лицензии доступен по ссылке: +// https://creativecommons.org/licenses/by/4.0/legalcode +/////////////////////////////////////////////////////////////////////////////////////////////////////// + +#Область ОбработчикиСобытийФормы + +&НаСервере +Процедура ПриСозданииНаСервере(Отказ, СтандартнаяОбработка) + + УстановитьУсловноеОформление(); + +КонецПроцедуры + +&НаСервере +Процедура ПриЧтенииНаСервере(ТекущийОбъект) + + ЗаполнитьСписокВыбораПоля(); + СписокУсловий = ТекущийОбъект.УсловиеВидимости.Получить(); + + Если ТипЗнч(СписокУсловий) <> Тип("Массив") Тогда + Возврат; + КонецЕсли; + + ИдентификаторыВидовСравнения = ИдентификаторыВидовСравнения(); + ПредставленияВидовСравнения = ПредставленияВидовСравнения(); + + Для Каждого Условие Из СписокУсловий Цикл + ОписаниеПоля = ОписаниеПоля(Условие.Реквизит); + Если ОписаниеПоля = Неопределено Тогда + Продолжить; + КонецЕсли; + + ОписаниеУсловия = УсловияВидимости.Добавить(); + ЗаполнитьЗначенияСвойств(ОписаниеУсловия, ОписаниеПоля); + ОписаниеУсловия.ВидСравнения = ИдентификаторыВидовСравнения[Условие.ВидСравнения]; + ОписаниеУсловия.ПредставлениеВидаСравнения = ПредставленияВидовСравнения[ОписаниеУсловия.ВидСравнения]; + ОписаниеУсловия.Значение = Условие.Значение; + КонецЦикла; + +КонецПроцедуры + +&НаСервере +Процедура ПослеЗаписиНаСервере(ТекущийОбъект, ПараметрыЗаписи) + + ОбновитьПовторноИспользуемыеЗначения(); + +КонецПроцедуры + +&НаСервере +Процедура ПередЗаписьюНаСервере(Отказ, ТекущийОбъект, ПараметрыЗаписи) + + СписокУсловий = Новый Массив; + Для Каждого Условие Из УсловияВидимости Цикл + ОписаниеУсловия = Новый Структура(); + ОписаниеУсловия.Вставить("Реквизит", Условие.Поле); + ОписаниеУсловия.Вставить("ВидСравнения", ВидСравненияКомпоновкиДанных[Условие.ВидСравнения]); + ОписаниеУсловия.Вставить("Значение", Условие.Значение); + + СписокУсловий.Добавить(ОписаниеУсловия); + КонецЦикла; + + ТекущийОбъект.УсловиеВидимости = Новый ХранилищеЗначения(СписокУсловий, Новый СжатиеДанных(9)); + +КонецПроцедуры + +#КонецОбласти + +#Область ОбработчикиСобытийЭлементовТаблицыФормыУсловияВидимости + +&НаКлиенте +Процедура УсловияВидимостиПриАктивизацииСтроки(Элемент) + + УстановитьОграничениеТипа(); + +КонецПроцедуры + +&НаКлиенте +Процедура УсловияВидимостиПолеОбработкаВыбора(Элемент, ВыбранноеЗначение, СтандартнаяОбработка) + + ТекущиеДанные = Элементы.УсловияВидимости.ТекущиеДанные; + ТекущиеДанные.Поле = ВыбранноеЗначение; + Значение = Элементы.УсловияВидимостиПоле.СписокВыбора.НайтиПоЗначению(ВыбранноеЗначение); + ВыбранноеЗначение = Значение.Представление; + + Если ТекущиеДанные.ВидСравнения = "Заполнено" Или ТекущиеДанные.ВидСравнения = "НеЗаполнено" Тогда + ТекущиеДанные.Значение = Неопределено; + КонецЕсли; + + УстановитьОграничениеТипа(); + +КонецПроцедуры + +&НаКлиенте +Процедура УсловияВидимостиВидСравненияНачалоВыбора(Элемент, ДанныеВыбора, СтандартнаяОбработка) + + СтандартнаяОбработка = Ложь; + + ДанныеВыбора = Новый СписокЗначений(); + ДанныеВыбора.Добавить("Равно"); + ДанныеВыбора.Добавить("НеРавно"); + ДанныеВыбора.Добавить("Заполнено"); + ДанныеВыбора.Добавить("НеЗаполнено"); + ДанныеВыбора.Добавить("ВСписке"); + ДанныеВыбора.Добавить("НеВСписке"); + + ПредставленияВидовСравнения = ПредставленияВидовСравнения(); + Для Каждого ОписаниеВидаСравнения Из ДанныеВыбора Цикл + ОписаниеВидаСравнения.Представление = ПредставленияВидовСравнения[ОписаниеВидаСравнения.Значение]; + КонецЦикла; + +КонецПроцедуры + +&НаКлиенте +Процедура УсловияВидимостиВидСравненияОбработкаВыбора(Элемент, ВыбранноеЗначение, СтандартнаяОбработка) + + ТекущиеДанные = Элементы.УсловияВидимости.ТекущиеДанные; + ТекущиеДанные.ВидСравнения = ВыбранноеЗначение; + ВыбранноеЗначение = ПредставленияВидовСравнения()[ВыбранноеЗначение]; + УстановитьОграничениеТипа(); + +КонецПроцедуры + + +&НаКлиенте +Процедура УсловияВидимостиВидСравненияПриИзменении(Элемент) + + УстановитьОграничениеТипа(); + +КонецПроцедуры + +#КонецОбласти + +#Область СлужебныеПроцедурыИФункции + +&НаСервере +Процедура ЗаполнитьСписокВыбораПоля() + + Если Не ЗначениеЗаполнено(Объект.ИсточникДанных) Тогда + Возврат; + КонецЕсли; + + ОбъектМетаданных = ОбщегоНазначения.ОбъектМетаданныхПоИдентификатору(Объект.ИсточникДанных, Ложь); + Если ОбъектМетаданных = Неопределено Тогда + Возврат; + КонецЕсли; + + КоллекцииРеквизитов = Новый Массив; + КоллекцииРеквизитов.Добавить(ОбъектМетаданных.СтандартныеРеквизиты); + КоллекцииРеквизитов.Добавить(ОбъектМетаданных.Реквизиты); + + Для Каждого КоллекцияРеквизитов Из КоллекцииРеквизитов Цикл + Для Каждого Реквизит Из КоллекцияРеквизитов Цикл + ОписаниеРеквизита = РеквизитыОбъекта.Добавить(); + ОписаниеРеквизита.Поле = Реквизит.Имя; + ОписаниеРеквизита.Тип = Реквизит.Тип; + ОписаниеРеквизита.ПредставлениеПоля = Реквизит.Представление(); + + Элементы.УсловияВидимостиПоле.СписокВыбора.Добавить(ОписаниеРеквизита.Поле, ОписаниеРеквизита.ПредставлениеПоля); + КонецЦикла; + КонецЦикла; + + Элементы.УсловияВидимостиПоле.СписокВыбора.СортироватьПоПредставлению(); + +КонецПроцедуры + +&НаКлиентеНаСервереБезКонтекста +Функция ПредставленияВидовСравнения() + + Результат = Новый Соответствие(); + Результат.Вставить("Равно", НСтр("ru = 'Равно'")); + Результат.Вставить("НеРавно", НСтр("ru = 'Не равно'")); + Результат.Вставить("Заполнено", НСтр("ru = 'Заполнено'")); + Результат.Вставить("НеЗаполнено", НСтр("ru = 'Не заполнено'")); + Результат.Вставить("ВСписке", НСтр("ru = 'В списке'")); + Результат.Вставить("НеВСписке", НСтр("ru = 'Не в списке'")); + + Возврат Результат; + +КонецФункции + +&НаСервере +Функция ИдентификаторыВидовСравнения() + + Результат = Новый Соответствие(); + Результат.Вставить(ВидСравненияКомпоновкиДанных.Равно, "Равно"); + Результат.Вставить(ВидСравненияКомпоновкиДанных.НеРавно, "НеРавно"); + Результат.Вставить(ВидСравненияКомпоновкиДанных.Заполнено, "Заполнено"); + Результат.Вставить(ВидСравненияКомпоновкиДанных.НеЗаполнено, "НеЗаполнено"); + Результат.Вставить(ВидСравненияКомпоновкиДанных.ВСписке, "ВСписке"); + Результат.Вставить(ВидСравненияКомпоновкиДанных.НеВСписке, "НеВСписке"); + + Возврат Результат; + +КонецФункции + +&НаКлиенте +Процедура УстановитьОграничениеТипа() + + ТекущиеДанные = Элементы.УсловияВидимости.ТекущиеДанные; + Если ТекущиеДанные = Неопределено Или Не ЗначениеЗаполнено(ТекущиеДанные.Поле) Тогда + Возврат; + КонецЕсли; + + ОграничениеТипа = ТипЗначенияПоля(ТекущиеДанные.Поле); + Если ТекущиеДанные.ВидСравнения = "Заполнено" Или ТекущиеДанные.ВидСравнения = "НеЗаполнено" Тогда + ОграничениеТипа = Новый ОписаниеТипов(); + ТекущиеДанные.Значение = Неопределено; + ИначеЕсли ТекущиеДанные.ВидСравнения = "ВСписке" Или ТекущиеДанные.ВидСравнения = "НеВСписке" Тогда + ОграничениеТипа = Новый ОписаниеТипов("СписокЗначений"); + КонецЕсли; + + Элементы.УсловияВидимостиЗначение.ОграничениеТипа = ОграничениеТипа; + ТекущиеДанные.Значение = ОграничениеТипа.ПривестиЗначение(ТекущиеДанные.Значение); + +КонецПроцедуры + +&НаКлиенте +Функция ТипЗначенияПоля(Поле) + + Тип = Неопределено; + Если ЗначениеЗаполнено(Поле) Тогда + НайденныеСтроки = РеквизитыОбъекта.НайтиСтроки(Новый Структура("Поле", Поле)); + Если НайденныеСтроки.Количество() > 0 Тогда + Тип = НайденныеСтроки[0].Тип; + КонецЕсли; + КонецЕсли; + + Возврат Тип; + +КонецФункции + +&НаСервере +Функция ОписаниеПоля(Поле) + + Если Не ЗначениеЗаполнено(Поле) Тогда + Возврат Неопределено; + КонецЕсли; + + НайденныеСтроки = РеквизитыОбъекта.НайтиСтроки(Новый Структура("Поле", Поле)); + Если НайденныеСтроки.Количество() > 0 Тогда + Возврат НайденныеСтроки[0]; + КонецЕсли; + + Возврат Неопределено; + +КонецФункции + +&НаСервере +Процедура УстановитьУсловноеОформление() + + УсловноеОформление.Элементы.Очистить(); + + // ТолькоПросмотр для видов сравнения Заполнено и НеЗаполнено + + ЭлементОформления = УсловноеОформление.Элементы.Добавить(); + + ОформляемоеПоле = ЭлементОформления.Поля.Элементы.Добавить(); + ОформляемоеПоле.Поле = Новый ПолеКомпоновкиДанных(Элементы.УсловияВидимостиЗначение.Имя); + + ЭлементОтбора = ЭлементОформления.Отбор.Элементы.Добавить(Тип("ЭлементОтбораКомпоновкиДанных")); + ЭлементОтбора.ЛевоеЗначение = Новый ПолеКомпоновкиДанных("УсловияВидимости.ВидСравнения"); + ЭлементОтбора.ВидСравнения = ВидСравненияКомпоновкиДанных.ВСписке; + СписокВидовСравнения = Новый СписокЗначений(); + СписокВидовСравнения.Добавить("Заполнено"); + СписокВидовСравнения.Добавить("НеЗаполнено"); + ЭлементОтбора.ПравоеЗначение = СписокВидовСравнения; + + ЭлементОформления.Оформление.УстановитьЗначениеПараметра("ТолькоПросмотр", Истина); + +КонецПроцедуры + +#КонецОбласти diff --git a/SSL/src/Catalogs/МакетыПечатныхФорм/ManagerModule.bsl b/SSL/src/Catalogs/МакетыПечатныхФорм/ManagerModule.bsl new file mode 100644 index 000000000..ffecb48d0 --- /dev/null +++ b/SSL/src/Catalogs/МакетыПечатныхФорм/ManagerModule.bsl @@ -0,0 +1,296 @@ +/////////////////////////////////////////////////////////////////////////////////////////////////////// +// Copyright (c) 2021, ООО 1С-Софт +// Все права защищены. Эта программа и сопроводительные материалы предоставляются +// в соответствии с условиями лицензии Attribution 4.0 International (CC BY 4.0) +// Текст лицензии доступен по ссылке: +// https://creativecommons.org/licenses/by/4.0/legalcode +/////////////////////////////////////////////////////////////////////////////////////////////////////// + +#Если Сервер Или ТолстыйКлиентОбычноеПриложение Или ВнешнееСоединение Тогда + +#Область СлужебныйПрограммныйИнтерфейс + +// Параметры: +// Макет - УникальныйИдентификатор +// +// Возвращаемое значение: +// Массив из Строка +// +Функция ЯзыкиМакета(Макет) Экспорт + + ТекстЗапроса = + "ВЫБРАТЬ + | МакетыПечатныхФорм.Макет КАК Макет, + | &КодОсновногоЯзыка КАК КодЯзыка + |ИЗ + | Справочник.МакетыПечатныхФорм КАК МакетыПечатныхФорм + |ГДЕ + | МакетыПечатныхФорм.Идентификатор = &Идентификатор + | + |ОБЪЕДИНИТЬ ВСЕ + | + |ВЫБРАТЬ + | МакетыПечатныхФормПредставления.Макет, + | МакетыПечатныхФормПредставления.КодЯзыка + |ИЗ + | Справочник.МакетыПечатныхФорм.Представления КАК МакетыПечатныхФормПредставления + | ЛЕВОЕ СОЕДИНЕНИЕ Справочник.МакетыПечатныхФорм КАК МакетыПечатныхФорм + | ПО МакетыПечатныхФормПредставления.Ссылка = МакетыПечатныхФорм.Ссылка + |ГДЕ + | МакетыПечатныхФорм.Идентификатор = &Идентификатор"; + + Запрос = Новый Запрос(ТекстЗапроса); + Запрос.УстановитьПараметр("Идентификатор", Макет); + Запрос.УстановитьПараметр("КодОсновногоЯзыка", ОбщегоНазначения.КодОсновногоЯзыка()); + + Результат = Новый Массив; + + Выборка = Запрос.Выполнить().Выбрать(); + Пока Выборка.Следующий() Цикл + Если Выборка.Макет.Получить() <> Неопределено Тогда + Результат.Добавить(Выборка.КодЯзыка); + КонецЕсли; + КонецЦикла; + + Возврат Результат; + +КонецФункции + +#КонецОбласти + +#Область СлужебныеПроцедурыИФункции + +Функция ЗаписатьМакет(ОписаниеМакета) Экспорт + + Ссылка = ОписаниеМакета.Ссылка; + Если ЗначениеЗаполнено(Ссылка) Тогда + Объект = Ссылка.ПолучитьОбъект(); + Иначе + Объект = Справочники.МакетыПечатныхФорм.СоздатьЭлемент(); + Объект.ИсточникДанных = ОписаниеМакета.Владелец; + Объект.ТипМакета = ОписаниеМакета.ТипМакета; + Объект.Идентификатор = Новый УникальныйИдентификатор; + КонецЕсли; + + Наименование = ОписаниеМакета.Наименование; + КодЯзыка = ОписаниеМакета.КодЯзыка; + Макет = Новый ХранилищеЗначения(ПолучитьИзВременногоХранилища(ОписаниеМакета.АдресМакетаВоВременномХранилище)); + + ОбщегоНазначения.УстановитьЗначениеРеквизита(Объект, "Наименование", Наименование, КодЯзыка); + ОбщегоНазначения.УстановитьЗначениеРеквизита(Объект, "Макет", Макет, КодЯзыка); + + Блокировка = Новый БлокировкаДанных; + ЭлементБлокировки = Блокировка.Добавить("Справочник.МакетыПечатныхФорм"); + Если ЗначениеЗаполнено(Ссылка) Тогда + ЭлементБлокировки.УстановитьЗначение("Ссылка", Ссылка); + КонецЕсли; + + НачатьТранзакцию(); + Попытка + Блокировка.Заблокировать(); + Объект.Записать(); + + ЗафиксироватьТранзакцию(); + Исключение + ОтменитьТранзакцию(); + ВызватьИсключение; + КонецПопытки; + + Возврат "ПФ_" + Строка(Объект.Идентификатор); + +КонецФункции + +// Параметры: +// Макет - СправочникСсылка.МакетыПечатныхФорм +// Используется - Булево +// +Процедура УстановитьИспользованиеМакета(Макет, Используется) Экспорт + + Блокировка = Новый БлокировкаДанных; + ЭлементБлокировки = Блокировка.Добавить("Справочник.МакетыПечатныхФорм"); + ЭлементБлокировки.УстановитьЗначение("Ссылка", Макет); + + НачатьТранзакцию(); + Попытка + Блокировка.Заблокировать(); + + Объект = Макет.ПолучитьОбъект(); + Объект.Используется = Используется; + Объект.Записать(); + + ЗафиксироватьТранзакцию(); + Исключение + ОтменитьТранзакцию(); + ВызватьИсключение; + КонецПопытки; + +КонецПроцедуры + +Функция МакетСуществует(Идентификатор) Экспорт + + ТекстЗапроса = + "ВЫБРАТЬ + | Ссылка + |ИЗ + | Справочник.МакетыПечатныхФорм КАК МакетыПечатныхФорм + |ГДЕ + | МакетыПечатныхФорм.Идентификатор = &Идентификатор"; + + Запрос = Новый Запрос(ТекстЗапроса); + Запрос.УстановитьПараметр("Идентификатор", Идентификатор); + + Возврат Не Запрос.Выполнить().Пустой(); + +КонецФункции + +Функция НайтиМакет(ПутьКМакету, КодЯзыка) Экспорт + + Идентификатор = ИдентификаторМакета(ПутьКМакету); + Если Идентификатор <> Неопределено Тогда + Возврат МакетПечатнойФормыПоИдентификатору(Идентификатор, КодЯзыка); + КонецЕсли; + + Возврат Неопределено; + +КонецФункции + +Функция МакетПечатнойФормыПоИдентификатору(Идентификатор, КодЯзыка) + + ТекстЗапроса = + "ВЫБРАТЬ + | МакетыПечатныхФормПредставления.Макет + |ИЗ + | Справочник.МакетыПечатныхФорм.Представления КАК МакетыПечатныхФормПредставления + | ЛЕВОЕ СОЕДИНЕНИЕ Справочник.МакетыПечатныхФорм КАК МакетыПечатныхФорм + | ПО МакетыПечатныхФормПредставления.Ссылка = МакетыПечатныхФорм.Ссылка + |ГДЕ + | МакетыПечатныхФорм.Идентификатор = &Идентификатор + | И МакетыПечатныхФормПредставления.КодЯзыка = &КодЯзыка + | + |ОБЪЕДИНИТЬ ВСЕ + | + |ВЫБРАТЬ + | МакетыПечатныхФорм.Макет + |ИЗ + | Справочник.МакетыПечатныхФорм КАК МакетыПечатныхФорм + |ГДЕ + | МакетыПечатныхФорм.Идентификатор = &Идентификатор"; + + Запрос = Новый Запрос(ТекстЗапроса); + Запрос.УстановитьПараметр("Идентификатор", Идентификатор); + Запрос.УстановитьПараметр("КодЯзыка", КодЯзыка); + + Выборка = Запрос.Выполнить().Выбрать(); + Пока Выборка.Следующий() Цикл + Макет = Выборка.Макет.Получить(); // ХранилищеЗначения + Если Макет = Неопределено Тогда + Продолжить; + КонецЕсли; + Макет.КодЯзыка = ОбщегоНазначения.КодОсновногоЯзыка(); + Возврат Макет; + КонецЦикла; + + Возврат Неопределено; + +КонецФункции + +Функция ВладелецМакета(ПутьКМакету) Экспорт + + Идентификатор = ИдентификаторМакета(ПутьКМакету); + Если Идентификатор = Неопределено Тогда + Возврат Неопределено; + КонецЕсли; + + ТекстЗапроса = + "ВЫБРАТЬ + | МакетыПечатныхФорм.ИсточникДанных КАК ИсточникДанных + |ИЗ + | Справочник.МакетыПечатныхФорм КАК МакетыПечатныхФорм + |ГДЕ + | МакетыПечатныхФорм.Идентификатор = &Идентификатор"; + + Запрос = Новый Запрос(ТекстЗапроса); + Запрос.УстановитьПараметр("Идентификатор", Идентификатор); + Выборка = Запрос.Выполнить().Выбрать(); + Если Выборка.Следующий() Тогда + Возврат Выборка.ИсточникДанных; + КонецЕсли; + + Возврат Неопределено; + +КонецФункции + +Функция ИдентификаторМакета(ПутьКМакету) + + ЧастиПути = СтрРазделить(ПутьКМакету, ".", Истина); + + ИмяМакета = ЧастиПути[ЧастиПути.ВГраница()]; + Если СтрНачинаетсяС(ИмяМакета, "ПФ_") Тогда + Идентификатор = Сред(ИмяМакета, 4); + Если СтроковыеФункцииКлиентСервер.ЭтоУникальныйИдентификатор(Идентификатор) Тогда + Возврат Новый УникальныйИдентификатор(Идентификатор); + КонецЕсли; + КонецЕсли; + + Возврат Неопределено; + +КонецФункции + +// Возвращаемое значение: +// СправочникСсылка.МакетыПечатныхФорм +// +Функция СсылкаМакета(ПутьКМакету) Экспорт + + Идентификатор = ИдентификаторМакета(ПутьКМакету); + Если Идентификатор = Неопределено Тогда + Возврат Неопределено; + КонецЕсли; + + ТекстЗапроса = + "ВЫБРАТЬ + | МакетыПечатныхФорм.Ссылка КАК Ссылка + |ИЗ + | Справочник.МакетыПечатныхФорм КАК МакетыПечатныхФорм + |ГДЕ + | МакетыПечатныхФорм.Идентификатор = &Идентификатор"; + + Запрос = Новый Запрос(ТекстЗапроса); + Запрос.УстановитьПараметр("Идентификатор", Идентификатор); + Выборка = Запрос.Выполнить().Выбрать(); + Если Выборка.Следующий() Тогда + Возврат Выборка.Ссылка; + КонецЕсли; + + Возврат Неопределено; + +КонецФункции + +Процедура УдалитьМакет(Ссылка, КодЯзыка = Неопределено) Экспорт + + Объект = Ссылка.ПолучитьОбъект(); + Если КодЯзыка = Неопределено Или КодЯзыка = ОбщегоНазначения.КодОсновногоЯзыка() Тогда + Объект.УстановитьПометкуУдаления(Истина); + Иначе + ОбщегоНазначения.УстановитьЗначениеРеквизита(Объект, "Макет", Новый ХранилищеЗначения(Неопределено), КодЯзыка); + КонецЕсли; + + Блокировка = Новый БлокировкаДанных; + ЭлементБлокировки = Блокировка.Добавить("Справочник.МакетыПечатныхФорм"); + ЭлементБлокировки.УстановитьЗначение("Ссылка", Ссылка); + + НачатьТранзакцию(); + Попытка + Блокировка.Заблокировать(); + Объект.Записать(); + + ЗафиксироватьТранзакцию(); + Исключение + ОтменитьТранзакцию(); + ВызватьИсключение; + КонецПопытки; + +КонецПроцедуры + +#КонецОбласти + +#КонецЕсли \ No newline at end of file diff --git a/SSL/src/Constants/НастройкиПодчиненногоУзлаРИБ/ValueManagerModule.bsl b/SSL/src/Catalogs/МакетыПечатныхФорм/ObjectModule.bsl similarity index 100% rename from SSL/src/Constants/НастройкиПодчиненногоУзлаРИБ/ValueManagerModule.bsl rename to SSL/src/Catalogs/МакетыПечатныхФорм/ObjectModule.bsl diff --git a/SSL/src/Catalogs/МакетыПечатныхФорм/МакетыПечатныхФорм.mdo b/SSL/src/Catalogs/МакетыПечатныхФорм/МакетыПечатныхФорм.mdo new file mode 100644 index 000000000..30c82a7c4 --- /dev/null +++ b/SSL/src/Catalogs/МакетыПечатныхФорм/МакетыПечатныхФорм.mdo @@ -0,0 +1,301 @@ + + + + + + + + + + МакетыПечатныхФорм + + 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 + + ru + Основной вариант макета + + true + + Use + + + + + Use + Description + + ShowError + Use + + + + + Use + Code + + Use + + + + Use + Managed + Use + + ru + Макет печатной формы + + true + HierarchyOfItems + true + 2 + true + 150 + String + Variable + AsDescription + InDialog + BothWays + + ИсточникДанных + + ru + Источник данных + + + CatalogRef.ИдентификаторыОбъектовРасширений + CatalogRef.ИдентификаторыОбъектовМетаданных + + + + + Index + Use + Use + + + Используется + + ru + Используется + + + Boolean + + + + + Index + Use + Use + + + Идентификатор + + ru + Идентификатор + + + UUID + + + + + Use + Use + + + Макет + + ru + Макет + + + ValueStorage + + + + + Use + Use + + + УсловиеВидимости + + ru + Условие видимости + + + ValueStorage + + true + + + + Use + Use + + + ТипМакета + + ru + Тип макета + + + String + + 4 + + + + + + Use + Use + + + + + + + Представления + + ru + Представления + + + Use + LineNumber + + Use + + + + + КодЯзыка + + ru + Код языка + + + String + + 10 + + + + ru + Код языка представления реквизита + + + + ShowError + Use + Index + Use + + + Наименование + + ru + Наименование + + + String + + 150 + + + + ru + Представление реквизита на другом языке + + + + Use + Index + Use + + + Макет + + ru + Макет + + + ValueStorage + + + + Use + Use + + ForFolderAndItem + + + УсловияВидимостиВПодменюПечать + + ru + Условия видимости в подменю "Печать" + + PersonalComputer + MobileDevice + + diff --git a/SSL/src/Catalogs/НаборыДополнительныхРеквизитовИСведений/Forms/ФормаСписка/Form.form b/SSL/src/Catalogs/НаборыДополнительныхРеквизитовИСведений/Forms/ФормаСписка/Form.form index 42213d2e4..b1d4fd7d0 100644 --- a/SSL/src/Catalogs/НаборыДополнительныхРеквизитовИСведений/Forms/ФормаСписка/Form.form +++ b/SSL/src/Catalogs/НаборыДополнительныхРеквизитовИСведений/Forms/ФормаСписка/Form.form @@ -1857,15 +1857,15 @@ true + + НаборыСвойств.НаименованиеНаДругихЯзыках + НаборыСвойств.КоличествоРеквизитов НаборыСвойств.КоличествоСведений - - НаборыСвойств.НаименованиеНаДругихЯзыках - НаборыСвойств.Родитель @@ -1881,41 +1881,37 @@
true
ВЫБРАТЬ - Наборы.Ссылка КАК Ссылка, - Наборы.ВерсияДанных КАК ВерсияДанных, - Наборы.ПометкаУдаления КАК ПометкаУдаления, - Наборы.Предопределенный КАК Предопределенный, - Наборы.Родитель КАК Родитель, - Наборы.ЭтоГруппа КАК ЭтоГруппа, - Наборы.Наименование КАК Наименование, - Наборы.Используется КАК Используется, + НаборыПереопределяемый.Ссылка КАК Ссылка, + НаборыПереопределяемый.ВерсияДанных КАК ВерсияДанных, + НаборыПереопределяемый.ПометкаУдаления КАК ПометкаУдаления, + НаборыПереопределяемый.Предопределенный КАК Предопределенный, + НаборыПереопределяемый.Родитель КАК Родитель, + НаборыПереопределяемый.ЭтоГруппа КАК ЭтоГруппа, + НаборыПереопределяемый.Наименование КАК Наименование, + НаборыПереопределяемый.Используется КАК Используется, ВЫРАЗИТЬ("" КАК СТРОКА(150)) КАК Представление, &ЭтоНаборыДополнительныхСведений КАК ЭтоСведения, - НаборыПредставления.Наименование КАК НаименованиеНаДругихЯзыках, ВЫБОР - КОГДА Наборы.ПометкаУдаления + КОГДА НаборыПереопределяемый.ПометкаУдаления ТОГДА 1 ИНАЧЕ 0 КОНЕЦ + ВЫБОР - КОГДА Наборы.Предопределенный + КОГДА НаборыПереопределяемый.Предопределенный ТОГДА 2 ИНАЧЕ 0 КОНЕЦ КАК НомерКартинки, - Наборы.КоличествоРеквизитов КАК КоличествоРеквизитов, - Наборы.КоличествоСведений КАК КоличествоСведений + НаборыПереопределяемый.КоличествоРеквизитов КАК КоличествоРеквизитов, + НаборыПереопределяемый.КоличествоСведений КАК КоличествоСведений ИЗ - Справочник.НаборыДополнительныхРеквизитовИСведений КАК Наборы - ЛЕВОЕ СОЕДИНЕНИЕ Справочник.НаборыДополнительныхРеквизитовИСведений.Представления КАК НаборыПредставления - ПО (НаборыПредставления.Ссылка = Наборы.Ссылка) - И (НаборыПредставления.КодЯзыка = &КодЯзыка) + Справочник.НаборыДополнительныхРеквизитовИСведений КАК НаборыПереопределяемый ГДЕ ВЫБОР - КОГДА Наборы.Родитель = ЗНАЧЕНИЕ(Справочник.НаборыДополнительныхРеквизитовИСведений.ПустаяСсылка) - ТОГДА Наборы.Ссылка В (&Наборы) - ИНАЧЕ Наборы.Родитель В (&Наборы) - КОНЕЦ - И Наборы.Используется - И ЕСТЬNULL(Наборы.Родитель.Используется, ИСТИНА) + КОГДА НаборыПереопределяемый.Родитель = ЗНАЧЕНИЕ(Справочник.НаборыДополнительныхРеквизитовИСведений.ПустаяСсылка) + ТОГДА НаборыПереопределяемый.Ссылка В (&Наборы) + ИНАЧЕ НаборыПереопределяемый.Родитель В (&Наборы) + КОНЕЦ + И НаборыПереопределяемый.Используется + И ЕСТЬNULL(НаборыПереопределяемый.Родитель.Используется, ИСТИНА) Catalog.НаборыДополнительныхРеквизитовИСведений true true diff --git a/SSL/src/Catalogs/НаборыДополнительныхРеквизитовИСведений/Forms/ФормаСписка/Module.bsl b/SSL/src/Catalogs/НаборыДополнительныхРеквизитовИСведений/Forms/ФормаСписка/Module.bsl index a08b51fe1..4f45a0dfd 100644 --- a/SSL/src/Catalogs/НаборыДополнительныхРеквизитовИСведений/Forms/ФормаСписка/Module.bsl +++ b/SSL/src/Catalogs/НаборыДополнительныхРеквизитовИСведений/Forms/ФормаСписка/Module.bsl @@ -39,6 +39,35 @@ Элементы.СвойстваПодменюДобавить.Отображение = ОтображениеКнопки.Картинка; КонецЕсли; + СуффиксТекущегоЯзыка = ОбщегоНазначения.СуффиксЯзыкаТекущегоПользователя(); + + Если СуффиксТекущегоЯзыка = Неопределено Тогда + + СвойстваСписка = ОбщегоНазначения.СтруктураСвойствДинамическогоСписка(); + + СвойстваСписка.ТекстЗапроса = СтрЗаменить(НаборыСвойств.ТекстЗапроса, "ГДЕ", + "ЛЕВОЕ СОЕДИНЕНИЕ Справочник.НаборыДополнительныхРеквизитовИСведений.Представления КАК НаборыПредставления + |ПО (НаборыПредставления.Ссылка = НаборыПереопределяемый.Ссылка) + |И (НаборыПредставления.КодЯзыка = &КодЯзыка) + |ГДЕ"); + + СвойстваСписка.ТекстЗапроса = СтрЗаменить(СвойстваСписка.ТекстЗапроса, "НаборыПереопределяемый.Наименование КАК Наименование", + "НаборыПереопределяемый.Наименование КАК Наименование, НаборыПредставления.Наименование КАК НаименованиеНаДругихЯзыках"); + + ОбщегоНазначения.УстановитьСвойстваДинамическогоСписка(Элементы.НаборыСвойств, СвойстваСписка); + + ОбщегоНазначенияКлиентСервер.УстановитьПараметрДинамическогоСписка( + НаборыСвойств, "КодЯзыка", ТекущийЯзык().КодЯзыка, Истина); + + ИначеЕсли ЗначениеЗаполнено(СуффиксТекущегоЯзыка) Тогда + + Если ОбщегоНазначения.ПодсистемаСуществует("СтандартныеПодсистемы.Мультиязычность") Тогда + МодульМультиязычностьСервер = ОбщегоНазначения.ОбщийМодуль("МультиязычностьСервер"); + МодульМультиязычностьСервер.ПриСозданииНаСервере(ЭтотОбъект,, "НаборыСвойств"); + КонецЕсли; + + КонецЕсли; + КонецПроцедуры &НаКлиенте @@ -146,7 +175,7 @@ Данные.Представление = Строка(Данные.Ссылка); Продолжить; КонецЕсли; - Если ЗначениеЗаполнено(Данные.НаименованиеНаДругихЯзыках) Тогда + Если Данные.Свойство("НаименованиеНаДругихЯзыках") И ЗначениеЗаполнено(Данные.НаименованиеНаДругихЯзыках) Тогда Данные.Представление = Данные.НаименованиеНаДругихЯзыках + " (" + Данные.КоличествоСведений + ")"; Продолжить; КонецЕсли; @@ -156,10 +185,11 @@ Данные.Представление = Строка(Данные.Ссылка); Продолжить; КонецЕсли; - Если ЗначениеЗаполнено(Данные.НаименованиеНаДругихЯзыках) Тогда - Данные.Представление = Данные.НаименованиеНаДругихЯзыках + " (" + Данные.КоличествоРеквизитов + ")"; + Если Данные.Свойство("НаименованиеНаДругихЯзыках") И ЗначениеЗаполнено(Данные.НаименованиеНаДругихЯзыках) Тогда + Данные.Представление = Данные.НаименованиеНаДругихЯзыках + " (" + Данные.КоличествоСведений + ")"; Продолжить; КонецЕсли; + Данные.Представление = Строка(Данные.Ссылка) + " (" + Данные.КоличествоРеквизитов + ")"; КонецЕсли; КонецЦикла; @@ -633,9 +663,6 @@ ОбщегоНазначенияКлиентСервер.УстановитьПараметрДинамическогоСписка( НаборыСвойств, "Наборы", ДоступныеНаборы, Истина); - - ОбщегоНазначенияКлиентСервер.УстановитьПараметрДинамическогоСписка( - НаборыСвойств, "ЭтоОсновнойЯзык", ТекущийЯзык() = Метаданные.ОсновнойЯзык, Истина); ОбщегоНазначенияКлиентСервер.УстановитьПараметрДинамическогоСписка( НаборыСвойств, "КодЯзыка", ТекущийЯзык().КодЯзыка, Истина); @@ -804,11 +831,7 @@ | СвойстваНаборов.НомерСтроки, | СвойстваНаборов.Свойство, | СвойстваНаборов.ПометкаУдаления, - | ВЫБОР - | КОГДА &ЭтоОсновнойЯзык - | ТОГДА Свойства.Заголовок - | ИНАЧЕ ВЫРАЗИТЬ(ЕСТЬNULL(СвойстваПредставления.Заголовок, Свойства.Заголовок) КАК СТРОКА(150)) - | КОНЕЦ КАК Заголовок, + | Свойства.Заголовок КАК Заголовок, | Свойства.ВладелецДополнительныхЗначений, | Свойства.ЗаполнятьОбязательно, | Свойства.ТипЗначения КАК ТипЗначения, @@ -822,9 +845,6 @@ | Справочник.НаборыДополнительныхРеквизитовИСведений.ДополнительныеРеквизиты КАК СвойстваНаборов | ЛЕВОЕ СОЕДИНЕНИЕ ПланВидовХарактеристик.ДополнительныеРеквизитыИСведения КАК Свойства | ПО СвойстваНаборов.Свойство = Свойства.Ссылка - | ЛЕВОЕ СОЕДИНЕНИЕ ПланВидовХарактеристик.ДополнительныеРеквизитыИСведения.Представления КАК СвойстваПредставления - | ПО (СвойстваПредставления.Ссылка = Свойства.Ссылка) - | И СвойстваПредставления.КодЯзыка = &КодЯзыка |ГДЕ | СвойстваНаборов.Ссылка = &Набор | @@ -844,11 +864,7 @@ "ВЫБРАТЬ | Свойства.Ссылка КАК Свойство, | Свойства.ПометкаУдаления КАК ПометкаУдаления, - | ВЫБОР - | КОГДА &ЭтоОсновнойЯзык - | ТОГДА Свойства.Заголовок - | ИНАЧЕ ВЫРАЗИТЬ(ЕСТЬNULL(СвойстваПредставления.Заголовок, Свойства.Заголовок) КАК СТРОКА(150)) - | КОНЕЦ КАК Заголовок, + | Свойства.Заголовок КАК Заголовок, | Свойства.ВладелецДополнительныхЗначений, | Свойства.ТипЗначения КАК ТипЗначения, | ИСТИНА КАК Общее, @@ -857,21 +873,9 @@ | ТОГДА 4 | ИНАЧЕ 3 | КОНЕЦ КАК НомерКартинки, - | ВЫБОР - | КОГДА &ЭтоОсновнойЯзык - | ТОГДА Свойства.Подсказка - | ИНАЧЕ ВЫРАЗИТЬ(ЕСТЬNULL(СвойстваПредставления.Подсказка, Свойства.Подсказка) КАК СТРОКА(150)) - | КОНЕЦ КАК Подсказка, - | ВЫБОР - | КОГДА &ЭтоОсновнойЯзык - | ТОГДА Свойства.ЗаголовокФормыЗначения - | ИНАЧЕ ВЫРАЗИТЬ(ЕСТЬNULL(СвойстваПредставления.ЗаголовокФормыЗначения, Свойства.ЗаголовокФормыЗначения) КАК СТРОКА(150)) - | КОНЕЦ КАК ЗаголовокФормыЗначения, - | ВЫБОР - | КОГДА &ЭтоОсновнойЯзык - | ТОГДА Свойства.ЗаголовокФормыВыбораЗначения - | ИНАЧЕ ВЫРАЗИТЬ(ЕСТЬNULL(СвойстваПредставления.ЗаголовокФормыВыбораЗначения, Свойства.ЗаголовокФормыВыбораЗначения) КАК СТРОКА(150)) - | КОНЕЦ КАК ЗаголовокФормыВыбораЗначения + | Свойства.Подсказка КАК Подсказка, + | Свойства.ЗаголовокФормыЗначения КАК ЗаголовокФормыЗначения, + | Свойства.ЗаголовокФормыВыбораЗначения КАК ЗаголовокФормыВыбораЗначения |ИЗ | ПланВидовХарактеристик.ДополнительныеРеквизитыИСведения КАК Свойства | ЛЕВОЕ СОЕДИНЕНИЕ ПланВидовХарактеристик.ДополнительныеРеквизитыИСведения.Представления КАК СвойстваПредставления @@ -879,7 +883,6 @@ | И СвойстваПредставления.КодЯзыка = &КодЯзыка | ЛЕВОЕ СОЕДИНЕНИЕ Справочник.НаборыДополнительныхРеквизитовИСведений.ДополнительныеРеквизиты КАК СоставНабора | ПО Свойства.Ссылка = СоставНабора.Свойство - | |ГДЕ | Свойства.ЭтоДополнительноеСведение = &ЭтоДополнительноеСведение | И СоставНабора.Свойство ЕСТЬ NULL @@ -900,6 +903,36 @@ "Справочник.НаборыДополнительныхРеквизитовИСведений.ДополнительныеСведения"); КонецЕсли; + СуффиксТекущегоЯзыка = ОбщегоНазначения.СуффиксЯзыкаТекущегоПользователя(); + Если СуффиксТекущегоЯзыка = Неопределено Тогда + + Позиция = СтрНайти(Запрос.Текст, "ГДЕ"); + Запрос.Текст = Лев(Запрос.Текст, Позиция - 1 ) + " ЛЕВОЕ СОЕДИНЕНИЕ ПланВидовХарактеристик.ДополнительныеРеквизитыИСведения.Представления КАК СвойстваПредставления + | ПО Свойства.Ссылка = СвойстваПредставления.Ссылка + | И СвойстваПредставления.КодЯзыка = &КодЯзыка" + Сред(Запрос.Текст, Позиция -1); + + Запрос.Текст = СтрЗаменить(Запрос.Текст, "Свойства.Заголовок КАК Заголовок", + "ВЫРАЗИТЬ(ЕСТЬNULL(СвойстваПредставления.Заголовок, Свойства.Заголовок) КАК СТРОКА(150)) КАК Заголовок"); + Запрос.Текст = СтрЗаменить(Запрос.Текст, "Свойства.Подсказка КАК Подсказка", + "ВЫРАЗИТЬ(ЕСТЬNULL(СвойстваПредставления.Подсказка, Свойства.Подсказка) КАК СТРОКА(150)) КАК Подсказка"); + Запрос.Текст = СтрЗаменить(Запрос.Текст, "Свойства.ЗаголовокФормыЗначения КАК ЗаголовокФормыЗначения", + "ВЫРАЗИТЬ(ЕСТЬNULL(СвойстваПредставления.ЗаголовокФормыЗначения, Свойства.ЗаголовокФормыЗначения) КАК СТРОКА(150)) КАК ЗаголовокФормыЗначения"); + Запрос.Текст = СтрЗаменить(Запрос.Текст, "Свойства.ЗаголовокФормыВыбораЗначения КАК ЗаголовокФормыВыбораЗначения", + "ВЫРАЗИТЬ(ЕСТЬNULL(СвойстваПредставления.ЗаголовокФормыВыбораЗначения, Свойства.ЗаголовокФормыВыбораЗначения) КАК СТРОКА(150)) КАК ЗаголовокФормыВыбораЗначения"); + Иначе + + Если ЗначениеЗаполнено(СуффиксТекущегоЯзыка) И ОбщегоНазначения.ПодсистемаСуществует("СтандартныеПодсистемы.Мультиязычность") Тогда + МодульМультиязычностьСервер = ОбщегоНазначения.ОбщийМодуль("МультиязычностьСервер"); + МодульМультиязычностьСервер.ИзменитьПолеЗапросаПодТекущийЯзык(Запрос.Текст, "Свойства.Заголовок КАК Заголовок"); + Если ПоказатьНеиспользуемыеРеквизиты Тогда + МодульМультиязычностьСервер.ИзменитьПолеЗапросаПодТекущийЯзык(Запрос.Текст, "Свойства.Подсказка КАК Подсказка"); + МодульМультиязычностьСервер.ИзменитьПолеЗапросаПодТекущийЯзык(Запрос.Текст, "Свойства.ЗаголовокФормыЗначения КАК ЗаголовокФормыЗначения"); + МодульМультиязычностьСервер.ИзменитьПолеЗапросаПодТекущийЯзык(Запрос.Текст, "Свойства.ЗаголовокФормыВыбораЗначения КАК ЗаголовокФормыВыбораЗначения"); + КонецЕсли; + КонецЕсли; + + КонецЕсли; + НачатьТранзакцию(); Попытка РезультатыЗапроса = Запрос.ВыполнитьПакет(); diff --git a/SSL/src/Catalogs/НаборыДополнительныхРеквизитовИСведений/Forms/ФормаЭлемента/Form.form b/SSL/src/Catalogs/НаборыДополнительныхРеквизитовИСведений/Forms/ФормаЭлемента/Form.form index bf166b903..3691105c1 100644 --- a/SSL/src/Catalogs/НаборыДополнительныхРеквизитовИСведений/Forms/ФормаЭлемента/Form.form +++ b/SSL/src/Catalogs/НаборыДополнительныхРеквизитовИСведений/Forms/ФормаЭлемента/Form.form @@ -494,5 +494,9 @@ OnReadAtServer ПриЧтенииНаСервере + + BeforeWriteAtServer + ПередЗаписьюНаСервере + diff --git a/SSL/src/Catalogs/НаборыДополнительныхРеквизитовИСведений/Forms/ФормаЭлемента/Module.bsl b/SSL/src/Catalogs/НаборыДополнительныхРеквизитовИСведений/Forms/ФормаЭлемента/Module.bsl index e98e648ec..0dcd2ffc3 100644 --- a/SSL/src/Catalogs/НаборыДополнительныхРеквизитовИСведений/Forms/ФормаЭлемента/Module.bsl +++ b/SSL/src/Catalogs/НаборыДополнительныхРеквизитовИСведений/Forms/ФормаЭлемента/Module.bsl @@ -35,6 +35,11 @@ Элементы.ДополнительныеСведения.Видимость = Ложь; КонецЕсли; + Если ОбщегоНазначения.ПодсистемаСуществует("СтандартныеПодсистемы.Мультиязычность") Тогда + МодульМультиязычностьСервер = ОбщегоНазначения.ОбщийМодуль("МультиязычностьСервер"); + МодульМультиязычностьСервер.ПриСозданииНаСервере(ЭтотОбъект, Объект); + КонецЕсли; + КонецПроцедуры &НаСервере @@ -47,6 +52,21 @@ КонецЕсли; // Конец СтандартныеПодсистемы.УправлениеДоступом + Если ОбщегоНазначения.ПодсистемаСуществует("СтандартныеПодсистемы.Мультиязычность") Тогда + МодульМультиязычностьСервер = ОбщегоНазначения.ОбщийМодуль("МультиязычностьСервер"); + МодульМультиязычностьСервер.ПриЧтенииНаСервере(ЭтотОбъект, ТекущийОбъект); + КонецЕсли; + +КонецПроцедуры + +&НаСервере +Процедура ПередЗаписьюНаСервере(Отказ, ТекущийОбъект, ПараметрыЗаписи) + + Если ОбщегоНазначения.ПодсистемаСуществует("СтандартныеПодсистемы.Мультиязычность") Тогда + МодульМультиязычностьСервер = ОбщегоНазначения.ОбщийМодуль("МультиязычностьСервер"); + МодульМультиязычностьСервер.ПередЗаписьюНаСервере(ТекущийОбъект); + КонецЕсли; + КонецПроцедуры &НаСервере @@ -59,6 +79,25 @@ КонецЕсли; // Конец СтандартныеПодсистемы.УправлениеДоступом + Если ОбщегоНазначения.ПодсистемаСуществует("СтандартныеПодсистемы.Мультиязычность") Тогда + МодульМультиязычностьСервер = ОбщегоНазначения.ОбщийМодуль("МультиязычностьСервер"); + МодульМультиязычностьСервер.ПриЧтенииНаСервере(ЭтотОбъект, ТекущийОбъект); + КонецЕсли; + +КонецПроцедуры + +#КонецОбласти + +#Область ОбработчикиСобытийЭлементовШапкиФормы + +&НаКлиенте +Процедура Подключаемый_Открытие(Элемент, СтандартнаяОбработка) + + Если ОбщегоНазначенияКлиент.ПодсистемаСуществует("СтандартныеПодсистемы.Мультиязычность") Тогда + МодульМультиязычностьКлиент = ОбщегоНазначенияКлиент.ОбщийМодуль("МультиязычностьКлиент"); + МодульМультиязычностьКлиент.ПриОткрытии(ЭтотОбъект, Объект, Элемент, СтандартнаяОбработка); + КонецЕсли; + КонецПроцедуры #КонецОбласти diff --git a/SSL/src/Catalogs/НаборыДополнительныхРеквизитовИСведений/ManagerModule.bsl b/SSL/src/Catalogs/НаборыДополнительныхРеквизитовИСведений/ManagerModule.bsl index eea22f6e5..84eb58804 100644 --- a/SSL/src/Catalogs/НаборыДополнительныхРеквизитовИСведений/ManagerModule.bsl +++ b/SSL/src/Catalogs/НаборыДополнительныхРеквизитовИСведений/ManagerModule.bsl @@ -264,7 +264,7 @@ ПроблемныхОбъектов = ПроблемныхОбъектов + 1; ТекстСообщения = СтроковыеФункцииКлиентСервер.ПодставитьПараметрыВСтроку( - НСтр("ru = 'Не удалось обработать набор свойств: %1 по причине: + НСтр("ru = 'Не удалось обработать набор свойств %1 по причине: |%2'"), ОбновляемыйНабор.Ссылка, ПодробноеПредставлениеОшибки(ИнформацияОбОшибке())); ЗаписьЖурналаРегистрации(ОбновлениеИнформационнойБазы.СобытиеЖурналаРегистрации(), УровеньЖурналаРегистрации.Предупреждение, @@ -282,6 +282,53 @@ КонецПроцедуры +// Начальное заполнение наборов + +// Смотри также ОбновлениеИнформационнойБазыПереопределяемый.ПриНастройкеНачальногоЗаполненияЭлементов +// +// Параметры: +// Настройки - см. ОбновлениеИнформационнойБазыПереопределяемый.ПриНастройкеНачальногоЗаполненияЭлементов.Настройки +// +Процедура ПриНастройкеНачальногоЗаполненияЭлементов(Настройки) Экспорт + + Настройки.ПриНачальномЗаполненииЭлемента = Ложь; + + УправлениеСвойствамиПереопределяемый.ПриНастройкеНачальногоЗаполненияЭлементов(Настройки); + + Настройки.ИмяКлючевогоРеквизита = "Ссылка"; + +КонецПроцедуры + +// Смотри также ОбновлениеИнформационнойБазыПереопределяемый.ПриНачальномЗаполненииЭлементов +// +// Параметры: +// КодыЯзыков - см. ОбновлениеИнформационнойБазыПереопределяемый.ПриНачальномЗаполненииЭлементов.КодыЯзыков +// Элементы - см. ОбновлениеИнформационнойБазыПереопределяемый.ПриНачальномЗаполненииЭлементов.Элементы +// ТабличныеЧасти - см. ОбновлениеИнформационнойБазыПереопределяемый.ПриНачальномЗаполненииЭлементов.ТабличныеЧасти +// +Процедура ПриНачальномЗаполненииЭлементов(КодыЯзыков, Элементы, ТабличныеЧасти) Экспорт + + УправлениеСвойствамиПереопределяемый.ПриНачальномЗаполненииЭлементов(КодыЯзыков, Элементы, ТабличныеЧасти); + +КонецПроцедуры + + +// Смотри также ОбновлениеИнформационнойБазыПереопределяемый.ПриНастройкеНачальногоЗаполненияЭлемента +// +// Параметры: +// Объект - СправочникОбъект.ВидыКонтактнойИнформации - заполняемый объект. +// Данные - СтрокаТаблицыЗначений - данные заполнения объекта. +// ДополнительныеПараметры - Структура: +// * ПредопределенныеДанные - ТаблицаЗначений - данные заполненные в процедуре ПриНачальномЗаполненииЭлементов. +// +Процедура ПриНачальномЗаполненииЭлемента(Объект, Данные, ДополнительныеПараметры) Экспорт + + УправлениеСвойствамиПереопределяемый.ПриНачальномЗаполненииЭлемента(Объект, Данные, ДополнительныеПараметры); + +КонецПроцедуры + +// + #КонецОбласти @@ -317,6 +364,30 @@ НаборыСвойств[СвойстваНабора.Ссылка] = Новый ФиксированнаяСтруктура(НаборыСвойств[СвойстваНабора.Ссылка]); КонецЦикла; + ПредопределенныеДанные = УправлениеСвойствамиСлужебный.ПредопределенныеНаборыСвойств(); + + НаименованиеНаЯзыкеПользователя = "Наименование" + "_" + ТекущийЯзык().КодЯзыка; + ЕстьЯзыковаяКолонка = ПредопределенныеДанные.Колонки.Найти(НаименованиеНаЯзыкеПользователя) <> Неопределено; + + Для Каждого Набор Из ПредопределенныеДанные Цикл + + Если ЕстьЯзыковаяКолонка Тогда + Наименование = ?(ЕстьЯзыковаяКолонка, Набор[НаименованиеНаЯзыкеПользователя], Набор["Наименование"]); + КонецЕсли; + + Если ЗначениеЗаполнено(Набор.Родитель) Тогда + Родитель = СсылкаНаРодителя(Набор.Родитель); + + СвойстваНабора = НаборыСвойств.Получить(Родитель); + СвойстваДочернегоНабора = СвойстваНабораНачальногоЗаполнения(НаборыСвойств, Набор, Родитель, Наименование); + СвойстваНабора.ДочерниеНаборы.Вставить(Набор.ИмяПредопределенногоНабора, СвойстваДочернегоНабора); + + Иначе + СвойстваНабора = СвойстваНабораНачальногоЗаполнения(НаборыСвойств, Набор, Набор.Родитель, Наименование); + КонецЕсли; + + КонецЦикла; + Возврат Новый ФиксированноеСоответствие(НаборыСвойств); КонецФункции @@ -373,17 +444,18 @@ Набор.Идентификатор, Набор.Имя, СвойстваНабора.Имя); КонецЕсли; - СвойстваНабора = Новый Структура; - СвойстваНабора.Вставить("Имя", Набор.Имя); - СвойстваНабора.Вставить("ЭтоГруппа", Набор.ЭтоГруппа); - СвойстваНабора.Вставить("Используется", Набор.Используется); - СвойстваНабора.Вставить("Ссылка", НаборСсылка); - СвойстваНабора.Вставить("Родитель", Родитель); - СвойстваНабора.Вставить("ДочерниеНаборы", ?(Родитель = Неопределено, Новый Соответствие, Неопределено)); + СвойстваНабора = НовыеСвойстваНабора(); + СвойстваНабора.Имя = Набор.Имя; + СвойстваНабора.ЭтоГруппа = Набор.ЭтоГруппа; + СвойстваНабора.Используется = Набор.Используется; + СвойстваНабора.Ссылка = НаборСсылка; + СвойстваНабора.Родитель = Родитель; + СвойстваНабора.ДочерниеНаборы = ?(Родитель = Неопределено, Новый Соответствие, Неопределено); + Если Наименования = Неопределено Тогда - СвойстваНабора.Вставить("Наименование", ПредставлениеНабораВерхнегоУровня(Набор.Имя)); + СвойстваНабора.Наименование = ПредставлениеНабораВерхнегоУровня(Набор.Имя); Иначе - СвойстваНабора.Вставить("Наименование", Наименования[Набор.Имя]); + СвойстваНабора.Наименование = Наименования[Набор.Имя]; КонецЕсли; Если Родитель <> Неопределено Тогда @@ -396,6 +468,117 @@ КонецФункции +// Только для внутреннего использования. +// +// Возвращаемое значение: +// Структура: +// * Имя - Строка +// * ЭтоГруппа - Булево +// * Используется - Булево +// * Ссылка - СправочникСсылка.НаборыДополнительныхРеквизитовИСведений +// * Родитель - СправочникСсылка.НаборыДополнительныхРеквизитовИСведений +// * ДочерниеНаборы - Соответствие из КлючИЗначение: +// ** Ключ - Строка +// ** Значение - см. СвойстваНабора +// * Наименование - Строка +// +Функция СвойстваНабораНачальногоЗаполнения(НаборыСвойств, Набор, Родитель = Неопределено, Наименование = Неопределено) + + ЗаголовокОшибки = СтроковыеФункцииКлиентСервер.ПодставитьПараметрыВСтроку( + НСтр("ru = 'Ошибка в процедуре %1 общего модуля %2.'") + + Символы.ПС + Символы.ПС, "ПриНачальномЗаполненииЭлементов", "УправлениеСвойствамиПереопределяемый"); + + Если Не ЗначениеЗаполнено(Набор.ИмяПредопределенногоНабора) Тогда + ВызватьИсключение ЗаголовокОшибки + СтроковыеФункцииКлиентСервер.ПодставитьПараметрыВСтроку( + НСтр("ru = '%1 набора свойств не заполнено.'"), "ИмяПредопределенногоНабора"); + КонецЕсли; + + Если НаборыСвойств.Получить(Набор.ИмяПредопределенногоНабора) <> Неопределено Тогда + ВызватьИсключение ЗаголовокОшибки + СтроковыеФункцииКлиентСервер.ПодставитьПараметрыВСтроку( + НСтр("ru = '%1 набора свойств ""%2"" уже определено.'"), + "ИмяПредопределенногоНабора", Набор.ИмяПредопределенногоНабора); + КонецЕсли; + + Если Не ЗначениеЗаполнено(Набор.Ссылка) Тогда + ВызватьИсключение ЗаголовокОшибки + СтроковыеФункцииКлиентСервер.ПодставитьПараметрыВСтроку( + НСтр("ru = 'Ссылка набора свойств ""%1"" не заполнен.'"), + Набор.ИмяПредопределенногоНабора); + КонецЕсли; + + НаборСсылка = Набор.Ссылка; + + Если НаборыСвойств.Получить(НаборСсылка) <> Неопределено Тогда + СвойстваНабора = НаборыСвойств.Получить(НаборСсылка); + ВызватьИсключение ЗаголовокОшибки + СтроковыеФункцииКлиентСервер.ПодставитьПараметрыВСтроку( + НСтр("ru = 'Ссылка ""%1"" набора свойств + |""%2"" уже используется для набора ""%3"".'"), + Набор.Ссылка, Набор.ИмяПредопределенногоНабора, СвойстваНабора.ИмяПредопределенногоНабора); + КонецЕсли; + + Родитель = СсылкаНаРодителя(Родитель); + + СвойстваНабора = НовыеСвойстваНабора(); + СвойстваНабора.Имя = Набор.ИмяПредопределенногоНабора; + СвойстваНабора.ЭтоГруппа = Набор.ЭтоГруппа; + СвойстваНабора.Используется = Набор.Используется; + СвойстваНабора.Ссылка = НаборСсылка; + СвойстваНабора.Родитель = Родитель; + СвойстваНабора.ДочерниеНаборы = ?(Родитель = Неопределено, Новый Соответствие, Неопределено); + + Если ЗначениеЗаполнено(Наименование) Тогда + СвойстваНабора.Вставить("Наименование", Наименование); + Иначе + СвойстваНабора.Вставить("Наименование", Набор["Наименование"]); + КонецЕсли; + + СвойстваНабора = Новый ФиксированнаяСтруктура(СвойстваНабора); + НаборыСвойств.Вставить(СвойстваНабора.Имя, СвойстваНабора); + НаборыСвойств.Вставить(СвойстваНабора.Ссылка, СвойстваНабора); + + Возврат СвойстваНабора; + +КонецФункции + +// Возвращаемое значение: +// Структура: +// * Имя - Строка +// * ЭтоГруппа - Булево +// * Используется - Неопределено +// * Ссылка - Неопределено +// * Родитель - Неопределено +// * ДочерниеНаборы - Неопределено +// * Наименование - Строка +// +Функция НовыеСвойстваНабора() + + СвойстваНабора = Новый Структура; + СвойстваНабора.Вставить("Имя", ""); + СвойстваНабора.Вставить("ЭтоГруппа", Ложь); + СвойстваНабора.Вставить("Используется", Неопределено); + СвойстваНабора.Вставить("Ссылка", Неопределено); + СвойстваНабора.Вставить("Родитель", Неопределено); + СвойстваНабора.Вставить("ДочерниеНаборы", Неопределено); + СвойстваНабора.Вставить("Наименование", ""); + + Возврат СвойстваНабора; + +КонецФункции + +Функция СсылкаНаРодителя(Родитель) + + Если ЗначениеЗаполнено(Родитель) Тогда + + Если ТипЗнч(Родитель) = Тип("Строка") Тогда + Родитель = ПолучитьСсылку(Новый УникальныйИдентификатор(Родитель)); + ИначеЕсли ТипЗнч(Родитель) = Тип("УникальныйИдентификатор") Тогда + Родитель = ПолучитьСсылку(Родитель); + КонецЕсли; + КонецЕсли; + + Возврат Родитель; + +КонецФункции + #КонецЕсли // АПК:361-выкл нет обращения к серверному коду. diff --git a/SSL/src/Catalogs/НаборыДополнительныхРеквизитовИСведений/ObjectModule.bsl b/SSL/src/Catalogs/НаборыДополнительныхРеквизитовИСведений/ObjectModule.bsl index c1ff81944..8b5145a2a 100644 --- a/SSL/src/Catalogs/НаборыДополнительныхРеквизитовИСведений/ObjectModule.bsl +++ b/SSL/src/Catalogs/НаборыДополнительныхРеквизитовИСведений/ObjectModule.bsl @@ -98,6 +98,19 @@ #КонецОбласти +#Область СлужебныеПроцедурыИФункции + +Процедура ПриЧтенииПредставленийНаСервере() Экспорт + + Если ОбщегоНазначения.ПодсистемаСуществует("СтандартныеПодсистемы.Мультиязычность") Тогда + МодульМультиязычностьСервер = ОбщегоНазначения.ОбщийМодуль("МультиязычностьСервер"); + МодульМультиязычностьСервер.ПриЧтенииПредставленийНаСервере(ЭтотОбъект); + КонецЕсли; + +КонецПроцедуры + +#КонецОбласти + #Иначе ВызватьИсключение НСтр("ru = 'Недопустимый вызов объекта на клиенте.'"); #КонецЕсли \ No newline at end of file diff --git a/SSL/src/Catalogs/ПапкиЭлектронныхПисем/ManagerModule.bsl b/SSL/src/Catalogs/ПапкиЭлектронныхПисем/ManagerModule.bsl index 153af3008..eab365a57 100644 --- a/SSL/src/Catalogs/ПапкиЭлектронныхПисем/ManagerModule.bsl +++ b/SSL/src/Catalogs/ПапкиЭлектронныхПисем/ManagerModule.bsl @@ -149,16 +149,16 @@ МетаданныеОбъекта = Метаданные.НайтиПоПолномуИмени(ПолноеИмяОбъекта); - ТекстСообщения = НСтр("ru = 'Не удалось обработать %ИмяОбъекта%: %Ссылка% по причине: %Причина%'"); - ТекстСообщения = СтрЗаменить(ТекстСообщения, "%ИмяОбъекта%", ПолноеИмяОбъекта); - ТекстСообщения = СтрЗаменить(ТекстСообщения, "%Ссылка%", ОбъектыДляОбработки.Ссылка); - ТекстСообщения = СтрЗаменить(ТекстСообщения, "%Причина%", ПодробноеПредставлениеОшибки(ИнформацияОбОшибке())); + ТекстСообщения = СтроковыеФункцииКлиентСервер.ПодставитьПараметрыВСтроку( + НСтр("ru = 'Не удалось обработать %1 %2 по причине: + |%3'"), + ПолноеИмяОбъекта, ОбъектыДляОбработки.Ссылка, ПодробноеПредставлениеОшибки(ИнформацияОбОшибке())); ЗаписьЖурналаРегистрации(ОбновлениеИнформационнойБазы.СобытиеЖурналаРегистрации(), - УровеньЖурналаРегистрации.Предупреждение, - МетаданныеОбъекта, - ОбъектыДляОбработки.Ссылка, - ТекстСообщения); + УровеньЖурналаРегистрации.Предупреждение, + МетаданныеОбъекта, + ОбъектыДляОбработки.Ссылка, + ТекстСообщения); КонецПопытки; diff --git a/SSL/src/Catalogs/Пользователи/Forms/ФормаСписка/Module.bsl b/SSL/src/Catalogs/Пользователи/Forms/ФормаСписка/Module.bsl index 60b413a9d..dba444610 100644 --- a/SSL/src/Catalogs/Пользователи/Forms/ФормаСписка/Module.bsl +++ b/SSL/src/Catalogs/Пользователи/Forms/ФормаСписка/Module.bsl @@ -1449,6 +1449,7 @@ КонецПроцедуры // СтандартныеПодсистемы.ПодключаемыеКоманды + &НаКлиенте Процедура Подключаемый_ВыполнитьКоманду(Команда) МодульПодключаемыеКомандыКлиент = ОбщегоНазначенияКлиент.ОбщийМодуль("ПодключаемыеКомандыКлиент"); diff --git a/SSL/src/Catalogs/Пользователи/Forms/ФормаЭлемента/Module.bsl b/SSL/src/Catalogs/Пользователи/Forms/ФормаЭлемента/Module.bsl index 0768cbaa3..86899a471 100644 --- a/SSL/src/Catalogs/Пользователи/Forms/ФормаЭлемента/Module.bsl +++ b/SSL/src/Catalogs/Пользователи/Forms/ФормаЭлемента/Module.bsl @@ -558,10 +558,12 @@ &НаКлиенте Процедура ПослеЗаписи(ПараметрыЗаписи) + // СтандартныеПодсистемы.ПодключаемыеКоманды Если ОбщегоНазначенияКлиент.ПодсистемаСуществует("СтандартныеПодсистемы.ПодключаемыеКоманды") Тогда МодульПодключаемыеКомандыКлиент = ОбщегоНазначенияКлиент.ОбщийМодуль("ПодключаемыеКомандыКлиент"); МодульПодключаемыеКомандыКлиент.ПослеЗаписи(ЭтотОбъект, Объект, ПараметрыЗаписи); КонецЕсли; + // Конец СтандартныеПодсистемы.ПодключаемыеКоманды Оповестить("Запись_Пользователи", Новый Структура, Объект.Ссылка); @@ -2515,6 +2517,33 @@ КонецФункции +// СтандартныеПодсистемы.ПодключаемыеКоманды + +&НаКлиенте +Процедура Подключаемый_ВыполнитьКоманду(Команда) + МодульПодключаемыеКомандыКлиент = ОбщегоНазначенияКлиент.ОбщийМодуль("ПодключаемыеКомандыКлиент"); + МодульПодключаемыеКомандыКлиент.НачатьВыполнениеКоманды(ЭтотОбъект, Команда, Объект); +КонецПроцедуры + +&НаКлиенте +Процедура Подключаемый_ПродолжитьВыполнениеКомандыНаСервере(ПараметрыВыполнения, ДополнительныеПараметры) Экспорт + ВыполнитьКомандуНаСервере(ПараметрыВыполнения); +КонецПроцедуры + +&НаСервере +Процедура ВыполнитьКомандуНаСервере(ПараметрыВыполнения) + МодульПодключаемыеКоманды = ОбщегоНазначения.ОбщийМодуль("ПодключаемыеКоманды"); + МодульПодключаемыеКоманды.ВыполнитьКоманду(ЭтотОбъект, ПараметрыВыполнения, Объект); +КонецПроцедуры + +&НаКлиенте +Процедура Подключаемый_ОбновитьКоманды() + МодульПодключаемыеКомандыКлиентСервер = ОбщегоНазначенияКлиент.ОбщийМодуль("ПодключаемыеКомандыКлиентСервер"); + МодульПодключаемыеКомандыКлиентСервер.ОбновитьКоманды(ЭтотОбъект, Объект); +КонецПроцедуры + +// Конец СтандартныеПодсистемы.ПодключаемыеКоманды + //////////////////////////////////////////////////////////////////////////////// // Для работы интерфейса ролей. @@ -2544,30 +2573,4 @@ КонецПроцедуры -// СтандартныеПодсистемы.ПодключаемыеКоманды -&НаКлиенте -Процедура Подключаемый_ВыполнитьКоманду(Команда) - МодульПодключаемыеКомандыКлиент = ОбщегоНазначенияКлиент.ОбщийМодуль("ПодключаемыеКомандыКлиент"); - МодульПодключаемыеКомандыКлиент.НачатьВыполнениеКоманды(ЭтотОбъект, Команда, Объект); -КонецПроцедуры - -&НаКлиенте -Процедура Подключаемый_ПродолжитьВыполнениеКомандыНаСервере(ПараметрыВыполнения, ДополнительныеПараметры) Экспорт - ВыполнитьКомандуНаСервере(ПараметрыВыполнения); -КонецПроцедуры - -&НаСервере -Процедура ВыполнитьКомандуНаСервере(ПараметрыВыполнения) - МодульПодключаемыеКоманды = ОбщегоНазначения.ОбщийМодуль("ПодключаемыеКоманды"); - МодульПодключаемыеКоманды.ВыполнитьКоманду(ЭтотОбъект, ПараметрыВыполнения, Объект); -КонецПроцедуры - -&НаКлиенте -Процедура Подключаемый_ОбновитьКоманды() - МодульПодключаемыеКомандыКлиентСервер = ОбщегоНазначенияКлиент.ОбщийМодуль("ПодключаемыеКомандыКлиентСервер"); - МодульПодключаемыеКомандыКлиентСервер.ОбновитьКоманды(ЭтотОбъект, Объект); -КонецПроцедуры - -// Конец СтандартныеПодсистемы.ПодключаемыеКоманды - #КонецОбласти \ No newline at end of file diff --git a/SSL/src/Catalogs/Пользователи/ManagerModule.bsl b/SSL/src/Catalogs/Пользователи/ManagerModule.bsl index 62c3aca71..aefa3a1fd 100644 --- a/SSL/src/Catalogs/Пользователи/ManagerModule.bsl +++ b/SSL/src/Catalogs/Пользователи/ManagerModule.bsl @@ -167,14 +167,15 @@ Если ОбъектовОбработано = 0 И ПроблемныхОбъектов <> 0 Тогда ТекстСообщения = СтроковыеФункцииКлиентСервер.ПодставитьПараметрыВСтроку( - НСтр("ru = 'Процедуре ОбработатьДанныеДляПереходаНаНовуюВерсию не удалось обработать некоторых пользователей (пропущены): %1 + НСтр("ru = 'Не удалось обработать некоторых сведения о пользователях (пропущены): %1 |%2'"), ПроблемныхОбъектов, СтрСоединить(СписокОшибок, Символы.ПС)); ВызватьИсключение ТекстСообщения; Иначе ЗаписьЖурналаРегистрации(ОбновлениеИнформационнойБазы.СобытиеЖурналаРегистрации(), УровеньЖурналаРегистрации.Информация, Метаданные.Справочники.Пользователи,, - СтроковыеФункцииКлиентСервер.ПодставитьПараметрыВСтроку(НСтр("ru = 'Процедура ОбработатьДанныеДляПереходаНаНовуюВерсию обработала очередную порцию пользователей: %1'"), - ОбъектовОбработано)); + СтроковыеФункцииКлиентСервер.ПодставитьПараметрыВСтроку( + НСтр("ru = 'Обработана очередная порция сведений о пользователях: %1'"), + ОбъектовОбработано)); КонецЕсли; КонецПроцедуры diff --git a/SSL/src/Catalogs/ПоставляемыеДополнительныеОтчетыИОбработки/ПоставляемыеДополнительныеОтчетыИОбработки.mdo b/SSL/src/Catalogs/ПоставляемыеДополнительныеОтчетыИОбработки/ПоставляемыеДополнительныеОтчетыИОбработки.mdo index fd5fad905..f7e2b8971 100644 --- a/SSL/src/Catalogs/ПоставляемыеДополнительныеОтчетыИОбработки/ПоставляемыеДополнительныеОтчетыИОбработки.mdo +++ b/SSL/src/Catalogs/ПоставляемыеДополнительныеОтчетыИОбработки/ПоставляемыеДополнительныеОтчетыИОбработки.mdo @@ -196,7 +196,10 @@ Причина отключения - EnumRef.ПричиныОтключенияДополнительныхОтчетовИОбработокВМоделиСервиса + String + + 10 + ru diff --git a/SSL/src/Catalogs/ПравилаПроверкиУчета/Forms/ФормаСписка/Form.form b/SSL/src/Catalogs/ПравилаПроверкиУчета/Forms/ФормаСписка/Form.form index 65b2b18af..278caa5ed 100644 --- a/SSL/src/Catalogs/ПравилаПроверкиУчета/Forms/ФормаСписка/Form.form +++ b/SSL/src/Catalogs/ПравилаПроверкиУчета/Forms/ФормаСписка/Form.form @@ -676,9 +676,6 @@ true - - Список.Ref - Список.ВыполняетсяТолькоВКонтексте diff --git a/SSL/src/Catalogs/ПравилаПроверкиУчета/ManagerModule.bsl b/SSL/src/Catalogs/ПравилаПроверкиУчета/ManagerModule.bsl index e8601bda5..2dadb2b63 100644 --- a/SSL/src/Catalogs/ПравилаПроверкиУчета/ManagerModule.bsl +++ b/SSL/src/Catalogs/ПравилаПроверкиУчета/ManagerModule.bsl @@ -77,10 +77,8 @@ ПроблемныхОбъектов = ПроблемныхОбъектов + 1; Комментарий = СтроковыеФункцииКлиентСервер.ПодставитьПараметрыВСтроку( - НСтр("ru = 'Не удалось установить источник данных правила проверки %1. - |Возможно он поврежден и не подлежит восстановлению. - | - |Информация для администратора: %2'"), + НСтр("ru = 'Не удалось обработать правило проверки %1 по причине: + |%2'"), ОтключаемаяПроверкаСсылка, ПодробноеПредставлениеОшибки(ИнформацияОбОшибке())); ЗаписьЖурналаРегистрации( @@ -100,14 +98,14 @@ Если ОбъектовОбработано = 0 И ПроблемныхОбъектов <> 0 Тогда ТекстСообщения = СтроковыеФункцииКлиентСервер.ПодставитьПараметрыВСтроку( - НСтр("ru = 'Процедуре Справочник.ПравилаПроверкиУчета.ОбработатьДанныеДляПереходаНаНовуюВерсию не удалось обработать некоторые записи проблемных объектов (пропущены): %1'"), + НСтр("ru = 'Не удалось обработать некоторые правила проверки (пропущены): %1'"), ПроблемныхОбъектов); ВызватьИсключение ТекстСообщения; Иначе - ЗаписьЖурналаРегистрации(ОбновлениеИнформационнойБазы.СобытиеЖурналаРегистрации(), УровеньЖурналаРегистрации.Информация, - , , + ЗаписьЖурналаРегистрации(ОбновлениеИнформационнойБазы.СобытиеЖурналаРегистрации(), + УровеньЖурналаРегистрации.Информация, , , СтроковыеФункцииКлиентСервер.ПодставитьПараметрыВСтроку( - НСтр("ru = 'Процедура Справочник.ПравилаПроверкиУчета.ОбработатьДанныеДляПереходаНаНовуюВерсию обработала очередную порцию проблемных объектов: %1'"), + НСтр("ru = 'Обработана очередная порция правил проверки: %1'"), ОбъектовОбработано)); КонецЕсли; diff --git a/SSL/src/Catalogs/ПредопределенныеВариантыОтчетов/ПредопределенныеВариантыОтчетов.mdo b/SSL/src/Catalogs/ПредопределенныеВариантыОтчетов/ПредопределенныеВариантыОтчетов.mdo index ca5bd01c2..83e2f16c0 100644 --- a/SSL/src/Catalogs/ПредопределенныеВариантыОтчетов/ПредопределенныеВариантыОтчетов.mdo +++ b/SSL/src/Catalogs/ПредопределенныеВариантыОтчетов/ПредопределенныеВариантыОтчетов.mdo @@ -122,14 +122,14 @@ AsDescription InDialog BothWays - - Отчет + + ВидимостьПоУмолчанию ru - Отчет + Видимость по умолчанию - CatalogRef.ИдентификаторыОбъектовМетаданных + Boolean ru @@ -138,29 +138,6 @@ - Index - Use - - - КлючВарианта - - ru - Ключ варианта - - - String - - 256 - - - - ru - - - - - - Index Use @@ -197,109 +174,26 @@ Index Use - - ВидимостьПоУмолчанию + + КлючВарианта ru - Видимость по умолчанию - - - Boolean - - - ru - - - - - - Use - - - Описание - - ru - Описание - - - String - - - - ru - - - - - - Use - Use - - - ХешНастроек - - ru - Хеш настроек + Ключ варианта String - 32 + 256 ru - Используется при обновлении программы. + - Use - - - НаименованияПолей - - ru - Наименования полей - - - String - - - - ru - Наименования полей, выведенных в отчете. -Используется при поиске. - - true - true - - - - Use - Use - - - НаименованияПараметровИОтборов - - ru - Наименования параметров и отборов - - - String - - - - ru - Наименования параметров и отборов отчета. -Используется при поиске. - - true - true - - - - Use + Index Use @@ -315,6 +209,48 @@ ru Дополнительная терминология (в т.ч. специализированная или устаревшая). +Используется при поиске. + + + + + Use + Use + + + КлючевыеСловаЯзык1 + + ru + Ключевые слова (дополнительный язык) + + + String + + + + ru + Дополнительная терминология (в т.ч. специализированная или устаревшая). +Используется при поиске. + + + + + Use + Use + + + КлючевыеСловаЯзык2 + + ru + Ключевые слова (дополнительный язык 2) + + + String + + + + ru + Дополнительная терминология (в т.ч. специализированная или устаревшая). Используется при поиске. @@ -340,6 +276,244 @@ Use + + НаименованияПараметровИОтборов + + ru + Наименования параметров и отборов + + + String + + + + ru + Наименования параметров и отборов отчета. +Используется при поиске. + + true + true + + + + Use + Use + + + НаименованияПараметровИОтборовЯзык1 + + ru + Наименования параметров и отборов (дополнительный язык) + + + String + + + + ru + Наименования параметров и отборов отчета. +Используется при поиске. + + true + true + + + + Use + Use + + + НаименованияПараметровИОтборовЯзык2 + + ru + Наименования параметров и отборов (дополнительный язык) + + + String + + + + ru + Наименования параметров и отборов отчета. +Используется при поиске. + + true + true + + + + Use + Use + + + НаименованияПолей + + ru + Наименования полей + + + String + + + + ru + Наименования полей, выведенных в отчете. +Используется при поиске. + + true + true + + + + Use + Use + + + НаименованияПолейЯзык1 + + ru + Наименования полей (дополнительный язык) + + + String + + + + ru + Наименования полей, выведенных в отчете. +Используется при поиске. + + true + true + + + + Use + Use + + + НаименованияПолейЯзык2 + + ru + Наименования полей (дополнительный язык 2) + + + String + + + + ru + Наименования полей, выведенных в отчете. +Используется при поиске. + + true + true + + + + Use + Use + + + Описание + + ru + Описание + + + String + + + + ru + + + + + + Use + Use + + + ОписаниеЯзык1 + + ru + Описание (дополнительный язык) + + + String + + + + ru + + + + + + Use + Use + + + ОписаниеЯзык2 + + ru + Описание (дополнительный язык 2) + + + String + + + + ru + + + + + + Use + Use + + + Отчет + + ru + Отчет + + + CatalogRef.ИдентификаторыОбъектовМетаданных + + + ru + + + + + + Index + Use + + + ХешНастроек + + ru + Хеш настроек + + + String + + 32 + + + + ru + Используется при обновлении программы. + + + + + Use + diff --git a/SSL/src/Catalogs/ПредопределенныеВариантыОтчетовРасширений/ПредопределенныеВариантыОтчетовРасширений.mdo b/SSL/src/Catalogs/ПредопределенныеВариантыОтчетовРасширений/ПредопределенныеВариантыОтчетовРасширений.mdo index 0a5fac72d..91571f58e 100644 --- a/SSL/src/Catalogs/ПредопределенныеВариантыОтчетовРасширений/ПредопределенныеВариантыОтчетовРасширений.mdo +++ b/SSL/src/Catalogs/ПредопределенныеВариантыОтчетовРасширений/ПредопределенныеВариантыОтчетовРасширений.mdo @@ -340,6 +340,180 @@ Use + + ОписаниеЯзык1 + + ru + Описание (дополнительный язык) + + + String + + + + ru + + + + + + Use + Use + + + ОписаниеЯзык2 + + ru + Описание (дополнительный язык 2) + + + String + + + + ru + + + + + + Use + Use + + + НаименованияПолейЯзык1 + + ru + Наименования полей (дополнительный язык) + + + String + + + + ru + Наименования полей, выведенных в отчете. +Используется при поиске. + + true + true + + + + Use + Use + + + НаименованияПолейЯзык2 + + ru + Наименования полей (дополнительный язык 2) + + + String + + + + ru + Наименования полей, выведенных в отчете. +Используется при поиске. + + true + true + + + + Use + Use + + + НаименованияПараметровИОтборовЯзык1 + + ru + Наименования параметров и отборов (дополнительный язык) + + + String + + + + ru + Наименования параметров и отборов отчета. +Используется при поиске. + + true + true + + + + Use + Use + + + НаименованияПараметровИОтборовЯзык2 + + ru + Наименования параметров и отборов (дополнительный язык 2) + + + String + + + + ru + Наименования параметров и отборов отчета. +Используется при поиске. + + true + true + + + + Use + Use + + + КлючевыеСловаЯзык1 + + ru + Ключевые слова (дополнительный язык) + + + String + + + + ru + Дополнительная терминология (в т.ч. специализированная или устаревшая). +Используется при поиске. + + + + + Use + Use + + + КлючевыеСловаЯзык2 + + ru + Ключевые слова (дополнительный язык 2) + + + String + + + + ru + Дополнительная терминология (в т.ч. специализированная или устаревшая). +Используется при поиске. + + + + + Use + Use + diff --git a/SSL/src/Catalogs/ПрограммыЭлектроннойПодписиИШифрования/ManagerModule.bsl b/SSL/src/Catalogs/ПрограммыЭлектроннойПодписиИШифрования/ManagerModule.bsl index d91808b18..f1c61a516 100644 --- a/SSL/src/Catalogs/ПрограммыЭлектроннойПодписиИШифрования/ManagerModule.bsl +++ b/SSL/src/Catalogs/ПрограммыЭлектроннойПодписиИШифрования/ManagerModule.bsl @@ -230,15 +230,15 @@ Если ОбъектовОбработано = 0 И ПроблемныхОбъектов <> 0 Тогда ТекстСообщения = СтроковыеФункцииКлиентСервер.ПодставитьПараметрыВСтроку( - НСтр("ru = 'Процедуре Справочники.ПрограммыЭлектроннойПодписиИШифрования.ОбработатьДанныеДляПереходаНаНовуюВерсию не удалось обработать некоторые программы электронной подписи (пропущены): %1'"), - ПроблемныхОбъектов); + НСтр("ru = 'Не удалось обработать некоторые программы электронной подписи (пропущены): %1'"), + ПроблемныхОбъектов); ВызватьИсключение ТекстСообщения; Иначе ЗаписьЖурналаРегистрации(ОбновлениеИнформационнойБазы.СобытиеЖурналаРегистрации(), УровеньЖурналаРегистрации.Информация, - Метаданные.НайтиПоПолномуИмени("Справочник.ПрограммыЭлектроннойПодписиИШифрования"),, - СтроковыеФункцииКлиентСервер.ПодставитьПараметрыВСтроку( - НСтр("ru = 'Процедура Справочники.ПрограммыЭлектроннойПодписиИШифрования.ОбработатьДанныеДляПереходаНаНовуюВерсию обработала очередную порцию программ электронной подписи: %1'"), - ОбъектовОбработано)); + Метаданные.Справочники.ПрограммыЭлектроннойПодписиИШифрования,, + СтроковыеФункцииКлиентСервер.ПодставитьПараметрыВСтроку( + НСтр("ru = 'Обработана очередная порция программ электронной подписи: %1'"), + ОбъектовОбработано)); КонецЕсли; Параметры.ОбработкаЗавершена = ОбработкаЗавершена; diff --git a/SSL/src/Catalogs/ПрофилиГруппДоступа/Forms/ФормаСписка/Form.form b/SSL/src/Catalogs/ПрофилиГруппДоступа/Forms/ФормаСписка/Form.form index c5b466ac5..ed9dac262 100644 --- a/SSL/src/Catalogs/ПрофилиГруппДоступа/Forms/ФормаСписка/Form.form +++ b/SSL/src/Catalogs/ПрофилиГруппДоступа/Forms/ФормаСписка/Form.form @@ -647,6 +647,10 @@ Left true + + OnActivateRow + СписокПриАктивизацииСтроки + OnChange СписокПриИзменении @@ -745,6 +749,7 @@ true true true + MultiRow 1 1 AutoUse diff --git a/SSL/src/Catalogs/ПрофилиГруппДоступа/Forms/ФормаСписка/Module.bsl b/SSL/src/Catalogs/ПрофилиГруппДоступа/Forms/ФормаСписка/Module.bsl index 44cd5d26e..68cfd50f4 100644 --- a/SSL/src/Catalogs/ПрофилиГруппДоступа/Forms/ФормаСписка/Module.bsl +++ b/SSL/src/Catalogs/ПрофилиГруппДоступа/Forms/ФормаСписка/Module.bsl @@ -55,6 +55,15 @@ ТолькоПросмотр = Истина; КонецЕсли; + // СтандартныеПодсистемы.ПодключаемыеКоманды + Если ОбщегоНазначения.ПодсистемаСуществует("СтандартныеПодсистемы.ПодключаемыеКоманды") Тогда + МодульПодключаемыеКоманды = ОбщегоНазначения.ОбщийМодуль("ПодключаемыеКоманды"); + ПараметрыРазмещения = МодульПодключаемыеКоманды.ПараметрыРазмещения(); + ПараметрыРазмещения.КоманднаяПанель = Элементы.КоманднаяПанель; + МодульПодключаемыеКоманды.ПриСозданииНаСервере(ЭтотОбъект, ПараметрыРазмещения); + КонецЕсли; + // Конец СтандартныеПодсистемы.ПодключаемыеКоманды + КонецПроцедуры #КонецОбласти @@ -90,6 +99,18 @@ #Область ОбработчикиСобытийЭлементовТаблицыФормыСписок +&НаКлиенте +Процедура СписокПриАктивизацииСтроки(Элемент) + + // СтандартныеПодсистемы.ПодключаемыеКоманды + Если ОбщегоНазначенияКлиент.ПодсистемаСуществует("СтандартныеПодсистемы.ПодключаемыеКоманды") Тогда + МодульПодключаемыеКомандыКлиент = ОбщегоНазначенияКлиент.ОбщийМодуль("ПодключаемыеКомандыКлиент"); + МодульПодключаемыеКомандыКлиент.НачатьОбновлениеКоманд(ЭтотОбъект); + КонецЕсли; + // Конец СтандартныеПодсистемы.ПодключаемыеКоманды + +КонецПроцедуры + &НаКлиенте Процедура СписокПриИзменении(Элемент) @@ -174,4 +195,31 @@ КонецПроцедуры +// СтандартныеПодсистемы.ПодключаемыеКоманды + +&НаКлиенте +Процедура Подключаемый_ВыполнитьКоманду(Команда) + МодульПодключаемыеКомандыКлиент = ОбщегоНазначенияКлиент.ОбщийМодуль("ПодключаемыеКомандыКлиент"); + МодульПодключаемыеКомандыКлиент.НачатьВыполнениеКоманды(ЭтотОбъект, Команда, Элементы.Список); +КонецПроцедуры + +&НаКлиенте +Процедура Подключаемый_ПродолжитьВыполнениеКомандыНаСервере(ПараметрыВыполнения, ДополнительныеПараметры) Экспорт + ВыполнитьКомандуНаСервере(ПараметрыВыполнения); +КонецПроцедуры + +&НаСервере +Процедура ВыполнитьКомандуНаСервере(ПараметрыВыполнения) + МодульПодключаемыеКоманды = ОбщегоНазначения.ОбщийМодуль("ПодключаемыеКоманды"); + МодульПодключаемыеКоманды.ВыполнитьКоманду(ЭтотОбъект, ПараметрыВыполнения, Элементы.Список); +КонецПроцедуры + +&НаКлиенте +Процедура Подключаемый_ОбновитьКоманды() + МодульПодключаемыеКомандыКлиентСервер = ОбщегоНазначенияКлиент.ОбщийМодуль("ПодключаемыеКомандыКлиентСервер"); + МодульПодключаемыеКомандыКлиентСервер.ОбновитьКоманды(ЭтотОбъект, Элементы.Список); +КонецПроцедуры + +// Конец СтандартныеПодсистемы.ПодключаемыеКоманды + #КонецОбласти diff --git a/SSL/src/Catalogs/ПрофилиГруппДоступа/Forms/ФормаЭлемента/Form.form b/SSL/src/Catalogs/ПрофилиГруппДоступа/Forms/ФормаЭлемента/Form.form index 397334200..c98fe43e1 100644 --- a/SSL/src/Catalogs/ПрофилиГруппДоступа/Forms/ФормаЭлемента/Form.form +++ b/SSL/src/Catalogs/ПрофилиГруппДоступа/Forms/ФормаЭлемента/Form.form @@ -1923,6 +1923,10 @@ Left + + OnOpen + ПриОткрытии + OnCreateAtServer ПриСозданииНаСервере diff --git a/SSL/src/Catalogs/ПрофилиГруппДоступа/Forms/ФормаЭлемента/Module.bsl b/SSL/src/Catalogs/ПрофилиГруппДоступа/Forms/ФормаЭлемента/Module.bsl index 66760309b..1a5ca64d3 100644 --- a/SSL/src/Catalogs/ПрофилиГруппДоступа/Forms/ФормаЭлемента/Module.bsl +++ b/SSL/src/Catalogs/ПрофилиГруппДоступа/Forms/ФормаЭлемента/Module.bsl @@ -64,30 +64,56 @@ Элементы.ФормаЗаписатьИЗакрыть.Доступность = Не ТолькоПросмотр И ПравоДоступа("Редактирование", Метаданные.Справочники.ПрофилиГруппДоступа); + // СтандартныеПодсистемы.ПодключаемыеКоманды + Если ОбщегоНазначения.ПодсистемаСуществует("СтандартныеПодсистемы.ПодключаемыеКоманды") Тогда + МодульПодключаемыеКоманды = ОбщегоНазначения.ОбщийМодуль("ПодключаемыеКоманды"); + ПараметрыРазмещения = МодульПодключаемыеКоманды.ПараметрыРазмещения(); + ПараметрыРазмещения.КоманднаяПанель = Элементы.КомандыФормы; + МодульПодключаемыеКоманды.ПриСозданииНаСервере(ЭтотОбъект, ПараметрыРазмещения); + КонецЕсли; + // Конец СтандартныеПодсистемы.ПодключаемыеКоманды + +КонецПроцедуры + +&НаКлиенте +Процедура ПриОткрытии(Отказ) + + // СтандартныеПодсистемы.ПодключаемыеКоманды + Если ОбщегоНазначенияКлиент.ПодсистемаСуществует("СтандартныеПодсистемы.ПодключаемыеКоманды") Тогда + МодульПодключаемыеКомандыКлиент = ОбщегоНазначенияКлиент.ОбщийМодуль("ПодключаемыеКомандыКлиент"); + МодульПодключаемыеКомандыКлиент.НачатьОбновлениеКоманд(ЭтотОбъект); + КонецЕсли; + // Конец СтандартныеПодсистемы.ПодключаемыеКоманды + КонецПроцедуры &НаСервере Процедура ПриЧтенииНаСервере(ТекущийОбъект) - Если НЕ ВыполненаПроцедураПриСозданииНаСервере Тогда - Возврат; - КонецЕсли; - - ОбработатьИнтерфейсРолей("ЗаполнитьРоли", Объект.Роли); - ОбработатьИнтерфейсРолей("НастроитьИнтерфейсРолейПриЧтенииНаСервере", Истина); - - УправлениеДоступомСлужебный.ПриПовторномЧтенииНаСервереФормыРедактированияРазрешенныхЗначений( - ЭтотОбъект, ТекущийОбъект); - - УстановитьДоступностьОписанияИВосстановленияПоставляемогоПрофиля(ТекущийОбъект); - // СтандартныеПодсистемы.УправлениеДоступом Если ОбщегоНазначения.ПодсистемаСуществует("СтандартныеПодсистемы.УправлениеДоступом") Тогда МодульУправлениеДоступом = ОбщегоНазначения.ОбщийМодуль("УправлениеДоступом"); МодульУправлениеДоступом.ПриЧтенииНаСервере(ЭтотОбъект, ТекущийОбъект); КонецЕсли; // Конец СтандартныеПодсистемы.УправлениеДоступом - + + // СтандартныеПодсистемы.ПодключаемыеКоманды + Если ОбщегоНазначения.ПодсистемаСуществует("СтандартныеПодсистемы.ПодключаемыеКоманды") Тогда + МодульПодключаемыеКомандыКлиентСервер = ОбщегоНазначения.ОбщийМодуль("ПодключаемыеКомандыКлиентСервер"); + МодульПодключаемыеКомандыКлиентСервер.ОбновитьКоманды(ЭтотОбъект, Объект); + КонецЕсли; + // Конец СтандартныеПодсистемы.ПодключаемыеКоманды + + Если ВыполненаПроцедураПриСозданииНаСервере Тогда + ОбработатьИнтерфейсРолей("ЗаполнитьРоли", Объект.Роли); + ОбработатьИнтерфейсРолей("НастроитьИнтерфейсРолейПриЧтенииНаСервере", Истина); + + УправлениеДоступомСлужебный.ПриПовторномЧтенииНаСервереФормыРедактированияРазрешенныхЗначений( + ЭтотОбъект, ТекущийОбъект); + + УстановитьДоступностьОписанияИВосстановленияПоставляемогоПрофиля(ТекущийОбъект); + КонецЕсли; + КонецПроцедуры &НаКлиенте @@ -153,6 +179,13 @@ ОбъектЗаписывался = Истина; ТребуетсяОбновитьГруппыДоступаПрофиля = Ложь; + // СтандартныеПодсистемы.ПодключаемыеКоманды + Если ОбщегоНазначенияКлиент.ПодсистемаСуществует("СтандартныеПодсистемы.ПодключаемыеКоманды") Тогда + МодульПодключаемыеКомандыКлиент = ОбщегоНазначенияКлиент.ОбщийМодуль("ПодключаемыеКомандыКлиент"); + МодульПодключаемыеКомандыКлиент.ПослеЗаписи(ЭтотОбъект, Объект, ПараметрыЗаписи); + КонецЕсли; + // Конец СтандартныеПодсистемы.ПодключаемыеКоманды + Оповестить("Запись_ПрофилиГруппДоступа", Новый Структура, Объект.Ссылка); Если ПараметрыЗаписи.Свойство("ПерсональныеГруппыДоступаСОбновленнымНаименованием") Тогда @@ -657,6 +690,32 @@ КонецПроцедуры +// СтандартныеПодсистемы.ПодключаемыеКоманды +&НаКлиенте +Процедура Подключаемый_ВыполнитьКоманду(Команда) + МодульПодключаемыеКомандыКлиент = ОбщегоНазначенияКлиент.ОбщийМодуль("ПодключаемыеКомандыКлиент"); + МодульПодключаемыеКомандыКлиент.НачатьВыполнениеКоманды(ЭтотОбъект, Команда, Объект); +КонецПроцедуры + +&НаКлиенте +Процедура Подключаемый_ПродолжитьВыполнениеКомандыНаСервере(ПараметрыВыполнения, ДополнительныеПараметры) Экспорт + ВыполнитьКомандуНаСервере(ПараметрыВыполнения); +КонецПроцедуры + +&НаСервере +Процедура ВыполнитьКомандуНаСервере(ПараметрыВыполнения) + МодульПодключаемыеКоманды = ОбщегоНазначения.ОбщийМодуль("ПодключаемыеКоманды"); + МодульПодключаемыеКоманды.ВыполнитьКоманду(ЭтотОбъект, ПараметрыВыполнения, Объект); +КонецПроцедуры + +&НаКлиенте +Процедура Подключаемый_ОбновитьКоманды() + МодульПодключаемыеКомандыКлиентСервер = ОбщегоНазначенияКлиент.ОбщийМодуль("ПодключаемыеКомандыКлиентСервер"); + МодульПодключаемыеКомандыКлиентСервер.ОбновитьКоманды(ЭтотОбъект, Объект); +КонецПроцедуры + +// Конец СтандартныеПодсистемы.ПодключаемыеКоманды + //////////////////////////////////////////////////////////////////////////////// // Для работы интерфейса ролей. diff --git a/SSL/src/Catalogs/РассылкиОтчетов/Forms/ФормаЭлемента/Module.bsl b/SSL/src/Catalogs/РассылкиОтчетов/Forms/ФормаЭлемента/Module.bsl index 9c525a601..2d8aa7200 100644 --- a/SSL/src/Catalogs/РассылкиОтчетов/Forms/ФормаЭлемента/Module.bsl +++ b/SSL/src/Catalogs/РассылкиОтчетов/Forms/ФормаЭлемента/Module.bsl @@ -794,7 +794,9 @@ &НаКлиенте Процедура ДругойСпособДоставкиОкончаниеВводаТекста(Элемент, Текст, ДанныеВыбора, ПараметрыПолученияДанных, СтандартнаяОбработка) - СтандартнаяОбработка = НЕ ПустаяСтрока(Текст); + Если ПустаяСтрока(Текст) Тогда + СтандартнаяОбработка = Ложь; + КонецЕсли; КонецПроцедуры &НаКлиенте diff --git a/SSL/src/Catalogs/РолиИсполнителей/ManagerModule.bsl b/SSL/src/Catalogs/РолиИсполнителей/ManagerModule.bsl index 8923b836f..4a78c4297 100644 --- a/SSL/src/Catalogs/РолиИсполнителей/ManagerModule.bsl +++ b/SSL/src/Catalogs/РолиИсполнителей/ManagerModule.bsl @@ -171,7 +171,9 @@ Если ОбщегоНазначения.ПодсистемаСуществует("СтандартныеПодсистемы.Мультиязычность") Тогда МодульМультиязычностьСервер = ОбщегоНазначения.ОбщийМодуль("МультиязычностьСервер"); МодульМультиязычностьСервер.ЗаполнитьМультиязычныйРеквизит(Элемент, "Наименование", - "ru='Координатор выполнения задач'", КодыЯзыков); // @НСтр-2 + "ru='Координатор выполнения задач'", КодыЯзыков); // @НСтр-1 + Иначе + Элемент.Наименование = НСтр("ru = 'Координатор выполнения задач'", ОбщегоНазначения.КодОсновногоЯзыка()); КонецЕсли; Элемент.ИспользуетсяБезОбъектовАдресации = Истина; diff --git a/SSL/src/Catalogs/СертификатыКлючейЭлектроннойПодписиИШифрования/Forms/ВыборСертификатаДляПодписанияИлиРасшифровки/Form.form b/SSL/src/Catalogs/СертификатыКлючейЭлектроннойПодписиИШифрования/Forms/ВыборСертификатаДляПодписанияИлиРасшифровки/Form.form index 2aa12311c..0a4fa370c 100644 --- a/SSL/src/Catalogs/СертификатыКлючейЭлектроннойПодписиИШифрования/Forms/ВыборСертификатаДляПодписанияИлиРасшифровки/Form.form +++ b/SSL/src/Catalogs/СертификатыКлючейЭлектроннойПодписиИШифрования/Forms/ВыборСертификатаДляПодписанияИлиРасшифровки/Form.form @@ -800,8 +800,11 @@ true true - Сертификаты.ТипРазмещения + Сертификаты.СостояниеСертификата + + CommonPicture.СостоянияСертификатов + true @@ -1460,10 +1463,10 @@
- ГруппаУсиленнаяЗащитаЗакрытогоКлюча + ГруппаВводитьПарольВПрограммеЭлектроннойПодписи 856 - СертификатУсиленнаяЗащитаЗакрытогоКлюча + СертификатВводитьПарольВПрограммеЭлектроннойПодписи 528 true true @@ -1471,23 +1474,16 @@ true - СертификатУсиленнаяЗащитаЗакрытогоКлюча + СертификатВводитьПарольВПрограммеЭлектроннойПодписи Right - - ru - Уточняет, что пароль к закрытому ключу сертификата будет вводиться в отдельном окне -программой электронной подписи и шифрования, а не программой 1С:Предприятие. - -Только для сертификатов, которые выпущены с усиленной защитой закрытого ключа. - Button OnChange - СертификатУсиленнаяЗащитаЗакрытогоКлючаПриИзменении + СертификатВводитьПарольВПрограммеЭлектроннойПодписиПриИзменении - СертификатУсиленнаяЗащитаЗакрытогоКлючаРасширеннаяПодсказка + СертификатВводитьПарольВПрограммеЭлектроннойПодписиРасширеннаяПодсказка 530 Label true @@ -1497,7 +1493,7 @@ - СертификатУсиленнаяЗащитаЗакрытогоКлючаКонтекстноеМеню + СертификатВводитьПарольВПрограммеЭлектроннойПодписиКонтекстноеМеню 529 true @@ -1663,11 +1659,6 @@ true - - ru - Пароль запрашивает программа электронной подписи, а не программа 1С:Предприятие, -так как для выбранного сертификата указана усиленная защита закрытого ключа. - Button ПояснениеУсиленногоПароляРасширеннаяПодсказка @@ -1880,10 +1871,10 @@ <key>ru</key> - <value>Усиленная защита закрытого ключа</value> + <value>Вводить пароль в программе электронной подписи</value> - ГруппаУсиленнаяЗащитаЗакрытогоКлючаРасширеннаяПодсказка + ГруппаВводитьПарольВПрограммеЭлектроннойПодписиРасширеннаяПодсказка 857 Label true @@ -2265,6 +2256,35 @@ true + + СостояниеСертификата + 31 + + Number + + 1 + + + + true + + + true + + + + ЕстьВСправочнике + 35 + + Boolean + + + true + + + true + + СертификатНаименование @@ -2321,10 +2341,10 @@ - СертификатУсиленнаяЗащитаЗакрытогоКлюча + СертификатВводитьПарольВПрограммеЭлектроннойПодписи <key>ru</key> - <value>Усиленная защита закрытого ключа</value> + <value>Вводить пароль в программе электронной подписи</value> 16 @@ -2706,6 +2726,19 @@ true + + ЕстьПравоНаДобавлениеВСправочник + 34 + + Boolean + + + true + + + true + + Далее diff --git a/SSL/src/Catalogs/СертификатыКлючейЭлектроннойПодписиИШифрования/Forms/ВыборСертификатаДляПодписанияИлиРасшифровки/Module.bsl b/SSL/src/Catalogs/СертификатыКлючейЭлектроннойПодписиИШифрования/Forms/ВыборСертификатаДляПодписанияИлиРасшифровки/Module.bsl index db672de3f..4918e8626 100644 --- a/SSL/src/Catalogs/СертификатыКлючейЭлектроннойПодписиИШифрования/Forms/ВыборСертификатаДляПодписанияИлиРасшифровки/Module.bsl +++ b/SSL/src/Catalogs/СертификатыКлючейЭлектроннойПодписиИШифрования/Forms/ВыборСертификатаДляПодписанияИлиРасшифровки/Module.bsl @@ -18,8 +18,30 @@ &НаСервере Процедура ПриСозданииНаСервере(Отказ, СтандартнаяОбработка) + ЕстьПравоНаДобавлениеВСправочник = ПравоДоступа("Добавление", + Метаданные.Справочники.СертификатыКлючейЭлектроннойПодписиИШифрования); + + УсловноеОформление.Элементы.Очистить(); + Если Не ЕстьПравоНаДобавлениеВСправочник Тогда + ЭлементУсловногоОформления = УсловноеОформление.Элементы.Добавить(); + + ЭлементЦветаОформления = ЭлементУсловногоОформления.Оформление.Элементы.Найти("TextColor"); + ЭлементЦветаОформления.Значение = Метаданные.ЭлементыСтиля.ТекстЗапрещеннойЯчейкиЦвет.Значение; + ЭлементЦветаОформления.Использование = Истина; + + ПолеОформления = ЭлементУсловногоОформления.Поля.Элементы.Добавить(); + ПолеОформления.Поле = Новый ПолеКомпоновкиДанных("Сертификаты"); + ПолеОформления.Использование = Истина; + + ЭлементОтбора = ЭлементУсловногоОформления.Отбор.Элементы.Добавить(Тип("ЭлементОтбораКомпоновкиДанных")); + ЭлементОтбора.ЛевоеЗначение = Новый ПолеКомпоновкиДанных("Сертификаты.ЕстьВСправочнике"); + ЭлементОтбора.ВидСравнения = ВидСравненияКомпоновкиДанных.Равно; + ЭлементОтбора.ПравоеЗначение = Ложь; + ЭлементОтбора.Использование = Истина; + КонецЕсли; + ЭлектроннаяПодписьСлужебный.НастроитьПояснениеВводаПароля(ЭтотОбъект, - Элементы.СертификатУсиленнаяЗащитаЗакрытогоКлюча.Имя, + Элементы.СертификатВводитьПарольВПрограммеЭлектроннойПодписи.Имя, Элементы.ПояснениеУсиленногоПароля.Имя); СертификатПараметрыРеквизитов = @@ -31,10 +53,6 @@ ВыполнятьНаСервере = Параметры.ВыполнятьНаСервере; ЕстьОблачнаяПодпись = ЭлектроннаяПодписьСлужебный.ИспользоватьСервисОблачнойПодписи(); - Если ЕстьОблачнаяПодпись Тогда - МодульСервисКриптографииDSS = ОбщегоНазначения.ОбщийМодуль("СервисКриптографииDSS"); - Элементы.Сертификаты.КартинкаСтрок = МодульСервисКриптографииDSS.ПолучитьКартинкуПодсистемы("ТипыСертификатов"); - КонецЕсли; ОтборПоОрганизации = Параметры.ОтборПоОрганизации; @@ -217,7 +235,7 @@ КонецПроцедуры &НаКлиенте -Процедура СертификатУсиленнаяЗащитаЗакрытогоКлючаПриИзменении(Элемент) +Процедура СертификатВводитьПарольВПрограммеЭлектроннойПодписиПриИзменении(Элемент) ЭлектроннаяПодписьСлужебныйКлиент.ОбработатьПарольВФорме(ЭтотОбъект, ВнутренниеДанные, СвойстваПароля, Новый Структура("ПриИзмененииСвойствСертификата", Истина)); @@ -422,7 +440,7 @@ ПараметрыСертификата.Наименование = СертификатНаименование; ПараметрыСертификата.Пользователь = СертификатПользователь; ПараметрыСертификата.Организация = СертификатОрганизация; - ПараметрыСертификата.УсиленнаяЗащитаЗакрытогоКлюча = СертификатУсиленнаяЗащитаЗакрытогоКлюча; + ПараметрыСертификата.ВводитьПарольВПрограммеЭлектроннойПодписи = СертификатВводитьПарольВПрограммеЭлектроннойПодписи; ЭлектроннаяПодписьКлиент.ЗаписатьСертификатВСправочник( Новый ОписаниеОповещения("ВыбратьПослеПроверкиСертификата", ЭтотОбъект, Неопределено), @@ -440,9 +458,11 @@ Возврат; КонецЕсли; - ДополнительныеПараметры = Новый Структура; + ДополнительныеПараметры = ЭлектроннаяПодписьСлужебныйКлиент.ПараметрыОповещенияПриЗаписиСертификата(); + Если Не ЗначениеЗаполнено(Сертификат) Тогда - ДополнительныеПараметры.Вставить("ЭтоНовый"); + ДополнительныеПараметры.ЭтоНовый = Истина; + ДополнительныеПараметры.Установлен = Истина; КонецЕсли; Сертификат = Результат; @@ -473,7 +493,7 @@ &НаКлиенте Процедура ВыбратьПослеПроверкиСертификатаОблачнойПодписи(Результат, Контекст) Экспорт - ДополнительныеПараметры = Новый Структура; + ДополнительныеПараметры = ЭлектроннаяПодписьСлужебныйКлиент.ПараметрыОповещенияПриЗаписиСертификата(); Если Не Результат.Выполнено Тогда ОписаниеОшибки = Результат.Ошибка; ИначеЕсли Не Результат.Результат Тогда @@ -492,7 +512,7 @@ КонецЕсли; Если Не ЗначениеЗаполнено(Сертификат) Тогда - ДополнительныеПараметры.Вставить("ЭтоНовый"); + ДополнительныеПараметры.ЭтоНовый = Истина; КонецЕсли; ЗаписатьСертификатВСправочникОблачнаяПодпись(Контекст.УчетнаяЗапись); @@ -509,7 +529,7 @@ &НаКлиенте Процедура ВыбратьПослеПроверкиСертификатаВМоделиСервиса(Результат, Контекст) Экспорт - ДополнительныеПараметры = Новый Структура; + ДополнительныеПараметры = ЭлектроннаяПодписьСлужебныйКлиент.ПараметрыОповещенияПриЗаписиСертификата(); Если Не Результат.Выполнено Тогда ОписаниеОшибки = КраткоеПредставлениеОшибки(Результат.ИнформацияОбОшибке); ИначеЕсли Не Результат.Действителен Тогда @@ -529,7 +549,7 @@ КонецЕсли; Если Не ЗначениеЗаполнено(Сертификат) Тогда - ДополнительныеПараметры.Вставить("ЭтоНовый"); + ДополнительныеПараметры.ЭтоНовый = Истина; КонецЕсли; ЗаписатьСертификатВСправочникВМоделиСервиса(); @@ -740,6 +760,14 @@ Возврат; КонецЕсли; + Если Не ЕстьПравоНаДобавлениеВСправочник И Не ТекущиеДанные.ЕстьВСправочнике Тогда + Результат.ОбновитьСписокСертификатов = Истина; + Результат.ОписаниеОшибки = + НСтр("ru = 'Недостаточно прав на использование сертификата, отсутствующего в справочнике.'"); + ВыполнитьОбработкуОповещения(Оповещение, Результат); + Возврат; + КонецЕсли; + СертификатНаКлиенте = ТекущиеДанные.НаКлиенте; СертификатНаСервере = ТекущиеДанные.НаСервере; СертификатВОблачномСервисе = ТекущиеДанные.ВОблачномСервисе; @@ -923,11 +951,11 @@ КонецЕсли; КонецЕсли; - Если СертификатПараметрыРеквизитов.Свойство("УсиленнаяЗащитаЗакрытогоКлюча") Тогда - Если Не СертификатПараметрыРеквизитов.УсиленнаяЗащитаЗакрытогоКлюча.Видимость Тогда - Элементы.СертификатУсиленнаяЗащитаЗакрытогоКлюча.Видимость = Ложь; - ИначеЕсли СертификатПараметрыРеквизитов.УсиленнаяЗащитаЗакрытогоКлюча.ТолькоПросмотр Тогда - Элементы.СертификатУсиленнаяЗащитаЗакрытогоКлюча.ТолькоПросмотр = Истина; + Если СертификатПараметрыРеквизитов.Свойство("ВводитьПарольВПрограммеЭлектроннойПодписи") Тогда + Если Не СертификатПараметрыРеквизитов.ВводитьПарольВПрограммеЭлектроннойПодписи.Видимость Тогда + Элементы.СертификатВводитьПарольВПрограммеЭлектроннойПодписи.Видимость = Ложь; + ИначеЕсли СертификатПараметрыРеквизитов.ВводитьПарольВПрограммеЭлектроннойПодписи.ТолькоПросмотр Тогда + Элементы.СертификатВводитьПарольВПрограммеЭлектроннойПодписи.ТолькоПросмотр = Истина; КонецЕсли; КонецЕсли; @@ -935,7 +963,7 @@ СертификатПользователь = Контекст.СохраненныеСвойства.Пользователь; СертификатОрганизация = Контекст.СохраненныеСвойства.Организация; СертификатНаименование = Контекст.СохраненныеСвойства.Наименование; - СертификатУсиленнаяЗащитаЗакрытогоКлюча = Контекст.СохраненныеСвойства.УсиленнаяЗащитаЗакрытогоКлюча; + СертификатВводитьПарольВПрограммеЭлектроннойПодписи = Контекст.СохраненныеСвойства.ВводитьПарольВПрограммеЭлектроннойПодписи; ЭлектроннаяПодписьСлужебныйКлиент.ОбработатьПарольВФорме(ЭтотОбъект, ВнутренниеДанные, СвойстваПароля); @@ -950,9 +978,9 @@ КонецЕсли; Если СертификатВОблачномСервисе ИЛИ СертификатОблачнойПодписи Тогда - Элементы.ГруппаУсиленнаяЗащитаЗакрытогоКлюча.Видимость = Ложь; + Элементы.ГруппаВводитьПарольВПрограммеЭлектроннойПодписи.Видимость = Ложь; Иначе - Элементы.ГруппаУсиленнаяЗащитаЗакрытогоКлюча.Видимость = Истина; + Элементы.ГруппаВводитьПарольВПрограммеЭлектроннойПодписи.Видимость = Истина; ПодключитьОбработчикОжидания("ОбработчикОжиданияАктивизироватьЭлементПароль", 0.1, Истина); КонецЕсли; @@ -971,7 +999,7 @@ Процедура ЗаписатьСертификатВСправочникВМоделиСервиса() ПрограммаОблачногоСервиса = ЭлектроннаяПодписьСлужебный.ПрограммаОблачногоСервиса(); - СертификатУсиленнаяЗащитаЗакрытогоКлюча = Ложь; + СертификатВводитьПарольВПрограммеЭлектроннойПодписи = Ложь; ЭлектроннаяПодписьСлужебный.ЗаписатьСертификатВСправочник(ЭтотОбъект, ПрограммаОблачногоСервиса, Ложь); @@ -980,7 +1008,7 @@ &НаСервере Процедура ЗаписатьСертификатВСправочникОблачнаяПодпись(УчетнаяЗапись) - СертификатУсиленнаяЗащитаЗакрытогоКлюча = Ложь; + СертификатВводитьПарольВПрограммеЭлектроннойПодписи = Ложь; ЭлектроннаяПодписьСлужебный.ЗаписатьСертификатВСправочник(ЭтотОбъект, УчетнаяЗапись, Ложь); diff --git a/SSL/src/Catalogs/СертификатыКлючейЭлектроннойПодписиИШифрования/Forms/ДобавлениеСертификата/Module.bsl b/SSL/src/Catalogs/СертификатыКлючейЭлектроннойПодписиИШифрования/Forms/ДобавлениеСертификата/Module.bsl index f6f1db776..8924e27c2 100644 --- a/SSL/src/Catalogs/СертификатыКлючейЭлектроннойПодписиИШифрования/Forms/ДобавлениеСертификата/Module.bsl +++ b/SSL/src/Catalogs/СертификатыКлючейЭлектроннойПодписиИШифрования/Forms/ДобавлениеСертификата/Module.bsl @@ -28,7 +28,7 @@ Элементы.Страницы.ТекущаяСтраница = Элементы.СтраницаНазначение; КонецЕсли; - Если Не ЭлектроннаяПодпись.ИспользоватьЭлектронныеПодписи() Тогда + Если Не ЭлектроннаяПодпись.ДобавлениеИзменениеЭлектронныхПодписей() Тогда Назначение = "ДляШифрованияИРасшифровки"; Если Не ЗначениеЗаполнено(СпособДобавленияСертификата) Тогда Элементы.Страницы.ТекущаяСтраница = Элементы.СтраницаНазначениеБезЭлектроннойПодписи; diff --git a/SSL/src/Catalogs/СертификатыКлючейЭлектроннойПодписиИШифрования/Forms/ДобавлениеСертификатаДляШифрования/Form.form b/SSL/src/Catalogs/СертификатыКлючейЭлектроннойПодписиИШифрования/Forms/ДобавлениеСертификатаДляШифрования/Form.form index b032f6394..8bff0568c 100644 --- a/SSL/src/Catalogs/СертификатыКлючейЭлектроннойПодписиИШифрования/Forms/ДобавлениеСертификатаДляШифрования/Form.form +++ b/SSL/src/Catalogs/СертификатыКлючейЭлектроннойПодписиИШифрования/Forms/ДобавлениеСертификатаДляШифрования/Form.form @@ -691,8 +691,11 @@ <enableStartDrag>true</enableStartDrag> <enableDrag>true</enableDrag> <rowPictureDataPath xsi:type="form:DataPath"> - <segments>Сертификаты.ТипРазмещения</segments> + <segments>Сертификаты.СостояниеСертификата</segments> </rowPictureDataPath> + <rowsPicture xsi:type="core:PictureRef"> + <picture>CommonPicture.КоллекцияВидыСобытийЖурналаРегистрации</picture> + </rowsPicture> <autoMaxCardHeight>true</autoMaxCardHeight> <rowFilter xsi:type="core:UndefinedValue"/> </items> @@ -1714,6 +1717,33 @@ <common>true</common> </edit> </columns> + <columns> + <name>СостояниеСертификата</name> + <id>20</id> + <valueType> + <types>String</types> + <stringQualifiers/> + </valueType> + <view> + <common>true</common> + </view> + <edit> + <common>true</common> + </edit> + </columns> + <columns> + <name>ЕстьВСправочнике</name> + <id>25</id> + <valueType> + <types>Boolean</types> + </valueType> + <view> + <common>true</common> + </view> + <edit> + <common>true</common> + </edit> + </columns> </attributes> <attributes> <name>СертификатНаименование</name> @@ -1963,6 +1993,19 @@ <common>true</common> </edit> </attributes> + <attributes> + <name>ЕстьПравоНаДобавлениеВСправочник</name> + <id>23</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 efe67507b..21a9fd1d0 100644 --- a/SSL/src/Catalogs/СертификатыКлючейЭлектроннойПодписиИШифрования/Forms/ДобавлениеСертификатаДляШифрования/Module.bsl +++ b/SSL/src/Catalogs/СертификатыКлючейЭлектроннойПодписиИШифрования/Forms/ДобавлениеСертификатаДляШифрования/Module.bsl @@ -11,6 +11,28 @@ &НаСервере Процедура ПриСозданииНаСервере(Отказ, СтандартнаяОбработка) + ЕстьПравоНаДобавлениеВСправочник = ПравоДоступа("Добавление", + Метаданные.Справочники.СертификатыКлючейЭлектроннойПодписиИШифрования); + + УсловноеОформление.Элементы.Очистить(); + Если Не ЕстьПравоНаДобавлениеВСправочник Тогда + ЭлементУсловногоОформления = УсловноеОформление.Элементы.Добавить(); + + ЭлементЦветаОформления = ЭлементУсловногоОформления.Оформление.Элементы.Найти("TextColor"); + ЭлементЦветаОформления.Значение = Метаданные.ЭлементыСтиля.ТекстЗапрещеннойЯчейкиЦвет.Значение; + ЭлементЦветаОформления.Использование = Истина; + + ПолеОформления = ЭлементУсловногоОформления.Поля.Элементы.Добавить(); + ПолеОформления.Поле = Новый ПолеКомпоновкиДанных("Сертификаты"); + ПолеОформления.Использование = Истина; + + ЭлементОтбора = ЭлементУсловногоОформления.Отбор.Элементы.Добавить(Тип("ЭлементОтбораКомпоновкиДанных")); + ЭлементОтбора.ЛевоеЗначение = Новый ПолеКомпоновкиДанных("Сертификаты.ЕстьВСправочнике"); + ЭлементОтбора.ВидСравнения = ВидСравненияКомпоновкиДанных.Равно; + ЭлементОтбора.ПравоеЗначение = Ложь; + ЭлементОтбора.Использование = Истина; + КонецЕсли; + СертификатПараметрыРеквизитов = ЭлектроннаяПодписьСлужебный.НовыеПараметрыРеквизитовСертификата(); @@ -228,6 +250,12 @@ Возврат; КонецЕсли; + Если Не ЕстьПравоНаДобавлениеВСправочник И Не ТекущиеДанные.ЕстьВСправочнике Тогда + ПоказатьПредупреждение(, + НСтр("ru = 'Недостаточно прав на использование сертификата, отсутствующего в справочнике.'")); + Возврат; + КонецЕсли; + Элементы.Далее.Доступность = Ложь; УчетнаяЗапись = Неопределено; @@ -377,9 +405,9 @@ Возврат; КонецЕсли; - ДополнительныеПараметры = Новый Структура; + ДополнительныеПараметры = ЭлектроннаяПодписьСлужебныйКлиент.ПараметрыОповещенияПриЗаписиСертификата(); Если Не ЗначениеЗаполнено(Сертификат) Тогда - ДополнительныеПараметры.Вставить("ЭтоНовый"); + ДополнительныеПараметры.ЭтоНовый = Истина; КонецЕсли; ЗаписатьСертификатВСправочник(); diff --git a/SSL/src/Catalogs/СертификатыКлючейЭлектроннойПодписиИШифрования/Forms/ОповещениеОбОкончанииСрокаДействия/Form.form b/SSL/src/Catalogs/СертификатыКлючейЭлектроннойПодписиИШифрования/Forms/ОповещениеОбОкончанииСрокаДействия/Form.form index fa31637d9..2a9881248 100644 --- a/SSL/src/Catalogs/СертификатыКлючейЭлектроннойПодписиИШифрования/Forms/ОповещениеОбОкончанииСрокаДействия/Form.form +++ b/SSL/src/Catalogs/СертификатыКлючейЭлектроннойПодписиИШифрования/Forms/ОповещениеОбОкончанииСрокаДействия/Form.form @@ -135,6 +135,44 @@ <horizontalAlign>Left</horizontalAlign> </extInfo> </items> + <items xsi:type="form:Decoration"> + <name>ДекорацияПеревыпущен</name> + <id>28</id> + <title> + <key>ru</key> + <value><link СертификатПеревыпущен>Перевыпущен</></value> + + true + true + + true + + + ДекорацияПеревыпущенРасширеннаяПодсказка + 30 + Label + true + true + + Left + + + + ДекорацияПеревыпущенКонтекстноеМеню + 29 + true + + true + Label + true + true + + + URLProcessing + ДекорацияПеревыпущенОбработкаНавигационнойСсылки + + + БольшеНеНапоминать 7 @@ -147,6 +185,10 @@ БольшеНеНапоминать Right + + OnChange + БольшеНеНапоминатьПриИзменении + БольшеНеНапоминатьExtendedTooltip 19 @@ -172,6 +214,32 @@ ФормаКоманднаяПанель -1 + + ФормаПеревыпустить + 23 + true + true + + true + + + ФормаПеревыпуститьРасширеннаяПодсказка + 24 + Label + true + true + + Left + + + Form.Command.Перевыпустить + Auto + true + true + true + UserCmds + Auto + Закрыть 9 @@ -192,7 +260,7 @@ Form.StandardCommand.Close - true + Normal true true UserCmds @@ -264,6 +332,22 @@ true + + ВыпущенныеСертификаты + 4 + + ValueList + + + true + + + true + + + + + ОткрытьСертификат @@ -281,6 +365,24 @@ <currentRowUse>DontUse</currentRowUse> <selectedRowsUse>Auto</selectedRowsUse> </formCommands> + <formCommands> + <name>Перевыпустить</name> + <title> + <key>ru</key> + <value>Перевыпустить...</value> + + 2 + + true + + + + Перевыпустить + + + Auto + Auto + Сертификат diff --git a/SSL/src/Catalogs/СертификатыКлючейЭлектроннойПодписиИШифрования/Forms/ОповещениеОбОкончанииСрокаДействия/Module.bsl b/SSL/src/Catalogs/СертификатыКлючейЭлектроннойПодписиИШифрования/Forms/ОповещениеОбОкончанииСрокаДействия/Module.bsl index 21fd514f6..d8ee7738a 100644 --- a/SSL/src/Catalogs/СертификатыКлючейЭлектроннойПодписиИШифрования/Forms/ОповещениеОбОкончанииСрокаДействия/Module.bsl +++ b/SSL/src/Catalogs/СертификатыКлючейЭлектроннойПодписиИШифрования/Forms/ОповещениеОбОкончанииСрокаДействия/Module.bsl @@ -1,3 +1,4 @@ + /////////////////////////////////////////////////////////////////////////////////////////////////////// // Copyright (c) 2021, ООО 1С-Софт // Все права защищены. Эта программа и сопроводительные материалы предоставляются @@ -12,7 +13,22 @@ Процедура ПриСозданииНаСервере(Отказ, СтандартнаяОбработка) Сертификат = Параметры.Сертификат; + ЗаявлениеНаВыпускСертификатаДоступно = ЭлектроннаяПодпись.ОбщиеНастройки().ЗаявлениеНаВыпускСертификатаДоступно; + Элементы.ФормаПеревыпустить.Видимость = ЗаявлениеНаВыпускСертификатаДоступно + И ПравоДоступа("Редактирование", Метаданные.Справочники.СертификатыКлючейЭлектроннойПодписиИШифрования); + Если ЗаявлениеНаВыпускСертификатаДоступно Тогда + ОбработкаЗаявлениеНаВыпускНовогоКвалифицированногоСертификата = + ОбщегоНазначения.МенеджерОбъектаПоПолномуИмени( + "Обработка.ЗаявлениеНаВыпускНовогоКвалифицированногоСертификата"); + ВыпущенныеСертификаты = ОбработкаЗаявлениеНаВыпускНовогоКвалифицированногоСертификата.ВыпущенныеСертификаты(Сертификат); + КонецЕсли; + + ЕстьПеревыпущенные = ВыпущенныеСертификаты.Количество() > 0; + Элементы.Закрыть.КнопкаПоУмолчанию = ЕстьПеревыпущенные; + Элементы.ДекорацияПеревыпущен.Видимость = ЕстьПеревыпущенные; + Элементы.Совет.Видимость = Не ЕстьПеревыпущенные; + КонецПроцедуры &НаКлиенте @@ -21,41 +37,57 @@ Если ЗавершениеРаботы Тогда Возврат; КонецЕсли; - Если БольшеНеНапоминать Тогда - УстановитьПометкуНаСервере(Сертификат, УникальныйИдентификатор); + +КонецПроцедуры + +#КонецОбласти + +#Область ОбработчикиСобытийЭлементовШапкиФормы + +&НаКлиенте +Процедура БольшеНеНапоминатьПриИзменении(Элемент) + + ЭлектроннаяПодписьСлужебныйКлиент.ИзменитьОтметкуОНапоминании(Сертификат, Не БольшеНеНапоминать, ЭтотОбъект); + +КонецПроцедуры + +&НаКлиенте +Процедура ДекорацияПеревыпущенОбработкаНавигационнойСсылки(Элемент, НавигационнаяСсылкаФорматированнойСтроки, СтандартнаяОбработка) + + СтандартнаяОбработка = Ложь; + Если ВыпущенныеСертификаты.Количество() = 1 Тогда + ОткрытьСертификатПослеВыбораИзСписка(ВыпущенныеСертификаты[0], Неопределено); + Иначе + ОписаниеОповещения = Новый ОписаниеОповещения("ОткрытьСертификатПослеВыбораИзСписка", ЭтотОбъект, Элемент); + ПоказатьВыборИзСписка(ОписаниеОповещения, ВыпущенныеСертификаты); КонецЕсли; КонецПроцедуры #КонецОбласти +#Область ОбработчикиКомандФормы + +&НаКлиенте +Процедура Перевыпустить(Команда) + + ПараметрыФормы = Новый Структура("СертификатОснование", Сертификат); + ОткрытьФорму("Обработка.ЗаявлениеНаВыпускНовогоКвалифицированногоСертификата.Форма.Форма", ПараметрыФормы); + +КонецПроцедуры + +#КонецОбласти + #Область СлужебныеПроцедурыИФункции -&НаСервереБезКонтекста -Процедура УстановитьПометкуНаСервере(Сертификат, Идентификатор) +&НаКлиенте +Процедура ОткрытьСертификатПослеВыбораИзСписка(Результат, ДополнительныеПараметры) Экспорт - ЗаблокироватьДанныеДляРедактирования(Сертификат, , Идентификатор); - - Блокировка = Новый БлокировкаДанных; - ЭлементБлокировки = Блокировка.Добавить("Справочник.СертификатыКлючейЭлектроннойПодписиИШифрования"); - ЭлементБлокировки.УстановитьЗначение("Ссылка", Сертификат); - - НачатьТранзакцию(); - Попытка + Если Результат <> Неопределено Тогда + ОткрытьФорму("Справочник.СертификатыКлючейЭлектроннойПодписиИШифрования.Форма.ФормаЭлемента", + Новый Структура("Ключ", Результат.Значение)); + КонецЕсли; - Блокировка.Заблокировать(); - - СертификатОбъект = Сертификат.ПолучитьОбъект(); - СертификатОбъект.ПользовательОповещенОСрокеДействия = Истина; - СертификатОбъект.Записать(); - - ЗафиксироватьТранзакцию(); - - Исключение - ОтменитьТранзакцию(); - ВызватьИсключение; - КонецПопытки; - КонецПроцедуры -#КонецОбласти +#КонецОбласти \ No newline at end of file diff --git a/SSL/src/Catalogs/СертификатыКлючейЭлектроннойПодписиИШифрования/Forms/ПодборСертификатовДляШифрования/Form.form b/SSL/src/Catalogs/СертификатыКлючейЭлектроннойПодписиИШифрования/Forms/ПодборСертификатовДляШифрования/Form.form index 5a71ef0e9..61b405c21 100644 --- a/SSL/src/Catalogs/СертификатыКлючейЭлектроннойПодписиИШифрования/Forms/ПодборСертификатовДляШифрования/Form.form +++ b/SSL/src/Catalogs/СертификатыКлючейЭлектроннойПодписиИШифрования/Forms/ПодборСертификатовДляШифрования/Form.form @@ -1214,10 +1214,10 @@ СертификатыПереопределяемый.ДанныеСертификата КАК ДанныеСертификата, СертификатыПереопределяемый.Программа КАК Программа, СертификатыПереопределяемый.Отозван КАК Отозван, - СертификатыПереопределяемый.УсиленнаяЗащитаЗакрытогоКлюча КАК УсиленнаяЗащитаЗакрытогоКлюча, + СертификатыПереопределяемый.ВводитьПарольВПрограммеЭлектроннойПодписи КАК ВводитьПарольВПрограммеЭлектроннойПодписи, СертификатыПереопределяемый.Организация КАК Организация, СертификатыПереопределяемый.Пользователь КАК Пользователь, - СертификатыПереопределяемый.ПользовательОповещенОСрокеДействия КАК ПользовательОповещенОСрокеДействия, + СертификатыПереопределяемый.УдалитьПользовательОповещенОСрокеДействия КАК УдалитьПользовательОповещенОСрокеДействия, СертификатыПереопределяемый.Предопределенный КАК Предопределенный, СертификатыПереопределяемый.ИмяПредопределенныхДанных КАК ИмяПредопределенныхДанных, ВЫБОР diff --git a/SSL/src/Catalogs/СертификатыКлючейЭлектроннойПодписиИШифрования/Forms/ПодборСертификатовДляШифрования/Module.bsl b/SSL/src/Catalogs/СертификатыКлючейЭлектроннойПодписиИШифрования/Forms/ПодборСертификатовДляШифрования/Module.bsl index 1c5eaaeca..8ef6c0cb5 100644 --- a/SSL/src/Catalogs/СертификатыКлючейЭлектроннойПодписиИШифрования/Forms/ПодборСертификатовДляШифрования/Module.bsl +++ b/SSL/src/Catalogs/СертификатыКлючейЭлектроннойПодписиИШифрования/Forms/ПодборСертификатовДляШифрования/Module.bsl @@ -47,7 +47,7 @@ Процедура ОбработкаОповещения(ИмяСобытия, Параметр, Источник) Если ВРег(ИмяСобытия) = ВРег("Запись_СертификатыКлючейЭлектроннойПодписиИШифрования") - И Параметр.Свойство("ЭтоНовый") Тогда + И Параметр.ЭтоНовый Тогда Элементы.Список.Обновить(); Элементы.Список.ТекущаяСтрока = Источник; diff --git a/SSL/src/Catalogs/СертификатыКлючейЭлектроннойПодписиИШифрования/Forms/ПодписаниеДанных/Form.form b/SSL/src/Catalogs/СертификатыКлючейЭлектроннойПодписиИШифрования/Forms/ПодписаниеДанных/Form.form index 3766ec22d..2b1d4e150 100644 --- a/SSL/src/Catalogs/СертификатыКлючейЭлектроннойПодписиИШифрования/Forms/ПодписаниеДанных/Form.form +++ b/SSL/src/Catalogs/СертификатыКлючейЭлектроннойПодписиИШифрования/Forms/ПодписаниеДанных/Form.form @@ -304,11 +304,6 @@ true - - ru - Пароль запрашивает программа электронной подписи, а не программа 1С:Предприятие, -так как для выбранного сертификата указана усиленная защита закрытого ключа. - Button ПояснениеУсиленногоПароляРасширеннаяПодсказка @@ -1089,7 +1084,7 @@ - СертификатУсиленнаяЗащитаЗакрытогоКлюча + СертификатВводитьПарольВПрограммеЭлектроннойПодписи 18 Boolean @@ -1252,6 +1247,12 @@ ВыполнятьНаСервере + + ОповеститьОбОкончанииСрокаДействия + + Boolean + + diff --git a/SSL/src/Catalogs/СертификатыКлючейЭлектроннойПодписиИШифрования/Forms/ПодписаниеДанных/Module.bsl b/SSL/src/Catalogs/СертификатыКлючейЭлектроннойПодписиИШифрования/Forms/ПодписаниеДанных/Module.bsl index 0a80800a2..10855259b 100644 --- a/SSL/src/Catalogs/СертификатыКлючейЭлектроннойПодписиИШифрования/Forms/ПодписаниеДанных/Module.bsl +++ b/SSL/src/Catalogs/СертификатыКлючейЭлектроннойПодписиИШифрования/Forms/ПодписаниеДанных/Module.bsl @@ -357,7 +357,7 @@ Если БезПодтверждения И ( ДополнительныеПараметры.ПарольУказан - Или ДополнительныеПараметры.УсиленнаяЗащитаЗакрытогоКлюча + Или ДополнительныеПараметры.ВводитьПарольВПрограммеЭлектроннойПодписи Или ОблачныйПарольПодтвержден) Тогда Если МодульСервисКриптографииDSSПодтверждениеКлиент <> Неопределено Тогда diff --git a/SSL/src/Catalogs/СертификатыКлючейЭлектроннойПодписиИШифрования/Forms/ПроверкаСертификата/Form.form b/SSL/src/Catalogs/СертификатыКлючейЭлектроннойПодписиИШифрования/Forms/ПроверкаСертификата/Form.form index 71c853c69..e3b8649d4 100644 --- a/SSL/src/Catalogs/СертификатыКлючейЭлектроннойПодписиИШифрования/Forms/ПроверкаСертификата/Form.form +++ b/SSL/src/Catalogs/СертификатыКлючейЭлектроннойПодписиИШифрования/Forms/ПроверкаСертификата/Form.form @@ -3733,12 +3733,7 @@ true - - ru - Пароль запрашивает программа электронной подписи, а не программа 1С:Предприятие, -так как для выбранного сертификата указана усиленная защита закрытого ключа. - - None + Button ПояснениеУсиленногоПароляРасширеннаяПодсказка 121 @@ -4323,7 +4318,7 @@ - СертификатУсиленнаяЗащитаЗакрытогоКлюча + СертификатВводитьПарольВПрограммеЭлектроннойПодписи 7 Boolean diff --git a/SSL/src/Catalogs/СертификатыКлючейЭлектроннойПодписиИШифрования/Forms/ПроверкаСертификата/Module.bsl b/SSL/src/Catalogs/СертификатыКлючейЭлектроннойПодписиИШифрования/Forms/ПроверкаСертификата/Module.bsl index f9caa837b..7280dd49e 100644 --- a/SSL/src/Catalogs/СертификатыКлючейЭлектроннойПодписиИШифрования/Forms/ПроверкаСертификата/Module.bsl +++ b/SSL/src/Catalogs/СертификатыКлючейЭлектроннойПодписиИШифрования/Forms/ПроверкаСертификата/Module.bsl @@ -128,12 +128,12 @@ КонецЕсли; СвойстваСертификата = ОбщегоНазначения.ЗначенияРеквизитовОбъекта(Сертификат, - "ДанныеСертификата, Программа, УсиленнаяЗащитаЗакрытогоКлюча, Отпечаток"); + "ДанныеСертификата, Программа, ВводитьПарольВПрограммеЭлектроннойПодписи, Отпечаток"); Программа = СвойстваСертификата.Программа; АдресСертификата = ПоместитьВоВременноеХранилище( СвойстваСертификата.ДанныеСертификата.Получить(), УникальныйИдентификатор); - СертификатУсиленнаяЗащитаЗакрытогоКлюча = СвойстваСертификата.УсиленнаяЗащитаЗакрытогоКлюча; + СертификатВводитьПарольВПрограммеЭлектроннойПодписи = СвойстваСертификата.ВводитьПарольВПрограммеЭлектроннойПодписи; ЭтоПрограммаОблачнойПодписи = ТипЗнч(Программа) = ЭлектроннаяПодписьСлужебный.ПолучитьТипОблачнойПодписи() И ЭлектроннаяПодписьСлужебный.ИспользоватьСервисОблачнойПодписи(); ЭтоПрограммаОблачногоСервиса = Программа = ЭлектроннаяПодписьСлужебный.ПрограммаОблачногоСервиса(); @@ -369,7 +369,7 @@ Если КлиентскиеПараметры.Свойство("БезПодтверждения") И КлиентскиеПараметры.БезПодтверждения И (ДополнительныеПараметры.ПарольУказан - Или ДополнительныеПараметры.УсиленнаяЗащитаЗакрытогоКлюча) Тогда + Или ДополнительныеПараметры.ВводитьПарольВПрограммеЭлектроннойПодписи) Тогда Если Не КлиентскиеПараметры.Свойство("ОбработкаРезультата") Или ТипЗнч(КлиентскиеПараметры.ОбработкаРезультата) <> Тип("ОписаниеОповещения") Тогда @@ -706,7 +706,7 @@ ПараметрыСоздания = ЭлектроннаяПодписьСлужебныйКлиент.ПараметрыСозданияМенеджераКриптографии(); ПараметрыСоздания.Программа = Программа; ПараметрыСоздания.ПоказатьОшибку = Ложь; - ПараметрыСоздания.ИнтерактивныйРежим = СертификатУсиленнаяЗащитаЗакрытогоКлюча; + ПараметрыСоздания.ИнтерактивныйРежим = СертификатВводитьПарольВПрограммеЭлектроннойПодписи; ЭлектроннаяПодписьСлужебныйКлиент.СоздатьМенеджерКриптографии(Новый ОписаниеОповещения( "ПроверитьНаСторонеКлиентаПослеСозданияМенеджераКриптографии", ЭтотОбъект, Контекст), @@ -1214,7 +1214,7 @@ ИначеЕсли Результат.Выполнено И Результат.Результат Тогда ОписаниеОшибки = ""; Иначе - ОписаниеОшибки = Результат.Ошибка; + ОписаниеОшибки = Результат.СтатусОшибки.ИсходныйТекст; КонецЕсли; УстановитьЭлемент(ЭтотОбъект, "ДанныеСертификата", Ложь, ОписаниеОшибки, Истина, ОбъединятьРезультаты); @@ -1334,7 +1334,7 @@ ОписаниеОшибки = НСтр("ru = 'Форма проверки закрыта.'"); ИначеЕсли РезультатВызова <> Неопределено Тогда Если Не РезультатВызова.Выполнено Тогда - ОписаниеОшибки = РезультатВызова.Ошибка; + ОписаниеОшибки = РезультатВызова.СтатусОшибки.ИсходныйТекст; Иначе ОписаниеОшибки = ""; КонецЕсли; diff --git a/SSL/src/Catalogs/СертификатыКлючейЭлектроннойПодписиИШифрования/Forms/РасшифровкаДанных/Form.form b/SSL/src/Catalogs/СертификатыКлючейЭлектроннойПодписиИШифрования/Forms/РасшифровкаДанных/Form.form index 676bd9773..88eea90ff 100644 --- a/SSL/src/Catalogs/СертификатыКлючейЭлектроннойПодписиИШифрования/Forms/РасшифровкаДанных/Form.form +++ b/SSL/src/Catalogs/СертификатыКлючейЭлектроннойПодписиИШифрования/Forms/РасшифровкаДанных/Form.form @@ -302,11 +302,6 @@ true - - ru - Пароль запрашивает программа электронной подписи, а не программа 1С:Предприятие, -так как для выбранного сертификата указана усиленная защита закрытого ключа. - Button ПояснениеУсиленногоПароляРасширеннаяПодсказка @@ -981,7 +976,7 @@ - СертификатУсиленнаяЗащитаЗакрытогоКлюча + СертификатВводитьПарольВПрограммеЭлектроннойПодписи 18 Boolean diff --git a/SSL/src/Catalogs/СертификатыКлючейЭлектроннойПодписиИШифрования/Forms/РасшифровкаДанных/Module.bsl b/SSL/src/Catalogs/СертификатыКлючейЭлектроннойПодписиИШифрования/Forms/РасшифровкаДанных/Module.bsl index 521aa626c..2b784e468 100644 --- a/SSL/src/Catalogs/СертификатыКлючейЭлектроннойПодписиИШифрования/Forms/РасшифровкаДанных/Module.bsl +++ b/SSL/src/Catalogs/СертификатыКлючейЭлектроннойПодписиИШифрования/Forms/РасшифровкаДанных/Module.bsl @@ -399,7 +399,7 @@ Если БезПодтверждения И ( ДополнительныеПараметры.ПарольУказан - Или ДополнительныеПараметры.УсиленнаяЗащитаЗакрытогоКлюча + Или ДополнительныеПараметры.ВводитьПарольВПрограммеЭлектроннойПодписи Или ОблачныйПарольПодтвержден) Тогда Если МодульСервисКриптографииDSSПодтверждениеКлиент <> Неопределено Тогда diff --git a/SSL/src/Catalogs/СертификатыКлючейЭлектроннойПодписиИШифрования/Forms/СписокПользователей/Form.form b/SSL/src/Catalogs/СертификатыКлючейЭлектроннойПодписиИШифрования/Forms/СписокПользователей/Form.form index 73653df37..9a85d67aa 100644 --- a/SSL/src/Catalogs/СертификатыКлючейЭлектроннойПодписиИШифрования/Forms/СписокПользователей/Form.form +++ b/SSL/src/Catalogs/СертификатыКлючейЭлектроннойПодписиИШифрования/Forms/СписокПользователей/Form.form @@ -2,7 +2,7 @@ <key>ru</key> - <value>Список пользователей</value> + <value>Используют</value> ГруппаДанные @@ -50,7 +50,7 @@ ru - Только для меня + Только я ТолькоДляМеня @@ -131,7 +131,7 @@ ru - Добавить пользователей + Указанные пользователи СписокПользователей diff --git a/SSL/src/Catalogs/СертификатыКлючейЭлектроннойПодписиИШифрования/Forms/СписокПользователей/Module.bsl b/SSL/src/Catalogs/СертификатыКлючейЭлектроннойПодписиИШифрования/Forms/СписокПользователей/Module.bsl index 748fc5090..bd7da0116 100644 --- a/SSL/src/Catalogs/СертификатыКлючейЭлектроннойПодписиИШифрования/Forms/СписокПользователей/Module.bsl +++ b/SSL/src/Catalogs/СертификатыКлючейЭлектроннойПодписиИШифрования/Forms/СписокПользователей/Module.bsl @@ -67,8 +67,12 @@ Иначе Результат.Пользователь = ПользователиКлиент.ТекущийПользователь(); КонецЕсли; - КонецЕсли; - + Если Результат.Пользователи.Количество() = 1 Тогда + Результат.Пользователь = Результат.Пользователи[0]; + Результат.Пользователи.Очистить(); + КонецЕсли; + КонецЕсли; + Закрыть(Результат); КонецПроцедуры @@ -185,8 +189,7 @@ ЭлементыФормы.ПользователиПометитьВсе.Доступность = НЕ ЭлементыФормы.ТаблицаПользователей.ТолькоПросмотр; ЭлементыФормы.ПользователиОтменитьПометку.Доступность = НЕ ЭлементыФормы.ТаблицаПользователей.ТолькоПросмотр; - - + КонецПроцедуры #КонецОбласти diff --git a/SSL/src/Catalogs/СертификатыКлючейЭлектроннойПодписиИШифрования/Forms/ФормаВыбора/Form.form b/SSL/src/Catalogs/СертификатыКлючейЭлектроннойПодписиИШифрования/Forms/ФормаВыбора/Form.form index 8f57ede71..e58e8743b 100644 --- a/SSL/src/Catalogs/СертификатыКлючейЭлектроннойПодписиИШифрования/Forms/ФормаВыбора/Form.form +++ b/SSL/src/Catalogs/СертификатыКлючейЭлектроннойПодписиИШифрования/Forms/ФормаВыбора/Form.form @@ -588,10 +588,10 @@ СертификатыПереопределяемый.ДанныеСертификата КАК ДанныеСертификата, СертификатыПереопределяемый.Программа КАК Программа, СертификатыПереопределяемый.Отозван КАК Отозван, - СертификатыПереопределяемый.УсиленнаяЗащитаЗакрытогоКлюча КАК УсиленнаяЗащитаЗакрытогоКлюча, + СертификатыПереопределяемый.ВводитьПарольВПрограммеЭлектроннойПодписи КАК ВводитьПарольВПрограммеЭлектроннойПодписи, СертификатыПереопределяемый.Организация КАК Организация, СертификатыПереопределяемый.Пользователь КАК Пользователь, - СертификатыПереопределяемый.ПользовательОповещенОСрокеДействия КАК ПользовательОповещенОСрокеДействия, + СертификатыПереопределяемый.УдалитьПользовательОповещенОСрокеДействия КАК УдалитьПользовательОповещенОСрокеДействия, СертификатыПереопределяемый.Предопределенный КАК Предопределенный, СертификатыПереопределяемый.ИмяПредопределенныхДанных КАК ИмяПредопределенныхДанных ИЗ diff --git a/SSL/src/Catalogs/СертификатыКлючейЭлектроннойПодписиИШифрования/Forms/ФормаВыбора/Module.bsl b/SSL/src/Catalogs/СертификатыКлючейЭлектроннойПодписиИШифрования/Forms/ФормаВыбора/Module.bsl index 879e8d51f..add435263 100644 --- a/SSL/src/Catalogs/СертификатыКлючейЭлектроннойПодписиИШифрования/Forms/ФормаВыбора/Module.bsl +++ b/SSL/src/Catalogs/СертификатыКлючейЭлектроннойПодписиИШифрования/Forms/ФормаВыбора/Module.bsl @@ -47,8 +47,7 @@ Процедура ОбработкаОповещения(ИмяСобытия, Параметр, Источник) Если ВРег(ИмяСобытия) = ВРег("Запись_СертификатыКлючейЭлектроннойПодписиИШифрования") - И Параметр.Свойство("ЭтоНовый") Тогда - + И Параметр.ЭтоНовый Тогда Элементы.Список.Обновить(); Элементы.Список.ТекущаяСтрока = Источник; КонецЕсли; diff --git a/SSL/src/Catalogs/СертификатыКлючейЭлектроннойПодписиИШифрования/Forms/ФормаЭлемента/Form.form b/SSL/src/Catalogs/СертификатыКлючейЭлектроннойПодписиИШифрования/Forms/ФормаЭлемента/Form.form index 879b206ff..4f1a7a358 100644 --- a/SSL/src/Catalogs/СертификатыКлючейЭлектроннойПодписиИШифрования/Forms/ФормаЭлемента/Form.form +++ b/SSL/src/Catalogs/СертификатыКлючейЭлектроннойПодписиИШифрования/Forms/ФормаЭлемента/Form.form @@ -1,5 +1,190 @@ + + СостояниеСертификатаГруппа + 276 + + КартинкаСертификата + 281 + + <key>ru</key> + <value>Картинка сертификата</value> + + true + true + + true + + + КартинкаСертификатаРасширеннаяПодсказка + 283 + Label + true + true + + Left + + + + КартинкаСертификатаКонтекстноеМеню + 282 + true + + true + true + Center + + + CommonPicture.СертификатКлюча + + AsFileRef + + + + СостояниеСертификата + 290 + + <key>ru</key> + <value>Состояние сертификата</value> + + true + true + + true + + + СостояниеСертификатаРасширеннаяПодсказка + 292 + Label + true + true + + Left + + + + СостояниеСертификатаКонтекстноеМеню + 291 + true + + Label + true + true + + Left + + + + ДекорацияПеревыпущен + 305 + + <key>ru</key> + <value><link СертификатПеревыпущен>(перевыпущен)</></value> + + true + + true + + + ДекорацияПеревыпущенРасширеннаяПодсказка + 307 + Label + true + true + + Left + + + + ДекорацияПеревыпущенКонтекстноеМеню + 306 + true + + true + Label + true + true + + + URLProcessing + ДекорацияПеревыпущенОбработкаНавигационнойСсылки + + Left + + + + НапомнитьОПеревыпуске + 278 + true + true + + true + + + НапомнитьОПеревыпуске + + Right + + OnChange + НапомнитьОПеревыпускеПриИзменении + + + НапомнитьОПеревыпускеРасширеннаяПодсказка + 280 + Label + true + true + + Left + + + + НапомнитьОПеревыпускеКонтекстноеМеню + 279 + true + + CheckBoxField + Right + Enter + true + Left + true + + + true + true + + true + + + <key>ru</key> + <value>Состояние сертификата группа</value> + + true + + СостояниеСертификатаГруппаРасширеннаяПодсказка + 277 + Label + true + true + + Left + + + UsualGroup + + HorizontalIfPossible + Auto + WeakSeparation + true + true + + Style.ToolTipBackColor + + Auto + Auto + + ДанныеСертификата 151 @@ -704,10 +889,8 @@ Left true - 37 - true + 100 true - false true true true @@ -715,20 +898,259 @@ Normal - - Организация - 168 + + ГруппаРеквизитыСертификата + 300 + + ГруппаОрганизацияФизическоеЛицо + 295 + + Организация + 168 + true + true + + true + + + Объект.Организация + + + ОрганизацияРасширеннаяПодсказка + 170 + Label + true + true + + Left + + + + ОрганизацияКонтекстноеМеню + 169 + true + + InputField + Enter + true + Left + true + + true + true + true + true + true + true + true + Normal + DontUse + + + + ФизическоеЛицо + 287 + true + true + + true + + + Объект.ФизическоеЛицо + + + ФизическоеЛицоРасширеннаяПодсказка + 289 + Label + true + true + + Left + + + + ФизическоеЛицоКонтекстноеМеню + 288 + true + + InputField + Enter + true + Left + true + + true + true + true + true + true + true + Normal + + + true + true + + true + + + <key>ru</key> + <value>Организация физическое лицо</value> + + + ГруппаОрганизацияФизическоеЛицоРасширеннаяПодсказка + 296 + Label + true + true + + Left + + + UsualGroup + + Vertical + Auto + NormalSeparation + true + true + Auto + + + + ГруппаПользователи + 293 + + Пользователи + 273 + true + true + + true + + + ПредставлениеПользователей + + + ПользователиРасширеннаяПодсказка + 275 + Label + true + true + + Left + + + + ПользователиКонтекстноеМеню + 274 + true + + InputField + Enter + true + Left + true + + + StartChoice + ПользователиНачалоВыбора + + + Opening + ПользователиОткрытие + + true + true + true + true + true + true + Normal + + + + Добавил + 256 + true + true + + true + + + Объект.Добавил + + + ДобавилРасширеннаяПодсказка + 258 + Label + true + true + + Left + + + + ДобавилКонтекстноеМеню + 257 + true + + InputField + Enter + true + Left + true + + true + true + true + true + true + true + Normal + + + true + true + + true + + + <key>ru</key> + <value>Пользователи</value> + + + ГруппаПользователиРасширеннаяПодсказка + 294 + Label + true + true + + Left + + + UsualGroup + + Vertical + Auto + NormalSeparation + true + true + Auto + + true true true - - Объект.Организация - + + <key>ru</key> + <value>Реквизиты сертификата</value> + - ОрганизацияРасширеннаяПодсказка - 170 + ГруппаРеквизитыСертификатаРасширеннаяПодсказка + 301 Label true true @@ -736,115 +1158,14 @@ Left - - ОрганизацияКонтекстноеМеню - 169 - true - - InputField - Enter - true - Left - true - - true - true - true - true - true - true - true - Normal - DontUse - - - - Пользователи - 273 - true - true - - true - - - ПредставлениеПользователей - - - ПользователиРасширеннаяПодсказка - 275 - Label - true - true - - Left - - - - ПользователиКонтекстноеМеню - 274 - true - - InputField - Enter - true - Left - true - - - StartChoice - ПользователиНачалоВыбора - - - Opening - ПользователиОткрытие - - true - true - true - true - true - Normal - - - - Добавил - 256 - true - true - - true - - - Объект.Добавил - - - ДобавилРасширеннаяПодсказка - 258 - Label - true - true - - Left - - - - ДобавилКонтекстноеМеню - 257 - true - - InputField - Enter - true - Left - true - - true - true - true - true - true - true - Normal + UsualGroup + + Vertical + Auto + NormalSeparation + true + true + Auto true @@ -917,6 +1238,7 @@ true true + true true false true @@ -927,7 +1249,7 @@ - УсиленнаяЗащитаЗакрытогоКлюча + ВводитьПарольВПрограммеЭлектроннойПодписи 158 true true @@ -935,12 +1257,12 @@ true - Объект.УсиленнаяЗащитаЗакрытогоКлюча + Объект.ВводитьПарольВПрограммеЭлектроннойПодписи Right Button - УсиленнаяЗащитаЗакрытогоКлючаРасширеннаяПодсказка + ВводитьПарольВПрограммеЭлектроннойПодписиРасширеннаяПодсказка 160 Label true @@ -950,11 +1272,12 @@ - УсиленнаяЗащитаЗакрытогоКлючаКонтекстноеМеню + ВводитьПарольВПрограммеЭлектроннойПодписиКонтекстноеМеню 159 true CheckBoxField + Right Enter true Left @@ -1000,7 +1323,6 @@ ru Горизонтальная группа 1 - false ГоризонтальнаяГруппа1РасширеннаяПодсказка 211 @@ -1550,7 +1872,7 @@ ПредставлениеПользователей <key>ru</key> - <value>Пользователи</value> + <value>Используют</value> 12 @@ -1564,6 +1886,53 @@ true + + НапомнитьОПеревыпуске + + <key>ru</key> + <value>Напомнить о перевыпуске</value> + + 13 + + Boolean + + + true + + + true + + + + ТекущаяДата + 16 + + String + + + + true + + + true + + + + ВыпущенныеСертификаты + 17 + + ValueList + + + true + + + true + + + + + СертификатОтозван diff --git a/SSL/src/Catalogs/СертификатыКлючейЭлектроннойПодписиИШифрования/Forms/ФормаЭлемента/Module.bsl b/SSL/src/Catalogs/СертификатыКлючейЭлектроннойПодписиИШифрования/Forms/ФормаЭлемента/Module.bsl index 21549b722..b87295d1c 100644 --- a/SSL/src/Catalogs/СертификатыКлючейЭлектроннойПодписиИШифрования/Forms/ФормаЭлемента/Module.bsl +++ b/SSL/src/Catalogs/СертификатыКлючейЭлектроннойПодписиИШифрования/Forms/ФормаЭлемента/Module.bsl @@ -12,7 +12,7 @@ Процедура ПриСозданииНаСервере(Отказ, СтандартнаяОбработка) ЭлектроннаяПодписьСлужебный.НастроитьПояснениеВводаПароля(ЭтотОбъект, - Элементы.УсиленнаяЗащитаЗакрытогоКлюча.Имя); + Элементы.ВводитьПарольВПрограммеЭлектроннойПодписи.Имя); СертификатОблачнойПодписи = ИнформацияОблачнойПодписи(Объект.Программа); ЗаполнитьСписокПрограммСервер(); @@ -34,10 +34,13 @@ Объект, ОткрытьЗаявление); ИмяФормыЗаявления = "Обработка.ЗаявлениеНаВыпускНовогоКвалифицированногоСертификата.Форма.Форма"; ВозможноОткрытьЗаявление = Истина; + Если НЕ ОткрытьЗаявление Тогда + ВыпущенныеСертификаты = ОбработкаЗаявлениеНаВыпускНовогоКвалифицированногоСертификата.ВыпущенныеСертификаты(Объект.Ссылка); + КонецЕсли; КонецЕсли; ПрограммаОблачногоСервиса = ЭлектроннаяПодписьСлужебный.ПрограммаОблачногоСервиса(); - ОбновитьВидимостьЭлементаУсиленнаяЗащитаЗакрытогоКлюча(ЭтотОбъект); + ОбновитьВидимостьЭлементаВводитьПарольВПрограммеЭлектроннойПодписи(ЭтотОбъект); ЕстьОрганизации = Не Метаданные.ОпределяемыеТипы.Организация.Тип.СодержитТип(Тип("Строка")); ПриСозданииНаСервереПриЧтенииНаСервере(); @@ -46,6 +49,11 @@ СтандартныеПодсистемыСервер.УстановитьКлючНазначенияФормы(ЭтотОбъект, "НестандартныйСертификат"); КонецЕсли; + Если Не ПравоДоступа("Добавление", Метаданные.Справочники.СертификатыКлючейЭлектроннойПодписиИШифрования) Тогда + ОбщегоНазначенияКлиентСервер.УстановитьСвойствоЭлементаФормы(Элементы, + "ФормаСкопировать", "Видимость", Ложь); + КонецЕсли; + КонецПроцедуры &НаКлиенте @@ -66,6 +74,8 @@ ОформитьСписокПользователей(); + ПодключитьОбработчикОжидания("ОбработчикОжиданияПоказатьСостояниеСертификата", 0.1, Истина); + КонецПроцедуры &НаСервере @@ -87,9 +97,9 @@ &НаКлиенте Процедура ПослеЗаписи(ПараметрыЗаписи) - ДополнительныеПараметры = Новый Структура; + ДополнительныеПараметры = ЭлектроннаяПодписьСлужебныйКлиент.ПараметрыОповещенияПриЗаписиСертификата(); Если ПараметрыЗаписи.ЭтоНовый Тогда - ДополнительныеПараметры.Вставить("ЭтоНовый"); + ДополнительныеПараметры.ЭтоНовый = Истина; КонецЕсли; Оповестить("Запись_СертификатыКлючейЭлектроннойПодписиИШифрования", ДополнительныеПараметры, Объект.Ссылка); @@ -99,9 +109,19 @@ &НаКлиенте Процедура ОбработкаОповещения(ИмяСобытия, Параметр, Источник) - Если ИмяСобытия = "Запись_ПрограммыЭлектроннойПодписиИШифрования" - ИЛИ ИмяСобытия = "Запись_УчетнойЗаписиDSS" Тогда + Если ИмяСобытия = "Запись_ПрограммыЭлектроннойПодписиИШифрования" Или ИмяСобытия = "Запись_УчетнойЗаписиDSS" Тогда ЗаполнитьСписокПрограммСервер(); + Возврат; + КонецЕсли; + + Если ИмяСобытия = "Запись_СертификатыКлючейЭлектроннойПодписиИШифрования" И Источник = Объект.Ссылка Тогда + Если Параметр.Количество() = 0 Тогда + Возврат; + КонецЕсли; + Если Параметр.Установлен Тогда + ПодключитьОбработчикОжидания("ОбработчикОжиданияПоказатьСостояниеСертификата", 0.1, Истина); + КонецЕсли; + Возврат; КонецЕсли; КонецПроцедуры @@ -145,7 +165,7 @@ &НаКлиенте Процедура ПрограммаПриИзменении(Элемент) - ОбновитьВидимостьЭлементаУсиленнаяЗащитаЗакрытогоКлюча(ЭтотОбъект); + ОбновитьВидимостьЭлементаВводитьПарольВПрограммеЭлектроннойПодписи(ЭтотОбъект); КонецПроцедуры @@ -165,6 +185,26 @@ КонецПроцедуры +&НаКлиенте +Процедура НапомнитьОПеревыпускеПриИзменении(Элемент) + + ЭлектроннаяПодписьСлужебныйКлиент.ИзменитьОтметкуОНапоминании(Объект.Ссылка, НапомнитьОПеревыпуске, ЭтотОбъект); + +КонецПроцедуры + +&НаКлиенте +Процедура ДекорацияПеревыпущенОбработкаНавигационнойСсылки(Элемент, НавигационнаяСсылкаФорматированнойСтроки, СтандартнаяОбработка) + + СтандартнаяОбработка = Ложь; + Если ВыпущенныеСертификаты.Количество() = 1 Тогда + ОткрытьСертификатПослеВыбораИзСписка(ВыпущенныеСертификаты[0], Неопределено); + Иначе + ОписаниеОповещения = Новый ОписаниеОповещения("ОткрытьСертификатПослеВыбораИзСписка", ЭтотОбъект, Элемент); + ПоказатьВыборИзСписка(ОписаниеОповещения, ВыпущенныеСертификаты); + КонецЕсли; + +КонецПроцедуры + #КонецОбласти #Область ОбработчикиКомандФормы @@ -389,6 +429,22 @@ Элементы.ФормаПоказатьАвтозаполняемыеРеквизиты.Пометка = Элементы.АвтоПоляИзДанныхСертификата.Видимость; + Если Не ОткрытьЗаявление Тогда + ОбновлениеИнформационнойБазы.ПроверитьОбъектОбработан(Объект, ЭтотОбъект); + Элементы.СостояниеСертификатаГруппа.Видимость = Ложь; + СертификатыВЛичномХранилище = Новый СписокЗначений; + ЭлектроннаяПодписьСлужебный.ДополнитьСписокСертификатовВЛичномХранилищеНаСервере(СертификатыВЛичномХранилище); + Если СертификатыВЛичномХранилище.НайтиПоЗначению(Объект.Отпечаток) <> Неопределено Тогда + ВключитьВидимостьСостоянияСертификата(ЭтотОбъект, ТекущаяУниверсальнаяДата()); + КонецЕсли; + Если ЭлектроннаяПодпись.УправлениеОповещениямиОСертификатах() Тогда + Элементы.НапомнитьОПеревыпуске.Видимость = Истина; + НапомнитьОПеревыпуске = РегистрыСведений.ОповещенияПользователейСертификатов.ПрочитатьОтметкуОНапоминании(Объект.Ссылка); + Иначе + Элементы.НапомнитьОПеревыпуске.Видимость = Ложь; + КонецЕсли; + КонецЕсли; + КонецПроцедуры &НаКлиенте @@ -413,15 +469,52 @@ Если ВозможноОткрытьЗаявление Тогда ПараметрыФормы = Новый Структура; ПараметрыФормы.Вставить("СертификатСсылка", Объект.Ссылка); - ОткрытьФорму(ИмяФормыЗаявления, ПараметрыФормы); + Оповещение = Новый ОписаниеОповещения("ОповещениеОЗакрытииЗаявления", ЭтотОбъект); + ОткрытьФорму(ИмяФормыЗаявления, ПараметрыФормы,,,,, Оповещение); КонецЕсли; КонецПроцедуры -&НаКлиентеНаСервереБезКонтекста -Процедура ОбновитьВидимостьЭлементаУсиленнаяЗащитаЗакрытогоКлюча(Форма) +&НаКлиенте +Процедура ОповещениеОЗакрытииЗаявления(Результат, ДополнительныеПараметры) Экспорт - Форма.Элементы.УсиленнаяЗащитаЗакрытогоКлюча.Видимость = + Если Результат <> Неопределено И Результат.Добавлен И Не ЭтотОбъект.Открыта() Тогда + ОткрытьЗаявление = Ложь; + СтандартныеПодсистемыКлиент.УстановитьХранениеФормы(ЭтотОбъект, Истина); + ПриСозданииНаСервереПриЧтенииНаСервере(); + ЭтотОбъект.Открыть(); + КонецЕсли; + +КонецПроцедуры + +&НаКлиенте +Процедура ОбработчикОжиданияПоказатьСостояниеСертификата() + + Если Элементы.СостояниеСертификатаГруппа.Видимость = Истина Тогда + Возврат; + КонецЕсли; + + Оповещение = Новый ОписаниеОповещения( + "ВидимостьСостоянияСертификатаПослеПолученияСертификатовВЛичномХранилище", ЭтотОбъект); + ЭлектроннаяПодписьСлужебныйКлиент.ПолучитьСвойстваСертификатовНаКлиенте( + Оповещение, Истина, Истина, Истина); + +КонецПроцедуры + +&НаКлиенте +Процедура ОткрытьСертификатПослеВыбораИзСписка(Результат, ДополнительныеПараметры) Экспорт + + Если Результат <> Неопределено Тогда + ОткрытьФорму("Справочник.СертификатыКлючейЭлектроннойПодписиИШифрования.Форма.ФормаЭлемента", + Новый Структура("Ключ", Результат.Значение)); + КонецЕсли; + +КонецПроцедуры + +&НаКлиентеНаСервереБезКонтекста +Процедура ОбновитьВидимостьЭлементаВводитьПарольВПрограммеЭлектроннойПодписи(Форма) + + Форма.Элементы.ВводитьПарольВПрограммеЭлектроннойПодписи.Видимость = Форма.Объект.Программа <> Форма.ПрограммаОблачногоСервиса И НЕ Форма.СертификатОблачнойПодписи.ОблачнаяПодпись; @@ -436,12 +529,12 @@ Если КоличествоПользователей = 1 Тогда ПредставлениеПользователей = СокрЛП(Объект.Пользователи[0].Пользователь); ИначеЕсли КоличествоПользователей > 1 Тогда - ПредставлениеПользователей = НСтр("ru = 'Несколько пользователей'", ОбщегоНазначенияКлиент.КодОсновногоЯзыка()) - + " (" + Формат(КоличествоПользователей, "ЧГ=0") + ")"; + ПредставлениеПользователей = ЭлектроннаяПодписьСлужебныйКлиентСервер.ПользователиСертификатаСтрокой( + Объект.Пользователи[0].Пользователь, Объект.Пользователи[1].Пользователь, КоличествоПользователей); ИначеЕсли ЗначениеЗаполнено(Объект.Пользователь) Тогда ПредставлениеПользователей = СокрЛП(Объект.Пользователь); Иначе - ПредставлениеПользователей = НСтр("ru = 'Не указаны'", ОбщегоНазначенияКлиент.КодОсновногоЯзыка()); + ПредставлениеПользователей = НСтр("ru = 'Не указаны'"); КонецЕсли; КонецПроцедуры @@ -459,6 +552,40 @@ КонецПроцедуры +&НаКлиенте +Процедура ВидимостьСостоянияСертификатаПослеПолученияСертификатовВЛичномХранилище(Результат, ДополнительныеПараметры) Экспорт + + Для Каждого КлючИЗначение Из Результат.СвойстваСертификатовНаКлиенте Цикл + Если КлючИЗначение.Ключ = Объект.Отпечаток Тогда + ВключитьВидимостьСостоянияСертификата(ЭтотОбъект, ОбщегоНазначенияКлиент.ДатаУниверсальная()); + Возврат; + КонецЕсли; + КонецЦикла; + +КонецПроцедуры + +&НаКлиентеНаСервереБезКонтекста +Процедура ВключитьВидимостьСостоянияСертификата(Форма, ТекущаяДата) + + Форма.Элементы.СостояниеСертификатаГруппа.Видимость = Истина; + + Если Форма.Объект.ДействителенДо < ТекущаяДата Тогда + Форма.Элементы.КартинкаСертификата.Картинка = БиблиотекаКартинок.СертификатПросрочен; + Форма.Элементы.СостояниеСертификата.Заголовок = НСтр("ru = 'Сертификат просрочен'"); + ИначеЕсли Форма.Объект.ДействителенДо <= ТекущаяДата + 30*24*60*60 Тогда + Форма.Элементы.КартинкаСертификата.Картинка = БиблиотекаКартинок.СрокДействияСертификатаЗаканчивается; + Форма.Элементы.СостояниеСертификата.Заголовок = НСтр("ru = 'Срок действия сертификата скоро закончится'"); + Иначе + Форма.Элементы.КартинкаСертификата.Картинка = БиблиотекаКартинок.СертификатВЛичномХранилище; + Форма.Элементы.СостояниеСертификата.Заголовок = НСтр("ru = 'Сертификат в личном хранилище'"); + КонецЕсли; + + Если Форма.ВыпущенныеСертификаты.Количество() > 0 Тогда + Форма.Элементы.ДекорацияПеревыпущен.Видимость = Истина; + КонецЕсли; + +КонецПроцедуры + &НаКлиенте Процедура ПослеСменыПинКода(РезультатВызова, ДополнительныеПараметры) Экспорт diff --git a/SSL/src/Catalogs/СертификатыКлючейЭлектроннойПодписиИШифрования/Forms/ШифрованиеДанных/Form.form b/SSL/src/Catalogs/СертификатыКлючейЭлектроннойПодписиИШифрования/Forms/ШифрованиеДанных/Form.form index c03eb6489..7e293b912 100644 --- a/SSL/src/Catalogs/СертификатыКлючейЭлектроннойПодписиИШифрования/Forms/ШифрованиеДанных/Form.form +++ b/SSL/src/Catalogs/СертификатыКлючейЭлектроннойПодписиИШифрования/Forms/ШифрованиеДанных/Form.form @@ -1306,7 +1306,7 @@ </columns> </attributes> <attributes> - <name>СертификатУсиленнаяЗащитаЗакрытогоКлюча</name> + <name>СертификатВводитьПарольВПрограммеЭлектроннойПодписи</name> <id>8</id> <valueType> <types>Boolean</types> diff --git a/SSL/src/Catalogs/СертификатыКлючейЭлектроннойПодписиИШифрования/ManagerModule.bsl b/SSL/src/Catalogs/СертификатыКлючейЭлектроннойПодписиИШифрования/ManagerModule.bsl index 6caf327fd..2f5e930e5 100644 --- a/SSL/src/Catalogs/СертификатыКлючейЭлектроннойПодписиИШифрования/ManagerModule.bsl +++ b/SSL/src/Catalogs/СертификатыКлючейЭлектроннойПодписиИШифрования/ManagerModule.bsl @@ -37,7 +37,7 @@ НеРедактируемыеРеквизиты.Добавить("ДанныеСертификата"); НеРедактируемыеРеквизиты.Добавить("Программа"); НеРедактируемыеРеквизиты.Добавить("Отозван"); - НеРедактируемыеРеквизиты.Добавить("УсиленнаяЗащитаЗакрытогоКлюча"); + НеРедактируемыеРеквизиты.Добавить("ВводитьПарольВПрограммеЭлектроннойПодписи"); НеРедактируемыеРеквизиты.Добавить("Организация"); НеРедактируемыеРеквизиты.Добавить("Пользователь"); НеРедактируемыеРеквизиты.Добавить("Добавил"); @@ -74,4 +74,177 @@ #КонецОбласти +#Область СлужебныйПрограммныйИнтерфейс + +//////////////////////////////////////////////////////////////////////////////// +// Обработчики обновления. + +// Регистрирует на плане обмена ОбновлениеИнформационнойБазы объекты, +// для которых необходимо обновить записи в регистре. +// +Процедура ЗарегистрироватьДанныеКОбработкеДляПереходаНаНовуюВерсию(Параметры) Экспорт + + Запрос = Новый Запрос; + Запрос.Текст = + "ВЫБРАТЬ + | СертификатыКлючейЭлектроннойПодписиИШифрованияПользователи.Ссылка, + | КОЛИЧЕСТВО(СертификатыКлючейЭлектроннойПодписиИШифрованияПользователи.Пользователь) КАК Пользователь + |ПОМЕСТИТЬ ОдинПользовательВТабличнойЧасти + |ИЗ + | Справочник.СертификатыКлючейЭлектроннойПодписиИШифрования.Пользователи КАК + | СертификатыКлючейЭлектроннойПодписиИШифрованияПользователи + |СГРУППИРОВАТЬ ПО + | СертификатыКлючейЭлектроннойПодписиИШифрованияПользователи.Ссылка + |ИМЕЮЩИЕ + | КОЛИЧЕСТВО(СертификатыКлючейЭлектроннойПодписиИШифрованияПользователи.Пользователь) = 1 + |; + | + |//////////////////////////////////////////////////////////////////////////////// + |ВЫБРАТЬ + | СертификатыКлючейЭлектроннойПодписиИШифрования.Ссылка КАК Ссылка + |ИЗ + | Справочник.СертификатыКлючейЭлектроннойПодписиИШифрования КАК СертификатыКлючейЭлектроннойПодписиИШифрования + | ЛЕВОЕ СОЕДИНЕНИЕ ОдинПользовательВТабличнойЧасти КАК ОдинПользовательВТабличнойЧасти + | ПО СертификатыКлючейЭлектроннойПодписиИШифрования.Ссылка = ОдинПользовательВТабличнойЧасти.Ссылка + |ГДЕ + | СертификатыКлючейЭлектроннойПодписиИШифрования.УдалитьПользовательОповещенОСрокеДействия + | ИЛИ &УсловиеЗаявления + | ИЛИ НЕ ОдинПользовательВТабличнойЧасти.Ссылка ЕСТЬ NULL"; + + + Если ЭлектроннаяПодпись.ОбщиеНастройки().ЗаявлениеНаВыпускСертификатаДоступно Тогда + Запрос.Текст = СтрЗаменить(Запрос.Текст, "&УсловиеЗаявления", + "СертификатыКлючейЭлектроннойПодписиИШифрования.УдалитьСостояниеЗаявления <> &ПустаяСсылка"); + Запрос.УстановитьПараметр("ПустаяСсылка", Перечисления.СостоянияЗаявленияНаВыпускСертификата.ПустаяСсылка()); + Иначе + Запрос.Текст = СтрЗаменить(Запрос.Текст, "ИЛИ &УсловиеЗаявления", ""); + КонецЕсли; + + МассивСсылок = Запрос.Выполнить().Выгрузить().ВыгрузитьКолонку("Ссылка"); + ОбновлениеИнформационнойБазы.ОтметитьКОбработке(Параметры, МассивСсылок); + +КонецПроцедуры + +// Добавить записи регистра. +Процедура ОбработатьДанныеДляПереходаНаНовуюВерсию(Параметры) Экспорт + + Выборка = ОбновлениеИнформационнойБазы.ВыбратьСсылкиДляОбработки(Параметры.Очередь, + "Справочник.СертификатыКлючейЭлектроннойПодписиИШифрования"); + Если Выборка.Количество() > 0 Тогда + ОбработатьЗаявленияИОповещенияСертификатов(Выборка); + КонецЕсли; + + ОбработкаЗавершена = ОбновлениеИнформационнойБазы.ОбработкаДанныхЗавершена(Параметры.Очередь, + "Справочник.СертификатыКлючейЭлектроннойПодписиИШифрования"); + Параметры.ОбработкаЗавершена = ОбработкаЗавершена; + +КонецПроцедуры + +#КонецОбласти + +#Область СлужебныеПроцедурыИФункции + +Процедура ОбработатьЗаявленияИОповещенияСертификатов(Выборка) + + ОбъектовОбработано = 0; + ПроблемныхОбъектов = 0; + + ЗаявлениеНаВыпускСертификатаДоступно = ЭлектроннаяПодпись.ОбщиеНастройки().ЗаявлениеНаВыпускСертификатаДоступно; + + Если ЗаявлениеНаВыпускСертификатаДоступно Тогда + ОбработкаЗаявлениеНаВыпускНовогоКвалифицированногоСертификата = + ОбщегоНазначения.МенеджерОбъектаПоПолномуИмени( + "Обработка.ЗаявлениеНаВыпускНовогоКвалифицированногоСертификата"); + КонецЕсли; + + Пока Выборка.Следующий() Цикл + + НачатьТранзакцию(); + Попытка + + Блокировка = Новый БлокировкаДанных; + ЭлементБлокировки = Блокировка.Добавить("Справочник.СертификатыКлючейЭлектроннойПодписиИШифрования"); + ЭлементБлокировки.УстановитьЗначение("Ссылка", Выборка.Ссылка); + ЭлементБлокировки.Режим = РежимБлокировкиДанных.Разделяемый; + Блокировка.Заблокировать(); + + СертификатОбъект = Выборка.Ссылка.ПолучитьОбъект(); // СправочникОбъект.СертификатыКлючейЭлектроннойПодписиИШифрования + + // Перенос оповещений о необходимости замены сертификата в регистр сведений. + Если СертификатОбъект.УдалитьПользовательОповещенОСрокеДействия Тогда + НаборЗаписейОповещений = РегистрыСведений.ОповещенияПользователейСертификатов.СоздатьНаборЗаписей(); + НаборЗаписейОповещений.Отбор.Сертификат.Установить(Выборка.Ссылка); + + Если СертификатОбъект.Пользователи.Количество() > 0 Тогда + Для Каждого СтрокаПользователь Из СертификатОбъект.Пользователи Цикл + ЗаписьНабораОповещений = НаборЗаписейОповещений.Добавить(); + ЗаписьНабораОповещений.Сертификат = Выборка.Ссылка; + ЗаписьНабораОповещений.Пользователь = СтрокаПользователь.Пользователь; + ЗаписьНабораОповещений.Оповещен = Истина; + КонецЦикла; + ИначеЕсли ЗначениеЗаполнено(СертификатОбъект.Пользователь) Тогда + ЗаписьНабораОповещений = НаборЗаписейОповещений.Добавить(); + ЗаписьНабораОповещений.Сертификат = Выборка.Ссылка; + ЗаписьНабораОповещений.Пользователь = СертификатОбъект.Пользователь; + ЗаписьНабораОповещений.Оповещен = Истина; + КонецЕсли; + Если НаборЗаписейОповещений.Количество() > 0 Тогда + ОбновлениеИнформационнойБазы.ЗаписатьНаборЗаписей(НаборЗаписейОповещений, Истина); + КонецЕсли; + СертификатОбъект.УдалитьПользовательОповещенОСрокеДействия = Ложь; + КонецЕсли; + + // Перенос данных заявлений в регистр сведений. + Если ЗаявлениеНаВыпускСертификатаДоступно + И ЗначениеЗаполнено(СертификатОбъект.УдалитьСостояниеЗаявления) Тогда + + ОбработкаЗаявлениеНаВыпускНовогоКвалифицированногоСертификата.ОбработатьДанныеДляПереходаНаНовуюВерсию( + СертификатОбъект); + + КонецЕсли; + + Если СертификатОбъект.Пользователи.Количество() = 1 Тогда + СертификатОбъект.Пользователь = СертификатОбъект.Пользователи[0].Пользователь; + СертификатОбъект.Пользователи.Очистить(); + КонецЕсли; + + ОбновлениеИнформационнойБазы.ЗаписатьОбъект(СертификатОбъект); + + ОбъектовОбработано = ОбъектовОбработано + 1; + ЗафиксироватьТранзакцию(); + + Исключение + + ОтменитьТранзакцию(); + // Если не удалось обработать какой-либо сертификат, повторяем попытку снова. + ПроблемныхОбъектов = ПроблемныхОбъектов + 1; + + ТекстСообщения = СтроковыеФункцииКлиентСервер.ПодставитьПараметрыВСтроку( + НСтр("ru = 'Не удалось обработать сертификат: %1 по причине: + |%2'"), Выборка.Ссылка, ПодробноеПредставлениеОшибки(ИнформацияОбОшибке())); + + ЗаписьЖурналаРегистрации(ОбновлениеИнформационнойБазы.СобытиеЖурналаРегистрации(), + УровеньЖурналаРегистрации.Предупреждение, Выборка.Ссылка.Метаданные(), Выборка.Ссылка, ТекстСообщения); + + КонецПопытки; + + КонецЦикла; + + Если ОбъектовОбработано = 0 И ПроблемныхОбъектов <> 0 Тогда + ТекстСообщения = СтроковыеФункцииКлиентСервер.ПодставитьПараметрыВСтроку( + НСтр("ru = 'Не удалось обработать некоторые сертификаты (пропущены): %1'"), + ПроблемныхОбъектов); + ВызватьИсключение ТекстСообщения; + Иначе + ЗаписьЖурналаРегистрации(ОбновлениеИнформационнойБазы.СобытиеЖурналаРегистрации(), + УровеньЖурналаРегистрации.Информация, Метаданные.НайтиПоПолномуИмени( + "Справочник.СертификатыКлючейЭлектроннойПодписиИШифрования"), , СтроковыеФункцииКлиентСервер.ПодставитьПараметрыВСтроку( + НСтр("ru = 'Обработана очередная порция сертификатов: %1'"), + ОбъектовОбработано)); + КонецЕсли; + +КонецПроцедуры + +#КонецОбласти + #КонецЕсли diff --git a/SSL/src/Catalogs/СертификатыКлючейЭлектроннойПодписиИШифрования/ObjectModule.bsl b/SSL/src/Catalogs/СертификатыКлючейЭлектроннойПодписиИШифрования/ObjectModule.bsl index f22ff308c..a72ea38da 100644 --- a/SSL/src/Catalogs/СертификатыКлючейЭлектроннойПодписиИШифрования/ObjectModule.bsl +++ b/SSL/src/Catalogs/СертификатыКлючейЭлектроннойПодписиИШифрования/ObjectModule.bsl @@ -33,6 +33,8 @@ Если Программа = Неопределено Тогда Программа = Справочники.ПрограммыЭлектроннойПодписиИШифрования.ПустаяСсылка(); КонецЕсли; + + ОбновлениеИнформационнойБазы.ПроверитьОбъектОбработан(ЭтотОбъект); КонецПроцедуры diff --git a/SSL/src/Catalogs/СертификатыКлючейЭлектроннойПодписиИШифрования/СертификатыКлючейЭлектроннойПодписиИШифрования.mdo b/SSL/src/Catalogs/СертификатыКлючейЭлектроннойПодписиИШифрования/СертификатыКлючейЭлектроннойПодписиИШифрования.mdo index 1dbf4dbb2..c4c28d793 100644 --- a/SSL/src/Catalogs/СертификатыКлючейЭлектроннойПодписиИШифрования/СертификатыКлючейЭлектроннойПодписиИШифрования.mdo +++ b/SSL/src/Catalogs/СертификатыКлючейЭлектроннойПодписиИШифрования/СертификатыКлючейЭлектроннойПодписиИШифрования.mdo @@ -428,20 +428,21 @@ <dataHistory>Use</dataHistory> </attributes> <attributes uuid="57aed64d-da61-4c18-af21-dab3afdc5c03"> - <name>УсиленнаяЗащитаЗакрытогоКлюча</name> + <name>ВводитьПарольВПрограммеЭлектроннойПодписи</name> <synonym> <key>ru</key> - <value>Усиленная защита закрытого ключа</value> + <value>Вводить пароль в программе электронной подписи</value> </synonym> <type> <types>Boolean</types> </type> <toolTip> <key>ru</key> - <value>Передавать пустой пароль к закрытому ключу сертификата из 1С:Предприятия, -так как он будет вводиться в отдельном окне программой электронной подписи и шифрования. + <value>- Включается интерактивный режим работы программы электронной подписи, + при котором она запрашивает пароль и позволяет его сохранить. +- Отключается запрос пароля в форме 1С:Предприятия. -Только для закрытых ключей сертификатов, для которых в ОС включена усиленная защита.</value> +Обязательно для закрытых ключей сертификатов, для которых в ОС включена усиленная защита.</value> </toolTip> <minValue xsi:type="core:UndefinedValue"/> <maxValue xsi:type="core:UndefinedValue"/> @@ -468,6 +469,25 @@ <fullTextSearch>Use</fullTextSearch> <dataHistory>Use</dataHistory> </attributes> + <attributes uuid="e1132cbb-7045-47e2-bbc7-6e92e4dff131"> + <name>ФизическоеЛицо</name> + <synonym> + <key>ru</key> + <value>Физическое лицо</value> + </synonym> + <type> + <types>DefinedType.ФизическоеЛицо</types> + </type> + <toolTip> + <key>ru</key> + <value>Физическое лицо, которому выдан сертификат</value> + </toolTip> + <minValue xsi:type="core:UndefinedValue"/> + <maxValue xsi:type="core:UndefinedValue"/> + <fillValue xsi:type="core:UndefinedValue"/> + <fullTextSearch>Use</fullTextSearch> + <dataHistory>Use</dataHistory> + </attributes> <attributes uuid="62a71ba7-3226-4d10-8cc9-ac9908a00ae7"> <name>Пользователь</name> <synonym> @@ -488,25 +508,6 @@ <fullTextSearch>Use</fullTextSearch> <dataHistory>Use</dataHistory> </attributes> - <attributes uuid="6ce1d71d-7548-4ee7-be78-21ae23d5a08d"> - <name>ПользовательОповещенОСрокеДействия</name> - <synonym> - <key>ru</key> - <value>Пользователь оповещен о сроке действия</value> - </synonym> - <type> - <types>Boolean</types> - </type> - <toolTip> - <key>ru</key> - <value>Пользователь оповещен о скором окончании -срока действия своего сертификата.</value> - </toolTip> - <minValue xsi:type="core:UndefinedValue"/> - <maxValue xsi:type="core:UndefinedValue"/> - <fillValue xsi:type="core:UndefinedValue"/> - <dataHistory>Use</dataHistory> - </attributes> <attributes uuid="f5ad6743-b19b-44c4-b3d1-2e39d74a4abd"> <name>Добавил</name> <synonym> @@ -525,11 +526,31 @@ <fillValue xsi:type="core:UndefinedValue"/> <dataHistory>Use</dataHistory> </attributes> - <attributes uuid="4b89b7fb-31d9-43c7-9f7e-b0c31fa3331d"> - <name>СостояниеЗаявления</name> + <attributes uuid="85d7ea13-c521-44b8-9dce-5e57529a21db"> + <name>ДатаПолученияСертификата</name> <synonym> <key>ru</key> - <value>Состояние заявления</value> + <value>Дата получения сертификата</value> + </synonym> + <type> + <types>Date</types> + <dateQualifiers/> + </type> + <toolTip> + <key>ru</key> + <value>Дата получения сертификата по заявлению на выпуск квалифицированного сертификата. Если заявление отправлено, равна 31.12.3999 23:59:59.</value> + </toolTip> + <minValue xsi:type="core:UndefinedValue"/> + <maxValue xsi:type="core:UndefinedValue"/> + <fillValue xsi:type="core:UndefinedValue"/> + <fullTextSearch>Use</fullTextSearch> + <dataHistory>Use</dataHistory> + </attributes> + <attributes uuid="4b89b7fb-31d9-43c7-9f7e-b0c31fa3331d"> + <name>УдалитьСостояниеЗаявления</name> + <synonym> + <key>ru</key> + <value>(Не используется) Состояние заявления</value> </synonym> <type> <types>EnumRef.СостоянияЗаявленияНаВыпускСертификата</types> @@ -545,11 +566,30 @@ <fullTextSearch>Use</fullTextSearch> <dataHistory>Use</dataHistory> </attributes> - <attributes uuid="19b29d30-e395-42f2-b700-7474bb2cdcb7"> - <name>СодержаниеЗаявления</name> + <attributes uuid="6ce1d71d-7548-4ee7-be78-21ae23d5a08d"> + <name>УдалитьПользовательОповещенОСрокеДействия</name> <synonym> <key>ru</key> - <value>Содержание заявления</value> + <value>(Не используется) Пользователь оповещен о сроке действия</value> + </synonym> + <type> + <types>Boolean</types> + </type> + <toolTip> + <key>ru</key> + <value>Пользователь оповещен о скором окончании +срока действия своего сертификата.</value> + </toolTip> + <minValue xsi:type="core:UndefinedValue"/> + <maxValue xsi:type="core:UndefinedValue"/> + <fillValue xsi:type="core:UndefinedValue"/> + <dataHistory>Use</dataHistory> + </attributes> + <attributes uuid="19b29d30-e395-42f2-b700-7474bb2cdcb7"> + <name>УдалитьСодержаниеЗаявления</name> + <synonym> + <key>ru</key> + <value>(не используется) Содержание заявления</value> </synonym> <type> <types>ValueStorage</types> @@ -594,6 +634,7 @@ <minValue xsi:type="core:UndefinedValue"/> <maxValue xsi:type="core:UndefinedValue"/> <dataHistory>Use</dataHistory> + <indexing>Index</indexing> <fullTextSearch>Use</fullTextSearch> </attributes> </tabularSections> diff --git a/SSL/src/Catalogs/СостоянияОригиналовПервичныхДокументов/ManagerModule.bsl b/SSL/src/Catalogs/СостоянияОригиналовПервичныхДокументов/ManagerModule.bsl index fc57469a4..ff409c1f7 100644 --- a/SSL/src/Catalogs/СостоянияОригиналовПервичныхДокументов/ManagerModule.bsl +++ b/SSL/src/Catalogs/СостоянияОригиналовПервичныхДокументов/ManagerModule.bsl @@ -79,7 +79,7 @@ КонецПроцедуры -// Заполнить значение служебного реквизита РеквизитДопУпорядочивания у справочника Состояния оригиналов первичных документов. +// Заполнить значение служебного реквизита РеквизитДопУпорядочивания у справочника СостоянияОригиналовПервичныхДокументов. // Процедура ОбработатьДанныеДляПереходаНаНовуюВерсию(Параметры) Экспорт @@ -126,7 +126,7 @@ ПроблемныхОбъектов = ПроблемныхОбъектов + 1; ТекстСообщения = СтроковыеФункцииКлиентСервер.ПодставитьПараметрыВСтроку( - НСтр("ru = 'Не удалось обработать состояние: %1 по причине: + НСтр("ru = 'Не удалось обработать %1 по причине: |%2'"), СостояниеИзм.Ссылка, ПодробноеПредставлениеОшибки(ИнформацияОбОшибке())); ЗаписьЖурналаРегистрации(ОбновлениеИнформационнойБазы.СобытиеЖурналаРегистрации(), УровеньЖурналаРегистрации.Предупреждение, @@ -138,13 +138,14 @@ Параметры.ОбработкаЗавершена = ОбновлениеИнформационнойБазы.ОбработкаДанныхЗавершена(Параметры.Очередь, "Справочник.СостоянияОригиналовПервичныхДокументов"); Если ОбъектовОбработано = 0 И ПроблемныхОбъектов <> 0 Тогда ТекстСообщения = СтроковыеФункцииКлиентСервер.ПодставитьПараметрыВСтроку( - НСтр("ru = 'Процедуре ЗаполнитьРеквизитРеквизитДопУпорядочивания не удалось обработать некоторые состояния (пропущены): %1'"), + НСтр("ru = 'Не удалось обработать некоторые состояния оригиналов первичных документов (пропущены): %1'"), ПроблемныхОбъектов); ВызватьИсключение ТекстСообщения; Иначе ЗаписьЖурналаРегистрации(ОбновлениеИнформационнойБазы.СобытиеЖурналаРегистрации(), УровеньЖурналаРегистрации.Информация, Метаданные.Справочники.СостоянияОригиналовПервичныхДокументов,, - СтроковыеФункцииКлиентСервер.ПодставитьПараметрыВСтроку(НСтр("ru = 'Процедура ЗаполнитьРеквизитРеквизитДопУпорядочивания обработала очередную порцию состояний оригиналов: %1'"), + СтроковыеФункцииКлиентСервер.ПодставитьПараметрыВСтроку( + НСтр("ru = 'Обработана очередная порция состояния оригиналов первичных документов: %1'"), ОбъектовОбработано)); КонецЕсли; diff --git a/SSL/src/Catalogs/СтраныМира/ManagerModule.bsl b/SSL/src/Catalogs/СтраныМира/ManagerModule.bsl index bee98f10b..0a1289160 100644 --- a/SSL/src/Catalogs/СтраныМира/ManagerModule.bsl +++ b/SSL/src/Catalogs/СтраныМира/ManagerModule.bsl @@ -280,8 +280,9 @@ ПроблемныхОбъектов = ПроблемныхОбъектов + 1; ТекстСообщения = СтроковыеФункцииКлиентСервер.ПодставитьПараметрыВСтроку( - НСтр("ru = 'Не удалось обработать страну: %1 по причине: %2'"), - СтранаМираСсылка.Ссылка, ПодробноеПредставлениеОшибки(ИнформацияОбОшибке())); + НСтр("ru = 'Не удалось обработать страну %1 по причине: + |%2'"), + СтранаМираСсылка.Ссылка, ПодробноеПредставлениеОшибки(ИнформацияОбОшибке())); ЗаписьЖурналаРегистрации(ОбновлениеИнформационнойБазы.СобытиеЖурналаРегистрации(), УровеньЖурналаРегистрации.Предупреждение, Метаданные.Справочники.СтраныМира, СтранаМираСсылка.Ссылка, ТекстСообщения); КонецПопытки; @@ -291,14 +292,14 @@ Если ОбъектовОбработано = 0 И ПроблемныхОбъектов <> 0 Тогда ТекстСообщения = СтроковыеФункцииКлиентСервер.ПодставитьПараметрыВСтроку( - НСтр("ru = 'Процедуре ОбработатьДанныеДляПереходаНаНовуюВерсию не удалось обработать некоторые страны мира(пропущены): %1'"), - ПроблемныхОбъектов); + НСтр("ru = 'Не удалось обработать некоторые страны мира (пропущены): %1'"), + ПроблемныхОбъектов); ВызватьИсключение ТекстСообщения; Иначе ЗаписьЖурналаРегистрации(ОбновлениеИнформационнойБазы.СобытиеЖурналаРегистрации(), УровеньЖурналаРегистрации.Информация, Метаданные.Справочники.СтраныМира,, - СтроковыеФункцииКлиентСервер.ПодставитьПараметрыВСтроку(НСтр("ru = 'Процедура обновления обработала очередную порцию стран мира: %1'"), - ОбъектовОбработано)); + СтроковыеФункцииКлиентСервер.ПодставитьПараметрыВСтроку(НСтр("ru = 'Процедура обновления обработала очередную порцию стран мира: %1'"), + ОбъектовОбработано)); КонецЕсли; КонецПроцедуры diff --git a/SSL/src/Catalogs/СценарииОбменовДанными/Forms/ФормаЭлемента/Module.bsl b/SSL/src/Catalogs/СценарииОбменовДанными/Forms/ФормаЭлемента/Module.bsl index 413b04851..ac9e0789e 100644 --- a/SSL/src/Catalogs/СценарииОбменовДанными/Forms/ФормаЭлемента/Module.bsl +++ b/SSL/src/Catalogs/СценарииОбменовДанными/Forms/ФормаЭлемента/Module.bsl @@ -199,7 +199,8 @@ ТекущиеДанные = Элементы.СоставРасписания.ТекущиеДанные; - Если ТекущиеДанные = Неопределено Тогда + Если ТекущиеДанные = Неопределено + Или Не ЗначениеЗаполнено(ТекущиеДанные.УзелИнформационнойБазы) Тогда Возврат; КонецЕсли; diff --git a/SSL/src/Catalogs/УчетныеЗаписиЭлектроннойПочты/Forms/ПомощникНастройкиУчетнойЗаписи/Module.bsl b/SSL/src/Catalogs/УчетныеЗаписиЭлектроннойПочты/Forms/ПомощникНастройкиУчетнойЗаписи/Module.bsl index 73cbead68..2f91f5e2c 100644 --- a/SSL/src/Catalogs/УчетныеЗаписиЭлектроннойПочты/Forms/ПомощникНастройкиУчетнойЗаписи/Module.bsl +++ b/SSL/src/Catalogs/УчетныеЗаписиЭлектроннойПочты/Forms/ПомощникНастройкиУчетнойЗаписи/Module.bsl @@ -192,7 +192,7 @@ Процедура Далее(Команда) - ПерейтиНаСледующуюСтраницу(); + ПерейтиНаСледующуюСтраницу(Команда); КонецПроцедуры @@ -247,7 +247,7 @@ КонецПроцедуры &НаКлиенте -Процедура ПерейтиНаСледующуюСтраницу() +Процедура ПерейтиНаСледующуюСтраницу(Команда = Неопределено) Отказ = Ложь; ТекущаяСтраница = Элементы.Страницы.ТекущаяСтраница; @@ -270,8 +270,16 @@ ИначеЕсли ТекущаяСтраница = Элементы.НастройкаСервераИсходящейПочты Тогда СледующаяСтраница = Элементы.ПроверкаНастроекУчетнойЗаписи; ИначеЕсли ТекущаяСтраница = Элементы.ПроверкаНастроекУчетнойЗаписи Тогда + ПроверкаПропущена = Команда <> Неопределено; + Если ПроверкаПропущена Тогда + ОтменитьВыполнениеЗадания(ИдентификаторЗадания); + ИдентификаторЗадания = ""; + КонецЕсли; Если ПроверкаЗавершиласьСОшибками Тогда СледующаяСтраница = Элементы.НастройкаУчетнойЗаписи; + ИначеЕсли ПроверкаПропущена И СпособНастройки = "Автоматически" Тогда + СпособНастройки = "Вручную"; + СледующаяСтраница = Элементы.НастройкаСервераИсходящейПочты; Иначе СледующаяСтраница = Элементы.УчетнаяЗаписьУспешноНастроена; КонецЕсли; @@ -407,13 +415,14 @@ Иначе ЗаголовокКнопкиДалее = НСтр("ru = 'Создать'"); КонецЕсли; + ИначеЕсли ТекущаяСтраница = Элементы.ПроверкаНастроекУчетнойЗаписи Тогда + ЗаголовокКнопкиДалее = НСтр("ru = 'Пропустить проверку'"); Иначе ЗаголовокКнопкиДалее = НСтр("ru = 'Далее >'"); КонецЕсли; КонецЕсли; Элементы.КнопкаДалее.Заголовок = ЗаголовокКнопкиДалее; - Элементы.КнопкаДалее.Доступность = ТекущаяСтраница <> Элементы.ПроверкаНастроекУчетнойЗаписи; - Элементы.КнопкаДалее.Видимость = ТекущаяСтраница <> Элементы.ПроверкаНастроекУчетнойЗаписи; + Элементы.КнопкаДалее.КнопкаПоУмолчанию =ТекущаяСтраница <> Элементы.ПроверкаНастроекУчетнойЗаписи; // КнопкаНазад Элементы.КнопкаНазад.Видимость = ТекущаяСтраница <> Элементы.НастройкаУчетнойЗаписи @@ -432,6 +441,7 @@ Иначе Элементы.КнопкаПерейтиКНастройкам.Заголовок = НСтр("ru = 'Настроить вручную'"); КонецЕсли; + Если ТекущаяСтраница = Элементы.НастройкаУчетнойЗаписи Тогда Элементы.НеУдалосьПодключитьсяКартинкаИНадпись.Видимость = ПроверкаЗавершиласьСОшибками; @@ -671,6 +681,7 @@ ПроверкаЗавершиласьСОшибками = Ложь; ДлительнаяОперация = НачатьПоискНастроекУчетнойЗаписи(); + ИдентификаторЗадания = ДлительнаяОперация.ИдентификаторЗадания; ПараметрыОжидания = ДлительныеОперацииКлиент.ПараметрыОжидания(ЭтотОбъект); ПараметрыОжидания.ВыводитьОкноОжидания = Ложь; @@ -738,4 +749,11 @@ КонецПроцедуры +&НаСервереБезКонтекста +Процедура ОтменитьВыполнениеЗадания(ИдентификаторЗадания) + Если ЗначениеЗаполнено(ИдентификаторЗадания) Тогда + ДлительныеОперации.ОтменитьВыполнениеЗадания(ИдентификаторЗадания); + КонецЕсли; +КонецПроцедуры + #КонецОбласти diff --git a/SSL/src/Catalogs/УчетныеЗаписиЭлектроннойПочты/Forms/ПроверкаНастроекУчетнойЗаписи/Form.form b/SSL/src/Catalogs/УчетныеЗаписиЭлектроннойПочты/Forms/ПроверкаНастроекУчетнойЗаписи/Form.form index d80eb1bab..b7f56b19f 100644 --- a/SSL/src/Catalogs/УчетныеЗаписиЭлектроннойПочты/Forms/ПроверкаНастроекУчетнойЗаписи/Form.form +++ b/SSL/src/Catalogs/УчетныеЗаписиЭлектроннойПочты/Forms/ПроверкаНастроекУчетнойЗаписи/Form.form @@ -101,44 +101,76 @@ <items xsi:type="form:FormGroup"> <name>ПриПроверкеОбнаруженыОшибки</name> <id>3</id> - <items xsi:type="form:Decoration"> - <name>КартинкаПредупреждение</name> - <id>13</id> - <title> - <key>ru</key> - <value>Картинка вопрос</value> - - true - true - - true - - - КартинкаПредупреждениеРасширеннаяПодсказка - 15 - Label + + ГруппаОписаниеОшибки + 202 + + КартинкаПредупреждение + 13 + + <key>ru</key> + <value>Картинка вопрос</value> + + true + true + + true + + + КартинкаПредупреждениеРасширеннаяПодсказка + 15 + Label + true + true + + Left + + + + КартинкаПредупреждениеКонтекстноеМеню + 14 + true + true true - - Left + + + CommonPicture.Предупреждение32 + - - - КартинкаПредупреждениеКонтекстноеМеню - 14 - true - - true - true - - - CommonPicture.Предупреждение32 - - - - - ГруппаСообщенияОбОшибках - 16 + + + ГруппаСообщенияОбОшибках + 16 + true + true + + true + + + <key>ru</key> + <value>Сообщения об ошибках</value> + + + ГруппаСообщенияОбОшибкахРасширеннаяПодсказка + 17 + Label + true + true + + Left + + + UsualGroup + + Vertical + Auto + true + true + Auto + Auto + + СообщенияОбОшибках 18 @@ -174,9 +206,9 @@ true 40 - 7 + 2 true - true + false true true true @@ -191,12 +223,190 @@ Normal + true + true + + true + + + <key>ru</key> + <value>Описание ошибки</value> + + + ГруппаОписаниеОшибкиРасширеннаяПодсказка + 203 + Label + true + true + + Left + + + UsualGroup + + AlwaysHorizontal + Auto + true + true + Auto + Auto + + + + ГруппаВозможныеПричины + 184 + + ДекорацияВозможныеПричины + 266 + + <key>ru</key> + <value>Декорация возможные причины</value> + + true + true + + true + + + ДекорацияВозможныеПричиныРасширеннаяПодсказка + 268 + Label + true + true + + Left + + + + ДекорацияВозможныеПричиныКонтекстноеМеню + 267 + true + + Label + true + true + + + URLProcessing + СпособыУстраненияОбработкаНавигационнойСсылки + + Left + + + true + true + + true + + + <key>ru</key> + <value>Возможные причины</value> + + + ГруппаВозможныеПричиныРасширеннаяПодсказка + 185 + Label + true + true + + Left + + + UsualGroup + + Vertical + Auto + Button + NormalSeparation + true + true + auto + Auto + Auto + + + + ГруппаСпособыУстранения + 186 + + ДекорацияСпособыУстранения + 269 + + <key>ru</key> + <value>Декорация способы устранения</value> + + true + true + + true + + + ДекорацияСпособыУстраненияРасширеннаяПодсказка + 271 + Label + true + true + + Left + + + + ДекорацияСпособыУстраненияКонтекстноеМеню + 270 + true + + Label + true + true + + + URLProcessing + СпособыУстраненияОбработкаНавигационнойСсылки + + Left + + + true + true + + true + + + <key>ru</key> + <value>Способы устранения</value> + + + ГруппаСпособыУстраненияРасширеннаяПодсказка + 187 + Label + true + true + + Left + + + UsualGroup + + Vertical + Auto + Button + NormalSeparation + true + true + auto + Auto + Auto + + + + ГруппаДополнительныеСсылки + 210 НужнаПомощь 21 <key>ru</key> - <value>Нужна помощь?</value> + <value>Рекомендации по решению типовых проблем</value> true true @@ -231,6 +441,45 @@ Left + + СсылкаИнформацияДляТехподдержки + 212 + + <key>ru</key> + <value>Информация для техподдержки</value> + + true + true + + true + + + СсылкаИнформацияДляТехподдержкиРасширеннаяПодсказка + 214 + Label + true + true + + Left + + + + СсылкаИнформацияДляТехподдержкиКонтекстноеМеню + 213 + true + + Label + true + true + + + Click + СсылкаИнформацияДляТехподдержкиНажатие + + true + Left + + true true @@ -238,11 +487,12 @@ <key>ru</key> - <value>Сообщения об ошибках</value> + <value>Дополнительные ссылки</value> + true - ГруппаСообщенияОбОшибкахРасширеннаяПодсказка - 17 + ГруппаДополнительныеСсылкиРасширеннаяПодсказка + 211 Label true true @@ -252,8 +502,10 @@ UsualGroup - Vertical + HorizontalIfPossible + Bottom Auto + NormalSeparation true true Auto @@ -281,7 +533,7 @@
Page - AlwaysHorizontal + Vertical auto false @@ -457,6 +709,186 @@ false + + СтраницаИнформацияДляТехподдержки + 215 + + ГруппаОписаниеОшибки1 + 217 + + КартинкаПредупреждение1 + 219 + + <key>ru</key> + <value>Картинка вопрос</value> + + true + true + + true + + + КартинкаПредупреждение1РасширеннаяПодсказка + 221 + Label + true + true + + Left + + + + КартинкаПредупреждение1КонтекстноеМеню + 220 + true + + true + true + + + CommonPicture.Предупреждение32 + + + + + ГруппаСообщенияОбОшибках1 + 222 + + ТекстИнформацияДляТехподдержки + 224 + true + true + + true + + + ИнформацияДляТехподдержки + + None + + ТекстИнформацияДляТехподдержкиРасширеннаяПодсказка + 226 + Label + true + true + + Left + + + + ТекстИнформацияДляТехподдержкиКонтекстноеМеню + 225 + true + + InputField + true + Enter + true + Left + true + + 40 + 2 + true + true + true + true + true + true + true + + Style.FormBackColor + + + Style.FormBackColor + + Normal + + + true + true + + true + + + <key>ru</key> + <value>Сообщения об ошибках</value> + + + ГруппаСообщенияОбОшибках1РасширеннаяПодсказка + 223 + Label + true + true + + Left + + + UsualGroup + + Vertical + Auto + true + true + Auto + Auto + + + true + true + + true + + + <key>ru</key> + <value>Группа описание ошибки</value> + + + ГруппаОписаниеОшибки1РасширеннаяПодсказка + 218 + Label + true + true + + Left + + + UsualGroup + + AlwaysHorizontal + Auto + true + true + Auto + Auto + + + true + true + + true + + + <key>ru</key> + <value>При проверке обнаружены ошибки</value> + + + СтраницаИнформацияДляТехподдержкиРасширеннаяПодсказка + 216 + Label + true + true + + Left + + + Page + + Vertical + auto + false + + true true @@ -486,6 +918,58 @@ ФормаКоманднаяПанель -1 + + ФормаНазад + 253 + true + true + + true + + + ФормаНазадРасширеннаяПодсказка + 254 + Label + true + true + + Left + + + Form.Command.Назад + Normal + Auto + true + true + UserCmds + Auto + + + ФормаПерейтиКНастройкам + 200 + true + true + + true + + + ФормаПерейтиКНастройкамРасширеннаяПодсказка + 201 + Label + true + true + + Left + + + Form.Command.ПерейтиКНастройкам + Normal + Auto + true + true + UserCmds + Auto + ФормаЗакрыть 179 @@ -580,6 +1064,128 @@ true + + ВозможныеПричины + 3 + + FormattedString + + + true + + + true + + + + СпособыУстранения + 4 + + FormattedString + + + true + + + true + + + + ИнформацияДляТехподдержки + + <key>ru</key> + <value>Информация для техподдержки</value> + + 5 + + String + + + + true + + + true + + + + ИдентификаторИсправления + 7 + + String + + + + true + + + true + + + + ВозможныеПричиныТекст + 6 + + String + + + + true + + + true + + + + СпособыУстраненияТекст + 8 + + String + + + + true + + + true + + + + ПерейтиКНастройкам + + <key>ru</key> + <value>Перейти к настройкам</value> + + 1 + + true + + + + ПерейтиКНастройкам + + + Auto + Auto + + + Назад + + <key>ru</key> + <value>< Назад</value> + + 3 + + true + + + + Назад + + + Auto + Auto + УчетнаяЗапись @@ -587,6 +1193,21 @@ true + + ТекстОшибки + + String + + + + + Заголовок + + String + + + true + diff --git a/SSL/src/Catalogs/УчетныеЗаписиЭлектроннойПочты/Forms/ПроверкаНастроекУчетнойЗаписи/Module.bsl b/SSL/src/Catalogs/УчетныеЗаписиЭлектроннойПочты/Forms/ПроверкаНастроекУчетнойЗаписи/Module.bsl index f1a86efc9..6ea854c97 100644 --- a/SSL/src/Catalogs/УчетныеЗаписиЭлектроннойПочты/Forms/ПроверкаНастроекУчетнойЗаписи/Module.bsl +++ b/SSL/src/Catalogs/УчетныеЗаписиЭлектроннойПочты/Forms/ПроверкаНастроекУчетнойЗаписи/Module.bsl @@ -11,14 +11,47 @@ &НаСервере Процедура ПриСозданииНаСервере(Отказ, СтандартнаяОбработка) - Элементы.Страницы.ТекущаяСтраница = Элементы.ВыполняетсяПроверкаНастроек; - Элементы.ФормаЗакрыть.Заголовок = НСтр("ru = 'Отмена'"); + СообщенияОбОшибках = Параметры.ТекстОшибки; + Если ЗначениеЗаполнено(СообщенияОбОшибках) Тогда + Заголовок = Параметры.Заголовок; + АвтоЗаголовок = Ложь; + Элементы.Страницы.ТекущаяСтраница = Элементы.ПриПроверкеОбнаруженыОшибки; + ЗаполнитьПояснения(); + УстановитьКлючСохраненияПоложенияОкна(); + Иначе + Элементы.Страницы.ТекущаяСтраница = Элементы.ВыполняетсяПроверкаНастроек; + Элементы.ФормаЗакрыть.Заголовок = НСтр("ru = 'Отмена'"); + Элементы.ФормаПерейтиКНастройкам.Видимость = Ложь; + КонецЕсли; + + Элементы.ФормаНазад.Видимость = Ложь; КонецПроцедуры &НаКлиенте Процедура ПриОткрытии(Отказ) - ПодключитьОбработчикОжидания("ВыполнитьПроверкуНастроек", 0.1, Истина) + + Если Не ЗначениеЗаполнено(СообщенияОбОшибках) Тогда + ПодключитьОбработчикОжидания("ВыполнитьПроверкуНастроек", 0.1, Истина); + КонецЕсли; + +КонецПроцедуры + +&НаКлиенте +Процедура ПерейтиКНастройкам(Команда) + + ПерейтиКНастройкамПочты(); + +КонецПроцедуры + +&НаКлиенте +Процедура Назад(Команда) + + Элементы.Страницы.ТекущаяСтраница = Элементы.ПриПроверкеОбнаруженыОшибки; + Заголовок = Параметры.Заголовок; + АвтоЗаголовок = Ложь; + Элементы.ФормаНазад.Видимость = Ложь; + КонецПроцедуры #КонецОбласти @@ -30,6 +63,17 @@ РаботаСПочтовымиСообщениямиКлиент.ПерейтиКДокументацииПоВводуУчетнойЗаписиЭлектроннойПочты(); КонецПроцедуры +&НаКлиенте +Процедура СпособыУстраненияОбработкаНавигационнойСсылки(Элемент, НавигационнаяСсылкаФорматированнойСтроки, СтандартнаяОбработка) + + Если ОбщегоНазначенияКлиентСервер.СтруктураURI(НавигационнаяСсылкаФорматированнойСтроки).Схема = "" Тогда + СтандартнаяОбработка = Ложь; + ИдентификаторИсправления = НавигационнаяСсылкаФорматированнойСтроки; + ПерейтиКНастройкамПочты(); + КонецЕсли; + +КонецПроцедуры + #КонецОбласти #Область СлужебныеПроцедурыИФункции @@ -43,6 +87,21 @@ ДлительныеОперацииКлиент.ОжидатьЗавершение(ДлительнаяОперация, ОповещениеОЗавершении, ПараметрыОжидания); КонецПроцедуры +&НаКлиенте +Процедура СсылкаИнформацияДляТехподдержкиНажатие(Элемент) + + Если ЗначениеЗаполнено(ИнформацияДляТехподдержки) Тогда + Элементы.Страницы.ТекущаяСтраница = Элементы.СтраницаИнформацияДляТехподдержки; + Элементы.ФормаНазад.Видимость = Истина; + Иначе + Элементы.Страницы.ТекущаяСтраница = Элементы.ВыполняетсяПроверкаНастроек; + Заголовок = ""; + АвтоЗаголовок = Истина; + ПодключитьОбработчикОжидания("ВыполнитьПроверкуНастроек", 0.1, Истина); + КонецЕсли; + +КонецПроцедуры + &НаСервере Функция НачатьВыполнениеНаСервере() ПараметрыВыполнения = ДлительныеОперации.ПараметрыВыполненияФункции(УникальныйИдентификатор); @@ -64,14 +123,58 @@ КонецЕсли; РезультатПроверки = ПолучитьИзВременногоХранилища(Результат.АдресРезультата); - СообщенияОбОшибках = РезультатПроверки.ОшибкиПодключения; + + ИнформацияДляТехподдержки = РезультатПроверки.ОшибкиПодключения; ВыполненныеПроверки = РезультатПроверки.ВыполненныеПроверки; - Если ЗначениеЗаполнено(СообщенияОбОшибках) Тогда - Элементы.Страницы.ТекущаяСтраница = Элементы.ПриПроверкеОбнаруженыОшибки; + + Если ЗначениеЗаполнено(ИнформацияДляТехподдержки) Тогда + Если ЗначениеЗаполнено(СообщенияОбОшибках) Тогда + Элементы.Страницы.ТекущаяСтраница = Элементы.СтраницаИнформацияДляТехподдержки; + Элементы.ФормаНазад.Видимость = Истина; + Иначе + СообщенияОбОшибках = СтрСоединить(РезультатПроверки.ТекстыОшибок, Символы.ПС); + ЗаполнитьПояснения(); + Элементы.Страницы.ТекущаяСтраница = Элементы.ПриПроверкеОбнаруженыОшибки; + КонецЕсли; Иначе Элементы.Страницы.ТекущаяСтраница = Элементы.ПроверкаУспешноВыполнена; КонецЕсли; КонецПроцедуры +&НаСервере +Процедура ЗаполнитьПояснения() + + ПоясненияПоОшибке = РаботаСПочтовымиСообщениямиСлужебный.ПоясненияПоОшибке(СообщенияОбОшибках); + + ВозможныеПричины = РаботаСПочтовымиСообщениямиСлужебный.ФорматированныйСписок(ПоясненияПоОшибке.ВозможныеПричины); + СпособыУстранения = РаботаСПочтовымиСообщениямиСлужебный.ФорматированныйСписок(ПоясненияПоОшибке.СпособыУстранения); + + Элементы.ДекорацияВозможныеПричины.Заголовок = ВозможныеПричины; + Элементы.ДекорацияСпособыУстранения.Заголовок = СпособыУстранения; + +КонецПроцедуры + +&НаСервере +Процедура УстановитьКлючСохраненияПоложенияОкна() + + КлючСохраненияПоложенияОкна = ОбщегоНазначения.КонтрольнаяСуммаСтрокой(Строка(ВозможныеПричины) + Строка(СпособыУстранения)); + +КонецПроцедуры + +&НаКлиенте +Процедура ПерейтиКНастройкамПочты() + + Если ВладелецФормы <> Неопределено И ВладелецФормы.ИмяФормы = "Справочник.УчетныеЗаписиЭлектроннойПочты.Форма.ФормаЭлемента" Тогда + Закрыть(ИдентификаторИсправления); + Иначе + ПараметрыОткрытия = Новый Структура; + ПараметрыОткрытия.Вставить("Ключ", Параметры.УчетнаяЗапись); + ПараметрыОткрытия.Вставить("ИдентификаторИсправления", ИдентификаторИсправления); + + ОткрытьФорму("Справочник.УчетныеЗаписиЭлектроннойПочты.ФормаОбъекта", ПараметрыОткрытия, ЭтотОбъект); + КонецЕсли; + +КонецПроцедуры + #КонецОбласти diff --git a/SSL/src/Catalogs/УчетныеЗаписиЭлектроннойПочты/Forms/ФормаСписка/Form.form b/SSL/src/Catalogs/УчетныеЗаписиЭлектроннойПочты/Forms/ФормаСписка/Form.form index fd82623a9..4ab9704f9 100644 --- a/SSL/src/Catalogs/УчетныеЗаписиЭлектроннойПочты/Forms/ФормаСписка/Form.form +++ b/SSL/src/Catalogs/УчетныеЗаписиЭлектроннойПочты/Forms/ФормаСписка/Form.form @@ -551,9 +551,6 @@ true - - Список.Ref - Список.Ссылка diff --git a/SSL/src/Catalogs/УчетныеЗаписиЭлектроннойПочты/Forms/ФормаЭлемента/Form.form b/SSL/src/Catalogs/УчетныеЗаписиЭлектроннойПочты/Forms/ФормаЭлемента/Form.form index bb4102227..4356788e8 100644 --- a/SSL/src/Catalogs/УчетныеЗаписиЭлектроннойПочты/Forms/ФормаЭлемента/Form.form +++ b/SSL/src/Catalogs/УчетныеЗаписиЭлектроннойПочты/Forms/ФормаЭлемента/Form.form @@ -1987,6 +1987,76 @@ true + + ЦветПодсветки + 17 + + Color + + + true + + + true + + + + НачальныйЦветЭлемента + 18 + + Color + + + true + + + true + + + + СчетчикПодсветки + 19 + + Number + + 1 + + + + true + + + true + + + + ИмяПодсвечиваемогоЭлемента + 20 + + String + + + + true + + + true + + + + ИдентификаторИсправления + 21 + + String + + + + true + + + true + + ЗаписатьИЗакрыть @@ -2059,6 +2129,13 @@ <types>Boolean</types> </valueType> </parameters> + <parameters> + <name>ИдентификаторИсправления</name> + <valueType> + <types>String</types> + <stringQualifiers/> + </valueType> + </parameters> <commandInterface> <navigationPanel/> <commandBar> diff --git a/SSL/src/Catalogs/УчетныеЗаписиЭлектроннойПочты/Forms/ФормаЭлемента/Module.bsl b/SSL/src/Catalogs/УчетныеЗаписиЭлектроннойПочты/Forms/ФормаЭлемента/Module.bsl index 2b6739940..dfadd4092 100644 --- a/SSL/src/Catalogs/УчетныеЗаписиЭлектроннойПочты/Forms/ФормаЭлемента/Module.bsl +++ b/SSL/src/Catalogs/УчетныеЗаписиЭлектроннойПочты/Forms/ФормаЭлемента/Module.bsl @@ -37,6 +37,9 @@ МодульПодключаемыеКоманды.ПриСозданииНаСервере(ЭтотОбъект); КонецЕсли; + ЦветПодсветки = ЦветаСтиля.ПоясняющийОшибкуТекст; + ИдентификаторИсправления = Параметры.ИдентификаторИсправления; + КонецПроцедуры &НаСервере @@ -111,11 +114,17 @@ &НаКлиенте Процедура ПриОткрытии(Отказ) + УстановитьВидНастройкиХраненияПисемНаСервере(); + Если ОбщегоНазначенияКлиент.ПодсистемаСуществует("СтандартныеПодсистемы.ПодключаемыеКоманды") Тогда МодульПодключаемыеКомандыКлиент = ОбщегоНазначенияКлиент.ОбщийМодуль("ПодключаемыеКомандыКлиент"); МодульПодключаемыеКомандыКлиент.НачатьОбновлениеКоманд(ЭтотОбъект); КонецЕсли; + + Если ЗначениеЗаполнено(ИдентификаторИсправления) Тогда + ПоказатьСпособИсправления(ИдентификаторИсправления); + КонецЕсли; КонецПроцедуры @@ -150,6 +159,31 @@ КонецПроцедуры +&НаКлиенте +Процедура ПоказатьСпособИсправления(СпособИсправления, ДополнительныеПараметры = Неопределено) Экспорт + + Если СпособИсправления = "ВключитьИспользованиеАвторизацииSMTP" Тогда + ОбщегоНазначенияКлиент.СообщитьПользователю(НСтр("ru = 'Включите авторизацию на сервере исходящей почты.'"), + Объект.Ссылка, , "Объект.ПриОтправкеПисемТребуетсяАвторизация"); + ИначеЕсли СпособИсправления = "Перенастроить" Тогда + ОбщегоНазначенияКлиент.СообщитьПользователю(НСтр("ru = 'Для перенастройки почты нажмите на кнопку ""Перенастроить"".'"), + Объект.Ссылка); + ИначеЕсли СпособИсправления = "ИспользоватьSTARTTLSДляВходящейПочты" Тогда + ОбщегоНазначенияКлиент.СообщитьПользователю(НСтр("ru = 'Переключите шифрование на STARTTLS (для входящей почты).'"), + Объект.Ссылка, "ШифрованиеПриПолученииПочты"); + ИначеЕсли СпособИсправления = "ПерезаполнитьЛогинИПароль" Тогда + ОбщегоНазначенияКлиент.СообщитьПользователю(НСтр("ru = 'Попробуйте очистить и ввести заново логин.'"), + Объект.Ссылка, , "Объект.Пользователь"); + ИначеЕсли СпособИсправления = "ПерезаполнитьПароль" Тогда + ОбщегоНазначенияКлиент.СообщитьПользователю(НСтр("ru = 'Введите пароль.'"), + Объект.Ссылка, "Пароль"); + ИначеЕсли СпособИсправления = "ЗаполнитьАдресПочты" Тогда + ОбщегоНазначенияКлиент.СообщитьПользователю(НСтр("ru = 'Проверьте адрес почты.'"), + Объект.Ссылка, "Объект.АдресЭлектроннойПочты"); + КонецЕсли; + +КонецПроцедуры + #КонецОбласти #Область ОбработчикиСобытийЭлементовШапкиФормы @@ -533,7 +567,10 @@ Если Модифицированность Тогда Записать(Новый Структура("ПроверитьНастройки")); Иначе - РаботаСПочтовымиСообщениямиКлиент.ПроверитьНастройкиУчетнойЗаписи(Объект.Ссылка); + ОписаниеОповещения = Новый ОписаниеОповещения("ПоказатьСпособИсправления", ЭтотОбъект); + ПараметрыОткрытия = Новый Структура("УчетнаяЗапись", Объект.Ссылка); + ОткрытьФорму("Справочник.УчетныеЗаписиЭлектроннойПочты.Форма.ПроверкаНастроекУчетнойЗаписи", + ПараметрыОткрытия, ЭтотОбъект, , , , ОписаниеОповещения); КонецЕсли; КонецПроцедуры diff --git a/SSL/src/Catalogs/УчетныеЗаписиЭлектроннойПочты/ManagerModule.bsl b/SSL/src/Catalogs/УчетныеЗаписиЭлектроннойПочты/ManagerModule.bsl index 77b5b2181..0e2e8837d 100644 --- a/SSL/src/Catalogs/УчетныеЗаписиЭлектроннойПочты/ManagerModule.bsl +++ b/SSL/src/Catalogs/УчетныеЗаписиЭлектроннойПочты/ManagerModule.bsl @@ -1143,9 +1143,12 @@ ТребуетсяПроверкаНастроекИсходящейПочты = Ложь; ТребуетсяПроверкаНастроекВходящейПочты = Ложь; + ТекстыОшибок = Новый Массив; + Если ПрофильИсходящейПочты <> Неопределено Тогда ТекстОшибки = ПроверитьПодключениеКСерверуИсходящейПочты(ПрофильИсходящейПочты, АдресЭлектроннойПочты); Если ЗначениеЗаполнено(ТекстОшибки) Тогда + ТекстыОшибок.Добавить(ТекстОшибки); ТехническиеПодробности.Добавить(ТекстОшибки); ОшибкаАутентификации = ОшибкаАутентификации(ТекстОшибки); @@ -1171,6 +1174,7 @@ Протокол = ?(ЗначениеЗаполнено(ПрофильВходящейПочты.АдресСервераIMAP), ПротоколИнтернетПочты.IMAP, ПротоколИнтернетПочты.POP3); ТекстОшибки = ПроверитьПодключениеКСерверуВходящейПочты(ПрофильВходящейПочты, Протокол); Если ЗначениеЗаполнено(ТекстОшибки) Тогда + ТекстыОшибок.Добавить(ТекстОшибки); ТехническиеПодробности.Добавить(ТекстОшибки); ОшибкаАутентификации = ОшибкаАутентификации(ТекстОшибки); @@ -1248,6 +1252,7 @@ Результат = Новый Структура; Результат.Вставить("ВыполненныеПроверки", ВыполненныеПроверки); Результат.Вставить("ОшибкиПодключения", ОшибкиПодключения); + Результат.Вставить("ТекстыОшибок", ТекстыОшибок); Возврат Результат; diff --git a/SSL/src/Catalogs/Файлы/Forms/Файлы/Module.bsl b/SSL/src/Catalogs/Файлы/Forms/Файлы/Module.bsl index fefb7d636..c1709dfbc 100644 --- a/SSL/src/Catalogs/Файлы/Forms/Файлы/Module.bsl +++ b/SSL/src/Catalogs/Файлы/Forms/Файлы/Module.bsl @@ -1195,8 +1195,8 @@ Элементы.ДекорацияДатаСинхронизации.Видимость = Истина; Элементы.ДекорацияДатаСинхронизации.Заголовок = СтроковыеФункцииКлиент.ФорматированнаяСтрока( - НСтр("ru = 'Синхронизировано: <a href=""OpenJournal"">%1</a>'"), - Формат(СведенияОСинхронизации.ДатаСинхронизации, "ДЛФ=DD")); + НСтр("ru = 'Синхронизировано: <a href=""%1"">%2</a>'"), + "OpenJournal", Формат(СведенияОСинхронизации.ДатаСинхронизации, "ДЛФ=DD")); Иначе @@ -1368,6 +1368,7 @@ Зашифрован = ДанныеКоманд.Зашифрован; ПодписанЭП = ДанныеКоманд.ПодписанЭП; Редактирует = ДанныеКоманд.Редактирует; + АвторТекущийПользователь = ДанныеКоманд.Автор = ПользователиКлиент.АвторизованныйПользователь(); РедактируетТекущийПользователь = ДанныеКоманд.ФайлРедактируетТекущийПользователь; @@ -1379,17 +1380,17 @@ Элементы.ФормаСохранитьИзменения.Доступность = ИзменениеФайлов И РедактируетТекущийПользователь; Элементы.СписокКонтекстноеМенюСохранитьИзменения.Доступность = ИзменениеФайлов И РедактируетТекущийПользователь; - Элементы.ФормаОсвободить.Доступность = ИзменениеФайлов И ЗначениеЗаполнено(Редактирует) И Не ФайлыРедактируютсяВОблачномСервисе;; - Элементы.СписокКонтекстноеМенюОсвободить.Доступность = ИзменениеФайлов И ЗначениеЗаполнено(Редактирует) И Не ФайлыРедактируютсяВОблачномСервисе;; + Элементы.ФормаОсвободить.Доступность = ИзменениеФайлов И ЗначениеЗаполнено(Редактирует) И Не ФайлыРедактируютсяВОблачномСервисе; + Элементы.СписокКонтекстноеМенюОсвободить.Доступность = ИзменениеФайлов И ЗначениеЗаполнено(Редактирует) И Не ФайлыРедактируютсяВОблачномСервисе; Элементы.ФормаЗанять.Доступность = ИзменениеФайлов И Не ЗначениеЗаполнено(Редактирует) И НЕ ПодписанЭП И НЕ Служебный; Элементы.СписокКонтекстноеМенюЗанять.Доступность = ИзменениеФайлов И Не ЗначениеЗаполнено(Редактирует) И НЕ ПодписанЭП И НЕ Служебный; - Элементы.ФормаРедактировать.Доступность = ИзменениеФайлов И НЕ ПодписанЭП И НЕ РедактируетДругой И НЕ Служебный; - Элементы.СписокКонтекстноеМенюРедактировать.Доступность = ИзменениеФайлов И НЕ ПодписанЭП И НЕ РедактируетДругой И НЕ Служебный; - - Элементы.ФормаПеренестиВПапку.Доступность = ИзменениеФайлов И НЕ ПодписанЭП И Не ФайлыРедактируютсяВОблачномСервисе; - Элементы.СписокКонтекстноеМенюПеренестиВПапку.Доступность = ИзменениеФайлов И НЕ ПодписанЭП И Не ФайлыРедактируютсяВОблачномСервисе; + Элементы.ФормаРедактировать.Доступность = ИзменениеФайлов И Не ПодписанЭП И Не РедактируетДругой И Не Служебный; + Элементы.СписокКонтекстноеМенюРедактировать.Доступность = ИзменениеФайлов И Не ПодписанЭП И Не РедактируетДругой И Не Служебный; + + Элементы.ФормаПеренестиВПапку.Доступность = ИзменениеФайлов И Не ПодписанЭП И Не ФайлыРедактируютсяВОблачномСервисе; + Элементы.СписокКонтекстноеМенюПеренестиВПапку.Доступность = ИзменениеФайлов И Не ПодписанЭП И Не ФайлыРедактируютсяВОблачномСервисе; Элементы.ФормаПодписать.Доступность = ИзменениеФайлов И Не ЗначениеЗаполнено(Редактирует); Элементы.СписокКонтекстноеМенюПодписать.Доступность = ИзменениеФайлов И Не ЗначениеЗаполнено(Редактирует); diff --git a/SSL/src/Catalogs/Файлы/Forms/ФормаЭлемента/Form.form b/SSL/src/Catalogs/Файлы/Forms/ФормаЭлемента/Form.form index 3823c71df..43858a92a 100644 --- a/SSL/src/Catalogs/Файлы/Forms/ФормаЭлемента/Form.form +++ b/SSL/src/Catalogs/Файлы/Forms/ФормаЭлемента/Form.form @@ -314,7 +314,7 @@ <id>129</id> <items xsi:type="form:Button"> <name>ФормаПодписатьФайлЭП</name> - <id>19</id> + <id>289</id> <visible>true</visible> <enabled>true</enabled> <userVisible> @@ -322,7 +322,7 @@ </userVisible> <extendedTooltip> <name>ФормаПодписатьФайлЭПРасширеннаяПодсказка</name> - <id>71</id> + <id>292</id> <type>Label</type> <autoMaxWidth>true</autoMaxWidth> <autoMaxHeight>true</autoMaxHeight> @@ -340,7 +340,7 @@ </items> <items xsi:type="form:Button"> <name>ФормаДобавитьЭПИзФайла</name> - <id>20</id> + <id>290</id> <visible>true</visible> <enabled>true</enabled> <userVisible> @@ -348,7 +348,7 @@ </userVisible> <extendedTooltip> <name>ФормаДобавитьЭПИзФайлаРасширеннаяПодсказка</name> - <id>72</id> + <id>293</id> <type>Label</type> <autoMaxWidth>true</autoMaxWidth> <autoMaxHeight>true</autoMaxHeight> @@ -366,7 +366,7 @@ </items> <items xsi:type="form:Button"> <name>ФормаСохранитьВместеСЭП</name> - <id>21</id> + <id>291</id> <visible>true</visible> <enabled>true</enabled> <userVisible> @@ -374,6 +374,84 @@ </userVisible> <extendedTooltip> <name>ФормаСохранитьВместеСЭПРасширеннаяПодсказка</name> + <id>294</id> + <type>Label</type> + <autoMaxWidth>true</autoMaxWidth> + <autoMaxHeight>true</autoMaxHeight> + <extInfo xsi:type="form:LabelDecorationExtInfo"> + <horizontalAlign>Left</horizontalAlign> + </extInfo> + </extendedTooltip> + <commandName>Form.Command.СохранитьВместеСЭП</commandName> + <buttonImportance>Normal</buttonImportance> + <representation>Auto</representation> + <autoMaxWidth>true</autoMaxWidth> + <autoMaxHeight>true</autoMaxHeight> + <placementArea>UserCmds</placementArea> + <representationInContextMenu>Auto</representationInContextMenu> + </items> + <items xsi:type="form:Button"> + <name>ФормаПодписать</name> + <id>19</id> + <visible>true</visible> + <enabled>true</enabled> + <userVisible> + <common>true</common> + </userVisible> + <extendedTooltip> + <name>ФормаПодписатьРасширеннаяПодсказка</name> + <id>71</id> + <type>Label</type> + <autoMaxWidth>true</autoMaxWidth> + <autoMaxHeight>true</autoMaxHeight> + <extInfo xsi:type="form:LabelDecorationExtInfo"> + <horizontalAlign>Left</horizontalAlign> + </extInfo> + </extendedTooltip> + <commandName>Form.Command.Подписать</commandName> + <buttonImportance>Normal</buttonImportance> + <representation>Auto</representation> + <autoMaxWidth>true</autoMaxWidth> + <autoMaxHeight>true</autoMaxHeight> + <placementArea>UserCmds</placementArea> + <representationInContextMenu>Auto</representationInContextMenu> + </items> + <items xsi:type="form:Button"> + <name>ФормаДобавитьПодписьИзФайла</name> + <id>20</id> + <visible>true</visible> + <enabled>true</enabled> + <userVisible> + <common>true</common> + </userVisible> + <extendedTooltip> + <name>ФормаДобавитьПодписьИзФайлаРасширеннаяПодсказка</name> + <id>72</id> + <type>Label</type> + <autoMaxWidth>true</autoMaxWidth> + <autoMaxHeight>true</autoMaxHeight> + <extInfo xsi:type="form:LabelDecorationExtInfo"> + <horizontalAlign>Left</horizontalAlign> + </extInfo> + </extendedTooltip> + <commandName>Form.Command.ДобавитьЭПИзФайла</commandName> + <buttonImportance>Normal</buttonImportance> + <representation>Auto</representation> + <autoMaxWidth>true</autoMaxWidth> + <autoMaxHeight>true</autoMaxHeight> + <placementArea>UserCmds</placementArea> + <representationInContextMenu>Auto</representationInContextMenu> + </items> + <items xsi:type="form:Button"> + <name>ФормаСохранитьВместеСПодписью</name> + <id>21</id> + <visible>true</visible> + <enabled>true</enabled> + <userVisible> + <common>true</common> + </userVisible> + <extendedTooltip> + <name>ФормаСохранитьВместеСПодписьюРасширеннаяПодсказка</name> <id>73</id> <type>Label</type> <autoMaxWidth>true</autoMaxWidth> @@ -4475,7 +4553,6 @@ <name>ПроверитьЭП</name> </handler> </action> - <modifiesStoredData>true</modifiesStoredData> <currentRowUse>DontUse</currentRowUse> <selectedRowsUse>Auto</selectedRowsUse> </formCommands> @@ -4520,7 +4597,6 @@ <name>ПроверитьВсе</name> </handler> </action> - <modifiesStoredData>true</modifiesStoredData> <currentRowUse>DontUse</currentRowUse> <selectedRowsUse>Auto</selectedRowsUse> </formCommands> diff --git a/SSL/src/Catalogs/Файлы/Forms/ФормаЭлемента/Module.bsl b/SSL/src/Catalogs/Файлы/Forms/ФормаЭлемента/Module.bsl index 0762b38ce..a23c232a8 100644 --- a/SSL/src/Catalogs/Файлы/Forms/ФормаЭлемента/Module.bsl +++ b/SSL/src/Catalogs/Файлы/Forms/ФормаЭлемента/Module.bsl @@ -564,6 +564,10 @@ &НаКлиенте Процедура ПроверитьЭП(Команда) + Если ЭтоНовый() Тогда + Возврат; + КонецЕсли; + Если Элементы.ЭлектронныеПодписи.ВыделенныеСтроки.Количество() = 0 Тогда Возврат; КонецЕсли; @@ -574,15 +578,27 @@ ДанныеФайла.СсылкаНаДвоичныеДанныеФайла, Элементы.ЭлектронныеПодписи.ВыделенныеСтроки); + Если Элементы.ФормаЗаписатьИЗакрыть.Видимость И Элементы.ФормаЗаписатьИЗакрыть.Доступность Тогда + Модифицированность = Истина; + КонецЕсли; + КонецПроцедуры &НаКлиенте Процедура ПроверитьВсе(Команда) + Если ЭтоНовый() Тогда + Возврат; + КонецЕсли; + ДанныеФайла = ДанныеФайла(ЭтотОбъект.Объект.Ссылка, УникальныйИдентификатор); РаботаСФайламиСлужебныйКлиент.ПроверитьПодписи(ЭтотОбъект, ДанныеФайла.СсылкаНаДвоичныеДанныеФайла); + Если Элементы.ФормаЗаписатьИЗакрыть.Видимость И Элементы.ФормаЗаписатьИЗакрыть.Доступность Тогда + Модифицированность = Истина; + КонецЕсли; + КонецПроцедуры &НаКлиенте @@ -610,6 +626,10 @@ &НаКлиенте Процедура УдалитьЭП(Команда) + Если ЭтоНовый() Тогда + Возврат; + КонецЕсли; + ОписаниеОповещения = Новый ОписаниеОповещения("УдалитьЭПОтветПолучен", ЭтотОбъект); ПоказатьВопрос(ОписаниеОповещения, НСтр("ru = 'Удалить выделенные подписи?'"), РежимДиалогаВопрос.ДаНет); @@ -655,7 +675,7 @@ &НаКлиенте Процедура УстановитьДоступностьКомандСпискаЭП() - РаботаСФайламиСлужебныйКлиент.УстановитьДоступностьКомандСпискаЭлектронныхПодписей(ЭтотОбъект); + РаботаСФайламиСлужебныйКлиент.УстановитьДоступностьКомандСпискаЭлектронныхПодписей(ЭтотОбъект, ЭтоНовый()); КонецПроцедуры @@ -1471,6 +1491,8 @@ СведенияОФайле.АдресВременногоХранилищаТекста = Источник.ТекущаяВерсия.ТекстХранилище; СведенияОФайле.СсылкаНаВерсиюИсточник = Источник.ТекущаяВерсия; СведенияОФайле.Зашифрован = Источник.Зашифрован; + СведенияОФайле.ВремяИзмененияУниверсальное = Источник.ДатаМодификацииУниверсальная; + СведенияОФайле.ВремяИзменения = ДатаМодификации; Версия = РаботаСФайламиСлужебный.СоздатьВерсию(Приемник, СведенияОФайле); РаботаСФайламиСлужебный.ОбновитьВерсиюВФайле( @@ -1503,8 +1525,8 @@ Элементы.ДекорацияКартинкаСтатусСинхронизации.Видимость = НЕ СведенияОСинхронизации.Синхронизирован; Элементы.ДекорацияДатаСинхронизации.Заголовок = СтроковыеФункции.ФорматированнаяСтрока( - НСтр("ru = 'Синхронизирован: <a href=""OpenJournal"">%1</a>'"), - Формат(СведенияОСинхронизации.ДатаСинхронизации, "ДЛФ=DD")); + НСтр("ru = 'Синхронизирован: <a href=""%1"">%2</a>'"), + "OpenJournal", Формат(СведенияОСинхронизации.ДатаСинхронизации, "ДЛФ=DD")); КонецЕсли; diff --git a/SSL/src/Catalogs/Файлы/ManagerModule.bsl b/SSL/src/Catalogs/Файлы/ManagerModule.bsl index f66dade14..091719fa9 100644 --- a/SSL/src/Catalogs/Файлы/ManagerModule.bsl +++ b/SSL/src/Catalogs/Файлы/ManagerModule.bsl @@ -245,7 +245,7 @@ ПроблемныхОбъектов = ПроблемныхОбъектов + 1; ТекстСообщения = СтроковыеФункцииКлиентСервер.ПодставитьПараметрыВСтроку( - НСтр("ru = 'Не удалось обработать файл: %1 по причине: + НСтр("ru = 'Не удалось обработать файл %1 по причине: |%2'"), Строка.Ссылка, ПодробноеПредставлениеОшибки(ИнформацияОбОшибке())); ЗаписьЖурналаРегистрации(ОбновлениеИнформационнойБазы.СобытиеЖурналаРегистрации(), УровеньЖурналаРегистрации.Предупреждение, @@ -260,15 +260,15 @@ Если ОбъектовОбработано = 0 И ПроблемныхОбъектов <> 0 Тогда ТекстСообщения = СтроковыеФункцииКлиентСервер.ПодставитьПараметрыВСтроку( - НСтр("ru = 'Процедуре Справочники.Файлы.ОбработатьДанныеДляПереходаНаНовуюВерсию.ОбработатьДанныеДляПереходаНаНовуюВерсию не удалось обработать программы электронной подписи (пропущены): %1'"), - ПроблемныхОбъектов); + НСтр("ru = 'Не удалось обработать файлы (пропущены): %1'"), + ПроблемныхОбъектов); ВызватьИсключение ТекстСообщения; Иначе - ЗаписьЖурналаРегистрации(ОбновлениеИнформационнойБазы.СобытиеЖурналаРегистрации(), УровеньЖурналаРегистрации.Информация, - , , - СтроковыеФункцииКлиентСервер.ПодставитьПараметрыВСтроку( - НСтр("ru = 'Процедура Справочники.Файлы.ОбработатьДанныеДляПереходаНаНовуюВерсию обработала очередную порцию программ электронной подписи: %1'"), - ОбъектовОбработано)); + ЗаписьЖурналаРегистрации(ОбновлениеИнформационнойБазы.СобытиеЖурналаРегистрации(), + УровеньЖурналаРегистрации.Информация, , , + СтроковыеФункцииКлиентСервер.ПодставитьПараметрыВСтроку( + НСтр("ru = 'Обработана очередная порция файлов: %1'"), + ОбъектовОбработано)); КонецЕсли; Параметры.ОбработкаЗавершена = ОбработкаЗавершена; diff --git a/SSL/src/Catalogs/ШаблоныСообщений/ManagerModule.bsl b/SSL/src/Catalogs/ШаблоныСообщений/ManagerModule.bsl index 2f6359f58..dd7aaa61b 100644 --- a/SSL/src/Catalogs/ШаблоныСообщений/ManagerModule.bsl +++ b/SSL/src/Catalogs/ШаблоныСообщений/ManagerModule.bsl @@ -226,8 +226,9 @@ ПроблемныхОбъектов = ПроблемныхОбъектов + 1; ТекстСообщения = СтроковыеФункцииКлиентСервер.ПодставитьПараметрыВСтроку( - НСтр("ru = 'Не удалось обработать шаблон сообщения: %1 по причине: %2'"), - Шаблон.Ссылка, ПодробноеПредставлениеОшибки(ИнформацияОбОшибке())); + НСтр("ru = 'Не удалось обработать шаблон сообщения %1 по причине: + |%2'"), + Шаблон.Ссылка, ПодробноеПредставлениеОшибки(ИнформацияОбОшибке())); ЗаписьЖурналаРегистрации(ОбновлениеИнформационнойБазы.СобытиеЖурналаРегистрации(), УровеньЖурналаРегистрации.Предупреждение, Метаданные.Справочники.ШаблоныСообщений, Шаблон.Ссылка, ТекстСообщения); КонецПопытки; @@ -237,14 +238,14 @@ Если ОбъектовОбработано = 0 И ПроблемныхОбъектов <> 0 Тогда ТекстСообщения = СтроковыеФункцииКлиентСервер.ПодставитьПараметрыВСтроку( - НСтр("ru = 'Процедуре ОбработатьДанныеДляПереходаНаНовуюВерсию не удалось обработать некоторые шаблоны сообщений (пропущены): %1'"), - ПроблемныхОбъектов); + НСтр("ru = 'Не удалось обработать некоторые шаблоны сообщений (пропущены): %1'"), + ПроблемныхОбъектов); ВызватьИсключение ТекстСообщения; Иначе ЗаписьЖурналаРегистрации(ОбновлениеИнформационнойБазы.СобытиеЖурналаРегистрации(), УровеньЖурналаРегистрации.Информация, Метаданные.Справочники.ШаблоныСообщений,, - СтроковыеФункцииКлиентСервер.ПодставитьПараметрыВСтроку(НСтр("ru = 'Процедура обновления обработала очередную порцию шаблонов сообщений: %1'"), - ОбъектовОбработано)); + СтроковыеФункцииКлиентСервер.ПодставитьПараметрыВСтроку(НСтр("ru = 'Процедура обновления обработала очередную порцию шаблонов сообщений: %1'"), + ОбъектовОбработано)); КонецЕсли; КонецПроцедуры diff --git a/SSL/src/Catalogs/ЯзыкиПечатныхФорм/Forms/ФормаСписка/Form.form b/SSL/src/Catalogs/ЯзыкиПечатныхФорм/Forms/ФормаСписка/Form.form index deeab0e89..4ab1250da 100644 --- a/SSL/src/Catalogs/ЯзыкиПечатныхФорм/Forms/ФормаСписка/Form.form +++ b/SSL/src/Catalogs/ЯзыкиПечатныхФорм/Forms/ФормаСписка/Form.form @@ -34,7 +34,7 @@ <autoMaxHeight>true</autoMaxHeight> <extInfo xsi:type="form:PictureDecorationExtInfo"> <picture xsi:type="core:PictureRef"> - <picture>CommonPicture.Информация</picture> + <picture>StdPicture.Information</picture> </picture> </extInfo> </items> @@ -448,6 +448,10 @@ <userVisible> <common>true</common> </userVisible> + <title> + <key>ru</key> + <value>Настройка порядка элементов</value> + НастройкаПорядкаЭлементовРасширеннаяПодсказка 59 diff --git a/SSL/src/ChartsOfCharacteristicTypes/ВопросыДляАнкетирования/ManagerModule.bsl b/SSL/src/ChartsOfCharacteristicTypes/ВопросыДляАнкетирования/ManagerModule.bsl index 12629ff17..5450ad48b 100644 --- a/SSL/src/ChartsOfCharacteristicTypes/ВопросыДляАнкетирования/ManagerModule.bsl +++ b/SSL/src/ChartsOfCharacteristicTypes/ВопросыДляАнкетирования/ManagerModule.bsl @@ -74,9 +74,9 @@ Исключение // Если не удалось обработать объект, повторяем попытку снова. ТекстСообщения = СтроковыеФункцииКлиентСервер.ПодставитьПараметрыВСтроку( - НСтр("ru = 'Не удалось обработать вопрос для анкетирования: %1 по причине: + НСтр("ru = 'Не удалось обработать вопрос для анкетирования %1 по причине: |%2'"), - Выборка.Ссылка, ПодробноеПредставлениеОшибки(ИнформацияОбОшибке())); + Выборка.Ссылка, ПодробноеПредставлениеОшибки(ИнформацияОбОшибке())); ЗаписьЖурналаРегистрации(ОбновлениеИнформационнойБазы.СобытиеЖурналаРегистрации(), УровеньЖурналаРегистрации.Предупреждение, Метаданные.ПланыВидовХарактеристик.ВопросыДляАнкетирования, Выборка.Ссылка, ТекстСообщения); КонецПопытки; diff --git a/SSL/src/ChartsOfCharacteristicTypes/ДополнительныеРеквизитыИСведения/Forms/ФормаЭлемента/Form.form b/SSL/src/ChartsOfCharacteristicTypes/ДополнительныеРеквизитыИСведения/Forms/ФормаЭлемента/Form.form index 06baa0cbe..ba9b0ca7e 100644 --- a/SSL/src/ChartsOfCharacteristicTypes/ДополнительныеРеквизитыИСведения/Forms/ФормаЭлемента/Form.form +++ b/SSL/src/ChartsOfCharacteristicTypes/ДополнительныеРеквизитыИСведения/Forms/ФормаЭлемента/Form.form @@ -1598,7 +1598,7 @@ true - CommonPicture.Информация + StdPicture.Information AsFileRef @@ -4586,17 +4586,10 @@ ЗначенияПереопределяемый.Владелец, ЗначенияПереопределяемый.Родитель, ЗначенияПереопределяемый.ЭтоГруппа, - ВЫБОР - КОГДА &ЭтоОсновнойЯзык - ТОГДА ЗначенияПереопределяемый.Наименование - ИНАЧЕ ВЫРАЗИТЬ(ЕСТЬNULL(ЗначенияПредставленияПереопределяемый.Наименование, ЗначенияПереопределяемый.Наименование) КАК СТРОКА(150)) - КОНЕЦ КАК Наименование, + ЗначенияПереопределяемый.Наименование КАК Наименование, ЗначенияПереопределяемый.Вес ИЗ - Справочник.ЗначенияСвойствОбъектов КАК ЗначенияПереопределяемый - ЛЕВОЕ СОЕДИНЕНИЕ Справочник.ЗначенияСвойствОбъектов.Представления КАК ЗначенияПредставленияПереопределяемый - ПО (ЗначенияПредставленияПереопределяемый.Ссылка = ЗначенияПереопределяемый.Ссылка) - И ЗначенияПредставленияПереопределяемый.КодЯзыка = &КодЯзыка + Справочник.ЗначенияСвойствОбъектов КАК ЗначенияПереопределяемый Catalog.ЗначенияСвойствОбъектов true true @@ -4853,29 +4846,15 @@ ТОГДА Наборы.Наименование КОГДА &ЭтоДополнительноеСведение ТОГДА ВЫБОР - КОГДА Наборы.КоличествоСведений = "" - ТОГДА ВЫБОР - КОГДА &ЭтоОсновнойЯзык - ТОГДА Наборы.Наименование - ИНАЧЕ ВЫРАЗИТЬ(ЕСТЬNULL(НаборыПредставления.Наименование, Наборы.Наименование) КАК СТРОКА(150)) - КОНЕЦ - КОГДА Наборы.КоличествоСведений <> "" - И &ЭтоОсновнойЯзык - ТОГДА Наборы.Наименование + " (" + Наборы.КоличествоСведений + ")" - ИНАЧЕ (ВЫРАЗИТЬ(ЕСТЬNULL(НаборыПредставления.Наименование, Наборы.Наименование) КАК СТРОКА(150))) + " (" + Наборы.КоличествоСведений + ")" - КОНЕЦ - ИНАЧЕ ВЫБОР - КОГДА Наборы.КоличествоРеквизитов = "" - ТОГДА ВЫБОР - КОГДА &ЭтоОсновнойЯзык - ТОГДА Наборы.Наименование - ИНАЧЕ ВЫРАЗИТЬ(ЕСТЬNULL(НаборыПредставления.Наименование, Наборы.Наименование) КАК СТРОКА(150)) - КОНЕЦ - КОГДА Наборы.КоличествоРеквизитов <> "" - И &ЭтоОсновнойЯзык - ТОГДА Наборы.Наименование + " (" + Наборы.КоличествоРеквизитов + ")" - ИНАЧЕ (ВЫРАЗИТЬ(ЕСТЬNULL(НаборыПредставления.Наименование, Наборы.Наименование) КАК СТРОКА(150))) + " (" + Наборы.КоличествоРеквизитов + ")" + КОГДА Наборы.КоличествоСведений = "" + ТОГДА Наборы.Наименование + ИНАЧЕ Наборы.Наименование + " (" + Наборы.КоличествоСведений + ")" КОНЕЦ + ИНАЧЕ ВЫБОР + КОГДА Наборы.КоличествоРеквизитов = "" + ТОГДА Наборы.Наименование + ИНАЧЕ Наборы.Наименование + " (" + Наборы.КоличествоРеквизитов + ")" + КОНЕЦ КОНЕЦ КАК Представление, ВЫБОР КОГДА Наборы.ПометкаУдаления @@ -4888,15 +4867,12 @@ КОНЕЦ КАК НомерКартинки ИЗ Справочник.НаборыДополнительныхРеквизитовИСведений КАК Наборы - ЛЕВОЕ СОЕДИНЕНИЕ Справочник.НаборыДополнительныхРеквизитовИСведений.Представления КАК НаборыПредставления - ПО (НаборыПредставления.Ссылка = Наборы.Ссылка) - И (НаборыПредставления.КодЯзыка = &КодЯзыка) ГДЕ ВЫБОР - КОГДА Наборы.Родитель = ЗНАЧЕНИЕ(Справочник.НаборыДополнительныхРеквизитовИСведений.ПустаяСсылка) - ТОГДА Наборы.Ссылка В (&Наборы) - ИНАЧЕ Наборы.Родитель В (&Наборы) - КОНЕЦ + КОГДА Наборы.Родитель = ЗНАЧЕНИЕ(Справочник.НаборыДополнительныхРеквизитовИСведений.ПустаяСсылка) + ТОГДА Наборы.Ссылка В (&Наборы) + ИНАЧЕ Наборы.Родитель В (&Наборы) + КОНЕЦ И Наборы.Используется И ЕСТЬNULL(Наборы.Родитель.Используется, ИСТИНА) И НЕ Наборы.Ссылка В (&ИсключаемыеНаборы) diff --git a/SSL/src/ChartsOfCharacteristicTypes/ДополнительныеРеквизитыИСведения/Forms/ФормаЭлемента/Module.bsl b/SSL/src/ChartsOfCharacteristicTypes/ДополнительныеРеквизитыИСведения/Forms/ФормаЭлемента/Module.bsl index 02ee8d6f0..76f101120 100644 --- a/SSL/src/ChartsOfCharacteristicTypes/ДополнительныеРеквизитыИСведения/Forms/ФормаЭлемента/Module.bsl +++ b/SSL/src/ChartsOfCharacteristicTypes/ДополнительныеРеквизитыИСведения/Forms/ФормаЭлемента/Module.bsl @@ -118,9 +118,15 @@ // Заполнение наименования по набору свойств // и проверка есть ли свойство с тем же наименованием. - ТекстВопроса = НаименованиеУжеИспользуется( - Объект.Заголовок, Объект.Ссылка, ТекущийНаборСвойств, Объект.Наименование, Объект.Представления); + Если ОбщегоНазначенияКлиент.ПодсистемаСуществует("СтандартныеПодсистемы.Мультиязычность") Тогда + ТекстВопроса = НаименованиеУжеИспользуется( + Объект.Заголовок, Объект.Ссылка, ТекущийНаборСвойств, Объект.Наименование, Объект.ЗаголовокЯзык1, Объект.ЗаголовокЯзык2); + Иначе + ТекстВопроса = НаименованиеУжеИспользуется( + Объект.Заголовок, Объект.Ссылка, ТекущийНаборСвойств, Объект.Наименование, "", ""); + КонецЕсли; + Если ЗначениеЗаполнено(ТекстВопроса) Тогда Кнопки = Новый СписокЗначений; Кнопки.Добавить("ПродолжитьЗапись", НСтр("ru = 'Продолжить запись'")); @@ -244,7 +250,16 @@ // Формирование идентификатора для формул дополнительного реквизита (сведения). Если Не ЗначениеЗаполнено(ТекущийОбъект.ИдентификаторДляФормул) Или ПараметрыЗаписи.Свойство("КогдаИдентификаторДляФормулУжеИспользуется") Тогда - ЗаголовокОбъекта = ЗаголовокДляФормированияИдентификатора(ТекущийОбъект.Заголовок, ТекущийОбъект.Представления); + + ЗаголовокОбъекта = ТекущийОбъект.Заголовок; + Если ОбщегоНазначения.ПодсистемаСуществует("СтандартныеПодсистемы.Мультиязычность") Тогда + МодульМультиязычностьСервер = ОбщегоНазначения.ОбщийМодуль("МультиязычностьСервер"); + СуффиксТекущегоЯзыка = МодульМультиязычностьСервер.СуффиксТекущегоЯзыка(); + Если ЗначениеЗаполнено(СуффиксТекущегоЯзыка) И ЗначениеЗаполнено(ТекущийОбъект["Заголовок" + СуффиксТекущегоЯзыка]) Тогда + ЗаголовокОбъекта = ТекущийОбъект["Заголовок" + СуффиксТекущегоЯзыка]; + КонецЕсли; + КонецЕсли; + ТекущийОбъект.ИдентификаторДляФормул = ПланыВидовХарактеристик.ДополнительныеРеквизитыИСведения.УникальныйИдентификаторДляФормул( ЗаголовокОбъекта, ТекущийОбъект.Ссылка); @@ -794,7 +809,16 @@ ПредлагаемыйИдентификатор = ""; Если Не Элементы.ИдентификаторДляФормул.ТолькоПросмотр Тогда - Представление = ЗаголовокДляФормированияИдентификатора(Объект.Заголовок, Объект.Представления); + + Представление = Объект.Заголовок; + Если ОбщегоНазначения.ПодсистемаСуществует("СтандартныеПодсистемы.Мультиязычность") Тогда + МодульМультиязычностьСервер = ОбщегоНазначения.ОбщийМодуль("МультиязычностьСервер"); + СуффиксТекущегоЯзыка = МодульМультиязычностьСервер.СуффиксТекущегоЯзыка(); + Если ЗначениеЗаполнено(СуффиксТекущегоЯзыка) И ЗначениеЗаполнено(Объект["Заголовок" + СуффиксТекущегоЯзыка]) Тогда + Представление = Объект["Заголовок" + СуффиксТекущегоЯзыка]; + КонецЕсли; + КонецЕсли; + ПредлагаемыйИдентификатор = ПланыВидовХарактеристик.ДополнительныеРеквизитыИСведения.УникальныйИдентификаторДляФормул( Представление, Объект.Ссылка); Если ПредлагаемыйИдентификатор <> Объект.ИдентификаторДляФормул Тогда @@ -807,24 +831,19 @@ &НаСервере Процедура ЗаполнитьИдентификаторДляФормулНаСервере() - ЗаголовокДляИдентификатора = ЗаголовокДляФормированияИдентификатора(Объект.Заголовок, Объект.Представления); - Объект.ИдентификаторДляФормул = ПланыВидовХарактеристик.ДополнительныеРеквизитыИСведения.УникальныйИдентификаторДляФормул( - ЗаголовокДляИдентификатора, Объект.Ссылка); -КонецПроцедуры - -&НаСервереБезКонтекста -Функция ЗаголовокДляФормированияИдентификатора(Знач Заголовок, Знач Представления) - Если ТекущийЯзык().КодЯзыка <> ОбщегоНазначения.КодОсновногоЯзыка() Тогда - Отбор = Новый Структура(); - Отбор.Вставить("КодЯзыка", ОбщегоНазначения.КодОсновногоЯзыка()); - НайденныеСтроки = Представления.НайтиСтроки(Отбор); - Если НайденныеСтроки.Количество() > 0 Тогда - Заголовок = НайденныеСтроки[0].Заголовок; + + ЗаголовокДляИдентификатора = Объект.Заголовок; + Если ОбщегоНазначения.ПодсистемаСуществует("СтандартныеПодсистемы.Мультиязычность") Тогда + МодульМультиязычностьСервер = ОбщегоНазначения.ОбщийМодуль("МультиязычностьСервер"); + СуффиксТекущегоЯзыка = МодульМультиязычностьСервер.СуффиксТекущегоЯзыка(); + Если ЗначениеЗаполнено(СуффиксТекущегоЯзыка) И ЗначениеЗаполнено(Объект["Заголовок" + СуффиксТекущегоЯзыка]) Тогда + ЗаголовокДляИдентификатора = Объект["Заголовок" + СуффиксТекущегоЯзыка]; КонецЕсли; КонецЕсли; - Возврат Заголовок; -КонецФункции + Объект.ИдентификаторДляФормул = ПланыВидовХарактеристик.ДополнительныеРеквизитыИСведения.УникальныйИдентификаторДляФормул( + ЗаголовокДляИдентификатора, Объект.Ссылка); +КонецПроцедуры &НаСервере Процедура УстановитьЗависимостиДополнительныхРеквизитов() @@ -1834,18 +1853,29 @@ | Значения.Предопределенный, | Значения.Владелец, | Значения.Родитель, - | ВЫБОР - | КОГДА &ЭтоОсновнойЯзык - | ТОГДА Значения.Наименование - | ИНАЧЕ ВЫРАЗИТЬ(ЕСТЬNULL(ЗначенияПредставления.Наименование, Значения.Наименование) КАК СТРОКА(150)) - | КОНЕЦ КАК Наименование, + | Значения.Наименование КАК Наименование, | Значения.Вес |ИЗ - | Справочник.ЗначенияСвойствОбъектов КАК Значения + | Справочник.ЗначенияСвойствОбъектов КАК Значения"; + СвойстваСписка.ОсновнаяТаблица = "Справочник.ЗначенияСвойствОбъектов"; + + СуффиксТекущегоЯзыка = ОбщегоНазначения.СуффиксЯзыкаТекущегоПользователя(); + Если СуффиксТекущегоЯзыка = Неопределено Тогда + + СвойстваСписка.ТекстЗапроса = СвойстваСписка.ТекстЗапроса + " | ЛЕВОЕ СОЕДИНЕНИЕ Справочник.ЗначенияСвойствОбъектов.Представления КАК ЗначенияПредставления | ПО (ЗначенияПредставления.Ссылка = Значения.Ссылка) | И ЗначенияПредставления.КодЯзыка = &КодЯзыка"; - СвойстваСписка.ОсновнаяТаблица = "Справочник.ЗначенияСвойствОбъектов"; + + СвойстваСписка.ТекстЗапроса = СтрЗаменить(СвойстваСписка.ТекстЗапроса, "Значения.Наименование КАК Наименование", + "ВЫРАЗИТЬ(ЕСТЬNULL(ЗначенияПредставления.Наименование, Значения.Наименование) КАК СТРОКА(150)) КАК Наименование"); + + ИначеЕсли ЗначениеЗаполнено(СуффиксТекущегоЯзыка) + И ОбщегоНазначения.ПодсистемаСуществует("СтандартныеПодсистемы.Мультиязычность") Тогда + МодульМультиязычностьСервер = ОбщегоНазначения.ОбщийМодуль("МультиязычностьСервер"); + МодульМультиязычностьСервер.ИзменитьПолеЗапросаПодТекущийЯзык(СвойстваСписка.ТекстЗапроса, "Значения.Наименование"); + КонецЕсли; + ОбщегоНазначения.УстановитьСвойстваДинамическогоСписка(Элементы.Значения, СвойстваСписка); Иначе @@ -1858,29 +1888,35 @@ | Значения.Предопределенный, | Значения.Владелец, | Значения.Родитель, - | ВЫБОР - | КОГДА &ЭтоОсновнойЯзык - | ТОГДА Значения.Наименование - | ИНАЧЕ ВЫРАЗИТЬ(ЕСТЬNULL(ЗначенияПредставления.Наименование, Значения.Наименование) КАК СТРОКА(150)) - | КОНЕЦ КАК Наименование, + | Значения.Наименование КАК Наименование, | Значения.Вес |ИЗ - | Справочник.ЗначенияСвойствОбъектовИерархия КАК Значения + | Справочник.ЗначенияСвойствОбъектовИерархия КАК Значения"; + СвойстваСписка.ОсновнаяТаблица = "Справочник.ЗначенияСвойствОбъектовИерархия"; + + СуффиксТекущегоЯзыка = ОбщегоНазначения.СуффиксЯзыкаТекущегоПользователя(); + Если СуффиксТекущегоЯзыка = Неопределено Тогда + + СвойстваСписка.ТекстЗапроса = СвойстваСписка.ТекстЗапроса + " | ЛЕВОЕ СОЕДИНЕНИЕ Справочник.ЗначенияСвойствОбъектовИерархия.Представления КАК ЗначенияПредставления | ПО (ЗначенияПредставления.Ссылка = Значения.Ссылка) | И ЗначенияПредставления.КодЯзыка = &КодЯзыка"; - СвойстваСписка.ОсновнаяТаблица = "Справочник.ЗначенияСвойствОбъектовИерархия"; - ОбщегоНазначения.УстановитьСвойстваДинамическогоСписка(Элементы.Значения, - СвойстваСписка); + + СвойстваСписка.ТекстЗапроса = СтрЗаменить(СвойстваСписка.ТекстЗапроса, "Значения.Наименование КАК Наименование", + "ВЫРАЗИТЬ(ЕСТЬNULL(ЗначенияПредставления.Наименование, Значения.Наименование) КАК СТРОКА(150)) КАК Наименование"); + + ИначеЕсли ЗначениеЗаполнено(СуффиксТекущегоЯзыка) + И ОбщегоНазначения.ПодсистемаСуществует("СтандартныеПодсистемы.Мультиязычность") Тогда + МодульМультиязычностьСервер = ОбщегоНазначения.ОбщийМодуль("МультиязычностьСервер"); + МодульМультиязычностьСервер.ИзменитьПолеЗапросаПодТекущийЯзык(СвойстваСписка.ТекстЗапроса, "Значения.Наименование"); + КонецЕсли; + + ОбщегоНазначения.УстановитьСвойстваДинамическогоСписка(Элементы.Значения, СвойстваСписка); КонецЕсли; - ОбщегоНазначенияКлиентСервер.УстановитьПараметрДинамическогоСписка( - Значения, "ЭтоОсновнойЯзык", ТекущийЯзык() = Метаданные.ОсновнойЯзык, Истина); ОбщегоНазначенияКлиентСервер.УстановитьПараметрДинамическогоСписка( Значения, "КодЯзыка", ТекущийЯзык().КодЯзыка, Истина); - // Отображение уточнений. - Если НЕ ЗначениеЗаполнено(Объект.ВладелецДополнительныхЗначений) Тогда Элементы.УточнениеСпискаЗначений.Видимость = Ложь; Элементы.ДополнительныеЗначения.ТолькоПросмотр = Ложь; @@ -2300,11 +2336,7 @@ | СвойстваНаборов.НомерСтроки, | СвойстваНаборов.Свойство, | СвойстваНаборов.ПометкаУдаления, - | ВЫБОР - | КОГДА &ЭтоОсновнойЯзык - | ТОГДА Свойства.Заголовок - | ИНАЧЕ ВЫРАЗИТЬ(ЕСТЬNULL(СвойстваПредставления.Заголовок, Свойства.Заголовок) КАК СТРОКА(150)) - | КОНЕЦ КАК Заголовок, + | Свойства.Заголовок КАК Заголовок, | Свойства.ВладелецДополнительныхЗначений, | Свойства.ТипЗначения КАК ТипЗначения, | ИСТИНА КАК Общее, @@ -2313,28 +2345,13 @@ | ТОГДА 4 | ИНАЧЕ 3 | КОНЕЦ КАК НомерКартинки, - | ВЫБОР - | КОГДА &ЭтоОсновнойЯзык - | ТОГДА Свойства.Подсказка - | ИНАЧЕ ВЫРАЗИТЬ(ЕСТЬNULL(СвойстваПредставления.Подсказка, Свойства.Подсказка) КАК СТРОКА(150)) - | КОНЕЦ КАК Подсказка, - | ВЫБОР - | КОГДА &ЭтоОсновнойЯзык - | ТОГДА Свойства.ЗаголовокФормыЗначения - | ИНАЧЕ ВЫРАЗИТЬ(ЕСТЬNULL(СвойстваПредставления.ЗаголовокФормыЗначения, Свойства.ЗаголовокФормыЗначения) КАК СТРОКА(150)) - | КОНЕЦ КАК ЗаголовокФормыЗначения, - | ВЫБОР - | КОГДА &ЭтоОсновнойЯзык - | ТОГДА Свойства.ЗаголовокФормыВыбораЗначения - | ИНАЧЕ ВЫРАЗИТЬ(ЕСТЬNULL(СвойстваПредставления.ЗаголовокФормыВыбораЗначения, Свойства.ЗаголовокФормыВыбораЗначения) КАК СТРОКА(150)) - | КОНЕЦ КАК ЗаголовокФормыВыбораЗначения + | Свойства.Подсказка КАК Подсказка, + | Свойства.ЗаголовокФормыЗначения КАК ЗаголовокФормыЗначения, + | Свойства.ЗаголовокФормыВыбораЗначения КАК ЗаголовокФормыВыбораЗначения |ИЗ | Справочник.НаборыДополнительныхРеквизитовИСведений.ДополнительныеРеквизиты КАК СвойстваНаборов | ЛЕВОЕ СОЕДИНЕНИЕ ПланВидовХарактеристик.ДополнительныеРеквизитыИСведения КАК Свойства | ПО СвойстваНаборов.Свойство = Свойства.Ссылка - | ЛЕВОЕ СОЕДИНЕНИЕ ПланВидовХарактеристик.ДополнительныеРеквизитыИСведения.Представления КАК СвойстваПредставления - | ПО СвойстваНаборов.Свойство = СвойстваПредставления.Ссылка - | И СвойстваПредставления.КодЯзыка = &КодЯзыка | |ГДЕ | СвойстваНаборов.Ссылка = &Набор @@ -2356,11 +2373,7 @@ "ВЫБРАТЬ | Свойства.Ссылка КАК Свойство, | Свойства.ПометкаУдаления КАК ПометкаУдаления, - | ВЫБОР - | КОГДА &ЭтоОсновнойЯзык - | ТОГДА Свойства.Заголовок - | ИНАЧЕ ВЫРАЗИТЬ(ЕСТЬNULL(СвойстваПредставления.Заголовок, Свойства.Заголовок) КАК СТРОКА(150)) - | КОНЕЦ КАК Заголовок, + | Свойства.Заголовок КАК Заголовок, | Свойства.ВладелецДополнительныхЗначений, | Свойства.ТипЗначения КАК ТипЗначения, | ИСТИНА КАК Общее, @@ -2369,26 +2382,11 @@ | ТОГДА 4 | ИНАЧЕ 3 | КОНЕЦ КАК НомерКартинки, - | ВЫБОР - | КОГДА &ЭтоОсновнойЯзык - | ТОГДА Свойства.Подсказка - | ИНАЧЕ ВЫРАЗИТЬ(ЕСТЬNULL(СвойстваПредставления.Подсказка, Свойства.Подсказка) КАК СТРОКА(150)) - | КОНЕЦ КАК Подсказка, - | ВЫБОР - | КОГДА &ЭтоОсновнойЯзык - | ТОГДА Свойства.ЗаголовокФормыЗначения - | ИНАЧЕ ВЫРАЗИТЬ(ЕСТЬNULL(СвойстваПредставления.ЗаголовокФормыЗначения, Свойства.ЗаголовокФормыЗначения) КАК СТРОКА(150)) - | КОНЕЦ КАК ЗаголовокФормыЗначения, - | ВЫБОР - | КОГДА &ЭтоОсновнойЯзык - | ТОГДА Свойства.ЗаголовокФормыВыбораЗначения - | ИНАЧЕ ВЫРАЗИТЬ(ЕСТЬNULL(СвойстваПредставления.ЗаголовокФормыВыбораЗначения, Свойства.ЗаголовокФормыВыбораЗначения) КАК СТРОКА(150)) - | КОНЕЦ КАК ЗаголовокФормыВыбораЗначения + | Свойства.Подсказка КАК Подсказка, + | Свойства.ЗаголовокФормыЗначения КАК ЗаголовокФормыЗначения, + | Свойства.ЗаголовокФормыВыбораЗначения КАК ЗаголовокФормыВыбораЗначения |ИЗ | ПланВидовХарактеристик.ДополнительныеРеквизитыИСведения КАК Свойства - | ЛЕВОЕ СОЕДИНЕНИЕ ПланВидовХарактеристик.ДополнительныеРеквизитыИСведения.Представления КАК СвойстваПредставления - | ПО Свойства.Ссылка = СвойстваПредставления.Ссылка - | И СвойстваПредставления.КодЯзыка = &КодЯзыка | ЛЕВОЕ СОЕДИНЕНИЕ Справочник.НаборыДополнительныхРеквизитовИСведений.ДополнительныеРеквизиты КАК СоставНабора | ПО Свойства.Ссылка = СоставНабора.Свойство | @@ -2557,15 +2555,17 @@ КонецПроцедуры &НаСервереБезКонтекста -Функция НаименованиеУжеИспользуется(Знач Заголовок, Знач ТекущееСвойство, Знач НаборСвойств, НовоеНаименование, Знач Представления) +Функция НаименованиеУжеИспользуется(Знач Заголовок, Знач ТекущееСвойство, Знач НаборСвойств, НовоеНаименование, Знач ЗаголовокЯзык1, Знач ЗаголовокЯзык2) - Если ТекущийЯзык().КодЯзыка <> ОбщегоНазначения.КодОсновногоЯзыка() Тогда - Отбор = Новый Структура(); - Отбор.Вставить("КодЯзыка", ОбщегоНазначения.КодОсновногоЯзыка()); - НайденныеСтроки = Представления.НайтиСтроки(Отбор); - Если НайденныеСтроки.Количество() > 0 Тогда - Заголовок = НайденныеСтроки[0].Заголовок; + Если ОбщегоНазначения.ПодсистемаСуществует("СтандартныеПодсистемы.Мультиязычность") Тогда + МодульМультиязычностьСервер = ОбщегоНазначения.ОбщийМодуль("МультиязычностьСервер"); + + Если МодульМультиязычностьСервер.КодПервогоДополнительногоЯзыкаИнформационнойБазы() = ТекущийЯзык().КодЯзыка Тогда + Заголовок = ЗаголовокЯзык1; + ИначеЕсли МодульМультиязычностьСервер.КодВторогоДополнительногоЯзыкаИнформационнойБазы() = ТекущийЯзык().КодЯзыка Тогда + Заголовок = ЗаголовокЯзык2; КонецЕсли; + КонецЕсли; НовоеНаименование = Заголовок; @@ -2779,4 +2779,4 @@ КонецПроцедуры -#КонецОбласти +#КонецОбласти \ No newline at end of file diff --git a/SSL/src/ChartsOfCharacteristicTypes/ДополнительныеРеквизитыИСведения/ManagerModule.bsl b/SSL/src/ChartsOfCharacteristicTypes/ДополнительныеРеквизитыИСведения/ManagerModule.bsl index eb169356d..415ab0bfa 100644 --- a/SSL/src/ChartsOfCharacteristicTypes/ДополнительныеРеквизитыИСведения/ManagerModule.bsl +++ b/SSL/src/ChartsOfCharacteristicTypes/ДополнительныеРеквизитыИСведения/ManagerModule.bsl @@ -922,9 +922,9 @@ ПроблемныхОбъектов = ПроблемныхОбъектов + 1; ТекстСообщения = СтроковыеФункцииКлиентСервер.ПодставитьПараметрыВСтроку( - НСтр("ru = 'Не удалось обработать дополнительный реквизит (сведение): %1 по причине: + НСтр("ru = 'Не удалось обработать дополнительный реквизит (сведение) %1 по причине: |%2'"), - Выборка.Ссылка, ПодробноеПредставлениеОшибки(ИнформацияОбОшибке())); + Выборка.Ссылка, ПодробноеПредставлениеОшибки(ИнформацияОбОшибке())); ЗаписьЖурналаРегистрации(ОбновлениеИнформационнойБазы.СобытиеЖурналаРегистрации(), УровеньЖурналаРегистрации.Предупреждение, Метаданные.ПланыВидовХарактеристик.ДополнительныеРеквизитыИСведения, Выборка.Ссылка, ТекстСообщения); КонецПопытки; @@ -935,13 +935,13 @@ Если ОбъектовОбработано = 0 И ПроблемныхОбъектов <> 0 Тогда ТекстСообщения = СтроковыеФункцииКлиентСервер.ПодставитьПараметрыВСтроку( НСтр("ru = 'Не удалось обработать некоторые дополнительные реквизиты или сведения (пропущены): %1'"), - ПроблемныхОбъектов); + ПроблемныхОбъектов); ВызватьИсключение ТекстСообщения; Иначе ЗаписьЖурналаРегистрации(ОбновлениеИнформационнойБазы.СобытиеЖурналаРегистрации(), УровеньЖурналаРегистрации.Информация, Метаданные.ПланыВидовХарактеристик.ДополнительныеРеквизитыИСведения,, - СтроковыеФункцииКлиентСервер.ПодставитьПараметрыВСтроку(НСтр("ru = 'Обработана очередная порция дополнительных реквизитов (сведений): %1'"), - ОбъектовОбработано)); + СтроковыеФункцииКлиентСервер.ПодставитьПараметрыВСтроку(НСтр("ru = 'Обработана очередная порция дополнительных реквизитов (сведений): %1'"), + ОбъектовОбработано)); КонецЕсли; КонецПроцедуры diff --git a/SSL/src/ChartsOfCharacteristicTypes/ДополнительныеРеквизитыИСведения/ObjectModule.bsl b/SSL/src/ChartsOfCharacteristicTypes/ДополнительныеРеквизитыИСведения/ObjectModule.bsl index 507aff2dc..809925103 100644 --- a/SSL/src/ChartsOfCharacteristicTypes/ДополнительныеРеквизитыИСведения/ObjectModule.bsl +++ b/SSL/src/ChartsOfCharacteristicTypes/ДополнительныеРеквизитыИСведения/ObjectModule.bsl @@ -15,7 +15,12 @@ Заголовок = ""; Имя = ""; ИдентификаторДляФормул = ""; - Представления.Очистить(); + + Если ОбщегоНазначения.ПодсистемаСуществует("СтандартныеПодсистемы.Мультиязычность") Тогда + ЗаголовокЯзык1 = ""; + ЗаголовокЯзык2 = ""; + КонецЕсли; + КонецПроцедуры @@ -212,17 +217,23 @@ КонецПроцедуры Функция ЗаголовокДляФормированияИдентификатора() + ЗаголовокДляИдентификатора = Заголовок; - Если ТекущийЯзык() <> ОбщегоНазначения.КодОсновногоЯзыка() Тогда - Отбор = Новый Структура(); - Отбор.Вставить("КодЯзыка", ОбщегоНазначения.КодОсновногоЯзыка()); - НайденныеСтроки = Представления.НайтиСтроки(Отбор); - Если НайденныеСтроки.Количество() > 0 Тогда - ЗаголовокДляИдентификатора = НайденныеСтроки[0].Заголовок; + + Если ОбщегоНазначения.ПодсистемаСуществует("СтандартныеПодсистемы.Мультиязычность") Тогда + МодульМультиязычностьСервер = ОбщегоНазначения.ОбщийМодуль("МультиязычностьСервер"); + + СуффиксЯзыка = МодульМультиязычностьСервер.СуффиксТекущегоЯзыка(); + Если ЗначениеЗаполнено(СуффиксЯзыка) Тогда + + Если ЗначениеЗаполнено(ЭтотОбъект["Заголовок" + СуффиксЯзыка]) Тогда + ЗаголовокДляИдентификатора = ЭтотОбъект["Заголовок" + СуффиксЯзыка]; + КонецЕсли; КонецЕсли; КонецЕсли; Возврат ЗаголовокДляИдентификатора; + КонецФункции #КонецОбласти diff --git a/SSL/src/ChartsOfCharacteristicTypes/ДополнительныеРеквизитыИСведения/ДополнительныеРеквизитыИСведения.mdo b/SSL/src/ChartsOfCharacteristicTypes/ДополнительныеРеквизитыИСведения/ДополнительныеРеквизитыИСведения.mdo index f2e474a94..bd8f6460d 100644 --- a/SSL/src/ChartsOfCharacteristicTypes/ДополнительныеРеквизитыИСведения/ДополнительныеРеквизитыИСведения.mdo +++ b/SSL/src/ChartsOfCharacteristicTypes/ДополнительныеРеквизитыИСведения/ДополнительныеРеквизитыИСведения.mdo @@ -294,6 +294,50 @@ Use Use + + ЗаголовокФормыВыбораЗначенияЯзык1 + + ru + Заголовок формы выбора значения язык (дополнительный язык) + + + String + + 150 + + + + ru + Используется в заголовке формы выбора дополнительного значения свойства + + + + + Use + Use + + + ЗаголовокФормыВыбораЗначенияЯзык2 + + ru + Заголовок формы выбора значения язык (дополнительный язык 2) + + + String + + 150 + + + + ru + Используется в заголовке формы выбора дополнительного значения свойства + + + + + Use + Use + ЗаголовокФормыЗначения @@ -316,6 +360,100 @@ Use Use + + ЗаголовокФормыЗначенияЯзык1 + + ru + Заголовок формы значения язык (дополнительный язык) + + + String + + 150 + + + + ru + Используется в заголовке формы дополнительного значения свойства + + + + + Use + Use + + + ЗаголовокФормыЗначенияЯзык2 + + ru + Заголовок формы значения язык (дополнительный язык 2) + + + String + + 150 + + + + ru + Используется в заголовке формы дополнительного значения свойства + + + + + Use + Use + + + ЗаголовокЯзык1 + + ru + Наименование (дополнительный язык) + + + String + + 75 + + + + ru + Краткое представление свойства, которое +выводится в формах редактирования его значения + + + + ShowError + + Index + Use + Use + + + ЗаголовокЯзык2 + + ru + Наименование (дополнительный язык 2) + + + String + + 75 + + + + ru + Краткое представление свойства, которое +выводится в формах редактирования его значения + + + + ShowError + + Index + Use + Use + ЗаполнятьОбязательно @@ -335,6 +473,24 @@ Use Use + + ИдентификаторДляФормул + + ru + Идентификатор для формул + + + String + + 150 + + + + + + Use + Use + Имя @@ -401,6 +557,25 @@ Use Use + + НаборСвойств + + ru + Набор свойств + + + CatalogRef.НаборыДополнительныхРеквизитовИСведений + + + ru + Набор свойств, в котором было изначально создано свойство. При включении свойства в несколько наборов значение не меняется. + + + + + Use + Use + Подсказка @@ -421,6 +596,46 @@ Use Use + + ПодсказкаЯзык1 + + ru + Подсказка язык (дополнительный язык) + + + String + + + + ru + Показывается пользователю при редактировании свойства в форме объекта + + + + + Use + Use + + + ПодсказкаЯзык2 + + ru + Подсказка язык (дополнительный язык 2) + + + String + + + + ru + Показывается пользователю при редактировании свойства в форме объекта + + + + + Use + Use + ФорматСвойства @@ -460,43 +675,6 @@ Use Use - - НаборСвойств - - ru - Набор свойств - - - CatalogRef.НаборыДополнительныхРеквизитовИСведений - - - ru - Набор свойств, в котором было изначально создано свойство. При включении свойства в несколько наборов значение не меняется. - - - - - Use - Use - - - ИдентификаторДляФормул - - ru - Идентификатор для формул - - - String - - 150 - - - - - - Use - Use - diff --git a/SSL/src/ChartsOfCharacteristicTypes/ОбъектыАдресацииЗадач/ManagerModule.bsl b/SSL/src/ChartsOfCharacteristicTypes/ОбъектыАдресацииЗадач/ManagerModule.bsl index dc0ccd949..60e0ec7ad 100644 --- a/SSL/src/ChartsOfCharacteristicTypes/ОбъектыАдресацииЗадач/ManagerModule.bsl +++ b/SSL/src/ChartsOfCharacteristicTypes/ОбъектыАдресацииЗадач/ManagerModule.bsl @@ -117,7 +117,9 @@ Если ОбщегоНазначения.ПодсистемаСуществует("СтандартныеПодсистемы.Мультиязычность") Тогда МодульМультиязычностьСервер = ОбщегоНазначения.ОбщийМодуль("МультиязычностьСервер"); МодульМультиязычностьСервер.ЗаполнитьМультиязычныйРеквизит(Элемент, "Наименование", - "ru='Все объекты адресации'", КодыЯзыков); // @НСтр-2 + "ru='Все объекты адресации'", КодыЯзыков); // @НСтр-1 + Иначе + Элемент.Наименование = НСтр("ru = 'Все объекты адресации'", ОбщегоНазначения.КодОсновногоЯзыка()); КонецЕсли; БизнесПроцессыИЗадачиПереопределяемый.ПриНачальномЗаполненииОбъектовАдресацииЗадач(КодыЯзыков, Элементы, ТабличныеЧасти); diff --git a/SSL/src/ChartsOfCharacteristicTypes/РазделыДатЗапретаИзменения/Forms/ФормаЭлемента/Module.bsl b/SSL/src/ChartsOfCharacteristicTypes/РазделыДатЗапретаИзменения/Forms/ФормаЭлемента/Module.bsl index 841c970be..eee051d10 100644 --- a/SSL/src/ChartsOfCharacteristicTypes/РазделыДатЗапретаИзменения/Forms/ФормаЭлемента/Module.bsl +++ b/SSL/src/ChartsOfCharacteristicTypes/РазделыДатЗапретаИзменения/Forms/ФормаЭлемента/Module.bsl @@ -12,7 +12,7 @@ Процедура ПриСозданииНаСервере(Отказ, СтандартнаяОбработка) ТолькоПросмотр = Истина; - + КонецПроцедуры #КонецОбласти diff --git a/SSL/src/ChartsOfCharacteristicTypes/РазделыДатЗапретаИзменения/ManagerModule.bsl b/SSL/src/ChartsOfCharacteristicTypes/РазделыДатЗапретаИзменения/ManagerModule.bsl index 64ddc45ab..7a48970fd 100644 --- a/SSL/src/ChartsOfCharacteristicTypes/РазделыДатЗапретаИзменения/ManagerModule.bsl +++ b/SSL/src/ChartsOfCharacteristicTypes/РазделыДатЗапретаИзменения/ManagerModule.bsl @@ -47,11 +47,10 @@ ИнтеграцияПодсистемБСП.ПриЗаполненииРазделовДатЗапретаИзменения(Разделы); ДатыЗапретаИзмененияПереопределяемый.ПриЗаполненииРазделовДатЗапретаИзменения(Разделы); - ЗаголовокОшибки = - НСтр("ru = 'Ошибка в процедуре ПриЗаполненииРазделовДатЗапретаИзменения - |общего модуля ДатыЗапретаИзмененияПереопределяемый.'") - + Символы.ПС - + Символы.ПС; + ЗаголовокОшибки = СтроковыеФункцииКлиентСервер.ПодставитьПараметрыВСтроку( + НСтр("ru = 'Ошибка в процедуре %1 общего модуля %2.'"), + "ПриЗаполненииРазделовДатЗапретаИзменения", "ДатыЗапретаИзмененияПереопределяемый") + + Символы.ПС + Символы.ПС; РазделыДатЗапрета = Новый Соответствие; РазделыБезОбъектов = Новый Массив; diff --git a/SSL/src/CommonAttributes/НаименованиеЯзык1/НаименованиеЯзык1.mdo b/SSL/src/CommonAttributes/НаименованиеЯзык1/НаименованиеЯзык1.mdo index 9ceb781d1..4ae826edc 100644 --- a/SSL/src/CommonAttributes/НаименованиеЯзык1/НаименованиеЯзык1.mdo +++ b/SSL/src/CommonAttributes/НаименованиеЯзык1/НаименованиеЯзык1.mdo @@ -15,14 +15,42 @@ Use + + Catalog.НаборыДополнительныхРеквизитовИСведений + Use + + + Catalog.ВариантыОтчетов + Use + + + Catalog.ПредопределенныеВариантыОтчетовРасширений + Use + Catalog.РолиИсполнителей Use + + Catalog.ВидыКонтактнойИнформации + Use + + + Catalog.ПредопределенныеВариантыОтчетов + Use + + + Catalog.ЗначенияСвойствОбъектовИерархия + Use + ChartOfCharacteristicTypes.ОбъектыАдресацииЗадач Use + + Catalog.ЗначенияСвойствОбъектов + Use + DontUse DontUse DontUse diff --git a/SSL/src/CommonAttributes/НаименованиеЯзык2/НаименованиеЯзык2.mdo b/SSL/src/CommonAttributes/НаименованиеЯзык2/НаименованиеЯзык2.mdo index 79fa39430..a70e1e945 100644 --- a/SSL/src/CommonAttributes/НаименованиеЯзык2/НаименованиеЯзык2.mdo +++ b/SSL/src/CommonAttributes/НаименованиеЯзык2/НаименованиеЯзык2.mdo @@ -15,14 +15,42 @@ Use + + Catalog.НаборыДополнительныхРеквизитовИСведений + Use + + + Catalog.ВариантыОтчетов + Use + + + Catalog.ПредопределенныеВариантыОтчетовРасширений + Use + Catalog.РолиИсполнителей Use + + Catalog.ВидыКонтактнойИнформации + Use + + + Catalog.ПредопределенныеВариантыОтчетов + Use + + + Catalog.ЗначенияСвойствОбъектовИерархия + Use + ChartOfCharacteristicTypes.ОбъектыАдресацииЗадач Use + + Catalog.ЗначенияСвойствОбъектов + Use + DontUse DontUse DontUse diff --git a/SSL/src/CommonAttributes/ОбластьДанныхВспомогательныеДанные/ОбластьДанныхВспомогательныеДанные.mdo b/SSL/src/CommonAttributes/ОбластьДанныхВспомогательныеДанные/ОбластьДанныхВспомогательныеДанные.mdo index 0553a9cdb..71494cc2c 100644 --- a/SSL/src/CommonAttributes/ОбластьДанныхВспомогательныеДанные/ОбластьДанныхВспомогательныеДанные.mdo +++ b/SSL/src/CommonAttributes/ОбластьДанныхВспомогательныеДанные/ОбластьДанныхВспомогательныеДанные.mdo @@ -24,6 +24,10 @@ InformationRegister.ИспользованиеПоставляемыхДополнительныхОтчетовИОбработокВОбластяхДанных Use + + InformationRegister.ПрогрессОбновления + Use + InformationRegister.ОбработчикиОбновления Use diff --git a/SSL/src/CommonAttributes/ОбластьДанныхОсновныеДанные/ОбластьДанныхОсновныеДанные.mdo b/SSL/src/CommonAttributes/ОбластьДанныхОсновныеДанные/ОбластьДанныхОсновныеДанные.mdo index 3e9ea78fb..c240ff3ef 100644 --- a/SSL/src/CommonAttributes/ОбластьДанныхОсновныеДанные/ОбластьДанныхОсновныеДанные.mdo +++ b/SSL/src/CommonAttributes/ОбластьДанныхОсновныеДанные/ОбластьДанныхОсновныеДанные.mdo @@ -146,6 +146,10 @@ ScheduledJob.ПланированиеИзвлеченияТекстаВМоделиСервиса DontUse + + InformationRegister.ПрогрессОбновления + DontUse + Catalog.КлючевыеОперации DontUse @@ -374,6 +378,10 @@ Constant.ДатаПоследнегоОбновленияКлассификатораОшибок DontUse + + Constant.ИспользоватьОптимизированнуюЗаписьСозданияАвтономногоРабочегоМеста + DontUse + InformationRegister.НеразделенныеПользователи DontUse @@ -494,6 +502,10 @@ InformationRegister.ПравилаДляОбменаДанными DontUse + + Constant.ДанныеДляИзмененияМультиязычныхРеквизитов + DontUse + InformationRegister.ОбластиСтатистики DontUse @@ -622,6 +634,10 @@ InformationRegister.ВерсииПодсистемОбластейДанных DontUse + + ScheduledJob.ОбновлениеСостоянияЗаявленияНаВыпускСертификата + DontUse + Constant.СинхронизироватьДанныеСПриложениемВИнтернетеПриЗавершенииРаботыПрограммы DontUse diff --git a/SSL/src/CommonForms/АвтономнаяРабота/Form.form b/SSL/src/CommonForms/АвтономнаяРабота/Form.form index 72c456f7f..0ecb48c33 100644 --- a/SSL/src/CommonForms/АвтономнаяРабота/Form.form +++ b/SSL/src/CommonForms/АвтономнаяРабота/Form.form @@ -38,7 +38,7 @@ true - CommonPicture.Информация + CommonPicture.УдалитьИнформация diff --git a/SSL/src/CommonForms/ВводНаРазныхЯзыках/Form.form b/SSL/src/CommonForms/ВводНаРазныхЯзыках/Form.form index 60d14ac29..e05215191 100644 --- a/SSL/src/CommonForms/ВводНаРазныхЯзыках/Form.form +++ b/SSL/src/CommonForms/ВводНаРазныхЯзыках/Form.form @@ -254,6 +254,19 @@ true + + ХранениеВТабличнойЧасти + 6 + + Boolean + + + true + + + true + + ОК diff --git a/SSL/src/CommonForms/ВводНаРазныхЯзыках/Module.bsl b/SSL/src/CommonForms/ВводНаРазныхЯзыках/Module.bsl index 5302735cd..42d8a9cb2 100644 --- a/SSL/src/CommonForms/ВводНаРазныхЯзыках/Module.bsl +++ b/SSL/src/CommonForms/ВводНаРазныхЯзыках/Module.bsl @@ -19,6 +19,7 @@ ТолькоПросмотр = Не ПравоДоступа("Изменение", ОбъектМетаданных); МультиязычныеСтрокиВРеквизитах = МультиязычностьСервер.МультиязычныеСтрокиВРеквизитах(ОбъектМетаданных); + ХранениеВТабличнойЧасти = МультиязычностьСервер.ОбъектСодержитТЧПредставления(ОбъектМетаданных.ПолноеИмя()); Реквизит = ОбъектМетаданных.Реквизиты.Найти(Параметры.ИмяРеквизита); Если Реквизит = Неопределено Тогда Для каждого СтандартныйРеквизит Из ОбъектМетаданных.СтандартныеРеквизиты Цикл @@ -43,60 +44,45 @@ КонецЕсли; + ИспользуетсяПервыйДополнительныйЯзык = МультиязычностьСервер.ИспользуетсяПервыйДополнительныйЯзык() + И ЗначениеЗаполнено(МультиязычностьСервер.КодПервогоДополнительногоЯзыкаИнформационнойБазы()); + + ИспользуетсяВторойДополнительныйЯзык = МультиязычностьСервер.ИспользуетсяВторойДополнительныйЯзык() + И ЗначениеЗаполнено(МультиязычностьСервер.КодВторогоДополнительногоЯзыкаИнформационнойБазы()); + НаборЯзыков = Новый ТаблицаЗначений; НаборЯзыков.Колонки.Добавить("КодЯзыка", ОбщегоНазначения.ОписаниеТипаСтрока(10)); НаборЯзыков.Колонки.Добавить("Представление", ОбщегоНазначения.ОписаниеТипаСтрока(150)); НаборЯзыков.Колонки.Добавить("Суффикс", ОбщегоНазначения.ОписаниеТипаСтрока(50)); - Если МультиязычныеСтрокиВРеквизитах Тогда - - ПредставленияЯзыков = Новый Соответствие; - Для Каждого ЯзыкКонфигурации Из Метаданные.Языки Цикл - ПредставленияЯзыков.Вставить(ЯзыкКонфигурации.КодЯзыка, ЯзыкКонфигурации.Представление()); - КонецЦикла; - - НовыйЯзык = НаборЯзыков.Добавить(); - НовыйЯзык.КодЯзыка = Константы.ОсновнойЯзык.Получить(); - НовыйЯзык.Представление = ПредставленияЯзыков[НовыйЯзык.КодЯзыка]; - НовыйЯзык.Суффикс = СуффиксОсновногоЯзыка; - - Если МультиязычностьСервер.ИспользуетсяПервыйДополнительныйЯзык() Тогда - НовыйЯзык = НаборЯзыков.Добавить(); - НовыйЯзык.КодЯзыка = МультиязычностьСервер.КодПервогоДополнительногоЯзыкаИнформационнойБазы(); - НовыйЯзык.Представление = ПредставленияЯзыков[НовыйЯзык.КодЯзыка]; - НовыйЯзык.Суффикс = СуффиксДополнительногоЯзыка1; - КонецЕсли; - - Если МультиязычностьСервер.ИспользуетсяВторойДополнительныйЯзык() Тогда - НовыйЯзык = НаборЯзыков.Добавить(); - НовыйЯзык.КодЯзыка = МультиязычностьСервер.КодВторогоДополнительногоЯзыкаИнформационнойБазы(); - НовыйЯзык.Представление = ПредставленияЯзыков[НовыйЯзык.КодЯзыка]; - НовыйЯзык.Суффикс = СуффиксДополнительногоЯзыка2; - КонецЕсли; - - Иначе - - Если ОбщегоНазначения.ПодсистемаСуществует("СтандартныеПодсистемы.Мультиязычность.Печать") Тогда - МодульУправлениеПечатьюМультиязычность = ОбщегоНазначения.ОбщийМодуль("УправлениеПечатьюМультиязычность"); - МодульУправлениеПечатьюМультиязычность.ПриЗаполненииНабораЯзыков(НаборЯзыков); - КонецЕсли; - - Для Каждого ЯзыкКонфигурации Из Метаданные.Языки Цикл - - Если НаборЯзыков.НайтиСтроки(Новый Структура("КодЯзыка", ЯзыкКонфигурации.КодЯзыка)).Количество() > 0 Тогда - Продолжить; - КонецЕсли; - - НовыйЯзык = НаборЯзыков.Добавить(); - НовыйЯзык.КодЯзыка = ЯзыкКонфигурации.КодЯзыка; - НовыйЯзык.Представление = ЯзыкКонфигурации.Представление(); - - КонецЦикла; - + Если ОбщегоНазначения.ПодсистемаСуществует("СтандартныеПодсистемы.Мультиязычность.Печать") Тогда + МодульУправлениеПечатьюМультиязычность = ОбщегоНазначения.ОбщийМодуль("УправлениеПечатьюМультиязычность"); + МодульУправлениеПечатьюМультиязычность.ПриЗаполненииНабораЯзыков(НаборЯзыков); КонецЕсли; + Для Каждого ЯзыкКонфигурации Из Метаданные.Языки Цикл + + СтрокаЯзыка = НаборЯзыков.НайтиСтроки(Новый Структура("КодЯзыка", ЯзыкКонфигурации.КодЯзыка)); + + Если СтрокаЯзыка.Количество() = 0 Тогда + ДанныеЯзыка = НаборЯзыков.Добавить(); + ДанныеЯзыка.КодЯзыка = ЯзыкКонфигурации.КодЯзыка; + ДанныеЯзыка.Представление = ЯзыкКонфигурации.Представление(); + Иначе + ДанныеЯзыка = СтрокаЯзыка[0]; + КонецЕсли; + + Если ЯзыкКонфигурации.КодЯзыка = МультиязычностьСервер.КодПервогоДополнительногоЯзыкаИнформационнойБазы() Тогда + ДанныеЯзыка.Суффикс = СуффиксДополнительногоЯзыка1; + ИначеЕсли ЯзыкКонфигурации.КодЯзыка = МультиязычностьСервер.КодВторогоДополнительногоЯзыкаИнформационнойБазы() Тогда + ДанныеЯзыка.Суффикс = СуффиксДополнительногоЯзыка2; + КонецЕсли; + + КонецЦикла; + Если Реквизит = Неопределено Тогда - ШаблонОшибки = НСтр("ru = 'При открытии формы ВводНаРазныхЯзыках в параметре ИмяРеквизита указан не существующий реквизит %1'"); + ШаблонОшибки = СтроковыеФункцииКлиентСервер.ПодставитьПараметрыВСтроку( + НСтр("ru = 'При открытии формы %1 в параметре %2 указан не существующий реквизит %1'"), "ВводНаРазныхЯзыках", "ИмяРеквизита"); ВызватьИсключение СтроковыеФункцииКлиентСервер.ПодставитьПараметрыВСтроку(ШаблонОшибки, Параметры.ИмяРеквизита); КонецЕсли; @@ -127,36 +113,7 @@ ЭтотОбъект[ОписаниеЯзыка.Имя] = Параметры.ТекущиеЗначение; КонецЕсли; - Если МультиязычныеСтрокиВРеквизитах Тогда - - ОсновнойЯзык = ОбщегоНазначения.КодОсновногоЯзыка(); - - ОписаниеЯзыка = ОписаниеЯзыка(Константы.ОсновнойЯзык.Получить()); - Если ПустаяСтрока(СуффиксОсновногоЯзыка) Тогда - ЭтотОбъект[ОписаниеЯзыка.Имя] = Параметры.ТекущиеЗначение; - Иначе - ЭтотОбъект[ОписаниеЯзыка.Имя] = Параметры.ЗначенияРеквизитов[Параметры.ИмяРеквизита + СуффиксОсновногоЯзыка]; - КонецЕсли; - - Если МультиязычностьСервер.ИспользуетсяПервыйДополнительныйЯзык() Тогда - ОписаниеЯзыка = ОписаниеЯзыка(Константы.ДополнительныйЯзык1.Получить()); - Если ПустаяСтрока(СуффиксДополнительногоЯзыка1) Тогда - ЭтотОбъект[ОписаниеЯзыка.Имя] = Параметры.ТекущиеЗначение; - Иначе - ЭтотОбъект[ОписаниеЯзыка.Имя] = Параметры.ЗначенияРеквизитов[Параметры.ИмяРеквизита + СуффиксДополнительногоЯзыка1]; - КонецЕсли; - КонецЕсли; - - Если МультиязычностьСервер.ИспользуетсяВторойДополнительныйЯзык() Тогда - ОписаниеЯзыка = ОписаниеЯзыка(Константы.ДополнительныйЯзык2.Получить()); - Если ПустаяСтрока(СуффиксДополнительногоЯзыка2) Тогда - ЭтотОбъект[ОписаниеЯзыка.Имя] = Параметры.ТекущиеЗначение; - Иначе - ЭтотОбъект[ОписаниеЯзыка.Имя] = Параметры.ЗначенияРеквизитов[Параметры.ИмяРеквизита + СуффиксДополнительногоЯзыка2]; - КонецЕсли; - КонецЕсли; - - Иначе + Если ХранениеВТабличнойЧасти Тогда ОсновнойЯзык = Метаданные.ОсновнойЯзык.КодЯзыка; @@ -172,6 +129,40 @@ КонецЕсли; КонецЦикла; + + КонецЕсли; + + Если МультиязычныеСтрокиВРеквизитах + И (ИспользуетсяПервыйДополнительныйЯзык + ИЛИ ИспользуетсяВторойДополнительныйЯзык) Тогда + + ОсновнойЯзык = ОбщегоНазначения.КодОсновногоЯзыка(); + + ОписаниеЯзыка = ОписаниеЯзыка(Константы.ОсновнойЯзык.Получить()); + Если ПустаяСтрока(СуффиксОсновногоЯзыка) Тогда + ЭтотОбъект[ОписаниеЯзыка.Имя] = Параметры.ТекущиеЗначение; + Иначе + ЭтотОбъект[ОписаниеЯзыка.Имя] = Параметры.ЗначенияРеквизитов[Параметры.ИмяРеквизита + СуффиксОсновногоЯзыка]; + КонецЕсли; + + Если ИспользуетсяПервыйДополнительныйЯзык Тогда + ОписаниеЯзыка = ОписаниеЯзыка(Константы.ДополнительныйЯзык1.Получить()); + Если ПустаяСтрока(СуффиксДополнительногоЯзыка1) Тогда + ЭтотОбъект[ОписаниеЯзыка.Имя] = Параметры.ТекущиеЗначение; + ИначеЕсли Параметры.ЗначенияРеквизитов <> Неопределено Тогда + ЭтотОбъект[ОписаниеЯзыка.Имя] = Параметры.ЗначенияРеквизитов[Параметры.ИмяРеквизита + СуффиксДополнительногоЯзыка1]; + КонецЕсли; + КонецЕсли; + + Если ИспользуетсяВторойДополнительныйЯзык Тогда + ОписаниеЯзыка = ОписаниеЯзыка(Константы.ДополнительныйЯзык2.Получить()); + Если ПустаяСтрока(СуффиксДополнительногоЯзыка2) Тогда + ЭтотОбъект[ОписаниеЯзыка.Имя] = Параметры.ТекущиеЗначение; + ИначеЕсли Параметры.ЗначенияРеквизитов <> Неопределено Тогда + ЭтотОбъект[ОписаниеЯзыка.Имя] = Параметры.ЗначенияРеквизитов[Параметры.ИмяРеквизита + СуффиксДополнительногоЯзыка2]; + КонецЕсли; + КонецЕсли; + КонецЕсли; Элементы.Перевести.Видимость = Ложь; @@ -204,7 +195,7 @@ Результат = Новый Структура; Результат.Вставить("ОсновнойЯзык", ОсновнойЯзык); - Результат.Вставить("ХранениеВТабличнойЧасти", Не МультиязычныеСтрокиВРеквизитах); + Результат.Вставить("ХранениеВТабличнойЧасти", ХранениеВТабличнойЧасти); Результат.Вставить("Модифицированность", Модифицированность); Результат.Вставить("ЗначенияНаРазныхЯзыках", Новый Массив); diff --git a/SSL/src/CommonForms/ВосстановлениеПаролей/Module.bsl b/SSL/src/CommonForms/ВосстановлениеПаролей/Module.bsl index ca567453a..96e86947a 100644 --- a/SSL/src/CommonForms/ВосстановлениеПаролей/Module.bsl +++ b/SSL/src/CommonForms/ВосстановлениеПаролей/Module.bsl @@ -522,14 +522,17 @@ &НаСервереБезКонтекста Функция ТекстПоУмолчанию() - ТекстСообщенияHTML = НСтр("ru='Здравствуйте, &UserPresentation + ШаблонСообщенияHTML = НСтр("ru='Здравствуйте, %1 | - |Мы получили запрос на восстановление пароля от &ConfigurationPresentation. + |Мы получили запрос на восстановление пароля от %2. | - |Введите код &VerificationCode для сброса пароля. + |Введите код %3 для сброса пароля. | |Если восстановление пароля не запрашивалось, сообщите об этом техническому специалисту.'"); + ТекстСообщенияHTML = СтроковыеФункцииКлиентСервер.ПодставитьПараметрыВСтроку(ШаблонСообщенияHTML, + "&UserPresentation", "&ConfigurationPresentation", "&VerificationCode"); + Возврат ТекстСообщенияHTML; КонецФункции diff --git a/SSL/src/CommonForms/ВосстановлениеСвязиСГлавнымУзлом/Module.bsl b/SSL/src/CommonForms/ВосстановлениеСвязиСГлавнымУзлом/Module.bsl index 46098bb2f..20012e0a8 100644 --- a/SSL/src/CommonForms/ВосстановлениеСвязиСГлавнымУзлом/Module.bsl +++ b/SSL/src/CommonForms/ВосстановлениеСвязиСГлавнымУзлом/Module.bsl @@ -64,39 +64,36 @@ НачатьТранзакцию(); Попытка + ГлавныйУзел = Константы.ГлавныйУзел.Получить(); ГлавныйУзелМенеджер = Константы.ГлавныйУзел.СоздатьМенеджерЗначения(); ГлавныйУзелМенеджер.Значение = Неопределено; ОбновлениеИнформационнойБазы.ЗаписатьДанные(ГлавныйУзелМенеджер); - ЭтоАвтономноеРабочееМесто = Константы.ЭтоАвтономноеРабочееМесто.СоздатьМенеджерЗначения(); - ЭтоАвтономноеРабочееМесто.Прочитать(); - Если ЭтоАвтономноеРабочееМесто.Значение Тогда - ЭтоАвтономноеРабочееМесто.Значение = Ложь; - ОбновлениеИнформационнойБазы.ЗаписатьДанные(ЭтоАвтономноеРабочееМесто); + Если ОбщегоНазначения.ПодсистемаСуществует("СтандартныеПодсистемы.ОбменДанными") Тогда - НеИспользоватьРазделениеПоОбластямДанных = Константы.НеИспользоватьРазделениеПоОбластямДанных.СоздатьМенеджерЗначения(); - НеИспользоватьРазделениеПоОбластямДанных.Прочитать(); - Если Не Константы.ИспользоватьРазделениеПоОбластямДанных.Получить() - И Не НеИспользоватьРазделениеПоОбластямДанных.Значение Тогда - НеИспользоватьРазделениеПоОбластямДанных.Значение = Истина; - ОбновлениеИнформационнойБазы.ЗаписатьДанные(НеИспользоватьРазделениеПоОбластямДанных); + Если ОбщегоНазначения.ЭтоАвтономноеРабочееМесто() Тогда + + МодульАвтономнаяРабота = ОбщегоНазначения.ОбщийМодуль("АвтономнаяРабота"); + МодульАвтономнаяРабота.ПриПодтвержденииОтключенияСвязиСГлавнымУзлом(); + КонецЕсли; - КонецЕсли; - - Если ОбщегоНазначения.ПодсистемаСуществует("СтандартныеПодсистемы.ОбменДанными") Тогда МодульОбменДаннымиСервер = ОбщегоНазначения.ОбщийМодуль("ОбменДаннымиСервер"); МодульОбменДаннымиСервер.УдалитьНастройкиСинхронизацииСГлавнымУзломРИБ(ГлавныйУзел); + КонецЕсли; СтандартныеПодсистемыСервер.ВосстановитьПредопределенныеЭлементы(); ЗафиксироватьТранзакцию(); + Исключение + ОтменитьТранзакцию(); ВызватьИсключение; + КонецПопытки; КонецПроцедуры diff --git a/SSL/src/CommonForms/ВыборОбъектовМетаданных/Form.form b/SSL/src/CommonForms/ВыборОбъектовМетаданных/Form.form index 0c85dd74f..914a0e59f 100644 --- a/SSL/src/CommonForms/ВыборОбъектовМетаданных/Form.form +++ b/SSL/src/CommonForms/ВыборОбъектовМетаданных/Form.form @@ -436,8 +436,13 @@ <event>OnCreateAtServer</event> <name>ПриСозданииНаСервере</name> </handlers> + <handlers> + <event>BeforeLoadDataFromSettingsAtServer</event> + <name>ПередЗагрузкойДанныхИзНастроекНаСервере</name> + </handlers> <excludedCommands>CustomizeForm</excludedCommands> <windowOpeningMode>LockOwner</windowOpeningMode> + <autoSaveDataInSettings>Use</autoSaveDataInSettings> <saveWindowSettings>true</saveWindowSettings> <autoTitle>true</autoTitle> <autoUrl>true</autoUrl> @@ -587,6 +592,19 @@ <common>true</common> </edit> </columns> + <columns> + <name>ЭтоКоллекцияОбъектов</name> + <id>9</id> + <valueType> + <types>Boolean</types> + </valueType> + <view> + <common>true</common> + </view> + <edit> + <common>true</common> + </edit> + </columns> </attributes> <attributes> <name>ВыбранныеОбъектыМетаданных</name> @@ -720,6 +738,9 @@ <edit> <common>true</common> </edit> + <settingsSavedData xsi:type="form:DataPath"> + <segments>СпособГруппировкиОбъектов</segments> + </settingsSavedData> </attributes> <attributes> <name>АдресаВыбранныхОбъектов</name> @@ -737,6 +758,122 @@ <itemValueType/> </extInfo> </attributes> + <attributes> + <name>ВыбиратьКоллекцииКогдаВыбраныВсеОбъекты</name> + <id>12</id> + <valueType> + <types>Boolean</types> + </valueType> + <view> + <common>true</common> + </view> + <edit> + <common>true</common> + </edit> + </attributes> + <attributes> + <name>ЗапоминатьРазделыВыбранныхОбъектов</name> + <id>13</id> + <valueType> + <types>Boolean</types> + </valueType> + <view> + <common>true</common> + </view> + <edit> + <common>true</common> + </edit> + </attributes> + <attributes> + <name>КоллекцииВыбираемыхОбъектовМетаданных</name> + <id>14</id> + <valueType> + <types>ValueList</types> + </valueType> + <view> + <common>true</common> + </view> + <edit> + <common>true</common> + </edit> + <extInfo xsi:type="form:ValueListExtInfo"> + <itemValueType/> + </extInfo> + </attributes> + <attributes> + <name>РодительскиеПодсистемы</name> + <id>15</id> + <valueType> + <types>ValueList</types> + </valueType> + <view> + <common>true</common> + </view> + <edit> + <common>true</common> + </edit> + <extInfo xsi:type="form:ValueListExtInfo"> + <itemValueType/> + </extInfo> + </attributes> + <attributes> + <name>ФильтрПоОбъектамМетаданных</name> + <id>16</id> + <valueType> + <types>ValueList</types> + </valueType> + <view> + <common>true</common> + </view> + <edit> + <common>true</common> + </edit> + <extInfo xsi:type="form:ValueListExtInfo"> + <itemValueType/> + </extInfo> + </attributes> + <attributes> + <name>УникальныйИдентификаторИсточник</name> + <id>17</id> + <valueType> + <types>UUID</types> + </valueType> + <view> + <common>true</common> + </view> + <edit> + <common>true</common> + </edit> + </attributes> + <attributes> + <name>ИдентификаторСтрокиПервогоВыбранногоОбъекта</name> + <id>18</id> + <valueType> + <types>Number</types> + <numberQualifiers> + <precision>10</precision> + </numberQualifiers> + </valueType> + <view> + <common>true</common> + </view> + <edit> + <common>true</common> + </edit> + </attributes> + <attributes> + <name>ПометкаВыполнялась</name> + <id>20</id> + <valueType> + <types>Boolean</types> + </valueType> + <view> + <common>true</common> + </view> + <edit> + <common>true</common> + </edit> + </attributes> <formCommands> <name>Выбрать</name> <title> @@ -792,28 +929,24 @@ <valueType> <types>UUID</types> </valueType> - <keyParameter>true</keyParameter> </parameters> <parameters> <name>КоллекцииВыбираемыхОбъектовМетаданных</name> <valueType> <types>ValueList</types> </valueType> - <keyParameter>true</keyParameter> </parameters> <parameters> <name>ФильтрПоОбъектамМетаданных</name> <valueType> <types>ValueList</types> </valueType> - <keyParameter>true</keyParameter> </parameters> <parameters> <name>РодительскиеПодсистемы</name> <valueType> <types>ValueList</types> </valueType> - <keyParameter>true</keyParameter> </parameters> <parameters> <name>Заголовок</name> @@ -834,7 +967,12 @@ <valueType> <types>Boolean</types> </valueType> - <keyParameter>true</keyParameter> + </parameters> + <parameters> + <name>ВыбиратьКоллекцииКогдаВыбраныВсеОбъекты</name> + <valueType> + <types>Boolean</types> + </valueType> </parameters> <commandInterface> <navigationPanel/> diff --git a/SSL/src/CommonForms/ВыборОбъектовМетаданных/Module.bsl b/SSL/src/CommonForms/ВыборОбъектовМетаданных/Module.bsl index 685745984..99eccf7bf 100644 --- a/SSL/src/CommonForms/ВыборОбъектовМетаданных/Module.bsl +++ b/SSL/src/CommonForms/ВыборОбъектовМетаданных/Module.bsl @@ -49,51 +49,86 @@ УстановитьУсловноеОформление(); + ВыбиратьКоллекцииКогдаВыбраныВсеОбъекты = Параметры.ВыбиратьКоллекцииКогдаВыбраныВсеОбъекты; + ЗапоминатьРазделыВыбранныхОбъектов = Параметры.ЗапоминатьРазделыВыбранныхОбъектов; + КоллекцииВыбираемыхОбъектовМетаданных = Параметры.КоллекцииВыбираемыхОбъектовМетаданных; + РодительскиеПодсистемы = Параметры.РодительскиеПодсистемы; + ФильтрПоОбъектамМетаданных = Параметры.ФильтрПоОбъектамМетаданных; + УникальныйИдентификаторИсточник = Параметры.УникальныйИдентификаторИсточник; + СпособГруппировкиОбъектов = Параметры.СпособГруппировкиОбъектов; + ВыбранныеОбъектыМетаданных = ОбщегоНазначения.СкопироватьРекурсивно(Параметры.ВыбранныеОбъектыМетаданных); + + ВыбиратьСсылки = ОбщегоНазначенияКлиентСервер.СвойствоСтруктуры(Параметры, "ВыбиратьСсылки", Ложь); + ТолькоПодсистемыСКИ = ОбщегоНазначенияКлиентСервер.СвойствоСтруктуры(Параметры, "ТолькоПодсистемыСКИ", Ложь); + ВыборЕдинственного = ОбщегоНазначенияКлиентСервер.СвойствоСтруктуры(Параметры, "ВыборЕдинственного", Ложь); + НачальноеЗначениеВыбора = ОбщегоНазначенияКлиентСервер.СвойствоСтруктуры(Параметры, "НачальноеЗначениеВыбора", Ложь); + ЗаполнитьВыбранныеОбъектыМетаданных(); - Если Параметры.ФильтрПоОбъектамМетаданных.Количество() > 0 Тогда - Параметры.КоллекцииВыбираемыхОбъектовМетаданных.Очистить(); - Для Каждого ОбъектМетаданныхПолноеИмя Из Параметры.ФильтрПоОбъектамМетаданных Цикл + Если ФильтрПоОбъектамМетаданных.Количество() > 0 Тогда + КоллекцииВыбираемыхОбъектовМетаданных.Очистить(); + Для Каждого ОбъектМетаданныхПолноеИмя Из ФильтрПоОбъектамМетаданных Цикл ИмяБазовогоТипа = ОбщегоНазначения.ИмяБазовогоТипаПоОбъектуМетаданных(Метаданные.НайтиПоПолномуИмени(ОбъектМетаданныхПолноеИмя.Значение)); - Если Параметры.КоллекцииВыбираемыхОбъектовМетаданных.НайтиПоЗначению(ИмяБазовогоТипа) = Неопределено Тогда - Параметры.КоллекцииВыбираемыхОбъектовМетаданных.Добавить(ИмяБазовогоТипа); + Если КоллекцииВыбираемыхОбъектовМетаданных.НайтиПоЗначению(ИмяБазовогоТипа) = Неопределено Тогда + КоллекцииВыбираемыхОбъектовМетаданных.Добавить(ИмяБазовогоТипа); КонецЕсли; КонецЦикла; + ИначеЕсли ВыбиратьСсылки Тогда + МодульИдентификаторыОбъектовМетаданных = ОбщегоНазначения.ОбщийМодуль( + "Справочники.ИдентификаторыОбъектовМетаданных"); + ДопустимыеКоллекции = МодульИдентификаторыОбъектовМетаданных.ДопустимыеКоллекции(); + Если Не ЗначениеЗаполнено(КоллекцииВыбираемыхОбъектовМетаданных) Тогда + Для Каждого ДопустимаяКоллекция Из ДопустимыеКоллекции Цикл + КоллекцииВыбираемыхОбъектовМетаданных.Добавить(ДопустимаяКоллекция); + КонецЦикла; + Иначе + ПодходящиеКоллекции = Новый СписокЗначений; + Для Каждого ЭлементСписка Из КоллекцииВыбираемыхОбъектовМетаданных Цикл + Если ДопустимыеКоллекции.Найти(ЭлементСписка.Значение) <> Неопределено Тогда + ПодходящиеКоллекции.Добавить().Значение = ЭлементСписка.Значение; + КонецЕсли; + КонецЦикла; + Если ПодходящиеКоллекции.Количество() = 0 Тогда + ПодходящиеКоллекции.Добавить().Значение = ДопустимыеКоллекции[0]; + КонецЕсли; + КоллекцииВыбираемыхОбъектовМетаданных = ПодходящиеКоллекции; + КонецЕсли; КонецЕсли; - Если Параметры.Свойство("ТолькоПодсистемыСКИ") И Параметры.ТолькоПодсистемыСКИ Тогда + Если ТолькоПодсистемыСКИ Тогда СписокПодсистем = Метаданные.Подсистемы; ЗаполнитьСписокПодсистем(СписокПодсистем); - ТолькоПодсистемыСКИ = Истина; КонецЕсли; - Если Параметры.Свойство("ВыборЕдинственного", ВыборЕдинственного) И ВыборЕдинственного Тогда + Если ВыборЕдинственного Тогда Элементы.Пометка.Видимость = Ложь; КонецЕсли; - Если Параметры.Свойство("Заголовок") Тогда + Если ЗначениеЗаполнено(Параметры.Заголовок) Тогда АвтоЗаголовок = Ложь; Заголовок = Параметры.Заголовок; КонецЕсли; - Параметры.Свойство("НачальноеЗначениеВыбора", НачальноеЗначениеВыбора); Если Не ЗначениеЗаполнено(НачальноеЗначениеВыбора) И ВыборЕдинственного И Параметры.ВыбранныеОбъектыМетаданных.Количество() = 1 Тогда НачальноеЗначениеВыбора = Параметры.ВыбранныеОбъектыМетаданных[0].Значение; КонецЕсли; - СпособГруппировкиОбъектов = Параметры.СпособГруппировкиОбъектов; Если Не ЗначениеЗаполнено(СпособГруппировкиОбъектов) Тогда СпособГруппировкиОбъектов = "ПоРазделам"; - Иначе + + ИначеЕсли СпособГруппировкиОбъектов = "ПоВидам" + Или СпособГруппировкиОбъектов = "ПоРазделам" Тогда + Элементы.СпособГруппировкиОбъектов.Видимость = Ложь; - КонецЕсли; - - ЗаполнитьДеревоОбъектов(); - - Если Параметры.РодительскиеПодсистемы.Количество()> 0 Тогда - Элементы.ДеревоОбъектовМетаданных.НачальноеОтображениеДерева = НачальноеОтображениеДерева.РаскрыватьВсеУровни; + Иначе + СпособыГруппировки = СтрРазделить(Параметры.СпособГруппировкиОбъектов, ",", Ложь); + Если СпособыГруппировки[0] = "ПоВидам" Тогда + СпособГруппировкиОбъектов = "ПоВидам"; + Иначе + СпособГруппировкиОбъектов = "ПоРазделам"; + КонецЕсли; КонецЕсли; Если ОбщегоНазначения.ЭтоМобильныйКлиент() Тогда @@ -105,11 +140,18 @@ &НаКлиенте Процедура ПриОткрытии(Отказ) - // Устанавливаем начальное значение выбора. - Если ИдентификаторТекущейСтрокиПриОткрытии > 0 Тогда - - Элементы.ДеревоОбъектовМетаданных.ТекущаяСтрока = ИдентификаторТекущейСтрокиПриОткрытии; + ЗаполнитьДеревоОбъектов(Истина); + +КонецПроцедуры + +&НаСервере +Процедура ПередЗагрузкойДанныхИзНастроекНаСервере(Настройки) + + Если Не Элементы.СпособГруппировкиОбъектов.Видимость + Или Настройки["СпособГруппировкиОбъектов"] <> "ПоВидам" + И Настройки["СпособГруппировкиОбъектов"] <> "ПоРазделам" Тогда + Настройки.Вставить("СпособГруппировкиОбъектов", СпособГруппировкиОбъектов); КонецЕсли; КонецПроцедуры @@ -122,6 +164,7 @@ &НаКлиенте Процедура ПометкаПриИзменении(Элемент) + ПометкаВыполнялась = Истина; ПриПометкеЭлементаДерева(ТекущийЭлемент.ТекущиеДанные); КонецПроцедуры @@ -129,14 +172,12 @@ &НаКлиенте Процедура РежимВыбораПриИзменении(Элемент) - АдресаВыбранныхОбъектов.Очистить(); - ОбновитьКоллекциюВыбранныеОбъектыМетаданных(); + Если ПометкаВыполнялась Тогда + АдресаВыбранныхОбъектов.Очистить(); + ОбновитьКоллекциюВыбранныеОбъектыМетаданных(); + КонецЕсли; ЗаполнитьДеревоОбъектов(); - Если ДеревоОбъектовМетаданных.ПолучитьЭлементы().Количество() = 1 Тогда - ИдентификаторСтроки = ДеревоОбъектовМетаданных.ПолучитьЭлементы()[0].ПолучитьИдентификатор(); - Элементы.ДеревоОбъектовМетаданных.Развернуть(ИдентификаторСтроки); - КонецЕсли; КонецПроцедуры @@ -175,18 +216,15 @@ Возврат; КонецЕсли; Иначе - - ВыбранныеОбъектыМетаданных.Очистить(); ОбновитьКоллекциюВыбранныеОбъектыМетаданных(); - КонецЕсли; - Если ВыбиратьСсылки Тогда + Если ВыбиратьСсылки Тогда ВыбратьСсылки(ВыбранныеОбъектыМетаданных); КонецЕсли; Если ЭтотОбъект.ОписаниеОповещенияОЗакрытии = Неопределено Тогда - Оповестить("ВыборОбъектовМетаданных", ВыбранныеОбъектыМетаданных, Параметры.УникальныйИдентификаторИсточник); + Оповестить("ВыборОбъектовМетаданных", ВыбранныеОбъектыМетаданных, УникальныйИдентификаторИсточник); КонецЕсли; Закрыть(ВыбранныеОбъектыМетаданных); @@ -207,18 +245,16 @@ &НаСервере Процедура ЗаполнитьВыбранныеОбъектыМетаданных() - ОбъектыМетаданных = Параметры.ВыбранныеОбъектыМетаданных.ВыгрузитьЗначения(); - ВыбранныеОбъектыМетаданных = ОбщегоНазначения.СкопироватьРекурсивно(Параметры.ВыбранныеОбъектыМетаданных); + ОбъектыМетаданных = ВыбранныеОбъектыМетаданных.ВыгрузитьЗначения(); - Если Параметры.ЗапоминатьРазделыВыбранныхОбъектов + Если ЗапоминатьРазделыВыбранныхОбъектов И ВыбранныеОбъектыМетаданных.Количество() > 0 И СтрНачинаетсяС(ВыбранныеОбъектыМетаданных[0].Представление, "./") Тогда Для Каждого Элемент Из ВыбранныеОбъектыМетаданных Цикл АдресаВыбранныхОбъектов.Добавить(Элемент.Представление, Элемент.Значение); КонецЦикла; КонецЕсли; - ВыбиратьСсылки = ОбщегоНазначенияКлиентСервер.СвойствоСтруктуры(Параметры, "ВыбиратьСсылки", Ложь); - Если Не ВыбиратьСсылки Тогда + Если Не ВыбиратьСсылки Тогда Возврат; КонецЕсли; @@ -265,10 +301,10 @@ КонецПроцедуры // Процедура заполняет дерево значений объектов конфигурации. -// Если список значений "Параметры.КоллекцииВыбираемыхОбъектовМетаданных" не пуст, тогда +// Если список значений "КоллекцииВыбираемыхОбъектовМетаданных" не пуст, тогда // дерево будет ограничено переданным списком коллекций объектов метаданных. // Если объекты метаданных в сформированном дереве будут найдены в списке значений -// "Параметры.ВыбранныеОбъектыМетаданных", тогда они будут помечены, как выбранные. +// ВыбранныеОбъектыМетаданных, тогда они будут помечены, как выбранные. // &НаСервере Процедура ДеревоОбъектовМетаданныхЗаполнить() @@ -279,70 +315,72 @@ КоллекцииОбъектовМетаданных.Колонки.Добавить("Имя"); КоллекцииОбъектовМетаданных.Колонки.Добавить("Синоним"); КоллекцииОбъектовМетаданных.Колонки.Добавить("Картинка"); - КоллекцииОбъектовМетаданных.Колонки.Добавить("КартинкаОбъекта"); КоллекцииОбъектовМетаданных.Колонки.Добавить("ЭтоКоллекцияОбщие"); КоллекцииОбъектовМетаданных.Колонки.Добавить("ПолноеИмя"); КоллекцииОбъектовМетаданных.Колонки.Добавить("Родитель"); - КоллекцииОбъектовМетаданных_НоваяСтрока("Подсистемы", НСтр("ru = 'Подсистемы'"), 35, 36, Истина, КоллекцииОбъектовМетаданных); - КоллекцииОбъектовМетаданных_НоваяСтрока("ОбщиеМодули", НСтр("ru = 'Общие модули'"), 37, 38, Истина, КоллекцииОбъектовМетаданных); - КоллекцииОбъектовМетаданных_НоваяСтрока("ПараметрыСеанса", НСтр("ru = 'Параметры сеанса'"), 39, 40, Истина, КоллекцииОбъектовМетаданных); - КоллекцииОбъектовМетаданных_НоваяСтрока("Роли", НСтр("ru = 'Роли'"), 41, 42, Истина, КоллекцииОбъектовМетаданных); - КоллекцииОбъектовМетаданных_НоваяСтрока("ПланыОбмена", НСтр("ru = 'Планы обмена'"), 43, 44, Истина, КоллекцииОбъектовМетаданных); - КоллекцииОбъектовМетаданных_НоваяСтрока("КритерииОтбора", НСтр("ru = 'Критерии отбора'"), 45, 46, Истина, КоллекцииОбъектовМетаданных); - КоллекцииОбъектовМетаданных_НоваяСтрока("ПодпискиНаСобытия", НСтр("ru = 'Подписки на события'"), 47, 48, Истина, КоллекцииОбъектовМетаданных); - КоллекцииОбъектовМетаданных_НоваяСтрока("РегламентныеЗадания", НСтр("ru = 'Регламентные задания'"), 49, 50, Истина, КоллекцииОбъектовМетаданных); - КоллекцииОбъектовМетаданных_НоваяСтрока("ФункциональныеОпции", НСтр("ru = 'Функциональные опции'"), 51, 52, Истина, КоллекцииОбъектовМетаданных); - КоллекцииОбъектовМетаданных_НоваяСтрока("ПараметрыФункциональныхОпций", НСтр("ru = 'Параметры функциональных опций'"), 53, 54, Истина, КоллекцииОбъектовМетаданных); - КоллекцииОбъектовМетаданных_НоваяСтрока("ХранилищаНастроек", НСтр("ru = 'Хранилища настроек'"), 55, 56, Истина, КоллекцииОбъектовМетаданных); - КоллекцииОбъектовМетаданных_НоваяСтрока("ОбщиеФормы", НСтр("ru = 'Общие формы'"), 57, 58, Истина, КоллекцииОбъектовМетаданных); - КоллекцииОбъектовМетаданных_НоваяСтрока("ОбщиеКоманды", НСтр("ru = 'Общие команды'"), 59, 60, Истина, КоллекцииОбъектовМетаданных); - КоллекцииОбъектовМетаданных_НоваяСтрока("ГруппыКоманд", НСтр("ru = 'Группы команд'"), 61, 62, Истина, КоллекцииОбъектовМетаданных); - КоллекцииОбъектовМетаданных_НоваяСтрока("Интерфейсы", НСтр("ru = 'Интерфейсы'"), 63, 64, Истина, КоллекцииОбъектовМетаданных); - КоллекцииОбъектовМетаданных_НоваяСтрока("ОбщиеМакеты", НСтр("ru = 'Общие макеты'"), 65, 66, Истина, КоллекцииОбъектовМетаданных); - КоллекцииОбъектовМетаданных_НоваяСтрока("ОбщиеКартинки", НСтр("ru = 'Общие картинки'"), 67, 68, Истина, КоллекцииОбъектовМетаданных); - КоллекцииОбъектовМетаданных_НоваяСтрока("ПакетыXDTO", НСтр("ru = 'XDTO-пакеты'"), 69, 70, Истина, КоллекцииОбъектовМетаданных); - КоллекцииОбъектовМетаданных_НоваяСтрока("WebСервисы", НСтр("ru = 'Web-сервисы'"), 71, 72, Истина, КоллекцииОбъектовМетаданных); - КоллекцииОбъектовМетаданных_НоваяСтрока("WSСсылки", НСтр("ru = 'WS-ссылки'"), 73, 74, Истина, КоллекцииОбъектовМетаданных); - КоллекцииОбъектовМетаданных_НоваяСтрока("Стили", НСтр("ru = 'Стили'"), 75, 76, Истина, КоллекцииОбъектовМетаданных); - КоллекцииОбъектовМетаданных_НоваяСтрока("Языки", НСтр("ru = 'Языки'"), 77, 78, Истина, КоллекцииОбъектовМетаданных); + КоллекцииОбъектовМетаданных_НоваяСтрока("Подсистемы", НСтр("ru = 'Подсистемы'"), БиблиотекаКартинок.МетаданныеПодсистемы, Истина, КоллекцииОбъектовМетаданных); + КоллекцииОбъектовМетаданных_НоваяСтрока("ОбщиеМодули", НСтр("ru = 'Общие модули'"), БиблиотекаКартинок.МетаданныеОбщиеМодули, Истина, КоллекцииОбъектовМетаданных); + КоллекцииОбъектовМетаданных_НоваяСтрока("ПараметрыСеанса", НСтр("ru = 'Параметры сеанса'"), БиблиотекаКартинок.МетаданныеПараметрыСеанса, Истина, КоллекцииОбъектовМетаданных); + КоллекцииОбъектовМетаданных_НоваяСтрока("Роли", НСтр("ru = 'Роли'"), БиблиотекаКартинок.МетаданныеРоли, Истина, КоллекцииОбъектовМетаданных); + КоллекцииОбъектовМетаданных_НоваяСтрока("ОбщиеРеквизиты", НСтр("ru = 'Общие реквизиты'"), БиблиотекаКартинок.МетаданныеОбщиеРеквизиты, Истина, КоллекцииОбъектовМетаданных); + КоллекцииОбъектовМетаданных_НоваяСтрока("ПланыОбмена", НСтр("ru = 'Планы обмена'"), БиблиотекаКартинок.МетаданныеПланыОбмена, Истина, КоллекцииОбъектовМетаданных); + КоллекцииОбъектовМетаданных_НоваяСтрока("КритерииОтбора", НСтр("ru = 'Критерии отбора'"), БиблиотекаКартинок.МетаданныеКритерииОтбора, Истина, КоллекцииОбъектовМетаданных); + КоллекцииОбъектовМетаданных_НоваяСтрока("ПодпискиНаСобытия", НСтр("ru = 'Подписки на события'"), БиблиотекаКартинок.МетаданныеПодпискиНаСобытия, Истина, КоллекцииОбъектовМетаданных); + КоллекцииОбъектовМетаданных_НоваяСтрока("РегламентныеЗадания", НСтр("ru = 'Регламентные задания'"), БиблиотекаКартинок.МетаданныеРегламентныеЗадания, Истина, КоллекцииОбъектовМетаданных); + КоллекцииОбъектовМетаданных_НоваяСтрока("ФункциональныеОпции", НСтр("ru = 'Функциональные опции'"), БиблиотекаКартинок.МетаданныеФункциональныеОпции, Истина, КоллекцииОбъектовМетаданных); + КоллекцииОбъектовМетаданных_НоваяСтрока("ПараметрыФункциональныхОпций", НСтр("ru = 'Параметры функциональных опций'"), БиблиотекаКартинок.МетаданныеПараметрыФункциональныхОпций, Истина, КоллекцииОбъектовМетаданных); + КоллекцииОбъектовМетаданных_НоваяСтрока("ХранилищаНастроек", НСтр("ru = 'Хранилища настроек'"), БиблиотекаКартинок.МетаданныеХранилищаНастроек, Истина, КоллекцииОбъектовМетаданных); + КоллекцииОбъектовМетаданных_НоваяСтрока("ОбщиеФормы", НСтр("ru = 'Общие формы'"), БиблиотекаКартинок.МетаданныеОбщиеФормы, Истина, КоллекцииОбъектовМетаданных); + КоллекцииОбъектовМетаданных_НоваяСтрока("ОбщиеКоманды", НСтр("ru = 'Общие команды'"), БиблиотекаКартинок.МетаданныеОбщиеКоманды, Истина, КоллекцииОбъектовМетаданных); + КоллекцииОбъектовМетаданных_НоваяСтрока("ГруппыКоманд", НСтр("ru = 'Группы команд'"), БиблиотекаКартинок.МетаданныеГруппыКоманд, Истина, КоллекцииОбъектовМетаданных); + КоллекцииОбъектовМетаданных_НоваяСтрока("Интерфейсы", НСтр("ru = 'Интерфейсы'"), Неопределено, Истина, КоллекцииОбъектовМетаданных); + КоллекцииОбъектовМетаданных_НоваяСтрока("ОбщиеМакеты", НСтр("ru = 'Общие макеты'"), БиблиотекаКартинок.МетаданныеОбщиеМакеты, Истина, КоллекцииОбъектовМетаданных); + КоллекцииОбъектовМетаданных_НоваяСтрока("ОбщиеКартинки", НСтр("ru = 'Общие картинки'"), БиблиотекаКартинок.МетаданныеОбщиеКартинки, Истина, КоллекцииОбъектовМетаданных); + КоллекцииОбъектовМетаданных_НоваяСтрока("ПакетыXDTO", НСтр("ru = 'XDTO-пакеты'"), БиблиотекаКартинок.МетаданныеПакетыXDTO, Истина, КоллекцииОбъектовМетаданных); + КоллекцииОбъектовМетаданных_НоваяСтрока("WebСервисы", НСтр("ru = 'Web-сервисы'"), БиблиотекаКартинок.МетаданныеWebСервисы, Истина, КоллекцииОбъектовМетаданных); + КоллекцииОбъектовМетаданных_НоваяСтрока("HTTPСервисы", НСтр("ru = 'HTTP-сервисы'"), БиблиотекаКартинок.МетаданныеHTTPСервисы, Истина, КоллекцииОбъектовМетаданных); + КоллекцииОбъектовМетаданных_НоваяСтрока("WSСсылки", НСтр("ru = 'WS-ссылки'"), БиблиотекаКартинок.МетаданныеWSСсылки, Истина, КоллекцииОбъектовМетаданных); + КоллекцииОбъектовМетаданных_НоваяСтрока("Стили", НСтр("ru = 'Стили'"), БиблиотекаКартинок.МетаданныеСтили, Истина, КоллекцииОбъектовМетаданных); + КоллекцииОбъектовМетаданных_НоваяСтрока("Языки", НСтр("ru = 'Языки'"), БиблиотекаКартинок.МетаданныеЯзыки, Истина, КоллекцииОбъектовМетаданных); - КоллекцииОбъектовМетаданных_НоваяСтрока("Константы", НСтр("ru = 'Константы'"), БиблиотекаКартинок.Константа, БиблиотекаКартинок.Константа, Ложь, КоллекцииОбъектовМетаданных); - КоллекцииОбъектовМетаданных_НоваяСтрока("Справочники", НСтр("ru = 'Справочники'"), БиблиотекаКартинок.Справочник, БиблиотекаКартинок.Справочник, Ложь, КоллекцииОбъектовМетаданных); - КоллекцииОбъектовМетаданных_НоваяСтрока("Документы", НСтр("ru = 'Документы'"), БиблиотекаКартинок.Документ, БиблиотекаКартинок.ДокументОбъект, Ложь, КоллекцииОбъектовМетаданных); - КоллекцииОбъектовМетаданных_НоваяСтрока("ЖурналыДокументов", НСтр("ru = 'Журналы документов'"), БиблиотекаКартинок.ЖурналДокументов, БиблиотекаКартинок.ЖурналДокументов, Ложь, КоллекцииОбъектовМетаданных); - КоллекцииОбъектовМетаданных_НоваяСтрока("Перечисления", НСтр("ru = 'Перечисления'"), БиблиотекаКартинок.Перечисление, БиблиотекаКартинок.Перечисление, Ложь, КоллекцииОбъектовМетаданных); - КоллекцииОбъектовМетаданных_НоваяСтрока("Отчеты", НСтр("ru = 'Отчеты'"), БиблиотекаКартинок.Отчет, БиблиотекаКартинок.Отчет, Ложь, КоллекцииОбъектовМетаданных); - КоллекцииОбъектовМетаданных_НоваяСтрока("Обработки", НСтр("ru = 'Обработки'"), БиблиотекаКартинок.Обработка, БиблиотекаКартинок.Обработка, Ложь, КоллекцииОбъектовМетаданных); - КоллекцииОбъектовМетаданных_НоваяСтрока("ПланыВидовХарактеристик", НСтр("ru = 'Планы видов характеристик'"), БиблиотекаКартинок.ПланВидовХарактеристик, БиблиотекаКартинок.ПланВидовХарактеристикОбъект, Ложь, КоллекцииОбъектовМетаданных); - КоллекцииОбъектовМетаданных_НоваяСтрока("ПланыСчетов", НСтр("ru = 'Планы счетов'"), БиблиотекаКартинок.ПланСчетов, БиблиотекаКартинок.ПланСчетовОбъект, Ложь, КоллекцииОбъектовМетаданных); - КоллекцииОбъектовМетаданных_НоваяСтрока("ПланыВидовРасчета", НСтр("ru = 'Планы видов расчета'"), БиблиотекаКартинок.ПланВидовРасчета, БиблиотекаКартинок.ПланВидовРасчетаОбъект, Ложь, КоллекцииОбъектовМетаданных); - КоллекцииОбъектовМетаданных_НоваяСтрока("РегистрыСведений", НСтр("ru = 'Регистры сведений'"), БиблиотекаКартинок.РегистрСведений, БиблиотекаКартинок.РегистрСведений, Ложь, КоллекцииОбъектовМетаданных); - КоллекцииОбъектовМетаданных_НоваяСтрока("РегистрыНакопления", НСтр("ru = 'Регистры накопления'"), БиблиотекаКартинок.РегистрНакопления, БиблиотекаКартинок.РегистрНакопления, Ложь, КоллекцииОбъектовМетаданных); - КоллекцииОбъектовМетаданных_НоваяСтрока("РегистрыБухгалтерии", НСтр("ru = 'Регистры бухгалтерии'"), БиблиотекаКартинок.РегистрБухгалтерии, БиблиотекаКартинок.РегистрБухгалтерии, Ложь, КоллекцииОбъектовМетаданных); - КоллекцииОбъектовМетаданных_НоваяСтрока("РегистрыРасчета", НСтр("ru = 'Регистры расчета'"), БиблиотекаКартинок.РегистрРасчета, БиблиотекаКартинок.РегистрРасчета, Ложь, КоллекцииОбъектовМетаданных); - КоллекцииОбъектовМетаданных_НоваяСтрока("БизнесПроцессы", НСтр("ru = 'Бизнес-процессы'"), БиблиотекаКартинок.БизнесПроцесс, БиблиотекаКартинок.БизнесПроцессОбъект, Ложь, КоллекцииОбъектовМетаданных); - КоллекцииОбъектовМетаданных_НоваяСтрока("Задачи", НСтр("ru = 'Задачи'"), БиблиотекаКартинок.Задача, БиблиотекаКартинок.ЗадачаОбъект, Ложь, КоллекцииОбъектовМетаданных); + КоллекцииОбъектовМетаданных_НоваяСтрока("Константы", НСтр("ru = 'Константы'"), БиблиотекаКартинок.МетаданныеКонстанты, Ложь, КоллекцииОбъектовМетаданных); + КоллекцииОбъектовМетаданных_НоваяСтрока("Справочники", НСтр("ru = 'Справочники'"), БиблиотекаКартинок.МетаданныеСправочники, Ложь, КоллекцииОбъектовМетаданных); + КоллекцииОбъектовМетаданных_НоваяСтрока("Документы", НСтр("ru = 'Документы'"), БиблиотекаКартинок.МетаданныеДокументы, Ложь, КоллекцииОбъектовМетаданных); + КоллекцииОбъектовМетаданных_НоваяСтрока("ЖурналыДокументов", НСтр("ru = 'Журналы документов'"), БиблиотекаКартинок.МетаданныеЖурналыДокументов, Ложь, КоллекцииОбъектовМетаданных); + КоллекцииОбъектовМетаданных_НоваяСтрока("Перечисления", НСтр("ru = 'Перечисления'"), БиблиотекаКартинок.МетаданныеПеречисления, Ложь, КоллекцииОбъектовМетаданных); + КоллекцииОбъектовМетаданных_НоваяСтрока("Отчеты", НСтр("ru = 'Отчеты'"), БиблиотекаКартинок.МетаданныеОтчеты, Ложь, КоллекцииОбъектовМетаданных); + КоллекцииОбъектовМетаданных_НоваяСтрока("Обработки", НСтр("ru = 'Обработки'"), БиблиотекаКартинок.МетаданныеОбработки, Ложь, КоллекцииОбъектовМетаданных); + КоллекцииОбъектовМетаданных_НоваяСтрока("ПланыВидовХарактеристик", НСтр("ru = 'Планы видов характеристик'"), БиблиотекаКартинок.МетаданныеПланыВидовХарактеристик, Ложь, КоллекцииОбъектовМетаданных); + КоллекцииОбъектовМетаданных_НоваяСтрока("ПланыСчетов", НСтр("ru = 'Планы счетов'"), БиблиотекаКартинок.МетаданныеПланыСчетов, Ложь, КоллекцииОбъектовМетаданных); + КоллекцииОбъектовМетаданных_НоваяСтрока("ПланыВидовРасчета", НСтр("ru = 'Планы видов расчета'"), БиблиотекаКартинок.МетаданныеПланыВидовРасчета, Ложь, КоллекцииОбъектовМетаданных); + КоллекцииОбъектовМетаданных_НоваяСтрока("РегистрыСведений", НСтр("ru = 'Регистры сведений'"), БиблиотекаКартинок.МетаданныеРегистрыСведений, Ложь, КоллекцииОбъектовМетаданных); + КоллекцииОбъектовМетаданных_НоваяСтрока("РегистрыНакопления", НСтр("ru = 'Регистры накопления'"), БиблиотекаКартинок.МетаданныеРегистрыНакопления, Ложь, КоллекцииОбъектовМетаданных); + КоллекцииОбъектовМетаданных_НоваяСтрока("РегистрыБухгалтерии", НСтр("ru = 'Регистры бухгалтерии'"), БиблиотекаКартинок.МетаданныеРегистрыБухгалтерии, Ложь, КоллекцииОбъектовМетаданных); + КоллекцииОбъектовМетаданных_НоваяСтрока("РегистрыРасчета", НСтр("ru = 'Регистры расчета'"), БиблиотекаКартинок.МетаданныеРегистрыРасчета, Ложь, КоллекцииОбъектовМетаданных); + КоллекцииОбъектовМетаданных_НоваяСтрока("БизнесПроцессы", НСтр("ru = 'Бизнес-процессы'"), БиблиотекаКартинок.МетаданныеБизнесПроцессы, Ложь, КоллекцииОбъектовМетаданных); + КоллекцииОбъектовМетаданных_НоваяСтрока("Задачи", НСтр("ru = 'Задачи'"), БиблиотекаКартинок.МетаданныеЗадачи, Ложь, КоллекцииОбъектовМетаданных); + КоллекцииОбъектовМетаданных_НоваяСтрока("ВнешниеИсточникиДанных", НСтр("ru = 'Внешние источники данных'"), БиблиотекаКартинок.МетаданныеВнешниеИсточникиДанных, Ложь, КоллекцииОбъектовМетаданных); // Создание предопределенных элементов. ПараметрыЭлемента = ПараметрыЭлементаДереваОбъектовМетаданных(); ПараметрыЭлемента.Имя = Метаданные.Имя; ПараметрыЭлемента.Синоним = Метаданные.Синоним; - ПараметрыЭлемента.Картинка = 79; + ПараметрыЭлемента.Картинка = БиблиотекаКартинок.МетаданныеКонфигурация; ПараметрыЭлемента.Родитель = ДеревоОбъектовМетаданных; ЭлементКонфигурация = НоваяСтрокаДерева(ПараметрыЭлемента); ПараметрыЭлемента = ПараметрыЭлементаДереваОбъектовМетаданных(); ПараметрыЭлемента.Имя = "Общие"; ПараметрыЭлемента.Синоним = НСтр("ru = 'Общие'"); - ПараметрыЭлемента.Картинка = 0; + ПараметрыЭлемента.Картинка = БиблиотекаКартинок.МетаданныеОбщие; ПараметрыЭлемента.Родитель = ЭлементКонфигурация; ЭлементОбщие = НоваяСтрокаДерева(ПараметрыЭлемента); // Заполнение дерева объектов метаданных. Для Каждого Строка Из КоллекцииОбъектовМетаданных Цикл - Если Параметры.КоллекцииВыбираемыхОбъектовМетаданных.Количество() = 0 - Или Параметры.КоллекцииВыбираемыхОбъектовМетаданных.НайтиПоЗначению(Строка.Имя) <> Неопределено Тогда + Если КоллекцииВыбираемыхОбъектовМетаданных.Количество() = 0 + Или КоллекцииВыбираемыхОбъектовМетаданных.НайтиПоЗначению(Строка.Имя) <> Неопределено Тогда Строка.Родитель = ?(Строка.ЭтоКоллекцияОбщие, ЭлементОбщие, ЭлементКонфигурация); ДобавитьЭлементДереваОбъектовМетаданных(Строка, ?(Строка.Имя = "Подсистемы", Метаданные.Подсистемы, Неопределено)); КонецЕсли; @@ -361,8 +399,7 @@ // Имя - Строка - имя родительского элемента. // Синоним - Строка - синоним родительского элемента. // Пометка - Булево - начальная пометка коллекции или объекта метаданных. -// Картинка - Число - код картинки родительского элемента. -// КартинкаОбъекта - Число - код картинки подэлемента. +// Картинка - Картинка - картинка родительского элемента. // Родитель - ссылка на элемента дерева значений, который является корнем // для добавляемого элемента. // @@ -374,8 +411,7 @@ СтруктураПараметров.Вставить("ПолноеИмя", ""); СтруктураПараметров.Вставить("Синоним", ""); СтруктураПараметров.Вставить("Пометка", 0); - СтруктураПараметров.Вставить("Картинка", 0); - СтруктураПараметров.Вставить("КартинкаОбъекта", Неопределено); + СтруктураПараметров.Вставить("Картинка", Неопределено); СтруктураПараметров.Вставить("Родитель", Неопределено); Возврат СтруктураПараметров; @@ -389,13 +425,17 @@ // // Параметры: // ПараметрыЭлемента - Структура: -// Имя - Строка - имя родительского элемента. -// Синоним - Строка - синоним родительского элемента. -// Пометка - Булево - начальная пометка коллекции или объекта метаданных. -// Картинка - Число - код картинки родительского элемента. -// КартинкаОбъекта - Число - код картинки подэлемента. -// Родитель - ссылка на элемента дерева значений, который является корнем -// для добавляемого элемента. +// * Имя - Строка - имя родительского элемента. +// * Синоним - Строка - синоним родительского элемента. +// * Пометка - Булево - начальная пометка коллекции или объекта метаданных. +// * Картинка - Картинка - картинка родительского элемента. +// * Родитель - ДанныеФормыЭлементДерева: +// ** Имя - Строка. +// ** Представление - Строка. +// ** Картинка - Картинка. +// ** ПолноеИмя - Строка. +// ** ЭтоОбъектМетаданных - Булево. +// ** Пометка - Булево. // Подсистемы - КоллекцияОбъектовМетаданных - если заполнен, то содержит значение Метаданные.Подсистемы (коллекцию элементов). // Проверять - Булево - признак проверки на принадлежность родительским подсистемам. // @@ -424,11 +464,12 @@ КонецЕсли; НоваяСтрока = НоваяСтрокаДерева(ПараметрыЭлемента, Подсистемы <> Неопределено И Подсистемы <> Метаданные.Подсистемы); + НоваяСтрока.ЭтоКоллекцияОбъектов = Истина; Для Каждого ЭлементКоллекцииМетаданных Из Метаданные[ПараметрыЭлемента.Имя] Цикл - Если Параметры.ФильтрПоОбъектамМетаданных.Количество() > 0 - И Параметры.ФильтрПоОбъектамМетаданных.НайтиПоЗначению(ЭлементКоллекцииМетаданных.ПолноеИмя()) = Неопределено Тогда + Если ФильтрПоОбъектамМетаданных.Количество() > 0 + И ФильтрПоОбъектамМетаданных.НайтиПоЗначению(ЭлементКоллекцииМетаданных.ПолноеИмя()) = Неопределено Тогда Продолжить; КонецЕсли; @@ -437,7 +478,8 @@ ПараметрыЭлемента.ПолноеИмя = ЭлементКоллекцииМетаданных.ПолноеИмя(); ПараметрыЭлемента.Синоним = ЭлементКоллекцииМетаданных.Синоним; ПараметрыЭлемента.Родитель = НоваяСтрока; - ПараметрыЭлемента.Картинка = КартинкаВКонфигураторе(ЭлементКоллекцииМетаданных); + ПараметрыЭлемента.Картинка = ?(ПараметрыЭлемента.Родитель.Картинка <> Неопределено, + ПараметрыЭлемента.Родитель.Картинка, КартинкаВКонфигураторе(ЭлементКоллекцииМетаданных)); НоваяСтрокаДерева(ПараметрыЭлемента, Истина); КонецЦикла; @@ -451,12 +493,13 @@ КонецЕсли; НоваяСтрока = НоваяСтрокаДерева(ПараметрыЭлемента, Подсистемы <> Неопределено И Подсистемы <> Метаданные.Подсистемы); + НоваяСтрока.ЭтоКоллекцияОбъектов = (Подсистемы = Метаданные.Подсистемы); Для Каждого ЭлементКоллекцииМетаданных Из Подсистемы Цикл Если Не Проверять - Или Параметры.РодительскиеПодсистемы.Количество() = 0 - Или Параметры.РодительскиеПодсистемы.НайтиПоЗначению(ЭлементКоллекцииМетаданных.Имя) <> Неопределено Тогда + Или РодительскиеПодсистемы.Количество() = 0 + Или РодительскиеПодсистемы.НайтиПоЗначению(ЭлементКоллекцииМетаданных.Имя) <> Неопределено Тогда ПараметрыЭлемента = ПараметрыЭлементаДереваОбъектовМетаданных(); ПараметрыЭлемента.Имя = ЭлементКоллекцииМетаданных.Имя; @@ -475,14 +518,25 @@ &НаСервере Функция НоваяСтрокаДерева(ПараметрыСтроки, ЭтоОбъектМетаданных = Ложь) - Коллекция = ПараметрыСтроки.Родитель.ПолучитьЭлементы(); // КоллекцияСтрокДереваЗначений + Коллекция = ПараметрыСтроки.Родитель.ПолучитьЭлементы(); НоваяСтрока = Коллекция.Добавить(); НоваяСтрока.Имя = ПараметрыСтроки.Имя; НоваяСтрока.Представление = ?(ЗначениеЗаполнено(ПараметрыСтроки.Синоним), ПараметрыСтроки.Синоним, ПараметрыСтроки.Имя); - НоваяСтрока.Пометка = ?(ВыбранныеОбъектыМетаданных.НайтиПоЗначению(ПараметрыСтроки.ПолноеИмя) = Неопределено, 0, 1); НоваяСтрока.Картинка = ПараметрыСтроки.Картинка; НоваяСтрока.ПолноеИмя = ПараметрыСтроки.ПолноеИмя; НоваяСтрока.ЭтоОбъектМетаданных = ЭтоОбъектМетаданных; + НоваяСтрока.Пометка = ?(ВыбранныеОбъектыМетаданных.НайтиПоЗначению(ПараметрыСтроки.ПолноеИмя) <> Неопределено + Или ЭтоОбъектМетаданных И ВыбранныеОбъектыМетаданных.НайтиПоЗначению(ПараметрыСтроки.Родитель.Имя) <> Неопределено, 1, 0); + + Если НоваяСтрока.Пометка + И НоваяСтрока.ЭтоОбъектМетаданных + И Не ЗначениеЗаполнено(ИдентификаторСтрокиПервогоВыбранногоОбъекта) Тогда + + ИдентификаторСтрокиПервогоВыбранногоОбъекта = НоваяСтрока.ПолучитьИдентификатор(); + Если Не ЗначениеЗаполнено(ИдентификаторТекущейСтрокиПриОткрытии) Тогда + ИдентификаторТекущейСтрокиПриОткрытии = ИдентификаторСтрокиПервогоВыбранногоОбъекта; + КонецЕсли; + КонецЕсли; Если НоваяСтрока.ЭтоОбъектМетаданных И НоваяСтрока.ПолноеИмя = НачальноеЗначениеВыбора Тогда @@ -501,18 +555,16 @@ // Синоним - Строка - синоним объекта метаданных. // Картинка - Число - картинка поставленная в соответствие объекту метаданных // или виду объекта метаданных. -// КартинкаОбъекта - Число // ЭтоКоллекцияОбщие - Булево - признак того, что текущий элемент содержит подэлементы. // Таб - ТаблицаЗначений // &НаСервере -Процедура КоллекцииОбъектовМетаданных_НоваяСтрока(Имя, Синоним, Картинка, КартинкаОбъекта, ЭтоКоллекцияОбщие, Таб) +Процедура КоллекцииОбъектовМетаданных_НоваяСтрока(Имя, Синоним, Картинка, ЭтоКоллекцияОбщие, Таб) НоваяСтрока = Таб.Добавить(); НоваяСтрока.Имя = Имя; НоваяСтрока.Синоним = Синоним; НоваяСтрока.Картинка = Картинка; - НоваяСтрока.КартинкаОбъекта = КартинкаОбъекта; НоваяСтрока.ЭтоКоллекцияОбщие = ЭтоКоллекцияОбщие; КонецПроцедуры @@ -642,13 +694,16 @@ ОписаниеОбъектовМетаданных = ВыбранныеОбъектыМетаданных.ВыгрузитьЗначения(); Ссылки = ОбщегоНазначения.ИдентификаторыОбъектовМетаданных(ОписаниеОбъектовМетаданных, Ложь); - Для Каждого ЭлементСписка Из ВыбранныеОбъектыМетаданных Цикл - + ТекущийИндекс = ВыбранныеОбъектыМетаданных.Количество() - 1; + Пока ТекущийИндекс >= 0 Цикл + ЭлементСписка = ВыбранныеОбъектыМетаданных[ТекущийИндекс]; Ссылка = Ссылки[ЭлементСписка.Значение]; Если Ссылка <> Неопределено Тогда ЭлементСписка.Значение = Ссылка; + Иначе + ВыбранныеОбъектыМетаданных.Удалить(ЭлементСписка); КонецЕсли; - + ТекущийИндекс = ТекущийИндекс - 1; КонецЦикла; КонецПроцедуры @@ -745,8 +800,8 @@ Функция ОбъектМетаданныхДоступен(ОбъектМетаданных) Если Не ЭтоПодсистема(ОбъектМетаданных) Тогда - ЭтоВыбираемыйОбъект = Не ЗначениеЗаполнено(Параметры.КоллекцииВыбираемыхОбъектовМетаданных); - Для Каждого ВидОбъекта Из Параметры.КоллекцииВыбираемыхОбъектовМетаданных.ВыгрузитьЗначения() Цикл + ЭтоВыбираемыйОбъект = Не ЗначениеЗаполнено(КоллекцииВыбираемыхОбъектовМетаданных); + Для Каждого ВидОбъекта Из КоллекцииВыбираемыхОбъектовМетаданных.ВыгрузитьЗначения() Цикл Если Метаданные[ВидОбъекта].Содержит(ОбъектМетаданных) Тогда ЭтоВыбираемыйОбъект = Истина; Прервать; @@ -823,8 +878,31 @@ КонецФункции +&НаКлиенте +Процедура ЗаполнитьДеревоОбъектов(ПриОткрытии = Ложь) + + ИдентификаторыРазворачиваемыхСтрок = Новый Массив; + ЗаполнитьДеревоОбъектовНаСервере(ПриОткрытии, ИдентификаторыРазворачиваемыхСтрок); + + Если ПриОткрытии + И (РодительскиеПодсистемы.Количество() > 0 + Или КоллекцииВыбираемыхОбъектовМетаданных.Количество() = 1) Тогда + + Элементы.ДеревоОбъектовМетаданных.Развернуть(ИдентификаторыРазворачиваемыхСтрок[0], Истина); + Возврат; + КонецЕсли; + + Для Каждого ИдентификаторСтроки Из ИдентификаторыРазворачиваемыхСтрок Цикл + Элементы.ДеревоОбъектовМетаданных.Развернуть(ИдентификаторСтроки); + КонецЦикла; + +КонецПроцедуры + &НаСервере -Процедура ЗаполнитьДеревоОбъектов() +Процедура ЗаполнитьДеревоОбъектовНаСервере(ПриОткрытии, ИдентификаторыРазворачиваемыхСтрок) + + ИдентификаторТекущейСтрокиПриОткрытии = 0; + ИдентификаторСтрокиПервогоВыбранногоОбъекта = 0; Если СпособГруппировкиОбъектов = "ПоРазделам" Тогда ДеревоОбъектовМетаданныхЗаполнитьПоРазделам(); @@ -834,6 +912,32 @@ НачальнаяПометкаКоллекций(ДеревоОбъектовМетаданных); + Если ДеревоОбъектовМетаданных.ПолучитьЭлементы().Количество() < 1 Тогда + Возврат; + КонецЕсли; + + Если ЗначениеЗаполнено(ИдентификаторСтрокиПервогоВыбранногоОбъекта) Тогда + Строка = ДеревоОбъектовМетаданных.НайтиПоИдентификатору(ИдентификаторСтрокиПервогоВыбранногоОбъекта); + Пока Строка <> Неопределено Цикл + ИдентификаторыРазворачиваемыхСтрок.Вставить(0, Строка.ПолучитьИдентификатор()); + Строка = Строка.ПолучитьРодителя(); + КонецЦикла; + Иначе + ИдентификаторКорня = ДеревоОбъектовМетаданных.ПолучитьЭлементы()[0].ПолучитьИдентификатор(); + ИдентификаторыРазворачиваемыхСтрок.Добавить(ИдентификаторКорня); + КонецЕсли; + + // Устанавливаем начальное значение выбора. + Если (ПриОткрытии Или Не ПометкаВыполнялась) + И ИдентификаторТекущейСтрокиПриОткрытии > 0 Тогда + + Элементы.ДеревоОбъектовМетаданных.ТекущаяСтрока = ИдентификаторТекущейСтрокиПриОткрытии; + + ИначеЕсли ЗначениеЗаполнено(ИдентификаторСтрокиПервогоВыбранногоОбъекта) Тогда + + Элементы.ДеревоОбъектовМетаданных.ТекущаяСтрока = ИдентификаторСтрокиПервогоВыбранногоОбъекта; + КонецЕсли; + КонецПроцедуры #Область ПометкаЭлементов @@ -1175,8 +1279,21 @@ Результат = Новый Соответствие; Для Каждого Элемент Из Ветка.ПолучитьЭлементы() Цикл + Если СпособГруппировкиОбъектов = "ПоВидам" + И ВыбиратьКоллекцииКогдаВыбраныВсеОбъекты + И Элемент.Пометка = 1 + И (Элемент.ЭтоКоллекцияОбъектов + Или Ветка = ДеревоОбъектовМетаданных) Тогда + + Если Элемент.ЭтоКоллекцияОбъектов Тогда + Результат.Вставить(Элемент.Имя, Элемент.Представление); + Иначе + Результат.Вставить("Конфигурация", НСтр("ru = 'Конфигурация'")); + КонецЕсли; + Продолжить; + КонецЕсли; Если Элемент.Пометка = 1 И Не ПустаяСтрока(Элемент.ПолноеИмя) И Элемент.ЭтоОбъектМетаданных Тогда - Результат.Вставить(Элемент.ПолноеИмя, ?(Параметры.ЗапоминатьРазделыВыбранныхОбъектов + Результат.Вставить(Элемент.ПолноеИмя, ?(ЗапоминатьРазделыВыбранныхОбъектов И СпособГруппировкиОбъектов = "ПоРазделам", Элемент.Адрес, Элемент.Представление)); КонецЕсли; Для Каждого ВыбранныйЭлемент Из ВыбранныеЭлементы(Элемент) Цикл diff --git a/SSL/src/CommonForms/НастройкиПравОбъектов/Form.form b/SSL/src/CommonForms/НастройкиПравОбъектов/Form.form index b6de16c3a..34eba55dc 100644 --- a/SSL/src/CommonForms/НастройкиПравОбъектов/Form.form +++ b/SSL/src/CommonForms/НастройкиПравОбъектов/Form.form @@ -74,7 +74,7 @@ <event>TextEditEnd</event> <name>ГруппыПравПользовательОкончаниеВводаТекста</name> </handlers> - <width>35</width> + <width>31</width> <autoMaxWidth>true</autoMaxWidth> <autoMaxHeight>true</autoMaxHeight> <wrap>true</wrap> @@ -394,29 +394,483 @@ <autoMaxCardHeight>true</autoMaxCardHeight> <rowFilter xsi:type="core:UndefinedValue"/> </items> - <items xsi:type="form:FormField"> - <name>НаследоватьПраваРодителей</name> - <id>15</id> - <title> - <key>ru</key> - <value>Наследовать права от вышестоящих папок</value> - + + НаследованиеИЛегенда + 70 + + НаследоватьПраваРодителей + 15 + + <key>ru</key> + <value>Наследовать права от вышестоящих папок</value> + + true + true + + true + + + НаследоватьПраваРодителей + + Right + + OnChange + НаследоватьПраваРодителейПриИзменении + + + НаследоватьПраваРодителейExtendedTooltip + 58 + Label + true + true + + Left + + + + НаследоватьПраваРодителейКонтекстноеМеню + 16 + true + + CheckBoxField + Enter + true + Left + true + + + + Разделитель + 75 + true + true + + true + + + РазделительРасширеннаяПодсказка + 77 + Label + true + true + + Left + + + + РазделительКонтекстноеМеню + 76 + true + + Label + true + true + + Left + + + + Легенда + 78 + + ЛегендаПравоРазрешено + 80 + + КартинкаПравоРазрешено + 104 + + <key>ru</key> + <value>✔</value> + + true + true + + true + + + ru + Разрешает доступ + + + КартинкаПравоРазрешеноРасширеннаяПодсказка + 106 + Label + true + true + + Left + + + + КартинкаПравоРазрешеноКонтекстноеМеню + 105 + true + + Label + true + true + + Style.РазрешенноеПравоДоступаЦвет + + + Style.NormalTextFont + true + false + false + false + 120 + + + Left + + + + ОписаниеПравоРазрешено + 85 + + <key>ru</key> + <value>Разрешено </value> + + true + true + + true + + + ru + Разрешает доступ + + + ОписаниеПравоРазрешеноРасширеннаяПодсказка + 87 + Label + true + true + + Left + + + + ОписаниеПравоРазрешеноКонтекстноеМеню + 86 + true + + Label + true + true + + Left + + + true + true + + true + + + <key>ru</key> + <value>Легенда право разрешено</value> + + + ЛегендаПравоРазрешеноРасширеннаяПодсказка + 81 + Label + true + true + + Left + + + UsualGroup + + Auto + true + true + Auto + Auto + + + + ЛегендаПравоЗапрещено + 88 + + КартинкаПравоЗапрещено + 107 + + <key>ru</key> + <value>✘</value> + + true + true + + true + + + ru + Запрещает доступ, даже если в других строках для этого пользователя/группы есть разрешение + + + КартинкаПравоЗапрещеноРасширеннаяПодсказка + 109 + Label + true + true + + Left + + + + КартинкаПравоЗапрещеноКонтекстноеМеню + 108 + true + + Label + true + true + + Style.ЗапрещенноеПравоДоступаЦвет + + + Style.NormalTextFont + true + false + false + false + 120 + + + Left + + + + ОписаниеПравоЗапрещено + 93 + + <key>ru</key> + <value>Запрещено </value> + + true + true + + true + + + ru + Запрещает доступ, даже если в других строках +для этого пользователя/группы есть разрешение + + + ОписаниеПравоЗапрещеноРасширеннаяПодсказка + 95 + Label + true + true + + Left + + + + ОписаниеПравоЗапрещеноКонтекстноеМеню + 94 + true + + Label + true + true + + Left + + + true + true + + true + + + <key>ru</key> + <value>Легенда право запрещено</value> + + + ЛегендаПравоЗапрещеноРасширеннаяПодсказка + 89 + Label + true + true + + Left + + + UsualGroup + + Auto + true + true + Auto + Auto + + + + ЛегендаПравоНеНазначено + 96 + + КартинкаПравоНеНазначено + 110 + + <key>ru</key> + <value>●</value> + + true + true + + true + + + ru + Не разрешает доступ, но и не запрещает + + + КартинкаПравоНеНазначеноРасширеннаяПодсказка + 112 + Label + true + true + + Left + + + + КартинкаПравоНеНазначеноКонтекстноеМеню + 111 + true + + Label + true + true + + Style.НеназначенноеПравоДоступаЦвет + + + Left + + + + ОписаниеПравоНеНазначено + 101 + + <key>ru</key> + <value>Не назначено </value> + + true + true + + true + + + ru + Не разрешает доступ, но и не запрещает + + + ОписаниеПравоНеНазначеноРасширеннаяПодсказка + 103 + Label + true + true + + Left + + + + ОписаниеПравоНеНазначеноКонтекстноеМеню + 102 + true + + Label + true + true + + Left + + + true + true + + true + + + <key>ru</key> + <value>Легенда право не назначено</value> + + + ЛегендаПравоНеНазначеноРасширеннаяПодсказка + 97 + Label + true + true + + Left + + + UsualGroup + + Auto + true + true + Auto + Auto + + + true + true + + true + + + <key>ru</key> + <value>Легенда</value> + + Button + + ЛегендаРасширеннаяПодсказка + 79 + + <key>ru</key> + <value><fontsize 12><colorstyle 0:5a83b75a-38b0-4d15-9c6f-c201fa97e485>✔</></><fontsize 12><color #008000> </></><fontsize 10><colorstyle -3>р</></><fontsize 10><colorstyle -3>азрешает</></><fontsize 10><colorstyle -3> доступ</></> +<fontsize 12><colorstyle 0:0c44fdea-7b81-45be-87f5-d64456a9d379>✘</></><fontsize 12> </><fontsize 10><colorstyle -3>запрещает</></><fontsize 10><colorstyle -3> </></><fontsize 10><colorstyle -3>доступ, даже если в других </></><fontsize 10><colorstyle -3>строках для этого пользователя или </></><fontsize 10><colorstyle -3>группы есть разрешение </></> +<fontsize 12><colorstyle 0:0a83f9ec-eabe-4e8f-9fa9-0067acad6fc4>●</></><fontsize 12> </><fontsize 12> </><fontsize 10><colorstyle -3>н</></><fontsize 10><colorstyle -3>е разрешает доступ, но и не запрещает</></> + +<fontsize 10>Таким образом, п</><fontsize 10>ользователь </><fontsize 10>получит доступ, если ему или группе пользователей, в которую он входит</><fontsize 10>,</> +<fontsize 10>в соответствующей колонке установлено хотя бы одно разрешение </><fontsize 12><colorstyle 0:5a83b75a-38b0-4d15-9c6f-c201fa97e485>✔</></> +<fontsize 10>и не установлено ни одного запрета </><fontsize 12><colorstyle 0:0c44fdea-7b81-45be-87f5-d64456a9d379>✘</></><fontsize 12><color #000000>.</></></value> + + true + Label + true + true + + Left + + + UsualGroup + + Auto + true + true + Auto + Auto + + true true true - - НаследоватьПраваРодителей - - Right - - OnChange - НаследоватьПраваРодителейПриИзменении - + + <key>ru</key> + <value>Наследование и легенда</value> + - НаследоватьПраваРодителейExtendedTooltip - 58 + НаследованиеИЛегендаРасширеннаяПодсказка + 71 Label true true @@ -424,17 +878,14 @@ Left - - НаследоватьПраваРодителейКонтекстноеМеню - 16 - true - - CheckBoxField - Enter - true - Left - true - + UsualGroup + + Auto + true + true + Auto + Auto + ФормаКоманднаяПанель @@ -1004,7 +1455,7 @@ УстановитьРазрешениеПрава <key>ru</key> - <value>Установить разрешение права "Да"</value> + <value>Разрешено ✔</value> 4 @@ -1026,7 +1477,7 @@ УстановитьЗапретПрава <key>ru</key> - <value>Установить запрет права "Нет"</value> + <value>Запрещено ✘</value> 5 @@ -1048,7 +1499,7 @@ СнятьУстановкуПрава <key>ru</key> - <value>Снять установку права " "</value> + <value>Не назначено ●</value> 6 diff --git a/SSL/src/CommonForms/НастройкиПравОбъектов/Module.bsl b/SSL/src/CommonForms/НастройкиПравОбъектов/Module.bsl index 226b118ae..70bbbcb30 100644 --- a/SSL/src/CommonForms/НастройкиПравОбъектов/Module.bsl +++ b/SSL/src/CommonForms/НастройкиПравОбъектов/Module.bsl @@ -33,6 +33,9 @@ НСтр("ru = 'Нет права Просмотр на объекты типа ""%1"".'"), Строка(ТипСсылкиНаОбъект)); КонецЕсли; + Заголовок = СтроковыеФункцииКлиентСервер.ПодставитьПараметрыВСтроку( + НСтр("ru = 'Права доступа: %1 (%2)'"), Строка(СсылкаНаОбъект), Строка(ТипСсылкиНаОбъект)); + // Проверка разрешения на открытие формы. ПроверитьРазрешениеНаУправлениеПравами(); @@ -338,23 +341,21 @@ &НаСервере Процедура УстановитьУсловноеОформление() - + УсловноеОформление.Элементы.Очистить(); - - // - - Элемент = УсловноеОформление.Элементы.Добавить(); - - ПолеЭлемента = Элемент.Поля.Элементы.Добавить(); - ПолеЭлемента.Поле = Новый ПолеКомпоновкиДанных(Элементы.ГруппыПрав.Имя); - - ОтборЭлемента = Элемент.Отбор.Элементы.Добавить(Тип("ЭлементОтбораКомпоновкиДанных")); - ОтборЭлемента.ЛевоеЗначение = Новый ПолеКомпоновкиДанных("ГруппыПрав.НастройкаРодителя"); - ОтборЭлемента.ВидСравнения = ВидСравненияКомпоновкиДанных.Равно; - ОтборЭлемента.ПравоеЗначение = Истина; - - Элемент.Оформление.УстановитьЗначениеПараметра("ЦветТекста", WebЦвета.Серый); - + + ЭлементУсловногоОформления = УсловноеОформление.Элементы.Добавить(); + ЭлементУсловногоОформления.Оформление.УстановитьЗначениеПараметра("ЦветТекста", WebЦвета.Серый); + + ЭлементОтбора = ЭлементУсловногоОформления.Отбор.Элементы.Добавить( + Тип("ЭлементОтбораКомпоновкиДанных")); + ЭлементОтбора.ЛевоеЗначение = Новый ПолеКомпоновкиДанных("ГруппыПрав.НастройкаРодителя"); + ЭлементОтбора.ВидСравнения = ВидСравненияКомпоновкиДанных.Равно; + ЭлементОтбора.ПравоеЗначение = Истина; + + ОформляемоеПоле = ЭлементУсловногоОформления.Поля.Элементы.Добавить(); + ОформляемоеПоле.Поле = Новый ПолеКомпоновкиДанных(Элементы.ГруппыПрав.Имя); + КонецПроцедуры &НаКлиенте @@ -558,23 +559,20 @@ КонецЕсли; КонецЦикла; Иначе - Элемент = ДобавитьЭлемент("ГруппыПрав" + ПредставленияПрава.Имя, Тип("ПолеФормы"), Элементы.ГруппыПрав); - Элемент.ТолькоПросмотр = Истина; - Элемент.Формат = НСтр("ru = 'ЧЦ=1; ЧН=; БЛ=Нет; БИ=Да'"); + ИмяЭлемента = "ГруппыПрав" + ПредставленияПрава.Имя; + ПутьКДанным = "ГруппыПрав." + ПредставленияПрава.Имя; + Элемент = ДобавитьЭлемент(ИмяЭлемента, Тип("ПолеФормы"), Элементы.ГруппыПрав); + Элемент.Вид = ВидПоляФормы.ПолеНадписи; Элемент.ГоризонтальноеПоложениеВШапке = ГоризонтальноеПоложениеЭлемента.Центр; Элемент.ГоризонтальноеПоложение = ГоризонтальноеПоложениеЭлемента.Центр; - Элемент.ПутьКДанным = "ГруппыПрав." + ПредставленияПрава.Имя; + Элемент.ПутьКДанным = ПутьКДанным; Элемент.Подсказка = ПредставленияПрава.Подсказка; - // Расчет оптимальной ширины элемента. - ШиринаЭлемента = 0; - Для НомерСтроки = 1 По СтрЧислоСтрок(ПредставленияПрава.Заголовок) Цикл - ШиринаЭлемента = Макс(ШиринаЭлемента, СтрДлина(СтрПолучитьСтроку(ПредставленияПрава.Заголовок, НомерСтроки))); - КонецЦикла; - Если СтрЧислоСтрок(ПредставленияПрава.Заголовок) = 1 Тогда - ШиринаЭлемента = ШиринаЭлемента + 1; - КонецЕсли; - Элемент.Ширина = ШиринаЭлемента; + УстановитьШиринуПоЗаголовку(Элемент, ПредставленияПрава.Заголовок); + + УстановитьОформлениеФлажка(ИмяЭлемента, 0, ПутьКДанным, Неопределено); + УстановитьОформлениеФлажка(ИмяЭлемента, 1, ПутьКДанным, Истина); + УстановитьОформлениеФлажка(ИмяЭлемента, 2, ПутьКДанным, Ложь); КонецЕсли; Если Элементы.ГруппыПрав.ВысотаШапки < СтрЧислоСтрок(ПредставленияПрава.Заголовок) Тогда @@ -583,9 +581,9 @@ КонецЦикла; Если НовыеРеквизиты = Неопределено И Параметры.СсылкаНаОбъект.Метаданные().Иерархический Тогда + // Элемент "ГруппыПравНаследованиеРазрешено". Элемент = ДобавитьЭлемент("ГруппыПравНаследованиеРазрешено", Тип("ПолеФормы"), Элементы.ГруппыПрав); - Элемент.ТолькоПросмотр = Истина; - Элемент.Формат = НСтр("ru = 'ЧЦ=1; ЧН=; БЛ=Нет; БИ=Да'"); + Элемент.Вид = ВидПоляФормы.ПолеНадписи; Элемент.ГоризонтальноеПоложениеВШапке = ГоризонтальноеПоложениеЭлемента.Центр; Элемент.ГоризонтальноеПоложение = ГоризонтальноеПоложениеЭлемента.Центр; Элемент.ПутьКДанным = "ГруппыПрав.НаследованиеРазрешено"; @@ -594,29 +592,33 @@ |подпапок'"); Элемент.Подсказка = НСтр("ru = 'Права не только для текущей папки, |но и для ее нижестоящих папок'"); + УстановитьШиринуПоЗаголовку(Элемент); + УстановитьОформлениеФлажка("ГруппыПравНаследованиеРазрешено", 1, "ГруппыПрав.НаследованиеРазрешено", Истина); + УстановитьОформлениеФлажка("ГруппыПравНаследованиеРазрешено", 2, "ГруппыПрав.НаследованиеРазрешено", Ложь); + + // Элемент "ГруппыПравВладелецНастройки". Элемент = ДобавитьЭлемент("ГруппыПравВладелецНастройки", Тип("ПолеФормы"), Элементы.ГруппыПрав); - Элемент.ТолькоПросмотр = Истина; - Элемент.ПутьКДанным = "ГруппыПрав.ВладелецНастройки"; - Элемент.Заголовок = НСтр("ru = 'Наследуется от'"); - Элемент.Подсказка = НСтр("ru = 'Папка, от которой наследуются настройка прав'"); - Элемент.Видимость = РодительЗаполнен; + Элемент.Вид = ВидПоляФормы.ПолеНадписи; + Элемент.ПутьКДанным = "ГруппыПрав.ВладелецНастройки"; + Элемент.Заголовок = НСтр("ru = 'Наследуется от'"); + Элемент.Подсказка = НСтр("ru = 'Папка, от которой наследуются настройка прав'"); + Элемент.Видимость = РодительЗаполнен; + ЭлементУсловногоОформления = УсловноеОформление.Элементы.Добавить(); - ЭлементУсловногоОформления.Использование = Истина; ЭлементУсловногоОформления.Оформление.УстановитьЗначениеПараметра("Text", ""); ЭлементОтбора = ЭлементУсловногоОформления.Отбор.Элементы.Добавить( Тип("ЭлементОтбораКомпоновкиДанных")); - ЭлементОтбора.Использование = Истина; ЭлементОтбора.ЛевоеЗначение = Новый ПолеКомпоновкиДанных("ГруппыПрав.НастройкаРодителя"); ЭлементОтбора.ВидСравнения = ВидСравненияКомпоновкиДанных.Равно; ЭлементОтбора.ПравоеЗначение = Ложь; ОформляемоеПоле = ЭлементУсловногоОформления.Поля.Элементы.Добавить(); - ОформляемоеПоле.Использование = Истина; ОформляемоеПоле.Поле = Новый ПолеКомпоновкиДанных("ГруппыПравВладелецНастройки"); + Если Элементы.ГруппыПрав.ВысотаШапки = 1 Тогда Элементы.ГруппыПрав.ВысотаШапки = 2; КонецЕсли; @@ -624,6 +626,81 @@ КонецПроцедуры +&НаСервере +Процедура УстановитьШиринуПоЗаголовку(Элемент, Заголовок = "") + + Если Не ЗначениеЗаполнено(Заголовок) Тогда + Заголовок = Элемент.Заголовок; + КонецЕсли; + + ШиринаЭлемента = 0; + Для НомерСтроки = 1 По СтрЧислоСтрок(Заголовок) Цикл + ШиринаЭлемента = Макс(ШиринаЭлемента, СтрДлина(СтрПолучитьСтроку(Заголовок, НомерСтроки))); + КонецЦикла; + Элемент.Ширина = Цел(ШиринаЭлемента * 0.7); + + Если Элемент.Ширина < 3 Тогда + Элемент.Ширина = 3; + КонецЕсли; + +КонецПроцедуры + +&НаСервере +Процедура УстановитьОформлениеФлажка(ИмяЭлемента, ВариантЦвета, ИмяРеквизита, ПравоеЗначение); + + Если ВариантЦвета = 0 Тогда + ЦветТекста = Метаданные.ЭлементыСтиля.НеназначенноеПравоДоступаЦвет.Значение; + Шрифт = Элементы.КартинкаПравоНеНазначено.Шрифт; + Символ = Элементы.КартинкаПравоНеНазначено.Заголовок; + + ИначеЕсли ВариантЦвета = 1 Тогда + ЦветТекста = Метаданные.ЭлементыСтиля.РазрешенноеПравоДоступаЦвет.Значение; + Шрифт = Элементы.КартинкаПравоРазрешено.Шрифт; + Символ = Элементы.КартинкаПравоРазрешено.Заголовок; + + ИначеЕсли ВариантЦвета = 2 Тогда + ЦветТекста = Метаданные.ЭлементыСтиля.ЗапрещенноеПравоДоступаЦвет.Значение; + Шрифт = Элементы.КартинкаПравоЗапрещено.Шрифт; + Символ = Элементы.КартинкаПравоЗапрещено.Заголовок; + КонецЕсли; + + // Цвет + ЭлементУсловногоОформления = УсловноеОформление.Элементы.Добавить(); + ЭлементУсловногоОформления.Оформление.УстановитьЗначениеПараметра("ЦветТекста", ЦветТекста); + + Если ВариантЦвета <> 0 Тогда + ЭлементОтбора = ЭлементУсловногоОформления.Отбор.Элементы.Добавить( + Тип("ЭлементОтбораКомпоновкиДанных")); + ЭлементОтбора.ЛевоеЗначение = Новый ПолеКомпоновкиДанных("ГруппыПрав.НастройкаРодителя"); + ЭлементОтбора.ВидСравнения = ВидСравненияКомпоновкиДанных.Равно; + ЭлементОтбора.ПравоеЗначение = Ложь; + КонецЕсли; + + ЭлементОтбора = ЭлементУсловногоОформления.Отбор.Элементы.Добавить( + Тип("ЭлементОтбораКомпоновкиДанных")); + ЭлементОтбора.ЛевоеЗначение = Новый ПолеКомпоновкиДанных(ИмяРеквизита); + ЭлементОтбора.ВидСравнения = ВидСравненияКомпоновкиДанных.Равно; + ЭлементОтбора.ПравоеЗначение = ПравоеЗначение; + + ОформляемоеПоле = ЭлементУсловногоОформления.Поля.Элементы.Добавить(); + ОформляемоеПоле.Поле = Новый ПолеКомпоновкиДанных(ИмяЭлемента); + + // Шрифт и Текст. + ЭлементУсловногоОформления = УсловноеОформление.Элементы.Добавить(); + ЭлементУсловногоОформления.Оформление.УстановитьЗначениеПараметра("Шрифт", Шрифт); + ЭлементУсловногоОформления.Оформление.УстановитьЗначениеПараметра("Текст", Символ); + + ЭлементОтбора = ЭлементУсловногоОформления.Отбор.Элементы.Добавить( + Тип("ЭлементОтбораКомпоновкиДанных")); + ЭлементОтбора.ЛевоеЗначение = Новый ПолеКомпоновкиДанных(ИмяРеквизита); + ЭлементОтбора.ВидСравнения = ВидСравненияКомпоновкиДанных.Равно; + ЭлементОтбора.ПравоеЗначение = ПравоеЗначение; + + ОформляемоеПоле = ЭлементУсловногоОформления.Поля.Элементы.Добавить(); + ОформляемоеПоле.Поле = Новый ПолеКомпоновкиДанных(ИмяЭлемента); + +КонецПроцедуры + &НаСервере Процедура ЗаполнитьПрава() diff --git a/SSL/src/CommonForms/НастройкиСинхронизацииДанных/Form.form b/SSL/src/CommonForms/НастройкиСинхронизацииДанных/Form.form index 255b13643..06c0e534f 100644 --- a/SSL/src/CommonForms/НастройкиСинхронизацииДанных/Form.form +++ b/SSL/src/CommonForms/НастройкиСинхронизацииДанных/Form.form @@ -2480,6 +2480,33 @@ Normal + + ИзменитьПрефиксИБ + 769 + true + true + + true + + + ИзменитьПрефиксИБРасширеннаяПодсказка + 770 + Label + true + true + + Left + + + Hyperlink + Form.Command.ИзменитьПрефиксИБ + Normal + Auto + true + true + UserCmds + Auto + СписокПриложенийГруппаРасписаниеВыполненияОбмена 594 @@ -3788,6 +3815,28 @@ Auto Auto + + ИзменитьПрефиксИБ + + <key>ru</key> + <value>Изменить</value> + + 13 + + ru + Изменить префикс ИБ + + + true + + + + ИзменитьПрефиксИБ + + + Auto + Auto + diff --git a/SSL/src/CommonForms/НастройкиСинхронизацииДанных/Module.bsl b/SSL/src/CommonForms/НастройкиСинхронизацииДанных/Module.bsl index b453e436a..efe16cdef 100644 --- a/SSL/src/CommonForms/НастройкиСинхронизацииДанных/Module.bsl +++ b/SSL/src/CommonForms/НастройкиСинхронизацииДанных/Module.bsl @@ -72,6 +72,10 @@ ОбновитьДанныеМонитораИнтерактивно(); + ИначеЕсли ИмяСобытия = "НаборКонстант.ПрефиксУзлаРаспределеннойИнформационнойБазы" Тогда + + ПрефиксИБ = Параметр; + КонецЕсли; КонецПроцедуры @@ -274,6 +278,16 @@ КонецПроцедуры +&НаКлиенте +Процедура ИзменитьПрефиксИБ(Команда) + + ПараметрыФормы = Новый Структура("Префикс", ПрефиксИБ); + + ОткрытьФорму("Обработка.ПомощникСозданияОбменаДанными.Форма.ИзменениеПрефиксаУзлаИБ",ПараметрыФормы,,,,,, + РежимОткрытияОкнаФормы.БлокироватьОкноВладельца); + +КонецПроцедуры + #КонецОбласти #КонецОбласти @@ -388,6 +402,7 @@ Если ПустаяСтрока(ИмяНабораСобытий) ИЛИ ИмяНабораСобытий = "СобытияВыгрузки" Тогда + ОтборТипыПредупреждений.Добавить(ПредопределенноеЗначение("Перечисление.ТипыПроблемОбменаДанными.АдминистративнаяОшибкаПриложения")); ОтборТипыПредупреждений.Добавить(ПредопределенноеЗначение("Перечисление.ТипыПроблемОбменаДанными.ОшибкаПроверкиСконвертированногоОбъекта")); ОтборТипыПредупреждений.Добавить(ПредопределенноеЗначение("Перечисление.ТипыПроблемОбменаДанными.ОшибкаВыполненияКодаОбработчиковПриОтправкеДанных")); diff --git a/SSL/src/CommonForms/НастройкиЭлектроннойПодписиИШифрования/Form.form b/SSL/src/CommonForms/НастройкиЭлектроннойПодписиИШифрования/Form.form index da0fe6768..9d90c3601 100644 --- a/SSL/src/CommonForms/НастройкиЭлектроннойПодписиИШифрования/Form.form +++ b/SSL/src/CommonForms/НастройкиЭлектроннойПодписиИШифрования/Form.form @@ -45,8 +45,7 @@ Left true - 20 - true + 30 true false true @@ -72,12 +71,110 @@ МоиСертификаты + + + ru + Мои сертификаты с истекающим сроком действия + + + МоиСертификатыСИстекающимСрокомДействия + + Style.ФонУправляющегоПоля Normal + + СертификатыТолькоДействующие + 421 + true + true + + true + + + СертификатыТолькоДействующие + + Right + + OnChange + СертификатыТолькоДействующиеПриИзменении + + + СертификатыТолькоДействующиеРасширеннаяПодсказка + 423 + Label + true + true + + Left + + + + СертификатыТолькоДействующиеКонтекстноеМеню + 422 + true + + CheckBoxField + Enter + true + Left + true + + + + ПользовательОтбор + 376 + + <key>ru</key> + <value>Использует</value> + + true + true + + true + + + ПользовательОтбор + + + OnChange + ПользовательОтборПриИзменении + + + ПользовательОтборРасширеннаяПодсказка + 378 + Label + true + true + + Left + + + + ПользовательОтборКонтекстноеМеню + 377 + true + + InputField + Enter + true + Left + true + + true + true + false + true + true + true + true + true + Normal + + СертификатыПоказатьЗаявления 334 @@ -155,7 +252,7 @@ UsualGroup - HorizontalIfPossible + AlwaysHorizontal Auto true true @@ -591,7 +688,7 @@ 260 <key>ru</key> - <value>Пользователь</value> + <value>Используют</value> true true @@ -874,10 +971,17 @@ true true - Сертификаты.DefaultPicture + Сертификаты.СостояниеСертификатаВЛичномХранилище + + CommonPicture.СостоянияСертификатов + true + + OnGetDataAtServer + СертификатыПриПолученииДанныхНаСервере + 60 0001-01-01T00:00:00 @@ -889,6 +993,451 @@ ГруппаПользовательскихНастроек + + ГруппаЛегенда + 379 + + ГруппаСертификатВЛичномХранилище + 393 + + ДекорацияКартинкаСертификатВЛичномХранилище + 381 + + <key>ru</key> + <value>Сертификат в личном хранилище</value> + + true + true + + true + + + ДекорацияКартинкаСертификатВЛичномХранилищеРасширеннаяПодсказка + 383 + Label + true + true + + Left + + + + ДекорацияКартинкаСертификатВЛичномХранилищеКонтекстноеМеню + 382 + true + + true + true + + + CommonPicture.СертификатВЛичномХранилище + + AsFileRef + + + + ДекорацияНадписьСертификатВЛичномХранилище + 401 + + <key>ru</key> + <value>Сертификат находится в личном хранилище на компьютере или доступен к использованию на сервере или в облаке</value> + + true + true + + true + + Button + + ДекорацияНадписьСертификатВЛичномХранилищеРасширеннаяПодсказка + 403 + Label + true + true + + Left + + + + ДекорацияНадписьСертификатВЛичномХранилищеКонтекстноеМеню + 402 + true + + Label + true + + Left + + + true + true + + true + + + <key>ru</key> + <value>Сертификат в личном хранилище</value> + + + ГруппаСертификатВЛичномХранилищеРасширеннаяПодсказка + 394 + Label + true + true + + Left + + + UsualGroup + + AlwaysHorizontal + Auto + WeakSeparation + true + true + Auto + Auto + + + + ГруппаСрокДействияСертификатаЗаканчивается + 395 + + ДекорацияКартинкаСрокДействияСертификатаЗаканчивается + 387 + + <key>ru</key> + <value>Сертификат в личном хранилище</value> + + true + true + + true + + + ДекорацияКартинкаСрокДействияСертификатаЗаканчиваетсяРасширеннаяПодсказка + 389 + Label + true + true + + Left + + + + ДекорацияКартинкаСрокДействияСертификатаЗаканчиваетсяКонтекстноеМеню + 388 + true + + true + true + + + CommonPicture.СрокДействияСертификатаЗаканчивается + + AsFileRef + + + + ДекорацияНадписьСрокДействияСертификатаЗаканчивается + 404 + + <key>ru</key> + <value>До истечения срока действия сертификата осталось менее 30 календарных дней</value> + + true + true + + true + + Button + + ДекорацияНадписьСрокДействияСертификатаЗаканчиваетсяРасширеннаяПодсказка + 406 + Label + true + true + + Left + + + + ДекорацияНадписьСрокДействияСертификатаЗаканчиваетсяКонтекстноеМеню + 405 + true + + Label + true + + Left + + + true + true + + true + + + <key>ru</key> + <value>Срок действия сертификата заканчивается</value> + + + ГруппаСрокДействияСертификатаЗаканчиваетсяРасширеннаяПодсказка + 396 + Label + true + true + + Left + + + UsualGroup + + AlwaysHorizontal + Auto + WeakSeparation + true + true + Auto + Auto + + + + ГруппаСертификатПросрочен + 397 + + ДекорацияКартинкаСертификатПросрочен + 384 + + <key>ru</key> + <value>Декорация картинка сертификат просрочен</value> + + true + true + + true + + + ДекорацияКартинкаСертификатПросроченРасширеннаяПодсказка + 386 + Label + true + true + + Left + + + + ДекорацияКартинкаСертификатПросроченКонтекстноеМеню + 385 + true + + true + true + + + CommonPicture.СертификатПросрочен + + AsFileRef + + + + ДекорацияНадписьСертификатПросрочен + 407 + + <key>ru</key> + <value>Сертификат просрочен</value> + + true + true + + true + + + ДекорацияНадписьСертификатПросроченРасширеннаяПодсказка + 409 + Label + true + true + + Left + + + + ДекорацияНадписьСертификатПросроченКонтекстноеМеню + 408 + true + + Label + true + + Left + + + true + true + + true + + + <key>ru</key> + <value>Сертификат просрочен</value> + + + ГруппаСертификатПросроченРасширеннаяПодсказка + 398 + Label + true + true + + Left + + + UsualGroup + + AlwaysHorizontal + Auto + WeakSeparation + true + true + Auto + Auto + + + + ГруппаСертификатТолькоДляШифрования + 413 + + ДекорацияКартинкаСертификатТолькоДляШифрования + 418 + + <key>ru</key> + <value>Декорация картинка сертификат только для шифрования</value> + + true + true + + true + + + ДекорацияКартинкаСертификатТолькоДляШифрованияРасширеннаяПодсказка + 420 + Label + true + true + + Left + + + + ДекорацияКартинкаСертификатТолькоДляШифрованияКонтекстноеМеню + 419 + true + + true + true + + + StdPicture.Attribute + + AsFileRef + + + + ДекорацияНадписьСертификатТолькоДляШифрования + 415 + + <key>ru</key> + <value>Сертификат может использоваться только для шифрования и расшифровки</value> + + true + true + + true + + + ДекорацияНадписьСертификатТолькоДляШифрованияРасширеннаяПодсказка + 417 + Label + true + true + + Left + + + + ДекорацияНадписьСертификатТолькоДляШифрованияКонтекстноеМеню + 416 + true + + Label + true + + Left + + + true + true + + true + + + <key>ru</key> + <value>Сертификат только для шифрования</value> + + + ГруппаСертификатТолькоДляШифрованияРасширеннаяПодсказка + 414 + Label + true + true + + Left + + + UsualGroup + + HorizontalIfPossible + Auto + WeakSeparation + true + true + Auto + Auto + + + true + true + + true + + + <key>ru</key> + <value>Легенда</value> + + + ГруппаЛегендаРасширеннаяПодсказка + 380 + Label + true + true + + Left + + + UsualGroup + + Vertical + Collapsible + true + Button + true + true + auto + Auto + Auto + + true true @@ -2460,6 +3009,60 @@ Auto InAdditionalSubmenu + + ФормаПоказатьВерсиюКомпонентыExtraCryptoAPI + 424 + true + true + + true + + + ФормаПоказатьВерсиюКомпонентыExtraCryptoAPIРасширеннаяПодсказка + 425 + Label + true + true + + Left + + + Form.Command.ПоказатьВерсиюКомпонентыExtraCryptoAPI + Normal + Auto + true + true + UserCmds + Auto + InAdditionalSubmenu + + + ФормаУстановитьКомпонентуExtraCryptoAPI + 430 + true + true + + true + + + ФормаУстановитьКомпонентуExtraCryptoAPIРасширеннаяПодсказка + 431 + Label + true + true + + Left + + + Form.Command.УстановитьКомпонентуExtraCryptoAPI + Normal + Auto + true + true + UserCmds + Auto + InAdditionalSubmenu + Left true @@ -2597,22 +3200,48 @@ СертификатыПереопределяемый.ДанныеСертификата КАК ДанныеСертификата, СертификатыПереопределяемый.Программа КАК Программа, СертификатыПереопределяемый.Отозван КАК Отозван, - СертификатыПереопределяемый.УсиленнаяЗащитаЗакрытогоКлюча КАК УсиленнаяЗащитаЗакрытогоКлюча, + СертификатыПереопределяемый.ВводитьПарольВПрограммеЭлектроннойПодписи КАК ВводитьПарольВПрограммеЭлектроннойПодписи, СертификатыПереопределяемый.Организация КАК Организация, - ВЫБОР - КОГДА ЕСТЬNULL(СертификатыКлючейЭлектроннойПодписиИШифрованияПользователиПереопределяемый.ВсегоПользователей, 0) = 0 - ТОГДА СертификатыПереопределяемый.Пользователь - КОГДА ЕСТЬNULL(СертификатыКлючейЭлектроннойПодписиИШифрованияПользователиПереопределяемый.ВсегоПользователей, 0) = 1 - ТОГДА СертификатыКлючейЭлектроннойПодписиИШифрованияПользователиПереопределяемый.Пользователь - КОГДА ЕСТЬNULL(СертификатыКлючейЭлектроннойПодписиИШифрованияПользователиПереопределяемый.ВсегоПользователей, 0) > 1 - ТОГДА &НесколькоПользователей - ИНАЧЕ " " - КОНЕЦ КАК Пользователь, - СертификатыПереопределяемый.ПользовательОповещенОСрокеДействия КАК ПользовательОповещенОСрокеДействия, + Выбор + Когда СертификатыПереопределяемый.Пользователь = Значение(Справочник.Пользователи.ПустаяСсылка) + Тогда " " + Иначе СертификатыПереопределяемый.Пользователь + Конец КАК Пользователь, СертификатыПереопределяемый.Добавил КАК Добавил, &ДополнительноеПоле КАК СостояниеЗаявления, СертификатыПереопределяемый.Предопределенный КАК Предопределенный, СертификатыПереопределяемый.ИмяПредопределенныхДанных КАК ИмяПредопределенныхДанных, + Выбор + Когда СертификатыПереопределяемый.ПометкаУдаления + Тогда 1 + Когда &ЭтоЗаявление + Тогда 5 + Иначе Выбор + Когда СертификатыПереопределяемый.Отпечаток В (&СертификатыВЛичномХранилище) + Тогда Выбор + Когда СертификатыПереопределяемый.ДействителенДо < &ТекущаяДата + Тогда 4 + Когда СертификатыПереопределяемый.ДействителенДо < ДобавитьКДате(&ТекущаяДата, День, 30) + Тогда 3 + Иначе 2 + Конец + Иначе 0 + Конец + Конец КАК СостояниеСертификатаВЛичномХранилище, + Выбор + Когда НЕ СертификатыПереопределяемый.ПометкаУдаления + И НЕ СертификатыПереопределяемый.Отозван + И СертификатыПереопределяемый.ДействителенДо >= &ТекущаяДата + И СертификатыПереопределяемый.ДействителенДо <= ДобавитьКДате(&ТекущаяДата, День, 30) + Тогда Истина + Иначе Ложь + Конец КАК СрокДействияСкороЗакончится, + Выбор + Когда НЕ СертификатыПереопределяемый.Отозван + И СертификатыПереопределяемый.ДействителенДо > &ТекущаяДата + Тогда Истина + Иначе Ложь + Конец КАК Действует, ВЫБОР КОГДА ПрограммыПереопределяемый.ЭтоПрограммаОблачногоСервиса ТОГДА 4 @@ -2630,16 +3259,7 @@ Справочник.СертификатыКлючейЭлектроннойПодписиИШифрования КАК СертификатыПереопределяемый ЛЕВОЕ СОЕДИНЕНИЕ Справочник.ПрограммыЭлектроннойПодписиИШифрования КАК ПрограммыПереопределяемый ПО СертификатыПереопределяемый.Программа = ПрограммыПереопределяемый.Ссылка - ЛЕВОЕ СОЕДИНЕНИЕ (ВЫБРАТЬ - СертификатыКлючейЭлектроннойПодписиИШифрованияПользователиПереопределяемый.Ссылка КАК Ссылка, - МАКСИМУМ(СертификатыКлючейЭлектроннойПодписиИШифрованияПользователиПереопределяемый.Пользователь) КАК Пользователь, - КОЛИЧЕСТВО(*) КАК ВсегоПользователей - ИЗ - Справочник.СертификатыКлючейЭлектроннойПодписиИШифрования.Пользователи КАК СертификатыКлючейЭлектроннойПодписиИШифрованияПользователиПереопределяемый - - СГРУППИРОВАТЬ ПО - СертификатыКлючейЭлектроннойПодписиИШифрованияПользователиПереопределяемый.Ссылка) КАК СертификатыКлючейЭлектроннойПодписиИШифрованияПользователиПереопределяемый - ПО (СертификатыКлючейЭлектроннойПодписиИШифрованияПользователиПереопределяемый.Ссылка = СертификатыПереопределяемый.Ссылка) + И &ДополнительноеСоединение ГДЕ (&ПользовательСертификата = НЕОПРЕДЕЛЕНО ИЛИ СертификатыПереопределяемый.Пользователь = &ПользовательСертификата @@ -3074,6 +3694,69 @@ + + СертификатыВЛичномХранилище + 17 + + ValueList + + + true + + + true + + + + + + + ПользовательОтбор + + <key>ru</key> + <value>Пользователь</value> + + 18 + + CatalogRef.Пользователи + + + true + + + true + + + + ЗаявлениеНаВыпускСертификатаДоступно + 19 + + Boolean + + + true + + + true + + + + СертификатыТолькоДействующие + + <key>ru</key> + <value>Только действующие сертификаты</value> + + 20 + + Boolean + + + true + + + true + + Обновить @@ -3192,6 +3875,60 @@ <currentRowUse>DontUse</currentRowUse> <selectedRowsUse>Auto</selectedRowsUse> </formCommands> + <formCommands> + <name>ПоказатьВерсиюКомпонентыExtraCryptoAPI</name> + <title> + <key>ru</key> + <value>Показать версию компоненты ExtraCryptoAPI</value> + + 6 + + ru + Показать версию установленной компоненты с предложением установки, если она не установлена или если загружена более новая компонента. + + + true + + + + ПоказатьВерсиюКомпонентыExtraCryptoAPI + + + Auto + Auto + + + УстановитьКомпонентуExtraCryptoAPI + + <key>ru</key> + <value>Установить компоненту ExtraCryptoAPI</value> + + 7 + + ru + Установить и подключить последнюю версию компоненты с предложением загрузки из интернета свежей версии, если она существует. + + + true + + + + УстановитьКомпонентуExtraCryptoAPI + + + Auto + Auto + + + СертификатыПоказать + + String + + 50 + + + true + diff --git a/SSL/src/CommonForms/НастройкиЭлектроннойПодписиИШифрования/Module.bsl b/SSL/src/CommonForms/НастройкиЭлектроннойПодписиИШифрования/Module.bsl index 8fe553283..89160c27c 100644 --- a/SSL/src/CommonForms/НастройкиЭлектроннойПодписиИШифрования/Module.bsl +++ b/SSL/src/CommonForms/НастройкиЭлектроннойПодписиИШифрования/Module.bsl @@ -49,12 +49,20 @@ ПодписыватьНаСервере = Константы.СоздаватьЭлектронныеПодписиНаСервере.Получить(); КонецЕсли; - Если Пользователи.ЭтоПолноправныйПользователь() Тогда + Если ЗначениеЗаполнено(Параметры.СертификатыПоказать) Тогда + СертификатыПоказать = Параметры.СертификатыПоказать; + ИначеЕсли ЭтоПолноправныйПользователь Тогда СертификатыПоказать = "ВсеСертификаты"; Иначе СертификатыПоказать = "МоиСертификаты"; + КонецЕсли; - // Страница Программы + Если Не ЭтоПолноправныйПользователь ИЛИ СертификатыПоказать <> "ВсеСертификаты" Тогда + ПользовательОтбор = Пользователи.ТекущийПользователь(); + КонецЕсли; + + // Страница Программы + Если Не ПравоДоступа("Изменение", Метаданные.Справочники.ПрограммыЭлектроннойПодписиИШифрования) Тогда Элементы.Программы.ИзменятьСоставСтрок = Ложь; ОбщегоНазначенияКлиентСервер.УстановитьСвойствоЭлементаФормы(Элементы, @@ -78,13 +86,26 @@ НСтр("ru = 'Список программ, предусмотренных администратором, которые можно использовать на компьютере'"); КонецЕсли; + // Страница Сертификаты + ТекстЗапроса = Сертификаты.ТекстЗапроса; - Если ЭлектроннаяПодпись.ОбщиеНастройки().ЗаявлениеНаВыпускСертификатаДоступно Тогда + ЗаявлениеНаВыпускСертификатаДоступно = ЭлектроннаяПодпись.ОбщиеНастройки().ЗаявлениеНаВыпускСертификатаДоступно; + Если ЗаявлениеНаВыпускСертификатаДоступно Тогда МодульЗаявлениеНаВыпускНовогоКвалифицированногоСертификата = ОбщегоНазначения.ОбщийМодуль("Обработки.ЗаявлениеНаВыпускНовогоКвалифицированногоСертификата"); МодульЗаявлениеНаВыпускНовогоКвалифицированногоСертификата.ЗаполнитьСписокВыбораСостоянияЗаявления(Элементы.СертификатыПоказатьЗаявления.СписокВыбора); МодульЗаявлениеНаВыпускНовогоКвалифицированногоСертификата.ДополнитьЗапросСостояниемВСпискеСертификатов(ТекстЗапроса); + МодульЗаявлениеНаВыпускНовогоКвалифицированногоСертификата.ДобавитьЛегенду(ЭтотОбъект, Элементы.ГруппаЛегенда); + Элементы.СертификатыПоказать.СписокВыбора.Добавить("МоиЗаявленияВРаботе", НСтр("ru = 'Мои заявления в работе'")); + + Если Не ПравоДоступа("Добавление", Метаданные.Справочники.СертификатыКлючейЭлектроннойПодписиИШифрования) Тогда + ОбщегоНазначенияКлиентСервер.УстановитьСвойствоЭлементаФормы(Элементы, + "СертификатыДобавить", "Видимость", Ложь); + КонецЕсли; + Иначе ТекстЗапроса = СтрЗаменить(ТекстЗапроса, "&ДополнительноеПоле", "НЕОПРЕДЕЛЕНО"); + ТекстЗапроса = СтрЗаменить(ТекстЗапроса, "И &ДополнительноеСоединение", ""); + ТекстЗапроса = СтрЗаменить(ТекстЗапроса, "&ЭтоЗаявление", "Ложь"); ОбщегоНазначенияКлиентСервер.УстановитьСвойствоЭлементаФормы(Элементы, "СертификатыСоздать", "Видимость", Истина); @@ -98,7 +119,9 @@ СвойстваСписка.ТекстЗапроса = ТекстЗапроса; ОбщегоНазначения.УстановитьСвойстваДинамическогоСписка(Элементы.Сертификаты, СвойстваСписка); - СертификатыОбновитьОтбор(ЭтотОбъект, Пользователи.ТекущийПользователь()); + СертификатыВЛичномХранилище = Новый СписокЗначений; + УстановитьПараметрыВСпискеСертификатовНаСервере(); + СертификатыОбновитьОтбор(ЭтотОбъект); Если ОбщегоНазначения.ЭтоПодчиненныйУзелРИБ() Тогда // Состав и настройки предусмотренных программ нельзя изменять. @@ -125,8 +148,6 @@ МодульСервисКриптографииDSS = ОбщегоНазначения.ОбщийМодуль("СервисКриптографииDSS"); Элементы.Программы.КартинкаСтрок = МодульСервисКриптографииDSS.ПолучитьКартинкуПодсистемы("ТипыСертификатов"); Элементы.Программы.ПутьКДаннымКартинкиСтроки = "Программы.ТипРазмещения"; - Элементы.Сертификаты.КартинкаСтрок = МодульСервисКриптографииDSS.ПолучитьКартинкуПодсистемы("ТипыСертификатов"); - Элементы.Сертификаты.ПутьКДаннымКартинкиСтроки = "Сертификаты.ТипРазмещения"; КонецЕсли; ОбновитьТекущуюВидимостьЭлементов(); @@ -137,6 +158,7 @@ Процедура ПриОткрытии(Отказ) ОпределитьУстановленныеПрограммы(); + ПодключитьОбработчикОжидания("ДобавитьСертификатыВЛичномХранилищеВПараметрДинамическогоСписка", 0.1, Истина); КонецПроцедуры @@ -144,17 +166,25 @@ Процедура ПриПовторномОткрытии() ОпределитьУстановленныеПрограммы(); + Если ЗначениеЗаполнено(Параметры.СертификатыПоказать) Тогда + СертификатыПоказать = Параметры.СертификатыПоказать; + СертификатыОбновитьОтбор(ЭтотОбъект); + КонецЕсли; КонецПроцедуры &НаКлиенте Процедура ОбработкаОповещения(ИмяСобытия, Параметр, Источник) - Если ВРег(ИмяСобытия) = ВРег("Запись_СертификатыКлючейЭлектроннойПодписиИШифрования") - И Параметр.Свойство("ЭтоНовый") Тогда - - Элементы.Сертификаты.Обновить(); - Элементы.Сертификаты.ТекущаяСтрока = Источник; + Если ВРег(ИмяСобытия) = ВРег("Запись_СертификатыКлючейЭлектроннойПодписиИШифрования") Тогда + Если Параметр.Количество() = 0 Тогда + Элементы.Сертификаты.Обновить(); + ИначеЕсли Параметр.Установлен Тогда + ПодключитьОбработчикОжидания("ОбновитьСписокСертификатов", 0.1, Истина); + ИначеЕсли Параметр.ЭтоНовый Тогда + Элементы.Сертификаты.Обновить(); + Элементы.Сертификаты.ТекущаяСтрока = Источник; + КонецЕсли; Возврат; КонецЕсли; @@ -208,7 +238,21 @@ &НаКлиенте Процедура СертификатыПоказатьЗаявленияПриИзменении(Элемент) - СертификатыОбновитьОтбор(ЭтотОбъект, ПользователиКлиент.ТекущийПользователь()); + СертификатыОбновитьОтбор(ЭтотОбъект); + +КонецПроцедуры + +&НаКлиенте +Процедура СертификатыТолькоДействующиеПриИзменении(Элемент) + + СертификатыОбновитьОтбор(ЭтотОбъект); + +КонецПроцедуры + +&НаКлиенте +Процедура ПользовательОтборПриИзменении(Элемент) + + СертификатыОбновитьОтбор(ЭтотОбъект); КонецПроцедуры @@ -342,6 +386,62 @@ КонецПроцедуры +&НаСервереБезКонтекста +Процедура СертификатыПриПолученииДанныхНаСервере(ИмяЭлемента, Настройки, Строки) + + Для Каждого Строка Из Строки Цикл + Если НЕ Строка.Значение.Данные.Свойство("Пользователь") Тогда + Возврат; + КонецЕсли; + Прервать; + КонецЦикла; + + Запрос = Неопределено; + Для Каждого Строка Из Строки Цикл + Если ЗначениеЗаполнено(Строка.Значение.Данные.Пользователь) Тогда + Продолжить; + КонецЕсли; + Если Запрос = Неопределено Тогда + Запрос = Новый Запрос; + Запрос.Текст = + "ВЫБРАТЬ + | СертификатыКлючейЭлектроннойПодписиИШифрованияПользователи.Ссылка КАК Ссылка, + | СертификатыКлючейЭлектроннойПодписиИШифрованияПользователи.Пользователь КАК Пользователь, + | Представление(СертификатыКлючейЭлектроннойПодписиИШифрованияПользователи.Пользователь) КАК ПользовательПредставление + |ИЗ + | Справочник.СертификатыКлючейЭлектроннойПодписиИШифрования.Пользователи КАК + | СертификатыКлючейЭлектроннойПодписиИШифрованияПользователи + |ГДЕ + | СертификатыКлючейЭлектроннойПодписиИШифрованияПользователи.Ссылка В (&Ссылки) + |ИТОГИ + | КОЛИЧЕСТВО(Пользователь) + |ПО + | Ссылка"; + Запрос.УстановитьПараметр("Ссылки", Строки.ПолучитьКлючи()); + РезультатЗапроса = Запрос.Выполнить(); + Если РезультатЗапроса.Пустой() Тогда + Возврат; + КонецЕсли; + ВыборкаСсылка = РезультатЗапроса.Выбрать(ОбходРезультатаЗапроса.ПоГруппировкам); + КонецЕсли; + Если ВыборкаСсылка.НайтиСледующий(Строка.Значение.Данные["Ссылка"], "Ссылка") Тогда + КоличествоПользователей = ВыборкаСсылка.Пользователь; + ВыборкаПользователь = ВыборкаСсылка.Выбрать(); + ВыборкаПользователь.Следующий(); + Если КоличествоПользователей = 1 Тогда + Строка.Значение.Данные.Пользователь = ВыборкаПользователь.ПользовательПредставление; + Продолжить; + КонецЕсли; + Пользователь1 = ВыборкаПользователь.ПользовательПредставление; + ВыборкаПользователь.Следующий(); + Пользователь2 = ВыборкаПользователь.ПользовательПредставление; + Строка.Значение.Данные.Пользователь = ЭлектроннаяПодписьСлужебныйКлиентСервер.ПользователиСертификатаСтрокой( + Пользователь1, Пользователь2, КоличествоПользователей); + КонецЕсли; + КонецЦикла; + +КонецПроцедуры + #КонецОбласти #Область ОбработчикиСобытийЭлементовТаблицыФормыПрограммы @@ -438,8 +538,8 @@ Процедура Обновить(Команда) ЗаполнитьПрограммыИНастройки(Истина); - ОпределитьУстановленныеПрограммы(); + ОбновитьСписокСертификатов(); КонецПроцедуры @@ -467,6 +567,20 @@ КонецПроцедуры +&НаКлиенте +Процедура ПоказатьВерсиюКомпонентыExtraCryptoAPI(Команда) + + УстановитьПодключитьСообщитьВерсиюКомпоненты(Ложь); + +КонецПроцедуры + +&НаКлиенте +Процедура УстановитьКомпонентуExtraCryptoAPI(Команда) + + УстановитьПодключитьСообщитьВерсиюКомпоненты(Истина); + +КонецПроцедуры + &НаКлиенте Процедура ПрограммыУстановитьПометкуУдаления(Команда) @@ -491,13 +605,66 @@ Новый ФорматированнаяСтрока(СодержимоеВопроса), РежимДиалогаВопрос.ДаНет); - КонецПроцедуры #КонецОбласти #Область СлужебныеПроцедурыИФункции +&НаКлиенте +Процедура ОбновитьСписокСертификатов() + + СертификатыВЛичномХранилище = Новый СписокЗначений; + ОписаниеОповещения = Новый ОписаниеОповещения( + "ОбновитьСписокСертификатовПослеПолученияСвойствСертификатовНаКлиенте", + ЭтотОбъект, "ОбновитьНаСервере"); + ЭлектроннаяПодписьСлужебныйКлиент.ПолучитьСвойстваСертификатовНаКлиенте(ОписаниеОповещения, Истина, Истина, Истина); + +КонецПроцедуры + +&НаКлиенте +Процедура ДобавитьСертификатыВЛичномХранилищеВПараметрДинамическогоСписка() + + ЭлектроннаяПодписьСлужебныйКлиент.ПолучитьСвойстваСертификатовНаКлиенте( + Новый ОписаниеОповещения("ОбновитьСписокСертификатовПослеПолученияСвойствСертификатовНаКлиенте", ЭтотОбъект), + Истина, Истина, Истина); + +КонецПроцедуры + +&НаКлиенте +Процедура ОбновитьСписокСертификатовПослеПолученияСвойствСертификатовНаКлиенте(Результат, Параметры) Экспорт + + Для Каждого КлючИЗначение Из Результат.СвойстваСертификатовНаКлиенте Цикл + СертификатыВЛичномХранилище.Добавить(КлючИЗначение.Ключ); + КонецЦикла; + + Если Параметры = "ОбновитьНаСервере" Тогда + УстановитьПараметрыВСпискеСертификатовНаСервере() + Иначе + ТекущаяДата = ОбщегоНазначенияКлиент.ДатаУниверсальная(); + УстановитьПараметрыВСпискеСертификатов(ЭтотОбъект, СертификатыВЛичномХранилище, ТекущаяДата); + КонецЕсли; + +КонецПроцедуры + +&НаКлиентеНаСервереБезКонтекста +Процедура УстановитьПараметрыВСпискеСертификатов(Форма, СписокСертификатов, ТекущаяДата) + + ОбщегоНазначенияКлиентСервер.УстановитьПараметрДинамическогоСписка( + Форма.Сертификаты, "СертификатыВЛичномХранилище", СписокСертификатов, Истина); + ОбщегоНазначенияКлиентСервер.УстановитьПараметрДинамическогоСписка( + Форма.Сертификаты, "ТекущаяДата", ТекущаяДата, Истина); + +КонецПроцедуры + +&НаСервере +Процедура УстановитьПараметрыВСпискеСертификатовНаСервере() + + ЭлектроннаяПодписьСлужебный.ДополнитьСписокСертификатовВЛичномХранилищеНаСервере(СертификатыВЛичномХранилище); + УстановитьПараметрыВСпискеСертификатов(ЭтотОбъект, СертификатыВЛичномХранилище, ТекущаяУниверсальнаяДата()); + +КонецПроцедуры + &НаСервере Процедура УстановитьУсловноеОформление() @@ -524,28 +691,60 @@ КонецПроцедуры &НаКлиентеНаСервереБезКонтекста -Процедура СертификатыОбновитьОтбор(Форма, ТекущийПользователь) +Процедура СертификатыОбновитьОтбор(Форма, ТекущийПользователь = Неопределено) Элементы = Форма.Элементы; // Отбор сертификатов Все/Мои. ПоказатьСвои = Форма.СертификатыПоказать <> "ВсеСертификаты"; + Если ТекущийПользователь <> Неопределено Тогда + Если ПоказатьСвои Тогда + Форма.ПользовательОтбор = ТекущийПользователь; + Иначе + Форма.ПользовательОтбор = Неопределено; + КонецЕсли; + КонецЕсли; - ОбщегоНазначенияКлиентСервер.УстановитьПараметрДинамическогоСписка(Форма.Сертификаты, "ПользовательСертификата", - ?(ПоказатьСвои, ТекущийПользователь, Неопределено)); - ОбщегоНазначенияКлиентСервер.УстановитьПараметрДинамическогоСписка(Форма.Сертификаты, "НесколькоПользователей", - НСтр("ru = '<Несколько>'")); - - Форма.Сертификаты.Параметры.УстановитьЗначениеПараметра("ПользовательСертификата", - ?(ПоказатьСвои, ТекущийПользователь, Неопределено)); - + // Отбор по пользователю. Элементы.СертификатыПользователь.Видимость = Не ПоказатьСвои; + Элементы.ПользовательОтбор.Видимость = Не ПоказатьСвои; + Форма.Сертификаты.Параметры.УстановитьЗначениеПараметра("ПользовательСертификата", ?(ЗначениеЗаполнено( + Форма.ПользовательОтбор), Форма.ПользовательОтбор, Неопределено)); - Если Элементы.СертификатыПоказатьЗаявления.Видимость Тогда - // Отбор сертификатов по состоянию заявления. - ОтборПоСостояниюЗаявления = ЗначениеЗаполнено(Форма.СертификатыПоказатьЗаявления); + // Отбор по действующим. + ОтборПоДействующим = Не Форма.СертификатыПоказать = "МоиСертификатыСИстекающимСрокомДействия" + И Не Форма.СертификатыПоказать = "МоиЗаявленияВРаботе"; + + Элементы.СертификатыТолькоДействующие.Видимость = ОтборПоДействующим; + ОбщегоНазначенияКлиентСервер.УстановитьЭлементОтбораДинамическогоСписка(Форма.Сертификаты, + "Действует", Истина, , , ОтборПоДействующим И Форма.СертификатыТолькоДействующие); + + ОбщегоНазначенияКлиентСервер.УстановитьЭлементОтбораДинамическогоСписка(Форма.Сертификаты, + "СрокДействияСкороЗакончится", Истина, , ,Форма.СертификатыПоказать = "МоиСертификатыСИстекающимСрокомДействия"); + + Если Форма.СертификатыПоказать = "МоиЗаявленияВРаботе" Тогда + + Форма.СертификатыПоказатьЗаявления = Неопределено; + Форма.Элементы.СертификатыПоказатьЗаявления.Видимость = Ложь; + + СостоянияЗаявления = Новый Массив; + СостоянияЗаявления.Добавить(ПредопределенноеЗначение("Перечисление.СостоянияЗаявленияНаВыпускСертификата.Исполнено")); + СостоянияЗаявления.Добавить(ПредопределенноеЗначение("Перечисление.СостоянияЗаявленияНаВыпускСертификата.Отклонено")); + + ОтборПоСостояниюЗаявления = Неопределено; ОбщегоНазначенияКлиентСервер.УстановитьЭлементОтбораДинамическогоСписка(Форма.Сертификаты, - "СостояниеЗаявления", Форма.СертификатыПоказатьЗаявления, , , ОтборПоСостояниюЗаявления); + "СостояниеЗаявления", СостоянияЗаявления, ВидСравненияКомпоновкиДанных.НеВСписке, , Истина); + Иначе + + Форма.Элементы.СертификатыПоказатьЗаявления.Видимость = Форма.ЗаявлениеНаВыпускСертификатаДоступно + И Не Форма.СертификатыПоказать = "МоиСертификатыСИстекающимСрокомДействия"; + + Если Элементы.СертификатыПоказатьЗаявления.Видимость Тогда + // Отбор сертификатов по состоянию заявления. + ОтборПоСостояниюЗаявления = ЗначениеЗаполнено(Форма.СертификатыПоказатьЗаявления); + ОбщегоНазначенияКлиентСервер.УстановитьЭлементОтбораДинамическогоСписка(Форма.Сертификаты, + "СостояниеЗаявления", Форма.СертификатыПоказатьЗаявления, , , ОтборПоСостояниюЗаявления); + КонецЕсли; КонецЕсли; КонецПроцедуры @@ -962,8 +1161,6 @@ &НаСервере Процедура ЗаполнитьПрограммыИНастройки(ОбновитьПовтИсп = Ложь) - Элементы.Сертификаты.Обновить(); - Если ОбновитьПовтИсп Тогда ОбновитьПовторноИспользуемыеЗначения(); КонецЕсли; @@ -1177,4 +1374,62 @@ КонецПроцедуры +&НаКлиенте +Процедура УстановитьПодключитьСообщитьВерсиюКомпоненты(ПредложитьЗагрузить) + + ПараметрыПодключения = ОбщегоНазначенияКлиент.ПараметрыПодключенияКомпоненты(); + ПараметрыПодключения.ТекстПояснения = СтроковыеФункцииКлиентСервер.ПодставитьПараметрыВСтроку( + НСтр("ru = 'Требуется установка компоненты %1'"), "ExtraCryptoAPI"); + ПараметрыПодключения.ПредложитьЗагрузить = ПредложитьЗагрузить; + ПараметрыПодключения.ПредложитьУстановить = Истина; + + ОписаниеКомпоненты = ЭлектроннаяПодписьСлужебныйКлиентСервер.ОписаниеКомпоненты(); + + ОбщегоНазначенияКлиент.ПодключитьКомпонентуИзМакета( + Новый ОписаниеОповещения("СообщитьРезультатПодключенияКомпоненты", ЭтотОбъект), + ОписаниеКомпоненты.ИмяОбъекта, + ОписаниеКомпоненты.ПолноеИмяМакета, + ПараметрыПодключения); + +КонецПроцедуры + +&НаКлиенте +Процедура СообщитьРезультатПодключенияКомпоненты(Результат, ДополнительныеПараметры) Экспорт + + Если Результат.Подключено Тогда + Попытка + ОповещениеПослеПолученияВерсии = Новый ОписаниеОповещения("СообщитьВерсиюКомпонентыПослеПодключения", ЭтотОбъект); + Результат.ПодключаемыйМодуль.НачатьВызовПолучитьВерсию(ОповещениеПослеПолученияВерсии); + Возврат; + Исключение + ТекстОшибки = СтроковыеФункцииКлиентСервер.ПодставитьПараметрыВСтроку( + НСтр("ru = 'Не удалось определить версию компоненты. + | %1'"), КраткоеПредставлениеОшибки(ИнформацияОбОшибке())); + ПоказатьПредупреждение(, ТекстОшибки); + КонецПопытки; + Иначе + Если ПустаяСтрока(Результат.ОписаниеОшибки) Тогда + // Пользователь отказался от установки. + ТекстОшибки = СтроковыеФункцииКлиентСервер.ПодставитьПараметрыВСтроку( + НСтр("ru = 'Компонента %1 не установлена.'"), "ExtraCryptoAPI"); + ПоказатьПредупреждение(, ТекстОшибки); + Иначе + // Установка не удалась, описание ошибки в Результат.ОписаниеОшибки. + ТекстОшибки = СтроковыеФункцииКлиентСервер.ПодставитьПараметрыВСтроку( + НСтр("ru = 'Компонента %1 не установлена (%2).'"), "ExtraCryptoAPI", Результат.ОписаниеОшибки); + ПоказатьПредупреждение(, ТекстОшибки); + КонецЕсли; + КонецЕсли; + +КонецПроцедуры + +&НаКлиенте +Процедура СообщитьВерсиюКомпонентыПослеПодключения(Результат, Параметры, ДополнительныеПараметры) Экспорт + + ТекстСообщения = СтроковыеФункцииКлиентСервер.ПодставитьПараметрыВСтроку( + НСтр("ru = 'Установлена компонента %1 версии %2.'"), "ExtraCryptoAPI", Результат); + ПоказатьПредупреждение(, ТекстСообщения); + +КонецПроцедуры + #КонецОбласти diff --git a/SSL/src/CommonForms/ОписаниеИзмененийПрограммы/Form.form b/SSL/src/CommonForms/ОписаниеИзмененийПрограммы/Form.form index a124ddeaf..068c0ff23 100644 --- a/SSL/src/CommonForms/ОписаниеИзмененийПрограммы/Form.form +++ b/SSL/src/CommonForms/ОписаниеИзмененийПрограммы/Form.form @@ -104,7 +104,7 @@ true - CommonPicture.Информация + StdPicture.Information diff --git a/SSL/src/CommonForms/ОписаниеИзмененийПрограммы/Help/ru.html b/SSL/src/CommonForms/ОписаниеИзмененийПрограммы/Help/ru.html index a0cb235ed..ec56c9127 100644 --- a/SSL/src/CommonForms/ОписаниеИзмененийПрограммы/Help/ru.html +++ b/SSL/src/CommonForms/ОписаниеИзмененийПрограммы/Help/ru.html @@ -10,7 +10,7 @@
  • Если в программе после обновления версии еще проводится обработка данных, то для всех пользователей выводится предупреждение  Выполняются дополнительные процедуры обработки данных. В это время работа в программе временно ограничена, так как еще не завершен переход на новую версию.

Возможности для администратора

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

См. также:

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

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

    Онлайн-поддержка

    diff --git a/SSL/src/DataProcessors/ПанельАдминистрированияБСП/Forms/ИнтернетПоддержкаИСервисы/Module.bsl b/SSL/src/DataProcessors/ПанельАдминистрированияБСП/Forms/ИнтернетПоддержкаИСервисы/Module.bsl index f28e39b79..f0a7e0548 100644 --- a/SSL/src/DataProcessors/ПанельАдминистрированияБСП/Forms/ИнтернетПоддержкаИСервисы/Module.bsl +++ b/SSL/src/DataProcessors/ПанельАдминистрированияБСП/Forms/ИнтернетПоддержкаИСервисы/Module.bsl @@ -461,7 +461,7 @@ ПараметрыФормы = Новый Структура("ОткрытиеИзПанелиАдминистрирования", Истина); ОткрытьФорму( - "Обработка.РезультатыОбновленияПрограммы.Форма.ИндикацияХодаОтложенногоОбновленияИБ", + "Обработка.РезультатыОбновленияПрограммы.Форма.РезультатыОбновленияПрограммы", ПараметрыФормы); КонецПроцедуры diff --git a/SSL/src/DataProcessors/ПанельАдминистрированияБСП/Forms/Обслуживание/Help/ru.html b/SSL/src/DataProcessors/ПанельАдминистрированияБСП/Forms/Обслуживание/Help/ru.html index e1ee02602..a4c5f5eab 100644 --- a/SSL/src/DataProcessors/ПанельАдминистрированияБСП/Forms/Обслуживание/Help/ru.html +++ b/SSL/src/DataProcessors/ПанельАдминистрированияБСП/Forms/Обслуживание/Help/ru.html @@ -78,7 +78,7 @@ TD { Переход к просмотру списка установленных в программе исправлений (патчей).
  • Описание изменений программы
  • Просмотр списка изменений в установленной версии программы и рекомендаций по обновлению программы. -
  • Результаты обновления и дополнительная обработка данных
  • +
  • Результаты обновления и дополнительная обработка данных
  • Сведения о ходе обновления версии программы, отложенное выполнение дополнительных процедур обработки данных.
  • Детализировать ход обновления в журнале регистрации
  • При включенном флажке в журнал регистрации записываются выполняемые обработчики обновления с указанием времени выполнения.

    Оценка производительности

    diff --git a/SSL/src/DataProcessors/ПанельАдминистрированияБСП/Forms/Обслуживание/Module.bsl b/SSL/src/DataProcessors/ПанельАдминистрированияБСП/Forms/Обслуживание/Module.bsl index 32837f3c5..e3bc9db8d 100644 --- a/SSL/src/DataProcessors/ПанельАдминистрированияБСП/Forms/Обслуживание/Module.bsl +++ b/SSL/src/DataProcessors/ПанельАдминистрированияБСП/Forms/Обслуживание/Module.bsl @@ -70,12 +70,6 @@ Элементы.ГруппаУстановленныеИсправления.Видимость = Пользователи.ЭтоПолноправныйПользователь(); - Если СтандартныеПодсистемыСервер.ЭтоБазоваяВерсияКонфигурации() - И Не СтандартныеПодсистемыСервер.ДоступнаУстановкаПодписанныхРасширенийВБазовойВерсии() Тогда - Элементы.УстановкаОбновлений.Заголовок = НСтр("ru = 'Установка обновлений'"); - Элементы.УстановкаОбновлений.РасширеннаяПодсказка.Заголовок = НСтр( - "ru = 'Обновление программы из файла на локальном диске или в сетевой папке.'"); - КонецЕсли; Иначе Элементы.ГруппаУстановкаОбновлений.Видимость = Ложь; Элементы.ГруппаУстановленныеИсправления.Видимость = Ложь; @@ -162,7 +156,7 @@ &НаКлиенте Процедура ОтложеннаяОбработкаДанных(Команда) ПараметрыФормы = Новый Структура("ОткрытиеИзПанелиАдминистрирования", Истина); - ОткрытьФорму("Обработка.РезультатыОбновленияПрограммы.Форма.ИндикацияХодаОтложенногоОбновленияИБ", ПараметрыФормы); + ОткрытьФорму("Обработка.РезультатыОбновленияПрограммы.Форма.РезультатыОбновленияПрограммы", ПараметрыФормы); КонецПроцедуры #КонецОбласти diff --git a/SSL/src/DataProcessors/ПанельАдминистрированияБСП/Forms/ПечатныеФормыОтчетыИОбработки/Module.bsl b/SSL/src/DataProcessors/ПанельАдминистрированияБСП/Forms/ПечатныеФормыОтчетыИОбработки/Module.bsl index bf080aa2a..344bc482e 100644 --- a/SSL/src/DataProcessors/ПанельАдминистрированияБСП/Forms/ПечатныеФормыОтчетыИОбработки/Module.bsl +++ b/SSL/src/DataProcessors/ПанельАдминистрированияБСП/Forms/ПечатныеФормыОтчетыИОбработки/Module.bsl @@ -18,10 +18,6 @@ &НаСервере Процедура ПриСозданииНаСервере(Отказ, СтандартнаяОбработка) - // Настройки видимости при запуске. - Элементы.Расширения.Видимость = Не (СтандартныеПодсистемыСервер.ЭтоБазоваяВерсияКонфигурации() - И Не СтандартныеПодсистемыСервер.ДоступнаУстановкаПодписанныхРасширенийВБазовойВерсии()); - Если ОбщегоНазначения.ПодсистемаСуществует("СтандартныеПодсистемы.ДополнительныеОтчетыИОбработки") Тогда РазделениеВключено = ОбщегоНазначения.РазделениеВключено(); Элементы.ИспользоватьДополнительныеОтчетыИОбработки.Видимость = Не РазделениеВключено; diff --git a/SSL/src/DataProcessors/ПереносФайлов/Forms/Форма/Module.bsl b/SSL/src/DataProcessors/ПереносФайлов/Forms/Форма/Module.bsl index 9032501ed..a170aa162 100644 --- a/SSL/src/DataProcessors/ПереносФайлов/Forms/Форма/Module.bsl +++ b/SSL/src/DataProcessors/ПереносФайлов/Forms/Форма/Module.bsl @@ -501,8 +501,6 @@ | ВерсииФайлов.Автор КАК Автор, | ВерсииФайлов.Владелец.ВладелецФайла КАК ВладелецФайла, | ВерсииФайлов.ДатаСоздания КАК ДатаСоздания, - | ВерсииФайлов.Владелец.Зашифрован КАК Зашифрован, - | ВерсииФайлов.Владелец.ПодписанЭП КАК ПодписанЭП, | &Служебный КАК Служебный, | ВерсииФайлов.Владелец.Изменил КАК Изменил, | ВерсииФайлов.Размер КАК Размер, @@ -557,8 +555,6 @@ | СправочникФайлов.Автор, | СправочникФайлов.ВладелецФайла, | СправочникФайлов.ДатаСоздания, - | СправочникФайлов.Зашифрован, - | СправочникФайлов.ПодписанЭП, | &Служебный, | СправочникФайлов.Изменил, | СправочникФайлов.Размер, diff --git a/SSL/src/DataProcessors/ПодключениеОбсуждений/Forms/НастройкиСообщенийИзДругихПрограмм/Module.bsl b/SSL/src/DataProcessors/ПодключениеОбсуждений/Forms/НастройкиСообщенийИзДругихПрограмм/Module.bsl index 0e7791ae6..88619db2a 100644 --- a/SSL/src/DataProcessors/ПодключениеОбсуждений/Forms/НастройкиСообщенийИзДругихПрограмм/Module.bsl +++ b/SSL/src/DataProcessors/ПодключениеОбсуждений/Forms/НастройкиСообщенийИзДругихПрограмм/Module.bsl @@ -11,11 +11,6 @@ &НаСервере Процедура ПриСозданииНаСервере(Отказ, СтандартнаяОбработка) - ОписаниеСистемы = Новый СистемнаяИнформация; - Если ОбщегоНазначенияКлиентСервер.СравнитьВерсии("8.3.17.0", ОписаниеСистемы.ВерсияПриложения) > 0 Тогда - ВызватьИсключение НСтр("ru='Форма не предназначена для использования с платформой версии ниже 8.3.17'"); - КонецЕсли; - ТипыВнешнихСистем = ОбсужденияСлужебныйКлиентСервер.ТипыВнешнихСистем(); Телеграмм = СписокПодключений.ПолучитьЭлементы().Добавить(); diff --git a/SSL/src/DataProcessors/ПодключениеОбсуждений/Forms/СозданиеБотаВКонтакте/Module.bsl b/SSL/src/DataProcessors/ПодключениеОбсуждений/Forms/СозданиеБотаВКонтакте/Module.bsl index 7754ba737..803dabac9 100644 --- a/SSL/src/DataProcessors/ПодключениеОбсуждений/Forms/СозданиеБотаВКонтакте/Module.bsl +++ b/SSL/src/DataProcessors/ПодключениеОбсуждений/Forms/СозданиеБотаВКонтакте/Module.bsl @@ -68,13 +68,13 @@ &НаСервере Процедура АктивироватьСервер() - ПараметрыИнтеграции = Новый Структура; - ПараметрыИнтеграции.Вставить("Идентификатор", Параметры.Идентификатор); - ПараметрыИнтеграции.Вставить("Ключ", Наименование); - ПараметрыИнтеграции.Вставить("Тип", ОбсужденияСлужебныйКлиентСервер.ТипыВнешнихСистем().ВКонтакте); - ПараметрыИнтеграции.Вставить("Участники", Участники.Выгрузить(,"Пользователь").ВыгрузитьКолонку("Пользователь")); - ПараметрыИнтеграции.Вставить("token", Токен); - ПараметрыИнтеграции.Вставить("groupId", ИдГруппы); + ПараметрыИнтеграции = ОбсужденияСлужебный.ПараметрыИнтеграции(); + ПараметрыИнтеграции.Идентификатор = Параметры.Идентификатор; + ПараметрыИнтеграции.Ключ = Наименование; + ПараметрыИнтеграции.Тип = ОбсужденияСлужебныйКлиентСервер.ТипыВнешнихСистем().ВКонтакте; + ПараметрыИнтеграции.Участники = Участники.Выгрузить(,"Пользователь").ВыгрузитьКолонку("Пользователь"); + ПараметрыИнтеграции.token = Токен; + ПараметрыИнтеграции.groupId = ИдГруппы; Попытка ОбсужденияСлужебный.СоздатьИзменитьИнтеграцию(ПараметрыИнтеграции); diff --git a/SSL/src/DataProcessors/ПодключениеОбсуждений/Forms/СозданиеБотаТелеграм/Module.bsl b/SSL/src/DataProcessors/ПодключениеОбсуждений/Forms/СозданиеБотаТелеграм/Module.bsl index da5769f8d..076c45b7d 100644 --- a/SSL/src/DataProcessors/ПодключениеОбсуждений/Forms/СозданиеБотаТелеграм/Module.bsl +++ b/SSL/src/DataProcessors/ПодключениеОбсуждений/Forms/СозданиеБотаТелеграм/Module.bsl @@ -61,12 +61,12 @@ &НаСервере Процедура АктивироватьСервер() - ПараметрыИнтеграции = Новый Структура; - ПараметрыИнтеграции.Вставить("Идентификатор", Параметры.Идентификатор); - ПараметрыИнтеграции.Вставить("Ключ", Наименование); - ПараметрыИнтеграции.Вставить("Тип", ОбсужденияСлужебныйКлиентСервер.ТипыВнешнихСистем().Телеграм); - ПараметрыИнтеграции.Вставить("Участники", Участники.Выгрузить(,"Пользователь").ВыгрузитьКолонку("Пользователь")); - ПараметрыИнтеграции.Вставить("token", Токен); + ПараметрыИнтеграции = ОбсужденияСлужебный.ПараметрыИнтеграции(); + ПараметрыИнтеграции.Идентификатор = Параметры.Идентификатор; + ПараметрыИнтеграции.Ключ = Наименование; + ПараметрыИнтеграции.Тип = ОбсужденияСлужебныйКлиентСервер.ТипыВнешнихСистем().Телеграм; + ПараметрыИнтеграции.Участники = Участники.Выгрузить(,"Пользователь").ВыгрузитьКолонку("Пользователь"); + ПараметрыИнтеграции.token = Токен; Попытка ОбсужденияСлужебный.СоздатьИзменитьИнтеграцию(ПараметрыИнтеграции); diff --git a/SSL/src/DataProcessors/ПоискИУдалениеДублей/Forms/ПоискДублей/Form.form b/SSL/src/DataProcessors/ПоискИУдалениеДублей/Forms/ПоискДублей/Form.form index bbd73c64d..1a18759b3 100644 --- a/SSL/src/DataProcessors/ПоискИУдалениеДублей/Forms/ПоискДублей/Form.form +++ b/SSL/src/DataProcessors/ПоискИУдалениеДублей/Forms/ПоискДублей/Form.form @@ -940,7 +940,7 @@ Auto true - CommonPicture.Информация + StdPicture.Information Left true @@ -4266,7 +4266,7 @@ true - CommonPicture.Информация + StdPicture.Information diff --git a/SSL/src/DataProcessors/ПоискИУдалениеДублей/Forms/ПоискДублей/Module.bsl b/SSL/src/DataProcessors/ПоискИУдалениеДублей/Forms/ПоискДублей/Module.bsl index fb95bc224..65469bc9b 100644 --- a/SSL/src/DataProcessors/ПоискИУдалениеДублей/Forms/ПоискДублей/Module.bsl +++ b/SSL/src/DataProcessors/ПоискИУдалениеДублей/Forms/ПоискДублей/Module.bsl @@ -1723,7 +1723,8 @@ ПараметрыПроцедуры.Вставить("СпособУдаления", СпособУдаления); Иначе - ВызватьИсключение НСтр("ru = 'Некорректная операция в НайтиИУдалитьДубли.'"); + ВызватьИсключение СтроковыеФункцииКлиентСервер.ПодставитьПараметрыВСтроку( + НСтр("ru = 'Некорректная операция %1.'"), Строка(ТекущаяСтраница)); КонецЕсли; НастройкиЗапуска = ДлительныеОперации.ПараметрыВыполненияВФоне(УникальныйИдентификатор); diff --git a/SSL/src/DataProcessors/ПолнотекстовыйПоискВДанных/Forms/ВыборОбластиПоиска/Module.bsl b/SSL/src/DataProcessors/ПолнотекстовыйПоискВДанных/Forms/ВыборОбластиПоиска/Module.bsl index 9b5a35d3c..e5cfbb561 100644 --- a/SSL/src/DataProcessors/ПолнотекстовыйПоискВДанных/Forms/ВыборОбластиПоиска/Module.bsl +++ b/SSL/src/DataProcessors/ПолнотекстовыйПоискВДанных/Forms/ВыборОбластиПоиска/Module.bsl @@ -707,8 +707,8 @@ КонецПроцедуры // Параметры: -// КоллекцияЭлементовДерева - ДанныеФормыДерева -// - ДанныеФормыЭлементДерева: +// ЭлементДеревоРазделовПоиска - ДанныеФормыДерево +// - ДанныеФормыЭлементДерева: // * Пометка - Число - обязательный реквизит дерева. // * ЭтоОбъектМетаданных - Булево - обязательный реквизит дерева. // ЗначениеПометки - Число - устанавливаемое значение. diff --git a/SSL/src/DataProcessors/ПомощникИнтерактивногоОбменаДанными/Forms/Форма/Form.form b/SSL/src/DataProcessors/ПомощникИнтерактивногоОбменаДанными/Forms/Форма/Form.form index cd0366d40..10eb241de 100644 --- a/SSL/src/DataProcessors/ПомощникИнтерактивногоОбменаДанными/Forms/Форма/Form.form +++ b/SSL/src/DataProcessors/ПомощникИнтерактивногоОбменаДанными/Forms/Форма/Form.form @@ -1563,7 +1563,7 @@ Auto true - CommonPicture.Информация + StdPicture.Information Left true diff --git a/SSL/src/DataProcessors/ПомощникИнтерактивногоОбменаДанными/Help/ru.html b/SSL/src/DataProcessors/ПомощникИнтерактивногоОбменаДанными/Help/ru.html index d776df2f0..954f73190 100644 --- a/SSL/src/DataProcessors/ПомощникИнтерактивногоОбменаДанными/Help/ru.html +++ b/SSL/src/DataProcessors/ПомощникИнтерактивногоОбменаДанными/Help/ru.html @@ -9,7 +9,7 @@
  • Автоматическое сопоставление выполняется по заданным по умолчанию полям сопоставления, при этом соблюдаются самые строгие правила сопоставления. Рекомендуется выполнить проверку результатов автоматического сопоставления данных. В списке выводится:
    • Данные, Всего принято, шт.
      -
    •  - имеются вопросы по сопоставлению объектов; +
    •  - имеются вопросы по сопоставлению объектов;
    • В этой программе, шт.
      diff --git a/SSL/src/DataProcessors/ПомощникСозданияАвтономногоРабочегоМеста/Forms/НастройкаНаСторонеСервиса/Form.form b/SSL/src/DataProcessors/ПомощникСозданияАвтономногоРабочегоМеста/Forms/НастройкаНаСторонеСервиса/Form.form index 90049b2fa..d834c283f 100644 --- a/SSL/src/DataProcessors/ПомощникСозданияАвтономногоРабочегоМеста/Forms/НастройкаНаСторонеСервиса/Form.form +++ b/SSL/src/DataProcessors/ПомощникСозданияАвтономногоРабочегоМеста/Forms/НастройкаНаСторонеСервиса/Form.form @@ -429,7 +429,7 @@ true - CommonPicture.Информация + StdPicture.Information diff --git a/SSL/src/DataProcessors/ПомощникСозданияАвтономногоРабочегоМеста/Forms/НастройкаНаСторонеСервиса/Module.bsl b/SSL/src/DataProcessors/ПомощникСозданияАвтономногоРабочегоМеста/Forms/НастройкаНаСторонеСервиса/Module.bsl index 01c96a31c..8d3ca4bdb 100644 --- a/SSL/src/DataProcessors/ПомощникСозданияАвтономногоРабочегоМеста/Forms/НастройкаНаСторонеСервиса/Module.bsl +++ b/SSL/src/DataProcessors/ПомощникСозданияАвтономногоРабочегоМеста/Forms/НастройкаНаСторонеСервиса/Module.bsl @@ -107,6 +107,8 @@ ДлительнаяОперация = Ложь; ДлительнаяОперацияЗавершена = Истина; + ИдентификаторЗадания = Неопределено; + ПерейтиДалее(); Иначе @@ -663,8 +665,18 @@ &НаКлиенте Процедура ОтменитьСозданиеАвтономногоРабочегоМеста(Результат, ДополнительныеПараметры) Экспорт + Если ЗначениеЗаполнено(ИдентификаторЗадания) Тогда + + УзелОбмена = ОтменитьВыполнениеЗадания(ИдентификаторЗадания, Объект.АвтономноеРабочееМесто); + Если ЗначениеЗаполнено(УзелОбмена) Тогда + Объект.АвтономноеРабочееМесто = УзелОбмена; + КонецЕсли; + + КонецЕсли; + Если Объект.АвтономноеРабочееМесто <> Неопределено Тогда ОбменДаннымиВызовСервера.УдалитьНастройкуСинхронизации(Объект.АвтономноеРабочееМесто); + Оповестить("Удаление_АвтономноеРабочееМесто"); КонецЕсли; КонецПроцедуры @@ -778,6 +790,33 @@ КонецФункции +&НаСервереБезКонтекста +Функция ОтменитьВыполнениеЗадания(Знач ИдентификаторЗадания, Знач УзелОбмена) + + ДлительныеОперации.ОтменитьВыполнениеЗадания(ИдентификаторЗадания); + + Если Не ЗначениеЗаполнено(УзелОбмена) Тогда + + ИмяПланаОбмена = АвтономнаяРаботаСлужебный.ПланОбменаАвтономнойРаботы(); + УзелОбмена = ПланыОбмена[ИмяПланаОбмена].НайтиПоКоду(Строка(ИдентификаторЗадания)); + + КонецЕсли; + + Если ЗначениеЗаполнено(УзелОбмена) Тогда + + Если ОбщегоНазначения.ПодсистемаСуществует("ТехнологияСервиса.БазоваяФункциональность") Тогда + МодульОбщегоНазначенияБТС = ОбщегоНазначения.ОбщийМодуль("ОбщегоНазначенияБТС"); + МодульОбщегоНазначенияБТС.Пауза(2); + КонецЕсли; + + АвтономнаяРаботаСлужебный.УдалитьНеактуальныеСообщенияОбмена(УзелОбмена); + + КонецЕсли; + + Возврат УзелОбмена; + +КонецФункции + &НаСервере Функция ПользователиСинхронизации() diff --git a/SSL/src/DataProcessors/ПомощникСозданияАвтономногоРабочегоМеста/ObjectModule.bsl b/SSL/src/DataProcessors/ПомощникСозданияАвтономногоРабочегоМеста/ObjectModule.bsl index bcc8492ae..f6063f419 100644 --- a/SSL/src/DataProcessors/ПомощникСозданияАвтономногоРабочегоМеста/ObjectModule.bsl +++ b/SSL/src/DataProcessors/ПомощникСозданияАвтономногоРабочегоМеста/ObjectModule.bsl @@ -87,7 +87,7 @@ ВызватьИсключение; КонецПопытки; - ЗаписатьПакетУстановкиВоВременноеХранилище( + ЗаписатьНачальныйОбразАвтономногоРабочегоМеста( АдресВременногоХранилищаНачальногоОбраза, АдресВременногоХранилищаИнформацииОПакетеУстановки); @@ -97,10 +97,10 @@ #Область СлужебныеПроцедурыИФункции -Процедура ЗаписатьПакетУстановкиВоВременноеХранилище( +Процедура ЗаписатьНачальныйОбразАвтономногоРабочегоМеста( АдресВременногоХранилищаНачальногоОбраза, АдресВременногоХранилищаИнформацииОПакетеУстановки) - + КодУзлаАвтономногоРабочегоМеста = ОбщегоНазначения.ЗначениеРеквизитаОбъекта(АвтономноеРабочееМесто, "Код"); КаталогНачальногоОбраза = ОбщегоНазначенияКлиентСервер.ПолучитьПолноеИмяФайла( @@ -113,32 +113,74 @@ СтрЗаменить("Replica_{GUID}.zip", "GUID", КодУзлаАвтономногоРабочегоМеста)); ИдентификаторФайлаПакетаУстановки = ОбменДаннымиСервер.ПоместитьФайлВХранилище(ИмяФайлаПакетаУстановки); - КаталогУстановки = ОбщегоНазначенияКлиентСервер.ПолучитьПолноеИмяФайла(КаталогНачальногоОбраза, "1"); - КаталогАрхива = ОбщегоНазначенияКлиентСервер.ПолучитьПолноеИмяФайла(КаталогУстановки, "InfoBase"); + ПараметрыЗаписи = СтруктураПараметровЗаписиПакетаУстановки(); + ПараметрыЗаписи.АдресНачальногоОбраза = АдресВременногоХранилищаНачальногоОбраза; + ПараметрыЗаписи.АдресИнформацииОПакетеУстановки = АдресВременногоХранилищаИнформацииОПакетеУстановки; + ПараметрыЗаписи.КаталогНачальногоОбраза = КаталогНачальногоОбраза; + ПараметрыЗаписи.ИдентификаторКаталогаНачальногоОбраза = ИдентификаторКаталогаНачальногоОбраза; + ПараметрыЗаписи.ИмяФайлаПакетаУстановки = ИмяФайлаПакетаУстановки; + ПараметрыЗаписи.ИдентификаторФайлаПакетаУстановки = ИдентификаторФайлаПакетаУстановки; - ИмяФайлаДанныхНачальногоОбраза = ОбщегоНазначенияКлиентСервер.ПолучитьПолноеИмяФайла(КаталогАрхива, "data.xml"); + Попытка + + ЗаписатьПакетУстановкиВоВременноеХранилище(ПараметрыЗаписи); + + Исключение + + ЗаписьЖурналаРегистрации( + СобытиеЖурналаРегистрации(), + УровеньЖурналаРегистрации.Ошибка, + , + , + ПодробноеПредставлениеОшибки(ИнформацияОбОшибке())); + + УдаляемыеФайлы = Новый Массив(); + УдаляемыеФайлы.Добавить( + СтруктураПараметровУдаленияФайла(КаталогНачальногоОбраза, ИдентификаторКаталогаНачальногоОбраза)); + УдаляемыеФайлы.Добавить( + СтруктураПараметровУдаленияФайла(ИмяФайлаПакетаУстановки, ИдентификаторФайлаПакетаУстановки)); + + Для Каждого ПараметрыУдаления Из УдаляемыеФайлы Цикл + + Попытка + ОбменДаннымиСервер.ПолучитьФайлИзХранилища(ПараметрыУдаления.Идентификатор); + УдалитьФайлы(ПараметрыУдаления.ИмяФайла); + Исключение + ЗаписьЖурналаРегистрации( + СобытиеЖурналаРегистрации(), + УровеньЖурналаРегистрации.Ошибка, + , + , + ПодробноеПредставлениеОшибки(ИнформацияОбОшибке())); + КонецПопытки; + + КонецЦикла; + + ВызватьИсключение; + + КонецПопытки; + +КонецПроцедуры + +Процедура ЗаписатьПакетУстановкиВоВременноеХранилище(ПараметрыЗаписи) + + КаталогУстановки = ОбщегоНазначенияКлиентСервер.ПолучитьПолноеИмяФайла(ПараметрыЗаписи.КаталогНачальногоОбраза, "1"); + КаталогАрхива = ОбщегоНазначенияКлиентСервер.ПолучитьПолноеИмяФайла(КаталогУстановки, "InfoBase"); СоздатьКаталог(КаталогАрхива); // Создаем начальный образ автономного рабочего места. СтрокаСоединения = "File = ""&КаталогИнформационнойБазы"""; - СтрокаСоединения = СтрЗаменить(СтрокаСоединения, "&КаталогИнформационнойБазы", СокрЛП(КаталогНачальногоОбраза)); + СтрокаСоединения = СтрЗаменить( + СтрокаСоединения, "&КаталогИнформационнойБазы", СокрЛП(ПараметрыЗаписи.КаталогНачальногоОбраза)); - ПотокПриемник = ФайловыеПотоки.Создать(ИмяФайлаДанныхНачальногоОбраза); - - ВыгруженныеДанные = Новый ЗаписьXML; - ВыгруженныеДанные.ОткрытьПоток(ПотокПриемник); - - ВыгруженныеДанные.ЗаписатьОбъявлениеXML(); - ВыгруженныеДанные.ЗаписатьНачалоЭлемента("Data"); - ВыгруженныеДанные.ЗаписатьСоответствиеПространстваИмен("xsd", "http://www.w3.org/2001/XMLSchema"); - ВыгруженныеДанные.ЗаписатьСоответствиеПространстваИмен("xsi", "http://www.w3.org/2001/XMLSchema-instance"); - ВыгруженныеДанные.ЗаписатьСоответствиеПространстваИмен("v8", "http://v8.1c.ru/data"); + ПараметрыВыгрузки = СтруктураПараметровВыгрузкиДанных(); + ПараметрыВыгрузки.КаталогАрхива = КаталогАрхива; АвтономноеРабочееМестоОбъект = АвтономноеРабочееМесто.ПолучитьОбъект(); - АвтономноеРабочееМестоОбъект.ДополнительныеСвойства.Вставить("ВыгруженныеДанные", ВыгруженныеДанные); АвтономноеРабочееМестоОбъект.ДополнительныеСвойства.Вставить("РазмещатьФайлыВНачальномОбразе"); АвтономноеРабочееМестоОбъект.ДополнительныеСвойства.Вставить("СвойстваМетаданных", Новый Соответствие); + АвтономноеРабочееМестоОбъект.ДополнительныеСвойства.Вставить("ПараметрыВыгрузки", ПараметрыВыгрузки); // Обновляем повторно используемые значения Механизма регистрации объектов. ОбменДаннымиСлужебный.ПроверитьКэшМеханизмаРегистрацииОбъектов(); @@ -153,7 +195,9 @@ // Хранить настройки для автономного рабочего места в ИБ небезопасно. Константы.НастройкиПодчиненногоУзлаРИБ.Установить(""); - ВыгруженныеДанные = Неопределено; + + ПараметрыВыгрузки.ВыгруженныеДанные = Неопределено; + ПараметрыВыгрузки.ПотокПриемник = Неопределено; // Удаляем автономное рабочее место АвтономнаяРаботаСлужебный.УдалитьАвтономноеРабочееМесто(Новый Структура("АвтономноеРабочееМесто", АвтономноеРабочееМесто), ""); @@ -161,14 +205,10 @@ ВызватьИсключение; КонецПопытки; - ВыгруженныеДанные.ЗаписатьКонецЭлемента(); // Data - ВыгруженныеДанные.Закрыть(); - - ПотокПриемник.Закрыть(); - ПотокПриемник = Неопределено; + АвтономнаяРаботаСлужебный.ЗакрытьЗаписьДанныхНачальногоОбраза(АвтономноеРабочееМестоОбъект, Истина); ИмяФайлаНачальногоОбраза = ОбщегоНазначенияКлиентСервер.ПолучитьПолноеИмяФайла( - КаталогНачальногоОбраза, "1Cv8.1CD"); + ПараметрыЗаписи.КаталогНачальногоОбраза, "1Cv8.1CD"); ИмяФайлаНачальногоОбразаВКаталогеАрхива = ОбщегоНазначенияКлиентСервер.ПолучитьПолноеИмяФайла( КаталогАрхива, "1Cv8.1CD"); @@ -184,7 +224,7 @@ ПереместитьФайл(ИмяФайлаНачальногоОбраза, ИмяФайлаНачальногоОбразаВКаталогеАрхива); - Архиватор = Новый ЗаписьZipФайла(ИмяФайлаПакетаУстановки, , , , УровеньСжатияZIP.Максимальный); + Архиватор = Новый ЗаписьZipФайла(ПараметрыЗаписи.ИмяФайлаПакетаУстановки, , , , УровеньСжатияZIP.Максимальный); Архиватор.Добавить( ОбщегоНазначенияКлиентСервер.ПолучитьПолноеИмяФайла(КаталогУстановки, "*.*"), РежимСохраненияПутейZIP.СохранятьОтносительныеПути, @@ -192,8 +232,8 @@ Архиватор.Записать(); Попытка - ОбменДаннымиСервер.ПолучитьФайлИзХранилища(ИдентификаторКаталогаНачальногоОбраза); - УдалитьФайлы(КаталогНачальногоОбраза); + ОбменДаннымиСервер.ПолучитьФайлИзХранилища(ПараметрыЗаписи.ИдентификаторКаталогаНачальногоОбраза); + УдалитьФайлы(ПараметрыЗаписи.КаталогНачальногоОбраза); Исключение ЗаписьЖурналаРегистрации( СобытиеЖурналаРегистрации(), @@ -203,26 +243,29 @@ ПодробноеПредставлениеОшибки(ИнформацияОбОшибке())); КонецПопытки; - ФайлПакетаУстановки = Новый Файл(ИмяФайлаПакетаУстановки); + ФайлПакетаУстановки = Новый Файл(ПараметрыЗаписи.ИмяФайлаПакетаУстановки); ДанныеФайла = Неопределено; ИнформацияОПакетеУстановки = Новый Структура; ИнформацияОПакетеУстановки.Вставить("РазмерФайлаПакетаУстановки", ФайлПакетаУстановки.Размер()); - ИнформацияОПакетеУстановки.Вставить("ИмяФайлаПакетаУстановки", АвтономнаяРаботаСлужебный.ИмяФайлаПакетаУстановки()); + ИнформацияОПакетеУстановки.Вставить("ИмяФайлаПакетаУстановки", АвтономнаяРаботаСлужебный.ИмяФайлаПакетаУстановки()); Если АвтономнаяРаботаСлужебный.ПоддерживаетсяПередачаБольшихФайлов() Тогда + ДанныеФайла = Новый Структура; - ДанныеФайла.Вставить("ИдентификаторФайлаПакетаУстановки", ИдентификаторФайлаПакетаУстановки); + ДанныеФайла.Вставить("ИдентификаторФайлаПакетаУстановки", ПараметрыЗаписи.ИдентификаторФайлаПакетаУстановки); ДанныеФайла.Вставить("ИмяФайлаИлиАдрес", ФайлПакетаУстановки.Имя); ДанныеФайла.Вставить("ПутьФайлаWindows", Константы.КаталогСообщенийОбменаДаннымиДляWindows.Получить()); ДанныеФайла.Вставить("ПутьФайлаLinux", Константы.КаталогСообщенийОбменаДаннымиДляLinux.Получить()); + Иначе - ДанныеФайла = Новый ДвоичныеДанные(ИмяФайлаПакетаУстановки); + + ДанныеФайла = Новый ДвоичныеДанные(ПараметрыЗаписи.ИмяФайлаПакетаУстановки); Попытка - ОбменДаннымиСервер.ПолучитьФайлИзХранилища(ИдентификаторФайлаПакетаУстановки); - УдалитьФайлы(ИмяФайлаПакетаУстановки); + ОбменДаннымиСервер.ПолучитьФайлИзХранилища(ПараметрыЗаписи.ИдентификаторФайлаПакетаУстановки); + УдалитьФайлы(ПараметрыЗаписи.ИмяФайлаПакетаУстановки); Исключение ЗаписьЖурналаРегистрации( СобытиеЖурналаРегистрации(), @@ -231,10 +274,11 @@ , ПодробноеПредставлениеОшибки(ИнформацияОбОшибке())); КонецПопытки; + КонецЕсли; - ПоместитьВоВременноеХранилище(ДанныеФайла, АдресВременногоХранилищаНачальногоОбраза); - ПоместитьВоВременноеХранилище(ИнформацияОПакетеУстановки, АдресВременногоХранилищаИнформацииОПакетеУстановки); + ПоместитьВоВременноеХранилище(ДанныеФайла, ПараметрыЗаписи.АдресНачальногоОбраза); + ПоместитьВоВременноеХранилище(ИнформацияОПакетеУстановки, ПараметрыЗаписи.АдресИнформацииОПакетеУстановки); КонецПроцедуры @@ -341,8 +385,14 @@ Функция СоздатьАвтономноеРабочееМесто() + ТекущийСеансИнформационнойБазы = ПолучитьТекущийСеансИнформационнойБазы(); + ФоновоеЗадание = ТекущийСеансИнформационнойБазы.ПолучитьФоновоеЗадание(); + ИдентификаторУзла = ?(ФоновоеЗадание = Неопределено, + Новый УникальныйИдентификатор, + ФоновоеЗадание.УникальныйИдентификатор); + Результат = ПланыОбмена[АвтономнаяРаботаСлужебный.ПланОбменаАвтономнойРаботы()].СоздатьУзел(); - Результат.Код = Строка(Новый УникальныйИдентификатор); + Результат.Код = Строка(ИдентификаторУзла); Возврат Результат; @@ -378,6 +428,47 @@ КонецФункции +Функция СтруктураПараметровЗаписиПакетаУстановки() + + ПараметрыЗаписи = Новый Структура(); + ПараметрыЗаписи.Вставить("АдресНачальногоОбраза", Неопределено); + ПараметрыЗаписи.Вставить("АдресИнформацииОПакетеУстановки", Неопределено); + ПараметрыЗаписи.Вставить("КаталогНачальногоОбраза", Неопределено); + ПараметрыЗаписи.Вставить("ИдентификаторКаталогаНачальногоОбраза", Неопределено); + ПараметрыЗаписи.Вставить("ИмяФайлаПакетаУстановки", Неопределено); + ПараметрыЗаписи.Вставить("ИдентификаторФайлаПакетаУстановки", Неопределено); + + Возврат ПараметрыЗаписи; + +КонецФункции + +Функция СтруктураПараметровВыгрузкиДанных() + + ПараметрыВыгрузки = Новый Структура(); + ПараметрыВыгрузки.Вставить("ИспользоватьОптимизированнуюЗапись", + АвтономнаяРаботаСлужебный.ИспользоватьОптимизированнуюЗаписьСозданияАвтономногоРабочегоМеста()); + ПараметрыВыгрузки.Вставить("ВыгруженныеДанные", Неопределено); + ПараметрыВыгрузки.Вставить("ПотокПриемник", Неопределено); + ПараметрыВыгрузки.Вставить("КаталогАрхива", Неопределено); + ПараметрыВыгрузки.Вставить("ИмяФайлаДанных", Неопределено); + ПараметрыВыгрузки.Вставить("НомерФайла", 0); + ПараметрыВыгрузки.Вставить("ЗаписаноЭлементов", 0); + ПараметрыВыгрузки.Вставить("ЗаписаноЭлементовПослеПроверкиРазмераФайла", 0); + ПараметрыВыгрузки.Вставить("МаксимальноеКоличествоЭлементов", 50000); + ПараметрыВыгрузки.Вставить("КоличествоЭлементовПроверкиРазмераФайла", 1000); + ПараметрыВыгрузки.Вставить("МаксимальныйРазмерФайла", 1024 * 1024 * 100); // 100 Мб + + Возврат ПараметрыВыгрузки; + +КонецФункции + +Функция СтруктураПараметровУдаленияФайла(ИмяФайла, Идентификатор) + + Возврат Новый ФиксированнаяСтруктура( + "ИмяФайла, Идентификатор", ИмяФайла, Идентификатор); + +КонецФункции + #КонецОбласти #Иначе diff --git a/SSL/src/DataProcessors/ПомощникСозданияОбменаДанными/Forms/ИзменениеПрефиксаУзлаИБ/Form.form b/SSL/src/DataProcessors/ПомощникСозданияОбменаДанными/Forms/ИзменениеПрефиксаУзлаИБ/Form.form new file mode 100644 index 000000000..740ab54e0 --- /dev/null +++ b/SSL/src/DataProcessors/ПомощникСозданияОбменаДанными/Forms/ИзменениеПрефиксаУзлаИБ/Form.form @@ -0,0 +1,1689 @@ + + + + <key>ru</key> + <value>Изменение префикса</value> + + + ГруппаКомпоновки + 46 + + ПанельОсновная + 3 + + СтраницаУстановкаПрефикса + 10 + + Группа2 + 204 + + КартинкаПредупреждениеНовыйПрефикс + 201 + true + true + + true + + + КартинкаПредупреждениеНовыйПрефиксРасширеннаяПодсказка + 203 + Label + true + true + + Left + + + + КартинкаПредупреждениеНовыйПрефиксКонтекстноеМеню + 202 + true + + true + true + Top + + + CommonPicture.Предупреждение32 + + + + + ДекорацияИнформация + 198 + + <key>ru</key> + <value><colorstyle -16>Внимание!</> + +Будут перенумерованы элементы справочников и документов (в разрезе организаций) с максимальным номером, которые поддерживают механизм префиксации.</value> + + true + true + + true + + + ДекорацияИнформацияРасширеннаяПодсказка + 200 + Label + true + true + + Left + + + + ДекорацияИнформацияКонтекстноеМеню + 199 + true + + true + Label + true + true + + Left + + + true + true + + true + + + Группа2РасширеннаяПодсказка + 205 + Label + true + true + + Left + + + UsualGroup + + HorizontalIfPossible + Auto + true + true + Auto + Auto + + + + ДекорацияОтступ1 + 212 + + <key>ru</key> + <value>Декорация отступ1</value> + + true + true + + true + + + ДекорацияОтступ1РасширеннаяПодсказка + 214 + Label + true + true + + Left + + + + ДекорацияОтступ1КонтекстноеМеню + 213 + true + + true + 1 + true + + AsFileRef + + + + НовыйПрефиксИБ + 167 + true + true + + true + + + НовыйПрефиксИБ + + + НовыйПрефиксИБРасширеннаяПодсказка + 169 + Label + true + true + + Left + + + + НовыйПрефиксИБКонтекстноеМеню + 168 + true + + InputField + Enter + true + Left + true + + true + true + true + true + true + true + Normal + + + true + true + + true + + + <key>ru</key> + <value>Установка префикса</value> + + + СтраницаУстановкаПрефиксаРасширеннаяПодсказка + 104 + Label + true + true + + Left + + + Page + + Vertical + auto + false + + + + СтраницаОжидание + 11 + + ДлительнаяОперация48 + 170 + + <key>ru</key> + <value>Длительная операция48</value> + + true + true + + true + + + ДлительнаяОперация48РасширеннаяПодсказка + 172 + Label + true + true + + Left + + + + ДлительнаяОперация48КонтекстноеМеню + 171 + true + + true + true + Center + + + CommonPicture.ДлительнаяОперация48 + + + + + ДекорацияСообщениеПриОжидании + 173 + + <key>ru</key> + <value>Выполняется перенумерация. + +Операция может занять продолжительное время, пожалуйста, подождите... +</value> + + true + true + + true + + + ДекорацияСообщениеПриОжиданииРасширеннаяПодсказка + 175 + Label + true + true + + Left + + + + ДекорацияСообщениеПриОжиданииКонтекстноеМеню + 174 + true + + Label + true + true + + Left + + + true + true + + true + + + <key>ru</key> + <value>Страница ожидание</value> + + + СтраницаОжиданиеРасширеннаяПодсказка + 106 + Label + true + true + + Left + + + Page + + AlwaysHorizontal + auto + false + + + + СтраницаОшибка + 12 + + КартинкаПредупреждениеОшибка + 176 + + <key>ru</key> + <value>Картинка предупреждение ошибка</value> + + true + true + + true + + + КартинкаПредупреждениеОшибкаРасширеннаяПодсказка + 178 + Label + true + true + + Left + + + + КартинкаПредупреждениеОшибкаКонтекстноеМеню + 177 + true + + true + true + Top + + + CommonPicture.Предупреждение32 + + + + + Группа1 + 222 + + ДекорацияОшибка + 224 + + <key>ru</key> + <value>Ошибка</value> + + true + true + + true + + + ДекорацияОшибкаРасширеннаяПодсказка + 226 + Label + true + true + + Left + + + + ДекорацияОшибкаКонтекстноеМеню + 225 + true + + true + Label + true + true + + Left + + + + АктивныеПользователи + 227 + true + true + + true + + + АктивныеПользователиРасширеннаяПодсказка + 228 + Label + true + true + + Left + + + Hyperlink + Form.Command.АктивныеПользователи + Normal + Auto + true + true + UserCmds + Auto + + + ДекорацияПояснениеПоОшибке + 229 + + <key>ru</key> + <value>Пояснение</value> + + true + true + + true + + + ДекорацияПояснениеПоОшибкеРасширеннаяПодсказка + 231 + Label + true + true + + Left + + + + ДекорацияПояснениеПоОшибкеКонтекстноеМеню + 230 + true + + Label + 2 + true + + Left + Bottom + + + true + true + + true + + + Группа1РасширеннаяПодсказка + 223 + Label + true + true + + Left + + + UsualGroup + + Vertical + Auto + true + true + Auto + Auto + + + true + true + + true + + + <key>ru</key> + <value>Ошибка</value> + + + СтраницаОшибкаРасширеннаяПодсказка + 108 + Label + true + true + + Left + + + Page + + AlwaysHorizontal + auto + false + + + + СтраницаГотово + 13 + + КартинкаУспешноЗавершено + 182 + true + true + + true + + + КартинкаУспешноЗавершеноРасширеннаяПодсказка + 184 + Label + true + true + + Left + + + + КартинкаУспешноЗавершеноКонтекстноеМеню + 183 + true + + true + true + Center + + + CommonPicture.Успешно32 + + + + + ДекорацияУспех + 185 + + <key>ru</key> + <value>Префикс успешно изменен</value> + + true + true + + true + + + ДекорацияУспехРасширеннаяПодсказка + 187 + Label + true + true + + Left + + + + ДекорацияУспехКонтекстноеМеню + 186 + true + + Label + true + true + + Left + + + true + true + + true + + + <key>ru</key> + <value>Готово</value> + + + СтраницаГотовоРасширеннаяПодсказка + 110 + Label + true + true + + Left + + + Page + + AlwaysHorizontal + auto + false + + + true + true + + true + + + <key>ru</key> + <value>Панель основная</value> + + + ПанельОсновнаяExtendedTooltip + 103 + Label + true + true + + Left + + + Pages + + Auto + + + true + true + + true + + + <key>ru</key> + <value>Компоновки</value> + + + ГруппаКомпоновкиExtendedTooltip + 95 + Label + true + true + + Left + + + UsualGroup + + HorizontalIfPossible + Auto + true + true + Auto + Auto + + + + РамкаПанелиНавигации + 51 + + ПанельНавигации + 1 + + СтраницаНавигацииНачало + 7 + + КоманднаяПанельСлева1 + 150 + + КомандаНазад + 72 + true + + true + + + КомандаНазадExtendedTooltip + 125 + Label + true + true + + Left + + + Form.Command.КомандаНазад + Normal + Auto + true + true + UserCmds + Auto + + true + true + + true + + + <key>ru</key> + <value>Командная панель слева 1</value> + + + КоманднаяПанельСлева1РасширеннаяПодсказка + 151 + Label + true + true + + Left + + + CommandBar + + Left + + + + КоманднаяПанельСправа1 + 70 + + КомандаДалее + 71 + true + true + + true + + true + + КомандаДалееExtendedTooltip + 126 + Label + true + true + + Left + + + Form.Command.КомандаДалее + Auto + true + true + true + UserCmds + Auto + + + КомандаОтмена + 73 + true + true + + true + + + КомандаОтменаExtendedTooltip + 127 + Label + true + true + + Left + + + Form.Command.КомандаОтмена + Normal + Auto + true + true + UserCmds + Auto + + true + true + + true + + + <key>ru</key> + <value>Командная панель справа 1</value> + + true + + КоманднаяПанельСправа1РасширеннаяПодсказка + 124 + Label + true + true + + Left + + + CommandBar + + Right + + + true + true + + true + + + <key>ru</key> + <value>Страница навигации начало</value> + + + СтраницаНавигацииНачалоExtendedTooltip + 123 + Label + true + true + + Left + + + Page + + HorizontalIfPossible + auto + false + + + + СтраницаНавигацииОжидание + 63 + + КоманднаяПанельСлева4 + 165 + true + true + + true + + + <key>ru</key> + <value>Командная панель слева 4</value> + + + КоманднаяПанельСлева4РасширеннаяПодсказка + 166 + Label + true + true + + Left + + + CommandBar + + Left + + + + КоманднаяПанельСправа4 + 85 + + КомандаОтмена3 + 88 + true + true + + true + + + КомандаОтмена3ExtendedTooltip + 145 + Label + true + true + + Left + + + Form.Command.КомандаОтмена + Normal + Auto + true + true + UserCmds + Auto + + true + true + + true + + + <key>ru</key> + <value>Командная панель справа 4</value> + + true + + КоманднаяПанельСправа4РасширеннаяПодсказка + 142 + Label + true + true + + Left + + + CommandBar + + Right + + + true + true + + true + + + <key>ru</key> + <value>Страница навигации ожидание</value> + + + СтраницаНавигацииОжиданиеExtendedTooltip + 141 + Label + true + true + + Left + + + Page + + HorizontalIfPossible + auto + false + + + + СтраницаНавигацииОшибка + 8 + + КоманднаяПанельСлева2 + 155 + + КомандаВНачало + 196 + true + true + + true + + + КомандаВНачалоРасширеннаяПодсказка + 197 + Label + true + true + + Left + + + Form.Command.КомандаВНачало + Normal + Auto + true + true + UserCmds + Auto + + true + true + + true + + + <key>ru</key> + <value>Командная панель слева 2</value> + + + КоманднаяПанельСлева2РасширеннаяПодсказка + 156 + Label + true + true + + Left + + + CommandBar + + Left + + + + КоманднаяПанельСправа2 + 75 + + ПовторитьВМонопольномРежиме + 218 + true + true + + true + + + ПовторитьВМонопольномРежимеРасширеннаяПодсказка + 219 + Label + true + true + + Left + + + Form.Command.ПовторитьВМонопольномРежиме + Normal + Auto + true + true + UserCmds + Auto + + + КомандаОтмена1 + 78 + true + true + + true + + + КомандаОтмена1ExtendedTooltip + 133 + Label + true + true + + Left + + + Form.Command.КомандаОтмена + Normal + Auto + true + true + UserCmds + Auto + InCommandBarAndInAdditionalSubmenu + + true + true + + true + + + <key>ru</key> + <value>Командная панель справа 2</value> + + true + + КоманднаяПанельСправа2РасширеннаяПодсказка + 130 + Label + true + true + + Left + + + CommandBar + + Right + + + true + true + + true + + + <key>ru</key> + <value>Страница навигации ошибка</value> + + + СтраницаНавигацииОшибкаРасширеннаяПодсказка + 129 + Label + true + true + + Left + + + Page + + HorizontalIfPossible + auto + false + + + + СтраницаНавигацииОкончание + 9 + + КоманднаяПанельСлева3 + 160 + true + true + + true + + + <key>ru</key> + <value>Командная панель слева 3</value> + + + КоманднаяПанельСлева3РасширеннаяПодсказка + 161 + Label + true + true + + Left + + + CommandBar + + Left + + + + КоманднаяПанельСправа3 + 80 + + КомандаГотово + 90 + true + true + + true + + + КомандаГотовоExtendedTooltip + 138 + Label + true + true + + Left + + + Form.Command.КомандаГотово + Normal + Auto + true + true + UserCmds + Auto + + + КомандаОтмена2 + 83 + true + false + + true + + + КомандаОтмена2ExtendedTooltip + 139 + Label + true + true + + Left + + + Form.Command.КомандаОтмена + Normal + Auto + true + true + UserCmds + Auto + + true + true + + true + + + <key>ru</key> + <value>Командная панель справа 3</value> + + true + + КоманднаяПанельСправа3РасширеннаяПодсказка + 136 + Label + true + true + + Left + + + CommandBar + + Right + + + true + true + + true + + + <key>ru</key> + <value>Страница навигации окончание</value> + + + СтраницаНавигацииОкончаниеExtendedTooltip + 135 + Label + true + true + + Left + + + Page + + HorizontalIfPossible + auto + false + + + true + true + + true + + + <key>ru</key> + <value>Панель навигации</value> + + true + + ПанельНавигацииExtendedTooltip + 122 + Label + true + true + + Left + + + Pages + + Auto + + + true + true + + true + + + <key>ru</key> + <value>Рамка панели навигации</value> + + true + + РамкаПанелиНавигацииExtendedTooltip + 121 + Label + true + true + + Left + + + UsualGroup + + Vertical + Bottom + Auto + WeakSeparation + true + true + Auto + Auto + + + None + false + + ФормаКоманднаяПанель + -1 + Left + true + + + OnOpen + ПриОткрытии + + + BeforeClose + ПередЗакрытием + + + OnCreateAtServer + ПриСозданииНаСервере + + Abort + Cancel + Close + CustomizeForm + Ignore + No + OK + RestoreValues + Retry + SaveValues + Yes + LockOwner + true + true + Vertical + true + true + true + auto + true + + Объект + 1 + + String + + + + true + + + true + +
      true
      +
      + + ПорядковыйНомерПерехода + 2 + + Number + + 3 + true + + + + true + + + true + + + + ТаблицаПереходов + 3 + + ValueTable + + + true + + + true + + + ПорядковыйНомерПерехода + 1 + + Number + + 3 + true + + + + true + + + true + + + + ИмяОсновнойСтраницы + 2 + + String + + + + true + + + true + + + + ИмяСтраницыДекорации + 3 + + String + + + + true + + + true + + + + ИмяСтраницыНавигации + 4 + + String + + + + true + + + true + + + + ИмяОбработчикаПриОткрытии + 5 + + String + + + + true + + + true + + + + ИмяОбработчикаПриПереходеДалее + 6 + + String + + + + true + + + true + + + + ИмяОбработчикаПриПереходеНазад + 7 + + String + + + + true + + + true + + + + ДлительнаяОперация + 8 + + Boolean + + + true + + + true + + + + ИмяОбработчикаДлительнойОперации + 9 + + String + + + + true + + + true + + + + + ЗакрытьФормуБезусловно + 4 + + Boolean + + + true + + + true + + + + НовыйПрефиксИБ + + <key>ru</key> + <value>Новый префикс ИБ</value> + + 5 + + String + + 2 + + + + true + + + true + + + + ИзменитьПрефиксВМонопольномРежиме + 7 + + Boolean + + + true + + + true + + + + КомандаДалее + + <key>ru</key> + <value>Далее ></value> + + 1 + + true + + + + КомандаДалее + + + DontUse + Auto + + + КомандаНазад + + <key>ru</key> + <value>< Назад</value> + + 2 + + true + + + + КомандаНазад + + + DontUse + Auto + + + КомандаОтмена + + <key>ru</key> + <value>Отмена</value> + + 3 + + true + + + + КомандаОтмена + + + DontUse + Auto + + + КомандаГотово + + <key>ru</key> + <value>Готово</value> + + 4 + + true + + + + КомандаГотово + + + DontUse + Auto + + + КомандаВНачало + + <key>ru</key> + <value>< Назад</value> + + 6 + + ru + Команда в начало + + + true + + + + КомандаВНачало + + + Auto + Auto + + + ПовторитьВМонопольномРежиме + + <key>ru</key> + <value>Повторить в монопольном режиме</value> + + 7 + + ru + Повторить в монопольном режиме + + + true + + + + ПовторитьВМонопольномРежиме + + + Auto + Auto + + + АктивныеПользователи + + <key>ru</key> + <value>Активные пользователи</value> + + 5 + + 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..a7263b2b5 --- /dev/null +++ b/SSL/src/DataProcessors/ПомощникСозданияОбменаДанными/Forms/ИзменениеПрефиксаУзлаИБ/Module.bsl @@ -0,0 +1,522 @@ +/////////////////////////////////////////////////////////////////////////////////////////////////////// +// Copyright (c) 2021, ООО 1С-Софт +// Все права защищены. Эта программа и сопроводительные материалы предоставляются +// в соответствии с условиями лицензии Attribution 4.0 International (CC BY 4.0) +// Текст лицензии доступен по ссылке: +// https://creativecommons.org/licenses/by/4.0/legalcode +/////////////////////////////////////////////////////////////////////////////////////////////////////// + +#Область ОбработчикиСобытийФормы + +&НаСервере +Процедура ПриСозданииНаСервере(Отказ, СтандартнаяОбработка) + + Параметры.Свойство("Префикс", НовыйПрефиксИБ); + + Элементы.АктивныеПользователи.Видимость = + ОбщегоНазначения.ПодсистемаСуществует("СтандартныеПодсистемы.ЗавершениеРаботыПользователей"); + +КонецПроцедуры + +&НаКлиенте +Процедура ПриОткрытии(Отказ) + + // Устанавливаем текущую таблицу переходов. + ЗаполнитьТаблицуПереходов(); + + // Позиционируемся на первом шаге помощника. + УстановитьПорядковыйНомерПерехода(1); + +КонецПроцедуры + +&НаКлиенте +Процедура ПередЗакрытием(Отказ, ЗавершениеРаботы, ТекстПредупреждения, СтандартнаяОбработка) + + Если Элементы.ПанельОсновная.ТекущаяСтраница = Элементы.СтраницаОжидание Тогда + + ТекстПредупреждения = НСтр("ru = 'Отменить перенумерацию?'"); + ОбщегоНазначенияКлиент.ПоказатьПодтверждениеЗакрытияПроизвольнойФормы( + ЭтотОбъект, Отказ, ЗавершениеРаботы, ТекстПредупреждения, "ЗакрытьФормуБезусловно"); + + КонецЕсли; + +КонецПроцедуры + +#КонецОбласти + +#Область ОбработчикиКомандФормы + +&НаКлиенте +Процедура КомандаДалее(Команда) + + ИзменитьПрефиксВМонопольномРежиме = Ложь; + ИзменитьПорядковыйНомерПерехода(+1); + +КонецПроцедуры + +&НаКлиенте +Процедура КомандаНазад(Команда) + + ИзменитьПорядковыйНомерПерехода(-1); + +КонецПроцедуры + +&НаКлиенте +Процедура КомандаВНачало(Команда) + + ИзменитьПорядковыйНомерПерехода(-2); + +КонецПроцедуры + +&НаКлиенте +Процедура КомандаГотово(Команда) + + ЗакрытьФормуБезусловно = Истина; + + Закрыть(); + +КонецПроцедуры + +&НаКлиенте +Процедура КомандаОтмена(Команда) + + Закрыть(); + +КонецПроцедуры + +&НаКлиенте +Процедура ПовторитьВМонопольномРежиме(Команда) + + ИзменитьПрефиксВМонопольномРежиме = Истина; + ИзменитьПорядковыйНомерПерехода(-1); + +КонецПроцедуры + +&НаКлиенте +Процедура АктивныеПользователи(Команда) + + Если ОбщегоНазначенияКлиент.ПодсистемаСуществует("СтандартныеПодсистемы.ЗавершениеРаботыПользователей") Тогда + + ИмяФормыАктивныеПользователи = "АктивныеПользователи.Форма.АктивныеПользователи"; + ОткрытьФорму("Обработка." + ИмяФормыАктивныеПользователи, , , , , , , РежимОткрытияОкнаФормы.БлокироватьОкноВладельца); + + КонецЕсли; + +КонецПроцедуры + +#КонецОбласти + + +#Область СлужебныеПроцедурыИФункции + +&НаКлиенте +Процедура ИзменитьПорядковыйНомерПерехода(Итератор) + + ОчиститьСообщения(); + + УстановитьПорядковыйНомерПерехода(ПорядковыйНомерПерехода + Итератор); + +КонецПроцедуры + +&НаКлиенте +Процедура УстановитьПорядковыйНомерПерехода(Знач Значение) + + ЭтоПереходДалее = (Значение > ПорядковыйНомерПерехода); + + ПорядковыйНомерПерехода = Значение; + + Если ПорядковыйНомерПерехода < 0 Тогда + + ПорядковыйНомерПерехода = 0; + + КонецЕсли; + + ПорядковыйНомерПереходаПриИзменении(ЭтоПереходДалее); + +КонецПроцедуры + +&НаКлиенте +Процедура ПорядковыйНомерПереходаПриИзменении(Знач ЭтоПереходДалее) + + // Выполняем обработчики событий перехода. + ВыполнитьОбработчикиСобытийПерехода(ЭтоПереходДалее); + + // Устанавливаем отображение страниц. + СтрокиПереходаТекущие = ТаблицаПереходов.НайтиСтроки(Новый Структура("ПорядковыйНомерПерехода", ПорядковыйНомерПерехода)); + + Если СтрокиПереходаТекущие.Количество() = 0 Тогда + ВызватьИсключение НСтр("ru = 'Не определена страница для отображения.'"); + КонецЕсли; + + СтрокаПереходаТекущая = СтрокиПереходаТекущие[0]; + + Элементы.ПанельОсновная.ТекущаяСтраница = Элементы[СтрокаПереходаТекущая.ИмяОсновнойСтраницы]; + Элементы.ПанельНавигации.ТекущаяСтраница = Элементы[СтрокаПереходаТекущая.ИмяСтраницыНавигации]; + + Если Не ПустаяСтрока(СтрокаПереходаТекущая.ИмяСтраницыДекорации) Тогда + + Элементы.ПанельДекорации.ТекущаяСтраница = Элементы[СтрокаПереходаТекущая.ИмяСтраницыДекорации]; + + КонецЕсли; + + // Устанавливаем текущую кнопку по умолчанию. + КнопкаДалее = ПолучитьКнопкуФормыПоИмениКоманды(Элементы.ПанельНавигации.ТекущаяСтраница, "КомандаДалее"); + + Если КнопкаДалее <> Неопределено Тогда + + КнопкаДалее.КнопкаПоУмолчанию = Истина; + + Иначе + + КнопкаГотово = ПолучитьКнопкуФормыПоИмениКоманды(Элементы.ПанельНавигации.ТекущаяСтраница, "КомандаГотово"); + + Если КнопкаГотово <> Неопределено Тогда + + КнопкаГотово.КнопкаПоУмолчанию = Истина; + + КонецЕсли; + + КонецЕсли; + + Если ЭтоПереходДалее И СтрокаПереходаТекущая.ДлительнаяОперация Тогда + + ПодключитьОбработчикОжидания("ВыполнитьОбработчикДлительнойОперации", 0.1, Истина); + + КонецЕсли; + +КонецПроцедуры + +&НаКлиенте +Процедура ВыполнитьОбработчикиСобытийПерехода(Знач ЭтоПереходДалее) + + // Обработчики событий переходов. + Если ЭтоПереходДалее Тогда + + СтрокиПерехода = ТаблицаПереходов.НайтиСтроки(Новый Структура("ПорядковыйНомерПерехода", ПорядковыйНомерПерехода - 1)); + + Если СтрокиПерехода.Количество() > 0 Тогда + + СтрокаПерехода = СтрокиПерехода[0]; + + // Обработчик ПриПереходеДалее. + Если Не ПустаяСтрока(СтрокаПерехода.ИмяОбработчикаПриПереходеДалее) + И Не СтрокаПерехода.ДлительнаяОперация Тогда + + ИмяПроцедуры = "[ИмяОбработчика](Отказ)"; + ИмяПроцедуры = СтрЗаменить(ИмяПроцедуры, "[ИмяОбработчика]", СтрокаПерехода.ИмяОбработчикаПриПереходеДалее); + + Отказ = Ложь; + + Результат = Вычислить(ИмяПроцедуры); + + Если Отказ Тогда + + ПорядковыйНомерПерехода = ПорядковыйНомерПерехода - 1; + Возврат; + + КонецЕсли; + + КонецЕсли; + + КонецЕсли; + + Иначе + + СтрокиПерехода = ТаблицаПереходов.НайтиСтроки(Новый Структура("ПорядковыйНомерПерехода", ПорядковыйНомерПерехода + 1)); + + Если СтрокиПерехода.Количество() > 0 Тогда + + СтрокаПерехода = СтрокиПерехода[0]; + + // Обработчик ПриПереходеНазад. + Если Не ПустаяСтрока(СтрокаПерехода.ИмяОбработчикаПриПереходеНазад) + И Не СтрокаПерехода.ДлительнаяОперация Тогда + + ИмяПроцедуры = "[ИмяОбработчика](Отказ)"; + ИмяПроцедуры = СтрЗаменить(ИмяПроцедуры, "[ИмяОбработчика]", СтрокаПерехода.ИмяОбработчикаПриПереходеНазад); + + Отказ = Ложь; + + Результат = Вычислить(ИмяПроцедуры); + + Если Отказ Тогда + + ПорядковыйНомерПерехода = ПорядковыйНомерПерехода + 1; + Возврат; + + КонецЕсли; + + КонецЕсли; + + КонецЕсли; + + КонецЕсли; + + СтрокиПереходаТекущие = ТаблицаПереходов.НайтиСтроки(Новый Структура("ПорядковыйНомерПерехода", ПорядковыйНомерПерехода)); + + Если СтрокиПереходаТекущие.Количество() = 0 Тогда + ВызватьИсключение НСтр("ru = 'Не определена страница для отображения.'"); + КонецЕсли; + + СтрокаПереходаТекущая = СтрокиПереходаТекущие[0]; + + Если СтрокаПереходаТекущая.ДлительнаяОперация И Не ЭтоПереходДалее Тогда + + УстановитьПорядковыйНомерПерехода(ПорядковыйНомерПерехода - 1); + Возврат; + КонецЕсли; + + // обработчик ПриОткрытии + Если Не ПустаяСтрока(СтрокаПереходаТекущая.ИмяОбработчикаПриОткрытии) Тогда + + ИмяПроцедуры = "[ИмяОбработчика](Отказ, ПропуститьСтраницу, ЭтоПереходДалее)"; + ИмяПроцедуры = СтрЗаменить(ИмяПроцедуры, "[ИмяОбработчика]", СтрокаПереходаТекущая.ИмяОбработчикаПриОткрытии); + + Отказ = Ложь; + ПропуститьСтраницу = Ложь; + + Результат = Вычислить(ИмяПроцедуры); + + Если Отказ Тогда + + ПорядковыйНомерПерехода = ПорядковыйНомерПерехода - 1; + Возврат; + + ИначеЕсли ПропуститьСтраницу Тогда + + Если ЭтоПереходДалее Тогда + + УстановитьПорядковыйНомерПерехода(ПорядковыйНомерПерехода + 1); + Возврат; + + Иначе + + УстановитьПорядковыйНомерПерехода(ПорядковыйНомерПерехода - 1); + Возврат; + + КонецЕсли; + + КонецЕсли; + + КонецЕсли; + +КонецПроцедуры + +&НаКлиенте +Процедура ВыполнитьОбработчикДлительнойОперации() + + СтрокиПереходаТекущие = ТаблицаПереходов.НайтиСтроки(Новый Структура("ПорядковыйНомерПерехода", ПорядковыйНомерПерехода)); + + Если СтрокиПереходаТекущие.Количество() = 0 Тогда + ВызватьИсключение НСтр("ru = 'Не определена страница для отображения.'"); + КонецЕсли; + + СтрокаПереходаТекущая = СтрокиПереходаТекущие[0]; + + // Обработчик ОбработкаДлительнойОперации. + Если Не ПустаяСтрока(СтрокаПереходаТекущая.ИмяОбработчикаДлительнойОперации) Тогда + + ИмяПроцедуры = "[ИмяОбработчика](Отказ, ПерейтиДалее)"; + ИмяПроцедуры = СтрЗаменить(ИмяПроцедуры, "[ИмяОбработчика]", СтрокаПереходаТекущая.ИмяОбработчикаДлительнойОперации); + + Отказ = Ложь; + ПерейтиДалее = Истина; + + Результат = Вычислить(ИмяПроцедуры); + + Если Отказ Тогда + + ПорядковыйНомерПерехода = ПорядковыйНомерПерехода - 1; + Возврат; + + ИначеЕсли ПерейтиДалее Тогда + + УстановитьПорядковыйНомерПерехода(ПорядковыйНомерПерехода + 1); + Возврат; + + КонецЕсли; + + Иначе + + УстановитьПорядковыйНомерПерехода(ПорядковыйНомерПерехода + 1); + Возврат; + + КонецЕсли; + +КонецПроцедуры + +&НаКлиенте +Функция ПолучитьКнопкуФормыПоИмениКоманды(ЭлементФормы, ИмяКоманды) + + Для Каждого Элемент Из ЭлементФормы.ПодчиненныеЭлементы Цикл + + Если ТипЗнч(Элемент) = Тип("ГруппаФормы") Тогда + + ЭлементФормыПоИмениКоманды = ПолучитьКнопкуФормыПоИмениКоманды(Элемент, ИмяКоманды); + + Если ЭлементФормыПоИмениКоманды <> Неопределено Тогда + + Возврат ЭлементФормыПоИмениКоманды; + + КонецЕсли; + + ИначеЕсли ТипЗнч(Элемент) = Тип("КнопкаФормы") + И СтрНайти(Элемент.ИмяКоманды, ИмяКоманды) > 0 Тогда + + Возврат Элемент; + + Иначе + + Продолжить; + + КонецЕсли; + + КонецЦикла; + + Возврат Неопределено; + +КонецФункции + +&НаСервере +Функция УстановитьМонопольныйРежимНаСервере() + + Результат = Ложь; + + СеансыИнформационнойБазы = ПолучитьСеансыИнформационнойБазы(); + НомерСеансаТекущегоПользователя = НомерСеансаИнформационнойБазы(); + КоличествоАктивныхСеансов = 0; + Для Каждого СеансИБ Из СеансыИнформационнойБазы Цикл + Если СеансИБ.ИмяПриложения = "Designer" + Или СеансИБ.НомерСеанса = НомерСеансаТекущегоПользователя Тогда + Продолжить; + КонецЕсли; + КоличествоАктивныхСеансов = КоличествоАктивныхСеансов + 1; + КонецЦикла; + + ОшибкаУстановкиМонопольногоРежима = ""; + Если КоличествоАктивныхСеансов = 0 Тогда + Попытка + УстановитьМонопольныйРежим(Истина); + Результат = Истина; + Исключение + ОшибкаУстановкиМонопольногоРежима = НСтр("ru = 'Техническая информация:'") + " " + + КраткоеПредставлениеОшибки(ИнформацияОбОшибке()); + КонецПопытки; + Если МонопольныйРежим() Тогда + УстановитьМонопольныйРежим(Ложь); + КонецЕсли; + Иначе + + Элементы.АктивныеПользователи.Видимость = Истина; + Элементы.ДекорацияПояснениеПоОшибке.Видимость = Истина; + + Элементы.ДекорацияОшибка.Заголовок = НСтр("ru = 'Невозможно изменить префикс, т.к. с программой работают другие пользователи:'"); + Элементы.АктивныеПользователи.Заголовок = СтроковыеФункции.ФорматированнаяСтрока(НСтр("ru = 'Активные пользователи (%1)'"), КоличествоАктивныхСеансов); + Элементы.ДекорацияПояснениеПоОшибке.Заголовок = НСтр("ru = 'Для продолжения необходимо завершить их работу.'") + + КонецЕсли; + + Возврат Результат; + +КонецФункции + +&НаСервере +Процедура УдалитьМонопольныйРежимНаСервере() + + Если МонопольныйРежим() Тогда + УстановитьМонопольныйРежим(Ложь); + КонецЕсли; + +КонецПроцедуры + +&НаКлиенте +Функция Подключаемый_СтраницаОжидание_ПриОткрытии(Отказ, ПропуститьСтраницу, Знач ЭтоПереходДалее) + + Если ИзменитьПрефиксВМонопольномРежиме Тогда + Если НЕ УстановитьМонопольныйРежимНаСервере() Тогда + ИзменитьПорядковыйНомерПерехода(+1); + Возврат Неопределено; + КонецЕсли; + КонецЕсли; + + ФоновоеЗадание = ЗапуститьИзменениеПрефиксаИБВФоновомЗадании(); + + НастройкиОжидания = ДлительныеОперацииКлиент.ПараметрыОжидания(ЭтотОбъект); + НастройкиОжидания.ВыводитьОкноОжидания = Ложь; + + Обработчик = Новый ОписаниеОповещения("ПослеИзмененияПрефикса", ЭтотОбъект); + ДлительныеОперацииКлиент.ОжидатьЗавершение(ФоновоеЗадание, Обработчик, НастройкиОжидания); + + Возврат Неопределено; + +КонецФункции + +&НаСервере +Функция ЗапуститьИзменениеПрефиксаИБВФоновомЗадании() + + ПараметрыПроцедуры = Новый Структура("НовыйПрефиксИБ, ПродолжитьНумерацию", НовыйПрефиксИБ, Истина); + + ПараметрыВыполнения = ДлительныеОперации.ПараметрыВыполненияВФоне(УникальныйИдентификатор); + ПараметрыВыполнения.НаименованиеФоновогоЗадания = НСтр("ru = 'Изменение префикса'"); + ПараметрыВыполнения.ОжидатьЗавершение = 0; + + Возврат ДлительныеОперации.ВыполнитьПроцедуру(ПараметрыВыполнения,"ПрефиксацияОбъектовСлужебный.ИзменитьПрефиксИБ", ПараметрыПроцедуры); + +КонецФункции + +&НаКлиенте +Процедура ПослеИзмененияПрефикса(ФоновоеЗадание, ДополнительныеПараметры) Экспорт + + Если ФоновоеЗадание.Статус = "Выполнено" Тогда + + ИзменитьПорядковыйНомерПерехода(+2); + УдалитьМонопольныйРежимНаСервере(); + Оповестить("НаборКонстант.ПрефиксУзлаРаспределеннойИнформационнойБазы", НовыйПрефиксИБ); + + ИначеЕсли ФоновоеЗадание.Статус = "Ошибка" Тогда + + Элементы.АктивныеПользователи.Видимость = Ложь; + Элементы.ДекорацияПояснениеПоОшибке.Видимость = Ложь; + + Шаблон = НСтр("ru = '%1 + | + |Запустите операцию позже или повторите попытку в монопольном режиме'"); + + Элементы.ДекорацияОшибка.Заголовок = СтроковыеФункцииКлиент.ФорматированнаяСтрока(Шаблон, ФоновоеЗадание.КраткоеПредставлениеОшибки); + ИзменитьПорядковыйНомерПерехода(+1); + + КонецЕсли; + +КонецПроцедуры + +&НаКлиенте +Процедура ЗаполнитьТаблицуПереходов() + + ТаблицаПереходов.Очистить(); + + Переход = ТаблицаПереходов.Добавить(); + Переход.ПорядковыйНомерПерехода = 1; + Переход.ИмяОсновнойСтраницы = "СтраницаУстановкаПрефикса"; + Переход.ИмяСтраницыНавигации = "СтраницаНавигацииНачало"; + + Переход = ТаблицаПереходов.Добавить(); + Переход.ПорядковыйНомерПерехода = 2; + Переход.ИмяОсновнойСтраницы = "СтраницаОжидание"; + Переход.ИмяСтраницыНавигации = "СтраницаНавигацииОжидание";; + Переход.ИмяОбработчикаПриОткрытии = "Подключаемый_СтраницаОжидание_ПриОткрытии"; + + Переход = ТаблицаПереходов.Добавить(); + Переход.ПорядковыйНомерПерехода = 3; + Переход.ИмяОсновнойСтраницы = "СтраницаОшибка"; + Переход.ИмяСтраницыНавигации = "СтраницаНавигацииОшибка"; + + Переход = ТаблицаПереходов.Добавить(); + Переход.ПорядковыйНомерПерехода = 4; + Переход.ИмяОсновнойСтраницы = "СтраницаГотово"; + Переход.ИмяСтраницыНавигации = "СтраницаНавигацииОкончание"; + +КонецПроцедуры + + + +#КонецОбласти diff --git a/SSL/src/DataProcessors/ПомощникСозданияОбменаДанными/Forms/НастройкаПодключения/Form.form b/SSL/src/DataProcessors/ПомощникСозданияОбменаДанными/Forms/НастройкаПодключения/Form.form index b0e23392b..afcde4fd4 100644 --- a/SSL/src/DataProcessors/ПомощникСозданияОбменаДанными/Forms/НастройкаПодключения/Form.form +++ b/SSL/src/DataProcessors/ПомощникСозданияОбменаДанными/Forms/НастройкаПодключения/Form.form @@ -4829,7 +4829,7 @@ 798 <key>ru</key> - <value><color #ff0000>Внимание! + <value><color #FF0000>Внимание! </> Данная операция необратима и предназначена только для устранения ошибки синхронизации, связанной с дублированием настроек обмена в информационных базах, которые были получены путем копирования. @@ -6695,7 +6695,8 @@ 38 - CatalogRef.УчетныеЗаписиЭлектроннойПочты + String + true @@ -7764,7 +7765,7 @@ true - CommonPicture.Информация + StdPicture.Information diff --git a/SSL/src/DataProcessors/ПомощникСозданияОбменаДанными/Forms/НастройкаСинхронизации/Form.form b/SSL/src/DataProcessors/ПомощникСозданияОбменаДанными/Forms/НастройкаСинхронизации/Form.form index 16fcac49a..57b3a5097 100644 --- a/SSL/src/DataProcessors/ПомощникСозданияОбменаДанными/Forms/НастройкаСинхронизации/Form.form +++ b/SSL/src/DataProcessors/ПомощникСозданияОбменаДанными/Forms/НастройкаСинхронизации/Form.form @@ -2413,7 +2413,7 @@ true - CommonPicture.Информация + CommonPicture.УдалитьИнформация diff --git a/SSL/src/DataProcessors/ПомощникСозданияОбменаДанными/Forms/УдалениеНастройкиСинхронизации/Module.bsl b/SSL/src/DataProcessors/ПомощникСозданияОбменаДанными/Forms/УдалениеНастройкиСинхронизации/Module.bsl index ea2090d44..393abb091 100644 --- a/SSL/src/DataProcessors/ПомощникСозданияОбменаДанными/Forms/УдалениеНастройкиСинхронизации/Module.bsl +++ b/SSL/src/DataProcessors/ПомощникСозданияОбменаДанными/Forms/УдалениеНастройкиСинхронизации/Module.bsl @@ -27,6 +27,9 @@ &НаКлиенте Процедура ПередЗакрытием(Отказ, ЗавершениеРаботы, ТекстПредупреждения, СтандартнаяОбработка) + ЗакрытьФормуБезусловно = ЗакрытьФормуБезусловно + Или Элементы.ПанельОсновная.ТекущаяСтраница = Элементы.СтраницаОкончание; + ТекстПредупреждения = НСтр("ru = 'Отказаться от удаления настройки синхронизации данных?'"); ОбщегоНазначенияКлиент.ПоказатьПодтверждениеЗакрытияПроизвольнойФормы( ЭтотОбъект, Отказ, ЗавершениеРаботы, ТекстПредупреждения, "ЗакрытьФормуБезусловно"); diff --git a/SSL/src/DataProcessors/ПомощникСозданияОбменаДанными/ПомощникСозданияОбменаДанными.mdo b/SSL/src/DataProcessors/ПомощникСозданияОбменаДанными/ПомощникСозданияОбменаДанными.mdo index e7da68d27..d7cc33a8f 100644 --- a/SSL/src/DataProcessors/ПомощникСозданияОбменаДанными/ПомощникСозданияОбменаДанными.mdo +++ b/SSL/src/DataProcessors/ПомощникСозданияОбменаДанными/ПомощникСозданияОбменаДанными.mdo @@ -948,4 +948,13 @@ PersonalComputer MobileDevice + + ИзменениеПрефиксаУзлаИБ + + ru + Изменение префикса узла ИБ + + PersonalComputer + MobileDevice + diff --git a/SSL/src/DataProcessors/РаботаСФайлами/Forms/ПрисоединенныеФайлы/Form.form b/SSL/src/DataProcessors/РаботаСФайлами/Forms/ПрисоединенныеФайлы/Form.form index cf3514e7e..6862b10e9 100644 --- a/SSL/src/DataProcessors/РаботаСФайлами/Forms/ПрисоединенныеФайлы/Form.form +++ b/SSL/src/DataProcessors/РаботаСФайлами/Forms/ПрисоединенныеФайлы/Form.form @@ -1285,7 +1285,7 @@ СписокКонтекстноеМенюГруппаКомандЭлектроннаяПодпись 246 - СписокКонтекстноеМенюЭППодписать + СписокКонтекстноеМенюПодписать 80 true true @@ -1293,7 +1293,7 @@ true - СписокКонтекстноеМенюЭППодписатьРасширеннаяПодсказка + СписокКонтекстноеМенюПодписатьРасширеннаяПодсказка 150 Label true @@ -1311,7 +1311,7 @@ Auto - СписокКонтекстноеМенюДобавитьЭПИзФайла + СписокКонтекстноеМенюДобавитьПодписьИзФайла 81 true true @@ -1319,7 +1319,7 @@ true - СписокКонтекстноеМенюДобавитьЭПИзФайлаРасширеннаяПодсказка + СписокКонтекстноеМенюДобавитьПодписьИзФайлаРасширеннаяПодсказка 151 Label true @@ -1337,7 +1337,7 @@ Auto - СписокКонтекстноеМенюСохранитьВместеСЭП + СписокКонтекстноеМенюСохранитьВместеСПодписью 82 true true @@ -1345,7 +1345,7 @@ true - СписокКонтекстноеМенюСохранитьВместеСЭПРасширеннаяПодсказка + СписокКонтекстноеМенюСохранитьВместеСПодписьюРасширеннаяПодсказка 152 Label true @@ -2544,7 +2544,7 @@ ФормаГруппаКомандЭлектроннаяПодпись 244 - ФормаЭППодписать + ФормаПодписать 75 true true @@ -2552,7 +2552,7 @@ true - ФормаЭППодписатьРасширеннаяПодсказка + ФормаПодписатьРасширеннаяПодсказка 111 Label true @@ -2570,33 +2570,7 @@ Auto - ФормаСохранитьВместеСЭП - 73 - true - true - - true - - - ФормаСохранитьВместеСЭПРасширеннаяПодсказка - 112 - Label - true - true - - Left - - - Form.Command.СохранитьВместеСЭП - Normal - Auto - true - true - UserCmds - Auto - - - ФормаДобавитьЭПИзФайла + ФормаДобавитьПодписьИзФайла 74 true true @@ -2604,7 +2578,7 @@ true - ФормаДобавитьЭПИзФайлаРасширеннаяПодсказка + ФормаДобавитьПодписьИзФайлаРасширеннаяПодсказка 113 Label true @@ -2621,6 +2595,32 @@ UserCmds Auto + + ФормаСохранитьВместеСПодписью + 73 + true + true + + true + + + ФормаСохранитьВместеСПодписьюРасширеннаяПодсказка + 112 + Label + true + true + + Left + + + Form.Command.СохранитьВместеСЭП + Normal + Auto + true + true + UserCmds + Auto + true true diff --git a/SSL/src/DataProcessors/РаботаСФайлами/Forms/ПрисоединенныйФайл/Form.form b/SSL/src/DataProcessors/РаботаСФайлами/Forms/ПрисоединенныйФайл/Form.form index bcb8b727d..ba0ae8abd 100644 --- a/SSL/src/DataProcessors/РаботаСФайлами/Forms/ПрисоединенныйФайл/Form.form +++ b/SSL/src/DataProcessors/РаботаСФайлами/Forms/ПрисоединенныйФайл/Form.form @@ -590,7 +590,7 @@ ФормаГруппаКомандЭлектроннаяПодпись 129 - ФормаПодписатьФайлЭП + ФормаПодписать 19 true true @@ -598,7 +598,7 @@ true - ФормаПодписатьФайлЭПРасширеннаяПодсказка + ФормаПодписатьРасширеннаяПодсказка 71 Label true @@ -616,7 +616,7 @@ Auto - ФормаДобавитьЭПИзФайла + ФормаДобавитьПодписьИзФайла 20 true true @@ -624,7 +624,7 @@ true - ФормаДобавитьЭПИзФайлаРасширеннаяПодсказка + ФормаДобавитьПодписьИзФайлаРасширеннаяПодсказка 72 Label true @@ -642,7 +642,7 @@ Auto - ФормаСохранитьВместеСЭП + ФормаСохранитьВместеСПодписью 21 true true @@ -650,7 +650,7 @@ true - ФормаСохранитьВместеСЭПРасширеннаяПодсказка + ФормаСохранитьВместеСПодписьюРасширеннаяПодсказка 73 Label true @@ -4833,7 +4833,6 @@ ПроверитьЭП - true DontUse Auto @@ -4878,7 +4877,6 @@ ПроверитьВсе - true DontUse Auto diff --git a/SSL/src/DataProcessors/РаботаСФайлами/Forms/ПрисоединенныйФайл/Module.bsl b/SSL/src/DataProcessors/РаботаСФайлами/Forms/ПрисоединенныйФайл/Module.bsl index 936f9563d..2e075da41 100644 --- a/SSL/src/DataProcessors/РаботаСФайлами/Forms/ПрисоединенныйФайл/Module.bsl +++ b/SSL/src/DataProcessors/РаботаСФайлами/Forms/ПрисоединенныйФайл/Module.bsl @@ -19,7 +19,12 @@ ПрисоединенныйФайл = Параметры.Ключ; КонецЕсли; - ДоступнаЭлектроннаяПодпись = РаботаСФайламиСлужебный.ДоступнаЭлектроннаяПодпись(ТипЗнч(ПрисоединенныйФайл)); + Если ЗначениеЗаполнено(Параметры.ЗначениеКопирования) Тогда + ДоступнаЭлектроннаяПодпись = РаботаСФайламиСлужебный.ДоступнаЭлектроннаяПодпись(ТипЗнч(Параметры.ЗначениеКопирования)); + Иначе + ДоступнаЭлектроннаяПодпись = РаботаСФайламиСлужебный.ДоступнаЭлектроннаяПодпись(ТипЗнч(ПрисоединенныйФайл)); + КонецЕсли; + ТекущийПользователь = Пользователи.АвторизованныйПользователь(); ИзменениеФайлов = Пользователи.ЭтоПолноправныйПользователь(); @@ -525,6 +530,10 @@ &НаКлиенте Процедура ПроверитьЭП(Команда) + Если ЭтоНовый() Тогда + Возврат; + КонецЕсли; + Если Элементы.ЭлектронныеПодписи.ВыделенныеСтроки.Количество() = 0 Тогда Возврат; КонецЕсли; @@ -540,6 +549,10 @@ &НаКлиенте Процедура ПроверитьВсе(Команда) + Если ЭтоНовый() Тогда + Возврат; + КонецЕсли; + ДанныеФайла = ДанныеФайла(ТекущаяСсылкаНаФайл(), УникальныйИдентификатор); РаботаСФайламиСлужебныйКлиент.ПроверитьПодписи(ЭтотОбъект, ДанныеФайла.СсылкаНаДвоичныеДанныеФайла); @@ -570,6 +583,10 @@ &НаКлиенте Процедура УдалитьЭП(Команда) + Если ЭтоНовый() Тогда + Возврат; + КонецЕсли; + ОписаниеОповещения = Новый ОписаниеОповещения("УдалитьЭПОтветПолучен", ЭтотОбъект); ПоказатьВопрос(ОписаниеОповещения, НСтр("ru = 'Удалить выделенные подписи?'"), РежимДиалогаВопрос.ДаНет); @@ -615,7 +632,7 @@ &НаКлиенте Процедура УстановитьДоступностьКомандСпискаЭП() - РаботаСФайламиСлужебныйКлиент.УстановитьДоступностьКомандСпискаЭлектронныхПодписей(ЭтотОбъект); + РаботаСФайламиСлужебныйКлиент.УстановитьДоступностьКомандСпискаЭлектронныхПодписей(ЭтотОбъект, ЭтоНовый()); КонецПроцедуры @@ -1046,12 +1063,12 @@ ИменаКоманд = Новый Соответствие; ИменаЭлементов = Новый Массив; - ИменаЭлементов.Добавить("ФормаПодписатьФайлЭП"); + ИменаЭлементов.Добавить("ФормаПодписать"); ИменаЭлементов.Добавить("ЭлектронныеПодписиПодписать"); ИменаКоманд.Вставить("Подписать", ИменаЭлементов); ИменаЭлементов = Новый Массив; - ИменаЭлементов.Добавить("ФормаДобавитьЭПИзФайла"); + ИменаЭлементов.Добавить("ФормаДобавитьПодписьИзФайла"); ИменаКоманд.Вставить("ДобавитьЭПИзФайла", ИменаЭлементов); ИменаЭлементов = Новый Массив; @@ -1072,10 +1089,6 @@ ИменаЭлементов.Добавить("ФормаЗакончитьРедактирование"); ИменаКоманд.Вставить("ЗакончитьРедактирование", ИменаЭлементов); - ИменаЭлементов = Новый Массив; - ИменаЭлементов.Добавить("ФормаДобавитьЭПИзФайла"); - ИменаКоманд.Вставить("Освободить", ИменаЭлементов); - ИменаЭлементов = Новый Массив; ИменаЭлементов.Добавить("ФормаСохранитьИзменения"); ИменаКоманд.Вставить("СохранитьИзменения", ИменаЭлементов); diff --git a/SSL/src/DataProcessors/РасширенныйВводКонтактнойИнформации/Forms/ВводАдреса/Module.bsl b/SSL/src/DataProcessors/РасширенныйВводКонтактнойИнформации/Forms/ВводАдреса/Module.bsl index 210ecc0d7..b169eece6 100644 --- a/SSL/src/DataProcessors/РасширенныйВводКонтактнойИнформации/Forms/ВводАдреса/Module.bsl +++ b/SSL/src/DataProcessors/РасширенныйВводКонтактнойИнформации/Forms/ВводАдреса/Module.bsl @@ -852,7 +852,9 @@ ДанныеВыбора = СписокАвтоподбораЗемельныхУчастков(Идентификатор, Текст + "%"); КонецЕсли; - СтандартнаяОбработка = (ДанныеВыбора.Количество() = 0); + Если ДанныеВыбора.Количество() > 0 Тогда + СтандартнаяОбработка = Ложь; + КонецЕсли; КонецЕсли; КонецЕсли; diff --git a/SSL/src/DataProcessors/РасширенныйВводКонтактнойИнформации/ManagerModule.bsl b/SSL/src/DataProcessors/РасширенныйВводКонтактнойИнформации/ManagerModule.bsl index c6238d4aa..de0c7fcf7 100644 --- a/SSL/src/DataProcessors/РасширенныйВводКонтактнойИнформации/ManagerModule.bsl +++ b/SSL/src/DataProcessors/РасширенныйВводКонтактнойИнформации/ManagerModule.bsl @@ -1644,11 +1644,11 @@ // ** ГородСокращение - Строка - сокращение города (только для адресов РФ). // ** НаселенныйПункт - Строка - текстовое представление населенного пункта (только для адресов РФ). // ** НаселенныйПунктСокращение - сокращение населенного пункта (если СтарыйСоставПолей = Ложь). -// ** ТипДома - Строка - см. РаботаСАдресамиКлиентСервер.ТипыОбъектовАдресацииАдресаРФ(). +// ** ТипДома - см. РаботаСАдресами.ТипыОбъектовАдресацииАдресаРФ. // ** Дом - Строка - текстовое представление дома (только для адресов РФ). -// ** ТипКорпуса - Строка - см. РаботаСАдресамиКлиентСервер.ТипыОбъектовАдресацииАдресаРФ(). +// ** ТипКорпуса - см. РаботаСАдресами.ТипыОбъектовАдресацииАдресаРФ. // ** Корпус - Строка - текстовое представление корпуса (только для адресов РФ). -// ** ТипКвартиры - Строка - см. РаботаСАдресамиКлиентСервер.ТипыОбъектовАдресацииАдресаРФ(). +// ** ТипКвартиры - см. РаботаСАдресами.ТипыОбъектовАдресацииАдресаРФ. // ** Квартира - Строка - текстовое представление квартиры (только для адресов РФ). // Состав значений для телефона: // ** КодСтраны - Строка - код страны. Например, +7. diff --git a/SSL/src/DataProcessors/РегистрацияИзмененийДляОбменаДанными/Forms/ВыборОбъектовОтбором/Module.bsl b/SSL/src/DataProcessors/РегистрацияИзмененийДляОбменаДанными/Forms/ВыборОбъектовОтбором/Module.bsl index e6da7c8bd..35ed56d48 100644 --- a/SSL/src/DataProcessors/РегистрацияИзмененийДляОбменаДанными/Forms/ВыборОбъектовОтбором/Module.bsl +++ b/SSL/src/DataProcessors/РегистрацияИзмененийДляОбменаДанными/Forms/ВыборОбъектовОтбором/Module.bsl @@ -224,12 +224,30 @@ Значение = Данные.Регистратор; ТекИмяФормы = ЭтотОбъект().ПолучитьИмяФормы(Значение) + ".ФормаОбъекта"; Иначе + ЗаполнитьЗначенияСвойств(КлючФормыДанных, Данные); - ТекПараметры = Новый Массив; - ТекПараметры.Добавить(КлючФормыДанных); - ИмяКлючаЗаписи = СтрЗаменить(Параметры.ИмяТаблицы, ".", "КлючЗаписи."); - Значение = Новый(ИмяКлючаЗаписи, ТекПараметры); ТекИмяФормы = Параметры.ИмяТаблицы + ".ФормаЗаписи"; + + Позиция = СтрНайти(Параметры.ИмяТаблицы, "."); + Менеджер = РегистрыСведений[Сред(Параметры.ИмяТаблицы, Позиция + 1)]; + + ОбработкаОбъект = ЭтотОбъект(); + Набор = Менеджер.СоздатьНаборЗаписей(); + + Для Каждого КлючЗначение Из КлючФормыДанных Цикл + ОбработкаОбъект.УстановитьЗначениеЭлементаОтбора(Набор.Отбор, КлючЗначение.Ключ, КлючЗначение.Значение); + КонецЦикла; + + Набор.Прочитать(); + + Ключ = Новый Структура; + Для Каждого КолонкаНабора Из Набор.Выгрузить().Колонки Цикл + ИмяКолонки = КолонкаНабора.Имя; + Ключ.Вставить(ИмяКолонки, Набор[0][ИмяКолонки]); + КонецЦикла; + + Значение = Менеджер.СоздатьКлючЗаписи(Ключ); + КонецЕсли; КонецЕсли; diff --git a/SSL/src/DataProcessors/РегистрацияИзмененийДляОбменаДанными/Forms/Форма/Module.bsl b/SSL/src/DataProcessors/РегистрацияИзмененийДляОбменаДанными/Forms/Форма/Module.bsl index 4ba8f7498..cb5b12236 100644 --- a/SSL/src/DataProcessors/РегистрацияИзмененийДляОбменаДанными/Forms/Форма/Module.bsl +++ b/SSL/src/DataProcessors/РегистрацияИзмененийДляОбменаДанными/Forms/Форма/Module.bsl @@ -1329,7 +1329,10 @@ ТекДанные = Элемент.ДанныеСтроки(Строка); ДанныеСтроки = Новый Структура; Для Каждого Имя Из ИменаКлючей Цикл - ДанныеСтроки.Вставить(Имя, ТекДанные["СписокНаборовЗаписей" + Имя]); + ИмяКолонки = "СписокНаборовЗаписей" + Имя; + Если ТекДанные.Свойство(ИмяКолонки) Тогда + ДанныеСтроки.Вставить(Имя, ТекДанные[ИмяКолонки]); + КонецЕсли; КонецЦикла; Данные.Добавить(ДанныеСтроки); КонецЦикла; @@ -2685,8 +2688,12 @@ Измерения = Новый Структура; ИменаКлючей = МассивИменКлючейНабораЗаписей(СписокНаборовЗаписейИмяТаблицы); + Для Каждого Имя Из ИменаКлючей Цикл - Измерения.Вставить(Имя, ТекущиеДанные["СписокНаборовЗаписей" + Имя]); + ИмяКолонки = "СписокНаборовЗаписей" + Имя; + Если ТекущиеДанные.Свойство(ИмяКолонки) Тогда + Измерения.Вставить(Имя, ТекущиеДанные[ИмяКолонки]); + КонецЕсли; КонецЦикла; Если Измерения.Свойство("Регистратор") Тогда @@ -2774,6 +2781,9 @@ Результат.Вставить("ДоступнаРегистрацияСредствамиБСП", Объект.ДоступнаРегистрацияСредствамиБСП); Результат.Вставить("ДоступнаРаботаРИБ", Объект.ДоступнаРаботаРИБ); Результат.Вставить("НастройкаКонтрольВыгрузкиОбъектов", Объект.НастройкаКонтрольВыгрузкиОбъектов); + + Результат.Вставить("СтруктураИменМетаданных", СтруктураИменМетаданных); + Возврат Результат; КонецФункции diff --git a/SSL/src/DataProcessors/РегистрацияИзмененийДляОбменаДанными/ObjectModule.bsl b/SSL/src/DataProcessors/РегистрацияИзмененийДляОбменаДанными/ObjectModule.bsl index c2dc7b151..acc9f1337 100644 --- a/SSL/src/DataProcessors/РегистрацияИзмененийДляОбменаДанными/ObjectModule.bsl +++ b/SSL/src/DataProcessors/РегистрацияИзмененийДляОбменаДанными/ObjectModule.bsl @@ -590,7 +590,7 @@ НастройкаКонтрольВыгрузкиОбъектов = ПараметрыЗадания.НастройкаКонтрольВыгрузкиОбъектов; РезультатВыполнения = ИзменитьРегистрациюНаСервере(ПараметрыЗадания.Команда, ПараметрыЗадания.БезУчетаАвторегистрации, - ПараметрыЗадания.Узел, ПараметрыЗадания.Данные, ИмяТаблицы); + ПараметрыЗадания.Узел, ПараметрыЗадания.Данные, ИмяТаблицы, ПараметрыЗадания.СтруктураИменМетаданных); Если АдресХранилища <> Неопределено Тогда ПоместитьВоВременноеХранилище(РезультатВыполнения, АдресХранилища); @@ -1361,7 +1361,7 @@ // * Успешно - Число - числом успешно обработанных объектов. // * Команда - значение входящего параметра Команда для упрощения обработки результатов. // -Функция ИзменитьРегистрациюНаСервере(Команда, БезУчетаАвторегистрации, Узел, Данные, ИмяТаблицы = Неопределено) Экспорт +Функция ИзменитьРегистрациюНаСервере(Команда, БезУчетаАвторегистрации, Узел, Данные, ИмяТаблицы = Неопределено, СтруктураИменМетаданных = Неопределено) Экспорт ПрочитатьНастройки(); Результат = Новый Структура("Всего, Успешно", 0, 0); @@ -1386,19 +1386,19 @@ Если ТипЗнч(Команда) = Тип("Булево") И Команда Тогда // Добавляем регистрацию по частям. - ДобавитьРезультаты(Результат, ИзменитьРегистрациюНаСервере(Команда, БезУчетаАвторегистрации, Узел, "Константы", ИмяТаблицы) ); - ДобавитьРезультаты(Результат, ИзменитьРегистрациюНаСервере(Команда, БезУчетаАвторегистрации, Узел, "Справочники", ИмяТаблицы) ); - ДобавитьРезультаты(Результат, ИзменитьРегистрациюНаСервере(Команда, БезУчетаАвторегистрации, Узел, "Документы", ИмяТаблицы) ); - ДобавитьРезультаты(Результат, ИзменитьРегистрациюНаСервере(Команда, БезУчетаАвторегистрации, Узел, "Последовательности", ИмяТаблицы) ); - ДобавитьРезультаты(Результат, ИзменитьРегистрациюНаСервере(Команда, БезУчетаАвторегистрации, Узел, "ПланыВидовХарактеристик", ИмяТаблицы) ); - ДобавитьРезультаты(Результат, ИзменитьРегистрациюНаСервере(Команда, БезУчетаАвторегистрации, Узел, "ПланыСчетов", ИмяТаблицы) ); - ДобавитьРезультаты(Результат, ИзменитьРегистрациюНаСервере(Команда, БезУчетаАвторегистрации, Узел, "ПланыВидовРасчета", ИмяТаблицы) ); - ДобавитьРезультаты(Результат, ИзменитьРегистрациюНаСервере(Команда, БезУчетаАвторегистрации, Узел, "РегистрыСведений", ИмяТаблицы) ); - ДобавитьРезультаты(Результат, ИзменитьРегистрациюНаСервере(Команда, БезУчетаАвторегистрации, Узел, "РегистрыНакопления", ИмяТаблицы) ); - ДобавитьРезультаты(Результат, ИзменитьРегистрациюНаСервере(Команда, БезУчетаАвторегистрации, Узел, "РегистрыБухгалтерии", ИмяТаблицы) ); - ДобавитьРезультаты(Результат, ИзменитьРегистрациюНаСервере(Команда, БезУчетаАвторегистрации, Узел, "РегистрыРасчета", ИмяТаблицы) ); - ДобавитьРезультаты(Результат, ИзменитьРегистрациюНаСервере(Команда, БезУчетаАвторегистрации, Узел, "БизнесПроцессы", ИмяТаблицы) ); - ДобавитьРезультаты(Результат, ИзменитьРегистрациюНаСервере(Команда, БезУчетаАвторегистрации, Узел, "Задачи", ИмяТаблицы) ); + ДобавитьРезультаты(Результат, ИзменитьРегистрациюНаСервере(Команда, БезУчетаАвторегистрации, Узел, "Константы", ИмяТаблицы, СтруктураИменМетаданных)); + ДобавитьРезультаты(Результат, ИзменитьРегистрациюНаСервере(Команда, БезУчетаАвторегистрации, Узел, "Справочники", ИмяТаблицы)); + ДобавитьРезультаты(Результат, ИзменитьРегистрациюНаСервере(Команда, БезУчетаАвторегистрации, Узел, "Документы", ИмяТаблицы)); + ДобавитьРезультаты(Результат, ИзменитьРегистрациюНаСервере(Команда, БезУчетаАвторегистрации, Узел, "Последовательности", ИмяТаблицы)); + ДобавитьРезультаты(Результат, ИзменитьРегистрациюНаСервере(Команда, БезУчетаАвторегистрации, Узел, "ПланыВидовХарактеристик", ИмяТаблицы)); + ДобавитьРезультаты(Результат, ИзменитьРегистрациюНаСервере(Команда, БезУчетаАвторегистрации, Узел, "ПланыСчетов", ИмяТаблицы)); + ДобавитьРезультаты(Результат, ИзменитьРегистрациюНаСервере(Команда, БезУчетаАвторегистрации, Узел, "ПланыВидовРасчета", ИмяТаблицы)); + ДобавитьРезультаты(Результат, ИзменитьРегистрациюНаСервере(Команда, БезУчетаАвторегистрации, Узел, "РегистрыСведений", ИмяТаблицы)); + ДобавитьРезультаты(Результат, ИзменитьРегистрациюНаСервере(Команда, БезУчетаАвторегистрации, Узел, "РегистрыНакопления", ИмяТаблицы)); + ДобавитьРезультаты(Результат, ИзменитьРегистрациюНаСервере(Команда, БезУчетаАвторегистрации, Узел, "РегистрыБухгалтерии", ИмяТаблицы)); + ДобавитьРезультаты(Результат, ИзменитьРегистрациюНаСервере(Команда, БезУчетаАвторегистрации, Узел, "РегистрыРасчета", ИмяТаблицы)); + ДобавитьРезультаты(Результат, ИзменитьРегистрациюНаСервере(Команда, БезУчетаАвторегистрации, Узел, "БизнесПроцессы", ИмяТаблицы)); + ДобавитьРезультаты(Результат, ИзменитьРегистрациюНаСервере(Команда, БезУчетаАвторегистрации, Узел, "Задачи", ИмяТаблицы)); Продолжить; КонецЕсли; @@ -1409,7 +1409,7 @@ // Метаданные, возможно как коллекция, так и конкретный вид, на авторегистрацию смотрим. Описание = ХарактеристикиПоМетаданным(Элемент); Если НадоФильтрБСП Тогда - ДобавитьРезультаты(Результат, БСП_РегистрацияИзмененийМетаданных(Узел, Описание, БезУчетаАвторегистрации) ); + ДобавитьРезультаты(Результат, БСП_РегистрацияИзмененийМетаданных(Узел, Описание, БезУчетаАвторегистрации, СтруктураИменМетаданных)); Продолжить; ИначеЕсли БезУчетаАвторегистрации Тогда @@ -1472,6 +1472,13 @@ Для Каждого КлючЗначение Из Элемент Цикл УстановитьЗначениеЭлементаОтбора(Набор.Отбор, КлючЗначение.Ключ, КлючЗначение.Значение); КонецЦикла; + + Для Каждого Отбор Из Набор.Отбор Цикл + Если НЕ Отбор.Использование Тогда + Отбор.Использование = Истина; + КонецЕсли; + КонецЦикла; + Значения.Добавить(Набор); // Смотрим опциональные варианты. Для Каждого ТекЭлемент Из ПолучитьДополнительныеОбъектыРегистрации(Элемент, Узел, БезУчетаАвторегистрации, ИмяТаблицы) Цикл @@ -2198,14 +2205,23 @@ // Проверяет набор метаданных на возможность регистрации изменения в БСП. // Возвращает структуру с полями "Всего" и "Успешно", описывающей количества регистраций. // -Функция БСП_РегистрацияИзмененийМетаданных(Узел, Описание, БезУчетаАвторегистрации) +Функция БСП_РегистрацияИзмененийМетаданных(Узел, Описание, БезУчетаАвторегистрации, СтруктураИменМетаданных) Результат = Новый Структура("Всего, Успешно", 0, 0); + Если СтруктураИменМетаданных <> Неопределено + И Описание.ЭтоКонстанта + И Не Описание.ЭтоКоллекция + И СтруктураИменМетаданных.Константы.Найти(Описание.Имятаблицы) = Неопределено Тогда + + Возврат Результат; + + КонецЕсли; + Если Описание.ЭтоКоллекция Тогда Для Каждого МетаВид Из Описание.Метаданные Цикл ТекОписание = ХарактеристикиПоМетаданным(МетаВид); - ДобавитьРезультаты(Результат, БСП_РегистрацияИзмененийМетаданных(Узел, ТекОписание, БезУчетаАвторегистрации) ); + ДобавитьРезультаты(Результат, БСП_РегистрацияИзмененийМетаданных(Узел, ТекОписание, БезУчетаАвторегистрации, СтруктураИменМетаданных)); КонецЦикла; Иначе; ДобавитьРезультаты(Результат, БСП_РегистрацияИзмененийОбъектаМетаданных(Узел, Описание, БезУчетаАвторегистрации) ); diff --git a/SSL/src/DataProcessors/РезервноеКопированиеИБ/Forms/РезервноеКопированиеДанных/Form.form b/SSL/src/DataProcessors/РезервноеКопированиеИБ/Forms/РезервноеКопированиеДанных/Form.form index b79d68b4d..59c43c04e 100644 --- a/SSL/src/DataProcessors/РезервноеКопированиеИБ/Forms/РезервноеКопированиеДанных/Form.form +++ b/SSL/src/DataProcessors/РезервноеКопированиеИБ/Forms/РезервноеКопированиеДанных/Form.form @@ -1428,7 +1428,7 @@ true - CommonPicture.Информация + StdPicture.Information 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/ИндикацияХодаОбновленияИБ/Help/ru.html b/SSL/src/DataProcessors/РезультатыОбновленияПрограммы/Forms/ОбновлениеВерсииПрограммы/Help/ru.html similarity index 100% rename from SSL/src/DataProcessors/РезультатыОбновленияПрограммы/Forms/ИндикацияХодаОбновленияИБ/Help/ru.html rename to SSL/src/DataProcessors/РезультатыОбновленияПрограммы/Forms/ОбновлениеВерсииПрограммы/Help/ru.html diff --git a/SSL/src/DataProcessors/РезультатыОбновленияПрограммы/Forms/ИндикацияХодаОбновленияИБ/Module.bsl b/SSL/src/DataProcessors/РезультатыОбновленияПрограммы/Forms/ОбновлениеВерсииПрограммы/Module.bsl similarity index 99% rename from SSL/src/DataProcessors/РезультатыОбновленияПрограммы/Forms/ИндикацияХодаОбновленияИБ/Module.bsl rename to SSL/src/DataProcessors/РезультатыОбновленияПрограммы/Forms/ОбновлениеВерсииПрограммы/Module.bsl index b967535c0..5e7b7df36 100644 --- a/SSL/src/DataProcessors/РезультатыОбновленияПрограммы/Forms/ИндикацияХодаОбновленияИБ/Module.bsl +++ b/SSL/src/DataProcessors/РезультатыОбновленияПрограммы/Forms/ОбновлениеВерсииПрограммы/Module.bsl @@ -499,7 +499,6 @@ &НаКлиенте Процедура ОбработатьОшибкуПравилРегистрации(СообщенияПользователю) - // См. ОбменДаннымиСобытия.ОбработатьОшибкуПравилРегистрации Если СообщенияПользователю <> Неопределено Тогда Для Каждого СообщениеПользователю Из СообщенияПользователю Цикл diff --git a/SSL/src/DataProcessors/РезультатыОбновленияПрограммы/Forms/ОтложенныеОбработчики/Form.form b/SSL/src/DataProcessors/РезультатыОбновленияПрограммы/Forms/ОтложенныеОбработчики/Form.form index d23edd9f9..689413e4b 100644 --- a/SSL/src/DataProcessors/РезультатыОбновленияПрограммы/Forms/ОтложенныеОбработчики/Form.form +++ b/SSL/src/DataProcessors/РезультатыОбновленияПрограммы/Forms/ОтложенныеОбработчики/Form.form @@ -206,7 +206,7 @@ InAdditionalSubmenu - ЗапуститьВыделенный + ЗапуститьПроцедуру 123 true true @@ -214,7 +214,7 @@ true - ЗапуститьВыделенныйРасширеннаяПодсказка + ЗапуститьПроцедуруРасширеннаяПодсказка 124 Label true @@ -223,7 +223,7 @@ Left - Form.Command.ЗапуститьВыделенный + Form.Command.ЗапуститьПроцедуру Normal Auto true @@ -232,7 +232,7 @@ Auto - Запустить + Возобновить 93 true true @@ -240,7 +240,7 @@ true - ЗапуститьРасширеннаяПодсказка + ВозобновитьРасширеннаяПодсказка 94 Label true @@ -249,7 +249,7 @@ Left - Form.Command.Запустить + Form.Command.Возобновить Normal PictureAndText true @@ -259,7 +259,7 @@ InAdditionalSubmenu - Приостановить + Остановить 95 true true @@ -267,7 +267,7 @@ true - ПриостановитьРасширеннаяПодсказка + ОстановитьРасширеннаяПодсказка 96 Label true @@ -276,7 +276,7 @@ Left - Form.Command.Приостановить + Form.Command.Остановить Normal PictureAndText true @@ -821,6 +821,10 @@ 36 Left + + Selection + ОтложенныеОбработчикиВыбор + OnActivateRow ОтложенныеОбработчикиПриАктивизацииСтроки @@ -927,7 +931,7 @@ Left - Form.Command.ЗапуститьВыделенный + Form.Command.ЗапуститьПроцедуру Normal Auto true @@ -953,7 +957,7 @@ Left - Form.Command.Приостановить + Form.Command.Остановить Normal Auto true @@ -979,7 +983,7 @@ Left - Form.Command.Запустить + Form.Command.Возобновить Normal Auto true @@ -1186,64 +1190,210 @@ Normal - - ГиперссылкаПрогрессОбновления - 120 - - <key>ru</key> - <value>Отчет по прогрессу отложенного обновления</value> - - true - true - - true - - - ГиперссылкаПрогрессОбновленияРасширеннаяПодсказка - 122 - Label - true - true - - Left - - - - ГиперссылкаПрогрессОбновленияКонтекстноеМеню - 121 - true - - Label - true - - - Click - ГиперссылкаПрогрессОбновленияНажатие - - true - Left - - - - ГиперссылкаОтложенноеОбновление - 13 - - <key>ru</key> - <value>Техническая информация о результатах обработки данных</value> - - true - true - - true - - Button - - ГиперссылкаОтложенноеОбновлениеExtendedTooltip - 29 + + ГруппаДополнительныеСведения + 129 + + ГиперссылкаПрогрессОбновления + 120 <key>ru</key> - <value>Техническая информация из журнала регистрации для обращения в службу технической поддержки.</value> + <value>Отчет по прогрессу отложенного обновления</value> + true + true + + true + + + ГиперссылкаПрогрессОбновленияРасширеннаяПодсказка + 122 + Label + true + true + + Left + + + + ГиперссылкаПрогрессОбновленияКонтекстноеМеню + 121 + true + + Label + true + + + Click + ГиперссылкаПрогрессОбновленияНажатие + + true + Left + + + + ДекорацияОтступ + 131 + true + true + + true + + + ДекорацияОтступРасширеннаяПодсказка + 133 + Label + true + true + + Left + + + + ДекорацияОтступКонтекстноеМеню + 132 + true + + Label + true + true + + Left + + + + ДекорацияЗаголовокТехническаяИнформация + 134 + + <key>ru</key> + <value>Техническая информация:</value> + + true + true + + true + + + ДекорацияЗаголовокТехническаяИнформацияРасширеннаяПодсказка + 136 + Label + true + true + + Left + + + + ДекорацияЗаголовокТехническаяИнформацияКонтекстноеМеню + 135 + true + + Label + true + true + + Left + + + + ГиперссылкаОбработчикиОбновления + 137 + + <key>ru</key> + <value>Обработчики обновления</value> + + true + true + + true + + + ru + Переход к расширенному списку обработчиков обновления с возможностью просмотра служебных сведений для расследования ошибок обновления. + + Button + + ГиперссылкаОбработчикиОбновленияРасширеннаяПодсказка + 139 + Label + true + true + + Left + + + + ГиперссылкаОбработчикиОбновленияКонтекстноеМеню + 138 + true + + Label + true + true + + + Click + ГиперссылкаОбработчикиОбновленияНажатие + + true + Left + + + + ГиперссылкаОтложенноеОбновление + 13 + + <key>ru</key> + <value>Журнал регистрации</value> + + true + true + + true + + Button + + ГиперссылкаОтложенноеОбновлениеExtendedTooltip + 29 + + <key>ru</key> + <value>Техническая информация из журнала регистрации для обращения в службу технической поддержки.</value> + + Label + true + true + + Left + + + + ГиперссылкаОтложенноеОбновлениеКонтекстноеМеню + 14 + true + + Label + true + + + Click + ГиперссылкаОтложенноеОбновлениеНажатие + + true + Left + + + true + true + + true + + + <key>ru</key> + <value>Дополнительные сведения</value> + + + ГруппаДополнительныеСведенияРасширеннаяПодсказка + 130 Label true true @@ -1251,20 +1401,14 @@ Left - - ГиперссылкаОтложенноеОбновлениеКонтекстноеМеню - 14 - true - - Label - true - - - Click - ГиперссылкаОтложенноеОбновлениеНажатие - - true - Left + UsualGroup + + AlwaysHorizontal + Auto + true + true + Auto + Auto @@ -1388,7 +1532,7 @@ UsualGroup - Vertical + AlwaysHorizontal Auto NormalSeparation true @@ -1459,10 +1603,6 @@ Right - - OnOpen - ПриОткрытии - OnCreateAtServer ПриСозданииНаСервере @@ -1666,8 +1806,7 @@ Статус 8 - String - + EnumRef.СтатусыОбработчиковОбновления true @@ -1975,7 +2114,7 @@ Auto - Приостановить + Остановить <key>ru</key> <value>Остановить</value> @@ -2000,7 +2139,7 @@ <selectedRowsUse>Auto</selectedRowsUse> </formCommands> <formCommands> - <name>Запустить</name> + <name>Возобновить</name> <title> <key>ru</key> <value>Возобновить</value> @@ -2095,7 +2234,7 @@ <selectedRowsUse>Auto</selectedRowsUse> </formCommands> <formCommands> - <name>ЗапуститьВыделенный</name> + <name>ЗапуститьПроцедуру</name> <title> <key>ru</key> <value>Запустить процедуру</value> diff --git a/SSL/src/DataProcessors/РезультатыОбновленияПрограммы/Forms/ОтложенныеОбработчики/Help/ru.html b/SSL/src/DataProcessors/РезультатыОбновленияПрограммы/Forms/ОтложенныеОбработчики/Help/ru.html index 8a69f9cd2..1e520ddca 100644 --- a/SSL/src/DataProcessors/РезультатыОбновленияПрограммы/Forms/ОтложенныеОбработчики/Help/ru.html +++ b/SSL/src/DataProcessors/РезультатыОбновленияПрограммы/Forms/ОтложенныеОбработчики/Help/ru.html @@ -1,6 +1,6 @@ <!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.16428"></meta></head><body> <p>Предназначен для просмотра дополнительных процедур обработки данных, которые проходят после <a href="DataProcessor.РезультатыОбновленияПрограммы/Help">обновления версии</a> отложенно, в фоновом режиме.</p> -<p>Список можно открыть, перейдя по соответствующей ссылке из окна <a href="DataProcessor.РезультатыОбновленияПрограммы.Form.ИндикацияХодаОтложенногоОбновленияИБ/Help">Результаты обновления программы</a>, в которое можно перейти по команде <strong>Результаты обновления и дополнительная обработка данных</strong> раздела <strong>Администрирование - Обслуживание - Обновление программы</strong>.</p> +<p>Список можно открыть, перейдя по соответствующей ссылке из окна <a href="DataProcessor.РезультатыОбновленияПрограммы.Form.РезультатыОбновленияПрограммы/Help">Результаты обновления программы</a>, в которое можно перейти по команде <strong>Результаты обновления и дополнительная обработка данных</strong> раздела <strong>Администрирование - Обслуживание - Обновление программы</strong>.</p> <p>В списке выводится:</p> <ul><li> <div><strong>Процедура обработки данных</strong> - наименование процедуры дополнительной обработки данных и ее подробное описание.</div> diff --git a/SSL/src/DataProcessors/РезультатыОбновленияПрограммы/Forms/ОтложенныеОбработчики/Module.bsl b/SSL/src/DataProcessors/РезультатыОбновленияПрограммы/Forms/ОтложенныеОбработчики/Module.bsl index 0cefa3854..0437a5d0a 100644 --- a/SSL/src/DataProcessors/РезультатыОбновленияПрограммы/Forms/ОтложенныеОбработчики/Module.bsl +++ b/SSL/src/DataProcessors/РезультатыОбновленияПрограммы/Forms/ОтложенныеОбработчики/Module.bsl @@ -20,8 +20,8 @@ ПолноправныйПользователь = Пользователи.ЭтоПолноправныйПользователь(, Ложь); Если Не ПолноправныйПользователь Тогда Элементы.ГруппаПовторныйЗапуск.Видимость = Ложь; - Элементы.Запустить.Видимость = Ложь; - Элементы.Приостановить.Видимость = Ложь; + Элементы.Возобновить.Видимость = Ложь; + Элементы.Остановить.Видимость = Ложь; Элементы.ГруппаПорядок.Видимость = Ложь; Элементы.КонтекстноеМенюПриостановить.Видимость = Ложь; Элементы.КонтекстноеМенюЗапустить.Видимость = Ложь; @@ -37,7 +37,7 @@ Если Не ОбщегоНазначения.РежимОтладки() Или СведенияОбОбновлении.ОтложенноеОбновлениеЗавершеноУспешно = Истина Тогда - Элементы.ЗапуститьВыделенный.Видимость = Ложь; + Элементы.ЗапуститьПроцедуру.Видимость = Ложь; Элементы.КонтекстноеМенюЗапуститьВыделенный.Видимость = Ложь; КонецЕсли; @@ -69,15 +69,6 @@ КонецПроцедуры -&НаКлиенте -Процедура ПриОткрытии(Отказ) - - Если ОбновлениеВыполняется Тогда - ПодключитьОбработчикОжидания("ОбновитьТаблицуОбработчиков", 15); - КонецЕсли; - -КонецПроцедуры - #КонецОбласти #Область ОбработчикиСобытийЭлементовШапкиФормы @@ -89,29 +80,29 @@ Возврат; КонецЕсли; - Если Элемент.ТекущиеДанные.Статус = "Выполняется" Тогда + Если Элемент.ТекущиеДанные.Статус = ПредопределенноеЗначение("Перечисление.СтатусыОбработчиковОбновления.Выполняется") Тогда Элементы.КонтекстноеМенюЗапустить.Доступность = Ложь; Элементы.КонтекстноеМенюПриостановить.Доступность = Истина; - Элементы.Запустить.Доступность = Ложь; - Элементы.Приостановить.Доступность = Истина; - ИначеЕсли Элемент.ТекущиеДанные.Статус = "Приостановлен" Тогда + Элементы.Возобновить.Доступность = Ложь; + Элементы.Остановить.Доступность = Истина; + ИначеЕсли Элемент.ТекущиеДанные.Статус = ПредопределенноеЗначение("Перечисление.СтатусыОбработчиковОбновления.Приостановлен") Тогда Элементы.КонтекстноеМенюЗапустить.Доступность = Истина; Элементы.КонтекстноеМенюПриостановить.Доступность = Ложь; - Элементы.Запустить.Доступность = Истина; - Элементы.Приостановить.Доступность = Ложь; + Элементы.Возобновить.Доступность = Истина; + Элементы.Остановить.Доступность = Ложь; Иначе Элементы.КонтекстноеМенюЗапустить.Доступность = Ложь; Элементы.КонтекстноеМенюПриостановить.Доступность = Ложь; - Элементы.Запустить.Доступность = Ложь; - Элементы.Приостановить.Доступность = Ложь; + Элементы.Возобновить.Доступность = Ложь; + Элементы.Остановить.Доступность = Ложь; КонецЕсли; Если Не ОбновлениеВыполняется - И Элемент.ТекущиеДанные.Статус <> "Выполнено" Тогда - Элементы.ЗапуститьВыделенный.Доступность = Истина; + И Элемент.ТекущиеДанные.Статус <> ПредопределенноеЗначение("Перечисление.СтатусыОбработчиковОбновления.Выполнен") Тогда + Элементы.ЗапуститьПроцедуру.Доступность = Истина; Элементы.КонтекстноеМенюЗапуститьВыделенный.Доступность = Истина; Иначе - Элементы.ЗапуститьВыделенный.Доступность = Ложь; + Элементы.ЗапуститьПроцедуру.Доступность = Ложь; Элементы.КонтекстноеМенюЗапуститьВыделенный.Доступность = Ложь; КонецЕсли; @@ -119,6 +110,38 @@ КонецПроцедуры +&НаКлиенте +Процедура ГиперссылкаОбработчикиОбновленияНажатие(Элемент) + ОтборСписка = Новый Структура; + ОтборСписка.Вставить("РежимВыполнения", ПредопределенноеЗначение("Перечисление.РежимыВыполненияОбработчиков.Отложенно")); + + ОткрытьФорму("РегистрСведений.ОбработчикиОбновления.ФормаСписка", ОтборСписка); +КонецПроцедуры + +#КонецОбласти + +#Область ОбработчикиСобытийЭлементовТаблицыФормыОтложенныеОбработчики + +&НаКлиенте +Процедура ОтложенныеОбработчикиВыбор(Элемент, ВыбраннаяСтрока, Поле, СтандартнаяОбработка) + СтандартнаяОбработка = Ложь; + + Если Элемент.ТекущиеДанные = Неопределено Тогда + Возврат; + КонецЕсли; + + ИмяОбработчика = Элемент.ТекущиеДанные.Идентификатор; + + Отбор = Новый Структура("ИмяОбработчика",ИмяОбработчика); + + ТипЗначения = Тип("РегистрСведенийКлючЗаписи.ОбработчикиОбновления"); + ПараметрыЗаписи = Новый Массив(1); + ПараметрыЗаписи[0] = Отбор; + + КлючЗаписи = Новый(ТипЗначения, ПараметрыЗаписи); + ПоказатьЗначение(Неопределено, КлючЗаписи); +КонецПроцедуры + #КонецОбласти #Область ОбработчикиКомандФормы @@ -214,7 +237,7 @@ ПроцедураОбновления = ТекущиеДанные.Идентификатор; ЗапуститьВыполнениеОтложенногоОбработчика(ПроцедураОбновления); Оповестить("ОтложенноеОбновление"); - ПодключитьОбработчикОжидания("ОбновитьТаблицуОбработчиков", 15); + ПодключитьОбработчикОжидания("ОбновитьТаблицуОбработчиков", 1, Истина); КонецПроцедуры @@ -308,7 +331,7 @@ КонецЕсли; Если Элемент.ТекущиеДанные.Приоритет = "Неопределено" - Или Элемент.ТекущиеДанные.Статус = "Выполнено" Тогда + Или Элемент.ТекущиеДанные.Статус = ПредопределенноеЗначение("Перечисление.СтатусыОбработчиковОбновления.Выполнен") Тогда Элементы.ВПлановомПорядке.Доступность = Ложь; Элементы.ВПлановомПорядкеКонтекстноеМеню.Доступность = Ложь; Элементы.ЖелательноБыстрее.Доступность = Ложь; @@ -405,9 +428,6 @@ ВыполненыВсеОбработчики = Истина; СформироватьТаблицуОтложенныхОбработчиков(ВыполненыВсеОбработчики); - Если Не ПоКоманде И ВыполненыВсеОбработчики Тогда - ОтключитьОбработчикОжидания("ОбновитьТаблицуОбработчиков"); - КонецЕсли; КонецПроцедуры @@ -519,9 +539,9 @@ КонецЕсли; Если ОбработчикиНеВыполнялись Тогда - Элементы.ТекстПояснения.Заголовок = НСтр("ru = 'Рекомендуется запустить невыполненные процедуры обработки данных.'"); + Элементы.ТекстПояснения.Заголовок = НСтр("ru = 'Рекомендуется Возобновить невыполненные процедуры обработки данных.'"); Иначе - Элементы.ТекстПояснения.Заголовок = НСтр("ru = 'Невыполненные процедуры рекомендуется запустить повторно.'"); + Элементы.ТекстПояснения.Заголовок = НСтр("ru = 'Невыполненные процедуры рекомендуется Возобновить повторно.'"); КонецЕсли; НомерЭлемента = 1; @@ -573,19 +593,17 @@ ШаблонИнформацияОПроцедуреОбновления = НСтр("ru = 'Процедура ""%1"" обработки данных %2.'"); - СтрокаСписка.Статус = ?(СтрокаОбработчика.Статус = "НеВыполнено", "НеЗапускалась", СтрокаОбработчика.Статус); + СтрокаСписка.Статус = СтрокаОбработчика.Статус; Если СтрокаОбработчика.Статус = Перечисления.СтатусыОбработчиковОбновления.Выполнен Тогда ОбработчикиНеВыполнялись = Ложь; ПредставлениеСтатусаВыполнения = НСтр("ru = 'завершилась успешно'"); СтрокаСписка.СтатусПредставление = НСтр("ru = 'Выполнено'"); - СтрокаСписка.СтатусКартинка = БиблиотекаКартинок.Успешно; СтрокаСписка.ДлительностьВыполнения = ДлительностьВыполненияПроцедурыОбновления(ДлительностьВыполнения); ИначеЕсли СтрокаОбработчика.Статус = Перечисления.СтатусыОбработчиковОбновления.Выполняется Тогда ОбработчикиНеВыполнялись = Ложь; ВыполненыВсеОбработчики = Ложь; - СтрокаСписка.СтатусКартинка = Новый Картинка; ПредставлениеСтатусаВыполнения = НСтр("ru = 'в данный момент выполняется'"); Если Прогресс <> Неопределено Тогда ШаблонСтатус = НСтр("ru = 'Выполняется (%1%)'"); @@ -601,7 +619,6 @@ ПредставлениеСтатусаВыполнения = СтроковыеФункцииКлиентСервер.ПодставитьПараметрыВСтроку(ПредставлениеСтатусаВыполнения, СтрокаОбработчика.ИмяОбработчика); СтрокаСписка.ИнформацияОПроцедуреОбновления = ПредставлениеСтатусаВыполнения + СтрокаОбработчика.ИнформацияОбОшибке; СтрокаСписка.СтатусПредставление = НСтр("ru = 'Ошибка'"); - СтрокаСписка.СтатусКартинка = БиблиотекаКартинок.Остановить; СтрокаСписка.ДлительностьВыполнения = ДлительностьВыполненияПроцедурыОбновления(ДлительностьВыполнения); ИначеЕсли СтрокаОбработчика.Статус = Перечисления.СтатусыОбработчиковОбновления.Приостановлен Тогда @@ -609,7 +626,6 @@ ВыполненыВсеОбработчики = Ложь; ПредставлениеСтатусаВыполнения = НСтр("ru = 'остановлена администратором'"); СтрокаСписка.СтатусПредставление = НСтр("ru = 'Остановлено'"); - СтрокаСписка.СтатусКартинка = БиблиотекаКартинок.ЗнакСтоп; Иначе ВыполненыВсеОбработчики = Ложь; diff --git a/SSL/src/DataProcessors/РезультатыОбновленияПрограммы/Forms/ИндикацияХодаОтложенногоОбновленияИБ/Form.form b/SSL/src/DataProcessors/РезультатыОбновленияПрограммы/Forms/РезультатыОбновленияПрограммы/Form.form similarity index 64% rename from SSL/src/DataProcessors/РезультатыОбновленияПрограммы/Forms/ИндикацияХодаОтложенногоОбновленияИБ/Form.form rename to SSL/src/DataProcessors/РезультатыОбновленияПрограммы/Forms/РезультатыОбновленияПрограммы/Form.form index 611e3d6a1..f551354b8 100644 --- a/SSL/src/DataProcessors/РезультатыОбновленияПрограммы/Forms/ИндикацияХодаОтложенногоОбновленияИБ/Form.form +++ b/SSL/src/DataProcessors/РезультатыОбновленияПрограммы/Forms/РезультатыОбновленияПрограммы/Form.form @@ -30,6 +30,7 @@ <id>258</id> <autoFill>true</autoFill> </contextMenu> + <width>5</width> <autoMaxWidth>true</autoMaxWidth> <autoMaxHeight>true</autoMaxHeight> <extInfo xsi:type="form:PictureDecorationExtInfo"> @@ -143,6 +144,7 @@ <id>84</id> <autoFill>true</autoFill> </contextMenu> + <width>5</width> <autoMaxWidth>true</autoMaxWidth> <autoMaxHeight>true</autoMaxHeight> <extInfo xsi:type="form:PictureDecorationExtInfo"> @@ -243,6 +245,7 @@ <id>189</id> <autoFill>true</autoFill> </contextMenu> + <width>5</width> <autoMaxWidth>true</autoMaxWidth> <autoMaxHeight>true</autoMaxHeight> <extInfo xsi:type="form:PictureDecorationExtInfo"> @@ -430,7 +433,7 @@ <autoFill>true</autoFill> </contextMenu> <type>Label</type> - <width>3</width> + <width>5</width> <autoMaxWidth>true</autoMaxWidth> <autoMaxHeight>true</autoMaxHeight> <extInfo xsi:type="form:LabelDecorationExtInfo"> @@ -751,6 +754,7 @@ <id>33</id> <autoFill>true</autoFill> </contextMenu> + <width>5</width> <autoMaxWidth>true</autoMaxWidth> <autoMaxHeight>true</autoMaxHeight> <extInfo xsi:type="form:PictureDecorationExtInfo"> @@ -1011,6 +1015,7 @@ <id>122</id> <autoFill>true</autoFill> </contextMenu> + <width>5</width> <autoMaxWidth>true</autoMaxWidth> <autoMaxHeight>true</autoMaxHeight> <extInfo xsi:type="form:PictureDecorationExtInfo"> @@ -1248,23 +1253,19 @@ </extInfo> </items> <items xsi:type="form:FormGroup"> - <name>ГруппаИнформацияОПрогрессе</name> - <id>6</id> + <name>ГруппаШапкаОбновлениеНеВыполняется</name> + <id>278</id> <items xsi:type="form:Decoration"> - <name>ИнформацияСтатусОбновления</name> - <id>9</id> - <title> - <key>ru</key> - <value>Выполнено: %1 из %2</value> - + КартинкаОбновлениеНеВыполняется + 280 true true true - ИнформацияСтатусОбновленияExtendedTooltip - 155 + КартинкаОбновлениеНеВыполняетсяРасширеннаяПодсказка + 282 Label true true @@ -1273,21 +1274,690 @@ - ИнформацияСтатусОбновленияКонтекстноеМеню - 10 + КартинкаОбновлениеНеВыполняетсяКонтекстноеМеню + 281 true + true + true + + + CommonPicture.ОжидаемаяДлительнаяОперация48 + + AsFileRef + + + + ПояснениеОбновлениеНеВыполняется + 283 + + <key>ru</key> + <value>Дополнительные процедуры обработки данных не выполняются, т.к. отключено регламентное задание "Отложенное обновление". +<link Включить>Включить</></value> + + true + true + + true + + + ПояснениеОбновлениеНеВыполняетсяРасширеннаяПодсказка + 285 + Label + true + true + + Left + + + + ПояснениеОбновлениеНеВыполняетсяКонтекстноеМеню + 284 + true + + true Label + 50 true - Click - ИнформацияСтатусОбновленияНажатие + URLProcessing + ПояснениеОбновлениеНеВыполняетсяОбработкаНавигационнойСсылки - true Left + true + + true + + + <key>ru</key> + <value>Шапка обновление не выполняется</value> + + + ГруппаШапкаОбновлениеНеВыполняетсяРасширеннаяПодсказка + 279 + Label + true + true + + Left + + + UsualGroup + + HorizontalIfPossible + Auto + true + true + Auto + Auto + + + + ГруппаИнформацияОПрогрессе + 6 + + ГруппаПрогрессИОшибки + 263 + + ГруппаОтступИПрогресс + 318 + + ГруппаВыравнивание + 320 + + НадписьВыравнивание + 324 + true + true + + true + + + НадписьВыравниваниеРасширеннаяПодсказка + 326 + Label + true + true + + Left + + + + НадписьВыравниваниеКонтекстноеМеню + 325 + true + + Label + 5 + true + true + + Left + + + true + true + + true + + + <key>ru</key> + <value>Выравнивание</value> + + + ГруппаВыравниваниеРасширеннаяПодсказка + 321 + Label + true + true + + Left + + + UsualGroup + + HorizontalIfPossible + Auto + true + true + Auto + Auto + + + + ГруппаПрогрессИПроблемы + 322 + + ГруппаПрогресс + 305 + + ГруппаИндикацияПроблемСОбработчиками + 333 + + ДекорацияИндикацияПроблем + 295 + true + true + + true + + + ДекорацияИндикацияПроблемРасширеннаяПодсказка + 297 + Label + true + true + + Left + + + + ДекорацияИндикацияПроблемКонтекстноеМеню + 296 + true + + true + true + Center + + + StdPicture.AppearanceExclamationMarkIcon + + AsFileRef + + + + ПроблемныеСитуации + 327 + + <key>ru</key> + <value>Проблемные ситуации</value> + + true + true + + true + + + ПроблемныеСитуацииРасширеннаяПодсказка + 329 + Label + true + true + + Left + + + + ПроблемныеСитуацииКонтекстноеМеню + 328 + true + + Label + true + true + + + Click + ПроблемныеСитуацииНажатие + + Left + + + true + true + + true + + + <key>ru</key> + <value>Индикация проблем с обработчиками</value> + + + ГруппаИндикацияПроблемСОбработчикамиРасширеннаяПодсказка + 334 + Label + true + true + + Left + + + UsualGroup + + HorizontalIfPossible + Auto + true + true + Auto + Auto + + + + ГруппаИндикацияПроблемСДанными + 265 + + ДекорацияИндикацияПроблемСДанными + 312 + + <key>ru</key> + <value>Декорация индикация проблем с данными</value> + + true + true + + true + + + ДекорацияИндикацияПроблемСДаннымиРасширеннаяПодсказка + 314 + Label + true + true + + Left + + + + ДекорацияИндикацияПроблемСДаннымиКонтекстноеМеню + 313 + true + + true + true + Center + + + StdPicture.AppearanceExclamationMarkIcon + + AsFileRef + + + + ПроблемыСДанными + 330 + + <key>ru</key> + <value>Проблемы с данными</value> + + true + true + + true + + Button + + ПроблемыСДаннымиРасширеннаяПодсказка + 332 + Label + true + true + + Left + + + + ПроблемыСДаннымиКонтекстноеМеню + 331 + true + + Label + true + true + + + Click + ПроблемыСДаннымиНажатие + + Left + + + true + true + + true + + + <key>ru</key> + <value>Индикация проблем с данными</value> + + + ГруппаИндикацияПроблемСДаннымиРасширеннаяПодсказка + 266 + Label + true + true + + Left + + + UsualGroup + + AlwaysHorizontal + Auto + true + true + Auto + Auto + + + + ИнформацияСтатусОбновления + 9 + + <key>ru</key> + <value>Выполнено: %1 из %2</value> + + true + true + + true + + + ИнформацияСтатусОбновленияExtendedTooltip + 155 + Label + true + true + + Left + + + + ИнформацияСтатусОбновленияКонтекстноеМеню + 10 + true + + Label + true + + + Click + ИнформацияСтатусОбновленияНажатие + + true + Left + + + + ДекорацияОтступ + 273 + true + + true + + + ДекорацияОтступРасширеннаяПодсказка + 275 + Label + true + true + + Left + + + + ДекорацияОтступКонтекстноеМеню + 274 + true + + Label + true + true + + Left + + + true + true + + true + + + <key>ru</key> + <value>Прогресс</value> + + + ГруппаПрогрессРасширеннаяПодсказка + 306 + Label + true + true + + Left + + + UsualGroup + + Vertical + Auto + true + true + Auto + Auto + + + + ГруппаЗацикливание + 307 + + ДекорацияПредупреждениеОЗацикливании + 309 + + <key>ru</key> + <value>За последний час не было обработано ни одного объекта, возможно произошло зацикливание обработки данных</value> + + true + + true + + + ДекорацияПредупреждениеОЗацикливанииРасширеннаяПодсказка + 311 + Label + true + true + + Left + + + + ДекорацияПредупреждениеОЗацикливанииКонтекстноеМеню + 310 + true + + Label + 55 + true + + Left + + Style.ЦветФонаВнимание + + + + true + true + + true + + + <key>ru</key> + <value>Зацикливание</value> + + + ГруппаЗацикливаниеРасширеннаяПодсказка + 308 + Label + true + true + + Left + + + UsualGroup + + HorizontalIfPossible + Auto + true + true + Auto + Auto + + + true + true + + true + + + <key>ru</key> + <value>Прогресс и проблемы</value> + + + ГруппаПрогрессИПроблемыРасширеннаяПодсказка + 323 + Label + true + true + + Left + + + UsualGroup + + Vertical + Auto + true + true + Auto + Auto + + + true + true + + true + + + <key>ru</key> + <value>Отступ и прогресс</value> + + + ГруппаОтступИПрогрессРасширеннаяПодсказка + 319 + Label + true + true + + Left + + + UsualGroup + + AlwaysHorizontal + Auto + NormalSeparation + true + true + Auto + Auto + + + true + true + + true + + + <key>ru</key> + <value>Прогресс и ошибки</value> + + + ГруппаПрогрессИОшибкиРасширеннаяПодсказка + 264 + Label + true + true + + Left + + + UsualGroup + + Vertical + Auto + true + true + Auto + Auto + + + + ГруппаОтступ + 286 + + ОтступПоВертикали + 288 + true + true + + true + + + ОтступПоВертикалиРасширеннаяПодсказка + 290 + Label + true + true + + Left + + + + ОтступПоВертикалиКонтекстноеМеню + 289 + true + + Label + true + true + + Left + + + true + true + + true + + + <key>ru</key> + <value>Отступ</value> + + + ГруппаОтступРасширеннаяПодсказка + 287 + Label + true + true + + Left + + + UsualGroup + + HorizontalIfPossible + Auto + true + true + Auto + Auto + + ГруппаПриоритет 242 @@ -1383,7 +2053,7 @@ ru <b>● </><b>Работа пользователей</> - данные обрабатываются медленнее, но меньше нагрузка на сервер и влияние на работу пользователей в программе. <b>● </><b>Обработка данных</> - выше скорость обработки данных, но выше нагрузка на сервер, а так же существенное замедление работы пользователей в программе. Рекомендуется использовать в тех случаях, когда необходимо быстрее получить доступ к обрабатываемым данным. -<b>● </><fontsize 8><b>Количество</></><b> потоков</> - это количество одновременно выполняющихся обработчиков обновления. Значение по умолчанию равно 8. Рекомендуемое значение: +<b>● </><b><fontsize 8>Количество</></><b> потоков</> - это количество одновременно выполняющихся обработчиков обновления. Значение по умолчанию равно 8. Рекомендуемое значение: <b> •</> для штатного обновления до 50-75% от количества ядер, доступных кластеру серверов; <b> •</> для форсированного обновления в период минимальной активности пользователей - столько ядер, сколько доступно кластеру серверов. См. также <link http://1c.ru/news/info.jsp?id=25491>ограничение 12 ядер на сервер для версии ПРОФ платформы 1С:Предприятие</> и "<link https://v8.1c.ru/priobretenie-i-vnedrenie/otvety-na-tipovye-voprosy-po-litsenzirovaniyu-1s-predpriyatiya-8/>Какие ядра процессора следует считать — реальные или виртуальные?</>". @@ -1563,33 +2233,6 @@ UserCmds Auto - - СнятьБлокировкуРегламентныхЗаданий - 175 - true - true - - true - - - СнятьБлокировкуРегламентныхЗаданийРасширеннаяПодсказка - 176 - Label - true - true - - Left - - - Hyperlink - Form.Command.СнятьБлокировкуРегламентныхЗаданий - Normal - Auto - true - true - UserCmds - Auto - true true @@ -1764,6 +2407,7 @@ 44 true + 5 true true @@ -1874,21 +2518,48 @@ ГруппаПереходКСпискуОтложенныхОбработчиков 45 - - ОткрытьСписокОтложенныхОбработчиков - 57 - - <key>ru</key> - <value>Необходимо выполнить процедуры обработки данных</value> - + + Группа2 + 335 + + ПереходКСпискуВыравнивание + 339 + true + true + + true + + + ПереходКСпискуВыравниваниеРасширеннаяПодсказка + 341 + Label + true + true + + Left + + + + ПереходКСпискуВыравниваниеКонтекстноеМеню + 340 + true + + Label + 5 + true + true + + Left + + true true true - ОткрытьСписокОтложенныхОбработчиковExtendedTooltip - 170 + Группа2РасширеннаяПодсказка + 336 Label true true @@ -1896,35 +2567,348 @@ Left - Hyperlink - Form.Command.ОткрытьСписокДополнительныхПроцедурОбработкиДанных - Normal - Auto - true - true - UserCmds - Auto + UsualGroup + + HorizontalIfPossible + Auto + true + true + Auto + Auto + - - ГиперссылкаОсновноеОбновление - 88 - - <key>ru</key> - <value>Техническая информация о результатах обновления</value> - - true - true - - true - - Button - - ГиперссылкаОсновноеОбновлениеExtendedTooltip - 132 + + Группа3 + 337 + + ГруппаПереходКСпискуИПроблемы + 298 + + ГруппаИндикацияПроблемСОбработчикамиЗавершено + 350 + + ДекорацияИндикацияПроблемЗавершено + 352 + + <key>ru</key> + <value>Декорация индикация проблем завершено</value> + + true + true + + true + + + ДекорацияИндикацияПроблемЗавершеноРасширеннаяПодсказка + 354 + Label + true + true + + Left + + + + ДекорацияИндикацияПроблемЗавершеноКонтекстноеМеню + 353 + true + + true + true + Center + + + StdPicture.AppearanceExclamationMarkIcon + + AsFileRef + + + + ПроблемныеСитуацииЗавершено + 355 + + <key>ru</key> + <value>Проблемные ситуации</value> + + true + true + + true + + + ПроблемныеСитуацииЗавершеноРасширеннаяПодсказка + 357 + Label + true + true + + Left + + + + ПроблемныеСитуацииЗавершеноКонтекстноеМеню + 356 + true + + Label + true + true + + + Click + ПроблемныеСитуацииНажатие + + Left + + + true + true + + true + + + <key>ru</key> + <value>Группа индикация проблем с обработчиками</value> + + + ГруппаИндикацияПроблемСОбработчикамиЗавершеноРасширеннаяПодсказка + 351 + Label + true + true + + Left + + + UsualGroup + + HorizontalIfPossible + Auto + true + true + Auto + Auto + + + + ГруппаИндикацияПроблемСДаннымиЗавершено + 342 + + ДекорацияИндикацияПроблемСДаннымиЗавершено + 344 + + <key>ru</key> + <value>Декорация индикация проблем с данными завершено</value> + + true + true + + true + + + ДекорацияИндикацияПроблемСДаннымиЗавершеноРасширеннаяПодсказка + 346 + Label + true + true + + Left + + + + ДекорацияИндикацияПроблемСДаннымиЗавершеноКонтекстноеМеню + 345 + true + + true + true + Center + + + StdPicture.AppearanceExclamationMarkIcon + + AsFileRef + + + + ПроблемыСДаннымиЗавершено + 347 + + <key>ru</key> + <value>Проблемы с данными</value> + + true + true + + true + + Button + + ПроблемыСДаннымиЗавершеноРасширеннаяПодсказка + 349 + Label + true + true + + Left + + + + ПроблемыСДаннымиЗавершеноКонтекстноеМеню + 348 + true + + Label + true + true + + + Click + ПроблемыСДаннымиНажатие + + Left + + + true + true + + true + + + <key>ru</key> + <value>Группа индикация проблем с данными</value> + + + ГруппаИндикацияПроблемСДаннымиЗавершеноРасширеннаяПодсказка + 343 + Label + true + true + + Left + + + UsualGroup + + AlwaysHorizontal + Auto + true + true + Auto + Auto + + + + ОткрытьСписокОтложенныхОбработчиков + 57 + + <key>ru</key> + <value>Необходимо выполнить процедуры обработки данных</value> + + true + true + + true + + + ОткрытьСписокОтложенныхОбработчиковExtendedTooltip + 170 + Label + true + true + + Left + + + Hyperlink + Form.Command.ОткрытьСписокДополнительныхПроцедурОбработкиДанных + Normal + Auto + true + true + UserCmds + Auto + + true + true + + true + <key>ru</key> - <value>Техническая информация из журнала регистрации для обращения в службу технической поддержки.</value> + <value>Переход к списку и проблемы</value> + + ГруппаПереходКСпискуИПроблемыРасширеннаяПодсказка + 299 + Label + true + true + + Left + + + UsualGroup + + Vertical + Auto + true + true + Auto + Auto + + + + ГиперссылкаОсновноеОбновление + 88 + + <key>ru</key> + <value>Техническая информация о результатах обновления</value> + + true + true + + true + + Button + + ГиперссылкаОсновноеОбновлениеExtendedTooltip + 132 + + <key>ru</key> + <value>Техническая информация из журнала регистрации для обращения в службу технической поддержки.</value> + + Label + true + true + + Left + + + + ГиперссылкаОсновноеОбновлениеКонтекстноеМеню + 89 + true + + Label + true + + + Click + ГиперссылкаОсновноеОбновлениеНажатие + + true + Left + + + true + true + + true + + + Группа3РасширеннаяПодсказка + 338 Label true true @@ -1932,20 +2916,14 @@ Left - - ГиперссылкаОсновноеОбновлениеКонтекстноеМеню - 89 - true - - Label - true - - - Click - ГиперссылкаОсновноеОбновлениеНажатие - - true - Left + UsualGroup + + Vertical + Auto + true + true + Auto + Auto true @@ -1969,7 +2947,7 @@ UsualGroup - Vertical + AlwaysHorizontal Auto true true @@ -2097,6 +3075,37 @@ 2 + + КартинкаШаблон + 358 + true + + true + + + КартинкаШаблонРасширеннаяПодсказка + 360 + Label + true + true + + Left + + + + КартинкаШаблонКонтекстноеМеню + 359 + true + + true + true + + + StdPicture.AppearanceExclamationMarkIcon + + AsFileRef + + Bottom true @@ -2131,6 +3140,33 @@ UserCmds Auto + + ФормаПерезапуститьОтложенноеОбновление + 291 + true + true + + true + + + ФормаПерезапуститьОтложенноеОбновлениеРасширеннаяПодсказка + 292 + Label + true + true + + Left + + + Form.Command.ПерезапуститьОтложенноеОбновление + Normal + Auto + true + true + UserCmds + Auto + InAdditionalSubmenu + Right @@ -2325,6 +3361,32 @@ true + + ЗаданиеАктивно + 12 + + Boolean + + + true + + + true + + + + ОбновлениеЗавершеноУспешно + 13 + + Boolean + + + true + + + true + + ВыполнитьОбновление @@ -2393,24 +3455,6 @@ <currentRowUse>DontUse</currentRowUse> <selectedRowsUse>Auto</selectedRowsUse> </formCommands> - <formCommands> - <name>СнятьБлокировкуРегламентныхЗаданий</name> - <title> - <key>ru</key> - <value>Проверить блокировку регламентных заданий</value> - - 5 - - true - - - - СнятьБлокировкуРегламентныхЗаданий - - - DontUse - Auto - ИнформацияДляТехническойПоддержки @@ -2433,6 +3477,28 @@ <currentRowUse>Auto</currentRowUse> <selectedRowsUse>Auto</selectedRowsUse> </formCommands> + <formCommands> + <name>ПерезапуститьОтложенноеОбновление</name> + <title> + <key>ru</key> + <value>Перезапустить отложенное обновление...</value> + + 5 + + ru + Перезапустить отложенное обновление + + + true + + + + ПерезапуститьОтложенноеОбновление + + + Auto + Auto + ОткрытиеИзПанелиАдминистрирования diff --git a/SSL/src/DataProcessors/РезультатыОбновленияПрограммы/Forms/ИндикацияХодаОтложенногоОбновленияИБ/Help/ru.html b/SSL/src/DataProcessors/РезультатыОбновленияПрограммы/Forms/РезультатыОбновленияПрограммы/Help/ru.html similarity index 100% rename from SSL/src/DataProcessors/РезультатыОбновленияПрограммы/Forms/ИндикацияХодаОтложенногоОбновленияИБ/Help/ru.html rename to SSL/src/DataProcessors/РезультатыОбновленияПрограммы/Forms/РезультатыОбновленияПрограммы/Help/ru.html diff --git a/SSL/src/DataProcessors/РезультатыОбновленияПрограммы/Forms/ИндикацияХодаОтложенногоОбновленияИБ/Module.bsl b/SSL/src/DataProcessors/РезультатыОбновленияПрограммы/Forms/РезультатыОбновленияПрограммы/Module.bsl similarity index 65% rename from SSL/src/DataProcessors/РезультатыОбновленияПрограммы/Forms/ИндикацияХодаОтложенногоОбновленияИБ/Module.bsl rename to SSL/src/DataProcessors/РезультатыОбновленияПрограммы/Forms/РезультатыОбновленияПрограммы/Module.bsl index ed3a8c20d..9f2c1544f 100644 --- a/SSL/src/DataProcessors/РезультатыОбновленияПрограммы/Forms/ИндикацияХодаОтложенногоОбновленияИБ/Module.bsl +++ b/SSL/src/DataProcessors/РезультатыОбновленияПрограммы/Forms/РезультатыОбновленияПрограммы/Module.bsl @@ -58,6 +58,7 @@ Если Не ИБФайловая И СведенияОбОбновлении.ОтложенноеОбновлениеЗавершеноУспешно = Неопределено Тогда Элементы.СтатусОбновления.ТекущаяСтраница = Элементы.ОбновлениеВыполняется; + ПроверитьВыполнениеОтложенногоОбновления(СведенияОбОбновлении); Иначе Элементы.СтатусОбновления.ТекущаяСтраница = Элементы.ОбновлениеВФайловойБазе; КонецЕсли; @@ -89,6 +90,7 @@ КонецЕсли; Иначе + ОбновитьИнформациюПоПроблемам(); Элементы.ИнформацияСтатусОбновления.Видимость = Ложь; Элементы.ИзменитьРасписание.Видимость = Ложь; КонецЕсли; @@ -121,7 +123,19 @@ Элементы.ОткрытьСписокОтложенныхОбработчиков.Заголовок = ТекстСообщения; Элементы.ЗаголовокИнформации.Заголовок = СтроковыеФункцииКлиентСервер.ПодставитьПараметрыВСтроку( НСтр("ru = 'Выполняются дополнительные процедуры обработки данных на версию %1 - |Работа с этими данными временно ограничена'"), Метаданные.Версия); + |Работа с этими данными временно ограничена.'"), Метаданные.Версия); + + Элементы.ФормаПерезапуститьОтложенноеОбновление.Видимость = Не ОбщегоНазначения.ЭтоПодчиненныйУзелРИБ() + И ЕстьОбработчикиСПараллельнымРежимомВыполнения() + И Пользователи.ЭтоПолноправныйПользователь(); + + ПодсказкаПроблемСДанными = НСтр("ru = 'Проблемы с данными могут мешать их обработке при переходе на новую версию. + |Если выполнение дополнительных процедур обработки данных завершилось с ошибкой, то необходимо: + | • перейти к списку проблем и исправить их согласно рекомендации в отчете; + | • продолжить выполнение дополнительных процедур обработки данных, для чего необходимо перейти по гиперссылке Не все процедуры удалось выполнить ... и нажать на кнопку Запустить внизу формы.'"); + ПодсказкаПроблемСДанными = СтроковыеФункции.ФорматированнаяСтрока(ПодсказкаПроблемСДанными); + Элементы.ПроблемыСДанными.РасширеннаяПодсказка.Заголовок = ПодсказкаПроблемСДанными; + Элементы.ПроблемыСДаннымиЗавершено.РасширеннаяПодсказка.Заголовок = ПодсказкаПроблемСДанными; КонецПроцедуры @@ -153,7 +167,17 @@ Элементы.СтатусОбновления.ТекущаяСтраница = Элементы.ОбновлениеВыполняется; КонецЕсли; + ОбновлениеЗавершеноУспешно = Ложь; ПодключитьОбработчикОжидания("ЗапуститьОтложенноеОбновление", 0.5, Истина); + ИначеЕсли ИмяСобытия = "ОтложенноеОбновлениеПерезапущено" Тогда + Если ИБФайловая Тогда + Элементы.СтатусОбновления.ТекущаяСтраница = Элементы.ОбновлениеВФайловойБазе; + Иначе + Элементы.СтатусОбновления.ТекущаяСтраница = Элементы.ОбновлениеВыполняется; + КонецЕсли; + ОбновлениеЗавершеноУспешно = Ложь; + ПроверитьСтатусВыполненияОбработчиков(); + ПодключитьОбработчикОжидания("ПроверитьСтатусВыполненияОбработчиков", 15); КонецЕсли; КонецПроцедуры @@ -217,6 +241,23 @@ ПоказатьУстановленныеИсправления(); КонецПроцедуры +&НаКлиенте +Процедура ПояснениеОбновлениеНеВыполняетсяОбработкаНавигационнойСсылки(Элемент, НавигационнаяСсылкаФорматированнойСтроки, СтандартнаяОбработка) + СтандартнаяОбработка = Ложь; + + Если НавигационнаяСсылкаФорматированнойСтроки = "ПроверитьБлокировку" Тогда + Если ОбщегоНазначенияКлиент.ПодсистемаСуществует("СтандартныеПодсистемы.ЗавершениеРаботыПользователей") Тогда + МодульСоединенияИБКлиент = ОбщегоНазначенияКлиент.ОбщийМодуль("СоединенияИБКлиент"); + МодульСоединенияИБКлиент.ПриОткрытииФормыБлокировкиРаботыПользователей(); + КонецЕсли; + ИначеЕсли НавигационнаяСсылкаФорматированнойСтроки = "Включить" Тогда + ВключитьРегламентноеЗадание(); + ТекстСообщения = НСтр("ru = 'Задание включено. Статус обновления скоро обновится.'"); + ПоказатьПредупреждение(, ТекстСообщения); + КонецЕсли; + +КонецПроцедуры + #КонецОбласти #Область ОбработчикиКомандФормы @@ -247,14 +288,6 @@ КонецПроцедуры -&НаКлиенте -Процедура СнятьБлокировкуРегламентныхЗаданий(Команда) - Если ОбщегоНазначенияКлиент.ПодсистемаСуществует("СтандартныеПодсистемы.ЗавершениеРаботыПользователей") Тогда - МодульСоединенияИБКлиент = ОбщегоНазначенияКлиент.ОбщийМодуль("СоединенияИБКлиент"); - МодульСоединенияИБКлиент.ПриОткрытииФормыБлокировкиРаботыПользователей(); - КонецЕсли; -КонецПроцедуры - &НаКлиенте Процедура ИнформацияДляТехническойПоддержки(Команда) @@ -276,6 +309,32 @@ КонецЕсли; КонецПроцедуры +&НаКлиенте +Процедура ПроблемныеСитуацииНажатие(Элемент) + Уровни = Новый Массив; + Уровни.Добавить("Ошибка"); + Уровни.Добавить("Предупреждение"); + + ОтборЖурнала = Новый Структура; + ОтборЖурнала.Вставить("ДатаНачала", ВремяНачалаОтложенногоОбновления); + ОтборЖурнала.Вставить("Уровень", Уровни); + ОтборЖурнала.Вставить("СобытиеЖурналаРегистрации", НСтр("ru = 'Обновление информационной базы'", ОбщегоНазначенияКлиент.КодОсновногоЯзыка())); + ЖурналРегистрацииКлиент.ОткрытьЖурналРегистрации(ОтборЖурнала, ЭтотОбъект); +КонецПроцедуры + +&НаКлиенте +Процедура ПерезапуститьОтложенноеОбновление(Команда) + ОткрытьФорму("РегистрСведений.ОбработчикиОбновления.Форма.ПерезапускОтложенногоОбновления"); +КонецПроцедуры + +&НаКлиенте +Процедура ПроблемыСДаннымиНажатие(Элемент) + Если ОбщегоНазначенияКлиент.ПодсистемаСуществует("СтандартныеПодсистемы.КонтрольВеденияУчета") Тогда + МодульКонтрольВеденияУчетаКлиент = ОбщегоНазначенияКлиент.ОбщийМодуль("КонтрольВеденияУчетаКлиент"); + МодульКонтрольВеденияУчетаКлиент.ОткрытьОтчетПоПроблемам("ОбновлениеВерсииИБ", Ложь); + КонецЕсли; +КонецПроцедуры + #КонецОбласти #Область СлужебныеПроцедурыИФункции @@ -304,8 +363,6 @@ Элементы.ГруппаИнформацияОбУдаленииПатчей.Видимость = Ложь; КонецЕсли; - Элементы.СнятьБлокировкуРегламентныхЗаданий.Видимость = ОбщегоНазначения.ПодсистемаСуществует("СтандартныеПодсистемы.ЗавершениеРаботыПользователей"); - КонецПроцедуры &НаСервере @@ -346,6 +403,7 @@ ВыполнитьОбновлениеНаСервере(); Если Не ИБФайловая Тогда + ПроверитьСтатусВыполненияОбработчиков(); ПодключитьОбработчикОжидания("ПроверитьСтатусВыполненияОбработчиков", 15); Возврат; КонецЕсли; @@ -378,6 +436,9 @@ Если ОбновлениеЗавершено = Истина Тогда ОбновитьСтраницуОбновлениеЗавершено(СведенияОбОбновлении); + ОбновитьИнформациюПоПроблемам(); + Иначе + ПроверитьВыполнениеОтложенногоОбновления(СведенияОбОбновлении); КонецЕсли; КонецПроцедуры @@ -396,7 +457,7 @@ ОбновлениеИнформационнойБазыСлужебный.ЗаписатьСведенияОбОбновленииИнформационнойБазы(СведенияОбОбновлении); Если Не ИБФайловая Тогда - ОбновлениеИнформационнойБазыСлужебный.ПриВключенииОтложенногоОбновления(Истина); + ВключитьРегламентноеЗадание(); Возврат; КонецЕсли; @@ -474,6 +535,7 @@ ТекстСообщения = СтроковыеФункцииКлиентСервер.ПодставитьПараметрыВСтроку(НСтр("ru = 'Все процедуры обновления выполнены успешно (%1)'"), Прогресс.ВыполненоОбработчиков); КонецЕсли; Элементы.КартинкаЗавершено.Картинка = БиблиотекаКартинок.Успешно32; + ОбновлениеЗавершеноУспешно = Истина; Иначе ТекстСообщения = СтроковыеФункцииКлиентСервер.ПодставитьПараметрыВСтроку(НСтр("ru = 'Не все процедуры удалось выполнить (выполнено %1 из %2)'"), Прогресс.ВыполненоОбработчиков, Прогресс.ВсегоОбработчиков); @@ -497,6 +559,85 @@ Прогресс.ВыполненоОбработчиков, Прогресс.ВсегоОбработчиков); + ОбновитьИнформациюПоПроблемам(); + +КонецПроцедуры + +&НаСервере +Процедура ОбновитьИнформациюПоПроблемам() + + // Отображение информации о проблеме с обработчиками. + КоличествоПроблемВОбработчиках = ПроблемныеСитуацииВОбработчикахОбновления(); + Если КоличествоПроблемВОбработчиках <> 0 И Не ОбновлениеЗавершеноУспешно Тогда + ТекстИндикатора = НСтр("ru = 'Проблемы с обработчиками'"); + Иначе + ТекстИндикатора = НСтр("ru = 'Проблем с обработчиками не обнаружено'"); + КонецЕсли; + + Элементы.ПроблемныеСитуации.Заголовок = ТекстИндикатора; // На странице прогресса обновления. + Элементы.ПроблемныеСитуацииЗавершено.Заголовок = ТекстИндикатора; // На странице завершенного обновления. + + // Отображение информации о проблеме с данными. + КоличествоПроблемСДанными = ОбновлениеИнформационнойБазыСлужебный.КоличествоПроблемСДанными(); + Если КоличествоПроблемСДанными <> 0 Тогда + ТекстИндикатора = НСтр("ru = 'Проблемы с данными (%1)'"); + ТекстИндикатора = СтроковыеФункцииКлиентСервер.ПодставитьПараметрыВСтроку(ТекстИндикатора, КоличествоПроблемСДанными); + Иначе + ТекстИндикатора = НСтр("ru = 'Проблем с данными не обнаружено'"); + КонецЕсли; + + Элементы.ПроблемыСДанными.Заголовок = ТекстИндикатора; // На странице прогресса обновления. + Элементы.ПроблемыСДаннымиЗавершено.Заголовок = ТекстИндикатора; // На странице завершенного обновления + + // Оформление элементов индикации проблем с данными. + ГиперссылкаПроблемСОбработчиками = Ложь; + ГиперссылкаПроблемСДанными = Ложь; + КартинкаПроблемСОбработчиками = БиблиотекаКартинок.ОформлениеЗнакФлажок; + КартинкаПроблемСДанными = БиблиотекаКартинок.ОформлениеЗнакФлажок; + + Если КоличествоПроблемВОбработчиках <> 0 И КоличествоПроблемСДанными <> 0 Тогда + Если Не ОбновлениеЗавершеноУспешно Тогда + КартинкаПроблемСОбработчиками = Элементы.КартинкаШаблон.Картинка; + ГиперссылкаПроблемСОбработчиками = Истина; + КонецЕсли; + КартинкаПроблемСДанными = Элементы.КартинкаШаблон.Картинка; + ГиперссылкаПроблемСДанными = Истина; + + ИначеЕсли КоличествоПроблемВОбработчиках <> 0 И Не ОбновлениеЗавершеноУспешно И КоличествоПроблемСДанными = 0 Тогда + КартинкаПроблемСОбработчиками = Элементы.КартинкаШаблон.Картинка; + ГиперссылкаПроблемСОбработчиками = Истина; + + ИначеЕсли КоличествоПроблемВОбработчиках = 0 И КоличествоПроблемСДанными <> 0 Тогда + КартинкаПроблемСДанными = Элементы.КартинкаШаблон.Картинка; + ГиперссылкаПроблемСДанными = Истина; + + КонецЕсли; + + Элементы.ПроблемыСДанными.Гиперссылка = ГиперссылкаПроблемСДанными; + Элементы.ПроблемныеСитуации.Гиперссылка = ГиперссылкаПроблемСОбработчиками; + Элементы.ПроблемыСДаннымиЗавершено.Гиперссылка = ГиперссылкаПроблемСДанными; + Элементы.ПроблемныеСитуацииЗавершено.Гиперссылка = ГиперссылкаПроблемСОбработчиками; + + Элементы.ДекорацияИндикацияПроблем.Картинка = КартинкаПроблемСОбработчиками; + Элементы.ДекорацияИндикацияПроблемСДанными.Картинка = КартинкаПроблемСДанными; + Элементы.ДекорацияИндикацияПроблемЗавершено.Картинка = КартинкаПроблемСОбработчиками; + Элементы.ДекорацияИндикацияПроблемСДаннымиЗавершено.Картинка = КартинкаПроблемСДанными; + + // Отображение предупреждения о зацикливании обработки данных. + ПредупреждатьОЗацикливании = Ложь; + Если ПриоритетОбновления = "ОбработкаДанных" + И ЗаданиеАктивно + И ЗавершенныеВсеПоследовательныеОбработчики() Тогда + СведенияОбОбновлении = ОбновлениеИнформационнойБазыСлужебный.СведенияОбОбновленииИнформационнойБазы(); + ДатаНачалаСеансаОбновления = СведенияОбОбновлении.ДатаНачалаСеансаОбновления; + Если ДатаНачалаСеансаОбновления <> Неопределено + И ТекущаяДатаСеанса() - ДатаНачалаСеансаОбновления > 5400 + И Не ЕстьИнтервалыПрогрессаОбработкиДанных() Тогда + ПредупреждатьОЗацикливании = Истина; + КонецЕсли; + КонецЕсли; + + Элементы.ДекорацияПредупреждениеОЗацикливании.Видимость = ПредупреждатьОЗацикливании; КонецПроцедуры &НаСервере @@ -533,6 +674,44 @@ КонецФункции +&НаСервере +Функция ЗавершенныеВсеПоследовательныеОбработчики() + + Запрос = Новый Запрос; + Запрос.УстановитьПараметр("РежимВыполненияОтложенногоОбработчика", Перечисления.РежимыВыполненияОтложенныхОбработчиков.Последовательно); + Запрос.УстановитьПараметр("Статус", Перечисления.СтатусыОбработчиковОбновления.Выполнен); + Запрос.Текст = + "ВЫБРАТЬ ПЕРВЫЕ 1 + | ИСТИНА + |ИЗ + | РегистрСведений.ОбработчикиОбновления КАК ОбработчикиОбновления + |ГДЕ + | ОбработчикиОбновления.РежимВыполненияОтложенногоОбработчика = &РежимВыполненияОтложенногоОбработчика + | И ОбработчикиОбновления.Статус <> &Статус"; + + Возврат Запрос.Выполнить().Пустой(); + +КонецФункции + +&НаСервере +Функция ЕстьИнтервалыПрогрессаОбработкиДанных() + + ПроверяемыйИнтервал = НачалоЧаса(ТекущаяДатаСеанса() - 7200); + + Запрос = Новый Запрос; + Запрос.УстановитьПараметр("ИнтервалЧас", ПроверяемыйИнтервал); + Запрос.Текст = + "ВЫБРАТЬ ПЕРВЫЕ 1 + | ИСТИНА + |ИЗ + | РегистрСведений.ПрогрессОбновления КАК ПрогрессОбновления + |ГДЕ + | ПрогрессОбновления.ИнтервалЧас >= &ИнтервалЧас"; + + Возврат Не Запрос.Выполнить().Пустой(); + +КонецФункции + &НаСервере Процедура УстановитьРасписаниеОтложенногоОбновления(НовоеРасписание) @@ -561,9 +740,9 @@ КнопкиВопроса.Добавить("РекомендуемыеНастройки", НСтр("ru = 'Установить рекомендуемые настройки'")); ТекстСообщения = НСтр("ru = 'Дополнительные процедуры обработки данных выполняются небольшими порциями, - |поэтому для их корректной работы обязательно задайте интервал повтора после завершения. + |поэтому для их корректной работы необходимо обязательно задать интервал повтора после завершения. | - |Для этого в окне настройки расписания перейдите на вкладку ""Дневное"" + |Для этого в окне настройки расписания необходимо перейти на вкладку ""Дневное"" |и заполнить поле ""Повторять через"".'"); ПоказатьВопрос(Оповещение, ТекстСообщения, КнопкиВопроса,, "НастроитьРасписание"); Иначе @@ -698,4 +877,120 @@ КонецПроцедуры +&НаСервере +Функция ПроблемныеСитуацииВОбработчикахОбновления() + + Запрос = Новый Запрос; + Запрос.УстановитьПараметр("РежимВыполнения", Перечисления.РежимыВыполненияОбработчиков.Отложенно); + Запрос.УстановитьПараметр("Статус", Перечисления.СтатусыОбработчиковОбновления.Выполнен); + Запрос.Текст = + "ВЫБРАТЬ + | ОбработчикиОбновления.ИмяОбработчика КАК ИмяОбработчика, + | ОбработчикиОбновления.СтатистикаВыполнения КАК СтатистикаВыполнения + |ИЗ + | РегистрСведений.ОбработчикиОбновления КАК ОбработчикиОбновления + |ГДЕ + | ОбработчикиОбновления.РежимВыполнения = &РежимВыполнения"; + Результат = Запрос.Выполнить().Выгрузить(); + + КоличествоПроблем = 0; + Для Каждого Строка Из Результат Цикл + СтатистикаВыполнения = Строка.СтатистикаВыполнения; + СтатистикаВыполнения = СтатистикаВыполнения.Получить(); + Если ТипЗнч(СтатистикаВыполнения) <> Тип("Соответствие") Тогда + Продолжить; + КонецЕсли; + + Если СтатистикаВыполнения["ЕстьОшибки"] = Истина Тогда + КоличествоПроблем = КоличествоПроблем + 1; + КонецЕсли; + КонецЦикла; + + Возврат КоличествоПроблем; + +КонецФункции + +&НаСервере +Процедура ПроверитьВыполнениеОтложенногоОбновления(СведенияОбОбновлении) + + Если ОбщегоНазначения.РазделениеВключено() Тогда + Возврат; + КонецЕсли; + + Задание = РегламентныеЗаданияСервер.Задание(Метаданные.РегламентныеЗадания.ОтложенноеОбновлениеИБ); + ЗаданиеВыполняется = Ложь; + Сообщения = Новый Массив; + ИдентификаторГиперссылки = ""; + Если Задание.Использование Тогда + ОтборЗаданий = Новый Структура; + ОтборЗаданий.Вставить("ИмяМетода", "ОбновлениеИнформационнойБазыСлужебный.ВыполнитьОтложенноеОбновление"); + НайденныеЗадания = ФоновыеЗадания.ПолучитьФоновыеЗадания(ОтборЗаданий); + + Для Каждого ФоновоеЗадание Из НайденныеЗадания Цикл + // Есть активное фоновое задание обновления. + Если ФоновоеЗадание.Состояние = СостояниеФоновогоЗадания.Активно Тогда + ЗаданиеАктивно = Истина; + ЗаданиеВыполняется = Истина; + Прервать; + КонецЕсли; + ЗаданиеАктивно = Ложь; + + // АПК:143-выкл в фоновых заданиях используется текущая дата. + // Фоновое задание недавно выполнялось. + Если ФоновоеЗадание.Конец > ТекущаяДата() - Задание.Расписание.ПериодПовтораВТечениеДня * 5 Тогда + ЗаданиеВыполняется = Истина; + КонецЕсли; + + Если Не ЗаданиеВыполняется Тогда + ТребуетсяВыполнение = Задание.Расписание.ТребуетсяВыполнение(ТекущаяДата(), ФоновоеЗадание.Начало, ФоновоеЗадание.Конец); + ЗаданиеВыполняется = Не ТребуетсяВыполнение; + КонецЕсли; + // АПК:143-вкл + + Прервать; + КонецЦикла; + + ТекстСообщения = НСтр("ru = 'Регламентное задание Отложенное обновление включено, но + |не выполняется. Вероятно включена блокировка выполнения регламентных заданий.'"); + Сообщения.Добавить(СтрСоединить(СтрРазделить(ТекстСообщения, Символы.ПС), " ")); + Если ОбщегоНазначения.ПодсистемаСуществует("СтандартныеПодсистемы.ЗавершениеРаботыПользователей") Тогда + Сообщения.Добавить(НСтр("ru = 'Проверить блокировку регламентных заданий'")); + ИдентификаторГиперссылки = "ПроверитьБлокировку"; + КонецЕсли; + Иначе + ТекстСообщения = НСтр("ru = 'Дополнительные процедуры обработки данных не выполняются, + |т.к. отключено регламентное задание Отложенное обновление.'"); + Сообщения.Добавить(СтрСоединить(СтрРазделить(ТекстСообщения, Символы.ПС), " ")); + Сообщения.Добавить(НСтр("ru = 'Включить'")); + ИдентификаторГиперссылки = "Включить"; + КонецЕсли; + ТекстСообщения = СтроковыеФункции.ФорматированнаяСтрока(СтрСоединить(Сообщения, Символы.ПС), ИдентификаторГиперссылки); + Элементы.ПояснениеОбновлениеНеВыполняется.Заголовок = ТекстСообщения; + + Элементы.ГруппаШапкаКлиентСервер.Видимость = ЗаданиеВыполняется; + Элементы.ГруппаШапкаОбновлениеНеВыполняется.Видимость = Не ЗаданиеВыполняется; + +КонецПроцедуры + +&НаСервере +Процедура ВключитьРегламентноеЗадание() + ОбновлениеИнформационнойБазыСлужебный.ПриВключенииОтложенногоОбновления(Истина); +КонецПроцедуры + +&НаСервере +Функция ЕстьОбработчикиСПараллельнымРежимомВыполнения() + + Запрос = Новый Запрос; + Запрос.УстановитьПараметр("РежимВыполненияОтложенногоОбработчика", Перечисления.РежимыВыполненияОтложенныхОбработчиков.Параллельно); + Запрос.Текст = + "ВЫБРАТЬ ПЕРВЫЕ 1 + | ИСТИНА + |ИЗ + | РегистрСведений.ОбработчикиОбновления КАК ОбработчикиОбновления + |ГДЕ + | ОбработчикиОбновления.РежимВыполненияОтложенногоОбработчика = &РежимВыполненияОтложенногоОбработчика"; + Возврат Не Запрос.Выполнить().Пустой(); + +КонецФункции + #КонецОбласти 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 100% rename from SSL/src/DataProcessors/РезультатыОбновленияПрограммы/Forms/ОбновлениеДляНеполноправногоПользователя/Module.bsl rename to SSL/src/DataProcessors/РезультатыОбновленияПрограммы/Forms/СообщениеДляНеполноправногоПользователя/Module.bsl diff --git a/SSL/src/DataProcessors/РезультатыОбновленияПрограммы/Help/ru.html b/SSL/src/DataProcessors/РезультатыОбновленияПрограммы/Help/ru.html index 139a83a5b..30ee2d82b 100644 --- a/SSL/src/DataProcessors/РезультатыОбновленияПрограммы/Help/ru.html +++ b/SSL/src/DataProcessors/РезультатыОбновленияПрограммы/Help/ru.html @@ -24,7 +24,7 @@
    • После этого начинается подготовка к завершению активных сеансов других пользователей, работающих с программой. В активных сеансах пользователей программа выводит сообщение о необходимости завершить свою работу. В указанное в сообщении время производится принудительное завершение работы программы и продолжается обновление версии.
    • -
    • При этом выполнение программы не останавливается и открывается пустой рабочий стол с сообщением Обновление версии программы. В сообщении выводится номер версии, на которую производится обновление ИБ. Индикатор показывает ход обновления ИБ - графически и в процентном отношении. Для получения подробных сведений о ходе обновления ИБ из журнала регистрации перейдите по ссылке Техническая информация о ходе обновления. +
    • При этом выполнение программы не останавливается и открывается пустой рабочий стол с сообщением Обновление версии программы. В сообщении выводится номер версии, на которую производится обновление ИБ. Индикатор показывает ход обновления ИБ - графически и в процентном отношении. Для получения подробных сведений о ходе обновления ИБ из журнала регистрации перейдите по ссылке Техническая информация о ходе обновления.
    • Если запуск происходит на устаревшей версии платформы, то выводится сообщение о необходимости обновления версии платформы и блокирует рабочий стол.
    • @@ -33,7 +33,7 @@
    • Если в процессе обновления возникает нештатная ситуация, то программа выводит сообщение об ошибке, по поводу которого необходимо обратиться в службу технической поддержки. По ссылке Подробности см. в Журнале регистрации можно просмотреть сообщения, возникшие в процессе обновления. Работа с программой в таком случае не может быть продолжена.
    • В случае успешного обновления программы открывается окно Что нового. Также будет разблокирован вход в программу для всех пользователей.

    Описание изменений программы

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

    Особенности и преимущества отложенного обновления ИБ

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

    Особенности и преимущества отложенного обновления ИБ

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

    Контроль процесса отложенного обновления

    diff --git a/SSL/src/DataProcessors/РезультатыОбновленияПрограммы/РезультатыОбновленияПрограммы.mdo b/SSL/src/DataProcessors/РезультатыОбновленияПрограммы/РезультатыОбновленияПрограммы.mdo index dd4788351..7e6c21668 100644 --- a/SSL/src/DataProcessors/РезультатыОбновленияПрограммы/РезультатыОбновленияПрограммы.mdo +++ b/SSL/src/DataProcessors/РезультатыОбновленияПрограммы/РезультатыОбновленияПрограммы.mdo @@ -10,7 +10,7 @@ Результаты обновления программы АПК:78-выкл для вызова различных этапов обновления - DataProcessor.РезультатыОбновленияПрограммы.Form.ИндикацияХодаОтложенногоОбновленияИБ + DataProcessor.РезультатыОбновленияПрограммы.Form.РезультатыОбновленияПрограммы true @@ -18,10 +18,10 @@ - ИндикацияХодаОтложенногоОбновленияИБ + РезультатыОбновленияПрограммы ru - Индикация хода отложенного обновления ИБ + Результаты обновления программы @@ -46,10 +46,10 @@ MobileDevice - ИндикацияХодаОбновленияИБ + ОбновлениеВерсииПрограммы ru - Индикация хода обновления ИБ + Обновление версии программы @@ -92,10 +92,10 @@ MobileDevice - ОбновлениеДляНеполноправногоПользователя + СообщениеДляНеполноправногоПользователя ru - Обновление для неполноправного пользователя + Сообщение для неполноправного пользователя PersonalComputer MobileDevice diff --git a/SSL/src/DataProcessors/СдвигГраницыИтогов/Forms/ОсновнаяФорма/Form.form b/SSL/src/DataProcessors/СдвигГраницыИтогов/Forms/ОсновнаяФорма/Form.form index 615f559b2..1df4e95a5 100644 --- a/SSL/src/DataProcessors/СдвигГраницыИтогов/Forms/ОсновнаяФорма/Form.form +++ b/SSL/src/DataProcessors/СдвигГраницыИтогов/Forms/ОсновнаяФорма/Form.form @@ -48,7 +48,7 @@ 20 <key>ru</key> - <value><fontstyle -31><b>Выполняется сдвиг границы рассчитанных итогов...</></> + <value><fontstyle -31>Выполняется сдвиг границы рассчитанных итогов...</> <fontstyle -31>Пожалуйста, подождите, это может занять некоторое время.</></value> true diff --git a/SSL/src/DataProcessors/Сканирование/Forms/РезультатСканирования/Form.form b/SSL/src/DataProcessors/Сканирование/Forms/РезультатСканирования/Form.form index 67fccf25b..79e50b2d4 100644 --- a/SSL/src/DataProcessors/Сканирование/Forms/РезультатСканирования/Form.form +++ b/SSL/src/DataProcessors/Сканирование/Forms/РезультатСканирования/Form.form @@ -338,7 +338,7 @@ false - CommonPicture.Информация + StdPicture.Information diff --git a/SSL/src/DataProcessors/СопоставлениеОбъектовИнформационныхБаз/Forms/Форма/Form.form b/SSL/src/DataProcessors/СопоставлениеОбъектовИнформационныхБаз/Forms/Форма/Form.form index 9073b3dd8..1cba42b21 100644 --- a/SSL/src/DataProcessors/СопоставлениеОбъектовИнформационныхБаз/Forms/Форма/Form.form +++ b/SSL/src/DataProcessors/СопоставлениеОбъектовИнформационныхБаз/Forms/Форма/Form.form @@ -2193,7 +2193,7 @@ false - CommonPicture.Информация + CommonPicture.УдалитьИнформация diff --git a/SSL/src/DataProcessors/УдалениеПомеченныхОбъектов/Forms/ОсновнаяФорма/Form.form b/SSL/src/DataProcessors/УдалениеПомеченныхОбъектов/Forms/ОсновнаяФорма/Form.form index aa81d77a1..e6f6f2918 100644 --- a/SSL/src/DataProcessors/УдалениеПомеченныхОбъектов/Forms/ОсновнаяФорма/Form.form +++ b/SSL/src/DataProcessors/УдалениеПомеченныхОбъектов/Forms/ОсновнаяФорма/Form.form @@ -330,6 +330,7 @@ true UserCmds Auto + InAdditionalSubmenu true true @@ -3063,7 +3064,7 @@ true - CommonPicture.Информация + StdPicture.Information diff --git a/SSL/src/DataProcessors/УдалениеПомеченныхОбъектов/ManagerModule.bsl b/SSL/src/DataProcessors/УдалениеПомеченныхОбъектов/ManagerModule.bsl index 080ad4f88..5ba01ceab 100644 --- a/SSL/src/DataProcessors/УдалениеПомеченныхОбъектов/ManagerModule.bsl +++ b/SSL/src/DataProcessors/УдалениеПомеченныхОбъектов/ManagerModule.bsl @@ -294,16 +294,8 @@ Продолжить; КонецЕсли; - СтандартнаяОбработка = Истина; Контекст = Новый Структура; - ПередУдалениемГруппыОбъектов( - Контекст, - ОбщегоНазначения.ФиксированныеДанные(СсылкиНаУдаляемыеОбъекты, Ложь), - СтандартнаяОбработка); - - Если Не СтандартнаяОбработка Тогда - Продолжить; - КонецЕсли; + ПередУдалениемГруппыОбъектов(Контекст, ОбщегоНазначения.ФиксированныеДанные(СсылкиНаУдаляемыеОбъекты, Ложь)); НельзяУдалятьОсновнойОбъект = Ложь; НеудаленныеЭлементы = Новый Массив; @@ -311,10 +303,8 @@ Попытка ОсновнойОбъект = ОсновнойИПодчиненныеОбъекты[ОсновнойИПодчиненныеОбъекты.ВГраница()]; - Для каждого УдаляемыйСсылка Из ОсновнойИПодчиненныеОбъекты Цикл - Фильтр = Новый Структура("УдаляемыйСсылка", УдаляемыйСсылка.УдаляемыйСсылка); РезультатУдаления = УдалитьЭлементПакета( ПараметрыУдаления, @@ -355,11 +345,10 @@ Если НЕ НельзяУдалятьОсновнойОбъект Тогда ЗафиксироватьТранзакцию(); - ПослеУдаленияГруппыОбъектов(Контекст, Истина); Иначе ОтменитьТранзакцию(); - ПослеУдаленияГруппыОбъектов(Контекст, Ложь); КонецЕсли; + ПослеУдаленияГруппыОбъектов(Контекст, НЕ НельзяУдалятьОсновнойОбъект); Исключение ОтменитьТранзакцию(); @@ -378,13 +367,15 @@ КонецФункции // см. УдалениеПомеченныхОбъектовПереопределяемый.ПередУдалениемГруппыОбъектов -Процедура ПередУдалениемГруппыОбъектов(Контекст, СвязанныеОбъекты, СтандартнаяОбработка) - ИнтеграцияПодсистемБСП.ПередУдалениемГруппыОбъектов(Контекст, СвязанныеОбъекты, СтандартнаяОбработка); +Процедура ПередУдалениемГруппыОбъектов(Контекст, УдаляемыеОбъекты) + ИнтеграцияПодсистемБСП.ПередУдалениемГруппыОбъектов(Контекст, УдаляемыеОбъекты); + УдалениеПомеченныхОбъектовПереопределяемый.ПередУдалениемГруппыОбъектов(Контекст, УдаляемыеОбъекты); КонецПроцедуры // см. УдалениеПомеченныхОбъектовПереопределяемый.ПослеУдаленияГруппыОбъектов Процедура ПослеУдаленияГруппыОбъектов(Контекст, Успешно) ИнтеграцияПодсистемБСП.ПослеУдаленияГруппыОбъектов(Контекст, Успешно); + УдалениеПомеченныхОбъектовПереопределяемый.ПослеУдаленияГруппыОбъектов(Контекст, Успешно); КонецПроцедуры Функция РезультатУдаленияЭлемента(Знач Элемент) @@ -799,17 +790,13 @@ // см. РезультатОбработки // Функция ОбработатьПакетВОднойТранзакции(ПараметрыУдаления, Пакет) + Результат = РезультатОбработки(); - СтандартнаяОбработка = Истина; Контекст = Новый Структура; УдаляемыеОбъекты = Пакет.ВыгрузитьКолонку("УдаляемыйСсылка"); - ПередУдалениемГруппыОбъектов(Контекст, УдаляемыеОбъекты, СтандартнаяОбработка); - - Если НЕ СтандартнаяОбработка Тогда - Возврат РезультатОбработки(); - КонецЕсли; - + ПередУдалениемГруппыОбъектов(Контекст, УдаляемыеОбъекты); + НачатьТранзакцию(); Попытка Для Каждого ЭлементПакета Из Пакет Цикл @@ -1578,12 +1565,10 @@ КонецЕсли; КонецЦикла; КонецЦикла; - ОбщегоНазначенияКлиентСервер.ДополнитьМассив( - УдаляемыеОбъекты, ПодчиненныеОбъекты); + ОбщегоНазначенияКлиентСервер.ДополнитьМассив(УдаляемыеОбъекты, ПодчиненныеОбъекты); Контекст = Новый Структура; - СтандартнаяОбработка = Истина; - ПередУдалениемГруппыОбъектов(Контекст, УдаляемыеОбъекты, СтандартнаяОбработка); + ПередУдалениемГруппыОбъектов(Контекст, УдаляемыеОбъекты); Пока УдаляемыеОбъекты.Количество() > 0 Цикл @@ -1624,11 +1609,7 @@ ВсеСвязиВИсключениях = Истина; - Если ПрепятствующиеУдалению.Количество() = 0 Тогда - ПослеУдаленияГруппыОбъектов(Контекст, Истина); - Иначе - ПослеУдаленияГруппыОбъектов(Контекст, Ложь); - КонецЕсли; + ПослеУдаленияГруппыОбъектов(Контекст, ПрепятствующиеУдалению.Количество() = 0); // Анализ причин не удаления (мест использования помеченных на удаление). Для Каждого СтрокаТаблицы Из ПрепятствующиеУдалению Цикл diff --git a/SSL/src/DataProcessors/УправлениеПодключениемDSS/Forms/ПодтверждениеПользователя/Module.bsl b/SSL/src/DataProcessors/УправлениеПодключениемDSS/Forms/ПодтверждениеПользователя/Module.bsl index 25af7012e..0d91499ff 100644 --- a/SSL/src/DataProcessors/УправлениеПодключениемDSS/Forms/ПодтверждениеПользователя/Module.bsl +++ b/SSL/src/DataProcessors/УправлениеПодключениемDSS/Forms/ПодтверждениеПользователя/Module.bsl @@ -255,7 +255,6 @@ МакетШапки = МакетПечати.ПолучитьОбласть("Ключ"); КартинкаКода = МакетШапки.Рисунки.ВекторАутентификации; КартинкаКода.Линия = Новый Линия(ТипЛинииРисункаТабличногоДокумента.НетЛинии); - КартинкаКода.ЦветФона = Новый Цвет(); КартинкаКода.Картинка = Новый Картинка(ПараметрыПечати.ДанныеКлюча); Результат.Вывести(МакетШапки); КонецЕсли; diff --git a/SSL/src/DataProcessors/УправлениеПодключениемDSS/Forms/РасширенныеНастройкиСервера/Module.bsl b/SSL/src/DataProcessors/УправлениеПодключениемDSS/Forms/РасширенныеНастройкиСервера/Module.bsl index 118f86810..5db9d00df 100644 --- a/SSL/src/DataProcessors/УправлениеПодключениемDSS/Forms/РасширенныеНастройкиСервера/Module.bsl +++ b/SSL/src/DataProcessors/УправлениеПодключениемDSS/Forms/РасширенныеНастройкиСервера/Module.bsl @@ -27,8 +27,8 @@ ПервичнаяАвторизация.ЗагрузитьЗначения(СервисКриптографииDSSСлужебный.ДоступныеСпособыПервичнойАвторизации()); ВторичнаяАвторизация.ЗагрузитьЗначения(СервисКриптографииDSSСлужебный.ДоступныеСпособыВторичнойАвторизации()); - СервисКриптографииDSSКлиентСервер.ПолучитьПредставлениеСпособовАвторизации(ПервичнаяАвторизация); - СервисКриптографииDSSКлиентСервер.ПолучитьПредставлениеСпособовАвторизации(ВторичнаяАвторизация); + СервисКриптографииDSSСлужебный.ПолучитьПредставлениеСпособовАвторизации(ПервичнаяАвторизация); + СервисКриптографииDSSСлужебный.ПолучитьПредставлениеСпособовАвторизации(ВторичнаяАвторизация); СпособыАвторизации = СервисКриптографииDSSКлиентСервер.ПолучитьПолеСтруктуры(Параметры, "СпособыАвторизации", Новый Массив); Для каждого СтрокаМассива Из СпособыАвторизации Цикл diff --git a/SSL/src/DataProcessors/УправлениеПодключениемDSS/Forms/СписокСертификатов/Module.bsl b/SSL/src/DataProcessors/УправлениеПодключениемDSS/Forms/СписокСертификатов/Module.bsl index dd91b67b7..6229af064 100644 --- a/SSL/src/DataProcessors/УправлениеПодключениемDSS/Forms/СписокСертификатов/Module.bsl +++ b/SSL/src/DataProcessors/УправлениеПодключениемDSS/Forms/СписокСертификатов/Module.bsl @@ -139,7 +139,7 @@ &НаКлиенте Процедура ВыборСтрокиСертификата() - + ТекущаяСтрока = Элементы.ТаблицаСертификатов.ТекущиеДанные; Если ТекущаяСтрока <> Неопределено Тогда ПараметрыЗакрытия = СервисКриптографииDSSКлиент.ОтветСервисаПоУмолчанию(); @@ -147,6 +147,9 @@ ВыборПользователя = Новый Структура("Отпечаток", ТекущаяСтрока.Отпечаток); Если ПолноеОписание Тогда ВыборПользователя = ПолучитьПолноеОписаниеСертификата(ВыборПользователя); + Если НЕ ВыборПользователя.Выполнено Тогда + ПараметрыЗакрытия = ВыборПользователя; + КонецЕсли; КонецЕсли; Иначе ВыборПользователя = ТекущаяСтрока.Идентификатор; diff --git a/SSL/src/DataProcessors/УправлениеПодключениемDSS/Forms/ФормаУчетнойЗаписи/Module.bsl b/SSL/src/DataProcessors/УправлениеПодключениемDSS/Forms/ФормаУчетнойЗаписи/Module.bsl index 4ade7fb5c..cb965b35b 100644 --- a/SSL/src/DataProcessors/УправлениеПодключениемDSS/Forms/ФормаУчетнойЗаписи/Module.bsl +++ b/SSL/src/DataProcessors/УправлениеПодключениемDSS/Forms/ФормаУчетнойЗаписи/Module.bsl @@ -448,9 +448,9 @@ ОбновитьДанныеСсылок(); ДоступныеСпособыАвторизации = ПодготовитьСписки(Объект.Владелец); Элементы.ВторичнаяАвторизация.СписокВыбора.ЗагрузитьЗначения(ДоступныеСпособыАвторизации.ВторичнаяАвторизация); - СервисКриптографииDSSКлиентСервер.ПолучитьПредставлениеСпособовАвторизации(Элементы.ВторичнаяАвторизация.СписокВыбора); + СервисКриптографииDSSСлужебный.ПолучитьПредставлениеСпособовАвторизации(Элементы.ВторичнаяАвторизация.СписокВыбора); Элементы.ПервичнаяАутентификация.СписокВыбора.ЗагрузитьЗначения(ДоступныеСпособыАвторизации.ПервичнаяАутентификация); - СервисКриптографииDSSКлиентСервер.ПолучитьПредставлениеСпособовАвторизации(Элементы.ПервичнаяАутентификация.СписокВыбора); + СервисКриптографииDSSСлужебный.ПолучитьПредставлениеСпособовАвторизации(Элементы.ПервичнаяАутентификация.СписокВыбора); УправлениеФормой(ЭтотОбъект); КонецПроцедуры @@ -508,7 +508,7 @@ Элементы.ГруппаСостояниеЗаявления.Видимость = ЗаявлениеПодключено И (ПринудительноПоказать ИЛИ НЕ НовоеЗаявление); Элементы.ИзменитьРеквизитыПодключения.Видимость = ЗаявлениеПодключено И НовоеЗаявление И НЕ ПринудительноПоказать; - Элементы.ОткрытьПредыдущееЗаявление.Видимость = ЗаявлениеПодключено И ЕстьЗаявление И ЗаявлениеПодключено; + Элементы.ОткрытьПредыдущееЗаявление.Видимость = ЗаявлениеПодключено И ЕстьЗаявление; КонецПроцедуры diff --git a/SSL/src/DataProcessors/УправлениеПодключениемDSS/Forms/ФормаЭкземпляраСервераDSS/Module.bsl b/SSL/src/DataProcessors/УправлениеПодключениемDSS/Forms/ФормаЭкземпляраСервераDSS/Module.bsl index 89077b1b4..63b758aa1 100644 --- a/SSL/src/DataProcessors/УправлениеПодключениемDSS/Forms/ФормаЭкземпляраСервераDSS/Module.bsl +++ b/SSL/src/DataProcessors/УправлениеПодключениемDSS/Forms/ФормаЭкземпляраСервераDSS/Module.bsl @@ -217,7 +217,7 @@ &НаКлиенте Процедура СервисОбработкиДокументовАвтоПодбор(Элемент, Текст, ДанныеВыбора, ПараметрыПолученияДанных, Ожидание, СтандартнаяОбработка) - ДополнитьСписокСервером(Элемент, Текст, СтандартнаяОбработка); + ДополнитьСписокСервером(Элемент, Текст, СтандартнаяОбработка, "DocumentStore"); КонецПроцедуры @@ -231,7 +231,7 @@ &НаКлиенте Процедура СервисАудитаАвтоПодбор(Элемент, Текст, ДанныеВыбора, ПараметрыПолученияДанных, Ожидание, СтандартнаяОбработка) - ДополнитьСписокСервером(Элемент, Текст, СтандартнаяОбработка); + ДополнитьСписокСервером(Элемент, Текст, СтандартнаяОбработка, "AnalyticsService"); КонецПроцедуры diff --git a/SSL/src/DataProcessors/УправлениеПодключениемDSS/ManagerModule.bsl b/SSL/src/DataProcessors/УправлениеПодключениемDSS/ManagerModule.bsl index ab873b15f..513cc4870 100644 --- a/SSL/src/DataProcessors/УправлениеПодключениемDSS/ManagerModule.bsl +++ b/SSL/src/DataProcessors/УправлениеПодключениемDSS/ManagerModule.bsl @@ -1027,7 +1027,7 @@ ВсеАдреса = АдресаСервисовОбработкиЗаявления(); ШаблонОписанияОшибки = - НСтр("ru = 'Не удалось обновить состояние по причине: %1'"); + НСтр("ru = 'Не удалось обновить состояние по причине'") + ": "; Попытка ВебСервис = ВебСервисУЦ(ВсеАдреса.ВебСервис, "http://regservice.keydisk.ru/", "RegService"); @@ -1042,8 +1042,10 @@ КонецПопытки; Если Не ЗначениеЗаполнено(Ответ) Тогда - Результат.Ошибка = СтроковыеФункцииКлиентСервер.ПодставитьПараметрыВСтроку(ШаблонОписанияОшибки, - НСтр("ru = 'Метод ReceivePacket сервиса 1С:Подпись вернул пустой ответ.'")); + Результат.Ошибка = ШаблонОписанияОшибки + + СтроковыеФункцииКлиентСервер.ПодставитьПараметрыВСтроку( + НСтр("ru = 'Метод %1 сервиса 1С:Подпись вернул пустой ответ.'"), + "ReceivePacket"); Возврат Результат; КонецЕсли; @@ -1069,8 +1071,10 @@ Результат.ДанныеОтвета = ДвоичныеДанные; Иначе - Результат.Ошибка = СтроковыеФункцииКлиентСервер.ПодставитьПараметрыВСтроку(ШаблонОписанияОшибки, - НСтр("ru = 'Метод ReceivePacket сервиса 1С:Подпись вернул пустые данные.'")); + Результат.Ошибка = ШаблонОписанияОшибки + + СтроковыеФункцииКлиентСервер.ПодставитьПараметрыВСтроку( + НСтр("ru = 'Метод %1 сервиса 1С:Подпись вернул пустые данные.'"), + "ReceivePacket"); КонецЕсли; ИначеЕсли КодРезультата = "1" Тогда @@ -1080,9 +1084,11 @@ Если УзелDOM.Количество() > 0 Тогда Результат.Ошибка = УзелDOM[0].ТекстовоеСодержимое; Иначе - Результат.Ошибка = СтроковыеФункцииКлиентСервер.ПодставитьПараметрыВСтроку( - НСтр("ru = 'Метод ReceivePacket сервиса 1С:Подпись вернул код ошибки: %1'"), - Строка(КодРезультата)); + Результат.Ошибка = ШаблонОписанияОшибки + + СтроковыеФункцииКлиентСервер.ПодставитьПараметрыВСтроку( + НСтр("ru = 'Метод %1 сервиса 1С:Подпись вернул код ошибки: %2'"), + "ReceivePacket", + Строка(КодРезультата)); КонецЕсли; КонецЕсли; @@ -1129,9 +1135,11 @@ КонецЕсли; Исключение ИнформацияОбОшибке = ИнформацияОбОшибке(); - Результат.Ошибка = СтроковыеФункцииКлиентСервер.ПодставитьПараметрыВСтроку( - НСтр("ru = 'Не удалось разобрать результат выполнения метода ReceivePacket сервиса 1С:Подпись по причине: %1'"), - КраткоеПредставлениеОшибки(ИнформацияОбОшибке)); + Результат.Ошибка = ШаблонОписанияОшибки + + СтроковыеФункцииКлиентСервер.ПодставитьПараметрыВСтроку( + НСтр("ru = 'Не удалось разобрать результат выполнения метода %1 сервиса 1С:Подпись по причине: %2'"), + "ReceivePacket", + КраткоеПредставлениеОшибки(ИнформацияОбОшибке)); КонецПопытки; УдалитьФайлы(ИмяФайлаПакетОтвета); @@ -1172,8 +1180,9 @@ Результат.ДанныеОтвета = ДвоичныеДанные; Иначе - Результат.Ошибка = СтроковыеФункцииКлиентСервер.ПодставитьПараметрыВСтроку(ШаблонОписанияОшибки, - НСтр("ru = 'Метод ReceiveUpdatedPacket сервиса 1С:Подпись вернул пустые данные.'")); + Результат.Ошибка = СтроковыеФункцииКлиентСервер.ПодставитьПараметрыВСтроку( + НСтр("ru = 'Метод %1 сервиса 1С:Подпись вернул пустые данные.'"), + "ReceiveUpdatedPacket"); КонецЕсли; Иначе УзелDOM = ПостроительDOM.ПолучитьЭлементыПоИмени("errorMessage"); @@ -1181,8 +1190,9 @@ Результат.Ошибка = УзелDOM[0].ТекстовоеСодержимое; Иначе Результат.Ошибка = СтроковыеФункцииКлиентСервер.ПодставитьПараметрыВСтроку( - НСтр("ru = 'Метод ReceiveUpdatedPacket сервиса 1С:Подпись вернул код ошибки: %1'"), - Строка(КодРезультата)); + НСтр("ru = 'Метод %1 сервиса 1С:Подпись вернул код ошибки: %2'"), + "ReceiveUpdatedPacket", + Строка(КодРезультата)); КонецЕсли; КонецЕсли; @@ -1246,8 +1256,9 @@ Исключение ИнформацияОбОшибке = ИнформацияОбОшибке(); Результат.Ошибка = СтроковыеФункцииКлиентСервер.ПодставитьПараметрыВСтроку( - НСтр("ru = 'Не удалось разобрать результат выполнения метода ReceiveUpdatedPacket сервиса 1С:Подпись по причине: %1'"), - КраткоеПредставлениеОшибки(ИнформацияОбОшибке)); + НСтр("ru = 'Не удалось разобрать результат выполнения метода %1 сервиса 1С:Подпись по причине: %2'"), + "ReceiveUpdatedPacket", + КраткоеПредставлениеОшибки(ИнформацияОбОшибке)); КонецПопытки; УдалитьФайлы(ИмяФайлаПакетОтвета); @@ -1274,8 +1285,9 @@ Исключение ИнформацияОбОшибке = ИнформацияОбОшибке(); Результат.Ошибка = СтроковыеФункцииКлиентСервер.ПодставитьПараметрыВСтроку( - НСтр("ru = 'Не удалось разобрать результат выполнения метода ReceiveUpdatedPacket сервиса 1С:Подпись по причине: %1'"), - КраткоеПредставлениеОшибки(ИнформацияОбОшибке)); + НСтр("ru = 'Не удалось разобрать результат выполнения метода %1 сервиса 1С:Подпись по причине: %2'"), + "ReceiveUpdatedPacket", + КраткоеПредставлениеОшибки(ИнформацияОбОшибке)); КонецПопытки; КонецЕсли; @@ -1329,15 +1341,16 @@ ТекстЗапроса = "ВЫБРАТЬ РАЗРЕШЕННЫЕ - | СертификатыКлючейЭлектроннойПодписиИШифрования.СодержаниеЗаявления КАК СодержаниеЗаявления, - | СертификатыКлючейЭлектроннойПодписиИШифрования.Отпечаток КАК Отпечаток + | СертификатыКлючейЭлектроннойПодписиИШифрования.Отпечаток КАК Отпечаток, + | ЕСТЬNULL(ЗаявленияНаВыпускСертификата.СодержаниеЗаявления, Неопределено) КАК СодержаниеЗаявления |ИЗ | Справочник.СертификатыКлючейЭлектроннойПодписиИШифрования КАК СертификатыКлючейЭлектроннойПодписиИШифрования + | ЛЕВОЕ СОЕДИНЕНИЕ РегистрСведений.ЗаявленияНаВыпускСертификата КАК ЗаявленияНаВыпускСертификата + | ПО ЗаявленияНаВыпускСертификата.Сертификат = СертификатыКлючейЭлектроннойПодписиИШифрования.Ссылка |ГДЕ | СертификатыКлючейЭлектроннойПодписиИШифрования.Программа = &Программа | И (&СсылкаСертификата = НЕОПРЕДЕЛЕНО - | ИЛИ СертификатыКлючейЭлектроннойПодписиИШифрования.Ссылка <> &СсылкаСертификата) - | + | ИЛИ СертификатыКлючейЭлектроннойПодписиИШифрования.Ссылка <> &СсылкаСертификата) |УПОРЯДОЧИТЬ ПО | СертификатыКлючейЭлектроннойПодписиИШифрования.ДействителенДо УБЫВ"; @@ -1356,9 +1369,11 @@ ДанныеЗаявления.ОтпечатокСертификата = НРег(ПолучитьHexСтрокуИзДвоичныхДанных(ДанныеОтпечатка)); КонецЕсли; - РеквизитыЗаявления = СведенияОЗаявлении.СодержаниеЗаявления.Получить(); - Если ТипЗнч(РеквизитыЗаявления) = Тип("Структура") Тогда - Прервать; + Если СведенияОЗаявлении.СодержаниеЗаявления <> Неопределено Тогда + РеквизитыЗаявления = СведенияОЗаявлении.СодержаниеЗаявления.Получить(); + Если ТипЗнч(РеквизитыЗаявления) = Тип("Структура") Тогда + Прервать; + КонецЕсли; КонецЕсли; КонецЦикла; diff --git a/SSL/src/DataProcessors/УстановкаОбновлений/Forms/Форма/Form.form b/SSL/src/DataProcessors/УстановкаОбновлений/Forms/Форма/Form.form index ed8bb3242..ba2a1010d 100644 --- a/SSL/src/DataProcessors/УстановкаОбновлений/Forms/Форма/Form.form +++ b/SSL/src/DataProcessors/УстановкаОбновлений/Forms/Форма/Form.form @@ -219,7 +219,7 @@ true - CommonPicture.Информация + StdPicture.Information AsFileRef @@ -2349,7 +2349,7 @@ false - CommonPicture.Информация + StdPicture.Information diff --git a/SSL/src/DataProcessors/УстановкаОбновлений/Forms/Форма/Module.bsl b/SSL/src/DataProcessors/УстановкаОбновлений/Forms/Форма/Module.bsl index 45bf3aa60..2d6b92824 100644 --- a/SSL/src/DataProcessors/УстановкаОбновлений/Forms/Форма/Module.bsl +++ b/SSL/src/DataProcessors/УстановкаОбновлений/Forms/Форма/Module.bsl @@ -84,12 +84,7 @@ Элементы.ПоискИУстановкаОбновлений.Видимость = ОбщегоНазначения.ПодсистемаСуществует("ИнтернетПоддержкаПользователей.ПолучениеОбновленийПрограммы"); - ДоступнаУстановкаПатчейВБазовойВерсии = СтандартныеПодсистемыСервер.ДоступнаУстановкаПодписанныхРасширенийВБазовойВерсии(); - ЭтоБазоваяВерсия = СтандартныеПодсистемыСервер.ЭтоБазоваяВерсияКонфигурации(); - Если ЭтоБазоваяВерсия И Не ДоступнаУстановкаПатчейВБазовойВерсии Тогда - ЗаголовокВариантаВыбора = НСтр("ru = 'Укажите файл обновления'"); - Элементы.ПереключательНуженФайлОбновления.СписокВыбора[1].Представление = ЗаголовокВариантаВыбора; - ИначеЕсли ЭтоВебКлиент Тогда + Если ЭтоВебКлиент Тогда ЗаголовокВариантаВыбора = НСтр("ru = 'Укажите файл исправлений:'"); Элементы.ПереключательНуженФайлОбновления.СписокВыбора[1].Представление = ЗаголовокВариантаВыбора; КонецЕсли; @@ -486,19 +481,9 @@ ПараметрыЗагрузки.Диалог.Фильтр = СвойстваДиалога.Фильтр; ПараметрыЗагрузки.Диалог.Каталог = КаталогФайлаОбновления(Элементы.ПолеФайлОбновления.ТекстРедактирования); - Если ЭтоБазоваяВерсия И Не ДоступнаУстановкаПатчейВБазовойВерсии Тогда - - ФайловаяСистемаКлиент.ЗагрузитьФайл( - Новый ОписаниеОповещения("ПослеВыбораФайлаОбновления", ЭтотОбъект), - ПараметрыЗагрузки); - - Иначе - - ФайловаяСистемаКлиент.ЗагрузитьФайлы( - Новый ОписаниеОповещения("ПослеВыбораФайловОбновления", ЭтотОбъект), - ПараметрыЗагрузки); - - КонецЕсли; + ФайловаяСистемаКлиент.ЗагрузитьФайлы( + Новый ОписаниеОповещения("ПослеВыбораФайловОбновления", ЭтотОбъект), + ПараметрыЗагрузки); КонецПроцедуры @@ -528,12 +513,8 @@ ОписаниеФильтраДиалога.Добавить(НСтр("ru = 'Файлы поставки конфигурации (*.cf)|*.cf'")); ОписаниеФильтраДиалога.Добавить(НСтр("ru = 'Файлы поставки обновления конфигурации(*.cfu)|*.cfu'")); - Если ЭтоБазоваяВерсия И Не ДоступнаУстановкаПатчейВБазовойВерсии Тогда - ОписаниеФильтраДиалога.Вставить(0, НСтр("ru = 'Все файлы поставки (*.cf*;*.cfu)|*.cf*;*.cfu'")); - Иначе - ОписаниеФильтраДиалога.Вставить(0, НСтр("ru = 'Все файлы (*.cf*;*.cfu;*.cfe;*.zip)|*.cf*;*.cfu;*.cfe;*.zip'")); - ОписаниеФильтраДиалога.Добавить(НСтр("ru = 'Файлы исправлений (*.cfe*;*.zip)|*.cfe*;*.zip'")); - КонецЕсли; + ОписаниеФильтраДиалога.Вставить(0, НСтр("ru = 'Все файлы (*.cf*;*.cfu;*.cfe;*.zip)|*.cf*;*.cfu;*.cfe;*.zip'")); + ОписаниеФильтраДиалога.Добавить(НСтр("ru = 'Файлы исправлений (*.cfe*;*.zip)|*.cfe*;*.zip'")); Свойства.Фильтр = СтрСоединить(ОписаниеФильтраДиалога, "|"); @@ -556,30 +537,6 @@ КонецПроцедуры -// Параметры: -// ОписаниеВыбранногоФайла - Неопределено -// - Структура: -// * Хранение - Строка -// * Имя - Строка -// ДополнительныеПараметры - Неопределено -// -&НаКлиенте -Процедура ПослеВыбораФайлаОбновления(ОписаниеВыбранногоФайла, ДополнительныеПараметры) Экспорт - - Если ТипЗнч(ОписаниеВыбранногоФайла) <> Тип("Структура") Тогда - Возврат; - КонецЕсли; - - ОписаниеИмениФайла = СтрРазделить(ОписаниеВыбранногоФайла.Имя, ПолучитьРазделительПути()); - ОписаниеВыбранногоФайла.Вставить("ИмяФайла", ОписаниеИмениФайла[ОписаниеИмениФайла.ВГраница()]); - - ОписаниеВыбранныхФайлов = Новый Массив; - ОписаниеВыбранныхФайлов.Добавить(ОписаниеВыбранногоФайла); - - ОбработатьФайлыОбновления(ОписаниеВыбранныхФайлов) - -КонецПроцедуры - // Параметры: // ОписаниеВыбранныхФайлов - Массив из Структура: // * Хранение - Строка diff --git a/SSL/src/DataProcessors/УстановкаОбновлений/Help/ru.html b/SSL/src/DataProcessors/УстановкаОбновлений/Help/ru.html index dc4c3f272..c1e59f7e0 100644 --- a/SSL/src/DataProcessors/УстановкаОбновлений/Help/ru.html +++ b/SSL/src/DataProcessors/УстановкаОбновлений/Help/ru.html @@ -49,7 +49,7 @@
  • Помощник выводит сообщение об успешном завершении обновления программы. Перейдите по ссылке Новое в этой версии, для того чтобы просмотреть описание изменений программы. Нажмите Готово, для того чтобы приступить к работе в программе.
  • -
  • Если в программе предусмотрено отложенное обновление, выводится предупреждение о необходимости ознакомиться с дополнительными инструкциями для завершения обновления. Перейдите по соответствующей ссылке.
  • Планирование обновлений

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

    • При работе в клиент-серверном варианте работы программы можно задавать отложенное по времени обновление, например, можно отложить обновление конфигурации на ночь.
    • Для этого при обновлении конфигурации в помощнике выберите с помощью переключателя Запланировать установку обновления на указанное время и укажите время и дату обновления. diff --git a/SSL/src/DataProcessors/УстановкаОбновлений/Templates/СкриптУдаленияПатчей/Template.txt b/SSL/src/DataProcessors/УстановкаОбновлений/Templates/СкриптУдаленияПатчей/Template.txt index fdba42c17..2b85d9add 100644 --- a/SSL/src/DataProcessors/УстановкаОбновлений/Templates/СкриптУдаленияПатчей/Template.txt +++ b/SSL/src/DataProcessors/УстановкаОбновлений/Templates/СкриптУдаленияПатчей/Template.txt @@ -42,7 +42,7 @@ try { } catch (ex) { if (outf != null) { - outf.WriteLine(mainEvent + "[СообщениеОтказИнициализации]" + ex.message) + outf.WriteLine(mainEvent + ": [СообщениеОтказИнициализации]: " + ex.message) } WScript.Quit(1) @@ -51,14 +51,14 @@ try { try { if (outf != null) { - outf.WriteLine(mainEvent + "[СообщениеСозданиеОбъектаCOMСоединителя]") + outf.WriteLine(mainEvent + ": [СообщениеСозданиеОбъектаCOMСоединителя]") } COMConnector = new ActiveXObject(COMConnectorName) } catch (ex) { if (outf != null) { - outf.WriteLine(mainEvent + "[СообщениеОтказСозданияОбъектаCOMСоединителя]" + ex.message) + outf.WriteLine(mainEvent + ": [СообщениеОтказСозданияОбъектаCOMСоединителя]: " + ex.message) } WScript.Quit(1) @@ -67,14 +67,14 @@ try { try { if (outf != null) { - outf.WriteLine(mainEvent + "[СообщениеУстановкаСоединенияСБазой]" + ConnectionString + "...") + outf.WriteLine(mainEvent + ": [СообщениеУстановкаСоединенияСБазой]: " + ConnectionString) } connection = COMConnector.Connect(ConnectionString) } catch (ex) { if (outf != null) { - outf.WriteLine(mainEvent + "[СообщениеОтказСоединенияСБазойОбщее]" + ConnectionString + ": " + ex.message) + outf.WriteLine(mainEvent + ": [СообщениеОтказСоединенияСБазойОбщее] " + ConnectionString + ": " + ex.message) } WScript.Quit(1) @@ -85,14 +85,14 @@ try { if (Action == 'RemoveAll') { if (outf != null) { - outf.WriteLine(mainEvent + "[СообщениеВызовУдалитьИсправленияИзСкрипта]") + outf.WriteLine(mainEvent + ": [СообщениеВызовУдалитьИсправленияИзСкрипта]") } connection.ОбновлениеКонфигурацииВызовСервера.УдалитьИсправленияИзСкрипта(); } else { if (outf != null) { - outf.WriteLine(mainEvent + "[СообщениеВызовОбновитьИсправленияИзСкрипта]") + outf.WriteLine(mainEvent + ": [СообщениеВызовОбновитьИсправленияИзСкрипта]") } connection.ОбновлениеКонфигурацииВызовСервера.ОбновитьИсправленияИзСкрипта(fixFileNames, removeFixNames) @@ -101,7 +101,7 @@ try { } catch (ex) { if (outf != null) { - outf.WriteLine(mainEvent + "[СообщениеОшибкаБСП]" + ex.message) + outf.WriteLine(mainEvent + ": [СообщениеОшибка]" + ex.message) } WScript.Quit(1) diff --git a/SSL/src/DefinedTypes/МестоХраненияФункциональныхОпций/МестоХраненияФункциональныхОпций.mdo b/SSL/src/DefinedTypes/МестоХраненияФункциональныхОпций/МестоХраненияФункциональныхОпций.mdo index 1ae71c49c..28eb3bd3b 100644 --- a/SSL/src/DefinedTypes/МестоХраненияФункциональныхОпций/МестоХраненияФункциональныхОпций.mdo +++ b/SSL/src/DefinedTypes/МестоХраненияФункциональныхОпций/МестоХраненияФункциональныхОпций.mdo @@ -16,6 +16,7 @@ ConstantValueManager.ИспользоватьЗаметки ConstantValueManager.ИспользоватьНапоминанияПользователя ConstantValueManager.ИспользоватьСинхронизациюДанных + ConstantValueManager.ИспользоватьГруппыВнешнихПользователей ConstantValueManager.ИспользоватьДатуНачалаЗадач ConstantValueManager.ИзменятьЗаданияЗаднимЧислом ConstantValueManager.ИспользоватьПолнотекстовыйПоиск diff --git a/SSL/src/DefinedTypes/ПредметНапоминания/ПредметНапоминания.mdo b/SSL/src/DefinedTypes/ПредметНапоминания/ПредметНапоминания.mdo index 340ae48bc..b3f12fb93 100644 --- a/SSL/src/DefinedTypes/ПредметНапоминания/ПредметНапоминания.mdo +++ b/SSL/src/DefinedTypes/ПредметНапоминания/ПредметНапоминания.mdo @@ -11,6 +11,7 @@ CatalogRef.Заметки TaskRef.ЗадачаИсполнителя + CatalogRef.СертификатыКлючейЭлектроннойПодписиИШифрования CatalogRef.ИдентификаторыОбъектовМетаданных diff --git a/SSL/src/DefinedTypes/ПредметНапоминанияОбъект/ПредметНапоминанияОбъект.mdo b/SSL/src/DefinedTypes/ПредметНапоминанияОбъект/ПредметНапоминанияОбъект.mdo index ca5517393..8ec40b0c5 100644 --- a/SSL/src/DefinedTypes/ПредметНапоминанияОбъект/ПредметНапоминанияОбъект.mdo +++ b/SSL/src/DefinedTypes/ПредметНапоминанияОбъект/ПредметНапоминанияОбъект.mdo @@ -10,6 +10,7 @@ CatalogObject.Заметки + CatalogObject.СертификатыКлючейЭлектроннойПодписиИШифрования CatalogObject.ИдентификаторыОбъектовМетаданных TaskObject.ЗадачаИсполнителя diff --git a/SSL/src/DocumentJournals/Взаимодействия/Forms/ФормаСписка/Module.bsl b/SSL/src/DocumentJournals/Взаимодействия/Forms/ФормаСписка/Module.bsl index fd672afcd..f272bcc58 100644 --- a/SSL/src/DocumentJournals/Взаимодействия/Forms/ФормаСписка/Module.bsl +++ b/SSL/src/DocumentJournals/Взаимодействия/Forms/ФормаСписка/Module.bsl @@ -1512,7 +1512,8 @@ ОтборЭлемента = ГруппаОтбора1.Элементы.Добавить(Тип("ЭлементОтбораКомпоновкиДанных")); ОтборЭлемента.ЛевоеЗначение = Новый ПолеКомпоновкиДанных("СтрокаПоиска"); ОтборЭлемента.ВидСравнения = ВидСравненияКомпоновкиДанных.Равно; - + ОтборЭлемента.ПравоеЗначение = ""; + ОтборЭлемента = ГруппаОтбора1.Элементы.Добавить(Тип("ЭлементОтбораКомпоновкиДанных")); ОтборЭлемента.ЛевоеЗначение = Новый ПолеКомпоновкиДанных("РасширенныйПоиск"); ОтборЭлемента.ВидСравнения = ВидСравненияКомпоновкиДанных.Равно; @@ -1748,10 +1749,14 @@ КонецЕсли; ИначеЕсли Элементы.СтраницыПанелиНавигации.ТекущаяСтраница = Элементы.СтраницаСвойства Тогда ТекущиеДанные = Элементы.Свойства.ТекущиеДанные; + Если ТекущиеДанные <> Неопределено Тогда - ИзменитьОтборСписок("Свойства",Новый Структура("Значение", ТекущиеДанные.Значение)); + + ИзменитьОтборСписок("Свойства", Новый Структура("Значение", ТекущиеДанные.Значение)); СохранитьТекущееАктивноеЗначениеВНастройках("Свойства", ТекущиеДанные.Значение); + КонецЕсли; + ИначеЕсли Элементы.СтраницыПанелиНавигации.ТекущаяСтраница = Элементы.СтраницаКатегории Тогда ТекущиеДанные = Элементы.Категории.ТекущиеДанные; Если ТекущиеДанные <> Неопределено Тогда @@ -1869,7 +1874,7 @@ ИмяПоля = "Ссылка.[" + Строка(ТекущееСвойствоПанелиНавигации) + "]"; ИмяОтбора = Строка(ТекущееСвойствоПанелиНавигации); Если ТипЗнч(ДанныеДляОбработки.Значение) = Тип("Строка") - И ДанныеДляОбработки.Значение = НСтр("ru = 'Не указан'") Тогда + И ДанныеДляОбработки.Значение = "НеУказан" Тогда ВидСравненияЭлементаОтбора = ВидСравненияКомпоновкиДанных.НеЗаполнено; ПравоеЗначение = ""; @@ -2163,7 +2168,11 @@ | ВложенныйЗапрос.Значение КАК Значение, | СУММА(ВложенныйЗапрос.НеРассмотрено) КАК НеРассмотрено, | 1 КАК НомерКартинки, - | ПРЕДСТАВЛЕНИЕ(ВложенныйЗапрос.Значение) КАК Представление + | ВЫБОР + | КОГДА ВложенныйЗапрос.Значение = &НеУказан + | ТОГДА &НеУказанПредставление + | ИНАЧЕ ПРЕДСТАВЛЕНИЕ(ВложенныйЗапрос.Значение) + | КОНЕЦ КАК Представление |ИЗ | (ВЫБРАТЬ | ДокументВзаимодействий.Ссылка КАК Ссылка, @@ -2175,12 +2184,12 @@ | КОНЕЦ КАК НеРассмотрено | ИЗ | Документ.ЭлектронноеПисьмоИсходящее КАК ДокументВзаимодействий - | ЛЕВОЕ СОЕДИНЕНИЕ РегистрСведений.ПредметыПапкиВзаимодействий КАК ПредметыПапкиВзаимодействий + | ЛЕВОЕ СОЕДИНЕНИЕ РегистрСведений.ПредметыПапкиВзаимодействий КАК ПредметыПапкиВзаимодействий | ПО ДокументВзаимодействий.Ссылка = ПредметыПапкиВзаимодействий.Взаимодействие | ЛЕВОЕ СОЕДИНЕНИЕ Документ.ЭлектронноеПисьмоИсходящее.ДополнительныеРеквизиты КАК ДокументВзаимодействийДополнительныеРеквизиты | ПО (ДокументВзаимодействийДополнительныеРеквизиты.Ссылка = ДокументВзаимодействий.Ссылка) | И (ДокументВзаимодействийДополнительныеРеквизиты.Свойство = &Свойство) - | И &ТекстУсловия + | И &ТекстУсловия | | ОБЪЕДИНИТЬ ВСЕ | @@ -2194,12 +2203,12 @@ | КОНЕЦ | ИЗ | Документ.ЭлектронноеПисьмоВходящее КАК ДокументВзаимодействий - | ЛЕВОЕ СОЕДИНЕНИЕ РегистрСведений.ПредметыПапкиВзаимодействий КАК ПредметыПапкиВзаимодействий + | ЛЕВОЕ СОЕДИНЕНИЕ РегистрСведений.ПредметыПапкиВзаимодействий КАК ПредметыПапкиВзаимодействий | ПО ДокументВзаимодействий.Ссылка = ПредметыПапкиВзаимодействий.Взаимодействие | ЛЕВОЕ СОЕДИНЕНИЕ Документ.ЭлектронноеПисьмоВходящее.ДополнительныеРеквизиты КАК ДокументВзаимодействийДополнительныеРеквизиты | ПО (ДокументВзаимодействийДополнительныеРеквизиты.Ссылка = ДокументВзаимодействий.Ссылка) | И (ДокументВзаимодействийДополнительныеРеквизиты.Свойство = &Свойство) - | И &ТекстУсловия + | И &ТекстУсловия | | ОБЪЕДИНИТЬ ВСЕ | @@ -2213,12 +2222,12 @@ | КОНЕЦ | ИЗ | Документ.Встреча КАК ДокументВзаимодействий - | ЛЕВОЕ СОЕДИНЕНИЕ РегистрСведений.ПредметыПапкиВзаимодействий КАК ПредметыПапкиВзаимодействий + | ЛЕВОЕ СОЕДИНЕНИЕ РегистрСведений.ПредметыПапкиВзаимодействий КАК ПредметыПапкиВзаимодействий | ПО ДокументВзаимодействий.Ссылка = ПредметыПапкиВзаимодействий.Взаимодействие | ЛЕВОЕ СОЕДИНЕНИЕ Документ.Встреча.ДополнительныеРеквизиты КАК ДокументВзаимодействийДополнительныеРеквизиты | ПО (ДокументВзаимодействийДополнительныеРеквизиты.Ссылка = ДокументВзаимодействий.Ссылка) | И (ДокументВзаимодействийДополнительныеРеквизиты.Свойство = &Свойство) - | И &ТекстУсловия + | И &ТекстУсловия | | ОБЪЕДИНИТЬ ВСЕ | @@ -2232,13 +2241,13 @@ | КОНЕЦ | ИЗ | Документ.ТелефонныйЗвонок КАК ДокументВзаимодействий - | ЛЕВОЕ СОЕДИНЕНИЕ РегистрСведений.ПредметыПапкиВзаимодействий КАК ПредметыПапкиВзаимодействий + | ЛЕВОЕ СОЕДИНЕНИЕ РегистрСведений.ПредметыПапкиВзаимодействий КАК ПредметыПапкиВзаимодействий | ПО ДокументВзаимодействий.Ссылка = ПредметыПапкиВзаимодействий.Взаимодействие | ЛЕВОЕ СОЕДИНЕНИЕ Документ.СообщениеSMS.ДополнительныеРеквизиты КАК ДокументВзаимодействийДополнительныеРеквизиты | ПО (ДокументВзаимодействийДополнительныеРеквизиты.Ссылка = ДокументВзаимодействий.Ссылка) | И (ДокументВзаимодействийДополнительныеРеквизиты.Свойство = &Свойство) - | И &ТекстУсловия - | + | И &ТекстУсловия + | | ОБЪЕДИНИТЬ ВСЕ | | ВЫБРАТЬ @@ -2251,12 +2260,12 @@ | КОНЕЦ | ИЗ | Документ.СообщениеSMS КАК ДокументВзаимодействий - | ЛЕВОЕ СОЕДИНЕНИЕ РегистрСведений.ПредметыПапкиВзаимодействий КАК ПредметыПапкиВзаимодействий + | ЛЕВОЕ СОЕДИНЕНИЕ РегистрСведений.ПредметыПапкиВзаимодействий КАК ПредметыПапкиВзаимодействий | ПО ДокументВзаимодействий.Ссылка = ПредметыПапкиВзаимодействий.Взаимодействие | ЛЕВОЕ СОЕДИНЕНИЕ Документ.СообщениеSMS.ДополнительныеРеквизиты КАК ДокументВзаимодействийДополнительныеРеквизиты | ПО (ДокументВзаимодействийДополнительныеРеквизиты.Ссылка = ДокументВзаимодействий.Ссылка) | И (ДокументВзаимодействийДополнительныеРеквизиты.Свойство = &Свойство) - | И &ТекстУсловия + | И &ТекстУсловия | | ОБЪЕДИНИТЬ ВСЕ | @@ -2270,31 +2279,34 @@ | КОНЕЦ | ИЗ | Документ.ЗапланированноеВзаимодействие КАК ДокументВзаимодействий - | ЛЕВОЕ СОЕДИНЕНИЕ РегистрСведений.ПредметыПапкиВзаимодействий КАК ПредметыПапкиВзаимодействий + | ЛЕВОЕ СОЕДИНЕНИЕ РегистрСведений.ПредметыПапкиВзаимодействий КАК ПредметыПапкиВзаимодействий | ПО ДокументВзаимодействий.Ссылка = ПредметыПапкиВзаимодействий.Взаимодействие | ЛЕВОЕ СОЕДИНЕНИЕ Документ.ЗапланированноеВзаимодействие.ДополнительныеРеквизиты КАК ДокументВзаимодействийДополнительныеРеквизиты | ПО (ДокументВзаимодействийДополнительныеРеквизиты.Ссылка = ДокументВзаимодействий.Ссылка) | И (ДокументВзаимодействийДополнительныеРеквизиты.Свойство = &Свойство) - | И &ТекстУсловия ) КАК ВложенныйЗапрос + | И &ТекстУсловия) КАК ВложенныйЗапрос | |СГРУППИРОВАТЬ ПО | ВложенныйЗапрос.Значение | |УПОРЯДОЧИТЬ ПО - |Значение - | + | Значение |ИТОГИ ПО - |Значение ИЕРАРХИЯ"; + | Значение ИЕРАРХИЯ"; Иначе Запрос.Текст = Запрос.Текст + " |ВЫБРАТЬ РАЗРЕШЕННЫЕ - | ВложенныйЗапрос.Значение, - | СУММА(ВложенныйЗапрос.НеРассмотрено) КАК НеРассмотрено, - | 1 КАК НомерКартинки, - | ПРЕДСТАВЛЕНИЕ(ВложенныйЗапрос.Значение) КАК Представление - |ИЗ + | ВложенныйЗапрос.Значение КАК Значение, + | СУММА(ВложенныйЗапрос.НеРассмотрено) КАК НеРассмотрено, + | 1 КАК НомерКартинки, + | ВЫБОР + | КОГДА ВложенныйЗапрос.Значение = &НеУказан + | ТОГДА &НеУказанПредставление + | ИНАЧЕ ПРЕДСТАВЛЕНИЕ(ВложенныйЗапрос.Значение) + | КОНЕЦ КАК Представление + | ИЗ | (ВЫБРАТЬ | ДокументВзаимодействий.Ссылка КАК Ссылка, | ВЫБОР @@ -2310,7 +2322,7 @@ | ЛЕВОЕ СОЕДИНЕНИЕ РегистрСведений.ДополнительныеСведения КАК ДополнительныеСведения | ПО ДокументВзаимодействий.Ссылка = ДополнительныеСведения.Объект | И (ДополнительныеСведения.Свойство = &Свойство) - | И &ТекстУсловия ) КАК ВложенныйЗапрос + | И &ТекстУсловия) КАК ВложенныйЗапрос | |СГРУППИРОВАТЬ ПО | ВложенныйЗапрос.Значение @@ -2325,8 +2337,9 @@ Запрос.Текст = СтрЗаменить(Запрос.Текст, "И &ТекстУсловия", ТекстУсловия); - Запрос.УстановитьПараметр("Свойство",ТекущееСвойствоПанелиНавигации); - Запрос.УстановитьПараметр("НеУказан", НСтр("ru = 'Не указан'")); + Запрос.УстановитьПараметр("Свойство", ТекущееСвойствоПанелиНавигации); + Запрос.УстановитьПараметр("НеУказан", "НеУказан"); + Запрос.УстановитьПараметр("НеУказанПредставление", НСтр("ru = 'Не указан'")); Результат = Запрос.Выполнить(); Дерево = Результат.Выгрузить(ОбходРезультатаЗапроса.ПоГруппировкамСИерархией); @@ -2702,22 +2715,34 @@ Запрос = Новый Запрос; ТекстЗапросаПоОтбору = ПолучитьТекстЗапросаПоОтборуСписка(Запрос); - СтрокаПоКоторойИщем = Прав(ТекстЗапросаПоОтбору, СтрДлина(ТекстЗапросаПоОтбору) - СтрНайти(ТекстЗапросаПоОтбору,"ГДЕ") + 1); + ПозицияГде = СтрНайти(ТекстЗапросаПоОтбору, "ГДЕ"); + Если ПозицияГде = 0 Тогда + СтрокаПоКоторойИщем = ""; + Иначе + СтрокаПоКоторойИщем = Прав(ТекстЗапросаПоОтбору, СтрДлина(ТекстЗапросаПоОтбору) - ПозицияГде + 1); + КонецЕсли; + МассивСтрокУсловия = СтрРазделить(СтрокаПоКоторойИщем, Символы.ПС, Ложь); - УсловияПоЖурналуДокументов = Новый Массив; - УсловияПоРегистру = Новый Массив; + ТекстУсловийПоЖурналуДокументов = ""; + ТекстУсловийПоРегистру = ""; + КонструкцияИ = Символы.Таб + "И"; Для Каждого СтрокаУсловия Из МассивСтрокУсловия Цикл - СтрокаУсловия = СтрЗаменить(СтрокаУсловия,"&П","&Пар"); + СтрокаУсловия = СтрЗаменить(СтрокаУсловия, "&П", "&Пар"); Если СтрНайти(СтрокаУсловия, "ЖурналДокументовВзаимодействия") Тогда - УсловияПоЖурналуДокументов.Добавить(СтрокаУсловия); - ИначеЕсли СтрНайти(СтрокаУсловия, "ПредметыВзаимодействий") Тогда - УсловияПоРегистру.Добавить(СтрокаУсловия); + Если ПустаяСтрока(ТекстУсловийПоЖурналуДокументов) + И СтрНачинаетсяС(СтрокаУсловия, КонструкцияИ) Тогда + СтрокаУсловия = Прав(СтрокаУсловия, СтрДлина(СтрокаУсловия) - СтрДлина(КонструкцияИ)); + КонецЕсли; + ТекстУсловийПоЖурналуДокументов = ТекстУсловийПоЖурналуДокументов + СтрокаУсловия + Символы.ПС; + ИначеЕсли СтрНайти(СтрокаУсловия, "ПредметыВзаимодействий") Тогда + Если ПустаяСтрока(ТекстУсловийПоРегистру) + И СтрНачинаетсяС(СтрокаУсловия, КонструкцияИ) Тогда + СтрокаУсловия = Прав(СтрокаУсловия, СтрДлина(СтрокаУсловия) - СтрДлина(КонструкцияИ)); + КонецЕсли; + ТекстУсловийПоРегистру = ТекстУсловийПоРегистру + СтрокаУсловия + Символы.ПС; КонецЕсли; - КонецЦикла; - - ТекстУсловийПоЖурналуДокументов = ?(УсловияПоЖурналуДокументов.Количество() = 0, "ИСТИНА", СтрСоединить(УсловияПоЖурналуДокументов, Символы.ПС)); - ТекстУсловийПоРегистру = ?(УсловияПоРегистру.Количество() = 0, "ИСТИНА", СтрСоединить(УсловияПоРегистру, Символы.ПС)); + КонецЦикла;; ТекстЗапросаДинамическийСписок = "ВЫБРАТЬ @@ -2745,8 +2770,10 @@ | И КонтактыВзаимодействий.Взаимодействие = ПредметыВзаимодействий.Взаимодействие | И &ТекстУсловияРегистрПапки)"; - ТекстЗапросаДинамическийСписок = СтрЗаменить(ТекстЗапросаДинамическийСписок, "&ТекстУсловияЖурналДокументов", ТекстУсловийПоЖурналуДокументов); - ТекстЗапросаДинамическийСписок = СтрЗаменить(ТекстЗапросаДинамическийСписок, "&ТекстУсловияРегистрПапки", ТекстУсловийПоРегистру); + ТекстЗапросаДинамическийСписок = СтрЗаменить(ТекстЗапросаДинамическийСписок, "&ТекстУсловияЖурналДокументов", + ?(ПустаяСтрока(ТекстУсловийПоЖурналуДокументов), "ИСТИНА", ТекстУсловийПоЖурналуДокументов)); + ТекстЗапросаДинамическийСписок = СтрЗаменить(ТекстЗапросаДинамическийСписок, "&ТекстУсловияРегистрПапки", + ?(ПустаяСтрока(ТекстУсловийПоРегистру), "ИСТИНА", ТекстУсловийПоРегистру)); СтруктураСвойствСписка.ТекстЗапроса = ТекстЗапросаДинамическийСписок; ОбщегоНазначения.УстановитьСвойстваДинамическогоСписка(Элементы.КонтактыПанелиНавигации, СтруктураСвойствСписка); @@ -3071,7 +3098,9 @@ КонецЕсли; Если ТекущиеДанные <> Неопределено Тогда - ИзменитьОтборСписок("Свойства",Новый Структура("Значение", ТекущиеДанные.Значение)); + + ИзменитьОтборСписок("Свойства", Новый Структура("Значение", ТекущиеДанные.Значение)); + КонецЕсли; ИначеЕсли Элементы.СтраницыПанелиНавигации.ТекущаяСтраница = Элементы.СтраницаКатегории Тогда @@ -3508,7 +3537,7 @@ КонецЕсли; Иначе - Если ДанныеДляОбработки.Значение = НСтр("ru = 'Все'") Тогда + Если ДанныеДляОбработки.Значение = "ВсеЗначения" Тогда Результат.ТекстСообщенияОшибка = НСтр("ru = 'Закладку без отбора создать нельзя.'"); Возврат Результат; КонецЕсли; @@ -3531,16 +3560,11 @@ Результат.ПредставлениеЭлемента = СтроковыеФункцииКлиентСервер.ПодставитьПараметрыВСтроку(Текст, ОбщегоНазначения.ПредметСтрокой(ДанныеДляОбработки.Значение)); Результат.НавигационнаяСсылкаЭлемента = ПолучитьНавигационнуюСсылку(ДанныеДляОбработки.Значение); - ИначеЕсли ДанныеДляОбработки.Значение = НСтр("ru = 'Не указан'") Тогда + ИначеЕсли ДанныеДляОбработки.Значение = "НеУказан" Тогда НаименованиеЗакладки = НСтр("ru = 'Предмет не указан'"); Результат.ПредставлениеЭлемента = ?(ТолькоПочта, НСтр("ru = 'Письма без предмета'"), НСтр("ru = 'Взаимодействия без предмета'")); - ИначеЕсли ДанныеДляОбработки.Значение = НСтр("ru = 'Прочие вопросы'") Тогда - - НаименованиеЗакладки = НСтр("ru = 'Прочие вопросы'"); - Результат.ПредставлениеЭлемента = ?(ТолькоПочта, НСтр("ru = 'Прочие письма'"), НСтр("ru = 'Прочие взаимодействия'")); - Иначе НаименованиеЗакладки = НСтр("ru = 'Тип предмета'") + " " + Строка(ДанныеДляОбработки.ОписаниеТипов.Типы()[0]); @@ -3552,7 +3576,7 @@ ИначеЕсли ИмяЭлементаФормы = "Свойства" Тогда Если ТипЗнч(ДанныеДляОбработки.Значение) = Тип("Строка") - И ДанныеДляОбработки.Значение = НСтр("ru = 'Не указан'") Тогда + И ДанныеДляОбработки.Значение = "НеУказан" Тогда НаименованиеЗакладки = ТекущееСвойствоПанелиНавигации.Наименование + " " + НСтр("ru = 'не указан'"); Результат.ПредставлениеЭлемента = ?(ТолькоПочта, НСтр("ru = 'Письма'"), НСтр("ru = 'Взаимодействия'")); Иначе @@ -3819,12 +3843,12 @@ &НаКлиенте Процедура ВыполнитьПолнотекстовыйПоиск() - КоличествоЭлементовНайдено = 0; - ТекстОшибки = НайтиВзаимодействияПолнотекстовыйПоиск(КоличествоЭлементовНайдено); - Если ТекстОшибки = Неопределено Тогда + Результат = РезультатПоискаВзаимодействийПолнотекстовымПоиском(); + + Если Не Результат.ЕстьОшибка Тогда РасширенныйПоиск = Истина; - ТекстОповещения = ?(ТолькоПочта, НСтр("ru = 'Найдено %1 писем.'"), НСтр("ru = 'Найдено %1 взаимодействий.'")); - СтроковыеФункцииКлиентСервер.ПодставитьПараметрыВСтроку(ТекстОповещения, Строка(КоличествоЭлементовНайдено)); + ТекстОповещения = ?(ТолькоПочта, НСтр("ru = 'Найдено писем - %1.'"), НСтр("ru = 'Найдено взаимодействий - %1.'")); + ТекстОповещения = СтроковыеФункцииКлиентСервер.ПодставитьПараметрыВСтроку(ТекстОповещения, Строка(Результат.КоличествоЭлементовНайдено)); ПоказатьОповещениеПользователя(ТекстОповещения); ТекущиеДанные = Элементы.Список.ТекущиеДанные; Если ТекущиеДанные <> Неопределено Тогда @@ -3833,10 +3857,10 @@ ОписаниеНайденоПолнотекстовымПоиском = ""; КонецЕсли; Иначе - Если НЕ ТекстОшибки = НСтр("ru = 'Ничего не найдено'") Тогда - ПоказатьОповещениеПользователя(ТекстОшибки); - Иначе + Если Результат.ИдентификаторОшибки = "НичегоНеНайдено" Тогда РасширенныйПоиск = Ложь; + Иначе + ПоказатьОповещениеПользователя(Результат.ТекстОшибки); КонецЕсли; КонецЕсли; @@ -3845,8 +3869,14 @@ КонецПроцедуры &НаСервере -Функция НайтиВзаимодействияПолнотекстовыйПоиск(КоличествоЭлементов) +Функция РезультатПоискаВзаимодействийПолнотекстовымПоиском() + Результат = Новый Структура; + Результат.Вставить("ЕстьОшибка", Ложь); + Результат.Вставить("ТекстОшибки", ""); + Результат.Вставить("ИдентификаторОшибки", ""); + Результат.Вставить("КоличествоЭлементовНайдено", 0); + // настроить параметры поиска ОбластьПоиска = Новый Массив; РазмерПорции = 200; @@ -3854,7 +3884,7 @@ СтрокаПолнотекстовогоПоиска = СтрокаПоиска; Если СтрНайти(СтрокаПолнотекстовогоПоиска, "*") = 0 Тогда СтрокаПолнотекстовогоПоиска = "*" + СтрокаПолнотекстовогоПоиска + "*"; - КонецЕсли; + КонецЕсли; СписокПоиска = ПолнотекстовыйПоиск.СоздатьСписок(СтрокаПолнотекстовогоПоиска, РазмерПорции); ОбластьПоиска.Добавить(Метаданные.Документы.ЭлектронноеПисьмоВходящее); @@ -3883,7 +3913,12 @@ Документы.ЭлектронноеПисьмоВходящее.ПустаяСсылка(), ВидСравненияКомпоновкиДанных.Равно,, Истина); Элементы.СтрокаПоиска.ЦветФона = ЦветаСтиля.ОшибкаПолнотекстовыйПоискФон; - Возврат НСтр("ru = 'Слишком много результатов, уточните запрос.'"); + + Результат.ЕстьОшибка = Истина; + Результат.ИдентификаторОшибки = "СлишкомМногоРезультатов"; + Результат.ТекстОшибки = НСтр("ru = 'Слишком много результатов, уточните запрос.'"); + Возврат Результат; + КонецЕсли; // Возврат, если поиск не результативен. @@ -3894,13 +3929,18 @@ Документы.ЭлектронноеПисьмоВходящее.ПустаяСсылка(), ВидСравненияКомпоновкиДанных.Равно,, Истина); Элементы.СтрокаПоиска.ЦветФона = ЦветаСтиля.ОшибкаПолнотекстовыйПоискФон; - Возврат НСтр("ru = 'Ничего не найдено'"); + + Результат.ЕстьОшибка = Истина; + Результат.ИдентификаторОшибки = "НичегоНеНайдено"; + Результат.ТекстОшибки = НСтр("ru = 'Ничего не найдено.'"); + Возврат Результат; + КонецЕсли; - КоличествоЭлементов = СписокПоиска.ПолноеКоличество(); + Результат.КоличествоЭлементовНайдено = СписокПоиска.ПолноеКоличество(); НачальнаяПозиция = 0; - КонечнаяПозиция = ?(КоличествоЭлементов > РазмерПорции, РазмерПорции, КоличествоЭлементов) - 1; + КонечнаяПозиция = ?(Результат.КоличествоЭлементовНайдено > РазмерПорции, РазмерПорции, Результат.КоличествоЭлементовНайдено) - 1; ЕстьСледующаяПорция = Истина; // Обработать по порциям результаты ППД. @@ -3920,11 +3960,11 @@ КонецЦикла; НачальнаяПозиция = НачальнаяПозиция + РазмерПорции; - ЕстьСледующаяПорция = (НачальнаяПозиция < КоличествоЭлементов - 1); + ЕстьСледующаяПорция = (НачальнаяПозиция < Результат.КоличествоЭлементовНайдено - 1); Если ЕстьСледующаяПорция Тогда КонечнаяПозиция = - ?(КоличествоЭлементов > НачальнаяПозиция + РазмерПорции, РазмерПорции, - КоличествоЭлементов - НачальнаяПозиция) - 1; + ?(Результат.КоличествоЭлементовНайдено > НачальнаяПозиция + РазмерПорции, РазмерПорции, + Результат.КоличествоЭлементовНайдено - НачальнаяПозиция) - 1; СписокПоиска.СледующаяЧасть(); КонецЕсли; КонецЦикла; @@ -3936,7 +3976,11 @@ Документы.ЭлектронноеПисьмоВходящее.ПустаяСсылка(), ВидСравненияКомпоновкиДанных.Равно,, Истина); Элементы.СтрокаПоиска.ЦветФона = ЦветаСтиля.ОшибкаПолнотекстовыйПоискФон; - Возврат НСтр("ru = 'Ничего не найдено.'"); + + Результат.ЕстьОшибка = Истина; + Результат.ИдентификаторОшибки = "НичегоНеНайдено"; + Результат.ТекстОшибки = НСтр("ru = 'Ничего не найдено.'"); + Возврат Результат; КонецЕсли; // Удалим элемент из истории поиска если он там был. @@ -3963,7 +4007,8 @@ ВидСравненияКомпоновкиДанных.ВСписке,, Истина); Элементы.СтрокаПоиска.ЦветФона = ЦветаСтиля.ЦветФонаПоля; - Возврат Неопределено; + + Возврат Результат; КонецФункции diff --git a/SSL/src/Documents/Анкета/ManagerModule.bsl b/SSL/src/Documents/Анкета/ManagerModule.bsl index 8048d6330..8dc6977ea 100644 --- a/SSL/src/Documents/Анкета/ManagerModule.bsl +++ b/SSL/src/Documents/Анкета/ManagerModule.bsl @@ -87,7 +87,7 @@ ПроблемныхОбъектов = ПроблемныхОбъектов + 1; ТекстСообщения = СтроковыеФункцииКлиентСервер.ПодставитьПараметрыВСтроку( - НСтр("ru = 'Не удалось обработать анкету: %1 по причине: + НСтр("ru = 'Не удалось обработать анкету %1 по причине: |%2'"), Выборка.Ссылка, ПодробноеПредставлениеОшибки(ИнформацияОбОшибке())); ЗаписьЖурналаРегистрации(ОбновлениеИнформационнойБазы.СобытиеЖурналаРегистрации(), УровеньЖурналаРегистрации.Предупреждение, @@ -99,14 +99,13 @@ Параметры.ОбработкаЗавершена = ОбновлениеИнформационнойБазы.ОбработкаДанныхЗавершена(Параметры.Очередь, "Документ.Анкета"); Если ОбъектовОбработано = 0 И ПроблемныхОбъектов <> 0 Тогда ТекстСообщения = СтроковыеФункцииКлиентСервер.ПодставитьПараметрыВСтроку( - НСтр("ru = 'Процедуре ЗаполнитьРеквизитРежимАнкетирования не удалось обработать некоторые анкеты (пропущены): %1'"), - ПроблемныхОбъектов); + НСтр("ru = 'Не удалось обработать некоторые анкеты (пропущены): %1'"), ПроблемныхОбъектов); ВызватьИсключение ТекстСообщения; Иначе ЗаписьЖурналаРегистрации(ОбновлениеИнформационнойБазы.СобытиеЖурналаРегистрации(), УровеньЖурналаРегистрации.Информация, Метаданные.Документы.Анкета,, - СтроковыеФункцииКлиентСервер.ПодставитьПараметрыВСтроку(НСтр("ru = 'Процедура ЗаполнитьРеквизитРежимАнкетирования обработала очередную порцию анкет: %1'"), - ОбъектовОбработано)); + СтроковыеФункцииКлиентСервер.ПодставитьПараметрыВСтроку( + НСтр("ru = 'Обработана очередная порция анкет: %1'"), ОбъектовОбработано)); КонецЕсли; КонецПроцедуры diff --git a/SSL/src/Documents/ОтзывСогласияНаОбработкуПерсональныхДанных/Forms/ФормаДокумента/Form.form b/SSL/src/Documents/ОтзывСогласияНаОбработкуПерсональныхДанных/Forms/ФормаДокумента/Form.form index ef275d093..4b01d81ad 100644 --- a/SSL/src/Documents/ОтзывСогласияНаОбработкуПерсональныхДанных/Forms/ФормаДокумента/Form.form +++ b/SSL/src/Documents/ОтзывСогласияНаОбработкуПерсональныхДанных/Forms/ФормаДокумента/Form.form @@ -542,7 +542,7 @@ true - CommonPicture.Информация + StdPicture.Information diff --git a/SSL/src/Documents/СогласиеНаОбработкуПерсональныхДанных/ManagerModule.bsl b/SSL/src/Documents/СогласиеНаОбработкуПерсональныхДанных/ManagerModule.bsl index ee36641d2..aca506e85 100644 --- a/SSL/src/Documents/СогласиеНаОбработкуПерсональныхДанных/ManagerModule.bsl +++ b/SSL/src/Documents/СогласиеНаОбработкуПерсональныхДанных/ManagerModule.bsl @@ -50,7 +50,12 @@ Если ПечатнаяФорма <> Неопределено Тогда // имена файлов ИменаФайлов = Новый Соответствие; - Шаблон = НСтр("ru = 'Согласие на обработку ПДн [Субъект] - [Организация] (№[Номер] получено [ДатаПолучения])'"); + Шаблон = СтроковыеФункцииКлиентСервер.ПодставитьПараметрыВСтроку( + НСтр("ru = 'Согласие на обработку ПДн [%1] - [%2] (№[%3] получено [%4])'"), + "Субъект", + "Организация", + "Номер", + "ДатаПолучения"); ЗначенияРеквизитовДокументов = ОбщегоНазначения.ЗначенияРеквизитовОбъектов(МассивОбъектов, "Организация,Субъект,Номер,ДатаПолучения,Ссылка"); Для Каждого Ссылка Из МассивОбъектов Цикл ЗначенияРеквизитовДокумента = ЗначенияРеквизитовДокументов[Ссылка]; @@ -77,7 +82,12 @@ ОфисныеДокументы = Новый Соответствие; - Шаблон = НСтр("ru = 'Согласие на обработку ПДн [Субъект] - [Организация] (№[Номер] получено [ДатаПолучения])'"); + Шаблон = СтроковыеФункцииКлиентСервер.ПодставитьПараметрыВСтроку( + НСтр("ru = 'Согласие на обработку ПДн [%1] - [%2] (№[%3] получено [%4])'"), + "Субъект", + "Организация", + "Номер", + "ДатаПолучения"); ЗначенияРеквизитовДокументов = ОбщегоНазначения.ЗначенияРеквизитовОбъектов(МассивОбъектов, "Организация,Субъект,Номер,ДатаПолучения,Ссылка"); Для Каждого Ссылка Из МассивОбъектов Цикл ЗначенияРеквизитовДокумента = ЗначенияРеквизитовДокументов[Ссылка]; diff --git a/SSL/src/Documents/ЭлектронноеПисьмоИсходящее/Forms/ФормаДокумента/Module.bsl b/SSL/src/Documents/ЭлектронноеПисьмоИсходящее/Forms/ФормаДокумента/Module.bsl index 481f13a82..d182935ff 100644 --- a/SSL/src/Documents/ЭлектронноеПисьмоИсходящее/Forms/ФормаДокумента/Module.bsl +++ b/SSL/src/Documents/ЭлектронноеПисьмоИсходящее/Forms/ФормаДокумента/Module.bsl @@ -2467,10 +2467,23 @@ Результат = Новый Структура; Результат.Вставить("ТекстСообщения", ""); Результат.Вставить("ПисьмоОтправлено", Ложь); + Результат.Вставить("ОшибкаПодключения", Ложь); ПараметрыПисьма = Взаимодействия.ПараметрыПисьмаДляОтправки(ПисьмоОбъект); Письмо = РаботаСПочтовымиСообщениями.ПодготовитьПисьмо(ПисьмоОбъект.УчетнаяЗапись, ПараметрыПисьма); - РезультатОтправки = РаботаСПочтовымиСообщениями.ОтправитьПисьмо(ПисьмоОбъект.УчетнаяЗапись, Письмо); + Попытка + РезультатОтправки = РаботаСПочтовымиСообщениями.ОтправитьПисьмо(ПисьмоОбъект.УчетнаяЗапись, Письмо); + Исключение + ТекстОшибки = РаботаСПочтовымиСообщениями.РасширенноеПредставлениеОшибки( + ИнформацияОбОшибке(), ОбщегоНазначения.КодОсновногоЯзыка()); + + ЗаписьЖурналаРегистрации(УправлениеЭлектроннойПочтой.СобытиеЖурналаРегистрации(), + УровеньЖурналаРегистрации.Ошибка, , ПисьмоОбъект.Ссылка, ТекстОшибки); + + Результат.ТекстСообщения = КраткоеПредставлениеОшибки(ИнформацияОбОшибке()); + Результат.ОшибкаПодключения = Истина; + Возврат Результат; + КонецПопытки; ПараметрыОбработкиОшибки = УправлениеЭлектроннойПочтой.ПараметрыОбработкиОшибкиОтправки(); ПараметрыОбработкиОшибки.ПисьмоОбъект = ПисьмоОбъект; @@ -2582,21 +2595,20 @@ Возврат; КонецЕсли; - Если Результат.ПисьмоОтправлено - И Результат.ТекстСообщения = "" Тогда - + Если Результат.ПисьмоОтправлено И Результат.ТекстСообщения = "" Тогда Закрыть(); + Возврат; + КонецЕсли; - ИначеЕсли Результат.ПисьмоОтправлено - И Результат.ТекстСообщения <> "" Тогда - + Если Результат.ПисьмоОтправлено Тогда Прочитать(); + КонецЕсли; + + Если Результат.ОшибкаПодключения Тогда + РаботаСПочтовымиСообщениямиКлиент.СообщитьОбОшибкеПодключения(Объект.УчетнаяЗапись, + НСтр("ru = 'Письмо не отправлено'"), Результат.ТекстСообщения); + Иначе ПоказатьПредупреждение(, Результат.ТекстСообщения); - - ИначеЕсли Результат.ТекстСообщения <> "" Тогда - - ПоказатьПредупреждение(, Результат.ТекстСообщения); - КонецЕсли; КонецПроцедуры diff --git a/SSL/src/Documents/ЭлектронноеПисьмоИсходящее/ManagerModule.bsl b/SSL/src/Documents/ЭлектронноеПисьмоИсходящее/ManagerModule.bsl index 2f74f84f5..939b1d038 100644 --- a/SSL/src/Documents/ЭлектронноеПисьмоИсходящее/ManagerModule.bsl +++ b/SSL/src/Documents/ЭлектронноеПисьмоИсходящее/ManagerModule.bsl @@ -282,17 +282,15 @@ ОтменитьТранзакцию(); МетаданныеОбъекта = Метаданные.НайтиПоПолномуИмени(ПолноеИмяОбъекта); - - ТекстСообщения = НСтр("ru = 'Не удалось обработать %ИмяОбъекта%: %Ссылка% по причине: %Причина%'"); - ТекстСообщения = СтрЗаменить(ТекстСообщения, "%ИмяОбъекта%", ПолноеИмяОбъекта); - ТекстСообщения = СтрЗаменить(ТекстСообщения, "%Ссылка%", ОбъектыДляОбработки.Ссылка); - ТекстСообщения = СтрЗаменить(ТекстСообщения, "%Причина%", ПодробноеПредставлениеОшибки(ИнформацияОбОшибке())); - + ТекстСообщения = СтроковыеФункцииКлиентСервер.ПодставитьПараметрыВСтроку( + НСтр("ru = 'Не удалось обработать %1 %2 по причине: + |%3'"), + ПолноеИмяОбъекта, ОбъектыДляОбработки.Ссылка, ПодробноеПредставлениеОшибки(ИнформацияОбОшибке())); ЗаписьЖурналаРегистрации(ОбновлениеИнформационнойБазы.СобытиеЖурналаРегистрации(), - УровеньЖурналаРегистрации.Предупреждение, - МетаданныеОбъекта, - ОбъектыДляОбработки.Ссылка, - ТекстСообщения); + УровеньЖурналаРегистрации.Предупреждение, + МетаданныеОбъекта, + ОбъектыДляОбработки.Ссылка, + ТекстСообщения); КонецПопытки; diff --git a/SSL/src/Enums/ИсточникиПравилДляОбменаДанными/ИсточникиПравилДляОбменаДанными.mdo b/SSL/src/Enums/ИсточникиПравилДляОбменаДанными/ИсточникиПравилДляОбменаДанными.mdo index dd7cd842d..c79ff6d9d 100644 --- a/SSL/src/Enums/ИсточникиПравилДляОбменаДанными/ИсточникиПравилДляОбменаДанными.mdo +++ b/SSL/src/Enums/ИсточникиПравилДляОбменаДанными/ИсточникиПравилДляОбменаДанными.mdo @@ -43,4 +43,18 @@ Файл + + МенеджерТиповой + + ru + Менеджер (Типовой) + + + + МенеджерПользовательский + + ru + Менеджер (Пользовательский) + + diff --git a/SSL/src/Enums/СостоянияЗаявленияНаВыпускСертификата/СостоянияЗаявленияНаВыпускСертификата.mdo b/SSL/src/Enums/СостоянияЗаявленияНаВыпускСертификата/СостоянияЗаявленияНаВыпускСертификата.mdo index 4103a4710..e801fded4 100644 --- a/SSL/src/Enums/СостоянияЗаявленияНаВыпускСертификата/СостоянияЗаявленияНаВыпускСертификата.mdo +++ b/SSL/src/Enums/СостоянияЗаявленияНаВыпускСертификата/СостоянияЗаявленияНаВыпускСертификата.mdo @@ -56,6 +56,13 @@ Отклонено + + ИсполненоРаспискаНеОтправлена + + ru + Исполнено, расписка не отправлена + + ИсполненоСертификатНеУстановлен diff --git a/SSL/src/Enums/ТипыПроблемОбменаДанными/ТипыПроблемОбменаДанными.mdo b/SSL/src/Enums/ТипыПроблемОбменаДанными/ТипыПроблемОбменаДанными.mdo index 03ddbdbc7..e7807ab4f 100644 --- a/SSL/src/Enums/ТипыПроблемОбменаДанными/ТипыПроблемОбменаДанными.mdo +++ b/SSL/src/Enums/ТипыПроблемОбменаДанными/ТипыПроблемОбменаДанными.mdo @@ -28,6 +28,13 @@ true BothWays + + АдминистративнаяОшибкаПриложения + + ru + Административная ошибка приложения + + НепроведенныйДокумент diff --git a/SSL/src/EventSubscriptions/КонтрольНеразделенныхОбъектовПриЗаписи/КонтрольНеразделенныхОбъектовПриЗаписи.mdo b/SSL/src/EventSubscriptions/КонтрольНеразделенныхОбъектовПриЗаписи/КонтрольНеразделенныхОбъектовПриЗаписи.mdo index a1da59635..7949e5630 100644 --- a/SSL/src/EventSubscriptions/КонтрольНеразделенныхОбъектовПриЗаписи/КонтрольНеразделенныхОбъектовПриЗаписи.mdo +++ b/SSL/src/EventSubscriptions/КонтрольНеразделенныхОбъектовПриЗаписи/КонтрольНеразделенныхОбъектовПриЗаписи.mdo @@ -38,6 +38,7 @@ CatalogObject.СценарииОбменовДанными ConstantValueManager.ПутьКТомуБезУчетаРегиональныхНастроек ConstantValueManager.РазрешитьВыполнениеДООРегламентнымиЗаданиямиВМоделиСервиса + ConstantValueManager.ДанныеДляИзмененияМультиязычныхРеквизитов ConstantValueManager.ИсточникДанныхАдресногоКлассификатора ConstantValueManager.ИспользоватьПрофилиБезопасностиДляДОО ConstantValueManager.ХранитьФайлыВТомахНаДиске @@ -58,6 +59,7 @@ ConstantValueManager.СпособХраненияФайлов ConstantValueManager.ГлавныйУзел ConstantValueManager.ОценкаПроизводительностиПериодЗаписи + ConstantValueManager.ИспользоватьОптимизированнуюЗаписьСозданияАвтономногоРабочегоМеста ConstantValueManager.СписокРасширенийФайловOpenDocument ConstantValueManager.МинимальныйИнтервалРегламентныхЗаданийДОИОВМоделиСервиса ConstantValueManager.ИспользоватьРазделениеПоОбластямДанных diff --git a/SSL/src/ExchangePlans/ОбновлениеИнформационнойБазы/ManagerModule.bsl b/SSL/src/ExchangePlans/ОбновлениеИнформационнойБазы/ManagerModule.bsl index ea3bd23b2..ffca8f3ad 100644 --- a/SSL/src/ExchangePlans/ОбновлениеИнформационнойБазы/ManagerModule.bsl +++ b/SSL/src/ExchangePlans/ОбновлениеИнформационнойБазы/ManagerModule.bsl @@ -29,6 +29,7 @@ |ГДЕ | ОбновлениеИнформационнойБазы.Очередь < &Очередь | И НЕ ОбновлениеИнформационнойБазы.ЭтотУзел + | И НЕ ОбновлениеИнформационнойБазы.Временная | И ОбновлениеИнформационнойБазы.Очередь <> 0"; Запрос.УстановитьПараметр("Очередь", Очередь); @@ -41,12 +42,13 @@ // Если узла еще нет, то он будет создан. // // Параметры: -// Очередь - Число - очередь обработки данных. +// Очередь - Число - очередь обработки данных. +// Временная - Булево - признак для регистрации данных при перезапуске отложенного обновления. // // Возвращаемое значение: // ПланОбменаСсылка.ОбновлениеИнформационнойБазы. // -Функция УзелПоОчереди(Очередь) Экспорт +Функция УзелПоОчереди(Очередь, Временная = Ложь) Экспорт Если ТипЗнч(Очередь) <> Тип("Число") Или Очередь = 0 Тогда ВызватьИсключение НСтр("ru = 'Невозможно получить узел плана обмена ОбновлениеИнформационнойБазы, т.к. не передан номер очереди.'"); @@ -59,8 +61,10 @@ | ПланОбмена.ОбновлениеИнформационнойБазы КАК ОбновлениеИнформационнойБазы |ГДЕ | ОбновлениеИнформационнойБазы.Очередь = &Очередь + | И ОбновлениеИнформационнойБазы.Временная = &Временная | И НЕ ОбновлениеИнформационнойБазы.ЭтотУзел"); Запрос.УстановитьПараметр("Очередь", Очередь); + Запрос.УстановитьПараметр("Временная", Временная); Выборка = Запрос.Выполнить().Выбрать(); Если Выборка.Следующий() Тогда @@ -72,6 +76,7 @@ Блокировки = Новый БлокировкаДанных; Блокировка = Блокировки.Добавить("ПланОбмена.ОбновлениеИнформационнойБазы"); Блокировка.УстановитьЗначение("Очередь", Очередь); + Блокировка.УстановитьЗначение("Временная", Временная); Блокировки.Заблокировать(); Выборка = Запрос.Выполнить().Выбрать(); @@ -82,8 +87,9 @@ ОчередьСтрокой = Строка(Очередь); УзелОбъект = СоздатьУзел(); УзелОбъект.Очередь = Очередь; + УзелОбъект.Временная = Временная; УзелОбъект.УстановитьНовыйКод(ОчередьСтрокой); - УзелОбъект.Наименование = ОчередьСтрокой; + УзелОбъект.Наименование = ОчередьСтрокой + ?(Временная, " " + НСтр("ru = 'Новая для перезапуска'"), ""); УзелОбъект.Записать(); Узел = УзелОбъект.Ссылка; КонецЕсли; diff --git a/SSL/src/ExchangePlans/ОбновлениеИнформационнойБазы/ОбновлениеИнформационнойБазы.mdo b/SSL/src/ExchangePlans/ОбновлениеИнформационнойБазы/ОбновлениеИнформационнойБазы.mdo index 168f86c4c..ca8ff71e8 100644 --- a/SSL/src/ExchangePlans/ОбновлениеИнформационнойБазы/ОбновлениеИнформационнойБазы.mdo +++ b/SSL/src/ExchangePlans/ОбновлениеИнформационнойБазы/ОбновлениеИнформационнойБазы.mdo @@ -76,6 +76,7 @@ DontUse ExchangePlan.ОбновлениеИнформационнойБазы.Attribute.Очередь + ExchangePlan.ОбновлениеИнформационнойБазы.Attribute.Временная Managed Use @@ -95,6 +96,9 @@ Catalog.ЭлектронноеПисьмоВходящееПрисоединенныеФайлы + + Catalog.ЭкземплярыСервераDSS + Catalog.ШаблоныАнкет @@ -206,6 +210,9 @@ InformationRegister.ОбработчикиСобытийСинхронизацииДанных + + InformationRegister.ЗаявленияНаВыпускСертификата + Catalog.ВнешниеКомпоненты @@ -308,6 +315,9 @@ InformationRegister.НастройкиСинхронизацииФайлов + + InformationRegister.ПрогрессОбновления + InformationRegister.УдалитьОбластиПерсональныхДанных @@ -374,6 +384,9 @@ InformationRegister.ИсполнителиЗадач + + Catalog.УчетныеЗаписиDSS + Document.ТелефонныйЗвонок @@ -482,6 +495,9 @@ InformationRegister.СостоянияОбменовДанными + + InformationRegister.ОповещенияПользователейСертификатов + Constant.ИспользоватьАвтономнуюРаботуВМоделиСервиса @@ -581,6 +597,9 @@ Constant.СоздаватьЭлектронныеПодписиНаСервере + + Constant.ИспользоватьГруппыВнешнихПользователей + Constant.ИспользоватьДатуИВремяВСрокахЗадач @@ -707,6 +726,9 @@ Constant.АвтоматическиНастраиватьРазрешенияВПрофиляхБезопасности + + Constant.РежимОчисткиФайлов + InformationRegister.КэшПрограммныхИнтерфейсов @@ -719,6 +741,9 @@ Constant.ДанныеДляОтложенногоОбновления + + Constant.СервисПереводаТекста + Constant.НеИспользоватьРазделениеПоОбластямДанных @@ -803,6 +828,9 @@ Constant.ИспользоватьОнлайнПоддержку + + InformationRegister.СертификатыПользователяDSS + InformationRegister.УдалитьНастройкиТранспортаОбмена @@ -908,6 +936,9 @@ Catalog.ЯзыкиПечатныхФорм + + Constant.ИспользоватьСервисПереводаТекста + Document.СогласиеНаОбработкуПерсональныхДанных @@ -1004,6 +1035,9 @@ BusinessProcess.Задание + + Catalog.МакетыПечатныхФорм + InformationRegister.ИдентификаторыОбъектовВерсийРасширений @@ -1157,4 +1191,19 @@ Use Use + + Временная + + ru + Временная + + + Boolean + + + + + Use + Use + diff --git a/SSL/src/FunctionalOptions/ИспользоватьГруппыВнешнихПользователей/ИспользоватьГруппыВнешнихПользователей.mdo b/SSL/src/FunctionalOptions/ИспользоватьГруппыВнешнихПользователей/ИспользоватьГруппыВнешнихПользователей.mdo new file mode 100644 index 000000000..e6f6f452f --- /dev/null +++ b/SSL/src/FunctionalOptions/ИспользоватьГруппыВнешнихПользователей/ИспользоватьГруппыВнешнихПользователей.mdo @@ -0,0 +1,11 @@ + + + ИспользоватьГруппыВнешнихПользователей + + ru + Использовать группы внешних пользователей + + Constant.ИспользоватьГруппыВнешнихПользователей + true + Catalog.ГруппыВнешнихПользователей + diff --git a/SSL/src/FunctionalOptions/ИспользоватьГруппыПользователей/ИспользоватьГруппыПользователей.mdo b/SSL/src/FunctionalOptions/ИспользоватьГруппыПользователей/ИспользоватьГруппыПользователей.mdo index cabe3cb73..0f379e4cd 100644 --- a/SSL/src/FunctionalOptions/ИспользоватьГруппыПользователей/ИспользоватьГруппыПользователей.mdo +++ b/SSL/src/FunctionalOptions/ИспользоватьГруппыПользователей/ИспользоватьГруппыПользователей.mdo @@ -8,5 +8,4 @@ Constant.ИспользоватьГруппыПользователей true Catalog.ГруппыПользователей - Catalog.ГруппыВнешнихПользователей diff --git a/SSL/src/FunctionalOptions/ИспользоватьДополнительныйЯзык1/ИспользоватьДополнительныйЯзык1.mdo b/SSL/src/FunctionalOptions/ИспользоватьДополнительныйЯзык1/ИспользоватьДополнительныйЯзык1.mdo index f4c2d4b24..dc7cfa7bb 100644 --- a/SSL/src/FunctionalOptions/ИспользоватьДополнительныйЯзык1/ИспользоватьДополнительныйЯзык1.mdo +++ b/SSL/src/FunctionalOptions/ИспользоватьДополнительныйЯзык1/ИспользоватьДополнительныйЯзык1.mdo @@ -9,4 +9,11 @@ true CommonAttribute.НаименованиеЯзык1 CommonAttribute.КомментарийЯзык1 + Catalog.ВариантыОтчетов.Attribute.ОписаниеЯзык1 + Catalog.ПредопределенныеВариантыОтчетов.Attribute.ОписаниеЯзык1 + Catalog.ПредопределенныеВариантыОтчетовРасширений.Attribute.ОписаниеЯзык1 + ChartOfCharacteristicTypes.ДополнительныеРеквизитыИСведения.Attribute.ЗаголовокФормыВыбораЗначенияЯзык1 + ChartOfCharacteristicTypes.ДополнительныеРеквизитыИСведения.Attribute.ПодсказкаЯзык1 + ChartOfCharacteristicTypes.ДополнительныеРеквизитыИСведения.Attribute.ЗаголовокЯзык1 + ChartOfCharacteristicTypes.ДополнительныеРеквизитыИСведения.Attribute.ЗаголовокФормыЗначенияЯзык1 diff --git a/SSL/src/FunctionalOptions/ИспользоватьДополнительныйЯзык2/ИспользоватьДополнительныйЯзык2.mdo b/SSL/src/FunctionalOptions/ИспользоватьДополнительныйЯзык2/ИспользоватьДополнительныйЯзык2.mdo index b8f7af283..e1f9b705a 100644 --- a/SSL/src/FunctionalOptions/ИспользоватьДополнительныйЯзык2/ИспользоватьДополнительныйЯзык2.mdo +++ b/SSL/src/FunctionalOptions/ИспользоватьДополнительныйЯзык2/ИспользоватьДополнительныйЯзык2.mdo @@ -9,4 +9,11 @@ true CommonAttribute.НаименованиеЯзык2 CommonAttribute.КомментарийЯзык2 + Catalog.ВариантыОтчетов.Attribute.ОписаниеЯзык2 + Catalog.ПредопределенныеВариантыОтчетовРасширений.Attribute.ОписаниеЯзык2 + Catalog.ПредопределенныеВариантыОтчетов.Attribute.ОписаниеЯзык2 + ChartOfCharacteristicTypes.ДополнительныеРеквизитыИСведения.Attribute.ЗаголовокЯзык2 + ChartOfCharacteristicTypes.ДополнительныеРеквизитыИСведения.Attribute.ПодсказкаЯзык2 + ChartOfCharacteristicTypes.ДополнительныеРеквизитыИСведения.Attribute.ЗаголовокФормыВыбораЗначенияЯзык2 + ChartOfCharacteristicTypes.ДополнительныеРеквизитыИСведения.Attribute.ЗаголовокФормыЗначенияЯзык2 diff --git a/SSL/src/FunctionalOptions/ИспользоватьОптимизированнуюЗаписьСозданияАвтономногоРабочегоМеста/ИспользоватьОптимизированнуюЗаписьСозданияАвтономногоРабочегоМеста.mdo b/SSL/src/FunctionalOptions/ИспользоватьОптимизированнуюЗаписьСозданияАвтономногоРабочегоМеста/ИспользоватьОптимизированнуюЗаписьСозданияАвтономногоРабочегоМеста.mdo new file mode 100644 index 000000000..9a26e4ae0 --- /dev/null +++ b/SSL/src/FunctionalOptions/ИспользоватьОптимизированнуюЗаписьСозданияАвтономногоРабочегоМеста/ИспользоватьОптимизированнуюЗаписьСозданияАвтономногоРабочегоМеста.mdo @@ -0,0 +1,10 @@ + + + ИспользоватьОптимизированнуюЗаписьСозданияАвтономногоРабочегоМеста + + ru + Использовать оптимизированную запись создания автономного рабочего места + + Constant.ИспользоватьОптимизированнуюЗаписьСозданияАвтономногоРабочегоМеста + true + diff --git a/SSL/src/InformationRegisters/ВерсииОбъектов/ManagerModule.bsl b/SSL/src/InformationRegisters/ВерсииОбъектов/ManagerModule.bsl index 7941814ad..8e15c3225 100644 --- a/SSL/src/InformationRegisters/ВерсииОбъектов/ManagerModule.bsl +++ b/SSL/src/InformationRegisters/ВерсииОбъектов/ManagerModule.bsl @@ -1569,15 +1569,23 @@ // Прогресс удаления предупреждений синхронизации // -Процедура ПрогрессУдалениеПредупрежденийСинхронизации(Знач ТекущийШаг, Максимум) +Процедура ПрогрессУдалениеПредупрежденийСинхронизации(Знач ТекущийШаг, Максимум, ИтераторВыборки = 0) ТекущийШаг = ?(ТекущийШаг = 0, 1, ТекущийШаг); - Шаблон = НСтр("ru = 'Выполнено итераций %1 из %2'", ОбщегоНазначения.КодОсновногоЯзыка()); - ТекстПрогресса = СтрШаблон(Шаблон, ТекущийШаг, Максимум); + Если ИтераторВыборки = 0 Тогда + + Шаблон = НСтр("ru = 'Выполнено итераций %1 из %2'", ОбщегоНазначения.КодОсновногоЯзыка()); + ТекстПрогресса = СтроковыеФункцииКлиентСервер.ПодставитьПараметрыВСтроку(Шаблон, ТекущийШаг, Максимум); + + Иначе + + Шаблон = НСтр("ru = 'Выполнено итераций %1 из %2 (%3)'", ОбщегоНазначения.КодОсновногоЯзыка()); + ТекстПрогресса = СтрШаблон(Шаблон, ТекущийШаг, Максимум, ИтераторВыборки); + + КонецЕсли; ПроцентВыполнения = ОКР(ТекущийШаг * 100 / Максимум, 0); - ДлительныеОперации.СообщитьПрогресс(ПроцентВыполнения, ТекстПрогресса); КонецПроцедуры @@ -1676,7 +1684,7 @@ КонецЕсли; - ПрогрессУдалениеПредупрежденийСинхронизации(ПараметрыУдаления.КоличествоОперацийТекущийШаг, ПараметрыУдаления.КоличествоОперацийМаксимум); + ПрогрессУдалениеПредупрежденийСинхронизации(ПараметрыУдаления.КоличествоОперацийТекущийШаг, ПараметрыУдаления.КоличествоОперацийМаксимум, ИтераторВыборки); ЗафиксироватьТранзакцию(); diff --git a/SSL/src/InformationRegisters/ВерсииПодсистем/Forms/ФормаСписка/Form.form b/SSL/src/InformationRegisters/ВерсииПодсистем/Forms/ФормаСписка/Form.form index d1dadb459..8d1d072cb 100644 --- a/SSL/src/InformationRegisters/ВерсииПодсистем/Forms/ФормаСписка/Form.form +++ b/SSL/src/InformationRegisters/ВерсииПодсистем/Forms/ФормаСписка/Form.form @@ -357,6 +357,33 @@ Auto InAdditionalSubmenu + + ФормаПерезапуститьОтложенноеОбновление + 30 + true + true + + true + + + ФормаПерезапуститьОтложенноеОбновлениеРасширеннаяПодсказка + 31 + Label + true + true + + Left + + + Form.Command.ПерезапуститьОтложенноеОбновление + Normal + Auto + true + true + UserCmds + Auto + InAdditionalSubmenu + Left true @@ -417,6 +444,28 @@ DontUse Auto + + ПерезапуститьОтложенноеОбновление + + <key>ru</key> + <value>Перезапустить отложенное обновление...</value> + + 2 + + ru + Перезапустить отложенное обновление + + + true + + + + ПерезапуститьОтложенноеОбновление + + + Auto + Auto + diff --git a/SSL/src/InformationRegisters/ВерсииПодсистем/Forms/ФормаСписка/Module.bsl b/SSL/src/InformationRegisters/ВерсииПодсистем/Forms/ФормаСписка/Module.bsl index 02dc480d2..d9586197d 100644 --- a/SSL/src/InformationRegisters/ВерсииПодсистем/Forms/ФормаСписка/Module.bsl +++ b/SSL/src/InformationRegisters/ВерсииПодсистем/Forms/ФормаСписка/Module.bsl @@ -12,6 +12,7 @@ Процедура ПриСозданииНаСервере(Отказ, СтандартнаяОбработка) ТолькоПросмотр = Истина; + Элементы.ФормаПерезапуститьОтложенноеОбновление.Видимость = Не ОбщегоНазначения.ЭтоПодчиненныйУзелРИБ(); КонецПроцедуры @@ -27,4 +28,9 @@ КонецПроцедуры +&НаКлиенте +Процедура ПерезапуститьОтложенноеОбновление(Команда) + ОткрытьФорму("РегистрСведений.ОбработчикиОбновления.Форма.ПерезапускОтложенногоОбновления"); +КонецПроцедуры + #КонецОбласти diff --git a/SSL/src/InformationRegisters/ДвоичныеДанныеФайлов/ManagerModule.bsl b/SSL/src/InformationRegisters/ДвоичныеДанныеФайлов/ManagerModule.bsl index abc337cce..3618605c0 100644 --- a/SSL/src/InformationRegisters/ДвоичныеДанныеФайлов/ManagerModule.bsl +++ b/SSL/src/InformationRegisters/ДвоичныеДанныеФайлов/ManagerModule.bsl @@ -115,26 +115,26 @@ ПроблемныхОбъектов = ПроблемныхОбъектов + 1; ТекстСообщения = СтроковыеФункцииКлиентСервер.ПодставитьПараметрыВСтроку( - НСтр("ru = 'Не удалось обработать версию файла: %1 по причине: - |%2'"), - Выборка.Ссылка, ПодробноеПредставлениеОшибки(ИнформацияОбОшибке())); + НСтр("ru = 'Не удалось обработать двоичные данные файла %1 по причине: + |%2'"), + Выборка.Ссылка, ПодробноеПредставлениеОшибки(ИнформацияОбОшибке())); ЗаписьЖурналаРегистрации(ОбновлениеИнформационнойБазы.СобытиеЖурналаРегистрации(), УровеньЖурналаРегистрации.Предупреждение, - Выборка.Ссылка.Метаданные(), Выборка.Ссылка, ТекстСообщения); + Выборка.Ссылка.Метаданные(), Выборка.Ссылка, ТекстСообщения); КонецПопытки; КонецЦикла; Если ОбъектовОбработано = 0 И ПроблемныхОбъектов <> 0 Тогда ТекстСообщения = СтроковыеФункцииКлиентСервер.ПодставитьПараметрыВСтроку( - НСтр("ru = 'Процедуре ПеренестиДвоичныеДанныеФайловВРегистрСведенийДвоичныеДанныеФайлов не удалось обработать некоторые версии файлов (пропущены): %1'"), + НСтр("ru = 'Не удалось обработать некоторые двоичные данные файла (пропущены): %1'"), ПроблемныхОбъектов); ВызватьИсключение ТекстСообщения; Иначе ЗаписьЖурналаРегистрации(ОбновлениеИнформационнойБазы.СобытиеЖурналаРегистрации(), УровеньЖурналаРегистрации.Информация, - Метаданные.НайтиПоПолномуИмени("Справочник.ВерсииФайлов"),, + Метаданные.Справочники.ВерсииФайлов,, СтроковыеФункцииКлиентСервер.ПодставитьПараметрыВСтроку( - НСтр("ru = 'Процедура ПеренестиДвоичныеДанныеФайловВРегистрСведенийДвоичныеДанныеФайлов обработала очередную порцию версий: %1'"), - ОбъектовОбработано)); + НСтр("ru = 'Обработана очередная порция двоичных данных файлов: %1'"), + ОбъектовОбработано)); КонецЕсли; КонецПроцедуры @@ -194,12 +194,11 @@ ПроблемныхОбъектов = ПроблемныхОбъектов + 1; ТекстСообщения = СтроковыеФункцииКлиентСервер.ПодставитьПараметрыВСтроку( - НСтр("ru = 'Не удалось обработать файл: %1 по причине: + НСтр("ru = 'Не удалось обработать файл %1 по причине: |%2'"), - Выборка.Ссылка, ПодробноеПредставлениеОшибки(ИнформацияОбОшибке())); - + Выборка.Ссылка, ПодробноеПредставлениеОшибки(ИнформацияОбОшибке())); ЗаписьЖурналаРегистрации(ОбновлениеИнформационнойБазы.СобытиеЖурналаРегистрации(), УровеньЖурналаРегистрации.Предупреждение, - Выборка.Ссылка.Метаданные(), Выборка.Ссылка, ТекстСообщения); + Выборка.Ссылка.Метаданные(), Выборка.Ссылка, ТекстСообщения); КонецПопытки; @@ -207,15 +206,15 @@ Если ОбъектовОбработано = 0 И ПроблемныхОбъектов <> 0 Тогда ТекстСообщения = СтроковыеФункцииКлиентСервер.ПодставитьПараметрыВСтроку( - НСтр("ru = 'Процедуре СоздатьНедостающиеВерсииФайлов не удалось обработать некоторые файлы (пропущены): %1'"), + НСтр("ru = 'Не удалось обработать некоторые файлы (пропущены): %1'"), ПроблемныхОбъектов); ВызватьИсключение ТекстСообщения; Иначе ЗаписьЖурналаРегистрации(ОбновлениеИнформационнойБазы.СобытиеЖурналаРегистрации(), УровеньЖурналаРегистрации.Информация, - Метаданные.НайтиПоПолномуИмени("Справочник.ВерсииФайлов"),, + Метаданные.Справочники.ВерсииФайлов,, СтроковыеФункцииКлиентСервер.ПодставитьПараметрыВСтроку( - НСтр("ru = 'Процедура СоздатьНедостающиеВерсииФайлов обработала очередную порцию файлов: %1'"), - ОбъектовОбработано)); + НСтр("ru = 'Обработана очередная порция файлов: %1'"), + ОбъектовОбработано)); КонецЕсли; КонецПроцедуры diff --git a/SSL/src/InformationRegisters/ЗаявленияНаВыпускСертификата/Forms/ФормаЗаписи/Form.form b/SSL/src/InformationRegisters/ЗаявленияНаВыпускСертификата/Forms/ФормаЗаписи/Form.form new file mode 100644 index 000000000..bfaf1aaeb --- /dev/null +++ b/SSL/src/InformationRegisters/ЗаявленияНаВыпускСертификата/Forms/ФормаЗаписи/Form.form @@ -0,0 +1,437 @@ + + + + Сертификат + 1 + true + true + + true + + + Запись.Сертификат + + + СертификатРасширеннаяПодсказка + 3 + Label + true + true + + Left + + + + СертификатКонтекстноеМеню + 2 + true + + InputField + Enter + true + Left + true + + true + true + true + true + true + true + Normal + + + + СертификатОснование + 28 + true + true + + true + + + Запись.СертификатОснование + + + СертификатОснованиеРасширеннаяПодсказка + 30 + Label + true + true + + Left + + + + СертификатОснованиеКонтекстноеМеню + 29 + true + + InputField + Enter + true + Left + true + + true + true + true + true + true + true + Normal + + + + СостояниеЗаявления + 4 + true + true + + true + + + Запись.СостояниеЗаявления + + + СостояниеЗаявленияРасширеннаяПодсказка + 6 + Label + true + true + + Left + + + + СостояниеЗаявленияКонтекстноеМеню + 5 + true + + InputField + Enter + true + Left + true + + true + true + true + true + true + true + Normal + + + + ОформленоВЭлектронномВиде + 7 + true + true + + true + + + Запись.ОформленоВЭлектронномВиде + + + ОформленоВЭлектронномВидеРасширеннаяПодсказка + 9 + Label + true + true + + Left + + + + ОформленоВЭлектронномВидеКонтекстноеМеню + 8 + true + + CheckBoxField + Enter + true + Left + true + + + + ДляФизическогоЛица + 10 + true + true + + true + + + Запись.ДляФизическогоЛица + + + ДляФизическогоЛицаРасширеннаяПодсказка + 12 + Label + true + true + + Left + + + + ДляФизическогоЛицаКонтекстноеМеню + 11 + true + + CheckBoxField + Enter + true + Left + true + + + + ДатаОбновленияСостояния + 13 + true + true + + true + + + Запись.ДатаОбновленияСостояния + + + ДатаОбновленияСостоянияРасширеннаяПодсказка + 15 + Label + true + true + + Left + + + + ДатаОбновленияСостоянияКонтекстноеМеню + 14 + true + + InputField + Enter + true + Left + true + + true + true + true + true + true + true + Normal + + + + ДатаОтправки + 16 + true + true + + true + + + Запись.ДатаОтправки + + + ДатаОтправкиРасширеннаяПодсказка + 18 + Label + true + true + + Left + + + + ДатаОтправкиКонтекстноеМеню + 17 + 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 + + + + ИдентификаторДокументооборота + 22 + true + true + + true + + + Запись.ИдентификаторДокументооборота + + + ИдентификаторДокументооборотаРасширеннаяПодсказка + 24 + Label + true + true + + Left + + + + ИдентификаторДокументооборотаКонтекстноеМеню + 23 + 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 + + + + ФормаКоманднаяПанель + -1 + Left + true + + + OnCreateAtServer + ПриСозданииНаСервере + + LockOwner + true + true + true + Vertical + true + true + true + auto + true + + Запись + 1 + + InformationRegisterRecordManager.ЗаявленияНаВыпускСертификата + + + 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..d31bf1a47 --- /dev/null +++ b/SSL/src/InformationRegisters/ЗаявленияНаВыпускСертификата/Forms/ФормаЗаписи/Module.bsl @@ -0,0 +1,18 @@ +/////////////////////////////////////////////////////////////////////////////////////////////////////// +// Copyright (c) 2021, ООО 1С-Софт +// Все права защищены. Эта программа и сопроводительные материалы предоставляются +// в соответствии с условиями лицензии Attribution 4.0 International (CC BY 4.0) +// Текст лицензии доступен по ссылке: +// https://creativecommons.org/licenses/by/4.0/legalcode +/////////////////////////////////////////////////////////////////////////////////////////////////////// + +#Область ОбработчикиСобытийФормы + +&НаСервере +Процедура ПриСозданииНаСервере(Отказ, СтандартнаяОбработка) + + ТолькоПросмотр = Истина; + +КонецПроцедуры + +#КонецОбласти 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..61e6fb4bb --- /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..b18cbe325 --- /dev/null +++ b/SSL/src/InformationRegisters/ЗаявленияНаВыпускСертификата/Forms/ФормаСписка/Form.form @@ -0,0 +1,594 @@ + + + + СписокКомпоновщикНастроекПользовательскиеНастройки + 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 + + <key>ru</key> + <value>Список</value> + + 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 + + + + ОформленоВЭлектронномВиде + 22 + true + true + + true + + + Список.ОформленоВЭлектронномВиде + + + ОформленоВЭлектронномВидеРасширеннаяПодсказка + 24 + Label + true + true + + Left + + + + ОформленоВЭлектронномВидеКонтекстноеМеню + 23 + 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 + + + + ДатаОбновленияСостояния + 28 + true + true + + true + + + Список.ДатаОбновленияСостояния + + + ДатаОбновленияСостоянияРасширеннаяПодсказка + 30 + Label + true + true + + Left + + + + ДатаОбновленияСостоянияКонтекстноеМеню + 29 + 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 + + + + СертификатОснование + 43 + true + true + + true + + + Список.СертификатОснование + + + СертификатОснованиеРасширеннаяПодсказка + 45 + Label + true + true + + Left + + + + СертификатОснованиеКонтекстноеМеню + 44 + 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 + true + AsFileRef + + Список.DefaultPicture + + true + + 60 + + 0001-01-01T00:00:00 + 0001-01-01T00:00:00 + + + true + true + СписокКомпоновщикНастроекПользовательскиеНастройки + +
      + + ФормаКоманднаяПанель + -1 + Left + true + + + OnCreateAtServer + ПриСозданииНаСервере + + Change + Copy + Create + Delete + 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..d31bf1a47 --- /dev/null +++ b/SSL/src/InformationRegisters/ЗаявленияНаВыпускСертификата/Forms/ФормаСписка/Module.bsl @@ -0,0 +1,18 @@ +/////////////////////////////////////////////////////////////////////////////////////////////////////// +// Copyright (c) 2021, ООО 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 new file mode 100644 index 000000000..e69de29bb diff --git a/SSL/src/InformationRegisters/ЗаявленияНаВыпускСертификата/ЗаявленияНаВыпускСертификата.mdo b/SSL/src/InformationRegisters/ЗаявленияНаВыпускСертификата/ЗаявленияНаВыпускСертификата.mdo new file mode 100644 index 000000000..42d3aa605 --- /dev/null +++ b/SSL/src/InformationRegisters/ЗаявленияНаВыпускСертификата/ЗаявленияНаВыпускСертификата.mdo @@ -0,0 +1,270 @@ + + + + + + + + + + + + ЗаявленияНаВыпускСертификата + + ru + Заявления на выпуск сертификата + + InDialog + InformationRegister.ЗаявленияНаВыпускСертификата.Form.ФормаЗаписи + InformationRegister.ЗаявленияНаВыпускСертификата.Form.ФормаСписка + + Use + Active + + Use + + + + + Use + LineNumber + + Use + + + + + Use + Recorder + + Use + + + + + Use + Period + + ShowError + Use + + + + Managed + + ru + Заявление на выпуск сертификата + + + ru + Данные завялений на выпуск сертфиката, заполняются обработкой "ЗаявлениеНаВыпускНовогоКвалифицированногоСертификата" + + + СостояниеЗаявления + + ru + Состояние заявления + + + EnumRef.СостоянияЗаявленияНаВыпускСертификата + + + + Use + Use + + Index + + + ОформленоВЭлектронномВиде + + ru + Оформлено в электронном виде + + + Boolean + + + + Use + Use + + + + ДляФизическогоЛица + + ru + Для физического лица + + + Boolean + + + + Use + Use + + + + ДатаОбновленияСостояния + + ru + Дата обновления состояния + + + Date + + + + + Use + Use + + + + ДатаОтправки + + ru + Дата отправки + + + Date + + + + + Use + Use + + + + ИдентификаторАбонента + + ru + Идентификатор абонента + + + String + + 36 + + + + + Use + Use + + + + ИдентификаторДокументооборота + + ru + Идентификатор документооборота + + + String + + 32 + + + + + Use + Use + + + + СодержаниеЗаявления + + ru + Содержание заявления + + + ValueStorage + + + + Use + Use + + + + СостояниеОбработкиЗаявления + + ru + Состояние обработки заявления + + + String + + + + ru + Дополнительные сообщения при обновлении состояния заявления + + + + Use + Use + + + + СертификатОснование + + ru + Сертификат основание + + + CatalogRef.СертификатыКлючейЭлектроннойПодписиИШифрования + + + ru + Сертификат, данные которого использовались при заполнении данных заявления + + + + Use + Use + + + + Сертификат + + ru + Сертификат + + + CatalogRef.СертификатыКлючейЭлектроннойПодписиИШифрования + + + ru + Ссылка на сертификат, для которого оформлялось заявление на выпуск сертификата + + + + Use + Use + true + + true + true + + + ФормаЗаписи + + ru + Форма записи + + PersonalComputer + MobileDevice + + + ФормаСписка + + ru + Форма списка + + PersonalComputer + MobileDevice + + diff --git a/SSL/src/InformationRegisters/КалендарныеГрафики/ManagerModule.bsl b/SSL/src/InformationRegisters/КалендарныеГрафики/ManagerModule.bsl index d07c4d80a..a69cfe350 100644 --- a/SSL/src/InformationRegisters/КалендарныеГрафики/ManagerModule.bsl +++ b/SSL/src/InformationRegisters/КалендарныеГрафики/ManagerModule.bsl @@ -133,7 +133,7 @@ ЗаписьЖурналаРегистрации( ОбновлениеИнформационнойБазы.СобытиеЖурналаРегистрации(), - УровеньЖурналаРегистрации.Информация, , , + УровеньЖурналаРегистрации.Информация, МетаданныеРегистра, , СтроковыеФункцииКлиентСервер.ПодставитьПараметрыВСтроку( НСтр("ru = 'Процедура %1 обработала очередную порцию записей: %2'"), ИмяПроцедуры, diff --git a/SSL/src/InformationRegisters/КурсыВалют/RecordSetModule.bsl b/SSL/src/InformationRegisters/КурсыВалют/RecordSetModule.bsl index c3b2cbe30..9ef2ec8b8 100644 --- a/SSL/src/InformationRegisters/КурсыВалют/RecordSetModule.bsl +++ b/SSL/src/InformationRegisters/КурсыВалют/RecordSetModule.bsl @@ -201,11 +201,8 @@ Запрос = Новый Запрос(ТекстЗапроса); Запрос.УстановитьПараметр("КодыВалют", КодыВалют); Запрос.УстановитьПараметр("Период", Период); - - Выражение = Формула; - Если СтрНайти(Выражение, ".") = 0 Тогда - Выражение = СтрЗаменить(Выражение, ",", "."); - КонецЕсли; + + Выражение = ФорматироватьЧисла(Формула); Выборка = Запрос.Выполнить().Выбрать(); Пока Выборка.Следующий() Цикл @@ -267,6 +264,52 @@ КонецФункции +Функция ФорматироватьЧисла(Строка) Экспорт + + Результат = ""; + Число = ""; + ЕстьРазделительВЧисле = Ложь; + ПредыдущийСимвол = ""; + + ДлинаСтроки = СтрДлина(Строка); + Для Индекс = 1 По ДлинаСтроки Цикл + Если Индекс < ДлинаСтроки Тогда + СледующийСимвол = Сред(Строка, Индекс + 1, 1); + Иначе + СледующийСимвол = ""; + КонецЕсли; + Символ = Сред(Строка, Индекс, 1); + + ПредыдущийСимволЭтоРазделитель = ПредыдущийСимвол = "" Или СтрНайти("()[]/*-+%=<>, ", ПредыдущийСимвол) > 0; + + Если ЭтоЦифра(Символ) И (ПредыдущийСимволЭтоРазделитель Или ЭтоЦифра(ПредыдущийСимвол) И ЗначениеЗаполнено(Число)) Тогда + Число = Число + Символ; + ИначеЕсли Не ЕстьРазделительВЧисле И (Символ = "," Или Символ = ".") И ЭтоЦифра(СледующийСимвол) + И (ЭтоЦифра(ПредыдущийСимвол) Или ПредыдущийСимволЭтоРазделитель) И ЗначениеЗаполнено(Число) Тогда + Число = Число + "."; + ЕстьРазделительВЧисле = Истина; + Иначе + Результат = Результат + Число + Символ; + Число = ""; + ЕстьРазделительВЧисле = Ложь; + КонецЕсли; + + ПредыдущийСимвол = Символ; + Символ = ""; + КонецЦикла; + + Результат = Результат + Число + Символ; + Возврат Результат; + +КонецФункции + +Функция ЭтоЦифра(Символ) + + Возврат СтрНайти("1234567890", Символ) > 0; + +КонецФункции + + #КонецОбласти #Иначе diff --git a/SSL/src/InformationRegisters/КэшПрограммныхИнтерфейсов/ManagerModule.bsl b/SSL/src/InformationRegisters/КэшПрограммныхИнтерфейсов/ManagerModule.bsl index 10e55bcfe..c3e1570d1 100644 --- a/SSL/src/InformationRegisters/КэшПрограммныхИнтерфейсов/ManagerModule.bsl +++ b/SSL/src/InformationRegisters/КэшПрограммныхИнтерфейсов/ManagerModule.bsl @@ -506,7 +506,7 @@ НСтр("ru = '%1 | |Трассировка: - |ЗащищенноеСоединение: %2 + |Защищенное соединение: %2 |Таймаут: %3'"), ТекстОшибки, Формат(ЗащищенноеСоединение, НСтр("ru = 'БЛ=Нет; БИ=Да'")), diff --git a/SSL/src/InformationRegisters/КэшПрограммныхИнтерфейсов/RecordSetModule.bsl b/SSL/src/InformationRegisters/КэшПрограммныхИнтерфейсов/RecordSetModule.bsl index 98823d5a2..e6f421be5 100644 --- a/SSL/src/InformationRegisters/КэшПрограммныхИнтерфейсов/RecordSetModule.bsl +++ b/SSL/src/InformationRegisters/КэшПрограммныхИнтерфейсов/RecordSetModule.bsl @@ -50,18 +50,16 @@ Новый Структура("Идентификатор, ТипДанных", Запись.Идентификатор, Запись.ТипДанных)); Если КонтрольныеСтроки.Количество() <> 1 Тогда - ОшибкаКонтроля(); - Иначе - - КонтрольнаяСтрока = КонтрольныеСтроки.Получить(0); - - ТекущиеДанные = ОбщегоНазначения.ЗначениеВСтрокуXML(Запись.Данные.Получить()); - КонтрольныеДанные = ОбщегоНазначения.ЗначениеВСтрокуXML(КонтрольнаяСтрока.Данные.Получить()); - - Если ТекущиеДанные <> КонтрольныеДанные Тогда - ОшибкаКонтроля(); - КонецЕсли; + ВызватьИсключениеКонтроля(); + КонецЕсли; + КонтрольнаяСтрока = КонтрольныеСтроки.Получить(0); + + ТекущиеДанные = ОбщегоНазначения.ЗначениеВСтрокуXML(Запись.Данные.Получить()); + КонтрольныеДанные = ОбщегоНазначения.ЗначениеВСтрокуXML(КонтрольнаяСтрока.Данные.Получить()); + + Если ТекущиеДанные <> КонтрольныеДанные Тогда + ВызватьИсключениеКонтроля(); КонецЕсли; КонецЦикла; @@ -94,10 +92,12 @@ КонецПроцедуры -Процедура ОшибкаКонтроля() +Процедура ВызватьИсключениеКонтроля() - ВызватьИсключение НСтр("ru = 'Недопустимое изменение ресурса Данные записи регистра сведений КэшПрограммныхИнтерфейсов - |внутри транзакции записи из сеанса с включенным разделением.'"); + ВызватьИсключение СтроковыеФункцииКлиентСервер.ПодставитьПараметрыВСтроку( + НСтр("ru = 'Недопустимое изменение ресурса %1 записи регистра сведений %2 + |внутри транзакции записи из сеанса с включенным разделением.'"), + "Данные", "КэшПрограммныхИнтерфейсов"); КонецПроцедуры diff --git a/SSL/src/InformationRegisters/НаличиеФайлов/ManagerModule.bsl b/SSL/src/InformationRegisters/НаличиеФайлов/ManagerModule.bsl index 507347eaa..af34b9919 100644 --- a/SSL/src/InformationRegisters/НаличиеФайлов/ManagerModule.bsl +++ b/SSL/src/InformationRegisters/НаличиеФайлов/ManagerModule.bsl @@ -100,10 +100,10 @@ ПроблемныхОбъектов = ПроблемныхОбъектов + 1; ТекстСообщения = СтроковыеФункцииКлиентСервер.ПодставитьПараметрыВСтроку( - НСтр("ru = 'Не удалось обработать версию файла: %1 по причине: - |%2'"), + НСтр("ru = 'Не удалось обработать сведения о наличие файлов %1 по причине: + |%2'"), Выборка.Ссылка, ПодробноеПредставлениеОшибки(ИнформацияОбОшибке())); - ЗаписьЖурналаРегистрации(ОбновлениеИнформационнойБазы.СобытиеЖурналаРегистрации(), УровеньЖурналаРегистрации.Предупреждение, + ЗаписьЖурналаРегистрации(ОбновлениеИнформационнойБазы.СобытиеЖурналаРегистрации(), УровеньЖурналаРегистрации.Предупреждение, Выборка.Ссылка.Метаданные(), Выборка.Ссылка, ТекстСообщения); КонецПопытки; @@ -115,15 +115,15 @@ Если ОбъектовОбработано = 0 И ПроблемныхОбъектов <> 0 Тогда ТекстСообщения = СтроковыеФункцииКлиентСервер.ПодставитьПараметрыВСтроку( - НСтр("ru = 'Процедуре РегистрыСведений.НаличиеФайлов.ОбработатьДанныеДляПереходаНаНовуюВерсию не удалось обработать программы электронной подписи (пропущены): %1'"), - ПроблемныхОбъектов); + НСтр("ru = 'Не удалось обработать сведения о наличие файлов (пропущены): %1'"), + ПроблемныхОбъектов); ВызватьИсключение ТекстСообщения; Иначе - ЗаписьЖурналаРегистрации(ОбновлениеИнформационнойБазы.СобытиеЖурналаРегистрации(), УровеньЖурналаРегистрации.Информация, - , , - СтроковыеФункцииКлиентСервер.ПодставитьПараметрыВСтроку( - НСтр("ru = 'Процедура РегистрыСведений.НаличиеФайлов.ОбработатьДанныеДляПереходаНаНовуюВерсию обработала очередную порцию программ электронной подписи: %1'"), - ОбъектовОбработано)); + ЗаписьЖурналаРегистрации(ОбновлениеИнформационнойБазы.СобытиеЖурналаРегистрации(), + УровеньЖурналаРегистрации.Информация, , , + СтроковыеФункцииКлиентСервер.ПодставитьПараметрыВСтроку( + НСтр("ru = 'Обработана очередная порция сведений о наличие файлов: %1'"), + ОбъектовОбработано)); КонецЕсли; Параметры.ОбработкаЗавершена = ОбработкаЗавершена; diff --git a/SSL/src/InformationRegisters/НастройкиВариантовОтчетов/ManagerModule.bsl b/SSL/src/InformationRegisters/НастройкиВариантовОтчетов/ManagerModule.bsl index c95f39b90..8df06f266 100644 --- a/SSL/src/InformationRegisters/НастройкиВариантовОтчетов/ManagerModule.bsl +++ b/SSL/src/InformationRegisters/НастройкиВариантовОтчетов/ManagerModule.bsl @@ -706,8 +706,6 @@ Обработано = 0; Отказано = 0; - #Область ОбработкаДанных - Пока Вариант.Следующий() Цикл Данные.Вариант = Вариант.Ссылка; @@ -739,36 +737,24 @@ КонецПопытки; КонецЦикла; - - #КонецОбласти - - #Область ОбработкаСтатистики - + Параметры.ОбработкаЗавершена = ОбновлениеИнформационнойБазы.ОбработкаДанныхЗавершена( Параметры.Очередь, Метаданные.Справочники.ВариантыОтчетов.ПолноеИмя()); Если Обработано = 0 И Отказано <> 0 Тогда - - ШаблонСообщения = НСтр("ru = 'Процедуре ПеренестиНастройкиДоступностиВариантаОтчета не удалось обработать некоторые данные: %1'"); + ШаблонСообщения = НСтр("ru = 'Не удалось обработать некоторые настройки вариантов отчетов: %1'"); ТекстСообщения = СтроковыеФункцииКлиентСервер.ПодставитьПараметрыВСтроку(ШаблонСообщения, Отказано); - ВызватьИсключение ТекстСообщения; - Иначе - - ШаблонКомментария = НСтр("ru = 'Процедура ПеренестиНастройкиДоступностиВариантаОтчета обработала очередной пакет данных: %1'"); + ШаблонКомментария = НСтр("ru = 'Обработан очередной пакет настроек вариантов отчетов: %1'"); Комментарий = СтроковыеФункцииКлиентСервер.ПодставитьПараметрыВСтроку(ШаблонКомментария, Обработано); - ЗаписьЖурналаРегистрации( ОбновлениеИнформационнойБазы.СобытиеЖурналаРегистрации(), УровеньЖурналаРегистрации.Информация, МетаданныеРегистра,, Комментарий); - КонецЕсли; - #КонецОбласти - КонецПроцедуры Процедура ПеренестиНастройкиДоступностиВариантаОтчета(Данные) diff --git a/SSL/src/InformationRegisters/НастройкиОчисткиФайлов/Forms/ФормаСписка/Module.bsl b/SSL/src/InformationRegisters/НастройкиОчисткиФайлов/Forms/ФормаСписка/Module.bsl index 9dc958095..f096e951b 100644 --- a/SSL/src/InformationRegisters/НастройкиОчисткиФайлов/Forms/ФормаСписка/Module.bsl +++ b/SSL/src/InformationRegisters/НастройкиОчисткиФайлов/Forms/ФормаСписка/Module.bsl @@ -58,7 +58,7 @@ #КонецОбласти -#Область ОбработчикиСобытийЭлементовФормы +#Область ОбработчикиСобытийЭлементовШапкиФормы &НаКлиенте Процедура РежимОчисткиФайловПриИзменении(Элемент) diff --git a/SSL/src/InformationRegisters/НастройкиТранспортаОбменаОбластейДанных/Forms/ФормаСписка/Form.form b/SSL/src/InformationRegisters/НастройкиТранспортаОбменаОбластейДанных/Forms/ФормаСписка/Form.form index b92621b85..648fdd9dc 100644 --- a/SSL/src/InformationRegisters/НастройкиТранспортаОбменаОбластейДанных/Forms/ФормаСписка/Form.form +++ b/SSL/src/InformationRegisters/НастройкиТранспортаОбменаОбластейДанных/Forms/ФормаСписка/Form.form @@ -90,38 +90,11 @@ true + None СписокКоманднаяПанель 5 - - ФормаИзменить - 19 - true - true - - true - - - ФормаИзменитьРасширеннаяПодсказка - 20 - Label - true - true - - Left - - - Form.StandardCommand.Change - Normal - Auto - true - true - UserCmds - Auto - InCommandBarAndInAdditionalSubmenu - Left - true СписокСтрокаПоиска @@ -231,6 +204,8 @@ Список.DefaultPicture + None + None true 60 @@ -247,7 +222,35 @@ ФормаКоманднаяПанель -1 + + ФормаИзменить + 19 + true + true + + true + + + ФормаИзменитьРасширеннаяПодсказка + 20 + Label + true + true + + Left + + + Form.StandardCommand.Change + Normal + Auto + true + true + UserCmds + Auto + InCommandBarAndInAdditionalSubmenu + Left + true Copy Create diff --git a/SSL/src/InformationRegisters/ОбработчикиОбновления/Forms/ПерезапускОтложенногоОбновления/Form.form b/SSL/src/InformationRegisters/ОбработчикиОбновления/Forms/ПерезапускОтложенногоОбновления/Form.form new file mode 100644 index 000000000..9a1d32a8b --- /dev/null +++ b/SSL/src/InformationRegisters/ОбработчикиОбновления/Forms/ПерезапускОтложенногоОбновления/Form.form @@ -0,0 +1,449 @@ + + + + Страницы + 19 + + СтраницаГлавное + 21 + + ГруппаШапка + 1 + + КартинкаИнформация + 6 + true + true + + true + + + КартинкаИнформацияРасширеннаяПодсказка + 8 + Label + true + true + + Left + + + + КартинкаИнформацияКонтекстноеМеню + 7 + true + + true + true + + + StdPicture.DialogInformation + + AsFileRef + + + + ГруппаИнформация + 31 + + НадписьИнформация + 3 + + <key>ru</key> + <value>Перезапуск отложенного обновления нужен в тех случаях, когда отложенный обработчик завершился с ошибкой, исправление которой потребовало повторно с самого начала зарегистрировать данные для обновления. + +При этом: + • не требуется завершать работу пользователей в программе, а по завершении регистрации отложенное обновление будет запущено автоматически; + • все незавершенные отложенные обработчики будут перезапущены автоматически. Дополнительно можно выбрать другие обработчики для перезапуска:</value> + + true + true + + true + + + НадписьИнформацияРасширеннаяПодсказка + 5 + Label + true + true + + Left + + + + НадписьИнформацияКонтекстноеМеню + 4 + true + + Label + 80 + true + + Left + + + + ГиперссылкаВыборОбработчиков + 12 + + <key>ru</key> + <value>Выбрать обработчики</value> + + true + true + + true + + + ГиперссылкаВыборОбработчиковРасширеннаяПодсказка + 14 + Label + true + true + + Left + + + + ГиперссылкаВыборОбработчиковКонтекстноеМеню + 13 + true + + Label + true + true + + + Click + ГиперссылкаВыборОбработчиковНажатие + + + URLProcessing + ГиперссылкаВыборОбработчиковОбработкаНавигационнойСсылки + + true + Left + + + true + true + + true + + + <key>ru</key> + <value>Информация</value> + + + ГруппаИнформацияРасширеннаяПодсказка + 32 + Label + true + true + + Left + + + UsualGroup + + Vertical + Auto + true + true + Auto + Auto + + + true + true + + true + + + <key>ru</key> + <value>Шапка</value> + + + ГруппаШапкаРасширеннаяПодсказка + 2 + Label + true + true + + Left + + + UsualGroup + + AlwaysHorizontal + Auto + true + true + Auto + Auto + + + true + true + + true + + + <key>ru</key> + <value>Страница главное</value> + + + СтраницаГлавноеРасширеннаяПодсказка + 22 + Label + true + true + + Left + + + Page + + Vertical + false + + + + СтраницаДлительнаяОперация + 23 + + КартинкаДлительнаяОперация + 25 + + <key>ru</key> + <value>Картинка длительная операция</value> + + true + true + + true + + + КартинкаДлительнаяОперацияРасширеннаяПодсказка + 27 + Label + true + true + + Left + + + + КартинкаДлительнаяОперацияКонтекстноеМеню + 26 + true + + true + true + + + CommonPicture.ДлительнаяОперация48 + + AsFileRef + + + + НадписьДлительнаяОперация + 28 + + <key>ru</key> + <value>Выполняется регистрация данных для отложенного обновления.</value> + + true + true + + true + + + НадписьДлительнаяОперацияРасширеннаяПодсказка + 30 + Label + true + true + + Left + + + + НадписьДлительнаяОперацияКонтекстноеМеню + 29 + true + + Label + true + true + Center + + Left + + + true + true + + true + + + <key>ru</key> + <value>Страница длительная операция</value> + + + СтраницаДлительнаяОперацияРасширеннаяПодсказка + 24 + Label + true + true + + Left + + + Page + + AlwaysHorizontal + auto + false + + + true + true + + true + + + <key>ru</key> + <value>Страницы</value> + + + СтраницыРасширеннаяПодсказка + 20 + Label + true + true + + Left + + + Pages + + Auto + + + Bottom + true + + ФормаКоманднаяПанель + -1 + + ФормаПерезапустить + 15 + true + true + + true + + + ФормаПерезапуститьРасширеннаяПодсказка + 16 + Label + true + true + + Left + + + Form.Command.Перезапустить + Auto + true + true + true + UserCmds + Auto + + + ФормаЗакрыть + 17 + true + true + + true + + + ФормаЗакрытьРасширеннаяПодсказка + 18 + Label + true + true + + Left + + + Form.StandardCommand.Close + Normal + Auto + true + true + UserCmds + Auto + + Right + + + OnCreateAtServer + ПриСозданииНаСервере + + LockOwner + true + true + Vertical + true + true + true + auto + true + + ВыбранныеОбработчики + 1 + + ValueList + + + true + + + true + + + + + + + Перезапустить + + <key>ru</key> + <value>Перезапустить</value> + + 1 + + ru + Перезапустить + + + true + + + + Перезапустить + + + Auto + Auto + + + + + + diff --git a/SSL/src/InformationRegisters/ОбработчикиОбновления/Forms/ПерезапускОтложенногоОбновления/Module.bsl b/SSL/src/InformationRegisters/ОбработчикиОбновления/Forms/ПерезапускОтложенногоОбновления/Module.bsl new file mode 100644 index 000000000..fe18a4e94 --- /dev/null +++ b/SSL/src/InformationRegisters/ОбработчикиОбновления/Forms/ПерезапускОтложенногоОбновления/Module.bsl @@ -0,0 +1,93 @@ +/////////////////////////////////////////////////////////////////////////////////////////////////////// +// Copyright (c) 2021, ООО 1С-Софт +// Все права защищены. Эта программа и сопроводительные материалы предоставляются +// в соответствии с условиями лицензии Attribution 4.0 International (CC BY 4.0) +// Текст лицензии доступен по ссылке: +// https://creativecommons.org/licenses/by/4.0/legalcode +/////////////////////////////////////////////////////////////////////////////////////////////////////// + +#Область ОбработчикиСобытийФормы + +&НаСервере +Процедура ПриСозданииНаСервере(Отказ, СтандартнаяОбработка) + Заголовок = НСтр("ru = 'Перезапуск отложенного обновления'"); +КонецПроцедуры + +#КонецОбласти + +#Область ОбработчикиСобытийЭлементовШапкиФормы + +&НаКлиенте +Процедура ГиперссылкаВыборОбработчиковОбработкаНавигационнойСсылки(Элемент, НавигационнаяСсылкаФорматированнойСтроки, СтандартнаяОбработка) + СтандартнаяОбработка = Ложь; +КонецПроцедуры + +&НаКлиенте +Процедура ГиперссылкаВыборОбработчиковНажатие(Элемент) + ОбработкаЗавершения = Новый ОписаниеОповещения("ПослеВыбораОбработчиков", ЭтотОбъект); + + ПараметрыВыбора = Новый Структура; + ПараметрыВыбора.Вставить("ВыбранныеОбработчики", ВыбранныеОбработчики); + ОткрытьФорму("РегистрСведений.ОбработчикиОбновления.Форма.ФормаВыбора", ПараметрыВыбора,,,,, ОбработкаЗавершения); +КонецПроцедуры + +#КонецОбласти + +#Область ОбработчикиКоманд + +&НаКлиенте +Процедура Перезапустить(Команда) + Элементы.ФормаПерезапустить.Доступность = Ложь; + + ДлительнаяОперация = ДлительнаяОперация(); + + ОповещениеОЗавершении = Новый ОписаниеОповещения("ОбработатьРезультат", ЭтотОбъект); + ПараметрыОжидания = ДлительныеОперацииКлиент.ПараметрыОжидания(ЭтотОбъект); + ДлительныеОперацииКлиент.ОжидатьЗавершение(ДлительнаяОперация, ОповещениеОЗавершении, ПараметрыОжидания); +КонецПроцедуры + +#КонецОбласти + +#Область СлужебныеПроцедурыИФункции + +&НаКлиенте +Процедура ПослеВыбораОбработчиков(Результат, ДополнительныеПараметры) Экспорт + + Если Результат = Неопределено Тогда + Возврат; + КонецЕсли; + + ВыбранныеОбработчики.ЗагрузитьЗначения(Результат); + + Если ВыбранныеОбработчики.Количество() = 0 Тогда + Элементы.ГиперссылкаВыборОбработчиков.Заголовок = НСтр("ru = 'Выбрать обработчики'"); + Иначе + Элементы.ГиперссылкаВыборОбработчиков.Заголовок = СтроковыеФункцииКлиентСервер.ПодставитьПараметрыВСтроку( + НСтр("ru = 'Выбрано обработчиков: %1'"), + ВыбранныеОбработчики.Количество()); + КонецЕсли; + +КонецПроцедуры + +&НаСервере +Функция ДлительнаяОперация() + ПараметрыВыполнения = ДлительныеОперации.ПараметрыВыполненияВФоне(УникальныйИдентификатор); + ПараметрыВыполнения.ОжидатьЗавершение = 0; + + Результат = ДлительныеОперации.ВыполнитьПроцедуру(ПараметрыВыполнения, "ОбновлениеИнформационнойБазы.ПерезапуститьОтложенноеОбновление", + ВыбранныеОбработчики.ВыгрузитьЗначения()); + + Возврат Результат; +КонецФункции + +&НаКлиенте +Процедура ОбработатьРезультат(Результат, ДополнительныеПараметры) Экспорт + Если Результат = Неопределено Тогда + Возврат; + КонецЕсли; + + Оповестить("ОтложенноеОбновлениеПерезапущено"); + Закрыть(); +КонецПроцедуры + +#КонецОбласти \ No newline at end of file diff --git a/SSL/src/InformationRegisters/ОбработчикиОбновления/Forms/ФормаВыбора/Form.form b/SSL/src/InformationRegisters/ОбработчикиОбновления/Forms/ФормаВыбора/Form.form new file mode 100644 index 000000000..458bb9bdf --- /dev/null +++ b/SSL/src/InformationRegisters/ОбработчикиОбновления/Forms/ФормаВыбора/Form.form @@ -0,0 +1,660 @@ + + + + СписокКомпоновщикНастроекПользовательскиеНастройки + 1 + true + true + + true + + + <key>ru</key> + <value>Группа пользовательских настроек</value> + + false + + СписокКомпоновщикНастроекПользовательскиеНастройкиРасширеннаяПодсказка + 2 + Label + true + true + + Left + + + UsualGroup + + Vertical + Auto + WeakSeparation + true + true + Auto + Auto + + + + СписокОбработчиков + 31 + + <key>ru</key> + <value>Обработчиков</value> + + true + true + + true + + + СписокОбработчиков + + None + Add + Change + Copy + Delete + MoveDown + MoveUp + + Выбран + 55 + true + true + + true + + + СписокОбработчиков.Выбран + + None + + ВыбранРасширеннаяПодсказка + 57 + Label + true + true + + Left + + + + ВыбранКонтекстноеМеню + 56 + true + + CheckBoxField + Auto + true + Left + true + + + + ИмяОбработчика + 44 + true + true + + true + + + СписокОбработчиков.ИмяОбработчика + + + ИмяОбработчикаРасширеннаяПодсказка + 46 + Label + true + true + + Left + + + + ИмяОбработчикаКонтекстноеМеню + 45 + true + + InputField + Auto + true + Left + true + + true + true + true + true + true + true + Normal + + + + Статус + 47 + true + true + + true + + + СписокОбработчиков.Статус + + + СтатусРасширеннаяПодсказка + 49 + Label + true + true + + Left + + + + СтатусКонтекстноеМеню + 48 + true + + InputField + Auto + true + Left + true + + 5 + true + true + true + true + true + true + Normal + + + + Версия + 50 + true + true + + true + + + СписокОбработчиков.Версия + + + ВерсияРасширеннаяПодсказка + 52 + Label + true + true + + Left + + + + ВерсияКонтекстноеМеню + 51 + true + + InputField + Auto + true + Left + true + + 5 + true + true + true + true + true + true + Normal + + + + СписокОбработчиковКоманднаяПанель + 33 + Left + + + Selection + СписокОбработчиковВыбор + + + BeforeAddRow + СписокОбработчиковПередНачаломДобавления + + + BeforeDeleteRow + СписокОбработчиковПередУдалением + + + BeforeRowChange + СписокОбработчиковПередНачаломИзменения + + + СписокОбработчиковСтрокаПоиска + 35 + + СписокОбработчиковСтрокаПоискаРасширеннаяПодсказка + 37 + Label + true + true + + Left + + + + СписокОбработчиковСтрокаПоискаКонтекстноеМеню + 36 + true + + СписокОбработчиков + + true + + + + СписокОбработчиковСостояниеПросмотра + 38 + + СписокОбработчиковСостояниеПросмотраРасширеннаяПодсказка + 40 + Label + true + true + + Left + + + + СписокОбработчиковСостояниеПросмотраКонтекстноеМеню + 39 + true + + ViewStatusAddition + СписокОбработчиков + + true + + + + СписокОбработчиковУправлениеПоиском + 41 + + СписокОбработчиковУправлениеПоискомРасширеннаяПодсказка + 43 + Label + true + true + + Left + + + + СписокОбработчиковУправлениеПоискомКонтекстноеМеню + 42 + true + + SearchControlAddition + СписокОбработчиков + + true + + + + СписокОбработчиковРасширеннаяПодсказка + 34 + Label + true + true + + Left + + + + СписокОбработчиковКонтекстноеМеню + 32 + true + + true + true + true + true + true + MultiRow +
      true
      + 1 + 1 + AutoUse + AutoUse + true + true + false + true + Auto + Auto + true + true + true + true + AsFileRef + true + +
      + + ФормаКоманднаяПанель + -1 + + ФормаГотово + 25 + true + true + + true + + + ФормаГотовоРасширеннаяПодсказка + 26 + Label + true + true + + Left + + + Form.Command.Готово + Auto + true + true + true + UserCmds + Auto + + + ФормаВыбрать + 27 + true + true + + true + + + ФормаВыбратьРасширеннаяПодсказка + 28 + Label + true + true + + Left + + + Form.Command.Выбрать + Normal + Auto + true + true + UserCmds + Auto + + + ФормаОтменитьВыбор + 29 + true + true + + true + + + ФормаОтменитьВыборРасширеннаяПодсказка + 30 + Label + true + true + + Left + + + Form.Command.ОтменитьВыбор + Normal + Auto + true + true + UserCmds + Auto + + + ФормаОтменитьВыборВсех + 53 + true + true + + true + + + ФормаОтменитьВыборВсехРасширеннаяПодсказка + 54 + Label + true + true + + Left + + + Form.Command.ОтменитьВыборВсех + Normal + Auto + true + true + UserCmds + Auto + + Left + true + + + OnCreateAtServer + ПриСозданииНаСервере + + 100 + LockOwner + true + true + Vertical + true + true + true + auto + true + + СписокОбработчиков + + <key>ru</key> + <value>Список обработчиков</value> + + 3 + + ValueTable + + + true + + + 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 + + Boolean + + + 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 + + + ОтменитьВыборВсех + + <key>ru</key> + <value>Отменить выбор всех</value> + + 4 + + ru + Отменить выбор всех + + + true + + + + ОтменитьВыборВсех + + + Auto + Auto + + + ВыбранныеОбработчики + + ValueList + + + + + + +
      diff --git a/SSL/src/InformationRegisters/ОбработчикиОбновления/Forms/ФормаВыбора/Module.bsl b/SSL/src/InformationRegisters/ОбработчикиОбновления/Forms/ФормаВыбора/Module.bsl new file mode 100644 index 000000000..4bf3e5b34 --- /dev/null +++ b/SSL/src/InformationRegisters/ОбработчикиОбновления/Forms/ФормаВыбора/Module.bsl @@ -0,0 +1,147 @@ +/////////////////////////////////////////////////////////////////////////////////////////////////////// +// Copyright (c) 2021, ООО 1С-Софт +// Все права защищены. Эта программа и сопроводительные материалы предоставляются +// в соответствии с условиями лицензии Attribution 4.0 International (CC BY 4.0) +// Текст лицензии доступен по ссылке: +// https://creativecommons.org/licenses/by/4.0/legalcode +/////////////////////////////////////////////////////////////////////////////////////////////////////// + +#Область ОбработчикиСобытийФормы + +&НаСервере +Процедура ПриСозданииНаСервере(Отказ, СтандартнаяОбработка) + Заголовок = НСтр("ru = 'Выбор обработчиков для перезапуска отложенного обновления'"); + + УстановитьУсловноеОформление(); + ЗаполнитьСписокОбработчиков(Параметры.ВыбранныеОбработчики.ВыгрузитьЗначения()); +КонецПроцедуры + +#КонецОбласти + +#Область ОбработчикиСобытийЭлементовТаблицыФормыСписокОбработчиков + +&НаКлиенте +Процедура СписокОбработчиковВыбор(Элемент, ВыбраннаяСтрока, Поле, СтандартнаяОбработка) + СтандартнаяОбработка = Ложь; + Элемент.ТекущиеДанные.Выбран = Не Элемент.ТекущиеДанные.Выбран; +КонецПроцедуры + +&НаКлиенте +Процедура СписокОбработчиковПередУдалением(Элемент, Отказ) + Отказ = Истина; +КонецПроцедуры + +&НаКлиенте +Процедура СписокОбработчиковПередНачаломДобавления(Элемент, Отказ, Копирование, Родитель, Группа, Параметр) + Отказ = Истина; +КонецПроцедуры + +&НаКлиенте +Процедура СписокОбработчиковПередНачаломИзменения(Элемент, Отказ) + Отказ = Истина; +КонецПроцедуры + +#КонецОбласти + +#Область ОбработчикиКомандФормы + +&НаКлиенте +Процедура Готово(Команда) + Закрыть(ВыбранныеОбработчики()); +КонецПроцедуры + +&НаКлиенте +Процедура Выбрать(Команда) + + Для Каждого ИдентификаторСтроки Из Элементы.СписокОбработчиков.ВыделенныеСтроки Цикл + ВыделеннаяСтрока = СписокОбработчиков.НайтиПоИдентификатору(ИдентификаторСтроки); + ВыделеннаяСтрока.Выбран = Истина; + КонецЦикла; + +КонецПроцедуры + +&НаКлиенте +Процедура ОтменитьВыбор(Команда) + Для Каждого ИдентификаторСтроки Из Элементы.СписокОбработчиков.ВыделенныеСтроки Цикл + ВыделеннаяСтрока = СписокОбработчиков.НайтиПоИдентификатору(ИдентификаторСтроки); + ВыделеннаяСтрока.Выбран = Ложь; + КонецЦикла; +КонецПроцедуры + +&НаКлиенте +Процедура ОтменитьВыборВсех(Команда) + ПараметрыПоиска = Новый Структура; + ПараметрыПоиска.Вставить("Выбран", Истина); + НайденныеСтроки = СписокОбработчиков.НайтиСтроки(ПараметрыПоиска); + Для Каждого Строка Из НайденныеСтроки Цикл + Строка.Выбран = Ложь; + КонецЦикла; +КонецПроцедуры + +#КонецОбласти + +#Область СлужебныеПроцедурыИФункции + +&НаСервере +Процедура УстановитьУсловноеОформление() + + УсловноеОформление.Элементы.Очистить(); + + // + Элемент = УсловноеОформление.Элементы.Добавить(); + + ПолеЭлемента = Элемент.Поля.Элементы.Добавить(); + ПолеЭлемента.Поле = Новый ПолеКомпоновкиДанных(Элементы.ИмяОбработчика.Имя); + ПолеЭлемента = Элемент.Поля.Элементы.Добавить(); + ПолеЭлемента.Поле = Новый ПолеКомпоновкиДанных(Элементы.Статус.Имя); + ПолеЭлемента = Элемент.Поля.Элементы.Добавить(); + ПолеЭлемента.Поле = Новый ПолеКомпоновкиДанных(Элементы.Версия.Имя); + + ОтборЭлемента = Элемент.Отбор.Элементы.Добавить(Тип("ЭлементОтбораКомпоновкиДанных")); + ОтборЭлемента.ЛевоеЗначение = Новый ПолеКомпоновкиДанных("СписокОбработчиков.Выбран"); + ОтборЭлемента.ВидСравнения = ВидСравненияКомпоновкиДанных.Равно; + ОтборЭлемента.ПравоеЗначение = Истина; + Элемент.Оформление.УстановитьЗначениеПараметра("ЦветФона", WebЦвета.Роса); + +КонецПроцедуры + +&НаСервере +Процедура ЗаполнитьСписокОбработчиков(ВыбранныеОбработчики) + Запрос = Новый Запрос; + Запрос.УстановитьПараметр("Статус", Перечисления.СтатусыОбработчиковОбновления.Выполнен); + Запрос.УстановитьПараметр("РежимВыполненияОтложенногоОбработчика", Перечисления.РежимыВыполненияОтложенныхОбработчиков.Параллельно); + Запрос.Текст = + "ВЫБРАТЬ + | РегистрСведенийОбработчикиОбновления.ИмяОбработчика КАК ИмяОбработчика, + | РегистрСведенийОбработчикиОбновления.Статус КАК Статус, + | РегистрСведенийОбработчикиОбновления.Версия КАК Версия + |ИЗ + | РегистрСведений.ОбработчикиОбновления КАК РегистрСведенийОбработчикиОбновления + |ГДЕ + | РегистрСведенийОбработчикиОбновления.Статус = &Статус + | И РегистрСведенийОбработчикиОбновления.РежимВыполненияОтложенногоОбработчика = &РежимВыполненияОтложенногоОбработчика"; + Обработчики = Запрос.Выполнить().Выгрузить(); + Обработчики.Колонки.Добавить("Выбран", Новый ОписаниеТипов("Булево")); + + Для Каждого ВыбранныйОбработчик Из ВыбранныеОбработчики Цикл + НайденныйОбработчик = Обработчики.Найти(ВыбранныйОбработчик, "ИмяОбработчика"); + НайденныйОбработчик.Выбран = Истина; + КонецЦикла; + + ЗначениеВРеквизитФормы(Обработчики, "СписокОбработчиков"); +КонецПроцедуры + +&НаСервере +Функция ВыбранныеОбработчики() + + ПараметрыОтбора = Новый Структура; + ПараметрыОтбора.Вставить("Выбран", Истина); + ВыбранныеОбработчики = СписокОбработчиков.Выгрузить(ПараметрыОтбора, "ИмяОбработчика"); + + Возврат ВыбранныеОбработчики.ВыгрузитьКолонку("ИмяОбработчика"); + +КонецФункции + +#КонецОбласти + + diff --git a/SSL/src/InformationRegisters/ОбработчикиОбновления/Forms/ФормаЗаписи/Form.form b/SSL/src/InformationRegisters/ОбработчикиОбновления/Forms/ФормаЗаписи/Form.form new file mode 100644 index 000000000..04b720951 --- /dev/null +++ b/SSL/src/InformationRegisters/ОбработчикиОбновления/Forms/ФормаЗаписи/Form.form @@ -0,0 +1,1479 @@ + + + + ГруппаШапка + 85 + + ИмяОбработчика + 4 + true + true + + true + + + Запись.ИмяОбработчика + + + ИмяОбработчикаРасширеннаяПодсказка + 6 + Label + true + true + + Left + + + + ИмяОбработчикаКонтекстноеМеню + 5 + true + + InputField + Enter + true + Left + true + + true + true + true + true + true + Normal + + + + ПроцедураЗаполненияДанныхОбновления + 43 + + <key>ru</key> + <value>Процедура заполнения</value> + + true + true + + true + + + Запись.ПроцедураЗаполненияДанныхОбновления + + + ПроцедураЗаполненияДанныхОбновленияРасширеннаяПодсказка + 45 + Label + true + true + + Left + + + + ПроцедураЗаполненияДанныхОбновленияКонтекстноеМеню + 44 + true + + InputField + Enter + true + Left + true + + true + true + true + true + true + Normal + + + + ГруппаОсновныеСвойства + 73 + + ГруппаСтатусВерсия + 75 + + Статус + 7 + true + true + + true + + + Запись.Статус + + + СтатусРасширеннаяПодсказка + 9 + Label + true + true + + Left + + + + СтатусКонтекстноеМеню + 8 + true + + InputField + Enter + true + Left + true + + true + true + true + true + true + true + Normal + + + + Версия + 10 + 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> + + + ГруппаСтатусВерсияРасширеннаяПодсказка + 76 + Label + true + true + + Left + + + UsualGroup + + Vertical + Auto + true + true + Auto + Auto + + + + ГруппаРежимБиблиотека + 77 + + РежимВыполнения + 19 + true + true + + true + + + Запись.РежимВыполнения + + + РежимВыполненияРасширеннаяПодсказка + 21 + Label + true + true + + Left + + + + РежимВыполненияКонтекстноеМеню + 20 + true + + InputField + Enter + true + Left + true + + true + true + true + true + true + true + Normal + + + + ИмяБиблиотеки + 13 + true + true + + true + + + Запись.ИмяБиблиотеки + + + ИмяБиблиотекиРасширеннаяПодсказка + 15 + Label + true + true + + Left + + + + ИмяБиблиотекиКонтекстноеМеню + 14 + true + + InputField + Enter + true + Left + true + + true + true + true + true + true + true + Normal + + + true + true + + true + + + <key>ru</key> + <value>Режим библиотека</value> + + + ГруппаРежимБиблиотекаРасширеннаяПодсказка + 78 + Label + true + true + + Left + + + UsualGroup + + Vertical + Auto + true + true + Auto + Auto + + + true + true + + true + + + <key>ru</key> + <value>Основные свойства</value> + + + ГруппаОсновныеСвойстваРасширеннаяПодсказка + 74 + Label + true + true + + Left + + + UsualGroup + + AlwaysHorizontal + Auto + true + true + Auto + Auto + + + + ГруппаОчередьПопыткиМногопоточность + 79 + + ОчередьОтложеннойОбработки + 46 + + <key>ru</key> + <value>Очередь</value> + + true + true + + true + + + Запись.ОчередьОтложеннойОбработки + + + ОчередьОтложеннойОбработкиРасширеннаяПодсказка + 48 + Label + true + true + + Left + + + + ОчередьОтложеннойОбработкиКонтекстноеМеню + 47 + true + + InputField + Enter + true + Left + true + + true + true + true + true + true + true + Normal + + + + ЧислоПопыток + 28 + true + true + + true + + + Запись.ЧислоПопыток + + + ЧислоПопытокРасширеннаяПодсказка + 30 + Label + true + true + + Left + + + + ЧислоПопытокКонтекстноеМеню + 29 + true + + InputField + Enter + true + Left + true + + true + true + true + true + true + true + Normal + + + + Многопоточный + 55 + true + true + + true + + + Запись.Многопоточный + + + МногопоточныйРасширеннаяПодсказка + 57 + Label + true + true + + Left + + + + МногопоточныйКонтекстноеМеню + 56 + true + + CheckBoxField + Enter + true + Left + true + + + true + true + + true + + + <key>ru</key> + <value>Очередь попытки многопоточность</value> + + + ГруппаОчередьПопыткиМногопоточностьРасширеннаяПодсказка + 80 + Label + true + true + + Left + + + UsualGroup + + AlwaysHorizontal + Auto + true + true + Auto + Auto + + + + ОбрабатываемыеДанные + 97 + true + + true + + + ОбрабатываемыеДанные + + + ОбрабатываемыеДанныеРасширеннаяПодсказка + 99 + Label + true + true + + Left + + + + ОбрабатываемыеДанныеКонтекстноеМеню + 98 + true + + LabelField + Enter + true + Left + true + + true + true + true + + + true + true + + true + + + <key>ru</key> + <value>Шапка</value> + + + ГруппаШапкаРасширеннаяПодсказка + 86 + Label + true + true + + Left + + + UsualGroup + + Vertical + Auto + true + true + DontUse + Auto + + + + ГруппаКомментарий + 81 + + Комментарий + 34 + true + true + + true + + + Запись.Комментарий + + None + + КомментарийРасширеннаяПодсказка + 36 + Label + true + true + + Left + + + + КомментарийКонтекстноеМеню + 35 + true + + InputField + Enter + true + Left + true + + 5 + true + true + true + true + true + true + Normal + + + true + true + + true + + + <key>ru</key> + <value>Комментарий</value> + + + ГруппаКомментарийРасширеннаяПодсказка + 82 + Label + true + true + + Left + + + UsualGroup + + HorizontalIfPossible + Collapsible + true + Button + NormalSeparation + true + true + auto + Auto + Auto + + + + ГруппаИнформацияОбОшибке + 83 + + ИнформацияОбОшибке + 31 + true + true + + true + + + Запись.ИнформацияОбОшибке + + None + + ИнформацияОбОшибкеРасширеннаяПодсказка + 33 + Label + true + true + + Left + + + + ИнформацияОбОшибкеКонтекстноеМеню + 32 + true + + InputField + Enter + true + Left + true + + 5 + true + true + true + true + true + true + Normal + + + true + true + + true + + + <key>ru</key> + <value>Информация об ошибке</value> + + + ГруппаИнформацияОбОшибкеРасширеннаяПодсказка + 84 + Label + true + true + + Left + + + UsualGroup + + HorizontalIfPossible + Collapsible + true + Button + NormalSeparation + true + true + auto + Auto + Auto + + + + ГруппаДополнительныеСвойства + 87 + + ГруппаСвойстваБулево + 95 + + ОбработкаПорцииЗавершена + 58 + true + true + + true + + + Запись.ОбработкаПорцииЗавершена + + Right + + ОбработкаПорцииЗавершенаРасширеннаяПодсказка + 60 + Label + true + true + + Left + + + + ОбработкаПорцииЗавершенаКонтекстноеМеню + 59 + true + + CheckBoxField + Enter + true + Left + true + + + + ЗапускатьТолькоВГлавномУзле + 49 + true + true + + true + + + Запись.ЗапускатьТолькоВГлавномУзле + + Right + + ЗапускатьТолькоВГлавномУзлеРасширеннаяПодсказка + 51 + Label + true + true + + Left + + + + ЗапускатьТолькоВГлавномУзлеКонтекстноеМеню + 50 + true + + CheckBoxField + Enter + true + Left + true + + + + ЗапускатьИВПодчиненномУзлеРИБСФильтрами + 52 + + <key>ru</key> + <value>Запускать в РИБ с фильтрами</value> + + true + true + + true + + + Запись.ЗапускатьИВПодчиненномУзлеРИБСФильтрами + + Right + + ЗапускатьИВПодчиненномУзлеРИБСФильтрамиРасширеннаяПодсказка + 54 + Label + true + true + + Left + + + + ЗапускатьИВПодчиненномУзлеРИБСФильтрамиКонтекстноеМеню + 53 + true + + CheckBoxField + Enter + true + Left + true + + + true + true + + true + + + <key>ru</key> + <value>Свойства булево</value> + + + ГруппаСвойстваБулевоРасширеннаяПодсказка + 96 + Label + true + true + + Left + + + UsualGroup + + AlwaysHorizontal + Auto + true + true + DontUse + Auto + + + + ГруппаСвойстваПоКолонкам + 89 + + ГруппаЛеваяКолонка + 91 + + ДлительностьОбработки + 16 + true + true + + true + + + Запись.ДлительностьОбработки + + + ДлительностьОбработкиРасширеннаяПодсказка + 18 + Label + true + true + + Left + + + + ДлительностьОбработкиКонтекстноеМеню + 17 + true + + InputField + Enter + true + Left + true + + true + true + true + true + true + true + Normal + + + + ГруппаОбновления + 61 + true + true + + true + + + Запись.ГруппаОбновления + + + ГруппаОбновленияРасширеннаяПодсказка + 63 + Label + true + true + + Left + + + + ГруппаОбновленияКонтекстноеМеню + 62 + true + + InputField + Enter + true + Left + true + + true + true + true + true + true + true + Normal + + + + ИтерацияЗапуска + 64 + true + true + + true + + + Запись.ИтерацияЗапуска + + + ИтерацияЗапускаРасширеннаяПодсказка + 66 + Label + true + true + + Left + + + + ИтерацияЗапускаКонтекстноеМеню + 65 + 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 + + + true + true + + true + + + <key>ru</key> + <value>Левая колонка</value> + + + ГруппаЛеваяКолонкаРасширеннаяПодсказка + 92 + Label + true + true + + Left + + + UsualGroup + + Vertical + Auto + true + true + Auto + Auto + + + + ГруппаПраваяКолонка + 93 + + ВерсияРегистрации + 22 + true + true + + true + + + Запись.ВерсияРегистрации + + + ВерсияРегистрацииРасширеннаяПодсказка + 24 + Label + true + true + + Left + + + + ВерсияРегистрацииКонтекстноеМеню + 23 + true + + InputField + Enter + true + Left + true + + true + true + true + true + true + true + Normal + + + + Приоритет + 37 + true + true + + true + + + Запись.Приоритет + + + ПриоритетРасширеннаяПодсказка + 39 + Label + true + true + + Left + + + + ПриоритетКонтекстноеМеню + 38 + true + + InputField + Enter + true + Left + true + + true + true + true + true + true + true + Normal + + + + ИзменяемыеОбъекты + 70 + true + true + + true + + + Запись.ИзменяемыеОбъекты + + + ИзменяемыеОбъектыРасширеннаяПодсказка + 72 + Label + true + true + + Left + + + + ИзменяемыеОбъектыКонтекстноеМеню + 71 + true + + InputField + Enter + true + Left + true + + true + true + true + true + true + true + Normal + + + true + true + + true + + + <key>ru</key> + <value>Правая колонка</value> + + + ГруппаПраваяКолонкаРасширеннаяПодсказка + 94 + Label + true + true + + Left + + + UsualGroup + + Vertical + Auto + true + true + Auto + Auto + + + true + true + + true + + + <key>ru</key> + <value>Свойства по колонкам</value> + + + ГруппаСвойстваПоКолонкамРасширеннаяПодсказка + 90 + Label + true + true + + Left + + + UsualGroup + + AlwaysHorizontal + Auto + true + true + Auto + + + + ПроцедураПроверки + 40 + true + true + + true + + + Запись.ПроцедураПроверки + + + ПроцедураПроверкиРасширеннаяПодсказка + 42 + Label + true + true + + Left + + + + ПроцедураПроверкиКонтекстноеМеню + 41 + true + + InputField + Enter + true + Left + true + + true + true + true + true + true + Normal + + + + РежимВыполненияОтложенногоОбработчика + 67 + true + true + + true + + + Запись.РежимВыполненияОтложенногоОбработчика + + + РежимВыполненияОтложенногоОбработчикаРасширеннаяПодсказка + 69 + Label + true + true + + Left + + + + РежимВыполненияОтложенногоОбработчикаКонтекстноеМеню + 68 + true + + InputField + Enter + true + Left + true + + true + true + true + true + true + true + Normal + + + + ОбластьДанныхВспомогательныеДанные + 1 + true + true + + true + + + Запись.ОбластьДанныхВспомогательныеДанные + + + ОбластьДанныхВспомогательныеДанныеРасширеннаяПодсказка + 3 + Label + true + true + + Left + + + + ОбластьДанныхВспомогательныеДанныеКонтекстноеМеню + 2 + true + + InputField + Enter + true + Left + true + + true + true + true + true + true + true + Normal + + + true + true + + true + + + <key>ru</key> + <value>Дополнительные свойства</value> + + + ГруппаДополнительныеСвойстваРасширеннаяПодсказка + 88 + Label + true + true + + Left + + + UsualGroup + + HorizontalIfPossible + Collapsible + true + Button + NormalSeparation + true + true + auto + Auto + Auto + + + + ФормаКоманднаяПанель + -1 + Left + true + + + OnCreateAtServer + ПриСозданииНаСервере + + Copy + DontBlock + true + true + Vertical + true + true + true + auto + true + + Запись + 1 + + InformationRegisterRecordManager.ОбработчикиОбновления + + + true + + + true + +
      true
      + true +
      + + ОбрабатываемыеДанные + + <key>ru</key> + <value>Обрабатываемые данные</value> + + 2 + + String + + + + true + + + true + + + + ОбрабатываемыеДанныеХранилище + 3 + + String + + + + true + + + true + + + + + + + + + AfterWrite + ПослеЗаписи + + +
      diff --git a/SSL/src/InformationRegisters/ОбработчикиОбновления/Forms/ФормаЗаписи/Module.bsl b/SSL/src/InformationRegisters/ОбработчикиОбновления/Forms/ФормаЗаписи/Module.bsl new file mode 100644 index 000000000..f7669d978 --- /dev/null +++ b/SSL/src/InformationRegisters/ОбработчикиОбновления/Forms/ФормаЗаписи/Module.bsl @@ -0,0 +1,40 @@ +/////////////////////////////////////////////////////////////////////////////////////////////////////// +// Copyright (c) 2021, ООО 1С-Софт +// Все права защищены. Эта программа и сопроводительные материалы предоставляются +// в соответствии с условиями лицензии Attribution 4.0 International (CC BY 4.0) +// Текст лицензии доступен по ссылке: +// https://creativecommons.org/licenses/by/4.0/legalcode +/////////////////////////////////////////////////////////////////////////////////////////////////////// + +#Область ОбработчикиСобытийФормы + +&НаСервере +Процедура ПриСозданииНаСервере(Отказ, СтандартнаяОбработка) + + Заголовок = НСтр("ru = 'Обработчик обновления'") + " " + Запись.ИмяОбработчика; + + Если ЗначениеЗаполнено(Запись.Комментарий) Тогда + Элементы.ГруппаКомментарий.Заголовок = НСтр("ru = 'Комментарий'") + " *"; + Иначе + Элементы.ГруппаКомментарий.Заголовок = НСтр("ru = 'Комментарий'"); + КонецЕсли; + + Если ЗначениеЗаполнено(Запись.ИнформацияОбОшибке) Тогда + Элементы.ГруппаИнформацияОбОшибке.Заголовок = НСтр("ru = 'Информация об ошибке'") + " *"; + Иначе + Элементы.ГруппаИнформацияОбОшибке.Заголовок = НСтр("ru = 'Информация об ошибке'"); + КонецЕсли; + + ОбрабатываемыеДанные = НСтр("ru = 'Открыть'"); + + Данные = РеквизитФормыВЗначение("Запись").ОбрабатываемыеДанные; + ОбрабатываемыеДанныеХранилище = ПоместитьВоВременноеХранилище(Данные, УникальныйИдентификатор); + +КонецПроцедуры + +&НаКлиенте +Процедура ПослеЗаписи(ПараметрыЗаписи) + Оповестить("Запись_ОбработчикиОбновления", ПараметрыЗаписи); +КонецПроцедуры + +#КонецОбласти 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..61e6fb4bb --- /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..cac1d5fad --- /dev/null +++ b/SSL/src/InformationRegisters/ОбработчикиОбновления/Forms/ФормаСписка/Form.form @@ -0,0 +1,651 @@ + + + + <key>ru</key> + <value>Обработчики обновления</value> + + + ГруппаОтборКоманднаяПанель + 61 + + ОтборСтатус + 63 + + <key>ru</key> + <value>Статус</value> + + true + true + + true + + + ОтборСтатус + + + OnChange + ОтборСтатусПриИзменении + + + ОтборСтатусРасширеннаяПодсказка + 65 + Label + true + true + + Left + + + + ОтборСтатусКонтекстноеМеню + 64 + true + + InputField + Enter + true + Left + true + + true + true + true + true + true + true + true + Normal + + + + ОтборРежимВыполнения + 66 + + <key>ru</key> + <value>Режим выполнения</value> + + true + true + + true + + + ОтборРежимВыполнения + + + OnChange + ОтборРежимВыполненияПриИзменении + + + ОтборРежимВыполненияРасширеннаяПодсказка + 68 + Label + true + true + + Left + + + + ОтборРежимВыполненияКонтекстноеМеню + 67 + true + + InputField + Enter + true + Left + true + + true + true + true + true + true + true + true + Normal + + + + КоманднаяПанель + 69 + true + true + + true + + + <key>ru</key> + <value>Командная панель</value> + + + КоманднаяПанельРасширеннаяПодсказка + 70 + Label + true + true + + Left + + + CommandBar + + Left + Item.Список + + + true + true + + true + + + <key>ru</key> + <value>Отбор командная панель</value> + + + ГруппаОтборКоманднаяПанельРасширеннаяПодсказка + 62 + Label + true + true + + Left + + + UsualGroup + + HorizontalIfPossible + Auto + true + true + Auto + Auto + + + + СписокКомпоновщикНастроекПользовательскиеНастройки + 1 + true + true + + true + + + <key>ru</key> + <value>Группа пользовательских настроек</value> + + false + + СписокКомпоновщикНастроекПользовательскиеНастройкиРасширеннаяПодсказка + 2 + Label + true + true + + Left + + + UsualGroup + + Vertical + Auto + WeakSeparation + true + true + Auto + Auto + + + + Список + 3 + true + true + + true + + + Список + + true + None + SearchEverywhere + + ИмяОбработчика + 16 + true + true + + true + + + Список.ИмяОбработчика + + true + + ИмяОбработчикаРасширеннаяПодсказка + 18 + Label + true + true + + Left + + + + ИмяОбработчикаКонтекстноеМеню + 17 + true + + LabelField + Enter + true + Left + true + + true + true + + + + Статус + 19 + true + true + + true + + + Список.Статус + + true + + СтатусРасширеннаяПодсказка + 21 + Label + true + true + + Left + + + + СтатусКонтекстноеМеню + 20 + true + + LabelField + Enter + true + Left + true + + true + true + + + + Версия + 22 + true + true + + true + + + Список.Версия + + true + + ВерсияРасширеннаяПодсказка + 24 + Label + true + true + + Left + + + + ВерсияКонтекстноеМеню + 23 + true + + LabelField + Enter + true + Left + true + + true + true + + + + РежимВыполнения + 31 + true + true + + true + + + Список.РежимВыполнения + + true + + РежимВыполненияРасширеннаяПодсказка + 33 + Label + true + true + + Left + + + + РежимВыполненияКонтекстноеМеню + 32 + true + + LabelField + Enter + true + Left + true + + true + true + + + + ОчередьОтложеннойОбработки + 58 + + <key>ru</key> + <value>Очередь</value> + + true + true + + true + + + Список.ОчередьОтложеннойОбработки + + true + + ОчередьОтложеннойОбработкиРасширеннаяПодсказка + 60 + Label + true + true + + Left + + + + ОчередьОтложеннойОбработкиКонтекстноеМеню + 59 + 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 + + + NotificationProcessing + ОбработкаОповещения + + + OnCreateAtServer + ПриСозданииНаСервере + + OpenFromStandaloneServer + DontBlock + true + true + Vertical + true + true + true + auto + true + + Список + 1 + + DynamicList + + + true + + + true + +
      true
      + + ВЫБРАТЬ + ОбработчикиОбновления.ИмяОбработчика, + ОбработчикиОбновления.Статус, + ОбработчикиОбновления.Версия, + ОбработчикиОбновления.ИмяБиблиотеки, + ОбработчикиОбновления.ДлительностьОбработки, + ОбработчикиОбновления.РежимВыполнения, + ОбработчикиОбновления.ВерсияРегистрации, + ОбработчикиОбновления.ВерсияПорядок, + ОбработчикиОбновления.Идентификатор, + ОбработчикиОбновления.ЧислоПопыток, + ОбработчикиОбновления.СтатистикаВыполнения, + ОбработчикиОбновления.ИнформацияОбОшибке, + ОбработчикиОбновления.Комментарий, + ОбработчикиОбновления.Приоритет, + ОбработчикиОбновления.ПроцедураПроверки, + ОбработчикиОбновления.ПроцедураЗаполненияДанныхОбновления, + ОбработчикиОбновления.ОчередьОтложеннойОбработки, + ОбработчикиОбновления.ЗапускатьТолькоВГлавномУзле, + ОбработчикиОбновления.ЗапускатьИВПодчиненномУзлеРИБСФильтрами, + ОбработчикиОбновления.Многопоточный, + ОбработчикиОбновления.ОбработкаПорцииЗавершена, + ОбработчикиОбновления.ГруппаОбновления, + ОбработчикиОбновления.ИтерацияЗапуска, + ОбработчикиОбновления.ОбрабатываемыеДанные, + ОбработчикиОбновления.РежимВыполненияОтложенногоОбработчика, + ОбработчикиОбновления.ИзменяемыеОбъекты + ИЗ + РегистрСведений.ОбработчикиОбновления + КАК + ОбработчикиОбновления + true + true + true + true + +
      + + ОтборСтатус + + <key>ru</key> + <value>Отбор статус</value> + + 2 + + EnumRef.СтатусыОбработчиковОбновления + + + true + + + true + + + + ОтборРежимВыполнения + + <key>ru</key> + <value>Отбор режим выполнения</value> + + 3 + + EnumRef.РежимыВыполненияОбработчиков + + + true + + + true + + + + РежимВыполнения + + EnumRef.РежимыВыполненияОбработчиков + + + + + + + +
      diff --git a/SSL/src/InformationRegisters/ОбработчикиОбновления/Forms/ФормаСписка/Module.bsl b/SSL/src/InformationRegisters/ОбработчикиОбновления/Forms/ФормаСписка/Module.bsl new file mode 100644 index 000000000..5b8c075be --- /dev/null +++ b/SSL/src/InformationRegisters/ОбработчикиОбновления/Forms/ФормаСписка/Module.bsl @@ -0,0 +1,43 @@ +/////////////////////////////////////////////////////////////////////////////////////////////////////// +// Copyright (c) 2021, ООО 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 0803f6193..bb28cfcf9 100644 --- a/SSL/src/InformationRegisters/ОбработчикиОбновления/ОбработчикиОбновления.mdo +++ b/SSL/src/InformationRegisters/ОбработчикиОбновления/ОбработчикиОбновления.mdo @@ -16,6 +16,8 @@
      true InDialog + InformationRegister.ОбработчикиОбновления.Form.ФормаЗаписи + InformationRegister.ОбработчикиОбновления.Form.ФормаСписка Use Active @@ -493,4 +495,40 @@ true + + ФормаВыбора + + ru + Форма выбора + + PersonalComputer + MobileDevice + + + ПерезапускОтложенногоОбновления + + ru + Перезапуск отложенного обновления + + PersonalComputer + MobileDevice + + + ФормаСписка + + ru + Форма списка + + PersonalComputer + MobileDevice + + + ФормаЗаписи + + ru + Форма записи + + PersonalComputer + MobileDevice + diff --git a/SSL/src/InformationRegisters/ОповещенияПользователейСертификатов/ManagerModule.bsl b/SSL/src/InformationRegisters/ОповещенияПользователейСертификатов/ManagerModule.bsl new file mode 100644 index 000000000..a16f41e18 --- /dev/null +++ b/SSL/src/InformationRegisters/ОповещенияПользователейСертификатов/ManagerModule.bsl @@ -0,0 +1,47 @@ +/////////////////////////////////////////////////////////////////////////////////////////////////////// +// Copyright (c) 2021, ООО 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/ОповещенияПользователейСертификатов/RecordSetModule.bsl b/SSL/src/InformationRegisters/ОповещенияПользователейСертификатов/RecordSetModule.bsl new file mode 100644 index 000000000..4db8de3b2 --- /dev/null +++ b/SSL/src/InformationRegisters/ОповещенияПользователейСертификатов/RecordSetModule.bsl @@ -0,0 +1,66 @@ +/////////////////////////////////////////////////////////////////////////////////////////////////////// +// Copyright (c) 2021, ООО 1С-Софт +// Все права защищены. Эта программа и сопроводительные материалы предоставляются +// в соответствии с условиями лицензии Attribution 4.0 International (CC BY 4.0) +// Текст лицензии доступен по ссылке: +// https://creativecommons.org/licenses/by/4.0/legalcode +/////////////////////////////////////////////////////////////////////////////////////////////////////// + +#Если Сервер Или ТолстыйКлиентОбычноеПриложение Или ВнешнееСоединение Тогда +#Область ОбработчикиСобытий + +Процедура ПриЗаписи(Отказ, Замещение) + + Если ОбменДанными.Загрузка Тогда + Возврат; + КонецЕсли; + + Если Не ДополнительныеСвойства.Свойство("ИдентификаторНапоминания") Тогда + Возврат; + КонецЕсли; + + Если Не ОбщегоНазначения.ПодсистемаСуществует("СтандартныеПодсистемы.НапоминанияПользователя") Тогда + Возврат; + КонецЕсли; + + МодульНапоминанияПользователя = ОбщегоНазначения.ОбщийМодуль("НапоминанияПользователя"); + Если Не МодульНапоминанияПользователя.ИспользуютсяНапоминанияПользователя() Тогда + Возврат; + КонецЕсли; + + ИдентификаторНапоминания = ДополнительныеСвойства.ИдентификаторНапоминания; + + Для Каждого Запись Из ЭтотОбъект Цикл + + Напоминания = МодульНапоминанияПользователя.НайтиНапоминания(Запись.Сертификат, ИдентификаторНапоминания); + + Для Каждого Напоминание Из Напоминания Цикл + МодульНапоминанияПользователя.УдалитьНапоминание(Напоминание); + КонецЦикла; + + Если Не Запись.Оповещен Тогда + Если ИдентификаторНапоминания = "АвтоматическоеНапоминаниеОПродленииСертификата" Тогда + + ТекстНапоминания = СтроковыеФункцииКлиентСервер.ПодставитьПараметрыВСтроку( + НСтр("ru='Требуется перевыпуск сертификата ""%1""'", "ru"), Запись.Сертификат); + МодульНапоминанияПользователя.УстановитьНапоминание( + ТекстНапоминания, "ДействителенДо", 30 * 24 * 60 * 60, Запись.Сертификат, ИдентификаторНапоминания); + + Иначе + + ТекстНапоминания = СтроковыеФункцииКлиентСервер.ПодставитьПараметрыВСтроку( + НСтр("ru='""%1"": сертификат получен'", "ru"), Запись.Сертификат); + МодульНапоминанияПользователя.УстановитьНапоминание( + ТекстНапоминания, "ДатаПолученияСертификата", 0, Запись.Сертификат, ИдентификаторНапоминания); + + КонецЕсли; + КонецЕсли; + + КонецЦикла; + +КонецПроцедуры + +#КонецОбласти +#Иначе + ВызватьИсключение НСтр("ru = 'Недопустимый вызов объекта на клиенте.'"); +#КонецЕсли \ No newline at end of file diff --git a/SSL/src/InformationRegisters/ОповещенияПользователейСертификатов/ОповещенияПользователейСертификатов.mdo b/SSL/src/InformationRegisters/ОповещенияПользователейСертификатов/ОповещенияПользователейСертификатов.mdo new file mode 100644 index 000000000..0a524ad2b --- /dev/null +++ b/SSL/src/InformationRegisters/ОповещенияПользователейСертификатов/ОповещенияПользователейСертификатов.mdo @@ -0,0 +1,117 @@ + + + + + + + + + + + + ОповещенияПользователейСертификатов + + ru + Оповещения пользователей сертификатов + + InDialog + + Use + Active + + Use + + + + + Use + LineNumber + + Use + + + + + Use + Recorder + + Use + + + + + Use + Period + + ShowError + Use + + + + Managed + + ru + Оповещение пользователя сертификата + + + ru + Заполняется при отправке заявлений и из формы сертификата, находящегося в личном хранилище при используемой подсистеме "Напоминания пользователя". Автоматически заполняется при использовании сертификата менее, чем за 30 дней до истечения срока действия + + + Оповещен + + ru + Оповещен + + + Boolean + + + ru + Ложь - пользователь будет получать напоминания, Истина - пользователь убрал пометку о напоминании + + + + Use + Use + + + + Сертификат + + ru + Сертификат + + + CatalogRef.СертификатыКлючейЭлектроннойПодписиИШифрования + + + + Use + Use + true + + true + true + + + Пользователь + + ru + Пользователь + + + CatalogRef.Пользователи + + + ru + Пользователь, получающий оповещения. + + + + Use + Use + + true + + diff --git a/SSL/src/InformationRegisters/ПакетыДляОтправки/ManagerModule.bsl b/SSL/src/InformationRegisters/ПакетыДляОтправки/ManagerModule.bsl index 556e01378..1456e4d89 100644 --- a/SSL/src/InformationRegisters/ПакетыДляОтправки/ManagerModule.bsl +++ b/SSL/src/InformationRegisters/ПакетыДляОтправки/ManagerModule.bsl @@ -92,9 +92,10 @@ ЗафиксироватьТранзакцию(); Исключение ОтменитьТранзакцию(); - Ошибка = ПодробноеПредставлениеОшибки(ИнформацияОбОшибке()); - ЗаписьЖурналаРегистрации(НСтр("ru = 'УдалитьСтарыеПакеты'", ОбщегоНазначения.КодОсновногоЯзыка()), УровеньЖурналаРегистрации.Ошибка, Метаданные.ОбщиеМодули.ЦентрМониторингаСлужебный,,Ошибка); - ВызватьИсключение Ошибка; + ЗаписьЖурналаРегистрации(НСтр("ru = 'Центр мониторинга'", ОбщегоНазначения.КодОсновногоЯзыка()), + УровеньЖурналаРегистрации.Ошибка, Метаданные.РегистрыСведений.ПакетыДляОтправки,, + ПодробноеПредставлениеОшибки(ИнформацияОбОшибке())); + ВызватьИсключение; КонецПопытки; КонецЕсли; @@ -127,9 +128,10 @@ ЗафиксироватьТранзакцию(); Исключение ОтменитьТранзакцию(); - Ошибка = ПодробноеПредставлениеОшибки(ИнформацияОбОшибке()); - ЗаписьЖурналаРегистрации(НСтр("ru = 'УдалитьПакеты'", ОбщегоНазначения.КодОсновногоЯзыка()), УровеньЖурналаРегистрации.Ошибка, Метаданные.ОбщиеМодули.ЦентрМониторингаСлужебный,,Ошибка); - ВызватьИсключение Ошибка; + ЗаписьЖурналаРегистрации(НСтр("ru = 'Центр мониторинга'", ОбщегоНазначения.КодОсновногоЯзыка()), + УровеньЖурналаРегистрации.Ошибка, Метаданные.РегистрыСведений.ПакетыДляОтправки,, + ПодробноеПредставлениеОшибки(ИнформацияОбОшибке())); + ВызватьИсключение; КонецПопытки; КонецПроцедуры diff --git a/SSL/src/InformationRegisters/ПараметрыРаботыПрограммы/ManagerModule.bsl b/SSL/src/InformationRegisters/ПараметрыРаботыПрограммы/ManagerModule.bsl index 2e4a0318f..eb5c59513 100644 --- a/SSL/src/InformationRegisters/ПараметрыРаботыПрограммы/ManagerModule.bsl +++ b/SSL/src/InformationRegisters/ПараметрыРаботыПрограммы/ManagerModule.bsl @@ -329,14 +329,14 @@ КонецПроцедуры -// Для процедуры ЗагрузитьОбновитьПараметрыРаботыПрограммы и вызова из формы ИндикацияХодаОбновленияИБ. +// Для процедуры ЗагрузитьОбновитьПараметрыРаботыПрограммы и вызова из формы ОбновлениеВерсииПрограммы. Функция ТребуетсяЗагрузитьПараметрыРаботыПрограммы() Экспорт Возврат НеобходимоОбновление() И ОбщегоНазначения.ЭтоПодчиненныйУзелРИБ(); КонецФункции -// Для вызова из формы ИндикацияХодаОбновленияИБ. +// Для вызова из формы ОбновлениеВерсииПрограммы. Функция ЗагрузитьПараметрыРаботыПрограммыВФоне(ОжидатьЗавершение, ИдентификаторФормы, СообщитьПрогресс) Экспорт ПараметрыОперации = ДлительныеОперации.ПараметрыВыполненияВФоне(ИдентификаторФормы); @@ -354,7 +354,7 @@ КонецФункции -// Для вызова из формы ИндикацияХодаОбновленияИБ. +// Для вызова из формы ОбновлениеВерсииПрограммы. Функция ОбновитьПараметрыРаботыПрограммыВФоне(ОжидатьЗавершение, ИдентификаторФормы, СообщитьПрогресс) Экспорт ПараметрыОперации = ДлительныеОперации.ПараметрыВыполненияВФоне(ИдентификаторФормы); @@ -392,7 +392,7 @@ КонецФункции -// Для вызова из формы ИндикацияХодаОбновленияИБ. +// Для вызова из формы ОбновлениеВерсииПрограммы. Функция ОбновитьПараметрыРаботыВерсийРасширенийВФоне(ОжидатьЗавершение, ИдентификаторФормы, СообщитьПрогресс) Экспорт ПараметрыОперации = ДлительныеОперации.ПараметрыВыполненияВФоне(ИдентификаторФормы); @@ -410,7 +410,7 @@ КонецФункции -// Для вызова из формы ИндикацияХодаОбновленияИБ. +// Для вызова из формы ОбновлениеВерсииПрограммы. Функция ОбработанныйРезультатДлительнойОперации(Результат, Операция) Экспорт КраткоеПредставлениеОшибки = Неопределено; diff --git a/SSL/src/InformationRegisters/ПользовательскиеМакетыПечати/Forms/МакетыПечатныхФорм/Form.form b/SSL/src/InformationRegisters/ПользовательскиеМакетыПечати/Forms/МакетыПечатныхФорм/Form.form index 78c169e14..da5efe9e7 100644 --- a/SSL/src/InformationRegisters/ПользовательскиеМакетыПечати/Forms/МакетыПечатныхФорм/Form.form +++ b/SSL/src/InformationRegisters/ПользовательскиеМакетыПечати/Forms/МакетыПечатныхФорм/Form.form @@ -114,10 +114,6 @@ ОтборПоЯзыку - - OnChange - ОтборПоЯзыкуПриИзменении - ОтборПоЯзыкуРасширеннаяПодсказка 113 @@ -139,10 +135,6 @@ Left true - - Clearing - ОтборПоЯзыкуОчистка - true true true @@ -192,12 +184,8 @@ true - AutoComplete - СтрокаПоискаАвтоПодбор - - - Clearing - СтрокаПоискаОчистка + EditTextChange + СтрокаПоискаИзменениеТекстаРедактирования 31 true @@ -208,7 +196,7 @@ true true true - OnValueChange + DontUse Normal ru @@ -246,11 +234,11 @@ - МакетыПечатныхФорм - 54 + Макеты + 122 <key>ru</key> - <value>Макеты печатных форм</value> + <value>Макеты</value> true true @@ -258,35 +246,39 @@ true - МакетыПечатныхФорм + Макеты None Add Change Copy + CopyToClipboard Delete EndEdit + HierarchicalList + List MoveDown MoveUp + OutputList + SelectAll + ShowMultipleSelection + ShowRowRearrangement + SortListAsc + SortListDesc + Tree - МакетыПечатныхФормИспользование - 63 - true + МакетыКартинкаГруппы + 135 true true - МакетыПечатныхФорм.КартинкаИспользования + Макеты.КартинкаГруппы - None - - ru - Отредактирован - - МакетыПечатныхФормИспользованиеExtendedTooltip - 96 + МакетыКартинкаГруппыРасширеннаяПодсказка + 137 Label true true @@ -295,14 +287,215 @@ - МакетыПечатныхФормИспользованиеКонтекстноеМеню - 64 + МакетыКартинкаГруппыКонтекстноеМеню + 136 + true + + PictureField + Auto + Left + true + + true + true + true + true + + + 1 + + AsFileRef + + + + МакетыГруппа1 + 144 + + МакетыКартинка + 149 + true + true + + true + + + Макеты.Картинка + + + МакетыКартинкаРасширеннаяПодсказка + 151 + Label + true + true + + Left + + + + МакетыКартинкаКонтекстноеМеню + 150 + true + + PictureField + Auto + Left + true + + true + true + true + true + + CommonPicture.ТипыМакетов + + + + 1 + + AsFileRef + + + + МакетыПредставление + 138 + + <key>ru</key> + <value>Макет</value> + + true + true + + true + + + Макеты.Представление + + + МакетыПредставлениеРасширеннаяПодсказка + 140 + Label + true + true + + Left + + + + МакетыПредставлениеКонтекстноеМеню + 139 + true + + InputField + Auto + true + Left + true + + 40 + true + true + false + true + true + true + true + Normal + + + true + true + + true + + + <key>ru</key> + <value>Макеты группа 1</value> + + + МакетыГруппа1РасширеннаяПодсказка + 145 + Label + true + true + + Left + + + ColumnGroup + + InCell + auto + true + + + + МакетыИспользуется + 188 + true + true + + true + + + Макеты.Используется + + + МакетыИспользуетсяРасширеннаяПодсказка + 190 + Label + true + true + + Left + + + + МакетыИспользуетсяКонтекстноеМеню + 189 + true + + CheckBoxField + Auto + + CommonPicture.ВводимыеСимволыВидны + + Left + true + + + + МакетыКартинкаИспользования + 146 + true + true + + true + + + Макеты.КартинкаИспользования + + + ru + Используется измененный макет + + + МакетыКартинкаИспользованияРасширеннаяПодсказка + 148 + Label + true + true + + Left + + + + МакетыКартинкаИспользованияКонтекстноеМеню + 147 true PictureField true Auto - true CommonPicture.РедактироватьМакет @@ -311,7 +504,6 @@ true true - true true CommonPicture.ИспользованиеМакета @@ -320,23 +512,23 @@ 1 + AsFileRef - МакетыПечатныхФормПредставлениеМакета - 59 - VeryHigh + МакетыКнопкаНастройкиДоступности + 182 true true true - МакетыПечатныхФорм.ПредставлениеМакета + Макеты.ДоступнаНастройкаВидимости - МакетыПечатныхФормПредставлениеМакетаExtendedTooltip - 97 + МакетыКнопкаНастройкиДоступностиРасширеннаяПодсказка + 184 Label true true @@ -345,42 +537,47 @@ - МакетыПечатныхФормПредставлениеМакетаКонтекстноеМеню - 60 + МакетыКнопкаНастройкиДоступностиКонтекстноеМеню + 183 true - InputField - true + PictureField Auto - true + true + + StdPicture.DataCompositionOutputParameters + Left true - - 40 + Show + Always + true true - true - true - true - true - Normal + true + + StdPicture.DataCompositionOutputParameters + + + + 1 + + AsFileRef - МакетыПечатныхФормПредставлениеВладельца - 61 - VeryLow - true + МакетыДоступнаНастройкаВидимости + 185 true true - МакетыПечатныхФорм.ПредставлениеВладельца + Макеты.ДоступнаНастройкаВидимости - МакетыПечатныхФормПредставлениеВладельцаExtendedTooltip - 98 + МакетыДоступнаНастройкаВидимостиРасширеннаяПодсказка + 187 Label true true @@ -389,44 +586,36 @@ - МакетыПечатныхФормПредставлениеВладельцаКонтекстноеМеню - 62 + МакетыДоступнаНастройкаВидимостиКонтекстноеМеню + 186 true - InputField - true + CheckBoxField Auto true Left true - - true - true - true - true - true - true - Normal - + - МакетыПечатныхФормДоступныеЯзыки - 108 - + <name>МакетыДоступенПеревод</name> + <id>176</id> + <visible>true</visible> + <enabled>true</enabled> + <userVisible> + <common>true</common> + </userVisible> + <dataPath xsi:type="form:DataPath"> + <segments>Макеты.ДоступенПеревод</segments> + </dataPath> + <toolTip> <key>ru</key> - <value>Доп. языки</value> - - true - true - - true - - - МакетыПечатныхФорм.ДоступныеЯзыки - + Доступен перевод на другие языки + + Balloon - МакетыПечатныхФормДоступныеЯзыкиРасширеннаяПодсказка - 110 + МакетыДоступенПереводРасширеннаяПодсказка + 178 Label true true @@ -435,19 +624,109 @@ - МакетыПечатныхФормДоступныеЯзыкиКонтекстноеМеню - 109 + МакетыДоступенПереводКонтекстноеМеню + 177 + true + + PictureField + Auto + + CommonPicture.ПереводТекста + + Left + true + + true + true + true + + CommonPicture.ПереводТекста + + + + 1 + + AsFileRef + + + + МакетыДоступныеЯзыки + 141 + true + true + + true + + + Макеты.ДоступныеЯзыки + + + МакетыДоступныеЯзыкиРасширеннаяПодсказка + 143 + Label + true + true + + Left + + + + МакетыДоступныеЯзыкиКонтекстноеМеню + 142 true InputField - true Auto true Left true + 30 true true + false + true + true + true + true + Normal + + + + МакетыОтступ + 193 + true + true + + true + + + Макеты.Отступ + + None + + МакетыОтступРасширеннаяПодсказка + 195 + Label + true + true + + Left + + + + МакетыОтступКонтекстноеМеню + 194 + true + + InputField + Enter + true + Left + true + + true + true true true true @@ -456,79 +735,23 @@ - МакетыПечатныхФормКоманднаяПанель - 56 - - МакетыПечатныхФормГруппаОткрытиеМакета - 76 - - МакетыПечатныхФормОткрытьМакет - 73 - true - false - - true - - - МакетыПечатныхФормОткрытьМакетExtendedTooltip - 85 - Label - true - true - - Left - - - Form.Command.ОткрытьМакет - Normal - Auto - true - true - UserCmds - Auto - - - МакетыПечатныхФормИзменитьМакет - 72 - true - false - - true - - - МакетыПечатныхФормИзменитьМакетExtendedTooltip - 86 - Label - true - true - - Left - - - Form.Command.ИзменитьМакет - Normal - Auto - true - true - UserCmds - Auto - + МакетыКоманднаяПанель + 124 + + МакетыДобавитьМакет + 162 + + <key>ru</key> + <value>Создать</value> + true true true - - <key>ru</key> - <value>Макеты печатных форм группа открытие макета</value> - - - ru - Открытие макета для просмотра или изменения - - МакетыПечатныхФормГруппаОткрытиеМакетаExtendedTooltip - 84 + МакетыДобавитьМакетРасширеннаяПодсказка + 163 Label true true @@ -536,22 +759,80 @@ Left - + Form.Command.ДобавитьМакет + Normal + Auto + true + true + UserCmds + Auto + + + МакетыСкопировать + 170 + true + true + + true + + + МакетыСкопироватьРасширеннаяПодсказка + 171 + Label + true + true + + Left + + + Form.Command.Скопировать + Normal + Auto + true + true + UserCmds + Auto + + + МакетыИзменитьМакет + 152 + true + true + + true + + + МакетыИзменитьМакетРасширеннаяПодсказка + 153 + Label + true + true + + Left + + + Form.Command.ИзменитьМакет + Normal + Picture + true + true + UserCmds + Auto МакетыПечатныхФормГруппаПереключениеИспользуемогоМакета - 77 + 154 МакетыПечатныхФормИспользоватьИзмененныйМакет - 70 + 156 true true true - МакетыПечатныхФормИспользоватьИзмененныйМакетExtendedTooltip - 88 + МакетыПечатныхФормИспользоватьИзмененныйМакетРасширеннаяПодсказка + 157 Label true true @@ -561,7 +842,7 @@ Form.Command.ИспользоватьИзмененныйМакет Normal - Auto + PictureAndText true true UserCmds @@ -569,15 +850,15 @@ МакетыПечатныхФормИспользоватьСтандартныйМакет - 71 + 158 true true true - МакетыПечатныхФормИспользоватьСтандартныйМакетExtendedTooltip - 89 + МакетыПечатныхФормИспользоватьСтандартныйМакетРасширеннаяПодсказка + 159 Label true true @@ -587,7 +868,7 @@ Form.Command.ИспользоватьСтандартныйМакет Normal - Auto + PictureAndText true true UserCmds @@ -607,8 +888,8 @@ Переключение используемого макета - МакетыПечатныхФормГруппаПереключениеИспользуемогоМакетаExtendedTooltip - 87 + МакетыПечатныхФормГруппаПереключениеИспользуемогоМакетаРасширеннаяПодсказка + 155 Label true true @@ -616,19 +897,21 @@ Left - + + Compact + МакетыПечатныхФормУдалитьИзмененныйМакет - 74 + 160 true true true - МакетыПечатныхФормУдалитьИзмененныйМакетExtendedTooltip - 90 + МакетыПечатныхФормУдалитьИзмененныйМакетРасширеннаяПодсказка + 161 Label true true @@ -643,48 +926,22 @@ true UserCmds Auto + InAdditionalSubmenu МакетыПечатныхФормГруппаВсеДействия - 78 - - МакетыПечатныхФормЗадатьДействиеПриВыбореМакетаПечатнойФормы - 75 - true - true - - true - - - МакетыПечатныхФормЗадатьДействиеПриВыбореМакетаПечатнойФормыExtendedTooltip - 92 - Label - true - true - - Left - - - Form.Command.ЗадатьДействиеПриВыбореМакетаПечатнойФормы - Normal - Auto - true - true - UserCmds - Auto - InAdditionalSubmenu - + 164 МакетыПечатныхФормИзменитьФорму - 79 + 168 true true true - МакетыПечатныхФормИзменитьФормуExtendedTooltip - 93 + МакетыПечатныхФормИзменитьФормуРасширеннаяПодсказка + 169 Label true true @@ -714,8 +971,8 @@ Все действия - МакетыПечатныхФормГруппаВсеДействияExtendedTooltip - 91 + МакетыПечатныхФормГруппаВсеДействияРасширеннаяПодсказка + 165 Label true true @@ -726,16 +983,16 @@ - МакетыПечатныхФормСправка - 80 + МакетыУсловияДоступности + 191 true true true - МакетыПечатныхФормСправкаExtendedTooltip - 94 + МакетыУсловияДоступностиРасширеннаяПодсказка + 192 Label true true @@ -743,7 +1000,7 @@ Left - Form.StandardCommand.Help + Form.Command.УсловияДоступности Normal Auto true @@ -756,18 +1013,22 @@ Selection - МакетыПечатныхФормВыбор + МакетыВыбор OnActivateRow - МакетыПечатныхФормПриАктивизацииСтроки + МакетыПриАктивизацииСтроки + + + OnChange + МакетыПриИзменении - МакетыПечатныхФормСтрокаПоиска - 99 + МакетыСтрокаПоиска + 126 - МакетыПечатныхФормСтрокаПоискаРасширеннаяПодсказка - 101 + МакетыСтрокаПоискаРасширеннаяПодсказка + 128 Label true true @@ -776,21 +1037,21 @@ - МакетыПечатныхФормСтрокаПоискаКонтекстноеМеню - 100 + МакетыСтрокаПоискаКонтекстноеМеню + 127 true - МакетыПечатныхФорм + Макеты true - МакетыПечатныхФормСостояниеПросмотра - 102 + МакетыСостояниеПросмотра + 129 - МакетыПечатныхФормСостояниеПросмотраРасширеннаяПодсказка - 104 + МакетыСостояниеПросмотраРасширеннаяПодсказка + 131 Label true true @@ -799,22 +1060,22 @@ - МакетыПечатныхФормСостояниеПросмотраКонтекстноеМеню - 103 + МакетыСостояниеПросмотраКонтекстноеМеню + 130 true ViewStatusAddition - МакетыПечатныхФорм + Макеты true - МакетыПечатныхФормУправлениеПоиском - 105 + МакетыУправлениеПоиском + 132 - МакетыПечатныхФормУправлениеПоискомРасширеннаяПодсказка - 107 + МакетыУправлениеПоискомРасширеннаяПодсказка + 134 Label true true @@ -823,19 +1084,19 @@ - МакетыПечатныхФормУправлениеПоискомКонтекстноеМеню - 106 + МакетыУправлениеПоискомКонтекстноеМеню + 133 true SearchControlAddition - МакетыПечатныхФорм + Макеты true - МакетыПечатныхФормExtendedTooltip - 95 + МакетыРасширеннаяПодсказка + 125 Label true true @@ -844,11 +1105,63 @@ - МакетыПечатныхФормКонтекстноеМеню - 55 + МакетыКонтекстноеМеню + 123 + + МакетыКонтекстноеМенюУдалитьИзмененныйМакет + 196 + true + true + + true + + + МакетыКонтекстноеМенюУдалитьИзмененныйМакетРасширеннаяПодсказка + 197 + Label + true + true + + Left + + + Form.Command.УдалитьИзмененныйМакет + Normal + Auto + true + true + UserCmds + Auto + + + МакетыКонтекстноеМенюУдалитьМакет + 198 + true + true + + true + + + МакетыКонтекстноеМенюУдалитьМакетРасширеннаяПодсказка + 199 + Label + true + true + + Left + + + Form.Command.УдалитьМакет + Normal + Auto + true + true + UserCmds + Auto + true - true + Tree true true true @@ -860,21 +1173,17 @@ AutoUse true true + false true Auto Auto + ExpandTopLevel true true true true - - МакетыПечатныхФорм.Картинка - - - CommonPicture.ТипыМакетов - + AsFileRef true - ГруппаДополнительнаяИнформация @@ -910,7 +1219,7 @@ true - CommonPicture.Информация + StdPicture.Information @@ -993,10 +1302,6 @@ Left true - - ChoiceProcessing - ОбработкаВыбора - NotificationProcessing ОбработкаОповещения @@ -1023,11 +1328,6 @@ true auto true - - - МакетыПечатныхФормКоманднаяПанель - - СпрашиватьРежимОткрытияМакета 4 @@ -1090,182 +1390,6 @@ true - - МакетыПечатныхФорм - - <key>ru</key> - <value>Макеты печатных форм</value> - - 8 - - 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 - - Boolean - - - true - - - true - - - - ИспользуетсяИзмененный - 5 - - Boolean - - - true - - - true - - - - Картинка - 8 - - Number - - 10 - - - - true - - - true - - - - ТипМакета - 9 - - String - - - - true - - - true - - - - СтрокаПоиска - 10 - - String - - - - true - - - true - - - - КартинкаИспользования - - <key>ru</key> - <value>Картинка использования</value> - - 6 - - Number - - 1 - true - - - - true - - - true - - - - ДоступныеЯзыки - - <key>ru</key> - <value>Доступные языки</value> - - 7 - - String - - - - true - - - true - - - ОтборПоЯзыку @@ -1284,11 +1408,404 @@ <common>true</common> </edit> </attributes> + <attributes> + <name>Макеты</name> + <title> + <key>ru</key> + <value>Макеты</value> + + 1 + + ValueTree + + + true + + + true + + + КартинкаГруппы + + <key>ru</key> + <value>Картинка группы</value> + + 1 + + Picture + + + 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 + + Number + + 10 + + + + true + + + true + + + + КартинкаИспользования + + <key>ru</key> + <value>Картинка использования</value> + + 5 + + Number + + 10 + + + + true + + + true + + + + ДоступенПеревод + + <key>ru</key> + <value>Доступен перевод</value> + + 6 + + Boolean + + + true + + + true + + + + УсловияДоступности + 7 + + String + + + + true + + + true + + + + ДоступнаНастройкаВидимости + + <key>ru</key> + <value>Доступна настройка видимости</value> + + 8 + + Boolean + + + true + + + true + + + + Используется + + <key>ru</key> + <value>Используется</value> + + 9 + + Boolean + + + true + + + true + + + + ЭтоГруппа + 10 + + Boolean + + + true + + + true + + + + ИмяОбъектаМетаданныхМакета + 11 + + String + + + + true + + + true + + + + ТипМакета + 12 + + String + + + + true + + + true + + + + Изменен + 13 + + Boolean + + + true + + + true + + + + ИспользуетсяИзмененный + 14 + + Boolean + + + true + + + true + + + + Отступ + + <key>ru</key> + <value>Отступ</value> + + 15 + + String + + + + true + + + true + + + + Владелец + 16 + + CatalogRef.ИдентификаторыОбъектовРасширений + CatalogRef.ИдентификаторыОбъектовМетаданных + + + true + + + true + + + + Ссылка + 17 + + CatalogRef.МакетыПечатныхФорм + + + true + + + true + + + + СтрокаПоиска + 18 + + String + + + + true + + + true + + + + Идентификатор + 19 + + String + + + + true + + + true + + + + Поставляемый + 20 + + Boolean + + + true + + + true + + + + ЭтоПечатнаяФорма + 22 + + Boolean + + + true + + + true + + + + + ПоказыватьИзмененные + 23 + + Boolean + + + true + + + true + + + + ПоказыватьНеизмененные + 24 + + Boolean + + + true + + + true + + + + ПоказыватьИспользуемые + 25 + + Boolean + + + true + + + true + + + + ПоказыватьНеиспользуемые + 26 + + Boolean + + + true + + + true + + ИспользоватьИзмененныйМакет <key>ru</key> - <value>Использовать измененный макет</value> + <value>Использовать измененный</value> 1 @@ -1313,7 +1830,7 @@ ИспользоватьСтандартныйМакет <key>ru</key> - <value>Использовать стандартный макет</value> + <value>Использовать стандартный</value> 2 @@ -1433,6 +1950,106 @@ DontUse Auto + + ДобавитьМакет + + <key>ru</key> + <value>Добавить</value> + + 7 + + ru + Добавить макет + + + true + + + + ДобавитьМакет + + + Text + Auto + Auto + + + Скопировать + + <key>ru</key> + <value>Скопировать</value> + + 8 + + ru + Скопировать + + + true + + + StdPicture.CloneListItem + + + + Скопировать + + + Auto + Auto + + + УсловияДоступности + + <key>ru</key> + <value>Видимость в подменю "Печать"...</value> + + 10 + + true + + + + УсловияДоступности + + + Auto + Auto + + + УдалитьМакет + + <key>ru</key> + <value>Удалить макет</value> + + 11 + + true + + + StdPicture.MarkToDelete + + + + УдалитьМакет + + + Auto + Auto + + + СоздатьМакетOfficeOpenXML + + <key>ru</key> + <value>Создать макет office open XML</value> + + 12 + + true + + Auto + Auto + diff --git a/SSL/src/InformationRegisters/ПользовательскиеМакетыПечати/Forms/МакетыПечатныхФорм/Module.bsl b/SSL/src/InformationRegisters/ПользовательскиеМакетыПечати/Forms/МакетыПечатныхФорм/Module.bsl index 545c182f6..3044c9eb2 100644 --- a/SSL/src/InformationRegisters/ПользовательскиеМакетыПечати/Forms/МакетыПечатныхФорм/Module.bsl +++ b/SSL/src/InformationRegisters/ПользовательскиеМакетыПечати/Forms/МакетыПечатныхФорм/Module.bsl @@ -17,7 +17,9 @@ &НаСервере Процедура ПриСозданииНаСервере(Отказ, СтандартнаяОбработка) - + + УстановитьУсловноеОформление(); + ЗаполнитьТаблицуМакетовПечатныхФорм(); Если Параметры.Свойство("ПоказыватьТолькоПользовательскиеИзмененные") Тогда ОтборПоИспользованиюМакета = "ИспользуемыеИзмененные"; @@ -27,7 +29,6 @@ ЕстьПравоИзменения = ПравоДоступа("Изменение", Метаданные.РегистрыСведений.ПользовательскиеМакетыПечати); ТолькоПросмотр = Не ЕстьПравоИзменения; - Элементы.МакетыПечатныхФормИзменитьМакет.Видимость = ЕстьПравоИзменения; Элементы.МакетыПечатныхФормГруппаПереключениеИспользуемогоМакета.Видимость = ЕстьПравоИзменения; Элементы.МакетыПечатныхФормУдалитьИзмененныйМакет.Видимость = ЕстьПравоИзменения; @@ -51,26 +52,15 @@ Элементы.ГруппаДополнительнаяИнформация.Видимость = ЕстьДополнительныеЯзыки; Элементы.ОтборПоЯзыку.Видимость = ЕстьДополнительныеЯзыки; - Элементы.МакетыПечатныхФормДоступныеЯзыки.Видимость = ЕстьДополнительныеЯзыки; + Элементы.МакетыДоступныеЯзыки.Видимость = ЕстьДополнительныеЯзыки; + Элементы.МакетыДоступенПеревод.Видимость = ЕстьДополнительныеЯзыки; + РежимОткрытияМакетаПросмотр = Не ЕстьПравоИзменения; + Если ОбщегоНазначения.ЭтоМобильныйКлиент() Тогда - СпрашиватьРежимОткрытияМакета = Ложь; РежимОткрытияМакетаПросмотр = Истина; Элементы.ГруппаОтборы.Группировка = ГруппировкаПодчиненныхЭлементовФормы.ГоризонтальнаяЕслиВозможно; - - Иначе - - СпрашиватьРежимОткрытияМакета = ЕстьПравоИзменения; - РежимОткрытияМакетаПросмотр = Не ЕстьПравоИзменения; - - Если ЕстьПравоИзменения Тогда - СпрашиватьРежимОткрытияМакета = ОбщегоНазначения.ХранилищеОбщихНастроекЗагрузить( - "НастройкаОткрытияМакетов", "СпрашиватьРежимОткрытияМакета", Истина); - РежимОткрытияМакетаПросмотр = ОбщегоНазначения.ХранилищеОбщихНастроекЗагрузить( - "НастройкаОткрытияМакетов", "РежимОткрытияМакетаПросмотр", Ложь); - КонецЕсли; - КонецЕсли; АвтоНавигационнаяСсылка = Ложь; @@ -85,48 +75,45 @@ ОбновитьОтображениеМакетов(); ИначеЕсли ИмяСобытия = "Запись_ТабличныйДокумент" И Источник.ВладелецФормы = ЭтотОбъект Тогда Если Не ТолькоПросмотр Тогда - Макет = Параметр.ТабличныйДокумент; - АдресМакетаВоВременномХранилище = ПоместитьВоВременноеХранилище(Макет); - ЗаписатьМакет(Параметр.ИмяОбъектаМетаданныхМакета, АдресМакетаВоВременномХранилище, Параметр.КодЯзыка); - Отбор = Новый Структура("ИмяОбъектаМетаданныхМакета", Параметр.ИмяОбъектаМетаданныхМакета); - Для Каждого Макет Из МакетыПечатныхФорм.НайтиСтроки(Отбор) Цикл - Макет.ДоступныеЯзыки = ДоступныеЯзыкиМакета(Параметр.ИмяОбъектаМетаданныхМакета); - КонецЦикла; + Элементы.Макеты.ТекущаяСтрока = ОбновитьОтображениеМакета(Параметр); КонецЕсли; ОбновитьОтображениеМакетов(); КонецЕсли; КонецПроцедуры -&НаКлиенте -Процедура ОбработкаВыбора(ВыбранноеЗначение, ИсточникВыбора) +&НаСервере +Функция ОбновитьОтображениеМакета(Знач Параметр) - Если ВРег(ИсточникВыбора.ИмяФормы) = ВРег("РегистрСведений.ПользовательскиеМакетыПечати.Форма.ВыбораРежимаОткрытияМакета") Тогда - - Если ТипЗнч(ВыбранноеЗначение) <> Тип("Структура") Тогда - Возврат; - КонецЕсли; - - РежимОткрытияМакетаПросмотр = ВыбранноеЗначение.РежимОткрытияПросмотр; - СпрашиватьРежимОткрытияМакета = НЕ ВыбранноеЗначение.БольшеНеСпрашивать; - - Если КонтекстВыбора = "ОткрытьМакетПечатнойФормы" Тогда - - Если ВыбранноеЗначение.БольшеНеСпрашивать Тогда - СохранитьНастройкиРежимаОткрытияМакета(СпрашиватьРежимОткрытияМакета, РежимОткрытияМакетаПросмотр); + ИдентификаторМакета = Параметр.ИмяОбъектаМетаданныхМакета; + Макет = НайтиМакет(ИдентификаторМакета); + Если Макет = Неопределено Тогда + Для Каждого ГруппаМакетов Из Макеты.ПолучитьЭлементы() Цикл + Если ГруппаМакетов.Владелец = Параметр.Владелец Тогда + ДополнитьСписокМакетов(ГруппаМакетов.ПолучитьЭлементы(), ИдентификаторМакета); + Макет = НайтиМакет(ИдентификаторМакета); + ДополнитьОписаниеМакета(Макет); + Прервать; КонецЕсли; - - Если РежимОткрытияМакетаПросмотр Тогда - ОткрытьМакетПечатнойФормыДляПросмотра(); - Иначе - ОткрытьМакетПечатнойФормыДляРедактирования(); - КонецЕсли; - - КонецЕсли; + КонецЦикла; + Иначе + ИзмененныеМакеты = ИзмененныеМакеты(); + Макет.Изменен = ИзмененныеМакеты[ИдентификаторМакета] <> Неопределено Или Не Макет.Поставляемый; + Макет.ИспользуетсяИзмененный = Макет.Изменен И (ИзмененныеМакеты[ИдентификаторМакета] = Истина Или Не Макет.Поставляемый); + Макет.ДоступныеЯзыки = ДоступныеЯзыкиМакета(Параметр.ИмяОбъектаМетаданныхМакета); + Макет.КартинкаИспользования = -1; + Если Макет.Изменен Тогда + Макет.КартинкаИспользования = Число(Макет.Изменен) + Число(Макет.ИспользуетсяИзмененный); + КонецЕсли; + Если Параметр.Свойство("Представление") Тогда + Макет.Представление = Параметр.Представление; + КонецЕсли; КонецЕсли; -КонецПроцедуры + Возврат Макет.ПолучитьИдентификатор(); + +КонецФункции &НаКлиенте Процедура ПередЗакрытием(Отказ, ЗавершениеРаботы, ТекстПредупреждения, СтандартнаяОбработка) @@ -165,18 +152,53 @@ #КонецОбласти -#Область ОбработчикиСобытийЭлементовТаблицыФормыМакетыПечатныхФорм +#Область ОбработчикиСобытийЭлементовТаблицыФормыМакеты &НаКлиенте -Процедура МакетыПечатныхФормВыбор(Элемент, ВыбраннаяСтрока, Поле, СтандартнаяОбработка) - Если Поле.Имя <> "МакетыПечатныхФормДоступныеЯзыки" Тогда +Процедура МакетыВыбор(Элемент, ВыбраннаяСтрока, Поле, СтандартнаяОбработка) + + СтандартнаяОбработка = Ложь; + + ТекущиеДанные = Элементы.Макеты.ТекущиеДанные; + Если ТекущиеДанные = Неопределено Тогда + Возврат; + КонецЕсли; + + Если ТекущиеДанные.ЭтоГруппа Тогда + Возврат; + КонецЕсли; + + Если Поле.Имя = "МакетыКнопкаНастройкиДоступности" Тогда + УсловияДоступности(Неопределено); + Иначе ОткрытьМакетПечатнойФормы(); КонецЕсли; + КонецПроцедуры &НаКлиенте -Процедура МакетыПечатныхФормПриАктивизацииСтроки(Элемент) +Процедура МакетыПриАктивизацииСтроки(Элемент) + УстановитьДоступностьКнопокКоманднойПанели(); + +КонецПроцедуры + +&НаКлиенте +Процедура МакетыПриИзменении(Элемент) + + ТекущиеДанные = Элемент.ТекущиеДанные; + Если ТекущиеДанные <> Неопределено И ЗначениеЗаполнено(ТекущиеДанные.Ссылка) Тогда + УстановитьИспользованиеМакета(ТекущиеДанные.Ссылка, ТекущиеДанные.Используется); + КонецЕсли; + +КонецПроцедуры + +&НаСервереБезКонтекста +Процедура УстановитьИспользованиеМакета(Макет, Используется) + + Справочники.МакетыПечатныхФорм.УстановитьИспользованиеМакета(Макет, Используется); + ОбновитьПовторноИспользуемыеЗначения(); + КонецПроцедуры #КонецОбласти @@ -211,6 +233,32 @@ КонецПроцедуры +&НаКлиенте +Процедура ДобавитьМакет(Команда) + + ОписаниеОповещения = Новый ОписаниеОповещения("ПриВыбореИмениМакета", ЭтотОбъект, Ложь); + ПоказатьВводСтроки(ОписаниеОповещения, НСтр("ru = 'Новая печатная форма'"), НСтр("ru = 'Введите наименование макета'"), 100, Ложь) + +КонецПроцедуры + +&НаКлиенте +Процедура УсловияДоступности(Команда) + + ТекущиеДанные = Элементы.Макеты.ТекущиеДанные; + Если ТекущиеДанные = Неопределено Тогда + Возврат; + КонецЕсли; + + Если Не ЗначениеЗаполнено(ТекущиеДанные.Ссылка) Тогда + Возврат; + КонецЕсли; + + ПараметрыОткрытия = Новый Структура("Ключ", ТекущиеДанные.Ссылка); + + ОткрытьФорму("Справочник.МакетыПечатныхФорм.Форма.УсловияВидимостиВПодменюПечать", ПараметрыОткрытия, ЭтотОбъект); + +КонецПроцедуры + #КонецОбласти #Область СлужебныеПроцедурыИФункции @@ -220,42 +268,174 @@ &НаСервере Процедура ЗаполнитьТаблицуМакетовПечатныхФорм() + СписокМакетов = Новый ТаблицаЗначений(); + СписокМакетов.Колонки.Добавить("ОбъектМетаданных"); + СписокМакетов.Колонки.Добавить("Идентификатор"); + СписокМакетов.Колонки.Добавить("Представление"); + СписокМакетов.Колонки.Добавить("Владелец"); + СписокМакетов.Колонки.Добавить("ТипМакета"); + СписокМакетов.Колонки.Добавить("Картинка"); + СписокМакетов.Колонки.Добавить("СтрокаПоиска"); + СписокМакетов.Колонки.Добавить("ДоступныеЯзыки"); + СписокМакетов.Колонки.Добавить("Изменен"); + СписокМакетов.Колонки.Добавить("ИспользуетсяИзмененный"); + СписокМакетов.Колонки.Добавить("КартинкаИспользования"); + СписокМакетов.Колонки.Добавить("ДоступенПеревод"); + СписокМакетов.Колонки.Добавить("Ссылка"); + СписокМакетов.Колонки.Добавить("Используется"); + СписокМакетов.Колонки.Добавить("ДоступнаНастройкаВидимости"); + СписокМакетов.Колонки.Добавить("Поставляемый"); + СписокМакетов.Колонки.Добавить("ЭтоПечатнаяФорма"); + + ИзмененныеМакеты = ИзмененныеМакеты(); + ДоступныеДляПереводаМакеты = Новый Соответствие; + Если ОбщегоНазначения.ПодсистемаСуществует("СтандартныеПодсистемы.Мультиязычность.Печать") Тогда + МодульУправлениеПечатьюМультиязычность = ОбщегоНазначения.ОбщийМодуль("УправлениеПечатьюМультиязычность"); + ДоступныеДляПереводаМакеты = МодульУправлениеПечатьюМультиязычность.ДоступныеДляПереводаМакеты(); + КонецЕсли; + Для Каждого ОписаниеМакета Из УправлениеПечатью.МакетыПечатныхФорм() Цикл + Владелец = ОписаниеМакета.Значение; ИмяВладельца = ?(Метаданные.ОбщиеМакеты = Владелец, "ОбщийМакет", Владелец.ПолноеИмя()); - ПредставлениеВладельца = ?(Метаданные.ОбщиеМакеты = Владелец, НСтр("ru = 'Общий макет'"), Владелец.Представление()); - Макет = ОписаниеМакета.Ключ; - ИмяМакета = ИмяВладельца + "." + Макет.Имя; - ПредставлениеМакета = Макет.Представление(); + ОбъектМетаданных = ОписаниеМакета.Ключ; + ИмяОбъектаМетаданныхМакета = ИмяВладельца + "." + ОбъектМетаданных.Имя; + ПредставлениеМакета = ОбъектМетаданных.Представление(); - ТипМакета = ТипМакета(Макет.Имя, ИмяВладельца); + ТипМакета = ТипМакета(ОбъектМетаданных.Имя, ИмяВладельца); - ДобавитьОписаниеМакета(ИмяМакета, ПредставлениеМакета, ПредставлениеВладельца, ТипМакета); + Макет = СписокМакетов.Добавить(); + Макет.ОбъектМетаданных = ОбъектМетаданных; + Макет.Идентификатор = ИмяОбъектаМетаданныхМакета; + Макет.Представление = ПредставлениеМакета; + Макет.Владелец = ?(Владелец = Метаданные.ОбщиеМакеты, Неопределено, Владелец); + Макет.ТипМакета = ТипМакета; + Макет.Картинка = ИндексКартинки(ТипМакета); + Макет.Изменен = ИзмененныеМакеты[ИмяОбъектаМетаданныхМакета] <> Неопределено; + Макет.ИспользуетсяИзмененный = Макет.Изменен И ИзмененныеМакеты[ИмяОбъектаМетаданныхМакета]; + Макет.ДоступенПеревод = ДоступныеДляПереводаМакеты[ОбъектМетаданных] = Истина; + Макет.Используется = Истина; + Макет.Поставляемый = Истина; + КонецЦикла; + + ВладельцыМакетов = ОбщегоНазначения.ИдентификаторыОбъектовМетаданных(СписокМакетов.ВыгрузитьКолонку("Владелец"), Ложь); + + Для Каждого Макет Из СписокМакетов Цикл + Если Макет.Владелец <> Неопределено И ВладельцыМакетов[Макет.Владелец.ПолноеИмя()] <> Неопределено Тогда + Макет.Владелец = ВладельцыМакетов[Макет.Владелец.ПолноеИмя()]; + Макет.ЭтоПечатнаяФорма = УправлениеПечатью.ЭтоПечатнаяФорма(Макет.Идентификатор, Макет.Владелец); + Макет.ДоступенПеревод = Макет.ДоступенПеревод Или Макет.ЭтоПечатнаяФорма; + КонецЕсли; КонецЦикла; - МакетыПечатныхФорм.Сортировать("ПредставлениеМакета Возр"); - УстановитьФлагиИспользованияИзмененныхМакетов(); + ДополнитьСписокМакетов(СписокМакетов); + + ИсточникиКомандПечати = УправлениеПечатью.ИсточникиКомандПечати(); + ИсточникиДанныхПечати = ОбщегоНазначения.ИдентификаторыОбъектовМетаданных(ИсточникиКомандПечати, Ложь); + ОбщегоНазначенияКлиентСервер.ДополнитьСоответствие(ИсточникиДанныхПечати, ВладельцыМакетов, Ложь); + + ВладельцыМакетов = Новый СписокЗначений(); + Для Каждого Источник Из ИсточникиДанныхПечати Цикл + Если Не ЗначениеЗаполнено(Источник.Значение) Тогда + Продолжить; + КонецЕсли; + ВладельцыМакетов.Добавить(Источник.Значение, Источник.Значение); + КонецЦикла; + + ВладельцыМакетов.СортироватьПоПредставлению(); + ВладельцыМакетов.Добавить(Справочники.ИдентификаторыОбъектовМетаданных.ПустаяСсылка(), НСтр("ru = 'Прочие'")); + + ГруппыМакетов = Новый Соответствие(); + Для Каждого Владелец Из ВладельцыМакетов Цикл + ГруппаМакетов = Макеты.ПолучитьЭлементы().Добавить(); + ГруппаМакетов.Представление = Владелец.Представление; + ГруппаМакетов.КартинкаГруппы = БиблиотекаКартинок.Папка; + ГруппаМакетов.Картинка = -1; + ГруппаМакетов.КартинкаИспользования = -1; + ГруппаМакетов.ЭтоГруппа = Истина; + ГруппаМакетов.Используется = Истина; + ГруппаМакетов.Владелец = Владелец.Значение; + + ГруппыМакетов.Вставить(Владелец.Значение, ГруппаМакетов); + КонецЦикла; + + СписокМакетов.Сортировать("Владелец, Представление"); + ГруппаМакетов = Неопределено; + Для Каждого ОписаниеМакета Из СписокМакетов Цикл + Если Не ЗначениеЗаполнено(ОписаниеМакета.Владелец) + Или ГруппыМакетов[ОписаниеМакета.Владелец] = Неопределено Тогда + ОписаниеМакета.Владелец = Справочники.ИдентификаторыОбъектовМетаданных.ПустаяСсылка(); + КонецЕсли; + + ГруппаМакетов = ГруппыМакетов[ОписаниеМакета.Владелец]; + Макет = ГруппаМакетов.ПолучитьЭлементы().Добавить(); + ЗаполнитьЗначенияСвойств(Макет, ОписаниеМакета); + ДополнитьОписаниеМакета(Макет); + КонецЦикла; КонецПроцедуры &НаСервере -Функция ДобавитьОписаниеМакета(ИмяОбъектаМетаданныхМакета, ПредставлениеМакета, ПредставлениеВладельца, ТипМакета) - ОписаниеМакета = МакетыПечатныхФорм.Добавить(); - ОписаниеМакета.ТипМакета = ТипМакета; - ОписаниеМакета.ИмяОбъектаМетаданныхМакета = ИмяОбъектаМетаданныхМакета; - ОписаниеМакета.ПредставлениеВладельца = ПредставлениеВладельца; - ОписаниеМакета.ПредставлениеМакета = ПредставлениеМакета; - ОписаниеМакета.Картинка = ИндексКартинки(ТипМакета); - ОписаниеМакета.СтрокаПоиска = ИмяОбъектаМетаданныхМакета + " " - + ПредставлениеВладельца + " " - + ПредставлениеМакета + " " - + ТипМакета; +Процедура ДополнитьОписаниеМакета(Макет) - ОписаниеМакета.ДоступныеЯзыки = ДоступныеЯзыкиМакета(ИмяОбъектаМетаданныхМакета); + Макет.ИмяОбъектаМетаданныхМакета = Макет.Идентификатор; + Макет.ДоступныеЯзыки = ДоступныеЯзыкиМакета(Макет.Идентификатор); + Макет.КартинкаИспользования = -1; + Если Макет.Изменен Тогда + Макет.КартинкаИспользования = Число(Макет.Изменен) + Число(Макет.ИспользуетсяИзмененный); + КонецЕсли; + Макет.СтрокаПоиска = Макет.Представление + " " + Макет.ТипМакета; - Возврат ОписаниеМакета; -КонецФункции +КонецПроцедуры + +&НаСервере +Процедура ДополнитьСписокМакетов(СписокМакетов, Знач Идентификатор = Неопределено) + + Если ЗначениеЗаполнено(Идентификатор) Тогда + Идентификатор = Новый УникальныйИдентификатор(Сред(Идентификатор, 4)); + Иначе + Идентификатор = Новый УникальныйИдентификатор("00000000-0000-0000-0000-000000000000"); + КонецЕсли; + + ТекстЗапроса = + "ВЫБРАТЬ + | МакетыПечатныхФорм.Ссылка, + | МакетыПечатныхФорм.ИсточникДанных КАК Владелец, + | МакетыПечатныхФорм.Представление, + | МакетыПечатныхФорм.Используется, + | МакетыПечатныхФорм.ТипМакета, + | МакетыПечатныхФорм.Идентификатор + |ИЗ + | Справочник.МакетыПечатныхФорм КАК МакетыПечатныхФорм + | ЛЕВОЕ СОЕДИНЕНИЕ Справочник.ИдентификаторыОбъектовМетаданных КАК ИдентификаторыОбъектовМетаданных + | ПО МакетыПечатныхФорм.ИсточникДанных = ИдентификаторыОбъектовМетаданных.Ссылка + | ЛЕВОЕ СОЕДИНЕНИЕ Справочник.ИдентификаторыОбъектовРасширений КАК ИдентификаторыОбъектовРасширений + | ПО МакетыПечатныхФорм.ИсточникДанных = ИдентификаторыОбъектовРасширений.Ссылка + |ГДЕ + | (НЕ &ОтборУстановлен + | ИЛИ МакетыПечатныхФорм.Идентификатор = &Идентификатор) + | И НЕ МакетыПечатныхФорм.ПометкаУдаления"; + + Запрос = Новый Запрос(ТекстЗапроса); + Запрос.УстановитьПараметр("ОтборУстановлен", ЗначениеЗаполнено(Идентификатор)); + Запрос.УстановитьПараметр("Идентификатор", Идентификатор); + Выборка = Запрос.Выполнить().Выбрать(); + + Пока Выборка.Следующий() Цикл + Макет = СписокМакетов.Добавить(); + ЗаполнитьЗначенияСвойств(Макет, Выборка); + + Макет.Картинка = ИндексКартинки(Макет.ТипМакета); + Макет.Изменен = Истина; + Макет.ИспользуетсяИзмененный = Истина; + Макет.ДоступенПеревод = Истина; + Макет.Идентификатор = "ПФ_" + Строка(Макет.Идентификатор); + Макет.ДоступнаНастройкаВидимости = Истина; + Макет.ЭтоПечатнаяФорма = Истина; + КонецЦикла; + +КонецПроцедуры &НаСервере Функция ДоступныеЯзыкиМакета(Знач ИмяОбъектаМетаданныхМакета) @@ -269,46 +449,6 @@ КонецФункции -&НаСервере -Процедура УстановитьФлагиИспользованияИзмененныхМакетов() - - ТекстЗапроса = - "ВЫБРАТЬ - | ИзмененныеМакеты.ИмяМакета, - | ИзмененныеМакеты.Объект, - | ИзмененныеМакеты.Использование - |ИЗ - | РегистрСведений.ПользовательскиеМакетыПечати КАК ИзмененныеМакеты"; - - Запрос = Новый Запрос(ТекстЗапроса); - ИзмененныеМакеты = Запрос.Выполнить().Выгрузить(); - - ЯзыкиПечатныхФорм = ОбщегоНазначенияКлиентСервер.ЗначениеВМассиве(ОбщегоНазначения.КодОсновногоЯзыка()); - Если ОбщегоНазначения.ПодсистемаСуществует("СтандартныеПодсистемы.Мультиязычность.Печать") Тогда - МодульУправлениеПечатьюМультиязычность = ОбщегоНазначения.ОбщийМодуль("УправлениеПечатьюМультиязычность"); - ЯзыкиПечатныхФорм = МодульУправлениеПечатьюМультиязычность.ДоступныеЯзыки(); - КонецЕсли; - - Для Каждого Макет Из ИзмененныеМакеты Цикл - ИмяМакета = Макет.ИмяМакета; - Для Каждого КодЯзыка Из ЯзыкиПечатныхФорм Цикл - Если СтрЗаканчиваетсяНа(ИмяМакета, "_" + КодЯзыка) Тогда - ИмяМакета = Лев(ИмяМакета, СтрДлина(ИмяМакета) - СтрДлина(КодЯзыка) - 1); - Прервать; - КонецЕсли; - КонецЦикла; - - ИмяОбъектаМетаданныхМакета = Макет.Объект + "." + ИмяМакета; - НайденныеСтроки = МакетыПечатныхФорм.НайтиСтроки(Новый Структура("ИмяОбъектаМетаданныхМакета", ИмяОбъектаМетаданныхМакета)); - Для Каждого ОписаниеМакета Из НайденныеСтроки Цикл - ОписаниеМакета.Изменен = Истина; - ОписаниеМакета.ИспользуетсяИзмененный = Макет.Использование; - ОписаниеМакета.КартинкаИспользования = Число(ОписаниеМакета.Изменен) + Число(ОписаниеМакета.ИспользуетсяИзмененный); - КонецЦикла; - КонецЦикла; - -КонецПроцедуры - &НаСервере Функция ТипМакета(ИмяОбъектаМетаданныхМакета, ИмяОбъекта = "ОбщийМакет") @@ -346,6 +486,7 @@ ТипыМакетов = Новый Соответствие; ТипыМакетов.Вставить("DOC", 0); + ТипыМакетов.Вставить("DOCX", 0); ТипыМакетов.Вставить("ODT", 1); ТипыМакетов.Вставить("MXL", 2); @@ -358,45 +499,35 @@ &НаКлиенте Процедура УстановитьОтборМакетов(Текст = Неопределено); - Если Текст = Неопределено Тогда - Текст = СтрокаПоиска; - КонецЕсли; + + ПоказыватьИзмененные = Истина; + ПоказыватьНеизмененные = Истина; + ПоказыватьИспользуемые = Истина; + ПоказыватьНеиспользуемые = Истина; - СтруктураОтбора = Новый Структура; - СтруктураОтбора.Вставить("СтрокаПоиска", СокрЛП(Текст)); Если ОтборПоИспользованиюМакета = "Измененные" Тогда - СтруктураОтбора.Вставить("Изменен", Истина); + ПоказыватьНеизмененные = Ложь; ИначеЕсли ОтборПоИспользованиюМакета = "НеИзмененные" Тогда - СтруктураОтбора.Вставить("Изменен", Ложь); + ПоказыватьИзмененные = Ложь; ИначеЕсли ОтборПоИспользованиюМакета = "ИспользуемыеИзмененные" Тогда - СтруктураОтбора.Вставить("ИспользуетсяИзмененный", Истина); + ПоказыватьНеиспользуемые = Ложь; + ПоказыватьНеИзмененные = Ложь; ИначеЕсли ОтборПоИспользованиюМакета = "НеИспользуемыеИзмененные" Тогда - СтруктураОтбора.Вставить("ИспользуетсяИзмененный", Ложь); - СтруктураОтбора.Вставить("Изменен", Истина); + ПоказыватьНеизмененные = Ложь; + ПоказыватьИспользуемые = Ложь; КонецЕсли; - - Если ЗначениеЗаполнено(ОтборПоЯзыку) Тогда - СтруктураОтбора.Вставить("ДоступныеЯзыки", ОтборПоЯзыку); - КонецЕсли; - - Элементы.МакетыПечатныхФорм.ОтборСтрок = Новый ФиксированнаяСтруктура(СтруктураОтбора); - УстановитьДоступностьКнопокКоманднойПанели(); + КонецПроцедуры &НаКлиенте -Процедура СтрокаПоискаАвтоПодбор(Элемент, Текст, ДанныеВыбора, Ожидание, СтандартнаяОбработка) - УстановитьОтборМакетов(Текст); -КонецПроцедуры - -&НаКлиенте -Процедура СтрокаПоискаОчистка(Элемент, СтандартнаяОбработка) - УстановитьОтборМакетов(); +Процедура СтрокаПоискаИзменениеТекстаРедактирования(Элемент, Текст, СтандартнаяОбработка) + СтандартнаяОбработка = Ложь; + СтрокаПоиска = Текст; КонецПроцедуры &НаКлиенте Процедура СтрокаПоискаПриИзменении(Элемент) - УстановитьОтборМакетов(); - Если Элементы.СтрокаПоиска.СписокВыбора.НайтиПоЗначению(СтрокаПоиска) = Неопределено Тогда + Если ЗначениеЗаполнено(СтрокаПоиска) И Элементы.СтрокаПоиска.СписокВыбора.НайтиПоЗначению(СтрокаПоиска) = Неопределено Тогда Элементы.СтрокаПоиска.СписокВыбора.Добавить(СтрокаПоиска); КонецЕсли; КонецПроцедуры @@ -413,31 +544,11 @@ УстановитьОтборМакетов(); КонецПроцедуры -&НаКлиенте -Процедура ОтборПоЯзыкуПриИзменении(Элемент) - - УстановитьОтборМакетов(); - -КонецПроцедуры - -&НаКлиенте -Процедура ОтборПоЯзыкуОчистка(Элемент, СтандартнаяОбработка) - - УстановитьОтборМакетов(); - -КонецПроцедуры - // Открытие макета &НаКлиенте Процедура ОткрытьМакетПечатнойФормы() - Если СпрашиватьРежимОткрытияМакета Тогда - КонтекстВыбора = "ОткрытьМакетПечатнойФормы"; - ОткрытьФорму("РегистрСведений.ПользовательскиеМакетыПечати.Форма.ВыбораРежимаОткрытияМакета", , ЭтотОбъект); - Возврат; - КонецЕсли; - Если РежимОткрытияМакетаПросмотр Тогда ОткрытьМакетПечатнойФормыДляПросмотра(); Иначе @@ -449,7 +560,7 @@ &НаКлиенте Процедура ОткрытьМакетПечатнойФормыДляПросмотра() - ТекущиеДанные = Элементы.МакетыПечатныхФорм.ТекущиеДанные; + ТекущиеДанные = Элементы.Макеты.ТекущиеДанные; ПараметрыОткрытия = Новый Структура; ПараметрыОткрытия.Вставить("ИмяОбъектаМетаданныхМакета", ТекущиеДанные.ИмяОбъектаМетаданныхМакета); @@ -457,7 +568,7 @@ ПараметрыОткрытия.Вставить("ТолькоОткрытие", Истина); Если ТекущиеДанные.ТипМакета = "MXL" Тогда - ПараметрыОткрытия.Вставить("ИмяДокумента", ТекущиеДанные.ПредставлениеМакета); + ПараметрыОткрытия.Вставить("ИмяДокумента", ТекущиеДанные.Представление); ОткрытьФорму("ОбщаяФорма.РедактированиеТабличногоДокумента", ПараметрыОткрытия, ЭтотОбъект); Возврат; КонецЕсли; @@ -469,14 +580,16 @@ &НаКлиенте Процедура ОткрытьМакетПечатнойФормыДляРедактирования() - ТекущиеДанные = Элементы.МакетыПечатныхФорм.ТекущиеДанные; + ТекущиеДанные = Элементы.Макеты.ТекущиеДанные; ПараметрыОткрытия = Новый Структура; ПараметрыОткрытия.Вставить("ИмяОбъектаМетаданныхМакета", ТекущиеДанные.ИмяОбъектаМетаданныхМакета); ПараметрыОткрытия.Вставить("ТипМакета", ТекущиеДанные.ТипМакета); + ПараметрыОткрытия.Вставить("Ссылка", ТекущиеДанные.Ссылка); + ПараметрыОткрытия.Вставить("Владелец", ТекущиеДанные.Владелец); Если ТекущиеДанные.ТипМакета = "MXL" Тогда - ПараметрыОткрытия.Вставить("ИмяДокумента", ТекущиеДанные.ПредставлениеМакета); + ПараметрыОткрытия.Вставить("ИмяДокумента", ТекущиеДанные.Представление); ПараметрыОткрытия.Вставить("Редактирование", Истина); ОткрытьФорму("ОбщаяФорма.РедактированиеТабличногоДокумента", ПараметрыОткрытия, ЭтотОбъект); Возврат; @@ -486,28 +599,13 @@ КонецПроцедуры -&НаСервереБезКонтекста -Процедура СохранитьНастройкиРежимаОткрытияМакета(СпрашиватьРежимОткрытияМакета, РежимОткрытияМакетаПросмотр) - - Если НЕ ОбщегоНазначения.ЭтоМобильныйКлиент() Тогда - - ОбщегоНазначения.ХранилищеОбщихНастроекСохранить("НастройкаОткрытияМакетов", - "СпрашиватьРежимОткрытияМакета", СпрашиватьРежимОткрытияМакета); - - ОбщегоНазначения.ХранилищеОбщихНастроекСохранить("НастройкаОткрытияМакетов", - "РежимОткрытияМакетаПросмотр", РежимОткрытияМакетаПросмотр); - - КонецЕсли; - -КонецПроцедуры - // Действия с макетами &НаКлиенте Процедура ПереключитьИспользованиеВыбранныхМакетов(ИспользуетсяИзмененный) ПереключаемыеМакеты = Новый Массив; - Для Каждого ВыделеннаяСтрока Из Элементы.МакетыПечатныхФорм.ВыделенныеСтроки Цикл - ТекущиеДанные = Элементы.МакетыПечатныхФорм.ДанныеСтроки(ВыделеннаяСтрока); + Для Каждого ВыделеннаяСтрока Из Элементы.Макеты.ВыделенныеСтроки Цикл + ТекущиеДанные = Элементы.Макеты.ДанныеСтроки(ВыделеннаяСтрока); Если ТекущиеДанные.Изменен Тогда ТекущиеДанные.ИспользуетсяИзмененный = ИспользуетсяИзмененный; УстановитьКартинкуИспользования(ТекущиеДанные); @@ -521,35 +619,15 @@ &НаСервереБезКонтекста Процедура УстановитьИспользованиеИзмененныхМакетов(Макеты, ИспользуетсяИзмененный) - Для Каждого ИмяОбъектаМетаданныхМакета Из Макеты Цикл - ЧастиИмени = СтрРазделить(ИмяОбъектаМетаданныхМакета, "."); - ИмяМакета = ЧастиИмени[ЧастиИмени.ВГраница()]; - - ИмяВладельца = ""; - Для НомерЧасти = 0 По ЧастиИмени.ВГраница()-1 Цикл - Если Не ПустаяСтрока(ИмяВладельца) Тогда - ИмяВладельца = ИмяВладельца + "."; - КонецЕсли; - ИмяВладельца = ИмяВладельца + ЧастиИмени[НомерЧасти]; - КонецЦикла; - - Запись = РегистрыСведений.ПользовательскиеМакетыПечати.СоздатьМенеджерЗаписи(); - Запись.Объект = ИмяВладельца; - Запись.ИмяМакета = ИмяМакета; - Запись.Прочитать(); - Если Запись.Выбран() Тогда - Запись.Использование = ИспользуетсяИзмененный; - Запись.Записать(); - КонецЕсли; - КонецЦикла; + РегистрыСведений.ПользовательскиеМакетыПечати.УстановитьИспользованиеИзмененныхМакетов(Макеты, ИспользуетсяИзмененный); КонецПроцедуры &НаКлиенте Процедура УдалитьВыбранныеИзмененныеМакеты(Команда) УдаляемыеМакеты = Новый Массив; - Для Каждого ВыделеннаяСтрока Из Элементы.МакетыПечатныхФорм.ВыделенныеСтроки Цикл - ТекущиеДанные = Элементы.МакетыПечатныхФорм.ДанныеСтроки(ВыделеннаяСтрока); + Для Каждого ВыделеннаяСтрока Из Элементы.Макеты.ВыделенныеСтроки Цикл + ТекущиеДанные = Элементы.Макеты.ДанныеСтроки(ВыделеннаяСтрока); ТекущиеДанные.ИспользуетсяИзмененный = Ложь; ТекущиеДанные.Изменен = Ложь; УстановитьКартинкуИспользования(ТекущиеДанные); @@ -568,15 +646,9 @@ КонецПроцедуры -&НаСервереБезКонтекста -Процедура ЗаписатьМакет(ИмяОбъектаМетаданныхМакета, АдресМакетаВоВременномХранилище, КодЯзыка = Неопределено) - УправлениеПечатью.ЗаписатьМакет(ИмяОбъектаМетаданныхМакета, АдресМакетаВоВременномХранилище, КодЯзыка); -КонецПроцедуры - &НаКлиенте Процедура ОбновитьОтображениеМакетов(); - УстановитьФлагиИспользованияИзмененныхМакетов(); УстановитьДоступностьКнопокКоманднойПанели(); КонецПроцедуры @@ -585,34 +657,351 @@ &НаКлиенте Процедура УстановитьКартинкуИспользования(ОписаниеМакета) - ОписаниеМакета.КартинкаИспользования = Число(ОписаниеМакета.Изменен) + Число(ОписаниеМакета.ИспользуетсяИзмененный); + ОписаниеМакета.КартинкаИспользования = -1; + Если ОписаниеМакета.Изменен Тогда + ОписаниеМакета.КартинкаИспользования = Число(ОписаниеМакета.Изменен) + Число(ОписаниеМакета.ИспользуетсяИзмененный); + КонецЕсли; КонецПроцедуры &НаКлиенте Процедура УстановитьДоступностьКнопокКоманднойПанели() - ТекущийМакет = Элементы.МакетыПечатныхФорм.ТекущиеДанные; + ТекущийМакет = Элементы.Макеты.ТекущиеДанные; ТекущийМакетВыбран = ТекущийМакет <> Неопределено; - ВыбраноНесколькоМакетов = Элементы.МакетыПечатныхФорм.ВыделенныеСтроки.Количество() > 1; - - Элементы.МакетыПечатныхФормОткрытьМакет.Доступность = ТекущийМакетВыбран И Не ВыбраноНесколькоМакетов; - Элементы.МакетыПечатныхФормИзменитьМакет.Доступность = ТекущийМакетВыбран И Не ВыбраноНесколькоМакетов; + ВыбраноНесколькоМакетов = Элементы.Макеты.ВыделенныеСтроки.Количество() > 1; ИспользоватьИзмененныйМакетДоступность = Ложь; ИспользоватьСтандартныйМакетДоступность = Ложь; УдалитьИзмененныйМакетДоступность = Ложь; + УдалитьМакетВидимость = Ложь; - Для Каждого ВыделеннаяСтрока Из Элементы.МакетыПечатныхФорм.ВыделенныеСтроки Цикл - ТекущийМакет = Элементы.МакетыПечатныхФорм.ДанныеСтроки(ВыделеннаяСтрока); - ИспользоватьИзмененныйМакетДоступность = ТекущийМакетВыбран И ТекущийМакет.Изменен И Не ТекущийМакет.ИспользуетсяИзмененный Или ВыбраноНесколькоМакетов И ИспользоватьИзмененныйМакетДоступность; - ИспользоватьСтандартныйМакетДоступность = ТекущийМакетВыбран И ТекущийМакет.Изменен И ТекущийМакет.ИспользуетсяИзмененный Или ВыбраноНесколькоМакетов И ИспользоватьСтандартныйМакетДоступность; - УдалитьИзмененныйМакетДоступность = ТекущийМакетВыбран И ТекущийМакет.Изменен Или ВыбраноНесколькоМакетов И УдалитьИзмененныйМакетДоступность; + Для Каждого ВыделеннаяСтрока Из Элементы.Макеты.ВыделенныеСтроки Цикл + ТекущийМакет = Элементы.Макеты.ДанныеСтроки(ВыделеннаяСтрока); + ИспользоватьИзмененныйМакетДоступность = ТекущийМакетВыбран И ТекущийМакет.Изменен И Не ТекущийМакет.ИспользуетсяИзмененный И Не ЗначениеЗаполнено(ТекущийМакет.Ссылка) Или ВыбраноНесколькоМакетов И ИспользоватьИзмененныйМакетДоступность; + ИспользоватьСтандартныйМакетДоступность = ТекущийМакетВыбран И ТекущийМакет.Изменен И ТекущийМакет.ИспользуетсяИзмененный И Не ЗначениеЗаполнено(ТекущийМакет.Ссылка) Или ВыбраноНесколькоМакетов И ИспользоватьСтандартныйМакетДоступность; + УдалитьИзмененныйМакетДоступность = ТекущийМакетВыбран И ТекущийМакет.Изменен И Не ЗначениеЗаполнено(ТекущийМакет.Ссылка) Или ВыбраноНесколькоМакетов И УдалитьИзмененныйМакетДоступность; + УдалитьМакетВидимость = ТекущийМакетВыбран И ЗначениеЗаполнено(ТекущийМакет.Ссылка) Или ВыбраноНесколькоМакетов И УдалитьМакетВидимость; КонецЦикла; Элементы.МакетыПечатныхФормИспользоватьИзмененныйМакет.Доступность = ИспользоватьИзмененныйМакетДоступность; Элементы.МакетыПечатныхФормИспользоватьСтандартныйМакет.Доступность = ИспользоватьСтандартныйМакетДоступность; Элементы.МакетыПечатныхФормУдалитьИзмененныйМакет.Доступность = УдалитьИзмененныйМакетДоступность; + Элементы.МакетыКонтекстноеМенюУдалитьИзмененныйМакет.Видимость = УдалитьИзмененныйМакетДоступность; + Элементы.МакетыКонтекстноеМенюУдалитьМакет.Видимость = УдалитьМакетВидимость; + Элементы.МакетыУсловияДоступности.Доступность = ТекущийМакетВыбран И ТекущийМакет.ДоступнаНастройкаВидимости; + Элементы.МакетыСкопировать.Доступность = ТекущийМакетВыбран И ТекущийМакет.ЭтоПечатнаяФорма И Не ВыбраноНесколькоМакетов; + Элементы.МакетыДобавитьМакет.Доступность = ТекущийМакетВыбран И ЗначениеЗаполнено(ТекущийМакет.Владелец); + +КонецПроцедуры + +&НаКлиенте +Процедура Скопировать(Команда) + + ОписаниеОповещения = Новый ОписаниеОповещения("ПриВыбореИмениМакета", ЭтотОбъект, Истина); + ПоказатьВводСтроки(ОписаниеОповещения, НСтр("ru = 'Новая печатная форма'"), НСтр("ru = 'Введите наименование макета'"), 100, Ложь) + +КонецПроцедуры + +&НаКлиенте +Процедура ПриВыбореИмениМакета(ИмяМакета, Копирование) Экспорт + + Если Не ЗначениеЗаполнено(ИмяМакета) Тогда + Возврат; + КонецЕсли; + + ТекущиеДанные = Элементы.Макеты.ТекущиеДанные; + + ТипМакета = "MXL"; + + ПараметрыОткрытия = Новый Структура; + ПараметрыОткрытия.Вставить("ТипМакета", ТипМакета); + ПараметрыОткрытия.Вставить("Владелец", ТекущиеДанные.Владелец); + ПараметрыОткрытия.Вставить("ИмяДокумента", ИмяМакета); + + Если Копирование Тогда + ПараметрыОткрытия.Вставить("ИмяОбъектаМетаданныхМакета", ТекущиеДанные.ИмяОбъектаМетаданныхМакета); + ПараметрыОткрытия.Вставить("Копирование", Копирование); + КонецЕсли; + + Если ТипМакета = "MXL" Тогда + ПараметрыОткрытия.Вставить("Редактирование", Истина); + ОткрытьФорму("ОбщаяФорма.РедактированиеТабличногоДокумента", ПараметрыОткрытия, ЭтотОбъект); + Возврат; + КонецЕсли; + + ОткрытьФорму("РегистрСведений.ПользовательскиеМакетыПечати.Форма.РедактированиеМакета", ПараметрыОткрытия, ЭтотОбъект); + +КонецПроцедуры + +&НаСервере +Функция ИзмененныеМакеты() + + ТекстЗапроса = + "ВЫБРАТЬ + | ИзмененныеМакеты.ИмяМакета, + | ИзмененныеМакеты.Объект, + | ИзмененныеМакеты.Использование + |ИЗ + | РегистрСведений.ПользовательскиеМакетыПечати КАК ИзмененныеМакеты"; + + Запрос = Новый Запрос(ТекстЗапроса); + ИзмененныеМакеты = Запрос.Выполнить().Выгрузить(); + + ЯзыкиПечатныхФорм = ОбщегоНазначенияКлиентСервер.ЗначениеВМассиве(ОбщегоНазначения.КодОсновногоЯзыка()); + Если ОбщегоНазначения.ПодсистемаСуществует("СтандартныеПодсистемы.Мультиязычность.Печать") Тогда + МодульУправлениеПечатьюМультиязычность = ОбщегоНазначения.ОбщийМодуль("УправлениеПечатьюМультиязычность"); + ЯзыкиПечатныхФорм = МодульУправлениеПечатьюМультиязычность.ДоступныеЯзыки(); + КонецЕсли; + + Результат = Новый Соответствие; + + Для Каждого Макет Из ИзмененныеМакеты Цикл + ИмяМакета = Макет.ИмяМакета; + Для Каждого КодЯзыка Из ЯзыкиПечатныхФорм Цикл + Если СтрНайти(ИмяМакета, "_MXL_") И СтрЗаканчиваетсяНа(ИмяМакета, "_" + КодЯзыка) Тогда + ИмяМакета = Лев(ИмяМакета, СтрДлина(ИмяМакета) - СтрДлина(КодЯзыка) - 1); + Прервать; + КонецЕсли; + КонецЦикла; + + ИмяОбъектаМетаданныхМакета = Макет.Объект + "." + ИмяМакета; + Результат.Вставить(ИмяОбъектаМетаданныхМакета, Макет.Использование); + КонецЦикла; + + Возврат Результат; + +КонецФункции + +&НаСервере +Функция НайтиМакет(Идентификатор) + + ГруппыМакетов = Макеты.ПолучитьЭлементы(); + Для Каждого ГруппаМакетов Из ГруппыМакетов Цикл + Для Каждого Макет Из ГруппаМакетов.ПолучитьЭлементы() Цикл + Если Макет.Идентификатор = Идентификатор Тогда + Возврат Макет; + КонецЕсли; + КонецЦикла; + КонецЦикла; + + Возврат Неопределено; + +КонецФункции + +&НаКлиенте +Процедура УдалитьМакет(Команда) + + ТекущиеДанные = Элементы.Макеты.ТекущиеДанные; + Если ТекущиеДанные = Неопределено Тогда + Возврат; + КонецЕсли; + + ИдентификаторМакета = ТекущиеДанные.Идентификатор; + УдалитьМакетНаСервере(ИдентификаторМакета); + Элементы.Макеты.ТекущиеДанные.ПолучитьРодителя().ПолучитьЭлементы().Удалить(Элементы.Макеты.ТекущиеДанные); + +КонецПроцедуры + +&НаСервере +Процедура УдалитьМакетНаСервере(ИдентификаторМакета) + + УправлениеПечатью.УдалитьМакет(ИдентификаторМакета); + +КонецПроцедуры + +&НаСервере +Процедура УстановитьУсловноеОформление() + + УсловноеОформление.Элементы.Очистить(); + + // Цвет отключенных + + ЭлементОформления = УсловноеОформление.Элементы.Добавить(); + + ОформляемоеПоле = ЭлементОформления.Поля.Элементы.Добавить(); + ОформляемоеПоле.Поле = Новый ПолеКомпоновкиДанных("Макеты"); + + ЭлементОтбора = ЭлементОформления.Отбор.Элементы.Добавить(Тип("ЭлементОтбораКомпоновкиДанных")); + ЭлементОтбора.ЛевоеЗначение = Новый ПолеКомпоновкиДанных("Макеты.Используется"); + ЭлементОтбора.ВидСравнения = ВидСравненияКомпоновкиДанных.Равно; + ЭлементОтбора.ПравоеЗначение = Ложь; + + ЭлементОформления.Оформление.УстановитьЗначениеПараметра("ЦветТекста", ЦветаСтиля.ТекстЗапрещеннойЯчейкиЦвет); + + // Скрытие флажка использования для групп + + ЭлементОформления = УсловноеОформление.Элементы.Добавить(); + + ОформляемоеПоле = ЭлементОформления.Поля.Элементы.Добавить(); + ОформляемоеПоле.Поле = Новый ПолеКомпоновкиДанных("МакетыИспользуется"); + + ЭлементОтбора = ЭлементОформления.Отбор.Элементы.Добавить(Тип("ЭлементОтбораКомпоновкиДанных")); + ЭлементОтбора.ЛевоеЗначение = Новый ПолеКомпоновкиДанных("Макеты.ЭтоГруппа"); + ЭлементОтбора.ВидСравнения = ВидСравненияКомпоновкиДанных.Равно; + ЭлементОтбора.ПравоеЗначение = Истина; + + ЭлементОформления.Оформление.УстановитьЗначениеПараметра("Отображать", Ложь); + + // Скрытие флажка использования для поставляемых макетов + + ЭлементОформления = УсловноеОформление.Элементы.Добавить(); + + ОформляемоеПоле = ЭлементОформления.Поля.Элементы.Добавить(); + ОформляемоеПоле.Поле = Новый ПолеКомпоновкиДанных("МакетыИспользуется"); + + ЭлементОтбора = ЭлементОформления.Отбор.Элементы.Добавить(Тип("ЭлементОтбораКомпоновкиДанных")); + ЭлементОтбора.ЛевоеЗначение = Новый ПолеКомпоновкиДанных("Макеты.Поставляемый"); + ЭлементОтбора.ВидСравнения = ВидСравненияКомпоновкиДанных.Равно; + ЭлементОтбора.ПравоеЗначение = Истина; + + ЭлементОформления.Оформление.УстановитьЗначениеПараметра("Отображать", Ложь); + + // Поиск по строке + + ЭлементОформления = УсловноеОформление.Элементы.Добавить(); + + ОформляемоеПоле = ЭлементОформления.Поля.Элементы.Добавить(); + ОформляемоеПоле.Поле = Новый ПолеКомпоновкиДанных("Макеты"); + + ЭлементОтбора = ЭлементОформления.Отбор.Элементы.Добавить(Тип("ЭлементОтбораКомпоновкиДанных")); + ЭлементОтбора.ЛевоеЗначение = Новый ПолеКомпоновкиДанных("Макеты.СтрокаПоиска"); + ЭлементОтбора.ВидСравнения = ВидСравненияКомпоновкиДанных.НеСодержит; + ЭлементОтбора.ПравоеЗначение = Новый ПолеКомпоновкиДанных("СтрокаПоиска"); + + ЭлементОтбора = ЭлементОформления.Отбор.Элементы.Добавить(Тип("ЭлементОтбораКомпоновкиДанных")); + ЭлементОтбора.ЛевоеЗначение = Новый ПолеКомпоновкиДанных("Макеты.ЭтоГруппа"); + ЭлементОтбора.ВидСравнения = ВидСравненияКомпоновкиДанных.Равно; + ЭлементОтбора.ПравоеЗначение = Ложь; + + ЭлементОформления.Оформление.УстановитьЗначениеПараметра("Отображать", Ложь); + ЭлементОформления.Оформление.УстановитьЗначениеПараметра("Видимость", Ложь); + + // Поиск по языку + + ЭлементОформления = УсловноеОформление.Элементы.Добавить(); + + ОформляемоеПоле = ЭлементОформления.Поля.Элементы.Добавить(); + ОформляемоеПоле.Поле = Новый ПолеКомпоновкиДанных("Макеты"); + + ЭлементОтбора = ЭлементОформления.Отбор.Элементы.Добавить(Тип("ЭлементОтбораКомпоновкиДанных")); + ЭлементОтбора.ЛевоеЗначение = Новый ПолеКомпоновкиДанных("ОтборПоЯзыку"); + ЭлементОтбора.ВидСравнения = ВидСравненияКомпоновкиДанных.Заполнено; + + ЭлементОтбора = ЭлементОформления.Отбор.Элементы.Добавить(Тип("ЭлементОтбораКомпоновкиДанных")); + ЭлементОтбора.ЛевоеЗначение = Новый ПолеКомпоновкиДанных("Макеты.ДоступныеЯзыки"); + ЭлементОтбора.ВидСравнения = ВидСравненияКомпоновкиДанных.НеСодержит; + ЭлементОтбора.ПравоеЗначение = Новый ПолеКомпоновкиДанных("ОтборПоЯзыку"); + + ЭлементОтбора = ЭлементОформления.Отбор.Элементы.Добавить(Тип("ЭлементОтбораКомпоновкиДанных")); + ЭлементОтбора.ЛевоеЗначение = Новый ПолеКомпоновкиДанных("Макеты.ЭтоГруппа"); + ЭлементОтбора.ВидСравнения = ВидСравненияКомпоновкиДанных.Равно; + ЭлементОтбора.ПравоеЗначение = Ложь; + + ЭлементОформления.Оформление.УстановитьЗначениеПараметра("Отображать", Ложь); + ЭлементОформления.Оформление.УстановитьЗначениеПараметра("Видимость", Ложь); + + // ПоказыватьИзмененные + + ЭлементОформления = УсловноеОформление.Элементы.Добавить(); + + ОформляемоеПоле = ЭлементОформления.Поля.Элементы.Добавить(); + ОформляемоеПоле.Поле = Новый ПолеКомпоновкиДанных("Макеты"); + + ЭлементОтбора = ЭлементОформления.Отбор.Элементы.Добавить(Тип("ЭлементОтбораКомпоновкиДанных")); + ЭлементОтбора.ЛевоеЗначение = Новый ПолеКомпоновкиДанных("ПоказыватьИзмененные"); + ЭлементОтбора.ВидСравнения = ВидСравненияКомпоновкиДанных.Равно; + ЭлементОтбора.ПравоеЗначение = Ложь; + + ЭлементОтбора = ЭлементОформления.Отбор.Элементы.Добавить(Тип("ЭлементОтбораКомпоновкиДанных")); + ЭлементОтбора.ЛевоеЗначение = Новый ПолеКомпоновкиДанных("Макеты.Изменен"); + ЭлементОтбора.ВидСравнения = ВидСравненияКомпоновкиДанных.Равно; + ЭлементОтбора.ПравоеЗначение = Истина; + + ЭлементОтбора = ЭлементОформления.Отбор.Элементы.Добавить(Тип("ЭлементОтбораКомпоновкиДанных")); + ЭлементОтбора.ЛевоеЗначение = Новый ПолеКомпоновкиДанных("Макеты.ЭтоГруппа"); + ЭлементОтбора.ВидСравнения = ВидСравненияКомпоновкиДанных.Равно; + ЭлементОтбора.ПравоеЗначение = Ложь; + + ЭлементОформления.Оформление.УстановитьЗначениеПараметра("Отображать", Ложь); + ЭлементОформления.Оформление.УстановитьЗначениеПараметра("Видимость", Ложь); + + // ПоказыватьИспользуемые + + ЭлементОформления = УсловноеОформление.Элементы.Добавить(); + + ОформляемоеПоле = ЭлементОформления.Поля.Элементы.Добавить(); + ОформляемоеПоле.Поле = Новый ПолеКомпоновкиДанных("Макеты"); + + ЭлементОтбора = ЭлементОформления.Отбор.Элементы.Добавить(Тип("ЭлементОтбораКомпоновкиДанных")); + ЭлементОтбора.ЛевоеЗначение = Новый ПолеКомпоновкиДанных("ПоказыватьИспользуемые"); + ЭлементОтбора.ВидСравнения = ВидСравненияКомпоновкиДанных.Равно; + ЭлементОтбора.ПравоеЗначение = Ложь; + + ЭлементОтбора = ЭлементОформления.Отбор.Элементы.Добавить(Тип("ЭлементОтбораКомпоновкиДанных")); + ЭлементОтбора.ЛевоеЗначение = Новый ПолеКомпоновкиДанных("Макеты.Используется"); + ЭлементОтбора.ВидСравнения = ВидСравненияКомпоновкиДанных.Равно; + ЭлементОтбора.ПравоеЗначение = Истина; + + ЭлементОтбора = ЭлементОформления.Отбор.Элементы.Добавить(Тип("ЭлементОтбораКомпоновкиДанных")); + ЭлементОтбора.ЛевоеЗначение = Новый ПолеКомпоновкиДанных("Макеты.ЭтоГруппа"); + ЭлементОтбора.ВидСравнения = ВидСравненияКомпоновкиДанных.Равно; + ЭлементОтбора.ПравоеЗначение = Ложь; + + ЭлементОформления.Оформление.УстановитьЗначениеПараметра("Отображать", Ложь); + ЭлементОформления.Оформление.УстановитьЗначениеПараметра("Видимость", Ложь); + + // ПоказыватьНеизмененные + + ЭлементОформления = УсловноеОформление.Элементы.Добавить(); + + ОформляемоеПоле = ЭлементОформления.Поля.Элементы.Добавить(); + ОформляемоеПоле.Поле = Новый ПолеКомпоновкиДанных("Макеты"); + + ЭлементОтбора = ЭлементОформления.Отбор.Элементы.Добавить(Тип("ЭлементОтбораКомпоновкиДанных")); + ЭлементОтбора.ЛевоеЗначение = Новый ПолеКомпоновкиДанных("ПоказыватьНеизмененные"); + ЭлементОтбора.ВидСравнения = ВидСравненияКомпоновкиДанных.Равно; + ЭлементОтбора.ПравоеЗначение = Ложь; + + ЭлементОтбора = ЭлементОформления.Отбор.Элементы.Добавить(Тип("ЭлементОтбораКомпоновкиДанных")); + ЭлементОтбора.ЛевоеЗначение = Новый ПолеКомпоновкиДанных("Макеты.Изменен"); + ЭлементОтбора.ВидСравнения = ВидСравненияКомпоновкиДанных.Равно; + ЭлементОтбора.ПравоеЗначение = Ложь; + + ЭлементОтбора = ЭлементОформления.Отбор.Элементы.Добавить(Тип("ЭлементОтбораКомпоновкиДанных")); + ЭлементОтбора.ЛевоеЗначение = Новый ПолеКомпоновкиДанных("Макеты.ЭтоГруппа"); + ЭлементОтбора.ВидСравнения = ВидСравненияКомпоновкиДанных.Равно; + ЭлементОтбора.ПравоеЗначение = Ложь; + + ЭлементОформления.Оформление.УстановитьЗначениеПараметра("Отображать", Ложь); + ЭлементОформления.Оформление.УстановитьЗначениеПараметра("Видимость", Ложь); + + // ПоказыватьНеиспользуемые + + ЭлементОформления = УсловноеОформление.Элементы.Добавить(); + + ОформляемоеПоле = ЭлементОформления.Поля.Элементы.Добавить(); + ОформляемоеПоле.Поле = Новый ПолеКомпоновкиДанных("Макеты"); + + ЭлементОтбора = ЭлементОформления.Отбор.Элементы.Добавить(Тип("ЭлементОтбораКомпоновкиДанных")); + ЭлементОтбора.ЛевоеЗначение = Новый ПолеКомпоновкиДанных("ПоказыватьНеиспользуемые"); + ЭлементОтбора.ВидСравнения = ВидСравненияКомпоновкиДанных.Равно; + ЭлементОтбора.ПравоеЗначение = Ложь; + + ЭлементОтбора = ЭлементОформления.Отбор.Элементы.Добавить(Тип("ЭлементОтбораКомпоновкиДанных")); + ЭлементОтбора.ЛевоеЗначение = Новый ПолеКомпоновкиДанных("Макеты.Используется"); + ЭлементОтбора.ВидСравнения = ВидСравненияКомпоновкиДанных.Равно; + ЭлементОтбора.ПравоеЗначение = Ложь; + + ЭлементОтбора = ЭлементОформления.Отбор.Элементы.Добавить(Тип("ЭлементОтбораКомпоновкиДанных")); + ЭлементОтбора.ЛевоеЗначение = Новый ПолеКомпоновкиДанных("Макеты.ЭтоГруппа"); + ЭлементОтбора.ВидСравнения = ВидСравненияКомпоновкиДанных.Равно; + ЭлементОтбора.ПравоеЗначение = Ложь; + + ЭлементОформления.Оформление.УстановитьЗначениеПараметра("Отображать", Ложь); + ЭлементОформления.Оформление.УстановитьЗначениеПараметра("Видимость", Ложь); + КонецПроцедуры #КонецОбласти + diff --git a/SSL/src/InformationRegisters/ПользовательскиеМакетыПечати/ManagerModule.bsl b/SSL/src/InformationRegisters/ПользовательскиеМакетыПечати/ManagerModule.bsl index 9578dfa58..508108feb 100644 --- a/SSL/src/InformationRegisters/ПользовательскиеМакетыПечати/ManagerModule.bsl +++ b/SSL/src/InformationRegisters/ПользовательскиеМакетыПечати/ManagerModule.bsl @@ -112,6 +112,48 @@ КонецФункции +Процедура УстановитьИспользованиеИзмененныхМакетов(Макеты, ИспользуетсяИзмененный) Экспорт + + Для Каждого ИмяОбъектаМетаданныхМакета Из Макеты Цикл + ЧастиИмени = СтрРазделить(ИмяОбъектаМетаданныхМакета, "."); + ИмяМакета = ЧастиИмени[ЧастиИмени.ВГраница()]; + + ИмяВладельца = ""; + Для НомерЧасти = 0 По ЧастиИмени.ВГраница()-1 Цикл + Если Не ПустаяСтрока(ИмяВладельца) Тогда + ИмяВладельца = ИмяВладельца + "."; + КонецЕсли; + ИмяВладельца = ИмяВладельца + ЧастиИмени[НомерЧасти]; + КонецЦикла; + + ТекстЗапроса = + "ВЫБРАТЬ + | ПользовательскиеМакетыПечати.ИмяМакета КАК ИмяМакета + |ИЗ + | РегистрСведений.ПользовательскиеМакетыПечати КАК ПользовательскиеМакетыПечати + |ГДЕ + | ПользовательскиеМакетыПечати.Объект = &Объект + | И ПользовательскиеМакетыПечати.ИмяМакета ПОДОБНО &ИмяМакета"; + + Запрос = Новый Запрос(ТекстЗапроса); + Запрос.Параметры.Вставить("Объект", ИмяВладельца); + Запрос.Параметры.Вставить("ИмяМакета", ИмяМакета + "%"); + Выборка = Запрос.Выполнить().Выбрать(); + + Пока Выборка.Следующий() Цикл + Запись = РегистрыСведений.ПользовательскиеМакетыПечати.СоздатьМенеджерЗаписи(); + Запись.Объект = ИмяВладельца; + Запись.ИмяМакета = Выборка.ИмяМакета; + Запись.Прочитать(); + Если Запись.Выбран() Тогда + Запись.Использование = ИспользуетсяИзмененный; + Запись.Записать(); + КонецЕсли; + КонецЦикла; + КонецЦикла; + +КонецПроцедуры + #КонецОбласти #КонецЕсли diff --git a/SSL/src/InformationRegisters/ПользовательскиеМакетыПечати/ПользовательскиеМакетыПечати.mdo b/SSL/src/InformationRegisters/ПользовательскиеМакетыПечати/ПользовательскиеМакетыПечати.mdo index e2ef4e9c0..a8f208f82 100644 --- a/SSL/src/InformationRegisters/ПользовательскиеМакетыПечати/ПользовательскиеМакетыПечати.mdo +++ b/SSL/src/InformationRegisters/ПользовательскиеМакетыПечати/ПользовательскиеМакетыПечати.mdo @@ -98,6 +98,23 @@ Use + + УсловиеВидимости + + ru + Условие видимости + + + String + + + true + + + Use + Use + + ИмяМакета diff --git a/SSL/src/InformationRegisters/ПраваРолей/ManagerModule.bsl b/SSL/src/InformationRegisters/ПраваРолей/ManagerModule.bsl index ec58fae8b..814c9a3cb 100644 --- a/SSL/src/InformationRegisters/ПраваРолей/ManagerModule.bsl +++ b/SSL/src/InformationRegisters/ПраваРолей/ManagerModule.bsl @@ -163,10 +163,12 @@ // Массив - со значениями типа Строка, если ПолучитьМассивИмен = Истина. // Функция ВсеПоляОграниченияДоступаОбъектаМетаданных(ОбъектМетаданных, - ПолноеИмя, ОбъектИБ = Неопределено, ПолучитьМассивИмен = Ложь) + ПолноеИмя, ОбъектИБ = Неопределено, ПолучитьМассивИмен = Ложь) Экспорт + ИменаПолей = Новый Массив; ИменаКоллекций = Новый Массив; - ИмяТипа = Лев(ПолноеИмя, СтрНайти(ПолноеИмя, ".") - 1); + ЧастиИмени = СтрРазделить(ПолноеИмя, "."); + ИмяТипа = ЧастиИмени[0]; Если ИмяТипа = "Справочник" Тогда ИменаКоллекций.Добавить("Реквизиты"); @@ -219,10 +221,18 @@ ИменаКоллекций.Добавить("СтандартныеРеквизиты"); ИначеЕсли ИмяТипа = "РегистрРасчета" Тогда - ИменаКоллекций.Добавить("Измерения"); - ИменаКоллекций.Добавить("Ресурсы"); - ИменаКоллекций.Добавить("Реквизиты"); - ИменаКоллекций.Добавить("СтандартныеРеквизиты"); + Если ЧастиИмени.Количество() > 2 И ЧастиИмени[2] = "Перерасчет" Тогда + ДобавитьПолеОграниченияДоступаОбъектаМетаданных(ОбъектМетаданных, + "ОбъектПерерасчета", ИменаПолей, ОбъектИБ); + ДобавитьПолеОграниченияДоступаОбъектаМетаданных(ОбъектМетаданных, + "ВидРасчета", ИменаПолей, ОбъектИБ); + ИменаКоллекций.Добавить("Измерения"); + Иначе + ИменаКоллекций.Добавить("Измерения"); + ИменаКоллекций.Добавить("Ресурсы"); + ИменаКоллекций.Добавить("Реквизиты"); + ИменаКоллекций.Добавить("СтандартныеРеквизиты"); + КонецЕсли; ИначеЕсли ИмяТипа = "БизнесПроцесс" Тогда ИменаКоллекций.Добавить("Реквизиты"); @@ -236,7 +246,6 @@ ИменаКоллекций.Добавить("СтандартныеРеквизиты"); КонецЕсли; - ИменаПолей = Новый Массив; Если ОбъектИБ = Неопределено Тогда ТипХранилищеЗначения = Тип("ХранилищеЗначения"); Иначе @@ -245,7 +254,7 @@ Для каждого ИмяКоллекции Из ИменаКоллекций Цикл Если ИмяКоллекции = "ТабличныеЧасти" - ИЛИ ИмяКоллекции = "СтандартныеТабличныеЧасти" Тогда + Или ИмяКоллекции = "СтандартныеТабличныеЧасти" Тогда Для каждого ТабличнаяЧасть Из ОбъектМетаданных[ИмяКоллекции] Цикл ДобавитьПолеОграниченияДоступаОбъектаМетаданных(ОбъектМетаданных, ТабличнаяЧасть.Имя, ИменаПолей, ОбъектИБ); Реквизиты = ?(ИмяКоллекции = "ТабличныеЧасти", ТабличнаяЧасть.Реквизиты, ТабличнаяЧасть.СтандартныеРеквизиты); @@ -271,8 +280,13 @@ И СтрНайти(Поле.Имя, "Субконто") > 0 Тогда Продолжить; КонецЕсли; - Если ИмяКоллекции = "Графы" - Или Поле.Тип.СодержитТип(ТипХранилищеЗначения) Тогда + Если ИмяКоллекции = "Графы" Тогда + Продолжить; + КонецЕсли; + СвойствоТип = Новый Структура("Тип"); + ЗаполнитьЗначенияСвойств(СвойствоТип, Поле); + Если ТипЗнч(СвойствоТип.Тип) = Тип("ОписаниеТипов") + И СвойствоТип.Тип.СодержитТип(ТипХранилищеЗначения) Тогда Продолжить; КонецЕсли; Если (ИмяКоллекции = "Измерения" Или ИмяКоллекции = "Ресурсы") diff --git a/SSL/src/InformationRegisters/ПравилаДляОбменаДанными/Forms/ЗагрузитьПравилаСинхронизацииДанных/Form.form b/SSL/src/InformationRegisters/ПравилаДляОбменаДанными/Forms/ЗагрузитьПравилаСинхронизацииДанных/Form.form index f4cc45a64..a043ba184 100644 --- a/SSL/src/InformationRegisters/ПравилаДляОбменаДанными/Forms/ЗагрузитьПравилаСинхронизацииДанных/Form.form +++ b/SSL/src/InformationRegisters/ПравилаДляОбменаДанными/Forms/ЗагрузитьПравилаСинхронизацииДанных/Form.form @@ -217,7 +217,7 @@ true - CommonPicture.Информация + StdPicture.Information diff --git a/SSL/src/InformationRegisters/ПравилаДляОбменаДанными/Forms/ЗагрузитьПравилаСинхронизацииДанных/Module.bsl b/SSL/src/InformationRegisters/ПравилаДляОбменаДанными/Forms/ЗагрузитьПравилаСинхронизацииДанных/Module.bsl index bfb871cb9..f2a1f3a19 100644 --- a/SSL/src/InformationRegisters/ПравилаДляОбменаДанными/Forms/ЗагрузитьПравилаСинхронизацииДанных/Module.bsl +++ b/SSL/src/InformationRegisters/ПравилаДляОбменаДанными/Forms/ЗагрузитьПравилаСинхронизацииДанных/Module.bsl @@ -65,7 +65,7 @@ ДополнительныеПараметры.Вставить("ПользовательскиеНастройкиШаблонов", КаталогAppData() + "1C\1CEStart\1CEStart.cfg"); ДополнительныеПараметры.Вставить("РасположениеФайла", ""); - ТекстПредложения = НСтр("ru = 'Для открытия каталога установите расширение для работы с 1С:Предприятием.'"); + ТекстПредложения = НСтр("ru = 'Для открытия каталога необходимо необходимо установить расширение для работы с 1С:Предприятием.'"); Оповещение = Новый ОписаниеОповещения("ПослеПроверкиРасширенияРаботыСФайлами", ЭтотОбъект, ДополнительныеПараметры); ФайловаяСистемаКлиент.ПодключитьРасширениеДляРаботыСФайлами(Оповещение, ТекстПредложения); Иначе diff --git a/SSL/src/InformationRegisters/ПравилаДляОбменаДанными/Forms/ПравилаКонвертацииОбъектов/Form.form b/SSL/src/InformationRegisters/ПравилаДляОбменаДанными/Forms/ПравилаКонвертацииОбъектов/Form.form index a986bb7f1..69bd02ca5 100644 --- a/SSL/src/InformationRegisters/ПравилаДляОбменаДанными/Forms/ПравилаКонвертацииОбъектов/Form.form +++ b/SSL/src/InformationRegisters/ПравилаДляОбменаДанными/Forms/ПравилаКонвертацииОбъектов/Form.form @@ -1254,32 +1254,6 @@ UserCmds Auto - - ФормаЗаписать - 84 - true - true - - true - - - ФормаЗаписатьРасширеннаяПодсказка - 85 - Label - true - true - - Left - - - Form.StandardCommand.Write - Normal - Auto - true - true - UserCmds - Auto - ФормаПеречитать 50 @@ -1333,6 +1307,32 @@ UserCmds Auto + + ФормаЗаписатьПравила + 116 + true + true + + true + + + ФормаЗаписатьПравилаРасширеннаяПодсказка + 117 + Label + true + true + + Left + + + Form.Command.ЗаписатьПравила + Normal + Auto + true + true + UserCmds + Auto + СохранитьПравилаВФайл 20 @@ -1370,6 +1370,7 @@ Copy Delete Reread + Write WriteAndClose LockOwner true @@ -1522,6 +1523,28 @@ DontUse Auto + + ЗаписатьПравила + + <key>ru</key> + <value>Записать</value> + + 4 + + ru + Записать правила + + + true + + + + ЗаписатьПравила + + + Auto + Auto + @@ -1531,9 +1554,5 @@ AfterWrite ПослеЗаписи - - BeforeWrite - ПередЗаписью - diff --git a/SSL/src/InformationRegisters/ПравилаДляОбменаДанными/Forms/ПравилаКонвертацииОбъектов/Module.bsl b/SSL/src/InformationRegisters/ПравилаДляОбменаДанными/Forms/ПравилаКонвертацииОбъектов/Module.bsl index 1bd83cf4c..d813bb836 100644 --- a/SSL/src/InformationRegisters/ПравилаДляОбменаДанными/Forms/ПравилаКонвертацииОбъектов/Module.bsl +++ b/SSL/src/InformationRegisters/ПравилаДляОбменаДанными/Forms/ПравилаКонвертацииОбъектов/Module.bsl @@ -6,13 +6,6 @@ // https://creativecommons.org/licenses/by/4.0/legalcode /////////////////////////////////////////////////////////////////////////////////////////////////////// -#Область ОписаниеПеременных - -&НаКлиенте -Перем ВнешниеРесурсыРазрешены; - -#КонецОбласти - #Область ОбработчикиСобытийФормы &НаСервере @@ -36,38 +29,6 @@ КонецПроцедуры -&НаКлиенте -Процедура ПередЗаписью(Отказ, ПараметрыЗаписи) - - Если Не ПроверитьЗаполнениеНаКлиенте() Тогда - Отказ = Истина; - Возврат; - КонецЕсли; - - Если ВнешниеРесурсыРазрешены <> Истина Тогда - - ОповещениеОЗакрытии = Новый ОписаниеОповещения("РазрешитьВнешнийРесурсЗавершение", ЭтотОбъект, ПараметрыЗаписи); - Если ОбщегоНазначенияКлиент.ПодсистемаСуществует("СтандартныеПодсистемы.ПрофилиБезопасности") Тогда - Запросы = СоздатьЗапросНаИспользованиеВнешнихРесурсов(Запись); - МодульРаботаВБезопасномРежимеКлиент = ОбщегоНазначенияКлиент.ОбщийМодуль("РаботаВБезопасномРежимеКлиент"); - МодульРаботаВБезопасномРежимеКлиент.ПрименитьЗапросыНаИспользованиеВнешнихРесурсов(Запросы, ЭтотОбъект, ОповещениеОЗакрытии); - Иначе - ВыполнитьОбработкуОповещения(ОповещениеОЗакрытии, КодВозвратаДиалога.ОК); - КонецЕсли; - - Отказ = Истина; - Возврат; - - КонецЕсли; - ВнешниеРесурсыРазрешены = Ложь; - - Если ИсточникПравил = "ТиповыеИзКонфигурации" Тогда - // Из конфигурации - ВыполнитьЗагрузкуПравил(Неопределено, "", Ложь); - КонецЕсли; - -КонецПроцедуры - &НаКлиенте Функция ПроверитьЗаполнениеНаКлиенте() @@ -292,10 +253,26 @@ &НаКлиенте Процедура ЗаписатьИЗакрыть(Команда) + + Если Не ПроверитьЗаполнениеНаКлиенте() Тогда + Отказ = Истина; + КонецЕсли; ПараметрыЗаписи = Новый Структура; ПараметрыЗаписи.Вставить("ЗаписатьИЗакрыть"); - Записать(ПараметрыЗаписи); + РазрешитьВнешнийРесурс(ПараметрыЗаписи) + +КонецПроцедуры + +&НаКлиенте +Процедура ЗаписатьПравила(Команда) + + Если Не ПроверитьЗаполнениеНаКлиенте() Тогда + Отказ = Истина; + КонецЕсли; + + ПараметрыЗаписи = Новый Структура; + РазрешитьВнешнийРесурс(ПараметрыЗаписи); КонецПроцедуры @@ -503,12 +480,32 @@ КонецПроцедуры +&НаКлиенте +Процедура РазрешитьВнешнийРесурс(ПараметрыЗаписи); + + ОповещениеОЗакрытии = Новый ОписаниеОповещения("РазрешитьВнешнийРесурсЗавершение", ЭтотОбъект, ПараметрыЗаписи); + Если ОбщегоНазначенияКлиент.ПодсистемаСуществует("СтандартныеПодсистемы.ПрофилиБезопасности") Тогда + Запросы = СоздатьЗапросНаИспользованиеВнешнихРесурсов(Запись); + МодульРаботаВБезопасномРежимеКлиент = ОбщегоНазначенияКлиент.ОбщийМодуль("РаботаВБезопасномРежимеКлиент"); + МодульРаботаВБезопасномРежимеКлиент.ПрименитьЗапросыНаИспользованиеВнешнихРесурсов(Запросы, ЭтотОбъект, ОповещениеОЗакрытии); + Иначе + ВыполнитьОбработкуОповещения(ОповещениеОЗакрытии, КодВозвратаДиалога.ОК); + КонецЕсли; + +КонецПроцедуры + &НаКлиенте Процедура РазрешитьВнешнийРесурсЗавершение(Результат, ПараметрыЗаписи) Экспорт Если Результат = КодВозвратаДиалога.ОК Тогда - ВнешниеРесурсыРазрешены = Истина; + + Если ИсточникПравил = "ТиповыеИзКонфигурации" Тогда + // Из конфигурации + ВыполнитьЗагрузкуПравил(Неопределено, "", Ложь); + КонецЕсли; + Записать(ПараметрыЗаписи); + КонецЕсли; КонецПроцедуры @@ -523,4 +520,5 @@ КонецФункции + #КонецОбласти \ No newline at end of file diff --git a/SSL/src/InformationRegisters/ПравилаДляОбменаДанными/Forms/ПравилаРегистрацииОбъектов/Form.form b/SSL/src/InformationRegisters/ПравилаДляОбменаДанными/Forms/ПравилаРегистрацииОбъектов/Form.form index 7821b6c11..2c1d30192 100644 --- a/SSL/src/InformationRegisters/ПравилаДляОбменаДанными/Forms/ПравилаРегистрацииОбъектов/Form.form +++ b/SSL/src/InformationRegisters/ПравилаДляОбменаДанными/Forms/ПравилаРегистрацииОбъектов/Form.form @@ -134,8 +134,8 @@ ru Использовать типовые правила - - ТиповыеИзКонфигурации + + Enum.ИсточникиПравилДляОбменаДанными.EnumValue.МакетКонфигурации Vertical @@ -325,6 +325,215 @@ Auto + + ГруппаПравилаМенеджерТиповой + 74 + + ИсточникПравилМенеджерТиповой + 76 + true + true + + true + + + ИсточникПравил + + None + Button + + OnChange + ИсточникПравилПриИзменении + + + ИсточникПравилМенеджерТиповойРасширеннаяПодсказка + 78 + Label + true + true + + Left + + + + ИсточникПравилМенеджерТиповойКонтекстноеМеню + 77 + true + + RadioButtonField + Enter + true + Left + true + + 1 + + + ru + Использовать типовые правила + + + Enum.ИсточникиПравилДляОбменаДанными.EnumValue.МенеджерТиповой + + + Vertical + + + true + true + + true + + + <key>ru</key> + <value>Правила типовые</value> + + + ГруппаПравилаМенеджерТиповойРасширеннаяПодсказка + 75 + Label + true + true + + Left + + + UsualGroup + + HorizontalIfPossible + Auto + true + Auto + Auto + + + + ГруппаПравилаМенеджер + 91 + + ИсточникПравилМенеджер + 93 + true + true + + true + + + ИсточникПравил + + None + + OnChange + ИсточникПравилПриИзменении + + + ИсточникПравилМенеджерРасширеннаяПодсказка + 95 + Label + true + true + + Left + + + + ИсточникПравилМенеджерКонтекстноеМеню + 94 + true + + RadioButtonField + Enter + true + Left + true + + 1 + + + ru + Использовать пользовательский модуль: + + + Enum.ИсточникиПравилДляОбменаДанными.EnumValue.МенеджерПользовательский + + + Vertical + + + + ИмяМенеджераРегистрации + 111 + true + true + + true + + + Запись.ИмяМенеджераРегистрации + + None + + OnChange + ИмяМенеджераРегистрацииПриИзменении + + + ИмяМенеджераРегистрацииРасширеннаяПодсказка + 113 + Label + true + true + + Left + + + + ИмяМенеджераРегистрацииКонтекстноеМеню + 112 + true + + InputField + Enter + true + Left + true + + true + true + true + true + true + true + Normal + + + true + true + + true + + + <key>ru</key> + <value>Правила типовые</value> + + + ГруппаПравилаМенеджерРасширеннаяПодсказка + 92 + Label + true + true + + Left + + + UsualGroup + + HorizontalIfPossible + Auto + true + Auto + Auto + + ГруппаПравилаИзФайла 69 @@ -371,8 +580,8 @@ ru Загрузить из файла на компьютере: - - ЗагруженныеИзФайла + + Enum.ИсточникиПравилДляОбменаДанными.EnumValue.Файл Vertical @@ -643,32 +852,6 @@ UserCmds Auto - - ФормаЗаписать - 52 - true - true - - true - - - ФормаЗаписатьРасширеннаяПодсказка - 53 - Label - true - true - - Left - - - Form.StandardCommand.Write - Normal - Auto - true - true - UserCmds - Auto - ФормаПеречитать 54 @@ -696,6 +879,32 @@ Auto InAdditionalSubmenu + + ФормаЗаписатьПравила + 114 + true + true + + true + + + ФормаЗаписатьПравилаРасширеннаяПодсказка + 115 + Label + true + true + + Left + + + Form.Command.ЗаписатьПравила + Normal + Auto + true + true + UserCmds + Auto + ФормаСохранитьПравилаРегистрацииВФайл 58 @@ -731,6 +940,7 @@ Copy Delete + Write WriteAndClose LockOwner true @@ -782,8 +992,7 @@ 3 - String - + EnumRef.ИсточникиПравилДляОбменаДанными true @@ -883,6 +1092,28 @@ DontUse Auto + + ЗаписатьПравила + + <key>ru</key> + <value>Записать</value> + + 4 + + ru + Записать правила + + + true + + + + ЗаписатьПравила + + + Auto + Auto + @@ -892,9 +1123,5 @@ AfterWrite ПослеЗаписи - - BeforeWrite - ПередЗаписью - diff --git a/SSL/src/InformationRegisters/ПравилаДляОбменаДанными/Forms/ПравилаРегистрацииОбъектов/Module.bsl b/SSL/src/InformationRegisters/ПравилаДляОбменаДанными/Forms/ПравилаРегистрацииОбъектов/Module.bsl index b9bd1c66b..f2703825b 100644 --- a/SSL/src/InformationRegisters/ПравилаДляОбменаДанными/Forms/ПравилаРегистрацииОбъектов/Module.bsl +++ b/SSL/src/InformationRegisters/ПравилаДляОбменаДанными/Forms/ПравилаРегистрацииОбъектов/Module.bsl @@ -6,18 +6,11 @@ // https://creativecommons.org/licenses/by/4.0/legalcode /////////////////////////////////////////////////////////////////////////////////////////////////////// -#Область ОписаниеПеременных - -&НаКлиенте -Перем ВнешниеРесурсыРазрешены; - -#КонецОбласти - #Область ОбработчикиСобытийФормы &НаСервере Процедура ПриСозданииНаСервере(Отказ, СтандартнаяОбработка) - + ОбновитьСписокВыбораПлановОбмена(); ОбновитьСписокВыбораМакетаПравил(); @@ -28,34 +21,7 @@ СобытиеЖурналаРегистрацииЗагрузкаПравилДляОбменаДанными = ОбменДаннымиСервер.СобытиеЖурналаРегистрацииЗагрузкаПравилДляОбменаДанными(); - Элементы.ГруппаПланаОбмена.Видимость = ПустаяСтрока(Запись.ИмяПланаОбмена); - -КонецПроцедуры - -&НаКлиенте -Процедура ПередЗаписью(Отказ, ПараметрыЗаписи) - - Если ВнешниеРесурсыРазрешены <> Истина Тогда - - ОповещениеОЗакрытии = Новый ОписаниеОповещения("РазрешитьВнешнийРесурсЗавершение", ЭтотОбъект, ПараметрыЗаписи); - Если ОбщегоНазначенияКлиент.ПодсистемаСуществует("СтандартныеПодсистемы.ПрофилиБезопасности") Тогда - Запросы = СоздатьЗапросНаИспользованиеВнешнихРесурсов(Запись); - МодульРаботаВБезопасномРежимеКлиент = ОбщегоНазначенияКлиент.ОбщийМодуль("РаботаВБезопасномРежимеКлиент"); - МодульРаботаВБезопасномРежимеКлиент.ПрименитьЗапросыНаИспользованиеВнешнихРесурсов(Запросы, ЭтотОбъект, ОповещениеОЗакрытии); - Иначе - ВыполнитьОбработкуОповещения(ОповещениеОЗакрытии, КодВозвратаДиалога.ОК); - КонецЕсли; - - Отказ = Истина; - Возврат; - - КонецЕсли; - ВнешниеРесурсыРазрешены = Ложь; - - Если ИсточникПравил = "ТиповыеИзКонфигурации" Тогда - // Из конфигурации - ВыполнитьЗагрузкуПравил(Неопределено, "", Ложь); - КонецЕсли; + НастройкаЭлементовФормы(); КонецПроцедуры @@ -85,14 +51,25 @@ &НаКлиенте Процедура ИсточникПравилПриИзменении(Элемент) - Элементы.ИсточникФайл.Доступность = (ИсточникПравил = "ЗагруженныеИзФайла"); + Элементы.ИсточникФайл.Доступность = ИсточникПравил = ПредопределенноеЗначение("Перечисление.ИсточникиПравилДляОбменаДанными.Файл"); + + Если ИсточникПравил = ПредопределенноеЗначение("Перечисление.ИсточникиПравилДляОбменаДанными.МакетКонфигурации") Тогда - Если ИсточникПравил = "ТиповыеИзКонфигурации" Тогда - Запись.РежимОтладки = Ложь; - + КонецЕсли; + Элементы.ИмяМенеджераРегистрации.Доступность = ИсточникПравил = ПредопределенноеЗначение("Перечисление.ИсточникиПравилДляОбменаДанными.МенеджерПользовательский"); + + ОбновитьИнформациюОНезаписанныхПравилах(); + +КонецПроцедуры + +&НаКлиенте +Процедура ИмяМенеджераРегистрацииПриИзменении(Элемент) + + ОбновитьИнформациюОНезаписанныхПравилах(); + КонецПроцедуры #КонецОбласти @@ -156,7 +133,15 @@ ПараметрыЗаписи = Новый Структура; ПараметрыЗаписи.Вставить("ЗаписатьИЗакрыть"); - Записать(ПараметрыЗаписи); + РазрешитьВнешнийРесурс(ПараметрыЗаписи); + +КонецПроцедуры + +&НаКлиенте +Процедура ЗаписатьПравила(Команда) + + ПараметрыЗаписи = Новый Структура; + РазрешитьВнешнийРесурс(ПараметрыЗаписи) КонецПроцедуры @@ -226,12 +211,28 @@ &НаСервере Процедура ЗагрузитьПравилаНаСервере(Отказ, АдресВременногоХранилища, ИмяФайлаПравил, ЭтоАрхив) - Запись.ИсточникПравил = ?(ИсточникПравил = "ТиповыеИзКонфигурации", - Перечисления.ИсточникиПравилДляОбменаДанными.МакетКонфигурации, Перечисления.ИсточникиПравилДляОбменаДанными.Файл); + Запись.ИсточникПравил = ИсточникПравил; Объект = РеквизитФормыВЗначение("Запись"); - РегистрыСведений.ПравилаДляОбменаДанными.ЗагрузитьПравила(Отказ, Объект, АдресВременногоХранилища, ИмяФайлаПравил, ЭтоАрхив); + Если ИсточникПравил = Перечисления.ИсточникиПравилДляОбменаДанными.МакетКонфигурации + Или ИсточникПравил = Перечисления.ИсточникиПравилДляОбменаДанными.Файл Тогда + + РегистрыСведений.ПравилаДляОбменаДанными.ЗагрузитьПравила(Отказ, Объект, АдресВременногоХранилища, ИмяФайлаПравил, ЭтоАрхив); + + Иначе + + Объект.ИмяФайлаПравил = ""; + Объект.ПравилаЗачитанные = Неопределено; + + Если ИсточникПравил = Перечисления.ИсточникиПравилДляОбменаДанными.МенеджерТиповой Тогда + Объект.ИмяМенеджераРегистрации = ОбменДаннымиПовтИсп.ИмяМенеджераРегистрации(Объект.ИмяПланаОбмена); + КонецЕсли; + + Менеджер = ОбщегоНазначения.ОбщийМодуль(Объект.ИмяМенеджераРегистрации); + Объект.ИнформацияОПравилах = Менеджер.ИнформацияОПравилах(); + + КонецЕсли; Если Не Отказ Тогда @@ -269,29 +270,100 @@ Если Запись.ИсточникПравил = Перечисления.ИсточникиПравилДляОбменаДанными.Файл Тогда - ИнформацияОПравилах = НСтр("ru = 'Использование правил, загруженных из файла, - |может привести к ошибкам при переходе на новую версию программы. - | - |[ИнформацияОПравилах]'"); - - ИнформацияОПравилах = СтрЗаменить(ИнформацияОПравилах, "[ИнформацияОПравилах]", Запись.ИнформацияОПравилах); + ШаблонСтроки = НСтр("ru = 'Использование правил, загруженных из файла, + |может привести к ошибкам при переходе на новую версию программы. + | + |%1'"); + + ИначеЕсли Запись.ИсточникПравил = Перечисления.ИсточникиПравилДляОбменаДанными.МенеджерПользовательский Тогда + ШаблонСтроки = НСтр("ru = 'Использование правил, из пользовательского модуля, + |может привести к ошибкам при переходе на новую версию программы. + | + |%1'"); Иначе - ИнформацияОПравилах = Запись.ИнформацияОПравилах; + ШаблонСтроки = "%1"; КонецЕсли; + ИнформацияОПравилах = СтроковыеФункции.ФорматированнаяСтрока(ШаблонСтроки, Запись.ИнформацияОПравилах); + КонецПроцедуры +&НаСервере +Процедура ОбновитьИнформациюОНезаписанныхПравилах() + + Если ИсточникПравил = Запись.ИсточникПравил + И (ИсточникПравил = Перечисления.ИсточникиПравилДляОбменаДанными.МакетКонфигурации + ИЛИ ИсточникПравил = Перечисления.ИсточникиПравилДляОбменаДанными.Файл)Тогда + + ОбновитьИнформациюОПравилах(); + + ИначеЕсли ИсточникПравил = Перечисления.ИсточникиПравилДляОбменаДанными.МакетКонфигурации Тогда + + ИнформацияОПравилах = НСтр("ru = 'Информация о правилах будет доступна после записи'"); + + ИначеЕсли ИсточникПравил = Перечисления.ИсточникиПравилДляОбменаДанными.Файл Тогда + + ИнформацияОПравилах = НСтр("ru = 'Информация о правилах будет доступна после загрузки из файла'"); + + Иначе + + Если ИсточникПравил = Перечисления.ИсточникиПравилДляОбменаДанными.МенеджерТиповой Тогда + + ИмяМенеджераРегистрации = ОбменДаннымиПовтИсп.ИмяМенеджераРегистрации(Запись.ИмяПланаОбмена); + ШаблонСтроки = "%1"; + + ИначеЕсли ИсточникПравил = Перечисления.ИсточникиПравилДляОбменаДанными.МенеджерПользовательский Тогда + + ИмяМенеджераРегистрации = Запись.ИмяМенеджераРегистрации; + ШаблонСтроки = НСтр("ru = 'Использование правил, из пользовательского модуля, + |может привести к ошибкам при переходе на новую версию программы. + | + |%1'"); + + КонецЕсли; + + Попытка + + Менеджер = ОбщегоНазначения.ОбщийМодуль(ИмяМенеджераРегистрации); + ИнформацияОПравилах = СтроковыеФункции.ФорматированнаяСтрока(ШаблонСтроки, Менеджер.ИнформацияОПравилах()); + + Исключение + + ТекстСообщения = НСтр("ru = 'При получении информации о правилах регистрации произошла ошибка: + |%1'"); + ИнформацияОПравилах = СтроковыеФункции.ФорматированнаяСтрока(ТекстСообщения, ИнформацияОбОшибке().Описание); + + КонецПопытки; + + КонецЕсли; + +КонецПроцедуры + &НаСервере Процедура ОбновитьИсточникПравил() - ИсточникПравил = ?(Запись.ИсточникПравил = Перечисления.ИсточникиПравилДляОбменаДанными.МакетКонфигурации, - "ТиповыеИзКонфигурации", "ЗагруженныеИзФайла"); + ИсточникПравил = Запись.ИсточникПравил; КонецПроцедуры +&НаСервере +Процедура НастройкаЭлементовФормы() + + Элементы.ГруппаПланаОбмена.Видимость = ПустаяСтрока(Запись.ИмяПланаОбмена); + + Если ОбменДаннымиПовтИсп.ПравилаРегистрацииВМенеджере(Запись.ИмяПланаОбмена) Тогда + Элементы.ГруппаПравилаТиповые.Видимость = Ложь; + Элементы.ИмяМенеджераРегистрации.Доступность = ИсточникПравил = Перечисления.ИсточникиПравилДляОбменаДанными.МенеджерПользовательский; + Иначе + Элементы.ГруппаПравилаМенеджерТиповой.Видимость = Ложь; + Элементы.ГруппаПравилаМенеджер.Видимость = Ложь; + КонецЕсли; + +КонецПроцедуры + &НаКлиенте Процедура ВыполнитьЗагрузкуПравил(Знач АдресПомещенногоФайла, Знач ИмяФайла, Знач ЭтоАрхив) Отказ = Ложь; @@ -324,8 +396,8 @@ ОбщегоНазначенияКлиент.СообщитьПользователю(ТекстОшибки); Возврат; КонецЕсли; - - ИсточникПравил = "ЗагруженныеИзФайла"; + + ИсточникПравил = ПредопределенноеЗначение("Перечисление.ИсточникиПравилДляОбменаДанными.Файл"); // Успешно передали файл, загружаем на сервере. ЧастиИмени = ОбщегоНазначенияКлиентСервер.РазложитьПолноеИмяФайла(РезультатПомещенияФайлов.Имя); @@ -333,12 +405,32 @@ ВыполнитьЗагрузкуПравил(АдресПомещенногоФайла, ЧастиИмени.Имя, НРег(ЧастиИмени.Расширение) = ".zip"); КонецПроцедуры +&НаКлиенте +Процедура РазрешитьВнешнийРесурс(ПараметрыЗаписи); + + ОповещениеОЗакрытии = Новый ОписаниеОповещения("РазрешитьВнешнийРесурсЗавершение", ЭтотОбъект, ПараметрыЗаписи); + Если ОбщегоНазначенияКлиент.ПодсистемаСуществует("СтандартныеПодсистемы.ПрофилиБезопасности") Тогда + Запросы = СоздатьЗапросНаИспользованиеВнешнихРесурсов(Запись); + МодульРаботаВБезопасномРежимеКлиент = ОбщегоНазначенияКлиент.ОбщийМодуль("РаботаВБезопасномРежимеКлиент"); + МодульРаботаВБезопасномРежимеКлиент.ПрименитьЗапросыНаИспользованиеВнешнихРесурсов(Запросы, ЭтотОбъект, ОповещениеОЗакрытии); + Иначе + ВыполнитьОбработкуОповещения(ОповещениеОЗакрытии, КодВозвратаДиалога.ОК); + КонецЕсли; + +КонецПроцедуры + &НаКлиенте Процедура РазрешитьВнешнийРесурсЗавершение(Результат, ПараметрыЗаписи) Экспорт Если Результат = КодВозвратаДиалога.ОК Тогда - ВнешниеРесурсыРазрешены = Истина; + + Если ИсточникПравил = ПредопределенноеЗначение("Перечисление.ИсточникиПравилДляОбменаДанными.МакетКонфигурации") Тогда + // Из конфигурации + ВыполнитьЗагрузкуПравил(Неопределено, "", Ложь); + КонецЕсли; + Записать(ПараметрыЗаписи); + КонецЕсли; КонецПроцедуры diff --git a/SSL/src/InformationRegisters/ПравилаДляОбменаДанными/Forms/ФормаСписка/Form.form b/SSL/src/InformationRegisters/ПравилаДляОбменаДанными/Forms/ФормаСписка/Form.form index e50891497..7ad0f5322 100644 --- a/SSL/src/InformationRegisters/ПравилаДляОбменаДанными/Forms/ФормаСписка/Form.form +++ b/SSL/src/InformationRegisters/ПравилаДляОбменаДанными/Forms/ФормаСписка/Form.form @@ -36,6 +36,318 @@ Auto + + КоманднаяПанель + 42 + + ФормаГруппа3 + 24 + + ФормаИспользоватьТиповыеПравила + 40 + true + true + + true + + + ФормаИспользоватьТиповыеПравилаРасширеннаяПодсказка + 41 + Label + true + true + + Left + + + Form.Command.ИспользоватьТиповыеПравила + Normal + Auto + true + true + UserCmds + Auto + InAdditionalSubmenu + + + ФормаОбновитьВсеТиповыеПравила + 14 + true + true + + true + + + ФормаОбновитьВсеТиповыеПравилаExtendedTooltip + 27 + Label + true + true + + Left + + + Form.Command.ОбновитьВсеТиповыеПравила + Normal + Auto + true + true + UserCmds + Auto + InAdditionalSubmenu + + true + true + + true + + + <key>ru</key> + <value>Форма группа 3</value> + + + ФормаГруппа3ExtendedTooltip + 26 + Label + true + true + + Left + + + + + + ФормаГруппа1 + 15 + + ФормаНайти + 17 + true + true + + true + + + ФормаНайтиExtendedTooltip + 29 + Label + true + true + + Left + + + Form.Item.Список.StandardCommand.Find + Normal + Auto + true + true + UserCmds + Auto + InAdditionalSubmenu + + + ФормаОтменитьПоиск + 18 + true + true + + true + + + ФормаОтменитьПоискExtendedTooltip + 30 + Label + true + true + + Left + + + Form.Item.Список.StandardCommand.CancelSearch + Normal + Auto + true + true + UserCmds + Auto + InAdditionalSubmenu + + true + true + + true + + + <key>ru</key> + <value>Форма группа 1</value> + + + ФормаГруппа1ExtendedTooltip + 28 + Label + true + true + + Left + + + + + + ФормаГруппа2 + 16 + + ФормаОбновить + 21 + true + true + + true + + + ФормаОбновитьExtendedTooltip + 32 + Label + true + true + + Left + + + Form.Item.Список.StandardCommand.Refresh + Normal + Auto + true + true + UserCmds + Auto + + + ФормаНастройкаСписка + 19 + true + true + + true + + + ФормаНастройкаСпискаExtendedTooltip + 33 + Label + true + true + + Left + + + Form.Item.Список.StandardCommand.ListSettings + Normal + Auto + true + true + UserCmds + Auto + + + ФормаВывестиСписок + 20 + true + true + + true + + + ФормаВывестиСписокExtendedTooltip + 34 + Label + true + true + + Left + + + Form.Item.Список.StandardCommand.OutputList + Normal + Auto + true + true + UserCmds + Auto + + + ФормаКопироватьВБуферОбмена + 22 + true + true + + true + + + ФормаКопироватьВБуферОбменаExtendedTooltip + 35 + Label + true + true + + Left + + + Form.Item.Список.StandardCommand.CopyToClipboard + Normal + Auto + true + true + UserCmds + Auto + InAdditionalSubmenu + + true + true + + true + + + <key>ru</key> + <value>Форма группа 2</value> + + + ФормаГруппа2ExtendedTooltip + 31 + Label + true + true + + Left + + + + + true + true + + true + + + <key>ru</key> + <value>Командная панель</value> + + + КоманднаяПанельРасширеннаяПодсказка + 43 + Label + true + true + + Left + + + CommandBar + + Left + + Список 1 @@ -56,11 +368,6 @@ Copy Create Delete - DynamicListStandardSettings - FindByCurrentValue - ListSettings - LoadDynamicListSettings - SaveDynamicListSettings ИмяПланаОбмена 4 @@ -176,20 +483,21 @@ true + None СписокКоманднаяПанель 3 - ФормаИзменить - 23 + СписокИзменить + 57 true true true - ФормаИзменитьExtendedTooltip - 25 + СписокИзменитьРасширеннаяПодсказка + 58 Label true true @@ -204,294 +512,9 @@ true UserCmds Auto - InAdditionalSubmenu - - - ФормаГруппа3 - 24 - - ФормаИспользоватьТиповыеПравила - 40 - true - true - - true - - - ФормаИспользоватьТиповыеПравилаРасширеннаяПодсказка - 41 - Label - true - true - - Left - - - Form.Command.ИспользоватьТиповыеПравила - Normal - Auto - true - true - UserCmds - Auto - - - ФормаОбновитьВсеТиповыеПравила - 14 - true - true - - true - - - ФормаОбновитьВсеТиповыеПравилаExtendedTooltip - 27 - Label - true - true - - Left - - - Form.Command.ОбновитьВсеТиповыеПравила - Normal - Auto - true - true - UserCmds - Auto - InAdditionalSubmenu - - true - true - - true - - - <key>ru</key> - <value>Форма группа 3</value> - - - ФормаГруппа3ExtendedTooltip - 26 - Label - true - true - - Left - - - - - - ФормаГруппа1 - 15 - - ФормаНайти - 17 - true - true - - true - - - ФормаНайтиExtendedTooltip - 29 - Label - true - true - - Left - - - Form.Item.Список.StandardCommand.Find - Normal - Auto - true - true - UserCmds - Auto - InAdditionalSubmenu - - - ФормаОтменитьПоиск - 18 - true - true - - true - - - ФормаОтменитьПоискExtendedTooltip - 30 - Label - true - true - - Left - - - Form.Item.Список.StandardCommand.CancelSearch - Normal - Auto - true - true - UserCmds - Auto - InAdditionalSubmenu - - true - true - - true - - - <key>ru</key> - <value>Форма группа 1</value> - - - ФормаГруппа1ExtendedTooltip - 28 - Label - true - true - - Left - - - - - - ФормаГруппа2 - 16 - - ФормаОбновить - 21 - true - true - - true - - - ФормаОбновитьExtendedTooltip - 32 - Label - true - true - - Left - - - Form.Item.Список.StandardCommand.Refresh - Normal - Auto - true - true - UserCmds - Auto - - - ФормаНастройкаСписка - 19 - true - true - - true - - - ФормаНастройкаСпискаExtendedTooltip - 33 - Label - true - true - - Left - - - Form.Item.Список.StandardCommand.ChangeHistory - Normal - Auto - true - true - UserCmds - Auto - - - ФормаВывестиСписок - 20 - true - true - - true - - - ФормаВывестиСписокExtendedTooltip - 34 - Label - true - true - - Left - - - Form.Item.Список.StandardCommand.OutputList - Normal - Auto - true - true - UserCmds - Auto - - - ФормаКопироватьВБуферОбмена - 22 - true - true - - true - - - ФормаКопироватьВБуферОбменаExtendedTooltip - 35 - Label - true - true - - Left - - - Form.Item.Список.StandardCommand.CopyToClipboard - Normal - Auto - true - true - UserCmds - Auto - InAdditionalSubmenu - - true - true - - true - - - <key>ru</key> - <value>Форма группа 2</value> - - - ФормаГруппа2ExtendedTooltip - 31 - Label - true - true - - Left - - - + InCommandBar Left - true BeforeDeleteRow diff --git a/SSL/src/InformationRegisters/ПравилаДляОбменаДанными/ПравилаДляОбменаДанными.mdo b/SSL/src/InformationRegisters/ПравилаДляОбменаДанными/ПравилаДляОбменаДанными.mdo index ce9f2180c..bcb682a3e 100644 --- a/SSL/src/InformationRegisters/ПравилаДляОбменаДанными/ПравилаДляОбменаДанными.mdo +++ b/SSL/src/InformationRegisters/ПравилаДляОбменаДанными/ПравилаДляОбменаДанными.mdo @@ -423,6 +423,24 @@ Use + + ИмяМенеджераРегистрации + + ru + Имя менеджера регистрации + + + String + + 150 + + + + + Use + Use + + ИспользоватьФильтрВыборочнойРегистрацииОбъектов 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/ПрогрессОбновления/ПрогрессОбновления.mdo b/SSL/src/InformationRegisters/ПрогрессОбновления/ПрогрессОбновления.mdo new file mode 100644 index 000000000..5b73f2208 --- /dev/null +++ b/SSL/src/InformationRegisters/ПрогрессОбновления/ПрогрессОбновления.mdo @@ -0,0 +1,124 @@ + + + + + + + + + + + + ПрогрессОбновления + + ru + Прогресс обновления + + true + InDialog + + Use + Active + + Use + + + + + Use + LineNumber + + Use + + + + + Use + Recorder + + Use + + + + + Use + Period + + ShowError + Use + + + + Managed + + ОбъектовОбработано + + ru + Объектов обработано + + + Number + + 10 + + + + + Use + Use + + + + ИмяОбработчика + + ru + Имя обработчика + + + String + + 255 + + + + + Index + Use + Use + + true + + + ИнтервалЧас + + ru + Интервал час + + + Date + + + + + Index + Use + Use + + true + + + КлючЗаписи + + ru + Ключ записи + + + UUID + + + + Use + + true + + diff --git a/SSL/src/InformationRegisters/ПроцессыДляЗапуска/Forms/НастройкаОтложенногоСтартаПроцесса/Form.form b/SSL/src/InformationRegisters/ПроцессыДляЗапуска/Forms/НастройкаОтложенногоСтартаПроцесса/Form.form index 6ab8cc029..d9a9092d8 100644 --- a/SSL/src/InformationRegisters/ПроцессыДляЗапуска/Forms/НастройкаОтложенногоСтартаПроцесса/Form.form +++ b/SSL/src/InformationRegisters/ПроцессыДляЗапуска/Forms/НастройкаОтложенногоСтартаПроцесса/Form.form @@ -363,7 +363,7 @@ true - CommonPicture.Информация + StdPicture.Information @@ -561,7 +561,7 @@ true - CommonPicture.Информация + StdPicture.Information diff --git a/SSL/src/InformationRegisters/РазрешенияНаИспользованиеВнешнихРесурсов/ManagerModule.bsl b/SSL/src/InformationRegisters/РазрешенияНаИспользованиеВнешнихРесурсов/ManagerModule.bsl index 392f0b237..6bd06f5c5 100644 --- a/SSL/src/InformationRegisters/РазрешенияНаИспользованиеВнешнихРесурсов/ManagerModule.bsl +++ b/SSL/src/InformationRegisters/РазрешенияНаИспользованиеВнешнихРесурсов/ManagerModule.bsl @@ -163,12 +163,8 @@ Если Менеджер.Выбран() Тогда ВызватьИсключение СтроковыеФункцииКлиентСервер.ПодставитьПараметрыВСтроку( - НСтр("ru = 'Дублирование разрешений по ключевым полям: - |- ТипПрограммногоМодуля: %1 - |- ИдентификаторПрограммногоМодуля: %2 - |- ТипВладельца: %3 - |- ИдентификаторВладельца: %4 - |- КлючРазрешения: %5.'"), + НСтр("ru = 'Добавляемое разрешение уже существует: + |%1, %2, %3, %4, %5.'"), Строка(ТипПрограммногоМодуля), Строка(ИдентификаторПрограммногоМодуля), Строка(ТипВладельца), @@ -221,11 +217,7 @@ ВызватьИсключение СтроковыеФункцииКлиентСервер.ПодставитьПараметрыВСтроку( НСтр("ru = 'Позиция разрешений по ключам: - |- ТипПрограммногоМодуля: %1 - |- ИдентификаторПрограммногоМодуля: %2 - |- ТипВладельца: %3 - |- ИдентификаторВладельца: %4 - |- КлючРазрешения: %5.'"), + |%1, %2, %3, %4, %5.'"), Строка(ТипПрограммногоМодуля), Строка(ИдентификаторПрограммногоМодуля), Строка(ТипВладельца), @@ -240,11 +232,7 @@ ВызватьИсключение СтроковыеФункцииКлиентСервер.ПодставитьПараметрыВСтроку( НСтр("ru = 'Попытка удаления несуществующего разрешения: - |- ТипПрограммногоМодуля: %1 - |- ИдентификаторПрограммногоМодуля: %2 - |- ТипВладельца: %3 - |- ИдентификаторВладельца: %4 - |- КлючРазрешения: %5.'"), + |%1, %2, %3, %4, %5.'"), Строка(ТипПрограммногоМодуля), Строка(ИдентификаторПрограммногоМодуля), Строка(ТипВладельца), diff --git a/SSL/src/InformationRegisters/РезультатыОбменаДанными/Forms/ОтборПредупрежденийПоТипам/Form.form b/SSL/src/InformationRegisters/РезультатыОбменаДанными/Forms/ОтборПредупрежденийПоТипам/Form.form index 6e7cc2074..b06720a98 100644 --- a/SSL/src/InformationRegisters/РезультатыОбменаДанными/Forms/ОтборПредупрежденийПоТипам/Form.form +++ b/SSL/src/InformationRegisters/РезультатыОбменаДанными/Forms/ОтборПредупрежденийПоТипам/Form.form @@ -10,6 +10,40 @@ Отправка 24 + + АдминистративнаяОшибкаПриложения + 45 + true + true + + true + + + АдминистративнаяОшибкаПриложения + + Right + + АдминистративнаяОшибкаПриложенияРасширеннаяПодсказка + 47 + Label + true + true + + Left + + + + АдминистративнаяОшибкаПриложенияКонтекстноеМеню + 46 + true + + CheckBoxField + Enter + true + Left + true + + ОшибкаПроверкиПередОтправкойXTDO 19 @@ -593,7 +627,7 @@ НепринятыйПоДатеЗапретаОбъектНеСуществуетВБазе <key>ru</key> - <value>Непринятые по дате запрета (объект не существует)</value> + <value>Непринятый по дате запрета (объект не существует)</value> 4 @@ -702,6 +736,23 @@ true + + АдминистративнаяОшибкаПриложения + + <key>ru</key> + <value>Административная ошибка приложения</value> + + 11 + + Boolean + + + true + + + true + + ОК diff --git a/SSL/src/InformationRegisters/РезультатыОбменаДанными/Forms/ОтборПредупрежденийПоТипам/Module.bsl b/SSL/src/InformationRegisters/РезультатыОбменаДанными/Forms/ОтборПредупрежденийПоТипам/Module.bsl index 1dd94aefa..2f16a1560 100644 --- a/SSL/src/InformationRegisters/РезультатыОбменаДанными/Forms/ОтборПредупрежденийПоТипам/Module.bsl +++ b/SSL/src/InformationRegisters/РезультатыОбменаДанными/Forms/ОтборПредупрежденийПоТипам/Module.bsl @@ -50,6 +50,7 @@ Процедура ОК(Команда) СоответствиеРеквизитов = Новый Соответствие; + СоответствиеРеквизитов.Вставить("АдминистративнаяОшибкаПриложения", ПредопределенноеЗначение("Перечисление.ТипыПроблемОбменаДанными.АдминистративнаяОшибкаПриложения")); СоответствиеРеквизитов.Вставить("НезаполненныеРеквизиты", ПредопределенноеЗначение("Перечисление.ТипыПроблемОбменаДанными.НезаполненныеРеквизиты")); СоответствиеРеквизитов.Вставить("НепроведенныйДокумент", ПредопределенноеЗначение("Перечисление.ТипыПроблемОбменаДанными.НепроведенныйДокумент")); СоответствиеРеквизитов.Вставить("ОшибкаПроверкиПередОтправкойXTDO", ПредопределенноеЗначение("Перечисление.ТипыПроблемОбменаДанными.ОшибкаПроверкиСконвертированногоОбъекта")); @@ -83,6 +84,7 @@ &НаКлиенте Процедура Сбросить(Команда) + АдминистративнаяОшибкаПриложения = Ложь; НезаполненныеРеквизиты = Ложь; НепроведенныйДокумент = Ложь; ОшибкаПроверкиПередОтправкойXTDO = Ложь; @@ -109,6 +111,7 @@ КонецЕсли; СоответствиеРеквизитов = Новый Соответствие; + СоответствиеРеквизитов.Вставить(Перечисления.ТипыПроблемОбменаДанными.АдминистративнаяОшибкаПриложения, "АдминистративнаяОшибкаПриложения"); СоответствиеРеквизитов.Вставить(Перечисления.ТипыПроблемОбменаДанными.НезаполненныеРеквизиты, "НезаполненныеРеквизиты"); СоответствиеРеквизитов.Вставить(Перечисления.ТипыПроблемОбменаДанными.НепроведенныйДокумент, "НепроведенныйДокумент"); СоответствиеРеквизитов.Вставить(Перечисления.ТипыПроблемОбменаДанными.ОшибкаПроверкиСконвертированногоОбъекта, "ОшибкаПроверкиПередОтправкойXTDO"); diff --git a/SSL/src/InformationRegisters/РезультатыОбменаДанными/Forms/ПредупреждениеАдминистрированияПриложения/Form.form b/SSL/src/InformationRegisters/РезультатыОбменаДанными/Forms/ПредупреждениеАдминистрированияПриложения/Form.form new file mode 100644 index 000000000..2c270de52 --- /dev/null +++ b/SSL/src/InformationRegisters/РезультатыОбменаДанными/Forms/ПредупреждениеАдминистрированияПриложения/Form.form @@ -0,0 +1,536 @@ +<?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:Decoration"> + <name>ДекорацияКартинка</name> + <id>1</id> + <title> + <key>ru</key> + <value>Декорация картинка</value> + + true + true + + true + + ShowRight + + ДекорацияКартинкаРасширеннаяПодсказка + 3 + + <key>ru</key> + <value>Выполнение синхронизации не возможно. Ошибки такого характера носят технический характер, поэтому для решения проблемы просьба обратиться к администратору информационной базы или в службу поддержки.</value> + + Label + true + + Left + + + + ДекорацияКартинкаКонтекстноеМеню + 2 + true + + true + true + + + CommonPicture.Ошибка32 + + AsFileRef + + + + ДатаВозникновения + 23 + true + true + + true + + + ДатаВозникновения + + + ДатаВозникновенияРасширеннаяПодсказка + 25 + Label + true + true + + Left + + + + ДатаВозникновенияКонтекстноеМеню + 24 + true + + LabelField + Enter + true + Left + true + + 40 + true + true + + ru + ДЛФ=DDT + + + + + УзелИнформационнойБазы + 13 + true + true + + true + + + УзелИнформационнойБазы + + + УзелИнформационнойБазыРасширеннаяПодсказка + 15 + Label + true + true + + Left + + + + УзелИнформационнойБазыКонтекстноеМеню + 14 + true + + LabelField + Enter + true + Left + true + + true + true + true + + + + Описание + 4 + true + true + + true + + + Описание + + + ОписаниеРасширеннаяПодсказка + 6 + Label + true + true + + Left + + + + ОписаниеКонтекстноеМеню + 5 + true + + InputField + true + Enter + true + Left + true + + 9 + true + true + true + true + true + true + Normal + + + + КомментарийПредупреждения + 20 + true + true + + true + + + КомментарийПредупреждения + + + OnChange + КомментарийПредупрежденияПриИзменении + + + КомментарийПредупрежденияРасширеннаяПодсказка + 22 + Label + true + true + + Left + + + + КомментарийПредупрежденияКонтекстноеМеню + 21 + true + + InputField + Enter + true + Left + true + + true + true + true + true + true + true + true + Normal + + + + ГруппаСкрытьПредупреждение + 26 + + СкрытьПредупреждение + 28 + true + true + + true + + + СкрытьПредупреждение + + Right + Button + + OnChange + СкрытьПредупреждениеПриИзменении + + + СкрытьПредупреждениеРасширеннаяПодсказка + 30 + + <key>ru</key> + <value>Пользователь может самостоятельно определить, является ли текущее предупреждение проблемой. Если предупреждение более неактуально, можно выполнить команду "Скрыть из списка". После нажатия и сохранения предупреждение будет скрыто из общего списка.</value> + + Label + true + true + + Left + + + + СкрытьПредупреждениеКонтекстноеМеню + 29 + true + + CheckBoxField + Enter + true + Left + true + + + true + true + + true + + + <key>ru</key> + <value>Скрыть предупреждение</value> + + true + + ГруппаСкрытьПредупреждениеРасширеннаяПодсказка + 27 + Label + true + true + + Left + + + UsualGroup + + HorizontalIfPossible + Right + Auto + WeakSeparation + true + true + Auto + Auto + + + Bottom + true + + ФормаКоманднаяПанель + -1 + + ФормаОК + 16 + true + true + + true + + + ФормаОКРасширеннаяПодсказка + 17 + Label + true + true + + Left + + + Form.Command.ОК + Auto + true + true + true + UserCmds + Auto + + + ФормаОтмена + 18 + true + true + + true + + + ФормаОтменаРасширеннаяПодсказка + 19 + Label + true + true + + Left + + + Form.StandardCommand.Cancel + Normal + Auto + true + true + UserCmds + Auto + + Right + + + OnOpen + ПриОткрытии + + + OnCreateAtServer + ПриСозданииНаСервере + + 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 + + Boolean + + + true + + + true + + + + УзелИнформационнойБазы + + <key>ru</key> + <value>Синхронизация</value> + + 4 + + ExchangePlanRef + + + true + + + true + + + + ТипПредупреждения + 5 + + EnumRef.ТипыПроблемОбменаДанными + + + true + + + true + + + + ТребуетсяОбновлениеПризнакаСкрытьИзСписка + 6 + + Boolean + + + true + + + true + + + + КомментарийПредупреждения + + <key>ru</key> + <value>Комментарий администратора к предупреждению синхронизации</value> + + 7 + + String + + 1000 + + + + true + + + true + + + + ДатаВозникновения + + <key>ru</key> + <value>Дата возникновения</value> + + 8 + + Date + + + + true + + + true + + + + КлючУникальностиЗаписиРегистраСведений + 9 + + String + + 32 + + + + true + + + true + + + + ТребуетсяОбновлениеКомментария + 11 + + Boolean + + + true + + + true + + + + ОК + + <key>ru</key> + <value>ОК</value> + + 1 + + ru + ОК + + + true + + + + ОК + + + Auto + Auto + + + + + + diff --git a/SSL/src/InformationRegisters/РезультатыОбменаДанными/Forms/ПредупреждениеАдминистрированияПриложения/Module.bsl b/SSL/src/InformationRegisters/РезультатыОбменаДанными/Forms/ПредупреждениеАдминистрированияПриложения/Module.bsl new file mode 100644 index 000000000..cbb38aa50 --- /dev/null +++ b/SSL/src/InformationRegisters/РезультатыОбменаДанными/Forms/ПредупреждениеАдминистрированияПриложения/Module.bsl @@ -0,0 +1,134 @@ + +/////////////////////////////////////////////////////////////////////////////////////////////////////// +// Copyright (c) 2021, ООО 1С-Софт +// Все права защищены. Эта программа и сопроводительные материалы предоставляются +// в соответствии с условиями лицензии Attribution 4.0 International (CC BY 4.0) +// Текст лицензии доступен по ссылке: +// https://creativecommons.org/licenses/by/4.0/legalcode +/////////////////////////////////////////////////////////////////////////////////////////////////////// + +#Область ОбработчикиСобытийФормы + +&НаСервере +Процедура ПриСозданииНаСервере(Отказ, СтандартнаяОбработка) + + Параметры.Свойство("Описание", Описание); + Параметры.Свойство("ТипПредупреждения", ТипПредупреждения); + Параметры.Свойство("УзелИнформационнойБазы", УзелИнформационнойБазы); + Параметры.Свойство("СкрытьПредупреждение", СкрытьПредупреждение); + Параметры.Свойство("ДатаВозникновения", ДатаВозникновения); + Параметры.Свойство("КлючУникальности", КлючУникальностиЗаписиРегистраСведений); + Параметры.Свойство("КомментарийПредупреждения", КомментарийПредупреждения); + + ТребуетсяОбновлениеПризнакаСкрытьИзСписка = Ложь; + ТребуетсяОбновлениеКомментария = Ложь; + +КонецПроцедуры + +&НаКлиенте +Процедура ПриОткрытии(Отказ) + + ИзменитьКартинкуДекорации() + +КонецПроцедуры + +#КонецОбласти + +#Область ОбработчикиСобытийЭлементовШапкиФормы + +&НаКлиенте +Процедура СкрытьПредупреждениеПриИзменении(Элемент) + + ТребуетсяОбновлениеПризнакаСкрытьИзСписка = Истина; + + Если СкрытьПредупреждение Тогда + + Элементы.ДекорацияКартинка.Картинка = БиблиотекаКартинок.Информация32; + + Иначе + + Элементы.ДекорацияКартинка.Картинка = БиблиотекаКартинок.Ошибка32; + + КонецЕсли; + +КонецПроцедуры + +&НаКлиенте +Процедура КомментарийПредупрежденияПриИзменении(Элемент) + + ТребуетсяОбновлениеКомментария = Истина; + +КонецПроцедуры + +#КонецОбласти + +#Область ОбработчикиКомандФормы + +&НаКлиенте +Процедура ОК(Команда) + + ПередЗакрытиемНаСервере(); + + Если ТребуетсяОбновлениеПризнакаСкрытьИзСписка + ИЛИ ТребуетсяОбновлениеКомментария Тогда + + Закрыть(Новый Структура("ТребуетсяОбновлениеСписка", Истина)); + + Иначе + + Закрыть(); + + КонецЕсли; + +КонецПроцедуры + +#КонецОбласти + +#Область СлужебныеПроцедурыИФункции + +&НаКлиенте +Процедура ИзменитьКартинкуДекорации() + + Если СкрытьПредупреждение Тогда + + Элементы.ДекорацияКартинка.Картинка = БиблиотекаКартинок.Информация32; + + Иначе + + Элементы.ДекорацияКартинка.Картинка = БиблиотекаКартинок.Ошибка32; + + КонецЕсли; + +КонецПроцедуры + +&НаСервере +Процедура ПередЗакрытиемНаСервере() + + Если НЕ ТребуетсяОбновлениеПризнакаСкрытьИзСписка + И НЕ ТребуетсяОбновлениеКомментария Тогда + + Возврат; + + КонецЕсли; + + МенеджерЗаписи = РегистрыСведений.РезультатыОбменаДанными.СоздатьМенеджерЗаписи(); + МенеджерЗаписи.ТипПроблемы = ТипПредупреждения; + МенеджерЗаписи.УзелИнформационнойБазы = УзелИнформационнойБазы; + МенеджерЗаписи.КлючУникальности = КлючУникальностиЗаписиРегистраСведений; + + МенеджерЗаписи.Прочитать(); // читаем для сохранения реквизитов, которые не передаем на форму + Если НЕ МенеджерЗаписи.Выбран() Тогда + + // Сценарий: открыли карточку предупреждения, а параллельно поправили проблему + Возврат; + + КонецЕсли; + + МенеджерЗаписи.ДатаВозникновения = ДатаВозникновения; + МенеджерЗаписи.Комментарий = КомментарийПредупреждения; + МенеджерЗаписи.Пропущена = СкрытьПредупреждение; + МенеджерЗаписи.Записать(Истина); + +КонецПроцедуры + +#КонецОбласти diff --git a/SSL/src/InformationRegisters/РезультатыОбменаДанными/Forms/ПредупрежденияСинхронизаций/Form.form b/SSL/src/InformationRegisters/РезультатыОбменаДанными/Forms/ПредупрежденияСинхронизаций/Form.form index 81ffab029..4845aa81f 100644 --- a/SSL/src/InformationRegisters/РезультатыОбменаДанными/Forms/ПредупрежденияСинхронизаций/Form.form +++ b/SSL/src/InformationRegisters/РезультатыОбменаДанными/Forms/ПредупрежденияСинхронизаций/Form.form @@ -1893,7 +1893,8 @@ РегистрСведенийРезультатыОбменаДаннымиПереопределяемый.ТипПроблемы = ЗНАЧЕНИЕ(Перечисление.ТипыПроблемОбменаДанными.ОшибкаПроверкиСконвертированногоОбъекта) ТОГДА &ПроверкаПередОтправкой КОГДА - РегистрСведенийРезультатыОбменаДаннымиПереопределяемый.ТипПроблемы = ЗНАЧЕНИЕ(Перечисление.ТипыПроблемОбменаДанными.ОшибкаВыполненияКодаОбработчиковПриОтправкеДанных) + РегистрСведенийРезультатыОбменаДаннымиПереопределяемый.ТипПроблемы = ЗНАЧЕНИЕ(Перечисление.ТипыПроблемОбменаДанными.АдминистративнаяОшибкаПриложения) + ИЛИ РегистрСведенийРезультатыОбменаДаннымиПереопределяемый.ТипПроблемы = ЗНАЧЕНИЕ(Перечисление.ТипыПроблемОбменаДанными.ОшибкаВыполненияКодаОбработчиковПриОтправкеДанных) ТОГДА &ТехническаяОшибкаОтправка КОГДА РегистрСведенийРезультатыОбменаДаннымиПереопределяемый.ТипПроблемы = ЗНАЧЕНИЕ(Перечисление.ТипыПроблемОбменаДанными.ОшибкаВыполненияКодаОбработчиковПриПолученииДанных) diff --git a/SSL/src/InformationRegisters/РезультатыОбменаДанными/Forms/ПредупрежденияСинхронизаций/Module.bsl b/SSL/src/InformationRegisters/РезультатыОбменаДанными/Forms/ПредупрежденияСинхронизаций/Module.bsl index 6ee44c72d..cad8416f0 100644 --- a/SSL/src/InformationRegisters/РезультатыОбменаДанными/Forms/ПредупрежденияСинхронизаций/Module.bsl +++ b/SSL/src/InformationRegisters/РезультатыОбменаДанными/Forms/ПредупрежденияСинхронизаций/Module.bsl @@ -491,7 +491,11 @@ ОписаниеОповещения = Новый ОписаниеОповещения("ПослеЗакрытияКарточкиСПредупреждением", ЭтотОбъект); - Если ТипПредупреждения = ПредопределенноеЗначение("Перечисление.ТипыПроблемОбменаДанными.НезаполненныеРеквизиты") Тогда + Если ТипПредупреждения = ПредопределенноеЗначение("Перечисление.ТипыПроблемОбменаДанными.АдминистративнаяОшибкаПриложения") Тогда + + ОткрытьФорму("РегистрСведений.РезультатыОбменаДанными.Форма.ПредупреждениеАдминистрированияПриложения", ПараметрыОткрытия, ЭтотОбъект, , , , ОписаниеОповещения); + + ИначеЕсли ТипПредупреждения = ПредопределенноеЗначение("Перечисление.ТипыПроблемОбменаДанными.НезаполненныеРеквизиты") Тогда ОткрытьФорму("РегистрСведений.РезультатыОбменаДанными.Форма.ПредупреждениеНезаполненногоРеквизита", ПараметрыОткрытия, ЭтотОбъект, , , , ОписаниеОповещения); @@ -648,6 +652,7 @@ // Блокирующие предупреждения красным ТипыКритичныхПредупреждений = Новый СписокЗначений; + ТипыКритичныхПредупреждений.Добавить(Перечисления.ТипыПроблемОбменаДанными.АдминистративнаяОшибкаПриложения); ТипыКритичныхПредупреждений.Добавить(Перечисления.ТипыПроблемОбменаДанными.ОшибкаВыполненияКодаОбработчиковПриОтправкеДанных); ТипыКритичныхПредупреждений.Добавить(Перечисления.ТипыПроблемОбменаДанными.ОшибкаВыполненияКодаОбработчиковПриПолученииДанных); diff --git a/SSL/src/InformationRegisters/РезультатыОбменаДанными/Forms/УдалениеУстаревшихПредупреждений/Form.form b/SSL/src/InformationRegisters/РезультатыОбменаДанными/Forms/УдалениеУстаревшихПредупреждений/Form.form index ebb6369f1..310f4eca1 100644 --- a/SSL/src/InformationRegisters/РезультатыОбменаДанными/Forms/УдалениеУстаревшихПредупреждений/Form.form +++ b/SSL/src/InformationRegisters/РезультатыОбменаДанными/Forms/УдалениеУстаревшихПредупреждений/Form.form @@ -29,6 +29,8 @@ Label true true + true + true Left @@ -47,36 +49,6 @@ AsFileRef - - ДекорацияОтступ - 36 - true - true - - true - - - ДекорацияОтступРасширеннаяПодсказка - 38 - Label - true - true - - Left - - - - ДекорацияОтступКонтекстноеМеню - 37 - true - - Label - true - true - - Left - - Группа1 3 diff --git a/SSL/src/InformationRegisters/РезультатыОбменаДанными/Forms/УдалениеУстаревшихПредупреждений/Module.bsl b/SSL/src/InformationRegisters/РезультатыОбменаДанными/Forms/УдалениеУстаревшихПредупреждений/Module.bsl index a0041f27e..171165102 100644 --- a/SSL/src/InformationRegisters/РезультатыОбменаДанными/Forms/УдалениеУстаревшихПредупреждений/Module.bsl +++ b/SSL/src/InformationRegisters/РезультатыОбменаДанными/Forms/УдалениеУстаревшихПредупреждений/Module.bsl @@ -308,6 +308,7 @@ ОтборТипыПредупрежденийВерсий = Новый Массив; ЗначенияОбменов = Новый Массив; + ЗначенияОбменов.Добавить(Перечисления.ТипыПроблемОбменаДанными.АдминистративнаяОшибкаПриложения); ЗначенияОбменов.Добавить(Перечисления.ТипыПроблемОбменаДанными.ОшибкаПроверкиСконвертированногоОбъекта); ЗначенияОбменов.Добавить(Перечисления.ТипыПроблемОбменаДанными.ОшибкаВыполненияКодаОбработчиковПриОтправкеДанных); ЗначенияОбменов.Добавить(Перечисления.ТипыПроблемОбменаДанными.НепроведенныйДокумент); diff --git a/SSL/src/InformationRegisters/РезультатыОбменаДанными/ManagerModule.bsl b/SSL/src/InformationRegisters/РезультатыОбменаДанными/ManagerModule.bsl index b2e1a3944..e5e72014d 100644 --- a/SSL/src/InformationRegisters/РезультатыОбменаДанными/ManagerModule.bsl +++ b/SSL/src/InformationRegisters/РезультатыОбменаДанными/ManagerModule.bsl @@ -173,6 +173,28 @@ КонецПроцедуры +Процедура ЗарегистрироватьАдминистративнуюОшибку(УзелИнформационнойБазы, ОписаниеПредупреждения) Экспорт + + // У административных ошибок отсутствуют объекты данных, так как ошибки, как правило связаны, с информационной базой + // или областью данных. Например, область данных отмечена как Удаленная. + + ТипПроблемы = Перечисления.ТипыПроблемОбменаДанными.АдминистративнаяОшибкаПриложения; + + НаборЗаписейПредупреждения = СоздатьНаборЗаписей(); + НаборЗаписейПредупреждения.Отбор.ТипПроблемы.Установить(ТипПроблемы); + НаборЗаписейПредупреждения.Отбор.УзелИнформационнойБазы.Установить(УзелИнформационнойБазы); + + ЗаписьНабора = НаборЗаписейПредупреждения.Добавить(); + ЗаписьНабора.ТипПроблемы = ТипПроблемы; + ЗаписьНабора.УзелИнформационнойБазы = УзелИнформационнойБазы; + ЗаписьНабора.ДатаВозникновения = ТекущаяДатаСеанса(); + ЗаписьНабора.Причина = СокрЛП(ОписаниеПредупреждения); + ЗаписьНабора.Пропущена = Ложь; + + НаборЗаписейПредупреждения.Записать(Истина); + +КонецПроцедуры + Процедура ДобавитьЗаписьОРезультатахОбмена(ПараметрыЗаписи) Экспорт Перем ПроблемныйОбъект, УзелИнформационнойБазы, Причина, ТипПроблемы, МетаданныеОбъекта, ИдентификаторОбъектаМетаданных, Ссылка, ЗначенияОтборовНезависимогоРегистра; @@ -290,6 +312,7 @@ Процедура ОчиститьПроблемыПриОтправке(УзлыИнформационнойБазы = Неопределено) Экспорт ТипыПроблем = Новый Массив; + ТипыПроблем.Добавить(Перечисления.ТипыПроблемОбменаДанными.АдминистративнаяОшибкаПриложения); ТипыПроблем.Добавить(Перечисления.ТипыПроблемОбменаДанными.ОшибкаПроверкиСконвертированногоОбъекта); ТипыПроблем.Добавить(Перечисления.ТипыПроблемОбменаДанными.ОшибкаВыполненияКодаОбработчиковПриОтправкеДанных); @@ -512,7 +535,8 @@ |ГДЕ | НЕ РезультатыОбменаДанными.Пропущена | И РезультатыОбменаДанными.УзелИнформационнойБазы В (&УзлыСинхронизации) - | И РезультатыОбменаДанными.ТипПроблемы В (ЗНАЧЕНИЕ(Перечисление.ТипыПроблемОбменаДанными.ОшибкаВыполненияКодаОбработчиковПриОтправкеДанных), + | И РезультатыОбменаДанными.ТипПроблемы В (ЗНАЧЕНИЕ(Перечисление.ТипыПроблемОбменаДанными.АдминистративнаяОшибкаПриложения), + | ЗНАЧЕНИЕ(Перечисление.ТипыПроблемОбменаДанными.ОшибкаВыполненияКодаОбработчиковПриОтправкеДанных), | ЗНАЧЕНИЕ(Перечисление.ТипыПроблемОбменаДанными.ОшибкаПроверкиСконвертированногоОбъекта)); | |////////////////////////////////////////////////////////////// @@ -718,15 +742,23 @@ КонецПроцедуры -Процедура ПрогрессУдалениеПредупрежденийСинхронизации(Знач ТекущийШаг, Максимум) +Процедура ПрогрессУдалениеПредупрежденийСинхронизации(Знач ТекущийШаг, Максимум, ИтераторВыборки = 0) ТекущийШаг = ?(ТекущийШаг = 0, 1, ТекущийШаг); - Шаблон = НСтр("ru = 'Выполнено итераций %1 из %2'", ОбщегоНазначения.КодОсновногоЯзыка()); - ТекстПрогресса = СтрШаблон(Шаблон, ТекущийШаг, Максимум); + Если ИтераторВыборки = 0 Тогда + + Шаблон = НСтр("ru = 'Выполнено итераций %1 из %2'", ОбщегоНазначения.КодОсновногоЯзыка()); + ТекстПрогресса = СтрШаблон(Шаблон, ТекущийШаг, Максимум); + + Иначе + + Шаблон = НСтр("ru = 'Выполнено итераций %1 из %2 (%3)'", ОбщегоНазначения.КодОсновногоЯзыка()); + ТекстПрогресса = СтрШаблон(Шаблон, ТекущийШаг, Максимум, ИтераторВыборки); + + КонецЕсли; ПроцентВыполнения = ОКР(ТекущийШаг * 100 / Максимум, 0); - ДлительныеОперации.СообщитьПрогресс(ПроцентВыполнения, ТекстПрогресса); КонецПроцедуры @@ -831,7 +863,7 @@ КонецЕсли; - ПрогрессУдалениеПредупрежденийСинхронизации(ПараметрыУдаления.КоличествоОперацийТекущийШаг, ПараметрыУдаления.КоличествоОперацийМаксимум); + ПрогрессУдалениеПредупрежденийСинхронизации(ПараметрыУдаления.КоличествоОперацийТекущийШаг, ПараметрыУдаления.КоличествоОперацийМаксимум, ИтераторВыборки); ЗафиксироватьТранзакцию(); diff --git a/SSL/src/InformationRegisters/РезультатыОбменаДанными/РезультатыОбменаДанными.mdo b/SSL/src/InformationRegisters/РезультатыОбменаДанными/РезультатыОбменаДанными.mdo index e9261c218..4a675d228 100644 --- a/SSL/src/InformationRegisters/РезультатыОбменаДанными/РезультатыОбменаДанными.mdo +++ b/SSL/src/InformationRegisters/РезультатыОбменаДанными/РезультатыОбменаДанными.mdo @@ -339,17 +339,12 @@ true - - Форма + + ОбработкаПредупрежденийКоллизии ru - Форма + Обработка предупреждений коллизии - - - ru - - PersonalComputer MobileDevice @@ -362,15 +357,6 @@ PersonalComputer MobileDevice - - ОбработкаПредупрежденийКоллизии - - ru - Обработка предупреждений коллизии - - PersonalComputer - MobileDevice - ОбработкаПредупрежденийПроведения @@ -398,6 +384,24 @@ PersonalComputer MobileDevice + + ПредупреждениеАдминистрированияПриложения + + ru + Предупреждение администрирования приложения + + PersonalComputer + MobileDevice + + + ПредупреждениеКонвертацииОбъектаПриОтправке + + ru + Предупреждение конвертации объекта при отправке + + PersonalComputer + MobileDevice + ПредупреждениеНезаполненногоРеквизита @@ -416,15 +420,6 @@ PersonalComputer MobileDevice - - ПредупрежденияОбработчиковОтправкиПолучения - - ru - Предупреждения обработчиков отправки/получения - - PersonalComputer - MobileDevice - ПредупреждениеОКоллизии @@ -443,11 +438,11 @@ PersonalComputer MobileDevice - - ПредупреждениеКонвертацииОбъектаПриОтправке + + ПредупрежденияОбработчиковОтправкиПолучения ru - Предупреждение конвертации объекта при отправке + Предупреждения обработчиков отправки/получения PersonalComputer MobileDevice @@ -470,4 +465,18 @@ PersonalComputer MobileDevice + + Форма + + ru + Форма + + + + ru + + + PersonalComputer + MobileDevice + diff --git a/SSL/src/InformationRegisters/РезультатыПроверкиУчета/ManagerModule.bsl b/SSL/src/InformationRegisters/РезультатыПроверкиУчета/ManagerModule.bsl index e6c178399..fd0f2d659 100644 --- a/SSL/src/InformationRegisters/РезультатыПроверкиУчета/ManagerModule.bsl +++ b/SSL/src/InformationRegisters/РезультатыПроверкиУчета/ManagerModule.bsl @@ -82,7 +82,6 @@ МетаданныеРегистра = Метаданные.РегистрыСведений.РезультатыПроверкиУчета; ПолноеИмяРегистра = МетаданныеРегистра.ПолноеИмя(); - ПредставлениеРегистра = МетаданныеРегистра.Представление(); ПредставлениеОтбора = НСтр("ru = 'Проблемный объект = ""%1"" |Правило проверки = ""%2"" |Вид проверки = ""%3"" @@ -138,9 +137,7 @@ КонецЦикла; ОбновлениеИнформационнойБазы.ЗаписатьНаборЗаписей(НаборЗаписей); - ОбъектовОбработано = ОбъектовОбработано + 1; - ЗафиксироватьТранзакцию(); Исключение @@ -148,11 +145,9 @@ ОтменитьТранзакцию(); ПроблемныхОбъектов = ПроблемныхОбъектов + 1; - ТекстСообщения = СтроковыеФункцииКлиентСервер.ПодставитьПараметрыВСтроку( - НСтр("ru = 'Не удалось обработать набор записей регистра ""%1"" с отбором %2 по причине: - |%3'"), ПредставлениеРегистра, ПредставлениеОтбора, ПодробноеПредставлениеОшибки(ИнформацияОбОшибке())); - + НСтр("ru = 'Не удалось обработать результаты проверки ведения учета с отбором %2 по причине: + |%3'"), ПредставлениеОтбора, ПодробноеПредставлениеОшибки(ИнформацияОбОшибке())); ЗаписьЖурналаРегистрации(ОбновлениеИнформационнойБазы.СобытиеЖурналаРегистрации(), УровеньЖурналаРегистрации.Предупреждение, МетаданныеРегистра, , ТекстСообщения); @@ -166,15 +161,15 @@ Если ОбъектовОбработано = 0 И ПроблемныхОбъектов <> 0 Тогда ТекстСообщения = СтроковыеФункцииКлиентСервер.ПодставитьПараметрыВСтроку( - НСтр("ru = 'Процедуре РегистрыСведений.РезультатыПроверкиУчета.ОбработатьДанныеДляПереходаНаНовуюВерсию не удалось обработать некоторые записи проблемных объектов (пропущены): %1'"), + НСтр("ru = 'Не удалось обработать некоторые результаты проверки ведения учета (пропущены): %1'"), ПроблемныхОбъектов); ВызватьИсключение ТекстСообщения; Иначе - ЗаписьЖурналаРегистрации(ОбновлениеИнформационнойБазы.СобытиеЖурналаРегистрации(), УровеньЖурналаРегистрации.Информация, - , , + ЗаписьЖурналаРегистрации(ОбновлениеИнформационнойБазы.СобытиеЖурналаРегистрации(), + УровеньЖурналаРегистрации.Информация, Метаданные.РегистрыСведений.РезультатыПроверкиУчета, , СтроковыеФункцииКлиентСервер.ПодставитьПараметрыВСтроку( - НСтр("ru = 'Процедура РегистрыСведений.НаличиеФайлов.ОбработатьДанныеДляПереходаНаНовуюВерсию обработала очередную порцию проблемных объектов: %1'"), - ОбъектовОбработано)); + НСтр("ru = 'Обработана очередная порция результатов проверки ведения учета: %1'"), + ОбъектовОбработано)); КонецЕсли; Параметры.ОбработкаЗавершена = ОбработкаЗавершена; diff --git a/SSL/src/InformationRegisters/СведенияОФайлах/ManagerModule.bsl b/SSL/src/InformationRegisters/СведенияОФайлах/ManagerModule.bsl index 9d6b753f4..d238ded44 100644 --- a/SSL/src/InformationRegisters/СведенияОФайлах/ManagerModule.bsl +++ b/SSL/src/InformationRegisters/СведенияОФайлах/ManagerModule.bsl @@ -97,7 +97,7 @@ ОтменитьТранзакцию(); ПроблемныхОбъектов = ПроблемныхОбъектов + 1; ТекстСообщения = СтроковыеФункцииКлиентСервер.ПодставитьПараметрыВСтроку( - НСтр("ru = 'Не удалось обработать тип хранения файла: %1 по причине: + НСтр("ru = 'Не удалось обработать сведения о файле %1 по причине: |%2'"), Строка.Файл, ПодробноеПредставлениеОшибки(ИнформацияОбОшибке())); ЗаписьЖурналаРегистрации(ОбновлениеИнформационнойБазы.СобытиеЖурналаРегистрации(), УровеньЖурналаРегистрации.Предупреждение, @@ -110,14 +110,14 @@ Если ОбъектовОбработано = 0 И ПроблемныхОбъектов <> 0 Тогда ТекстСообщения = СтроковыеФункцииКлиентСервер.ПодставитьПараметрыВСтроку( - НСтр("ru = 'Процедуре РегистрыСведений.СведенияОФайлах.ОбработатьДанныеДляПереходаНаНовуюВерсию не удалось обработать некоторые файлы (пропущены): %1'"), + НСтр("ru = 'Не удалось обработать некоторые сведения о файлах (пропущены): %1'"), ПроблемныхОбъектов); ВызватьИсключение ТекстСообщения; Иначе ЗаписьЖурналаРегистрации(ОбновлениеИнформационнойБазы.СобытиеЖурналаРегистрации(), УровеньЖурналаРегистрации.Информация, - Справочники.Файлы,, + Метаданные.Справочники.Файлы,, СтроковыеФункцииКлиентСервер.ПодставитьПараметрыВСтроку( - НСтр("ru = 'Процедура РегистрыСведений.СведенияОФайлах.ОбработатьДанныеДляПереходаНаНовуюВерсию обработала очередную порцию файлов: %1'"), + НСтр("ru = 'Обработана очередная порция сведений о файлах: %1'"), ОбъектовОбработано)); КонецЕсли; diff --git a/SSL/src/InformationRegisters/СостоянияОригиналовПервичныхДокументов/Forms/ИзменениеСостоянийОригиналовПервичныхДокументов/Form.form b/SSL/src/InformationRegisters/СостоянияОригиналовПервичныхДокументов/Forms/ИзменениеСостоянийОригиналовПервичныхДокументов/Form.form index 650e57ca0..77dab5057 100644 --- a/SSL/src/InformationRegisters/СостоянияОригиналовПервичныхДокументов/Forms/ИзменениеСостоянийОригиналовПервичныхДокументов/Form.form +++ b/SSL/src/InformationRegisters/СостоянияОригиналовПервичныхДокументов/Forms/ИзменениеСостоянийОригиналовПервичныхДокументов/Form.form @@ -981,6 +981,7 @@ true InputField + true Enter true Left @@ -1022,6 +1023,7 @@ true InputField + true Enter true Left diff --git a/SSL/src/InformationRegisters/СостоянияОригиналовПервичныхДокументов/Forms/ИзменениеСостоянийОригиналовПервичныхДокументов/Module.bsl b/SSL/src/InformationRegisters/СостоянияОригиналовПервичныхДокументов/Forms/ИзменениеСостоянийОригиналовПервичныхДокументов/Module.bsl index 4463ec706..edba6e53d 100644 --- a/SSL/src/InformationRegisters/СостоянияОригиналовПервичныхДокументов/Forms/ИзменениеСостоянийОригиналовПервичныхДокументов/Module.bsl +++ b/SSL/src/InformationRegisters/СостоянияОригиналовПервичныхДокументов/Forms/ИзменениеСостоянийОригиналовПервичныхДокументов/Module.bsl @@ -16,8 +16,8 @@ ЗаполнитьСписокПечатныхФормПоСсылке(); - Если Параметры.Свойство("Ссылка") Тогда - Запись.Владелец = Параметры.Ссылка; + Если Параметры.Свойство("ДокументСсылка") Тогда + Запись.Владелец = Параметры.ДокументСсылка; ФильтрПечатныхФорм = "Все"; Элементы.НадписьПредупреждение.Заголовок = НСтр("ru='Состояние оригинала документа будет установлено по печатным формам'"); ИначеЕсли КомплектПечатныхФорм.Количество()= 0 Тогда @@ -341,13 +341,14 @@ МодульФизическиеЛицаКлиентСервер = Неопределено; // Инициализация переменной для международной версии Для Каждого Сотрудник Из Запись.Владелец[ТабличнаяЧасть] Цикл - ФИО = Сотрудник.Сотрудник.Наименование; + СотрудникИзТЧ = Сотрудник.Сотрудник; // СправочникСсылка - + ФИО = СотрудникИзТЧ.Наименование; // Локализация МодульФизическиеЛицаКлиентСервер = ОбщегоНазначения.ОбщийМодуль("ФизическиеЛицаКлиентСервер"); Если МодульФизическиеЛицаКлиентСервер <> Неопределено Тогда - ФИО = МодульФизическиеЛицаКлиентСервер.ФамилияИнициалы(Сотрудник.Сотрудник.Наименование); + ФИО = МодульФизическиеЛицаКлиентСервер.ФамилияИнициалы(СотрудникИзТЧ.Наименование); Иначе - ФИО = Сотрудник.Сотрудник.Наименование; + ФИО = СотрудникИзТЧ.Наименование; КонецЕсли; // Конец Локализация Для Каждого ТекСтрока Из СписокПечатныхФорм Цикл @@ -357,15 +358,15 @@ НоваяСтрока.Представление = СтроковыеФункцииКлиентСервер.ВставитьПараметрыВСтроку(НСтр("ru='[Представление] [ФИО]'"), Значения); НоваяСтрока.Картинка = 1; НоваяСтрока.ОригиналПолученКартинка = 0; - НоваяСтрока.Сотрудник = Сотрудник.Сотрудник; + НоваяСтрока.Сотрудник = СотрудникИзТЧ; КонецЦикла; КонецЦикла; Если ТаблицаКоманд.Количество() > 0 Тогда Для Каждого Сотрудник Из Запись.Владелец[ТабличнаяЧасть] Цикл Если МодульФизическиеЛицаКлиентСервер <> Неопределено Тогда - ФИО = МодульФизическиеЛицаКлиентСервер.ФамилияИнициалы(Сотрудник.Сотрудник.Наименование); + ФИО = МодульФизическиеЛицаКлиентСервер.ФамилияИнициалы(СотрудникИзТЧ.Наименование); Иначе - ФИО = Сотрудник.Сотрудник.Наименование; + ФИО = СотрудникИзТЧ.Наименование; КонецЕсли; Для Каждого ТекСтрока Из ТаблицаКоманд Цикл Значения = Новый Структура("Представление, ФИО", ТекСтрока.Представление,ФИО); @@ -375,7 +376,7 @@ НоваяСтрока.Представление = СтроковыеФункцииКлиентСервер.ВставитьПараметрыВСтроку(НСтр("ru='[Представление] [ФИО]'"), Значения); НоваяСтрока.Картинка = 1; НоваяСтрока.ОригиналПолученКартинка = 0; - НоваяСтрока.Сотрудник = Сотрудник.Сотрудник; + НоваяСтрока.Сотрудник = СотрудникИзТЧ; КонецЕсли; КонецЦикла; КонецЦикла; diff --git a/SSL/src/InformationRegisters/СтатистикаКонфигурации/ManagerModule.bsl b/SSL/src/InformationRegisters/СтатистикаКонфигурации/ManagerModule.bsl index c77d60b9c..8595974d5 100644 --- a/SSL/src/InformationRegisters/СтатистикаКонфигурации/ManagerModule.bsl +++ b/SSL/src/InformationRegisters/СтатистикаКонфигурации/ManagerModule.bsl @@ -389,20 +389,19 @@ Попытка Если БазоваяФункциональностьВМоделиСервисаСуществует Тогда - МодульРаботаВМоделиСервиса.УстановитьРазделениеСеанса(Истина, Выборка.ОбластьДанных); + МодульРаботаВМоделиСервиса.ВойтиВОбластьДанных(Выборка.ОбластьДанных); КонецЕсли; Исключение Инфо = ИнформацияОбОшибке(); - ЗаписьЖурналаРегистрации(НСтр("ru = 'СтатистикаКонфигурации'", ОбщегоНазначения.КодОсновногоЯзыка()), - УровеньЖурналаРегистрации.Ошибка, - ,, + ЗаписьЖурналаРегистрации(НСтр("ru = 'Центр мониторинга'", ОбщегоНазначения.КодОсновногоЯзыка()), + УровеньЖурналаРегистрации.Ошибка,,, НСтр("ru = 'Не удалось установить разделение сеанса. Область данных'") + " = " + Формат(Выборка.ОбластьДанных, "ЧГ=0") - +Символы.ПС + ПодробноеПредставлениеОшибки(Инфо)); + + Символы.ПС + ПодробноеПредставлениеОшибки(Инфо)); Если БазоваяФункциональностьВМоделиСервисаСуществует Тогда - МодульРаботаВМоделиСервиса.УстановитьРазделениеСеанса(Ложь); + МодульРаботаВМоделиСервиса.ВыйтиИзОбластиДанных(); КонецЕсли; Продолжить; @@ -412,7 +411,7 @@ Записать(СтатистикаКонфигурации, ОбластьДанныхСсылка); Если БазоваяФункциональностьВМоделиСервисаСуществует Тогда - МодульРаботаВМоделиСервиса.УстановитьРазделениеСеанса(Ложь); + МодульРаботаВМоделиСервиса.ВыйтиИзОбластиДанных(); КонецЕсли; КонецЕсли; diff --git a/SSL/src/InformationRegisters/ЭлектронныеПодписи/ManagerModule.bsl b/SSL/src/InformationRegisters/ЭлектронныеПодписи/ManagerModule.bsl index 08027c375..af80e8cba 100644 --- a/SSL/src/InformationRegisters/ЭлектронныеПодписи/ManagerModule.bsl +++ b/SSL/src/InformationRegisters/ЭлектронныеПодписи/ManagerModule.bsl @@ -79,10 +79,8 @@ Выборка.ПодписанныйОбъект, Выборка.ПорядковыйНомер); КлючЗаписи = РегистрыСведений.ЭлектронныеПодписи.СоздатьКлючЗаписи(СвойстваКлюча); ТекстСообщения = СтроковыеФункцииКлиентСервер.ПодставитьПараметрыВСтроку( - НСтр("ru = 'Не удалось обработать запись регистра - |%1 - |по причине: - |%2'"), + НСтр("ru = 'Не удалось обработать запись регистра %1 по причине: + |%2'"), ПолучитьНавигационнуюСсылку(КлючЗаписи), ПодробноеПредставлениеОшибки(ИнформацияОбОшибке)); ЗаписьЖурналаРегистрации( @@ -97,7 +95,7 @@ ОбработкаЗавершена = Ложь; КонецЕсли; - ИмяПроцедуры = ПолноеИмяРегистра + ".ОбработатьДанныеДляПереходаНаНовуюВерсию"; + ИмяПроцедуры = ПолноеИмяРегистра + "." + "ОбработатьДанныеДляПереходаНаНовуюВерсию"; Если Обработано = 0 И Проблемных <> 0 Тогда ТекстСообщения = СтроковыеФункцииКлиентСервер.ПодставитьПараметрыВСтроку( @@ -109,7 +107,7 @@ ЗаписьЖурналаРегистрации( ОбновлениеИнформационнойБазы.СобытиеЖурналаРегистрации(), - УровеньЖурналаРегистрации.Информация, , , + УровеньЖурналаРегистрации.Информация, МетаданныеРегистра, , СтроковыеФункцииКлиентСервер.ПодставитьПараметрыВСтроку( НСтр("ru = 'Процедура %1 обработала очередную порцию записей: %2'"), ИмяПроцедуры, diff --git a/SSL/src/Reports/АнализЖурналаРегистрации/Templates/ПродолжительностьРаботыРегламентныхЗаданий/Template.mxlx b/SSL/src/Reports/АнализЖурналаРегистрации/Templates/ПродолжительностьРаботыРегламентныхЗаданий/Template.mxlx index bf728979e..92421e6c1 100644 --- a/SSL/src/Reports/АнализЖурналаРегистрации/Templates/ПродолжительностьРаботыРегламентныхЗаданий/Template.mxlx +++ b/SSL/src/Reports/АнализЖурналаРегистрации/Templates/ПродолжительностьРаботыРегламентныхЗаданий/Template.mxlx @@ -2921,6 +2921,18 @@ #000000 + + + + auto + auto + + WithoutBorder + + auto + + Show + UseCoordinates UseCoordinates UseCoordinates diff --git a/SSL/src/Reports/АнализПравДоступа/ManagerModule.bsl b/SSL/src/Reports/АнализПравДоступа/ManagerModule.bsl index 9aeb0f9c5..2a448ea4c 100644 --- a/SSL/src/Reports/АнализПравДоступа/ManagerModule.bsl +++ b/SSL/src/Reports/АнализПравДоступа/ManagerModule.bsl @@ -19,18 +19,20 @@ Возврат; КонецЕсли; - Если Не ПравоДоступа("Просмотр", Метаданные.Отчеты["АнализПравДоступа"]) Тогда + Если Не ПравоДоступа("Просмотр", Метаданные.Отчеты.АнализПравДоступа) + Или СтандартныеПодсистемыСервер.ЭтоБазоваяВерсияКонфигурации() Тогда Возврат; КонецЕсли; Команда = КомандыОтчетов.Добавить(); Команда.Представление = НСтр("ru = 'Права пользователей'"); Команда.МножественныйВыбор = Истина; - Команда.Менеджер= "Отчет.АнализПравДоступа"; - + Команда.Менеджер = "Отчет.АнализПравДоступа"; + Если Параметры.ИмяФормы = "Справочник.Пользователи.Форма.ФормаСписка" Тогда Команда.Представление = НСтр("ru = 'Права пользователя'"); Команда.КлючВарианта = "ПраваПользователейНаТаблицы"; + ИначеЕсли Параметры.ИмяФормы = "Справочник.Пользователи.Форма.ФормаЭлемента" Тогда Команда.Представление = НСтр("ru = 'Права пользователя'"); Команда.КлючВарианта = "ПраваПользователяНаТаблицы"; @@ -143,8 +145,389 @@ КонецПроцедуры +// Возвращает таблицу, содержащую вид ограничений доступа +// по каждому праву объектов метаданных. +// Если записи по праву нет, значит ограничений по праву нет. +// +// Параметры: +// ДляВнешнихПользователей - Булево - когда Истина вернуть ограничения для внешних пользователей. +// Учитывается только для универсального ограничения. +// +// ВидДоступаДляТаблицСОтключеннымИспользованием - Булево - если Истина, тогда для таблиц +// с отключенным использованием (только универсальное ограничение) добавить +// вид доступа "Перечисление.ДополнительныеЗначенияДоступа.ДоступРазрешен". +// Учитывается только для универсального ограничения. +// +// Возвращаемое значение: +// ТаблицаЗначений: +// * ДляВнешнихПользователей - Булево - если Ложь, тогда ограничение для пользователей, +// если Истина, тогда для внешних пользователей. +// Колонка присутствует только для универсального ограничения. +// * Таблица - СправочникСсылка.ИдентификаторыОбъектовМетаданных +// - СправочникСсылка.ИдентификаторыОбъектовРасширений - идентификатор таблицы. +// * ВидДоступа - ЛюбаяСсылка - пустая ссылка основного типа значений вида доступа. +// * Представление - Строка - представление вида доступа. +// * Право - Строка - "Чтение", "Изменение". +// +Функция ВидыОграниченийПрав(ДляВнешнихПользователей = Неопределено, + ВидДоступаДляТаблицСОтключеннымИспользованием = Ложь) Экспорт + + УниверсальноеОграничение = + УправлениеДоступомСлужебный.ОграничиватьДоступНаУровнеЗаписейУниверсально(Истина, Истина); + + Если Не УниверсальноеОграничение Тогда + Кэш = УправлениеДоступомСлужебныйПовтИсп.ВидыОграниченийПравОбъектовМетаданных(); + + Если ТекущаяДатаСеанса() < Кэш.ДатаОбновления + 60*30 Тогда + Возврат Кэш.Таблица; + КонецЕсли; + КонецЕсли; + + ТипыЗначенийВидовДоступа = + УправлениеДоступомСлужебныйПовтИсп.ТипыЗначенийВидовДоступаИВладельцевНастроекПрав().Получить(); // ТаблицаЗначений + + Запрос = Новый Запрос; + Запрос.УстановитьПараметр("ПостоянныеВидыОграничений", + УправлениеДоступомСлужебныйПовтИсп.ПостоянныеВидыОграниченийПравОбъектовМетаданных()); + + Если УниверсальноеОграничение Тогда + Запрос.Текст = + "ВЫБРАТЬ + | ПостоянныеВидыОграничений.ДляВнешнихПользователей КАК ДляВнешнихПользователей, + | ПостоянныеВидыОграничений.ПолноеИмя КАК ПолноеИмя, + | ПостоянныеВидыОграничений.Таблица КАК Таблица, + | ПостоянныеВидыОграничений.Право КАК Право, + | ПостоянныеВидыОграничений.ВидДоступа КАК ВидДоступа + |ПОМЕСТИТЬ ПостоянныеВидыОграничений + |ИЗ + | &ПостоянныеВидыОграничений КАК ПостоянныеВидыОграничений + |ГДЕ + | &ОтборДляВнешнихПользователей + |; + | + |//////////////////////////////////////////////////////////////////////////////// + |ВЫБРАТЬ + | ВидыДоступаСПредставлением.ВидДоступа КАК ВидДоступа, + | ВидыДоступаСПредставлением.Представление КАК Представление + |ПОМЕСТИТЬ ВидыДоступаСПредставлением + |ИЗ + | &ВидыДоступаСПредставлением КАК ВидыДоступаСПредставлением + |; + | + |//////////////////////////////////////////////////////////////////////////////// + |ВЫБРАТЬ + | ТаблицыСОтключеннымОграничением.ДляВнешнихПользователей КАК ДляВнешнихПользователей, + | ТаблицыСОтключеннымОграничением.ПолноеИмя КАК ПолноеИмя, + | ТаблицыСОтключеннымОграничением.Таблица КАК Таблица, + | ТаблицыСОтключеннымОграничением.ВидДоступа КАК ВидДоступа, + | ТаблицыСОтключеннымОграничением.Представление КАК Представление + |ПОМЕСТИТЬ ТаблицыСОтключеннымОграничением + |ИЗ + | &ТаблицыСОтключеннымОграничением КАК ТаблицыСОтключеннымОграничением + |; + | + |//////////////////////////////////////////////////////////////////////////////// + |ВЫБРАТЬ РАЗЛИЧНЫЕ + | ВидыОграниченийПрав.ДляВнешнихПользователей КАК ДляВнешнихПользователей, + | ВидыОграниченийПрав.Таблица КАК Таблица, + | ВидыОграниченийПрав.Право КАК Право, + | ВидыОграниченийПрав.ВидДоступа КАК ВидДоступа, + | ВидыОграниченийПрав.Представление КАК Представление + |ИЗ + | (ВЫБРАТЬ + | ПостоянныеВидыОграничений.ДляВнешнихПользователей КАК ДляВнешнихПользователей, + | ПостоянныеВидыОграничений.Таблица КАК Таблица, + | ВЫБОР + | КОГДА НЕ ТаблицыСОтключеннымОграничением.ПолноеИмя ЕСТЬ NULL + | ТОГДА """" + | ИНАЧЕ ПостоянныеВидыОграничений.Право + | КОНЕЦ КАК Право, + | ВЫБОР + | КОГДА НЕ ТаблицыСОтключеннымОграничением.ПолноеИмя ЕСТЬ NULL + | ТОГДА ТаблицыСОтключеннымОграничением.ВидДоступа + | ИНАЧЕ ПостоянныеВидыОграничений.ВидДоступа + | КОНЕЦ КАК ВидДоступа, + | ВЫБОР + | КОГДА НЕ ТаблицыСОтключеннымОграничением.ПолноеИмя ЕСТЬ NULL + | ТОГДА ТаблицыСОтключеннымОграничением.Представление + | ИНАЧЕ ЕСТЬNULL(ВидыДоступаСПредставлением.Представление, &ПредставлениеНеизвестногоВидаДоступа) + | КОНЕЦ КАК Представление + | ИЗ + | ПостоянныеВидыОграничений КАК ПостоянныеВидыОграничений + | ЛЕВОЕ СОЕДИНЕНИЕ ТаблицыСОтключеннымОграничением КАК ТаблицыСОтключеннымОграничением + | ПО (ТаблицыСОтключеннымОграничением.ДляВнешнихПользователей = ПостоянныеВидыОграничений.ДляВнешнихПользователей) + | И (ТаблицыСОтключеннымОграничением.ПолноеИмя = ПостоянныеВидыОграничений.ПолноеИмя) + | ЛЕВОЕ СОЕДИНЕНИЕ ВидыДоступаСПредставлением КАК ВидыДоступаСПредставлением + | ПО (ВидыДоступаСПредставлением.ВидДоступа = ПостоянныеВидыОграничений.ВидДоступа) + | ГДЕ + | ПостоянныеВидыОграничений.ВидДоступа <> НЕОПРЕДЕЛЕНО + | + | ОБЪЕДИНИТЬ ВСЕ + | + | ВЫБРАТЬ + | ТаблицыСОтключеннымОграничением.ДляВнешнихПользователей, + | ТаблицыСОтключеннымОграничением.Таблица, + | """", + | ТаблицыСОтключеннымОграничением.ВидДоступа, + | ТаблицыСОтключеннымОграничением.Представление + | ИЗ + | ТаблицыСОтключеннымОграничением КАК ТаблицыСОтключеннымОграничением + | ЛЕВОЕ СОЕДИНЕНИЕ ПостоянныеВидыОграничений КАК ПостоянныеВидыОграничений + | ПО (ПостоянныеВидыОграничений.ДляВнешнихПользователей = ТаблицыСОтключеннымОграничением.ДляВнешнихПользователей) + | И (ПостоянныеВидыОграничений.ПолноеИмя = ТаблицыСОтключеннымОграничением.ПолноеИмя) + | ГДЕ + | ПостоянныеВидыОграничений.ПолноеИмя ЕСТЬ NULL + | И ТаблицыСОтключеннымОграничением.Таблица <> НЕОПРЕДЕЛЕНО) КАК ВидыОграниченийПрав"; + + Если ТипЗнч(ДляВнешнихПользователей) = Тип("Булево") Тогда + Запрос.УстановитьПараметр("ДляВнешнихПользователей", ДляВнешнихПользователей); + Запрос.Текст = СтрЗаменить(Запрос.Текст, "&ОтборДляВнешнихПользователей", + "ПостоянныеВидыОграничений.ДляВнешнихПользователей = &ДляВнешнихПользователей"); + Иначе + Запрос.Текст = СтрЗаменить(Запрос.Текст, "&ОтборДляВнешнихПользователей", "ИСТИНА"); + КонецЕсли; + Запрос.УстановитьПараметр("ВидыДоступаСПредставлением", + ВидыДоступаСПредставлением(ТипыЗначенийВидовДоступа, Ложь)); + Запрос.УстановитьПараметр("ПредставлениеНеизвестногоВидаДоступа", + ПредставлениеНеизвестногоВидаДоступа()); + Запрос.УстановитьПараметр("ТаблицыСОтключеннымОграничением", + ТаблицыСОтключеннымОграничением(ДляВнешнихПользователей, + ВидДоступаДляТаблицСОтключеннымИспользованием)); + Иначе + Запрос.УстановитьПараметр("ТипыЗначенийВидовДоступа", ТипыЗначенийВидовДоступа); + Запрос.УстановитьПараметр("ИспользуемыеВидыДоступа", + ВидыДоступаСПредставлением(ТипыЗначенийВидовДоступа, Истина)); + // АПК:96-выкл - №434 Использование ОБЪЕДИНИТЬ допустимо, так как + // строки не должны повторятся и результат кэшируется. + Запрос.Текст = + "ВЫБРАТЬ + | ПостоянныеВидыОграничений.Таблица КАК Таблица, + | ПостоянныеВидыОграничений.Право КАК Право, + | ПостоянныеВидыОграничений.ВидДоступа КАК ВидДоступа, + | ПостоянныеВидыОграничений.ТаблицаОбъекта КАК ТаблицаОбъекта + |ПОМЕСТИТЬ ПостоянныеВидыОграничений + |ИЗ + | &ПостоянныеВидыОграничений КАК ПостоянныеВидыОграничений + |; + | + |//////////////////////////////////////////////////////////////////////////////// + |ВЫБРАТЬ + | ТипыЗначенийВидовДоступа.ВидДоступа КАК ВидДоступа, + | ТипыЗначенийВидовДоступа.ТипЗначений КАК ТипЗначений + |ПОМЕСТИТЬ ТипыЗначенийВидовДоступа + |ИЗ + | &ТипыЗначенийВидовДоступа КАК ТипыЗначенийВидовДоступа + |; + | + |//////////////////////////////////////////////////////////////////////////////// + |ВЫБРАТЬ + | ИспользуемыеВидыДоступа.ВидДоступа КАК ВидДоступа, + | ИспользуемыеВидыДоступа.Представление КАК Представление + |ПОМЕСТИТЬ ИспользуемыеВидыДоступа + |ИЗ + | &ИспользуемыеВидыДоступа КАК ИспользуемыеВидыДоступа + |; + | + |//////////////////////////////////////////////////////////////////////////////// + |ВЫБРАТЬ РАЗЛИЧНЫЕ + | ПостоянныеВидыОграничений.Таблица КАК Таблица, + | ""Чтение"" КАК Право, + | ТИПЗНАЧЕНИЯ(СтрокиНаборов.ЗначениеДоступа) КАК ТипЗначений + |ПОМЕСТИТЬ ПеременныеВидыОграничений + |ИЗ + | РегистрСведений.НаборыЗначенийДоступа КАК НомераНаборов + | ВНУТРЕННЕЕ СОЕДИНЕНИЕ ПостоянныеВидыОграничений КАК ПостоянныеВидыОграничений + | ПО (ПостоянныеВидыОграничений.Право = ""Чтение"") + | И (ПостоянныеВидыОграничений.ВидДоступа = НЕОПРЕДЕЛЕНО) + | И (ТИПЗНАЧЕНИЯ(НомераНаборов.Объект) = ТИПЗНАЧЕНИЯ(ПостоянныеВидыОграничений.ТаблицаОбъекта)) + | И (НомераНаборов.Чтение) + | ВНУТРЕННЕЕ СОЕДИНЕНИЕ РегистрСведений.НаборыЗначенийДоступа КАК СтрокиНаборов + | ПО (СтрокиНаборов.Объект = НомераНаборов.Объект) + | И (СтрокиНаборов.НомерНабора = НомераНаборов.НомерНабора) + | + |ОБЪЕДИНИТЬ ВСЕ + | + |ВЫБРАТЬ РАЗЛИЧНЫЕ + | ПостоянныеВидыОграничений.Таблица, + | ""Изменение"", + | ТИПЗНАЧЕНИЯ(СтрокиНаборов.ЗначениеДоступа) + |ИЗ + | РегистрСведений.НаборыЗначенийДоступа КАК НомераНаборов + | ВНУТРЕННЕЕ СОЕДИНЕНИЕ ПостоянныеВидыОграничений КАК ПостоянныеВидыОграничений + | ПО (ПостоянныеВидыОграничений.Право = ""Изменение"") + | И (ПостоянныеВидыОграничений.ВидДоступа = НЕОПРЕДЕЛЕНО) + | И (ТИПЗНАЧЕНИЯ(НомераНаборов.Объект) = ТИПЗНАЧЕНИЯ(ПостоянныеВидыОграничений.ТаблицаОбъекта)) + | И (НомераНаборов.Изменение) + | ВНУТРЕННЕЕ СОЕДИНЕНИЕ РегистрСведений.НаборыЗначенийДоступа КАК СтрокиНаборов + | ПО (СтрокиНаборов.Объект = НомераНаборов.Объект) + | И (СтрокиНаборов.НомерНабора = НомераНаборов.НомерНабора) + |; + | + |//////////////////////////////////////////////////////////////////////////////// + |ВЫБРАТЬ + | ПостоянныеВидыОграничений.Таблица КАК Таблица, + | ПостоянныеВидыОграничений.Право КАК Право, + | ТипыЗначенийВидовДоступа.ВидДоступа КАК ВидДоступа + |ПОМЕСТИТЬ ВсеВидыОграниченийПрав + |ИЗ + | ПостоянныеВидыОграничений КАК ПостоянныеВидыОграничений + | ВНУТРЕННЕЕ СОЕДИНЕНИЕ ТипыЗначенийВидовДоступа КАК ТипыЗначенийВидовДоступа + | ПО ПостоянныеВидыОграничений.ВидДоступа = ТипыЗначенийВидовДоступа.ВидДоступа + | И (ПостоянныеВидыОграничений.ВидДоступа <> НЕОПРЕДЕЛЕНО) + | + |ОБЪЕДИНИТЬ + | + |ВЫБРАТЬ + | ПеременныеВидыОграничений.Таблица, + | ПеременныеВидыОграничений.Право, + | ТипыЗначенийВидовДоступа.ВидДоступа + |ИЗ + | ПеременныеВидыОграничений КАК ПеременныеВидыОграничений + | ВНУТРЕННЕЕ СОЕДИНЕНИЕ ТипыЗначенийВидовДоступа КАК ТипыЗначенийВидовДоступа + | ПО (ПеременныеВидыОграничений.ТипЗначений = ТИПЗНАЧЕНИЯ(ТипыЗначенийВидовДоступа.ТипЗначений)) + |; + | + |//////////////////////////////////////////////////////////////////////////////// + |ВЫБРАТЬ + | ВсеВидыОграниченийПрав.Таблица КАК Таблица, + | ВсеВидыОграниченийПрав.Право КАК Право, + | ВсеВидыОграниченийПрав.ВидДоступа КАК ВидДоступа, + | ИспользуемыеВидыДоступа.Представление КАК Представление + |ИЗ + | ВсеВидыОграниченийПрав КАК ВсеВидыОграниченийПрав + | ВНУТРЕННЕЕ СОЕДИНЕНИЕ ИспользуемыеВидыДоступа КАК ИспользуемыеВидыДоступа + | ПО ВсеВидыОграниченийПрав.ВидДоступа = ИспользуемыеВидыДоступа.ВидДоступа"; + // АПК:96-вкл. + КонецЕсли; + + Выгрузка = Запрос.Выполнить().Выгрузить(); + + Если Не УниверсальноеОграничение Тогда + Кэш.Таблица = Выгрузка; + Кэш.ДатаОбновления = ТекущаяДатаСеанса(); + КонецЕсли; + + Возврат Выгрузка; + +КонецФункции + +// Для функции ВидыОграниченийПрав. +Функция ВидыДоступаСПредставлением(ТипыЗначенийВидовДоступа, ТолькоИспользуемые) + + ВидыДоступа = ТипыЗначенийВидовДоступа.Скопировать(, "ВидДоступа"); + + ВидыДоступа.Свернуть("ВидДоступа"); + ВидыДоступа.Колонки.Добавить("Представление", Новый ОписаниеТипов("Строка", , Новый КвалификаторыСтроки(150))); + + Индекс = ВидыДоступа.Количество()-1; + Пока Индекс >= 0 Цикл + Строка = ВидыДоступа[Индекс]; + СвойстваВидаДоступа = УправлениеДоступомСлужебный.СвойстваВидаДоступа(Строка.ВидДоступа); + + Если СвойстваВидаДоступа = Неопределено Тогда + МетаданныеВладельцаНастроекПрав = Метаданные.НайтиПоТипу(ТипЗнч(Строка.ВидДоступа)); + Если МетаданныеВладельцаНастроекПрав = Неопределено Тогда + Строка.Представление = ПредставлениеНеизвестногоВидаДоступа(); + Иначе + Строка.Представление = СтроковыеФункцииКлиентСервер.ПодставитьПараметрыВСтроку( + НСтр("ru = 'Настройки прав на %1'"), + МетаданныеВладельцаНастроекПрав.Представление()); + КонецЕсли; + + ИначеЕсли Не ТолькоИспользуемые + Или УправлениеДоступомСлужебный.ВидДоступаИспользуется(Строка.ВидДоступа) Тогда + + Строка.Представление = УправлениеДоступомСлужебный.ПредставлениеВидаДоступа(СвойстваВидаДоступа); + Иначе + ВидыДоступа.Удалить(Строка); + КонецЕсли; + + Индекс = Индекс - 1; + КонецЦикла; + + Возврат ВидыДоступа; + +КонецФункции + +// Для функций ВидыОграниченийПрав, ВидыДоступаСПредставлением. +Функция ПредставлениеНеизвестногоВидаДоступа() + + Возврат НСтр("ru = 'Неизвестный вид доступа'"); + +КонецФункции + +// Для функции ВидыОграниченийПрав. +Функция ТаблицыСОтключеннымОграничением(ДляВнешнихПользователей, Заполнять) + + ТипыИдентификаторов = Новый Массив; + ТипыИдентификаторов.Добавить(Тип("СправочникСсылка.ИдентификаторыОбъектовМетаданных")); + ТипыИдентификаторов.Добавить(Тип("СправочникСсылка.ИдентификаторыОбъектовРасширений")); + + Результат = Новый ТаблицаЗначений; + Результат.Колонки.Добавить("ДляВнешнихПользователей", Новый ОписаниеТипов("Булево")); + Результат.Колонки.Добавить("ПолноеИмя", + Метаданные.Справочники.ИдентификаторыОбъектовМетаданных.Реквизиты.ПолноеИмя.Тип); + Результат.Колонки.Добавить("Таблица", Новый ОписаниеТипов(ТипыИдентификаторов)); + Результат.Колонки.Добавить("ВидДоступа", УправлениеДоступомСлужебныйПовтИсп.ОписаниеТиповЗначенийДоступаИВладельцевНастроекПрав()); + Результат.Колонки.Добавить("Представление", Новый ОписаниеТипов("Строка", , Новый КвалификаторыСтроки(150))); + + Если Не Заполнять Тогда + Возврат Результат; + КонецЕсли; + + ДействующиеПараметры = УправлениеДоступомСлужебный.ДействующиеПараметрыОграниченияДоступа( + Неопределено, Неопределено, Ложь); + + Если ДляВнешнихПользователей <> Истина Тогда + ДобавитьТаблицыСОтключеннымОграничением(Результат, ДействующиеПараметры, Ложь); + КонецЕсли; + Если ДляВнешнихПользователей <> Ложь Тогда + ДобавитьТаблицыСОтключеннымОграничением(Результат, ДействующиеПараметры, Истина); + КонецЕсли; + ПолныеИмена = Результат.ВыгрузитьКолонку("ПолноеИмя"); + ИдентификаторыИмен = ОбщегоНазначения.ИдентификаторыОбъектовМетаданных(ПолныеИмена, Ложь); + Для Каждого Строка Из Результат Цикл + Строка.Таблица = ИдентификаторыИмен.Получить(Строка.ПолноеИмя); + КонецЦикла; + + Возврат Результат; + +КонецФункции + +// Для функции ТаблицыСОтключеннымОграничением. +Процедура ДобавитьТаблицыСОтключеннымОграничением(ТаблицыСОтключеннымОграничением, + ДействующиеПараметры, ДляВнешнихПользователей) + + Если ДляВнешнихПользователей Тогда + ДополнительныйКонтекст = ДействующиеПараметры.ДополнительныйКонтекст.ДляВнешнихПользователей; + Иначе + ДополнительныйКонтекст = ДействующиеПараметры.ДополнительныйКонтекст.ДляПользователей; + КонецЕсли; + + СпискиСОтключеннымОграничением = ДополнительныйКонтекст.СпискиСОтключеннымОграничением; + СвойстваОграниченияСписков = ДополнительныйКонтекст.СвойстваОграниченияСписков; + + Для Каждого КлючИЗначение Из СвойстваОграниченияСписков Цикл + ПолноеИмя = КлючИЗначение.Ключ; + Если Не КлючИЗначение.Значение.ДоступЗапрещен + И СпискиСОтключеннымОграничением.Получить(ПолноеИмя) = Неопределено Тогда + Продолжить; + КонецЕсли; + НоваяСтрока = ТаблицыСОтключеннымОграничением.Добавить(); + НоваяСтрока.ДляВнешнихПользователей = ДляВнешнихПользователей; + НоваяСтрока.ПолноеИмя = ПолноеИмя; + Если КлючИЗначение.Значение.ДоступЗапрещен Тогда + НоваяСтрока.ВидДоступа = Перечисления.ДополнительныеЗначенияДоступа.ДоступЗапрещен; + НоваяСтрока.Представление = "<" + НСтр("ru = 'Доступ запрещен'") + ">"; + Иначе + НоваяСтрока.ВидДоступа = Перечисления.ДополнительныеЗначенияДоступа.ДоступРазрешен; + НоваяСтрока.Представление = "<" + НСтр("ru = 'Ограничение отключено'") + ">"; + КонецЕсли; + КонецЦикла; + +КонецПроцедуры + #КонецОбласти #КонецЕсли - diff --git a/SSL/src/Reports/АнализПравДоступа/ObjectModule.bsl b/SSL/src/Reports/АнализПравДоступа/ObjectModule.bsl index ffa0c3e13..a35a06c08 100644 --- a/SSL/src/Reports/АнализПравДоступа/ObjectModule.bsl +++ b/SSL/src/Reports/АнализПравДоступа/ObjectModule.bsl @@ -115,33 +115,37 @@ // Процедура ПередЗагрузкойНастроекВКомпоновщик(Контекст, КлючСхемы, КлючВарианта, НовыеНастройкиКД, НовыеПользовательскиеНастройкиКД) Экспорт - Если КлючСхемы = "1" Тогда - Возврат; - КонецЕсли; - - КлючСхемы = "1"; - - Если ТипЗнч(Контекст) = Тип("ФормаКлиентскогоПриложения") И НовыеНастройкиКД <> Неопределено Тогда - - РеквизитыФормы = Новый Структура("КонтекстВарианта"); - ЗаполнитьЗначенияСвойств(РеквизитыФормы, Контекст); - - Если ЗначениеЗаполнено(РеквизитыФормы.КонтекстВарианта) Тогда - Если КлючВарианта = "ПраваПользователейНаТаблицу" Тогда - ОбъектМетаданных = ОбщегоНазначения.ИдентификаторОбъектаМетаданных(Контекст.КонтекстВарианта, Ложь); - Если ЗначениеЗаполнено(ОбъектМетаданных) Тогда - ОбщегоНазначенияКлиентСервер.УстановитьЭлементОтбора(НовыеНастройкиКД.Отбор, "ОбъектМетаданных", ОбъектМетаданных, - ВидСравненияКомпоновкиДанных.Равно, , Истина); - КонецЕсли; - ИначеЕсли КлючВарианта = "ПраваПользователейНаТаблицы" Или КлючВарианта = "ПраваПользователяНаТаблицы" Тогда - Если Контекст.Параметры.Свойство("ПараметрКоманды") Тогда - СписокПользователей = Новый СписокЗначений; - СписокПользователей.ЗагрузитьЗначения(Контекст.Параметры.ПараметрКоманды); - УстановитьОтборПоПользователям(НовыеНастройкиКД, СписокПользователей); + Если КлючСхемы <> "1" Тогда + КлючСхемы = "1"; + Если ТипЗнч(Контекст) = Тип("ФормаКлиентскогоПриложения") И НовыеНастройкиКД <> Неопределено Тогда + РеквизитыФормы = Новый Структура("КонтекстВарианта"); + ЗаполнитьЗначенияСвойств(РеквизитыФормы, Контекст); + Вариант = НовыеНастройкиКД.ДополнительныеСвойства.КлючПредопределенногоВарианта; + + Если ЗначениеЗаполнено(РеквизитыФормы.КонтекстВарианта) Тогда + Если Вариант = "ПраваПользователейНаТаблицу" Тогда + ОбъектМетаданных = ОбщегоНазначения.ИдентификаторОбъектаМетаданных(Контекст.КонтекстВарианта, Ложь); + Если ЗначениеЗаполнено(ОбъектМетаданных) Тогда + ОбщегоНазначенияКлиентСервер.УстановитьЭлементОтбора(НовыеНастройкиКД.Отбор, "ОбъектМетаданных", ОбъектМетаданных, + ВидСравненияКомпоновкиДанных.Равно, , Истина); + КонецЕсли; + ИначеЕсли Вариант = "ПраваПользователейНаТаблицы" Или Вариант = "ПраваПользователяНаТаблицы" Тогда + Если Контекст.Параметры.Свойство("ПараметрКоманды") Тогда + СписокПользователей = Новый СписокЗначений; + СписокПользователей.ЗагрузитьЗначения(Контекст.Параметры.ПараметрКоманды); + УстановитьОтбор("Пользователь", СписокПользователей, НовыеНастройкиКД, НовыеПользовательскиеНастройкиКД); + КонецЕсли; КонецЕсли; КонецЕсли; КонецЕсли; - + КонецЕсли; + + Если Не Константы.ИспользоватьВнешнихПользователей.Получить() Тогда + СхемаКомпоновкиДанных.Параметры.ВидПользователей.ОграничениеИспользования = Истина; + Если ОбщегоНазначения.ПодсистемаСуществует("СтандартныеПодсистемы.ВариантыОтчетов") Тогда + МодульОтчетыСервер = ОбщегоНазначения.ОбщийМодуль("ОтчетыСервер"); + МодульОтчетыСервер.ПодключитьСхему(ЭтотОбъект, Контекст, СхемаКомпоновкиДанных, КлючСхемы); + КонецЕсли; КонецЕсли; КонецПроцедуры @@ -187,70 +191,167 @@ НастройкиКомпоновщика = КомпоновщикНастроек.ПолучитьНастройки(); + ПараметрВидПользователей = НастройкиКомпоновщика.ПараметрыДанных.Элементы.Найти("ВидПользователей"); + ПараметрПользователь = НастройкиКомпоновщика.ПараметрыДанных.Элементы.Найти("Пользователь"); + + Если ПараметрПользователь.Использование + И Не ЗначениеЗаполнено(ПараметрПользователь.Значение) Тогда + + ПараметрПользователь.Использование = Ложь; + КонецЕсли; + + Если ПараметрПользователь.Использование Тогда + ПараметрВидПользователей.Использование = Ложь; + КонецЕсли; + + НастройкиПрав = НастройкиПравПоОбъектам(); + + Если Не ЗначениеЗаполнено(НастройкиПрав.НастройкиПравЛегенда) Тогда + ОтключитьГруппировки(НастройкиКомпоновщика, + "НастройкиПрав,ЛегендаНастроекПрав,ДополнительныйЗаголовокТаблицы"); + КонецЕсли; + КомпоновщикМакета = Новый КомпоновщикМакетаКомпоновкиДанных; МакетКомпоновки = КомпоновщикМакета.Выполнить(СхемаКомпоновкиДанных, НастройкиКомпоновщика, ДанныеРасшифровки); ВнешниеНаборыДанных = Новый Структура; - ВнешниеНаборыДанных.Вставить("ПраваПользователей", ПраваПользователей()); + ВнешниеНаборыДанных.Вставить("ПраваПользователей", ПраваПользователей()); + ВнешниеНаборыДанных.Вставить("НастройкиПравПоОбъектам", НастройкиПрав.НастройкиПравПоОбъектам); + ВнешниеНаборыДанных.Вставить("НастройкиПравИерархия", НастройкиПрав.НастройкиПравИерархия); + ВнешниеНаборыДанных.Вставить("НастройкиПравЛегенда", НастройкиПрав.НастройкиПравЛегенда); ПроцессорКомпоновки = Новый ПроцессорКомпоновкиДанных; - ПроцессорКомпоновки.Инициализировать(МакетКомпоновки, ВнешниеНаборыДанных , ДанныеРасшифровки); + ПроцессорКомпоновки.Инициализировать(МакетКомпоновки, ВнешниеНаборыДанных, ДанныеРасшифровки); ПроцессорВывода = Новый ПроцессорВыводаРезультатаКомпоновкиДанныхВТабличныйДокумент; ПроцессорВывода.УстановитьДокумент(ДокументРезультат); ПроцессорВывода.Вывести(ПроцессорКомпоновки); + ЗавершитьВывод(ДокументРезультат, ДанныеРасшифровки, НастройкиПрав); + +КонецПроцедуры + +Процедура ЗавершитьВывод(ДокументРезультат, ДанныеРасшифровки, НастройкиПрав) + ГруппаДоступаЗаголовок = НСтр("ru = 'Группа доступа'"); Если УправлениеДоступомСлужебный.УпрощенныйИнтерфейсНастройкиПравДоступа() Тогда ГруппаДоступаЗаголовок = НСтр("ru = 'Профиль пользователя'"); КонецЕсли; - КартинкаПросмотр = БиблиотекаКартинок.Просмотр; - КартинкаРедактирование = БиблиотекаКартинок.Редактирование; - КартинкаСоздание = БиблиотекаКартинок.Создание; + // АПК:163-выкл - №598.1 Использование допустимо, так как влияет на смысл. + ТекстЕстьОграничение = НСтр("ru = 'Доступно не всё'"); + // АПК:163-вкл. + ТекстПравоНеНазначено = НСтр("ru = '●'"); + ТекстПравоРазрешено = НСтр("ru = '✔'"); + ТекстПравоЗапрещено = НСтр("ru = '✘'"); + ШрифтПравоНеНазначено = Неопределено; + ШрифтПравоРазрешено = Неопределено; + ШрифтПравоЗапрещено = Неопределено; + ЦветПравоНеНазначено = Метаданные.ЭлементыСтиля.НеназначенноеПравоДоступаЦвет.Значение; + ЦветПравоРазрешено = Метаданные.ЭлементыСтиля.РазрешенноеПравоДоступаЦвет.Значение; + ЦветПравоЗапрещено = Метаданные.ЭлементыСтиля.ЗапрещенноеПравоДоступаЦвет.Значение; + ЦветПравоВычисленное = Метаданные.ЭлементыСтиля.ВычисленноеПравоДоступаЦвет.Значение; + РасшифровкиСтрок = Новый Соответствие; + РасшифровкиКолонок = Новый Соответствие; + НастроенноеПравоДляПодпапок = ОписаниеКолонкиДляПодпапок().Заголовок; + НетЛинии = Новый Линия(ТипЛинииЯчейкиТабличногоДокумента.НетЛинии); + ТипИдентификаторРасшифровкиКомпоновкиДанных = Тип("ИдентификаторРасшифровкиКомпоновкиДанных"); + ВысотаТаблицы = ДокументРезультат.ВысотаТаблицы; + ШиринаТаблицы = ДокументРезультат.ШиринаТаблицы; - Для НомерСтроки = 1 По ДокументРезультат.ВысотаТаблицы Цикл - Для НомерКолонки = 1 По ДокументРезультат.ШиринаТаблицы Цикл + Для НомерСтроки = 1 По ВысотаТаблицы Цикл + Для НомерКолонки = 1 По ШиринаТаблицы Цикл Область = ДокументРезультат.Область(НомерСтроки, НомерКолонки); - Если Область.Текст = "&ГруппаДоступаЗаголовок" Тогда - Область.Текст = ГруппаДоступаЗаголовок; - КонецЕсли; - - Если ТипЗнч(Область.Расшифровка) <> Тип("ИдентификаторРасшифровкиКомпоновкиДанных") Тогда + Расшифровка = Область.Расшифровка; + Если ТипЗнч(Расшифровка) <> ТипИдентификаторРасшифровкиКомпоновкиДанных Тогда + ТекстОбласти = Область.Текст; + + Если ТекстОбласти = "*" Тогда + Область.Текст = ""; + Область.Примечание.Текст = ТекстЕстьОграничение; + + ИначеЕсли ТекстОбласти = "&ГруппаДоступаЗаголовок" Тогда + Область.Текст = ГруппаДоступаЗаголовок; + + ИначеЕсли ТекстОбласти = "&ВладелецНастроекЗаголовок" Тогда + Область.Текст = НастройкиПрав.ВладелецНастроекЗаголовок; + КонецЕсли; + Продолжить; КонецЕсли; - ЗначенияПолей = ДанныеРасшифровки.Элементы[Область.Расшифровка].ПолучитьПоля(); + ЗначенияПолей = ДанныеРасшифровки.Элементы[Расшифровка].ПолучитьПоля(); - ЗначениеПоляПраво = ЗначенияПолей.Найти("Право"); - Если ЗначениеПоляПраво <> Неопределено Тогда + Если ЗначенияПолей.Найти("Право") <> Неопределено + И ЗначенияПолей.Найти("Право").Значение > 0 + И ЗначенияПолей.Найти("ПравоБезОграничения") <> Неопределено + И ЗначенияПолей.Найти("Право").Значение + > ЗначенияПолей.Найти("ПравоБезОграничения").Значение + Или ЗначенияПолей.Найти("ПравоПросмотр") <> Неопределено + И ЗначенияПолей.Найти("ПравоПросмотр").Значение = Истина + И ЗначенияПолей.Найти("ПравоЧтениеБезОграничения").Значение = Ложь + Или ЗначенияПолей.Найти("ПравоРедактирование") <> Неопределено + И ЗначенияПолей.Найти("ПравоРедактирование").Значение = Истина + И ЗначенияПолей.Найти("ПравоИзменениеБезОграничения").Значение = Ложь + Или ЗначенияПолей.Найти("ПравоИнтерактивноеДобавление") <> Неопределено + И ЗначенияПолей.Найти("ПравоИнтерактивноеДобавление").Значение = Истина + И ЗначенияПолей.Найти("ПравоДобавлениеБезОграничения").Значение = Ложь Тогда - Если ЗначениеПоляПраво.Значение = 1 Тогда - Область.Картинка = КартинкаПросмотр; + Область.Примечание.Текст = ТекстЕстьОграничение; + + ИначеЕсли ЗначенияПолей.Найти("ЗначениеПрава") <> Неопределено Тогда + ЗначениеПрава = ЗначенияПолей.Найти("ЗначениеПрава").Значение; + Если ЗначениеПрава = Null Тогда + ЗначениеПрава = 0; + ЭтоВладелецНастроек = РасшифровкиСтрок.Получить(НомерСтроки).Найти("ЭтоВладелецНастроек").Значение; + НастроенноеПраво = РасшифровкиКолонок.Получить(НомерКолонки).Найти("НастроенноеПраво").Значение; + Иначе + ЭтоВладелецНастроек = ЗначенияПолей.Найти("ЭтоВладелецНастроек").Значение; + Если ЗначениеПрава = 0 Тогда + НастроенноеПраво = ЗначенияПолей.Найти("НастроенноеПраво").Значение; + КонецЕсли; + КонецЕсли; + Если ЗначениеПрава = 0 Тогда + Если ЭтоВладелецНастроек И НастроенноеПраво <> НастроенноеПравоДляПодпапок Тогда + ЗначениеПрава = 2; + ИначеЕсли НастроенноеПраво <> НастроенноеПравоДляПодпапок Тогда + Область.Текст = ТекстПравоНеНазначено; + Область.Шрифт = ШрифтПравоНеНазначено; + Область.ЦветТекста = ЦветПравоНеНазначено; + КонецЕсли; + КонецЕсли; + Если ЗначениеПрава = 1 Тогда + Область.Текст = ТекстПравоРазрешено; + Область.Шрифт = ШрифтПравоРазрешено; + Область.ЦветТекста = ?(ЭтоВладелецНастроек, ЦветПравоВычисленное, ЦветПравоРазрешено); - ИначеЕсли ЗначениеПоляПраво.Значение = 2 Тогда - Область.Картинка = КартинкаРедактирование; - - ИначеЕсли ЗначениеПоляПраво.Значение = 3 Тогда - Область.Картинка = КартинкаСоздание; + ИначеЕсли ЗначениеПрава = 2 Тогда + Область.Текст = ТекстПравоЗапрещено; + Область.Шрифт = ШрифтПравоЗапрещено; + Область.ЦветТекста = ?(ЭтоВладелецНастроек, ЦветПравоВычисленное, ЦветПравоЗапрещено); КонецЕсли; - ИначеЕсли ЗначенияПолей.Найти("ПравоПросмотр") <> Неопределено - И ЗначенияПолей.Найти("ПравоПросмотр").Значение = Истина Тогда + ИначеЕсли ЗначенияПолей.Найти("ВладелецИлиПользовательНастроек") <> Неопределено Тогда + РасшифровкиСтрок.Вставить(НомерСтроки, ЗначенияПолей); + Если ШрифтПравоНеНазначено = Неопределено Тогда + ШрифтПравоНеНазначено = Область.Шрифт; + ШрифтПравоРазрешено = Новый Шрифт(ШрифтПравоНеНазначено,,, Истина,,,, 120); + ШрифтПравоЗапрещено = ШрифтПравоРазрешено; + КонецЕсли; + Отступ = (ЗначенияПолей.Найти("Уровень").Значение - 1) * 2; + ОбластьСтроки = ДокументРезультат.Область(НомерСтроки, , НомерСтроки); + ОбластьСтроки.СоздатьФорматСтрок(); + ОбластьСправа = ДокументРезультат.Область(НомерСтроки, НомерКолонки); + ОбластьСлева = ДокументРезультат.Область(НомерСтроки, НомерКолонки - 1); + ОбластьСправа.ГраницаСлева = НетЛинии; + ОбластьСлева.ГраницаСправа = НетЛинии; + ОбластьСправа.ШиринаКолонки = Область.ШиринаКолонки + ОбластьСлева.ШиринаКолонки - Отступ; + ОбластьСлева.ШиринаКолонки = Отступ; - Область.Картинка = КартинкаПросмотр; - - ИначеЕсли ЗначенияПолей.Найти("ПравоРедактирование") <> Неопределено - И ЗначенияПолей.Найти("ПравоРедактирование").Значение = Истина Тогда - - Область.Картинка = КартинкаРедактирование; - - ИначеЕсли ЗначенияПолей.Найти("ПравоИнтерактивноеДобавление") <> Неопределено - И ЗначенияПолей.Найти("ПравоИнтерактивноеДобавление").Значение = Истина Тогда - - Область.Картинка = КартинкаСоздание; + ИначеЕсли ЗначенияПолей.Найти("НастроенноеПраво") <> Неопределено Тогда + РасшифровкиКолонок.Вставить(НомерКолонки, ЗначенияПолей); КонецЕсли; КонецЦикла; КонецЦикла; @@ -463,6 +564,9 @@ "ВЫБРАТЬ | ПраваРолейРасширений.ОбъектМетаданных КАК ОбъектМетаданных, | ПраваРолейРасширений.Роль КАК Роль, + | ПраваРолейРасширений.ПравоЧтениеБезОграничения КАК ПравоЧтениеБезОграничения, + | ПраваРолейРасширений.ПравоИзменениеБезОграничения КАК ПравоИзменениеБезОграничения, + | ПраваРолейРасширений.ПравоДобавлениеБезОграничения КАК ПравоДобавлениеБезОграничения, | ПраваРолейРасширений.ПравоПросмотр КАК ПравоПросмотр, | ПраваРолейРасширений.ПравоРедактирование КАК ПравоРедактирование, | ПраваРолейРасширений.ПравоИнтерактивноеДобавление КАК ПравоИнтерактивноеДобавление, @@ -476,6 +580,9 @@ |ВЫБРАТЬ | ПраваРолейРасширений.ОбъектМетаданных КАК ОбъектМетаданных, | ПраваРолейРасширений.Роль КАК Роль, + | ПраваРолейРасширений.ПравоЧтениеБезОграничения КАК ПравоЧтениеБезОграничения, + | ПраваРолейРасширений.ПравоИзменениеБезОграничения КАК ПравоИзменениеБезОграничения, + | ПраваРолейРасширений.ПравоДобавлениеБезОграничения КАК ПравоДобавлениеБезОграничения, | ПраваРолейРасширений.ПравоПросмотр КАК ПравоПросмотр, | ПраваРолейРасширений.ПравоРедактирование КАК ПравоРедактирование, | ПраваРолейРасширений.ПравоИнтерактивноеДобавление КАК ПравоИнтерактивноеДобавление @@ -491,6 +598,9 @@ |ВЫБРАТЬ | ПраваРолей.ОбъектМетаданных, | ПраваРолей.Роль, + | ПраваРолей.ПравоЧтениеБезОграничения, + | ПраваРолей.ПравоИзменениеБезОграничения, + | ПраваРолей.ПравоДобавлениеБезОграничения, | ПраваРолей.ПравоПросмотр, | ПраваРолей.ПравоРедактирование, | ПраваРолей.ПравоИнтерактивноеДобавление @@ -511,6 +621,9 @@ |ВЫБРАТЬ | ПрофилиГруппДоступаРоли.Ссылка КАК Профиль, | ПраваРолей.ОбъектМетаданных КАК Таблица, + | МАКСИМУМ(ПраваРолей.ПравоЧтениеБезОграничения) КАК ПравоЧтениеБезОграничения, + | МАКСИМУМ(ПраваРолей.ПравоИзменениеБезОграничения) КАК ПравоИзменениеБезОграничения, + | МАКСИМУМ(ПраваРолей.ПравоДобавлениеБезОграничения) КАК ПравоДобавлениеБезОграничения, | МАКСИМУМ(ПраваРолей.ПравоПросмотр) КАК ПравоПросмотр, | МАКСИМУМ(ПраваРолей.ПравоРедактирование) КАК ПравоРедактирование, | МАКСИМУМ(ПраваРолей.ПравоИнтерактивноеДобавление) КАК ПравоИнтерактивноеДобавление @@ -538,6 +651,30 @@ | ТОГДА ГруппыДоступа.Профиль | ИНАЧЕ ГруппыДоступа.Ссылка | КОНЕЦ КАК ГруппаДоступа, + | ПраваПрофилей.ПравоЧтениеБезОграничения КАК ПравоЧтениеБезОграничения, + | ПраваПрофилей.ПравоИзменениеБезОграничения КАК ПравоИзменениеБезОграничения, + | ПраваПрофилей.ПравоДобавлениеБезОграничения КАК ПравоДобавлениеБезОграничения, + | ВЫБОР + | КОГДА ПраваПрофилей.ПравоИнтерактивноеДобавление + | ТОГДА ВЫБОР + | КОГДА ПраваПрофилей.ПравоДобавлениеБезОграничения + | ТОГДА 3 + | ИНАЧЕ 0 + | КОНЕЦ + | КОГДА ПраваПрофилей.ПравоРедактирование + | ТОГДА ВЫБОР + | КОГДА ПраваПрофилей.ПравоИзменениеБезОграничения + | ТОГДА 2 + | ИНАЧЕ 0 + | КОНЕЦ + | КОГДА ПраваПрофилей.ПравоПросмотр + | ТОГДА ВЫБОР + | КОГДА ПраваПрофилей.ПравоЧтениеБезОграничения + | ТОГДА 1 + | ИНАЧЕ 0 + | КОНЕЦ + | ИНАЧЕ 0 + | КОНЕЦ КАК ПравоБезОграничения, | ПраваПрофилей.ПравоПросмотр КАК ПравоПросмотр, | ПраваПрофилей.ПравоРедактирование КАК ПравоРедактирование, | ПраваПрофилей.ПравоИнтерактивноеДобавление КАК ПравоИнтерактивноеДобавление, @@ -551,9 +688,7 @@ | ИНАЧЕ 0 | КОНЕЦ КАК Право, | СоставыГруппПользователей.Пользователь КАК Пользователь, - | СоставыГруппПользователей.Используется КАК ВходВПрограммуРазрешен, - | НЕОПРЕДЕЛЕНО КАК Отчет, - | 0 КАК ПравоОтчета + | СоставыГруппПользователей.Используется КАК ВходВПрограммуРазрешен |ИЗ | ПраваПрофилейНаТаблицы КАК ПраваПрофилей | ВНУТРЕННЕЕ СОЕДИНЕНИЕ Справочник.ГруппыДоступа КАК ГруппыДоступа @@ -563,7 +698,339 @@ | ПО (УчастникиГруппДоступа.Ссылка = ГруппыДоступа.Ссылка) | ВНУТРЕННЕЕ СОЕДИНЕНИЕ РегистрСведений.СоставыГруппПользователей КАК СоставыГруппПользователей | ПО (СоставыГруппПользователей.ГруппаПользователей = УчастникиГруппДоступа.Пользователь) - | И (ТИПЗНАЧЕНИЯ(СоставыГруппПользователей.Пользователь) = ТИП(Справочник.Пользователи)) + | И (СоставыГруппПользователей.Пользователь <> &ПользовательНеУказан)"; + + ТекстЗапросаБезГруппировкиПоОтчетамСОграничениямиДоступаНачало = + "ВЫБРАТЬ + | ГруппыДоступа.Профиль КАК Профиль, + | ГруппыДоступа.Ссылка КАК ГруппаДоступа + |ПОМЕСТИТЬ ГруппыДоступаПользователей + |ИЗ + | Справочник.ГруппыДоступа КАК ГруппыДоступа + | ВНУТРЕННЕЕ СОЕДИНЕНИЕ Справочник.ГруппыДоступа.Пользователи КАК УчастникиГруппДоступа + | ПО (УчастникиГруппДоступа.Ссылка = ГруппыДоступа.Ссылка) + | И (НЕ ГруппыДоступа.ПометкаУдаления) + | И (ГруппыДоступа.Профиль В + | (ВЫБРАТЬ РАЗЛИЧНЫЕ + | ПраваПрофилей.Профиль + | ИЗ + | ПраваПрофилейНаТаблицы КАК ПраваПрофилей)) + | ВНУТРЕННЕЕ СОЕДИНЕНИЕ РегистрСведений.СоставыГруппПользователей КАК СоставыГруппПользователей + | ПО (СоставыГруппПользователей.ГруппаПользователей = УчастникиГруппДоступа.Пользователь) + | И (СоставыГруппПользователей.Пользователь <> &ПользовательНеУказан)"; + + ТекстЗапросаБезГруппировкиПоОтчетамСОграничениямиДоступаВидыОграниченийПоСтарому = + "ВЫБРАТЬ + | ВидыОграниченийПрав.Таблица КАК Таблица, + | ВидыОграниченийПрав.ВидДоступа КАК ВидДоступа, + | ВидыОграниченийПрав.Представление КАК ВидДоступаПредставление, + | ВидыОграниченийПрав.Право КАК Право + |ПОМЕСТИТЬ ВидыОграниченийПравИсходные + |ИЗ + | &ВидыОграниченийПрав КАК ВидыОграниченийПрав + |; + | + |//////////////////////////////////////////////////////////////////////////////// + |ВЫБРАТЬ + | ВидыОграниченийПрав.Таблица КАК Таблица, + | ВидыОграниченийПрав.ВидДоступа КАК ВидДоступа, + | ВидыОграниченийПрав.ВидДоступаПредставление КАК ВидДоступаПредставление, + | МАКСИМУМ(ВидыОграниченийПрав.Право = ""Чтение"") КАК ПравоЧтение, + | МАКСИМУМ(ВидыОграниченийПрав.Право = ""Изменение"") КАК ПравоИзменение + |ПОМЕСТИТЬ ВидыОграниченийПравПреобразованные + |ИЗ + | ВидыОграниченийПравИсходные КАК ВидыОграниченийПрав + | + |СГРУППИРОВАТЬ ПО + | ВидыОграниченийПрав.Таблица, + | ВидыОграниченийПрав.ВидДоступа, + | ВидыОграниченийПрав.ВидДоступаПредставление + |; + | + |//////////////////////////////////////////////////////////////////////////////// + |ВЫБРАТЬ + | ЛОЖЬ КАК ДляВнешнихПользователей, + | ВидыОграниченийПрав.Таблица КАК Таблица, + | ВидыОграниченийПрав.ВидДоступа КАК ВидДоступа, + | ВидыОграниченийПрав.ВидДоступаПредставление КАК ВидДоступаПредставление, + | ВидыОграниченийПрав.ПравоЧтение КАК ПравоЧтение, + | ВидыОграниченийПрав.ПравоИзменение КАК ПравоИзменение + |ПОМЕСТИТЬ ВидыОграниченийПрав + |ИЗ + | ВидыОграниченийПравПреобразованные КАК ВидыОграниченийПрав + |ГДЕ + | ТИПЗНАЧЕНИЯ(ВидыОграниченийПрав.ВидДоступа) <> ТИП(Справочник.ВнешниеПользователи) + | + |ОБЪЕДИНИТЬ ВСЕ + | + |ВЫБРАТЬ + | ИСТИНА, + | ВидыОграниченийПрав.Таблица, + | ВидыОграниченийПрав.ВидДоступа, + | ВидыОграниченийПрав.ВидДоступаПредставление, + | ВидыОграниченийПрав.ПравоЧтение, + | ВидыОграниченийПрав.ПравоИзменение + |ИЗ + | ВидыОграниченийПравПреобразованные КАК ВидыОграниченийПрав + |ГДЕ + | ТИПЗНАЧЕНИЯ(ВидыОграниченийПрав.ВидДоступа) <> ТИП(Справочник.Пользователи)"; + + ТекстЗапросаБезГруппировкиПоОтчетамСОграничениямиДоступаВидыОграниченийПоНовому = + "ВЫБРАТЬ + | ВидыОграниченийПрав.ДляВнешнихПользователей КАК ДляВнешнихПользователей, + | ВидыОграниченийПрав.Таблица КАК Таблица, + | ВидыОграниченийПрав.ВидДоступа КАК ВидДоступа, + | ВидыОграниченийПрав.Представление КАК ВидДоступаПредставление, + | ВидыОграниченийПрав.Право КАК Право + |ПОМЕСТИТЬ ВидыОграниченийПравИсходные + |ИЗ + | &ВидыОграниченийПрав КАК ВидыОграниченийПрав + |; + | + |//////////////////////////////////////////////////////////////////////////////// + |ВЫБРАТЬ + | ВидыОграниченийПрав.ДляВнешнихПользователей КАК ДляВнешнихПользователей, + | ВидыОграниченийПрав.Таблица КАК Таблица, + | ВидыОграниченийПрав.ВидДоступа КАК ВидДоступа, + | ВидыОграниченийПрав.ВидДоступаПредставление КАК ВидДоступаПредставление, + | ВЫБОР + | КОГДА ВидыОграниченийПрав.ВидДоступа = ЗНАЧЕНИЕ(Перечисление.ДополнительныеЗначенияДоступа.ДоступРазрешен) + | ТОГДА ЛОЖЬ + | КОГДА ВидыОграниченийПрав.ВидДоступа = ЗНАЧЕНИЕ(Перечисление.ДополнительныеЗначенияДоступа.ДоступЗапрещен) + | ТОГДА ИСТИНА + | ИНАЧЕ МАКСИМУМ(ВидыОграниченийПрав.Право = ""Чтение"") + | КОНЕЦ КАК ПравоЧтение, + | ВЫБОР + | КОГДА ВидыОграниченийПрав.ВидДоступа = ЗНАЧЕНИЕ(Перечисление.ДополнительныеЗначенияДоступа.ДоступРазрешен) + | ТОГДА ЛОЖЬ + | КОГДА ВидыОграниченийПрав.ВидДоступа = ЗНАЧЕНИЕ(Перечисление.ДополнительныеЗначенияДоступа.ДоступЗапрещен) + | ТОГДА ИСТИНА + | ИНАЧЕ МАКСИМУМ(ВидыОграниченийПрав.Право = ""Изменение"") + | КОНЕЦ КАК ПравоИзменение + |ПОМЕСТИТЬ ВидыОграниченийПрав + |ИЗ + | ВидыОграниченийПравИсходные КАК ВидыОграниченийПрав + | + |СГРУППИРОВАТЬ ПО + | ВидыОграниченийПрав.ДляВнешнихПользователей, + | ВидыОграниченийПрав.Таблица, + | ВидыОграниченийПрав.ВидДоступа, + | ВидыОграниченийПрав.ВидДоступаПредставление"; + + ТекстЗапросаБезГруппировкиПоОтчетамСОграничениямиДоступаКонец = + "ВЫБРАТЬ РАЗЛИЧНЫЕ + | ВидыИЗначенияДоступа.ГруппаДоступа КАК ГруппаДоступа, + | ВидыИЗначенияДоступа.ВидДоступа КАК ВидДоступа, + | ВидыИЗначенияДоступа.ВсеРазрешены КАК ВсеРазрешены, + | ВидыИЗначенияДоступа.ЗначениеДоступа КАК ЗначениеДоступа + |ПОМЕСТИТЬ ВидыИЗначенияДоступа + |ИЗ + | (ВЫБРАТЬ + | ГруппыДоступаПользователей.ГруппаДоступа КАК ГруппаДоступа, + | ГруппыДоступаВидыДоступа.ВидДоступа КАК ВидДоступа, + | ГруппыДоступаВидыДоступа.ВсеРазрешены КАК ВсеРазрешены, + | ЕСТЬNULL(ГруппыДоступаЗначенияДоступа.ЗначениеДоступа, НЕОПРЕДЕЛЕНО) КАК ЗначениеДоступа + | ИЗ + | ГруппыДоступаПользователей КАК ГруппыДоступаПользователей + | ВНУТРЕННЕЕ СОЕДИНЕНИЕ Справочник.ГруппыДоступа.ВидыДоступа КАК ГруппыДоступаВидыДоступа + | ПО (ГруппыДоступаВидыДоступа.Ссылка = ГруппыДоступаПользователей.ГруппаДоступа) + | ЛЕВОЕ СОЕДИНЕНИЕ Справочник.ГруппыДоступа.ЗначенияДоступа КАК ГруппыДоступаЗначенияДоступа + | ПО (ГруппыДоступаЗначенияДоступа.Ссылка = ГруппыДоступаВидыДоступа.Ссылка) + | И (ГруппыДоступаЗначенияДоступа.ВидДоступа = ГруппыДоступаВидыДоступа.ВидДоступа) + | + | ОБЪЕДИНИТЬ ВСЕ + | + | ВЫБРАТЬ + | ГруппыДоступаПользователей.ГруппаДоступа, + | ПрофилиГруппДоступаВидыДоступа.ВидДоступа, + | ПрофилиГруппДоступаВидыДоступа.ВсеРазрешены, + | ЕСТЬNULL(ПрофилиГруппДоступаЗначенияДоступа.ЗначениеДоступа, НЕОПРЕДЕЛЕНО) + | ИЗ + | ГруппыДоступаПользователей КАК ГруппыДоступаПользователей + | ВНУТРЕННЕЕ СОЕДИНЕНИЕ Справочник.ПрофилиГруппДоступа.ВидыДоступа КАК ПрофилиГруппДоступаВидыДоступа + | ПО (ПрофилиГруппДоступаВидыДоступа.Ссылка = ГруппыДоступаПользователей.Профиль) + | ЛЕВОЕ СОЕДИНЕНИЕ Справочник.ПрофилиГруппДоступа.ЗначенияДоступа КАК ПрофилиГруппДоступаЗначенияДоступа + | ПО (ПрофилиГруппДоступаЗначенияДоступа.Ссылка = ПрофилиГруппДоступаВидыДоступа.Ссылка) + | И (ПрофилиГруппДоступаЗначенияДоступа.ВидДоступа = ПрофилиГруппДоступаВидыДоступа.ВидДоступа) + | ГДЕ + | ПрофилиГруппДоступаВидыДоступа.Предустановленный) КАК ВидыИЗначенияДоступа + |; + | + |//////////////////////////////////////////////////////////////////////////////// + |ВЫБРАТЬ + | ПустыеСсылкиЗначенийДоступа.ПустаяСсылка КАК ПустаяСсылка, + | ПустыеСсылкиЗначенийДоступа.Представление КАК Представление + |ПОМЕСТИТЬ ПустыеСсылкиЗначенийДоступа + |ИЗ + | &ПустыеСсылкиЗначенийДоступа КАК ПустыеСсылкиЗначенийДоступа + |; + | + |//////////////////////////////////////////////////////////////////////////////// + |ВЫБРАТЬ РАЗЛИЧНЫЕ + | ПраваПрофилей.Таблица КАК ОбъектМетаданных, + | ВЫБОР + | КОГДА &УпрощенныйИнтерфейсНастройкиПравДоступа + | ТОГДА ГруппыДоступа.Профиль + | ИНАЧЕ ГруппыДоступа.Ссылка + | КОНЕЦ КАК ГруппаДоступа, + | ПраваПрофилей.ПравоЧтениеБезОграничения КАК ПравоЧтениеБезОграничения, + | ПраваПрофилей.ПравоИзменениеБезОграничения КАК ПравоИзменениеБезОграничения, + | ПраваПрофилей.ПравоДобавлениеБезОграничения КАК ПравоДобавлениеБезОграничения, + | ПраваПрофилей.ПравоПросмотр КАК ПравоПросмотр, + | ПраваПрофилей.ПравоРедактирование КАК ПравоРедактирование, + | ПраваПрофилей.ПравоИнтерактивноеДобавление КАК ПравоИнтерактивноеДобавление, + | ВЫБОР + | КОГДА ПраваПрофилей.ПравоЧтениеБезОграничения + | ТОГДА ИСТИНА + | КОГДА НЕ ПраваПрофилей.ПравоПросмотр + | ТОГДА ЛОЖЬ + | КОГДА НЕ ВидыОграниченийПрав.ВидДоступа ЕСТЬ NULL + | ТОГДА НЕ ВидыОграниченийПрав.ПравоЧтение + | КОГДА НЕ ВидыОграниченийПравБезусловные.ВидДоступа ЕСТЬ NULL + | ТОГДА НЕ ВидыОграниченийПравБезусловные.ПравоЧтение + | ИНАЧЕ ЛОЖЬ + | КОНЕЦ КАК ВидДоступаПравоЧтениеБезОграничения, + | ВЫБОР + | КОГДА ПраваПрофилей.ПравоИзменениеБезОграничения + | ТОГДА ИСТИНА + | КОГДА НЕ ПраваПрофилей.ПравоРедактирование + | ТОГДА ЛОЖЬ + | КОГДА НЕ ВидыОграниченийПрав.ВидДоступа ЕСТЬ NULL + | ТОГДА НЕ ВидыОграниченийПрав.ПравоИзменение + | КОГДА НЕ ВидыОграниченийПравБезусловные.ВидДоступа ЕСТЬ NULL + | ТОГДА НЕ ВидыОграниченийПравБезусловные.ПравоИзменение + | ИНАЧЕ ЛОЖЬ + | КОНЕЦ КАК ВидДоступаПравоИзменениеБезОграничения, + | ВЫБОР + | КОГДА ПраваПрофилей.ПравоДобавлениеБезОграничения + | ТОГДА ИСТИНА + | КОГДА НЕ ПраваПрофилей.ПравоИнтерактивноеДобавление + | ТОГДА ЛОЖЬ + | КОГДА НЕ ВидыОграниченийПрав.ВидДоступа ЕСТЬ NULL + | ТОГДА НЕ ВидыОграниченийПрав.ПравоИзменение + | КОГДА НЕ ВидыОграниченийПравБезусловные.ВидДоступа ЕСТЬ NULL + | ТОГДА НЕ ВидыОграниченийПравБезусловные.ПравоИзменение + | ИНАЧЕ ЛОЖЬ + | КОНЕЦ КАК ВидДоступаПравоДобавлениеБезОграничения, + | ВЫБОР + | КОГДА ВидыОграниченийПрав.ВидДоступа ЕСТЬ NULL + | И ВидыОграниченийПравБезусловные.ВидДоступа ЕСТЬ NULL + | ТОГДА ЛОЖЬ + | ИНАЧЕ ПраваПрофилей.ПравоПросмотр + | КОНЕЦ КАК ВидДоступаПравоПросмотр, + | ВЫБОР + | КОГДА ВидыОграниченийПрав.ВидДоступа ЕСТЬ NULL + | И ВидыОграниченийПравБезусловные.ВидДоступа ЕСТЬ NULL + | ТОГДА ЛОЖЬ + | ИНАЧЕ ПраваПрофилей.ПравоРедактирование + | КОНЕЦ КАК ВидДоступаПравоРедактирование, + | ВЫБОР + | КОГДА ВидыОграниченийПрав.ВидДоступа ЕСТЬ NULL + | И ВидыОграниченийПравБезусловные.ВидДоступа ЕСТЬ NULL + | ТОГДА ЛОЖЬ + | ИНАЧЕ ПраваПрофилей.ПравоИнтерактивноеДобавление + | КОНЕЦ КАК ВидДоступаПравоИнтерактивноеДобавление, + | ВЫБОР + | КОГДА НЕ ВидыОграниченийПрав.ВидДоступа ЕСТЬ NULL + | ТОГДА ВидыОграниченийПрав.ВидДоступа + | КОГДА НЕ ВидыОграниченийПравБезусловные.ВидДоступа ЕСТЬ NULL + | ТОГДА ВидыОграниченийПравБезусловные.ВидДоступа + | ИНАЧЕ НЕОПРЕДЕЛЕНО + | КОНЕЦ КАК ВидДоступа, + | ВЫБОР + | КОГДА НЕ ВидыОграниченийПрав.ВидДоступа ЕСТЬ NULL + | ТОГДА ВидыОграниченийПрав.ВидДоступаПредставление + ВЫБОР + | КОГДА ВидыИЗначенияДоступа.ВсеРазрешены ЕСТЬ NULL + | ТОГДА """" + | КОГДА ВидыИЗначенияДоступа.ВсеРазрешены = ЛОЖЬ + | ТОГДА ВЫБОР + | КОГДА ТИПЗНАЧЕНИЯ(ВидыОграниченийПрав.ВидДоступа) = ТИП(Справочник.Пользователи) + | ИЛИ ТИПЗНАЧЕНИЯ(ВидыОграниченийПрав.ВидДоступа) = ТИП(Справочник.ВнешниеПользователи) + | ТОГДА &ТекстРазрешенныеПользователи + | ИНАЧЕ &ТекстРазрешенные + | КОНЕЦ + | ИНАЧЕ ВЫБОР + | КОГДА ТИПЗНАЧЕНИЯ(ВидыОграниченийПрав.ВидДоступа) = ТИП(Справочник.Пользователи) + | ИЛИ ТИПЗНАЧЕНИЯ(ВидыОграниченийПрав.ВидДоступа) = ТИП(Справочник.ВнешниеПользователи) + | ТОГДА &ТекстЗапрещенныеПользователи + | ИНАЧЕ &ТекстЗапрещенные + | КОНЕЦ + | КОНЕЦ + | ИНАЧЕ ВЫБОР + | КОГДА ПраваПрофилей.ПравоПросмотр + | И НЕ ПраваПрофилей.ПравоЧтениеБезОграничения + | ИЛИ ПраваПрофилей.ПравоРедактирование + | И НЕ ПраваПрофилей.ПравоИзменениеБезОграничения + | ИЛИ ПраваПрофилей.ПравоИнтерактивноеДобавление + | И НЕ ПраваПрофилей.ПравоДобавлениеБезОграничения + | ТОГДА ВЫБОР + | КОГДА НЕ ВидыОграниченийПравБезусловные.ВидДоступа ЕСТЬ NULL + | ТОГДА ВидыОграниченийПравБезусловные.ВидДоступаПредставление + | ИНАЧЕ &ТекстОграничениеБезВидовДоступа + | КОНЕЦ + | ИНАЧЕ &ТекстБезОграничения + | КОНЕЦ + | КОНЕЦ КАК ВидДоступаПредставление, + | ЕСТЬNULL(ВидыИЗначенияДоступа.ВсеРазрешены, ЛОЖЬ) КАК ВсеРазрешены, + | ВЫБОР + | КОГДА ВидыОграниченийПрав.ВидДоступа ЕСТЬ NULL + | ТОГДА """" + | КОГДА НЕ ПустыеСсылкиЗначенийДоступа.Представление ЕСТЬ NULL + | ТОГДА ПустыеСсылкиЗначенийДоступа.Представление + | КОГДА ВидыИЗначенияДоступа.ЗначениеДоступа ЕСТЬ NULL + | ИЛИ ВидыИЗначенияДоступа.ЗначениеДоступа = НЕОПРЕДЕЛЕНО + | ТОГДА ВЫБОР + | КОГДА ВидыИЗначенияДоступа.ВсеРазрешены + | ТОГДА &ТекстВсеРазрешены + | ИНАЧЕ &ТекстВсеЗапрещены + | КОНЕЦ + | ИНАЧЕ ВидыИЗначенияДоступа.ЗначениеДоступа + | КОНЕЦ КАК ЗначениеДоступа, + | СоставыГруппПользователей.Пользователь КАК Пользователь, + | СоставыГруппПользователей.Используется КАК ВходВПрограммуРазрешен + |ИЗ + | ПраваПрофилейНаТаблицы КАК ПраваПрофилей + | ВНУТРЕННЕЕ СОЕДИНЕНИЕ Справочник.ГруппыДоступа КАК ГруппыДоступа + | ПО (ГруппыДоступа.Профиль = ПраваПрофилей.Профиль) + | И (НЕ ГруппыДоступа.ПометкаУдаления) + | ВНУТРЕННЕЕ СОЕДИНЕНИЕ Справочник.ГруппыДоступа.Пользователи КАК УчастникиГруппДоступа + | ПО (УчастникиГруппДоступа.Ссылка = ГруппыДоступа.Ссылка) + | ЛЕВОЕ СОЕДИНЕНИЕ ВидыОграниченийПрав КАК ВидыОграниченийПрав + | ВНУТРЕННЕЕ СОЕДИНЕНИЕ ВидыИЗначенияДоступа КАК ВидыИЗначенияДоступа + | ПО (ВидыИЗначенияДоступа.ВидДоступа = ВидыОграниченийПрав.ВидДоступа) + | И (ВидыОграниченийПрав.ВидДоступа <> ЗНАЧЕНИЕ(Перечисление.ДополнительныеЗначенияДоступа.ДоступРазрешен)) + | И (ВидыОграниченийПрав.ВидДоступа <> ЗНАЧЕНИЕ(Перечисление.ДополнительныеЗначенияДоступа.ДоступЗапрещен)) + | ПО (ВидыОграниченийПрав.Таблица = ПраваПрофилей.Таблица) + | И (ВидыИЗначенияДоступа.ГруппаДоступа = ГруппыДоступа.Ссылка) + | И (НЕ ВидыОграниченийПрав.ДляВнешнихПользователей + | И (ТИПЗНАЧЕНИЯ(УчастникиГруппДоступа.Пользователь) = ТИП(Справочник.Пользователи) + | ИЛИ ТИПЗНАЧЕНИЯ(УчастникиГруппДоступа.Пользователь) = ТИП(Справочник.ГруппыПользователей)) + | ИЛИ ВидыОграниченийПрав.ДляВнешнихПользователей + | И (ТИПЗНАЧЕНИЯ(УчастникиГруппДоступа.Пользователь) = ТИП(Справочник.ВнешниеПользователи) + | ИЛИ ТИПЗНАЧЕНИЯ(УчастникиГруппДоступа.Пользователь) = ТИП(Справочник.ГруппыВнешнихПользователей))) + | И (ПраваПрофилей.ПравоПросмотр + | И НЕ ПраваПрофилей.ПравоЧтениеБезОграничения + | И ВидыОграниченийПрав.ПравоЧтение + | ИЛИ ПраваПрофилей.ПравоРедактирование + | И НЕ ПраваПрофилей.ПравоИзменениеБезОграничения + | И ВидыОграниченийПрав.ПравоИзменение + | ИЛИ ПраваПрофилей.ПравоИнтерактивноеДобавление + | И НЕ ПраваПрофилей.ПравоДобавлениеБезОграничения + | И ВидыОграниченийПрав.ПравоИзменение) + | ЛЕВОЕ СОЕДИНЕНИЕ ВидыОграниченийПрав КАК ВидыОграниченийПравБезусловные + | ПО (ВидыОграниченийПравБезусловные.Таблица = ПраваПрофилей.Таблица) + | И (ВидыОграниченийПравБезусловные.ВидДоступа = ЗНАЧЕНИЕ(Перечисление.ДополнительныеЗначенияДоступа.ДоступРазрешен) + | ИЛИ ВидыОграниченийПравБезусловные.ВидДоступа = ЗНАЧЕНИЕ(Перечисление.ДополнительныеЗначенияДоступа.ДоступЗапрещен)) + | И (НЕ ВидыОграниченийПравБезусловные.ДляВнешнихПользователей + | И (ТИПЗНАЧЕНИЯ(УчастникиГруппДоступа.Пользователь) = ТИП(Справочник.Пользователи) + | ИЛИ ТИПЗНАЧЕНИЯ(УчастникиГруппДоступа.Пользователь) = ТИП(Справочник.ГруппыПользователей)) + | ИЛИ ВидыОграниченийПравБезусловные.ДляВнешнихПользователей + | И (ТИПЗНАЧЕНИЯ(УчастникиГруппДоступа.Пользователь) = ТИП(Справочник.ВнешниеПользователи) + | ИЛИ ТИПЗНАЧЕНИЯ(УчастникиГруппДоступа.Пользователь) = ТИП(Справочник.ГруппыВнешнихПользователей))) + | ЛЕВОЕ СОЕДИНЕНИЕ ПустыеСсылкиЗначенийДоступа КАК ПустыеСсылкиЗначенийДоступа + | ПО (ПустыеСсылкиЗначенийДоступа.ПустаяСсылка = ВидыИЗначенияДоступа.ЗначениеДоступа) + | ВНУТРЕННЕЕ СОЕДИНЕНИЕ РегистрСведений.СоставыГруппПользователей КАК СоставыГруппПользователей + | ПО (СоставыГруппПользователей.ГруппаПользователей = УчастникиГруппДоступа.Пользователь) | И (СоставыГруппПользователей.Пользователь <> &ПользовательНеУказан)"; ТекстЗапросаСГруппировкойПоОтчетамДополнение = @@ -610,6 +1077,9 @@ | ТаблицыОтчетовСПравами.Таблица КАК Таблица, | ТаблицыОтчетовСПравами.Профиль КАК Профиль, | МАКСИМУМ(ТаблицыОтчетовСПравами.ПравоОтчета) КАК ПравоОтчета, + | МАКСИМУМ(ТаблицыОтчетовСПравами.ПравоЧтениеБезОграничения) КАК ПравоЧтениеБезОграничения, + | МАКСИМУМ(ТаблицыОтчетовСПравами.ПравоИзменениеБезОграничения) КАК ПравоИзменениеБезОграничения, + | МАКСИМУМ(ТаблицыОтчетовСПравами.ПравоДобавлениеБезОграничения) КАК ПравоДобавлениеБезОграничения, | МАКСИМУМ(ТаблицыОтчетовСПравами.ПравоПросмотр) КАК ПравоПросмотр, | МАКСИМУМ(ТаблицыОтчетовСПравами.ПравоРедактирование) КАК ПравоРедактирование, | МАКСИМУМ(ТаблицыОтчетовСПравами.ПравоИнтерактивноеДобавление) КАК ПравоИнтерактивноеДобавление @@ -620,6 +1090,9 @@ | ТаблицыОтчетов.Таблица КАК Таблица, | ПраваПрофилейНаОтчеты.Профиль КАК Профиль, | ИСТИНА КАК ПравоОтчета, + | ЛОЖЬ КАК ПравоЧтениеБезОграничения, + | ЛОЖЬ КАК ПравоИзменениеБезОграничения, + | ЛОЖЬ КАК ПравоДобавлениеБезОграничения, | ЛОЖЬ КАК ПравоПросмотр, | ЛОЖЬ КАК ПравоРедактирование, | ЛОЖЬ КАК ПравоИнтерактивноеДобавление @@ -635,6 +1108,9 @@ | ТаблицыОтчетов.Таблица, | ПраваПрофилейНаТаблицы.Профиль, | ЛОЖЬ, + | ПраваПрофилейНаТаблицы.ПравоЧтениеБезОграничения, + | ПраваПрофилейНаТаблицы.ПравоИзменениеБезОграничения, + | ПраваПрофилейНаТаблицы.ПравоДобавлениеБезОграничения, | ПраваПрофилейНаТаблицы.ПравоПросмотр, | ПраваПрофилейНаТаблицы.ПравоРедактирование, | ПраваПрофилейНаТаблицы.ПравоИнтерактивноеДобавление @@ -652,6 +1128,9 @@ | ЛОЖЬ, | ЛОЖЬ, | ЛОЖЬ, + | ЛОЖЬ, + | ЛОЖЬ, + | ЛОЖЬ, | ЛОЖЬ | ИЗ | ТаблицыОтчетов КАК ТаблицыОтчетов @@ -690,6 +1169,18 @@ | ТОГДА ГруппыДоступа.Профиль | ИНАЧЕ ГруппыДоступа.Ссылка | КОНЕЦ КАК ГруппаДоступа, + | ПраваПрофилей.ПравоЧтениеБезОграничения КАК ПравоЧтениеБезОграничения, + | ПраваПрофилей.ПравоИзменениеБезОграничения КАК ПравоИзменениеБезОграничения, + | ПраваПрофилей.ПравоДобавлениеБезОграничения КАК ПравоДобавлениеБезОграничения, + | ВЫБОР + | КОГДА ПраваПрофилей.ПравоИнтерактивноеДобавление + | ТОГДА ПраваПрофилей.ПравоДобавлениеБезОграничения + | КОГДА ПраваПрофилей.ПравоРедактирование + | ТОГДА ПраваПрофилей.ПравоИзменениеБезОграничения + | КОГДА ПраваПрофилей.ПравоПросмотр + | ТОГДА ПраваПрофилей.ПравоЧтениеБезОграничения + | ИНАЧЕ ЛОЖЬ + | КОНЕЦ КАК ПравоБезОграничения, | ПраваПрофилей.ПравоПросмотр КАК ПравоПросмотр, | ПраваПрофилей.ПравоРедактирование КАК ПравоРедактирование, | ПраваПрофилей.ПравоИнтерактивноеДобавление КАК ПравоИнтерактивноеДобавление, @@ -714,7 +1205,6 @@ | ПО (УчастникиГруппДоступа.Ссылка = ГруппыДоступа.Ссылка) | ВНУТРЕННЕЕ СОЕДИНЕНИЕ РегистрСведений.СоставыГруппПользователей КАК СоставыГруппПользователей | ПО (СоставыГруппПользователей.ГруппаПользователей = УчастникиГруппДоступа.Пользователь) - | И (ТИПЗНАЧЕНИЯ(СоставыГруппПользователей.Пользователь) = ТИП(Справочник.Пользователи)) | И (СоставыГруппПользователей.Пользователь <> &ПользовательНеУказан)"; ТекстЗапросаСГруппировкойПоОтчетамКонечный = @@ -732,6 +1222,10 @@ | ПраваПользователей.ПравоОтчета КАК ПравоОтчета, | ПраваПользователей.ОбъектМетаданных КАК ОбъектМетаданных, | ПраваПользователей.ГруппаДоступа КАК ГруппаДоступа, + | ПраваПользователей.ПравоЧтениеБезОграничения КАК ПравоЧтениеБезОграничения, + | ПраваПользователей.ПравоИзменениеБезОграничения КАК ПравоИзменениеБезОграничения, + | ПраваПользователей.ПравоДобавлениеБезОграничения КАК ПравоДобавлениеБезОграничения, + | ПраваПользователей.ПравоБезОграничения КАК ПравоБезОграничения, | ПраваПользователей.ПравоПросмотр КАК ПравоПросмотр, | ПраваПользователей.ПравоРедактирование КАК ПравоРедактирование, | ПраваПользователей.ПравоИнтерактивноеДобавление КАК ПравоИнтерактивноеДобавление, @@ -755,6 +1249,10 @@ | ЛОЖЬ, | ЛОЖЬ, | ЛОЖЬ, + | ЛОЖЬ, + | ЛОЖЬ, + | ЛОЖЬ, + | ЛОЖЬ, | 0, | ПользователиСПравами.Пользователь, | ПользователиСПравами.ВходВПрограммуРазрешен @@ -772,7 +1270,38 @@ | И ПраваПользователей.Пользователь = ПользователиСПравами.Пользователь))"; Запрос = Новый Запрос; + + УсловиеОтбораПоПользователям = ""; + Если ОтборПоВходВПрограммуРазрешен() Тогда + УсловиеОтбораПоПользователям = " + | И СоставыГруппПользователей.Используется"; + КонецЕсли; + + ОтборПоВидуПользователей = ОтборПоВидуПользователей(); + ОтборПоПользователям = ОтборПоПользователям(); + Если ЗначениеЗаполнено(ОтборПоПользователям.Значение) И ОтборПоПользователям.БезГрупп Тогда + Запрос.УстановитьПараметр("ВыбранныеПользователиБезГрупп", ОтборПоПользователям.Значение); + УсловиеОтбораПоПользователям = УсловиеОтбораПоПользователям + " + | И СоставыГруппПользователей.Пользователь В (&ВыбранныеПользователиБезГрупп)"; + + ИначеЕсли ЗначениеЗаполнено(ОтборПоПользователям.Значение) Тогда + Запрос.УстановитьПараметр("ВыбранныеПользователиИГруппы", ОтборПоПользователям.Значение); + УсловиеОтбораПоПользователям = УсловиеОтбораПоПользователям + " + | ВНУТРЕННЕЕ СОЕДИНЕНИЕ РегистрСведений.СоставыГруппПользователей КАК ОтборПользователей + | ПО (ОтборПользователей.Пользователь = СоставыГруппПользователей.Пользователь) + | И (ОтборПользователей.ГруппаПользователей В (&ВыбранныеПользователиИГруппы))"; + + ИначеЕсли ОтборПоВидуПользователей = "Пользователи" Тогда + УсловиеОтбораПоПользователям = УсловиеОтбораПоПользователям + " + | И (ТИПЗНАЧЕНИЯ(СоставыГруппПользователей.Пользователь) = ТИП(Справочник.Пользователи))"; + + ИначеЕсли ОтборПоВидуПользователей = "ВнешниеПользователи" Тогда + УсловиеОтбораПоПользователям = УсловиеОтбораПоПользователям + " + | И (ТИПЗНАЧЕНИЯ(СоставыГруппПользователей.Пользователь) = ТИП(Справочник.ВнешниеПользователи))"; + КонецЕсли; + ВключенаГруппировкаПоОтчетам = ВключенаГруппировкаПоОтчетам(); + ВариантСОграничениямиДоступа = ВариантСОграничениямиДоступа(); Если ВключенаГруппировкаПоОтчетам Тогда ТекстЗапросаОсновной = ТекстЗапросаСГруппировкойПоОтчетам; @@ -780,6 +1309,40 @@ + ТекстЗапросаСГруппировкойПоОтчетамДополнение; Запрос.УстановитьПараметр("ПраваРолейНаОтчеты", ПраваРолейНаОтчеты()); Запрос.УстановитьПараметр("ТаблицыОтчетов", ТаблицыОтчетов()); + + ИначеЕсли ВариантСОграничениямиДоступа Тогда + УниверсальноеОграничение = + УправлениеДоступомСлужебный.ОграничиватьДоступНаУровнеЗаписейУниверсально(Истина, Истина); + Если УниверсальноеОграничение Тогда + ТекстЗапросаБезГруппировкиПоОтчетамСОграничениямиДоступаВидыОграничений + = ТекстЗапросаБезГруппировкиПоОтчетамСОграничениямиДоступаВидыОграниченийПоНовому; + Запрос.УстановитьПараметр("ВидыОграниченийПрав", + Отчеты.АнализПравДоступа.ВидыОграниченийПрав(, Истина)); + Иначе + ТекстЗапросаБезГруппировкиПоОтчетамСОграничениямиДоступаВидыОграничений + = ТекстЗапросаБезГруппировкиПоОтчетамСОграничениямиДоступаВидыОграниченийПоСтарому; + Запрос.УстановитьПараметр("ВидыОграниченийПрав", + Отчеты.АнализПравДоступа.ВидыОграниченийПрав()); + КонецЕсли; + ТекстЗапросаОсновной = ТекстЗапросаБезГруппировкиПоОтчетамСОграничениямиДоступаНачало + + УсловиеОтбораПоПользователям + + ОбщегоНазначения.РазделительПакетаЗапросов() + + ТекстЗапросаБезГруппировкиПоОтчетамСОграничениямиДоступаВидыОграничений + + ОбщегоНазначения.РазделительПакетаЗапросов() + + ТекстЗапросаБезГруппировкиПоОтчетамСОграничениямиДоступаКонец; + Запрос.Текст = ТекстЗапросаОбщий; + Запрос.УстановитьПараметр("ТекстРазрешенные", " (" + НСтр("ru = 'Разрешенные'")+ ")"); + Запрос.УстановитьПараметр("ТекстЗапрещенные", " (" + НСтр("ru = 'Запрещенные'") + ")"); + Запрос.УстановитьПараметр("ТекстРазрешенныеПользователи", " (" + НСтр("ru = 'Разрешенные'") + ") - " + + НСтр("ru = 'авторизованный пользователь всегда разрешен'")); + Запрос.УстановитьПараметр("ТекстЗапрещенныеПользователи", " (" + НСтр("ru = 'Запрещенные'") + ") - " + + НСтр("ru = 'авторизованный пользователь всегда разрешен'")); + Запрос.УстановитьПараметр("ТекстОграничениеБезВидовДоступа", "<" + НСтр("ru = 'Ограничение без видов доступа'")+ ">"); + Запрос.УстановитьПараметр("ТекстБезОграничения", "<" + НСтр("ru = 'Без ограничения'") + ">"); + Запрос.УстановитьПараметр("ТекстВсеРазрешены", "<" + НСтр("ru = 'Все разрешены'") + ">"); + Запрос.УстановитьПараметр("ТекстВсеЗапрещены", "<" + НСтр("ru = 'Все запрещены'") + ">"); + Запрос.УстановитьПараметр("ПустыеСсылкиЗначенийДоступа", + УправлениеДоступомСлужебный.ПустыеСсылкиЗначенийДоступа()); Иначе ТекстЗапросаОсновной = ТекстЗапросаБезГруппировкиПоОтчетам; Запрос.Текст = ТекстЗапросаОбщий; @@ -809,25 +1372,6 @@ Запрос.Текст = СтрЗаменить(Запрос.Текст, "&ОтборОтчетовПоТаблицам", "ИСТИНА"); КонецЕсли; - УсловиеОтбораПоПользователям = ""; - Если ОтборПоВходВПрограммуРазрешен() Тогда - УсловиеОтбораПоПользователям = " - | И СоставыГруппПользователей.Используется"; - КонецЕсли; - - ОтборПоПользователям = ОтборПоПользователям(); - Если ЗначениеЗаполнено(ОтборПоПользователям.Значение) И ОтборПоПользователям.БезГрупп Тогда - Запрос.УстановитьПараметр("ВыбранныеПользователиБезГрупп", ОтборПоПользователям.Значение); - УсловиеОтбораПоПользователям = УсловиеОтбораПоПользователям + " - | И СоставыГруппПользователей.Пользователь В (&ВыбранныеПользователиБезГрупп)"; - - ИначеЕсли ЗначениеЗаполнено(ОтборПоПользователям.Значение) Тогда - Запрос.УстановитьПараметр("ВыбранныеПользователиИГруппы", ОтборПоПользователям.Значение); - УсловиеОтбораПоПользователям = УсловиеОтбораПоПользователям + " - | ВНУТРЕННЕЕ СОЕДИНЕНИЕ РегистрСведений.СоставыГруппПользователей КАК ОтборПользователей - | ПО (ОтборПользователей.Пользователь = СоставыГруппПользователей.Пользователь) - | И (ОтборПользователей.ГруппаПользователей В (&ВыбранныеПользователиИГруппы))"; - КонецЕсли; Запрос.Текст = Запрос.Текст + УсловиеОтбораПоПользователям; Если ВключенаГруппировкаПоОтчетам Тогда @@ -856,6 +1400,52 @@ КонецФункции +Функция ВариантСОграничениямиДоступа() + + Вариант = КомпоновщикНастроек.Настройки.ДополнительныеСвойства.КлючПредопределенногоВарианта; + + Возврат Вариант = "ПраваПользователяНаТаблицу"; + +КонецФункции + +Функция НастройкиПравПоТаблицеВОтборе() + + Таблица = ОтборПоТаблицам(); + Если Не ЗначениеЗаполнено(Таблица) + Или Не ОписаниеТиповИдентификатора().СодержитТип(ТипЗнч(Таблица)) Тогда + Возврат Неопределено; + КонецЕсли; + + МетаданныеТаблицы = ОбщегоНазначения.ОбъектМетаданныхПоИдентификатору(Таблица, Ложь); + Если МетаданныеТаблицы = Неопределено + Или Не ОбщегоНазначения.ЭтоОбъектСсылочногоТипа(МетаданныеТаблицы) Тогда + Возврат Неопределено; + КонецЕсли; + + МенеджерОбъекта = ОбщегоНазначения.МенеджерОбъектаПоПолномуИмени(МетаданныеТаблицы.ПолноеИмя()); + ПустаяСсылка = МенеджерОбъекта.ПустаяСсылка(); + ТипСсылки = ТипЗнч(ПустаяСсылка); + ВозможныеПрава = УправлениеДоступомСлужебныйПовтИсп.ВозможныеПраваДляНастройкиПравОбъектов(); + + ОписаниеПрав = ВозможныеПрава.ПоТипамСсылок.Получить(ТипСсылки); + Если ОписаниеПрав = Неопределено Тогда + Возврат Неопределено; + КонецЕсли; + + Свойства = Новый Структура("Иерархический", Ложь); + ЗаполнитьЗначенияСвойств(Свойства, МетаданныеТаблицы); + + Результат = Новый Структура; + Результат.Вставить("ЕстьИерархия", Свойства.Иерархический); + Результат.Вставить("ОписаниеПрав", ОписаниеПрав); + Результат.Вставить("ТипСсылки", ТипСсылки); + Результат.Вставить("ПустаяСсылка", ПустаяСсылка); + + + Возврат Результат; + +КонецФункции + // Параметры: // КоллекцияЭлементов - КоллекцияЭлементовСтруктурыНастроекКомпоновкиДанных // СписокПолей - Массив @@ -904,6 +1494,29 @@ КонецФункции +Функция ОтборПоВидуПользователей() + + Если Не Константы.ИспользоватьВнешнихПользователей.Получить() Тогда + Возврат "Пользователи"; + КонецЕсли; + + ПолеОтбора = КомпоновщикНастроек.ПолучитьНастройки().ПараметрыДанных.Элементы.Найти("ВидПользователей"); + Если Не ПолеОтбора.Использование Тогда + Возврат ""; + КонецЕсли; + + Если ПолеОтбора.Значение = 0 Тогда + Возврат "Пользователи"; + КонецЕсли; + + Если ПолеОтбора.Значение = 1 Тогда + Возврат "ВнешниеПользователи"; + КонецЕсли; + + Возврат ""; + +КонецФункции + Функция ОтборПоПользователям() Результат = Новый Структура; @@ -969,17 +1582,416 @@ КонецФункции -Процедура УстановитьОтборПоПользователям(НовыеНастройкиКД, СписокПользователей) +Функция НастройкиПравПоОбъектам() - ИмяПараметра = "Пользователь"; + Результат = Новый Структура; + Результат.Вставить("НастройкиПравПоОбъектам", Новый ТаблицаЗначений); + Результат.Вставить("НастройкиПравИерархия", Новый ТаблицаЗначений); + Результат.Вставить("НастройкиПравЛегенда", Новый ТаблицаЗначений); + Результат.Вставить("ВладелецНастроекЗаголовок", ""); - Параметр = НовыеНастройкиКД.ПараметрыДанных.Элементы.Найти(ИмяПараметра); + Если Не ВариантСОграничениямиДоступа() Тогда + Возврат Результат; + КонецЕсли; + + НастройкиПрав = НастройкиПравПоТаблицеВОтборе(); + Если НастройкиПрав = Неопределено Тогда + Возврат Результат; + КонецЕсли; + Результат.ВладелецНастроекЗаголовок = Строка(НастройкиПрав.ТипСсылки); + + ОписаниеПользователя = ОтборПоПользователям().Значение; + Если ТипЗнч(ОписаниеПользователя) = Тип("СписокЗначений") Тогда + Если ОписаниеПользователя.Количество() <> 1 Тогда + Возврат Результат; + КонецЕсли; + Пользователь = ОписаниеПользователя[0].Значение; + Иначе + Пользователь = ОписаниеПользователя; + КонецЕсли; + Если ТипЗнч(Пользователь) <> Тип("СправочникСсылка.Пользователи") + И ТипЗнч(Пользователь) <> Тип("СправочникСсылка.ВнешниеПользователи") Тогда + Возврат Результат; + КонецЕсли; + + Если Пользователи.ЭтоПолноправныйПользователь(Пользователь) Тогда + Возврат Результат; + КонецЕсли; + + ИмяДляПодпапок = ОписаниеКолонкиДляПодпапок().Имя; + ЗаголовкиПрав = ЗаголовкиПрав(НастройкиПрав, ИмяДляПодпапок); + + Запрос = Новый Запрос; + Запрос.УстановитьПараметр("ТипОбъектов", НастройкиПрав.ТипСсылки); + Запрос.УстановитьПараметр("Пользователь", Пользователь); + Запрос.УстановитьПараметр("ИмяДляПодпапок", ИмяДляПодпапок); + Запрос.УстановитьПараметр("ЕстьИерархия", НастройкиПрав.ЕстьИерархия); + Запрос.УстановитьПараметр("ПустойРодитель", НастройкиПрав.ПустаяСсылка); + Запрос.УстановитьПараметр("ЗаголовкиПрав", ЗаголовкиПрав); + Запрос.УстановитьПараметр("ПредставлениеПерсонально", НСтр("ru = 'Персонально'")); + Запрос.УстановитьПараметр("ПредставлениеНеопределено", НСтр("ru = 'Неопределено'")); + Запрос.УстановитьПараметр("ПредставлениеГруппыПользователей", + " (" + НСтр("ru = 'Группа пользователей'") + ")"); + Запрос.УстановитьПараметр("ПредставлениеГруппыВнешнихПользователей", + " (" + НСтр("ru = 'Группа внешних пользователей'") + ")"); + + Запрос.Текст = + "ВЫБРАТЬ + | НастройкиПрав.Объект КАК ВладелецНастроек, + | НастройкиПрав.Пользователь КАК ПользовательНастройки, + | НастройкиПрав.Право КАК НастроенноеПраво, + | ВЫБОР + | КОГДА НастройкиПрав.ПравоЗапрещено + | ТОГДА 2 + | ИНАЧЕ 1 + | КОНЕЦ КАК ЗначениеПрава + |ПОМЕСТИТЬ НастройкиПравПоВладельцам + |ИЗ + | РегистрСведений.НастройкиПравОбъектов КАК НастройкиПрав + |ГДЕ + | ИСТИНА В + | (ВЫБРАТЬ ПЕРВЫЕ 1 + | ИСТИНА + | ИЗ + | РегистрСведений.СоставыГруппПользователей КАК СоставыГруппПользователей + | ГДЕ + | СоставыГруппПользователей.ГруппаПользователей = НастройкиПрав.Пользователь + | И СоставыГруппПользователей.Пользователь = &Пользователь) + | И ТИПЗНАЧЕНИЯ(НастройкиПрав.Объект) = &ТипОбъектов + | + |ОБЪЕДИНИТЬ ВСЕ + | + |ВЫБРАТЬ + | НастройкиПрав.Объект, + | НастройкиПрав.Пользователь, + | &ИмяДляПодпапок, + | ВЫБОР + | КОГДА МАКСИМУМ(НастройкиПрав.НаследованиеРазрешено) = ЛОЖЬ + | ТОГДА 2 + | ИНАЧЕ 1 + | КОНЕЦ + |ИЗ + | РегистрСведений.НастройкиПравОбъектов КАК НастройкиПрав + |ГДЕ + | &ЕстьИерархия + | И ИСТИНА В + | (ВЫБРАТЬ ПЕРВЫЕ 1 + | ИСТИНА + | ИЗ + | РегистрСведений.СоставыГруппПользователей КАК СоставыГруппПользователей + | ГДЕ + | СоставыГруппПользователей.ГруппаПользователей = НастройкиПрав.Пользователь + | И СоставыГруппПользователей.Пользователь = &Пользователь) + | И ТИПЗНАЧЕНИЯ(НастройкиПрав.Объект) = &ТипОбъектов + | + |СГРУППИРОВАТЬ ПО + | НастройкиПрав.Объект, + | НастройкиПрав.Пользователь + |; + | + |//////////////////////////////////////////////////////////////////////////////// + |ВЫБРАТЬ + | РассчитанныеПрава.ВладелецНастроек КАК ВладелецНастроек, + | РассчитанныеПрава.НастроенноеПраво КАК НастроенноеПраво, + | МАКСИМУМ(РассчитанныеПрава.ЗначениеПрава) КАК ЗначениеПрава + |ПОМЕСТИТЬ РассчитанныеПраваПоВладельцам + |ИЗ + | (ВЫБРАТЬ РАЗЛИЧНЫЕ + | НаследованиеНастроек.Объект КАК ВладелецНастроек, + | НастройкиПрав.Право КАК НастроенноеПраво, + | 1 КАК ЗначениеПрава + | ИЗ + | РегистрСведений.НаследованиеНастроекПравОбъектов КАК НаследованиеНастроек + | ВНУТРЕННЕЕ СОЕДИНЕНИЕ РегистрСведений.НастройкиПравОбъектов КАК НастройкиПрав + | ПО (ТИПЗНАЧЕНИЯ(НаследованиеНастроек.Объект) = &ТипОбъектов) + | И (НастройкиПрав.Объект = НаследованиеНастроек.Родитель) + | И НаследованиеНастроек.УровеньИспользования < НастройкиПрав.УровеньРазрешенияПрава + | ВНУТРЕННЕЕ СОЕДИНЕНИЕ РегистрСведений.СоставыГруппПользователей КАК СоставыГруппПользователей + | ПО (СоставыГруппПользователей.Пользователь = &Пользователь) + | И (СоставыГруппПользователей.ГруппаПользователей = НастройкиПрав.Пользователь) + | + | ОБЪЕДИНИТЬ ВСЕ + | + | ВЫБРАТЬ РАЗЛИЧНЫЕ + | НаследованиеНастроек.Объект, + | НастройкиПрав.Право, + | 2 + | ИЗ + | РегистрСведений.НаследованиеНастроекПравОбъектов КАК НаследованиеНастроек + | ВНУТРЕННЕЕ СОЕДИНЕНИЕ РегистрСведений.НастройкиПравОбъектов КАК НастройкиПрав + | ПО (ТИПЗНАЧЕНИЯ(НаследованиеНастроек.Объект) = &ТипОбъектов) + | И (НастройкиПрав.Объект = НаследованиеНастроек.Родитель) + | И НаследованиеНастроек.УровеньИспользования < НастройкиПрав.УровеньЗапрещенияПрава + | ВНУТРЕННЕЕ СОЕДИНЕНИЕ РегистрСведений.СоставыГруппПользователей КАК СоставыГруппПользователей + | ПО (СоставыГруппПользователей.Пользователь = &Пользователь) + | И (СоставыГруппПользователей.ГруппаПользователей = НастройкиПрав.Пользователь)) КАК РассчитанныеПрава + | + |СГРУППИРОВАТЬ ПО + | РассчитанныеПрава.ВладелецНастроек, + | РассчитанныеПрава.НастроенноеПраво + |; + | + |//////////////////////////////////////////////////////////////////////////////// + |ВЫБРАТЬ + | НаследованиеНастроек.Объект КАК ВладелецНастроек, + | НаследованиеНастроек.Наследовать КАК НаследованиеНастроек + |ПОМЕСТИТЬ НаследованиеНастроекПоВладельцам + |ИЗ + | РегистрСведений.НаследованиеНастроекПравОбъектов КАК НаследованиеНастроек + |ГДЕ + | НаследованиеНастроек.Объект = НаследованиеНастроек.Родитель + | И ТИПЗНАЧЕНИЯ(НаследованиеНастроек.Объект) = &ТипОбъектов + | И ИСТИНА В + | (ВЫБРАТЬ ПЕРВЫЕ 1 + | ИСТИНА + | ИЗ + | РассчитанныеПраваПоВладельцам КАК РассчитанныеПраваПоВладельцам + | ВНУТРЕННЕЕ СОЕДИНЕНИЕ РегистрСведений.НаследованиеНастроекПравОбъектов КАК Родители + | ПО + | Родители.Объект = РассчитанныеПраваПоВладельцам.ВладелецНастроек + | И Родители.Родитель = НаследованиеНастроек.Объект) + |; + | + |//////////////////////////////////////////////////////////////////////////////// + |ВЫБРАТЬ + | ЗаголовкиПрав.ИмяПрава КАК ИмяПрава, + | ЗаголовкиПрав.ЗаголовокПрава КАК ЗаголовокПрава, + | ЗаголовкиПрав.ИндексПрава КАК ИндексПрава + |ПОМЕСТИТЬ ЗаголовкиПрав + |ИЗ + | &ЗаголовкиПрав КАК ЗаголовкиПрав + |; + | + |//////////////////////////////////////////////////////////////////////////////// + |ВЫБРАТЬ ПЕРВЫЕ 1 + | РассчитанныеПраваПоВладельцам.ВладелецНастроек КАК ВладелецНастроек, + | ЕСТЬNULL(НаследованиеНастроекПоВладельцам.НаследованиеНастроек, ЛОЖЬ) КАК НаследованиеНастроек + |ПОМЕСТИТЬ ОдинВладелецНастроек + |ИЗ + | РассчитанныеПраваПоВладельцам КАК РассчитанныеПраваПоВладельцам + | ЛЕВОЕ СОЕДИНЕНИЕ НаследованиеНастроекПоВладельцам КАК НаследованиеНастроекПоВладельцам + | ПО (НаследованиеНастроекПоВладельцам.ВладелецНастроек = РассчитанныеПраваПоВладельцам.ВладелецНастроек) + |; + | + |//////////////////////////////////////////////////////////////////////////////// + |ВЫБРАТЬ + | ВЫБОР + | КОГДА НаследованиеНастроекПоВладельцам.ВладелецНастроек.Родитель <> &ПустойРодитель + | ТОГДА НаследованиеНастроекПоВладельцам.ВладелецНастроек.Родитель + | ИНАЧЕ НЕОПРЕДЕЛЕНО + | КОНЕЦ КАК РодительВладельцаИлиПользователяНастроек, + | НаследованиеНастроекПоВладельцам.ВладелецНастроек КАК ВладелецИлиПользовательНастроек, + | ПРЕДСТАВЛЕНИЕ(НаследованиеНастроекПоВладельцам.ВладелецНастроек) КАК ВладелецИлиПользовательНастроекПредставление, + | ВЫБОР + | КОГДА НаследованиеНастроекПоВладельцам.ВладелецНастроек.Родитель <> &ПустойРодитель + | ТОГДА НаследованиеНастроекПоВладельцам.ВладелецНастроек.Родитель + | ИНАЧЕ НЕОПРЕДЕЛЕНО + | КОНЕЦ КАК ВладелецНастроек, + | ИСТИНА КАК ЭтоВладелецНастроек + |ИЗ + | НаследованиеНастроекПоВладельцам КАК НаследованиеНастроекПоВладельцам + | + |ОБЪЕДИНИТЬ ВСЕ + | + |ВЫБРАТЬ РАЗЛИЧНЫЕ + | НастройкиПравПоВладельцам.ВладелецНастроек, + | НастройкиПравПоВладельцам.ПользовательНастройки, + | ВЫБОР + | КОГДА ТИПЗНАЧЕНИЯ(НастройкиПравПоВладельцам.ПользовательНастройки) = ТИП(Справочник.Пользователи) + | ИЛИ ТИПЗНАЧЕНИЯ(НастройкиПравПоВладельцам.ПользовательНастройки) = ТИП(Справочник.ВнешниеПользователи) + | ТОГДА &ПредставлениеПерсонально + | КОГДА ТИПЗНАЧЕНИЯ(НастройкиПравПоВладельцам.ПользовательНастройки) = ТИП(Справочник.ГруппыПользователей) + | ТОГДА ВЫРАЗИТЬ(НастройкиПравПоВладельцам.ПользовательНастройки КАК Справочник.ГруппыПользователей).Наименование + &ПредставлениеГруппыПользователей + | КОГДА ТИПЗНАЧЕНИЯ(НастройкиПравПоВладельцам.ПользовательНастройки) = ТИП(Справочник.ГруппыВнешнихПользователей) + | ТОГДА ВЫРАЗИТЬ(НастройкиПравПоВладельцам.ПользовательНастройки КАК Справочник.ГруппыВнешнихПользователей).Наименование + &ПредставлениеГруппыВнешнихПользователей + | ИНАЧЕ &ПредставлениеНеопределено + | КОНЕЦ, + | НастройкиПравПоВладельцам.ВладелецНастроек, + | ЛОЖЬ + |ИЗ + | НастройкиПравПоВладельцам КАК НастройкиПравПоВладельцам + |; + | + |//////////////////////////////////////////////////////////////////////////////// + |ВЫБРАТЬ + | ВЫБОР + | КОГДА РассчитанныеПраваПоВладельцам.ВладелецНастроек.Родитель <> &ПустойРодитель + | ТОГДА РассчитанныеПраваПоВладельцам.ВладелецНастроек.Родитель + | ИНАЧЕ НЕОПРЕДЕЛЕНО + | КОНЕЦ КАК ВладелецНастроек, + | РассчитанныеПраваПоВладельцам.ВладелецНастроек КАК ВладелецИлиПользовательНастроек, + | ИСТИНА КАК ЭтоВладелецНастроек, + | ЕСТЬNULL(НаследованиеНастроекПоВладельцам.НаследованиеНастроек, ЛОЖЬ) КАК НаследованиеНастроекВладельцем, + | ЕСТЬNULL(ЗаголовкиПрав.ЗаголовокПрава, РассчитанныеПраваПоВладельцам.НастроенноеПраво) КАК НастроенноеПраво, + | ЕСТЬNULL(ЗаголовкиПрав.ИндексПрава, 99) КАК ИндексПрава, + | РассчитанныеПраваПоВладельцам.ЗначениеПрава КАК ЗначениеПрава + |ИЗ + | РассчитанныеПраваПоВладельцам КАК РассчитанныеПраваПоВладельцам + | ЛЕВОЕ СОЕДИНЕНИЕ ЗаголовкиПрав КАК ЗаголовкиПрав + | ПО (ЗаголовкиПрав.ИмяПрава = РассчитанныеПраваПоВладельцам.НастроенноеПраво) + | ЛЕВОЕ СОЕДИНЕНИЕ НаследованиеНастроекПоВладельцам КАК НаследованиеНастроекПоВладельцам + | ПО (НаследованиеНастроекПоВладельцам.ВладелецНастроек = РассчитанныеПраваПоВладельцам.ВладелецНастроек) + | + |ОБЪЕДИНИТЬ ВСЕ + | + |ВЫБРАТЬ + | НастройкиПравПоВладельцам.ВладелецНастроек, + | НастройкиПравПоВладельцам.ПользовательНастройки, + | ЛОЖЬ, + | ЕСТЬNULL(НаследованиеНастроекПоВладельцам.НаследованиеНастроек, ЛОЖЬ), + | ЕСТЬNULL(ЗаголовкиПрав.ЗаголовокПрава, НастройкиПравПоВладельцам.НастроенноеПраво), + | ЕСТЬNULL(ЗаголовкиПрав.ИндексПрава, 99), + | НастройкиПравПоВладельцам.ЗначениеПрава + |ИЗ + | НастройкиПравПоВладельцам КАК НастройкиПравПоВладельцам + | ЛЕВОЕ СОЕДИНЕНИЕ ЗаголовкиПрав КАК ЗаголовкиПрав + | ПО (ЗаголовкиПрав.ИмяПрава = НастройкиПравПоВладельцам.НастроенноеПраво) + | ЛЕВОЕ СОЕДИНЕНИЕ НаследованиеНастроекПоВладельцам КАК НаследованиеНастроекПоВладельцам + | ПО (НаследованиеНастроекПоВладельцам.ВладелецНастроек = НастройкиПравПоВладельцам.ВладелецНастроек) + | + |ОБЪЕДИНИТЬ ВСЕ + | + |ВЫБРАТЬ + | ВЫБОР + | КОГДА ОдинВладелецНастроек.ВладелецНастроек.Родитель <> &ПустойРодитель + | ТОГДА ОдинВладелецНастроек.ВладелецНастроек.Родитель + | ИНАЧЕ НЕОПРЕДЕЛЕНО + | КОНЕЦ, + | ОдинВладелецНастроек.ВладелецНастроек, + | ИСТИНА, + | ОдинВладелецНастроек.НаследованиеНастроек, + | ЗаголовкиПрав.ЗаголовокПрава, + | ЗаголовкиПрав.ИндексПрава, + | 0 + |ИЗ + | ЗаголовкиПрав КАК ЗаголовкиПрав + | ВНУТРЕННЕЕ СОЕДИНЕНИЕ ОдинВладелецНастроек КАК ОдинВладелецНастроек + | ПО (НЕ ИСТИНА В + | (ВЫБРАТЬ ПЕРВЫЕ 1 + | ИСТИНА + | ИЗ + | РассчитанныеПраваПоВладельцам КАК РассчитанныеПрава + | ГДЕ + | РассчитанныеПрава.НастроенноеПраво = ЗаголовкиПрав.ИмяПрава))"; + + РезультатыЗапроса = Запрос.ВыполнитьПакет(); + + Результат.НастройкиПравИерархия = РезультатыЗапроса[РезультатыЗапроса.ВГраница()-1].Выгрузить(); + Результат.НастройкиПравПоОбъектам = РезультатыЗапроса[РезультатыЗапроса.ВГраница()].Выгрузить(); + Результат.НастройкиПравЛегенда = НастройкиПравЛегенда(ЗаголовкиПрав, НастройкиПрав.ЕстьИерархия); + + Возврат Результат; + +КонецФункции + +Функция ЗаголовкиПрав(НастройкиПрав, ИмяДляПодпапок) + + Результат = Новый ТаблицаЗначений; + Результат.Колонки.Добавить("ИмяПрава", Новый ОписаниеТипов("Строка", + ,,, Новый КвалификаторыСтроки(60, ДопустимаяДлина.Переменная))); + Результат.Колонки.Добавить("ИндексПрава", Новый ОписаниеТипов("Число", + ,, Новый КвалификаторыЧисла(2, 0, ДопустимыйЗнак.Неотрицательный))); + Результат.Колонки.Добавить("ЗаголовокПрава", Новый ОписаниеТипов("Строка", + ,,, Новый КвалификаторыСтроки(60, ДопустимаяДлина.Переменная))); + Результат.Колонки.Добавить("ПодсказкаПрава", Новый ОписаниеТипов("Строка", + ,,, Новый КвалификаторыСтроки(150, ДопустимаяДлина.Переменная))); + + Для Каждого ОписаниеПрава Из НастройкиПрав.ОписаниеПрав Цикл + ПредставленияПрава = РегистрыСведений.НастройкиПравОбъектов.ПредставлениеВозможногоПрава(ОписаниеПрава); + НоваяСтрока = Результат.Добавить(); + НоваяСтрока.ИмяПрава = ОписаниеПрава.Имя; + НоваяСтрока.ИндексПрава = ОписаниеПрава.ИндексПрава; + НоваяСтрока.ЗаголовокПрава = СтрЗаменить(ПредставленияПрава.Заголовок, Символы.ПС, " "); + НоваяСтрока.ПодсказкаПрава = СтрЗаменить(ПредставленияПрава.Подсказка, Символы.ПС, " "); + КонецЦикла; + + Если НастройкиПрав.ЕстьИерархия Тогда + ОписаниеКолонки = ОписаниеКолонкиДляПодпапок(); + НоваяСтрока = Результат.Добавить(); + НоваяСтрока.ИмяПрава = ОписаниеКолонки.Имя; + НоваяСтрока.ИндексПрава = НастройкиПрав.ОписаниеПрав.Количество(); + НоваяСтрока.ЗаголовокПрава = ОписаниеКолонки.Заголовок; + НоваяСтрока.ПодсказкаПрава = ОписаниеКолонки.Подсказка; + КонецЕсли; + + Возврат Результат; + +КонецФункции + +Функция ОписаниеКолонкиДляПодпапок() + + Результат = Новый Структура; + Результат.Вставить("Имя", "ДляПодпапок"); + Результат.Вставить("Заголовок", НСтр("ru = 'Для подпапок'")); + Результат.Вставить("Подсказка", + НСтр("ru = 'Права не только для текущей папки, но и для ее нижестоящих папок'")); + + Возврат Результат; + +КонецФункции + +Функция НастройкиПравЛегенда(ЗаголовкиПрав, ЕстьИерархия) + + Результат = ЗаголовкиПрав.Скопировать(, "ЗаголовокПрава,ПодсказкаПрава"); + + Если ЕстьИерархия Тогда + НоваяСтрока = Результат.Вставить(0); + НоваяСтрока.ЗаголовокПрава = ""; + НоваяСтрока.ПодсказкаПрава = НСтр("ru = 'Наследование прав от вышестоящих папок'"); + КонецЕсли; + + Для Каждого Строка Из Результат Цикл + Строка.ПодсказкаПрава = "- " + Строка.ПодсказкаПрава; + КонецЦикла; + + Возврат Результат; + +КонецФункции + +Процедура УстановитьОтбор(ИмяПараметра, Значение, НастройкиКомпоновки, ПользовательскиеНастройки) + + ЭлементНастройки = ПользовательскаяНастройкаПараметра(ПользовательскиеНастройки, + Новый ПараметрКомпоновкиДанных(ИмяПараметра)); + + Если ЭлементНастройки <> Неопределено Тогда + ЭлементНастройки.Использование = Истина; + ЭлементНастройки.Значение = Значение; + Возврат; + КонецЕсли; + + Параметр = НастройкиКомпоновки.ПараметрыДанных.Элементы.Найти(ИмяПараметра); Если Параметр = Неопределено Тогда - НовыеНастройкиКД = КомпоновщикНастроек.Настройки; - Параметр = НовыеНастройкиКД.ПараметрыДанных.Элементы.Найти(ИмяПараметра); + НастройкиКД = КомпоновщикНастроек.Настройки; + Параметр = НастройкиКД.ПараметрыДанных.Элементы.Найти(ИмяПараметра); КонецЕсли; Параметр.Использование = Истина; - Параметр.Значение = СписокПользователей; + Параметр.Значение = Значение; + +КонецПроцедуры + +Функция ПользовательскаяНастройкаПараметра(ПользовательскиеНастройки, Параметр) + + Для Каждого ЭлементНастройки Из ПользовательскиеНастройки.Элементы Цикл + Свойства = Новый Структура("Параметр"); + ЗаполнитьЗначенияСвойств(Свойства, ЭлементНастройки); + Если Свойства.Параметр = Параметр Тогда + Возврат ЭлементНастройки; + КонецЕсли; + КонецЦикла; + + Возврат Неопределено; + +КонецФункции + +Процедура ОтключитьГруппировки(НастройкиКомпоновщика, ИменаГруппировок) + + Имена = СтрРазделить(ИменаГруппировок, ",", Ложь); + Для Каждого Группировка Из НастройкиКомпоновщика.Структура Цикл + Если Имена.Найти(Группировка.Имя) = Неопределено Тогда + Продолжить; + КонецЕсли; + Группировка.Использование = Ложь; + КонецЦикла; КонецПроцедуры diff --git a/SSL/src/Reports/АнализПравДоступа/Templates/Макет/Template.dcs b/SSL/src/Reports/АнализПравДоступа/Templates/Макет/Template.dcs index 1707f172e..7f74083ee 100644 --- a/SSL/src/Reports/АнализПравДоступа/Templates/Макет/Template.dcs +++ b/SSL/src/Reports/АнализПравДоступа/Templates/Макет/Template.dcs @@ -36,6 +36,8 @@ true + d5p1:CatalogRef.ВнешниеПользователи + d5p1:CatalogRef.ГруппыВнешнихПользователей d5p1:CatalogRef.ГруппыПользователей d5p1:CatalogRef.Пользователи @@ -223,9 +225,585 @@ xs:boolean + + ВидДоступа + ВидДоступа + + <v8:item> + <v8:lang>ru</v8:lang> + <v8:content>Вид доступа</v8:content> + </v8:item> + + ВидДоступаПредставление + + 9a33b5dc-a8f1-496e-9961-95890984cd86 + + + + ВсеРазрешены + ВсеРазрешены + + <v8:item> + <v8:lang>ru</v8:lang> + <v8:content>Все разрешены</v8:content> + </v8:item> + + + xs:boolean + + + + Формат + + + ru + БЛ=Разрешенные; БИ=Запрещенные + + + + + + + ЗначениеДоступа + ЗначениеДоступа + + <v8:item> + <v8:lang>ru</v8:lang> + <v8:content>Значение доступа</v8:content> + </v8:item> + + + 9a33b5dc-a8f1-496e-9961-95890984cd86 + + + + ВидДоступаПредставление + ВидДоступаПредставление + + <v8:item> + <v8:lang>ru</v8:lang> + <v8:content>Вид доступа представление</v8:content> + </v8:item> + + + xs:string + + 150 + Variable + + + + + ПравоЧтениеБезОграничения + ПравоЧтениеБезОграничения + + <v8:item> + <v8:lang>ru</v8:lang> + <v8:content>Право чтение без ограничения</v8:content> + </v8:item> + + + xs:boolean + + + + false + Формат + + + + + + ПравоИзменениеБезОграничения + ПравоИзменениеБезОграничения + + <v8:item> + <v8:lang>ru</v8:lang> + <v8:content>Право изменение без ограничения</v8:content> + </v8:item> + + + xs:boolean + + + + false + Формат + + + + + + ПравоДобавлениеБезОграничения + ПравоДобавлениеБезОграничения + + <v8:item> + <v8:lang>ru</v8:lang> + <v8:content>Право добавление без ограничения</v8:content> + </v8:item> + + + xs:boolean + + + + false + Формат + + + + + + ПравоБезОграничения + ПравоБезОграничения + + <v8:item> + <v8:lang>ru</v8:lang> + <v8:content>Право без ограничения</v8:content> + </v8:item> + + + xs:decimal + + 1 + 0 + Nonnegative + + + + + false + Формат + + + + + 1 + + + ru + Просмотр без ограничения + + + + + 2 + + + ru + Редактирование без ограничения + + + + + 3 + + + ru + Создание без ограничения + + + + + + ВидДоступаПравоЧтениеБезОграничения + ВидДоступаПравоЧтениеБезОграничения + + <v8:item> + <v8:lang>ru</v8:lang> + <v8:content>Вид доступа право чтение без ограничения</v8:content> + </v8:item> + + + xs:boolean + + + + false + Формат + + + + + + ВидДоступаПравоИзменениеБезОграничения + ВидДоступаПравоИзменениеБезОграничения + + <v8:item> + <v8:lang>ru</v8:lang> + <v8:content>Вид доступа право изменение без ограничения</v8:content> + </v8:item> + + + xs:boolean + + + + false + Формат + + + + + + ВидДоступаПравоДобавлениеБезОграничения + ВидДоступаПравоДобавлениеБезОграничения + + <v8:item> + <v8:lang>ru</v8:lang> + <v8:content>Вид доступа право добавление без ограничения</v8:content> + </v8:item> + + + xs:boolean + + + + false + Формат + + + + + + ВидДоступаПравоПросмотр + ВидДоступаПравоПросмотр + + <v8:item> + <v8:lang>ru</v8:lang> + <v8:content>Вид доступа право просмотр</v8:content> + </v8:item> + + + xs:boolean + + + + false + Формат + + + + + + ВидДоступаПравоРедактирование + ВидДоступаПравоРедактирование + + <v8:item> + <v8:lang>ru</v8:lang> + <v8:content>Вид доступа право редактирование</v8:content> + </v8:item> + + + xs:boolean + + + + false + Формат + + + + + + ВидДоступаПравоИнтерактивноеДобавление + ВидДоступаПравоИнтерактивноеДобавление + + <v8:item> + <v8:lang>ru</v8:lang> + <v8:content>Вид доступа право интерактивное добавление</v8:content> + </v8:item> + + + xs:boolean + + + + false + Формат + + + + ИсточникДанных1 ПраваПользователей + + НастройкиПравПоОбъектам + + ВладелецНастроек + ВладелецНастроек + + <v8:item> + <v8:lang>ru</v8:lang> + <v8:content>Владелец настроек</v8:content> + </v8:item> + + + a02405f8-0a56-4b5a-a885-91715df29d5c + + + + ВладелецИлиПользовательНастроек + ВладелецИлиПользовательНастроек + + <v8:item> + <v8:lang>ru</v8:lang> + <v8:content>Владелец или пользователь настроек</v8:content> + </v8:item> + + + d5p1:AnyRef + + + + ЭтоВладелецНастроек + ЭтоВладелецНастроек + + <v8:item> + <v8:lang>ru</v8:lang> + <v8:content>Это владелец настроек</v8:content> + </v8:item> + + + xs:boolean + + + + НаследованиеНастроекВладельцем + НаследованиеНастроекВладельцем + + <v8:item> + <v8:lang>ru</v8:lang> + <v8:content>Наследование настроек владельцем</v8:content> + </v8:item> + + + xs:boolean + + + + НастроенноеПраво + НастроенноеПраво + + <v8:item> + <v8:lang>ru</v8:lang> + <v8:content>Настроенное право</v8:content> + </v8:item> + + + xs:string + + 60 + Variable + + + + + ЗначениеПрава + ЗначениеПрава + + <v8:item> + <v8:lang>ru</v8:lang> + <v8:content>Значение права</v8:content> + </v8:item> + + + xs:decimal + + 1 + 0 + Nonnegative + + + + + + + ru + Не назначено + + + + + 1 + + + ru + Разрешено + + + + + 2 + + + ru + Запрещено + + + + + + ИндексПрава + ИндексПрава + + <v8:item> + <v8:lang>ru</v8:lang> + <v8:content>Индекс права</v8:content> + </v8:item> + + + xs:decimal + + 2 + 0 + Nonnegative + + + + ИсточникДанных1 + НастройкиПравПоОбъектам + + + НастройкиПравЛегенда + + ЗаголовокПрава + ЗаголовокПрава + + <v8:item> + <v8:lang>ru</v8:lang> + <v8:content>Заголовок права</v8:content> + </v8:item> + + + xs:string + + 60 + Variable + + + + + ПодсказкаПрава + ПодсказкаПрава + + <v8:item> + <v8:lang>ru</v8:lang> + <v8:content>Подсказка права</v8:content> + </v8:item> + + + xs:string + + 150 + Variable + + + + ИсточникДанных1 + НастройкиПравЛегенда + + + НастройкиПравИерархия + + РодительВладельцаИлиПользователяНастроек + РодительВладельцаИлиПользователяНастроек + + <v8:item> + <v8:lang>ru</v8:lang> + <v8:content>Родитель владельца или пользователя настроек</v8:content> + </v8:item> + + + a02405f8-0a56-4b5a-a885-91715df29d5c + + + + ВладелецИлиПользовательНастроек + ВладелецИлиПользовательНастроек + + <v8:item> + <v8:lang>ru</v8:lang> + <v8:content>Владелец или пользователь настроек</v8:content> + </v8:item> + + ВладелецИлиПользовательНастроекПредставление + + d5p1:AnyRef + + + + ВладелецНастроек + ВладелецНастроек + + <v8:item> + <v8:lang>ru</v8:lang> + <v8:content>Владелец настроек</v8:content> + </v8:item> + + + a02405f8-0a56-4b5a-a885-91715df29d5c + + + + ЭтоВладелецНастроек + ЭтоВладелецНастроек + + <v8:item> + <v8:lang>ru</v8:lang> + <v8:content>Это владелец настроек</v8:content> + </v8:item> + + + xs:boolean + + + + ВладелецИлиПользовательНастроекПредставление + ВладелецИлиПользовательНастроекПредставление + + <v8:item> + <v8:lang>ru</v8:lang> + <v8:content>Владелец или пользователь настроек представление</v8:content> + </v8:item> + + + xs:string + + 250 + Variable + + + + ИсточникДанных1 + НастройкиПравИерархия + + + НастройкиПравИерархия + НастройкиПравИерархия + ВладелецИлиПользовательНастроек + РодительВладельцаИлиПользователяНастроек + Неопределено + + + НастройкиПравИерархия + НастройкиПравПоОбъектам + ВладелецИлиПользовательНастроек + ВладелецИлиПользовательНастроек + + + НастройкиПравИерархия + НастройкиПравПоОбъектам + ВладелецНастроек + ВладелецНастроек + + + НастройкиПравИерархия + НастройкиПравПоОбъектам + ЭтоВладелецНастроек + ЭтоВладелецНастроек + Право Максимум(Право) @@ -252,6 +830,51 @@ ВходВПрограммуРазрешен Минимум(ВходВПрограммуРазрешен) + + ПравоБезОграничения + Максимум(ПравоБезОграничения) + ОбъектМетаданных + + + ПравоЧтениеБезОграничения + Максимум(ПравоЧтениеБезОграничения) + + + ПравоИзменениеБезОграничения + Максимум(ПравоИзменениеБезОграничения) + + + ПравоДобавлениеБезОграничения + Максимум(ПравоДобавлениеБезОграничения) + + + ВидДоступаПравоЧтениеБезОграничения + Максимум(ВидДоступаПравоЧтениеБезОграничения) + + + ВидДоступаПравоИзменениеБезОграничения + Максимум(ВидДоступаПравоИзменениеБезОграничения) + + + ВидДоступаПравоДобавлениеБезОграничения + Максимум(ВидДоступаПравоДобавлениеБезОграничения) + + + ВидДоступаПравоПросмотр + Максимум(ВидДоступаПравоПросмотр) + + + ВидДоступаПравоРедактирование + Максимум(ВидДоступаПравоРедактирование) + + + ВидДоступаПравоИнтерактивноеДобавление + Максимум(ВидДоступаПравоИнтерактивноеДобавление) + + + ЗначениеПрава + ЗначениеПрава + Пользователь @@ -261,12 +884,51 @@ </v8:item> + d4p1:CatalogRef.ВнешниеПользователи + d4p1:CatalogRef.ГруппыВнешнихПользователей d4p1:CatalogRef.ГруппыПользователей d4p1:CatalogRef.Пользователи false true + + ВидПользователей + + <v8:item> + <v8:lang>ru</v8:lang> + <v8:content>Вид пользователей</v8:content> + </v8:item> + + + xs:decimal + + 1 + 0 + Nonnegative + + + + false + + + + + ru + Внутренние + + + + + 1 + + + ru + Внешние + + + + + + + + + + - - - + +