3_1_6_227

This commit is contained in:
Компания 1С committed 2022-05-16 15:54:00 +03:00
1 parent 84cf7f3c95
commit 3b907f4106
163 files changed
+3719 -2347

No files matched your search

@@ -49,7 +49,7 @@
ЭтотОбъект[ОписаниеЯзыка.Имя] = Параметры.ТекущееЗначение; ЭтотОбъект[ОписаниеЯзыка.Имя] = Параметры.ТекущееЗначение;
КонецЕсли; КонецЕсли;
ОсновнойЯзык = Метаданные.ОсновнойЯзык.КодЯзыка; ОсновнойЯзык = ОбщегоНазначения.КодОсновногоЯзыка();
Для каждого Представление Из Параметры.Представления Цикл Для каждого Представление Из Параметры.Представления Цикл
@@ -641,7 +641,7 @@
Представление = Наименования[Язык.КодЯзыка][ИмяВида]; Представление = Наименования[Язык.КодЯзыка][ИмяВида];
Если ЗначениеЗаполнено(Представление) Тогда Если ЗначениеЗаполнено(Представление) Тогда
Если Язык = Метаданные.ОсновнойЯзык Тогда Если СтрСравнить(Язык.КодЯзыка, ОбщегоНазначения.КодОсновногоЯзыка()) = 0 Тогда
ВидКонтактнойИнформации.Наименование = Представление; ВидКонтактнойИнформации.Наименование = Представление;
Иначе Иначе
@@ -59,7 +59,7 @@
<autoMaxWidth>true</autoMaxWidth> <autoMaxWidth>true</autoMaxWidth>
<autoMaxHeight>true</autoMaxHeight> <autoMaxHeight>true</autoMaxHeight>
<wrap>true</wrap> <wrap>true</wrap>
<choiceButton>true</choiceButton> <listChoiceMode>true</listChoiceMode>
<chooseType>true</chooseType> <chooseType>true</chooseType>
<typeDomainEnabled>true</typeDomainEnabled> <typeDomainEnabled>true</typeDomainEnabled>
<textEdit>true</textEdit> <textEdit>true</textEdit>
@@ -581,6 +581,10 @@
<event>OnReadAtServer</event> <event>OnReadAtServer</event>
<name>ПриЧтенииНаСервере</name> <name>ПриЧтенииНаСервере</name>
</handlers> </handlers>
<handlers>
<event>BeforeWrite</event>
<name>ПередЗаписью</name>
</handlers>
<handlers> <handlers>
<event>BeforeWriteAtServer</event> <event>BeforeWriteAtServer</event>
<name>ПередЗаписьюНаСервере</name> <name>ПередЗаписьюНаСервере</name>
@@ -67,6 +67,31 @@
КонецПроцедуры КонецПроцедуры
&НаКлиенте
Процедура ПередЗаписью(Отказ, ПараметрыЗаписи)
Для Каждого Условие Из УсловияВидимости Цикл
ИндексСтроки = УсловияВидимости.Индекс(Условие);
Если Не ЗначениеЗаполнено(Условие.ВидСравнения) Тогда
ТекстСообщения = НСтр("ru = 'Укажите вид сравнения'");
Поле = СтроковыеФункцииКлиентСервер.ПодставитьПараметрыВСтроку("УсловияВидимости[%1].ПредставлениеВидаСравнения", Формат(ИндексСтроки, "ЧГ=0;"));
ОбщегоНазначенияКлиент.СообщитьПользователю(ТекстСообщения, , Поле, , Отказ);
КонецЕсли;
Если Не ЗначениеЗаполнено(Условие.Поле) Тогда
ТекстСообщения = НСтр("ru = 'Выберите поле'");
Поле = СтроковыеФункцииКлиентСервер.ПодставитьПараметрыВСтроку("УсловияВидимости[%1].ПредставлениеПоля", Формат(ИндексСтроки, "ЧГ=0;"));
ОбщегоНазначенияКлиент.СообщитьПользователю(ТекстСообщения, , Поле, , Отказ);
КонецЕсли;
КонецЦикла;
КонецПроцедуры
#КонецОбласти #КонецОбласти
#Область ОбработчикиСобытийЭлементовТаблицыФормыУсловияВидимости #Область ОбработчикиСобытийЭлементовТаблицыФормыУсловияВидимости
@@ -94,6 +119,7 @@
КонецПроцедуры КонецПроцедуры
&НаКлиенте &НаКлиенте
Процедура УсловияВидимостиВидСравненияНачалоВыбора(Элемент, ДанныеВыбора, СтандартнаяОбработка) Процедура УсловияВидимостиВидСравненияНачалоВыбора(Элемент, ДанныеВыбора, СтандартнаяОбработка)
@@ -822,7 +822,7 @@
Запрос = Новый Запрос; Запрос = Новый Запрос;
Запрос.УстановитьПараметр("Набор", ТекущийНабор); Запрос.УстановитьПараметр("Набор", ТекущийНабор);
Запрос.УстановитьПараметр("ЭтоОсновнойЯзык", ТекущийЯзык() = Метаданные.ОсновнойЯзык); Запрос.УстановитьПараметр("ЭтоОсновнойЯзык", ОбщегоНазначения.ЭтоОсновнойЯзык());
Запрос.УстановитьПараметр("КодЯзыка", ТекущийЯзык().КодЯзыка); Запрос.УстановитьПараметр("КодЯзыка", ТекущийЯзык().КодЯзыка);
Если Не ПоказатьНеиспользуемыеРеквизиты Тогда Если Не ПоказатьНеиспользуемыеРеквизиты Тогда
@@ -48,9 +48,16 @@
КонецПроцедуры КонецПроцедуры
Процедура ОбработкаПолученияПредставления(Данные, Представление, СтандартнаяОбработка) Процедура ОбработкаПолученияПредставления(Данные, Представление, СтандартнаяОбработка)
Если ТекущийЯзык() = Метаданные.ОсновнойЯзык Тогда
Возврат; #Если Сервер Или ТолстыйКлиентОбычноеПриложение Или ВнешнееСоединение Тогда
КонецЕсли; Если ОбщегоНазначения.ЭтоОсновнойЯзык() Тогда
Возврат;
КонецЕсли;
#Иначе
Если СтрСравнить(СтандартныеПодсистемыКлиент.ПараметрКлиента("КодОсновногоЯзыка"), ОбщегоНазначенияКлиент.КодОсновногоЯзыка()) = 0 Тогда
Возврат;
КонецЕсли;
#КонецЕсли
Если ЗначениеЗаполнено(Данные.Родитель) Тогда Если ЗначениеЗаполнено(Данные.Родитель) Тогда
#Если Сервер Или ТолстыйКлиентОбычноеПриложение Или ВнешнееСоединение Тогда #Если Сервер Или ТолстыйКлиентОбычноеПриложение Или ВнешнееСоединение Тогда
@@ -1381,6 +1381,17 @@
<common>true</common> <common>true</common>
</edit> </edit>
</attributes> </attributes>
<attributes>
<name>РезультатПроверкиУдостоверяющегоЦентра</name>
<id>26</id>
<valueType/>
<view>
<common>true</common>
</view>
<edit>
<common>true</common>
</edit>
</attributes>
<formCommands> <formCommands>
<name>Подписать</name> <name>Подписать</name>
<title> <title>
@@ -330,6 +330,13 @@
#Область СлужебныеПроцедурыИФункции #Область СлужебныеПроцедурыИФункции
&НаСервереБезКонтекста
Функция ОшибкаСертификатПомеченКакОтозванный()
Возврат ЭлектроннаяПодписьСлужебный.ОшибкаСертификатПомеченКакОтозванный()
КонецФункции
&НаКлиенте &НаКлиенте
Процедура ПродолжитьОткрытие(Оповещение, ОбщиеВнутренниеДанные, КлиентскиеПараметры) Экспорт Процедура ПродолжитьОткрытие(Оповещение, ОбщиеВнутренниеДанные, КлиентскиеПараметры) Экспорт
@@ -553,7 +560,17 @@
Контекст.ОшибкаНаКлиенте.Вставить("ОписаниеОшибки", Контекст.ОшибкаНаКлиенте.Вставить("ОписаниеОшибки",
НСтр("ru = 'Сертификат помечен в программе как отозванный. НСтр("ru = 'Сертификат помечен в программе как отозванный.
|Выберите другой сертификат.'")); |Выберите другой сертификат.'"));
ОбработатьОшибку(Контекст.Оповещение, Контекст.ОшибкаНаКлиенте, Контекст.ОшибкаНаСервере); ДополнительныеДанныеОшибки = Новый Структура("ДополнительныеДанныеПроверокНаКлиенте", ОшибкаСертификатПомеченКакОтозванный());
ОбработатьОшибку(Контекст.Оповещение, Контекст.ОшибкаНаКлиенте, Контекст.ОшибкаНаСервере,,ДополнительныеДанныеОшибки);
Возврат;
КонецЕсли;
Если ЗначениеЗаполнено(РезультатПроверкиУдостоверяющегоЦентра)
И Не РезультатПроверкиУдостоверяющегоЦентра.Действует Тогда
ПредупреждениеОбОшибке = РезультатПроверкиУдостоверяющегоЦентра.Предупреждение; // см. ЭлектроннаяПодписьСлужебныйКлиентСервер.ПредупреждениеПриПроверкеУдостоверяющегоЦентраСертификата
Контекст.ОшибкаНаКлиенте.Вставить("ОписаниеОшибки", ПредупреждениеОбОшибке.ТекстОшибки);
ДополнительныеДанныеОшибки = Новый Структура("ДополнительныеДанныеПроверокНаКлиенте", ПредупреждениеОбОшибке);
ОбработатьОшибку(Контекст.Оповещение, Контекст.ОшибкаНаКлиенте, Контекст.ОшибкаНаСервере,,ДополнительныеДанныеОшибки);
Возврат; Возврат;
КонецЕсли; КонецЕсли;
@@ -748,7 +765,7 @@
КонецПроцедуры КонецПроцедуры
&НаКлиенте &НаКлиенте
Процедура ОбработатьОшибку(Оповещение, ОшибкаНаКлиенте, ОшибкаНаСервере, НеподписанныеДанные = Неопределено) Процедура ОбработатьОшибку(Оповещение, ОшибкаНаКлиенте, ОшибкаНаСервере, НеподписанныеДанные = Неопределено, ДополнительныеДанные = Неопределено)
Если ОписаниеДанных.Свойство("ПрекратитьВыполнение") Тогда Если ОписаниеДанных.Свойство("ПрекратитьВыполнение") Тогда
@@ -772,6 +789,11 @@
КонецЕсли; КонецЕсли;
ДополнительныеПараметры = Новый Структура; ДополнительныеПараметры = Новый Структура;
Если ЗначениеЗаполнено(ДополнительныеДанные) Тогда
Для Каждого КлючИЗначение Из ДополнительныеДанные Цикл
ДополнительныеПараметры.Вставить(КлючИЗначение.Ключ, КлючИЗначение.Значение);
КонецЦикла;
КонецЕсли;
Если НеподписанныеДанные <> Неопределено Тогда Если НеподписанныеДанные <> Неопределено Тогда
ДополнительныеПараметры.Вставить("НеподписанныеДанные", НеподписанныеДанные); ДополнительныеПараметры.Вставить("НеподписанныеДанные", НеподписанныеДанные);
КонецЕсли; КонецЕсли;
@@ -840,4 +862,4 @@
// Конец Локализация // Конец Локализация
#КонецОбласти #КонецОбласти
@@ -809,7 +809,7 @@
<usePurposes>MobileDevice</usePurposes> <usePurposes>MobileDevice</usePurposes>
</forms> </forms>
<templates uuid="5189beb9-b939-4f97-aca0-c2f3492ac8b9"> <templates uuid="5189beb9-b939-4f97-aca0-c2f3492ac8b9">
<name>КомпонентаExtraCryptoAPI_3_0_1_27</name> <name>КомпонентаExtraCryptoAPI_3_0_1_28</name>
<synonym> <synonym>
<key>ru</key> <key>ru</key>
<value>Компонента ExtraCryptoAPI</value> <value>Компонента ExtraCryptoAPI</value>
@@ -189,15 +189,7 @@
КонецЕсли; КонецЕсли;
КонецЕсли; КонецЕсли;
Если ОбщегоНазначенияКлиент.ПодсистемаСуществует("СтандартныеПодсистемы.Мультиязычность") Тогда ЗаполнитьМультиязычныеРеквизиты();
Если ПустаяСтрока(Объект.ЗаголовокЯзык1) Тогда
Объект.ЗаголовокЯзык1 = Объект.Заголовок;
КонецЕсли;
Если ПустаяСтрока(Объект.ЗаголовокЯзык2) Тогда
Объект.ЗаголовокЯзык2 = Объект.Заголовок;
КонецЕсли;
КонецЕсли;
Если ПараметрыЗаписи.Свойство("ОбработкаПродолжения") Тогда Если ПараметрыЗаписи.Свойство("ОбработкаПродолжения") Тогда
ОбработкаПродолженияПриОшибкеЗаписи = ПараметрыЗаписи.ОбработкаПродолжения; ОбработкаПродолженияПриОшибкеЗаписи = ПараметрыЗаписи.ОбработкаПродолжения;
@@ -674,6 +666,9 @@
Возврат; Возврат;
КонецЕсли; КонецЕсли;
Если ИндексСтраницы = 2 Тогда Если ИндексСтраницы = 2 Тогда
ЗаполнитьМультиязычныеРеквизиты();
Если Не ПроверитьЗаполнение() Тогда Если Не ПроверитьЗаполнение() Тогда
Возврат; Возврат;
КонецЕсли; КонецЕсли;
@@ -983,7 +978,7 @@
НаборыСвойств, "ЭтоДополнительноеСведение", (ЭтоДополнительноеСведение = 1), Истина); НаборыСвойств, "ЭтоДополнительноеСведение", (ЭтоДополнительноеСведение = 1), Истина);
ОбщегоНазначенияКлиентСервер.УстановитьПараметрДинамическогоСписка( ОбщегоНазначенияКлиентСервер.УстановитьПараметрДинамическогоСписка(
НаборыСвойств, "ЭтоОсновнойЯзык", ТекущийЯзык() = Метаданные.ОсновнойЯзык, Истина); НаборыСвойств, "ЭтоОсновнойЯзык", ОбщегоНазначения.ЭтоОсновнойЯзык(), Истина);
ОбщегоНазначенияКлиентСервер.УстановитьПараметрДинамическогоСписка( ОбщегоНазначенияКлиентСервер.УстановитьПараметрДинамическогоСписка(
НаборыСвойств, "КодЯзыка", ТекущийЯзык().КодЯзыка, Истина); НаборыСвойств, "КодЯзыка", ТекущийЯзык().КодЯзыка, Истина);
@@ -1149,6 +1144,23 @@
КонецПроцедуры КонецПроцедуры
&НаКлиенте
Процедура ЗаполнитьМультиязычныеРеквизиты()
Если Не ОбщегоНазначенияКлиент.ПодсистемаСуществует("СтандартныеПодсистемы.Мультиязычность") Тогда
Возврат;
КонецЕсли;
Если ПустаяСтрока(Объект.ЗаголовокЯзык1) Тогда
Объект.ЗаголовокЯзык1 = Объект.Заголовок;
КонецЕсли;
Если ПустаяСтрока(Объект.ЗаголовокЯзык2) Тогда
Объект.ЗаголовокЯзык2 = Объект.Заголовок;
КонецЕсли;
КонецПроцедуры
&НаКлиенте &НаКлиенте
Процедура ПослеВыбораРеквизитовДляРазблокирования(РазблокируемыеРеквизиты, Контекст) Экспорт Процедура ПослеВыбораРеквизитовДляРазблокирования(РазблокируемыеРеквизиты, Контекст) Экспорт
@@ -2419,7 +2431,7 @@
"Справочник.НаборыДополнительныхРеквизитовИСведений.ДополнительныеСведения"); "Справочник.НаборыДополнительныхРеквизитовИСведений.ДополнительныеСведения");
КонецЕсли; КонецЕсли;
Запрос.УстановитьПараметр("ЭтоОсновнойЯзык", ТекущийЯзык() = Метаданные.ОсновнойЯзык); Запрос.УстановитьПараметр("ЭтоОсновнойЯзык", ОбщегоНазначения.ЭтоОсновнойЯзык());
Запрос.УстановитьПараметр("КодЯзыка", ТекущийЯзык().КодЯзыка); Запрос.УстановитьПараметр("КодЯзыка", ТекущийЯзык().КодЯзыка);
НачатьТранзакцию(); НачатьТранзакцию();
@@ -34,8 +34,8 @@
СуффиксДополнительногоЯзыка1 = "Язык1"; СуффиксДополнительногоЯзыка1 = "Язык1";
СуффиксДополнительногоЯзыка2 = "Язык2"; СуффиксДополнительногоЯзыка2 = "Язык2";
Если СтрСравнить(Константы.ОсновнойЯзык.Получить(), ТекущийЯзык().КодЯзыка) <> 0 Тогда
Если Не ОбщегоНазначения.ЭтоОсновнойЯзык() Тогда
СуффиксОсновногоЯзыка = МультиязычностьСервер.СуффиксТекущегоЯзыка(); СуффиксОсновногоЯзыка = МультиязычностьСервер.СуффиксТекущегоЯзыка();
Если СуффиксОсновногоЯзыка = "Язык1" Тогда Если СуффиксОсновногоЯзыка = "Язык1" Тогда
СуффиксДополнительногоЯзыка1 = ""; СуффиксДополнительногоЯзыка1 = "";
@@ -130,10 +130,10 @@
ЭтотОбъект[ОписаниеЯзыка.Имя] = Параметры.ТекущиеЗначение; ЭтотОбъект[ОписаниеЯзыка.Имя] = Параметры.ТекущиеЗначение;
КонецЕсли; КонецЕсли;
ОсновнойЯзык = ОбщегоНазначения.КодОсновногоЯзыка();
Если ХранениеВТабличнойЧасти Тогда Если ХранениеВТабличнойЧасти Тогда
ОсновнойЯзык = Метаданные.ОсновнойЯзык.КодЯзыка;
Для каждого Представление Из Параметры.Представления Цикл Для каждого Представление Из Параметры.Представления Цикл
ОписаниеЯзыка = ОписаниеЯзыка(Представление.КодЯзыка); ОписаниеЯзыка = ОписаниеЯзыка(Представление.КодЯзыка);
@@ -151,9 +151,7 @@
И (ИспользуетсяПервыйДополнительныйЯзык И (ИспользуетсяПервыйДополнительныйЯзык
ИЛИ ИспользуетсяВторойДополнительныйЯзык) Тогда ИЛИ ИспользуетсяВторойДополнительныйЯзык) Тогда
ОсновнойЯзык = ОбщегоНазначения.КодОсновногоЯзыка(); ОписаниеЯзыка = ОписаниеЯзыка(ОсновнойЯзык);
ОписаниеЯзыка = ОписаниеЯзыка(Константы.ОсновнойЯзык.Получить());
Если ПустаяСтрока(СуффиксОсновногоЯзыка) Тогда Если ПустаяСтрока(СуффиксОсновногоЯзыка) Тогда
ЭтотОбъект[ОписаниеЯзыка.Имя] = Параметры.ТекущиеЗначение; ЭтотОбъект[ОписаниеЯзыка.Имя] = Параметры.ТекущиеЗначение;
Иначе Иначе
@@ -85,6 +85,8 @@
ОжиданиеСчетчик = ОжиданиеСчетчик + 1; ОжиданиеСчетчик = ОжиданиеСчетчик + 1;
ПродолжитьОбратныйОтсчет(); ПродолжитьОбратныйОтсчет();
КонецЕсли; КонецЕсли;
ТекущийЭлемент = Элементы.Колонки;
КонецПроцедуры КонецПроцедуры
#КонецОбласти #КонецОбласти
@@ -323,6 +323,10 @@
КонтейнерПодписи, ДобавкаВремени, ДатаСеанса); КонтейнерПодписи, ДобавкаВремени, ДатаСеанса);
Контекст.Вставить("ПараметрыПодписи", ПараметрыПодписи); Контекст.Вставить("ПараметрыПодписи", ПараметрыПодписи);
ДатаПодписи = ЭлектроннаяПодписьСлужебныйКлиентСервер.ДатаПодписиИзПараметровПодписи(ПараметрыПодписи);
Если ЗначениеЗаполнено(ДатаПодписи) Тогда
Контекст.Вставить("ДатаПодписи", ДатаПодписи);
КонецЕсли;
Контекст.МенеджерКриптографии.НачатьПолучениеСертификатовИзПодписи(Новый ОписаниеОповещения( Контекст.МенеджерКриптографии.НачатьПолучениеСертификатовИзПодписи(Новый ОписаниеОповещения(
"ВыбратьФайлПослеПолученияСертификатовИзПодписи", ЭтотОбъект, Контекст, "ВыбратьФайлПослеПолученияСертификатовИзПодписи", ЭтотОбъект, Контекст,
@@ -432,10 +436,15 @@
ТекущаяДатаСеанса = ТекущаяДатаСеанса(); ТекущаяДатаСеанса = ТекущаяДатаСеанса();
СвойстваПодписи = ПолучитьИзВременногоХранилища(АдресСвойствПодписи); СвойстваПодписи = ПолучитьИзВременногоХранилища(АдресСвойствПодписи);
Если Не ЗначениеЗаполнено(СвойстваПодписи.ДатаПодписи) Тогда ДатаПодписи = ЭлектроннаяПодписьСлужебныйКлиентСервер.ДатаПодписиИзПараметровПодписи(СвойстваПодписи);
СвойстваПодписи.ДатаПодписи = ТекущаяДатаСеанса; Если Не ЗначениеЗаполнено(ДатаПодписи) Тогда
Если Не ЗначениеЗаполнено(СвойстваПодписи.ДатаПодписи) Тогда
СвойстваПодписи.ДатаПодписи = ТекущаяДатаСеанса;
КонецЕсли;
Иначе
СвойстваПодписи.ДатаПодписи = ДатаПодписи;
КонецЕсли; КонецЕсли;
СвойстваПодписи.ДатаПроверкиПодписи = ТекущаяДатаСеанса; СвойстваПодписи.ДатаПроверкиПодписи = ТекущаяДатаСеанса;
СвойстваПодписи.ПодписьВерна = ПодписьВерна; СвойстваПодписи.ПодписьВерна = ПодписьВерна;
@@ -488,6 +497,11 @@
КонтейнерПодписи = МенеджерКриптографии.ПолучитьКонтейнерПодписейКриптографии(ДанныеПодписи); КонтейнерПодписи = МенеджерКриптографии.ПолучитьКонтейнерПодписейКриптографии(ДанныеПодписи);
ПараметрыПодписи = ЭлектроннаяПодписьСлужебныйКлиентСервер.ПараметрыПодписиКриптографии(КонтейнерПодписи, ПараметрыПодписи = ЭлектроннаяПодписьСлужебныйКлиентСервер.ПараметрыПодписиКриптографии(КонтейнерПодписи,
ЭлектроннаяПодписьСлужебный.ДобавкаВремени(), ТекущаяДатаСеанса()); ЭлектроннаяПодписьСлужебный.ДобавкаВремени(), ТекущаяДатаСеанса());
ДатаПодписиИзПараметровПодписи = ЭлектроннаяПодписьСлужебныйКлиентСервер.ДатаПодписиИзПараметровПодписи(ПараметрыПодписи);
Если ЗначениеЗаполнено(ДатаПодписиИзПараметровПодписи) Тогда
ДатаПодписи = ДатаПодписиИзПараметровПодписи;
КонецЕсли;
КонецЕсли; КонецЕсли;
СвойстваСертификата = ЭлектроннаяПодпись.СвойстваСертификата(Сертификаты[0]); СвойстваСертификата = ЭлектроннаяПодпись.СвойстваСертификата(Сертификаты[0]);
@@ -22,10 +22,6 @@
НавигационнаяСсылка = "e1cib/app/ОбщаяФорма.Расширения"; НавигационнаяСсылка = "e1cib/app/ОбщаяФорма.Расширения";
Если Не Пользователи.ЭтоПолноправныйПользователь() Тогда
ВызватьИсключение НСтр("ru = 'Недостаточно прав доступа. Обратитесь к администратору.'");
КонецЕсли;
Если Не ПравоДоступа("Администрирование", Метаданные) Тогда Если Не ПравоДоступа("Администрирование", Метаданные) Тогда
Элементы.СписокРасширенийБезопасныйРежимФлаг.ТолькоПросмотр = Истина; Элементы.СписокРасширенийБезопасныйРежимФлаг.ТолькоПросмотр = Истина;
КонецЕсли; КонецЕсли;
@@ -1267,6 +1267,9 @@
КонецЕсли; КонецЕсли;
Если ДанныеПечати = Неопределено Тогда Если ДанныеПечати = Неопределено Тогда
Если Не ЗначениеЗаполнено(Образец) Тогда
Возврат;
КонецЕсли;
Объекты = ОбщегоНазначенияКлиентСервер.ЗначениеВМассиве(Образец); Объекты = ОбщегоНазначенияКлиентСервер.ЗначениеВМассиве(Образец);
ОтображаемыеПоля = ЗаполнитьСписокОтображаемыхПолей(КоллекцияПолей); ОтображаемыеПоля = ЗаполнитьСписокОтображаемыхПолей(КоллекцияПолей);
Если ОбщегоНазначения.ПодсистемаСуществует("СтандартныеПодсистемы.Печать") Тогда Если ОбщегоНазначения.ПодсистемаСуществует("СтандартныеПодсистемы.Печать") Тогда
@@ -2292,6 +2295,12 @@
Если Элементы.ПосмотретьПечатнуюФорму.Пометка Тогда Если Элементы.ПосмотретьПечатнуюФорму.Пометка Тогда
Элементы.СтраницыМакетов.ТекущаяСтраница = Элементы.СтраницаМакет; Элементы.СтраницыМакетов.ТекущаяСтраница = Элементы.СтраницаМакет;
Иначе Иначе
Если Не ЗначениеЗаполнено(Образец) Тогда
Элементы[ИмяСпискаПолей()].ТекущаяСтрока = ЭтотОбъект[ИмяСпискаПолей()].ПолучитьЭлементы()[0].ПолучитьИдентификатор();
ОбщегоНазначенияКлиент.СообщитьПользователю(
НСтр("ru = 'Выберите образец, по данным которого будет формироваться печатная форма'"), , ИмяСпискаПолей() + "[0].Образец");
Возврат;
КонецЕсли;
СформироватьПечатнуюФорму(); СформироватьПечатнуюФорму();
Элементы.СтраницыМакетов.ТекущаяСтраница = Элементы.СтраницаОбразец; Элементы.СтраницыМакетов.ТекущаяСтраница = Элементы.СтраницаОбразец;
КонецЕсли; КонецЕсли;
@@ -2326,6 +2335,10 @@
Для Каждого Область Из Элементы.ТабличныйДокумент.ПолучитьВыделенныеОбласти() Цикл Для Каждого Область Из Элементы.ТабличныйДокумент.ПолучитьВыделенныеОбласти() Цикл
Если СтрНачинаетсяС(Область.Имя, "ШтампЭП") Тогда Если СтрНачинаетсяС(Область.Имя, "ШтампЭП") Тогда
Область.Имя = ""; Область.Имя = "";
#Если ВебКлиент Тогда
// Требуется для обновления отображения
Область.Защита = Область.Защита;
#КонецЕсли
КонецЕсли; КонецЕсли;
КонецЦикла; КонецЦикла;
@@ -406,6 +406,32 @@
<representationInContextMenu>Auto</representationInContextMenu> <representationInContextMenu>Auto</representationInContextMenu>
<locationInCommandBar>InCommandBarAndInAdditionalSubmenu</locationInCommandBar> <locationInCommandBar>InCommandBarAndInAdditionalSubmenu</locationInCommandBar>
</items> </items>
<items xsi:type="form:Button">
<name>УстановленныеИсправленияЗакрыть</name>
<id>112</id>
<visible>true</visible>
<enabled>true</enabled>
<userVisible>
<common>true</common>
</userVisible>
<extendedTooltip>
<name>УстановленныеИсправленияЗакрытьРасширеннаяПодсказка</name>
<id>113</id>
<type>Label</type>
<autoMaxWidth>true</autoMaxWidth>
<autoMaxHeight>true</autoMaxHeight>
<extInfo xsi:type="form:LabelDecorationExtInfo">
<horizontalAlign>Left</horizontalAlign>
</extInfo>
</extendedTooltip>
<commandName>Form.StandardCommand.Close</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"> <items xsi:type="form:Button">
<name>УстановленныеИсправленияСправка</name> <name>УстановленныеИсправленияСправка</name>
<id>72</id> <id>72</id>
@@ -1267,13 +1293,18 @@
<attributes> <attributes>
<name>Фильтр</name> <name>Фильтр</name>
<id>3</id> <id>3</id>
<valueType/> <valueType>
<types>ValueList</types>
</valueType>
<view> <view>
<common>true</common> <common>true</common>
</view> </view>
<edit> <edit>
<common>true</common> <common>true</common>
</edit> </edit>
<extInfo xsi:type="form:ValueListExtInfo">
<itemValueType/>
</extInfo>
</attributes> </attributes>
<attributes> <attributes>
<name>РазделениеВключено</name> <name>РазделениеВключено</name>
@@ -1301,6 +1332,19 @@
<common>true</common> <common>true</common>
</edit> </edit>
</attributes> </attributes>
<attributes>
<name>ПриОбновлении</name>
<id>12</id>
<valueType>
<types>Boolean</types>
</valueType>
<view>
<common>true</common>
</view>
<edit>
<common>true</common>
</edit>
</attributes>
<formCommands> <formCommands>
<name>СохранитьКак</name> <name>СохранитьКак</name>
<title> <title>
@@ -1330,6 +1374,12 @@
<name>Исправления</name> <name>Исправления</name>
<valueType/> <valueType/>
</parameters> </parameters>
<parameters>
<name>ПриОбновлении</name>
<valueType>
<types>Boolean</types>
</valueType>
</parameters>
<commandInterface> <commandInterface>
<navigationPanel/> <navigationPanel/>
<commandBar/> <commandBar/>
@@ -25,11 +25,27 @@
Элементы.ИнформацияОписание.Заголовок = НСтр("ru = 'Состав исправлений настраивается администратором приложения.'"); Элементы.ИнформацияОписание.Заголовок = НСтр("ru = 'Состав исправлений настраивается администратором приложения.'");
ИначеЕсли ЭтоПодчиненныйУзелРИБ Тогда ИначеЕсли ЭтоПодчиненныйУзелРИБ Тогда
Элементы.ИнформацияОписание.Заголовок = НСтр("ru = 'Управление составом исправлений выполняется в центральном узле.'"); Элементы.ИнформацияОписание.Заголовок = НСтр("ru = 'Управление составом исправлений выполняется в центральном узле.'");
ИначеЕсли Параметры.ПриОбновлении Тогда
Элементы.ИнформацияОписание.Заголовок = НСтр("ru = 'Установленные исправления вступят в силу после перезапуска программы.'");
ИначеЕсли Не ОбщегоНазначения.ЭтоWindowsКлиент() Тогда ИначеЕсли Не ОбщегоНазначения.ЭтоWindowsКлиент() Тогда
Элементы.ГруппаИнформация.Видимость = Ложь; Элементы.ГруппаИнформация.Видимость = Ложь;
КонецЕсли; КонецЕсли;
Если РазделениеВключено Или ЭтоПодчиненныйУзелРИБ Или Не ОбщегоНазначения.ЭтоWindowsКлиент() Тогда Если ЗначениеЗаполнено(Параметры.Исправления) Тогда
Если ТипЗнч(Параметры.Исправления) = Тип("СписокЗначений") Тогда
Фильтр = Параметры.Исправления;
ИначеЕсли ТипЗнч(Параметры.Исправления) = Тип("Массив") Тогда
Фильтр.ЗагрузитьЗначения(Параметры.Исправления);
КонецЕсли;
КонецЕсли;
ПриОбновлении = Параметры.ПриОбновлении;
Элементы.УстановленныеИсправленияЗакрыть.Видимость = ПриОбновлении;
Если РазделениеВключено
Или ЭтоПодчиненныйУзелРИБ
Или Не ОбщегоНазначения.ЭтоWindowsКлиент()
Или Параметры.ПриОбновлении Тогда
Элементы.ФормаУстановитьИсправление.Видимость = Ложь; Элементы.ФормаУстановитьИсправление.Видимость = Ложь;
Элементы.ФормаУдалитьИсправление.Видимость = Ложь; Элементы.ФормаУдалитьИсправление.Видимость = Ложь;
Элементы.УстановленныеИсправленияКонтекстноеМенюДобавить.Видимость = Ложь; Элементы.УстановленныеИсправленияКонтекстноеМенюДобавить.Видимость = Ложь;
@@ -123,13 +139,15 @@
Расширения = РасширенияКонфигурации.Получить(); Расширения = РасширенияКонфигурации.Получить();
УстановитьПривилегированныйРежим(Ложь); УстановитьПривилегированныйРежим(Ложь);
ОписаниеИсправлений = ОписаниеУстановленныхИсправлений();
Для Каждого Расширение Из Расширения Цикл Для Каждого Расширение Из Расширения Цикл
Если Не ОбновлениеКонфигурации.ЭтоИсправление(Расширение) Тогда Если Не ОбновлениеКонфигурации.ЭтоИсправление(Расширение) Тогда
Продолжить; Продолжить;
КонецЕсли; КонецЕсли;
Если Фильтр <> Неопределено И Фильтр.НайтиПоЗначению(Расширение.Имя) = Неопределено Тогда Если Фильтр.Количество() <> 0 И Фильтр.НайтиПоЗначению(Расширение.Имя) = Неопределено Тогда
Продолжить; Продолжить;
КонецЕсли; КонецЕсли;
@@ -147,12 +165,40 @@
НоваяСтрока.Описание = СвойстваИсправления.Description; НоваяСтрока.Описание = СвойстваИсправления.Description;
НоваяСтрока.ПрименимоДля = ИсправлениеПрименимоДля(СвойстваИсправления); НоваяСтрока.ПрименимоДля = ИсправлениеПрименимоДля(СвойстваИсправления);
Иначе Иначе
Описание = ОписаниеИсправлений[Расширение.Имя];
НоваяСтрока.Статус = 1; НоваяСтрока.Статус = 1;
НоваяСтрока.Описание = Описание;
КонецЕсли; КонецЕсли;
КонецЦикла; КонецЦикла;
КонецПроцедуры КонецПроцедуры
&НаСервере
Функция ОписаниеУстановленныхИсправлений()
Если Не ПриОбновлении Тогда
Возврат Новый Соответствие;
КонецЕсли;
АдресХранилища = ПоместитьВоВременноеХранилище(Неопределено, УникальныйИдентификатор);
ПараметрыМетода = Новый Массив;
ПараметрыМетода.Добавить(АдресХранилища);
ПараметрыМетода.Добавить(Фильтр.ВыгрузитьЗначения());
ПараметрыМетода.Добавить(Истина);
ФоновоеЗадание = РасширенияКонфигурации.ВыполнитьФоновоеЗаданиеСРасширениямиБазыДанных(
"ОбновлениеКонфигурации.ОписанияНовыхПатчей",
ПараметрыМетода);
ФоновоеЗадание.ОжидатьЗавершенияВыполнения(Неопределено);
ОписаниеНовыхПатчей = ПолучитьИзВременногоХранилища(АдресХранилища);
Если ТипЗнч(ОписаниеНовыхПатчей) <> Тип("Соответствие") Тогда
ОписаниеНовыхПатчей = Новый Соответствие;
КонецЕсли;
Возврат ОписаниеНовыхПатчей;
КонецФункции
&НаСервере &НаСервере
Функция ИсправлениеПрименимоДля(СвойстваИсправления) Функция ИсправлениеПрименимоДля(СвойстваИсправления)
@@ -311,4 +357,4 @@
КонецФункции КонецФункции
#КонецОбласти #КонецОбласти
@@ -7454,6 +7454,9 @@
Для Каждого Запись Из ПомеченныеНаУдаление Цикл Для Каждого Запись Из ПомеченныеНаУдаление Цикл
СвойствоЭлементаСтруктуры = СвойствоЭлементаСтруктурыНастроек( СвойствоЭлементаСтруктуры = СвойствоЭлементаСтруктурыНастроек(
КомпоновщикНастроек, Запись.КлючСвойстваЭлементаСтруктуры, Запись.ИдентификаторЭлементаСтруктуры, РасширенныйРежим); КомпоновщикНастроек, Запись.КлючСвойстваЭлементаСтруктуры, Запись.ИдентификаторЭлементаСтруктуры, РасширенныйРежим);
Если СвойствоЭлементаСтруктуры = Неопределено Тогда
Продолжить;
КонецЕсли;
ЭлементНастройки = СвойствоЭлементаСтруктуры.ПолучитьОбъектПоИдентификатору(Запись.ИдентификаторЭлемента); ЭлементНастройки = СвойствоЭлементаСтруктуры.ПолучитьОбъектПоИдентификатору(Запись.ИдентификаторЭлемента);
Если ЭлементНастройки = Неопределено Тогда Если ЭлементНастройки = Неопределено Тогда
@@ -3706,7 +3706,8 @@
Элементы.ГруппаСохранениеВыборВариантаОтчета.Видимость = Не ОбщегоНазначения.РазделениеВключено() Элементы.ГруппаСохранениеВыборВариантаОтчета.Видимость = Не ОбщегоНазначения.РазделениеВключено()
Или ОбщегоНазначения.ДоступноИспользованиеРазделенныхДанных(); Или ОбщегоНазначения.ДоступноИспользованиеРазделенныхДанных();
Элементы.ИзменитьСоставБыстрыхНастроек.Видимость = ПоказыватьКомандыИзмененияВарианта; Элементы.ИзменитьСоставБыстрыхНастроек.Видимость = ПоказыватьКомандыИзмененияВарианта
И Не ОбщегоНазначения.ЭтоМобильныйКлиент();
ЭтоПредопределенныйВариант = Не НастройкиОтчета.Пользовательский ЭтоПредопределенныйВариант = Не НастройкиОтчета.Пользовательский
И ЗначениеЗаполнено(НастройкиОтчета.ПредопределенныйСсылка); И ЗначениеЗаполнено(НастройкиОтчета.ПредопределенныйСсылка);
@@ -145,7 +145,7 @@
КонецПроцедуры КонецПроцедуры
// Для вызова из формы восстановления связи с главным узлом // Для вызова из формы восстановления связи с главным узлом
// см. общую форму ВосстановлениеСвязиСГлавнымУзлом // см. ОбщаяФорма.ВосстановлениеСвязиСГлавнымУзлом.
// //
Процедура ПриПодтвержденииОтключенияСвязиСГлавнымУзлом() Экспорт Процедура ПриПодтвержденииОтключенияСвязиСГлавнымУзлом() Экспорт
@@ -4766,9 +4766,11 @@
Языки = Новый Массив; Языки = Новый Массив;
КодТекущегоЯзыка = ?(ТипЗнч(ТекущийЯзык()) = Тип("Строка"), ТекущийЯзык(), ТекущийЯзык().КодЯзыка);
Исключения = Новый Массив; Исключения = Новый Массив;
Исключения.Добавить(ТекущийЯзык()); Исключения.Добавить(КодТекущегоЯзыка);
Исключения.Добавить(Метаданные.ОсновнойЯзык); Исключения.Добавить(ОбщегоНазначения.КодОсновногоЯзыка());
Для Каждого Язык Из Метаданные.Языки Цикл Для Каждого Язык Из Метаданные.Языки Цикл
@@ -227,7 +227,7 @@
Результат.Колонки.Добавить("ПолноеИмя", ВариантыОтчетов.ОписаниеТиповСтрока(510)); Результат.Колонки.Добавить("ПолноеИмя", ВариантыОтчетов.ОписаниеТиповСтрока(510));
Результат.Колонки.Добавить("Представление", ВариантыОтчетов.ОписаниеТиповСтрока(150)); Результат.Колонки.Добавить("Представление", ВариантыОтчетов.ОписаниеТиповСтрока(150));
Если ТекущийЯзык() = Метаданные.ОсновнойЯзык Тогда Если ОбщегоНазначения.ЭтоОсновнойЯзык() Тогда
Возврат Результат; Возврат Результат;
КонецЕсли; КонецЕсли;
@@ -2163,7 +2163,14 @@
НеиспользуемыеОбласти.Добавить("ИспользоватьВЗаголовкеПолейРесурсов"); НеиспользуемыеОбласти.Добавить("ИспользоватьВЗаголовкеПолейРесурсов");
НеиспользуемыеОбласти.Добавить("ИспользоватьВЗаголовкеОбщегоИтога"); НеиспользуемыеОбласти.Добавить("ИспользоватьВЗаголовкеОбщегоИтога");
#Если ВебКлиент Тогда
СистемнаяИнформация = Новый СистемнаяИнформация;
Если ОбщегоНазначенияКлиентСервер.СравнитьВерсии(СистемнаяИнформация.ВерсияПриложения, "8.3.20.1859") > 0 Тогда
НеиспользуемыеОбласти.Добавить("ИспользоватьВЗаголовкеПолейРесурсовОбщегоИтога");
КонецЕсли;
#Иначе
НеиспользуемыеОбласти.Добавить("ИспользоватьВЗаголовкеПолейРесурсовОбщегоИтога"); НеиспользуемыеОбласти.Добавить("ИспользоватьВЗаголовкеПолейРесурсовОбщегоИтога");
#КонецЕсли
Возврат НеиспользуемыеОбласти; Возврат НеиспользуемыеОбласти;
@@ -3575,6 +3582,10 @@
Для Каждого Формула Из Формулы Цикл Для Каждого Формула Из Формулы Цикл
Если ТипЗнч(Формула) <> Тип("ПользовательскоеПолеВыражениеКомпоновкиДанных") Тогда
Продолжить;
КонецЕсли;
Если СокрЛП(Выражение) = Формула.ПолучитьВыражениеДетальныхЗаписей() Тогда Если СокрЛП(Выражение) = Формула.ПолучитьВыражениеДетальныхЗаписей() Тогда
Возврат Формула; Возврат Формула;
КонецЕсли; КонецЕсли;
@@ -3665,7 +3676,6 @@
Формула = ДополнительныеПараметры.Формула; Формула = ДополнительныеПараметры.Формула;
Формула.УстановитьВыражениеДетальныхЗаписей(Выражение); Формула.УстановитьВыражениеДетальныхЗаписей(Выражение);
Формула.УстановитьПредставлениеВыражений(ПредставлениеВыражения, "");
Формула.Заголовок = ?(ЗначениеЗаполнено(Заголовок), Заголовок, ПредставлениеВыражения); Формула.Заголовок = ?(ЗначениеЗаполнено(Заголовок), Заголовок, ПредставлениеВыражения);
ОписаниеФормулы = ДополнительныеПараметры.КоллекцияПолей.НайтиПоле(Новый ПолеКомпоновкиДанных(Формула.ПутьКДанным)); ОписаниеФормулы = ДополнительныеПараметры.КоллекцияПолей.НайтиПоле(Новый ПолеКомпоновкиДанных(Формула.ПутьКДанным));
@@ -47,9 +47,6 @@
// Для регистрации условий следует использовать процедуру // Для регистрации условий следует использовать процедуру
// ПодключаемыеКоманды.ДобавитьУсловиеВидимостиКоманды. // ПодключаемыеКоманды.ДобавитьУсловиеВидимостиКоманды.
// Условия объединяются по "И". // Условия объединяются по "И".
// * ИзменяетВыбранныеОбъекты - Булево - определяет доступность команды, когда у пользователя нет прав на
// изменение объекта. Если Истина, то в описанной выше ситуации кнопка будет недоступна.
// Значение по умолчанию - Истина.
// //
// Настройки процесса выполнения: // Настройки процесса выполнения:
// * МножественныйВыбор - Булево // * МножественныйВыбор - Булево
@@ -690,6 +690,8 @@
МодульКалендарныеГрафикиСлужебный.ПриОпределенииПсевдонимовОбработчиков(СоответствиеИменПсевдонимам); МодульКалендарныеГрафикиСлужебный.ПриОпределенииПсевдонимовОбработчиков(СоответствиеИменПсевдонимам);
КонецЕсли; КонецЕсли;
ОбновлениеИнформационнойБазыСлужебный.ПриОпределенииПсевдонимовОбработчиков(СоответствиеИменПсевдонимам);
Если ОбщегоНазначения.ПодсистемаСуществует( Если ОбщегоНазначения.ПодсистемаСуществует(
"СтандартныеПодсистемы.РаботаВМоделиСервиса.ОбновлениеВерсииИБВМоделиСервиса") Тогда "СтандартныеПодсистемы.РаботаВМоделиСервиса.ОбновлениеВерсииИБВМоделиСервиса") Тогда
МодульОбновлениеИнформационнойБазыСлужебныйВМоделиСервиса = ОбщегоНазначения.ОбщийМодуль( МодульОбновлениеИнформационнойБазыСлужебныйВМоделиСервиса = ОбщегоНазначения.ОбщийМодуль(
@@ -705,13 +707,16 @@
МодульРаботаСФайламиСлужебныйВМоделиСервиса.ПриОпределенииПсевдонимовОбработчиков(СоответствиеИменПсевдонимам); МодульРаботаСФайламиСлужебныйВМоделиСервиса.ПриОпределенииПсевдонимовОбработчиков(СоответствиеИменПсевдонимам);
КонецЕсли; КонецЕсли;
Если ОбщегоНазначения.ПодсистемаСуществует("СтандартныеПодсистемы.УдалениеПомеченныхОбъектов") Тогда
МодульУдалениеПомеченныхОбъектовСлужебный = ОбщегоНазначения.ОбщийМодуль("УдалениеПомеченныхОбъектовСлужебный");
МодульУдалениеПомеченныхОбъектовСлужебный.ПриОпределенииПсевдонимовОбработчиков(СоответствиеИменПсевдонимам);
КонецЕсли;
Если ОбщегоНазначения.ПодсистемаСуществует("СтандартныеПодсистемы.ЭлектроннаяПодпись") Тогда Если ОбщегоНазначения.ПодсистемаСуществует("СтандартныеПодсистемы.ЭлектроннаяПодпись") Тогда
МодульЭлектроннаяПодписьСлужебный = ОбщегоНазначения.ОбщийМодуль("ЭлектроннаяПодписьСлужебный"); МодульЭлектроннаяПодписьСлужебный = ОбщегоНазначения.ОбщийМодуль("ЭлектроннаяПодписьСлужебный");
МодульЭлектроннаяПодписьСлужебный.ПриОпределенииПсевдонимовОбработчиков(СоответствиеИменПсевдонимам); МодульЭлектроннаяПодписьСлужебный.ПриОпределенииПсевдонимовОбработчиков(СоответствиеИменПсевдонимам);
КонецЕсли; КонецЕсли;
ОбновлениеИнформационнойБазыСлужебный.ПриОпределенииПсевдонимовОбработчиков(СоответствиеИменПсевдонимам);
КонецПроцедуры КонецПроцедуры
// См. ОчередьЗаданийПереопределяемый.ПриОпределенииИспользованияРегламентныхЗаданий. // См. ОчередьЗаданийПереопределяемый.ПриОпределенииИспользованияРегламентныхЗаданий.
@@ -238,7 +238,7 @@
Представление[ИмяРеквизита] = ТекущийОбъект[ИмяРеквизита]; Представление[ИмяРеквизита] = ТекущийОбъект[ИмяРеквизита];
КонецЦикла; КонецЦикла;
Отбор.КодЯзыка = Метаданные.ОсновнойЯзык.КодЯзыка; Отбор.КодЯзыка = ОбщегоНазначения.КодОсновногоЯзыка();
НайденныеСтроки = Представления.НайтиСтроки(Отбор); НайденныеСтроки = Представления.НайтиСтроки(Отбор);
Если НайденныеСтроки.Количество() > 0 Тогда Если НайденныеСтроки.Количество() > 0 Тогда
Для каждого ИмяРеквизита Из Реквизиты Цикл Для каждого ИмяРеквизита Из Реквизиты Цикл
@@ -314,7 +314,7 @@
ИмяРеквизита = Реквизит.Имя; ИмяРеквизита = Реквизит.Имя;
Отбор = Новый Структура(); Отбор = Новый Структура();
Отбор.Вставить("КодЯзыка", Метаданные.ОсновнойЯзык.КодЯзыка); Отбор.Вставить("КодЯзыка", ОбщегоНазначения.КодОсновногоЯзыка());
НайденныеСтроки = Объект.Представления.НайтиСтроки(Отбор); НайденныеСтроки = Объект.Представления.НайтиСтроки(Отбор);
Если НайденныеСтроки.Количество() > 0 Тогда Если НайденныеСтроки.Количество() > 0 Тогда
@@ -328,7 +328,7 @@
КонецЕсли; КонецЕсли;
Представление = Объект.Представления.Добавить(); Представление = Объект.Представления.Добавить();
Представление.КодЯзыка = Метаданные.ОсновнойЯзык.КодЯзыка; Представление.КодЯзыка = ОбщегоНазначения.КодОсновногоЯзыка();
КонецЕсли; КонецЕсли;
Представление[ИмяРеквизита] = Объект[ИмяРеквизита]; Представление[ИмяРеквизита] = Объект[ИмяРеквизита];
@@ -467,7 +467,7 @@
Возврат Истина; Возврат Истина;
КонецЕсли; КонецЕсли;
Константы.ОсновнойЯзык.Установить(Метаданные.ОсновнойЯзык.КодЯзыка); Константы.ОсновнойЯзык.Установить(ОбщегоНазначения.КодОсновногоЯзыка());
Возврат Ложь; Возврат Ложь;
@@ -1977,7 +1977,7 @@
ДанныеОбъекта.СсылкаНаПоследнийОбработанныйОбъекты, ДанныеОбъекта.СсылкаНаПоследнийОбработанныйОбъекты,
ОбщегоНазначения.МенеджерОбъектаПоПолномуИмени(ПолноеИмя).ПустаяСсылка()); ОбщегоНазначения.МенеджерОбъектаПоПолномуИмени(ПолноеИмя).ПустаяСсылка());
ШаблонПолейЗапроса = "ДанныеОбъекта.%1%2 КАК %1%2"; // @Qurey-part1 ШаблонПолейЗапроса = "ДанныеОбъекта.%1%2 КАК %1%2";
ЗначенияЯзыковыхКонстант = ДанныеДляИзмененияМультиязычныхРеквизитов.НастройкиИзмененияЯзыков; ЗначенияЯзыковыхКонстант = ДанныеДляИзмененияМультиязычныхРеквизитов.НастройкиИзмененияЯзыков;
МультиязычныеРеквизиты = ДанныеОбъекта.ЯзыковыеПоля; МультиязычныеРеквизиты = ДанныеОбъекта.ЯзыковыеПоля;
@@ -39,7 +39,7 @@
Процедура ПриДобавленииПодсистемы(Описание) Экспорт Процедура ПриДобавленииПодсистемы(Описание) Экспорт
Описание.Имя = "БиблиотекаСинхронизацииДанных"; Описание.Имя = "БиблиотекаСинхронизацииДанных";
Описание.Версия = "1.0.1.19"; Описание.Версия = "1.0.1.23";
Описание.ИдентификаторИнтернетПоддержки = "DSL"; Описание.ИдентификаторИнтернетПоддержки = "DSL";
Описание.РежимВыполненияОтложенныхОбработчиков = "Параллельно"; Описание.РежимВыполненияОтложенныхОбработчиков = "Параллельно";
Описание.ПараллельноеОтложенноеОбновлениеСВерсии = "1.0.1.1"; Описание.ПараллельноеОтложенноеОбновлениеСВерсии = "1.0.1.1";
@@ -45,7 +45,7 @@
Процедура ПриДобавленииПодсистемы(Описание) Экспорт Процедура ПриДобавленииПодсистемы(Описание) Экспорт
Описание.Имя = "СтандартныеПодсистемы"; Описание.Имя = "СтандартныеПодсистемы";
Описание.Версия = "3.1.6.209"; Описание.Версия = "3.1.6.227";
Описание.ИдентификаторИнтернетПоддержки = "SSL"; Описание.ИдентификаторИнтернетПоддержки = "SSL";
Описание.РежимВыполненияОтложенныхОбработчиков = "Параллельно"; Описание.РежимВыполненияОтложенныхОбработчиков = "Параллельно";
Описание.ПараллельноеОтложенноеОбновлениеСВерсии = "2.3.3.0"; Описание.ПараллельноеОтложенноеОбновлениеСВерсии = "2.3.3.0";
@@ -497,8 +497,11 @@
КонецЦикла; КонецЦикла;
КонецЕсли; КонецЕсли;
ТекущийСеанс = ПолучитьТекущийСеансИнформационнойБазы().ПолучитьФоновоеЗадание();
ЭтоФоновоеЗадание = (ТекущийСеанс <> Неопределено);
ТекстДляАсинхронногоВызова = ""; ТекстДляАсинхронногоВызова = "";
Если ОбщегоНазначения.ИнформационнаяБазаФайловая() И ВФоне Тогда Если ОбщегоНазначения.ИнформационнаяБазаФайловая() И (ВФоне Или ЭтоФоновоеЗадание) Тогда
ТекстДляАсинхронногоВызова = НСтр("ru = 'Обновление параметров работы расширений после установки или ТекстДляАсинхронногоВызова = НСтр("ru = 'Обновление параметров работы расширений после установки или
|удаления патчей завершилось с ошибкой.'") |удаления патчей завершилось с ошибкой.'")
КонецЕсли; КонецЕсли;
@@ -561,8 +564,12 @@
КонецЕсли; КонецЕсли;
КонецПроцедуры КонецПроцедуры
Процедура ОписанияНовыхПатчей(АдресХранилища, ТекущиеИсправления) Экспорт Процедура ОписанияНовыхПатчей(АдресХранилища, ТекущиеИсправления, ДляОбновления = Ложь) Экспорт
Описания = Новый Массив; Если ДляОбновления Тогда
Описания = Новый Соответствие;
Иначе
Описания = Новый Массив;
КонецЕсли;
Для Каждого Исправление Из ТекущиеИсправления Цикл Для Каждого Исправление Из ТекущиеИсправления Цикл
Если Метаданные.ОбщиеМакеты.Найти(Исправление) = Неопределено Тогда Если Метаданные.ОбщиеМакеты.Найти(Исправление) = Неопределено Тогда
Продолжить; Продолжить;
@@ -570,16 +577,34 @@
Макет = ПолучитьОбщийМакет(Исправление); Макет = ПолучитьОбщийМакет(Исправление);
Для НомерСтроки = 1 По Макет.КоличествоСтрок() Цикл Для НомерСтроки = 1 По Макет.КоличествоСтрок() Цикл
Строка = Макет.ПолучитьСтроку(НомерСтроки); Строка = Макет.ПолучитьСтроку(НомерСтроки);
Если Не СтрНачинаетсяС(СокрЛП(Строка), "<Description>") Тогда Если Не СтрНачинаетсяС(СокрЛ(Строка), "<Description>") Тогда
Продолжить; Продолжить;
КонецЕсли; КонецЕсли;
ОписаниеПатча = СтрЗаменить(СтрЗаменить(СокрЛП(Строка), "<Description>", ""), "</Description>", ""); ОписаниеПатча = СтрЗаменить(СокрЛ(Строка), "<Description>", "");
Описания.Добавить(Исправление + ": " + ОписаниеПатча); Пока НомерСтроки < Макет.КоличествоСтрок() Цикл
Если СтрЗаканчиваетсяНа(СокрП(ОписаниеПатча), "</Description>") Тогда
ОписаниеПатча = СтрЗаменить(СокрП(ОписаниеПатча), "</Description>", "");
Прервать;
КонецЕсли;
НомерСтроки = НомерСтроки + 1;
Строка = Макет.ПолучитьСтроку(НомерСтроки);
ОписаниеПатча = ОписаниеПатча + Символы.ПС + Строка;
КонецЦикла;
Если ДляОбновления Тогда
Описания.Вставить(Исправление, ОписаниеПатча);
Иначе
Описания.Добавить(Исправление + ": " + ОписаниеПатча);
КонецЕсли;
Прервать; Прервать;
КонецЦикла; КонецЦикла;
КонецЦикла; КонецЦикла;
ОписаниеСтрокой = СтрСоединить(Описания, Символы.ПС);
ПоместитьВоВременноеХранилище(ОписаниеСтрокой, АдресХранилища); Если ДляОбновления Тогда
ПоместитьВоВременноеХранилище(Описания, АдресХранилища);
Иначе
ОписаниеСтрокой = СтрСоединить(Описания, Символы.ПС);
ПоместитьВоВременноеХранилище(ОписаниеСтрокой, АдресХранилища);
КонецЕсли;
КонецПроцедуры КонецПроцедуры
// Вызывается при завершении обновления конфигурации через COM-соединение. // Вызывается при завершении обновления конфигурации через COM-соединение.
@@ -299,14 +299,13 @@
// Открывает форму со списком установленных исправлений. // Открывает форму со списком установленных исправлений.
// //
// Параметры: Процедура ПоказатьУстановленныеИсправления(Параметры = Неопределено, РежимОткрытия = Неопределено) Экспорт
// Исправления - СписокЗначений - список имен установленных исправлений, которые необходимо отобразить.
// Если не указан, отображаются все исправления.
//
Процедура ПоказатьУстановленныеИсправления(Исправления = Неопределено) Экспорт
ПараметрыФормы = Новый Структура("Исправления", Исправления); Если Параметры = Неопределено Тогда
ОткрытьФорму("ОбщаяФорма.УстановленныеИсправления", ПараметрыФормы); Параметры = Новый Структура;
КонецЕсли;
ОткрытьФорму("ОбщаяФорма.УстановленныеИсправления", Параметры,,,,,, РежимОткрытия);
КонецПроцедуры КонецПроцедуры
@@ -1663,7 +1663,7 @@
Функция АдресЭлектроннойПочтыСоответствуетТребованиям(Знач Адрес, РазрешитьЛокальныеАдреса = Ложь) Экспорт Функция АдресЭлектроннойПочтыСоответствуетТребованиям(Знач Адрес, РазрешитьЛокальныеАдреса = Ложь) Экспорт
// Допустимые символы для email. // Допустимые символы для email.
Буквы = "abcdefghijklmnopqrstuvwxyz"; Буквы = "abcdefghijklmnopqrstuvwxyzабвгдеёжзийклмнопрстуфхцчшщъыьэюя";
Цифры = "0123456789"; Цифры = "0123456789";
СпецСимволы = ".@_-:+"; СпецСимволы = ".@_-:+";
@@ -2202,7 +2202,22 @@
// Расписание - РасписаниеРегламентногоЗадания - исходное расписание. // Расписание - РасписаниеРегламентногоЗадания - исходное расписание.
// //
// Возвращаемое значение: // Возвращаемое значение:
// Структура - расписание в виде структуры. // Структура:
// * ВремяЗавершения - Дата
// * ВремяКонца - Дата
// * ВремяНачала - Дата
// * ДатаКонца - Дата
// * ДатаНачала - Дата
// * ДеньВМесяце - Дата
// * ДеньНеделиВМесяце - Число
// * ДниНедели - Число
// * ИнтервалЗавершения - Число
// * Месяцы - Массив из Число
// * ПаузаПовтора - Число
// * ПериодНедель - Число
// * ПериодПовтораВТечениеДня - Число
// * ПериодПовтораДней - Число
// * ДетальныеРасписанияДня - Массив из см. РасписаниеВСтруктуру
// //
Функция РасписаниеВСтруктуру(Знач Расписание) Экспорт Функция РасписаниеВСтруктуру(Знач Расписание) Экспорт
@@ -3404,11 +3419,13 @@
// Строка - код языка. // Строка - код языка.
// //
Функция КодОсновногоЯзыка() Экспорт Функция КодОсновногоЯзыка() Экспорт
#Если НЕ ТонкийКлиент И НЕ ВебКлиент И НЕ МобильныйКлиент Тогда
Возврат Метаданные.ОсновнойЯзык.КодЯзыка; #Если Сервер Или ТолстыйКлиентОбычноеПриложение Или ВнешнееСоединение Тогда
Возврат ОбщегоНазначения.КодОсновногоЯзыка();
#Иначе #Иначе
Возврат СтандартныеПодсистемыКлиент.ПараметрКлиента("КодОсновногоЯзыка"); Возврат СтандартныеПодсистемыКлиент.ПараметрКлиента("КодОсновногоЯзыка");
#КонецЕсли #КонецЕсли
КонецФункции КонецФункции
// Устарела. Следует использовать ОбщегоНазначенияКлиент.ПредставлениеЛокальнойДатыСоСмещением // Устарела. Следует использовать ОбщегоНазначенияКлиент.ПредставлениеЛокальнойДатыСоСмещением
@@ -895,6 +895,11 @@
Если Не ЗначениеЗаполнено(КомандаФормы.Картинка) И Подменю.Вид = ВидГруппыФормы.Подменю Тогда Если Не ЗначениеЗаполнено(КомандаФормы.Картинка) И Подменю.Вид = ВидГруппыФормы.Подменю Тогда
КомандаФормы.Картинка = Подменю.Картинка; КомандаФормы.Картинка = Подменю.Картинка;
КонецЕсли; КонецЕсли;
Если Не ЗначениеЗаполнено(КомандаФормы.Картинка) Тогда
КомандаФормы.Картинка = СведенияОПодменю.КартинкаПодменю;
конецЕсли;
Если СтрДлина(КомандаФормы.Заголовок) <= 35 И Подменю.Отображение <> ОтображениеКнопки.Картинка Тогда Если СтрДлина(КомандаФормы.Заголовок) <= 35 И Подменю.Отображение <> ОтображениеКнопки.Картинка Тогда
КомандаФормы.Отображение = ОтображениеКнопки.КартинкаИТекст; КомандаФормы.Отображение = ОтображениеКнопки.КартинкаИТекст;
Иначе Иначе
@@ -953,6 +958,7 @@
// * ГруппаПоУмолчанию - ГруппаФормы // * ГруппаПоУмолчанию - ГруппаФормы
// * ПоследняяКоманда - КомандаФормы // * ПоследняяКоманда - КомандаФормы
// * КомандыСУсловиямиВидимости - Массив // * КомандыСУсловиямиВидимости - Массив
// * КартинкаПодменю - Картинка
// //
Функция СведенияОВсехПодменю() Функция СведенияОВсехПодменю()
@@ -965,6 +971,7 @@
СведенияОВсехПодменю.Колонки.Добавить("ГруппаПоУмолчанию"); СведенияОВсехПодменю.Колонки.Добавить("ГруппаПоУмолчанию");
СведенияОВсехПодменю.Колонки.Добавить("ПоследняяКоманда"); СведенияОВсехПодменю.Колонки.Добавить("ПоследняяКоманда");
СведенияОВсехПодменю.Колонки.Добавить("КомандыСУсловиямиВидимости", Новый ОписаниеТипов("Массив")); СведенияОВсехПодменю.Колонки.Добавить("КомандыСУсловиямиВидимости", Новый ОписаниеТипов("Массив"));
СведенияОВсехПодменю.Колонки.Добавить("КартинкаПодменю");
Возврат СведенияОВсехПодменю; Возврат СведенияОВсехПодменю;
@@ -1104,6 +1111,7 @@
Функция ЗарегистрироватьПодменю(Элементы, СведенияОВсехПодменю, ИмяПодменю, ШаблонНового = Неопределено, КоманднаяПанель = Неопределено, ПодменюПоУмолчанию = Неопределено) Функция ЗарегистрироватьПодменю(Элементы, СведенияОВсехПодменю, ИмяПодменю, ШаблонНового = Неопределено, КоманднаяПанель = Неопределено, ПодменюПоУмолчанию = Неопределено)
ВыведеноКоманд = 0; ВыведеноКоманд = 0;
Группы = Новый Структура; Группы = Новый Структура;
КартинкаПодменю = Неопределено;
Если ЗначениеЗаполнено(ИмяПодменю) Тогда Если ЗначениеЗаполнено(ИмяПодменю) Тогда
Подменю = Элементы.Найти(ИмяПодменю); Подменю = Элементы.Найти(ИмяПодменю);
Если Подменю = Неопределено Тогда Если Подменю = Неопределено Тогда
@@ -1115,10 +1123,16 @@
Подменю.Заголовок = ШаблонНового.Заголовок; Подменю.Заголовок = ШаблонНового.Заголовок;
Если Подменю.Вид = ВидГруппыФормы.Подменю Тогда Если Подменю.Вид = ВидГруппыФормы.Подменю Тогда
Подменю.Картинка = ШаблонНового.Картинка; Подменю.Картинка = ШаблонНового.Картинка;
КартинкаПодменю = Подменю.Картинка;
Подменю.Отображение = ШаблонНового.Отображение; Подменю.Отображение = ШаблонНового.Отображение;
КонецЕсли; КонецЕсли;
Иначе Иначе
ГруппаПоУмолчанию = Подменю; ГруппаПоУмолчанию = Подменю;
Если Подменю.Вид = ВидГруппыФормы.Подменю Тогда
КартинкаПодменю = Подменю.Картинка;
Иначе
КартинкаПодменю = ШаблонНового.Картинка;
КонецЕсли;
ВыведеноКоманд = КоличествоКомандВГруппе(ГруппаПоУмолчанию); ВыведеноКоманд = КоличествоКомандВГруппе(ГруппаПоУмолчанию);
Для Каждого Группа Из Подменю.ПодчиненныеЭлементы Цикл Для Каждого Группа Из Подменю.ПодчиненныеЭлементы Цикл
Если ТипЗнч(Группа) <> Тип("ГруппаФормы") Тогда Если ТипЗнч(Группа) <> Тип("ГруппаФормы") Тогда
@@ -1171,6 +1185,7 @@
Результат.ГруппаПоУмолчанию = ГруппаПоУмолчанию; Результат.ГруппаПоУмолчанию = ГруппаПоУмолчанию;
Результат.Группы = Группы; Результат.Группы = Группы;
Результат.ВыведеноКоманд = ВыведеноКоманд; Результат.ВыведеноКоманд = ВыведеноКоманд;
Результат.КартинкаПодменю = КартинкаПодменю;
Возврат Результат; Возврат Результат;
КонецФункции КонецФункции
@@ -1249,7 +1264,7 @@
Продолжить; Продолжить;
КонецЕсли; КонецЕсли;
ИдентификаторОбъектаМетаданных = ОбщегоНазначения.ИдентификаторОбъектаМетаданных(ОбъектМетаданныхПоставщика); ИдентификаторОбъектаМетаданных = ОбщегоНазначения.ИдентификаторОбъектаМетаданных(ОбъектМетаданныхПоставщика, Ложь);
Если ТипЗнч(ИдентификаторОбъектаМетаданных) <> Отбор Тогда Если ТипЗнч(ИдентификаторОбъектаМетаданных) <> Отбор Тогда
Продолжить; Продолжить;
КонецЕсли; КонецЕсли;
@@ -4880,6 +4880,8 @@
ЭлементБлокировки.УстановитьЗначение("Ссылка", ВладелецКИ); ЭлементБлокировки.УстановитьЗначение("Ссылка", ВладелецКИ);
ЭлементБлокировки.Режим = РежимБлокировкиДанных.Разделяемый; ЭлементБлокировки.Режим = РежимБлокировкиДанных.Разделяемый;
ПочтаДляВосстановленияПароля = "";
НачатьТранзакцию(); НачатьТранзакцию();
Попытка Попытка
@@ -4892,7 +4894,6 @@
СтрокаСПочтой = КонтактнаяИнформацияПользователя[0]; СтрокаСПочтой = КонтактнаяИнформацияПользователя[0];
ПочтаДляВосстановленияПароля = "";
Если ЗначениеЗаполнено(СтрокаСПочтой.Значение) Тогда Если ЗначениеЗаполнено(СтрокаСПочтой.Значение) Тогда
ПочтаДляВосстановленияПароля = МодульУправлениеКонтактнойИнформацией.АдресЭлектроннойПочты(СтрокаСПочтой.Значение); ПочтаДляВосстановленияПароля = МодульУправлениеКонтактнойИнформацией.АдресЭлектроннойПочты(СтрокаСПочтой.Значение);
Если Не ОбщегоНазначенияКлиентСервер.АдресЭлектроннойПочтыСоответствуетТребованиям(ПочтаДляВосстановленияПароля) Тогда Если Не ОбщегоНазначенияКлиентСервер.АдресЭлектроннойПочтыСоответствуетТребованиям(ПочтаДляВосстановленияПароля) Тогда
@@ -4939,6 +4940,11 @@
ЗаписьЖурналаРегистрации(ОбновлениеИнформационнойБазы.СобытиеЖурналаРегистрации(), УровеньЖурналаРегистрации.Предупреждение, ЗаписьЖурналаРегистрации(ОбновлениеИнформационнойБазы.СобытиеЖурналаРегистрации(), УровеньЖурналаРегистрации.Предупреждение,
Метаданные.Справочники.Пользователи, ПользовательСсылка, ТекстСообщения); Метаданные.Справочники.Пользователи, ПользовательСсылка, ТекстСообщения);
Уточнение = НСтр("ru = 'Адрес электронной почты %1 занят другим пользователем и не может быть использован для восстановления пароля.'");
Уточнение = СтроковыеФункцииКлиентСервер.ПодставитьПараметрыВСтроку(Уточнение, ПочтаДляВосстановленияПароля);
ОбновлениеИнформационнойБазы.ЗарегистрироватьПроблемуСДанными(ПользовательСсылка, Уточнение);
КонецПопытки; КонецПопытки;
Возврат Результат; Возврат Результат;
@@ -876,7 +876,7 @@
#Если ВебКлиент Тогда #Если ВебКлиент Тогда
Если ПараметрыВыполнения.ДанныеФайла.Расширение <> "mxl" Тогда Если ПараметрыВыполнения.ДанныеФайла.Расширение <> "mxl" Тогда
Текст = НСтр("ru = 'Сохраните файл на компьютер, после чего распечатать его при помощи приложения, предназначенного для работы с данным файлом.'"); Текст = НСтр("ru = 'Сохраните файл на компьютер, после чего распечатайте его при помощи приложения, предназначенного для работы с данным файлом.'");
ПоказатьПредупреждение(, Текст); ПоказатьПредупреждение(, Текст);
Возврат; Возврат;
КонецЕсли; КонецЕсли;
@@ -5994,8 +5994,7 @@
Функция ТекстЗапросаДляСинхронизацииФайлов(ВладелецФайла, НастройкаСинхронизации, МассивИсключений, ЭлементИсключение) Функция ТекстЗапросаДляСинхронизацииФайлов(ВладелецФайла, НастройкаСинхронизации, МассивИсключений, ЭлементИсключение)
ТипОбъекта = ВладелецФайла; ПредставлениеТипаВладельца = ОбщегоНазначения.ВидОбъектаПоТипу(ТипЗнч(ВладелецФайла.ЗначениеПустойСсылки));
ПредставлениеТипаВладельца = ОбщегоНазначения.ВидОбъектаПоТипу(ТипЗнч(ТипОбъекта.ЗначениеПустойСсылки));
ПолноеИмяСправочникаФайлов = НастройкаСинхронизации.ТипВладельцаФайла.ПолноеИмя; ПолноеИмяСправочникаФайлов = НастройкаСинхронизации.ТипВладельцаФайла.ПолноеИмя;
МетаданныеОбъектаФайлов = Метаданные.НайтиПоПолномуИмени(ПолноеИмяСправочникаФайлов); МетаданныеОбъектаФайлов = Метаданные.НайтиПоПолномуИмени(ПолноеИмяСправочникаФайлов);
ЕстьВозможностьХранитьВерсии = ОбщегоНазначения.ЕстьРеквизитОбъекта("ТекущаяВерсия", МетаданныеОбъектаФайлов); ЕстьВозможностьХранитьВерсии = ОбщегоНазначения.ЕстьРеквизитОбъекта("ТекущаяВерсия", МетаданныеОбъектаФайлов);
@@ -6025,12 +6024,12 @@
КонецЕсли; КонецЕсли;
ТекстЗапроса = ТекстЗапроса + "ВЫБРАТЬ ТекстЗапроса = ТекстЗапроса + "ВЫБРАТЬ
| СправочникПапок.Ссылка,";// @query-part | СправочникПапок.Ссылка,"; // @query-part
ДобавитьДоступныеПоляОтбора(ТекстЗапроса, ТипОбъекта); ДобавитьДоступныеПоляОтбора(ТекстЗапроса, ВладелецФайла);
ТекстЗапроса = ТекстЗапроса + " ТекстЗапроса = ТекстЗапроса + "
| СправочникФайлов.Ссылка КАК ФайлСсылка,"; | СправочникФайлов.Ссылка КАК ФайлСсылка,"; // @query-part
Если ВозможностьСоздаватьГруппы Тогда Если ВозможностьСоздаватьГруппы Тогда
@@ -6042,10 +6041,10 @@
| КОНЕЦ КАК Наименование, | КОНЕЦ КАК Наименование,
| СправочникФайлов.ПометкаУдаления КАК ПометкаУдаления, | СправочникФайлов.ПометкаУдаления КАК ПометкаУдаления,
| СправочникФайлов.ВладелецФайла КАК Родитель, | СправочникФайлов.ВладелецФайла КАК Родитель,
| ЛОЖЬ КАК ЭтоПапка,"; | ЛОЖЬ КАК ЭтоПапка,"; // @query-part
ОтборПоПапкам = "(СправочникФайлов.ЭтоГруппа ОтборПоПапкам = "(СправочникФайлов.ЭтоГруппа
| ИЛИ (НЕ СправочникФайлов.ЭтоГруппа И СправочникФайлов.ПодписанЭП = ЛОЖЬ И СправочникФайлов.Зашифрован = ЛОЖЬ)) "; | ИЛИ (НЕ СправочникФайлов.ЭтоГруппа И СправочникФайлов.ПодписанЭП = ЛОЖЬ И СправочникФайлов.Зашифрован = ЛОЖЬ)) "; // @query-part
Иначе Иначе
@@ -6053,9 +6052,9 @@
| СправочникФайлов.Наименование + ""."" + СправочникФайлов.Расширение КАК Наименование, | СправочникФайлов.Наименование + ""."" + СправочникФайлов.Расширение КАК Наименование,
| СправочникФайлов.ПометкаУдаления КАК ПометкаУдаления, | СправочникФайлов.ПометкаУдаления КАК ПометкаУдаления,
| СправочникФайлов.ВладелецФайла КАК Родитель, | СправочникФайлов.ВладелецФайла КАК Родитель,
| ЛОЖЬ КАК ЭтоПапка,"; | ЛОЖЬ КАК ЭтоПапка,"; // @query-part
ОтборПоПапкам = " СправочникФайлов.ПодписанЭП = ЛОЖЬ И СправочникФайлов.Зашифрован = ЛОЖЬ "; ОтборПоПапкам = " СправочникФайлов.ПодписанЭП = ЛОЖЬ И СправочникФайлов.Зашифрован = ЛОЖЬ "; // @query-part
КонецЕсли; КонецЕсли;
@@ -6087,21 +6086,21 @@
Если МассивИсключений.Количество() > 0 Тогда Если МассивИсключений.Количество() > 0 Тогда
ТекстЗапроса = ТекстЗапроса + " ТекстЗапроса = ТекстЗапроса + "
| И НЕ СправочникПапок.Ссылка В ИЕРАРХИИ (&МассивИсключений)"; | И НЕ СправочникПапок.Ссылка В ИЕРАРХИИ (&МассивИсключений)"; // @query-part
КонецЕсли; КонецЕсли;
Если ЭлементИсключение <> Неопределено Тогда Если ЭлементИсключение <> Неопределено Тогда
ТекстЗапроса = ТекстЗапроса + " ТекстЗапроса = ТекстЗапроса + "
| И СправочникПапок.Ссылка В ИЕРАРХИИ (&ЭлементИсключение)"; | И СправочникПапок.Ссылка В ИЕРАРХИИ (&ЭлементИсключение)"; // @query-part
КонецЕсли; КонецЕсли;
ТекстЗапроса = ТекстЗапроса + " ТекстЗапроса = ТекстЗапроса + "
|ОБЪЕДИНИТЬ ВСЕ |ОБЪЕДИНИТЬ ВСЕ
| |
|ВЫБРАТЬ |ВЫБРАТЬ
| СправочникПапок.Ссылка,";// @query-part | СправочникПапок.Ссылка,"; // @query-part
ДобавитьДоступныеПоляОтбора(ТекстЗапроса, ТипОбъекта); ДобавитьДоступныеПоляОтбора(ТекстЗапроса, ВладелецФайла);
ТекстЗапроса = ТекстЗапроса + " ТекстЗапроса = ТекстЗапроса + "
| СправочникПапок.Ссылка, | СправочникПапок.Ссылка,
@@ -6169,25 +6168,31 @@
КонецФункции КонецФункции
// Параметры: // Параметры:
// ТипОбъекта - ОбъектМетаданныхСправочник // ВладелецФайла - ОпределяемыйТип.ВладелецПрисоединенныхФайлов
// //
Процедура ДобавитьДоступныеПоляОтбора(ТекстЗапроса, ТипОбъекта) Процедура ДобавитьДоступныеПоляОтбора(ТекстЗапроса, ВладелецФайла)
ВсеСправочники = Справочники.ТипВсеСсылки(); ВсеСправочники = Справочники.ТипВсеСсылки();
ВсеДокументы = Документы.ТипВсеСсылки(); ВсеДокументы = Документы.ТипВсеСсылки();
Если ВсеСправочники.СодержитТип(ТипЗнч(ТипОбъекта.ЗначениеПустойСсылки)) Тогда Если ВсеСправочники.СодержитТип(ТипЗнч(ВладелецФайла.ЗначениеПустойСсылки)) Тогда
Справочник = Метаданные.Справочники[ТипОбъекта.Имя]; Справочник = Метаданные.Справочники[ВладелецФайла.Имя];
ШаблонЗапроса = "СправочникПапок.%1 КАК %1,"; // @query-part
Для Каждого Реквизит Из Справочник.Реквизиты Цикл Для Каждого Реквизит Из Справочник.Реквизиты Цикл
ТекстЗапроса = ТекстЗапроса + Символы.ПС + "СправочникПапок." + Реквизит.Имя + " КАК " + Реквизит.Имя +","; ТекстЗапроса = ТекстЗапроса + Символы.ПС + СтроковыеФункцииКлиентСервер.ПодставитьПараметрыВСтроку(
ШаблонЗапроса, Реквизит.Имя);
КонецЦикла; КонецЦикла;
ИначеЕсли ВсеДокументы.СодержитТип(ТипЗнч(ТипОбъекта.ЗначениеПустойСсылки)) Тогда ИначеЕсли ВсеДокументы.СодержитТип(ТипЗнч(ВладелецФайла.ЗначениеПустойСсылки)) Тогда
Документ = Метаданные.Документы[ТипОбъекта.Имя]; Документ = Метаданные.Документы[ВладелецФайла.Имя];
ШаблонЗапроса = "СправочникПапок.%1,"; // @query-part
ШаблонЗапросаДата = "РАЗНОСТЬДАТ(СправочникПапок.%1, &ТекущаяДата, ДЕНЬ) Как ДнейДоУдаленияОт%1,"; // @query-part
Для Каждого Реквизит Из Документ.Реквизиты Цикл Для Каждого Реквизит Из Документ.Реквизиты Цикл
Если Реквизит.Тип.СодержитТип(Тип("Дата")) Тогда Если Реквизит.Тип.СодержитТип(Тип("Дата")) Тогда
ТекстЗапроса = ТекстЗапроса + Символы.ПС + "РАЗНОСТЬДАТ(" + Реквизит.Имя + ", &ТекущаяДата, ДЕНЬ) Как ДнейДоУдаленияОт" + Реквизит.Имя + ","; ТекстЗапроса = ТекстЗапроса + Символы.ПС + СтроковыеФункцииКлиентСервер.ПодставитьПараметрыВСтроку(
ШаблонЗапросаДата, Реквизит.Имя);
КонецЕсли; КонецЕсли;
ТекстЗапроса = ТекстЗапроса + Символы.ПС + "СправочникПапок." + Реквизит.Имя + ","; ТекстЗапроса = ТекстЗапроса + Символы.ПС + СтроковыеФункцииКлиентСервер.ПодставитьПараметрыВСтроку(
ШаблонЗапроса, Реквизит.Имя);
КонецЦикла; КонецЦикла;
КонецЕсли; КонецЕсли;
@@ -368,8 +368,8 @@
КонецЕсли; КонецЕсли;
ТекстСообщения = СтроковыеФункцииКлиентСервер.ПодставитьПараметрыВСтроку( ТекстСообщения = СтроковыеФункцииКлиентСервер.ПодставитьПараметрыВСтроку(
НСтр("ru = 'Отчеты отправлены ''%1'' (%2) от %3. %4'"), НСтр("ru = 'Отчеты отправлены ''%1'' от %2. %3'"),
ПредставлениеПолучателя, АдресПолучателя, ПредставлениеОтправителя, ДополнительныеСведения); ПредставлениеПолучателя, ПредставлениеОтправителя, ДополнительныеСведения);
ЗаписьЖурнала(ПараметрыЖурнала,, ТекстСообщения); ЗаписьЖурнала(ПараметрыЖурнала,, ТекстСообщения);
Исключение Исключение
@@ -396,6 +396,26 @@
// Доставка. // Доставка.
Если ВыполнитьДоставку(ПараметрыЖурнала, ПараметрыДоставки, ОбщиеВложения) Тогда Если ВыполнитьДоставку(ПараметрыЖурнала, ПараметрыДоставки, ОбщиеВложения) Тогда
РассылкаВыполнена = Истина; РассылкаВыполнена = Истина;
Если ПараметрыДоставки.Получатели <> Неопределено Тогда
ПредставлениеПолучателя = Новый Массив;
Для каждого ПолучательРассылки Из ПараметрыДоставки.Получатели Цикл
ПредставлениеПолучателя.Добавить(Строка(ПолучательРассылки.Ключ) + " (" + ПолучательРассылки.Значение + ")");
КонецЦикла;
ПредставлениеПолучателя = СтрСоединить(ПредставлениеПолучателя, Символы.ПС);
ДополнительныеСведения = "";
Если ОтправлятьСкрытыеКопииОтправителю Тогда
ДополнительныеСведения = НСтр("ru = 'Копия направлена отправителю.'");
КонецЕсли;
ТекстСообщения = СтроковыеФункцииКлиентСервер.ПодставитьПараметрыВСтроку(
НСтр("ru = 'Отчеты отправлены %1 получателям от %2. %3
|%4'"),
ПараметрыДоставки.Получатели.Количество(), ПредставлениеОтправителя,
ДополнительныеСведения, ПредставлениеПолучателя);
ЗаписьЖурнала(ПараметрыЖурнала,, ТекстСообщения);
КонецЕсли;
КонецЕсли; КонецЕсли;
КонецЕсли; КонецЕсли;
@@ -1044,22 +1044,14 @@
Если Задание <> Неопределено Тогда Если Задание <> Неопределено Тогда
ЕстьИзменения = Ложь; ЕстьИзменения = Ложь;
ОбновитьЗначениеСвойстваЗадания(Задание, ОбновитьЗначениеСвойстваЗадания(Задание, "Наименование", Параметры, ЕстьИзменения);
"Наименование", Параметры, ЕстьИзменения); ОбновитьЗначениеСвойстваЗадания(Задание, "Использование", Параметры, ЕстьИзменения);
ОбновитьЗначениеСвойстваЗадания(Задание, ОбновитьЗначениеСвойстваЗадания(Задание, "Ключ", Параметры, ЕстьИзменения);
"Использование", Параметры, ЕстьИзменения); ОбновитьЗначениеСвойстваЗадания(Задание, "ИмяПользователя", Параметры, ЕстьИзменения);
ОбновитьЗначениеСвойстваЗадания(Задание, ОбновитьЗначениеСвойстваЗадания(Задание, "ИнтервалПовтораПриАварийномЗавершении", Параметры, ЕстьИзменения);
"Ключ", Параметры, ЕстьИзменения); ОбновитьЗначениеСвойстваЗадания(Задание, "КоличествоПовторовПриАварийномЗавершении", Параметры, ЕстьИзменения);
ОбновитьЗначениеСвойстваЗадания(Задание, ОбновитьЗначениеСвойстваЗадания(Задание, "Параметры", Параметры, ЕстьИзменения);
"ИмяПользователя", Параметры, ЕстьИзменения); ОбновитьЗначениеСвойстваЗадания(Задание, "Расписание", Параметры, ЕстьИзменения);
ОбновитьЗначениеСвойстваЗадания(Задание,
"ИнтервалПовтораПриАварийномЗавершении", Параметры, ЕстьИзменения);
ОбновитьЗначениеСвойстваЗадания(Задание,
"КоличествоПовторовПриАварийномЗавершении", Параметры, ЕстьИзменения);
ОбновитьЗначениеСвойстваЗадания(Задание,
"Параметры", Параметры, ЕстьИзменения);
ОбновитьЗначениеСвойстваЗадания(Задание,
"Расписание", Параметры, ЕстьИзменения);
Если ЕстьИзменения Тогда Если ЕстьИзменения Тогда
Задание.Записать(); Задание.Записать();
@@ -1160,7 +1152,13 @@
Возврат; Возврат;
КонецЕсли; КонецЕсли;
Задание[ИмяСвойства] = ПараметрыЗадания[ИмяСвойства]; Если ТипЗнч(Задание[ИмяСвойства]) = Тип("РасписаниеРегламентногоЗадания")
И ТипЗнч(ПараметрыЗадания[ИмяСвойства]) = Тип("Структура") Тогда
ЗаполнитьЗначенияСвойств(Задание[ИмяСвойства], ПараметрыЗадания[ИмяСвойства]);
Иначе
Задание[ИмяСвойства] = ПараметрыЗадания[ИмяСвойства];
КонецЕсли;
ЕстьИзменения = Истина; ЕстьИзменения = Истина;
КонецПроцедуры КонецПроцедуры
@@ -1471,10 +1471,10 @@
Отбор = Новый Структура("Пользователь", ИмяПользователя); Отбор = Новый Структура("Пользователь", ИмяПользователя);
Выборка = ХранилищеСистемныхНастроек.Выбрать(Отбор); Выборка = ХранилищеСистемныхНастроек.Выбрать(Отбор);
Если ОбщегоНазначенияКлиентСервер.СравнитьВерсии(РежимСовместимости, "8.3.18.0") < 0 Тогда Если ОбщегоНазначенияКлиентСервер.СравнитьВерсии(РежимСовместимости, "8.3.18.0") < 0 Тогда
КлючПоискаРусский = "НастройкиОкна"; КлючПоискаРусский = "НастройкиОкна"; // @Non-NLS
КлючПоискаАнглийский = "WindowSettings"; КлючПоискаАнглийский = "WindowSettings";
Иначе Иначе
КлючПоискаРусский = "НастройкиОкнаТонкогоКлиента"; КлючПоискаРусский = "НастройкиОкнаТонкогоКлиента"; // @Non-NLS
КлючПоискаАнглийский = "ThinClientWindowSettings"; КлючПоискаАнглийский = "ThinClientWindowSettings";
КонецЕсли; КонецЕсли;
Пока Истина Цикл Пока Истина Цикл
@@ -3748,14 +3748,14 @@
ТипыНастроек = Новый Массив; ТипыНастроек = Новый Массив;
// Русский вариант. // Русский вариант.
Если ОбщегоНазначенияКлиентСервер.СравнитьВерсии(РежимСовместимости, "8.3.18.0") < 0 Тогда Если ОбщегоНазначенияКлиентСервер.СравнитьВерсии(РежимСовместимости, "8.3.18.0") < 0 Тогда
ТипыНастроек.Добавить("/НастройкиОкна"); ТипыНастроек.Добавить("/НастройкиОкна"); // @Non-NLS
ТипыНастроек.Добавить("/Такси/НастройкиОкна"); ТипыНастроек.Добавить("/Такси/НастройкиОкна"); // @Non-NLS
Иначе Иначе
ТипыНастроек.Добавить("/НастройкиОкнаТонкогоКлиента"); ТипыНастроек.Добавить("/НастройкиОкнаТонкогоКлиента"); // @Non-NLS
ТипыНастроек.Добавить("/Такси/НастройкиОкнаТонкогоКлиента"); ТипыНастроек.Добавить("/Такси/НастройкиОкнаТонкогоКлиента"); // @Non-NLS
КонецЕсли; КонецЕсли;
ТипыНастроек.Добавить("/НастройкиОкнаВебКлиента"); ТипыНастроек.Добавить("/НастройкиОкнаВебКлиента"); // @Non-NLS
ТипыНастроек.Добавить("/Такси/НастройкиОкнаВебКлиента"); ТипыНастроек.Добавить("/Такси/НастройкиОкнаВебКлиента"); // @Non-NLS
// Английский вариант. // Английский вариант.
Если ОбщегоНазначенияКлиентСервер.СравнитьВерсии(РежимСовместимости, "8.3.18.0") < 0 Тогда Если ОбщегоНазначенияКлиентСервер.СравнитьВерсии(РежимСовместимости, "8.3.18.0") < 0 Тогда
ТипыНастроек.Добавить("/WindowSettings"); ТипыНастроек.Добавить("/WindowSettings");
@@ -120,9 +120,7 @@
ОписаниеРегламентногоЗадания = СведенияОРегламентномЗаданииУдаленияПомеченных.Расписание; ОписаниеРегламентногоЗадания = СведенияОРегламентномЗаданииУдаленияПомеченных.Расписание;
Расписание = Новый РасписаниеРегламентногоЗадания; Расписание = Новый РасписаниеРегламентногоЗадания;
ЗаполнитьЗначенияСвойств(Расписание, ОписаниеРегламентногоЗадания); ЗаполнитьЗначенияСвойств(Расписание, ОписаниеРегламентногоЗадания);
// АПК: 574 - выкл Процедура не поддерживается на мобильном клиенте. Диалог = Новый ДиалогРасписанияРегламентногоЗадания(Расписание); // АПК: 574 Процедура не поддерживается на мобильном клиенте.
Диалог = Новый ДиалогРасписанияРегламентногоЗадания(Расписание);
// АПК: 574 - вкл
Диалог.Показать(Обработчик); Диалог.Показать(Обработчик);
КонецЕсли; КонецЕсли;
КонецПроцедуры КонецПроцедуры
@@ -231,14 +229,14 @@
Процедура РегламентныеЗаданияПослеИзмененияРасписания(Расписание, ПараметрыВыполнения) Экспорт Процедура РегламентныеЗаданияПослеИзмененияРасписания(Расписание, ПараметрыВыполнения) Экспорт
Если Расписание = Неопределено Тогда Если Расписание = Неопределено Тогда
Расписание = ПараметрыВыполнения.СтароеРасписание; Возврат;
УдалениеПомеченныхИспользование = Ложь; КонецЕсли;
Иначе
УдалениеПомеченныхИспользование = Истина; УдалениеПомеченныхИспользование = Истина;
Изменения = Новый Структура("Расписание", Расписание); Изменения = Новый Структура;
Изменения.Вставить("Использование", Истина); Изменения.Вставить("Расписание", Расписание);
УдалениеПомеченныхОбъектовСлужебныйВызовСервера.УстановитьРежимУдалятьПоРасписанию(Изменения); Изменения.Вставить("Использование", Истина);
КонецЕсли; УдалениеПомеченныхОбъектовСлужебныйВызовСервера.УстановитьРежимУдалятьПоРасписанию(Изменения);
Оповестить("ИзменилсяРежимАвтоматическиУдалятьПомеченныеОбъекты"); Оповестить("ИзменилсяРежимАвтоматическиУдалятьПомеченныеОбъекты");
@@ -38,14 +38,26 @@
// См. ОчередьЗаданийПереопределяемый.ПриПолученииСпискаШаблонов. // См. ОчередьЗаданийПереопределяемый.ПриПолученииСпискаШаблонов.
Процедура ПриПолученииСпискаШаблонов(ШаблоныЗаданий) Экспорт Процедура ПриПолученииСпискаШаблонов(ШаблоныЗаданий) Экспорт
ШаблоныЗаданий.Добавить("УдалениеПомеченных");
ШаблоныЗаданий.Добавить(Метаданные.РегламентныеЗадания.УдалениеПомеченныхОбъектов.Имя);
ШаблоныЗаданий.Добавить(Метаданные.РегламентныеЗадания.КонтрольУдаленияПомеченныхОбъектов.Имя); ШаблоныЗаданий.Добавить(Метаданные.РегламентныеЗадания.КонтрольУдаленияПомеченныхОбъектов.Имя);
КонецПроцедуры
// См. ОчередьЗаданийПереопределяемый.ПриОпределенииПсевдонимовОбработчиков.
Процедура ПриОпределенииПсевдонимовОбработчиков(СоответствиеИменПсевдонимам) Экспорт
СоответствиеИменПсевдонимам.Вставить(Метаданные.РегламентныеЗадания.УдалениеПомеченныхОбъектов.ИмяМетода);
СоответствиеИменПсевдонимам.Вставить(Метаданные.РегламентныеЗадания.КонтрольУдаленияПомеченныхОбъектов.ИмяМетода);
КонецПроцедуры КонецПроцедуры
// См. ОбщегоНазначенияПереопределяемый.ПриДобавленииИсключенийПоискаСсылок. // См. ОбщегоНазначенияПереопределяемый.ПриДобавленииИсключенийПоискаСсылок.
Процедура ПриДобавленииИсключенийПоискаСсылок(ИсключенияПоискаСсылок) Экспорт Процедура ПриДобавленииИсключенийПоискаСсылок(ИсключенияПоискаСсылок) Экспорт
ИсключенияПоискаСсылок.Добавить(Метаданные.РегистрыСведений.УдаляемыеОбъекты); ИсключенияПоискаСсылок.Добавить(Метаданные.РегистрыСведений.УдаляемыеОбъекты);
ИсключенияПоискаСсылок.Добавить(Метаданные.РегистрыСведений.НеудаленныеОбъекты); ИсключенияПоискаСсылок.Добавить(Метаданные.РегистрыСведений.НеудаленныеОбъекты);
КонецПроцедуры КонецПроцедуры
// См. ПодключаемыеКомандыПереопределяемый.ПриОпределенииКомандПодключенныхКОбъекту. // См. ПодключаемыеКомандыПереопределяемый.ПриОпределенииКомандПодключенныхКОбъекту.
@@ -8,7 +8,7 @@
#Область СлужебныйПрограммныйИнтерфейс #Область СлужебныйПрограммныйИнтерфейс
// Устанавливает режим автоматического удаления помеченных объектов // Устанавливает режим автоматического удаления помеченных объектов.
// //
// Параметры: // Параметры:
// Изменения - Структура: // Изменения - Структура:
@@ -18,31 +18,19 @@
// Возвращаемое значение: // Возвращаемое значение:
// Булево // Булево
// //
Функция УстановитьРежимУдалятьПоРасписанию(Изменения) Экспорт Процедура УстановитьРежимУдалятьПоРасписанию(Изменения) Экспорт
Если Не Пользователи.ЭтоПолноправныйПользователь(,, Ложь) Тогда Если Не Пользователи.ЭтоПолноправныйПользователь(,, Ложь) Тогда
ВызватьИсключение НСтр("ru = 'Недостаточно прав для совершения операции.'"); ВызватьИсключение НСтр("ru = 'Недостаточно прав для совершения операции.'");
КонецЕсли; КонецЕсли;
УдалятьПомеченныеОбъекты = Изменения.Использование; Параметры = Новый Структура;
Параметры.Вставить("Использование", Изменения.Использование);
Параметры.Вставить("Расписание", Изменения.Расписание);
ИдентификаторЗадания = РегламентныеЗаданияСервер.УникальныйИдентификатор(Метаданные.РегламентныеЗадания.УдалениеПомеченныхОбъектов);
РегламентныеЗаданияСервер.ИзменитьЗадание(ИдентификаторЗадания, Параметры);
Отбор = Новый Структура; КонецПроцедуры
Отбор.Вставить("Метаданные", Метаданные.РегламентныеЗадания.УдалениеПомеченныхОбъектов);
Задания = РегламентныеЗаданияСервер.НайтиЗадания(Отбор);
Для Каждого Задание Из Задания Цикл
Параметры = Новый Структура;
Параметры.Вставить("Использование", УдалятьПомеченныеОбъекты);
Параметры.Вставить("Расписание", Изменения.Расписание);
РегламентныеЗаданияСервер.ИзменитьЗадание(Задание, Параметры);
Возврат Истина;
КонецЦикла;
Возврат Ложь;
КонецФункции
// Возвращает расписание регламентного задания. // Возвращает расписание регламентного задания.
// //
@@ -6296,7 +6296,6 @@
ИмяПараметра = "СтандартныеПодсистемы.УправлениеДоступом.ИдентификаторыРолей"; ИмяПараметра = "СтандартныеПодсистемы.УправлениеДоступом.ИдентификаторыРолей";
ЗначениеСеанса = УправлениеДоступомСлужебныйПовтИсп.ИдентификаторыРолейСеанса(); ЗначениеСеанса = УправлениеДоступомСлужебныйПовтИсп.ИдентификаторыРолейСеанса();
РегистрыСведений.ПараметрыРаботыВерсийРасширений.ЗаблокироватьДляИзмененияВФайловойИБ();
ТекущееЗначение = ПоследниеИдентификаторыРолей(ИмяПараметра); ТекущееЗначение = ПоследниеИдентификаторыРолей(ИмяПараметра);
Если ТекущееЗначение.ХешСумма = ЗначениеСеанса.ХешСумма Тогда Если ТекущееЗначение.ХешСумма = ЗначениеСеанса.ХешСумма Тогда
@@ -3002,6 +3002,17 @@
КонецПроцедуры КонецПроцедуры
Процедура ИсправитьПризнакПроверкаПроведенияПередПечатью(КомандыПечати, ОбъектМетаданных)
Если Метаданные.Документы.Содержит(ОбъектМетаданных) Тогда
Если ОбъектМетаданных.Проведение = Метаданные.СвойстваОбъектов.Проведение.Запретить Тогда
КомандыПечати.ЗаполнитьЗначения(Ложь, "ПроверкаПроведенияПередПечатью");
КонецЕсли;
КонецЕсли;
КонецПроцедуры
Функция УникальныйИдентификаторКомандыПечати(КомандаПечати) Функция УникальныйИдентификаторКомандыПечати(КомандаПечати)
Параметры = Новый Массив; Параметры = Новый Массив;
@@ -3079,6 +3090,7 @@
КонецЦикла; КонецЦикла;
КомандыПечати.Сортировать("Порядок Возр, Представление Возр"); КомандыПечати.Сортировать("Порядок Возр, Представление Возр");
ИсправитьПризнакПроверкаПроведенияПередПечатью(КомандыПечати, ОбъектМетаданных);
УстановитьНастройкиКомандПечати(КомандыПечати, Источник.СсылкаМетаданных); УстановитьНастройкиКомандПечати(КомандыПечати, Источник.СсылкаМетаданных);
ОпределитьВидимостьКомандПечатиПоФункциональнымОпциям(КомандыПечати); ОпределитьВидимостьКомандПечатиПоФункциональнымОпциям(КомандыПечати);
@@ -985,6 +985,18 @@
ВладелецСвойств = ОбъектыСоСвойствами; ВладелецСвойств = ОбъектыСоСвойствами;
КонецЕсли; КонецЕсли;
Если ПолучатьДопРеквизиты Тогда
ПолучатьДопРеквизиты = ИспользоватьДопРеквизиты(ВладелецСвойств);
КонецЕсли;
Если ПолучатьДопСведения Тогда
ПолучатьДопСведения = ИспользоватьДопСведения(ВладелецСвойств);
КонецЕсли;
Если Не ПолучатьДопРеквизиты И Не ПолучатьДопСведения Тогда
Возврат Новый ТаблицаЗначений;
КонецЕсли;
Если Свойства = Неопределено Тогда Если Свойства = Неопределено Тогда
Свойства = СвойстваОбъекта(ВладелецСвойств, ПолучатьДопРеквизиты, ПолучатьДопСведения); Свойства = СвойстваОбъекта(ВладелецСвойств, ПолучатьДопРеквизиты, ПолучатьДопСведения);
КонецЕсли; КонецЕсли;
@@ -872,7 +872,7 @@
Запрос = Новый Запрос; Запрос = Новый Запрос;
Запрос.УстановитьПараметр("Свойства", Свойства); Запрос.УстановитьПараметр("Свойства", Свойства);
Запрос.УстановитьПараметр("НаборыСвойств", НаборыСвойств); Запрос.УстановитьПараметр("НаборыСвойств", НаборыСвойств);
Запрос.УстановитьПараметр("ЭтоОсновнойЯзык", ТекущийЯзык() = Метаданные.ОсновнойЯзык); Запрос.УстановитьПараметр("ЭтоОсновнойЯзык", ОбщегоНазначения.ЭтоОсновнойЯзык());
Запрос.УстановитьПараметр("КодЯзыка", ТекущийЯзык().КодЯзыка); Запрос.УстановитьПараметр("КодЯзыка", ТекущийЯзык().КодЯзыка);
Запрос.Текст = Запрос.Текст =
@@ -554,10 +554,7 @@
// //
Функция ДатаПодписания(Подпись, ПривестиКЧасовомуПоясуСеанса = Истина) Экспорт Функция ДатаПодписания(Подпись, ПривестиКЧасовомуПоясуСеанса = Истина) Экспорт
ЧтениеДанных = Новый ЧтениеДанных(Подпись); ДатаПодписания = ЭлектроннаяПодписьСлужебныйКлиентСервер.ДатаПодписанияУниверсальная(Подпись);
РезультатЧтения = ЧтениеДанных.Прочитать();
Буфер = РезультатЧтения.ПолучитьБуферДвоичныхДанных();
ДатаПодписания = ЭлектроннаяПодписьСлужебныйКлиентСервер.ДатаПодписанияУниверсальная(Буфер);
Если ДатаПодписания = Неопределено Тогда Если ДатаПодписания = Неопределено Тогда
Возврат Неопределено; Возврат Неопределено;
@@ -1008,8 +1005,8 @@
// до которого требуется усовершенствование. Если фактический ТипПодписи // до которого требуется усовершенствование. Если фактический ТипПодписи
// тот же или выше, тогда никаких действий произведено не будет. // тот же или выше, тогда никаких действий произведено не будет.
// //
// ДобавитьАрхивнуюМеткуВремени - Булево - если указано Истина и ТипПодписи указан архивная, // ДобавитьАрхивнуюМеткуВремени - Булево - если указано Истина и фактический ТипПодписи архивная,
// и фактический ТипПодписи архивная, тогда будет добавлена метка времени. // тогда будет добавлена метка времени.
// //
// МенеджерКриптографии - Неопределено - получить менеджер криптографии для проверки // МенеджерКриптографии - Неопределено - получить менеджер криптографии для проверки
// электронных подписей, как настроил администратор. // электронных подписей, как настроил администратор.
@@ -1048,9 +1045,8 @@
Попытка Попытка
КонтейнерПодписи = МенеджерКриптографии.ПолучитьКонтейнерПодписейКриптографии(Подпись); КонтейнерПодписи = МенеджерКриптографии.ПолучитьКонтейнерПодписейКриптографии(Подпись);
Исключение Исключение
ОписаниеОшибки = СтроковыеФункцииКлиентСервер.ПодставитьПараметрыВСтроку( Результат.ТекстОшибки = СтроковыеФункцииКлиентСервер.ПодставитьПараметрыВСтроку(
НСтр("ru='При чтении данных подписи: %1'"), КраткоеПредставлениеОшибки(ИнформацияОбОшибке())); НСтр("ru='Не удалось прочитать данные подписи: %1'"), КраткоеПредставлениеОшибки(ИнформацияОбОшибке()));
Результат.ТекстОшибки = ОписаниеОшибки;
Возврат Результат; Возврат Результат;
КонецПопытки; КонецПопытки;
@@ -1062,87 +1058,86 @@
Результат.СвойстваПодписи = СвойстваПодписи; Результат.СвойстваПодписи = СвойстваПодписи;
УсовершенствованиеПроизошло = Ложь;
ОписаниеОшибки = "";
ИнформацияОбОшибке = Неопределено;
Если ЗначениеЗаполнено(ПараметрыПодписиКриптографии.СрокДействияПоследнейМеткиВремени) Если ЗначениеЗаполнено(ПараметрыПодписиКриптографии.СрокДействияПоследнейМеткиВремени)
И ПараметрыПодписиКриптографии.СрокДействияПоследнейМеткиВремени < ТекущаяДатаСеанса() Тогда И ПараметрыПодписиКриптографии.СрокДействияПоследнейМеткиВремени < ТекущаяДатаСеанса() Тогда
ОписаниеОшибки = СтроковыеФункцииКлиентСервер.ПодставитьПараметрыВСтроку( Результат.ТекстОшибки = СтроковыеФункцииКлиентСервер.ПодставитьПараметрыВСтроку(
НСтр("ru='Истек срок действия подписи: %1'"), ПараметрыПодписиКриптографии.СрокДействияПоследнейМеткиВремени); НСтр("ru='Истек срок действия подписи: %1'"), ПараметрыПодписиКриптографии.СрокДействияПоследнейМеткиВремени);
Возврат Результат;
КонецЕсли; КонецЕсли;
Если ОписаниеОшибки = "" Тогда ОписаниеОшибки = "";
РезультатПроверкиСертификата = ПроверитьСертификат(МенеджерКриптографии, ПараметрыПодписиКриптографии.СертификатПоследнейМеткиВремени, ОписаниеОшибки); РезультатПроверкиСертификата = ПроверитьСертификат(МенеджерКриптографии,
Если РезультатПроверкиСертификата Тогда ПараметрыПодписиКриптографии.СертификатПоследнейМеткиВремени, ОписаниеОшибки);
Если ЗначениеЗаполнено(ТипПодписи) Если РезультатПроверкиСертификата Тогда
И ЭлектроннаяПодписьСлужебныйКлиентСервер.ПодлежитУсовершенствованию(ПараметрыПодписиКриптографии.ТипПодписи, ТипПодписи) Тогда Если ЗначениеЗаполнено(ТипПодписи) И ЭлектроннаяПодписьСлужебныйКлиентСервер.ПодлежитУсовершенствованию(
Попытка ПараметрыПодписиКриптографии.ТипПодписи, ТипПодписи) Тогда
ДвоичныеДанныеРезультата = МенеджерКриптографии.УсовершенствоватьПодпись(Подпись, Попытка
ЭлектроннаяПодписьСлужебныйКлиентСервер.ТипПодписиКриптографии(ТипПодписи)); ДвоичныеДанныеРезультата = МенеджерКриптографии.УсовершенствоватьПодпись(Подпись,
УсовершенствованиеПроизошло = Истина; ЭлектроннаяПодписьСлужебныйКлиентСервер.ТипПодписиКриптографии(ТипПодписи));
Исключение Исключение
ИнформацияОбОшибке = ИнформацияОбОшибке(); Результат.ТекстОшибки = СтроковыеФункцииКлиентСервер.ПодставитьПараметрыВСтроку(
КонецПопытки; НСтр("ru='Не удалось усовершенствовать подпись: %1'"), КраткоеПредставлениеОшибки(
ИначеЕсли ДобавитьАрхивнуюМеткуВремени И (ПараметрыПодписиКриптографии.ТипПодписи = Перечисления.ТипыПодписиКриптографии.АрхивнаяCAdESAv3 ИнформацияОбОшибке()));
Или ПараметрыПодписиКриптографии.ТипПодписи = Перечисления.ТипыПодписиКриптографии.CAdESAv2) Тогда Возврат Результат;
Попытка КонецПопытки;
ДвоичныеДанныеРезультата = МенеджерКриптографии.ДобавитьАрхивнуюМеткуВремени(Подпись); ИначеЕсли ДобавитьАрхивнуюМеткуВремени И (ПараметрыПодписиКриптографии.ТипПодписи
УсовершенствованиеПроизошло = Истина; = Перечисления.ТипыПодписиКриптографии.АрхивнаяCAdESAv3 Или ПараметрыПодписиКриптографии.ТипПодписи
Исключение = Перечисления.ТипыПодписиКриптографии.CAdESAv2) Тогда
ИнформацияОбОшибке = ИнформацияОбОшибке(); Попытка
КонецПопытки; ДвоичныеДанныеРезультата = МенеджерКриптографии.ДобавитьАрхивнуюМеткуВремени(Подпись);
КонецЕсли; Исключение
Иначе Результат.ТекстОшибки = СтроковыеФункцииКлиентСервер.ПодставитьПараметрыВСтроку(
ОписаниеОшибки = СтроковыеФункцииКлиентСервер.ПодставитьПараметрыВСтроку( НСтр("ru='Не удалось добавить архивную метку времени в подпись: %1'"), КраткоеПредставлениеОшибки(
НСтр("ru='При проверке сертификата: %1'"), ОписаниеОшибки); ИнформацияОбОшибке()));
КонецЕсли; Возврат Результат;
КонецЕсли; КонецПопытки;
Иначе // Есть подписи, которые не нужно усовершенствовать, но нужно заполнить их свойства, они уже прочитаны выше.
Если ИнформацияОбОшибке <> Неопределено Тогда Результат.Успех = Истина;
ОписаниеОшибки = СтроковыеФункцииКлиентСервер.ПодставитьПараметрыВСтроку(
НСтр("ru='При усовершенствовании подписи: %1'"), КраткоеПредставлениеОшибки(ИнформацияОбОшибке));
КонецЕсли;
Если УсовершенствованиеПроизошло Тогда
Попытка
КонтейнерПодписи = МенеджерКриптографии.ПолучитьКонтейнерПодписейКриптографии(ДвоичныеДанныеРезультата);
Исключение
ОписаниеОшибки = СтроковыеФункцииКлиентСервер.ПодставитьПараметрыВСтроку(
НСтр("ru='При чтении данных усовершенствованной подписи: %1'"),
КраткоеПредставлениеОшибки(ИнформацияОбОшибке()));
Результат.ТекстОшибки = ОписаниеОшибки;
Возврат Результат; Возврат Результат;
КонецПопытки;
ПараметрыПодписиКриптографии = ЭлектроннаяПодписьСлужебныйКлиентСервер.ПараметрыПодписиКриптографии(КонтейнерПодписи,
ЭлектроннаяПодписьСлужебный.ДобавкаВремени(), ТекущаяДатаСеанса());
РезультатПроверкиСертификата = ПроверитьСертификат(МенеджерКриптографии,
ПараметрыПодписиКриптографии.СертификатПоследнейМеткиВремени, ОписаниеОшибки);
Если РезультатПроверкиСертификата Тогда
СвойстваПодписи.Подпись = ДвоичныеДанныеРезультата;
СвойстваПодписи.ТипПодписи = ПараметрыПодписиКриптографии.ТипПодписи;
СвойстваПодписи.СрокДействияПоследнейМеткиВремени = ПараметрыПодписиКриптографии.СрокДействияПоследнейМеткиВремени;
Иначе
СвойстваСертификата = СвойстваСертификата(ПараметрыПодписиКриптографии.СертификатПоследнейМеткиВремени);
СведенияОСертификате = ЭлектроннаяПодписьСлужебныйКлиентСервер.СведенияОСертификатеСтрокой(СвойстваСертификата);
ОписаниеОшибки = СтроковыеФункцииКлиентСервер.ПодставитьПараметрыВСтроку(
НСтр("ru='При проверке сертификата после усовершенствования: %1
|%2'"), ОписаниеОшибки, СведенияОСертификате);
ВызватьИсключение ОписаниеОшибки;
КонецЕсли; КонецЕсли;
КонецЕсли;
Если ОписаниеОшибки <> "" Тогда
Результат.ТекстОшибки = ОписаниеОшибки;
Иначе Иначе
Результат.Успех = Истина; СвойстваСертификата = СвойстваСертификата(ПараметрыПодписиКриптографии.СертификатПоследнейМеткиВремени);
СведенияОСертификате = ЭлектроннаяПодписьСлужебныйКлиентСервер.СведенияОСертификатеСтрокой(
СвойстваСертификата);
Результат.ТекстОшибки = СтроковыеФункцииКлиентСервер.ПодставитьПараметрыВСтроку(
НСтр("ru='Не действует сертификат подписи: %1
|%2'"), ОписаниеОшибки, СведенияОСертификате);
Возврат Результат;
КонецЕсли; КонецЕсли;
Результат.СвойстваПодписи = СвойстваПодписи; Попытка
КонтейнерПодписи = МенеджерКриптографии.ПолучитьКонтейнерПодписейКриптографии(ДвоичныеДанныеРезультата);
Исключение
Результат.ТекстОшибки = СтроковыеФункцииКлиентСервер.ПодставитьПараметрыВСтроку(
НСтр("ru='Не удалось прочитать данные усовершенствованной подписи: %1'"), КраткоеПредставлениеОшибки(
ИнформацияОбОшибке()));
Возврат Результат;
КонецПопытки;
ПараметрыПодписиКриптографии = ЭлектроннаяПодписьСлужебныйКлиентСервер.ПараметрыПодписиКриптографии(
КонтейнерПодписи, ЭлектроннаяПодписьСлужебный.ДобавкаВремени(), ТекущаяДатаСеанса());
РезультатПроверкиСертификата = ПроверитьСертификат(МенеджерКриптографии,
ПараметрыПодписиКриптографии.СертификатПоследнейМеткиВремени, ОписаниеОшибки);
Если РезультатПроверкиСертификата Тогда
СвойстваПодписи.Подпись = ДвоичныеДанныеРезультата;
СвойстваПодписи.ТипПодписи = ПараметрыПодписиКриптографии.ТипПодписи;
СвойстваПодписи.СрокДействияПоследнейМеткиВремени = ПараметрыПодписиКриптографии.СрокДействияПоследнейМеткиВремени;
Результат.СвойстваПодписи = СвойстваПодписи;
Иначе
СвойстваСертификата = СвойстваСертификата(ПараметрыПодписиКриптографии.СертификатПоследнейМеткиВремени);
СведенияОСертификате = ЭлектроннаяПодписьСлужебныйКлиентСервер.СведенияОСертификатеСтрокой(
СвойстваСертификата);
ОписаниеОшибки = СтроковыеФункцииКлиентСервер.ПодставитьПараметрыВСтроку(
НСтр("ru='Не действует сертификат полученной метки времени: %1
|%2'"), ОписаниеОшибки, СведенияОСертификате);
ВызватьИсключение ОписаниеОшибки;
КонецЕсли;
Результат.Успех = Истина;
Возврат Результат; Возврат Результат;
КонецФункции КонецФункции
@@ -1183,28 +1178,18 @@
ИдентификаторФормы = Неопределено, МенеджерКриптографии = Неопределено) Экспорт ИдентификаторФормы = Неопределено, МенеджерКриптографии = Неопределено) Экспорт
Результат = Новый Структура("Успех, ТекстОшибки, СвойстваПодписи", Ложь); Результат = Новый Структура("Успех, ТекстОшибки, СвойстваПодписи", Ложь);
УстановленныеПодписи = УстановленныеПодписи(ПодписанныйОбъект, ПорядковыйНомер);
Если УстановленныеПодписи.Количество() = 0 Тогда
Результат.ТекстОшибки = СтроковыеФункцииКлиентСервер.ПодставитьПараметрыВСтроку(
НСтр("ru = 'Не удалось найти подпись с порядковым номером %1 у %2'"), ПорядковыйНомер, ПодписанныйОбъект);
Возврат Результат;
КонецЕсли;
СвойстваПодписи = УстановленныеПодписи(ПодписанныйОбъект, ПорядковыйНомер)[0]; СвойстваПодписи = УстановленныеПодписи[0];
Подпись = СвойстваПодписи.Подпись; Подпись = СвойстваПодписи.Подпись;
Если МенеджерКриптографии = Неопределено Тогда
ПараметрыСоздания = ЭлектроннаяПодписьСлужебный.ПараметрыСозданияМенеджераКриптографии();
ПараметрыСоздания.АлгоритмПодписи =
ЭлектроннаяПодписьСлужебныйКлиентСервер.АлгоритмСформированнойПодписи(Подпись);
МенеджерКриптографии = ЭлектроннаяПодписьСлужебный.МенеджерКриптографии(
"ПродлениеСрокаДействияПодписи", ПараметрыСоздания);
Если МенеджерКриптографии = Неопределено Тогда
Результат.ТекстОшибки = ПараметрыСоздания.ОписаниеОшибки;
Возврат Результат;
КонецЕсли;
МенеджерКриптографии.АдресаСерверовМетокВремени = ОбщиеНастройки().АдресаСерверовМетокВремени;
КонецЕсли;
Результат = УсовершенствоватьПодпись(Подпись, ТипПодписи, ДобавитьАрхивнуюМеткуВремени, МенеджерКриптографии); Результат = УсовершенствоватьПодпись(Подпись, ТипПодписи, ДобавитьАрхивнуюМеткуВремени, МенеджерКриптографии);
Если Результат.СвойстваПодписи = Неопределено Тогда Если Результат.СвойстваПодписи = Неопределено Тогда
@@ -1212,7 +1197,7 @@
КонецЕсли; КонецЕсли;
Результат.СвойстваПодписи.ПодписанныйОбъект = ПодписанныйОбъект; Результат.СвойстваПодписи.ПодписанныйОбъект = ПодписанныйОбъект;
Результат.СвойстваПодписи.ПорядковыйНомер = ПорядковыйНомер; Результат.СвойстваПодписи.ПорядковыйНомер = ПорядковыйНомер;
Если Результат.СвойстваПодписи.Подпись = Неопределено Тогда Если Результат.СвойстваПодписи.Подпись = Неопределено Тогда
// Подпись не была усовершенствована, но, возможно, требуется обновление данных. // Подпись не была усовершенствована, но, возможно, требуется обновление данных.
@@ -1471,7 +1456,32 @@
Возврат Ложь; Возврат Ложь;
КонецПопытки; КонецПопытки;
ДатаПодписания = ДатаПодписания(ПодписьДляПроверки); Если ОбщиеНастройки().ДоступнаУсовершенствованнаяПодпись Тогда
Попытка
КонтейнерПодписи = МенеджерКриптографииДляПроверки.ПолучитьКонтейнерПодписейКриптографии(ПодписьДляПроверки);
Исключение
ОписаниеОшибки = СтроковыеФункцииКлиентСервер.ПодставитьПараметрыВСтроку(
НСтр("ru='При чтении данных подписи: %1'"), КраткоеПредставлениеОшибки(ИнформацияОбОшибке()));
Если ВызыватьИсключение Тогда
ВызватьИсключение;
КонецЕсли;
Возврат Ложь;
КонецПопытки;
ПараметрыПодписиКриптографии = ЭлектроннаяПодписьСлужебныйКлиентСервер.ПараметрыПодписиКриптографии(КонтейнерПодписи,
ЭлектроннаяПодписьСлужебный.ДобавкаВремени(), ТекущаяДатаСеанса());
ДатаПодписания = ЭлектроннаяПодписьСлужебныйКлиентСервер.ДатаПодписиИзПараметровПодписи(ПараметрыПодписиКриптографии);
Если Не ЗначениеЗаполнено(ДатаПодписания) Тогда
ДатаПодписания = ДатаПодписания(ПодписьДляПроверки);
КонецЕсли;
Иначе
ДатаПодписания = ДатаПодписания(ПодписьДляПроверки);
КонецЕсли;
Если Не ЗначениеЗаполнено(ДатаПодписания) Тогда Если Не ЗначениеЗаполнено(ДатаПодписания) Тогда
ДатаПодписания = НаДату; ДатаПодписания = НаДату;
КонецЕсли; КонецЕсли;
@@ -1895,11 +1905,7 @@
ОбщегоНазначения.ПриНачалеВыполненияРегламентногоЗадания( ОбщегоНазначения.ПриНачалеВыполненияРегламентногоЗадания(
Метаданные.РегламентныеЗадания.ПродлениеДостоверностиПодписей); Метаданные.РегламентныеЗадания.ПродлениеДостоверностиПодписей);
Если Не ИспользоватьЭлектронныеПодписи() Тогда Если Не ИспользоватьЭлектронныеПодписи() Или Не ДоступнаУсовершенствованнаяПодпись() Тогда
Возврат;
КонецЕсли;
Если Не ДоступнаУсовершенствованнаяПодпись() Тогда
Возврат; Возврат;
КонецЕсли; КонецЕсли;
@@ -2069,7 +2075,14 @@
НоваяЗапись.УстановившийПодпись = Пользователи.АвторизованныйПользователь(); НоваяЗапись.УстановившийПодпись = Пользователи.АвторизованныйПользователь();
КонецЕсли; КонецЕсли;
ДатаПодписи = ДатаПодписания(СвойстваПодписи.Подпись); ДатаПодписиИзПараметровПодписи = ЭлектроннаяПодписьСлужебныйКлиентСервер.ДатаПодписиИзПараметровПодписи(
СвойстваПодписи);
Если ЗначениеЗаполнено(ДатаПодписиИзПараметровПодписи) Тогда
ДатаПодписи = ДатаПодписиИзПараметровПодписи;
Иначе
ДатаПодписи = ДатаПодписания(СвойстваПодписи.Подпись);
КонецЕсли;
Если ДатаПодписи <> Неопределено Тогда Если ДатаПодписи <> Неопределено Тогда
НоваяЗапись.ДатаПодписи = ДатаПодписи; НоваяЗапись.ДатаПодписи = ДатаПодписи;
@@ -1044,18 +1044,22 @@
// //
Процедура ДатаПодписания(Оповещение, Подпись, ПривестиКЧасовомуПоясуСеанса = Истина) Экспорт Процедура ДатаПодписания(Оповещение, Подпись, ПривестиКЧасовомуПоясуСеанса = Истина) Экспорт
ПараметрыОповещения = Новый Структура; ДатаПодписания = ЭлектроннаяПодписьСлужебныйКлиентСервер.ДатаПодписанияУниверсальная(Подпись);
ПараметрыОповещения.Вставить("Оповещение", Оповещение);
ПараметрыОповещения.Вставить("ПривестиКЧасовомуПоясуСеанса", ПривестиКЧасовомуПоясуСеанса);
ЧтениеДанных = Новый ЧтениеДанных(Подпись); Если ДатаПодписания = Неопределено Тогда
ЧтениеДанных.НачатьЧтениеВБуферДвоичныхДанных(Новый ОписаниеОповещения( ВыполнитьОбработкуОповещения(Оповещение, Неопределено);
"ДатаПодписанияПослеЧтенияВБуферДвоичныхДанных", Возврат;
ЭлектроннаяПодписьСлужебныйКлиент, КонецЕсли;
ПараметрыОповещения));
Если ПривестиКЧасовомуПоясуСеанса Тогда
ДатаПодписания = ДатаПодписания + (ОбщегоНазначенияКлиент.ДатаСеанса()
- ОбщегоНазначенияКлиент.ДатаУниверсальная());
КонецЕсли;
ВыполнитьОбработкуОповещения(Оповещение, ДатаПодписания);
КонецПроцедуры КонецПроцедуры
// Возвращает представление сертификата в справочнике, формируемое // Возвращает представление сертификата в справочнике, формируемое
// из представления субъекта (КомуВыдан) и срока действия сертификата. // из представления субъекта (КомуВыдан) и срока действия сертификата.
// //
@@ -63,6 +63,9 @@
Структура.Вставить("КомуВыданСертификат"); Структура.Вставить("КомуВыданСертификат");
Структура.Вставить("ТипПодписи"); Структура.Вставить("ТипПодписи");
Структура.Вставить("СрокДействияПоследнейМеткиВремени"); Структура.Вставить("СрокДействияПоследнейМеткиВремени");
Структура.Вставить("ДатаПодписиИзМетки");
Структура.Вставить("НеподтвержденнаяДатаПодписи");
Структура.Вставить("ОписаниеСертификата"); Структура.Вставить("ОписаниеСертификата");
Структура.Вставить("ОшибкаПриАвтоматическомПродлении", Ложь); Структура.Вставить("ОшибкаПриАвтоматическомПродлении", Ложь);
@@ -151,6 +151,63 @@
КонецПроцедуры КонецПроцедуры
// Возвращаемое значение:
// Неопределено, Структура - Данные удостоверяющего центра:
// * Государственный - Булево
// * ПериодыДействия - Неопределено, Массив Из Структура:
// **ДатаС - Дата
// **ДатаПо - Дата, Неопределено
// * ДатаОкончанияДействия - Неопределено, Дата
// * ДатаПроверкиОбновления - Неопределено, Дата
//
Функция ДанныеУдостоверяющегоЦентра(ЗначенияПоиска, АккредитованныеУдостоверяющиеЦентры) Экспорт
Результат = Неопределено;
// Локализация
Если АккредитованныеУдостоверяющиеЦентры = Неопределено Тогда
Возврат Неопределено;
КонецЕсли;
НайденПериодДействия = Неопределено;
НайденаДатаОкончанияДействия = Неопределено;
МассивПолейПоиска = СтрРазделить(ЗначенияПоиска, ",");
Государственный = Ложь;
Для Каждого ЗначениеПоиска Из МассивПолейПоиска Цикл
ПодготовленноеЗначениеПоиска = ПодготовитьЗначениеПоиска(ЗначениеПоиска);
Если НайденПериодДействия = Неопределено Тогда
НайденПериодДействия = АккредитованныеУдостоверяющиеЦентры.ПериодыДействия.Получить(ПодготовленноеЗначениеПоиска);
КонецЕсли;
Если НайденаДатаОкончанияДействия = Неопределено Тогда
НайденаДатаОкончанияДействия = АккредитованныеУдостоверяющиеЦентры.ДатыОкончанияДействия.Получить(ПодготовленноеЗначениеПоиска);
КонецЕсли;
Если Не Государственный И АккредитованныеУдостоверяющиеЦентры.ГосударственныеУЦ.Получить(ПодготовленноеЗначениеПоиска) <> Неопределено Тогда
Государственный = Истина;
КонецЕсли;
КонецЦикла;
Если НайденПериодДействия = Неопределено Тогда
Возврат Неопределено;
КонецЕсли;
Результат = Новый Структура;
Результат.Вставить("Государственный", Государственный);
Результат.Вставить("ПериодыДействия", НайденПериодДействия);
Результат.Вставить("ДатаОкончанияДействия", НайденаДатаОкончанияДействия);
Результат.Вставить("ДатаПроверкиОбновления", АккредитованныеУдостоверяющиеЦентры.ДатаПроверкиОбновления);
// Конец Локализация
Возврат Результат;
КонецФункции
// Локализация // Локализация
Функция ПредставлениеСубъекта(Знач Сертификат, Знач Отчество) Функция ПредставлениеСубъекта(Знач Сертификат, Знач Отчество)
@@ -238,63 +295,7 @@
Свойства.ИНН = ИНН; Свойства.ИНН = ИНН;
КонецПроцедуры КонецПроцедуры
Функция ДанныеУдостоверяющегоЦентра(ПоляПоиска, АккредитованныеУдостоверяющиеЦентры) Экспорт
Если АккредитованныеУдостоверяющиеЦентры = Неопределено Тогда
Возврат Неопределено;
КонецЕсли;
НайденПериодДействия = Неопределено;
НайденаДатаОкончанияДействия = Неопределено;
МассивПолейПоиска = СтрРазделить(ПоляПоиска, ",");
Государственный = Ложь;
Для Каждого ПолеПоиска Из МассивПолейПоиска Цикл
ПодготовленноеПолеПоиска = ПодготовитьПолеПоиска(ПолеПоиска);
Если НайденПериодДействия = Неопределено Тогда
НайденПериодДействия = АккредитованныеУдостоверяющиеЦентры.ПериодыДействия.Получить(ПодготовленноеПолеПоиска);
КонецЕсли;
Если НайденаДатаОкончанияДействия = Неопределено Тогда
НайденаДатаОкончанияДействия = АккредитованныеУдостоверяющиеЦентры.ДатыОкончанияДействия.Получить(ПодготовленноеПолеПоиска);
КонецЕсли;
Если Не Государственный И АккредитованныеУдостоверяющиеЦентры.ГосударственныеУЦ.Получить(ПодготовленноеПолеПоиска) <> Неопределено Тогда
Государственный = Истина;
КонецЕсли;
КонецЦикла;
Если НайденПериодДействия = Неопределено Тогда
Возврат Неопределено;
КонецЕсли;
Результат = Новый Структура;
Результат.Вставить("Государственный", Государственный);
Результат.Вставить("ПериодыДействия", НайденПериодДействия);
Результат.Вставить("ДатаОкончанияДействия", НайденаДатаОкончанияДействия);
Результат.Вставить("ДатаПроверкиОбновления", АккредитованныеУдостоверяющиеЦентры.ДатаПроверкиОбновления);
Возврат Результат;
КонецФункции
Функция ПодготовитьПолеПоиска(Знач ПолеПоиска) Экспорт
ПолеПоиска = ВРег(ПолеПоиска);
ПолеПоиска = СтрЗаменить(ПолеПоиска, """", "");
ПолеПоиска = СтрЗаменить(ПолеПоиска, "«", "");
ПолеПоиска = СтрЗаменить(ПолеПоиска, "»", "");
ПолеПоиска = СтрЗаменить(ПолеПоиска, "“", "");
ПолеПоиска = СтрЗаменить(ПолеПоиска, "”", "");
Возврат ПолеПоиска;
КонецФункции
Функция КонтекстПроверкиУдостоверяющегоЦентраСертификата() Экспорт Функция КонтекстПроверкиУдостоверяющегоЦентраСертификата() Экспорт
Структура = Новый Структура; Структура = Новый Структура;
@@ -310,30 +311,43 @@
Функция ДанныеДляПроверкиУдостоверяющегоЦентра(Сертификат) Экспорт Функция ДанныеДляПроверкиУдостоверяющегоЦентра(Сертификат) Экспорт
Результат = Новый Структура("ПоляПоиска, НаименованиеУдостоверяющегоЦентра"); Результат = Новый Структура("ЗначенияПоиска, НаименованиеУдостоверяющегоЦентра");
СвойстваИздателя = ЭлектроннаяПодписьСлужебныйКлиентСервер.СвойстваИздателяСертификата(Сертификат); СвойстваИздателя = ЭлектроннаяПодписьСлужебныйКлиентСервер.СвойстваИздателяСертификата(Сертификат);
Результат.НаименованиеУдостоверяющегоЦентра = СвойстваИздателя.ОбщееИмя; Результат.НаименованиеУдостоверяющегоЦентра = СвойстваИздателя.ОбщееИмя;
ПоляПоиска = Новый Массив; ЗначенияПоиска = Новый Массив;
Если СвойстваИздателя.Свойство("ОГРН") И ЗначениеЗаполнено(СвойстваИздателя.ОГРН) Тогда Если СвойстваИздателя.Свойство("ОГРН") И ЗначениеЗаполнено(СвойстваИздателя.ОГРН) Тогда
ПоляПоиска.Добавить(СвойстваИздателя.ОГРН); ЗначенияПоиска.Добавить(СвойстваИздателя.ОГРН);
КонецЕсли; КонецЕсли;
Если ЗначениеЗаполнено(СвойстваИздателя.ОбщееИмя) Тогда Если ЗначениеЗаполнено(СвойстваИздателя.ОбщееИмя) Тогда
ПоляПоиска.Добавить(СвойстваИздателя.ОбщееИмя); ЗначенияПоиска.Добавить(СвойстваИздателя.ОбщееИмя);
КонецЕсли; КонецЕсли;
Если ПоляПоиска.Количество() > 0 Тогда Если ЗначенияПоиска.Количество() > 0 Тогда
Результат.ПоляПоиска = СтрСоединить(ПоляПоиска, ","); Результат.ЗначенияПоиска = СтрСоединить(ЗначенияПоиска, ",");
КонецЕсли; КонецЕсли;
Возврат Результат; Возврат Результат;
КонецФункции КонецФункции
Функция ПодготовитьЗначениеПоиска(Знач ЗначениеПоиска) Экспорт
ЗначениеПоиска = ВРег(ЗначениеПоиска);
ЗначениеПоиска = СтрЗаменить(ЗначениеПоиска, """", "");
ЗначениеПоиска = СтрЗаменить(ЗначениеПоиска, "«", "");
ЗначениеПоиска = СтрЗаменить(ЗначениеПоиска, "»", "");
ЗначениеПоиска = СтрЗаменить(ЗначениеПоиска, "“", "");
ЗначениеПоиска = СтрЗаменить(ЗначениеПоиска, "”", "");
Возврат ЗначениеПоиска;
КонецФункции
// Только для внутреннего использования. // Только для внутреннего использования.
// Возвращаемое значение: // Возвращаемое значение:
// см. ЭлектроннаяПодписьСлужебныйКлиентСервер.РезультатПроверкиУдостоверяющегоЦентраПоУмолчанию // см. ЭлектроннаяПодписьСлужебныйКлиентСервер.РезультатПроверкиУдостоверяющегоЦентраПоУмолчанию
@@ -351,7 +365,7 @@
РезультатПроверкиУдостоверяющегоЦентра.Государственный = ДанныеУдостоверяющегоЦентра.Государственный; РезультатПроверкиУдостоверяющегоЦентра.Государственный = ДанныеУдостоверяющегоЦентра.Государственный;
НаДату = КонтекстПроверки.НаДату; НаДату = КонтекстПроверки.НаДату;
ДатаДляСравнения = НаДату + КонтекстПроверки.ДобавкаВремени; ДатаДляСравнения = НаДату - КонтекстПроверки.ДобавкаВремени;
Количество = ДанныеУдостоверяющегоЦентра.ПериодыДействия.Количество(); Количество = ДанныеУдостоверяющегоЦентра.ПериодыДействия.Количество();
@@ -370,7 +384,7 @@
Если ДатаДляСравнения > ПериодДействия.ДатаПо Тогда Если ДатаДляСравнения > ПериодДействия.ДатаПо Тогда
РезультатПроверкиУдостоверяющегоЦентра.Действует = Ложь; РезультатПроверкиУдостоверяющегоЦентра.Действует = Ложь;
ДатаПрекращенияАккредитацииУЦ = ПериодДействия.ДатаПо; ДатаПрекращенияАккредитацииУЦ = ПериодДействия.ДатаПо + КонтекстПроверки.ДобавкаВремени;
Прервать; Прервать;
КонецЕсли; КонецЕсли;
@@ -383,14 +397,14 @@
ЭтоИндивидуальныйПредприниматель = ЗначениеЗаполнено(СвойстваСубъекта.ОГРНИП); ЭтоИндивидуальныйПредприниматель = ЗначениеЗаполнено(СвойстваСубъекта.ОГРНИП);
ЭтоФизическоеЛицо = Не ЭтоЮридическоеЛицо И Не ЭтоИндивидуальныйПредприниматель; ЭтоФизическоеЛицо = Не ЭтоЮридическоеЛицо И Не ЭтоИндивидуальныйПредприниматель;
ДатаПрекращенияДействия = ДатаПрекращенияДействияСертификатовВыданныхКоммерческимиУЦ(); ДатаПрекращенияДействия = ДатаПрекращенияДействияСертификатовВыданныхКоммерческимиУЦ() + КонтекстПроверки.ДобавкаВремени;
// Аккредитация удостоверяющего центра прекращена. // Аккредитация удостоверяющего центра прекращена.
Если Не РезультатПроверкиУдостоверяющегоЦентра.Действует Тогда Если Не РезультатПроверкиУдостоверяющегоЦентра.Действует Тогда
РезультатПроверкиУдостоверяющегоЦентра.Предупреждение.ТекстОшибки = СтроковыеФункцииКлиентСервер.ПодставитьПараметрыВСтроку( РезультатПроверкиУдостоверяющегоЦентра.Предупреждение.ТекстОшибки = СтроковыеФункцииКлиентСервер.ПодставитьПараметрыВСтроку(
НСтр("ru = 'Сертификат не действует с %1, так как аккредитация удостоверяющего центра %2, выдавшего сертификат, прекращена.'"), НСтр("ru = 'Сертификат не действует с %1, так как аккредитация удостоверяющего центра %2, выдавшего сертификат, прекращена.'"),
Формат(ДатаПрекращенияАккредитацииУЦ, "ДЛФ=D"), КонтекстПроверки.НаименованиеУдостоверяющегоЦентра); Формат(ДатаПрекращенияАккредитацииУЦ, "ДЛФ=DT"), КонтекстПроверки.НаименованиеУдостоверяющегоЦентра);
Если Не КонтекстПроверки.ЭтоПроверкаПодписи Тогда Если Не КонтекстПроверки.ЭтоПроверкаПодписи Тогда
@@ -404,7 +418,7 @@
РезультатПроверкиУдостоверяющегоЦентра.Предупреждение.Решение = СтроковыеФункцииКлиентСервер.ПодставитьПараметрыВСтроку( РезультатПроверкиУдостоверяющегоЦентра.Предупреждение.Решение = СтроковыеФункцииКлиентСервер.ПодставитьПараметрыВСтроку(
НСтр("ru = 'Получите новый сертификат в <a href = ""%1"">соответствующем удостоверяющем центре</a>.'"), НСтр("ru = 'Получите новый сертификат в <a href = ""%1"">соответствующем удостоверяющем центре</a>.'"),
СсылкаНаСтатьюОбУдостоверяющихЦентрах()); СсылкаНаСтатьюОбУдостоверяющихЦентрах());
КонецЕсли; КонецЕсли;
Иначе Иначе
РезультатПроверкиУдостоверяющегоЦентра.Предупреждение.ТекстОшибки = РезультатПроверкиУдостоверяющегоЦентра.Предупреждение.ТекстОшибки =
РезультатПроверкиУдостоверяющегоЦентра.Предупреждение.ТекстОшибки +" "+ РезультатПроверкиУдостоверяющегоЦентра.Предупреждение.Причина; РезультатПроверкиУдостоверяющегоЦентра.Предупреждение.ТекстОшибки +" "+ РезультатПроверкиУдостоверяющегоЦентра.Предупреждение.Причина;
@@ -425,16 +439,23 @@
РезультатПроверкиУдостоверяющегоЦентра.Предупреждение.ВозможенПеревыпуск = Ложь; РезультатПроверкиУдостоверяющегоЦентра.Предупреждение.ВозможенПеревыпуск = Ложь;
Если НаДату < ДатаПрекращенияДействия Тогда Если НаДату < ДатаПрекращенияДействия Тогда
ТекстОшибки = НСтр("ru = 'После %1 нельзя будет подписывать документы этим сертификатом, так как не будут действовать сертификаты, выданные коммерческими аккредитованными удостоверяющими центрами %2.'"); Если ЭтоИндивидуальныйПредприниматель Тогда
ТекстОшибки = НСтр("ru = 'После %1 нельзя будет подписывать документы этим сертификатом, так как не будут действовать сертификаты, выданные коммерческими аккредитованными удостоверяющими центрами индивидуальным предпринимателям.'");
Иначе
ТекстОшибки = НСтр("ru = 'После %1 нельзя будет подписывать документы этим сертификатом, так как не будут действовать сертификаты, выданные коммерческими аккредитованными удостоверяющими центрами юридическим лицам и их сотрудникам.'");
КонецЕсли;
ДатаПредупреждения = ДатаПрекращенияДействия; ДатаПредупреждения = ДатаПрекращенияДействия;
Иначе Иначе
ТекстОшибки = НСтр("ru = 'Сертификат не действует c %1, так как с этой даты не действуют сертификаты, выданные коммерческими аккредитованными удостоверяющими центрами %2.'"); Если ЭтоИндивидуальныйПредприниматель Тогда
ТекстОшибки = НСтр("ru = 'Сертификат не действует c %1, так как с этой даты не действуют сертификаты, выданные коммерческими аккредитованными удостоверяющими центрами индивидуальным предпринимателям.'");
Иначе
ТекстОшибки = НСтр("ru = 'Сертификат не действует c %1, так как с этой даты не действуют сертификаты, выданные коммерческими аккредитованными удостоверяющими центрами юридическим лицам и их сотрудникам.'");
КонецЕсли;
КонецЕсли; КонецЕсли;
РезультатПроверкиУдостоверяющегоЦентра.Предупреждение.ТекстОшибки = СтроковыеФункцииКлиентСервер.ПодставитьПараметрыВСтроку( РезультатПроверкиУдостоверяющегоЦентра.Предупреждение.ТекстОшибки = СтроковыеФункцииКлиентСервер.ПодставитьПараметрыВСтроку(
ТекстОшибки, ТекстОшибки,
Формат(ДатаПрекращенияДействия, "ДЛФ=D"), Формат(ДатаПрекращенияДействия, "ДЛФ=DT"));
?(ЭтоИндивидуальныйПредприниматель, НСтр("ru = 'индивидуальным предпринимателям'"), НСтр("ru = 'юридическим лицам и их сотрудникам'")));
Если Не КонтекстПроверки.ЭтоПроверкаПодписи Тогда Если Не КонтекстПроверки.ЭтоПроверкаПодписи Тогда
РезультатПроверкиУдостоверяющегоЦентра.Предупреждение.Решение = СтроковыеФункцииКлиентСервер.ПодставитьПараметрыВСтроку( РезультатПроверкиУдостоверяющегоЦентра.Предупреждение.Решение = СтроковыеФункцииКлиентСервер.ПодставитьПараметрыВСтроку(
@@ -457,26 +478,32 @@
КонецЕсли; КонецЕсли;
// Аккредитация удостоверяющего центра скоро закончится. // Аккредитация удостоверяющего центра скоро закончится.
Если ЗначениеЗаполнено(ДанныеУдостоверяющегоЦентра.ДатаОкончанияДействия) Если ЗначениеЗаполнено(ДанныеУдостоверяющегоЦентра.ДатаОкончанияДействия) Тогда
И (ДатаПредупреждения = Неопределено Или ДанныеУдостоверяющегоЦентра.ДатаОкончанияДействия < ДатаПредупреждения) Тогда
ДатаПредупреждения = ДанныеУдостоверяющегоЦентра.ДатаОкончанияДействия;
РезультатПроверкиУдостоверяющегоЦентра.Предупреждение.ТекстОшибки = СтроковыеФункцииКлиентСервер.ПодставитьПараметрыВСтроку( ДатаОкончанияДействия = ДанныеУдостоверяющегоЦентра.ДатаОкончанияДействия + КонтекстПроверки.ДобавкаВремени;
НСтр("ru = 'После %1 нельзя будет подписывать документы этим сертификатом, так как аккредитация удостоверяющего центра %2, выдавшего сертификат, будет прекращена.'"),
Формат(ДанныеУдостоверяющегоЦентра.ДатаОкончанияДействия, "ДЛФ=D"), КонтекстПроверки.НаименованиеУдостоверяющегоЦентра);
ВозможенПеревыпуск = ВозможенПеревыпускСертификата(НаДату, ЭтоФизическоеЛицо, ДатаПрекращенияДействия); Если ДатаОкончанияДействия > НаДату
РезультатПроверкиУдостоверяющегоЦентра.Предупреждение.ВозможенПеревыпуск = ВозможенПеревыпуск; И (ДатаПредупреждения = Неопределено Или ДатаОкончанияДействия < ДатаПредупреждения) Тогда
Если ВозможенПеревыпуск Тогда ДатаПредупреждения = ДатаОкончанияДействия;
РезультатПроверкиУдостоверяющегоЦентра.Предупреждение.Решение = СтроковыеФункцииКлиентСервер.ПодставитьПараметрыВСтроку(
РезультатПроверкиУдостоверяющегоЦентра.Предупреждение.ТекстОшибки = СтроковыеФункцииКлиентСервер.ПодставитьПараметрыВСтроку(
НСтр("ru = 'После %1 нельзя будет подписывать документы этим сертификатом, так как аккредитация удостоверяющего центра %2, выдавшего сертификат, будет прекращена.'"),
Формат(ДатаОкончанияДействия, "ДЛФ=DT"), КонтекстПроверки.НаименованиеУдостоверяющегоЦентра);
ВозможенПеревыпуск = ВозможенПеревыпускСертификата(НаДату, ЭтоФизическоеЛицо, ДатаПрекращенияДействия);
РезультатПроверкиУдостоверяющегоЦентра.Предупреждение.ВозможенПеревыпуск = ВозможенПеревыпуск;
Если ВозможенПеревыпуск Тогда
РезультатПроверкиУдостоверяющегоЦентра.Предупреждение.Решение = СтроковыеФункцииКлиентСервер.ПодставитьПараметрыВСтроку(
НСтр("ru = 'Подайте <a href = ""%1"">заявление</a> на новый сертификат.'"), "ПодатьЗаявлениеНаСертификат"); НСтр("ru = 'Подайте <a href = ""%1"">заявление</a> на новый сертификат.'"), "ПодатьЗаявлениеНаСертификат");
Иначе Иначе
РезультатПроверкиУдостоверяющегоЦентра.Предупреждение.Решение = СтроковыеФункцииКлиентСервер.ПодставитьПараметрыВСтроку( РезультатПроверкиУдостоверяющегоЦентра.Предупреждение.Решение = СтроковыеФункцииКлиентСервер.ПодставитьПараметрыВСтроку(
НСтр("ru = 'Получите новый сертификат в <a href = ""%1"">соответствующем удостоверяющем центре</a>.'"), НСтр("ru = 'Получите новый сертификат в <a href = ""%1"">соответствующем удостоверяющем центре</a>.'"),
СсылкаНаСтатьюОбУдостоверяющихЦентрах()); СсылкаНаСтатьюОбУдостоверяющихЦентрах());
КонецЕсли;
КонецЕсли; КонецЕсли;
КонецЕсли; КонецЕсли;
// Срок действия сертификата скоро закончится. // Срок действия сертификата скоро закончится.
@@ -485,7 +512,7 @@
РезультатПроверкиУдостоверяющегоЦентра.Предупреждение.ТекстОшибки = СтроковыеФункцииКлиентСервер.ПодставитьПараметрыВСтроку( РезультатПроверкиУдостоверяющегоЦентра.Предупреждение.ТекстОшибки = СтроковыеФункцииКлиентСервер.ПодставитьПараметрыВСтроку(
НСтр("ru = 'После %1 нельзя будет подписывать документы этим сертификатом, так как срок действия сертификата закончится.'"), НСтр("ru = 'После %1 нельзя будет подписывать документы этим сертификатом, так как срок действия сертификата закончится.'"),
Формат(СвойстваСертификата.ДействителенДо, "ДЛФ=D")); Формат(СвойстваСертификата.ДействителенДо, "ДЛФ=DT"));
ВозможенПеревыпуск = ВозможенПеревыпускСертификата(НаДату, ЭтоФизическоеЛицо, ДатаПрекращенияДействия); ВозможенПеревыпуск = ВозможенПеревыпускСертификата(НаДату, ЭтоФизическоеЛицо, ДатаПрекращенияДействия);
РезультатПроверкиУдостоверяющегоЦентра.Предупреждение.ВозможенПеревыпуск = ВозможенПеревыпуск; РезультатПроверкиУдостоверяющегоЦентра.Предупреждение.ВозможенПеревыпуск = ВозможенПеревыпуск;
@@ -512,11 +539,10 @@
Функция ДатаПрекращенияДействияСертификатовВыданныхКоммерческимиУЦ() Функция ДатаПрекращенияДействияСертификатовВыданныхКоммерческимиУЦ()
Возврат Дата(2023, 1, 1); Возврат Дата(2023, 1, 1) - 3*60*60; // Универсальное время относительно московского.
КонецФункции КонецФункции
Функция СсылкаНаСтатьюОбУдостоверяющихЦентрах() Экспорт Функция СсылкаНаСтатьюОбУдостоверяющихЦентрах() Экспорт
Возврат "https://its.1c.ru/db/eldocs#content:110:hdoc"; Возврат "https://its.1c.ru/db/eldocs#content:110:hdoc";
@@ -533,4 +559,4 @@
// Конец Локализация // Конец Локализация
#КонецОбласти #КонецОбласти
@@ -396,24 +396,27 @@
// //
Функция РезультатПроверкиУдостоверяющегоЦентраСертификата(СертификатКриптографии, НаДату = Неопределено, ЭтоПроверкаПодписи = Ложь) Экспорт Функция РезультатПроверкиУдостоверяющегоЦентраСертификата(СертификатКриптографии, НаДату = Неопределено, ЭтоПроверкаПодписи = Ложь) Экспорт
Результат = ЭлектроннаяПодписьСлужебныйКлиентСервер.РезультатПроверкиУдостоверяющегоЦентраПоУмолчанию();
// Локализация
Если Метаданные.ОбщиеМодули.Найти("ЭлектроннаяПодписьСлужебныйЛокализация") = Неопределено Если Метаданные.ОбщиеМодули.Найти("ЭлектроннаяПодписьСлужебныйЛокализация") = Неопределено
Или ЭлектроннаяПодписьСлужебныйПовтИсп.АккредитованныеУдостоверяющиеЦентры() = Неопределено Тогда Или ЭлектроннаяПодписьСлужебныйПовтИсп.АккредитованныеУдостоверяющиеЦентры() = Неопределено Тогда
Возврат ЭлектроннаяПодписьСлужебныйКлиентСервер.РезультатПроверкиУдостоверяющегоЦентраПоУмолчанию(); Возврат Результат;
КонецЕсли; КонецЕсли;
МодульЭлектроннаяПодписьКлиентСерверЛокализация = ОбщегоНазначения.ОбщийМодуль("ЭлектроннаяПодписьКлиентСерверЛокализация"); МодульЭлектроннаяПодписьКлиентСерверЛокализация = ОбщегоНазначения.ОбщийМодуль("ЭлектроннаяПодписьКлиентСерверЛокализация");
ДанныеДляПроверкиУдостоверяющегоЦентра = МодульЭлектроннаяПодписьКлиентСерверЛокализация.ДанныеДляПроверкиУдостоверяющегоЦентра( ДанныеДляПроверкиУдостоверяющегоЦентра = МодульЭлектроннаяПодписьКлиентСерверЛокализация.ДанныеДляПроверкиУдостоверяющегоЦентра(
СертификатКриптографии); СертификатКриптографии);
Если ДанныеДляПроверкиУдостоверяющегоЦентра.ПоляПоиска = Неопределено Тогда Если ДанныеДляПроверкиУдостоверяющегоЦентра.ЗначенияПоиска = Неопределено Тогда
Возврат ЭлектроннаяПодписьСлужебныйКлиентСервер.РезультатПроверкиУдостоверяющегоЦентраПоУмолчанию(); Возврат Результат;
КонецЕсли; КонецЕсли;
ДанныеУдостоверяющегоЦентра = ЭлектроннаяПодписьСлужебныйПовтИсп.ДанныеУдостоверяющегоЦентра( ДанныеУдостоверяющегоЦентра = ЭлектроннаяПодписьСлужебныйПовтИсп.ДанныеУдостоверяющегоЦентра(
ДанныеДляПроверкиУдостоверяющегоЦентра.ПоляПоиска); ДанныеДляПроверкиУдостоверяющегоЦентра.ЗначенияПоиска);
Если ДанныеУдостоверяющегоЦентра = Неопределено Тогда Если ДанныеУдостоверяющегоЦентра = Неопределено Тогда
Возврат ЭлектроннаяПодписьСлужебныйКлиентСервер.РезультатПроверкиУдостоверяющегоЦентраПоУмолчанию(); Возврат Результат;
КонецЕсли; КонецЕсли;
КонтекстПроверки = МодульЭлектроннаяПодписьКлиентСерверЛокализация.КонтекстПроверкиУдостоверяющегоЦентраСертификата(); КонтекстПроверки = МодульЭлектроннаяПодписьКлиентСерверЛокализация.КонтекстПроверкиУдостоверяющегоЦентраСертификата();
@@ -423,7 +426,7 @@
КонтекстПроверки.ДобавкаВремени = ДобавкаВремени(); КонтекстПроверки.ДобавкаВремени = ДобавкаВремени();
КонтекстПроверки.ЭтоПроверкаПодписи = ЭтоПроверкаПодписи; КонтекстПроверки.ЭтоПроверкаПодписи = ЭтоПроверкаПодписи;
Результат = МодульЭлектроннаяПодписьКлиентСерверЛокализация.РезультатПроверкиУдостоверяющегоЦентраСертификата( Результат = МодульЭлектроннаяПодписьКлиентСерверЛокализация.РезультатПроверкиУдостоверяющегоЦентраСертификата(
СертификатКриптографии, КонтекстПроверки); СертификатКриптографии, КонтекстПроверки);
Если ЗначениеЗаполнено(Результат.Предупреждение.Причина) Тогда Если ЗначениеЗаполнено(Результат.Предупреждение.Причина) Тогда
@@ -433,6 +436,8 @@
Если ЗначениеЗаполнено(Результат.Предупреждение.Решение) Тогда Если ЗначениеЗаполнено(Результат.Предупреждение.Решение) Тогда
Результат.Предупреждение.Решение = СтроковыеФункции.ФорматированнаяСтрока(Результат.Предупреждение.Решение); Результат.Предупреждение.Решение = СтроковыеФункции.ФорматированнаяСтрока(Результат.Предупреждение.Решение);
КонецЕсли; КонецЕсли;
// Конец Локализация
Возврат Результат; Возврат Результат;
@@ -892,6 +897,13 @@
СоответствиеИменПсевдонимам.Вставить(Метаданные.РегламентныеЗадания.ПродлениеДостоверностиПодписей.ИмяМетода); СоответствиеИменПсевдонимам.Вставить(Метаданные.РегламентныеЗадания.ПродлениеДостоверностиПодписей.ИмяМетода);
Если Метаданные.Обработки.Найти("ЗаявлениеНаВыпускНовогоКвалифицированногоСертификата") <> Неопределено Тогда
ОбработкаЗаявлениеНаВыпускНовогоКвалифицированногоСертификата =
ОбщегоНазначения.МенеджерОбъектаПоПолномуИмени(
"Обработка.ЗаявлениеНаВыпускНовогоКвалифицированногоСертификата");
ОбработкаЗаявлениеНаВыпускНовогоКвалифицированногоСертификата.ПриОпределенииПсевдонимовОбработчиков(СоответствиеИменПсевдонимам)
КонецЕсли;
КонецПроцедуры КонецПроцедуры
// См. ЗагрузкаДанныхИзФайлаПереопределяемый.ПриОпределенииСправочниковДляЗагрузкиДанных. // См. ЗагрузкаДанныхИзФайлаПереопределяемый.ПриОпределенииСправочниковДляЗагрузкиДанных.
@@ -1444,42 +1456,41 @@
Процедура ЗаполнитьСписокТиповПодписейКриптографии(СписокВыбора, Операция = Неопределено, ТипПодписи = Неопределено) Экспорт Процедура ЗаполнитьСписокТиповПодписейКриптографии(СписокВыбора, Операция = Неопределено, ТипПодписи = Неопределено) Экспорт
СписокВыбора.Очистить(); СписокВыбора.Очистить();
Если (ТипПодписи = Неопределено Или ТипПодписи = Перечисления.ТипыПодписиКриптографии.БазоваяCAdESBES) И Операция <> "Усовершенствование" Тогда Если Операция <> "Усовершенствование"
СписокВыбора.Добавить(Перечисления.ТипыПодписиКриптографии.БазоваяCAdESBES, И (ТипПодписи = Неопределено Или ТипПодписи = Перечисления.ТипыПодписиКриптографии.БазоваяCAdESBES) Тогда
СтроковыеФункцииКлиентСервер.ПодставитьПараметрыВСтроку(НСтр("ru='Базовая подпись (%1)
|становится недействительной после окончания срока действия сертификата подписанта (обычно в течение 1 года).'"), СписокВыбора.Добавить(Перечисления.ТипыПодписиКриптографии.БазоваяCAdESBES, СтроковыеФункцииКлиентСервер.ПодставитьПараметрыВСтроку(
НСтр("ru='Базовая подпись (%1)
|становится недействительной после окончания срока действия сертификата подписанта (обычно в течение 1 года).'"),
"CAdES-BES")); "CAdES-BES"));
КонецЕсли; КонецЕсли;
РазделениеВключено = ОбщегоНазначения.РазделениеВключено(); РазделениеВключено = ОбщегоНазначения.РазделениеВключено();
ДобавитьТипПодписи = Ложь; ДобавитьТипПодписи = Ложь;
Если РазделениеВключено Тогда Если РазделениеВключено Тогда
ЭтоМодельСервисаСДоступнымУсовершенствованием = ЭтоМодельСервисаСДоступнымУсовершенствованием = ЭлектроннаяПодпись.ОбщиеНастройки().ЭтоМодельСервисаСДоступнымУсовершенствованием;
ЭлектроннаяПодпись.ОбщиеНастройки().ЭтоМодельСервисаСДоступнымУсовершенствованием;
ДобавитьТипПодписи = ЭтоМодельСервисаСДоступнымУсовершенствованием Или Не Операция = "Настройки"; ДобавитьТипПодписи = ЭтоМодельСервисаСДоступнымУсовершенствованием Или Не Операция = "Настройки";
Иначе Иначе
Если ТипПодписи = Неопределено Если ТипПодписи = Неопределено Или ТипПодписи = Перечисления.ТипыПодписиКриптографии.СМеткойДоверенногоВремениCAdEST
Или ТипПодписи = Перечисления.ТипыПодписиКриптографии.СМеткойДоверенногоВремениCAdEST И Операция <> "Усовершенствование" Или ТипПодписи = Перечисления.ТипыПодписиКриптографии.БазоваяCAdESBES Тогда
И Операция <> "Усовершенствование"
Или ТипПодписи = Перечисления.ТипыПодписиКриптографии.БазоваяCAdESBES Тогда
ДобавитьТипПодписи = Истина; ДобавитьТипПодписи = Истина;
КонецЕсли; КонецЕсли;
КонецЕсли; КонецЕсли;
Если ДобавитьТипПодписи Тогда Если ДобавитьТипПодписи Тогда
СписокВыбора.Добавить(Перечисления.ТипыПодписиКриптографии.СМеткойДоверенногоВремениCAdEST, СписокВыбора.Добавить(Перечисления.ТипыПодписиКриптографии.СМеткойДоверенногоВремениCAdEST,
СтроковыеФункцииКлиентСервер.ПодставитьПараметрыВСтроку(НСтр("ru='Подпись с меткой доверенного времени (%1) СтроковыеФункцииКлиентСервер.ПодставитьПараметрыВСтроку(
|действует после окончания срока действия сертификата подписанта.'"), НСтр("ru='Подпись с меткой доверенного времени (%1)
"CAdES-T")); |действует после окончания срока действия сертификата подписанта.'"), "CAdES-T"));
КонецЕсли; КонецЕсли;
Если Операция = Неопределено Если Операция = Неопределено Или Не (РазделениеВключено И Операция = "Настройки") Тогда
Или Не (РазделениеВключено И Операция = "Настройки")
Тогда
СписокВыбора.Добавить(Перечисления.ТипыПодписиКриптографии.АрхивнаяCAdESAv3, СписокВыбора.Добавить(Перечисления.ТипыПодписиКриптографии.АрхивнаяCAdESAv3,
СтроковыеФункцииКлиентСервер.ПодставитьПараметрыВСтроку(НСтр("ru='Архивная подпись (%1) СтроковыеФункцииКлиентСервер.ПодставитьПараметрыВСтроку(
|содержит полный набор доказательств подлинности, в том числе цепочку сертификатов, и автоматически продлевается.'"), НСтр("ru='Архивная подпись (%1)
"CAdES-A")); |содержит полный набор доказательств подлинности, в том числе цепочку сертификатов, и автоматически продлевается.'"),
"CAdES-A"));
КонецЕсли; КонецЕсли;
КонецПроцедуры КонецПроцедуры
@@ -2304,8 +2315,7 @@
Прервать; Прервать;
КонецЕсли; КонецЕсли;
Выборка = РезультатЗапроса.Выбрать(); Выборка = РезультатЗапроса.Выбрать();
УсовершенствоватьРегламентнымЗаданием( УсовершенствоватьРегламентнымЗаданием(Выборка, ПараметрыВыполнения);
Выборка, ПараметрыВыполнения);
КонецЦикла; КонецЦикла;
КонецПроцедуры КонецПроцедуры
@@ -2638,18 +2648,21 @@
Если Результат.Успех Тогда Если Результат.Успех Тогда
Если Параметры.ЭлементДанныхДляСервера.Свойство("ПодписанныйОбъект") Тогда Если Параметры.ЭлементДанныхДляСервера.Свойство("ПодписанныйОбъект") Тогда
Результат.СвойстваПодписи.ПодписанныйОбъект = Параметры.ЭлементДанныхДляСервера.ПодписанныйОбъект; Результат.СвойстваПодписи.ПодписанныйОбъект = Параметры.ЭлементДанныхДляСервера.ПодписанныйОбъект;
Результат.СвойстваПодписи.ПорядковыйНомер = Параметры.ЭлементДанныхДляСервера.ПорядковыйНомер; Результат.СвойстваПодписи.ПорядковыйНомер = Параметры.ЭлементДанныхДляСервера.ПорядковыйНомер;
ПредставлениеОшибки = ОбновитьУсовершенствованнуюПодпись( ПредставлениеОшибки = ОбновитьУсовершенствованнуюПодпись(Результат.СвойстваПодписи);
Результат.СвойстваПодписи);
Если ЗначениеЗаполнено(ПредставлениеОшибки) Тогда Если ЗначениеЗаполнено(ПредставлениеОшибки) Тогда
Результат.Успех = Ложь; Результат.Успех = Ложь;
Результат.ТекстОшибки = ПредставлениеОшибки; Результат.ТекстОшибки = ПредставлениеОшибки;
Возврат Результат; Возврат Результат;
КонецЕсли; КонецЕсли;
Если ЗначениеЗаполнено(Результат.СвойстваПодписи.Подпись) Тогда Если ЗначениеЗаполнено(Результат.СвойстваПодписи.Подпись) Тогда
ЗарегистрироватьУсовершенствованиеПодписиВЖурнале(Результат.СвойстваПодписи); ЗарегистрироватьУсовершенствованиеПодписиВЖурнале(Результат.СвойстваПодписи);
КонецЕсли; КонецЕсли;
КонецЕсли; КонецЕсли;
Иначе Иначе
Возврат Результат; Возврат Результат;
@@ -2676,13 +2689,14 @@
Если Параметры.ЭлементДанныхДляСервера.Свойство("ПодписанныйОбъект") Тогда Если Параметры.ЭлементДанныхДляСервера.Свойство("ПодписанныйОбъект") Тогда
РезультатЗапроса = ЭлектроннаяПодпись.УсовершенствоватьПодписьОбъекта(Параметры.ЭлементДанныхДляСервера.ПодписанныйОбъект, РезультатЗапроса = ЭлектроннаяПодпись.УсовершенствоватьПодписьОбъекта(Параметры.ЭлементДанныхДляСервера.ПодписанныйОбъект,
Параметры.ЭлементДанныхДляСервера.ПорядковыйНомер, Параметры.ТипПодписи, Параметры.ЭлементДанныхДляСервера.ПорядковыйНомер, Параметры.ТипПодписи,
Параметры.ДобавитьАрхивнуюМеткуВремени, Параметры.ИдентификаторФормы, МенеджерКриптографии); Параметры.ДобавитьАрхивнуюМеткуВремени, Параметры.ИдентификаторФормы, МенеджерКриптографии);
Иначе Иначе
РезультатЗапроса = ЭлектроннаяПодпись.УсовершенствоватьПодпись(Подпись, РезультатЗапроса = ЭлектроннаяПодпись.УсовершенствоватьПодпись(Подпись, Параметры.ТипПодписи,
Параметры.ТипПодписи,
Параметры.ДобавитьАрхивнуюМеткуВремени, МенеджерКриптографии); Параметры.ДобавитьАрхивнуюМеткуВремени, МенеджерКриптографии);
КонецЕсли; КонецЕсли;
ЗаполнитьЗначенияСвойств(Результат, РезультатЗапроса); ЗаполнитьЗначенияСвойств(Результат, РезультатЗапроса);
КонецЕсли; КонецЕсли;
Если Не Результат.Успех Тогда Если Не Результат.Успех Тогда
@@ -3812,6 +3826,10 @@
И Не СертификатПеревыпущен(Форма.Сертификат); И Не СертификатПеревыпущен(Форма.Сертификат);
КонецЕсли; КонецЕсли;
Если ОбщегоНазначенияКлиентСервер.ЕстьРеквизитИлиСвойствоОбъекта(Форма, "РезультатПроверкиУдостоверяющегоЦентра") Тогда
Форма.РезультатПроверкиУдостоверяющегоЦентра = РезультатПроверкиУдостоверяющегоЦентраСертификата(Сертификат);
КонецЕсли;
Форма.СертификатНаСервереОписаниеОшибки = Новый Структура; Форма.СертификатНаСервереОписаниеОшибки = Новый Структура;
Если Не ЭлектроннаяПодпись.СоздаватьЭлектронныеПодписиНаСервере() Тогда Если Не ЭлектроннаяПодпись.СоздаватьЭлектронныеПодписиНаСервере() Тогда
@@ -1240,19 +1240,47 @@
Возврат; Возврат;
КонецЕсли; КонецЕсли;
Если Контекст.Свойство("ПроверитьСертификатНаКлиенте") Тогда МенеджерДляПолученияДатыПодписи = Контекст.МенеджерКриптографии;
МенеджерКриптографии = Контекст.МенеджерКриптографии; Если Не Контекст.Свойство("ПроверитьСертификатНаКлиенте") Тогда
Иначе
// Проверка сертификата на сервере и на клиенте. // Проверка сертификата на сервере и на клиенте.
МенеджерКриптографии = Неопределено; Контекст.Вставить("МенеджерКриптографии", Неопределено);
КонецЕсли; КонецЕсли;
Контекст.Вставить("Сертификат", Сертификат); Контекст.Вставить("Сертификат", Сертификат);
Контекст.Вставить("МенеджерКриптографии", МенеджерКриптографии);
Если ЭлектроннаяПодписьКлиент.ОбщиеНастройки().ДоступнаУсовершенствованнаяПодпись
И ТипЗнч(МенеджерДляПолученияДатыПодписи) = Тип("МенеджерКриптографии") Тогда
Оповещение = Новый ОписаниеОповещения(
"ПроверитьПодписьНаКлиентеПослеПолученияКонтейнераПодписи", ЭтотОбъект, Контекст,
"ПроверитьПодписьНаКлиентеПослеОшибкиПолученияКонтейнераПодписиНаКлиенте", ЭтотОбъект);
МенеджерДляПолученияДатыПодписи.НачатьПолучениеКонтейнераПодписейКриптографии(Оповещение, Контекст.ДанныеПодписи);
Иначе
ЭлектроннаяПодписьКлиент.ДатаПодписания(
Новый ОписаниеОповещения("ПроверитьПодписьНаКлиентеПослеПолученияДатыПодписания", ЭтотОбъект, Контекст),
Контекст.ДанныеПодписи);
КонецЕсли;
ЭлектроннаяПодписьКлиент.ДатаПодписания( КонецПроцедуры
Новый ОписаниеОповещения("ПроверитьПодписьНаКлиентеПослеПолученияДатыПодписания", ЭтотОбъект, Контекст),
Контекст.ДанныеПодписи); // Продолжение процедуры ПроверитьПодпись.
Процедура ПроверитьПодписьНаКлиентеПослеПолученияКонтейнераПодписи(КонтейнерПодписи, Контекст) Экспорт
ДатаСеанса = ОбщегоНазначенияКлиент.ДатаСеанса();
ДобавкаВремени = ДатаСеанса - ОбщегоНазначенияКлиент.ДатаУниверсальная();
ПараметрыПодписи = ЭлектроннаяПодписьСлужебныйКлиентСервер.ПараметрыПодписиКриптографии(
КонтейнерПодписи, ДобавкаВремени, ДатаСеанса);
ДатаПодписи = ЭлектроннаяПодписьСлужебныйКлиентСервер.ДатаПодписиИзПараметровПодписи(ПараметрыПодписи);
ПроверитьПодписьНаКлиентеПослеПолученияДатыПодписания(ДатаПодписи, Контекст);
КонецПроцедуры
// Продолжение процедуры ПроверитьПодпись.
Процедура ПроверитьПодписьНаКлиентеПослеОшибкиПолученияКонтейнераПодписиНаКлиенте(ИнформацияОбОшибке, СтандартнаяОбработка,
Контекст) Экспорт
СтандартнаяОбработка = Ложь;
ТекстОшибки = КраткоеПредставлениеОшибки(ИнформацияОбОшибке);
ВыполнитьОбработкуОповещения(Контекст.Оповещение, ТекстОшибки);
КонецПроцедуры КонецПроцедуры
@@ -1617,8 +1645,11 @@
Функция РезультатПроверкиУдостоверяющегоЦентраСертификата(СертификатКриптографии, НаДату = Неопределено, ЭтоПроверкаПодписи = Ложь) Экспорт Функция РезультатПроверкиУдостоверяющегоЦентраСертификата(СертификатКриптографии, НаДату = Неопределено, ЭтоПроверкаПодписи = Ложь) Экспорт
Результат = ЭлектроннаяПодписьСлужебныйКлиентСервер.РезультатПроверкиУдостоверяющегоЦентраПоУмолчанию();
// Локализация
Если Не ЭлектроннаяПодписьКлиент.ОбщиеНастройки().ДоступнаПроверкаПоСпискуУЦ Тогда Если Не ЭлектроннаяПодписьКлиент.ОбщиеНастройки().ДоступнаПроверкаПоСпискуУЦ Тогда
Возврат ЭлектроннаяПодписьСлужебныйКлиентСервер.РезультатПроверкиУдостоверяющегоЦентраПоУмолчанию(); Возврат Результат;
КонецЕсли; КонецЕсли;
МодульЭлектроннаяПодписьКлиентСерверЛокализация = ОбщегоНазначенияКлиент.ОбщийМодуль( МодульЭлектроннаяПодписьКлиентСерверЛокализация = ОбщегоНазначенияКлиент.ОбщийМодуль(
@@ -1627,17 +1658,15 @@
ДанныеДляПроверкиУдостоверяющегоЦентра = МодульЭлектроннаяПодписьКлиентСерверЛокализация.ДанныеДляПроверкиУдостоверяющегоЦентра( ДанныеДляПроверкиУдостоверяющегоЦентра = МодульЭлектроннаяПодписьКлиентСерверЛокализация.ДанныеДляПроверкиУдостоверяющегоЦентра(
СертификатКриптографии); СертификатКриптографии);
Если ДанныеДляПроверкиУдостоверяющегоЦентра.ПоляПоиска = Неопределено Тогда Если ДанныеДляПроверкиУдостоверяющегоЦентра.ЗначенияПоиска = Неопределено Тогда
Возврат ЭлектроннаяПодписьСлужебныйКлиентСервер.РезультатПроверкиУдостоверяющегоЦентраПоУмолчанию(); Возврат Результат;
КонецЕсли; КонецЕсли;
ДанныеУдостоверяющегоЦентра = ЭлектроннаяПодписьСлужебныйКлиентПовтИсп.ДанныеУдостоверяющегоЦентра( ДанныеУдостоверяющегоЦентра = ЭлектроннаяПодписьСлужебныйКлиентПовтИсп.ДанныеУдостоверяющегоЦентра(
ДанныеДляПроверкиУдостоверяющегоЦентра.ПоляПоиска); ДанныеДляПроверкиУдостоверяющегоЦентра.ЗначенияПоиска);
Если ДанныеУдостоверяющегоЦентра = Неопределено Тогда Если ДанныеУдостоверяющегоЦентра = Неопределено Тогда
Возврат Результат;
Возврат ЭлектроннаяПодписьСлужебныйКлиентСервер.РезультатПроверкиУдостоверяющегоЦентраПоУмолчанию();
КонецЕсли; КонецЕсли;
КонтекстПроверки = МодульЭлектроннаяПодписьКлиентСерверЛокализация.КонтекстПроверкиУдостоверяющегоЦентраСертификата(); КонтекстПроверки = МодульЭлектроннаяПодписьКлиентСерверЛокализация.КонтекстПроверкиУдостоверяющегоЦентраСертификата();
@@ -1659,8 +1688,10 @@
Результат.Предупреждение.Решение = СтроковыеФункцииКлиент.ФорматированнаяСтрока( Результат.Предупреждение.Решение = СтроковыеФункцииКлиент.ФорматированнаяСтрока(
Результат.Предупреждение.Решение); Результат.Предупреждение.Решение);
КонецЕсли; КонецЕсли;
// Конец Локализация
Возврат Результат; Возврат Результат;
КонецФункции КонецФункции
@@ -2479,6 +2510,8 @@
ДополнительныеДанные.Вставить("НеподписанныеДанные"); ДополнительныеДанные.Вставить("НеподписанныеДанные");
ДополнительныеДанные.Вставить("Сертификат"); ДополнительныеДанные.Вставить("Сертификат");
ДополнительныеДанные.Вставить("Подпись"); ДополнительныеДанные.Вставить("Подпись");
ДополнительныеДанные.Вставить("ДополнительныеДанныеПроверокНаКлиенте");
ДополнительныеДанные.Вставить("ДополнительныеДанныеПроверокНаСервере");
Если ТипЗнч(ДополнительныеПараметры) = Тип("Структура") Тогда Если ТипЗнч(ДополнительныеПараметры) = Тип("Структура") Тогда
ЗаполнитьЗначенияСвойств(ПараметрыФормы, ДополнительныеПараметры); ЗаполнитьЗначенияСвойств(ПараметрыФормы, ДополнительныеПараметры);
@@ -7841,7 +7874,6 @@
КонецПроцедуры КонецПроцедуры
// Описание // Описание
// //
// Параметры: // Параметры:
@@ -14,7 +14,7 @@
КонецФункции КонецФункции
Функция ДанныеУдостоверяющегоЦентра(ПоляПоиска) Экспорт Функция ДанныеУдостоверяющегоЦентра(ЗначенияПоиска) Экспорт
АккредитованныеУдостоверяющиеЦентры = ЭлектроннаяПодписьСлужебныйКлиентПовтИсп.АккредитованныеУдостоверяющиеЦентры(); АккредитованныеУдостоверяющиеЦентры = ЭлектроннаяПодписьСлужебныйКлиентПовтИсп.АккредитованныеУдостоверяющиеЦентры();
Если АккредитованныеУдостоверяющиеЦентры = Неопределено Тогда Если АккредитованныеУдостоверяющиеЦентры = Неопределено Тогда
@@ -22,7 +22,7 @@
КонецЕсли; КонецЕсли;
МодульЭлектроннаяПодписьКлиентСерверЛокализация = ОбщегоНазначенияКлиент.ОбщийМодуль("ЭлектроннаяПодписьКлиентСерверЛокализация"); МодульЭлектроннаяПодписьКлиентСерверЛокализация = ОбщегоНазначенияКлиент.ОбщийМодуль("ЭлектроннаяПодписьКлиентСерверЛокализация");
Возврат МодульЭлектроннаяПодписьКлиентСерверЛокализация.ДанныеУдостоверяющегоЦентра(ПоляПоиска, АккредитованныеУдостоверяющиеЦентры); Возврат МодульЭлектроннаяПодписьКлиентСерверЛокализация.ДанныеУдостоверяющегоЦентра(ЗначенияПоиска, АккредитованныеУдостоверяющиеЦентры);
КонецФункции КонецФункции
@@ -37,9 +37,9 @@
// Конструктор результата проверки по списку удостоверяющих центров. // Конструктор результата проверки по списку удостоверяющих центров.
// //
// Возвращаемое значение: // Возвращаемое значение:
// Структура - Результат проверки удостоверяющего центра по умолчанию: // Структура - результат проверки удостоверяющего центра по умолчанию:
// * Действует - Булево - Аккредитованный УЦ действует на дату проверки. // * Действует - Булево - аккредитованный УЦ действует на дату проверки.
// * НайденВСпискеУдостоверяющихЦентров - Булево - Сертификат, выданный УЦ является квалифицированным // * НайденВСпискеУдостоверяющихЦентров - Булево - сертификат, выданный УЦ является квалифицированным
// * Государственный - Булево - относится к определенному списку УЦ, выдающих сертификаты, по которым не нужно // * Государственный - Булево - относится к определенному списку УЦ, выдающих сертификаты, по которым не нужно
// выполнять некоторые проверки. // выполнять некоторые проверки.
// например, в России: УЦ ФНС России, Казначейства России, и Банка России. // например, в России: УЦ ФНС России, Казначейства России, и Банка России.
@@ -58,11 +58,11 @@
КонецФункции КонецФункции
// Возвращаемое значение: // Возвращаемое значение:
// Структура - Сообщение об ошибке/предупреждение для проверяемого сертификата: // Структура - сообщение об ошибке/предупреждение для проверяемого сертификата:
// * ТекстОшибки - Строка - // * ТекстОшибки - Строка
// * ВозможенПеревыпуск - Булево - можно подать заявление на новый сертификат из программы. // * ВозможенПеревыпуск - Булево - можно подать заявление на новый сертификат из программы.
// * Причина - Строка - Причина ошибки для отображения в расширенной форме ошибки. // * Причина - Строка - причина ошибки для отображения в расширенной форме ошибки.
// * Решение - Строка - Рекомендация для отображения в расширенной форме ошибки. // * Решение - Строка - рекомендация для отображения в расширенной форме ошибки.
// //
Функция ПредупреждениеПриПроверкеУдостоверяющегоЦентраСертификата() Экспорт Функция ПредупреждениеПриПроверкеУдостоверяющегоЦентраСертификата() Экспорт
@@ -71,11 +71,12 @@
Предупреждение.Вставить("ВозможенПеревыпуск", Ложь); Предупреждение.Вставить("ВозможенПеревыпуск", Ложь);
Предупреждение.Вставить("Причина", ""); Предупреждение.Вставить("Причина", "");
Предупреждение.Вставить("Решение", ""); Предупреждение.Вставить("Решение", "");
Возврат Предупреждение; Возврат Предупреждение;
КонецФункции КонецФункции
#КонецОбласти #КонецОбласти
#Область СлужебныеПроцедурыИФункции #Область СлужебныеПроцедурыИФункции
@@ -991,7 +992,7 @@
// * УстановившийПодпись - СправочникСсылка.Пользователи // * УстановившийПодпись - СправочникСсылка.Пользователи
// * Комментарий - Строка // * Комментарий - Строка
// * ИмяФайлаПодписи - Строка // * ИмяФайлаПодписи - Строка
// * ДатаПодписи - Дата // * ДатаПодписи - Дата - дата подписи неподтвержденная
// * ДатаПроверкиПодписи - Дата // * ДатаПроверкиПодписи - Дата
// * ПодписьВерна - Булево // * ПодписьВерна - Булево
// * Сертификат - ДвоичныеДанные // * Сертификат - ДвоичныеДанные
@@ -999,6 +1000,8 @@
// * КомуВыданСертификат - Строка // * КомуВыданСертификат - Строка
// * ТипПодписи - ПеречислениеСсылка.ТипыПодписиКриптографии // * ТипПодписи - ПеречислениеСсылка.ТипыПодписиКриптографии
// * СрокДействияПоследнейМеткиВремени - Дата // * СрокДействияПоследнейМеткиВремени - Дата
// * ДатаПодписиИзМетки - Дата
// * НеподтвержденнаяДатаПодписи - Дата
// //
Функция СвойстваПодписи(ДвоичныеДанныеПодписи, СвойстваСертификата, Комментарий, Функция СвойстваПодписи(ДвоичныеДанныеПодписи, СвойстваСертификата, Комментарий,
АвторизованныйПользователь, ИмяФайлаПодписи = "", ПараметрыПодписи = Неопределено) Экспорт АвторизованныйПользователь, ИмяФайлаПодписи = "", ПараметрыПодписи = Неопределено) Экспорт
@@ -1015,12 +1018,17 @@
СвойстваПодписи.Вставить("Сертификат", СвойстваСертификата.ДвоичныеДанные); СвойстваПодписи.Вставить("Сертификат", СвойстваСертификата.ДвоичныеДанные);
СвойстваПодписи.Вставить("Отпечаток", СвойстваСертификата.Отпечаток); СвойстваПодписи.Вставить("Отпечаток", СвойстваСертификата.Отпечаток);
СвойстваПодписи.Вставить("КомуВыданСертификат", СвойстваСертификата.КомуВыдан); СвойстваПодписи.Вставить("КомуВыданСертификат", СвойстваСертификата.КомуВыдан);
СвойстваПодписи.Вставить("ТипПодписи"); СвойстваПодписи.Вставить("ТипПодписи");
СвойстваПодписи.Вставить("СрокДействияПоследнейМеткиВремени"); СвойстваПодписи.Вставить("СрокДействияПоследнейМеткиВремени");
СвойстваПодписи.Вставить("ДатаПодписиИзМетки");
СвойстваПодписи.Вставить("НеподтвержденнаяДатаПодписи");
Если ПараметрыПодписи <> Неопределено Тогда Если ПараметрыПодписи <> Неопределено Тогда
СвойстваПодписи.Вставить("ТипПодписи", ПараметрыПодписи.ТипПодписи); СвойстваПодписи.Вставить("ТипПодписи", ПараметрыПодписи.ТипПодписи);
СвойстваПодписи.Вставить("СрокДействияПоследнейМеткиВремени", ПараметрыПодписи.СрокДействияПоследнейМеткиВремени); СвойстваПодписи.Вставить("СрокДействияПоследнейМеткиВремени", ПараметрыПодписи.СрокДействияПоследнейМеткиВремени);
СвойстваПодписи.Вставить("ДатаПодписиИзМетки", ПараметрыПодписи.ДатаПодписиИзМетки);
СвойстваПодписи.Вставить("НеподтвержденнаяДатаПодписи", ПараметрыПодписи.НеподтвержденнаяДатаПодписи);
КонецЕсли; КонецЕсли;
Возврат СвойстваПодписи; Возврат СвойстваПодписи;
@@ -1054,6 +1062,25 @@
КонецФункции КонецФункции
// Только для внутреннего использования.
// Возвращаемое значение:
// Дата, Неопределено
//
Функция ДатаПодписиИзПараметровПодписи(ПараметрыПодписи) Экспорт
Если ЗначениеЗаполнено(ОбщегоНазначенияКлиентСервер.СвойствоСтруктуры(
ПараметрыПодписи, "ДатаПодписиИзМетки", Неопределено)) Тогда
Возврат ПараметрыПодписи.ДатаПодписиИзМетки;
КонецЕсли;
Если ЗначениеЗаполнено(ОбщегоНазначенияКлиентСервер.СвойствоСтруктуры(
ПараметрыПодписи, "НеподтвержденнаяДатаПодписи", Неопределено)) Тогда
Возврат ПараметрыПодписи.НеподтвержденнаяДатаПодписи;
КонецЕсли;
Возврат Неопределено;
КонецФункции
// Только для внутреннего использования. // Только для внутреннего использования.
// //
@@ -1309,27 +1336,100 @@
КонецФункции КонецФункции
// Только для внутреннего использования. // Только для внутреннего использования.
Функция ДатаПодписанияУниверсальная(БуферДвоичныхДанныхПодписи) Экспорт Функция ДатаПодписанияУниверсальная(Данные) Экспорт
ДатаПодписания = Неопределено; ДвоичныеДанные = ДвоичныеДанныеИзДанных(Данные,
"ЭлектроннаяПодписьСлужебныйКлиентСервер.АлгоритмПодписи");
Позиция = 0; АнализДанных = НовыйАнализДанных(ДвоичныеДанные);
Для Каждого Байт Из БуферДвоичныхДанныхПодписи Цикл
Если Байт = 15 И ЭтоЗаголовокДаты(БуферДвоичныхДанныхПодписи, Позиция) Тогда // SEQUENCE (PKCS #7 ContentInfo).
ДатаСтрокой = ДатаСтрокой(БуферДвоичныхДанныхПодписи, Позиция); ПропуститьНачалоБлока(АнализДанных, 0, 16);
Если ЭтоЦифры(ДатаСтрокой) Тогда // OBJECT IDENTIFIER (contentType).
Попытка ПропуститьНачалоБлока(АнализДанных, 0, 6);
ДатаПодписания = Дата("20" + ДатаСтрокой); // Универсальное время. // 1.2.840.113549.1.7.2 signedData (PKCS #7).
Прервать; ПроверитьДанныеБлока(АнализДанных, "2A864886F70D010702");
Исключение ПропуститьРодительскийБлок(АнализДанных);
ДатаПодписания = Неопределено; // [0]CS (content [0] EXPLICIT ANY DEFINED BY contentType OPTIONAL).
КонецПопытки; ПропуститьНачалоБлока(АнализДанных, 2, 0);
КонецЕсли; // SEQUENCE (content SignedData).
ПропуститьНачалоБлока(АнализДанных, 0, 16);
// INTEGER (version Version).
ПропуститьБлок(АнализДанных, 0, 2);
// SET (digestAlgorithms DigestAlgorithmIdentifiers).
ПропуститьБлок(АнализДанных, 0, 17);
// SEQUENCE (contentInfo ContentInfo).
ПропуститьБлок(АнализДанных, 0, 16);
// [0]CS (certificates [0] IMPLICIT ExtendedCertificatesAndCertificates OPTIONAL).
ПропуститьБлок(АнализДанных, 2, 0, Ложь);
// [1]CS (crls [1] IMPLICIT CertificateRevocationLists OPTIONAL).
ПропуститьБлок(АнализДанных, 2, 1, Ложь);
// SET (signerInfos SET OF SignerInfo).
ПропуститьНачалоБлока(АнализДанных, 0, 17);
// SEQUENCE (signerInfo SignerInfo).
ПропуститьНачалоБлока(АнализДанных, 0, 16);
// INTEGER (version Version).
ПропуститьБлок(АнализДанных, 0, 2);
// SEQUENCE (issuerAndSerialNumber IssuerAndSerialNumber).
ПропуститьБлок(АнализДанных, 0, 16);
// SEQUENCE (digestAlgorithm DigestAlgorithmIdentifier).
ПропуститьБлок(АнализДанных, 0, 16);
// [0]CS (authenticatedAttributes [0] IMPLICIT Attributes OPTIONAL).
ПропуститьНачалоБлока(АнализДанных, 2, 0);
Если АнализДанных.ЕстьОшибка Тогда
Возврат Неопределено;
КонецЕсли;
СмещениеСледующего = АнализДанных.Родители[0].СмещениеСледующего;
Пока АнализДанных.Смещение < СмещениеСледующего Цикл
// SEQUENCE (Attributes).
ПропуститьНачалоБлока(АнализДанных, 0, 16);
Если АнализДанных.ЕстьОшибка Тогда
Возврат Неопределено;
КонецЕсли;
// OBJECT IDENTIFIER
ПропуститьНачалоБлока(АнализДанных, 0, 6);
РазмерДанных = АнализДанных.Родители[0].РазмерДанных;
Если РазмерДанных = 0 Тогда
ПриОшибкеСтруктурыДанных(АнализДанных);
Возврат Неопределено;
КонецЕсли; КонецЕсли;
Позиция = Позиция + 1;
Если РазмерДанных = 9 Тогда
Буфер = АнализДанных.Буфер.Прочитать(АнализДанных.Смещение, РазмерДанных); // БуферДвоичныхДанных
СтрокаБуфера = ПолучитьHexСтрокуИзБуфераДвоичныхДанных(Буфер);
Если СтрокаБуфера = "2A864886F70D010905" Тогда // 1.2.840.113549.1.9.5 signingTime
ТипДаты = ПолучитьHexСтрокуИзБуфераДвоичныхДанных(АнализДанных.Буфер.Прочитать(АнализДанных.Смещение + 11, 2));
Если ТипДаты = "170D" Тогда // UTCTime
БуферДаты = АнализДанных.Буфер.Прочитать(АнализДанных.Смещение + 13, 12);
ПредставлениеДаты = "20" + ПолучитьСтрокуИзБуфераДвоичныхДанных(БуферДаты);
Иначе // GeneralizedTime
БуферДаты = АнализДанных.Буфер.Прочитать(АнализДанных.Смещение + 13, 14);
ПредставлениеДаты = ПолучитьСтрокуИзБуфераДвоичныхДанных(БуферДаты);
КонецЕсли;
ОписаниеТипа = Новый ОписаниеТипов("Дата");
ДатаПодписания = ОписаниеТипа.ПривестиЗначение(ПредставлениеДаты);
Если ЗначениеЗаполнено(ДатаПодписания) Тогда
Возврат ДатаПодписания;
Иначе
Возврат Неопределено;
КонецЕсли;
КонецЕсли;
КонецЕсли;
ПропуститьРодительскийБлок(АнализДанных); // OBJECT IDENTIFIER
ПропуститьРодительскийБлок(АнализДанных); // SEQUENCE
КонецЦикла; КонецЦикла;
Возврат ДатаПодписания; Возврат Неопределено;
КонецФункции КонецФункции
@@ -2040,15 +2140,15 @@
Функция СведенияОСертификатеСтрокой(СвойстваСертификата) Экспорт Функция СведенияОСертификатеСтрокой(СвойстваСертификата) Экспорт
СведенияОСертификате = СтроковыеФункцииКлиентСервер.ПодставитьПараметрыВСтроку( СведенияОСертификате = СтроковыеФункцииКлиентСервер.ПодставитьПараметрыВСтроку(
НСтр("ru = 'Сертификат: %1 НСтр("ru = 'Сертификат: %1
|Кем выдан: %2 |Кем выдан: %2
|Владелец: %3 |Владелец: %3
|Действителен: с %4 по %5'"), |Действителен: с %4 по %5'"),
Строка(СвойстваСертификата.СерийныйНомер), Строка(СвойстваСертификата.СерийныйНомер),
СвойстваСертификата.КемВыдан, СвойстваСертификата.КемВыдан,
СвойстваСертификата.КомуВыдан, СвойстваСертификата.КомуВыдан,
Формат(СвойстваСертификата.ДатаНачала, "ДЛФ=D"), Формат(СвойстваСертификата.ДатаНачала, "ДЛФ=D"),
Формат(СвойстваСертификата.ДатаОкончания, "ДЛФ=D")); Формат(СвойстваСертификата.ДатаОкончания, "ДЛФ=D"));
Возврат СведенияОСертификате; Возврат СведенияОСертификате;
@@ -2110,59 +2210,6 @@
КонецФункции КонецФункции
// Для процедуры ДатаПодписанияУниверсальная.
Функция ЭтоЦифры(Строка)
Для НомерСимвола = 1 По СтрДлина(Строка) Цикл
ТекущийСимвол = Сред(Строка, НомерСимвола, 1);
Если ТекущийСимвол < "0" Или ТекущийСимвол > "9" Тогда
Возврат Ложь;
КонецЕсли;
КонецЦикла;
Возврат Истина;
КонецФункции
// Для процедуры ДатаПодписанияУниверсальная.
Функция ЭтоЗаголовокДаты(БуферДвоичныхДанных, Позиция)
Если БуферДвоичныхДанных.Размер - Позиция < 3 Тогда
Возврат Ложь;
КонецЕсли;
БуферЗаголовка = БуферДвоичныхДанных.Прочитать(Позиция, 3);
Если БуферЗаголовка.Размер = 3
И БуферЗаголовка[1] = 23
И БуферЗаголовка[2] = 13 Тогда
Возврат Истина;
КонецЕсли;
Возврат Ложь;
КонецФункции
// Для процедуры ДатаПодписанияУниверсальная.
Функция ДатаСтрокой(БуферДвоичныхДанных, Позиция)
ПредставлениеДаты = "";
Если БуферДвоичныхДанных.Размер - (Позиция + 3) < 12 Тогда
Возврат ПредставлениеДаты;
КонецЕсли;
БуферДаты = БуферДвоичныхДанных.Прочитать(Позиция + 3, 12);
Для Каждого Байт Из БуферДаты Цикл
ПредставлениеДаты = ПредставлениеДаты + Символ(Байт);
КонецЦикла;
Возврат ПредставлениеДаты;
КонецФункции
// Возвращает информацию об используемом компьютере. // Возвращает информацию об используемом компьютере.
// //
// Возвращаемое значение: // Возвращаемое значение:
@@ -22,7 +22,7 @@
// См. РаботаСКлассификаторамиПереопределяемый.ПриЗагрузкеКлассификатора. // См. РаботаСКлассификаторамиПереопределяемый.ПриЗагрузкеКлассификатора.
Процедура ЗагрузитьДанныеАккредитованныхУЦ(Версия, Адрес, Обработан, ДополнительныеПараметры) Экспорт Процедура ЗагрузитьДанныеАккредитованныхУЦ(Версия, Адрес, Обработан, ДополнительныеПараметры) Экспорт
Если ОбщегоНазначения.РазделениеВключено() Тогда Если ОбщегоНазначения.РазделениеВключено() И ОбщегоНазначения.ДоступноИспользованиеРазделенныхДанных() Тогда
Возврат; Возврат;
КонецЕсли; КонецЕсли;
@@ -85,19 +85,15 @@
Если ИмяФайлаПериодыДействия <> Неопределено Тогда Если ИмяФайлаПериодыДействия <> Неопределено Тогда
ЧтениеJSON = Новый ЧтениеJSON; СписокУЦ = ПрочитатьФайлПериодовДействияУЦ(КаталогОбновлений + ИмяФайлаПериодыДействия);
ЧтениеJSON.ОткрытьФайл(КаталогОбновлений + ИмяФайлаПериодыДействия);
СписокУЦ = ПрочитатьJSON(ЧтениеJSON);
ЧтениеJSON.Закрыть();
// Подготовка соответствия для быстрого поиска. // Подготовка соответствия для быстрого поиска.
Соответствие = Новый Соответствие; Соответствие = Новый Соответствие;
ГосударственныеУЦ = Новый Соответствие; ГосударственныеУЦ = Новый Соответствие;
Для Каждого УЦ Из СписокУЦ Цикл Для Каждого УЦ Из СписокУЦ Цикл
Наименование = УЦ.Наименование; // Строка Наименование = ЭлектроннаяПодписьКлиентСерверЛокализация.ПодготовитьЗначениеПоиска(УЦ.Наименование);
Наименование = ЭлектроннаяПодписьКлиентСерверЛокализация.ПодготовитьПолеПоиска(Наименование); КраткоеНаименование = ЭлектроннаяПодписьКлиентСерверЛокализация.ПодготовитьЗначениеПоиска(УЦ.КраткоеНаименование);
КраткоеНаименование = ЭлектроннаяПодписьКлиентСерверЛокализация.ПодготовитьПолеПоиска(УЦ.КраткоеНаименование);
ПериодыДействияМассив = Новый Массив; ПериодыДействияМассив = Новый Массив;
Для Каждого ТекущийПериод Из УЦ.ПериодыДействия Цикл Для Каждого ТекущийПериод Из УЦ.ПериодыДействия Цикл
@@ -235,6 +231,31 @@
#Область СлужебныеПроцедурыИФункции #Область СлужебныеПроцедурыИФункции
// Прочитать файл периодов действия УЦ.
//
// Параметры:
// ИмяФайла - Строка - Имя файла
//
// Возвращаемое значение:
// Массив из Структура:
// * ОГРН - Строка
// * Наименование - Строка
// * КраткоеНаименование - Строка
// * ПериодыДействия - Массив из Структура
// ** ДатаС - Строка
// ** ДатаПо - Строка
//
Функция ПрочитатьФайлПериодовДействияУЦ(ИмяФайла)
ЧтениеJSON = Новый ЧтениеJSON;
ЧтениеJSON.ОткрытьФайл(ИмяФайла);
СписокУЦ = ПрочитатьJSON(ЧтениеJSON); // Структура
ЧтениеJSON.Закрыть();
Возврат СписокУЦ;
КонецФункции
Функция ДатаПоследнегоИзмененияФайла(РезультатЗагрузки) Функция ДатаПоследнегоИзмененияФайла(РезультатЗагрузки)
Заголовки = Неопределено; Заголовки = Неопределено;
@@ -357,7 +357,7 @@
КонецФункции КонецФункции
Функция ДанныеУдостоверяющегоЦентра(ПоляПоиска) Экспорт Функция ДанныеУдостоверяющегоЦентра(ЗначенияПоиска) Экспорт
Если Метаданные.ОбщиеМодули.Найти("ЭлектроннаяПодписьСлужебныйЛокализация") = Неопределено Тогда Если Метаданные.ОбщиеМодули.Найти("ЭлектроннаяПодписьСлужебныйЛокализация") = Неопределено Тогда
Возврат Неопределено; Возврат Неопределено;
@@ -368,7 +368,7 @@
Возврат Неопределено; Возврат Неопределено;
КонецЕсли; КонецЕсли;
Возврат ЭлектроннаяПодписьКлиентСерверЛокализация.ДанныеУдостоверяющегоЦентра(ПоляПоиска, АккредитованныеУдостоверяющиеЦентры); Возврат ЭлектроннаяПодписьКлиентСерверЛокализация.ДанныеУдостоверяющегоЦентра(ЗначенияПоиска, АккредитованныеУдостоверяющиеЦентры);
КонецФункции КонецФункции
@@ -124,7 +124,7 @@
Результат = Новый Структура; Результат = Новый Структура;
Результат.Вставить("IAMТокен", IAMТокен); Результат.Вставить("IAMТокен", IAMТокен);
Результат.Вставить("СрокДействия", СрокДействия); Результат.Вставить("СрокДействия", УниверсальноеВремя(СрокДействия));
Возврат Результат; Возврат Результат;
+10 -10
View File
@@ -1,17 +1,17 @@
<?xml version="1.0" encoding="UTF-8"?> <?xml version="1.0" encoding="UTF-8"?>
<mdclass:Configuration xmlns:mdclass="http://g5.1c.ru/v8/dt/metadata/mdclass" uuid="26dad4b8-2d02-4d31-8c31-94c0295bd56a"> <mdclass:Configuration xmlns:mdclass="http://g5.1c.ru/v8/dt/metadata/mdclass" uuid="c9997719-b88a-4898-8eeb-bc5f0e030937">
<name>БиблиотекаСтандартныхПодсистем</name> <name>БиблиотекаСтандартныхПодсистем</name>
<synonym> <synonym>
<key>ru</key> <key>ru</key>
<value>Библиотека стандартных подсистем, редакция 3.1</value> <value>Библиотека стандартных подсистем, редакция 3.1</value>
</synonym> </synonym>
<containedObjects classId="9cd510cd-abfc-11d4-9434-004095e12fc7" objectId="7a04ed61-ad6e-431c-8c38-7aabc9100ba6"/> <containedObjects classId="9cd510cd-abfc-11d4-9434-004095e12fc7" objectId="3218c3af-a5d4-4659-806d-7bab18c60016"/>
<containedObjects classId="9fcd25a0-4822-11d4-9414-008048da11f9" objectId="5229106b-41b8-4733-9270-dc53ff5d8cfa"/> <containedObjects classId="9fcd25a0-4822-11d4-9414-008048da11f9" objectId="d360a007-9bb9-4116-ab52-7f91358c14c8"/>
<containedObjects classId="e3687481-0a87-462c-a166-9f34594f9bba" objectId="20ed20f5-46ba-455e-8c15-08c9708b084a"/> <containedObjects classId="e3687481-0a87-462c-a166-9f34594f9bba" objectId="54410f05-a9e2-4ecb-9212-2d789dbc0169"/>
<containedObjects classId="9de14907-ec23-4a07-96f0-85521cb6b53b" objectId="f1324ef0-ae56-4f0b-9d32-7df8979376a5"/> <containedObjects classId="9de14907-ec23-4a07-96f0-85521cb6b53b" objectId="577724c7-68c5-46eb-9dfb-1a695c8031b8"/>
<containedObjects classId="51f2d5d8-ea4d-4064-8892-82951750031e" objectId="3a7f144b-749e-4085-bad6-8dd6ed495b70"/> <containedObjects classId="51f2d5d8-ea4d-4064-8892-82951750031e" objectId="1decf264-403f-422a-b962-42d1eb917eac"/>
<containedObjects classId="e68182ea-4237-4383-967f-90c1e3370bc7" objectId="484ce06d-c2d6-48da-a522-2e887bf45617"/> <containedObjects classId="e68182ea-4237-4383-967f-90c1e3370bc7" objectId="9571e2df-4223-4bc2-820f-e58e9d0a4b70"/>
<containedObjects classId="fb282519-d103-4dd3-bc12-cb271d631dfc" objectId="d8ce7477-eb96-451d-9d86-b5bc4af22148"/> <containedObjects classId="fb282519-d103-4dd3-bc12-cb271d631dfc" objectId="af8d915e-17f3-42f9-9822-236257dc37bb"/>
<defaultRunMode>ManagedApplication</defaultRunMode> <defaultRunMode>ManagedApplication</defaultRunMode>
<usePurposes>PersonalComputer</usePurposes> <usePurposes>PersonalComputer</usePurposes>
<scriptVariant>Russian</scriptVariant> <scriptVariant>Russian</scriptVariant>
@@ -19,7 +19,7 @@
<defaultRoles>Role.АдминистраторСистемы</defaultRoles> <defaultRoles>Role.АдминистраторСистемы</defaultRoles>
<defaultRoles>Role.ИнтерактивноеОткрытиеВнешнихОтчетовИОбработок</defaultRoles> <defaultRoles>Role.ИнтерактивноеОткрытиеВнешнихОтчетовИОбработок</defaultRoles>
<vendor>Фирма &quot;1С&quot;</vendor> <vendor>Фирма &quot;1С&quot;</vendor>
<version>3.1.6.209</version> <version>3.1.6.227</version>
<updateCatalogAddress>http://downloads.v8.1c.ru/tmplts/</updateCatalogAddress> <updateCatalogAddress>http://downloads.v8.1c.ru/tmplts/</updateCatalogAddress>
<includeHelpInContents>true</includeHelpInContents> <includeHelpInContents>true</includeHelpInContents>
<usedMobileApplicationFunctionalities> <usedMobileApplicationFunctionalities>
@@ -1293,7 +1293,7 @@
<xDTOPackages>XDTOPackage.DataArtefacts_Files_1_0_0_1</xDTOPackages> <xDTOPackages>XDTOPackage.DataArtefacts_Files_1_0_0_1</xDTOPackages>
<xDTOPackages>XDTOPackage.DataArtefacts_ServiceUsers_1_0_0_1</xDTOPackages> <xDTOPackages>XDTOPackage.DataArtefacts_ServiceUsers_1_0_0_1</xDTOPackages>
<xDTOPackages>XDTOPackage.DataDump_1_0_2_1</xDTOPackages> <xDTOPackages>XDTOPackage.DataDump_1_0_2_1</xDTOPackages>
<xDTOPackages>XDTOPackage.EnterpriseData_1_10_3</xDTOPackages> <xDTOPackages>XDTOPackage.EnterpriseData_1_10_7</xDTOPackages>
<xDTOPackages>XDTOPackage.EnterpriseData_1_2_3</xDTOPackages> <xDTOPackages>XDTOPackage.EnterpriseData_1_2_3</xDTOPackages>
<xDTOPackages>XDTOPackage.EnterpriseData_1_3_20</xDTOPackages> <xDTOPackages>XDTOPackage.EnterpriseData_1_3_20</xDTOPackages>
<xDTOPackages>XDTOPackage.EnterpriseData_1_4_20</xDTOPackages> <xDTOPackages>XDTOPackage.EnterpriseData_1_4_20</xDTOPackages>
@@ -1 +1 @@
{6,1,1,28e1e811-98d4-4281-aaa4-d7c33b942822,1,29c00a8f-4c35-4ce0-8e5d-afbbe0f7f7af,"3.1.6.209","Фирма ""1С""","БиблиотекаСтандартныхПодсистем",6731,1,0,26dad4b8-2d02-4d31-8c31-94c0295bd56a,26dad4b8-2d02-4d31-8c31-94c0295bd56a,1,0,db4a9ccb-9ef5-4b3c-8577-b6fe5db1b62e,db4a9ccb-9ef5-4b3c-8577-b6fe5db1b62e,1,0,9233322b-dfdb-4c66-91fe-1299292d40a5,9233322b-dfdb-4c66-91fe-1299292d40a5,1,0,7795348b-2f52-47f7-bf00-e11e5e795a43,7795348b-2f52-47f7-bf00-e11e5e795a43,1,0,0421b67e-ed26-491d-ab98-ec59002ed4ce,0421b67e-ed26-491d-ab98-ec59002ed4ce,1,0,bb47ced2-31f9-4870-8633-20b986e53ccc,bb47ced2-31f9-4870-8633-20b986e53ccc,1,0,7d8acec9-f5a9-411e-921c-446ed0dd3332,7d8acec9-f5a9-411e-921c-446ed0dd3332,1,0,739c01a9-1125-45ef-ab4e-8c73af4eeff0,739c01a9-1125-45ef-ab4e-8c73af4eeff0,1,0,cdbd26b1-9583-46e8-adf7-8cc705639892,cdbd26b1-9583-46e8-adf7-8cc705639892,1,0,c0e38c3e-7088-4e35-9d84-2d0ab9655402,c0e38c3e-7088-4e35-9d84-2d0ab9655402,1,0,1098786f-dd24-4cce-b212-be0cb5f01735,1098786f-dd24-4cce-b212-be0cb5f01735,1,0,3c0037f3-4422-4836-b116-8c72e32bdd55,3c0037f3-4422-4836-b116-8c72e32bdd55,1,0,6f7c6c31-206b-4010-bdad-1ad2e304f154,6f7c6c31-206b-4010-bdad-1ad2e304f154,1,0,a8659e53-8c6b-4b0c-9736-fe93a91e4d69,a8659e53-8c6b-4b0c-9736-fe93a91e4d69,1,0,fe9a1d1a-19c0-499f-8e1b-09cadabe882f,fe9a1d1a-19c0-499f-8e1b-09cadabe882f,1,0,5b68d479-7880-44de-84e3-7f578b43f0dc,5b68d479-7880-44de-84e3-7f578b43f0dc,1,0,bf9ca98c-5c95-4cfb-9181-8c1d847f9fbb,bf9ca98c-5c95-4cfb-9181-8c1d847f9fbb,1,0,4cbbdbaf-1f3a-46cd-8c42-28cdcfa32c06,4cbbdbaf-1f3a-46cd-8c42-28cdcfa32c06,1,0,b4629308-42de-4ce8-8591-cf0c2399a9a2,b4629308-42de-4ce8-8591-cf0c2399a9a2,1,0,c7e984ae-1dbb-4041-b18a-bfd0d63a002f,c7e984ae-1dbb-4041-b18a-bfd0d63a002f,1,0,bb0424b8-dfd1-4a27-bd66-9dea3ffc77c4,bb0424b8-dfd1-4a27-bd66-9dea3ffc77c4,1,0,a4ac0a50-ee39-4dc1-b84f-eec8fe485f03,a4ac0a50-ee39-4dc1-b84f-eec8fe485f03,1,0,1861ee4f-fd8c-4afa-8441-c074bf51f67e,1861ee4f-fd8c-4afa-8441-c074bf51f67e,1,0,de7ed8f7-3c02-47e0-aea8-4747ac68a5d5,de7ed8f7-3c02-47e0-aea8-4747ac68a5d5,1,0,b93b8760-6200-40ee-8bdc-875ba80a6155,b93b8760-6200-40ee-8bdc-875ba80a6155,1,0,e8b248d9-9049-456a-9c7d-7a0462cc67ab,e8b248d9-9049-456a-9c7d-7a0462cc67ab,1,0,d4562287-440d-4462-9de2-7097ccbf3764,d4562287-440d-4462-9de2-7097ccbf3764,1,0,1983fe34-c984-4659-ba41-0e94504f8989,1983fe34-c984-4659-ba41-0e94504f8989,1,0,ec797c75-02c5-4cf5-9dd4-26cd46c99519,ec797c75-02c5-4cf5-9dd4-26cd46c99519,1,0,6fccdf59-fc99-4a2b-a144-fffe438a147c,6fccdf59-fc99-4a2b-a144-fffe438a147c,1,0,153e11ac-f898-46a5-98c6-734adb933ca2,153e11ac-f898-46a5-98c6-734adb933ca2,1,0,af8bd73a-d8e8-487d-8f36-d835ab10ea3a,af8bd73a-d8e8-487d-8f36-d835ab10ea3a,1,0,08a413ff-bebd-42e5-8ff3-2115746a0844,08a413ff-bebd-42e5-8ff3-2115746a0844,1,0,f24de2ea-fcda-4052-b90f-e9d84314c4f2,f24de2ea-fcda-4052-b90f-e9d84314c4f2,1,0,ff8ae395-c740-4a30-a048-0d57eef6267f,ff8ae395-c740-4a30-a048-0d57eef6267f,1,0,51d06532-f61a-4ed5-afaa-cc4563633e0c,51d06532-f61a-4ed5-afaa-cc4563633e0c,1,0,0e49d980-581b-459f-a4b0-024e8c97e4c0,0e49d980-581b-459f-a4b0-024e8c97e4c0,1,0,da9b32e6-5b93-45a6-84b2-238d57541e18,da9b32e6-5b93-45a6-84b2-238d57541e18,1,0,e43d69c8-b284-47da-b236-611bc94a15b6,e43d69c8-b284-47da-b236-611bc94a15b6,1,0,31eeaa05-6c49-41fe-b840-1edbad4ccac7,31eeaa05-6c49-41fe-b840-1edbad4ccac7,1,0,842c8662-8f39-405e-9665-cbdabc116159,842c8662-8f39-405e-9665-cbdabc116159,1,0,fca4b033-02c4-4d61-9e51-87783c3cef1a,fca4b033-02c4-4d61-9e51-87783c3cef1a,1,0,396ef757-d7f6-411f-8c4c-1acb1106a009,396ef757-d7f6-411f-8c4c-1acb1106a009,1,0,839e29b1-a0d2-40fa-9f3e-46e66b943358,839e29b1-a0d2-40fa-9f3e-46e66b943358,1,0,c56d2cc7-630a-441b-b23f-ba78c34849bd,c56d2cc7-630a-441b-b23f-ba78c34849bd,1,0,9aecf4f5-46ed-4d1c-a584-cd028e467895,9aecf4f5-46ed-4d1c-a584-cd028e467895,1,0,21d92c2f-6c78-43ce-b1f4-59d7845b5a91,21d92c2f-6c78-43ce-b1f4-59d7845b5a91,1,0,a1c379be-43d3-4e02-83bb-d2e7de2d4ae3,a1c379be-43d3-4e02-83bb-d2e7de2d4ae3,1,0,a1f10624-22e9-4a04-b370-fd085bdd0f67,a1f10624-22e9-4a04-b370-fd085bdd0f67,1,0,2a4b10be-3cd7-4755-905f-7b4d02ff6a22,2a4b10be-3cd7-4755-905f-7b4d02ff6a22,1,0,3cffb795-2a28-4beb-92f4-5813f5994022,3cffb795-2a28-4beb-92f4-5813f5994022,1,0,3323ca68-1382-4710-a933-23fc56588935,3323ca68-1382-4710-a933-23fc56588935,1,0,d6b12775-3255-42b8-88b2-62684f873e7d,d6b12775-3255-42b8-88b2-62684f873e7d,1,0,cc23d903-ccc5-42f4-862f-5e7278c4e346,cc23d903-ccc5-42f4-862f-5e7278c4e346,1,0,98f033e0-fa40-46e0-b51a-87a066749a35,98f033e0-fa40-46e0-b51a-87a066749a35,1,0,e8b4cb2d-1180-4101-954a-4cb5464f198c,e8b4cb2d-1180-4101-954a-4cb5464f198c,1,0,a379287d-1ce8-460d-a503-910e728e28f1,a379287d-1ce8-460d-a503-910e728e28f1,1,0,f765c4ba-c677-42ac-8d0c-43bb485405b9,f765c4ba-c677-42ac-8d0c-43bb485405b9,1,0,2fd1287d-d96d-4480-baf7-8815ae5ffbfb,2fd1287d-d96d-4480-baf7-8815ae5ffbfb,1,0,d8c58e53-b7b9-4426-bdfa-d0816adf8cc1,d8c58e53-b7b9-4426-bdfa-d0816adf8cc1,1,0,4009cb3a-6754-481f-911b-907558cea38a,4009cb3a-6754-481f-911b-907558cea38a,1,0,653a7fd8-91c7-49aa-aa63-45da087e0d0a,653a7fd8-91c7Line truncated {6,1,1,db756f6c-5067-49b6-b5b3-5f0c973d5c57,1,2a441f2d-0fb7-4513-b936-3d91a43811c9,"3.1.6.227","Фирма ""1С""","БиблиотекаСтандартныхПодсистем",6731,1,0,c9997719-b88a-4898-8eeb-bc5f0e030937,c9997719-b88a-4898-8eeb-bc5f0e030937,1,0,db4a9ccb-9ef5-4b3c-8577-b6fe5db1b62e,db4a9ccb-9ef5-4b3c-8577-b6fe5db1b62e,1,0,9233322b-dfdb-4c66-91fe-1299292d40a5,9233322b-dfdb-4c66-91fe-1299292d40a5,1,0,7795348b-2f52-47f7-bf00-e11e5e795a43,7795348b-2f52-47f7-bf00-e11e5e795a43,1,0,0421b67e-ed26-491d-ab98-ec59002ed4ce,0421b67e-ed26-491d-ab98-ec59002ed4ce,1,0,bb47ced2-31f9-4870-8633-20b986e53ccc,bb47ced2-31f9-4870-8633-20b986e53ccc,1,0,7d8acec9-f5a9-411e-921c-446ed0dd3332,7d8acec9-f5a9-411e-921c-446ed0dd3332,1,0,739c01a9-1125-45ef-ab4e-8c73af4eeff0,739c01a9-1125-45ef-ab4e-8c73af4eeff0,1,0,cdbd26b1-9583-46e8-adf7-8cc705639892,cdbd26b1-9583-46e8-adf7-8cc705639892,1,0,c0e38c3e-7088-4e35-9d84-2d0ab9655402,c0e38c3e-7088-4e35-9d84-2d0ab9655402,1,0,1098786f-dd24-4cce-b212-be0cb5f01735,1098786f-dd24-4cce-b212-be0cb5f01735,1,0,3c0037f3-4422-4836-b116-8c72e32bdd55,3c0037f3-4422-4836-b116-8c72e32bdd55,1,0,6f7c6c31-206b-4010-bdad-1ad2e304f154,6f7c6c31-206b-4010-bdad-1ad2e304f154,1,0,a8659e53-8c6b-4b0c-9736-fe93a91e4d69,a8659e53-8c6b-4b0c-9736-fe93a91e4d69,1,0,fe9a1d1a-19c0-499f-8e1b-09cadabe882f,fe9a1d1a-19c0-499f-8e1b-09cadabe882f,1,0,5b68d479-7880-44de-84e3-7f578b43f0dc,5b68d479-7880-44de-84e3-7f578b43f0dc,1,0,bf9ca98c-5c95-4cfb-9181-8c1d847f9fbb,bf9ca98c-5c95-4cfb-9181-8c1d847f9fbb,1,0,4cbbdbaf-1f3a-46cd-8c42-28cdcfa32c06,4cbbdbaf-1f3a-46cd-8c42-28cdcfa32c06,1,0,b4629308-42de-4ce8-8591-cf0c2399a9a2,b4629308-42de-4ce8-8591-cf0c2399a9a2,1,0,c7e984ae-1dbb-4041-b18a-bfd0d63a002f,c7e984ae-1dbb-4041-b18a-bfd0d63a002f,1,0,bb0424b8-dfd1-4a27-bd66-9dea3ffc77c4,bb0424b8-dfd1-4a27-bd66-9dea3ffc77c4,1,0,a4ac0a50-ee39-4dc1-b84f-eec8fe485f03,a4ac0a50-ee39-4dc1-b84f-eec8fe485f03,1,0,1861ee4f-fd8c-4afa-8441-c074bf51f67e,1861ee4f-fd8c-4afa-8441-c074bf51f67e,1,0,de7ed8f7-3c02-47e0-aea8-4747ac68a5d5,de7ed8f7-3c02-47e0-aea8-4747ac68a5d5,1,0,b93b8760-6200-40ee-8bdc-875ba80a6155,b93b8760-6200-40ee-8bdc-875ba80a6155,1,0,e8b248d9-9049-456a-9c7d-7a0462cc67ab,e8b248d9-9049-456a-9c7d-7a0462cc67ab,1,0,d4562287-440d-4462-9de2-7097ccbf3764,d4562287-440d-4462-9de2-7097ccbf3764,1,0,1983fe34-c984-4659-ba41-0e94504f8989,1983fe34-c984-4659-ba41-0e94504f8989,1,0,ec797c75-02c5-4cf5-9dd4-26cd46c99519,ec797c75-02c5-4cf5-9dd4-26cd46c99519,1,0,6fccdf59-fc99-4a2b-a144-fffe438a147c,6fccdf59-fc99-4a2b-a144-fffe438a147c,1,0,153e11ac-f898-46a5-98c6-734adb933ca2,153e11ac-f898-46a5-98c6-734adb933ca2,1,0,af8bd73a-d8e8-487d-8f36-d835ab10ea3a,af8bd73a-d8e8-487d-8f36-d835ab10ea3a,1,0,08a413ff-bebd-42e5-8ff3-2115746a0844,08a413ff-bebd-42e5-8ff3-2115746a0844,1,0,f24de2ea-fcda-4052-b90f-e9d84314c4f2,f24de2ea-fcda-4052-b90f-e9d84314c4f2,1,0,ff8ae395-c740-4a30-a048-0d57eef6267f,ff8ae395-c740-4a30-a048-0d57eef6267f,1,0,51d06532-f61a-4ed5-afaa-cc4563633e0c,51d06532-f61a-4ed5-afaa-cc4563633e0c,1,0,0e49d980-581b-459f-a4b0-024e8c97e4c0,0e49d980-581b-459f-a4b0-024e8c97e4c0,1,0,da9b32e6-5b93-45a6-84b2-238d57541e18,da9b32e6-5b93-45a6-84b2-238d57541e18,1,0,e43d69c8-b284-47da-b236-611bc94a15b6,e43d69c8-b284-47da-b236-611bc94a15b6,1,0,31eeaa05-6c49-41fe-b840-1edbad4ccac7,31eeaa05-6c49-41fe-b840-1edbad4ccac7,1,0,842c8662-8f39-405e-9665-cbdabc116159,842c8662-8f39-405e-9665-cbdabc116159,1,0,fca4b033-02c4-4d61-9e51-87783c3cef1a,fca4b033-02c4-4d61-9e51-87783c3cef1a,1,0,396ef757-d7f6-411f-8c4c-1acb1106a009,396ef757-d7f6-411f-8c4c-1acb1106a009,1,0,839e29b1-a0d2-40fa-9f3e-46e66b943358,839e29b1-a0d2-40fa-9f3e-46e66b943358,1,0,c56d2cc7-630a-441b-b23f-ba78c34849bd,c56d2cc7-630a-441b-b23f-ba78c34849bd,1,0,9aecf4f5-46ed-4d1c-a584-cd028e467895,9aecf4f5-46ed-4d1c-a584-cd028e467895,1,0,21d92c2f-6c78-43ce-b1f4-59d7845b5a91,21d92c2f-6c78-43ce-b1f4-59d7845b5a91,1,0,a1c379be-43d3-4e02-83bb-d2e7de2d4ae3,a1c379be-43d3-4e02-83bb-d2e7de2d4ae3,1,0,a1f10624-22e9-4a04-b370-fd085bdd0f67,a1f10624-22e9-4a04-b370-fd085bdd0f67,1,0,2a4b10be-3cd7-4755-905f-7b4d02ff6a22,2a4b10be-3cd7-4755-905f-7b4d02ff6a22,1,0,3cffb795-2a28-4beb-92f4-5813f5994022,3cffb795-2a28-4beb-92f4-5813f5994022,1,0,3323ca68-1382-4710-a933-23fc56588935,3323ca68-1382-4710-a933-23fc56588935,1,0,d6b12775-3255-42b8-88b2-62684f873e7d,d6b12775-3255-42b8-88b2-62684f873e7d,1,0,cc23d903-ccc5-42f4-862f-5e7278c4e346,cc23d903-ccc5-42f4-862f-5e7278c4e346,1,0,98f033e0-fa40-46e0-b51a-87a066749a35,98f033e0-fa40-46e0-b51a-87a066749a35,1,0,e8b4cb2d-1180-4101-954a-4cb5464f198c,e8b4cb2d-1180-4101-954a-4cb5464f198c,1,0,a379287d-1ce8-460d-a503-910e728e28f1,a379287d-1ce8-460d-a503-910e728e28f1,1,0,f765c4ba-c677-42ac-8d0c-43bb485405b9,f765c4ba-c677-42ac-8d0c-43bb485405b9,1,0,2fd1287d-d96d-4480-baf7-8815ae5ffbfb,2fd1287d-d96d-4480-baf7-8815ae5ffbfb,1,0,d8c58e53-b7b9-4426-bdfa-d0816adf8cc1,d8c58e53-b7b9-4426-bdfa-d0816adf8cc1,1,0,4009cb3a-6754-481f-911b-907558cea38a,4009cb3a-6754-481f-911b-907558cea38a,1,0,653a7fd8-91c7-49aa-aa63-45da087e0d0a,653a7fd8-91c7Line truncated
@@ -16,6 +16,14 @@
Возврат; Возврат;
КонецЕсли; КонецЕсли;
Если Значение < 0 Или Значение > 2 Тогда
ТекстОшибки = НСтр("ru = 'Недопустимое значение константы: %1. Допустимые значения:
|0 - не усовершенствовать подписи автоматически и не показывать команды для ручной обработки в интерфейсе;
|1 - усовершенствовать регламентным заданием;
|2 - усовершенствовать вручную (показывать команды в интерфейсе администратора и в текущих делах)'");
ВызватьИсключение СтроковыеФункцииКлиентСервер.ПодставитьПараметрыВСтроку(ТекстОшибки, Значение);
КонецЕсли;
ЭлектроннаяПодписьСлужебный.ИзменитьРегламентноеЗаданиеПродлениеДостоверностиПодписей(Значение); ЭлектроннаяПодписьСлужебный.ИзменитьРегламентноеЗаданиеПродлениеДостоверностиПодписей(Значение);
КонецПроцедуры КонецПроцедуры
@@ -0,0 +1,57 @@
///////////////////////////////////////////////////////////////////////////////////////////////////////
// Copyright (c) 2022, ООО 1С-Софт
// Все права защищены. Эта программа и сопроводительные материалы предоставляются
// в соответствии с условиями лицензии Attribution 4.0 International (CC BY 4.0)
// Текст лицензии доступен по ссылке:
// https://creativecommons.org/licenses/by/4.0/legalcode
///////////////////////////////////////////////////////////////////////////////////////////////////////
#Если Сервер Или ТолстыйКлиентОбычноеПриложение Или ВнешнееСоединение Тогда
#Область ОбработчикиСобытий
Процедура ПередЗаписью(Отказ)
Если ОбменДанными.Загрузка Тогда
Возврат;
КонецЕсли;
ДополнительныеСвойства.Вставить("ТекущееЗначение", Константы.ЭтоАвтономноеРабочееМесто.Получить());
КонецПроцедуры
Процедура ПриЗаписи(Отказ)
Если ОбменДанными.Загрузка Тогда
Возврат;
КонецЕсли;
СтандартнаяОбработка = Истина;
ПредыдущееЗначение = ДополнительныеСвойства.ТекущееЗначение;
НовоеТекущее = Значение;
ОбменДаннымиПереопределяемый.ПриИзмененииОпцииАвтономногоРежимаРаботы(ПредыдущееЗначение, НовоеТекущее, СтандартнаяОбработка);
Если СтандартнаяОбработка = Ложь Тогда
Возврат;
КонецЕсли;
Если ДополнительныеСвойства.ТекущееЗначение <> Значение Тогда
ОбновитьПовторноИспользуемыеЗначения();
КонецЕсли;
КонецПроцедуры
#КонецОбласти
#Иначе
ВызватьИсключение НСтр("ru = 'Недопустимый вызов объекта на клиенте.'");
#КонецЕсли
@@ -45,7 +45,7 @@
Функция ВерсияКалендарей() Экспорт Функция ВерсияКалендарей() Экспорт
Возврат 36; Возврат 37;
КонецФункции КонецФункции
@@ -57,7 +57,7 @@
Функция ВерсияОбновленияДанныхПроизводственныхКалендарей() Экспорт Функция ВерсияОбновленияДанныхПроизводственныхКалендарей() Экспорт
Возврат "3.1.6.187"; Возврат "3.1.6.215";
КонецФункции КонецФункции
@@ -169,8 +169,7 @@
<Item Calendar="05" Year="2021" DayType="Праздник" Date="20210726" SwapDate=""/> <Item Calendar="05" Year="2021" DayType="Праздник" Date="20210726" SwapDate=""/>
<Item Calendar="05" Year="2021" DayType="Предпраздничный" Date="20210914" SwapDate=""/> <Item Calendar="05" Year="2021" DayType="Предпраздничный" Date="20210914" SwapDate=""/>
<Item Calendar="05" Year="2021" DayType="Праздник" Date="20210915" SwapDate=""/> <Item Calendar="05" Year="2021" DayType="Праздник" Date="20210915" SwapDate=""/>
<Item Calendar="05" Year="2022" DayType="Праздник" Date="20220502" SwapDate="20220504"/> <Item Calendar="05" Year="2022" DayType="Праздник" Date="20220504" SwapDate=""/>
<Item Calendar="05" Year="2022" DayType="Воскресенье" Date="20220504" SwapDate="20220501"/>
<Item Calendar="05" Year="2022" DayType="Предпраздничный" Date="20220708" SwapDate=""/> <Item Calendar="05" Year="2022" DayType="Предпраздничный" Date="20220708" SwapDate=""/>
<Item Calendar="05" Year="2022" DayType="Праздник" Date="20220709" SwapDate="20220711"/> <Item Calendar="05" Year="2022" DayType="Праздник" Date="20220709" SwapDate="20220711"/>
<Item Calendar="05" Year="2022" DayType="Суббота" Date="20220711" SwapDate="20220709"/> <Item Calendar="05" Year="2022" DayType="Суббота" Date="20220711" SwapDate="20220709"/>
@@ -209,8 +208,7 @@
<Item Calendar="06" Year="2021" DayType="Праздник" Date="20210719" SwapDate=""/> <Item Calendar="06" Year="2021" DayType="Праздник" Date="20210719" SwapDate=""/>
<Item Calendar="06" Year="2021" DayType="Праздник" Date="20210720" SwapDate=""/> <Item Calendar="06" Year="2021" DayType="Праздник" Date="20210720" SwapDate=""/>
<Item Calendar="06" Year="2021" DayType="Праздник" Date="20210721" SwapDate=""/> <Item Calendar="06" Year="2021" DayType="Праздник" Date="20210721" SwapDate=""/>
<Item Calendar="06" Year="2022" DayType="Праздник" Date="20220502" SwapDate="20220504"/> <Item Calendar="06" Year="2022" DayType="Праздник" Date="20220504" SwapDate=""/>
<Item Calendar="06" Year="2022" DayType="Воскресенье" Date="20220504" SwapDate="20220501"/>
<Item Calendar="06" Year="2022" DayType="Предпраздничный" Date="20220708" SwapDate=""/> <Item Calendar="06" Year="2022" DayType="Предпраздничный" Date="20220708" SwapDate=""/>
<Item Calendar="06" Year="2022" DayType="Праздник" Date="20220709" SwapDate="20220711"/> <Item Calendar="06" Year="2022" DayType="Праздник" Date="20220709" SwapDate="20220711"/>
<Item Calendar="06" Year="2022" DayType="Суббота" Date="20220711" SwapDate="20220709"/> <Item Calendar="06" Year="2022" DayType="Суббота" Date="20220711" SwapDate="20220709"/>
@@ -584,8 +582,7 @@
<Item Calendar="20" Year="2022" DayType="Предпраздничный" Date="20220415" SwapDate=""/> <Item Calendar="20" Year="2022" DayType="Предпраздничный" Date="20220415" SwapDate=""/>
<Item Calendar="20" Year="2022" DayType="Праздник" Date="20220416" SwapDate="20220418"/> <Item Calendar="20" Year="2022" DayType="Праздник" Date="20220416" SwapDate="20220418"/>
<Item Calendar="20" Year="2022" DayType="Суббота" Date="20220418" SwapDate="20220416"/> <Item Calendar="20" Year="2022" DayType="Суббота" Date="20220418" SwapDate="20220416"/>
<Item Calendar="20" Year="2022" DayType="Праздник" Date="20220502" SwapDate="20220504"/> <Item Calendar="20" Year="2022" DayType="Праздник" Date="20220504" SwapDate=""/>
<Item Calendar="20" Year="2022" DayType="Воскресенье" Date="20220504" SwapDate="20220501"/>
<Item Calendar="20" Year="2022" DayType="Предпраздничный" Date="20220708" SwapDate=""/> <Item Calendar="20" Year="2022" DayType="Предпраздничный" Date="20220708" SwapDate=""/>
<Item Calendar="20" Year="2022" DayType="Праздник" Date="20220709" SwapDate="20220711"/> <Item Calendar="20" Year="2022" DayType="Праздник" Date="20220709" SwapDate="20220711"/>
<Item Calendar="20" Year="2022" DayType="Суббота" Date="20220711" SwapDate="20220709"/> <Item Calendar="20" Year="2022" DayType="Суббота" Date="20220711" SwapDate="20220709"/>
@@ -3466,7 +3466,7 @@
КонецПроцедуры КонецПроцедуры
&НаКлиенте &НаКлиенте
Процедура ОтправитьЗаявлениеПослеПредупреждения(Контекст) Экспорт Процедура ОтправитьЗаявлениеПослеПредупреждения(Результат, ДополнительныеПараметры) Экспорт
ОтправитьЗаявлениеВБумажномВидеПродолжение("Отправить", Неопределено); ОтправитьЗаявлениеВБумажномВидеПродолжение("Отправить", Неопределено);
@@ -1386,6 +1386,13 @@
КонецФункции КонецФункции
// См. ОчередьЗаданийПереопределяемый.ПриОпределенииПсевдонимовОбработчиков.
Процедура ПриОпределенииПсевдонимовОбработчиков(СоответствиеИменПсевдонимам) Экспорт
СоответствиеИменПсевдонимам.Вставить(Метаданные.РегламентныеЗадания.ОбновлениеСостоянияЗаявленияНаВыпускСертификата.ИмяМетода);
КонецПроцедуры
#КонецОбласти #КонецОбласти
Функция КоличествоЗаявленийВРаботе() Экспорт Функция КоличествоЗаявленийВРаботе() Экспорт
@@ -78,6 +78,7 @@
Перем ТипВидСчета; // Тип("ВидСчета") Перем ТипВидСчета; // Тип("ВидСчета")
Перем ТипТип; // Тип("Тип") Перем ТипТип; // Тип("Тип")
Перем ТипСоответствие; // Тип("Соответствие"). Перем ТипСоответствие; // Тип("Соответствие").
Перем ТипОписаниеТипов; // Тип("ОписаниеТипов").
Перем ТипСтрока36; Перем ТипСтрока36;
Перем ТипСтрока255; Перем ТипСтрока255;
@@ -350,8 +351,9 @@
СтекВыгрузкиОбъекта.Добавить(ИсточникСсылка); СтекВыгрузкиОбъекта.Добавить(ИсточникСсылка);
// Циклическая ссылка на объект. // Циклическая ссылка на объект и
ЗапоминатьВыгруженные = ОбъектВыгружаетсяПоСсылкеИзСамогоСебя; // дополнительно учитываем настройку в правилах.
ЗапоминатьВыгруженные = ОбъектВыгружаетсяПоСсылкеИзСамогоСебя И (ПКО.ЗапоминатьВыгруженные);
ВыгруженныеОбъекты = ПКО.Выгруженные; ВыгруженныеОбъекты = ПКО.Выгруженные;
ВсеОбъектыВыгружены = ПКО.ВсеОбъектыВыгружены; ВсеОбъектыВыгружены = ПКО.ВсеОбъектыВыгружены;
@@ -3862,6 +3864,8 @@
Результат = "УникальныйИдентификатор"; Результат = "УникальныйИдентификатор";
ИначеЕсли ТипЗначения = ТипВидДвиженияНакопления Тогда ИначеЕсли ТипЗначения = ТипВидДвиженияНакопления Тогда
Результат = "ВидДвиженияНакопления"; Результат = "ВидДвиженияНакопления";
ИначеЕсли ТипЗначения = ТипОписаниеТипов Тогда // Для конвертации элементов ПВХ
Результат = "ОписаниеТипов";
Иначе Иначе
Менеджер = Менеджеры[ТипЗначения]; Менеджер = Менеджеры[ТипЗначения];
Если Менеджер = Неопределено Тогда Если Менеджер = Неопределено Тогда
@@ -3874,6 +3878,262 @@
КонецФункции КонецФункции
#Область РаботаСОписаниемТипов
Функция ОписаниеТиповВJSON(ЗначениеОписаниеТипов)
МассивТиповОписанияТипов = ЗначениеОписаниеТипов.Типы();
ЭтоСоставнойТип = (МассивТиповОписанияТипов.Количество() > 1);
ЗаписьJSON = Новый ЗаписьJSON;
ЗаписьJSON.УстановитьСтроку();
ЗаписьJSON.ЗаписатьНачалоОбъекта();
ЗаписьJSON.ЗаписатьИмяСвойства("TypeDescription");
ЗаписьJSON.ЗаписатьНачалоМассива();
ЗаписьJSON.ЗаписатьНачалоОбъекта();
ДобавитьСвойствоИЗначениеJSON(ЗаписьJSON, "multiple", Строка(ЭтоСоставнойТип));
ЗаписьJSON.ЗаписатьКонецОбъекта();
Для каждого ТипЗначенияОписанияТипов Из МассивТиповОписанияТипов Цикл
ТипОписания = ТипЗнч(ТипЗначенияОписанияТипов);
Если ТипОписания <> Тип("Тип") Тогда
Продолжить;
КонецЕсли;
ЗаписьJSON.ЗаписатьНачалоОбъекта();
ОбъектМетаданных = Метаданные.НайтиПоТипу(ТипЗначенияОписанияТипов);
Если ОбъектМетаданных = Неопределено Тогда
СериализоватьОписаниеПримитивногоТипа(ЗаписьJSON, ТипЗначенияОписанияТипов, ЗначениеОписаниеТипов);
Иначе
СериализоватьОписаниеСсылочногоТипа(ЗаписьJSON, ОбъектМетаданных);
КонецЕсли;
ЗаписьJSON.ЗаписатьКонецОбъекта();
КонецЦикла;
ЗаписьJSON.ЗаписатьКонецМассива();
ЗаписьJSON.ЗаписатьКонецОбъекта(); // "TypeDescription"
Возврат ЗаписьJSON.Закрыть();
КонецФункции
Функция ОписаниеТиповИзJSON(ТекстJSON)
ОписаниеТиповТипаЗначения = Новый ОписаниеТипов;
Если ПустаяСтрока(ТекстJSON) Тогда
Возврат ОписаниеТиповТипаЗначения;
КонецЕсли;
МассивИменОписанийТипов = Новый Массив;
ЧтениеJSON = Новый ЧтениеJSON;
ЧтениеJSON.УстановитьСтроку(ТекстJSON);
КвалификаторСтрокиДлина = 0;
КвалификаторСтрокиДопустимаяДлина = ДопустимаяДлина.Переменная;
КвалификаторЧислаРазрядность = 0;
КвалификаторЧислаРазрядностьДробнойЧасти = 0;
КвалификаторЧислаДопустимыйЗнак = ДопустимыйЗнак.Любой;
КвалификаторДатыЧастиДаты = ЧастиДаты.ДатаВремя;
Пока ЧтениеJSON.Прочитать() Цикл
Если ЧтениеJSON.ТипТекущегоЗначения = ТипЗначенияJSON.ИмяСвойства Тогда
Если ВРег(ЧтениеJSON.ТекущееЗначение) = ВРег("TypeDescription") Тогда
Продолжить;
ИначеЕсли ВРег(ЧтениеJSON.ТекущееЗначение) = ВРег("multiple") Тогда
ЧтениеJSON.Прочитать();
// Признак того, что это составной тип не используется
ИначеЕсли ВРег(ЧтениеJSON.ТекущееЗначение) = ВРег("typeFeatures") Тогда
ИмяТипаСтрокой = "";
ЧтениеJSON.Прочитать();
ИмяТипаСтрокой = СокрЛП(ЧтениеJSON.ТекущееЗначение);
Если ВРег(ИмяТипаСтрокой) = ВРег("String") Тогда
МассивИменОписанийТипов.Добавить(Тип("Строка"));
ИначеЕсли ВРег(ИмяТипаСтрокой) = ВРег("number") Тогда
МассивИменОписанийТипов.Добавить(Тип("Число"));
ИначеЕсли ВРег(ИмяТипаСтрокой) = ВРег("Date") Тогда
МассивИменОписанийТипов.Добавить(Тип("Дата"));
ИначеЕсли ВРег(ИмяТипаСтрокой) = ВРег("Boolean") Тогда
МассивИменОписанийТипов.Добавить(Тип("Булево"));
Иначе
Попытка
// Обязательно необходимо использовать попытку, т.к. при переименовании объектов,
// например, ДоговорЛизинга (2.4) в ДоговорАренды (2.5) возникает ошибка получения типа.
МассивИменОписанийТипов.Добавить(Тип(ИмяТипаСтрокой));
Исключение
// Необходимо пропустить исключение для типов, которые переименованы или удалены
ТекстКомментария = НСтр("ru ='Метаданные не обнаружены: %1.'", ОбщегоНазначения.КодОсновногоЯзыка());
ТекстКомментария = СтрШаблон(ТекстКомментария, ИмяТипаСтрокой);
ЗаписьЖурналаРегистрацииОбменДанными(ТекстКомментария, УровеньЖурналаРегистрации.Предупреждение);
КонецПопытки;
КонецЕсли;
ИначеЕсли ВРег(ЧтениеJSON.ТекущееЗначение) = ВРег("lengthStr") Тогда
ЧтениеJSON.Прочитать();
КвалификаторСтрокиДлина = Число(ЧтениеJSON.ТекущееЗначение);
ИначеЕсли ВРег(ЧтениеJSON.ТекущееЗначение) = ВРег("typeStr") Тогда
ЧтениеJSON.Прочитать();
Если НЕ ПустаяСтрока(ЧтениеJSON.ТекущееЗначение) Тогда
КвалификаторСтрокиДопустимаяДлина = ДопустимаяДлина[ЧтениеJSON.ТекущееЗначение];
КонецЕсли;
ИначеЕсли ВРег(ЧтениеJSON.ТекущееЗначение) = ВРег("lengthInt") Тогда
ЧтениеJSON.Прочитать();
КвалификаторЧислаРазрядность = Число(ЧтениеJSON.ТекущееЗначение);
ИначеЕсли ВРег(ЧтениеJSON.ТекущееЗначение) = ВРег("decimal") Тогда
ЧтениеJSON.Прочитать();
КвалификаторЧислаРазрядностьДробнойЧасти = Число(ЧтениеJSON.ТекущееЗначение);
ИначеЕсли ВРег(ЧтениеJSON.ТекущееЗначение) = ВРег("sign") Тогда
ЧтениеJSON.Прочитать();
Если ВРег(ЧтениеJSON.ТекущееЗначение) <> ВРег("any") Тогда
КвалификаторЧислаДопустимыйЗнак = ДопустимыйЗнак.Неотрицательный;
КонецЕсли;
ИначеЕсли ВРег(ЧтениеJSON.ТекущееЗначение) = ВРег("typeDate") Тогда
ЧтениеJSON.Прочитать();
Если ВРег(ЧтениеJSON.ТекущееЗначение) = ВРег("Data") Тогда
КвалификаторДатыЧастиДаты = ЧастиДаты.Дата;
ИначеЕсли ВРег(ЧтениеJSON.ТекущееЗначение) = ВРег("Time") Тогда
КвалификаторДатыЧастиДаты = ЧастиДаты.Время;
КонецЕсли;
конецЕсли;
ИначеЕсли ЧтениеJSON.ТипТекущегоЗначения = ТипЗначенияJSON.НачалоОбъекта
ИЛИ ЧтениеJSON.ТипТекущегоЗначения = ТипЗначенияJSON.НачалоМассива
ИЛИ ЧтениеJSON.ТипТекущегоЗначения = ТипЗначенияJSON.КонецОбъекта
ИЛИ ЧтениеJSON.ТипТекущегоЗначения = ТипЗначенияJSON.КонецМассива Тогда
Продолжить;
КонецЕсли;
КонецЦикла;
КвалификаторТипаСтрока = Новый КвалификаторыСтроки(КвалификаторСтрокиДлина, КвалификаторСтрокиДопустимаяДлина);
КвалификаторТипаЧисло = Новый КвалификаторыЧисла(КвалификаторЧислаРазрядность,КвалификаторЧислаРазрядностьДробнойЧасти,КвалификаторЧислаДопустимыйЗнак);
КвалификаторТипаДата = Новый КвалификаторыДаты(КвалификаторДатыЧастиДаты);
Возврат Новый ОписаниеТипов(МассивИменОписанийТипов, , , КвалификаторТипаЧисло, КвалификаторТипаСтрока, КвалификаторТипаДата);
КонецФункции
Процедура ДобавитьСвойствоИЗначениеJSON(ЗаписьJSON, ИмяСвойства, ЗначениеСвойства)
ЗаписьJSON.ЗаписатьИмяСвойства(ИмяСвойства);
ЗаписьJSON.ЗаписатьЗначение(ЗначениеСвойства);
КонецПроцедуры
Процедура СериализоватьОписаниеПримитивногоТипа(ЗаписьJSON, ТипЗначенияОписанияТипов, ЗначениеОписаниеТипов)
Если ТипЗначенияОписанияТипов = Тип("Строка") Тогда
ДобавитьСвойствоИЗначениеJSON(ЗаписьJSON, "typeFeatures", "string");
ДобавитьСвойствоИЗначениеJSON(ЗаписьJSON, "lengthStr", Строка(ЗначениеОписаниеТипов.КвалификаторыСтроки.Длина));
ДобавитьСвойствоИЗначениеJSON(ЗаписьJSON, "typeStr", Строка(ЗначениеОписаниеТипов.КвалификаторыСтроки.ДопустимаяДлина));
ИначеЕсли ТипЗначенияОписанияТипов = Тип("Число") Тогда
ДопустимыйЗнакЧисла = ЗначениеОписаниеТипов.КвалификаторыЧисла.ДопустимыйЗнак;
ДобавитьСвойствоИЗначениеJSON(ЗаписьJSON, "typeFeatures", "number");
ДобавитьСвойствоИЗначениеJSON(ЗаписьJSON, "lengthInt", ЗначениеОписаниеТипов.КвалификаторыЧисла.Разрядность);
ДобавитьСвойствоИЗначениеJSON(ЗаписьJSON, "decimal", ЗначениеОписаниеТипов.КвалификаторыЧисла.РазрядностьДробнойЧасти);
ДобавитьСвойствоИЗначениеJSON(ЗаписьJSON, "sign", ?(ДопустимыйЗнакЧисла = ДопустимыйЗнак.Любой, "any", "non-negative"));
ИначеЕсли ТипЗначенияОписанияТипов = Тип("Дата") Тогда
ОписаниеЧастейДаты = "dateTime";
Если ЗначениеОписаниеТипов.КвалификаторыДаты.ЧастиДаты = ЧастиДаты.Дата Тогда
ОписаниеЧастейДаты = "data";
ИначеЕсли ЗначениеОписаниеТипов.КвалификаторыДаты.ЧастиДаты = ЧастиДаты.Время Тогда
ОписаниеЧастейДаты = "time";
КонецЕсли;
ДобавитьСвойствоИЗначениеJSON(ЗаписьJSON, "typeFeatures", "date");
ДобавитьСвойствоИЗначениеJSON(ЗаписьJSON, "typeDate", ОписаниеЧастейДаты);
ИначеЕсли ТипЗначенияОписанияТипов = Тип("Булево") Тогда
ДобавитьСвойствоИЗначениеJSON(ЗаписьJSON, "typeFeatures", "boolean");
КонецЕсли;
КонецПроцедуры
Процедура СериализоватьОписаниеСсылочногоТипа(ЗаписьJSON, ОбъектМетаданных)
ПолноеИмя = ОбъектМетаданных.ПолноеИмя();
ПолноеИмя = СтрЗаменить(ПолноеИмя, ".", "Ссылка.");
ДобавитьСвойствоИЗначениеJSON(ЗаписьJSON, "typeFeatures", ПолноеИмя);
КонецПроцедуры
#КонецОбласти
#КонецОбласти #КонецОбласти
#КонецОбласти #КонецОбласти
@@ -4071,7 +4331,6 @@
КонецЕсли; КонецЕсли;
КонецЦикла; КонецЦикла;
Если (Тип = ТипСтрока) Если (Тип = ТипСтрока)
ИЛИ (Тип = ТипБулево) ИЛИ (Тип = ТипБулево)
@@ -4084,6 +4343,10 @@
Возврат XMLЗначение(Тип, Значение); Возврат XMLЗначение(Тип, Значение);
ИначеЕсли (Тип = ТипОписаниеТипов) Тогда
Возврат ОписаниеТиповИзJSON(Значение);
Иначе Иначе
Возврат одПолучитьЗначениеПоСтроке(Значение, Тип, ИскатьПоСвойству); Возврат одПолучитьЗначениеПоСтроке(Значение, Тип, ИскатьПоСвойству);
@@ -7688,6 +7951,10 @@
// Нужно определять свойство по соответствию. // Нужно определять свойство по соответствию.
Возврат Неопределено; Возврат Неопределено;
ИначеЕсли СтроковыйТипСвойства = "ОпределениеТипа" Тогда
Возврат Тип("ОписаниеТипов");
КонецЕсли; КонецЕсли;
Возврат Тип(СтроковыйТипСвойства); Возврат Тип(СтроковыйТипСвойства);
@@ -9892,8 +10159,12 @@
СтруктураСвойств = Менеджеры[ТипОбъекта]; СтруктураСвойств = Менеджеры[ТипОбъекта];
ИмяТипаОбъекта = СтруктураСвойств.ИмяТипа; ИмяТипаОбъекта = СтруктураСвойств.ИмяТипа;
// Временный обход: запоминаем в таблицу значений движения документов
// по регистрам Бухгалтерии. После записи документа запишем движения.
//
ТаблицыОтложеннойЗаписиДвижений = Новый Соответствие;
Если ИмяТипаОбъекта = "Документ" Тогда Если ИмяТипаОбъекта = "Документ" Тогда
РежимЗаписи = одАтрибут(ФайлОбмена, ТипСтрока, "РежимЗаписи"); РежимЗаписи = одАтрибут(ФайлОбмена, ТипСтрока, "РежимЗаписи");
@@ -10290,14 +10561,36 @@
Если ИмяУзла = "ТабличнаяЧасть" Тогда Если ИмяУзла = "ТабличнаяЧасть" Тогда
// Загрузка элементов из табличной части. Если ЗагрузкаТабличнойЧастиПоддерживается(Объект, Имя) = Истина Тогда
ЗагрузитьТабличнуюЧасть(Объект, Имя, ИнформацияОТипах, ПараметрыОбъекта, Правило);
// Загрузка элементов из табличной части.
ЗагрузитьТабличнуюЧасть(Объект, Имя, ИнформацияОТипах, ПараметрыОбъекта, Правило);
КонецЕсли;
ИначеЕсли ИмяУзла = "НаборЗаписей" Тогда ИначеЕсли ИмяУзла = "НаборЗаписей" Тогда
// загрузка движений // загрузка движений
ЗагрузитьДвижения(Объект, Имя, Не НеОчищать, ИнформацияОТипах, ПараметрыОбъекта, Правило); ЗагрузитьДвижения(Объект, Имя, Не НеОчищать, ИнформацияОТипах, ПараметрыОбъекта, Правило);
// "Хозрасчетный","Международный"
Если Метаданные.РегистрыБухгалтерии.Найти(Имя) <> Неопределено Тогда
ЗагруженныеДвижения = Объект.Движения[Имя].Выгрузить();
Если ЗагруженныеДвижения.Количество() > 0 Тогда
// Обход ошибки платформы 30178033.
// Порядок субконто в записи регистра бухгалтерии не соответствует порядку,
// который указан в счете учета.
УстранитьОшибкуНазначенияВидаСубконто(ЗагруженныеДвижения);
ТаблицыОтложеннойЗаписиДвижений.Вставить(Имя, ЗагруженныеДвижения);
Объект.Движения[Имя].Очистить();
КонецЕсли;
КонецЕсли;
КонецЕсли; КонецЕсли;
ИначеЕсли (ИмяУзла = "Объект") И (ФайлОбмена.ТипУзла = ТипУзлаXMLКонецЭлемента) Тогда ИначеЕсли (ИмяУзла = "Объект") И (ФайлОбмена.ТипУзла = ТипУзлаXMLКонецЭлемента) Тогда
@@ -10455,6 +10748,8 @@
ЗаписатьОбъектВИБ(Объект, ТипОбъекта, ЗаписатьОбъект, ОтправкаНазад); ЗаписатьОбъектВИБ(Объект, ТипОбъекта, ЗаписатьОбъект, ОтправкаНазад);
ЗаписатьРегистрыБухгалтерии(Объект.Ссылка, ТаблицыОтложеннойЗаписиДвижений);
Если ЗаписатьОбъект Если ЗаписатьОбъект
И Объект <> Неопределено И Объект <> Неопределено
И Объект.Ссылка <> Неопределено Тогда И Объект.Ссылка <> Неопределено Тогда
@@ -10621,6 +10916,28 @@
КонецФункции КонецФункции
Функция ЗагрузкаТабличнойЧастиПоддерживается(Объект, ИмяТабличнойЧасти)
МетаданныеОбъекта = Объект.Метаданные();
Если НЕ Метаданные.Справочники.Содержит(МетаданныеОбъекта)
И НЕ Метаданные.ПланыВидовХарактеристик.Содержит(МетаданныеОбъекта) Тогда
Возврат Истина;
КонецЕсли;
ДляЭлемента = Метаданные.СвойстваОбъектов.ИспользованиеРеквизита.ДляЭлемента;
Если Объект.ЭтоГруппа
И МетаданныеОбъекта.ТабличныеЧасти[ИмяТабличнойЧасти].Использование = ДляЭлемента Тогда
Возврат Ложь;
КонецЕсли;
Возврат Истина;
КонецФункции
Процедура ВыполнитьПереходНаНовыйОбмен() Процедура ВыполнитьПереходНаНовыйОбмен()
ИмяПланаОбмена = ИмяПланаОбмена(); ИмяПланаОбмена = ИмяПланаОбмена();
@@ -10640,6 +10957,143 @@
ВызватьИсключение НСтр("ru = 'Синхронизация данных по старой настройке отменена.'"); ВызватьИсключение НСтр("ru = 'Синхронизация данных по старой настройке отменена.'");
КонецПроцедуры КонецПроцедуры
Процедура ЗаписатьРегистрыБухгалтерии(Регистратор, ТаблицыОтложеннойЗаписиДвижений)
Если НЕ ЗначениеЗаполнено(Регистратор.Ссылка) Тогда
Возврат;
КонецЕсли;
Для каждого ОписаниеТаблицыДвижений Из ТаблицыОтложеннойЗаписиДвижений Цикл
ИмяРегистра = ОписаниеТаблицыДвижений.Ключ;
ТаблицаДвижений = ОписаниеТаблицыДвижений.Значение;
Если ТипЗнч(ТаблицаДвижений) <> Тип("ТаблицаЗначений")
ИЛИ ТаблицаДвижений.Количество() < 1 Тогда
Продолжить;
КонецЕсли;
НаборЗаписейРегистра = РегистрыБухгалтерии[ИмяРегистра].СоздатьНаборЗаписей();
НаборЗаписейРегистра.Отбор.Регистратор.Установить(Регистратор, Истина);
Для каждого СтрокаТаблицы Из ТаблицаДвижений Цикл
ЗаписьНабора = НаборЗаписейРегистра.Добавить();
ЗаполнитьЗначенияСвойств(ЗаписьНабора, СтрокаТаблицы);
НомерСубконтоДт = 0;
Для каждого ОписаниеВидаСубконтоДт Из ЗаписьНабора.СчетДт.ВидыСубконто Цикл
НомерСубконтоДт = НомерСубконтоДт + 1;
ЗаписьНабора.СубконтоДт[ОписаниеВидаСубконтоДт.ВидСубконто] = СтрокаТаблицы["СубконтоДт" + Строка(НомерСубконтоДт)];
КонецЦикла;
НомерСубконтоКт = 0;
Для каждого ОписаниеВидаСубконтоКт Из ЗаписьНабора.СчетКт.ВидыСубконто Цикл
НомерСубконтоКт = НомерСубконтоКт + 1;
ЗаписьНабора.СубконтоКт[ОписаниеВидаСубконтоКт.ВидСубконто] = СтрокаТаблицы["СубконтоКт" + Строка(НомерСубконтоКт)];
КонецЦикла;
КонецЦикла;
ОбновлениеИнформационнойБазы.ЗаписатьНаборЗаписей(НаборЗаписейРегистра, Истина, Ложь, Ложь);
КонецЦикла;
КонецПроцедуры
Процедура ПроверитьКоллекциюСубконто(СтрокаТаблицы, ЗначенияДоИсправления, Направление, ЕстьОшибка)
КоллекцияВидовСубконто = СтрокаТаблицы["Счет" + Направление].ВидыСубконто;
Для каждого ВидСубконтоИзКоллекции Из КоллекцияВидовСубконто Цикл
ТипСубконто = Направление + Строка(ВидСубконтоИзКоллекции.НомерСтроки);
ИмяСубконто = "Субконто" + ТипСубконто;
ИмяВидыСубконто = "ВидСубконто" + ТипСубконто;
ОписаниеСубконто = Новый Структура;
ОписаниеСубконто.Вставить("ЕстьОшибка", Ложь);
ОписаниеСубконто.Вставить("Субконто", СтрокаТаблицы[ИмяСубконто]);
ОписаниеСубконто.Вставить("ВидСубконто", СтрокаТаблицы[ИмяВидыСубконто]);
Если СтрокаТаблицы[ИмяВидыСубконто] <> ВидСубконтоИзКоллекции.ВидСубконто Тогда
ОписаниеСубконто.ЕстьОшибка = Истина;
СтрокаТаблицы[ИмяСубконто] = Неопределено;
СтрокаТаблицы[ИмяВидыСубконто] = ВидСубконтоИзКоллекции.ВидСубконто;
ЕстьОшибка = Истина;
КонецЕсли;
ЗначенияДоИсправления.Вставить(ТипСубконто, ОписаниеСубконто);
КонецЦикла;
КонецПроцедуры
Процедура УстранитьОшибкуНазначенияВидаСубконто(ЗагруженныеДвижения)
Для каждого СтрокаТаблицы Из ЗагруженныеДвижения Цикл
ЕстьОшибка = Ложь;
ЗначенияДоИсправления = Новый Соответствие;
ПроверитьКоллекциюСубконто(СтрокаТаблицы, ЗначенияДоИсправления, "Дт", ЕстьОшибка);
ПроверитьКоллекциюСубконто(СтрокаТаблицы, ЗначенияДоИсправления, "Кт", ЕстьОшибка);
Если ЕстьОшибка Тогда
Для каждого ЭлементСоответствия Из ЗначенияДоИсправления Цикл
ОписаниеСубконто = ЭлементСоответствия.Значение;
Если НЕ ОписаниеСубконто.ЕстьОшибка Тогда
Продолжить;
КонецЕсли;
ИмяВидаСубконтоИсправляемого = "ВидСубконто" + ЭлементСоответствия.Ключ;
Для каждого АльтернативныйЭлемент Из ЗначенияДоИсправления Цикл
АльтернативноеОписание = АльтернативныйЭлемент.Значение;
Если НЕ АльтернативноеОписание.ЕстьОшибка
ИЛИ ЭлементСоответствия.Ключ = АльтернативныйЭлемент.Ключ Тогда
Продолжить;
КонецЕсли;
ТипЗначенияСубконто = СтрокаТаблицы[ИмяВидаСубконтоИсправляемого].ТипЗначения;
Если СтрокаТаблицы[ИмяВидаСубконтоИсправляемого] = АльтернативноеОписание.ВидСубконто
И ТипЗначенияСубконто.СодержитТип(ТипЗнч(АльтернативноеОписание["Субконто"])) Тогда
СтрокаТаблицы["Субконто" + ЭлементСоответствия.Ключ] = АльтернативноеОписание["Субконто"];
Прервать;
КонецЕсли;
КонецЦикла;
КонецЦикла;
КонецЕсли;
КонецЦикла;
КонецПроцедуры
#КонецОбласти #КонецОбласти
#Область ПроцедурыВыгрузкиДанных #Область ПроцедурыВыгрузкиДанных
@@ -11239,9 +11693,16 @@
Попытка Попытка
Значение = ОбъектДляПолученияДанных[ИмяСвойства]; Значение = ОбъектДляПолученияДанных[ИмяСвойства];
// Для ОписанияТипов дополнительно сериализуем значением в JSON
Если ПКС.ТипИсточника = "ОпределениеТипа" Тогда
Значение = ОписаниеТиповВJSON(Значение);
КонецЕсли
Исключение Исключение
Если КодОшибки <> 14 Тогда Если КодОшибки <> 14 Тогда
@@ -11672,14 +12133,18 @@
Иначе Иначе
СвойствоУстановлено = Ложь; СвойствоУстановлено = Ложь;
КонецЕсли; КонецЕсли;
ИначеЕсли ТипЗначения = ТипВидДвиженияНакопления Тогда
Значение = Строка(Значение);
Иначе ИначеЕсли ТипЗначения = ТипВидДвиженияНакопления Тогда
Значение = Строка(Значение);
ИначеЕсли ТипЗначения = ТипОписаниеТипов Тогда
Значение = Строка(Значение);
Иначе
СвойствоУстановлено = Ложь; СвойствоУстановлено = Ложь;
@@ -14114,6 +14579,7 @@
ТипВидСчета = Тип("ВидСчета"); ТипВидСчета = Тип("ВидСчета");
ТипТип = Тип("Тип"); ТипТип = Тип("Тип");
ТипСоответствие = Тип("Соответствие"); ТипСоответствие = Тип("Соответствие");
ТипОписаниеТипов = Тип("ОписаниеТипов");
ТипСтрока36 = Новый ОписаниеТипов("Строка",, Новый КвалификаторыСтроки(36)); ТипСтрока36 = Новый ОписаниеТипов("Строка",, Новый КвалификаторыСтроки(36));
ТипСтрока255 = Новый ОписаниеТипов("Строка",, Новый КвалификаторыСтроки(255)); ТипСтрока255 = Новый ОписаниеТипов("Строка",, Новый КвалификаторыСтроки(255));
@@ -15471,7 +15937,7 @@
Возврат; Возврат;
ИначеЕсли ПравилаОбмена.ТипУзла = ТипУзлаXMLНачалоЭлемента Тогда ИначеЕсли ПравилаОбмена.ТипУзла = ТипУзлаXMLНачалоЭлемента Тогда
// это новый элемент // это новый элемент
НовоеСоответствие = Новый Соответствие; НовоеСоответствие = Новый Соответствие;
СоответствиеТипа.Вставить(ИмяУзла, НовоеСоответствие); СоответствиеТипа.Вставить(ИмяУзла, НовоеСоответствие);
@@ -15480,9 +15946,20 @@
ПравилаОбмена.Прочитать(); ПравилаОбмена.Прочитать();
Иначе Иначе
СоответствиеТипа.Вставить(ИмяУзла, Тип(ПравилаОбмена.Значение));
Если ПравилаОбмена.Значение = "ОпределениеТипа" Тогда
СоответствиеТипа.Вставить(ИмяУзла, Тип("ОписаниеТипов")); // Необходимо привести JSON к ОписаниеТипов
Иначе
СоответствиеТипа.Вставить(ИмяУзла, Тип(ПравилаОбмена.Значение));
КонецЕсли;
ПравилаОбмена.Прочитать(); ПравилаОбмена.Прочитать();
КонецЕсли;
КонецЕсли;
ЗагрузитьСоответствиеТиповДляОдногоТипа(ПравилаОбмена, СоответствиеТипа); ЗагрузитьСоответствиеТиповДляОдногоТипа(ПравилаОбмена, СоответствиеТипа);
@@ -15512,11 +15989,22 @@
ЗагрузитьОдинТипДанных(ПравилаОбмена, НовоеСоответствие, ПравилаОбмена.ЛокальноеИмя); ЗагрузитьОдинТипДанных(ПравилаОбмена, НовоеСоответствие, ПравилаОбмена.ЛокальноеИмя);
Иначе Иначе
СоответствиеТипа.Вставить(ИмяУзла, Тип(ПравилаОбмена.Значение));
Если ПравилаОбмена.Значение = "ОпределениеТипа" Тогда
СоответствиеТипа.Вставить(ИмяУзла, Тип("ОписаниеТипов")); // Необходимо привести JSON к ОписаниеТипов
Иначе
СоответствиеТипа.Вставить(ИмяУзла, Тип(ПравилаОбмена.Значение));
КонецЕсли;
ПравилаОбмена.Прочитать(); ПравилаОбмена.Прочитать();
КонецЕсли;
КонецЕсли;
КонецЦикла; КонецЦикла;
КонецПроцедуры КонецПроцедуры
@@ -0,0 +1,65 @@
<!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="__STYLE__"></link><meta name="GENERATOR" content="MSHTML 9.00.8112.16421"></meta><style>H1 {
TEXT-ALIGN: left; FONT-FAMILY: Arial, Tahoma; COLOR: #003366; FONT-SIZE: 18pt; FONT-WEIGHT: bold
}
.Programtext {
FONT-FAMILY: Courier; COLOR: #000080; FONT-SIZE: 10pt
}
H3 {
TEXT-ALIGN: left; FONT-FAMILY: Arial, Tahoma; FONT-SIZE: 11pt; FONT-WEIGHT: bold
}
H4 {
TEXT-ALIGN: left; FONT-FAMILY: Arial, Tahoma; FONT-SIZE: 10pt; FONT-WEIGHT: bold
}
BODY {
FONT-FAMILY: Verdana; FONT-SIZE: 8pt
}
</style></head><body>
<p style="margin: 0cm 0cm 8pt; line-height: normal; mso-margin-top-alt: auto; mso-margin-bottom-alt: auto; mso-outline-level: 1;"><b><span style="font-family: &quot;Times New Roman&quot;,serif; font-size: 24pt; mso-fareast-font-family: &quot;Times New Roman&quot;; mso-font-kerning: 18.0pt; mso-fareast-language: RU;">Порядок обновления на новую
версию 1С:Предприятия 8.3</span></b></p>
<p style="margin: 0cm 0cm 8pt; line-height: normal; mso-margin-top-alt: auto; mso-margin-bottom-alt: auto; mso-outline-level: 3;"><b><span style="font-family: &quot;Times New Roman&quot;,serif; font-size: 13.5pt; mso-fareast-font-family: &quot;Times New Roman&quot;; mso-fareast-language: RU;">1. Скачать дистрибутив 1С:Предприятия 8.3</span></b></p>
<p style="margin: 0cm 0cm 8pt; line-height: normal; mso-margin-top-alt: auto; mso-margin-bottom-alt: auto;"><span style="font-family: &quot;Times New Roman&quot;,serif; font-size: 12pt; mso-fareast-font-family: &quot;Times New Roman&quot;; mso-fareast-language: RU;">Скачайте
дистрибутив последней версии <a href="https://users.v8.1c.ru/distribution/project/Platform83"><span style="color: blue;">платформы 1С:Предприятия 8.3</span></a> в сервисе <b>1С:Обновление
программ</b>. При необходимости укажите логин и пароль.</span></p>
<p style="margin: 0cm 0cm 8pt; line-height: normal; mso-margin-top-alt: auto; mso-margin-bottom-alt: auto;"><span style="font-family: &quot;Times New Roman&quot;,serif; font-size: 12pt; mso-fareast-font-family: &quot;Times New Roman&quot;; mso-fareast-language: RU;">Далее
следует выбрать актуальную (последнюю официально опубликованную) версию <b>Технологической
платформы 8.3.</b></span></p>
<p style="margin: 0cm 0cm 8pt; line-height: normal; mso-margin-top-alt: auto; mso-margin-bottom-alt: auto;"><span style="font-family: &quot;Times New Roman&quot;,serif; font-size: 12pt; mso-fareast-font-family: &quot;Times New Roman&quot;; mso-fareast-language: RU;">Для
скачивания файла нажмите на гиперссылку, которая соответствует вашей
операционной системе:</span></p>
<ul type="disc"><li style="margin: 0cm 0cm 8pt; color: rgb(0, 0, 0); line-height: normal; font-family: &quot;Times New Roman&quot;,serif; font-size: 12pt; font-style: normal; font-weight: normal; mso-margin-top-alt: auto; mso-margin-bottom-alt: auto; mso-list: l0 level1 lfo1; tab-stops: list 36.0pt;"><span style="font-family: &quot;Times New Roman&quot;,serif; font-size: 12pt; mso-fareast-font-family: &quot;Times New Roman&quot;; mso-fareast-language: RU;">Технологическая платформа
1С:Предприятия для Windows</span></li>
<li style="margin: 0cm 0cm 8pt; color: rgb(0, 0, 0); line-height: normal; font-family: &quot;Times New Roman&quot;,serif; font-size: 12pt; font-style: normal; font-weight: normal; mso-margin-top-alt: auto; mso-margin-bottom-alt: auto; mso-list: l0 level1 lfo1; tab-stops: list 36.0pt;"><span style="font-family: &quot;Times New Roman&quot;,serif; font-size: 12pt; mso-fareast-font-family: &quot;Times New Roman&quot;; mso-fareast-language: RU;">Технологическая платформа
1С:Предприятия для Linux</span></li>
<li style="margin: 0cm 0cm 8pt; color: rgb(0, 0, 0); line-height: normal; font-family: &quot;Times New Roman&quot;,serif; font-size: 12pt; font-style: normal; font-weight: normal; mso-margin-top-alt: auto; mso-margin-bottom-alt: auto; mso-list: l0 level1 lfo1; tab-stops: list 36.0pt;"><span style="font-family: &quot;Times New Roman&quot;,serif; font-size: 12pt; mso-fareast-font-family: &quot;Times New Roman&quot;; mso-fareast-language: RU;">Клиент 1С:Предприятия для macOS</span></li>
</ul><p style="margin: 0cm 0cm 8pt; line-height: normal; mso-margin-top-alt: auto; mso-margin-bottom-alt: auto;"><span style="font-family: &quot;Times New Roman&quot;,serif; font-size: 12pt; mso-fareast-font-family: &quot;Times New Roman&quot;; mso-fareast-language: RU;">Далее по
ссылке <b>Скачать дистрибутив</b> откроется диалог сохранения файла на
компьютер. Запомните папку, в которую его сохранили.</span></p>
<p style="margin: 0cm 0cm 8pt; line-height: normal; mso-margin-top-alt: auto; mso-margin-bottom-alt: auto; mso-outline-level: 3;"><b><span style="font-family: &quot;Times New Roman&quot;,serif; font-size: 13.5pt; mso-fareast-font-family: &quot;Times New Roman&quot;; mso-fareast-language: RU;">2. Установить новую версию 1С:Предприятия 8.3</span></b></p>
<p style="margin: 0cm 0cm 8pt; line-height: normal; mso-margin-top-alt: auto; mso-margin-bottom-alt: auto;"><span style="font-family: &quot;Times New Roman&quot;,serif; font-size: 12pt; mso-fareast-font-family: &quot;Times New Roman&quot;; mso-fareast-language: RU;">Если у вас
операционная система Microsoft Windows, то обратите внимание: для
установки программы пользователь Windows должен обладать правами
администратора. Распакуйте загруженный файл с архивом. В папке, в которую
распаковали архив, запустите файл <b>Setup.exe</b> и  следуйте инструкциям
программы-установщика.</span></p>
<p style="margin: 0cm 0cm 8pt; line-height: normal; mso-margin-top-alt: auto; mso-margin-bottom-alt: auto; mso-outline-level: 3;"><b><span style="font-family: &quot;Times New Roman&quot;,serif; font-size: 13.5pt; mso-fareast-font-family: &quot;Times New Roman&quot;; mso-fareast-language: RU;">3. Создать резервную копию информационной базы</span></b></p>
<p style="margin: 0cm 0cm 8pt; line-height: normal; mso-margin-top-alt: auto; mso-margin-bottom-alt: auto;"><span style="font-family: &quot;Times New Roman&quot;,serif; font-size: 12pt; mso-fareast-font-family: &quot;Times New Roman&quot;; mso-fareast-language: RU;">Запустите
1С: Предприятие<b>.</b> В открывшемся окне <b>Запуск 1С: Предприятия</b> определите
и откройте папку, в которой находится нужная информационная база. Затем
скопируйте файл 1Cv8.1CD в безопасное место.</span></p>
<p style="margin: 0cm 0cm 8pt; line-height: normal; mso-margin-top-alt: auto; mso-margin-bottom-alt: auto; mso-outline-level: 3;"><b><span style="font-family: &quot;Times New Roman&quot;,serif; font-size: 13.5pt; mso-fareast-font-family: &quot;Times New Roman&quot;; mso-fareast-language: RU;">4. Начало работы с новой версией платформы</span></b></p>
<p style="margin: 0cm 0cm 8pt; line-height: normal; mso-margin-top-alt: auto; mso-margin-bottom-alt: auto;"><span style="font-family: &quot;Times New Roman&quot;,serif; font-size: 12pt; mso-fareast-font-family: &quot;Times New Roman&quot;; mso-fareast-language: RU;">По кнопке <b>1С:Предприятие</b>
можно начать работы с выбранной информационной базой на новой версии платформы.</span></p><p style="margin: 0cm 0cm 8pt;"><br></p>
</body></html>
@@ -1,40 +0,0 @@
<!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="__STYLE__"></link><meta name="GENERATOR" content="MSHTML 9.00.8112.16421"></meta><style>H1 {
TEXT-ALIGN: left; FONT-FAMILY: Arial, Tahoma; COLOR: #003366; FONT-SIZE: 18pt; FONT-WEIGHT: bold
}
.Programtext {
FONT-FAMILY: Courier; COLOR: #000080; FONT-SIZE: 10pt
}
H3 {
TEXT-ALIGN: left; FONT-FAMILY: Arial, Tahoma; FONT-SIZE: 11pt; FONT-WEIGHT: bold
}
H4 {
TEXT-ALIGN: left; FONT-FAMILY: Arial, Tahoma; FONT-SIZE: 10pt; FONT-WEIGHT: bold
}
BODY {
FONT-FAMILY: Verdana; FONT-SIZE: 8pt
}
</style></head><body>
<h1>Порядок обновления на новую версию 1С:Предприятия 8.3</h1>
<h3>1. Скачать дистрибутив 1С:Предприятия 8.3</h3>
<p>Скачайте дистрибутив последней версии <a href="https://users.v8.1c.ru/distribution/project/Platform83">платформы 1С:Предприятия 8.3</a> в сервисе "1С:Обновление программ" на портале 1С:ИТС (<a href="https://portal.1c.ru/">portal.1c.ru</a>). При необходимости </p>
<p>укажите логин и пароль.</p>
<p><img src="_files/pic02.jpg"></img></p>
<p>Далее следует выбрать актуальную (последнюю официально опубликованную) версию технологической платформы</p>
<p><img src="_files/pic03.jpg"></img></p>
<p>Для скачивания файла перейдите в раздел «Технологическая платформа 1С:Предприятия для Windows»:</p>
<p><img src="_files/pic04.jpg"></img></p>
<p>Далее, по ссылке "Скачать дистрибутив" откроется диалог сохранения файла на диск. Запомните папку, в которую его сохранили:</p>
<p><img src="_files/pic05_2.jpg"></img></p>
<p></p>
<h3>2. Установить новую версию 1С:Предприятия 8.3</h3>
<p>Обратите внимание: для установки программы пользователь Windows должен обладать правами администратора! Распакуйте загруженный файл с архивом. В папке, в которую распаковали архив, найдите и запустите файл Setup.exe:</p>
<p><img src="_files/pic06.jpg"></img></p>
<p>Далее следуйте инструкциям программы-установщика:</p>
<p><img src="_files/pic07.jpg"></img></p>
<p></p>
<h3>3. Создать резервную копию информационной базы</h3>
<p>Определите и откройте каталог, в котором находится нужная база данных:</p>
<p><img src="_files/pic08_2.jpg"></img></p>
<p><img src="_files/pic09.jpg"></img></p>
<h3>4. Начало работы с новой версией платформы</h3>
<p>По кнопке "1С:Предприятие" можно начать работы с выбранной информационной базой на новой версии платформы.</p></body></html>
@@ -29,10 +29,10 @@
<usePurposes>MobileDevice</usePurposes> <usePurposes>MobileDevice</usePurposes>
</forms> </forms>
<templates uuid="5c4ecf15-b92d-4610-b2bb-f2331c5c7528"> <templates uuid="5c4ecf15-b92d-4610-b2bb-f2331c5c7528">
<name>ПорядокОбновленияДляФайловойБазы_ru</name> <name>ПорядокОбновленияДляФайловойБазы</name>
<synonym> <synonym>
<key>ru</key> <key>ru</key>
<value>Порядок обновления для файловой базы ru</value> <value>Порядок обновления для файловой базы</value>
</synonym> </synonym>
<templateType>HTMLDocument</templateType> <templateType>HTMLDocument</templateType>
</templates> </templates>
@@ -2160,7 +2160,11 @@
КонецЕсли; КонецЕсли;
// Проверим максимальный номер сборки из обработчиков модуля // Проверим максимальный номер сборки из обработчиков модуля
НомераМаксимум = СтрРазделить(Максимум.Версия, "."); Если ЗначениеЗаполнено(Максимум.Версия) Тогда
НомераМаксимум = СтрРазделить(Максимум.Версия, ".");
Иначе
НомераМаксимум = СтрРазделить(НоваяВерсияКонфигурации, ".");
КонецЕсли;
ПерваяЦифраМаксимум = НомераМаксимум[0]; ПерваяЦифраМаксимум = НомераМаксимум[0];
НомераМаксимум.Удалить(0); НомераМаксимум.Удалить(0);
Максимум3Последних = Обработка.ВерсияЧислом(НомераМаксимум); Максимум3Последних = Обработка.ВерсияЧислом(НомераМаксимум);
@@ -8034,6 +8034,19 @@
<common>true</common> <common>true</common>
</edit> </edit>
</attributes> </attributes>
<attributes>
<name>ОтменаСопоставления</name>
<id>65</id>
<valueType>
<types>Boolean</types>
</valueType>
<view>
<common>true</common>
</view>
<edit>
<common>true</common>
</edit>
</attributes>
<formCommands> <formCommands>
<name>ОбновитьИнформациюСопоставленияПолностью</name> <name>ОбновитьИнформациюСопоставленияПолностью</name>
<title> <title>
@@ -150,7 +150,7 @@
ЗавершитьВыполнениеДлительнойОперации(ИдентификаторЗадания); ЗавершитьВыполнениеДлительнойОперации(ИдентификаторЗадания);
КонецЕсли; КонецЕсли;
Если ПолученоСообщениеДляСопоставленияДанных Тогда Если ПолученоСообщениеДляСопоставленияДанных И Не ОтменаСопоставления Тогда
Если (ЗакончитьСопоставлениеДанных И Не ПропуститьПолучениеДанных) Если (ЗакончитьСопоставлениеДанных И Не ПропуститьПолучениеДанных)
Или (РезультатЗагрузкиДанных = "Предупреждение_СообщениеОбменаБылоРанееПринято") Или (РезультатЗагрузкиДанных = "Предупреждение_СообщениеОбменаБылоРанееПринято")
Или УдалитьСообщениеДляСопоставления Тогда Или УдалитьСообщениеДляСопоставления Тогда
@@ -310,6 +310,7 @@
&НаКлиенте &НаКлиенте
Процедура КомандаОтмена(Команда) Процедура КомандаОтмена(Команда)
ОтменаСопоставления = Истина;
Закрыть(); Закрыть();
КонецПроцедуры КонецПроцедуры
@@ -603,10 +603,6 @@
<userVisible> <userVisible>
<common>true</common> <common>true</common>
</userVisible> </userVisible>
<title>
<key>ru</key>
<value>Панель основная</value>
</title>
<extendedTooltip> <extendedTooltip>
<name>ПанельОсновнаяExtendedTooltip</name> <name>ПанельОсновнаяExtendedTooltip</name>
<id>103</id> <id>103</id>
@@ -627,10 +623,6 @@
<userVisible> <userVisible>
<common>true</common> <common>true</common>
</userVisible> </userVisible>
<title>
<key>ru</key>
<value>Компоновки</value>
</title>
<extendedTooltip> <extendedTooltip>
<name>ГруппаКомпоновкиExtendedTooltip</name> <name>ГруппаКомпоновкиExtendedTooltip</name>
<id>95</id> <id>95</id>
@@ -693,10 +685,6 @@
<userVisible> <userVisible>
<common>true</common> <common>true</common>
</userVisible> </userVisible>
<title>
<key>ru</key>
<value>Командная панель слева 1</value>
</title>
<extendedTooltip> <extendedTooltip>
<name>КоманднаяПанельСлева1РасширеннаяПодсказка</name> <name>КоманднаяПанельСлева1РасширеннаяПодсказка</name>
<id>151</id> <id>151</id>
@@ -773,10 +761,6 @@
<userVisible> <userVisible>
<common>true</common> <common>true</common>
</userVisible> </userVisible>
<title>
<key>ru</key>
<value>Командная панель справа 1</value>
</title>
<enableContentChange>true</enableContentChange> <enableContentChange>true</enableContentChange>
<extendedTooltip> <extendedTooltip>
<name>КоманднаяПанельСправа1РасширеннаяПодсказка</name> <name>КоманднаяПанельСправа1РасширеннаяПодсказка</name>
@@ -830,10 +814,6 @@
<userVisible> <userVisible>
<common>true</common> <common>true</common>
</userVisible> </userVisible>
<title>
<key>ru</key>
<value>Командная панель слева 4</value>
</title>
<extendedTooltip> <extendedTooltip>
<name>КоманднаяПанельСлева4РасширеннаяПодсказка</name> <name>КоманднаяПанельСлева4РасширеннаяПодсказка</name>
<id>166</id> <id>166</id>
@@ -883,10 +863,6 @@
<userVisible> <userVisible>
<common>true</common> <common>true</common>
</userVisible> </userVisible>
<title>
<key>ru</key>
<value>Командная панель справа 4</value>
</title>
<enableContentChange>true</enableContentChange> <enableContentChange>true</enableContentChange>
<extendedTooltip> <extendedTooltip>
<name>КоманднаяПанельСправа4РасширеннаяПодсказка</name> <name>КоманднаяПанельСправа4РасширеннаяПодсказка</name>
@@ -966,10 +942,6 @@
<userVisible> <userVisible>
<common>true</common> <common>true</common>
</userVisible> </userVisible>
<title>
<key>ru</key>
<value>Командная панель слева 2</value>
</title>
<extendedTooltip> <extendedTooltip>
<name>КоманднаяПанельСлева2РасширеннаяПодсказка</name> <name>КоманднаяПанельСлева2РасширеннаяПодсказка</name>
<id>156</id> <id>156</id>
@@ -1046,10 +1018,6 @@
<userVisible> <userVisible>
<common>true</common> <common>true</common>
</userVisible> </userVisible>
<title>
<key>ru</key>
<value>Командная панель справа 2</value>
</title>
<enableContentChange>true</enableContentChange> <enableContentChange>true</enableContentChange>
<extendedTooltip> <extendedTooltip>
<name>КоманднаяПанельСправа2РасширеннаяПодсказка</name> <name>КоманднаяПанельСправа2РасширеннаяПодсказка</name>
@@ -1103,10 +1071,6 @@
<userVisible> <userVisible>
<common>true</common> <common>true</common>
</userVisible> </userVisible>
<title>
<key>ru</key>
<value>Командная панель слева 3</value>
</title>
<extendedTooltip> <extendedTooltip>
<name>КоманднаяПанельСлева3РасширеннаяПодсказка</name> <name>КоманднаяПанельСлева3РасширеннаяПодсказка</name>
<id>161</id> <id>161</id>
@@ -1182,10 +1146,6 @@
<userVisible> <userVisible>
<common>true</common> <common>true</common>
</userVisible> </userVisible>
<title>
<key>ru</key>
<value>Командная панель справа 3</value>
</title>
<enableContentChange>true</enableContentChange> <enableContentChange>true</enableContentChange>
<extendedTooltip> <extendedTooltip>
<name>КоманднаяПанельСправа3РасширеннаяПодсказка</name> <name>КоманднаяПанельСправа3РасширеннаяПодсказка</name>
@@ -1233,10 +1193,6 @@
<userVisible> <userVisible>
<common>true</common> <common>true</common>
</userVisible> </userVisible>
<title>
<key>ru</key>
<value>Панель навигации</value>
</title>
<enableContentChange>true</enableContentChange> <enableContentChange>true</enableContentChange>
<extendedTooltip> <extendedTooltip>
<name>ПанельНавигацииExtendedTooltip</name> <name>ПанельНавигацииExtendedTooltip</name>
@@ -1258,10 +1214,6 @@
<userVisible> <userVisible>
<common>true</common> <common>true</common>
</userVisible> </userVisible>
<title>
<key>ru</key>
<value>Рамка панели навигации</value>
</title>
<verticalStretch>true</verticalStretch> <verticalStretch>true</verticalStretch>
<extendedTooltip> <extendedTooltip>
<name>РамкаПанелиНавигацииExtendedTooltip</name> <name>РамкаПанелиНавигацииExtendedTooltip</name>
@@ -2147,6 +2147,8 @@
Возврат Неопределено; Возврат Неопределено;
КонецЕсли; КонецЕсли;
ИнтернетВебАдрес = СокрЛП(ИнтернетВебАдрес);
Возврат Неопределено; Возврат Неопределено;
КонецФункции КонецФункции
@@ -2209,6 +2209,15 @@
Результат = Новый Структура("Всего, Успешно", 0, 0); Результат = Новый Структура("Всего, Успешно", 0, 0);
Если ТипЗнч(СтруктураИменМетаданных) = Тип("Структура")
И Описание.ЭтоКонстанта
И НЕ СтруктураИменМетаданных.Свойство("Константы") Тогда
// Если нужно зарегистрировать все изменения, при этом в составе плана обмена нет констант.
Возврат Результат;
КонецЕсли;
Если СтруктураИменМетаданных <> Неопределено Если СтруктураИменМетаданных <> Неопределено
И Описание.ЭтоКонстанта И Описание.ЭтоКонстанта
И Не Описание.ЭтоКоллекция И Не Описание.ЭтоКоллекция
@@ -839,6 +839,9 @@
Процедура ПоказатьУстановленныеИсправления() Процедура ПоказатьУстановленныеИсправления()
Если ОбщегоНазначенияКлиент.ПодсистемаСуществует("СтандартныеПодсистемы.ОбновлениеКонфигурации") Тогда Если ОбщегоНазначенияКлиент.ПодсистемаСуществует("СтандартныеПодсистемы.ОбновлениеКонфигурации") Тогда
ПараметрыОткрытия = Новый Структура;
ПараметрыОткрытия.Вставить("Исправления", Исправления);
МодульОбновлениеКонфигурацииКлиент = ОбщегоНазначенияКлиент.ОбщийМодуль("ОбновлениеКонфигурацииКлиент"); МодульОбновлениеКонфигурацииКлиент = ОбщегоНазначенияКлиент.ОбщийМодуль("ОбновлениеКонфигурацииКлиент");
МодульОбновлениеКонфигурацииКлиент.ПоказатьУстановленныеИсправления(Исправления); МодульОбновлениеКонфигурацииКлиент.ПоказатьУстановленныеИсправления(Исправления);
КонецЕсли; КонецЕсли;
@@ -99,12 +99,40 @@
<extInfo xsi:type="form:UsualGroupExtInfo"> <extInfo xsi:type="form:UsualGroupExtInfo">
<group>HorizontalIfPossible</group> <group>HorizontalIfPossible</group>
<behavior>Auto</behavior> <behavior>Auto</behavior>
<representation>NormalSeparation</representation>
<showLeftMargin>true</showLeftMargin> <showLeftMargin>true</showLeftMargin>
<united>true</united> <united>true</united>
<throughAlign>Auto</throughAlign> <throughAlign>Auto</throughAlign>
<currentRowUse>Auto</currentRowUse> <currentRowUse>Auto</currentRowUse>
</extInfo> </extInfo>
</items> </items>
<items xsi:type="form:Button">
<name>ФормаПроверитьНаличиеИсправлений</name>
<id>23</id>
<visible>true</visible>
<enabled>true</enabled>
<userVisible>
<common>true</common>
</userVisible>
<extendedTooltip>
<name>ФормаПроверитьНаличиеИсправленийРасширеннаяПодсказка</name>
<id>24</id>
<type>Label</type>
<autoMaxWidth>true</autoMaxWidth>
<autoMaxHeight>true</autoMaxHeight>
<extInfo xsi:type="form:LabelDecorationExtInfo">
<horizontalAlign>Left</horizontalAlign>
</extInfo>
</extendedTooltip>
<type>Hyperlink</type>
<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:FormGroup"> <items xsi:type="form:FormGroup">
<name>ГруппаТехническаяИнформацияОРезультатахОбновления</name> <name>ГруппаТехническаяИнформацияОРезультатахОбновления</name>
<id>10</id> <id>10</id>
@@ -113,7 +141,7 @@
<id>5</id> <id>5</id>
<title> <title>
<key>ru</key> <key>ru</key>
<value>Техническая информация о результатах обновления</value> <value>Техническая информация</value>
</title> </title>
<visible>true</visible> <visible>true</visible>
<enabled>true</enabled> <enabled>true</enabled>
@@ -413,6 +441,24 @@
<currentRowUse>DontUse</currentRowUse> <currentRowUse>DontUse</currentRowUse>
<selectedRowsUse>Auto</selectedRowsUse> <selectedRowsUse>Auto</selectedRowsUse>
</formCommands> </formCommands>
<formCommands>
<name>ПроверитьНаличиеИсправлений</name>
<title>
<key>ru</key>
<value>Проверить наличие исправлений</value>
</title>
<id>4</id>
<use>
<common>true</common>
</use>
<action xsi:type="form:FormCommandHandlerContainer">
<handler>
<name>ПроверитьНаличиеИсправлений</name>
</handler>
</action>
<currentRowUse>Auto</currentRowUse>
<selectedRowsUse>Auto</selectedRowsUse>
</formCommands>
<parameters> <parameters>
<name>КраткоеПредставлениеОшибки</name> <name>КраткоеПредставлениеОшибки</name>
<valueType> <valueType>
@@ -51,6 +51,26 @@
КаталогСкрипта = МодульОбновлениеКонфигурации.КаталогСкрипта(); КаталогСкрипта = МодульОбновлениеКонфигурации.КаталогСкрипта();
КонецЕсли; КонецЕсли;
Если ОбщегоНазначения.ПодсистемаСуществует("ИнтернетПоддержкаПользователей")
И ОбщегоНазначения.ПодсистемаСуществует("СтандартныеПодсистемы.ОбновлениеКонфигурации")
И Не ОбщегоНазначения.РазделениеВключено()
И Не ОбщегоНазначения.ЭтоПодчиненныйУзелРИБ() Тогда
МодульИнтернетПоддержкаПользователей = ОбщегоНазначения.ОбщийМодуль("ИнтернетПоддержкаПользователей");
МодульИнтернетПоддержкаПользователейКлиентСервер = ОбщегоНазначения.ОбщийМодуль("ИнтернетПоддержкаПользователейКлиентСервер");
ВерсияБИП = МодульИнтернетПоддержкаПользователейКлиентСервер.ВерсияБиблиотеки();
Если ОбщегоНазначенияКлиентСервер.СравнитьВерсии(ВерсияБИП, "2.6.3.0") < 0 Тогда
Элементы.ФормаПроверитьНаличиеИсправлений.Видимость = Ложь;
Иначе
ДанныеАутентификации = МодульИнтернетПоддержкаПользователей.ДанныеАутентификацииПользователяИнтернетПоддержки();
Если ДанныеАутентификации = Неопределено Тогда
Элементы.ФормаПроверитьНаличиеИсправлений.Видимость = Ложь;
КонецЕсли;
КонецЕсли;
Иначе
Элементы.ФормаПроверитьНаличиеИсправлений.Видимость = Ложь;
КонецЕсли
КонецПроцедуры КонецПроцедуры
&НаКлиенте &НаКлиенте
@@ -153,4 +173,137 @@
КонецФункции КонецФункции
&НаКлиенте
Процедура ПроверитьНаличиеИсправлений(Команда)
Результат = ДоступныеИсправленияНаСервере();
Если Результат = Неопределено Тогда
Возврат;
КонецЕсли;
Если Результат.Ошибка Тогда
ПоказатьПредупреждение(, Результат.КраткоеОписаниеОшибки);
Возврат;
КонецЕсли;
ПараметрыВопроса = СтандартныеПодсистемыКлиент.ПараметрыВопросаПользователю();
ПараметрыВопроса.ПредлагатьБольшеНеЗадаватьЭтотВопрос = Ложь;
ПараметрыВопроса.Заголовок = НСтр("ru = 'Проверка наличия исправлений'");
ПараметрыВопроса.Картинка = БиблиотекаКартинок.Информация;
Если Результат.КоличествоИсправлений = 0 Тогда
Сообщение = НСтр("ru = 'Доступных исправлений (патчей) не найдено.'");
СтандартныеПодсистемыКлиент.ПоказатьВопросПользователю(Неопределено, Сообщение, РежимДиалогаВопрос.ОК, ПараметрыВопроса);
Возврат;
КонецЕсли;
Сообщение = НСтр("ru = 'Найдено исправлений: %1. Выполнить установку?'");
Сообщение = СтроковыеФункцииКлиентСервер.ПодставитьПараметрыВСтроку(Сообщение, Результат.КоличествоИсправлений);
ОписаниеОповещения = Новый ОписаниеОповещения("ПроверитьДоступныеИсправленияПродолжение", ЭтотОбъект, Результат);
ПараметрыВопроса.Картинка = БиблиотекаКартинок.Вопрос32;
ПараметрыВопроса.КнопкаПоУмолчанию = КодВозвратаДиалога.Да;
СтандартныеПодсистемыКлиент.ПоказатьВопросПользователю(ОписаниеОповещения, Сообщение, РежимДиалогаВопрос.ДаНет, ПараметрыВопроса);
КонецПроцедуры
#КонецОбласти
#Область СлужебныеПроцедурыИФункции
&НаСервере
Функция ДоступныеИсправленияНаСервере()
Результат = Неопределено;
Если ОбщегоНазначения.ПодсистемаСуществует("ИнтернетПоддержкаПользователей.ПолучениеОбновленийПрограммы") Тогда
МодульПолучениеОбновленийПрограммы = ОбщегоНазначения.ОбщийМодуль("ПолучениеОбновленийПрограммы");
Результат = МодульПолучениеОбновленийПрограммы.ИнформацияОДоступныхИсправлениях();
Если Результат <> Неопределено Тогда
Исправления = Результат.Исправления.ВыгрузитьКолонку("Наименование");
Результат.Вставить("КоличествоИсправлений", Результат.Исправления.Количество());
Результат.Вставить("Исправления", Исправления);
КонецЕсли;
КонецЕсли;
Возврат Результат;
КонецФункции
&НаКлиенте
Процедура ПроверитьДоступныеИсправленияПродолжение(Результат, ДополнительныеПараметры) Экспорт
Если Результат = Неопределено Тогда
Возврат;
КонецЕсли;
Если Результат.Значение = КодВозвратаДиалога.Нет Тогда
Возврат;
КонецЕсли;
ДлительнаяОперация = ЗапускУстановкиИсправлений();
ПараметрыОжидания = ДлительныеОперацииКлиент.ПараметрыОжидания(ЭтотОбъект);
ОповещениеОЗавершении = Новый ОписаниеОповещения("ОбработатьРезультат", ЭтотОбъект, ДополнительныеПараметры);
ДлительныеОперацииКлиент.ОжидатьЗавершение(ДлительнаяОперация, ОповещениеОЗавершении, ПараметрыОжидания);
КонецПроцедуры
&НаСервере
Функция ЗапускУстановкиИсправлений()
ПараметрыВыполнения = ДлительныеОперации.ПараметрыВыполненияФункции(УникальныйИдентификатор);
ПараметрыВыполнения.НаименованиеФоновогоЗадания = НСтр("ru = 'Установка доступных исправлений после ошибки обновления.'");
Возврат ДлительныеОперации.ВыполнитьФункцию(ПараметрыВыполнения, "ПолучениеОбновленийПрограммы.ЗагрузитьИУстановитьИсправления");
КонецФункции
&НаКлиенте
Процедура ОбработатьРезультат(Результат, ДополнительныеПараметры) Экспорт
Если Результат = Неопределено Тогда
Возврат;
КонецЕсли;
ПараметрыВопроса = СтандартныеПодсистемыКлиент.ПараметрыВопросаПользователю();
ПараметрыВопроса.ПредлагатьБольшеНеЗадаватьЭтотВопрос = Ложь;
ПараметрыВопроса.Заголовок = НСтр("ru = 'Установка исправлений'");
Если Результат.Статус = "Ошибка" Тогда
ПоказатьПредупреждение(, Результат.КраткоеПредставлениеОшибки);
Возврат;
КонецЕсли;
РезультатУстановки = ПолучитьИзВременногоХранилища(Результат.АдресРезультата);
Если РезультатУстановки.Ошибка Тогда
ТекстОшибки = РезультатУстановки.КраткоеОписаниеОшибки
+ Символы.ПС + Символы.ПС + НСтр("ru = 'Технические подробности о проблеме см. в журнале регистрации.'");
ОшибкаПриУстановкеПатчей = РезультатУстановки.ПодробноеОписаниеОшибки;
Кнопки = Новый СписокЗначений;
Кнопки.Добавить("ЖурналРегистрации", НСтр("ru = 'Журнал регистрации'"));
Кнопки.Добавить("Закрыть", НСтр("ru = 'Закрыть'"));
ПараметрыВопроса.Картинка = БиблиотекаКартинок.Предупреждение32;
ПараметрыВопроса.КнопкаПоУмолчанию = "Закрыть";
ОписаниеОповещения = Новый ОписаниеОповещения("ОбработатьОшибкуУстановкиПатчей", ЭтотОбъект);
СтандартныеПодсистемыКлиент.ПоказатьВопросПользователю(ОписаниеОповещения, ТекстОшибки, Кнопки, ПараметрыВопроса);
Возврат;
КонецЕсли;
ПараметрыОткрытия = Новый Структура;
ПараметрыОткрытия.Вставить("Исправления", ДополнительныеПараметры.Исправления);
ПараметрыОткрытия.Вставить("ПриОбновлении", Истина);
МодульОбновлениеКонфигурацииКлиент = ОбщегоНазначенияКлиент.ОбщийМодуль("ОбновлениеКонфигурацииКлиент");
МодульОбновлениеКонфигурацииКлиент.ПоказатьУстановленныеИсправления(ПараметрыОткрытия, РежимОткрытияОкнаФормы.БлокироватьОкноВладельца);
КонецПроцедуры
&НаКлиенте
Процедура ОбработатьОшибкуУстановкиПатчей(Результат, ДополнительныеПараметры) Экспорт
Если Результат = Неопределено Тогда
Возврат;
КонецЕсли;
Если Результат.Значение = "ЖурналРегистрации" Тогда
ЖурналРегистрацииКлиент.ОткрытьЖурналРегистрации();
КонецЕсли;
КонецПроцедуры
#КонецОбласти #КонецОбласти
@@ -1748,6 +1748,19 @@
<common>true</common> <common>true</common>
</edit> </edit>
</columns> </columns>
<columns>
<name>ДоступноСоздание</name>
<id>27</id>
<valueType>
<types>Boolean</types>
</valueType>
<view>
<common>true</common>
</view>
<edit>
<common>true</common>
</edit>
</columns>
</attributes> </attributes>
<attributes> <attributes>
<name>ПоказыватьИзмененные</name> <name>ПоказыватьИзмененные</name>
@@ -284,6 +284,7 @@
СписокМакетов.Колонки.Добавить("ДоступнаНастройкаВидимости"); СписокМакетов.Колонки.Добавить("ДоступнаНастройкаВидимости");
СписокМакетов.Колонки.Добавить("Поставляемый"); СписокМакетов.Колонки.Добавить("Поставляемый");
СписокМакетов.Колонки.Добавить("ЭтоПечатнаяФорма"); СписокМакетов.Колонки.Добавить("ЭтоПечатнаяФорма");
СписокМакетов.Колонки.Добавить("ДоступноСоздание");
ИзмененныеМакеты = ИзмененныеМакеты(); ИзмененныеМакеты = ИзмененныеМакеты();
ДоступныеДляПереводаМакеты = Новый Соответствие; ДоступныеДляПереводаМакеты = Новый Соответствие;
@@ -341,6 +342,9 @@
ВладельцыМакетов.Добавить(Источник.Значение, Источник.Значение); ВладельцыМакетов.Добавить(Источник.Значение, Источник.Значение);
КонецЦикла; КонецЦикла;
ИдентификаторыОбъектовМетаданных = ВладельцыМакетов.ВыгрузитьЗначения();
ЗначенияПустойСсылки = ОбщегоНазначения.ЗначениеРеквизитаОбъектов(ИдентификаторыОбъектовМетаданных, "ЗначениеПустойСсылки");
ВладельцыМакетов.СортироватьПоПредставлению(); ВладельцыМакетов.СортироватьПоПредставлению();
ВладельцыМакетов.Добавить(Справочники.ИдентификаторыОбъектовМетаданных.ПустаяСсылка(), НСтр("ru = 'Прочие'")); ВладельцыМакетов.Добавить(Справочники.ИдентификаторыОбъектовМетаданных.ПустаяСсылка(), НСтр("ru = 'Прочие'"));
@@ -354,7 +358,8 @@
ГруппаМакетов.ЭтоГруппа = Истина; ГруппаМакетов.ЭтоГруппа = Истина;
ГруппаМакетов.Используется = Истина; ГруппаМакетов.Используется = Истина;
ГруппаМакетов.Владелец = Владелец.Значение; ГруппаМакетов.Владелец = Владелец.Значение;
ГруппаМакетов.ДоступноСоздание = ЗначенияПустойСсылки[Владелец.Значение] <> Неопределено;
ГруппыМакетов.Вставить(Владелец.Значение, ГруппаМакетов); ГруппыМакетов.Вставить(Владелец.Значение, ГруппаМакетов);
КонецЦикла; КонецЦикла;
@@ -384,6 +389,7 @@
Макет.КартинкаИспользования = Число(Макет.Изменен) + Число(Макет.ИспользуетсяИзмененный); Макет.КартинкаИспользования = Число(Макет.Изменен) + Число(Макет.ИспользуетсяИзмененный);
КонецЕсли; КонецЕсли;
Макет.СтрокаПоиска = Макет.Представление + " " + Макет.ТипМакета; Макет.СтрокаПоиска = Макет.Представление + " " + Макет.ТипМакета;
Макет.ДоступноСоздание = Макет.ПолучитьРодителя().ДоступноСоздание;
КонецПроцедуры КонецПроцедуры
@@ -689,7 +695,7 @@
Элементы.МакетыКонтекстноеМенюУдалитьМакет.Видимость = УдалитьМакетВидимость; Элементы.МакетыКонтекстноеМенюУдалитьМакет.Видимость = УдалитьМакетВидимость;
Элементы.МакетыУсловияДоступности.Доступность = ТекущийМакетВыбран И ТекущийМакет.ДоступнаНастройкаВидимости; Элементы.МакетыУсловияДоступности.Доступность = ТекущийМакетВыбран И ТекущийМакет.ДоступнаНастройкаВидимости;
Элементы.МакетыСкопировать.Доступность = ТекущийМакетВыбран И ТекущийМакет.ЭтоПечатнаяФорма И Не ВыбраноНесколькоМакетов; Элементы.МакетыСкопировать.Доступность = ТекущийМакетВыбран И ТекущийМакет.ЭтоПечатнаяФорма И Не ВыбраноНесколькоМакетов;
Элементы.МакетыДобавитьМакет.Доступность = ТекущийМакетВыбран И ЗначениеЗаполнено(ТекущийМакет.Владелец); Элементы.МакетыДобавитьМакет.Доступность = ТекущийМакетВыбран И ТекущийМакет.ДоступноСоздание;
КонецПроцедуры КонецПроцедуры
@@ -274,14 +274,67 @@
УровниПредупреждений.Добавить(НСтр("ru ='Ошибка'", ОбщегоНазначенияКлиент.КодОсновногоЯзыка())); УровниПредупреждений.Добавить(НСтр("ru ='Ошибка'", ОбщегоНазначенияКлиент.КодОсновногоЯзыка()));
УровниПредупреждений.Добавить(НСтр("ru ='Предупреждение'", ОбщегоНазначенияКлиент.КодОсновногоЯзыка())); УровниПредупреждений.Добавить(НСтр("ru ='Предупреждение'", ОбщегоНазначенияКлиент.КодОсновногоЯзыка()));
ЕстьСобытияВыгрузки = Ложь;
ЕстьСобытияЗагрузки = Ложь;
ОпределитьСобытияВыгрузкиЗагрузки(ЕстьСобытияВыгрузки, ЕстьСобытияЗагрузки);
ПараметрыОтбораЖурнала = Новый Структура; ПараметрыОтбораЖурнала = Новый Структура;
ПараметрыОтбораЖурнала.Вставить("СобытиеЖурналаРегистрации", ОбменДаннымиКлиент.СобытиеЖурналаРегистрацииОбменДанными()); ПараметрыОтбораЖурнала.Вставить("Уровень", УровниПредупреждений);
ПараметрыОтбораЖурнала.Вставить("Уровень", УровниПредупреждений);
СобытиеЖурналаРегистрации = Новый Массив;
Для Каждого Узел Из КэшЗначений.МассивУзловПланаОбмена Цикл
Если ЕстьСобытияВыгрузки Тогда
КлючСообщения = ОбменДаннымиВызовСервера.КлючСообщенияЖурналаРегистрацииПоСтрокеДействия(Узел, "ВыгрузкаДанных");
Если СобытиеЖурналаРегистрации.Найти(КлючСообщения) = Неопределено Тогда
СобытиеЖурналаРегистрации.Добавить(КлючСообщения);
КонецЕсли;
КонецЕсли;
Если ЕстьСобытияЗагрузки Тогда
КлючСообщения = ОбменДаннымиВызовСервера.КлючСообщенияЖурналаРегистрацииПоСтрокеДействия(Узел, "ЗагрузкаДанных");
Если СобытиеЖурналаРегистрации.Найти(КлючСообщения) = Неопределено Тогда
СобытиеЖурналаРегистрации.Добавить(КлючСообщения);
КонецЕсли;
КонецЕсли;
КонецЦикла;
ПараметрыОтбораЖурнала.Вставить("СобытиеЖурналаРегистрации", СобытиеЖурналаРегистрации);
ОткрытьФорму("Обработка.ЖурналРегистрации.Форма", ПараметрыОтбораЖурнала, ЭтотОбъект,,,,, РежимОткрытияОкнаФормы.БлокироватьОкноВладельца); ОткрытьФорму("Обработка.ЖурналРегистрации.Форма", ПараметрыОтбораЖурнала, ЭтотОбъект,,,,, РежимОткрытияОкнаФормы.БлокироватьОкноВладельца);
КонецПроцедуры КонецПроцедуры
&НаСервере
Процедура ОпределитьСобытияВыгрузкиЗагрузки(ЕстьСобытияВыгрузки, ЕстьСобытияЗагрузки)
Отбор = КэшЗначений.ОтборТипыПредупреждений;
ЕстьСобытияВыгрузки =
Отбор.Найти(Перечисления.ТипыПроблемОбменаДанными.ОшибкаВыполненияКодаОбработчиковПриОтправкеДанных) <> Неопределено
Или Отбор.Найти(Перечисления.ТипыПроблемОбменаДанными.ОшибкаПроверкиСконвертированногоОбъекта) <> Неопределено;
ЕстьСобытияЗагрузки =
Отбор.Найти(Перечисления.ТипыПроблемОбменаДанными.НепроведенныйДокумент) <> Неопределено
Или Отбор.Найти(Перечисления.ТипыПроблемОбменаДанными.НезаполненныеРеквизиты) <> Неопределено
Или Отбор.Найти(Перечисления.ТипыПроблемОбменаДанными.ОшибкаВыполненияКодаОбработчиковПриПолученииДанных) <> Неопределено;
ПодсистемаВерсионированияСуществует = ОбщегоНазначения.ПодсистемаСуществует("СтандартныеПодсистемы.ВерсионированиеОбъектов");
Если Не ЕстьСобытияЗагрузки И ПодсистемаВерсионированияСуществует Тогда
МенеджерПеречисления = Перечисления["ТипыВерсийОбъекта"];
ЕстьСобытияЗагрузки =
Отбор.Найти(МенеджерПеречисления.НепринятыйПоДатеЗапретаОбъектСуществуетВБазе) <> Неопределено
Или Отбор.Найти(МенеджерПеречисления.НепринятыйПоДатеЗапретаОбъектНеСуществуетВБазе) <> Неопределено
Или Отбор.Найти(МенеджерПеречисления.НепринятыеДанныеПоКоллизии) <> Неопределено
Или Отбор.Найти(МенеджерПеречисления.ПринятыеДанныеПоКоллизии) <> Неопределено;
КонецЕсли;
КонецПроцедуры
&НаКлиенте &НаКлиенте
Процедура ЖурналРегистрацииВУказанноеВремя(Команда) Процедура ЖурналРегистрацииВУказанноеВремя(Команда)
@@ -995,93 +995,6 @@
<value>true</value> <value>true</value>
</right> </right>
</object> </object>
<object>
<name>Configuration.БиблиотекаСтандартныхПодсистем</name>
<right>
<name>Administration</name>
<value>true</value>
</right>
<right>
<name>DataAdministration</name>
<value>true</value>
</right>
<right>
<name>UpdateDataBaseConfiguration</name>
<value>true</value>
</right>
<right>
<name>ExclusiveMode</name>
<value>true</value>
</right>
<right>
<name>ActiveUsers</name>
<value>true</value>
</right>
<right>
<name>EventLog</name>
<value>true</value>
</right>
<right>
<name>ThinClient</name>
<value>true</value>
</right>
<right>
<name>WebClient</name>
<value>true</value>
</right>
<right>
<name>ThickClient</name>
<value>true</value>
</right>
<right>
<name>ExternalConnection</name>
<value>true</value>
</right>
<right>
<name>Automation</name>
<value>true</value>
</right>
<right>
<name>TechnicalSpecialistMode</name>
<value>true</value>
</right>
<right>
<name>MainWindowModeNormal</name>
<value>true</value>
</right>
<right>
<name>MainWindowModeWorkplace</name>
<value>true</value>
</right>
<right>
<name>MainWindowModeEmbeddedWorkplace</name>
<value>true</value>
</right>
<right>
<name>MainWindowModeFullscreenWorkplace</name>
<value>true</value>
</right>
<right>
<name>MainWindowModeKiosk</name>
<value>true</value>
</right>
<right>
<name>AnalyticsSystemClient</name>
<value>true</value>
</right>
<right>
<name>SaveUserData</name>
<value>true</value>
</right>
<right>
<name>ConfigurationExtensionsAdministration</name>
<value>true</value>
</right>
<right>
<name>Output</name>
<value>true</value>
</right>
</object>
<object> <object>
<name>Constant.ИспользоватьСинхронизациюДанныхВМоделиСервиса</name> <name>Constant.ИспользоватьСинхронизациюДанныхВМоделиСервиса</name>
<right> <right>
@@ -4255,6 +4168,93 @@
<value>true</value> <value>true</value>
</right> </right>
</object> </object>
<object>
<name>Configuration.БиблиотекаСтандартныхПодсистем</name>
<right>
<name>Administration</name>
<value>true</value>
</right>
<right>
<name>DataAdministration</name>
<value>true</value>
</right>
<right>
<name>UpdateDataBaseConfiguration</name>
<value>true</value>
</right>
<right>
<name>ExclusiveMode</name>
<value>true</value>
</right>
<right>
<name>ActiveUsers</name>
<value>true</value>
</right>
<right>
<name>EventLog</name>
<value>true</value>
</right>
<right>
<name>ThinClient</name>
<value>true</value>
</right>
<right>
<name>WebClient</name>
<value>true</value>
</right>
<right>
<name>ThickClient</name>
<value>true</value>
</right>
<right>
<name>ExternalConnection</name>
<value>true</value>
</right>
<right>
<name>Automation</name>
<value>true</value>
</right>
<right>
<name>TechnicalSpecialistMode</name>
<value>true</value>
</right>
<right>
<name>MainWindowModeNormal</name>
<value>true</value>
</right>
<right>
<name>MainWindowModeWorkplace</name>
<value>true</value>
</right>
<right>
<name>MainWindowModeEmbeddedWorkplace</name>
<value>true</value>
</right>
<right>
<name>MainWindowModeFullscreenWorkplace</name>
<value>true</value>
</right>
<right>
<name>MainWindowModeKiosk</name>
<value>true</value>
</right>
<right>
<name>AnalyticsSystemClient</name>
<value>true</value>
</right>
<right>
<name>SaveUserData</name>
<value>true</value>
</right>
<right>
<name>ConfigurationExtensionsAdministration</name>
<value>true</value>
</right>
<right>
<name>Output</name>
<value>true</value>
</right>
</object>
<object> <object>
<name>CommonCommand.ПоказатьРезультатРезервногоКопирования</name> <name>CommonCommand.ПоказатьРезультатРезервногоКопирования</name>
<right> <right>
@@ -427,33 +427,6 @@
<value>true</value> <value>true</value>
</right> </right>
</object> </object>
<object>
<name>Configuration.БиблиотекаСтандартныхПодсистем</name>
<right>
<name>MainWindowModeNormal</name>
<value>true</value>
</right>
<right>
<name>MainWindowModeWorkplace</name>
<value>true</value>
</right>
<right>
<name>MainWindowModeEmbeddedWorkplace</name>
<value>true</value>
</right>
<right>
<name>MainWindowModeFullscreenWorkplace</name>
<value>true</value>
</right>
<right>
<name>MainWindowModeKiosk</name>
<value>true</value>
</right>
<right>
<name>AnalyticsSystemClient</name>
<value>true</value>
</right>
</object>
<object> <object>
<name>Catalog.ВариантыОтчетов.Command.Открыть</name> <name>Catalog.ВариантыОтчетов.Command.Открыть</name>
<right> <right>
@@ -2280,6 +2253,33 @@
<value>true</value> <value>true</value>
</right> </right>
</object> </object>
<object>
<name>Configuration.БиблиотекаСтандартныхПодсистем</name>
<right>
<name>MainWindowModeNormal</name>
<value>true</value>
</right>
<right>
<name>MainWindowModeWorkplace</name>
<value>true</value>
</right>
<right>
<name>MainWindowModeEmbeddedWorkplace</name>
<value>true</value>
</right>
<right>
<name>MainWindowModeFullscreenWorkplace</name>
<value>true</value>
</right>
<right>
<name>MainWindowModeKiosk</name>
<value>true</value>
</right>
<right>
<name>AnalyticsSystemClient</name>
<value>true</value>
</right>
</object>
<object> <object>
<name>Constant.ОграничиватьДоступНаУровнеЗаписей</name> <name>Constant.ОграничиватьДоступНаУровнеЗаписей</name>
<right> <right>
@@ -2346,6 +2346,13 @@
<value>true</value> <value>true</value>
</right> </right>
</object> </object>
<object>
<name>CommonForm.Расширения</name>
<right>
<name>View</name>
<value>true</value>
</right>
</object>
<object> <object>
<name>CommonForm.ВводЗначенийСпискомСФлажками</name> <name>CommonForm.ВводЗначенийСпискомСФлажками</name>
<right> <right>
@@ -336,33 +336,6 @@
<value>true</value> <value>true</value>
</right> </right>
</object> </object>
<object>
<name>Configuration.БиблиотекаСтандартныхПодсистем</name>
<right>
<name>MainWindowModeNormal</name>
<value>true</value>
</right>
<right>
<name>MainWindowModeWorkplace</name>
<value>true</value>
</right>
<right>
<name>MainWindowModeEmbeddedWorkplace</name>
<value>true</value>
</right>
<right>
<name>MainWindowModeFullscreenWorkplace</name>
<value>true</value>
</right>
<right>
<name>MainWindowModeKiosk</name>
<value>true</value>
</right>
<right>
<name>AnalyticsSystemClient</name>
<value>true</value>
</right>
</object>
<object> <object>
<name>Catalog.ВариантыОтчетов.Command.Открыть</name> <name>Catalog.ВариантыОтчетов.Command.Открыть</name>
<right> <right>
@@ -1856,6 +1829,33 @@
<value>true</value> <value>true</value>
</right> </right>
</object> </object>
<object>
<name>Configuration.БиблиотекаСтандартныхПодсистем</name>
<right>
<name>MainWindowModeNormal</name>
<value>true</value>
</right>
<right>
<name>MainWindowModeWorkplace</name>
<value>true</value>
</right>
<right>
<name>MainWindowModeEmbeddedWorkplace</name>
<value>true</value>
</right>
<right>
<name>MainWindowModeFullscreenWorkplace</name>
<value>true</value>
</right>
<right>
<name>MainWindowModeKiosk</name>
<value>true</value>
</right>
<right>
<name>AnalyticsSystemClient</name>
<value>true</value>
</right>
</object>
<object> <object>
<name>Constant.ОграничиватьДоступНаУровнеЗаписей</name> <name>Constant.ОграничиватьДоступНаУровнеЗаписей</name>
<right> <right>
@@ -3,33 +3,6 @@
<setForNewObjects>false</setForNewObjects> <setForNewObjects>false</setForNewObjects>
<setForAttributesByDefault>true</setForAttributesByDefault> <setForAttributesByDefault>true</setForAttributesByDefault>
<independentRightsOfChildObjects>false</independentRightsOfChildObjects> <independentRightsOfChildObjects>false</independentRightsOfChildObjects>
<object>
<name>Configuration.БиблиотекаСтандартныхПодсистем</name>
<right>
<name>MainWindowModeNormal</name>
<value>true</value>
</right>
<right>
<name>MainWindowModeWorkplace</name>
<value>true</value>
</right>
<right>
<name>MainWindowModeEmbeddedWorkplace</name>
<value>true</value>
</right>
<right>
<name>MainWindowModeFullscreenWorkplace</name>
<value>true</value>
</right>
<right>
<name>MainWindowModeKiosk</name>
<value>true</value>
</right>
<right>
<name>AnalyticsSystemClient</name>
<value>true</value>
</right>
</object>
<object> <object>
<name>CommonCommand.СвязатьсяСоСпециалистомОнлайнПоддержки</name> <name>CommonCommand.СвязатьсяСоСпециалистомОнлайнПоддержки</name>
<right> <right>
@@ -58,6 +31,33 @@
<value>true</value> <value>true</value>
</right> </right>
</object> </object>
<object>
<name>Configuration.БиблиотекаСтандартныхПодсистем</name>
<right>
<name>MainWindowModeNormal</name>
<value>true</value>
</right>
<right>
<name>MainWindowModeWorkplace</name>
<value>true</value>
</right>
<right>
<name>MainWindowModeEmbeddedWorkplace</name>
<value>true</value>
</right>
<right>
<name>MainWindowModeFullscreenWorkplace</name>
<value>true</value>
</right>
<right>
<name>MainWindowModeKiosk</name>
<value>true</value>
</right>
<right>
<name>AnalyticsSystemClient</name>
<value>true</value>
</right>
</object>
<object> <object>
<name>CommonCommand.НастройкаОнлайнПоддержки</name> <name>CommonCommand.НастройкаОнлайнПоддержки</name>
<right> <right>
@@ -66,33 +66,6 @@
<value>true</value> <value>true</value>
</right> </right>
</object> </object>
<object>
<name>Configuration.БиблиотекаСтандартныхПодсистем</name>
<right>
<name>MainWindowModeNormal</name>
<value>true</value>
</right>
<right>
<name>MainWindowModeWorkplace</name>
<value>true</value>
</right>
<right>
<name>MainWindowModeEmbeddedWorkplace</name>
<value>true</value>
</right>
<right>
<name>MainWindowModeFullscreenWorkplace</name>
<value>true</value>
</right>
<right>
<name>MainWindowModeKiosk</name>
<value>true</value>
</right>
<right>
<name>AnalyticsSystemClient</name>
<value>true</value>
</right>
</object>
<object> <object>
<name>CommonCommand.СценарииСинхронизации</name> <name>CommonCommand.СценарииСинхронизации</name>
<right> <right>
@@ -494,6 +467,33 @@
<value>true</value> <value>true</value>
</right> </right>
</object> </object>
<object>
<name>Configuration.БиблиотекаСтандартныхПодсистем</name>
<right>
<name>MainWindowModeNormal</name>
<value>true</value>
</right>
<right>
<name>MainWindowModeWorkplace</name>
<value>true</value>
</right>
<right>
<name>MainWindowModeEmbeddedWorkplace</name>
<value>true</value>
</right>
<right>
<name>MainWindowModeFullscreenWorkplace</name>
<value>true</value>
</right>
<right>
<name>MainWindowModeKiosk</name>
<value>true</value>
</right>
<right>
<name>AnalyticsSystemClient</name>
<value>true</value>
</right>
</object>
<object> <object>
<name>WebService.Exchange_3_0_1_1.Operation.PrepareGetFile</name> <name>WebService.Exchange_3_0_1_1.Operation.PrepareGetFile</name>
<right> <right>
@@ -72,33 +72,6 @@
<value>true</value> <value>true</value>
</right> </right>
</object> </object>
<object>
<name>Configuration.БиблиотекаСтандартныхПодсистем</name>
<right>
<name>MainWindowModeNormal</name>
<value>true</value>
</right>
<right>
<name>MainWindowModeWorkplace</name>
<value>true</value>
</right>
<right>
<name>MainWindowModeEmbeddedWorkplace</name>
<value>true</value>
</right>
<right>
<name>MainWindowModeFullscreenWorkplace</name>
<value>true</value>
</right>
<right>
<name>MainWindowModeKiosk</name>
<value>true</value>
</right>
<right>
<name>AnalyticsSystemClient</name>
<value>true</value>
</right>
</object>
<object> <object>
<name>InformationRegister.ПричиныИзмененияАдресныхСведений</name> <name>InformationRegister.ПричиныИзмененияАдресныхСведений</name>
<right> <right>
@@ -237,6 +210,33 @@
<value>true</value> <value>true</value>
</right> </right>
</object> </object>
<object>
<name>Configuration.БиблиотекаСтандартныхПодсистем</name>
<right>
<name>MainWindowModeNormal</name>
<value>true</value>
</right>
<right>
<name>MainWindowModeWorkplace</name>
<value>true</value>
</right>
<right>
<name>MainWindowModeEmbeddedWorkplace</name>
<value>true</value>
</right>
<right>
<name>MainWindowModeFullscreenWorkplace</name>
<value>true</value>
</right>
<right>
<name>MainWindowModeKiosk</name>
<value>true</value>
</right>
<right>
<name>AnalyticsSystemClient</name>
<value>true</value>
</right>
</object>
<object> <object>
<name>InformationRegister.ЗемельныеУчастки</name> <name>InformationRegister.ЗемельныеУчастки</name>
<right> <right>
@@ -3,33 +3,6 @@
<setForNewObjects>false</setForNewObjects> <setForNewObjects>false</setForNewObjects>
<setForAttributesByDefault>true</setForAttributesByDefault> <setForAttributesByDefault>true</setForAttributesByDefault>
<independentRightsOfChildObjects>false</independentRightsOfChildObjects> <independentRightsOfChildObjects>false</independentRightsOfChildObjects>
<object>
<name>Configuration.БиблиотекаСтандартныхПодсистем</name>
<right>
<name>MainWindowModeNormal</name>
<value>true</value>
</right>
<right>
<name>MainWindowModeWorkplace</name>
<value>true</value>
</right>
<right>
<name>MainWindowModeEmbeddedWorkplace</name>
<value>true</value>
</right>
<right>
<name>MainWindowModeFullscreenWorkplace</name>
<value>true</value>
</right>
<right>
<name>MainWindowModeKiosk</name>
<value>true</value>
</right>
<right>
<name>AnalyticsSystemClient</name>
<value>true</value>
</right>
</object>
<object> <object>
<name>DataProcessor.ЗагрузкаКлассификатораБанков.Command.ЗагрузкаКлассификатораБанков</name> <name>DataProcessor.ЗагрузкаКлассификатораБанков.Command.ЗагрузкаКлассификатораБанков</name>
<right> <right>
@@ -87,4 +60,31 @@
<value>true</value> <value>true</value>
</right> </right>
</object> </object>
<object>
<name>Configuration.БиблиотекаСтандартныхПодсистем</name>
<right>
<name>MainWindowModeNormal</name>
<value>true</value>
</right>
<right>
<name>MainWindowModeWorkplace</name>
<value>true</value>
</right>
<right>
<name>MainWindowModeEmbeddedWorkplace</name>
<value>true</value>
</right>
<right>
<name>MainWindowModeFullscreenWorkplace</name>
<value>true</value>
</right>
<right>
<name>MainWindowModeKiosk</name>
<value>true</value>
</right>
<right>
<name>AnalyticsSystemClient</name>
<value>true</value>
</right>
</object>
</Rights> </Rights>
@@ -42,33 +42,6 @@
<value>true</value> <value>true</value>
</right> </right>
</object> </object>
<object>
<name>Configuration.БиблиотекаСтандартныхПодсистем</name>
<right>
<name>MainWindowModeNormal</name>
<value>true</value>
</right>
<right>
<name>MainWindowModeWorkplace</name>
<value>true</value>
</right>
<right>
<name>MainWindowModeEmbeddedWorkplace</name>
<value>true</value>
</right>
<right>
<name>MainWindowModeFullscreenWorkplace</name>
<value>true</value>
</right>
<right>
<name>MainWindowModeKiosk</name>
<value>true</value>
</right>
<right>
<name>AnalyticsSystemClient</name>
<value>true</value>
</right>
</object>
<object> <object>
<name>Catalog.ВариантыОтчетов.Command.Открыть</name> <name>Catalog.ВариантыОтчетов.Command.Открыть</name>
<right> <right>
@@ -185,6 +158,33 @@
<value>true</value> <value>true</value>
</right> </right>
</object> </object>
<object>
<name>Configuration.БиблиотекаСтандартныхПодсистем</name>
<right>
<name>MainWindowModeNormal</name>
<value>true</value>
</right>
<right>
<name>MainWindowModeWorkplace</name>
<value>true</value>
</right>
<right>
<name>MainWindowModeEmbeddedWorkplace</name>
<value>true</value>
</right>
<right>
<name>MainWindowModeFullscreenWorkplace</name>
<value>true</value>
</right>
<right>
<name>MainWindowModeKiosk</name>
<value>true</value>
</right>
<right>
<name>AnalyticsSystemClient</name>
<value>true</value>
</right>
</object>
<object> <object>
<name>Catalog.ВариантыОтчетов.Command.РазместитьВРазделах</name> <name>Catalog.ВариантыОтчетов.Command.РазместитьВРазделах</name>
<right> <right>
@@ -272,33 +272,6 @@
<value>true</value> <value>true</value>
</right> </right>
</object> </object>
<object>
<name>Configuration.БиблиотекаСтандартныхПодсистем</name>
<right>
<name>MainWindowModeNormal</name>
<value>true</value>
</right>
<right>
<name>MainWindowModeWorkplace</name>
<value>true</value>
</right>
<right>
<name>MainWindowModeEmbeddedWorkplace</name>
<value>true</value>
</right>
<right>
<name>MainWindowModeFullscreenWorkplace</name>
<value>true</value>
</right>
<right>
<name>MainWindowModeKiosk</name>
<value>true</value>
</right>
<right>
<name>AnalyticsSystemClient</name>
<value>true</value>
</right>
</object>
<object> <object>
<name>DocumentJournal.Взаимодействия.Command.ПозвонитьПоПредмету</name> <name>DocumentJournal.Взаимодействия.Command.ПозвонитьПоПредмету</name>
<right> <right>
@@ -1162,6 +1135,33 @@
<value>true</value> <value>true</value>
</right> </right>
</object> </object>
<object>
<name>Configuration.БиблиотекаСтандартныхПодсистем</name>
<right>
<name>MainWindowModeNormal</name>
<value>true</value>
</right>
<right>
<name>MainWindowModeWorkplace</name>
<value>true</value>
</right>
<right>
<name>MainWindowModeEmbeddedWorkplace</name>
<value>true</value>
</right>
<right>
<name>MainWindowModeFullscreenWorkplace</name>
<value>true</value>
</right>
<right>
<name>MainWindowModeKiosk</name>
<value>true</value>
</right>
<right>
<name>AnalyticsSystemClient</name>
<value>true</value>
</right>
</object>
<object> <object>
<name>DocumentJournal.Взаимодействия.Command.ПозвонитьПоКонтакту</name> <name>DocumentJournal.Взаимодействия.Command.ПозвонитьПоКонтакту</name>
<right> <right>
Loaded 100 of 163 files, more files were not shown because too many files have changed in this diff. Show more