3_1_5_221

This commit is contained in:
Компания 1С committed 2021-10-14 23:09:00 +03:00
1 parent f3d355688f
commit d5da2cab4a
63 files changed
+3248 -994

No files matched your search

@@ -759,10 +759,10 @@
<usePurposes>MobileDevice</usePurposes>
</forms>
<templates uuid="5189beb9-b939-4f97-aca0-c2f3492ac8b9">
<name>КомпонентаXMLDSig_3_0_1_25</name>
<name>КомпонентаExtraCryptoAPI_3_0_1_26</name>
<synonym>
<key>ru</key>
<value>Компонента XMLDSig</value>
<value>Компонента ExtraCryptoAPI</value>
</synonym>
<templateType>AddIn</templateType>
</templates>
@@ -49,6 +49,8 @@
&НаКлиенте
Процедура ПередЗакрытием(Отказ, ЗавершениеРаботы, ТекстПредупреждения, СтандартнаяОбработка)
ОтключитьОбработчикОжидания("Подключаемый_ПроверитьВыполнениеЗадания");
Если Статус <> "Выполняется" Тогда
Возврат;
КонецЕсли;
@@ -141,8 +143,10 @@
Подключаемый_ПроверитьВыполнениеЗадания(); // а вдруг задание уже выполнилось.
Если Статус = "Отменено" Тогда
Статус = Неопределено;
Если Открыта() Тогда
Закрыть(РезультатВыполнения(Неопределено));
КонецЕсли;
КонецЕсли;
КонецПроцедуры
File diff suppressed because it is too large. Load diff
@@ -4012,7 +4012,7 @@
Строка = Строки.Добавить();
Строка.Идентификатор = СвойствоЭлементаСтруктуры.ПолучитьИдентификаторПоОбъекту(Коллекция);
Строка.Представление = ИмяКоллекции;
Строка.Представление = ПредставлениеКоллекцииЭлементаСтруктуры(ИмяКоллекции);
Если ЗначениеЗаполнено(Коллекция.ПредставлениеПользовательскойНастройки) Тогда
Строка.Представление = Коллекция.ПредставлениеПользовательскойНастройки;
КонецЕсли;
@@ -4763,6 +4763,11 @@
КонецЕсли;
ОтмеченныеЗначения = ОтчетыКлиентСервер.ЗначенияСписком(ТекущееЗначение);
Если ОтмеченныеЗначения.Количество() > 0 Тогда
ПараметрыЗаполнения.Вставить("ТекущаяСтрока", ОтмеченныеЗначения[0].Значение);
КонецЕсли;
Обработчик = Новый ОписаниеОповещения("ЗавершитьЗаполнениеСписка", ЭтотОбъект, ПараметрыЗаполнения);
Если ОбщегоНазначенияКлиентСервер.СвойствоСтруктуры(ПараметрыЗаполнения, "ЭтоПодбор", Ложь)
@@ -4890,8 +4895,13 @@
Если ЭлементНастройки.ПравоеЗначение = Неопределено Тогда
ЭлементНастройки.ПравоеЗначение = Новый СписокЗначений;
КонецЕсли;
Отмеченные = ЭлементНастройки.ПравоеЗначение;
Иначе
Если ЭлементНастройки.Значение = Неопределено Тогда
ЭлементНастройки.Значение = Новый СписокЗначений;
КонецЕсли;
Отмеченные = ЭлементНастройки.Значение;
КонецЕсли;
@@ -7249,6 +7259,20 @@
Возврат СтрРазделить(ИменаКоллекций, ", ", Ложь);
КонецФункции
&НаСервере
Функция ПредставлениеКоллекцииЭлементаСтруктуры(ИмяКоллекции)
ПредставлениеКоллекций = Новый Соответствие;
ПредставлениеКоллекций.Вставить("Структура", НСтр("ru = 'Структура'"));
ПредставлениеКоллекций.Вставить("Строки", НСтр("ru = 'Строки'"));
ПредставлениеКоллекций.Вставить("Колонки", НСтр("ru = 'Колонки'"));
ПредставлениеКоллекций.Вставить("Точки", НСтр("ru = 'Точки'"));
ПредставлениеКоллекций.Вставить("Серии", НСтр("ru = 'Серии'"));
Возврат ПредставлениеКоллекций[ИмяКоллекции];
КонецФункции
// Удаление полей, помеченных на удаление.
&НаКлиенте
@@ -102,6 +102,7 @@
<key>ru</key>
<value>Панель быстрых настроек</value>
</title>
<horizontalStretch>true</horizontalStretch>
<extendedTooltip>
<name>ПанельБыстрыхНастроекРасширеннаяПодсказка</name>
<id>987</id>
@@ -566,6 +566,10 @@
&НаКлиенте
Процедура ПоказательАвтоПодбор(Элемент, Текст, ДанныеВыбора, ПараметрыПолученияДанных, Ожидание, СтандартнаяОбработка)
Если Не ЗначениеЗаполнено(Текст) Тогда
Возврат;
КонецЕсли;
Запрос = СокрЛП(Текст);
Если ПереходКНастройкамВыполнен(Запрос) Тогда
@@ -714,6 +718,8 @@
НастройкиОтчета.Вставить("ОтчетСформирован", Ложь);
СброситьВыбранныйУровеньГруппировок();
ОбновитьЭлементыФормыНастроек(ПараметрыЗаполнения);
КонецПроцедуры
@@ -1853,15 +1859,6 @@
&НаКлиенте
Функция ПодходящиеЗначенияУниверсальногоПоиска(Запрос)
ИспользуемыеПоляПоискаПоТипам = НастройкиОтчета.ИспользуемыеПоляУниверсальногоПоискаПоТипам;
Если ВариантМодифицирован
Или ИспользуемыеПоляПоискаПоТипам.Количество() = 0 Тогда
НайтиПоляУниверсальногоПоискаПоТипам(Отчет.КомпоновщикНастроек, НастройкиОтчета);
ИспользуемыеПоляПоискаПоТипам = НастройкиОтчета.ИспользуемыеПоляУниверсальногоПоискаПоТипам;
КонецЕсли;
ПодходящиеЗначения = Новый СписокЗначений;
МаксимальноеКоличествоПодходящихЗначений = 50;
@@ -1873,15 +1870,18 @@
ОформитьПолеУниверсальногоПоиска(ПараметрыПоиска.УправляющиеСимволы);
Если ИспользуемыеПоляПоискаПоТипам.Количество() = 0 Тогда
ПоляПоискаПоТипам = ПоляУниверсальногоПоискаПоТипам(
НастройкиОтчета.АдресСхемы, Отчет.КомпоновщикНастроек.Настройки);
Если ПоляПоискаПоТипам.Количество() = 0 Тогда
Возврат ПодходящиеЗначения;
КонецЕсли;
Если ПараметрыУниверсальногоПоискаПрименимыКСсылкам(ПараметрыПоиска) Тогда
НайтиПодходящиеЗначенияУниверсальногоПоиска(ПодходящиеЗначения, ИспользуемыеПоляПоискаПоТипам, ПараметрыПоиска);
НайтиПодходящиеЗначенияУниверсальногоПоиска(ПодходящиеЗначения, ПоляПоискаПоТипам, ПараметрыПоиска);
КонецЕсли;
НайтиПодходящиеЗначенияУниверсальногоПоискаЧисла(ПодходящиеЗначения, ПараметрыПоиска);
НайтиПодходящиеЗначенияУниверсальногоПоискаЧисла(ПодходящиеЗначения, ПоляПоискаПоТипам, ПараметрыПоиска);
Если ПодходящиеЗначения.Количество() = 0 Тогда
@@ -1915,7 +1915,8 @@
ПараметрыПоиска = Новый Структура;
ПараметрыПоиска.Вставить("СтрокаПоиска", Запрос);
ПараметрыПоиска.Вставить("ЧислоПоиска", 0);
ПараметрыПоиска.Вставить("СтрокаПоискаНормализованная", Запрос);
ПараметрыПоиска.Вставить("ЧислоПоиска", Неопределено);
ПараметрыПоиска.Вставить("УправляющиеСимволы", "");
ПервыйСимвол = Лев(Запрос, 1);
@@ -1940,6 +1941,8 @@
КонецЕсли;
ПараметрыПоиска.СтрокаПоискаНормализованная = СтрЗаменить(ПараметрыПоиска.СтрокаПоиска, """", "_");
Возврат ПараметрыПоиска;
КонецФункции
@@ -1984,14 +1987,13 @@
КонецФункции
&НаКлиенте
Процедура НайтиПодходящиеЗначенияУниверсальногоПоискаЧисла(ПодходящиеЗначения, ПараметрыПоиска)
Процедура НайтиПодходящиеЗначенияУниверсальногоПоискаЧисла(ПодходящиеЗначения, ПоляПоискаПоТипам, ПараметрыПоиска)
Если Не ОбщегоНазначенияКлиентСервер.ЭтоЧисло(ПараметрыПоиска.СтрокаПоиска) Тогда
Возврат;
КонецЕсли;
ИспользуемыеПоляПоискаПоТипам = НастройкиОтчета.ИспользуемыеПоляУниверсальногоПоискаПоТипам;
ПоляПоиска = ИспользуемыеПоляПоискаПоТипам[Тип("Число")];
ПоляПоиска = ПоляПоискаПоТипам[Тип("Число")];
Если ПоляПоиска = Неопределено Тогда
Возврат;
@@ -2044,7 +2046,7 @@
КонецФункции
&НаСервереБезКонтекста
Процедура НайтиПодходящиеЗначенияУниверсальногоПоиска(ПодходящиеЗначения, ИспользуемыеПоляПоискаПоТипам, ПараметрыПоиска)
Процедура НайтиПодходящиеЗначенияУниверсальногоПоиска(ПодходящиеЗначения, ПоляПоискаПоТипам, ПараметрыПоиска)
Если Не ЗначениеЗаполнено(ПараметрыПоиска.СтрокаПоиска) Тогда
Возврат;
@@ -2054,7 +2056,7 @@
ТекстыЗапросов = Новый Массив;
Для Каждого Элемент Из ИспользуемыеПоляПоискаПоТипам Цикл
Для Каждого Элемент Из ПоляПоискаПоТипам Цикл
Если Не ОбщегоНазначения.ЭтоСсылка(Элемент.Ключ) Тогда
Продолжить;
@@ -2091,6 +2093,10 @@
Запрос = Новый Запрос(ТекстЗапроса);
Если СтрНайти(ТекстЗапроса, "&ЧислоПоиска") > 0 Тогда
Запрос.УстановитьПараметр("ЧислоПоиска", ПараметрыПоиска.ЧислоПоиска);
КонецЕсли;
Выборка = Запрос.Выполнить().Выбрать();
ИндексВариантовПоиска = Новый Соответствие;
@@ -2101,7 +2107,7 @@
Пока Выборка.Следующий() Цикл
ПоляПоиска = ИспользуемыеПоляПоискаПоТипам[ТипЗнч(Выборка.Ссылка)];
ПоляПоиска = ПоляПоискаПоТипам[ТипЗнч(Выборка.Ссылка)];
Для Каждого ПолеПоиска Из ПоляПоиска Цикл
@@ -2189,7 +2195,8 @@
// Параметры:
// Объект - ОбъектМетаданных
// СтрокаПоиска - Строка
// ПараметрыПоиска - Структура:
// * СтрокаПоискаНормализованная - Строка
//
// Возвращаемое значение:
// Строка
@@ -2211,7 +2218,7 @@
ПолеПоУсловию = СтроковыеФункцииКлиентСервер.ПодставитьПараметрыВСтроку(
"КОГДА ВЫРАЗИТЬ(%1 КАК СТРОКА(150)) ПОДОБНО %2 ТОГДА ""%3""",
Поле.Имя,
"""%" + ПараметрыПоиска.СтрокаПоиска + "%""",
"""%" + ПараметрыПоиска.СтрокаПоискаНормализованная + "%""",
Поле.Имя);//@query-part
ОписаниеПоляПоУсловию.Добавить(ПолеПоУсловию);
@@ -2232,7 +2239,8 @@
// Параметры:
// Объект - ОбъектМетаданных
// СтрокаПоиска - Строка
// ПараметрыПоиска - Структура:
// * СтрокаПоискаНормализованная - Строка
//
// Возвращаемое значение:
// Строка
@@ -2252,14 +2260,13 @@
Условие = СтроковыеФункцииКлиентСервер.ПодставитьПараметрыВСтроку(
"ВЫРАЗИТЬ(%1 КАК СТРОКА(150)) ПОДОБНО %2",
Поле.Имя,
"""%" + ПараметрыПоиска.СтрокаПоиска + "%""");//@query-part
"""%" + ПараметрыПоиска.СтрокаПоискаНормализованная + "%""");//@query-part
ИначеЕсли ТипРеквизита.СодержитТип(Тип("Число")) Тогда
ИначеЕсли ТипРеквизита.СодержитТип(Тип("Число"))
И ПараметрыПоиска.ЧислоПоиска <> Неопределено Тогда
Условие = СтроковыеФункцииКлиентСервер.ПодставитьПараметрыВСтроку(
"ВЫРАЗИТЬ(%1 КАК ЧИСЛО) = %2",
Поле.Имя,
ПараметрыПоиска.ЧислоПоиска);//@query-part
"ВЫРАЗИТЬ(%1 КАК ЧИСЛО) = &ЧислоПоиска", Поле.Имя);//@query-part
Иначе
Продолжить;
@@ -2368,6 +2375,12 @@
ПредставлениеЗначения = Данные.Представление;
СлужебныеСимволы = СтрРазделить("< >", " ");
Для Каждого СлужебныйСимвол Из СлужебныеСимволы Цикл
ПредставлениеЗначения = СтрЗаменить(ПредставлениеЗначения, СлужебныйСимвол, "");
КонецЦикла;
Если ЗначениеЗаполнено(Данные.ДополнительныеДанные) Тогда
ПредставлениеЗначения = СтроковыеФункцииКлиентСервер.ПодставитьПараметрыВСтроку(
@@ -2379,10 +2392,11 @@
НачалоСтрокиПоиска = СтрНайти(ВРег(ПредставлениеЗначения), ВРег(СтрокаПоиска));
КонецСтрокиПоиска = НачалоСтрокиПоиска + СтрДлина(СтрокаПоиска);
ДлинаНайденногоФрагмента = ?(НачалоСтрокиПоиска = 0, 0, СтрДлина(СтрокаПоиска));
ФрагментДоСтрокиПоиска = Лев(ПредставлениеЗначения, НачалоСтрокиПоиска - 1);
ФрагментСтрокиПоиска = ФрагментСтрокиПоиска(
Сред(ПредставлениеЗначения, НачалоСтрокиПоиска, СтрДлина(СтрокаПоиска)));
Сред(ПредставлениеЗначения, НачалоСтрокиПоиска, ДлинаНайденногоФрагмента));
ФрагментПослеСтрокиПоиска = Сред(ПредставлениеЗначения, КонецСтрокиПоиска);
@@ -2533,9 +2547,13 @@
КонецФункции
&НаСервереБезКонтекста
Процедура НайтиПоляУниверсальногоПоискаПоТипам(КомпоновщикНастроек, НастройкиОтчета)
Функция ПоляУниверсальногоПоискаПоТипам(АдресСхемы, Знач Настройки)
ИспользуемыеПоляПоискаПоТипам = Новый Соответствие;
ПоляПоискаПоТипам = Новый Соответствие;
КомпоновщикНастроек = Новый КомпоновщикНастроекКомпоновкиДанных;
ОтчетыСервер.ИнициализироватьКомпоновщикНастроек(КомпоновщикНастроек, АдресСхемы);
КомпоновщикНастроек.ЗагрузитьНастройки(Настройки);
Коллекции = Новый Массив;
Коллекции.Добавить(ОписаниеПараметровОтчета(КомпоновщикНастроек));
@@ -2550,14 +2568,14 @@
Для Каждого Тип Из Типы Цикл
ПоляПоТипу = ИспользуемыеПоляПоискаПоТипам[Тип];
ПоляПоТипу = ПоляПоискаПоТипам[Тип];
Если ПоляПоТипу = Неопределено Тогда
ПоляПоТипу = Новый Соответствие;
КонецЕсли;
ПоляПоТипу.Вставить(ОписаниеПоля.Поле, ОписаниеПоля.Заголовок);
ИспользуемыеПоляПоискаПоТипам.Вставить(Тип, ПоляПоТипу);
ПоляПоискаПоТипам.Вставить(Тип, ПоляПоТипу);
КонецЦикла;
@@ -2565,9 +2583,9 @@
КонецЦикла;
НастройкиОтчета.ИспользуемыеПоляУниверсальногоПоискаПоТипам = ИспользуемыеПоляПоискаПоТипам;
Возврат ПоляПоискаПоТипам;
КонецПроцедуры
КонецФункции
&НаСервереБезКонтекста
Функция ОписаниеПараметровОтчета(КомпоновщикНастроек)
@@ -3245,6 +3263,25 @@
КонецПроцедуры
&НаКлиенте
Процедура СброситьВыбранныйУровеньГруппировок()
Если РежимРасшифровки Тогда
Возврат;
КонецЕсли;
ВыбранныйУровеньГруппировок = НеопределенныйУровеньГруппировок();
Для Каждого Элемент Из Элементы.ГруппаУровниГруппировок.ПодчиненныеЭлементы Цикл
Если ТипЗнч(Элемент) = Тип("КнопкаФормы") Тогда
Элемент.Пометка = Ложь;
КонецЕсли;
КонецЦикла;
КонецПроцедуры
&НаСервере
Функция КлючОбъектаВыбранногоУровняГруппировок()
@@ -3276,6 +3313,8 @@
Элементы.ГруппаСохранениеВыборВариантаОтчета.Видимость = Не ОбщегоНазначения.РазделениеВключено()
Или ОбщегоНазначения.ДоступноИспользованиеРазделенныхДанных();
Элементы.ИзменитьСоставБыстрыхНастроек.Видимость = ПоказыватьКомандыИзмененияВарианта;
ЭтоПредопределенныйВариант = Не НастройкиОтчета.Пользовательский
И ЗначениеЗаполнено(НастройкиОтчета.ПредопределенныйСсылка);
@@ -3401,6 +3401,12 @@
Процедура ОбновитьИндексПоискаПредопределенныхВариантовОтчетов(Параметры = Неопределено) Экспорт
Если ОбщегоНазначения.РазделениеВключено()
И ОбщегоНазначения.ДоступноИспользованиеРазделенныхДанных() Тогда
Возврат;
КонецЕсли;
ОбновитьИндексПоиска("ОбщиеДанныеКонфигурации", Истина);
КонецПроцедуры
@@ -19,6 +19,7 @@
// * ОсновныеПоля - Массив из см. ОсновныеПоляОтчета
// * ИтоговыеНастройки - НастройкиКомпоновкиДанных - см. синтакс-помощник КомпоновщикНастроекКомпоновкиДанных.ПолучитьНастройки();
// * КомпоновщикНастроек - КомпоновщикНастроекКомпоновкиДанных
// * МакетыОписаны - Булево
// * ВремяФормирования - Число
//
Функция СвойстваРезультатаОтчета() Экспорт
@@ -32,6 +33,7 @@
СвойстваРезультата.Вставить("ОсновныеПоля", Новый Массив);
СвойстваРезультата.Вставить("ИтоговыеНастройки", Неопределено);
СвойстваРезультата.Вставить("КомпоновщикНастроек", Неопределено);
СвойстваРезультата.Вставить("МакетыОписаны", Ложь);
СвойстваРезультата.Вставить("ВремяФормирования", 0);
Возврат СвойстваРезультата;
@@ -387,6 +389,7 @@
СвойстваРезультата.ИндексПолей = ИндексПолейСтруктурыОтчета(ИндексСтруктурыОтчета);
СвойстваРезультата.ОсновныеПоля = ОсновныеПоляОтчета(Форма);
СвойстваРезультата.МакетыОписаны = МакетыКомпоновкиДанныхОписаны(НастройкиОтчета.АдресСхемы);
Возврат ИндексСтруктурыОтчета;
@@ -977,7 +980,9 @@
Для Каждого Поле Из НаборДанных.Поля Цикл
Если ТипЗнч(Поле) = Тип("ПапкаПолейНабораДанныхСхемыКомпоновкиДанных") Тогда
Если ТипЗнч(Поле) = Тип("ПапкаПолейНабораДанныхСхемыКомпоновкиДанных")
Или ТипЗнч(Поле) = Тип("ВложенныйНаборДанныхСхемыКомпоновкиДанных") Тогда
Продолжить;
КонецЕсли;
@@ -1224,6 +1229,22 @@
КонецФункции
Функция МакетыКомпоновкиДанныхОписаны(АдресСхемы)
Схема = ПолучитьИзВременногоХранилища(АдресСхемы);
Если ТипЗнч(Схема) <> Тип("СхемаКомпоновкиДанных") Тогда
Возврат Ложь;
КонецЕсли;
Возврат Схема.Макеты.Количество() > 0
Или Схема.МакетыЗаголовковГруппировок.Количество() > 0
Или Схема.МакетыГруппировок.Количество() > 0
Или Схема.МакетыПолей.Количество() > 0
Или Схема.МакетыПолейИтога.Количество() > 0;
КонецФункции
#Область Конструкторы
Функция НовыйИндексСтруктурыОтчета()
@@ -1600,6 +1621,14 @@
Возврат;
КонецЕсли;
МинимальнаяШиринаКолонкиДляВыводаИндикатора = 5;
Если Ячейка.ШиринаКолонки > 0
И Ячейка.ШиринаКолонки <= МинимальнаяШиринаКолонкиДляВыводаИндикатора Тогда
Возврат;
КонецЕсли;
Если ИндексПоля.НаправлениеСортировки = НаправлениеСортировкиКомпоновкиДанных.Возр Тогда
СвойстваЗаголовка.СортироватьПоВозрастанию = Ложь;
@@ -2028,9 +2057,7 @@
ДоступныеЗначения = ПараметрыЗаполнения.ДоступныеЗначения;
ДоступныеТипы = Значения.ТипЗначения;
КоличествоДоступныхТипов = ДоступныеТипы.Типы().Количество();
Индексы = Новый Соответствие;
ИндексЗначенийЯчеек = Новый Соответствие;
КоличествоПрочтенныхСтрок = 0;
КоличествоСтрокВРазделеОтчета = ГраницаРаздела - СвойстваЗаголовка.Низ;
@@ -2060,15 +2087,10 @@
ЗначениеЯчейки = ЗначениеЯчейки(Ячейка, ДоступныеТипы, ДанныеРасшифровки);
Если Индексы[ЗначениеЯчейки.Значение] <> Неопределено
Или (КоличествоДоступныхТипов > 0
И Не ДоступныеТипы.СодержитТип(ТипЗнч(ЗначениеЯчейки.Значение))) Тогда
Если Не ЗначениеЯчейкиКонсистентно(ЗначениеЯчейки, ИндексЗначенийЯчеек, ДоступныеТипы) Тогда
Продолжить;
КонецЕсли;
Индексы.Вставить(ЗначениеЯчейки.Значение, Истина);
ДоступноеЗначение = ДоступныеЗначения.НайтиПоЗначению(ЗначениеЯчейки.Значение);
Если ДоступноеЗначение = Неопределено Тогда
@@ -2171,6 +2193,32 @@
КонецФункции
Функция ЗначениеЯчейкиКонсистентно(ЗначениеЯчейки, ИндексЗначенийЯчеек, ДоступныеТипы)
Если Не ЗначениеЗаполнено(ЗначениеЯчейки.Значение)
И ЗначениеЗаполнено(ЗначениеЯчейки.Представление) Тогда
Возврат Ложь;
КонецЕсли;
Если ИндексЗначенийЯчеек[ЗначениеЯчейки.Значение] <> Неопределено Тогда
Возврат Ложь;
КонецЕсли;
КоличествоДоступныхТипов = ДоступныеТипы.Типы().Количество();
Если КоличествоДоступныхТипов > 0
И Не ДоступныеТипы.СодержитТип(ТипЗнч(ЗначениеЯчейки.Значение)) Тогда
Возврат Ложь;
КонецЕсли;
ИндексЗначенийЯчеек.Вставить(ЗначениеЯчейки.Значение, Истина);
Возврат Истина;
КонецФункции
// Параметры:
// Значение - Строка
//
@@ -8481,6 +8481,7 @@
НайденныеКонтакты.Колонки.Добавить("Представление", Новый ОписаниеТипов("Строка"));
НайденныеКонтакты.Колонки.Добавить("ИмяСправочника", Новый ОписаниеТипов("Строка"));
НайденныеКонтакты.Колонки.Добавить("НаименованиеКонтакта", Новый ОписаниеТипов("Строка"));
НайденныеКонтакты.Колонки.Добавить("ПредставлениеЗаполнено", Новый ОписаниеТипов("Булево"));
РезультатПоиска = НайтиКонтакты(СтрокаПоиска, Ложь, НайденныеКонтакты);
Если Не ПустаяСтрока(РезультатПоиска) Тогда
@@ -201,6 +201,130 @@
КонецПроцедуры
// Параметры загрузки.
//
// Возвращаемое значение:
// Структура:
// * Идентификатор - Строка
// * Наименование - Строка
// * Версия - Строка
// * ИмяФайла - Строка
// * ОписаниеОшибки - Строка - информация о загрузке компоненты
// * ОбновлятьСПортала1СИТС - Булево
// * Данные - Строка - адрес двоичных данных во временном хранилище
// - ДвоичныеДанные
//
Функция ПараметрыЗагрузки() Экспорт
Результат = Новый Структура;
Результат.Вставить("Идентификатор", "");
Результат.Вставить("Наименование", "");
Результат.Вставить("Версия", "");
Результат.Вставить("ИмяФайла", "");
Результат.Вставить("ОписаниеОшибки", "");
Результат.Вставить("ОбновлятьСПортала1СИТС", Истина);
Результат.Вставить("Данные", "");
Возврат Результат;
КонецФункции
// Добавить компоненту в справочник из двоичных данных.
//
// Параметры:
// Параметры - см. ПараметрыЗагрузки
// ВыполнятьРазборИнфоФайла - Булево - требуется ли дополнительно анализировать
// данные файла INFO.XML, если он есть
//
Процедура ЗагрузитьКомпонентуИзДвоичныхДанных(Параметры, ВыполнятьРазборИнфоФайла = Истина) Экспорт
Если ТипЗнч(Параметры.Данные) = Тип("Строка") Тогда
Если ПустаяСтрока(Параметры.Данные) Тогда
ТекстИсключения = НСтр("ru = 'Добавление внешней компоненты: не заполнены данные.'");
ВызватьИсключение ТекстИсключения;
Иначе
Если ЭтоАдресВременногоХранилища(Параметры.Данные) Тогда
ДвоичныеДанные = ПолучитьИзВременногоХранилища(Параметры.Данные);
Иначе
ВызватьИсключение НСтр("ru = 'Добавление внешней компоненты: адрес данных не является адресом временного хранилища.'");
КонецЕсли;
КонецЕсли;
Иначе
ДвоичныеДанные = Параметры.Данные;
КонецЕсли;
Если ТипЗнч(ДвоичныеДанные) <> Тип("ДвоичныеДанные") Тогда
ТекстИсключения = НСтр("ru = 'Добавление внешней компоненты: данные файла не являются двоичными данными.'");
ВызватьИсключение ТекстИсключения;
КонецЕсли;
Информация = ИнформацияОКомпонентеИзФайла(ДвоичныеДанные, ВыполнятьРазборИнфоФайла);
Если Не Информация.Разобрано Тогда
ЗаписьЖурналаРегистрации(НСтр("ru = 'Добавление внешней компоненты'",
ОбщегоНазначения.КодОсновногоЯзыка()), УровеньЖурналаРегистрации.Ошибка, , , Информация.ОписаниеОшибки);
ВызватьИсключение Информация.ОписаниеОшибки;
КонецЕсли;
Идентификатор = ?(ЗначениеЗаполнено(Параметры.Идентификатор), Параметры.Идентификатор, Информация.Реквизиты.Идентификатор);
Если Не ЗначениеЗаполнено(Идентификатор) Тогда
ТекстИсключения = НСтр("ru = 'Добавление внешней компоненты: не заполнен идентификатор'");
ВызватьИсключение ТекстИсключения;
КонецЕсли;
НачатьТранзакцию();
Попытка
Блокировка = Новый БлокировкаДанных;
Блокировка.Добавить("Справочник.ВнешниеКомпоненты");
Блокировка.Заблокировать();
Компонента = Справочники.ВнешниеКомпоненты.НайтиПоИдентификатору(Идентификатор);
Если ЗначениеЗаполнено(Компонента) Тогда
Объект = Компонента.ПолучитьОбъект();
Попытка
РезультатСравненияВерсий = ОбщегоНазначенияКлиентСервер.СравнитьВерсии(Объект.Версия, Параметры.Версия);
Исключение
// Если не удалось сравнить версии, перезаписываем компоненту.
РезультатСравненияВерсий = -1;
КонецПопытки;
Если РезультатСравненияВерсий >= 0 Тогда
ОтменитьТранзакцию();
Возврат;
КонецЕсли;
Иначе
Объект = Справочники.ВнешниеКомпоненты.СоздатьЭлемент();
// Создание экземпляра компоненты.
Объект.Заполнить(Неопределено); // Конструктор по умолчанию.
КонецЕсли;
// По данным манифеста.
ЗаполнитьЗначенияСвойств(Объект, Информация.Реквизиты, , "Наименование, Версия, ИмяФайла");
Объект.Идентификатор = Идентификатор;
// Если в параметрах Наименование, Версия, ИмяФайла не заполнены, берем из информации.
Объект.Наименование = ?(ЗначениеЗаполнено(Параметры.Наименование), Параметры.Наименование, Информация.Реквизиты.Наименование);
Объект.Версия = ?(ЗначениеЗаполнено(Параметры.Версия), Параметры.Версия, Информация.Реквизиты.Версия);
Объект.ИмяФайла = ?(ЗначениеЗаполнено(Параметры.ИмяФайла), Параметры.ИмяФайла, Информация.Реквизиты.ИмяФайла);
Объект.ОписаниеОшибки = Параметры.ОписаниеОшибки;
Объект.ОбновлятьСПортала1СИТС = Параметры.ОбновлятьСПортала1СИТС;
Объект.ДополнительныеСвойства.Вставить("ДвоичныеДанныеКомпоненты", Информация.ДвоичныеДанные);
Объект.Записать();
ЗафиксироватьТранзакцию();
Исключение
ОтменитьТранзакцию();
ЗаписьЖурналаРегистрации(НСтр("ru = 'Добавление внешней компоненты'", ОбщегоНазначения.КодОсновногоЯзыка()),
УровеньЖурналаРегистрации.Ошибка, , , ПодробноеПредставлениеОшибки(ИнформацияОбОшибке()));
ВызватьИсключение;
КонецПопытки;
КонецПроцедуры
#Область ОбработчикиСобытийПодсистемКонфигурации
// См. ГрупповоеИзменениеОбъектовПереопределяемый.ПриОпределенииОбъектовСРедактируемымиРеквизитами.
@@ -836,5 +960,5 @@
#КонецОбласти
#КонецОбласти
#КонецОбласти
@@ -28,18 +28,20 @@
Процедура УточнитьНастройкуДатыЗапретаПриИзменении(Контекст, РассчитатьДатуЗапрета = Истина) Экспорт
Если Контекст.ВыбранРасширенныйРежим Тогда
Если Контекст.ОписаниеДатыЗапрета = "" Тогда
Контекст.ДатаЗапрета = "00010101";
КонецЕсли;
Иначе
Если Не Контекст.ВыбранРасширенныйРежим Тогда
Если Контекст.ДатаЗапрета <> '00010101' И Контекст.ОписаниеДатыЗапрета = "" Тогда
Контекст.ОписаниеДатыЗапрета = "ПроизвольнаяДата";
ИначеЕсли Контекст.ДатаЗапрета = '00010101' И Контекст.ОписаниеДатыЗапрета = "ПроизвольнаяДата" Тогда
ИначеЕсли Контекст.ДатаЗапрета = '00010101'
И Контекст.ОписаниеДатыЗапрета = "ПроизвольнаяДата"
И Не Контекст.ЗаписьСуществует Тогда
Контекст.ОписаниеДатыЗапрета = "";
КонецЕсли;
КонецЕсли;
Если Контекст.ОписаниеДатыЗапрета = "" Тогда
Контекст.ДатаЗапрета = "00010101";
КонецЕсли;
Контекст.ТекстНадписиОтносительнойДатыЗапрета = "";
@@ -124,16 +126,15 @@
КонецЕсли;
Если Контекст.ОписаниеДатыЗапрета = "ПроизвольнаяДата" Тогда
Если Контекст.ОписаниеДатыЗапрета = "" Или Контекст.ОписаниеДатыЗапрета = "ПроизвольнаяДата" Тогда
Контекст.Элементы.ПроизвольнаяДата.ТекущаяСтраница = ?(Контекст.ОписаниеДатыЗапрета = "",
Контекст.Элементы.ПроизвольнаяДатаНеИспользуется, Контекст.Элементы.ПроизвольнаяДатаИспользуется);
ФорматРедактирования = ?(Контекст.ЗаписьСуществует, "ДП=01.01.0001", "");
Контекст.Элементы.ДатаЗапретаПростойРежим.ФорматРедактирования = ФорматРедактирования;
Контекст.Элементы.ДатаЗапрета.ФорматРедактирования = ФорматРедактирования;
Контекст.Элементы.СвойстваДатыЗапрета.ТекущаяСтраница = Контекст.Элементы.НетПояснения;
Контекст.Элементы.ПроизвольнаяДата.ТекущаяСтраница = Контекст.Элементы.ПроизвольнаяДатаИспользуется;
Контекст.РазрешитьИзменениеДанныхДоДатыЗапрета = Ложь;
Возврат;
КонецЕсли;
Если Контекст.ОписаниеДатыЗапрета = "" Тогда
Контекст.Элементы.СвойстваДатыЗапрета.ТекущаяСтраница = Контекст.Элементы.НетПояснения;
Контекст.Элементы.ПроизвольнаяДата.ТекущаяСтраница = Контекст.Элементы.ПроизвольнаяДатаНеИспользуется;
Контекст.Элементы.ДатаЗапретаПростойРежим.ОбновитьТекстРедактирования();
Контекст.Элементы.ДатаЗапрета.ОбновитьТекстРедактирования();
Контекст.РазрешитьИзменениеДанныхДоДатыЗапрета = Ложь;
Возврат;
КонецЕсли;
@@ -250,7 +250,7 @@
КонецЕсли;
Для Каждого Разрешение Из РазрешенияОбработки Цикл
Для Каждого Разрешение Из РазрешенияОбработки Цикл // СправочникТабличнаяЧастьСтрока.ДополнительныеОтчетыИОбработки.Разрешения
Если ТипЗнч(Разрешение) = Тип("ОбъектXDTO") Тогда
Разрешения = Манифест.Permissions; // СписокXDTO
@@ -1016,7 +1016,7 @@
Реквизит.ПредставлениеПутиКДанным = ФорматированнаяСтрока;
КонецЕсли;
КонецЕсли;
Если Не Реквизит.СоответствуетОтбору И Уровень < 3 Тогда
Если Не Реквизит.СоответствуетОтбору И Уровень < 2 Тогда
РазвернутьРеквизит(Реквизит.ПолучитьИдентификатор(), ИмяСписка, Форма);
КонецЕсли;
Реквизит.ПодчиненныйЭлементСоответствуетОтбору = УстановитьОтбор(Форма, ИмяСписка, Отбор, Реквизит, Уровень);
@@ -842,7 +842,11 @@
КонецЕсли;
Если ТипЗнч(ЗначениеСвойства) = Тип("Структура") Тогда
ЗначениеСвойства.Свойство("Расширения", Расширения);
// Для строк табличной части расширения добавлены в строку,
// поэтому получение Соответствия с расширениями определено ниже
КонецЕсли;
ТипСвойства = Неопределено;
@@ -940,18 +944,25 @@
ИначеЕсли ТипСвойства = "Таблица" Тогда
ЕстьРасширенияXDTO = ЗначениеСвойства.Колонки.Найти("Расширения") <> Неопределено;
ЗначениеXDTO = ФабрикаXDTO.Создать(Свойство.Тип);
ТипТаблицы = Свойство.Тип.Свойства[0].Тип;
ИмяСвойстваСтроки = Свойство.Тип.Свойства[0].Имя;
СписокXDTO = ЗначениеXDTO[ИмяСвойстваСтроки]; // СписокXDTO
Для Каждого ИсточникСтрока Из ЗначениеСвойства Цикл
ПриемникСтрока = ОбъектXDTOИзДанныхXDTO(КомпонентыОбмена, ИсточникСтрока, ТипТаблицы, СсылкиИзОбъекта, , ?(ЭтоБазоваяСхема, Неопределено, Расширения));
Если ЕстьРасширенияXDTO Тогда
РасширенияСтроки = ИсточникСтрока.Расширения;
Иначе
РасширенияСтроки = Неопределено;
КонецЕсли;
ПриемникСтрока = ОбъектXDTOИзДанныхXDTO(КомпонентыОбмена, ИсточникСтрока, ТипТаблицы, СсылкиИзОбъекта, Ложь, РасширенияСтроки);
СписокXDTO.Добавить(ПриемникСтрока);
КонецЦикла;
@@ -4342,6 +4353,12 @@
КонецЕсли;
КонецЦикла;
Если НоваяТЧПриемника.Колонки.Количество() > 0 Тогда
НоваяТЧПриемника.Колонки.Добавить("Расширения");
КонецЕсли;
Возврат НоваяТЧПриемника;
КонецФункции
@@ -4848,29 +4865,51 @@
КонецПроцедуры
// Определение типа свойства
// Если свойства относится к пространству имен расширения - тип у него не будет определен
// т.к. объект xdto зачитывается только по базовой схеме.
// Поэтому для получения типа значения свойства нужно обратиться к правилам конвертации
// и получить ТипXDTO расширенных свойств.
// Определение типа свойства XDTO.
//
// Если свойство относится к базовому пакету XDTO, то тип можно получить прямым обращением методом Тип().
// Если переданное свойство принадлежит расширению пакета XDTO, то обращении метод Тип() возвращает AnyType,
// т.е. тип определен не будет.
//
// Для получения типа свойства из расширения необходимо:
// 1. Получить имя базового объекта (объекта, который расширяем);
// 2. По имени базового объекта получить объект из расширения;
// 3. У объекта из п2 выбрать свойство с нужным именем и зачитать его тип.
//
// Возвращаемое значение:
// ТипЗначенияXDTO - тип свойства объекта XDTO.
//
Функция ТипЗначенияСвойстваXDTO(Знач КомпонентыОбмена, Знач СвойствоXDTO, ЗначениеXDTO)
ПространствоИменСвойства = СвойствоXDTO.URIПространстваИмен;
Результат = ЗначениеXDTO.Тип();
ПространствоИменСвойства = СвойствоXDTO.URIПространстваИмен;
Если ЭтоБазоваяСхема(КомпонентыОбмена, ПространствоИменСвойства) Тогда
Возврат Результат;
КонецЕсли;
ТипОбъектаXDTO = СвойствоXDTO.ОбъектВладелец.Тип();
Если ЭтоБазоваяСхема(КомпонентыОбмена, ТипОбъектаXDTO.URIПространстваИмен) Тогда
РасширениеОбъекта = ПКОПоТипуОбъектаXDTO(КомпонентыОбмена, ТипОбъектаXDTO).Расширения.Получить(ПространствоИменСвойства);
Если РасширениеОбъекта <> Неопределено Тогда
Результат = РасширениеОбъекта.ТипXDTO.Свойства.Получить(СвойствоXDTO.Имя).Тип;
КонецЕсли;
Возврат Результат;
КонецЕсли;
ТипXDTOВладельцаСвойства = СвойствоXDTO.ОбъектВладелец.Тип();
ПространствоИменВладельца = ТипXDTOВладельцаСвойства.URIПространстваИмен;
Если НЕ ЭтоБазоваяСхема(КомпонентыОбмена, ПространствоИменВладельца) Тогда
// Свойство должно принадлежать объекту XDTO базовой схемы
Возврат Результат;
КонецЕсли;
ОбъектXDTOРасширения = ФабрикаXDTO.Тип(ПространствоИменСвойства, ТипXDTOВладельцаСвойства.Имя);
Если ОбъектXDTOРасширения <> Неопределено Тогда
СвойствоОбъектаXDTOРасширения = ОбъектXDTOРасширения.Свойства.Получить(СвойствоXDTO.Имя);
Если СвойствоОбъектаXDTOРасширения <> Неопределено Тогда
Результат = СвойствоОбъектаXDTOРасширения.Тип;
КонецЕсли;
КонецЕсли;
Возврат Результат;
@@ -5808,63 +5847,57 @@
КонецПроцедуры
Процедура РасширитьСвойстваТаблицыОбъекта(ТаблицаОбъекта, Знач ИмяОбъекта, Знач ИмяТаблицыОбъекта, Знач РасширенияФормата)
Процедура КолонкаТаблицыПоПолюИзРасширения(ТаблицаОбъекта, ИмяКолонки)
Если ТаблицаОбъекта.Колонки.Найти(ИмяКолонки) <> Неопределено Тогда
Возврат;
Для Каждого Расширение Из РасширенияФормата Цикл
ТипОбъекта = ФабрикаXDTO.Тип(Расширение.Ключ, ИмяОбъекта);
Если ТипОбъекта = Неопределено Тогда
Продолжить;
КонецЕсли;
ТабличнаяЧасть = ТипОбъекта.Свойства.Получить(ИмяТаблицыОбъекта);
Если ТабличнаяЧасть = Неопределено Или Не ЭтоТаблицаОбъекта(ТабличнаяЧасть) Тогда
Продолжить;
КонецЕсли;
Для Каждого Колонка Из ТабличнаяЧасть.Тип.Свойства[0].Тип.Свойства Цикл
Если СтрНайти(Колонка.Тип.Имя, КлассКлючевыеСвойства()) > 0 Тогда
Для Каждого ПодКолонка Из Колонка.Тип.Свойства Цикл
Если ТаблицаОбъекта.Колонки.Найти(ПодКолонка.Имя) <> Неопределено Тогда
Продолжить;
КонецЕсли;
ТаблицаОбъекта.Колонки.Добавить(ПодКолонка.Имя);
КонецЦикла;
Иначе
Если ТаблицаОбъекта.Колонки.Найти(Колонка.Имя) <> Неопределено Тогда
Продолжить;
КонецЕсли;
ТаблицаОбъекта.Колонки.Добавить(Колонка.Имя);
КонецЕсли;
КонецЦикла;
КонецЦикла;
ТаблицаОбъекта.Колонки.Добавить(ИмяКолонки);
КонецПроцедуры
Функция ПКОПоТипуОбъектаXDTO(КомпонентыОбмена, ТипОбъектаXDTO, ВозвращатьПустоеЗначение = Ложь)
Процедура РасширитьСвойстваТаблицыОбъекта(ТаблицаОбъекта, Знач ИмяОбъекта, Знач ИмяТаблицыОбъекта, Знач РасширенияФормата)
ПравилоКонвертации = КомпонентыОбмена.ПравилаКонвертацииОбъектов.Найти(ТипОбъектаXDTO, "ТипXDTO");
Если ПравилоКонвертации = Неопределено Тогда
Если РасширенияФормата.Количество() < 1 Тогда
Если ВозвращатьПустоеЗначение Тогда
Возврат ПравилоКонвертации;
Иначе
ВызватьИсключение СтроковыеФункцииКлиентСервер.ПодставитьПараметрыВСтроку(
НСтр("ru = 'Не найдено ПКО для типа объекта XDTO.
|Тип объекта XDTO: %1
|Описание ошибки: %2'"),
Строка(ТипОбъектаXDTO),
ПодробноеПредставлениеОшибки(ИнформацияОбОшибке()));
Возврат;
КонецЕсли;
Иначе
Возврат ПравилоКонвертации;
ШаблонСтрокиРасширения = "%1.%2.Строка";
Для Каждого Расширение Из РасширенияФормата Цикл
ТипТабличнаяЧастьСтрока = ФабрикаXDTO.Тип(Расширение.Ключ, СтрШаблон(ШаблонСтрокиРасширения, ИмяОбъекта, ИмяТаблицыОбъекта));
Если ТипТабличнаяЧастьСтрока = Неопределено Тогда
Продолжить;
КонецЕсли;
КонецФункции
Для Каждого ПолеИзРасширения Из ТипТабличнаяЧастьСтрока.Свойства Цикл
Если СтрНайти(ПолеИзРасширения.Тип.Имя, КлассКлючевыеСвойства()) > 0 Тогда
Для Каждого ПодчиненноеПолеИзРасширения Из ПолеИзРасширения.Тип.Свойства Цикл
КолонкаТаблицыПоПолюИзРасширения(ТаблицаОбъекта, ПодчиненноеПолеИзРасширения.Имя);
КонецЦикла;
Иначе
КолонкаТаблицыПоПолюИзРасширения(ТаблицаОбъекта, ПолеИзРасширения.Имя);
КонецЕсли;
КонецЦикла;
КонецЦикла;
КонецПроцедуры
Процедура ПрочитатьСообщениеОбмена(КомпонентыОбмена, Результаты, ТаблицыДляЗагрузки = Неопределено, РежимАнализа = Ложь)
@@ -6724,10 +6757,17 @@
КонецЕсли;
Если Header.AvailableExtensions <> Неопределено Тогда
Если ТипЗнч(Header) = Тип("ОбъектXDTO")
И Header.Свойства().Получить("AvailableExtensions") <> Неопределено // Свойство должно быть
И Header.AvailableExtensions <> Неопределено // и свойство должно быть заполненным (содержать данные)
Тогда
Для Каждого Extension Из Header.AvailableExtensions.Extension Цикл
СтруктураНастроек.ПоддерживаемыеРасширения.Вставить(Extension.Namespace, Extension.BaseVersion);
КонецЦикла;
КонецЕсли;
КонецПроцедуры
@@ -7775,8 +7815,16 @@
КонецЕсли;
РасширенныйТипXDTO = Неопределено;
НужныеСвойстваОтсутствуют = НЕ Расширение.Значение.Свойство("ТипXDTO", РасширенныйТипXDTO)
И НЕ Расширение.Значение.Свойство("ТипСоставногоСвойства", РасширенныйТипXDTO);
НужныеСвойстваОтсутствуют = Истина;
Если Расширение.Значение.Свойство("ТипXDTO", РасширенныйТипXDTO) Тогда
НужныеСвойстваОтсутствуют = Ложь;
ИначеЕсли Расширение.Значение.Свойство("ТипСоставногоСвойства", РасширенныйТипXDTO) Тогда
НужныеСвойстваОтсутствуют = Ложь;
КонецЕсли;
Если НужныеСвойстваОтсутствуют
ИЛИ РасширенныйТипXDTO = Неопределено Тогда
@@ -5695,22 +5695,22 @@
|ИНДЕКСИРОВАТЬ ПО
| Ссылка";
ШаблонУсловия =
"ИСТИНА В " + "(
"ИСТИНА В " + "(" + "
| ВЫБРАТЬ ПЕРВЫЕ 1
| ИСТИНА
| ИЗ
| #Таблица КАК ТЧДокументаПолноеИмяОбъекта
| ГДЕ
| &УсловиеПоПолюТаблицы
| И (&ТекстУсловийПоЗаблокированным))";
| И (&ТекстУсловийПоЗаблокированным)" + ")";
ШаблонУсловияПоЗаблокированным =
"ИСТИНА В " + "(
"ИСТИНА В " + "(" + "
| ВЫБРАТЬ ПЕРВЫЕ 1
| ИСТИНА
| ИЗ
| #Таблица КАК ВТЗаблокированоТаблица
| ГДЕ
| &УсловиеПоЗаблокированным)";
| &УсловиеПоЗаблокированным" + ")";
ШаблонУсловияПоРеквизиту = "ТЧДокумента%1.%2 = %3.Ссылка"; // @query-part
РазделительУсловий =
"
@@ -41,7 +41,7 @@
Процедура ПриДобавленииПодсистемы(Описание) Экспорт
Описание.Имя = "СтандартныеПодсистемы";
Описание.Версия = "3.1.5.208";
Описание.Версия = "3.1.5.221";
Описание.ИдентификаторИнтернетПоддержки = "SSL";
Описание.РежимВыполненияОтложенныхОбработчиков = "Параллельно";
Описание.ПараллельноеОтложенноеОбновлениеСВерсии = "2.3.3.0";
@@ -6591,17 +6591,25 @@
Процедура ЗаписатьДетальнуюИнформациюОХодеОбновления(ОписаниеОбработчика)
КопияОписания = ОбщегоНазначения.СкопироватьРекурсивно(ОписаниеОбработчика);
Если КопияОписания.Свойство("Параметры") Тогда
КопияОписания.Удалить("Параметры");
КонецЕсли;
Длительность = ТекущаяУниверсальнаяДатаВМиллисекундах() - ОписаниеОбработчика.ЗначениеНаНачало;
ОписаниеОбработчика.Вставить("Выполнен", Ложь);
ОписаниеОбработчика.Вставить("Длительность", Длительность / 1000); // В секундах
КопияОписания.Вставить("Выполнен", Ложь);
КопияОписания.Вставить("Длительность", Длительность / 1000); // В секундах
ЗаписьЖурналаРегистрации(
СобытиеЖурналаРегистрацииПротокол(),
УровеньЖурналаРегистрации.Информация,
,
,
ОбщегоНазначения.ЗначениеВСтрокуXML(ОписаниеОбработчика));
ОбщегоНазначения.ЗначениеВСтрокуXML(КопияОписания));
КонецПроцедуры
@@ -0,0 +1,17 @@
///////////////////////////////////////////////////////////////////////////////////////////////////////
// Copyright (c) 2021, ООО 1С-Софт
// Все права защищены. Эта программа и сопроводительные материалы предоставляются
// в соответствии с условиями лицензии Attribution 4.0 International (CC BY 4.0)
// Текст лицензии доступен по ссылке:
// https://creativecommons.org/licenses/by/4.0/legalcode
///////////////////////////////////////////////////////////////////////////////////////////////////////
#Область СлужебныйПрограммныйИнтерфейс
Процедура ПерейтиКНастройкам(Владелец, ОбработчикЗавершения) Экспорт
ОткрытьФорму("ОбщаяФорма.НастройкаПереводаТекста", , Владелец, , , , ОбработчикЗавершения);
КонецПроцедуры
#КонецОбласти
@@ -0,0 +1,10 @@
<?xml version="1.0" encoding="UTF-8"?>
<mdclass:CommonModule xmlns:mdclass="http://g5.1c.ru/v8/dt/metadata/mdclass" uuid="61c1ff46-2a30-43bb-b1df-4db2271b1b12">
<name>ПереводТекстаНаДругиеЯзыкиКлиент</name>
<synonym>
<key>ru</key>
<value>Перевод текста на другие языки клиент</value>
</synonym>
<clientManagedApplication>true</clientManagedApplication>
<clientOrdinaryApplication>true</clientOrdinaryApplication>
</mdclass:CommonModule>
@@ -850,7 +850,15 @@
// Том - СправочникСсылка.ТомаХраненияФайлов
//
Процедура ОчиститьУдаленныеФайлыВТоме(Том)
РеквизитыТома = ОбщегоНазначения.ЗначенияРеквизитовОбъекта(Том, "ВремяПоследнейОчисткиФайлов, ПометкаУдаления");
РеквизитыТома = ОбщегоНазначения.ЗначенияРеквизитовОбъекта(Том, "ВремяПоследнейОчисткиФайлов, ПометкаУдаления, ПолныйПутьLinux, ПолныйПутьWindows");
// При использовании разделения и общих томов (нет разделения на области в томах) нет возможности
// отделить удаленные файлы и файлы других областей.
Если ОбщегоНазначения.РазделениеВключено()
И (ЗначениеЗаполнено(РеквизитыТома.ПолныйПутьLinux) И СтрНайти(РеквизитыТома.ПолныйПутьLinux, "%z") = 0
ИЛИ ЗначениеЗаполнено(РеквизитыТома.ПолныйПутьWindows) И СтрНайти(РеквизитыТома.ПолныйПутьWindows, "%z") = 0) Тогда
Возврат;
КонецЕсли;
Если РеквизитыТома.ПометкаУдаления <> Неопределено И РеквизитыТома.ПометкаУдаления Тогда
Возврат;
@@ -330,6 +330,15 @@
// Общие отчеты.
ОбщиеВложения = ПараметрыДоставки.СтрокаОбщихОтчетов.Строки.НайтиСтроки(Новый Структура("Уровень", 3), Истина);
Если ЗначениеЗаполнено(ПараметрыДоставки.УчетнаяЗапись) Тогда
ПредставлениеОтправителя = Строка(ПараметрыДоставки.УчетнаяЗапись);
ОтправлятьСкрытыеКопииОтправителю = ОбщегоНазначения.ЗначениеРеквизитаОбъекта(
ПараметрыДоставки.УчетнаяЗапись, "ОтправлятьСкрытыеКопииПисемНаЭтотАдрес");
Иначе
ПредставлениеОтправителя = "";
ОтправлятьСкрытыеКопииОтправителю = Ложь;
КонецЕсли;
// Отправка личных отчетов (персонализированных).
Для Каждого СтрокаПолучатель Из ДеревоОтчетов.Строки Цикл
Если СтрокаПолучатель = ПараметрыДоставки.СтрокаОбщихОтчетов Тогда
@@ -354,12 +363,24 @@
АрхивацияВложений(ВложенияПолучателя, ПараметрыДоставки, СтрокаПолучатель.Значение);
ПредставлениеПолучателя = Строка(СтрокаПолучатель.Ключ);
АдресПолучателя = ПараметрыДоставки.Получатели[СтрокаПолучатель.Ключ];
// Доставка.
Попытка
ОтправитьОтчетыПолучателю(ВложенияПолучателя, ПараметрыДоставки, СтрокаПолучатель);
РассылкаВыполнена = Истина;
ПараметрыДоставки.ВыполненаПоЭлектроннойПочте = Истина;
ДополнительныеСведения = "";
Если ОтправлятьСкрытыеКопииОтправителю Тогда
ДополнительныеСведения = НСтр("ru = 'Копия направлена отправителю.'");
КонецЕсли;
ТекстСообщения = СтроковыеФункцииКлиентСервер.ПодставитьПараметрыВСтроку(
НСтр("ru = 'Отчеты отправлены ''%1'' (%2) от %3. %4'"),
ПредставлениеПолучателя, АдресПолучателя, ПредставлениеОтправителя, ДополнительныеСведения);
ЗаписьЖурнала(ПараметрыЖурнала,, ТекстСообщения);
Исключение
ТекстСообщения = СтроковыеФункцииКлиентСервер.ПодставитьПараметрыВСтроку(
НСтр("ru = 'Не удалось отправить отчеты получателю ''%1'':'"), ПредставлениеПолучателя);
@@ -1174,9 +1195,9 @@
| Получатели КАК Получатели
| ЛЕВОЕ СОЕДИНЕНИЕ Справочник.Пользователи.КонтактнаяИнформация КАК Контакты
| ПО Контакты.Ссылка = Получатели.Получатель
| И Контакты.Вид = &ВидПочтовогоАдресаПолучателей
|ГДЕ
| НЕ Получатели.Исключен
| И Контакты.Вид = &ВидПочтовогоАдресаПолучателей";
| НЕ Получатели.Исключен";
Иначе
@@ -1197,9 +1218,9 @@
| Справочник.Пользователи КАК Получатели
| ЛЕВОЕ СОЕДИНЕНИЕ Справочник.Пользователи.КонтактнаяИнформация КАК Контакты
| ПО Контакты.Ссылка = Получатели.Ссылка
| И Контакты.Вид = &ВидПочтовогоАдресаПолучателей
|ГДЕ
| Контакты.Вид = &ВидПочтовогоАдресаПолучателей
| И Получатели.Ссылка В ИЕРАРХИИ
| Получатели.Ссылка В ИЕРАРХИИ
| (ВЫБРАТЬ
| Получатель
| ИЗ
@@ -1264,8 +1285,11 @@
Возврат СписокПолучателей;
КонецПопытки;
ПолучателиБезАдреса = Новый Массив;
Для Каждого ПолучательРассылки Из ПолучателиРассылки Цикл
Если Не ЗначениеЗаполнено(ПолучательРассылки.EMail) Тогда
ПолучателиБезАдреса.Добавить(Строка(ПолучательРассылки.Получатель));
Продолжить;
КонецЕсли;
@@ -1274,6 +1298,16 @@
СписокПолучателей[ПолучательРассылки.Получатель] = ТекущийАдрес + ПолучательРассылки.EMail;
КонецЦикла;
Если ПолучателиБезАдреса.Количество() > 0 Тогда
ШаблонТекстаПредупреждения = НСтр("ru = 'Отчеты не отправлены следующим получателям, так как не заполнен адрес электронной почты:
|- %1.'");
ТекстПредупреждения = СтроковыеФункцииКлиентСервер.ПодставитьПараметрыВСтроку(
ШаблонТекстаПредупреждения, СтрСоединить(ПолучателиБезАдреса, ";" + Символы.ПС + "- "));
ЗаписьЖурнала(ПараметрыЖурнала, УровеньЖурналаРегистрации.Предупреждение, ТекстПредупреждения);
КонецЕсли;
Если СписокПолучателей.Количество() = 0 Тогда
ТекстОшибок = НСтр("ru = 'Не удалось сформировать список получателей ""%1"" по одной из возможных причин:
| - У получателей не заполнен адрес электронной почты ""%2"";
@@ -17,10 +17,11 @@
// 1) Общие для любого режима работы:
// * УникальныйИдентификатор - УникальныйИдентификатор - идентификатор регламентного задания в локальном
// режиме работы или идентификатор ссылки задания очереди в модели сервиса.
// - Строка - строка уникального идентификатора регламентного задания в локальном
// режиме работы или идентификатор ссылки задания очереди в модели сервиса.
// - СправочникСсылка.ОчередьЗаданий
// - СправочникСсылка.ОчередьЗаданийОбластейДанных - идентификатор задания
// очереди в модели сервиса.
// - Строка.
// * Метаданные - ОбъектМетаданныхРегламентноеЗадание - метаданные регламентного задания.
// - Строка - имя регламентного задания.
// * Использование - Булево - если Истина, задание включено.
@@ -132,7 +133,7 @@
КонецФункции
// Возвращает РегламентноеЗадание из информационной базы.
// Возвращает задание из очереди или регламентное.
//
// Параметры:
// Идентификатор - ОбъектМетаданных - объект метаданных регламентного задания для поиска
@@ -157,19 +158,7 @@
ВызватьИсключениеЕслиНетПраваАдминистрирования();
Если ТипЗнч(Идентификатор) = Тип("РегламентноеЗадание") Тогда
Идентификатор = Идентификатор.УникальныйИдентификатор;
КонецЕсли;
Если ТипЗнч(Идентификатор) = Тип("Строка") Тогда
ОбъектМетаданных = Метаданные.РегламентныеЗадания.Найти(Идентификатор);
Если ОбъектМетаданных = Неопределено Тогда
Идентификатор = Новый УникальныйИдентификатор(Идентификатор);
Иначе
Идентификатор = ОбъектМетаданных;
КонецЕсли;
КонецЕсли;
Идентификатор = УточненныйИдентификаторЗадания(Идентификатор);
РегламентноеЗадание = Неопределено;
Если ОбщегоНазначения.РазделениеВключено() Тогда
@@ -229,7 +218,7 @@
КонецФункции
// Добавляет новое задание в очередь или как регламентное.
// Добавляет новое задание в очередь или регламентное.
//
// Параметры:
// Параметры - Структура - параметры добавляемого задания, возможные свойства:
@@ -252,12 +241,12 @@
ВызватьИсключениеЕслиНетПраваАдминистрирования();
ПараметрыЗадания = ОбщегоНазначения.СкопироватьРекурсивно(Параметры);
Если ОбщегоНазначения.РазделениеВключено() Тогда
Если ОбщегоНазначения.ПодсистемаСуществует("ТехнологияСервиса.ОчередьЗаданий") Тогда
ПараметрыЗадания = ОбщегоНазначения.СкопироватьРекурсивно(Параметры);
Если ОбщегоНазначения.ДоступноИспользованиеРазделенныхДанных() Тогда
МодульРаботаВМоделиСервиса = ОбщегоНазначения.ОбщийМодуль("РаботаВМоделиСервиса");
ОбластьДанных = МодульРаботаВМоделиСервиса.ЗначениеРазделителяСеанса();
@@ -282,61 +271,14 @@
КонецЕсли;
Иначе
МетаданныеЗадания = ПараметрыЗадания.Метаданные;
Задание = РегламентныеЗадания.СоздатьРегламентноеЗадание(МетаданныеЗадания);
Если ПараметрыЗадания.Свойство("Наименование") Тогда
Задание.Наименование = ПараметрыЗадания.Наименование;
Иначе
Задание.Наименование = МетаданныеЗадания.Наименование;
КонецЕсли;
Если ПараметрыЗадания.Свойство("Использование") Тогда
Задание.Использование = ПараметрыЗадания.Использование;
Иначе
Задание.Использование = МетаданныеЗадания.Использование;
КонецЕсли;
Если ПараметрыЗадания.Свойство("Ключ") Тогда
Задание.Ключ = ПараметрыЗадания.Ключ;
Иначе
Задание.Ключ = МетаданныеЗадания.Ключ;
КонецЕсли;
Если ПараметрыЗадания.Свойство("ИмяПользователя") Тогда
Задание.ИмяПользователя = ПараметрыЗадания.ИмяПользователя;
КонецЕсли;
Если ПараметрыЗадания.Свойство("ИнтервалПовтораПриАварийномЗавершении") Тогда
Задание.ИнтервалПовтораПриАварийномЗавершении = ПараметрыЗадания.ИнтервалПовтораПриАварийномЗавершении;
Иначе
Задание.ИнтервалПовтораПриАварийномЗавершении = МетаданныеЗадания.ИнтервалПовтораПриАварийномЗавершении;
КонецЕсли;
Если ПараметрыЗадания.Свойство("КоличествоПовторовПриАварийномЗавершении") Тогда
Задание.КоличествоПовторовПриАварийномЗавершении = ПараметрыЗадания.КоличествоПовторовПриАварийномЗавершении;
Иначе
Задание.КоличествоПовторовПриАварийномЗавершении = МетаданныеЗадания.КоличествоПовторовПриАварийномЗавершении;
КонецЕсли;
Если ПараметрыЗадания.Свойство("Параметры") Тогда
Задание.Параметры = ПараметрыЗадания.Параметры;
КонецЕсли;
Если ПараметрыЗадания.Свойство("Расписание") Тогда
Задание.Расписание = ПараметрыЗадания.Расписание;
КонецЕсли;
Задание.Записать();
Задание = ДобавитьРегламентноеЗадание(Параметры);
КонецЕсли;
Возврат Задание;
КонецФункции
// Удаляет регламентное задание из информационной базы.
// Удаляет задание из очереди или регламентное.
//
// Параметры:
// Идентификатор - ОбъектМетаданных - объект метаданных регламентного задания для поиска
@@ -356,18 +298,7 @@
ВызватьИсключениеЕслиНетПраваАдминистрирования();
Если ТипЗнч(Идентификатор) = Тип("РегламентноеЗадание") Тогда
Идентификатор = Идентификатор.УникальныйИдентификатор;
КонецЕсли;
Если ТипЗнч(Идентификатор) = Тип("Строка") Тогда
ОбъектМетаданных = Метаданные.РегламентныеЗадания.Найти(Идентификатор);
Если ОбъектМетаданных = Неопределено Тогда
Идентификатор = Новый УникальныйИдентификатор(Идентификатор);
Иначе
Идентификатор = ОбъектМетаданных;
КонецЕсли;
КонецЕсли;
Идентификатор = УточненныйИдентификаторЗадания(Идентификатор);
Если ОбщегоНазначения.РазделениеВключено() Тогда
@@ -404,44 +335,12 @@
КонецЦикла;
КонецЕсли;
Иначе
СписокЗаданий = Новый Массив; // Массив из РегламентноеЗадание.
Если ТипЗнч(Идентификатор) = Тип("ОбъектМетаданных") И Идентификатор.Предопределенное Тогда
ВызватьИсключение( НСтр("ru = 'Предопределенное регламентное задание удалить невозможно.'") );
ИначеЕсли ТипЗнч(Идентификатор) = Тип("ОбъектМетаданных") И НЕ Идентификатор.Предопределенное Тогда
СписокЗаданий = РегламентныеЗадания.ПолучитьРегламентныеЗадания(Новый Структура("Метаданные", Идентификатор));
Иначе
РегламентноеЗадание = РегламентныеЗадания.НайтиПоУникальномуИдентификатору(Идентификатор);
Если РегламентноеЗадание <> Неопределено Тогда
СписокЗаданий.Добавить(РегламентноеЗадание);
КонецЕсли;
КонецЕсли;
Для Каждого РегламентноеЗадание Из СписокЗаданий Цикл
ИдентификаторЗадания = УникальныйИдентификаторЗадания(РегламентноеЗадание);
Блокировка = Новый БлокировкаДанных;
ЭлементБлокировки = Блокировка.Добавить("РегистрСведений.КэшПрограммныхИнтерфейсов");
ЭлементБлокировки.УстановитьЗначение("Идентификатор", Строка(ИдентификаторЗадания));
НачатьТранзакцию();
Попытка
Блокировка.Заблокировать();
Задание = РегламентныеЗадания.НайтиПоУникальномуИдентификатору(ИдентификаторЗадания);
Если Задание <> Неопределено Тогда
Задание.Удалить();
КонецЕсли;
ЗафиксироватьТранзакцию();
Исключение
ОтменитьТранзакцию();
ВызватьИсключение;
КонецПопытки;
КонецЦикла;
УдалитьРегламентноеЗадание(Идентификатор);
КонецЕсли;
КонецПроцедуры
// Изменяет задание с указанным идентификатором.
// Изменяет задание очереди или регламентное.
//
// В модели сервиса (разделение включено):
// - в случае вызова в транзакции на задание устанавливается объектная блокировка,
@@ -477,26 +376,14 @@
ВызватьИсключениеЕслиНетПраваАдминистрирования();
ПараметрыЗадания = ОбщегоНазначения.СкопироватьРекурсивно(Параметры);
Если ТипЗнч(Идентификатор) = Тип("РегламентноеЗадание") Тогда
Идентификатор = Идентификатор.УникальныйИдентификатор;
КонецЕсли;
Если ТипЗнч(Идентификатор) = Тип("Строка") Тогда
ОбъектМетаданных = Метаданные.РегламентныеЗадания.Найти(Идентификатор);
Если ОбъектМетаданных = Неопределено Тогда
Идентификатор = Новый УникальныйИдентификатор(Идентификатор);
Иначе
Идентификатор = ОбъектМетаданных;
КонецЕсли;
КонецЕсли;
Идентификатор = УточненныйИдентификаторЗадания(Идентификатор);
Если ОбщегоНазначения.РазделениеВключено() Тогда
Если ОбщегоНазначения.ПодсистемаСуществует("ТехнологияСервиса.ОчередьЗаданий") Тогда
МодульРаботаВМоделиСервиса = ОбщегоНазначения.ОбщийМодуль("РаботаВМоделиСервиса");
ПараметрыЗадания = ОбщегоНазначения.СкопироватьРекурсивно(Параметры);
ПараметрыПоиска = Новый Структура;
ПараметрыЗадания.Удалить("Наименование");
@@ -577,52 +464,12 @@
КонецЕсли;
Иначе
ИдентификаторЗадания = УникальныйИдентификаторЗадания(Идентификатор);
Блокировка = Новый БлокировкаДанных;
ЭлементБлокировки = Блокировка.Добавить("РегистрСведений.КэшПрограммныхИнтерфейсов");
ЭлементБлокировки.УстановитьЗначение("Идентификатор", Строка(ИдентификаторЗадания));
НачатьТранзакцию();
Попытка
Блокировка.Заблокировать();
Задание = РегламентныеЗадания.НайтиПоУникальномуИдентификатору(ИдентификаторЗадания);
Если Задание <> Неопределено Тогда
ЕстьИзменения = Ложь;
ОбновитьЗначениеСвойстваЗадания(Задание,
"Наименование", ПараметрыЗадания, ЕстьИзменения);
ОбновитьЗначениеСвойстваЗадания(Задание,
"Использование", ПараметрыЗадания, ЕстьИзменения);
ОбновитьЗначениеСвойстваЗадания(Задание,
"Ключ", ПараметрыЗадания, ЕстьИзменения);
ОбновитьЗначениеСвойстваЗадания(Задание,
"ИмяПользователя", ПараметрыЗадания, ЕстьИзменения);
ОбновитьЗначениеСвойстваЗадания(Задание,
"ИнтервалПовтораПриАварийномЗавершении", ПараметрыЗадания, ЕстьИзменения);
ОбновитьЗначениеСвойстваЗадания(Задание,
"КоличествоПовторовПриАварийномЗавершении", ПараметрыЗадания, ЕстьИзменения);
ОбновитьЗначениеСвойстваЗадания(Задание,
"Параметры", ПараметрыЗадания, ЕстьИзменения);
ОбновитьЗначениеСвойстваЗадания(Задание,
"Расписание", ПараметрыЗадания, ЕстьИзменения);
Если ЕстьИзменения Тогда
Задание.Записать();
КонецЕсли;
КонецЕсли;
ЗафиксироватьТранзакцию();
Исключение
ОтменитьТранзакцию();
ВызватьИсключение;
КонецПопытки;
ИзменитьРегламентноеЗадание(Идентификатор, Параметры);
КонецЕсли;
КонецПроцедуры
// Возвращает уникальный идентификатор регламентного задания.
// Возвращает уникальный идентификатор задания из очереди или регламентного.
// Для вызова требуются права администрирования или УстановитьПривилегированныйРежим.
//
// Параметры:
@@ -1027,10 +874,222 @@
КонецПроцедуры
// Добавляет новое регламентное задание (без учета очереди заданий модели сервиса).
//
// Параметры:
// Параметры - Структура - параметры добавляемого задания, возможные свойства:
// * Использование - Булево - Истина, если регламентное задание должно выполняться автоматически согласно расписанию.
// * Метаданные - ОбъектМетаданныхРегламентноеЗадание - обязательно для указания. Объект метаданных, на основе
// которого будет создано регламентное задание.
// * Параметры - Массив - параметры регламентного задания. Количество и состав параметров должны соответствовать
// параметрам метода регламентного задания.
// * Ключ - Строка - прикладной идентификатор регламентного задания.
// * ИнтервалПовтораПриАварийномЗавершении - Число - интервал в секундах, через который нужно перезапускать задание
// в случае его аварийного завершения.
// * Расписание - РасписаниеРегламентногоЗадания - расписание задания.
// * КоличествоПовторовПриАварийномЗавершении - Число - количество повторов при аварийном завершении задания.
//
// Возвращаемое значение:
// РегламентноеЗадание
//
Функция ДобавитьРегламентноеЗадание(Параметры) Экспорт
ВызватьИсключениеЕслиНетПраваАдминистрирования();
МетаданныеЗадания = Параметры.Метаданные;
Задание = РегламентныеЗадания.СоздатьРегламентноеЗадание(МетаданныеЗадания);
Если Параметры.Свойство("Наименование") Тогда
Задание.Наименование = Параметры.Наименование;
Иначе
Задание.Наименование = МетаданныеЗадания.Наименование;
КонецЕсли;
Если Параметры.Свойство("Использование") Тогда
Задание.Использование = Параметры.Использование;
Иначе
Задание.Использование = МетаданныеЗадания.Использование;
КонецЕсли;
Если Параметры.Свойство("Ключ") Тогда
Задание.Ключ = Параметры.Ключ;
Иначе
Задание.Ключ = МетаданныеЗадания.Ключ;
КонецЕсли;
Если Параметры.Свойство("ИмяПользователя") Тогда
Задание.ИмяПользователя = Параметры.ИмяПользователя;
КонецЕсли;
Если Параметры.Свойство("ИнтервалПовтораПриАварийномЗавершении") Тогда
Задание.ИнтервалПовтораПриАварийномЗавершении = Параметры.ИнтервалПовтораПриАварийномЗавершении;
Иначе
Задание.ИнтервалПовтораПриАварийномЗавершении = МетаданныеЗадания.ИнтервалПовтораПриАварийномЗавершении;
КонецЕсли;
Если Параметры.Свойство("КоличествоПовторовПриАварийномЗавершении") Тогда
Задание.КоличествоПовторовПриАварийномЗавершении = Параметры.КоличествоПовторовПриАварийномЗавершении;
Иначе
Задание.КоличествоПовторовПриАварийномЗавершении = МетаданныеЗадания.КоличествоПовторовПриАварийномЗавершении;
КонецЕсли;
Если Параметры.Свойство("Параметры") Тогда
Задание.Параметры = Параметры.Параметры;
КонецЕсли;
Если Параметры.Свойство("Расписание") Тогда
Задание.Расписание = Параметры.Расписание;
КонецЕсли;
Задание.Записать();
Возврат Задание;
КонецФункции
// Удаляет регламентное задание (без учета очереди заданий модели сервиса).
//
// Параметры:
// Идентификатор - ОбъектМетаданных - объект метаданных регламентного задания для поиска
// непредопределенного регламентного задания.
// - Строка - имя метаданных предопределенного регламентного задания
// или строка уникального идентификатора регламентного задания.
// - УникальныйИдентификатор - идентификатор регламентного задания.
// - РегламентноеЗадание - регламентное задание, уникальный идентификатор которого используется
// для определения удаляемого экземпляра регламентного задания.
//
Процедура УдалитьРегламентноеЗадание(Знач Идентификатор) Экспорт
ВызватьИсключениеЕслиНетПраваАдминистрирования();
Идентификатор = УточненныйИдентификаторЗадания(Идентификатор);
СписокЗаданий = Новый Массив; // Массив из РегламентноеЗадание.
Если ТипЗнч(Идентификатор) = Тип("ОбъектМетаданных") И Идентификатор.Предопределенное Тогда
ВызватьИсключение( НСтр("ru = 'Предопределенное регламентное задание удалить невозможно.'") );
ИначеЕсли ТипЗнч(Идентификатор) = Тип("ОбъектМетаданных") И Не Идентификатор.Предопределенное Тогда
СписокЗаданий = РегламентныеЗадания.ПолучитьРегламентныеЗадания(Новый Структура("Метаданные", Идентификатор));
Иначе
РегламентноеЗадание = РегламентныеЗадания.НайтиПоУникальномуИдентификатору(Идентификатор);
Если РегламентноеЗадание <> Неопределено Тогда
СписокЗаданий.Добавить(РегламентноеЗадание);
КонецЕсли;
КонецЕсли;
Для Каждого РегламентноеЗадание Из СписокЗаданий Цикл
ИдентификаторЗадания = УникальныйИдентификаторЗадания(РегламентноеЗадание);
Блокировка = Новый БлокировкаДанных;
ЭлементБлокировки = Блокировка.Добавить("РегистрСведений.КэшПрограммныхИнтерфейсов");
ЭлементБлокировки.УстановитьЗначение("Идентификатор", Строка(ИдентификаторЗадания));
НачатьТранзакцию();
Попытка
Блокировка.Заблокировать();
Задание = РегламентныеЗадания.НайтиПоУникальномуИдентификатору(ИдентификаторЗадания);
Если Задание <> Неопределено Тогда
Задание.Удалить();
КонецЕсли;
ЗафиксироватьТранзакцию();
Исключение
ОтменитьТранзакцию();
ВызватьИсключение;
КонецПопытки;
КонецЦикла;
КонецПроцедуры
// Изменяет регламентное задание (без учета очереди заданий модели сервиса).
//
// Параметры:
// Идентификатор - ОбъектМетаданных - объект метаданных регламентного задания для поиска
// непредопределенного регламентного задания.
// - Строка - имя метаданных предопределенного регламентного задания
// или строка уникального идентификатора регламентного задания.
// - УникальныйИдентификатор - идентификатор регламентного задания.
// - РегламентноеЗадание - регламентное задание.
//
// Параметры - Структура - параметры, которые следует установить заданию, возможные свойства:
// * Использование - Булево - Истина, если регламентное задание должно выполняться автоматически согласно расписанию.
// * Параметры - Массив - параметры регламентного задания. Количество и состав параметров должны соответствовать
// параметрам метода регламентного задания.
// * Ключ - Строка - прикладной идентификатор регламентного задания.
// * ИнтервалПовтораПриАварийномЗавершении - Число - интервал в секундах, через который нужно перезапускать задание
// в случае его аварийного завершения.
// * Расписание - РасписаниеРегламентногоЗадания - расписание задания.
// * КоличествоПовторовПриАварийномЗавершении - Число - количество повторов при аварийном завершении задания.
//
Процедура ИзменитьРегламентноеЗадание(Знач Идентификатор, Знач Параметры) Экспорт
ВызватьИсключениеЕслиНетПраваАдминистрирования();
Идентификатор = УточненныйИдентификаторЗадания(Идентификатор);
ИдентификаторЗадания = УникальныйИдентификаторЗадания(Идентификатор);
Блокировка = Новый БлокировкаДанных;
ЭлементБлокировки = Блокировка.Добавить("РегистрСведений.КэшПрограммныхИнтерфейсов");
ЭлементБлокировки.УстановитьЗначение("Идентификатор", Строка(ИдентификаторЗадания));
НачатьТранзакцию();
Попытка
Блокировка.Заблокировать();
Задание = РегламентныеЗадания.НайтиПоУникальномуИдентификатору(ИдентификаторЗадания);
Если Задание <> Неопределено Тогда
ЕстьИзменения = Ложь;
ОбновитьЗначениеСвойстваЗадания(Задание,
"Наименование", Параметры, ЕстьИзменения);
ОбновитьЗначениеСвойстваЗадания(Задание,
"Использование", Параметры, ЕстьИзменения);
ОбновитьЗначениеСвойстваЗадания(Задание,
"Ключ", Параметры, ЕстьИзменения);
ОбновитьЗначениеСвойстваЗадания(Задание,
"ИмяПользователя", Параметры, ЕстьИзменения);
ОбновитьЗначениеСвойстваЗадания(Задание,
"ИнтервалПовтораПриАварийномЗавершении", Параметры, ЕстьИзменения);
ОбновитьЗначениеСвойстваЗадания(Задание,
"КоличествоПовторовПриАварийномЗавершении", Параметры, ЕстьИзменения);
ОбновитьЗначениеСвойстваЗадания(Задание,
"Параметры", Параметры, ЕстьИзменения);
ОбновитьЗначениеСвойстваЗадания(Задание,
"Расписание", Параметры, ЕстьИзменения);
Если ЕстьИзменения Тогда
Задание.Записать();
КонецЕсли;
КонецЕсли;
ЗафиксироватьТранзакцию();
Исключение
ОтменитьТранзакцию();
ВызватьИсключение;
КонецПопытки;
КонецПроцедуры
#КонецОбласти
#Область СлужебныеПроцедурыИФункции
Функция УточненныйИдентификаторЗадания(Знач Идентификатор)
Если ТипЗнч(Идентификатор) = Тип("РегламентноеЗадание") Тогда
Идентификатор = Идентификатор.УникальныйИдентификатор;
КонецЕсли;
Если ТипЗнч(Идентификатор) = Тип("Строка") Тогда
ОбъектМетаданных = Метаданные.РегламентныеЗадания.Найти(Идентификатор);
Если ОбъектМетаданных = Неопределено Тогда
Идентификатор = Новый УникальныйИдентификатор(Идентификатор);
Иначе
Идентификатор = ОбъектМетаданных;
КонецЕсли;
КонецЕсли;
Возврат Идентификатор;
КонецФункции
Функция УникальныйИдентификаторЗадания(Знач Идентификатор, ВРазделенномРежимеИдентификаторЗаданияОчереди = Ложь)
Если ТипЗнч(Идентификатор) = Тип("УникальныйИдентификатор") Тогда
@@ -1048,10 +1107,8 @@
Если ВРазделенномРежимеИдентификаторЗаданияОчереди
И ОбщегоНазначения.РазделениеВключено() Тогда
ПараметрыЗадания = Новый Структура;
Если ТипЗнч(Идентификатор) = Тип("ОбъектМетаданных") Тогда
ПараметрыЗадания.Вставить("Метаданные", Идентификатор);
ПараметрыЗадания = Новый Структура("Метаданные", Идентификатор);
СписокЗаданий = НайтиЗадания(ПараметрыЗадания);
Если СписокЗаданий = Неопределено Тогда
Возврат Неопределено;
@@ -1881,7 +1881,7 @@
КонецЕсли;
ВызватьИсключение СтроковыеФункцииКлиентСервер.ПодставитьПараметрыВСтроку(
НСтр("ru='Не существует внешняя компонента с идентификатором %1'", "ru"), Идентификатор);
НСтр("ru='Не существует внешняя компонента с идентификатором %1'"), Идентификатор);
КонецФункции
@@ -12840,6 +12840,9 @@
НачатьТранзакцию();
Попытка
Контекст.ОшибкаОжиданияБлокировкиДанных = Истина;
Если ОбщегоНазначения.ИнформационнаяБазаФайловая() Тогда
РегламентныеЗаданияСервер.ЗаблокироватьРегламентноеЗадание(Новый УникальныйИдентификатор);
КонецЕсли;
Блокировка.Заблокировать();
Контекст.ОшибкаОжиданияБлокировкиДанных = Ложь;
@@ -23839,15 +23842,26 @@
Или ОбщегоНазначения.ИнформационнаяБазаФайловая()
Или ЗаписьПараметровОграниченияДоступаВТекущемСеансе() Тогда
НомерПопыткиБлокировки = 0;
Пока Истина Цикл
НомерПопыткиБлокировки = НомерПопыткиБлокировки + 1;
ЭтоОшибкаБлокировки = Ложь;
Попытка
ОписаниеВерсии = ОписаниеНовойВерсииПараметровОграниченияДоступа(ПараметрыЗаписи);
ОписаниеВерсии = ОписаниеНовойВерсииПараметровОграниченияДоступа(ПараметрыЗаписи,, ЭтоОшибкаБлокировки);
Исключение
Если ЭтоОшибкаБлокировки
И НомерПопыткиБлокировки < 3
И Не ТранзакцияАктивна() Тогда
Продолжить;
КонецЕсли;
Если ЭтоОшибкаПроверкиАктуальностиМетаданных(ИнформацияОбОшибке()) Тогда
ЗапланироватьОбновлениеПараметровОграниченияДоступа(
"НоваяВерсияПараметровОграниченияДоступа", Истина);
КонецЕсли;
ВызватьИсключение;
КонецПопытки;
Прервать;
КонецЦикла;
Иначе
ПараметрыЗаписиВХранилище = Новый ХранилищеЗначения(ПараметрыЗаписи);
ОписаниеВерсии = Неопределено;
@@ -24016,7 +24030,7 @@
// Для функции НоваяВерсияПараметровОграниченияДоступа и
// процедуры ЗаписатьНовуюВерсиюПараметровОграниченияДоступаВФоне.
//
Функция ОписаниеНовойВерсииПараметровОграниченияДоступа(Параметры, БезЗаписи = Ложь)
Функция ОписаниеНовойВерсииПараметровОграниченияДоступа(Параметры, БезЗаписи = Ложь, ЭтоОшибкаБлокировки = Ложь)
Запись = НоваяТаблицаРегистраСведенийПараметрыОграниченияДоступа().Добавить();
ЗаполнитьЗначенияСвойств(Запись, Параметры.ХранимыеПараметры);
@@ -24047,7 +24061,12 @@
Если ОбщегоНазначения.ИнформационнаяБазаФайловая() Тогда
БлокировкаДанных = Новый БлокировкаДанных;
БлокировкаДанных.Добавить("РегистрСведений.ПараметрыОграниченияДоступа");
Попытка
БлокировкаДанных.Заблокировать();
Исключение
ЭтоОшибкаБлокировки = Истина;
ВызватьИсключение;
КонецПопытки
КонецЕсли;
ОписаниеВерсии = ОписаниеПоследнейВерсии(Истина);
Пока Истина Цикл
@@ -2335,13 +2335,24 @@
Для каждого СтрокаСвойство Из ЗначенияСвойств Цикл
ОписаниеПараметра = ИмяПараметраБезСтрокиФормата(ПараметрСвойство.Ключ);
ИдентификаторДляФормул = ОбщегоНазначения.ЗначениеРеквизитаОбъекта(СтрокаСвойство.Свойство, "ИдентификаторДляФормул");
Если СтрСравнить(ИдентификаторДляФормул, ОписаниеПараметра.Имя) = 0 Тогда
Если ПустаяСтрока(ОписаниеПараметра.Формат) Тогда
ПараметрОснования.Значение[ПараметрСвойство.Ключ] = Строка(СтрокаСвойство.Значение);
Иначе
Если ТипЗнч(ПараметрОснования.Значение[ПараметрСвойство.Ключ]) = Тип("Соответствие")
И (Справочники.ТипВсеСсылки().СодержитТип(ТипЗнч(СтрокаСвойство.Значение))
Или ПланыВидовХарактеристик.ТипВсеСсылки().СодержитТип(ТипЗнч(СтрокаСвойство.Значение))) Тогда
ЗаполнитьРеквизитыПоПредмету(ПараметрОснования.Значение[ПараметрСвойство.Ключ], СтрокаСвойство.Значение);
ЗаполнитьРеквизитыСвойствИКонтактнойИнформации(ПараметрОснования.Значение[ПараметрСвойство.Ключ], СтрокаСвойство.Значение);
ИначеЕсли ЗначениеЗаполнено(ОписаниеПараметра.Формат) Тогда
ПараметрОснования.Значение[ПараметрСвойство.Ключ] = Формат(СтрокаСвойство.Значение, ОписаниеПараметра.Формат);
Иначе
ПараметрОснования.Значение[ПараметрСвойство.Ключ] = Строка(СтрокаСвойство.Значение);
КонецЕсли;
КонецЕсли;
КонецЦикла;
КонецЕсли;
КонецЦикла;
@@ -40,6 +40,7 @@
Свойства.Вставить("Должность");
Свойства.Вставить("Организация");
Свойства.Вставить("ОбщееИмя");
Свойства.Вставить("ИННЮЛ");
Если Субъект.Свойство("OGRN")Тогда
Свойства.ОГРН = ПодготовитьСтроку(Субъект.OGRN);
@@ -62,7 +63,7 @@
Свойства.СНИЛС = ПодготовитьСтроку(Субъект.OID1_2_643_100_3);
КонецЕсли;
Свойства.ИНН = ИНН(Субъект);
ЗаполнитьИНН(Свойства, Субъект);
Если Субъект.Свойство("CN") Тогда
Свойства.ОбщееИмя = ПодготовитьСтроку(Субъект.CN);
@@ -88,14 +89,11 @@
КонецЕсли;
КонецЕсли;
ИначеЕсли Субъект.Свойство("OGRNIP") // Признак индивидуального предпринимателя.
Или Субъект.Свойство("OID1_2_643_100_5") // Признак индивидуального предпринимателя.
ИначеЕсли ЗначениеЗаполнено(Свойства.ОГРНИП) // Признак индивидуального предпринимателя.
Или Субъект.Свойство("T") // Признак должностного лица.
Или Субъект.Свойство("OID2_5_4_12") // Признак должностного лица.
Или Субъект.Свойство("SNILS") // Признак физического лица.
Или Субъект.Свойство("OID1_2_643_100_3") // Признак физического лица.
Или ЭтоИННФизЛица(Субъект.Свойство("INN")) // Признак физического лица.
Или ЭтоИННФизЛица(Субъект.Свойство("OID1_2_643_3_131_1_1")) Тогда // Признак физического лица.
Или ЗначениеЗаполнено(Свойства.СНИЛС) // Признак физического лица.
Или ЭтоИННФизЛица(Свойства.ИНН) И НЕ ЗначениеЗаполнено(Свойства.ИННЮЛ) Тогда // Признак физического лица.
Если Свойства.ОбщееИмя <> Свойства.Организация
И Не (Субъект.Свойство("T") И Свойства.ОбщееИмя = ПодготовитьСтроку(Субъект.T))
@@ -138,6 +136,7 @@
Свойства = Новый Структура;
Свойства.Вставить("ОГРН");
Свойства.Вставить("ИНН");
Свойства.Вставить("ИННЮЛ");
Если Издатель.Свойство("OGRN") Тогда
Свойства.ОГРН = ПодготовитьСтроку(Издатель.OGRN);
@@ -146,7 +145,7 @@
Свойства.ОГРН = ПодготовитьСтроку(Издатель.OID1_2_643_100_1);
КонецЕсли;
Свойства.ИНН = ИНН(Издатель);
ЗаполнитьИНН(Свойства, Издатель);
// Конец Локализация
@@ -215,21 +214,31 @@
КонецФункции
Функция ИНН(Данные)
Процедура ЗаполнитьИНН(Свойства, Данные)
ИННЮЛ = Неопределено;
ИНН = Неопределено;
Если Данные.Свойство("INN") Тогда
ИНН = Данные.INN;
ИначеЕсли Данные.Свойство("OID1_2_643_100_4")
И СтрДлина(Данные.OID1_2_643_100_4) = 10 Тогда
ИНН = ПодготовитьСтроку(Данные.OID1_2_643_100_4);
ИначеЕсли Данные.Свойство("OID1_2_643_3_131_1_1") Тогда
ИНН = ПодготовитьСтроку(Данные.OID1_2_643_3_131_1_1);
КонецЕсли;
Возврат ИНН;
Если Данные.Свойство("INNLE") Тогда
ИННЮЛ = Данные.INNLE;
ИначеЕсли Данные.Свойство("OID1_2_643_100_4")
И СтрДлина(Данные.OID1_2_643_100_4) = 10 Тогда
ИННЮЛ = ПодготовитьСтроку(Данные.OID1_2_643_100_4);
ИначеЕсли Данные.Свойство("_1_2_643_100_4") Тогда
ИННЮЛ = ПодготовитьСтроку(Данные._1_2_643_100_4);
КонецЕсли;
Свойства.ИННЮЛ = ИННЮЛ;
Свойства.ИНН = ИНН;
КонецПроцедуры
КонецФункции
// Конец Локализация
#КонецОбласти
@@ -255,6 +255,18 @@
Приоритет.Процедура = "РаботаСФайлами.ПеренестиЭлектронныеПодписиИСертификатыШифрованияВРегистрыСведений";
КонецЕсли;
Если ОбщегоНазначения.ПодсистемаСуществует("СтандартныеПодсистемы.ВнешниеКомпоненты")
И Не ОбщегоНазначения.РазделениеВключено() Тогда
Обработчик = Обработчики.Добавить();
Обработчик.НачальноеЗаполнение = Истина;
Обработчик.Версия = "3.1.5.220";
Обработчик.Комментарий =
НСтр("ru = 'Добавление внешней компоненты ExtraCryptoAPI в справочник Внешние компоненты.'");
Обработчик.Идентификатор = Новый УникальныйИдентификатор("9fcfccd5-ec23-4ba9-8b2c-8f0ae269c271");
Обработчик.Процедура = "ЭлектроннаяПодписьСлужебный.ДобавитьКомпонентуExtraCryptoAPI";
Обработчик.РежимВыполнения = "Оперативно";
КонецЕсли;
КонецПроцедуры
// См. ОбщегоНазначенияПереопределяемый.ПриДобавленииПереименованийОбъектовМетаданных.
@@ -1111,7 +1123,7 @@
УстановитьПривилегированныйРежим(Ложь);
// Незаполненные значения заменим пустыми строками для передачи в сервис криптографии.
Если НЕ ЗначениеЗаполнено(Результат.МаркерБезопасности) Тогда
Если Не ЗначениеЗаполнено(Результат.МаркерБезопасности) Тогда
Результат.МаркерБезопасности = "";
КонецЕсли;
@@ -1690,7 +1702,7 @@
Пароль = МенеджерКриптографии.ПарольДоступаКЗакрытомуКлючу;
ОбъектКомпоненты = ОбъектВнешнейКомпонентыXMLDSig();
ОбъектКомпоненты = ОбъектВнешнейКомпонентыExtraCryptoAPI();
СвойстваКриптопровайдера = СвойстваКриптопровайдера(МенеджерКриптографии);
ОбъектКомпоненты.ПутьККриптопровайдеру = СвойстваКриптопровайдера.Путь;
@@ -1773,7 +1785,7 @@
//
Функция ПроверитьПодпись(Знач КонвертXML, ПараметрыXMLDSig, МенеджерКриптографии, СвойстваКонвертаXML = Неопределено) Экспорт
ОбъектКомпоненты = ОбъектВнешнейКомпонентыXMLDSig();
ОбъектКомпоненты = ОбъектВнешнейКомпонентыExtraCryptoAPI();
СвойстваКриптопровайдера = СвойстваКриптопровайдера(МенеджерКриптографии);
ОбъектКомпоненты.ПутьККриптопровайдеру = СвойстваКриптопровайдера.Путь;
@@ -2007,14 +2019,14 @@
КонецФункции
Функция ОбъектВнешнейКомпонентыXMLDSig()
Функция ОбъектВнешнейКомпонентыExtraCryptoAPI()
ОписаниеКомпоненты = ЭлектроннаяПодписьСлужебныйКлиентСервер.ОписаниеКомпоненты();
ОбъектКомпоненты = ОбщегоНазначения.ПодключитьКомпонентуИзМакета(ОписаниеКомпоненты.ИмяОбъекта,
ОписаниеКомпоненты.ПолноеИмяМакета);
Если ОбъектКомпоненты = Неопределено Тогда
ТекстОшибки = НСтр("ru = 'Не удалось подключить внешнюю компоненту XMLDSig.'");
ТекстОшибки = НСтр("ru = 'Не удалось подключить внешнюю компоненту ExtraCryptoAPI.'");
ВызватьИсключение ТекстОшибки;
КонецЕсли;
@@ -2030,7 +2042,7 @@
ОбъектКомпоненты.СоответствиеOID =
ЭлектроннаяПодписьСлужебныйКлиентСервер.ИдентификаторыАлгоритмовХешированияИОткрытогоКлюча();
Исключение
ТекстОшибки = НСтр("ru = 'При установке свойства СоответствиеOID компоненты XMLDSig произошла ошибка:'")
ТекстОшибки = НСтр("ru = 'При установке свойства СоответствиеOID компоненты ExtraCryptoAPI произошла ошибка:'")
+ Символы.ПС + ПодробноеПредставлениеОшибки(ИнформацияОбОшибке());
ВызватьИсключение ТекстОшибки;
КонецПопытки;
@@ -2054,7 +2066,7 @@
Пароль = МенеджерКриптографии.ПарольДоступаКЗакрытомуКлючу;
ОбъектКомпоненты = ОбъектВнешнейКомпонентыXMLDSig();
ОбъектКомпоненты = ОбъектВнешнейКомпонентыExtraCryptoAPI();
СвойстваКриптопровайдера = СвойстваКриптопровайдера(МенеджерКриптографии);
ОбъектКомпоненты.ПутьККриптопровайдеру = СвойстваКриптопровайдера.Путь;
@@ -2071,7 +2083,7 @@
Функция ПроверитьПодписьCMS(Подпись, Данные, ПараметрыCMS, МенеджерКриптографии) Экспорт
ОбъектКомпоненты = ОбъектВнешнейКомпонентыXMLDSig();
ОбъектКомпоненты = ОбъектВнешнейКомпонентыExtraCryptoAPI();
СвойстваКриптопровайдера = СвойстваКриптопровайдера(МенеджерКриптографии);
ОбъектКомпоненты.ПутьККриптопровайдеру = СвойстваКриптопровайдера.Путь;
@@ -2123,13 +2135,13 @@
Попытка
КанонизированныйТекстXML = ОбъектКомпоненты.C14N(КонвертXML, XPath);
Исключение
ТекстОшибки = НСтр("ru = 'Ошибка вызова метода C14N компоненты XMLDSig.'")
ТекстОшибки = НСтр("ru = 'Ошибка вызова метода C14N компоненты ExtraCryptoAPI.'")
+ Символы.ПС + ПодробноеПредставлениеОшибки(ИнформацияОбОшибке());
ВызватьИсключение ТекстОшибки;
КонецПопытки;
Если КанонизированныйТекстXML = Неопределено Тогда
ТекстОшибки = НСтр("ru = 'Ошибка вызова метода C14N компоненты XMLDSig.'")
ТекстОшибки = НСтр("ru = 'Ошибка вызова метода C14N компоненты ExtraCryptoAPI.'")
+ Символы.ПС + ОбъектКомпоненты.GetLastError();
ВызватьИсключение ТекстОшибки;
КонецЕсли;
@@ -2187,13 +2199,13 @@
КанонизированныйТекстXML = ОбъектКомпоненты.c14n_body(ТекстXML,
Алгоритм.Версия, Алгоритм.СКомментариями);
Исключение
ТекстОшибки = НСтр("ru = 'Ошибка вызова метода C14N_body компоненты XMLDSig.'")
ТекстОшибки = НСтр("ru = 'Ошибка вызова метода C14N_body компоненты ExtraCryptoAPI.'")
+ Символы.ПС + ПодробноеПредставлениеОшибки(ИнформацияОбОшибке());
ВызватьИсключение ТекстОшибки;
КонецПопытки;
Если КанонизированныйТекстXML = Неопределено Тогда
ТекстОшибки = НСтр("ru = 'Ошибка вызова метода C14N_body компоненты XMLDSig.'")
ТекстОшибки = НСтр("ru = 'Ошибка вызова метода C14N_body компоненты ExtraCryptoAPI.'")
+ Символы.ПС + ОбъектКомпоненты.GetLastError();
ВызватьИсключение ТекстОшибки;
КонецЕсли;
@@ -2207,13 +2219,13 @@
Попытка
КанонизированныйТекстXML = ОбъектКомпоненты.TransformSMEV(ТекстXML);
Исключение
ТекстОшибки = НСтр("ru = 'Ошибка вызова метода TransformSMEV компоненты XMLDSig.'")
ТекстОшибки = НСтр("ru = 'Ошибка вызова метода TransformSMEV компоненты ExtraCryptoAPI.'")
+ Символы.ПС + ПодробноеПредставлениеОшибки(ИнформацияОбОшибке());
ВызватьИсключение ТекстОшибки;
КонецПопытки;
Если КанонизированныйТекстXML = Неопределено Тогда
ТекстОшибки = НСтр("ru = 'Ошибка вызова метода TransformSMEV компоненты XMLDSig.'")
ТекстОшибки = НСтр("ru = 'Ошибка вызова метода TransformSMEV компоненты ExtraCryptoAPI.'")
+ Символы.ПС + ОбъектКомпоненты.GetLastError();
ВызватьИсключение ТекстОшибки;
КонецЕсли;
@@ -2230,13 +2242,13 @@
OIDАлгоритмаХеширования,
ТипКриптопровайдера);
Исключение
ТекстОшибки = НСтр("ru = 'Ошибка вызова метода Hash компоненты XMLDSig.'")
ТекстОшибки = НСтр("ru = 'Ошибка вызова метода Hash компоненты ExtraCryptoAPI.'")
+ Символы.ПС + ПодробноеПредставлениеОшибки(ИнформацияОбОшибке());
ВызватьИсключение ТекстОшибки;
КонецПопытки;
Если АтрибутDigestValue = Неопределено Тогда
ТекстОшибки = НСтр("ru = 'Ошибка вызова метода Hash компоненты XMLDSig.'")
ТекстОшибки = НСтр("ru = 'Ошибка вызова метода Hash компоненты ExtraCryptoAPI.'")
+ Символы.ПС + ОбъектКомпоненты.GetLastError();
ВызватьИсключение ТекстОшибки;
КонецЕсли;
@@ -2257,13 +2269,13 @@
СертификатКриптографииBase64,
ПарольДоступаКЗакрытомуКлючу);
Исключение
ТекстОшибки = НСтр("ru = 'Ошибка вызова метода Sign компоненты XMLDSig.'")
ТекстОшибки = НСтр("ru = 'Ошибка вызова метода Sign компоненты ExtraCryptoAPI.'")
+ Символы.ПС + ПодробноеПредставлениеОшибки(ИнформацияОбОшибке());
ВызватьИсключение ТекстОшибки;
КонецПопытки;
Если АтрибутSignatureValue = Неопределено Тогда
ТекстОшибки = НСтр("ru = 'Ошибка вызова метода Sign компоненты XMLDSig.'")
ТекстОшибки = НСтр("ru = 'Ошибка вызова метода Sign компоненты ExtraCryptoAPI.'")
+ Символы.ПС + ОбъектКомпоненты.GetLastError();
ВызватьИсключение ТекстОшибки;
КонецЕсли;
@@ -2282,13 +2294,13 @@
СертификатКриптографииBase64,
ТипКриптопровайдера);
Исключение
ТекстОшибки = НСтр("ru = 'Ошибка вызова метода VerifySign компоненты XMLDSig.'")
ТекстОшибки = НСтр("ru = 'Ошибка вызова метода VerifySign компоненты ExtraCryptoAPI.'")
+ Символы.ПС + ПодробноеПредставлениеОшибки(ИнформацияОбОшибке());
ВызватьИсключение ТекстОшибки;
КонецПопытки;
Если ПодписьВерна = Неопределено Тогда
ТекстОшибки = НСтр("ru = 'Ошибка вызова метода VerifySign компоненты XMLDSig.'")
ТекстОшибки = НСтр("ru = 'Ошибка вызова метода VerifySign компоненты ExtraCryptoAPI.'")
+ Символы.ПС + ОбъектКомпоненты.GetLastError();
ВызватьИсключение ТекстОшибки;
КонецЕсли;
@@ -2313,13 +2325,13 @@
ПараметрыКомпоненты.Открепленная,
ПараметрыКомпоненты.ВключениеСертификатовВПодпись);
Исключение
ТекстОшибки = НСтр("ru = 'Ошибка вызова метода CMSSign компоненты XMLDSig.'")
ТекстОшибки = НСтр("ru = 'Ошибка вызова метода CMSSign компоненты ExtraCryptoAPI.'")
+ Символы.ПС + ПодробноеПредставлениеОшибки(ИнформацияОбОшибке());
ВызватьИсключение ТекстОшибки;
КонецПопытки;
Если Не ЗначениеЗаполнено(АтрибутSignatureValue) Тогда
ТекстОшибки = НСтр("ru = 'Ошибка вызова метода CMSSign компоненты XMLDSig.'")
ТекстОшибки = НСтр("ru = 'Ошибка вызова метода CMSSign компоненты ExtraCryptoAPI.'")
+ Символы.ПС + ОбъектКомпоненты.GetLastError();
ВызватьИсключение ТекстОшибки;
КонецЕсли;
@@ -2335,13 +2347,13 @@
ПодписьВерна = ОбъектКомпоненты.CMSVerifySign(Подпись,
ПараметрыCMS.Открепленная, Данные, ТипКриптопровайдера, Сертификат);
Исключение
ТекстОшибки = НСтр("ru = 'Ошибка вызова метода CMSVerifySign компоненты XMLDSig.'")
ТекстОшибки = НСтр("ru = 'Ошибка вызова метода CMSVerifySign компоненты ExtraCryptoAPI.'")
+ Символы.ПС + ПодробноеПредставлениеОшибки(ИнформацияОбОшибке());
ВызватьИсключение ТекстОшибки;
КонецПопытки;
Если ПодписьВерна = Неопределено Тогда
ТекстОшибки = НСтр("ru = 'Ошибка вызова метода CMSVerifySign компоненты XMLDSig.'")
ТекстОшибки = НСтр("ru = 'Ошибка вызова метода CMSVerifySign компоненты ExtraCryptoAPI.'")
+ Символы.ПС + ОбъектКомпоненты.GetLastError();
ВызватьИсключение ТекстОшибки;
@@ -3058,6 +3070,36 @@
КонецФункции
// Вызывается при переходе на версию конфигурации 3.1.5.220 и при начальном заполнении.
//
Процедура ДобавитьКомпонентуExtraCryptoAPI() Экспорт
Если Не ОбщегоНазначения.ПодсистемаСуществует("СтандартныеПодсистемы.ВнешниеКомпоненты") Тогда
Возврат;
КонецЕсли;
ОписаниеКомпоненты = ЭлектроннаяПодписьСлужебныйКлиентСервер.ОписаниеКомпоненты();
КомпонентаПоследнейВерсииИзМакета = СтандартныеПодсистемыСервер.КомпонентаПоследнейВерсии(
ОписаниеКомпоненты.ИмяОбъекта, ОписаниеКомпоненты.ПолноеИмяМакета);
МестоположениеМакетаРазделенное = СтрРазделить(КомпонентаПоследнейВерсииИзМакета.Местоположение, ".");
ДвоичныеДанные = Справочники.СертификатыКлючейЭлектроннойПодписиИШифрования.ПолучитьМакет(
МестоположениеМакетаРазделенное.Получить(МестоположениеМакетаРазделенное.ВГраница()));
МодульВнешниеКомпонентыСлужебный = ОбщегоНазначения.ОбщийМодуль("ВнешниеКомпонентыСлужебный");
ПараметрыКомпоненты = МодульВнешниеКомпонентыСлужебный.ПараметрыЗагрузки();
ПараметрыКомпоненты.Идентификатор = ОписаниеКомпоненты.ИмяОбъекта;
ПараметрыКомпоненты.Наименование = НСтр("ru='ExtraCryptoAPI для 1С:Предприятие'", ОбщегоНазначения.КодОсновногоЯзыка());
ПараметрыКомпоненты.Версия = КомпонентаПоследнейВерсииИзМакета.Версия;
ПараметрыКомпоненты.ОписаниеОшибки = СтроковыеФункцииКлиентСервер.ПодставитьПараметрыВСтроку(
НСтр("ru = 'Добавлена обработчиком обновления %1.'", ОбщегоНазначения.КодОсновногоЯзыка()), ТекущаяДатаСеанса());
ПараметрыКомпоненты.ОбновлятьСПортала1СИТС = Истина;
ПараметрыКомпоненты.Данные = ДвоичныеДанные;
МодульВнешниеКомпонентыСлужебный.ЗагрузитьКомпонентуИзДвоичныхДанных(ПараметрыКомпоненты, Ложь);
КонецПроцедуры
#Область СвойстваКонвертаXML
Функция ОбработатьУзелSignedInfo(УзелSignedInfo, СвойстваКонвертаXML)
@@ -4042,6 +4084,7 @@
Иначе
ТехническаяИнформация = ТехническаяИнформация
+ Символы.ПС + ТехническаяИнформацияОКомпьютере()
+ Символы.ПС + Символы.ПС + ТехническаяИнформацияОКомпоненте()
+ Символы.ПС + ТехническаяИнформацияОПрограммах();
КонецЕсли;
@@ -4088,6 +4131,19 @@
КонецФункции
Функция ТехническаяИнформацияОКомпоненте()
ВерсияКомпоненты = "";
Попытка
ВерсияКомпоненты = ОбъектВнешнейКомпонентыExtraCryptoAPI().ПолучитьВерсию();
Исключение
ВерсияКомпоненты = КраткоеПредставлениеОшибки(ИнформацияОбОшибке());
КонецПопытки;
Возврат НСтр("ru = 'Версия компоненты ExtraCryptoAPI на сервере'") + " - " + ВерсияКомпоненты;
КонецФункции
Функция ТехническаяИнформацияОПрограммах()
ИспользуемыеПрограммы = ЭлектроннаяПодписьСлужебныйВызовСервера.ИспользуемыеПрограммы();
@@ -296,7 +296,7 @@
Если Параметры.Операция <> "Подписание" Тогда
ОшибкаНаСервере.Вставить("ОписаниеОшибки",
НСтр("ru = 'Внешняя компонента XMLDSig может использоваться только для подписания.'"));
НСтр("ru = 'Внешняя компонента ExtraCryptoAPI может использоваться только для подписания.'"));
Возврат Ложь;
КонецЕсли;
@@ -315,7 +315,7 @@
Если Параметры.Операция <> "Подписание" Тогда
ОшибкаНаСервере.Вставить("ОписаниеОшибки",
НСтр("ru = 'Внешняя компонента XMLDSig (включающая CMS) может использоваться только для подписания.'"));
НСтр("ru = 'Внешняя компонента ExtraCryptoAPI может использоваться только для подписания.'"));
Возврат Ложь;
КонецЕсли;
@@ -3819,7 +3819,7 @@
Если Контекст.Операция <> "Подписание" Тогда
Ошибка = Новый Структура("ОписаниеОшибки",
НСтр("ru = 'Внешняя компонента XMLDSig может использоваться только для подписания.'"));
НСтр("ru = 'Внешняя компонента ExtraCryptoAPI может использоваться только для подписания.'"));
ВыполнитьНаСторонеПослеЦикла(Ошибка, Контекст);
Возврат;
КонецЕсли;
@@ -3843,7 +3843,7 @@
ИначеЕсли ЭтоCMS Тогда
Если Контекст.Операция <> "Подписание" Тогда
Ошибка = Новый Структура("ОписаниеОшибки",
НСтр("ru = 'Внешняя компонента XMLDSig может использоваться только для подписания.'"));
НСтр("ru = 'Внешняя компонента ExtraCryptoAPI может использоваться только для подписания.'"));
ВыполнитьНаСторонеПослеЦикла(Ошибка, Контекст);
Возврат;
КонецЕсли;
@@ -4624,8 +4624,8 @@
ПодключитьКомпоненту(Контекст,
?(Контекст.ТипПодписи = "CMS",
НСтр("ru = 'Для проверки подписи CMS необходима установка компоненты XMLDSig'"),
НСтр("ru = 'Для проверки подписи XML необходима установка компоненты XMLDSig'")));
НСтр("ru = 'Для проверки подписи CMS необходима установка компоненты ExtraCryptoAPI'"),
НСтр("ru = 'Для проверки подписи XML необходима установка компоненты ExtraCryptoAPI'")));
КонецПроцедуры
@@ -4633,6 +4633,7 @@
ПараметрыПодключения = ОбщегоНазначенияКлиент.ПараметрыПодключенияКомпоненты();
ПараметрыПодключения.ТекстПояснения = ТекстПояснения;
ПараметрыПодключения.ПредложитьЗагрузить = Истина;
ОписаниеКомпоненты = ЭлектроннаяПодписьСлужебныйКлиентСервер.ОписаниеКомпоненты();
@@ -4657,7 +4658,7 @@
ЗавершитьОперациюСОшибкой(
Контекст,
НСтр("ru = 'Операция невозможна. Требуется установка компоненты XMLDSig.'"));
НСтр("ru = 'Операция невозможна. Требуется установка компоненты ExtraCryptoAPI.'"));
Иначе
@@ -4697,7 +4698,7 @@
СтандартнаяОбработка = Ложь;
ЗавершитьОперациюСОшибкой(Контекст,
НСтр("ru = 'При установке свойства СоответствиеOID компоненты XMLDSig произошла ошибка:'")
НСтр("ru = 'При установке свойства СоответствиеOID компоненты ExtraCryptoAPI произошла ошибка:'")
+ Символы.ПС + ПодробноеПредставлениеОшибки(ИнформацияОбОшибке));
КонецПроцедуры
@@ -4766,7 +4767,7 @@
Иначе
ЗавершитьОперациюСОшибкой(
Контекст,
НСтр("ru = 'Не установлен режим работы компоненты XMLDSig.'"));
НСтр("ru = 'Не установлен режим работы компоненты ExtraCryptoAPI.'"));
КонецЕсли;
ИначеЕсли Контекст.ТипПодписи = "CMS" Тогда
@@ -4779,13 +4780,13 @@
Иначе
ЗавершитьОперациюСОшибкой(
Контекст,
НСтр("ru = 'Не установлен режим работы компоненты XMLDSig.'"));
НСтр("ru = 'Не установлен режим работы компоненты ExtraCryptoAPI.'"));
КонецЕсли;
Иначе
ЗавершитьОперациюСОшибкой(
Контекст,
НСтр("ru = 'Не установлен тип подписи компоненты XMLDSig.'"));
НСтр("ru = 'Не установлен тип подписи компоненты ExtraCryptoAPI.'"));
КонецЕсли;
КонецПроцедуры
@@ -4797,7 +4798,7 @@
ДвоичныеДанныеСертификата);
ПодключитьКомпоненту(Контекст,
НСтр("ru = 'Для подписания XML необходима установка компоненты XMLDSig'"));
НСтр("ru = 'Для подписания XML необходима установка компоненты ExtraCryptoAPI'"));
КонецПроцедуры
@@ -4808,7 +4809,7 @@
ДвоичныеДанныеСертификата);
ПодключитьКомпоненту(Контекст,
НСтр("ru = 'Для подписания CMS необходима установка компоненты XMLDSig'"));
НСтр("ru = 'Для подписания CMS необходима установка компоненты ExtraCryptoAPI'"));
КонецПроцедуры
@@ -4831,7 +4832,7 @@
ПараметрыCMSSign.ВключениеСертификатовВПодпись);
Исключение
ЗавершитьОперациюСОшибкой(Контекст,
НСтр("ru = 'Ошибка вызова метода CMSSign компоненты XMLDSig.'")
НСтр("ru = 'Ошибка вызова метода CMSSign компоненты ExtraCryptoAPI.'")
+ Символы.ПС + ПодробноеПредставлениеОшибки(ИнформацияОбОшибке()));
КонецПопытки;
@@ -4842,7 +4843,7 @@
СтандартнаяОбработка = Ложь;
ЗавершитьОперациюСОшибкой(Контекст,
НСтр("ru = 'Ошибка вызова метода CMSSign компоненты XMLDSig.'")
НСтр("ru = 'Ошибка вызова метода CMSSign компоненты ExtraCryptoAPI.'")
+ Символы.ПС + ПодробноеПредставлениеОшибки(ИнформацияОбОшибке));
КонецПроцедуры
@@ -4876,7 +4877,7 @@
Null);
Исключение
ЗавершитьОперациюСОшибкой(Контекст,
НСтр("ru = 'Ошибка вызова метода CMSVerifySign компоненты XMLDSig.'")
НСтр("ru = 'Ошибка вызова метода CMSVerifySign компоненты ExtraCryptoAPI.'")
+ Символы.ПС + ПодробноеПредставлениеОшибки(ИнформацияОбОшибке()));
КонецПопытки;
@@ -4887,7 +4888,7 @@
СтандартнаяОбработка = Ложь;
ЗавершитьОперациюСОшибкой(Контекст,
НСтр("ru = 'Ошибка вызова метода CMSVerifySign компоненты XMLDSig.'")
НСтр("ru = 'Ошибка вызова метода CMSVerifySign компоненты ExtraCryptoAPI.'")
+ Символы.ПС + ПодробноеПредставлениеОшибки(ИнформацияОбОшибке));
КонецПроцедуры
@@ -4966,7 +4967,7 @@
Контекст.ТипКриптопровайдера);
Исключение
ЗавершитьОперациюСОшибкой(Контекст,
НСтр("ru = 'Ошибка вызова метода Hash компоненты XMLDSig.'")
НСтр("ru = 'Ошибка вызова метода Hash компоненты ExtraCryptoAPI.'")
+ Символы.ПС + ПодробноеПредставлениеОшибки(ИнформацияОбОшибке()));
КонецПопытки;
@@ -4977,7 +4978,7 @@
СтандартнаяОбработка = Ложь;
ЗавершитьОперациюСОшибкой(Контекст,
НСтр("ru = 'Ошибка вызова метода Hash компоненты XMLDSig.'")
НСтр("ru = 'Ошибка вызова метода Hash компоненты ExtraCryptoAPI.'")
+ Символы.ПС + ПодробноеПредставлениеОшибки(ИнформацияОбОшибке));
КонецПроцедуры
@@ -5037,7 +5038,7 @@
Контекст.МенеджерКриптографии.ПарольДоступаКЗакрытомуКлючу);
Исключение
ЗавершитьОперациюСОшибкой(Контекст,
НСтр("ru = 'Ошибка вызова метода Sign компоненты XMLDSig.'")
НСтр("ru = 'Ошибка вызова метода Sign компоненты ExtraCryptoAPI.'")
+ Символы.ПС + ПодробноеПредставлениеОшибки(ИнформацияОбОшибке()));
КонецПопытки;
@@ -5109,7 +5110,7 @@
Контекст.ТипКриптопровайдера);
Исключение
ЗавершитьОперациюСОшибкой(Контекст,
НСтр("ru = 'Ошибка вызова метода VerifySign компоненты XMLDSig.'")
НСтр("ru = 'Ошибка вызова метода VerifySign компоненты ExtraCryptoAPI.'")
+ Символы.ПС + ПодробноеПредставлениеОшибки(ИнформацияОбОшибке()));
КонецПопытки;
@@ -5120,7 +5121,7 @@
СтандартнаяОбработка = Ложь;
ЗавершитьОперациюСОшибкой(Контекст,
НСтр("ru = 'Ошибка вызова метода VerifySign компоненты XMLDSig.'")
НСтр("ru = 'Ошибка вызова метода VerifySign компоненты ExtraCryptoAPI.'")
+ Символы.ПС + ПодробноеПредставлениеОшибки(ИнформацияОбОшибке));
КонецПроцедуры
@@ -5169,7 +5170,7 @@
Контекст.ТипКриптопровайдера);
Исключение
ЗавершитьОперациюСОшибкой(Контекст,
НСтр("ru = 'Ошибка вызова метода Hash компоненты XMLDSig.'")
НСтр("ru = 'Ошибка вызова метода Hash компоненты ExtraCryptoAPI.'")
+ Символы.ПС + ПодробноеПредставлениеОшибки(ИнформацияОбОшибке()));
КонецПопытки;
@@ -5180,7 +5181,7 @@
СтандартнаяОбработка = Ложь;
ЗавершитьОперациюСОшибкой(Контекст,
НСтр("ru = 'Ошибка вызова метода Hash компоненты XMLDSig.'")
НСтр("ru = 'Ошибка вызова метода Hash компоненты ExtraCryptoAPI.'")
+ Символы.ПС + ПодробноеПредставлениеОшибки(ИнформацияОбОшибке));
КонецПроцедуры
@@ -5254,7 +5255,7 @@
ОбъектКомпоненты.НачатьВызовC14N(ОписаниеОповещения, КонвертXML, XPath);
Исключение
ЗавершитьОперациюСОшибкой(Контекст,
НСтр("ru = 'Ошибка вызова метода C14N компоненты XMLDSig.'")
НСтр("ru = 'Ошибка вызова метода C14N компоненты ExtraCryptoAPI.'")
+ Символы.ПС + ПодробноеПредставлениеОшибки(ИнформацияОбОшибке()));
КонецПопытки;
@@ -5277,7 +5278,7 @@
СтандартнаяОбработка = Ложь;
ЗавершитьОперациюСОшибкой(Контекст,
НСтр("ru = 'Ошибка вызова метода C14N компоненты XMLDSig.'")
НСтр("ru = 'Ошибка вызова метода C14N компоненты ExtraCryptoAPI.'")
+ Символы.ПС + ПодробноеПредставлениеОшибки(ИнформацияОбОшибке));
КонецПроцедуры
@@ -5357,7 +5358,7 @@
// АПК:216-вкл.
Исключение
ЗавершитьОперациюСОшибкой(Контекст,
НСтр("ru = 'Ошибка вызова метода C14N_body компоненты XMLDSig.'")
НСтр("ru = 'Ошибка вызова метода C14N_body компоненты ExtraCryptoAPI.'")
+ Символы.ПС + ПодробноеПредставлениеОшибки(ИнформацияОбОшибке()));
КонецПопытки;
Иначе
@@ -5368,7 +5369,7 @@
Контекст.ОбъектКомпоненты.НачатьВызовTransformSMEV(Оповещение, ТекстXML);
Исключение
ЗавершитьОперациюСОшибкой(Контекст,
НСтр("ru = 'Ошибка вызова метода TransformSMEV компоненты XMLDSig.'")
НСтр("ru = 'Ошибка вызова метода TransformSMEV компоненты ExtraCryptoAPI.'")
+ Символы.ПС + ПодробноеПредставлениеОшибки(ИнформацияОбОшибке()));
КонецПопытки;
КонецЕсли;
@@ -5395,7 +5396,7 @@
СтандартнаяОбработка = Ложь;
ЗавершитьОперациюСОшибкой(Контекст,
НСтр("ru = 'Ошибка вызова метода C14N_body компоненты XMLDSig.'")
НСтр("ru = 'Ошибка вызова метода C14N_body компоненты ExtraCryptoAPI.'")
+ Символы.ПС + ПодробноеПредставлениеОшибки(ИнформацияОбОшибке));
КонецПроцедуры
@@ -5417,7 +5418,7 @@
СтандартнаяОбработка = Ложь;
ЗавершитьОперациюСОшибкой(Контекст,
НСтр("ru = 'Ошибка вызова метода TransformSMEV компоненты XMLDSig.'")
НСтр("ru = 'Ошибка вызова метода TransformSMEV компоненты ExtraCryptoAPI.'")
+ Символы.ПС + ПодробноеПредставлениеОшибки(ИнформацияОбОшибке));
КонецПроцедуры
@@ -5441,7 +5442,7 @@
Контекст.ОбъектКомпоненты.НачатьВызовGetLastError(Оповещение);
Исключение
ЗавершитьОперациюСОшибкой(Контекст,
НСтр("ru = 'Ошибка вызова метода GetLastError компоненты XMLDSig.'")
НСтр("ru = 'Ошибка вызова метода GetLastError компоненты ExtraCryptoAPI.'")
+ Символы.ПС + ПодробноеПредставлениеОшибки(ИнформацияОбОшибке()));
КонецПопытки;
@@ -5452,7 +5453,7 @@
СтандартнаяОбработка = Ложь;
ЗавершитьОперациюСОшибкой(Контекст,
НСтр("ru = 'Ошибка вызова метода GetLastError компоненты XMLDSig.'")
НСтр("ru = 'Ошибка вызова метода GetLastError компоненты ExtraCryptoAPI.'")
+ Символы.ПС + ПодробноеПредставлениеОшибки(ИнформацияОбОшибке));
КонецПроцедуры
@@ -6743,15 +6744,15 @@
Контекст.Вставить("ОбработчикЗавершения", ОбработчикЗавершения);
Контекст.Вставить("СопроводительныйТекст", СопроводительныйТекст);
ДиагностическаяИнформацияОПрограммах(
Новый ОписаниеОповещения("ПослеСбораТехническойИнформации", ЭтотОбъект, Контекст));
ПолучитьВерсиюКомпоненты(
Новый ОписаниеОповещения("ПослеСбораТехническойИнформацииОКомпоненте", ЭтотОбъект, Контекст));
КонецПроцедуры
Функция ДиагностическаяИнформацияОКомпьютере()
Возврат НСтр("ru = 'Клиент:'") + Символы.ПС
+ ЭлектроннаяПодписьСлужебныйКлиентСервер.ДиагностическаяИнформацияОКомпьютере();
+ ЭлектроннаяПодписьСлужебныйКлиентСервер.ДиагностическаяИнформацияОКомпьютере(Истина);
КонецФункции
@@ -6813,7 +6814,17 @@
КонецПроцедуры
Процедура ПослеСбораТехническойИнформации(ИнформацияОПрограммах, Контекст) Экспорт
Процедура ПослеСбораТехническойИнформацииОКомпоненте(ИнформацияОКомпоненте, Контекст) Экспорт
Контекст.СопроводительныйТекст = Контекст.СопроводительныйТекст + Символы.ПС
+ НСтр("ru = 'Версия компоненты ExtraCryptoAPI на клиенте'") + " - " + ИнформацияОКомпоненте + Символы.ПС;
ДиагностическаяИнформацияОПрограммах(
Новый ОписаниеОповещения("ПослеСбораТехническойИнформацииОПрограммах", ЭтотОбъект, Контекст));
КонецПроцедуры
Процедура ПослеСбораТехническойИнформацииОПрограммах(ИнформацияОПрограммах, Контекст) Экспорт
Контекст.СопроводительныйТекст = Контекст.СопроводительныйТекст + ИнформацияОПрограммах;
Контекст.Вставить("АдресАрхива", ЭлектроннаяПодписьСлужебныйВызовСервера.АдресАрхиваТехническойИнформации(
@@ -6834,6 +6845,59 @@
КонецПроцедуры
Процедура ПолучитьВерсиюКомпоненты(Оповещение)
ПараметрыПодключения = ОбщегоНазначенияКлиент.ПараметрыПодключенияКомпоненты();
ПараметрыПодключения.ТекстПояснения = НСтр("ru = 'Для получения версии требуется установка компоненты ExtraCryptoAPI'");
ПараметрыПодключения.ПредложитьЗагрузить = Ложь;
ПараметрыПодключения.ПредложитьУстановить = Ложь;
ОписаниеКомпоненты = ЭлектроннаяПодписьСлужебныйКлиентСервер.ОписаниеКомпоненты();
ОбщегоНазначенияКлиент.ПодключитьКомпонентуИзМакета(
Новый ОписаниеОповещения("ПолучитьВерсиюПослеПодключенияКомпоненты", ЭтотОбъект, Оповещение),
ОписаниеКомпоненты.ИмяОбъекта,
ОписаниеКомпоненты.ПолноеИмяМакета,
ПараметрыПодключения);
КонецПроцедуры
// Продолжение процедуры ПолучитьВерсиюКомпоненты.
Процедура ПолучитьВерсиюПослеПодключенияКомпоненты(Результат, Оповещение) Экспорт
ВерсияКомпоненты = "";
Если Результат.Подключено Тогда
Попытка
ОповещениеПослеПолученияВерсии = Новый ОписаниеОповещения("ПослеПолученияВерсииКомпоненты", ЭтотОбъект, Оповещение);
ВерсияКомпоненты = Результат.ПодключаемыйМодуль.НачатьВызовПолучитьВерсию(ОповещениеПослеПолученияВерсии);
Возврат;
Исключение
ВерсияКомпоненты = СтроковыеФункцииКлиентСервер.ПодставитьПараметрыВСтроку(
НСтр("ru = 'Не удалось определить версию компоненты. %1'"), КраткоеПредставлениеОшибки(ИнформацияОбОшибке()));
КонецПопытки;
Иначе
Если ПустаяСтрока(Результат.ОписаниеОшибки) Тогда
// Пользователь отказался от установки.
ВерсияКомпоненты = НСтр("ru = 'Компонента ExtraCryptoAPI не установлена.'");
Иначе
// Установка не удалась, описание ошибки в Результат.ОписаниеОшибки.
ВерсияКомпоненты = СтроковыеФункцииКлиентСервер.ПодставитьПараметрыВСтроку(
НСтр("ru = 'Компонента ExtraCryptoAPI не установлена (%1).'"), Результат.ОписаниеОшибки);
КонецЕсли;
КонецЕсли;
ВыполнитьОбработкуОповещения(Оповещение, ВерсияКомпоненты);
КонецПроцедуры
Процедура ПослеПолученияВерсииКомпоненты(ВерсияКомпоненты, Параметры, Оповещение) Экспорт
ВыполнитьОбработкуОповещения(Оповещение, ВерсияКомпоненты);
КонецПроцедуры
#КонецОбласти
Процедура ПоказатьРезультатПроверкиСертификата(Сертификат, Результат, ВладелецФормы,
@@ -1329,7 +1329,7 @@
КонецФункции
// Описание подключения внешней компоненты (XMLDSIG).
// Описание подключения внешней компоненты (ExtraCryptoAPI).
//
// Возвращаемое значение:
// Структура:
@@ -1339,10 +1339,9 @@
Функция ОписаниеКомпоненты() Экспорт
Параметры = Новый Структура;
Параметры.Вставить("ИмяОбъекта", "XMLDSignAddIn");
Параметры.Вставить("ИмяОбъекта", "ExtraCryptoAPI");
Параметры.Вставить("ПолноеИмяМакета",
"Справочник.СертификатыКлючейЭлектроннойПодписиИШифрования.Макет.КомпонентаXMLDSig");
"Справочник.СертификатыКлючейЭлектроннойПодписиИШифрования.Макет.КомпонентаExtraCryptoAPI");
Возврат Параметры;
КонецФункции
@@ -1593,7 +1592,7 @@
Если ПараметрыCMS.ТипПодписи = "CAdES-BES" Тогда
ПараметрыКомпоненты.Вставить("ТипПодписи", 0);
Иначе
ВызватьИсключение НСтр("ru = 'Некорректный параметр ТипПодписи метода CMSSign компоненты XMLDSig.'");
ВызватьИсключение НСтр("ru = 'Некорректный параметр ТипПодписи метода CMSSign компоненты ExtraCryptoAPI.'");
КонецЕсли;
Если ТипЗнч(Данные) = Тип("Строка")
@@ -1601,13 +1600,13 @@
ПараметрыКомпоненты.Вставить("Данные", Данные);
Иначе
ВызватьИсключение НСтр("ru = 'Некорректный параметр Данные метода CMSSign компоненты XMLDSig.'");
ВызватьИсключение НСтр("ru = 'Некорректный параметр Данные метода CMSSign компоненты ExtraCryptoAPI.'");
КонецЕсли;
Если ТипЗнч(ПараметрыCMS.Открепленная) = Тип("Булево") Тогда
ПараметрыКомпоненты.Вставить("Открепленная", ПараметрыCMS.Открепленная);
Иначе
ВызватьИсключение НСтр("ru = 'Некорректный параметр Открепленная метода CMSSign компоненты XMLDSig.'");
ВызватьИсключение НСтр("ru = 'Некорректный параметр Открепленная метода CMSSign компоненты ExtraCryptoAPI.'");
КонецЕсли;
// 0 - РежимВключенияСертификатовКриптографии.НеВключать.
@@ -1851,12 +1850,19 @@
// Возвращаемое значение:
// Строка - информация о компьютере.
//
Функция ДиагностическаяИнформацияОКомпьютере() Экспорт
Функция ДиагностическаяИнформацияОКомпьютере(ДляКлиента = Ложь) Экспорт
СисИнфо = Новый СистемнаяИнформация;
ПрограммаПросмотра = ?(ДляКлиента, СисИнфо.ИнформацияПрограммыПросмотра, "");
Если Не ПустаяСтрока(ПрограммаПросмотра) Тогда
ПрограммаПросмотра = Символы.ПС + НСтр("ru = 'Программа просмотра:'") + " " + ПрограммаПросмотра;
КонецЕсли;
Возврат НСтр("ru = 'Операционная система:'") + " " + СисИнфо.ВерсияОС
+ Символы.ПС + НСтр("ru = 'Версия приложения:'") + " " + СисИнфо.ВерсияПриложения
+ Символы.ПС + НСтр("ru = 'Тип платформы:'") + " " + СисИнфо.ТипПлатформы;
+ Символы.ПС + НСтр("ru = 'Тип платформы:'") + " " + СисИнфо.ТипПлатформы
+ ПрограммаПросмотра;
КонецФункции
+11 -10
View File
@@ -1,17 +1,17 @@
<?xml version="1.0" encoding="UTF-8"?>
<mdclass:Configuration xmlns:mdclass="http://g5.1c.ru/v8/dt/metadata/mdclass" uuid="dd4147ca-2228-11ec-5e88-0242ac110002">
<mdclass:Configuration xmlns:mdclass="http://g5.1c.ru/v8/dt/metadata/mdclass" uuid="e6b857ac-2d28-11ec-5082-0242ac110002">
<name>БиблиотекаСтандартныхПодсистем</name>
<synonym>
<key>ru</key>
<value>Библиотека стандартных подсистем, редакция 3.1</value>
</synonym>
<containedObjects classId="9cd510cd-abfc-11d4-9434-004095e12fc7" objectId="dd4147cb-2228-11ec-5e88-0242ac110002"/>
<containedObjects classId="9fcd25a0-4822-11d4-9414-008048da11f9" objectId="dd414810-2228-11ec-5e88-0242ac110002"/>
<containedObjects classId="e3687481-0a87-462c-a166-9f34594f9bba" objectId="dd414811-2228-11ec-5e88-0242ac110002"/>
<containedObjects classId="9de14907-ec23-4a07-96f0-85521cb6b53b" objectId="dd41481a-2228-11ec-5e88-0242ac110002"/>
<containedObjects classId="51f2d5d8-ea4d-4064-8892-82951750031e" objectId="dd41481b-2228-11ec-5e88-0242ac110002"/>
<containedObjects classId="e68182ea-4237-4383-967f-90c1e3370bc7" objectId="dd414824-2228-11ec-5e88-0242ac110002"/>
<containedObjects classId="fb282519-d103-4dd3-bc12-cb271d631dfc" objectId="42e6992d-8cc8-44a1-ac8f-6b1330ed99ce"/>
<containedObjects classId="9cd510cd-abfc-11d4-9434-004095e12fc7" objectId="e6b857b6-2d28-11ec-5082-0242ac110002"/>
<containedObjects classId="9fcd25a0-4822-11d4-9414-008048da11f9" objectId="e6b857d4-2d28-11ec-5082-0242ac110002"/>
<containedObjects classId="e3687481-0a87-462c-a166-9f34594f9bba" objectId="e6b857de-2d28-11ec-5082-0242ac110002"/>
<containedObjects classId="9de14907-ec23-4a07-96f0-85521cb6b53b" objectId="e6b857df-2d28-11ec-5082-0242ac110002"/>
<containedObjects classId="51f2d5d8-ea4d-4064-8892-82951750031e" objectId="e6b857e8-2d28-11ec-5082-0242ac110002"/>
<containedObjects classId="e68182ea-4237-4383-967f-90c1e3370bc7" objectId="e6b857e9-2d28-11ec-5082-0242ac110002"/>
<containedObjects classId="fb282519-d103-4dd3-bc12-cb271d631dfc" objectId="7b6b5d3e-d3ea-4e82-8f5c-66deb629c890"/>
<defaultRunMode>ManagedApplication</defaultRunMode>
<usePurposes>PersonalComputer</usePurposes>
<scriptVariant>Russian</scriptVariant>
@@ -19,7 +19,7 @@
<defaultRoles>Role.АдминистраторСистемы</defaultRoles>
<defaultRoles>Role.ИнтерактивноеОткрытиеВнешнихОтчетовИОбработок</defaultRoles>
<vendor>Фирма &quot;1С&quot;</vendor>
<version>3.1.5.208</version>
<version>3.1.5.221</version>
<updateCatalogAddress>http://downloads.v8.1c.ru/tmplts/</updateCatalogAddress>
<includeHelpInContents>true</includeHelpInContents>
<usedMobileApplicationFunctionalities>
@@ -924,6 +924,7 @@
<commonModules>CommonModule.ОценкаПроизводительностиПовтИсп</commonModules>
<commonModules>CommonModule.ОценкаПроизводительностиСлужебный</commonModules>
<commonModules>CommonModule.ПереводТекстаНаДругиеЯзыки</commonModules>
<commonModules>CommonModule.ПереводТекстаНаДругиеЯзыкиКлиент</commonModules>
<commonModules>CommonModule.ПодключаемыеКоманды</commonModules>
<commonModules>CommonModule.ПодключаемыеКомандыВызовСервера</commonModules>
<commonModules>CommonModule.ПодключаемыеКомандыКлиент</commonModules>
@@ -1184,7 +1185,7 @@
<xDTOPackages>XDTOPackage.DataArtefacts_Files_1_0_0_1</xDTOPackages>
<xDTOPackages>XDTOPackage.DataArtefacts_ServiceUsers_1_0_0_1</xDTOPackages>
<xDTOPackages>XDTOPackage.DataDump_1_0_2_1</xDTOPackages>
<xDTOPackages>XDTOPackage.EnterpriseData_1_10_2</xDTOPackages>
<xDTOPackages>XDTOPackage.EnterpriseData_1_10_3</xDTOPackages>
<xDTOPackages>XDTOPackage.EnterpriseData_1_2_3</xDTOPackages>
<xDTOPackages>XDTOPackage.EnterpriseData_1_3_20</xDTOPackages>
<xDTOPackages>XDTOPackage.EnterpriseData_1_4_20</xDTOPackages>
@@ -1 +1 @@
{6,1,1,4260491c-2229-11ec-ef84-0242ac110002,1,27e531b0-2229-11ec-be93-0242ac110002,"3.1.5.208","Фирма ""1С""","БиблиотекаСтандартныхПодсистем",6465,1,0,dd4147ca-2228-11ec-5e88-0242ac110002,dd4147ca-2228-11ec-5e88-0242ac110002,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,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-91c7-49aa-aa63-45da087e0d0a,1,0,d7cf3981-cf63-4a21-868b-8175a7704a8f,d7cf3981-cf63Line truncated
{6,1,1,2823ed14-2d29-11ec-a685-0242ac110002,1,1821b162-2d29-11ec-6b8c-0242ac110002,"3.1.5.221","Фирма ""1С""","БиблиотекаСтандартныхПодсистем",6466,1,0,e6b857ac-2d28-11ec-5082-0242ac110002,e6b857ac-2d28-11ec-5082-0242ac110002,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,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-91c7-49aa-aa63-45da087e0d0a,1,0,d7cf3981-cf63-4a21-868b-8175a7704a8f,d7cf3981-cf63Line truncated
@@ -517,6 +517,7 @@
Элементы = Форма.Элементы;
ЭтоФизическоеЛицо = Форма.СведенияОВладельце.ЭтоФизическоеЛицо;
ЭтоЮридическоеЛицо = Не ЭтоФизическоеЛицо И Не Форма.СведенияОВладельце.ЭтоИндивидуальныйПредприниматель;
ЭтоИндивидуальныйПредприниматель = Форма.СведенияОВладельце.ЭтоИндивидуальныйПредприниматель;
Элементы.Должность.Видимость = ЭтоЮридическоеЛицо;
Элементы.Подразделение.Видимость = ЭтоЮридическоеЛицо;
@@ -525,11 +526,13 @@
Форма.Подразделение = "";
КонецЕсли;
Элементы.ВладелецИНН.Видимость = ЭтоФизическоеЛицо;
Элементы.ВладелецИНН.Видимость = Не ЭтоИндивидуальныйПредприниматель;
Элементы.ВладелецТелефон.Видимость = ЭтоФизическоеЛицо;
Элементы.ГруппаВладелецАдресРегистрации.Видимость = ЭтоФизическоеЛицо;
Если Не ЭтоФизическоеЛицо Тогда
Если ЭтоИндивидуальныйПредприниматель Тогда
Форма.ВладелецИНН = "";
КонецЕсли;
Форма.ВладелецТелефон = "";
Форма.ВладелецТелефонXML = "";
КонецЕсли;
@@ -51,8 +51,16 @@
Возврат;
КонецЕсли;
ФайловаяСистемаКлиент.СохранитьФайл(
Неопределено, АдресАрхиваИнформацииДляПоддержки(), "service_info.zip");
Сведения = Новый Массив;
Сведения.Добавить(НСтр("ru = 'Идентификатор документооборота'")
+ ": " + Строка(ИдентификаторДокументооборота));
Сведения.Добавить(НСтр("ru = 'Состояние обработки заявления'")
+ " (" + Формат(ДатаОбновленияСостояния, "ДЛФ=DT") + ")"
+ ":" + Символы.ПС + СостояниеОбработкиЗаявления + Символы.ПС);
ОписаниеФайлов = ОписаниеФайлов(Сведения);
ЭлектроннаяПодписьСлужебныйКлиент.СформироватьТехническуюИнформацию(СтрСоединить(Сведения, Символы.ПС),
Неопределено, ОписаниеФайлов);
КонецПроцедуры
@@ -61,64 +69,33 @@
#Область СлужебныеПроцедурыИФункции
&НаСервере
Функция АдресАрхиваИнформацииДляПоддержки()
Функция ОписаниеФайлов(Сведения)
АрхивИнформации = Новый ЗаписьZipФайла();
Сведения.Добавить(НСтр("ru = 'Приложенные файлы:'"));
ВременныеФайлы = Новый Массив;
ВременныеФайлы.Добавить(ПолучитьИмяВременногоФайла("txt"));
ОписаниеФайлов= Новый Массив;
ДобавитьОписаниеФайла(ОписаниеФайлов, Сведения, НСтр("ru = 'Запрос на сертификат'"), "p10", АдресЗапросаНаСертификат);
ДобавитьОписаниеФайла(ОписаниеФайлов, Сведения, НСтр("ru = 'Ответ сервиса 1С:Подпись'"), "zip", АдресОтветаСервиса);
ДобавитьОписаниеФайла(ОписаниеФайлов, Сведения, НСтр("ru = 'Полученный корневой сертификат'"), "cer", АдресКорневогоСертификата);
ДобавитьОписаниеФайла(ОписаниеФайлов, Сведения, НСтр("ru = 'Полученный сертификат'"), "cer", АдресСертификата);
ТекстСостояния = Новый ТекстовыйДокумент;
ТекстСостояния.ДобавитьСтроку(НСтр("ru = 'Идентификатор документооборота'")
+ ": " + Строка(ИдентификаторДокументооборота));
ТекстСостояния.ДобавитьСтроку(НСтр("ru = 'Состояние обработки заявления'")
+ " (" + Формат(ДатаОбновленияСостояния, "ДЛФ=DT") + ")"
+ ":" + Символы.ПС + СостояниеОбработкиЗаявления + Символы.ПС);
Сведения.Добавить(Символы.ПС);
ДобавитьДанныеВАрхив(АрхивИнформации, АдресЗапросаНаСертификат, "p10", ВременныеФайлы, ТекстСостояния,
НСтр("ru = 'Запрос на сертификат'"));
ДобавитьДанныеВАрхив(АрхивИнформации, АдресОтветаСервиса, "zip", ВременныеФайлы, ТекстСостояния,
НСтр("ru = 'Ответ сервиса 1С: Подпись'"));
ДобавитьДанныеВАрхив(АрхивИнформации, АдресКорневогоСертификата, "cer", ВременныеФайлы, ТекстСостояния,
НСтр("ru = 'Полученный корневой сертификат'"));
ДобавитьДанныеВАрхив(АрхивИнформации, АдресСертификата, "cer", ВременныеФайлы, ТекстСостояния,
НСтр("ru = 'Полученный сертификат'"));
ТекстСостояния.Записать(ВременныеФайлы[0]);
АрхивИнформации.Добавить(ВременныеФайлы[0]);
АдресАрхива = ПоместитьВоВременноеХранилище(АрхивИнформации.ПолучитьДвоичныеДанные());
Для Каждого ВременныйФайл Из ВременныеФайлы Цикл
ФайловаяСистема.УдалитьВременныйФайл(ВременныйФайл);
КонецЦикла;
Возврат АдресАрхива;
Возврат ОписаниеФайлов;
КонецФункции
&НаСервереБезКонтекста
Процедура ДобавитьДанныеВАрхив(Архив, АдресДанных, Расширение, ВременныеФайлы, ТекстСостояния, ПредставлениеДанных)
&НаСервере
Процедура ДобавитьОписаниеФайла(ОписаниеФайлов, Сведения, Описание, Расширение, АдресДанных)
Если Не ЗначениеЗаполнено(АдресДанных) Тогда
Возврат;
КонецЕсли;
Данные = ПолучитьИзВременногоХранилища(АдресДанных);
Если ТипЗнч(Данные) = Тип("ДвоичныеДанные") Тогда
ФайлДанных = ПолучитьИмяВременногоФайла(Расширение);
Данные.Записать(ФайлДанных);
Архив.Добавить(ФайлДанных);
ВременныеФайлы.Добавить(ФайлДанных);
Иначе
ТекстСостояния.ДобавитьСтроку(
СтроковыеФункцииКлиентСервер.ПодставитьПараметрыВСтроку(
НСтр("ru = 'Не удалось добавить %1. Данные во временном хранилище содержат тип %2.'"),
ПредставлениеДанных, Строка(ТипЗнч(Данные))));
КонецЕсли;
ИмяФайла = ЭлектроннаяПодписьСлужебныйКлиентСервер.ПодготовитьСтрокуДляИмениФайла(
Описание) + "." + Расширение;
Сведения.Добавить(ИмяФайла);
ОписаниеФайлов.Добавить(Новый Структура("Имя, Данные", ИмяФайла, АдресДанных));
КонецПроцедуры
@@ -4,6 +4,10 @@
<key>ru</key>
<value>Заявление на выпуск нового квалифицированного сертификата</value>
</title>
<title>
<key>en</key>
<value>Application for new certificate issue</value>
</title>
<items xsi:type="form:FormGroup">
<name>ШапкаЗаявления</name>
<id>813</id>
@@ -47,6 +51,10 @@
<key>ru</key>
<value>Состояние</value>
</title>
<title>
<key>en</key>
<value>State</value>
</title>
<visible>true</visible>
<enabled>true</enabled>
<userVisible>
@@ -114,6 +122,10 @@
<key>ru</key>
<value>Обработка заявления</value>
</title>
<title>
<key>en</key>
<value>Processing an application</value>
</title>
<groupVerticalAlign>Top</groupVerticalAlign>
<extendedTooltip>
<name>ГруппаОбработкаЗаявленияРасширеннаяПодсказка</name>
@@ -151,6 +163,10 @@
<key>ru</key>
<value>Организация</value>
</title>
<title>
<key>en</key>
<value>Company</value>
</title>
<visible>true</visible>
<enabled>true</enabled>
<userVisible>
@@ -188,6 +204,10 @@
<key>ru</key>
<value>Вид организации</value>
</title>
<title>
<key>en</key>
<value>Company type</value>
</title>
<width>20</width>
<extendedTooltip>
<name>ГруппаВидОрганизации1РасширеннаяПодсказка</name>
@@ -275,6 +295,10 @@
<key>ru</key>
<value>Организация</value>
</title>
<title>
<key>en</key>
<value>Company</value>
</title>
<titleFont xsi:type="core:FontRef">
<font>Style.ЗаявлениеНаВыпускСертификатаЗаголовокКлючевогоПоляШрифт</font>
</titleFont>
@@ -379,6 +403,10 @@
<key>ru</key>
<value>Организация</value>
</title>
<title>
<key>en</key>
<value>Company</value>
</title>
<groupVerticalAlign>Top</groupVerticalAlign>
<extendedTooltip>
<name>ГруппаОрганизацияРасширеннаяПодсказка</name>
@@ -412,6 +440,10 @@
<key>ru</key>
<value>Физическое лицо</value>
</title>
<title>
<key>en</key>
<value>Individual</value>
</title>
<visible>true</visible>
<enabled>true</enabled>
<userVisible>
@@ -449,6 +481,10 @@
<key>ru</key>
<value>Вид организации</value>
</title>
<title>
<key>en</key>
<value>Company type</value>
</title>
<width>20</width>
<extendedTooltip>
<name>ГруппаВидОрганизации2РасширеннаяПодсказка</name>
@@ -477,6 +513,10 @@
<key>ru</key>
<value>Владелец сертификата</value>
</title>
<title>
<key>en</key>
<value>Certificate owner</value>
</title>
<titleFont xsi:type="core:FontRef">
<font>Style.ЗаявлениеНаВыпускСертификатаЗаголовокКлючевогоПоляШрифт</font>
</titleFont>
@@ -544,6 +584,10 @@
<key>ru</key>
<value>Владелец сертификата</value>
</title>
<title>
<key>en</key>
<value>Certificate owner</value>
</title>
<titleFont xsi:type="core:FontRef">
<font>Style.ЗаявлениеНаВыпускСертификатаЗаголовокКлючевогоПоляШрифт</font>
</titleFont>
@@ -645,6 +689,10 @@
<key>ru</key>
<value>Владелец сертификата</value>
</title>
<title>
<key>en</key>
<value>Certificate owner</value>
</title>
<groupVerticalAlign>Top</groupVerticalAlign>
<extendedTooltip>
<name>ГруппаВладелецСертификатаРасширеннаяПодсказка</name>
@@ -675,6 +723,10 @@
<key>ru</key>
<value>Подписант заявления</value>
</title>
<title>
<key>en</key>
<value>Signer of the application</value>
</title>
<titleFont xsi:type="core:FontRef">
<font>Style.ЗаявлениеНаВыпускСертификатаЗаголовокКлючевогоПоляШрифт</font>
</titleFont>
@@ -690,6 +742,10 @@
<key>ru</key>
<value>Представитель организации, имеющий полномочия подписать заявление.</value>
</toolTip>
<toolTip>
<key>en</key>
<value>A representative of the company authorized to sign the application.</value>
</toolTip>
<toolTipRepresentation>Button</toolTipRepresentation>
<handlers>
<event>OnChange</event>
@@ -808,6 +864,10 @@
<key>ru</key>
<value>Основание, на котором действует подписант: правовой акт, устав, доверенность.</value>
</toolTip>
<toolTip>
<key>en</key>
<value>Basis on which a signer acts: regulation, charter, letter of authority.</value>
</toolTip>
<toolTipRepresentation>Button</toolTipRepresentation>
<handlers>
<event>OnChange</event>
@@ -846,6 +906,10 @@
<key>ru</key>
<value>Правовой акт, устав, доверенность</value>
</inputHint>
<inputHint>
<key>en</key>
<value>Regulation, charter, letter of authority</value>
</inputHint>
</extInfo>
</items>
<visible>true</visible>
@@ -857,6 +921,10 @@
<key>ru</key>
<value>Подписант заявления</value>
</title>
<title>
<key>en</key>
<value>Signer of the application</value>
</title>
<groupVerticalAlign>Top</groupVerticalAlign>
<extendedTooltip>
<name>ГруппаПодписантЗаявленияРасширеннаяПодсказка</name>
@@ -888,6 +956,10 @@
<key>ru</key>
<value>Обслуживающая организация</value>
</title>
<title>
<key>en</key>
<value>Service company</value>
</title>
<titleFont xsi:type="core:FontRef">
<font>Style.ЗаявлениеНаВыпускСертификатаЗаголовокКлючевогоПоляШрифт</font>
</titleFont>
@@ -903,6 +975,10 @@
<key>ru</key>
<value>Партнер фирмы 1С, который будет обрабатывать заявление.</value>
</toolTip>
<toolTip>
<key>en</key>
<value>1C partner that will process the application.</value>
</toolTip>
<toolTipRepresentation>Button</toolTipRepresentation>
<handlers>
<event>OnChange</event>
@@ -959,6 +1035,10 @@
<key>ru</key>
<value>Наименование</value>
</inputHint>
<inputHint>
<key>en</key>
<value>Description</value>
</inputHint>
</extInfo>
</items>
<items xsi:type="form:FormField">
@@ -1064,6 +1144,10 @@
<key>ru</key>
<value>Обслуживающая организация</value>
</title>
<title>
<key>en</key>
<value>Service company</value>
</title>
<groupVerticalAlign>Top</groupVerticalAlign>
<extendedTooltip>
<name>ГруппаОбслуживающаяОрганизацияРасширеннаяПодсказка</name>
@@ -1095,6 +1179,10 @@
<key>ru</key>
<value>Создать ключ электронной подписи и запрос на сертификат</value>
</title>
<title>
<key>en</key>
<value>Create a digital signature key and certificate request</value>
</title>
<visible>true</visible>
<enabled>true</enabled>
<userVisible>
@@ -1109,6 +1197,12 @@
<value>&lt;b>Ключ электронной подписи&lt;/> - это секретная информация, которая сохраняется на компьютер, флешку, дискету или другой носитель информации и используется в дальнейшем для создания электронных подписей.
&lt;b>Запрос на сертификат&lt;/> - это не секретная информация, которая создается на основе ключа электронной подписи, отправляется вместе с заявлением на выпуск сертификата и требуется для выпуска сертификата.</value>
</title>
<title>
<key>en</key>
<value>&lt;b>Digital signature key&lt;/> is secret information saved on the computer, on a flash drive, a floppy disk, or other data storage device and used to create digital signatures in the future.
&lt;b>Certificate request&lt;/> is not secret information which is created on the basis of the digital signature key, sent together with the application for the certificate issue, and required for the certificate issue.</value>
</title>
<formatted>true</formatted>
<type>Label</type>
@@ -1142,6 +1236,10 @@
<key>ru</key>
<value>с помощью программы</value>
</title>
<title>
<key>en</key>
<value>with application</value>
</title>
<visible>true</visible>
<enabled>true</enabled>
<userVisible>
@@ -1163,6 +1261,16 @@
&lt;/>&lt;b>&lt;color #807a59>Ключ электронной подписи&lt;/>&lt;/>&lt;color #807a59> - это секретная информация, которая сохраняется на компьютер, флешку, дискету или другой носитель информации и используется в дальнейшем для создания электронных подписей.
&lt;/>&lt;b>&lt;color #807a59>Запрос на сертификат&lt;/>&lt;/>&lt;color #807a59> - это не секретная информация, которая создается на основе ключа электронной подписи, отправляется вместе с заявлением на выпуск сертификата и требуется для выпуска сертификата.&lt;/></value>
</title>
<title>
<key>en</key>
<value>&lt;color #807a59>If digital signature application is not installed, install CryptoPro CSP or VipNet CSP.&lt;/>&lt;color #807a59>
For more information on the application, see the application help or use &lt;/>&lt;link%1> the additional instruction provided on 1C website&lt;/>&lt;color #807a59>.
&lt;/>&lt;b>&lt;color #807a59>Digital signature key&lt;/>&lt;/>&lt;color #807a59> is secret information saved on the computer, on a flash drive, a floppy disk, or other data storage device and used to create digital signatures in the future.
&lt;/>&lt;b>&lt;color #807a59>Certificate request&lt;/>&lt;/>&lt;color #807a59> is not secret information which is created on the basis of the digital signature key, sent together with the application for the certificate issue, and required for the certificate issue.&lt;/></value>
</title>
<formatted>true</formatted>
<type>Label</type>
@@ -1229,6 +1337,10 @@
<key>ru</key>
<value>Программа</value>
</title>
<title>
<key>en</key>
<value>Application</value>
</title>
<groupVerticalAlign>Top</groupVerticalAlign>
<extendedTooltip>
<name>ГруппаПрограммаРасширеннаяПодсказка</name>
@@ -1259,6 +1371,10 @@
<key>ru</key>
<value>Шапка заявления</value>
</title>
<title>
<key>en</key>
<value>Application header</value>
</title>
<verticalStretch>true</verticalStretch>
<extendedTooltip>
<name>ШапкаЗаявленияРасширеннаяПодсказка</name>
@@ -1293,6 +1409,10 @@
<key>ru</key>
<value>&lt;b>Печать заявления&lt;/>: &lt;link ТекстЗаявления>текст заявления&lt;/>.</value>
</title>
<title>
<key>en</key>
<value>&lt;b>Print application&lt;/>:&lt;linkApplicationText>application text&lt;/>.</value>
</title>
<visible>true</visible>
<enabled>true</enabled>
<userVisible>
@@ -1332,6 +1452,10 @@
<key>ru</key>
<value>Подготовьте &lt;link КомплектДокументов>комплект документов&lt;/> и передайте представителю обслуживающей организации.</value>
</title>
<title>
<key>en</key>
<value>Prepare &lt;linkDocumentsSet>the document set&lt;/> and pass it to the authorized representative of your service company.</value>
</title>
<visible>true</visible>
<enabled>true</enabled>
<userVisible>
@@ -1381,6 +1505,10 @@
<key>ru</key>
<value>Печать заявления</value>
</title>
<title>
<key>en</key>
<value>Print application</value>
</title>
<verticalStretch>false</verticalStretch>
<groupVerticalAlign>Bottom</groupVerticalAlign>
<extendedTooltip>
@@ -1440,6 +1568,11 @@
<key>ru</key>
<value>Нажимая кнопку &lt;b>Отправить, &lt;/>вы принимаете &lt;link УсловияСоглашения>условия соглашения&lt;/> о
присоединении к &lt;link ПорядокУдостоверяющегоЦентра>Порядку удостоверяющего центра&lt;/>.</value>
</title>
<title>
<key>en</key>
<value>By clicking &lt;b>Send, &lt;/>you accept &lt;link УсловияСоглашения>the agreement&lt;/> on
joining the &lt;link ПорядокУдостоверяющегоЦентра> Certification Authority Procedure&lt;/>.</value>
</title>
<visible>true</visible>
<enabled>true</enabled>
@@ -1521,6 +1654,10 @@
<key>ru</key>
<value>Описание, условия и цены</value>
</title>
<title>
<key>en</key>
<value>Description, terms and prices</value>
</title>
<visible>true</visible>
<enabled>true</enabled>
<userVisible>
@@ -1560,6 +1697,10 @@
<key>ru</key>
<value>Служба поддержки: &lt;b>8-800-333-9313 podpis@1c.ru&lt;/></value>
</title>
<title>
<key>en</key>
<value>Technical support: &lt;b>+7-800-333-9313 podpis@1c.ru&lt;/></value>
</title>
<visible>true</visible>
<enabled>true</enabled>
<userVisible>
@@ -1600,6 +1741,10 @@
<key>ru</key>
<value>Требуется помощь?</value>
</title>
<title>
<key>en</key>
<value>Need help?</value>
</title>
<extendedTooltip>
<name>ГруппаТребуетсяПомощьРасширеннаяПодсказка</name>
<id>790</id>
@@ -1631,6 +1776,10 @@
<key>ru</key>
<value>Отправка заявления</value>
</title>
<title>
<key>en</key>
<value>Application sending</value>
</title>
<groupVerticalAlign>Bottom</groupVerticalAlign>
<extendedTooltip>
<name>ГруппаОтправкаЗаявленияРасширеннаяПодсказка</name>
@@ -1661,6 +1810,10 @@
<key>ru</key>
<value>Подвал</value>
</title>
<title>
<key>en</key>
<value>Footer</value>
</title>
<verticalStretch>false</verticalStretch>
<extendedTooltip>
<name>ПодвалРасширеннаяПодсказка</name>
@@ -1751,6 +1904,10 @@
<key>ru</key>
<value>Организация</value>
</title>
<title>
<key>en</key>
<value>Company</value>
</title>
<id>5</id>
<valueType>
<types>AnyRef</types>
@@ -1768,6 +1925,10 @@
<key>ru</key>
<value>Сокращенное наименование</value>
</title>
<title>
<key>en</key>
<value>Abbreviated name</value>
</title>
<id>6</id>
<valueType>
<types>String</types>
@@ -2079,6 +2240,10 @@
<key>ru</key>
<value>Сотрудник</value>
</title>
<title>
<key>en</key>
<value>Employee</value>
</title>
<id>32</id>
<valueType>
<types>AnyRef</types>
@@ -2251,6 +2416,10 @@
<key>ru</key>
<value>Руководитель</value>
</title>
<title>
<key>en</key>
<value>Senior manager</value>
</title>
<id>39</id>
<valueType>
<types>String</types>
@@ -2269,6 +2438,10 @@
<key>ru</key>
<value>Должность</value>
</title>
<title>
<key>en</key>
<value>Job title</value>
</title>
<id>40</id>
<valueType>
<types>String</types>
@@ -2287,6 +2460,10 @@
<key>ru</key>
<value>ИНН партнера</value>
</title>
<title>
<key>en</key>
<value>Partner TIN</value>
</title>
<id>41</id>
<valueType>
<types>String</types>
@@ -2307,6 +2484,10 @@
<key>ru</key>
<value>КПП партнера</value>
</title>
<title>
<key>en</key>
<value>Partner CRTR</value>
</title>
<id>42</id>
<valueType>
<types>String</types>
@@ -2327,6 +2508,10 @@
<key>ru</key>
<value>Состояние обработки заявления</value>
</title>
<title>
<key>en</key>
<value>Request processing state</value>
</title>
<id>43</id>
<valueType>
<types>String</types>
@@ -2469,6 +2654,10 @@
<key>ru</key>
<value>Партнер</value>
</title>
<title>
<key>en</key>
<value>Partner</value>
</title>
<id>55</id>
<valueType>
<types>String</types>
@@ -2625,6 +2814,10 @@
<key>ru</key>
<value>Основание</value>
</title>
<title>
<key>en</key>
<value>Reference document</value>
</title>
<id>33</id>
<valueType>
<types>String</types>
@@ -3000,6 +3193,10 @@
<key>ru</key>
<value>Владелец сертификата строкой</value>
</title>
<title>
<key>en</key>
<value>Certificate owner as a string</value>
</title>
<id>4</id>
<valueType>
<types>String</types>
@@ -3279,11 +3476,19 @@
<key>ru</key>
<value>Указать сведения об организации</value>
</title>
<title>
<key>en</key>
<value>Specify information about the company</value>
</title>
<id>7</id>
<toolTip>
<key>ru</key>
<value>Указать сведения об организации</value>
</toolTip>
<toolTip>
<key>en</key>
<value>Specify information about the company</value>
</toolTip>
<use>
<common>true</common>
</use>
@@ -3305,11 +3510,19 @@
<key>ru</key>
<value>Указать сведения о владельце</value>
</title>
<title>
<key>en</key>
<value>Specify information about the owner</value>
</title>
<id>8</id>
<toolTip>
<key>ru</key>
<value>Указать сведения о владельце</value>
</toolTip>
<toolTip>
<key>en</key>
<value>Specify information about the owner</value>
</toolTip>
<use>
<common>true</common>
</use>
@@ -3331,11 +3544,19 @@
<key>ru</key>
<value>Отправить заявление</value>
</title>
<title>
<key>en</key>
<value>Send application</value>
</title>
<id>9</id>
<toolTip>
<key>ru</key>
<value>Отправить заявление</value>
</toolTip>
<toolTip>
<key>en</key>
<value>Send application</value>
</toolTip>
<use>
<common>true</common>
</use>
@@ -3353,11 +3574,19 @@
<key>ru</key>
<value>Обновить состояние обработки заявления</value>
</title>
<title>
<key>en</key>
<value>Update application processing state</value>
</title>
<id>10</id>
<toolTip>
<key>ru</key>
<value>Обновить состояние обработки заявления на выпуск сертификата</value>
</toolTip>
<toolTip>
<key>en</key>
<value>Update processing state of application for certificate issue</value>
</toolTip>
<use>
<common>true</common>
</use>
@@ -3379,11 +3608,19 @@
<key>ru</key>
<value>Техническая информация</value>
</title>
<title>
<key>en</key>
<value>Technical information</value>
</title>
<id>4</id>
<toolTip>
<key>ru</key>
<value>Техническая информация</value>
</toolTip>
<toolTip>
<key>en</key>
<value>Technical information</value>
</toolTip>
<use>
<common>true</common>
</use>
@@ -3401,6 +3638,10 @@
<key>ru</key>
<value>Выбрать вид организации</value>
</title>
<title>
<key>en</key>
<value>Select company type</value>
</title>
<id>1</id>
<use>
<common>true</common>
@@ -71,7 +71,17 @@
УстановитьДоступность();
Если ЗначениеЗаполнено(Параметры.СертификатСсылка)
И Объект.СостояниеЗаявления = Перечисления.СостоянияЗаявленияНаВыпускСертификата.Подготовлено
И Не ЗначениеЗаполнено(ВладелецИНН)
И Не ЭтоФизическоеЛицо И Не ЭтоИндивидуальныйПредприниматель
И ПравоДоступа("Редактирование", Метаданные.Справочники.СертификатыКлючейЭлектроннойПодписиИШифрования)Тогда
// Заявление на сертификат юридического лица было подготовлено без указания ИНН сотрудника.
ПриПотереГотовности(ЭтотОбъект, Истина);
Иначе
Модифицированность = Ложь;
КонецЕсли;
ЭлектроннаяПодписьСлужебный.СброситьРазмерыИПоложениеОкна(ЭтотОбъект);
@@ -1757,7 +1767,7 @@
УстановитьРеквизит(Реквизиты, "Гражданство");
УстановитьРеквизит(Реквизиты, "СтраховойНомерПФР", Истина);
Если ЭтоФизическоеЛицо Тогда
Если Не ЭтоИндивидуальныйПредприниматель Тогда
УстановитьРеквизит(Реквизиты, "ВладелецИНН", Истина);
Иначе
ВладелецИНН = "";
@@ -2350,15 +2360,19 @@
СпособИдентификации = "";
Если ЗапросПосле_01_09_2021() Тогда
Если ЭтоФизическоеЛицо ИЛИ ЭтоИндивидуальныйПредприниматель Тогда
Если ЭтоИндивидуальныйПредприниматель Тогда
// Поле INN - ИНН индивидуального предпринимателя или физического лица.
Поля.Вставить("INN", ?(ЭтоФизическоеЛицо, ВладелецИНН, ИНН));
Поля.Вставить("INN", ИНН);
СписокПараметров.Добавить("1.2.643.3.131.1.1", Поля.INN);
Иначе
Если Не ЭтоФизическоеЛицо Тогда
// Поле INNLE - ИНН организации.
Поля.Вставить("INNLE", Прав(ИНН, 10));
СписокПараметров.Добавить("1.2.643.100.4", Поля.INNLE);
КонецЕсли;
Поля.Вставить("INN", ВладелецИНН);
СписокПараметров.Добавить("1.2.643.3.131.1.1", Поля.INN);
КонецЕсли;
// Поле IdentificationKind - способ идентификации заявителя. 0 - при личном присутствии.
СпособИдентификации = СтрШаблон("
|IdentKind:{%1}", 0);
@@ -2492,8 +2506,10 @@
ЗаполнитьЗначенияСвойств(Макет.Параметры, ЭтотОбъект);
ЗаполнитьЗначенияСвойств(Макет.Параметры, ДокументыПоляСертификата);
Если ДокументыПоляСертификата.Свойство("INNLE") Тогда
Макет.Параметры.INN = ДокументыПоляСертификата.INNLE;
Если Не ЭтоФизическоеЛицо И Не ЭтоИндивидуальныйПредприниматель
И Не ДокументыПоляСертификата.Свойство("INNLE") Тогда
Макет.Область("Должность").Объединить();
Макет.Параметры.INNLE = ДокументыПоляСертификата.INN;
КонецЕсли;
Макет.Параметры.Телефон = ?(ЭтоФизическоеЛицо, ВладелецТелефон, Телефон);
@@ -3576,6 +3592,8 @@
&НаСервере
Функция ЗаявлениеXML(Билет)
ПризнакЮридическогоЛица = Не ЭтоИндивидуальныйПредприниматель И Не ЭтоФизическоеЛицо;
ЗаписьXML = Новый ЗаписьXML;
ЗаписьXML.УстановитьСтроку("windows-1251");
ЗаписьXML.ЗаписатьОбъявлениеXML();
@@ -3586,10 +3604,10 @@
ЗаписьXML.ЗаписатьАтрибут("ВерсПрог", "1С"); // АПК:1036 внешний идентификатор
ЗаписьXMLЭлемент(ЗаписьXML, "ТипЗаявления", "1");
ЗаписьXMLЭлемент(ЗаписьXML, "ПризнакЮридическогоЛица", Не ЭтоИндивидуальныйПредприниматель И Не ЭтоФизическоеЛицо);
ЗаписьXMLЭлемент(ЗаписьXML, "ПризнакЮридическогоЛица", ПризнакЮридическогоЛица);
ЗаписьXMLЭлемент(ЗаписьXML, "ПризнакФизическогоЛица", ЭтоФизическоеЛицо);
ЗаписьXMLЭлемент(ЗаписьXML, "ИНН", ?(ЭтоФизическоеЛицо, ВладелецИНН, ИНН));
Если Не ЭтоИндивидуальныйПредприниматель И Не ЭтоФизическоеЛицо Тогда
Если ПризнакЮридическогоЛица Тогда
ЗаписьXMLЭлемент(ЗаписьXML, "КПП");
КонецЕсли;
@@ -3624,7 +3642,9 @@
ЗаписьXML.ЗаписатьАтрибут("МестоРождения", МестоРождения);
ЗаписьXML.ЗаписатьАтрибут("Гражданство", ГражданствоОКСМКодАльфа3);
ЗаписьXML.ЗаписатьКонецЭлемента(); // КонецЭлемента ЛичныеДанные.
Если ПризнакЮридическогоЛица Тогда
ЗаписьXMLЭлемент(ЗаписьXML, "ИНН", ВладелецИНН);
КонецЕсли;
Если ДокументВид = "21" Тогда
ДокументНомерПредставление = ПредставлениеРеквизитаНомерПаспортаРФ(ДокументНомер);
ДокументКодПодразделенияПредставление =
@@ -3643,7 +3663,7 @@
ЗаписьXML.ЗаписатьАтрибут("КодВыдДок", ДокументКодПодразделенияПредставление); // АПК:1036 внешний идентификатор
ЗаписьXML.ЗаписатьКонецЭлемента(); // КонецЭлемента УдЛичн. АПК:1036 внешний идентификатор
Если Не ЭтоИндивидуальныйПредприниматель И Не ЭтоФизическоеЛицо Тогда
Если ПризнакЮридическогоЛица Тогда
ЗаписьXMLЭлемент(ЗаписьXML, "Должность", Должность);
КонецЕсли;
@@ -4690,6 +4710,7 @@
КонецЕсли;
ПараметрыПодключения = ОбщегоНазначенияКлиент.ПараметрыПодключенияКомпоненты();
ПараметрыПодключения.ПредложитьЗагрузить = Истина;
ПараметрыПодключения.ТекстПояснения = Контекст.НазначениеВнешнейКомпонентыКриптографии;
// Объект создается на одно действие до исключения, кэширование на время сеанса не подходит.
ПараметрыПодключения.Кэшировать = Ложь;
@@ -241,9 +241,11 @@
Или ЭтоИП <> Неопределено И (ЭтоИП Или ЭтоФЛ) Тогда
Реквизиты.НайтиПоЗначению("Должность").Пометка = Истина;
КонецЕсли;
Если ЭтоИП = Неопределено И Форма.ЭтоИндивидуальныйПредприниматель ИЛИ ЭтоИП <> Неопределено И ЭтоИП Тогда
Реквизиты.НайтиПоЗначению("ВладелецИНН").Пометка = Истина;
КонецЕсли;
Если ЭтоФЛ = Неопределено И Не Форма.ЭтоФизическоеЛицо
Или ЭтоФЛ <> Неопределено И Не ЭтоФЛ Тогда
Реквизиты.НайтиПоЗначению("ВладелецИНН").Пометка = Истина;
Реквизиты.НайтиПоЗначению("ВладелецАдресРегистрации").Пометка = Истина;
Реквизиты.НайтиПоЗначению("ВладелецТелефон").Пометка = Истина;
КонецЕсли;
@@ -377,12 +379,12 @@
ПродолжитьПриОшибке = Ложь;
Если ИмяРеквизита = "ИНН"
Или ИмяРеквизита = "ВладелецИНН"
Или ИмяРеквизита = "ДокументыПартнерИНН" Тогда
РегламентированныеДанныеКлиентСервер.ИННСоответствуетТребованиям(ЗначениеРеквизита,
Не (ЭтоИП Или ЭтоФЛ), ТекстСообщения);
ИначеЕсли ИмяРеквизита = "ВладелецИНН" И Не ЭтоИП Тогда
РегламентированныеДанныеКлиентСервер.ИННСоответствуетТребованиям(ЗначениеРеквизита,
Ложь, ТекстСообщения);
ИначеЕсли ИмяРеквизита = "ДокументыПартнерКПП"
Или ИмяРеквизита = "КПП" Тогда
@@ -435,6 +435,43 @@
</tl>
</c>
</c>
<c>
<c>
<f>21</f>
</c>
</c>
<c>
<c>
<f>21</f>
</c>
</c>
<c>
<c>
<f>21</f>
</c>
</c>
<c>
<c>
<f>22</f>
<tl>
<v8:item>
<v8:lang>ru</v8:lang>
<v8:content>ИНН</v8:content>
</v8:item>
</tl>
</c>
</c>
<c>
<c>
<f>23</f>
<tl>
<v8:item>
<v8:lang>ru</v8:lang>
<v8:content>[INN]</v8:content>
</v8:item>
</tl>
</c>
</c>
</row>
</rowsItem>
<rowsItem>
@@ -480,7 +517,7 @@
</c>
<c>
<c>
<f>21</f>
<f>24</f>
</c>
</c>
<c>
@@ -570,18 +607,18 @@
<tl>
<v8:item>
<v8:lang>ru</v8:lang>
<v8:content>ИНН</v8:content>
<v8:content>ИНН ЮЛ</v8:content>
</v8:item>
</tl>
</c>
</c>
<c>
<c>
<f>22</f>
<f>25</f>
<tl>
<v8:item>
<v8:lang>ru</v8:lang>
<v8:content>[INN]</v8:content>
<v8:content>[INNLE]</v8:content>
</v8:item>
</tl>
</c>
@@ -599,7 +636,7 @@
</c>
<c>
<c>
<f>23</f>
<f>26</f>
<tl>
<v8:item>
<v8:lang>ru</v8:lang>
@@ -620,7 +657,7 @@
</c>
<c>
<c>
<f>24</f>
<f>27</f>
</c>
</c>
<c>
@@ -661,7 +698,7 @@
</c>
<c>
<c>
<f>25</f>
<f>28</f>
</c>
</c>
</row>
@@ -670,14 +707,14 @@
<index>13</index>
<row>
<formatIndex>8</formatIndex>
<c>
<c>
<f>29</f>
</c>
</c>
<c>
<c>
<f>26</f>
</c>
</c>
<c>
<c>
<f>23</f>
<tl>
<v8:item>
<v8:lang>ru</v8:lang>
@@ -698,7 +735,7 @@
</c>
<c>
<c>
<f>24</f>
<f>27</f>
</c>
</c>
<c>
@@ -739,7 +776,7 @@
</c>
<c>
<c>
<f>25</f>
<f>28</f>
</c>
</c>
</row>
@@ -767,7 +804,7 @@
<c>
<i>5</i>
<c>
<f>27</f>
<f>30</f>
<tl>
<v8:item>
<v8:lang>ru</v8:lang>
@@ -801,7 +838,7 @@
<c>
<i>5</i>
<c>
<f>27</f>
<f>30</f>
<tl>
<v8:item>
<v8:lang>ru</v8:lang>
@@ -815,7 +852,7 @@
<rowsItem>
<index>16</index>
<row>
<formatIndex>28</formatIndex>
<formatIndex>31</formatIndex>
<c>
<c>
<f>1</f>
@@ -864,12 +901,12 @@
<formatIndex>8</formatIndex>
<c>
<c>
<f>29</f>
<f>32</f>
</c>
</c>
<c>
<c>
<f>30</f>
<f>33</f>
<tl>
<v8:item>
<v8:lang>ru</v8:lang>
@@ -881,7 +918,7 @@
<c>
<i>6</i>
<c>
<f>31</f>
<f>34</f>
<tl>
<v8:item>
<v8:lang>ru</v8:lang>
@@ -914,7 +951,7 @@
</c>
<c>
<c>
<f>30</f>
<f>33</f>
<tl>
<v8:item>
<v8:lang>ru</v8:lang>
@@ -926,7 +963,7 @@
<c>
<i>6</i>
<c>
<f>31</f>
<f>34</f>
<tl>
<v8:item>
<v8:lang>ru</v8:lang>
@@ -952,7 +989,7 @@
<rowsItem>
<index>23</index>
<row>
<formatIndex>28</formatIndex>
<formatIndex>31</formatIndex>
<c>
<c>
<f>1</f>
@@ -1024,67 +1061,33 @@
</c>
</c>
<c>
<c>
<f>32</f>
</c>
</c>
<c>
<c>
<f>14</f>
</c>
</c>
<c>
<c>
<f>14</f>
</c>
</c>
<c>
<c>
<f>14</f>
</c>
</c>
<c>
<c>
<f>14</f>
</c>
</c>
<c>
<c>
<f>14</f>
</c>
</c>
<c>
<c>
<f>33</f>
</c>
</c>
<c>
<c>
<f>34</f>
</c>
</c>
</row>
</rowsItem>
<rowsItem>
<index>26</index>
<row>
<formatIndex>8</formatIndex>
<c>
<i>1</i>
<c>
<f>35</f>
<tl>
<v8:item>
<v8:lang>ru</v8:lang>
<v8:content> Я, [Фамилия] [Имя] [Отчество], телефон: [Телефон], email: [E], руководствуясь статьей 10.1 152-ФЗ «О персональных данных», заявляю согласие на распространение [КраткоеНаименованиеУЦ] ИНН [ИНН_УЦ] ([ЮридическиеКодыУЦ], Фактический адрес: [ФактическийАдресУЦ]) моих персональных данных с целью включения общих персональных данных (фамилия, имя, отчество (при наличии), СНИЛС, адрес электронной почты) в реестр квалифицированных сертификатов в соответствии с ч. 3 ст. 15 федерального закона от 06.04.2011 № 63-ФЗ «Об электронной подписи».
Условия и запреты на распространение персональных данных: _______________________________________ Согласие на распространение [КраткоеНаименованиеУЦ] персональных данных действует до истечения срока хранения информации удостоверяющим центром [КраткоеНаименованиеУЦ] установленного п. 6 ст.13 Федерального закона от 06.04.2011 № 63-ФЗ «Об электронной подписи». Информация из реестра квалифицированных сертификатов предоставляется путем направления запроса по email УЦ [ЭлектроннаяПочтаУЦ] </v8:content>
</v8:item>
</tl>
</c>
</c>
<c>
<c>
<f>36</f>
<f>14</f>
</c>
</c>
<c>
<c>
<f>14</f>
</c>
</c>
<c>
<c>
<f>14</f>
</c>
</c>
<c>
<c>
<f>14</f>
</c>
</c>
<c>
<c>
<f>14</f>
</c>
</c>
<c>
@@ -1097,34 +1100,23 @@
<f>37</f>
</c>
</c>
</row>
</rowsItem>
<rowsItem>
<index>26</index>
<row>
<formatIndex>8</formatIndex>
<c>
<c>
<f>36</f>
</c>
</c>
<c>
<c>
<f>36</f>
</c>
</c>
<c>
<c>
<f>36</f>
</c>
</c>
<c>
<c>
<f>36</f>
</c>
</c>
<c>
<c>
<f>36</f>
</c>
</c>
<c>
<i>1</i>
<c>
<f>38</f>
<tl>
<v8:item>
<v8:lang>ru</v8:lang>
<v8:content> Я, [Фамилия] [Имя] [Отчество], телефон: [Телефон], email: [E], руководствуясь статьей 10.1 152-ФЗ «О персональных данных», заявляю согласие на распространение [КраткоеНаименованиеУЦ] ИНН [ИНН_УЦ] ([ЮридическиеКодыУЦ], Фактический адрес: [ФактическийАдресУЦ]) моих персональных данных с целью включения общих персональных данных (фамилия, имя, отчество (при наличии), СНИЛС, адрес электронной почты) в реестр квалифицированных сертификатов в соответствии с ч. 3 ст. 15 федерального закона от 06.04.2011 № 63-ФЗ «Об электронной подписи».
Условия и запреты на распространение персональных данных: _______________________________________ Согласие на распространение [КраткоеНаименованиеУЦ] персональных данных действует до истечения срока хранения информации удостоверяющим центром [КраткоеНаименованиеУЦ] установленного п. 6 ст.13 Федерального закона от 06.04.2011 № 63-ФЗ «Об электронной подписи». Информация из реестра квалифицированных сертификатов предоставляется путем направления запроса по email УЦ [ЭлектроннаяПочтаУЦ] </v8:content>
</v8:item>
</tl>
</c>
</c>
<c>
@@ -1132,6 +1124,51 @@
<f>39</f>
</c>
</c>
<c>
<c>
<f>39</f>
</c>
</c>
<c>
<c>
<f>40</f>
</c>
</c>
<c>
<c>
<f>39</f>
</c>
</c>
<c>
<c>
<f>39</f>
</c>
</c>
<c>
<c>
<f>39</f>
</c>
</c>
<c>
<c>
<f>39</f>
</c>
</c>
<c>
<c>
<f>39</f>
</c>
</c>
<c>
<c>
<f>41</f>
</c>
</c>
<c>
<c>
<f>42</f>
</c>
</c>
</row>
</rowsItem>
<rowsItem>
@@ -1156,7 +1193,7 @@
</c>
<c>
<c>
<f>32</f>
<f>35</f>
</c>
</c>
<c>
@@ -1186,12 +1223,12 @@
</c>
<c>
<c>
<f>33</f>
<f>36</f>
</c>
</c>
<c>
<c>
<f>34</f>
<f>37</f>
</c>
</c>
</row>
@@ -1224,7 +1261,7 @@
</c>
<c>
<c>
<f>32</f>
<f>35</f>
</c>
</c>
<c>
@@ -1254,12 +1291,12 @@
</c>
<c>
<c>
<f>33</f>
<f>36</f>
</c>
</c>
<c>
<c>
<f>34</f>
<f>37</f>
</c>
</c>
</row>
@@ -1271,7 +1308,7 @@
<c>
<i>1</i>
<c>
<f>40</f>
<f>43</f>
<tl>
<v8:item>
<v8:lang>ru</v8:lang>
@@ -1292,7 +1329,7 @@
</c>
<c>
<c>
<f>32</f>
<f>35</f>
</c>
</c>
<c>
@@ -1307,27 +1344,27 @@
</c>
<c>
<c>
<f>41</f>
<f>44</f>
</c>
</c>
<c>
<c>
<f>41</f>
<f>44</f>
</c>
</c>
<c>
<c>
<f>41</f>
<f>44</f>
</c>
</c>
<c>
<c>
<f>42</f>
<f>45</f>
</c>
</c>
<c>
<c>
<f>41</f>
<f>44</f>
<tl>
<v8:item>
<v8:lang>ru</v8:lang>
@@ -1360,7 +1397,7 @@
</c>
<c>
<c>
<f>32</f>
<f>35</f>
</c>
</c>
<c>
@@ -1390,12 +1427,12 @@
</c>
<c>
<c>
<f>33</f>
<f>36</f>
</c>
</c>
<c>
<c>
<f>43</f>
<f>46</f>
<tl>
<v8:item>
<v8:lang>ru</v8:lang>
@@ -1483,7 +1520,12 @@
<merge>
<r>9</r>
<c>3</c>
<w>8</w>
<w>3</w>
</merge>
<merge>
<r>9</r>
<c>8</c>
<w>3</w>
</merge>
<merge>
<r>10</r>
@@ -1646,6 +1688,16 @@
<endColumn>-1</endColumn>
</area>
</namedItem>
<namedItem xsi:type="NamedItemCells">
<name>Должность</name>
<area>
<type>Rectangle</type>
<beginRow>9</beginRow>
<endRow>9</endRow>
<beginColumn>3</beginColumn>
<endColumn>11</endColumn>
</area>
</namedItem>
<namedItem xsi:type="NamedItemCells">
<name>Подвал</name>
<area>
@@ -1804,6 +1856,29 @@
<textPlacement>Wrap</textPlacement>
<fillType>Template</fillType>
</format>
<format>
<border>0</border>
</format>
<format>
<font>0</font>
<leftBorder>0</leftBorder>
<topBorder>0</topBorder>
<bottomBorder>0</bottomBorder>
<width>72</width>
<horizontalAlignment>Left</horizontalAlignment>
<verticalAlignment>Top</verticalAlignment>
<textPlacement>Wrap</textPlacement>
<fillType>Text</fillType>
</format>
<format>
<font>0</font>
<border>0</border>
<width>72</width>
<horizontalAlignment>Left</horizontalAlignment>
<verticalAlignment>Top</verticalAlignment>
<textPlacement>Wrap</textPlacement>
<fillType>Template</fillType>
</format>
<format>
<font>0</font>
<width>104</width>
@@ -396,11 +396,15 @@
Иначе
ОбъектМетаданных = Метаданные.НайтиПоПолномуИмени(ОписаниеОбъекта.ПолноеИмя);
Если ЭтоСсылочныеДанные(ОбъектМетаданных)
ИЛИ ОбщегоНазначения.ЭтоРегистр(ОбъектМетаданных) Тогда
ИЛИ ОбщегоНазначения.ЭтоРегистр(ОбъектМетаданных)
ИЛИ ОбщегоНазначения.ЭтоКонстанта(ОбъектМетаданных) Тогда
ЭтоРазделенныйОбъектМетаданных = ПравоДоступа("Изменение", ОбъектМетаданных, Метаданные.Роли.УдаленныйДоступOData);
КонецЕсли;
Если ОбщегоНазначения.ЭтоЖурналДокументов(ОбъектМетаданных) Тогда
Если ОбщегоНазначения.ЭтоЖурналДокументов(ОбъектМетаданных)
ИЛИ ОбщегоНазначения.ЭтоПеречисление(ОбъектМетаданных) Тогда
ЭтоРазделенныйОбъектМетаданных = ПравоДоступа("Чтение", ОбъектМетаданных, Метаданные.Роли.УдаленныйДоступOData);
КонецЕсли;
КонецЕсли;
@@ -119,8 +119,11 @@
&НаКлиенте
Процедура ПерейтиКНастройкамПереводчика()
Если ОбщегоНазначенияКлиент.ПодсистемаСуществует("СтандартныеПодсистемы.Мультиязычность.ПереводТекста") Тогда
МодульПереводТекстаНаДругиеЯзыкиКлиент = ОбщегоНазначенияКлиент.ОбщийМодуль("ПереводТекстаНаДругиеЯзыкиКлиент");
ОписаниеОповещения = Новый ОписаниеОповещения("ПриЗавершенииНастройкиСервисаПеревода", ЭтотОбъект);
ОткрытьФорму("ОбщаяФорма.НастройкаПереводаТекста", , ЭтотОбъект, , , , ОписаниеОповещения);
МодульПереводТекстаНаДругиеЯзыкиКлиент.ПерейтиКНастройкам(ЭтотОбъект, ОписаниеОповещения);
КонецЕсли;
КонецПроцедуры
@@ -87,6 +87,10 @@
КонецПроцедуры
// Параметры:
// Интеграция - ИнтеграцияСистемыВзаимодействия
// ДанныеФормы - ДанныеФормыЭлементДерева из см. Обработка.ПодключениеОбсуждений.Форма.НастройкиСообщенийИзДругихПрограмм.СписокПодключений
//
&НаСервере
Процедура ИнтеграцияВДанныеФормы(Знач Интеграция, Знач ДанныеФормы)
@@ -447,6 +447,7 @@
ПредставленияСвойств["ОГРНИП"] = НСтр("ru = 'ОГРНИП'");
ПредставленияСвойств["СНИЛС"] = НСтр("ru = 'СНИЛС'");
ПредставленияСвойств["ИНН"] = НСтр("ru = 'ИНН'");
ПредставленияСвойств["ИННЮЛ"] = НСтр("ru = 'ИНН ЮЛ'");
ПредставленияСвойств["Фамилия"] = НСтр("ru = 'Фамилия'");
ПредставленияСвойств["Имя"] = НСтр("ru = 'Имя'");
ПредставленияСвойств["Отчество"] = НСтр("ru = 'Отчество'");
@@ -459,6 +460,7 @@
ПредставленияСвойств = Новый Соответствие;
ПредставленияСвойств["ОГРН"] = НСтр("ru = 'ОГРН'");
ПредставленияСвойств["ИНН"] = НСтр("ru = 'ИНН'");
ПредставленияСвойств["ИННЮЛ"] = НСтр("ru = 'ИНН ЮЛ'");
Возврат ПредставленияСвойств;
КонецФункции
@@ -80,10 +80,14 @@
КонецЕсли;
Расписание = Задание.Расписание;
СообщенияПользователюИОписаниеИнформацииОбОшибке = РегламентныеЗаданияСлужебный
.СообщенияИОписанияОшибокРегламентногоЗадания(Задание);
Если Действие = "Скопировать" Тогда
ЭтотОбъект.Предопределенное = Ложь;
Иначе
СообщенияПользователюИОписаниеИнформацииОбОшибке =
РегламентныеЗаданияСлужебный.СообщенияИОписанияОшибокРегламентногоЗадания(Задание);
КонецЕсли;
Элементы.Наименование.Видимость = Не Задание.Предопределенное;
Элементы.Наименование.Видимость = Не ЭтотОбъект.Предопределенное;
КонецЕсли;
Если Действие <> "Изменить" Тогда
@@ -240,12 +244,11 @@
ЗаполнитьЗначенияСвойств(ПараметрыЗадания, ЭтотОбъект);
Если Действие = "Изменить" Тогда
РегламентныеЗаданияСервер.ИзменитьЗадание(Идентификатор, ПараметрыЗадания);
РегламентныеЗаданияСервер.ИзменитьРегламентноеЗадание(Идентификатор, ПараметрыЗадания);
Иначе
ПараметрыЗадания = Новый Структура;
ПараметрыЗадания.Вставить("Метаданные", Метаданные.РегламентныеЗадания[ИмяМетаданных]);
Задание = РегламентныеЗаданияСервер.ДобавитьЗадание(ПараметрыЗадания);
Задание = РегламентныеЗаданияСервер.ДобавитьРегламентноеЗадание(ПараметрыЗадания);
Идентификатор = Строка(Задание.УникальныйИдентификатор);
Действие = "Изменить";
@@ -840,7 +840,7 @@
Процедура УдалитьРегламентноеЗаданиеВыполнитьНаСервере(Знач Идентификатор)
Строка = ТаблицаРегламентныеЗадания.НайтиСтроки(Новый Структура("Идентификатор", Идентификатор))[0];
РегламентныеЗаданияСервер.УдалитьЗадание(Идентификатор);
РегламентныеЗаданияСервер.УдалитьРегламентноеЗадание(Идентификатор);
ТаблицаРегламентныеЗадания.Удалить(ТаблицаРегламентныеЗадания.Индекс(Строка));
КонецПроцедуры
@@ -848,15 +848,19 @@
&НаКлиенте
Процедура ДобавитьСкопироватьИзменитьРегламентноеЗадание(Знач Действие)
Если Элементы.ТаблицаРегламентныеЗадания.ТекущиеДанные = Неопределено Тогда
ПоказатьПредупреждение(, НСтр("ru = 'Выберите регламентное задание.'"));
Иначе
ПараметрыФормы = Новый Структура;
ПараметрыФормы.Вставить("Идентификатор", Элементы.ТаблицаРегламентныеЗадания.ТекущиеДанные.Идентификатор);
ПараметрыФормы.Вставить("Действие", Действие);
ОткрытьФорму("Обработка.РегламентныеИФоновыеЗадания.Форма.РегламентноеЗадание", ПараметрыФормы, ЭтотОбъект);
Если Действие <> "Добавить" Тогда
Если Элементы.ТаблицаРегламентныеЗадания.ТекущиеДанные = Неопределено Тогда
ПоказатьПредупреждение(, НСтр("ru = 'Выберите регламентное задание.'"));
Возврат;
Иначе
ПараметрыФормы.Вставить("Идентификатор", Элементы.ТаблицаРегламентныеЗадания.ТекущиеДанные.Идентификатор);
КонецЕсли;
КонецЕсли;
ОткрытьФорму("Обработка.РегламентныеИФоновыеЗадания.Форма.РегламентноеЗадание", ПараметрыФормы, ЭтотОбъект);
КонецПроцедуры
@@ -890,7 +894,7 @@
Для каждого ВыделеннаяСтрока Из Элементы.ТаблицаРегламентныеЗадания.ВыделенныеСтроки Цикл
ТекущиеДанные = ТаблицаРегламентныеЗадания.НайтиПоИдентификатору(ВыделеннаяСтрока);
РегламентныеЗаданияСервер.ИзменитьЗадание(ТекущиеДанные.Идентификатор,
РегламентныеЗаданияСервер.ИзменитьРегламентноеЗадание(ТекущиеДанные.Идентификатор,
Новый Структура("Использование", Включено));
ТекущиеДанные.Использование = Включено;
КонецЦикла;
@@ -138,7 +138,9 @@
КонецЕсли;
КонецЕсли;
СтандартнаяОбработка = ДанныеВыбора = Неопределено;
Если ДанныеВыбора <> Неопределено Тогда
СтандартнаяОбработка = Ложь;
КонецЕсли;
КонецПроцедуры
@@ -2359,24 +2359,33 @@
Запрос = Новый Запрос;
ТекстЗапросаПоОтбору = ПолучитьТекстЗапросаПоОтборуСписка(Запрос);
СтрокаПоКоторойИщем = Прав(ТекстЗапросаПоОтбору, СтрДлина(ТекстЗапросаПоОтбору) - СтрНайти(ТекстЗапросаПоОтбору, "ГДЕ") + 1);
ПозицияГде = СтрНайти(ТекстЗапросаПоОтбору, "ГДЕ");
Если ПозицияГде = 0 Тогда
СтрокаПоКоторойИщем = "";
Иначе
СтрокаПоКоторойИщем = Прав(ТекстЗапросаПоОтбору, СтрДлина(ТекстЗапросаПоОтбору) - ПозицияГде + 1);
КонецЕсли;
МассивСтрокУсловия = СтрРазделить(СтрокаПоКоторойИщем, Символы.ПС, Ложь);
ТекстУсловийПоЖурналуДокументов = "";
ТекстУсловийПоРегистру = "";
Инд = 1;
КонструкцияИ = Символы.Таб + "И";
Для Каждого СтрокаУсловия Из МассивСтрокУсловия Цикл
СтрокаУсловия = СтрЗаменить(СтрокаУсловия, "&П", "&Пар");
Если СтрНайти(СтрокаУсловия, "ЖурналДокументовВзаимодействия") Тогда
Если ПустаяСтрока(ТекстУсловийПоЖурналуДокументов)
И СтрНачинаетсяС(СтрокаУсловия, КонструкцияИ) Тогда
СтрокаУсловия = Прав(СтрокаУсловия, СтрДлина(СтрокаУсловия) - СтрДлина(КонструкцияИ));
КонецЕсли;
ТекстУсловийПоЖурналуДокументов = ТекстУсловийПоЖурналуДокументов + СтрокаУсловия + Символы.ПС;
ИначеЕсли СтрНайти(СтрокаУсловия, "ПредметыВзаимодействий") Тогда
Если ПустаяСтрока(ТекстУсловийПоРегистру) Тогда
СтрокаУсловия = Прав(СтрокаУсловия, СтрДлина(СтрокаУсловия) - 3);
Если ПустаяСтрока(ТекстУсловийПоРегистру)
И СтрНачинаетсяС(СтрокаУсловия, КонструкцияИ) Тогда
СтрокаУсловия = Прав(СтрокаУсловия, СтрДлина(СтрокаУсловия) - СтрДлина(КонструкцияИ));
КонецЕсли;
ТекстУсловийПоРегистру = ТекстУсловийПоРегистру + СтрокаУсловия + Символы.ПС;
КонецЕсли;
Инд = Инд + 1;
КонецЦикла;
ТекстЗапросаДинамическийСписок =
@@ -1207,10 +1207,36 @@
Элемент.Оформление.УстановитьЗначениеПараметра("Текст", "");
ОтборЭлемента = Элемент.Отбор.Элементы.Добавить(Тип("ЭлементОтбораКомпоновкиДанных"));
ГруппаОтбора = Элемент.Отбор.Элементы.Добавить(Тип("ГруппаЭлементовОтбораКомпоновкиДанных"));
ГруппаОтбора.ТипГруппы = ТипГруппыЭлементовОтбораКомпоновкиДанных.ГруппаИ;
ОтборЭлемента = ГруппаОтбора.Элементы.Добавить(Тип("ЭлементОтбораКомпоновкиДанных"));
ОтборЭлемента.ЛевоеЗначение = Новый ПолеКомпоновкиДанных("ДатыЗапрета.ДатаЗапрета");
ОтборЭлемента.ВидСравнения = ВидСравненияКомпоновкиДанных.НеЗаполнено;
ОтборЭлемента = ГруппаОтбора.Элементы.Добавить(Тип("ЭлементОтбораКомпоновкиДанных"));
ОтборЭлемента.ЛевоеЗначение = Новый ПолеКомпоновкиДанных("ДатыЗапрета.ЗаписьСуществует");
ОтборЭлемента.ВидСравнения = ВидСравненияКомпоновкиДанных.Равно;
ОтборЭлемента.ПравоеЗначение = Ложь;
Элемент = УсловноеОформление.Элементы.Добавить();
ПолеЭлемента = Элемент.Поля.Элементы.Добавить();
ПолеЭлемента.Поле = Новый ПолеКомпоновкиДанных(Элементы.ДатыЗапретаДатаЗапрета.Имя);
Элемент.Оформление.УстановитьЗначениеПараметра("Текст", "0001.01.01");
ГруппаОтбора = Элемент.Отбор.Элементы.Добавить(Тип("ГруппаЭлементовОтбораКомпоновкиДанных"));
ГруппаОтбора.ТипГруппы = ТипГруппыЭлементовОтбораКомпоновкиДанных.ГруппаИ;
ОтборЭлемента = ГруппаОтбора.Элементы.Добавить(Тип("ЭлементОтбораКомпоновкиДанных"));
ОтборЭлемента.ЛевоеЗначение = Новый ПолеКомпоновкиДанных("ДатыЗапрета.ДатаЗапрета");
ОтборЭлемента.ВидСравнения = ВидСравненияКомпоновкиДанных.НеЗаполнено;
ОтборЭлемента = ГруппаОтбора.Элементы.Добавить(Тип("ЭлементОтбораКомпоновкиДанных"));
ОтборЭлемента.ЛевоеЗначение = Новый ПолеКомпоновкиДанных("ДатыЗапрета.ЗаписьСуществует");
ОтборЭлемента.ВидСравнения = ВидСравненияКомпоновкиДанных.Равно;
ОтборЭлемента.ПравоеЗначение = Истина;
// Оформление неустановленного значения даты запрета.
Элемент = УсловноеОформление.Элементы.Добавить();
@@ -1219,10 +1245,18 @@
Элемент.Оформление.УстановитьЗначениеПараметра("ЦветТекста", ЦветаСтиля.ТекстЗапрещеннойЯчейкиЦвет);
ОтборЭлемента = Элемент.Отбор.Элементы.Добавить(Тип("ЭлементОтбораКомпоновкиДанных"));
ГруппаОтбора = Элемент.Отбор.Элементы.Добавить(Тип("ГруппаЭлементовОтбораКомпоновкиДанных"));
ГруппаОтбора.ТипГруппы = ТипГруппыЭлементовОтбораКомпоновкиДанных.ГруппаИ;
ОтборЭлемента = ГруппаОтбора.Элементы.Добавить(Тип("ЭлементОтбораКомпоновкиДанных"));
ОтборЭлемента.ЛевоеЗначение = Новый ПолеКомпоновкиДанных("ДатыЗапрета.ДатаЗапрета");
ОтборЭлемента.ВидСравнения = ВидСравненияКомпоновкиДанных.НеЗаполнено;
ОтборЭлемента = ГруппаОтбора.Элементы.Добавить(Тип("ЭлементОтбораКомпоновкиДанных"));
ОтборЭлемента.ЛевоеЗначение = Новый ПолеКомпоновкиДанных("ДатыЗапрета.ЗаписьСуществует");
ОтборЭлемента.ВидСравнения = ВидСравненияКомпоновкиДанных.Равно;
ОтборЭлемента.ПравоеЗначение = Ложь;
// Дата запрета по умолчанию.
Элемент = УсловноеОформление.Элементы.Добавить();
Элемент.Оформление.УстановитьЗначениеПараметра("Текст", НСтр("ru = 'Во всех остальных случаях, когда ниже нет уточняющих настроек.'"));
@@ -1503,6 +1537,7 @@
ЭлементыРаздела.Очистить();
ТекущиеДанные.ДатаЗапрета = '00010101';
ТекущиеДанные.ОписаниеДатыЗапрета = "";
ТекущиеДанные.ЗаписьСуществует = Ложь;
ТекущиеДанные.КоличествоДнейРазрешения = 0;
УстановитьПредставлениеОписанияДатыЗапрета(ТекущиеДанные);
@@ -2429,12 +2464,11 @@
КонецЕсли;
КонецЕсли;
Если ПрочитанныеСвойства.ДатаЗапрета <> Неопределено Тогда
ТекущиеЗначенияСвойств.ЗаписьСуществует = ПрочитанныеСвойства.ДатаЗапрета <> Неопределено;
ТекущиеЗначенияСвойств.ДатаЗапрета = ПрочитанныеСвойства.ДатаЗапрета;
ТекущиеЗначенияСвойств.ОписаниеДатыЗапрета = ПрочитанныеСвойства.ОписаниеДатыЗапрета;
ТекущиеЗначенияСвойств.КоличествоДнейРазрешения = ПрочитанныеСвойства.КоличествоДнейРазрешения;
УстановитьПредставлениеОписанияДатыЗапрета(ТекущиеЗначенияСвойств);
КонецЕсли;
КонецПроцедуры
@@ -2664,6 +2698,7 @@
ТекущиеДанные.Объект,
ТекущийПользователь);
ТекущиеДанные.ОписаниеДатыЗапрета = "";
ТекущиеДанные.ЗаписьСуществует = Ложь;
КонецЕсли;
@@ -3506,6 +3541,7 @@
ПараметрыФормы.Вставить("ОписаниеДатыЗапрета", ТекущиеДанные.ОписаниеДатыЗапрета);
ПараметрыФормы.Вставить("КоличествоДнейРазрешения", ТекущиеДанные.КоличествоДнейРазрешения);
ПараметрыФормы.Вставить("ДатаЗапрета", ТекущиеДанные.ДатаЗапрета);
ПараметрыФормы.Вставить("ЗаписьСуществует", ТекущиеДанные.ЗаписьСуществует);
ПараметрыФормы.Вставить("НетДатыЗапретаПредставление", НетДатыЗапретаПредставление(ТекущиеДанные));
Если ВыделенныеСтроки.Количество() = 1 Тогда
@@ -3543,7 +3579,7 @@
Процедура УстановитьПредставлениеОписанияДатыЗапрета(Знач Данные)
// Представление неустановленного значения даты запрета.
Если Не ЗначениеЗаполнено(Данные.ДатаЗапрета) Тогда
Если Не ЗначениеЗаполнено(Данные.ДатаЗапрета) И Не Данные.ЗаписьСуществует Тогда
Данные.ОписаниеДатыЗапретаПредставление = НетДатыЗапретаПредставление(Данные);
Если Не ПустаяСтрока(Данные.ОписаниеДатыЗапретаПредставление) Тогда
Возврат;
@@ -18,6 +18,10 @@
<segments>ОписаниеДатыЗапрета</segments>
</dataPath>
<titleLocation>None</titleLocation>
<handlers>
<event>OnChange</event>
<name>ОписаниеДатыЗапретаПриИзменении</name>
</handlers>
<extendedTooltip>
<name>ЗапретИзмененияДанныхНеУстановленРасширеннаяПодсказка</name>
<id>87</id>
@@ -64,6 +68,10 @@
<segments>ОписаниеДатыЗапрета</segments>
</dataPath>
<titleLocation>None</titleLocation>
<handlers>
<event>OnChange</event>
<name>ПроизвольнаяДатаЗапретаПриИзменении</name>
</handlers>
<extendedTooltip>
<name>ПроизвольнаяДатаЗапретаРасширеннаяПодсказка</name>
<id>92</id>
@@ -1356,6 +1364,19 @@
<common>true</common>
</edit>
</attributes>
<attributes>
<name>ЗаписьСуществует</name>
<id>12</id>
<valueType>
<types>Boolean</types>
</valueType>
<view>
<common>true</common>
</view>
<edit>
<common>true</common>
</edit>
</attributes>
<formCommands>
<name>ОК</name>
<title>
@@ -1435,6 +1456,12 @@
<stringQualifiers/>
</valueType>
</parameters>
<parameters>
<name>ЗаписьСуществует</name>
<valueType>
<types>Boolean</types>
</valueType>
</parameters>
<commandInterface>
<navigationPanel/>
<commandBar/>
@@ -17,6 +17,8 @@
ОписаниеДатыЗапрета = Параметры.ОписаниеДатыЗапрета;
КоличествоДнейРазрешения = Параметры.КоличествоДнейРазрешения;
ДатаЗапрета = Параметры.ДатаЗапрета;
ЗаписьСуществует = Параметры.ЗаписьСуществует;
Если Не ПустаяСтрока(Параметры.НетДатыЗапретаПредставление) Тогда
Элементы.ЗапретИзмененияДанныхНеУстановлен.СписокВыбора[0].Представление = Параметры.НетДатыЗапретаПредставление;
КонецЕсли;
@@ -87,6 +89,13 @@
#Область ОбработчикиСобытийЭлементовШапкиФормы
&НаКлиенте
Процедура ПроизвольнаяДатаЗапретаПриИзменении(Элемент)
ПодключитьОбработчикОжидания("ОбновитьОтображениеДатыЗапретаПриИзмененииОбработчикОжидания", 0.1, Истина);
КонецПроцедуры
////////////////////////////////////////////////////////////////////////////////
// Одинаковые обработчики событий форм ДатыЗапретаИзменения и РедактированиеДатыЗапрета.
@@ -90,11 +90,38 @@
<autoMaxHeight>true</autoMaxHeight>
</extInfo>
</items>
<commandBarLocation>None</commandBarLocation>
<autoCommandBar>
<name>СписокКоманднаяПанель</name>
<id>5</id>
<items xsi:type="form:Button">
<name>ФормаИзменить</name>
<id>19</id>
<visible>true</visible>
<enabled>true</enabled>
<userVisible>
<common>true</common>
</userVisible>
<extendedTooltip>
<name>ФормаИзменитьРасширеннаяПодсказка</name>
<id>20</id>
<type>Label</type>
<autoMaxWidth>true</autoMaxWidth>
<autoMaxHeight>true</autoMaxHeight>
<extInfo xsi:type="form:LabelDecorationExtInfo">
<horizontalAlign>Left</horizontalAlign>
</extInfo>
</extendedTooltip>
<commandName>Form.StandardCommand.Change</commandName>
<buttonImportance>Normal</buttonImportance>
<representation>Auto</representation>
<autoMaxWidth>true</autoMaxWidth>
<autoMaxHeight>true</autoMaxHeight>
<placementArea>UserCmds</placementArea>
<representationInContextMenu>Auto</representationInContextMenu>
<locationInCommandBar>InCommandBarAndInAdditionalSubmenu</locationInCommandBar>
</items>
<horizontalAlign>Left</horizontalAlign>
<autoFill>true</autoFill>
</autoCommandBar>
<searchStringAddition>
<name>СписокСтрокаПоиска</name>
@@ -204,8 +231,6 @@
<rowPictureDataPath xsi:type="form:DataPath">
<segments>Список.DefaultPicture</segments>
</rowPictureDataPath>
<searchStringLocation>None</searchStringLocation>
<searchControlLocation>None</searchControlLocation>
<autoMaxCardHeight>true</autoMaxCardHeight>
<extInfo xsi:type="form:DynamicListTableExtInfo">
<autoRefreshPeriod>60</autoRefreshPeriod>
@@ -222,35 +247,7 @@
<autoCommandBar>
<name>ФормаКоманднаяПанель</name>
<id>-1</id>
<items xsi:type="form:Button">
<name>ФормаИзменить</name>
<id>19</id>
<visible>true</visible>
<enabled>true</enabled>
<userVisible>
<common>true</common>
</userVisible>
<extendedTooltip>
<name>ФормаИзменитьРасширеннаяПодсказка</name>
<id>20</id>
<type>Label</type>
<autoMaxWidth>true</autoMaxWidth>
<autoMaxHeight>true</autoMaxHeight>
<extInfo xsi:type="form:LabelDecorationExtInfo">
<horizontalAlign>Left</horizontalAlign>
</extInfo>
</extendedTooltip>
<commandName>Form.StandardCommand.Change</commandName>
<buttonImportance>Normal</buttonImportance>
<representation>Auto</representation>
<autoMaxWidth>true</autoMaxWidth>
<autoMaxHeight>true</autoMaxHeight>
<placementArea>UserCmds</placementArea>
<representationInContextMenu>Auto</representationInContextMenu>
<locationInCommandBar>InCommandBarAndInAdditionalSubmenu</locationInCommandBar>
</items>
<horizontalAlign>Left</horizontalAlign>
<autoFill>true</autoFill>
</autoCommandBar>
<excludedCommands>Copy</excludedCommands>
<excludedCommands>Create</excludedCommands>
@@ -90,11 +90,38 @@
<autoMaxHeight>true</autoMaxHeight>
</extInfo>
</items>
<commandBarLocation>None</commandBarLocation>
<autoCommandBar>
<name>СписокКоманднаяПанель</name>
<id>5</id>
<items xsi:type="form:Button">
<name>ФормаИзменить</name>
<id>19</id>
<visible>true</visible>
<enabled>true</enabled>
<userVisible>
<common>true</common>
</userVisible>
<extendedTooltip>
<name>ФормаИзменитьРасширеннаяПодсказка</name>
<id>20</id>
<type>Label</type>
<autoMaxWidth>true</autoMaxWidth>
<autoMaxHeight>true</autoMaxHeight>
<extInfo xsi:type="form:LabelDecorationExtInfo">
<horizontalAlign>Left</horizontalAlign>
</extInfo>
</extendedTooltip>
<commandName>Form.Item.Список.StandardCommand.Change</commandName>
<buttonImportance>Normal</buttonImportance>
<representation>Auto</representation>
<autoMaxWidth>true</autoMaxWidth>
<autoMaxHeight>true</autoMaxHeight>
<placementArea>UserCmds</placementArea>
<representationInContextMenu>Auto</representationInContextMenu>
<locationInCommandBar>InCommandBarAndInAdditionalSubmenu</locationInCommandBar>
</items>
<horizontalAlign>Left</horizontalAlign>
<autoFill>true</autoFill>
</autoCommandBar>
<searchStringAddition>
<name>СписокСтрокаПоиска</name>
@@ -204,8 +231,6 @@
<rowPictureDataPath xsi:type="form:DataPath">
<segments>Список.DefaultPicture</segments>
</rowPictureDataPath>
<searchStringLocation>None</searchStringLocation>
<searchControlLocation>None</searchControlLocation>
<autoMaxCardHeight>true</autoMaxCardHeight>
<extInfo xsi:type="form:DynamicListTableExtInfo">
<autoRefreshPeriod>60</autoRefreshPeriod>
@@ -222,35 +247,7 @@
<autoCommandBar>
<name>ФормаКоманднаяПанель</name>
<id>-1</id>
<items xsi:type="form:Button">
<name>ФормаИзменить</name>
<id>19</id>
<visible>true</visible>
<enabled>true</enabled>
<userVisible>
<common>true</common>
</userVisible>
<extendedTooltip>
<name>ФормаИзменитьРасширеннаяПодсказка</name>
<id>20</id>
<type>Label</type>
<autoMaxWidth>true</autoMaxWidth>
<autoMaxHeight>true</autoMaxHeight>
<extInfo xsi:type="form:LabelDecorationExtInfo">
<horizontalAlign>Left</horizontalAlign>
</extInfo>
</extendedTooltip>
<commandName>Form.Item.Список.StandardCommand.Change</commandName>
<buttonImportance>Normal</buttonImportance>
<representation>Auto</representation>
<autoMaxWidth>true</autoMaxWidth>
<autoMaxHeight>true</autoMaxHeight>
<placementArea>UserCmds</placementArea>
<representationInContextMenu>Auto</representationInContextMenu>
<locationInCommandBar>InCommandBarAndInAdditionalSubmenu</locationInCommandBar>
</items>
<horizontalAlign>Left</horizontalAlign>
<autoFill>true</autoFill>
</autoCommandBar>
<excludedCommands>Copy</excludedCommands>
<excludedCommands>Create</excludedCommands>
@@ -36,9 +36,149 @@
<currentRowUse>Auto</currentRowUse>
</extInfo>
</items>
<items xsi:type="form:FormGroup">
<name>КоманднаяПанель</name>
<id>42</id>
<items xsi:type="form:Table">
<name>Список</name>
<id>1</id>
<title>
<key>ru</key>
<value>Список</value>
</title>
<visible>true</visible>
<enabled>true</enabled>
<userVisible>
<common>true</common>
</userVisible>
<dataPath xsi:type="form:DataPath">
<segments>Список</segments>
</dataPath>
<defaultItem>true</defaultItem>
<titleLocation>None</titleLocation>
<excludedCommands>Copy</excludedCommands>
<excludedCommands>Create</excludedCommands>
<excludedCommands>Delete</excludedCommands>
<excludedCommands>DynamicListStandardSettings</excludedCommands>
<excludedCommands>FindByCurrentValue</excludedCommands>
<excludedCommands>ListSettings</excludedCommands>
<excludedCommands>LoadDynamicListSettings</excludedCommands>
<excludedCommands>SaveDynamicListSettings</excludedCommands>
<items xsi:type="form:FormField">
<name>ИмяПланаОбмена</name>
<id>4</id>
<title>
<key>ru</key>
<value>Программа</value>
</title>
<visible>true</visible>
<enabled>true</enabled>
<userVisible>
<common>true</common>
</userVisible>
<dataPath xsi:type="form:DataPath">
<segments>Список.ИмяПланаОбмена</segments>
</dataPath>
<defaultItem>true</defaultItem>
<extendedTooltip>
<name>ИмяПланаОбменаExtendedTooltip</name>
<id>37</id>
<type>Label</type>
<autoMaxWidth>true</autoMaxWidth>
<autoMaxHeight>true</autoMaxHeight>
<extInfo xsi:type="form:LabelDecorationExtInfo">
<horizontalAlign>Left</horizontalAlign>
</extInfo>
</extendedTooltip>
<contextMenu>
<name>ИмяПланаОбменаКонтекстноеМеню</name>
<id>5</id>
<autoFill>true</autoFill>
</contextMenu>
<type>LabelField</type>
<editMode>Enter</editMode>
<showInHeader>true</showInHeader>
<headerHorizontalAlign>Left</headerHorizontalAlign>
<showInFooter>true</showInFooter>
<extInfo xsi:type="form:LabelFieldExtInfo">
<autoMaxWidth>true</autoMaxWidth>
<autoMaxHeight>true</autoMaxHeight>
</extInfo>
</items>
<items xsi:type="form:FormField">
<name>ВидПравил</name>
<id>6</id>
<visible>true</visible>
<enabled>true</enabled>
<userVisible>
<common>true</common>
</userVisible>
<dataPath xsi:type="form:DataPath">
<segments>Список.ВидПравил</segments>
</dataPath>
<defaultItem>true</defaultItem>
<extendedTooltip>
<name>ВидПравилExtendedTooltip</name>
<id>38</id>
<type>Label</type>
<autoMaxWidth>true</autoMaxWidth>
<autoMaxHeight>true</autoMaxHeight>
<extInfo xsi:type="form:LabelDecorationExtInfo">
<horizontalAlign>Left</horizontalAlign>
</extInfo>
</extendedTooltip>
<contextMenu>
<name>ВидПравилКонтекстноеМеню</name>
<id>7</id>
<autoFill>true</autoFill>
</contextMenu>
<type>LabelField</type>
<editMode>Enter</editMode>
<showInHeader>true</showInHeader>
<headerHorizontalAlign>Left</headerHorizontalAlign>
<showInFooter>true</showInFooter>
<extInfo xsi:type="form:LabelFieldExtInfo">
<autoMaxWidth>true</autoMaxWidth>
<autoMaxHeight>true</autoMaxHeight>
</extInfo>
</items>
<items xsi:type="form:FormField">
<name>ИсточникПравил</name>
<id>12</id>
<visible>true</visible>
<enabled>true</enabled>
<userVisible>
<common>true</common>
</userVisible>
<dataPath xsi:type="form:DataPath">
<segments>Список.ИсточникПравил</segments>
</dataPath>
<defaultItem>true</defaultItem>
<extendedTooltip>
<name>ИсточникПравилExtendedTooltip</name>
<id>39</id>
<type>Label</type>
<autoMaxWidth>true</autoMaxWidth>
<autoMaxHeight>true</autoMaxHeight>
<extInfo xsi:type="form:LabelDecorationExtInfo">
<horizontalAlign>Left</horizontalAlign>
</extInfo>
</extendedTooltip>
<contextMenu>
<name>ИсточникПравилКонтекстноеМеню</name>
<id>13</id>
<autoFill>true</autoFill>
</contextMenu>
<type>LabelField</type>
<editMode>Enter</editMode>
<showInHeader>true</showInHeader>
<headerHorizontalAlign>Left</headerHorizontalAlign>
<showInFooter>true</showInFooter>
<extInfo xsi:type="form:LabelFieldExtInfo">
<autoMaxWidth>true</autoMaxWidth>
<autoMaxHeight>true</autoMaxHeight>
</extInfo>
</items>
<autoCommandBar>
<name>СписокКоманднаяПанель</name>
<id>3</id>
<items xsi:type="form:Button">
<name>ФормаИзменить</name>
<id>23</id>
@@ -268,7 +408,7 @@
<horizontalAlign>Left</horizontalAlign>
</extInfo>
</extendedTooltip>
<commandName>Form.Item.Список.StandardCommand.ListSettings</commandName>
<commandName>Form.Item.Список.StandardCommand.ChangeHistory</commandName>
<buttonImportance>Normal</buttonImportance>
<representation>Auto</representation>
<autoMaxWidth>true</autoMaxWidth>
@@ -350,170 +490,8 @@
</extendedTooltip>
<extInfo xsi:type="form:ButtonGroupExtInfo"/>
</items>
<visible>true</visible>
<enabled>true</enabled>
<userVisible>
<common>true</common>
</userVisible>
<title>
<key>ru</key>
<value>Командная панель</value>
</title>
<extendedTooltip>
<name>КоманднаяПанельРасширеннаяПодсказка</name>
<id>43</id>
<type>Label</type>
<autoMaxWidth>true</autoMaxWidth>
<autoMaxHeight>true</autoMaxHeight>
<extInfo xsi:type="form:LabelDecorationExtInfo">
<horizontalAlign>Left</horizontalAlign>
</extInfo>
</extendedTooltip>
<type>CommandBar</type>
<extInfo xsi:type="form:CommandBarExtInfo">
<horizontalAlign>Left</horizontalAlign>
</extInfo>
</items>
<items xsi:type="form:Table">
<name>Список</name>
<id>1</id>
<title>
<key>ru</key>
<value>Список</value>
</title>
<visible>true</visible>
<enabled>true</enabled>
<userVisible>
<common>true</common>
</userVisible>
<dataPath xsi:type="form:DataPath">
<segments>Список</segments>
</dataPath>
<defaultItem>true</defaultItem>
<titleLocation>None</titleLocation>
<excludedCommands>Copy</excludedCommands>
<excludedCommands>Create</excludedCommands>
<excludedCommands>Delete</excludedCommands>
<items xsi:type="form:FormField">
<name>ИмяПланаОбмена</name>
<id>4</id>
<title>
<key>ru</key>
<value>Программа</value>
</title>
<visible>true</visible>
<enabled>true</enabled>
<userVisible>
<common>true</common>
</userVisible>
<dataPath xsi:type="form:DataPath">
<segments>Список.ИмяПланаОбмена</segments>
</dataPath>
<defaultItem>true</defaultItem>
<extendedTooltip>
<name>ИмяПланаОбменаExtendedTooltip</name>
<id>37</id>
<type>Label</type>
<autoMaxWidth>true</autoMaxWidth>
<autoMaxHeight>true</autoMaxHeight>
<extInfo xsi:type="form:LabelDecorationExtInfo">
<horizontalAlign>Left</horizontalAlign>
</extInfo>
</extendedTooltip>
<contextMenu>
<name>ИмяПланаОбменаКонтекстноеМеню</name>
<id>5</id>
<autoFill>true</autoFill>
</contextMenu>
<type>LabelField</type>
<editMode>Enter</editMode>
<showInHeader>true</showInHeader>
<headerHorizontalAlign>Left</headerHorizontalAlign>
<showInFooter>true</showInFooter>
<extInfo xsi:type="form:LabelFieldExtInfo">
<autoMaxWidth>true</autoMaxWidth>
<autoMaxHeight>true</autoMaxHeight>
</extInfo>
</items>
<items xsi:type="form:FormField">
<name>ВидПравил</name>
<id>6</id>
<visible>true</visible>
<enabled>true</enabled>
<userVisible>
<common>true</common>
</userVisible>
<dataPath xsi:type="form:DataPath">
<segments>Список.ВидПравил</segments>
</dataPath>
<defaultItem>true</defaultItem>
<extendedTooltip>
<name>ВидПравилExtendedTooltip</name>
<id>38</id>
<type>Label</type>
<autoMaxWidth>true</autoMaxWidth>
<autoMaxHeight>true</autoMaxHeight>
<extInfo xsi:type="form:LabelDecorationExtInfo">
<horizontalAlign>Left</horizontalAlign>
</extInfo>
</extendedTooltip>
<contextMenu>
<name>ВидПравилКонтекстноеМеню</name>
<id>7</id>
<autoFill>true</autoFill>
</contextMenu>
<type>LabelField</type>
<editMode>Enter</editMode>
<showInHeader>true</showInHeader>
<headerHorizontalAlign>Left</headerHorizontalAlign>
<showInFooter>true</showInFooter>
<extInfo xsi:type="form:LabelFieldExtInfo">
<autoMaxWidth>true</autoMaxWidth>
<autoMaxHeight>true</autoMaxHeight>
</extInfo>
</items>
<items xsi:type="form:FormField">
<name>ИсточникПравил</name>
<id>12</id>
<visible>true</visible>
<enabled>true</enabled>
<userVisible>
<common>true</common>
</userVisible>
<dataPath xsi:type="form:DataPath">
<segments>Список.ИсточникПравил</segments>
</dataPath>
<defaultItem>true</defaultItem>
<extendedTooltip>
<name>ИсточникПравилExtendedTooltip</name>
<id>39</id>
<type>Label</type>
<autoMaxWidth>true</autoMaxWidth>
<autoMaxHeight>true</autoMaxHeight>
<extInfo xsi:type="form:LabelDecorationExtInfo">
<horizontalAlign>Left</horizontalAlign>
</extInfo>
</extendedTooltip>
<contextMenu>
<name>ИсточникПравилКонтекстноеМеню</name>
<id>13</id>
<autoFill>true</autoFill>
</contextMenu>
<type>LabelField</type>
<editMode>Enter</editMode>
<showInHeader>true</showInHeader>
<headerHorizontalAlign>Left</headerHorizontalAlign>
<showInFooter>true</showInFooter>
<extInfo xsi:type="form:LabelFieldExtInfo">
<autoMaxWidth>true</autoMaxWidth>
<autoMaxHeight>true</autoMaxHeight>
</extInfo>
</items>
<commandBarLocation>None</commandBarLocation>
<autoCommandBar>
<name>СписокКоманднаяПанель</name>
<id>3</id>
<horizontalAlign>Left</horizontalAlign>
</autoCommandBar>
<handlers>
<event>BeforeDeleteRow</event>
@@ -13,7 +13,7 @@
Процедура ПриКомпоновкеРезультата(ДокументРезультат, ДанныеРасшифровки, СтандартнаяОбработка)
ПериодНастройка = КомпоновщикНастроек.Настройки.ПараметрыДанных.Элементы.Найти("Период");
ПериодНастройкаПользовательская = КомпоновщикНастроек.ПользовательскиеНастройки.Элементы.Найти(ПериодНастройка.ИдентификаторПользовательскойНастройки);
ПериодНастройкаПользовательская = КомпоновщикНастроек.ПользовательскиеНастройки.Элементы.Найти(ПериодНастройка.ИдентификаторПользовательскойНастройки); // СтандартныйПериод
ПараметрДанных = КомпоновщикНастроек.Настройки.ПараметрыДанных.Элементы.Найти("НачалоПериода");
ПараметрДанных.Значение = УниверсальноеВремя(ПериодНастройкаПользовательская.Значение.ДатаНачала);
@@ -24,7 +24,7 @@
ПараметрДанных.Использование = Истина;
ПериодСравненияНастройка = КомпоновщикНастроек.Настройки.ПараметрыДанных.Элементы.Найти("ПериодСравнения");
ПериодСравненияНастройкаПользовательская = КомпоновщикНастроек.ПользовательскиеНастройки.Элементы.Найти(ПериодСравненияНастройка.ИдентификаторПользовательскойНастройки);
ПериодСравненияНастройкаПользовательская = КомпоновщикНастроек.ПользовательскиеНастройки.Элементы.Найти(ПериодСравненияНастройка.ИдентификаторПользовательскойНастройки); // СтандартныйПериод
Если ПериодСравненияНастройкаПользовательская <> Неопределено
И ПериодСравненияНастройкаПользовательская.Использование Тогда
@@ -4467,93 +4467,6 @@
<value>true</value>
</right>
</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>
<name>Constant.СинхронизироватьДанныеСПриложениемВИнтернетеПриЗавершенииРаботыПрограммы</name>
<right>
@@ -4710,6 +4623,93 @@
<value>true</value>
</right>
</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>
<name>InformationRegister.ЗамерыОперацииСтатистики</name>
<right>
@@ -6169,45 +6169,6 @@
<value>false</value>
</right>
</object>
<object>
<name>Configuration.БиблиотекаСтандартныхПодсистем</name>
<right>
<name>Administration</name>
<value>false</value>
</right>
<right>
<name>UpdateDataBaseConfiguration</name>
<value>false</value>
</right>
<right>
<name>ThickClient</name>
<value>false</value>
</right>
<right>
<name>ExternalConnection</name>
<value>false</value>
</right>
<right>
<name>Automation</name>
<value>false</value>
</right>
<right>
<name>TechnicalSpecialistMode</name>
<value>false</value>
</right>
<right>
<name>ConfigurationExtensionsAdministration</name>
<value>false</value>
</right>
<right>
<name>InteractiveOpenExtDataProcessors</name>
<value>false</value>
</right>
<right>
<name>InteractiveOpenExtReports</name>
<value>false</value>
</right>
</object>
<object>
<name>Constant.СинхронизироватьДанныеСПриложениемВИнтернетеПриЗавершенииРаботыПрограммы</name>
<right>
@@ -6412,6 +6373,45 @@
<value>false</value>
</right>
</object>
<object>
<name>Configuration.БиблиотекаСтандартныхПодсистем</name>
<right>
<name>Administration</name>
<value>false</value>
</right>
<right>
<name>UpdateDataBaseConfiguration</name>
<value>false</value>
</right>
<right>
<name>ThickClient</name>
<value>false</value>
</right>
<right>
<name>ExternalConnection</name>
<value>false</value>
</right>
<right>
<name>Automation</name>
<value>false</value>
</right>
<right>
<name>TechnicalSpecialistMode</name>
<value>false</value>
</right>
<right>
<name>ConfigurationExtensionsAdministration</name>
<value>false</value>
</right>
<right>
<name>InteractiveOpenExtDataProcessors</name>
<value>false</value>
</right>
<right>
<name>InteractiveOpenExtReports</name>
<value>false</value>
</right>
</object>
<object>
<name>InformationRegister.ЗамерыОперацииСтатистики</name>
<right>
@@ -181,9 +181,16 @@
ПорядокЭлементовНастроек = ОбщегоНазначенияКлиентСервер.СвойствоСтруктуры(
КомпоновщикНастроек.Настройки.ДополнительныеСвойства, "ПорядокЭлементовНастроек", Новый Соответствие);
ПользовательскиеНастройки = КомпоновщикНастроек.ПользовательскиеНастройки.Элементы;
Для Каждого СведенияОНастройке Из СведенияОНастройках Цикл
ИдентификаторПользовательскойНастройки = СведенияОНастройке.Ключ;
ЭлементПользовательскихНастроек = ПользовательскиеНастройки.Найти(ИдентификаторПользовательскойНастройки);
Если ЭлементПользовательскихНастроек = Неопределено Тогда
Продолжить;
КонецЕсли;
Настройки = СведенияОНастройке.Значение.Настройки;
Если ТипЗнч(Настройки) <> Тип("НастройкиКомпоновкиДанных") Тогда
@@ -199,9 +206,13 @@
ТипНастройки = ТипЗнч(ЭлементНастроек);
Если ТипНастройки = Тип("ОтборКомпоновкиДанных") Тогда
Продолжить;
КонецЕсли;
Запись = БыстрыеНастройки.Добавить();
Запись.Пометка = (ЭлементНастроек.РежимОтображения = РежимОтображенияЭлементаНастройкиКомпоновкиДанных.БыстрыйДоступ);
Запись.Заголовок = ЗаголовокНастройки(ЭлементНастроек, ОписаниеНастройки, ТипНастройки, ИдентификаторПользовательскойНастройки);
Запись.Заголовок = ЗаголовокНастройки(ЭлементНастроек, ОписаниеНастройки, ТипНастройки, ЭлементПользовательскихНастроек);
Запись.ИдентификаторПользовательскойНастройки = ИдентификаторПользовательскойНастройки;
Запись.ТипНастройки = ТипНастройки;
Запись.КартинкаНастройки = КартинкаНастройки(ЭлементНастроек, ТипНастройки);
@@ -266,9 +277,9 @@
КонецФункции
&НаСервере
Функция ЗаголовокНастройки(ЭлементНастроек, ОписаниеНастройки, ТипНастройки, ИдентификаторПользовательскойНастройки)
Функция ЗаголовокНастройки(ЭлементНастроек, ОписаниеНастройки, ТипНастройки, ЭлементПользовательскихНастроек)
ЗначениеНастройки = ЗначениеНастройки(ЭлементНастроек, ОписаниеНастройки, ТипНастройки, ИдентификаторПользовательскойНастройки);
ЗначениеНастройки = ЗначениеНастройки(ЭлементНастроек, ОписаниеНастройки, ТипНастройки, ЭлементПользовательскихНастроек);
ПредставлениеНастройки = ПредставлениеНастройки(ЭлементНастроек, ОписаниеНастройки, ТипНастройки);
Если ЗначениеЗаполнено(ЗначениеНастройки)
@@ -284,10 +295,7 @@
КонецФункции
&НаСервере
Функция ЗначениеНастройки(ЭлементНастроек, ОписаниеНастройки, ТипНастройки, ИдентификаторПользовательскойНастройки)
ЭлементПользовательскихНастроек = КомпоновщикНастроек.ПользовательскиеНастройки.Элементы.Найти(
ИдентификаторПользовательскойНастройки);
Функция ЗначениеНастройки(ЭлементНастроек, ОписаниеНастройки, ТипНастройки, ЭлементПользовательскихНастроек)
ЗначениеНастройки = Неопределено;
ИмяПоляНастройки = Неопределено;
@@ -277,5 +277,7 @@
<content>CommonPicture.ТипПапка</content>
<content>CommonPicture.ТипСоставнойОсновной</content>
<content>ScheduledJob.ОбработкаСервисовИнтеграции</content>
<content>CommonPicture.ВводимыеСимволыСкрыты</content>
<content>CommonPicture.ВводимыеСимволыВидны</content>
<parentSubsystem>Subsystem.СтандартныеПодсистемы</parentSubsystem>
</mdclass:Subsystem>
@@ -14,5 +14,6 @@
<content>InformationRegister.КэшПереводов</content>
<content>FunctionalOption.ИспользоватьСервисПереводаТекста</content>
<content>Constant.СервисПереводаТекста</content>
<content>CommonModule.ПереводТекстаНаДругиеЯзыкиКлиент</content>
<parentSubsystem>Subsystem.СтандартныеПодсистемы.Subsystem.Мультиязычность</parentSubsystem>
</mdclass:Subsystem>
@@ -107,7 +107,6 @@
<content>Constant.СообщениеОбменаДаннымиИзГлавногоУзла</content>
<content>DataProcessor.ВыполнениеОбменаДанными</content>
<content>CommonForm.ДополнительноеОписание</content>
<content>XDTOPackage.EnterpriseData_1_8_6</content>
<content>CommonTemplate.ИнструкцияКакВыполнитьУстановкуОбновленияВручную</content>
<content>CommonModule.ОбменДаннымиВызовСервера</content>
<content>DataProcessor.КонвертацияОбъектовИнформационныхБаз</content>
@@ -161,6 +160,7 @@
<content>Constant.ЗагрузитьРасширенияИзменяющиеСтруктуруДанных</content>
<content>EventSubscription.ПередУдалениемПланаОбмена</content>
<content>DataProcessor.ОтложеннаяЗаписьУзла</content>
<content>XDTOPackage.EnterpriseData_1_10_2</content>
<content>XDTOPackage.EnterpriseData_1_10_3</content>
<content>XDTOPackage.EnterpriseData_1_8_6</content>
<parentSubsystem>Subsystem.СтандартныеПодсистемы</parentSubsystem>
</mdclass:Subsystem>
@@ -23,8 +23,6 @@
<content>CommonModule.РаботаСПочтовымиСообщениямиПереопределяемый</content>
<content>CommonModule.РаботаСПочтовымиСообщениямиКлиентПереопределяемый</content>
<content>Role.ЧтениеУчетныхЗаписейЭлектроннойПочты</content>
<content>CommonPicture.ВводимыеСимволыСкрыты</content>
<content>CommonPicture.ВводимыеСимволыВидны</content>
<content>Constant.УчетнаяЗаписьДляВосстановленияПароля</content>
<parentSubsystem>Subsystem.СтандартныеПодсистемы</parentSubsystem>
</mdclass:Subsystem>
@@ -1,9 +1,9 @@
<?xml version="1.0" encoding="UTF-8"?>
<mdclass:XDTOPackage xmlns:mdclass="http://g5.1c.ru/v8/dt/metadata/mdclass" uuid="baec0e60-c410-4b95-8126-f77fd06225b4">
<name>EnterpriseData_1_10_2</name>
<name>EnterpriseData_1_10_3</name>
<synonym>
<key>ru</key>
<value>EnterpriseData 1.10.2</value>
<value>EnterpriseData 1.10.3</value>
</synonym>
<namespace>http://v8.1c.ru/edi/edi_stnd/EnterpriseData/1.10</namespace>
</mdclass:XDTOPackage>
@@ -3249,6 +3249,7 @@
<property name="РасчетыСДебиторами" type="xs:boolean" lowerBound="0" nillable="true"/>
<property name="РасчетыСЛизингодателями" type="xs:boolean" lowerBound="0" nillable="true"/>
<property name="РасчетыВВалюте" type="xs:boolean" lowerBound="0" nillable="true"/>
<property name="РасчетыСКомитентамиПоЗакупке" type="xs:boolean" lowerBound="0"/>
</objectType>
<objectType xmlns:d2p1="http://www.1c.ru/SSL/Exchange/Message" name="Справочник.ДенежныеДокументы" base="d2p1:Object" open="true" sequenced="true">
<property xmlns:d3p1="http://v8.1c.ru/edi/edi_stnd/EnterpriseData/1.10" name="КлючевыеСвойства" type="d3p1:КлючевыеСвойстваДенежныеДокументы"/>
@@ -5578,7 +5579,7 @@
</property>
<property xmlns:d3p1="http://v8.1c.ru/edi/edi_stnd/EnterpriseData/1.10" name="СуммаВознаграждения" type="d3p1:ТипСумма" lowerBound="0"/>
<property xmlns:d3p1="http://v8.1c.ru/edi/edi_stnd/EnterpriseData/1.10" name="СтавкаНДСВознаграждения" type="d3p1:СтавкиНДС" lowerBound="0"/>
<property xmlns:d3p1="http://v8.1c.ru/edi/edi_stnd/EnterpriseData/1.10" name="Товары" type="d3p1:Документ.ОтчетКомиссионера.Товары" lowerBound="1"/>
<property xmlns:d3p1="http://v8.1c.ru/edi/edi_stnd/EnterpriseData/1.10" name="Товары" type="d3p1:Документ.ОтчетКомиссионера.Товары" lowerBound="0"/>
<property xmlns:d3p1="http://v8.1c.ru/edi/edi_stnd/EnterpriseData/1.10" name="ВозвратыПокупателей" type="d3p1:Документ.ОтчетКомиссионера.ВозвратыПокупателей" lowerBound="0"/>
<property xmlns:d3p1="http://v8.1c.ru/edi/edi_stnd/EnterpriseData/1.10" name="Покупатели" type="d3p1:Документ.ОтчетКомиссионера.Покупатели"/>
<property xmlns:d3p1="http://v8.1c.ru/edi/edi_stnd/EnterpriseData/1.10" name="ДанныеЗатрат" type="d3p1:ОбщиеСвойстваДанныеЗатрат" lowerBound="0"/>
@@ -5594,6 +5595,7 @@
<property xmlns:d3p1="http://v8.1c.ru/edi/edi_stnd/EnterpriseData/1.10" name="ГлавныйБухгалтер" type="d3p1:КлючевыеСвойстваФизическоеЛицо" lowerBound="0"/>
<property xmlns:d3p1="http://v8.1c.ru/edi/edi_stnd/EnterpriseData/1.10" name="ЗаГлавногоБухгалтераПоПриказу" type="d3p1:КлючевыеСвойстваФизическоеЛицо" lowerBound="0"/>
<property xmlns:d3p1="http://v8.1c.ru/edi/edi_stnd/EnterpriseData/1.10" name="КонтрагентыВозврата" type="d3p1:Документ.ОтчетКомиссионера.КонтрагентыВозврата" lowerBound="0"/>
<property xmlns:d3p1="http://v8.1c.ru/edi/edi_stnd/EnterpriseData/1.10" name="УслугаПоВознаграждению" type="d3p1:КлючевыеСвойстваНоменклатура" lowerBound="0"/>
</objectType>
<objectType name="Документ.ОтчетКомиссионера.Покупатели">
<property xmlns:d3p1="http://v8.1c.ru/edi/edi_stnd/EnterpriseData/1.10" name="Строка" type="d3p1:Документ.ОтчетКомиссионера.Покупатели.Строка" upperBound="-1"/>