3_1_10_344

This commit is contained in:
Компания 1С committed 2024-10-18 10:25:00 +03:00
1 parent 747b421eee
commit c6a33e6d6b
175 files changed
+2607 -1766

No files matched your search

@@ -340,12 +340,10 @@
ТаблицаОперандов = МодульКонструкторФормул.ТаблицаПолей();
Для Каждого ОписаниеВалюты Из Справочники.Валюты.КодыВалют() Цикл
Если ЗначениеЗаполнено(СтрСоединить(СтрРазделить(ОписаниеВалюты.СимвольныйКод, "0123456789", Ложь), "")) Тогда
Операнд = ТаблицаОперандов.Добавить();
Операнд.Идентификатор = ОписаниеВалюты.СимвольныйКод;
Операнд.Представление = ОписаниеВалюты.СимвольныйКод;
Операнд.ТипЗначения = Новый ОписаниеТипов("Число");
КонецЕсли;
КонецЦикла;
Возврат ТаблицаОперандов;
@@ -53,7 +53,105 @@
| И Валюты.СпособУстановкиКурса <> ЗНАЧЕНИЕ(Перечисление.СпособыУстановкиКурсаВалюты.РасчетПоФормуле)";
Запрос = Новый Запрос(ТекстЗапроса);
Возврат ОбщегоНазначения.ТаблицаЗначенийВМассив(Запрос.Выполнить().Выгрузить());
Валюты = Запрос.Выполнить().Выгрузить();
КопируемыеСтроки = Новый Массив;
Для Каждого Валюта Из Валюты Цикл
// Валюта участвует в формуле, если символьный код содержит буквы.
Если ЗначениеЗаполнено(СтрСоединить(СтрРазделить(Валюта.СимвольныйКод, "0123456789", Ложь), "")) Тогда
КопируемыеСтроки.Добавить(Валюта);
КонецЕсли;
КонецЦикла;
Результат = Валюты.Скопировать(КопируемыеСтроки);
Результат.Индексы.Добавить("Ссылка");
Возврат Результат;
КонецФункции
Функция КурсВалютыПоФормуле(Формула, Период, КодыВалют = Неопределено) Экспорт
Если КодыВалют = Неопределено Тогда
КодыВалют = Справочники.Валюты.КодыВалют();
КонецЕсли;
ТекстЗапроса =
"ВЫБРАТЬ
| Валюты.Ссылка КАК Ссылка,
| Валюты.СимвольныйКод КАК СимвольныйКод
|ПОМЕСТИТЬ Валюты
|ИЗ
| &КодыВалют КАК Валюты
|;
|
|////////////////////////////////////////////////////////////////////////////////
|ВЫБРАТЬ
| Валюты.СимвольныйКод КАК СимвольныйКод,
| ЕСТЬNULL(КурсыВалютСрезПоследних.Курс, 1) / ЕСТЬNULL(КурсыВалютСрезПоследних.Кратность, 1) КАК Курс
|ИЗ
| Валюты КАК Валюты
| ЛЕВОЕ СОЕДИНЕНИЕ РегистрСведений.КурсыВалют.СрезПоследних(&Период, ) КАК КурсыВалютСрезПоследних
| ПО (КурсыВалютСрезПоследних.Валюта = Валюты.Ссылка)";
Запрос = Новый Запрос(ТекстЗапроса);
Запрос.УстановитьПараметр("КодыВалют", КодыВалют);
Запрос.УстановитьПараметр("Период", Период);
Выражение = ФорматироватьЧисла(Формула);
Выборка = Запрос.Выполнить().Выбрать();
Пока Выборка.Следующий() Цикл
Выражение = СтрЗаменить(Выражение, Выборка.СимвольныйКод, Формат(Выборка.Курс, "ЧРД=.; ЧГ=0"));
КонецЦикла;
Возврат ОбщегоНазначения.ВычислитьВБезопасномРежиме(Выражение);
КонецФункции
Функция ФорматироватьЧисла(Строка) Экспорт
Результат = "";
Число = "";
ЕстьРазделительВЧисле = Ложь;
ПредыдущийСимвол = "";
ДлинаСтроки = СтрДлина(Строка);
Для Индекс = 1 По ДлинаСтроки Цикл
Если Индекс < ДлинаСтроки Тогда
СледующийСимвол = Сред(Строка, Индекс + 1, 1);
Иначе
СледующийСимвол = "";
КонецЕсли;
Символ = Сред(Строка, Индекс, 1);
ПредыдущийСимволЭтоРазделитель = ПредыдущийСимвол = "" Или СтрНайти("()[]/*-+%=<>, ", ПредыдущийСимвол) > 0;
Если ЭтоЦифра(Символ) И (ПредыдущийСимволЭтоРазделитель Или ЭтоЦифра(ПредыдущийСимвол) И ЗначениеЗаполнено(Число)) Тогда
Число = Число + Символ;
ИначеЕсли Не ЕстьРазделительВЧисле И (Символ = "," Или Символ = ".") И ЭтоЦифра(СледующийСимвол)
И (ЭтоЦифра(ПредыдущийСимвол) Или ПредыдущийСимволЭтоРазделитель) И ЗначениеЗаполнено(Число) Тогда
Число = Число + ".";
ЕстьРазделительВЧисле = Истина;
Иначе
Результат = Результат + Число + Символ;
Число = "";
ЕстьРазделительВЧисле = Ложь;
КонецЕсли;
ПредыдущийСимвол = Символ;
Символ = "";
КонецЦикла;
Результат = Результат + Число + Символ;
Возврат Результат;
КонецФункции
Функция ЭтоЦифра(Символ)
Возврат СтрНайти("1234567890", Символ) > 0;
КонецФункции
+32 -3
View File
@@ -116,6 +116,17 @@
ФормулаРасчетаКурса = "";
КонецЕсли;
Если ЗначениеЗаполнено(ФормулаРасчетаКурса) Тогда
Попытка
ПроверитьФормулу(ФормулаРасчетаКурса);
Исключение
ИнформацияОбОшибке = ИнформацияОбОшибке();
Уточнение = ОбщегоНазначенияКлиентСервер.УточнениеИсключения(ИнформацияОбОшибке,
НСтр("ru = 'Не удалось вычислить курс валюты по формуле:'"));
ВызватьИсключение(Уточнение.Текст, Уточнение.Категория, , , ИнформацияОбОшибке);
КонецПопытки;
КонецЕсли;
КонецПроцедуры
Процедура ПриЗаписи(Отказ)
@@ -124,14 +135,19 @@
Возврат;
КонецЕсли;
Если ДополнительныеСвойства.Свойство("ОбновитьКурсы") И ВыполняетсяФоновыйПересчетКурсов() Тогда
ОбновитьКурсы = ДополнительныеСвойства.Свойство("ОбновитьКурсы");
ЭтоНовый = ДополнительныеСвойства.Свойство("ЭтоНовый");
ТребуетсяЗаписьКурсов = ОбновитьКурсы Или ЭтоНовый;
ВыполняетсяФоновыйПересчетКурсов = ВыполняетсяФоновыйПересчетКурсов();
Если ТребуетсяЗаписьКурсов И ВыполняетсяФоновыйПересчетКурсов Тогда
ВызватьИсключение НСтр("ru = 'Не удалось записать валюту, так как еще не завершился фоновый пересчет курсов.
|Попробуйте записать валюту позже.'");
КонецЕсли;
Если ДополнительныеСвойства.Свойство("ОбновитьКурсы") Тогда
Если ОбновитьКурсы Тогда
НачатьФоновоеОбновлениеКурсовВалюты();
Иначе
ИначеЕсли Не ВыполняетсяФоновыйПересчетКурсов Тогда
РаботаСКурсамиВалют.ПроверитьКорректностьКурсаНа01_01_1980(Ссылка);
КонецЕсли;
@@ -233,6 +249,19 @@
КонецФункции
Процедура ПроверитьФормулу(Формула) Экспорт
КодыВалют = Справочники.Валюты.КодыВалют();
Выражение = Справочники.Валюты.ФорматироватьЧисла(Формула);
Для Каждого Валюта Из КодыВалют Цикл
Выражение = СтрЗаменить(Выражение, Валюта.СимвольныйКод, "1");
КонецЦикла;
ОбщегоНазначения.ВычислитьВБезопасномРежиме(Выражение);
КонецПроцедуры
#КонецОбласти
#Иначе
@@ -1,4 +1,4 @@
<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.0 Transitional//EN"><html><head><meta content="text/html;charset=utf-8" http-equiv="content-type"></meta><link rel="stylesheet" type="text/css" href="v8help://service_book/service_style"></link><meta name="GENERATOR" content="MSHTML 11.00.9600.17126"></meta></head><body>
<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.0 Transitional//EN"><html><head><meta content="text/html; charset=utf-8" http-equiv="Content-Type"></meta><link rel="stylesheet" type="text/css" href="v8help://service_book/service_style"></link><meta name="GENERATOR" content="MSHTML 11.00.9600.17126"></meta></head><body>
<p>Ведение списка вариантов ответов на <a href="ChartOfCharacteristicTypes.ВопросыДляАнкетирования/Help">вопросы</a> типов <strong>Выбор одного</strong> или <strong>нескольких вариантов ответа из предложенных.</strong></p>
<p>Существуют вопросы <a href="Document.Анкета.Form.ФормаСписка/Help">анкеты</a> типа <strong>Выбор одного варианта ответа из предложенных</strong> или <strong>Выбор нескольких вариантов ответа из предложенных</strong>. В этих случаях ответ респондента сводится к выбору одного или нескольких вариантов ответа из списка с помощью переключателей.</p>
<p>Задайте возможные варианты ответов на <a href="ChartOfCharacteristicTypes.ВопросыДляАнкетирования.Form.ФормаЭлемента/Help">вопрос</a>.</p>
@@ -1,4 +1,4 @@
<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.0 Transitional//EN"><html><head><meta content="text/html;charset=utf-8" http-equiv="content-type"></meta><link rel="stylesheet" type="text/css" href="v8help://service_book/service_style"></link><meta name="GENERATOR" content="MSHTML 11.00.9600.17239"></meta></head><body>
<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.0 Transitional//EN"><html><head><meta content="text/html; charset=utf-8" http-equiv="Content-Type"></meta><link rel="stylesheet" type="text/css" href="v8help://service_book/service_style"></link><meta name="GENERATOR" content="MSHTML 11.00.9600.17239"></meta></head><body>
<p>Список предназначен для выбора папок <a href="Catalog.ГруппыДоступа.Form.ФормаСписка/Help">групп доступа</a>.</p>
<p>Т.к. групп доступа может быть очень много и с похожими настройками ограничений прав, предусмотрена возможность создавать папки для упрощения поиска нужной <a href="Catalog.ГруппыДоступа.Form.ФормаЭлемента/Help">группы доступа</a> и понимания ограничений прав доступа в целом.</p>
<p><a href="Catalog.ГруппыДоступа/Help">Группы доступа</a> можно сгруппировать по различным признакам.</p>
@@ -1,4 +1,4 @@
<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.0 Transitional//EN"><html><head><meta content="text/html;charset=utf-8" http-equiv="content-type"></meta><link rel="stylesheet" type="text/css" href="v8help://service_book/service_style"></link><meta name="GENERATOR" content="MSHTML 11.00.9600.17239"></meta></head><body>
<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.0 Transitional//EN"><html><head><meta content="text/html; charset=utf-8" http-equiv="Content-Type"></meta><link rel="stylesheet" type="text/css" href="v8help://service_book/service_style"></link><meta name="GENERATOR" content="MSHTML 11.00.9600.17239"></meta></head><body>
<p>Описание свойств папки <a href="Catalog.ГруппыДоступа/Help">групп доступа</a>.</p>
<p>Т.к. <a href="Catalog.ГруппыДоступа.Form.ФормаСписка/Help">групп доступа</a> может быть очень много и с похожими настройками ограничений прав, предусмотрена возможность создавать <a href="Catalog.ГруппыДоступа.Form.ФормаВыбораГруппы/Help">папки</a> для упрощения поиска нужной <a href="Catalog.ГруппыДоступа.Form.ФормаЭлемента/Help">группы доступа</a> и понимания ограничений прав доступа в целом.</p>
<p>Группы доступа можно сгруппировать в папки по различным признакам.</p>
@@ -1318,9 +1318,9 @@
Элементы.ГруппаСтраницыРежимыСовместимостиРазрешений.ТекущаяСтраница = Элементы.СтраницаРазрешенияВерсия_2_2_2;
Если БезопасныйРежим = Истина Тогда
Если ИспользуютсяПрофилиБезопасности И БезопасныйРежим = Истина Тогда
Элементы.СтраницыБезопасныйРежимСРазрешениями.ТекущаяСтраница = Элементы.СтраницаБезопасныйРежимСРазрешениями;
ИначеЕсли БезопасныйРежим = Ложь Тогда
ИначеЕсли ТипЗнч(БезопасныйРежим) = Тип("Булево") Тогда
Элементы.СтраницыБезопасныйРежимСРазрешениями.ТекущаяСтраница = Элементы.СтраницаНебезопасныйРежимСРазрешениями;
ИначеЕсли ТипЗнч(БезопасныйРежим) = Тип("Строка") Тогда
Элементы.СтраницыБезопасныйРежимСРазрешениями.ТекущаяСтраница = Элементы.СтраницаПерсональныйПрофильБезопасности;
@@ -1,4 +1,4 @@
<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.0 Transitional//EN"><html><head><meta content="text/html;charset=utf-8" http-equiv="content-type"></meta><link rel="stylesheet" type="text/css" href="v8help://service_book/service_style"></link><meta name="GENERATOR" content="MSHTML 9.00.8112.16553"></meta></head><body>
<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.0 Transitional//EN"><html><head><meta content="text/html; charset=utf-8" http-equiv="Content-Type"></meta><link rel="stylesheet" type="text/css" href="v8help://service_book/service_style"></link><meta name="GENERATOR" content="MSHTML 9.00.8112.16553"></meta></head><body>
<p>Предназначена для ввода сведений о группе <a href="Catalog.ЗначенияСвойствОбъектов/Help">значений дополнительных реквизитов (сведений)</a>.</p>
<ul><li>В поле <strong>Группа</strong> напишите наименование группы.
</li><li>С помощью поля <strong>Входит в группу</strong> можно подчинить новую группу другой группе. Выберите группу из списка.</li></ul><h3>См. также:</h3>
@@ -1,4 +1,4 @@
<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.0 Transitional//EN"><html><head><meta content="text/html;charset=utf-8" http-equiv="content-type"></meta><link rel="stylesheet" type="text/css" href="v8help://service_book/service_style"></link><meta name="GENERATOR" content="MSHTML 11.00.9600.17496"></meta></head><body>
<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.0 Transitional//EN"><html><head><meta content="text/html; charset=utf-8" http-equiv="Content-Type"></meta><link rel="stylesheet" type="text/css" href="v8help://service_book/service_style"></link><meta name="GENERATOR" content="MSHTML 11.00.9600.17496"></meta></head><body>
<p>Просмотр свойств идентификатора объекта метаданных расширений.</p>
<p>Заполняется автоматически при первом запуске (и каждом обновлении) конфигурации, согласно метаданным конфигурации, а также автоматически актуализируется при каждом обновлении версии конфигурации (учитываются переименованные, добавленные и удаленные объекты метаданных). </p>
<p>Выводятся сведения:</p>
@@ -1854,6 +1854,88 @@
<userSettingsGroup>СписокКомпоновщикНастроекПользовательскиеНастройки</userSettingsGroup>
</extInfo>
</items>
<items xsi:type="form:FormGroup">
<name>ГруппаПолномочия</name>
<id>270</id>
<items xsi:type="form:FormField">
<name>ПолномочияДоверенности</name>
<id>275</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>Items.Список.CurrentData.ТекстПолномочий</segments>
</dataPath>
<titleLocation>None</titleLocation>
<extendedTooltip>
<name>ПолномочияДоверенностиРасширеннаяПодсказка</name>
<id>277</id>
<type>Label</type>
<autoMaxWidth>true</autoMaxWidth>
<autoMaxHeight>true</autoMaxHeight>
<extInfo xsi:type="form:LabelDecorationExtInfo">
<horizontalAlign>Left</horizontalAlign>
</extInfo>
</extendedTooltip>
<contextMenu>
<name>ПолномочияДоверенностиКонтекстноеМеню</name>
<id>276</id>
<autoFill>true</autoFill>
</contextMenu>
<type>InputField</type>
<editMode>Enter</editMode>
<showInHeader>true</showInHeader>
<headerHorizontalAlign>Left</headerHorizontalAlign>
<showInFooter>true</showInFooter>
<extInfo xsi:type="form:InputFieldExtInfo">
<height>12</height>
<verticalStretch>true</verticalStretch>
<wrap>true</wrap>
<multiLine>true</multiLine>
<chooseType>true</chooseType>
<typeDomainEnabled>true</typeDomainEnabled>
<textEdit>true</textEdit>
<textSize>Normal</textSize>
<heightControlVariant>ByContent</heightControlVariant>
</extInfo>
</items>
<visible>true</visible>
<enabled>true</enabled>
<userVisible>
<common>true</common>
</userVisible>
<title>
<key>ru</key>
<value>Полномочия доверенности</value>
</title>
<extendedTooltip>
<name>ГруппаПолномочияРасширеннаяПодсказка</name>
<id>271</id>
<type>Label</type>
<autoMaxWidth>true</autoMaxWidth>
<autoMaxHeight>true</autoMaxHeight>
<extInfo xsi:type="form:LabelDecorationExtInfo">
<horizontalAlign>Left</horizontalAlign>
</extInfo>
</extendedTooltip>
<type>UsualGroup</type>
<extInfo xsi:type="form:UsualGroupExtInfo">
<group>HorizontalIfPossible</group>
<behavior>Auto</behavior>
<representation>WeakSeparation</representation>
<showLeftMargin>true</showLeftMargin>
<united>true</united>
<showTitle>auto</showTitle>
<throughAlign>Auto</throughAlign>
<currentRowUse>Auto</currentRowUse>
</extInfo>
</items>
<items xsi:type="form:FormGroup">
<name>ГруппаЛегенда</name>
<id>176</id>
@@ -2432,12 +2514,24 @@
<edit>
<common>true</common>
</edit>
<notDefaultUseAlwaysAttributes xsi:type="form:DataPath">
<segments>Список.Ограничения</segments>
</notDefaultUseAlwaysAttributes>
<notDefaultUseAlwaysAttributes xsi:type="form:DataPath">
<segments>Список.Полномочия</segments>
</notDefaultUseAlwaysAttributes>
<notDefaultUseAlwaysAttributes xsi:type="form:DataPath">
<segments>Список.ВозможностьПередоверия</segments>
</notDefaultUseAlwaysAttributes>
<notDefaultUseAlwaysAttributes xsi:type="form:DataPath">
<segments>Список.ПолномочияВТекстовомВиде</segments>
</notDefaultUseAlwaysAttributes>
<notDefaultUseAlwaysAttributes xsi:type="form:DataPath">
<segments>Список.Ссылка</segments>
</notDefaultUseAlwaysAttributes>
<notDefaultUseAlwaysAttributes xsi:type="form:DataPath">
<segments>Список.ТекстПолномочий</segments>
</notDefaultUseAlwaysAttributes>
<notDefaultUseAlwaysAttributes xsi:type="form:DataPath">
<segments>Список.ФайлДоверенности</segments>
</notDefaultUseAlwaysAttributes>
@@ -2470,6 +2564,12 @@
ТОГДА ИСТИНА
ИНАЧЕ ЛОЖЬ
КОНЕЦ КАК Действует,
СправочникМашиночитаемыеДоверенности.ПолномочияВТекстовомВиде КАК ПолномочияВТекстовомВиде,
ВЫБОР
КОГДА &amp;ВидимостьПолномочий
ТОГДА СправочникМашиночитаемыеДоверенности.ТекстПолномочий
Иначе &quot;&quot;
КОНЕЦ КАК ТекстПолномочий,
ВЫБОР
КОГДА СправочникМашиночитаемыеДоверенности.ПометкаУдаления
ТОГДА 1
@@ -3138,6 +3238,22 @@
<value></value>
</values>
</parameters>
<parameters>
<name>ВидимостьПолномочий</name>
<title>
<localValue>
<content>
<key>ru</key>
<value>Видимость полномочий</value>
</content>
</localValue>
</title>
<valueType>
<types>Boolean</types>
</valueType>
<values xsi:type="core:BooleanValue"/>
<useRestriction>true</useRestriction>
</parameters>
</extInfo>
</attributes>
<attributes>
@@ -3190,19 +3306,6 @@
<common>true</common>
</edit>
</attributes>
<attributes>
<name>ФизическоеЛицоПользователя</name>
<id>7</id>
<valueType>
<types>DefinedType.ФизическоеЛицо</types>
</valueType>
<view>
<common>true</common>
</view>
<edit>
<common>true</common>
</edit>
</attributes>
<attributes>
<name>АвторизованныйПользователь</name>
<id>8</id>
@@ -3227,32 +3330,6 @@
<common>true</common>
</edit>
</attributes>
<attributes>
<name>ТипДоверителя</name>
<id>11</id>
<valueType>
<types>TypeDescription</types>
</valueType>
<view>
<common>true</common>
</view>
<edit>
<common>true</common>
</edit>
</attributes>
<attributes>
<name>ТипПредставителя</name>
<id>4</id>
<valueType>
<types>TypeDescription</types>
</valueType>
<view>
<common>true</common>
</view>
<edit>
<common>true</common>
</edit>
</attributes>
<attributes>
<name>ОтборПоСостоянию</name>
<id>3</id>
@@ -3363,6 +3440,20 @@
<common>true</common>
</edit>
</attributes>
<attributes>
<name>ПолномочияДоверенности</name>
<id>18</id>
<valueType>
<types>String</types>
<stringQualifiers/>
</valueType>
<view>
<common>true</common>
</view>
<edit>
<common>true</common>
</edit>
</attributes>
<formCommands>
<name>ЗагрузитьИзФайла</name>
<title>
@@ -12,6 +12,9 @@
Процедура ПриСозданииНаСервере(Отказ, СтандартнаяОбработка);
Элементы.Список.РежимВыбора = Параметры.РежимВыбора;
Элементы.ПолномочияДоверенности.Видимость = Элементы.Список.РежимВыбора;
Если Параметры.МножественныйВыбор <> Неопределено Тогда
Элементы.Список.МножественныйВыбор = Параметры.МножественныйВыбор;
КонецЕсли;
@@ -37,12 +40,13 @@
Доверитель = ?(ЗначениеЗаполнено(ФизическоеЛицо), ФизическоеЛицо, ТекстОшибкиФизическоеЛицо());
Представитель = "";
Иначе
Доверитель = "";
Представитель = "";
Доверитель = ?(ЗначениеЗаполнено(Параметры.Доверитель), Параметры.Доверитель, "");
Представитель = ?(ЗначениеЗаполнено(Параметры.Представитель), Параметры.Представитель, "");
КонецЕсли;
Доверитель = ?(ЗначениеЗаполнено(Параметры.Доверитель), Параметры.Доверитель, Доверитель);
Представитель = ?(ЗначениеЗаполнено(Параметры.Представитель), Параметры.Представитель, Представитель);
Элементы.Представитель.Доступность = ДоверенностиПоРоли <> "Представитель";
Элементы.Доверитель.Доступность = ДоверенностиПоРоли <> "Доверитель";
Полномочия = ?(ЗначениеЗаполнено(Параметры.Полномочия), Параметры.Полномочия, Полномочия);
Если ТипЗнч(СертификатПредставителя) = Тип("СправочникСсылка.СертификатыКлючейЭлектроннойПодписиИШифрования") Тогда
@@ -129,10 +133,6 @@
&НаКлиенте
Процедура ДоверенностиПоРолиПриИзменении(Элемент)
Если Элементы.ДоверенностиПоРоли.Видимость = Ложь Тогда
Возврат;
КонецЕсли;
Если ДоверенностиПоРоли = "Представитель" Тогда
ФизическоеЛицо = ФизическоеЛицоПользователя(АвторизованныйПользователь);
Представитель = ?(ЗначениеЗаполнено(ФизическоеЛицо), ФизическоеЛицо, ТекстОшибкиФизическоеЛицо());
@@ -146,6 +146,9 @@
Представитель = "";
КонецЕсли;
Элементы.Представитель.Доступность = ДоверенностиПоРоли <> "Представитель";
Элементы.Доверитель.Доступность = ДоверенностиПоРоли <> "Доверитель";
УстановитьОтбор();
КонецПроцедуры
@@ -222,13 +225,22 @@
Запрос = СокрЛП(Текст);
ПодходящиеЗначения = ПодходящиеЗначенияУниверсальногоПоиска(Запрос);
ПодходящиеЗначения.Вставить(0, Текст, СтроковыеФункцииКлиентСервер.ПодставитьПараметрыВСтроку(
НСтр("ru='Поля доверенности содержат: %1'"), Текст));
Если ПодходящиеЗначения.Количество() = 0 Тогда
Возврат;
ТолькоЦифры = МашиночитаемыеДоверенностиФНССлужебныйКлиентСервер.ТолькоЦифры(Текст);
Если Не ПустаяСтрока(ТолькоЦифры) И ТолькоЦифры <> Текст Тогда
ПодходящиеЗначения.Вставить(0, ТолькоЦифры,
СтроковыеФункцииКлиент.ФорматированнаяСтрока(
НСтр("ru = 'Поля доверенности содержат <span style=""color: %1; font: %2"">%3</span>'"),
"РезультатУспехЦвет", "ВажнаяНадписьШрифт",
ТолькоЦифры));
КонецЕсли;
ПодходящиеЗначения.Вставить(0, Текст,
СтроковыеФункцииКлиент.ФорматированнаяСтрока(
НСтр("ru = 'Поля доверенности содержат <span style=""color: %1; font: %2"">%3</span>'"),
"РезультатУспехЦвет", "ВажнаяНадписьШрифт",
Текст));
ДанныеВыбора = ПодходящиеЗначения;
СтандартнаяОбработка = Ложь;
@@ -253,14 +265,108 @@
&НаКлиенте
Процедура СписокПриАктивизацииСтроки(Элемент)
// СтандартныеПодсистемы.ПодключаемыеКоманды
ПодключаемыеКомандыКлиент.НачатьОбновлениеКоманд(ЭтотОбъект);
// Конец СтандартныеПодсистемы.ПодключаемыеКоманды
КонецПроцедуры
&НаСервереБезКонтекста
Процедура СписокПриПолученииДанныхНаСервере(ИмяЭлемента, Настройки, Строки)
Если Настройки.ПараметрыДанных.Элементы.Найти("ВидимостьПолномочий").Значение = Истина Тогда
Запрос = Неопределено;
Для Каждого СтрокаСписка Из Строки Цикл
Если СтрокаСписка.Значение.Данные.ПолномочияВТекстовомВиде = Истина Тогда
Продолжить;
КонецЕсли;
Если Запрос = Неопределено Тогда
Запрос = Новый Запрос;
Запрос.Текст =
"ВЫБРАТЬ
| МашиночитаемыеДоверенности.Ограничения.(
| Ссылка КАК Ссылка,
| НомерСтроки КАК НомерСтроки,
| ИдентификаторПолномочия КАК ИдентификаторПолномочия,
| Код КАК Код,
| Наименование КАК Наименование,
| НаименованиеЗначения КАК НаименованиеЗначения,
| КодЗначения КАК КодЗначения,
| ТекстовоеЗначение КАК ТекстовоеЗначение
| ) КАК Ограничения,
| МашиночитаемыеДоверенности.Полномочия.(
| Ссылка КАК Ссылка,
| НомерСтроки КАК НомерСтроки,
| Код КАК Код,
| ИдентификаторПолномочия КАК ИдентификаторПолномочия,
| Мнемокод КАК Мнемокод,
| Наименование КАК Наименование
| ) КАК Полномочия,
| МашиночитаемыеДоверенности.Ссылка КАК Ссылка
|ИЗ
| Справочник.МашиночитаемыеДоверенности КАК МашиночитаемыеДоверенности
|ГДЕ
| НЕ МашиночитаемыеДоверенности.ПолномочияВТекстовомВиде
| И МашиночитаемыеДоверенности.Ссылка В(&Ссылки)";
Запрос.УстановитьПараметр("Ссылки", Строки.ПолучитьКлючи());
РезультатЗапроса = Запрос.Выполнить(); // @skip-check query-in-loop - Запрос выполняется один раз
ВыборкаСсылка = РезультатЗапроса.Выбрать();
КонецЕсли;
Если ВыборкаСсылка.НайтиСледующий(СтрокаСписка.Значение.Данные["Ссылка"], "Ссылка") Тогда
Полномочия = ВыборкаСсылка.Полномочия.Выгрузить();
Ограничения = ВыборкаСсылка.Ограничения.Выгрузить();
ПредставлениеПолномочий = Новый Массив;
Для Каждого СтрокаПолномочия Из Полномочия Цикл
ПредставлениеПолномочия = ?(ЗначениеЗаполнено(СтрокаПолномочия.Наименование),
СтрокаПолномочия.Наименование, СтрокаПолномочия.Код);
МассивОграничений = Новый Массив;
Найдено = Ограничения.НайтиСтроки(
Новый Структура("ИдентификаторПолномочия", СтрокаПолномочия.ИдентификаторПолномочия));
Для Каждого СтрокаОграничение Из Найдено Цикл
Массив = Новый Массив;
Если ЗначениеЗаполнено(СтрокаОграничение.Наименование) Тогда
Массив.Добавить(СтрокаОграничение.Наименование + ":");
ИначеЕсли ЗначениеЗаполнено(СтрокаОграничение.Код) Тогда
Массив.Добавить(СтрокаОграничение.Код + ":");
КонецЕсли;
Если ЗначениеЗаполнено(СтрокаОграничение.НаименованиеЗначения) Тогда
Массив.Добавить(СтрокаОграничение.НаименованиеЗначения);
ИначеЕсли ЗначениеЗаполнено(СтрокаОграничение.КодЗначения) Тогда
Массив.Добавить(СтрокаОграничение.КодЗначения);
КонецЕсли;
Если ЗначениеЗаполнено(СтрокаОграничение.ТекстовоеЗначение) Тогда
Массив.Добавить(СтрокаОграничение.ТекстовоеЗначение);
КонецЕсли;
МассивОграничений.Добавить(СтрСоединить(Массив, " "));
КонецЦикла;
Если ПустаяСтрока(ПредставлениеПолномочия) Тогда
ПредставлениеПолномочия = НСтр("ru = '<Не заполнено>'");
КонецЕсли;
ПредставлениеПолномочия = ПредставлениеПолномочия + ?(МассивОграничений.Количество()>0,
Символы.ПС + Символы.Таб + СтрСоединить(МассивОграничений, Символы.ПС + Символы.Таб), "");
ПредставлениеПолномочий.Добавить(ПредставлениеПолномочия);
КонецЦикла;
СтрокаСписка.Значение.Данные.ТекстПолномочий = СтрСоединить(ПредставлениеПолномочий, ";" + Символы.ПС);
ВыборкаСсылка.Сбросить();
КонецЕсли;
КонецЦикла;
КонецЕсли;
Если Настройки.ПараметрыДанных.Элементы.Найти("СтатусВДругомРеестре").Значение = "НетСтатусов" Тогда
Возврат;
КонецЕсли;
@@ -288,7 +394,6 @@
КонецЕсли;
Для Каждого Строка Из Строки Цикл
Статус = Доверенности[Строка.Значение.Данные.Ссылка];
Если Статус = Неопределено Тогда
Продолжить;
@@ -462,6 +567,7 @@
УстановитьОтборСоСтрокойПоиска(Полномочия, "Полномочия");
ОбщегоНазначенияКлиентСервер.УстановитьПараметрДинамическогоСписка(Список, "ТекущаяДата", ТекущаяДатаСеанса);
ОбщегоНазначенияКлиентСервер.УстановитьПараметрДинамическогоСписка(Список, "ВидимостьПолномочий", Элементы.ПолномочияДоверенности.Видимость);
Если ОтборПоСостоянию = "СИстекающимСрокомДействия" Тогда
ОбщегоНазначенияКлиентСервер.УстановитьЭлементОтбора(Список.Отбор, "ДатаОкончания", ТекущаяДатаСеанса, ВидСравненияКомпоновкиДанных.БольшеИлиРавно);
@@ -538,7 +644,12 @@
&НаСервереБезКонтекста
Функция ФизическоеЛицоПользователя(Знач АвторизованныйПользователь)
Возврат ОбщегоНазначения.ЗначениеРеквизитаОбъекта(АвторизованныйПользователь, "ФизическоеЛицо");
Реквизиты = ОбщегоНазначения.ЗначенияРеквизитовОбъекта(АвторизованныйПользователь, "ФизическоеЛицо, Наименование");
ФизическоеЛицо = Реквизиты.ФизическоеЛицо;
Если Не ЗначениеЗаполнено(Реквизиты.ФизическоеЛицо) Тогда
ФизическоеЛицо = Реквизиты.Наименование;
КонецЕсли;
Возврат ФизическоеЛицо;
КонецФункции
&НаСервереБезКонтекста
@@ -838,7 +949,7 @@
Функция ПодходящиеЗначенияУниверсальногоПоиска(Запрос)
ПодходящиеЗначения = Новый СписокЗначений;
МаксимальноеКоличествоПодходящихЗначений = 49;
МаксимальноеКоличествоПодходящихЗначений = 48;
ПараметрыПоиска = ПараметрыУниверсальногоПоиска(Запрос);
Если Не ЗначениеЗаполнено(ПараметрыПоиска.СтрокаПоиска) Тогда
@@ -856,12 +967,15 @@
Если ПодходящиеЗначения.Количество() = 0 Тогда
Если СтрДлина(ПараметрыПоиска.СтрокаПоиска) > 2 Тогда
Сообщение = НСтр("ru = 'Совпадений в справочниках не найдено'");
СообщениеФорматированное = СтроковыеФункцииКлиент.ФорматированнаяСтрока(
НСтр("ru = '<span style=""color: %1; font: %2"">%3</span> нет в списках'"),
"РезультатУспехЦвет", "ВажнаяНадписьШрифт",
ПараметрыПоиска.СтрокаПоиска);
Иначе
Сообщение = НСтр("ru = 'Продолжите ввод...'");
СообщениеФорматированное = Новый ФорматированнаяСтрока(Сообщение, , WebЦвета.НейтральноСерый);
КонецЕсли;
СообщениеФорматированное = Новый ФорматированнаяСтрока(Сообщение, , WebЦвета.НейтральноСерый);
ПодходящиеЗначения.Добавить("", СообщениеФорматированное);
КонецЕсли;
@@ -900,8 +1014,6 @@
"ВЫБРАТЬ РАЗРЕШЕННЫЕ РАЗЛИЧНЫЕ ПЕРВЫЕ 5
| ""&ПолноеИмяОбъекта"" КАК ПолноеИмяОбъекта,
| Ссылка КАК Ссылка,
| &ПолеПоУсловию КАК ПолеПоУсловию,
| &ПредставлениеПоляПоУсловию КАК ПолеПоУсловиюПредставление,
| &ДополнительныеДанные КАК ДополнительныеДанные
|ИЗ
| &ПолноеИмяОбъекта
@@ -909,64 +1021,14 @@
| &Условие
|";
ПоляПоУсловию = ПоляТекстаЗапросаПоОбъектуПоиска(Объект, ПараметрыПоиска);
ТекстЗапроса = СтрЗаменить(ШаблонТекстаЗапроса, "&ПолноеИмяОбъекта", Объект.ПолноеИмя());
ТекстЗапроса = СтрЗаменить(ТекстЗапроса, "&ПолеПоУсловию", ПоляПоУсловию.Значение);
ТекстЗапроса = СтрЗаменить(ТекстЗапроса, "&ПредставлениеПоляПоУсловию", ПоляПоУсловию.Представление);
ТекстЗапроса = СтрЗаменить(ТекстЗапроса, "&Условие", УсловиеТекстаЗапросаПоОбъектуПоиска(Объект, ПараметрыПоиска));
Возврат СтрЗаменить(ТекстЗапроса, "&ДополнительныеДанные", ДополнительныеДанныеТекстаЗапросаПоОбъектуПоиска(Объект));
КонецФункции
&НаСервереБезКонтекста
Функция ПоляТекстаЗапросаПоОбъектуПоиска(Объект, ПараметрыПоиска)
Результат = Новый Структура("Значение, Представление", """""", """""");
ПоляПоУсловию = Новый Массив;
ПредставленияПолейПоУсловию = Новый Массив;
Поля = Объект.ВводПоСтроке; // СписокПолей
ФрагментЗапроса = "КОГДА ВЫРАЗИТЬ(%1 КАК СТРОКА(150)) ПОДОБНО %2 СПЕЦСИМВОЛ ""~"" ТОГДА ""%3"""; // @query-part
СтрокаПоиска = """%" + ОбщегоНазначения.СформироватьСтрокуДляПоискаВЗапросе(ПараметрыПоиска.СтрокаПоискаНормализованная) + "%""";
Для Каждого Поле Из Поля Цикл
ТипРеквизита = ТипРеквизитаПоиска(Объект, Поле.Имя);
Если Не ТипРеквизита.СодержитТип(Тип("Строка")) Тогда
Продолжить;
КонецЕсли;
ПолеПоУсловию = СтроковыеФункцииКлиентСервер.ПодставитьПараметрыВСтроку(ФрагментЗапроса,
Поле.Имя, СтрокаПоиска, Поле.Имя);
ПоляПоУсловию.Добавить(ПолеПоУсловию);
ПредставлениеПоляПоУсловию = СтроковыеФункцииКлиентСервер.ПодставитьПараметрыВСтроку(ФрагментЗапроса,
Поле.Имя, СтрокаПоиска, ПредставлениеПоля(Поле.Имя, Объект));
ПредставленияПолейПоУсловию.Добавить(ПредставлениеПоляПоУсловию);
КонецЦикла;
Если ПоляПоУсловию.Количество() = 0 Тогда
Возврат Результат;
КонецЕсли;
ПоляПоУсловию.Вставить(0, "ВЫБОР"); // @query-part
ПоляПоУсловию.Добавить("ИНАЧЕ """""); // @query-part
ПоляПоУсловию.Добавить("КОНЕЦ"); // @query-part
Результат.Значение = СтрСоединить(ПоляПоУсловию, " ");
ПредставленияПолейПоУсловию.Вставить(0, "ВЫБОР"); // @query-part
ПредставленияПолейПоУсловию.Добавить("ИНАЧЕ """""); // @query-part
ПредставленияПолейПоУсловию.Добавить("КОНЕЦ"); // @query-part
Результат.Представление = СтрСоединить(ПредставленияПолейПоУсловию, " ");
Возврат Результат;
КонецФункции
&НаСервереБезКонтекста
Процедура НайтиПодходящиеЗначенияУниверсальногоПоиска(ПодходящиеЗначения, ПоляПоискаПоТипам, ПараметрыПоиска)
@@ -1030,29 +1092,6 @@
ВариантыПоиска.Добавить(СвойстваПоиска);
ИндексВариантовПоиска.Вставить(СвойстваПоиска.ПравоеЗначение, ВариантыПоиска);
Если Не ЗначениеЗаполнено(Выборка.ПолеПоУсловию)
Или ИндексДополнительныхЗначений[ПолеПоиска.Ключ] <> Неопределено Тогда
Продолжить;
КонецЕсли;
ПутьКДанным = СтроковыеФункцииКлиентСервер.ПодставитьПараметрыВСтроку(
"%1.%2", ПолеПоиска.Ключ, Выборка.ПолеПоУсловию);
РеквизитПоля = Новый ПолеКомпоновкиДанных(ПутьКДанным);
СвойстваПоиска = СвойстваУниверсальногоПоиска(
РеквизитПоля, ПараметрыПоиска.СтрокаПоиска);
ПутьКДаннымПредставление = СтроковыеФункцииКлиентСервер.ПодставитьПараметрыВСтроку(
"%1.%2", ПолеПоиска.Значение, Выборка.ПолеПоУсловиюПредставление);
ВариантыПоиска = Новый Массив;
ВариантыПоиска.Добавить(СвойстваПоиска);
ДополнительныеЗначения.Добавить(ВариантыПоиска, ПредставлениеРезультатПоиска(ПутьКДаннымПредставление,
СвойстваПоиска.ВидСравнения, ПараметрыПоиска.СтрокаПоиска));
ИндексДополнительныхЗначений.Вставить(ПолеПоиска.Ключ, Истина);
КонецЦикла;
КонецЦикла;
@@ -1265,29 +1304,10 @@
КонецФункции
&НаСервереБезКонтекста
Функция ПредставлениеРезультатПоиска(Знач ПолеПоиска, Знач Условие, Знач ЗначениеПоиска)
СтрокаУсловия = НРег(Условие);
ФрагментУсловия = СтроковыеФункции.ФорматированнаяСтрока(ШаблонФрагментаУсловия(СтрокаУсловия));
ФрагментСтрокиПоиска = СтроковыеФункции.ФорматированнаяСтрока(ШаблонФрагментаСтрокиПоиска(ЗначениеПоиска));
Возврат ФорматированнаяСтрокаРезультатаПоиска(ПолеПоиска, ФрагментУсловия, ФрагментСтрокиПоиска);
КонецФункции
&НаКлиентеНаСервереБезКонтекста
Функция ФорматированнаяСтрокаРезультатаПоиска(Знач ПолеПоиска, Знач ФрагментУсловия, Знач ФрагментСтрокиПоиска)
Возврат Новый ФорматированнаяСтрока(ПолеПоиска, ФрагментУсловия, """", ФрагментСтрокиПоиска, """");
КонецФункции
&НаКлиентеНаСервереБезКонтекста
Функция ШаблонФрагментаУсловия(Условие)
Возврат СтроковыеФункцииКлиентСервер.ПодставитьПараметрыВСтроку(
НСтр("ru = '%1<span style=""color: %2"">%3</span>%4'"), " ", "ПоясняющийТекст",
НРег(СтрЗаменить(Условие, "<", "&lt;")), " ");
Возврат ": ";
КонецФункции
@@ -1,4 +1,4 @@
<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.0 Transitional//EN"><html><head><meta content="text/html;charset=utf-8" http-equiv="content-type"></meta><link rel="stylesheet" type="text/css" href="v8help://service_book/service_style"></link><meta name="GENERATOR" content="MSHTML 11.00.9600.18739"></meta></head><body>
<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.0 Transitional//EN"><html><head><meta content="text/html; charset=utf-8" http-equiv="Content-Type"></meta><link rel="stylesheet" type="text/css" href="v8help://service_book/service_style"></link><meta name="GENERATOR" content="MSHTML 11.00.9600.18739"></meta></head><body>
<p>Предназначен для хранения правил проверки учета.</p>
<p>Открывается с помощью ссылки <strong>Правила проверки учета</strong> в разделе <strong>Администрирование - Обслуживание - Корректировка данных</strong>.</p>
<p>В списке выводится:</p>
@@ -593,7 +593,6 @@
<key>ru</key>
<value>Серийный номер</value>
</title>
<visible>true</visible>
<enabled>true</enabled>
<userVisible>
<common>true</common>
@@ -27,7 +27,7 @@
Элементы.Наименование.СписокВыбора.Добавить("", НСтр("ru = '<Другое приложение>'"));
ПоставляемыеНастройки = Справочники.ПрограммыЭлектроннойПодписиИШифрования.ПоставляемыеНастройкиПрограмм();
Для каждого ПоставляемаяНастройка Из ПоставляемыеНастройки Цикл
Если ЕстьВОСКлиентаИлиВОССервера(ПоставляемаяНастройка) Тогда
Если ЕстьВОСКлиентаИлиВОССервера(ПоставляемаяНастройка) И Не ПоставляемаяНастройка.Неактуальная Тогда
Элементы.Наименование.СписокВыбора.Добавить(ПоставляемаяНастройка.Представление);
КонецЕсли;
КонецЦикла;
@@ -1,4 +1,4 @@
<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.0 Transitional//EN"><html><head><meta content="text/html;charset=utf-8" http-equiv="content-type"></meta><link rel="stylesheet" type="text/css" href="v8help://service_book/service_style"></link><meta name="GENERATOR" content="MSHTML 11.00.9600.17239"></meta></head><body>
<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.0 Transitional//EN"><html><head><meta content="text/html; charset=utf-8" http-equiv="Content-Type"></meta><link rel="stylesheet" type="text/css" href="v8help://service_book/service_style"></link><meta name="GENERATOR" content="MSHTML 11.00.9600.17239"></meta></head><body>
<p>Список предназначен для выбора папок <a href="Catalog.ПрофилиГруппДоступа/Help">профилей групп доступа</a>.</p>
<p>Т.к. профилей групп доступа может быть очень много и с похожими настройками ограничений прав, предусмотрена возможность создавать папки для упрощения поиска нужного <a href="Catalog.ПрофилиГруппДоступа.Form.ФормаЭлемента/Help">профиля групп доступа</a> и понимания ограничений прав доступа в целом.</p>
<p><a href="Catalog.ПрофилиГруппДоступа.Form.ФормаСписка/Help">Профили групп доступа</a> можно сгруппировать по различным признакам.</p>
@@ -1,4 +1,4 @@
<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.0 Transitional//EN"><html><head><meta content="text/html;charset=utf-8" http-equiv="content-type"></meta><link rel="stylesheet" type="text/css" href="v8help://service_book/service_style"></link><meta name="GENERATOR" content="MSHTML 11.00.9600.17239"></meta></head><body>
<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.0 Transitional//EN"><html><head><meta content="text/html; charset=utf-8" http-equiv="Content-Type"></meta><link rel="stylesheet" type="text/css" href="v8help://service_book/service_style"></link><meta name="GENERATOR" content="MSHTML 11.00.9600.17239"></meta></head><body>
<p>Сведения о папке <a href="Catalog.ПрофилиГруппДоступа/Help">профилей групп доступа</a>.</p>
<p><a href="Catalog.ПрофилиГруппДоступа.Form.ФормаСписка/Help">Профилей групп доступа</a> может быть много и с похожим назначением, поэтому предусмотрена возможность создавать папки (группы) для упрощения поиска нужного <a href="Catalog.ПрофилиГруппДоступа.Form.ФормаЭлемента/Help">профиля</a> и понимания принципов их формирования.</p>
<h3>Ввод папки профилей групп доступа</h3>
@@ -1,4 +1,4 @@
<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.0 Transitional//EN"><html><head><meta content="text/html;charset=utf-8" http-equiv="content-type"></meta><link rel="stylesheet" type="text/css" href="v8help://service_book/service_style"></link><meta name="GENERATOR" content="MSHTML 11.00.9600.17239"></meta></head><body>
<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.0 Transitional//EN"><html><head><meta content="text/html; charset=utf-8" http-equiv="Content-Type"></meta><link rel="stylesheet" type="text/css" href="v8help://service_book/service_style"></link><meta name="GENERATOR" content="MSHTML 11.00.9600.17239"></meta></head><body>
<p>Предназначен для подбора получателей <a href="Catalog.РассылкиОтчетов.Form.ФормаЭлемента/Help">рассылки</a>.</p>
<p>Открывается из рассылки отчетов по ссылке <strong>Укажите получателей</strong>.</p>
<p>Список состоит из колонок:</p>
@@ -1,4 +1,4 @@
<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.0 Transitional//EN"><html><head><meta content="text/html;charset=utf-8" http-equiv="content-type"></meta><link rel="stylesheet" type="text/css" href="v8help://service_book/service_style"></link><meta name="GENERATOR" content="MSHTML 11.00.9600.17126"></meta></head><body>
<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.0 Transitional//EN"><html><head><meta content="text/html; charset=utf-8" http-equiv="Content-Type"></meta><link rel="stylesheet" type="text/css" href="v8help://service_book/service_style"></link><meta name="GENERATOR" content="MSHTML 11.00.9600.17126"></meta></head><body>
<p>Предназначен для выбора группы <a href="Catalog.РассылкиОтчетов/Help">рассылок</a>.</p>
<p>Открывается из окна группы рассылок по кнопке выбора.</p>
<p>Список по умолчанию выводится в виде дерева.</p>
@@ -1,4 +1,4 @@
<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.0 Transitional//EN"><html><head><meta content="text/html;charset=utf-8" http-equiv="content-type"></meta><link rel="stylesheet" type="text/css" href="v8help://service_book/service_style"></link><meta name="GENERATOR" content="MSHTML 11.00.9600.17126"></meta></head><body>
<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.0 Transitional//EN"><html><head><meta content="text/html; charset=utf-8" http-equiv="Content-Type"></meta><link rel="stylesheet" type="text/css" href="v8help://service_book/service_style"></link><meta name="GENERATOR" content="MSHTML 11.00.9600.17126"></meta></head><body>
<p>Предназначена для ввода группы <a href="Catalog.РассылкиОтчетов/Help">рассылок отчетов</a>.</p>
<h3>Сведения о группе</h3>
<ul><li>Напишите <strong>Наименование</strong> группы.
@@ -46,7 +46,7 @@
</li>
<li>В поле <strong>Автор</strong> выберите пользователя из списка. По умолчанию приложение выбирает в качестве автора текущего пользователя, который создает рассылку.
<ul><li>При запуске по расписанию рассылка выполняется от имени автора. </li></ul></li></ul><h3>Доставка</h3>
<ul dir="ltr"><li>На вкладке описываются все возможные способы доставки настраиваемой рассылки. Содержимое вкладки может меняться, в зависимости от <a href="#&amp;#1042;&amp;#1080;&amp;#1076;&amp;#1056;&amp;#1072;&amp;#1089;&amp;#1089;&amp;#1099;&amp;#1083;&amp;#1082;&amp;#1080;">вида рассылки</a>.
<ul dir="ltr"><li>На вкладке описываются все возможные способы доставки настраиваемой рассылки. Содержимое вкладки может меняться, в зависимости от <a href="#ВидРассылки">вида рассылки</a>.
</li>
<li>Если выбрана <b>Личная рассылка автора</b>, то доставка выполняется только по электронной почте по единственному адресу, который указывается в поле <strong>Почтовый адрес</strong>.
</li>
@@ -67,13 +67,13 @@
<li>Если используются оба способа доставки (и публикация, и отправка по почте), то можно указать, что по почте нужно <strong>Отправлять только уведомление</strong> о том, что отчет сформирован. Сами отчеты не будут присоединяться к письму, а будут помещаться в каталог публикации. В этом случае письмо-уведомление будет содержать адрес, по которому находится сформированный отчет.</li>
<li>Для того чтобы опубликованный или отправленный отчет получил уникальное наименование, можно выбрать из выпадающего списка <b>Шаблон наименований</b>. Выберите шаблон, включающий в себя параметры формата, периода или даты. Можно выбрать шаблон с нужным форматом даты рассылки, а в <b>Конструкторе форматной строки</b> задать <b>Формат даты</b>, например, <b>dd.MM.yyyy (12.06.2023)</b>. Если в рассылке вложено несколько отчетов,<b> Шаблоном наименований</b> можно воспользоваться для каждого отчета по отдельности.</li>
<li>После установки флажка <strong>Отправлять по электронной почте</strong> становятся доступными <a name="ТемаИТекстПисьма"><strong>Тема и текст письма</strong></a>. Могут содержать шаблоны <a name="Параметр"><strong>параметров</strong></a> рассылки. По умолчанию шаблон письма уже сформирован автоматически. Для добавления параметров в письмо нажмите <strong>Параметр</strong>, выберите нужное значение:
<ul><li><strong>[</strong><strong>ДатаВыполнения]</strong> - дата рассылки. Параметр может быть указан в <u><a href="#&amp;#1053;&amp;#1072;&amp;#1080;&amp;#1084;&amp;#1077;&amp;#1085;&amp;#1086;&amp;#1074;&amp;#1072;&amp;#1085;&amp;#1080;&amp;#1077;&amp;#1040;&amp;#1088;&amp;#1093;&amp;#1080;&amp;#1074;&amp;#1072;">имени архива</a></u>.
<ul><li><strong>[</strong><strong>ДатаВыполнения]</strong> - дата рассылки. Параметр может быть указан в <u><a href="#НаименованиеАрхива">имени архива</a></u>.
</li>
<li>
<div style="MARGIN-RIGHT: 0px"><strong>[Автор]</strong> - пользователь, запустивший рассылку. </div>
</li>
<li>
<div style="MARGIN-RIGHT: 0px"><strong>[Получатель]</strong> - представление получателя рассылки. Доступен только для вида рассылки <a href="#&amp;#1042;&amp;#1080;&amp;#1076;&amp;#1056;&amp;#1072;&amp;#1089;&amp;#1089;&amp;#1099;&amp;#1083;&amp;#1082;&amp;#1080;">свой отчет для каждого получателя</a>. </div>
<div style="MARGIN-RIGHT: 0px"><strong>[Получатель]</strong> - представление получателя рассылки. Доступен только для вида рассылки <a href="#ВидРассылки">свой отчет для каждого получателя</a>. </div>
</li>
<li>
<div style="MARGIN-RIGHT: 0px"><strong>[НаименованиеРассылки]</strong> - наименование рассылки. Параметр может быть указан в имени архива. </div>
@@ -1,4 +1,4 @@
<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.0 Transitional//EN"><html><head><meta content="text/html;charset=utf-8" http-equiv="content-type"></meta><link rel="stylesheet" type="text/css" href="v8help://service_book/service_style"></link><meta name="GENERATOR" content="MSHTML 11.00.9600.17239"></meta></head><body>
<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.0 Transitional//EN"><html><head><meta content="text/html; charset=utf-8" http-equiv="Content-Type"></meta><link rel="stylesheet" type="text/css" href="v8help://service_book/service_style"></link><meta name="GENERATOR" content="MSHTML 11.00.9600.17239"></meta></head><body>
<p>Предназначен для подбора сертификата электронной подписи.</p>
<p>Открывается по кнопке <strong>Подобрать</strong> из окна <a href="Catalog.СертификатыКлючейЭлектроннойПодписиИШифрования.Form.ШифрованиеДанных/Help">Шифрование данных</a>.</p>
<p>В списке выводится:</p>
@@ -315,14 +315,27 @@
КонецЕсли;
Если ЭлектроннаяПодписьСлужебныйКлиент.ЭтоОперацияОблачнойПодписи(ЭтотОбъект) Тогда
МодульСервисКриптографииDSSПодтверждениеКлиент = ОбщегоНазначенияКлиент.ОбщийМодуль("СервисКриптографииDSSПодтверждениеКлиент");
Если МодульСервисКриптографииDSSПодтверждениеКлиент.ПроверкаПередВыполнениемОперации(ЭтотОбъект, СвойстваПароля.Значение) Тогда
Если ТипЗнч(ОписаниеДанных) = Тип("Структура")
И ТипЗнч(ОписаниеДанных.Данные) = Тип("Структура")
И ОписаниеДанных.Данные.Свойство("ПараметрыCMS") Тогда
ОписаниеДанных.Данные.ПараметрыCMS.ВключениеСертификатовВПодпись = Строка(ОписаниеДанных.Данные.ПараметрыCMS.ВключениеСертификатовВПодпись);
МодульСервисКриптографииDSSПодтверждениеКлиент = ОбщегоНазначенияКлиент.ОбщийМодуль(
"СервисКриптографииDSSПодтверждениеКлиент");
Если МодульСервисКриптографииDSSПодтверждениеКлиент.ПроверкаПередВыполнениемОперации(ЭтотОбъект,
СвойстваПароля.Значение) Тогда
Если ТипЗнч(ОписаниеДанных) = Тип("Структура") И ОписаниеДанных.Свойство("Данные") И ТипЗнч(
ОписаниеДанных.Данные) = Тип("Структура") И ОписаниеДанных.Данные.Свойство("ПараметрыCMS") Тогда
ОписаниеДанных.Данные.ПараметрыCMS.ВключениеСертификатовВПодпись = ЭлектроннаяПодписьСлужебныйКлиент.ВключениеСертификатовВПодписьСтрокой(
ОписаниеДанных.Данные.ПараметрыCMS.ВключениеСертификатовВПодпись);
ИначеЕсли ТипЗнч(ОписаниеДанных) = Тип("Структура") И ОписаниеДанных.Свойство("НаборДанных") Тогда
Для Каждого ДанныеНабора Из ОписаниеДанных.НаборДанных Цикл
Если ТипЗнч(ДанныеНабора.Данные) = Тип("Структура") И ДанныеНабора.Данные.Свойство("ПараметрыCMS") Тогда
ДанныеНабора.Данные.ПараметрыCMS.ВключениеСертификатовВПодпись = ЭлектроннаяПодписьСлужебныйКлиент.ВключениеСертификатовВПодписьСтрокой(
ДанныеНабора.Данные.ПараметрыCMS.ВключениеСертификатовВПодпись);
КонецЕсли;
МодульСервисКриптографииDSSПодтверждениеКлиент.ВыполнитьНачальнуюОперациюСервиса(ЭтотОбъект, ОписаниеДанных, СвойстваПароля.Значение);
КонецЦикла;
КонецЕсли;
МодульСервисКриптографииDSSПодтверждениеКлиент.ВыполнитьНачальнуюОперациюСервиса(ЭтотОбъект,
ОписаниеДанных, СвойстваПароля.Значение);
Элементы.Подписать.Доступность = Ложь;
КонецЕсли;
Иначе
@@ -1,4 +1,4 @@
<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.0 Transitional//EN"><html><head><meta content="text/html;charset=utf-8" http-equiv="content-type"></meta><link rel="stylesheet" type="text/css" href="v8help://service_book/service_style"></link><meta name="GENERATOR" content="MSHTML 11.00.9600.17239"></meta></head><body>
<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.0 Transitional//EN"><html><head><meta content="text/html; charset=utf-8" http-equiv="Content-Type"></meta><link rel="stylesheet" type="text/css" href="v8help://service_book/service_style"></link><meta name="GENERATOR" content="MSHTML 11.00.9600.17239"></meta></head><body>
<p>Предназначена для расшифровки данных. </p>
<p>Выводятся сведения:</p>
<ul><li>В ссылке в верхней части окна указываются сведения о данных, которые будут расшифрованы.
@@ -670,11 +670,14 @@
РасшифроватьДанныеПослеВыполнения(Результат);
Если Результат.Свойство("Ошибка") Тогда
Ошибка = Результат.Ошибка;
Если ОписаниеДанных.Свойство("КонтекстОперации") Тогда
ОписаниеДанных.КонтекстОперации = ЭтотОбъект;
КонецЕсли;
Контекст.ОшибкаНаКлиенте = Результат.Ошибка;
ОбработатьОшибку(Контекст.Оповещение, Контекст.ОшибкаНаКлиенте, Контекст.ОшибкаНаСервере);
Контекст.ОшибкаНаКлиенте = Ошибка;
ДополнительныеДанныеОшибки = ОбщегоНазначенияКлиентСервер.СвойствоСтруктуры(
Ошибка, "ДополнительныеДанныеПроверокНаКлиенте", Неопределено);
ОбработатьОшибку(Контекст.Оповещение, Контекст.ОшибкаНаКлиенте, Контекст.ОшибкаНаСервере, ДополнительныеДанныеОшибки);
Возврат;
КонецЕсли;
@@ -789,7 +792,7 @@
КонецФункции
&НаКлиенте
Процедура ОбработатьОшибку(Оповещение, ОшибкаНаКлиенте, ОшибкаНаСервере)
Процедура ОбработатьОшибку(Оповещение, ОшибкаНаКлиенте, ОшибкаНаСервере, ДополнительныеДанные = Неопределено)
Если ОписаниеДанных.Свойство("ПрекратитьВыполнение") Тогда
@@ -814,6 +817,12 @@
ДополнительныеПараметры = Новый Структура("Сертификат", Сертификат);
Если ЗначениеЗаполнено(ДополнительныеДанные) Тогда
Для Каждого КлючИЗначение Из ДополнительныеДанные Цикл
ДополнительныеПараметры.Вставить(КлючИЗначение.Ключ, КлючИЗначение.Значение);
КонецЦикла;
КонецЕсли;
ЭлектроннаяПодписьСлужебныйКлиент.ПоказатьОшибкуОбращенияКПрограмме(
НСтр("ru = 'Не удалось расшифровать данные'"), "",
ОшибкаНаКлиенте, ОшибкаНаСервере, ДополнительныеПараметры, ОбработкаПослеПредупреждения);
@@ -1,4 +1,4 @@
<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.0 Transitional//EN"><html><head><meta content="text/html;charset=utf-8" http-equiv="content-type"></meta><link rel="stylesheet" type="text/css" href="v8help://service_book/service_style"></link><meta name="GENERATOR" content="MSHTML 11.00.9600.17239"></meta></head><body>
<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.0 Transitional//EN"><html><head><meta content="text/html; charset=utf-8" http-equiv="Content-Type"></meta><link rel="stylesheet" type="text/css" href="v8help://service_book/service_style"></link><meta name="GENERATOR" content="MSHTML 11.00.9600.17239"></meta></head><body>
<p>Предназначен для выбора сертификата электронной подписи.</p>
<p>В списке выводится:</p>
<ul><li><strong>Представление</strong> - полное наименование сертификата;
@@ -1,4 +1,4 @@
<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.0 Transitional//EN"><html><head><meta content="text/html;charset=utf-8" http-equiv="content-type"></meta><link rel="stylesheet" type="text/css" href="v8help://service_book/service_style"></link><style type="text/css">BODY {
<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.0 Transitional//EN"><html><head><meta content="text/html; charset=utf-8" http-equiv="Content-Type"></meta><link rel="stylesheet" type="text/css" href="v8help://service_book/service_style"></link><style type="text/css">BODY {
MARGIN-LEFT: 1em; MARGIN-TOP: 1em; MARGIN-RIGHT: 1em
}
P:first-letter {
@@ -1,4 +1,4 @@
<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.0 Transitional//EN"><html><head><meta content="text/html;charset=utf-8" http-equiv="content-type"></meta><link rel="stylesheet" type="text/css" href="v8help://service_book/service_style"></link><style type="text/css">BODY {
<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.0 Transitional//EN"><html><head><meta content="text/html; charset=utf-8" http-equiv="Content-Type"></meta><link rel="stylesheet" type="text/css" href="v8help://service_book/service_style"></link><style type="text/css">BODY {
MARGIN-LEFT: 1em; MARGIN-TOP: 1em; MARGIN-RIGHT: 1em
}
P:first-letter {
@@ -1,4 +1,4 @@
<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.0 Transitional//EN"><html><head><meta content="text/html;charset=utf-8" http-equiv="content-type"></meta><link rel="stylesheet" type="text/css" href="v8help://service_book/service_style"></link><meta name="GENERATOR" content="MSHTML 9.00.8112.16421"></meta></head><body>
<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.0 Transitional//EN"><html xmlns:o="urn:schemas-microsoft-com:office:office"><head><meta content="text/html; charset=utf-8" http-equiv="Content-Type"></meta><link rel="stylesheet" type="text/css" href="v8help://service_book/service_style"></link><meta name="GENERATOR" content="MSHTML 9.00.8112.16421"></meta></head><body>
<p style="MARGIN: 0cm 0cm 0pt">Предназначен для ввода и редактирования комплексных вопросов <a href="Document.Анкета.Form.ФормаДокумента/Help">анкеты</a>.</p>
<p style="MARGIN: 0cm 0cm 0pt">Открывается по команде <strong>Добавить - комплексный вопрос</strong> из <a href="Catalog.ШаблоныАнкет.Form.ФормаЭлемента/Help">шаблона анкеты</a>.</p>
<ul><li>
@@ -1,4 +1,4 @@
<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.0 Transitional//EN"><html><head><meta content="text/html;charset=utf-8" http-equiv="content-type"></meta><link rel="stylesheet" type="text/css" href="v8help://service_book/service_style"></link><meta name="GENERATOR" content="MSHTML 9.00.8112.16421"></meta></head><body>
<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.0 Transitional//EN"><html><head><meta content="text/html; charset=utf-8" http-equiv="Content-Type"></meta><link rel="stylesheet" type="text/css" href="v8help://service_book/service_style"></link><meta name="GENERATOR" content="MSHTML 9.00.8112.16421"></meta></head><body>
<p>Предназначена для ввода простого вопроса в <a href="Catalog.ШаблоныАнкет.Form.ФормаЭлемента/Help">шаблон анкеты</a>.</p>
<p>Открывается по команде <strong>Добавить - простой вопрос</strong> из шаблона анкеты.</p>
<h3>Ввод простого вопроса в шаблон анкеты</h3>
@@ -1,4 +1,4 @@
<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.0 Transitional//EN"><html><head><meta content="text/html;charset=utf-8" http-equiv="content-type"></meta><link rel="stylesheet" type="text/css" href="v8help://service_book/service_style"></link><meta name="GENERATOR" content="MSHTML 11.00.9600.18500"></meta></head><body>
<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.0 Transitional//EN"><html><head><meta content="text/html; charset=utf-8" http-equiv="Content-Type"></meta><link rel="stylesheet" type="text/css" href="v8help://service_book/service_style"></link><meta name="GENERATOR" content="MSHTML 11.00.9600.18500"></meta></head><body>
<p>Предназначен для выбора шаблонов сообщений sms или электронных писем. </p>
<p>В левой части списка перечислены наименования шаблонов, в правой части показывается содержание шаблона.</p>
<h3>Использование шаблона</h3>
@@ -1,4 +1,4 @@
<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.0 Transitional//EN"><html><head><meta content="text/html;charset=utf-8" http-equiv="content-type"></meta><link rel="stylesheet" type="text/css" href="v8help://service_book/service_style"></link><meta name="GENERATOR" content="MSHTML 11.00.9600.17126"></meta></head><body>
<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.0 Transitional//EN"><html><head><meta content="text/html; charset=utf-8" http-equiv="Content-Type"></meta><link rel="stylesheet" type="text/css" href="v8help://service_book/service_style"></link><meta name="GENERATOR" content="MSHTML 11.00.9600.17126"></meta></head><body>
<p>Предназначен для выбора <a href="ChartOfCharacteristicTypes.ВопросыДляАнкетирования/Help">вопросов</a>.</p>
<p>Открывается при выборе вопроса по команде <strong>Добавить - простой вопрос</strong> в <a href="Catalog.ШаблоныАнкет.Form.ФормаЭлемента/Help">шаблоне анкеты</a> или в <a href="Catalog.ШаблоныАнкет.Form.ФормаМастераТабличныхВопросов/Help">Помощнике создания табличных вопросов</a>.</p>
<p>Одним из важных этапов подготовки <a href="Document.Анкета.Form.ФормаСписка/Help">анкет</a> является составление вопросов. </p>
@@ -1,4 +1,4 @@
<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.0 Transitional//EN"><html><head><meta content="text/html;charset=utf-8" http-equiv="content-type"></meta><link rel="stylesheet" type="text/css" href="v8help://service_book/service_style"></link><meta name="GENERATOR" content="MSHTML 11.00.9600.17126"></meta></head><body>
<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.0 Transitional//EN"><html><head><meta content="text/html; charset=utf-8" http-equiv="Content-Type"></meta><link rel="stylesheet" type="text/css" href="v8help://service_book/service_style"></link><meta name="GENERATOR" content="MSHTML 11.00.9600.17126"></meta></head><body>
<p>Подготовка вопросов для анкетирования.</p>
<p>Открывается по команде <strong>Вопросы для анкетирования</strong> в разделе <strong>Анкетирование</strong>.</p>
<p>Одним из важных этапов подготовки <a href="Document.Анкета.Form.ФормаСписка/Help">анкет</a> является составление вопросов. </p>
@@ -1,4 +1,4 @@
<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.0 Transitional//EN"><html><head><meta content="text/html;charset=utf-8" http-equiv="content-type"></meta><link rel="stylesheet" type="text/css" href="v8help://service_book/service_style"></link><meta name="GENERATOR" content="MSHTML 9.00.8112.16421"></meta></head><body>
<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.0 Transitional//EN"><html><head><meta content="text/html; charset=utf-8" http-equiv="Content-Type"></meta><link rel="stylesheet" type="text/css" href="v8help://service_book/service_style"></link><meta name="GENERATOR" content="MSHTML 9.00.8112.16421"></meta></head><body>
<p>Предусмотрена для указания свойств одного <a href="ChartOfCharacteristicTypes.ДополнительныеРеквизитыИСведения.Form.ФормаЭлемента/Help">дополнительного реквизита</a> в зависимости от значения других реквизитов.</p>
<p>Для общих дополнительных реквизитов данная настройка недоступна.</p>
<p>Для ввода новых условий нажмите кнопку <strong>Добавить условие</strong>. </p>
@@ -1231,7 +1231,6 @@
<verticalLines>true</verticalLines>
<searchOnInput>Auto</searchOnInput>
<initialListView>Auto</initialListView>
<initialTreeView>ExpandTopLevel</initialTreeView>
<horizontalStretch>true</horizontalStretch>
<verticalStretch>true</verticalStretch>
<enableStartDrag>true</enableStartDrag>
@@ -1,4 +1,4 @@
<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.0 Transitional//EN"><html><head><meta content="text/html;charset=utf-8" http-equiv="content-type"></meta><link rel="stylesheet" type="text/css" href="v8help://service_book/service_style"></link><meta name="GENERATOR" content="MSHTML 11.00.9600.17937"></meta></head><body>
<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.0 Transitional//EN"><html><head><meta content="text/html; charset=utf-8" http-equiv="Content-Type"></meta><link rel="stylesheet" type="text/css" href="v8help://service_book/service_style"></link><meta name="GENERATOR" content="MSHTML 11.00.9600.17937"></meta></head><body>
<p>Предназначен для ввода нескольких значений в список для отбора.</p>
<p>Открывается из вкладки <strong>Отборы</strong> окна <a href="CommonForm.ФормаНастроекОтчета/Help">Настройки отчета</a> по двойному щелчку мыши в столбце <strong>Значение</strong> для операций <strong>В списке</strong>, <strong>Не в списке</strong>, <strong>В группе из списка</strong>, <strong>Не в группе из списка</strong>.</p>
<h3>Подбор значений</h3>
@@ -935,7 +935,6 @@
<verticalLines>true</verticalLines>
<searchOnInput>Auto</searchOnInput>
<initialListView>Auto</initialListView>
<initialTreeView>ExpandTopLevel</initialTreeView>
<horizontalStretch>true</horizontalStretch>
<verticalStretch>true</verticalStretch>
<enableStartDrag>true</enableStartDrag>
@@ -1,4 +1,4 @@
<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.0 Transitional//EN"><html><head><meta content="text/html;charset=utf-8" http-equiv="content-type"></meta><link rel="stylesheet" type="text/css" href="v8help://service_book/service_style"></link><meta name="GENERATOR" content="MSHTML 9.00.8112.16421"></meta></head><body>
<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.0 Transitional//EN"><html><head><meta content="text/html; charset=utf-8" http-equiv="Content-Type"></meta><link rel="stylesheet" type="text/css" href="v8help://service_book/service_style"></link><meta name="GENERATOR" content="MSHTML 9.00.8112.16421"></meta></head><body>
<p>Предназначена для выбора типов пользователей.</p>
<p>Укажите с помощью флажков нужные типы пользователей, нажмите <strong>Выбрать</strong>.</p>
<h3>См. также:</h3>
@@ -1,4 +1,4 @@
<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.0 Transitional//EN"><html><head><meta content="text/html;charset=utf-8" http-equiv="content-type"></meta><link rel="stylesheet" type="text/css" href="v8help://service_book/service_style"></link><meta name="GENERATOR" content="MSHTML 11.00.10570.1001"></meta></head><body>
<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.0 Transitional//EN"><html><head><meta content="text/html; charset=utf-8" http-equiv="Content-Type"></meta><link rel="stylesheet" type="text/css" href="v8help://service_book/service_style"></link><meta name="GENERATOR" content="MSHTML 11.00.10570.1001"></meta></head><body>
<p>Настраиваются для механизмов, которые работают с веб-сервисами.</p>
<p>При необходимости укажите адреса прокси-серверов для отдельных протоколов и адреса интернет-серверов, к которым должен использоваться прямой доступ.</p>
<p>По умолчанию включен флажок <strong>Использовать прокси-сервер по умолчанию для всех протоколов</strong>.</p>
@@ -1,4 +1,4 @@
<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.0 Transitional//EN"><html><head><meta content="text/html;charset=utf-8" http-equiv="content-type"></meta><link rel="stylesheet" type="text/css" href="v8help://service_book/service_style"></link><meta name="GENERATOR" content="MSHTML 11.00.10570.1001"></meta></head><body>
<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.0 Transitional//EN"><html><head><meta content="text/html; charset=utf-8" http-equiv="Content-Type"></meta><link rel="stylesheet" type="text/css" href="v8help://service_book/service_style"></link><meta name="GENERATOR" content="MSHTML 11.00.10570.1001"></meta></head><body>
<p>Предназначена для ввода данных регистрации на сервисе склонений <a href="http://morpher.ru/">http://morpher.ru/</a>.</p>
<p>Открывается по команде <strong>Настройка доступа к сервису "Морфер"</strong> в разделе <strong>Администрирование - Интернет-Поддержка и Сервисы</strong>.</p>
<h3>Анонимный вход</h3>
@@ -1927,6 +1927,7 @@
<autoFill>true</autoFill>
</contextMenu>
<autoMaxHeight>true</autoMaxHeight>
<groupVerticalAlign>Center</groupVerticalAlign>
<extInfo xsi:type="form:PictureDecorationExtInfo">
<picture xsi:type="core:PictureRef">
<picture>StdPicture.Information</picture>
@@ -1337,6 +1337,7 @@
НСтр("ru = 'На вашем компьютере установлено несколько приложений с алгоритмами ГОСТ: %1.
|Возможна некорректная работа из-за конфликта между ними. В этом случае следует удалить приложения и после перезагрузки установить только одно из них.'"),
СтрСоединить(МассивПрограмм, ", "));
Элементы.ДекорацияИнформацияКриптопровайдеры.Картинка = БиблиотекаКартинок.Предупреждение;
// Конец Локализация
Иначе
Элементы.ГруппаПодсказкаКриптопровайдеры.Видимость = Ложь;
@@ -275,7 +275,7 @@
</userVisible>
<title>
<key>ru</key>
<value>Подменю включить расширения</value>
<value>Включить/выключить расширения</value>
</title>
<toolTip>
<key>ru</key>
@@ -370,7 +370,7 @@
</userVisible>
<title>
<key>ru</key>
<value>Подменю передавать в подчиненные узлы РИБ</value>
<value>Передавать в подчиненные узлы РИБ</value>
</title>
<toolTip>
<key>ru</key>
@@ -1163,6 +1163,44 @@
<horizontalAlign>Left</horizontalAlign>
</extInfo>
</items>
<items xsi:type="form:Decoration">
<name>ДополнительнаяСсылка</name>
<id>116</id>
<title>
<key>ru</key>
<value>Дополнительная ссылка</value>
</title>
<visible>true</visible>
<enabled>true</enabled>
<userVisible>
<common>true</common>
</userVisible>
<extendedTooltip>
<name>ДополнительнаяСсылкаРасширеннаяПодсказка</name>
<id>118</id>
<type>Label</type>
<autoMaxWidth>true</autoMaxWidth>
<autoMaxHeight>true</autoMaxHeight>
<extInfo xsi:type="form:LabelDecorationExtInfo">
<horizontalAlign>Left</horizontalAlign>
</extInfo>
</extendedTooltip>
<contextMenu>
<name>ДополнительнаяСсылкаКонтекстноеМеню</name>
<id>117</id>
<autoFill>true</autoFill>
</contextMenu>
<type>Label</type>
<autoMaxWidth>true</autoMaxWidth>
<autoMaxHeight>true</autoMaxHeight>
<extInfo xsi:type="form:LabelDecorationExtInfo">
<handlers>
<event>URLProcessing</event>
<name>ДополнительнаяСсылкаОбработкаНавигационнойСсылки</name>
</handlers>
<horizontalAlign>Left</horizontalAlign>
</extInfo>
</items>
<items xsi:type="form:FormGroup">
<name>ГруппаПодвал</name>
<id>60</id>
@@ -1875,6 +1913,26 @@
<stringQualifiers/>
</valueType>
</parameters>
<parameters>
<name>ТекстДополнительнойСсылки</name>
<valueType>
<types>String</types>
<stringQualifiers/>
</valueType>
</parameters>
<parameters>
<name>ОбработчикДополнительнойСсылки</name>
<valueType>
<types>String</types>
<stringQualifiers/>
</valueType>
<keyParameter>true</keyParameter>
</parameters>
<parameters>
<name>ПараметрОбработчикаДополнительнойСсылки</name>
<valueType/>
<keyParameter>true</keyParameter>
</parameters>
<commandInterface>
<navigationPanel/>
<commandBar/>
@@ -60,6 +60,13 @@
СтандартныеПодсистемыСервер.СброситьРазмерыИПоложениеОкна(ЭтотОбъект);
Если ЗначениеЗаполнено(Параметры.ТекстДополнительнойСсылки) Тогда
Элементы.ДополнительнаяСсылка.Видимость = Истина;
Элементы.ДополнительнаяСсылка.Заголовок = СтроковыеФункции.ФорматированнаяСтрока(Параметры.ТекстДополнительнойСсылки);
Иначе
Элементы.ДополнительнаяСсылка.Видимость = Ложь;
КонецЕсли;
КонецПроцедуры
&НаКлиенте
@@ -146,6 +153,27 @@
Элемент, НавигационнаяСсылкаФорматированнойСтроки, СтандартнаяОбработка, ДополнительныеДанные());
КонецПроцедуры
&НаКлиенте
Процедура ДополнительнаяСсылкаОбработкаНавигационнойСсылки(Элемент, НавигационнаяСсылкаФорматированнойСтроки, СтандартнаяОбработка)
Если ЗначениеЗаполнено(Параметры.ОбработчикДополнительнойСсылки) Тогда
СтандартнаяОбработка = Ложь;
ПолноеИмяПроцедуры = Параметры.ОбработчикДополнительнойСсылки;
ЧастиИмениПроцедуры = СтрРазделить(ПолноеИмяПроцедуры, ".");
ИмяМодуля = ЧастиИмениПроцедуры[0];
ИмяПроцедуры = ЧастиИмениПроцедуры[1];
Оповещение = Новый ОписаниеОповещения(ИмяПроцедуры, ОбщегоНазначенияКлиент.ОбщийМодуль(ИмяМодуля));
ПараметрОповещения = Новый Структура("ПараметрОбработчикаДополнительнойСсылки, НавигационнаяСсылка",
Параметры.ПараметрОбработчикаДополнительнойСсылки, НавигационнаяСсылкаФорматированнойСтроки);
ВыполнитьОбработкуОповещения(Оповещение, ПараметрОповещения);
КонецЕсли;
КонецПроцедуры
#КонецОбласти
#Область ОбработчикиКомандФормы
@@ -640,7 +640,7 @@
<id>77</id>
<title>
<key>ru</key>
<value>Перезаполнение предопределенных элементов и классификаторов.</value>
<value>Перезаполнение предопределенных элементов и классификаторов на выбранных языках учета.</value>
</title>
<visible>true</visible>
<enabled>true</enabled>
@@ -663,6 +663,7 @@
<autoFill>true</autoFill>
</contextMenu>
<type>Label</type>
<width>50</width>
<height>3</height>
<extInfo xsi:type="form:LabelDecorationExtInfo">
<horizontalAlign>Left</horizontalAlign>
@@ -816,7 +817,7 @@
<id>72</id>
<title>
<key>ru</key>
<value>Предопределенные элементы и классификаторы успешно перезаполнены.</value>
<value>Предопределенные элементы и классификаторы успешно перезаполнены на выбранных языках учета.</value>
</title>
<visible>true</visible>
<enabled>true</enabled>
@@ -839,6 +840,7 @@
<autoFill>true</autoFill>
</contextMenu>
<type>Label</type>
<width>50</width>
<height>3</height>
<extInfo xsi:type="form:LabelDecorationExtInfo">
<horizontalAlign>Left</horizontalAlign>
@@ -1032,7 +1034,6 @@
<common>true</common>
</edit>
<fillChecking>ShowError</fillChecking>
<savedData>true</savedData>
</attributes>
<attributes>
<name>ИспользоватьДополнительныйЯзык1</name>
@@ -1050,7 +1051,6 @@
<edit>
<common>true</common>
</edit>
<savedData>true</savedData>
</attributes>
<attributes>
<name>ДополнительныйЯзык1</name>
@@ -1069,7 +1069,6 @@
<edit>
<common>true</common>
</edit>
<savedData>true</savedData>
</attributes>
<attributes>
<name>ЧасовойПоясПрограммы</name>
@@ -1088,7 +1087,6 @@
<edit>
<common>true</common>
</edit>
<savedData>true</savedData>
</attributes>
<attributes>
<name>ДополнительныйЯзык2</name>
@@ -1107,7 +1105,6 @@
<edit>
<common>true</common>
</edit>
<savedData>true</savedData>
</attributes>
<attributes>
<name>ИспользоватьДополнительныйЯзык2</name>
@@ -1125,7 +1122,6 @@
<edit>
<common>true</common>
</edit>
<savedData>true</savedData>
</attributes>
<attributes>
<name>Источник</name>
@@ -1251,6 +1247,19 @@
<common>true</common>
</edit>
</attributes>
<attributes>
<name>ДанныеБылиИзменены</name>
<id>15</id>
<valueType>
<types>Boolean</types>
</valueType>
<view>
<common>true</common>
</view>
<edit>
<common>true</common>
</edit>
</attributes>
<formCommands>
<name>ОК</name>
<title>
@@ -21,6 +21,7 @@
Источник = Параметры.Источник;
Если Источник = "ПанельАдминистрированияБСП" Тогда
Элементы.ОК.Заголовок = НСтр("ru = 'Изменить'");
Элементы.ОК.ОтображениеПодсказки = ОтображениеПодсказки.Нет;
Элементы.ГруппаЧасовойПоясПрограммы.Видимость = Ложь;
Заголовок = НСтр("ru = 'Языки ведения учета'");
АвтоЗаголовок = Ложь;
@@ -182,11 +183,13 @@
&НаКлиенте
Процедура ИспользоватьДополнительныйЯзык1ПриИзменении(Элемент)
Элементы.ДополнительныйЯзык1.Доступность = ИспользоватьДополнительныйЯзык1;
ДанныеБылиИзменены = Истина;
КонецПроцедуры
&НаКлиенте
Процедура ИспользоватьДополнительныйЯзык2ПриИзменении(Элемент)
Элементы.ДополнительныйЯзык2.Доступность = ИспользоватьДополнительныйЯзык2;
ДанныеБылиИзменены = Истина;
КонецПроцедуры
&НаКлиенте
@@ -200,6 +203,8 @@
КонецЕсли;
КонецЕсли;
ДанныеБылиИзменены = Истина;
КонецПроцедуры
&НаКлиенте
@@ -218,6 +223,8 @@
КонецЕсли;
КонецЕсли;
ДанныеБылиИзменены = Истина;
КонецПроцедуры
&НаКлиенте
@@ -231,6 +238,8 @@
КонецЕсли;
КонецЕсли;
ДанныеБылиИзменены = Истина;
КонецПроцедуры
&НаКлиенте
@@ -246,6 +255,7 @@
&НаКлиенте
Процедура ЧасовойПоясПрограммыПриИзменении(Элемент)
СмещениеЧасовогоПояса = СмещениеЧасовогоПояса(ЧасовойПоясПрограммы, ТекущиеВремяНаКлиенте());
ДанныеБылиИзменены = Истина;
КонецПроцедуры
#КонецОбласти
@@ -276,7 +286,7 @@
&НаКлиенте
Процедура АвтоматическоеЗакрытиеФормыПриНеактивности()
Если Модифицированность Тогда
Если ДанныеБылиИзменены Тогда
Элементы.ОК.Заголовок = НСтр("ru = 'ОК'");
Возврат;
КонецЕсли;
@@ -1,4 +1,4 @@
<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.0 Transitional//EN"><html><head><meta content="text/html;charset=utf-8" http-equiv="content-type"></meta><link rel="stylesheet" type="text/css" href="v8help://service_book/service_style"></link><meta name="GENERATOR" content="MSHTML 11.00.9600.17239"></meta></head><body>
<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.0 Transitional//EN"><html><head><meta content="text/html; charset=utf-8" http-equiv="Content-Type"></meta><link rel="stylesheet" type="text/css" href="v8help://service_book/service_style"></link><meta name="GENERATOR" content="MSHTML 11.00.9600.17239"></meta></head><body>
<p>Предназначена для просмотра основных свойств сертификата ключа электронной подписи и шифрования.</p>
<h3>Основные сведения о сертификате</h3>
<ul><li><strong>Кому выдан</strong> - личные данные владельца сертификата;
@@ -642,17 +642,7 @@
ИначеЕсли СтрокаДерева.ТипОтвета = Перечисления.ТипыОтветовНаВопрос.ОдинВариантИз Тогда
Если СтрокаДерева.ВидПереключателя = Перечисления.ВидыПереключателяВАнкетах.Переключатель Тогда
ВариантыОтветовНаВопрос = ВариантыОтветовНаВопрос(СтрокаДерева.ЭлементарныйВопрос, Форма);
Счетчик = 0;
Для Каждого ВариантОтвета Из ВариантыОтветовНаВопрос Цикл
Счетчик = Счетчик + 1;
ДобавляемыеРеквизиты.Добавить(Новый РеквизитФормы(ИмяВопроса + "_Реквизит_" + Счетчик,
СтрокаДерева.ТипЗначения, , СтрокаДерева.Формулировка));
КонецЦикла;
Иначе
ДобавляемыеРеквизиты.Добавить(Новый РеквизитФормы(ИмяВопроса,СтрокаДерева.ТипЗначения,,СтрокаДерева.Формулировка))
КонецЕсли;
ДобавляемыеРеквизиты.Добавить(Новый РеквизитФормы(ИмяВопроса,СтрокаДерева.ТипЗначения,,СтрокаДерева.Формулировка));
ИначеЕсли СтрокаДерева.ТипОтвета = Перечисления.ТипыОтветовНаВопрос.НесколькоВариантовИз Тогда
ВариантыОтветовНаВопрос = ВариантыОтветовНаВопрос(СтрокаДерева.ЭлементарныйВопрос, Форма);
@@ -1110,85 +1100,26 @@
ИначеЕсли СтрокаТаблицы.ТипОтвета = Перечисления.ТипыОтветовНаВопрос.ОдинВариантИз Тогда
ВариантыОтветовНаВопрос = ВариантыОтветовНаВопрос(СтрокаТаблицы.ЭлементарныйВопрос, Форма);
Если СтрокаТаблицы.ВидПереключателя = Перечисления.ВидыПереключателяВАнкетах.Переключатель Тогда
ЭлементГруппаВариантыОтветов = Форма.Элементы.Добавить(ИмяВопроса + "_Группа_Варианты", Тип("ГруппаФормы"),
ЭлементГруппаВопросКомментарий);
ЭлементГруппаВариантыОтветов.Вид = ВидГруппыФормы.ОбычнаяГруппа;
ЭлементГруппаВариантыОтветов.Отображение = ОтображениеОбычнойГруппы.Нет;
ЭлементГруппаВариантыОтветов.Группировка = ГруппировкаПодчиненныхЭлементовФормы.ГоризонтальнаяВсегда;
ЭлементГруппаВариантыОтветов.ОтображатьЗаголовок = Ложь;
ЭлементГруппаВопросы = Форма.Элементы.Добавить(ИмяВопроса + "_ГруппаВопросы", Тип("ГруппаФормы"),
ЭлементГруппаВариантыОтветов);
ЭлементГруппаВопросы.Вид = ВидГруппыФормы.ОбычнаяГруппа;
ЭлементГруппаВопросы.Отображение = ОтображениеОбычнойГруппы.Нет;
ЭлементГруппаВопросы.Группировка = ГруппировкаПодчиненныхЭлементовФормы.Вертикальная;
ЭлементГруппаВопросы.ОтображатьЗаголовок = Ложь;
Счетчик = 0;
Для Каждого ВариантОтвета Из ВариантыОтветовНаВопрос Цикл
Счетчик = Счетчик + 1;
ЭлементГруппаВариантОтвета = Форма.Элементы.Добавить(ИмяВопроса + "_Группа_ВариантОтвета_" + XMLСтрока(
Счетчик), Тип("ГруппаФормы"), ЭлементГруппаВопросы);
ЭлементГруппаВариантОтвета.Вид = ВидГруппыФормы.ОбычнаяГруппа;
ЭлементГруппаВариантОтвета.Отображение = ОтображениеОбычнойГруппы.Нет;
ЭлементГруппаВариантОтвета.Группировка = ГруппировкаПодчиненныхЭлементовФормы.ГоризонтальнаяВсегда;
ЭлементГруппаВариантОтвета.ОтображатьЗаголовок = Ложь;
ЭлементГруппаВариантОтвета.РастягиватьПоГоризонтали = Истина;
ИмяРеквизитаВопроса = ИмяВопроса + "_Реквизит_" + Счетчик;
Элемент = Форма.Элементы.Добавить(ИмяРеквизитаВопроса, Тип("ПолеФормы"), ЭлементГруппаВариантОтвета);
Элемент.Вид = ВидПоляФормы.ПолеПереключателя;
Элемент.ПоложениеЗаголовка = ПоложениеЗаголовкаЭлементаФормы.Нет;
Элемент.ПутьКДанным = ИмяРеквизитаВопроса;
Элемент.КоличествоКолонок = 1;
Элемент.ВысотаЭлемента = 1;
Элемент.ГоризонтальноеПоложение = ГоризонтальноеПоложениеЭлемента.Лево;
Элемент.ВидПереключателя = ВидПереключателя.Переключатель;
Элемент.КоличествоКолонок = 1;
Элемент.Подсказка = ВариантОтвета.Подсказка;
СписокВыбораЭлемента = Элемент.СписокВыбора;
СписокВыбораЭлемента.Добавить(ВариантОтвета.Ответ, ВариантОтвета.Представление);
КонецЦикла;
ЭлементГруппаПодсказка = Форма.Элементы.Добавить(ИмяВопроса + "_ГруппаПодсказка", Тип("ГруппаФормы"),
ЭлементГруппаВариантыОтветов);
ЭлементГруппаПодсказка.Вид = ВидГруппыФормы.ОбычнаяГруппа;
ЭлементГруппаПодсказка.Отображение = ОтображениеОбычнойГруппы.Нет;
ЭлементГруппаПодсказка.Группировка = ГруппировкаПодчиненныхЭлементовФормы.Вертикальная;
ЭлементГруппаПодсказка.ОтображатьЗаголовок = Ложь;
ЭлементРасшифровка = Форма.Элементы.Добавить(
ИмяВопроса + "_РасшифровкаПодсказки", Тип("ДекорацияФормы"), ЭлементГруппаПодсказка);
ЭлементРасшифровка.АвтоМаксимальнаяШирина = Ложь;
ЭлементРасшифровка.РастягиватьПоГоризонтали = Истина;
ЭлементРасшифровка.ЦветТекста = ЦветаСтиля.ПоясняющийТекст;
Иначе
Элемент = Форма.Элементы.Добавить(ИмяВопроса, Тип("ПолеФормы"), ЭлементГруппаВопросКомментарий);
Элемент.Вид = ВидПоляФормы.ПолеПереключателя;
Элемент.ПоложениеЗаголовка = ПоложениеЗаголовкаЭлементаФормы.Нет;
Элемент.ПутьКДанным = ИмяВопроса;
Элемент.КоличествоКолонок = 1;
Элемент.ВысотаЭлемента = 1;
Элемент.ГоризонтальноеПоложение = ГоризонтальноеПоложениеЭлемента.Лево;
Если СтрокаТаблицы.ВидПереключателя = Перечисления.ВидыПереключателяВАнкетах.Тумблер Тогда
Элемент.ВидПереключателя = ВидПереключателя.Тумблер;
Элемент.КоличествоКолонок = 0;
Элемент.ОдинаковаяШиринаКолонок = Ложь;
Иначе
Элемент.ВидПереключателя = ВидПереключателя.Переключатель;
Элемент.КоличествоКолонок = 1;
КонецЕсли;
Для Каждого ВариантОтвета Из ВариантыОтветовНаВопрос Цикл
СписокВыбораЭлемента = Элемент.СписокВыбора;
СписокВыбораЭлемента.Добавить(ВариантОтвета.Ответ,ВариантОтвета.Представление);
Элемент.СписокВыбора.Добавить(ВариантОтвета.Ответ, ВариантОтвета.Представление);
КонецЦикла;
КонецЕсли;
ИначеЕсли СтрокаТаблицы.ТипОтвета = Перечисления.ТипыОтветовНаВопрос.НесколькоВариантовИз Тогда
ВариантыОтветовНаВопрос = ВариантыОтветовНаВопрос(СтрокаТаблицы.ЭлементарныйВопрос, Форма);
@@ -294,9 +294,7 @@
Форма.Элементы[ИмяВопроса + "_Комментарий"].Доступность = Не БезОтвета;
КонецЕсли;
Если Вопрос.ТипОтвета = ПредопределенноеЗначение("Перечисление.ТипыОтветовНаВопрос.НесколькоВариантовИз")
Или (Вопрос.ТипОтвета = ПредопределенноеЗначение("Перечисление.ТипыОтветовНаВопрос.ОдинВариантИз")
И Вопрос.ВидПереключателя = ПредопределенноеЗначение("Перечисление.ВидыПереключателяВАнкетах.Переключатель")) Тогда
Если Вопрос.ТипОтвета = ПредопределенноеЗначение("Перечисление.ТипыОтветовНаВопрос.НесколькоВариантовИз") Тогда
Форма.Элементы[ИмяВопроса + "_Группа_Варианты"].Доступность = Не БезОтвета;
ЕстьОтвет = ЕстьОтветНаВопросСВыборомОтветов(Форма, Вопрос, ИмяВопроса);
Иначе
@@ -788,6 +788,11 @@
МодульРаботаСФайламиСлужебныйВМоделиСервиса.ПриОпределенииИспользованияРегламентныхЗаданий(ТаблицаИспользования);
КонецЕсли;
Если ОбщегоНазначения.ПодсистемаСуществует("СтандартныеПодсистемы.РегламентныеЗадания") Тогда
МодульРегламентныеЗаданияСлужебный = ОбщегоНазначения.ОбщийМодуль("РегламентныеЗаданияСлужебный");
МодульРегламентныеЗаданияСлужебный.ПриОпределенииИспользованияРегламентныхЗаданий(ТаблицаИспользования);
КонецЕсли;
КонецПроцедуры
#КонецОбласти
@@ -203,7 +203,8 @@
Разделители = "()/*-+%=<>, " + Символы.Таб + Символы.ПС;
ОткрывающихСкобок = 0;
ЭтоСтрокаВКавычках = Ложь;
ЭтоСтрокаВДвойныхКавычках = Ложь;
ЭтоСтрокаВОдинарныхКавычках = Ложь;
Операнд = "";
@@ -212,17 +213,23 @@
Символ = Сред(Формула, Индекс, 1);
ЭтоРазделитель = СтрНайти(Разделители, Символ) > 0;
Если ОткрывающихСкобок = 0 И Символ = """" Тогда
ЭтоСтрокаВКавычках = Не ЭтоСтрокаВКавычках;
Если ОткрывающихСкобок = 0 И Символ = """" И Не ЭтоСтрокаВОдинарныхКавычках Тогда
ЭтоСтрокаВДвойныхКавычках = Не ЭтоСтрокаВДвойныхКавычках;
ВсеЭлементы.Добавить(Символ);
Продолжить;
КонецЕсли;
Если ЭтоСтрокаВКавычках Тогда
Если ОткрывающихСкобок = 0 И Символ = "'" И Не ЭтоСтрокаВДвойныхКавычках Тогда
ЭтоСтрокаВОдинарныхКавычках = Не ЭтоСтрокаВОдинарныхКавычках;
ВсеЭлементы.Добавить(Символ);
Продолжить;
КонецЕсли;
Если ЭтоСтрокаВДвойныхКавычках Или ЭтоСтрокаВОдинарныхКавычках Тогда
ВсеЭлементы[ВсеЭлементы.ВГраница()] = ВсеЭлементы[ВсеЭлементы.ВГраница()] + Символ;
Продолжить;
КонецЕсли;
Если Символ = "[" Тогда
ОткрывающихСкобок = ОткрывающихСкобок + 1;
КонецЕсли;
@@ -45,7 +45,7 @@
Процедура ПриДобавленииПодсистемы(Описание) Экспорт
Описание.Имя = "СтандартныеПодсистемы";
Описание.Версия = "3.1.10.329";
Описание.Версия = "3.1.10.344";
Описание.ИдентификаторИнтернетПоддержки = "SSL";
Описание.РежимВыполненияОтложенныхОбработчиков = "Параллельно";
Описание.ПараллельноеОтложенноеОбновлениеСВерсии = "2.3.3.0";
@@ -1768,7 +1768,7 @@
Если ТипЗнч(Модуль) <> Тип("ОбщийМодуль") Тогда
ВызватьИсключение(СтроковыеФункцииКлиентСервер.ПодставитьПараметрыВСтроку(
НСтр("ru = 'Неверное значение параметра %1 в %2. Общий модуль ""%1"" не существует.'"),
НСтр("ru = 'Неверное значение параметра %1 в %2. Общий модуль ""%3"" не существует.'"),
"Имя", "ОбщегоНазначения.ОбщийМодуль", Имя),
КатегорияОшибки.ОшибкаКонфигурации);
КонецЕсли;
@@ -6070,6 +6070,20 @@
// безопасный режим выполнения кода и безопасный режим разделения данных для всех разделителей,
// присутствующих в составе конфигурации.
//
// Для выполняемого кода так же применяются дополнительные ограничения, запрещается:
//
// 1) Вызов методов:
// - Выполнить
// - Вычислить
// - ЗафиксироватьТранзакцию
// - СократитьЖурналРегистрации
// - УстановитьИспользованиеСобытияЖурналаРегистрации
// - ЗапуститьПриложение
//
// 2) Вызов общих модулей и свойств глобального контекста:
// - ДлительныеОперации
// - ПользователиИнформационнойБазы
//
// Параметры:
// Алгоритм - Строка - алгоритм на встроенном языке "1С:Предприятия".
// Параметры - Произвольный - контекст, который требуется для выполнения алгоритма.
@@ -6103,13 +6117,44 @@
КонецЦикла;
Попытка
Если ТранзакцияАктивна() Тогда
Выполнить Алгоритм;
Иначе
НачатьТранзакцию();
Попытка
Выполнить Алгоритм;
ОтменитьТранзакцию();
Исключение
ОтменитьТранзакцию();
ВызватьИсключение;
КонецПопытки;
КонецЕсли;
Исключение
ИнформацияОбОшибке = ИнформацияОбОшибке();
Уточнение = ОбщегоНазначенияКлиентСервер.УточнениеИсключения(ИнформацияОбОшибке);
ВызватьИсключение(Уточнение.Текст, КатегорияОшибки.ОшибкаВнешнегоИсточникаДанных ,,, ИнформацияОбОшибке);
КонецПопытки;
КонецПроцедуры
// Вычисляет переданное выражение, предварительно устанавливая безопасный режим выполнения кода
// и безопасный режим разделения данных для всех разделителей, присутствующих в составе конфигурации.
//
// Для выполняемого кода так же применяются дополнительные ограничения, запрещается:
//
// 1) Вызов методов:
// - Выполнить
// - Вычислить
// - ЗафиксироватьТранзакцию
// - СократитьЖурналРегистрации
// - УстановитьИспользованиеСобытияЖурналаРегистрации
// - ЗапуститьПриложение
//
// 2) Вызов общих модулей и свойств глобального контекста:
// - ДлительныеОперации
// - ПользователиИнформационнойБазы
//
// Параметры:
// Выражение - Строка - выражение на встроенном языке 1С:Предприятия.
// Параметры - Произвольный - контекст, который требуется для вычисления выражения.
@@ -6150,7 +6195,26 @@
КонецЦикла;
Возврат Вычислить(Выражение);
Попытка
Если ТранзакцияАктивна() Тогда
Результат = Вычислить(Выражение);
Иначе
НачатьТранзакцию();
Попытка
Результат = Вычислить(Выражение);
ОтменитьТранзакцию();
Исключение
ОтменитьТранзакцию();
ВызватьИсключение;
КонецПопытки;
КонецЕсли;
Возврат Результат;
Исключение
ИнформацияОбОшибке = ИнформацияОбОшибке();
Уточнение = ОбщегоНазначенияКлиентСервер.УточнениеИсключения(ИнформацияОбОшибке);
ВызватьИсключение(Уточнение.Текст, КатегорияОшибки.ОшибкаВнешнегоИсточникаДанных ,,, ИнформацияОбОшибке);
КонецПопытки;
КонецФункции
@@ -10332,7 +10396,7 @@
КонецЕсли;
Если ТекстыОшибок.Количество() > 0 Тогда
ВызватьИсключение СтрСоединить(ТекстыОшибок, Символы.ПС + "-----------------------" + Символы.ПС);
ВызватьИсключение СтрСоединить(ТекстыОшибок, Символы.ПС + Символы.ПС);
КонецЕсли;
КонецПроцедуры
@@ -127,7 +127,8 @@
// // НовыеНастройкиКД - НастройкиКомпоновкиДанных, Неопределено
// // НовыеПользовательскиеНастройкиКД - ПользовательскиеНастройкиКомпоновкиДанных, Неопределено
// //
// Процедура ПередЗагрузкойНастроекВКомпоновщик(Контекст, КлючСхемы, КлючВарианта, НовыеНастройкиКД, НовыеПользовательскиеНастройкиКД) Экспорт
// Процедура ПередЗагрузкойНастроекВКомпоновщик(Контекст, КлючСхемы, КлючВарианта, НовыеНастройкиКД,
// НовыеПользовательскиеНастройкиКД) Экспорт
//
// КонецПроцедуры
//
@@ -194,7 +194,7 @@
СравнениеСтрокНаПодобие.ДлинаНебольшихСтрок, СравнениеСтрокНаПодобие.ПроцентСовпаденияНебольшихСтрок,
СравнениеСтрокНаПодобие.ПроцентСовпаденияСтрок, СловаИсключения);
Возврат ИндексыСтрок;
Возврат СтрЗаменить(ИндексыСтрок, Символ(8239), "");
КонецФункции
@@ -220,6 +220,8 @@
Результат.Вставить("ПроцентСовпаденияНебольшихСтрок", 80);
Результат.Вставить("ДлинаНебольшихСтрок", 30);
Результат.Вставить("СловаИсключения", Новый Массив);
НечеткийПоиск = Неопределено;
Если ПодключитьКомпоненту Тогда
УстановитьОтключениеБезопасногоРежима(Истина);
НечеткийПоиск = ОбщегоНазначения.ПодключитьКомпонентуИзМакета("FuzzyStringMatchExtension",
@@ -227,10 +229,8 @@
Если НечеткийПоиск = Неопределено Тогда
ВызватьИсключение НСтр("ru = 'Не удалось подключить компоненту нечеткого поиска. Подробнее см. в журнале регистрации.'");
КонецЕсли;
Результат.Вставить("КомпонентаПоиска", НечеткийПоиск);
Иначе
Результат.Вставить("КомпонентаПоиска", Неопределено);
КонецЕсли;
Результат.Вставить("КомпонентаПоиска", НечеткийПоиск);
Возврат Результат;
@@ -206,6 +206,8 @@
ПараметрыДоставки.ЗапускЗафиксирован = ЗапускЗафиксирован;
ПараметрыДоставки.АдресРезультата = ОбщегоНазначенияКлиентСервер.СвойствоСтруктуры(ДополнительныеНастройки, "АдресРезультата");
Результат = ВыполнитьРассылку(ТаблицаОтчетов, ПараметрыДоставки, Рассылка, ПараметрыЖурнала);
РегистрыСведений.СостоянияРассылокОтчетов.ЗафиксироватьРезультатВыполненияРассылки(Рассылка, ПараметрыДоставки);
@@ -386,10 +388,14 @@
ЗашифрованныеВложения = Новый Соответствие;
Для Каждого Вложение Из ВложенияПолучателя Цикл
МодульЭлектроннаяПодпись = ОбщегоНазначения.ОбщийМодуль("ЭлектроннаяПодпись");
Попытка
ВложениеДвоичныеДанные = МодульЭлектроннаяПодпись.Зашифровать(
Новый ДвоичныеДанные(Вложение.Значение), ПараметрыДоставки.СертификатДляШифрования);
Исключение
ОбработатьОшибкуПриШифровании(ПараметрыДоставки.АдресРезультата, ПараметрыДоставки.СертификатДляШифрования, ИнформацияОбОшибке(), ПараметрыЖурнала);
ВызватьИсключение;
КонецПопытки;
ВложениеДвоичныеДанные.Записать(Вложение.Значение);
КоличествоСимволовДоРасширения = СтрНайти(Вложение.Ключ, ".", НаправлениеПоиска.СКонца);
ИмяЗашифрованногоФайла = Лев(Вложение.Ключ, КоличествоСимволовДоРасширения-1) + " " + НСтр(
"ru = '(Необходимо расшифровать)'") + Сред(Вложение.Ключ, КоличествоСимволовДоРасширения);
@@ -403,7 +409,7 @@
КонецЕсли;
// Архивация вложений.
АрхивацияВложений(ВложенияПолучателя, ПараметрыДоставки, СтрокаПолучатель.Значение);
АрхивацияВложений(ВложенияПолучателя, ПараметрыДоставки, СтрокаПолучатель.Значение, ПараметрыЖурнала);
Иначе
ВложенияПолучателя = Новый Массив;
@@ -488,10 +494,14 @@
ЗашифрованныеВложения = Новый Соответствие;
Для Каждого Вложение Из ОбщиеВложения Цикл
МодульЭлектроннаяПодпись = ОбщегоНазначения.ОбщийМодуль("ЭлектроннаяПодпись");
Попытка
ВложениеДвоичныеДанные = МодульЭлектроннаяПодпись.Зашифровать(
Новый ДвоичныеДанные(Вложение.Значение), ПараметрыДоставки.СертификатДляШифрования);
Исключение
ОбработатьОшибкуПриШифровании(ПараметрыДоставки.АдресРезультата, ПараметрыДоставки.СертификатДляШифрования, ИнформацияОбОшибке(), ПараметрыЖурнала);
ВызватьИсключение;
КонецПопытки;
ВложениеДвоичныеДанные.Записать(Вложение.Значение);
КоличествоСимволовДоРасширения = СтрНайти(Вложение.Ключ, ".", НаправлениеПоиска.СКонца);
ИмяЗашифрованногоФайла = Лев(Вложение.Ключ, КоличествоСимволовДоРасширения-1) + " " + НСтр(
"ru = '(Необходимо расшифровать)'") + Сред(Вложение.Ключ, КоличествоСимволовДоРасширения);
@@ -503,7 +513,7 @@
КонецЕсли;
// Архивация вложений.
АрхивацияВложений(ОбщиеВложения, ПараметрыДоставки, ПараметрыДоставки.КаталогВременныхФайлов);
АрхивацияВложений(ОбщиеВложения, ПараметрыДоставки, ПараметрыДоставки.КаталогВременныхФайлов, ПараметрыЖурнала);
Иначе
ОбщиеВложения = Новый Массив;
@@ -863,6 +873,10 @@
Процедура ВыполнитьРассылкиВФоновомЗадании(ПараметрыВыполнения, АдресРезультата) Экспорт
МассивРассылок = ПараметрыВыполнения.МассивРассылок;
ПредварительныеНастройки = ПараметрыВыполнения.ПредварительныеНастройки;
Если ПредварительныеНастройки = Неопределено Тогда
ПредварительныеНастройки = Новый Структура;
КонецЕсли;
ПредварительныеНастройки.Вставить("АдресРезультата", АдресРезультата);
// Выбираем все рассылки, включая вложенные, исключая группы.
Запрос = Новый Запрос;
@@ -3763,7 +3777,7 @@
// ПараметрыДоставки - см. ВыполнитьРассылку.ПараметрыДоставки
// КаталогВременныхФайлов - Строка - каталог, в который будет выполнена архивация.
//
Процедура АрхивацияВложений(Вложения, ПараметрыДоставки, КаталогВременныхФайлов)
Процедура АрхивацияВложений(Вложения, ПараметрыДоставки, КаталогВременныхФайлов, ПараметрыЖурнала)
Если Не ПараметрыДоставки.Архивировать Тогда
Возврат;
КонецЕсли;
@@ -3797,8 +3811,13 @@
Если ПараметрыДоставки.УстановитьПаролиЗашифровать И ЗначениеЗаполнено(ПараметрыДоставки.СертификатДляШифрования) Тогда
МодульЭлектроннаяПодпись = ОбщегоНазначения.ОбщийМодуль("ЭлектроннаяПодпись");
Попытка
АрхивДвоичныеДанные = МодульЭлектроннаяПодпись.Зашифровать(Новый ДвоичныеДанные(ПолноеИмяФайла),
ПараметрыДоставки.СертификатДляШифрования);
Исключение
ОбработатьОшибкуПриШифровании(ПараметрыДоставки.АдресРезультата, ПараметрыДоставки.СертификатДляШифрования, ИнформацияОбОшибке(), ПараметрыЖурнала);
ВызватьИсключение;
КонецПопытки;
АрхивДвоичныеДанные.Записать(ПолноеИмяФайла);
КонецЕсли;
@@ -4444,6 +4463,37 @@
КонецФункции
Процедура ОбработатьОшибкуПриШифровании(АдресРезультата, СертификатДляШифрования, ИнформацияОбОшибке, ПараметрыЖурнала)
Уточнение = ОбщегоНазначенияКлиентСервер.УточнениеИсключения(ИнформацияОбОшибке);
МодульЭлектроннаяПодпись = ОбщегоНазначения.ОбщийМодуль("ЭлектроннаяПодпись");
ОшибкаПоКлассификатору = МодульЭлектроннаяПодпись.ОшибкаПоКлассификатору(Уточнение.Текст, Истина);
ЭтоИзвестнаяОшибка = ОшибкаПоКлассификатору <> Неопределено;
Если ЭтоИзвестнаяОшибка Тогда
СтрокиОшибки = Новый Массив;
СтрокиОшибки.Добавить(Уточнение.Текст);
Если ЗначениеЗаполнено(ОшибкаПоКлассификатору.Причина) Тогда
Причины = СтроковыеФункцииКлиентСервер.ПодставитьПараметрыВСтроку(НСтр("ru='Возможные причины: %1'"), ОшибкаПоКлассификатору.Причина);
СтрокиОшибки.Добавить(Причины);
КонецЕсли;
Если ЗначениеЗаполнено(ОшибкаПоКлассификатору.Решение) Тогда
Решение = СтроковыеФункцииКлиентСервер.ПодставитьПараметрыВСтроку(НСтр("ru='Рекомендации: %1'"), ОшибкаПоКлассификатору.Решение);
СтрокиОшибки.Добавить(Решение);
КонецЕсли;
ТекстОшибки = СтрСоединить(СтрокиОшибки, Символы.ПС);
ЗаписьЖурнала(ПараметрыЖурнала, УровеньЖурналаРегистрации.Ошибка, ТекстОшибки);
КонецЕсли;
Если АдресРезультата <> Неопределено И ЭтоАдресВременногоХранилища(АдресРезультата) Тогда
Результат = Новый Структура;
Результат.Вставить("ЕстьОшибкиПриШифровании", Истина);
Результат.Вставить("СертификатДляШифрования", СертификатДляШифрования);
ПоместитьВоВременноеХранилище(Результат, АдресРезультата);
КонецЕсли;
КонецПроцедуры
// Формирует строку способа получения рассылки
//
// Параметры:
@@ -259,8 +259,22 @@
ПоказатьОповещениеПользователя(,, Результат.Текст, БиблиотекаКартинок.РассылкаОтчетов, СтатусОповещенияПользователя.Информация);
Иначе
СтандартныеПодсистемыКлиент.ВывестиИнформациюОбОшибке(
Задание.ИнформацияОбОшибке);
Результат = ПолучитьИзВременногоХранилища(Задание.АдресРезультата);
Если Результат <> Неопределено И Результат.ЕстьОшибкиПриШифровании
И ОбщегоНазначенияКлиент.ПодсистемаСуществует("СтандартныеПодсистемы.ЭлектроннаяПодпись") Тогда
ДополнительныеДанные = Новый Структура;
ДополнительныеДанные.Вставить("Сертификат", Результат.СертификатДляШифрования);
ПараметрыФормы = Новый Структура;
ПараметрыФормы.Вставить("ЗаголовокПредупреждения", НСтр("ru = 'Не удалось выполнить рассылку отчетов'"));
ПараметрыФормы.Вставить("ТекстОшибкиСервер", ОбработкаОшибок.КраткоеПредставлениеОшибки(Задание.ИнформацияОбОшибке));
ПараметрыФормы.Вставить("ДополнительныеДанные", ДополнительныеДанные);
ПараметрыФормы.Вставить("ПоказатьТребуетсяПомощь", Истина);
ПараметрыФормы.Вставить("ПоказатьИнструкцию", Истина);
МодульЭлектроннаяПодписьКлиент = ОбщегоНазначенияКлиент.ОбщийМодуль("ЭлектроннаяПодписьКлиент");
МодульЭлектроннаяПодписьКлиент.ОткрытьФормуРасширенногоПредставленияОшибки(ПараметрыФормы);
Иначе
СтандартныеПодсистемыКлиент.ВывестиИнформациюОбОшибке(Задание.ИнформацияОбОшибке);
КонецЕсли;
КонецЕсли;
КонецПроцедуры
@@ -210,6 +210,7 @@
ПараметрыДоставки.Вставить("УстановитьПаролиЗашифровать", Ложь);
ПараметрыДоставки.Вставить("ОтчетыДляТекстаПисьма", Новый Соответствие);
ПараметрыДоставки.Вставить("ДеревоОтчетов", Неопределено);
ПараметрыДоставки.Вставить("АдресРезультата", Неопределено);
Возврат ПараметрыДоставки;
@@ -412,6 +412,27 @@
КонецПроцедуры
// См. ОчередьЗаданийПереопределяемый.ПриОпределенииИспользованияРегламентныхЗаданий.
Процедура ПриОпределенииИспользованияРегламентныхЗаданий(ТаблицаИспользования) Экспорт
ЗависимыеРегламентныеЗадания = РегламентныеЗаданияЗависимыеОтФункциональныхОпций();
ПараметрыОтбора = Новый Структура;
ПараметрыОтбора.Вставить("ДоступноВМоделиСервиса", Ложь);
ЗаданияОтключаемыеМоделиСервиса = ЗависимыеРегламентныеЗадания.Скопировать(ПараметрыОтбора ,"РегламентноеЗадание");
Для Каждого ОтключаемоеЗадание Из ЗаданияОтключаемыеМоделиСервиса Цикл
РегламентноеЗадание = ОтключаемоеЗадание.РегламентноеЗадание; // ОбъектМетаданныхРегламентноеЗадание
Если ТаблицаИспользования.Найти(РегламентноеЗадание.Имя, "РегламентноеЗадание") <> Неопределено Тогда
Продолжить;
КонецЕсли;
НоваяСтрока = ТаблицаИспользования.Добавить();
НоваяСтрока.РегламентноеЗадание = РегламентноеЗадание.Имя;
НоваяСтрока.Использование = Ложь;
КонецЦикла;
КонецПроцедуры
#КонецОбласти
#Область СлужебныеПроцедурыИФункции
@@ -32,7 +32,7 @@
// При этом пометка нескольких строк будет невозможна, а выбирать можно по двойному клик по строке.
// * ВыбиратьСсылки - Булево - по умолчанию Ложь. Укажите Истина, чтобы в возвращаемом значении вместо
// полных имен выбранных метаданных содержались ссылки на их идентификаторы,
// см. ОбщегоНазначения.ИдентификаторыОбъектовМетаданных.
// смотри ОбщегоНазначения.ИдентификаторыОбъектовМетаданных.
// * ВыбиратьКоллекцииКогдаВыбраныВсеОбъекты - Булево - по умолчанию Ложь. При группировке объектов по видам,
// укажите Истина, чтобы в возвращаемое значение включать также типы объектов метаданных
// (Конфигурация, Справочники, Документы...), если у них выбраны все подчиненные строки.
@@ -89,13 +89,13 @@
КонецЕсли;
// Создание колонок в динамическом списке
РеквизитСписокСостояние = Форма.Элементы.Вставить("СостояниеОригиналПолучен",Тип("ПолеФормы"),Список,Расположение);
РеквизитСписокСостояние.Вид = ВидПоляФормы.ПолеКартинки;
РеквизитСписокСостояние.ПоложениеЗаголовка = ПоложениеЗаголовкаЭлементаФормы.Нет;
РеквизитСписокСостояние.КартинкаЗначений = БиблиотекаКартинок.КоллекцияПиктограммНаличиеОригиналаПервичногоДокумента;
РеквизитСписокСостояние.КартинкаШапки = БиблиотекаКартинок.СостояниеОригиналаПервичногоДокументаОригиналПолучен;
РеквизитСписокСостояние.Заголовок = НСтр("ru='Состояние оригинал получен'");
РеквизитСписокСостояние.ПутьКДанным = Список.Имя + ".СостояниеОригиналПолучен";
РеквизитСписокСостояниеПолучен = Форма.Элементы.Вставить("СостояниеОригиналПолучен",Тип("ПолеФормы"),Список,Расположение);
РеквизитСписокСостояниеПолучен.Вид = ВидПоляФормы.ПолеКартинки;
РеквизитСписокСостояниеПолучен.ПоложениеЗаголовка = ПоложениеЗаголовкаЭлементаФормы.Нет;
РеквизитСписокСостояниеПолучен.КартинкаЗначений = БиблиотекаКартинок.КоллекцияПиктограммНаличиеОригиналаПервичногоДокумента;
РеквизитСписокСостояниеПолучен.КартинкаШапки = БиблиотекаКартинок.СостояниеОригиналаПервичногоДокументаОригиналПолучен;
РеквизитСписокСостояниеПолучен.Заголовок = НСтр("ru='Состояние оригинал получен'");
РеквизитСписокСостояниеПолучен.ПутьКДанным = Список.Имя + ".СостояниеОригиналПолучен";
РеквизитСписокСостояние = Форма.Элементы.Вставить("СостояниеОригиналаПервичногоДокумента",Тип("ПолеФормы"),Список,Расположение);
РеквизитСписокСостояние.Вид = ВидПоляФормы.ПолеНадписи;
@@ -104,6 +104,8 @@
РеквизитСписокСостояние.ПутьКДанным = Список.Имя + ".СостояниеОригиналаПервичногоДокумента";
Если Не ПраваНаИзменениеСостояния() Тогда
РеквизитСписокСостояниеПолучен.Доступность = Ложь;
РеквизитСписокСостояние.Доступность = Ложь;
Возврат;
КонецЕсли;
@@ -97,29 +97,15 @@
ОжидаемаяЧастьИмени = "Имя";
КонецЕсли;
Для Каждого ЧастьИмени Из ЧастиПолногоИмени Цикл
Для Индекс = 0 По ЧастиПолногоИмени.ВГраница() Цикл
Если ОжидаемаяЧастьИмени = "" Тогда
Прервать;
КонецЕсли;
ЧастьИмени = ЧастиПолногоИмени[Индекс];
ТекущаяЧастьИмени = ОжидаемаяЧастьИмени;
Если НРег(ЧастьИмени) = "оглы" // @Non-NLS-1
Или НРег(ЧастьИмени) = "улы" // @Non-NLS-1
Или НРег(ЧастьИмени) = "уулу" // @Non-NLS-1
Или НРег(ЧастьИмени) = "кызы" // @Non-NLS-1
Или НРег(ЧастьИмени) = "гызы" // @Non-NLS-1
Или НРег(ЧастьИмени) = "угли" Тогда // @Non-NLS-1
ТекущаяЧастьИмени = "Отчество";
Если ФамилияВНачале Тогда
ОжидаемаяЧастьИмени = "";
Иначе
ОжидаемаяЧастьИмени = "Фамилия";
КонецЕсли;
ИначеЕсли ТекущаяЧастьИмени = "Фамилия" Тогда
Если ТекущаяЧастьИмени = "Фамилия" Тогда
Если ФамилияВНачале Тогда
ОжидаемаяЧастьИмени = "Имя";
@@ -142,6 +128,24 @@
КонецЕсли;
Если ТекущаяЧастьИмени = "Отчество" Или Не ФамилияВНачале И ТекущаяЧастьИмени = "Фамилия" И Индекс < ЧастиПолногоИмени.ВГраница() Тогда
Если НРег(ЧастьИмени) = "оглы" // @Non-NLS-1
Или НРег(ЧастьИмени) = "улы" // @Non-NLS-1
Или НРег(ЧастьИмени) = "уулу" // @Non-NLS-1
Или НРег(ЧастьИмени) = "кызы" // @Non-NLS-1
Или НРег(ЧастьИмени) = "гызы" // @Non-NLS-1
Или НРег(ЧастьИмени) = "угли" Тогда // @Non-NLS-1
ТекущаяЧастьИмени = "Отчество";
Если ФамилияВНачале Тогда
ОжидаемаяЧастьИмени = "";
Иначе
ОжидаемаяЧастьИмени = "Фамилия";
КонецЕсли;
КонецЕсли;
КонецЕсли;
Результат[ТекущаяЧастьИмени] = Результат[ТекущаяЧастьИмени] + ?(ЗначениеЗаполнено(Результат[ТекущаяЧастьИмени]), " ", "") + ЧастьИмени;
КонецЦикла;
@@ -1794,6 +1794,15 @@
ОписаниеОшибки = ПараметрыСоздания.ОписаниеОшибки;
Если Не ИспользоватьЭлектроннуюПодписьВМоделиСервиса Тогда
Если РезультатСтруктура <> Неопределено Тогда
СвойстваПодписи = ЭлектроннаяПодписьСлужебный.СвойстваПодписиИзДвоичныхДанных(ПодписьДляПроверки, Истина);
Если ЗначениеЗаполнено(СвойстваПодписи.Сертификат) Тогда
Сертификат = СвойстваПодписи.Сертификат;
СвойстваСертификата = СвойстваСертификата(Сертификат);
СвойстваПодписи.Сертификат = Сертификат;
СвойстваПодписи.Отпечаток = СвойстваСертификата.Отпечаток;
СвойстваПодписи.КомуВыданСертификат = СвойстваСертификата.КомуВыдан;
КонецЕсли;
ЗаполнитьЗначенияСвойств(РезультатСтруктура, СвойстваПодписи);
ЗаполнитьРезультатПроверкиПодписи(ОписаниеОшибки, РезультатСтруктура, Истина);
КонецЕсли;
Если ВызыватьИсключение Тогда
@@ -2508,11 +2517,15 @@
// Параметры:
// Данные - ДвоичныеДанные
// Сертификат - СправочникСсылка.СертификатыКлючейЭлектроннойПодписиИШифрования
// АлгоритмШифрования - Строка - (необязательный) - содержит явное название ("Магма", "Кузнечик", "ГОСТ 28147-89"),
// OID или представление алгоритма шифрования,которым будет переопределен алгоритм шифрования по умолчанию.
// Например, если передается представление "Магма", то это наименование будет преобразовано в название
// алгоритма шифрования той программы, которой выполняется шифрование.
//
// Возвращаемое значение:
// ДвоичныеДанные
//
Функция Зашифровать(Данные, Сертификат) Экспорт
Функция Зашифровать(Данные, Сертификат, АлгоритмШифрования = "") Экспорт
Если Не ОбщиеНастройки().ИспользоватьШифрование Тогда
ВызватьИсключение НСтр("ru = 'Шифрование недоступно.'");
@@ -2559,6 +2572,8 @@
ПараметрыСоздания = ЭлектроннаяПодписьСлужебный.ПараметрыСозданияМенеджераКриптографии();
ПараметрыСоздания.Программа = ЗначенияРеквизитов.Программа;
ПараметрыСоздания.ОписаниеОшибки = "";
ПараметрыСоздания.АлгоритмШифрования = АлгоритмШифрования;
МенеджерКриптографии = ЭлектроннаяПодписьСлужебный.МенеджерКриптографии("Шифрование",
ПараметрыСоздания);
@@ -2600,6 +2615,7 @@
ПараметрыСоздания = ЭлектроннаяПодписьСлужебный.ПараметрыСозданияМенеджераКриптографии();
ПараметрыСоздания.ОписаниеОшибки = "";
ПараметрыСоздания.АлгоритмПодписи = АлгоритмПодписи;
ПараметрыСоздания.АлгоритмШифрования = АлгоритмШифрования;
МенеджерКриптографии = ЭлектроннаяПодписьСлужебный.МенеджерКриптографии("Шифрование", ПараметрыСоздания);
@@ -560,6 +560,10 @@
// * ПрекратитьВыполнение - Произвольный - если свойство существует и в процессе асинхронного выполнения возникает
// ошибка, выполнение прекращается без отображения формы операции или с закрытием этой формы,
// если она была открыта.
// * АлгоритмШифрования - Строка - (необязательный) - содержит явное название ("Магма", "Кузнечик", "ГОСТ 28147-89"),
// OID или представление алгоритма шифрования,которым будет переопределен алгоритм шифрования
// по умолчанию. Например, если передается представление "Магма", то это наименование будет
// преобразовано в название алгоритма шифрования той программы, которой выполняется шифрование.
//
// Вариант 1.
// * Данные - ДвоичныеДанные - данные для шифрования.
@@ -1763,10 +1767,36 @@
#Область ДляВызоваИзДругихПодсистем
// Открывает форму расширенного представления ошибки.
// Открывает форму диагностики с причинами и вариантами решения известных проблем при работе с электронной подписью.
// Эти рекомендации автоматически загружаются из классификатора через Интернет. Также в форме можно отправить информацию
// в службу технической поддержки. Рекомендуется вызывать эту функцию вместо вывода пользователю технологического
// сообщения об ошибке во всех случаях после неуспешной операции с электронной подписью.
//
// Параметры:
// ПараметрыФормы - Структура
// ПараметрыФормы - см. ПараметрыФормыРасширенногоПредставленияОшибки.
// ФормаВладелец - ФормаКлиентскогоПриложения - владелец формы.
// ОповещениеОЗавершении - ОписаниеОповещения - оповещение о закрытии формы ошибки.
//
// Пример:
// ПараметрыФормы = ПараметрыФормыРасширенногоПредставленияОшибки();
// ПараметрыФормы.ЗаголовокПредупреждения = НСтр("ru = 'Не удалось выполнить рассылку отчетов'");
// ПараметрыФормы.ТекстОшибкиСервер = ТекстОшибкиШифрованияНаСервере;
// ПараметрыФормы.ДополнительныеДанные.Вставить("Сертификат", Результат.СертификатДляШифрования);
// ПараметрыФормы.ПоказатьТребуетсяПомощь = Истина;
// ПараметрыФормы.ПоказатьИнструкцию = Истина;
// МодульЭлектроннаяПодписьКлиент = ОбщегоНазначенияКлиент.ОбщийМодуль("ЭлектроннаяПодписьКлиент");
// МодульЭлектроннаяПодписьКлиент.ОткрытьФормуРасширенногоПредставленияОшибки(ПараметрыФормы);
//
Процедура ОткрытьФормуРасширенногоПредставленияОшибки(ПараметрыФормы, ФормаВладелец = Неопределено, ОповещениеОЗавершении = Неопределено) Экспорт
ЭлектроннаяПодписьСлужебныйКлиент.ОткрытьФормуРасширенногоПредставленияОшибки(ПараметрыФормы, ФормаВладелец, ОповещениеОЗавершении);
КонецПроцедуры
// Конструктор параметров формы расширенного представления ошибки.
//
// Возвращаемое значение:
// Структура - параметры формы расширенного представления ошибки:
// * ЗаголовокПредупреждения - Строка - заголовок формы ошибки.
// * ИнформацияДляПоддержки - ФорматированнаяСтрока - заголовок элемента для обращения в техподдержку.
// * ТекстОшибкиКлиент - Строка - текст, по которому будет производиться поиск причин и решений на клиенте,
@@ -1774,25 +1804,45 @@
// или текст общей ошибки, если она одна.
// * ТекстОшибкиСервер - Строка - текст, по которому будет производиться поиск причин и решений на сервере
// заполняется в случае, если важен контекст возникновения ошибки.
// * ДополнительныеДанные - Структура
// * ДополнительныеДанные - Структура:
// ** ДанныеПодписи - Строка - (необязательный) адрес данных подписи во временном хранилище, если ошибка подписи.
// ** Сертификат - СправочникСсылка.СертификатыКлючейЭлектроннойПодписиИШифрования - (необязательный) ссылка
// на сертификат, с которым связана ошибка.
// ** ДанныеСертификата - Строка - (необязательный) адрес данных сертификата во временном хранилище.
// * ПоказатьТребуетсяПомощь - Булево - показать группу Требуется помощь и кнопки установки расширения и настройки приложений..
// * ПоказатьТребуетсяПомощь - Булево - показать группу Требуется помощь и кнопки установки расширения и настройки приложений.
// * ПоказатьПереходКНастройкеПрограмм - Булево - если ПоказатьТребуетсяПомощь = Истина,
// показать кнопку для перехода к настройке приложений для работы с электронной подписью.
// * ПоказатьУстановкуРасширения - Булево - если ПоказатьТребуетсяПомощь = Истина,
// показать кнопку для установки расширения криптографии.
// * ПоказатьИнструкцию - Булево - если ПоказатьТребуетсяПомощь = Истина, показывать гиперссылку Требуется помощь.
// ФормаВладелец - ФормаКлиентскогоПриложения - владелец формы.
// ОповещениеОЗавершении - ОписаниеОповещения - оповещение о закрытии формы ошибки.
// * ТекстДополнительнойСсылки - Строка - заголовок дополнительной ссылки, по которой будет запускаться
// обработчик оповещения ОбработчикДополнительнойСсылки, с результатом типа Структура:
// # НавигационнаяСсылка - Строка - ссылка, указанная в ТекстДополнительнойСсылки.
// # ПараметрОбработчикаДополнительнойСсылки - описан ниже.
// * ОбработчикДополнительнойСсылки - Строка - имя обработчика оповещения из общего модуля,
// например, "ОбработкаНеисправностейБЭД.ОткрытьМастерДиагностики".
// * ПараметрОбработчикаДополнительнойСсылки - Произвольный - параметр обработчика ОбработчикДополнительнойСсылки.
//
Процедура ОткрытьФормуРасширенногоПредставленияОшибки(ПараметрыФормы, ФормаВладелец = Неопределено, ОповещениеОЗавершении = Неопределено) Экспорт
Функция ПараметрыФормыРасширенногоПредставленияОшибки() Экспорт
ЭлектроннаяПодписьСлужебныйКлиент.ОткрытьФормуРасширенногоПредставленияОшибки(ПараметрыФормы, ФормаВладелец, ОповещениеОЗавершении);
Структура = Новый Структура;
Структура.Вставить("ЗаголовокПредупреждения", "");
Структура.Вставить("ИнформацияДляПоддержки", "");
Структура.Вставить("ТекстОшибкиКлиент", "");
Структура.Вставить("ТекстОшибкиСервер", "");
Структура.Вставить("ДополнительныеДанные");
Структура.Вставить("ПоказатьТребуетсяПомощь", Ложь);
Структура.Вставить("ПоказатьПереходКНастройкеПрограмм", Ложь);
Структура.Вставить("ПоказатьУстановкуРасширения", Ложь);
Структура.Вставить("ПоказатьИнструкцию", Ложь);
КонецПроцедуры
Структура.Вставить("ТекстДополнительнойСсылки", "");
Структура.Вставить("ОбработчикДополнительнойСсылки", "");
Структура.Вставить("ПараметрОбработчикаДополнительнойСсылки");
Возврат Структура;
КонецФункции
// Следующие процедуры и функции предназначены для интеграции с 1С:Библиотека электронных документов.
@@ -241,7 +241,8 @@
Модель = Информация.Получить("model");
СвойстваТокена.Модель = МодельТокена(Модель, ТипУстройства);
СвойстваТокена.Представление = СтроковыеФункцииКлиентСервер.ПодставитьПараметрыВСтроку(
НСтр("ru = '%1 (серийный номер %2)'"), СвойстваТокена.Модель, СвойстваТокена.СерийныйНомер);
НСтр("ru = '%1 (серийный номер %2)'"), СвойстваТокена.Модель,
ПредставлениеСерийногоНомера(ТипУстройства, СвойстваТокена.СерийныйНомер));
Попытка
СписокМеханизмов = Ждать ОбъектКомпоненты.PKCS11ПолучитьСписокПоддерживаемыхМеханизмовАсинх(ЗначениеСлота);
@@ -387,6 +388,15 @@
Возврат "rutoken"
КонецФункции
Функция ПредставлениеСерийногоНомера(ТипУстройства, СерийныйНомер)
Если ТипУстройства = Рутокен() Тогда
Возврат Формат(ЧислоИзШестнадцатеричнойСтроки("0x" + СерийныйНомер), "ЧГ=0;");
КонецЕсли;
Возврат СерийныйНомер;
КонецФункции
Функция РекомендацииДляУстановкиБиблиотекТокена(ТипУстройства, Библиотеки)
Если НРег(ТипУстройства) = Рутокен() Тогда
@@ -187,12 +187,12 @@
// * АдресВнутренний - Строка - идентификатор для поиска в базе
// * АдресВнешний - Строка - адрес ресурса для скачивания
//
Функция АдресСпискаОтзываВнутренний(ИмяИздателя, Сертификат) Экспорт
Функция АдресСпискаОтзываВнутренний(ИмяИздателя, Сертификат, КаталогиСписковОтзываУЦ) Экспорт
Результат = Новый Структура("АдресВнешний, АдресВнутренний");
ИмяИздателя = СтрЗаменить(ИмяИздателя, " ", "_");
ИмяИздателя = СокрЛП(СтрСоединить(СтрРазделить(ИмяИздателя, "!*'();:@&=+$,/?%#[]\|<>", Истина), ""));
ИмяИздателя = СокрЛП(СтрСоединить(СтрРазделить(ИмяИздателя, "!*'();«»:@&=+$,/?%#[]\|<>", Истина), ""));
ИмяИздателя = ОбщегоНазначенияКлиентСервер.ЗаменитьНедопустимыеСимволыВИмениФайла(ИмяИздателя, "");
@@ -211,11 +211,10 @@
// Локализация
Если ИмяИздателя <> "federalnaya_nalogovaya_sluzhba" Тогда
Возврат Результат;
КонецЕсли;
Массив = СтрРазделить(КаталогиСписковОтзываУЦ, ";");
Если Массив.Найти(ИмяИздателя) <> Неопределено Тогда
Результат.АдресВнешний = СтрШаблон("http://ca.1c.ru/crls/%1.zip", Результат.АдресВнутренний);
КонецЕсли;
// Конец Локализация
@@ -223,6 +222,28 @@
КонецФункции
Функция КаталогиСписковОтзываУЦ(АккредитованныеУдостоверяющиеЦентры) Экспорт
// Локализация
Если АккредитованныеУдостоверяющиеЦентры = Неопределено Тогда
Возврат "";
КонецЕсли;
КаталогиСписковОтзываУЦ = АккредитованныеУдостоверяющиеЦентры.ДругиеНастройки.Получить("КаталогиСписковОтзываУЦ");
Если КаталогиСписковОтзываУЦ = Неопределено Тогда
Возврат "federalnaya_nalogovaya_sluzhba";
КонецЕсли;
Если ЗначениеЗаполнено(КаталогиСписковОтзываУЦ) Тогда
Возврат КаталогиСписковОтзываУЦ;
КонецЕсли;
// Конец Локализация
Возврат "";
КонецФункции
// Возвращаемое значение:
// Неопределено, Структура - данные удостоверяющего центра:
// * Государственный - Булево
@@ -324,6 +345,142 @@
КонецПроцедуры
// Преобразование передаваемого названия алгоритма в зависимости от передаваемого представления.
//
// Параметры:
// АлгоритмШифрования - Строка
//
// Возвращаемое значение:
// Строка
//
Функция ПреобразованныйАлгоритмШифрования(АлгоритмШифрования) Экспорт
Результат = "";
// Локализация
Если ИменаАлгоритмовШифрованияГОСТ_Р_34_12_2015_Магма().Найти(АлгоритмШифрования) <> Неопределено
Или АлгоритмШифрования = "Магма" Тогда
Результат = "1.2.643.7.1.1.5.1.1";
ИначеЕсли ИменаАлгоритмовШифрованияГОСТ_Р_34_12_2015_Кузнечик().Найти(АлгоритмШифрования) <> Неопределено
Или АлгоритмШифрования = "Кузнечик" Тогда
Результат = "1.2.643.7.1.1.5.2.1";
ИначеЕсли ИменаАлгоритмовШифрованияГОСТ_28147_89().Найти(АлгоритмШифрования) <> Неопределено Тогда
Результат = "1.2.643.2.2.21";
Иначе
Результат = АлгоритмШифрования;
КонецЕсли;
// Конец Локализация
Если ПустаяСтрока(Результат) Тогда
Результат = АлгоритмШифрования;
КонецЕсли;
Возврат Результат;
КонецФункции
Процедура ПриУстановкеПараметровМенеджераКриптографии(ОписаниеПрограммы, Менеджер, АлгоритмШифрования, Результат) Экспорт
// Локализация
Результат = ВыполненОбходНарушенияОбратнойСовместимостиВVipNetCSP_4_4(ОписаниеПрограммы, Менеджер, АлгоритмШифрования);
// Конец Локализация
КонецПроцедуры
Процедура ПриУстановкеНаборовАлгоритмовДляСозданияПодписи(Наборы) Экспорт
// Локализация
// ГОСТ 94
Свойства = ЭлектроннаяПодписьСлужебныйКлиентСервер.НовыйНаборАлгоритмовДляСозданияПодписи();
Свойства.ИдентификаторАлгоритмаОткрытогоКлюча = "1.2.643.2.2.20";
Свойства.ИдентификаторАлгоритмаПодписи = "1.2.643.2.2.4";
Свойства.ИменаАлгоритмаПодписи = ИменаАлгоритмовПодписиГОСТ_34_10_94();
Свойства.ИдентификаторАлгоритмаХеширования = "1.2.643.2.2.9";
Свойства.ИменаАлгоритмаХеширования = ИменаАлгоритмовХешированияГОСТ_34_11_94();
Свойства.ИмяАлгоритмаПодписиXML = "http://www.w3.org/2001/04/xmldsig-more#gostr341094-gostr3411";
Свойства.ИмяАлгоритмаХешированияXML = "http://www.w3.org/2001/04/xmldsig-more#gostr3411";
Наборы.Добавить(Свойства);
// ГОСТ 2001
Свойства = ЭлектроннаяПодписьСлужебныйКлиентСервер.НовыйНаборАлгоритмовДляСозданияПодписи();
Свойства.ИдентификаторАлгоритмаОткрытогоКлюча = "1.2.643.2.2.19";
Свойства.ИдентификаторАлгоритмаПодписи = "1.2.643.2.2.3";
Свойства.ИменаАлгоритмаПодписи = ИменаАлгоритмовПодписиГОСТ_34_10_2001();
Свойства.ИдентификаторАлгоритмаХеширования = "1.2.643.2.2.9";
Свойства.ИменаАлгоритмаХеширования = ИменаАлгоритмовХешированияГОСТ_34_11_94();
Свойства.ИмяАлгоритмаПодписиXML = "http://www.w3.org/2001/04/xmldsig-more#gostr34102001-gostr3411";
Свойства.ИмяАлгоритмаХешированияXML = "http://www.w3.org/2001/04/xmldsig-more#gostr3411";
Наборы.Добавить(Свойства);
// ГОСТ 2012/256
Свойства = ЭлектроннаяПодписьСлужебныйКлиентСервер.НовыйНаборАлгоритмовДляСозданияПодписи();
Свойства.ИдентификаторАлгоритмаОткрытогоКлюча = "1.2.643.7.1.1.1.1";
Свойства.ИдентификаторАлгоритмаПодписи = "1.2.643.7.1.1.3.2";
Свойства.ИменаАлгоритмаПодписи = ИменаАлгоритмовПодписиГОСТ_34_10_2012_256();
Свойства.ИдентификаторАлгоритмаОбмена = "1.2.643.7.1.1.6.1";
Свойства.ИдентификаторАлгоритмаХеширования = "1.2.643.7.1.1.2.2";
Свойства.ИменаАлгоритмаХеширования = ИменаАлгоритмовХешированияГОСТ_34_11_2012_256();
Свойства.ИмяАлгоритмаПодписиXML = "urn:ietf:params:xml:ns:cpxmlsec:algorithms:gostr34102012-gostr34112012-256";
Свойства.ИмяАлгоритмаХешированияXML = "urn:ietf:params:xml:ns:cpxmlsec:algorithms:gostr34112012-256";
Наборы.Добавить(Свойства);
// ГОСТ 2012/512
Свойства = ЭлектроннаяПодписьСлужебныйКлиентСервер.НовыйНаборАлгоритмовДляСозданияПодписи();
Свойства.ИдентификаторАлгоритмаОткрытогоКлюча = "1.2.643.7.1.1.1.2";
Свойства.ИдентификаторАлгоритмаПодписи = "1.2.643.7.1.1.3.3";
Свойства.ИменаАлгоритмаПодписи = ИменаАлгоритмовПодписиГОСТ_34_10_2012_512();
Свойства.ИдентификаторАлгоритмаОбмена = "1.2.643.7.1.1.6.2";
Свойства.ИдентификаторАлгоритмаХеширования = "1.2.643.7.1.1.2.3";
Свойства.ИменаАлгоритмаХеширования = ИменаАлгоритмовХешированияГОСТ_34_11_2012_512();
Свойства.ИмяАлгоритмаПодписиXML = "urn:ietf:params:xml:ns:cpxmlsec:algorithms:gostr34102012-gostr34112012-512";
Свойства.ИмяАлгоритмаХешированияXML = "urn:ietf:params:xml:ns:cpxmlsec:algorithms:gostr34112012-512";
Наборы.Добавить(Свойства);
// Конец Локализация
КонецПроцедуры
Процедура ПриУстановкеНаборовАлгоритмовШифрования(Наборы) Экспорт
// Локализация
// ГОСТ 28147-89
Свойства = ЭлектроннаяПодписьСлужебныйКлиентСервер.НовыйНаборАлгоритмовШифрования();
Свойства.ИдентификаторАлгоритмаШифрования = "1.2.643.2.2.21";
Свойства.ИменаАлгоритмаШифрования = ИменаАлгоритмовШифрованияГОСТ_28147_89();
Наборы.Добавить(Свойства);
// ГОСТ Р 34.12-2015 К
Свойства = ЭлектроннаяПодписьСлужебныйКлиентСервер.НовыйНаборАлгоритмовШифрования();
Свойства.ИдентификаторАлгоритмаШифрования = "1.2.643.7.1.1.5.2.1";
Свойства.ИменаАлгоритмаШифрования = ИменаАлгоритмовШифрованияГОСТ_Р_34_12_2015_Кузнечик();
Наборы.Добавить(Свойства);
// ГОСТ Р 34.12-2015 М
Свойства = ЭлектроннаяПодписьСлужебныйКлиентСервер.НовыйНаборАлгоритмовШифрования();
Свойства.ИдентификаторАлгоритмаШифрования = "1.2.643.7.1.1.5.1.1";
Свойства.ИменаАлгоритмаШифрования = ИменаАлгоритмовШифрованияГОСТ_Р_34_12_2015_Магма();
Наборы.Добавить(Свойства);
// Конец Локализация
КонецПроцедуры
Функция АктуальныеАлгоритмыПрограмм() Экспорт
Результат = Новый Массив;
// Локализация
Результат = ИменаАлгоритмовПодписиГОСТ_34_10_2012_256();
// Конец Локализация
Возврат Результат;
КонецФункции
// Локализация
#Область ШаблоныКонвертаXML
@@ -573,6 +730,93 @@
КонецФункции
// Для функции МенеджерКриптографииАлгоритмыУстановлены.
Функция ВыполненОбходНарушенияОбратнойСовместимостиВVipNetCSP_4_4(ОписаниеПрограммы, Менеджер, АлгоритмШифрования = "")
АлгоритмПодписи = Строка(ОписаниеПрограммы.АлгоритмПодписи);
АлгоритмХеширования = Строка(ОписаниеПрограммы.АлгоритмХеширования);
Если ПустаяСтрока(АлгоритмШифрования) Тогда
АлгоритмШифрования = ПреобразованныйАлгоритмШифрования(Строка(ОписаниеПрограммы.АлгоритмШифрования));
Иначе
АлгоритмШифрования = ПреобразованныйАлгоритмШифрования(АлгоритмШифрования);
КонецЕсли;
#Если ВебКлиент Тогда
Если ИменаАлгоритмовПодписиГОСТ_34_10_2012_256().Найти(АлгоритмПодписи) <> Неопределено Тогда
АлгоритмПодписи = "1.2.643.7.1.1.1.1"; // ГОСТ 34.10-2012 256
ИначеЕсли ИменаАлгоритмовПодписиГОСТ_34_10_2012_512().Найти(АлгоритмПодписи) <> Неопределено Тогда
АлгоритмПодписи = "1.2.643.7.1.1.1.2"; // ГОСТ 34.10-2012 512
КонецЕсли;
Если ИменаАлгоритмовХешированияГОСТ_34_11_2012_256().Найти(АлгоритмХеширования) <> Неопределено Тогда
АлгоритмХеширования = "1.2.643.7.1.1.2.2"; // ГОСТ 34.11-2012 256
ИначеЕсли ИменаАлгоритмовХешированияГОСТ_34_11_2012_512().Найти(АлгоритмХеширования) <> Неопределено Тогда
АлгоритмХеширования = "1.2.643.7.1.1.2.3"; // ГОСТ 34.11-2012 512
КонецЕсли;
#Иначе
Если Не (ОписаниеПрограммы.ИмяПрограммы = "Infotecs GOST 2012/512 Cryptographic Service Provider"
И ОписаниеПрограммы.ТипПрограммы = 77) И Не (ОписаниеПрограммы.ИмяПрограммы = "Infotecs GOST 2012/1024 Cryptographic Service Provider"
И ОписаниеПрограммы.ТипПрограммы = 78) Тогда
Возврат Ложь;
КонецЕсли;
#КонецЕсли
АлгоритмыУстановлены = Истина;
Попытка
Менеджер.АлгоритмПодписи = АлгоритмПодписи;
Менеджер.АлгоритмХеширования = АлгоритмХеширования;
Менеджер.АлгоритмШифрования = АлгоритмШифрования;
Исключение
АлгоритмыУстановлены = Ложь;
КонецПопытки;
Если АлгоритмыУстановлены Тогда
Возврат Истина;
КонецЕсли;
Если АлгоритмПодписи = "GOST 34.10-2012 256"
И АлгоритмХеширования = "GOST 34.11-2012 256" Тогда
АлгоритмПодписи = "GR 34.10-2012 256";
АлгоритмХеширования = "GR 34.11-2012 256";
ИначеЕсли АлгоритмПодписи = "GR 34.10-2012 256"
И АлгоритмХеширования = "GR 34.11-2012 256" Тогда
АлгоритмПодписи = "GOST 34.10-2012 256";
АлгоритмХеширования = "GOST 34.11-2012 256";
ИначеЕсли АлгоритмПодписи = "GOST 34.10-2012 512"
И АлгоритмХеширования = "GOST 34.11-2012 512" Тогда
АлгоритмПодписи = "GR 34.10-2012 512";
АлгоритмХеширования = "GR 34.11-2012 512";
ИначеЕсли АлгоритмПодписи = "GR 34.10-2012 512"
И АлгоритмХеширования = "GR 34.11-2012 512" Тогда
АлгоритмПодписи = "GOST 34.10-2012 512";
АлгоритмХеширования = "GOST 34.11-2012 512";
Иначе
Возврат Ложь;
КонецЕсли;
АлгоритмыУстановлены = Истина;
Попытка
Менеджер.АлгоритмПодписи = АлгоритмПодписи;
Менеджер.АлгоритмХеширования = АлгоритмХеширования;
Менеджер.АлгоритмШифрования = АлгоритмШифрования;
Исключение
АлгоритмыУстановлены = Ложь;
КонецПопытки;
Возврат АлгоритмыУстановлены;
КонецФункции
// Только для внутреннего использования.
//
// Параметры:
@@ -905,6 +1149,119 @@
Возврат "КриптоПро CSP";
КонецФункции
Функция ИменаАлгоритмовПодписиГОСТ_34_10_94()
Имена = Новый Массив;
Имена.Добавить("ГОСТ 34.10-94"); // Представление.
Имена.Добавить("GOST R 34.10-94");
Возврат Имена;
КонецФункции
Функция ИменаАлгоритмовПодписиГОСТ_34_10_2001()
Имена = Новый Массив;
Имена.Добавить("ГОСТ 34.10-2001"); // Представление.
Имена.Добавить("GOST R 34.10-2001");
Имена.Добавить("ECR3410-CP");
Возврат Имена;
КонецФункции
Функция ИменаАлгоритмовПодписиГОСТ_34_10_2012_256()
Имена = Новый Массив;
Имена.Добавить("ГОСТ 34.10-2012 256"); // Представление.
Имена.Добавить("GR 34.10-2012 256");
Имена.Добавить("GOST 34.10-2012 256");
Имена.Добавить("GOST R 34.10-12 256");
Имена.Добавить("GOST3410-12-256");
Возврат Имена;
КонецФункции
Функция ИменаАлгоритмовПодписиГОСТ_34_10_2012_512()
Имена = Новый Массив;
Имена.Добавить("ГОСТ 34.10-2012 512"); // Представление.
Имена.Добавить("GR 34.10-2012 512");
Имена.Добавить("GOST 34.10-2012 512");
Возврат Имена;
КонецФункции
Функция ИменаАлгоритмовХешированияГОСТ_34_11_94()
Имена = Новый Массив;
Имена.Добавить("ГОСТ 34.11-94"); // Представление.
Имена.Добавить("GOST R 34.11-94");
Имена.Добавить("RUS-HASH-CP");
Возврат Имена;
КонецФункции
Функция ИменаАлгоритмовХешированияГОСТ_34_11_2012_256()
Имена = Новый Массив;
Имена.Добавить("ГОСТ 34.11-2012 256"); // Представление.
Имена.Добавить("GR 34.11-2012 256");
Имена.Добавить("GOST 34.11-2012 256");
Имена.Добавить("GOST R 34.11-12 256");
Имена.Добавить("GOST3411-12-256");
Возврат Имена;
КонецФункции
Функция ИменаАлгоритмовХешированияГОСТ_34_11_2012_512()
Имена = Новый Массив;
Имена.Добавить("ГОСТ 34.11-2012 512"); // Представление.
Имена.Добавить("GR 34.11-2012 512");
Имена.Добавить("GOST 34.11-2012 512");
Возврат Имена;
КонецФункции
Функция ИменаАлгоритмовШифрованияГОСТ_28147_89()
Имена = Новый Массив;
Имена.Добавить("ГОСТ 28147-89"); // Представление.
Имена.Добавить("GOST 28147-89");
Имена.Добавить("GOST28147");
Возврат Имена;
КонецФункции
Функция ИменаАлгоритмовШифрованияГОСТ_Р_34_12_2015_Кузнечик()
Имена = Новый Массив;
Имена.Добавить("ГОСТ Р 34.12-2015 К"); // Представление.
Имена.Добавить("GR 34.12-15 K");
Имена.Добавить("kuznyechik-ctracpkm");
Возврат Имена;
КонецФункции
Функция ИменаАлгоритмовШифрованияГОСТ_Р_34_12_2015_Магма()
Имена = Новый Массив;
Имена.Добавить("ГОСТ Р 34.12-2015 М"); // Представление.
Имена.Добавить("GR 34.12-15 M");
Имена.Добавить("magma-ctracpkm");
Возврат Имена;
КонецФункции
// Конец Локализация
#КонецОбласти
@@ -104,6 +104,9 @@
СвойстваПодписи = ПолучитьИзВременногоХранилища(ТекущаяСтрока.АдресСвойствПодписи);
Сертификат = СвойстваПодписи.Сертификат;
Если Не ЗначениеЗаполнено(Сертификат) Тогда
Продолжить;
КонецЕсли;
ОтборПоСертификату = МодульМашиночитаемыеДоверенностиФНС.ОтборДляДоверенностейПоСертификату(Сертификат, "Представитель");
ПоляОтбора = Новый Массив;
@@ -1821,6 +1821,7 @@
// - Структура - см. ЭлектроннаяПодпись.НовоеОписаниеПрограммы
//
// * АлгоритмПодписи - Строка - если параметр заполнен, возвращает программу с указанным алгоритмом подписи.
// * АлгоритмШифрования - Строка - если параметр заполнен, возвращает программу с указанным алгоритмом шифрования.
// * Автоопределение - Булево - определять установленные программы.
//
Функция ПараметрыСозданияМенеджераКриптографии() Экспорт
@@ -1830,6 +1831,7 @@
ПараметрыСозданияМенеджераКриптографии.Вставить("ПоказатьОшибку", Ложь);
ПараметрыСозданияМенеджераКриптографии.Вставить("ОписаниеОшибки", "");
ПараметрыСозданияМенеджераКриптографии.Вставить("АлгоритмПодписи", "");
ПараметрыСозданияМенеджераКриптографии.Вставить("АлгоритмШифрования", "");
ПараметрыСозданияМенеджераКриптографии.Вставить("Автоопределение", Истина);
Возврат ПараметрыСозданияМенеджераКриптографии;
@@ -1857,11 +1859,18 @@
Программа = ПараметрыСозданияМенеджераКриптографии.Программа;
ПоказатьОшибку = ПараметрыСозданияМенеджераКриптографии.ПоказатьОшибку;
АлгоритмПодписи = ПараметрыСозданияМенеджераКриптографии.АлгоритмПодписи;
АлгоритмШифрования = ПараметрыСозданияМенеджераКриптографии.АлгоритмШифрования;
Автоопределение = ПараметрыСозданияМенеджераКриптографии.Автоопределение;
ДополнительныеПараметры = Новый Структура();
ДополнительныеПараметры.Вставить("Операция", Операция);
ДополнительныеПараметры.Вставить("Автоопределение", Автоопределение);
ДополнительныеПараметры.Вставить("АлгоритмПодписи", АлгоритмПодписи);
ДополнительныеПараметры.Вставить("АлгоритмШифрования", АлгоритмШифрования);
ИмяКомпьютера = ИмяКомпьютера();
ОписаниеОшибок = ЭлектроннаяПодписьСлужебныйКлиентСервер.НовоеОписаниеОшибок(ИмяКомпьютера);
Менеджер = НовыйМенеджерКриптографии(Программа,
ОписаниеОшибок.Ошибки, ПараметрыСозданияМенеджераКриптографии.Автоопределение, АлгоритмПодписи, Операция);
Менеджер = НовыйМенеджерКриптографии(Программа, ОписаниеОшибок.Ошибки, ДополнительныеПараметры);
Если Менеджер <> Неопределено Тогда
Возврат Менеджер;
@@ -2538,31 +2547,38 @@
Если ЗначениеЗаполнено(ДействияДляУстранения) И ДействияДляУстранения.Найти("УстановитьСписокОтзываСертификата") <> Неопределено Тогда
ИмяИздателя = НРег(ЭлектроннаяПодпись.СвойстваИздателяСертификата(СертификатДляПроверки).ОбщееИмя);
Если ЗначениеЗаполнено(ИмяИздателя) Тогда
ИмяИздателя = СтроковыеФункции.СтрокаЛатиницей(ИмяИздателя);
АдресСпискаОтзываВнутренний = ЭлектроннаяПодписьСлужебныйКлиентСервер.АдресСпискаОтзываВнутренний(
ИмяИздателя, СертификатДляПроверки.Выгрузить());
ИмяИздателя,
СертификатДляПроверки.Выгрузить(),
ЭлектроннаяПодписьСлужебныйПовтИсп.КаталогиСписковОтзываУЦ());
Если ЗначениеЗаполнено(АдресСпискаОтзываВнутренний.АдресВнутренний) Тогда
ТребуетсяУстановкаСпискаОтзыва = Истина;
КонецЕсли;
КонецЕсли;
КонецЕсли;
КонецЕсли;
Если ТребуетсяУстановкаСпискаОтзыва Тогда
СвойстваСертификата = ЭлектроннаяПодпись.СвойстваСертификата(СертификатДляПроверки);
СведенияОСертификатеСтрокой = ЭлектроннаяПодписьСлужебныйКлиентСервер.СведенияОСертификатеСтрокой(СвойстваСертификата);
Попытка
УстановитьСписокОтзываСертификата(СертификатДляПроверки,
АдресСпискаОтзываВнутренний.АдресВнешний, АдресСпискаОтзываВнутренний.АдресВнутренний);
Исключение
СвойстваСертификата = ЭлектроннаяПодпись.СвойстваСертификата(СертификатДляПроверки);
ТекстОшибки = СтроковыеФункцииКлиентСервер.ПодставитьПараметрыВСтроку(
НСтр("ru = 'Не удалось установить список отзыва при проверке сертификата: %1
|%2.'"),
ОбработкаОшибок.КраткоеПредставлениеОшибки(ИнформацияОбОшибке()),
ЭлектроннаяПодписьСлужебныйКлиентСервер.СведенияОСертификатеСтрокой(СвойстваСертификата));
СведенияОСертификатеСтрокой);
ЗаписьЖурналаРегистрации(
НСтр("ru = 'Электронная подпись.Обновление списков отзыва'",
@@ -2573,6 +2589,14 @@
Возврат Ложь;
КонецПопытки;
ЗаписьЖурналаРегистрации(
НСтр("ru = 'Электронная подпись.Обновление списков отзыва'",
ОбщегоНазначения.КодОсновногоЯзыка()),
УровеньЖурналаРегистрации.Информация, , ,
СтроковыеФункцииКлиентСервер.ПодставитьПараметрыВСтроку(
НСтр("ru = 'Установлен список отзыва на сервере при проверке сертификата: %1'"),
СведенияОСертификатеСтрокой));
// Повторная проверка после установки списка отзыва.
Попытка
МенеджерКриптографииДляПроверки.ПроверитьСертификат(СертификатДляПроверки, РежимыПроверкиСертификата);
@@ -5095,9 +5119,13 @@
КонецФункции
// Для функции МенеджерКриптографии.
Функция НовыйМенеджерКриптографии(Программа, Ошибки, Автоопределение, АлгоритмПодписи = "", Операция = "")
Функция НовыйМенеджерКриптографии(Программа, Ошибки, ДополнительныеПараметры)
ПрограммыАвто = Неопределено;
Операция = ДополнительныеПараметры.Операция;
Автоопределение = ДополнительныеПараметры.Автоопределение;
АлгоритмПодписи = ДополнительныеПараметры.АлгоритмПодписи;
АлгоритмШифрования = ДополнительныеПараметры.АлгоритмШифрования;
Если ТипЗнч(Программа) = Тип("Строка") Или ТипЗнч(Программа) = Тип("ДвоичныеДанные") Тогда
@@ -5222,7 +5250,7 @@
КонецПопытки;
АлгоритмыУстановлены = ЭлектроннаяПодписьСлужебныйКлиентСервер.МенеджерКриптографииАлгоритмыУстановлены(
ОписаниеПрограммы, Менеджер, Ошибки);
ОписаниеПрограммы, Менеджер, Ошибки, АлгоритмШифрования);
Если Не АлгоритмыУстановлены Тогда
Продолжить;
@@ -5526,6 +5554,7 @@
Настройки.Колонки.Добавить("НетВWindows", Новый ОписаниеТипов("Булево"));
Настройки.Колонки.Добавить("НетВLinux", Новый ОписаниеТипов("Булево"));
Настройки.Колонки.Добавить("НетВMacOS", Новый ОписаниеТипов("Булево"));
Настройки.Колонки.Добавить("Неактуальная", Новый ОписаниеТипов("Булево"));
Возврат Настройки;
@@ -6835,6 +6864,7 @@
ПредставлениеОшибки.Вставить("ТребуетПроверки", Ложь);
ПредставлениеОшибки.Вставить("СертификатОтозван", Ложь);
ПредставлениеОшибки.Вставить("НеверныйХешПодписи", Ложь);
ПредставлениеОшибки.Вставить("НеизвестныйАлгоритмКриптографии", Ложь);
Возврат ПредставлениеОшибки;
@@ -6939,6 +6969,7 @@
Результат.Колонки.Добавить("СертификатОтозван", Новый ОписаниеТипов("Булево"));
Результат.Колонки.Добавить("НеверныйХешПодписи", Новый ОписаниеТипов("Булево"));
Результат.Колонки.Добавить("ОшибкаПриПроверкеПодписи", Новый ОписаниеТипов("Булево"));
Результат.Колонки.Добавить("НеизвестныйАлгоритмКриптографии", Новый ОписаниеТипов("Булево"));
Возврат Результат;
@@ -6994,6 +7025,9 @@
НоваяОшибка.ТребуетПроверки = ОшибкаТребуетПерепроверки(Категория);
Если Не НоваяОшибка.ТребуетПроверки Тогда
НоваяОшибка.СертификатОтозван = ОшибкаСертификатОтозван(Категория);
Если Не НоваяОшибка.СертификатОтозван Тогда
НоваяОшибка.НеизвестныйАлгоритмКриптографии = ОшибкаНеизвестныйАлгоритмКриптографии(Категория);
КонецЕсли;
КонецЕсли;
КонецЕсли;
КонецЕсли;
@@ -7045,6 +7079,16 @@
КонецФункции
Функция ОшибкаНеизвестныйАлгоритмКриптографии(Категория)
Если Категория = "unknown_algo" Тогда
Возврат Истина;
КонецЕсли;
Возврат Ложь;
КонецФункции
#КонецОбласти
#Область ДиагностикаЭлектроннойПодписи
@@ -7802,6 +7846,7 @@
КонецФункции
Функция СертификатВЛокальномХранилищеТекстРешения(Место)
Если Место = "Сервер" Тогда
@@ -7883,24 +7928,26 @@
ВызватьИсключение ОбъектКомпоненты;
КонецЕсли;
Если Не ЗначениеЗаполнено(Адреса) Тогда
СвойстваСертификатаРасширенные = СвойстваСертификатаРасширенные(Сертификат, ОбъектКомпоненты);
Если ЗначениеЗаполнено(СвойстваСертификатаРасширенные.Ошибка) Тогда
ВызватьИсключение СвойстваСертификатаРасширенные.Ошибка;
КонецЕсли;
АдресаСписковОтзыва = СвойстваСертификатаРасширенные.СвойстваСертификата.АдресаСписковОтзыва;
Если АдресаСписковОтзыва.Количество() = 0 Тогда
ВызватьИсключение НСтр("ru = 'В сертификате не указаны адреса списков отзыва.'");
Если ЗначениеЗаполнено(Адреса) Тогда
Если ТипЗнч(Адреса) = Тип("Строка") Тогда
Адреса = СтрРазделить(Адреса, ";");
КонецЕсли;
Иначе
Если ТипЗнч(Адреса) = Тип("Строка") Тогда
АдресаСписковОтзыва = СтрРазделить(Адреса, ";");
КонецЕсли;
Адреса = Новый Массив;
КонецЕсли;
Результат = СкачатьФайлСпискаОтзываНаСервере(АдресаСписковОтзыва, АдресВнутренний);
АдресаСписковОтзыва = АдресаСписковОтзыва(Сертификат, ОбъектКомпоненты);
Если ТипЗнч(АдресаСписковОтзыва) = Тип("Строка") И Не ЗначениеЗаполнено(Адреса) Тогда
ВызватьИсключение АдресаСписковОтзыва;
КонецЕсли;
Для Каждого Адрес Из АдресаСписковОтзыва Цикл
Если Адреса.Найти(Адрес) = Неопределено Тогда
Адреса.Добавить(Адрес);
КонецЕсли;
КонецЦикла;
Результат = СкачатьФайлСпискаОтзываНаСервере(Адреса, АдресВнутренний);
Если ЗначениеЗаполнено(Результат.СообщениеОбОшибке) Тогда
ВызватьИсключение Результат.СообщениеОбОшибке;
@@ -7942,6 +7989,23 @@
КонецПроцедуры
Функция АдресаСписковОтзыва(Сертификат, ОбъектКомпоненты)
СвойстваСертификатаРасширенные = СвойстваСертификатаРасширенные(Сертификат, ОбъектКомпоненты);
Если ЗначениеЗаполнено(СвойстваСертификатаРасширенные.Ошибка) Тогда
Возврат СвойстваСертификатаРасширенные.Ошибка;
КонецЕсли;
АдресаСписковОтзыва = СвойстваСертификатаРасширенные.СвойстваСертификата.АдресаСписковОтзыва;
Если АдресаСписковОтзыва.Количество() = 0 Тогда
Возврат НСтр("ru = 'В сертификате не указаны адреса списков отзыва.'");
КонецЕсли;
Возврат АдресаСписковОтзыва;
КонецФункции
#КонецОбласти
#Область ОбновлениеИнформационнойБазы
@@ -303,6 +303,10 @@
ПараметрыСоздания.Программа = Параметры.СертификатПрограмма;
ПараметрыСоздания.ОписаниеОшибки = Новый Структура;
Если Параметры.Операция = "Шифрование" Тогда
ПараметрыСоздания.АлгоритмШифрования = Параметры.АлгоритмШифрования;
КонецЕсли;
МенеджерКриптографии = ЭлектроннаяПодписьСлужебный.МенеджерКриптографии(Параметры.Операция, ПараметрыСоздания);
ОшибкаНаСервере = ПараметрыСоздания.ОписаниеОшибки;
@@ -2325,9 +2325,12 @@
Если Действие = "УстановитьСписокОтзываСертификата" Тогда
ИмяИздателя = НРег(ЭлектроннаяПодписьКлиент.СвойстваИздателяСертификата(Контекст.СертификатКриптографии).ОбщееИмя);
Если ЗначениеЗаполнено(ИмяИздателя) Тогда
ИмяИздателя = СтроковыеФункцииКлиент.СтрокаЛатиницей(ИмяИздателя);
АдресСпискаОтзываВнутренний = ЭлектроннаяПодписьСлужебныйКлиентСервер.АдресСпискаОтзываВнутренний(
ИмяИздателя, Контекст.ДанныеСертификата);
ИмяИздателя, Контекст.ДанныеСертификата,
ЭлектроннаяПодписьСлужебныйКлиентПовтИсп.КаталогиСписковОтзываУЦ());
ПараметрыУстановкиСпискаОтзыва = ПараметрыУстановкиСпискаОтзыва(
Контекст.СертификатКриптографии);
@@ -2388,6 +2391,15 @@
ПроверитьСертификатНаКлиентеПослеОшибкиПроверки(ТекстПредыдущейОшибки, Ложь, Контекст);
Возврат;
Иначе
ТекстСообщенияОбУстановкеСпискаОтзыва = СтроковыеФункцииКлиентСервер.ПодставитьПараметрыВСтроку(
НСтр("ru = 'Установлен список отзыва при проверке сертификата: %1.'"),
СвойстваСертификатаСтрокой(Контекст.СертификатКриптографии));
ЖурналРегистрацииКлиент.ДобавитьСообщениеДляЖурналаРегистрации(
НСтр("ru = 'Электронная подпись.Обновление списков отзыва'", ОбщегоНазначенияКлиент.КодОсновногоЯзыка()),
"Информация", ТекстСообщенияОбУстановкеСпискаОтзыва,, Истина);
КонецЕсли;
КонецЕсли;
@@ -2709,6 +2721,7 @@
// (установка свойства ПарольДоступаКЗакрытомуКлючу будет запрещена).
//
// * АлгоритмПодписи - Строка - если параметр заполнен, возвращает программу с указанным алгоритмом подписи.
// * АлгоритмШифрования - Строка - если параметр заполнен, возвращает программу с указанным алгоритмом шифрования.
// * Автоопределение - Булево - использовать автоопределение программ, установленных на компьютере,
// если программа не указана.
//
@@ -2719,6 +2732,7 @@
ПараметрыСозданияМенеджераКриптографии.Вставить("Программа", Неопределено);
ПараметрыСозданияМенеджераКриптографии.Вставить("ИнтерактивныйРежим", Ложь);
ПараметрыСозданияМенеджераКриптографии.Вставить("АлгоритмПодписи", "");
ПараметрыСозданияМенеджераКриптографии.Вставить("АлгоритмШифрования", "");
ПараметрыСозданияМенеджераКриптографии.Вставить("Автоопределение", Истина);
Возврат ПараметрыСозданияМенеджераКриптографии;
@@ -2745,18 +2759,9 @@
КонецЕсли;
Контекст = КонтекстСоздатьМенеджерКриптографии();
ЗаполнитьЗначенияСвойств(Контекст, ПараметрыСозданияМенеджераКриптографии);
Контекст.Операция = Операция;
Контекст.Оповещение = Оповещение;
Контекст.Программа =
ПараметрыСозданияМенеджераКриптографии.Программа;
Контекст.ПоказатьОшибку =
ПараметрыСозданияМенеджераКриптографии.ПоказатьОшибку;
Контекст.АлгоритмПодписи =
ПараметрыСозданияМенеджераКриптографии.АлгоритмПодписи;
Контекст.ИнтерактивныйРежим =
ПараметрыСозданияМенеджераКриптографии.ИнтерактивныйРежим;
Контекст.Автоопределение =
ПараметрыСозданияМенеджераКриптографии.Автоопределение;
НачатьПодключениеРасширенияРаботыСКриптографией(Новый ОписаниеОповещения(
"СоздатьМенеджерКриптографииПослеПодключенияРасширенияРаботыСКриптографией", ЭтотОбъект, Контекст));
@@ -2767,6 +2772,7 @@
// Структура:
// * ИнтерактивныйРежим - Булево
// * АлгоритмПодписи - Строка
// * АлгоритмШифрования - Строка
// * ПоказатьОшибку - Булево
// * Программа - СправочникСсылка.ПрограммыЭлектроннойПодписиИШифрования
// - ДвоичныеДанные - данные подписи или сертификата в кодировке DER
@@ -2789,6 +2795,7 @@
Контекст.Вставить("Программа");
Контекст.Вставить("ПоказатьОшибку");
Контекст.Вставить("АлгоритмПодписи");
Контекст.Вставить("АлгоритмШифрования");
Контекст.Вставить("ИнтерактивныйРежим");
Контекст.Вставить("Автоопределение");
@@ -3170,10 +3177,13 @@
// Продолжение процедуры СоздатьМенеджерКриптографии.
Процедура СоздатьМенеджерКриптографииЦиклПослеИнициализации(Неопределен, Контекст) Экспорт
АлгоритмШифрования = ОбщегоНазначенияКлиентСервер.СвойствоСтруктуры(Контекст, "АлгоритмШифрования", "");
АлгоритмыУстановлены = ЭлектроннаяПодписьСлужебныйКлиентСервер.МенеджерКриптографииАлгоритмыУстановлены(
Контекст.ОписаниеПрограммы,
Контекст.Менеджер,
Контекст.ОписаниеОшибок.Ошибки);
Контекст.ОписаниеОшибок.Ошибки,
АлгоритмШифрования);
Если Не АлгоритмыУстановлены Тогда
СоздатьМенеджерКриптографииЦиклНачало(Контекст);
@@ -5316,6 +5326,7 @@
СвойстваОблачнойПодписи = ПолучитьСвойстваОблачнойПодписи(Контекст.ОписаниеДанных);
ИспользоватьОблачнуюПодпись = ОбщегоНазначенияКлиентСервер.СвойствоСтруктуры(ПараметрыВыполнения, "ИспользоватьОблачнуюПодпись", Истина);
АлгоритмШифрования = ОбщегоНазначенияКлиентСервер.СвойствоСтруктуры(Контекст.ОписаниеДанных, "АлгоритмШифрования", "");
Контекст.Вставить("Оповещение", Оповещение);
Контекст.Вставить("Операция", Операция); // Подписание, Шифрование, Расшифровка.
@@ -5361,6 +5372,9 @@
ПараметрыСоздания.ПоказатьОшибку = Неопределено;
ПараметрыСоздания.Программа = Программа;
ПараметрыСоздания.ИнтерактивныйРежим = Контекст.Форма.СертификатВводитьПарольВПрограммеЭлектроннойПодписи;
ПараметрыСоздания.АлгоритмШифрования = АлгоритмШифрования;
Контекст.Вставить("Программа", Программа);
СоздатьМенеджерКриптографии(Новый ОписаниеОповещения(
"ВыполнитьНаСторонеПослеСозданияМенеджераКриптографии", ЭтотОбъект, Контекст),
@@ -5840,6 +5854,8 @@
ИначеЕсли Контекст.Операция = "Шифрование" Тогда
ПараметрыДляСервера.Вставить("АдресСертификатов", Контекст.ОписаниеДанных.СертификатыШифрования);
АлгоритмШифрования = ОбщегоНазначенияКлиентСервер.СвойствоСтруктуры(Контекст.ОписаниеДанных, "АлгоритмШифрования", "");
ПараметрыДляСервера.Вставить("АлгоритмШифрования", АлгоритмШифрования);
Иначе // Расшифровка.
ПараметрыДляСервера.Вставить("ЗначениеПароля", Контекст.ЗначениеПароля);
@@ -6165,6 +6181,9 @@
Результат = Новый Структура;
Если Ошибка <> Неопределено Тогда
Результат.Вставить("Ошибка", Ошибка);
Если Контекст.Операция = "Расшифровка" Тогда
ОбработатьОшибкуРасшифровки(Ошибка, Контекст);
КонецЕсли;
КонецЕсли;
Если Контекст.ОперацияНачалась Тогда
@@ -8221,7 +8240,7 @@
// Для процедур ПроверитьПодписьПослеСозданияМенеджераКриптографии,
// ПолучитьДанныеИзОписанияДанныхПродолжение.
//
Функция ВключениеСертификатовВПодписьСтрокой(ВключениеСертификатовВПодпись)
Функция ВключениеСертификатовВПодписьСтрокой(ВключениеСертификатовВПодпись) Экспорт
Если ТипЗнч(ВключениеСертификатовВПодпись) <> Тип("РежимВключенияСертификатовКриптографии") Тогда
Возврат ВключениеСертификатовВПодпись;
@@ -9994,28 +10013,30 @@
ДвоичныеДанныеСертификата = Base64Значение(Контекст.Сертификат);
КонецЕсли;
Если Не ЗначениеЗаполнено(Контекст.Адреса) Тогда
СвойстваСертификатаРасширенные = Ждать ПолучитьСвойстваСертификатаАсинх(ДвоичныеДанныеСертификата, ОбъектКомпоненты);
Если ЗначениеЗаполнено(СвойстваСертификатаРасширенные.Ошибка) Тогда
ОбработатьОшибкуУстановкиСпискаОтзыва(СвойстваСертификатаРасширенные.Ошибка, Контекст);
Возврат;
КонецЕсли;
АдресаСписковОтзыва = СвойстваСертификатаРасширенные.СвойстваСертификата.АдресаСписковОтзыва;
Если АдресаСписковОтзыва.Количество() = 0 Тогда
ОбработатьОшибкуУстановкиСпискаОтзыва(НСтр("ru = 'В сертификате не указаны адреса списков отзыва.'"),
Контекст);
Возврат;
Если ЗначениеЗаполнено(Контекст.Адреса) Тогда
Если ТипЗнч(Контекст.Адреса) = Тип("Строка") Тогда
Адреса = СтрРазделить(Контекст.Адреса, ";");
КонецЕсли;
Иначе
Если ТипЗнч(Контекст.Адреса) = Тип("Строка") Тогда
АдресаСписковОтзыва = СтрРазделить(Контекст.Адреса, ";");
Адреса = Новый Массив;
КонецЕсли;
АдресаСписковОтзыва = Ждать АдресаСписковОтзыва(ДвоичныеДанныеСертификата, ОбъектКомпоненты);
Если ТипЗнч(АдресаСписковОтзыва) = Тип("Строка") Тогда
Если Не ЗначениеЗаполнено(Адреса) Тогда
ОбработатьОшибкуУстановкиСпискаОтзыва(АдресаСписковОтзыва, Контекст);
Возврат;
КонецЕсли;
КонецЕсли;
Для Каждого Адрес Из АдресаСписковОтзыва Цикл
Если Адреса.Найти(Адрес) = Неопределено Тогда
Адреса.Добавить(Адрес);
КонецЕсли;
КонецЦикла;
Параметры = Новый Структура("АдресРесурса, НаименованиеОперации, АдресВнутренний");
Параметры.АдресРесурса = АдресаСписковОтзыва;
Параметры.АдресРесурса = Адреса;
Параметры.АдресВнутренний = Контекст.АдресВнутренний;
Параметры.НаименованиеОперации = НСтр("ru = 'Загрузка списка отзыва сертификата'");
@@ -10043,6 +10064,24 @@
КонецПроцедуры
Асинх Функция АдресаСписковОтзыва(ДвоичныеДанныеСертификата, ОбъектКомпоненты)
СвойстваСертификатаРасширенные = Ждать ПолучитьСвойстваСертификатаАсинх(ДвоичныеДанныеСертификата, ОбъектКомпоненты);
Если ЗначениеЗаполнено(СвойстваСертификатаРасширенные.Ошибка) Тогда
Возврат СвойстваСертификатаРасширенные.Ошибка;
КонецЕсли;
АдресаСписковОтзыва = СвойстваСертификатаРасширенные.СвойстваСертификата.АдресаСписковОтзыва;
Если АдресаСписковОтзыва.Количество() = 0 Тогда
Возврат НСтр("ru = 'В сертификате не указаны адреса списков отзыва.'");
КонецЕсли;
Возврат АдресаСписковОтзыва;
КонецФункции
// Параметры:
// РезультатВыполнения - см. ДлительныеОперацииКлиент.НовыйРезультатДлительнойОперации
// Контекст - Структура
@@ -10586,13 +10625,13 @@
КонецФункции
// Возвращает результат проверки криптопровайдеров из кэша с обновлением в 5 минут.
// Возвращает результат проверки криптопровайдеров из кэша с обновлением в 20 минут.
Асинх Функция УстановленныеКриптопровайдерыИзКэша(ПредложитьУстановить = Ложь)
ИмяПараметра = "ЭлектроннаяПодпись.УстановленныеКриптопровайдеры";
Если ПараметрыПриложения[ИмяПараметра] = Неопределено
Или ПараметрыПриложения[ИмяПараметра].ВремяПроверки + 300 < ТекущаяДата() // АПК:143 Должна использоваться ТекущаяДата().
Или ПараметрыПриложения[ИмяПараметра].ВремяПроверки + 1200 < ТекущаяДата() // АПК:143 Должна использоваться ТекущаяДата().
Или ПараметрыПриложения[ИмяПараметра].Ошибка = ТекстОшибкиНеУстановленаКомпонента() И ПредложитьУстановить Тогда
РезультатПроверки = Ждать УстановленныеКриптопровайдеры(Неопределено, ПредложитьУстановить);
@@ -10861,12 +10900,6 @@
КонецПроцедуры
Процедура УстановитьLISSI() Экспорт
ФайловаяСистемаКлиент.ОткрытьНавигационнуюСсылку("http://soft.lissi.ru/ls_product/skzi/");
КонецПроцедуры
// Параметры:
// ДлительнаяОперация - см. ДлительныеОперацииКлиент.НовыйРезультатДлительнойОперации
// ВходящийКонтекст - Структура
@@ -11359,6 +11392,20 @@
Или НавигационнаяСсылка = "УстановитьКорневойСертификат"
Или НавигационнаяСсылка = "УстановитьСписокОтзываСертификата" Тогда
Если Результат.УстановкаВыполнена <> Истина Тогда
ПараметрыФормы = Новый Структура;
Если НавигационнаяСсылка = "УстановитьСписокОтзываСертификата" Тогда
ПараметрыФормы.Вставить("ЗаголовокПредупреждения", НСтр("ru = 'Не удалось установить список отзыва'"));
Иначе
ПараметрыФормы.Вставить("ЗаголовокПредупреждения", НСтр("ru = 'Не удалось установить сертификат'"));
КонецЕсли;
ПараметрыФормы.Вставить("ТекстОшибкиКлиент", Результат.Сообщение);
ПараметрыФормы.Вставить("ПоказатьТребуетсяПомощь", Истина);
ПараметрыФормы.Вставить("ПоказатьИнструкцию", Истина);
ОткрытьФормуРасширенногоПредставленияОшибки(ПараметрыФормы, ПараметрыФормы);
Возврат;
КонецЕсли;
КонецЕсли;
@@ -11927,5 +11974,63 @@
КонецФункции
Процедура ОбработатьОшибкуРасшифровки(Ошибка, Контекст)
ТекстОшибки = Ошибка.ОписаниеОшибки;
ОшибкаПоКлассификатору = ЭлектроннаяПодписьСлужебныйВызовСервера.ОшибкаПоКлассификатору(ТекстОшибки);
Если ОшибкаПоКлассификатору = Неопределено Или Не ОшибкаПоКлассификатору.НеизвестныйАлгоритмКриптографии Тогда
// Обработка не требуется
Возврат;
КонецЕсли;
НерасшифрованныеДанные = Контекст.ЭлементДанных.Данные;
Программа = ОбщегоНазначенияКлиентСервер.СвойствоСтруктуры(Контекст, "Программа", Неопределено);
ПредставлениеПрограммы = ?(ЗначениеЗаполнено(Программа), Программа.Представление, "");
ИнформацияАлгоритмаШифрования = ЭлектроннаяПодписьСлужебныйКлиентСервер.АлгоритмШифрованияЗашифрованногоФайла(НерасшифрованныеДанные);
ДополнительныеДанныеПроверок = ДополнительныеПараметрыОшибкиРасшифровки(ИнформацияАлгоритмаШифрования, ПредставлениеПрограммы);
Ошибка.Вставить("ДополнительныеДанныеПроверокНаКлиенте", ДополнительныеДанныеПроверок);
Ошибка.Вставить("НастройкаПрограмм", Истина);
Если Не ПустаяСтрока(ИнформацияАлгоритмаШифрования.Идентификатор) Тогда
Ошибка.ОписаниеОшибки = СокрЛ(ТекстОшибки + Символы.ПС + СтроковыеФункцииКлиентСервер.ПодставитьПараметрыВСтроку(
НСтр("ru = 'OID алгоритма: %1'"), ИнформацияАлгоритмаШифрования.Идентификатор));
КонецЕсли;
КонецПроцедуры
Функция ДополнительныеПараметрыОшибкиРасшифровки(ИнформацияАлгоритмаШифрования, ПредставлениеПрограммы)
Результат = Новый Структура("ДополнительныеДанныеПроверокНаКлиенте");
ПредставлениеОшибки = Новый Структура("Причина, Решение");
ИдентификаторАлгоритма = ИнформацияАлгоритмаШифрования.Идентификатор;
ПредставлениеАлгоритма = ?(ЗначениеЗаполнено(ИнформацияАлгоритмаШифрования.Представление),
ИнформацияАлгоритмаШифрования.Представление,
ИнформацияАлгоритмаШифрования.Идентификатор);
ТекстРешения = "";
Если СтрНайти(ИдентификаторАлгоритма, "1.2.643.7.1.1.5.2") <> 0
Или СтрНайти(ИдентификаторАлгоритма, "1.2.643.7.1.1.5.1") <> 0 Тогда
ТекстРешения = СтроковыеФункцииКлиентСервер.ПодставитьПараметрыВСтроку(
НСтр("ru = '• Установите приложение электронной подписи, которое расшифрует документы, зашифрованные алгоритмом ""%1"", например КриптоПро CSP версии 5.0.12000 и выше или Сигнал-КОМ CSP.'"),
ПредставлениеАлгоритма);
Иначе
ТекстРешения = СтроковыеФункцииКлиентСервер.ПодставитьПараметрыВСтроку(
НСтр("ru = '• Установите приложение электронной подписи, которое расшифрует документы, зашифрованные алгоритмом%1.'"),
" """ + ПредставлениеАлгоритма + """");
КонецЕсли;
ПредставлениеОшибки.Причина = СтроковыеФункцииКлиентСервер.ПодставитьПараметрыВСтроку(
НСтр("ru = '• Приложение электронной подписи %1 не работает с данным алгоритмом шифрования.
|• Приложение электронной подписи установлено некорректно.'"),
ПредставлениеПрограммы);
ПредставлениеОшибки.Решение = ТекстРешения + НСтр("ru = '• Удалите все приложения электронной подписи и установите только одно из них, так как установка нескольких приложений электронной подписи на одном компьютере может вызвать эту ошибку.'");
Результат.ДополнительныеДанныеПроверокНаКлиенте = ПредставлениеОшибки;
Возврат Результат;
КонецФункции
#КонецОбласти
@@ -26,6 +26,15 @@
КонецФункции
Функция КаталогиСписковОтзываУЦ() Экспорт
АккредитованныеУдостоверяющиеЦентры = ЭлектроннаяПодписьСлужебныйКлиентПовтИсп.АккредитованныеУдостоверяющиеЦентры();
МодульЭлектроннаяПодписьКлиентСерверЛокализация = ОбщегоНазначенияКлиент.ОбщийМодуль("ЭлектроннаяПодписьКлиентСерверЛокализация");
Возврат МодульЭлектроннаяПодписьКлиентСерверЛокализация.КаталогиСписковОтзываУЦ(АккредитованныеУдостоверяющиеЦентры);
КонецФункции
Функция ОшибкаПоКлассификатору(ТекстОшибки) Экспорт
Возврат ЭлектроннаяПодписьСлужебныйВызовСервера.ОшибкаПоКлассификатору(ТекстОшибки);
@@ -190,9 +190,9 @@
// * АдресВнутренний - Строка - идентификатор для поиска в базе
// * АдресВнешний - Строка - адрес ресурса для скачивания
//
Функция АдресСпискаОтзываВнутренний(ИмяИздателя, Сертификат) Экспорт
Функция АдресСпискаОтзываВнутренний(ИмяИздателя, Сертификат, КаталогиСписковОтзываУЦ) Экспорт
Возврат ЭлектроннаяПодписьКлиентСерверЛокализация.АдресСпискаОтзываВнутренний(ИмяИздателя, Сертификат);
Возврат ЭлектроннаяПодписьКлиентСерверЛокализация.АдресСпискаОтзываВнутренний(ИмяИздателя, Сертификат, КаталогиСписковОтзываУЦ);
КонецФункции
@@ -285,7 +285,7 @@
Функция АктуальныеАлгоритмыПрограмм() Экспорт
Возврат ИменаАлгоритмовПодписиГОСТ_34_10_2012_256()
Возврат ЭлектроннаяПодписьКлиентСерверЛокализация.АктуальныеАлгоритмыПрограмм();
КонецФункции
@@ -1003,17 +1003,23 @@
// ОписаниеПрограммы - см. ЭлектроннаяПодписьСлужебныйПовтИсп.ОписаниеПрограммы
// Менеджер - МенеджерКриптографии
// Ошибки - Массив
// АлгоритмШифрования - Строка
//
// Возвращаемое значение:
// Булево
//
Функция МенеджерКриптографииАлгоритмыУстановлены(ОписаниеПрограммы, Менеджер, Ошибки) Экспорт
Функция МенеджерКриптографииАлгоритмыУстановлены(ОписаниеПрограммы, Менеджер, Ошибки, АлгоритмШифрования = "") Экспорт
Если ОписаниеПрограммы.ИмяПрограммы = "Default" Тогда
Возврат Истина;
КонецЕсли;
Если ВыполненОбходНарушенияОбратнойСовместимостиВViPNetCSP_4_4(ОписаниеПрограммы, Менеджер) Тогда
АлгоритмыУстановлены = Ложь;
ЭлектроннаяПодписьКлиентСерверЛокализация.ПриУстановкеПараметровМенеджераКриптографии(
ОписаниеПрограммы, Менеджер, АлгоритмШифрования, АлгоритмыУстановлены);
Если АлгоритмыУстановлены Тогда
Возврат Истина;
КонецЕсли;
@@ -1038,8 +1044,11 @@
НСтр("ru = 'Выбран неизвестный алгоритм хеширования ""%1"".'"), АлгоритмХеширования), Истина);
Возврат Ложь;
КонецПопытки;
АлгоритмШифрования = Строка(ОписаниеПрограммы.АлгоритмШифрования);
Если ПустаяСтрока(АлгоритмШифрования) Тогда
АлгоритмШифрования = ЭлектроннаяПодписьКлиентСерверЛокализация.ПреобразованныйАлгоритмШифрования(Строка(ОписаниеПрограммы.АлгоритмШифрования));
Иначе
АлгоритмШифрования = ЭлектроннаяПодписьКлиентСерверЛокализация.ПреобразованныйАлгоритмШифрования(АлгоритмШифрования);
КонецЕсли;
Попытка
Менеджер.АлгоритмШифрования = АлгоритмШифрования;
Исключение
@@ -1054,96 +1063,6 @@
КонецФункции
// Для функции МенеджерКриптографииАлгоритмыУстановлены.
Функция ВыполненОбходНарушенияОбратнойСовместимостиВViPNetCSP_4_4(ОписаниеПрограммы, Менеджер)
АлгоритмПодписи = Строка(ОписаниеПрограммы.АлгоритмПодписи);
АлгоритмХеширования = Строка(ОписаниеПрограммы.АлгоритмХеширования);
АлгоритмШифрования = Строка(ОписаниеПрограммы.АлгоритмШифрования);
#Если ВебКлиент Тогда
Если ИменаАлгоритмовПодписиГОСТ_34_10_2012_256().Найти(АлгоритмПодписи) <> Неопределено Тогда
АлгоритмПодписи = "1.2.643.7.1.1.1.1"; // ГОСТ 34.10-2012 256
ИначеЕсли ИменаАлгоритмовПодписиГОСТ_34_10_2012_512().Найти(АлгоритмПодписи) <> Неопределено Тогда
АлгоритмПодписи = "1.2.643.7.1.1.1.2"; // ГОСТ 34.10-2012 512
КонецЕсли;
Если ИменаАлгоритмовХешированияГОСТ_34_11_2012_256().Найти(АлгоритмХеширования) <> Неопределено Тогда
АлгоритмХеширования = "1.2.643.7.1.1.2.2"; // ГОСТ 34.11-2012 256
ИначеЕсли ИменаАлгоритмовХешированияГОСТ_34_11_2012_512().Найти(АлгоритмХеширования) <> Неопределено Тогда
АлгоритмХеширования = "1.2.643.7.1.1.2.3"; // ГОСТ 34.11-2012 512
КонецЕсли;
#Иначе
Если Не (ОписаниеПрограммы.ИмяПрограммы = "Infotecs GOST 2012/512 Cryptographic Service Provider"
И ОписаниеПрограммы.ТипПрограммы = 77) И Не (ОписаниеПрограммы.ИмяПрограммы = "Infotecs GOST 2012/1024 Cryptographic Service Provider"
И ОписаниеПрограммы.ТипПрограммы = 78) Тогда
Возврат Ложь;
КонецЕсли;
#КонецЕсли
АлгоритмыУстановлены = Истина;
Попытка
Менеджер.АлгоритмПодписи = АлгоритмПодписи;
Менеджер.АлгоритмХеширования = АлгоритмХеширования;
Менеджер.АлгоритмШифрования = АлгоритмШифрования;
Исключение
АлгоритмыУстановлены = Ложь;
КонецПопытки;
Если АлгоритмыУстановлены Тогда
Возврат Истина;
КонецЕсли;
Если АлгоритмПодписи = "GOST 34.10-2012 256"
И АлгоритмХеширования = "GOST 34.11-2012 256"
И АлгоритмШифрования = "GOST 28147-89" Тогда
АлгоритмПодписи = "GR 34.10-2012 256";
АлгоритмХеширования = "GR 34.11-2012 256";
АлгоритмШифрования = "GOST 28147-89";
ИначеЕсли АлгоритмПодписи = "GR 34.10-2012 256"
И АлгоритмХеширования = "GR 34.11-2012 256"
И АлгоритмШифрования = "GOST 28147-89" Тогда
АлгоритмПодписи = "GOST 34.10-2012 256";
АлгоритмХеширования = "GOST 34.11-2012 256";
АлгоритмШифрования = "GOST 28147-89";
ИначеЕсли АлгоритмПодписи = "GOST 34.10-2012 512"
И АлгоритмХеширования = "GOST 34.11-2012 512"
И АлгоритмШифрования = "GOST 28147-89" Тогда
АлгоритмПодписи = "GR 34.10-2012 512";
АлгоритмХеширования = "GR 34.11-2012 512";
АлгоритмШифрования = "GOST 28147-89";
ИначеЕсли АлгоритмПодписи = "GR 34.10-2012 512"
И АлгоритмХеширования = "GR 34.11-2012 512"
И АлгоритмШифрования = "GOST 28147-89" Тогда
АлгоритмПодписи = "GOST 34.10-2012 512";
АлгоритмХеширования = "GOST 34.11-2012 512";
АлгоритмШифрования = "GOST 28147-89";
Иначе
Возврат Ложь;
КонецЕсли;
АлгоритмыУстановлены = Истина;
Попытка
Менеджер.АлгоритмПодписи = АлгоритмПодписи;
Менеджер.АлгоритмХеширования = АлгоритмХеширования;
Менеджер.АлгоритмШифрования = АлгоритмШифрования;
Исключение
АлгоритмыУстановлены = Ложь;
КонецПопытки;
Возврат АлгоритмыУстановлены;
КонецФункции
// Только для внутреннего использования.
//
// Параметры:
@@ -4424,6 +4343,57 @@
КонецФункции
Функция АлгоритмШифрованияЗашифрованногоФайла(Данные) Экспорт
ИнформацияАлгоритма = Новый Структура("Представление, Идентификатор", "", "");
ДвоичныеДанные = ДвоичныеДанныеИзДанных(Данные,
"ЭлектроннаяПодписьСлужебныйКлиентСервер.АлгоритмШифрованияЗашифрованногоФайла");
АнализДанных = НовыйАнализДанных(ДвоичныеДанные);
// SEQUENCE (PKCS #7 ContentInfo).
ПропуститьНачалоБлока(АнализДанных, 0, 16);
// OBJECT IDENTIFIER (contentType).
ПропуститьНачалоБлока(АнализДанных, 0, 6);
// 1.2.840.113549.1.7.3 envelopedData (PKCS #7).
ПроверитьДанныеБлока(АнализДанных, "2A864886F70D010703");
ПропуститьРодительскийБлок(АнализДанных);
// [0]CS (content [0] EXPLICIT ANY DEFINED BY contentType OPTIONAL).
ПропуститьНачалоБлока(АнализДанных, 2, 0);
// SEQUENCE (content envelopedData).
ПропуститьНачалоБлока(АнализДанных, 0, 16);
// INTEGER (version Version).
ПропуститьБлок(АнализДанных, 0, 2);
// SET (recipientInfos recipientInfos).
ПропуститьБлок(АнализДанных, 0, 17);
// SEQUENCE (content encryptedContentInfo).
ПропуститьНачалоБлока(АнализДанных, 0, 16);
// OBJECT IDENTIFIER (contentType).
ПропуститьБлок(АнализДанных, 0, 6);
// SEQUENCE (content contentEncryptionAlgorithm).
ПропуститьНачалоБлока(АнализДанных, 0, 16);
// OBJECT IDENTIFIER (algorithm).
ПропуститьНачалоБлока(АнализДанных, 0, 6);
OIDАлгоритмаШифрования = ПрочитанныйOID(АнализДанных);
Если АнализДанных.ЕстьОшибка Тогда
Возврат ИнформацияАлгоритма;
КонецЕсли;
ИнформацияАлгоритма.Идентификатор = OIDАлгоритмаШифрования;
ИдентификаторыАлгоритмов = ИдентификаторыАлгоритмовШифрования();
ИмяАлгоритма = ИдентификаторыАлгоритмов.Получить(OIDАлгоритмаШифрования);
Если ЗначениеЗаполнено(ИмяАлгоритма) Тогда
ИнформацияАлгоритма.Представление = СтрРазделить(ИмяАлгоритма, ",", Ложь)[0];
КонецЕсли;
Возврат ИнформацияАлгоритма;
КонецФункции
// Для процедуры СкачатьФайлСпискаОтзываНаСервере и проверки ПередЗаписью в регистре СпискиОтзываСертификатов.
Функция СвойстваСпискаОтзыва(Данные) Экспорт
@@ -4985,6 +4955,23 @@
КонецПроцедуры
Функция ИдентификаторыАлгоритмовШифрования()
ИдентификаторыАлгоритмов = Новый Соответствие;
Наборы = Новый Массив;
ЭлектроннаяПодписьКлиентСерверЛокализация.ПриУстановкеНаборовАлгоритмовШифрования(Наборы);
Для Каждого Набор Из Наборы Цикл
ИдентификаторыАлгоритмов.Вставить(Набор.ИдентификаторАлгоритмаШифрования,
СтрСоединить(Набор.ИменаАлгоритмаШифрования, ", "));
КонецЦикла;
Возврат ИдентификаторыАлгоритмов;
КонецФункции
Функция ИдентификаторыАлгоритмовПодписи(ТолькоАлгоритмыОткрытогоКлюча)
ИдентификаторыАлгоритмов = Новый Соответствие;
@@ -5032,52 +5019,6 @@
Наборы = Новый Массив;
// ГОСТ 94
Свойства = НовыйНаборАлгоритмовДляСозданияПодписи();
Свойства.ИдентификаторАлгоритмаОткрытогоКлюча = "1.2.643.2.2.20";
Свойства.ИдентификаторАлгоритмаПодписи = "1.2.643.2.2.4";
Свойства.ИменаАлгоритмаПодписи = ИменаАлгоритмовПодписиГОСТ_34_10_94();
Свойства.ИдентификаторАлгоритмаХеширования = "1.2.643.2.2.9";
Свойства.ИменаАлгоритмаХеширования = ИменаАлгоритмовХешированияГОСТ_34_11_94();
Свойства.ИмяАлгоритмаПодписиXML = "http://www.w3.org/2001/04/xmldsig-more#gostr341094-gostr3411";
Свойства.ИмяАлгоритмаХешированияXML = "http://www.w3.org/2001/04/xmldsig-more#gostr3411";
Наборы.Добавить(Свойства);
// ГОСТ 2001
Свойства = НовыйНаборАлгоритмовДляСозданияПодписи();
Свойства.ИдентификаторАлгоритмаОткрытогоКлюча = "1.2.643.2.2.19";
Свойства.ИдентификаторАлгоритмаПодписи = "1.2.643.2.2.3";
Свойства.ИменаАлгоритмаПодписи = ИменаАлгоритмовПодписиГОСТ_34_10_2001();
Свойства.ИдентификаторАлгоритмаХеширования = "1.2.643.2.2.9";
Свойства.ИменаАлгоритмаХеширования = ИменаАлгоритмовХешированияГОСТ_34_11_94();
Свойства.ИмяАлгоритмаПодписиXML = "http://www.w3.org/2001/04/xmldsig-more#gostr34102001-gostr3411";
Свойства.ИмяАлгоритмаХешированияXML = "http://www.w3.org/2001/04/xmldsig-more#gostr3411";
Наборы.Добавить(Свойства);
// ГОСТ 2012/256
Свойства = НовыйНаборАлгоритмовДляСозданияПодписи();
Свойства.ИдентификаторАлгоритмаОткрытогоКлюча = "1.2.643.7.1.1.1.1";
Свойства.ИдентификаторАлгоритмаПодписи = "1.2.643.7.1.1.3.2";
Свойства.ИменаАлгоритмаПодписи = ИменаАлгоритмовПодписиГОСТ_34_10_2012_256();
Свойства.ИдентификаторАлгоритмаОбмена = "1.2.643.7.1.1.6.1";
Свойства.ИдентификаторАлгоритмаХеширования = "1.2.643.7.1.1.2.2";
Свойства.ИменаАлгоритмаХеширования = ИменаАлгоритмовХешированияГОСТ_34_11_2012_256();
Свойства.ИмяАлгоритмаПодписиXML = "urn:ietf:params:xml:ns:cpxmlsec:algorithms:gostr34102012-gostr34112012-256";
Свойства.ИмяАлгоритмаХешированияXML = "urn:ietf:params:xml:ns:cpxmlsec:algorithms:gostr34112012-256";
Наборы.Добавить(Свойства);
// ГОСТ 2012/512
Свойства = НовыйНаборАлгоритмовДляСозданияПодписи();
Свойства.ИдентификаторАлгоритмаОткрытогоКлюча = "1.2.643.7.1.1.1.2";
Свойства.ИдентификаторАлгоритмаПодписи = "1.2.643.7.1.1.3.3";
Свойства.ИменаАлгоритмаПодписи = ИменаАлгоритмовПодписиГОСТ_34_10_2012_512();
Свойства.ИдентификаторАлгоритмаОбмена = "1.2.643.7.1.1.6.2";
Свойства.ИдентификаторАлгоритмаХеширования = "1.2.643.7.1.1.2.3";
Свойства.ИменаАлгоритмаХеширования = ИменаАлгоритмовХешированияГОСТ_34_11_2012_512();
Свойства.ИмяАлгоритмаПодписиXML = "urn:ietf:params:xml:ns:cpxmlsec:algorithms:gostr34102012-gostr34112012-512";
Свойства.ИмяАлгоритмаХешированияXML = "urn:ietf:params:xml:ns:cpxmlsec:algorithms:gostr34112012-512";
Наборы.Добавить(Свойства);
// md2WithRSAEncryption
Свойства = НовыйНаборАлгоритмовДляСозданияПодписи();
Свойства.ИдентификаторАлгоритмаОткрытогоКлюча = "1.2.840.113549.1.1.1";
@@ -5155,6 +5096,8 @@
Свойства.ИмяАлгоритмаХешированияXML = "";
Наборы.Добавить(Свойства);
ЭлектроннаяПодписьКлиентСерверЛокализация.ПриУстановкеНаборовАлгоритмовДляСозданияПодписи(Наборы);
Возврат Наборы;
КонецФункции
@@ -5169,7 +5112,7 @@
// * ИмяАлгоритмаПодписиXML - Строка
// * ИмяАлгоритмаХешированияXML - Строка
//
Функция НовыйНаборАлгоритмовДляСозданияПодписи()
Функция НовыйНаборАлгоритмовДляСозданияПодписи() Экспорт
Свойства = Новый Структура;
Свойства.Вставить("ИдентификаторАлгоритмаОткрытогоКлюча", "");
@@ -5185,83 +5128,18 @@
КонецФункции
Функция ИменаАлгоритмовПодписиГОСТ_34_10_94()
// Возвращаемое значение:
// Структура:
// * ИдентификаторАлгоритмаШифрования - Строка
// * ИменаАлгоритмаШифрования - Массив из Строка
//
Функция НовыйНаборАлгоритмовШифрования() Экспорт
Имена = Новый Массив;
Имена.Добавить("ГОСТ 34.10-94"); // Представление.
Имена.Добавить("GOST R 34.10-94");
Свойства = Новый Структура;
Свойства.Вставить("ИдентификаторАлгоритмаШифрования", "");
Свойства.Вставить("ИменаАлгоритмаШифрования", Новый Массив);
Возврат Имена;
КонецФункции
Функция ИменаАлгоритмовПодписиГОСТ_34_10_2001()
Имена = Новый Массив;
Имена.Добавить("ГОСТ 34.10-2001"); // Представление.
Имена.Добавить("GOST R 34.10-2001");
Имена.Добавить("ECR3410-CP");
Возврат Имена;
КонецФункции
Функция ИменаАлгоритмовПодписиГОСТ_34_10_2012_256()
Имена = Новый Массив;
Имена.Добавить("ГОСТ 34.10-2012 256"); // Представление.
Имена.Добавить("GR 34.10-2012 256");
Имена.Добавить("GOST 34.10-2012 256");
Имена.Добавить("GOST R 34.10-12 256");
Имена.Добавить("GOST3410-12-256");
Возврат Имена;
КонецФункции
Функция ИменаАлгоритмовПодписиГОСТ_34_10_2012_512()
Имена = Новый Массив;
Имена.Добавить("ГОСТ 34.10-2012 512"); // Представление.
Имена.Добавить("GR 34.10-2012 512");
Имена.Добавить("GOST 34.10-2012 512");
Возврат Имена;
КонецФункции
Функция ИменаАлгоритмовХешированияГОСТ_34_11_94()
Имена = Новый Массив;
Имена.Добавить("ГОСТ 34.11-94"); // Представление.
Имена.Добавить("GOST R 34.11-94");
Имена.Добавить("RUS-HASH-CP");
Возврат Имена;
КонецФункции
Функция ИменаАлгоритмовХешированияГОСТ_34_11_2012_256()
Имена = Новый Массив;
Имена.Добавить("ГОСТ 34.11-2012 256"); // Представление.
Имена.Добавить("GR 34.11-2012 256");
Имена.Добавить("GOST 34.11-2012 256");
Имена.Добавить("GOST R 34.11-12 256");
Имена.Добавить("GOST3411-12-256");
Возврат Имена;
КонецФункции
Функция ИменаАлгоритмовХешированияГОСТ_34_11_2012_512()
Имена = Новый Массив;
Имена.Добавить("ГОСТ 34.11-2012 512"); // Представление.
Имена.Добавить("GR 34.11-2012 512");
Имена.Добавить("GOST 34.11-2012 512");
Возврат Имена;
Возврат Свойства;
КонецФункции
@@ -119,7 +119,7 @@
Если ДанныеУдостоверяющихЦентров = Неопределено
Или Не ДанныеУдостоверяющихЦентров.Свойство("ДругиеНастройки")
Или ДанныеУдостоверяющихЦентров.ДатыОкончанияДействия.Версия < 11 Тогда
Или ДанныеУдостоверяющихЦентров.ДатыОкончанияДействия.Версия < 24 Тогда
ДанныеУдостоверяющихЦентров = ДанныеУдостоверяющихЦентровИзМакета();
Если ДанныеУдостоверяющихЦентров = Неопределено Тогда
@@ -474,7 +474,7 @@
//
Функция ВерсияКлассификатора() Экспорт
Возврат "3.0.1.39";
Возврат "3.0.1.41";
КонецФункции
@@ -269,7 +269,7 @@
Отбор = Новый Структура("ТолькоСервер, ОшибкаПриПроверкеПодписи", Ложь, Истина);
КонецЕсли;
СтрокаОшибки = НайтиСтрокуОшибки(КлассификаторОшибок, Отбор, ТекстДляПоиска, ОшибкаНаСервере);
СтрокаОшибки = НайтиСтрокуОшибки(КлассификаторОшибок, Отбор, ТекстДляПоиска, ОшибкаНаСервере, ТекстДляПоискаВКлассификаторе);
Если СтрокаОшибки <> Неопределено Тогда
Возврат СтрокаОшибки;
КонецЕсли;
@@ -281,11 +281,11 @@
Отбор = Новый Структура("ТолькоСервер", Ложь);
КонецЕсли;
Возврат НайтиСтрокуОшибки(КлассификаторОшибок, Отбор, ТекстДляПоиска, ОшибкаНаСервере);
Возврат НайтиСтрокуОшибки(КлассификаторОшибок, Отбор, ТекстДляПоиска, ОшибкаНаСервере, ТекстДляПоискаВКлассификаторе);
КонецФункции
Функция НайтиСтрокуОшибки(КлассификаторОшибок, Отбор, ТекстДляПоиска, ОшибкаНаСервере)
Функция НайтиСтрокуОшибки(КлассификаторОшибок, Отбор, ТекстДляПоиска, ОшибкаНаСервере, ТекстОшибки)
Строки = КлассификаторОшибок.НайтиСтроки(Отбор);
Для Каждого СтрокаКлассификатора Из Строки Цикл
@@ -296,10 +296,12 @@
ЗаполнитьЗначенияСвойств(ПредставлениеОшибки, СтрокаКлассификатора);
ПредставлениеОшибки.ДействияДляУстранения = ПрочитанныеДействияДляУстраненияОшибок(
ПредставлениеОшибки.СпособУстранения);
Если Не ОшибкаНаСервере Тогда
ДополнитьРешениеАвтоматическимиДействиями(ПредставлениеОшибки.Решение,
ПредставлениеОшибки.ДействияДляУстранения);
КонецЕсли;
ПредставлениеОшибки.ДействияДляУстранения, ОшибкаНаСервере, ТекстОшибки);
ДополнитьПараметрами(ПредставлениеОшибки.Причина, ПредставлениеОшибки.Решение,
ПредставлениеОшибки.ДействияДляУстранения, ТекстОшибки);
ПредставлениеОшибки.Причина = СтроковыеФункции.ФорматированнаяСтрока(ПредставлениеОшибки.Причина);
ПредставлениеОшибки.Решение = СтроковыеФункции.ФорматированнаяСтрока(ПредставлениеОшибки.Решение);
@@ -312,31 +314,29 @@
КонецФункции
Процедура ДополнитьРешениеАвтоматическимиДействиями(Решение, ДействияДляУстранения)
Процедура ДополнитьРешениеАвтоматическимиДействиями(Решение, ДействияДляУстранения, ОшибкаНаСервере, ТекстОшибки)
Если Не ЗначениеЗаполнено(ДействияДляУстранения) Тогда
Возврат;
КонецЕсли;
Если Не ОбщегоНазначения.ПодсистемаСуществует("СтандартныеПодсистемы.ПолучениеФайловИзИнтернета") Тогда
Возврат;
КонецЕсли;
ЕстьПолучениеФайловИзИнтернета = ОбщегоНазначения.ПодсистемаСуществует("СтандартныеПодсистемы.ПолучениеФайловИзИнтернета");
Для Каждого Действие Из ДействияДляУстранения Цикл
Если Действие = "УстановитьСписокОтзываСертификата" Тогда
Если Действие = "УстановитьСписокОтзываСертификата" И Не ОшибкаНаСервере И ЕстьПолучениеФайловИзИнтернета Тогда
Решение = СтроковыеФункцииКлиентСервер.ПодставитьПараметрыВСтроку(
НСтр("ru = '• <a href=%1>Установите список отзыва</a> удостоверяющего центра автоматически.
|%2'"), Действие, Решение);
ИначеЕсли Действие = "УстановитьКорневойСертификат" Тогда
ИначеЕсли Действие = "УстановитьКорневойСертификат" И Не ОшибкаНаСервере Тогда
Решение = СтроковыеФункцииКлиентСервер.ПодставитьПараметрыВСтроку(
НСтр("ru = '• <a href=%1>Установите корневой сертификат</a> удостоверяющего центра автоматически.
|%2'"), Действие, Решение);
ИначеЕсли Действие = "УстановитьСертификат" Тогда
ИначеЕсли Действие = "УстановитьСертификат" И Не ОшибкаНаСервере Тогда
Решение = СтроковыеФункцииКлиентСервер.ПодставитьПараметрыВСтроку(
НСтр("ru = '• <a href=%1>Установите сертификат</a> в Личное хранилище сертификатов пользователя операционной системы автоматически.
|%2'"), Действие, Решение);
ИначеЕсли Действие = "УстановитьСертификатВКонтейнер" Тогда
ИначеЕсли Действие = "УстановитьСертификатВКонтейнер" И Не ОшибкаНаСервере Тогда
Решение = СтроковыеФункцииКлиентСервер.ПодставитьПараметрыВСтроку(
НСтр("ru = '• <a href=%1>Установите сертификат в контейнер</a> прямо из приложения.
|%2'"), Действие, Решение);
@@ -346,6 +346,80 @@
КонецПроцедуры
Процедура ДополнитьПараметрами(Причина, Решение, ДействияДляУстранения, ТекстОшибки)
Если Не ЗначениеЗаполнено(ДействияДляУстранения) Тогда
Возврат;
КонецЕсли;
Для Каждого Действие Из ДействияДляУстранения Цикл
Если Действие = "УказатьВПричинеСсылкуНаСервис" Тогда
ДобавитьСсылкуНаСервис(Причина, ТекстОшибки);
ИначеЕсли Действие = "УказатьВРешенииСсылкуНаСервис" Тогда
ДобавитьСсылкуНаСервис(Решение, ТекстОшибки);
КонецЕсли;
КонецЦикла;
УдалитьПараметрыИзСтроки(Причина);
УдалитьПараметрыИзСтроки(Решение);
КонецПроцедуры
Процедура ДобавитьСсылкуНаСервис(Строка, ТекстОшибки)
Шаблон = "(?i)\b(https?|ftps?|file)://[-A-Z0-9+&@#/%?=~_|$!:,.;]*[A-Z0-9+&@#/%?=_|$]";
РезультатПоиска = ВычислитьСтрНайтиПоРегулярномуВыражению(ТекстОшибки, Шаблон);
Если РезультатПоиска.НачальнаяПозиция <> 0 Тогда
Адрес = СРед(ТекстОшибки, РезультатПоиска.НачальнаяПозиция, РезультатПоиска.Длина);
Если СтрНачинаетсяС(Адрес, "http") Тогда
Адрес = СтрШаблон("<a href=%1>%1</a>", Адрес);
КонецЕсли;
Строка = СтроковыеФункцииКлиентСервер.ПодставитьПараметрыВСтроку(Строка,
Адрес);
КонецЕсли;
КонецПроцедуры
Процедура УдалитьПараметрыИзСтроки(Строка)
Для НомерПараметра = 1 По 3 Цикл
Строка = СтрЗаменить(Строка, ":%" + НомерПараметра, "");
Строка = СтрЗаменить(Строка, " %" + НомерПараметра, "");
Строка = СтрЗаменить(Строка, "%" + НомерПараметра, "");
КонецЦикла;
КонецПроцедуры
// Возвращаемое значение:
// Структура:
// * Длина - Число
// * Значение - Строка
// * НачальнаяПозиция - Число
//
Функция ВычислитьСтрНайтиПоРегулярномуВыражению(Текст, ВыражениеДляПоиска)
РезультатВычисления = Новый Структура("НачальнаяПозиция, Длина, Значение",0);
СистемнаяИнформация = Новый СистемнаяИнформация;
ВерсияПриложения = СистемнаяИнформация.ВерсияПриложения;
Если ОбщегоНазначенияКлиентСервер.СравнитьВерсии(ВерсияПриложения, "8.3.23.1437") < 0 Тогда
Возврат РезультатВычисления;
КонецЕсли;
Выражение = "СтрНайтиПоРегулярномуВыражению(Текст, ВыражениеДляПоиска)";
Попытка
РезультатВычисления = Вычислить(Выражение); // АПК:488 Исполняемый код - статический, безопасен.
Исключение
Возврат РезультатВычисления;
КонецПопытки;
Возврат РезультатВычисления; // РезультатПоискаПоРегулярномуВыражению
КонецФункции
// Только для внутреннего использования.
Функция ПрочитанныеДействияДляУстраненияОшибок(Знач СпособУстранения)
@@ -546,6 +620,14 @@
КонецФункции
Функция КаталогиСписковОтзываУЦ() Экспорт
АккредитованныеУдостоверяющиеЦентры = ЭлектроннаяПодписьСлужебныйПовтИсп.АккредитованныеУдостоверяющиеЦентры();
МодульЭлектроннаяПодписьКлиентСерверЛокализация = ОбщегоНазначения.ОбщийМодуль("ЭлектроннаяПодписьКлиентСерверЛокализация");
Возврат МодульЭлектроннаяПодписьКлиентСерверЛокализация.КаталогиСписковОтзываУЦ(АккредитованныеУдостоверяющиеЦентры);
КонецФункции
Функция УстановленныеКриптопровайдеры() Экспорт
Возврат ЭлектроннаяПодписьСлужебный.УстановленныеКриптопровайдеры();
@@ -1,4 +1,4 @@
<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.0 Transitional//EN"><html><head><style type="text/css">
<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.0 Transitional//EN"><html><head></head><style type="text/css">
.thinclient {
display: none
}
@@ -26,7 +26,7 @@
text-align: center;
font-size: x-large;
}
</style><meta http-equiv="content-type" content="text/html;charset=utf-8"></meta></head><body style="font-family:Arial, Helvetica, sans-serif;">
</style><body style="font-family:Arial, Helvetica, sans-serif;">
<p style="text-align: center;">
</p><table width="100%" border="0"><tbody><tr><td height="30">
<img class="bigPic" src="data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAANMAAAB4CAYAAABo3Mf0AAAACXBIWXMAAAsTAAALEwEAmpwYAAA/l2lUWHRYTUw6Y29tLmFkb2JlLnhtcAAAAAAAPD94cGFja2V0IGJlZ2luPSLvu78iIGlkPSJXNU0wTXBDZWhpSHpyZVN6TlRjemtjOWQiPz4gPHg6eG1wbWV0YSB4bWxuczp4PSJhZG9iZTpuczptZXRhLyIgeDp4bXB0az0iQWRvYmUgWE1QIENvcmUgNi4wLWMwMDIgNzkuMTY0NDg4LCAyMDIwLzA3LzEwLTIyOjA2OjUzICAgICAgICAiPiA8cmRmOlJERiB4bWxuczpyZGY9Imh0dHA6Ly93d3cudzMub3JnLzE5OTkvMDIvMjItcmRmLXN5bnRheC1ucyMiPiA8cmRmOkRlc2NyaXB0aW9uIHJkZjphYm91dD0iIiB4bWxuczpkYz0iaHR0cDovL3B1cmwub3JnL2RjL2VsZW1lbnRzLzEuMS8iIHhtbG5zOnhtcD0iaHR0cDovL25zLmFkb2JlLmNvbS94YXAvMS4wLyIgeG1sbnM6eG1wTU09Imh0dHA6Ly9ucy5hZG9iZS5jb20veGFwLzEuMC9tbS8iIHhtbG5zOnN0UmVmPSJodHRwOi8vbnMuYWRvYmUuY29tL3hhcC8xLjAvc1R5cGUvUmVzb3VyY2VSZWYjIiB4bWxuczpzdEV2dD0iaHR0cDovL25zLmFkb2JlLmNvbS94YXAvMS4wL3NUeXBlL1Jlc291cmNlRXZlbnQjIiB4bWxuczppbGx1c3RyYXRvcj0iaHR0cDovL25zLmFkb2JlLmNvbS9pbGx1c3RyYXRvci8xLjAvIiB4bWxuczpwZGY9Imh0dHA6Ly9ucy5hZG9iZS5jb20vcGRmLzEuMy8iIHhtbG5zOnhtcFRQZz0iaHR0cDovL25zLmFkb2JlLmNvbS94YXAvMS4wL3QvcGcvIiB4bWxuczpzdERpbT0iaHR0cDovL25zLmFkb2JlLmNvbS94YXAvMS4wL3NUeXBlL0RpbWVuc2lvbnMjIiB4bWxuczpzdEZudD0iaHR0cDovL25zLmFkb2JlLmNvbS94YXAvMS4wL3NUeXBlL0ZvbnQjIiB4bWxuczp4bXBHPSJodHRwOi8vbnMuYWRvYmUuY29tL3hhcC8xLjAvZy8iIHhtbG5zOnBob3Rvc2hvcD0iaHR0cDovL25zLmFkb2JlLmNvbS9waG90b3Nob3AvMS4wLyIgZGM6Zm9ybWF0PSJpbWFnZS9wbmciIHhtcDpNZXRhZGF0YURhdGU9IjIwMjItMDYtMDdUMTM6MTA6MjcrMDM6MDAiIHhtcDpNb2RpZnlEYXRlPSIyMDIyLTA2LTA3VDEzOjEwOjI3KzAzOjAwIiB4bXA6Q3JlYXRlRGF0ZT0iMjAyMi0wNi0wN1QxMzowODozOSswNDowMCIgeG1wOkNyZWF0b3JUb29sPSJBZG9iZSBJbGx1c3RyYXRvciAyNi4zIChXaW5kb3dzKSIgeG1wTU06SW5zdGFuY2VJRD0ieG1wLmlpZDowODZhMDJjZi1iMTg3LTcxNDYtYmY2Yi1iM2IyY2NjMTgzOGQiIHhtcE1NOkRvY3VtZW50SUQ9ImFkb2JlOmRvY2lkOnBob3Rvc2hvcDo0ZTNiNzA5OS0xZmExLTczNDItYThlMC02NTY3N2M1NTU0MDEiIHhtcE1NOk9yaWdpbmFsRG9jdW1lbnRJRD0idXVpZDo1RDIwODkyNDkzQkZEQjExOTE0QTg1OTBEMzE1MDhDOCIgeG1wTU06UmVuZGl0aW9uQ2xhc3M9InByb29mOnBkZiIgaWxsdXN0cmF0b3I6U3RhcnR1cFByb2ZpbGU9IlByaW50IiBpbGx1c3RyYXRvcjpDcmVhdG9yU3ViVG9vbD0iQUlSb2JpbiIgaWxsdXN0cmF0b3I6VHlwZT0iRG9jdW1lbnQiIHBkZjpQcm9kdWNlcj0iQWRvYmUgUERGIGxpYnJhcnkgMTYuMDciIHhtcFRQZzpOUGFnZXM9IjEiIHhtcFRQZzpIYXNWaXNpYmxlVHJhbnNwYXJlbmN5PSJUcnVlIiB4bXBUUGc6SGFzVmlzaWJsZU92ZXJwcmludD0iRmFsc2UiIHBob3Rvc2hvcDpDb2xvck1vZGU9IjMiIHBob3Rvc2hvcDpJQ0NQcm9maWxlPSJzUkdCIElFQzYxOTY2LTIuMSI+IDxkYzp0aXRsZT4gPHJkZjpBbHQ+IDxyZGY6bGkgeG1sOmxhbmc9IngtZGVmYXVsdCI+MjAyMl8wNl/QmNC90YHRgtGA0YPQutGG0LjRjyDQtNC70Y8g0J/QnzwvcmRmOmxpPiA8L3JkZjpBbHQ+IDwvZGM6dGl0bGU+IDx4bXBNTTpEZXJpdmVkRnJvbSBzdFJlZjppbnN0YW5jZUlEPSJ4bXAuaWlkOjc0NmQ1NDYyLTQ5NWYtZjU0Yy05MGRmLTAzZDNkMTc0MmE5MSIgc3RSZWY6ZG9jdW1lbnRJRD0ieG1wLmRpZDo3NDZkNTQ2Mi00OTVmLWY1NGMtOTBkZi0wM2QzZDE3NDJhOTEiIHN0UmVmOm9yaWdpbmFsRG9jdW1lbnRJRD0idXVpZDo1RDIwODkyNDkzQkZEQjExOTE0QTg1OTBEMzE1MDhDOCIgc3RSZWY6cmVuZGl0aW9uQ2xhc3M9InByb29mOnBkZiIvPiA8eG1wTU06SGlzdG9yeT4gPHJkZjpTZXE+IDxyZGY6bGkgc3RFdnQ6YWN0aW9uPSJzYXZlZCIgc3RFdnQ6aW5zdGFuY2VJRD0ieG1wLmlpZDplZWI2Y2Q0NC02ZTYzLWRjNGEtYWZhMi04NTdiMmU2YWFhZDYiIHN0RXZ0OndoZW49IjIwMjItMDMtMThUMTc6NDU6MTMrMDM6MDAiIHN0RXZ0OnNvZnR3YXJlQWdlbnQ9IkFkb2JlIElsbHVzdHJhdG9yIDI2LjEgKFdpbmRvd3MpIiBzdEV2dDpjaGFuZ2VkPSIvIi8+IDxyZGY6bGkgc3RFdnQ6YWN0aW9uPSJzYXZlZCIgc3RFdnQ6aW5zdGFuY2VJRD0ieG1wLmlpZDo1MjRiMzJmMy1kMzU1LWExNGMtOTMwYi03NDEwNDgxYjBhZWYiIHN0RXZ0OndoZW49IjIwMjItMDYtMDdUMTI6NTk6MzgrMDM6MDAiIHN0RXZ0OnNvZnR3YXJlQWdlbnQ9IkFkb2JlIElsbHVzdHJhdG9yIDI2LjMgKFdpbmRvd3MpIiBzdEV2dDpjaGFuZ2VkPSIvIi8+IDxyZGY6bGkgc3RFdnQ6YWN0aW9uPSJjb252ZXJ0ZWQiIHN0RXZ0OnBhcmFtZXRlcnM9ImZyb20gYXBwbGljYXRpb24vcGRmIHRvIGFwcGxpY2F0aW9uL3ZuZC5hZG9iZS5waG90b3Nob3AiLz4gPHJkZjpsaSBzdEV2dDphY3Rpb249InNhdmVkIiBzdEV2dDppbnN0YW5jZUlEPSJ4bXAuaWlkOjc0NmQ1NDYyLTQ5NWYtZjU0Yy05MGRmLTAzZDNkMTc0MmE5MSIgc3RFdnQ6d2hlbj0iMjAyMi0wNi0wN1QxMzoxMDoyNyswMzowMCIgc3RFdnQ6c29mdHdhcmVBZ2VudD0iQWRvYmUgUGhvdG9zaG9wIDIyLjAgKFdpbmRvd3MpIiBzdEV2dDpjaGFuZ2VkPSIvIi8+IDxyZGY6bGkgc3RFdnQ6YWN0aW9uPSJjb252ZXJ0ZWQiIHN0RXZ0OnBhcmFtZXRlcnM9ImZyb20gYXBwbGljYXRpb24vcGRmIHRvIGltYWdlL3BuZyIvPiA8cmRmOmxpIHN0RXZ0OmFjdGlvbj0iZGVyaXZlZCIgc3RFdnQ6cGFyYW1ldGVycz0iY29udmVydGVkIGZyb20gYXBwbGljYXRpb24vdm5kLmFkb2JlLnBob3Rvc2hvcCB0byBpbWFnZS9wbmciLz4gPHJkZjpsaSBzdEV2dDphY3Rpb249InNhdmVkIiBzdEV2dDppbnN0YW5jZUlEPSJ4bXAuaWlkOjA4NmEwMmNmLWIxODctNzE0Ni1iZjZiLWIzYjJjY2MxODM4ZCIgc3RFdnQ6d2hlbj0iMjAyMi0wNi0wN1QxMzoxMDoyNyswMzowMCIgc3RFdnQ6c29mdHdhcmVBZ2VudD0iQWRvYmUgUGhvdG9zaG9wIDIyLjAgKFdpbmRvd3MpIiBzdEV2dDpjaGFuZ2VkPSIvIi8+IDwvcmRmOlNlcT4gPC94bXBNTTpIaXN0b3J5PiA8eG1wVFBnOk1heFBhZ2VTaXplIHN0RGltOnc9IjIxMS4wMDAwMDAiIHN0RGltOmg9IjEyMC4wMDAwMDAiIHN0RGltOnVuaXQ9IlBpeGVscyIvPiA8eG1wVFBnOkZvbnRzPiA8cmRmOkJhZz4gPHJkZjpsaSBzdEZudDpmb250TmFtZT0iQXJpYWwtQm9sZE1UIiBzdEZudDpmb250RmFtaWx5PSJBcmlhbCBNVCIgc3RGbnQ6Zm9udEZhY2U9IkJvbGQiIHN0Rm50OmZvbnRUeXBlPSJPcGVuIFR5cGUiIHN0Rm50OnZlcnNpb25TdHJpbmc9IjAwMS4wMDEiIHN0Rm50OmNvbXBvc2l0ZT0iRmFsc2UiIHN0Rm50OmZvbnRGaWxlTmFtZT0iQXJpYWwtQm9sZE1ULm90ZiIvPiA8cmRmOmxpIHN0Rm50OmZvbnROYW1lPSJBcmlhbE1UIiBzdEZudDpmb250RmFtaWx5PSJBcmlhbCIgc3RGbnQ6Zm9udEZhY2U9IlJlZ3VsYXIiIHN0Rm50OmZvbnRUeXBlPSJPcGVuIFR5cGUiIHN0Rm50OnZlcnNpb25TdHJpLine truncated
@@ -1,4 +1,4 @@
<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.0 Transitional//EN"><html><head><meta content="text/html;charset=utf-8" http-equiv="content-type"></meta><link rel="stylesheet" type="text/css" href="v8help://service_book/service_style"></link><meta name="GENERATOR" content="MSHTML 9.00.8112.16443"></meta></head><body>
<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.0 Transitional//EN"><html><head><meta content="text/html; charset=utf-8" http-equiv="Content-Type"></meta><link rel="stylesheet" type="text/css" href="v8help://service_book/service_style"></link><meta name="GENERATOR" content="MSHTML 9.00.8112.16443"></meta></head><body>
<h1><font color="#00008b">Установка обновления конфигурации
<hr></hr></font></h1>
<p>Для установки обновления конфигурации необходимо выполнить следующие действия:</p>
+9 -9
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="08ff1d34-f6ef-4546-9f62-3937fc946d01">
<mdclass:Configuration xmlns:mdclass="http://g5.1c.ru/v8/dt/metadata/mdclass" uuid="1c024b47-8b0a-460a-877b-97d5872d03e8">
<name>БиблиотекаСтандартныхПодсистем</name>
<synonym>
<key>ru</key>
<value>Библиотека стандартных подсистем, редакция 3.1</value>
</synonym>
<containedObjects classId="9cd510cd-abfc-11d4-9434-004095e12fc7" objectId="9f806840-a8cd-4311-8ab3-fe1d7396b764"/>
<containedObjects classId="9fcd25a0-4822-11d4-9414-008048da11f9" objectId="482a5dbd-31ab-40e5-b638-d090a6a0a091"/>
<containedObjects classId="e3687481-0a87-462c-a166-9f34594f9bba" objectId="e8a0107a-ef52-4005-9eff-3708bf9777ee"/>
<containedObjects classId="9de14907-ec23-4a07-96f0-85521cb6b53b" objectId="c406869b-91a8-4781-a237-e9ffb3796d71"/>
<containedObjects classId="51f2d5d8-ea4d-4064-8892-82951750031e" objectId="d4b98e4c-97ca-4cd8-ae7f-262ade45d6be"/>
<containedObjects classId="e68182ea-4237-4383-967f-90c1e3370bc7" objectId="869a7b30-e0f2-4969-abad-742eda6ac886"/>
<containedObjects classId="fb282519-d103-4dd3-bc12-cb271d631dfc" objectId="99c8397e-1801-4563-bf73-5fb0a814609f"/>
<containedObjects classId="9cd510cd-abfc-11d4-9434-004095e12fc7" objectId="cf6e0537-c98f-47dc-8968-74f1412287e7"/>
<containedObjects classId="9fcd25a0-4822-11d4-9414-008048da11f9" objectId="e437d215-9355-495b-b3bd-4907d74bbb86"/>
<containedObjects classId="e3687481-0a87-462c-a166-9f34594f9bba" objectId="406b139e-8280-4051-8445-7dfd6c4b1eca"/>
<containedObjects classId="9de14907-ec23-4a07-96f0-85521cb6b53b" objectId="fdefe728-6700-4ab8-a42a-0abe83745918"/>
<containedObjects classId="51f2d5d8-ea4d-4064-8892-82951750031e" objectId="b5ce69de-8046-48f4-960f-5644d6fac68d"/>
<containedObjects classId="e68182ea-4237-4383-967f-90c1e3370bc7" objectId="a86f6b0d-f4c5-421e-afcd-42821bad5f59"/>
<containedObjects classId="fb282519-d103-4dd3-bc12-cb271d631dfc" objectId="ddd7ee54-f53c-4ac5-a9d7-aec6c6cdab62"/>
<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.10.329</version>
<version>3.1.10.344</version>
<updateCatalogAddress>http://downloads.v8.1c.ru/tmplts/</updateCatalogAddress>
<includeHelpInContents>true</includeHelpInContents>
<usedMobileApplicationFunctionalities>
@@ -1 +1 @@
{6,1,1,c63cdd1f-6709-41fe-8587-9e84b7c55241,1,be64a089-7e10-487b-9425-9d20b43a31d0,"3.1.10.329","Фирма ""1С""","БиблиотекаСтандартныхПодсистем",7665,1,0,08ff1d34-f6ef-4546-9f62-3937fc946d01,08ff1d34-f6ef-4546-9f62-3937fc946d01,1,0,db4a9ccb-9ef5-4b3c-8577-b6fe5db1b62e,db4a9ccb-9ef5-4b3c-8577-b6fe5db1b62e,1,0,9233322b-dfdb-4c66-91fe-1299292d40a5,9233322b-dfdb-4c66-91fe-1299292d40a5,1,0,fa04bf1e-69c0-4998-a939-039fcaba83c8,fa04bf1e-69c0-4998-a939-039fcaba83c8,1,0,7795348b-2f52-47f7-bf00-e11e5e795a43,7795348b-2f52-47f7-bf00-e11e5e795a43,1,0,0421b67e-ed26-491d-ab98-ec59002ed4ce,0421b67e-ed26-491d-ab98-ec59002ed4ce,1,0,bb47ced2-31f9-4870-8633-20b986e53ccc,bb47ced2-31f9-4870-8633-20b986e53ccc,1,0,739c01a9-1125-45ef-ab4e-8c73af4eeff0,739c01a9-1125-45ef-ab4e-8c73af4eeff0,1,0,cdbd26b1-9583-46e8-adf7-8cc705639892,cdbd26b1-9583-46e8-adf7-8cc705639892,1,0,c0e38c3e-7088-4e35-9d84-2d0ab9655402,c0e38c3e-7088-4e35-9d84-2d0ab9655402,1,0,1098786f-dd24-4cce-b212-be0cb5f01735,1098786f-dd24-4cce-b212-be0cb5f01735,1,0,3c0037f3-4422-4836-b116-8c72e32bdd55,3c0037f3-4422-4836-b116-8c72e32bdd55,1,0,6f7c6c31-206b-4010-bdad-1ad2e304f154,6f7c6c31-206b-4010-bdad-1ad2e304f154,1,0,a8659e53-8c6b-4b0c-9736-fe93a91e4d69,a8659e53-8c6b-4b0c-9736-fe93a91e4d69,1,0,fe9a1d1a-19c0-499f-8e1b-09cadabe882f,fe9a1d1a-19c0-499f-8e1b-09cadabe882f,1,0,5b68d479-7880-44de-84e3-7f578b43f0dc,5b68d479-7880-44de-84e3-7f578b43f0dc,1,0,4cbbdbaf-1f3a-46cd-8c42-28cdcfa32c06,4cbbdbaf-1f3a-46cd-8c42-28cdcfa32c06,1,0,b4629308-42de-4ce8-8591-cf0c2399a9a2,b4629308-42de-4ce8-8591-cf0c2399a9a2,1,0,c7e984ae-1dbb-4041-b18a-bfd0d63a002f,c7e984ae-1dbb-4041-b18a-bfd0d63a002f,1,0,bb0424b8-dfd1-4a27-bd66-9dea3ffc77c4,bb0424b8-dfd1-4a27-bd66-9dea3ffc77c4,1,0,a4ac0a50-ee39-4dc1-b84f-eec8fe485f03,a4ac0a50-ee39-4dc1-b84f-eec8fe485f03,1,0,1861ee4f-fd8c-4afa-8441-c074bf51f67e,1861ee4f-fd8c-4afa-8441-c074bf51f67e,1,0,de7ed8f7-3c02-47e0-aea8-4747ac68a5d5,de7ed8f7-3c02-47e0-aea8-4747ac68a5d5,1,0,b93b8760-6200-40ee-8bdc-875ba80a6155,b93b8760-6200-40ee-8bdc-875ba80a6155,1,0,e8b248d9-9049-456a-9c7d-7a0462cc67ab,e8b248d9-9049-456a-9c7d-7a0462cc67ab,1,0,d4562287-440d-4462-9de2-7097ccbf3764,d4562287-440d-4462-9de2-7097ccbf3764,1,0,1983fe34-c984-4659-ba41-0e94504f8989,1983fe34-c984-4659-ba41-0e94504f8989,1,0,ec797c75-02c5-4cf5-9dd4-26cd46c99519,ec797c75-02c5-4cf5-9dd4-26cd46c99519,1,0,6fccdf59-fc99-4a2b-a144-fffe438a147c,6fccdf59-fc99-4a2b-a144-fffe438a147c,1,0,153e11ac-f898-46a5-98c6-734adb933ca2,153e11ac-f898-46a5-98c6-734adb933ca2,1,0,af8bd73a-d8e8-487d-8f36-d835ab10ea3a,af8bd73a-d8e8-487d-8f36-d835ab10ea3a,1,0,08a413ff-bebd-42e5-8ff3-2115746a0844,08a413ff-bebd-42e5-8ff3-2115746a0844,1,0,7d8acec9-f5a9-411e-921c-446ed0dd3332,7d8acec9-f5a9-411e-921c-446ed0dd3332,1,0,3eca2d7c-5946-4d13-ba84-e3ab5ef38b5b,3eca2d7c-5946-4d13-ba84-e3ab5ef38b5b,1,0,f24de2ea-fcda-4052-b90f-e9d84314c4f2,f24de2ea-fcda-4052-b90f-e9d84314c4f2,1,0,ff8ae395-c740-4a30-a048-0d57eef6267f,ff8ae395-c740-4a30-a048-0d57eef6267f,1,0,51d06532-f61a-4ed5-afaa-cc4563633e0c,51d06532-f61a-4ed5-afaa-cc4563633e0c,1,0,0e49d980-581b-459f-a4b0-024e8c97e4c0,0e49d980-581b-459f-a4b0-024e8c97e4c0,1,0,da9b32e6-5b93-45a6-84b2-238d57541e18,da9b32e6-5b93-45a6-84b2-238d57541e18,1,0,e43d69c8-b284-47da-b236-611bc94a15b6,e43d69c8-b284-47da-b236-611bc94a15b6,1,0,31eeaa05-6c49-41fe-b840-1edbad4ccac7,31eeaa05-6c49-41fe-b840-1edbad4ccac7,1,0,842c8662-8f39-405e-9665-cbdabc116159,842c8662-8f39-405e-9665-cbdabc116159,1,0,a3001de6-272f-444e-a8db-ec8cc3a670a2,a3001de6-272f-444e-a8db-ec8cc3a670a2,1,0,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-b7bLine truncated
{6,1,1,984af2ca-fdbc-46de-b7a2-13e1e17a73cc,1,2ae60c02-9eb0-4e18-8951-07fbfbf880cf,"3.1.10.344","Фирма ""1С""","БиблиотекаСтандартныхПодсистем",7665,1,0,1c024b47-8b0a-460a-877b-97d5872d03e8,1c024b47-8b0a-460a-877b-97d5872d03e8,1,0,db4a9ccb-9ef5-4b3c-8577-b6fe5db1b62e,db4a9ccb-9ef5-4b3c-8577-b6fe5db1b62e,1,0,9233322b-dfdb-4c66-91fe-1299292d40a5,9233322b-dfdb-4c66-91fe-1299292d40a5,1,0,fa04bf1e-69c0-4998-a939-039fcaba83c8,fa04bf1e-69c0-4998-a939-039fcaba83c8,1,0,7795348b-2f52-47f7-bf00-e11e5e795a43,7795348b-2f52-47f7-bf00-e11e5e795a43,1,0,0421b67e-ed26-491d-ab98-ec59002ed4ce,0421b67e-ed26-491d-ab98-ec59002ed4ce,1,0,bb47ced2-31f9-4870-8633-20b986e53ccc,bb47ced2-31f9-4870-8633-20b986e53ccc,1,0,739c01a9-1125-45ef-ab4e-8c73af4eeff0,739c01a9-1125-45ef-ab4e-8c73af4eeff0,1,0,cdbd26b1-9583-46e8-adf7-8cc705639892,cdbd26b1-9583-46e8-adf7-8cc705639892,1,0,c0e38c3e-7088-4e35-9d84-2d0ab9655402,c0e38c3e-7088-4e35-9d84-2d0ab9655402,1,0,1098786f-dd24-4cce-b212-be0cb5f01735,1098786f-dd24-4cce-b212-be0cb5f01735,1,0,3c0037f3-4422-4836-b116-8c72e32bdd55,3c0037f3-4422-4836-b116-8c72e32bdd55,1,0,6f7c6c31-206b-4010-bdad-1ad2e304f154,6f7c6c31-206b-4010-bdad-1ad2e304f154,1,0,a8659e53-8c6b-4b0c-9736-fe93a91e4d69,a8659e53-8c6b-4b0c-9736-fe93a91e4d69,1,0,fe9a1d1a-19c0-499f-8e1b-09cadabe882f,fe9a1d1a-19c0-499f-8e1b-09cadabe882f,1,0,5b68d479-7880-44de-84e3-7f578b43f0dc,5b68d479-7880-44de-84e3-7f578b43f0dc,1,0,4cbbdbaf-1f3a-46cd-8c42-28cdcfa32c06,4cbbdbaf-1f3a-46cd-8c42-28cdcfa32c06,1,0,b4629308-42de-4ce8-8591-cf0c2399a9a2,b4629308-42de-4ce8-8591-cf0c2399a9a2,1,0,c7e984ae-1dbb-4041-b18a-bfd0d63a002f,c7e984ae-1dbb-4041-b18a-bfd0d63a002f,1,0,bb0424b8-dfd1-4a27-bd66-9dea3ffc77c4,bb0424b8-dfd1-4a27-bd66-9dea3ffc77c4,1,0,a4ac0a50-ee39-4dc1-b84f-eec8fe485f03,a4ac0a50-ee39-4dc1-b84f-eec8fe485f03,1,0,1861ee4f-fd8c-4afa-8441-c074bf51f67e,1861ee4f-fd8c-4afa-8441-c074bf51f67e,1,0,de7ed8f7-3c02-47e0-aea8-4747ac68a5d5,de7ed8f7-3c02-47e0-aea8-4747ac68a5d5,1,0,b93b8760-6200-40ee-8bdc-875ba80a6155,b93b8760-6200-40ee-8bdc-875ba80a6155,1,0,e8b248d9-9049-456a-9c7d-7a0462cc67ab,e8b248d9-9049-456a-9c7d-7a0462cc67ab,1,0,d4562287-440d-4462-9de2-7097ccbf3764,d4562287-440d-4462-9de2-7097ccbf3764,1,0,1983fe34-c984-4659-ba41-0e94504f8989,1983fe34-c984-4659-ba41-0e94504f8989,1,0,ec797c75-02c5-4cf5-9dd4-26cd46c99519,ec797c75-02c5-4cf5-9dd4-26cd46c99519,1,0,6fccdf59-fc99-4a2b-a144-fffe438a147c,6fccdf59-fc99-4a2b-a144-fffe438a147c,1,0,153e11ac-f898-46a5-98c6-734adb933ca2,153e11ac-f898-46a5-98c6-734adb933ca2,1,0,af8bd73a-d8e8-487d-8f36-d835ab10ea3a,af8bd73a-d8e8-487d-8f36-d835ab10ea3a,1,0,08a413ff-bebd-42e5-8ff3-2115746a0844,08a413ff-bebd-42e5-8ff3-2115746a0844,1,0,7d8acec9-f5a9-411e-921c-446ed0dd3332,7d8acec9-f5a9-411e-921c-446ed0dd3332,1,0,3eca2d7c-5946-4d13-ba84-e3ab5ef38b5b,3eca2d7c-5946-4d13-ba84-e3ab5ef38b5b,1,0,f24de2ea-fcda-4052-b90f-e9d84314c4f2,f24de2ea-fcda-4052-b90f-e9d84314c4f2,1,0,ff8ae395-c740-4a30-a048-0d57eef6267f,ff8ae395-c740-4a30-a048-0d57eef6267f,1,0,51d06532-f61a-4ed5-afaa-cc4563633e0c,51d06532-f61a-4ed5-afaa-cc4563633e0c,1,0,0e49d980-581b-459f-a4b0-024e8c97e4c0,0e49d980-581b-459f-a4b0-024e8c97e4c0,1,0,da9b32e6-5b93-45a6-84b2-238d57541e18,da9b32e6-5b93-45a6-84b2-238d57541e18,1,0,e43d69c8-b284-47da-b236-611bc94a15b6,e43d69c8-b284-47da-b236-611bc94a15b6,1,0,31eeaa05-6c49-41fe-b840-1edbad4ccac7,31eeaa05-6c49-41fe-b840-1edbad4ccac7,1,0,842c8662-8f39-405e-9665-cbdabc116159,842c8662-8f39-405e-9665-cbdabc116159,1,0,a3001de6-272f-444e-a8db-ec8cc3a670a2,a3001de6-272f-444e-a8db-ec8cc3a670a2,1,0,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-b7bLine truncated
@@ -42,7 +42,7 @@
ИначеЕсли ОбщегоНазначения.ЭтоПодчиненныйУзелРИБ() Тогда
ТекстОшибки =
НСтр("ru = 'Изменение использования групп пользователей следует выполнить в главной узле информационной базы.'");
НСтр("ru = 'Изменение использования групп пользователей следует выполнить в главном узле информационной базы.'");
ВызватьИсключение ТекстОшибки;
КонецЕсли;
@@ -29,7 +29,7 @@
ИначеЕсли ОбщегоНазначения.ЭтоПодчиненныйУзелРИБ() Тогда
ТекстОшибки =
НСтр("ru = 'Изменение использования групп пользователей следует выполнить в главной узле информационной базы.'");
НСтр("ru = 'Изменение использования групп пользователей следует выполнить в главном узле информационной базы.'");
ВызватьИсключение ТекстОшибки;
КонецЕсли;
@@ -36,7 +36,7 @@
ИначеЕсли ОбщегоНазначения.ЭтоПодчиненныйУзелРИБ() Тогда
ТекстОшибки =
НСтр("ru = 'Изменение ограничения доступа на уровне записей следует выполнить в главной узле информационной базы.'");
НСтр("ru = 'Изменение ограничения доступа на уровне записей следует выполнить в главном узле информационной базы.'");
ВызватьИсключение ТекстОшибки;
КонецЕсли;
@@ -44,7 +44,7 @@
ВызватьИсключение ТекстОшибки;
ИначеЕсли ОбщегоНазначения.ЭтоПодчиненныйУзелРИБ() Тогда
ТекстОшибки =
НСтр("ru = 'Изменение варианта работы Стандартный/Производительный следует выполнить в главной узле информационной базы.'");
НСтр("ru = 'Изменение варианта работы Стандартный/Производительный следует выполнить в главном узле информационной базы.'");
ВызватьИсключение ТекстОшибки;
КонецЕсли;
@@ -1,4 +1,4 @@
<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.0 Transitional//EN"><html><head><meta content="text/html;charset=utf-8" http-equiv="content-type"></meta><link rel="stylesheet" type="text/css" href="v8help://service_book/service_style"></link><meta name="GENERATOR" content="MSHTML 9.00.8112.16421"></meta></head><body>
<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.0 Transitional//EN"><html><head><meta content="text/html; charset=utf-8" http-equiv="Content-Type"></meta><link rel="stylesheet" type="text/css" href="v8help://service_book/service_style"></link><meta name="GENERATOR" content="MSHTML 9.00.8112.16421"></meta></head><body>
<h1>Редактирование формулы</h1>
<p style="MARGIN-LEFT: 0px">Предназначена для быстрого формирования формулы из доступных в панели <strong>Операторы и функции</strong> элементов. Открывается из редактируемых реквизитов с помощью кнопки <img src="StdPicture.InputFieldSelect"></img>.</p>
<p style="MARGIN-LEFT: 0px">Составьте формулу, нажмите кнопку <strong>Сохранить и закрыть</strong>.</p>
@@ -1341,7 +1341,7 @@
// которое требуется для выполнения алгоритма (при этом в тексте алгоритма обращение к данному
// значению должно осуществляться как к имени переменной Параметры).
//
Процедура ВыполнитьВБезопасномРежиме(Знач Алгоритм, Знач Параметры = Неопределено) Экспорт
Процедура ВыполнитьВБезопасномРежиме(Знач Алгоритм, Знач Параметры = Неопределено)
УстановитьБезопасныйРежим(Истина);
@@ -1381,7 +1381,7 @@
// // Пример 2
// Результат = ОбщегоНазначения.ВычислитьВБезопасномРежиме("СтандартныеПодсистемыСервер.ВерсияБиблиотеки()");
//
Функция ВычислитьВБезопасномРежиме(Знач Выражение, Знач Параметры = Неопределено) Экспорт
Функция ВычислитьВБезопасномРежиме(Знач Выражение, Знач Параметры = Неопределено)
УстановитьБезопасныйРежим(Истина);
@@ -1,4 +1,4 @@
<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.0 Transitional//EN"><html><head><meta content="text/html;charset=utf-8" http-equiv="content-type"></meta><link rel="stylesheet" type="text/css" href="v8help://service_book/service_style"></link><meta name="GENERATOR" content="MSHTML 11.00.9600.17126"></meta></head><body>
<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.0 Transitional//EN"><html><head><meta content="text/html; charset=utf-8" http-equiv="Content-Type"></meta><link rel="stylesheet" type="text/css" href="v8help://service_book/service_style"></link><meta name="GENERATOR" content="MSHTML 11.00.9600.17126"></meta></head><body>
<p>Предназначен для просмотра анкет, работа над которыми была завершена.</p>
<p>Открывается с рабочего стола респондента по команде <strong>Архив анкет</strong>.</p>
<p>В списке отображаются анкеты, у которых составитель установил флажок <strong>Показывать в архиве анкет</strong>.</p>
@@ -118,7 +118,7 @@
ЗаписьЖурналаРегистрации(ИмяСобытия, УровеньЖурналаРегистрации.Информация, , ,
НСтр("ru = 'Начата регламентная загрузка курсов валют'"));
ТекущаяДата = ТекущаяДатаСеанса();
ТекущаяДата = НачалоДня(ТекущаяДатаСеанса());
ПриЗагрузкеВозниклиОшибки = Ложь;
ВалютыЗагружаемыеИзИнтернета = ВалютыЗагружаемыеИзИнтернета();
@@ -145,7 +145,9 @@
Пока Выборка.Следующий() Цикл
НачалоПериода = ?(Выборка.ДатаКурса = '198001010000', НачалоГода(ДобавитьМесяц(ТекущаяДата, -12)), Выборка.ДатаКурса + 60*60*24);
СписокВалют = ОбщегоНазначенияКлиентСервер.ЗначениеВМассиве(Выборка);
Если НачалоПериода <= КонецПериода Тогда
ЗагрузитьКурсыВалютПоПараметрам(СписокВалют, НачалоПериода, КонецПериода, ВалютыЗагружаемыеИзИнтернета, ПриЗагрузкеВозниклиОшибки);
КонецЕсли;
КонецЦикла;
Иначе
Результат = ЗагрузитьКурсыВалютПоПараметрам(ПараметрыЗагрузки.СписокВалют,
@@ -1,4 +1,4 @@
<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.0 Transitional//EN"><html><head><meta content="text/html;charset=utf-8" http-equiv="content-type"></meta><link rel="stylesheet" type="text/css" href="v8help://service_book/service_style"></link><meta name="GENERATOR" content="MSHTML 11.00.9600.17239"></meta></head><body>
<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.0 Transitional//EN"><html><head><meta content="text/html; charset=utf-8" http-equiv="Content-Type"></meta><link rel="stylesheet" type="text/css" href="v8help://service_book/service_style"></link><meta name="GENERATOR" content="MSHTML 11.00.9600.17239"></meta></head><body>
<p>Предназначена для сохранения настройки выгрузки. </p>
<p>Открывается с помощью кнопки <strong>Настройки</strong> из окна <a href="DataProcessor.ИнтерактивноеИзменениеВыгрузки/Help">Интерактивное изменение выгрузки</a>.</p>
<p>В списке приводятся <strong>Ранее сохраненные настройки</strong>.</p>
@@ -1,4 +1,4 @@
<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.0 Transitional//EN"><html><head><meta content="text/html;charset=utf-8" http-equiv="content-type"></meta><meta name="GENERATOR" content="MSHTML 11.00.10570.1001"></meta></head><body>
<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.0 Transitional//EN"><html><head><meta content="text/html; charset=utf-8" http-equiv="Content-Type"></meta><meta name="GENERATOR" content="MSHTML 11.00.10570.1001"></meta></head><body>
<p align="center"><font size="3" face="Verdana"><strong>УСЛОВИЯ РАСПРОСТРАНЕНИЯ ОБНОВЛЕНИЙ ПРОГРАММ "1С:ПРЕДПРИЯТИЕ"</strong></font></p>
<p><font size="2" face="Verdana">Обновления к программам производства фирмы "1С", также как и сами программы, являются объектами исключительного права фирмы "1С" и распространяются по правилам, установленным фирмой "1С" как правообладателем в соответствии со ст. 1225 Гражданского кодекса.</font></p>
<p><font size="2" face="Verdana">Право использования обновлений предоставляется только при подключении к официальной поддержке. Для этого необходимо:</font></p>
@@ -1,4 +1,4 @@
<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.0 Transitional//EN"><html><head><meta content="text/html;charset=utf-8" http-equiv="content-type"></meta><link rel="stylesheet" type="text/css" href="__STYLE__"></link><meta name="GENERATOR" content="MSHTML 9.00.8112.16470"></meta><style>H1 {
<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.0 Transitional//EN"><html><head><meta content="text/html; charset=utf-8" http-equiv="Content-Type"></meta><link rel="stylesheet" type="text/css" href="__STYLE__"></link><meta name="GENERATOR" content="MSHTML 9.00.8112.16470"></meta><style>H1 {
TEXT-ALIGN: left; FONT-FAMILY: Arial, Tahoma; COLOR: #003366; FONT-SIZE: 18pt; FONT-WEIGHT: bold
}
.Programtext {
@@ -1,4 +1,4 @@
<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.0 Transitional//EN"><html><head><meta content="text/html;charset=utf-8" http-equiv="content-type"></meta><link rel="stylesheet" type="text/css" href="__STYLE__"></link><meta name="GENERATOR" content="MSHTML 9.00.8112.16421"></meta><style>H1 {
<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.0 Transitional//EN"><html><head><meta content="text/html; charset=utf-8" http-equiv="Content-Type"></meta><link rel="stylesheet" type="text/css" href="__STYLE__"></link><meta name="GENERATOR" content="MSHTML 9.00.8112.16421"></meta><style>H1 {
TEXT-ALIGN: left; FONT-FAMILY: Arial, Tahoma; COLOR: #003366; FONT-SIZE: 18pt; FONT-WEIGHT: bold
}
.Programtext {
@@ -1,4 +1,4 @@
<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.0 Transitional//EN"><html><head><meta content="text/html;charset=utf-8" http-equiv="content-type"></meta><link rel="stylesheet" type="text/css" href="v8help://service_book/service_style"></link><meta name="GENERATOR" content="MSHTML 11.00.10570.1001"></meta></head><body>
<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.0 Transitional//EN"><html><head><meta content="text/html; charset=utf-8" http-equiv="Content-Type"></meta><link rel="stylesheet" type="text/css" href="v8help://service_book/service_style"></link><meta name="GENERATOR" content="MSHTML 11.00.10570.1001"></meta></head><body>
<p>Предназначена для импорта замеров производительности вручную для анализа в этой информационной базе.</p>
<p>Укажите путь к файлу на компьютере в поле <strong>Файл импорта</strong>.</p>
<h3>См. также:</h3>
@@ -1,4 +1,4 @@
<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.0 Transitional//EN"><html><head><meta content="text/html;charset=utf-8" http-equiv="content-type"></meta><link rel="stylesheet" type="text/css" href="v8help://service_book/service_style"></link><meta name="GENERATOR" content="MSHTML 11.00.9600.18349"></meta><style>H1 {
<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.0 Transitional//EN"><html><head><meta content="text/html; charset=utf-8" http-equiv="Content-Type"></meta><link rel="stylesheet" type="text/css" href="v8help://service_book/service_style"></link><meta name="GENERATOR" content="MSHTML 11.00.9600.18349"></meta><style>H1 {
FONT-SIZE: 18pt; FONT-FAMILY: Arial, Tahoma; FONT-WEIGHT: bold; COLOR: #003366; TEXT-ALIGN: left
}
.Programtext {
@@ -1,4 +1,4 @@
<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.0 Transitional//EN"><html><head><meta content="text/html;charset=utf-8" http-equiv="content-type"></meta><link rel="stylesheet" type="text/css" href="v8help://service_book/service_style"></link><meta name="GENERATOR" content="MSHTML 11.00.9600.18618"></meta><style>H1 {
<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.0 Transitional//EN"><html><head><meta content="text/html; charset=utf-8" http-equiv="Content-Type"></meta><link rel="stylesheet" type="text/css" href="v8help://service_book/service_style"></link><meta name="GENERATOR" content="MSHTML 11.00.9600.18618"></meta><style>H1 {
FONT-SIZE: 18pt; FONT-FAMILY: Arial, Tahoma; FONT-WEIGHT: bold; COLOR: #003366; TEXT-ALIGN: left
}
.Programtext {
@@ -136,37 +136,6 @@
<placementArea>UserCmds</placementArea>
<representationInContextMenu>Auto</representationInContextMenu>
</items>
<items xsi:type="form:Button">
<name>УстановитьLISSI</name>
<id>12</id>
<title>
<key>ru</key>
<value>LISSI-CSP</value>
</title>
<visible>true</visible>
<enabled>true</enabled>
<userVisible>
<common>true</common>
</userVisible>
<extendedTooltip>
<name>УстановитьLISSIРасширеннаяПодсказка</name>
<id>13</id>
<type>Label</type>
<autoMaxWidth>true</autoMaxWidth>
<autoMaxHeight>true</autoMaxHeight>
<extInfo xsi:type="form:LabelDecorationExtInfo">
<horizontalAlign>Left</horizontalAlign>
</extInfo>
</extendedTooltip>
<type>Hyperlink</type>
<commandName>Form.Command.УстановитьLISSI</commandName>
<buttonImportance>Normal</buttonImportance>
<representation>Auto</representation>
<autoMaxWidth>true</autoMaxWidth>
<autoMaxHeight>true</autoMaxHeight>
<placementArea>UserCmds</placementArea>
<representationInContextMenu>Auto</representationInContextMenu>
</items>
<items xsi:type="form:Button">
<name>УстановитьSignalCOM</name>
<id>18</id>
@@ -232,7 +201,7 @@
<id>20</id>
<title>
<key>ru</key>
<value>    *Программа, сертифицированная ФСБ и ФСТЭК, соответствует стандартам безопасности, принятым в России и поддерживает отечественные стандарты безопасности ГОСТ Р 34.11-2012 и ГОСТ Р 34.10-2012.</value>
<value> *Приложение, сертифицированное ФСБ и ФСТЭК, соответствует стандартам безопасности, принятым в России и поддерживает отечественные стандарты безопасности ГОСТ Р 34.11-2012 и ГОСТ Р 34.10-2012.</value>
</title>
<visible>true</visible>
<enabled>true</enabled>
@@ -299,28 +268,6 @@
<currentRowUse>Auto</currentRowUse>
<selectedRowsUse>Auto</selectedRowsUse>
</formCommands>
<formCommands>
<name>УстановитьLISSI</name>
<title>
<key>ru</key>
<value>LISSI-CSP</value>
</title>
<id>2</id>
<use>
<common>true</common>
</use>
<picture xsi:type="core:PictureRef">
<picture>CommonPicture.ТипГиперссылка</picture>
</picture>
<action xsi:type="form:FormCommandHandlerContainer">
<handler>
<name>УстановитьLISSI</name>
</handler>
</action>
<representation>TextPicture</representation>
<currentRowUse>Auto</currentRowUse>
<selectedRowsUse>Auto</selectedRowsUse>
</formCommands>
<formCommands>
<name>УстановитьVipNet</name>
<title>
@@ -42,13 +42,6 @@
КонецПроцедуры
&НаКлиенте
Процедура УстановитьLISSI(Команда)
ЭлектроннаяПодписьСлужебныйКлиент.УстановитьLISSI();
КонецПроцедуры
&НаКлиенте
Процедура УстановитьSignalCOM(Команда)
@@ -177,6 +177,7 @@
Настройка.АлгоритмыПодписи.Добавить("GOST R 34.10-12 256");
Настройка.АлгоритмыХеширования.Добавить("GOST R 34.11-12 256");
Настройка.АлгоритмыШифрования.Добавить("GOST 28147-89");
Настройка.Неактуальная = Истина;
// Сигнал-КОМ CSP (RFC 4357, ГОСТ 2012/256).
Настройка = Настройки.Добавить();
@@ -209,6 +210,7 @@
Настройка.АлгоритмыХеширования.Добавить("GR 34.11-2012 256");
Настройка.АлгоритмыХеширования.Добавить("GR 34.11-2012 512");
Настройка.АлгоритмыШифрования.Добавить("GOST 28147-89");
Настройка.Неактуальная = Истина;
// КриптоПро CSP (ГОСТ 2001).
Настройка = Настройки.Добавить();
@@ -225,6 +227,7 @@
Настройка.АлгоритмыШифрования.Добавить("GOST 28147-89");
Настройка.АлгоритмыПроверкиПодписи.Добавить("GR 34.10-2012 256");
Настройка.АлгоритмыПроверкиПодписи.Добавить("GR 34.10-2012 512");
Настройка.Неактуальная = Истина;
// КриптоПро CSP (ГОСТ 2001) KC1.
Настройка = Настройки.Добавить();
@@ -242,6 +245,7 @@
Настройка.АлгоритмыПроверкиПодписи.Добавить("GR 34.10-2012 256");
Настройка.АлгоритмыПроверкиПодписи.Добавить("GR 34.10-2012 512");
Настройка.НетВWindows = Истина;
Настройка.Неактуальная = Истина;
// КриптоПро CSP (ГОСТ 2001) KC2.
Настройка = Настройки.Добавить();
@@ -259,6 +263,7 @@
Настройка.АлгоритмыПроверкиПодписи.Добавить("GR 34.10-2012 256");
Настройка.АлгоритмыПроверкиПодписи.Добавить("GR 34.10-2012 512");
Настройка.НетВWindows = Истина;
Настройка.Неактуальная = Истина;
// ЛИССИ CSP (ГОСТ 2001).
Настройка = Настройки.Добавить();
@@ -273,6 +278,7 @@
Настройка.АлгоритмыПодписи.Добавить("GOST R 34.10-2001");
Настройка.АлгоритмыХеширования.Добавить("GOST R 34.11-94");
Настройка.АлгоритмыШифрования.Добавить("GOST 28147-89");
Настройка.Неактуальная = Истина;
// Сигнал-КОМ CSP (RFC 4357, ГОСТ 2001).
Настройка = Настройки.Добавить();
@@ -287,6 +293,7 @@
Настройка.АлгоритмыПодписи.Добавить("ECR3410-CP");
Настройка.АлгоритмыХеширования.Добавить("RUS-HASH-CP");
Настройка.АлгоритмыШифрования.Добавить("GOST28147");
Настройка.Неактуальная = Истина;
// Сигнал-КОМ CSP (ITU-T X.509 v.3, ГОСТ 2001).
Настройка = Настройки.Добавить();
@@ -301,6 +308,7 @@
Настройка.АлгоритмыПодписи.Добавить("ECR3410");
Настройка.АлгоритмыХеширования.Добавить("RUS-HASH");
Настройка.АлгоритмыШифрования.Добавить("GOST28147");
Настройка.Неактуальная = Истина;
КонецПроцедуры
@@ -436,14 +436,6 @@
"En": ""
},
{
"Anchor": "",
"Reason": "• Сервер временно не доступен.\n• Неправильные параметры запроса.",
"Solution": "• Выполните проверку сертификата повторно.\n• Проверьте настройки сети и работоспособность сервера DSS.\n• Проверьте настройки и права сервера 1С на подключение к сервису DSS.\n• Проверьте настройки для TLS подключения (сертификаты сервера).\n",
"ErrorText": "Couldn't resolve host name",
"RepairMethods": "",
"En": ""
},
{
"Anchor": "Не удалось получить доверенную метку времени",
"Reason": "• Сервер меток времени не поддерживает алгоритм подписи.",
"Solution": "• Используйте Microsoft Enhanced Cryptographic Provider с сервером меток времени, который поддерживает RSA и SHA256\n• Используйте КриптоПро или другой криптопровайдер, работающий с ГОСТ-алгоритмами, и сервер меток времени КриптоПро или 1С.\n• Укажите в настройках сервер меток времени, который поддерживает алгоритм подписи: для этого перейдите в раздел Администрирование, затем в раздел Общие настройки, разверните группу Электронная подпись и шифрование. Замените первое значение в поле Адреса серверов меток времени.\n",
@@ -1280,10 +1272,10 @@
},
{
"Anchor": "",
"Reason": "• Нет подключения к Интернету;\n• На сайте ведутся технические работы, попробуйте повторить действие позднее;\n• Брандмауэр или другое промежуточное ПО (антивирусы и т.п.) блокируют попытки приложения подключиться к Интернету;\n• Подключение к Интернету выполняется через прокси-сервер, но его параметры не заданы в приложении.",
"Solution": "",
"Reason": "• Сервис %1 временно недоступен или нет доступа к Интернету.\n• На сайте ведутся технические работы.\n• Брандмауэр или другое промежуточное ПО (антивирусы и т.п.) блокируют попытки приложения подключиться к Интернету.\n• Подключение к Интернету выполняется через прокси-сервер, но его параметры не заданы в приложении.",
"Solution": "• Проверьте настройки сети и работоспособность сервиса.\n• Проверьте настройки и права сервера 1С на подключение к сервису.\n• Проверьте настройки для TLS подключения (сертификаты сервера).\n• Выполните действие повторно.",
"ErrorText": "Ошибка работы с Интернет",
"RepairMethods": "",
"RepairMethods": "{\"МетодикиУстранения\": [\"УказатьВПричинеСсылкуНаСервис\"]}",
"En": ""
},
{
@@ -1349,13 +1341,13 @@
},
{
"Anchor": "",
"Reason": "Некорректно установлено приложение КриптоПро CSP.",
"Reason": "Возможно, некорректно установлено приложение КриптоПро CSP.",
"Solution": "<a href=\"https://support.cryptopro.ru/index.php?/Knowledgebase/Article/View/431/9/oshibk-0xc0000225-pri-sozdnii-podpisi\">Восстановите приложение КриптоПро CSP</a> и перезагрузите компьютер.",
"ErrorText": "Ошибка при формировании данных подписи (0xC0000225)",
"RepairMethods": "",
"En": ""
},
}
],
"LastChangeDate": "2024-09-27T11:06:18",
"Version": "3.0.1.39"
"LastChangeDate": "2024-10-14T21:52:37",
"Version": "3.0.1.41"
}
@@ -1,4 +1,4 @@
<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.0 Transitional//EN"><html><head><meta content="text/html;charset=utf-8" http-equiv="content-type"></meta><link rel="stylesheet" type="text/css" href="v8help://service_book/service_style"></link><meta name="GENERATOR" content="MSHTML 11.00.9600.18212"></meta></head><body>
<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.0 Transitional//EN"><html><head><meta content="text/html; charset=utf-8" http-equiv="Content-Type"></meta><link rel="stylesheet" type="text/css" href="v8help://service_book/service_style"></link><meta name="GENERATOR" content="MSHTML 11.00.9600.18212"></meta></head><body>
<p>Отчет выводится после проведения операций с файлами, например, <a href="DataProcessor.РаботаСФайлами.Form.ФормаИмпортаФайлов/Help">загрузки файлов</a> или <a href="DataProcessor.РаботаСФайлами.Form.ФормаИмпортаПапки/Help">папок</a> в <a href="Catalog.Файлы.Form.Файлы/Help">список файлов</a> (<a href="DataProcessor.РаботаСФайлами.Form.ПрисоединенныеФайлы/Help">список присоединенных файлов</a>) в случае возникновения ошибок.</p>
<p>В отчете выводится список файлов, который включает:</p>
<ul><li>Полный путь к файлам, которые не удалось загрузить.
@@ -1,4 +1,4 @@
<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.0 Transitional//EN"><html><head><meta content="text/html;charset=utf-8" http-equiv="content-type"></meta><link rel="stylesheet" type="text/css" href="v8help://service_book/service_style"></link><meta name="GENERATOR" content="MSHTML 11.00.9600.18427"></meta></head><body>
<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.0 Transitional//EN"><html><head><meta content="text/html; charset=utf-8" http-equiv="Content-Type"></meta><link rel="stylesheet" type="text/css" href="v8help://service_book/service_style"></link><meta name="GENERATOR" content="MSHTML 11.00.9600.18427"></meta></head><body>
<p>Предназначена для выбора адреса по почтовому индексу.</p>
<p>Для поиска адреса по индексу необходимо, чтобы по соответствующему региону был загружен адресный классификатор.</p>
<p>Открывается из окна <a href="DataProcessor.РасширенныйВводКонтактнойИнформации.Form.ВводАдреса/Help">ввода адреса</a> по команде <strong>Еще</strong> <strong>- Заполнить по почтовому индексу</strong> после ввода почтового индекса. </p>
Loaded 100 of 175 files, more files were not shown because too many files have changed in this diff. Show more